Index: /issm/oecreview/Archive/19101-20495/Date.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/Date.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/Date.tex	(revision 20498)
@@ -0,0 +1,1 @@
+Apr-12-2016
Index: /issm/oecreview/Archive/19101-20495/ISSM-19106-19107.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19106-19107.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19106-19107.diff	(revision 20498)
@@ -0,0 +1,336 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19106)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19107)
+@@ -122,11 +122,329 @@
+ 	_error_("not implemented yet");
+ }/*}}}*/
+ ElementMatrix* LevelsetAnalysis::CreateKMatrix(Element* element){/*{{{*/
+-	_error_("Not implemented yet");
++
++	if(!element->IsOnBase()) return NULL;
++	Element* basalelement = element->SpawnBasalElement();
++
++	/*Intermediaries */
++	int  stabilization,dim, domaintype, calvinglaw;
++	bool iscalving;
++	int i, row, col;
++	IssmDouble kappa;
++	IssmDouble Jdet, dt, D_scalar;
++	IssmDouble h,hx,hy,hz;
++	IssmDouble vel;
++	IssmDouble norm_dlsf, norm_calving, calvingrate, meltingrate;
++	IssmDouble* xyz_list = NULL;
++
++	/*Get problem dimension and whether there is calving or not*/
++	basalelement->FindParam(&iscalving,TransientIscalvingEnum);
++	basalelement->FindParam(&domaintype,DomainTypeEnum);
++	basalelement->FindParam(&calvinglaw,CalvingLawEnum);
++	basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
++	switch(domaintype){
++		case Domain2DverticalEnum:   dim = 1; break;
++		case Domain2DhorizontalEnum: dim = 2; break;
++		case Domain3DEnum:           dim = 2; break;
++		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++	}
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes    = basalelement->GetNumberOfNodes();
++
++	/*Initialize Element vector and other vectors*/
++	ElementMatrix* Ke       = basalelement->NewElementMatrix();
++	IssmDouble*    basis    = xNew<IssmDouble>(numnodes);
++	IssmDouble*    B        = xNew<IssmDouble>(dim*numnodes);
++	IssmDouble*    Bprime   = xNew<IssmDouble>(dim*numnodes);
++	IssmDouble*    D        = xNew<IssmDouble>(dim*dim);
++	IssmDouble*    v        = xNew<IssmDouble>(dim);
++	IssmDouble*    w        = xNew<IssmDouble>(dim);
++	IssmDouble*    c        = xNewZeroInit<IssmDouble>(dim);
++	IssmDouble*    m        = xNewZeroInit<IssmDouble>(dim);
++	IssmDouble*    dlsf     = xNew<IssmDouble>(dim);
++
++	/*Retrieve all inputs and parameters*/
++	basalelement->GetVerticesCoordinates(&xyz_list);
++	basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
++	Input* vx_input           = NULL;
++	Input* vy_input           = NULL;
++	Input* calvingratex_input = NULL;
++	Input* calvingratey_input = NULL;
++	Input* lsf_slopex_input   = NULL;
++	Input* lsf_slopey_input   = NULL;
++	Input* calvingrate_input  = NULL;
++	Input* meltingrate_input  = NULL;
++
++	/*Load velocities*/
++	switch(domaintype){
++		case Domain2DverticalEnum:
++			vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input);
++			break;
++		case Domain2DhorizontalEnum:
++			vx_input=basalelement->GetInput(VxEnum); _assert_(vx_input);
++			vy_input=basalelement->GetInput(VyEnum); _assert_(vy_input);
++			break;
++		case Domain3DEnum:
++			vx_input=basalelement->GetInput(VxAverageEnum); _assert_(vx_input);
++			vy_input=basalelement->GetInput(VyAverageEnum); _assert_(vy_input);
++			break;
++		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++	}
++
++	/*Load calving inputs*/
++	if(iscalving){
++		switch(calvinglaw){
++			case DefaultCalvingEnum:
++				lsf_slopex_input  = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
++				if(dim==2) lsf_slopey_input  = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
++				calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
++				meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
++				break;
++			case CalvingLevermannEnum:
++				switch(domaintype){
++					case Domain2DverticalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						break;
++					case Domain2DhorizontalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
++						break;
++					case Domain3DEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
++						break;
++					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++				}
++				meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
++				break;
++			case CalvingPiEnum:
++				switch(domaintype){
++					case Domain2DverticalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						break;
++					case Domain2DhorizontalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
++						break;
++					case Domain3DEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
++						break;
++					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++				}
++				meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
++				break;
++			case CalvingDevEnum:
++				switch(domaintype){
++					case Domain2DverticalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						break;
++					case Domain2DhorizontalEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
++						break;
++					case Domain3DEnum:
++						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
++						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
++						break;
++					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++				}
++				meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
++				break;
++			default:
++				_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
++		}
++	}
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=basalelement->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		basalelement->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		D_scalar=gauss->weight*Jdet;
++
++		/* Transient */
++		if(dt!=0.){
++			basalelement->NodalFunctions(basis,gauss);
++			TripleMultiply(basis,numnodes,1,0,
++						&D_scalar,1,1,0,
++						basis,1,numnodes,0,
++						&Ke->values[0],1);
++			D_scalar*=dt;
++		}
++
++		/* Advection */
++		GetB(B,basalelement,xyz_list,gauss); 
++		GetBprime(Bprime,basalelement,xyz_list,gauss); 
++		vx_input->GetInputValue(&v[0],gauss);
++		vy_input->GetInputValue(&v[1],gauss); 
++
++		/*Get calving speed*/
++		if(iscalving){
++			switch(calvinglaw){
++				case DefaultCalvingEnum:
++					lsf_slopex_input->GetInputValue(&dlsf[0],gauss);
++					if(dim==2) lsf_slopey_input->GetInputValue(&dlsf[1],gauss);
++					calvingrate_input->GetInputValue(&calvingrate,gauss);
++					meltingrate_input->GetInputValue(&meltingrate,gauss);
++
++					norm_dlsf=0.;
++					for(i=0;i<dim;i++) norm_dlsf+=pow(dlsf[i],2);
++					norm_dlsf=sqrt(norm_dlsf);
++
++					if(norm_dlsf>1.e-10)
++					 for(i=0;i<dim;i++){ 
++					  c[i]=calvingrate*dlsf[i]/norm_dlsf; m[i]=meltingrate*dlsf[i]/norm_dlsf;
++					 }
++					else
++					 for(i=0;i<dim;i++){
++						 c[i]=0.; m[i]=0.;
++					 }
++					break;
++
++				case CalvingLevermannEnum:
++				case CalvingPiEnum:
++				case CalvingDevEnum:
++					calvingratex_input->GetInputValue(&c[0],gauss);
++					if(dim==2) calvingratey_input->GetInputValue(&c[1],gauss);
++					meltingrate_input->GetInputValue(&meltingrate,gauss);
++					norm_calving=0.;
++					for(i=0;i<dim;i++) norm_calving+=pow(c[i],2);
++					norm_calving=sqrt(norm_calving)+1.e-14;
++					for(i=0;i<dim;i++) m[i]=meltingrate*c[i]/norm_calving;
++					break;
++
++				default:
++					_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
++			}
++		}
++
++		/*Levelset speed is ice velocity - calving rate*/
++		for(i=0;i<dim;i++) w[i]=v[i]-c[i]-m[i];
++
++		/*Compute D*/
++		for(row=0;row<dim;row++){
++			for(col=0;col<dim;col++){
++				if(row==col)
++				 D[row*dim+col]=D_scalar*w[row];
++				else
++				 D[row*dim+col]=0.;
++			}
++		}
++
++		TripleMultiply(B,dim,numnodes,1,
++					D,dim,dim,0,
++					Bprime,dim,numnodes,0,
++					&Ke->values[0],1);
++
++		/* Stabilization */
++		vel=0.;
++		for(i=0;i<dim;i++) vel+=w[i]*w[i];
++		vel=sqrt(vel)+1.e-14;
++		switch(stabilization){
++			case 0:
++				// no stabilization, do nothing
++				break;
++			case 1:
++				/* Artificial Diffusion */
++				basalelement->ElementSizes(&hx,&hy,&hz);
++				h=sqrt( pow(hx*w[0]/vel,2) + pow(hy*w[1]/vel,2) ); 
++				kappa=h*vel/2.;
++				for(row=0;row<dim;row++)
++					for(col=0;col<dim;col++)
++					if(row==col)
++						D[row*dim+col]=D_scalar*kappa;
++					else
++						D[row*dim+col]=0.;
++
++				TripleMultiply(Bprime,dim,numnodes,1,
++							D,dim,dim,0,
++							Bprime,dim,numnodes,0,
++							&Ke->values[0],1);
++				break;	
++			case 2:
++				/* Streamline Upwinding */
++				basalelement->ElementSizes(&hx,&hy,&hz);
++				h=sqrt( pow(hx*w[0]/vel,2) + pow(hy*w[1]/vel,2) );
++				for(row=0;row<dim;row++) 
++					for(col=0;col<dim;col++) 
++						D[row*dim+col] = D_scalar*h/(2.*vel)*w[row]*w[col];
++
++				TripleMultiply(Bprime,dim,numnodes,1,
++							D,dim,dim,0,
++							Bprime,dim,numnodes,0,
++							&Ke->values[0],1);
++				break;
++			default:
++				_error_("unknown type of stabilization in LevelsetAnalysis.cpp");
++		}
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(basis);
++	xDelete<IssmDouble>(B);
++	xDelete<IssmDouble>(D);
++	xDelete<IssmDouble>(Bprime);
++	xDelete<IssmDouble>(v);
++	xDelete<IssmDouble>(w);
++	xDelete<IssmDouble>(c);
++	xDelete<IssmDouble>(m);
++	xDelete<IssmDouble>(dlsf);
++	delete gauss;
++	if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
++	return Ke;
+ }/*}}}*/
+ ElementVector* LevelsetAnalysis::CreatePVector(Element* element){/*{{{*/
+ 	
+-	_error_("Not implemented yet");
++	if(!element->IsOnBase()) return NULL;
++	Element* basalelement = element->SpawnBasalElement();
++
++	/*Intermediaries */
++	int i, ig, domaintype;
++	IssmDouble  Jdet,dt;
++	IssmDouble  lsf;
++	IssmDouble* xyz_list = NULL;
++	
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = basalelement->GetNumberOfNodes();
++
++	/*Initialize Element vector*/
++	ElementVector* pe = basalelement->NewElementVector();
++	basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
++	
++	if(dt!=0.){
++		/*Initialize basis vector*/
++		IssmDouble*    basis = xNew<IssmDouble>(numnodes);
++
++		/*Retrieve all inputs and parameters*/
++		basalelement->GetVerticesCoordinates(&xyz_list);
++		Input* levelset_input     = basalelement->GetInput(MaskIceLevelsetEnum);                    _assert_(levelset_input);
++
++		/* Start  looping on the number of gaussian points: */
++		Gauss* gauss=basalelement->NewGauss(2);
++		for(ig=gauss->begin();ig<gauss->end();ig++){
++			gauss->GaussPoint(ig);
++
++			basalelement->JacobianDeterminant(&Jdet,xyz_list,gauss);
++			basalelement->NodalFunctions(basis,gauss);
++
++			/* old function value */
++			levelset_input->GetInputValue(&lsf,gauss);
++			for(i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*lsf*basis[i];
++		}
++
++		/*Clean up and return*/
++		xDelete<IssmDouble>(xyz_list);
++		xDelete<IssmDouble>(basis);
++		basalelement->FindParam(&domaintype,DomainTypeEnum);
++		if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
++		delete gauss;
++	}
++
++	return pe;
+ }/*}}}*/
+ void           LevelsetAnalysis::GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
+ 	/*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19107-19108.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19107-19108.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19107-19108.diff	(revision 20498)
@@ -0,0 +1,41 @@
+Index: ../trunk-jpl/src/dox/issm.dox
+===================================================================
+--- ../trunk-jpl/src/dox/issm.dox	(revision 19107)
++++ ../trunk-jpl/src/dox/issm.dox	(revision 19108)
+@@ -46,28 +46,28 @@
+ <th  bgcolor=#7AA9DD style="text-align:left;">Language</th><th  bgcolor=#7AA9DD style="text-align:right;">files</th><th  bgcolor=#7AA9DD style="text-align:right;">blank</th><th  bgcolor=#7AA9DD style="text-align:right;">comment</th><th  bgcolor=#7AA9DD style="text-align:right;">code</th><th  bgcolor=#7AA9DD style="text-align:right;">Total</th>
+ </th>
+ <tr>
+-<th  bgcolor=#FFFFFF style="text-align:left;"> C++ </th><td  bgcolor=#FFFFFF style="text-align:right;">445</td><td  bgcolor=#FFFFFF style="text-align:right;">15967</td><td  bgcolor=#FFFFFF style="text-align:right;">16145</td><td  bgcolor=#FFFFFF style="text-align:right;">70397</td><td  bgcolor=#FFFFFF style="text-align:right;">102509</td>
++<th  bgcolor=#FFFFFF style="text-align:left;"> C++ </th><td  bgcolor=#FFFFFF style="text-align:right;">467</td><td  bgcolor=#FFFFFF style="text-align:right;">18020</td><td  bgcolor=#FFFFFF style="text-align:right;">18480</td><td  bgcolor=#FFFFFF style="text-align:right;">84161</td><td  bgcolor=#FFFFFF style="text-align:right;">120661</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#C6E2FF style="text-align:left;"> MATLAB </th><td  bgcolor=#C6E2FF style="text-align:right;">1422</td><td  bgcolor=#C6E2FF style="text-align:right;">8497</td><td  bgcolor=#C6E2FF style="text-align:right;">16638</td><td  bgcolor=#C6E2FF style="text-align:right;">39538</td><td  bgcolor=#C6E2FF style="text-align:right;">64673</td>
++<th  bgcolor=#C6E2FF style="text-align:left;"> MATLAB </th><td  bgcolor=#C6E2FF style="text-align:right;">1606</td><td  bgcolor=#C6E2FF style="text-align:right;">8941</td><td  bgcolor=#C6E2FF style="text-align:right;">18403</td><td  bgcolor=#C6E2FF style="text-align:right;">42192</td><td  bgcolor=#C6E2FF style="text-align:right;">69536</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#FFFFFF style="text-align:left;"> C/C++  Header </th><td  bgcolor=#FFFFFF style="text-align:right;">411</td><td  bgcolor=#FFFFFF style="text-align:right;">3443</td><td  bgcolor=#FFFFFF style="text-align:right;">3528</td><td  bgcolor=#FFFFFF style="text-align:right;">15243</td><td  bgcolor=#FFFFFF style="text-align:right;">22214</td>
++<th  bgcolor=#FFFFFF style="text-align:left;"> C/C++  Header </th><td  bgcolor=#FFFFFF style="text-align:right;">420</td><td  bgcolor=#FFFFFF style="text-align:right;">3534</td><td  bgcolor=#FFFFFF style="text-align:right;">3662</td><td  bgcolor=#FFFFFF style="text-align:right;">15940</td><td  bgcolor=#FFFFFF style="text-align:right;">23136</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#C6E2FF style="text-align:left;"> m4 </th><td  bgcolor=#C6E2FF style="text-align:right;">8</td><td  bgcolor=#C6E2FF style="text-align:right;">1036</td><td  bgcolor=#C6E2FF style="text-align:right;">149</td><td  bgcolor=#C6E2FF style="text-align:right;">9756</td><td  bgcolor=#C6E2FF style="text-align:right;">10941</td>
++<th  bgcolor=#C6E2FF style="text-align:left;"> Python </th><td  bgcolor=#C6E2FF style="text-align:right;">162</td><td  bgcolor=#C6E2FF style="text-align:right;">2523</td><td  bgcolor=#C6E2FF style="text-align:right;">2751</td><td  bgcolor=#C6E2FF style="text-align:right;">10735</td><td  bgcolor=#C6E2FF style="text-align:right;">16009</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#FFFFFF style="text-align:left;"> Python </th><td  bgcolor=#FFFFFF style="text-align:right;">151</td><td  bgcolor=#FFFFFF style="text-align:right;">2421</td><td  bgcolor=#FFFFFF style="text-align:right;">2623</td><td  bgcolor=#FFFFFF style="text-align:right;">9733</td><td  bgcolor=#FFFFFF style="text-align:right;">14777</td>
++<th  bgcolor=#FFFFFF style="text-align:left;"> m4 </th><td  bgcolor=#FFFFFF style="text-align:right;">8</td><td  bgcolor=#FFFFFF style="text-align:right;">1052</td><td  bgcolor=#FFFFFF style="text-align:right;">149</td><td  bgcolor=#FFFFFF style="text-align:right;">9877</td><td  bgcolor=#FFFFFF style="text-align:right;">11078</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#C6E2FF style="text-align:left;"> Fortran  77 </th><td  bgcolor=#C6E2FF style="text-align:right;">7</td><td  bgcolor=#C6E2FF style="text-align:right;">4</td><td  bgcolor=#C6E2FF style="text-align:right;">302</td><td  bgcolor=#C6E2FF style="text-align:right;">365</td><td  bgcolor=#C6E2FF style="text-align:right;">671</td>
++<th  bgcolor=#C6E2FF style="text-align:left;"> Bourne  Shell </th><td  bgcolor=#C6E2FF style="text-align:right;">4</td><td  bgcolor=#C6E2FF style="text-align:right;">113</td><td  bgcolor=#C6E2FF style="text-align:right;">188</td><td  bgcolor=#C6E2FF style="text-align:right;">524</td><td  bgcolor=#C6E2FF style="text-align:right;">825</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#FFFFFF style="text-align:left;"> Bourne  Shell </th><td  bgcolor=#FFFFFF style="text-align:right;">2</td><td  bgcolor=#FFFFFF style="text-align:right;">59</td><td  bgcolor=#FFFFFF style="text-align:right;">84</td><td  bgcolor=#FFFFFF style="text-align:right;">262</td><td  bgcolor=#FFFFFF style="text-align:right;">405</td>
++<th  bgcolor=#FFFFFF style="text-align:left;"> Fortran  77 </th><td  bgcolor=#FFFFFF style="text-align:right;">7</td><td  bgcolor=#FFFFFF style="text-align:right;">4</td><td  bgcolor=#FFFFFF style="text-align:right;">302</td><td  bgcolor=#FFFFFF style="text-align:right;">365</td><td  bgcolor=#FFFFFF style="text-align:right;">671</td>
+ </tr>
+ <tr>
+-<th  bgcolor=#C6E2FF style="text-align:left;"> SUM: </th><td  bgcolor=#C6E2FF style="text-align:right;">2446</td><td  bgcolor=#C6E2FF style="text-align:right;">31427</td><td  bgcolor=#C6E2FF style="text-align:right;">39469</td><td  bgcolor=#C6E2FF style="text-align:right;">145294</td><td  bgcolor=#C6E2FF style="text-align:right;">216190</td>
++<th  bgcolor=#C6E2FF style="text-align:left;"> SUM: </th><td  bgcolor=#C6E2FF style="text-align:right;">2674</td><td  bgcolor=#C6E2FF style="text-align:right;">34187</td><td  bgcolor=#C6E2FF style="text-align:right;">43935</td><td  bgcolor=#C6E2FF style="text-align:right;">163794</td><td  bgcolor=#C6E2FF style="text-align:right;">241916</td>
+ </tr>
+ </table>
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19108-19109.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19108-19109.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19108-19109.diff	(revision 20498)
@@ -0,0 +1,241 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19108)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19109)
+@@ -190,6 +190,15 @@
+ 			export OS_LDFLAG="-Wl,"
+ 			export RANLIB=true
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
++		elif  test $VENDOR = MSVC-Win64; then
++			export CC=cl
++			export CXX=cccl
++			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
++			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
++			export AR="ar-lib lib"
++			export OS_LDFLAG="-Wl,"
++			export RANLIB=true
++			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif test $VENDOR = intel-linux; then
+ 			export CC=icc
+ 			export CXX=icpc
+@@ -261,15 +270,20 @@
+   		case "${host_os}" in
+   			*cygwin*) 
+   				if  test $VENDOR = intel-win7-32; then
+-  					MEXLIB="-Wl,./../../c/libISSMCore.a -Wl,libISSMApi.a -Wl,libISSMMatlab.a -Wl,./../../c/libISSMModules.a -Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -no-undefined -Wl,/export:mexFunction -Wl,/LD"
++  					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/export:mexFunction -Wl,/LD"
+ 					MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+ 					MEXEXT=".$MEXEXT"
+-  				elif  test l-win7-64; then
+-  					MEXLIB="-Wl,./../../c/libISSMCore.a -Wl,libISSMApi.a -Wl,libISSMMatlab.a -Wl,./../../c/libISSMModules.a -Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -no-undefined -Wl,/export:mexFunction -Wl,/LD" 
++  				elif test $VENDOR = intel-win7-64; then
++  					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
++  				elif test $VENDOR = MSVC-Win64; then
++  					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
++					MEXEXT=".mexw64"
+   				fi
++				IS_WINDOWS=yes
+ 
+   			;;
+ 		   *)
+@@ -297,6 +311,10 @@
+ 	   if test "x$MEXEXT" = "x" ; then
+ 			AC_MSG_ERROR([Couldn't find mex... check your installation of matlab])
+ 	   fi
++	   if test "x$IS_WINDOWS" = "x" ; then
++			AC_MSG_ERROR([I'M PRETTY SURE THIS IS SUPPOSED TO BE WINDOWS...])
++	   fi
++		AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS="xyes"])
+ 
+ 		AC_SUBST([MATLABINCL])
+ 		MATLABWRAPPEREXT=$MEXEXT
+@@ -843,6 +861,9 @@
+ 		elif test x$VENDOR = xintel-win7-64; then
+ 			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
+ 			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
++		elif test x$VENDOR = xMSVC-Win64; then
++			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
++			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
+ 		fi
+ 
+ 		if test -z "$MPI_LIBDIR"; then
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19108)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19109)
+@@ -10,7 +10,7 @@
+ # 4: intel compiler on WinXP
+ 
+ #Determine OS version using uname: 
+-version=`uname -s | grep 64`
++version=`uname -m | grep x86_64`
+ if [[ $version == "" ]];then
+ 	compiler=1
+ else
+@@ -26,7 +26,7 @@
+ if [[ "$compiler" == "1" ]]; then 
+ 	source $config_dir/sdk7.1.win7-32.sh
+ elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1.win7-64.sh
++	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
+Index: ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh	(revision 19109)
+@@ -0,0 +1,39 @@
++# -----------------------------------------------------------------------------
++# 
++# The following variables can vary from system to system and standard
++# installation is assumed throughout. If different directories were used when
++# installing MSVC, or Win SDK.
++#
++# TODO: Bring out the host machine arhictecture specific stuff from INCLUDE,
++# LIB and LIBPATH.
++#
++# -----------------------------------------------------------------------------
++
++# The version of Visual Studio is 10.0. Newer versions should work as well.
++export MSVC_DIR='C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\'
++
++# SDK change from 7 to 8 involved changing the locations of important 
++# libraries. If you wish to use 8.0 or 8.1 then you need to provide the 
++# directory of 'Windows Kits' instead.
++export WIN_SDK_DIR='C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\'
++
++# Unfotunately, standard installation directories of Matlab usually include 
++# white spaces that are not handled correctly by the command interpreter. As
++# such, the directory where one would find Matlab headers and libraries might
++# need to be provided as environment variables.
++export MATLAB_DIR_WIN=`cygpath -w ${MATLAB_DIR}`
++export MATLAB_DIR_LIB="${MATLAB_DIR_WIN}\\extern\\lib\\win64\\microsoft"
++
++# Information about the .NET framework is required to run the MSVC toolchain
++export FrameworkDir='C:\Windows\Microsoft.NET\Framework64\'
++export FrameworkVersion=v4.0.30319
++
++# LIB and LIBPATH seem redundant, but MSVC linker and compiler use different 
++# variables for the same purpose.
++export INCLUDE="${MSVC_DIR}include;${WIN_SDK_DIR}Include;${MATLAB_DIR_WIN}\\extern\\include;"
++export LIB="${MSVC_DIR}lib\\amd64;${WIN_SDK_DIR}Lib\\x64;${MATLAB_DIR_LIB}"
++export LIBPATH="${FrameworkDir}${FrameworkVersion};${MATLAB_DIR_LIB};"
++export LIBPATH="${LIBPATH}${MSVC_DIR}lib\\amd64;${MSVC_DIR}bin\\amd64;${WIN_SDK_DIR}Lib\\x64;"
++
++export MSVC_DIR_UNIX=`cygpath -u "${MSVC_DIR}"`
++export PATH="${MSVC_DIR_UNIX}/bin/amd64:$PATH"
+
+Property changes on: ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh	(revision 19108)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh	(revision 19109)
+@@ -16,6 +16,16 @@
+ export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
+ export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
+ 
++
++# Version 3.1 of Petsc is really old. As such, it is likely that newer machines
++# will not be recognized. As such, the build will fail during configuration.
++# This can be resolved by simply updated the scripts 'config.guess' and 
++# 'config.sub'.
++cp ./../autotools/install/share/libtool/config/config.guess ./src/config/configarch/
++cp ./../autotools/install/share/libtool/config/config.guess ./src/config/BuildSystem/config/packages/
++cp ./../autotools/install/share/libtool/config/config.sub ./src/config/configarch/
++cp ./../autotools/install/share/libtool/config/config.sub ./src/config/BuildSystem/config/packages/
++
+ #configure
+ cd src
+ ./config/configure.py  \
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19108)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19109)
+@@ -78,7 +78,7 @@
+ AM_CXXFLAGS =  -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER -D_WRAPPERS_
+ 
+ #Matlab part
+-AM_LDFLAGS = -module $(MEXLINK) -shrext ${EXEEXT} --export-dynamic -rdynamic
++AM_LDFLAGS = -module $(MEXLINK) -shrext ${EXEEXT} --export-dynamic -rdynamic -no-undefined
+ if VERSION
+ AM_LDFLAGS +=
+ else
+@@ -91,7 +91,15 @@
+ 
+ AM_CXXFLAGS +=  -D_HAVE_MATLAB_MODULES_ -fPIC
+ 
++# This is a temporary fix to an issue with Libtool regarding linking against 
++# static libraries for Windows. Ideally, we would build all libraries as DLLs
++# and and avoid this workaround which removes the dependency of ISSM libraries
++# from the perspective of our build system.
++if WINDOWS
++AM_LDFLAGS += -Wl,./.libs/libISSMMatlab.lib -Wl,./../../c/.libs/libISSMModules.lib -Wl,./../../c/.libs/libISSMCore.lib -Wl,././.libs/libISSMApi.lib
++else
+ deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
++endif
+ 
+ if ADOLC
+ deps += $(ADOLCLIB)
+Index: ../trunk-jpl/configs/config-win64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win64.sh	(revision 0)
++++ ../trunk-jpl/configs/config-win64.sh	(revision 19109)
+@@ -0,0 +1,19 @@
++#!/bin/sh
++
++# Works on Win8, but should also work on 7.
++./configure --prefix=$ISSM_DIR \
++	--with-vendor=MSVC-win64  \
++	--disable-static \
++	--enable-standalone-libraries \
++	--with-fortran=no  \
++	--without-Gia \
++	--without-kriging \
++	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++	--with-metis-dir="$ISSM_DIR/externalpackages/metis/install" \
++	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
++	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
++	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
++   --with-mpi-libflags="-Wl,libpetsc.lib" \
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" 
++
+
+Property changes on: ../trunk-jpl/configs/config-win64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19108)
++++ ../trunk-jpl/jenkins/windows	(revision 19109)
+@@ -8,7 +8,7 @@
+    --disable-static \
+ 	--enable-standalone-libraries \
+ 	--without-Gia \
+-	--with-vendor=intel-win7-64  \
++	--with-vendor=MSVC-Win64  \
+ 	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+@@ -46,7 +46,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="cccl        install-win7.sh
+ 						cmake       install.sh                
+-						petsc       install-3.5-win7.sh
++						petsc       install-3.1-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
+ 						shell2junit install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19109-19110.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19109-19110.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19109-19110.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19109)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19110)
+@@ -311,9 +311,7 @@
+ 	   if test "x$MEXEXT" = "x" ; then
+ 			AC_MSG_ERROR([Couldn't find mex... check your installation of matlab])
+ 	   fi
+-	   if test "x$IS_WINDOWS" = "x" ; then
+-			AC_MSG_ERROR([I'M PRETTY SURE THIS IS SUPPOSED TO BE WINDOWS...])
+-	   fi
++
+ 		AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS="xyes"])
+ 
+ 		AC_SUBST([MATLABINCL])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19110-19111.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19110-19111.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19110-19111.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19110)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19111)
+@@ -274,17 +274,18 @@
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/export:mexFunction -Wl,/LD"
+ 					MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+ 					MEXEXT=".$MEXEXT"
++					IS_WINDOWS=yes
+   				elif test $VENDOR = intel-win7-64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
++					IS_WINDOWS=yes
+   				elif test $VENDOR = MSVC-Win64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
++					IS_WINDOWS=yes
+   				fi
+-				IS_WINDOWS=yes
+-
+   			;;
+ 		   *)
+            MEXLINK=$($MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
Index: /issm/oecreview/Archive/19101-20495/ISSM-19111-19112.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19111-19112.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19111-19112.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19111)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19112)
+@@ -313,7 +313,7 @@
+ 			AC_MSG_ERROR([Couldn't find mex... check your installation of matlab])
+ 	   fi
+ 
+-		AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS="xyes"])
++		AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xyes])
+ 
+ 		AC_SUBST([MATLABINCL])
+ 		MATLABWRAPPEREXT=$MEXEXT
Index: /issm/oecreview/Archive/19101-20495/ISSM-19112-19113.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19112-19113.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19112-19113.diff	(revision 20498)
@@ -0,0 +1,96 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19112)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19113)
+@@ -9,43 +9,65 @@
+ void StressbalanceVerticalAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+ 
+ 	/*Intermediary*/
+-	int count;
+-	IssmDouble yts;
++	bool        isSIA,isSSA,isL1L2,isHO,isFS,iscoupling;
++	int         Mz,Nz;
++	IssmDouble *spcvz = NULL;
+ 
+-	/*Fetch parameters: */
+-	iomodel->Constant(&yts,ConstantsYtsEnum);
+-
+ 	/*return if not 3d mesh*/
+ 	if(iomodel->domaintype!=Domain3DEnum) return;
+ 
+-	/*Fetch data: */
+-	iomodel->FetchData(2,StressbalanceSpcvzEnum,FlowequationBorderFSEnum);
++	/*Fetch parameters: */
++	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
++	iomodel->Constant(&isSSA,FlowequationIsSSAEnum);
++	iomodel->Constant(&isL1L2,FlowequationIsL1L2Enum);
++	iomodel->Constant(&isHO,FlowequationIsHOEnum);
++	iomodel->Constant(&isFS,FlowequationIsFSEnum);
+ 
+-	/*Initialize counter*/
+-	count=0;
++	/*Do we have coupling*/
++	if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
++	 iscoupling = true;
++	else
++	 iscoupling = false;
+ 
+-	/*Create spcs from x,y,z, as well as the spc values on those spcs: */
+-	for(int i=0;i<iomodel->numberofvertices;i++){
+ 
+-		/*keep only this partition's nodes:*/
+-		if(iomodel->my_vertices[i]){
++	/*If no coupling, call Regular IoModelToConstraintsx, else, use P1 elements only*/
++	if(!iscoupling){
++		IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvzEnum,StressbalanceVerticalAnalysisEnum,P1Enum,0);
++	}
++	else{
++		/*Fetch data: */
++		iomodel->FetchData(1,FlowequationBorderFSEnum);
++		/*Fetch Spc*/
++		iomodel->FetchData(&spcvz,&Mz,&Nz,StressbalanceSpcvzEnum);
++		if(Nz>1) _error_("not supported yet (needs to be coded)");
+ 
+-			if (reCast<int,IssmDouble>(iomodel->Data(FlowequationBorderFSEnum)[i])){
+-				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceVerticalAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for FS
+-				count++;
+-			}
+-			else if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvzEnum)[i])){
+-				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,
+-								iomodel->Data(StressbalanceSpcvzEnum)[i],StressbalanceVerticalAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+-				count++;
++		/*Initialize counter*/
++		int count=0;
+ 
+-			}
+-		} 
++		/*Create spcs from x,y,z, as well as the spc values on those spcs: */
++		for(int i=0;i<iomodel->numberofvertices;i++){
++
++			/*keep only this partition's nodes:*/
++			if(iomodel->my_vertices[i]){
++
++				if (reCast<int,IssmDouble>(iomodel->Data(FlowequationBorderFSEnum)[i])){
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceVerticalAnalysisEnum)); //spc to zero as vertical velocity is done in Horiz for FS
++					count++;
++				}
++				else if (!xIsNan<IssmDouble>(spcvz[i])){
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,
++									spcvz[i],StressbalanceVerticalAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
++					count++;
++
++				}
++			} 
++		}
++
++		/*Free data: */
++		iomodel->DeleteData(1,FlowequationBorderFSEnum);
++		iomodel->DeleteData(spcvz,StressbalanceSpcvzEnum);
+ 	}
+ 
+-	/*Free data: */
+-	iomodel->DeleteData(2,StressbalanceSpcvzEnum,FlowequationBorderFSEnum);
+-
+ }/*}}}*/
+ void StressbalanceVerticalAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19113-19114.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19113-19114.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19113-19114.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19113)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19114)
+@@ -342,8 +342,8 @@
+ 				_error_("Not supported yet");
+ 		}
+ 
+-		pe->values[2*iv+0]=(ub-2.*pow(rho_ice*gravity,n)*pow(slope2,((n-1.)/2.))*pow(thickness,n)/(pow(B,n)*(n+1))*slope[0])/connectivity;
+-		pe->values[2*iv+1]=(vb-2.*pow(rho_ice*gravity,n)*pow(slope2,((n-1.)/2.))*pow(thickness,n)/(pow(B,n)*(n+1))*slope[1])/connectivity;
++		pe->values[2*iv+0]=(ub-2.*pow(rho_ice*gravity,n)*pow(slope2,((n-1.)/2.))*pow(thickness,n+1.)/(pow(B,n)*(n+2))*slope[0])/connectivity;
++		pe->values[2*iv+1]=(vb-2.*pow(rho_ice*gravity,n)*pow(slope2,((n-1.)/2.))*pow(thickness,n+1.)/(pow(B,n)*(n+2))*slope[1])/connectivity;
+ 	}
+ 
+ 	/*Clean up and return*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19114-19115.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19114-19115.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19114-19115.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/wrappers/python/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/Makefile.am	(revision 19114)
++++ ../trunk-jpl/src/wrappers/python/Makefile.am	(revision 19115)
+@@ -1,5 +1,5 @@
+ AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@
+-#AUTOMAKE_OPTIONS = subdir-objects
++AUTOMAKE_OPTIONS = subdir-objects
+ 
+ EXEEXT=$(PYTHONWRAPPEREXT)
+ 
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19114)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19115)
+@@ -66,6 +66,7 @@
+ 					./geometry/*.py \
+ 					./coordsystems/*.py \
+ 					./interp/*.py \
++					./inversions/*.py \
+ 					./mech/*.py \
+ 					./mesh/*.py \
+ 					./mesh/rifts/*.py \
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19114)
++++ ../trunk-jpl/jenkins/windows	(revision 19115)
+@@ -12,6 +12,7 @@
+ 	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+@@ -47,6 +48,7 @@
+ EXTERNALPACKAGES="cccl        install-win7.sh
+ 						cmake       install.sh                
+ 						petsc       install-3.1-win7.sh
++						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
+ 						shell2junit install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19115-19116.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19115-19116.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19115-19116.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/toolkits.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.m	(revision 19115)
++++ ../trunk-jpl/src/m/classes/toolkits.m	(revision 19116)
+@@ -52,7 +52,7 @@
+ 				 elseif IssmConfig('_HAVE_GSL_'),
+ 					 self.DefaultAnalysis           = issmgslsolver(); 
+ 				 else 
+-					 error('Need at least Mumps or Gsl to define an issm solver type');
++					 disp('WARNING: Need at least Mumps or Gsl to define an issm solver type, no default solver assigned');
+ 				 end
+ 			 end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19116-19117.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19116-19117.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19116-19117.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h	(revision 19116)
++++ ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h	(revision 19117)
+@@ -9,5 +9,7 @@
+ /* local prototypes: */
+ void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof=0);
+ void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof=0);
++void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof=0);
++void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof=0);
+ 
+ #endif  /* _IOMODELTOELEMENTINPUTX_H */
+Index: ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 19116)
++++ ../trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp	(revision 19117)
+@@ -28,9 +28,30 @@
+ 	/*Clean up*/
+ 	xDelete<IssmDouble>(spcdata);
+ }
++void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof){
+ 
+-void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){
++	/*intermediary: */
++	int         code,vector_layout;
++	IssmDouble *spcdata = NULL;
++	int         M,N;
+ 
++	/*First of, find the record for the enum, and get code  of data type: */
++	iomodel->SetFilePointerToData(&code, &vector_layout,vector_enum);
++	if(code!=7)_error_("expecting a IssmDouble vector for constraints with enum " << EnumToStringx(vector_enum));
++	if(vector_layout!=1)_error_("expecting a nodal vector for constraints with enum " << EnumToStringx(vector_enum));
++
++	/*Fetch vector:*/
++	iomodel->FetchData(&spcdata,&M,&N,vector_enum);
++
++	/*Call IoModelToConstraintsx*/
++	IoModelToDynamicConstraintsx(constraints,iomodel,spcdata,M,N,analysis_type,finite_element,dof);
++
++	/*Clean up*/
++	xDelete<IssmDouble>(spcdata);
++}
++
++void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){/*{{{*/
++
+ 	/*intermediary: */
+ 	int         i,j,count,elementnbv,numfacevertices;
+ 	IssmDouble  value;
+@@ -536,4 +557,38 @@
+ 	xDelete<bool>(my_edges);
+ 	xDelete<bool>(my_faces);
+ 	xDelete<bool>(boundaryedge);
+-}
++}/*}}}*/
++void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){/*{{{*/
++
++	/*intermediary: */
++	int i,count;
++
++	switch(finite_element){
++		case P1Enum: 
++			/*Nothing else to do*/
++			break;
++		default:
++			_error_("Finite element "<<EnumToStringx(finite_element)<<" not supported yet");
++	}
++
++	count=0;
++	if(M==iomodel->numberofvertices){
++		switch(finite_element){
++			case P1Enum:
++				for(i=0;i<iomodel->numberofvertices;i++){
++					if((iomodel->my_vertices[i])){
++						if (!xIsNan<IssmDouble>(spcdata[i])){
++							constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,analysis_type));
++							count++;
++						}
++					}
++				}
++				break;
++			default:
++				_error_("Finite element "<<EnumToStringx(finite_element)<<" not supported yet");
++		}
++	}
++	else{
++		_error_("Size of spc field not supported");
++	}
++}/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19117-19118.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19117-19118.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19117-19118.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/wrappers/python/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/Makefile.am	(revision 19117)
++++ ../trunk-jpl/src/wrappers/python/Makefile.am	(revision 19118)
+@@ -1,5 +1,5 @@
+ AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@
+-AUTOMAKE_OPTIONS = subdir-objects
++#AUTOMAKE_OPTIONS = subdir-objects
+ 
+ EXEEXT=$(PYTHONWRAPPEREXT)
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19118-19119.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19118-19119.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19118-19119.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/test/Archives/Archive314.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive804.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive302.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive303.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19119-19120.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19119-19120.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19119-19120.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/packagers/ubuntu/install.sh
+===================================================================
+--- ../trunk-jpl/packagers/ubuntu/install.sh	(revision 19119)
++++ ../trunk-jpl/packagers/ubuntu/install.sh	(revision 19120)
+@@ -28,6 +28,7 @@
+ 						mpich     install-3.0-linux64.sh
+                   cmake     install.sh                
+                   petsc     install-3.5-linux64-static.sh
++						m1qn3     install.sh    
+                   triangle  install-linux64.sh "
+ 
+ # Install Externalpackages
+@@ -111,6 +112,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags=" -L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich -lmpl " \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+ 	--enable-debugging \
+ 	--with-numthreads=4
+Index: ../trunk-jpl/packagers/macosx/install.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/install.sh	(revision 19119)
++++ ../trunk-jpl/packagers/macosx/install.sh	(revision 19120)
+@@ -28,6 +28,7 @@
+                   mpich     install-3.0-macosx64-static.sh
+                   cmake     install.sh                
+                   petsc     install-3.5-macosx64-static.sh
++						m1qn3     install.sh    
+                   triangle  install-macosx64.sh "
+ 
+ # Install Externalpackages
+@@ -111,6 +112,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags=" -L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich -lpmpich" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-fortran-lib="/usr/local/lib/libgfortran.a" \
+ 	--enable-debugging \
+ 	--with-numthreads=4
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19119)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19120)
+@@ -44,7 +44,7 @@
+ 					 cmake install.sh 
+ 					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.4-linux64.sh
++					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19119)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19120)
+@@ -54,7 +54,7 @@
+ 					 cmake install.sh 
+ 					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.4-linux64.sh
++					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/imac-012301-gil
+===================================================================
+--- ../trunk-jpl/jenkins/imac-012301-gil	(revision 19119)
++++ ../trunk-jpl/jenkins/imac-012301-gil	(revision 19120)
+@@ -14,7 +14,6 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
+ 	--with-numthreads=8 \
+ 	--enable-debugging \
+ 	--enable-development'
+@@ -50,8 +49,7 @@
+ 						mpich     install-3.0-macosx64.sh    
+ 						cmake     install.sh                
+ 						m1qn3     install.sh    
+-						petsc     install-3.4-macosx64.sh
+-						tao       install-2.2.sh
++						petsc     install-3.5-macosx64.sh
+ 						triangle  install-macosx64.sh 
+ 						shell2junit  install.sh "
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19120-19121.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19120-19121.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19120-19121.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/contrib/hack/sia.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/hack/sia.m	(revision 19120)
++++ ../trunk-jpl/src/m/contrib/hack/sia.m	(revision 19121)
+@@ -1,5 +1,5 @@
+ function [velx,vely,vel]=sia(md)
+-%BALVEL - computation of Shallow Ice velocities
++%SIA - computation of Shallow Ice velocities
+ %
+ %   This routine uses the model of SIA to compute the velocities
+ %   of a 2d model using the surface slope
+@@ -17,7 +17,7 @@
+ %Average thickness and B over all elements.
+ summer=[1;1;1];
+ hel=md.geometry.thickness(md.mesh.elements)*summer/3;
+-Bel=md.B(md.mesh.elements)*summer/3;
++Bel=md.materials.rheology_B(md.mesh.elements)*summer/3;
+ 
+ Ael=Bel.^(-3);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19121-19122.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19121-19122.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19121-19122.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/m/consistency/comparemodels.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/comparemodels.m	(revision 19121)
++++ ../trunk-jpl/src/m/consistency/comparemodels.m	(revision 19122)
+@@ -26,7 +26,17 @@
+ 		if numel(field1)==1 & isnan(field1) & isnan(field2),
+ 			%Do not do anything
+ 		elseif any(field1~=field2),
+-			disp([fieldname ' differs']);
++			%Deal with NaN...
++			pos1=find(isnan(field1));
++			pos2=find(isnan(field2));
++			if numel(pos1)==numel(pos2) & all(pos1==pos2),
++				field1(pos1)=0; field2(pos2)=0;
++				if any(field1~=field2),
++					disp([fieldname ' differs']);
++				end
++			else
++				disp([fieldname ' differs']);
++			end
+ 		end
+ 	end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19122-19123.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19122-19123.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19122-19123.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19122)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19123)
+@@ -197,8 +197,10 @@
+ 			if ~isnan(md.inversion.cost_functions_coefficients), md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers); end;
+ 			if numel(md.inversion.min_parameters)>1, md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers); end;
+ 			if numel(md.inversion.max_parameters)>1, md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers); end;
+-			if ~isnan(md.surfaceforcings.mass_balance),
++			if isa(md.surfaceforcings,'SMB') & ~isnan(md.surfaceforcings.mass_balance),
+ 				md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers); 
++			elseif isa(md.surfaceforcings,'SMBhenning') & ~isnan(md.surfaceforcings.smbref),
++				md.surfaceforcings.smbref=project2d(md,md.surfaceforcings.smbref,md.mesh.numberoflayers);
+ 			end;
+ 			if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers); end;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19123-19124.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19123-19124.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19123-19124.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19123)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19124)
+@@ -1014,11 +1014,11 @@
+ 			end
+ 
+ 			%New fields
+-			if ~isfield(structmd,'upperelements');
++			if ~isfield(structmd,'upperelements') & isa(md.mesh,'mesh3dprisms')
+ 				md.mesh.upperelements=transpose(1:md.mesh.numberofelements)+md.mesh.numberofelements2d;
+ 				md.mesh.upperelements(end-md.mesh.numberofelements2d+1:end)=NaN;
+ 			end
+-			if ~isfield(structmd,'lowerelements');
++			if ~isfield(structmd,'lowerelements') & isa(md.mesh,'mesh3dprisms')
+ 				md.mesh.lowerelements=transpose(1:md.mesh.numberofelements)-md.mesh.numberofelements2d;
+ 				md.mesh.lowerelements(1:md.mesh.numberofelements2d)=NaN;
+ 			end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19124-19125.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19124-19125.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19124-19125.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19124)
++++ ../trunk-jpl/jenkins/windows	(revision 19125)
+@@ -46,6 +46,7 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="cccl        install-win7.sh
++						autotools   install-win.sh
+ 						cmake       install.sh                
+ 						petsc       install-3.1-win7.sh
+ 						metis       install-4.0-win7.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19125-19126.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19125-19126.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19125-19126.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19125)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19126)
+@@ -24,7 +24,7 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1.win7-32.sh
++	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "3" ]]; then 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19128-19129.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19128-19129.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19128-19129.diff	(revision 20498)
@@ -0,0 +1,63 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19128)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19129)
+@@ -26,7 +26,7 @@
+ if [[ "$compiler" == "1" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1-win64.sh
++	source $config_dir/sdk7.1-win32.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
+Index: ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win32.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win32.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win32.sh	(revision 19129)
+@@ -0,0 +1,39 @@
++# -----------------------------------------------------------------------------
++# 
++# The following variables can vary from system to system and standard
++# installation is assumed throughout. If different directories were used when
++# installing MSVC, or Win SDK.
++#
++# TODO: Bring out the host machine arhictecture specific stuff from INCLUDE,
++# LIB and LIBPATH.
++#
++# -----------------------------------------------------------------------------
++
++# The version of Visual Studio is 10.0. Newer versions should work as well.
++export MSVC_DIR='C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\'
++
++# SDK change from 7 to 8 involved changing the locations of important 
++# libraries. If you wish to use 8.0 or 8.1 then you need to provide the 
++# directory of 'Windows Kits' instead.
++export WIN_SDK_DIR='C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\'
++
++# Unfotunately, standard installation directories of Matlab usually include 
++# white spaces that are not handled correctly by the command interpreter. As
++# such, the directory where one would find Matlab headers and libraries might
++# need to be provided as environment variables.
++export MATLAB_DIR_WIN=`cygpath -w ${MATLAB_DIR}`
++export MATLAB_DIR_LIB="${MATLAB_DIR_WIN}\\extern\\lib\\microsoft"
++
++# Information about the .NET framework is required to run the MSVC toolchain
++export FrameworkDir='C:\Windows\Microsoft.NET\Framework\'
++export FrameworkVersion=v4.0.30319
++
++# LIB and LIBPATH seem redundant, but MSVC linker and compiler use different 
++# variables for the same purpose.
++export INCLUDE="${MSVC_DIR}include;${WIN_SDK_DIR}Include;${MATLAB_DIR_WIN}\\extern\\include;"
++export LIB="${MSVC_DIR}lib;${WIN_SDK_DIR}Lib;${MATLAB_DIR_LIB}"
++export LIBPATH="${FrameworkDir}${FrameworkVersion};${MATLAB_DIR_LIB};"
++export LIBPATH="${LIBPATH}${MSVC_DIR}lib;${MSVC_DIR}bin;${WIN_SDK_DIR}Lib;"
++
++export MSVC_DIR_UNIX=`cygpath -u "${MSVC_DIR}"`
++export PATH="${MSVC_DIR_UNIX}/bin:$PATH"
+
+Property changes on: ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win32.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19129-19130.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19129-19130.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19129-19130.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19129)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19130)
+@@ -24,9 +24,9 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
++	source $config_dir/sdk7.1-win32.sh
++elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+-elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1-win32.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19130-19131.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19130-19131.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19130-19131.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19130)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19131)
+@@ -24,9 +24,9 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1-win32.sh
++	source $config_dir/sdk7.1.win7-32.sh
+ elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1-win64.sh
++	source $config_dir/sdk7.1.win7-64.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19131-19132.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19131-19132.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19131-19132.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19131)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19132)
+@@ -24,7 +24,7 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1.win7-32.sh
++	source $config_dir/sdk7.1.win7-64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1.win7-64.sh
+ elif [[ "$compiler" == "3" ]]; then 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19132-19133.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19132-19133.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19132-19133.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/packagers/macosx/install.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/install.sh	(revision 19132)
++++ ../trunk-jpl/packagers/macosx/install.sh	(revision 19133)
+@@ -28,7 +28,6 @@
+                   mpich     install-3.0-macosx64-static.sh
+                   cmake     install.sh                
+                   petsc     install-3.5-macosx64-static.sh
+-						m1qn3     install.sh    
+                   triangle  install-macosx64.sh "
+ 
+ # Install Externalpackages
Index: /issm/oecreview/Archive/19101-20495/ISSM-19133-19134.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19133-19134.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19133-19134.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/packagers/macosx/install.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/install.sh	(revision 19133)
++++ ../trunk-jpl/packagers/macosx/install.sh	(revision 19134)
+@@ -28,6 +28,7 @@
+                   mpich     install-3.0-macosx64-static.sh
+                   cmake     install.sh                
+                   petsc     install-3.5-macosx64-static.sh
++						m1qn3     install.sh    
+                   triangle  install-macosx64.sh "
+ 
+ # Install Externalpackages
+@@ -117,7 +118,6 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags=" -L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich -lpmpich" \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-fortran-lib="/usr/local/lib/libgfortran.a" \
+ 	--enable-debugging \
+ 	--with-numthreads=4
Index: /issm/oecreview/Archive/19101-20495/ISSM-19136-19137.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19136-19137.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19136-19137.diff	(revision 20498)
@@ -0,0 +1,110 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19136)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19137)
+@@ -2573,10 +2573,12 @@
+    int        i;
+    IssmDouble agd[NUMVERTICES];             // surface mass balance
+    IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
++   IssmDouble yearlytemperatures[NUMVERTICES]={0.};
+    IssmDouble tmp[NUMVERTICES];
+    IssmDouble h[NUMVERTICES],s[NUMVERTICES];
+    IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
+    IssmDouble PfacTime,TdiffTime,sealevTime;
++   IssmDouble mavg=1./12.; //factor for monthly average
+    
+    /*Get material parameters :*/
+    rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+@@ -2589,7 +2591,7 @@
+   rlaps=matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
+   rlapslgm=matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
+ 
+-   /*Recover monthly temperatures and precipitation and Present day and LGm ones*/
++   /*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/
+    Input*     input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
+    Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
+    GaussTria* gauss=new GaussTria();
+@@ -2597,15 +2599,15 @@
+    this->parameters->FindParam(&time,TimeEnum);
+    this->parameters->FindParam(&yts,ConstantsYtsEnum);
+ 
+-
+    for(int month=0;month<12;month++) {
+      for(int iv=0;iv<NUMVERTICES;iv++) {
+        gauss->GaussVertex(iv);
+        input->GetInputValue(&monthlytemperatures[iv][month],gauss,time+month/12.*yts);
+-       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius
++       yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin 
++       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+        input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
+      }
+-   }
++   }     
+ 
+   /*Recover Pfac, Tdiff and sealev at time t:
+     This parameters are used to interpolate the temperature 
+@@ -2625,11 +2627,11 @@
+      
+    /*measure the surface mass balance*/
+   for (int iv = 0; iv<NUMVERTICES; iv++){
+-     agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
++    agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
+ 				  pdds, pds, signorm, yts, h[iv], s[iv],
+ 				  desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
+ 				  rho_water,rho_ice);
+-   }
++  }
+ 
+    /*Update inputs*/    
+    // TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+@@ -2647,7 +2649,8 @@
+    // NewPrecipitationInput->Configure(this->parameters);
+ 
+ 
+-   this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++  this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++  this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+    // this->inputs->AddInput(NewTemperatureInput);
+    // this->inputs->AddInput(NewPrecipitationInput);
+    // this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19136)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19137)
+@@ -2165,10 +2165,12 @@
+    int        i;
+    IssmDouble agd[NUMVERTICES];             // surface mass balance
+    IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
++   IssmDouble yearlytemperatures[NUMVERTICES]={0.};
+    IssmDouble tmp[NUMVERTICES];
+    IssmDouble h[NUMVERTICES],s[NUMVERTICES];
+    IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
+    IssmDouble PfacTime,TdiffTime,sealevTime;
++   IssmDouble mavg=1./12.; //factor for monthly average
+ 
+    /*Get material parameters :*/
+    rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+@@ -2193,7 +2195,8 @@
+      for(int iv=0;iv<NUMVERTICES;iv++) {
+        gauss->GaussVertex(iv);
+        input->GetInputValue(&monthlytemperatures[iv][month],gauss,time+month/12.*yts);
+-       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius
++       yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin 
++       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+        input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
+      }
+    } 
+@@ -2240,11 +2243,13 @@
+ 
+ 
+ 
++   this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+    this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+    // this->inputs->AddInput(NewTemperatureInput);
+    // this->inputs->AddInput(NewPrecipitationInput);
+    // //this->inputs->AddInput(new PentaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+     this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++    this->InputExtrude(TemperatureEnum,-1);
+    // this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+    // this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19137-19138.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19137-19138.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19137-19138.diff	(revision 20498)
@@ -0,0 +1,238 @@
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19137)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19138)
+@@ -7,9 +7,30 @@
+ /*Model processing*/
+ void ThermalAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+ 
++	/*Intermediary*/
++	int finiteelement = P1Enum;
++
+ 	/*Only 3d mesh supported*/
+-	int finiteelement = P1Enum;
+-	if(iomodel->domaintype==Domain3DEnum){
++	if(iomodel->domaintype!=Domain3DEnum) _error_("not supported yet");
++
++	/*Specific case for PDD, we want the constaints to be updated by the PDD scheme itself*/
++	bool isdynamic = false;
++	if(iomodel->solution_enum==ThermalSolutionEnum){
++		/*No PDD scheme, keep default*/
++	}
++	else if (iomodel->solution_enum==TransientSolutionEnum){
++		int smb_model;
++		iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++		if(smb_model==SMBpddEnum) isdynamic=true;
++	}
++	else{
++		_error_("Solution "<<EnumToStringx(iomodel->solution_enum)<<" not supported yet");
++	}
++
++	if(isdynamic){
++		IoModelToDynamicConstraintsx(constraints,iomodel,ThermalSpctemperatureEnum,ThermalAnalysisEnum,finiteelement);
++	}
++	else{
+ 		IoModelToConstraintsx(constraints,iomodel,ThermalSpctemperatureEnum,ThermalAnalysisEnum,finiteelement);
+ 	}
+ 
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19137)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19138)
+@@ -22,16 +22,15 @@
+ 	IssmDouble starttime,finaltime,dt,yts;
+ 	bool       isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
+ 	bool       save_results,dakota_analysis;
+-	bool       time_adapt=false;
++	bool       time_adapt;
+ 	int        output_frequency;
+-	int        domaintype,groundingline_migration;
+-	int        numoutputs         = 0;
+-	Analysis  *analysis = NULL;
+-	char**     requested_outputs = NULL;
++	int        domaintype,groundingline_migration,smb_model;
++	int        numoutputs;
++	Analysis  *analysis          = NULL;
++	char     **requested_outputs = NULL;
+ 
+-
+ 	/*intermediary: */
+-	int    step;
++	int        step;
+ 	IssmDouble time;
+ 
+ 	//first recover parameters common to all solutions
+@@ -53,6 +52,7 @@
+ 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+ 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
+ 	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
++	femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
+ 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+@@ -82,6 +82,7 @@
+ 
+ 		if(isthermal && domaintype==Domain3DEnum){
+ 			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
++			if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			thermal_core(femmodel);
+ 		}
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19137)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19138)
+@@ -160,7 +160,7 @@
+ 	this->results          = new Results(); //not initialized by CreateDataSets
+ 	/*Open input file on cpu 0 and create IoModel */
+ 	if(my_rank==0) IOMODEL = pfopen0(inputfilename ,"rb");
+-	IoModel* iomodel = new IoModel(IOMODEL,trace,X);
++	IoModel* iomodel = new IoModel(IOMODEL,in_solution_type,trace,X);
+ 
+ 	/*Figure out what analyses are activated for this solution*/
+ 	SolutionAnalysesList(&this->analysis_type_list,&this->nummodels,iomodel,this->solution_type);
+Index: ../trunk-jpl/src/c/classes/IoModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/IoModel.h	(revision 19137)
++++ ../trunk-jpl/src/c/classes/IoModel.h	(revision 19138)
+@@ -25,6 +25,9 @@
+ 		/*pointer to input file*/
+ 		FILE *fid;
+ 
++		/*Solution*/
++		int   solution_enum;
++
+ 		/*Partitioning*/
+ 		bool *my_elements;
+ 		int  *my_vertices;
+@@ -58,7 +61,7 @@
+ 		/*Methods*/
+ 		~IoModel();
+ 		IoModel();
+-		IoModel(FILE* iomodel_handle,bool trace,IssmPDouble* X);
++		IoModel(FILE* iomodel_handle,int solution_enum_in,bool trace,IssmPDouble* X);
+ 
+ 		/*Input/Output*/
+ 		void        CheckEnumSync(void);
+Index: ../trunk-jpl/src/c/classes/IoModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/IoModel.cpp	(revision 19137)
++++ ../trunk-jpl/src/c/classes/IoModel.cpp	(revision 19138)
+@@ -20,6 +20,7 @@
+ 
+ IoModel::IoModel(){/*{{{*/
+ 	this->fid=NULL;
++	this->solution_enum=-1;
+ 	this->data=NULL;
+ 	this->independents=NULL;
+ 	this->independent_objects=NULL;
+@@ -49,7 +50,7 @@
+ 	this->constraintcounter=0;
+ }
+ /*}}}*/
+-IoModel::IoModel(FILE* iomodel_handle,bool trace,IssmPDouble* X){/*{{{*/
++IoModel::IoModel(FILE* iomodel_handle,int solution_enum_in,bool trace,IssmPDouble* X){/*{{{*/
+ 
+ 	bool autodiff=false;
+ 	bool iscontrol=false;
+@@ -60,6 +61,9 @@
+ 	/*Check that Enums are Synchronized*/
+ 	this->CheckEnumSync();
+ 
++	/*Keep track of solution*/
++	this->solution_enum = solution_enum_in;
++
+ 	/*Initialize data: */
+ 	this->data=xNew<IssmDouble*>(MaximumNumberOfDefinitionsEnum);
+ 	for(int i=0;i<MaximumNumberOfDefinitionsEnum;i++) this->data[i]=NULL;
+@@ -239,7 +243,7 @@
+ 	}
+ }
+ /*}}}*/
+-void IoModel::Constant(bool* poutput,int constant_enum){/*{{{*/
++void  IoModel::Constant(bool* poutput,int constant_enum){/*{{{*/
+ 
+ 	_assert_(constant_enum>=0);
+ 	_assert_(this->constants);
+@@ -247,7 +251,7 @@
+ 	this->constants->FindParam(poutput,constant_enum);
+ }
+ /*}}}*/
+-void IoModel::Constant(int* poutput,int constant_enum){/*{{{*/
++void  IoModel::Constant(int* poutput,int constant_enum){/*{{{*/
+ 
+ 	_assert_(constant_enum>=0);
+ 	_assert_(this->constants);
+@@ -255,7 +259,7 @@
+ 	this->constants->FindParam(poutput,constant_enum);
+ }
+ /*}}}*/
+-void IoModel::Constant(IssmDouble* poutput,int constant_enum){/*{{{*/
++void  IoModel::Constant(IssmDouble* poutput,int constant_enum){/*{{{*/
+ 
+ 	_assert_(constant_enum>=0);
+ 	_assert_(this->constants);
+@@ -263,7 +267,7 @@
+ 	this->constants->FindParam(poutput,constant_enum);
+ }
+ /*}}}*/
+-void IoModel::Constant(char** poutput,int constant_enum){/*{{{*/
++void  IoModel::Constant(char** poutput,int constant_enum){/*{{{*/
+ 
+ 	_assert_(constant_enum>=0);
+ 	_assert_(this->constants);
+@@ -290,7 +294,7 @@
+ 	return this->data[data_enum];
+ }
+ /*}}}*/
+-void IoModel::StartTrace(bool trace){/*{{{*/
++void  IoModel::StartTrace(bool trace){/*{{{*/
+ 
+ 	bool autodiff = false;
+ 	bool iscontrol = false;
+@@ -330,7 +334,7 @@
+ 
+ }
+ /*}}}*/
+-void IoModel::DeclareIndependents(bool trace,IssmPDouble* X){/*{{{*/
++void  IoModel::DeclareIndependents(bool trace,IssmPDouble* X){/*{{{*/
+ 
+ 	int  i;
+ 	bool autodiff = false;
+@@ -1515,7 +1519,7 @@
+ 	*pnumrecords=num_instances;
+ }
+ /*}}}*/
+-void IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){/*{{{*/
++void  IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){/*{{{*/
+ 
+ 	/*intermediary: */
+ 	int         code,vector_layout;
+@@ -1540,7 +1544,7 @@
+ 	if(!this->independents[vector_enum]) xDelete<IssmDouble>(doublearray);
+ }
+ /*}}}*/
+-void IoModel::FetchDataToInput(Elements* elements,int vector_enum){/*{{{*/
++void  IoModel::FetchDataToInput(Elements* elements,int vector_enum){/*{{{*/
+ 
+ 	/*intermediary: */
+ 	int     i;
+@@ -1612,7 +1616,7 @@
+ 	xDelete<char>(string);
+ }
+ /*}}}*/
+-void IoModel::LastIndex(int *pindex){/*{{{*/
++void  IoModel::LastIndex(int *pindex){/*{{{*/
+ 
+ 	int my_rank;
+ 	int lastindex,index;
+@@ -1648,8 +1652,7 @@
+ 	*pindex=lastindex;
+ }
+ /*}}}*/
+-/*FUNCTION IoModel::SetFilePointerToData{{{*/
+-FILE* IoModel::SetFilePointerToData(int* pcode,int* pvector_type, int data_enum){
++FILE* IoModel::SetFilePointerToData(int* pcode,int* pvector_type, int data_enum){/*{{{*/
+ 
+ 	int my_rank;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19138-19139.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19138-19139.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19138-19139.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19138)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19139)
+@@ -1890,7 +1890,7 @@
+ 		MULTITHREADINGLIB="-lpthread -lrt"
+ 		;;
+ 		*darwin*)
+-		MULTITHREADINGLIB="-L/usr/lib/ -lpthread"
++		MULTITHREADINGLIB="-lpthread"
+ 		;;
+ 		esac
+ 		AC_DEFINE([_MULTITHREADING_],[1],[with numthreads enabled])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19139-19140.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19139-19140.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19139-19140.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19139)
++++ ../trunk-jpl/jenkins/windows	(revision 19140)
+@@ -12,7 +12,7 @@
+ 	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19140-19141.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19140-19141.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19140-19141.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19140)
++++ ../trunk-jpl/jenkins/windows	(revision 19141)
+@@ -5,10 +5,12 @@
+ 
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--with-vendor=MSVC-Win64  \
+    --disable-static \
+ 	--enable-standalone-libraries \
++	--with-fortran=no  \
+ 	--without-Gia \
+-	--with-vendor=MSVC-Win64  \
++	--without-kriging \
+ 	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19141-19142.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19141-19142.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19141-19142.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19141)
++++ ../trunk-jpl/jenkins/windows	(revision 19142)
+@@ -19,6 +19,7 @@
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+ 	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \
++	--enable-development \
+ 	--enable-debugging '
+ 
+ #MATLAB path
+@@ -82,5 +83,5 @@
+ #ex: "'id',[101 102 103]"
+ 
+ #In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
+-MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291]"
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19142-19143.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19142-19143.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19142-19143.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19142)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19143)
+@@ -18,6 +18,9 @@
+ 	if(iomodel->solution_enum==ThermalSolutionEnum){
+ 		/*No PDD scheme, keep default*/
+ 	}
++	else if(iomodel->solution_enum==SteadystateSolutionEnum){
++		/*No PDD scheme, keep default*/
++	}
+ 	else if (iomodel->solution_enum==TransientSolutionEnum){
+ 		int smb_model;
+ 		iomodel->Constant(&smb_model,SurfaceforcingsEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19143-19144.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19143-19144.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19143-19144.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19144-19145.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19144-19145.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19144-19145.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19144)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19145)
+@@ -141,6 +141,13 @@
+ 	if [ $NUMCPUS_INSTALL -gt 1 ]
+ 	then
+ 		echo "Making with " $NUMCPUS_INSTALL " cpus"
++
++		# Temporary fix to dependency issue between Mex files and libISSMMatlab
++		if [ "$OS" == "win7" ]
++		then
++			make -j $NUMCPUS_INSTALL install
++		fi
++
+ 		make -j $NUMCPUS_INSTALL install
+ 	else
+ 		make install
Index: /issm/oecreview/Archive/19101-20495/ISSM-19145-19146.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19145-19146.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19145-19146.diff	(revision 20498)
@@ -0,0 +1,75 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19145)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19146)
+@@ -172,6 +172,7 @@
+ 			export CXX=icl
+ 			export CFLAGS="-DWIN32 -D_INTEL_WIN_"
+ 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_"
++			IS_WINDOWS=yes
+ 		elif  test $VENDOR = intel-win7-32; then
+ 			export CC=cl
+ 			export CXX=cccl
+@@ -180,6 +181,7 @@
+ 			export AR="ar-lib lib"
+ 			export OS_LDFLAG="-Wl,"
+ 			export RANLIB=true
++			IS_WINDOWS=yes
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif  test $VENDOR = intel-win7-64; then
+ 			export CC=cl
+@@ -189,6 +191,7 @@
+ 			export AR="ar-lib lib"
+ 			export OS_LDFLAG="-Wl,"
+ 			export RANLIB=true
++			IS_WINDOWS=yes
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif  test $VENDOR = MSVC-Win64; then
+ 			export CC=cl
+@@ -198,6 +201,7 @@
+ 			export AR="ar-lib lib"
+ 			export OS_LDFLAG="-Wl,"
+ 			export RANLIB=true
++			IS_WINDOWS=yes
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif test $VENDOR = intel-linux; then
+ 			export CC=icc
+@@ -274,17 +278,14 @@
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/export:mexFunction -Wl,/LD"
+ 					MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+ 					MEXEXT=".$MEXEXT"
+-					IS_WINDOWS=yes
+   				elif test $VENDOR = intel-win7-64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
+-					IS_WINDOWS=yes
+   				elif test $VENDOR = MSVC-Win64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
+-					IS_WINDOWS=yes
+   				fi
+   			;;
+ 		   *)
+@@ -313,7 +314,7 @@
+ 			AC_MSG_ERROR([Couldn't find mex... check your installation of matlab])
+ 	   fi
+ 
+-		AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xyes])
++		AC_MSG_CHECKING([whether matlab is enabled])
+ 
+ 		AC_SUBST([MATLABINCL])
+ 		MATLABWRAPPEREXT=$MEXEXT
+@@ -322,6 +323,11 @@
+ 		AC_SUBST([MEXLINK])
+ 	fi
+ 	dnl }}}
++	dnl windows {{{
++	AC_MSG_CHECKING([Checking if this is a Win build... ])
++	AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xyes])
++	AC_MSG_RESULT(done)
++	dnl }}}
+ 	dnl triangle {{{
+ 	AC_ARG_WITH([triangle-dir],
+ 			  AS_HELP_STRING([--with-triangle-dir=DIR], [triangle root directory.]),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19146-19147.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19146-19147.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19146-19147.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 19146)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 19147)
+@@ -34,8 +34,8 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2'...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3'};
+ field_tolerances={1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,...
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11};
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,5e-11,...
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,5e-11};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+ 	md.results.TransientSolution(1).Vy,...
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 19146)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 19147)
+@@ -47,8 +47,8 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3']
+ field_tolerances=[1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,\
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,\
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11]
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,5e-11,\
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,5e-11]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19147-19148.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19147-19148.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19147-19148.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19147)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19148)
+@@ -530,7 +530,7 @@
+ 
+ 	dnl python specifics
+ 	if test "x$HAVE_PYTHON" = "xyes"; then
+-		AC_MSG_CHECKING(for python version)
++		AC_MSG_CHECKING([for python version])
+ 		dnl Query Python for its version number.  Getting [:3] seems to be the
+ 		dnl best way to do this; it's what "site.py" does in the standard library.
+ 		PYTHON_VERSION=$($PYTHON_ROOT/bin/python -c "import sys; print sys.version[[:3]]")
+@@ -545,7 +545,18 @@
+ 			HAVE_PYTHON3="no"
+ 		fi
+ 
+-		PYTHONINCL=-I$PYTHON_ROOT/include
++		AC_MSG_CHECKING([for python header file Python.h])
++		dnl Python.h mighty be in different locations:
++		if test -f "$PYTHON_ROOT/include/Python.h"; then
++			PYTHONINCL=-I$PYTHON_ROOT/include
++		else if test -f "$PYTHON_ROOT/include/python2.7/Python.h"; then
++			PYTHONINCL=-I$PYTHON_ROOT/include/python2.7
++		else
++			AC_MSG_ERROR([Python.h not found, locate this file and contact ISSM developers]);
++		fi
++		fi
++		AC_MSG_RESULT(found)
++
+ 		PYTHONLIB="-L$PYTHON_ROOT/lib -lpython$PYTHON_VERSION"
+ 		PYTHONEXT=.so
+ 		case "${host_os}" in
Index: /issm/oecreview/Archive/19101-20495/ISSM-19148-19149.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19148-19149.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19148-19149.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19148)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19149)
+@@ -549,8 +549,8 @@
+ 		dnl Python.h mighty be in different locations:
+ 		if test -f "$PYTHON_ROOT/include/Python.h"; then
+ 			PYTHONINCL=-I$PYTHON_ROOT/include
+-		else if test -f "$PYTHON_ROOT/include/python2.7/Python.h"; then
+-			PYTHONINCL=-I$PYTHON_ROOT/include/python2.7
++		else if test -f "$PYTHON_ROOT/include/python$PYTHON_VERSION/Python.h"; then
++			PYTHONINCL=-I$PYTHON_ROOT/include/python$PYTHON_VERSION
+ 		else
+ 			AC_MSG_ERROR([Python.h not found, locate this file and contact ISSM developers]);
+ 		fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-19149-19150.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19149-19150.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19149-19150.diff	(revision 20498)
@@ -0,0 +1,68 @@
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_newton.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_newton.cpp	(revision 19149)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_newton.cpp	(revision 19150)
+@@ -89,20 +89,10 @@
+ 		convergence(&converged,Kff,pf,uf,old_uf,eps_res,eps_rel,eps_abs); 
+ 		delete Kff; delete pf;
+ 		if(converged==true){	
+-			int step; IssmDouble time;
+-			bool max_iteration_state=false;
+-			femmodel->parameters->FindParam(&time,TimeEnum);
+-			femmodel->parameters->FindParam(&step,StepEnum);
+-			femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, step,time));
+ 			break;
+ 		}
+ 		if(count>=max_nonlinear_iterations){
+ 			_printf0_("   maximum number of Newton iterations (" << max_nonlinear_iterations << ") exceeded\n"); 
+-			int step; IssmDouble time;
+-			bool max_iteration_state=true;
+-			femmodel->parameters->FindParam(&time,TimeEnum);
+-			femmodel->parameters->FindParam(&step,StepEnum);
+-			femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, step, time));
+ 			break;
+ 		}
+ 
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_thermal_nonlinear.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_thermal_nonlinear.cpp	(revision 19149)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_thermal_nonlinear.cpp	(revision 19150)
+@@ -101,10 +101,6 @@
+ 				max_iteration_state=true;
+ 			}
+ 			if(converged==true){
+-				int step; IssmDouble time;
+-				femmodel->parameters->FindParam(&time,TimeEnum);
+-				femmodel->parameters->FindParam(&step,StepEnum);
+-				femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, step, time));
+ 				break;
+ 			}
+ 			else if(dt==0.){
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19149)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19150)
+@@ -88,11 +88,6 @@
+ 		/*Increase count: */
+ 		count++;
+ 		if(converged==true){
+-			bool max_iteration_state=false;
+-			int step; IssmDouble time;
+-			femmodel->parameters->FindParam(&time,TimeEnum);
+-			femmodel->parameters->FindParam(&step,StepEnum);
+-			femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, step, time));
+ 			break;
+ 		}
+ 		if(count>=max_nonlinear_iterations){
+@@ -100,11 +95,6 @@
+ 			converged=true;
+ 			InputUpdateFromConstantx(femmodel,converged,ConvergedEnum);
+ 			InputUpdateFromSolutionx(femmodel,ug);		
+-			bool max_iteration_state=true;
+-			int step; IssmDouble time;
+-			femmodel->parameters->FindParam(&time,TimeEnum);
+-			femmodel->parameters->FindParam(&step,StepEnum);
+-			femmodel->results->AddObject(new GenericExternalResult<bool>(femmodel->results->Size()+1, MaxIterationConvergenceFlagEnum, max_iteration_state, step, time));
+ 			break;
+ 		}
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19150-19151.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19150-19151.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19150-19151.diff	(revision 20498)
@@ -0,0 +1,149 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19150)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19151)
+@@ -97,6 +97,7 @@
+ 	FrictionGammaEnum,
+ 	FrictionWaterLayerEnum,
+ 	FrictionEffectivePressureEnum,
++	FrictionCouplingEnum,
+ 	GeometryHydrostaticRatioEnum,
+ 	HydrologyModelEnum,
+ 	HydrologyshreveEnum,
+@@ -293,7 +294,6 @@
+ 	ProfilingCurrentMemEnum,
+ 	ProfilingCurrentFlopsEnum,
+ 	ProfilingSolutionTimeEnum,
+-	MaxIterationConvergenceFlagEnum,
+ 	SteadystateMaxiterEnum,
+ 	SteadystateNumRequestedOutputsEnum,
+ 	SteadystateReltolEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19150)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19151)
+@@ -105,6 +105,7 @@
+ 		case FrictionGammaEnum : return "FrictionGamma";
+ 		case FrictionWaterLayerEnum : return "FrictionWaterLayer";
+ 		case FrictionEffectivePressureEnum : return "FrictionEffectivePressure";
++		case FrictionCouplingEnum : return "FrictionCoupling";
+ 		case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio";
+ 		case HydrologyModelEnum : return "HydrologyModel";
+ 		case HydrologyshreveEnum : return "Hydrologyshreve";
+@@ -301,7 +302,6 @@
+ 		case ProfilingCurrentMemEnum : return "ProfilingCurrentMem";
+ 		case ProfilingCurrentFlopsEnum : return "ProfilingCurrentFlops";
+ 		case ProfilingSolutionTimeEnum : return "ProfilingSolutionTime";
+-		case MaxIterationConvergenceFlagEnum : return "MaxIterationConvergenceFlag";
+ 		case SteadystateMaxiterEnum : return "SteadystateMaxiter";
+ 		case SteadystateNumRequestedOutputsEnum : return "SteadystateNumRequestedOutputs";
+ 		case SteadystateReltolEnum : return "SteadystateReltol";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19150)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19151)
+@@ -105,6 +105,7 @@
+ 	      else if (strcmp(name,"FrictionGamma")==0) return FrictionGammaEnum;
+ 	      else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
+ 	      else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
++	      else if (strcmp(name,"FrictionCoupling")==0) return FrictionCouplingEnum;
+ 	      else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum;
+ 	      else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum;
+ 	      else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
+@@ -135,11 +136,11 @@
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
+-	      else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
+          else stage=2;
+    }
+    if(stage==2){
+-	      if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
++	      if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
++	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum;
+ 	      else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+-	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
++	      if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
++	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+ 	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+ 	      else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
+@@ -307,7 +308,6 @@
+ 	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
+ 	      else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum;
+ 	      else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
+-	      else if (strcmp(name,"MaxIterationConvergenceFlag")==0) return MaxIterationConvergenceFlagEnum;
+ 	      else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
+ 	      else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19150)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19151)
+@@ -119,6 +119,7 @@
+ void Friction::GetAlphaHydroComplement(IssmDouble* palpha_complement, Gauss* gauss){/*{{{*/
+ 
+ 	/*diverse: */
++	int         CoupledFlag;
+ 	IssmDouble  q_exp;
+ 	IssmDouble  C_param;
+ 	IssmDouble  As;
+@@ -134,9 +135,16 @@
+ 	element->GetInputValue(&C_param,FrictionCEnum);
+ 
+ 	element->GetInputValue(&As,gauss,FrictionAsEnum);
+-	element->GetInputValue(&Neff,gauss,FrictionEffectivePressureEnum);
+ 	element->GetInputValue(&n,gauss,MaterialsRheologyNEnum);
++	element->parameters->FindParam(&CoupledFlag,FrictionCouplingEnum);
+ 
++	if (CoupledFlag==1){
++		element->GetInputValue(&Neff,gauss,EffectivePressureEnum);
++	}
++	else{
++		element->GetInputValue(&Neff,gauss,FrictionEffectivePressureEnum);
++	}
++
+ 	if(Neff<0)Neff=0;
+ 
+ 	//We need the velocity magnitude to evaluate the basal stress:
+@@ -214,9 +222,10 @@
+ 		Not tested so far so use at your own risks
+ 	  alpha2= NeffC[Chi/(1+alpha*Chi^q)]^(1/n)*1/vel  with
+ 		-Chi=|vel|/(C^n*Neff^n*As)
+-		-alpha=(q-1)^(q-1)/q^q  **/
++		-alpha=(q-1)^(q-1)/q^q */
+ 
+ 	/*diverse: */
++	int         CoupledFlag;
+ 	IssmDouble  q_exp;
+ 	IssmDouble  C_param;
+ 	IssmDouble  As;
+@@ -234,10 +243,16 @@
+ 	element->GetInputValue(&q_exp,FrictionQEnum);
+ 	element->GetInputValue(&C_param,FrictionCEnum);
+ 	element->GetInputValue(&As,gauss,FrictionAsEnum);
+-
+-	element->GetInputValue(&Neff,gauss,FrictionEffectivePressureEnum);
+ 	element->GetInputValue(&n,gauss,MaterialsRheologyNEnum);
+ 	
++	element->parameters->FindParam(&CoupledFlag,FrictionCouplingEnum);
++	if (CoupledFlag==1){
++		element->GetInputValue(&Neff,gauss,EffectivePressureEnum);
++	}
++	else{
++		element->GetInputValue(&Neff,gauss,FrictionEffectivePressureEnum);
++	}
++		
+ 	if(Neff<0)Neff=0;
+ 
+ 	switch(dim){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19151-19152.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19151-19152.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19151-19152.diff	(revision 20498)
@@ -0,0 +1,105 @@
+Index: ../trunk-jpl/src/m/classes/frictionhydro.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19151)
++++ ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19152)
+@@ -5,6 +5,7 @@
+ 
+ classdef frictionhydro
+ 	properties (SetAccess=public) 
++		Coupling           = 0;
+ 		q                  = NaN;
+ 		C                  = NaN;
+ 		As                 = NaN;
+@@ -26,6 +27,7 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
++			md = checkfield(md,'fieldname','friction.Coupling','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.C','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.As','NaN',1,'size',[md.mesh.numberofelements 1]);
+@@ -34,21 +36,27 @@
+ 			self.q=project3d(md,'vector',self.q,'type','element');
+ 			self.C=project3d(md,'vector',self.C,'type','element');
+ 			self.As=project3d(md,'vector',self.As,'type','element');
+-			self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1);
+-		end % }}}
++			if self.Coupling==1,
++				self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1);
++			end
++	  end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('Effective Pressure based friction law described in Gagliardini 2007'));
++			fielddisplay(self,'Coupling','Coupling flag, 1 for coupling and 0 for forcing');
+ 			fielddisplay(self,'q','friction law exponent q>=1');
+ 			fielddisplay(self,'C','friction law max value [SI]');
+ 			fielddisplay(self,'As','Sliding Parameter without cavitation [m Pa^-n s^-1]');
+-			fielddisplay(self,'effective_pressure','Effective Pressure [Pa]');
++			fielddisplay(self,'effective_pressure','Effective Pressure for the forcing if not coupled [Pa]');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'enum',FrictionLawEnum,'data',3,'format','Integer');
++			WriteData(fid,'class','friction','object',self,'fieldname','Coupling','format','Integer');
+ 			WriteData(fid,'class','friction','object',self,'fieldname','q','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'class','friction','object',self,'fieldname','C','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'class','friction','object',self,'fieldname','As','format','DoubleMat','mattype',2);
+-			WriteData(fid,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-		end % }}}
++			if self.Coupling==0,
++				WriteData(fid,'class','friction','object',self,'fieldname','effective_pressure','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			end
++	  end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/enum/MaxIterationConvergenceFlagEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MaxIterationConvergenceFlagEnum.m	(revision 19151)
++++ ../trunk-jpl/src/m/enum/MaxIterationConvergenceFlagEnum.m	(revision 19152)
+@@ -1,11 +0,0 @@
+-function macro=MaxIterationConvergenceFlagEnum()
+-%MAXITERATIONCONVERGENCEFLAGENUM - Enum of MaxIterationConvergenceFlag
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=MaxIterationConvergenceFlagEnum()
+-
+-macro=StringToEnum('MaxIterationConvergenceFlag');
+Index: ../trunk-jpl/src/m/enum/FrictionCouplingEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FrictionCouplingEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FrictionCouplingEnum.m	(revision 19152)
+@@ -0,0 +1,11 @@
++function macro=FrictionCouplingEnum()
++%FRICTIONCOUPLINGENUM - Enum of FrictionCoupling
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FrictionCouplingEnum()
++
++macro=StringToEnum('FrictionCoupling');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19151)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19152)
+@@ -97,6 +97,7 @@
+ def FrictionGammaEnum(): return StringToEnum("FrictionGamma")[0]
+ def FrictionWaterLayerEnum(): return StringToEnum("FrictionWaterLayer")[0]
+ def FrictionEffectivePressureEnum(): return StringToEnum("FrictionEffectivePressure")[0]
++def FrictionCouplingEnum(): return StringToEnum("FrictionCoupling")[0]
+ def GeometryHydrostaticRatioEnum(): return StringToEnum("GeometryHydrostaticRatio")[0]
+ def HydrologyModelEnum(): return StringToEnum("HydrologyModel")[0]
+ def HydrologyshreveEnum(): return StringToEnum("Hydrologyshreve")[0]
+@@ -293,7 +294,6 @@
+ def ProfilingCurrentMemEnum(): return StringToEnum("ProfilingCurrentMem")[0]
+ def ProfilingCurrentFlopsEnum(): return StringToEnum("ProfilingCurrentFlops")[0]
+ def ProfilingSolutionTimeEnum(): return StringToEnum("ProfilingSolutionTime")[0]
+-def MaxIterationConvergenceFlagEnum(): return StringToEnum("MaxIterationConvergenceFlag")[0]
+ def SteadystateMaxiterEnum(): return StringToEnum("SteadystateMaxiter")[0]
+ def SteadystateNumRequestedOutputsEnum(): return StringToEnum("SteadystateNumRequestedOutputs")[0]
+ def SteadystateReltolEnum(): return StringToEnum("SteadystateReltol")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19152-19153.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19152-19153.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19152-19153.diff	(revision 20498)
@@ -0,0 +1,672 @@
+Index: ../trunk-jpl/src/c/classes/kriging/Covertree.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Covertree.cpp	(revision 19152)
++++ ../trunk-jpl/src/c/classes/kriging/Covertree.cpp	(revision 19153)
+@@ -1,11 +1,9 @@
+ #include "../classes.h"
+-//#include <utility>
+ #include <set>
+-//#include <vector>
+ #include <algorithm>
+ 
+ 	/*Constructors/Destructors*/
+-Covertree::Covertree(int maxLevel,const std::vector<Observation>& points){
++Covertree::Covertree(int maxLevel,const std::vector<Observation>& points){/*{{{*/
+ 	this->base = 2.;
+ 	_root=NULL;
+ 	_numNodes=0;
+@@ -15,9 +13,8 @@
+ 	for(it=points.begin(); it!=points.end(); ++it) {
+ 		this->insert(*it);//adds data to the covertree object
+ 	}
+-}
+-
+-Covertree::~Covertree(){
++}/*}}}*/
++Covertree::~Covertree(){/*{{{*/
+ 	if(_root==NULL) return;
+ 	//Get all of the root's children (from any level),
+ 	//delete the root, repeat for each of the children
+@@ -30,10 +27,10 @@
+ 		nodes.insert(nodes.begin(),children.begin(),children.end());
+ 		delete byeNode;
+ 	}   
+-}
++}/*}}}*/
+ 
+-/*Methods*/
+-std::vector<Covertree::CoverTreeNode*> Covertree::kNearestNodes(const Observation& p, const unsigned int& k) const{
++	/*Methods*/
++std::vector<Covertree::CoverTreeNode*> Covertree::kNearestNodes(const Observation& p, const unsigned int& k) const{/*{{{*/
+ 	if(_root==NULL) return std::vector<CoverTreeNode*>();
+ 	//maxDist is the kth nearest known point to p, and also the farthest
+ 	//point from p in the set minNodes defined below.
+@@ -79,8 +76,8 @@
+ 		kNN.push_back(it->second);
+ 	}
+ 	return kNN;
+-}
+-bool Covertree::insert_rec(const Observation& p, const std::vector<distNodePair>& Qi, const int& level){
++}/*}}}*/
++bool   Covertree::insert_rec(const Observation& p, const std::vector<distNodePair>& Qi, const int& level){/*{{{*/
+ 	std::vector<std::pair<double, CoverTreeNode*> > Qj;
+ 	double sep = pow(base,level);
+ 	double minDist = 1.e+50;
+@@ -118,9 +115,8 @@
+ 			return found;
+ 		}
+ 	}
+-}
+-
+-void Covertree::remove_rec(const Observation& p, std::map<int,std::vector<distNodePair> >& coverSets, int level, bool& multi){
++}/*}}}*/
++void   Covertree::remove_rec(const Observation& p, std::map<int,std::vector<distNodePair> >& coverSets, int level, bool& multi){/*{{{*/
+ 	std::vector<distNodePair>& Qi = coverSets[level];
+ 	std::vector<distNodePair>& Qj = coverSets[level-1];
+ 	double minDist = 1.e+50;
+@@ -221,16 +217,11 @@
+ 			_numNodes--;
+ 		}
+ 	}
+-}
+-
+-int Covertree::get_numberofobs(){
++}/*}}}*/
++int Covertree::get_numberofobs(){/*{{{*/
+ 	return _numNodes;
+-}
+-
+-std::pair<double, Covertree::CoverTreeNode*>
+-Covertree::distance(const Observation& p,
+-			const std::vector<CoverTreeNode*>& Q)
+-{
++}/*}}}*/
++std::pair<double, Covertree::CoverTreeNode*> Covertree::distance(const Observation& p, const std::vector<CoverTreeNode*>& Q){/*{{{*/
+ 	double minDist = 1.e+50;
+ 	CoverTreeNode* minNode;
+ 	std::vector<CoverTreeNode*>::const_iterator it;
+@@ -242,10 +233,8 @@
+ 		}
+ 	}
+ 	return std::make_pair(minDist,minNode);  
+-}
+-
+-void Covertree::insert(const Observation& newObservation)
+-{
++}/*}}}*/
++void   Covertree::insert(const Observation& newObservation){/*{{{*/
+ 	if(_root==NULL) {
+ 		_root = new CoverTreeNode(newObservation);
+ 		_numNodes=1;
+@@ -264,10 +253,8 @@
+ 					(1,std::make_pair(_root->distance(newObservation),_root)),
+ 					_maxLevel);
+ 	}
+-}
+-
+-void Covertree::remove(const Observation& p)
+-{
++}/*}}}*/
++void   Covertree::remove(const Observation& p){/*{{{*/
+ 	//Most of this function's code is for the special case of removing the root
+ 	if(_root==NULL) return;
+ 	bool removingRoot=_root->hasObservation(p);
+@@ -304,9 +291,8 @@
+ 		_numNodes--;
+ 		_root=newRoot;
+ 	}
+-}
+-
+-std::vector<Observation> Covertree::kNearestNeighbors(const Observation& p, const unsigned int& k) const{
++}/*}}}*/
++std::vector<Observation> Covertree::kNearestNeighbors(const Observation& p, const unsigned int& k) const{/*{{{*/
+ 	if(_root==NULL) return std::vector<Observation>();
+ 	std::vector<CoverTreeNode*> v = kNearestNodes(p, k);
+ 	std::vector<Observation> kNN;
+@@ -317,9 +303,8 @@
+ 		if(kNN.size() >= k) break;
+ 	}
+ 	return kNN;
+-}
+-
+-void Covertree::print() const{
++}/*}}}*/
++void   Covertree::print() const{/*{{{*/
+ 	int d = _maxLevel-_minLevel+1;
+ 	std::vector<CoverTreeNode*> Q;
+ 	Q.push_back(_root);
+@@ -345,35 +330,26 @@
+ 		Q.insert(Q.end(),newQ.begin(),newQ.end());
+ 		std::cout << "\n\n";
+ 	}
+-}
++}/*}}}*/
+ 
+-Covertree::CoverTreeNode* Covertree::getRoot() const
+-{
++Covertree::CoverTreeNode* Covertree::getRoot() const{/*{{{*/
+ 	return _root;
+-}
+-
+-Covertree::CoverTreeNode::CoverTreeNode(const Observation& p) {
++}/*}}}*/
++Covertree::CoverTreeNode::CoverTreeNode(const Observation& p) {/*{{{*/
+ 	_observations.push_back(p);
+-}
+-
+-std::vector<Covertree::CoverTreeNode*>
+-Covertree::CoverTreeNode::getChildren(int level) const
+-{
++}/*}}}*/
++std::vector<Covertree::CoverTreeNode*> Covertree::CoverTreeNode::getChildren(int level) const{/*{{{*/
+ 	std::map<int,std::vector<CoverTreeNode*> >::const_iterator
+ 	  it = _childMap.find(level);
+ 	if(it!=_childMap.end()) {
+ 		return it->second;
+ 	}
+ 	return std::vector<CoverTreeNode*>();
+-}
+-
+-void Covertree::CoverTreeNode::addChild(int level, CoverTreeNode* p)
+-{
++}/*}}}*/
++void   Covertree::CoverTreeNode::addChild(int level, CoverTreeNode* p){/*{{{*/
+ 	_childMap[level].push_back(p);
+-}
+-
+-void Covertree::CoverTreeNode::removeChild(int level, CoverTreeNode* p)
+-{
++}/*}}}*/
++void   Covertree::CoverTreeNode::removeChild(int level, CoverTreeNode* p){/*{{{*/
+ 	std::vector<CoverTreeNode*>& v = _childMap[level];
+ 	for(unsigned int i=0;i<v.size();i++) {
+ 		if(v[i]==p) {
+@@ -382,51 +358,38 @@
+ 			break;
+ 		}
+ 	}
+-}
+-
+-void Covertree::CoverTreeNode::addObservation(const Observation& p)
+-{
++}/*}}}*/
++void   Covertree::CoverTreeNode::addObservation(const Observation& p){/*{{{*/
+ 	if(find(_observations.begin(), _observations.end(), p) == _observations.end())
+ 	 _observations.push_back(p);
+-}
+-
+-void Covertree::CoverTreeNode::removeObservation(const Observation& p)
+-{
++}/*}}}*/
++void   Covertree::CoverTreeNode::removeObservation(const Observation& p){/*{{{*/
+ 	std::vector<Observation>::iterator it =
+ 	  find(_observations.begin(), _observations.end(), p);
+ 	if(it != _observations.end())
+ 	 _observations.erase(it);
+-}
+-
+-double Covertree::CoverTreeNode::distance(const CoverTreeNode& p) const
+-{
++}/*}}}*/
++double Covertree::CoverTreeNode::distance(const CoverTreeNode& p) const{/*{{{*/
+ 	return _observations[0].distance(p.getObservation());
+-}
+-
+-bool Covertree::CoverTreeNode::isSingle() const
+-{
++}/*}}}*/
++bool   Covertree::CoverTreeNode::isSingle() const{/*{{{*/
+ 	return _observations.size() == 1;
+-}
+-
+-bool Covertree::CoverTreeNode::hasObservation(const Observation& p) const
+-{
++}/*}}}*/
++bool   Covertree::CoverTreeNode::hasObservation(const Observation& p) const{/*{{{*/
+ 	return find(_observations.begin(), _observations.end(), p) != _observations.end();
+-}
+-
+-const Observation& Covertree::CoverTreeNode::getObservation() const { return _observations[0]; }
+-
+-std::vector<Covertree::CoverTreeNode*>
+-Covertree::CoverTreeNode::getAllChildren() const
+-{
++}/*}}}*/
++const Observation& Covertree::CoverTreeNode::getObservation() const{/*{{{*/
++	return _observations[0]; 
++}/*}}}*/
++std::vector<Covertree::CoverTreeNode*> Covertree::CoverTreeNode::getAllChildren() const{/*{{{*/
+ 	std::vector<CoverTreeNode*> children;
+ 	std::map<int,std::vector<CoverTreeNode*> >::const_iterator it;
+ 	for(it=_childMap.begin();it!=_childMap.end();++it) {
+ 		children.insert(children.end(), it->second.begin(), it->second.end());
+ 	}
+ 	return children;
+-}
+-
+-bool Covertree::isValidTree() const {
++}/*}}}*/
++bool   Covertree::isValidTree() const {/*{{{*/
+ 	if(_numNodes==0)
+ 	 return _root==NULL;
+ 
+@@ -464,4 +427,4 @@
+ 		nodes.insert(nodes.begin(),allChildren.begin(),allChildren.end());
+ 	}
+ 	return true;
+-}
++}/*}}}*/
+Index: ../trunk-jpl/src/c/classes/kriging/Covertree.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Covertree.h	(revision 19152)
++++ ../trunk-jpl/src/c/classes/kriging/Covertree.h	(revision 19153)
+@@ -7,10 +7,8 @@
+ 
+ class Covertree{
+ 
+-	/**
+-	 * Cover tree node. Consists of arbitrarily many points P, as long as
+-	 * they have distance 0 to each other. Keeps track of its children.
+-	 */
++	/* Cover tree node. Consists of arbitrarily many points P, as long as they
++	 * have distance 0 to each other. Keeps track of its children.  */
+ 	class CoverTreeNode{
+ 		private:
+ 			//_childMap[i] is a vector of the node's children at level i
+@@ -33,10 +31,8 @@
+ 			void removeObservation(const Observation& o);
+ 			const std::vector<Observation>& getObservations() { return _observations; }
+ 			double distance(const CoverTreeNode& p) const;
+-
+-			bool isSingle() const;
+-			bool hasObservation(const Observation& o) const;
+-
++			bool   isSingle() const;
++			bool   hasObservation(const Observation& o) const;
+ 			const Observation& getObservation() const;
+ 
+ 			/**
+@@ -48,33 +44,24 @@
+ 	private:
+ 	typedef std::pair<double, CoverTreeNode*> distNodePair;
+ 
+-	CoverTreeNode* _root;
+-	unsigned int _numNodes;
+-	int _maxLevel;//base^_maxLevel should be the max distance
++	CoverTreeNode *_root;
++	unsigned int   _numNodes;
++	int            _maxLevel;   //base^_maxLevel should be the max distance
+ 	//between any 2 points
+-	int _minLevel;//A level beneath which there are no more new nodes.
++	int            _minLevel;   //A level beneath which there are no more new nodes.
+ 
+-	std::vector<CoverTreeNode*>
+-	  kNearestNodes(const Observation& o, const unsigned int& k) const;
++	std::vector<CoverTreeNode*> kNearestNodes(const Observation& o, const unsigned int& k) const;
+ 	/**
+ 	 * Recursive implementation of the insert algorithm (see paper).
+ 	 */
+-	bool insert_rec(const Observation& p,
+-				const std::vector<distNodePair>& Qi,
+-				const int& level);
++	bool insert_rec(const Observation& p, const std::vector<distNodePair>& Qi,const int& level);
+ 
+-	/**
+-	 * Finds the node in Q with the minimum distance to p. Returns a
+-	 * pair consisting of this node and the distance.
+-	 */
+-	distNodePair distance(const Observation& p,
+-				const std::vector<CoverTreeNode*>& Q);
++	/* Finds the node in Q with the minimum distance to p. Returns a pair
++	 * consisting of this node and the distance.  */
++	distNodePair distance(const Observation& p,const std::vector<CoverTreeNode*>& Q);
+ 
+ 
+-	void remove_rec(const Observation& p,
+-				std::map<int,std::vector<distNodePair> >& coverSets,
+-				int level,
+-				bool& multi);
++	void remove_rec(const Observation& p, std::map<int,std::vector<distNodePair> >& coverSets, int level, bool& multi);
+ 
+ 	public:
+ 	double base;
+@@ -88,8 +75,7 @@
+ 	 * if an inaccurate maxDist is given.
+ 	 */
+ 
+-	Covertree(int maxDist,
+-				const std::vector<Observation>& points=std::vector<Observation>()); 
++	Covertree(int maxDist,const std::vector<Observation>& points=std::vector<Observation>()); 
+ 	~Covertree();
+ 
+ 	/**
+Index: ../trunk-jpl/src/c/classes/kriging/Observations.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 19152)
++++ ../trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 19153)
+@@ -58,9 +58,6 @@
+ 		default:
+ 			_error_("Tree type "<<this->treetype<<" not supported yet (1: quadtree, 2: covertree)");
+ 	}
+-
+-
+-
+ }
+ /*}}}*/
+ Observations::~Observations(){/*{{{*/
+@@ -130,7 +127,7 @@
+ 		if(observations_list[i]>maxtrimming) continue;
+ 		if(observations_list[i]<mintrimming) continue;
+ 
+-		/*First check that this observation is not too close from another one*/
++		/*Second, check that this observation is not too close from another one*/
+ 		this->quadtree->ClosestObs(&index,x[i],y[i]);
+ 		if(index>=0){
+ 			observation=xDynamicCast<Observation*>(this->GetObjectByOffset(index));
+@@ -156,12 +153,38 @@
+ /*}}}*/
+ void Observations::InitCovertree(IssmPDouble* observations_list,IssmPDouble* x,IssmPDouble* y,int n,Options* options){/*{{{*/
+ 
+-    int maxdepth = 20;
++	/*Intermediaries*/
++    int          maxdepth = 20;
++	 IssmPDouble  minspacing,mintrimming,maxtrimming;
++
++	/*Checks*/
++	_assert_(n);
++
++	/*Get trimming limits*/
++	options->Get(&mintrimming,"mintrimming",-1.e+21);
++	options->Get(&maxtrimming,"maxtrimming",+1.e+21);
++	options->Get(&minspacing,"minspacing",0.01);
++	if(minspacing<=0) _error_("minspacing must > 0");
++
+ 	 _printf0_("Generating covertree with a maximum depth " <<  maxdepth <<"... ");
+     this->covertree=new Covertree(maxdepth);
+ 
+     for(int i=0;i<n;i++){
+-		 this->covertree->insert(Observation(x[i],y[i],observations_list[i]));
++
++		/*First check limits*/
++		if(observations_list[i]>maxtrimming) continue;
++		if(observations_list[i]<mintrimming) continue;
++
++		/*Second, check that this observation is not too close from another one*/
++		Observation newobs = Observation(x[i],y[i],observations_list[i]);
++		if(i>0 && this->covertree->getRoot()){
++			/*Get closest obs and see if it is too close*/
++			std::vector<Observation> kNN=(this->covertree->kNearestNeighbors(newobs,1));
++			Observation oldobs = (*kNN.begin());
++			if(oldobs.distance(newobs)<minspacing) continue;
++		}
++
++		this->covertree->insert(newobs);
+     }
+ 	 _printf0_("done\n");
+ }
+@@ -170,6 +193,20 @@
+ /*Methods*/
+ void Observations::ClosestObservation(IssmPDouble *px,IssmPDouble *py,IssmPDouble *pobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
+ 
++	switch(this->treetype){
++		case 1:
++			this->ClosestObservationQuadtree(px,py,pobs,x_interp,y_interp,radius);
++			break;
++		case 2:
++			this->ClosestObservationCovertree(px,py,pobs,x_interp,y_interp,radius);
++			break;
++		default:
++			_error_("Tree type "<<this->treetype<<" not supported yet (1: quadtree, 2: covertree)");
++	}
++
++}/*}}}*/
++void Observations::ClosestObservationQuadtree(IssmPDouble *px,IssmPDouble *py,IssmPDouble *pobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
++
+ 	/*Output and Intermediaries*/
+ 	int          nobs,i,index;
+ 	IssmPDouble  hmin,h2,hmin2;
+@@ -219,6 +256,28 @@
+ 	xDelete<int>(indices);
+ 
+ }/*}}}*/
++void Observations::ClosestObservationCovertree(IssmPDouble *px,IssmPDouble *py,IssmPDouble *pobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
++
++	IssmPDouble hmin  = UNDEF;
++
++	if(this->covertree->getRoot()){
++		/*Get closest obs and see if it is too close*/
++		Observation newobs = Observation(x_interp,y_interp,0.);
++		std::vector<Observation> kNN=(this->covertree->kNearestNeighbors(newobs,1));
++		Observation observation = (*kNN.begin());
++		hmin = observation.distance(newobs);
++		if(hmin<=radius){
++			*px   = observation.x;
++			*py   = observation.y;
++			*pobs = observation.value;
++			return;
++		}
++	}
++
++	*px   = UNDEF;
++	*py   = UNDEF;
++	*pobs = UNDEF;
++}/*}}}*/
+ void Observations::Distances(IssmPDouble* distances,IssmPDouble *x,IssmPDouble *y,int n,IssmPDouble radius){/*{{{*/
+ 
+ 	IssmPDouble xi,yi,obs;
+@@ -233,12 +292,47 @@
+ 		}
+ 	}
+ }/*}}}*/
++void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs){/*{{{*/
++
++	/*Output and Intermediaries*/
++	int          nobs;
++	IssmPDouble *x            = NULL;
++	IssmPDouble *y            = NULL;
++	IssmPDouble *obs          = NULL;
++	Observation *observation  = NULL;
++
++	nobs = this->Size();
++
++	if(nobs){
++		x   = xNew<IssmPDouble>(nobs);
++		y   = xNew<IssmPDouble>(nobs);
++		obs = xNew<IssmPDouble>(nobs);
++		for(int i=0;i<this->Size();i++){
++			observation=xDynamicCast<Observation*>(this->GetObjectByOffset(i));
++			observation->WriteXYObs(&x[i],&y[i],&obs[i]);
++		}
++	}
++
++	/*Assign output pointer*/
++	*px=x;
++	*py=y;
++	*pobs=obs;
++	*pnobs=nobs;
++}/*}}}*/
+ void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int maxdata){/*{{{*/
+ 
+-	if(this->treetype==2){
+-		this->ObservationList2(px,py,pobs,pnobs,x_interp,y_interp,radius,maxdata);
+-		return;
++	switch(this->treetype){
++		case 1:
++			this->ObservationListQuadtree(px,py,pobs,pnobs,x_interp,y_interp,radius,maxdata);
++			break;
++		case 2:
++			this->ObservationListCovertree(px,py,pobs,pnobs,x_interp,y_interp,radius,maxdata);
++			break;
++		default:
++			_error_("Tree type "<<this->treetype<<" not supported yet (1: quadtree, 2: covertree)");
+ 	}
++}/*}}}*/
++void Observations::ObservationListQuadtree(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int maxdata){/*{{{*/
+ 
+ 	/*Output and Intermediaries*/
+ 	bool         stop;
+@@ -320,32 +414,48 @@
+ 	*pobs=obs;
+ 	*pnobs=nobs;
+ }/*}}}*/
+-void Observations::ObservationList(IssmPDouble **px,IssmPDouble **py,IssmPDouble **pobs,int* pnobs){/*{{{*/
++void Observations::ObservationListCovertree(double **px,double **py,double **pobs,int* pnobs,double x_interp,double y_interp,double radius,int maxdata){/*{{{*/
+ 
+-	/*Output and Intermediaries*/
+-	int          nobs;
+-	IssmPDouble *x            = NULL;
+-	IssmPDouble *y            = NULL;
+-	IssmPDouble *obs          = NULL;
+-	Observation *observation  = NULL;
++	double *x            = NULL;
++	double *y            = NULL;
++	double *obs          = NULL;
++	Observation observation=Observation(x_interp,y_interp,0.);
++	std::vector<Observation> kNN;
+ 
+-	nobs = this->Size();
++	kNN=(this->covertree->kNearestNeighbors(observation, maxdata));
++	//cout << "kNN's size: " << kNN.size() << " (maxdata = " <<maxdata<<")"<<endl;
+ 
+-	if(nobs){
+-		x   = xNew<IssmPDouble>(nobs);
+-		y   = xNew<IssmPDouble>(nobs);
+-		obs = xNew<IssmPDouble>(nobs);
+-		for(int i=0;i<this->Size();i++){
+-			observation=xDynamicCast<Observation*>(this->GetObjectByOffset(i));
+-			observation->WriteXYObs(&x[i],&y[i],&obs[i]);
++	//kNN is sort from closest to farthest neighbor
++	//searches for the first neighbor that is out of radius
++	//deletes and resizes the kNN vector
++	vector<Observation>::iterator it;
++	if(radius>0.){
++		for (it = kNN.begin(); it != kNN.end(); ++it) {
++			//(*it).print();
++			//cout << "\n" << (*it).distance(observation) << endl;
++			if ((*it).distance(observation) > radius) {
++				break;
++			}
+ 		}
++		kNN.erase(it, kNN.end());
+ 	}
+ 
+-	/*Assign output pointer*/
++	/*Allocate vectors*/
++	x   = new double[kNN.size()];
++	y   = new double[kNN.size()];
++	obs = new double[kNN.size()];
++
++	/*Loop over all observations and fill in x, y and obs*/
++	int i = 0;
++	for(it = kNN.begin(); it != kNN.end(); ++it) {
++		(*it).WriteXYObs((*it), &x[i], &y[i], &obs[i]);
++		i++;
++	}
++
+ 	*px=x;
+ 	*py=y;
+ 	*pobs=obs;
+-	*pnobs=nobs;
++	*pnobs = kNN.size();
+ }/*}}}*/
+ void Observations::InterpolationIDW(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius,int mindata,int maxdata,IssmPDouble power){/*{{{*/
+ 
+@@ -362,9 +472,6 @@
+ 	_assert_(pprediction);
+ 	_assert_(power>0);
+ 
+-	/*If radius is not provided or is 0, return all observations*/
+-	if(radius==0) radius=this->quadtree->root->length;
+-
+ 	/*Get list of observations for current point*/
+ 	this->ObservationList(&x,&y,&obs,&n_obs,x_interp,y_interp,radius,maxdata);
+ 
+@@ -409,9 +516,6 @@
+ 	_assert_(mindata>0 && maxdata>0);
+ 	_assert_(pprediction && perror);
+ 
+-	/*If radius is not provided or is 0, return all observations*/
+-	if(radius==0) radius=this->quadtree->root->length;
+-
+ 	/*Get list of observations for current point*/
+ 	this->ObservationList(&x,&y,&obs,&n_obs,x_interp,y_interp,radius,maxdata);
+ 
+@@ -469,7 +573,6 @@
+ 	xDelete<IssmPDouble>(A);
+ 	xDelete<IssmPDouble>(B);
+ 	xDelete<IssmPDouble>(Lambda);
+-
+ }/*}}}*/
+ void Observations::InterpolationNearestNeighbor(IssmPDouble *pprediction,IssmPDouble x_interp,IssmPDouble y_interp,IssmPDouble radius){/*{{{*/
+ 
+@@ -616,47 +719,3 @@
+ 	xDelete<IssmPDouble>(counter);
+ }/*}}}*/
+ 
+-void Observations::ObservationList2(double **px,double **py,double **pobs,int* pnobs,double x_interp,double y_interp,double radius,int maxdata){/*{{{*/
+-    
+-
+-    double *x            = NULL;
+-    double *y            = NULL;
+-    double *obs          = NULL;
+-    Observation observation=Observation(x_interp,y_interp,0.);
+-    std::vector<Observation> kNN;
+-
+-	 kNN=(this->covertree->kNearestNeighbors(observation, maxdata));
+-	 //cout << "kNN's size: " << kNN.size() << " (maxdata = " <<maxdata<<")"<<endl;
+-	
+-	//kNN is sort from closest to farthest neighbor
+-	//searches for the first neighbor that is out of radius
+-	//deletes and resizes the kNN vector
+-	vector<Observation>::iterator it;
+-	if(radius>0.){
+-		for (it = kNN.begin(); it != kNN.end(); ++it) {
+-			//(*it).print();
+-			//cout << "\n" << (*it).distance(observation) << endl;
+-			if ((*it).distance(observation) > radius) {
+-				break;
+-			}
+-		}
+-		kNN.erase(it, kNN.end());
+-	}
+-    
+-	/*Allocate vectors*/
+-	x   = new double[kNN.size()];
+-	y   = new double[kNN.size()];
+-	obs = new double[kNN.size()];
+-
+-	/*Loop over all observations and fill in x, y and obs*/
+-	int i = 0;
+-	for(it = kNN.begin(); it != kNN.end(); ++it) {
+-		(*it).WriteXYObs((*it), &x[i], &y[i], &obs[i]);
+-		i++;
+-	}
+-    
+-    *px=x;
+-    *py=y;
+-    *pobs=obs;
+-	 *pnobs = kNN.size();
+-}/*}}}*/
+Index: ../trunk-jpl/src/c/classes/kriging/Observations.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Observations.h	(revision 19152)
++++ ../trunk-jpl/src/c/classes/kriging/Observations.h	(revision 19153)
+@@ -33,6 +33,8 @@
+ 
+ 		/*Methods*/
+ 		void ClosestObservation(IssmDouble *px,IssmDouble *py,IssmDouble *pobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius);
++		void ClosestObservationQuadtree(IssmDouble *px,IssmDouble *py,IssmDouble *pobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius);
++		void ClosestObservationCovertree(IssmDouble *px,IssmDouble *py,IssmDouble *pobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius);
+ 		void Distances(IssmPDouble* distances,IssmPDouble *x,IssmPDouble *y,int n,IssmPDouble radius);
+ 		void InterpolationIDW(IssmDouble *pprediction,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int mindata,int maxdata,IssmDouble power);
+ 		void InterpolationV4(IssmDouble *pprediction,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int mindata,int maxdata);
+@@ -40,7 +42,8 @@
+ 		void InterpolationNearestNeighbor(IssmDouble *pprediction,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius);
+ 		void ObservationList(IssmDouble **px,IssmDouble **py,IssmDouble **pobs,int* pnobs);
+ 		void ObservationList(IssmDouble **px,IssmDouble **py,IssmDouble **pobs,int* pnobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int maxdata);
+-		void ObservationList2(IssmDouble **px,IssmDouble **py,IssmDouble **pobs,int* pnobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int maxdata);
++		void ObservationListQuadtree(IssmDouble **px,IssmDouble **py,IssmDouble **pobs,int* pnobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int maxdata);
++		void ObservationListCovertree(IssmDouble **px,IssmDouble **py,IssmDouble **pobs,int* pnobs,IssmDouble x_interp,IssmDouble y_interp,IssmDouble radius,int maxdata);
+ 		void QuadtreeColoring(IssmDouble* A,IssmDouble *x,IssmDouble *y,int n);
+ 		void Variomap(IssmDouble* gamma,IssmDouble *x,int n);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19153-19154.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19153-19154.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19153-19154.diff	(revision 20498)
@@ -0,0 +1,80 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19153)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19154)
+@@ -122,6 +122,7 @@
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
+ 		IssmDouble         PureIceEnthalpy(IssmDouble pressure);
++		void               ResetIceLevelset(void);
+ 		void               ResultInterpolation(int* pinterpolation,int*nodesperelement,int output_enum);
+ 		void               ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum);
+ 		void               ResultToVector(Vector<IssmDouble>* vector,int output_enum);
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19153)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19154)
+@@ -335,13 +335,16 @@
+ 	IssmDouble  calvingratey[NUMVERTICES];
+ 	IssmDouble  calvingrate[NUMVERTICES];
+ 	IssmDouble  lambda1,lambda2,ex,ey,vx,vy,vel;
++	IssmDouble  sigma_vm,sigma_max;
+ 
+ 	/* Get node coordinates and dof list: */
+ 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+ 
+ 	/*Retrieve all inputs and parameters we will need*/
+-	Input* vx_input=inputs->GetInput(VxEnum);        _assert_(vx_input);
+-	Input* vy_input=inputs->GetInput(VyEnum);        _assert_(vy_input);
++	Input* vx_input = inputs->GetInput(VxEnum); _assert_(vx_input);
++	Input* vy_input = inputs->GetInput(VyEnum); _assert_(vy_input);
++	IssmDouble  B   = this->GetMaterialParameter(MaterialsRheologyBbarEnum);
++	IssmDouble  n   = this->GetMaterialParameter(MaterialsRheologyNEnum);
+ 
+ 	/* Start looping on the number of vertices: */
+ 	GaussTria* gauss=new GaussTria();
+@@ -365,9 +368,13 @@
+ 		lambda1 = max(lambda1,0.);
+ 		lambda2 = max(lambda2,0.);
+ 
++		/*Calculate sigma_vm*/
++		sigma_vm  = sqrt(3./2.) * B * pow(lambda1*lambda1 + lambda2*lambda2,1./(2.*n));
++		sigma_max = 350.e+3;
++
+ 		/*Assign values*/
+-		calvingratex[iv]=vx*pow(lambda1 + lambda2,1./3.)*3.e+2;
+-		calvingratey[iv]=vy*pow(lambda1 + lambda2,1./3.)*3.e+2;
++		calvingratex[iv]=vx*sigma_vm/sigma_max;
++		calvingratey[iv]=vy*sigma_vm/sigma_max;
+ 		calvingrate[iv]=sqrt(calvingratex[iv]*calvingratex[iv] + calvingratey[iv]*calvingratey[iv]);
+ 	}
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19153)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19154)
+@@ -1367,6 +1367,24 @@
+ IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/
+ 	return this->matpar->PureIceEnthalpy(pressure);
+ }/*}}}*/
++void       Element::ResetIceLevelset(void){/*{{{*/
++
++	/*Get Ice Levelset on vertices*/
++	int         numvertices = this->GetNumberOfVertices();
++	IssmDouble *values      = xNew<IssmDouble>(numvertices);
++	this->GetInputListOnVertices(values,MaskIceLevelsetEnum);
++
++	/*Project on {-1,+1}*/
++	for(int i=0;i<numvertices;i++){
++		if(values[i]>0) values[i]=+1.;
++		else            values[i]=-1.;
++	}
++	this->AddInput(MaskIceLevelsetEnum,values,P1Enum);
++
++	/*Cleanup and return*/
++	xDelete<IssmDouble>(values);
++
++}/*}}}*/
+ void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int output_enum){/*{{{*/
+ 
+ 	Input* input=this->inputs->GetInput(output_enum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19154-19155.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19154-19155.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19154-19155.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/examples/Greenland/runme.m
+===================================================================
+--- ../trunk-jpl/examples/Greenland/runme.m	(revision 19154)
++++ ../trunk-jpl/examples/Greenland/runme.m	(revision 19155)
+@@ -147,7 +147,7 @@
+ 	disp('   Step 6: Extract Box SMB');
+ 	md = loadmodel('./Models/Greenland.Transient');
+ 
+-	ncbox='../Data/Box_Greenland_SMB_monthly_1840-2012_5km_ver20140421.nc';
++	ncbox='../Data/Box_Greenland_SMB_monthly_1840-2012_5km_cal_ver20141007.nc';
+ 
+ 	%Set surface mass balance
+ 	lat  = ncread(ncbox,'lat');
+Index: ../trunk-jpl/examples/Data/Download.sh
+===================================================================
+--- ../trunk-jpl/examples/Data/Download.sh	(revision 19154)
++++ ../trunk-jpl/examples/Data/Download.sh	(revision 19155)
+@@ -16,7 +16,7 @@
+ $ISSM_DIR/scripts/DownloadExternalPackage2.py 'http://websrv.cs.umt.edu/isis/images/e/e9/Greenland_5km_dev1.2.nc' 'Greenland_5km_dev1.2.nc'
+ 
+ echo "Downloading Jason Box's SMB"
+-$ISSM_DIR/scripts/DownloadExternalPackage2.py 'http://issm.jpl.nasa.gov/files/workshop2014/Box_Greenland_SMB_monthly_1840-2012_5km_ver20140421.nc' 'Box_Greenland_SMB_monthly_1840-2012_5km_ver20140421.nc'
++$ISSM_DIR/scripts/DownloadExternalPackage2.py 'http://issm.jpl.nasa.gov/files/examples/Box_Greenland_SMB_monthly_1840-2012_5km_cal_ver20141007.nc' 'Box_Greenland_SMB_monthly_1840-2012_5km_cal_ver20141007.nc'
+ 
+ echo "Downloading IceBridge Jakobshavn bedrock"
+ $ISSM_DIR/scripts/DownloadExternalPackage2.py 'https://data.cresis.ku.edu/data/grids/old_versions/Jakobshavn_2008_2011_Composite.zip' 'Jakobshavn_2008_2011_Composite.zip'
Index: /issm/oecreview/Archive/19101-20495/ISSM-19155-19156.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19155-19156.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19155-19156.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/c/classes/kriging/Observations.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 19155)
++++ ../trunk-jpl/src/c/classes/kriging/Observations.cpp	(revision 19156)
+@@ -154,7 +154,6 @@
+ void Observations::InitCovertree(IssmPDouble* observations_list,IssmPDouble* x,IssmPDouble* y,int n,Options* options){/*{{{*/
+ 
+ 	/*Intermediaries*/
+-    int          maxdepth = 20;
+ 	 IssmPDouble  minspacing,mintrimming,maxtrimming;
+ 
+ 	/*Checks*/
+@@ -166,6 +165,25 @@
+ 	options->Get(&minspacing,"minspacing",0.01);
+ 	if(minspacing<=0) _error_("minspacing must > 0");
+ 
++	/*Get maximum distance between 2 points
++	 *  maxDist should be the maximum distance that any two points
++	 *  can have between each other. IE p.distance(q) < maxDist for all
++	 *  p,q that you will ever try to insert. The cover tree may be invalid
++	 *  if an inaccurate maxDist is given.*/
++	IssmPDouble xmin = x[0];
++	IssmPDouble xmax = x[0];
++	IssmPDouble ymin = y[0];
++	IssmPDouble ymax = y[0];
++	for(int i=1;i<n;i++){
++		if(x[i]<xmin) xmin=x[i];
++		if(x[i]>xmax) xmax=x[i];
++		if(y[i]<ymin) ymin=y[i];
++		if(y[i]>ymax) ymax=y[i];
++	}
++	IssmPDouble maxDist = sqrt(pow(xmax-xmin,2)+pow(ymax-ymin,2));
++	IssmPDouble base    = 2.;
++	int         maxdepth = ceilf(log(maxDist)/log(base));
++
+ 	 _printf0_("Generating covertree with a maximum depth " <<  maxdepth <<"... ");
+     this->covertree=new Covertree(maxdepth);
+ 
+@@ -533,6 +551,7 @@
+ 	IssmDouble unbias = variogram->Covariance(0.,0.);
+ 	/*First: Create semivariogram matrix for observations*/
+ 	for(i=0;i<n_obs;i++){
++		//printf("%g %g ==> %g\n",x[i],y[i],sqrt(pow(x[i]-x_interp,2)+pow(y[i]-y_interp,2)));
+ 		for(j=0;j<=i;j++){
+ 			A[i*(n_obs+1)+j] = variogram->Covariance(x[i]-x[j],y[i]-y[j]);
+ 			A[j*(n_obs+1)+i] = A[i*(n_obs+1)+j];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19156-19157.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19156-19157.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19156-19157.diff	(revision 20498)
@@ -0,0 +1,524 @@
+Index: ../trunk-jpl/src/m/os/issmscpin.py
+===================================================================
+--- ../trunk-jpl/src/m/os/issmscpin.py	(revision 19156)
++++ ../trunk-jpl/src/m/os/issmscpin.py	(revision 19157)
+@@ -54,18 +54,12 @@
+ 		else:
+ 			#just use standard unix scp
+ 			#string to copy multiple files using scp: 
+-			if len(packages)==1:
+-				string=packages[0]
+-			else:
+-				string='{'
+-				for package in packages:
+-					string+=packages[i]+','
+-				string=string[:-1]+'}'
+-
++			string='\{'+','.join([str(x) for x in packages])+'\}'
++			
+ 			if port:
+-				subprocess.call('scp -P %d %s@localhost:%s %s' % (port,login,os.path.join(path,string),os.getcwd),shell=True)
++				subprocess.call('scp -P %d %s@localhost:%s %s/. ' % (port,login,os.path.join(path,string),os.getcwd()),shell=True)
+ 			else:
+-				subprocess.call('scp %s@%s:%s %s' % (login,host,os.path.join(path,string),os.getcwd),shell=True)
++				subprocess.call('scp %s@%s:%s %s/.' % (login,host,os.path.join(path,string),os.getcwd()),shell=True)
+ 		
+ 			#check scp worked
+ 			for package in packages:
+Index: ../trunk-jpl/src/m/solve/loadresultsfromcluster.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfromcluster.py	(revision 19156)
++++ ../trunk-jpl/src/m/solve/loadresultsfromcluster.py	(revision 19157)
+@@ -34,28 +34,38 @@
+ 
+ 	#erase the log and output files
+ 	if md.qmu.isdakota:
+-		os.remove(os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name+'.outlog'))
+-		os.remove(os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name+'.errlog'))
++		filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
+ 	else:
+-		os.remove(md.miscellaneous.name+'.outlog')
+-		os.remove(md.miscellaneous.name+'.errlog')
+-		os.remove(md.miscellaneous.name+'.outbin')
+-		if not m.ispc():
+-			os.remove(md.private.runtimename+'.tar.gz')
++		filename=md.miscellaneous.name
+ 
+-	#erase input file if run was carried out on same platform.
++	TryRem('.errlog',filename)
++	TryRem('.outlog',filename)
++	
++	if not m.ispc():
++		TryRem('.tar.gz',md.private.runtimename)
++		if not md.qmu.isdakota:
++			TryRem('.outbin',filename)
++
++			#erase input file if run was carried out on same platform.
+ 	hostname=socket.gethostname()
+ 	if m.strcmpi(hostname,cluster.name):
+ 		if md.qmu.isdakota:
+-			os.remove(os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name+'.bin'))
+-			os.remove(os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name+'.queue'))
++			filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
++			TryRem('.queue',filename)
+ 		else:
+-			os.remove(md.miscellaneous.name+'.bin')
+-			os.remove(md.miscellaneous.name+'.toolkits')
++			filename=md.miscellaneous.name
++			TryRem('.toolkits',filename)
+ 			if not m.ispc():
+-				os.remove(md.miscellaneous.name+'.queue')
++				TryRem('.queue',filename)
+ 			else:
+-				os.remove(md.miscellaneous.name+'.bat')
++				TryRem('.bat',filename)
+ 
++		TryRem('.bin',filename)
++
+ 	return md
+ 
++def TryRem(extension,filename):
++	try:	
++		os.remove(filename+extension)
++	except OSError:
++		print 'WARNING, no '+extension+'  is present for run '+filename
+Index: ../trunk-jpl/src/m/consistency/QueueRequirements.py
+===================================================================
+--- ../trunk-jpl/src/m/consistency/QueueRequirements.py	(revision 0)
++++ ../trunk-jpl/src/m/consistency/QueueRequirements.py	(revision 19157)
+@@ -0,0 +1,20 @@
++def QueueRequirements(queudict,queue,np,time):
++	#QUEUEREQUIREMENTS - queue requirements in time, number of cpus, by name of queue.
++	#
++	#   Usage: 
++	#      QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,np,time)
++
++	#Ok, go through requirements for current queue:
++	try:
++		rtime=queudict[queue][0]
++	except KeyError:
++		raise Exception('QueueRequirements error message: availables queues are '+ queuedict.keys)
++		
++	if time<=0:
++		raise Exception('QueueRequirements: time should be a positive number')
++	if time>rtime:
++		raise Exception('QueueRequirements: time should be < '+ str(rtime)+ ' for queue: '+ queue)
++
++	#check on np requirements
++	if np<=0:
++		raise Exception('QueueRequirements: np should be a positive number')
+Index: ../trunk-jpl/src/m/dev/devpath.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.py	(revision 19156)
++++ ../trunk-jpl/src/m/dev/devpath.py	(revision 19157)
+@@ -1,12 +1,15 @@
+ #!/usr/bin/env python
+-
+ import os,sys
++import warnings
+ 
+ #Recover ISSM_DIR and USERNAME
+-ISSM_DIR=os.getenv('ISSM_DIR')
+-USERNAME =os.getenv('USER')
++ISSM_DIR = os.getenv('ISSM_DIR')
++USERNAME = os.getenv('USER')
++JPL_SVN  = os.getenv('JPL_SVN')
+ if(ISSM_DIR==None):
+ 	raise NameError('"ISSM_DIR" environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!')
++if(JPL_SVN==None):
++	warnings.warn('"JPL_SVN" environment variable is empty! add it to your .cshrc or .bashrc if you want to do distant computing')
+ 
+ #Go through src/m and append any directory that contains a *.py file to PATH 
+ for root,dirs,files in os.walk(ISSM_DIR+ '/src/m'):
+@@ -20,6 +23,12 @@
+ 				
+ sys.path.append(ISSM_DIR + '/lib')
+ sys.path.append(ISSM_DIR + '/src/wrappers/python/.libs')
++# If using clusters, we need to have the path to the cluster settings directory
++if(JPL_SVN!=None):
++	if os.path.exists(JPL_SVN + '/usr/' + USERNAME):
++		sys.path.append(JPL_SVN + '/usr/' + USERNAME)
++	else:
++		raise NameError ('cluster settings should be in, '+ JPL_SVN +'/usr/' + USERNAME)
+ 
+ #Manual imports for commonly used functions
+ from plotmodel import plotmodel
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19157)
+@@ -0,0 +1,182 @@
++# import socket
++# import os
++# import math
++import subprocess
++from fielddisplay import fielddisplay
++from EnumToString import EnumToString
++from pairoptions import pairoptions
++from issmssh import issmssh
++from issmscpin import issmscpin
++from issmscpout import issmscpout
++from QueueRequirements import QueueRequirements
++try:
++	from pfe_settings import pfe_settings
++except ImportError:
++	print 'You need pfe_settings.py to proceed, check presence and sys.path'
++	
++class pfe(object):
++	"""
++	PFE cluster class definition
++ 
++	   Usage:
++	      cluster=pfe();
++	      cluster=pfe('np',3);
++	      cluster=pfe('np',3,'login','username');
++	"""
++
++	def __init__(self,*args):
++		# {{{
++
++		self.name           = 'pfe'
++		self.login          = ''
++		self.numnodes       = 20
++		self.cpuspernode    = 8
++		self.port           = 1025
++		self.queue          = 'long'
++		self.time           = 12*60
++		self.processor      = 'wes'
++		self.codepath       = ''
++		self.executionpath  = ''
++		self.grouplist      = 's1010'
++		self.interactive    = 0
++		self.bbftp          = 0
++		self.numstreams     = 8
++		self.hyperthreading = 0
++
++		self.np=self.numnodes*self.cpuspernode;
++		
++		#use provided options to change fields
++		options=pairoptions(*args)
++
++		#initialize cluster using user settings if provided
++		self=pfe_settings(self)
++
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++		
++		# }}}
++
++	def __repr__(self):
++		# {{{
++		#  display the object
++		s = "class pfe object:"
++		s	= "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster'))
++		s	= "%s\n%s"%(s,fielddisplay(self,'login','login'))
++		s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes'))
++		s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs'))
++		s = "%s\n%s"%(s,fielddisplay(self,'np','number of CPUs'))
++		s = "%s\n%s"%(s,fielddisplay(self,'port','machine access port'))
++		s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue'))
++		s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested'))
++		s = "%s\n%s"%(s,fielddisplay(self,'processor','type of processor'))
++		s = "%s\n%s"%(s,fielddisplay(self,'grouplist','name of the group'))
++		s = "%s\n%s"%(s,fielddisplay(self,'interactive',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'bbftp',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'numstreams',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'hyperthreading',''))
++		return s
++	# }}}
++
++	def checkconsistency(self,md,solution,analyses):
++		# {{{
++
++
++		queuedict = {'long': [5*24*60, 2048],
++								 'normal': [8*60, 2048],
++								 'debug':[2*60,150],
++								 'devel':[2*60,150]}
++		QueueRequirements(queuedict,self.queue,self.np,self.time)
++
++		#now, check cluster.cpuspernode according to processor type
++		if self.processor=='har' or self.processor=='neh':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<17:
++					md = md.checkmessage('cpuspernode should be between 1 and 16 for ''neh'' and ''har'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<9:
++					md = md.checkmessage('cpuspernode should be between 1 and 8 for ''neh'' and ''har'' processors')
++
++		elif self.processor=='wes':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<25:
++					md = md.checkmessage('cpuspernode should be between 1 and 24 for ''wes'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<13:
++					md = md.checkmessage('cpuspernode should be between 1 and 12 for ''wes'' processors')
++
++		elif self.processor=='ivy':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<41:
++					md = md.checkmessage('cpuspernode should be between 1 and 40 for ''ivy'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<21:
++					md = md.checkmessage('cpuspernode should be between 1 and 20 for ''ivy'' processors')
++		else:
++			md = md.checkmessage('unknown processor type, should be ''neh'',''wes'' or ''har'' or ''ivy''')
++	
++		#Miscelaneous
++		if not self.login:
++			md = md.checkmessage('login empty')
++		if not self.codepath:
++			md = md.checkmessage('codepath empty')
++		if not self.executionpath:
++			md = md.checkmessage('executionpath empty')
++		if not self.grouplist:
++			md = md.checkmessage('grouplist empty')
++		if self.interactive==1:
++			md = md.checkmessage('interactive mode not implemented')
++			
++		return self
++	# }}}
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof):
++		# {{{
++
++		#write queuing script 
++		fid=open(modelname+'.queue','w')
++		fid.write('#PBS -S /bin/bash\n')
++		fid.write('#PBS -l select=%i:ncpus=%i:model=%s\n' % (self.numnodes,self.cpuspernode,self.processor))
++		fid.write('#PBS -l walltime=%i\n' % (self.time*60))
++		fid.write('#PBS -q %s \n' % self.queue)
++		fid.write('#PBS -W group_list=%s\n' % self.grouplist)
++		fid.write('#PBS -m e\n')
++		fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname))
++		fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname))
++		fid.write('. /usr/share/modules/init/bash\n\n')
++		fid.write('module load comp-intel/2015.0.090\n')
++		fid.write('module load mpi-sgi/mpt.2.11r13\n')
++		fid.write('export PATH="$PATH:."\n\n')
++		fid.write('export MPI_GROUP_MAX=64\n\n')
++		fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)
++		fid.write('source $ISSM_DIR/etc/environment.sh\n')
++		fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname))
++		fid.write('mpiexec -np %i %s/issm.exe %s %s/%s %s\n' % (self.np,self.codepath,str(EnumToString(solution)[0]),self.executionpath,dirname,modelname))
++		
++		fid.close()
++
++	# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist):
++		# {{{
++
++		#compress the files into one zip.
++		compressstring='tar -zcf %s.tar.gz ' % dirname
++		for file in filelist:
++			compressstring += ' %s' % file
++		subprocess.call(compressstring,shell=True)
++
++		print 'uploading input file and queueing script'
++		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
++
++		print 'launching solution sequence on remote cluster'
++		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
++		issmssh(self.name,self.login,self.port,launchcommand)
++
++		# }}}
++	def Download(self,dirname,filelist):
++		# {{{
++
++		#copy files from cluster to current directory
++		directory='%s/%s/' % (self.executionpath,dirname)
++		issmscpin(self.name,self.login,self.port,directory,filelist)
++	# }}}
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 19156)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 19157)
+@@ -28,6 +28,8 @@
+ from settings import settings
+ from toolkits import toolkits
+ from generic import generic
++from pfe import pfe
++from greenplanet import greenplanet
+ from balancethickness import balancethickness
+ from stressbalance import stressbalance
+ from groundingline import groundingline
+Index: ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.m	(revision 19156)
++++ ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.m	(revision 19157)
+@@ -20,13 +20,13 @@
+ 			for j=1:length(subgroupIDs)
+ 				subclass = netcdf.getAtt(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),'classtype');
+ 				self.results=setfield(self.results,subclass,struct);
+-				[ndims nvar natts]=netcdf.inq(groupIDs(j));
++				[ndims nvar natts]=netcdf.inq(subgroupIDs(j));
+ 				varIDs=netcdf.inqVarIDs(subgroupIDs(j));
+ 				%first loop on group atributes
+ 				for k=1:natts,
+ 					attname = netcdf.inqAttName(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),k-1);
+ 					[xtype,attlen] = netcdf.inqAtt(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),attname);
+-					%disp(sprintf('In %s, Treating attribute %s of type %i',subclass,attname,xtype));
++					disp(sprintf('In %s, Treating attribute %s of type %i',subclass,attname,xtype));
+ 					%classtype have done is job, no need to keep it any more
+ 					if ~strcmp(attname,'classtype'),
+ 						attval=netcdf.getAtt(subgroupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
+@@ -42,7 +42,7 @@
+ 				%now loop on variable in group
+ 				for k=1:length(varIDs),
+ 					[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(subgroupIDs(j),varIDs(k));
+-					%disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
++					disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
+ 					%time dimension seems to be last in our construction
+ 					for l=1:length(varDimIDs),
+ 						[dimname, dimlen] = netcdf.inqDim(ncid,varDimIDs(l));
+@@ -67,7 +67,7 @@
+ 			%just one variable here
+ 			varID=netcdf.inqVarIDs(groupIDs(i));
+ 			[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(groupIDs(i),varID);
+-			%disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
++			disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
+ 			[dimname,numoffields] = netcdf.inqDim(ncid,varDimIDs(end));
+ 			self.(groupName)=eval(whichclass);
+ 			for j=1:numoffields,
+@@ -96,7 +96,7 @@
+ 			for j=1:natts,
+ 				attname = netcdf.inqAttName(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),j-1);
+ 				[xtype,attlen] = netcdf.inqAtt(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
+-				%disp(sprintf('In %s, Treating attribute %s of type %i',whichclass,attname,xtype));
++				disp(sprintf('In %s, Treating attribute %s of type %i',whichclass,attname,xtype));
+ 				%classtype have done is job, no need to keep it any more
+ 				if ~strcmp(attname,'classtype'),
+ 					attval=netcdf.getAtt(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
+@@ -112,7 +112,7 @@
+ 			%now loop on variable in group
+ 			for j=1:length(varIDs),
+ 				[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(groupIDs(i),varIDs(j));
+-				%disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));			
++				disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));			
+ 				%if the value is a single string, we need to transpose it (cross check with python file is necessary)
+ 				if xtype==2
+ 					varval=netcdf.getVar(groupIDs(i),varIDs(j))';
+Index: ../trunk-jpl/src/m/contrib/netCDF/export_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/netCDF/export_netCDF.py	(revision 19156)
++++ ../trunk-jpl/src/m/contrib/netCDF/export_netCDF.py	(revision 19157)
+@@ -1,4 +1,4 @@
+-from netCDF4 import Dataset
++from netCDF4 import Dataset, stringtochar
+ import numpy
+ import time
+ import collections
+@@ -33,13 +33,15 @@
+ 	Dimension2=NCData.createDimension('Dimension2',md.mesh.numberofvertices)
+ 	Dimension3=NCData.createDimension('Dimension3',numpy.shape(md.mesh.elements)[1])
+ 	Dimension4=NCData.createDimension('Dimension4',StepNum)
+-	Dimension5=NCData.createDimension('Dimension5',2) 
++	Dimension5=NCData.createDimension('Dimension5',40)
++	Dimension6=NCData.createDimension('Dimension6',2) 
+ 
+ 	DimDict = {len(Dimension1):'Dimension1',
+ 						 len(Dimension2):'Dimension2',
+ 						 len(Dimension3):'Dimension3',
+ 						 len(Dimension4):'Dimension4',
+-						 len(Dimension5):'Dimension5'}
++						 len(Dimension5):'Dimension5',
++						 len(Dimension6):'Dimension6'}
+ 
+ 	#get all model classes and create respective groups
+ 	groups=dict.keys(md.__dict__)
+@@ -113,22 +115,25 @@
+ 	#matlab does not recognise strings so we have to settle down with char arrays
+ 	elif val_type==list:
+ 		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
+-		ncvar = Group.createVariable(str(field),str,dimensions,zlib=True)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		charvar=stringtochar(numpy.array(var))
++		print charvar
++		print charvar.shape
+ 		for elt in range(0,val_dim):
+ 			try:
+-				ncvar[elt] = var[elt]
++				ncvar[elt] = charvar[elt]
+ 			except IndexError:
+ 				ncvar[0]= " "
+ 				#treating bool tables as string tables
+ 	elif val_type=='bool':
+ 		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
+-		ncvar = Group.createVariable(str(field),str,dimensions,zlib=True)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
+ 		for elt in range(0,val_shape[0]):
+ 			ncvar[elt] = str(var[elt])
+ 			#treating dictionaries as string tables of dim 2
+ 	elif val_type==collections.OrderedDict:
+ 		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
+-		ncvar = Group.createVariable(str(field),str,dimensions,zlib=True)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
+ 		for elt in range(0,val_dim):
+ 			ncvar[elt,0]=dict.keys(var)[elt]
+ 			ncvar[elt,1]=str(dict.values(var)[elt]) #converting to str to avoid potential problems
+@@ -168,6 +173,12 @@
+ #retriev the dimension tuple from a dictionnary
+ def GetDim(NCData,var,shape,DimDict,i,istime):
+ 	output=[]
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++	#grab dimension
+ 	for dim in range(0,i): #loop on the dimensions
+ 		if type(shape[0])==int: 
+ 			try:
+@@ -186,9 +197,22 @@
+ 				index=len(DimDict)+1
+ 				NewDim=NCData.createDimension('Dimension'+str(index),numpy.shape(shape)[0])
+ 				DimDict[len(NewDim)]='Dimension'+str(index)
+-				output=[str(DimDict[numpy.shape(dict.keys(var))[0]])]+['Dimension5']
++				output=[str(DimDict[numpy.shape(dict.keys(var))[0]])]+['Dimension6']
+ 				print 'Defining dimension ' +'Dimension'+str(index)
+ 			break
+ 	if istime:
+ 		output=output+['Dimension4']
++	#dealing with char and not string as we should so we need to had a string length
++	if val_type=='bool' or val_type==collections.OrderedDict or val_type==list:
++		charvar=stringtochar(numpy.array(var))
++		stringlength=charvar.shape[charvar.ndim-1]
++		try:
++			output=output+[str(DimDict[stringlength])] #test if the dimension allready exist
++		except KeyError: #if not create it
++			if (shape[dim])>1:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),(stringlength))
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=output+[str(DimDict[stringlength])]
++				print 'Defining dimension ' +'Dimension'+str(index)
+ 	return tuple(output), DimDict
+Index: ../trunk-jpl/src/m/contrib/paraview/exportVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/paraview/exportVTK.m	(revision 19156)
++++ ../trunk-jpl/src/m/contrib/paraview/exportVTK.m	(revision 19157)
+@@ -111,8 +111,7 @@
+ 			
+ 			%check which field is a real result and print
+ 			for k=1:num_of_fields
+-				if ((numel(sol_struct{j}(timestep).(fieldnames{k})))== ...
+-						num_of_points);
++				if ((numel(sol_struct{j}(timestep).(fieldnames{k})))==num_of_points);
+ 					%paraview does not like NaN, replacing
+ 					nanval=find(isnan(sol_struct{j}(timestep).(fieldnames{k})));
+ 					sol_struct{j}(timestep).(fieldnames{k})(nanval)=-9999;
+Index: ../trunk-jpl/src/m/io/structtonc.m
+===================================================================
+--- ../trunk-jpl/src/m/io/structtonc.m	(revision 19156)
++++ ../trunk-jpl/src/m/io/structtonc.m	(revision 19157)
+@@ -27,7 +27,8 @@
+ 
+ %Double vector
+ elseif isa(field,'double') & size(field,2)==1,
+-	if step==1,
++
++if step==1,
+ 		dim_id          = netcdf.defDim(ncid,[fieldname '_size1'],size(field,1));
+ 		var_id(counter) = netcdf.defVar(ncid,fieldname,'NC_DOUBLE',dim_id);
+ 	else
Index: /issm/oecreview/Archive/19101-20495/ISSM-19157-19158.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19157-19158.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19157-19158.diff	(revision 20498)
@@ -0,0 +1,312 @@
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 19157)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 19158)
+@@ -76,6 +76,7 @@
+ %Masstransport;
+ md.calving.calvingrate = 0.*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate = 0.*ones(md.mesh.numberofvertices,1);
++md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
+ md.masstransport.stabilization = 1.;
+ 
+ %Numerical parameters
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 19157)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 19158)
+@@ -83,6 +83,7 @@
+ #Masstransport
+ md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
++md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ md.masstransport.stabilization=1.
+ 
+ #Numerical parameters
+Index: ../trunk-jpl/test/Par/SquareSheetConstrained.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 19157)
++++ ../trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 19158)
+@@ -31,6 +31,7 @@
+ 
+ %Calving
+ md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
++md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ %Friction
+ md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/Par/SquareSheetConstrained.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 19157)
++++ ../trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 19158)
+@@ -41,6 +41,7 @@
+ 
+ #Calving
+ md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
++md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ #Friction
+ md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 19157)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 19158)
+@@ -26,6 +26,7 @@
+ 
+ md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=10000*ones(md.mesh.numberofvertices,1);
++md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 19157)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 19158)
+@@ -39,6 +39,7 @@
+ 
+ md.calving.calvingrate=numpy.zeros((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=10000*numpy.ones((md.mesh.numberofvertices,1))
++md.calving.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19157)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19158)
+@@ -11,7 +11,7 @@
+ #include "../solutionsequences/solutionsequences.h"
+ 
+ void LevelsetAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+-	return;
++	IoModelToConstraintsx(constraints,iomodel,SpcLevelsetEnum,LevelsetAnalysisEnum,P1Enum);
+ }
+ /*}}}*/
+ void LevelsetAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19157)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19158)
+@@ -909,6 +909,7 @@
+ 	/*}}}*/
+ 	/*Levelset related enums (will be moved to appropriate place when finished){{{*/
+ 	TransientIslevelsetEnum,
++	SpcLevelsetEnum,
+ 	ExtrapolationVariableEnum,
+ 	IceMaskNodeActivationEnum,
+ 	LevelsetfunctionSlopeXEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19157)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19158)
+@@ -870,6 +870,7 @@
+ 		case ArrheniusEnum : return "Arrhenius";
+ 		case LliboutryDuvalEnum : return "LliboutryDuval";
+ 		case TransientIslevelsetEnum : return "TransientIslevelset";
++		case SpcLevelsetEnum : return "SpcLevelset";
+ 		case ExtrapolationVariableEnum : return "ExtrapolationVariable";
+ 		case IceMaskNodeActivationEnum : return "IceMaskNodeActivation";
+ 		case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19157)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19158)
+@@ -891,6 +891,7 @@
+ 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+ 	      else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
+ 	      else if (strcmp(name,"TransientIslevelset")==0) return TransientIslevelsetEnum;
++	      else if (strcmp(name,"SpcLevelset")==0) return SpcLevelsetEnum;
+ 	      else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
+ 	      else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+Index: ../trunk-jpl/src/m/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.py	(revision 19157)
++++ ../trunk-jpl/src/m/classes/calving.py	(revision 19158)
+@@ -16,6 +16,7 @@
+ 	def __init__(self): # {{{
+ 
+ 		self.stabilization = 0
++		self.spclevelset   = float('NaN')
+ 		self.calvingrate   = float('NaN')
+ 		self.meltingrate   = float('NaN')
+ 
+@@ -26,12 +27,14 @@
+ 	def __repr__(self): # {{{
+ 		string='   Calving parameters:'
+ 		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
++		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
+ 
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
++		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
+ 		self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
+ 		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
+ 		return self
+@@ -49,6 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
++		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);
+ 		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1);
+@@ -61,6 +65,7 @@
+ 
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+ 		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 19157)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 19158)
+@@ -6,6 +6,7 @@
+ classdef calving
+ 	properties (SetAccess=public) 
+ 		stabilization = 0;
++		spclevelset   = NaN;
+ 		calvingrate   = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -29,6 +30,7 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
++			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+@@ -42,6 +44,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
++			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+ 			md = checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+@@ -49,6 +52,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving parameters:'));
+ 			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'calvingrate','calving rate at given location [m/a]');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 		end % }}}
+@@ -56,6 +60,7 @@
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+ 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/calvingpi.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19157)
++++ ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19158)
+@@ -6,6 +6,7 @@
+ classdef calvingpi
+ 	properties (SetAccess=public) 
+ 		stabilization = 0;
++		spclevelset   = NaN;
+ 		coeff         = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -29,6 +30,7 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
++			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.coeff=project3d(md,'vector',self.coeff,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+@@ -44,6 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
++			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+@@ -51,6 +54,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Pi parameters:'));
+ 			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'coeff','proportionality coefficient in Pi model');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -59,6 +63,7 @@
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingPiEnum(),'format','Integer');
+ 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19157)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19158)
+@@ -6,6 +6,7 @@
+ classdef calvingdev
+ 	properties (SetAccess=public) 
+ 		stabilization = 0;
++		spclevelset   = NaN;
+ 		coeff         = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -28,6 +29,11 @@
+ 					error('constructor not supported');
+ 			end
+ 		end % }}}
++		function self = extrude(self,md) % {{{
++			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
++			self.coeff=project3d(md,'vector',self.coeff,'type','node');
++			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
++		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+ 
+ 			%stabilization = 2 by default
+@@ -40,6 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
++			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+@@ -47,6 +54,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Pi parameters:'));
+ 			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'coeff','proportionality coefficient in Pi model');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -55,6 +63,7 @@
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingDevEnum(),'format','Integer');
+ 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'class','calving','object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19157)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19158)
+@@ -862,6 +862,7 @@
+ def ArrheniusEnum(): return StringToEnum("Arrhenius")[0]
+ def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
+ def TransientIslevelsetEnum(): return StringToEnum("TransientIslevelset")[0]
++def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
+ def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
+ def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
+ def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19158-19159.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19158-19159.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19158-19159.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m	(revision 19159)
+@@ -0,0 +1,11 @@
++function macro=SpcLevelsetEnum()
++%SPCLEVELSETENUM - Enum of SpcLevelset
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SpcLevelsetEnum()
++
++macro=StringToEnum('SpcLevelset');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19159-19160.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19159-19160.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19159-19160.diff	(revision 20498)
@@ -0,0 +1,482 @@
+Index: ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim
+===================================================================
+--- ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim	(revision 19159)
++++ ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim	(revision 19160)
+@@ -416,6 +416,7 @@
+ syn keyword cType Contour
+ syn keyword cType Contours
+ syn keyword cType ControlInput
++syn keyword cType Covertree
+ syn keyword cType DataSetParam
+ syn keyword cType DatasetInput
+ syn keyword cType Definition
+@@ -458,13 +459,14 @@
+ syn keyword cType IoModel
+ syn keyword cType Load
+ syn keyword cType Loads
++syn keyword cType Masscon
++syn keyword cType Massconaxpby
+ syn keyword cType Massfluxatgate
+ syn keyword cType Material
+ syn keyword cType Materials
+ syn keyword cType Matice
+ syn keyword cType Matpar
+ syn keyword cType MatrixParam
+-syn keyword cType Matseaice
+ syn keyword cType Misfit
+ syn keyword cType Node
+ syn keyword cType Nodes
+@@ -542,9 +544,7 @@
+ syn keyword cType MasstransportAnalysis
+ syn keyword cType MeltingAnalysis
+ syn keyword cType MeshdeformationAnalysis
+-syn keyword cType SeaiceAnalysis
+-syn keyword cType SmoothedSurfaceSlopeXAnalysis
+-syn keyword cType SmoothedSurfaceSlopeYAnalysis
++syn keyword cType SmoothAnalysis
+ syn keyword cType StressbalanceAnalysis
+ syn keyword cType StressbalanceSIAAnalysis
+ syn keyword cType StressbalanceVerticalAnalysis
+@@ -593,6 +593,7 @@
+ syn keyword cConstant BedEnum
+ syn keyword cConstant BaseEnum
+ syn keyword cConstant ConstantsGEnum
++syn keyword cConstant ConstantsOmegaEnum
+ syn keyword cConstant ConstantsReferencetemperatureEnum
+ syn keyword cConstant ConstantsYtsEnum
+ syn keyword cConstant DependentObjectEnum
+@@ -630,12 +631,17 @@
+ syn keyword cConstant FlowequationFeHOEnum
+ syn keyword cConstant FlowequationFeFSEnum
+ syn keyword cConstant FlowequationVertexEquationEnum
++syn keyword cConstant FrictionAsEnum
+ syn keyword cConstant FrictionCoefficientEnum
+ syn keyword cConstant FrictionPEnum
+ syn keyword cConstant FrictionQEnum
+ syn keyword cConstant FrictionMEnum
+ syn keyword cConstant FrictionCEnum
+ syn keyword cConstant FrictionLawEnum
++syn keyword cConstant FrictionGammaEnum
++syn keyword cConstant FrictionWaterLayerEnum
++syn keyword cConstant FrictionEffectivePressureEnum
++syn keyword cConstant FrictionCouplingEnum
+ syn keyword cConstant GeometryHydrostaticRatioEnum
+ syn keyword cConstant HydrologyModelEnum
+ syn keyword cConstant HydrologyshreveEnum
+@@ -650,6 +656,7 @@
+ syn keyword cConstant EplHeadOldEnum
+ syn keyword cConstant EplHeadSlopeXEnum
+ syn keyword cConstant EplHeadSlopeYEnum
++syn keyword cConstant EplZigZagCounterEnum
+ syn keyword cConstant HydrologydcMaxIterEnum
+ syn keyword cConstant HydrologydcRelTolEnum
+ syn keyword cConstant HydrologydcSpcsedimentHeadEnum
+@@ -664,9 +671,11 @@
+ syn keyword cConstant HydrologydcEplCompressibilityEnum
+ syn keyword cConstant HydrologydcEplPorosityEnum
+ syn keyword cConstant HydrologydcEplInitialThicknessEnum
++syn keyword cConstant HydrologydcEplColapseThicknessEnum
+ syn keyword cConstant HydrologydcEplMaxThicknessEnum
+ syn keyword cConstant HydrologydcEplThicknessEnum
+ syn keyword cConstant HydrologydcEplThicknessOldEnum
++syn keyword cConstant HydrologydcEplThickCompEnum
+ syn keyword cConstant HydrologydcEplConductivityEnum
+ syn keyword cConstant HydrologydcIsefficientlayerEnum
+ syn keyword cConstant HydrologydcSedimentlimitFlagEnum
+@@ -675,6 +684,7 @@
+ syn keyword cConstant HydrologydcLeakageFactorEnum
+ syn keyword cConstant HydrologydcPenaltyFactorEnum
+ syn keyword cConstant HydrologydcPenaltyLockEnum
++syn keyword cConstant HydrologydcEplflipLockEnum
+ syn keyword cConstant HydrologydcBasalMoulinInputEnum
+ syn keyword cConstant HydrologyLayerEnum
+ syn keyword cConstant HydrologySedimentEnum
+@@ -682,6 +692,7 @@
+ syn keyword cConstant HydrologySedimentKmaxEnum
+ syn keyword cConstant IndependentObjectEnum
+ syn keyword cConstant InversionControlParametersEnum
++syn keyword cConstant InversionControlScalingFactorsEnum
+ syn keyword cConstant InversionCostFunctionThresholdEnum
+ syn keyword cConstant InversionCostFunctionsCoefficientsEnum
+ syn keyword cConstant InversionCostFunctionsEnum
+@@ -706,6 +717,7 @@
+ syn keyword cConstant InversionNumCostFunctionsEnum
+ syn keyword cConstant InversionStepThresholdEnum
+ syn keyword cConstant InversionThicknessObsEnum
++syn keyword cConstant InversionSurfaceObsEnum
+ syn keyword cConstant InversionVxObsEnum
+ syn keyword cConstant InversionVyObsEnum
+ syn keyword cConstant InversionVzObsEnum
+@@ -741,7 +753,28 @@
+ syn keyword cConstant DamageEquivStressEnum
+ syn keyword cConstant DamageEvolutionNumRequestedOutputsEnum
+ syn keyword cConstant DamageEvolutionRequestedOutputsEnum
++syn keyword cConstant DamageEnum
+ syn keyword cConstant NewDamageEnum
++syn keyword cConstant StressIntensityFactorEnum
++syn keyword cConstant CalvingLawEnum
++syn keyword cConstant CalvingCalvingrateEnum
++syn keyword cConstant CalvingMeltingrateEnum
++syn keyword cConstant CalvingLevermannEnum
++syn keyword cConstant CalvingPiEnum
++syn keyword cConstant CalvingDevEnum
++syn keyword cConstant DefaultCalvingEnum
++syn keyword cConstant CalvingRequestedOutputsEnum
++syn keyword cConstant CalvinglevermannCoeffEnum
++syn keyword cConstant CalvinglevermannMeltingrateEnum
++syn keyword cConstant CalvingpiCoeffEnum
++syn keyword cConstant CalvingpiMeltingrateEnum
++syn keyword cConstant CalvingratexEnum
++syn keyword cConstant CalvingrateyEnum
++syn keyword cConstant CalvingratexAverageEnum
++syn keyword cConstant CalvingrateyAverageEnum
++syn keyword cConstant StrainRateparallelEnum
++syn keyword cConstant StrainRateperpendicularEnum
++syn keyword cConstant StrainRateeffectiveEnum
+ syn keyword cConstant MaterialsRhoIceEnum
+ syn keyword cConstant MaterialsRhoSeawaterEnum
+ syn keyword cConstant MaterialsRhoFreshwaterEnum
+@@ -781,7 +814,6 @@
+ syn keyword cConstant MasstransportMinThicknessEnum
+ syn keyword cConstant MasstransportPenaltyFactorEnum
+ syn keyword cConstant MasstransportSpcthicknessEnum
+-syn keyword cConstant MasstransportCalvingrateEnum
+ syn keyword cConstant MasstransportStabilizationEnum
+ syn keyword cConstant MasstransportVertexPairingEnum
+ syn keyword cConstant MasstransportNumRequestedOutputsEnum
+@@ -806,7 +838,6 @@
+ syn keyword cConstant ProfilingCurrentMemEnum
+ syn keyword cConstant ProfilingCurrentFlopsEnum
+ syn keyword cConstant ProfilingSolutionTimeEnum
+-syn keyword cConstant MaxIterationConvergenceFlagEnum
+ syn keyword cConstant SteadystateMaxiterEnum
+ syn keyword cConstant SteadystateNumRequestedOutputsEnum
+ syn keyword cConstant SteadystateReltolEnum
+@@ -814,6 +845,7 @@
+ syn keyword cConstant SurfaceEnum
+ syn keyword cConstant ThermalIsenthalpyEnum
+ syn keyword cConstant ThermalIsdynamicbasalspcEnum
++syn keyword cConstant ThermalReltolEnum
+ syn keyword cConstant ThermalMaxiterEnum
+ syn keyword cConstant ThermalPenaltyFactorEnum
+ syn keyword cConstant ThermalPenaltyLockEnum
+@@ -838,6 +870,7 @@
+ syn keyword cConstant TransientIsgiaEnum
+ syn keyword cConstant TransientIsdamageevolutionEnum
+ syn keyword cConstant TransientIshydrologyEnum
++syn keyword cConstant TransientIscalvingEnum
+ syn keyword cConstant TransientNumRequestedOutputsEnum
+ syn keyword cConstant TransientRequestedOutputsEnum
+ syn keyword cConstant PotentialEnum
+@@ -845,6 +878,9 @@
+ syn keyword cConstant BalancethicknessApparentMassbalanceEnum
+ syn keyword cConstant Balancethickness2MisfitEnum
+ syn keyword cConstant BalancethicknessDiffusionCoefficientEnum
++syn keyword cConstant BalancethicknessCmuEnum
++syn keyword cConstant BalancethicknessOmegaEnum
++syn keyword cConstant BalancethicknessD0Enum
+ syn keyword cConstant SurfaceforcingsEnum
+ syn keyword cConstant SMBEnum
+ syn keyword cConstant SurfaceforcingsMassBalanceEnum
+@@ -852,12 +888,20 @@
+ syn keyword cConstant SurfaceforcingsDelta18oEnum
+ syn keyword cConstant SurfaceforcingsDelta18oSurfaceEnum
+ syn keyword cConstant SurfaceforcingsIsdelta18oEnum
++syn keyword cConstant SurfaceforcingsIsmungsmEnum
+ syn keyword cConstant SurfaceforcingsPrecipitationsPresentdayEnum
++syn keyword cConstant SurfaceforcingsPrecipitationsLgmEnum
+ syn keyword cConstant SurfaceforcingsTemperaturesPresentdayEnum
+ syn keyword cConstant SurfaceforcingsTemperaturesLgmEnum
+ syn keyword cConstant SurfaceforcingsPrecipitationEnum
+ syn keyword cConstant SurfaceforcingsDesfacEnum
+ syn keyword cConstant SurfaceforcingsS0pEnum
++syn keyword cConstant SurfaceforcingsS0tEnum
++syn keyword cConstant SurfaceforcingsRlapsEnum
++syn keyword cConstant SurfaceforcingsRlapslgmEnum
++syn keyword cConstant SurfaceforcingsPfacEnum
++syn keyword cConstant SurfaceforcingsTdiffEnum
++syn keyword cConstant SurfaceforcingsSealevEnum
+ syn keyword cConstant SMBgradientsEnum
+ syn keyword cConstant SurfaceforcingsMonthlytemperaturesEnum
+ syn keyword cConstant SurfaceforcingsHrefEnum
+@@ -917,19 +961,17 @@
+ syn keyword cConstant DepthAverageAnalysisEnum
+ syn keyword cConstant SteadystateSolutionEnum
+ syn keyword cConstant SurfaceSlopeSolutionEnum
+-syn keyword cConstant SmoothedSurfaceSlopeXAnalysisEnum
+-syn keyword cConstant SmoothedSurfaceSlopeYAnalysisEnum
++syn keyword cConstant SmoothAnalysisEnum
+ syn keyword cConstant ThermalAnalysisEnum
+ syn keyword cConstant ThermalSolutionEnum
+ syn keyword cConstant TransientSolutionEnum
+ syn keyword cConstant UzawaPressureAnalysisEnum
+ syn keyword cConstant GiaSolutionEnum
+ syn keyword cConstant GiaAnalysisEnum
+-syn keyword cConstant SeaiceSolutionEnum
+-syn keyword cConstant SeaiceAnalysisEnum
+ syn keyword cConstant MeshdeformationSolutionEnum
+ syn keyword cConstant MeshdeformationAnalysisEnum
+ syn keyword cConstant LevelsetAnalysisEnum
++syn keyword cConstant LevelsetStabilizationEnum
+ syn keyword cConstant ExtrapolationAnalysisEnum
+ syn keyword cConstant LsfReinitializationAnalysisEnum
+ syn keyword cConstant ApproximationEnum
+@@ -973,6 +1015,8 @@
+ syn keyword cConstant InputToExtrudeEnum
+ syn keyword cConstant InputToL2ProjectEnum
+ syn keyword cConstant InputToDepthaverageEnum
++syn keyword cConstant InputToSmoothEnum
++syn keyword cConstant SmoothThicknessMultiplierEnum
+ syn keyword cConstant IntParamEnum
+ syn keyword cConstant IntVecParamEnum
+ syn keyword cConstant TransientParamEnum
+@@ -987,6 +1031,17 @@
+ syn keyword cConstant PenpairEnum
+ syn keyword cConstant ProfilerEnum
+ syn keyword cConstant MatrixParamEnum
++syn keyword cConstant MassconEnum
++syn keyword cConstant MassconNameEnum
++syn keyword cConstant MassconDefinitionenumEnum
++syn keyword cConstant MassconLevelsetEnum
++syn keyword cConstant MassconaxpbyEnum
++syn keyword cConstant MassconaxpbyNameEnum
++syn keyword cConstant MassconaxpbyDefinitionenumEnum
++syn keyword cConstant MassconaxpbyNamexEnum
++syn keyword cConstant MassconaxpbyNameyEnum
++syn keyword cConstant MassconaxpbyAlphaEnum
++syn keyword cConstant MassconaxpbyBetaEnum
+ syn keyword cConstant NodeSIdEnum
+ syn keyword cConstant VectorParamEnum
+ syn keyword cConstant RiftfrontEnum
+@@ -1048,6 +1103,7 @@
+ syn keyword cConstant TemperatureEnum
+ syn keyword cConstant TemperaturePicardEnum
+ syn keyword cConstant ThicknessAbsMisfitEnum
++syn keyword cConstant SurfaceAbsMisfitEnum
+ syn keyword cConstant VelEnum
+ syn keyword cConstant VelocityEnum
+ syn keyword cConstant VxAverageEnum
+@@ -1071,6 +1127,7 @@
+ syn keyword cConstant ThicknessAcrossGradientEnum
+ syn keyword cConstant IntMatParamEnum
+ syn keyword cConstant RheologyBbarAbsGradientEnum
++syn keyword cConstant RheologyBAbsGradientEnum
+ syn keyword cConstant DragCoefficientAbsGradientEnum
+ syn keyword cConstant TransientInputEnum
+ syn keyword cConstant WaterfractionEnum
+@@ -1079,6 +1136,8 @@
+ syn keyword cConstant ViscousHeatingEnum
+ syn keyword cConstant HydrologyWaterVxEnum
+ syn keyword cConstant HydrologyWaterVyEnum
++syn keyword cConstant DrivingStressXEnum
++syn keyword cConstant DrivingStressYEnum
+ syn keyword cConstant SigmaNNEnum
+ syn keyword cConstant StressTensorEnum
+ syn keyword cConstant StressTensorxxEnum
+@@ -1103,6 +1162,7 @@
+ syn keyword cConstant StrainRateyzEnum
+ syn keyword cConstant StrainRatezzEnum
+ syn keyword cConstant DivergenceEnum
++syn keyword cConstant MaxDivergenceEnum
+ syn keyword cConstant GiaCrossSectionShapeEnum
+ syn keyword cConstant GiadWdtEnum
+ syn keyword cConstant GiaWEnum
+@@ -1139,19 +1199,126 @@
+ syn keyword cConstant TimeEnum
+ syn keyword cConstant WaterColumnOldEnum
+ syn keyword cConstant OutputdefinitionEnum
++syn keyword cConstant Outputdefinition1Enum
++syn keyword cConstant Outputdefinition2Enum
++syn keyword cConstant Outputdefinition3Enum
++syn keyword cConstant Outputdefinition4Enum
++syn keyword cConstant Outputdefinition5Enum
++syn keyword cConstant Outputdefinition6Enum
++syn keyword cConstant Outputdefinition7Enum
++syn keyword cConstant Outputdefinition8Enum
++syn keyword cConstant Outputdefinition9Enum
++syn keyword cConstant Outputdefinition10Enum
++syn keyword cConstant Outputdefinition11Enum
++syn keyword cConstant Outputdefinition12Enum
++syn keyword cConstant Outputdefinition13Enum
++syn keyword cConstant Outputdefinition14Enum
++syn keyword cConstant Outputdefinition15Enum
++syn keyword cConstant Outputdefinition16Enum
++syn keyword cConstant Outputdefinition17Enum
++syn keyword cConstant Outputdefinition18Enum
++syn keyword cConstant Outputdefinition19Enum
++syn keyword cConstant Outputdefinition20Enum
++syn keyword cConstant Outputdefinition21Enum
++syn keyword cConstant Outputdefinition22Enum
++syn keyword cConstant Outputdefinition23Enum
++syn keyword cConstant Outputdefinition24Enum
++syn keyword cConstant Outputdefinition25Enum
++syn keyword cConstant Outputdefinition26Enum
++syn keyword cConstant Outputdefinition27Enum
++syn keyword cConstant Outputdefinition28Enum
++syn keyword cConstant Outputdefinition29Enum
++syn keyword cConstant Outputdefinition30Enum
++syn keyword cConstant Outputdefinition31Enum
++syn keyword cConstant Outputdefinition32Enum
++syn keyword cConstant Outputdefinition33Enum
++syn keyword cConstant Outputdefinition34Enum
++syn keyword cConstant Outputdefinition35Enum
++syn keyword cConstant Outputdefinition36Enum
++syn keyword cConstant Outputdefinition37Enum
++syn keyword cConstant Outputdefinition38Enum
++syn keyword cConstant Outputdefinition39Enum
++syn keyword cConstant Outputdefinition40Enum
++syn keyword cConstant Outputdefinition41Enum
++syn keyword cConstant Outputdefinition42Enum
++syn keyword cConstant Outputdefinition43Enum
++syn keyword cConstant Outputdefinition44Enum
++syn keyword cConstant Outputdefinition45Enum
++syn keyword cConstant Outputdefinition46Enum
++syn keyword cConstant Outputdefinition47Enum
++syn keyword cConstant Outputdefinition48Enum
++syn keyword cConstant Outputdefinition49Enum
++syn keyword cConstant Outputdefinition50Enum
++syn keyword cConstant Outputdefinition51Enum
++syn keyword cConstant Outputdefinition52Enum
++syn keyword cConstant Outputdefinition53Enum
++syn keyword cConstant Outputdefinition54Enum
++syn keyword cConstant Outputdefinition55Enum
++syn keyword cConstant Outputdefinition56Enum
++syn keyword cConstant Outputdefinition57Enum
++syn keyword cConstant Outputdefinition58Enum
++syn keyword cConstant Outputdefinition59Enum
++syn keyword cConstant Outputdefinition60Enum
++syn keyword cConstant Outputdefinition61Enum
++syn keyword cConstant Outputdefinition62Enum
++syn keyword cConstant Outputdefinition63Enum
++syn keyword cConstant Outputdefinition64Enum
++syn keyword cConstant Outputdefinition65Enum
++syn keyword cConstant Outputdefinition66Enum
++syn keyword cConstant Outputdefinition67Enum
++syn keyword cConstant Outputdefinition68Enum
++syn keyword cConstant Outputdefinition69Enum
++syn keyword cConstant Outputdefinition70Enum
++syn keyword cConstant Outputdefinition71Enum
++syn keyword cConstant Outputdefinition72Enum
++syn keyword cConstant Outputdefinition73Enum
++syn keyword cConstant Outputdefinition74Enum
++syn keyword cConstant Outputdefinition75Enum
++syn keyword cConstant Outputdefinition76Enum
++syn keyword cConstant Outputdefinition77Enum
++syn keyword cConstant Outputdefinition78Enum
++syn keyword cConstant Outputdefinition79Enum
++syn keyword cConstant Outputdefinition80Enum
++syn keyword cConstant Outputdefinition81Enum
++syn keyword cConstant Outputdefinition82Enum
++syn keyword cConstant Outputdefinition83Enum
++syn keyword cConstant Outputdefinition84Enum
++syn keyword cConstant Outputdefinition85Enum
++syn keyword cConstant Outputdefinition86Enum
++syn keyword cConstant Outputdefinition87Enum
++syn keyword cConstant Outputdefinition88Enum
++syn keyword cConstant Outputdefinition89Enum
++syn keyword cConstant Outputdefinition90Enum
++syn keyword cConstant Outputdefinition91Enum
++syn keyword cConstant Outputdefinition92Enum
++syn keyword cConstant Outputdefinition93Enum
++syn keyword cConstant Outputdefinition94Enum
++syn keyword cConstant Outputdefinition95Enum
++syn keyword cConstant Outputdefinition96Enum
++syn keyword cConstant Outputdefinition97Enum
++syn keyword cConstant Outputdefinition98Enum
++syn keyword cConstant Outputdefinition99Enum
++syn keyword cConstant Outputdefinition100Enum
+ syn keyword cConstant OutputdefinitionListEnum
+ syn keyword cConstant MassfluxatgateEnum
+ syn keyword cConstant MassfluxatgateNameEnum
++syn keyword cConstant MassfluxatgateDefinitionenumEnum
+ syn keyword cConstant MassfluxatgateSegmentsEnum
+ syn keyword cConstant MisfitNameEnum
++syn keyword cConstant MisfitDefinitionenumEnum
+ syn keyword cConstant MisfitModelEnumEnum
+ syn keyword cConstant MisfitObservationEnum
+ syn keyword cConstant MisfitObservationEnumEnum
++syn keyword cConstant MisfitLocalEnum
+ syn keyword cConstant MisfitTimeinterpolationEnum
+ syn keyword cConstant MisfitWeightsEnum
+ syn keyword cConstant MisfitWeightsEnumEnum
+ syn keyword cConstant SurfaceObservationEnum
+ syn keyword cConstant WeightsSurfaceObservationEnum
++syn keyword cConstant VxObsEnum
++syn keyword cConstant WeightsVxObsEnum
++syn keyword cConstant VyObsEnum
++syn keyword cConstant WeightsVyObsEnum
+ syn keyword cConstant MinVelEnum
+ syn keyword cConstant MaxVelEnum
+ syn keyword cConstant MinVxEnum
+@@ -1163,6 +1330,7 @@
+ syn keyword cConstant MinVzEnum
+ syn keyword cConstant MaxVzEnum
+ syn keyword cConstant MaxAbsVzEnum
++syn keyword cConstant IceMassEnum
+ syn keyword cConstant IceVolumeEnum
+ syn keyword cConstant IceVolumeAboveFloatationEnum
+ syn keyword cConstant TotalSmbEnum
+@@ -1179,6 +1347,7 @@
+ syn keyword cConstant SubelementMigrationEnum
+ syn keyword cConstant SubelementMigration2Enum
+ syn keyword cConstant ContactEnum
++syn keyword cConstant GroundingOnlyEnum
+ syn keyword cConstant MaskGroundediceLevelsetEnum
+ syn keyword cConstant GaussSegEnum
+ syn keyword cConstant GaussTriaEnum
+@@ -1201,7 +1370,10 @@
+ syn keyword cConstant NodalEnum
+ syn keyword cConstant OldGradientEnum
+ syn keyword cConstant OutputFilePointerEnum
++syn keyword cConstant ToolkitsFileNameEnum
++syn keyword cConstant RootPathEnum
+ syn keyword cConstant OutputFileNameEnum
++syn keyword cConstant InputFileNameEnum
+ syn keyword cConstant LockFileNameEnum
+ syn keyword cConstant ToolkitsOptionsAnalysesEnum
+ syn keyword cConstant ToolkitsOptionsStringsEnum
+@@ -1234,43 +1406,12 @@
+ syn keyword cConstant ArrheniusEnum
+ syn keyword cConstant LliboutryDuvalEnum
+ syn keyword cConstant TransientIslevelsetEnum
++syn keyword cConstant SpcLevelsetEnum
+ syn keyword cConstant ExtrapolationVariableEnum
+ syn keyword cConstant IceMaskNodeActivationEnum
+ syn keyword cConstant LevelsetfunctionSlopeXEnum
+ syn keyword cConstant LevelsetfunctionSlopeYEnum
+ syn keyword cConstant LevelsetfunctionPicardEnum
+-syn keyword cConstant SeaiceatmEnum
+-syn keyword cConstant SeaiceoceanEnum
+-syn keyword cConstant SeaiceThicknessEnum
+-syn keyword cConstant SeaiceConcentrationEnum
+-syn keyword cConstant SeaiceSpcvxEnum
+-syn keyword cConstant SeaiceSpcvyEnum
+-syn keyword cConstant SeaiceCoriolisFactorEnum
+-syn keyword cConstant BasalforcingsRhoOceanEnum
+-syn keyword cConstant BasalforcingsOceanCoefEnum
+-syn keyword cConstant BasalforcingsOceanLinDragCoefEnum
+-syn keyword cConstant BasalforcingsOceanQuadDragCoefEnum
+-syn keyword cConstant BasalforcingsOceanTurningAngleEnum
+-syn keyword cConstant BasalforcingsOceanSshEnum
+-syn keyword cConstant BasalforcingsOceanVxEnum
+-syn keyword cConstant BasalforcingsOceanVyEnum
+-syn keyword cConstant SurfaceforcingsRhoAirEnum
+-syn keyword cConstant SurfaceforcingsAirCoefEnum
+-syn keyword cConstant SurfaceforcingsAirLinDragCoefEnum
+-syn keyword cConstant SurfaceforcingsAirQuadDragCoefEnum
+-syn keyword cConstant SurfaceforcingsWindVxEnum
+-syn keyword cConstant SurfaceforcingsWindVyEnum
+-syn keyword cConstant MatseaiceEnum
+-syn keyword cConstant MaterialsPoissonEnum
+-syn keyword cConstant MaterialsYoungModulusEnum
+-syn keyword cConstant MaterialsDamageEnum
+-syn keyword cConstant MaterialsRidgingExponentEnum
+-syn keyword cConstant MaterialsCohesionEnum
+-syn keyword cConstant MaterialsInternalFrictionCoefEnum
+-syn keyword cConstant MaterialsCompressionCoefEnum
+-syn keyword cConstant MaterialsTractionCoefEnum
+-syn keyword cConstant VxStarEnum
+-syn keyword cConstant VyStarEnum
+ "ISSM's Enums end
+ """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19160-19161.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19160-19161.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19160-19161.diff	(revision 20498)
@@ -0,0 +1,115 @@
+Index: ../trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp	(revision 19160)
++++ ../trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp	(revision 19161)
+@@ -2076,6 +2076,7 @@
+ 
+ 	/*Intermediaries*/
+ 	int      domaintype,dim;
++
+ 	Element* basalelement;
+ 
+ 	/*Get basal element*/
+@@ -2140,9 +2141,8 @@
+ 	Input* qinput = basalelement->GetInput(FrictionQEnum);
+ 	Input* cinput = basalelement->GetInput(FrictionCEnum);
+ 	Input* Asinput = basalelement->GetInput(FrictionAsEnum);
+-	Input* Ninput = basalelement->GetInput(FrictionEffectivePressureEnum);
+ 	Input* nInput =basalelement->GetInput(MaterialsRheologyNEnum);
+-	
++	Input* Ninput = basalelement->GetInput(FrictionEffectivePressureEnum);	
+ 	/* Start  looping on the number of gaussian points: */
+ 	Gauss* gauss=basalelement->NewGauss(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19160)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19161)
+@@ -672,6 +672,7 @@
+ 	/*Intermediaries*/
+ 	int    materials_type,finiteelement,fe_FS;
+ 	int    approximation,frictionlaw;
++	int    FrictionCoupling;
+ 	int*   finiteelement_list=NULL;
+ 	bool   isSSA,isL1L2,isHO,isFS,iscoupling;
+ 	bool   control_analysis;
+@@ -799,10 +800,13 @@
+ 			iomodel->FetchDataToInput(elements,FrictionMEnum);
+ 			break;
+ 		case 3:
++			iomodel->Constant(&FrictionCoupling,FrictionCouplingEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionCEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionAsEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionQEnum);
+-			iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			if (FrictionCoupling==0){
++				iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			}
+ 			break;
+ 		case 4:
+ 			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19160)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19161)
+@@ -61,6 +61,7 @@
+ void ThermalAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
+ 
+ 	int finiteelement = P1Enum;
++	
+ 	if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum);
+ 	::CreateNodes(nodes,iomodel,ThermalAnalysisEnum,finiteelement);
+ 	iomodel->DeleteData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum);
+@@ -71,7 +72,7 @@
+ void ThermalAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+ 	int frictionlaw;
+-
++	int FrictionCoupling;
+ 	/*Now, is the model 3d? otherwise, do nothing: */
+ 	if(iomodel->domaintype==Domain2DhorizontalEnum)return;
+ 
+@@ -129,10 +130,13 @@
+ 			iomodel->FetchDataToInput(elements,FrictionMEnum);
+ 			break;
+ 		case 3:
++			iomodel->Constant(&FrictionCoupling,FrictionCouplingEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionCEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionAsEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionQEnum);
+-			iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			if (FrictionCoupling==0){
++				iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			}
+ 			break;
+ 		case 4:
+ 			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19160)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19161)
+@@ -108,7 +108,8 @@
+ 
+ 	bool dakota_analysis,islevelset,isenthalpy;
+ 	int frictionlaw;
+-
++	int FrictionCoupling;
++	
+ 	/*Now, is the model 3d? otherwise, do nothing: */
+ 	if(iomodel->domaintype==Domain2DhorizontalEnum)return;
+ 
+@@ -174,10 +175,13 @@
+ 			iomodel->FetchDataToInput(elements,FrictionMEnum);
+ 			break;
+ 		case 3:
++			iomodel->Constant(&FrictionCoupling,FrictionCouplingEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionCEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionAsEnum);
+ 			iomodel->FetchDataToInput(elements,FrictionQEnum);
+-			iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			if (FrictionCoupling==0){
++				iomodel->FetchDataToInput(elements,FrictionEffectivePressureEnum);
++			}
+ 			break;
+ 		case 4:
+ 			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19161-19162.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19161-19162.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19161-19162.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19161)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19162)
+@@ -889,6 +889,7 @@
+ 	int frictionlaw;
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 	if(frictionlaw==4 || frictionlaw==6) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum));
++	if(frictionlaw==3) parameters->AddObject(iomodel->CopyConstantObject(FrictionCouplingEnum));
+ 
+ }/*}}}*/
+ 
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19161)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19162)
+@@ -184,6 +184,7 @@
+ 	int frictionlaw;
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 	if(frictionlaw==4 || frictionlaw==6) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum));
++	if(frictionlaw==3) parameters->AddObject(iomodel->CopyConstantObject(FrictionCouplingEnum));
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19161)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19162)
+@@ -229,6 +229,7 @@
+ 	int frictionlaw;
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 	if(frictionlaw==4 || frictionlaw==6) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum));
++	if(frictionlaw==3) parameters->AddObject(iomodel->CopyConstantObject(FrictionCouplingEnum));
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19162-19163.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19162-19163.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19162-19163.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/examples/Greenland/Greenland.par
+===================================================================
+--- ../trunk-jpl/examples/Greenland/Greenland.par	(revision 19162)
++++ ../trunk-jpl/examples/Greenland/Greenland.par	(revision 19163)
+@@ -1,6 +1,6 @@
+-%Name and hemisphere
++%Name and Coordinate system
+ md.miscellaneous.name='SeaRISEgreenland';
+-md.mesh.hemisphere='n';
++md.mesh.epsg=3413;
+ 
+ disp('   Loading SeaRISE data from NetCDF');
+ ncdata='../Data/Greenland_5km_dev1.2.nc';
+Index: ../trunk-jpl/examples/Pig/Pig.par
+===================================================================
+--- ../trunk-jpl/examples/Pig/Pig.par	(revision 19162)
++++ ../trunk-jpl/examples/Pig/Pig.par	(revision 19163)
+@@ -2,9 +2,9 @@
+ friction_coefficient = 10; % default [10]
+ Temp_change          =  0;  % default [0 K]
+ 
+-%Name and hemisphere
++%Name and Coordinate system
+ md.miscellaneous.name='PIG';
+-md.mesh.hemisphere='s';
++md.mesh.epsg=3031;
+ 
+ %NetCdf Loading
+ disp('   Loading SeaRISE data from NetCDF');
+Index: ../trunk-jpl/examples/Jakobshavn/Jks.par
+===================================================================
+--- ../trunk-jpl/examples/Jakobshavn/Jks.par	(revision 19162)
++++ ../trunk-jpl/examples/Jakobshavn/Jks.par	(revision 19163)
+@@ -1,7 +1,6 @@
+-
+-%Name and hemisphere
+-md.mesh.hemisphere='n';
++%Name and Coordinate system
+ md.miscellaneous.name='Jakobshavn';
++md.mesh.epsg=3413;
+ 
+ %Load SeaRISE dataset
+ disp('   Loading SeaRISE data from NetCDF');
+Index: ../trunk-jpl/examples/IceBridge/Greenland.par
+===================================================================
+--- ../trunk-jpl/examples/IceBridge/Greenland.par	(revision 19162)
++++ ../trunk-jpl/examples/IceBridge/Greenland.par	(revision 19163)
+@@ -1,6 +1,6 @@
+-%Name and hemisphere
++%Name and Coordinate system
+ md.miscellaneous.name='SeaRISEgreenland';
+-md.mesh.hemisphere='n';
++md.mesh.epsg=3413;
+ 
+ disp('   Loading SeaRISE data from NetCDF');
+ ncdata='../Data/Greenland_5km_dev1.2.nc';
+Index: ../trunk-jpl/examples/IceBridge/Greenland_noOIB.par
+===================================================================
+--- ../trunk-jpl/examples/IceBridge/Greenland_noOIB.par	(revision 19162)
++++ ../trunk-jpl/examples/IceBridge/Greenland_noOIB.par	(revision 19163)
+@@ -1,6 +1,6 @@
+-%Name and hemisphere
++%Name and Coordinate system
+ md.miscellaneous.name='SeaRISEgreenland';
+-md.mesh.hemisphere='n';
++md.mesh.epsg=3413;
+ 
+ disp('   Loading SeaRISE data from NetCDF');
+ ncdata='../Data/Greenland_5km_dev1.2.nc';
+Index: ../trunk-jpl/examples/IceBridge/Greenland_cheatsheet.par
+===================================================================
+--- ../trunk-jpl/examples/IceBridge/Greenland_cheatsheet.par	(revision 19162)
++++ ../trunk-jpl/examples/IceBridge/Greenland_cheatsheet.par	(revision 19163)
+@@ -1,6 +1,6 @@
+-%Name and hemisphere
++%Name and Coordinate system
+ md.miscellaneous.name='SeaRISEgreenland';
+-md.mesh.hemisphere='n';
++md.mesh.epsg=3413;
+ 
+ disp('   Loading SeaRISE data from NetCDF');
+ ncdata='../Data/Greenland_5km_dev1.2.nc';
Index: /issm/oecreview/Archive/19101-20495/ISSM-19163-19164.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19163-19164.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19163-19164.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/m/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.py	(revision 19163)
++++ ../trunk-jpl/src/m/solve/solve.py	(revision 19164)
+@@ -60,9 +60,12 @@
+ 			ismodelselfconsistent(md)
+ 
+ 	#First, build a runtime name that is unique
+-	c=datetime.datetime.now()
+-	md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
+-
++	if options.getfieldvalue('runtimename',True):
++		c=datetime.datetime.now()
++		md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
++	else:
++		md.private.runtimename=md.miscellaneous.name
++		
+ 	#if running qmu analysis, some preprocessing of dakota files using models
+ 	#fields needs to be carried out. 
+ 	if md.qmu.isdakota:
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19163)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19164)
+@@ -43,14 +43,12 @@
+ 		self.numstreams     = 8
+ 		self.hyperthreading = 0
+ 
+-		self.np=self.numnodes*self.cpuspernode;
+-		
+ 		#use provided options to change fields
+ 		options=pairoptions(*args)
+ 
+ 		#initialize cluster using user settings if provided
+ 		self=pfe_settings(self)
+-
++		self.np=20*8
+ 		#OK get other fields
+ 		self=options.AssignObjectFields(self)
+ 		
+@@ -133,6 +131,7 @@
+ 	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof):
+ 		# {{{
+ 
++		self.np=self.numnodes*self.cpuspernode;
+ 		#write queuing script 
+ 		fid=open(modelname+'.queue','w')
+ 		fid.write('#PBS -S /bin/bash\n')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19164-19165.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19164-19165.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19164-19165.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 19164)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 19165)
+@@ -29,7 +29,6 @@
+ from toolkits import toolkits
+ from generic import generic
+ from pfe import pfe
+-from greenplanet import greenplanet
+ from balancethickness import balancethickness
+ from stressbalance import stressbalance
+ from groundingline import groundingline
Index: /issm/oecreview/Archive/19101-20495/ISSM-19165-19166.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19165-19166.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19165-19166.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/examples/Greenland/runme.m
+===================================================================
+--- ../trunk-jpl/examples/Greenland/runme.m	(revision 19165)
++++ ../trunk-jpl/examples/Greenland/runme.m	(revision 19166)
+@@ -191,7 +191,7 @@
+ 
+ 	%Set transient options, run for 20 years, saving every timestep
+ 	md.timestepping.time_step=0.2;
+-	md.timestepping.final_time=200;
++	md.timestepping.final_time=20;
+ 	md.settings.output_frequency=1;
+ 
+ 	%Additional options
Index: /issm/oecreview/Archive/19101-20495/ISSM-19166-19167.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19166-19167.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19166-19167.diff	(revision 20498)
@@ -0,0 +1,136 @@
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 19166)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 19167)
+@@ -26,8 +26,6 @@
+ md.timestepping.time_step=10
+ md.timestepping.final_time=30
+ 
+-
+-
+ #Transient
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+@@ -40,6 +38,7 @@
+ md.calving=calvinglevermann()
+ md.calving.coeff=4.89e13*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=numpy.zeros((md.mesh.numberofvertices,1))
++md.calving.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ md.transient.requested_outputs=['default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate']
+ 
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 19166)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 19167)
+@@ -27,6 +27,7 @@
+ md.calving=calvinglevermann();
+ md.calving.coeff=4.89e13*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
++md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ md.transient.requested_outputs={'default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate'};
+ 
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 19166)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 19167)
+@@ -26,8 +26,6 @@
+ md.timestepping.time_step=10
+ md.timestepping.final_time=30
+ 
+-
+-
+ #Transient
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19166)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19167)
+@@ -13,7 +13,9 @@
+ 	"""
+ 
+ 	def __init__(self): # {{{
++
+ 		self.stabilization = 0
++		self.spclevelset   = float('NaN')
+ 		self.coeff         = float('NaN')
+ 		self.meltingrate   = float('NaN')
+ 
+@@ -23,6 +25,7 @@
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string='   Calving Levermann parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
+@@ -30,6 +33,7 @@
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
++		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
+ 		self.coeff=project3d(md,'vector',self.coeff,'type','node')
+ 		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
+ 		return self
+@@ -48,6 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
++		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+ 		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices],'>=',0)
+@@ -57,6 +62,7 @@
+ 		yts=365.*24.*3600.
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
+ 		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19166)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19167)
+@@ -6,6 +6,7 @@
+ classdef calvinglevermann
+ 	properties (SetAccess=public) 
+ 		stabilization = 0;
++		spclevelset   = NaN;
+ 		coeff         = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -29,6 +30,7 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
++			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.coeff=project3d(md,'vector',self.coeff,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+@@ -44,6 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
++			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+@@ -51,6 +54,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Levermann parameters:'));
+ 			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'coeff','proportionality coefficient in Levermann model');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -59,6 +63,7 @@
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
+ 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19167-19168.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19167-19168.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19167-19168.diff	(revision 20498)
@@ -0,0 +1,91 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19167)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19168)
+@@ -196,8 +196,8 @@
+ 		elif  test $VENDOR = MSVC-Win64; then
+ 			export CC=cl
+ 			export CXX=cccl
+-			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+-			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
++			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -D_HAVE_PETSC_MPI_ -EHsc"
++			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -D_HAVE_PETSC_MPI_ -EHsc"
+ 			export AR="ar-lib lib"
+ 			export OS_LDFLAG="-Wl,"
+ 			export RANLIB=true
+@@ -962,7 +962,6 @@
+ 					PETSCLIB=-Wl,/LIBPATH:`cygpath -w $PETSC_ROOT/lib`  -Wl,libpetscksp.lib  -Wl,libpetscdm.lib  -Wl,libpetscmat.lib  -Wl,libpetscvec.lib  -Wl,libpetscsnes.lib  -Wl,libpetscts.lib  -Wl,libmpiuni.lib  -Wl,libpetsc.lib
+ 				else
+ 					PETSCLIB="-L$PETSC_ROOT/lib  -Wl,libpetsc.lib"
+-					if test $PETSC_MAJOR -gt 3 || test $PETSC_MINOR -ge 3; then PETSCLIB+="  -Wl,libmetis.lib"; fi
+ 				fi
+ 				;;
+ 				*linux*)
+@@ -989,7 +988,7 @@
+ 	fi
+ 	dnl }}}
+ 	dnl metis{{{
+-	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3; then
++	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3 && test $VENDOR != "MSVC-Win64"; then
+ 		dnl in petsc >=3.3, metis is provided
+ 		HAVE_METIS="yes"
+ 		AC_DEFINE([_METIS_VERSION_],[5],[ Metis version number])
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 19167)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 19168)
+@@ -19,6 +19,8 @@
+ 	/*Include header files: {{{*/
+ 	#ifdef _HAVE_AMPI_
+ 		#include <ampi/ampi.h>
++	#elif  _HAVE_PETSC_MPI_ // Petsc now hides there MPI header. It can be reached through Petsc.
++		#include <petsc.h>
+ 	#else 
+ 		#include <mpi.h>
+ 	#endif
+Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19167)
++++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19168)
+@@ -41,7 +41,27 @@
+ 	MatCreate(IssmComm::GetComm(),&this->matrix);
+ 	MatSetSizes(this->matrix,m,n,M,N);
+ 	MatSetFromOptions(this->matrix);
+-	PetscErrorCode ierr = MatMPIAIJSetPreallocation(this->matrix,0,d_nnz,0,o_nnz);
++
++	/* 
++	 * Versions of Petsc beyond 3.3 have changed the use of preallocation 
++	 * routines to distinguish between parallel builds and sequential. Since
++	 * our Windows builds are currently only sequential, we need to change
++	 * the way we use these functions.
++	 *
++	 * The following code computes the total number of non-zeroes per row of the
++	 * matrix in question. In parallel builds it is nescessary to kep track of 
++	 * diagonal non zeros and off-diagonal (d_nnz and o_nnz). Sequential does
++	 * not make that distinction.
++	*/
++	#ifdef _HAVE_PETSC_MPI_
++	 int* nnz = new int[M];
++	 for(int i = 0; i < M; i++)
++		 nnz[i] = o_nnz[i] + d_nnz[i];
++
++		PetscErrorCode ierr = MatSeqAIJSetPreallocation(this->matrix,0,nnz);
++	#else
++		PetscErrorCode ierr = MatMPIAIJSetPreallocation(this->matrix,0,d_nnz,0,o_nnz);
++	#endif
+ 	if(ierr) _error_("PETSc could not allocate matrix (probably not enough memory)");
+ //	MatSetOption(this->matrix,MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE);
+ 
+Index: ../trunk-jpl/configs/config-win64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win64.sh	(revision 19167)
++++ ../trunk-jpl/configs/config-win64.sh	(revision 19168)
+@@ -2,7 +2,7 @@
+ 
+ # Works on Win8, but should also work on 7.
+ ./configure --prefix=$ISSM_DIR \
+-	--with-vendor=MSVC-win64  \
++	--with-vendor=MSVC-Win64  \
+ 	--disable-static \
+ 	--enable-standalone-libraries \
+ 	--with-fortran=no  \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19168-19169.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19168-19169.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19168-19169.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19168)
++++ ../trunk-jpl/jenkins/windows	(revision 19169)
+@@ -51,7 +51,7 @@
+ EXTERNALPACKAGES="cccl        install-win7.sh
+ 						autotools   install-win.sh
+ 						cmake       install.sh                
+-						petsc       install-3.1-win7.sh
++						petsc       install-3.5-win7.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19169-19170.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19169-19170.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19169-19170.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19169)
++++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19170)
+@@ -54,7 +54,7 @@
+ 	 * not make that distinction.
+ 	*/
+ 	#ifdef _HAVE_PETSC_MPI_
+-	 int* nnz = new int[M];
++	 int nnz[M];
+ 	 for(int i = 0; i < M; i++)
+ 		 nnz[i] = o_nnz[i] + d_nnz[i];
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19172-19173.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19172-19173.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19172-19173.diff	(revision 20498)
@@ -0,0 +1,161 @@
+Index: ../trunk-jpl/test/NightlyRun/test2361.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2361.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test2361.m	(revision 19173)
+@@ -0,0 +1,88 @@
++%Test Name: SquareShelfTranIspddIsdeltaSSA2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++
++%md.verbose=verbose('all');
++
++% Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBpdd();
++md.surfaceforcings.isd18opd=1;
++%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++
++% Add temperature, precipitation and delta18o needed to measure the surface mass balance
++%  creating delta18o
++load '../Data/delta18o.data'
++md.surfaceforcings.delta18o=delta18o;
++% creating delta18oSurface
++md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
++md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
++
++% creating Present day  temperatures
++% Same temperature over the all region:
++tmonth(1:12)=238.15+20.;
++for imonth=0:11
++    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    % Time for the last line:
++    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% creating initialization and spc temperatures initialization and
++% spc
++md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++
++md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++
++% creating precipitation
++for imonth=0:11
++    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    % Time for the last line:
++    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
++
++% 
++md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	};
+Index: ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp	(revision 0)
++++ ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp	(revision 19173)
+@@ -0,0 +1,31 @@
++/* file:  ComputeTemperaturePrecipitationfrom018.cpp
++ Scale present day monthly precipitation and temperature fields
++ along the NGRIP oxygen isotope record.
++ */
++
++#include "./elements.h"
++#include "../Numerics/numerics.h"
++
++void ComputeD18OTemperaturePrecipitationFromPD(IssmDouble d018,IssmDouble dpermil,
++					       IssmDouble* PrecipitationPresentday,IssmDouble* TemperaturePresentday,
++					       IssmDouble* monthlytemperaturesout, IssmDouble* monthlyprecout){
++  
++  IssmDouble monthlytemperaturestmp[12],monthlyprectmp[12];
++  IssmDouble deltaTemp;
++  
++  /* Constants */
++  // dpermil = 2.4;/*degrees C per mil*/
++  
++  /*Create Delta Temp to be applied to monthly temps and used in precip scaling*/
++  deltaTemp = dpermil * (d018+34.83);   
++    
++  for (int imonth = 0; imonth<12; imonth++){
++    
++    monthlytemperaturesout[imonth] = TemperaturePresentday[imonth] + deltaTemp;
++    monthlyprecout[imonth] = PrecipitationPresentday[imonth]*exp((0.169/dpermil)*deltaTemp);
++    
++    /*Assign output pointer*/
++    *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth];
++    *(monthlyprecout+imonth) = monthlyprectmp[imonth];
++  }
++}
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m	(revision 19173)
+@@ -0,0 +1,11 @@
++function macro=SurfaceforcingsDpermilEnum()
++%SURFACEFORCINGSDPERMILENUM - Enum of SurfaceforcingsDpermil
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SurfaceforcingsDpermilEnum()
++
++macro=StringToEnum('SurfaceforcingsDpermil');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m	(revision 19173)
+@@ -0,0 +1,11 @@
++function macro=SurfaceforcingsIsd18opdEnum()
++%SURFACEFORCINGSISD18OPDENUM - Enum of SurfaceforcingsIsd18opd
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SurfaceforcingsIsd18opdEnum()
++
++macro=StringToEnum('SurfaceforcingsIsd18opd');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19173-19174.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19173-19174.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19173-19174.diff	(revision 20498)
@@ -0,0 +1,196 @@
+Index: ../trunk-jpl/test/NightlyRun/test2361.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2361.m	(revision 19173)
++++ ../trunk-jpl/test/NightlyRun/test2361.m	(revision 19174)
+@@ -1,88 +0,0 @@
+-%Test Name: SquareShelfTranIspddIsdeltaSSA2d
+-md=triangle(model(),'../Exp/Square.exp',150000.);
+-md=setmask(md,'all','');
+-md=parameterize(md,'../Par/SquareShelf.par');
+-
+-%md.verbose=verbose('all');
+-
+-% Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isd18opd=1;
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+-
+-% Add temperature, precipitation and delta18o needed to measure the surface mass balance
+-%  creating delta18o
+-load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
+-% creating delta18oSurface
+-md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
+-md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
+-
+-% creating Present day  temperatures
+-% Same temperature over the all region:
+-tmonth(1:12)=238.15+20.;
+-for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+-    % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-end
+-
+-% creating initialization and spc temperatures initialization and
+-% spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-
+-md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
+-
+-% creating precipitation
+-for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+-    % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-end
+-
+-% time steps and resolution
+-md.timestepping.time_step=20;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=60;
+-
+-% 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+-md=solve(md,TransientSolutionEnum());
+-
+-%Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+-field_values={...
+-	(md.results.TransientSolution(1).Vx),...
+-	(md.results.TransientSolution(1).Vy),...
+-	(md.results.TransientSolution(1).Vel),...
+-	(md.results.TransientSolution(1).Pressure),...
+-	(md.results.TransientSolution(1).Base),...
+-	(md.results.TransientSolution(1).Surface),...
+-	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(2).Vx),...
+-	(md.results.TransientSolution(2).Vy),...
+-	(md.results.TransientSolution(2).Vel),...
+-	(md.results.TransientSolution(2).Pressure),...
+-	(md.results.TransientSolution(2).Base),...
+-	(md.results.TransientSolution(2).Surface),...
+-	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(3).Vx),...
+-	(md.results.TransientSolution(3).Vy),...
+-	(md.results.TransientSolution(3).Vel),...
+-	(md.results.TransientSolution(3).Pressure),...
+-	(md.results.TransientSolution(3).Base),...
+-	(md.results.TransientSolution(3).Surface),...
+-	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
+-	};
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19174)
+@@ -0,0 +1,88 @@
++%Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++
++%md.verbose=verbose('all');
++
++% Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBpdd();
++md.surfaceforcings.isd18opd=1;
++%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++
++% Add temperature, precipitation and delta18o needed to measure the surface mass balance
++%  creating delta18o
++load '../Data/delta18o.data'
++md.surfaceforcings.delta18o=delta18o;
++% creating delta18oSurface
++md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
++md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
++
++% creating Present day  temperatures
++% Same temperature over the all region:
++tmonth(1:12)=238.15+20.;
++for imonth=0:11
++    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    % Time for the last line:
++    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% creating initialization and spc temperatures initialization and
++% spc
++md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++
++md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++
++% creating precipitation
++for imonth=0:11
++    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    % Time for the last line:
++    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
++
++% 
++md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	};
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive240.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19174-19175.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19174-19175.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19174-19175.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19174)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19175)
+@@ -15,9 +15,6 @@
+ %  creating delta18o
+ load '../Data/delta18o.data'
+ md.surfaceforcings.delta18o=delta18o;
+-% creating delta18oSurface
+-md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
+-md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19175-19176.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19175-19176.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19175-19176.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19175)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19176)
+@@ -34,7 +34,7 @@
+ 		IoModelToDynamicConstraintsx(constraints,iomodel,ThermalSpctemperatureEnum,ThermalAnalysisEnum,finiteelement);
+ 	}
+ 	else{
+-		IoModelToDynamicConstraintsx(constraints,iomodel,ThermalSpctemperatureEnum,ThermalAnalysisEnum,finiteelement);
++		IoModelToConstraintsx(constraints,iomodel,ThermalSpctemperatureEnum,ThermalAnalysisEnum,finiteelement);
+ 	}
+ 
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19176-19177.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19176-19177.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19176-19177.diff	(revision 20498)
@@ -0,0 +1,72 @@
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19176)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19177)
+@@ -54,7 +54,6 @@
+ 					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
+ 					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+ 					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
+-					iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);
+ 					break;
+ 				case SMBgradientsEnum:
+ 					/*Nothing to add*/
+@@ -134,7 +133,6 @@
+ 	_printf_("   s0t: " << s0t << "\n");
+ 	_printf_("   rlaps: " << rlaps << "\n");
+ 	_printf_("   rlapslgm: " << rlapslgm << "\n");
+-	_printf_("   dpermil: " << dpermil << "\n");
+ 	return;
+ }
+ /*}}}*/
+@@ -180,7 +178,6 @@
+ 	matpar->s0t=this->s0t;
+ 	matpar->rlaps=this->rlaps;
+ 	matpar->rlapslgm=this->rlapslgm;
+-	matpar->dpermil=this->dpermil;
+ 
+ 	matpar->sediment_compressibility=this->sediment_compressibility;
+ 	matpar->sediment_porosity=this->sediment_porosity;
+@@ -276,9 +273,6 @@
+ 		case SurfaceforcingsRlapslgmEnum:
+ 			this->rlapslgm=constant;
+ 			break;
+-		case SurfaceforcingsDpermilEnum:
+-			this->dpermil=constant;
+-			break;
+ 		default: 
+ 			break;
+ 	}
+@@ -405,7 +399,6 @@
+ 		case SurfaceforcingsS0tEnum:                 return this->s0t;
+ 		case SurfaceforcingsRlapsEnum:               return this->rlaps;
+ 		case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
+-		case SurfaceforcingsDpermilEnum:             return this->dpermil;
+ 		case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
+ 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
+ 		case MaterialsMantleDensityEnum:             return this->mantle_density;
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19176)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19177)
+@@ -73,7 +73,7 @@
+           % fprintf(fid,'#$ -l h_rt=96:00:0\n');
+           % fprintf(fid,'#$ -l h_rt=336:00:0\n');
+ 
+-          fprintf(fid,'#$ -l h_vmem=3G\n');
++          fprintf(fid,'#$ -l h_vmem=3.5G\n');
+ 	  % if cluster.np>10
+           %     fprintf(fid,'#$ -l h_vmem=3G\n');
+           % else
+@@ -93,10 +93,10 @@
+           % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
+   
+           % ---- cpus on different nodes ----
+-          fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
++          % fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
+           % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
+           % -------- All cpus in the same node --------          
+-          % fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
++           fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
+           
+           % ---- misc ----
+           fprintf(fid,'#$ -j y\n');        
Index: /issm/oecreview/Archive/19101-20495/ISSM-19177-19178.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19177-19178.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19177-19178.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19177)
++++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp	(revision 19178)
+@@ -54,11 +54,12 @@
+ 	 * not make that distinction.
+ 	*/
+ 	#ifdef _HAVE_PETSC_MPI_
+-	 int nnz[M];
+-	 for(int i = 0; i < M; i++)
+-		 nnz[i] = o_nnz[i] + d_nnz[i];
++		int* nnz = new int[M];
++		for(int i = 0; i < M; i++)
++			nnz[i] = o_nnz[i] + d_nnz[i];
+ 
+ 		PetscErrorCode ierr = MatSeqAIJSetPreallocation(this->matrix,0,nnz);
++		delete[] nnz;
+ 	#else
+ 		PetscErrorCode ierr = MatMPIAIJSetPreallocation(this->matrix,0,d_nnz,0,o_nnz);
+ 	#endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19178-19179.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19178-19179.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19178-19179.diff	(revision 20498)
@@ -0,0 +1,153 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19178)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19179)
+@@ -6,79 +6,79 @@
+ if WRAPPERS
+ if MATLAB
+ if !DEVELOPMENT
+-bin_SCRIPTS += ./qmu/*.m \
+-					./qmu/setupdesign/*.m \
+-					./qmu/plot/*.m \
+-					./qmu/examples/*.m \
+-					./kml/*.m \
+-					./enum/*.m \
+-					./dev/issmversion.m \
+-					./classes/*.m \
+-					./classes/qmu/*.m \
+-					./classes/qmu/@dakota_method/*.m \
+-					./classes/clusters/*.m \
+-					./consistency/*.m \
+-					./array/*.m \
+-					./boundaryconditions/*.m \
+-					./exp/*.m \
+-					./exp/operation/*.m \
+-					./geometry/*.m \
+-					./interp/*.m \
+-					./coordsystems/*.m \
+-					./mech/*.m \
+-					./mesh/*.m \
+-					./mesh/planet/*.m \
+-					./mesh/rifts/*.m \
+-					./miscellaneous/*.m \
+-					./os/*.m \
+-					./plot/*.m \
+-					./plot/colormaps/*.m \
+-					./string/*.m \
+-					./contrib/massbalance/*.m \
+-					./contrib/ecco/*.m \
+-					./contrib/hydrology/*.m \
+-					./contrib/hack/*.m \
+-					./contrib/gslib/*.m \
+-					./contrib/uci/*.m \
+-					./contrib/oasis/*.m \
+-					./contrib/bamg/*.m \
+-					./extrusion/*.m \
+-					./inversions/*.m \
+-					./io/*.m \
+-					./parameterization/*.m \
+-					./partition/*.m \
+-					./print/*.m \
+-					./regional/*.m \
+-					./solve/*.m \
+-					./solvers/*.m \
+-					./materials/*.m
++bin_SCRIPTS += ${ISSM_DIR}/src/m/qmu/*.m \
++					${ISSM_DIR}/src/m/qmu/setupdesign/*.m \
++					${ISSM_DIR}/src/m/qmu/plot/*.m \
++					${ISSM_DIR}/src/m/qmu/examples/*.m \
++					${ISSM_DIR}/src/m/kml/*.m \
++					${ISSM_DIR}/src/m/enum/*.m \
++					${ISSM_DIR}/src/m/dev/issmversion.m \
++					${ISSM_DIR}/src/m/classes/*.m \
++					${ISSM_DIR}/src/m/classes/qmu/*.m \
++					${ISSM_DIR}/src/m/classes/qmu/@dakota_method/*.m \
++					${ISSM_DIR}/src/m/classes/clusters/*.m \
++					${ISSM_DIR}/src/m/consistency/*.m \
++					${ISSM_DIR}/src/m/array/*.m \
++					${ISSM_DIR}/src/m/boundaryconditions/*.m \
++					${ISSM_DIR}/src/m/exp/*.m \
++					${ISSM_DIR}/src/m/exp/operation/*.m \
++					${ISSM_DIR}/src/m/geometry/*.m \
++					${ISSM_DIR}/src/m/interp/*.m \
++					${ISSM_DIR}/src/m/coordsystems/*.m \
++					${ISSM_DIR}/src/m/mech/*.m \
++					${ISSM_DIR}/src/m/mesh/*.m \
++					${ISSM_DIR}/src/m/mesh/planet/*.m \
++					${ISSM_DIR}/src/m/mesh/rifts/*.m \
++					${ISSM_DIR}/src/m/miscellaneous/*.m \
++					${ISSM_DIR}/src/m/os/*.m \
++					${ISSM_DIR}/src/m/plot/*.m \
++					${ISSM_DIR}/src/m/plot/colormaps/*.m \
++					${ISSM_DIR}/src/m/string/*.m \
++					${ISSM_DIR}/src/m/contrib/massbalance/*.m \
++					${ISSM_DIR}/src/m/contrib/ecco/*.m \
++					${ISSM_DIR}/src/m/contrib/hydrology/*.m \
++					${ISSM_DIR}/src/m/contrib/hack/*.m \
++					${ISSM_DIR}/src/m/contrib/gslib/*.m \
++					${ISSM_DIR}/src/m/contrib/uci/*.m \
++					${ISSM_DIR}/src/m/contrib/oasis/*.m \
++					${ISSM_DIR}/src/m/contrib/bamg/*.m \
++					${ISSM_DIR}/src/m/extrusion/*.m \
++					${ISSM_DIR}/src/m/inversions/*.m \
++					${ISSM_DIR}/src/m/io/*.m \
++					${ISSM_DIR}/src/m/parameterization/*.m \
++					${ISSM_DIR}/src/m/partition/*.m \
++					${ISSM_DIR}/src/m/print/*.m \
++					${ISSM_DIR}/src/m/regional/*.m \
++					${ISSM_DIR}/src/m/solve/*.m \
++					${ISSM_DIR}/src/m/solvers/*.m \
++					${ISSM_DIR}/src/m/materials/*.m
+ endif
+ endif
+ if PYTHON
+ if !DEVELOPMENT
+-bin_SCRIPTS += ./enum/*.py \
+-					./classes/*.py \
+-					./classes/clusters/*.py \
+-					./consistency/*.py \
+-					./dev/issmversion.py \
+-					./boundaryconditions/*.py \
+-					./exp/*.py \
+-					./geometry/*.py \
+-					./coordsystems/*.py \
+-					./interp/*.py \
+-					./inversions/*.py \
+-					./mech/*.py \
+-					./mesh/*.py \
+-					./mesh/rifts/*.py \
+-					./miscellaneous/*.py \
+-					./os/*.py \
+-					./plot/*.py \
+-					./extrusion/*.py \
+-					./io/*.py \
+-					./parameterization/*.py \
+-					./solve/*.py \
+-					./solvers/*.py \
+-					./materials/*.py
++bin_SCRIPTS += ${ISSM_DIR}/src/m/enum/*.py \
++					${ISSM_DIR}/src/m/classes/*.py \
++					${ISSM_DIR}/src/m/classes/clusters/*.py \
++					${ISSM_DIR}/src/m/consistency/*.py \
++					${ISSM_DIR}/src/m/dev/issmversion.py \
++					${ISSM_DIR}/src/m/boundaryconditions/*.py \
++					${ISSM_DIR}/src/m/exp/*.py \
++					${ISSM_DIR}/src/m/geometry/*.py \
++					${ISSM_DIR}/src/m/coordsystems/*.py \
++					${ISSM_DIR}/src/m/interp/*.py \
++					${ISSM_DIR}/src/m/inversions/*.py \
++					${ISSM_DIR}/src/m/mech/*.py \
++					${ISSM_DIR}/src/m/mesh/*.py \
++					${ISSM_DIR}/src/m/mesh/rifts/*.py \
++					${ISSM_DIR}/src/m/miscellaneous/*.py \
++					${ISSM_DIR}/src/m/os/*.py \
++					${ISSM_DIR}/src/m/plot/*.py \
++					${ISSM_DIR}/src/m/extrusion/*.py \
++					${ISSM_DIR}/src/m/io/*.py \
++					${ISSM_DIR}/src/m/parameterization/*.py \
++					${ISSM_DIR}/src/m/solve/*.py \
++					${ISSM_DIR}/src/m/solvers/*.py \
++					${ISSM_DIR}/src/m/materials/*.py
+ endif
+ endif
+ endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19179-19180.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19179-19180.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19179-19180.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/mesh/rifts/meshprocessrifts.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/rifts/meshprocessrifts.m	(revision 19179)
++++ ../trunk-jpl/src/m/mesh/rifts/meshprocessrifts.m	(revision 19180)
+@@ -62,3 +62,8 @@
+ aires=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y);
+ pos=find(aires<0);
+ md.mesh.elements(pos,:)=[md.mesh.elements(pos,2) md.mesh.elements(pos,1) md.mesh.elements(pos,3)];
++
++%case of 3D surface mesh: 
++if strcmpi(class(md.mesh),'mesh3dsurface'),
++	md.mesh.z=md.mesh.x; md.mesh.z(:)=0;
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19180-19181.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19180-19181.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19180-19181.diff	(revision 20498)
@@ -0,0 +1,9 @@
+
+Property changes on: ../trunk-jpl/externalpackages/gmsh
+___________________________________________________________________
+Added: svn:ignore
+   + MacOS
+install
+src
+
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19181-19182.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19181-19182.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19181-19182.diff	(revision 20498)
@@ -0,0 +1,9 @@
+
+Property changes on: ../trunk-jpl/externalpackages/fti
+___________________________________________________________________
+Added: svn:ignore
+   + install
+*.tgz
+*.gz
+
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19182-19183.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19182-19183.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19182-19183.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/m/shp/shpread.m
+===================================================================
+--- ../trunk-jpl/src/m/shp/shpread.m	(revision 19182)
++++ ../trunk-jpl/src/m/shp/shpread.m	(revision 19183)
+@@ -54,7 +54,31 @@
+ 			end
+ 		end
+ 	end
++	
++	if strcmpi(shp(i).Geometry,'Line'),
++		x=shp(i).X'; y=shp(i).Y';
++		ids=find(isnan(x));
++		x(ids)=[]; y(ids)=[];
+ 
++		Struct(end+1).x=x;
++		Struct(end).y=y;
++		Struct(end).nods=length(x);
++		Struct(end).density=1;
++		Struct(end).closed=1;
++		if isfield(shp,'id'),
++			Struct(end).name=num2str(shp(i).id);
++		else
++			Struct(end).name='';
++		end
++		for j=1:length(fields),
++			field=fields{j};
++			if ~(strcmpi(field,'X') | strcmpi(field,'Y') | strcmpi(field,'id')),
++				Struct(end).(field)=shp(i).(field);
++			end
++		end
++	end
++
++
+ 	if strcmpi(shp(i).Geometry,'Point'),
+ 		x=shp(i).X'; y=shp(i).Y';
+ 		ids=find(isnan(x));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19183-19184.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19183-19184.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19183-19184.diff	(revision 20498)
@@ -0,0 +1,166 @@
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19183)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19184)
+@@ -1,85 +0,0 @@
+-%Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d
+-md=triangle(model(),'../Exp/Square.exp',150000.);
+-md=setmask(md,'all','');
+-md=parameterize(md,'../Par/SquareShelf.par');
+-
+-%md.verbose=verbose('all');
+-
+-% Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isd18opd=1;
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+-
+-% Add temperature, precipitation and delta18o needed to measure the surface mass balance
+-%  creating delta18o
+-load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
+-
+-% creating Present day  temperatures
+-% Same temperature over the all region:
+-tmonth(1:12)=238.15+20.;
+-for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+-    % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-end
+-
+-% creating initialization and spc temperatures initialization and
+-% spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-
+-md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
+-
+-% creating precipitation
+-for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+-    % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-end
+-
+-% time steps and resolution
+-md.timestepping.time_step=20;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=60;
+-
+-% 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+-md=solve(md,TransientSolutionEnum());
+-
+-%Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+-field_values={...
+-	(md.results.TransientSolution(1).Vx),...
+-	(md.results.TransientSolution(1).Vy),...
+-	(md.results.TransientSolution(1).Vel),...
+-	(md.results.TransientSolution(1).Pressure),...
+-	(md.results.TransientSolution(1).Base),...
+-	(md.results.TransientSolution(1).Surface),...
+-	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(2).Vx),...
+-	(md.results.TransientSolution(2).Vy),...
+-	(md.results.TransientSolution(2).Vel),...
+-	(md.results.TransientSolution(2).Pressure),...
+-	(md.results.TransientSolution(2).Base),...
+-	(md.results.TransientSolution(2).Surface),...
+-	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(3).Vx),...
+-	(md.results.TransientSolution(3).Vy),...
+-	(md.results.TransientSolution(3).Vel),...
+-	(md.results.TransientSolution(3).Pressure),...
+-	(md.results.TransientSolution(3).Base),...
+-	(md.results.TransientSolution(3).Surface),...
+-	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
+-	};
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19183)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19184)
+@@ -54,6 +54,7 @@
+ 					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
+ 					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+ 					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
++					// iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);					
+ 					break;
+ 				case SMBgradientsEnum:
+ 					/*Nothing to add*/
+@@ -133,6 +134,7 @@
+ 	_printf_("   s0t: " << s0t << "\n");
+ 	_printf_("   rlaps: " << rlaps << "\n");
+ 	_printf_("   rlapslgm: " << rlapslgm << "\n");
++	//	_printf_("   dpermil: " << dpermil << "\n");
+ 	return;
+ }
+ /*}}}*/
+@@ -178,6 +180,7 @@
+ 	matpar->s0t=this->s0t;
+ 	matpar->rlaps=this->rlaps;
+ 	matpar->rlapslgm=this->rlapslgm;
++	//	matpar->dpermil=this->dpermil;
+ 
+ 	matpar->sediment_compressibility=this->sediment_compressibility;
+ 	matpar->sediment_porosity=this->sediment_porosity;
+@@ -273,6 +276,9 @@
+ 		case SurfaceforcingsRlapslgmEnum:
+ 			this->rlapslgm=constant;
+ 			break;
++//		case  SurfaceforcingsDpermilEnum:
++//			this->dpermil=constant;
++//			break;
+ 		default: 
+ 			break;
+ 	}
+@@ -399,6 +405,7 @@
+ 		case SurfaceforcingsS0tEnum:                 return this->s0t;
+ 		case SurfaceforcingsRlapsEnum:               return this->rlaps;
+ 		case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
++		  //		case SurfaceforcingsDpermilEnum:             return this->dpermil;
+ 		case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
+ 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
+ 		case MaterialsMantleDensityEnum:             return this->mantle_density;
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19183)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19184)
+@@ -73,7 +73,7 @@
+           % fprintf(fid,'#$ -l h_rt=96:00:0\n');
+           % fprintf(fid,'#$ -l h_rt=336:00:0\n');
+ 
+-          fprintf(fid,'#$ -l h_vmem=3.5G\n');
++          fprintf(fid,'#$ -l h_vmem=3G\n');
+ 	  % if cluster.np>10
+           %     fprintf(fid,'#$ -l h_vmem=3G\n');
+           % else
+@@ -93,10 +93,10 @@
+           % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
+   
+           % ---- cpus on different nodes ----
+-          % fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
++           fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
+           % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
+           % -------- All cpus in the same node --------          
+-           fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
++          %fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
+           
+           % ---- misc ----
+           fprintf(fid,'#$ -j y\n');        
Index: /issm/oecreview/Archive/19101-20495/ISSM-19184-19185.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19184-19185.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19184-19185.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19184)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19185)
+@@ -988,7 +988,7 @@
+ 	fi
+ 	dnl }}}
+ 	dnl metis{{{
+-	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3 && test $VENDOR != "MSVC-Win64"; then
++	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3 && test "x$VENDOR" != "xMSVC-Win64"; then
+ 		dnl in petsc >=3.3, metis is provided
+ 		HAVE_METIS="yes"
+ 		AC_DEFINE([_METIS_VERSION_],[5],[ Metis version number])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19185-19186.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19185-19186.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19185-19186.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test318.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test318.m	(revision 19185)
++++ ../trunk-jpl/test/NightlyRun/test318.m	(revision 19186)
+@@ -10,7 +10,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={1e-13,1e-13,4e-10,1e-10,1e-13,1e-11,1e-6};
++field_tolerances={1e-13,1e-13,6e-10,1e-10,1e-13,1e-11,1e-6};
+ field_values={...
+ 	(md.results.SteadystateSolution.Vx),...
+ 	(md.results.SteadystateSolution.Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test515.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.m	(revision 19185)
++++ ../trunk-jpl/test/NightlyRun/test515.m	(revision 19186)
+@@ -15,7 +15,7 @@
+ %Fields and tolerances to track changes
+ field_names     ={'Temperature1','BasalforcingsGroundediceMeltingRate1', ...
+ 				      'Temperature2','BasalforcingsGroundediceMeltingRate2'};
+-field_tolerances={1e-13,1e-8,1e-13,3e-8};
++field_tolerances={1e-13,1e-8,1e-13,5e-8};
+ field_values={...
+ 	(md.results.TransientSolution(1).Temperature),...
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19186-19187.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19186-19187.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19186-19187.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test318.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test318.py	(revision 19186)
++++ ../trunk-jpl/test/NightlyRun/test318.py	(revision 19187)
+@@ -19,7 +19,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsGroundediceMeltingRate']
+-field_tolerances=[1e-13,1e-13,1.5e-10,1e-10,1e-13,1e-11,1e-6]
++field_tolerances=[1e-13,1e-13,1.6e-10,1e-10,1e-13,1e-11,1e-6]
+ field_values=[\
+ 	md.results.SteadystateSolution.Vx,\
+ 	md.results.SteadystateSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test515.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.py	(revision 19186)
++++ ../trunk-jpl/test/NightlyRun/test515.py	(revision 19187)
+@@ -24,7 +24,7 @@
+ # Fields and tolerances to track changes
+ field_names     =['Temperature1','BasalforcingsGroundediceMeltingRate1', \
+ 				      'Temperature2','BasalforcingsGroundediceMeltingRate2']
+-field_tolerances=[1e-13,1e-8,1e-13,2e-8]
++field_tolerances=[1e-13,1e-8,1e-13,5e-8]
+ field_values=[\
+ 	md.results.TransientSolution[0].Temperature,\
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19187-19188.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19187-19188.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19187-19188.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19187)
++++ ../trunk-jpl/jenkins/windows	(revision 19188)
+@@ -83,5 +83,5 @@
+ #ex: "'id',[101 102 103]"
+ 
+ #In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
+-MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19188-19189.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19188-19189.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19188-19189.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 19188)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 19189)
+@@ -214,8 +214,8 @@
+ 					_error_("   maximum number of EPL iterations (" << hydro_maxiter << ") exceeded");
+ 				}
+ 				//If there is some colapse go through sediment again
+-				if(ThickCount<L2Count)eplconverged=true;
+-				eplcount++;
++				/* if(ThickCount<L2Count)eplconverged=true; */
++				/* eplcount++; */
+ 				
+ 				delete ug_epl_sub_iter;
+ 				if(eplconverged){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19189-19190.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19189-19190.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19189-19190.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19189)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19190)
+@@ -26,6 +26,7 @@
+ 		self.sealev                    = float('NaN')
+ 		self.isdelta18o                = 0
+ 		self.ismungsm                  = 0
++		self.isd18opd                  = 0
+ 		self.delta18o                  = float('NaN')
+ 		self.delta18o_surface          = float('NaN')
+ 		self.temperatures_presentday   = float('NaN')
+@@ -41,6 +42,7 @@
+ 
+ 		string="%s\n%s"%(string,fielddisplay(self,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ismungsm','is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
+@@ -70,7 +72,7 @@
+ 		#}}}
+ 	def extrude(self,md): # {{{
+ 
+-		if not (self.isdelta18o and self.ismungsm):
++		if not (self.isdelta18o and self.ismungsm and self.isd18opd):
+ 			self.precipitation=project3d(md,'vector',self.precipitation,'type','node')
+ 			self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node')
+ 		if self.isdelta18o: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node')
+@@ -113,7 +115,7 @@
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+-			if (self.isdelta18o==0 and self.ismungsm==0):
++			if (self.isdelta18o==0 and self.ismungsm==0 and self.isd18opd):
+ 				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1)
+ 			elif self.isdelta18o:
+@@ -144,6 +146,7 @@
+ 
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19190-19191.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19190-19191.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19190-19191.diff	(revision 20498)
@@ -0,0 +1,506 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19190)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19191)
+@@ -289,6 +289,7 @@
+ 	SettingsIoGatherEnum,
+ 	SettingsLowmemEnum,
+ 	SettingsOutputFrequencyEnum,
++	SettingsRestartFrequencyEnum,
+ 	SettingsWaitonlockEnum,
+ 	DebugProfilingEnum,
+ 	ProfilingCurrentMemEnum,
+@@ -868,6 +869,7 @@
+ 	OutputFileNameEnum,
+ 	InputFileNameEnum,
+ 	LockFileNameEnum,
++	RestartFileNameEnum,
+ 	ToolkitsOptionsAnalysesEnum,
+ 	ToolkitsOptionsStringsEnum,
+ 	QmuErrNameEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19191)
+@@ -297,6 +297,7 @@
+ 		case SettingsIoGatherEnum : return "SettingsIoGather";
+ 		case SettingsLowmemEnum : return "SettingsLowmem";
+ 		case SettingsOutputFrequencyEnum : return "SettingsOutputFrequency";
++		case SettingsRestartFrequencyEnum : return "SettingsRestartFrequency";
+ 		case SettingsWaitonlockEnum : return "SettingsWaitonlock";
+ 		case DebugProfilingEnum : return "DebugProfiling";
+ 		case ProfilingCurrentMemEnum : return "ProfilingCurrentMem";
+@@ -841,6 +842,7 @@
+ 		case OutputFileNameEnum : return "OutputFileName";
+ 		case InputFileNameEnum : return "InputFileName";
+ 		case LockFileNameEnum : return "LockFileName";
++		case RestartFileNameEnum : return "RestartFileName";
+ 		case ToolkitsOptionsAnalysesEnum : return "ToolkitsOptionsAnalyses";
+ 		case ToolkitsOptionsStringsEnum : return "ToolkitsOptionsStrings";
+ 		case QmuErrNameEnum : return "QmuErrName";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19191)
+@@ -303,6 +303,7 @@
+ 	      else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum;
+ 	      else if (strcmp(name,"SettingsLowmem")==0) return SettingsLowmemEnum;
+ 	      else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
++	      else if (strcmp(name,"SettingsRestartFrequency")==0) return SettingsRestartFrequencyEnum;
+ 	      else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
+ 	      else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
+ 	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+ 	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+-	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
++	      if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
++	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
+ 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+ 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
+-	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
++	      if (strcmp(name,"Profiler")==0) return ProfilerEnum;
++	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
+ 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
+ 	      else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
+ 	      else if (strcmp(name,"MassconDefinitionenum")==0) return MassconDefinitionenumEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+ 	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
+-	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
++	      if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
++	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
+ 	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
+ 	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+ 	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+ 	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+ 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
+-	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
++	      if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
++	      else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
+ 	      else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
+ 	      else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
+ 	      else if (strcmp(name,"Outputdefinition75")==0) return Outputdefinition75Enum;
+@@ -859,6 +860,7 @@
+ 	      else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
+ 	      else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
+ 	      else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
++	      else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
+ 	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+ 	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+ 	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+-	      else if (strcmp(name,"XY")==0) return XYEnum;
+-	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Dense")==0) return DenseEnum;
++	      if (strcmp(name,"XY")==0) return XYEnum;
++	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
++	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+ 	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
+ 	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
+ 	      else if (strcmp(name,"Seq")==0) return SeqEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19191)
+@@ -47,6 +47,7 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(DomainTypeEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DomainDimensionEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SettingsOutputFrequencyEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SettingsRestartFrequencyEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(ConstantsYtsEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(TimesteppingStartTimeEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(TimesteppingFinalTimeEnum));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19191)
+@@ -24,6 +24,7 @@
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
++	int        restart_frequency;
+ 	int        domaintype,groundingline_migration,smb_model;
+ 	int        numoutputs;
+ 	Analysis  *analysis          = NULL;
+@@ -41,6 +42,7 @@
+ 	femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
+ 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
+ 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
++	femmodel->parameters->FindParam(&restart_frequency,SettingsRestartFrequencyEnum);
+ 	femmodel->parameters->FindParam(&time_adapt,TimesteppingTimeAdaptEnum);
+ 	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+@@ -178,6 +180,7 @@
+ 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+ 			OutputResultsx(femmodel);
+ 		}
++		if(step%restart_frequency==0 )femmodel->CheckPoint();
+ 	}
+ 
+ 	femmodel->RequestedDependentsx();
+Index: ../trunk-jpl/src/c/cores/ProcessArguments.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/ProcessArguments.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/cores/ProcessArguments.cpp	(revision 19191)
+@@ -7,21 +7,27 @@
+ 
+ #include "../shared/shared.h"
+ 
+-void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ptoolkitsfilename,char** plockfilename,char** prootpath, int argc,char **argv){
++void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ptoolkitsfilename,char** plockfilename,char** prestartfilename, char** prootpath, int argc,char **argv){
+ 
+ 	char *modelname      = NULL;
+ 	char *binfilename    = NULL;
+ 	char *outbinfilename = NULL;
+ 	char *toolkitsfilename  = NULL;
+ 	char *lockfilename   = NULL;
++	char *restartfilename    = NULL;
+ 	char *rootpath       = NULL;
+-	char *rootpatharg    = NULL;
++	char *rootpatharg    = NULL; 
++	int   my_rank, rank_length;  
+ 
+ 	/*Check input arguments*/
+ 	if(argc<2)_error_("Usage error: no solution requested");
+ 	if(argc<3)_error_("Usage error: missing execution directory");
+ 	if(argc<4)_error_("Usage error: missing model name");
+ 
++	/*Recover myrank: */
++	my_rank=IssmComm::GetRank();
++	rank_length= (my_rank == 0 ? 1 : (int)(log10(my_rank)+1)); /*length of string "my_rank" */
++
+ 	/*Get requested solution*/
+ 	*solution_type=StringToEnumx(argv[1]);
+ 
+@@ -39,12 +45,14 @@
+ 		outbinfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s%s",rootpath,modelname,".outbin");
+ 		toolkitsfilename  = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".toolkits") +1); sprintf(toolkitsfilename, "%s%s%s",rootpath,modelname,".toolkits");
+ 		lockfilename   = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".lock")  +1); sprintf(lockfilename,  "%s%s%s",rootpath,modelname,".lock");
++		restartfilename   = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".rst.")  +rank_length +1); sprintf(restartfilename,  "%s%s%s%i",rootpath,modelname,".rst.",my_rank);
+ 	}
+ 	else{
+ 		binfilename    = xNew<char>(strlen(modelname)+strlen(".bin")   +1); sprintf(binfilename,   "%s%s",modelname,".bin");
+ 		outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin");
+ 		toolkitsfilename  = xNew<char>(strlen(modelname)+strlen(".toolkits") +1); sprintf(toolkitsfilename, "%s%s",modelname,".toolkits");
+ 		lockfilename   = xNew<char>(strlen(modelname)+strlen(".lock")  +1); sprintf(lockfilename,  "%s%s",modelname,".lock");
++		restartfilename   = xNew<char>(strlen(modelname)+strlen(".rst.")  +rank_length +1); sprintf(restartfilename,  "%s%s%i",modelname,".rst.",my_rank);
+ 	}
+ 
+ 	/*Clean up and assign output pointer*/
+@@ -52,6 +60,7 @@
+ 	*poutbinfilename=outbinfilename;
+ 	*ptoolkitsfilename=toolkitsfilename;
+ 	*plockfilename=lockfilename;
++	*prestartfilename=restartfilename;
+ 	*prootpath=rootpath;
+ 
+ }
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 19190)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 19191)
+@@ -52,7 +52,7 @@
+ int GradJSearch(IssmDouble* search_vector,FemModel* femmodel,int step);
+ 
+ //diverse
+-void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ptoolkitsname,char** plockname,char** prootpath,int argc,char **argv);
++void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ptoolkitsname,char** plockname,char** prestartname, char** prootpath,int argc,char **argv);
+ void WriteLockFile(char* filename);
+ void ResetBoundaryConditions(FemModel* femmodel, int analysis_type);
+ void PrintBanner(void);
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19190)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19191)
+@@ -53,6 +53,7 @@
+ 	char *binfilename    = NULL;
+ 	char *outbinfilename = NULL;
+ 	char *petscfilename  = NULL;
++	char *restartfilename  = NULL;
+ 	char *rootpath       = NULL;
+ 
+ 	/*First things first, store the communicator, and set it as a global variable: */
+@@ -70,11 +71,11 @@
+ 	profiler->Tag(Start);
+ 
+ 	/*From command line arguments, retrieve different filenames needed to create the FemModel: */
+-	ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename,&rootpath,argc,argv);
++	ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename,&restartfilename,&rootpath,argc,argv);
+ 
+ 	/*Create femmodel from input files: */
+ 	profiler->Tag(StartInit);
+-	this->InitFromFiles(rootpath,binfilename,outbinfilename,petscfilename,lockfilename,solution_type,trace,NULL);
++	this->InitFromFiles(rootpath,binfilename,outbinfilename,petscfilename,lockfilename,restartfilename, solution_type,trace,NULL);
+ 	profiler->Tag(FinishInit);
+ 
+ 	/*Free resources */
+@@ -86,7 +87,7 @@
+ 
+ }
+ /*}}}*/
+-FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X){ /*{{{*/
++FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, char* restartfilename, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X){ /*{{{*/
+ 
+ 	bool traceon=true;
+ 	this->profiler=NULL; /*avoid leak, as we are not using the profiler ever in ad control run. */
+@@ -97,7 +98,7 @@
+ 	this->SetStaticComm();
+ 
+ 	/*Create femmodel from input files, with trace activated: */
+-	this->InitFromFiles(rootpath,inputfilename,outputfilename,toolkitsfilename,lockfilename,solution_type,traceon,X);
++	this->InitFromFiles(rootpath,inputfilename,outputfilename,toolkitsfilename,lockfilename,restartfilename, solution_type,traceon,X);
+ 
+ }
+ /*}}}*/
+@@ -141,7 +142,7 @@
+ 
+ }
+ /*}}}*/
+-void FemModel::InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, const int in_solution_type,bool trace,IssmPDouble* X){/*{{{*/
++void FemModel::InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, char* restartfilename, const int in_solution_type,bool trace,IssmPDouble* X){/*{{{*/
+ 
+ 	/*intermediary*/
+ 	int         i;
+@@ -207,6 +208,7 @@
+ 	this->parameters->AddObject(new StringParam(InputFileNameEnum,inputfilename));
+ 	this->parameters->AddObject(new StringParam(OutputFileNameEnum,outputfilename));
+ 	this->parameters->AddObject(new StringParam(LockFileNameEnum,lockfilename));
++	this->parameters->AddObject(new StringParam(RestartFileNameEnum,restartfilename));
+ 
+ 	/*Clean up*/
+ 	delete iomodel;
+@@ -602,7 +604,29 @@
+ 	if(panalyses)    *panalyses=analyses;
+ 	else              xDelete<int>(analyses);
+ }/*}}}*/
++void FemModel::CheckPoint(void){/*{{{*/
+ 
++	FILE* restartfid=NULL;
++	char* restartfilename = NULL;
++
++	/*First, recover the name of the restart file: */
++	parameters->FindParam(&restartfilename,RestartFileNameEnum);
++	
++	/*Open file for writing: */
++	restartfid=pfopen(restartfilename,"wb");
++
++	/*Done, close file :*/
++	pfclose(restartfid,restartfilename);
++
++	/*Free ressources: */
++	xDelete<char>(restartfilename);
++
++}
++/*}}}*/
++void FemModel::Restart(void){/*{{{*/
++}
++/*}}}*/
++
+ /*Modules:*/
+ int  FemModel::UpdateVertexPositionsx(void){ /*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19190)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19191)
+@@ -46,19 +46,21 @@
+ 
+ 		/*constructors, destructors: */
+ 		FemModel(int argc,char** argv,ISSM_MPI_Comm comm_init,bool trace=false);
+-		FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X);
++		FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, char* restartfilename, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X);
+ 		~FemModel();
+ 
+ 		/*Methods:*/
+ 		void Echo();
+ 		FemModel* copy();
+-		void InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* petscfilename, char* lockfilename, const int solution_type,bool trace,IssmPDouble* X=NULL);
++		void InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* petscfilename, char* lockfilename, char* restartfilename, const int solution_type,bool trace,IssmPDouble* X=NULL);
+ 		void SolutionAnalysesList(int** panalyses,int* pnumanalyses,IoModel* iomodel,int solutiontype);
+ 		void CleanUp(void);
+ 		void Solve(void);
+ 		void SetStaticComm();
+ 		void SetCurrentConfiguration(int configuration_type);
+ 		void SetCurrentConfiguration(int configuration_type,int analysis_type);
++		void CheckPoint(void);
++		void Restart(void);
+ 
+ 		/*Modules*/ 
+ 		void ElementOperationx(void (Element::*function)(void));
+Index: ../trunk-jpl/src/m/classes/settings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.py	(revision 19190)
++++ ../trunk-jpl/src/m/classes/settings.py	(revision 19191)
+@@ -16,6 +16,7 @@
+ 		self.io_gather           = 0
+ 		self.lowmem              = 0
+ 		self.output_frequency    = 0
++		self.restart_frequency    = 0
+ 		self.waitonlock          = 0
+ 
+ 		#set defaults
+@@ -29,6 +30,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,"io_gather","I/O gathering strategy for result outputs (default 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"output_frequency","frequency at which results are saved in all solutions with multiple time_steps"))
++		string="%s\n%s"%(string,fielddisplay(self,"restart_frequency","frequency at which the runs are being checkpointed, allowing for a restart"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"waitonlock","maximum number of minutes to wait for batch results, or return 0"))
+ 		return string
+ 		#}}}
+@@ -43,6 +45,10 @@
+ 		#results frequency by default every step
+ 		self.output_frequency=1
+ 
++		#checkpoints frequency, by default never: 
++		self.restart_frequency=0
++
++
+ 		#this option can be activated to load automatically the results
+ 		#onto the model after a parallel run by waiting for the lock file
+ 		#N minutes that is generated once the solution has converged
+@@ -56,6 +62,7 @@
+ 		md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)
++		md = checkfield(md,'fieldname','settings.restart_frequency','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','settings.waitonlock','numel',[1])
+ 
+ 		return md
+@@ -65,6 +72,7 @@
+ 		WriteData(fid,'object',self,'fieldname','io_gather','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','lowmem','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','output_frequency','format','Integer')
++		WriteData(fid,'object',self,'fieldname','restart_frequency','format','Integer')
+ 		if self.waitonlock>0:
+ 			WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',True,'format','Boolean');
+ 		else:
+Index: ../trunk-jpl/src/m/classes/settings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.m	(revision 19190)
++++ ../trunk-jpl/src/m/classes/settings.m	(revision 19191)
+@@ -9,6 +9,7 @@
+ 		io_gather           = 0;
+ 		lowmem              = 0;
+ 		output_frequency    = 0;
++		restart_frequency   = 0;
+ 		waitonlock          = 0;
+ 		upload_server       = '';
+ 		upload_path         = '';
+@@ -57,6 +58,9 @@
+ 			%results frequency by default every step
+ 			self.output_frequency=1;
+ 
++			%checkpoints frequency, by default never: 
++			self.restart_frequency=0;
++
+ 			%this option can be activated to load automatically the results
+ 			%onto the model after a parallel run by waiting for the lock file
+ 			%N minutes that is generated once the solution has converged
+@@ -73,6 +77,7 @@
+ 			md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1);
++			md = checkfield(md,'fieldname','settings.restart_frequency','numel',[1],'>=',0);
+ 			md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
+ 
+ 		end % }}}
+@@ -83,6 +88,7 @@
+ 			fielddisplay(self,'io_gather','I/O gathering strategy for result outputs (default 1)');
+ 			fielddisplay(self,'lowmem','is the memory limited ? (0 or 1)');
+ 			fielddisplay(self,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
++			fielddisplay(self,'restart_frequency','frequency at which the runs are being checkpointed, allowing for a restart');
+ 			fielddisplay(self,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
+ 			fielddisplay(self,'upload_server','server hostname where model should be uploaded');
+ 			fielddisplay(self,'upload_path','path on server where model should be uploaded');
+@@ -96,6 +102,7 @@
+ 			WriteData(fid,'object',self,'fieldname','io_gather','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','lowmem','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','output_frequency','format','Integer');
++			WriteData(fid,'object',self,'fieldname','restart_frequency','format','Integer');
+ 			if self.waitonlock>0,
+ 				WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',true,'format','Boolean');
+ 			else
+Index: ../trunk-jpl/src/m/enum/RestartFileNameEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/RestartFileNameEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/RestartFileNameEnum.m	(revision 19191)
+@@ -0,0 +1,11 @@
++function macro=RestartFileNameEnum()
++%RESTARTFILENAMEENUM - Enum of RestartFileName
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=RestartFileNameEnum()
++
++macro=StringToEnum('RestartFileName');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19190)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19191)
+@@ -289,6 +289,7 @@
+ def SettingsIoGatherEnum(): return StringToEnum("SettingsIoGather")[0]
+ def SettingsLowmemEnum(): return StringToEnum("SettingsLowmem")[0]
+ def SettingsOutputFrequencyEnum(): return StringToEnum("SettingsOutputFrequency")[0]
++def SettingsRestartFrequencyEnum(): return StringToEnum("SettingsRestartFrequency")[0]
+ def SettingsWaitonlockEnum(): return StringToEnum("SettingsWaitonlock")[0]
+ def DebugProfilingEnum(): return StringToEnum("DebugProfiling")[0]
+ def ProfilingCurrentMemEnum(): return StringToEnum("ProfilingCurrentMem")[0]
+@@ -833,6 +834,7 @@
+ def OutputFileNameEnum(): return StringToEnum("OutputFileName")[0]
+ def InputFileNameEnum(): return StringToEnum("InputFileName")[0]
+ def LockFileNameEnum(): return StringToEnum("LockFileName")[0]
++def RestartFileNameEnum(): return StringToEnum("RestartFileName")[0]
+ def ToolkitsOptionsAnalysesEnum(): return StringToEnum("ToolkitsOptionsAnalyses")[0]
+ def ToolkitsOptionsStringsEnum(): return StringToEnum("ToolkitsOptionsStrings")[0]
+ def QmuErrNameEnum(): return StringToEnum("QmuErrName")[0]
+Index: ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m	(revision 19191)
+@@ -0,0 +1,11 @@
++function macro=SettingsRestartFrequencyEnum()
++%SETTINGSRESTARTFREQUENCYENUM - Enum of SettingsRestartFrequency
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SettingsRestartFrequencyEnum()
++
++macro=StringToEnum('SettingsRestartFrequency');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19191-19192.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19191-19192.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19191-19192.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19191)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19192)
+@@ -180,7 +180,7 @@
+ 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+ 			OutputResultsx(femmodel);
+ 		}
+-		if(step%restart_frequency==0 )femmodel->CheckPoint();
++		if(restart_frequency && step%restart_frequency==0)femmodel->CheckPoint();
+ 	}
+ 
+ 	femmodel->RequestedDependentsx();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19192-19193.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19192-19193.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19192-19193.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19192)
++++ ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19193)
+@@ -136,7 +136,7 @@
+ 	SetControlInputsFromVectorx(femmodel,X);
+ 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
+ 	femmodel->OutputControlsx(&femmodel->results);
+-	femmodel->results->AddObject(new GenericExternalResult<double>(JEnum,f,1,0));
++	femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1,JEnum,f,1));
+ 
+ 	/*Finalize*/
+ 	if(VerboseControl()) _printf0_("   preparing final solution\n");
Index: /issm/oecreview/Archive/19101-20495/ISSM-19193-19194.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19193-19194.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19193-19194.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19193)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19194)
+@@ -1205,6 +1205,7 @@
+ 				name==WatercolumnEnum || 
+ 				name==FrictionCoefficientEnum ||
+ 				name==FrictionAsEnum ||
++				name==FrictionEffectivePressureEnum ||
+ 				name==MaskGroundediceLevelsetEnum ||
+ 				name==MaskIceLevelsetEnum ||
+ 				name==IceMaskNodeActivationEnum ||
Index: /issm/oecreview/Archive/19101-20495/ISSM-19194-19195.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19194-19195.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19194-19195.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/frictionhydro.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19194)
++++ ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19195)
+@@ -31,12 +31,15 @@
+ 			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.C','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.As','NaN',1,'size',[md.mesh.numberofelements 1]);
++			if self.Coupling==0,
++				md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'timeseries',1);
++	    end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.q=project3d(md,'vector',self.q,'type','element');
+ 			self.C=project3d(md,'vector',self.C,'type','element');
+ 			self.As=project3d(md,'vector',self.As,'type','element');
+-			if self.Coupling==1,
++			if self.Coupling==0,
+ 				self.effective_pressure=project3d(md,'vector',self.effective_pressure,'type','node','layer',1);
+ 			end
+ 	  end % }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19195-19196.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19195-19196.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19195-19196.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/src/m/solve/loadresultsfromcluster.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfromcluster.py	(revision 19195)
++++ ../trunk-jpl/src/m/solve/loadresultsfromcluster.py	(revision 19196)
+@@ -1,6 +1,6 @@
+ import os
+ import socket
+-import MatlabFuncs as m
++import platform
+ from loadresultsfromdisk import loadresultsfromdisk
+ 
+ def loadresultsfromcluster(md,runtimename=False):
+@@ -37,25 +37,23 @@
+ 		filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
+ 	else:
+ 		filename=md.miscellaneous.name
++		TryRem('.outbin',filename)
++		if not platform.system()=='Windows':
++			TryRem('.tar.gz',md.private.runtimename)
+ 
+ 	TryRem('.errlog',filename)
+ 	TryRem('.outlog',filename)
+ 	
+-	if not m.ispc():
+-		TryRem('.tar.gz',md.private.runtimename)
+-		if not md.qmu.isdakota:
+-			TryRem('.outbin',filename)
+-
+-			#erase input file if run was carried out on same platform.
++	#erase input file if run was carried out on same platform.
+ 	hostname=socket.gethostname()
+-	if m.strcmpi(hostname,cluster.name):
++	if hostname==cluster.name:
+ 		if md.qmu.isdakota:
+ 			filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
+ 			TryRem('.queue',filename)
+ 		else:
+ 			filename=md.miscellaneous.name
+ 			TryRem('.toolkits',filename)
+-			if not m.ispc():
++			if not platform.system()=='Windows':
+ 				TryRem('.queue',filename)
+ 			else:
+ 				TryRem('.bat',filename)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19196-19197.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19196-19197.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19196-19197.diff	(revision 20498)
@@ -0,0 +1,181 @@
+Index: ../trunk-jpl/src/m/contrib/paraview/exportVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/paraview/exportVTK.m	(revision 19196)
++++ ../trunk-jpl/src/m/contrib/paraview/exportVTK.m	(revision 19197)
+@@ -58,7 +58,8 @@
+ 		%looking for multiple time steps
+ 		if(size(sol_struct{i},2)>num_of_timesteps);
+ 			num_of_timesteps=size(sol_struct{i},2);
+-    end
++	  end
++		outstep=model.timestepping.time_step*model.settings.output_frequency;
+   end
+ else
+ 	num_of_timesteps=1;
+@@ -144,7 +145,52 @@
+ 				fprintf(fid,'LOOKUP_TABLE default\n');
+ 				s='%e\n';
+ 				fprintf(fid,s,res_struct.(fieldnames{k}));
+-	    end		
++				%check for forcings	
++			elseif (size(res_struct.(fieldnames{k}),1)==num_of_points+1);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				if (size(res_struct.(fieldnames{k}),2)==num_of_timesteps),
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,res_struct.(fieldnames{k})(1:end-1,timestep));
++				else,
++					%forcing and results not on the same timestep,need some treatment
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					index=1;
++					currenttime=((timestep-1)*outstep)+model.timestepping.start_time;
++					while (res_struct.(fieldnames{k})(end,index)<=currenttime);
++						if index==size(res_struct.(fieldnames{k}),2)
++							break
++						end	
++						index=index+1;
++		      end
++					uptime=res_struct.(fieldnames{k})(end,index);
++					uplim=res_struct.(fieldnames{k})(1:end-1,index);
++					while (res_struct.(fieldnames{k})(end,index)>=currenttime);
++						if index==1
++							break
++			      end
++						index=index-1;
++		      end
++					lowtime=res_struct.(fieldnames{k})(end,index);
++					lowlim=res_struct.(fieldnames{k})(1:end-1,index);
++					if uptime==currenttime,
++						interp=uplim;
++					elseif lowtime==currenttime,
++						interp=lowlim;
++					else
++						interp=lowlim+(uplim-lowlim)*((currenttime-lowtime)/(uptime-lowtime));
++					end
++					s='%e\n';
++					fprintf(fid,s,interp);
++				end
++		  end		
+ 		end 
+ 	end
+ 	fclose(fid);
+Index: ../trunk-jpl/src/m/contrib/paraview/enveloppeVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/paraview/enveloppeVTK.m	(revision 19196)
++++ ../trunk-jpl/src/m/contrib/paraview/enveloppeVTK.m	(revision 19197)
+@@ -50,15 +50,15 @@
+ 		%looking for multiple time steps
+ 		if(size(sol_struct{i},2)>num_of_timesteps);
+ 			num_of_timesteps=size(sol_struct{i},2);
++			outstep=model.timestepping.time_step*model.settings.output_frequency
++    end
+   end
+- end
+ else
+ 	num_of_timesteps=1;
+ end
+ for step=1:num_of_timesteps;
+ 	
+ 	timestep=step;
+-
+ 	fid = fopen(strcat(path,filesep,name,filesep,'timestep.vtk',int2str(timestep),'.vtk'),'w+');
+ 	fprintf(fid,'# vtk DataFile Version 2.0 \n');
+ 	fprintf(fid,'Data for run %s \n',model.miscellaneous.name);
+@@ -84,10 +84,8 @@
+ 	%build the connection matrix for the top and bottom elements
+ 	if exist('low_elt_num')
+ 		triaconnect=zeros(num_of_elt,3);
+-		triaconnect(1:low_elt_num,:)= ...
+-				model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3);
+-		upshift=-min(min(model.mesh.elements(find(isnan(model.mesh.upperelements)),4:6)))...
+-						+1+max(max(model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3)));
++		triaconnect(1:low_elt_num,:)=model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3);
++		upshift=-min(min(model.mesh.elements(find(isnan(model.mesh.upperelements)),4:6)))+1+max(max(model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3)));
+ 		triaconnect(1+low_elt_num:num_of_elt,:)=model.mesh.elements(find(isnan(model.mesh.upperelements)),4:6)+upshift;
+ 		fprintf(fid,s,[(3)*ones(num_of_elt,1) triaconnect-1]');
+ 	else
+@@ -108,24 +106,22 @@
+ 			else
+ 				timestep = size(sol_struct{j},2);
+ 	    end
+-			
+ 			%getting the number of fields in the solution
+-			fieldnames=fields(sol_struct{j}(timestep));
+-			num_of_fields=length(fieldnames);
+-			
++			resfields=fields(sol_struct{j}(timestep));
++			num_of_fields=length(resfields);
+ 			%check which field is a real result and print
+ 			for k=1:num_of_fields
+-				if ((numel(sol_struct{j}(timestep).(fieldnames{k})))==tot_points);
++				if ((numel(sol_struct{j}(timestep).(resfields{k})))==tot_points);
+ 					%paraview does not like NaN, replacing
+-					nanval=find(isnan(sol_struct{j}(timestep).(fieldnames{k})));
+-					sol_struct{j}(timestep).(fieldnames{k})(nanval)=-9999;
++					nanval=find(isnan(sol_struct{j}(timestep).(resfields{k})));
++					sol_struct{j}(timestep).(resfields{k})(nanval)=-9999;
+ 					%also checking for verry small value that mess up
+-					smallval=(abs(sol_struct{j}(timestep).(fieldnames{k}))<1.0e-20);
+-					sol_struct{j}(timestep).(fieldnames{k})(smallval)=0.0;
+-					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					smallval=(abs(sol_struct{j}(timestep).(resfields{k}))<1.0e-20);
++					sol_struct{j}(timestep).(resfields{k})(smallval)=0.0;
++					fprintf(fid,'SCALARS %s float 1 \n',resfields{k});
+ 					fprintf(fid,'LOOKUP_TABLE default\n');
+ 					s='%e\n';
+-					fprintf(fid,s,sol_struct{j}(timestep).(fieldnames{k})(IsEnveloppe));
++					fprintf(fid,s,sol_struct{j}(timestep).(resfields{k})(IsEnveloppe));
+ 		    end		
+ 	    end 
+ 	  end
+@@ -148,7 +144,42 @@
+ 				fprintf(fid,'LOOKUP_TABLE default\n');
+ 				s='%e\n';
+ 				fprintf(fid,s,res_struct.(fieldnames{k})(IsEnveloppe));
+-	    end		
++				%check for forcings	
++			elseif (size(res_struct.(fieldnames{k}),1)==tot_points+1);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				if (size(res_struct.(fieldnames{k}),2)==num_of_timesteps),
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,res_struct.(fieldnames{k})(IsEnveloppe,timestep));
++				else,
++					%forcing and results not on the same timestep,need some treatment
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					index=1
++					currenttime=((timestep-1)*outstep)+model.timestepping.start_time+model.timestepping.time_step
++					while (res_struct.(fieldnames{k})(end,index)<=currenttime);
++						index=index+1
++		      end
++					uptime=res_struct.(fieldnames{k})(end,index);
++					uplim=res_struct.(fieldnames{k})(IsEnveloppe,index);
++					uptime
++					while (res_struct.(fieldnames{k})(end,index)>=currenttime);
++						index=index-1
++		      end
++					lowtime=res_struct.(fieldnames{k})(end,index);
++					lowlim=res_struct.(fieldnames{k})(IsEnveloppe,index);
++					lowtime
++					interp=lowlim+(uplim-lowlim)*((currenttime-lowtime)/(uptime-lowtime))
++					s='%e\n';
++					fprintf(fid,s,interp);
++				end	
++		  end		
+ 		end 
+ 	end
+ 	fclose(fid);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19197-19198.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19197-19198.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19197-19198.diff	(revision 20498)
@@ -0,0 +1,1320 @@
+Index: ../trunk-jpl/src/c/bamg/BamgQuadtree.h
+===================================================================
+--- ../trunk-jpl/src/c/bamg/BamgQuadtree.h	(revision 19197)
++++ ../trunk-jpl/src/c/bamg/BamgQuadtree.h	(revision 19198)
+@@ -34,6 +34,7 @@
+ 					int     Id()         {_error_("not implemented yet"); };
+ 					int     ObjectEnum() {_error_("not implemented yet"); };
+ 					Object *copy()       {_error_("not implemented yet"); };
++					void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 			};
+ 
+ 			/*BamgQuadtree private Fields*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19197)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19198)
+@@ -7,6 +7,9 @@
+ #define _ENUM_DEFINITIONS_
+ 
+ enum definitions{
++	/*General: {{{*/
++	FemModelEnum,
++	/*}}}*/
+ 	/*Model fields {{{*/
+ 	AutodiffIsautodiffEnum, 
+ 	AutodiffNumDependentsEnum,
+@@ -454,6 +457,7 @@
+ 	FSpressureEnum,
+ 	/*}}}*/
+ 	/*Datasets {{{*/
++	DataSetEnum,
+ 	ConstraintsEnum,
+ 	LoadsEnum,
+ 	MaterialsEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19198)
+@@ -16,6 +16,7 @@
+ 
+ 	switch(en){
+ 
++		case FemModelEnum : return "FemModel";
+ 		case AutodiffIsautodiffEnum : return "AutodiffIsautodiff";
+ 		case AutodiffNumDependentsEnum : return "AutodiffNumDependents";
+ 		case AutodiffNumDependentObjectsEnum : return "AutodiffNumDependentObjects";
+@@ -453,6 +454,7 @@
+ 		case FSApproximationEnum : return "FSApproximation";
+ 		case FSvelocityEnum : return "FSvelocity";
+ 		case FSpressureEnum : return "FSpressure";
++		case DataSetEnum : return "DataSet";
+ 		case ConstraintsEnum : return "Constraints";
+ 		case LoadsEnum : return "Loads";
+ 		case MaterialsEnum : return "Materials";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19198)
+@@ -16,7 +16,8 @@
+    int  stage=1;
+ 
+    if(stage==1){
+-	      if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum;
++	      if (strcmp(name,"FemModel")==0) return FemModelEnum;
++	      else if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum;
+ 	      else if (strcmp(name,"AutodiffNumDependents")==0) return AutodiffNumDependentsEnum;
+ 	      else if (strcmp(name,"AutodiffNumDependentObjects")==0) return AutodiffNumDependentObjectsEnum;
+ 	      else if (strcmp(name,"AutodiffDependentObjectNames")==0) return AutodiffDependentObjectNamesEnum;
+@@ -135,11 +136,11 @@
+ 	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
+-	      else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
+          else stage=2;
+    }
+    if(stage==2){
+-	      if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
++	      if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
++	      else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThickComp")==0) return HydrologydcEplThickCompEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+-	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
++	      if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
++	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+ 	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+-	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
++	      if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
++	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
+@@ -462,6 +463,7 @@
+ 	      else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
+ 	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
+ 	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
++	      else if (strcmp(name,"DataSet")==0) return DataSetEnum;
+ 	      else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
+ 	      else if (strcmp(name,"Loads")==0) return LoadsEnum;
+ 	      else if (strcmp(name,"Materials")==0) return MaterialsEnum;
+@@ -503,12 +505,12 @@
+ 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+-	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+-	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Profiler")==0) return ProfilerEnum;
++	      if (strcmp(name,"Pengrid")==0) return PengridEnum;
++	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
++	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+ 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
+ 	      else if (strcmp(name,"Masscon")==0) return MassconEnum;
+ 	      else if (strcmp(name,"MassconName")==0) return MassconNameEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+-	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
+-	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
++	      if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
++	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
++	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
+ 	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
+ 	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+-	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+-	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
++	      if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
++	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
++	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
+ 	      else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
+ 	      else if (strcmp(name,"Outputdefinition73")==0) return Outputdefinition73Enum;
+ 	      else if (strcmp(name,"Outputdefinition74")==0) return Outputdefinition74Enum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+-	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+-	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"XY")==0) return XYEnum;
++	      if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
++	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
++	      else if (strcmp(name,"XY")==0) return XYEnum;
+ 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+ 	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+ 	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 0)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19198)
+@@ -0,0 +1,66 @@
++/*\file Marshalling.h
++ *\brief: macros to help automate the marshalling, demarshalling, and marshalling size routines. 
++ */
++
++#ifndef _MARSHALLING_H_
++#define _MARSHALLING_H_
++
++enum marshall_directions{
++	MARSHALLING_FORWARD,
++	MARSHALLING_BACKWARDS
++};
++
++#define MARSHALLING_ENUM(EN) \
++	int enum_type=EN; \
++	if(marshall_direction==MARSHALLING_FORWARD){\
++		if(pmarshalled_data){\
++			memcpy(*pmarshalled_data,&enum_type,sizeof(int));\
++			*pmarshalled_data+=sizeof(int);\
++		}\
++		*pmarshalled_data_size+=sizeof(int);\
++	}
++
++#define MARSHALLING(FIELD) \
++\
++	if(marshall_direction==MARSHALLING_FORWARD){\
++		if(pmarshalled_data){\
++			memcpy(*pmarshalled_data,&FIELD,sizeof(FIELD));\
++			*pmarshalled_data+=sizeof(FIELD);\
++		}\
++		*pmarshalled_data_size+=sizeof(FIELD);\
++	}\
++	else{\
++		memcpy(&FIELD,*pmarshalled_data,sizeof(FIELD));\
++		*pmarshalled_data+=sizeof(FIELD);\
++	}
++
++#define MARSHALLING_ARRAY(FIELD,TYPE,SIZE) \
++\
++	if(marshall_direction==MARSHALLING_FORWARD){\
++		if(pmarshalled_data){\
++			memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++			*pmarshalled_data+=SIZE*sizeof(TYPE);\
++		}\
++		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
++	}\
++	else{\
++		memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
++		*pmarshalled_data+=SIZE*sizeof(TYPE);\
++	}
++
++#define MARSHALLING_DYNAMIC(FIELD,TYPE,SIZE) \
++\
++	if(marshall_direction==MARSHALLING_FORWARD){\
++		if(pmarshalled_data){\
++			memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++			*pmarshalled_data+=SIZE*sizeof(TYPE);\
++		}\
++		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
++	}\
++	else{\
++		FIELD=xNew<TYPE>(SIZE);\
++		memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
++		*pmarshalled_data+=SIZE*sizeof(TYPE);\
++	}
++
++#endif	
+Index: ../trunk-jpl/src/c/shared/io/io.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/io.h	(revision 19197)
++++ ../trunk-jpl/src/c/shared/io/io.h	(revision 19198)
+@@ -11,8 +11,9 @@
+ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+ #endif 
+ 
++#include "./Comm/IssmComm.h"
+ #include "./Disk/diskio.h"
+ #include "./Print/Print.h"
+-#include "./Comm/IssmComm.h"
++#include "./Marshalling/Marshalling.h"
+ 
+ #endif	/* _IO_H_ */
+Index: ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp	(revision 19198)
+@@ -251,7 +251,6 @@
+ 				IsIdenticalNode(xnodes[2],ynodes[2],xsegment[0],ysegment[0],tolerance)){
+ 				
+ 				/*ok, segments[0] is common to one of our vertices: */
+-				//if (el==318 && contouri==9){ _printf_("ok1" << "\n"); }
+ 				coord1=0;
+ 				if(edge1==IntersectEnum){coord2=alpha1;}
+ 				if(edge2==IntersectEnum){coord2=beta1;}
+Index: ../trunk-jpl/src/c/toolkits/issm/Bucket.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/Bucket.h	(revision 19197)
++++ ../trunk-jpl/src/c/toolkits/issm/Bucket.h	(revision 19198)
+@@ -8,7 +8,7 @@
+ /*Headers:*/
+ /*{{{*/
+ #include "../../datastructures/datastructures.h"
+-#include "../../shared/shared.h"
++#include "../../shared/io/Comm/IssmComm.h"
+ #include "../toolkitsenums.h"
+ /*}}}*/
+ 
+@@ -128,6 +128,10 @@
+ 			else if (this->type==VECTOR_BUCKET) return new Bucket(this->m,this->idxm,this->values,this->mode);
+ 			else _error_("No Copy of Bucket because its type is invalid."); };
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 
+ 		/*specific routines of Bucket: */
+ 		void SpawnBucketsPerCpu(DataSet* bucketsofcpu_i,int rank_i,int* rowranks){ /*{{{*/
+Index: ../trunk-jpl/src/c/classes/Contour.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Contour.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Contour.h	(revision 19198)
+@@ -82,6 +82,11 @@
+ 			return (Object*) contour;
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
++
+ };
+ 
+ #endif  /* _CONTOUR_H_ */
+Index: ../trunk-jpl/src/c/classes/Materials/Matice.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matice.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Materials/Matice.h	(revision 19198)
+@@ -39,6 +39,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual funictions definitions: {{{*/
+ 		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19198)
+@@ -78,6 +78,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void   InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/DependentObject.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/DependentObject.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/DependentObject.h	(revision 19198)
+@@ -31,7 +31,11 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy(void);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
+ 		/*}}}*/
++		/*}}}*/
+ 
+ 		/*DependentObject methods: */
+ 		int  NumDependents(void);
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param virtual functions definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19198)
+@@ -51,6 +51,7 @@
+                 // it does not clarify  ownership of the newed up instance...
+                 // use the default copy constructor instead
+                 Object* copy() { return new GenericParam<P>(*this); };
++				void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+                 /*}}}*/
+                 /*Param vritual function definitions: {{{*/
+                 int   InstanceEnum(){return myEnumVal;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 19198)
+@@ -37,6 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/FileParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19198)
+@@ -35,6 +35,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DataSetParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DataSetParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/DataSetParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/IntParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/VectorParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/VectorParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/VectorParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/MatrixParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/MatrixParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/MatrixParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/StringArrayParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringArrayParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/StringArrayParam.h	(revision 19198)
+@@ -37,6 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/TransientParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19198)
+@@ -37,6 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19198)
+@@ -38,6 +38,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntVecParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19198)
+@@ -37,6 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param virtual functions definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/BoolParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/BoolParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/BoolParam.h	(revision 19198)
+@@ -35,6 +35,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntMatParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19198)
+@@ -37,6 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/StringParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Masscon.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Masscon.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Masscon.h	(revision 19198)
+@@ -76,6 +76,10 @@
+ 			return (Object*) mf;
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 		/*Definition virtual function resolutoin: */
+ 		char* Name(){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/kriging/Observation.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Observation.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/Observation.h	(revision 19198)
+@@ -32,7 +32,9 @@
+ 		int     ObjectEnum(){_error_("Not implemented yet"); };
+ 		bool operator==(const Observation& ob) const;
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 
++
+ 		/*Management*/
+ 		void WriteXYObs(const Observation& ob, double* px, double* py, double* pobs);
+ 		void WriteXYObs(double* px,double* py,double* pobs);
+Index: ../trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h	(revision 19198)
+@@ -26,7 +26,9 @@
+ 		int   Id(){_error_("Not implemented yet");}; 
+ 		int   ObjectEnum(){_error_("Not implemented yet");};
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
++
+ 		/*Variogram functions*/
+ 		double SemiVariogram(double deltax,double deltay);
+ 		double Covariance(double deltax,double deltay);
+Index: ../trunk-jpl/src/c/classes/kriging/PowerVariogram.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/PowerVariogram.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/PowerVariogram.h	(revision 19198)
+@@ -26,7 +26,9 @@
+ 		int   Id(){_error_("Not implemented yet");}; 
+ 		int   ObjectEnum(){_error_("Not implemented yet");};
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
++
+ 		/*Variogram functions*/
+ 		double SemiVariogram(double deltax,double deltay);
+ 		double Covariance(double deltax,double deltay);
+Index: ../trunk-jpl/src/c/classes/kriging/Quadtree.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/Quadtree.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/Quadtree.h	(revision 19198)
+@@ -30,7 +30,9 @@
+ 				int     Id()        {_error_("not implemented yet"); };
+ 				int     ObjectEnum(){_error_("not implemented yet"); };
+ 				Object *copy();
++				void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 
++
+ 				/*Methods*/
+ 				int          IsWithinRange(double  x,double y,double range);
+ 				void         RangeSearch(int *indices,int *pnobs,double x,double y,double range);
+Index: ../trunk-jpl/src/c/classes/kriging/GaussianVariogram.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/GaussianVariogram.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/GaussianVariogram.h	(revision 19198)
+@@ -27,6 +27,7 @@
+ 		int   Id(){_error_("Not implemented yet");}; 
+ 		int   ObjectEnum(){_error_("Not implemented yet");};
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*Variogram functions*/
+ 		double SemiVariogram(double deltax,double deltay);
+Index: ../trunk-jpl/src/c/classes/kriging/SphericalVariogram.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/kriging/SphericalVariogram.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/kriging/SphericalVariogram.h	(revision 19198)
+@@ -26,7 +26,9 @@
+ 		int   Id(){_error_("Not implemented yet");}; 
+ 		int   ObjectEnum(){_error_("Not implemented yet");};
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
++
+ 		/*Variogram functions*/
+ 		double SemiVariogram(double deltax,double deltay);
+ 		double Covariance(double deltax,double deltay);
+Index: ../trunk-jpl/src/c/classes/Options/Option.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Options/Option.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Options/Option.h	(revision 19198)
+@@ -25,7 +25,9 @@
+ 		int           Id(){_error_("Not implemented yet"); };
+ 		int           ObjectEnum(){return OptionEnum;              };
+ 		Object       *copy(){_error_("Not implemented yet"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
++
+ 		/*virtual functions: */
+ 		virtual char* Name()=0;
+ 		virtual int   NumEl()=0;
+Index: ../trunk-jpl/src/c/classes/Loads/Loads.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Loads.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Loads/Loads.cpp	(revision 19198)
+@@ -14,9 +14,9 @@
+ #include <functional>
+ #include <algorithm>
+ 
++#include "../../shared/io/Comm/IssmComm.h"
+ #include "./Loads.h"
+ #include "./Load.h"
+-#include "../../shared/shared.h"
+ 
+ using namespace std;
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Loads/Riftfront.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Riftfront.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Loads/Riftfront.h	(revision 19198)
+@@ -61,6 +61,7 @@
+ 		void     Echo();
+ 		int      Id(); 
+ 		int      ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void    InputUpdateFromConstant(IssmDouble constant, int name);
+Index: ../trunk-jpl/src/c/classes/Loads/Numericalflux.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 19198)
+@@ -44,6 +44,7 @@
+ 		void    Echo();
+ 		int     Id();
+ 		int     ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void InputUpdateFromConstant(IssmDouble constant, int name){/*Do nothing*/};
+Index: ../trunk-jpl/src/c/classes/Loads/Penpair.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Penpair.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Loads/Penpair.h	(revision 19198)
+@@ -35,6 +35,7 @@
+ 		void     Echo();
+ 		int      Id(); 
+ 		int      ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void  InputUpdateFromConstant(IssmDouble constant, int name);
+Index: ../trunk-jpl/src/c/classes/Loads/Pengrid.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 19198)
+@@ -54,6 +54,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19198)
+@@ -125,7 +125,13 @@
+ 		Object* copy(void) { /*{{{*/
+ 			return new GenericExternalResult<ResultType>(this->id,this->result_name,this->value,this->step,this->time);
+ 		} /*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 
++
++
+ 		/*GenericExternalResult management: */
+ void  WriteData(FILE* fid,bool io_gather){ /*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19198)
+@@ -608,6 +608,8 @@
+ 
+ 	FILE* restartfid=NULL;
+ 	char* restartfilename = NULL;
++	int   femmodel_size;
++	char* femmodel_buffer=NULL;
+ 
+ 	/*First, recover the name of the restart file: */
+ 	parameters->FindParam(&restartfilename,RestartFileNameEnum);
+@@ -615,10 +617,21 @@
+ 	/*Open file for writing: */
+ 	restartfid=pfopen(restartfilename,"wb");
+ 
++	/*Create buffer to hold marshalled femmodel: */
++	this->Marshall(NULL,&femmodel_size,MARSHALLING_FORWARD);
++	femmodel_buffer=xNew<char>(femmodel_size);
++
++	/*Marshall:*/
++	this->Marshall(&femmodel_buffer,&femmodel_size,MARSHALLING_FORWARD);
++
++	/*write buffer: */
++	fwrite(femmodel_buffer,femmodel_size,sizeof(IssmPDouble),restartfid);
++
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+ 
+ 	/*Free ressources: */
++	xDelete<char>(femmodel_buffer);
+ 	xDelete<char>(restartfilename);
+ 
+ }
+@@ -626,7 +639,40 @@
+ void FemModel::Restart(void){/*{{{*/
+ }
+ /*}}}*/
++void FemModel::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(FemModelEnum);
++
++	MARSHALLING(solution_type);
++	MARSHALLING(analysis_counter);
++	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
++
++	if(marshall_direction==MARSHALLING_BACKWARDS){
++		profiler=new Profiler;
++		elements=new Elements();
++		nodes=new Nodes();
++		vertices=new Vertices();
++		constraints=new Constraints();
++		loads=new Loads();
++		materials=new Materials();
++		parameters=new Parameters();
++		results=new Results();
++	}
++	
++	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	MARSHALLING(comm);
++}
++/*}}}*/
++
+ /*Modules:*/
+ int  FemModel::UpdateVertexPositionsx(void){ /*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/IndependentObject.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/IndependentObject.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/IndependentObject.h	(revision 19198)
+@@ -30,6 +30,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy(void);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 		/*IndependentObject methods: {{{*/
+ 		void FetchIndependent(IoModel* iomodel,int* pXcount,IssmPDouble* X);
+Index: ../trunk-jpl/src/c/classes/Node.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Node.h	(revision 19198)
+@@ -49,6 +49,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*Node numerical routines*/
+ 		void  CreateNodalConstraints(Vector<IssmDouble>* ys);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19198)
+@@ -66,6 +66,7 @@
+ 		void               DeleteInput(int input_enum);
+ 		void               DeleteMaterials(void);
+ 		IssmDouble         Divergence(void);
++		void               Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		void               dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void               dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+ 		void               dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+Index: ../trunk-jpl/src/c/classes/Misfit.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Misfit.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Misfit.h	(revision 19198)
+@@ -103,6 +103,10 @@
+ 			return (Object*) mf;
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 		/*Definition virtual function resolutoin: */
+ 		char* Name(){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19198)
+@@ -29,6 +29,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*DoubleInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19198)
+@@ -31,6 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*SegInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19198)
+@@ -31,6 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*TetraInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19198)
+@@ -34,6 +34,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*ControlInput management: {{{*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19198)
+@@ -31,6 +31,7 @@
+ 		int   Id();
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*DatasetInput management: {{{*/
+ 		void   AddInput(Input* input,int id);
+Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19198)
+@@ -30,6 +30,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*IntInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19198)
+@@ -26,6 +26,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*BoolInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19198)
+@@ -31,6 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*TriaInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19198)
+@@ -31,6 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*PentaInput management*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19198)
+@@ -36,6 +36,7 @@
+ 		int   Id();
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*TransientInput management: {{{*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Segment.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Segment.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Segment.h	(revision 19198)
+@@ -70,6 +70,10 @@
+ 			return new Segment(this->eid,this->x1,this->y1,this->x2,this->y2);
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 
+ };
+ 
+Index: ../trunk-jpl/src/c/classes/Nodes.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Nodes.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Nodes.cpp	(revision 19198)
+@@ -10,8 +10,8 @@
+ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+ #endif
+ 
++#include "../shared/io/Comm/IssmComm.h"
+ #include "./Nodes.h"
+-#include "../shared/shared.h"
+ #include "./Node.h"
+ 
+ using namespace std;
+Index: ../trunk-jpl/src/c/classes/Massconaxpby.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Massconaxpby.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Massconaxpby.h	(revision 19198)
+@@ -87,6 +87,10 @@
+ 			return (Object*) mf;
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 		/*Definition virtual function resolutoin: */
+ 		char* Name(){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Vertex.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Vertex.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Vertex.h	(revision 19198)
+@@ -41,6 +41,8 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++
+ 		/*}}}*/
+ 		/*Vertex management:*/ 
+ 		int        Pid(void); 
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 19198)
+@@ -34,6 +34,7 @@
+ 		void    Echo();
+ 		int     Id();
+ 		int     ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 
+ 		/*Constraint virtual functions definitions*/
+ 		void ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 19198)
+@@ -33,6 +33,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Constraint virtual functions definitions: {{{*/
+ 		void ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h	(revision 19198)
+@@ -35,6 +35,7 @@
+ 		void    Echo();
+ 		int     Id(); 
+ 		int     ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Constraint virtual functions definitions: {{{*/
+ 		void   ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Profiler.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Profiler.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Profiler.h	(revision 19198)
+@@ -42,6 +42,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+ 		/*}}}*/
+ 		/*Profiler routines {{{*/
+ 		void    Tag(int tagenum,bool dontmpisync=false);
+Index: ../trunk-jpl/src/c/classes/Massfluxatgate.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 19198)
+@@ -120,6 +120,10 @@
+ 			return new Massfluxatgate(this->name,this->definitionenum,this->numsegments,this->x1,this->y1,this->x2,this->y2,this->elements); 
+ 		}
+ 		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
+ 		/*Definition virtual function resolutoin: */
+ 		char* Name(){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19197)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19198)
+@@ -60,6 +60,7 @@
+ 		void SetCurrentConfiguration(int configuration_type);
+ 		void SetCurrentConfiguration(int configuration_type,int analysis_type);
+ 		void CheckPoint(void);
++		void Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);
+ 		void Restart(void);
+ 
+ 		/*Modules*/ 
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19197)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19198)
+@@ -18,6 +18,7 @@
+ 
+ #include "../datastructures/datastructures.h"
+ #include "../shared/shared.h"
++#include "../classes/classes.h"
+ 
+ using namespace std;
+ /*}}}*/
+@@ -85,6 +86,66 @@
+ /*}}}*/
+ 
+ /*Specific methods*/
++void DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++	
++	vector<Object*>::iterator obj;
++	int obj_enum;
++	int i;
++	
++	if(marshall_direction==MARSHALLING_FORWARD){
++		numsorted=objects.size();
++	}
++
++	MARSHALLING_ENUM(DataSetEnum);
++	MARSHALLING(enum_type);
++	MARSHALLING(sorted);
++	MARSHALLING(presorted);
++	MARSHALLING(numsorted);
++	MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++	MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
++
++	/*Now branch according to direction of marshalling: */
++	if(marshall_direction==MARSHALLING_FORWARD){
++		/*Go through our objects, and marshall them into the buffer: */
++		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
++			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++		}
++	}
++	else{
++		/*This is the heart of the demashalling method. We have a buffer coming
++		 in, and we are supposed to create a dataset out of it. No such thing
++		 as class orientation for buffers, we need to key off the enum of each
++		 object stored in the buffer. */
++		for(i=0;i<this->numsorted;i++){
++
++			/*Recover enum of object first: */
++			MARSHALLING_ENUM(obj_enum); 
++
++			/*Reset the file pointer to point again to the beginning of the object: */
++			*pmarshalled_data-=sizeof(int);
++
++			/*Giant case statement to spin-up the right object, and demarshall into it the information 
++			 *stored in the buffer: */
++			switch(enum_type){
++				case NodeEnum:{
++					Node* node=NULL;
++					node=new Node();
++					node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++					this->AddObject(node);}
++					break;
++				case VertexEnum:{
++					Vertex* vertex=NULL;
++					vertex=new Vertex();
++					vertex->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++					this->AddObject(vertex);}
++					break;
++				default:
++					_error_("could not recognize enum type: " << EnumToStringx(enum_type));
++			}
++		}
++	}
++}
++/*}}}*/
+ int   DataSet::AddObject(Object* object){/*{{{*/
+ 
+ 	_assert_(this);
+Index: ../trunk-jpl/src/c/datastructures/DataSet.h
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.h	(revision 19197)
++++ ../trunk-jpl/src/c/datastructures/DataSet.h	(revision 19198)
+@@ -32,6 +32,7 @@
+ 		DataSet();
+ 		DataSet(int enum_type);
+ 		~DataSet();
++		void  Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*management*/
+ 		int      GetEnum();
+Index: ../trunk-jpl/src/c/datastructures/Object.h
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/Object.h	(revision 19197)
++++ ../trunk-jpl/src/c/datastructures/Object.h	(revision 19198)
+@@ -20,6 +20,7 @@
+ 		virtual int   Id()=0;
+ 		virtual int   ObjectEnum()=0;
+ 		virtual Object* copy()=0;
++		virtual void Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction)=0;
+ 
+ };
+ #endif
+Index: ../trunk-jpl/src/m/dev/devpath.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.py	(revision 19197)
++++ ../trunk-jpl/src/m/dev/devpath.py	(revision 19198)
+@@ -21,7 +21,7 @@
+ 				if root not in sys.path:
+ 					sys.path.append(root)
+ 				
+-sys.path.append(ISSM_DIR + '/lib')
++sys.path.append(ISSM_DIR + '/build-fw/lib')
+ sys.path.append(ISSM_DIR + '/src/wrappers/python/.libs')
+ # If using clusters, we need to have the path to the cluster settings directory
+ if(JPL_SVN!=None):
+Index: ../trunk-jpl/src/m/dev/devpath.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.m	(revision 19197)
++++ ../trunk-jpl/src/m/dev/devpath.m	(revision 19198)
+@@ -17,7 +17,7 @@
+ 
+ %ISSM path
+ addpath([ISSM_DIR '/src/m/os/']); %load recursivepath
+-addpath([ISSM_DIR '/lib']);       %load mex
++addpath([ISSM_DIR '/build-fw/lib']);       %load mex
+ addpath(recursivepath([ISSM_DIR '/src/m']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/scotch']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/canos']));
+Index: ../trunk-jpl/src/m/mesh/bamg.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/bamg.m	(revision 19197)
++++ ../trunk-jpl/src/m/mesh/bamg.m	(revision 19198)
+@@ -234,7 +234,10 @@
+ 		track=getfieldvalue(options,'tracks');
+ 		if all(ischar(track)),
+ 			A=expread(track);
+-			track=[A.x A.y];
++			track=[];
++			for i=1:length(A), 
++				track=[track; [A(i).x A(i).y]];
++			end
+ 		else
+ 			track=double(track); %for some reason, it is of class "single"
+ 		end
+Index: ../trunk-jpl/src/m/enum/FemModelEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FemModelEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FemModelEnum.m	(revision 19198)
+@@ -0,0 +1,11 @@
++function macro=FemModelEnum()
++%FEMMODELENUM - Enum of FemModel
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FemModelEnum()
++
++macro=StringToEnum('FemModel');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19197)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19198)
+@@ -8,6 +8,7 @@
+ 
+ """
+ 
++def FemModelEnum(): return StringToEnum("FemModel")[0]
+ def AutodiffIsautodiffEnum(): return StringToEnum("AutodiffIsautodiff")[0]
+ def AutodiffNumDependentsEnum(): return StringToEnum("AutodiffNumDependents")[0]
+ def AutodiffNumDependentObjectsEnum(): return StringToEnum("AutodiffNumDependentObjects")[0]
+@@ -445,6 +446,7 @@
+ def FSApproximationEnum(): return StringToEnum("FSApproximation")[0]
+ def FSvelocityEnum(): return StringToEnum("FSvelocity")[0]
+ def FSpressureEnum(): return StringToEnum("FSpressure")[0]
++def DataSetEnum(): return StringToEnum("DataSet")[0]
+ def ConstraintsEnum(): return StringToEnum("Constraints")[0]
+ def LoadsEnum(): return StringToEnum("Loads")[0]
+ def MaterialsEnum(): return StringToEnum("Materials")[0]
+Index: ../trunk-jpl/src/m/enum/DataSetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DataSetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/DataSetEnum.m	(revision 19198)
+@@ -0,0 +1,11 @@
++function macro=DataSetEnum()
++%DATASETENUM - Enum of DataSet
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=DataSetEnum()
++
++macro=StringToEnum('DataSet');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19198-19199.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19198-19199.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19198-19199.diff	(revision 20498)
@@ -0,0 +1,124 @@
+Index: ../trunk-jpl/src/c/classes/DofIndexing.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 19198)
++++ ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 19199)
+@@ -14,6 +14,7 @@
+ #include "../shared/Numerics/types.h"
+ #include "../shared/Numerics/constants.h"
+ #include "../shared/io/Print/Print.h"
++#include "../shared/io/Marshalling/Marshalling.h"
+ #include "../shared/Exceptions/exceptions.h"
+ #include "../shared/MemOps/MemOps.h"
+ #include "../shared/Enum/Enum.h"
+@@ -293,3 +294,20 @@
+ 	return;
+ }
+ /*}}}*/
++void DofIndexing::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING(gsize);
++	MARSHALLING(fsize);
++	MARSHALLING(ssize);
++	MARSHALLING(clone);
++	MARSHALLING(active);
++	MARSHALLING_DYNAMIC(f_set,bool,fsize);
++	MARSHALLING_DYNAMIC(s_set,bool,ssize);
++	MARSHALLING_DYNAMIC(svalues,IssmDouble,gsize);
++	MARSHALLING_DYNAMIC(doftype,int,gsize);
++	MARSHALLING_DYNAMIC(gdoflist,int,gsize);
++	MARSHALLING_DYNAMIC(fdoflist,int,fsize);
++	MARSHALLING_DYNAMIC(sdoflist,int,ssize);
++
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Vertex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Vertex.cpp	(revision 19198)
++++ ../trunk-jpl/src/c/classes/Vertex.cpp	(revision 19199)
+@@ -90,7 +90,23 @@
+ 
+ }
+ /*}}}*/
++void Vertex::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(VertexEnum);
++	MARSHALLING(clone);
++	MARSHALLING(domaintype);
++	MARSHALLING(id);
++	MARSHALLING(sid);
++	MARSHALLING(pid);
++	MARSHALLING(x);
++	MARSHALLING(y);
++	MARSHALLING(z);
++	MARSHALLING(sigma);
++	MARSHALLING(connectivity);
++
++}
++/*}}}*/
++
+ /*Vertex management: */
+ int        Vertex::Connectivity(void){return connectivity;}/*{{{*/
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Node.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.h	(revision 19198)
++++ ../trunk-jpl/src/c/classes/Node.h	(revision 19199)
+@@ -49,7 +49,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*Node numerical routines*/
+ 		void  CreateNodalConstraints(Vector<IssmDouble>* ys);
+Index: ../trunk-jpl/src/c/classes/DofIndexing.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/DofIndexing.h	(revision 19198)
++++ ../trunk-jpl/src/c/classes/DofIndexing.h	(revision 19199)
+@@ -46,6 +46,7 @@
+ 		void  Echo(void); 
+ 		void  DeepEcho(void); 
+ 		void  copy(const DofIndexing& in);
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*DofIndexing management: {{{*/
+ 		DofIndexing* Spawn(int* indices, int numindices);
+Index: ../trunk-jpl/src/c/classes/Vertex.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Vertex.h	(revision 19198)
++++ ../trunk-jpl/src/c/classes/Vertex.h	(revision 19199)
+@@ -41,7 +41,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*}}}*/
+ 		/*Vertex management:*/ 
+Index: ../trunk-jpl/src/c/classes/Node.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.cpp	(revision 19198)
++++ ../trunk-jpl/src/c/classes/Node.cpp	(revision 19199)
+@@ -150,7 +150,20 @@
+ 	return (Object*)output; 
+ }
+ /*}}}*/
++void Node::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(NodeEnum);
++	MARSHALLING(id);
++	MARSHALLING(sid);
++	MARSHALLING(lid);
++	MARSHALLING(indexingupdate);
++	indexing.Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	MARSHALLING(analysis_enum);
++	MARSHALLING_ARRAY(coord_system,IssmDouble,9);
++
++}
++/*}}}*/
++
+ /*Object virtual functions definitions:*/
+ void Node::Echo(void){/*{{{*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19199-19200.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19199-19200.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19199-19200.diff	(revision 20498)
@@ -0,0 +1,786 @@
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19200)
+@@ -0,0 +1,85 @@
++%Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++
++%md.verbose=verbose('all');
++
++% Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++
++% Add temperature, precipitation and delta18o needed to measure the surface mass balance
++%  creating delta18o
++load '../Data/delta18o.data'
++md.surfaceforcings.delta18o=delta18o;
++
++% creating Present day  temperatures
++% Same temperature over the all region:
++tmonth(1:12)=238.15+20.;
++for imonth=0:11
++    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    % Time for the last line:
++    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% creating initialization and spc temperatures initialization and
++% spc
++md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++
++md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++
++% creating precipitation
++for imonth=0:11
++    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    % Time for the last line:
++    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
++
++% 
++md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
++	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	};
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive240.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19200)
+@@ -179,7 +179,6 @@
+ 		case SMBpddEnum:
+ 			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
+ 			if(isdelta18o || ismungsm){
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
+@@ -187,15 +186,21 @@
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsLgmEnum);
+ 			}
+-			else if (isd18opd){
+-			        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
+-			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
+-			}
+ 			else{
+ 			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
+ 			}
+ 			break;
++		case SMBd18opddEnum:
++			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
++			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
++			if (isd18opd){
++			        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
++			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
++			}
++
++			break;
+ 		case SMBgradientsEnum:
+ 			iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
+ 			iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19200)
+@@ -25,6 +25,7 @@
+ 		int smb_model;
+ 		iomodel->Constant(&smb_model,SurfaceforcingsEnum);
+ 		if(smb_model==SMBpddEnum) isdynamic=true;
++		if(smb_model==SMBd18opddEnum) isdynamic=true;
+ 	}
+ 	else{
+ 		_error_("Solution "<<EnumToStringx(iomodel->solution_enum)<<" not supported yet");
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19199)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19200)
+@@ -346,7 +346,7 @@
+ 	SurfaceforcingsEnum,
+ 	SMBEnum,
+ 	SurfaceforcingsMassBalanceEnum,
+-	SMBpddEnum,
++	SMBpddEnum,	
+ 	SurfaceforcingsDelta18oEnum,
+ 	SurfaceforcingsDelta18oSurfaceEnum,
+ 	SurfaceforcingsIsdelta18oEnum,
+@@ -365,6 +365,7 @@
+ 	SurfaceforcingsPfacEnum,
+ 	SurfaceforcingsTdiffEnum,
+ 	SurfaceforcingsSealevEnum,
++	SMBd18opddEnum,
+ 	SurfaceforcingsDpermilEnum,
+ 	SMBgradientsEnum,
+ 	SurfaceforcingsMonthlytemperaturesEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19200)
+@@ -369,6 +369,7 @@
+ 		case SurfaceforcingsPfacEnum : return "SurfaceforcingsPfac";
+ 		case SurfaceforcingsTdiffEnum : return "SurfaceforcingsTdiff";
+ 		case SurfaceforcingsSealevEnum : return "SurfaceforcingsSealev";
++		case SMBd18opddEnum : return "SMBd18opdd";
+ 		case SurfaceforcingsDpermilEnum : return "SurfaceforcingsDpermil";
+ 		case SMBgradientsEnum : return "SMBgradients";
+ 		case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19200)
+@@ -375,17 +375,18 @@
+ 	      else if (strcmp(name,"SurfaceforcingsPfac")==0) return SurfaceforcingsPfacEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsTdiff")==0) return SurfaceforcingsTdiffEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsSealev")==0) return SurfaceforcingsSealevEnum;
++	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
+ 	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+-	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
++	      if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
++	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+ 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"Node")==0) return NodeEnum;
+ 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+-	      else if (strcmp(name,"Param")==0) return ParamEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Pengrid")==0) return PengridEnum;
++	      if (strcmp(name,"Param")==0) return ParamEnum;
++	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+ 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
+ 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+ 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+ 	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+-	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
++	      if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
++	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+ 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+-	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
++	      if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
++	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+ 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
+ 	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
+ 	      else if (strcmp(name,"Outputdefinition72")==0) return Outputdefinition72Enum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+-	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
++	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
++	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+ 	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+ 	      else if (strcmp(name,"XY")==0) return XYEnum;
+ 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19200)
+@@ -107,7 +107,6 @@
+ 		case SMBpddEnum:
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));
+@@ -115,7 +114,6 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
+ 			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 
+ 			if(ismungsm){
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
+@@ -146,6 +144,17 @@
+ 				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
+ 			}
++			break;
++		case SMBd18opddEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
++			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			if(isd18opd){
+ 				iomodel->Constant(&yts,ConstantsYtsEnum);
+ 
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19200)
+@@ -23,7 +23,6 @@
+ 		case SMBpddEnum:
+ 			femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+ 			femmodel->parameters->FindParam(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			femmodel->parameters->FindParam(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			if(isdelta18o){
+ 				if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
+ 				Delta18oParameterizationx(femmodel);
+@@ -32,12 +31,17 @@
+ 				if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
+ 				MungsmtpParameterizationx(femmodel);
+ 			} 
++			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++			PositiveDegreeDayx(femmodel);
++			break;
++		case SMBd18opddEnum:
++			femmodel->parameters->FindParam(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			if(isd18opd){
+ 				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
+ 				Delta18opdParameterizationx(femmodel);
+-			} 
+ 			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+ 			PositiveDegreeDayx(femmodel);
++			} 
+ 			break;
+ 		case SMBgradientsEnum:
+ 			if(VerboseSolution())_printf0_("	call smb gradients module\n");
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19200)
+@@ -85,6 +85,7 @@
+ 		if(isthermal && domaintype==Domain3DEnum){
+ 			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+ 			if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
++			if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			thermal_core(femmodel);
+ 		}
+ 
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19199)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19200)
+@@ -54,9 +54,16 @@
+ 					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
+ 					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+ 					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
+-					// iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);					
+ 					break;
++				case SMBd18opddEnum:
++					iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
++					iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
++					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
++					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
++					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
++					iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);					
+ 				case SMBgradientsEnum:
++					break;
+ 					/*Nothing to add*/
+ 					break;
+ 				case SMBhenningEnum:
+@@ -134,7 +141,7 @@
+ 	_printf_("   s0t: " << s0t << "\n");
+ 	_printf_("   rlaps: " << rlaps << "\n");
+ 	_printf_("   rlapslgm: " << rlapslgm << "\n");
+-	//	_printf_("   dpermil: " << dpermil << "\n");
++	_printf_("   dpermil: " << dpermil << "\n");
+ 	return;
+ }
+ /*}}}*/
+@@ -180,7 +187,7 @@
+ 	matpar->s0t=this->s0t;
+ 	matpar->rlaps=this->rlaps;
+ 	matpar->rlapslgm=this->rlapslgm;
+-	//	matpar->dpermil=this->dpermil;
++	matpar->dpermil=this->dpermil;
+ 
+ 	matpar->sediment_compressibility=this->sediment_compressibility;
+ 	matpar->sediment_porosity=this->sediment_porosity;
+@@ -276,9 +283,9 @@
+ 		case SurfaceforcingsRlapslgmEnum:
+ 			this->rlapslgm=constant;
+ 			break;
+-//		case  SurfaceforcingsDpermilEnum:
+-//			this->dpermil=constant;
+-//			break;
++		case  SurfaceforcingsDpermilEnum:
++			this->dpermil=constant;
++			break;
+ 		default: 
+ 			break;
+ 	}
+@@ -405,7 +412,7 @@
+ 		case SurfaceforcingsS0tEnum:                 return this->s0t;
+ 		case SurfaceforcingsRlapsEnum:               return this->rlaps;
+ 		case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
+-		  //		case SurfaceforcingsDpermilEnum:             return this->dpermil;
++		case SurfaceforcingsDpermilEnum:             return this->dpermil;
+ 		case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
+ 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
+ 		case MaterialsMantleDensityEnum:             return this->mantle_density;
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19200)
+@@ -0,0 +1,116 @@
++%SMBd18opdd Class definition
++%
++%   Usage:
++%      SMBd18opdd=SMBd18opdd();
++
++classdef SMBd18opdd
++	properties (SetAccess=public) 
++		desfac                    = 0;
++		s0p                       = 0;
++		s0t                       = 0;
++		rlaps                     = 0;
++		rlapslgm                  = 0; 
++                dpermil                   = 0; 
++		Tdiff                     = NaN;
++		sealev                    = NaN;
++		ismungsm                  = 0;
++                isd18opd                  = 0;
++		delta18o                  = NaN;
++		delta18o_surface          = NaN;
++		temperatures_presentday   = NaN;
++		precipitations_presentday = NaN;
++	end
++	methods
++		function self = SMBd18opdd(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = extrude(self,md) % {{{
++			if(self.isd18opd),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
++			if(self.isd18opd),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
++
++		end % }}}
++		function self = initialize(self,md) % {{{
++                    
++			% if isnan(self.precipitation),
++			% 	self.precipitation=zeros(md.mesh.numberofvertices,1);
++			% 	disp('      no SMBd18opdd.precipitation specified: values set as zero');
++			% end
++
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++		  self.ismungsm   = 0;
++                  self.isd18opd   = 1;
++		  self.desfac     = 0.5;
++		  self.s0p        = 0;
++		  self.s0t        = 0;
++		  self.rlaps      = 6.5;
++		  self.rlapslgm   = 6.5;
++                  self.dpermil    = 2.4;
++                  
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ismember(MasstransportAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
++                                if(self.isd18opd==1) 
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
++                                        md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
++				end
++			end
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   surface forcings parameters:'));
++
++			disp(sprintf('\n   PDD and deltaO18 parameters:'));
++			fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)');
++			fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]');
++			fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]');
++			fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]');
++			fielddisplay(self,'rlaps','present day lapse rate [degree/km]');
++                        if(self.isd18opd==1) 
++                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
++                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
++                            fielddisplay(self,'delta18o','delta18o, required if pdd is activated and d18opd activated');  
++                            fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
++                        end
++                        % No need to display rlapslgm, Tdiff, ismungsm
++                        % as they are not used in this case but are still needed as default values in
++                        % PositiveDegreeDay (Tria.cpp) used in that case
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer');
++
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
++                        WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
++                        WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++
++			if self.isd18opd
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
++                                WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
++			end
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19199)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19200)
+@@ -26,7 +26,6 @@
+ 		self.sealev                    = float('NaN')
+ 		self.isdelta18o                = 0
+ 		self.ismungsm                  = 0
+-		self.isd18opd                  = 0
+ 		self.delta18o                  = float('NaN')
+ 		self.delta18o_surface          = float('NaN')
+ 		self.temperatures_presentday   = float('NaN')
+@@ -42,7 +41,6 @@
+ 
+ 		string="%s\n%s"%(string,fielddisplay(self,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ismungsm','is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)'))
+-		string="%s\n%s"%(string,fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
+@@ -72,7 +70,7 @@
+ 		#}}}
+ 	def extrude(self,md): # {{{
+ 
+-		if not (self.isdelta18o and self.ismungsm and self.isd18opd):
++		if not (self.isdelta18o and self.ismungsm):
+ 			self.precipitation=project3d(md,'vector',self.precipitation,'type','node')
+ 			self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node')
+ 		if self.isdelta18o: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node')
+@@ -115,7 +113,7 @@
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+-			if (self.isdelta18o==0 and self.ismungsm==0 and self.isd18opd):
++			if (self.isdelta18o==0 and self.ismungsm==0):
+ 				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1)
+ 			elif self.isdelta18o:
+@@ -146,7 +144,6 @@
+ 
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19199)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19200)
+@@ -12,13 +12,11 @@
+ 		s0t                       = 0;
+ 		rlaps                     = 0;
+ 		rlapslgm                  = 0; 
+-                dpermil                   = 0; 
+ 		Pfac                      = NaN;
+ 		Tdiff                     = NaN;
+ 		sealev                    = NaN;
+ 		isdelta18o                = 0;
+ 		ismungsm                  = 0;
+-                isd18opd                  = 0;
+ 		delta18o                  = NaN;
+ 		delta18o_surface          = NaN;
+ 		temperatures_presentday   = NaN;
+@@ -36,8 +34,8 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+-			if(self.isdelta18o==0 & self.ismungsm==0 & self.isd18opd==0),self.precipitation=project3d(md,'vector',self.precipitation,'type','node');end
+-			if(self.isdelta18o==0 & self.ismungsm==0 & self.isd18opd==0),self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node');end
++			if(self.isdelta18o==0 & self.ismungsm==0),self.precipitation=project3d(md,'vector',self.precipitation,'type','node');end
++			if(self.isdelta18o==0 & self.ismungsm==0),self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node');end
+ 			if(self.isdelta18o),self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node');end
+ 			if(self.isdelta18o),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
+ 			if(self.isdelta18o),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
+@@ -46,8 +44,6 @@
+ 			if(self.ismungsm),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
+ 			if(self.ismungsm),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
+ 			if(self.ismungsm),self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node');end
+-			if(self.isd18opd),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
+-			if(self.isd18opd),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
+ 
+ 		end % }}}
+ 		function self = initialize(self,md) % {{{
+@@ -62,13 +58,11 @@
+ 
+ 		  self.isdelta18o = 0;
+ 		  self.ismungsm   = 0;
+-                  self.isd18opd   = 0;
+ 		  self.desfac     = 0.5;
+ 		  self.s0p        = 0;
+ 		  self.s0t        = 0;
+ 		  self.rlaps      = 6.5;
+ 		  self.rlapslgm   = 6.5;
+-                  self.dpermil    = 2.4;
+                   
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -79,7 +73,7 @@
+ 				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
+-				if(self.isdelta18o==0 & self.ismungsm==0 & self.isd18opd==0)
++				if(self.isdelta18o==0 & self.ismungsm==0)
+ 					md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','timeseries',1,'NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
+ 				elseif(self.isdelta18o==1) 
+@@ -99,11 +93,6 @@
+ 					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN]);
+ 					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1);
+-				elseif(self.isd18opd==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
+-                                        md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
+ 		end % }}}
+@@ -113,13 +102,12 @@
+ 			disp(sprintf('\n   PDD and deltaO18 parameters:'));
+ 			fielddisplay(self,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)');
+ 			fielddisplay(self,'ismungsm','is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)');
+-			fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)');
+ 			fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]');
+ 			fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]');
+ 			fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]');
+ 			fielddisplay(self,'rlaps','present day lapse rate [degree/km]');
+ 			fielddisplay(self,'rlapslgm','LGM lapse rate [degree/km]');
+-                        if(self.isdelta18o==0 & self.ismungsm==0 & self.isd18opd==0)
++                        if(self.isdelta18o==0 & self.ismungsm==0)
+                             fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']);
+                             fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']);
+                         elseif(self.isdelta18o==1)
+@@ -127,23 +115,18 @@
+                             fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated');
+                             fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
++                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
+                             fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
+                         elseif(self.ismungsm==1)
+-                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
++                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
++                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated');
+                             fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
+                             fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
+-                        elseif(self.isd18opd==1) 
+-                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
+-                            fielddisplay(self,'delta18o','delta18o, required if pdd is activated and d18opd activated');  
+-                            fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
+                         end
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -154,14 +137,13 @@
+ 
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+ 
+-			if(self.isdelta18o==0 & self.ismungsm==0 & self.isd18opd==0)
++			if(self.isdelta18o==0 & self.ismungsm==0)
+ 				%WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+@@ -182,11 +164,6 @@
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
+-			elseif self.isd18opd
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
+-                                WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
+ 			end
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19199)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19200)
+@@ -73,30 +73,25 @@
+           % fprintf(fid,'#$ -l h_rt=96:00:0\n');
+           % fprintf(fid,'#$ -l h_rt=336:00:0\n');
+ 
+-          fprintf(fid,'#$ -l h_vmem=3G\n');
+-	  % if cluster.np>10
+-          %     fprintf(fid,'#$ -l h_vmem=3G\n');
+-          % else
+-          %     fprintf(fid,'#$ -l h_vmem=3G\n');
+-          % end
++          fprintf(fid,'#$ -l h_vmem=2G\n');
+ 
+           % ---- Which queue to use ----
+-          %fprintf(fid,'#$ -q !tarasov.q\n'); %
++          % fprintf(fid,'#$ -q tarasov.q\n'); %
+           %fprintf(fid,'#$ -q medium.q@*,short.q@*\n');
+           fprintf(fid,'#$ -q short.q@*\n');
+ 
+           % ---- Which node are selected ----
+-          % fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
+-          %fprintf(fid,'#$ -l h=cl0* \n');
++          %fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
++          % fprintf(fid,'#$ -l h=cl0* \n');
+           %fprintf(fid,'#$ -l h=cl338 \n');
+           % Acenet nodes with 16cpus and more than 60G mem
+           % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
+   
+           % ---- cpus on different nodes ----
+-           fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
++          fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
+           % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
+           % -------- All cpus in the same node --------          
+-          %fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
++          % fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
+           
+           % ---- misc ----
+           fprintf(fid,'#$ -j y\n');        
+Index: ../trunk-jpl/src/m/enum/SMBd18opddEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SMBd18opddEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SMBd18opddEnum.m	(revision 19200)
+@@ -0,0 +1,11 @@
++function macro=SMBd18opddEnum()
++%SMBD18OPDDENUM - Enum of SMBd18opdd
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SMBd18opddEnum()
++
++macro=StringToEnum('SMBd18opdd');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19199)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19200)
+@@ -361,6 +361,7 @@
+ def SurfaceforcingsPfacEnum(): return StringToEnum("SurfaceforcingsPfac")[0]
+ def SurfaceforcingsTdiffEnum(): return StringToEnum("SurfaceforcingsTdiff")[0]
+ def SurfaceforcingsSealevEnum(): return StringToEnum("SurfaceforcingsSealev")[0]
++def SMBd18opddEnum(): return StringToEnum("SMBd18opdd")[0]
+ def SurfaceforcingsDpermilEnum(): return StringToEnum("SurfaceforcingsDpermil")[0]
+ def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
+ def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19200-19201.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19200-19201.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19200-19201.diff	(revision 20498)
@@ -0,0 +1,312 @@
+Index: ../trunk-jpl/src/c/kml/KML_Icon.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Icon.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Icon.h	(revision 19201)
+@@ -43,6 +43,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Point.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Point.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Point.h	(revision 19201)
+@@ -35,6 +35,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_LinearRing.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_LinearRing.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_LinearRing.h	(revision 19201)
+@@ -37,6 +37,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Feature.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Feature.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Feature.h	(revision 19201)
+@@ -43,6 +43,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_StyleSelector.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_StyleSelector.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_StyleSelector.h	(revision 19201)
+@@ -28,6 +28,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_LatLonBox.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_LatLonBox.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_LatLonBox.h	(revision 19201)
+@@ -34,6 +34,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Attribute.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Attribute.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Attribute.h	(revision 19201)
+@@ -28,6 +28,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ 		/*virtual functions: */
+Index: ../trunk-jpl/src/c/kml/KML_PolyStyle.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_PolyStyle.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_PolyStyle.h	(revision 19201)
+@@ -31,6 +31,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Object.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Object.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Object.h	(revision 19201)
+@@ -29,6 +29,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ 		/*virtual functions: */
+Index: ../trunk-jpl/src/c/kml/KML_SubStyle.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_SubStyle.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_SubStyle.h	(revision 19201)
+@@ -28,6 +28,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_LineString.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_LineString.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_LineString.h	(revision 19201)
+@@ -37,6 +37,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Overlay.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Overlay.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Overlay.h	(revision 19201)
+@@ -35,6 +35,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Container.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Container.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Container.h	(revision 19201)
+@@ -32,6 +32,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Polygon.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Polygon.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Polygon.h	(revision 19201)
+@@ -39,6 +39,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Geometry.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Geometry.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Geometry.h	(revision 19201)
+@@ -28,6 +28,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_ColorStyle.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_ColorStyle.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_ColorStyle.h	(revision 19201)
+@@ -35,6 +35,7 @@
+ 		void  Demarshall(char** pmarshalled_dataset){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Placemark.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Placemark.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Placemark.h	(revision 19201)
+@@ -33,6 +33,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Unknown.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Unknown.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Unknown.h	(revision 19201)
+@@ -31,6 +31,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_GroundOverlay.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_GroundOverlay.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_GroundOverlay.h	(revision 19201)
+@@ -35,6 +35,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Style.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Style.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Style.h	(revision 19201)
+@@ -37,6 +37,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Comment.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Comment.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Comment.h	(revision 19201)
+@@ -29,6 +29,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ 		/*virtual functions: */
+Index: ../trunk-jpl/src/c/kml/KML_MultiGeometry.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_MultiGeometry.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_MultiGeometry.h	(revision 19201)
+@@ -33,6 +33,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_LineStyle.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_LineStyle.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_LineStyle.h	(revision 19201)
+@@ -30,6 +30,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Folder.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Folder.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Folder.h	(revision 19201)
+@@ -29,6 +29,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_Document.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_Document.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_Document.h	(revision 19201)
+@@ -29,6 +29,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
+Index: ../trunk-jpl/src/c/kml/KML_File.h
+===================================================================
+--- ../trunk-jpl/src/c/kml/KML_File.h	(revision 19200)
++++ ../trunk-jpl/src/c/kml/KML_File.h	(revision 19201)
+@@ -31,6 +31,7 @@
+ 		int   Id(){_error_("Not implemented yet.");};
+ 		int   ObjectEnum(){_error_("Not implemented yet.");};
+ 		Object* copy(){_error_("Not implemented yet.");};
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 
+ };
Index: /issm/oecreview/Archive/19101-20495/ISSM-19201-19202.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19201-19202.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19201-19202.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/dev/devpath.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.m	(revision 19201)
++++ ../trunk-jpl/src/m/dev/devpath.m	(revision 19202)
+@@ -17,7 +17,7 @@
+ 
+ %ISSM path
+ addpath([ISSM_DIR '/src/m/os/']); %load recursivepath
+-addpath([ISSM_DIR '/build-fw/lib']);       %load mex
++addpath([ISSM_DIR '/lib']);       %load mex
+ addpath(recursivepath([ISSM_DIR '/src/m']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/scotch']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/canos']));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19202-19203.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19202-19203.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19202-19203.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/src/m/plot/plot_icefront.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_icefront.m	(revision 19202)
++++ ../trunk-jpl/src/m/plot/plot_icefront.m	(revision 19203)
+@@ -1,4 +1,4 @@
+-function plot_icefront(md,options,width,i,data)
++function h2 = plot_icefront(md,options,width,i,data)
+ %PLOT_ICEFRONT - plot segment on neumann BC
+ %
+ %   Usage:
+Index: ../trunk-jpl/src/m/plot/plot_BC.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_BC.m	(revision 19202)
++++ ../trunk-jpl/src/m/plot/plot_BC.m	(revision 19203)
+@@ -1,7 +1,7 @@
+ function plot_BC(md,options,width,i,data)
+ 
+ %plot neuman
+-plot_icefront(md,options,width,i,data)
++h0 = plot_icefront(md,options,width,i,data);
+ 
+ hold on
+ 
+@@ -27,19 +27,13 @@
+ 		'yo','MarkerSize',6 ,'MarkerFaceColor','y');
+ end
+ 
+-%update legend
+-[legend_h,object_h,plot_h,text_strings]=legend();
+-legend('off');
+-if strcmpi(dirichleton,'on'),
+-	text_strings{end+1}='vx Dirichlet';
+-	text_strings{end+1}='vy Dirichlet';
+-	if h3, text_strings{end+1}='vz Dirichlet'; end
+-	plot_h(end+1)=h1;
+-	plot_h(end+1)=h2;
+-	if h3, plot_h(end+1)=h3; end
+-end
+-legend(plot_h,text_strings,'location','NorthEast')
++strings = {'Neumann'};
++if ~isempty(h1), strings{end+1} = 'vx Dirichlet'; end
++if ~isempty(h2), strings{end+1} = 'vy Dirichlet'; end
++if ~isempty(h3), strings{end+1} = 'vz Dirichlet'; end
+ 
++legend([h0,h1,h2,h3],strings,'location','NorthEast');
++
+ hold off
+ 
+ %apply options
Index: /issm/oecreview/Archive/19101-20495/ISSM-19203-19204.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19203-19204.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19203-19204.diff	(revision 20498)
@@ -0,0 +1,75 @@
+Index: ../trunk-jpl/src/m/exp/exptool.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exptool.m	(revision 19203)
++++ ../trunk-jpl/src/m/exp/exptool.m	(revision 19204)
+@@ -15,6 +15,7 @@
+ %      - marker (default='+')
+ %      - markersize (default=7)
+ %      - markeredgecolor (default='r')
++%      - nofigurecopy (default=0) do not copy current figure, this is needed on some plateform to avoid an offset in the figure
+ %
+ %   Usage:
+ %      exptool(newfile,varargin)
+@@ -97,26 +98,35 @@
+ [path root ext]=fileparts(newfile);
+ 
+ %get current figure
+-if ~isempty(get(0,'children')),%if there is already a figure (return the number of opened figures)
+-	set(gcf,'Renderer','zbuffer'); %fixes a bug on Mac OS X (not needed in future Matlab version)
+-	P=get(gcf,'position');
+-	F=getframe(gca);
+-	F=F.cdata;
+-	%get current axis
+-	xlim=get(gca,'Xlim');
+-	ylim=get(gca,'Ylim');
+-	%recreate x_m and y_m
+-	x_m=linspace(xlim(1),xlim(2),size(F,2));
+-	y_m=linspace(ylim(2),ylim(1),size(F,1)); %getframe reverse axis...
+-	%plot the data in another figure
+-	figure; set(gcf,'position',P);
+-	imagesc(x_m,y_m,F); set(gca,'Ydir','normal');
+-	prevplot=1;
+-	prevplot2=1;
++nofigurecopy=getfieldvalue(options,'nofigurecopy',1);
++if ~nofigurecopy,
++	if ~isempty(get(0,'children')),%if there is already a figure (return the number of opened figures)
++		set(gcf,'Renderer','zbuffer'); %fixes a bug on Mac OS X (not needed in future Matlab version)
++		P=get(gcf,'position');
++		Fp=get(gca,'position');
++		F=getframe(gca);
++		F=F.cdata;
++		%get current axis
++		xlim=get(gca,'Xlim');
++		ylim=get(gca,'Ylim');
++		%recreate x_m and y_m
++		x_m=linspace(xlim(1),xlim(2),size(F,2));
++		y_m=linspace(ylim(2),ylim(1),size(F,1)); %getframe reverse axis...
++		%plot the data in another figure
++		figure; set(gcf,'position',P);
++		imagesc(x_m,y_m,F); set(gca,'Ydir','normal','Position',Fp,'Xlim',xlim,'Ylim',ylim);
++		prevplot=1;
++		prevplot2=1;
++	else
++		figure
++		prevplot=0;
++		prevplot2=0;
++	end
+ else
+-	figure
+-	prevplot=0;
+-	prevplot2=0;
++	g=get(gca,'children');
++	L=length(g);
++	prevplot=L;
++	prevplot2=L;
+ end
+ 
+ %plot existing profile if any
+@@ -347,4 +357,6 @@
+ end
+ 
+ %close window
+-close;
++if ~nofigurecopy,
++	close;
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19204-19205.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19204-19205.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19204-19205.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19204)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19205)
+@@ -72,7 +72,7 @@
+ 			disp(sprintf('    port: %i',cluster.port));
+ 			disp(sprintf('    codepath: %s',cluster.codepath));
+ 			disp(sprintf('    executionpath: %s',cluster.executionpath));
+-			disp(sprintf('    etcpath: %s',cluster.executionpath));
++			disp(sprintf('    etcpath: %s',cluster.etcpath));
+ 			disp(sprintf('    valgrind: %s',cluster.valgrind));
+ 			disp(sprintf('    valgrindlib: %s',cluster.valgrindlib));
+ 			disp(sprintf('    valgrindsup: %s',cluster.valgrindsup));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19205-19206.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19205-19206.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19205-19206.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19206-19207.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19206-19207.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19206-19207.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/cores/ProcessArguments.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/ProcessArguments.cpp	(revision 19206)
++++ ../trunk-jpl/src/c/cores/ProcessArguments.cpp	(revision 19207)
+@@ -26,7 +26,7 @@
+ 
+ 	/*Recover myrank: */
+ 	my_rank=IssmComm::GetRank();
+-	rank_length= (my_rank == 0 ? 1 : (int)(log10(my_rank)+1)); /*length of string "my_rank" */
++	rank_length= (my_rank == 0 ? 1 : (int)(log10(static_cast<double>(my_rank))+1)); /*length of string "my_rank" */
+ 
+ 	/*Get requested solution*/
+ 	*solution_type=StringToEnumx(argv[1]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19207-19208.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19207-19208.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19207-19208.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19207)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19208)
+@@ -35,7 +35,10 @@
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
+-	
++	if [[ -e '/usr/bin/svn' ]]; then
++		alias svn='/usr/bin/svn'	
++		alias svnversion='/usr/bin/svnversion'	
++	fi
+ 	cd $ISSM_DIR/externalpackages
+ 
+ 	#number of packages: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19208-19209.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19208-19209.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19208-19209.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19208)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19209)
+@@ -35,12 +35,6 @@
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
+-	if [[ -e '/usr/bin/svn' ]]; then
+-		alias svn='/usr/bin/svn'	
+-		alias svnversion='/usr/bin/svnversion'	
+-	fi
+-	cd $ISSM_DIR/externalpackages
+-
+ 	#number of packages: 
+ 	NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
+ 
+@@ -57,8 +51,8 @@
+ 		#and the svn file which does the install has not be modified! To keep track of 
+ 		#this, we check the current svn version against the "last changed" revision number.  If they 
+ 		#are the same, we reinstall the package. 
+-		current_version=`svnversion`
+-		last_changed_version=`svn info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
++		current_version=`/usr/bin/svnversion`
++		last_changed_version=`/usr/bin/svn info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
+ 
+ 		if [[ $current_version == $last_changed_version ]]; then 
+ 			#go ahead and reinstall. 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19209-19210.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19209-19210.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19209-19210.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19209)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19210)
+@@ -46,6 +46,10 @@
+ 		PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
+ 
+ 		cd $PACKAGENAME
++		echo "-------------------------------------"
++		echo " PACKAGENAME: $PACKAGENAME"
++		echo " PDW: $PWD"
++		echo "-------------------------------------"
+ 
+ 		#tricky part here. We do not want to reinstall this package if it's already installed
+ 		#and the svn file which does the install has not be modified! To keep track of 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19210-19211.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19210-19211.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19210-19211.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19210)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19211)
+@@ -45,12 +45,14 @@
+ 		PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
+ 		PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
+ 
+-		cd $PACKAGENAME
++		#cd $PACKAGENAME
+ 		echo "-------------------------------------"
++		echo " ISSM_DIR: $ISSM_DIR"
+ 		echo " PACKAGENAME: $PACKAGENAME"
+-		echo " PDW: $PWD"
++		echo " PWD: $PWD"
+ 		echo "-------------------------------------"
+ 
++		cd $ISSM_DIR/externalpackages/$PACKAGENAME
+ 		#tricky part here. We do not want to reinstall this package if it's already installed
+ 		#and the svn file which does the install has not be modified! To keep track of 
+ 		#this, we check the current svn version against the "last changed" revision number.  If they 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19211-19212.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19211-19212.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19211-19212.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19211)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19212)
+@@ -96,7 +96,7 @@
+ # and and avoid this workaround which removes the dependency of ISSM libraries
+ # from the perspective of our build system.
+ if WINDOWS
+-AM_LDFLAGS += -Wl,./.libs/libISSMMatlab.lib -Wl,./../../c/.libs/libISSMModules.lib -Wl,./../../c/.libs/libISSMCore.lib -Wl,././.libs/libISSMApi.lib
++AM_LDFLAGS += $(METISLIB) -Wl,./.libs/libISSMMatlab.lib -Wl,./../../c/.libs/libISSMModules.lib -Wl,./../../c/.libs/libISSMCore.lib -Wl,././.libs/libISSMApi.lib
+ else
+ deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
+ endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19212-19213.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19212-19213.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19212-19213.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 19212)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 19213)
+@@ -35,7 +35,9 @@
+ EXECUTION_PATH=$ISSM_DIR/execution
+ 
+ #repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19212)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19213)
+@@ -32,6 +32,11 @@
+ ln -s $MATLAB_PATH install
+ END
+ #}}}
++
++echo "-------------------------------------"
++echo " SVN: $SVN"
++echo "-------------------------------------"
++
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
+@@ -45,13 +50,6 @@
+ 		PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
+ 		PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
+ 
+-		#cd $PACKAGENAME
+-		echo "-------------------------------------"
+-		echo " ISSM_DIR: $ISSM_DIR"
+-		echo " PACKAGENAME: $PACKAGENAME"
+-		echo " PWD: $PWD"
+-		echo "-------------------------------------"
+-
+ 		cd $ISSM_DIR/externalpackages/$PACKAGENAME
+ 		#tricky part here. We do not want to reinstall this package if it's already installed
+ 		#and the svn file which does the install has not be modified! To keep track of 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19213-19214.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19213-19214.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19213-19214.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 19213)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 19214)
+@@ -38,6 +38,7 @@
+ #We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+ SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19213)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19214)
+@@ -33,9 +33,20 @@
+ END
+ #}}}
+ 
+-echo "-------------------------------------"
+-echo " SVN: $SVN"
+-echo "-------------------------------------"
++#SVN version issue requires that we set SVN and SVNVERSION explicitly in order
++#to remain compatible with the version used by Jenkins to do checkouts
++#{{{
++if [[ -z $SVN ]]; then
++	echo "SVN variable is not set!"
++	echo "Defaulting to SVN found in path..."
++	SVN='svn'
++fi
++if [[ -z $SVNVERSION ]]; then
++	echo "SVNVERSION variable is not set!"
++	echo "Defaulting to SVNVERSION found in path..."
++	SVNVERSION='svnversion'
++fi
++#}}}
+ 
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+@@ -55,8 +66,8 @@
+ 		#and the svn file which does the install has not be modified! To keep track of 
+ 		#this, we check the current svn version against the "last changed" revision number.  If they 
+ 		#are the same, we reinstall the package. 
+-		current_version=`/usr/bin/svnversion`
+-		last_changed_version=`/usr/bin/svn info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
++		current_version=`$SVNVERSION`
++		last_changed_version=`$SVN info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
+ 
+ 		if [[ $current_version == $last_changed_version ]]; then 
+ 			#go ahead and reinstall. 
+@@ -98,7 +109,7 @@
+ 			source $ISSM_DIR/etc/environment.sh
+ 		else
+ 			echo "======================================================";
+-			echo "       Skipping install of $PACKAGENAME                        ";
++			echo "       Skipping install of $PACKAGENAME               ";
+ 			echo "======================================================";
+ 			source $ISSM_DIR/etc/environment.sh #for good measure :)
+ 		fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-19214-19215.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19214-19215.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19214-19215.diff	(revision 20498)
@@ -0,0 +1,664 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19214)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19215)
+@@ -483,6 +483,8 @@
+ 	DoubleParamEnum,
+ 	DoubleVecParamEnum,
+ 	ElementEnum,
++	ElementHookEnum,
++	HookEnum,
+ 	ExternalResultEnum,
+ 	FileParamEnum,
+ 	InputEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19215)
+@@ -478,6 +478,8 @@
+ 		case DoubleParamEnum : return "DoubleParam";
+ 		case DoubleVecParamEnum : return "DoubleVecParam";
+ 		case ElementEnum : return "Element";
++		case ElementHookEnum : return "ElementHook";
++		case HookEnum : return "Hook";
+ 		case ExternalResultEnum : return "ExternalResult";
+ 		case FileParamEnum : return "FileParam";
+ 		case InputEnum : return "Input";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19215)
+@@ -487,6 +487,8 @@
+ 	      else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
+ 	      else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
+ 	      else if (strcmp(name,"Element")==0) return ElementEnum;
++	      else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
++	      else if (strcmp(name,"Hook")==0) return HookEnum;
+ 	      else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
+ 	      else if (strcmp(name,"FileParam")==0) return FileParamEnum;
+ 	      else if (strcmp(name,"Input")==0) return InputEnum;
+@@ -503,12 +505,12 @@
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+ 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
+ 	      else if (strcmp(name,"Node")==0) return NodeEnum;
+-	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+-	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Param")==0) return ParamEnum;
++	      if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
++	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
++	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+ 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
+ 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+ 	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+ 	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+-	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+-	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
++	      if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
++	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
++	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+ 	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
+ 	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+ 	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+ 	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+-	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+-	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
++	      if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
++	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
++	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+ 	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+ 	      else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
+ 	      else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
+ 	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+ 	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+-	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+-	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
++	      if (strcmp(name,"Sset")==0) return SsetEnum;
++	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
++	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+ 	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+ 	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+ 	      else if (strcmp(name,"XY")==0) return XYEnum;
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19214)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19215)
+@@ -7,60 +7,74 @@
+ 
+ enum marshall_directions{
+ 	MARSHALLING_FORWARD,
+-	MARSHALLING_BACKWARDS
++	MARSHALLING_BACKWARD,
++	MARSHALLING_SIZE
+ };
+ 
+-#define MARSHALLING_ENUM(EN) \
+-	int enum_type=EN; \
++#define MARSHALLING_ENUM(EN)\
++	int enum_type=EN;\
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+-		if(pmarshalled_data){\
+-			memcpy(*pmarshalled_data,&enum_type,sizeof(int));\
+-			*pmarshalled_data+=sizeof(int);\
+-		}\
++		memcpy(*pmarshalled_data,&enum_type,sizeof(int));\
++		*pmarshalled_data+=sizeof(int);\
+ 		*pmarshalled_data_size+=sizeof(int);\
+-	}
++	}\
++	else if(marshall_direction==MARSHALLING_SIZE){\
++		*pmarshalled_data_size+=sizeof(int);\
++	}\
++	else if(marshall_direction==MARSHALLING_BACKWARD){\
++	}\
++	else _error_("Wrong direction during the Marshall process");\
+ 
+-#define MARSHALLING(FIELD) \
+-\
++
++#define MARSHALLING(FIELD)\
++	\
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+-		if(pmarshalled_data){\
+-			memcpy(*pmarshalled_data,&FIELD,sizeof(FIELD));\
+-			*pmarshalled_data+=sizeof(FIELD);\
+-		}\
++		memcpy(*pmarshalled_data,&FIELD,sizeof(FIELD));\
++		*pmarshalled_data+=sizeof(FIELD);\
+ 		*pmarshalled_data_size+=sizeof(FIELD);\
+ 	}\
+-	else{\
++	else if(marshall_direction==MARSHALLING_SIZE){\
++		*pmarshalled_data_size+=sizeof(FIELD);\
++	}\
++	else if(marshall_direction==MARSHALLING_BACKWARD){\
+ 		memcpy(&FIELD,*pmarshalled_data,sizeof(FIELD));\
+ 		*pmarshalled_data+=sizeof(FIELD);\
+-	}
++	}\
++	else _error_("Wrong direction during the Marshall process");
+ 
++
+ #define MARSHALLING_ARRAY(FIELD,TYPE,SIZE) \
+-\
++	\
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+-		if(pmarshalled_data){\
+-			memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
+-			*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-		}\
++		memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+ 	}\
+-	else{\
++	else if(marshall_direction==MARSHALLING_SIZE){\
++		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
++	}\
++	else if(marshall_direction==MARSHALLING_BACKWARD){\
+ 		memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
+ 		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-	}
++	}\
++	else _error_("Wrong direction during the Marshall process");
+ 
++
+ #define MARSHALLING_DYNAMIC(FIELD,TYPE,SIZE) \
+-\
++	\
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+-		if(pmarshalled_data){\
+-			memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
+-			*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-		}\
++		memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+ 	}\
+-	else{\
++	else if(marshall_direction==MARSHALLING_SIZE){\
++		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
++	}\
++	else if(marshall_direction==MARSHALLING_BACKWARD){\
+ 		FIELD=xNew<TYPE>(SIZE);\
+ 		memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
+ 		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-	}
++	}\
++	else _error_("Wrong direction during the Marshall process");
+ 
+ #endif	
+Index: ../trunk-jpl/src/c/classes/Params/IntParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntParam.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Params/IntParam.h	(revision 19215)
+@@ -36,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 19215)
+@@ -36,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 19215)
+@@ -54,3 +54,13 @@
+ 
+ }
+ /*}}}*/
++void IntParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING_ENUM(IntParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
+Index: ../trunk-jpl/src/c/classes/Params/DoubleParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleParam.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Params/DoubleParam.cpp	(revision 19215)
+@@ -51,7 +51,16 @@
+ 
+ }
+ /*}}}*/
++void DoubleParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(DoubleParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
+ /*DoubleParam virtual functions definitions: */
+ void DoubleParam::GetParameterValue(int* pinteger){/*{{{*/
+ 	_error_("Double param of enum " << enum_type << " (" << EnumToStringx(enum_type) << ") cannot return an integer");
+Index: ../trunk-jpl/src/c/classes/Hook.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Hook.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Hook.h	(revision 19215)
+@@ -33,6 +33,7 @@
+ 		void       Echo(void);
+ 		void       DeepEcho(void);
+ 		Object*    copy(void);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Hook management: {{{*/
+ 		Object*    delivers(void); //single object deliver
+Index: ../trunk-jpl/src/c/classes/Profiler.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Profiler.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Profiler.cpp	(revision 19215)
+@@ -69,7 +69,24 @@
+ 
+ }
+ /*}}}*/
++void Profiler::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(ProfilerEnum);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->time=new Parameters();
++		this->flops=new Parameters();
++		this->memory=new Parameters();
++	}
++	
++	time->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	flops->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	memory->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++
++}
++/*}}}*/
++
+ /*Profiler routines:*/
+ void  Profiler::Tag(int tagenum,bool dontmpisync){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19215)
+@@ -618,7 +618,7 @@
+ 	restartfid=pfopen(restartfilename,"wb");
+ 
+ 	/*Create buffer to hold marshalled femmodel: */
+-	this->Marshall(NULL,&femmodel_size,MARSHALLING_FORWARD);
++	this->Marshall(NULL,&femmodel_size,MARSHALLING_SIZE);
+ 	femmodel_buffer=xNew<char>(femmodel_size);
+ 
+ 	/*Marshall:*/
+@@ -647,7 +647,7 @@
+ 	MARSHALLING(analysis_counter);
+ 	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARDS){
++	if(marshall_direction==MARSHALLING_BACKWARD){
+ 		profiler=new Profiler;
+ 		elements=new Elements();
+ 		nodes=new Nodes();
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19215)
+@@ -66,7 +66,6 @@
+ 		void               DeleteInput(int input_enum);
+ 		void               DeleteMaterials(void);
+ 		IssmDouble         Divergence(void);
+-		void               Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		void               dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void               dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+ 		void               dViscositydBSSA(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+@@ -119,6 +118,8 @@
+ 		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
++
+ 		ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19215)
+@@ -114,7 +114,19 @@
+ 	return tria;
+ }
+ /*}}}*/
++void Tria::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++	
++	MARSHALLING_ENUM(TriaEnum);
++	
++	/*Call parent classes: */
++	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	TriaRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
++}
++/*}}}*/
++
++
+ /*Other*/
+ void       Tria::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/TriaRef.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 19215)
+@@ -32,5 +32,7 @@
+ 		int  PressureInterpolation(int fe_stokes);
+ 		int  TensorInterpolation(int fe_stokes);
+ 		int  VelocityInterpolation(int fe_stokes);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19215)
+@@ -39,6 +39,7 @@
+ 		/*Object virtual functions definitions:{{{ */
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		#ifdef _HAVE_DAKOTA_
+Index: ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19215)
+@@ -73,7 +73,57 @@
+ 
+ }
+ /*}}}*/
++void ElementHook::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	int i;
++	bool* hnodes_null=NULL; /*intermediary needed*/
++	bool  hneighbors_null=true; /*don't deal with hneighbors, unless explicitely asked to*/
++
++	_assert_(this);
++
++	/*preliminary, before marshall starts: */
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
++		if(this->hneighbors)hneighbors_null=false;
++		hnodes_null=xNew<bool>(numanalyses);
++		for(i=0;i<numanalyses;i++){
++			if(this->hnodes[i])hnodes_null[i]=false;
++			else hnodes_null[i]=true;
++		}
++	}
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(ElementHookEnum);
++	MARSHALLING(numanalyses);
++	MARSHALLING(hneighbors_null);
++	MARSHALLING_DYNAMIC(hnodes_null,bool,numanalyses);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		
++		this->hnodes      = new Hook*[numanalyses];
++		this->hvertices   = new Hook();
++		this->hmaterial   = new Hook();
++		this->hmatpar     = new Hook();
++		if(!hneighbors_null)this->hneighbors  = new Hook();
++
++		/*Initialize hnodes: */
++		for(int i=0;i<this->numanalyses;i++){
++			if(!hnodes_null[i])this->hnodes[i]=new Hook();
++			else this->hnodes[i]=NULL;
++		}
++	}
++
++	for (i=0;i<numanalyses;i++) if(this->hnodes[i])this->hnodes[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if(this->hneighbors)this->hneighbors->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*Free ressources: */
++	xDelete<bool>(hnodes_null);
++
++}
++/*}}}*/
++
+ void ElementHook::InitHookNeighbors(int* element_ids){/*{{{*/
+ 	this->hneighbors=new Hook(element_ids,2);
+ }
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19215)
+@@ -41,6 +41,7 @@
+ 		/*Object virtual functions definitions: {{{*/
+ 		Object *copy();
+ 		int     ObjectEnum();
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 		/*Penta routines:{{{*/
+ 		void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
+Index: ../trunk-jpl/src/c/classes/Elements/ElementHook.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/ElementHook.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/ElementHook.h	(revision 19215)
+@@ -22,6 +22,7 @@
+ 		ElementHook();
+ 		ElementHook(int in_numanalyses,int material_id,int numvertices,IoModel* iomodel);
+ 		~ElementHook();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		void InitHookNeighbors(int* element_ids);               //3d only
+ 		void SetHookNodes(int* node_ids,int numnodes,int analysis_counter);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19215)
+@@ -37,6 +37,7 @@
+ 		/*Object virtual functions definitions:{{{ */
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 		/*Element virtual functions definitions: {{{*/
+ 		void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19215)
+@@ -37,6 +37,7 @@
+ 		/*Object virtual functions definitions:{{{ */
+ 		int     ObjectEnum();
+ 		Object *copy();
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
+ 		/*}}}*/
+ 		/*Element virtual functions definitions: {{{*/
+ 		void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19215)
+@@ -1263,6 +1263,20 @@
+ 	xDelete<IssmDouble>(values);
+ 
+ }/*}}}*/
++void       Element::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses){/*{{{*/
++	
++	_assert_(this);
++	if(marshall_direction==MARSHALLING_BACKWARD) inputs=new Inputs();
++
++	MARSHALLING_ENUM(ElementEnum);
++	
++	MARSHALLING(id);
++	MARSHALLING(sid);
++	MARSHALLING(element_type);
++	MARSHALLING_DYNAMIC(element_type_list,int,numanalyses);
++
++}
++/*}}}*/
+ void       Element::MigrateGroundingLine(IssmDouble* phi_ungrounding){/*{{{*/
+ 
+ 	int         numvertices = this->GetNumberOfVertices();
+Index: ../trunk-jpl/src/c/classes/Hook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19215)
+@@ -119,7 +119,16 @@
+ 	return (Object*)output;
+ }
+ /*}}}*/
++void Hook::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(HookEnum);
++	MARSHALLING(num);
++	MARSHALLING_DYNAMIC(ids,int,num);
++	MARSHALLING_DYNAMIC(offsets,int,num);
++
++}
++/*}}}*/
++
+ /*Hook management: */
+ void Hook::reset(){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Profiler.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Profiler.h	(revision 19214)
++++ ../trunk-jpl/src/c/classes/Profiler.h	(revision 19215)
+@@ -42,7 +42,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Profiler routines {{{*/
+ 		void    Tag(int tagenum,bool dontmpisync=false);
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19214)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19215)
+@@ -92,7 +92,7 @@
+ 	int obj_enum;
+ 	int i;
+ 	
+-	if(marshall_direction==MARSHALLING_FORWARD){
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+ 		numsorted=objects.size();
+ 	}
+ 
+@@ -105,7 +105,7 @@
+ 	MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+ 
+ 	/*Now branch according to direction of marshalling: */
+-	if(marshall_direction==MARSHALLING_FORWARD){
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+ 		/*Go through our objects, and marshall them into the buffer: */
+ 		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
+ 			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+@@ -139,6 +139,18 @@
+ 					vertex->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 					this->AddObject(vertex);}
+ 					break;
++				case DoubleParamEnum:{
++					DoubleParam* doubleparam=NULL;
++					doubleparam=new DoubleParam();
++					doubleparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++					this->AddObject(doubleparam);}
++					break;
++				case IntParamEnum:{
++					IntParam* intparam=NULL;
++					intparam=new IntParam();
++					intparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++					this->AddObject(intparam);}
++					break;
+ 				default:
+ 					_error_("could not recognize enum type: " << EnumToStringx(enum_type));
+ 			}
+Index: ../trunk-jpl/src/m/enum/HookEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HookEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HookEnum.m	(revision 19215)
+@@ -0,0 +1,11 @@
++function macro=HookEnum()
++%HOOKENUM - Enum of Hook
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HookEnum()
++
++macro=StringToEnum('Hook');
+Index: ../trunk-jpl/src/m/enum/ElementHookEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/ElementHookEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/ElementHookEnum.m	(revision 19215)
+@@ -0,0 +1,11 @@
++function macro=ElementHookEnum()
++%ELEMENTHOOKENUM - Enum of ElementHook
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=ElementHookEnum()
++
++macro=StringToEnum('ElementHook');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19214)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19215)
+@@ -470,6 +470,8 @@
+ def DoubleParamEnum(): return StringToEnum("DoubleParam")[0]
+ def DoubleVecParamEnum(): return StringToEnum("DoubleVecParam")[0]
+ def ElementEnum(): return StringToEnum("Element")[0]
++def ElementHookEnum(): return StringToEnum("ElementHook")[0]
++def HookEnum(): return StringToEnum("Hook")[0]
+ def ExternalResultEnum(): return StringToEnum("ExternalResult")[0]
+ def FileParamEnum(): return StringToEnum("FileParam")[0]
+ def InputEnum(): return StringToEnum("Input")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19215-19216.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19215-19216.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19215-19216.diff	(revision 20498)
@@ -0,0 +1,204 @@
+Index: ../trunk-jpl/src/c/classes/Materials/Matice.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19216)
+@@ -121,7 +121,19 @@
+ 
+ }
+ /*}}}*/
++void       Matice::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD)helement=new Hook(); 
++	
++	MARSHALLING_ENUM(MaticeEnum);
++	MARSHALLING(mid);
++	MARSHALLING(isdamaged);
++	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++
++}
++/*}}}*/
++
+ /*Matice management*/
+ void  Matice::Configure(Elements* elementsin){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19216)
+@@ -209,7 +209,66 @@
+ 	return matpar;
+ }
+ /*}}}*/
++void Matpar::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(MatparEnum);
++
++	MARSHALLING(mid);
++	MARSHALLING(rho_ice);
++	MARSHALLING(rho_water);
++	MARSHALLING(rho_freshwater);
++	MARSHALLING(mu_water);
++	MARSHALLING(heatcapacity);
++	MARSHALLING(thermalconductivity);
++	MARSHALLING(temperateiceconductivity);
++	MARSHALLING(latentheat);
++	MARSHALLING(beta);
++	MARSHALLING(meltingpoint);
++	MARSHALLING(referencetemperature);
++	MARSHALLING(mixed_layer_capacity);
++	MARSHALLING(thermal_exchange_velocity);
++	MARSHALLING(g);
++	MARSHALLING(omega);
++	MARSHALLING(desfac);
++	MARSHALLING(s0p);
++	MARSHALLING(s0t);
++	MARSHALLING(rlaps);
++	MARSHALLING(rlapslgm);
++	MARSHALLING(dpermil);
++
++	/*hydrology Dual Porous Continuum: */
++	MARSHALLING(sediment_compressibility);
++	MARSHALLING(sediment_porosity);
++	MARSHALLING(sediment_thickness);
++	MARSHALLING(water_compressibility);
++
++	MARSHALLING(epl_compressibility);
++	MARSHALLING(epl_porosity);
++	MARSHALLING(epl_init_thickness);
++	MARSHALLING(epl_colapse_thickness);
++	MARSHALLING(epl_max_thickness);
++	MARSHALLING(epl_conductivity);
++
++	/*gia: */
++	MARSHALLING(lithosphere_shear_modulus);
++	MARSHALLING(lithosphere_density);
++	MARSHALLING(mantle_shear_modulus);
++	MARSHALLING(mantle_density);
++
++	/*Sea ice*/
++	MARSHALLING(poisson);
++	MARSHALLING(young_modulus);
++	MARSHALLING(ridging_exponent);
++	MARSHALLING(cohesion);
++	MARSHALLING(internal_friction_coef);
++	MARSHALLING(compression_coef);
++	MARSHALLING(traction_coef);
++	MARSHALLING(time_relaxation_stress);
++	MARSHALLING(time_relaxation_damage);
++
++}
++/*}}}*/
++
+ /*Update virtual functions definitions:*/
+ void   Matpar::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
+ 	/*Nothing updated yet*/
+Index: ../trunk-jpl/src/c/classes/Materials/Matice.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matice.h	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Materials/Matice.h	(revision 19216)
+@@ -39,7 +39,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual funictions definitions: {{{*/
+ 		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19216)
+@@ -78,7 +78,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void   InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/Params/BoolParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 19216)
+@@ -53,3 +53,14 @@
+ 
+ }
+ /*}}}*/
++void BoolParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING_ENUM(BoolParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
++		
+Index: ../trunk-jpl/src/c/classes/Params/BoolParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/BoolParam.h	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Params/BoolParam.h	(revision 19216)
+@@ -35,7 +35,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Elements/TriaRef.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Elements/TriaRef.h	(revision 19216)
+@@ -32,7 +32,7 @@
+ 		int  PressureInterpolation(int fe_stokes);
+ 		int  TensorInterpolation(int fe_stokes);
+ 		int  VelocityInterpolation(int fe_stokes);
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
+ 
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcStatic.h	(revision 19216)
+@@ -33,7 +33,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Constraint virtual functions definitions: {{{*/
+ 		void ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 19215)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 19216)
+@@ -78,7 +78,20 @@
+ 
+ }
+ /*}}}*/
++void     SpcStatic::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(SpcStaticEnum);
++
++	MARSHALLING(sid);
++	MARSHALLING(nodeid);
++	MARSHALLING(dof);
++	MARSHALLING(value);
++	MARSHALLING(analysis_type);
++	MARSHALLING(penalty);
++
++}
++/*}}}*/
++
+ /*Constraint virtual functions definitions: */
+ void SpcStatic::ActivatePenaltyMethod(void){/*{{{*/
+ 	   this->penalty = true;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19216-19217.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19216-19217.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19216-19217.diff	(revision 20498)
@@ -0,0 +1,162 @@
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 19217)
+@@ -36,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param virtual functions definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 19217)
+@@ -37,7 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DataSetParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DataSetParam.h	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DataSetParam.h	(revision 19217)
+@@ -36,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 19217)
+@@ -61,7 +61,17 @@
+ 
+ }
+ /*}}}*/
++void DoubleVecParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(DoubleVecParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(M);
++	MARSHALLING_DYNAMIC(values,IssmDouble,M);
++
++}
++/*}}}*/
++
+ /*DoubleVecParam virtual functions definitions: */
+ void  DoubleVecParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM){/*{{{*/
+ 	IssmDouble* output=NULL;
+Index: ../trunk-jpl/src/c/classes/Params/StringArrayParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringArrayParam.h	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/StringArrayParam.h	(revision 19217)
+@@ -20,7 +20,6 @@
+ class StringArrayParam: public Param{
+ 
+ 	private: 
+-		/*just hold 3 values for 3 vertices: */
+ 		int      enum_type;
+ 		char**   value;
+ 		int      numstrings;
+@@ -37,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 19217)
+@@ -72,7 +72,17 @@
+ 
+ }
+ /*}}}*/
++void DoubleMatParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(DoubleMatParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(M);
++	MARSHALLING(N);
++	MARSHALLING_DYNAMIC(value,IssmDouble,M*N);
++}
++/*}}}*/
++
+ /*DoubleMatParam virtual functions definitions: */
+ void  DoubleMatParam::GetParameterValue(IssmDouble** pIssmDoublearray,int* pM,int* pN){/*{{{*/
+ 	IssmDouble* output=NULL;
+Index: ../trunk-jpl/src/c/classes/Params/DataSetParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DataSetParam.cpp	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/DataSetParam.cpp	(revision 19217)
+@@ -57,7 +57,17 @@
+ 
+ }
+ /*}}}*/
++void DataSetParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD)value=new DataSet();
++	
++	MARSHALLING_ENUM(DataSetParamEnum);
++	MARSHALLING(enum_type);
++	value->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++}
++/*}}}*/
++
+ /*DataSetParam virtual functions definitions: */
+ void DataSetParam::GetParameterValue(DataSet** pdataset){/*{{{*/
+ 	*pdataset=value->Copy();
+Index: ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 19216)
++++ ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 19217)
+@@ -80,7 +80,31 @@
+ 
+ }
+ /*}}}*/
++void StringArrayParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	int* sizes=NULL;
++
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
++		if(numstrings)sizes=xNew<int>(numstrings);
++		for(int i=0;i<numstrings;i++)sizes[i]=strlen(value[i])+1;
++	}
++
++	MARSHALLING_ENUM(StringArrayParamEnum);
++	
++	MARSHALLING(enum_type);
++	MARSHALLING(numstrings);
++
++	if(numstrings){
++		MARSHALLING_DYNAMIC(sizes,int,numstrings);
++		
++		if(marshall_direction==MARSHALLING_BACKWARD) value=xNew<char*>(numstrings);
++		
++		for(int i=0;i<numstrings;i++)MARSHALLING_DYNAMIC(value[i],char,sizes[i]);
++	}
++
++}
++/*}}}*/
++
+ /*StringArrayParam virtual functions definitions: */
+ void  StringArrayParam::GetParameterValue(char*** pstringarray,int* pM){/*{{{*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19217-19218.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19217-19218.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19217-19218.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/miscellaneous/transientrestart.m
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/transientrestart.m	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/transientrestart.m	(revision 19218)
+@@ -0,0 +1,47 @@
++function md = transientrestart(md)
++%TRANSIENTRESTART - reinitialize model from last transient step
++%
++%   Usage:
++%      md = transientrestart(md)
++
++%Get result and save it again
++results = md.results.TransientSolution(end);
++
++newname = ['TransientSolution' num2str(numel(fields(md.results))+1)];
++if isfield(md.results,newname)
++	error(['Cannot save ' newname ' in md.results']);
++else
++	disp(['Moving results to ' newname]);
++	md.results.(newname) = md.results.TransientSolution;
++	md.results.TransientSolution  = struct();
++end
++
++%Change time
++md.timestepping.start_time = results.time/md.constants.yts;
++
++%Change initialization fields
++if isfield(results,'Vx'),          md.initialization.vx=results.Vx; end
++if isfield(results,'Vy'),          md.initialization.vy=results.Vy; end
++if isfield(results,'Vz'),          md.initialization.vz=results.Vz; end
++if isfield(results,'Temperature'), md.initialization.temperature=results.Temperature; end
++if isfield(results,'Pressure'),    md.initialization.pressure=results.Pressure; end
++
++%Deal with new geometry
++if isfield(results,'Base') & isfield(results,'Thickness'),
++	base=results.Base;
++	thickness=results.Thickness;
++	if isa(md.mesh,'mesh3dprisms')
++		md.mesh.z=base+thickness./md.geometry.thickness.*(md.mesh.z-md.geometry.base);
++	end
++	md.geometry.base=base;
++	md.geometry.thickness=thickness;
++	md.geometry.surface=md.geometry.base+md.geometry.thickness;
++end
++
++%Update mask
++if isfield(results,'MaskGroundediceLevelset'),
++	md.mask.groundedice_levelset = results.MaskGroundediceLevelset;
++end
++if isfield(results,'MaskIceLevelset'),
++	md.mask.ice_levelset = results.MaskIceLevelset;
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19218-19219.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19218-19219.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19218-19219.diff	(revision 20498)
@@ -0,0 +1,75 @@
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19218)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19219)
+@@ -16,12 +16,12 @@
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+ 		memcpy(*pmarshalled_data,&enum_type,sizeof(int));\
+ 		*pmarshalled_data+=sizeof(int);\
+-		*pmarshalled_data_size+=sizeof(int);\
+ 	}\
+ 	else if(marshall_direction==MARSHALLING_SIZE){\
+ 		*pmarshalled_data_size+=sizeof(int);\
+ 	}\
+ 	else if(marshall_direction==MARSHALLING_BACKWARD){\
++		*pmarshalled_data+=sizeof(int);\
+ 	}\
+ 	else _error_("Wrong direction during the Marshall process");\
+ 
+@@ -31,7 +31,6 @@
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+ 		memcpy(*pmarshalled_data,&FIELD,sizeof(FIELD));\
+ 		*pmarshalled_data+=sizeof(FIELD);\
+-		*pmarshalled_data_size+=sizeof(FIELD);\
+ 	}\
+ 	else if(marshall_direction==MARSHALLING_SIZE){\
+ 		*pmarshalled_data_size+=sizeof(FIELD);\
+@@ -48,7 +47,6 @@
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+ 		memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
+ 		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+ 	}\
+ 	else if(marshall_direction==MARSHALLING_SIZE){\
+ 		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+@@ -62,19 +60,26 @@
+ 
+ #define MARSHALLING_DYNAMIC(FIELD,TYPE,SIZE) \
+ 	\
+-	if(marshall_direction==MARSHALLING_FORWARD){\
+-		memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
+-		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+-	}\
+-	else if(marshall_direction==MARSHALLING_SIZE){\
+-		*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+-	}\
+-	else if(marshall_direction==MARSHALLING_BACKWARD){\
+-		FIELD=xNew<TYPE>(SIZE);\
+-		memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
+-		*pmarshalled_data+=SIZE*sizeof(TYPE);\
+-	}\
+-	else _error_("Wrong direction during the Marshall process");
++	{\
++		bool field_null=true;\
++		if (FIELD)field_null=false;\
++		MARSHALLING(field_null);\
++		\
++		if(!field_null){\
++			if(marshall_direction==MARSHALLING_FORWARD){\
++					memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++					*pmarshalled_data+=SIZE*sizeof(TYPE);\
++			}\
++			else if(marshall_direction==MARSHALLING_SIZE){\
++				*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
++			}\
++			else if(marshall_direction==MARSHALLING_BACKWARD){\
++				FIELD=xNew<TYPE>(SIZE);\
++				memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
++				*pmarshalled_data+=SIZE*sizeof(TYPE);\
++			}\
++			else _error_("Wrong direction during the Marshall process");\
++		}\
++	}
+ 
+ #endif	
Index: /issm/oecreview/Archive/19101-20495/ISSM-19219-19220.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19219-19220.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19219-19220.diff	(revision 20498)
@@ -0,0 +1,78 @@
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19219)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19220)
+@@ -91,7 +91,7 @@
+ 	vector<Object*>::iterator obj;
+ 	int obj_enum;
+ 	int i;
+-	
++
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+ 		numsorted=objects.size();
+ 	}
+@@ -120,40 +120,39 @@
+ 
+ 			/*Recover enum of object first: */
+ 			MARSHALLING_ENUM(obj_enum); 
+-
+ 			/*Reset the file pointer to point again to the beginning of the object: */
+ 			*pmarshalled_data-=sizeof(int);
+ 
+ 			/*Giant case statement to spin-up the right object, and demarshall into it the information 
+ 			 *stored in the buffer: */
+-			switch(enum_type){
+-				case NodeEnum:{
++			if(obj_enum==NodeEnum){
+ 					Node* node=NULL;
+ 					node=new Node();
+ 					node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(node);}
+-					break;
+-				case VertexEnum:{
+-					Vertex* vertex=NULL;
+-					vertex=new Vertex();
+-					vertex->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(vertex);}
+-					break;
+-				case DoubleParamEnum:{
+-					DoubleParam* doubleparam=NULL;
+-					doubleparam=new DoubleParam();
+-					doubleparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(doubleparam);}
+-					break;
+-				case IntParamEnum:{
+-					IntParam* intparam=NULL;
+-					intparam=new IntParam();
+-					intparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(intparam);}
+-					break;
+-				default:
+-					_error_("could not recognize enum type: " << EnumToStringx(enum_type));
++					this->AddObject(node);
+ 			}
++			else if(obj_enum==VertexEnum){
++				Vertex* vertex=NULL;
++				vertex=new Vertex();
++				vertex->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(vertex);
++				break;
++			}
++			else if(obj_enum==DoubleParamEnum){
++				DoubleParam* doubleparam=NULL;
++				doubleparam=new DoubleParam();
++				doubleparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(doubleparam);
++				break;
++			}
++			else if(obj_enum==IntParamEnum){
++				IntParam* intparam=NULL;
++				intparam=new IntParam();
++				intparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(intparam);
++				break;
++			}
++			else _error_("could not recognize enum type: " << obj_enum); 
+ 		}
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19220-19221.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19220-19221.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19220-19221.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/c/shared/io/Disk/diskio.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Disk/diskio.h	(revision 19220)
++++ ../trunk-jpl/src/c/shared/io/Disk/diskio.h	(revision 19221)
+@@ -7,7 +7,7 @@
+ 
+ #include <stdio.h>
+ 
+-FILE* pfopen(char* filename,const char* format);
++FILE* pfopen(char* filename,const char* format,bool errorout=true);
+ FILE* pfopen0(char* filename,const char* format);
+ void  pfclose(FILE* fid,char* filename);
+ void WriteLockFile(char* filename);
+Index: ../trunk-jpl/src/c/shared/io/Disk/pfopen.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Disk/pfopen.cpp	(revision 19220)
++++ ../trunk-jpl/src/c/shared/io/Disk/pfopen.cpp	(revision 19221)
+@@ -23,11 +23,11 @@
+ 
+ 	/*Open handle to data on disk*/
+ 	fid = fopen(filename,format);
+-	if(fid==NULL) _error_("could not open file " << filename << " for binary reading or writing");
++	if(fid==NULL)_error_("could not open file " << filename << " for binary reading or writing");
+ 
+ 	return fid;
+ }
+-FILE* pfopen(char* filename,const char* format){
++FILE* pfopen(char* filename,const char* format,bool errorout){
+ 
+ 	FILE* fid=NULL;
+ 
+@@ -40,7 +40,7 @@
+ 		if(my_rank==i) fid = fopen(filename,format);
+ 		ISSM_MPI_Barrier(IssmComm::GetComm());
+ 	}
+-	if(fid==NULL) _error_("could not open file " << filename << " for binary reading or writing");
++	if(errorout && fid==NULL)_error_("could not open file " << filename << " for binary reading or writing");
+ 
+ 	return fid;
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19221-19222.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19221-19222.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19221-19222.diff	(revision 20498)
@@ -0,0 +1,188 @@
+Index: ../trunk-jpl/src/c/classes/Params/FileParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19222)
+@@ -35,7 +35,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19222)
+@@ -84,7 +84,17 @@
+ 
+ }
+ /*}}}*/
++void IntVecParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(IntVecParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(M);
++	MARSHALLING_DYNAMIC(values,int,M);
++
++}
++/*}}}*/
++
+ /*IntVecParam virtual functions definitions: */
+ void  IntVecParam::GetParameterValue(int** pintarray,int* pM){/*{{{*/
+ 	int* output=NULL;
+Index: ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19222)
+@@ -72,7 +72,18 @@
+ 
+ }
+ /*}}}*/
++void IntMatParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(IntMatParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(M);
++	MARSHALLING(N);
++	MARSHALLING_DYNAMIC(value,int,M*N);
++}
++/*}}}*/
++
++
+ /*IntMatParam virtual functions definitions: */
+ void  IntMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
+ 	int* output=NULL;
+Index: ../trunk-jpl/src/c/classes/Params/StringParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19222)
+@@ -55,7 +55,21 @@
+ 
+ }
+ /*}}}*/
++void StringParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	int size;
++
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction == MARSHALLING_SIZE)size=strlen(value)+1;
++	
++	MARSHALLING_ENUM(StringParamEnum);
++	MARSHALLING(enum_type);
++	MARSHALLING(size);
++	MARSHALLING_DYNAMIC(value,char,size);
++
++
++}
++/*}}}*/
++
+ /*StringParam virtual functions definitions: */
+ void  StringParam::GetParameterValue(char** pstring){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/FileParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19222)
+@@ -54,3 +54,12 @@
+ 
+ }
+ /*}}}*/
++void FileParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING_ENUM(FileParamEnum);
++	MARSHALLING(value);
++
++	if(marshall_direction==MARSHALLING_BACKWARD)value=NULL; //meaningless file pointer!
++
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19222)
+@@ -38,7 +38,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntVecParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19222)
+@@ -37,7 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param virtual functions definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/IntMatParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19222)
+@@ -37,7 +37,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/StringParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19222)
+@@ -36,7 +36,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19221)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19222)
+@@ -121,7 +121,25 @@
+ 
+ }
+ /*}}}*/
++void DoubleMatArrayParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(DoubleMatArrayParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(M);
++	MARSHALLING_DYNAMIC(mdim_array,int,M);
++	MARSHALLING_DYNAMIC(ndim_array,int,M);
++
++	if(marshall_direction==MARSHALLING_BACKWARD)if(M)array=xNew<IssmDouble*>(M);
++
++	for(int i=0;i<M;i++){
++		MARSHALLING_DYNAMIC(array[i],IssmDouble,mdim_array[i]*ndim_array[i]);
++	}
++		
++
++}
++/*}}}*/
++
+ /*DoubleMatArrayParam virtual functions definitions: */
+ void  DoubleMatArrayParam::GetParameterValue(IssmDouble*** pout_array, int* pout_M,int** pout_mdim_array, int** pout_ndim_array){/*{{{*/
+ 
+@@ -210,3 +228,4 @@
+ 
+ }
+ /*}}}*/
++		
Index: /issm/oecreview/Archive/19101-20495/ISSM-19222-19223.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19222-19223.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19222-19223.diff	(revision 20498)
@@ -0,0 +1,130 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19222)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19223)
+@@ -610,6 +610,7 @@
+ 	char* restartfilename = NULL;
+ 	int   femmodel_size;
+ 	char* femmodel_buffer=NULL;
++	char* femmodel_buffer_ini=NULL;
+ 
+ 	/*First, recover the name of the restart file: */
+ 	parameters->FindParam(&restartfilename,RestartFileNameEnum);
+@@ -617,15 +618,24 @@
+ 	/*Open file for writing: */
+ 	restartfid=pfopen(restartfilename,"wb");
+ 
++	/*Initialize: */
++	femmodel_size=0;
++
+ 	/*Create buffer to hold marshalled femmodel: */
+ 	this->Marshall(NULL,&femmodel_size,MARSHALLING_SIZE);
+-	femmodel_buffer=xNew<char>(femmodel_size);
++	femmodel_buffer=xNew<char>(femmodel_size); 
+ 
++	/*Keep track of initial position of femmodel_buffer: */
++	femmodel_buffer_ini=femmodel_buffer;
++	
+ 	/*Marshall:*/
+-	this->Marshall(&femmodel_buffer,&femmodel_size,MARSHALLING_FORWARD);
++	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_FORWARD);
+ 
++	/*Reset position of buffer: */
++	femmodel_buffer=femmodel_buffer_ini;
++
+ 	/*write buffer: */
+-	fwrite(femmodel_buffer,femmodel_size,sizeof(IssmPDouble),restartfid);
++	fwrite(femmodel_buffer,femmodel_size,sizeof(char),restartfid);
+ 
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+@@ -636,29 +646,68 @@
+ 
+ }
+ /*}}}*/
+-void FemModel::Restart(void){/*{{{*/
++void FemModel::Restart(){ /*{{{*/
++
++	FILE* restartfid=NULL;
++	char* restartfilename = NULL;
++	int   femmodel_size=0; 
++	int   fread_return=0; 
++	char* femmodel_buffer=NULL;
++	char* femmodel_buffer_ini=NULL;
++
++	/*First, recover the name of the restart file: */
++	parameters->FindParam(&restartfilename,RestartFileNameEnum);
++
++	/*Now, figure out whether this file actually exists!: */
++	restartfid=pfopen(restartfilename,"r",false);
++
++	if(restartfid==NULL)return; //could not find the file, so no restart possible.
++
++	/*Figure out size of buffer to be read: */
++	fseek(restartfid, 0L, SEEK_END); 
++	femmodel_size = ftell(restartfid);
++	fseek(restartfid, 0L, SEEK_SET);
++
++	/*Allocate buffer: */
++	femmodel_buffer=xNew<char>(femmodel_size); 
++
++	/*Read buffer from file: */
++	fread_return=fread(femmodel_buffer,femmodel_size,1,restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
++	femmodel_buffer_ini=femmodel_buffer; //keep track of the initial position, so as to free later.
++
++	/*Create new FemModel by demarshalling the buffer: */
++	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_BACKWARD);
++
++	/*Done, close file :*/
++	pfclose(restartfid,restartfilename);
++	
++	/*Free ressources: */
++	xDelete<char>(restartfilename);
++	xDelete<char>(femmodel_buffer);
++	
+ }
+ /*}}}*/
+ void FemModel::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		delete profiler; profiler=new Profiler;
++		delete elements; elements=new Elements();
++		delete nodes; nodes=new Nodes();
++		delete vertices; vertices=new Vertices();
++		delete constraints; constraints=new Constraints();
++		delete loads; loads=new Loads();
++		delete materials; materials=new Materials();
++		delete parameters; parameters=new Parameters();
++		delete results; results=new Results();
++		xDelete<int>(analysis_type_list);
++	}
++
+ 	MARSHALLING_ENUM(FemModelEnum);
+ 
+ 	MARSHALLING(solution_type);
+ 	MARSHALLING(analysis_counter);
+ 	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARD){
+-		profiler=new Profiler;
+-		elements=new Elements();
+-		nodes=new Nodes();
+-		vertices=new Vertices();
+-		constraints=new Constraints();
+-		loads=new Loads();
+-		materials=new Materials();
+-		parameters=new Parameters();
+-		results=new Results();
+-	}
+-	
+ 	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+@@ -669,7 +718,6 @@
+ 	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+-	MARSHALLING(comm);
+ }
+ /*}}}*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19223-19224.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19223-19224.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19223-19224.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19223)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19224)
+@@ -34,7 +34,10 @@
+ 	int        step;
+ 	IssmDouble time;
+ 
+-	//first recover parameters common to all solutions
++	//first, figure out if there was a check point, if so, do a reset of the FemModel* femmodel structure. 
++	femmodel->Restart();
++
++	//then recover parameters common to all solutions
+ 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
+ 	femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
+ 	femmodel->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
+@@ -181,7 +184,10 @@
+ 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+ 			OutputResultsx(femmodel);
+ 		}
+-		if(restart_frequency && step%restart_frequency==0)femmodel->CheckPoint();
++		if(restart_frequency && step%restart_frequency==0){
++			if(VerboseSolution()) _printf0_("   checkpointing model \n");
++			femmodel->CheckPoint();
++		}
+ 	}
+ 
+ 	femmodel->RequestedDependentsx();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19224-19225.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19224-19225.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19224-19225.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp	(revision 19224)
++++ ../trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp	(revision 19225)
+@@ -21,8 +21,8 @@
+     
+   for (int imonth = 0; imonth<12; imonth++){
+     
+-    monthlytemperaturesout[imonth] = TemperaturePresentday[imonth] + deltaTemp;
+-    monthlyprecout[imonth] = PrecipitationPresentday[imonth]*exp((0.169/dpermil)*deltaTemp);
++    monthlytemperaturestmp[imonth] = TemperaturePresentday[imonth] + deltaTemp;
++    monthlyprectmp[imonth] = PrecipitationPresentday[imonth]*exp((0.169/dpermil)*deltaTemp);
+     
+     /*Assign output pointer*/
+     *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19225-19226.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19225-19226.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19225-19226.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Data/delta18o.data
+===================================================================
+--- ../trunk-jpl/test/Data/delta18o.data	(revision 19225)
++++ ../trunk-jpl/test/Data/delta18o.data	(revision 19226)
+@@ -1,2 +1,2 @@
+-  -3.9010000e-02  -3.9180000e-02  -3.9280000e-02  -3.9320000e-02  -3.9050000e-02  -3.8880000e-02  -3.8680000e-02  -3.8560000e-02  -3.8500000e-02  -3.8520000e-02  -3.8560000e-02
++  -3.9010000e1  -3.9180000e1  -3.9280000e1  -3.9320000e1  -3.9050000e1  -3.8880000e1  -3.8680000e1  -3.8560000e1  -3.8500000e1  -3.8520000e1  -3.8560000e1
+    0.0000000e+00   2.0000000e+01   4.0000000e+01   6.0000000e+01   8.0000000e+01   1.0000000e+02   1.2000000e+02   1.4000000e+02   1.6000000e+02   1.8000000e+02   2.0000000e+02
Index: /issm/oecreview/Archive/19101-20495/ISSM-19226-19227.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19226-19227.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19226-19227.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19226)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19227)
+@@ -82,7 +82,7 @@
+                         if(self.isd18opd==1) 
+                             fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
+                             fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
+-                            fielddisplay(self,'delta18o','delta18o, required if pdd is activated and d18opd activated');  
++                            fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and d18opd activated');  
+                             fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
+                         end
+                         % No need to display rlapslgm, Tdiff, ismungsm
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19226)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19227)
+@@ -111,7 +111,7 @@
+                             fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']);
+                             fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']);
+                         elseif(self.isdelta18o==1)
+-                            fielddisplay(self,'delta18o','delta18o, required if pdd is activated and delta18o activated');
++                            fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated');
+                             fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated');
+                             fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
+                             fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19227-19228.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19227-19228.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19227-19228.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19227)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19228)
+@@ -50,7 +50,7 @@
+ 			string="%s\n%s"%(string,fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']))
+ 			string="%s\n%s"%(string,fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']))
+ 			if self.isdelta18o:
+-				string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o, required if pdd is activated and delta18o activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated'))
Index: /issm/oecreview/Archive/19101-20495/ISSM-19228-19229.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19228-19229.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19228-19229.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19229-19230.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19229-19230.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19229-19230.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/externalpackages/esmf/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/esmf/install.sh	(revision 19229)
++++ ../trunk-jpl/externalpackages/esmf/install.sh	(revision 19230)
+@@ -2,22 +2,22 @@
+ set -eu
+ 
+ export ESMF_DIR=$ISSM_DIR/externalpackages/esmf/esmf
++export ESMF_INSTALL_PREFIX=$ISSM_DIR/externalpackages/esmf/install
+ export ESMF_COMPILER=gfortran
+ export ESMF_COMM=mpich2
+ 
+ #Some cleanup
+-rm -rf esmf_5_2_0rp2
++rm -rf esmf_6_3_0rp1
+ rm -rf esmf
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/esmf_5_2_0rp2_src.tar.gz' 'esmf_5_2_0rp2_src.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/esmf_6_3_0rp1_src.tar.gz' 'esmf_6_3_0rp1_src.tar.gz'
+ $ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/docs/ESMF_refdoc.pdf' 'ESMF_refdoc.pdf'
+ $ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/docs/ESMF_usrdoc.pdf' 'ESMF_usrdoc.pdf'
+ 
+ #Untar 
+-tar -zxvf  esmf_5_2_0rp2_src.tar.gz
++tar -zxvf  esmf_6_3_0rp1_src.tar.gz
+ 
+-
+ #Configure esmf
+ cd esmf
+ 
+@@ -29,10 +29,3 @@
+ 	make -j $1
+ 	make -j $1 install
+ fi
+-
+-cd esmf
+-if [ $# -eq 0 ]; then
+-	make all_tests
+-else
+-	make -j $1 all_tests
+-fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-19230-19231.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19230-19231.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19230-19231.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19230)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19231)
+@@ -657,6 +657,33 @@
+ 		AC_SUBST([SCOTCHLIB])
+ 	fi
+ 	dnl }}}
++	dnl esmf{{{
++	AC_ARG_WITH([esmf-dir],
++		AS_HELP_STRING([--with-esmf-dir=DIR], [esmf root directory.]),
++		[ESMF_ROOT=$withval],[ESMF_ROOT="no"]) 
++
++	dnl Check whether esmf is enabled
++	AC_MSG_CHECKING([for esmf])
++	if test "x$ESMF_ROOT" = "xno" ; then
++		HAVE_ESMF=no
++	else
++		HAVE_ESMF=yes
++		if ! test -d "$ESMF_ROOT"; then
++			AC_MSG_ERROR([esmf directory provided ($ESMF_ROOT) does not exist]);
++		fi
++	fi
++	AC_MSG_RESULT($HAVE_ESMF)
++	
++	dnl esmf headers and libraries
++	if test "x$HAVE_ESMF" == "xyes"; then
++		ESMFINCL="-I$ESMF_ROOT/include"
++		ESMFLIB="-L$ESMF_ROOT/lib -lesmf"
++		AC_DEFINE([_HAVE_ESMF_],[1],[with esmf in ISSM src])
++		AC_SUBST([ESMFINCL])
++		AC_SUBST([ESMFLIB])
++	fi
++	AM_CONDITIONAL([ESMF], [test x$HAVE_ESMF = xyes])
++	dnl }}}
+ 	dnl adolc{{{
+ 	AC_ARG_WITH([adolc-dir],
+ 		AS_HELP_STRING([--with-adolc-dir=DIR], [adolc root directory.]),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19231-19232.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19231-19232.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19231-19232.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19231)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19232)
+@@ -444,6 +444,13 @@
+ 					ub=-drag*rho_ice*gravity*thickness*slope[0];
+ 					vb=-drag*rho_ice*gravity*thickness*slope[1];
+ 					break;
++				case 5: /*Weertman temp for Kevin*/{
++					Friction* friction=new Friction(element,3);
++					friction->GetAlpha2WeertmanTemp(&drag,gauss);
++					ub = -1./drag * rho_ice*gravity*thickness*slope[0];
++					vb = -1./drag * rho_ice*gravity*thickness*slope[1];
++					}
++					break;
+ 				default:
+ 					_error_("Not supported yet");
+ 			}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19232-19233.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19232-19233.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19232-19233.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19232)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19233)
+@@ -108,8 +108,10 @@
+ 	/*Fetch data needed: */
+ 	bool   isSIA;
+ 	bool   islevelset;
++	int    frictionlaw;
+ 	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+ 	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 
+ 	/*Now, is the flag SIA on? otherwise, do nothing: */
+ 	if (!isSIA)return;
+@@ -126,6 +128,27 @@
+ 		}
+ 	}
+ 
++	/*Friction law variables*/
++	switch(frictionlaw){
++		case 1:
++			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
++			iomodel->FetchDataToInput(elements,FrictionPEnum);
++			iomodel->FetchDataToInput(elements,FrictionQEnum);
++			break;
++		case 2:
++			iomodel->FetchDataToInput(elements,FrictionCEnum);
++			iomodel->FetchDataToInput(elements,FrictionMEnum);
++			break;
++		case 6:
++			iomodel->FetchDataToInput(elements,FrictionCEnum);
++			iomodel->FetchDataToInput(elements,FrictionMEnum);
++			iomodel->FetchDataToInput(elements,PressureEnum);
++			iomodel->FetchDataToInput(elements,TemperatureEnum);
++			break;
++		default:
++			_error_("not supported");
++	}
++
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19233-19234.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19233-19234.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19233-19234.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19233)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19234)
+@@ -150,7 +150,6 @@
+ 	}
+ 
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+-	iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	if(islevelset){
+ 		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19234-19235.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19234-19235.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19234-19235.diff	(revision 20498)
@@ -0,0 +1,63 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19234)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19235)
+@@ -401,7 +401,14 @@
+ 	Input* slopex_input    = element->GetInput(SurfaceSlopeXEnum);        _assert_(slopex_input);
+ 	Input* slopey_input    = element->GetInput(SurfaceSlopeYEnum);        _assert_(slopey_input);
+ 	Input* thickness_input = element->GetInput(ThicknessEnum);            _assert_(thickness_input);
+-	Input* drag_input      = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
++	Input* drag_input      = NULL;
++	Friction* friction     = NULL;
++	if(frictionlaw!=5){
++		drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
++	}
++	else{
++		friction=new Friction(element,3);
++	}
+ 
+ 	/*Get Vertical segment indices*/
+ 	element->VerticalSegmentIndices(&pairindices,&numsegments);
+@@ -442,8 +449,6 @@
+ 
+ 		/*Deal with basal velocities*/
+ 		if(element->IsOnBase()){
+-			drag_input->GetInputValue(&drag,gauss);
+-
+ 			switch(frictionlaw){
+ 				case 1:
+ 					/*Payne 1995 (m = 1, B = 5e-3/yts = 1.58e-10  m/s/Pa*/
+@@ -452,22 +457,24 @@
+ 					break;
+ 				case 2:
+ 					/*Ritz et al. 1996*/
++					drag_input->GetInputValue(&drag,gauss);
+ 					ub=drag*(rho_ice*gravity*thickness)*(rho_ice*gravity*thickness)*slope[0]/sqrt(slope2);
+ 					vb=drag*(rho_ice*gravity*thickness)*(rho_ice*gravity*thickness)*slope[1]/sqrt(slope2);
+ 					break;
+ 				case 3:
+ 					/*Rutt et al. 2009*/
++					drag_input->GetInputValue(&drag,gauss);
+ 					ub=-drag*rho_ice*gravity*thickness*slope[0];
+ 					vb=-drag*rho_ice*gravity*thickness*slope[1];
+ 					break;
+ 				case 4:
+ 					/*Henning Akesson*/
++					drag_input->GetInputValue(&drag,gauss);
+ 					drag = -4e-15 * surface + 8.6e-12;
+ 					ub=-drag*rho_ice*gravity*thickness*slope[0];
+ 					vb=-drag*rho_ice*gravity*thickness*slope[1];
+ 					break;
+ 				case 5: /*Weertman temp for Kevin*/{
+-					Friction* friction=new Friction(element,3);
+ 					friction->GetAlpha2WeertmanTemp(&drag,gauss);
+ 					ub = -1./drag * rho_ice*gravity*thickness*slope[0];
+ 					vb = -1./drag * rho_ice*gravity*thickness*slope[1];
+@@ -486,6 +493,7 @@
+ 	/*Clean up and return*/
+ 	xDelete<int>(pairindices);
+ 	xDelete<IssmDouble>(xyz_list);
++	delete friction;
+ 	return pe;
+ 
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19235-19236.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19235-19236.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19235-19236.diff	(revision 20498)
@@ -0,0 +1,150 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19235)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19236)
+@@ -21,7 +21,7 @@
+ 	int         numoutputs,materialtype,smb_model,basalforcing_model;
+ 	char**      requestedoutputs = NULL;
+ 	IssmDouble  time;
+-	bool        isdelta18o,ismungsm,isd18opd;
++	bool        isdelta18o,ismungsm,isd18opd,interp;
+ 
+ 	/*parameters for mass flux:*/
+ 	int          mass_flux_num_profiles     = 0;
+@@ -100,6 +100,7 @@
+ 	/*Surface mass balance parameters*/
+ 	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsEnum));
+ 	iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++	iomodel->Constant(&interp,TimesteppingInterpForcingsEnum);
+ 	switch(smb_model){
+ 		case SMBEnum:
+ 			/*Nothing to add to parameters*/
+@@ -118,17 +119,17 @@
+ 			if(ismungsm){
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
+ 			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],M));
++			  parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsPfacEnum);
+ 			
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsTdiffEnum); _assert_(N==2);
+ 			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],M));
++			  parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsTdiffEnum);
+ 
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsSealevEnum); _assert_(N==2);
+ 			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],M));
++			  parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsSealevEnum);
+ 			}
+ 			if(isdelta18o){
+@@ -136,12 +137,12 @@
+ 
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+ 				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
++				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
+ 
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
+ 				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],M));
++				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
+ 			}
+ 			break;
+@@ -160,7 +161,7 @@
+ 
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+ 				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],M));
++				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
+ 				
+ 				parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDpermilEnum));
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19235)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19236)
+@@ -39,8 +39,8 @@
+ 			if(isd18opd){
+ 				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
+ 				Delta18opdParameterizationx(femmodel);
+-			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+-			PositiveDegreeDayx(femmodel);
++				if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++				PositiveDegreeDayx(femmodel);
+ 			} 
+ 			break;
+ 		case SMBgradientsEnum:
+Index: ../trunk-jpl/src/c/classes/Params/TransientParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19235)
++++ ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19236)
+@@ -22,13 +22,14 @@
+ 	protected: 
+ 		int         enum_type;
+ 		int         N;
++		bool        interpolation;
+ 		IssmDouble *values;
+ 		IssmDouble *timesteps;
+ 
+ 	public:
+ 		/*TransientParam constructors, destructors: {{{*/
+ 		TransientParam();
+-		TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,int in_N);
++		TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,bool interpolation_on,int in_N);
+ 		~TransientParam();
+ 		/*}}}*/
+ 		/*Object virtual functions definitions:{{{ */
+Index: ../trunk-jpl/src/c/classes/Params/TransientParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 19235)
++++ ../trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 19236)
+@@ -19,12 +19,13 @@
+ 	return;
+ }
+ /*}}}*/
+-TransientParam::TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,int in_N){/*{{{*/
++TransientParam::TransientParam(int in_enum_type,IssmDouble* in_values,IssmDouble* in_time,bool interpolation_on,int in_N){/*{{{*/
+ 
+ 	_assert_(in_values && in_time);
+ 
+ 	enum_type=in_enum_type;
+ 	N=in_N;
++	interpolation=interpolation_on;
+ 
+ 	values=xNew<IssmDouble>(N);
+ 	xMemCpy<IssmDouble>(values,in_values,N);
+@@ -58,9 +59,9 @@
+ 	}
+ }
+ /*}}}*/
+-int    TransientParam::Id(void){ return -1; }/*{{{*/
++int  TransientParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int TransientParam::ObjectEnum(void){/*{{{*/
++int  TransientParam::ObjectEnum(void){/*{{{*/
+ 
+ 	return TransientParamEnum;
+ 
+@@ -68,7 +69,7 @@
+ /*}}}*/
+ Object* TransientParam::copy() {/*{{{*/
+ 
+-	return new TransientParam(this->enum_type,this->values,this->timesteps,this->N);
++	return new TransientParam(this->enum_type,this->values,this->timesteps,this->interpolation,this->N);
+ 
+ }
+ /*}}}*/
+@@ -86,7 +87,7 @@
+ 		output=this->values[0];
+ 		found=true;
+ 	}
+-	else if(time>this->timesteps[this->N-1]){
++	else if(time>this->timesteps[this->N-1] || !interpolation){
+ 		/*get values for the last time: */
+ 		output=this->values[this->N-1];
+ 		found=true;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19236-19237.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19236-19237.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19236-19237.diff	(revision 20498)
@@ -0,0 +1,1267 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19237)
+@@ -65,6 +65,9 @@
+ 		void               DeepEcho();
+ 		void               DeleteInput(int input_enum);
+ 		void               DeleteMaterials(void);
++		void               Delta18oParameterization(void);
++		void               MungsmtpParameterization(void);
++		void               Delta18opdParameterization(void);
+ 		IssmDouble         Divergence(void);
+ 		void               dViscositydBFS(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void               dViscositydBHO(IssmDouble* pdmudB,int dim,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+@@ -118,11 +121,11 @@
+ 		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+-
++		void               Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
++		void               PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm);
+ 		IssmDouble         PureIceEnthalpy(IssmDouble pressure);
+ 		void               ResetIceLevelset(void);
+ 		void               ResultInterpolation(int* pinterpolation,int*nodesperelement,int output_enum);
+@@ -182,9 +185,6 @@
+ 		virtual void       Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0;
+ 		virtual void       ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index)=0;
+ 		virtual void       ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum)=0;
+-		virtual void       Delta18oParameterization(void)=0;
+-		virtual void       MungsmtpParameterization(void)=0;
+-		virtual void       Delta18opdParameterization(void)=0;
+ 		virtual void       ElementResponse(IssmDouble* presponse,int response_enum)=0;
+ 		virtual void       ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0;
+ 		virtual int        FiniteElement(void)=0;
+@@ -257,7 +257,6 @@
+ 		virtual void       NormalTop(IssmDouble* normal,IssmDouble* xyz_list)=0;
+ 		virtual int        NumberofNodesPressure(void)=0;
+ 		virtual int        NumberofNodesVelocity(void)=0;
+-		virtual void       PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm)=0;
+ 		virtual void       PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding)=0;
+ 		virtual int        PressureInterpolation()=0;
+ 		virtual void       ReduceMatrices(ElementMatrix* Ke,ElementVector* pe)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19237)
+@@ -123,6 +123,10 @@
+ 	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
+ 	TriaRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
++	vertices = (Vertex**)this->hvertices->deliverp();
++	material = (Material*)this->hmaterial->delivers();
++	matpar   = (Matpar*)this->hmatpar->delivers();
++
+ }
+ /*}}}*/
+ 
+@@ -653,201 +657,6 @@
+ 	vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0],ADD_VAL);
+ 
+ }/*}}}*/
+-void       Tria::Delta18oParameterization(void){/*{{{*/
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime;
+-	IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime;
+-	IssmDouble time,yts,finaltime;
+-
+-	/*Recover parameters*/
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-	this->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
+-
+-	/*Recover present day temperature and precipitation*/
+-	Input* input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input* input2=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input* input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
+-	GaussTria* gauss=new GaussTria();
+-	for(int month=0;month<12;month++){
+-		for(int iv=0;iv<NUMVERTICES;iv++){
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/
+-	this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-(21000*yts)));
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
+-	this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-(21000*yts)));
+-	this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-		ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime, 
+-					Delta18oPresent, Delta18oLgm, Delta18oTime,
+-					&PrecipitationsPresentday[iv][0], 
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+-void       Tria::MungsmtpParameterization(void){/*{{{*/
+-	/*Are we on the base? If not, return*/
+-	if(!IsOnBase()) return;
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12],PrecipitationsLgm[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble TdiffTime,PfacTime;
+-	IssmDouble time,yts;
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-
+-	/*Recover present day temperature and precipitation*/
+-	Input*     input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input*     input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
+-	Input*     input4=inputs->GetInput(SurfaceforcingsPrecipitationsLgmEnum);        _assert_(input4);
+-	GaussTria* gauss=new GaussTria();
+-	for(int month=0;month<12;month++) {
+-		for(int iv=0;iv<NUMVERTICES;iv++) {
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-			input4->GetInputValue(&PrecipitationsLgm[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-	this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-	  ComputeMungsmTemperaturePrecipitation(TdiffTime,PfacTime,
+-					&PrecipitationsLgm[iv][0],&PrecipitationsPresentday[iv][0], 
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+-void       Tria::Delta18opdParameterization(void){/*{{{*/
+-	/*Are we on the base? If not, return*/
+-	if(!IsOnBase()) return;
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble Delta18oTime;
+-	IssmDouble dpermil;
+-	IssmDouble time,yts;
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-
+-	/*Get some pdd parameters*/
+- 	dpermil=matpar-> GetMaterialParameter(SurfaceforcingsDpermilEnum);
+-                        
+-	/*Recover present day temperature and precipitation*/
+-	Input*     input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input2);
+-	GaussTria* gauss=new GaussTria();
+-	for(int month=0;month<12;month++) {
+-		for(int iv=0;iv<NUMVERTICES;iv++) {
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-	  ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
+-					&PrecipitationsPresentday[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+ int        Tria::EdgeOnBaseIndex(void){/*{{{*/
+ 
+ 	IssmDouble values[NUMVERTICES];
+@@ -2637,10 +2446,6 @@
+ 
+ }
+ /*}}}*/
+-int        Tria::PressureInterpolation(void){/*{{{*/
+-	return TriaRef::PressureInterpolation(this->element_type);
+-}
+-/*}}}*/
+ int        Tria::NumberofNodesPressure(void){/*{{{*/
+ 	return TriaRef::NumberofNodes(this->PressureInterpolation());
+ }
+@@ -2649,101 +2454,6 @@
+ 	return TriaRef::NumberofNodes(this->VelocityInterpolation());
+ }
+ /*}}}*/
+-void       Tria::PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm){/*{{{*/
+- 
+-   int        i;
+-   IssmDouble agd[NUMVERTICES];             // surface mass balance
+-   IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-   IssmDouble yearlytemperatures[NUMVERTICES]={0.};
+-   IssmDouble tmp[NUMVERTICES];
+-   IssmDouble h[NUMVERTICES],s[NUMVERTICES];
+-   IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
+-   IssmDouble PfacTime,TdiffTime,sealevTime;
+-   IssmDouble mavg=1./12.; //factor for monthly average
+-   
+-   /*Get material parameters :*/
+-   rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+-   rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+-
+-  /*Get some pdd parameters*/
+-  desfac=matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
+-  s0p=matpar->GetMaterialParameter(SurfaceforcingsS0pEnum);
+-  s0t=matpar->GetMaterialParameter(SurfaceforcingsS0tEnum);
+-  rlaps=matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
+-  rlapslgm=matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
+-
+-   /*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/
+-   Input*     input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
+-   Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
+-   GaussTria* gauss=new GaussTria();
+-   IssmDouble time,yts;
+-   this->parameters->FindParam(&time,TimeEnum);
+-   this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-
+-   for(int month=0;month<12;month++) {
+-     for(int iv=0;iv<NUMVERTICES;iv++) {
+-       gauss->GaussVertex(iv);
+-       input->GetInputValue(&monthlytemperatures[iv][month],gauss,time+month/12.*yts);
+-       yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin 
+-       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+-       input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
+-     }
+-   }     
+-
+-  /*Recover Pfac, Tdiff and sealev at time t:
+-    This parameters are used to interpolate the temperature 
+-    and precipitaton between PD and LGM when ismungsm==1 */ 
+-  if (ismungsm==1){  
+-    this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-    this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
+-  }
+-  else {
+-    TdiffTime=0;
+-    sealevTime=0;  
+-  }
+-
+-  /*Recover info at the vertices: */
+-  GetInputListOnVertices(&h[0],ThicknessEnum);
+-  GetInputListOnVertices(&s[0],SurfaceEnum);
+-     
+-   /*measure the surface mass balance*/
+-  for (int iv = 0; iv<NUMVERTICES; iv++){
+-    agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
+-				  pdds, pds, signorm, yts, h[iv], s[iv],
+-				  desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
+-				  rho_water,rho_ice);
+-  }
+-
+-   /*Update inputs*/    
+-   // TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-   // TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-   // for (int imonth=0;imonth<12;imonth++) {
+-   //   for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-   //   TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-   //   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-   // 
+-   //   for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-   //   TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-   //   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-   // }
+-   // NewTemperatureInput->Configure(this->parameters);
+-   // NewPrecipitationInput->Configure(this->parameters);
+-
+-
+-  this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+-  this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-   // this->inputs->AddInput(NewTemperatureInput);
+-   // this->inputs->AddInput(NewPrecipitationInput);
+-   // this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+-
+-   //this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+-   // this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-   // this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+ void       Tria::PotentialUngrounding(Vector<IssmDouble>* potential_ungrounding){/*{{{*/
+ 
+ 	IssmDouble  h[NUMVERTICES],r[NUMVERTICES],gl[NUMVERTICES];
+@@ -2771,6 +2481,10 @@
+ 	}
+ }
+ /*}}}*/
++int        Tria::PressureInterpolation(void){/*{{{*/
++	return TriaRef::PressureInterpolation(this->element_type);
++}
++/*}}}*/
+ void       Tria::ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){/*{{{*/
+ 
+ 	/*Static condensation if requested*/
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19237)
+@@ -63,9 +63,6 @@
+ 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
+ 		void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum);
+-		void        Delta18oParameterization(void);
+-		void        MungsmtpParameterization(void);
+-		void        Delta18opdParameterization(void);
+ 		int         EdgeOnBaseIndex();
+ 		void        EdgeOnBaseIndices(int* pindex1,int* pindex);
+ 		int         EdgeOnSurfaceIndex();
+@@ -113,7 +110,6 @@
+ 		int         NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
+ 		int         NumberofNodesPressure(void);
+ 		int         NumberofNodesVelocity(void);
+-		void        PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm);
+ 		void        PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
+ 		int         PressureInterpolation();
+ 		void        ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19237)
+@@ -579,211 +579,6 @@
+ 	vector_gradient->SetValues(NUMVERTICES,&sidlist[0],&gradients[0],ADD_VAL);
+ 
+ }/*}}}*/
+-void       Penta::Delta18oParameterization(void){/*{{{*/
+-
+-	/*Are we on the base? If not, return*/
+-	if(!IsOnBase()) return;
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime;
+-	IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime;
+-	IssmDouble time,yts,finaltime;
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-	this->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
+-
+-	/*Recover present day temperature and precipitation*/
+-	Input*     input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input*     input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
+-	GaussPenta* gauss=new GaussPenta();
+-	for(int month=0;month<12;month++) {
+-		for(int iv=0;iv<NUMVERTICES;iv++) {
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/
+-	this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,finaltime-(21000*yts));
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
+-	this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,finaltime-(21000*yts));
+-	this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-		ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime, 
+-					Delta18oPresent, Delta18oLgm, Delta18oTime,
+-					&PrecipitationsPresentday[iv][0], 
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		PentaInput* newmonthinput1 = new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		PentaInput* newmonthinput2 = new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-
+-	this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-	this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+-void       Penta::MungsmtpParameterization(void){/*{{{*/
+-	/*Are we on the base? If not, return*/
+-	if(!IsOnBase()) return;
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12],TemperaturesLgm[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12],PrecipitationsLgm[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble TdiffTime,PfacTime;
+-	IssmDouble time,yts;
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-
+-	/*Recover present day temperature and precipitation*/
+-	Input*     input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input*     input3=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
+-	Input*     input4=inputs->GetInput(SurfaceforcingsPrecipitationsLgmEnum);        _assert_(input4);
+-	GaussPenta* gauss=new GaussPenta();
+-	for(int month=0;month<12;month++) {
+-		for(int iv=0;iv<NUMVERTICES;iv++) {
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-			input4->GetInputValue(&PrecipitationsLgm[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-	this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-	  ComputeMungsmTemperaturePrecipitation(TdiffTime,PfacTime,
+-					&PrecipitationsLgm[iv][0],&PrecipitationsPresentday[iv][0], 
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		PentaInput* newmonthinput1 = new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-	
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		PentaInput* newmonthinput2 = new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-	
+-	this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-	this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+-void       Penta::Delta18opdParameterization(void){/*{{{*/
+-	/*Are we on the base? If not, return*/
+-	if(!IsOnBase()) return;
+-
+-	int        i;
+-	IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-	IssmDouble TemperaturesPresentday[NUMVERTICES][12];
+-	IssmDouble PrecipitationsPresentday[NUMVERTICES][12];
+-	IssmDouble tmp[NUMVERTICES];
+-	IssmDouble Delta18oTime;
+-	IssmDouble dpermil;
+-	IssmDouble time,yts;
+-	this->parameters->FindParam(&time,TimeEnum);
+-	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-
+-	/*Get some pdd parameters*/
+- 	dpermil=matpar-> GetMaterialParameter(SurfaceforcingsDpermilEnum);
+-
+-	/*Recover present day temperature and precipitation*/
+-	Input*     input=inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input2);
+-	GaussPenta* gauss=new GaussPenta();
+-	for(int month=0;month<12;month++) {
+-		for(int iv=0;iv<NUMVERTICES;iv++) {
+-			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-		}
+-	}
+-
+-	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
+-
+-	/*Compute the temperature and precipitation*/
+-	for(int iv=0;iv<NUMVERTICES;iv++){
+-	  ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
+-					&PrecipitationsPresentday[iv][0], &TemperaturesPresentday[iv][0], 
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
+-	}
+-
+-	/*Update inputs*/ 
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-		PentaInput* newmonthinput1 = new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-		NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-
+-		for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-		PentaInput* newmonthinput2 = new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-		NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-	}
+-	NewTemperatureInput->Configure(this->parameters);
+-	NewPrecipitationInput->Configure(this->parameters);
+-
+-	this->inputs->AddInput(NewTemperatureInput);
+-	this->inputs->AddInput(NewPrecipitationInput);
+-
+-	this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-	this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+-
+-	/*clean-up*/
+-	delete gauss;
+-}
+-/*}}}*/
+ void       Penta::ElementResponse(IssmDouble* presponse,int response_enum){/*{{{*/
+ 
+ 	switch(response_enum){
+@@ -2225,103 +2020,6 @@
+ 
+ }
+ /*}}}*/
+-void       Penta::PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm){/*{{{*/
+-
+-   int        i;
+-   IssmDouble agd[NUMVERTICES];             // surface mass balance
+-   IssmDouble monthlytemperatures[NUMVERTICES][12],monthlyprec[NUMVERTICES][12];
+-   IssmDouble yearlytemperatures[NUMVERTICES]={0.};
+-   IssmDouble tmp[NUMVERTICES];
+-   IssmDouble h[NUMVERTICES],s[NUMVERTICES];
+-   IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
+-   IssmDouble PfacTime,TdiffTime,sealevTime;
+-   IssmDouble mavg=1./12.; //factor for monthly average
+-
+-   /*Get material parameters :*/
+-   rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+-   rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+-
+-  /*Get some pdd parameters*/
+-  desfac=matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
+-  s0p=matpar->GetMaterialParameter(SurfaceforcingsS0pEnum);
+-  s0t=matpar->GetMaterialParameter(SurfaceforcingsS0tEnum);
+-  rlaps=matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
+-  rlapslgm=matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
+-
+-   /*Recover monthly temperatures and precipitation*/
+-   Input*     input=inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
+-   Input*     input2=inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
+-   GaussPenta* gauss=new GaussPenta();
+-   IssmDouble time,yts;
+-   this->parameters->FindParam(&time,TimeEnum);
+-   this->parameters->FindParam(&yts,ConstantsYtsEnum);
+-   
+-   for(int month=0;month<12;month++) {
+-     for(int iv=0;iv<NUMVERTICES;iv++) {
+-       gauss->GaussVertex(iv);
+-       input->GetInputValue(&monthlytemperatures[iv][month],gauss,time+month/12.*yts);
+-       yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin 
+-       monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+-       input2->GetInputValue(&monthlyprec[iv][month],gauss,time+month/12.*yts);
+-     }
+-   } 
+-
+-  /*Recover Pfac, Tdiff and sealev at time t:
+-    This parameters are used to interpolate the temperature 
+-    and precipitaton between PD and LGM when ismungsm==1 */ 
+-  if (ismungsm==1){  
+-    this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-    this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
+-  }
+-  else {
+-    TdiffTime=0;
+-    sealevTime=0;  
+-  }
+-
+-  /*Recover info at the vertices: */
+-  GetInputListOnVertices(&h[0],ThicknessEnum);
+-  GetInputListOnVertices(&s[0],SurfaceEnum); 
+-
+-
+-   /*measure the surface mass balance*/
+-   for (int iv = 0; iv < NUMVERTICES; iv++){
+-     agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],  
+-				  pdds,pds, signorm, yts, h[iv], s[iv],
+-				  desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
+-				  rho_water,rho_ice);
+-   }
+-
+-   /*Update inputs*/    
+-   // TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-   // TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+-   // for (int imonth=0;imonth<12;imonth++) {
+-   //   for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlytemperatures[i][imonth];
+-   //   PentaInput* newmonthinput1 = new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+-   //   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+-   // 
+-   //   for(i=0;i<NUMVERTICES;i++) tmp[i]=monthlyprec[i][imonth];
+-   //   PentaInput* newmonthinput2 = new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+-   //   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+-   // }
+-   // NewTemperatureInput->Configure(this->parameters);
+-   // NewPrecipitationInput->Configure(this->parameters);
+-
+-
+-
+-   this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+-   this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-   // this->inputs->AddInput(NewTemperatureInput);
+-   // this->inputs->AddInput(NewPrecipitationInput);
+-   // //this->inputs->AddInput(new PentaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+-    this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+-    this->InputExtrude(TemperatureEnum,-1);
+-   // this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-   // this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
+-
+-   /*clean-up*/
+-   delete gauss;
+-}
+-/*}}}*/
+ void       Penta::PotentialUngrounding(Vector<IssmDouble>* potential_ungrounding){/*{{{*/
+ 
+ 	IssmDouble  h[NUMVERTICES],r[NUMVERTICES],gl[NUMVERTICES];
+Index: ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19237)
+@@ -76,7 +76,8 @@
+ void ElementHook::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+ 	int i;
+-	bool* hnodes_null=NULL; /*intermediary needed*/
++	bool* hnodesi_null=NULL; /*intermediary needed*/
++	bool  hnodes_null=true; /*this could be NULL on empty constructor*/
+ 	bool  hneighbors_null=true; /*don't deal with hneighbors, unless explicitely asked to*/
+ 
+ 	_assert_(this);
+@@ -84,10 +85,13 @@
+ 	/*preliminary, before marshall starts: */
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+ 		if(this->hneighbors)hneighbors_null=false;
+-		hnodes_null=xNew<bool>(numanalyses);
+-		for(i=0;i<numanalyses;i++){
+-			if(this->hnodes[i])hnodes_null[i]=false;
+-			else hnodes_null[i]=true;
++		if(this->hnodes){
++			hnodes_null=false;
++			hnodesi_null=xNew<bool>(numanalyses);
++			for(i=0;i<numanalyses;i++){
++				if(this->hnodes[i])hnodesi_null[i]=false;
++				else hnodesi_null[i]=true;
++			}
+ 		}
+ 	}
+ 
+@@ -95,31 +99,38 @@
+ 	MARSHALLING_ENUM(ElementHookEnum);
+ 	MARSHALLING(numanalyses);
+ 	MARSHALLING(hneighbors_null);
+-	MARSHALLING_DYNAMIC(hnodes_null,bool,numanalyses);
++	MARSHALLING(hnodes_null);
++	MARSHALLING_DYNAMIC(hnodesi_null,bool,numanalyses);
+ 
+ 	if(marshall_direction==MARSHALLING_BACKWARD){
+ 		
+-		this->hnodes      = new Hook*[numanalyses];
++		if (!hnodes_null)this->hnodes = new Hook*[numanalyses];
++		else this->hnodes=NULL;
+ 		this->hvertices   = new Hook();
+ 		this->hmaterial   = new Hook();
+ 		this->hmatpar     = new Hook();
+ 		if(!hneighbors_null)this->hneighbors  = new Hook();
++		else this->hneighbors=NULL;
+ 
+ 		/*Initialize hnodes: */
+-		for(int i=0;i<this->numanalyses;i++){
+-			if(!hnodes_null[i])this->hnodes[i]=new Hook();
+-			else this->hnodes[i]=NULL;
++		if (this->hnodes){
++			for(int i=0;i<this->numanalyses;i++){
++				if(!hnodesi_null[i])this->hnodes[i]=new Hook();
++				else this->hnodes[i]=NULL;
++			}
+ 		}
+ 	}
+ 
+-	for (i=0;i<numanalyses;i++) if(this->hnodes[i])this->hnodes[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if (this->hnodes){ 
++		for (i=0;i<numanalyses;i++) if(this->hnodes[i])this->hnodes[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	}
+ 	this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	if(this->hneighbors)this->hneighbors->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	/*Free ressources: */
+-	xDelete<bool>(hnodes_null);
++	xDelete<bool>(hnodesi_null);
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19237)
+@@ -58,9 +58,6 @@
+ 		void           ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
+ 		void           ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum);
+ 		ElementMatrix* CreateBasalMassMatrix(void);
+-		void           Delta18oParameterization(void);
+-		void           MungsmtpParameterization(void);
+-		void           Delta18opdParameterization(void);
+ 		void           ElementResponse(IssmDouble* presponse,int response_enum);
+ 		void           ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
+ 		int            FiniteElement(void);
+@@ -140,7 +137,6 @@
+ 		int            NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
+ 		int            NumberofNodesPressure(void);
+ 		int            NumberofNodesVelocity(void);
+-		void           PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm);
+ 		void           PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
+ 		int            PressureInterpolation();
+ 		void           ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19237)
+@@ -53,9 +53,6 @@
+ 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
+ 		void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
+-		void        Delta18oParameterization(void){_error_("not implemented yet");};
+-		void        MungsmtpParameterization(void){_error_("not implemented yet");};
+-		void        Delta18opdParameterization(void){_error_("not implemented yet");};
+ 		void        ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};
+ 		void        ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");};
+ 		void        FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");};
+@@ -132,7 +129,6 @@
+ 		void        NormalTop(IssmDouble* normal,IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		int         NumberofNodesPressure(void){_error_("not implemented yet");};
+ 		int         NumberofNodesVelocity(void){_error_("not implemented yet");};
+-		void        PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm){_error_("not implemented yet");};
+ 		void        PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");};
+ 		int         PressureInterpolation(void){_error_("not implemented yet");};
+ 		void        ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19237)
+@@ -53,9 +53,6 @@
+ 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
+ 		void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
+-		void        Delta18oParameterization(void){_error_("not implemented yet");};
+-		void        MungsmtpParameterization(void){_error_("not implemented yet");};
+-		void        Delta18opdParameterization(void){_error_("not implemented yet");};
+ 		IssmDouble  DragCoefficientAbsGradient(void){_error_("not implemented yet");};
+ 		void        ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};
+ 		void        ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
+@@ -138,7 +135,6 @@
+ 		void        NormalTop(IssmDouble* normal,IssmDouble* xyz_list);
+ 		int         NumberofNodesPressure(void);
+ 		int         NumberofNodesVelocity(void);
+-		void        PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm){_error_("not implemented yet");};
+ 		void        PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");};
+ 		int         PressureInterpolation(void);
+ 		void        ResetFSBasalBoundaryCondition(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19236)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19237)
+@@ -504,6 +504,267 @@
+ 
+ }
+ /*}}}*/
++void       Element::Delta18oParameterization(void){/*{{{*/
++
++	/*Are we on the base? If not, return*/
++	if(!IsOnBase()) return;
++
++	int        numvertices = this->GetNumberOfVertices();
++
++	int        i;
++	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
++	IssmDouble TemperaturesPresentday[numvertices][12],TemperaturesLgm[numvertices][12];
++	IssmDouble PrecipitationsPresentday[numvertices][12];
++	IssmDouble tmp[numvertices];
++	IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime;
++	IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime;
++	IssmDouble time,yts,finaltime,time_yr;
++
++	/*Recover parameters*/
++	this->parameters->FindParam(&time,TimeEnum);
++	this->parameters->FindParam(&yts,ConstantsYtsEnum);
++	this->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
++	time_yr=floor(time/yts)*yts;
++
++	/*Recover present day temperature and precipitation*/
++	Input* input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
++	Input* input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
++	Input* input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
++	/*loop over vertices: */
++	Gauss* gauss=this->NewGauss();
++	for(int month=0;month<12;month++){
++		for(int iv=0;iv<numvertices;iv++){
++			gauss->GaussVertex(iv);
++			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
++			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
++			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++		}
++	}
++
++	/*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/
++	this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime);
++	this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-(21000*yts)));
++	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
++	this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime);
++	this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-(21000*yts)));
++	this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time);
++
++	/*Compute the temperature and precipitation*/
++	for(int iv=0;iv<numvertices;iv++){
++		ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime,
++					Delta18oPresent, Delta18oLgm, Delta18oTime,
++					&PrecipitationsPresentday[iv][0],
++					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
++					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++	}
++
++	/*Update inputs*/
++	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	for (int imonth=0;imonth<12;imonth++) {
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++	}
++	NewTemperatureInput->Configure(this->parameters);
++	NewPrecipitationInput->Configure(this->parameters);
++
++	this->inputs->AddInput(NewTemperatureInput);
++	this->inputs->AddInput(NewPrecipitationInput);
++
++	switch(this->ObjectEnum()){
++		case TriaEnum: break;
++		case PentaEnum:
++		case TetraEnum:
++							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							break;
++		default: _error_("Not implemented yet");
++	}
++
++	/*clean-up*/
++	delete gauss;
++}
++/*}}}*/
++void       Element::MungsmtpParameterization(void){/*{{{*/
++	/*Are we on the base? If not, return*/
++	if(!IsOnBase()) return;
++
++	int        numvertices = this->GetNumberOfVertices();
++
++	int        i;
++	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
++	IssmDouble TemperaturesPresentday[numvertices][12],TemperaturesLgm[numvertices][12];
++	IssmDouble PrecipitationsPresentday[numvertices][12],PrecipitationsLgm[numvertices][12];
++	IssmDouble tmp[numvertices];
++	IssmDouble TdiffTime,PfacTime;
++	IssmDouble time,yts,time_yr;
++	this->parameters->FindParam(&time,TimeEnum);
++	this->parameters->FindParam(&yts,ConstantsYtsEnum);
++	time_yr=floor(time/yts)*yts;
++
++	/*Recover present day temperature and precipitation*/
++	Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
++	Input*     input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
++	Input*     input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
++	Input*     input4=this->inputs->GetInput(SurfaceforcingsPrecipitationsLgmEnum);        _assert_(input4);
++	/*loop over vertices: */
++	Gauss* gauss=this->NewGauss();
++	for(int month=0;month<12;month++) {
++		for(int iv=0;iv<numvertices;iv++) {
++			gauss->GaussVertex(iv);
++			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
++			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
++			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++			input4->GetInputValue(&PrecipitationsLgm[iv][month],gauss,month/12.*yts);
++		}
++	}
++
++	/*Recover interpolation parameters at time t*/
++	this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
++	this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
++
++	/*Compute the temperature and precipitation*/
++	for(int iv=0;iv<numvertices;iv++){
++		ComputeMungsmTemperaturePrecipitation(TdiffTime,PfacTime,
++					&PrecipitationsLgm[iv][0],&PrecipitationsPresentday[iv][0],
++					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
++					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++	}
++
++	/*Update inputs*/
++	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	for (int imonth=0;imonth<12;imonth++) {
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++	}
++	NewTemperatureInput->Configure(this->parameters);
++	NewPrecipitationInput->Configure(this->parameters);
++
++	this->inputs->AddInput(NewTemperatureInput);
++	this->inputs->AddInput(NewPrecipitationInput);
++
++	switch(this->ObjectEnum()){
++		case TriaEnum: break;
++		case PentaEnum:
++		case TetraEnum:
++							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							break;
++		default: _error_("Not implemented yet");
++	}
++
++	/*clean-up*/
++	delete gauss;
++}
++/*}}}*/
++void       Element::Delta18opdParameterization(void){/*{{{*/
++	/*Are we on the base? If not, return*/
++	if(!IsOnBase()) return;
++
++	int        numvertices = this->GetNumberOfVertices();
++
++	int        i;
++	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
++	IssmDouble TemperaturesPresentday[numvertices][12];
++	IssmDouble PrecipitationsPresentday[numvertices][12];
++	IssmDouble tmp[numvertices];
++	IssmDouble Delta18oTime;
++	IssmDouble dpermil;
++	IssmDouble time,yts,time_yr,month;
++	this->parameters->FindParam(&time,TimeEnum);
++	this->parameters->FindParam(&yts,ConstantsYtsEnum);
++	time_yr=floor(time/yts)*yts;
++
++	/*Get some pdd parameters*/
++	dpermil=this->matpar->GetMaterialParameter(SurfaceforcingsDpermilEnum);
++
++	/*Recover present day temperature and precipitation*/
++	Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
++	Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input2);
++	/*loop over vertices: */
++	Gauss* gauss=this->NewGauss();
++	for(int month=0;month<12;month++) {
++		for(int iv=0;iv<numvertices;iv++) {
++			gauss->GaussVertex(iv);
++			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
++			input2->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++		}
++	}
++
++	/*Recover interpolation parameters at time t*/
++	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
++
++	/*Compute the temperature and precipitation*/
++	for(int iv=0;iv<numvertices;iv++){
++		ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
++					&PrecipitationsPresentday[iv][0], &TemperaturesPresentday[iv][0],
++					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++	}
++
++	/*Update inputs*/
++	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	for (int imonth=0;imonth<12;imonth++) {
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		switch(this->ObjectEnum()){
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			default: _error_("Not implemented yet");
++		}
++	}
++	NewTemperatureInput->Configure(this->parameters);
++	NewPrecipitationInput->Configure(this->parameters);
++
++	this->inputs->AddInput(NewTemperatureInput);
++	this->inputs->AddInput(NewPrecipitationInput);
++
++	switch(this->ObjectEnum()){
++		case TriaEnum: break;
++		case PentaEnum:
++		case TetraEnum:
++							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							break;
++		default: _error_("Not implemented yet");
++	}
++
++	/*clean-up*/
++	delete gauss;
++}
++/*}}}*/
+ void       Element::Echo(void){/*{{{*/
+ 	_printf_(EnumToStringx(this->ObjectEnum())<<" element:\n");
+ 	_printf_("   id : "<<this->id <<"\n");
+@@ -1379,6 +1640,121 @@
+ 	return new ElementVector(nodes,this->GetNumberOfNodes(),this->parameters,approximation_enum);
+ }
+ /*}}}*/
++void       Element::PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm){/*{{{*/
++
++	int  numvertices = this->GetNumberOfVertices();
++
++	int        i;
++	IssmDouble agd[numvertices];             // surface mass balance
++	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
++	IssmDouble yearlytemperatures[numvertices]; memset(yearlytemperatures, 0., numvertices*sizeof(IssmDouble));
++	IssmDouble tmp[numvertices];
++	IssmDouble h[numvertices],s[numvertices];
++	IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
++	IssmDouble PfacTime,TdiffTime,sealevTime;
++	IssmDouble mavg=1./12.; //factor for monthly average
++
++	/*Get material parameters :*/
++	rho_water=this->matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	rho_ice=this->matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++	/*Get some pdd parameters*/
++	desfac=this->matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
++	s0p=this->matpar->GetMaterialParameter(SurfaceforcingsS0pEnum);
++	s0t=this->matpar->GetMaterialParameter(SurfaceforcingsS0tEnum);
++	rlaps=this->matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
++	rlapslgm=this->matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
++
++	/*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/
++	Input*     input=this->inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
++	Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
++	IssmDouble time,yts,time_yr;
++	this->parameters->FindParam(&time,TimeEnum);
++	this->parameters->FindParam(&yts,ConstantsYtsEnum);
++	time_yr=floor(time/yts)*yts;
++
++	/*loop over vertices: */
++	Gauss* gauss=this->NewGauss();
++	for(int month=0;month<12;month++) {
++		for(int iv=0;iv<numvertices;iv++) {
++			gauss->GaussVertex(iv);
++			input->GetInputValue(&monthlytemperatures[iv][month],gauss,time_yr+month/12.*yts);
++			yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin
++			monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
++			input2->GetInputValue(&monthlyprec[iv][month],gauss,time_yr+month/12.*yts);
++		}
++	}
++
++	/*Recover Pfac, Tdiff and sealev at time t:
++	 *     This parameters are used to interpolate the temperature
++	 *         and precipitaton between PD and LGM when ismungsm==1 */
++	if (ismungsm==1){
++		this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
++		this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
++	}
++	else {
++		TdiffTime=0;
++		sealevTime=0;
++	}
++
++	/*Recover info at the vertices: */
++	GetInputListOnVertices(&h[0],ThicknessEnum);
++	GetInputListOnVertices(&s[0],SurfaceEnum);
++
++	/*measure the surface mass balance*/
++	for (int iv = 0; iv<numvertices; iv++){
++		agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
++					pdds, pds, signorm, yts, h[iv], s[iv],
++					desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
++					rho_water,rho_ice);
++	}
++
++	/*Update inputs*/
++	// TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
++	// TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	// for (int imonth=0;imonth<12;imonth++) {
++	//   for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++	//   TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
++	//   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
++	//
++	//   for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++	//   TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
++	//   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
++	// }
++	// NewTemperatureInput->Configure(this->parameters);
++	// NewPrecipitationInput->Configure(this->parameters);
++
++	switch(this->ObjectEnum()){
++		case TriaEnum:  
++			this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++			break;
++		case PentaEnum: 
++			this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++			this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++			this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++			this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++			break;
++		case TetraEnum: 
++			this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++			this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++			this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++			this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++			break;
++		default: _error_("Not implemented yet");
++	}
++	// this->inputs->AddInput(NewTemperatureInput);
++	// this->inputs->AddInput(NewPrecipitationInput);
++	// this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
++
++	//this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++	// this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
++	// this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++
++	/*clean-up*/
++	delete gauss;
++}
++/*}}}*/
+ IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/
+ 	return this->matpar->PureIceEnthalpy(pressure);
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19237-19238.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19237-19238.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19237-19238.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Hook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19237)
++++ ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19238)
+@@ -121,6 +121,8 @@
+ /*}}}*/
+ void Hook::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD) reset();
++
+ 	MARSHALLING_ENUM(HookEnum);
+ 	MARSHALLING(num);
+ 	MARSHALLING_DYNAMIC(ids,int,num);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19238-19239.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19238-19239.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19238-19239.diff	(revision 20498)
@@ -0,0 +1,268 @@
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19238)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19239)
+@@ -58,24 +58,24 @@
+ 	else _error_("Wrong direction during the Marshall process");
+ 
+ 
+-#define MARSHALLING_DYNAMIC(FIELD,TYPE,SIZE) \
++#define MARSHALLING_DYNAMIC(FIELDD,TYPE,SIZE) \
+ 	\
+ 	{\
+ 		bool field_null=true;\
+-		if (FIELD)field_null=false;\
++		if (FIELDD)field_null=false;\
+ 		MARSHALLING(field_null);\
+ 		\
+ 		if(!field_null){\
+ 			if(marshall_direction==MARSHALLING_FORWARD){\
+-					memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
++					memcpy(*pmarshalled_data,FIELDD,SIZE*sizeof(TYPE));\
+ 					*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else if(marshall_direction==MARSHALLING_SIZE){\
+ 				*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else if(marshall_direction==MARSHALLING_BACKWARD){\
+-				FIELD=xNew<TYPE>(SIZE);\
+-				memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
++				FIELDD=xNew<TYPE>(SIZE);\
++				memcpy(FIELDD,*pmarshalled_data,SIZE*sizeof(TYPE));\
+ 				*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else _error_("Wrong direction during the Marshall process");\
+Index: ../trunk-jpl/src/c/classes/Profiler.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Profiler.cpp	(revision 19238)
++++ ../trunk-jpl/src/c/classes/Profiler.cpp	(revision 19239)
+@@ -73,17 +73,10 @@
+ 
+ 	MARSHALLING_ENUM(ProfilerEnum);
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARD){
+-		this->time=new Parameters();
+-		this->flops=new Parameters();
+-		this->memory=new Parameters();
+-	}
+-	
+ 	time->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	flops->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	memory->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+-
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19238)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19239)
+@@ -623,16 +623,18 @@
+ 
+ 	/*Create buffer to hold marshalled femmodel: */
+ 	this->Marshall(NULL,&femmodel_size,MARSHALLING_SIZE);
+-	femmodel_buffer=xNew<char>(femmodel_size); 
++	femmodel_buffer=xNew<char>(femmodel_size+1); 
++	femmodel_buffer_ini=femmodel_buffer;
++	std::cout << "Model size: " << femmodel_size << "\n";
++	std::cout << "Buffer: " << &femmodel_buffer << "\n";
+ 
+ 	/*Keep track of initial position of femmodel_buffer: */
+-	femmodel_buffer_ini=femmodel_buffer;
++	//std::cout << "Buffer_ini: " << femmodel_buffer_ini << "\n";
+ 	
+ 	/*Marshall:*/
+-	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_FORWARD);
++	this->Marshall(&femmodel_buffer_ini,NULL,MARSHALLING_FORWARD);
+ 
+-	/*Reset position of buffer: */
+-	femmodel_buffer=femmodel_buffer_ini;
++	std::cout << "Buffer_new: " << &femmodel_buffer << "\n";
+ 
+ 	/*write buffer: */
+ 	fwrite(femmodel_buffer,femmodel_size,sizeof(char),restartfid);
+@@ -661,7 +663,10 @@
+ 	/*Now, figure out whether this file actually exists!: */
+ 	restartfid=pfopen(restartfilename,"r",false);
+ 
+-	if(restartfid==NULL)return; //could not find the file, so no restart possible.
++	if(restartfid==NULL){
++		xDelete<char>(restartfilename);
++		return; //could not find the file, so no restart possible.
++	}
+ 
+ 	/*Figure out size of buffer to be read: */
+ 	fseek(restartfid, 0L, SEEK_END); 
+@@ -672,12 +677,15 @@
+ 	femmodel_buffer=xNew<char>(femmodel_size); 
+ 
+ 	/*Read buffer from file: */
+-	fread_return=fread(femmodel_buffer,femmodel_size,1,restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
++	fread_return=fread(femmodel_buffer,femmodel_size,sizeof(char),restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
+ 	femmodel_buffer_ini=femmodel_buffer; //keep track of the initial position, so as to free later.
+ 
+ 	/*Create new FemModel by demarshalling the buffer: */
+ 	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_BACKWARD);
+ 
++	/*Reset position of buffer: */
++	femmodel_buffer=femmodel_buffer_ini;
++
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+ 	
+@@ -689,8 +697,11 @@
+ /*}}}*/
+ void FemModel::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARD){
+-		delete profiler; profiler=new Profiler;
++	int       i;
++	int       analysis_type;
++
++	if(false && marshall_direction==MARSHALLING_BACKWARD){
++		delete profiler; profiler=new Profiler();
+ 		delete elements; elements=new Elements();
+ 		delete nodes; nodes=new Nodes();
+ 		delete vertices; vertices=new Vertices();
+@@ -702,22 +713,46 @@
+ 		xDelete<int>(analysis_type_list);
+ 	}
+ 
++	char ** ptemp=pmarshalled_data;
++
+ 	MARSHALLING_ENUM(FemModelEnum);
+ 
+ 	MARSHALLING(solution_type);
++	if(marshall_direction!=MARSHALLING_SIZE){
++	std::cout << "Buffer_2: " << pmarshalled_data << "\n";
++	std::cout << "Buffer_old: " << ptemp << "\n";
++	}
+ 	MARSHALLING(analysis_counter);
+-	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
++	MARSHALLING(nummodels);
++	MARSHALLING_DYNAMIC(analysis_type_list,int,nummodels);
+ 
+-	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++/*	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		//reset hooks for elements, loads and nodes:
++		elements->ResetHooks();
++		loads->ResetHooks();
++		materials->ResetHooks();
++
++		//do the post-processing of the datasets to get an FemModel that can actually run analyses:
++		for(i=0;i<nummodels;i++){
++			analysis_type=analysis_type_list[i];
++			SetCurrentConfiguration(analysis_type);
++			if(i==0) VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
++			SpcNodesx(nodes,constraints,parameters,analysis_type);
++			NodesDofx(nodes,parameters,analysis_type);
++			ConfigureObjectsx(elements,loads,nodes,vertices,materials,parameters);
++		}
++	}*/
++
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19238)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19239)
+@@ -89,34 +89,54 @@
+ void DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 	
+ 	vector<Object*>::iterator obj;
++	int obj_size=0;
+ 	int obj_enum;
+ 	int i;
+ 
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+-		numsorted=objects.size();
++		obj_size=objects.size();
+ 	}
++	else{
++		clear();
++	}
+ 
+ 	MARSHALLING_ENUM(DataSetEnum);
+ 	MARSHALLING(enum_type);
+ 	MARSHALLING(sorted);
+ 	MARSHALLING(presorted);
+ 	MARSHALLING(numsorted);
+-	MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
+-	MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+ 
+ 	/*Now branch according to direction of marshalling: */
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
++		if(!(this->sorted && numsorted>0 && this->id_offsets)){
++			sorted_ids=NULL;
++			id_offsets=NULL;
++		  }
++		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
++		MARSHALLING(obj_size);
++
+ 		/*Go through our objects, and marshall them into the buffer: */
+ 		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
+ 			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 		}
+ 	}
+ 	else{
++
++		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
++		if (!(this->sorted && numsorted>0)){
++		 sorted_ids=NULL;
++		 sorted_ids=NULL;
++		}
++
++		MARSHALLING(obj_size);
++
+ 		/*This is the heart of the demashalling method. We have a buffer coming
+ 		 in, and we are supposed to create a dataset out of it. No such thing
+ 		 as class orientation for buffers, we need to key off the enum of each
+ 		 object stored in the buffer. */
+-		for(i=0;i<this->numsorted;i++){
++		for(i=0;i<obj_size;i++){
+ 
+ 			/*Recover enum of object first: */
+ 			MARSHALLING_ENUM(obj_enum); 
+@@ -126,10 +146,11 @@
+ 			/*Giant case statement to spin-up the right object, and demarshall into it the information 
+ 			 *stored in the buffer: */
+ 			if(obj_enum==NodeEnum){
+-					Node* node=NULL;
+-					node=new Node();
+-					node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(node);
++				Node* node=NULL;
++				node=new Node();
++				node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(node);
++				break;
+ 			}
+ 			else if(obj_enum==VertexEnum){
+ 				Vertex* vertex=NULL;
+@@ -152,7 +173,7 @@
+ 				this->AddObject(intparam);
+ 				break;
+ 			}
+-			else _error_("could not recognize enum type: " << obj_enum); 
++			else _error_("could not recognize enum type: " << obj_enum << ": " << EnumToStringx(obj_enum) ); 
+ 		}
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19239-19240.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19239-19240.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19239-19240.diff	(revision 20498)
@@ -0,0 +1,246 @@
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19239)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19240)
+@@ -58,24 +58,24 @@
+ 	else _error_("Wrong direction during the Marshall process");
+ 
+ 
+-#define MARSHALLING_DYNAMIC(FIELDD,TYPE,SIZE) \
++#define MARSHALLING_DYNAMIC(FIELD,TYPE,SIZE) \
+ 	\
+ 	{\
+ 		bool field_null=true;\
+-		if (FIELDD)field_null=false;\
++		if (FIELD)field_null=false;\
+ 		MARSHALLING(field_null);\
+ 		\
+ 		if(!field_null){\
+ 			if(marshall_direction==MARSHALLING_FORWARD){\
+-					memcpy(*pmarshalled_data,FIELDD,SIZE*sizeof(TYPE));\
++					memcpy(*pmarshalled_data,FIELD,SIZE*sizeof(TYPE));\
+ 					*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else if(marshall_direction==MARSHALLING_SIZE){\
+ 				*pmarshalled_data_size+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else if(marshall_direction==MARSHALLING_BACKWARD){\
+-				FIELDD=xNew<TYPE>(SIZE);\
+-				memcpy(FIELDD,*pmarshalled_data,SIZE*sizeof(TYPE));\
++				FIELD=xNew<TYPE>(SIZE);\
++				memcpy(FIELD,*pmarshalled_data,SIZE*sizeof(TYPE));\
+ 				*pmarshalled_data+=SIZE*sizeof(TYPE);\
+ 			}\
+ 			else _error_("Wrong direction during the Marshall process");\
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19239)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19240)
+@@ -623,18 +623,16 @@
+ 
+ 	/*Create buffer to hold marshalled femmodel: */
+ 	this->Marshall(NULL,&femmodel_size,MARSHALLING_SIZE);
+-	femmodel_buffer=xNew<char>(femmodel_size+1); 
+-	femmodel_buffer_ini=femmodel_buffer;
+-	std::cout << "Model size: " << femmodel_size << "\n";
+-	std::cout << "Buffer: " << &femmodel_buffer << "\n";
++	femmodel_buffer=xNew<char>(femmodel_size); 
+ 
+ 	/*Keep track of initial position of femmodel_buffer: */
+-	//std::cout << "Buffer_ini: " << femmodel_buffer_ini << "\n";
++	femmodel_buffer_ini=femmodel_buffer;
+ 	
+ 	/*Marshall:*/
+-	this->Marshall(&femmodel_buffer_ini,NULL,MARSHALLING_FORWARD);
++	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_FORWARD);
+ 
+-	std::cout << "Buffer_new: " << &femmodel_buffer << "\n";
++	/*Reset position of buffer: */
++	femmodel_buffer=femmodel_buffer_ini;
+ 
+ 	/*write buffer: */
+ 	fwrite(femmodel_buffer,femmodel_size,sizeof(char),restartfid);
+@@ -663,10 +661,7 @@
+ 	/*Now, figure out whether this file actually exists!: */
+ 	restartfid=pfopen(restartfilename,"r",false);
+ 
+-	if(restartfid==NULL){
+-		xDelete<char>(restartfilename);
+-		return; //could not find the file, so no restart possible.
+-	}
++	if(restartfid==NULL)return; //could not find the file, so no restart possible.
+ 
+ 	/*Figure out size of buffer to be read: */
+ 	fseek(restartfid, 0L, SEEK_END); 
+@@ -677,15 +672,12 @@
+ 	femmodel_buffer=xNew<char>(femmodel_size); 
+ 
+ 	/*Read buffer from file: */
+-	fread_return=fread(femmodel_buffer,femmodel_size,sizeof(char),restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
++	fread_return=fread(femmodel_buffer,femmodel_size,1,restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
+ 	femmodel_buffer_ini=femmodel_buffer; //keep track of the initial position, so as to free later.
+ 
+ 	/*Create new FemModel by demarshalling the buffer: */
+ 	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_BACKWARD);
+ 
+-	/*Reset position of buffer: */
+-	femmodel_buffer=femmodel_buffer_ini;
+-
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+ 	
+@@ -697,11 +689,8 @@
+ /*}}}*/
+ void FemModel::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+-	int       i;
+-	int       analysis_type;
+-
+-	if(false && marshall_direction==MARSHALLING_BACKWARD){
+-		delete profiler; profiler=new Profiler();
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		delete profiler; profiler=new Profiler;
+ 		delete elements; elements=new Elements();
+ 		delete nodes; nodes=new Nodes();
+ 		delete vertices; vertices=new Vertices();
+@@ -713,46 +702,22 @@
+ 		xDelete<int>(analysis_type_list);
+ 	}
+ 
+-	char ** ptemp=pmarshalled_data;
+-
+ 	MARSHALLING_ENUM(FemModelEnum);
+ 
+ 	MARSHALLING(solution_type);
+-	if(marshall_direction!=MARSHALLING_SIZE){
+-	std::cout << "Buffer_2: " << pmarshalled_data << "\n";
+-	std::cout << "Buffer_old: " << ptemp << "\n";
+-	}
+ 	MARSHALLING(analysis_counter);
+-	MARSHALLING(nummodels);
+-	MARSHALLING_DYNAMIC(analysis_type_list,int,nummodels);
++	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
+ 
+-/*	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARD){
+-		//reset hooks for elements, loads and nodes:
+-		elements->ResetHooks();
+-		loads->ResetHooks();
+-		materials->ResetHooks();
+-
+-		//do the post-processing of the datasets to get an FemModel that can actually run analyses:
+-		for(i=0;i<nummodels;i++){
+-			analysis_type=analysis_type_list[i];
+-			SetCurrentConfiguration(analysis_type);
+-			if(i==0) VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
+-			SpcNodesx(nodes,constraints,parameters,analysis_type);
+-			NodesDofx(nodes,parameters,analysis_type);
+-			ConfigureObjectsx(elements,loads,nodes,vertices,materials,parameters);
+-		}
+-	}*/
+-
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19239)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19240)
+@@ -89,54 +89,34 @@
+ void DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 	
+ 	vector<Object*>::iterator obj;
+-	int obj_size=0;
+ 	int obj_enum;
+ 	int i;
+ 
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+-		obj_size=objects.size();
++		numsorted=objects.size();
+ 	}
+-	else{
+-		clear();
+-	}
+ 
+ 	MARSHALLING_ENUM(DataSetEnum);
+ 	MARSHALLING(enum_type);
+ 	MARSHALLING(sorted);
+ 	MARSHALLING(presorted);
+ 	MARSHALLING(numsorted);
++	MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++	MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+ 
+ 	/*Now branch according to direction of marshalling: */
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+-		if(!(this->sorted && numsorted>0 && this->id_offsets)){
+-			sorted_ids=NULL;
+-			id_offsets=NULL;
+-		  }
+-		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
+-		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+-		MARSHALLING(obj_size);
+-
+ 		/*Go through our objects, and marshall them into the buffer: */
+ 		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
+ 			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 		}
+ 	}
+ 	else{
+-
+-		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
+-		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+-		if (!(this->sorted && numsorted>0)){
+-		 sorted_ids=NULL;
+-		 sorted_ids=NULL;
+-		}
+-
+-		MARSHALLING(obj_size);
+-
+ 		/*This is the heart of the demashalling method. We have a buffer coming
+ 		 in, and we are supposed to create a dataset out of it. No such thing
+ 		 as class orientation for buffers, we need to key off the enum of each
+ 		 object stored in the buffer. */
+-		for(i=0;i<obj_size;i++){
++		for(i=0;i<this->numsorted;i++){
+ 
+ 			/*Recover enum of object first: */
+ 			MARSHALLING_ENUM(obj_enum); 
+@@ -146,11 +126,10 @@
+ 			/*Giant case statement to spin-up the right object, and demarshall into it the information 
+ 			 *stored in the buffer: */
+ 			if(obj_enum==NodeEnum){
+-				Node* node=NULL;
+-				node=new Node();
+-				node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-				this->AddObject(node);
+-				break;
++					Node* node=NULL;
++					node=new Node();
++					node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++					this->AddObject(node);
+ 			}
+ 			else if(obj_enum==VertexEnum){
+ 				Vertex* vertex=NULL;
+@@ -173,7 +152,7 @@
+ 				this->AddObject(intparam);
+ 				break;
+ 			}
+-			else _error_("could not recognize enum type: " << obj_enum << ": " << EnumToStringx(obj_enum) ); 
++			else _error_("could not recognize enum type: " << obj_enum); 
+ 		}
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19240-19241.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19240-19241.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19240-19241.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19240)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19241)
+@@ -1732,14 +1732,14 @@
+ 		case PentaEnum: 
+ 			this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 			this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-			this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-			this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++			this->InputExtrude(TemperatureEnum,-1);
++			this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+ 			break;
+ 		case TetraEnum: 
+ 			this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 			this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-			this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-			this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++			this->InputExtrude(TemperatureEnum,-1);
++			this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+ 			break;
+ 		default: _error_("Not implemented yet");
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19241-19242.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19241-19242.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19241-19242.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/scripts/ol.m
+===================================================================
+--- ../trunk-jpl/scripts/ol.m	(revision 19241)
++++ ../trunk-jpl/scripts/ol.m	(revision 19242)
+@@ -7,7 +7,7 @@
+ 	tline = fgets(fid);
+ 	if length(tline)>16,
+ 		if strcmpi(tline(1:16),'if perform(org,'''),
+-			disp(sprintf('%i: %s',count,tline(17:end-8)));
++			disp(sprintf('%i: %s',count,tline(17:end-4)));
+ 			count=count+1;
+ 		end
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19242-19243.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19242-19243.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19242-19243.diff	(revision 20498)
@@ -0,0 +1,517 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.m	(revision 19242)
++++ ../trunk-jpl/test/NightlyRun/test239.m	(revision 19243)
+@@ -1,71 +1,87 @@
+-%Test Name: SquareShelfTranForceNoInterp3d
+-md=triangle(model(),'../Exp/Square.exp',350000.);
++%Test Name: SquareShelfTranIspddIsdeltaO18pdInterpSSA2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'all','');
+ md=parameterize(md,'../Par/SquareShelf.par');
+-md=extrude(md,3,1.);
+-md=setflowequation(md,'HO','all');
+-md.cluster=generic('name',oshostname(),'np',3);
+ 
+-md.timestepping.time_step=1;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=4;
+-md.timestepping.interp_forcings=0;
++%md.verbose=verbose('all');
+ 
+-%Set up transient
+-smb=ones(md.mesh.numberofvertices,1)*3.6;
+-smb=[ smb smb*-1. ];
++% Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
+-md.transient.isthermal=0;
++% Add temperature, precipitation and delta18o needed to measure the surface mass balance
++%  creating delta18o
++load '../Data/delta18o.data'
++md.surfaceforcings.delta18o=delta18o;
+ 
++% creating Present day  temperatures
++% Same temperature over the all region:
++tmonth(1:12)=238.15+20.;
++for imonth=0:11
++    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    % Time for the last line:
++    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% creating initialization and spc temperatures initialization and
++% spc
++md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++
++md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++
++% creating precipitation
++for imonth=0:11
++    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    % Time for the last line:
++    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% time steps and resolution
++md.timestepping.time_step=0.5;
++md.settings.output_frequency=1;
++md.timestepping.final_time=2;
++
++% 
++md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
+-field_tolerances={...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+-	(md.results.TransientSolution(1).Vz),...
+ 	(md.results.TransientSolution(1).Vel),...
+ 	(md.results.TransientSolution(1).Pressure),...
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+-	(md.results.TransientSolution(2).Vz),...
+ 	(md.results.TransientSolution(2).Vel),...
+ 	(md.results.TransientSolution(2).Pressure),...
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+-	(md.results.TransientSolution(3).Vz),...
+ 	(md.results.TransientSolution(3).Vel),...
+ 	(md.results.TransientSolution(3).Pressure),...
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(4).Vx),...
+-	(md.results.TransientSolution(4).Vy),...
+-	(md.results.TransientSolution(4).Vz),...
+-	(md.results.TransientSolution(4).Vel),...
+-	(md.results.TransientSolution(4).Pressure),...
+-	(md.results.TransientSolution(4).Base),...
+-	(md.results.TransientSolution(4).Surface),...
+-	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19242)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19243)
+@@ -1,4 +1,4 @@
+-%Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d
++%Test Name: SquareShelfTranIspddIsdeltaO18pdNoInterpSSA2d
+ md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'all','');
+ md=parameterize(md,'../Par/SquareShelf.par');
+@@ -39,9 +39,10 @@
+ end
+ 
+ % time steps and resolution
+-md.timestepping.time_step=20;
++md.timestepping.time_step=0.5;
+ md.settings.output_frequency=1;
+-md.timestepping.final_time=60;
++md.timestepping.final_time=2;
++md.timestepping.interp_forcings=0;
+ 
+ % 
+ md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+@@ -50,10 +51,12 @@
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test241.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test241.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test241.m	(revision 19243)
+@@ -0,0 +1,65 @@
++%Test Name: SquareShelfTranForceNoInterp2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',3);
++
++md.timestepping.time_step=1.;
++md.settings.output_frequency=1;
++md.timestepping.final_time=4.;
++md.timestepping.interp_forcings=0;
++
++%Set up transient
++smb=ones(md.mesh.numberofvertices,1)*3.6;
++smb=[ smb smb*-1. ];
++
++md.surfaceforcings.mass_balance=smb;
++md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.transient.isthermal=0;
++
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).Vx),...
++	(md.results.TransientSolution(4).Vy),...
++	(md.results.TransientSolution(4).Vel),...
++	(md.results.TransientSolution(4).Pressure),...
++	(md.results.TransientSolution(4).Base),...
++	(md.results.TransientSolution(4).Surface),...
++	(md.results.TransientSolution(4).Thickness),...
++	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	};
+Index: ../trunk-jpl/test/NightlyRun/test242.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test242.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test242.m	(revision 19243)
+@@ -0,0 +1,71 @@
++%Test Name: SquareShelfTranForceNoInterp3d
++md=triangle(model(),'../Exp/Square.exp',350000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=extrude(md,3,1.);
++md=setflowequation(md,'HO','all');
++md.cluster=generic('name',oshostname(),'np',3);
++
++md.timestepping.time_step=1;
++md.settings.output_frequency=1;
++md.timestepping.final_time=4;
++md.timestepping.interp_forcings=0;
++
++%Set up transient
++smb=ones(md.mesh.numberofvertices,1)*3.6;
++smb=[ smb smb*-1. ];
++
++md.surfaceforcings.mass_balance=smb;
++md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.transient.isthermal=0;
++
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
++field_tolerances={...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vz),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vz),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vz),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).Vx),...
++	(md.results.TransientSolution(4).Vy),...
++	(md.results.TransientSolution(4).Vz),...
++	(md.results.TransientSolution(4).Vel),...
++	(md.results.TransientSolution(4).Pressure),...
++	(md.results.TransientSolution(4).Base),...
++	(md.results.TransientSolution(4).Surface),...
++	(md.results.TransientSolution(4).Thickness),...
++	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	};
+Index: ../trunk-jpl/test/NightlyRun/test236.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.m	(revision 19242)
++++ ../trunk-jpl/test/NightlyRun/test236.m	(revision 19243)
+@@ -69,10 +69,12 @@
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
++	   'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
++	   'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 19242)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 19243)
+@@ -74,13 +74,13 @@
+ md=solve(md,TransientSolutionEnum);
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1', ...
+-						'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', ...
+-						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
++						'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
++						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
+ field_tolerances={...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,...
+-	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8};
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
++	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test238.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.m	(revision 19242)
++++ ../trunk-jpl/test/NightlyRun/test238.m	(revision 19243)
+@@ -1,34 +1,61 @@
+-%Test Name: SquareShelfTranForceNoInterp2d
++%Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d
+ md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'all','');
+ md=parameterize(md,'../Par/SquareShelf.par');
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',3);
+ 
+-md.timestepping.time_step=1.;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=4.;
+-md.timestepping.interp_forcings=0;
++%md.verbose=verbose('all');
+ 
+-%Set up transient
+-smb=ones(md.mesh.numberofvertices,1)*3.6;
+-smb=[ smb smb*-1. ];
++% Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
+-md.transient.isthermal=0;
++% Add temperature, precipitation and delta18o needed to measure the surface mass balance
++%  creating delta18o
++load '../Data/delta18o.data'
++md.surfaceforcings.delta18o=delta18o;
+ 
++% creating Present day  temperatures
++% Same temperature over the all region:
++tmonth(1:12)=238.15+20.;
++for imonth=0:11
++    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    % Time for the last line:
++    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% creating initialization and spc temperatures initialization and
++% spc
++md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++
++md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++
++% creating precipitation
++for imonth=0:11
++    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    % Time for the last line:
++    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++end
++
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
++
++% 
++md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
+-field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -37,6 +64,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+@@ -45,6 +73,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+@@ -53,13 +82,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+ 	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
+-	(md.results.TransientSolution(4).Vx),...
+-	(md.results.TransientSolution(4).Vy),...
+-	(md.results.TransientSolution(4).Vel),...
+-	(md.results.TransientSolution(4).Pressure),...
+-	(md.results.TransientSolution(4).Base),...
+-	(md.results.TransientSolution(4).Surface),...
+-	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/Archives/Archive241.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive241.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/test/Archives/Archive238.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive242.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive242.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/test/Archives/Archive239.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19243-19244.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19243-19244.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19243-19244.diff	(revision 20498)
@@ -0,0 +1,894 @@
+Index: ../trunk-jpl/src/m/mesh/planet/sphere_tri.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/sphere_tri.m	(revision 19243)
++++ ../trunk-jpl/src/m/mesh/planet/sphere_tri.m	(revision 19244)
+@@ -1,200 +0,0 @@
+-function [FV] = sphere_tri(shape,maxlevel,r,winding)
+-
+-% sphere_tri - generate a triangle mesh approximating a sphere
+-% 
+-% Usage: FV = sphere_tri(shape,Nrecurse,r,winding)
+-% 
+-%   shape is a string, either of the following:
+-%   'ico'   starts with icosahedron (most even, default)
+-%   'oct'   starts with octahedron
+-%   'tetra' starts with tetrahedron (least even)
+-%
+-%   Nrecurse is int >= 0, setting the recursions (default 0)
+-%
+-%   r is the radius of the sphere (default 1)
+-%
+-%   winding is 0 for clockwise, 1 for counterclockwise (default 0).  The
+-%   matlab patch command gives outward surface normals for clockwise
+-%   order of vertices in the faces (viewed from outside the surface).
+-%
+-%   FV has fields FV.vertices and FV.faces.  The vertices 
+-%   are listed in clockwise order in FV.faces, as viewed 
+-%   from the outside in a RHS coordinate system.
+-% 
+-% The function uses recursive subdivision.  The first
+-% approximation is an platonic solid, either an  icosahedron,
+-% octahedron or a tetrahedron.  Each level of refinement 
+-% subdivides each triangle face by a factor of 4 (see also 
+-% mesh_refine).  At each refinement, the vertices are 
+-% projected to the sphere surface (see sphere_project).
+-% 
+-% A recursion level of 3 or 4 is a good sphere surface, if
+-% gouraud shading is used for rendering.
+-% 
+-% The returned struct can be used in the patch command, eg:
+-% 
+-% % create and plot, vertices: [2562x3] and faces: [5120x3]
+-% FV = sphere_tri('ico',4,1);
+-% lighting phong; shading interp; figure;
+-% patch('vertices',FV.vertices,'faces',FV.faces,...
+-%       'facecolor',[1 0 0],'edgecolor',[.2 .2 .6]);
+-% axis off; camlight infinite; camproj('perspective');
+-% 
+-% See also: mesh_refine, sphere_project
+-%
+-
+-% $Revision: 1.2 $ $Date: 2005/07/20 23:07:03 $
+-
+-% Licence:  GNU GPL, no implied or express warranties
+-% Jon Leech (leech @ cs.unc.edu) 3/24/89
+-% icosahedral code added by Jim Buddenhagen (jb1556@daditz.sbc.com) 5/93
+-% 06/2002, adapted from c to matlab by Darren.Weber_at_radiology.ucsf.edu
+-% 05/2004, reorder of the faces for the 'ico' surface so they are indeed
+-% clockwise!  Now the surface normals are directed outward.  Also reset the
+-% default recursions to zero, so we can get out just the platonic solids.
+-%
+-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-
+-eegversion = '$Revision: 1.2 $';
+-fprintf('SPHERE_TRI [v %s]\n',eegversion(11:15)); tic
+-
+-if ~exist('shape','var') || isempty(shape),
+-    shape = 'ico';
+-end
+-fprintf('...creating sphere tesselation based on %s\n',shape);
+-
+-% default maximum subdivision level
+-if ~exist('maxlevel','var') || isempty(maxlevel) || maxlevel < 0,
+-    maxlevel = 0;
+-end
+-
+-% default radius
+-if ~exist('r','var') || isempty(r),
+-    r = 1;
+-end
+-
+-if ~exist('winding','var') || isempty(winding),
+-    winding = 0;
+-end
+-
+-% -----------------
+-% define the starting shapes
+-
+-shape = lower(shape);
+-
+-switch shape,
+-case 'tetra',
+-
+-    % Vertices of a tetrahedron
+-    sqrt_3 = 0.5773502692;
+-
+-    tetra.v = [  sqrt_3,  sqrt_3,  sqrt_3 ;   % +X, +Y, +Z  - PPP
+-                -sqrt_3, -sqrt_3,  sqrt_3 ;   % -X, -Y, +Z  - MMP
+-                -sqrt_3,  sqrt_3, -sqrt_3 ;   % -X, +Y, -Z  - MPM
+-                 sqrt_3, -sqrt_3, -sqrt_3 ];  % +X, -Y, -Z  - PMM
+-
+-    % Structure describing a tetrahedron
+-    tetra.f = [ 1, 2, 3;
+-                1, 4, 2;
+-                3, 2, 4;
+-                4, 1, 3 ];
+-
+-    FV.vertices = tetra.v;
+-    FV.faces    = tetra.f;
+-
+-case 'oct',
+-
+-    % Six equidistant points lying on the unit sphere
+-    oct.v = [  1,  0,  0 ;  %  X
+-              -1,  0,  0 ; 	% -X
+-               0,  1,  0 ;  %  Y
+-               0, -1,  0 ; 	% -Y
+-               0,  0,  1 ; 	%  Z
+-               0,  0, -1 ];	% -Z
+-
+-    % Join vertices to create a unit octahedron
+-    oct.f = [ 1 5 3 ;    %  X  Z  Y  -  First the top half
+-              3 5 2 ;    %  Y  Z -X
+-              2 5 4 ;    % -X  Z -Y
+-              4 5 1 ;    % -Y  Z  X
+-              1 3 6 ;    %  X  Y -Z  -  Now the bottom half
+-              3 2 6 ;    %  Y  Z -Z
+-              2 4 6 ;    % -X  Z -Z
+-              4 1 6 ];   % -Y  Z -Z
+-
+-    FV.vertices = oct.v;
+-    FV.faces    = oct.f;
+-
+-case 'ico',
+-
+-    % Twelve vertices of icosahedron on unit sphere
+-    tau = 0.8506508084; % t=(1+sqrt(5))/2, tau=t/sqrt(1+t^2)
+-    one = 0.5257311121; % one=1/sqrt(1+t^2) , unit sphere
+-
+-    ico.v( 1,:) = [  tau,  one,    0 ]; % ZA
+-    ico.v( 2,:) = [ -tau,  one,    0 ]; % ZB
+-    ico.v( 3,:) = [ -tau, -one,    0 ]; % ZC
+-    ico.v( 4,:) = [  tau, -one,    0 ]; % ZD
+-    ico.v( 5,:) = [  one,   0 ,  tau ]; % YA
+-    ico.v( 6,:) = [  one,   0 , -tau ]; % YB
+-    ico.v( 7,:) = [ -one,   0 , -tau ]; % YC
+-    ico.v( 8,:) = [ -one,   0 ,  tau ]; % YD
+-    ico.v( 9,:) = [   0 ,  tau,  one ]; % XA
+-    ico.v(10,:) = [   0 , -tau,  one ]; % XB
+-    ico.v(11,:) = [   0 , -tau, -one ]; % XC
+-    ico.v(12,:) = [   0 ,  tau, -one ]; % XD
+-
+-    % Structure for unit icosahedron
+-    ico.f = [  5,  8,  9 ;
+-               5, 10,  8 ;
+-               6, 12,  7 ;
+-               6,  7, 11 ;
+-               1,  4,  5 ;
+-               1,  6,  4 ;
+-               3,  2,  8 ;
+-               3,  7,  2 ;
+-               9, 12,  1 ;
+-               9,  2, 12 ;
+-              10,  4, 11 ;
+-              10, 11,  3 ;
+-               9,  1,  5 ;
+-              12,  6,  1 ;
+-               5,  4, 10 ;
+-               6, 11,  4 ;
+-               8,  2,  9 ;
+-               7, 12,  2 ;
+-               8, 10,  3 ;
+-               7,  3, 11 ];
+-
+-    FV.vertices = ico.v;
+-    FV.faces    = ico.f;
+-end
+-
+-% -----------------
+-% refine the starting shapes with subdivisions
+-if maxlevel,
+-
+-    % Subdivide each starting triangle (maxlevel) times
+-    for level = 1:maxlevel,
+-
+-        % Subdivide each triangle and normalize the new points thus
+-        % generated to lie on the surface of a sphere radius r.
+-        FV = mesh_refine_tri4(FV);
+-        FV.vertices = sphere_project(FV.vertices,r);
+-
+-        % An alternative might be to define a min distance
+-        % between vertices and recurse or use fminsearch
+-
+-    end
+-end
+-
+-if winding,
+-    fprintf('...returning counterclockwise vertex order (viewed from outside)\n');
+-    FV.faces = FV.faces(:,[1 3 2]);
+-else
+-    fprintf('...returning clockwise vertex order (viewed from outside)\n');
+-end
+-
+-t=toc; fprintf('...done (%6.2f sec)\n\n',t);
+-
+-return
+Index: ../trunk-jpl/src/m/mesh/planet/mesh_refine_tri4.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/mesh_refine_tri4.m	(revision 19243)
++++ ../trunk-jpl/src/m/mesh/planet/mesh_refine_tri4.m	(revision 19244)
+@@ -1,143 +0,0 @@
+-function [ FV ] = mesh_refine_tri4(FV)
+-
+-% mesh_refine_tri4 - creates 4 triangle from each triangle of a mesh
+-%
+-% [ FV ] = mesh_refine_tri4( FV )
+-%
+-% FV.vertices   - mesh vertices (Nx3 matrix)
+-% FV.faces      - faces with indices into 3 rows
+-%                 of FV.vertices (Mx3 matrix)
+-% 
+-% For each face, 3 new vertices are created at the 
+-% triangle edge midpoints.  Each face is divided into 4
+-% faces and returned in FV.
+-%
+-%        B
+-%       /\
+-%      /  \
+-%    a/____\b       Construct new triangles
+-%    /\    /\       [A,a,c]
+-%   /  \  /  \      [a,B,b]
+-%  /____\/____\     [c,b,C]
+-% A	     c	   C    [a,b,c]
+-% 
+-% It is assumed that the vertices are listed in clockwise order in
+-% FV.faces (A,B,C above), as viewed from the outside in a RHS coordinate
+-% system.
+-% 
+-% See also: mesh_refine, sphere_tri, sphere_project
+-% 
+-
+-% ---this method is not implemented, but the idea here remains...
+-% This can be done until some minimal distance (D) of the mean 
+-% distance between vertices of all triangles is achieved.  If
+-% no D argument is given, the function refines the mesh once.
+-% Alternatively, it could be done until some minimum mean 
+-% area of faces is achieved.  As is, it just refines once.
+-
+-% $Revision: 1.1 $ $Date: 2004/11/12 01:32:35 $
+-
+-% Licence:  GNU GPL, no implied or express warranties
+-% History:  05/2002, Darren.Weber_at_radiology.ucsf.edu, created
+-%
+-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-
+-tic;
+-fprintf('...refining mesh (tri4)...')
+-
+-% NOTE
+-% The centroid is located one third of the way from each vertex to 
+-% the midpoint of the opposite side. Each median divides the triangle 
+-% into two equal areas; all the medians together divide it into six 
+-% equal parts, and the lines from the median point to the vertices 
+-% divide the whole into three equivalent triangles.
+-
+-% Each input triangle with vertices labelled [A,B,C] as shown
+-% below will be turned into four new triangles:
+-%
+-% Make new midpoints
+-% a = (A+B)/2
+-% b = (B+C)/2
+-% c = (C+A)/2
+-%
+-%        B
+-%       /\
+-%      /  \
+-%    a/____\b       Construct new triangles
+-%    /\    /\       [A,a,c]
+-%   /  \  /  \      [a,B,b]
+-%  /____\/____\     [c,b,C]
+-% A	     c	   C    [a,b,c]
+-%
+-
+-% Initialise a new vertices and faces matrix
+-Nvert = size(FV.vertices,1);
+-Nface = size(FV.faces,1);
+-V2 = zeros(Nface*3,3);
+-F2 = zeros(Nface*4,3);
+-
+-for f = 1:Nface,
+-
+-    % Get the triangle vertex indices
+-    NA = FV.faces(f,1);
+-    NB = FV.faces(f,2);
+-    NC = FV.faces(f,3);
+-
+-    % Get the triangle vertex coordinates
+-    A = FV.vertices(NA,:);
+-    B = FV.vertices(NB,:);
+-    C = FV.vertices(NC,:);
+-
+-    % Now find the midpoints between vertices
+-    a = (A + B) ./ 2;
+-    b = (B + C) ./ 2;
+-    c = (C + A) ./ 2;
+-
+-    % Find the length of each median
+-    %A2blen = sqrt ( sum( (A - b).^2, 2 ) );
+-    %B2clen = sqrt ( sum( (B - c).^2, 2 ) );
+-    %C2alen = sqrt ( sum( (C - a).^2, 2 ) );
+-
+-    % Store the midpoint vertices, while
+-    % checking if midpoint vertex already exists
+-    [FV, Na] = mesh_find_vertex(FV,a);
+-    [FV, Nb] = mesh_find_vertex(FV,b);
+-    [FV, Nc] = mesh_find_vertex(FV,c);
+-
+-    % Create new faces with orig vertices plus midpoints
+-    F2(f*4-3,:) = [ NA, Na, Nc ];
+-    F2(f*4-2,:) = [ Na, NB, Nb ];
+-    F2(f*4-1,:) = [ Nc, Nb, NC ];
+-    F2(f*4-0,:) = [ Na, Nb, Nc ];
+-
+-end
+-
+-% Replace the faces matrix
+-FV.faces = F2;
+-
+-t=toc; fprintf('done (%5.2f sec)\n',t);
+-
+-return
+-
+-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-function [FV, N] = mesh_find_vertex(FV,vertex)
+-
+-    Vn = size(FV.vertices,1);
+-    Va = repmat(vertex,Vn,1);
+-    Vexist = find( FV.vertices(:,1) == Va(:,1) & ...
+-                   FV.vertices(:,2) == Va(:,2) & ...
+-                   FV.vertices(:,3) == Va(:,3) );
+-    if Vexist,
+-        if size(Vexist) == [1,1],
+-            N = Vexist;
+-        else,
+-            msg = sprintf('replicated vertices');
+-            error(msg);
+-        end
+-    else
+-        FV.vertices(end+1,:) = vertex;
+-        N = size(FV.vertices,1);
+-    end
+-
+-return
+Index: ../trunk-jpl/src/m/mesh/planet/sphere_project.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/sphere_project.m	(revision 19243)
++++ ../trunk-jpl/src/m/mesh/planet/sphere_project.m	(revision 19244)
+@@ -1,65 +0,0 @@
+-function V = sphere_project(v,r,c)
+-
+-% sphere_project - project point X,Y,Z to the surface of sphere radius r
+-% 
+-% V = sphere_project(v,r,c)
+-% 
+-% Cartesian inputs:
+-% v is the vertex matrix, Nx3 (XYZ)
+-% r is the sphere radius, 1x1 (default 1)
+-% c is the sphere centroid, 1x3 (default 0,0,0)
+-%
+-% XYZ are converted to spherical coordinates and their radius is
+-% adjusted according to r, from c toward XYZ (defined with theta,phi)
+-% 
+-% V is returned as Cartesian 3D coordinates
+-% 
+-
+-% $Revision: 1.1 $ $Date: 2004/11/12 01:32:36 $
+-
+-% Licence:  GNU GPL, no implied or express warranties
+-% History:  06/2002, Darren.Weber_at_radiology.ucsf.edu, created
+-%
+-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-
+-if ~exist('v','var'),
+-    msg = sprintf('SPHERE_PROJECT: No input vertices (X,Y,Z)\n');
+-    error(msg);
+-end
+-
+-X = v(:,1);
+-Y = v(:,2);
+-Z = v(:,3);
+-
+-if ~exist('c','var'),
+-    xo = 0;
+-    yo = 0;
+-    zo = 0;
+-else
+-    xo = c(1);
+-    yo = c(2);
+-    zo = c(3);
+-end
+-
+-if ~exist('r','var'), r = 1; end
+-
+-% alternate method is to use unit vector of V
+-% [ n = 'magnitude(V)'; unitV = V ./ n; ]
+-% to change the radius, multiply the unitV
+-% by the radius required.  This avoids the
+-% use of arctan functions, which have branches.
+-
+-% Convert Cartesian X,Y,Z to spherical (radians)
+-theta = atan2( (Y-yo), (X-xo) );
+-phi   = atan2( sqrt( (X-xo).^2 + (Y-yo).^2 ), (Z-zo) );
+-% do not calc: r = sqrt( (X-xo).^2 + (Y-yo).^2 + (Z-zo).^2);
+-
+-%   Recalculate X,Y,Z for constant r, given theta & phi.
+-R = ones(size(phi)) * r;
+-x = R .* sin(phi) .* cos(theta);
+-y = R .* sin(phi) .* sin(theta);
+-z = R .* cos(phi);
+-
+-V = [x y z];
+-
+-return
+Index: ../trunk-jpl/src/m/mesh/planet/planettrimesh.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/planettrimesh.m	(revision 19243)
++++ ../trunk-jpl/src/m/mesh/planet/planettrimesh.m	(revision 19244)
+@@ -1,19 +0,0 @@
+-function md=planettrimesh(md,shape,radius,refinement)
+-%PLANETTRIMESH: build 2d shell mesh
+-%
+-% Usage: md=planettrimesh(md,shape,radius,refinement)
+-%
+-
+-results = sphere_tri(shape,refinement,radius);
+-md.mesh=meshplanet(); %???
+-md.mesh.x=results.vertices(:,1);
+-md.mesh.y=results.vertices(:,2);
+-md.mesh.z=results.vertices(:,3);
+-md.mesh.elements=results.faces;
+-
+-md.mesh.r=sqrt(md.mesh.x.^2+md.mesh.y.^2+md.mesh.z.^2);
+-md.mesh.theta=acos(md.mesh.z./md.mesh.r);
+-md.mesh.phi=atan2(md.mesh.y,md.mesh.x);
+-
+-md.mesh.numberofvertices=length(md.mesh.x);
+-md.mesh.numberofelements=size(md.mesh.elements,1);
+Index: ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_tri.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_tri.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_tri.m	(revision 19244)
+@@ -0,0 +1,200 @@
++function [FV] = sphere_tri(shape,maxlevel,r,winding)
++
++% sphere_tri - generate a triangle mesh approximating a sphere
++% 
++% Usage: FV = sphere_tri(shape,Nrecurse,r,winding)
++% 
++%   shape is a string, either of the following:
++%   'ico'   starts with icosahedron (most even, default)
++%   'oct'   starts with octahedron
++%   'tetra' starts with tetrahedron (least even)
++%
++%   Nrecurse is int >= 0, setting the recursions (default 0)
++%
++%   r is the radius of the sphere (default 1)
++%
++%   winding is 0 for clockwise, 1 for counterclockwise (default 0).  The
++%   matlab patch command gives outward surface normals for clockwise
++%   order of vertices in the faces (viewed from outside the surface).
++%
++%   FV has fields FV.vertices and FV.faces.  The vertices 
++%   are listed in clockwise order in FV.faces, as viewed 
++%   from the outside in a RHS coordinate system.
++% 
++% The function uses recursive subdivision.  The first
++% approximation is an platonic solid, either an  icosahedron,
++% octahedron or a tetrahedron.  Each level of refinement 
++% subdivides each triangle face by a factor of 4 (see also 
++% mesh_refine).  At each refinement, the vertices are 
++% projected to the sphere surface (see sphere_project).
++% 
++% A recursion level of 3 or 4 is a good sphere surface, if
++% gouraud shading is used for rendering.
++% 
++% The returned struct can be used in the patch command, eg:
++% 
++% % create and plot, vertices: [2562x3] and faces: [5120x3]
++% FV = sphere_tri('ico',4,1);
++% lighting phong; shading interp; figure;
++% patch('vertices',FV.vertices,'faces',FV.faces,...
++%       'facecolor',[1 0 0],'edgecolor',[.2 .2 .6]);
++% axis off; camlight infinite; camproj('perspective');
++% 
++% See also: mesh_refine, sphere_project
++%
++
++% $Revision: 1.2 $ $Date: 2005/07/20 23:07:03 $
++
++% Licence:  GNU GPL, no implied or express warranties
++% Jon Leech (leech @ cs.unc.edu) 3/24/89
++% icosahedral code added by Jim Buddenhagen (jb1556@daditz.sbc.com) 5/93
++% 06/2002, adapted from c to matlab by Darren.Weber_at_radiology.ucsf.edu
++% 05/2004, reorder of the faces for the 'ico' surface so they are indeed
++% clockwise!  Now the surface normals are directed outward.  Also reset the
++% default recursions to zero, so we can get out just the platonic solids.
++%
++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
++
++eegversion = '$Revision: 1.2 $';
++fprintf('SPHERE_TRI [v %s]\n',eegversion(11:15)); tic
++
++if ~exist('shape','var') || isempty(shape),
++    shape = 'ico';
++end
++fprintf('...creating sphere tesselation based on %s\n',shape);
++
++% default maximum subdivision level
++if ~exist('maxlevel','var') || isempty(maxlevel) || maxlevel < 0,
++    maxlevel = 0;
++end
++
++% default radius
++if ~exist('r','var') || isempty(r),
++    r = 1;
++end
++
++if ~exist('winding','var') || isempty(winding),
++    winding = 0;
++end
++
++% -----------------
++% define the starting shapes
++
++shape = lower(shape);
++
++switch shape,
++case 'tetra',
++
++    % Vertices of a tetrahedron
++    sqrt_3 = 0.5773502692;
++
++    tetra.v = [  sqrt_3,  sqrt_3,  sqrt_3 ;   % +X, +Y, +Z  - PPP
++                -sqrt_3, -sqrt_3,  sqrt_3 ;   % -X, -Y, +Z  - MMP
++                -sqrt_3,  sqrt_3, -sqrt_3 ;   % -X, +Y, -Z  - MPM
++                 sqrt_3, -sqrt_3, -sqrt_3 ];  % +X, -Y, -Z  - PMM
++
++    % Structure describing a tetrahedron
++    tetra.f = [ 1, 2, 3;
++                1, 4, 2;
++                3, 2, 4;
++                4, 1, 3 ];
++
++    FV.vertices = tetra.v;
++    FV.faces    = tetra.f;
++
++case 'oct',
++
++    % Six equidistant points lying on the unit sphere
++    oct.v = [  1,  0,  0 ;  %  X
++              -1,  0,  0 ; 	% -X
++               0,  1,  0 ;  %  Y
++               0, -1,  0 ; 	% -Y
++               0,  0,  1 ; 	%  Z
++               0,  0, -1 ];	% -Z
++
++    % Join vertices to create a unit octahedron
++    oct.f = [ 1 5 3 ;    %  X  Z  Y  -  First the top half
++              3 5 2 ;    %  Y  Z -X
++              2 5 4 ;    % -X  Z -Y
++              4 5 1 ;    % -Y  Z  X
++              1 3 6 ;    %  X  Y -Z  -  Now the bottom half
++              3 2 6 ;    %  Y  Z -Z
++              2 4 6 ;    % -X  Z -Z
++              4 1 6 ];   % -Y  Z -Z
++
++    FV.vertices = oct.v;
++    FV.faces    = oct.f;
++
++case 'ico',
++
++    % Twelve vertices of icosahedron on unit sphere
++    tau = 0.8506508084; % t=(1+sqrt(5))/2, tau=t/sqrt(1+t^2)
++    one = 0.5257311121; % one=1/sqrt(1+t^2) , unit sphere
++
++    ico.v( 1,:) = [  tau,  one,    0 ]; % ZA
++    ico.v( 2,:) = [ -tau,  one,    0 ]; % ZB
++    ico.v( 3,:) = [ -tau, -one,    0 ]; % ZC
++    ico.v( 4,:) = [  tau, -one,    0 ]; % ZD
++    ico.v( 5,:) = [  one,   0 ,  tau ]; % YA
++    ico.v( 6,:) = [  one,   0 , -tau ]; % YB
++    ico.v( 7,:) = [ -one,   0 , -tau ]; % YC
++    ico.v( 8,:) = [ -one,   0 ,  tau ]; % YD
++    ico.v( 9,:) = [   0 ,  tau,  one ]; % XA
++    ico.v(10,:) = [   0 , -tau,  one ]; % XB
++    ico.v(11,:) = [   0 , -tau, -one ]; % XC
++    ico.v(12,:) = [   0 ,  tau, -one ]; % XD
++
++    % Structure for unit icosahedron
++    ico.f = [  5,  8,  9 ;
++               5, 10,  8 ;
++               6, 12,  7 ;
++               6,  7, 11 ;
++               1,  4,  5 ;
++               1,  6,  4 ;
++               3,  2,  8 ;
++               3,  7,  2 ;
++               9, 12,  1 ;
++               9,  2, 12 ;
++              10,  4, 11 ;
++              10, 11,  3 ;
++               9,  1,  5 ;
++              12,  6,  1 ;
++               5,  4, 10 ;
++               6, 11,  4 ;
++               8,  2,  9 ;
++               7, 12,  2 ;
++               8, 10,  3 ;
++               7,  3, 11 ];
++
++    FV.vertices = ico.v;
++    FV.faces    = ico.f;
++end
++
++% -----------------
++% refine the starting shapes with subdivisions
++if maxlevel,
++
++    % Subdivide each starting triangle (maxlevel) times
++    for level = 1:maxlevel,
++
++        % Subdivide each triangle and normalize the new points thus
++        % generated to lie on the surface of a sphere radius r.
++        FV = mesh_refine_tri4(FV);
++        FV.vertices = sphere_project(FV.vertices,r);
++
++        % An alternative might be to define a min distance
++        % between vertices and recurse or use fminsearch
++
++    end
++end
++
++if winding,
++    fprintf('...returning counterclockwise vertex order (viewed from outside)\n');
++    FV.faces = FV.faces(:,[1 3 2]);
++else
++    fprintf('...returning clockwise vertex order (viewed from outside)\n');
++end
++
++t=toc; fprintf('...done (%6.2f sec)\n\n',t);
++
++return
+Index: ../trunk-jpl/src/m/mesh/planet/spheretri/mesh_refine_tri4.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/spheretri/mesh_refine_tri4.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/spheretri/mesh_refine_tri4.m	(revision 19244)
+@@ -0,0 +1,143 @@
++function [ FV ] = mesh_refine_tri4(FV)
++
++% mesh_refine_tri4 - creates 4 triangle from each triangle of a mesh
++%
++% [ FV ] = mesh_refine_tri4( FV )
++%
++% FV.vertices   - mesh vertices (Nx3 matrix)
++% FV.faces      - faces with indices into 3 rows
++%                 of FV.vertices (Mx3 matrix)
++% 
++% For each face, 3 new vertices are created at the 
++% triangle edge midpoints.  Each face is divided into 4
++% faces and returned in FV.
++%
++%        B
++%       /\
++%      /  \
++%    a/____\b       Construct new triangles
++%    /\    /\       [A,a,c]
++%   /  \  /  \      [a,B,b]
++%  /____\/____\     [c,b,C]
++% A	     c	   C    [a,b,c]
++% 
++% It is assumed that the vertices are listed in clockwise order in
++% FV.faces (A,B,C above), as viewed from the outside in a RHS coordinate
++% system.
++% 
++% See also: mesh_refine, sphere_tri, sphere_project
++% 
++
++% ---this method is not implemented, but the idea here remains...
++% This can be done until some minimal distance (D) of the mean 
++% distance between vertices of all triangles is achieved.  If
++% no D argument is given, the function refines the mesh once.
++% Alternatively, it could be done until some minimum mean 
++% area of faces is achieved.  As is, it just refines once.
++
++% $Revision: 1.1 $ $Date: 2004/11/12 01:32:35 $
++
++% Licence:  GNU GPL, no implied or express warranties
++% History:  05/2002, Darren.Weber_at_radiology.ucsf.edu, created
++%
++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
++
++tic;
++fprintf('...refining mesh (tri4)...')
++
++% NOTE
++% The centroid is located one third of the way from each vertex to 
++% the midpoint of the opposite side. Each median divides the triangle 
++% into two equal areas; all the medians together divide it into six 
++% equal parts, and the lines from the median point to the vertices 
++% divide the whole into three equivalent triangles.
++
++% Each input triangle with vertices labelled [A,B,C] as shown
++% below will be turned into four new triangles:
++%
++% Make new midpoints
++% a = (A+B)/2
++% b = (B+C)/2
++% c = (C+A)/2
++%
++%        B
++%       /\
++%      /  \
++%    a/____\b       Construct new triangles
++%    /\    /\       [A,a,c]
++%   /  \  /  \      [a,B,b]
++%  /____\/____\     [c,b,C]
++% A	     c	   C    [a,b,c]
++%
++
++% Initialise a new vertices and faces matrix
++Nvert = size(FV.vertices,1);
++Nface = size(FV.faces,1);
++V2 = zeros(Nface*3,3);
++F2 = zeros(Nface*4,3);
++
++for f = 1:Nface,
++
++    % Get the triangle vertex indices
++    NA = FV.faces(f,1);
++    NB = FV.faces(f,2);
++    NC = FV.faces(f,3);
++
++    % Get the triangle vertex coordinates
++    A = FV.vertices(NA,:);
++    B = FV.vertices(NB,:);
++    C = FV.vertices(NC,:);
++
++    % Now find the midpoints between vertices
++    a = (A + B) ./ 2;
++    b = (B + C) ./ 2;
++    c = (C + A) ./ 2;
++
++    % Find the length of each median
++    %A2blen = sqrt ( sum( (A - b).^2, 2 ) );
++    %B2clen = sqrt ( sum( (B - c).^2, 2 ) );
++    %C2alen = sqrt ( sum( (C - a).^2, 2 ) );
++
++    % Store the midpoint vertices, while
++    % checking if midpoint vertex already exists
++    [FV, Na] = mesh_find_vertex(FV,a);
++    [FV, Nb] = mesh_find_vertex(FV,b);
++    [FV, Nc] = mesh_find_vertex(FV,c);
++
++    % Create new faces with orig vertices plus midpoints
++    F2(f*4-3,:) = [ NA, Na, Nc ];
++    F2(f*4-2,:) = [ Na, NB, Nb ];
++    F2(f*4-1,:) = [ Nc, Nb, NC ];
++    F2(f*4-0,:) = [ Na, Nb, Nc ];
++
++end
++
++% Replace the faces matrix
++FV.faces = F2;
++
++t=toc; fprintf('done (%5.2f sec)\n',t);
++
++return
++
++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
++function [FV, N] = mesh_find_vertex(FV,vertex)
++
++    Vn = size(FV.vertices,1);
++    Va = repmat(vertex,Vn,1);
++    Vexist = find( FV.vertices(:,1) == Va(:,1) & ...
++                   FV.vertices(:,2) == Va(:,2) & ...
++                   FV.vertices(:,3) == Va(:,3) );
++    if Vexist,
++        if size(Vexist) == [1,1],
++            N = Vexist;
++        else,
++            msg = sprintf('replicated vertices');
++            error(msg);
++        end
++    else
++        FV.vertices(end+1,:) = vertex;
++        N = size(FV.vertices,1);
++    end
++
++return
+Index: ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_project.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_project.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/spheretri/sphere_project.m	(revision 19244)
+@@ -0,0 +1,65 @@
++function V = sphere_project(v,r,c)
++
++% sphere_project - project point X,Y,Z to the surface of sphere radius r
++% 
++% V = sphere_project(v,r,c)
++% 
++% Cartesian inputs:
++% v is the vertex matrix, Nx3 (XYZ)
++% r is the sphere radius, 1x1 (default 1)
++% c is the sphere centroid, 1x3 (default 0,0,0)
++%
++% XYZ are converted to spherical coordinates and their radius is
++% adjusted according to r, from c toward XYZ (defined with theta,phi)
++% 
++% V is returned as Cartesian 3D coordinates
++% 
++
++% $Revision: 1.1 $ $Date: 2004/11/12 01:32:36 $
++
++% Licence:  GNU GPL, no implied or express warranties
++% History:  06/2002, Darren.Weber_at_radiology.ucsf.edu, created
++%
++%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
++
++if ~exist('v','var'),
++    msg = sprintf('SPHERE_PROJECT: No input vertices (X,Y,Z)\n');
++    error(msg);
++end
++
++X = v(:,1);
++Y = v(:,2);
++Z = v(:,3);
++
++if ~exist('c','var'),
++    xo = 0;
++    yo = 0;
++    zo = 0;
++else
++    xo = c(1);
++    yo = c(2);
++    zo = c(3);
++end
++
++if ~exist('r','var'), r = 1; end
++
++% alternate method is to use unit vector of V
++% [ n = 'magnitude(V)'; unitV = V ./ n; ]
++% to change the radius, multiply the unitV
++% by the radius required.  This avoids the
++% use of arctan functions, which have branches.
++
++% Convert Cartesian X,Y,Z to spherical (radians)
++theta = atan2( (Y-yo), (X-xo) );
++phi   = atan2( sqrt( (X-xo).^2 + (Y-yo).^2 ), (Z-zo) );
++% do not calc: r = sqrt( (X-xo).^2 + (Y-yo).^2 + (Z-zo).^2);
++
++%   Recalculate X,Y,Z for constant r, given theta & phi.
++R = ones(size(phi)) * r;
++x = R .* sin(phi) .* cos(theta);
++y = R .* sin(phi) .* sin(theta);
++z = R .* cos(phi);
++
++V = [x y z];
++
++return
+Index: ../trunk-jpl/src/m/mesh/planet/spheretri/planettrimesh.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/spheretri/planettrimesh.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/spheretri/planettrimesh.m	(revision 19244)
+@@ -0,0 +1,19 @@
++function md=planettrimesh(md,shape,radius,refinement)
++%PLANETTRIMESH: build 2d shell mesh
++%
++% Usage: md=planettrimesh(md,shape,radius,refinement)
++%
++
++results = sphere_tri(shape,refinement,radius);
++md.mesh=mesh3dsurface(); %???
++md.mesh.x=results.vertices(:,1);
++md.mesh.y=results.vertices(:,2);
++md.mesh.z=results.vertices(:,3);
++md.mesh.elements=results.faces;
++
++md.mesh.r=sqrt(md.mesh.x.^2+md.mesh.y.^2+md.mesh.z.^2);
++md.mesh.lat=acos(md.mesh.z./md.mesh.r);
++md.mesh.long=atan2(md.mesh.y,md.mesh.x);
++
++md.mesh.numberofvertices=length(md.mesh.x);
++md.mesh.numberofelements=size(md.mesh.elements,1);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19244-19245.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19244-19245.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19244-19245.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19244)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19245)
+@@ -27,7 +27,8 @@
+ 					${ISSM_DIR}/src/m/coordsystems/*.m \
+ 					${ISSM_DIR}/src/m/mech/*.m \
+ 					${ISSM_DIR}/src/m/mesh/*.m \
+-					${ISSM_DIR}/src/m/mesh/planet/*.m \
++					${ISSM_DIR}/src/m/mesh/planet/spheretri/*.m \
++					${ISSM_DIR}/src/m/mesh/planet/gmsh/*.m \
+ 					${ISSM_DIR}/src/m/mesh/rifts/*.m \
+ 					${ISSM_DIR}/src/m/miscellaneous/*.m \
+ 					${ISSM_DIR}/src/m/os/*.m \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19245-19246.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19245-19246.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19245-19246.diff	(revision 20498)
@@ -0,0 +1,373 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19245)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19246)
+@@ -1,80 +0,0 @@
+-#Test Name: SquareShelfTranForceNoInterp3d
+-import numpy
+-from model import *
+-from triangle import *
+-from setmask import *
+-from parameterize import *
+-from setflowequation import *
+-from EnumDefinitions import *
+-from solve import *
+-from MatlabFuncs import *
+-
+-md=triangle(model(),'../Exp/Square.exp',350000.)
+-md=setmask(md,'all','')
+-md=parameterize(md,'../Par/SquareShelf.py')
+-md.extrude(3,1.)
+-md=setflowequation(md,'HO','all')
+-md.cluster=generic('name',oshostname(),'np',3)
+-
+-md.timestepping.time_step=1.
+-md.settings.output_frequency=1
+-md.timestepping.final_time=4.
+-md.timestepping.interp_forcings=False
+-
+-#Set up transient
+-smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+-smb=numpy.hstack((smb,smb*-1.))
+-
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
+-md.transient.isthermal=False
+-
+-md=solve(md,TransientSolutionEnum())
+-
+-#Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
+-field_tolerances=[\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13]
+-field_values=[\
+-	md.results.TransientSolution[0].Vx,\
+-	md.results.TransientSolution[0].Vy,\
+-	md.results.TransientSolution[0].Vz,\
+-	md.results.TransientSolution[0].Vel,\
+-	md.results.TransientSolution[0].Pressure,\
+-	md.results.TransientSolution[0].Base,\
+-	md.results.TransientSolution[0].Surface,\
+-	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[1].Vx,\
+-	md.results.TransientSolution[1].Vy,\
+-	md.results.TransientSolution[1].Vz,\
+-	md.results.TransientSolution[1].Vel,\
+-	md.results.TransientSolution[1].Pressure,\
+-	md.results.TransientSolution[1].Base,\
+-	md.results.TransientSolution[1].Surface,\
+-	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[2].Vx,\
+-	md.results.TransientSolution[2].Vy,\
+-	md.results.TransientSolution[2].Vz,\
+-	md.results.TransientSolution[2].Vel,\
+-	md.results.TransientSolution[2].Pressure,\
+-	md.results.TransientSolution[2].Base,\
+-	md.results.TransientSolution[2].Surface,\
+-	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[3].Vx,\
+-	md.results.TransientSolution[3].Vy,\
+-	md.results.TransientSolution[3].Vz,\
+-	md.results.TransientSolution[3].Vel,\
+-	md.results.TransientSolution[3].Pressure,\
+-	md.results.TransientSolution[3].Base,\
+-	md.results.TransientSolution[3].Surface,\
+-	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
+-	]
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19245)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19246)
+@@ -1,74 +0,0 @@
+-#Test Name: SquareShelfTranForceNoInterp2d
+-import numpy
+-from model import *
+-from triangle import *
+-from setmask import *
+-from parameterize import *
+-from setflowequation import *
+-from EnumDefinitions import *
+-from solve import *
+-from MatlabFuncs import *
+-
+-md=triangle(model(),'../Exp/Square.exp',150000.)
+-md=setmask(md,'all','')
+-md=parameterize(md,'../Par/SquareShelf.py')
+-md=setflowequation(md,'SSA','all')
+-md.cluster=generic('name',oshostname(),'np',3)
+-
+-md.timestepping.time_step=1.
+-md.settings.output_frequency=1
+-md.timestepping.final_time=4.
+-md.timestepping.interp_forcings=False
+-
+-#Set up transient
+-smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+-smb=numpy.hstack((smb,smb*-1.))
+-
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
+-md.transient.isthermal=False
+-
+-md=solve(md,TransientSolutionEnum())
+-
+-#Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
+-field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+-	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+-field_values=[\
+-	md.results.TransientSolution[0].Vx,\
+-	md.results.TransientSolution[0].Vy,\
+-	md.results.TransientSolution[0].Vel,\
+-	md.results.TransientSolution[0].Pressure,\
+-	md.results.TransientSolution[0].Base,\
+-	md.results.TransientSolution[0].Surface,\
+-	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[1].Vx,\
+-	md.results.TransientSolution[1].Vy,\
+-	md.results.TransientSolution[1].Vel,\
+-	md.results.TransientSolution[1].Pressure,\
+-	md.results.TransientSolution[1].Base,\
+-	md.results.TransientSolution[1].Surface,\
+-	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[2].Vx,\
+-	md.results.TransientSolution[2].Vy,\
+-	md.results.TransientSolution[2].Vel,\
+-	md.results.TransientSolution[2].Pressure,\
+-	md.results.TransientSolution[2].Base,\
+-	md.results.TransientSolution[2].Surface,\
+-	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
+-	md.results.TransientSolution[3].Vx,\
+-	md.results.TransientSolution[3].Vy,\
+-	md.results.TransientSolution[3].Vel,\
+-	md.results.TransientSolution[3].Pressure,\
+-	md.results.TransientSolution[3].Base,\
+-	md.results.TransientSolution[3].Surface,\
+-	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
+-	]
+Index: ../trunk-jpl/test/NightlyRun/test242.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test242.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test242.py	(revision 19246)
+@@ -0,0 +1,80 @@
++#Test Name: SquareShelfTranForceNoInterp3d
++import numpy
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',350000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelf.py')
++md.extrude(3,1.)
++md=setflowequation(md,'HO','all')
++md.cluster=generic('name',oshostname(),'np',3)
++
++md.timestepping.time_step=1.
++md.settings.output_frequency=1
++md.timestepping.final_time=4.
++md.timestepping.interp_forcings=False
++
++#Set up transient
++smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
++smb=numpy.hstack((smb,smb*-1.))
++
++md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.transient.isthermal=False
++
++md=solve(md,TransientSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
++field_tolerances=[\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13]
++field_values=[\
++	md.results.TransientSolution[0].Vx,\
++	md.results.TransientSolution[0].Vy,\
++	md.results.TransientSolution[0].Vz,\
++	md.results.TransientSolution[0].Vel,\
++	md.results.TransientSolution[0].Pressure,\
++	md.results.TransientSolution[0].Base,\
++	md.results.TransientSolution[0].Surface,\
++	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].Vx,\
++	md.results.TransientSolution[1].Vy,\
++	md.results.TransientSolution[1].Vz,\
++	md.results.TransientSolution[1].Vel,\
++	md.results.TransientSolution[1].Pressure,\
++	md.results.TransientSolution[1].Base,\
++	md.results.TransientSolution[1].Surface,\
++	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vz,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].Vx,\
++	md.results.TransientSolution[3].Vy,\
++	md.results.TransientSolution[3].Vz,\
++	md.results.TransientSolution[3].Vel,\
++	md.results.TransientSolution[3].Pressure,\
++	md.results.TransientSolution[3].Base,\
++	md.results.TransientSolution[3].Surface,\
++	md.results.TransientSolution[3].Thickness,\
++	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	]
+Index: ../trunk-jpl/test/NightlyRun/test236.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.py	(revision 19245)
++++ ../trunk-jpl/test/NightlyRun/test236.py	(revision 19246)
+@@ -74,10 +74,12 @@
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19245)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19246)
+@@ -79,13 +79,12 @@
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1', \
+-						'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', \
+-						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+-field_tolerances=[\
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-13,1e-13,1e-8,\
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-13,1e-13,1e-8,\
+-	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-10,1e-13,1e-8]
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
++		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
++		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
++		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test241.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test241.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test241.py	(revision 19246)
+@@ -0,0 +1,74 @@
++#Test Name: SquareShelfTranForceNoInterp2d
++import numpy
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelf.py')
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',3)
++
++md.timestepping.time_step=1.
++md.settings.output_frequency=1
++md.timestepping.final_time=4.
++md.timestepping.interp_forcings=False
++
++#Set up transient
++smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
++smb=numpy.hstack((smb,smb*-1.))
++
++md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.transient.isthermal=False
++
++md=solve(md,TransientSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
++field_values=[\
++	md.results.TransientSolution[0].Vx,\
++	md.results.TransientSolution[0].Vy,\
++	md.results.TransientSolution[0].Vel,\
++	md.results.TransientSolution[0].Pressure,\
++	md.results.TransientSolution[0].Base,\
++	md.results.TransientSolution[0].Surface,\
++	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].Vx,\
++	md.results.TransientSolution[1].Vy,\
++	md.results.TransientSolution[1].Vel,\
++	md.results.TransientSolution[1].Pressure,\
++	md.results.TransientSolution[1].Base,\
++	md.results.TransientSolution[1].Surface,\
++	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].Vx,\
++	md.results.TransientSolution[3].Vy,\
++	md.results.TransientSolution[3].Vel,\
++	md.results.TransientSolution[3].Pressure,\
++	md.results.TransientSolution[3].Base,\
++	md.results.TransientSolution[3].Surface,\
++	md.results.TransientSolution[3].Thickness,\
++	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19246-19247.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19246-19247.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19246-19247.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test238.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.m	(revision 19246)
++++ ../trunk-jpl/test/NightlyRun/test238.m	(revision 19247)
+@@ -28,7 +28,6 @@
+ % creating initialization and spc temperatures initialization and
+ % spc
+ md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-
+ md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
+ 
+ % creating precipitation
Index: /issm/oecreview/Archive/19101-20495/ISSM-19247-19248.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19247-19248.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19247-19248.diff	(revision 20498)
@@ -0,0 +1,187 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19248)
+@@ -0,0 +1,116 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBd18opdd(object):
++	"""
++	SMBd18opdd Class definition
++
++	   Usage:
++	      SMBd18opdd=SMBd18opdd();
++	"""
++
++	def __init__(self): # {{{
++		self.desfac                    = 0.
++		self.s0p                       = 0.
++		self.s0t                       = 0.
++		self.rlaps                     = 0.
++		self.rlapslgm                  = 0.
++		self.dpermil                   = 0.
++		self.Tdiff                     = float('NaN')
++		self.sealev                    = float('NaN')
++		self.ismungsm                  = 0
++		self.isd18opd                  = 0
++		self.delta18o                  = float('NaN')
++		self.delta18o_surface          = float('NaN')
++		self.temperatures_presentday   = float('NaN')
++		self.precipitations_presentday = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]'))
++			if self.isd18opd:
++				string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		if self.isd18opd: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
++		if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
++		return self
++	#}}}
++	def initialize(self,md): # {{{
++
++		# if numpy.all(numpy.isnan(self.precipitation)):
++		# 	self.precipitation=numpy.zeros((md.mesh.numberofvertices,1))
++		# 	print "      no SMBpdd.precipitation specified: values set as zero"
++		# 
++		 return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#pdd method not used in default mode
++		self.ismungsm   = 0
++		self.isd18opd   = 1
++		self.desfac     = 0.5
++		self.s0p        = 0.
++		self.s0t        = 0.
++		self.rlaps      = 6.5 
++		self.rlapslgm   = 6.5
++		self.dpermil    = 2.4
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
++
++			if self.isd18opd:
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1)
++				md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer')
++
++      WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1)
++
++		if self.isd18opd:
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','DoubleMat','mattype',1)
++	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19247)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19248)
+@@ -10,11 +10,11 @@
+ 		s0t                       = 0;
+ 		rlaps                     = 0;
+ 		rlapslgm                  = 0; 
+-                dpermil                   = 0; 
++		dpermil                   = 0; 
+ 		Tdiff                     = NaN;
+ 		sealev                    = NaN;
+ 		ismungsm                  = 0;
+-                isd18opd                  = 0;
++		isd18opd                  = 0;
+ 		delta18o                  = NaN;
+ 		delta18o_surface          = NaN;
+ 		temperatures_presentday   = NaN;
+@@ -45,13 +45,13 @@
+ 		function self = setdefaultparameters(self) % {{{
+ 
+ 		  self.ismungsm   = 0;
+-                  self.isd18opd   = 1;
++		  self.isd18opd   = 1;
+ 		  self.desfac     = 0.5;
+ 		  self.s0p        = 0;
+ 		  self.s0t        = 0;
+ 		  self.rlaps      = 6.5;
+ 		  self.rlapslgm   = 6.5;
+-                  self.dpermil    = 2.4;
++		  self.dpermil    = 2.4;
+                   
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -62,11 +62,11 @@
+ 				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
+-                                if(self.isd18opd==1) 
++				if(self.isd18opd==1) 
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
+-                                        md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
++					md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
+ 		end % }}}
+@@ -102,14 +102,14 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+-                        WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-                        WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
+ 
+ 			if self.isd18opd
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
+-                                WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
+ 			end
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19248-19249.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19248-19249.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19248-19249.diff	(revision 20498)
@@ -0,0 +1,286 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19249)
+@@ -0,0 +1,91 @@
++#Test Name: SquareShelfTranIspddIsdeltaO18pdInterpSSA2d 
++import numpy
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelf.py')
++
++# Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++
++# Add temperature, precipitation and delta18o needed to measure the surface mass balance
++# creating delta18o
++delta18o=numpy.loadtxt('../Data/delta18o.data')
++md.surfaceforcings.delta18o=delta18o
++
++# creating Present day temperatures
++# Same temperature over the all region:
++tmonth=numpy.ones(12)*(238.15+20.)
++md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    # Time for the last line:
++    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# creating initialization and spc temperatures initialization and spc
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=md.thermal.spctemperature-10
++md.initialization.temperature=md.thermal.spctemperature
++
++# creating precipitation
++md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# time steps and resolution
++md.timestepping.time_step=0.5
++md.timestepping.final_time=2.
++md.timestepping.interp_forcings=0
++
++# 
++md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',3)
++md=solve(md,TransientSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values=[\
++	md.results.TransientSolution[0].Vx,\
++	md.results.TransientSolution[0].Vy,\
++	md.results.TransientSolution[0].Vel,\
++	md.results.TransientSolution[0].Pressure,\
++	md.results.TransientSolution[0].Base,\
++	md.results.TransientSolution[0].Surface,\
++	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].Vx,\
++	md.results.TransientSolution[1].Vy,\
++	md.results.TransientSolution[1].Vel,\
++	md.results.TransientSolution[1].Pressure,\
++	md.results.TransientSolution[1].Base,\
++	md.results.TransientSolution[1].Surface,\
++	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	]
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19249)
+@@ -0,0 +1,90 @@
++#Test Name: SquareShelfTranIspddIsdeltaO18pdNoInterpSSA2d 
++import numpy
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelf.py')
++
++# Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++
++# Add temperature, precipitation and delta18o needed to measure the surface mass balance
++# creating delta18o
++delta18o=numpy.loadtxt('../Data/delta18o.data')
++md.surfaceforcings.delta18o=delta18o
++
++# creating Present day temperatures
++# Same temperature over the all region:
++tmonth=numpy.ones(12)*(238.15+20.)
++md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    # Time for the last line:
++    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# creating initialization and spc temperatures initialization and spc
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=md.thermal.spctemperature-10
++md.initialization.temperature=md.thermal.spctemperature
++
++# creating precipitation
++md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# time steps and resolution
++md.timestepping.time_step=20.
++md.timestepping.final_time=60.
++
++# 
++md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',3)
++md=solve(md,TransientSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values=[\
++	md.results.TransientSolution[0].Vx,\
++	md.results.TransientSolution[0].Vy,\
++	md.results.TransientSolution[0].Vel,\
++	md.results.TransientSolution[0].Pressure,\
++	md.results.TransientSolution[0].Base,\
++	md.results.TransientSolution[0].Surface,\
++	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].Vx,\
++	md.results.TransientSolution[1].Vy,\
++	md.results.TransientSolution[1].Vel,\
++	md.results.TransientSolution[1].Pressure,\
++	md.results.TransientSolution[1].Base,\
++	md.results.TransientSolution[1].Surface,\
++	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	]
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19249)
+@@ -0,0 +1,90 @@
++#Test Name: SquareShelfTranIspddIsdeltaO18pdSSA2d 
++import numpy
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelf.py')
++
++# Use of ispdd and isdelta18o methods
++md.surfaceforcings = SMBd18opdd();
++md.surfaceforcings.isd18opd=1;
++
++# Add temperature, precipitation and delta18o needed to measure the surface mass balance
++# creating delta18o
++delta18o=numpy.loadtxt('../Data/delta18o.data')
++md.surfaceforcings.delta18o=delta18o
++
++# creating Present day temperatures
++# Same temperature over the all region:
++tmonth=numpy.ones(12)*(238.15+20.)
++md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    # Time for the last line:
++    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# creating initialization and spc temperatures initialization and spc
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=md.thermal.spctemperature-10
++md.initialization.temperature=md.thermal.spctemperature
++
++# creating precipitation
++md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++for imonth in xrange(0,12):
++    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++
++# time steps and resolution
++md.timestepping.time_step=0.5
++md.timestepping.final_time=2.
++
++# 
++md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',3)
++md=solve(md,TransientSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values=[\
++	md.results.TransientSolution[0].Vx,\
++	md.results.TransientSolution[0].Vy,\
++	md.results.TransientSolution[0].Vel,\
++	md.results.TransientSolution[0].Pressure,\
++	md.results.TransientSolution[0].Base,\
++	md.results.TransientSolution[0].Surface,\
++	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].Vx,\
++	md.results.TransientSolution[1].Vy,\
++	md.results.TransientSolution[1].Vel,\
++	md.results.TransientSolution[1].Pressure,\
++	md.results.TransientSolution[1].Base,\
++	md.results.TransientSolution[1].Surface,\
++	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
++	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19249-19250.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19249-19250.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19249-19250.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19249)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19250)
+@@ -59,7 +59,7 @@
+ 				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test236.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.py	(revision 19249)
++++ ../trunk-jpl/test/NightlyRun/test236.py	(revision 19250)
+@@ -79,7 +79,7 @@
+ 				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19249)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19250)
+@@ -58,7 +58,7 @@
+ 				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19249)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19250)
+@@ -58,7 +58,7 @@
+ 				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19250-19251.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19250-19251.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19250-19251.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/etc/environment.sh
+===================================================================
+--- ../trunk-jpl/etc/environment.sh	(revision 19250)
++++ ../trunk-jpl/etc/environment.sh	(revision 19251)
+@@ -312,6 +312,9 @@
+ libpathprepend   "$ISSM_DIR/externalpackages/expat/install"
+ dylibpathprepend   "$ISSM_DIR/externalpackages/expat/install"
+ 
++#GMSH
++pathappend   "$ISSM_DIR/externalpackages/gmsh/install"
++
+ #CURL
+ libpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
+ dylibpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19251-19252.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19251-19252.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19251-19252.diff	(revision 20498)
@@ -0,0 +1,214 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 19252)
+@@ -0,0 +1,166 @@
++function mesh=gmshplanet(varargin)
++%GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo
++%
++%   Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
++%
++%   - radius:             radius of the planet in km
++%   - resolution:         resolution in km
++%   - refine:             provide mesh
++%   - refinemetric:       mesh quantity to specify resolution
++%
++%   Returns 'mesh3dsurface' type mesh
++%
++%   Examples:
++%      md.mesh=gmshplanet('radius',6000,'resolution',100);
++%      md.mesh=gmshplanet('radius',6000,'resolution',100);
++
++	%process options
++	options=pairoptions(varargin{:});
++	options=deleteduplicates(options,1);
++
++	%recover parameters:
++	radius=getfieldvalue(options,'radius')*1000;
++	resolution=getfieldvalue(options,'resolution')*1000;
++
++	%initialize mesh: 
++	mesh=mesh3dsurface;
++
++	%create .geo file:  {{{
++	fid=fopen('sphere.geo','w');
++
++	fprintf(fid,'Mesh.Algorithm = 7;\n');
++	if  exist(options,'refine'),
++		fprintf(fid,'Mesh.CharacteristicLengthFromPoints= 0;\n');
++		fprintf(fid,'Mesh.RemeshAlgorithm= 1;\n');
++	end
++	fprintf(fid,'resolution=%g;\n',resolution);
++	fprintf(fid,'radius=%g;\n',radius);
++	fprintf(fid,'Point(1) = {0.0,0.0,0.0,resolution};\n');
++	fprintf(fid,'Point(2) = {radius,0.0,0.0,resolution};\n');
++	fprintf(fid,'Point(3) = {0,radius,0.0,resolution};\n');
++	fprintf(fid,'Circle(1) = {2,1,3};\n');
++	fprintf(fid,'Point(4) = {-radius,0,0.0,resolution};\n');
++	fprintf(fid,'Point(5) = {0,-radius,0.0,resolution};\n');
++	fprintf(fid,'Circle(2) = {3,1,4};\n');
++	fprintf(fid,'Circle(3) = {4,1,5};\n');
++	fprintf(fid,'Circle(4) = {5,1,2};\n');
++	fprintf(fid,'Point(6) = {0,0,-radius,resolution};\n');
++	fprintf(fid,'Point(7) = {0,0,radius,resolution};\n');
++	fprintf(fid,'Circle(5) = {3,1,6};\n');
++	fprintf(fid,'Circle(6) = {6,1,5};\n');
++	fprintf(fid,'Circle(7) = {5,1,7};\n');
++	fprintf(fid,'Circle(8) = {7,1,3};\n');
++	fprintf(fid,'Circle(9) = {2,1,7};\n');
++	fprintf(fid,'Circle(10) = {7,1,4};\n');
++	fprintf(fid,'Circle(11) = {4,1,6};\n');
++	fprintf(fid,'Circle(12) = {6,1,2};\n');
++	fprintf(fid,'Line Loop(13) = {2,8,-10};\n');
++	fprintf(fid,'Ruled Surface(14) = {13};\n');
++	fprintf(fid,'Line Loop(15) = {10,3,7};\n');
++	fprintf(fid,'Ruled Surface(16) = {15};\n');
++	fprintf(fid,'Line Loop(17) = {-8,-9,1};\n');
++	fprintf(fid,'Ruled Surface(18) = {17};\n');
++	fprintf(fid,'Line Loop(19) = {-11,-2,5};\n');
++	fprintf(fid,'Ruled Surface(20) = {19};\n');
++	fprintf(fid,'Line Loop(21) = {-5,-12,-1};\n');
++	fprintf(fid,'Ruled Surface(22) = {21};\n');
++	fprintf(fid,'Line Loop(23) = {-3,11,6};\n');
++	fprintf(fid,'Ruled Surface(24) = {23};\n');
++	fprintf(fid,'Line Loop(25) = {-7,4,9};\n');
++	fprintf(fid,'Ruled Surface(26) = {25};\n');
++	fprintf(fid,'Line Loop(27) = {-4,12,-6};\n');
++	fprintf(fid,'Ruled Surface(28) = {27};\n');
++	fprintf(fid,'Surface Loop(29) = {28,26,16,14,20,24,22,18};\n');
++	fprintf(fid,'Volume(30) = {29};\n');
++	fprintf(fid,'Physical Surface(1) = {28,26,16,14,20,24,22,18};\n');
++	fprintf(fid,'Physical Volume(2) = 30;\n');
++	fclose(fid);
++	%}}}
++
++	if  exist(options,'refine'),
++		meshini=getfieldvalue(options,'refine');
++		metric=getfieldvalue(options,'refinemetric');
++
++		%create .pos file with existing mesh and refining metric:  {{{
++		fid=fopen('sphere.pos','w');
++
++		fprintf(fid,'View "background mesh" {\n');
++		for i=1:meshini.numberofelements,
++			fprintf(fid,'ST(%g,%g,%g,%g,%g,%g,%g,%g,%g){%g,%g,%g};\n',...
++			meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)),...
++			meshini.x(meshini.elements(i,2)), meshini.y(meshini.elements(i,2)), meshini.z(meshini.elements(i,2)),...
++			meshini.x(meshini.elements(i,3)), meshini.y(meshini.elements(i,3)), meshini.z(meshini.elements(i,3)),...
++			metric(meshini.elements(i,1)), metric(meshini.elements(i,2)), metric(meshini.elements(i,3))...
++			);
++		end
++		fprintf(fid,'};\n');
++		
++		fclose(fid);
++		% }}}
++	end
++
++	%call gmsh
++	if  exist(options,'refine'),
++		eval(['!gmsh -2 sphere.geo -bgm sphere.pos']);
++	else
++		%call gmsh
++		eval(['!gmsh -2 sphere.geo']);
++	end
++
++	%import mesh:  {{{
++	fid=fopen('sphere.msh','r');
++
++	%Get Mesh format
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$MeshFormat'),
++		error(['Expecting $MeshFormat (' A ')']);
++	end
++
++	A=fscanf(fid,'%f %i %i',[1 3]);
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$EndMeshFormat'),
++		error(['Expecting $EndMeshFormat (' A ')']);
++	end
++
++	%Nodes
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$Nodes'),
++		error(['Expecting $Nodes (' A ')']);
++	end
++
++	mesh.numberofvertices=fscanf(fid,'%i',1);
++	A=fscanf(fid,'%i %f %f %f',[4 mesh.numberofvertices]);
++	mesh.x = A(2,:)';
++	mesh.y = A(3,:)';
++	mesh.z = A(4,:)';
++
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$EndNodes'),
++		error(['Expecting $EndNodes (' A ')']);
++	end
++
++	%Elements
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$Elements'),
++		error(['Expecting $Elements (' A ')']);
++	end
++	mesh.numberofelements=fscanf(fid,'%i',1);
++	A=fscanf(fid,'%i %i %i %i %i %i %i %i',[8 mesh.numberofelements]);
++	mesh.elements=A(6:8,:)'; 
++	A=fscanf(fid,'%s',1);
++	if ~strcmp(A,'$EndElements'),
++		error(['Expecting $EndElements (' A ')']);
++	end
++	fclose(fid); 
++	%}}}
++
++	%figure out other fields in mesh3dsurface: 
++	mesh.r=sqrt(mesh.x.^2+mesh.y.^2+mesh.z.^2);
++	mesh.lat = asin(mesh.z./mesh.r)/pi*180;
++	mesh.long = atan2(mesh.y,mesh.x)/pi*180;
++
++	%erase files: 
++	eval(['!rm sphere.geo sphere.msh sphere.pos']);
++
++	%return mesh: 
++	return;
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 0)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19252)
+@@ -0,0 +1,38 @@
++function mask = gmtmask(lat,long)
++%GMTMASK - figure out which lat,long points are on the ocean
++%
++%   Usage:
++%      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
++%
++
++
++	%First, write our lat,long file for gmt:
++	nv=length(lat);
++	dlmwrite('./all_vertices.txt',[long lat (1:nv)'],'delimiter','\t');
++
++	%Avoid bypassing of the ld library path by Matlab (:()
++	if ismac,
++		dyld_library_path_old=getenv('DYLD_LIBRARY_PATH');
++		setenv('DYLD_LIBRARY_PATH',[ issmdir '/externalpackages/curl/install/lib:' issmdir '/externalpackages/hdf5/install/lib:' issmdir '/externalpackages/netcdf/install/lib' ]);
++		setenv('DYLD_LIBRARY_PATH',dyld_library_path_old);
++	end
++
++	%figure out which vertices are on the ocean, which one on the continent:
++	system('gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/k/s/k > ./oce_vertices.txt');
++
++	%read the con_vertices.txt file and flag our mesh vertices on the continent
++	fid=fopen('./oce_vertices.txt','r');
++	line=fgets(fid); 
++	line=fgets(fid);
++	oce_vertices=[];
++	while line~=-1,
++		ind=str2num(line); ind=ind(3);
++		oce_vertices=[oce_vertices;ind];
++		line=fgets(fid);
++	end
++
++
++	mask=zeros(nv,1);
++	mask(oce_vertices)=1;
++	
++	system('rm -rf ./all_vertices.txt ./oce_vertices.txt');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19252-19253.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19252-19253.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19252-19253.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19252)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19253)
+@@ -56,7 +56,7 @@
+ #Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+ 		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+Index: ../trunk-jpl/test/NightlyRun/test236.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.py	(revision 19252)
++++ ../trunk-jpl/test/NightlyRun/test236.py	(revision 19253)
+@@ -76,7 +76,7 @@
+ #Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+ 		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19252)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19253)
+@@ -55,7 +55,7 @@
+ #Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+ 		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19252)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19253)
+@@ -55,7 +55,7 @@
+ #Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+ 		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3';
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19253-19254.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19253-19254.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19253-19254.diff	(revision 20498)
@@ -0,0 +1,1848 @@
+Index: ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19253)
++++ ../trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 19254)
+@@ -12,9 +12,9 @@
+ };
+ 
+ #define MARSHALLING_ENUM(EN)\
+-	int enum_type=EN;\
++	int type_enum=EN;\
+ 	if(marshall_direction==MARSHALLING_FORWARD){\
+-		memcpy(*pmarshalled_data,&enum_type,sizeof(int));\
++		memcpy(*pmarshalled_data,&type_enum,sizeof(int));\
+ 		*pmarshalled_data+=sizeof(int);\
+ 	}\
+ 	else if(marshall_direction==MARSHALLING_SIZE){\
+Index: ../trunk-jpl/src/c/classes/Materials/Matice.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19254)
+@@ -121,7 +121,7 @@
+ 
+ }
+ /*}}}*/
+-void       Matice::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++void      Matice::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+ 	if(marshall_direction==MARSHALLING_BACKWARD)helement=new Hook(); 
+ 	
+@@ -129,8 +129,8 @@
+ 	MARSHALLING(mid);
+ 	MARSHALLING(isdamaged);
+ 	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->element=(Element*)this->helement->delivers();
+ 
+-
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19254)
+@@ -51,7 +51,7 @@
+                 // it does not clarify  ownership of the newed up instance...
+                 // use the default copy constructor instead
+                 Object* copy() { return new GenericParam<P>(*this); };
+-				void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++					 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+                 /*}}}*/
+                 /*Param vritual function definitions: {{{*/
+                 int   InstanceEnum(){return myEnumVal;}
+Index: ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19254)
+@@ -70,9 +70,9 @@
+ 	}
+ }
+ /*}}}*/
+-int    IntVecParam::Id(void){ return -1; }/*{{{*/
++int  IntVecParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int IntVecParam::ObjectEnum(void){/*{{{*/
++int  IntVecParam::ObjectEnum(void){/*{{{*/
+ 
+ 	return IntVecParamEnum;
+ 
+@@ -90,7 +90,10 @@
+ 
+ 	MARSHALLING(enum_type);
+ 	MARSHALLING(M);
+-	MARSHALLING_DYNAMIC(values,int,M);
++	if(M) { 
++		MARSHALLING_DYNAMIC(values,int,M);
++	}
++	else values=NULL;
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Params/BoolParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/BoolParam.cpp	(revision 19254)
+@@ -62,5 +62,4 @@
+ 
+ }
+ /*}}}*/
+-
+ 		
+Index: ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19254)
+@@ -58,9 +58,9 @@
+ 	}
+ }
+ /*}}}*/
+-int    IntMatParam::Id(void){ return -1; }/*{{{*/
++int  IntMatParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int IntMatParam::ObjectEnum(void){/*{{{*/
++int  IntMatParam::ObjectEnum(void){/*{{{*/
+ 
+ 	return IntMatParamEnum;
+ 
+@@ -83,7 +83,6 @@
+ }
+ /*}}}*/
+ 
+-
+ /*IntMatParam virtual functions definitions: */
+ void  IntMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
+ 	int* output=NULL;
+Index: ../trunk-jpl/src/c/classes/Params/StringParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19254)
+@@ -66,7 +66,6 @@
+ 	MARSHALLING(size);
+ 	MARSHALLING_DYNAMIC(value,char,size);
+ 
+-
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 19254)
+@@ -24,8 +24,11 @@
+ 	enum_type=in_enum_type;
+ 	M=in_M;
+ 
+-	values=xNew<IssmDouble>(M);
+-	xMemCpy<IssmDouble>(values,in_values,M);
++	if(M){
++		values=xNew<IssmDouble>(M);
++		xMemCpy<IssmDouble>(values,in_values,M);
++	}
++	else values=NULL;
+ }
+ /*}}}*/
+ DoubleVecParam::~DoubleVecParam(){/*{{{*/
+Index: ../trunk-jpl/src/c/classes/Params/TransientParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/TransientParam.h	(revision 19254)
+@@ -38,7 +38,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Param vritual function definitions: {{{*/
+ 		int   InstanceEnum(){return enum_type;}
+Index: ../trunk-jpl/src/c/classes/Params/FileParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19254)
+@@ -40,9 +40,9 @@
+ 	_printf_(setw(22)<<"   FileParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
+ }
+ /*}}}*/
+-int    FileParam::Id(void){ return -1; }/*{{{*/
++int  FileParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int FileParam::ObjectEnum(void){/*{{{*/
++int  FileParam::ObjectEnum(void){/*{{{*/
+ 
+ 	return FileParamEnum;
+ 
+Index: ../trunk-jpl/src/c/classes/Params/Parameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/Parameters.cpp	(revision 19254)
+@@ -464,7 +464,7 @@
+ 	for ( object=objects.begin() ; object < objects.end(); object++ ){
+ 
+ 		param=xDynamicCast<Param*>(*object);
+-		if(param->InstanceEnum()==enum_type){
++		if(param && param->InstanceEnum()==enum_type){
+ 			return (*object);
+ 		}
+ 	}
+Index: ../trunk-jpl/src/c/classes/Params/IntParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/IntParam.cpp	(revision 19254)
+@@ -40,9 +40,9 @@
+ 	_printf_(setw(22)<<"   IntParam "<<setw(35)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
+ }
+ /*}}}*/
+-int    IntParam::Id(void){ return -1; }/*{{{*/
++int  IntParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int IntParam::ObjectEnum(void){/*{{{*/
++int  IntParam::ObjectEnum(void){/*{{{*/
+ 
+ 	return IntParamEnum;
+ 
+Index: ../trunk-jpl/src/c/classes/Params/MatrixParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/MatrixParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/MatrixParam.cpp	(revision 19254)
+@@ -49,7 +49,7 @@
+ 	this->value->Echo();
+ }
+ /*}}}*/
+-int    MatrixParam::Id(void){ return -1; }/*{{{*/
++int  MatrixParam::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+ int MatrixParam::ObjectEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/StringArrayParam.cpp	(revision 19254)
+@@ -87,7 +87,7 @@
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+ 		if(numstrings)sizes=xNew<int>(numstrings);
+ 		for(int i=0;i<numstrings;i++)sizes[i]=strlen(value[i])+1;
+-	}
++	}	
+ 
+ 	MARSHALLING_ENUM(StringArrayParamEnum);
+ 	
+@@ -96,12 +96,14 @@
+ 
+ 	if(numstrings){
+ 		MARSHALLING_DYNAMIC(sizes,int,numstrings);
+-		
+ 		if(marshall_direction==MARSHALLING_BACKWARD) value=xNew<char*>(numstrings);
+-		
+ 		for(int i=0;i<numstrings;i++)MARSHALLING_DYNAMIC(value[i],char,sizes[i]);
+ 	}
++	else value=NULL;
+ 
++	//cleanup sizes array
++	if(sizes) xDelete<int>(sizes);
++
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/TransientParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/TransientParam.cpp	(revision 19254)
+@@ -73,7 +73,23 @@
+ 
+ }
+ /*}}}*/
++void TransientParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(TransientParamEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(interpolation);
++	MARSHALLING(N);
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		values=xNew<IssmDouble>(N);
++		timesteps=xNew<IssmDouble>(N);
++	}
++	MARSHALLING_ARRAY(values,IssmDouble,N);
++	MARSHALLING_ARRAY(timesteps,IssmDouble,N);
++
++}
++/*}}}*/
++
+ /*TransientParam virtual functions definitions: */
+ void  TransientParam::GetParameterValue(IssmDouble* pdouble,IssmDouble time){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19254)
+@@ -127,15 +127,19 @@
+ 
+ 	MARSHALLING(enum_type);
+ 	MARSHALLING(M);
+-	MARSHALLING_DYNAMIC(mdim_array,int,M);
+-	MARSHALLING_DYNAMIC(ndim_array,int,M);
+-
+-	if(marshall_direction==MARSHALLING_BACKWARD)if(M)array=xNew<IssmDouble*>(M);
+-
+-	for(int i=0;i<M;i++){
+-		MARSHALLING_DYNAMIC(array[i],IssmDouble,mdim_array[i]*ndim_array[i]);
++	if(M){
++		MARSHALLING_DYNAMIC(mdim_array,int,M);
++		MARSHALLING_DYNAMIC(ndim_array,int,M);
++		if(marshall_direction==MARSHALLING_BACKWARD && M) array=xNew<IssmDouble*>(M);
++		for(int i=0;i<M;i++){
++			MARSHALLING_DYNAMIC(array[i],IssmDouble,mdim_array[i]*ndim_array[i]);
++		}
+ 	}
+-		
++	else{
++		array=NULL;
++		mdim_array=NULL;
++		ndim_array=NULL;
++	}
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 19254)
+@@ -157,6 +157,33 @@
+ 	return numericalflux;
+ }
+ /*}}}*/
++void    Numericalflux::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(NumericalfluxEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++	MARSHALLING(flux_type);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnodes      = new Hook();
++		this->hvertices   = new Hook();
++		this->helement    = new Hook();
++	}
++
++	this->hnodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	nodes    =(Node**)this->hnodes->deliverp();
++	vertices =(Vertex**)this->hvertices->deliverp();
++	element  =(Element*)this->helement->delivers();
++
++}
++/*}}}*/
+ void    Numericalflux::DeepEcho(void){/*{{{*/
+ 
+ 	_printf_("Numericalflux:\n");
+Index: ../trunk-jpl/src/c/classes/Loads/Penpair.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Penpair.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Penpair.cpp	(revision 19254)
+@@ -65,6 +65,25 @@
+ 
+ }
+ /*}}}*/
++void    Penpair::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(PenpairEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnodes = new Hook();
++	}
++	this->hnodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	nodes = (Node**)this->hnodes->deliverp();
++
++}
++/*}}}*/
+ void    Penpair::DeepEcho(void){/*{{{*/
+ 
+ 	_printf_("Penpair:\n");
+Index: ../trunk-jpl/src/c/classes/Loads/Riftfront.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Riftfront.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Riftfront.h	(revision 19254)
+@@ -61,7 +61,7 @@
+ 		void     Echo();
+ 		int      Id(); 
+ 		int      ObjectEnum();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void    InputUpdateFromConstant(IssmDouble constant, int name);
+Index: ../trunk-jpl/src/c/classes/Loads/Numericalflux.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Numericalflux.h	(revision 19254)
+@@ -44,7 +44,7 @@
+ 		void    Echo();
+ 		int     Id();
+ 		int     ObjectEnum();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void InputUpdateFromConstant(IssmDouble constant, int name){/*Do nothing*/};
+Index: ../trunk-jpl/src/c/classes/Loads/Penpair.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Penpair.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Penpair.h	(revision 19254)
+@@ -35,7 +35,7 @@
+ 		void     Echo();
+ 		int      Id(); 
+ 		int      ObjectEnum();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void  InputUpdateFromConstant(IssmDouble constant, int name);
+Index: ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 19254)
+@@ -104,13 +104,42 @@
+ 	pengrid->element=(Element*)pengrid->helement->delivers();
+ 
+ 	//let's not forget internals
+-	pengrid->active=this->active=0;
+-	pengrid->zigzag_counter=this->zigzag_counter=0;
++	pengrid->active=this->active;
++	pengrid->zigzag_counter=this->zigzag_counter;
+ 
+ 	return pengrid;
+ 
+ }
+ /*}}}*/
++void    Pengrid::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(PengridEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnode      = new Hook();
++		this->helement   = new Hook();
++		this->hmatpar    = new Hook();
++	}
++
++	this->hnode->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	node   =(Node*)this->hnode->delivers();
++	matpar =(Matpar*)this->hmatpar->delivers();
++	element=(Element*)this->helement->delivers();
++
++	MARSHALLING(active);
++	MARSHALLING(zigzag_counter);
++
++}
++/*}}}*/
+ void    Pengrid::DeepEcho(void){/*{{{*/
+ 
+ 	_printf_("Pengrid:\n");
+Index: ../trunk-jpl/src/c/classes/Loads/Pengrid.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 19254)
+@@ -54,7 +54,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Update virtual functions resolution: {{{*/
+ 		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
+Index: ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 19254)
+@@ -152,6 +152,49 @@
+ 
+ }
+ /*}}}*/
++void    Riftfront::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(RiftfrontEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++	MARSHALLING(type);
++	MARSHALLING(fill);
++	MARSHALLING(friction);
++	MARSHALLING(fractionincrement);
++	MARSHALLING(shelf);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnodes      = new Hook();
++		this->hmatpar     = new Hook();
++		this->helements   = new Hook();
++	}
++
++	this->hnodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->helements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	nodes     =(Node**)this->hnodes->deliverp();
++	matpar    =(Matpar*)this->hmatpar->delivers();
++	elements  =(Element**)this->helements->deliverp();
++
++	MARSHALLING(penalty_lock);
++	MARSHALLING(active);
++	MARSHALLING(frozen);
++	MARSHALLING(state);
++	MARSHALLING(counter);
++	MARSHALLING(prestable);
++	MARSHALLING(material_converged);
++	MARSHALLING(normal[0]);
++	MARSHALLING(normal[1]);
++	MARSHALLING(length);
++	MARSHALLING(fraction);
++
++}
++/*}}}*/
+ void    Riftfront::DeepEcho(void){/*{{{*/
+ 
+ 	_printf_("Riftfront:\n");
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19254)
+@@ -83,6 +83,7 @@
+ 	xDelete<char>(binfilename);
+ 	xDelete<char>(outbinfilename);
+ 	xDelete<char>(petscfilename);
++	xDelete<char>(restartfilename);
+ 	xDelete<char>(rootpath);
+ 
+ }
+@@ -624,7 +625,6 @@
+ 	/*Create buffer to hold marshalled femmodel: */
+ 	this->Marshall(NULL,&femmodel_size,MARSHALLING_SIZE);
+ 	femmodel_buffer=xNew<char>(femmodel_size); 
+-
+ 	/*Keep track of initial position of femmodel_buffer: */
+ 	femmodel_buffer_ini=femmodel_buffer;
+ 	
+@@ -661,7 +661,10 @@
+ 	/*Now, figure out whether this file actually exists!: */
+ 	restartfid=pfopen(restartfilename,"r",false);
+ 
+-	if(restartfid==NULL)return; //could not find the file, so no restart possible.
++	if(restartfid==NULL){
++		xDelete<char>(restartfilename);
++		return; //could not find the file, so no restart possible.
++	}
+ 
+ 	/*Figure out size of buffer to be read: */
+ 	fseek(restartfid, 0L, SEEK_END); 
+@@ -672,12 +675,15 @@
+ 	femmodel_buffer=xNew<char>(femmodel_size); 
+ 
+ 	/*Read buffer from file: */
+-	fread_return=fread(femmodel_buffer,femmodel_size,1,restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
++	fread_return=fread(femmodel_buffer,femmodel_size,sizeof(char),restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
+ 	femmodel_buffer_ini=femmodel_buffer; //keep track of the initial position, so as to free later.
+ 
+ 	/*Create new FemModel by demarshalling the buffer: */
+ 	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_BACKWARD);
+ 
++	/*Reset position of buffer: */
++	femmodel_buffer=femmodel_buffer_ini;
++
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+ 	
+@@ -689,16 +695,19 @@
+ /*}}}*/
+ void FemModel::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	int       i;
++	int       analysis_type;
++
+ 	if(marshall_direction==MARSHALLING_BACKWARD){
+-		delete profiler; profiler=new Profiler;
+-		delete elements; elements=new Elements();
+-		delete nodes; nodes=new Nodes();
+-		delete vertices; vertices=new Vertices();
+-		delete constraints; constraints=new Constraints();
++		delete profiler; profiler=new Profiler();
+ 		delete loads; loads=new Loads();
+ 		delete materials; materials=new Materials();
+ 		delete parameters; parameters=new Parameters();
++		delete constraints; constraints=new Constraints();
+ 		delete results; results=new Results();
++		delete nodes; nodes=new Nodes();
++		delete vertices; vertices=new Vertices();
++		delete elements; elements=new Elements();
+ 		xDelete<int>(analysis_type_list);
+ 	}
+ 
+@@ -706,18 +715,36 @@
+ 
+ 	MARSHALLING(solution_type);
+ 	MARSHALLING(analysis_counter);
+-	MARSHALLING_DYNAMIC(analysis_type_list,int,analysis_counter);
++	MARSHALLING(nummodels);
++	MARSHALLING_DYNAMIC(analysis_type_list,int,nummodels);
+ 
+ 	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		//reset hooks for elements, loads and nodes:
++		elements->ResetHooks();
++		loads->ResetHooks();
++		materials->ResetHooks();
++
++		//do the post-processing of the datasets to get an FemModel that can actually run analyses:
++		for(i=0;i<nummodels;i++){
++			analysis_type=analysis_type_list[i];
++			SetCurrentConfiguration(analysis_type);
++			if(i==0) VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
++			SpcNodesx(nodes,constraints,parameters,analysis_type);
++			NodesDofx(nodes,parameters,analysis_type);
++			ConfigureObjectsx(elements,loads,nodes,vertices,materials,parameters);
++		}
++	}
++
+ }
+ /*}}}*/
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19254)
+@@ -106,7 +106,6 @@
+ 	}
+ 	else tria->nodes = NULL;
+ 	
+-
+ 	tria->vertices = (Vertex**)this->hvertices->deliverp();
+ 	tria->material = (Material*)this->hmaterial->delivers();
+ 	tria->matpar   = (Matpar*)this->hmatpar->delivers();
+@@ -130,7 +129,6 @@
+ }
+ /*}}}*/
+ 
+-
+ /*Other*/
+ void       Tria::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19254)
+@@ -122,7 +122,23 @@
+ 
+ }
+ /*}}}*/
++void Penta::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(PentaEnum);
++
++	/*Call parent classes: */
++	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	PentaRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	vertices = (Vertex**)this->hvertices->deliverp();
++	material = (Material*)this->hmaterial->delivers();
++	matpar   = (Matpar*)this->hmatpar->delivers();
++	verticalneighbors = (Penta**)this->hneighbors->deliverp();
++
++}
++/*}}}*/
++
+ /*Other*/
+ void       Penta::AddBasalInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/PentaRef.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/PentaRef.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/PentaRef.h	(revision 19254)
+@@ -32,5 +32,6 @@
+ 		void SurfaceNodeIndices(int* pnumindices,int** pindices,int finiteelement);
+ 		int  TensorInterpolation(int fe_stokes);
+ 		int  VelocityInterpolation(int fe_stokes);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/ElementHook.cpp	(revision 19254)
+@@ -125,12 +125,12 @@
+ 		for (i=0;i<numanalyses;i++) if(this->hnodes[i])this->hnodes[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	}
+ 	this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmaterial->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 	if(this->hneighbors)this->hneighbors->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	/*Free ressources: */
+-	xDelete<bool>(hnodesi_null);
++	if(hnodesi_null) xDelete<bool>(hnodesi_null);
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19254)
+@@ -41,7 +41,7 @@
+ 		/*Object virtual functions definitions: {{{*/
+ 		Object *copy();
+ 		int     ObjectEnum();
+-		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Penta routines:{{{*/
+ 		void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 19254)
+@@ -46,10 +46,82 @@
+ }
+ /*}}}*/
+ Object* Seg::copy(){/*{{{*/
+-	_error_("not implemented yet");
++
++	int i;
++	Seg* seg=NULL;
++
++	seg=new Seg();
++
++	//deal with TriaRef mother class
++	int nanalyses = this->numanalyses;
++	if(nanalyses > 0){
++		seg->element_type_list=xNew<int>(nanalyses);
++		for(i=0;i<nanalyses;i++){
++			if (this->element_type_list[i]) seg->element_type_list[i]=this->element_type_list[i];
++			else seg->element_type_list[i] = 0;
++		}
++	}
++	else seg->element_type_list = NULL;
++	seg->element_type=this->element_type;
++	seg->numanalyses=nanalyses;
++
++	//deal with ElementHook mother class
++	if (this->hnodes){
++		seg->hnodes=xNew<Hook*>(seg->numanalyses);
++		for(i=0;i<seg->numanalyses;i++){
++			if (this->hnodes[i]) seg->hnodes[i] = (Hook*)(this->hnodes[i]->copy());
++			else seg->hnodes[i] = NULL;
++		}
++	}
++	else seg->hnodes = NULL;
++
++	seg->hvertices = (Hook*)this->hvertices->copy();
++	seg->hmaterial = (Hook*)this->hmaterial->copy();
++	seg->hmatpar   = (Hook*)this->hmatpar->copy();
++	seg->hneighbors = NULL;
++
++	/*deal with Element fields: */
++	seg->id  = this->id;
++	seg->sid = this->sid;
++	if(this->inputs) seg->inputs = (Inputs*)(this->inputs->Copy());
++	else seg->inputs=new Inputs();
++
++	/*point parameters: */
++	seg->parameters=this->parameters;
++
++	/*recover objects: */
++	if (this->nodes){
++		unsigned int num_nodes = 3;
++		seg->nodes = xNew<Node*>(num_nodes); //we cannot rely on an analysis_counter to tell us which analysis_type we are running, so we just copy the nodes.
++		for(i=0;i<num_nodes;i++) if(this->nodes[i]) seg->nodes[i]=this->nodes[i]; else seg->nodes[i] = NULL;
++	}
++	else seg->nodes = NULL;
++
++	seg->vertices = (Vertex**)this->hvertices->deliverp();
++	seg->material = (Material*)this->hmaterial->delivers();
++	seg->matpar   = (Matpar*)this->hmatpar->delivers();
++
++	return seg;
++
++
+ }
+ /*}}}*/
++void Seg::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(SegEnum);
++
++	/*Call parent classes: */
++	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	SegRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	vertices = (Vertex**)this->hvertices->deliverp();
++	material = (Material*)this->hmaterial->delivers();
++	matpar   = (Matpar*)this->hmatpar->delivers();
++
++}
++/*}}}*/
++
+ IssmDouble Seg::CharacteristicLength(void){/*{{{*/
+ 
+ 	IssmDouble xyz_list[NUMVERTICES][3];
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 19254)
+@@ -91,7 +91,7 @@
+ 	tetra->parameters=this->parameters;
+ 
+ 	/*recover objects: */
+-	unsigned int num_nodes = 3;
++	unsigned int num_nodes = 4;
+ 	tetra->nodes = xNew<Node*>(num_nodes); //we cannot rely on an analysis_counter to tell us which analysis_type we are running, so we just copy the nodes.
+ 	for(i=0;i<num_nodes;i++) if(this->nodes[i]) tetra->nodes[i]=this->nodes[i]; else tetra->nodes[i] = NULL;
+ 
+@@ -102,7 +102,22 @@
+ 	return tetra;
+ }
+ /*}}}*/
++void Tetra::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(TetraEnum);
++
++	/*Call parent classes: */
++	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	TetraRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	vertices = (Vertex**)this->hvertices->deliverp();
++	material = (Material*)this->hmaterial->delivers();
++	matpar   = (Matpar*)this->hmatpar->delivers();
++
++}
++/*}}}*/
++
+ void     Tetra::AddInput(int input_enum,IssmDouble* values, int interpolation_enum){/*{{{*/
+ 
+ 	/*Call inputs method*/
+Index: ../trunk-jpl/src/c/classes/Elements/SegRef.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/SegRef.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/SegRef.h	(revision 19254)
+@@ -24,5 +24,6 @@
+ 		void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussSeg* gauss,int finiteelement);
+ 		void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussSeg* gauss,int finiteelement);
+ 		int  NumberofNodes(int finiteelement);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Elements/TetraRef.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/TetraRef.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/TetraRef.h	(revision 19254)
+@@ -28,5 +28,6 @@
+ 		int  PressureInterpolation(int fe_stokes);
+ 		int  TensorInterpolation(int fe_stokes);
+ 		int  VelocityInterpolation(int fe_stokes);
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19254)
+@@ -37,7 +37,7 @@
+ 		/*Object virtual functions definitions:{{{ */
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Element virtual functions definitions: {{{*/
+ 		void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19254)
+@@ -37,7 +37,7 @@
+ 		/*Object virtual functions definitions:{{{ */
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!");};
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Element virtual functions definitions: {{{*/
+ 		void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19254)
+@@ -1527,7 +1527,10 @@
+ void       Element::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses){/*{{{*/
+ 	
+ 	_assert_(this);
+-	if(marshall_direction==MARSHALLING_BACKWARD) inputs=new Inputs();
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		inputs=new Inputs();
++		nodes = NULL;
++	}
+ 
+ 	MARSHALLING_ENUM(ElementEnum);
+ 	
+@@ -1535,6 +1538,7 @@
+ 	MARSHALLING(sid);
+ 	MARSHALLING(element_type);
+ 	MARSHALLING_DYNAMIC(element_type_list,int,numanalyses);
++	inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Hook.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Hook.cpp	(revision 19254)
+@@ -125,8 +125,18 @@
+ 
+ 	MARSHALLING_ENUM(HookEnum);
+ 	MARSHALLING(num);
+-	MARSHALLING_DYNAMIC(ids,int,num);
+-	MARSHALLING_DYNAMIC(offsets,int,num);
++	if (num<=0){
++		/*Empty hook*/
++		this->ids     = NULL;
++		this->objects = NULL;
++		this->offsets = NULL;
++		this->num = 0;
++	}
++	else{
++		MARSHALLING_DYNAMIC(ids,int,num);
++		MARSHALLING_DYNAMIC(offsets,int,num);
++		MARSHALLING_DYNAMIC(objects,Object*,num);
++	}
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/SegInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/SegInput.cpp	(revision 19254)
+@@ -44,9 +44,9 @@
+ 	_printf_("]\n");
+ }
+ /*}}}*/
+-int    SegInput::Id(void){ return -1; }/*{{{*/
++int  SegInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int SegInput::ObjectEnum(void){/*{{{*/
++int  SegInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return SegInputEnum;
+ 
+@@ -58,7 +58,21 @@
+ 
+ }
+ /*}}}*/
++void SegInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(SegInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(interpolation_type);
++
++	int numnodes = this->NumberofNodes(this->interpolation_type);
++	if(numnodes > 0){
++		MARSHALLING_DYNAMIC(this->values,IssmDouble,numnodes)
++	}
++	else this->values = NULL;
++}
++/*}}}*/
++
+ /*SegInput management*/
+ int SegInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.cpp	(revision 19254)
+@@ -27,7 +27,7 @@
+ 	/*Set values*/
+ 	if (numnodes > 0){
+ 		this->values=xNew<IssmDouble>((unsigned int)numnodes);
+-		for(int i=0;i<this->NumberofNodes(this->interpolation_type);i++) values[i]=in_values[i];
++		for(int i=0;i<numnodes;i++) values[i]=in_values[i];
+ 	}
+ 	else{
+ 		this->values = NULL;
+@@ -52,9 +52,9 @@
+ 	_printf_("] ("<<EnumToStringx(this->interpolation_type)<<")\n");
+ }
+ /*}}}*/
+-int    TetraInput::Id(void){ return -1; }/*{{{*/
++int  TetraInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int TetraInput::ObjectEnum(void){/*{{{*/
++int  TetraInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return TetraInputEnum;
+ 
+@@ -66,7 +66,21 @@
+ 
+ }
+ /*}}}*/
++void TetraInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(TetraInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(interpolation_type);
++
++	int numnodes = this->NumberofNodes(this->interpolation_type);
++	if(numnodes > 0){
++		MARSHALLING_DYNAMIC(this->values,IssmDouble,numnodes)
++	}
++	else this->values = NULL;
++}
++/*}}}*/
++
+ /*TetraInput management*/
+ int TetraInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19254)
+@@ -29,7 +29,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*DoubleInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp	(revision 19254)
+@@ -70,9 +70,9 @@
+ 	_printf_("---gradient: \n");   if (gradient)    gradient->Echo();
+ }
+ /*}}}*/
+-int    ControlInput::Id(void){ return -1; }/*{{{*/
++int  ControlInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int ControlInput::ObjectEnum(void){/*{{{*/
++int  ControlInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return ControlInputEnum;
+ 
+@@ -95,7 +95,41 @@
+ 	return output;
+ }
+ /*}}}*/
++void ControlInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(ControlInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(control_id);
++
++	if (marshall_direction == MARSHALLING_BACKWARD){
++		switch(enum_type){
++			case TriaInputEnum:
++				values     =new TriaInput();
++				savedvalues=new TriaInput();
++				minvalues  =new TriaInput();
++				maxvalues  =new TriaInput();
++				gradient   =new TriaInput();
++				break;
++			case PentaInputEnum:
++				values     =new PentaInput();
++				savedvalues=new PentaInput();
++				minvalues  =new PentaInput();
++				maxvalues  =new PentaInput();
++				gradient   =new PentaInput();
++				break;
++			default:
++				_error_("Input of Enum " << EnumToStringx(enum_type) << " not supported yet by ControlInput");
++		}
++	}
++	if(values) this->values->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if(savedvalues) this->savedvalues->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if(minvalues) this->minvalues->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if(maxvalues) this->maxvalues->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	if(gradient) this->gradient->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++}
++/*}}}*/
++
+ /*ControlInput management*/
+ int ControlInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19254)
+@@ -31,7 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*SegInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19254)
+@@ -31,7 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*TetraInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19254)
+@@ -34,7 +34,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*ControlInput management: {{{*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp	(revision 19254)
+@@ -72,6 +72,18 @@
+ 	return (Object*)output;
+ }
+ /*}}}*/
++void DatasetInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING_ENUM(DatasetInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(numids);
++	MARSHALLING_DYNAMIC(ids,int,numids)
++	if (marshall_direction == MARSHALLING_BACKWARD) inputs = new Inputs();
++	inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++}
++/*}}}*/
+ Input* DatasetInput::SpawnTriaInput(int index1,int index2,int index3){/*{{{*/
+ 
+ 	/*output*/
+Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19254)
+@@ -31,7 +31,7 @@
+ 		int   Id();
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*DatasetInput management: {{{*/
+ 		void   AddInput(Input* input,int id);
+Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/IntInput.cpp	(revision 19254)
+@@ -33,9 +33,9 @@
+ 	_printf_(setw(15)<<"   IntInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<this->value<<"\n");
+ }
+ /*}}}*/
+-int    IntInput::Id(void){ return -1; }/*{{{*/
++int  IntInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int IntInput::ObjectEnum(void){/*{{{*/
++int  IntInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return IntInputEnum;
+ 
+@@ -47,7 +47,16 @@
+ 
+ }
+ /*}}}*/
++void IntInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(IntInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
+ /*IntInput management*/
+ void IntInput::Echo(void){/*{{{*/
+ 	this->DeepEcho();
+Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.cpp	(revision 19254)
+@@ -37,9 +37,9 @@
+ 	_printf_(setw(15)<<"   BoolInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" "<<(value?"true":"false") << "\n");
+ }
+ /*}}}*/
+-int    BoolInput::Id(void){ return -1; }/*{{{*/
++int  BoolInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int BoolInput::ObjectEnum(void){/*{{{*/
++int  BoolInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return BoolInputEnum;
+ 
+@@ -51,7 +51,16 @@
+ 
+ }
+ /*}}}*/
++void BoolInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(BoolInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
+ /*BoolInput management*/
+ int BoolInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19254)
+@@ -27,7 +27,7 @@
+ 	/*Set values*/
+ 	if (numnodes > 0){
+ 		this->values=xNew<IssmDouble>((unsigned int)numnodes);
+-		for(int i=0;i<this->NumberofNodes(this->interpolation_type);i++) values[i]=in_values[i];
++		for(int i=0;i<numnodes;i++) values[i]=in_values[i];
+ 	}
+ 	else{
+ 		this->values = NULL;
+@@ -65,7 +65,21 @@
+ 
+ }
+ /*}}}*/
++void TriaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(TriaInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(interpolation_type);
++
++	int numnodes = this->NumberofNodes(this->interpolation_type);
++	if(numnodes > 0){
++		MARSHALLING_DYNAMIC(this->values,IssmDouble,numnodes)
++	}
++	else this->values = NULL;
++}
++/*}}}*/
++
+ /*TriaInput management*/
+ int TriaInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19254)
+@@ -30,7 +30,7 @@
+ 		int   Id(); 
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*IntInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19254)
+@@ -26,7 +26,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*BoolInput management: {{{*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19254)
+@@ -31,7 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*TriaInput management:*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.cpp	(revision 19254)
+@@ -27,7 +27,7 @@
+ 	/*Set values*/
+ 	if (numnodes > 0){
+ 		this->values=xNew<IssmDouble>((unsigned int)numnodes);
+-		for(int i=0;i<this->NumberofNodes(this->interpolation_type);i++) values[i]=in_values[i];
++		for(int i=0;i<numnodes;i++) values[i]=in_values[i];
+ 	}
+ 	else{
+ 		this->values = NULL;
+@@ -52,9 +52,9 @@
+ 	_printf_("]\n");
+ }
+ /*}}}*/
+-int    PentaInput::Id(void){ return -1; }/*{{{*/
++int  PentaInput::Id(void){ return -1; }/*{{{*/
+ /*}}}*/
+-int PentaInput::ObjectEnum(void){/*{{{*/
++int  PentaInput::ObjectEnum(void){/*{{{*/
+ 
+ 	return PentaInputEnum;
+ 
+@@ -66,7 +66,21 @@
+ 
+ }
+ /*}}}*/
++void PentaInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(PentaInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(interpolation_type);
++
++	int numnodes = this->NumberofNodes(this->interpolation_type);
++	if(numnodes > 0){
++		MARSHALLING_DYNAMIC(this->values,IssmDouble,numnodes)
++	}
++	else this->values = NULL;
++}
++/*}}}*/
++
+ /*PentaInput management*/
+ int PentaInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 19254)
+@@ -103,7 +103,19 @@
+ 
+ }
+ /*}}}*/
++void TransientInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	if (marshall_direction == MARSHALLING_BACKWARD) inputs = new Inputs();
++
++	MARSHALLING_ENUM(TransientInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(numtimesteps);
++	MARSHALLING_DYNAMIC(this->timesteps,IssmDouble,numtimesteps);
++	inputs->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++}
++/*}}}*/
++
+ /*TransientInput management*/
+ int TransientInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp	(revision 19254)
+@@ -51,7 +51,16 @@
+ 
+ }
+ /*}}}*/
++void DoubleInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(DoubleInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(value);
++
++}
++/*}}}*/
++
+ /*DoubleInput management*/
+ int DoubleInput::InstanceEnum(void){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19254)
+@@ -31,7 +31,7 @@
+ 		int     Id();
+ 		int     ObjectEnum();
+ 		Object *copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*PentaInput management*/
+ 		int   InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19254)
+@@ -36,7 +36,7 @@
+ 		int   Id();
+ 		int   ObjectEnum();
+ 		Object* copy();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*TransientInput management: {{{*/
+ 		int    InstanceEnum();
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.h	(revision 19254)
+@@ -34,7 +34,7 @@
+ 		void    Echo();
+ 		int     Id();
+ 		int     ObjectEnum();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 
+ 		/*Constraint virtual functions definitions*/
+ 		void ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcTransient.h	(revision 19254)
+@@ -35,7 +35,7 @@
+ 		void    Echo();
+ 		int     Id(); 
+ 		int     ObjectEnum();
+-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++		void    Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
+ 		/*}}}*/
+ 		/*Constraint virtual functions definitions: {{{*/
+ 		void   ActivatePenaltyMethod(void);
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp	(revision 19254)
+@@ -76,7 +76,21 @@
+ 
+ }
+ /*}}}*/
++void    SpcDynamic::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(SpcDynamicEnum);
++
++	MARSHALLING(sid);
++	MARSHALLING(nodeid);
++	MARSHALLING(dof);
++	MARSHALLING(value);
++	MARSHALLING(analysis_type);
++	MARSHALLING(isset);
++	MARSHALLING(penalty);
++
++}
++/*}}}*/
++
+ /*Constraint virtual functions definitions: */
+ void SpcDynamic::ActivatePenaltyMethod(void){/*{{{*/
+ 	this->penalty = true;
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp	(revision 19254)
+@@ -78,7 +78,7 @@
+ 
+ }
+ /*}}}*/
+-void     SpcStatic::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++void    SpcStatic::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+ 	MARSHALLING_ENUM(SpcStaticEnum);
+ 
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 19254)
+@@ -84,7 +84,28 @@
+ 
+ }
+ /*}}}*/
++void    SpcTransient::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
++	MARSHALLING_ENUM(SpcStaticEnum);
++
++	MARSHALLING(sid);
++	MARSHALLING(nodeid);
++	MARSHALLING(dof);
++	MARSHALLING(analysis_type);
++	MARSHALLING(penalty);
++	MARSHALLING(nsteps);
++	if(nsteps){
++		MARSHALLING_DYNAMIC(values,IssmDouble,nsteps);
++		MARSHALLING_DYNAMIC(times,IssmDouble,nsteps);
++	}
++	else{
++		values=NULL;
++		times=NULL;
++	}
++
++}
++/*}}}*/
++
+ /*Constraint virtual functions definitions:*/
+ void SpcTransient::ActivatePenaltyMethod(void){/*{{{*/
+ 	   this->penalty = true;
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19253)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19254)
+@@ -89,70 +89,284 @@
+ void DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 	
+ 	vector<Object*>::iterator obj;
+-	int obj_enum;
++	int obj_size=0;
++	int obj_enum=0;
+ 	int i;
+ 
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
+-		numsorted=objects.size();
++		obj_size=objects.size();
+ 	}
++	else{
++		clear();
++	}
+ 
+ 	MARSHALLING_ENUM(DataSetEnum);
+ 	MARSHALLING(enum_type);
+ 	MARSHALLING(sorted);
+ 	MARSHALLING(presorted);
+ 	MARSHALLING(numsorted);
+-	MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
+-	MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
+ 
+ 	/*Now branch according to direction of marshalling: */
+ 	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
++		if(!(this->sorted && numsorted>0 && this->id_offsets)){
++			sorted_ids=NULL;
++			id_offsets=NULL;
++		  }
++		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
++		MARSHALLING(obj_size);
++
+ 		/*Go through our objects, and marshall them into the buffer: */
+ 		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
++			obj_enum=(*obj)->ObjectEnum();
++			MARSHALLING(obj_enum);
+ 			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 		}
+ 	}
+ 	else{
++
++		MARSHALLING_DYNAMIC(sorted_ids,int,numsorted);
++		MARSHALLING_DYNAMIC(id_offsets,int,numsorted);
++		if (!(this->sorted && numsorted>0)){
++		 sorted_ids=NULL;
++		 id_offsets=NULL;
++		}
++		MARSHALLING(obj_size);
++
+ 		/*This is the heart of the demashalling method. We have a buffer coming
+ 		 in, and we are supposed to create a dataset out of it. No such thing
+ 		 as class orientation for buffers, we need to key off the enum of each
+ 		 object stored in the buffer. */
+-		for(i=0;i<this->numsorted;i++){
++		for(i=0;i<obj_size;i++){
+ 
+ 			/*Recover enum of object first: */
+-			MARSHALLING_ENUM(obj_enum); 
+-			/*Reset the file pointer to point again to the beginning of the object: */
+-			*pmarshalled_data-=sizeof(int);
++			MARSHALLING(obj_enum); 
+ 
+ 			/*Giant case statement to spin-up the right object, and demarshall into it the information 
+ 			 *stored in the buffer: */
+ 			if(obj_enum==NodeEnum){
+-					Node* node=NULL;
+-					node=new Node();
+-					node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-					this->AddObject(node);
++				Node* node=NULL;
++				node=new Node();
++				node->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(node);
+ 			}
+ 			else if(obj_enum==VertexEnum){
+ 				Vertex* vertex=NULL;
+ 				vertex=new Vertex();
+ 				vertex->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 				this->AddObject(vertex);
+-				break;
+ 			}
+ 			else if(obj_enum==DoubleParamEnum){
+ 				DoubleParam* doubleparam=NULL;
+ 				doubleparam=new DoubleParam();
+ 				doubleparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 				this->AddObject(doubleparam);
+-				break;
+ 			}
+ 			else if(obj_enum==IntParamEnum){
+ 				IntParam* intparam=NULL;
+ 				intparam=new IntParam();
+ 				intparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 				this->AddObject(intparam);
+-				break;
+ 			}
+-			else _error_("could not recognize enum type: " << obj_enum); 
++			else if(obj_enum==IntMatParamEnum){
++				IntMatParam* intmparam=NULL;
++				intmparam=new IntMatParam();
++				intmparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(intmparam);
++			}
++			else if(obj_enum==IntVecParamEnum){
++				IntVecParam* intvparam=NULL;
++				intvparam=new IntVecParam();
++				intvparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(intvparam);
++			}
++			else if(obj_enum==BoolParamEnum){
++				BoolParam* boolparam=NULL;
++				boolparam=new BoolParam();
++				boolparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(boolparam);
++			}
++			else if(obj_enum==DataSetParamEnum){
++				DataSetParam* dsparam=NULL;
++				dsparam=new DataSetParam();
++				dsparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(dsparam);
++			}
++			else if(obj_enum==DoubleMatArrayParamEnum){
++				DoubleMatArrayParam* dmaparam=NULL;
++				dmaparam=new DoubleMatArrayParam();
++				dmaparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(dmaparam);
++			}
++			else if(obj_enum==DoubleMatParamEnum){
++				DoubleMatParam* dmparam=NULL;
++				dmparam=new DoubleMatParam();
++				dmparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(dmparam);
++			}
++			else if(obj_enum==DoubleVecParamEnum){
++				DoubleVecParam* dvparam=NULL;
++				dvparam=new DoubleVecParam();
++				dvparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(dvparam);
++			}
++			else if(obj_enum==FileParamEnum){
++				FileParam* fileparam=NULL;
++				fileparam=new FileParam();
++				fileparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(fileparam);
++			}
++			else if(obj_enum==StringParamEnum){
++				StringParam* sparam=NULL;
++				sparam=new StringParam();
++				sparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(sparam);
++			}
++			else if(obj_enum==StringArrayParamEnum){
++				StringArrayParam* saparam=NULL;
++				saparam=new StringArrayParam();
++				saparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(saparam);
++			}
++			else if(obj_enum==TransientParamEnum){
++				TransientParam* transparam=NULL;
++				transparam=new TransientParam();
++				transparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(transparam);
++			}
++			else if(obj_enum==MaticeEnum){
++				Matice* matice=NULL;
++				matice=new Matice();
++				matice->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(matice);
++			}
++			else if(obj_enum==MatparEnum){
++				Matpar* matpar=NULL;
++				matpar=new Matpar();
++				matpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(matpar);
++			}
++			else if(obj_enum==SpcStaticEnum){
++				SpcStatic* spcstatic=NULL;
++				spcstatic=new SpcStatic();
++				spcstatic->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(spcstatic);
++			}
++			else if(obj_enum==SpcDynamicEnum){
++				SpcDynamic* spcdynamic=NULL;
++				spcdynamic=new SpcDynamic();
++				spcdynamic->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(spcdynamic);
++			}
++			else if(obj_enum==SpcTransientEnum){
++				SpcTransient* spctransient=NULL;
++				spctransient=new SpcTransient();
++				spctransient->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(spctransient);
++			}
++			else if(obj_enum==TriaEnum){
++				Tria* tria=NULL;
++				tria=new Tria();
++				tria->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(tria);
++			}
++			else if(obj_enum==PentaEnum){
++				Penta* penta=NULL;
++				penta=new Penta();
++				penta->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(penta);
++			}
++			else if(obj_enum==TetraEnum){
++				Tetra* tetra=NULL;
++				tetra=new Tetra();
++				tetra->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(tetra);
++			}
++			else if(obj_enum==SegEnum){
++				Seg* seg=NULL;
++				seg=new Seg();
++				seg->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(seg);
++			}
++			else if(obj_enum==BoolInputEnum){
++				BoolInput* boolinput=NULL;
++				boolinput=new BoolInput();
++				boolinput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(boolinput);
++			}
++			else if(obj_enum==DoubleInputEnum){
++				DoubleInput* doubleinput=NULL;
++				doubleinput=new DoubleInput();
++				doubleinput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(doubleinput);
++			}
++			else if(obj_enum==IntInputEnum){
++				IntInput* intinput=NULL;
++				intinput=new IntInput();
++				intinput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(intinput);
++			}
++			else if(obj_enum==ControlInputEnum){
++				ControlInput* cinput=NULL;
++				cinput=new ControlInput();
++				cinput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(cinput);
++			}
++			else if(obj_enum==TransientInputEnum){
++				TransientInput* transinput=NULL;
++				transinput=new TransientInput();
++				transinput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(transinput);
++			}
++			else if(obj_enum==TriaInputEnum){
++				TriaInput* triainput=NULL;
++				triainput=new TriaInput();
++				triainput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(triainput);
++			}
++			else if(obj_enum==PentaInputEnum){
++				PentaInput* pentainput=NULL;
++				pentainput=new PentaInput();
++				pentainput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(pentainput);
++			}
++			else if(obj_enum==TetraInputEnum){
++				TetraInput* tetrainput=NULL;
++				tetrainput=new TetraInput();
++				tetrainput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(tetrainput);
++			}
++			else if(obj_enum==SegInputEnum){
++				SegInput* seginput=NULL;
++				seginput=new SegInput();
++				seginput->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(seginput);
++			}
++			else if(obj_enum==RiftfrontEnum){
++				Riftfront* rift=NULL;
++				rift=new Riftfront();
++				rift->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(rift);
++			}
++			else if(obj_enum==NumericalfluxEnum){
++				Numericalflux* numflux=NULL;
++				numflux=new Numericalflux();
++				numflux->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(numflux);
++			}
++			else if(obj_enum==PengridEnum){
++				Pengrid* pengrid=NULL;
++				pengrid=new Pengrid();
++				pengrid->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(pengrid);
++			}
++			else if(obj_enum==PenpairEnum){
++				Penpair* penpair=NULL;
++				penpair=new Penpair();
++				penpair->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++				this->AddObject(penpair);
++			}
++			else _error_("could not recognize enum type: " << obj_enum << ": " << EnumToStringx(obj_enum) ); 
+ 		}
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19254-19255.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19254-19255.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19254-19255.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/classes/DofIndexing.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 19254)
++++ ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 19255)
+@@ -301,8 +301,8 @@
+ 	MARSHALLING(ssize);
+ 	MARSHALLING(clone);
+ 	MARSHALLING(active);
+-	MARSHALLING_DYNAMIC(f_set,bool,fsize);
+-	MARSHALLING_DYNAMIC(s_set,bool,ssize);
++	MARSHALLING_DYNAMIC(f_set,bool,gsize);
++	MARSHALLING_DYNAMIC(s_set,bool,gsize);
+ 	MARSHALLING_DYNAMIC(svalues,IssmDouble,gsize);
+ 	MARSHALLING_DYNAMIC(doftype,int,gsize);
+ 	MARSHALLING_DYNAMIC(gdoflist,int,gsize);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19255-19256.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19255-19256.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19255-19256.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 19255)
++++ ../trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp	(revision 19256)
+@@ -86,7 +86,7 @@
+ /*}}}*/
+ void    SpcTransient::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+-	MARSHALLING_ENUM(SpcStaticEnum);
++	MARSHALLING_ENUM(SpcTransientEnum);
+ 
+ 	MARSHALLING(sid);
+ 	MARSHALLING(nodeid);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19256-19257.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19256-19257.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19256-19257.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 19256)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 19257)
+@@ -9,6 +9,7 @@
+ from constants import constants
+ from SMB import SMB
+ from SMBpdd import SMBpdd
++from SMBd18opdd import SMBd18opdd
+ from SMBgradients import SMBgradients
+ from SMBcomponents import SMBcomponents
+ from SMBmeltcomponents import SMBmeltcomponents
Index: /issm/oecreview/Archive/19101-20495/ISSM-19257-19258.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19257-19258.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19257-19258.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 19257)
++++ ../trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 19258)
+@@ -104,8 +104,8 @@
+ 	pengrid->element=(Element*)pengrid->helement->delivers();
+ 
+ 	//let's not forget internals
+-	pengrid->active=this->active;
+-	pengrid->zigzag_counter=this->zigzag_counter;
++	pengrid->active=this->active=0;
++	pengrid->zigzag_counter=this->zigzag_counter=0;
+ 
+ 	return pengrid;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19258-19259.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19258-19259.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19258-19259.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19258)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19259)
+@@ -40,11 +40,12 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]'))
+-			if self.isd18opd:
+-				string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
+-				string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
+-				string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
+-				string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
++		if self.isd18opd:
++			string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
++
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19259-19260.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19259-19260.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19259-19260.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19259)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19260)
+@@ -99,7 +99,7 @@
+ 
+ 		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer')
+ 
+-      WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19260-19261.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19260-19261.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19260-19261.diff	(revision 20498)
@@ -0,0 +1,165 @@
+Index: ../trunk-jpl/src/c/classes/Params/FileParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19260)
++++ ../trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19261)
+@@ -57,9 +57,10 @@
+ void FileParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 
+ 	MARSHALLING_ENUM(FileParamEnum);
++	MARSHALLING(enum_type);
+ 	MARSHALLING(value);
+ 
+-	if(marshall_direction==MARSHALLING_BACKWARD)value=NULL; //meaningless file pointer!
++	if(marshall_direction==MARSHALLING_BACKWARD) value=NULL; //meaningless file pointer!
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19260)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19261)
+@@ -412,6 +412,10 @@
+ 		ConfigureObjectsx(output->elements,output->loads,output->nodes,output->vertices,output->materials,output->parameters);
+ 	}
+ 
++	/*Reset current configuration: */
++	analysis_type=output->analysis_type_list[analysis_counter];
++	output->SetCurrentConfiguration(analysis_type);
++
+ 	return output;
+ }
+ /*}}}*/
+@@ -649,6 +653,7 @@
+ void FemModel::Restart(){ /*{{{*/
+ 
+ 	FILE* restartfid=NULL;
++	FILE* output_fid=NULL;
+ 	char* restartfilename = NULL;
+ 	int   femmodel_size=0; 
+ 	int   fread_return=0; 
+@@ -678,15 +683,19 @@
+ 	fread_return=fread(femmodel_buffer,femmodel_size,sizeof(char),restartfid); if(fread_return!=1)_error_("error reading the buffer from marshalled file!");
+ 	femmodel_buffer_ini=femmodel_buffer; //keep track of the initial position, so as to free later.
+ 
++	this->parameters->FindParam(&output_fid,OutputFilePointerEnum);
++
+ 	/*Create new FemModel by demarshalling the buffer: */
+ 	this->Marshall(&femmodel_buffer,NULL,MARSHALLING_BACKWARD);
+ 
++	this->parameters->SetParam(output_fid,OutputFilePointerEnum);
++
+ 	/*Reset position of buffer: */
+ 	femmodel_buffer=femmodel_buffer_ini;
+ 
+ 	/*Done, close file :*/
+ 	pfclose(restartfid,restartfilename);
+-	
++
+ 	/*Free ressources: */
+ 	xDelete<char>(restartfilename);
+ 	xDelete<char>(femmodel_buffer);
+@@ -699,16 +708,26 @@
+ 	int       analysis_type;
+ 
+ 	if(marshall_direction==MARSHALLING_BACKWARD){
+-		delete profiler; profiler=new Profiler();
+-		delete loads; loads=new Loads();
+-		delete materials; materials=new Materials();
+-		delete parameters; parameters=new Parameters();
+-		delete constraints; constraints=new Constraints();
+-		delete results; results=new Results();
+-		delete nodes; nodes=new Nodes();
+-		delete vertices; vertices=new Vertices();
+-		delete elements; elements=new Elements();
+-		xDelete<int>(analysis_type_list);
++		delete this->profiler;
++		delete this->loads;
++		delete this->materials;
++		delete this->parameters;
++		delete this->constraints;
++		delete this->results;
++		delete this->nodes;
++		delete this->vertices;
++		delete this->elements;
++		xDelete<int>(this->analysis_type_list);
++
++		this->profiler = new Profiler();
++		this->loads = new Loads();
++		this->materials = new Materials();
++		this->parameters = new Parameters();
++		this->constraints = new Constraints();
++		this->results = new Results();
++		this->nodes = new Nodes();
++		this->vertices = new Vertices();
++		this->elements = new Elements();
+ 	}
+ 
+ 	MARSHALLING_ENUM(FemModelEnum);
+@@ -718,31 +737,35 @@
+ 	MARSHALLING(nummodels);
+ 	MARSHALLING_DYNAMIC(analysis_type_list,int,nummodels);
+ 
+-	profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->profiler->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->loads->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->materials->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->parameters->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->constraints->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->results->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->nodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->vertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->elements->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	if(marshall_direction==MARSHALLING_BACKWARD){
+ 		//reset hooks for elements, loads and nodes:
+-		elements->ResetHooks();
+-		loads->ResetHooks();
+-		materials->ResetHooks();
++		this->elements->ResetHooks();
++		this->loads->ResetHooks();
++		this->materials->ResetHooks();
+ 
+ 		//do the post-processing of the datasets to get an FemModel that can actually run analyses:
+ 		for(i=0;i<nummodels;i++){
+-			analysis_type=analysis_type_list[i];
++			analysis_type=this->analysis_type_list[i];
+ 			SetCurrentConfiguration(analysis_type);
+-			if(i==0) VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
+-			SpcNodesx(nodes,constraints,parameters,analysis_type);
+-			NodesDofx(nodes,parameters,analysis_type);
+-			ConfigureObjectsx(elements,loads,nodes,vertices,materials,parameters);
++			if(i==0) VerticesDofx(this->vertices,this->parameters); //only call once, we only have one set of vertices
++			SpcNodesx(this->nodes,this->constraints,this->parameters,analysis_type);
++			NodesDofx(this->nodes,this->parameters,analysis_type);
++			ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters);
+ 		}
++
++		/*Reset current configuration: */
++		analysis_type=this->analysis_type_list[analysis_counter];
++		SetCurrentConfiguration(analysis_type);
+ 	}
+ 
+ }
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19260)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19261)
+@@ -214,7 +214,9 @@
+ 				FileParam* fileparam=NULL;
+ 				fileparam=new FileParam();
+ 				fileparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-				this->AddObject(fileparam);
++				delete fileparam;
++				/* No need to add this object, the pointer is not valid             
++				   The FemModel should reset all FileParams in the restart function */
+ 			}
+ 			else if(obj_enum==StringParamEnum){
+ 				StringParam* sparam=NULL;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19261-19262.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19261-19262.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19261-19262.diff	(revision 20498)
@@ -0,0 +1,122 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19261)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19262)
+@@ -105,12 +105,21 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
+ 
++                        A=self.Tdiff;
++                        A(end,:) = A(end,:)*yts;
++                        WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
++
+ 			if self.isd18opd
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
++
++                                D=self.delta18o;
++                                D(end,:) = D(end,:)*yts;
++                                WriteData(fid,'data',D,'enum',SurfaceforcingsDelta18oEnum(),'format','DoubleMat','mattype',3);
++                                
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
+-			end
++
++   end
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19261)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19262)
+@@ -154,16 +154,38 @@
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++
++                                A=self.Tdiff
++                                A(end,:) = A(end,:)*yts;
++                                WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
++                                
++                                C=self.sealev
++                                C(end,:) = C(end,:)*yts;                                
++                                WriteData(fid,'data',C,'enum',SurfaceforcingsSealevEnum(),'format','DoubleMat','mattype',3);
++
++				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
++				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
+ 			elseif self.ismungsm
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++
++                                A=self.Tdiff;
++                                A(end,:) = A(end,:)*yts;
++                                WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
++                                
++                                B=self.Pfac;
++                                B(end,:) = B(end,:)*yts;
++                                WriteData(fid,'data',B,'enum',SurfaceforcingsPfacEnum(),'format','DoubleMat','mattype',3);
++
++                                C=self.sealev;
++                                C(end,:) = C(end,:)*yts;                                
++                                WriteData(fid,'data',C,'enum',SurfaceforcingsSealevEnum(),'format','DoubleMat','mattype',3);
++                                
++                                % WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1);
++				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
++				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
+ 			end
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19261)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19262)
+@@ -67,29 +67,32 @@
+ 			 fprintf(fid,'#!/bin/bash\n');
+ 			 fprintf(fid,'#$ -cwd\n');
+           fprintf(fid,'#$ -N issm\n');
++          fprintf(fid,'#$ -l h_rt=00:15:00\n');
+           % fprintf(fid,'#$ -l h_rt=25:00:0\n');
+-          fprintf(fid,'#$ -l h_rt=47:59:00\n');
++          % fprintf(fid,'#$ -l h_rt=47:59:00\n');
+           % fprintf(fid,'#$ -l h_rt=72:00:0\n');
+-          % fprintf(fid,'#$ -l h_rt=96:00:0\n');
++          fprintf(fid,'#$ -l h_rt=96:00:0\n');
+           % fprintf(fid,'#$ -l h_rt=336:00:0\n');
+ 
+           fprintf(fid,'#$ -l h_vmem=2G\n');
+ 
+           % ---- Which queue to use ----
+-          % fprintf(fid,'#$ -q tarasov.q\n'); %
+-          %fprintf(fid,'#$ -q medium.q@*,short.q@*\n');
+-          fprintf(fid,'#$ -q short.q@*\n');
++          %fprintf(fid,'#$ -q tarasov.q\n'); %
++          fprintf(fid,'#$ -q short.q@*,medium.q@*\n');
++          %fprintf(fid,'#$ -q medium.q@*\n');
++          %fprintf(fid,'#$ -q short.q@*\n');
+ 
+           % ---- Which node are selected ----
+-          %fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
+-          % fprintf(fid,'#$ -l h=cl0* \n');
+-          %fprintf(fid,'#$ -l h=cl338 \n');
++          % fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
++          %fprintf(fid,'#$ -l h=cl0* \n');
++          % fprintf(fid,'#$ -l h=cl338 \n');
+           % Acenet nodes with 16cpus and more than 60G mem
+           % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
+   
+           % ---- cpus on different nodes ----
+-          fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
++           fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
+           % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
++          %fprintf(fid,'#$ -pe 4per* %i\n',cluster.np);
+           % -------- All cpus in the same node --------          
+           % fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
+           
Index: /issm/oecreview/Archive/19101-20495/ISSM-19262-19263.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19262-19263.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19262-19263.diff	(revision 20498)
@@ -0,0 +1,170 @@
+Index: ../trunk-jpl/test/Archives/Archive238.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive239.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19262)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19263)
+@@ -106,12 +106,12 @@
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 
+ 		if self.isd18opd:
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','DoubleMat','mattype',1)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19262)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19263)
+@@ -79,15 +79,15 @@
+ 			fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]');
+ 			fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]');
+ 			fielddisplay(self,'rlaps','present day lapse rate [degree/km]');
+-                        if(self.isd18opd==1) 
+-                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
+-                            fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and d18opd activated');  
+-                            fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
+-                        end
+-                        % No need to display rlapslgm, Tdiff, ismungsm
+-                        % as they are not used in this case but are still needed as default values in
+-                        % PositiveDegreeDay (Tria.cpp) used in that case
++			if(self.isd18opd==1) 
++				fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm/d18opd is activated');
++				fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm/d18opd is activated');
++				fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and d18opd activated');  
++				fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
++			end
++			% No need to display rlapslgm, Tdiff, ismungsm
++			% as they are not used in this case but are still needed as default values in
++			% PositiveDegreeDay (Tria.cpp) used in that case
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+@@ -102,24 +102,15 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 
+-                        A=self.Tdiff;
+-                        A(end,:) = A(end,:)*yts;
+-                        WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
+-
+ 			if self.isd18opd
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-
+-                                D=self.delta18o;
+-                                D(end,:) = D(end,:)*yts;
+-                                WriteData(fid,'data',D,'enum',SurfaceforcingsDelta18oEnum(),'format','DoubleMat','mattype',3);
+-                                
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',3,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
+-
+-   end
++			end
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19262)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19263)
+@@ -160,14 +160,14 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1)			
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)			
+ 		elif self.ismungsm:
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19262)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19263)
+@@ -154,38 +154,16 @@
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
+-
+-                                A=self.Tdiff
+-                                A(end,:) = A(end,:)*yts;
+-                                WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
+-                                
+-                                C=self.sealev
+-                                C(end,:) = C(end,:)*yts;                                
+-                                WriteData(fid,'data',C,'enum',SurfaceforcingsSealevEnum(),'format','DoubleMat','mattype',3);
+-
+-				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 			elseif self.ismungsm
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
+-
+-                                A=self.Tdiff;
+-                                A(end,:) = A(end,:)*yts;
+-                                WriteData(fid,'data',A,'enum',SurfaceforcingsTdiffEnum(),'format','DoubleMat','mattype',3);
+-                                
+-                                B=self.Pfac;
+-                                B(end,:) = B(end,:)*yts;
+-                                WriteData(fid,'data',B,'enum',SurfaceforcingsPfacEnum(),'format','DoubleMat','mattype',3);
+-
+-                                C=self.sealev;
+-                                C(end,:) = C(end,:)*yts;                                
+-                                WriteData(fid,'data',C,'enum',SurfaceforcingsSealevEnum(),'format','DoubleMat','mattype',3);
+-                                
+-                                % WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1);
+-				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1);
+-				% WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 			end
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19263-19264.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19263-19264.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19263-19264.diff	(revision 20498)
@@ -0,0 +1,220 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19263)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19264)
+@@ -538,6 +538,8 @@
+ 			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+ 			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+ 			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++
++			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
+ 		}
+ 	}
+ 
+@@ -569,7 +571,7 @@
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -628,6 +630,9 @@
+ 			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+ 			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+ 			input4->GetInputValue(&PrecipitationsLgm[iv][month],gauss,month/12.*yts);
++
++			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
++			PrecipitationsLgm[iv][month]=PrecipitationsLgm[iv][month]*yts;
+ 		}
+ 	}
+ 
+@@ -654,7 +659,7 @@
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -713,6 +718,8 @@
+ 			gauss->GaussVertex(iv);
+ 			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+ 			input2->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++
++			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
+ 		}
+ 	}
+ 
+@@ -737,7 +744,7 @@
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -1686,6 +1693,7 @@
+ 			yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin
+ 			monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+ 			input2->GetInputValue(&monthlyprec[iv][month],gauss,time_yr+month/12.*yts);
++			monthlyprec[iv][month]=monthlyprec[iv][month]*yts;
+ 		}
+ 	}
+ 
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19263)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19264)
+@@ -110,8 +110,8 @@
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 
+ 		if self.isd18opd:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','DoubleMat','mattype',1)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19263)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19264)
+@@ -106,9 +106,9 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 
+ 			if self.isd18opd
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',3,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
+ 			end
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19263)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19264)
+@@ -151,22 +151,22 @@
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
+ 
+ 		if (self.isdelta18o==0 and self.ismungsm==0):
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 		elif self.isdelta18o:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)			
+ 		elif self.ismungsm:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19263)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19264)
+@@ -107,27 +107,27 @@
+ 			fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]');
+ 			fielddisplay(self,'rlaps','present day lapse rate [degree/km]');
+ 			fielddisplay(self,'rlapslgm','LGM lapse rate [degree/km]');
+-                        if(self.isdelta18o==0 & self.ismungsm==0)
+-                            fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']);
+-                            fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']);
+-                        elseif(self.isdelta18o==1)
+-                            fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated');
+-                            fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated');
+-                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
+-                            fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
+-                        elseif(self.ismungsm==1)
+-                            fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
+-                            fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
+-                            fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated');
+-                            fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
+-                            fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
+-                        end
++			if(self.isdelta18o==0 & self.ismungsm==0)
++				fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']);
++				fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']);
++			elseif(self.isdelta18o==1)
++				fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated');
++				fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated');
++				fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
++				fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
++				fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
++				fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
++				fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
++				fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
++			elseif(self.ismungsm==1)
++				fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated');
++				fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated');
++				fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
++				fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o/mungsm is activated');
++				fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated');
++				fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
++				fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
++			end
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+@@ -148,19 +148,19 @@
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			elseif self.isdelta18o
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 			elseif self.ismungsm
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19264-19265.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19264-19265.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19264-19265.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/test/Archives/Archive238.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive239.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19265-19266.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19265-19266.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19265-19266.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19265)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19266)
+@@ -32,7 +32,7 @@
+     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+ 
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19265)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19266)
+@@ -32,7 +32,7 @@
+     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+ 
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19265)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19266)
+@@ -32,7 +32,7 @@
+     md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19266-19267.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19266-19267.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19266-19267.diff	(revision 20498)
@@ -0,0 +1,174 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19266)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19267)
+@@ -111,6 +111,7 @@
+ 	}
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum);
++	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum,0.);
+ 	iomodel->FetchDataToInput(elements,VyEnum,0.);
+ }/*}}}*/
+@@ -136,9 +137,13 @@
+ }/*}}}*/
+ ElementMatrix* StressbalanceVerticalAnalysis::CreateKMatrix(Element* element){/*{{{*/
+ 
++	bool hack = false;
++
+ 	/*compute all stiffness matrices for this element*/
+ 	ElementMatrix* Ke1=CreateKMatrixVolume(element);
+-	ElementMatrix* Ke2=CreateKMatrixSurface(element);
++	ElementMatrix* Ke2=NULL;
++	if(hack) Ke2=CreateKMatrixBase(element);
++	else Ke2=CreateKMatrixSurface(element);
+ 	ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
+ 
+ 	/*clean-up and return*/
+@@ -147,6 +152,47 @@
+ 	return Ke;
+ 
+ }/*}}}*/
++ElementMatrix* StressbalanceVerticalAnalysis::CreateKMatrixBase(Element* element){/*{{{*/
++
++
++	if(!element->IsOnBase()) return NULL;
++
++	/*Intermediaries*/
++	IssmDouble  D,Jdet,normal[3];
++	IssmDouble *xyz_list = NULL;
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Initialize Element matrix and vectors*/
++	ElementMatrix* Ke    = element->NewElementMatrix(NoneApproximationEnum);
++	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinatesBase(&xyz_list);
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss = element->NewGaussBase(2);
++	element->NormalBase(&normal[0],xyz_list);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminantBase(&Jdet,xyz_list,gauss);
++		element->NodalFunctions(basis,gauss);
++		D = -gauss->weight*Jdet*normal[2];
++
++		TripleMultiply( basis,1,numnodes,1,
++					&D,1,1,0,
++					basis,1,numnodes,0,
++					&Ke->values[0],1);
++	}
++
++	/*Clean up and return*/
++	delete gauss;
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(basis);
++	return Ke;
++}/*}}}*/
+ ElementMatrix* StressbalanceVerticalAnalysis::CreateKMatrixSurface(Element* element){/*{{{*/
+ 
+ 
+@@ -231,9 +277,13 @@
+ }/*}}}*/
+ ElementVector* StressbalanceVerticalAnalysis::CreatePVector(Element* element){/*{{{*/
+ 
++	bool hack = false;
++
+ 	/*compute all load vectors for this element*/
+ 	ElementVector* pe1=CreatePVectorVolume(element);
+-	ElementVector* pe2=CreatePVectorBase(element);
++	ElementVector* pe2=NULL;
++	if(hack) pe2=CreatePVectorSurface(element);
++	else     pe2=CreatePVectorBase(element);
+ 	ElementVector* pe =new ElementVector(pe1,pe2);
+ 
+ 	/*clean-up and return*/
+@@ -307,6 +357,66 @@
+ 	xDelete<IssmDouble>(xyz_list_base);
+ 	return pe;
+ }/*}}}*/
++ElementVector* StressbalanceVerticalAnalysis::CreatePVectorSurface(Element* element){/*{{{*/
++
++	/*Intermediaries */
++	int         approximation;
++	IssmDouble *xyz_list      = NULL;
++	IssmDouble *xyz_list_surface= NULL;
++	IssmDouble  Jdet,slope[3];
++	IssmDouble  vx,vy,vz=0.,dsdx,dsdy;
++	IssmDouble  smb,smbvalue;
++
++	if(!element->IsOnSurface()) return NULL;
++
++	/*Fetch number of nodes for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Initialize Element vector*/
++	ElementVector* pe    = element->NewElementVector();
++	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++	element->GetVerticesCoordinatesTop(&xyz_list_surface);
++	element->GetInputValue(&approximation,ApproximationEnum);
++	Input* surface_input    =element->GetInput(SurfaceEnum);               _assert_(surface_input);
++	Input* smb_input=element->GetInput(SurfaceforcingsMassBalanceEnum);    _assert_(smb_input);
++	Input* vx_input=element->GetInput(VxEnum);                             _assert_(vx_input);
++	Input* vy_input=element->GetInput(VyEnum);                             _assert_(vy_input);
++	Input* vzFS_input=NULL;
++	if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
++		vzFS_input=element->GetInput(VzFSEnum);       _assert_(vzFS_input);
++	}
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGaussTop(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		smb_input->GetInputValue(&smb,gauss);
++		surface_input->GetInputDerivativeValue(&slope[0],xyz_list,gauss);
++		vx_input->GetInputValue(&vx,gauss);
++		vy_input->GetInputValue(&vy,gauss);
++		if(approximation==HOFSApproximationEnum || approximation==SSAFSApproximationEnum){
++			vzFS_input->GetInputValue(&vz,gauss);
++		}
++		dsdx=slope[0];
++		dsdy=slope[1];
++
++		element->JacobianDeterminantTop(&Jdet,xyz_list_surface,gauss);
++		element->NodalFunctions(basis,gauss);
++
++		for(int i=0;i<numnodes;i++) pe->values[i]+=-Jdet*gauss->weight*(vx*dsdx+vy*dsdy-vz+smb)*basis[i];
++	}
++
++	/*Clean up and return*/
++	delete gauss;
++	xDelete<IssmDouble>(basis);
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(xyz_list_surface);
++	return pe;
++}/*}}}*/
+ ElementVector* StressbalanceVerticalAnalysis::CreatePVectorVolume(Element* element){/*{{{*/
+ 
+ 	/*Intermediaries*/
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h	(revision 19266)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h	(revision 19267)
+@@ -24,10 +24,12 @@
+ 		ElementVector* CreateDVector(Element* element);
+ 		ElementMatrix* CreateJacobianMatrix(Element* element);
+ 		ElementMatrix* CreateKMatrix(Element* element);
++		ElementMatrix* CreateKMatrixBase(Element* element);
+ 		ElementMatrix* CreateKMatrixSurface(Element* element);
+ 		ElementMatrix* CreateKMatrixVolume(Element* element);
+ 		ElementVector* CreatePVector(Element* element);
+ 		ElementVector* CreatePVectorBase(Element* element);
++		ElementVector* CreatePVectorSurface(Element* element);
+ 		ElementVector* CreatePVectorVolume(Element* element);
+ 		void           GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
+ 		void           GetBprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19267-19268.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19267-19268.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19267-19268.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/c/shared/Elements/ComputeMungsmTemperaturePrecipitation.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/ComputeMungsmTemperaturePrecipitation.cpp	(revision 19267)
++++ ../trunk-jpl/src/c/shared/Elements/ComputeMungsmTemperaturePrecipitation.cpp	(revision 19268)
+@@ -20,7 +20,7 @@
+     tdiffh = TdiffTime*( TemperaturesLgm[imonth] - TemperaturesPresentday[imonth] );
+     monthlytemperaturestmp[imonth] = tdiffh + TemperaturesPresentday[imonth] ;
+ 
+-    monthlyprectmp[imonth] =min(1.5, PrecipitationsPresentday[imonth] * pow(PrecipitationsLgm[imonth],PfacTime));   // [m/month]
++    monthlyprectmp[imonth] =min(1.5, PrecipitationsPresentday[imonth] * pow(PrecipitationsLgm[imonth],PfacTime));   // [m/yr]
+ 
+     /*Assign output pointer*/
+     *(monthlytemperaturesout+imonth) = monthlytemperaturestmp[imonth];
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19267)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19268)
+@@ -118,30 +118,23 @@
+ 
+ 			if(ismungsm){
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
+-			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+ 			  parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsPfacEnum);
+ 			
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsTdiffEnum); _assert_(N==2);
+-			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+ 			  parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsTdiffEnum);
+ 
+ 			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsSealevEnum); _assert_(N==2);
+-			  for(i=0;i<M;i++) temp[M+i]=temp[M+i];
+ 			  parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],interp,M));
+ 			  iomodel->DeleteData(temp,SurfaceforcingsSealevEnum);
+ 			}
+ 			if(isdelta18o){
+-				iomodel->Constant(&yts,ConstantsYtsEnum);
+-
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+-				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+ 				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
+ 
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
+-				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+ 				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
+ 			}
+@@ -157,10 +150,7 @@
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+ 			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			if(isd18opd){
+-				iomodel->Constant(&yts,ConstantsYtsEnum);
+-
+ 				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+-				for(i=0;i<M;i++) temp[M+i]=yts*temp[M+i];
+ 				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+ 				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
+ 				
Index: /issm/oecreview/Archive/19101-20495/ISSM-19268-19269.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19268-19269.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19268-19269.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/Archives/Archive238.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive239.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive236.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19269-19270.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19269-19270.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19269-19270.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19269)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19270)
+@@ -11,10 +11,16 @@
+ %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+ %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
++md.timestepping.interp_forcings=0;
++
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
++md.surfaceforcings.delta18o=delta18o(:,1:(md.timestepping.final_time/md.timestepping.time_step)+1);
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+@@ -38,11 +44,6 @@
+     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+-% time steps and resolution
+-md.timestepping.time_step=0.5;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=2;
+-md.timestepping.interp_forcings=0;
+ 
+ % 
+ md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 19269)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 19270)
+@@ -10,20 +10,11 @@
+ md.surfaceforcings.isdelta18o=0;
+ md.surfaceforcings.ismungsm=1;
+ 
+-if md.surfaceforcings.isdelta18o==0 & md.surfaceforcings.ismungsm==0
+-    md.surfaceforcings.precipitation=zeros(md.mesh.numberofvertices,1);
+-    md.surfaceforcings.monthlytemperatures=273*ones(md.mesh.numberofvertices,1);
+-end
+-    
++% time steps and resolution
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
+ 
+-% Add temperature, precipitation and delta18o needed to measure the surface mass balance
+-% % creating delta18o
+-% load '../Data/delta18o.data'
+-% md.surfaceforcings.delta18o=delta18o;
+-% % creating delta18oSurface
+-% md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
+-% md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
+-
+ % creating Present day and lgm temperatures
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+@@ -52,19 +43,16 @@
+     md.surfaceforcings.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+-md.surfaceforcings.Pfac(1,1:md.timestepping.final_time)=0.5;
+-md.surfaceforcings.Tdiff(1,1:md.timestepping.final_time)=0.5;
+-md.surfaceforcings.sealev(1,1:md.timestepping.final_time)=0.5;
+-% Year of each data point
+-md.surfaceforcings.Pfac(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
+-md.surfaceforcings.Tdiff(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
+-md.surfaceforcings.sealev(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
++for iint=1:(md.timestepping.final_time/md.timestepping.time_step)+1
++    md.surfaceforcings.Pfac(1,iint)=0.15*iint;
++    md.surfaceforcings.Tdiff(1,iint)=0.15*iint;
++    md.surfaceforcings.sealev(1,iint)=0.15*iint;
++    % Year of each data point
++    md.surfaceforcings.Pfac(2,iint)=(iint-1)*20;
++    md.surfaceforcings.Tdiff(2,iint)=(iint-1)*20;
++    md.surfaceforcings.sealev(2,iint)=(iint-1)*20;
++end
+ 
+-% time steps and resolution
+-md.timestepping.time_step=20;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=60;
+-
+ %
+ md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+ md=extrude(md,3,1);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19270-19271.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19270-19271.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19270-19271.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19271-19272.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19271-19272.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19271-19272.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19272-19273.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19272-19273.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19272-19273.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19272)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19273)
+@@ -11,16 +11,10 @@
+ %md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+ %md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+-% time steps and resolution
+-md.timestepping.time_step=20;
+-md.settings.output_frequency=1;
+-md.timestepping.final_time=60;
+-md.timestepping.interp_forcings=0;
+-
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o(:,1:(md.timestepping.final_time/md.timestepping.time_step)+1);
++md.surfaceforcings.delta18o=delta18o;
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+@@ -44,6 +38,11 @@
+     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
++% time steps and resolution
++md.timestepping.time_step=0.5;
++md.settings.output_frequency=1;
++md.timestepping.final_time=2;
++md.timestepping.interp_forcings=0;
+ 
+ % 
+ md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
+Index: ../trunk-jpl/test/Archives/Archive240.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19273-19274.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19273-19274.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19273-19274.diff	(revision 20498)
@@ -0,0 +1,249 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19273)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19274)
+@@ -512,10 +512,12 @@
+ 	int        numvertices = this->GetNumberOfVertices();
+ 
+ 	int        i;
+-	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
+-	IssmDouble TemperaturesPresentday[numvertices][12],TemperaturesLgm[numvertices][12];
+-	IssmDouble PrecipitationsPresentday[numvertices][12];
+-	IssmDouble tmp[numvertices];
++	IssmDouble* monthlytemperatures=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* monthlyprec=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* TemperaturesPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* TemperaturesLgm=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* tmp=xNew<IssmDouble>(numvertices);
+ 	IssmDouble Delta18oPresent,Delta18oLgm,Delta18oTime;
+ 	IssmDouble Delta18oSurfacePresent,Delta18oSurfaceLgm,Delta18oSurfaceTime;
+ 	IssmDouble time,yts,finaltime,time_yr;
+@@ -535,11 +537,11 @@
+ 	for(int month=0;month<12;month++){
+ 		for(int iv=0;iv<numvertices;iv++){
+ 			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++			input->GetInputValue(&TemperaturesPresentday[iv*12+month],gauss,month/12.*yts);
++			input2->GetInputValue(&TemperaturesLgm[iv*12+month],gauss,month/12.*yts);
++			input3->GetInputValue(&PrecipitationsPresentday[iv*12+month],gauss,month/12.*yts);
+ 
+-			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
++			PrecipitationsPresentday[iv*12+month]=PrecipitationsPresentday[iv*12+month]*yts;
+ 		}
+ 	}
+ 
+@@ -555,23 +557,23 @@
+ 	for(int iv=0;iv<numvertices;iv++){
+ 		ComputeDelta18oTemperaturePrecipitation(Delta18oSurfacePresent, Delta18oSurfaceLgm, Delta18oSurfaceTime,
+ 					Delta18oPresent, Delta18oLgm, Delta18oTime,
+-					&PrecipitationsPresentday[iv][0],
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++					&PrecipitationsPresentday[iv*12],
++					&TemperaturesLgm[iv*12], &TemperaturesPresentday[iv*12],
++					&monthlytemperatures[iv*12], &monthlyprec[iv*12]);
+ 	}
+ 
+ 	/*Update inputs*/
+ 	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+ 	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -606,10 +608,13 @@
+ 	int        numvertices = this->GetNumberOfVertices();
+ 
+ 	int        i;
+-	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
+-	IssmDouble TemperaturesPresentday[numvertices][12],TemperaturesLgm[numvertices][12];
+-	IssmDouble PrecipitationsPresentday[numvertices][12],PrecipitationsLgm[numvertices][12];
+-	IssmDouble tmp[numvertices];
++	IssmDouble* monthlytemperatures=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* monthlyprec=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* TemperaturesPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* TemperaturesLgm=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* PrecipitationsLgm=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* tmp=xNew<IssmDouble>(numvertices);
+ 	IssmDouble TdiffTime,PfacTime;
+ 	IssmDouble time,yts,time_yr;
+ 	this->parameters->FindParam(&time,TimeEnum);
+@@ -626,13 +631,13 @@
+ 	for(int month=0;month<12;month++) {
+ 		for(int iv=0;iv<numvertices;iv++) {
+ 			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&TemperaturesLgm[iv][month],gauss,month/12.*yts);
+-			input3->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
+-			input4->GetInputValue(&PrecipitationsLgm[iv][month],gauss,month/12.*yts);
++			input->GetInputValue(&TemperaturesPresentday[iv*12+month],gauss,month/12.*yts);
++			input2->GetInputValue(&TemperaturesLgm[iv*12+month],gauss,month/12.*yts);
++			input3->GetInputValue(&PrecipitationsPresentday[iv*12+month],gauss,month/12.*yts);
++			input4->GetInputValue(&PrecipitationsLgm[iv*12+month],gauss,month/12.*yts);
+ 
+-			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
+-			PrecipitationsLgm[iv][month]=PrecipitationsLgm[iv][month]*yts;
++			PrecipitationsPresentday[iv*12+month]=PrecipitationsPresentday[iv*12+month]*yts;
++			PrecipitationsLgm[iv*12+month]=PrecipitationsLgm[iv*12+month]*yts;
+ 		}
+ 	}
+ 
+@@ -643,23 +648,23 @@
+ 	/*Compute the temperature and precipitation*/
+ 	for(int iv=0;iv<numvertices;iv++){
+ 		ComputeMungsmTemperaturePrecipitation(TdiffTime,PfacTime,
+-					&PrecipitationsLgm[iv][0],&PrecipitationsPresentday[iv][0],
+-					&TemperaturesLgm[iv][0], &TemperaturesPresentday[iv][0],
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++					&PrecipitationsLgm[iv*12],&PrecipitationsPresentday[iv*12],
++					&TemperaturesLgm[iv*12], &TemperaturesPresentday[iv*12],
++					&monthlytemperatures[iv*12], &monthlyprec[iv*12]);
+ 	}
+ 
+ 	/*Update inputs*/
+ 	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+ 	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -694,10 +699,11 @@
+ 	int        numvertices = this->GetNumberOfVertices();
+ 
+ 	int        i;
+-	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
+-	IssmDouble TemperaturesPresentday[numvertices][12];
+-	IssmDouble PrecipitationsPresentday[numvertices][12];
+-	IssmDouble tmp[numvertices];
++	IssmDouble* monthlytemperatures=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* monthlyprec=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* TemperaturesPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* PrecipitationsPresentday=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* tmp=xNew<IssmDouble>(numvertices);
+ 	IssmDouble Delta18oTime;
+ 	IssmDouble dpermil;
+ 	IssmDouble time,yts,time_yr,month;
+@@ -716,10 +722,10 @@
+ 	for(int month=0;month<12;month++) {
+ 		for(int iv=0;iv<numvertices;iv++) {
+ 			gauss->GaussVertex(iv);
+-			input->GetInputValue(&TemperaturesPresentday[iv][month],gauss,month/12.*yts);
+-			input2->GetInputValue(&PrecipitationsPresentday[iv][month],gauss,month/12.*yts);
++			input->GetInputValue(&TemperaturesPresentday[iv*12+month],gauss,month/12.*yts);
++			input2->GetInputValue(&PrecipitationsPresentday[iv*12+month],gauss,month/12.*yts);
+ 
+-			PrecipitationsPresentday[iv][month]=PrecipitationsPresentday[iv][month]*yts;
++			PrecipitationsPresentday[iv*12+month]=PrecipitationsPresentday[iv*12+month]*yts;
+ 		}
+ 	}
+ 
+@@ -729,22 +735,22 @@
+ 	/*Compute the temperature and precipitation*/
+ 	for(int iv=0;iv<numvertices;iv++){
+ 		ComputeD18OTemperaturePrecipitationFromPD(Delta18oTime,dpermil,
+-					&PrecipitationsPresentday[iv][0], &TemperaturesPresentday[iv][0],
+-					&monthlytemperatures[iv][0], &monthlyprec[iv][0]);
++					&PrecipitationsPresentday[iv*12], &TemperaturesPresentday[iv*12],
++					&monthlytemperatures[iv*12], &monthlyprec[iv*12]);
+ 	}
+ 
+ 	/*Update inputs*/
+ 	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+ 	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+-		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth]/yts;
++		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+ 			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+@@ -1656,11 +1662,13 @@
+ 	int  numvertices = this->GetNumberOfVertices();
+ 
+ 	int        i;
+-	IssmDouble agd[numvertices];             // surface mass balance
+-	IssmDouble monthlytemperatures[numvertices][12],monthlyprec[numvertices][12];
+-	IssmDouble yearlytemperatures[numvertices]; memset(yearlytemperatures, 0., numvertices*sizeof(IssmDouble));
+-	IssmDouble tmp[numvertices];
+-	IssmDouble h[numvertices],s[numvertices];
++	IssmDouble* agd=xNew<IssmDouble>(numvertices); // surface mass balance
++	IssmDouble* monthlytemperatures=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* monthlyprec=xNew<IssmDouble>(12*numvertices);
++	IssmDouble* yearlytemperatures=xNew<IssmDouble>(numvertices); memset(yearlytemperatures, 0., numvertices*sizeof(IssmDouble));
++	IssmDouble* tmp=xNew<IssmDouble>(numvertices);
++	IssmDouble* h=xNew<IssmDouble>(numvertices);
++	IssmDouble* s=xNew<IssmDouble>(numvertices);
+ 	IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
+ 	IssmDouble PfacTime,TdiffTime,sealevTime;
+ 	IssmDouble mavg=1./12.; //factor for monthly average
+@@ -1689,11 +1697,11 @@
+ 	for(int month=0;month<12;month++) {
+ 		for(int iv=0;iv<numvertices;iv++) {
+ 			gauss->GaussVertex(iv);
+-			input->GetInputValue(&monthlytemperatures[iv][month],gauss,time_yr+month/12.*yts);
+-			yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv][month]*mavg; // Has to be in Kelvin
+-			monthlytemperatures[iv][month]=monthlytemperatures[iv][month]-273.15; // conversion from Kelvin to celcius for PDD module
+-			input2->GetInputValue(&monthlyprec[iv][month],gauss,time_yr+month/12.*yts);
+-			monthlyprec[iv][month]=monthlyprec[iv][month]*yts;
++			input->GetInputValue(&monthlytemperatures[iv*12+month],gauss,time_yr+month/12.*yts);
++			yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv*12+month]*mavg; // Has to be in Kelvin
++			monthlytemperatures[iv*12+month]=monthlytemperatures[iv*12+month]-273.15; // conversion from Kelvin to celcius for PDD module
++			input2->GetInputValue(&monthlyprec[iv*12+month],gauss,time_yr+month/12.*yts);
++			monthlyprec[iv*12+month]=monthlyprec[iv*12+month]*yts;
+ 		}
+ 	}
+ 
+@@ -1715,7 +1723,7 @@
+ 
+ 	/*measure the surface mass balance*/
+ 	for (int iv = 0; iv<numvertices; iv++){
+-		agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv][0], &monthlyprec[iv][0],
++		agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv*12], &monthlyprec[iv*12],
+ 					pdds, pds, signorm, yts, h[iv], s[iv],
+ 					desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
+ 					rho_water,rho_ice);
+@@ -1725,11 +1733,11 @@
+ 	// TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+ 	// TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
+ 	// for (int imonth=0;imonth<12;imonth++) {
+-	//   for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i][imonth];
++	//   for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 	//   TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
+ 	//   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+ 	//
+-	//   for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i][imonth];
++	//   for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 	//   TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
+ 	//   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+ 	// }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19274-19275.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19274-19275.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19274-19275.diff	(revision 20498)
@@ -0,0 +1,61 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19274)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19275)
+@@ -599,6 +599,13 @@
+ 
+ 	/*clean-up*/
+ 	delete gauss;
++	xDelete<IssmDouble>(monthlytemperatures);
++	xDelete<IssmDouble>(monthlyprec);
++	xDelete<IssmDouble>(TemperaturesPresentday);
++	xDelete<IssmDouble>(TemperaturesLgm);
++	xDelete<IssmDouble>(PrecipitationsPresentday);
++	xDelete<IssmDouble>(tmp);
++
+ }
+ /*}}}*/
+ void       Element::MungsmtpParameterization(void){/*{{{*/
+@@ -690,6 +697,14 @@
+ 
+ 	/*clean-up*/
+ 	delete gauss;
++	xDelete<IssmDouble>(monthlytemperatures);
++	xDelete<IssmDouble>(monthlyprec);
++	xDelete<IssmDouble>(TemperaturesPresentday);
++	xDelete<IssmDouble>(TemperaturesLgm);
++	xDelete<IssmDouble>(PrecipitationsPresentday);
++	xDelete<IssmDouble>(PrecipitationsLgm);
++	xDelete<IssmDouble>(tmp);
++
+ }
+ /*}}}*/
+ void       Element::Delta18opdParameterization(void){/*{{{*/
+@@ -776,6 +791,12 @@
+ 
+ 	/*clean-up*/
+ 	delete gauss;
++	xDelete<IssmDouble>(monthlytemperatures);
++	xDelete<IssmDouble>(monthlyprec);
++	xDelete<IssmDouble>(TemperaturesPresentday);
++	xDelete<IssmDouble>(PrecipitationsPresentday);
++	xDelete<IssmDouble>(tmp);
++	
+ }
+ /*}}}*/
+ void       Element::Echo(void){/*{{{*/
+@@ -1773,6 +1794,14 @@
+ 
+ 	/*clean-up*/
+ 	delete gauss;
++	xDelete<IssmDouble>(monthlytemperatures);
++	xDelete<IssmDouble>(monthlyprec);
++	xDelete<IssmDouble>(agd);
++	xDelete<IssmDouble>(yearlytemperatures);
++	xDelete<IssmDouble>(h);
++	xDelete<IssmDouble>(s);
++	xDelete<IssmDouble>(tmp);
++
+ }
+ /*}}}*/
+ IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19275-19276.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19275-19276.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19275-19276.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19275)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19276)
+@@ -111,7 +111,7 @@
+ 	}
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum);
+-	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
++	//iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum,0.);
+ 	iomodel->FetchDataToInput(elements,VyEnum,0.);
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19276-19277.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19276-19277.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19276-19277.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19276)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19277)
+@@ -19,15 +19,11 @@
+ md.surfaceforcings.isdelta18o=0
+ md.surfaceforcings.ismungsm=1
+ 
++# time steps and resolution
++md.timestepping.time_step=20.
++md.settings.output_frequency=1
++md.timestepping.final_time=60.
+ 
+-# # Add temperature, precipitation and delta18o needed to measure the surface mass balance
+-# # creating delta18o
+-# delta18o=numpy.loadtxt('../Data/delta18o.data')
+-# md.surfaceforcings.delta18o=delta18o
+-# # creating delta18oSurface
+-# md.surfaceforcings.delta18o_surface = numpy.zeros((2,numpy.size(delta18o,axis=1)))
+-# md.surfaceforcings.delta18o_surface[1,:] = delta18o[1,:]
+-
+ # creating Present day and lgm temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+@@ -57,20 +53,16 @@
+     md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+     md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+-# Interpolation factors
+-md.surfaceforcings.Pfac=0.5*numpy.ones((2,md.timestepping.final_time))
+-md.surfaceforcings.Tdiff=0.5*numpy.ones((2,md.timestepping.final_time))
+-md.surfaceforcings.sealev=0.5*numpy.ones((2,md.timestepping.final_time))
+-# Year of each data point
+-md.surfaceforcings.Pfac[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
+-md.surfaceforcings.Tdiff[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
+-md.surfaceforcings.sealev[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
++for iint in xrange(0,(md.timestepping.final_time/md.timestepping.time_step)+2)
++    # Interpolation factors
++	 md.surfaceforcings.Pfac[1,iint]=0.15*(iint+1);
++	 md.surfaceforcings.Tdiff[1,iint]=0.15*(iint+1);
++	 md.surfaceforcings.sealev[1,iint]=0.15*(iint+1);
++	 # Year of each data point
++	 md.surfaceforcings.Pfac[2,iint]=(iint)*20;
++	 md.surfaceforcings.Tdiff[2,iint]=(iint)*20;
++	 md.surfaceforcings.sealev[2,iint]=(iint)*20;
+ 
+-# time steps and resolution
+-md.timestepping.time_step=20.
+-md.settings.output_frequency=1
+-md.timestepping.final_time=60.
+-
+ #
+ md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
+ md.extrude(3,1.)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19277-19278.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19277-19278.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19277-19278.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19277)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19278)
+@@ -53,15 +53,19 @@
+     md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+     md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+-for iint in xrange(0,(md.timestepping.final_time/md.timestepping.time_step)+2)
++fsize=int(md.timestepping.final_time/md.timestepping.time_step)+2
++md.surfaceforcings.Pfac=numpy.zeros((2,fsize))
++md.surfaceforcings.Tdiff=numpy.zeros((2,fsize))
++md.surfaceforcings.sealev=numpy.zeros((2,fsize))
++for iint in xrange(0,fsize):
+     # Interpolation factors
+-	 md.surfaceforcings.Pfac[1,iint]=0.15*(iint+1);
+-	 md.surfaceforcings.Tdiff[1,iint]=0.15*(iint+1);
+-	 md.surfaceforcings.sealev[1,iint]=0.15*(iint+1);
++	 md.surfaceforcings.Pfac[0,iint]=0.15*(iint+1)
++	 md.surfaceforcings.Tdiff[0,iint]=0.15*(iint+1)
++	 md.surfaceforcings.sealev[0,iint]=0.15*(iint+1)
+ 	 # Year of each data point
+-	 md.surfaceforcings.Pfac[2,iint]=(iint)*20;
+-	 md.surfaceforcings.Tdiff[2,iint]=(iint)*20;
+-	 md.surfaceforcings.sealev[2,iint]=(iint)*20;
++	 md.surfaceforcings.Pfac[1,iint]=(float(iint))*20
++	 md.surfaceforcings.Tdiff[1,iint]=(float(iint))*20
++	 md.surfaceforcings.sealev[1,iint]=(float(iint))*20
+ 
+ #
+ md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
Index: /issm/oecreview/Archive/19101-20495/ISSM-19278-19279.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19278-19279.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19278-19279.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19278)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19279)
+@@ -113,5 +113,5 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double')
+ 	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19279-19280.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19279-19280.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19279-19280.diff	(revision 20498)
@@ -0,0 +1,72 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19279)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19280)
+@@ -29,7 +29,7 @@
+ for imonth in xrange(0,12):
+     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+ md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+@@ -43,9 +43,9 @@
+     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # time steps and resolution
+-md.timestepping.time_step=0.5
+-md.timestepping.final_time=2.
+-md.timestepping.interp_forcings=0
++md.timestepping.time_step=0.5;
++md.settings.output_frequency=1;
++md.timestepping.final_time=2;
+ 
+ # 
+ md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19279)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19280)
+@@ -29,7 +29,7 @@
+ for imonth in xrange(0,12):
+     md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+ md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+@@ -43,8 +43,10 @@
+     md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # time steps and resolution
+-md.timestepping.time_step=20.
+-md.timestepping.final_time=60.
++md.timestepping.time_step=0.5;
++md.settings.output_frequency=1;
++md.timestepping.final_time=2;
++md.timestepping.interp_forcings=0;
+ 
+ # 
+ md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19279)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19280)
+@@ -40,11 +40,12 @@
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+     md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # time steps and resolution
+-md.timestepping.time_step=0.5
+-md.timestepping.final_time=2.
++md.timestepping.time_step=20;
++md.settings.output_frequency=1;
++md.timestepping.final_time=60;
+ 
+ # 
+ md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
Index: /issm/oecreview/Archive/19101-20495/ISSM-19280-19281.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19280-19281.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19280-19281.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/externalpackages/autotools/install-win.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19280)
++++ ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19281)
+@@ -43,4 +43,6 @@
+ make install
+ cd ..
+ 
++# This patch takes care of removing options passed to the linker that casuse 
++# the build to fail.
+ patch ./install/share/aclocal/libtool.m4 < ./patches/libtool.m4.patch
Index: /issm/oecreview/Archive/19101-20495/ISSM-19281-19282.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19281-19282.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19281-19282.diff	(revision 20498)
@@ -0,0 +1,173 @@
+Index: ../trunk-jpl/src/c/classes/Materials/Matice.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19281)
++++ ../trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 19282)
+@@ -29,6 +29,7 @@
+ Matice::Matice(){/*{{{*/
+ 	this->helement=NULL;
+ 	this->element=NULL;
++	this->isdamaged=false;
+ 	return;
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19281)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19282)
+@@ -18,6 +18,55 @@
+ /*}}}*/
+ Matpar::Matpar(int matpar_mid, IoModel* iomodel){/*{{{*/
+ 
++	rho_ice=0;
++	rho_water=0;
++	rho_freshwater=0;
++	mu_water=0;
++	heatcapacity=0;
++	thermalconductivity=0;
++	temperateiceconductivity=0;
++	latentheat=0;
++	beta=0;
++	meltingpoint=0;
++	referencetemperature=0;
++	mixed_layer_capacity=0;
++	thermal_exchange_velocity=0;
++	g=0;
++	omega=0;
++	desfac=0;
++	s0p=0;
++	s0t=0;
++	rlaps=0;
++	rlapslgm=0;
++	dpermil=0;
++
++	sediment_compressibility=0;
++	sediment_porosity=0;
++	sediment_thickness=0;
++	water_compressibility=0;
++
++	epl_compressibility=0;
++	epl_porosity=0;
++	epl_init_thickness=0;
++	epl_colapse_thickness=0;
++	epl_max_thickness=0;
++	epl_conductivity=0;
++
++	lithosphere_shear_modulus=0;
++	lithosphere_density=0;
++	mantle_shear_modulus=0;
++	mantle_density=0;
++
++	poisson=0;
++	young_modulus=0;
++	ridging_exponent=0;
++	cohesion=0;
++	internal_friction_coef=0;
++	compression_coef=0;
++	traction_coef=0;
++	time_relaxation_stress=0;
++	time_relaxation_damage=0;
++
+ 	bool isefficientlayer;
+ 	int  hydrology_model,smb_model,materials_type;
+ 	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
+@@ -150,9 +199,9 @@
+ 	this->Echo();
+ }		
+ /*}}}*/
+-int    Matpar::Id(void){ return mid; }/*{{{*/
++int  Matpar::Id(void){ return mid; }/*{{{*/
+ /*}}}*/
+-int Matpar::ObjectEnum(void){/*{{{*/
++int  Matpar::ObjectEnum(void){/*{{{*/
+ 
+ 	return MatparEnum;
+ 
+@@ -236,7 +285,7 @@
+ 	MARSHALLING(rlapslgm);
+ 	MARSHALLING(dpermil);
+ 
+-	/*hydrology Dual Porous Continuum: */
++	//hydrology Dual Porous Continuum:
+ 	MARSHALLING(sediment_compressibility);
+ 	MARSHALLING(sediment_porosity);
+ 	MARSHALLING(sediment_thickness);
+@@ -249,13 +298,13 @@
+ 	MARSHALLING(epl_max_thickness);
+ 	MARSHALLING(epl_conductivity);
+ 
+-	/*gia: */
++	//gia:
+ 	MARSHALLING(lithosphere_shear_modulus);
+ 	MARSHALLING(lithosphere_density);
+ 	MARSHALLING(mantle_shear_modulus);
+ 	MARSHALLING(mantle_density);
+ 
+-	/*Sea ice*/
++	//Sea ice:
+ 	MARSHALLING(poisson);
+ 	MARSHALLING(young_modulus);
+ 	MARSHALLING(ridging_exponent);
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19281)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19282)
+@@ -763,7 +763,7 @@
+ 			ConfigureObjectsx(this->elements,this->loads,this->nodes,this->vertices,this->materials,this->parameters);
+ 		}
+ 
+-		/*Reset current configuration: */
++		//Reset current configuration:
+ 		analysis_type=this->analysis_type_list[analysis_counter];
+ 		SetCurrentConfiguration(analysis_type);
+ 	}
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19281)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19282)
+@@ -121,7 +121,6 @@
+ 		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
+-		void               Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
+@@ -227,6 +226,7 @@
+ 		virtual void       JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss)=0;
+ 		virtual void       JacobianDeterminantSurface(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss)=0;
+ 		virtual void       JacobianDeterminantTop(IssmDouble* Jdet,IssmDouble* xyz_list_base,Gauss* gauss)=0;
++		virtual void       Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		virtual IssmDouble Masscon(IssmDouble* levelset)=0;
+ 		virtual IssmDouble MassFlux(IssmDouble* segment)=0;
+ 		virtual IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id)=0;
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19281)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19282)
+@@ -28,6 +28,8 @@
+ 
+ 	sorted=0;
+ 	numsorted=0;
++	presorted=0;
++	enum_type=-1;
+ 	sorted_ids=NULL;
+ 	id_offsets=NULL;
+ 
+@@ -37,6 +39,8 @@
+ 	enum_type=dataset_enum;
+ 
+ 	sorted=0;
++	numsorted=0;
++	presorted=0;
+ 	sorted_ids=NULL;
+ 	id_offsets=NULL;
+ 
+@@ -86,7 +90,7 @@
+ /*}}}*/
+ 
+ /*Specific methods*/
+-void DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++void  DataSet::Marshall(char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+ 	
+ 	vector<Object*>::iterator obj;
+ 	int obj_size=0;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19282-19283.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19282-19283.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19282-19283.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19282)
++++ ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19283)
+@@ -2,6 +2,7 @@
+ set -eu
+ 
+ # On OSX 10.6, fgortran gets installed in /usr/local/gfortran 
++export PATH="/usr/local/gfortran/bin/:$PATH"
+ export CC="/usr/local/gfortran/bin/gcc"
+ export CXX="/usr/local/gfortran/bin/g++"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19283-19284.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19283-19284.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19283-19284.diff	(revision 20498)
@@ -0,0 +1,149 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.py
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19283)
++++ ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19284)
+@@ -155,7 +155,7 @@
+ 			if numpy.ndim(field)>1 and not numpy.size(field,1)==1:
+ 				md = md.checkmessage(options.getfieldvalue('message',\
+ 					"field '%s' should have only one column as there are md.mesh.numberofvertices lines" % fieldname))
+-		elif numpy.size(field,0)==md.mesh.numberofvertices+1:
++		elif numpy.size(field,0)==md.mesh.numberofvertices+1 or numpy.size(field,0)==2:
+ 			if not all(field[-1,:]==numpy.sort(field[-1,:])):
+ 				md = md.checkmessage(options.getfieldvalue('message',\
+ 					"field '%s' columns should be sorted chronologically" % fieldname))
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19283)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19284)
+@@ -203,7 +203,7 @@
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' should have only one column as there are md.mesh.numberofvertices lines']));
+ 		end
+-	elseif size(field,1)==md.mesh.numberofvertices+1
++	elseif size(field,1)==md.mesh.numberofvertices+1 || size(field,1)==2
+ 		if any(field(end,:)~=sort(field(end,:))),
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' columns should be sorted chronologically']));
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19283)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19284)
+@@ -86,9 +86,9 @@
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if self.isd18opd:
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1)
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
+ 
+ 		return md
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19283)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19284)
+@@ -63,9 +63,9 @@
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
+ 				if(self.isd18opd==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19283)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19284)
+@@ -114,25 +114,25 @@
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if (self.isdelta18o==0 and self.ismungsm==0):
+-				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1)
++				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1,'timeseries',1)
+ 			elif self.isdelta18o:
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan])
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan])
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+ 			elif self.ismungsm:
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan])
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan])
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan])
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19283)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19284)
+@@ -77,22 +77,22 @@
+ 					md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','timeseries',1,'NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
+ 				elseif(self.isdelta18o==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
+ 				elseif(self.ismungsm==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN]);
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1);
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
+ 				end
+ 			end
+ 		end % }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19284-19285.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19284-19285.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19284-19285.diff	(revision 20498)
@@ -0,0 +1,151 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.py
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19284)
++++ ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19285)
+@@ -166,5 +166,18 @@
+ 			md = md.checkmessage(options.getfieldvalue('message',\
+ 				"field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines" % fieldname))
+ 
++	#Check single value forcings (size and times)
++	if options.getfieldvalue('singletimeseries',0):
++		if numpy.size(field,0)==2:
++			if not all(field[-1,:]==numpy.sort(field[-1,:])):
++				md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' columns should be sorted chronologically" % fieldname))
++			if any(field[-1,0:-1]==field[-1,1:]):
++				md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' columns must not contain duplicate timesteps" % fieldname))
++		else:
++				md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have 2 lines" % fieldname))
++
+ 	return md
+ 
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19284)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19285)
+@@ -203,7 +203,7 @@
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' should have only one column as there are md.mesh.numberofvertices lines']));
+ 		end
+-	elseif size(field,1)==md.mesh.numberofvertices+1 || size(field,1)==2
++	elseif size(field,1)==md.mesh.numberofvertices+1
+ 		if any(field(end,:)~=sort(field(end,:))),
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' columns should be sorted chronologically']));
+@@ -217,3 +217,20 @@
+ 			['field ''' fieldname ''' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines']));
+ 	end
+ end
++
++%Check single value forcings (size and times)
++if getfieldvalue(options,'singletimeseries',0),
++	if size(field,1)==2
++		if any(field(end,:)~=sort(field(end,:))),
++			md = checkmessage(md,getfieldvalue(options,'message',...
++				['field ''' fieldname ''' columns should be sorted chronologically']));
++		end
++		if any(field(end,1:end-1)==field(end,2:end)),
++			md = checkmessage(md,getfieldvalue(options,'message',...
++				['field ''' fieldname ''' columns must not contain duplicate timesteps']));
++		end
++	else
++		md = checkmessage(md,getfieldvalue(options,'message',...
++			['field ''' fieldname ''' should have 2 lines']));
++	end
++end
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19284)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19285)
+@@ -88,7 +88,7 @@
+ 			if self.isd18opd:
+ 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
+ 
+ 		return md
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19284)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19285)
+@@ -65,7 +65,7 @@
+ 				if(self.isd18opd==1) 
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19284)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19285)
+@@ -117,22 +117,22 @@
+ 				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1,'timeseries',1)
+ 			elif self.isdelta18o:
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 			elif self.ismungsm:
+ 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+ 				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'timeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19284)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19285)
+@@ -77,22 +77,22 @@
+ 					md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','timeseries',1,'NaN',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
+ 				elseif(self.isdelta18o==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 				elseif(self.ismungsm==1) 
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+ 					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'timeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 				end
+ 			end
+ 		end % }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19285-19286.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19285-19286.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19285-19286.diff	(revision 20498)
@@ -0,0 +1,251 @@
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 0)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19286)
+@@ -0,0 +1,112 @@
++/*!\file:  esmfbinder.cpp
++ * \brief: ESMF binders for ISSM. Binders developed initially for the GEOS-5 framework.
++ */ 
++
++
++#include "./issm.h"
++
++/*GCM specific declarations:*/
++const int GCMForcingNumTerms = 1;
++const int GCMForcingTerms[GCMForcingNumTerms]= { SMBgcmEnum}; 
++
++extern "C" {
++
++	FemModel *femmodel;
++
++	void InitializeISSM(int argc, char** argv, int** pelementsonlocalrank, int* pnumberofelements, ISSM_MPI_Comm comm_init){ /*{{{*/
++
++		int numberofelements;
++		int* elementsonlocalrank=NULL;
++
++		/*Initialize femmodel from arguments provided command line: */
++		femmodel = new FemModel(argc,argv,comm_init);
++
++		/*Figure out the partition for elements, and return: */
++		numberofelements=femmodel->elements->NumberOfElements();
++
++		elementsonlocalrank=xNewZeroInit<int>(numberofelements); 
++		for (int i=0;i<femmodel->elements->Size();i++){
++			Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
++			elementsonlocalrank[element->Sid()]=1;
++		}
++
++		/*Some specific code here for the binding: */
++		femmodel->parameters->SetParam(SMBgcmEnum,SurfaceforcingsEnum); //bypass SMB model, will be provided by GCM!
++
++		/*Assign output pointers: */
++		*pnumberofelements=numberofelements;
++		*pelementsonlocalrank=elementsonlocalrank;
++
++	} /*}}}*/
++	void RunISSM(IssmDouble dt, IssmDouble* gcmforcings, IssmDouble* issmoutputs){ /*{{{*/
++
++		int numberofelements;
++		IssmDouble yts;
++		IssmDouble rho_ice;
++		IssmDouble area;
++		IssmDouble start_time,final_time;
++
++		/*Figure out number of elements: */
++		numberofelements=femmodel->elements->NumberOfElements();
++
++		/*Fetch some necessary constants: */
++		femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
++
++		/*Setup gcm forcings as element-wise input: {{{ */
++		for (int f=0;f<GCMForcingNumTerms;f++){
++
++			int forcing_type=GCMForcingTerms[f];
++
++			for (int i=0;i<femmodel->elements->Size();i++){
++				Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
++
++				switch(forcing_type){
++					case SMBgcmEnum:
++						/*{{{*/
++						{
++
++						/*Recover rho_ice: */
++						rho_ice=element->matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++						/*Recover area of element: */
++						area=element->SurfaceArea();
++
++						/*Recover smb forcing from the gcm forcings: */
++						IssmDouble smbforcing=*(gcmforcings+f*numberofelements+i); 
++
++						/*Convert to SI: */
++						smbforcing=smbforcing*yts/(rho_ice*area);
++
++						/*Add into the element as new forcing :*/
++						element->inputs->AddInput(new DoubleInput(SurfaceforcingsMassBalanceEnum,smbforcing));
++
++						}
++						/*}}}*/
++						break; 
++					default: 
++						{ _error_("Unknown forcing type " << forcing_type << "\n"); }
++						break;
++				}
++			}
++		}
++
++		/*}}}*/
++
++		/*Before running, setup the time interval: */
++		femmodel->parameters->FindParam(&start_time,TimesteppingStartTimeEnum);
++		final_time=start_time+dt;
++		femmodel->parameters->SetParam(final_time,TimesteppingFinalTimeEnum); //we are bypassing ISSM's initial final time!
++
++		/*Now, run: */
++		femmodel->Solve();
++
++		/*For the next time around, save the final time as start time */
++		femmodel->parameters->SetParam(final_time,TimesteppingStartTimeEnum);
++	} /*}}}*/
++	void FinalizeISSM(){ /*{{{*/
++
++		/*Wrap up: */
++		delete femmodel; femmodel=NULL;
++	} /*}}}*/
++
++}
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19285)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19286)
+@@ -381,6 +381,7 @@
+ 	SMBmeltcomponentsEnum,
+ 	SurfaceforcingsMeltEnum,
+ 	SurfaceforcingsRefreezeEnum,
++	SMBgcmEnum,
+ 	/*TO BE REMOVED*/
+ 	SurfaceforcingsIspddEnum,
+ 	SurfaceforcingsIssmbgradientsEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19285)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19286)
+@@ -385,6 +385,7 @@
+ 		case SMBmeltcomponentsEnum : return "SMBmeltcomponents";
+ 		case SurfaceforcingsMeltEnum : return "SurfaceforcingsMelt";
+ 		case SurfaceforcingsRefreezeEnum : return "SurfaceforcingsRefreeze";
++		case SMBgcmEnum : return "SMBgcm";
+ 		case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
+ 		case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
+ 		case SolutionTypeEnum : return "SolutionType";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19285)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19286)
+@@ -394,6 +394,7 @@
+ 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
++	      else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
+ 	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+ 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
+-	      else if (strcmp(name,"Node")==0) return NodeEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
++	      if (strcmp(name,"Node")==0) return NodeEnum;
++	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
+ 	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+ 	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+-	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
++	      if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
++	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+ 	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
+ 	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+ 	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+-	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
++	      if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
++	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+ 	      else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+ 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
+ 	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+-	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Sset")==0) return SsetEnum;
++	      if (strcmp(name,"Separate")==0) return SeparateEnum;
++	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+ 	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19285)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19286)
+@@ -59,6 +59,9 @@
+ 			if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
+ 			SmbMeltComponentsx(femmodel);
+ 			break;
++		case SMBgcmEnum:
++			/*Nothing to be done*/
++			break;
+ 		default:
+ 			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+ 	}
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19285)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19286)
+@@ -448,6 +448,11 @@
+ issm_sources += ./toolkits/metis/patches/METIS_PartMeshNodalPatch.cpp
+ endif
+ #}}}
++#Esmf sources  {{{
++if ESMF
++issm_sources += ./main/esmfbinders.cpp
++endif
++#}}}
+ 
+ #Wrapper sources
+ #Bamg sources  {{{
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19285)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19286)
+@@ -377,6 +377,7 @@
+ def SMBmeltcomponentsEnum(): return StringToEnum("SMBmeltcomponents")[0]
+ def SurfaceforcingsMeltEnum(): return StringToEnum("SurfaceforcingsMelt")[0]
+ def SurfaceforcingsRefreezeEnum(): return StringToEnum("SurfaceforcingsRefreeze")[0]
++def SMBgcmEnum(): return StringToEnum("SMBgcm")[0]
+ def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
+ def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
+ def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19286-19287.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19286-19287.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19286-19287.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/enum/SMBgcmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SMBgcmEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SMBgcmEnum.m	(revision 19287)
+@@ -0,0 +1,11 @@
++function macro=SMBgcmEnum()
++%SMBGCMENUM - Enum of SMBgcm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SMBgcmEnum()
++
++macro=StringToEnum('SMBgcm');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19287-19288.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19287-19288.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19287-19288.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 19287)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 19288)
+@@ -28,9 +28,11 @@
+ 	%create .geo file:  {{{
+ 	fid=fopen('sphere.geo','w');
+ 
+-	fprintf(fid,'Mesh.Algorithm = 7;\n');
++	fprintf(fid,'Mesh.Algorithm = 1;\n');
+ 	if  exist(options,'refine'),
++		fprintf(fid,'Mesh.Algorithm = 7;\n');
+ 		fprintf(fid,'Mesh.CharacteristicLengthFromPoints= 0;\n');
++		fprintf(fid,'Mesh.SmoothRatio= 3;\n');
+ 		fprintf(fid,'Mesh.RemeshAlgorithm= 1;\n');
+ 	end
+ 	fprintf(fid,'resolution=%g;\n',resolution);
+@@ -101,10 +103,10 @@
+ 
+ 	%call gmsh
+ 	if  exist(options,'refine'),
+-		eval(['!gmsh -2 sphere.geo -bgm sphere.pos']);
++		eval(['!gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos']);
+ 	else
+ 		%call gmsh
+-		eval(['!gmsh -2 sphere.geo']);
++		eval(['!gmsh -tol 1e-8 -2 sphere.geo']);
+ 	end
+ 
+ 	%import mesh:  {{{
+@@ -160,7 +162,7 @@
+ 	mesh.long = atan2(mesh.y,mesh.x)/pi*180;
+ 
+ 	%erase files: 
+-	eval(['!rm sphere.geo sphere.msh sphere.pos']);
++	eval(['!rm -rf sphere.geo sphere.msh sphere.pos']);
+ 
+ 	%return mesh: 
+ 	return;
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19287)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19288)
+@@ -14,12 +14,15 @@
+ 	if ismac,
+ 		dyld_library_path_old=getenv('DYLD_LIBRARY_PATH');
+ 		setenv('DYLD_LIBRARY_PATH',[ issmdir '/externalpackages/curl/install/lib:' issmdir '/externalpackages/hdf5/install/lib:' issmdir '/externalpackages/netcdf/install/lib' ]);
+-		setenv('DYLD_LIBRARY_PATH',dyld_library_path_old);
+ 	end
+ 
+ 	%figure out which vertices are on the ocean, which one on the continent:
+ 	system('gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/k/s/k > ./oce_vertices.txt');
+ 
++	%reset DYLD_LIBRARY_PATH to what it was: 
++	if ismac,
++		setenv('DYLD_LIBRARY_PATH',dyld_library_path_old);
++	end
+ 	%read the con_vertices.txt file and flag our mesh vertices on the continent
+ 	fid=fopen('./oce_vertices.txt','r');
+ 	line=fgets(fid); 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19288-19289.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19288-19289.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19288-19289.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19288)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19289)
+@@ -47,7 +47,7 @@
+ 		IssmDouble start_time,final_time;
+ 
+ 		/*Figure out number of elements: */
+-		numberofelements=femmodel->elements->NumberOfElements();
++		numberofelements=femmodel->elements->Size();
+ 
+ 		/*Fetch some necessary constants: */
+ 		femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19289-19290.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19289-19290.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19289-19290.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19289)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19290)
+@@ -8,13 +8,8 @@
+ /*Model processing*/
+ void StressbalanceSIAAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+ 
+-	/*Intermediary*/
+-	int        count;
+-	IssmDouble yts;
+-	bool       isSIA;
+-
+ 	/*Fetch parameters: */
+-	iomodel->Constant(&yts,ConstantsYtsEnum);
++	bool isSIA;
+ 	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+ 
+ 	/*Now, is the flag isSIA on? otherwise, do nothing: */
+@@ -24,7 +19,7 @@
+ 	iomodel->FetchData(3,StressbalanceSpcvxEnum,StressbalanceSpcvyEnum,FlowequationVertexEquationEnum);
+ 
+ 	/*Initialize conunter*/
+-	count=0;
++	int count=0;
+ 
+ 	/*vx and vy are spc'd if we are not on nodeonSIA: */
+ 	for(int i=0;i<iomodel->numberofvertices;i++){
+@@ -40,12 +35,12 @@
+ 			}
+ 			else{
+ 				if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvxEnum)[i])){
+-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,iomodel->Data(StressbalanceSpcvxEnum)[i]/yts,StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,iomodel->Data(StressbalanceSpcvxEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
+ 					count++;
+ 				}
+ 
+ 				if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvyEnum)[i])){
+-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(StressbalanceSpcvyEnum)[i]/yts,StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(StressbalanceSpcvyEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
+ 					count++;
+ 				}
+ 			}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19290-19291.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19290-19291.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19290-19291.diff	(revision 20498)
@@ -0,0 +1,86 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19290)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19291)
+@@ -8,41 +8,60 @@
+ /*Model processing*/
+ void StressbalanceSIAAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+ 
++	/*Intermediaries*/
++	bool       isSIA,isSSA,isL1L2,isHO,isFS,iscoupling;
++
+ 	/*Fetch parameters: */
+-	bool isSIA;
+ 	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
++	iomodel->Constant(&isSSA,FlowequationIsSSAEnum);
++	iomodel->Constant(&isL1L2,FlowequationIsL1L2Enum);
++	iomodel->Constant(&isHO,FlowequationIsHOEnum);
++	iomodel->Constant(&isFS,FlowequationIsFSEnum);
+ 
+ 	/*Now, is the flag isSIA on? otherwise, do nothing: */
+ 	if (!isSIA) return;
+ 
+-	/*Fetch data: */
+-	iomodel->FetchData(3,StressbalanceSpcvxEnum,StressbalanceSpcvyEnum,FlowequationVertexEquationEnum);
++	/*Do we have coupling*/
++	if((isSIA?1.:0.) + (isSSA?1.:0.) + (isL1L2?1.:0.) + (isHO?1.:0.) + (isFS?1.:0.) >1.)
++	 iscoupling = true;
++	else
++	 iscoupling = false;
+ 
+-	/*Initialize conunter*/
+-	int count=0;
++	/*If no coupling, call Regular IoModelToConstraintsx, else, OLD stuff, keep for now*/
++	if(!iscoupling){
++		IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvxEnum,StressbalanceSIAAnalysisEnum,P1Enum,0);
++		IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvyEnum,StressbalanceSIAAnalysisEnum,P1Enum,1);
++	}
++	else{
++		/*Fetch data: */
++		iomodel->FetchData(3,StressbalanceSpcvxEnum,StressbalanceSpcvyEnum,FlowequationVertexEquationEnum);
+ 
+-	/*vx and vy are spc'd if we are not on nodeonSIA: */
+-	for(int i=0;i<iomodel->numberofvertices;i++){
+-		/*keep only this partition's nodes:*/
+-		if((iomodel->my_vertices[i])){
+-			if (reCast<int,IssmDouble>(iomodel->Data(FlowequationVertexEquationEnum)[i])!=SIAApproximationEnum){
++		/*Initialize conunter*/
++		int count=0;
+ 
+-				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceSIAAnalysisEnum));
+-				count++;
++		/*vx and vy are spc'd if we are not on nodeonSIA: */
++		for(int i=0;i<iomodel->numberofvertices;i++){
++			/*keep only this partition's nodes:*/
++			if((iomodel->my_vertices[i])){
++				if (reCast<int,IssmDouble>(iomodel->Data(FlowequationVertexEquationEnum)[i])!=SIAApproximationEnum){
+ 
+-				constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceSIAAnalysisEnum));
+-				count++;
+-			}
+-			else{
+-				if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvxEnum)[i])){
+-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,iomodel->Data(StressbalanceSpcvxEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,0,StressbalanceSIAAnalysisEnum));
+ 					count++;
+-				}
+ 
+-				if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvyEnum)[i])){
+-					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(StressbalanceSpcvyEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
++					constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,StressbalanceSIAAnalysisEnum));
+ 					count++;
+ 				}
++				else{
++					if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvxEnum)[i])){
++						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,0,iomodel->Data(StressbalanceSpcvxEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx.
++						count++;
++					}
++
++					if (!xIsNan<IssmDouble>(iomodel->Data(StressbalanceSpcvyEnum)[i])){
++						constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,iomodel->Data(StressbalanceSpcvyEnum)[i],StressbalanceSIAAnalysisEnum)); //add count'th spc, on node i+1, setting dof 2 to vy
++						count++;
++					}
++				}
+ 			}
+ 		}
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19291-19292.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19291-19292.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19291-19292.diff	(revision 20498)
@@ -0,0 +1,56 @@
+
+Property changes on: ../trunk-jpl
+___________________________________________________________________
+Modified: svn:ignore
+   - build-fw
+build-ad
+nightlylog
+configure.sh
+par
+ad
+proj-*
+projects
+autom4te.cache
+aclocal.m4
+bin
+config.log
+config.h
+config.h.in
+config.status
+configure
+ISSM.paf
+ISSM.ppf
+ISSM.ppf_cache
+libtool
+Makefile
+Makefile.in
+stamp-h1
+svn-commit*
+
+   + build-gcm
+build-fw
+build-ad
+nightlylog
+configure.sh
+par
+ad
+proj-*
+projects
+autom4te.cache
+aclocal.m4
+bin
+config.log
+config.h
+config.h.in
+config.status
+configure
+ISSM.paf
+ISSM.ppf
+ISSM.ppf_cache
+libtool
+Makefile
+Makefile.in
+stamp-h1
+svn-commit*
+
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19292-19293.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19292-19293.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19292-19293.diff	(revision 20498)
@@ -0,0 +1,101 @@
+Index: ../trunk-jpl/src/c/bamg/BamgVertex.h
+===================================================================
+--- ../trunk-jpl/src/c/bamg/BamgVertex.h	(revision 19292)
++++ ../trunk-jpl/src/c/bamg/BamgVertex.h	(revision 19293)
+@@ -47,6 +47,7 @@
+ 			void   MetricFromHessian(const double Hxx,const double Hyx, const double Hyy, const double smin,const double smax,const double s,const double err,BamgOpts* bamgopts);
+ 			void   Echo();
+ 			int    GetReferenceNumber() const;
++			I2     GetIntegerCoordinates() const{return this->i;};// avoid operator I2()
+ 			long   Optim(int =1,int =0); 
+ 
+ 			//inline functions
+Index: ../trunk-jpl/src/c/bamg/Triangle.h
+===================================================================
+--- ../trunk-jpl/src/c/bamg/Triangle.h	(revision 19292)
++++ ../trunk-jpl/src/c/bamg/Triangle.h	(revision 19293)
+@@ -64,6 +64,7 @@
+ 			double qualite() ;
+ 			void  Set(const Triangle &,const Mesh &,Mesh &);
+ 			int   In(BamgVertex *v) const { return vertices[0]==v || vertices[1]==v || vertices[2]==v ;}
++			BamgVertex* GetVertex(int i){return vertices[i];}; // FIXME: this is used to avoid BamgVertex * operator()
+ 
+ 	};
+ 
+Index: ../trunk-jpl/src/c/bamg/Mesh.cpp
+===================================================================
+--- ../trunk-jpl/src/c/bamg/Mesh.cpp	(revision 19292)
++++ ../trunk-jpl/src/c/bamg/Mesh.cpp	(revision 19293)
+@@ -1098,7 +1098,7 @@
+ 		}
+ 	}
+ 	/*}}}*/
+-	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3) {/*{{{*/
++	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3){/*{{{*/
+ 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
+ 		// -------------------------------
+ 		//             s2
+@@ -1123,9 +1123,9 @@
+ 		int iedge; 
+ 
+ 		/*three vertices of t*/
+-		BamgVertex &s0=(*t)[0];
+-		BamgVertex &s1=(*t)[1];
+-		BamgVertex &s2=(*t)[2];
++		BamgVertex* s0=t->GetVertex(0);
++		BamgVertex* s1=t->GetVertex(1);
++		BamgVertex* s2=t->GetVertex(2);
+ 
+ 		//determinant of t
+ 		Icoor2 detOld=t->det;
+@@ -1133,7 +1133,7 @@
+ 		/* infvertexindex = index of the infinite vertex (NULL)
+ 			if no infinite vertex (NULL) infvertexindex=-1
+ 			else if v_i is infinite, infvertexindex=i*/
+-		int infvertexindex = &s0 ?  ((  &s1 ? ( &s2  ? -1 : 2) : 1  )) : 0;
++		int infvertexindex = s0 ? ((s1? (s2?-1:2):1)):0;
+ 
+ 		//some checks
+ 		if(((infvertexindex <0 ) && (detOld <0)) ||  ((infvertexindex >=0) && (detOld >0)) ){
+@@ -1146,14 +1146,14 @@
+ 			det3 = det3local;
+ 			//if no infinite vertex
+ 			if (infvertexindex<0 ) {
+-				det3[0]=bamg::det(s ,s1,s2);
+-				det3[1]=bamg::det(s0,s ,s2);
+-				det3[2]=bamg::det(s0,s1,s );}
++				det3[0]=bamg::det(s .GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates());
++				det3[1]=bamg::det(s0->GetIntegerCoordinates(),s .GetIntegerCoordinates(),s2->GetIntegerCoordinates());
++				det3[2]=bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates());}
+ 			else { 
+ 				// one of &s1  &s2  &s0 is NULL
+-				det3[0]= &s0 ? -1 : bamg::det(s ,s1,s2) ;
+-				det3[1]= &s1 ? -1 : bamg::det(s0,s ,s2) ;
+-				det3[2]= &s2 ? -1 : bamg::det(s0,s1,s ) ;
++				det3[0]= s0 ? -1 : bamg::det(s.GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
++				det3[1]= s1 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s.GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
++				det3[2]= s2 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates()) ;
+ 			}
+ 		}
+ 
+@@ -3799,15 +3799,15 @@
+ 		// computation of the det 
+ 		int number_of_errors=0;
+ 		for (i=0;i<nbt;i++) {
+-			BamgVertex & v0 = triangles[i][0];
+-			BamgVertex & v1 = triangles[i][1];
+-			BamgVertex & v2 = triangles[i][2];
++			BamgVertex* v0 = triangles[i](0);
++			BamgVertex* v1 = triangles[i](1);
++			BamgVertex* v2 = triangles[i](2);
+ 
+ 			//If this is not a boundary triangle
+-			if ( &v0 && &v1 &&  &v2 ){
++			if (v0 && v1 && v2){
+ 
+ 				/*Compute determinant*/
+-				triangles[i].det= det(v0,v1,v2);
++				triangles[i].det= det(v0->GetIntegerCoordinates(),v1->GetIntegerCoordinates(),v2->GetIntegerCoordinates());
+ 
+ 				/*Check that determinant is positive*/
+ 				if (triangles[i].det <=0){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19293-19294.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19293-19294.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19293-19294.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19293)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19294)
+@@ -150,6 +150,7 @@
+ 			%singular solution
+ 			if ((~(any(~isnan(md.stressbalance.spcvx)) | any(~isnan(md.stressbalance.spcvy)))) & ~any(md.mask.groundedice_levelset>0)),
+ 				md = checkmessage(md,['model is not well posed (singular). You need at least one node with fixed velocity!']);
++				disp(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n'));
+ 			end
+ 			%CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
+ 			if any(sum(isnan(md.stressbalance.referential),2)~=0 & sum(isnan(md.stressbalance.referential),2)~=6),
+Index: ../trunk-jpl/src/m/classes/flowequation.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.m	(revision 19293)
++++ ../trunk-jpl/src/m/classes/flowequation.m	(revision 19294)
+@@ -134,7 +134,6 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-
+ 			%Early return
+ 			if (~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(StressbalanceSIAAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isstressbalance==0), return; end
+ 
+Index: ../trunk-jpl/src/m/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19293)
++++ ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19294)
+@@ -150,7 +150,7 @@
+ 		#singular solution
+ #		if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2),
+ 		if not numpy.any(numpy.logical_and(numpy.logical_not(numpy.isnan(md.stressbalance.spcvx)),numpy.logical_not(numpy.isnan(md.stressbalance.spcvy)))):
+-			md.checkmessage("model is not well posed (singular). You need at least one node with fixed velocity!")
++			print "\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n"
+ 		#CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
+ #		if any(sum(isnan(md.stressbalance.referential),2)~=0 & sum(isnan(md.stressbalance.referential),2)~=6),
+ 		if numpy.any(numpy.logical_and(numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)!=0,numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)!=6)):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19294-19295.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19294-19295.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19294-19295.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/externalpackages/valgrind/install-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/valgrind/install-macosx64.sh	(revision 19294)
++++ ../trunk-jpl/externalpackages/valgrind/install-macosx64.sh	(revision 19295)
+@@ -2,21 +2,14 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install valgrind-3.10.0
+-mkdir install
++rm -rf install
+ 
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/valgrind-3.10.0.tar.bz2' 'valgrind-3.10.0.tar.bz2'
++#Download development version, the current release never supports the latest OS X releases
++svn co svn://svn.valgrind.org/valgrind/trunk install
+ 
+-#Untar 
+-tar -jxvf  valgrind-3.10.0.tar.bz2
+-
+-#Move valgrind into install directory
+-mv valgrind-3.10.0/* install
+-rm -rf valgrind-3.10.0
+-
+ #configure
+ cd install
++./autogen.sh
+ ./configure  --prefix="$ISSM_DIR/externalpackages/valgrind/install" --enable-only64bit
+ 
+ #Compile valgrind
Index: /issm/oecreview/Archive/19101-20495/ISSM-19295-19296.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19295-19296.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19295-19296.diff	(revision 20498)
@@ -0,0 +1,629 @@
+Index: ../trunk-jpl/src/m/psl/zelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/zelm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/zelm.m	(revision 19296)
+@@ -0,0 +1,14 @@
++function ze_lm = zelm(rho_i,rho_o,ice_lm,oce_lm) 
++
++%---------------------------------------------------------------------
++% zelm :: a function to compute SH coefficients for eustatic terms Z^E 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++rho_r = rho_i/rho_o; 
++ze_lm = - (rho_r*ice_lm(1)/oce_lm(1))*oce_lm;
++
+
+Property changes on: ../trunk-jpl/src/m/psl/zelm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/xxlm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/xxlm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/xxlm.m	(revision 19296)
+@@ -0,0 +1,36 @@
++function x_lm = xxlm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,ocean,sh,loveH,loveK) 
++
++%---------------------------------------------------------------------
++% xxlm :: a function to compute SH coefficient for X 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++q1 = 0; 
++q2 = 0; 
++
++% obtain xp_pq 
++xp_pq = xplm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,loveH,loveK); 
++
++% compute xp, i.e. x' 
++xp = zeros(1,nPix);
++for p=0:lMax
++   for q = -p:p
++      xp = xp + xp_pq(1+q1).*sh(:,1+q1)';
++      q1 = q1 + 1;
++   end
++end
++
++x_lm = zeros(1,(lMax+1)^2);
++for l=0:lMax
++   for m=-l:l
++      x_lm(1+q2) = sum((xp'.*sh(:,1+q2)).*ocean');
++      q2 = q2+1;
++   end
++end
++% 
++x_lm = x_lm*4*pi/nPix;
++
+
+Property changes on: ../trunk-jpl/src/m/psl/xxlm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/gmtResults.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/gmtResults.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/gmtResults.m	(revision 19296)
+@@ -0,0 +1,126 @@
++function gmtResults(data_dir,seaLevel,ice_func,displace,farrell) 
++
++%---------------------------------------------------------------------
++% gmtResults :: a function to write a GMT code for plotting solutions 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++min_d = ceil(min(displace)); % for negative 
++max_d = floor(max(displace)); 
++ten_d = floor((max_d-min_d)/10);
++%
++min_s = ceil(min(seaLevel)); % for negative 
++max_s = floor(max(seaLevel)); 
++ten_s = floor((max_s-min_s)/10);
++%
++min_i = ceil(min(ice_func)); % for negative 
++max_i = floor(max(ice_func)); 
++ten_i = floor((max_i-min_i)/10);
++%
++ten_o = 1/10; 
++
++text0 = ''; 
++text00 = '   ;;'; 
++text01 = '   #'; 
++text1 = '#!/bin/sh'; 
++text2 = '# GMT code for plotting results (from Selen)'; 
++text3 = '# This code is written as a part of the ISSM-PSL project'; 
++text4 = '# (c) Surendra Adhikari'; 
++text5 = '#     Jet Propulsion Laboratory, Caltech'; 
++text6 = '#     November 3, 2014'; 
++text7 = sprintf('dG="./results_%s"',data_dir); 
++% 
++text20 = 'step=1'; 
++text21 = 'case $step in'; 
++text22 = '   1) # plot RSL for rigid Earth'; 
++text23 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_s.cpt',min_s,max_s,ten_s); 
++text24 = '   gmt psbasemap -Y19 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K > $dG/seaLevel.ps'; 
++text25 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/seaLevel.txt -C$dG/pale_s.cpt  >> $dG/seaLevel.ps'; 
++text25a = '   gmt pscontour -W0.5p -JQ -O -K -R0/360/-85/85 $dG/seaLevel.txt -C$dG/pale_s.cpt  >> $dG/seaLevel.ps'; 
++text26 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/seaLevel.ps'; 
++text26b = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -Ggray -A1000 >> $dG/seaLevel.ps'; 
++text27 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_s.cpt -Ba:relative_sea_level:/:m: -D8/-1/10/0.75h -O >> $dG/seaLevel.ps'; 
++% 
++text280 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_d.cpt',min_d,max_d,ten_d); 
++text281 = '   gmt psbasemap -Y-13 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K -O >> $dG/seaLevel.ps'; 
++text282 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/displace.txt -C$dG/pale_d.cpt  >> $dG/seaLevel.ps'; 
++text283 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/seaLevel.ps'; 
++text284 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_d.cpt -Baf:vertical_displacement:/:m: -D8/-1/10/0.75h -O >> $dG/seaLevel.ps'; 
++text28 = '   open $dG/seaLevel.ps'; 
++% 
++text50 = '   2) # plot reconstructed ocean and ice load functions'; 
++text51 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_i.cpt',min_i,max_i,ten_i); 
++text52 = sprintf('   gmt makecpt -Cno_green -T0/1/%f > $dG/pale_o.cpt',ten_o); 
++text53 = '   gmt psbasemap -Y19 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K > $dG/ioFunction.ps'; 
++text54 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/ocean.txt -C$dG/pale_o.cpt  >> $dG/ioFunction.ps'; 
++text55 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/ioFunction.ps'; 
++text56 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_o.cpt -Ba:Reconstructed_ocean_function: -D8/-1/10/0.75h -O >> $dG/ioFunction.ps'; 
++% 
++text57 = '   gmt psbasemap -Y-13 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K -O >> $dG/ioFunction.ps'; 
++text58 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/iceLoad.txt -C$dG/pale_i.cpt  >> $dG/ioFunction.ps'; 
++text59 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/ioFunction.ps'; 
++text60 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_i.cpt -Baf:Reconstructed_ice_load:/:m: -D8/-1/10/0.75h -O >> $dG/ioFunction.ps'; 
++text61 = '   open $dG/ioFunction.ps'; 
++text99 = 'esac'; 
++% 
++fid = fopen(sprintf('./data_gmt/plotResults.sh'),'w');  % "./" = ISSM_PSL directory! 
++fprintf(fid,'%s\n',text1); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text2); 
++fprintf(fid,'%s\n',text3); 
++fprintf(fid,'%s\n',text4); 
++fprintf(fid,'%s\n',text5); 
++fprintf(fid,'%s\n',text6); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text7); 
++% 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text20); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text21); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text22); 
++fprintf(fid,'%s\n',text23); 
++fprintf(fid,'%s\n',text24); 
++if (farrell==1)  % Farrell and Clark (1976) benchmark  
++   fprintf(fid,'%s\n',text25a); 
++   fprintf(fid,'%s\n',text26b); 
++else 
++   fprintf(fid,'%s\n',text25); 
++   fprintf(fid,'%s\n',text26); 
++   fprintf(fid,'%s\n',text27); 
++end
++% 
++fprintf(fid,'%s\n',text01); 
++fprintf(fid,'%s\n',text280); 
++fprintf(fid,'%s\n',text281); 
++fprintf(fid,'%s\n',text282); 
++fprintf(fid,'%s\n',text283); 
++fprintf(fid,'%s\n',text284); 
++fprintf(fid,'%s\n',text28); 
++fprintf(fid,'%s\n',text00); 
++%
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text50); 
++fprintf(fid,'%s\n',text51); 
++fprintf(fid,'%s\n',text52); 
++fprintf(fid,'%s\n',text53); 
++fprintf(fid,'%s\n',text54); 
++fprintf(fid,'%s\n',text55); 
++fprintf(fid,'%s\n',text56); 
++fprintf(fid,'%s\n',text01); 
++fprintf(fid,'%s\n',text57); 
++fprintf(fid,'%s\n',text58); 
++fprintf(fid,'%s\n',text59); 
++fprintf(fid,'%s\n',text60); 
++fprintf(fid,'%s\n',text61); 
++%
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text99); 
++% 
++fclose(fid); 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/gmtResults.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/icelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/icelm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/icelm.m	(revision 19296)
+@@ -0,0 +1,24 @@
++function ice_lm = icelm(lMax,nPix,ice,sh) 
++
++%---------------------------------------------------------------------
++% icelm :: a function to compute SH coefficients of "ice load function" 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++p1 = 0; 
++
++ice_lm = zeros(1,(lMax+1)^2); 
++
++for l=0:lMax
++   for m=-l:l
++      ice_lm(1+p1) = sum(sh(:,1+p1).*ice');
++      p1 = p1+1;
++   end
++end
++
++ice_lm = ice_lm*4*pi/nPix; 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/icelm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/lonLat.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/lonLat.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/lonLat.m	(revision 19296)
+@@ -0,0 +1,20 @@
++function lon_lat = lonLat(nSide,nPix)
++
++%---------------------------------------------------------------------
++% lonLat :: a function to compute (long, lat) in degrees for GMT 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++thetaLambda = pix2ang(nSide); 
++data = cell2mat(thetaLambda); 
++data = data*180/pi;  % in degrees 
++data(1,:) = -data(1,:)+90;  % lat \in [-90, 90] in GMT 
++% 
++lon_lat = zeros(2,nPix); 
++lon_lat(1,:) = data(2,:); 
++lon_lat(2,:) = data(1,:); 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/lonLat.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/yylm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/yylm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/yylm.m	(revision 19296)
+@@ -0,0 +1,37 @@
++function y_lm = yylm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,ocean,sh,loveH,loveK) 
++
++%---------------------------------------------------------------------
++% yylm :: a function to compute SH coefficient for Y  
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++q1 = 0; 
++q2 = 0; 
++
++% obtain yp_pq
++yp_pq = yplm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,loveH,loveK); 
++
++% compute yp, i.e. y'
++yp = zeros(1,nPix);
++for p=0:lMax
++   for q = -p:p
++      yp = yp + yp_pq(1+q1).*sh(:,1+q1)';
++      q1 = q1 + 1;
++   end
++end
++
++y_lm = zeros(1,(lMax+1)^2);
++% 
++for l=0:lMax
++   for m=-l:l
++      y_lm(1+q2) = sum((yp'.*sh(:,1+q2)).*ocean');
++      q2 = q2+1;
++   end
++end
++% 
++y_lm = y_lm*4*pi/nPix;
++
+
+Property changes on: ../trunk-jpl/src/m/psl/yylm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/intro.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/intro.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/intro.m	(revision 19296)
+@@ -0,0 +1,24 @@
++function intro(lMax,nPix,zlr_pq,oce_pq) 
++
++%---------------------------------------------------------------------
++% intro :: a function to instruct what software should be installed prior to using this code. 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++disp([' === A brief instruction before you can run this code =============================== ']); 
++disp(['     1. Install MEALPix http://sourceforge.net/projects/mealpix/ ']); 
++disp(['        MEALPix is a Matlab implementation of HEALPix http://healpix.jpl.nasa.gov/ ']); 
++disp(['        We rely on MEALPix mainly for pixelization & spherical harmonics computation. ']); 
++disp(['        I found a bug in MEALPix. E-mail for help: surendra.adhikari@jpl.nasa.gov ']); 
++disp(['     2. Install (optional) GMT http://gmt.soest.hawaii.edu/ ']); 
++disp(['        GMT-5.1.1 is recommended for direct use of our gmt code. ']); 
++disp(['     3. If MEALPix and GMT are both installed, ']); 
++disp(['        turn both "pix_switch" and "gmt_switch" on in ./data_mat/para.m and rerun. ']); 
++disp(['     4. If MEALPix is installed and there is no intention of using GMT, ']); 
++disp(['        turn only "pix_switch" on in ./data_mat/para.m and rerun. ']); 
++disp([' === E-mail to surendra.adhikari@jpl.nasa.gov for any question ====================== ']); 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/intro.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/gmtOcean.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/gmtOcean.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/gmtOcean.m	(revision 19296)
+@@ -0,0 +1,43 @@
++function gmtOce(num) 
++
++%---------------------------------------------------------------------
++% gmtOce :: a function to write a GMT code for selecting pixels (e.g., ocean function) 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++text0 = ''; 
++text1 = '#!/bin/sh'; 
++text2 = '# GMT code for selecting ocean and continental data (from Selen)'; 
++text3 = '# This code is written as a part of the ISSM-PSL project'; 
++text4 = '# (c) Surendra Adhikari'; 
++text5 = '#     Jet Propulsion Laboratory, Caltech'; 
++text6 = '#     November 3, 2014'; 
++text7 = sprintf('pixAll="./data_gmt/pixels/pix%dall.txt"',num); 
++text8 = sprintf('pixOce="./data_gmt/pixels/pix%doce.txt"',num); 
++text9 = sprintf('pixCon="./data_gmt/pixels/pix%dcon.txt"',num); 
++text10 = '# Select ocean (and continent) pixels'; 
++text11 = 'gmt gmtselect $pixAll -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/k/s/k > $pixOce'; 
++text12 = '#gmt gmtselect $pixAll -h0 -Df -R              -A0 -JQ        -Ns/k/s/k/s > $pixCon'; 
++% 
++fid = fopen(sprintf('./data_gmt/oceanFunc.sh'),'w');  % "./" = ISSM_PSL directory! 
++fprintf(fid,'%s\n',text1); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text2); 
++fprintf(fid,'%s\n',text3); 
++fprintf(fid,'%s\n',text4); 
++fprintf(fid,'%s\n',text5); 
++fprintf(fid,'%s\n',text6); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text7); 
++fprintf(fid,'%s\n',text8); 
++fprintf(fid,'%s\n',text9); 
++fprintf(fid,'%s\n',text0); 
++fprintf(fid,'%s\n',text10); 
++fprintf(fid,'%s\n',text11); 
++fprintf(fid,'%s\n',text12); 
++fclose(fid); 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/gmtOcean.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/oceFun.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/oceFun.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/oceFun.m	(revision 19296)
+@@ -0,0 +1,22 @@
++function ocean = oceFun(nSide,nPix,oce_pix) 
++
++%---------------------------------------------------------------------
++% oceFun :: a function to compute ocean function 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++oce_fun = oce_pix';
++oce_fun(2,:) = -(oce_fun(2,:)-90);  % lat in [0,180] from North pole 
++oce_fun = oce_fun*pi/180;
++oce_fun_latLon = zeros(size(oce_fun));  % write in lat,long now 
++oce_fun_latLon(1,:) = oce_fun(2,:);
++oce_fun_latLon(2,:) = oce_fun(1,:);
++ocean = zeros(1,nPix);  % initialize the ocean function 
++oce_array = arrayfun(@(x,y)([x;y]),oce_fun_latLon(1,:),oce_fun_latLon(2,:),'UniformOutput',false); 
++ocean_res = ang2pix(nSide,oce_array); 
++ocean(ocean_res) = 1.0; 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/oceFun.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/ocelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/ocelm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/ocelm.m	(revision 19296)
+@@ -0,0 +1,23 @@
++function oce_lm = ocelm(lMax,nPix,ocean,sh) 
++
++%---------------------------------------------------------------------
++% ocelm :: a function to compute SH coefficients of "ocean function" 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++p1 = 0; 
++
++oce_lm = zeros(1,(lMax+1)^2); 
++
++for l=0:lMax
++   for m=-l:l
++      oce_lm(1+p1) = sum(sh(:,1+p1).*ocean');
++      p1 = p1+1;
++   end
++end
++
++oce_lm = oce_lm*4*pi/nPix;
++
+
+Property changes on: ../trunk-jpl/src/m/psl/ocelm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/selm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/selm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/selm.m	(revision 19296)
+@@ -0,0 +1,16 @@
++function se_lm = selm(rho_i,rho_o,ice_lm,oce_lm) 
++
++%---------------------------------------------------------------------
++% euslm :: a function to compute SH coefficients for eustatic terms S^E 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++se_lm = zeros(1,length(oce_lm)); 
++
++rho_r = rho_i/rho_o; 
++se_lm(1) = -sqrt(4*pi)*rho_r*ice_lm(1)/oce_lm(1);
++
+
+Property changes on: ../trunk-jpl/src/m/psl/selm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/xplm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/xplm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/xplm.m	(revision 19296)
+@@ -0,0 +1,26 @@
++function xp_pq = xplm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,loveH,loveK) 
++
++%---------------------------------------------------------------------
++% xplm :: a function to compute SH coefficient for X'  
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++q1 = 0; 
++
++for p=0:lMax
++   for q=-p:p 
++      if (p<1) 
++         xp_pq(1+q1) = 3*(rho_i/rho_e)*ice_pq(1+q1)/(2*p+1);
++      else 
++         xp_pq(1+q1) = 3*(rho_i/rho_e)*ice_pq(1+q1)*(1+loveK(p)-loveH(p))/(2*p+1);
++      end
++      q1 = q1+1; 
++   end 
++end 
++
++xp_pq(1) = xp_pq(1) - sum(xp_pq.*oce_pq)/oce_pq(1);
++
+
+Property changes on: ../trunk-jpl/src/m/psl/xplm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/results.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/results.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/results.m	(revision 19296)
+@@ -0,0 +1,38 @@
++function results(nSide,nPix,data_dir,ice_func,oce_func,eustatic,seaLevel,displace) 
++
++%---------------------------------------------------------------------
++% results :: save results that could be plotted using GMT code (cf. gmtResults.m) 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++lon_lat = lonLat(nSide,nPix);  % (lon, lat) 
++lonLat_ice = zeros(3,nPix); 
++lonLat_ice(1,:) = lon_lat(1,:); 
++lonLat_ice(2,:) = lon_lat(2,:); 
++lonLat_ice(3,:) = ice_func; 
++dlmwrite(sprintf('./data_gmt/results_%s/iceLoad.txt',data_dir),lonLat_ice','delimiter','\t'); 
++lonLat_oce   = zeros(3,nPix); 
++lonLat_oce(1,:) = lon_lat(1,:); 
++lonLat_oce(2,:) = lon_lat(2,:); 
++lonLat_oce(3,:) = oce_func; 
++dlmwrite(sprintf('./data_gmt/results_%s/ocean.txt',data_dir),lonLat_oce','delimiter','\t'); 
++lonLat_eus = zeros(3,nPix); 
++lonLat_eus(1,:) = lon_lat(1,:); 
++lonLat_eus(2,:) = lon_lat(2,:); 
++lonLat_eus(3,:) = eustatic; 
++dlmwrite(sprintf('./data_gmt/results_%s/eustatic.txt',data_dir),lonLat_eus','delimiter','\t'); 
++lonLat_slr = zeros(3,nPix); 
++lonLat_slr(1,:) = lon_lat(1,:); 
++lonLat_slr(2,:) = lon_lat(2,:);  
++lonLat_slr(3,:) = seaLevel ; 
++dlmwrite(sprintf('./data_gmt/results_%s/seaLevel.txt',data_dir),lonLat_slr','delimiter','\t'); 
++lonLat_dis = zeros(3,nPix); 
++lonLat_dis(1,:) = lon_lat(1,:); 
++lonLat_dis(2,:) = lon_lat(2,:);  
++lonLat_dis(3,:) = displace ; 
++dlmwrite(sprintf('./data_gmt/results_%s/displace.txt',data_dir),lonLat_dis','delimiter','\t'); 
++
+
+Property changes on: ../trunk-jpl/src/m/psl/results.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/psl/yplm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/yplm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/yplm.m	(revision 19296)
+@@ -0,0 +1,26 @@
++function yp_pq = yplm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,loveH,loveK) 
++
++%---------------------------------------------------------------------
++% yplm :: a function to compute SH coefficients for Y' 
++%---------------------------------------------------------------------
++% This code is written as a part of the ISSM-PSL project
++% (c) S. Adhikari 
++%     Jet Propulsion Laboratory, Caltech 
++%     November 3, 2014
++%---------------------------------------------------------------------
++
++q1 = 0; 
++
++for p=0:lMax
++   for q=-p:p 
++      if (p<1) 
++         yp_pq(1+q1) = 3*(rho_o/rho_e)*zlr_pq(1+q1)/(2*p+1);
++      else 
++         yp_pq(1+q1) = 3*(rho_o/rho_e)*zlr_pq(1+q1)*(1+loveK(p)-loveH(p))/(2*p+1);
++      end
++      q1 = q1+1; 
++   end 
++end 
++
++yp_pq(1) = yp_pq(1) - sum(yp_pq.*oce_pq)/oce_pq(1);
++
+
+Property changes on: ../trunk-jpl/src/m/psl/yplm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19296-19297.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19296-19297.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19296-19297.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/m/psl/sharmonics.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/sharmonics.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/sharmonics.m	(revision 19297)
+@@ -0,0 +1,37 @@
++function sh = sharmonics(lat,lon,lMax) 
++
++%SHarmonics :: a function to compute (ortho-)normalized shperical harmonics 
++% 
++%USAGE: sh = sharmonics(lat,lon,lmax); 
++%
++%lat (latitude in [0,180] degrees from the north pole) 
++%lon (longitude in [0 360] degrees) 
++%lmax (maximum SH degree you wish to compute) 
++%
++%sh (spherical harmonics of degree and orders up to "lmax"... 
++%...numbered as 1(l=0), 2(l=1,m=-1), 3(l=1,m=0), 4(l=1,m=1)...) 
++%
++
++q=0;
++% 	
++lat=lat*pi/180;
++lon=lon*pi/180; 
++
++%ortho-normalized SH 
++for l=0:lMax
++	plm = legendre(l,cos(lat),'norm');
++   for m=-l:l 
++		if(m<0) 
++			sh(:,1+q)=(-1)^(abs(m))*2.*plm(abs(m)+1,:)'.*sin(abs(m).*lon);
++      elseif(m==0)
++         sh(:,1+q)=sqrt(2)*plm(abs(m)+1,:)';
++      else
++         sh(:,1+q)=(-1)^(abs(m))*2.*plm(abs(m)+1,:)'.*cos(abs(m).*lon);
++      end
++      q=q+1;
++   end
++   %disp(['Spherical Harmonics of degree ',num2str(l),' (of ',num2str(lMax),') computed!']);
++end
++disp(['Spherical Harmonics of degree and orders up to ',num2str(lMax),' computed!']);
++
++
+
+Property changes on: ../trunk-jpl/src/m/psl/sharmonics.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19297-19298.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19297-19298.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19297-19298.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19297)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19298)
+@@ -38,4 +38,4 @@
+ 	mask=zeros(nv,1);
+ 	mask(oce_vertices)=1;
+ 	
+-	system('rm -rf ./all_vertices.txt ./oce_vertices.txt');
++	system('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19298-19299.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19298-19299.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19298-19299.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/etc/environment.csh
+===================================================================
+--- ../trunk-jpl/etc/environment.csh	(revision 19298)
++++ ../trunk-jpl/etc/environment.csh	(revision 19299)
+@@ -108,3 +108,9 @@
+ if (-d $SHELL2JUNIT_DIR) then
+ 	setenv PATH {$SHELL2JUNIT_DIR}/install:{$PATH}
+ endif
++
++#GMT
++set GMT_DIR="$ISSM_DIR/externalpackages/gmt"
++if (-d $GMT_DIR) then
++	setenv PATH {$GMT_DIR}/install/bin/:{$PATH}
++endif
+Index: ../trunk-jpl/etc/environment.sh
+===================================================================
+--- ../trunk-jpl/etc/environment.sh	(revision 19298)
++++ ../trunk-jpl/etc/environment.sh	(revision 19299)
+@@ -319,3 +319,6 @@
+ libpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
+ dylibpathprepend   "$ISSM_DIR/externalpackages/curl/install/lib"
+ pathprepend "$ISSM_DIR/externalpackages/curl/install/bin"
++
++#GMT
++pathprepend "$ISSM_DIR/externalpackages/gmt/install/bin"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19306-19307.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19306-19307.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19306-19307.diff	(revision 20498)
@@ -0,0 +1,68 @@
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19306)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19307)
+@@ -32,6 +32,9 @@
+ 
+ 		/*Some specific code here for the binding: */
+ 		femmodel->parameters->SetParam(SMBgcmEnum,SurfaceforcingsEnum); //bypass SMB model, will be provided by GCM!
++	
++		/*Restart file: */
++		femmodel->Restart();
+ 
+ 		/*Assign output pointers: */
+ 		*pnumberofelements=numberofelements;
+@@ -105,6 +108,12 @@
+ 	} /*}}}*/
+ 	void FinalizeISSM(){ /*{{{*/
+ 
++		/*Output results: */
++		OutputResultsx(femmodel);
++			
++		/*Check point: */
++		femmodel->CheckPoint();
++
+ 		/*Wrap up: */
+ 		delete femmodel; femmodel=NULL;
+ 	} /*}}}*/
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19306)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19307)
+@@ -24,7 +24,6 @@
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
+-	int        restart_frequency;
+ 	int        domaintype,groundingline_migration,smb_model;
+ 	int        numoutputs;
+ 	Analysis  *analysis          = NULL;
+@@ -34,9 +33,6 @@
+ 	int        step;
+ 	IssmDouble time;
+ 
+-	//first, figure out if there was a check point, if so, do a reset of the FemModel* femmodel structure. 
+-	femmodel->Restart();
+-
+ 	//then recover parameters common to all solutions
+ 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
+ 	femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
+@@ -45,7 +41,6 @@
+ 	femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
+ 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
+ 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
+-	femmodel->parameters->FindParam(&restart_frequency,SettingsRestartFrequencyEnum);
+ 	femmodel->parameters->FindParam(&time_adapt,TimesteppingTimeAdaptEnum);
+ 	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+@@ -184,10 +179,6 @@
+ 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+ 			OutputResultsx(femmodel);
+ 		}
+-		if(restart_frequency && step%restart_frequency==0){
+-			if(VerboseSolution()) _printf0_("   checkpointing model \n");
+-			femmodel->CheckPoint();
+-		}
+ 	}
+ 
+ 	femmodel->RequestedDependentsx();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19307-19308.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19307-19308.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19307-19308.diff	(revision 20498)
@@ -0,0 +1,125 @@
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19308)
+@@ -35,6 +35,7 @@
+ md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
++md.surfaceforcings.initialize(md)
+ 
+ # creating precipitation
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+Index: ../trunk-jpl/test/NightlyRun/test239.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.m	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test239.m	(revision 19308)
+@@ -37,6 +37,7 @@
+     % Time for the last line:
+     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
++md.surfaceforcings = initialize(md.surfaceforcings,md);
+ 
+ % time steps and resolution
+ md.timestepping.time_step=0.5;
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19308)
+@@ -24,11 +24,11 @@
+     % Time for the last line:
+     md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
++md.surfaceforcings = initialize(md.surfaceforcings,md);
+ 
+ % creating initialization and spc temperatures initialization and
+ % spc
+ md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-
+ md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
+ 
+ % creating precipitation
+Index: ../trunk-jpl/test/NightlyRun/test236.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.py	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test236.py	(revision 19308)
+@@ -45,6 +45,7 @@
+ md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
+ 
+ md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0]    #*ones(md.mesh.numberofvertices,1)
++md.surfaceforcings.initialize(md)
+ 
+ # creating precipitation
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19308)
+@@ -35,6 +35,7 @@
+ md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
++md.surfaceforcings.initialize(md)
+ 
+ # creating precipitation
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19308)
+@@ -43,6 +43,7 @@
+ md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
+ 
+ md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0].reshape(-1,1)   #*ones(md.mesh.numberofvertices,1)
++md.surfaceforcings.initialize(md)
+ 
+ # creating precipitation
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+Index: ../trunk-jpl/test/NightlyRun/test236.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.m	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test236.m	(revision 19308)
+@@ -40,6 +40,7 @@
+ md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
+ 
+ md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
++md.surfaceforcings = initialize(md.surfaceforcings,md);
+ 
+ % creating precipitation
+ for imonth=0:11
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 19308)
+@@ -33,6 +33,7 @@
+ md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
+ 
+ md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
++md.surfaceforcings = initialize(md.surfaceforcings,md);
+ 
+ % creating precipitation
+ for imonth=0:11
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19308)
+@@ -35,6 +35,7 @@
+ md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
++md.surfaceforcings.initialize(md)
+ 
+ # creating precipitation
+ md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+Index: ../trunk-jpl/test/NightlyRun/test238.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.m	(revision 19307)
++++ ../trunk-jpl/test/NightlyRun/test238.m	(revision 19308)
+@@ -36,6 +36,7 @@
+     % Time for the last line:
+     md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
++md.surfaceforcings = initialize(md.surfaceforcings,md);
+ 
+ % time steps and resolution
+ md.timestepping.time_step=20;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19308-19309.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19308-19309.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19308-19309.diff	(revision 20498)
@@ -0,0 +1,504 @@
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19308)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19309)
+@@ -180,6 +180,8 @@
+ 			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+ 			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
++			iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
++			iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
+ 			if(isdelta18o || ismungsm){
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
+@@ -187,7 +189,7 @@
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsLgmEnum);
+ 			}
+ 			else{
+-			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
++				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
+ 				iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
+ 			}
+ 			break;
+@@ -195,6 +197,8 @@
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+ 			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
+ 			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
++			iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
++			iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
+ 			if (isd18opd){
+ 			        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
+ 			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19308)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19309)
+@@ -109,8 +109,6 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
+ 			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+@@ -143,8 +141,6 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0pEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsS0tEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
+ 			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19308)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19309)
+@@ -34,8 +34,6 @@
+ 	g=0;
+ 	omega=0;
+ 	desfac=0;
+-	s0p=0;
+-	s0t=0;
+ 	rlaps=0;
+ 	rlapslgm=0;
+ 	dpermil=0;
+@@ -99,15 +97,11 @@
+ 					break;
+ 				case SMBpddEnum:
+ 					iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
+-					iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
+-					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
+ 					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+ 					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
+ 					break;
+ 				case SMBd18opddEnum:
+ 					iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
+-					iomodel->Constant(&this->s0p,SurfaceforcingsS0pEnum);
+-					iomodel->Constant(&this->s0t,SurfaceforcingsS0tEnum);
+ 					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+ 					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
+ 					iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);					
+@@ -186,8 +180,6 @@
+ 	_printf_("   thermal_exchange_velocity: " << thermal_exchange_velocity << "\n");
+ 	_printf_("   g: " << g << "\n");
+ 	_printf_("   desfac: " << desfac << "\n");
+-	_printf_("   s0p: " << s0p << "\n");
+-	_printf_("   s0t: " << s0t << "\n");
+ 	_printf_("   rlaps: " << rlaps << "\n");
+ 	_printf_("   rlapslgm: " << rlapslgm << "\n");
+ 	_printf_("   dpermil: " << dpermil << "\n");
+@@ -232,8 +224,6 @@
+ 	matpar->thermal_exchange_velocity=this->thermal_exchange_velocity;
+ 	matpar->g=this->g;
+ 	matpar->desfac=this->desfac;
+-	matpar->s0p=this->s0p;
+-	matpar->s0t=this->s0t;
+ 	matpar->rlaps=this->rlaps;
+ 	matpar->rlapslgm=this->rlapslgm;
+ 	matpar->dpermil=this->dpermil;
+@@ -279,8 +269,6 @@
+ 	MARSHALLING(g);
+ 	MARSHALLING(omega);
+ 	MARSHALLING(desfac);
+-	MARSHALLING(s0p);
+-	MARSHALLING(s0t);
+ 	MARSHALLING(rlaps);
+ 	MARSHALLING(rlapslgm);
+ 	MARSHALLING(dpermil);
+@@ -379,12 +367,6 @@
+ 		case  SurfaceforcingsDesfacEnum:
+ 			this->desfac=constant;
+ 			break;
+-		case SurfaceforcingsS0pEnum:
+-			this->s0p=constant;
+-			break;
+-		case SurfaceforcingsS0tEnum:
+-			this->s0t=constant;
+-			break;
+ 		case SurfaceforcingsRlapsEnum:
+ 			this->rlaps=constant;
+ 			break;
+@@ -516,8 +498,6 @@
+ 		case HydrologydcWaterCompressibilityEnum:    return this->water_compressibility;
+ 		case ConstantsGEnum:                         return this->g;
+ 		case SurfaceforcingsDesfacEnum:              return this->desfac;
+-		case SurfaceforcingsS0pEnum:                 return this->s0p;
+-		case SurfaceforcingsS0tEnum:                 return this->s0t;
+ 		case SurfaceforcingsRlapsEnum:               return this->rlaps;
+ 		case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
+ 		case SurfaceforcingsDpermilEnum:             return this->dpermil;
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19308)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19309)
+@@ -31,8 +31,6 @@
+ 		IssmDouble  g;
+ 		IssmDouble  omega;
+ 		IssmDouble  desfac;
+-		IssmDouble  s0p;
+-		IssmDouble  s0t;
+ 		IssmDouble  rlaps;
+ 		IssmDouble  rlapslgm;
+ 		IssmDouble  dpermil;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19308)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19309)
+@@ -1690,7 +1690,9 @@
+ 	IssmDouble* tmp=xNew<IssmDouble>(numvertices);
+ 	IssmDouble* h=xNew<IssmDouble>(numvertices);
+ 	IssmDouble* s=xNew<IssmDouble>(numvertices);
+-	IssmDouble rho_water,rho_ice,desfac,s0p,s0t,rlaps,rlapslgm;
++	IssmDouble* s0p=xNew<IssmDouble>(numvertices);
++	IssmDouble* s0t=xNew<IssmDouble>(numvertices);
++	IssmDouble rho_water,rho_ice,desfac,rlaps,rlapslgm;
+ 	IssmDouble PfacTime,TdiffTime,sealevTime;
+ 	IssmDouble mavg=1./12.; //factor for monthly average
+ 
+@@ -1700,8 +1702,6 @@
+ 
+ 	/*Get some pdd parameters*/
+ 	desfac=this->matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
+-	s0p=this->matpar->GetMaterialParameter(SurfaceforcingsS0pEnum);
+-	s0t=this->matpar->GetMaterialParameter(SurfaceforcingsS0tEnum);
+ 	rlaps=this->matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
+ 	rlapslgm=this->matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
+ 
+@@ -1741,12 +1741,14 @@
+ 	/*Recover info at the vertices: */
+ 	GetInputListOnVertices(&h[0],ThicknessEnum);
+ 	GetInputListOnVertices(&s[0],SurfaceEnum);
++	GetInputListOnVertices(&s0p[0],SurfaceforcingsS0pEnum);
++	GetInputListOnVertices(&s0t[0],SurfaceforcingsS0tEnum);
+ 
+ 	/*measure the surface mass balance*/
+ 	for (int iv = 0; iv<numvertices; iv++){
+ 		agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv*12], &monthlyprec[iv*12],
+ 					pdds, pds, signorm, yts, h[iv], s[iv],
+-					desfac, s0t, s0p,rlaps,rlapslgm,TdiffTime,sealevTime,
++					desfac, s0t[iv], s0p[iv],rlaps,rlapslgm,TdiffTime,sealevTime,
+ 					rho_water,rho_ice);
+ 	}
+ 
+@@ -1800,6 +1802,8 @@
+ 	xDelete<IssmDouble>(yearlytemperatures);
+ 	xDelete<IssmDouble>(h);
+ 	xDelete<IssmDouble>(s);
++	xDelete<IssmDouble>(s0t);
++	xDelete<IssmDouble>(s0p);
+ 	xDelete<IssmDouble>(tmp);
+ 
+ }
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19308)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19309)
+@@ -15,8 +15,8 @@
+ 
+ 	def __init__(self): # {{{
+ 		self.desfac                    = 0.
+-		self.s0p                       = 0.
+-		self.s0t                       = 0.
++		self.s0p                       = float('NaN')
++		self.s0t                       = float('NaN')
+ 		self.rlaps                     = 0.
+ 		self.rlapslgm                  = 0.
+ 		self.dpermil                   = 0.
+@@ -52,24 +52,29 @@
+ 
+ 		if self.isd18opd: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
+ 		if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
++		self.s0p=project3d(md,'vector',self.s0p,'type','node')
++		self.s0t=project3d(md,'vector',self.s0t,'type','node')
++
+ 		return self
+ 	#}}}
+ 	def initialize(self,md): # {{{
+ 
+-		# if numpy.all(numpy.isnan(self.precipitation)):
+-		# 	self.precipitation=numpy.zeros((md.mesh.numberofvertices,1))
+-		# 	print "      no SMBpdd.precipitation specified: values set as zero"
+-		# 
+-		 return self
+-	#}}}
++		if numpy.all(numpy.isnan(self.s0p)):
++			self.s0p=numpy.zeros((md.mesh.numberofvertices,1))
++			print "      no SMBd18opdd.s0p specified: values set as zero"
++
++		if numpy.all(numpy.isnan(self.s0t)):
++			self.s0t=numpy.zeros((md.mesh.numberofvertices,1))
++			print "      no SMBd18opdd.s0t specified: values set as zero"
++			
++		return self
++	# }}}
+ 	def setdefaultparameters(self): # {{{
+ 
+ 		#pdd method not used in default mode
+ 		self.ismungsm   = 0
+ 		self.isd18opd   = 1
+ 		self.desfac     = 0.5
+-		self.s0p        = 0.
+-		self.s0t        = 0.
+ 		self.rlaps      = 6.5 
+ 		self.rlapslgm   = 6.5
+ 		self.dpermil    = 2.4
+@@ -80,8 +85,8 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+@@ -102,8 +107,8 @@
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19308)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19309)
+@@ -6,8 +6,8 @@
+ classdef SMBd18opdd
+ 	properties (SetAccess=public) 
+ 		desfac                    = 0;
+-		s0p                       = 0;
+-		s0t                       = 0;
++		s0p                       = NaN;
++		s0t                       = NaN;
+ 		rlaps                     = 0;
+ 		rlapslgm                  = 0; 
+ 		dpermil                   = 0; 
+@@ -32,14 +32,20 @@
+ 		function self = extrude(self,md) % {{{
+ 			if(self.isd18opd),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
+ 			if(self.isd18opd),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
++			self.s0p=project3d(md,'vector',self.s0p,'type','node');
++			self.s0t=project3d(md,'vector',self.s0t,'type','node');
+ 
+ 		end % }}}
+ 		function self = initialize(self,md) % {{{
+                     
+-			% if isnan(self.precipitation),
+-			% 	self.precipitation=zeros(md.mesh.numberofvertices,1);
+-			% 	disp('      no SMBd18opdd.precipitation specified: values set as zero');
+-			% end
++			if isnan(self.s0p),
++			 	self.s0p=zeros(md.mesh.numberofvertices,1);
++			 	disp('      no SMBd18opdd.s0p specified: values set as zero');
++			end
++			if isnan(self.s0t),
++				self.s0t=zeros(md.mesh.numberofvertices,1);
++				disp('      no SMBd18opdd.s0t specified: values set as zero');
++			end
+ 
+ 		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+@@ -47,8 +53,6 @@
+ 		  self.ismungsm   = 0;
+ 		  self.isd18opd   = 1;
+ 		  self.desfac     = 0.5;
+-		  self.s0p        = 0;
+-		  self.s0t        = 0;
+ 		  self.rlaps      = 6.5;
+ 		  self.rlapslgm   = 6.5;
+ 		  self.dpermil    = 2.4;
+@@ -58,8 +62,8 @@
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+ 				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
+ 				if(self.isd18opd==1) 
+@@ -98,8 +102,8 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19308)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19309)
+@@ -17,8 +17,8 @@
+ 		self.precipitation             = float('NaN')
+ 		self.monthlytemperatures       = float('NaN')
+ 		self.desfac                    = 0.
+-		self.s0p                       = 0.
+-		self.s0t                       = 0.
++		self.s0p                       = float('NaN')
++		self.s0t                       = float('NaN')
+ 		self.rlaps                     = 0.
+ 		self.rlapslgm                  = 0.
+ 		self.Pfac                      = float('NaN')
+@@ -66,8 +66,9 @@
+ 				string="%s\n%s"%(string,fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated'))
++				
+ 		return string
+-		#}}}
++	# }}}
+ 	def extrude(self,md): # {{{
+ 
+ 		if not (self.isdelta18o and self.ismungsm):
+@@ -81,15 +82,22 @@
+ 		if self.ismungsm: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
+ 		if self.ismungsm: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
+ 		if self.ismungsm: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node')
++		self.s0p=project3d(md,'vector',self.s0p,'type','node')
++		self.s0t=project3d(md,'vector',self.s0t,'type','node')
++
+ 		return self
+ 	#}}}
+ 	def initialize(self,md): # {{{
+ 
+-		# if numpy.all(numpy.isnan(self.precipitation)):
+-		# 	self.precipitation=numpy.zeros((md.mesh.numberofvertices,1))
+-		# 	print "      no SMBpdd.precipitation specified: values set as zero"
+-		# 
+-		 return self
++		if numpy.all(numpy.isnan(self.s0p)):
++			self.s0p=numpy.zeros((md.mesh.numberofvertices,1))
++			print "      no SMBpdd.s0p specified: values set as zero"
++
++		if numpy.all(numpy.isnan(self.s0t)):
++			self.s0t=numpy.zeros((md.mesh.numberofvertices,1))
++			print "      no SMBpdd.s0t specified: values set as zero"
++
++		return self
+ 	#}}}
+ 	def setdefaultparameters(self): # {{{
+ 
+@@ -97,8 +105,6 @@
+ 		self.isdelta18o = 0
+ 		self.ismungsm   = 0
+ 		self.desfac     = 0.5
+-		self.s0p        = 0.
+-		self.s0t        = 0.
+ 		self.rlaps      = 6.5 
+ 		self.rlapslgm   = 6.5
+ 
+@@ -108,8 +114,8 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
+ 
+@@ -135,7 +141,7 @@
+ 				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 
+ 		return md
+-	# }}}
++	#}}}
+ 	def marshall(self,md,fid):    # {{{
+ 
+ 		yts=365.0*24.0*3600.0
+@@ -145,8 +151,8 @@
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double')
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
+ 		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
+ 
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19308)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19309)
+@@ -8,8 +8,8 @@
+ 		precipitation             = NaN;
+ 		monthlytemperatures       = NaN;
+ 		desfac                    = 0;
+-		s0p                       = 0;
+-		s0t                       = 0;
++		s0p                       = NaN;
++		s0t                       = NaN;
+ 		rlaps                     = 0;
+ 		rlapslgm                  = 0; 
+ 		Pfac                      = NaN;
+@@ -44,14 +44,20 @@
+ 			if(self.ismungsm),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end
+ 			if(self.ismungsm),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end
+ 			if(self.ismungsm),self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node');end
++			self.s0p=project3d(md,'vector',self.s0p,'type','node');
++			self.s0t=project3d(md,'vector',self.s0t,'type','node');
+ 
+ 		end % }}}
+ 		function self = initialize(self,md) % {{{
+                     
+-			% if isnan(self.precipitation),
+-			% 	self.precipitation=zeros(md.mesh.numberofvertices,1);
+-			% 	disp('      no SMBpdd.precipitation specified: values set as zero');
+-			% end
++			if isnan(self.s0p),
++				self.s0p=zeros(md.mesh.numberofvertices,1);
++				disp('      no SMBpdd.s0p specified: values set as zero');
++			end
++			if isnan(self.s0t),
++				self.s0t=zeros(md.mesh.numberofvertices,1);
++				disp('      no SMBpdd.s0t specified: values set as zero');
++			end
+ 
+ 		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+@@ -59,8 +65,6 @@
+ 		  self.isdelta18o = 0;
+ 		  self.ismungsm   = 0;
+ 		  self.desfac     = 0.5;
+-		  self.s0p        = 0;
+-		  self.s0t        = 0;
+ 		  self.rlaps      = 6.5;
+ 		  self.rlapslgm   = 6.5;
+                   
+@@ -69,8 +73,8 @@
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+ 				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
+ 				if(self.isdelta18o==0 & self.ismungsm==0)
+@@ -138,8 +142,8 @@
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','Double');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+ 			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19309-19310.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19309-19310.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19309-19310.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/m/psl/ocelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/ocelm.m	(revision 19309)
++++ ../trunk-jpl/src/m/psl/ocelm.m	(revision 19310)
+@@ -1,23 +1,25 @@
+-function oce_lm = ocelm(lMax,nPix,ocean,sh) 
++function oce_lm = ocelm(sh,lMax,ocean,areaEle) 
+ 
+-%---------------------------------------------------------------------
+-% ocelm :: a function to compute SH coefficients of "ocean function" 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
++%OCElm :: a function to compute SH coefficients of ocean function 
++% 
++%USAGE: oce_lm = ocelm(sh,lMax,ocean,areaEle); 
++%
++%sh (spherical harmonics) 
++%lMax (maximum SH degree to be considered) 
++%ocean (ocean function) 
++%areaEle (area of elements) 
++%
++
+ p1 = 0; 
+ 
+ oce_lm = zeros(1,(lMax+1)^2); 
+ 
++% weighted area integration 
+ for l=0:lMax
+    for m=-l:l
+-      oce_lm(1+p1) = sum(sh(:,1+p1).*ocean');
++      oce_lm(1+p1) = sum((sh(:,1+p1).*ocean').*areaEle');
+       p1 = p1+1;
+    end
+ end
++oce_lm = oce_lm/sum(areaEle);
+ 
+-oce_lm = oce_lm*4*pi/nPix;
+-
Index: /issm/oecreview/Archive/19101-20495/ISSM-19310-19311.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19310-19311.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19310-19311.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/m/geometry/GetAreas3DTria.m
+===================================================================
+--- ../trunk-jpl/src/m/geometry/GetAreas3DTria.m	(revision 0)
++++ ../trunk-jpl/src/m/geometry/GetAreas3DTria.m	(revision 19311)
+@@ -0,0 +1,48 @@
++function areas=GetAreas3DTria(index,x,y,z,varargin)
++%GETAREAS3DTRIA - compute areas of triangles with 3D coordinates 
++%
++%   compute areas of trianguls with 3D coordinates 
++%
++%   Usage:
++%      areas  =GetAreas3DTria(index,x,y,z);
++%
++%   Examples:
++%      areas  =GetAreas3DTria(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.z);
++
++%get number of elements and number of nodes
++nels=size(index,1); 
++nods=length(x);  
++
++%some checks
++if nargout~=1 | (nargin~=3 & nargin~=4),
++	help GetAreas3DTria
++	error('GetAreas error message: bad usage')
++end
++if ((length(y)~=nods) | (nargin==4 & length(z)~=nods)),
++	error('GetAreas3DTria error message: x,y and z do not have the same length')
++end
++if max(index(:))>nods,
++	error(['GetAreas3DTria error message: index should not have values above ' num2str(nods) ])
++end
++if (nargin==4 & size(index,2)~=3),
++	error('GetAreas3DTria error message: index should have 3 columns for 2d meshes.')
++end
++
++%initialization
++areas=zeros(nels,1);
++x1=x(index(:,1)); x2=x(index(:,2)); x3=x(index(:,3));
++y1=y(index(:,1)); y2=y(index(:,2)); y3=y(index(:,3));
++z1=z(index(:,1)); z2=z(index(:,2)); z3=z(index(:,3));
++
++%compute the volume of each element
++if nargin==4,
++   % area of triangles with 3D coordinats
++   for j=1:nels
++		m1=[x1(j) x2(j) x3(j); y1(j) y2(j) y3(j); 1 1 1];
++	   m2=[y1(j) y2(j) y3(j); z1(j) z2(j) z3(j); 1 1 1];
++	   m3=[z1(j) z2(j) z3(j); x1(j) x2(j) x3(j); 1 1 1];
++      areas(j)=sqrt(det(m1)^2 + det(m2)^2 + det(m3)^2)/2;
++   end
++end 
++
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-19311-19312.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19311-19312.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19311-19312.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/externalpackages/cython/install-22.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 19312)
+@@ -0,0 +1,13 @@
++#!/bin/bash
++set -eu
++
++#clean up
++rm -rf Cython-0.22
++
++#download numpy first
++#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Cython-0.22.tar.gz' 'cython.tar.gz'
++
++#install numpy
++tar -zxvf cython.tar.gz
++cd Cython-0.22
++python setup.py install
+
+Property changes on: ../trunk-jpl/externalpackages/cython/install-22.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19312-19313.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19312-19313.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19312-19313.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/cython/install-22.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 19312)
++++ ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 19313)
+@@ -5,7 +5,7 @@
+ rm -rf Cython-0.22
+ 
+ #download numpy first
+-#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Cython-0.22.tar.gz' 'cython.tar.gz'
++ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Cython-0.22.tar.gz' 'cython.tar.gz'
+ 
+ #install numpy
+ tar -zxvf cython.tar.gz
Index: /issm/oecreview/Archive/19101-20495/ISSM-19313-19314.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19313-19314.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19313-19314.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/cython/install-22.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 19313)
++++ ../trunk-jpl/externalpackages/cython/install-22.sh	(revision 19314)
+@@ -5,7 +5,7 @@
+ rm -rf Cython-0.22
+ 
+ #download numpy first
+-ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Cython-0.22.tar.gz' 'cython.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Cython-0.22.tar.gz' 'cython.tar.gz'
+ 
+ #install numpy
+ tar -zxvf cython.tar.gz
Index: /issm/oecreview/Archive/19101-20495/ISSM-19314-19315.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19314-19315.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19314-19315.diff	(revision 20498)
@@ -0,0 +1,192 @@
+Index: ../trunk-jpl/test/NightlyRun/test323.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test323.py	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test323.py	(revision 19315)
+@@ -15,7 +15,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.timestepping.time_adapt=1
+-md.timestepping.final_time=650.
++md.timestepping.final_time=1120.
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test324.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.py	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test324.py	(revision 19315)
+@@ -16,13 +16,13 @@
+ md=setflowequation(md,'SIA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.timestepping.time_adapt=1
+-md.timestepping.final_time=500.
++md.timestepping.final_time=1600.
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1',\
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2']
+-	#'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',\
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	5*1e-11,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+@@ -47,14 +47,14 @@
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].Temperature,\
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
+-#	md.results.TransientSolution[2].Vx,\
+-#	md.results.TransientSolution[2].Vy,\
+-#	md.results.TransientSolution[2].Vz,\
+-#	md.results.TransientSolution[2].Vel,\
+-#	md.results.TransientSolution[2].Pressure,\
+-#	md.results.TransientSolution[2].Base,\
+-#	md.results.TransientSolution[2].Surface,\
+-#	md.results.TransientSolution[2].Thickness,\
+-#	md.results.TransientSolution[2].Temperature,\
+-#	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[2].Vx,\
++	md.results.TransientSolution[2].Vy,\
++	md.results.TransientSolution[2].Vz,\
++	md.results.TransientSolution[2].Vel,\
++	md.results.TransientSolution[2].Pressure,\
++	md.results.TransientSolution[2].Base,\
++	md.results.TransientSolution[2].Surface,\
++	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].Temperature,\
++	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test226.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test226.py	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test226.py	(revision 19315)
+@@ -14,7 +14,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.timestepping.time_adapt=1.
+-md.timestepping.final_time=10.
++md.timestepping.final_time=15.
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test323.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test323.m	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test323.m	(revision 19315)
+@@ -5,7 +5,7 @@
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.timestepping.time_adapt=1;
+-md.timestepping.final_time=650.;
++md.timestepping.final_time=1120.;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test227.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test227.py	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test227.py	(revision 19315)
+@@ -15,7 +15,7 @@
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.timestepping.time_adapt=1.
+-md.timestepping.final_time=15.
++md.timestepping.final_time=20.
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test324.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.m	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test324.m	(revision 19315)
+@@ -6,16 +6,16 @@
+ md=setflowequation(md,'SIA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.timestepping.time_adapt=1;
+-md.timestepping.final_time=500.;
++md.timestepping.final_time=16000.;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1',...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2'};
+-	%'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+-field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...,
+-	5*1e-11,1e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+-	%1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
++field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	5*1e-11,1e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -37,14 +37,14 @@
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).Temperature),...
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
+-%	(md.results.TransientSolution(3).Vx),...
+-%	(md.results.TransientSolution(3).Vy),...
+-%	(md.results.TransientSolution(3).Vz),...
+-%	(md.results.TransientSolution(3).Vel),...
+-%	(md.results.TransientSolution(3).Pressure),...
+-%	(md.results.TransientSolution(3).Base),...
+-%	(md.results.TransientSolution(3).Surface),...
+-%	(md.results.TransientSolution(3).Thickness),...
+-%	(md.results.TransientSolution(3).Temperature),...
+-%	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vz),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).Temperature),...
++	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test226.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test226.m	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test226.m	(revision 19315)
+@@ -5,7 +5,7 @@
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.timestepping.time_adapt=1.;
+-md.timestepping.final_time=10.;
++md.timestepping.final_time=15.;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test227.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test227.m	(revision 19314)
++++ ../trunk-jpl/test/NightlyRun/test227.m	(revision 19315)
+@@ -6,7 +6,7 @@
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.timestepping.time_adapt=1.;
+-md.timestepping.final_time=15.;
++md.timestepping.final_time=20.;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/Archives/Archive323.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive324.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive226.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive227.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19315-19316.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19315-19316.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19315-19316.diff	(revision 20498)
@@ -0,0 +1,91 @@
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19316)
+@@ -0,0 +1,86 @@
++%MASKPSL class definition
++%
++%   Usage:
++%      maskpsl=maskpsl();
++
++classdef maskpsl 
++	properties (SetAccess=public) 
++		groundedice_levelset = NaN;
++		ice_levelset         = NaN;
++		ocean_levelset = NaN;
++	end
++	methods (Static)
++		function self = loadobj(self) % {{{
++			% This function is directly called by matlab when a model object is
++			% loaded. Update old properties here
++
++			%2014 February 5th
++			if numel(self.ice_levelset)>1 & all(self.ice_levelset>=0),
++				disp('WARNING: md.mask.ice_levelset>=0, you probably need to change the sign of this levelset');
++			end
++
++		end% }}}
++	end
++	methods
++		function createxml(self,fid) % {{{
++			fprintf(fid, '\n\n');
++			fprintf(fid, '%s\n', '<!-- mask -->');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="groundedice_levelset" type="',class(self.groundedice_levelset),'" default="',self.groundedice_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="ice_levelset" type="',class(self.ice_levelset),'" default="',self.ice_levelset,'">','     <section name="mask" />','     <help> presence of ice if > 0, icefront position if = 0, no ice if &amp;lt; 0 </help>','</parameter>');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="ocean_levelset" type="',class(self.ocean_levelset),'" default="',self.ocean_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
++		end % }}}
++		function self = extrude(self,md) % {{{
++			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
++			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
++			self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node');
++		end % }}}
++		function self = mask(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]);
++			isice=(md.mask.ice_levelset<=0);
++			if sum(isice)==0,
++				warning('no ice present in the domain');
++			end
++			if max(md.mask.ice_levelset)<0,
++				warning('no ice front provided');
++			end
++			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
++			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
++				error('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
++			end
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   masks:'));
++
++			fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');
++			fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0');
++			fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'fieldname','ocean_levelset','format','DoubleMat','mattype',1);
++
++			% get mask of vertices of elements with ice
++			isice=md.mask.ice_levelset<=0.;
++			vlist = zeros(md.mesh.numberofvertices,1);
++			pos=find(sum(isice(md.mesh.elements),2)>0);
++			vlist(md.mesh.elements(pos,:))=1;
++			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++
++		end % }}}
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19316-19317.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19316-19317.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19316-19317.diff	(revision 20498)
@@ -0,0 +1,221 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19316)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19317)
+@@ -292,7 +292,7 @@
+ 	SettingsIoGatherEnum,
+ 	SettingsLowmemEnum,
+ 	SettingsOutputFrequencyEnum,
+-	SettingsRestartFrequencyEnum,
++	SettingsRecordingFrequencyEnum,
+ 	SettingsWaitonlockEnum,
+ 	DebugProfilingEnum,
+ 	ProfilingCurrentMemEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19316)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19317)
+@@ -298,7 +298,7 @@
+ 		case SettingsIoGatherEnum : return "SettingsIoGather";
+ 		case SettingsLowmemEnum : return "SettingsLowmem";
+ 		case SettingsOutputFrequencyEnum : return "SettingsOutputFrequency";
+-		case SettingsRestartFrequencyEnum : return "SettingsRestartFrequency";
++		case SettingsRecordingFrequencyEnum : return "SettingsRecordingFrequency";
+ 		case SettingsWaitonlockEnum : return "SettingsWaitonlock";
+ 		case DebugProfilingEnum : return "DebugProfiling";
+ 		case ProfilingCurrentMemEnum : return "ProfilingCurrentMem";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19316)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19317)
+@@ -304,7 +304,7 @@
+ 	      else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum;
+ 	      else if (strcmp(name,"SettingsLowmem")==0) return SettingsLowmemEnum;
+ 	      else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
+-	      else if (strcmp(name,"SettingsRestartFrequency")==0) return SettingsRestartFrequencyEnum;
++	      else if (strcmp(name,"SettingsRecordingFrequency")==0) return SettingsRecordingFrequencyEnum;
+ 	      else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
+ 	      else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
+ 	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19316)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19317)
+@@ -47,7 +47,7 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(DomainTypeEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DomainDimensionEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SettingsOutputFrequencyEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(SettingsRestartFrequencyEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SettingsRecordingFrequencyEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(ConstantsYtsEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(TimesteppingStartTimeEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(TimesteppingFinalTimeEnum));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19316)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19317)
+@@ -24,6 +24,7 @@
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
++	int        recording_frequency;
+ 	int        domaintype,groundingline_migration,smb_model;
+ 	int        numoutputs;
+ 	Analysis  *analysis          = NULL;
+@@ -41,6 +42,7 @@
+ 	femmodel->parameters->FindParam(&yts,ConstantsYtsEnum);
+ 	femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
+ 	femmodel->parameters->FindParam(&output_frequency,SettingsOutputFrequencyEnum);
++	femmodel->parameters->FindParam(&recording_frequency,SettingsRecordingFrequencyEnum);
+ 	femmodel->parameters->FindParam(&time_adapt,TimesteppingTimeAdaptEnum);
+ 	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+@@ -57,6 +59,9 @@
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+ 
++	//first, figure out if there was a check point, if so, do a reset of the FemModel* femmodel structure. 
++	if(recording_frequency)femmodel->Restart();
++
+ 	/*initialize: */
+ 	step=0;
+ 	time=starttime;
+@@ -174,6 +179,11 @@
+ 			int outputs[1] = {MaskGroundediceLevelsetEnum};
+ 			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results);
+ 		}
++		
++		if(recording_frequency&& step%recording_frequency==0){
++			if(VerboseSolution()) _printf0_("   checkpointing model \n");
++			femmodel->CheckPoint();
++		}
+ 
+ 		if(save_results){
+ 			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+Index: ../trunk-jpl/src/m/classes/settings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.py	(revision 19316)
++++ ../trunk-jpl/src/m/classes/settings.py	(revision 19317)
+@@ -16,7 +16,7 @@
+ 		self.io_gather           = 0
+ 		self.lowmem              = 0
+ 		self.output_frequency    = 0
+-		self.restart_frequency    = 0
++		self.recording_frequency    = 0
+ 		self.waitonlock          = 0
+ 
+ 		#set defaults
+@@ -30,7 +30,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,"io_gather","I/O gathering strategy for result outputs (default 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"output_frequency","frequency at which results are saved in all solutions with multiple time_steps"))
+-		string="%s\n%s"%(string,fielddisplay(self,"restart_frequency","frequency at which the runs are being checkpointed, allowing for a restart"))
++		string="%s\n%s"%(string,fielddisplay(self,"recording_frequency","frequency at which the runs are being checkpointed, allowing for a restart"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"waitonlock","maximum number of minutes to wait for batch results, or return 0"))
+ 		return string
+ 		#}}}
+@@ -46,7 +46,7 @@
+ 		self.output_frequency=1
+ 
+ 		#checkpoints frequency, by default never: 
+-		self.restart_frequency=0
++		self.recording_frequency=0
+ 
+ 
+ 		#this option can be activated to load automatically the results
+@@ -62,7 +62,7 @@
+ 		md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)
+-		md = checkfield(md,'fieldname','settings.restart_frequency','numel',[1],'>=',0)
++		md = checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','settings.waitonlock','numel',[1])
+ 
+ 		return md
+@@ -72,7 +72,7 @@
+ 		WriteData(fid,'object',self,'fieldname','io_gather','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','lowmem','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','output_frequency','format','Integer')
+-		WriteData(fid,'object',self,'fieldname','restart_frequency','format','Integer')
++		WriteData(fid,'object',self,'fieldname','recording_frequency','format','Integer')
+ 		if self.waitonlock>0:
+ 			WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',True,'format','Boolean');
+ 		else:
+Index: ../trunk-jpl/src/m/classes/settings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.m	(revision 19316)
++++ ../trunk-jpl/src/m/classes/settings.m	(revision 19317)
+@@ -9,7 +9,7 @@
+ 		io_gather           = 0;
+ 		lowmem              = 0;
+ 		output_frequency    = 0;
+-		restart_frequency   = 0;
++		recording_frequency   = 0;
+ 		waitonlock          = 0;
+ 		upload_server       = '';
+ 		upload_path         = '';
+@@ -59,7 +59,7 @@
+ 			self.output_frequency=1;
+ 
+ 			%checkpoints frequency, by default never: 
+-			self.restart_frequency=0;
++			self.recording_frequency=0;
+ 
+ 			%this option can be activated to load automatically the results
+ 			%onto the model after a parallel run by waiting for the lock file
+@@ -77,7 +77,7 @@
+ 			md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1);
+-			md = checkfield(md,'fieldname','settings.restart_frequency','numel',[1],'>=',0);
++			md = checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0);
+ 			md = checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
+ 
+ 		end % }}}
+@@ -88,7 +88,7 @@
+ 			fielddisplay(self,'io_gather','I/O gathering strategy for result outputs (default 1)');
+ 			fielddisplay(self,'lowmem','is the memory limited ? (0 or 1)');
+ 			fielddisplay(self,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
+-			fielddisplay(self,'restart_frequency','frequency at which the runs are being checkpointed, allowing for a restart');
++			fielddisplay(self,'recording_frequency','frequency at which the runs are being checkpointed, allowing for a restart');
+ 			fielddisplay(self,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
+ 			fielddisplay(self,'upload_server','server hostname where model should be uploaded');
+ 			fielddisplay(self,'upload_path','path on server where model should be uploaded');
+@@ -102,7 +102,7 @@
+ 			WriteData(fid,'object',self,'fieldname','io_gather','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','lowmem','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','output_frequency','format','Integer');
+-			WriteData(fid,'object',self,'fieldname','restart_frequency','format','Integer');
++			WriteData(fid,'object',self,'fieldname','recording_frequency','format','Integer');
+ 			if self.waitonlock>0,
+ 				WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',true,'format','Boolean');
+ 			else
+Index: ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m	(revision 19316)
++++ ../trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m	(revision 19317)
+@@ -1,11 +0,0 @@
+-function macro=SettingsRestartFrequencyEnum()
+-%SETTINGSRESTARTFREQUENCYENUM - Enum of SettingsRestartFrequency
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SettingsRestartFrequencyEnum()
+-
+-macro=StringToEnum('SettingsRestartFrequency');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19316)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19317)
+@@ -290,7 +290,7 @@
+ def SettingsIoGatherEnum(): return StringToEnum("SettingsIoGather")[0]
+ def SettingsLowmemEnum(): return StringToEnum("SettingsLowmem")[0]
+ def SettingsOutputFrequencyEnum(): return StringToEnum("SettingsOutputFrequency")[0]
+-def SettingsRestartFrequencyEnum(): return StringToEnum("SettingsRestartFrequency")[0]
++def SettingsRecordingFrequencyEnum(): return StringToEnum("SettingsRecordingFrequency")[0]
+ def SettingsWaitonlockEnum(): return StringToEnum("SettingsWaitonlock")[0]
+ def DebugProfilingEnum(): return StringToEnum("DebugProfiling")[0]
+ def ProfilingCurrentMemEnum(): return StringToEnum("ProfilingCurrentMem")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19317-19318.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19317-19318.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19317-19318.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/settings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.py	(revision 19317)
++++ ../trunk-jpl/src/m/classes/settings.py	(revision 19318)
+@@ -30,7 +30,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,"io_gather","I/O gathering strategy for result outputs (default 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"output_frequency","frequency at which results are saved in all solutions with multiple time_steps"))
+-		string="%s\n%s"%(string,fielddisplay(self,"recording_frequency","frequency at which the runs are being checkpointed, allowing for a restart"))
++		string="%s\n%s"%(string,fielddisplay(self,"recording_frequency","frequency at which the runs are being recorded, allowing for a restart"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"waitonlock","maximum number of minutes to wait for batch results, or return 0"))
+ 		return string
+ 		#}}}
+Index: ../trunk-jpl/src/m/classes/settings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.m	(revision 19317)
++++ ../trunk-jpl/src/m/classes/settings.m	(revision 19318)
+@@ -88,7 +88,7 @@
+ 			fielddisplay(self,'io_gather','I/O gathering strategy for result outputs (default 1)');
+ 			fielddisplay(self,'lowmem','is the memory limited ? (0 or 1)');
+ 			fielddisplay(self,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
+-			fielddisplay(self,'recording_frequency','frequency at which the runs are being checkpointed, allowing for a restart');
++			fielddisplay(self,'recording_frequency','frequency at which the runs are being recorded, allowing for a restart');
+ 			fielddisplay(self,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
+ 			fielddisplay(self,'upload_server','server hostname where model should be uploaded');
+ 			fielddisplay(self,'upload_path','path on server where model should be uploaded');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19318-19319.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19318-19319.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19318-19319.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/psl/sharmonics.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/sharmonics.m	(revision 19318)
++++ ../trunk-jpl/src/m/psl/sharmonics.m	(revision 19319)
+@@ -17,6 +17,7 @@
+ lat=lat*pi/180;
+ lon=lon*pi/180; 
+ 
++disp(['Spherical harmonics of degree and orders up to ',num2str(lMax),' being computed...']);
+ %ortho-normalized SH 
+ for l=0:lMax
+ 	plm = legendre(l,cos(lat),'norm');
+@@ -32,6 +33,6 @@
+    end
+    %disp(['Spherical Harmonics of degree ',num2str(l),' (of ',num2str(lMax),') computed!']);
+ end
+-disp(['Spherical Harmonics of degree and orders up to ',num2str(lMax),' computed!']);
++disp(['... done!']);
+ 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19319-19320.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19319-19320.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19319-19320.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test324.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.py	(revision 19319)
++++ ../trunk-jpl/test/NightlyRun/test324.py	(revision 19320)
+@@ -16,7 +16,7 @@
+ md=setflowequation(md,'SIA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.timestepping.time_adapt=1
+-md.timestepping.final_time=1600.
++md.timestepping.final_time=16000.
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
Index: /issm/oecreview/Archive/19101-20495/ISSM-19320-19321.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19320-19321.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19320-19321.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19320)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19321)
+@@ -1275,7 +1275,10 @@
+ 	if test "x$HAVE_BLASLAPACK" == "xyes"; then
+ 		BLASLAPACKINCL=""
+ 		if test x$VENDOR = xintel-discover; then
+-			BLASLAPACKLIB=-L"$BLASLAPACK_ROOT -lmkl_lapack -lmkl -lguide -lpthread"
++		   dnl works for intel 11
++			dnl BLASLAPACKLIB=-L"$BLASLAPACK_ROOT -lmkl_lapack -lmkl -lguide -lpthread "
++			dnl dnl works for intel 13
++			BLASLAPACKLIB=-L"$BLASLAPACK_ROOT -lmkl_lapack95_lp64 -lmkl_rt " 
+ 		else
+ 			dnl: branch on whether we are running on windows or linux.
+ 			case "${host_os}" in
+@@ -1317,6 +1320,8 @@
+ 		MKLINCL=""
+ 		if test x$VENDOR = xintel-pleiades; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_core -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -liomp5 -lpthread -lmkl_intel_thread -lmkl_intel_sp2dp"
++		elif test x$VENDOR = xintel-discover; then
++			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"
+ 		elif test x$VENDOR = xintel-acenet; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		elif test x$VENDOR = xintel-gp; then
+Index: ../trunk-jpl/configs/config-discover.sh
+===================================================================
+--- ../trunk-jpl/configs/config-discover.sh	(revision 19320)
++++ ../trunk-jpl/configs/config-discover.sh	(revision 19321)
+@@ -1,24 +0,0 @@
+-#!/bin/csh
+-
+-#PETSc 3.2
+-#MPI /usr/local/intel/mpi/4.0.3.008/lib64/
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+- --with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+- --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+- --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-mkl-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
+- --with-mpi-include="/usr/local/intel/mpi/4.0.3.008/include64/" \
+- --with-mpi-libflags="-L/usr/local/intel/mpi/4.0.3.008/lib64/ -lmpi -lmpiif" \
+- --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+- --with-scalapack-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
+- --with-blas-lapack-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
+- --with-graphics-lib=/usr/lib64/libX11.so \
+- --with-cxxoptflags="-O3 -xS -DMPICH_IGNORE_CXX_SEEK" \
+- --with-vendor=intel-discover
+-
+Index: ../trunk-jpl/configs/config-discover-intel13.sh
+===================================================================
+--- ../trunk-jpl/configs/config-discover-intel13.sh	(revision 0)
++++ ../trunk-jpl/configs/config-discover-intel13.sh	(revision 19321)
+@@ -0,0 +1,23 @@
++#!/bin/csh
++
++#PETSc 3.2
++#MPI /usr/local/other/SLES11.1/mvapich2/1.8.1/intel-13.1.2.183/lib
++
++./configure \
++ --prefix=$ISSM_DIR \
++ --with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++ --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++ --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
++ --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++ --with-mkl-dir="/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/" \
++ --with-mpi-include="/usr/local/other/SLES11.1/mvapich2/1.8.1/intel-13.1.2.183/include" \
++ --with-mpi-libflags="-L/usr/local/other/SLES11.1/mvapich2/1.8.1/intel-13.1.2.183/lib -lmpich -lopa -lmpl -lfmpich -lmpichcxx -lmpichf90 -lpthread -lrdmacm -libverbs -libumad -lrt -lnuma" \
++ --with-petsc-arch=$ISSM_ARCH \
++ --with-blacs-dir="/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/" \
++ --with-blas-lapack-dir="/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/" \
++ --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++ --with-cxxoptflags="-O3 -xS -DMPICH_IGNORE_CXX_SEEK" \
++ --with-vendor=intel-discover
++
++ # --with-esmf-dir=$ESMF_INSTALL_DIRECTORY \
++
+
+Property changes on: ../trunk-jpl/configs/config-discover-intel13.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19321-19322.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19321-19322.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19321-19322.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/configs/config-discover-intel11.sh
+===================================================================
+--- ../trunk-jpl/configs/config-discover-intel11.sh	(revision 0)
++++ ../trunk-jpl/configs/config-discover-intel11.sh	(revision 19322)
+@@ -0,0 +1,24 @@
++#!/bin/csh
++
++#PETSc 3.2
++#MPI /usr/local/intel/mpi/4.0.3.008/lib64/
++
++./configure \
++ --prefix=$ISSM_DIR \
++ --with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++ --with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++ --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++ --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
++ --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++ --with-mkl-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
++ --with-mpi-include="/usr/local/intel/mpi/4.0.3.008/include64/" \
++ --with-mpi-libflags="-L/usr/local/intel/mpi/4.0.3.008/lib64/ -lmpi -lmpiif" \
++ --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++ --with-scalapack-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
++ --with-blas-lapack-dir="/usr/local/intel/mkl/10.1.2.024/lib/64/" \
++ --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++ --with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
++ --with-graphics-lib=/usr/lib64/libX11.so \
++ --with-cxxoptflags="-O3 -xS -DMPICH_IGNORE_CXX_SEEK" \
++ --with-vendor=intel-discover
++
+
+Property changes on: ../trunk-jpl/configs/config-discover-intel11.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19322-19323.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19322-19323.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19322-19323.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/m/psl/shlm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/shlm.m	(revision 19323)
+@@ -0,0 +1,29 @@
++function sh_lm = shlm(index,sh,lMax,func,areas) 
++
++%SHLM :: a function to compute SH coefficients of a function 
++% 
++%USAGE: sh_lm = shlm(index,sh,lMax,func,areas); 
++%
++%index (md.mesh.elements) 
++%sh (spherical harmonics) 
++%lMax (maximum SH degree to be considered) 
++%func (any function) 
++%areas (area of elements) 
++%
++
++p = 0; 
++
++sh_lm = zeros((lMax+1)^2,1); 
++%sh_lm = zeros(1,(lMax+1)^2); 
++
++% weighted area integration over the unit sphere 
++for l=0:lMax
++   for m=-l:l
++      func0 = sh(:,1+p).*func; 
++      sh_lm(1+p) = sum(mean(func0(index),2).*areas); 
++      p = p+1;
++   end
++end 
++sh_lm = sh_lm/sum(areas);
++%sh_lm = sh_lm*4*pi/sum(areas);
++
+
+Property changes on: ../trunk-jpl/src/m/psl/shlm.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19323-19324.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19323-19324.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19323-19324.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/m/psl/icelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/icelm.m	(revision 19323)
++++ ../trunk-jpl/src/m/psl/icelm.m	(revision 19324)
+@@ -1,24 +0,0 @@
+-function ice_lm = icelm(lMax,nPix,ice,sh) 
+-
+-%---------------------------------------------------------------------
+-% icelm :: a function to compute SH coefficients of "ice load function" 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-p1 = 0; 
+-
+-ice_lm = zeros(1,(lMax+1)^2); 
+-
+-for l=0:lMax
+-   for m=-l:l
+-      ice_lm(1+p1) = sum(sh(:,1+p1).*ice');
+-      p1 = p1+1;
+-   end
+-end
+-
+-ice_lm = ice_lm*4*pi/nPix; 
+-
+Index: ../trunk-jpl/src/m/psl/ocelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/ocelm.m	(revision 19323)
++++ ../trunk-jpl/src/m/psl/ocelm.m	(revision 19324)
+@@ -1,25 +0,0 @@
+-function oce_lm = ocelm(sh,lMax,ocean,areaEle) 
+-
+-%OCElm :: a function to compute SH coefficients of ocean function 
+-% 
+-%USAGE: oce_lm = ocelm(sh,lMax,ocean,areaEle); 
+-%
+-%sh (spherical harmonics) 
+-%lMax (maximum SH degree to be considered) 
+-%ocean (ocean function) 
+-%areaEle (area of elements) 
+-%
+-
+-p1 = 0; 
+-
+-oce_lm = zeros(1,(lMax+1)^2); 
+-
+-% weighted area integration 
+-for l=0:lMax
+-   for m=-l:l
+-      oce_lm(1+p1) = sum((sh(:,1+p1).*ocean').*areaEle');
+-      p1 = p1+1;
+-   end
+-end
+-oce_lm = oce_lm/sum(areaEle);
+-
Index: /issm/oecreview/Archive/19101-20495/ISSM-19324-19325.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19324-19325.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19324-19325.diff	(revision 20498)
@@ -0,0 +1,81 @@
+Index: ../trunk-jpl/src/c/shared/Elements/elements.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/elements.h	(revision 19324)
++++ ../trunk-jpl/src/c/shared/Elements/elements.h	(revision 19325)
+@@ -13,8 +13,8 @@
+ IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat);
+ // IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n);
+ IssmDouble PddSurfaceMassBalance(IssmDouble* monthlytemperatures,  IssmDouble* monthlyprec,
+-				 IssmDouble* pdds, IssmDouble* pds,IssmDouble signorm, IssmDouble yts,
+-				 IssmDouble h, IssmDouble s, IssmDouble desfac,IssmDouble s0t,
++				 IssmDouble* pdds, IssmDouble* pds, IssmDouble* melt, IssmDouble* accu, IssmDouble signorm, 
++				 IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble desfac,IssmDouble s0t,
+ 				 IssmDouble s0p, IssmDouble rlaps, IssmDouble rlapslgm,
+ 				 IssmDouble TdiffTime,IssmDouble sealevTime,
+ 				 IssmDouble rho_water, IssmDouble rho_ice);
+Index: ../trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp	(revision 19324)
++++ ../trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp	(revision 19325)
+@@ -7,8 +7,8 @@
+ #include "../Numerics/numerics.h"
+ 
+ IssmDouble PddSurfaceMassBalance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec,
+-				 IssmDouble* pdds, IssmDouble* pds, IssmDouble signorm,
+-				 IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble desfac,
++				 IssmDouble* pdds, IssmDouble* pds, IssmDouble* melt, IssmDouble* accu, 
++				 IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, IssmDouble desfac,
+ 				 IssmDouble s0t,IssmDouble s0p, IssmDouble rlaps,IssmDouble rlapslgm,
+ 				 IssmDouble TdiffTime,IssmDouble sealevTime,
+ 				 IssmDouble rho_water,IssmDouble rho_ice){
+@@ -215,7 +215,9 @@
+   if(Tsurf<0) {
+     Tsurf= min(Tsurf+fsupT*diffndd , 0.);}
+ 
+-  B = -smelt+saccu;
++  melt[0]=smelt/yts;
++  accu[0]=saccu/yts;
++  B = saccu - smelt;
+   B = B/yts;
+   pddtj=pddt;
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19324)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19325)
+@@ -1684,6 +1684,8 @@
+ 
+ 	int        i;
+ 	IssmDouble* agd=xNew<IssmDouble>(numvertices); // surface mass balance
++	IssmDouble* melt=xNew<IssmDouble>(numvertices); // surface mass balance
++	IssmDouble* accu=xNew<IssmDouble>(numvertices); // surface mass balance
+ 	IssmDouble* monthlytemperatures=xNew<IssmDouble>(12*numvertices);
+ 	IssmDouble* monthlyprec=xNew<IssmDouble>(12*numvertices);
+ 	IssmDouble* yearlytemperatures=xNew<IssmDouble>(numvertices); memset(yearlytemperatures, 0., numvertices*sizeof(IssmDouble));
+@@ -1747,7 +1749,7 @@
+ 	/*measure the surface mass balance*/
+ 	for (int iv = 0; iv<numvertices; iv++){
+ 		agd[iv]=PddSurfaceMassBalance(&monthlytemperatures[iv*12], &monthlyprec[iv*12],
+-					pdds, pds, signorm, yts, h[iv], s[iv],
++					pdds, pds, &melt[iv], &accu[iv], signorm, yts, h[iv], s[iv],
+ 					desfac, s0t[iv], s0p[iv],rlaps,rlapslgm,TdiffTime,sealevTime,
+ 					rho_water,rho_ice);
+ 	}
+@@ -1771,6 +1773,8 @@
+ 		case TriaEnum:  
+ 			this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 			this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SurfaceforcingsAccumulationEnum,&accu[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SurfaceforcingsMeltEnum,&melt[0],P1Enum));
+ 			break;
+ 		case PentaEnum: 
+ 			this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+@@ -1799,6 +1803,8 @@
+ 	xDelete<IssmDouble>(monthlytemperatures);
+ 	xDelete<IssmDouble>(monthlyprec);
+ 	xDelete<IssmDouble>(agd);
++	xDelete<IssmDouble>(melt);
++	xDelete<IssmDouble>(accu);
+ 	xDelete<IssmDouble>(yearlytemperatures);
+ 	xDelete<IssmDouble>(h);
+ 	xDelete<IssmDouble>(s);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19325-19326.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19325-19326.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19325-19326.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19325)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19326)
+@@ -183,6 +183,10 @@
+ 		field = field/10.^12*yts; %(GigaTon/year)
+ 	elseif strcmp(fieldname,'SurfaceforcingsMassBalance'),
+ 		field = field*yts;
++	elseif strcmp(fieldname,'SurfaceforcingsAccumulation'),
++		field = field*yts;
++	elseif strcmp(fieldname,'SurfaceforcingsMelt'),
++		field = field*yts;
+ 	elseif strcmp(fieldname,'CalvingCalvingrate'),
+ 		field = field*yts;
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19326-19327.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19326-19327.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19326-19327.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19326)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19327)
+@@ -77,8 +77,8 @@
+ 						/*Recover smb forcing from the gcm forcings: */
+ 						IssmDouble smbforcing=*(gcmforcings+f*numberofelements+i); 
+ 
+-						/*Convert to SI: */
+-						smbforcing=smbforcing*yts/(rho_ice*area);
++						/*Convert to SI. The smbforcing from GEOS-5 in kg/s, and we transform it into m/s: */
++						smbforcing=smbforcing/(rho_ice*area);
+ 
+ 						/*Add into the element as new forcing :*/
+ 						element->inputs->AddInput(new DoubleInput(SurfaceforcingsMassBalanceEnum,smbforcing));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19327-19328.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19327-19328.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19327-19328.diff	(revision 20498)
@@ -0,0 +1,478 @@
+Index: ../trunk-jpl/src/m/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.py	(revision 19327)
++++ ../trunk-jpl/src/m/solve/solve.py	(revision 19328)
+@@ -33,6 +33,7 @@
+ 	   extra options:
+ 	      - loadonly : does not solve. only load results
+ 		  - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model
++		  - restart: 'directory name (relative to the execution directory) where the restart file is located.
+  
+ 	   Examples:
+ 	      md=solve(md,StressbalanceSolutionEnum);
+@@ -64,7 +65,12 @@
+ 		c=datetime.datetime.now()
+ 		md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
+ 	else:
+-		md.private.runtimename=md.miscellaneous.name
++		md.private.runtimename=md.miscellaneous.name 
++	
++	#If we are restarting, actually use the provided runtime name:
++	restart=options.getfieldvalue('restart','')
++	if restart:
++		md.private.runtimename=restart
+ 		
+ 	#if running qmu analysis, some preprocessing of dakota files using models
+ 	#fields needs to be carried out. 
+@@ -82,6 +88,7 @@
+ 		md=loadresultsfromcluster(md)
+ 		return md
+ 
++
+ 	#Write all input files
+ 	marshall(md)                                           # bin file
+ 	md.toolkits.ToolkitsFile(md.miscellaneous.name+'.toolkits')    # toolkits file
+@@ -93,11 +100,15 @@
+ 		print 'launch solution sequence on remote cluster by hand'
+ 		return md
+ 
++	#Upload all required files: 
++	if not restart:
++		modelname = md.miscellaneous.name
++		filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
++		if md.qmu.isdakota:
++			filelist.append(modelname+'.qmu.in')
++		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
++	
+ 	#Launch job
+-	modelname = md.miscellaneous.name
+-	filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
+-	if md.qmu.isdakota:
+-		filelist.append(modelname+'.qmu.in')
+ 	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
+ 
+ 	#wait on lock
+Index: ../trunk-jpl/src/m/solve/solve.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.m	(revision 19327)
++++ ../trunk-jpl/src/m/solve/solve.m	(revision 19328)
+@@ -21,6 +21,7 @@
+ %      - loadonly    : does not solve. only load results
+ %      - runtimename : true or false (default is true), makes name unique
+ %      - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model
++%      - restart: 'directory name (relative to the execution directory) where the restart file is located.
+ %
+ %   Examples:
+ %      md=solve(md,StressbalanceSolutionEnum);
+@@ -60,6 +61,12 @@
+ 	md.private.runtimename=md.miscellaneous.name;
+ end
+ 
++%If we are restarting, actually use the provided runtime name: 
++restart=getfieldvalue(options,'restart',''); 
++if ~isempty(restart),
++	md.private.runtimename=restart;
++end
++
+ %if running qmu analysis, some preprocessing of dakota files using models
+ %fields needs to be carried out. 
+ if md.qmu.isdakota,
+@@ -98,18 +105,23 @@
+ 	return;
+ end
+ 
+-%Launch job
+-modelname = md.miscellaneous.name;
+-filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
+-if ispc,
+-	filelist{end+1}=[modelname '.bat '];
+-else
+-	filelist{end+1}=[modelname '.queue '];
++%Upload all required files
++if isempty(restart),
++	modelname = md.miscellaneous.name;
++	filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
++	if ispc,
++		filelist{end+1}=[modelname '.bat '];
++	else
++		filelist{end+1}=[modelname '.queue '];
++	end
++
++	if md.qmu.isdakota,
++		filelist{end+1} = [modelname '.qmu.in'];
++	end
++	UploadQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
+ end
+ 
+-if md.qmu.isdakota,
+-	filelist{end+1} = [modelname '.qmu.in'];
+-end
++%launch queue job: 
+ LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
+ 
+ %wait on lock
+Index: ../trunk-jpl/src/m/classes/clusters/greenplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19328)
+@@ -140,7 +140,7 @@
+ 				 fclose(fid);
+ 			 end
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -155,6 +155,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/cloud.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19328)
+@@ -64,7 +64,7 @@
+ 			end
+ 		end
+ 		%}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			%compress the files into one zip.
+ 			compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -79,6 +79,9 @@
+ 			disp('uploading input file and queueing script');
+ 			issmstscpout(cluster.name,cluster.executionpath,cluster.login,{[dirname '.tar.gz']});
+ 
++		end %}}}
++		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			if cluster.interactive, 
+ 				disp('sending files to remote cluster. once done, please log into cluster and launch job');
+ 				launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19328)
+@@ -155,8 +155,8 @@
+ 		fid.close()
+ 
+ 	# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist):
+-		# {{{
++	def UploadhQueueJob(self,modelname,dirname,filelist):
++			# {{{
+ 
+ 		#compress the files into one zip.
+ 		compressstring='tar -zcf %s.tar.gz ' % dirname
+@@ -167,6 +167,10 @@
+ 		print 'uploading input file and queueing script'
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
++		# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist):
++			# {{{
++
+ 		print 'launching solution sequence on remote cluster'
+ 		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
+ 		issmssh(self.name,self.login,self.port,launchcommand)
+Index: ../trunk-jpl/src/m/classes/clusters/gemini.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19328)
+@@ -70,7 +70,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -85,6 +85,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19328)
+@@ -161,7 +161,7 @@
+ 			fid=open(modelname+'.outlog','w')
+ 			fid.close()
+ 	# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist):    # {{{
++	def UploadQueueJob(self,modelname,dirname,filelist):    # {{{
+ 
+ 		#compress the files into one zip.
+ 		compressstring='tar -zcf %s.tar.gz ' % dirname
+@@ -174,6 +174,9 @@
+ 		print 'uploading input file and queueing script'
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
++	# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist):    # {{{
++
+ 		print 'launching solution sequence on remote cluster'
+ 		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
+ 			(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
+Index: ../trunk-jpl/src/m/classes/clusters/hpc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19328)
+@@ -131,7 +131,7 @@
+ 				 fclose(fid);
+ 			 end
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -146,6 +146,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19328)
+@@ -241,7 +241,7 @@
+ 			 fclose(fid);
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -266,6 +266,10 @@
+ 				 issmbbftpout(cluster.name,directory,cluster.login,cluster.port,cluster.numstreams,{[dirname '.tar.gz']});
+ 			 end
+ 
++		 end
++		 %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 %lauch command, to be executed via ssh
+ 			 if ~cluster.interactive, 
+ 				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+Index: ../trunk-jpl/src/m/classes/clusters/castor.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19328)
+@@ -69,7 +69,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -84,6 +84,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19328)
+@@ -207,17 +207,10 @@
+ 			end
+ 		end
+ 		%}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			if ~ispc,
+ 
+-				%figure out what shell extension we will use:
+-				if isempty(strfind(cluster.shell,'csh')),
+-					shellext='sh';
+-				else
+-					shellext='csh';
+-				end
+-
+ 				%compress the files into one zip.
+ 				compressstring=['tar -zcf ' dirname '.tar.gz '];
+ 				for i=1:numel(filelist),
+@@ -230,7 +223,19 @@
+ 
+ 				if cluster.verbose, disp('uploading input file and queueing script'); end
+ 				issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
++			end
++		end %}}}
++		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
++			if ~ispc,
++
++				%figure out what shell extension we will use:
++				if isempty(strfind(cluster.shell,'csh')),
++					shellext='sh';
++				else
++					shellext='csh';
++				end
++
+ 				if cluster.verbose, disp('launching solution sequence on remote cluster'); end
+ 				launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19328)
+@@ -135,7 +135,7 @@
+ 				 fclose(fid);
+ 			 end
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -160,7 +160,10 @@
+ 				 issmbbftpout(cluster.name,directory,cluster.login,cluster.port,cluster.numstreams,{[dirname '.tar.gz']});
+ 			 end
+ 
+-			 %lauch command, to be executed via ssh
++		 end
++		 %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 if ~cluster.interactive, 
+ 				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19328)
+@@ -117,7 +117,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -129,6 +129,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/cosmos.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19328)
+@@ -69,7 +69,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+@@ -84,6 +84,9 @@
+ 			 disp('uploading input file and queueing script');
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+Index: ../trunk-jpl/src/m/classes/clusters/generic_static.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19328)
+@@ -61,6 +61,10 @@
+ 			fid=fopen([modelname '.outlog'],'w'); fclose(fid);
+ 		end
+ 		%}}}
++		function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
++
++			%do nothing
++		end %}}}
+ 		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
+ 			if ~ispc,
+Index: ../trunk-jpl/src/m/classes/clusters/pollux.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19327)
++++ ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19328)
+@@ -71,6 +71,13 @@
+ 		 %}}}
+ 		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
++			 disp('launching solution sequence on remote cluster');
++			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
++		 end %}}}
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+ 			 for i=1:numel(filelist),
+@@ -81,13 +88,6 @@
+ 			 end
+ 			 system(compressstring);
+ 
+-			 disp('uploading input file and queueing script');
+-			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+-
+-			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
+-			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+ 
+Index: ../trunk-jpl/src/m/enum/SettingsRecordingFrequencyEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SettingsRecordingFrequencyEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SettingsRecordingFrequencyEnum.m	(revision 19328)
+@@ -0,0 +1,11 @@
++function macro=SettingsRecordingFrequencyEnum()
++%SETTINGSRECORDINGFREQUENCYENUM - Enum of SettingsRecordingFrequency
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SettingsRecordingFrequencyEnum()
++
++macro=StringToEnum('SettingsRecordingFrequency');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19328-19329.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19328-19329.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19328-19329.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test324.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.py	(revision 19328)
++++ ../trunk-jpl/test/NightlyRun/test324.py	(revision 19329)
+@@ -25,7 +25,7 @@
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	5*1e-11,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test324.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.m	(revision 19328)
++++ ../trunk-jpl/test/NightlyRun/test324.m	(revision 19329)
+@@ -15,7 +15,7 @@
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	5*1e-11,1e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-10,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19329-19330.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19329-19330.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19329-19330.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 19329)
++++ ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 19330)
+@@ -32,6 +32,8 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19329)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19330)
+@@ -25,6 +25,8 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19329)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19330)
+@@ -35,6 +35,8 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+Index: ../trunk-jpl/jenkins/linux64_murdo_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 19329)
++++ ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 19330)
+@@ -30,6 +30,8 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
Index: /issm/oecreview/Archive/19101-20495/ISSM-19330-19331.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19330-19331.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19330-19331.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/m/classes/clusters/greenplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19330)
++++ ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19331)
+@@ -106,17 +106,14 @@
+ 
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+-			 fprintf(fid,'#PBS -S /bin/bash\n');
+-			 fprintf(fid,'#PBS -N %s\n',modelname);
+-			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-			 fprintf(fid,'#PBS -l nodes=%i:ppn=%i\n',cluster.numnodes, ...
+-							 cluster.cpuspernode);
+-			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+-			 fprintf(fid,'#PBS -m bea\n');
+-			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+-			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'#!/bin/bash\n');
++			 fprintf(fid,'#SBATCH --job-name=%s\n',modelname);
++			 fprintf(fid,'#SBATCH -p %s \n',cluster.queue);
++			 fprintf(fid,'#SBATCH -N %i -n %i\n',cluster.numnodes,cluster.cpuspernode);
++			 fprintf(fid,'#SBATCH --time=%i\n',cluster.time*60); %walltime is in seconds.
++			 fprintf(fid,'#SBATCH --mem-per-cpu=%igb\n',cluster.memory);
++			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
++			 fprintf(fid,'#SBATCH -e %s.errlog \n\n',modelname);
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19331-19332.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19331-19332.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19331-19332.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp	(revision 19331)
++++ ../trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp	(revision 19332)
+@@ -390,7 +390,7 @@
+ 		}
+ 
+ 		//test if the 2 segments have the same middle (->intersects=true)
+-		if (O2O1==0){
++		if(O2O1[0]==0 && O2O1[1]){
+ 			alpha=0; beta=0;
+ 			*palpha=alpha;*pbeta=beta;
+ 			return ColinearEnum;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19332-19333.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19332-19333.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19332-19333.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19332)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19333)
+@@ -190,7 +190,7 @@
+ 
+ 	iomodel->Constant(&time,TimesteppingStartTimeEnum);
+ 	parameters->AddObject(new DoubleParam(TimeEnum,time));  
+-	parameters->AddObject(new IntParam(StepEnum,1));  
++	parameters->AddObject(new IntParam(StepEnum,0));  
+ 
+ 	/*By default, save all results*/
+ 	parameters->AddObject(new BoolParam(SaveResultsEnum,true));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19332)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19333)
+@@ -36,6 +36,7 @@
+ 
+ 	//then recover parameters common to all solutions
+ 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
++	femmodel->parameters->FindParam(&step,StepEnum);
+ 	femmodel->parameters->FindParam(&starttime,TimesteppingStartTimeEnum);
+ 	femmodel->parameters->FindParam(&finaltime,TimesteppingFinalTimeEnum);
+ 	femmodel->parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+@@ -63,7 +64,6 @@
+ 	if(recording_frequency)femmodel->Restart();
+ 
+ 	/*initialize: */
+-	step=0;
+ 	time=starttime;
+ 
+ 	while(time < finaltime - (yts*DBL_EPSILON)){ //make sure we run up to finaltime.
Index: /issm/oecreview/Archive/19101-20495/ISSM-19333-19334.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19333-19334.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19333-19334.diff	(revision 20498)
@@ -0,0 +1,206 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19333)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19334)
+@@ -180,15 +180,15 @@
+ 			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1,save_results);
+ 		}
+ 		
++		if(save_results){
++			if(VerboseSolution()) _printf0_("   saving temporary results\n");
++			OutputResultsx(femmodel);
++		}
++
+ 		if(recording_frequency&& step%recording_frequency==0){
+ 			if(VerboseSolution()) _printf0_("   checkpointing model \n");
+ 			femmodel->CheckPoint();
+ 		}
+-
+-		if(save_results){
+-			if(VerboseSolution()) _printf0_("   saving temporary results\n");
+-			OutputResultsx(femmodel);
+-		}
+ 	}
+ 
+ 	femmodel->RequestedDependentsx();
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19333)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19334)
+@@ -52,7 +52,22 @@
+ 			fwrite(&passiveDouble,sizeof(IssmPDouble),1,fid);
+ 			fwrite(&step,sizeof(int),1,fid);
+ 		} /*}}}*/
++		void GenericMarshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++			MARSHALLING_ENUM(this->ObjectEnum());
++
++			bool isnull=true;
++			if(marshall_direction==MARSHALLING_FORWARD || marshall_direction == MARSHALLING_SIZE) if(value) isnull=false;
++
++			MARSHALLING(id);
++			MARSHALLING(result_name);
++			MARSHALLING(isnull)
++			if (!isnull) MARSHALLING(value) else value=NULL;
++			MARSHALLING(step);
++			MARSHALLING(time);
++
++		}  /*}}}*/
++
+ 		/*GenericExternalResult constructors and  destructors*/
+ 		GenericExternalResult(){ /*{{{*/
+ 			id          = 0;
+@@ -61,6 +76,7 @@
+ 			N           = 0;
+ 			step        = 0;
+ 			time        = 0;
++			value       = NULL;
+ 		} /*}}}*/
+ 		GenericExternalResult(int in_id, int in_enum_type,ResultType in_values, int in_M,int in_N,int in_step,IssmDouble in_time){/*{{{*/
+ 			id          = 0;
+@@ -69,6 +85,7 @@
+ 			N           = 0;
+ 			step        = 0;
+ 			time        = 0;
++			value       = in_values;
+ 			_error_("template GenericExternalResult(int in_id, int in_enum_type,double* in_values, int in_M,int in_N,int in_step,IssmDouble in_time) not implemented for this ResultType\n");
+ 		}
+ /*}}}*/
+@@ -77,6 +94,8 @@
+ 			value     = in_value;
+ 			step      = in_step;
+ 			time      = in_time;
++			M         = 1;
++			N         = 1;
+ 
+ 			/*Convert enum to name*/
+ 			EnumToStringx(&this->result_name,in_enum_type);
+@@ -87,6 +106,8 @@
+ 			value     = in_value;
+ 			step      = in_step;
+ 			time      = UNDEF;
++			M         = 1;
++			N         = 1;
+ 
+ 			/*Convert enum to name*/
+ 			EnumToStringx(&this->result_name,in_enum_type);
+@@ -97,6 +118,8 @@
+ 			value     = in_value;
+ 			step      = in_step;
+ 			time      = in_time;
++			M         = 1;
++			N         = 1;
+ 
+ 			/*Copy name*/
+ 			this->result_name = xNew<char>(strlen(in_result_name)+1);
+@@ -130,8 +153,6 @@
+ 		} 
+ 		/*}}}*/
+ 
+-
+-
+ 		/*GenericExternalResult management: */
+ void  WriteData(FILE* fid,bool io_gather){ /*{{{*/
+ 
+@@ -192,7 +213,12 @@
+ template <> inline int GenericExternalResult<bool>::ObjectEnum(void){ /*{{{*/
+ 	return BoolExternalResultEnum;
+ } /*}}}*/
++template <> inline void GenericExternalResult<bool>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	this->GenericMarshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++}  /*}}}*/
++
+ /*Specific instantiations for int: */
+ template <> inline void GenericExternalResult<int>::DeepEcho(void){ /*{{{*/
+ 
+@@ -204,7 +230,12 @@
+ template <> inline int GenericExternalResult<int>::ObjectEnum(void){ /*{{{*/
+ 	return IntExternalResultEnum;
+ } /*}}}*/
++template <> inline void GenericExternalResult<int>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	this->GenericMarshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++}  /*}}}*/
++
+ /*Specific instantiations for double: */
+ template <> inline void GenericExternalResult<double>::DeepEcho(void){ /*{{{*/
+ 
+@@ -219,7 +250,12 @@
+ template <> inline double GenericExternalResult<double>::GetValue(void){ /*{{{*/
+ 	return value;
+ } /*}}}*/
++template <> inline void GenericExternalResult<double>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	this->GenericMarshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++}  /*}}}*/
++
+ /*Specific instantiations for char*: */
+ template <> inline GenericExternalResult<char*>::GenericExternalResult(int in_id, int in_enum_type,char* in_value,int in_step, IssmDouble in_time){ /*{{{*/
+ 
+@@ -228,6 +264,8 @@
+ 	xMemCpy<char>(value,in_value,(strlen(in_value)+1));
+ 	step  = in_step;
+ 	time  = in_time;
++	M     = 1;
++	N     = 1;
+ 
+ 	/*Convert enum to name*/
+ 	EnumToStringx(&this->result_name,in_enum_type);
+@@ -283,7 +321,21 @@
+ template <> inline int GenericExternalResult<char*>::ObjectEnum(void){ /*{{{*/
+ 	return StringExternalResultEnum;
+ } /*}}}*/
++template <> inline void GenericExternalResult<char*>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	int size;
++
++	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction == MARSHALLING_SIZE)size=strlen(value)+1;
++
++	MARSHALLING(id);
++	MARSHALLING(result_name);
++	MARSHALLING(size);
++	MARSHALLING_DYNAMIC(value,char,size);
++	MARSHALLING(step);
++	MARSHALLING(time);
++
++}  /*}}}*/
++
+ /*Specific instantiations for IssmPDouble*: */
+ template <> inline GenericExternalResult<IssmPDouble*>::GenericExternalResult(int in_id, int in_enum_type,IssmPDouble* in_values, int in_M,int in_N,int in_step,IssmDouble in_time){/*{{{*/
+ 
+@@ -381,7 +433,20 @@
+ template <> inline double* GenericExternalResult<IssmPDouble*>::GetValues(void){ /*{{{*/
+ 	return value;
+ } /*}}}*/
++template <> inline void GenericExternalResult<IssmPDouble*>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	MARSHALLING_ENUM(this->ObjectEnum());
++
++	MARSHALLING(id);
++	MARSHALLING(result_name);
++	MARSHALLING(M);
++	MARSHALLING(N);
++	MARSHALLING_DYNAMIC(value,IssmPDouble,M*N);
++	MARSHALLING(step);
++	MARSHALLING(time);
++
++}  /*}}}*/
++
+ /*Specific instantiations for IssmDouble*: */
+ #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)  //We hook off this specific specialization when not running ADOLC, otherwise we get a redeclaration with the next specialization. 
+ template <> inline void GenericExternalResult<IssmDouble*>::WriteData(FILE* fid,bool io_gather){ /*{{{*/
+@@ -555,5 +620,10 @@
+ 
+ }
+ /*}}}*/
++template <> inline void GenericExternalResult<Vector<IssmDouble>*>::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
+ 
++	_error_("GenericExternalResult instantiated for type Vector<IssmDouble>* called " << result_name << " not implemented yet");
++
++}  /*}}}*/
++
+ #endif  /* _EXTERNAL_RESULTOBJECT_H */
Index: /issm/oecreview/Archive/19101-20495/ISSM-19334-19335.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19334-19335.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19334-19335.diff	(revision 20498)
@@ -0,0 +1,489 @@
+Index: ../trunk-jpl/src/m/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.py	(revision 19334)
++++ ../trunk-jpl/src/m/solve/solve.py	(revision 19335)
+@@ -61,17 +61,19 @@
+ 			ismodelselfconsistent(md)
+ 
+ 	#First, build a runtime name that is unique
+-	if options.getfieldvalue('runtimename',True):
+-		c=datetime.datetime.now()
+-		md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
++	restart=options.getfieldvalue('restart','')
++	if restart == 1:
++		pass #do nothing
+ 	else:
+-		md.private.runtimename=md.miscellaneous.name 
+-	
+-	#If we are restarting, actually use the provided runtime name:
+-	restart=options.getfieldvalue('restart','')
+-	if restart:
+-		md.private.runtimename=restart
+-		
++		if restart:
++			md.private.runtimename=restart
++		else:
++			if options.getfieldvalue('runtimename',True):
++				c=datetime.datetime.now()
++				md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
++			else:
++				md.private.runtimename=md.miscellaneous.name 
++
+ 	#if running qmu analysis, some preprocessing of dakota files using models
+ 	#fields needs to be carried out. 
+ 	if md.qmu.isdakota:
+@@ -101,15 +103,16 @@
+ 		return md
+ 
+ 	#Upload all required files: 
++	modelname = md.miscellaneous.name
++	filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
++	if md.qmu.isdakota:
++		filelist.append(modelname+'.qmu.in')
++
+ 	if not restart:
+-		modelname = md.miscellaneous.name
+-		filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
+-		if md.qmu.isdakota:
+-			filelist.append(modelname+'.qmu.in')
+ 		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
+ 	
+ 	#Launch job
+-	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
++	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart)
+ 
+ 	#wait on lock
+ 	if md.settings.waitonlock>0:
+Index: ../trunk-jpl/src/m/solve/loadresultsfromcluster.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfromcluster.m	(revision 19334)
++++ ../trunk-jpl/src/m/solve/loadresultsfromcluster.m	(revision 19335)
+@@ -37,7 +37,7 @@
+ 	delete([md.miscellaneous.name '.outlog']);
+ 	delete([md.miscellaneous.name '.errlog']);
+ 	delete([md.miscellaneous.name '.outbin']);
+-	if ~ispc(),
++	if exist([md.private.runtimename '.tar.gz']) & ~ispc(),
+ 		delete([md.private.runtimename '.tar.gz']);
+ 	end
+ end
+Index: ../trunk-jpl/src/m/solve/solve.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.m	(revision 19334)
++++ ../trunk-jpl/src/m/solve/solve.m	(revision 19335)
+@@ -53,20 +53,22 @@
+ 	end
+ end
+ 
++%If we are restarting, actually use the provided runtime name:
++restart=getfieldvalue(options,'restart','');
+ %First, build a runtime name that is unique
+-if getfieldvalue(options,'runtimename',true),
+-	c=clock;
+-	md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
++if restart==1 
++	%Leave the runtimename as is
+ else
+-	md.private.runtimename=md.miscellaneous.name;
++	if ~isempty(restart),
++		md.private.runtimename=restart;
++	elseif getfieldvalue(options,'runtimename',true),
++		c=clock;
++		md.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',md.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
++	else
++		md.private.runtimename=md.miscellaneous.name;
++	end
+ end
+ 
+-%If we are restarting, actually use the provided runtime name: 
+-restart=getfieldvalue(options,'restart',''); 
+-if ~isempty(restart),
+-	md.private.runtimename=restart;
+-end
+-
+ %if running qmu analysis, some preprocessing of dakota files using models
+ %fields needs to be carried out. 
+ if md.qmu.isdakota,
+@@ -106,23 +108,24 @@
+ end
+ 
+ %Upload all required files
++modelname = md.miscellaneous.name;
++filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
++if ispc,
++	filelist{end+1}=[modelname '.bat '];
++else
++	filelist{end+1}=[modelname '.queue '];
++end
++
++if md.qmu.isdakota,
++	filelist{end+1} = [modelname '.qmu.in'];
++end
++
+ if isempty(restart),
+-	modelname = md.miscellaneous.name;
+-	filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
+-	if ispc,
+-		filelist{end+1}=[modelname '.bat '];
+-	else
+-		filelist{end+1}=[modelname '.queue '];
+-	end
+-
+-	if md.qmu.isdakota,
+-		filelist{end+1} = [modelname '.qmu.in'];
+-	end
+ 	UploadQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
+ end
+ 
+ %launch queue job: 
+-LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist);
++LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist,restart);
+ 
+ %wait on lock
+ if isnan(md.settings.waitonlock),
+Index: ../trunk-jpl/src/m/classes/clusters/greenplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19335)
+@@ -153,11 +153,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/cloud.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19335)
+@@ -80,16 +80,24 @@
+ 			issmstscpout(cluster.name,cluster.executionpath,cluster.login,{[dirname '.tar.gz']});
+ 
+ 		end %}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			if cluster.interactive, 
+ 				disp('sending files to remote cluster. once done, please log into cluster and launch job');
+-				launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz '];
++				if ~isempty(restart)
++					launchcommand=['cd ' cluster.executionpath ' && cd ' dirname];
++				else
++					launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz '];
++				end
+ 			else
+ 				disp('launching solution sequence on remote cluster');
+-				launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub  ' modelname '.queue '];
++				if ~isempty(restart)
++					launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub  ' modelname '.queue '];
++				else
++					launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub  ' modelname '.queue '];
++				end
+ 			end
+ 			issmstssh(cluster.name,cluster.login,launchcommand);
+ 		end %}}}
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19335)
+@@ -168,11 +168,14 @@
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
+ 		# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist):
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart):
+ 			# {{{
+ 
+ 		print 'launching solution sequence on remote cluster'
+-		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
++		if restart:
++			launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname)
++		else:
++			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
+ 		issmssh(self.name,self.login,self.port,launchcommand)
+ 
+ 		# }}}
+Index: ../trunk-jpl/src/m/classes/clusters/gemini.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19335)
+@@ -86,11 +86,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19335)
+@@ -175,11 +175,14 @@
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
+ 	# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist):    # {{{
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart):    # {{{
+ 
+ 		print 'launching solution sequence on remote cluster'
+-		launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
+-			(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
++		if restart:
++			launchcommand='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)
++		else:
++			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
++				(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
+ 		issmssh(self.name,self.login,self.port,launchcommand)
+ 	# }}}
+ 	def Download(self,dirname,filelist):     # {{{
+Index: ../trunk-jpl/src/m/classes/clusters/hpc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19335)
+@@ -147,11 +147,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19335)
+@@ -268,14 +268,22 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 %lauch command, to be executed via ssh
+ 			 if ~cluster.interactive, 
+-				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++				 if ~isempty(restart)
++					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++				 else
++					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++				 end
+ 			 else
+-				 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++				 if ~isempty(restart)
++					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive)];
++				 else
++					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++				 end
+ 			 end
+ 
+ 			 disp('launching solution sequence on remote cluster');
+Index: ../trunk-jpl/src/m/classes/clusters/castor.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19335)
+@@ -85,11 +85,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19335)
+@@ -225,7 +225,7 @@
+ 				issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 			end
+ 		end %}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			if ~ispc,
+ 
+@@ -237,12 +237,18 @@
+ 				end
+ 
+ 				if cluster.verbose, disp('launching solution sequence on remote cluster'); end
+-				launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
++
++				if ~isempty(restart)
++					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && cd ' dirname ' && source ' modelname '.queue '];
++				else
++					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
++				end
+ 				issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 			else
+ 				system([modelname '.bat']);
+ 			end
++
+ 		end %}}}
+ 		function Download(cluster,dirname,filelist)% {{{
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19335)
+@@ -162,13 +162,21 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 if ~cluster.interactive, 
+-				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++				 if ~isempty(restart)
++					 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++				 else
++					 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++				 end
+ 			 else
+-				 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++				 if ~isempty(restart)
++					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive)];
++				 else
++					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++				 end
+ 			 end
+ 
+ 			 disp('launching solution sequence on remote cluster');
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19335)
+@@ -130,11 +130,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/cosmos.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19335)
+@@ -85,11 +85,15 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function Download(cluster,dirname,filelist)% {{{
+Index: ../trunk-jpl/src/m/classes/clusters/generic_static.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19335)
+@@ -65,7 +65,7 @@
+ 
+ 			%do nothing
+ 		end %}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			if ~ispc,
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/pollux.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19334)
++++ ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19335)
+@@ -69,11 +69,15 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+-			 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-				 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && qsub ' modelname '.queue '];
++			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
+ 		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19335-19336.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19335-19336.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19335-19336.diff	(revision 20498)
@@ -0,0 +1,191 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19335)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19336)
+@@ -38,6 +38,7 @@
+ 	#Read fields until the end of the file.
+ 	result=ReadData(fid)
+ 	while result:
++		print result['step']
+ 		if   result['step'] > len(results):
+ 			for i in xrange(len(results),result['step']-1):
+ 				results.append(None)
+Index: ../trunk-jpl/src/m/plot/plot_tensor_principalaxis.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_tensor_principalaxis.m	(revision 19335)
++++ ../trunk-jpl/src/m/plot/plot_tensor_principalaxis.m	(revision 19336)
+@@ -88,7 +88,7 @@
+ end
+ 
+ %apply options
+-strings=strsplit(type,'_');
++strings=strsplit_strict(type,'_');
+ string=strings{1};
+ options=addfielddefault(options,'title',[upper(string(1)) string(2:end) ' principal axis ' type(end)]);
+ options=addfielddefault(options,'colorbar',0);
+Index: ../trunk-jpl/src/m/plot/plot_tensor_principal.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_tensor_principal.m	(revision 19335)
++++ ../trunk-jpl/src/m/plot/plot_tensor_principal.m	(revision 19336)
+@@ -66,7 +66,7 @@
+ function Apply_options_tensor(md,options,type,component)
+ %apply options
+ if ismember('_',type) %user plotet stress_tensor
+-	strings=strsplit(type,'_');
++	strings=strsplit_strict(type,'_');
+ 	string=strings{1};
+ else %default plot: user requested stress
+ 	string=type;
+Index: ../trunk-jpl/src/m/plot/plot_vstime.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_vstime.m	(revision 19335)
++++ ../trunk-jpl/src/m/plot/plot_vstime.m	(revision 19336)
+@@ -5,7 +5,7 @@
+ 
+ %getting the variable structure
+ datastruct  = getfieldvalue(options,'Input');
+-structnames = strsplit(datastruct,'.');
++structnames = strsplit_strict(datastruct,'.');
+ 
+ %getting the position of the to be ploted point
+ location=getfieldvalue(options,'position');
+Index: ../trunk-jpl/src/m/plot/plot_tensor_components.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_tensor_components.m	(revision 19335)
++++ ../trunk-jpl/src/m/plot/plot_tensor_components.m	(revision 19336)
+@@ -68,7 +68,7 @@
+ function Apply_options_tensor(md,options,type,component)
+ 	%apply options
+ 	if ismember('_',type) %user plotet stress_tensor
+-		strings=strsplit(type,'_');
++		strings=strsplit_strict(type,'_');
+ 		string=strings{1};
+ 	else %default plot: user requested stress
+ 		string=type;
+Index: ../trunk-jpl/src/m/classes/plotoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.m	(revision 19335)
++++ ../trunk-jpl/src/m/classes/plotoptions.m	(revision 19336)
+@@ -103,7 +103,7 @@
+ 				 elseif ismember('#',rawlist{i,1}),
+ 
+ 					 %get suplot(s) associated
+-					 string=strsplit(rawlist{i,1},'#');
++					 string=strsplit_strict(rawlist{i,1},'#');
+ 					 plotnums=string{end};
+ 					 field=string{1};
+ 
+@@ -126,7 +126,7 @@
+ 
+ 							 %pound i-j
+ 						 elseif ismember('-',plotnum)
+-							 nums=strsplit(plotnum,'-');
++							 nums=strsplit_strict(plotnum,'-');
+ 							 if length(nums)~=2, continue; end
+ 							 if ~isnumeric(nums)
+ 								 error(['the option #i-j is not set properly for ' field]);
+Index: ../trunk-jpl/src/m/string/strsplit.m
+===================================================================
+--- ../trunk-jpl/src/m/string/strsplit.m	(revision 19335)
++++ ../trunk-jpl/src/m/string/strsplit.m	(revision 19336)
+@@ -1,88 +0,0 @@
+-function splittedstring = strsplit(inpstr,delimiter)
+-%STRSPLIT - split a tring of delimiter separated values
+-%
+-%   This function should be used to split a string of delimiter separated
+-%   values.  If all values are numerical values the returned matrix is a
+-%   double array but if there is one non numerical value a cell array is
+-%   returned.  You can check this with the iscell() function.
+-%   inpstr: string containing delimiter separatede numerical values, eg
+-%           3498,48869,23908,34.67
+-%   Output: An x by 1 matrix containing the splitted values
+-%   Delimiter: optional, if omitted the delimiter is , (comma)
+-%
+-%   Usage:
+-%      output = strsplit(inpstr[,delimiter])
+-%
+-
+-%   mailto:    gie.spaepen@ua.ac.be
+-
+-%Check input arguments
+-if(nargin < 1)
+-    error('There is no argument defined');
+-else
+-    if(nargin == 1)
+-        strdelim = ',';
+-        %Verbose off!! disp 'Delimiter set to ,';
+-    else
+-        strdelim = delimiter;
+-    end
+-end
+-
+-%deblank string
+-deblank(inpstr);
+-
+-%Get number of substrings
+-idx  = findstr(inpstr,strdelim);
+-if size(idx) == 0
+-    disp 'No delimiter in string, inputString is returned';
+-    splittedstring = inpstr;
+-else
+-    %Define size of the indices
+-    sz = size(idx,2);
+-    %Define splittedstring
+-    tempsplit = {};
+-    %Loop through string and itinerate from delimiter to delimiter
+-    for i = 1:sz
+-        %Define standard start and stop positions for the start position,
+-        %choose 1 as startup position because otherwise you get an array
+-        %overflow, for the endposition you can detemine it from the
+-        %delimiter position
+-        strtpos = 1;
+-        endpos = idx(i)-1;
+-        %If i is not the beginning of the string get it from the delimiter
+-        %position
+-        if i ~= 1
+-            strtpos = idx(i-1)+1;
+-        end
+-        %If i is equal to the number of delimiters get the last element
+-        %first by determining the lengt of the string and then replace the
+-        %endpos back to a standard position
+-        if i == sz
+-            endpos = size(inpstr,2); 
+-            tempsplit(i+1) = {inpstr(idx(i)+1 : endpos)};
+-            endpos = idx(i)-1;
+-        end
+-        %Add substring to output: splittedstring a cell array
+-        tempsplit(i) = {inpstr(strtpos : endpos)};   
+-    end
+-    %Flag 
+-    isallnums = 1;
+-    %Check is there are NaN values if matrix elements are converted to
+-    %doubles
+-    for i = 1:size(tempsplit,2)
+-        tempdouble = str2double(tempsplit(i));
+-        if(isnan(tempdouble))
+-            isallnums = 0;
+-        end
+-    end
+-    %If isallnums = 1 then return a double array otherwise return a cell
+-    %array
+-    if(isallnums == 1)
+-        for i = 1:size(tempsplit,2)
+-            splittedstring(i) = str2double(tempsplit(i));
+-        end
+-    else
+-        splittedstring = tempsplit;
+-    end
+-
+-end
+Index: ../trunk-jpl/src/m/string/strsplit_strict.m
+===================================================================
+--- ../trunk-jpl/src/m/string/strsplit_strict.m	(revision 19335)
++++ ../trunk-jpl/src/m/string/strsplit_strict.m	(revision 19336)
+@@ -1,5 +1,5 @@
+-function splittedstring = strsplit(inpstr,delimiter)
+-%STRSPLIT - split a tring of delimiter separated values
++function splittedstring = strsplit_strict(inpstr,delimiter)
++%STRSPLIT_STRICT - split a string of delimiter separated values
+ %
+ %   Usage:
+ %      output = strsplit_strict(inpstr,delimiter)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19336-19337.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19336-19337.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19336-19337.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test215.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test215.m	(revision 19336)
++++ ../trunk-jpl/test/NightlyRun/test215.m	(revision 19337)
+@@ -23,7 +23,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy'};
+-field_tolerances={1e-08,1e-09,2e-09,1e-09,2e-09,5e-09,2e-09};
++field_tolerances={4.6e-08,1e-08,2e-08,1e-09,2e-09,5e-09,2e-09};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Gradient1),...
+ 	(md.results.StressbalanceSolution.J),...
+Index: ../trunk-jpl/test/NightlyRun/test215.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test215.py	(revision 19336)
++++ ../trunk-jpl/test/NightlyRun/test215.py	(revision 19337)
+@@ -40,7 +40,7 @@
+ # Fields and tolerances to track changes
+ 
+ field_names     =['Gradient','Misfits','MaterialsRheologyBbar','Pressure','Vel','Vx','Vy']
+-field_tolerances=[1e-08,1e-09,2e-09,1e-09,2e-09,5e-09,2e-09]
++field_tolerances=[4.6e-08,1e-08,2e-09,1e-08,2e-09,5e-09,2e-09]
+ field_values=[\
+ 	md.results.StressbalanceSolution.Gradient1,\
+ 	md.results.StressbalanceSolution.J,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19337-19338.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19337-19338.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19337-19338.diff	(revision 20498)
@@ -0,0 +1,278 @@
+Index: ../trunk-jpl/test/NightlyRun/test125.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test125.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test125.m	(revision 19338)
+@@ -0,0 +1,48 @@
++%Test Name: SquareShelfConstrainedRestartTranSSA2d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelfConstrained.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1);
++md.transient.requested_outputs={'IceVolume','TotalSmb'};
++
++md.verbose=verbose('solution',true);
++md.settings.recording_frequency=5;
++
++% time steps and resolution
++md.timestepping.final_time=8;
++
++md=solve(md,TransientSolutionEnum());
++md2=solve(md,TransientSolutionEnum(),'restart',1);
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','TotalSmb1','Bed1','Surface1','Thickness1','Volume1','Vx2','Vy2','Vel2','TotalSmb2','Bed2','Surface2','Thickness2','Volume2','Vx3','Vy3','Vel3','TotalSmb3','Bed3','Surface3','Thickness3','Volume3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++						1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++						1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(6).Vx)-(md2.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(6).Vy)-(md2.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(6).Vel)-(md2.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(6).TotalSmb)-(md2.results.TransientSolution(1).TotalSmb),...
++	(md.results.TransientSolution(6).Base)-(md2.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(6).Surface)-(md2.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(6).Thickness)-(md2.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(6).IceVolume)-(md2.results.TransientSolution(1).IceVolume),...
++	(md.results.TransientSolution(7).Vx)-(md2.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(7).Vy)-(md2.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(7).Vel)-(md2.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(7).TotalSmb)-(md2.results.TransientSolution(2).TotalSmb),...
++	(md.results.TransientSolution(7).Base)-(md2.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(7).Surface)-(md2.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(7).Thickness)-(md2.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(7).IceVolume)-(md2.results.TransientSolution(2).IceVolume),...
++	(md.results.TransientSolution(8).Vx)-(md2.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(8).Vy)-(md2.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(8).Vel)-(md2.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(8).TotalSmb)-(md2.results.TransientSolution(3).TotalSmb),...
++	(md.results.TransientSolution(8).Base)-(md2.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(8).Surface)-(md2.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(8).Thickness)-(md2.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(8).IceVolume)-(md2.results.TransientSolution(3).IceVolume),...
++	};
+Index: ../trunk-jpl/test/NightlyRun/test126.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test126.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test126.m	(revision 19338)
+@@ -0,0 +1,56 @@
++%Test Name: SquareShelfConstrainedRestartTranHO3d
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelfConstrained.par');
++md.cluster=generic('name',oshostname(),'np',1);
++md=extrude(md,3,1.);
++md=setflowequation(md,'HO','all');
++md.transient.requested_outputs={'IceVolume','TotalSmb'};
++
++md.verbose=verbose('solution',true);
++md.settings.recording_frequency=5;
++
++% time steps and resolution
++md.timestepping.final_time=8;
++
++md=solve(md,TransientSolutionEnum());
++md2=solve(md,TransientSolutionEnum(),'restart',1);
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','TotalSmb1','Bed1','Surface1','Thickness1','Volume1','Temperature1','Pressure1','Vx2','Vy2','Vel2','TotalSmb2','Bed2','Surface2','Thickness2','Volume2','Temperature2','Pressure2','Vx3','Vy3','Vel3','TotalSmb3','Bed3','Surface3','Thickness3','Volume3','Temperature3','Pressure3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++						1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++						1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++						1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(6).Vx)-(md2.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(6).Vy)-(md2.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(6).Vel)-(md2.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(6).TotalSmb)-(md2.results.TransientSolution(1).TotalSmb),...
++	(md.results.TransientSolution(6).Base)-(md2.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(6).Surface)-(md2.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(6).Thickness)-(md2.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(6).IceVolume)-(md2.results.TransientSolution(1).IceVolume),...
++	(md.results.TransientSolution(6).Temperature)-(md2.results.TransientSolution(1).Temperature),...
++	(md.results.TransientSolution(6).Pressure)-(md2.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(7).Vx)-(md2.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(7).Vy)-(md2.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(7).Vel)-(md2.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(7).TotalSmb)-(md2.results.TransientSolution(2).TotalSmb),...
++	(md.results.TransientSolution(7).Base)-(md2.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(7).Surface)-(md2.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(7).Thickness)-(md2.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(7).IceVolume)-(md2.results.TransientSolution(2).IceVolume),...
++	(md.results.TransientSolution(7).Temperature)-(md2.results.TransientSolution(2).Temperature),...
++	(md.results.TransientSolution(7).Pressure)-(md2.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(8).Vx)-(md2.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(8).Vy)-(md2.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(8).Vel)-(md2.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(8).TotalSmb)-(md2.results.TransientSolution(3).TotalSmb),...
++	(md.results.TransientSolution(8).Base)-(md2.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(8).Surface)-(md2.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(8).Thickness)-(md2.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(8).IceVolume)-(md2.results.TransientSolution(3).IceVolume),...
++	(md.results.TransientSolution(8).Temperature)-(md2.results.TransientSolution(3).Temperature),...
++	(md.results.TransientSolution(8).Pressure)-(md2.results.TransientSolution(3).Pressure),...
++	};
+Index: ../trunk-jpl/test/NightlyRun/test125.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test125.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test125.py	(revision 19338)
+@@ -0,0 +1,63 @@
++#Test Name: SquareShelfConstrainedRestartTranSSA2d
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++from massfluxatgate import massfluxatgate
++from generic import generic
++import copy
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelfConstrained.py')
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',1)
++md.transient.requested_outputs=['IceVolume','TotalSmb']
++
++md.verbose=verbose('solution',1);
++md.settings.recording_frequency=5
++
++# time steps and resolution
++md.timestepping.final_time=8
++
++md=solve(md,TransientSolutionEnum())
++md2=copy.deepcopy(md)
++md=solve(md,TransientSolutionEnum(),'restart',1)
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vel1','TotalSmb1','Bed1','Surface1','Thickness1','Volume1','Vx2','Vy2','Vel2','TotalSmb2','Bed2','Surface2','Thickness2','Volume2','Vx3','Vy3','Vel3','TotalSmb3','Bed3','Surface3','Thickness3','Volume3'];
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_values=[\
++		md2.results.TransientSolution[5].Vx-md.results.TransientSolution[0].Vx,\
++		md2.results.TransientSolution[5].Vy-md.results.TransientSolution[0].Vy,\
++		md2.results.TransientSolution[5].Vel-md.results.TransientSolution[0].Vel,\
++		md2.results.TransientSolution[5].TotalSmb-md.results.TransientSolution[0].TotalSmb,\
++		md2.results.TransientSolution[5].Base-md.results.TransientSolution[0].Base,\
++		md2.results.TransientSolution[5].Surface-md.results.TransientSolution[0].Surface,\
++		md2.results.TransientSolution[5].Thickness-md.results.TransientSolution[0].Thickness,\
++		md2.results.TransientSolution[5].IceVolume-md.results.TransientSolution[0].IceVolume,\
++		md2.results.TransientSolution[6].Vx-md.results.TransientSolution[1].Vx,\
++		md2.results.TransientSolution[6].Vy-md.results.TransientSolution[1].Vy,\
++		md2.results.TransientSolution[6].Vel-md.results.TransientSolution[1].Vel,\
++		md2.results.TransientSolution[6].TotalSmb-md.results.TransientSolution[1].TotalSmb,\
++		md2.results.TransientSolution[6].Base-md.results.TransientSolution[1].Base,\
++		md2.results.TransientSolution[6].Surface-md.results.TransientSolution[1].Surface,\
++		md2.results.TransientSolution[6].Thickness-md.results.TransientSolution[1].Thickness,\
++		md2.results.TransientSolution[6].IceVolume-md.results.TransientSolution[1].IceVolume,\
++		md2.results.TransientSolution[7].Vx-md.results.TransientSolution[2].Vx,\
++		md2.results.TransientSolution[7].Vy-md.results.TransientSolution[2].Vy,\
++		md2.results.TransientSolution[7].Vel-md.results.TransientSolution[2].Vel,\
++		md2.results.TransientSolution[7].TotalSmb-md.results.TransientSolution[2].TotalSmb,\
++		md2.results.TransientSolution[7].Base-md.results.TransientSolution[2].Base,\
++		md2.results.TransientSolution[7].Surface-md.results.TransientSolution[2].Surface,\
++		md2.results.TransientSolution[7].Thickness-md.results.TransientSolution[2].Thickness,\
++		md2.results.TransientSolution[7].IceVolume-md.results.TransientSolution[2].IceVolume\
++		]
++
+Index: ../trunk-jpl/test/NightlyRun/test126.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test126.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test126.py	(revision 19338)
+@@ -0,0 +1,71 @@
++#Test Name: SquareShelfConstrainedRestartTranHO3d
++from model import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++from massfluxatgate import massfluxatgate
++from generic import generic
++import copy
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md=parameterize(md,'../Par/SquareShelfConstrained.py')
++md.cluster=generic('name',oshostname(),'np',1)
++md.transient.requested_outputs=['IceVolume','TotalSmb']
++md.extrude(3,1.)
++md=setflowequation(md,'HO','all')
++
++md.verbose=verbose('solution',1);
++md.settings.recording_frequency=5
++
++# time steps and resolution
++md.timestepping.final_time=8
++
++md=solve(md,TransientSolutionEnum())
++md2=copy.deepcopy(md)
++md=solve(md,TransientSolutionEnum(),'restart',1)
++
++#Fields and tolerances to track changes
++field_names     =['Vx1','Vy1','Vel1','TotalSmb1','Bed1','Surface1','Thickness1','Volume1','Temperature1','Pressure1','Vx2','Vy2','Vel2','TotalSmb2','Bed2','Surface2','Thickness2','Volume2','Temperature2','Pressure2','Vx3','Vy3','Vel3','TotalSmb3','Bed3','Surface3','Thickness3','Volume3','Temperature3','Pressure3'];
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_values=[\
++		md2.results.TransientSolution[5].Vx-md.results.TransientSolution[0].Vx,\
++		md2.results.TransientSolution[5].Vy-md.results.TransientSolution[0].Vy,\
++		md2.results.TransientSolution[5].Vel-md.results.TransientSolution[0].Vel,\
++		md2.results.TransientSolution[5].TotalSmb-md.results.TransientSolution[0].TotalSmb,\
++		md2.results.TransientSolution[5].Base-md.results.TransientSolution[0].Base,\
++		md2.results.TransientSolution[5].Surface-md.results.TransientSolution[0].Surface,\
++		md2.results.TransientSolution[5].Thickness-md.results.TransientSolution[0].Thickness,\
++		md2.results.TransientSolution[5].IceVolume-md.results.TransientSolution[0].IceVolume,\
++		md2.results.TransientSolution[5].Temperature-md.results.TransientSolution[0].Temperature,\
++		md2.results.TransientSolution[5].Pressure-md.results.TransientSolution[0].Pressure,\
++		md2.results.TransientSolution[6].Vx-md.results.TransientSolution[1].Vx,\
++		md2.results.TransientSolution[6].Vy-md.results.TransientSolution[1].Vy,\
++		md2.results.TransientSolution[6].Vel-md.results.TransientSolution[1].Vel,\
++		md2.results.TransientSolution[6].TotalSmb-md.results.TransientSolution[1].TotalSmb,\
++		md2.results.TransientSolution[6].Base-md.results.TransientSolution[1].Base,\
++		md2.results.TransientSolution[6].Surface-md.results.TransientSolution[1].Surface,\
++		md2.results.TransientSolution[6].Thickness-md.results.TransientSolution[1].Thickness,\
++		md2.results.TransientSolution[6].IceVolume-md.results.TransientSolution[1].IceVolume,\
++		md2.results.TransientSolution[6].Temperature-md.results.TransientSolution[1].Temperature,\
++		md2.results.TransientSolution[6].Pressure-md.results.TransientSolution[1].Pressure,\
++		md2.results.TransientSolution[7].Vx-md.results.TransientSolution[2].Vx,\
++		md2.results.TransientSolution[7].Vy-md.results.TransientSolution[2].Vy,\
++		md2.results.TransientSolution[7].Vel-md.results.TransientSolution[2].Vel,\
++		md2.results.TransientSolution[7].TotalSmb-md.results.TransientSolution[2].TotalSmb,\
++		md2.results.TransientSolution[7].Base-md.results.TransientSolution[2].Base,\
++		md2.results.TransientSolution[7].Surface-md.results.TransientSolution[2].Surface,\
++		md2.results.TransientSolution[7].Thickness-md.results.TransientSolution[2].Thickness,\
++		md2.results.TransientSolution[7].IceVolume-md.results.TransientSolution[2].IceVolume,\
++		md2.results.TransientSolution[7].Temperature-md.results.TransientSolution[2].Temperature,\
++		md2.results.TransientSolution[7].Pressure-md.results.TransientSolution[2].Pressure\
++		]
++
+Index: ../trunk-jpl/test/Archives/Archive125.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive125.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/test/Archives/Archive126.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive126.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19338-19339.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19338-19339.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19338-19339.diff	(revision 20498)
@@ -0,0 +1,129 @@
+Index: ../trunk-jpl/src/m/psl/p_polynomial_value.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 19339)
+@@ -0,0 +1,124 @@
++function v = p_polynomial_value ( m, n, x )
++
++%*****************************************************************************80
++%
++%% P_POLYNOMIAL_VALUE evaluates the Legendre polynomials P(n,x).
++%
++%  Discussion:
++%
++%    P(n,1) = 1.
++%    P(n,-1) = (-1)^N.
++%    | P(n,x) | <= 1 in [-1,1].
++%
++%    The N zeroes of P(n,x) are the abscissas used for Gauss-Legendre
++%    quadrature of the integral of a function F(X) with weight function 1
++%    over the interval [-1,1].
++%
++%    The Legendre polynomials are orthogonal under the inner product defined
++%    as integration from -1 to 1:
++%
++%      Integral ( -1 <= X <= 1 ) P(I,X) * P(J,X) dX 
++%        = 0 if I =/= J
++%        = 2 / ( 2*I+1 ) if I = J.
++%
++%    Except for P(0,X), the integral of P(I,X) from -1 to 1 is 0.
++%
++%    A function F(X) defined on [-1,1] may be approximated by the series
++%      C0*P(0,x) + C1*P(1,x) + ... + CN*P(n,x)
++%    where
++%      C(I) = (2*I+1)/(2) * Integral ( -1 <= X <= 1 ) F(X) P(I,x) dx.
++%
++%    The formula is:
++%
++%      P(n,x) = (1/2^N) * sum ( 0 <= M <= N/2 ) C(N,M) C(2N-2M,N) X^(N-2*M)
++%
++%  Differential equation:
++%
++%    (1-X*X) * P(n,x)'' - 2 * X * P(n,x)' + N * (N+1) = 0
++%
++%  First terms:
++%
++%    P( 0,x) =      1
++%    P( 1,x) =      1 X
++%    P( 2,x) = (    3 X^2 -       1)/2
++%    P( 3,x) = (    5 X^3 -     3 X)/2
++%    P( 4,x) = (   35 X^4 -    30 X^2 +     3)/8
++%    P( 5,x) = (   63 X^5 -    70 X^3 +    15 X)/8
++%    P( 6,x) = (  231 X^6 -   315 X^4 +   105 X^2 -     5)/16
++%    P( 7,x) = (  429 X^7 -   693 X^5 +   315 X^3 -    35 X)/16
++%    P( 8,x) = ( 6435 X^8 - 12012 X^6 +  6930 X^4 -  1260 X^2 +   35)/128
++%    P( 9,x) = (12155 X^9 - 25740 X^7 + 18018 X^5 -  4620 X^3 +  315 X)/128
++%    P(10,x) = (46189 X^10-109395 X^8 + 90090 X^6 - 30030 X^4 + 3465 X^2-63)/256
++%
++%  Recursion:
++%
++%    P(0,x) = 1
++%    P(1,x) = x
++%    P(n,x) = ( (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x) ) / n
++%
++%    P'(0,x) = 0
++%    P'(1,x) = 1
++%    P'(N,x) = ( (2*N-1)*(P(N-1,x)+X*P'(N-1,x)-(N-1)*P'(N-2,x) ) / N
++%
++%  Licensing:
++%
++%    This code is distributed under the GNU LGPL license. 
++%
++%  Modified:
++%
++%    10 March 2012
++%
++%  Author:
++%
++%    John Burkardt
++%
++%  Reference:
++%
++%    Milton Abramowitz, Irene Stegun,
++%    Handbook of Mathematical Functions,
++%    National Bureau of Standards, 1964,
++%    ISBN: 0-486-61272-4,
++%    LC: QA47.A34.
++%
++%    Daniel Zwillinger, editor,
++%    CRC Standard Mathematical Tables and Formulae,
++%    30th Edition,
++%    CRC Press, 1996.
++%
++%  Parameters:
++%
++%    Input, integer M, the number of evaluation points.
++%
++%    Input, integer N, the highest order polynomial to evaluate.
++%    Note that polynomials 0 through N will be evaluated.
++%
++%    Input, real X(M,1), the evaluation points.
++%
++%    Output, real V(M,1:N+1), the values of the Legendre polynomials 
++%    of order 0 through N at the points X.
++%
++  if ( n < 0 )
++    v = [];
++    return
++  end
++
++  v = zeros ( m, n + 1 );
++
++  v(1:m,1) = 1.0;
++
++  if ( n < 1 )
++    return
++  end
++
++  v(1:m,2) = x(1:m,1);
++
++  for i = 2 : n
++ 
++    v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i)   ...
++                -  (     i - 1 ) *             v(1:m,i-1) ) ...
++                /  (     i     );
++ 
++  end
++ 
++  return
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19339-19340.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19339-19340.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19339-19340.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19339)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19340)
+@@ -62,7 +62,7 @@
+ 			MARSHALLING(id);
+ 			MARSHALLING(result_name);
+ 			MARSHALLING(isnull)
+-			if (!isnull) MARSHALLING(value) else value=NULL;
++			if (!isnull) MARSHALLING(value) else value=0;
+ 			MARSHALLING(step);
+ 			MARSHALLING(time);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19340-19341.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19340-19341.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19340-19341.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/m/psl/p_polynomial_value.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 19340)
++++ ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 19341)
+@@ -102,23 +102,27 @@
+     return
+   end
+ 
+-  v = zeros ( m, n + 1 );
++  v = ones ( m, n + 1 );
++  %v = zeros ( m, n + 1 );
+ 
+-  v(1:m,1) = 1.0;
++%  v(1:m,1) = 1.0;
+ 
+   if ( n < 1 )
+     return
+   end
+ 
+-  v(1:m,2) = x(1:m,1);
++  v(1:m,2) = x;
++  %v(1:m,2) = x(1:m,1);
+ 
+   for i = 2 : n
+  
+-    v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i)   ...
+-                -  (     i - 1 ) *             v(1:m,i-1) ) ...
++    %v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i)   ...
++    %            -  (     i - 1 ) *             v(1:m,i-1) ) ...
++    v(:,i+1) = ( ( 2 * i - 1 ) * x .* v(:,i)   ...
++                -  (     i - 1 ) *             v(:,i-1) ) ...
+                 /  (     i     );
+  
+   end
+  
+-  return
+-end
++%  return
++%end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19341-19342.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19341-19342.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19341-19342.diff	(revision 20498)
@@ -0,0 +1,41 @@
+Index: ../trunk-jpl/src/m/psl/shlm_element.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm_element.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/shlm_element.m	(revision 19342)
+@@ -0,0 +1,30 @@
++function sh_lm = shlm_element(index,sh,lMax,func,areas) 
++
++%SHLM :: a function to compute SH coefficients of a function 
++% 
++%USAGE: sh_lm = shlm(index,sh,lMax,func,areas); 
++%
++%index (md.mesh.elements) 
++%sh (spherical harmonics) 
++%lMax (maximum SH degree to be considered) 
++%func (any function) 
++%areas (area of elements) 
++%
++
++p = 0; 
++
++sh_lm = zeros((lMax+1)^2,1); 
++
++% weighted area integration over the unit sphere 
++for l=0:lMax
++   for m=-l:l
++      %func0 = sh(:,1+p).*(func<1); 
++      func0 = sh(:,1+p).*func; 
++      sh_lm(1+p) = sum(func0.*areas); 
++      p = p+1;
++   end
++end 
++%sh_lm = sh_lm/sum(areas);
++sh_lm = sh_lm*4*pi/sum(areas);
++
++
+
+Property changes on: ../trunk-jpl/src/m/psl/shlm_element.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19342-19343.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19342-19343.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19342-19343.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19342)
++++ ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19343)
+@@ -41,7 +41,7 @@
+ 	if(my_rank==0){
+ 		femmodel->parameters->FindParam(&solutiontype,SolutionTypeEnum);
+ 		EnumToStringx(&solutiontypestring,solutiontype);
+-		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,1));
++		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-1));
+ 		xDelete<char>(solutiontypestring);
+ 	}
+ 
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19342)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19343)
+@@ -27,10 +27,18 @@
+ %Read fields until the end of the file.
+ result  = ReadData(fid);
+ if isempty(result), error(['no results found in binary file ' filename]); end
++check_nomoresteps=0;
+ counter = 1;
+ step    = result.step;
+ while ~isempty(result), 
+ 
++	if check_nomoresteps,
++		%check that the new result does not add a step, which would be an error: 
++		if result.step>=1,
++			error('parsing results for a steady-state core, which incorporates transient results!');
++		end
++	end
++
+ 	%Check step, increase counter if this is a new step
+ 	if(step~=result.step & result.step>1)
+ 		counter = counter + 1;
+@@ -38,8 +46,16 @@
+ 	end
+ 
+ 	%Add result
+-	if(result.step==1),
++	if(result.step==-1), 
++		%specialty case, put this result at the beginning of the structure
+ 		index = 1;
++		result.step=0;
++	elseif(result.step==0),
++		%if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
++		index = 1;
++		check_nomoresteps=1;
++	elseif(result.step==1),
++		index = 1;
+ 	else
+ 		index = counter;
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19343-19344.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19343-19344.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19343-19344.diff	(revision 20498)
@@ -0,0 +1,89 @@
+Index: ../trunk-jpl/src/c/cores/ad_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/ad_core.cpp	(revision 19343)
++++ ../trunk-jpl/src/c/cores/ad_core.cpp	(revision 19344)
+@@ -150,7 +150,7 @@
+ 				fos_forward(my_rank,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir );
+ 
+ 				/*add to results*/
+-				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,jacTimesTangentDir,num_dependents,1,1,0.0));
++				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,jacTimesTangentDir,num_dependents,1,0,0.0));
+ 
+ 				/*free resources :*/
+ 				xDelete(theOutput);
+@@ -222,7 +222,7 @@
+ 				xDelete(seed);
+ 
+ 				/*add to results: */
+-				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,*jacTimesSeed,num_dependents*tangentDirNum,1,1,0.0));
++				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,*jacTimesSeed,num_dependents*tangentDirNum,1,0,0.0));
+ 
+ 				/*Free resources: */
+ 				xDelete(jacTimesSeed);
+@@ -259,7 +259,7 @@
+ 				fos_reverse(my_rank,num_dependents,num_independents, aWeightVector, weightVectorTimesJac );
+ 
+ 				/*add to results*/
+-				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,weightVectorTimesJac,num_independents,1,1,0.0));
++				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,weightVectorTimesJac,num_independents,1,0,0.0));
+ 
+ 				/*free resources :*/
+ 				xDelete(weightVectorTimesJac);
+@@ -321,7 +321,7 @@
+ 				fov_reverse(my_rank,num_dependents,num_independents, weightNum, weights, weightsTimesJac );
+ 
+ 				/*add to results: */
+-				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,*weightsTimesJac,weightNum*num_independents,1,1,0.0));
++				femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,*weightsTimesJac,weightNum*num_independents,1,0,0.0));
+ 
+ 				/*Free resources: */
+ 				xDelete(weights);
+Index: ../trunk-jpl/src/c/cores/controlvalidation_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controlvalidation_core.cpp	(revision 19343)
++++ ../trunk-jpl/src/c/cores/controlvalidation_core.cpp	(revision 19344)
+@@ -90,10 +90,10 @@
+ 	#ifdef _HAVE_ADOLC_
+ 	IssmPDouble* J_passive=xNew<IssmPDouble>(2*num);
+ 	for(int i=0;i<2*num;i++) J_passive[i]=reCast<IssmPDouble>(output[i]);
+-	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,num,2,1,0));
++	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,num,2,0,0));
+ 	xDelete<IssmPDouble>(J_passive);
+ 	#else
+-	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,output,num,2,1,0));
++	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,output,num,2,0,0));
+ 	#endif
+ 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
+ 	femmodel->OutputControlsx(&femmodel->results);
+Index: ../trunk-jpl/src/c/cores/control_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/control_core.cpp	(revision 19343)
++++ ../trunk-jpl/src/c/cores/control_core.cpp	(revision 19344)
+@@ -99,10 +99,10 @@
+ 		#ifdef _HAVE_ADOLC_
+ 		IssmPDouble* J_passive=xNew<IssmPDouble>(nsteps);
+ 		for(int i=0;i<nsteps;i++) J_passive[i]=reCast<IssmPDouble>(J[i]);
+-		femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,nsteps,1,1,0));
++		femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J_passive,nsteps,1,0,0));
+ 		xDelete<IssmPDouble>(J_passive);
+ 		#else
+-		femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J,nsteps,1,1,0));
++		femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,JEnum,J,nsteps,1,0,0));
+ 		#endif
+ 	}
+ 
+Index: ../trunk-jpl/src/c/cores/controlad_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controlad_core.cpp	(revision 19343)
++++ ../trunk-jpl/src/c/cores/controlad_core.cpp	(revision 19344)
+@@ -106,8 +106,8 @@
+ 	}
+ 	
+ 	/*Save results:*/
+-	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,G,n,1,1,0.0));
+-	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffXpEnum,X,intn,1,1,0.0));
++	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffJacobianEnum,G,n,1,0,0.0));
++	femmodel->results->AddObject(new GenericExternalResult<IssmPDouble*>(femmodel->results->Size()+1,AutodiffXpEnum,X,intn,1,0,0.0));
+ 
+ 	/*Clean-up and return*/
+ 	xDelete<double>(G);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19344-19345.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19344-19345.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19344-19345.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19344)
++++ ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19345)
+@@ -136,7 +136,7 @@
+ 	SetControlInputsFromVectorx(femmodel,X);
+ 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
+ 	femmodel->OutputControlsx(&femmodel->results);
+-	femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1,JEnum,f,1));
++	femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1,JEnum,f,0));
+ 
+ 	/*Finalize*/
+ 	if(VerboseControl()) _printf0_("   preparing final solution\n");
+Index: ../trunk-jpl/src/c/cores/controltao_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controltao_core.cpp	(revision 19344)
++++ ../trunk-jpl/src/c/cores/controltao_core.cpp	(revision 19345)
+@@ -110,7 +110,7 @@
+ 	SetControlInputsFromVectorx(femmodel,X);
+ 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
+ 	femmodel->OutputControlsx(&femmodel->results);
+-	femmodel->results->AddObject(new GenericExternalResult<double*>(femmodel->results->Size()+1,JEnum,user.J,maxiter+3,1,1,0));
++	femmodel->results->AddObject(new GenericExternalResult<double*>(femmodel->results->Size()+1,JEnum,user.J,maxiter+3,1,0,0));
+ 
+ 	/*Finalize*/
+ 	if(VerboseControl()) _printf0_("   preparing final solution\n");
Index: /issm/oecreview/Archive/19101-20495/ISSM-19345-19346.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19345-19346.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19345-19346.diff	(revision 20498)
@@ -0,0 +1,111 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_python	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_murdo_python	(revision 19346)
+@@ -0,0 +1,100 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
++	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=18 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=0
++PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						mpich         install-3.0-linux64.sh    
++						cmake         install.sh                
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-5.3.1-linux64.sh  
++						chaco         install.sh 
++						python        install-2.7.3-linux64.sh    
++						nose          install-linux64-python2.sh  
++						blas          install-linux64.sh          
++						lapack        install-linux64.sh          
++						git           install.sh                  
++						m1qn3         install.sh          
++						numpy         install-linux64.sh          
++						scipy         install-linux64.sh          
++						hdf5          install.sh                  
++						netcdf        install.sh                  
++						netcdf-python install.sh
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=8
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+
+Property changes on: ../trunk-jpl/jenkins/linux64_murdo_python
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19346-19347.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19346-19347.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19346-19347.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19346)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19347)
+@@ -248,7 +248,9 @@
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
++	echo "--------------Running Python test for Rank $i---------------------"
+ 	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS 2>&1 > $ISSM_DIR/nightlylog/python_log$i.log &
++	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
+ #concatenate reports
Index: /issm/oecreview/Archive/19101-20495/ISSM-19347-19348.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19347-19348.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19347-19348.diff	(revision 20498)
@@ -0,0 +1,93 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19347)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19348)
+@@ -33,27 +33,64 @@
+ 	except IOError as e:
+ 		raise IOError("loadresultsfromdisk error message: could not open '%s' for binary reading." % filename)
+ 
++	#initialize results: 
+ 	results=[]
++	results.append(None)
+ 
+ 	#Read fields until the end of the file.
+ 	result=ReadData(fid)
++
++	counter=0
++	check_nomoresteps=0
++	step=result['step']
++
+ 	while result:
+-		print result['step']
+-		if   result['step'] > len(results):
+-			for i in xrange(len(results),result['step']-1):
++
++		if check_nomoresteps:
++			#check that the new result does not add a step, which would be an error: 
++			if result['step']>=1:
++				raise TypeError("parsing results for a steady-state core, which incorporates transient results!")
++
++		#Check step, increase counter if this is a new step
++		if(step!=result['step'] and result['step']>1):
++			counter = counter + 1
++			step    = result['step']
++
++		#Add result
++		if result['step']==-1:
++			#specialty case, put this result at the beginning of the structure
++			index = 0
++			result['step']=0
++		elif result['step']==0:
++			#if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
++			index = 0;
++			check_nomoresteps=1
++	
++		elif result['step']==1:
++			index = 0
++		else:
++			index = counter;
++	
++		if index > len(results)-1:
++			for i in xrange(len(results)-1,index-1):
+ 				results.append(None)
+ 			results.append(resultsclass.results())
+-		elif results[result['step']-1] is None:
+-			results[result['step']-1]=resultsclass.results()
++		
++		elif results[index] is None:
++			results[index]=resultsclass.results()
++
++		if index==0 and  step==3:
++			print result
++			
+ 		#Get time and step
+-		setattr(results[result['step']-1],'step',result['step'])
+-		setattr(results[result['step']-1],'time',result['time']) 
++		setattr(results[index],'step',result['step'])
++		setattr(results[index],'time',result['time']) 
+ 	
+ 		#Add result
+-		if hasattr(results[result['step']-1],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
+-			setattr(results[result['step']-1],result['fieldname'],numpy.vstack((getattr(results[result['step']-1],result['fieldname']),result['field'])))
++		if hasattr(results[index],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
++			setattr(results[index],result['fieldname'],numpy.vstack((getattr(results[index],result['fieldname']),result['field'])))
+ 		else:
+-			setattr(results[result['step']-1],result['fieldname'],result['field'])
++			setattr(results[index],result['fieldname'],result['field'])
+ 
+ 		#read next result
+ 		result=ReadData(fid)
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19347)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19348)
+@@ -60,9 +60,6 @@
+ 		index = counter;
+ 	end
+ 	results(index).step=result.step;
+-	if result.time~=-9999,
+-		results(index).time=result.time; 
+-	end
+ 	results(index).(result.fieldname)=result.field;
+ 
+ 	%read next result
Index: /issm/oecreview/Archive/19101-20495/ISSM-19348-19349.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19348-19349.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19348-19349.diff	(revision 20498)
@@ -0,0 +1,162 @@
+Index: ../trunk-jpl/src/m/plot/colormaps/lbmap.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/colormaps/lbmap.m	(revision 19348)
++++ ../trunk-jpl/src/m/plot/colormaps/lbmap.m	(revision 19349)
+@@ -55,6 +55,8 @@
+ 		baseMap = BrownBlueMap;
+ 	case 'redblue'
+ 		baseMap = RedBlueMap;
++	case 'bluered'
++		baseMap = BlueRedMap;
+ 	otherwise
+ 		error(['Invalid scheme ' scheme])
+ 	end
+@@ -107,3 +109,16 @@
+ 	68 199 239;
+ 	0 170 226;
+ 	0 116 188]/255;
++
++function baseMap = BlueRedMap
++	baseMap = [0 116 188;
++	0 170 226;
++	68 199 239;
++	154 217 238;
++	216 236 241;
++	242 238 197;
++	249 216 168;
++	245 177 139;
++	239 133 122;
++	216  82  88;
++	175  53  71]/255;
+Index: ../trunk-jpl/src/m/plot/colormaps/bluewhitered_smooth.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/colormaps/bluewhitered_smooth.m	(revision 0)
++++ ../trunk-jpl/src/m/plot/colormaps/bluewhitered_smooth.m	(revision 19349)
+@@ -0,0 +1,126 @@
++function newmap = bluewhitered_smooth(m)
++%BLUEWHITERED   Blue, white, and red color map.
++%   BLUEWHITERED(M) returns an M-by-3 matrix containing a blue to white
++%   to red colormap, with white corresponding to the CAXIS value closest
++%   to zero.  This colormap is most useful for images and surface plots
++%   with positive and negative values.  BLUEWHITERED, by itself, is the
++%   same length as the current colormap.
++%
++%   Examples:
++%   ------------------------------
++%   figure
++%   imagesc(peaks(250));
++%   colormap(bluewhitered(256)), colorbar
++%
++%   figure
++%   imagesc(peaks(250), [0 8])
++%   colormap(bluewhitered), colorbar
++%
++%   figure
++%   imagesc(peaks(250), [-6 0])
++%   colormap(bluewhitered), colorbar
++%
++%   figure
++%   surf(peaks)
++%   colormap(bluewhitered)
++%   axis tight
++%
++%   See also HSV, HOT, COOL, BONE, COPPER, PINK, FLAG, 
++%   COLORMAP, RGBPLOT.
++
++
++if nargin < 1
++   m = size(get(gcf,'colormap'),1);
++end
++
++bottom = [50 50 190]/255;
++botmiddle = [145 145 215]/255;
++middle = [240 240 240]/255;
++topmiddle = [215 145 145]/255;
++top = [190 50 50]/255;
++% bottom = [0.25 0.3 0.75];
++% botmiddle = [0.55 0.57 0.8];
++% middle = [0.85 0.85 0.85];
++% topmiddle = [0.77 0.43 0.5];
++% top = [0.7 0.0 0.15];
++
++% Find middle
++lims = get(gca, 'CLim');
++
++% Find ratio of negative to positive
++if (lims(1) < 0) & (lims(2) > 0)
++    % It has both negative and positive
++    % Find ratio of negative to positive
++    ratio = abs(lims(1)) / (abs(lims(1)) + lims(2));
++    neglen = round(m*ratio);
++    poslen = m - neglen;
++    
++    % Just negative
++    new = [bottom; botmiddle; middle];
++    len = length(new);
++    oldsteps = linspace(0, 1, len);
++    newsteps = linspace(0, 1, neglen);
++    newmap1 = zeros(neglen, 3);
++    
++    for i=1:3
++        % Interpolate over RGB spaces of colormap
++        newmap1(:,i) = min(max(interp1(oldsteps, new(:,i), newsteps)', 0), 1);
++    end
++    
++    % Just positive
++    new = [middle; topmiddle; top];
++    len = length(new);
++    oldsteps = linspace(0, 1, len);
++    newsteps = linspace(0, 1, poslen);
++    newmap = zeros(poslen, 3);
++    
++    for i=1:3
++        % Interpolate over RGB spaces of colormap
++        newmap(:,i) = min(max(interp1(oldsteps, new(:,i), newsteps)', 0), 1);
++    end
++    
++    % And put 'em together
++    newmap = [newmap1; newmap];
++    
++elseif lims(1) >= 0
++    % Just positive
++    new = [middle; topmiddle; top];
++    len = length(new);
++    oldsteps = linspace(0, 1, len);
++    newsteps = linspace(0, 1, m);
++    newmap = zeros(m, 3);
++    
++    for i=1:3
++        % Interpolate over RGB spaces of colormap
++        newmap(:,i) = min(max(interp1(oldsteps, new(:,i), newsteps)', 0), 1);
++    end
++    
++else
++    % Just negative
++    new = [bottom; botmiddle; middle];
++    len = length(new);
++    oldsteps = linspace(0, 1, len);
++    newsteps = linspace(0, 1, m);
++    newmap = zeros(m, 3);
++    
++    for i=1:3
++        % Interpolate over RGB spaces of colormap
++        newmap(:,i) = min(max(interp1(oldsteps, new(:,i), newsteps)', 0), 1);
++    end
++    
++end
++% 
++% m = 64;
++% new = [bottom; botmiddle; middle; topmiddle; top];
++% % x = 1:m;
++% 
++% oldsteps = linspace(0, 1, 5);
++% newsteps = linspace(0, 1, m);
++% newmap = zeros(m, 3);
++% 
++% for i=1:3
++%     % Interpolate over RGB spaces of colormap
++%     newmap(:,i) = min(max(interp1(oldsteps, new(:,i), newsteps)', 0), 1);
++% end
++% 
++% % set(gcf, 'colormap', newmap), colorbar
+\ No newline at end of file
Index: /issm/oecreview/Archive/19101-20495/ISSM-19349-19350.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19349-19350.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19349-19350.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19349)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19350)
+@@ -258,6 +258,7 @@
+ rm python_log.log
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
++	echo "This is the concatenation phase for rank: $i"
+ 	cat python_log$i.log >> python_log.log
+ done
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19350-19351.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19350-19351.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19350-19351.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19350)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19351)
+@@ -259,6 +259,7 @@
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	echo "This is the concatenation phase for rank: $i"
++	cat python_log$i.log
+ 	cat python_log$i.log >> python_log.log
+ done
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19351-19352.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19351-19352.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19351-19352.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19351)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19352)
+@@ -258,7 +258,7 @@
+ rm python_log.log
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+-	echo "This is the concatenation phase for rank: $i"
++	echo "This is the concatenation phase for rank: python_log$i.log"
+ 	cat python_log$i.log
+ 	cat python_log$i.log >> python_log.log
+ done
Index: /issm/oecreview/Archive/19101-20495/ISSM-19352-19353.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19352-19353.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19352-19353.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19352)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19353)
+@@ -249,19 +249,20 @@
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+-	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS 2>&1 > $ISSM_DIR/nightlylog/python_log$i.log &
++	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
++	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS 2>&1 > $ISSM_DIR/nightlylog/python_log$i.log &
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
+ #concatenate reports
+-cd $ISSM_DIR/nightlylog/
+-rm python_log.log
+-for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+-do
+-	echo "This is the concatenation phase for rank: python_log$i.log"
+-	cat python_log$i.log
+-	cat python_log$i.log >> python_log.log
+-done
++#cd $ISSM_DIR/nightlylog/
++#rm python_log.log
++#for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++#do
++#	echo "This is the concatenation phase for rank: python_log$i.log"
++#	cat python_log$i.log
++#	cat python_log$i.log >> python_log.log
++#done
+ #}}}
+ fi
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19353-19354.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19353-19354.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19353-19354.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19353)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19354)
+@@ -250,19 +250,19 @@
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ 	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
+-	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS 2>&1 > $ISSM_DIR/nightlylog/python_log$i.log &
++	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
+-#concatenate reports
+-#cd $ISSM_DIR/nightlylog/
+-#rm python_log.log
+-#for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+-#do
+-#	echo "This is the concatenation phase for rank: python_log$i.log"
+-#	cat python_log$i.log
+-#	cat python_log$i.log >> python_log.log
+-#done
++# concatenate reports
++cd $ISSM_DIR/nightlylog/
++rm python_log.log
++for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++do
++	echo "This is the concatenation phase for rank: python_log$i.log"
++	cat python_log$i.log
++	cat python_log$i.log >> python_log.log
++done
+ #}}}
+ fi
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19354-19355.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19354-19355.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19354-19355.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19354)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19355)
+@@ -249,8 +249,8 @@
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+-	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
+-	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log
++	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
++	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19355-19356.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19355-19356.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19355-19356.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19355)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19356)
+@@ -10,6 +10,10 @@
+ #get windows style path to files
+ export ISSM_DIR_WIN=`cygpath -m "$ISSM_DIR"`
+ 
++echo "----------------------------------"
++ls $ISSM_DIR/bin
++echo "----------------------------------"
++
+ #build list of files to put into the installer: 
+ rm -rf ISSM.aic 
+ cat << END > ISSM.aic
Index: /issm/oecreview/Archive/19101-20495/ISSM-19356-19357.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19356-19357.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19356-19357.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19356)
++++ ../trunk-jpl/jenkins/windows	(revision 19357)
+@@ -18,9 +18,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \
+-	--enable-development \
+-	--enable-debugging '
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni"'
+ 
+ #MATLAB path
+ MATLAB_PATH="C:/MATLAB/R2013a/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19357-19358.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19357-19358.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19357-19358.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19357)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19358)
+@@ -133,7 +133,14 @@
+ 	echo "ISSM_EXTERNALPACKAGES supported values are: install, copy and none. Exiting..." >&2 # Error message to stderr.
+ 	exit 1
+ fi
++
+ source $ISSM_DIR/etc/environment.sh
++
++if [ "$OS" == "win7" ]
++then
++	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
++fi
++
+ #}}}
+ #ISSM compilation yes/no                (ISSM_COMPILATION) {{{
+ if [ "$ISSM_COMPILATION" == "yes" ]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19358-19359.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19358-19359.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19358-19359.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19358)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19359)
+@@ -138,7 +138,10 @@
+ 
+ if [ "$OS" == "win7" ]
+ then
++	echo "------------------------------------------------"
++	echo "DID YOU SOURCE IT!?"
+ 	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
++	echo "------------------------------------------------"
+ fi
+ 
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19359-19360.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19359-19360.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19359-19360.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19359)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19360)
+@@ -134,16 +134,13 @@
+ 	exit 1
+ fi
+ 
+-source $ISSM_DIR/etc/environment.sh
+-
+ if [ "$OS" == "win7" ]
+ then
+-	echo "------------------------------------------------"
+-	echo "DID YOU SOURCE IT!?"
+ 	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+-	echo "------------------------------------------------"
+ fi
+ 
++source $ISSM_DIR/etc/environment.sh
++
+ #}}}
+ #ISSM compilation yes/no                (ISSM_COMPILATION) {{{
+ if [ "$ISSM_COMPILATION" == "yes" ]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19360-19361.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19360-19361.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19360-19361.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19360)
++++ ../trunk-jpl/jenkins/windows	(revision 19361)
+@@ -11,14 +11,15 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
+-	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
++	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni"'
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \
++	--enable-development'
+ 
+ #MATLAB path
+ MATLAB_PATH="C:/MATLAB/R2013a/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19361-19362.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19361-19362.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19361-19362.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19361)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19362)
+@@ -12,6 +12,7 @@
+ 
+ echo "----------------------------------"
+ ls $ISSM_DIR/bin
++cp $ISSM_DIR/src/m/*/*.m ./bin/
+ echo "----------------------------------"
+ 
+ #build list of files to put into the installer: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19362-19363.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19362-19363.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19362-19363.diff	(revision 20498)
@@ -0,0 +1,286 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19362)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19363)
+@@ -586,6 +586,7 @@
+ 	SurfaceSlopeYEnum,
+ 	TemperatureEnum,
+ 	TemperaturePicardEnum,
++	TemperaturePDDEnum,
+ 	ThicknessAbsMisfitEnum,
+ 	SurfaceAbsMisfitEnum,
+ 	VelEnum,
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19362)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19363)
+@@ -1494,6 +1494,7 @@
+ 				name==InversionVyObsEnum ||
+ 				name==InversionVzObsEnum ||
+ 				name==TemperatureEnum ||
++				name==TemperaturePDDEnum ||
+ 				name==EnthalpyEnum ||
+ 				name==EnthalpyPicardEnum ||
+ 				name==WaterfractionEnum||
+@@ -1771,23 +1772,38 @@
+ 
+ 	switch(this->ObjectEnum()){
+ 		case TriaEnum:  
+-			this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++		        // this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++		        this->inputs->AddInput(new TriaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
+ 			this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+ 			this->inputs->AddInput(new TriaInput(SurfaceforcingsAccumulationEnum,&accu[0],P1Enum));
+ 			this->inputs->AddInput(new TriaInput(SurfaceforcingsMeltEnum,&melt[0],P1Enum));
+ 			break;
+-		case PentaEnum: 
+-			this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+-			this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-			this->InputExtrude(TemperatureEnum,-1);
+-			this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+-			break;
++		case PentaEnum:
++		        if(IsOnSurface()){
++		              GetInputListOnVertices(&s[0],TemperatureEnum);
++		              yearlytemperatures[0] = s[0];
++		              yearlytemperatures[1] = s[1];
++		              yearlytemperatures[2] = s[2];
++		              this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++		        }
++		        this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++		        this->inputs->AddInput(new PentaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
++		        this->InputExtrude(TemperaturePDDEnum,-1);
++		        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++		        break;
+ 		case TetraEnum: 
+-			this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+-			this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-			this->InputExtrude(TemperatureEnum,-1);
+-			this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+-			break;
++		        if(IsOnSurface()){
++		              GetInputListOnVertices(&s[0],TemperatureEnum);
++		              yearlytemperatures[0] = s[0];
++		              yearlytemperatures[1] = s[1];
++		              yearlytemperatures[2] = s[2];
++		              this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
++		        }
++		        this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++		        this->inputs->AddInput(new TetraInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
++		        this->InputExtrude(TemperaturePDDEnum,-1);
++		        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++		        break;
+ 		default: _error_("Not implemented yet");
+ 	}
+ 	// this->inputs->AddInput(NewTemperatureInput);
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19362)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19363)
+@@ -14,27 +14,26 @@
+ 		 login='klemorza';
+ 		 np=10;
+ 		 port=0;
+-		 queue='shortq';
++		 queue='longq';
+ 		 time=10;
+ 		 % codepath='/usr/local/issm-r11321/bin'; % this one is for issm on acenet global
+ 		 codepath='/home/klemorza/issm/trunk-jpl/bin'; % this one is for issm on my acenet directory
+ 		 %executionpath='/home/klemorza/issm/trunk-jpl/execution';
+ 		 %executionpath='/home/klemorza/scratch/issmres.dir';
+-		 executionpath='/net/glacdyn-data/glacdyn/1/klemorza/issm.dir';
++		 executionpath='/net/glacdyn-data/glacdyn/1/klemorza/issm.dir';                 
+ 		 %}}}
+ 	 end
+ 	 methods
+ 		 function cluster=acenet(varargin) % {{{
+ 			 %use provided options to change fields
+ 			 options=pairoptions(varargin{:});
+-
+ 			 %initialize cluster using user settings if provided
+ 			 if (exist([cluster.name '_settings'])==2), eval([cluster.name '_settings']); end
+ 
+ 			 %OK get other fields
+ 			 cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
+ 		 end
+-		 %}}}
++		 %}}} 
+ 		 function disp(cluster) % {{{
+ 			 %  display the object
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+@@ -46,14 +45,13 @@
+ 			 disp(sprintf('    time: %i',cluster.time));
+ 			 disp(sprintf('    codepath: %s',cluster.codepath));
+ 			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+-		 end
++                 end
+ 		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+ 			 available_queues={'debug','shortq','longq'};
+-			 queue_requirements_time=[48*1 48*2 48*5];
++			 queue_requirements_time=[48*1 48*7 48*15];
+ 			 queue_requirements_np=[32 128 256];
+-
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+@@ -66,53 +64,71 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#!/bin/bash\n');
+ 			 fprintf(fid,'#$ -cwd\n');
+-          fprintf(fid,'#$ -N issm\n');
+-          fprintf(fid,'#$ -l h_rt=00:15:00\n');
+-          % fprintf(fid,'#$ -l h_rt=25:00:0\n');
+-          % fprintf(fid,'#$ -l h_rt=47:59:00\n');
+-          % fprintf(fid,'#$ -l h_rt=72:00:0\n');
+-          fprintf(fid,'#$ -l h_rt=96:00:0\n');
+-          % fprintf(fid,'#$ -l h_rt=336:00:0\n');
+ 
+-          fprintf(fid,'#$ -l h_vmem=2G\n');
++                         fprintf(fid,'#$ -N issm\n');
++                         % fprintf(fid,'#$ -l h_rt=00:15:00\n');
++                         % fprintf(fid,'#$ -l h_rt=5:00:0\n');
++                         % fprintf(fid,'#$ -l h_rt=25:00:0\n');
++                         % fprintf(fid,'#$ -l h_rt=47:59:00\n');
++                         % fprintf(fid,'#$ -l h_rt=72:00:0\n');
++                         % fprintf(fid,'#$ -l h_rt=96:00:0\n');
++                         % fprintf(fid,'#$ -l h_rt=336:00:0\n');
++                         tstr = sprintf('#$ -l h_rt=%i:00:00\n',cluster.time);
++                         fprintf(fid,tstr);
+ 
+-          % ---- Which queue to use ----
+-          %fprintf(fid,'#$ -q tarasov.q\n'); %
+-          fprintf(fid,'#$ -q short.q@*,medium.q@*\n');
+-          %fprintf(fid,'#$ -q medium.q@*\n');
+-          %fprintf(fid,'#$ -q short.q@*\n');
++                         fprintf(fid,'#$ -l h_vmem=2G\n');
+ 
+-          % ---- Which node are selected ----
+-          % fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
+-          %fprintf(fid,'#$ -l h=cl0* \n');
+-          % fprintf(fid,'#$ -l h=cl338 \n');
+-          % Acenet nodes with 16cpus and more than 60G mem
+-          % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
+-  
+-          % ---- cpus on different nodes ----
+-           fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
+-          % fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
+-          %fprintf(fid,'#$ -pe 4per* %i\n',cluster.np);
+-          % -------- All cpus in the same node --------          
+-          % fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
+-          
+-          % ---- misc ----
+-          fprintf(fid,'#$ -j y\n');        
+-                  
+-          fprintf(fid,'module purge\n');
+-          %fprintf(fid,'module load gcc openmpi/gcc\n');
+-          %fprintf(fid,'module unload openmpi\n');
+-          fprintf(fid,'module load intel/12.1.7.367\n');
+-          fprintf(fid,'module load openmpi/intel/1.2.9\n');
++                         if strcmp(cluster.executionpath,'/home/klemorza/scratch/issmres.dir')
++                             % ---- Which acent queue to use ----
++                             fprintf(fid,'#$ -q short.q@*,medium.q@*\n');
++                             %fprintf(fid,'#$ -q medium.q@*,long.q@*\n');
++                             %fprintf(fid,'#$ -q medium.q@*\n');
++                             %fprintf(fid,'#$ -q short.q@*\n');
++                             % Acenet nodes with 16cpus and more than 60G mem
++                             % fprintf(fid,'#$ -l h=cl001|cl002|cl003|cl004|cl005|cl006|cl007|cl008|cl009|cl010|cl011|cl012|cl021|cl022|cl023|cl024 \n');
++                             % ---- cpus on different nodes ----
++                             if cluster.np==4
++                                 % -------- All cpus in the same node --------          
++                                 fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
++                             else
++                                 fprintf(fid,'#$ -pe ompi %i\n',cluster.np); % To avoid green acenet that does not have InfiniBand
++                             end
++                         
++                         elseif strcmp(cluster.executionpath,'/net/glacdyn-data/glacdyn/1/klemorza/issm.dir')
++                             % ---- Which node for Lev's queue are selected ----
++                             fprintf(fid,'#$ -q tarasov.q\n');
++                             fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269|cl338 \n');
++                             %fprintf(fid,'#$ -l h=cl27*|cl28*|cl29*|cl30*|cl31*|cl320|cl267|cl268|cl269 \n');
++                             %fprintf(fid,'#$ -l h=cl0* \n');
++                             % fprintf(fid,'#$ -l h=cl338 \n');
++                             
++                             if cluster.np==4
++                                 % -------- All cpus in the same node --------          
++                                 fprintf(fid,'#$ -pe openmp %i\n',cluster.np);
++                             else
++                                 fprintf(fid,'#$ -pe ompi* %i\n',cluster.np);
++                                 %fprintf(fid,'#$ -pe 4per %i\n',cluster.np);
++                                 %fprintf(fid,'#$ -pe 8per %i\n',cluster.np);
++                             end
++                         end
++                                                  
++                         % ---- misc ----
++                         fprintf(fid,'#$ -j y\n');
++                         
++                         fprintf(fid,'module purge\n');
++                         %fprintf(fid,'module load gcc openmpi/gcc\n');
++                         %fprintf(fid,'module unload openmpi\n');
++                         fprintf(fid,'module load intel/12.1.7.367\n');
++                         fprintf(fid,'module load openmpi/intel/1.2.9\n');
+ 
+-          fprintf(fid,'module load gsl\n');
+-          %fprintf(fid,'module load issm\n');
+-          fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+-          fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+-          fprintf(fid,'\n');
+-          fprintf(fid,'mpiexec %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog\n',...
+-                   cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+-          %fprintf(fid,'echo $HOSTNAME >>%s.outlog',modelname);
++                         fprintf(fid,'module load gsl\n');
++                         %fprintf(fid,'module load issm\n');
++                         fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++                         fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++                         fprintf(fid,'\n');
++                         fprintf(fid,'mpiexec %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog\n',...
++                                 cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
++                         %fprintf(fid,'echo $HOSTNAME >>%s.outlog',modelname);
+ 			 fclose(fid);
+ 
+ 		 end
+@@ -130,6 +146,7 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
++
+ 		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+@@ -141,6 +158,7 @@
+ 			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
++
+ 		 function Download(cluster,dirname,filelist)% {{{
+ 
+ 			 %copy files from cluster to current directory
+Index: ../trunk-jpl/src/m/enum/TemperaturePDDEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TemperaturePDDEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TemperaturePDDEnum.m	(revision 19363)
+@@ -0,0 +1,11 @@
++function macro=TemperaturePDDEnum()
++%TEMPERATUREPDDENUM - Enum of TemperaturePDD
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TemperaturePDDEnum()
++
++macro=StringToEnum('TemperaturePDD');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19362)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19363)
+@@ -567,6 +567,7 @@
+ def SurfaceSlopeYEnum(): return StringToEnum("SurfaceSlopeY")[0]
+ def TemperatureEnum(): return StringToEnum("Temperature")[0]
+ def TemperaturePicardEnum(): return StringToEnum("TemperaturePicard")[0]
++def TemperaturePDDEnum(): return StringToEnum("TemperaturePDD")[0]
+ def ThicknessAbsMisfitEnum(): return StringToEnum("ThicknessAbsMisfit")[0]
+ def SurfaceAbsMisfitEnum(): return StringToEnum("SurfaceAbsMisfit")[0]
+ def VelEnum(): return StringToEnum("Vel")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19363-19364.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19363-19364.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19363-19364.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19364-19365.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19364-19365.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19364-19365.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19364)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19365)
+@@ -12,7 +12,7 @@
+ 
+ echo "----------------------------------"
+ ls $ISSM_DIR/bin
+-cp $ISSM_DIR/src/m/*/*.m ./bin/
++cp $ISSM_DIR/src/m/*/*.m $ISSM_DIR/bin/
+ echo "----------------------------------"
+ 
+ #build list of files to put into the installer: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19365-19366.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19365-19366.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19365-19366.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19365)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19366)
+@@ -11,8 +11,7 @@
+ export ISSM_DIR_WIN=`cygpath -m "$ISSM_DIR"`
+ 
+ echo "----------------------------------"
+-ls $ISSM_DIR/bin
+-cp $ISSM_DIR/src/m/*/*.m $ISSM_DIR/bin/
++find ./src/m -name '*.m' | xargs cp -t ./bin/
+ echo "----------------------------------"
+ 
+ #build list of files to put into the installer: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19366-19367.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19366-19367.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19366-19367.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19366)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19367)
+@@ -11,7 +11,7 @@
+ export ISSM_DIR_WIN=`cygpath -m "$ISSM_DIR"`
+ 
+ echo "----------------------------------"
+-find ./src/m -name '*.m' | xargs cp -t ./bin/
++find $ISSM_DIR/src/m -name '*.m' | xargs cp -t $ISSM_DIR/bin/
+ echo "----------------------------------"
+ 
+ #build list of files to put into the installer: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19367-19368.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19367-19368.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19367-19368.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/packagers/win7/package64.sh
+===================================================================
+--- ../trunk-jpl/packagers/win7/package64.sh	(revision 19367)
++++ ../trunk-jpl/packagers/win7/package64.sh	(revision 19368)
+@@ -11,7 +11,9 @@
+ export ISSM_DIR_WIN=`cygpath -m "$ISSM_DIR"`
+ 
+ echo "----------------------------------"
++rm $ISSM_DIR/bin/*.m
+ find $ISSM_DIR/src/m -name '*.m' | xargs cp -t $ISSM_DIR/bin/
++ls $ISSM_DIR/bin
+ echo "----------------------------------"
+ 
+ #build list of files to put into the installer: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19368-19369.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19368-19369.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19368-19369.diff	(revision 20498)
@@ -0,0 +1,589 @@
+Index: ../trunk-jpl/src/m/psl/xxlm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/xxlm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/xxlm.m	(revision 19369)
+@@ -1,36 +0,0 @@
+-function x_lm = xxlm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,ocean,sh,loveH,loveK) 
+-
+-%---------------------------------------------------------------------
+-% xxlm :: a function to compute SH coefficient for X 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-q1 = 0; 
+-q2 = 0; 
+-
+-% obtain xp_pq 
+-xp_pq = xplm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,loveH,loveK); 
+-
+-% compute xp, i.e. x' 
+-xp = zeros(1,nPix);
+-for p=0:lMax
+-   for q = -p:p
+-      xp = xp + xp_pq(1+q1).*sh(:,1+q1)';
+-      q1 = q1 + 1;
+-   end
+-end
+-
+-x_lm = zeros(1,(lMax+1)^2);
+-for l=0:lMax
+-   for m=-l:l
+-      x_lm(1+q2) = sum((xp'.*sh(:,1+q2)).*ocean');
+-      q2 = q2+1;
+-   end
+-end
+-% 
+-x_lm = x_lm*4*pi/nPix;
+-
+Index: ../trunk-jpl/src/m/psl/lonLat.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/lonLat.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/lonLat.m	(revision 19369)
+@@ -1,20 +0,0 @@
+-function lon_lat = lonLat(nSide,nPix)
+-
+-%---------------------------------------------------------------------
+-% lonLat :: a function to compute (long, lat) in degrees for GMT 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-thetaLambda = pix2ang(nSide); 
+-data = cell2mat(thetaLambda); 
+-data = data*180/pi;  % in degrees 
+-data(1,:) = -data(1,:)+90;  % lat \in [-90, 90] in GMT 
+-% 
+-lon_lat = zeros(2,nPix); 
+-lon_lat(1,:) = data(2,:); 
+-lon_lat(2,:) = data(1,:); 
+-
+Index: ../trunk-jpl/src/m/psl/yylm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/yylm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/yylm.m	(revision 19369)
+@@ -1,37 +0,0 @@
+-function y_lm = yylm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,ocean,sh,loveH,loveK) 
+-
+-%---------------------------------------------------------------------
+-% yylm :: a function to compute SH coefficient for Y  
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-q1 = 0; 
+-q2 = 0; 
+-
+-% obtain yp_pq
+-yp_pq = yplm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,loveH,loveK); 
+-
+-% compute yp, i.e. y'
+-yp = zeros(1,nPix);
+-for p=0:lMax
+-   for q = -p:p
+-      yp = yp + yp_pq(1+q1).*sh(:,1+q1)';
+-      q1 = q1 + 1;
+-   end
+-end
+-
+-y_lm = zeros(1,(lMax+1)^2);
+-% 
+-for l=0:lMax
+-   for m=-l:l
+-      y_lm(1+q2) = sum((yp'.*sh(:,1+q2)).*ocean');
+-      q2 = q2+1;
+-   end
+-end
+-% 
+-y_lm = y_lm*4*pi/nPix;
+-
+Index: ../trunk-jpl/src/m/psl/intro.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/intro.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/intro.m	(revision 19369)
+@@ -1,24 +0,0 @@
+-function intro(lMax,nPix,zlr_pq,oce_pq) 
+-
+-%---------------------------------------------------------------------
+-% intro :: a function to instruct what software should be installed prior to using this code. 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-disp([' === A brief instruction before you can run this code =============================== ']); 
+-disp(['     1. Install MEALPix http://sourceforge.net/projects/mealpix/ ']); 
+-disp(['        MEALPix is a Matlab implementation of HEALPix http://healpix.jpl.nasa.gov/ ']); 
+-disp(['        We rely on MEALPix mainly for pixelization & spherical harmonics computation. ']); 
+-disp(['        I found a bug in MEALPix. E-mail for help: surendra.adhikari@jpl.nasa.gov ']); 
+-disp(['     2. Install (optional) GMT http://gmt.soest.hawaii.edu/ ']); 
+-disp(['        GMT-5.1.1 is recommended for direct use of our gmt code. ']); 
+-disp(['     3. If MEALPix and GMT are both installed, ']); 
+-disp(['        turn both "pix_switch" and "gmt_switch" on in ./data_mat/para.m and rerun. ']); 
+-disp(['     4. If MEALPix is installed and there is no intention of using GMT, ']); 
+-disp(['        turn only "pix_switch" on in ./data_mat/para.m and rerun. ']); 
+-disp([' === E-mail to surendra.adhikari@jpl.nasa.gov for any question ====================== ']); 
+-
+Index: ../trunk-jpl/src/m/psl/gmtOcean.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/gmtOcean.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/gmtOcean.m	(revision 19369)
+@@ -1,43 +0,0 @@
+-function gmtOce(num) 
+-
+-%---------------------------------------------------------------------
+-% gmtOce :: a function to write a GMT code for selecting pixels (e.g., ocean function) 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-text0 = ''; 
+-text1 = '#!/bin/sh'; 
+-text2 = '# GMT code for selecting ocean and continental data (from Selen)'; 
+-text3 = '# This code is written as a part of the ISSM-PSL project'; 
+-text4 = '# (c) Surendra Adhikari'; 
+-text5 = '#     Jet Propulsion Laboratory, Caltech'; 
+-text6 = '#     November 3, 2014'; 
+-text7 = sprintf('pixAll="./data_gmt/pixels/pix%dall.txt"',num); 
+-text8 = sprintf('pixOce="./data_gmt/pixels/pix%doce.txt"',num); 
+-text9 = sprintf('pixCon="./data_gmt/pixels/pix%dcon.txt"',num); 
+-text10 = '# Select ocean (and continent) pixels'; 
+-text11 = 'gmt gmtselect $pixAll -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/k/s/k > $pixOce'; 
+-text12 = '#gmt gmtselect $pixAll -h0 -Df -R              -A0 -JQ        -Ns/k/s/k/s > $pixCon'; 
+-% 
+-fid = fopen(sprintf('./data_gmt/oceanFunc.sh'),'w');  % "./" = ISSM_PSL directory! 
+-fprintf(fid,'%s\n',text1); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text2); 
+-fprintf(fid,'%s\n',text3); 
+-fprintf(fid,'%s\n',text4); 
+-fprintf(fid,'%s\n',text5); 
+-fprintf(fid,'%s\n',text6); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text7); 
+-fprintf(fid,'%s\n',text8); 
+-fprintf(fid,'%s\n',text9); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text10); 
+-fprintf(fid,'%s\n',text11); 
+-fprintf(fid,'%s\n',text12); 
+-fclose(fid); 
+-
+Index: ../trunk-jpl/src/m/psl/selm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/selm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/selm.m	(revision 19369)
+@@ -1,16 +0,0 @@
+-function se_lm = selm(rho_i,rho_o,ice_lm,oce_lm) 
+-
+-%---------------------------------------------------------------------
+-% euslm :: a function to compute SH coefficients for eustatic terms S^E 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-se_lm = zeros(1,length(oce_lm)); 
+-
+-rho_r = rho_i/rho_o; 
+-se_lm(1) = -sqrt(4*pi)*rho_r*ice_lm(1)/oce_lm(1);
+-
+Index: ../trunk-jpl/src/m/psl/results.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/results.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/results.m	(revision 19369)
+@@ -1,38 +0,0 @@
+-function results(nSide,nPix,data_dir,ice_func,oce_func,eustatic,seaLevel,displace) 
+-
+-%---------------------------------------------------------------------
+-% results :: save results that could be plotted using GMT code (cf. gmtResults.m) 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-lon_lat = lonLat(nSide,nPix);  % (lon, lat) 
+-lonLat_ice = zeros(3,nPix); 
+-lonLat_ice(1,:) = lon_lat(1,:); 
+-lonLat_ice(2,:) = lon_lat(2,:); 
+-lonLat_ice(3,:) = ice_func; 
+-dlmwrite(sprintf('./data_gmt/results_%s/iceLoad.txt',data_dir),lonLat_ice','delimiter','\t'); 
+-lonLat_oce   = zeros(3,nPix); 
+-lonLat_oce(1,:) = lon_lat(1,:); 
+-lonLat_oce(2,:) = lon_lat(2,:); 
+-lonLat_oce(3,:) = oce_func; 
+-dlmwrite(sprintf('./data_gmt/results_%s/ocean.txt',data_dir),lonLat_oce','delimiter','\t'); 
+-lonLat_eus = zeros(3,nPix); 
+-lonLat_eus(1,:) = lon_lat(1,:); 
+-lonLat_eus(2,:) = lon_lat(2,:); 
+-lonLat_eus(3,:) = eustatic; 
+-dlmwrite(sprintf('./data_gmt/results_%s/eustatic.txt',data_dir),lonLat_eus','delimiter','\t'); 
+-lonLat_slr = zeros(3,nPix); 
+-lonLat_slr(1,:) = lon_lat(1,:); 
+-lonLat_slr(2,:) = lon_lat(2,:);  
+-lonLat_slr(3,:) = seaLevel ; 
+-dlmwrite(sprintf('./data_gmt/results_%s/seaLevel.txt',data_dir),lonLat_slr','delimiter','\t'); 
+-lonLat_dis = zeros(3,nPix); 
+-lonLat_dis(1,:) = lon_lat(1,:); 
+-lonLat_dis(2,:) = lon_lat(2,:);  
+-lonLat_dis(3,:) = displace ; 
+-dlmwrite(sprintf('./data_gmt/results_%s/displace.txt',data_dir),lonLat_dis','delimiter','\t'); 
+-
+Index: ../trunk-jpl/src/m/psl/zelm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/zelm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/zelm.m	(revision 19369)
+@@ -1,14 +0,0 @@
+-function ze_lm = zelm(rho_i,rho_o,ice_lm,oce_lm) 
+-
+-%---------------------------------------------------------------------
+-% zelm :: a function to compute SH coefficients for eustatic terms Z^E 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-rho_r = rho_i/rho_o; 
+-ze_lm = - (rho_r*ice_lm(1)/oce_lm(1))*oce_lm;
+-
+Index: ../trunk-jpl/src/m/psl/gmtResults.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/gmtResults.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/gmtResults.m	(revision 19369)
+@@ -1,126 +0,0 @@
+-function gmtResults(data_dir,seaLevel,ice_func,displace,farrell) 
+-
+-%---------------------------------------------------------------------
+-% gmtResults :: a function to write a GMT code for plotting solutions 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-min_d = ceil(min(displace)); % for negative 
+-max_d = floor(max(displace)); 
+-ten_d = floor((max_d-min_d)/10);
+-%
+-min_s = ceil(min(seaLevel)); % for negative 
+-max_s = floor(max(seaLevel)); 
+-ten_s = floor((max_s-min_s)/10);
+-%
+-min_i = ceil(min(ice_func)); % for negative 
+-max_i = floor(max(ice_func)); 
+-ten_i = floor((max_i-min_i)/10);
+-%
+-ten_o = 1/10; 
+-
+-text0 = ''; 
+-text00 = '   ;;'; 
+-text01 = '   #'; 
+-text1 = '#!/bin/sh'; 
+-text2 = '# GMT code for plotting results (from Selen)'; 
+-text3 = '# This code is written as a part of the ISSM-PSL project'; 
+-text4 = '# (c) Surendra Adhikari'; 
+-text5 = '#     Jet Propulsion Laboratory, Caltech'; 
+-text6 = '#     November 3, 2014'; 
+-text7 = sprintf('dG="./results_%s"',data_dir); 
+-% 
+-text20 = 'step=1'; 
+-text21 = 'case $step in'; 
+-text22 = '   1) # plot RSL for rigid Earth'; 
+-text23 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_s.cpt',min_s,max_s,ten_s); 
+-text24 = '   gmt psbasemap -Y19 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K > $dG/seaLevel.ps'; 
+-text25 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/seaLevel.txt -C$dG/pale_s.cpt  >> $dG/seaLevel.ps'; 
+-text25a = '   gmt pscontour -W0.5p -JQ -O -K -R0/360/-85/85 $dG/seaLevel.txt -C$dG/pale_s.cpt  >> $dG/seaLevel.ps'; 
+-text26 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/seaLevel.ps'; 
+-text26b = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -Ggray -A1000 >> $dG/seaLevel.ps'; 
+-text27 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_s.cpt -Ba:relative_sea_level:/:m: -D8/-1/10/0.75h -O >> $dG/seaLevel.ps'; 
+-% 
+-text280 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_d.cpt',min_d,max_d,ten_d); 
+-text281 = '   gmt psbasemap -Y-13 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K -O >> $dG/seaLevel.ps'; 
+-text282 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/displace.txt -C$dG/pale_d.cpt  >> $dG/seaLevel.ps'; 
+-text283 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/seaLevel.ps'; 
+-text284 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_d.cpt -Baf:vertical_displacement:/:m: -D8/-1/10/0.75h -O >> $dG/seaLevel.ps'; 
+-text28 = '   open $dG/seaLevel.ps'; 
+-% 
+-text50 = '   2) # plot reconstructed ocean and ice load functions'; 
+-text51 = sprintf('   gmt makecpt -Cno_green -T%d/%d/%d > $dG/pale_i.cpt',min_i,max_i,ten_i); 
+-text52 = sprintf('   gmt makecpt -Cno_green -T0/1/%f > $dG/pale_o.cpt',ten_o); 
+-text53 = '   gmt psbasemap -Y19 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K > $dG/ioFunction.ps'; 
+-text54 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/ocean.txt -C$dG/pale_o.cpt  >> $dG/ioFunction.ps'; 
+-text55 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/ioFunction.ps'; 
+-text56 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_o.cpt -Ba:Reconstructed_ocean_function: -D8/-1/10/0.75h -O >> $dG/ioFunction.ps'; 
+-% 
+-text57 = '   gmt psbasemap -Y-13 -P -Bf180a90/f90a60WSEN -R0/360/-85/85 -JQ180/16 -K -O >> $dG/ioFunction.ps'; 
+-text58 = '   gmt pscontour -I -JQ -O -K -R0/360/-85/85 $dG/iceLoad.txt -C$dG/pale_i.cpt  >> $dG/ioFunction.ps'; 
+-text59 = '   gmt pscoast -B -R -O -K -W0.1p -JQ -Df -A1000 >> $dG/ioFunction.ps'; 
+-text60 = '   gmt psscale -U/.2/.2/"ISSM-PSL" -E -K -C$dG/pale_i.cpt -Baf:Reconstructed_ice_load:/:m: -D8/-1/10/0.75h -O >> $dG/ioFunction.ps'; 
+-text61 = '   open $dG/ioFunction.ps'; 
+-text99 = 'esac'; 
+-% 
+-fid = fopen(sprintf('./data_gmt/plotResults.sh'),'w');  % "./" = ISSM_PSL directory! 
+-fprintf(fid,'%s\n',text1); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text2); 
+-fprintf(fid,'%s\n',text3); 
+-fprintf(fid,'%s\n',text4); 
+-fprintf(fid,'%s\n',text5); 
+-fprintf(fid,'%s\n',text6); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text7); 
+-% 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text20); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text21); 
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text22); 
+-fprintf(fid,'%s\n',text23); 
+-fprintf(fid,'%s\n',text24); 
+-if (farrell==1)  % Farrell and Clark (1976) benchmark  
+-   fprintf(fid,'%s\n',text25a); 
+-   fprintf(fid,'%s\n',text26b); 
+-else 
+-   fprintf(fid,'%s\n',text25); 
+-   fprintf(fid,'%s\n',text26); 
+-   fprintf(fid,'%s\n',text27); 
+-end
+-% 
+-fprintf(fid,'%s\n',text01); 
+-fprintf(fid,'%s\n',text280); 
+-fprintf(fid,'%s\n',text281); 
+-fprintf(fid,'%s\n',text282); 
+-fprintf(fid,'%s\n',text283); 
+-fprintf(fid,'%s\n',text284); 
+-fprintf(fid,'%s\n',text28); 
+-fprintf(fid,'%s\n',text00); 
+-%
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text50); 
+-fprintf(fid,'%s\n',text51); 
+-fprintf(fid,'%s\n',text52); 
+-fprintf(fid,'%s\n',text53); 
+-fprintf(fid,'%s\n',text54); 
+-fprintf(fid,'%s\n',text55); 
+-fprintf(fid,'%s\n',text56); 
+-fprintf(fid,'%s\n',text01); 
+-fprintf(fid,'%s\n',text57); 
+-fprintf(fid,'%s\n',text58); 
+-fprintf(fid,'%s\n',text59); 
+-fprintf(fid,'%s\n',text60); 
+-fprintf(fid,'%s\n',text61); 
+-%
+-fprintf(fid,'%s\n',text0); 
+-fprintf(fid,'%s\n',text99); 
+-% 
+-fclose(fid); 
+-
+Index: ../trunk-jpl/src/m/psl/oceFun.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/oceFun.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/oceFun.m	(revision 19369)
+@@ -1,22 +0,0 @@
+-function ocean = oceFun(nSide,nPix,oce_pix) 
+-
+-%---------------------------------------------------------------------
+-% oceFun :: a function to compute ocean function 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-oce_fun = oce_pix';
+-oce_fun(2,:) = -(oce_fun(2,:)-90);  % lat in [0,180] from North pole 
+-oce_fun = oce_fun*pi/180;
+-oce_fun_latLon = zeros(size(oce_fun));  % write in lat,long now 
+-oce_fun_latLon(1,:) = oce_fun(2,:);
+-oce_fun_latLon(2,:) = oce_fun(1,:);
+-ocean = zeros(1,nPix);  % initialize the ocean function 
+-oce_array = arrayfun(@(x,y)([x;y]),oce_fun_latLon(1,:),oce_fun_latLon(2,:),'UniformOutput',false); 
+-ocean_res = ang2pix(nSide,oce_array); 
+-ocean(ocean_res) = 1.0; 
+-
+Index: ../trunk-jpl/src/m/psl/xplm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/xplm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/xplm.m	(revision 19369)
+@@ -1,26 +0,0 @@
+-function xp_pq = xplm(lMax,nPix,rho_i,rho_e,ice_pq,oce_pq,loveH,loveK) 
+-
+-%---------------------------------------------------------------------
+-% xplm :: a function to compute SH coefficient for X'  
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-q1 = 0; 
+-
+-for p=0:lMax
+-   for q=-p:p 
+-      if (p<1) 
+-         xp_pq(1+q1) = 3*(rho_i/rho_e)*ice_pq(1+q1)/(2*p+1);
+-      else 
+-         xp_pq(1+q1) = 3*(rho_i/rho_e)*ice_pq(1+q1)*(1+loveK(p)-loveH(p))/(2*p+1);
+-      end
+-      q1 = q1+1; 
+-   end 
+-end 
+-
+-xp_pq(1) = xp_pq(1) - sum(xp_pq.*oce_pq)/oce_pq(1);
+-
+Index: ../trunk-jpl/src/m/psl/yplm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/yplm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/yplm.m	(revision 19369)
+@@ -1,26 +0,0 @@
+-function yp_pq = yplm(lMax,nPix,rho_o,rho_e,zlr_pq,oce_pq,loveH,loveK) 
+-
+-%---------------------------------------------------------------------
+-% yplm :: a function to compute SH coefficients for Y' 
+-%---------------------------------------------------------------------
+-% This code is written as a part of the ISSM-PSL project
+-% (c) S. Adhikari 
+-%     Jet Propulsion Laboratory, Caltech 
+-%     November 3, 2014
+-%---------------------------------------------------------------------
+-
+-q1 = 0; 
+-
+-for p=0:lMax
+-   for q=-p:p 
+-      if (p<1) 
+-         yp_pq(1+q1) = 3*(rho_o/rho_e)*zlr_pq(1+q1)/(2*p+1);
+-      else 
+-         yp_pq(1+q1) = 3*(rho_o/rho_e)*zlr_pq(1+q1)*(1+loveK(p)-loveH(p))/(2*p+1);
+-      end
+-      q1 = q1+1; 
+-   end 
+-end 
+-
+-yp_pq(1) = yp_pq(1) - sum(yp_pq.*oce_pq)/oce_pq(1);
+-
+Index: ../trunk-jpl/src/m/psl/sharmonics.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/sharmonics.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/sharmonics.m	(revision 19369)
+@@ -17,22 +17,16 @@
+ lat=lat*pi/180;
+ lon=lon*pi/180; 
+ 
+-disp(['Spherical harmonics of degree and orders up to ',num2str(lMax),' being computed...']);
++%disp(['Spherical harmonics of degree and orders up to ',num2str(lMax),' being computed...']);
+ %ortho-normalized SH 
+ for l=0:lMax
+-	plm = legendre(l,cos(lat),'norm');
++   plm = legendre(l,cos(lat),'norm'); %nromalized Plm (see Matlab documents)
+    for m=-l:l 
+-		if(m<0) 
+-			sh(:,1+q)=(-1)^(abs(m))*2.*plm(abs(m)+1,:)'.*sin(abs(m).*lon);
+-      elseif(m==0)
+-         sh(:,1+q)=sqrt(2)*plm(abs(m)+1,:)';
+-      else
+-         sh(:,1+q)=(-1)^(abs(m))*2.*plm(abs(m)+1,:)'.*cos(abs(m).*lon);
+-      end
++		sh(:,1+q)=(-1)^(abs(m)).*plm(abs(m)+1,:)'.*(cos(abs(m).*lon)*(m>=0)+sin(abs(m).*lon)*(m<0)).*sqrt((2-(m==0))/(2*pi)); %orthonormalized
+       q=q+1;
+    end
+    %disp(['Spherical Harmonics of degree ',num2str(l),' (of ',num2str(lMax),') computed!']);
+ end
+-disp(['... done!']);
++%disp(['... done!']);
+ 
+ 
+Index: ../trunk-jpl/src/m/psl/shlm_element.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm_element.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/shlm_element.m	(revision 19369)
+@@ -18,13 +18,11 @@
+ % weighted area integration over the unit sphere 
+ for l=0:lMax
+    for m=-l:l
+-      %func0 = sh(:,1+p).*(func<1); 
+       func0 = sh(:,1+p).*func; 
+       sh_lm(1+p) = sum(func0.*areas); 
+       p = p+1;
+    end
+ end 
+-%sh_lm = sh_lm/sum(areas);
+ sh_lm = sh_lm*4*pi/sum(areas);
+ 
+ 
+Index: ../trunk-jpl/src/m/psl/p_polynomial_value.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/p_polynomial_value.m	(revision 19369)
+@@ -103,26 +103,18 @@
+   end
+ 
+   v = ones ( m, n + 1 );
+-  %v = zeros ( m, n + 1 );
+ 
+-%  v(1:m,1) = 1.0;
+-
+   if ( n < 1 )
+     return
+   end
+ 
+   v(1:m,2) = x;
+-  %v(1:m,2) = x(1:m,1);
+ 
+   for i = 2 : n
+  
+-    %v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i)   ...
+-    %            -  (     i - 1 ) *             v(1:m,i-1) ) ...
+     v(:,i+1) = ( ( 2 * i - 1 ) * x .* v(:,i)   ...
+-                -  (     i - 1 ) *             v(:,i-1) ) ...
++                -  (     i - 1 ) *    v(:,i-1) ) ...
+                 /  (     i     );
+  
+   end
+  
+-%  return
+-%end
+Index: ../trunk-jpl/src/m/psl/shlm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm.m	(revision 19368)
++++ ../trunk-jpl/src/m/psl/shlm.m	(revision 19369)
+@@ -19,11 +19,13 @@
+ % weighted area integration over the unit sphere 
+ for l=0:lMax
+    for m=-l:l
++      %func0 = sh(:,1+p).*(func<1); 
+       func0 = sh(:,1+p).*func; 
+       sh_lm(1+p) = sum(mean(func0(index),2).*areas); 
+       p = p+1;
+    end
+ end 
+-sh_lm = sh_lm/sum(areas);
+-%sh_lm = sh_lm*4*pi/sum(areas);
++%sh_lm = sh_lm/sum(areas);
++sh_lm = sh_lm*4*pi/sum(areas);
+ 
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-19369-19370.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19369-19370.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19369-19370.diff	(revision 20498)
@@ -0,0 +1,45 @@
+Index: ../trunk-jpl/test/NightlyRun/IdFromString.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/IdFromString.m	(revision 19369)
++++ ../trunk-jpl/test/NightlyRun/IdFromString.m	(revision 19370)
+@@ -26,7 +26,7 @@
+ end
+ 
+ %Process string (delete return carriage);
+-ids_raw=strsplit(ids_raw,char(10));
++ids_raw=strsplit_strict(ids_raw,char(10));
+ ids_raw=ids_raw(1:end-1);
+ for i=1:length(ids_raw),
+ 	eval(['ids=[ids ' ids_raw{i} '];']); 
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19369)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19370)
+@@ -61,6 +61,9 @@
+ 	end
+ 	results(index).step=result.step;
+ 	results(index).(result.fieldname)=result.field;
++	if(result.time~=-9999),
++		results(index).time=result.time;
++	end
+ 
+ 	%read next result
+ 	try,
+@@ -176,8 +179,6 @@
+ 	yts=365.0*24.0*3600.0;
+ 	if strcmp(fieldname,'BalancethicknessThickeningRate'),
+ 		field = field*yts;
+-	elseif strcmp(fieldname,'Time'),
+-		field = field/yts;
+ 	elseif strcmp(fieldname,'HydrologyWaterVx'),
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'HydrologyWaterVy'),
+@@ -205,7 +206,7 @@
+ 	end
+ 
+ 	result.fieldname=fieldname;
+-	result.time=time;
++	result.time=time/yts;
+ 	result.step=step;
+ 	result.field=field;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19370-19371.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19370-19371.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19370-19371.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19370)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19371)
+@@ -1722,7 +1722,7 @@
+ 		for(int iv=0;iv<numvertices;iv++) {
+ 			gauss->GaussVertex(iv);
+ 			input->GetInputValue(&monthlytemperatures[iv*12+month],gauss,time_yr+month/12.*yts);
+-			yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv*12+month]*mavg; // Has to be in Kelvin
++			// yearlytemperatures[iv]=yearlytemperatures[iv]+monthlytemperatures[iv*12+month]*mavg; // Has to be in Kelvin
+ 			monthlytemperatures[iv*12+month]=monthlytemperatures[iv*12+month]-273.15; // conversion from Kelvin to celcius for PDD module
+ 			input2->GetInputValue(&monthlyprec[iv*12+month],gauss,time_yr+month/12.*yts);
+ 			monthlyprec[iv*12+month]=monthlyprec[iv*12+month]*yts;
+@@ -1753,6 +1753,10 @@
+ 					pdds, pds, &melt[iv], &accu[iv], signorm, yts, h[iv], s[iv],
+ 					desfac, s0t[iv], s0p[iv],rlaps,rlapslgm,TdiffTime,sealevTime,
+ 					rho_water,rho_ice);
++	/*Get yearlytemperatures */
++		for(int month=0;month<12;month++) {
++		  yearlytemperatures[iv]=yearlytemperatures[iv]+(monthlytemperatures[iv*12+month]+273.15)*mavg; // Has to be in Kelvin
++		}
+ 	}
+ 
+ 	/*Update inputs*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19371-19372.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19371-19372.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19371-19372.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test432.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test432.py	(revision 19371)
++++ ../trunk-jpl/test/NightlyRun/test432.py	(revision 19372)
+@@ -23,7 +23,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy']
+-field_tolerances=[3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-10]
++field_tolerances=[3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-9]
+ field_values=[\
+ 	md.results.SteadystateSolution.Vx,\
+ 	md.results.SteadystateSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test432.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test432.m	(revision 19371)
++++ ../trunk-jpl/test/NightlyRun/test432.m	(revision 19372)
+@@ -13,7 +13,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy'};
+-field_tolerances={3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-10};
++field_tolerances={3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-9};
+ field_values={...
+ 	(md.results.SteadystateSolution.Vx),...
+ 	(md.results.SteadystateSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19372-19373.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19372-19373.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19372-19373.diff	(revision 20498)
@@ -0,0 +1,295 @@
+Index: ../trunk-jpl/test/NightlyRun/test438.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test438.m	(revision 19372)
++++ ../trunk-jpl/test/NightlyRun/test438.m	(revision 19373)
+@@ -7,6 +7,7 @@
+ md.friction.water_layer=zeros(md.mesh.numberofvertices,2);
+ md.friction.water_layer(:,2)=1;
+ md.friction.water_layer(md.mesh.numberofvertices+1,:)=[1 2];
++md.friction.f=0.8;
+ md.cluster=generic('name',oshostname(),'np',3);
+ md=solve(md,TransientSolutionEnum());
+ 
+Index: ../trunk-jpl/test/NightlyRun/test439.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test439.m	(revision 19372)
++++ ../trunk-jpl/test/NightlyRun/test439.m	(revision 19373)
+@@ -8,6 +8,7 @@
+ md.friction.water_layer=zeros(md.mesh.numberofvertices,2);
+ md.friction.water_layer(:,2)=1;
+ md.friction.water_layer(md.mesh.numberofvertices+1,:)=[1 2];
++md.friction.f=0.8;
+ md.cluster=generic('name',oshostname(),'np',3);
+ md=solve(md,TransientSolutionEnum());
+ 
+Index: ../trunk-jpl/test/Archives/Archive439.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive438.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19372)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19373)
+@@ -890,6 +890,7 @@
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 	if(frictionlaw==4 || frictionlaw==6) parameters->AddObject(iomodel->CopyConstantObject(FrictionGammaEnum));
+ 	if(frictionlaw==3) parameters->AddObject(iomodel->CopyConstantObject(FrictionCouplingEnum));
++	if(frictionlaw==5) parameters->AddObject(iomodel->CopyConstantObject(FrictionFEnum));
+ 
+ }/*}}}*/
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19372)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19373)
+@@ -98,6 +98,7 @@
+ 	FrictionCEnum,
+ 	FrictionLawEnum,
+ 	FrictionGammaEnum,
++	FrictionFEnum,
+ 	FrictionWaterLayerEnum,
+ 	FrictionEffectivePressureEnum,
+ 	FrictionCouplingEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19372)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19373)
+@@ -104,6 +104,7 @@
+ 		case FrictionCEnum : return "FrictionC";
+ 		case FrictionLawEnum : return "FrictionLaw";
+ 		case FrictionGammaEnum : return "FrictionGamma";
++		case FrictionFEnum : return "FrictionF";
+ 		case FrictionWaterLayerEnum : return "FrictionWaterLayer";
+ 		case FrictionEffectivePressureEnum : return "FrictionEffectivePressure";
+ 		case FrictionCouplingEnum : return "FrictionCoupling";
+@@ -575,6 +576,7 @@
+ 		case SurfaceSlopeYEnum : return "SurfaceSlopeY";
+ 		case TemperatureEnum : return "Temperature";
+ 		case TemperaturePicardEnum : return "TemperaturePicard";
++		case TemperaturePDDEnum : return "TemperaturePDD";
+ 		case ThicknessAbsMisfitEnum : return "ThicknessAbsMisfit";
+ 		case SurfaceAbsMisfitEnum : return "SurfaceAbsMisfit";
+ 		case VelEnum : return "Vel";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19372)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19373)
+@@ -104,6 +104,7 @@
+ 	      else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
+ 	      else if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum;
+ 	      else if (strcmp(name,"FrictionGamma")==0) return FrictionGammaEnum;
++	      else if (strcmp(name,"FrictionF")==0) return FrictionFEnum;
+ 	      else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
+ 	      else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
+ 	      else if (strcmp(name,"FrictionCoupling")==0) return FrictionCouplingEnum;
+@@ -135,11 +136,11 @@
+ 	      else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
+ 	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+-	      else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
+          else stage=2;
+    }
+    if(stage==2){
+-	      if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
++	      if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
++	      else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+-	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
++	      if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
++	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+ 	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
+-	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
++	      if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
++	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+ 	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+ 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
+ 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+-	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Node")==0) return NodeEnum;
++	      if (strcmp(name,"Matpar")==0) return MatparEnum;
++	      else if (strcmp(name,"Node")==0) return NodeEnum;
+ 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+@@ -587,6 +588,7 @@
+ 	      else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
+ 	      else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
+ 	      else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
++	      else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
+ 	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
+ 	      else if (strcmp(name,"SurfaceAbsMisfit")==0) return SurfaceAbsMisfitEnum;
+ 	      else if (strcmp(name,"Vel")==0) return VelEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
+ 	      else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
+ 	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
+-	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+-	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
++	      if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
++	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
++	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+ 	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
+ 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
+ 	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
+-	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+-	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
++	      if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
++	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
++	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+ 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+ 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+-	      else if (strcmp(name,"Regular")==0) return RegularEnum;
+-	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Separate")==0) return SeparateEnum;
++	      if (strcmp(name,"Regular")==0) return RegularEnum;
++	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
++	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19372)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19373)
+@@ -389,13 +389,14 @@
+ 	/*diverse: */
+ 	IssmDouble  r,s;
+ 	IssmDouble  drag_p, drag_q;
+-	IssmDouble  Neff;
++	IssmDouble  Neff,F;
+ 	IssmDouble  thickness,bed;
+ 	IssmDouble  vx,vy,vz,vmag;
+ 	IssmDouble  drag_coefficient,water_layer;
+ 	IssmDouble  alpha2;
+ 
+ 	/*Recover parameters: */
++	element->parameters->FindParam(&F,FrictionFEnum);
+ 	element->GetInputValue(&drag_p,FrictionPEnum);
+ 	element->GetInputValue(&drag_q,FrictionQEnum);
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+@@ -412,7 +413,9 @@
+ 
+ 	//From bed and thickness, compute effective pressure when drag is viscous:
+ 	if(bed>0) bed=0;
+-	Neff=gravity*(rho_ice*thickness+rho_water*(bed-water_layer));
++	if(water_layer==0) Neff=gravity*rho_ice*thickness+gravity*rho_water*bed;
++	else if(water_layer>0) Neff=gravity*rho_ice*thickness*F;
++	else _error_("negative water layer thickness");
+ 	if(Neff<0) Neff=0;
+ 
+ 	switch(dim){
+Index: ../trunk-jpl/src/m/classes/frictionwaterlayer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19372)
++++ ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19373)
+@@ -6,6 +6,7 @@
+ classdef frictionwaterlayer
+ 	properties (SetAccess=public) 
+ 		coefficient = NaN;
++		f           = NaN;
+ 		p           = NaN;
+ 		q           = NaN;
+ 		water_layer = NaN;
+@@ -30,6 +31,7 @@
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+ 
+ 			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','friction.f','size',[1 1],'NaN',1);
+ 			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1,'>=',0.);
+@@ -44,6 +46,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('Basal shear stress parameters: tau_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b * 1/f(T)\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(bed+water_layer), r=q/p and s=1/p)'));
+ 			fielddisplay(self,'coefficient','frictiontemp coefficient [SI]');
++			fielddisplay(self,'f','f variable for effective pressure');
+ 			fielddisplay(self,'p','p exponent');
+ 			fielddisplay(self,'q','q exponent');
+ 			fielddisplay(self,'water_layer','water thickness at the base of the ice (m)');
+@@ -52,6 +55,7 @@
+ 
+ 			WriteData(fid,'enum',FrictionLawEnum,'data',5,'format','Integer');
+ 			WriteData(fid,'class','friction','object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'class','friction','object',self,'fieldname','f','format','Double');
+ 			WriteData(fid,'class','friction','object',self,'fieldname','p','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'class','friction','object',self,'fieldname','q','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'class','friction','object',self,'fieldname','water_layer','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+Index: ../trunk-jpl/src/m/enum/FrictionFEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FrictionFEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FrictionFEnum.m	(revision 19373)
+@@ -0,0 +1,11 @@
++function macro=FrictionFEnum()
++%FRICTIONFENUM - Enum of FrictionF
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FrictionFEnum()
++
++macro=StringToEnum('FrictionF');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19372)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19373)
+@@ -96,6 +96,7 @@
+ def FrictionCEnum(): return StringToEnum("FrictionC")[0]
+ def FrictionLawEnum(): return StringToEnum("FrictionLaw")[0]
+ def FrictionGammaEnum(): return StringToEnum("FrictionGamma")[0]
++def FrictionFEnum(): return StringToEnum("FrictionF")[0]
+ def FrictionWaterLayerEnum(): return StringToEnum("FrictionWaterLayer")[0]
+ def FrictionEffectivePressureEnum(): return StringToEnum("FrictionEffectivePressure")[0]
+ def FrictionCouplingEnum(): return StringToEnum("FrictionCoupling")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19373-19374.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19373-19374.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19373-19374.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19374-19375.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19374-19375.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19374-19375.diff	(revision 20498)
@@ -0,0 +1,185 @@
+Index: ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19374)
++++ ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19375)
+@@ -1,11 +1,20 @@
+---- m4/libtool.m4	2013-06-19 22:19:27.313488900 -0700
+-+++ m4/libtool.m4.bak	2013-06-18 18:45:55.766285300 -0700
++--- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-05-22 18:31:17.780392900 -0700
+++++ ./m4/libtool.m4	2015-05-22 18:35:16.669058700 -0700
++@@ -3142,7 +3142,7 @@
++ case $host_os in
++   cygwin* | mingw* | pw32* | cegcc*)
++     if test "$GCC" != yes; then
++-      reload_cmds=false
+++      reload_cmds='lib /OUT:$output$reload_objs'
++     fi
++     ;;
++   darwin*)
+ @@ -4752,7 +4752,7 @@
+        _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+  
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ -        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+        _LT_TAGVAR(archive_cmds, $1)='$CC /LD $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib '
+++        _LT_TAGVAR(archive_cmds, $1)='$CC /LD $libobjs $deplibs $compiler_flags -o $output_objdir/$soname '
+  	# If the export-symbols file already is a .def file (1st line
+  	# is EXPORTS), use it as is; otherwise, prepend...
+  	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+@@ -14,7 +23,7 @@
+  	  cat $export_symbols >> $output_objdir/$soname.def;
+  	fi~
+ -	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	$CC /LD $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib '
+++	$CC /LD $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname '
+        else
+  	_LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+@@ -23,7 +32,7 @@
+  
+  	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ -	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	    _LT_TAGVAR(archive_cmds, $1)='$CC /LD -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib '
+++	    _LT_TAGVAR(archive_cmds, $1)='$CC /LD -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname '
+  	    # If the export-symbols file already is a .def file (1st line
+  	    # is EXPORTS), use it as is; otherwise, prepend...
+  	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+@@ -32,7 +41,7 @@
+  	      cat $export_symbols >> $output_objdir/$soname.def;
+  	    fi~
+ -	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	    $CC /LD -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib '
+++	    $CC /LD -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname '
+  	  else
+  	    _LT_TAGVAR(ld_shlibs, $1)=no
+  	  fi
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19374)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19375)
+@@ -5,11 +5,17 @@
+ EXEEXT=$(ISSMEXT)
+ 
+ #Library declaration {{{
+-
++if !WINDOWS
+ lib_LTLIBRARIES = libISSMCore.la libISSMOverload.la 
+ if WRAPPERS
+ lib_LTLIBRARIES += libISSMModules.la
+ endif
++else
++noinst_LTLIBRARIES = libISSMCore.la libISSMOverload.la 
++if WRAPPERS
++noinst_LTLIBRARIES += libISSMModules.la
++endif
++endif
+ #}}}
+ 
+ #Core sources
+@@ -557,7 +563,9 @@
+ libISSMCore_la_CXXFLAGS = $(ALLCXXFLAGS) $(DAKOTAFLAGS)
+ libISSMCore_la_FFLAGS = $(AM_FFLAGS)
+ 
++if !WINDOWS
+ libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
++endif
+ 
+ if WRAPPERS
+ libISSMModules_la_SOURCES = $(modules_sources)
+@@ -569,12 +577,14 @@
+ libISSMModules_la_SOURCES += $(kml_sources)
+ endif
+ libISSMModules_la_CXXFLAGS = $(ALLCXXFLAGS)
++if !WINDOWS
+ if STANDALONE_LIBRARIES
+ libISSMModules_la_LIBADD = ./libISSMCore.la
+ else
+ libISSMModules_la_LIBADD = ./libISSMCore.la $(TRIANGLELIB)
+ endif
+ endif
++endif
+ 
+ if VERSION
+ AM_LDFLAGS =
+@@ -591,7 +601,12 @@
+ libISSMOverload_la_LDFLAGS = -static
+ if WRAPPERS
+ libISSMModules_la_LDFLAGS = -static
++else
++libISSMModules_la_LDFLAGS = 
+ endif
++else
++libISSMCore_la_LDFLAGS = 
++libISSMOverload_la_LDFLAGS =
+ endif
+ 
+ #}}}
+@@ -636,7 +651,11 @@
+ #}}}
+ #Automatic differentiation (must be done at the end) {{{
+ if ADIC2 
++if !WINDOWS
+ lib_LTLIBRARIES += libAD.la libISSMRose.la
++else
++noinst_LTLIBRARIES += libAD.la libISSMRose.la
++endif
+ 
+ #ADIC2 library, for automatic differentiation 
+ #libAD_a_SOURCES = ./mini1.ad.c
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19374)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19375)
+@@ -7,7 +7,12 @@
+ AM_CPPFLAGS+=  -DISSM_PREFIX='"$(prefix)"'
+ 
+ #matlab io{{{
++if !WINDOWS
+ lib_LTLIBRARIES = libISSMMatlab.la
++else
++noinst_LTLIBRARIES = libISSMMatlab.la
++lib_LTLIBRARIES = 
++endif
+ 
+ io_sources= ./io/CheckNumMatlabArguments.cpp\
+ 				./io/WriteMatlabData.cpp\
+@@ -19,7 +24,11 @@
+ libISSMMatlab_la_CXXFLAGS= $(ALLCXXFLAGS)
+ #}}}
+ #api io{{{
++if !WINDOWS
+ lib_LTLIBRARIES += libISSMApi.la
++else
++noinst_LTLIBRARIES += libISSMApi.la
++endif
+ 
+ api_sources= ./io/ApiPrintf.cpp
+ 
+@@ -91,14 +100,10 @@
+ 
+ AM_CXXFLAGS +=  -D_HAVE_MATLAB_MODULES_ -fPIC
+ 
+-# This is a temporary fix to an issue with Libtool regarding linking against 
+-# static libraries for Windows. Ideally, we would build all libraries as DLLs
+-# and and avoid this workaround which removes the dependency of ISSM libraries
+-# from the perspective of our build system.
++deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
++
+ if WINDOWS
+-AM_LDFLAGS += $(METISLIB) -Wl,./.libs/libISSMMatlab.lib -Wl,./../../c/.libs/libISSMModules.lib -Wl,./../../c/.libs/libISSMCore.lib -Wl,././.libs/libISSMApi.lib
+-else
+-deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
++deps += $(METISLIB)
+ endif
+ 
+ if ADOLC
+@@ -116,7 +121,9 @@
+ AM_CXXFLAGS += $(CXXOPTFLAGS) 
+ #}}}
+ # Module sources and dependencies {{{
++if !WINDOWS
+ libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) $(MEXLIB) 
++endif
+ 
+ if STANDALONE_LIBRARIES
+ libISSMMatlab_la_LDFLAGS = -static 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19375-19376.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19375-19376.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19375-19376.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/scripts/automakererun.sh
+===================================================================
+--- ../trunk-jpl/scripts/automakererun.sh	(revision 19375)
++++ ../trunk-jpl/scripts/automakererun.sh	(revision 19376)
+@@ -8,4 +8,4 @@
+ # If all goes well, then the script will be shortened in the future.
+ 
+ cd $ISSM_DIR
+-autoreconf -iv 
++autoreconf -ivf 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19376-19377.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19376-19377.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19376-19377.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/scripts/automakererun.sh
+===================================================================
+--- ../trunk-jpl/scripts/automakererun.sh	(revision 19376)
++++ ../trunk-jpl/scripts/automakererun.sh	(revision 19377)
+@@ -8,4 +8,4 @@
+ # If all goes well, then the script will be shortened in the future.
+ 
+ cd $ISSM_DIR
+-autoreconf -ivf 
++autoreconf -iv
Index: /issm/oecreview/Archive/19101-20495/ISSM-19377-19378.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19377-19378.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19377-19378.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19377)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19378)
+@@ -160,13 +160,6 @@
+ 	if [ $NUMCPUS_INSTALL -gt 1 ]
+ 	then
+ 		echo "Making with " $NUMCPUS_INSTALL " cpus"
+-
+-		# Temporary fix to dependency issue between Mex files and libISSMMatlab
+-		if [ "$OS" == "win7" ]
+-		then
+-			make -j $NUMCPUS_INSTALL install
+-		fi
+-
+ 		make -j $NUMCPUS_INSTALL install
+ 	else
+ 		make install
Index: /issm/oecreview/Archive/19101-20495/ISSM-19378-19379.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19378-19379.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19378-19379.diff	(revision 20498)
@@ -0,0 +1,418 @@
+Index: ../trunk-jpl/src/m/classes/taoinversion.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/taoinversion.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/taoinversion.py	(revision 19379)
+@@ -0,0 +1,200 @@
++import numpy
++from project3d import project3d
++from WriteData import WriteData
++from checkfield import checkfield
++from fielddisplay import fielddisplay
++from IssmConfig import IssmConfig
++from EnumDefinitions import *
++from marshallcostfunctions import marshallcostfunctions
++
++
++class taoinversion:
++	def __init__(self):
++		iscontrol                   = 0
++		incomplete_adjoint          = 0
++		control_parameters          = float('NaN')
++		maxsteps                    = 0
++		maxiter                     = 0
++		fatol                       = 0
++		frtol                       = 0
++		gatol                       = 0
++		grtol                       = 0
++		gttol                       = 0
++		algorithm                   = ''
++		cost_functions              = float('NaN')
++		cost_functions_coefficients = float('NaN')
++		min_parameters              = float('NaN')
++		max_parameters              = float('NaN')
++		vx_obs                      = float('NaN')
++		vy_obs                      = float('NaN')
++		vz_obs                      = float('NaN')
++		vel_obs                     = float('NaN')
++		thickness_obs               = float('NaN')
++		surface_obs                 = float('NaN')
++
++	def __repr__(self):
++		string = '   taoinversion parameters:'
++		string = "%s\n\%s"%(string, fieldstring(self,'iscontrol','is inversion activated?'))
++		string="%s\n%s"%(string,fieldstring(self,'mantle_viscosity','mantle viscosity constraints (NaN means no constraint) (Pa s)'))
++		string="%s\n%s"%(string,fieldstring(self,'lithosphere_thickness','lithosphere thickness constraints (NaN means no constraint) (m)'))
++		string="%s\n%s"%(string,fieldstring(self,'cross_section_shape',"1: square-edged, 2: elliptical-edged surface"))
++		string="%s\n%s"%(string,fieldstring(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity'))
++		string="%s\n%s"%(string,fieldstring(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}'))
++		string="%s\n%s"%(string,fieldstring(self,'maxsteps','maximum number of iterations (gradient computation)'))
++		string="%s\n%s"%(string,fieldstring(self,'maxiter','maximum number of Function evaluation (forward run)'))
++		string="%s\n%s"%(string,fieldstring(self,'fatol','convergence criterion: f(X)-f(X*) (X: current iteration, X*: "true" solution, f: cost function)'))
++		string="%s\n%s"%(string,fieldstring(self,'frtol','convergence criterion: |f(X)-f(X*)|/|f(X*)|'))
++		string="%s\n%s"%(string,fieldstring(self,'gatol','convergence criterion: ||g(X)|| (g: gradient of the cost function)'))
++		string="%s\n%s"%(string,fieldstring(self,'grtol','convergence criterion: ||g(X)||/|f(X)|'))
++		string="%s\n%s"%(string,fieldstring(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
++		string="%s\n%s"%(string,fieldstring(self,'algorithm','minimization algorithm: ''tao_blmvm'', ''tao_cg'', ''tao_lmvm'''))
++		string="%s\n%s"%(string,fieldstring(self,'cost_functions','indicate the type of response for each optimization step'))
++		string="%s\n%s"%(string,fieldstring(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string="%s\n%s"%(string,fieldstring(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fieldstring(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fieldstring(self,'vx_obs','observed velocity x component [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'vy_obs','observed velocity y component [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'thickness_obs','observed thickness [m]'))
++		string="%s\n%s"%(string,fieldstring(self,'surface_obs','observed surface elevation [m]'))
++		string="%s\n%s"%(string,'Available cost functions:')
++		string="%s\n%s"%(string, '   101: SurfaceAbsVelMisfit')
++		string="%s\n%s"%(string, '   102: SurfaceRelVelMisfit')
++		string="%s\n%s"%(string, '   103: SurfaceLogVelMisfit')
++		string="%s\n%s"%(string, '   104: SurfaceLogVxVyMisfit')
++		string="%s\n%s"%(string, '   105: SurfaceAverageVelMisfit')
++		string="%s\n%s"%(string, '   201: ThicknessAbsMisfit')
++		string="%s\n%s"%(string, '   501: DragCoefficientAbsGradient')
++		string="%s\n%s"%(string, '   502: RheologyBbarAbsGradient')
++		string="%s\n%s"%(string, '   503: ThicknessAbsGradient')
++		return string
++	def setdefaultparameters(self):
++
++		#default is incomplete adjoint for now
++		self.incomplete_adjoint=1
++
++		#parameter to be inferred by control methods (only
++		#drag and B are supported yet)
++		self.control_parameters=['FrictionCoefficient']
++
++		#number of iterations and steps
++		self.maxsteps=20;
++		self.maxiter =30;
++
++		#default tolerances
++		self.fatol = 0;
++		self.frtol = 0;
++		self.gatol = 0;
++		self.grtol = 0;
++		self.gttol = 1e-4;
++
++		#minimization algorithm
++		PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')
++		PETSCMINOR = IssmConfig('_PETSC_MINOR_')
++		if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)):
++			self.algorithm = 'blmvm';
++		else:
++			self.algorithm = 'tao_blmvm';
++		
++		#several responses can be used:
++		self.cost_functions=101;
++
++		return self
++
++	def extrude(self,md):
++		self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node')
++		self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node')
++		self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node')
++		self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node')
++
++		if numel(self.cost_functions_coefficients) > 1:
++			self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')
++		
++		if numel(self.min_parameters) > 1:
++			self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node')
++		
++		if numel(self.max_parameters)>1:
++			self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node')
++
++		return self
++
++	def checkconsistency(self,md,solution,analyses):
++		if not self.control:
++			return md
++		if not IssmConfig('_HAVE_TAO_'):
++			md = checkmessage(md,['TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO'])
++
++
++		num_controls= numpy.numel(md.inversion.control_parameters)
++		num_costfunc= numpy.size(md.inversion.cost_functions,2)
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
++		md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.fatol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.frtol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.gatol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.grtol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>=',0)
++
++
++		PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')
++		PETSCMINOR = IssmConfig('_PETSC_MINOR_')
++		if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)):
++			md = checkfield(md,'fieldname','inversion.algorithm','values',{'blmvm','cg','lmvm'})
++		else:
++			md = checkfield(md,'fieldname','inversion.algorithm','values',{'tao_blmvm','tao_cg','tao_lmvm'})
++
++
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values',supportedcostfunctions())
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])
++
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++		elif solution==BalancethicknessSoftSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++
++		def marshall(self, md, fid):
++
++			yts=365.0*24.0*3600.0;
++			WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean')
++			WriteData(fid,'enum',InversionTypeEnum(),'data',1,'format','Integer')
++			if not self.iscontrol:
++				return
++			WriteData(fid,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean')
++			WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer')
++			WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer')
++			WriteData(fid,'object',self,'class','inversion','fieldname','fatol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','frtol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','gatol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','grtol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','algorithm','format','String')
++			WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3)
++			WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',1)
++
++			#process control parameters
++			num_control_parameters = numpy.numel(self.control_parameters)
++			data = numpy.array([StringToEnum(self.control_parameter[0]) for control_parameter in self.control_parameters]).reshape(1,-1)
++			WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3)
++			WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer')
++
++			#process cost functions
++			num_cost_functions = numpy.size(self.cost_functions,2)
++			data= marshallcostfunctions(self.cost_functions)
++			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
++			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
+
+Property changes on: ../trunk-jpl/src/m/classes/taoinversion.py
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/classes/adinversion.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/adinversion.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/adinversion.py	(revision 19379)
+@@ -0,0 +1,202 @@
++"""
++== == == == == == == == == == == == == == == == == == ==
++Auto generated python script for ISSM:   /home/andrei/issm/trunk-jpl/src/m/classes/adinversion.m
++Created on 2015-05-15 via translateToPy.py Ver 1.0 by andrei
++== == == == == == == == == == == == == == == == == == ==
++
++Matlab script conversion into python
++translateToPy.py Author: Michael Pellegrin
++translateToPy.py Date: 09/24/12
++== == == == == == == == == == == == == == == == == == ==
++"""
++
++from MatlabFuncs import *
++
++from EnumDefinitions import *
++from numpy import *
++
++# ADINVERSION class definition
++
++# 
++
++#    Usage:
++
++#       adinversion=adinversion();
++
++
++
++class adinversion:
++	def __init__(self): 
++		iscontrol                   = 0
++		control_parameters          = float('Nan')
++		control_scaling_factors     = float('Nan')
++		maxsteps                    = 0
++		maxiter                     = 0
++		dxmin                       = 0
++		gttol                       = 0
++		cost_functions              = float('Nan')
++		cost_functions_coefficients = float('Nan')
++		min_parameters              = float('Nan')
++		max_parameters              = float('Nan')
++		vx_obs                      = float('Nan')
++		vy_obs                      = float('Nan')
++		vz_obs                      = float('Nan')
++		vel_obs                     = float('Nan')
++		thickness_obs               = float('Nan')
++		surface_obs                 = float('Nan')
++
++	def setdefaultparameters(self):
++
++		self.control_parameters=['FrictionCoefficient']
++
++
++# 		Scaling factor for each control
++		self.control_scaling_factors=1
++
++# 		number of iterations
++		self.maxsteps=20
++		self.maxiter=40
++
++#		several responses can be used:
++		self.cost_functions=['FrictionCoefficient']
++
++# 		m1qn3 parameters
++		self.dxmin  = 0.1
++		self.gttol = 1e-4
++
++		return self
++	
++	def checkconsistency(self, md, solution, analyses): 
++
++# 			Early return
++		if not self.iscontrol:
++			return
++
++		if not IssmConfig('_HAVE_M1QN3_'):
++			md = checkmessage(md,['M1QN3 has not been installed, ISSM needs to be reconfigured and recompiled with AD'])
++
++
++		num_controls=numpy.numel(md.inversion.control_parameters)
++		num_costfunc=numpy.size(md.inversion.cost_functions,2)
++
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',\
++			['BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar',\
++			'Vx' 'Vy' 'Thickness' 'BalancethicknessOmega' 'BalancethicknessApparentMassbalance'])
++		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1, num_controls],'>',0,float('Nan'),1)
++		md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0)
++		md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>',0)
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values', [i for i in range(101,106)]+[201]+[i for i in range(501,507)]+[i for i in range(601,605)]+[i for i in range(1001, 1011)])
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])
++
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++			md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices, 1], float('Nan'),1)
++		elif solution==BalancethicknessSoftSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++			if not numpy.strcmp(domaintype(md.mesh),'2Dvertical'):
++				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++		return md
++
++	def __repr__(self):
++		string = '   adinversion parameters:'
++		string ="%s\n\%s"%(string, fielddisplay(self,'iscontrol','is inversion activated?'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'control_parameters','ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'cost_functions','indicate the type of response for each optimization step'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vx_obs','observed velocity x component [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vy_obs','observed velocity y component [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'thickness_obs','observed thickness [m]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'surface_obs','observed surface elevation [m]'))
++		string ="%s\n%s"%(string,'Available cost functions:');
++		string ="%s\n%s"%(string,'   101: SurfaceAbsVelMisfit');
++		string ="%s\n%s"%(string,'   102: SurfaceRelVelMisfit');
++		string ="%s\n%s"%(string,'   103: SurfaceLogVelMisfit');
++		string ="%s\n%s"%(string,'   104: SurfaceLogVxVyMisfit');
++		string ="%s\n%s"%(string,'   105: SurfaceAverageVelMisfit');
++		string ="%s\n%s"%(string,'   201: ThicknessAbsMisfit');
++		string ="%s\n%s"%(string,'   501: DragCoefficientAbsGradient');
++		string ="%s\n%s"%(string,'   502: RheologyBbarAbsGradient');
++		string ="%s\n%s"%(string,'   503: ThicknessAbsGradient');
++		
++		return string
++
++	def marshall(self):
++
++		yts=365.0*24.0*3600.0;
++
++		WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean');
++		WriteData(fid,'enum',InversionTypeEnum(),'data',4,'format','Integer');
++		if not self.iscontrol:
++			return
++		WriteData(fid,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer');
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer');
++		WriteData(fid,'object',self,'class','inversion','fieldname','dxmin','format','Double');
++		WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double');
++		WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		if(numel(self.thickness_obs)==md.mesh.numberofelements):
++			mattype=2;
++		else:
++			mattype=1;
++		
++		WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
++		WriteData(fid,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',mattype);
++
++		#process control parameters
++		num_control_parameters = numpy.numel(self.control_parameters);
++		data = numpy.array([StringToEnum(self.control_parameter[0]) for control_parameter in self.control_parameters]).reshape(1,-1)
++
++		WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3);
++		WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer');
++
++		#process cost functions
++		num_cost_functions=numpy.size(self.cost_functions,2);
++		data=copy.deepcopy(self.cost_functions)
++		data[numpy.nonzero(self.cost_functions==101)] =SurfaceAbsVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==102)]=SurfaceRelVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==103)]=SurfaceLogVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==104)]=SurfaceLogVxVyMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==105)]=SurfaceAverageVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==201)]=ThicknessAbsMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==501)]=DragCoefficientAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==502)]=RheologyBbarAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==503)]=ThicknessAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==504)]=ThicknessAlongGradientEnum();
++		data[numpy.nonzero(self.cost_functions==505)]=ThicknessAcrossGradientEnum();
++		data[numpy.nonzero(self.cost_functions==506)]=BalancethicknessMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==601)]=SurfaceAbsMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==1001)]=Outputdefinition1Enum();
++		data[numpy.nonzero(self.cost_functions==1002)]=Outputdefinition2Enum();
++		data[numpy.nonzero(self.cost_functions==1003)]=Outputdefinition3Enum();
++		data[numpy.nonzero(self.cost_functions==1004)]=Outputdefinition4Enum();
++		data[numpy.nonzero(self.cost_functions==1005)]=Outputdefinition5Enum();
++		data[numpy.nonzero(self.cost_functions==1006)]=Outputdefinition6Enum();
++		data[numpy.nonzero(self.cost_functions==1007)]=Outputdefinition7Enum();
++		data[numpy.nonzero(self.cost_functions==1008)]=Outputdefinition8Enum();
++		data[numpy.nonzero(self.cost_functions==1009)]=Outputdefinition8Enum();
++		data[numpy.nonzero(self.cost_functions==1010)]=Outputdefinition10Enum();
++		WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
++		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
++		
Index: /issm/oecreview/Archive/19101-20495/ISSM-19379-19380.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19379-19380.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19379-19380.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19379)
++++ ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19380)
+@@ -64,6 +64,7 @@
+ 
+ 	# normalize array
+ 	arr=arr/npy.float(npy.max(arr.ravel()))
++        arr=1.-arr # somehow the values got flipped
+ 
+ 	if options.getfieldvalue('overlayhist',0)==1:
+ 		ax=plt.gca()
Index: /issm/oecreview/Archive/19101-20495/ISSM-19380-19381.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19380-19381.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19380-19381.diff	(revision 20498)
@@ -0,0 +1,535 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19380)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19381)
+@@ -876,6 +876,7 @@
+ 	iomodel->Constant(&materials_type,MaterialsEnum);
+ 	if(materials_type==MatdamageiceEnum){
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC1Enum));
++		parameters->AddObject(iomodel->CopyConstantObject(DamageKappaEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageStressThresholdEnum));
+ 	}
+ 
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19380)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19381)
+@@ -68,9 +68,6 @@
+ 	/*retrieve some parameters: */
+ 	parameters->AddObject(iomodel->CopyConstantObject(DamageLawEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DamageStabilizationEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(DamagePenaltyThresholdEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(DamagePenaltyLockEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(DamagePenaltyFactorEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DamageMaxiterEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DamageMaxDamageEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(DamageElementinterpEnum));
+@@ -90,6 +87,7 @@
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC3Enum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC4Enum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageStressThresholdEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(DamageKappaEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageHealingEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageEquivStressEnum));
+ 	}
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19380)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19381)
+@@ -203,10 +203,8 @@
+ 	DamageElementinterpEnum,
+ 	DamageHealingEnum,
+ 	DamageStressThresholdEnum,
++	DamageKappaEnum,
+ 	DamageStabilizationEnum,
+-	DamagePenaltyThresholdEnum,
+-	DamagePenaltyLockEnum,
+-	DamagePenaltyFactorEnum,
+ 	DamageMaxiterEnum,
+ 	DamageSpcdamageEnum,
+ 	DamageMaxDamageEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19380)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19381)
+@@ -209,10 +209,8 @@
+ 		case DamageElementinterpEnum : return "DamageElementinterp";
+ 		case DamageHealingEnum : return "DamageHealing";
+ 		case DamageStressThresholdEnum : return "DamageStressThreshold";
++		case DamageKappaEnum : return "DamageKappa";
+ 		case DamageStabilizationEnum : return "DamageStabilization";
+-		case DamagePenaltyThresholdEnum : return "DamagePenaltyThreshold";
+-		case DamagePenaltyLockEnum : return "DamagePenaltyLock";
+-		case DamagePenaltyFactorEnum : return "DamagePenaltyFactor";
+ 		case DamageMaxiterEnum : return "DamageMaxiter";
+ 		case DamageSpcdamageEnum : return "DamageSpcdamage";
+ 		case DamageMaxDamageEnum : return "DamageMaxDamage";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19380)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19381)
+@@ -212,10 +212,8 @@
+ 	      else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
+ 	      else if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
+ 	      else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum;
++	      else if (strcmp(name,"DamageKappa")==0) return DamageKappaEnum;
+ 	      else if (strcmp(name,"DamageStabilization")==0) return DamageStabilizationEnum;
+-	      else if (strcmp(name,"DamagePenaltyThreshold")==0) return DamagePenaltyThresholdEnum;
+-	      else if (strcmp(name,"DamagePenaltyLock")==0) return DamagePenaltyLockEnum;
+-	      else if (strcmp(name,"DamagePenaltyFactor")==0) return DamagePenaltyFactorEnum;
+ 	      else if (strcmp(name,"DamageMaxiter")==0) return DamageMaxiterEnum;
+ 	      else if (strcmp(name,"DamageSpcdamage")==0) return DamageSpcdamageEnum;
+ 	      else if (strcmp(name,"DamageMaxDamage")==0) return DamageMaxDamageEnum;
+@@ -259,12 +257,12 @@
+ 	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
++	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
++	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+-	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+-	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
++	      if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+ 	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+@@ -382,12 +380,12 @@
+ 	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
++	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
++	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+-	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+-	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
++	      if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+ 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+@@ -505,12 +503,12 @@
+ 	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
+ 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
++	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
++	      else if (strcmp(name,"Node")==0) return NodeEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Matpar")==0) return MatparEnum;
+-	      else if (strcmp(name,"Node")==0) return NodeEnum;
+-	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
++	      if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+@@ -628,12 +626,12 @@
+ 	      else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
+ 	      else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
+ 	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
++	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
++	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+-	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+-	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
++	      if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+ 	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+@@ -751,12 +749,12 @@
+ 	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
+ 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
+ 	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
++	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
++	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+-	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+-	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
++	      if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+ 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+@@ -874,12 +872,12 @@
+ 	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+ 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
++	      else if (strcmp(name,"Regular")==0) return RegularEnum;
++	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Regular")==0) return RegularEnum;
+-	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+-	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
++	      if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19380)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19381)
+@@ -45,7 +45,7 @@
+ 	IssmDouble *xyz_list=NULL;
+ 	IssmDouble  eps_xx,eps_xy,eps_yy,eps_xz,eps_yz,eps_zz,eps_eff;
+ 	IssmDouble  epsmin=1.e-27;
+-	IssmDouble  eps_0,eps_f,sigma_0,B,D,n;
++	IssmDouble  eps_0,kappa,sigma_0,B,D,n,envelopeD;
+ 	int         dim,counter=0;
+ 	IssmDouble  k1,k2,threshold=1.e-12;
+ 
+@@ -53,7 +53,7 @@
+ 	this->GetVerticesCoordinates(&xyz_list);
+ 	this->ComputeStrainRate();
+ 	parameters->FindParam(&dim,DomainDimensionEnum);
+-	parameters->FindParam(&eps_f,DamageC1Enum);
++	parameters->FindParam(&kappa,DamageKappaEnum);
+ 	parameters->FindParam(&sigma_0,DamageStressThresholdEnum);
+ 
+ 	/* Retrieve inputs */
+@@ -112,35 +112,15 @@
+ 
+ 		/* Compute threshold strain rate from threshold stress */
+ 		eps_0=pow(sigma_0/B,n); 
+-		_assert_(eps_f>eps_0);
+ 
+-		/* Compute kappa (k) from pre-existing level of damage, using Newton-Raphson */
+-		/* provide a reasonable initial guess */
+-		if(D==0){
+-			k1=eps_0;
+-		}
+-		else{
+-			k1=exp(n*eps_0/(eps_f-eps_0)-n*log(1.-D)+log(eps_0)); /* initial guess */
+-		}
+-	
+-		counter=0;
+-		while(true){
+-      	/*Newton step k2=k1-f(k1)/f'(k1) */
+-			k2=k1-(k1+(eps_f-eps_0)/n*log(k1)-eps_0+(eps_f-eps_0)*(log(1.-D)-1./n*log(eps_0)))/(1.+(eps_f-eps_0)/n/k1);
++		if(eps_eff>eps_0){
++			/* Compute damage on envelope curve for existing level of effective strain rate */
++			envelopeD=1.-pow(eps_0/eps_eff,1./n)*exp(-(eps_eff-eps_0)/(eps_0*(kappa-1.)));
+ 
+-      	if( fabs(k2-k1)/(fabs(k2))<threshold ){
+-         	break;
+-      	}
+-      	else{
+-				k1=k2;
+-      	   counter++;
+-      	}
+-
+-      	if(counter>50) break;
+-   	}
+-
+-		if(eps_eff>k2){
+-			newD[i]=1.-pow(eps_0/eps_eff,1./n)*exp(-(eps_eff-eps_0)/(eps_f-eps_0));
++			if(envelopeD>D){
++				newD[i]=envelopeD;
++			}
++			else newD[i]=D;
+ 		}
+ 		else newD[i]=D;
+ 	}
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19380)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19381)
+@@ -16,12 +16,10 @@
+ 		stabilization       = 0;
+ 		maxiter             = 0;
+ 		elementinterp       = '';
+-		penalty_threshold   = 0;
+-		penalty_lock        = 0;
+-		penalty_factor      = 0;
+ 		
+ 		%general parameters for evolution law: 
+ 		stress_threshold    = 0;
++		kappa               = 0;
+ 		c1                  = 0;
+ 		c2                  = 0;
+ 		c3                  = 0;
+@@ -79,9 +77,6 @@
+ 			fprintf(fid, '%s\n','</parameter>');
+ 
+ 			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="maxiter" type="',             class(self.maxiter),'" default="',   num2str(self.maxiter),'">',   '     <section name="damage" />','     <help> maximum number of non linear iterations </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="penalty_lock" type="',        class(self.penalty_lock),'" default="',            num2str(self.penalty_lock),'">',            '     <section name="damage" />','     <help> stabilize unstable damage constraints that keep zigzagging after n iteration (default is 0, no stabilization) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="penalty_threshold" type="',   class(self.penalty_threshold),'" default="',            num2str(self.penalty_threshold),'">',            '     <section name="damage" />','     <help> threshold to declare convergence of damage evolution solution (default is 0) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="penalty_factor" type="',      class(self.penalty_factor),'" default="',            num2str(self.penalty_factor),'">',            '     <section name="damage" />','     <help> scaling exponent (default is 3) </help>','</parameter>');
+ 
+ 		end % }}}
+ 		function self = damage(varargin) % {{{
+@@ -124,17 +119,9 @@
+ 			%finite element interpolation
+ 			self.elementinterp='P1';
+ 
+-			%factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor
+-			self.penalty_factor=3;
+-			
+-			%stabilize unstable damage constraints that keep zigzagging after n iteration (default is 0, no stabilization)
+-			self.penalty_lock=0;
+-			
+-			%threshold to declare convergence of thermal solution (default is 0)
+-			self.penalty_threshold=0;
+-		
+ 			%damage evolution parameters 
+-			self.stress_threshold=0;
++			self.stress_threshold=1.3e5;
++			self.kappa=2.8;
+ 			self.healing=0;
+ 			self.c1=0;
+ 			self.c2=0;
+@@ -157,15 +144,13 @@
+ 				md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2]);
+ 				md = checkfield(md,'fieldname','damage.maxiter','>=0',0);
+ 				md = checkfield(md,'fieldname','damage.elementinterp','values',{'P1','P2'});
+-				md = checkfield(md,'fieldname','damage.penalty_factor','>=',0);
+-				md = checkfield(md,'fieldname','damage.penalty_lock','>=',0);
+-				md = checkfield(md,'fieldname','damage.penalty_threshold','>=',0);
++				md = checkfield(md,'fieldname','damage.stress_threshold','>=',0);
++				md = checkfield(md,'fieldname','damage.kappa','>',1);
+ 				md = checkfield(md,'fieldname','damage.healing','>=',0);
+ 				md = checkfield(md,'fieldname','damage.c1','>=',0);
+ 				md = checkfield(md,'fieldname','damage.c2','>=',0);
+ 				md = checkfield(md,'fieldname','damage.c3','>=',0);
+ 				md = checkfield(md,'fieldname','damage.c4','>=',0);
+-				md = checkfield(md,'fieldname','damage.stress_threshold','>=',0);
+ 				md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0 1]);
+ 				md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1);
+ 			elseif (self.law~=0),
+@@ -195,15 +180,13 @@
+ 				fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG');
+ 				fielddisplay(self,'maxiter','maximum number of non linear iterations');
+ 				fielddisplay(self,'elementinterp','interpolation scheme for finite elements {''P1'',''P2''}');
+-				fielddisplay(self,'penalty_lock','stabilize unstable damage constraints that keep zigzagging after n iteration (default is 0, no stabilization)');
+-				fielddisplay(self,'penalty_threshold','threshold to declare convergence of damage evolution solution (default is 0)');
+-				fielddisplay(self,'penalty_factor','scaling exponent (default is 3)');
++				fielddisplay(self,'stress_threshold','stress threshold for damage initiation [Pa]');
++				fielddisplay(self,'kappa','ductility parameter for stress softening and damage');
+ 				fielddisplay(self,'c1','damage parameter 1');
+ 				fielddisplay(self,'c2','damage parameter 2');
+ 				fielddisplay(self,'c3','damage parameter 3');
+ 				fielddisplay(self,'c4','damage parameter 4');
+ 				fielddisplay(self,'healing','damage healing parameter');
+-				fielddisplay(self,'stress_threshold','damage stress threshold [Pa]');
+ 				fielddisplay(self,'equiv_stress','0: von Mises, 1: max principal');
+ 				fielddisplay(self,'requested_outputs','additional outputs requested');
+ 			end
+@@ -221,14 +204,12 @@
+ 				WriteData(fid,'object',self,'fieldname','stabilization','format','Integer');
+ 				WriteData(fid,'object',self,'fieldname','maxiter','format','Integer');
+ 				WriteData(fid,'enum',DamageElementinterpEnum(),'data',StringToEnum(self.elementinterp),'format','Integer');
+-				WriteData(fid,'object',self,'fieldname','penalty_threshold','format','Integer');
+-				WriteData(fid,'object',self,'fieldname','penalty_lock','format','Integer');
+-				WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double');
++				WriteData(fid,'object',self,'fieldname','stress_threshold','format','Double');
++				WriteData(fid,'object',self,'fieldname','kappa','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','c1','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','c2','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','c3','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','c4','format','Double');
+-				WriteData(fid,'object',self,'fieldname','stress_threshold','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','healing','format','Double');
+ 				WriteData(fid,'object',self,'fieldname','equiv_stress','format','Integer');
+ 			end
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19380)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19381)
+@@ -18,26 +18,24 @@
+ 			
+ 		#damage: 
+ 		self.isdamage           = 0.
+-		self.D						= float('NaN')
+-		self.law						= float('NaN')
+-		self.spcdamage				= float('NaN')
+-		self.max_damage			= float('NaN')
++		self.D			= float('NaN')
++		self.law		= float('NaN')
++		self.spcdamage		= float('NaN')
++		self.max_damage		= float('NaN')
+ 		
+ 		#numerical
+-		self.stabilization		= float('NaN')
+-		self.maxiter				= float('NaN')
++		self.stabilization	= float('NaN')
++		self.maxiter		= float('NaN')
+ 		self.elementinterp      = ''
+-		self.penalty_threshold	= float('NaN')
+-		self.penalty_lock			= float('NaN')
+-		self.penalty_factor		= float('NaN')
+ 
+ 		#general parameters for evolution law: 
+ 		self.stress_threshold   = float('NaN')
++		self.kappa              = float('NaN')
+ 		self.c1                 = float('NaN')
+ 		self.c2                 = float('NaN')
+ 		self.c3                 = float('NaN')
+ 		self.c4                 = float('NaN')
+-		self.healing				= float('NaN')
++		self.healing		= float('NaN')
+ 		self.equiv_stress       = float('NaN')
+ 		self.requested_outputs  = []
+ 
+@@ -60,14 +58,12 @@
+ 			s+="%s\n" % fielddisplay(self,"stabilization","0: no, 1: artificial_diffusivity, 2: SUPG")
+ 			s+="%s\n" % fielddisplay(self,"maxiter","maximum number of non linear iterations")
+ 			s+="%s\n" %	fielddisplay(self,"elementinterp","interpolation scheme for finite elements [''P1'',''P2'']")
+-			s+="%s\n" % fielddisplay(self,"penalty_lock","stabilize unstable damage constraints that keep zigzagging after n iteration (default is 0, no stabilization)")
+-			s+="%s\n" % fielddisplay(self,"penalty_threshold","threshold to declare convergence of damage evolution solution (default is 0)")
+-			s+="%s\n" % fielddisplay(self,"penalty_factor","scaling exponent (default is 3)")
++			s+="%s\n" % fielddisplay(self,"stress_threshold","stress threshold for damage initiation [Pa]")
++			s+="%s\n" % fielddisplay(self,"kappa","ductility parameter for stress softening and damage [>1]")
+ 			s+="%s\n" % fielddisplay(self,"c1","damage parameter 1 ")
+ 			s+="%s\n" % fielddisplay(self,"c2","damage parameter 2 ")
+ 			s+="%s\n" % fielddisplay(self,"c3","damage parameter 3 ")
+ 			s+="%s\n" % fielddisplay(self,"c4","damage parameter 4 ")
+-			s+="%s\n" % fielddisplay(self,"stress_threshold","damage stress threshold [Pa]")
+ 			s+="%s\n" % fielddisplay(self,"healing","damage healing parameter")
+ 			s+="%s\n" % fielddisplay(self,"equiv_stress","0: von Mises, 1: max principal")
+ 			s+="%s\n" % fielddisplay(self,'requested_outputs','additional outputs requested')
+@@ -97,17 +93,9 @@
+ 		#finite element interpolation
+ 		self.elementinterp='P1'
+ 
+-		#factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor
+-		self.penalty_factor=3
+-			
+-		#stabilize unstable damage constraints that keep zigzagging after n iteration (default is 0, no stabilization)
+-		self.penalty_lock=0
+-			
+-		#threshold to declare convergence of thermal solution (default is 0)
+-		self.penalty_threshold=0
+-		
+ 		#damage evolution parameters 
+-		self.stress_threshold=0
++		self.stress_threshold=1.3e5
++		self.kappa=2.8
+ 		self.c1=0
+ 		self.c2=0
+ 		self.c3=0
+@@ -140,15 +128,13 @@
+ 			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2])
+ 			md = checkfield(md,'fieldname','damage.maxiter','>=0',0)
+ 			md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2'])
+-			md = checkfield(md,'fieldname','damage.penalty_factor','>=0',0)
+-			md = checkfield(md,'fieldname','damage.penalty_lock','>=0',0)
+-			md = checkfield(md,'fieldname','damage.penalty_threshold','>=0',0)
++			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
++			md = checkfield(md,'fieldname','damage.kappa','>',1)
+ 			md = checkfield(md,'fieldname','damage.healing','>=',0)
+ 			md = checkfield(md,'fieldname','damage.c1','>=',0)
+ 			md = checkfield(md,'fieldname','damage.c2','>=',0)
+ 			md = checkfield(md,'fieldname','damage.c3','>=',0)
+ 			md = checkfield(md,'fieldname','damage.c4','>=',0)
+-			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
+ 			md = checkfield(md,'fieldname','damage.healing','>=',0)
+ 			md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1])
+ 			md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1)
+@@ -169,14 +155,12 @@
+ 			WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
+ 			WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
+ 			WriteData(fid,'enum',DamageElementinterpEnum(),'data',StringToEnum(self.elementinterp)[0],'format','Integer')
+-			WriteData(fid,'object',self,'fieldname','penalty_threshold','format','Integer')
+-			WriteData(fid,'object',self,'fieldname','penalty_lock','format','Integer')
+-			WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
++			WriteData(fid,'object',self,'fieldname','stress_threshold','format','Double')
++			WriteData(fid,'object',self,'fieldname','kappa','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','c1','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','c2','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','c3','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','c4','format','Double')
+-			WriteData(fid,'object',self,'fieldname','stress_threshold','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','healing','format','Double')
+ 			WriteData(fid,'object',self,'fieldname','equiv_stress','format','Integer')
+ 			
+Index: ../trunk-jpl/src/m/enum/DamagePenaltyThresholdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DamagePenaltyThresholdEnum.m	(revision 19380)
++++ ../trunk-jpl/src/m/enum/DamagePenaltyThresholdEnum.m	(revision 19381)
+@@ -1,11 +0,0 @@
+-function macro=DamagePenaltyThresholdEnum()
+-%DAMAGEPENALTYTHRESHOLDENUM - Enum of DamagePenaltyThreshold
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=DamagePenaltyThresholdEnum()
+-
+-macro=StringToEnum('DamagePenaltyThreshold');
+Index: ../trunk-jpl/src/m/enum/DamagePenaltyFactorEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DamagePenaltyFactorEnum.m	(revision 19380)
++++ ../trunk-jpl/src/m/enum/DamagePenaltyFactorEnum.m	(revision 19381)
+@@ -1,11 +0,0 @@
+-function macro=DamagePenaltyFactorEnum()
+-%DAMAGEPENALTYFACTORENUM - Enum of DamagePenaltyFactor
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=DamagePenaltyFactorEnum()
+-
+-macro=StringToEnum('DamagePenaltyFactor');
+Index: ../trunk-jpl/src/m/enum/DamagePenaltyLockEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DamagePenaltyLockEnum.m	(revision 19380)
++++ ../trunk-jpl/src/m/enum/DamagePenaltyLockEnum.m	(revision 19381)
+@@ -1,11 +0,0 @@
+-function macro=DamagePenaltyLockEnum()
+-%DAMAGEPENALTYLOCKENUM - Enum of DamagePenaltyLock
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=DamagePenaltyLockEnum()
+-
+-macro=StringToEnum('DamagePenaltyLock');
+Index: ../trunk-jpl/src/m/enum/DamageKappaEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DamageKappaEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/DamageKappaEnum.m	(revision 19381)
+@@ -0,0 +1,11 @@
++function macro=DamageKappaEnum()
++%DAMAGEKAPPAENUM - Enum of DamageKappa
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=DamageKappaEnum()
++
++macro=StringToEnum('DamageKappa');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19380)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19381)
+@@ -201,10 +201,8 @@
+ def DamageElementinterpEnum(): return StringToEnum("DamageElementinterp")[0]
+ def DamageHealingEnum(): return StringToEnum("DamageHealing")[0]
+ def DamageStressThresholdEnum(): return StringToEnum("DamageStressThreshold")[0]
++def DamageKappaEnum(): return StringToEnum("DamageKappa")[0]
+ def DamageStabilizationEnum(): return StringToEnum("DamageStabilization")[0]
+-def DamagePenaltyThresholdEnum(): return StringToEnum("DamagePenaltyThreshold")[0]
+-def DamagePenaltyLockEnum(): return StringToEnum("DamagePenaltyLock")[0]
+-def DamagePenaltyFactorEnum(): return StringToEnum("DamagePenaltyFactor")[0]
+ def DamageMaxiterEnum(): return StringToEnum("DamageMaxiter")[0]
+ def DamageSpcdamageEnum(): return StringToEnum("DamageSpcdamage")[0]
+ def DamageMaxDamageEnum(): return StringToEnum("DamageMaxDamage")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19381-19382.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19381-19382.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19381-19382.diff	(revision 20498)
@@ -0,0 +1,86 @@
+Index: ../trunk-jpl/test/NightlyRun/test273.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test273.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test273.m	(revision 19382)
+@@ -0,0 +1,27 @@
++%Test Name: SquareShelfStressSSA2dDamageUpdate
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md.materials=matdamageice();
++md=parameterize(md,'../Par/SquareShelf.par');
++md.damage.isdamage=1;
++md.damage.D=0.*ones(md.mesh.numberofvertices,1);
++md.damage.spcdamage=NaN*ones(md.mesh.numberofvertices,1);
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',3);
++
++md.stressbalance.requested_outputs={'default','NewDamage'}
++md.damage.stress_threshold=1.3e5;
++md.damage.kappa=2.8;
++
++md=solve(md,StressbalanceSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx','Vy','Vel','Pressure','NewDamage'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.StressbalanceSolution.Vx),...
++	(md.results.StressbalanceSolution.Vy),...
++	(md.results.StressbalanceSolution.Vel),...
++	(md.results.StressbalanceSolution.Pressure),...
++	(md.results.StressbalanceSolution.NewDamage),...
++	};
+Index: ../trunk-jpl/test/NightlyRun/test273.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test273.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test273.py	(revision 19382)
+@@ -0,0 +1,39 @@
++#Test Name: SquareShelfStressSSA2dDamageUpdate
++import numpy
++from model import model
++from triangle import triangle
++from setmask import setmask
++from parameterize import parameterize
++from setflowequation import setflowequation
++from EnumDefinitions import StressbalanceSolutionEnum
++from solve import solve
++from matdamageice import matdamageice
++from generic import generic
++from socket import gethostname as oshostname
++
++md=triangle(model(),'../Exp/Square.exp',150000.)
++md=setmask(md,'all','')
++md.materials=matdamageice()
++md=parameterize(md,'../Par/SquareShelf.py')
++md.damage.isdamage=1
++md.damage.D=0.*numpy.ones(md.mesh.numberofvertices)
++md.damage.spcdamage=numpy.nan*numpy.ones(md.mesh.numberofvertices)
++md=setflowequation(md,'SSA','all')
++md.cluster=generic('name',oshostname(),'np',3)
++
++md.stressbalance.requested_outputs=['default','NewDamage']
++md.damage.stress_threshold=1.3e5
++md.damage.kappa=2.8
++
++md=solve(md,StressbalanceSolutionEnum())
++
++#Fields and tolerances to track changes
++field_names     =['Vx','Vy','Vel','Pressure','NewDamage']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13]
++field_values=[\
++	md.results.StressbalanceSolution.Vx,\
++	md.results.StressbalanceSolution.Vy,\
++	md.results.StressbalanceSolution.Vel,\
++	md.results.StressbalanceSolution.Pressure,\
++	md.results.StressbalanceSolution.NewDamage,\
++	]
+Index: ../trunk-jpl/test/Archives/Archive273.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive273.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19382-19383.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19382-19383.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19382-19383.diff	(revision 20498)
@@ -0,0 +1,103 @@
+Index: ../trunk-jpl/test/NightlyRun/test271.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test271.py	(revision 19382)
++++ ../trunk-jpl/test/NightlyRun/test271.py	(revision 19383)
+@@ -1,39 +0,0 @@
+-#Test Name: SquareShelfStressSSA2dDamageTran
+-import numpy 
+-from triangle import triangle
+-from model import model
+-from setmask import setmask
+-from parameterize import parameterize
+-from verbose import verbose
+-from setflowequation import setflowequation
+-from generic import generic
+-from socket import gethostname as oshostname
+-from solve import solve
+-from EnumDefinitions import DamageEvolutionSolutionEnum
+-from matdamageice import matdamageice
+-
+-md=triangle(model(),'../Exp/Square.exp',150000.)
+-md=setmask(md,'all','')
+-md.materials=matdamageice()
+-md=parameterize(md,'../Par/SquareShelf.py')
+-md.damage.isdamage=1
+-md.damage.D=numpy.zeros(md.mesh.numberofvertices)
+-md.damage.spcdamage=numpy.nan*numpy.ones(md.mesh.numberofvertices)
+-md.damage.law=1
+-md.damage.stabilization=1;
+-
+-pos=numpy.nonzero(numpy.logical_and(md.mask.ice_levelset!=0,md.mesh.vertexonboundary==1))
+-md.damage.spcdamage[pos]=0.5;
+-
+-md.damage.requested_outputs=['default','DamageF']
+-
+-md=setflowequation(md,'SSA','all')
+-md.cluster=generic('name',oshostname(),'np',3)
+-md=solve(md,DamageEvolutionSolutionEnum())
+-
+-field_names=['D','F']
+-field_tolerances=[1.e-13,1.e-13]
+-field_values=[\
+-		md.results.DamageEvolutionSolution.DamageDbar,\
+-		md.results.DamageEvolutionSolution.DamageF,\
+-		]
+Index: ../trunk-jpl/test/NightlyRun/test271.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test271.m	(revision 19382)
++++ ../trunk-jpl/test/NightlyRun/test271.m	(revision 19383)
+@@ -1,30 +0,0 @@
+-%Test Name: SquareShelfStressSSA2dDamageTran
+-md=triangle(model(),'../Exp/Square.exp',150000.);
+-md=setmask(md,'all','');
+-md.materials=matdamageice();
+-md=parameterize(md,'../Par/SquareShelf.par');
+-md.damage.isdamage=1;
+-md.damage.D=zeros(md.mesh.numberofvertices,1);
+-md.damage.spcdamage=NaN*ones(md.mesh.numberofvertices,1);
+-md.damage.law=1;
+-
+-%boundary conditions for damage, to be put in SquareShelf.par
+-boundary=zeros(md.mesh.numberofvertices,1);
+-boundary(md.mesh.segments(:,1:2))=1;
+-pos=find(~md.mask.ice_levelset==0 & boundary==1);
+-md.damage.spcdamage(pos)=0.5;
+-md.damage.stabilization=1;
+-
+-md.damage.requested_outputs={'default','DamageF'};
+-
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',3);
+-md=solve(md,DamageEvolutionSolutionEnum());
+-
+-%Fields and tolerances to track changes
+-field_names={'D','F'};
+-field_tolerances={1e-13,1e-13};
+-field_values={...
+-		(md.results.DamageEvolutionSolution.DamageDbar),...
+-		(md.results.DamageEvolutionSolution.DamageF),...
+-	};
+Index: ../trunk-jpl/test/NightlyRun/test275.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test275.py	(revision 19382)
++++ ../trunk-jpl/test/NightlyRun/test275.py	(revision 19383)
+@@ -1,4 +1,4 @@
+-#Test Name: SquareShelfDamageEvolutionSSA2d
++#Test Name: SquareShelfDamageEvolutionSSA2dPralong 
+ import numpy
+ from triangle import triangle
+ from model import model
+Index: ../trunk-jpl/test/NightlyRun/test275.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test275.m	(revision 19382)
++++ ../trunk-jpl/test/NightlyRun/test275.m	(revision 19383)
+@@ -1,4 +1,4 @@
+-%Test Name: SquareShelfDamageEvolutionSSA2d
++%Test Name: SquareShelfDamageEvolutionSSA2dPralong
+ md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'all','');
+ md.materials=matdamageice();
+Index: ../trunk-jpl/test/Archives/Archive271.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19383-19384.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19383-19384.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19383-19384.diff	(revision 20498)
@@ -0,0 +1,93 @@
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h	(revision 19383)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h	(revision 19384)
+@@ -21,6 +21,7 @@
+ 
+ 		/*Finite element Analysis*/
+ 		void           Core(FemModel* femmodel);
++		void           CreateDamageFInput(Element* element);
+ 		void           CreateDamageFInputExp(Element* element);
+ 		void           CreateDamageFInputPralong(Element* element);
+ 		ElementVector* CreateDVector(Element* element);
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19383)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19384)
+@@ -81,7 +81,11 @@
+ 	/*Retrieve law dependent parameters: */
+ 	int law;
+ 	iomodel->Constant(&law,DamageLawEnum);
+-	if (law>0){
++	if (law==0){
++		parameters->AddObject(iomodel->CopyConstantObject(DamageStressThresholdEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(DamageKappaEnum));
++	}
++	else if (law>0){
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC1Enum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC2Enum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageC3Enum));
+@@ -98,6 +102,27 @@
+ void           DamageEvolutionAnalysis::Core(FemModel* femmodel){/*{{{*/
+ 	_error_("not implemented");
+ }/*}}}*/
++void           DamageEvolutionAnalysis::CreateDamageFInput(Element* element){/*{{{*/
++
++	/*Fetch number of vertices and allocate output*/
++	int numnodes = element->GetNumberOfNodes();
++	IssmDouble* f   = xNew<IssmDouble>(numnodes);
++
++	/*Calculate damage evolution source term: */
++	for (int i=0;i<numnodes;i++){
++
++		/* healing could be handled here */
++
++		/* no source term; damage handled in stress balance */
++		f[i]=0;
++	}
++
++	/*Add input*/
++	element->AddInput(DamageFEnum,f,element->GetElementType());
++	
++	/*Clean up and return*/
++	xDelete<IssmDouble>(f);
++}/*}}}*/
+ void           DamageEvolutionAnalysis::CreateDamageFInputExp(Element* element){/*{{{*/
+ 
+ 	/*Intermediaries */
+@@ -501,6 +526,9 @@
+ 	element->FindParam(&dt,TimesteppingTimeStepEnum);
+ 	element->FindParam(&damagelaw,DamageLawEnum);
+ 	switch(damagelaw){
++		case 0:
++			this->CreateDamageFInput(element);
++			break;
+ 		case 1:
+ 			this->CreateDamageFInputPralong(element);
+ 			break;
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19383)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19384)
+@@ -172,7 +172,7 @@
+ 
+ 			fielddisplay(self,'isdamage','is damage mechanics being used? {true,false}');
+ 			if self.isdamage,
+-				fielddisplay(self,'law','damage law {''0: undamaged'',''1: pralong''}');
++				fielddisplay(self,'law','damage law {''0: no source term'',''1: pralong''}');
+ 				fielddisplay(self,'D','damage tensor (scalar)');
+ 				fielddisplay(self,'spcdamage','damage constraints (NaN means no constraint)');
+ 				fielddisplay(self,'max_damage','maximum possible damage (0<=max_damage<1)');
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19383)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19384)
+@@ -51,7 +51,7 @@
+ 		s+="%s\n" % fielddisplay(self,"isdamage","is damage mechanics being used? [0 (default) or 1]")
+ 		if self.isdamage:
+ 			s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")
+-			s+="%s\n" % fielddisplay(self,"law","damage law ['0: undamaged','1: pralong']")
++			s+="%s\n" % fielddisplay(self,"law","damage law ['0: no source term','1: pralong']")
+ 			s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
+ 			s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19384-19385.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19384-19385.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19384-19385.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp	(revision 19384)
++++ ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp	(revision 19385)
+@@ -55,13 +55,13 @@
+ 			return 8.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) - 4.0*PI*x*cos(4*PI*x*z) + 16.0*pow(PI, 2)*pow(z, 2)*(z - 2)*sin(4*PI*x*z) - 0.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 4*PI*sin(4*PI*z)*cos(4*PI*x);
+ 		case 14:
+ 			z=y;
+-			return 8.0*pow(2, 1.0L/3.0L)*pow(M_PI, 2)*pow(z, 2)*(z - 2)*sin(4*M_PI*x*z)/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 1.0L/3.0L) - 0.0266666666666667*pow(2, 1.0L/3.0L)*M_PI*z*(z - 2)*(800.0*pow(M_PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*M_PI*x*z)*cos(4*M_PI*x*z) - (-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x))*(40.0*pow(M_PI, 2)*x*z*(z - 2)*sin(4*M_PI*x*z) - 10.0*M_PI*z*cos(4*M_PI*x*z) - 10.0*M_PI*(z - 2)*cos(4*M_PI*x*z) + 1.25*M_PI*(32*cos(4*M_PI*x)/pow(x, 2) - 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 4*(4*pow(M_PI, 2)*pow(z, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(z, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) - 2*M_PI*z*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 8*M_PI*z*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(z, 2) - 2*pow(M_PI, 2)*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 20*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 6*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 4)) - 6*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4)) + 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 5)) + 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 5))) + 8*pow(M_PI, 2)*sin(4*M_PI*x)) - (50*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 12.5*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 12.5*M_PI*x*cos(4*M_PI*x*z) - 50*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))*(4*pow(M_PI, 2)*x*z*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*x*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + pow(M_PI, 2)*x*z*sin(4*M_PI*x*z) - M_PI*x*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 4.0*M_PI*x*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - 4*M_PI*z*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z) + M_PI*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 2*(pow(M_PI, 2)*x*z - pow(M_PI, 2)*x)*sin(4*M_PI*x*z) - 0.25*M_PI*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*cos(4*M_PI*x*z))/(pow(M_PI, 4)*pow(x, 6)) + 150*pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 7)))*cos(4*M_PI*x*z)/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 4.0L/3.0L) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(M_PI, 2)*pow(x, 2)*(z - 2)*sin(4*M_PI*x*z) - 20.0*M_PI*x*cos(4*M_PI*x*z) - 1.25*M_PI*((16*pow(M_PI, 2)*x*z*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*sin(4*M_PI*x*z) - 4*M_PI*x*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 16*M_PI*x*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - 16*M_PI*z*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z) + 4*M_PI*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 8*(pow(M_PI, 2)*x*z - pow(M_PI, 2)*x)*sin(4*M_PI*x*z) - M_PI*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - M_PI*cos(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) + 3*(-4*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) + M_PI*x*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))))/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 1.0L/3.0L) + 4*M_PI*sin(4*M_PI*z)*cos(4*M_PI*x) + (1.0L/150.0L)*pow(2, 1.0L/3.0L)*(-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x))*(160.0*pow(M_PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*M_PI*x*z)*cos(4*M_PI*x*z) - 40.0*pow(M_PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*M_PI*x*z), 2) - 40.0*pow(M_PI, 2)*z*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (-8.0*pow(M_PI, 2)*pow(x, 2)*(z - 2)*sin(4*M_PI*x*z) + 4.0*M_PI*x*cos(4*M_PI*x*z) + 0.25*M_PI*((16*pow(M_PI, 2)*x*z*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*sin(4*M_PI*x*z) - 4*M_PI*x*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 16*M_PI*x*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - 16*M_PI*z*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z) + 4*M_PI*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 8*(pow(M_PI, 2)*x*z - pow(M_PI, 2)*x)*sin(4*M_PI*x*z) - M_PI*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - M_PI*cos(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) + 3*(-4*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) + M_PI*x*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))))*(-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x)) - (10*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 2.5*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 2.5*M_PI*x*cos(4*M_PI*x*z) - 10*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))*(4*pow(M_PI, 2)*pow(x, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*sin(4*M_PI*x*z) - 8.0*M_PI*x*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z))/(pow(M_PI, 4)*pow(x, 6)))/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 4.0L/3.0L);
++			return 8.0*pow(2, 1.0L/3.0L)*pow(PI, 2)*pow(z, 2)*(z - 2)*sin(4*PI*x*z)/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) - 0.0266666666666667*pow(2, 1.0L/3.0L)*PI*z*(z - 2)*(800.0*pow(PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - (-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x)) - (50*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 12.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 12.5*PI*x*cos(4*PI*x*z) - 50*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*x*z*sin(4*PI*x*z) - PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 4.0*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 4*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - 0.25*PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)) + 150*pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 7)))*cos(4*PI*x*z)/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) - 20.0*PI*x*cos(4*PI*x*z) - 1.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) + 4*PI*sin(4*PI*z)*cos(4*PI*x) + (1.0L/150.0L)*pow(2, 1.0L/3.0L)*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(160.0*pow(PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - 40.0*pow(PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*PI*x*z), 2) - 40.0*pow(PI, 2)*z*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (-8.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) + 4.0*PI*x*cos(4*PI*x*z) + 0.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x)) - (10*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 2.5*PI*x*cos(4*PI*x*z) - 10*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L);
+ 		case 21:
+ 			z=y;
+ 			return z - 4.0L/3.0L*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) + z*(6*pow(x, 2) - 6*x + 1))*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1)))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 1.0L/3.0L*pow(2, 1.0L/3.0L)*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1)))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) + 2*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L) - 0.5 + pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L);
+ 		case 22:
+ 			z=y;
+-			return -2*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*pow(z - 2, 2) + 4*x*z*(x - 2)*pow(z - 2, 2) + z*pow(x - 2, 2)*pow(z - 2, 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 1.0L/3.0L) + (2.0L/9.0L)*pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*(x - 2)*pow(z - 2, 2) + 2*x*z*pow(x - 2, 2)*pow(z - 2, 2) + 1)*(96*pow(x, 7) - 672*pow(x, 6) + 1728*pow(x, 5) - 1920*pow(x, 4) + 768*pow(x, 3) + 9*pow(z, 8)*(3*pow(x, 3) - 9*pow(x, 2) + 8*x - 2) - 96*pow(z, 7)*(3*pow(x, 3) - 9*pow(x, 2) + 8*x - 2) + pow(z, 6)*(207*pow(x, 5) - 1035*pow(x, 4) + 3012*pow(x, 3) - 4896*pow(x, 2) + 3512*x - 800) - 24*pow(z, 5)*(69*pow(x, 5) - 345*pow(x, 4) + 700*pow(x, 3) - 720*pow(x, 2) + 360*x - 64) + 2*pow(z, 4)*(27*pow(x, 7) - 189*pow(x, 6) + 2988*pow(x, 5) - 13050*pow(x, 4) + 22976*pow(x, 3) - 18240*pow(x, 2) + 6064*x - 576) - 8*pow(z, 3)*(36*pow(x, 7) - 252*pow(x, 6) + 1512*pow(x, 5) - 5040*pow(x, 4) + 7840*pow(x, 3) - 5385*pow(x, 2) + 1298*x - 6) + 48*pow(z, 2)*(11*pow(x, 7) - 77*pow(x, 6) + 276*pow(x, 5) - 610*pow(x, 4) + 768*pow(x, 3) - 486*pow(x, 2) + 124*x - 4) - 96*z*(4*pow(x, 7) - 28*pow(x, 6) + 72*pow(x, 5) - 80*pow(x, 4) + 32*pow(x, 3) - 3*pow(x, 2) + 6*x - 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 4.0L/3.0L) - pow(2, 1.0L/3.0L)*(pow(x, 2)*z*pow(x - 2, 2) + 2*pow(x, 2)*pow(x - 2, 2)*(z - 2) - 2*pow(z, 3)*(3*pow(x, 2) - 6*x + 2) + 8*pow(z, 2)*(3*pow(x, 2) - 6*x + 2) - 8*z*(3*pow(x, 2) - 6*x + 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 1.0L/3.0L) - 1.0L/27.0L*pow(2, 1.0L/3.0L)*(6*pow(x, 2)*z*pow(x - 2, 2)*(z - 2) + 3*pow(x, 2)*pow(x - 2, 2)*pow(z - 2, 2) - 3*pow(z, 4)*(3*pow(x, 2) - 6*x + 2) + 16*pow(z, 3)*(3*pow(x, 2) - 6*x + 2) - 24*pow(z, 2)*(3*pow(x, 2) - 6*x + 2))*(48*pow(x, 8) - 384*pow(x, 7) + 1152*pow(x, 6) - 1536*pow(x, 5) + 768*pow(x, 4) - 96*pow(x, 3) + 288*pow(x, 2) - 192*x - 6*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + 56*pow(z, 6)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - pow(z, 5)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) + 20*pow(z, 4)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) - pow(z, 3)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) + 12*pow(z, 2)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) - 12*z*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 4.0L/3.0L) + 4*M_PI*cos(4*M_PI*x + (1.0L/3.0L)*M_PI);
++			return -2*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*pow(z - 2, 2) + 4*x*z*(x - 2)*pow(z - 2, 2) + z*pow(x - 2, 2)*pow(z - 2, 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 1.0L/3.0L) + (2.0L/9.0L)*pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*(x - 2)*pow(z - 2, 2) + 2*x*z*pow(x - 2, 2)*pow(z - 2, 2) + 1)*(96*pow(x, 7) - 672*pow(x, 6) + 1728*pow(x, 5) - 1920*pow(x, 4) + 768*pow(x, 3) + 9*pow(z, 8)*(3*pow(x, 3) - 9*pow(x, 2) + 8*x - 2) - 96*pow(z, 7)*(3*pow(x, 3) - 9*pow(x, 2) + 8*x - 2) + pow(z, 6)*(207*pow(x, 5) - 1035*pow(x, 4) + 3012*pow(x, 3) - 4896*pow(x, 2) + 3512*x - 800) - 24*pow(z, 5)*(69*pow(x, 5) - 345*pow(x, 4) + 700*pow(x, 3) - 720*pow(x, 2) + 360*x - 64) + 2*pow(z, 4)*(27*pow(x, 7) - 189*pow(x, 6) + 2988*pow(x, 5) - 13050*pow(x, 4) + 22976*pow(x, 3) - 18240*pow(x, 2) + 6064*x - 576) - 8*pow(z, 3)*(36*pow(x, 7) - 252*pow(x, 6) + 1512*pow(x, 5) - 5040*pow(x, 4) + 7840*pow(x, 3) - 5385*pow(x, 2) + 1298*x - 6) + 48*pow(z, 2)*(11*pow(x, 7) - 77*pow(x, 6) + 276*pow(x, 5) - 610*pow(x, 4) + 768*pow(x, 3) - 486*pow(x, 2) + 124*x - 4) - 96*z*(4*pow(x, 7) - 28*pow(x, 6) + 72*pow(x, 5) - 80*pow(x, 4) + 32*pow(x, 3) - 3*pow(x, 2) + 6*x - 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 4.0L/3.0L) - pow(2, 1.0L/3.0L)*(pow(x, 2)*z*pow(x - 2, 2) + 2*pow(x, 2)*pow(x - 2, 2)*(z - 2) - 2*pow(z, 3)*(3*pow(x, 2) - 6*x + 2) + 8*pow(z, 2)*(3*pow(x, 2) - 6*x + 2) - 8*z*(3*pow(x, 2) - 6*x + 2))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 1.0L/3.0L) - 1.0L/27.0L*pow(2, 1.0L/3.0L)*(6*pow(x, 2)*z*pow(x - 2, 2)*(z - 2) + 3*pow(x, 2)*pow(x - 2, 2)*pow(z - 2, 2) - 3*pow(z, 4)*(3*pow(x, 2) - 6*x + 2) + 16*pow(z, 3)*(3*pow(x, 2) - 6*x + 2) - 24*pow(z, 2)*(3*pow(x, 2) - 6*x + 2))*(48*pow(x, 8) - 384*pow(x, 7) + 1152*pow(x, 6) - 1536*pow(x, 5) + 768*pow(x, 4) - 96*pow(x, 3) + 288*pow(x, 2) - 192*x - 6*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + 56*pow(z, 6)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - pow(z, 5)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) + 20*pow(z, 4)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) - pow(z, 3)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) + 12*pow(z, 2)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) - 12*z*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x))/pow(8*pow(x, 8) - 64*pow(x, 7) + 192*pow(x, 6) - 256*pow(x, 5) + 128*pow(x, 4) + (1.0L/2.0L)*pow(z, 8)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) - 16.0L/3.0L*pow(z, 7)*(9*pow(x, 4) - 36*pow(x, 3) + 48*pow(x, 2) - 24*x + 4) + (1.0L/9.0L)*pow(z, 6)*(207*pow(x, 6) - 1242*pow(x, 5) + 4518*pow(x, 4) - 9792*pow(x, 3) + 10536*pow(x, 2) - 4800*x + 800) - 8.0L/3.0L*pow(z, 5)*(69*pow(x, 6) - 414*pow(x, 5) + 1050*pow(x, 4) - 1440*pow(x, 3) + 1080*pow(x, 2) - 384*x + 64) + (1.0L/6.0L)*pow(z, 4)*(27*pow(x, 8) - 216*pow(x, 7) + 3984*pow(x, 6) - 20880*pow(x, 5) + 45952*pow(x, 4) - 48640*pow(x, 3) + 24256*pow(x, 2) - 4608*x + 768) - 8.0L/3.0L*pow(z, 3)*(9*pow(x, 8) - 72*pow(x, 7) + 504*pow(x, 6) - 2016*pow(x, 5) + 3920*pow(x, 4) - 3590*pow(x, 3) + 1298*pow(x, 2) - 12*x) + 4*pow(z, 2)*(11*pow(x, 8) - 88*pow(x, 7) + 368*pow(x, 6) - 976*pow(x, 5) + 1536*pow(x, 4) - 1296*pow(x, 3) + 496*pow(x, 2) - 32*x) - 32*z*(pow(x, 8) - 8*pow(x, 7) + 24*pow(x, 6) - 32*pow(x, 5) + 16*pow(x, 4) - 2*pow(x, 3) + 6*pow(x, 2) - 4*x) + 2, 4.0L/3.0L) + 4*PI*cos(4*PI*x + (1.0L/3.0L)*PI);
+ 		case 24:
+ 			return 2*pow(2, 1.0L/3.0L)*pow(PI, 2)*pow(p, 2)*sin(PI*p*y)*sin(PI*p*z)*cos(PI*p*x)/pow(6*pow(PI, 2)*pow(p, 2)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2) + (1.0L/2.0L)*pow(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z), 2), 1.0L/3.0L) - 2.0L/3.0L*pow(2, 1.0L/3.0L)*PI*p*(12*pow(PI, 3)*pow(p, 3)*sin(PI*p*x)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2)*cos(PI*p*x) - (-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x))*(pow(PI, 2)*pow(p, 2)*(cos(PI*p*y) - 1)*sin(PI*p*x)*sin(PI*p*z) - 2*pow(PI, 2)*pow(p, 2)*sin(PI*p*x)*sin(PI*p*z)*cos(PI*p*y)) + (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z))*(pow(PI, 3)*pow(p, 3)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*cos(PI*p*x)*cos(PI*p*y) + pow(PI, 2)*pow(p, 2)*(cos(PI*p*y) - 1)*cos(PI*p*x)*cos(PI*p*z)) - (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z))*(pow(PI, 3)*pow(p, 3)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*sin(PI*p*y) - 2*pow(PI, 2)*pow(p, 2)*sin(PI*p*x)*sin(PI*p*y)*cos(PI*p*z)))*sin(PI*p*x)*sin(PI*p*y)*sin(PI*p*z)/pow(6*pow(PI, 2)*pow(p, 2)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2) + (1.0L/2.0L)*pow(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z), 2), 4.0L/3.0L) + PI*q*sin(PI*q*y)*sin(PI*q*z)*cos(PI*q*x) - 1.0L/6.0L*pow(2, 1.0L/3.0L)*(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x))*(12*pow(PI, 3)*pow(p, 3)*pow(sin(PI*p*x), 2)*sin(PI*p*y)*pow(sin(PI*p*z), 2)*cos(PI*p*y) + (-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x))*(2*pow(PI, 2)*pow(p, 2)*(cos(PI*p*x) - 1)*sin(PI*p*y)*sin(PI*p*z) - pow(PI, 2)*pow(p, 2)*sin(PI*p*y)*sin(PI*p*z)*cos(PI*p*x)) - (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z))*(pow(PI, 3)*pow(p, 3)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*sin(PI*p*y) + pow(PI, 2)*pow(p, 2)*sin(PI*p*x)*sin(PI*p*y)*cos(PI*p*z)) + (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z))*(pow(PI, 3)*pow(p, 3)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*cos(PI*p*x)*cos(PI*p*y) - 2*pow(PI, 2)*pow(p, 2)*(cos(PI*p*x) - 1)*cos(PI*p*y)*cos(PI*p*z)))/pow(6*pow(PI, 2)*pow(p, 2)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2) + (1.0L/2.0L)*pow(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z), 2), 4.0L/3.0L) - 1.0L/6.0L*pow(2, 1.0L/3.0L)*(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z))*(12*pow(PI, 3)*pow(p, 3)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*sin(PI*p*z)*cos(PI*p*z) + (-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x))*(-2*pow(PI, 2)*pow(p, 2)*(cos(PI*p*x) - 1)*cos(PI*p*y)*cos(PI*p*z) + pow(PI, 2)*pow(p, 2)*(cos(PI*p*y) - 1)*cos(PI*p*x)*cos(PI*p*z)) - (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z))*(pow(PI, 2)*pow(p, 2)*(cos(PI*p*y) - 1)*sin(PI*p*x)*sin(PI*p*z) + pow(PI, 2)*pow(p, 2)*sin(PI*p*x)*sin(PI*p*z)*cos(PI*p*y)) + (pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z))*(2*pow(PI, 2)*pow(p, 2)*(cos(PI*p*x) - 1)*sin(PI*p*y)*sin(PI*p*z) - pow(PI, 2)*pow(p, 2)*sin(PI*p*y)*sin(PI*p*z)*cos(PI*p*x)))/pow(6*pow(PI, 2)*pow(p, 2)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2) + (1.0L/2.0L)*pow(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z), 2), 4.0L/3.0L) + pow(2, 1.0L/3.0L)*(2*pow(PI, 2)*pow(p, 2)*(cos(PI*p*x) - 1)*sin(PI*p*y)*sin(PI*p*z) - pow(PI, 2)*pow(p, 2)*sin(PI*p*y)*sin(PI*p*z)*cos(PI*p*x))/pow(6*pow(PI, 2)*pow(p, 2)*pow(sin(PI*p*x), 2)*pow(sin(PI*p*y), 2)*pow(sin(PI*p*z), 2) + (1.0L/2.0L)*pow(-2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*z)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*z)*cos(PI*p*x), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*x)*cos(PI*p*y) + PI*p*(cos(PI*p*y) - 1)*sin(PI*p*x)*cos(PI*p*z), 2) + (1.0L/2.0L)*pow(pow(PI, 2)*pow(p, 2)*(cos(PI*p*z)/(PI*p) - 1/(PI*p))*sin(PI*p*y)*cos(PI*p*x) - 2*PI*p*(cos(PI*p*x) - 1)*sin(PI*p*y)*cos(PI*p*z), 2), 1.0L/3.0L);
+ 
+@@ -112,7 +112,7 @@
+ 			return 8.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 2.0*PI*z*cos(4*PI*x*z) - 2.0*PI*(z - 2)*cos(4*PI*x*z) + 0.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 4*PI*sin(4*PI*x)*cos(4*PI*z) + (8.0L/5.0L)*pow(PI, 2)*sin(4*PI*x) + 2*(-4.0*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) - 1.0*pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 1.0*pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) + 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 2)*pow(x, 3));
+ 		case 14:
+ 			z=y;
+-			return 4*M_PI*sin(4*M_PI*x)*cos(4*M_PI*z) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(M_PI, 2)*x*z*(z - 2)*sin(4*M_PI*x*z) - 10.0*M_PI*z*cos(4*M_PI*x*z) - 10.0*M_PI*(z - 2)*cos(4*M_PI*x*z) + 1.25*M_PI*(32*cos(4*M_PI*x)/pow(x, 2) - 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 4*(4*pow(M_PI, 2)*pow(z, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(z, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) - 2*M_PI*z*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 8*M_PI*z*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(z, 2) - 2*pow(M_PI, 2)*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 20*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 6*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 4)) - 6*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4)) + 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 5)) + 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 5))) + 8*pow(M_PI, 2)*sin(4*M_PI*x))/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 1.0L/3.0L) + (1.0L/750.0L)*pow(2, 1.0L/3.0L)*(-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x))*(800.0*pow(M_PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*M_PI*x*z)*cos(4*M_PI*x*z) - (-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x))*(40.0*pow(M_PI, 2)*x*z*(z - 2)*sin(4*M_PI*x*z) - 10.0*M_PI*z*cos(4*M_PI*x*z) - 10.0*M_PI*(z - 2)*cos(4*M_PI*x*z) + 1.25*M_PI*(32*cos(4*M_PI*x)/pow(x, 2) - 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 4*(4*pow(M_PI, 2)*pow(z, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(z, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) - 2*M_PI*z*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 8*M_PI*z*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(z, 2) - 2*pow(M_PI, 2)*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 20*sin(4*M_PI*x)/(M_PI*pow(x, 3)) - 6*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 4)) - 6*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4)) + 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 5)) + 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 5))) + 8*pow(M_PI, 2)*sin(4*M_PI*x)) - (50*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 12.5*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 12.5*M_PI*x*cos(4*M_PI*x*z) - 50*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))*(4*pow(M_PI, 2)*x*z*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*x*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + pow(M_PI, 2)*x*z*sin(4*M_PI*x*z) - M_PI*x*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 4.0*M_PI*x*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - 4*M_PI*z*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z) + M_PI*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 2*(pow(M_PI, 2)*x*z - pow(M_PI, 2)*x)*sin(4*M_PI*x*z) - 0.25*M_PI*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*cos(4*M_PI*x*z))/(pow(M_PI, 4)*pow(x, 6)) + 150*pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 7)))/pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 4.0L/3.0L) - pow(2, 1.0L/3.0L)*(4.0*pow(M_PI, 2)*pow(x, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*sin(4*M_PI*x*z) - 8.0*M_PI*x*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z))/(pow(M_PI, 2)*pow(x, 3)*pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 1.0L/3.0L)) - 1.0L/15.0L*pow(2, 1.0L/3.0L)*(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) + (-1.0*pow(M_PI, 2)*pow(x, 2)*z + pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))*(160.0*pow(M_PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*M_PI*x*z)*cos(4*M_PI*x*z) - 40.0*pow(M_PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*M_PI*x*z), 2) - 40.0*pow(M_PI, 2)*z*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (-8.0*pow(M_PI, 2)*pow(x, 2)*(z - 2)*sin(4*M_PI*x*z) + 4.0*M_PI*x*cos(4*M_PI*x*z) + 0.25*M_PI*((16*pow(M_PI, 2)*x*z*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + 4*pow(M_PI, 2)*x*z*sin(4*M_PI*x*z) - 4*M_PI*x*(-M_PI*z + M_PI)*sin(4*M_PI*x*z) - 16*M_PI*x*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*cos(4*M_PI*x*z) - 16*M_PI*z*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z) + 4*M_PI*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 8*(pow(M_PI, 2)*x*z - pow(M_PI, 2)*x)*sin(4*M_PI*x*z) - M_PI*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - M_PI*cos(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) + 3*(-4*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) + M_PI*x*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))))*(-10.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) + 0.3125*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) - 2.5*sin(4*M_PI*x*z) - 2*M_PI*cos(4*M_PI*x)) - (10*M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 2.5*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 2.5*M_PI*x*cos(4*M_PI*x*z) - 10*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z))*(4*pow(M_PI, 2)*pow(x, 2)*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z) + pow(M_PI, 2)*pow(x, 2)*sin(4*M_PI*x*z) - 8.0*M_PI*x*(pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*cos(4*M_PI*x*z))/(pow(M_PI, 4)*pow(x, 6)))/(pow(M_PI, 2)*pow(x, 3)*pow(4.0*pow(M_PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*M_PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*M_PI*x*(z - 2)*cos(4*M_PI*x*z) - 0.0625*M_PI*(16*sin(4*M_PI*x)/(M_PI*pow(x, 2)) + 4*(8*pow(M_PI, 2)*pow(x, 2) + 1)*cos(4*M_PI*x)/(pow(M_PI, 2)*pow(x, 3)) + 4*(-4*M_PI*z*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) + M_PI*z*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - (-M_PI*z + M_PI)*cos(4*M_PI*x*z) + 4*(pow(M_PI, 2)*x*pow(z, 2) - 2*pow(M_PI, 2)*x*z)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 3)) - 3*(8*pow(M_PI, 2)*pow(x, 2) + 1)*sin(4*M_PI*x)/(pow(M_PI, 3)*pow(x, 4)) - 3*(4*(M_PI*x*z - M_PI*x)*cos(4*M_PI*x*z) + (8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*sin(4*M_PI*x*z))/(pow(M_PI, 3)*pow(x, 4))) + 0.5*sin(4*M_PI*x*z) + (2.0L/5.0L)*M_PI*cos(4*M_PI*x), 2) + pow(M_PI*x*(M_PI*x*z - M_PI*x)*sin(4*M_PI*x*z) - 0.25*M_PI*x*(8*pow(M_PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(M_PI, 2)*pow(x, 2)*z - 1)*cos(4*M_PI*x*z) - 0.25*M_PI*x*cos(4*M_PI*x*z) - (pow(M_PI, 2)*pow(x, 2)*z - pow(M_PI, 2)*pow(x, 2))*sin(4*M_PI*x*z), 2)/(pow(M_PI, 4)*pow(x, 6)), 4.0L/3.0L));
++			return 4*PI*sin(4*PI*x)*cos(4*PI*z) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) + (1.0L/750.0L)*pow(2, 1.0L/3.0L)*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(800.0*pow(PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - (-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x)) - (50*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 12.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 12.5*PI*x*cos(4*PI*x*z) - 50*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*x*z*sin(4*PI*x*z) - PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 4.0*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 4*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - 0.25*PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)) + 150*pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 7)))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L) - pow(2, 1.0L/3.0L)*(4.0*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 2)*pow(x, 3)*pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L)) - 1.0L/15.0L*pow(2, 1.0L/3.0L)*(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) + (-1.0*pow(PI, 2)*pow(x, 2)*z + pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(160.0*pow(PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - 40.0*pow(PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*PI*x*z), 2) - 40.0*pow(PI, 2)*z*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (-8.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) + 4.0*PI*x*cos(4*PI*x*z) + 0.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x)) - (10*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 2.5*PI*x*cos(4*PI*x*z) - 10*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)))/(pow(PI, 2)*pow(x, 3)*pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L));
+ 		case 21:
+ 			z=y;
+ 			return x + (4.0L/3.0L)*pow(2, 1.0L/3.0L)*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1)))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 1.0L/3.0L*pow(2, 1.0L/3.0L)*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) + z*(6*pow(x, 2) - 6*x + 1))*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1)))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 0.5 - 2*pow(2, 1.0L/3.0L)*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L) + pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19385-19386.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19385-19386.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19385-19386.diff	(revision 20498)
@@ -0,0 +1,430 @@
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h	(revision 19385)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h	(revision 19386)
+@@ -34,5 +34,12 @@
+ 		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
+ 		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
+ 		void           UpdateConstraints(FemModel* femmodel);
++
++		/*FCT*/
++		ElementMatrix* CreateFctKMatrix(Element* element);
++		ElementMatrix* CreateMassMatrix(Element* element);
++		void           FctKMatrix(Matrix<IssmDouble>** pKff,Matrix<IssmDouble>** pKfs,FemModel* femmodel);
++		void           LumpedMassMatrix(Vector<IssmDouble>** pMLff,FemModel* femmodel);
++		void           MassMatrix(Matrix<IssmDouble>** pMff,FemModel* femmodel);
+ };
+ #endif
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19385)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19386)
+@@ -875,7 +875,7 @@
+ 
+ 	iomodel->Constant(&materials_type,MaterialsEnum);
+ 	if(materials_type==MatdamageiceEnum){
+-		parameters->AddObject(iomodel->CopyConstantObject(DamageC1Enum));
++		parameters->AddObject(iomodel->CopyConstantObject(DamageLawEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageKappaEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(DamageStressThresholdEnum));
+ 	}
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19385)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19386)
+@@ -114,7 +114,7 @@
+ 		/* healing could be handled here */
+ 
+ 		/* no source term; damage handled in stress balance */
+-		f[i]=0;
++		f[i]=0.;
+ 	}
+ 
+ 	/*Add input*/
+@@ -631,7 +631,7 @@
+ 
+ }/*}}}*/
+ void           DamageEvolutionAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
+-	   _error_("not implemented yet");
++	element->GetSolutionFromInputsOneDof(solution,DamageDbarEnum);
+ }/*}}}*/
+ void           DamageEvolutionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
+ 	_error_("Not implemented yet");
+@@ -685,3 +685,173 @@
+ 	}
+ 	return;
+ }/*}}}*/
++
++/*Flux Correction Transport*/
++ElementMatrix* DamageEvolutionAnalysis::CreateFctKMatrix(Element* element){/*{{{*/
++
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
++	/*Intermediaries */
++	IssmDouble Jdet;
++	IssmDouble vx,vy;
++	IssmDouble* xyz_list = NULL;
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++	int dim      = 2;
++
++	/*Initialize Element vector and other vectors*/
++	ElementMatrix* Ke     = element->NewElementMatrix();
++	IssmDouble*    B      = xNew<IssmDouble>(dim*numnodes);
++	IssmDouble*    Bprime = xNew<IssmDouble>(dim*numnodes);
++	IssmDouble*    D      = xNewZeroInit<IssmDouble>(dim*dim);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++	Input* vxaverage_input=element->GetInput(VxEnum); _assert_(vxaverage_input);
++	Input* vyaverage_input=element->GetInput(VyEnum); _assert_(vyaverage_input);
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		GetB(B,element,dim,xyz_list,gauss);
++		GetBprime(Bprime,element,dim,xyz_list,gauss);
++		vxaverage_input->GetInputValue(&vx,gauss);
++		vyaverage_input->GetInputValue(&vy,gauss);
++
++		D[0*dim+0] = -gauss->weight*vx*Jdet;
++		D[1*dim+1] = -gauss->weight*vy*Jdet;
++
++		TripleMultiply(B,dim,numnodes,1,
++					D,dim,dim,0,
++					Bprime,dim,numnodes,0,
++					&Ke->values[0],1);
++
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(B);
++	xDelete<IssmDouble>(Bprime);
++	xDelete<IssmDouble>(D);
++	delete gauss;
++	return Ke;
++}/*}}}*/
++ElementMatrix* DamageEvolutionAnalysis::CreateMassMatrix(Element* element){/*{{{*/
++
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
++	/*Intermediaries*/
++	IssmDouble  D,Jdet;
++	IssmDouble* xyz_list = NULL;
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Initialize Element vector and other vectors*/
++	ElementMatrix* Me     = element->NewElementMatrix();
++	IssmDouble*    basis  = xNew<IssmDouble>(numnodes);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		element->NodalFunctions(basis,gauss);
++
++		D=gauss->weight*Jdet;
++		TripleMultiply(basis,1,numnodes,1,
++					&D,1,1,0,
++					basis,1,numnodes,0,
++					&Me->values[0],1);
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(basis);
++	delete gauss;
++	return Me;
++}/*}}}*/
++void           DamageEvolutionAnalysis::FctKMatrix(Matrix<IssmDouble>** pKff,Matrix<IssmDouble>** pKfs,FemModel* femmodel){/*{{{*/
++
++	/*Output*/
++	Matrix<IssmDouble>* Kff = NULL;
++	Matrix<IssmDouble>* Kfs = NULL;
++
++	/*Initialize Jacobian Matrix*/
++	AllocateSystemMatricesx(&Kff,&Kfs,NULL,NULL,femmodel);
++
++	/*Create and assemble matrix*/
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element*       element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		ElementMatrix* Ke     = this->CreateFctKMatrix(element);
++		if(Ke) Ke->AddToGlobal(Kff,Kfs);
++		delete Ke;
++	}
++	Kff->Assemble();
++	Kfs->Assemble();
++
++	/*Assign output pointer*/
++	*pKff=Kff;
++	if(pKfs){
++		*pKfs=Kfs;
++	}
++	else{
++		delete Kfs;
++	}
++}/*}}}*/
++void           DamageEvolutionAnalysis::LumpedMassMatrix(Vector<IssmDouble>** pMlff,FemModel* femmodel){/*{{{*/
++
++	/*Intermediaries*/
++	int  configuration_type;
++
++	/*Initialize Lumped mass matrix (actually we just save its diagonal)*/
++	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
++	int fsize      = femmodel->nodes->NumberOfDofs(configuration_type,FsetEnum);
++	int flocalsize = femmodel->nodes->NumberOfDofsLocal(configuration_type,FsetEnum);
++	Vector<IssmDouble>* Mlff = new Vector<IssmDouble>(flocalsize,fsize);
++
++	/*Create and assemble matrix*/
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element*       element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		ElementMatrix* MLe     = this->CreateMassMatrix(element);
++		if(MLe){
++			MLe->Lump();
++			MLe->AddDiagonalToGlobal(Mlff);
++		}
++		delete MLe;
++	}
++	Mlff->Assemble();
++
++	/*Assign output pointer*/
++	*pMlff=Mlff;
++}/*}}}*/
++void           DamageEvolutionAnalysis::MassMatrix(Matrix<IssmDouble>** pMff,FemModel* femmodel){/*{{{*/
++
++	/*Initialize Mass matrix*/
++	Matrix<IssmDouble> *Mff = NULL;
++	AllocateSystemMatricesx(&Mff,NULL,NULL,NULL,femmodel);
++
++	/*Create and assemble matrix*/
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element*       element = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		ElementMatrix* MLe     = this->CreateMassMatrix(element);
++		if(MLe){
++			MLe->AddToGlobal(Mff);
++		}
++		delete MLe;
++	}
++	Mff->Assemble();
++
++	/*Assign output pointer*/
++	*pMff=Mff;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_fct.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_fct.cpp	(revision 19385)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_fct.cpp	(revision 19386)
+@@ -1,11 +1,12 @@
+-/*!\file: solutionsequence_linear.cpp
+- * \brief: numerical core of linear solutions
++/*!\file: solutionsequence_fct.cpp
++ * \brief: numerical core of flux corrected transport solution
+  */ 
+ 
+ #include "../toolkits/toolkits.h"
+ #include "../classes/classes.h"
+ #include "../shared/shared.h"
+ #include "../modules/modules.h"
++#include "../analyses/analyses.h"
+ 
+ #ifdef _HAVE_PETSC_
+ void CreateDMatrix(Mat* pD,Mat K){/*{{{*/
+@@ -118,7 +119,7 @@
+ 	*pLHS  = LHS;
+ }/*}}}*/
+ void CreateRHS(Vec* pRHS,Mat K,Mat D,Vec Ml,Vec u,IssmDouble theta,IssmDouble deltat,IssmDouble dmax,FemModel* femmodel,int configuration_type){/*{{{*/
+-	/*Create Left Hand side of Lower order solution
++	/*Create Right Hand side of Lower order solution
+ 	 *
+ 	 * RHS = [ML + (1 − theta) deltaT L^n] u^n
+ 	 *
+@@ -165,7 +166,7 @@
+ 
+ }/*}}}*/
+ void RichardsonUdot(Vec* pudot,Vec u,Vec Ml,Mat K,Mat Mc){/*{{{*/
+-	/*Use Richardson's formulato get udot using 5 steps and an initial guess of 0
++	/*Use Richardson's formula to get udot using 5 steps and an initial guess of 0
+ 	 *
+ 	 * udot_new = udot_old + Ml^-1 (K^(n+1) u - Mc udot_old)
+ 	 *
+@@ -335,31 +336,44 @@
+ 	VecFree(&temp1);
+ }/*}}}*/
+ #endif
+-void solutionsequence_fct(FemModel* femmodel){
++void solutionsequence_fct(FemModel* femmodel){/*{{{*/
+ 
+ 	/*intermediary: */
+ 	IssmDouble           theta,deltat,dmax;
+-	int                  configuration_type;
++	int                  configuration_type,analysis_type;
+ 	Vector<IssmDouble>*  Ml = NULL;
+ 	Matrix<IssmDouble>*  K  = NULL;
+ 	Matrix<IssmDouble>*  Mc = NULL;
+ 	Vector<IssmDouble>*  ug = NULL;
+ 	Vector<IssmDouble>*  uf = NULL;
++	MasstransportAnalysis* manalysis = NULL;
++	DamageEvolutionAnalysis* danalysis = NULL;
+ 
+-	/*Create analysis*/
+-	MasstransportAnalysis* analysis = new MasstransportAnalysis();
+-
+ 	/*Recover parameters: */
+ 	femmodel->parameters->FindParam(&deltat,TimesteppingTimeStepEnum);
+ 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+ 	femmodel->UpdateConstraintsx();
+ 	theta = 0.5;
+ 
+-	/*Create lumped mass matrix*/
+-	analysis->LumpedMassMatrix(&Ml,femmodel);
+-	analysis->MassMatrix(&Mc,femmodel);
+-	analysis->FctKMatrix(&K,NULL,femmodel);
+-	delete analysis;
++	/*Create analysis*/
++	femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
++	switch(analysis_type){
++		case MasstransportAnalysisEnum:
++			manalysis = new MasstransportAnalysis();
++			manalysis->LumpedMassMatrix(&Ml,femmodel);
++			manalysis->MassMatrix(&Mc,femmodel);
++			manalysis->FctKMatrix(&K,NULL,femmodel);
++			break;
++		case DamageEvolutionAnalysisEnum:
++			danalysis = new DamageEvolutionAnalysis();
++			danalysis->LumpedMassMatrix(&Ml,femmodel);
++			danalysis->MassMatrix(&Mc,femmodel);
++			danalysis->FctKMatrix(&K,NULL,femmodel);
++			break;
++		default: _error_("analysis type " << EnumToStringx(analysis_type) << " not supported for FCT\n");
++	}
++	delete manalysis;
++	delete danalysis;
+ 
+ 	#ifdef _HAVE_PETSC_
+ 
+@@ -441,4 +455,4 @@
+ 	#else
+ 	_error_("PETSc needs to be installed");
+ 	#endif
+-}
++}/*}}}*/
+Index: ../trunk-jpl/src/c/cores/damage_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19385)
++++ ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19386)
+@@ -1,5 +1,5 @@
+ /* 
+- * \brief: damgage_core.cpp: core for the damage solution
++ * \brief: damage_core.cpp: core for the damage solution
+  */ 
+ 
+ #include "./cores.h"
+@@ -14,7 +14,7 @@
+ 	/*intermediary*/
+ 	bool   save_results;
+ 	bool   dakota_analysis     = false;
+-	int    solution_type;
++	int    solution_type,stabilization;
+ 	int    numoutputs          = 0; 
+ 	char   **requested_outputs = NULL;
+ 
+@@ -24,10 +24,16 @@
+ 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,DamageEvolutionNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,DamageEvolutionRequestedOutputsEnum);
++	femmodel->parameters->FindParam(&stabilization,DamageStabilizationEnum);
+ 
+ 	if(VerboseSolution()) _printf0_("   computing damage\n");
+ 	femmodel->SetCurrentConfiguration(DamageEvolutionAnalysisEnum);
+-	solutionsequence_linear(femmodel);
++	if(stabilization==4){
++		solutionsequence_fct(femmodel);
++	}
++	else{
++		solutionsequence_linear(femmodel);
++	}
+ 
+ 	if(save_results){
+ 		if(VerboseSolution()) _printf0_("   saving results\n");
+Index: ../trunk-jpl/src/m/mech/mechanicalproperties.py
+===================================================================
+--- ../trunk-jpl/src/m/mech/mechanicalproperties.py	(revision 19385)
++++ ../trunk-jpl/src/m/mech/mechanicalproperties.py	(revision 19386)
+@@ -76,6 +76,7 @@
+ 		nu[location]=10^18
+ 	elif 'matdamageice' in md.materials.__module__:
+ 		print 'computing damage-dependent properties!'
++                # FIXME might be using damage from a solution, not the initial md.damage.D
+ 		Zinv=npy.dot(1-md.damage.D[index-1],summation/3.).reshape(-1,)
+ 		location=npy.nonzero(second_inv)
+ 		nu[location]=Zinv[location]*B_bar[location]/npy.power(second_inv[location],power[location])
+Index: ../trunk-jpl/src/m/mech/mechanicalproperties.m
+===================================================================
+--- ../trunk-jpl/src/m/mech/mechanicalproperties.m	(revision 19385)
++++ ../trunk-jpl/src/m/mech/mechanicalproperties.m	(revision 19386)
+@@ -61,6 +61,7 @@
+ 	location=find(second_inv==0 & power==0);
+ 	nu(location)=B_bar(location);
+ elseif isa(md.materials,'matdamageice')
++	% FIXME this needs to use md.damage.D or damage from a solution
+ 	Zinv=md.materials.rheology_Z(index)*summation/3;
+ 	location=find(second_inv~=0);
+ 	nu(location)=Zinv(location).*B_bar(location)./(second_inv(location).^power(location));
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19385)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19386)
+@@ -141,7 +141,7 @@
+ 				md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1);
+ 				md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0);
+-				md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2]);
++				md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2 4]);
+ 				md = checkfield(md,'fieldname','damage.maxiter','>=0',0);
+ 				md = checkfield(md,'fieldname','damage.elementinterp','values',{'P1','P2'});
+ 				md = checkfield(md,'fieldname','damage.stress_threshold','>=',0);
+@@ -177,7 +177,7 @@
+ 				fielddisplay(self,'spcdamage','damage constraints (NaN means no constraint)');
+ 				fielddisplay(self,'max_damage','maximum possible damage (0<=max_damage<1)');
+ 				
+-				fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG');
++				fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: flux corrected transport');
+ 				fielddisplay(self,'maxiter','maximum number of non linear iterations');
+ 				fielddisplay(self,'elementinterp','interpolation scheme for finite elements {''P1'',''P2''}');
+ 				fielddisplay(self,'stress_threshold','stress threshold for damage initiation [Pa]');
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19385)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19386)
+@@ -55,7 +55,7 @@
+ 			s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
+ 			s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
+ 
+-			s+="%s\n" % fielddisplay(self,"stabilization","0: no, 1: artificial_diffusivity, 2: SUPG")
++                        s+="%s\n" % fielddisplay(self,"stabilization","0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: Flux corrected transport")
+ 			s+="%s\n" % fielddisplay(self,"maxiter","maximum number of non linear iterations")
+ 			s+="%s\n" %	fielddisplay(self,"elementinterp","interpolation scheme for finite elements [''P1'',''P2'']")
+ 			s+="%s\n" % fielddisplay(self,"stress_threshold","stress threshold for damage initiation [Pa]")
+@@ -125,7 +125,7 @@
+ 			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
+ 			md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3])
+ 			md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1)
+-			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2])
++			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4])
+ 			md = checkfield(md,'fieldname','damage.maxiter','>=0',0)
+ 			md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2'])
+ 			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19386-19387.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19386-19387.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19386-19387.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19386)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19387)
+@@ -172,7 +172,7 @@
+ 
+ 			fielddisplay(self,'isdamage','is damage mechanics being used? {true,false}');
+ 			if self.isdamage,
+-				fielddisplay(self,'law','damage law {''0: no source term'',''1: pralong''}');
++				fielddisplay(self,'law','damage law {''0: analytical'',''1: pralong''}');
+ 				fielddisplay(self,'D','damage tensor (scalar)');
+ 				fielddisplay(self,'spcdamage','damage constraints (NaN means no constraint)');
+ 				fielddisplay(self,'max_damage','maximum possible damage (0<=max_damage<1)');
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19386)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19387)
+@@ -51,7 +51,7 @@
+ 		s+="%s\n" % fielddisplay(self,"isdamage","is damage mechanics being used? [0 (default) or 1]")
+ 		if self.isdamage:
+ 			s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")
+-			s+="%s\n" % fielddisplay(self,"law","damage law ['0: no source term','1: pralong']")
++			s+="%s\n" % fielddisplay(self,"law","damage law ['0: analytical','1: pralong']")
+ 			s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
+ 			s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19387-19388.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19387-19388.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19387-19388.diff	(revision 20498)
@@ -0,0 +1,178 @@
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19387)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19388)
+@@ -129,7 +129,7 @@
+ 	IssmDouble epsf,stress_threshold,eps0;
+ 	IssmDouble damage,B,n,epseff;
+ 	IssmDouble eps_xx,eps_yy,eps_xy,eps1,eps2,epstmp;
+-	int domaintype,damagelaw;
++	int domaintype;
+ 
+ 	/*Fetch number of vertices and allocate output*/
+ 	int numnodes = element->GetNumberOfNodes();
+@@ -139,7 +139,6 @@
+ 	element->FindParam(&epsf,DamageC1Enum);
+ 	element->FindParam(&stress_threshold,DamageStressThresholdEnum);
+ 	element->FindParam(&domaintype,DomainTypeEnum);
+-	element->FindParam(&damagelaw,DamageLawEnum);
+ 
+ 	/*Compute stress tensor: */
+ 	element->ComputeStrainRate();
+@@ -201,7 +200,7 @@
+ 	IssmDouble s_xx,s_xy,s_xz,s_yy,s_yz,s_zz,s1,s2,s3,stmp;
+ 	IssmDouble J2s,Chi,Psi,PosPsi,NegPsi;
+ 	IssmDouble damage,tau_xx,tau_xy,tau_xz,tau_yy,tau_yz,tau_zz,stressMaxPrincipal;
+-	int equivstress,domaintype,damagelaw,dim;
++	int equivstress,domaintype,dim;
+ 
+ 	/*Fetch number of vertices and allocate output*/
+ 	int numnodes = element->GetNumberOfNodes();
+@@ -214,7 +213,6 @@
+ 	element->FindParam(&healing,DamageHealingEnum);
+ 	element->FindParam(&stress_threshold,DamageStressThresholdEnum);
+ 	element->FindParam(&domaintype,DomainTypeEnum);
+-	element->FindParam(&damagelaw,DamageLawEnum);
+ 
+ 	/*Get problem dimension*/
+ 	switch(domaintype){
+@@ -290,16 +288,8 @@
+ 			}
+ 			Psi=Chi-stress_threshold;
+ 			NegPsi=max(-Chi,0.); /* healing only for compressive stresses */
+-
+-			if(damagelaw==1){
+-				PosPsi=max(Psi,0.);
+-				f[i]= c1*(pow(PosPsi,c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+-			}
+-			else if(damagelaw==2){
+-				PosPsi=max(Psi,1.);
+-				f[i]= c1*(pow(log10(PosPsi),c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+-			}
+-			else _error_("damage law not supported");
++			PosPsi=max(Psi,0.);
++			f[i]= c1*(pow(PosPsi,c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+ 		}
+ 		else{
+ 			if(equivstress==1){/* max principal stress */
+@@ -311,15 +301,8 @@
+ 			}
+ 			Psi=Chi-stress_threshold;
+ 			NegPsi=max(-Chi,0.); /* healing only for compressive stresses */
+-			if(damagelaw==1){
+-				PosPsi=max(Psi,0.);
+-				f[i]= c1*(pow(PosPsi,c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+-			}
+-			else if(damagelaw==2){
+-				PosPsi=max(Psi,1.);
+-				f[i]= c1*(pow(log10(PosPsi),c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+-			}
+-			else _error_("damage law not supported");
++			PosPsi=max(Psi,0.);
++			f[i]= c1*(pow(PosPsi,c2) - healing*pow(NegPsi,c2))*pow((1./(1.-damage)),c3);
+ 		}
+ 	}
+ 	/*Add input*/
+@@ -533,9 +516,6 @@
+ 			this->CreateDamageFInputPralong(element);
+ 			break;
+ 		case 2:
+-			this->CreateDamageFInputPralong(element);
+-			break;
+-		case 3:
+ 			this->CreateDamageFInputExp(element);
+ 			break;
+ 		default:
+Index: ../trunk-jpl/src/c/modules/Damagex/Damagex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/Damagex/Damagex.cpp	(revision 0)
++++ ../trunk-jpl/src/c/modules/Damagex/Damagex.cpp	(revision 19388)
+@@ -0,0 +1,29 @@
++/*!\file Damagex
++ * \brief: compute damage
++ */
++
++#include "./Damagex.h"
++#include "../../shared/shared.h"
++#include "../../toolkits/toolkits.h"
++
++void Damagex(FemModel* femmodel){
++
++	/*Recover Damage law Enum*/
++	int damagelaw;
++	femmodel->parameters->FindParam(&damagelaw,DamageLawEnum);
++
++	/*Calculate damage*/
++	switch(damagelaw){
++		case 0:
++			if(VerboseModule()) _printf0_("   computing damage analytically\n");
++			femmodel->ElementOperationx(&Element::ComputeNewDamage);
++			break;
++		case 1:
++		case 2:
++			if(VerboseModule()) _printf0_("   computing damage using source term in advection scheme\n");
++			/* Damage calculated using source term in DamageEvolutionAnalysis */
++			break;
++		default:
++			_error_("Damage law "<<EnumToStringx(damagelaw)<<" not implemented yet");
++	}
++}
+Index: ../trunk-jpl/src/c/modules/Damagex/Damagex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/Damagex/Damagex.h	(revision 0)
++++ ../trunk-jpl/src/c/modules/Damagex/Damagex.h	(revision 19388)
+@@ -0,0 +1,10 @@
++#ifndef _DAMAGEX_H
++#define _DAMGEX_H
++
++#include "../../classes/classes.h"
++#include "../../analyses/analyses.h"
++
++/* local prototypes: */
++void Damagex(FemModel* femmodel);
++
++#endif
+
+Property changes on: ../trunk-jpl/src/c/modules/Damagex
+___________________________________________________________________
+Added: svn:ignore
+   + *.deps
+*.dirstamp
+
+
+Index: ../trunk-jpl/src/c/modules/modules.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/modules.h	(revision 19387)
++++ ../trunk-jpl/src/c/modules/modules.h	(revision 19388)
+@@ -19,6 +19,7 @@
+ #include "./ControlInputSetGradientx/ControlInputSetGradientx.h"
+ #include "./CreateNodalConstraintsx/CreateNodalConstraintsx.h"
+ #include "./CreateJacobianMatrixx/CreateJacobianMatrixx.h"
++#include "./Damagex/Damagex.h"
+ #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
+ #include "./ExpToLevelSetx/ExpToLevelSetx.h"
+ #include "./ElementConnectivityx/ElementConnectivityx.h"
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19387)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19388)
+@@ -366,6 +366,7 @@
+ endif
+ if DAMAGEEVOLUTION
+ issm_sources += ./analyses/DamageEvolutionAnalysis.cpp
++issm_sources += ./modules/Damagex/Damagex.cpp
+ endif
+ if STRESSBALANCE
+ issm_sources += ./analyses/StressbalanceAnalysis.cpp
+Index: ../trunk-jpl/src/c/cores/damage_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19387)
++++ ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19388)
+@@ -27,6 +27,7 @@
+ 	femmodel->parameters->FindParam(&stabilization,DamageStabilizationEnum);
+ 
+ 	if(VerboseSolution()) _printf0_("   computing damage\n");
++	Damagex(femmodel); /* optionally calculate damage analytically first */
+ 	femmodel->SetCurrentConfiguration(DamageEvolutionAnalysisEnum);
+ 	if(stabilization==4){
+ 		solutionsequence_fct(femmodel);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19388-19389.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19388-19389.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19388-19389.diff	(revision 20498)
@@ -0,0 +1,51 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh	(revision 19389)
+@@ -0,0 +1,40 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.5.3 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.5.3.tar.gz
++mv petsc-3.5.3/* src/
++rm -rf petsc-3.5.3
++
++export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
++export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
++
++#configure
++cd src
++./config/configure.py  \
++	--prefix=$PREFIX_DIR \
++	--PETSC_ARCH=cygwin-intel \
++	--PETSC_DIR=$PETSC_DIR \
++	--with-mpi-dir="/cygdrive/c/Programs/MPICH2/"\
++	--with-debugging=1 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--download-f2cblaslapack=yes \
++	--with-cc='win32fe cl' \
++	--with-fc=0 \
++	--with-cxx='win32fe cl' \
++	--with-clanguage=cxx 
++
++#Compile petsc and install it
++make
++make install
++
++patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19389-19390.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19389-19390.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19389-19390.diff	(revision 20498)
@@ -0,0 +1,73 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19389)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19390)
+@@ -203,6 +203,16 @@
+ 			export RANLIB=true
+ 			IS_WINDOWS=yes
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
++		elif  test $VENDOR = MSVC-Win64-par; then
++			export CC=cl
++			export CXX=cccl
++			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
++			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
++			export AR="ar-lib lib"
++			export OS_LDFLAG="-Wl,"
++			export RANLIB=true
++			IS_WINDOWS=yes
++			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif test $VENDOR = intel-linux; then
+ 			export CC=icc
+ 			export CXX=icpc
+Index: ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh	(revision 19389)
++++ ../trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh	(revision 19390)
+@@ -16,6 +16,7 @@
+ # libraries. If you wish to use 8.0 or 8.1 then you need to provide the 
+ # directory of 'Windows Kits' instead.
+ export WIN_SDK_DIR='C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\'
++export MPI_DIR='C:\Programs\MPICH2'
+ 
+ # Unfotunately, standard installation directories of Matlab usually include 
+ # white spaces that are not handled correctly by the command interpreter. As
+@@ -36,4 +37,5 @@
+ export LIBPATH="${LIBPATH}${MSVC_DIR}lib\\amd64;${MSVC_DIR}bin\\amd64;${WIN_SDK_DIR}Lib\\x64;"
+ 
+ export MSVC_DIR_UNIX=`cygpath -u "${MSVC_DIR}"`
+-export PATH="${MSVC_DIR_UNIX}/bin/amd64:$PATH"
++export MPI_DIR_UNIX=`cygpath -u "${MPI_DIR}"`
++export PATH="${MSVC_DIR_UNIX}/bin/amd64:${MPI_DIR_UNIX}/bin:$PATH"
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19389)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19390)
+@@ -38,6 +38,11 @@
+ 		value = 1.;
+ 		#endif
+ 	}
++	if(strcmp(name,"_HAVE_PETSC_MPI_")==0){
++		#ifdef _HAVE_PETSC_MPI_
++		value = 1.;
++		#endif
++	}
+ 	else if(strcmp(name,"_HAVE_DAKOTA_")==0){
+ 		#ifdef _HAVE_DAKOTA_
+ 		value = 1.;
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19389)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19390)
+@@ -143,8 +143,10 @@
+ 				fid=fopen([modelname '.bat'],'w');
+ 				fprintf(fid,'@echo off\n');
+ 
+-				warning('parallel runs not allowed yet in Windows. Defaulting to 1 cpus');
+-				cluster.np=1;
++				if IssmConfig('_HAVE_PETSC_MPI_'),
++					warning('parallel runs not allowed yet in Windows. Defaulting to 1 cpus');
++					cluster.np=1;
++				end
+ 
+ 				if cluster.np>1,
+ 					fprintf(fid,'"C:\\Program Files\\MPICH2\\bin\\mpiexec.exe" -n %i "%s/issm.exe" %s ./ %s ',cluster.np,cluster.codepath,EnumToString(solution),modelname);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19390-19391.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19390-19391.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19390-19391.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19390)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19391)
+@@ -38,7 +38,7 @@
+ 		value = 1.;
+ 		#endif
+ 	}
+-	if(strcmp(name,"_HAVE_PETSC_MPI_")==0){
++	else if(strcmp(name,"_HAVE_PETSC_MPI_")==0){
+ 		#ifdef _HAVE_PETSC_MPI_
+ 		value = 1.;
+ 		#endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19391-19392.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19391-19392.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19391-19392.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 19391)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 19392)
+@@ -669,8 +669,10 @@
+ 		if not numpy.isnan(md.inversion.vy_obs).all(): md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.mesh.numberoflayers) 
+ 		if not numpy.isnan(md.inversion.vel_obs).all(): md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.mesh.numberoflayers) 
+ 		if not numpy.isnan(md.inversion.cost_functions_coefficients).all(): md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers) 
+-		if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers) 
+-		if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers) 
++                if isinstance(md.inversion.min_parameters,numpy.ndarray):
++                    if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers) 
++                if isinstance(md.inversion.max_parameters,numpy.ndarray):
++		    if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers) 
+ 		if not numpy.isnan(md.surfaceforcings.mass_balance).all():
+ 			md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers) 
+ 		
+@@ -702,11 +704,11 @@
+ 
+                 # Hydrologydc variables
+                 if hasattr(md.hydrology,'hydrologydc'):
+-                        md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
+-                        md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
+-                        md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
+-                        md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
+-                if md.hydrology.isefficientlayer == 1:
++                    md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
++                    md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
++                    md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
++                    md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
++                    if md.hydrology.isefficientlayer == 1:
+                         md.hydrology.spcepl_head=project2d(md,md.hydrology.spcepl_head,1)
+ 
+ 		#boundary conditions
+@@ -743,13 +745,16 @@
+ 		md.geometry.surface=project2d(md,md.geometry.surface,1)
+ 		md.geometry.thickness=project2d(md,md.geometry.thickness,1)
+ 		md.geometry.base=project2d(md,md.geometry.base,1)
+-		md.geometry.bed=project2d(md,md.geometry.bed,1)
++                if isinstance(md.geometry.bed,numpy.ndarray):
++                    md.geometry.bed=project2d(md,md.geometry.bed,1)
+ 		md.mask.groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1)
+ 		md.mask.ice_levelset=project2d(md,md.mask.ice_levelset,1)
+ 
+ 		#lat long
+-		if md.mesh.lat.size==md.mesh.numberofvertices:  md.mesh.lat=project2d(md,md.mesh.lat,1) 
+-		if md.mesh.long.size==md.mesh.numberofvertices: md.mesh.long=project2d(md,md.mesh.long,1) 
++                if isinstance(md.mesh.lat,numpy.ndarray):
++                    if md.mesh.lat.size==md.mesh.numberofvertices:  md.mesh.lat=project2d(md,md.mesh.lat,1) 
++                if isinstance(md.mesh.long,numpy.ndarray):
++		    if md.mesh.long.size==md.mesh.numberofvertices: md.mesh.long=project2d(md,md.mesh.long,1) 
+ 
+ 		#Initialize with the 2d mesh
+ 		mesh=mesh2d()
Index: /issm/oecreview/Archive/19101-20495/ISSM-19392-19393.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19392-19393.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19392-19393.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/test/NightlyRun/test272.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test272.py	(revision 19392)
++++ ../trunk-jpl/test/NightlyRun/test272.py	(revision 19393)
+@@ -1,4 +1,4 @@
+-#Test Name: SquareShelfCMZSSA2dDamage
++#Test Name: SquareShelfCMDSSA2dDamage
+ import numpy
+ from model import model
+ from triangle import triangle
+Index: ../trunk-jpl/test/NightlyRun/test272.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test272.m	(revision 19392)
++++ ../trunk-jpl/test/NightlyRun/test272.m	(revision 19393)
+@@ -1,4 +1,4 @@
+-%Test Name: SquareShelfCMZSSA2dDamage
++%Test Name: SquareShelfCMDSSA2dDamage
+ md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'all','');
+ md.materials=matdamageice();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19393-19394.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19393-19394.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19393-19394.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19393)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 19394)
+@@ -10,8 +10,19 @@
+ 	int finiteelement;
+ 	iomodel->Constant(&finiteelement,DamageElementinterpEnum);
+ 
+-	IoModelToConstraintsx(constraints,iomodel,DamageSpcdamageEnum,DamageEvolutionAnalysisEnum,finiteelement);
++	/*Fetch parameters: */
++	int stabilization;
++	iomodel->Constant(&stabilization,DamageStabilizationEnum);
+ 
++	/*Do not add constraints in DG,  they are weakly imposed*/
++	if(stabilization!=3){
++		IoModelToConstraintsx(constraints,iomodel,DamageSpcdamageEnum,DamageEvolutionAnalysisEnum,finiteelement);
++	}
++
++	/*FCT, constraints are imposed using penalties*/
++	if(stabilization==4){
++		constraints->ActivatePenaltyMethod(DamageEvolutionAnalysisEnum);
++	}
+ }/*}}}*/
+ void DamageEvolutionAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19394-19395.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19394-19395.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19394-19395.diff	(revision 20498)
@@ -0,0 +1,86 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19395)
+@@ -120,6 +120,7 @@
+ 		bool               IsIceInElement();
+ 		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
++		void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
+ 		ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+@@ -226,7 +227,7 @@
+ 		virtual void       JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss)=0;
+ 		virtual void       JacobianDeterminantSurface(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss)=0;
+ 		virtual void       JacobianDeterminantTop(IssmDouble* Jdet,IssmDouble* xyz_list_base,Gauss* gauss)=0;
+-		virtual void       Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
++		virtual void       Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction)=0;
+ 		virtual IssmDouble Masscon(IssmDouble* levelset)=0;
+ 		virtual IssmDouble MassFlux(IssmDouble* segment)=0;
+ 		virtual IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19395)
+@@ -119,7 +119,7 @@
+ 	
+ 	/*Call parent classes: */
+ 	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	Element::MarshallElement(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
+ 	TriaRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	vertices = (Vertex**)this->hvertices->deliverp();
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19395)
+@@ -128,7 +128,7 @@
+ 
+ 	/*Call parent classes: */
+ 	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	Element::MarshallElement(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
+ 	PentaRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	vertices = (Vertex**)this->hvertices->deliverp();
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.cpp	(revision 19395)
+@@ -112,7 +112,7 @@
+ 
+ 	/*Call parent classes: */
+ 	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	Element::MarshallElement(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
+ 	SegRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	vertices = (Vertex**)this->hvertices->deliverp();
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 19395)
+@@ -108,7 +108,7 @@
+ 
+ 	/*Call parent classes: */
+ 	ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+-	Element::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
++	Element::MarshallElement(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
+ 	TetraRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 
+ 	vertices = (Vertex**)this->hvertices->deliverp();
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19394)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19395)
+@@ -1539,7 +1539,7 @@
+ 	xDelete<IssmDouble>(values);
+ 
+ }/*}}}*/
+-void       Element::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses){/*{{{*/
++void       Element::MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses){/*{{{*/
+ 	
+ 	_assert_(this);
+ 	if(marshall_direction==MARSHALLING_BACKWARD){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19395-19396.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19395-19396.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19395-19396.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19395)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19396)
+@@ -129,7 +129,9 @@
+ libISSMMatlab_la_LDFLAGS = -static 
+ endif
+ 
++if !WINDOWS
+ libISSMApi_la_LIBADD = $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) $(MEXLIB)
++endif
+ 
+ if STANDALONE_LIBRARIES
+ libISSMApi_la_LDFLAGS = -static 
+@@ -230,7 +232,7 @@
+ PropagateFlagsFromConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+ 
+ Scotch_la_SOURCES = ../Scotch/Scotch.cpp
+-Scotch_la_LIBADD = ${deps} $(SCOTCHLIB) $(MPILIB) $(BLASLAPACKLIB)
++Scotch_la_LIBADD = ${deps} $(SCOTCHLIB) $(MPILIB) $(PETSCLIB) $(BLASLAPACKLIB)
+ 
+ ShpRead_la_SOURCES = ../ShpRead/ShpRead.cpp
+ ShpRead_la_LIBADD = ${deps} $(SHAPELIBLIB) $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19396-19397.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19396-19397.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19396-19397.diff	(revision 20498)
@@ -0,0 +1,128 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19396)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19397)
+@@ -292,7 +292,7 @@
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
+-  				elif test $VENDOR = MSVC-Win64; then
++  				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
+ 					MEXEXT=".mexw64"
+@@ -914,7 +914,7 @@
+ 		elif test x$VENDOR = xintel-win7-64; then
+ 			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
+ 			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
+-		elif test x$VENDOR = xMSVC-Win64; then
++		elif test x$VENDOR = xMSVC-Win64 || test x$VENDOR = xMSVC-Win64-par; then
+ 			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
+ 			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
+ 		fi
+@@ -1025,7 +1025,7 @@
+ 	fi
+ 	dnl }}}
+ 	dnl metis{{{
+-	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3 && test "x$VENDOR" != "xMSVC-Win64"; then
++	if test "$HAVE_PETSC" = "yes" && test "x$PETSC_MAJOR" = "x3" && test $PETSC_MINOR -ge 3 && test "x$VENDOR" != "xMSVC-Win64" && test "x$VENDOR" != "xMSVC-Win64-par"; then
+ 		dnl in petsc >=3.3, metis is provided
+ 		HAVE_METIS="yes"
+ 		AC_DEFINE([_METIS_VERSION_],[5],[ Metis version number])
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 0)
++++ ../trunk-jpl/jenkins/windows-par	(revision 19397)
+@@ -0,0 +1,86 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--with-vendor=MSVC-Win64  \
++   --disable-static \
++	--enable-standalone-libraries \
++	--with-fortran=no  \
++	--without-Gia \
++	--without-kriging \
++	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
++	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
++	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
++	--with-mpi-include="C:/Programs/MPICH2/include" \
++	--with-mpi-libflags="-Wl,mpi.lib -Wl,-L/cygdrive/c/Programs/MPICH2/lib" \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="C:/MATLAB/R2013a/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="cccl        install-win7.sh
++						autotools   install-win.sh
++						cmake       install.sh                
++						petsc       install-3.5-win-par.sh
++						metis       install-4.0-win7.sh
++						triangle    install-win7.sh        
++						matlab      install.sh
++						shell2junit install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=1
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++
++#In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/windows-par
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19397-19398.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19397-19398.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19397-19398.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh	(revision 19397)
++++ ../trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh	(revision 19398)
+@@ -22,7 +22,7 @@
+ 	--prefix=$PREFIX_DIR \
+ 	--PETSC_ARCH=cygwin-intel \
+ 	--PETSC_DIR=$PETSC_DIR \
+-	--with-mpi-dir="/cygdrive/c/Programs/MPICH2/"\
++	--with-mpi-dir="/cygdrive/c/Program\ Files/MPICH2/"\
+ 	--with-debugging=1 \
+ 	--with-valgrind=0 \
+ 	--with-x=0 \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19398-19399.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19398-19399.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19398-19399.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/c/modules/Damagex/Damagex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/Damagex/Damagex.h	(revision 19398)
++++ ../trunk-jpl/src/c/modules/Damagex/Damagex.h	(revision 19399)
+@@ -1,5 +1,5 @@
+ #ifndef _DAMAGEX_H
+-#define _DAMGEX_H
++#define _DAMAGEX_H
+ 
+ #include "../../classes/classes.h"
+ #include "../../analyses/analyses.h"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19399-19400.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19399-19400.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19399-19400.diff	(revision 20498)
@@ -0,0 +1,45 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh	(revision 19400)
+@@ -0,0 +1,34 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.0.tar.gz
++mv petsc-3.6.0/* src/
++rm -rf petsc-3.6.0
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-mpi-dir="$ISSM_DIR/externalpackages/mpich/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-shared-libraries=1 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1
++
++#Compile and intall
++make
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19400-19401.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19400-19401.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19400-19401.diff	(revision 20498)
@@ -0,0 +1,47 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh	(revision 19401)
+@@ -0,0 +1,36 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.0.tar.gz
++mv petsc-3.6.0/* src/
++rm -rf petsc-3.6.0
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-mpi-dir="$ISSM_DIR/externalpackages/mpich/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-shared-libraries=1 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1 \
++	--download-fblaslapack=1 \
++	--with-pic=1
++
++#Compile and intall
++make
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19401-19402.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19401-19402.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19401-19402.diff	(revision 20498)
@@ -0,0 +1,68 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 19402)
+@@ -0,0 +1,57 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.0.tar.gz
++mv petsc-3.6.0/* src/
++rm -rf petsc-3.6.0
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-blas-lapack-dir="/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/" \
++	--with-mpi-lib="/nasa/sgi/mpt/2.12r16/lib/libmpi.so" \
++	--with-mpi-include="/nasa/sgi/mpt/2.12r16/include" \
++	--known-mpi-shared-libraries=1 \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-batch=1  \
++	--with-shared-libraries=1 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1 \
++	--download-fblaslapack=1
++
++#prepare script to reconfigure petsc
++cat > script.queue << EOF
++#PBS -S /bin/bash
++#PBS -l select=1:ncpus=1:model=wes 
++#PBS -l walltime=200 
++#PBS -W group_list=s1010
++#PBS -m e 
++
++. /usr/share/modules/init/bash 
++module load comp-intel/2015.0.090
++module load mpi-sgi/mpt.2.12r16
++
++export PATH="$PATH:." 
++export MPI_GROUP_MAX=64 
++mpiexec -np 1 ./conftest-arch-linux2-c-opt
++EOF
++
++#print instructions
++echo "== Now: cd src/ "
++echo "== qsub -q devel script.queue "
++echo "== Then run reconfigure script generated by PETSc and follow instructions"
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19402-19403.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19402-19403.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19402-19403.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 19402)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 19403)
+@@ -18,8 +18,9 @@
+ ./config/configure.py \
+ 	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-cc=icc --with-cxx=icpc --with-fc=ifort --with-f77=ifort \
+ 	--with-blas-lapack-dir="/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/" \
+-	--with-mpi-lib="/nasa/sgi/mpt/2.12r16/lib/libmpi.so" \
++	--with-mpi-lib="/nasa/sgi/mpt/2.12r16/lib/" \
+ 	--with-mpi-include="/nasa/sgi/mpt/2.12r16/include" \
+ 	--known-mpi-shared-libraries=1 \
+ 	--with-debugging=0 \
+@@ -31,8 +32,7 @@
+ 	--download-metis=1 \
+ 	--download-parmetis=1 \
+ 	--download-mumps=1 \
+-	--download-scalapack=1 \
+-	--download-fblaslapack=1
++	--download-scalapack=1 
+ 
+ #prepare script to reconfigure petsc
+ cat > script.queue << EOF
Index: /issm/oecreview/Archive/19101-20495/ISSM-19403-19404.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19403-19404.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19403-19404.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 19403)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 19404)
+@@ -20,7 +20,7 @@
+ 	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+ 	--with-cc=icc --with-cxx=icpc --with-fc=ifort --with-f77=ifort \
+ 	--with-blas-lapack-dir="/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/" \
+-	--with-mpi-lib="/nasa/sgi/mpt/2.12r16/lib/" \
++	--with-mpi-lib="/nasa/sgi/mpt/2.12r16/lib/libmpi.so" \
+ 	--with-mpi-include="/nasa/sgi/mpt/2.12r16/include" \
+ 	--known-mpi-shared-libraries=1 \
+ 	--with-debugging=0 \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19404-19405.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19404-19405.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19404-19405.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/m/classes/plotoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.m	(revision 19404)
++++ ../trunk-jpl/src/m/classes/plotoptions.m	(revision 19405)
+@@ -128,10 +128,10 @@
+ 						 elseif ismember('-',plotnum)
+ 							 nums=strsplit_strict(plotnum,'-');
+ 							 if length(nums)~=2, continue; end
+-							 if ~isnumeric(nums)
++							 if isempty(str2num(nums{1}))|isempty(str2num(nums{2}))
+ 								 error(['the option #i-j is not set properly for ' field]);
+ 							 end
+-							 for j=nums(1):nums(2),
++							 for j=str2num(nums{1}):str2num(nums{2}),
+ 								 opt.list{j}=addfield(opt.list{j},field,rawlist{i,2});
+ 							 end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19407-19408.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19407-19408.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19407-19408.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/netCDF/read_netCDF.py	(revision 19408)
+@@ -0,0 +1,25 @@
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++
++def netCDFRead(filename):
++	
++	def walktree(data):
++		keys = data.groups.keys()
++		yield keys
++		for key in keys:
++			for children in walktree(data.groups[str(key)]):
++				yield children
++				
++	if path.exists(filename):
++		print ('Opening {} for reading '.format(filename))
++		NCData=Dataset(filename, 'r')
++		class_dict={}
++		
++		for children in walktree(NCData):
++			for child in children:
++				class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype')+'()')
++
++		print class_dict
++				
Index: /issm/oecreview/Archive/19101-20495/ISSM-19408-19409.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19408-19409.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19408-19409.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.pfe.patch	(revision 19408)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.pfe.patch	(revision 19409)
+@@ -2,5 +2,5 @@
+ < # TODO: Can't this be integrated into the following logic?
+ ---
+ > # TODO: Can't this be integrated into the following logic?
+-> set(BLAS_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
+-> set(LAPACK_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
++> set(BLAS_LIBS "-L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm")
++> set(LAPACK_LIBS "-L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm")
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch	(revision 19408)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch	(revision 19409)
+@@ -12,7 +12,7 @@
+ < #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+ ---
+ > set(BOOST_ROOT
+->     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     "/nasa/boost/1.50.0"
+ >     CACHE PATH "Use non-standard Boost install" FORCE)
+ > set( Boost_NO_SYSTEM_PATHS TRUE
+ >      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19409-19410.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19409-19410.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19409-19410.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh	(revision 19410)
+@@ -0,0 +1,35 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python3.2 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++./bjam install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19409)
++++ ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19410)
+@@ -28,7 +28,7 @@
+ 	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
+ 
+ #Compile boost
+-./bjam install
++./bjam link=static install
+ 
+ #put bjam into install also: 
+ mkdir ../install/bin
Index: /issm/oecreview/Archive/19101-20495/ISSM-19410-19411.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19410-19411.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19410-19411.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64.sh	(revision 19410)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64.sh	(revision 19411)
+@@ -24,6 +24,7 @@
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
++#patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.patch
+ 
+ #Apply patches
+ patch src/src/ParallelLibrary.cpp configs/5.3.1/ParallelLibrary.cpp.patch
Index: /issm/oecreview/Archive/19101-20495/ISSM-19411-19412.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19411-19412.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19411-19412.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-macosx-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-macosx-yosemite.sh	(revision 19412)
+@@ -0,0 +1,46 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++python2.7 $ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++patch src/boost/atomic/detail/cas128strong.hpp ./configs/1.55/cas128strong.hpp.patch
++patch src/boost/atomic/detail/gcc-atomic.hpp ./configs/1.55/gcc-atomic.hpp.patch
++patch src/tools/build/v2/user-config.jam ./configs/1.55/user-config.jam.patch
++patch src/tools/build/v2/tools/darwin.jam ./configs/1.55/darwin.jam.patch
++patch src/tools/build/v2/tools/darwin.py ./configs/1.55/darwin.py.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python 
++
++#Compile boost
++# Need gcc with iconv installed in a location that has been added to your path
++#./bjam toolset=darwin-std0x link=static install
++
++export CC=/usr/local/gfortan/bin/gcc 
++export CXX=/usr/local/gfortran/bin/g++
++./b2 toolset=clang cxxflags=-stdlib=libstdc++ linkflags=-stdlib=libstdc++ -j2 architecture=x86 variant=release link=static threading=multi install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19412-19413.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19412-19413.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19412-19413.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-yosemite-dakota.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-yosemite-dakota.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-yosemite-dakota.sh	(revision 19413)
+@@ -0,0 +1,33 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src install mpich-3.0.4
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
++
++#Untar 
++tar -zxvf  mpich-3.0.4.tar.gz
++
++#Move mpich into src directory
++mv mpich-3.0.4/* src
++rm -rf mpich-3.0.4
++
++#Configure mpich
++cd src
++./configure \
++	CC=/usr/local/gfortran/bin/gcc CXX=/usr/local/gfortran/bin/g++ \
++	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
++	--enable-shared
++
++	#CC=llvm-gcc \
++
++#Compile mpich (this new version supports parallel make)
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install 
+
+Property changes on: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-yosemite-dakota.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19413-19414.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19413-19414.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19413-19414.diff	(revision 20498)
@@ -0,0 +1,62 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-macosx64-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-macosx64-yosemite.sh	(revision 19414)
+@@ -0,0 +1,51 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-5.3.1-public-src.tar.gz' 'dakota-5.3.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-5.3.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-5.3.1.src/* src
++rm -rf dakota-5.3.1.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/5.3.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/5.3.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/5.3.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/5.3.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/5.3.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -D CMAKE_C_COMPILER=/usr/local/gfortran/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gfortran/bin/g++ -D CMAKE_Fortran_COMPILER=/usr/local/gfortran/bin/gfortran -D LDFLAGS="-std=gnu++0x" -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-5.3.1-macosx64-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19414-19415.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19414-19415.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19414-19415.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/configs/config-macosx64-dakota.sh
+===================================================================
+--- ../trunk-jpl/configs/config-macosx64-dakota.sh	(revision 0)
++++ ../trunk-jpl/configs/config-macosx64-dakota.sh	(revision 19415)
+@@ -0,0 +1,29 @@
++#!/bin/sh
++
++#petsc 3.6
++#mpich 3.0 yosemite
++#boost 1.55 yosemite
++#dakota 5.3.1 yosemite
++export F77='/usr/local/gfortran/bin/gfortran'
++export CC=/usr/local/gfortran/bin/gcc
++export CXX=/usr/local/gfortran/bin/g++
++
++./configure \
++   --prefix=$ISSM_DIR \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags=" $ISSM_DIR/externalpackages/mpich/install/lib/libpmpich.a $ISSM_DIR/externalpackages/mpich/install/lib/libmpich.a $ISSM_DIR/externalpackages/mpich/install/lib/libmpl.a " \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-fortran-lib="/usr/local/gfortran/lib/gcc/x86_64-apple-darwin14/4.9.2/libgfortranbegin.a" \
++	--with-cxxoptflags="-w -fno-common -fexceptions -arch x86_64 -O3 -w "\
++	--with-math-lib="/usr/lib/libm.dylib" \
++	--with-numthreads=8
++
+
+Property changes on: ../trunk-jpl/configs/config-macosx64-dakota.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19415-19416.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19415-19416.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19415-19416.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19415)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19416)
+@@ -10,6 +10,7 @@
+ 		 % {{{
+ 		 name           = 'pfe'
+ 		 login          = '';
++		 modules        = {'comp-intel/2015.0.090' 'mpi-sgi/mpt.2.12r16'};
+ 		 numnodes       = 20;
+ 		 cpuspernode    = 8;
+ 		 port           = 1025;
+@@ -43,6 +44,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
++			 disp(sprintf('    modules: %s',cluster.modules));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -128,8 +130,9 @@
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+-			 fprintf(fid,'module load comp-intel/2015.0.090\n');
+-			 fprintf(fid,'module load mpi-sgi/mpt.2.11r13\n');
++			 for i=1:numel(cluster.modules),
++				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
++			 end
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+@@ -182,8 +185,9 @@
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+-			 fprintf(fid,'module load comp-intel/2015.0.090\n');
+-			 fprintf(fid,'module load mpi-sgi/mpt.2.11r13\n');
++			 for i=1:numel(cluster.modules),
++				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
++			 end
+ 			 fprintf(fid,'export PATH="$PATH:."\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
Index: /issm/oecreview/Archive/19101-20495/ISSM-19416-19417.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19416-19417.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19416-19417.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/configs/config-macosx64-dakota.sh
+===================================================================
+--- ../trunk-jpl/configs/config-macosx64-dakota.sh	(revision 19416)
++++ ../trunk-jpl/configs/config-macosx64-dakota.sh	(revision 19417)
+@@ -22,8 +22,5 @@
+ 	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-fortran-lib="/usr/local/gfortran/lib/gcc/x86_64-apple-darwin14/4.9.2/libgfortranbegin.a" \
+-	--with-cxxoptflags="-w -fno-common -fexceptions -arch x86_64 -O3 -w "\
+-	--with-math-lib="/usr/lib/libm.dylib" \
+ 	--with-numthreads=8
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19417-19418.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19417-19418.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19417-19418.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch	(revision 19418)
+@@ -0,0 +1,26 @@
++64,65c64,65
++< #set( DAKOTA_HAVE MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-pleiades.sh	(revision 19417)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-pleiades.sh	(revision 19418)
+@@ -22,7 +22,7 @@
+ export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.pfe.patch
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19418-19419.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19418-19419.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19418-19419.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch	(revision 19418)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch	(revision 19419)
+@@ -12,7 +12,7 @@
+ < #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+ ---
+ > set(BOOST_ROOT
+->     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     "/nasa/boost/1.50.0"
+ >     CACHE PATH "Use non-standard Boost install" FORCE)
+ > set( Boost_NO_SYSTEM_PATHS TRUE
+ >      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch	(revision 19418)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch	(revision 19419)
+@@ -12,7 +12,7 @@
+ < #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+ ---
+ > set(BOOST_ROOT
+->     "/nasa/boost/1.50.0"
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
+ >     CACHE PATH "Use non-standard Boost install" FORCE)
+ > set( Boost_NO_SYSTEM_PATHS TRUE
+ >      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19419-19420.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19419-19420.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19419-19420.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19419)
++++ ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19420)
+@@ -28,7 +28,7 @@
+ 	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
+ 
+ #Compile boost
+-./bjam link=static install
++./bjam install
+ 
+ #put bjam into install also: 
+ mkdir ../install/bin
Index: /issm/oecreview/Archive/19101-20495/ISSM-19420-19421.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19420-19421.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19420-19421.diff	(revision 20498)
@@ -0,0 +1,87 @@
+Index: ../trunk-jpl/src/m/exp/expwrite.py
+===================================================================
+--- ../trunk-jpl/src/m/exp/expwrite.py	(revision 19420)
++++ ../trunk-jpl/src/m/exp/expwrite.py	(revision 19421)
+@@ -2,9 +2,9 @@
+ 
+ def expwrite(contours,filename):
+ 	"""
+-	EXPWRITE - write an Argus file from a structure given in input
++	EXPWRITE - write an Argus file from a dictionary given in input
+ 
+-	   This routine writes an Argus file from a list of dict's containing the fields:
++	   This routine writes an Argus file from a dict containing the fields:
+ 	   x and y of the coordinates of the points.
+ 	   The first argument is the list containing the points coordinates 
+ 	   and the second one the file to be written.
+@@ -19,25 +19,28 @@
+ 	"""
+ 
+ 	fid=open(filename,'w')
+-	for contour in contours:
+-		if numpy.size(contour['x'])!=numpy.size(contour['y']):
++	for x,y in zip(contours['x'],contours['y']):
++		#if numpy.size(contour['x'])!=numpy.size(contour['y']):
++		if len(x)!=len(y):
+ 			raise RuntimeError("contours x and y coordinates must be of identical size")
+-   
+-		if 'name' in contour:
++		if 'name' in contours:
+ 			fid.write("%s%s\n" % ('## Name:',contour['name']))
+ 		else:
+ 			fid.write("%s%s\n" % ('## Name:',filename))
+    
+-		#Add density if it's not there
+-		if 'density' not in contour:
+-			contour['density']=1
++		#Add density if it's not there FIXME what is this ever used for?
++		#if 'density' not in contours:
++		#	contours['density']=1
++		density=1
+ 
+ 		fid.write("%s\n" % '## Icon:0')
+ 		fid.write("%s\n" % '# Points Count Value')
+-		fid.write("%i %f\n" % (numpy.size(contour['x']),contour['density']))
++		#fid.write("%i %f\n" % (numpy.size(contour['x']),contour['density']))
++		fid.write("%i %f\n" % (numpy.size(x),density))
+ 		fid.write("%s\n" % '# X pos Y pos')
+-		for x,y in zip(contour['x'],contour['y']):
+-			fid.write("%10.10f %10.10f\n" % (x,y))
++		#for x,y in zip(contour['x'],contour['y']):
++		for xi,yi in zip(x,y):
++			fid.write("%10.10f %10.10f\n" % (xi,yi))
+ 		fid.write("\n")
+ 
+ 	fid.close()
+Index: ../trunk-jpl/src/m/exp/expdisp.py
+===================================================================
+--- ../trunk-jpl/src/m/exp/expdisp.py	(revision 0)
++++ ../trunk-jpl/src/m/exp/expdisp.py	(revision 19421)
+@@ -0,0 +1,27 @@
++from expread import expread
++import numpy as npy
++
++def expdisp(domainoutline,ax,linestyle='--k',linewidth=1,unitmultiplier=1.):
++    '''
++    plot the contents of a domain outline file
++
++    This routine reads in a domain outline file and plots all of the x,y contours
++
++    'ax' is a handle to the current plot axes, onto which the contours are to be drawn
++
++    Usage:
++        expdisp(domainoutline,ax)
++
++    Example:
++        expdisp('domain.exp',plt.gca(),linestyle='--k',linewidth=2,unitmultiplier=1.e3)
++    '''
++
++    domain=expread(domainoutline)
++
++    for i in xrange(len(domain)):
++        if domain[i]['nods']==1:
++            ax.plot(domain[i]['x']*unitmultiplier,domain[i]['y']*unitmultiplier,'o',mec='k',mfc='r',ms=10)
++        else:
++            x=domain[i]['x'].tolist() # since expread returns a string representation of the arrays
++            y=domain[i]['y'].tolist()
++            ax.plot(x*unitmultiplier,y*unitmultiplier,linestyle,linewidth=linewidth)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19421-19422.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19421-19422.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19421-19422.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/m/shp/shp2exp.py
+===================================================================
+--- ../trunk-jpl/src/m/shp/shp2exp.py	(revision 19421)
++++ ../trunk-jpl/src/m/shp/shp2exp.py	(revision 19422)
+@@ -32,24 +32,21 @@
+ 	for i in range(len(shp.shapes())):
+ 		geom=shp.shapes()[i].shapeType
+ 		if geom==5: # polygon
+-			x=[p[0] for p in shp.shapes()[i].points]
+-			y=[q[1] for q in shp.shapes()[i].points]
+-			expdict['x']=x
+-			expdict['y']=y
+-			expdict['nods']=len(x)
++			tmpx=[p[0] for p in shp.shapes()[i].points]
++			tmpy=[q[1] for q in shp.shapes()[i].points]
++                        #x.extend(tmpx)
++                        #y.extend(tmpy)
++                        x.append(tmpx)
++                        y.append(tmpy)
+ 		elif geom==3: # line
+ 			x=[p[0] for p in shp.shapes()[i].points]
+ 			y=[q[1] for q in shp.shapes()[i].points]
+ 			x.append(x[0])
+ 			y.append(y[0])
+-			expdict['x']=x
+-			expdict['y']=y
+-			expdict['nods']=len(x)
+ 		elif geom==1: # point
+ 			x.append(shp.shapes()[i].points[0][0])
+ 			y.append(shp.shapes()[i].points[0][1])
+-			expdict['x']=x
+-			expdict['y']=y
+-			expdict['nods']=len(x)
+ 
+-	expwrite([expdict],expfile)
++	expdict['x']=x
++	expdict['y']=y
++	expwrite(expdict,expfile)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19422-19423.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19422-19423.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19422-19423.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/shp/shp2exp.py
+===================================================================
+--- ../trunk-jpl/src/m/shp/shp2exp.py	(revision 19422)
++++ ../trunk-jpl/src/m/shp/shp2exp.py	(revision 19423)
+@@ -34,15 +34,13 @@
+ 		if geom==5: # polygon
+ 			tmpx=[p[0] for p in shp.shapes()[i].points]
+ 			tmpy=[q[1] for q in shp.shapes()[i].points]
+-                        #x.extend(tmpx)
+-                        #y.extend(tmpy)
+-                        x.append(tmpx)
+-                        y.append(tmpy)
++			x.append(tmpx)
++			y.append(tmpy)
+ 		elif geom==3: # line
+-			x=[p[0] for p in shp.shapes()[i].points]
+-			y=[q[1] for q in shp.shapes()[i].points]
+-			x.append(x[0])
+-			y.append(y[0])
++			tmpx=[p[0] for p in shp.shapes()[i].points]
++			tmpy=[q[1] for q in shp.shapes()[i].points]
++			x.append(tmpx)
++			y.append(tmpy)
+ 		elif geom==1: # point
+ 			x.append(shp.shapes()[i].points[0][0])
+ 			y.append(shp.shapes()[i].points[0][1])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19423-19424.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19423-19424.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19423-19424.diff	(revision 20498)
@@ -0,0 +1,150 @@
+Index: ../trunk-jpl/src/m/plot/plot_manager.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.py	(revision 19423)
++++ ../trunk-jpl/src/m/plot/plot_manager.py	(revision 19424)
+@@ -28,7 +28,7 @@
+ 	'fig' is a handle to the figure instance created by plotmodel.
+ 
+ 	'ax' is a handle to the axes instance created by plotmodel.  This is
+-	currently generated using matplotlib's AxesGrid toolki.
++	currently generated using matplotlib's AxesGrid toolkit.
+ 
+ 	Usage:
+ 		plot_manager(md,options,fig,ax);
+Index: ../trunk-jpl/src/m/plot/plot_overlay.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19423)
++++ ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19424)
+@@ -1,14 +1,18 @@
+ import numpy as npy
+ from processmesh import processmesh
+ from processdata import processdata
++from xy2ll import xy2ll
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
++from mpl_toolkits.basemap import Basemap
+ import os
++
+ try:
+-	from osgeo import gdal
++        from osgeo import gdal
+ except ImportError:
+ 	print 'osgeo/gdal for python not installed, plot_overlay is disabled'
+ 
++
+ def plot_overlay(md,data,options,ax):
+ 	'''
+ 	Function for plotting a georeferenced image.  This function is called
+@@ -77,6 +81,7 @@
+ 		plt.figure(num)
+ 		plt.hist(arr.flatten(),bins=256,range=(0.,1.))
+ 		plt.title('histogram of overlay image, use for setting overlaylims')
++                plt.show()
+ 		plt.sca(ax) # return to original axes/figure
+ 		
+ 	# get parameters from cropped geotiff
+@@ -91,20 +96,35 @@
+ 	xarr=npy.arange(xmin,xmax,dx)
+ 	yarr=npy.arange(ymin,ymax,-dy) # -dy since origin='upper' (not sure how robust this is)
+ 	xg,yg=npy.meshgrid(xarr,yarr)
++	overlaylims=options.getfieldvalue('overlaylims',[min(arr.ravel()),max(arr.ravel())])
++	norm=mpl.colors.Normalize(vmin=overlaylims[0],vmax=overlaylims[1])
++
+ 	if options.exist('basemap'):
+-		# TODO get handle to or create basemap instance 
+ 		# create coordinate grid in map projection units (for plotting)
+-		lats,lons=xy2ll(xg,yg,-1,0,71)
+-		xgmap,ygmap=m(lons,lats) # map projection units returned by basemap instance
++		lat,lon=xy2ll(xlim,ylim,-1,0,71)
++                #plt.sca(ax)
++                width=xmax-xmin
++                height=ymax-ymin
++                lat_0,lon_0=xy2ll(xmin+width/2.,ymin+height/2.,-1,0,71)
++	        m=Basemap(projection='spstere',
++                        llcrnrlon=lon[0],llcrnrlat=lat[0],urcrnrlon=lon[1],urcrnrlat=lat[1],
++                        epsg=3031,
++                        resolution='c')
++                        #width=width,height=height,lon_0=lon_0,lat_0=lat_0,
++                        #lat_0=-90,lon_0=0,lat_ts=-71,
++                        #llcrnrx=x0,llcrnry=y0,urcrnrx=x1,urcrnry=y1)
++                #test
++                #m.ax=ax
++	        meridians=npy.arange(-180.,181.,1.)
++	        parallels=npy.arange(-80.,80.,1.)
++	        m.drawparallels(parallels,labels=[0,0,1,1]) # labels=[left,right,top,bottom]
++	        m.drawmeridians(meridians,labels=[1,1,0,0])
++                m.drawcoastlines()
++	        pc=m.pcolormesh(xg, yg, npy.flipud(arr), cmap=mpl.cm.Greys, norm=norm, ax=ax)
++
+ 	else:
+-		xgmap=xg
+-		ygmap=yg
+-	
+-	overlaylims=options.getfieldvalue('overlaylims',[min(arr.ravel()),max(arr.ravel())])
+-
+-	norm=mpl.colors.Normalize(vmin=overlaylims[0],vmax=overlaylims[1])
+-
+-	pc=ax.pcolormesh(xgmap, ygmap, npy.flipud(arr), cmap=mpl.cm.Greys, norm=norm)
++	        pc=ax.pcolormesh(xg, yg, npy.flipud(arr), cmap=mpl.cm.Greys, norm=norm)
++        
+ 	#rasterization? 
+ 	if options.getfieldvalue('rasterized',0):
+ 		pc.set_rasterized(True)
+Index: ../trunk-jpl/src/m/plot/plotmodel.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotmodel.py	(revision 19423)
++++ ../trunk-jpl/src/m/plot/plotmodel.py	(revision 19424)
+@@ -4,7 +4,7 @@
+ try:
+ 	import pylab as p
+ 	import matplotlib.pyplot as plt
+-	from mpl_toolkits.axes_grid1 import ImageGrid
++	from mpl_toolkits.axes_grid1 import ImageGrid, AxesGrid
+ except ImportError:
+ 	print "could not import pylab, matplotlib has not been installed, no plotting capabilities enabled"
+ 
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19423)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19424)
+@@ -1,6 +1,7 @@
+ import numpy as npy
+ from cmaptools import truncate_colormap
+ from plot_contour import plot_contour
++from expdisp import expdisp
+ 
+ try:
+ 	from matplotlib.ticker import MaxNLocator
+@@ -233,14 +234,30 @@
+ 			else:
+ 				cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
+ 		cb.ax.tick_params(labelsize=fontsize)
++                cb.solids.set_rasterized(True)
+ 		cb.update_ticks()
++                cb.set_alpha(1)
++                cb.draw_all()
+ 		plt.sca(ax) # return to original axes control
+ 	#}}}
+ 
++        #expdisp {{{
++        if options.exist('expdisp'):
++            filename=options.getfieldvalue('expdisp')
++            style=options.getfieldvalue('expstyle','k')
++            linewidth=options.getfieldvalue('explinewidth',1)
++            for i in xrange(len(filename)):
++                filenamei=filename[i]
++                stylei=style[i]
++                if type(linewidth)==list:
++                    linewidthi=linewidth[i]
++                else:
++                    linewidthi=linewidth
++                expdisp(filenamei,ax,linestyle=stylei,linewidth=linewidthi,unitmultiplier=options.getfieldvalue('unit',1))
++        #}}}
++
+ 	#area
+ 
+-	#expdisp
+-
+ 	#text {{{
+ 	if options.exist('text'):
+ 		text=options.getfieldvalue('text')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19424-19425.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19424-19425.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19424-19425.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19424)
++++ ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19425)
+@@ -4,7 +4,11 @@
+ from xy2ll import xy2ll
+ import matplotlib.pyplot as plt
+ import matplotlib as mpl
+-from mpl_toolkits.basemap import Basemap
++try:
++    from mpl_toolkits.basemap import Basemap
++except ImportError:
++    print 'Basemap toolkit not installed'
++
+ import os
+ 
+ try:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19425-19426.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19425-19426.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19425-19426.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/plot/checkplotoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19425)
++++ ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19426)
+@@ -60,8 +60,12 @@
+ 		textpos=options.getfieldvalue('textposition',[0.5,0.5])
+ 		if not isinstance(textpos,list):
+ 			raise Exception('textposition should be passed as a list')
+-		textx=[item[0] for item in textpos]
+-		texty=[item[1] for item in textpos]
++                if any(isinstance(i,list) for i in textpos):
++		    textx=[item[0] for item in textpos]
++		    texty=[item[1] for item in textpos]
++                else:
++                    textx=[textpos[0]]
++                    texty=[textpos[1]]
+ 		if len(textx)!=numtext or len(texty)!=numtext:
+ 			raise Exception('textposition should contain one list of x,y vertices for every text instance')
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19426-19427.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19426-19427.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19426-19427.diff	(revision 20498)
@@ -0,0 +1,114 @@
+Index: ../trunk-jpl/externalpackages/triangle/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/install.sh	(revision 19426)
++++ ../trunk-jpl/externalpackages/triangle/install.sh	(revision 19427)
+@@ -18,8 +18,9 @@
+ mv ./*.c ./src
+ mv ./*.h ./src
+ 
+-cp ../configs/triangle-libtool.tar.gz ./
+-tar -xvf ./triangle-libtool.tar.gz
++cp ./../configs/libtool/configure.ac ./
++cp ./../configs/libtool/Makefile.am ./
++cp ./../configs/libtool/src/Makefile.am ./src/
+ 
+ autoreconf -ivf
+ ./configure --prefix="${ISSM_DIR}/externalpackages/triangle/install" --disable-executables
+Index: ../trunk-jpl/externalpackages/triangle/configs/triangle-libtool.tar.gz
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/externalpackages/triangle/configs/libtool/configure.ac
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/libtool/configure.ac	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/libtool/configure.ac	(revision 19427)
+@@ -0,0 +1,53 @@
++# Process this file with autoconf to produce a configure script.
++
++#AUTOCONF
++AC_INIT([Triangle],[1.0]) #Initializing configure
++AC_CONFIG_AUX_DIR([./aux-config])         #Put config files in aux-config
++AC_CONFIG_MACRO_DIR([m4])                 #m4 macros are located in m4
++AC_CANONICAL_TARGET                       #Determine the system type
++AC_CANONICAL_HOST                      #Determine the system type
++
++case ${host_os} in
++	*linux* )
++		CPP_LINUX='-DLINUX'
++		;;
++	*)
++		CPP_LINUX=''
++esac
++
++AC_SUBST(CPP_LINUX)
++
++AC_ARG_ENABLE([executables],                                                 dnl feature
++   AS_HELP_STRING([--enable-executables], [build executables]),              dnl help string
++   [enable_executables=$enableval],                                          dnl action if given
++   [enable_executables=yes])                                                 dnl action if not given
++AC_MSG_CHECKING(for executables)
++AM_CONDITIONAL([EXECUTABLES], [test x$enable_executables = xyes])
++AC_MSG_RESULT($enable_executables)
++
++#Compilers
++AC_PROG_CC([icc cccl cl icl gcc])
++AC_PROG_CPP
++AC_PROG_CXX([icpc cccl cl icl g++])
++
++#Libraries and linking
++AC_PATH_XTRA      #figure out X library and include paths
++
++#AUTOMAKE
++#Initialize automake and declare foreign so that we don't need a ChangeLog, INSTALL, etc
++AM_INIT_AUTOMAKE([foreign])
++AC_CONFIG_HEADERS([./config.h])   #Config file must be config.h
++AM_SILENT_RULES([yes])           #Do not show compilation command by default
++AM_PROG_AR
++
++#Libtool
++LT_INIT
++
++#List all Makefiles
++AC_CONFIG_FILES([
++					  Makefile
++					  src/Makefile
++					  ])
++
++#End of configure.ac
++AC_OUTPUT
+Index: ../trunk-jpl/externalpackages/triangle/configs/libtool/src/Makefile.am
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/libtool/src/Makefile.am	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/libtool/src/Makefile.am	(revision 19427)
+@@ -0,0 +1,22 @@
++ALLCXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) 
++
++AM_CPPFLAGS =  -DNO_TIMER ${CPP_LINUX} -DTRILIBRARY
++
++lib_LTLIBRARIES = libtriangle.la
++
++if EXECUTABLES
++bin_PROGRAMS = tricall showme
++endif 
++
++include_HEADERS= ./triangle.h
++
++libtriangle_la_SOURCES = ./triangle.c
++libtriangle_la_LIBADD = -lm
++
++if EXECUTABLES
++tricall_SOURCES = ./tricall.c
++tricall_LDADD = ./libtriangle.la
++
++showme_SOURCES = ./showme.c
++showme_LDADD = -lX11
++endif
+Index: ../trunk-jpl/externalpackages/triangle/configs/libtool/Makefile.am
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/libtool/Makefile.am	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/libtool/Makefile.am	(revision 19427)
+@@ -0,0 +1,4 @@
++EXTRA_DIST = m4
++SUBDIRS = src
++
++ACLOCAL_AMFLAGS = -I m4
Index: /issm/oecreview/Archive/19101-20495/ISSM-19427-19428.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19427-19428.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19427-19428.diff	(revision 20498)
@@ -0,0 +1,86 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19427)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19428)
+@@ -1,11 +1,11 @@
+ import numpy as npy
+ from cmaptools import truncate_colormap
+ from plot_contour import plot_contour
+-from expdisp import expdisp
+ 
+ try:
+ 	from matplotlib.ticker import MaxNLocator
+ 	from mpl_toolkits.axes_grid1 import make_axes_locatable
++	from mpl_toolkits.mplot3d import Axes3D
+ 	import matplotlib as mpl
+ 	import pylab as p
+ 	import matplotlib.pyplot as plt
+@@ -23,6 +23,7 @@
+ 			applyoptions(md,data,options)
+ 
+ 		See also: PLOTMODEL, PARSE_OPTIONS
++
+ 	'''
+ 
+ 	# get handle to current figure and axes instance
+@@ -132,6 +133,10 @@
+ 	#}}}
+ 
+ 	#view
++	if int(md.mesh.dimension) == 3 and options.exist('layer'):
++		#options.getfieldvalue('view') ?
++		ax=fig.gca(projection='3d')
++	plt.show()
+ 
+ 	#axis {{{
+ 	if options.exist('axis'):
+@@ -142,6 +147,8 @@
+ 	# }}}
+ 
+ 	#box
++	if options.exist('box'):
++		eval(options.getfieldvalue('box'))
+ 
+ 	#xlim, ylim, zlim {{{
+ 	if options.exist('xlim'):
+@@ -172,6 +179,7 @@
+ 	#}}}
+ 
+ 	#shading
++	if options.exist('shading'):
+ 
+ 	#grid {{{
+ 	if options.exist('grid'):
+@@ -234,30 +242,14 @@
+ 			else:
+ 				cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
+ 		cb.ax.tick_params(labelsize=fontsize)
+-                cb.solids.set_rasterized(True)
+ 		cb.update_ticks()
+-                cb.set_alpha(1)
+-                cb.draw_all()
+ 		plt.sca(ax) # return to original axes control
+ 	#}}}
+ 
+-        #expdisp {{{
+-        if options.exist('expdisp'):
+-            filename=options.getfieldvalue('expdisp')
+-            style=options.getfieldvalue('expstyle','k')
+-            linewidth=options.getfieldvalue('explinewidth',1)
+-            for i in xrange(len(filename)):
+-                filenamei=filename[i]
+-                stylei=style[i]
+-                if type(linewidth)==list:
+-                    linewidthi=linewidth[i]
+-                else:
+-                    linewidthi=linewidth
+-                expdisp(filenamei,ax,linestyle=stylei,linewidth=linewidthi,unitmultiplier=options.getfieldvalue('unit',1))
+-        #}}}
+-
+ 	#area
+ 
++	#expdisp
++
+ 	#text {{{
+ 	if options.exist('text'):
+ 		text=options.getfieldvalue('text')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19428-19429.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19428-19429.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19428-19429.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19428)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19429)
+@@ -1,6 +1,7 @@
+ import numpy as npy
+ from cmaptools import truncate_colormap
+ from plot_contour import plot_contour
++from expdisp import expdisp
+ 
+ try:
+ 	from matplotlib.ticker import MaxNLocator
+@@ -23,7 +24,6 @@
+ 			applyoptions(md,data,options)
+ 
+ 		See also: PLOTMODEL, PARSE_OPTIONS
+-
+ 	'''
+ 
+ 	# get handle to current figure and axes instance
+@@ -242,14 +242,30 @@
+ 			else:
+ 				cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
+ 		cb.ax.tick_params(labelsize=fontsize)
++                cb.solids.set_rasterized(True)
+ 		cb.update_ticks()
++                cb.set_alpha(1)
++                cb.draw_all()
+ 		plt.sca(ax) # return to original axes control
+ 	#}}}
+ 
++        #expdisp {{{
++        if options.exist('expdisp'):
++            filename=options.getfieldvalue('expdisp')
++            style=options.getfieldvalue('expstyle','k')
++            linewidth=options.getfieldvalue('explinewidth',1)
++            for i in xrange(len(filename)):
++                filenamei=filename[i]
++                stylei=style[i]
++                if type(linewidth)==list:
++                    linewidthi=linewidth[i]
++                else:
++                    linewidthi=linewidth
++                expdisp(filenamei,ax,linestyle=stylei,linewidth=linewidthi,unitmultiplier=options.getfieldvalue('unit',1))
++        #}}}
++
+ 	#area
+ 
+-	#expdisp
+-
+ 	#text {{{
+ 	if options.exist('text'):
+ 		text=options.getfieldvalue('text')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19429-19430.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19429-19430.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19429-19430.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/plot/processdata.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.py	(revision 19429)
++++ ../trunk-jpl/src/m/plot/processdata.py	(revision 19430)
+@@ -72,6 +72,14 @@
+ 	if datasize[0]==md.mesh.numberofvertices and datasize[1]==1:
+ 		datatype=2
+ 
++	#spc time series? 
++	if datasize[0]==md.mesh.numberofvertices+1:
++		datatype=2
++	        spccol=options.getfieldvalue('spccol',0)
++                print 'multiple-column spc field; specify column to plot using option "spccol"'
++                print 'column ', spccol, ' plotted for time: ', procdata[-1,spccol]
++                procdata=procdata[0:-1,spccol]
++
+ 		#mask?
+ 
+ 		#log?
Index: /issm/oecreview/Archive/19101-20495/ISSM-19430-19431.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19430-19431.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19430-19431.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19430)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19431)
+@@ -133,10 +133,10 @@
+ 	#}}}
+ 
+ 	#view
+-	if int(md.mesh.dimension) == 3 and options.exist('layer'):
+-		#options.getfieldvalue('view') ?
+-		ax=fig.gca(projection='3d')
+-	plt.show()
++	#if int(md.mesh.dimension) == 3 and options.exist('layer'):
++	#	#options.getfieldvalue('view') ?
++	#	ax=fig.gca(projection='3d')
++	#plt.show()
+ 
+ 	#axis {{{
+ 	if options.exist('axis'):
+@@ -179,7 +179,7 @@
+ 	#}}}
+ 
+ 	#shading
+-	if options.exist('shading'):
++	#if options.exist('shading'):
+ 
+ 	#grid {{{
+ 	if options.exist('grid'):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19431-19432.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19431-19432.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19431-19432.diff	(revision 20498)
@@ -0,0 +1,394 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19431)
++++ ../trunk-jpl/src/m/plot/plot_overlay.py	(revision 19432)
+@@ -35,8 +35,6 @@
+ 
+ 	if not is2d:
+ 		raise StandardError('overlay plot not supported for 3D meshes, project on a 2D layer first')
+-	if datatype==3:
+-		raise StandardError('overlay not yet supported for quiver plots')	
+ 
+ 	if not options.exist('geotiff_name'):
+ 		raise StandardError('overlay error: provide geotiff_name with path to geotiff file')
+Index: ../trunk-jpl/src/m/plot/processdata.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.py	(revision 19431)
++++ ../trunk-jpl/src/m/plot/processdata.py	(revision 19432)
+@@ -2,98 +2,107 @@
+ import numpy as npy
+ 
+ def processdata(md,data,options):
+-	"""
+-	PROCESSDATA - process data to be plotted
+-
+-		datatype = 1 -> elements
+-		datatype = 2 -> nodes
+-		datatype = 3 -> node quivers
+-		datatype = 4 -> patch
+-
+-		Usage:
+-			data,datatype=processdata(md,data,options);
+-
+-		See also: PLOTMODEL, PROCESSMESH
+-	"""
+-
+-	#check format
+-	if (len(data)==0 or (len(data)==1 and not isinstance(data,dict) and isnan(data).all())):
+-		raise ValueError("processdata error message: 'data' provided is empty")
+-
+-	#needed later on
+-	if 'numberofvertices2d' in dir(md.mesh):
+-		numberofvertices2d=md.mesh.numberofvertices2d
+-		numberofelements2d=md.mesh.numberofelements2d
+-	else:
+-		numberofvertices2d=npy.nan
+-		numberofelements2d=npy.nan
+-
+-	procdata=npy.copy(data)
+-
+-	#process patch
+-
+-	#initialize datatype
+-	datatype=0
+-
+-	#get datasize
+-	if npy.ndim(procdata)==1:
+-		datasize=npy.array([len(procdata),1])
+-	else:
+-		datasize=npy.shape(procdata)
+-	
+-	#process NaN's if any
+-	nanfill=options.getfieldvalue('nan',-9999)
+-	if npy.any(npy.isnan(procdata)):
+-		lb=npy.min(data[~npy.isnan(data)])
+-		ub=npy.max(data[~npy.isnan(data)])
+-		if lb==ub:
+-			lb=lb-0.5
+-			ub=ub+0.5
+-			nanfill=lb-1
+-		procdata[npy.isnan(procdata)]=nanfill
+-		options.addfielddefault('clim',[lb,ub])
+-		options.addfielddefault('cmap_set_under','1')
+-		print "WARNING: nan's treated as", nanfill, "by default.  Change using pairoption 'nan',nan_fill_value in plotmodel call"
+-
+-	#non-patch processing 
+-
+-	#element data
+-	if datasize[0]==md.mesh.numberofelements and datasize[1]==1:
+-		
+-		#initialize datatype if non patch
+-		if datatype!=4 and datatype!=5:
+-			datatype=1
+-
+-		#mask?
+-
+-		#log?
+-
+-	#node data
+-	if datasize[0]==md.mesh.numberofvertices and datasize[1]==1:
+-		datatype=2
+-
+-	#spc time series? 
+-	if datasize[0]==md.mesh.numberofvertices+1:
+-		datatype=2
+-	        spccol=options.getfieldvalue('spccol',0)
+-                print 'multiple-column spc field; specify column to plot using option "spccol"'
+-                print 'column ', spccol, ' plotted for time: ', procdata[-1,spccol]
+-                procdata=procdata[0:-1,spccol]
+-
+-		#mask?
+-
+-		#log?
+-
+-	#layer projection?
+-
+-	#control arrow density if quiver plot
+-
+-	#convert rank-2 array to rank-1
+-	if npy.ndim(procdata)==2 and npy.shape(procdata)[1]==1:
+-		procdata=procdata.reshape(-1,)
+-
+-	#if datatype is still zero, error out
+-	if datatype==0:
+-		raise ValueError("processdata error: data provided not recognized or not supported")
+-	else:
+-		return procdata, datatype
++    """
++    PROCESSDATA - process data to be plotted
++    
++    	datatype = 1 -> elements
++    	datatype = 2 -> nodes
++    	datatype = 3 -> node quivers
++    	datatype = 4 -> patch
++    
++    	Usage:
++    		data,datatype=processdata(md,data,options);
++    
++    	See also: PLOTMODEL, PROCESSMESH
++    """
++    
++    #check format
++    if (len(data)==0 or (len(data)==1 and not isinstance(data,dict) and isnan(data).all())):
++        raise ValueError("processdata error message: 'data' provided is empty")
++    
++    #needed later on
++    if 'numberofvertices2d' in dir(md.mesh):
++    	numberofvertices2d=md.mesh.numberofvertices2d
++    	numberofelements2d=md.mesh.numberofelements2d
++    else:
++    	numberofvertices2d=npy.nan
++    	numberofelements2d=npy.nan
++    
++    procdata=npy.copy(data)
++    
++    #process patch
++    
++    #initialize datatype
++    datatype=0
++    
++    #get datasize
++    if npy.ndim(procdata)==1:
++    	datasize=npy.array([len(procdata),1])
++    else:
++    	datasize=npy.shape(procdata)
++        if len(datasize)>2:
++            raise ValueError('data passed to plotmodel has more than 2 dimensions; check that column vectors are rank-1')
++    
++    #process NaN's if any
++    nanfill=options.getfieldvalue('nan',-9999)
++    if npy.any(npy.isnan(procdata)):
++    	lb=npy.min(data[~npy.isnan(data)])
++    	ub=npy.max(data[~npy.isnan(data)])
++    	if lb==ub:
++    	    lb=lb-0.5
++    	    ub=ub+0.5
++    	    nanfill=lb-1
++    	procdata[npy.isnan(procdata)]=nanfill
++    	options.addfielddefault('clim',[lb,ub])
++    	options.addfielddefault('cmap_set_under','1')
++    	print "WARNING: nan's treated as", nanfill, "by default.  Change using pairoption 'nan',nan_fill_value in plotmodel call"
++    
++    #quiver plot
++    if datasize[1]>1:
++        if datasize[0]==md.mesh.numberofvertices and datasize[1]==2:
++            datatype=3
++        else:
++            raise ValueError('plotmodel error message: data should have two columns of length md.mesh.numberofvertices for a quiver plot')
++    
++    #non-patch processing 
++    
++    #element data
++    if datasize[0]==md.mesh.numberofelements and datasize[1]==1:
++    	
++    	#initialize datatype if non patch
++    	if datatype!=4 and datatype!=5:
++    	    datatype=1
++    
++    	#mask?
++    
++    	#log?
++    
++    #node data
++    if datasize[0]==md.mesh.numberofvertices and datasize[1]==1:
++    	datatype=2
++    
++    #spc time series? 
++    if datasize[0]==md.mesh.numberofvertices+1:
++    	datatype=2
++        spccol=options.getfieldvalue('spccol',0)
++        print 'multiple-column spc field; specify column to plot using option "spccol"'
++        print 'column ', spccol, ' plotted for time: ', procdata[-1,spccol]
++        procdata=procdata[0:-1,spccol]
++    
++    	#mask?
++    
++    	#log?
++    
++    #layer projection?
++    
++    #control arrow density if quiver plot
++    
++    #convert rank-2 array to rank-1
++    if npy.ndim(procdata)==2 and npy.shape(procdata)[1]==1:
++    	procdata=procdata.reshape(-1,)
++    
++    #if datatype is still zero, error out
++    if datatype==0:
++    	raise ValueError("processdata error: data provided not recognized or not supported")
++    else:
++    	return procdata, datatype
+Index: ../trunk-jpl/src/m/plot/plot_unit.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.py	(revision 19431)
++++ ../trunk-jpl/src/m/plot/plot_unit.py	(revision 19432)
+@@ -1,82 +1,92 @@
+ from cmaptools import truncate_colormap
+ try:
+-	import pylab as p
+-	import matplotlib as mpl
+-	import matplotlib.pyplot as plt
++    import pylab as p
++    import matplotlib as mpl
++    import matplotlib.pyplot as plt
++    import numpy as npy
+ except ImportError:
+-	print "could not import pylab, matplotlib has not been installed, no plotting capabilities enabled"
++    print "could not import pylab, matplotlib has not been installed, no plotting capabilities enabled"
+ 
+ def plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options,ax):
+-	"""
+-	PLOT_UNIT - unit plot, display data
+-	
+-		Usage:
+-			plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options)
+-	
+-		See also: PLOTMODEL, PLOT_MANAGER
+-	"""
+-	
+-	#edgecolor
+-	edgecolor=options.getfieldvalue('edgecolor','None')
+-	
+-	#number of colorlevels for plots
+-	colorlevels=options.getfieldvalue('colorlevels',128)
+-	
+-	alpha=options.getfieldvalue('alpha',1)
+-	
+-	#colormap
+-	# default sequential colormap
+-	defaultmap=truncate_colormap(mpl.cm.gnuplot2,0.1,0.9,128)
+-	cmap=options.getfieldvalue('colormap',defaultmap)
+-	if options.exist('cmap_set_over'):
+-	   over=options.getfieldvalue('cmap_set_over','0.5')
+-	   cmap.set_over(over)
+-	if options.exist('cmap_set_under'):
+-	   under=options.getfieldvalue('cmap_set_under','0.5')
+-	   cmap.set_under(under)
+-	
+-	#normalize colormap if clim/caxis specified
+-	if options.exist('clim'):
+-	   lims=options.getfieldvalue('clim',[min(data),max(data)])
+-	elif options.exist('caxis'):
+-	   lims=options.getfieldvalue('caxis',[min(data),max(data)])
+-	else:
+-		if min(data)==max(data):
+-			lims=[min(data)-0.5,max(data)+0.5]
+-		else:
+-			lims=[min(data),max(data)]
+-	norm = mpl.colors.Normalize(vmin=lims[0], vmax=lims[1])
+-	if datatype==1:
+-	   #element plot
+-		if is2d:
+-			tri=ax.tripcolor(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,edgecolors=edgecolor)
+-		else:
+-			raise ValueError('plot_unit error: 3D element plot not supported yet')
+-		return 
+-	
+-	elif datatype==2:
+-		#node plot
+-		if is2d:
+-			tri=ax.tricontourf(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,extend='both')
+-			if edgecolor != 'None':
+-				ax.triplot(x,y,elements,color=edgecolor)
+-		else:
+-			raise ValueError('plot_unit error: 3D node plot not supported yet')
+-		return
+-	
+-	elif datatype==3:
+-		print 'plot_unit message: quiver plot not implemented yet'
+-		return
+-	
+-	elif datatype==4:
+-		#P1 patch plot
+-		print 'plot_unit message: P1 patch plot not implemented yet'
+-		return
+-	
+-	elif datatype==5:
+-		print 'plot_unit message: P0 patch plot not implemented yet'
+-		return
+-	
+-	else:
+-		raise ValueError('datatype=%d not supported' % datatype)
+-
++    """
++    PLOT_UNIT - unit plot, display data
++    
++    	Usage:
++    		plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options)
++    
++    	See also: PLOTMODEL, PLOT_MANAGER
++    """
++    
++    #edgecolor
++    edgecolor=options.getfieldvalue('edgecolor','None')
++    
++    #number of colorlevels for plots
++    colorlevels=options.getfieldvalue('colorlevels',128)
++    
++    alpha=options.getfieldvalue('alpha',1)
++    
++    #colormap
++    # default sequential colormap
++    defaultmap=truncate_colormap(mpl.cm.gnuplot2,0.1,0.9,128)
++    cmap=options.getfieldvalue('colormap',defaultmap)
++    if options.exist('cmap_set_over'):
++        over=options.getfieldvalue('cmap_set_over','0.5')
++        cmap.set_over(over)
++    if options.exist('cmap_set_under'):
++        under=options.getfieldvalue('cmap_set_under','0.5')
++        cmap.set_under(under)
++    
++    #normalize colormap if clim/caxis specified
++    if options.exist('clim'):
++        lims=options.getfieldvalue('clim',[npy.amin(data),npy.amax(data)])
++    elif options.exist('caxis'):
++        lims=options.getfieldvalue('caxis',[npy.amin(data),npy.amax(data)])
++    else:
++        if npy.amin(data)==npy.amax(data):
++            lims=[npy.amin(data)-0.5,npy.amax(data)+0.5]
++        else:
++    	    lims=[npy.amin(data),npy.amax(data)]
++    norm = mpl.colors.Normalize(vmin=lims[0], vmax=lims[1])
++    if datatype==1:
++       #element plot
++        if is2d:
++    	    tri=ax.tripcolor(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,edgecolors=edgecolor)
++    	else:
++    	    raise ValueError('plot_unit error: 3D element plot not supported yet')
++    	return 
++    
++    elif datatype==2:
++    	#node plot
++    	if is2d:
++    	    tri=ax.tricontourf(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,extend='both')
++    	    if edgecolor != 'None':
++    	        ax.triplot(x,y,elements,color=edgecolor)
++    	else:
++    	    raise ValueError('plot_unit error: 3D node plot not supported yet')
++    	return
++    
++    elif datatype==3:
++        vx=data[:,0]
++        vy=data[:,1]
++        #TODO write plot_quiver.py to handle this here
++        color=npy.sqrt(vx**2+vy**2)
++        scale=options.getfieldvalue('scale',1000)
++        width=options.getfieldvalue('width',0.005*(npy.amax(x)-npy.amin(y)))
++        headwidth=options.getfieldvalue('headwidth',3)
++        headlength=options.getfieldvalue('headlength',5)
++        Q=ax.quiver(x,y,vx,vy,color,cmap=cmap,norm=norm,scale=scale,
++                width=width,headwidth=headwidth,headlength=headlength)
++    	return
++    
++    elif datatype==4:
++    	#P1 patch plot
++    	print 'plot_unit message: P1 patch plot not implemented yet'
++    	return
++    
++    elif datatype==5:
++    	print 'plot_unit message: P0 patch plot not implemented yet'
++    	return
++    
++    else:
++    	raise ValueError('datatype=%d not supported' % datatype)
++    
Index: /issm/oecreview/Archive/19101-20495/ISSM-19432-19433.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19432-19433.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19432-19433.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/mesh/roundmesh.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/roundmesh.py	(revision 19432)
++++ ../trunk-jpl/src/m/mesh/roundmesh.py	(revision 19433)
+@@ -28,10 +28,10 @@
+ 	x_list=roundsigfig(radius*x_list*numpy.cos(theta),12)
+ 	y_list=roundsigfig(radius*y_list*numpy.sin(theta),12)
+ 	A=OrderedDict()
+-	A['x']=x_list
+-	A['y']=y_list
++	A['x']=[x_list]
++	A['y']=[y_list]
+ 	A['density']=1.
+-	expwrite([A],'RoundDomainOutline.exp')
++	expwrite(A,'RoundDomainOutline.exp')
+ 
+ 	#Call Bamg
+ 	md=triangle(md,'RoundDomainOutline.exp',resolution)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19433-19434.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19433-19434.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19433-19434.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/processdata.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.py	(revision 19433)
++++ ../trunk-jpl/src/m/plot/processdata.py	(revision 19434)
+@@ -58,7 +58,7 @@
+     	print "WARNING: nan's treated as", nanfill, "by default.  Change using pairoption 'nan',nan_fill_value in plotmodel call"
+     
+     #quiver plot
+-    if datasize[1]>1:
++    if datasize[1]>1 and datasize[0]!= md.mesh.numberofvertices+1:
+         if datasize[0]==md.mesh.numberofvertices and datasize[1]==2:
+             datatype=3
+         else:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19434-19435.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19434-19435.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19434-19435.diff	(revision 20498)
@@ -0,0 +1,47 @@
+Index: ../trunk-jpl/src/m/plot/checkplotoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19434)
++++ ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19435)
+@@ -70,10 +70,10 @@
+ 			raise Exception('textposition should contain one list of x,y vertices for every text instance')
+ 
+ 		# font size
+-		if options.exist('textsize'):
+-			textsize=options.getfieldvalue('textsize',12)
++		if options.exist('textfontsize'):
++			textfontsize=options.getfieldvalue('textfontsize',12)
+ 			sizelist=[]
+-			sizelist.extend(textsize if isinstance(textsize,list) else [textsize])
++			sizelist.extend(textsize if isinstance(textfontsize,list) else [textfontsize])
+ 		else:
+ 			sizelist=[12]
+ 		if len(sizelist)==1:
+@@ -112,7 +112,7 @@
+ 		options.changefieldvalue('text',textlist)
+ 		options.addfield('textx',textx)
+ 		options.addfield('texty',texty)
+-		options.changefieldvalue('textsize',sizelist)
++		options.changefieldvalue('textfontsize',sizelist)
+ 		options.changefieldvalue('textcolor',colorlist)
+ 		options.changefieldvalue('textweight',weightlist)
+ 		options.changefieldvalue('textrotation',rotationlist)
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19434)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19435)
+@@ -271,12 +271,12 @@
+ 		text=options.getfieldvalue('text')
+ 		textx=options.getfieldvalue('textx')
+ 		texty=options.getfieldvalue('texty')
+-		textsize=options.getfieldvalue('textsize')
+ 		textcolor=options.getfieldvalue('textcolor')
+ 		textweight=options.getfieldvalue('textweight')
+ 		textrotation=options.getfieldvalue('textrotation')
+-		for label,x,y,size,color,weight,rotation in zip(text,textx,texty,textsize,textcolor,textweight,textrotation):
+-			ax.text(x,y,label,transform=ax.transAxes,fontsize=size,color=color,weight=weight,rotation=rotation)
++                textfontsize=options.getfieldvalue('textfontsize')
++		for label,x,y,size,color,weight,rotation in zip(text,textx,texty,textfontsize,textcolor,textweight,textrotation):
++			ax.text(x,y,label,transform=ax.transAxes,fontsize=textfontsize,color=color,weight=weight,rotation=rotation)
+ 	#}}}
+ 
+ 	#north arrow
Index: /issm/oecreview/Archive/19101-20495/ISSM-19435-19436.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19435-19436.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19435-19436.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19435)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19436)
+@@ -565,8 +565,10 @@
+ libISSMCore_la_FFLAGS = $(AM_FFLAGS)
+ 
+ if !WINDOWS
++if !STANDALONE_LIBRARIES
+ libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
+ endif
++endif
+ 
+ if WRAPPERS
+ libISSMModules_la_SOURCES = $(modules_sources)
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19435)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19436)
+@@ -127,6 +127,7 @@
+ 
+ if STANDALONE_LIBRARIES
+ libISSMMatlab_la_LDFLAGS = -static 
++deps += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
+ endif
+ 
+ if !WINDOWS
+Index: ../trunk-jpl/packagers/macosx/install.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/install.sh	(revision 19435)
++++ ../trunk-jpl/packagers/macosx/install.sh	(revision 19436)
+@@ -112,6 +112,7 @@
+ 	--with-matlab-dir="/Applications/MATLAB_R2011b.app/" \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
+ 	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19436-19437.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19436-19437.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19436-19437.diff	(revision 20498)
@@ -0,0 +1,104 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19437)
+@@ -0,0 +1,93 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
++	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=18 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=0
++PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						mpich         install-3.0-linux64.sh    
++						cmake         install.sh                
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						python        install-2.7.3-linux64.sh    
++						nose          install-linux64-python2.sh  
++						blas          install-linux64.sh          
++						lapack        install-linux64.sh          
++						m1qn3         install.sh          
++						numpy         install-linux64.sh          
++						scipy         install-linux64.sh          
++						hdf5          install.sh                  
++						netcdf        install.sh                  
++						netcdf-python install.sh
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=8
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+
+Property changes on: ../trunk-jpl/jenkins/linux64_caladan_python
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19437-19438.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19437-19438.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19437-19438.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19437)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19438)
+@@ -53,16 +53,9 @@
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+-						python        install-2.7.3-linux64.sh    
+-						nose          install-linux64-python2.sh  
+ 						blas          install-linux64.sh          
+ 						lapack        install-linux64.sh          
+ 						m1qn3         install.sh          
+-						numpy         install-linux64.sh          
+-						scipy         install-linux64.sh          
+-						hdf5          install.sh                  
+-						netcdf        install.sh                  
+-						netcdf-python install.sh
+ 						shell2junit   install.sh"
+ 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19438-19439.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19438-19439.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19438-19439.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19438)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19439)
+@@ -14,7 +14,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
+ 	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-numthreads=18 \
+ 	--enable-development \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19439-19440.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19439-19440.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19439-19440.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19439)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19440)
+@@ -74,10 +74,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
++NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=8
++NUMCPUS_RUN=4
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19440-19441.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19440-19441.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19440-19441.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19440)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19441)
+@@ -12,11 +12,11 @@
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
+-	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-numthreads=18 \
++	--with-numthreads=4 \
+ 	--enable-development \
+ 	--enable-debugging '
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19441-19442.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19441-19442.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19441-19442.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19441)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19442)
+@@ -17,7 +17,6 @@
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-numthreads=4 \
+-	--enable-development \
+ 	--enable-debugging '
+ 
+ #MATLAB path
+@@ -53,8 +52,6 @@
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+-						blas          install-linux64.sh          
+-						lapack        install-linux64.sh          
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19442-19443.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19442-19443.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19442-19443.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/mask.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.py	(revision 19442)
++++ ../trunk-jpl/src/m/classes/mask.py	(revision 19443)
+@@ -4,6 +4,7 @@
+ from EnumDefinitions import *
+ from checkfield import checkfield
+ from WriteData import WriteData
++import MatlabFuncs as m
+ 
+ class mask(object):
+ 	"""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19443-19444.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19443-19444.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19443-19444.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19443)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19444)
+@@ -268,15 +268,15 @@
+ 
+ 	#text {{{
+ 	if options.exist('text'):
+-		text=options.getfieldvalue('text')
+-		textx=options.getfieldvalue('textx')
+-		texty=options.getfieldvalue('texty')
+-		textcolor=options.getfieldvalue('textcolor')
+-		textweight=options.getfieldvalue('textweight')
+-		textrotation=options.getfieldvalue('textrotation')
+-                textfontsize=options.getfieldvalue('textfontsize')
+-		for label,x,y,size,color,weight,rotation in zip(text,textx,texty,textfontsize,textcolor,textweight,textrotation):
+-			ax.text(x,y,label,transform=ax.transAxes,fontsize=textfontsize,color=color,weight=weight,rotation=rotation)
++	    text=options.getfieldvalue('text')
++	    textx=options.getfieldvalue('textx')
++	    texty=options.getfieldvalue('texty')
++	    textcolor=options.getfieldvalue('textcolor')
++	    textweight=options.getfieldvalue('textweight')
++	    textrotation=options.getfieldvalue('textrotation')
++            textfontsize=options.getfieldvalue('textfontsize')
++	    for label,x,y,size,color,weight,rotation in zip(text,textx,texty,textfontsize,textcolor,textweight,textrotation):
++                ax.text(x,y,label,transform=ax.transAxes,fontsize=size,color=color,weight=weight,rotation=rotation)
+ 	#}}}
+ 
+ 	#north arrow
Index: /issm/oecreview/Archive/19101-20495/ISSM-19444-19445.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19444-19445.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19444-19445.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19444)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19445)
+@@ -14,6 +14,9 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-python-dir=/usr\
+ 	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-numthreads=4 \
+@@ -52,6 +55,9 @@
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-5.3.1-linux64.sh  
++						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19445-19446.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19445-19446.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19445-19446.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19445)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19446)
+@@ -58,6 +58,8 @@
+ 						boost         install.sh                
+ 						dakota        install-5.3.1-linux64.sh  
+ 						chaco         install.sh 
++						blas          install-linux64.sh          
++						lapack        install-linux64.sh          
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19446-19447.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19446-19447.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19446-19447.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19446)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19447)
+@@ -56,10 +56,8 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
++						dakota        install-5.2-linux64-larsen.sh  
+ 						chaco         install.sh 
+-						blas          install-linux64.sh          
+-						lapack        install-linux64.sh          
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19447-19448.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19447-19448.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19447-19448.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-5.2-linux64-caladan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.2-linux64-caladan.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-5.2-linux64-caladan.sh	(revision 19448)
+@@ -0,0 +1,48 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf install 
++mkdir src install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Dakota_5_2.src.tar.gz' 'Dakota_5_2.src.tar.gz'
++
++#Untar 
++tar -zxvf Dakota_5_2.src.tar.gz
++
++#Move Dakota to src directory
++mv Dakota/* src
++rm -rf Dakota
++
++#Apply patches
++patch src/src/ParallelLibrary.C configs/5.2/ParallelLibrary.C.patch
++patch src/src/ParallelLibrary.H configs/5.2/ParallelLibrary.H.patch
++patch src/src/NonDSampling.C configs/5.2/NonDSampling.C.patch
++patch src/src/NonDLocalReliability.C configs/5.2/NonDLocalReliability.C.patch
++patch src/src/NonDUnilevelRBDO.C configs/5.2/NonDUnilevelRBDO.C.patch    #  source not even used?
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/5.2/pecos_global_defs.hpp.patch
++patch src/packages/teuchos/src/Teuchos_ConfigDefs.hpp configs/5.2/Teuchos_ConfigDefs.hpp.patch
++
++#Configure dakota
++cd src
++./configure \
++	--prefix="$ISSM_DIR/externalpackages/dakota/install" \
++	--without-graphics  \
++	--with-pic \
++	--disable-mpi \
++	--with-blas="$ISSM_DIR/externalpackages/petsc/install/lib/libfblas.a" \
++	--with-lapack="$ISSM_DIR/externalpackages/petsc/install/lib/libflapack.a"
++
++#Compile and install dakota
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-5.2-linux64-caladan.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19448-19449.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19448-19449.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19448-19449.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19448)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19449)
+@@ -56,7 +56,7 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.2-linux64-larsen.sh  
++						dakota        install-5.2-linux64-caladan.sh  
+ 						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19449-19450.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19449-19450.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19449-19450.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19449)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19450)
+@@ -56,7 +56,7 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.2-linux64-caladan.sh  
++						dakota        install-5.3.1-linux64.sh  
+ 						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19450-19451.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19450-19451.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19450-19451.diff	(revision 20498)
@@ -0,0 +1,62 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh	(revision 19451)
+@@ -0,0 +1,51 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-5.3.1-public-src.tar.gz' 'dakota-5.3.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-5.3.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-5.3.1.src/* src
++rm -rf dakota-5.3.1.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
++#patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/5.3.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/5.3.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/5.3.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/5.3.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/5.3.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC -DBLAS_LIBS=$ISSM_DIR/externalpackages/petsc/install/libfblas.a -DLAPACK_LIBS=$ISSM_DIR/externalpackages/petsc/install/libflapack.a
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19451-19452.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19451-19452.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19451-19452.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19451)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19452)
+@@ -56,7 +56,7 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
++						dakota        install-5.3.1-linux64-caladan.sh  
+ 						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19452-19453.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19452-19453.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19452-19453.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh	(revision 19452)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh	(revision 19453)
+@@ -35,7 +35,7 @@
+ 
+ #Configure dakota
+ cd $DAK_BUILD
+-cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC -DBLAS_LIBS=$ISSM_DIR/externalpackages/petsc/install/libfblas.a -DLAPACK_LIBS=$ISSM_DIR/externalpackages/petsc/install/libflapack.a
++cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC -DBLAS_LIBS=$ISSM_DIR/externalpackages/petsc/install/lib/libfblas.a -DLAPACK_LIBS=$ISSM_DIR/externalpackages/petsc/install/lib/libflapack.a
+ cd ..
+ 
+ #Compile and install dakota
Index: /issm/oecreview/Archive/19101-20495/ISSM-19453-19454.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19453-19454.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19453-19454.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19453)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19454)
+@@ -56,7 +56,7 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.3.1-linux64-caladan.sh  
++						dakota        install-5.3.1-linux64.sh  
+ 						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19454-19455.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19454-19455.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19454-19455.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19454)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19455)
+@@ -20,6 +20,7 @@
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-numthreads=4 \
++	--enable-development \
+ 	--enable-debugging '
+ 
+ #MATLAB path
Index: /issm/oecreview/Archive/19101-20495/ISSM-19455-19456.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19455-19456.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19455-19456.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19455)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19456)
+@@ -157,17 +157,17 @@
+ 	./configure.sh
+ 
+ 	#4: compile and install ISSM
+-	if [ $NUMCPUS_INSTALL -gt 1 ]
+-	then
++	if [ $NUMCPUS_INSTALL -gt 1 ]; then
+ 		echo "Making with " $NUMCPUS_INSTALL " cpus"
+-		make -j $NUMCPUS_INSTALL install
++		make -j $NUMCPUS_INSTALL
+ 	else
+-		make install
++		make
+ 	fi
+ 	if [ $? -ne 0 ]; then 
+ 		echo "ISSM_COMPILATION failed!"
+ 		exit 1
+ 	fi
++	make install
+ elif [ "$ISSM_COMPILATION" == "no" ]
+ then
+ 	echo "Skipping ISSM compilation"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19456-19457.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19456-19457.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19456-19457.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19456)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19457)
+@@ -5,6 +5,7 @@
+ 
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19457-19458.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19457-19458.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19457-19458.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19457)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19458)
+@@ -260,7 +260,7 @@
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	echo "This is the concatenation phase for rank: python_log$i.log"
+-	cat python_log$i.log
++	#cat python_log$i.log
+ 	cat python_log$i.log >> python_log.log
+ done
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19458-19459.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19458-19459.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19458-19459.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/exp/expwrite.py
+===================================================================
+--- ../trunk-jpl/src/m/exp/expwrite.py	(revision 19458)
++++ ../trunk-jpl/src/m/exp/expwrite.py	(revision 19459)
+@@ -24,7 +24,7 @@
+ 		if len(x)!=len(y):
+ 			raise RuntimeError("contours x and y coordinates must be of identical size")
+ 		if 'name' in contours:
+-			fid.write("%s%s\n" % ('## Name:',contour['name']))
++			fid.write("%s%s\n" % ('## Name:',contours['name']))
+ 		else:
+ 			fid.write("%s%s\n" % ('## Name:',filename))
+    
Index: /issm/oecreview/Archive/19101-20495/ISSM-19459-19460.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19459-19460.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19459-19460.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/src/m/plot/plot_streamlines.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 19460)
+@@ -0,0 +1,62 @@
++import numpy as npy
++import matplotlib.pyplot as plt
++import matplotlib.tri as tri
++from processmesh import processmesh
++from processdata import processdata
++from scipy.interpolate import griddata
++from ContourToMesh import ContourToMesh
++
++def plot_streamlines(md,options,ax):
++    '''
++    plot streamlines on a figure, using by default vx and vy components in md.initialization. 
++
++    Usage:
++        plot_streamlines(md,options,ax)
++
++    available options, to be passed to plotmodel as a string-value pair:
++        streamlinesvx : vx component (default md.initialization.vx)
++        streamlinesvy : vy component (default md.initialization.vy)
++        streamlinescolor: color string
++        streamlinesdensity: density of plotted streamlines
++        streamlineswidth: linewidth value or 'vel' to scale by velocity
++        streamlineswidthscale: scaling multiplier for linewidth scaled by velocity
++        
++    '''
++
++    # retrieve options
++    vx=options.getfieldvalue('streamlinesvx',md.initialization.vx)
++    vy=options.getfieldvalue('streamlinesvx',md.initialization.vy)
++    color=options.getfieldvalue('streamlinescolor','k')
++    linewidth=options.getfieldvalue('streamlineswidth',1)
++    density=options.getfieldvalue('streamlinesdensity',1)
++
++    #process mesh and data 
++    x,y,z,elements,is2d,isplanet=processmesh(md,vx,options)
++    u,datatype=processdata(md,vx,options)
++    v,datatype=processdata(md,vy,options)
++
++    if not is2d:
++        raise StandardError('plot_streamlines error: streamlines option not supported for 3D plots')
++
++    # format data for matplotlib streamplot function
++    yg,xg=npy.mgrid[min(md.mesh.y):max(md.mesh.y):100j,min(md.mesh.x):max(md.mesh.x):100j]
++    ug=griddata((x,y),u,(xg,yg),method='linear')
++    vg=griddata((x,y),v,(xg,yg),method='linear')
++
++    # create triangulation instance
++    triang=tri.Triangulation(md.mesh.x,md.mesh.y,md.mesh.elements-1)
++
++    # interpolate to regularly spaced quad grid
++    interp_lin_u=tri.LinearTriInterpolator(triang,u)
++    interp_lin_v=tri.LinearTriInterpolator(triang,v)
++    ug=interp_lin_u(xg,yg)
++    vg=interp_lin_v(xg,yg)
++
++    if linewidth=='vel':
++        scale=options.getfieldvalue('streamlineswidthscale',3)
++        vel=npy.sqrt(ug**2+vg**2)
++        linewidth=scale*vel/npy.amax(vel)
++        linewidth[linewidth<0.5]=0.5
++
++    # plot streamlines
++    ax.streamplot(xg,yg,ug,vg,color=color,linewidth=linewidth,density=density)
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19459)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19460)
+@@ -1,6 +1,7 @@
+ import numpy as npy
+ from cmaptools import truncate_colormap
+ from plot_contour import plot_contour
++from plot_streamlines import plot_streamlines
+ from expdisp import expdisp
+ 
+ try:
+@@ -284,6 +285,8 @@
+ 	#scale ruler
+ 
+ 	#streamlines
++        if options.exist('streamlines'):
++            plot_streamlines(md,options,ax)
+ 
+ 
+ 	#axis positions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19460-19461.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19460-19461.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19460-19461.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19460)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19461)
+@@ -155,7 +155,7 @@
+ 		fid.close()
+ 
+ 	# }}}
+-	def UploadhQueueJob(self,modelname,dirname,filelist):
++	def UploadQueueJob(self,modelname,dirname,filelist):
+ 			# {{{
+ 
+ 		#compress the files into one zip.
Index: /issm/oecreview/Archive/19101-20495/ISSM-19461-19462.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19461-19462.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19461-19462.diff	(revision 20498)
@@ -0,0 +1,126 @@
+Index: ../trunk-jpl/src/m/plot/plot_streamlines.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 19461)
++++ ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 19462)
+@@ -17,18 +17,20 @@
+         streamlinesvx : vx component (default md.initialization.vx)
+         streamlinesvy : vy component (default md.initialization.vy)
+         streamlinescolor: color string
+-        streamlinesdensity: density of plotted streamlines
++        streamlinesdensity: density of plotted streamlines (default 1)
+         streamlineswidth: linewidth value or 'vel' to scale by velocity
+         streamlineswidthscale: scaling multiplier for linewidth scaled by velocity
++        streamlinesarrowsize: size of arrows on lines (default 1)
+         
+     '''
+ 
+     # retrieve options
+     vx=options.getfieldvalue('streamlinesvx',md.initialization.vx)
+-    vy=options.getfieldvalue('streamlinesvx',md.initialization.vy)
++    vy=options.getfieldvalue('streamlinesvy',md.initialization.vy)
+     color=options.getfieldvalue('streamlinescolor','k')
+     linewidth=options.getfieldvalue('streamlineswidth',1)
+     density=options.getfieldvalue('streamlinesdensity',1)
++    arrowsize=options.getfieldvalue('streamlinesarrowsize',1)
+ 
+     #process mesh and data 
+     x,y,z,elements,is2d,isplanet=processmesh(md,vx,options)
+@@ -59,4 +61,4 @@
+         linewidth[linewidth<0.5]=0.5
+ 
+     # plot streamlines
+-    ax.streamplot(xg,yg,ug,vg,color=color,linewidth=linewidth,density=density)
++    ax.streamplot(xg,yg,ug,vg,color=color,linewidth=linewidth,density=density,arrowsize=arrowsize)
+Index: ../trunk-jpl/src/m/plot/checkplotoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19461)
++++ ../trunk-jpl/src/m/plot/checkplotoptions.py	(revision 19462)
+@@ -91,9 +91,9 @@
+ 
+ 		# textweight
+ 		if options.exist('textweight'):
+-			textweightvalues=options.getfieldvalue('textweight')
++			textweight=options.getfieldvalue('textweight')
+ 			weightlist=[]
+-			weightlist.extend(textweight if isinstance(textwieght,list) else [textweight])
++			weightlist.extend(textweight if isinstance(textweight,list) else [textweight])
+ 		else:
+ 			weightlist=['normal']
+ 		if len(weightlist)==1:
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19461)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19462)
+@@ -215,39 +215,39 @@
+ 
+ 	#colorbar {{{
+ 	if options.getfieldvalue('colorbar',1)==1:
+-		if cbar_extend==0:
+-			extend='neither'
+-		elif cbar_extend==1:
+-			extend='max'
+-		elif cbar_extend==2:
+-			extend='min'
+-		elif cbar_extend==3:
+-			extend='both'
+-		cb = mpl.colorbar.ColorbarBase(ax.cax, cmap=cmap, norm=norm, extend=extend)
+-		if options.exist('alpha'):
+-			cb.set_alpha(options.getfieldvalue('alpha'))
+-		if options.exist('colorbarnumticks'):
+-			cb.locator=MaxNLocator(nbins=options.getfieldvalue('colorbarnumticks',5))
+-		else:
+-			cb.locator=MaxNLocator(nbins=5) # default 5 ticks
+-		if options.exist('colorbartickspacing'):
+-			locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbartickspacing'))
+-			cb.set_ticks(locs)
+-		if options.exist('colorbarlines'):
+-			locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbarlines'))
+-			cb.add_lines(locs,['k' for i in range(len(locs))],npy.ones_like(locs))
+-		if options.exist('colorbartitle'):
+-			if options.exist('colorbartitlepad'):
+-				cb.set_label(options.getfieldvalue('colorbartitle'),\
+-						labelpad=options.getfieldvalue('colorbartitlepad'),fontsize=fontsize)
+-			else:
+-				cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
+-		cb.ax.tick_params(labelsize=fontsize)
+-                cb.solids.set_rasterized(True)
+-		cb.update_ticks()
+-                cb.set_alpha(1)
+-                cb.draw_all()
+-		plt.sca(ax) # return to original axes control
++	    if cbar_extend==0:
++	    	extend='neither'
++	    elif cbar_extend==1:
++	    	extend='max'
++	    elif cbar_extend==2:
++	    	extend='min'
++	    elif cbar_extend==3:
++	    	extend='both'
++	    cb = mpl.colorbar.ColorbarBase(ax.cax, cmap=cmap, norm=norm, extend=extend)
++	    if options.exist('alpha'):
++	    	cb.set_alpha(options.getfieldvalue('alpha'))
++	    if options.exist('colorbarnumticks'):
++	    	cb.locator=MaxNLocator(nbins=options.getfieldvalue('colorbarnumticks',5))
++	    else:
++	    	cb.locator=MaxNLocator(nbins=5) # default 5 ticks
++	    if options.exist('colorbartickspacing'):
++	    	locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbartickspacing'))
++	    	cb.set_ticks(locs)
++	    if options.exist('colorbarlines'):
++	    	locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbarlines'))
++	    	cb.add_lines(locs,['k' for i in range(len(locs))],npy.ones_like(locs))
++	    if options.exist('colorbartitle'):
++	        if options.exist('colorbartitlepad'):
++	    	    cb.set_label(options.getfieldvalue('colorbartitle'),\
++                            labelpad=options.getfieldvalue('colorbartitlepad'),fontsize=fontsize)
++	    	else:
++	    	    cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
++	    cb.ax.tick_params(labelsize=fontsize)
++            cb.solids.set_rasterized(True)
++	    cb.update_ticks()
++            cb.set_alpha(1)
++            cb.draw_all()
++	    plt.sca(ax) # return to original axes control
+ 	#}}}
+ 
+         #expdisp {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19462-19463.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19462-19463.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19462-19463.diff	(revision 20498)
@@ -0,0 +1,202 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19462)
++++ ../trunk-jpl/jenkins/linux64_caladan_python	(revision 19463)
+@@ -1,91 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--disable-static \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=/usr\
+-	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+-	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-numthreads=4 \
+-	--enable-development \
+-	--enable-debugging '
+-
+-#MATLAB path
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=0
+-PYTHON_TEST=1
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools     install.sh                
+-						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
+-						triangle      install-linux64.sh        
+-						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
+-						chaco         install.sh 
+-						m1qn3         install.sh          
+-						shell2junit   install.sh"
+-
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=4
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=4
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19463)
+@@ -0,0 +1,95 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						cmake         install.sh                
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-5.3.1-linux64.sh  
++						chaco         install.sh 
++						m1qn3         install.sh          
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=4
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
++MATLAB_NROPTIONS="'exclude',[119,514,701,702,435]"
+
+Property changes on: ../trunk-jpl/jenkins/linux64_caladan
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19463-19464.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19463-19464.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19463-19464.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19463)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19464)
+@@ -184,7 +184,7 @@
+ #matlab tests
+ if [ $MATLAB_TEST -eq 1 ]; then
+ #Launch all tests on different cpus {{{
+-for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
+ do
+ 	#Launch matlab and the nightly run script
+ 	cat > $ISSM_DIR/nightlylog/matlab_run$i.m << EOF
+@@ -230,7 +230,7 @@
+ #concatenate reports
+ cd $ISSM_DIR/nightlylog/
+ rm matlab_log.log
+-for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
+ do
+ 	cat matlab_log$i.log >> matlab_log.log
+ done
+@@ -245,7 +245,7 @@
+ #Launch all tests on different cpus {{{
+ PYTHON_START_TIME=$(timer);
+ export PYTHONSTARTUP=$ISSM_DIR/src/m/dev/devpath.py
+-for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+@@ -257,7 +257,7 @@
+ # concatenate reports
+ cd $ISSM_DIR/nightlylog/
+ rm python_log.log
+-for (( i=1;i<=$NUMCPUS_RUN;i++ ))
++for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
+ do
+ 	echo "This is the concatenation phase for rank: python_log$i.log"
+ 	#cat python_log$i.log
Index: /issm/oecreview/Archive/19101-20495/ISSM-19464-19465.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19464-19465.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19464-19465.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19464)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19465)
+@@ -111,7 +111,7 @@
+ 			self.max_damage=1-1e-5; %if damage reaches 1, solve becomes singular, as viscosity becomes nil
+ 		
+ 			%Type of stabilization used
+-			self.stabilization=2;
++			self.stabilization=4;
+ 			
+ 			%Maximum number of iterations
+ 			self.maxiter=100;
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19464)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19465)
+@@ -85,7 +85,7 @@
+ 		self.max_damage=1-1e-5 #if damage reaches 1, solve becomes singular, as viscosity becomes nil
+ 		
+ 		#Type of stabilization used
+-		self.stabilization=2
++		self.stabilization=4
+ 			
+ 		#Maximum number of iterations
+ 		self.maxiter=100
Index: /issm/oecreview/Archive/19101-20495/ISSM-19465-19466.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19465-19466.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19465-19466.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/m/mech/mechanicalproperties.py
+===================================================================
+--- ../trunk-jpl/src/m/mech/mechanicalproperties.py	(revision 19465)
++++ ../trunk-jpl/src/m/mech/mechanicalproperties.py	(revision 19466)
+@@ -3,7 +3,7 @@
+ from results import results
+ from averaging import averaging
+ 
+-def mechanicalproperties(md,vx,vy):
++def mechanicalproperties(md,vx,vy,**kwargs):
+ 	"""
+ 	MECHANICALPROPERTIES - compute stress and strain rate for a goven velocity
+ 	
+@@ -29,6 +29,15 @@
+ 	if npy.any(md.flowequation.element_equation!=2):
+ 		print 'Warning: the model has some non SSA elements. These will be treated like SSA elements'
+ 
++        #unpack kwargs
++	if 'damage' in kwargs: 
++	    damage=kwargs.pop('damage')
++            if len(damage)!=md.mesh.numberofvertices:
++		raise ValueError('if damage is supplied it should be of size ' + md.mesh.numberofvertices)
++            if npy.ndim(damage)==2:
++                damage=damage.reshape(-1,)
++        else: damage=None
++
+ 	if npy.ndim(vx)==2:
+ 		vx=vx.reshape(-1,)
+ 	if npy.ndim(vy)==2:
+@@ -74,10 +83,9 @@
+ 		nu[location]=B_bar[location]
+ 		location=npy.nonzero(npy.logical_and(second_inv==0,power!=0))
+ 		nu[location]=10^18
+-	elif 'matdamageice' in md.materials.__module__:
++	elif 'matdamageice' in md.materials.__module__ and damage is not None:
+ 		print 'computing damage-dependent properties!'
+-                # FIXME might be using damage from a solution, not the initial md.damage.D
+-		Zinv=npy.dot(1-md.damage.D[index-1],summation/3.).reshape(-1,)
++		Zinv=npy.dot(1-damage[index-1],summation/3.).reshape(-1,)
+ 		location=npy.nonzero(second_inv)
+ 		nu[location]=Zinv[location]*B_bar[location]/npy.power(second_inv[location],power[location])
+ 		location=npy.nonzero(npy.logical_and(second_inv==0,power==0))
Index: /issm/oecreview/Archive/19101-20495/ISSM-19466-19467.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19466-19467.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19466-19467.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 19466)
++++ ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 19467)
+@@ -133,11 +133,20 @@
+ 			}
+ 		}
+ 		else{
+-			for (j=0;j<N_data;j++){
+-				if (it<0 || it>=nels_data){
+-					_error_("Triangle number " << it << " not in [0 " << nels_data << "], report bug to developers");
++			/*For the P0 implementation*/
++			/*If we fall outside of the convex or outside of the mesh, return NaN*/
++			if(tb.det<0 || reft[it]<0){
++				data_interp[i*N_data+j]=-9999;
++			}
++			else{
++				if(it<0 || it>=nels_data){
++					_error_("Triangle number " << it << " not in [0 " << nels_data
++								<< "], report bug to developers (interpolation point: " <<x_interp[i]<<" "<<y_interp[i]<<")");
+ 				}
+-				data_interp[i*N_data+j]=data[N_data*it+j];
++				for (j=0;j<N_data;j++){
++
++					data_interp[i*N_data+j]=data[N_data*it+j];
++				}
+ 			}
+ 		}
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19467-19468.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19467-19468.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19467-19468.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 19467)
++++ ../trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp	(revision 19468)
+@@ -136,7 +136,9 @@
+ 			/*For the P0 implementation*/
+ 			/*If we fall outside of the convex or outside of the mesh, return NaN*/
+ 			if(tb.det<0 || reft[it]<0){
+-				data_interp[i*N_data+j]=-9999;
++				for (j=0;j<N_data;j++){
++					data_interp[i*N_data+j]=NAN;
++				}
+ 			}
+ 			else{
+ 				if(it<0 || it>=nels_data){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19468-19469.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19468-19469.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19468-19469.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19468)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19469)
+@@ -57,7 +57,6 @@
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
Index: /issm/oecreview/Archive/19101-20495/ISSM-19469-19470.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19469-19470.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19469-19470.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19469)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19470)
+@@ -184,7 +184,7 @@
+ #matlab tests
+ if [ $MATLAB_TEST -eq 1 ]; then
+ #Launch all tests on different cpus {{{
+-for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
++for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	#Launch matlab and the nightly run script
+ 	cat > $ISSM_DIR/nightlylog/matlab_run$i.m << EOF
+@@ -230,7 +230,7 @@
+ #concatenate reports
+ cd $ISSM_DIR/nightlylog/
+ rm matlab_log.log
+-for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
++for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	cat matlab_log$i.log >> matlab_log.log
+ done
+@@ -245,7 +245,7 @@
+ #Launch all tests on different cpus {{{
+ PYTHON_START_TIME=$(timer);
+ export PYTHONSTARTUP=$ISSM_DIR/src/m/dev/devpath.py
+-for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
++for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+@@ -257,7 +257,7 @@
+ # concatenate reports
+ cd $ISSM_DIR/nightlylog/
+ rm python_log.log
+-for (( i=1;i<=$NUMCPUS_RUN;i*=2 ))
++for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	echo "This is the concatenation phase for rank: python_log$i.log"
+ 	#cat python_log$i.log
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19469)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19470)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=4
++NUMCPUS_RUN=2
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19470-19471.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19470-19471.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19470-19471.diff	(revision 20498)
@@ -0,0 +1,205 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19471)
+@@ -0,0 +1,80 @@
++#
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++				--disable-static \
++				--prefix=$ISSM_DIR \
++				--without-kriging \
++				--without-kml \
++				--without-Gia \
++				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
++				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
++				--with-matlab-dir=$MATLAB_DIR \
++				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools install.sh                
++					 matlab install.sh 
++					 mpich install-3.0-linux64.sh
++					 petsc install-3.5-linux64.sh
++					 metis install-5.0.1-linux64.sh
++					 triangle install-linux64.sh 
++					 gsl install-linux64.sh 
++					 adolc install.sh
++					 shell2junit install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=3
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_caladan_ad
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19471)
+@@ -0,0 +1,90 @@
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++				 --disable-static \
++				 --without-kriging \
++				 --without-kml \
++				 --without-Gia \
++				 --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
++				 --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
++				 --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
++				 --with-matlab-dir=$MATLAB_DIR \
++				 --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++				 --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++				 --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
++				 --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				 --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++				 --with-numthreads=4  \
++				 --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
++				 --enable-development \
++				 --enable-debugging CXXFLAGS="-g -O0" '
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools install.sh 
++					 matlab install.sh 
++					 mpich install-3.0-linux64.sh
++					 petsc install-3.5-linux64.sh
++					 metis install-5.0.1-linux64.sh
++					 triangle install-linux64.sh 
++					 gsl install-linux64.sh 
++					 adjoinablempi install.sh
++					 adolc install-withampi.sh
++					 shell2junit install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=3
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_caladan_ampi
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19470)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19471)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=2
++NUMCPUS_RUN=3
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19471-19472.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19471-19472.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19471-19472.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19471)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19472)
+@@ -15,7 +15,7 @@
+ 				--with-matlab-dir=$MATLAB_DIR \
+ 				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+ #MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19471)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19472)
+@@ -24,7 +24,7 @@
+ 				 --enable-development \
+ 				 --enable-debugging CXXFLAGS="-g -O0" '
+ #MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19472-19473.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19472-19473.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19472-19473.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19472)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19473)
+@@ -20,9 +20,9 @@
+ 				 --with-numthreads=4  \
+ 				 --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+ 				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
++				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 				 --enable-development \
+-				 --enable-debugging CXXFLAGS="-g -O0" '
++
+ #MATLAB path
+ MATLAB_PATH="/usr/local/MATLAB/R2015a"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19473-19474.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19473-19474.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19473-19474.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19473)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19474)
+@@ -21,7 +21,7 @@
+ 				 --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+ 				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+-				 --enable-development \
++				 --enable-development '
+ 
+ #MATLAB path
+ MATLAB_PATH="/usr/local/MATLAB/R2015a"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19474-19475.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19474-19475.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19474-19475.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test3019.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3019.m	(revision 19474)
++++ ../trunk-jpl/test/NightlyRun/test3019.m	(revision 19475)
+@@ -1,7 +1,4 @@
+ %Test Name: SquareShelfConstrainedTherTranAdolcReverseVsForward
+-SquareShelfConstrainedTherTranAdolcReverseVsForward
+-%Test Name: SquareShelfConstrainedTherTranAdolcReverseVsForward
+-SquareShelfConstrainedTherTranAdolcReverseVsForward
+ %test reverse scalar vs forward vectorial drivers in ADOLC, using the test3009 setup, equivalent to test109 setup.
+ md=triangle(model(),'../Exp/Square.exp',100000.);
+ md=setmask(md,'all','');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19475-19476.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19475-19476.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19475-19476.diff	(revision 20498)
@@ -0,0 +1,287 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19475)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19476)
+@@ -142,6 +142,7 @@
+ 	basalelement->FindParam(&domaintype,DomainTypeEnum);
+ 	basalelement->FindParam(&calvinglaw,CalvingLawEnum);
+ 	basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
++	calvinglaw=DefaultCalvingEnum;
+ 	switch(domaintype){
+ 		case Domain2DverticalEnum:   dim = 1; break;
+ 		case Domain2DhorizontalEnum: dim = 2; break;
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19475)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19476)
+@@ -844,6 +844,57 @@
+ 
+ }
+ /*}}}*/
++void FemModel::ResetLevelset(void){/*{{{*/
++
++	/*recover my_rank:*/
++	int my_rank   = IssmComm::GetRank();
++	int num_procs = IssmComm::GetSize();
++
++	/*1: go throug all elements of this partition and figure out how many
++	 * segments we have (corresopnding to levelset = 0)*/
++	DataSet* segments=new DataSet();
++	for(int i=0;i<elements->Size();i++){
++		Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));
++		element->WriteLevelsetSegment(segments);
++	}
++
++	/*2: now get the segments from all partitions*/
++	int  segcount=segments->Size();
++	int* allsegcount=xNew<int>(num_procs);
++	ISSM_MPI_Gather(&segcount,1,ISSM_MPI_INT,allsegcount,1,ISSM_MPI_INT,0,IssmComm::GetComm());
++	ISSM_MPI_Bcast(allsegcount,num_procs,ISSM_MPI_INT,0,IssmComm::GetComm());
++
++	/* Every cpu should start its own dof count at the end of the dofcount from cpu-1*/
++	int numseg_offset=0;
++	int numseg=0;
++	for(int i=0;i<my_rank;  i++) numseg_offset+=allsegcount[i];
++	for(int i=0;i<num_procs;i++) numseg+=allsegcount[i];
++	IssmDouble* segmentlist    = xNewZeroInit<IssmDouble>(4*numseg);
++	IssmDouble* allsegmentlist = xNewZeroInit<IssmDouble>(4*numseg);
++	for(int i=0;i<segments->Size();i++){
++		Contour<IssmDouble>* segment=(Contour<IssmDouble>*)segments->GetObjectByOffset(i);
++		_assert_(segment->nods == 2);
++		segmentlist[(numseg_offset+i)*4 + 0] = segment->x[0];
++		segmentlist[(numseg_offset+i)*4 + 1] = segment->y[0];
++		segmentlist[(numseg_offset+i)*4 + 2] = segment->x[1];
++		segmentlist[(numseg_offset+i)*4 + 3] = segment->y[1];
++	}
++	ISSM_MPI_Allreduce((void*)segmentlist,(void*)allsegmentlist,4*numseg,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
++	delete segments;
++	xDelete<IssmDouble>(segmentlist);
++	xDelete<int>(allsegcount);
++
++	/*3: update levelset for all elements*/
++	for(int i=0;i<elements->Size();i++){
++		Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));
++		element->ResetLevelsetFromSegmentlist(allsegmentlist,numseg);
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(allsegmentlist);
++
++}
++/*}}}*/
+ void FemModel::Responsex(IssmDouble* responses,const char* response_descriptor){/*{{{*/
+ 
+ 	int response_descriptor_enum=StringToEnumx(response_descriptor);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19475)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19476)
+@@ -177,6 +177,8 @@
+ 		virtual void	    CalvingRateLevermann(void)=0;
+ 		virtual void       CalvingRatePi(void)=0;
+ 		virtual void       CalvingRateDev(void){_error_("not implemented yet");};
++		virtual void       WriteLevelsetSegment(DataSet* segments){_error_("not implemented yet");};
++		virtual void       ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments){_error_("not implemented yet");};
+ 		virtual IssmDouble CharacteristicLength(void)=0;
+ 		virtual void       ComputeBasalStress(Vector<IssmDouble>* sigma_b)=0;
+ 		virtual void       ComputeDeviatoricStressTensor(void)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19475)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19476)
+@@ -349,7 +349,7 @@
+ 	IssmDouble  calvingratey[NUMVERTICES];
+ 	IssmDouble  calvingrate[NUMVERTICES];
+ 	IssmDouble  lambda1,lambda2,ex,ey,vx,vy,vel;
+-	IssmDouble  sigma_vm,sigma_max;
++	IssmDouble  sigma_vm,sigma_max,epse_2;
+ 
+ 	/* Get node coordinates and dof list: */
+ 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+@@ -383,8 +383,15 @@
+ 		lambda2 = max(lambda2,0.);
+ 
+ 		/*Calculate sigma_vm*/
+-		sigma_vm  = sqrt(3./2.) * B * pow(lambda1*lambda1 + lambda2*lambda2,1./(2.*n));
++		epse_2    = 1./2. *(lambda1*lambda1 + lambda2*lambda2);
++		sigma_vm  = sqrt(3.) * B * pow(epse_2,1./(2.*n));
++		//sigma_max = 125.e+3;
+ 		sigma_max = 350.e+3;
++		sigma_max = 450.e+3;
++		sigma_max = 800.e+3; //too much
++		sigma_max = 700.e+3;
++		sigma_max = 670.e+3;
++		//sigma_max = 550.e+3;
+ 
+ 		/*Assign values*/
+ 		calvingratex[iv]=vx*sigma_vm/sigma_max;
+@@ -401,6 +408,126 @@
+ 	delete gauss;
+ }
+ /*}}}*/
++void       Tria::WriteLevelsetSegment(DataSet* segments){/*{{{*/
++
++	if(!this->IsZeroLevelset(MaskIceLevelsetEnum)) return;
++
++	IssmDouble* xyz_list_zero = NULL;
++	IssmDouble  xyz_list[NUMVERTICES][3];
++	::GetVerticesCoordinates(&xyz_list[0][0],this->vertices,NUMVERTICES);
++	this->ZeroLevelsetCoordinates(&xyz_list_zero,&xyz_list[0][0], MaskIceLevelsetEnum);
++	if(xyz_list_zero){
++		IssmDouble x[2];
++		IssmDouble y[2];
++		x[0] = xyz_list_zero[0*3 + 0]; x[1] = xyz_list_zero[1*3 + 0];
++		y[0] = xyz_list_zero[0*3 + 1]; y[1] = xyz_list_zero[1*3 + 1];
++		segments->AddObject(new Contour<IssmDouble>(segments->Size()+1,2,&x[0],&y[0],false));
++	}
++	xDelete<IssmDouble>(xyz_list_zero);
++
++//	IssmDouble ls[NUMVERTICES];
++//	IssmDouble  xyz_list[NUMVERTICES][3];
++//
++//	if(IsIceInElement()){
++//
++//		/*Retrieve all inputs and parameters*/
++//		GetInputListOnVertices(&ls[0],levelset_enum);
++//
++//		/*If the level set is awlays <0, there is no ice front here*/
++//		bool iszerols= false;
++//		if(IsIceInElement()){
++//			if(ls[0]*ls[1]<0. || ls[0]*ls[2]<0. || (ls[0]*ls[1]*ls[2]==0. && ls[0]*ls[1]+ls[0]*ls[2]+ls[1]*ls[2]<=0.)){
++//				iszerols = true;
++//			}
++//		}
++//
++//		if(iszerols){
++//			/*OK we have one segment!*/
++//			::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++//			int count = 0;
++//			IssmDouble x[2];
++//			IssmDouble y[2];
++//
++//			for(int i=0;i<NUMVERTICES,i++){
++//				int index1 = i;
++//				int index1 = (i+1)%3;
++//				if(ls[index1]<=0 && ls[index2]>=0){
++//
++//				}
++//
++//			}
++//			Contour* segment = new Contour<IssmDouble>(segment->Size()+1,2,x,y,false);
++//		}
++//
++//	}
++//
++//	_error_("STOP");
++}
++/*}}}*/
++void       Tria::ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments){/*{{{*/
++
++	/*Intermediaries*/
++	double d,xn,yn;
++
++	/*Get current levelset and vertex coordinates*/
++	IssmDouble ls[NUMVERTICES];
++	IssmDouble  xyz_list[NUMVERTICES][3];
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++	GetInputListOnVertices(&ls[0],MaskIceLevelsetEnum);
++	InputDuplicate(MaskIceLevelsetEnum,PressureEnum);
++
++	/*Get distance from list of segments and reset ls*/
++	for(int j=0;j<NUMVERTICES;j++){
++		double dmin = 1.e+50;
++		for(int i=0;i<numsegments;i++){
++			IssmDouble x = xyz_list[j][0];
++			IssmDouble y = xyz_list[j][1];
++			IssmDouble l2 = (segments[4*i+2]-segments[4*i+0])*(segments[4*i+2]-segments[4*i+0]) + (segments[4*i+3]-segments[4*i+1])*(segments[4*i+3]-segments[4*i+1]);
++
++			/*Segment has a length of 0*/
++			if(l2==0.){
++				d = (x-segments[4*i+0])*(x-segments[4*i+0])+(y-segments[4*i+1])*(y-segments[4*i+1]);
++				if(d<dmin) dmin = d;
++				continue;
++			}
++
++			/*Consider the line extending the segment, parameterized as v + t (w - v).
++			 *We find projection of point p onto the line.
++			 *It falls where t = [(p-v) . (w-v)] / |w-v|^2*/
++			double t = ((x-segments[4*i+0])*(segments[4*i+2]-segments[4*i+0]) + (y-segments[4*i+1])*(segments[4*i+3]-segments[4*i+1]))/l2;
++			if(t < 0.0){
++				// Beyond the 'v' end of the segment
++				d = (x-segments[4*i+0])*(x-segments[4*i+0])+(y-segments[4*i+1])*(y-segments[4*i+1]);
++			}
++			else if (t > 1.0){
++				// Beyond the 'w' end of the segment
++				d = (x-segments[4*i+2])*(x-segments[4*i+2])+(y-segments[4*i+3])*(y-segments[4*i+3]);
++			}
++			else{
++				// Projection falls on the segment
++				xn = segments[4*i+0] + t * (segments[4*i+2] - segments[4*i+0]);
++				yn = segments[4*i+1] + t * (segments[4*i+3] - segments[4*i+1]);
++				d = (x-xn)*(x-xn)+(y-yn)*(y-yn);
++			}
++
++			if(d<dmin) dmin = d;
++		}
++
++		/*Update signed distance*/
++		dmin = sqrt(dmin);
++		if(dmin>10000) dmin=10000;
++		if(ls[j]>0){
++			ls[j] = dmin;
++		}
++		else{
++			ls[j] = - dmin;
++		}
++	}
++
++	/*Update Levelset*/
++	this->inputs->AddInput(new TriaInput(MaskIceLevelsetEnum,&ls[0],P1Enum));
++}
++/*}}}*/
+ IssmDouble Tria::CharacteristicLength(void){/*{{{*/
+ 
+ 	return sqrt(2*this->GetArea());
+@@ -3143,7 +3270,7 @@
+ 	int* indices=NULL;
+ 	IssmDouble* xyz_zero=NULL;
+ 
+-	this->GetLevelsetIntersection(&indices, &numiceverts, s, MaskIceLevelsetEnum, 0.);
++	this->GetLevelsetIntersection(&indices, &numiceverts, s,levelsetenum,0.);
+ 	
+ 	//TODO: check if for 2 iceverts front segment is oriented in CCW way
+ 	
+@@ -3164,7 +3291,7 @@
+ 	}
+ 	else if(numiceverts==NUMVERTICES){ //NUMVERTICES ice vertices: calving front lies on element edge
+ 		IssmDouble lsf[NUMVERTICES];
+-		this->GetInputListOnVertices(&lsf[0],MaskIceLevelsetEnum);
++		this->GetInputListOnVertices(&lsf[0],levelsetenum);
+ 		counter=0;
+ 		for(i=0;i<NUMVERTICES;i++){
+ 			if(lsf[indices[i]]==0.){
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19475)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19476)
+@@ -54,6 +54,8 @@
+ 		void			CalvingRateLevermann();
+ 		void			CalvingRatePi();
+ 		void			CalvingRateDev();
++		void			WriteLevelsetSegment(DataSet* segments);
++		void        ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments);
+ 		IssmDouble  CharacteristicLength(void);
+ 		void        ComputeBasalStress(Vector<IssmDouble>* sigma_b);
+ 		void        ComputeDeviatoricStressTensor();
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19475)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19476)
+@@ -93,6 +93,7 @@
+ 		void CalvingRateLevermannx();
+ 		void CalvingRatePix();
+ 		void CalvingRateDevx();
++		void ResetLevelset();
+ 		#ifdef  _HAVE_DAKOTA_
+ 		void DakotaResponsesx(double* d_responses,char** responses_descriptors,int numresponsedescriptors,int d_numresponses);
+ 		#endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19476-19477.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19476-19477.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19476-19477.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19476)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 19477)
+@@ -142,7 +142,6 @@
+ 	basalelement->FindParam(&domaintype,DomainTypeEnum);
+ 	basalelement->FindParam(&calvinglaw,CalvingLawEnum);
+ 	basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
+-	calvinglaw=DefaultCalvingEnum;
+ 	switch(domaintype){
+ 		case Domain2DverticalEnum:   dim = 1; break;
+ 		case Domain2DhorizontalEnum: dim = 2; break;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19477-19478.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19477-19478.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19477-19478.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19477)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19478)
+@@ -467,7 +467,7 @@
+ void       Tria::ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments){/*{{{*/
+ 
+ 	/*Intermediaries*/
+-	double d,xn,yn;
++	IssmDouble d,xn,yn;
+ 
+ 	/*Get current levelset and vertex coordinates*/
+ 	IssmDouble ls[NUMVERTICES];
+@@ -478,7 +478,7 @@
+ 
+ 	/*Get distance from list of segments and reset ls*/
+ 	for(int j=0;j<NUMVERTICES;j++){
+-		double dmin = 1.e+50;
++		IssmDouble dmin = 1.e+50;
+ 		for(int i=0;i<numsegments;i++){
+ 			IssmDouble x = xyz_list[j][0];
+ 			IssmDouble y = xyz_list[j][1];
+@@ -494,7 +494,7 @@
+ 			/*Consider the line extending the segment, parameterized as v + t (w - v).
+ 			 *We find projection of point p onto the line.
+ 			 *It falls where t = [(p-v) . (w-v)] / |w-v|^2*/
+-			double t = ((x-segments[4*i+0])*(segments[4*i+2]-segments[4*i+0]) + (y-segments[4*i+1])*(segments[4*i+3]-segments[4*i+1]))/l2;
++			IssmDouble t = ((x-segments[4*i+0])*(segments[4*i+2]-segments[4*i+0]) + (y-segments[4*i+1])*(segments[4*i+3]-segments[4*i+1]))/l2;
+ 			if(t < 0.0){
+ 				// Beyond the 'v' end of the segment
+ 				d = (x-segments[4*i+0])*(x-segments[4*i+0])+(y-segments[4*i+1])*(y-segments[4*i+1]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19478-19479.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19478-19479.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19478-19479.diff	(revision 20498)
@@ -0,0 +1,729 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 19479)
+@@ -827,6 +827,12 @@
+ 			iomodel->FetchDataToInput(elements,PressureEnum);
+ 			iomodel->FetchDataToInput(elements,TemperatureEnum);
+ 			break;
++		case 7:
++			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
++			iomodel->FetchDataToInput(elements,FrictionCoefficientcoulombEnum);
++			iomodel->FetchDataToInput(elements,FrictionPEnum);
++			iomodel->FetchDataToInput(elements,FrictionQEnum);
++			break;
+ 		default:
+ 			_error_("not supported");
+ 	}
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19478)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19479)
+@@ -47,8 +47,12 @@
+ 	BasalforcingsDeepwaterMeltingRateEnum,
+ 	BasalforcingsDeepwaterElevationEnum,
+ 	BasalforcingsUpperwaterElevationEnum,
++	BasalforcingsMeltrateFactorEnum,
++	BasalforcingsThresholdThicknessEnum,
++	BasalforcingsUpperdepthMeltEnum,
+ 	FloatingMeltRateEnum,
+ 	LinearFloatingMeltRateEnum,
++	MismipFloatingMeltRateEnum,
+ 	BedEnum,
+ 	BaseEnum,
+ 	ConstantsGEnum,
+@@ -92,6 +96,7 @@
+ 	FlowequationVertexEquationEnum,
+ 	FrictionAsEnum,
+ 	FrictionCoefficientEnum,
++	FrictionCoefficientcoulombEnum,
+ 	FrictionPEnum,
+ 	FrictionQEnum,
+ 	FrictionMEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19479)
+@@ -53,8 +53,12 @@
+ 		case BasalforcingsDeepwaterMeltingRateEnum : return "BasalforcingsDeepwaterMeltingRate";
+ 		case BasalforcingsDeepwaterElevationEnum : return "BasalforcingsDeepwaterElevation";
+ 		case BasalforcingsUpperwaterElevationEnum : return "BasalforcingsUpperwaterElevation";
++		case BasalforcingsMeltrateFactorEnum : return "BasalforcingsMeltrateFactor";
++		case BasalforcingsThresholdThicknessEnum : return "BasalforcingsThresholdThickness";
++		case BasalforcingsUpperdepthMeltEnum : return "BasalforcingsUpperdepthMelt";
+ 		case FloatingMeltRateEnum : return "FloatingMeltRate";
+ 		case LinearFloatingMeltRateEnum : return "LinearFloatingMeltRate";
++		case MismipFloatingMeltRateEnum : return "MismipFloatingMeltRate";
+ 		case BedEnum : return "Bed";
+ 		case BaseEnum : return "Base";
+ 		case ConstantsGEnum : return "ConstantsG";
+@@ -98,6 +102,7 @@
+ 		case FlowequationVertexEquationEnum : return "FlowequationVertexEquation";
+ 		case FrictionAsEnum : return "FrictionAs";
+ 		case FrictionCoefficientEnum : return "FrictionCoefficient";
++		case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb";
+ 		case FrictionPEnum : return "FrictionP";
+ 		case FrictionQEnum : return "FrictionQ";
+ 		case FrictionMEnum : return "FrictionM";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19479)
+@@ -53,8 +53,12 @@
+ 	      else if (strcmp(name,"BasalforcingsDeepwaterMeltingRate")==0) return BasalforcingsDeepwaterMeltingRateEnum;
+ 	      else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum;
+ 	      else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum;
++	      else if (strcmp(name,"BasalforcingsMeltrateFactor")==0) return BasalforcingsMeltrateFactorEnum;
++	      else if (strcmp(name,"BasalforcingsThresholdThickness")==0) return BasalforcingsThresholdThicknessEnum;
++	      else if (strcmp(name,"BasalforcingsUpperdepthMelt")==0) return BasalforcingsUpperdepthMeltEnum;
+ 	      else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
+ 	      else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;
++	      else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
+ 	      else if (strcmp(name,"Bed")==0) return BedEnum;
+ 	      else if (strcmp(name,"Base")==0) return BaseEnum;
+ 	      else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
+@@ -98,6 +102,7 @@
+ 	      else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum;
+ 	      else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
+ 	      else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
++	      else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
+ 	      else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
+ 	      else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
+ 	      else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
+@@ -131,15 +136,15 @@
+ 	      else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
+ 	      else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
+-	      else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
++         else stage=2;
++   }
++   if(stage==2){
++	      if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
+ 	      else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
+ 	      else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
+ 	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+-         else stage=2;
+-   }
+-   if(stage==2){
+-	      if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
++	      else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
+@@ -254,15 +259,15 @@
+ 	      else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
+ 	      else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
+ 	      else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
+-	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
++         else stage=3;
++   }
++   if(stage==3){
++	      if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
+-         else stage=3;
+-   }
+-   if(stage==3){
+-	      if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
++	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
+ 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
+ 	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
+@@ -377,15 +382,15 @@
+ 	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
+ 	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
+-	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
++	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+ 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+ 	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+@@ -500,15 +505,15 @@
+ 	      else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum;
+ 	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
+ 	      else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
+-	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
+ 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+ 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
+ 	      else if (strcmp(name,"Node")==0) return NodeEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
++	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+@@ -623,15 +628,15 @@
+ 	      else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
+ 	      else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
+ 	      else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
+-	      else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
+ 	      else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
+ 	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
+ 	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+ 	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
++	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
+ 	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
+ 	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
+ 	      else if (strcmp(name,"StressMaxPrincipal")==0) return StressMaxPrincipalEnum;
+@@ -746,15 +751,15 @@
+ 	      else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
+ 	      else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
+ 	      else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
+-	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
+ 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
+ 	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
+ 	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+ 	      else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
++	      else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
+ 	      else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
+ 	      else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
+ 	      else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
+@@ -869,15 +874,15 @@
+ 	      else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
+-	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+ 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+ 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
+ 	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"Separate")==0) return SeparateEnum;
++	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19479)
+@@ -181,6 +181,11 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsDeepwaterElevationEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperwaterElevationEnum));
+ 			break;
++		case MismipFloatingMeltRateEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsMeltrateFactorEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsThresholdThicknessEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperdepthMeltEnum));
++			break;
+ 		default:
+ 			_error_("Basal forcing model "<<EnumToStringx(smb_model)<<" not supported yet");
+ 	}
+Index: ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 19479)
+@@ -23,6 +23,10 @@
+ 			if(VerboseSolution())_printf_("	call Linear Floating melting rate module\n");
+ 			LinearFloatingiceMeltingRatex(femmodel);
+ 			break;
++		case MismipFloatingMeltRateEnum:
++			if(VerboseSolution())_printf_("	call Mismip Floating melting rate module\n");
++			MismipFloatingiceMeltingRatex(femmodel);
++			break;
+ 		default:
+ 			_error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
+ 	}
+@@ -37,3 +41,11 @@
+ 	}
+ 
+ }/*}}}*/
++void MismipFloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/
++
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		element->MismipFloatingiceMeltingRate();
++	}
++
++}/*}}}*/
+Index: ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h	(revision 19478)
++++ ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h	(revision 19479)
+@@ -10,5 +10,6 @@
+ /* local prototypes: */
+ void FloatingiceMeltingRatex(FemModel* femmodel);
+ void LinearFloatingiceMeltingRatex(FemModel* femmodel);
++void MismipFloatingiceMeltingRatex(FemModel* femmodel);
+ 
+ #endif  /* _FloatingiceMeltingRatex_H*/
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.h	(revision 19478)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.h	(revision 19479)
+@@ -32,6 +32,7 @@
+ 		void  GetAlphaViscousComplement(IssmDouble* alpha_complement,Gauss* gauss);
+ 		void  GetAlphaHydroComplement(IssmDouble* alpha_complement,Gauss* gauss);
+ 		void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
++		void  GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss);
+ 		void  GetAlpha2Hydro(IssmDouble* palpha2,Gauss* gauss);
+ 		void  GetAlpha2Temp(IssmDouble* palpha2,Gauss* gauss);
+ 		void  GetAlpha2Viscous(IssmDouble* palpha2,Gauss* gauss);
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19479)
+@@ -210,11 +210,85 @@
+ 		case 6:
+ 			GetAlpha2WeertmanTemp(palpha2,gauss);
+ 			break;
++		case 7:
++			GetAlpha2Coulomb(palpha2,gauss);
++			break;
+ 	  default:
+ 			_error_("not supported");
+ 	}
+ 
+ }/*}}}*/
++void Friction::GetAlpha2Coulomb(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
++
++	/*This routine calculates the basal friction coefficient 
++	  alpha2= drag^2 * Neff ^r * | vel | ^(s-1), with Neff=rho_ice*g*thickness+rho_ice*g*base, r=q/p and s=1/p**/
++
++	/*diverse: */
++	IssmDouble  r,s;
++	IssmDouble  drag_p, drag_q;
++	IssmDouble  Neff;
++	IssmDouble  thickness,base,bed,floatation_thickness;
++	IssmDouble  vx,vy,vz,vmag;
++	IssmDouble  drag_coefficient,drag_coefficient_coulomb;
++	IssmDouble  alpha2,alpha2_coulomb;
++
++	/*Recover parameters: */
++	element->GetInputValue(&drag_p,FrictionPEnum);
++	element->GetInputValue(&drag_q,FrictionQEnum);
++	element->GetInputValue(&thickness, gauss,ThicknessEnum);
++	element->GetInputValue(&base, gauss,BaseEnum);
++	element->GetInputValue(&bed, gauss,BedEnum);
++	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
++	element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum);
++	IssmDouble rho_freshwater   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
++	IssmDouble rho_water        = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	IssmDouble rho_ice          = element->GetMaterialParameter(MaterialsRhoIceEnum);
++	IssmDouble gravity          = element->GetMaterialParameter(ConstantsGEnum);
++
++	//compute r and q coefficients: */
++	r=drag_q/drag_p;
++	s=1./drag_p;
++
++	//From base and thickness, compute effective pressure when drag is viscous:
++	Neff=gravity*(rho_ice*thickness+rho_water*base);
++	if(Neff<0)Neff=0;
++
++	switch(dim){
++		case 1:
++			element->GetInputValue(&vx,gauss,VxEnum);
++			vmag=sqrt(vx*vx);
++			break;
++		case 2:
++			element->GetInputValue(&vx,gauss,VxEnum);
++			element->GetInputValue(&vy,gauss,VyEnum);
++			vmag=sqrt(vx*vx+vy*vy);
++			break;
++		case 3:
++			element->GetInputValue(&vx,gauss,VxEnum);
++			element->GetInputValue(&vy,gauss,VyEnum);
++			element->GetInputValue(&vz,gauss,VzEnum);
++			vmag=sqrt(vx*vx+vy*vy+vz*vz);
++			break;
++		default:
++			_error_("not supported");
++	}
++
++	/*Check to prevent dividing by zero if vmag==0*/
++	if(vmag==0. && (s-1.)<0.) alpha2=0.;
++	else alpha2=drag_coefficient*drag_coefficient*pow(Neff,r)*pow(vmag,(s-1.));
++
++	floatation_thickness=0;
++	if(bed<0) floatation_thickness=-rho_freshwater/rho_ice*bed;
++	if(vmag==0.) alpha2_coulomb=0.;
++	else alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_water*gravity*(thickness-floatation_thickness)/vmag;
++
++	if(alpha2_coulomb<alpha2) alpha2=alpha2_coulomb;
++
++	_assert_(!xIsNan<IssmDouble>(alpha2));
++
++	/*Assign output pointers:*/
++	*palpha2=alpha2;
++}/*}}}*/
+ void Friction::GetAlpha2Hydro(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
+ 
+ 	/*This routine calculates the basal friction coefficient 
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19478)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19479)
+@@ -122,6 +122,7 @@
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
++		void               MismipFloatingiceMeltingRate(); 
+ 		ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
+ 		ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19478)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19479)
+@@ -8,6 +8,7 @@
+ #else
+ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+ #endif
++#include <math.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include "../classes.h"
+@@ -1647,6 +1648,31 @@
+ 
+ }
+ /*}}}*/
++void       Element::MismipFloatingiceMeltingRate(){/*{{{*/
++
++	int numvertices      = this->GetNumberOfVertices();
++	IssmDouble  meltratefactor,thresholdthickness,upperdepthmelt;
++	IssmDouble* base     = xNew<IssmDouble>(numvertices);
++	IssmDouble* bed      = xNew<IssmDouble>(numvertices);
++	IssmDouble* values   = xNew<IssmDouble>(numvertices);
++
++	parameters->FindParam(&meltratefactor,BasalforcingsMeltrateFactorEnum);
++	parameters->FindParam(&thresholdthickness,BasalforcingsThresholdThicknessEnum);
++	parameters->FindParam(&upperdepthmelt,BasalforcingsUpperdepthMeltEnum);
++
++	this->GetInputListOnVertices(base,BaseEnum);
++	this->GetInputListOnVertices(bed,BedEnum);
++	for(int i=0;i<numvertices;i++){
++		if(base[i]<upperdepthmelt)  values[i]=0;
++		else values[i]=meltratefactor*(tanh(base[i]-bed[i])/thresholdthickness)*(upperdepthmelt-bed[i]);
++	}
++
++	this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
++	xDelete<IssmDouble>(base);
++	xDelete<IssmDouble>(bed);
++	xDelete<IssmDouble>(values);
++
++}/*}}}*/
+ ElementMatrix* Element::NewElementMatrix(int approximation_enum){/*{{{*/
+ 	return new ElementMatrix(nodes,this->GetNumberOfNodes(),this->parameters,approximation_enum);
+ }
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19479)
+@@ -0,0 +1,67 @@
++%FRICTIONCOULOMB class definition
++%
++%   Usage:
++%      frictioncoulomb=frictioncoulomb();
++
++classdef frictioncoulomb
++	properties (SetAccess=public) 
++		coefficient        = NaN;
++		p                  = NaN;
++		q                  = NaN;
++		coefficientcoulomb = NaN;
++	end
++	methods
++		function createxml(self,fid) % {{{
++			fprintf(fid, '\n\n');
++			fprintf(fid, '%s\n', '<!-- Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p -->');
++			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p">','<section name="frictioncoulomb" />');   
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="coefficient" type="',   	class(self.coefficient),'" default="',     	convert2str(self.coefficient),'">',              '     <section name="frictioncoulomb" />','     <help> friction coefficient [SI] </help>','</parameter>');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="p" type="',               class(self.p),'" default="',                 convert2str(self.p),'">',   '     <section name="frictioncoulomb" />','     <help> p exponent </help>','</parameter>');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="q" type="',               class(self.q),'" default="',                 convert2str(self.q),'">',            '     <section name="frictioncoulomb" />','     <help> q exponent </help>','</parameter>');
++			fprintf(fid,'%s\n%s\n','</frame>');
++		end % }}}
++		function self = extrude(self,md) % {{{
++			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
++			self.coefficientcoulomb=project3d(md,'vector',self.coefficientcoulomb,'type','node','layer',1);
++			self.p=project3d(md,'vector',self.p,'type','element');
++			self.q=project3d(md,'vector',self.q,'type','element');
++		end % }}}
++		function self = frictioncoulomb(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			%Early return
++			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * rho_i * g * (h-h_f) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_fw / rho_i * bed))'));
++			fielddisplay(self,'coefficient','friction coefficient [SI]');
++			fielddisplay(self,'coefficientcoulomb','coulomb friction coefficient [SI]');
++			fielddisplay(self,'p','p exponent');
++			fielddisplay(self,'q','q exponent');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',FrictionLawEnum,'data',7,'format','Integer');
++			WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'enum',FrictionCoefficientEnum());
++			WriteData(fid,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1,'enum',FrictionCoefficientcoulombEnum());
++			WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2,'enum',FrictionPEnum());
++			WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2,'enum',FrictionQEnum());
++
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19479)
+@@ -0,0 +1,96 @@
++%MISMIP BASAL FORCINGS class definition
++%
++%   Usage:
++%      mismipbasalforcings=mismipbasalforcings();
++
++classdef mismipbasalforcings
++	properties (SetAccess=public) 
++		groundedice_melting_rate  = NaN;
++		meltrate_factor           = NaN;
++		threshold_thickness       = NaN;
++		upperdepth_melt           = NaN;
++		geothermalflux            = NaN;
++	end
++	methods
++     function createxml(self,fid) % {{{
++            fprintf(fid, '\n\n');
++            fprintf(fid, '%s\n', '<!-- basalforcings -->');
++			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="melting_rate" type="',            class(self.melting_rate),'" default="',              num2str(self.melting_rate),'">',              '     <section name="basalforcings" />','     <help> basal melting rate (positive if melting) [m/yr] </help>','</parameter>');
++             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="geothermalflux" type="',          class(self.geothermalflux),'" default="',            num2str(self.geothermalflux),'">',            '     <section name="basalforcings" />','     <help> geothermal heat flux [W/m^2] </help>','</parameter>');
++             
++        end % }}}
++		function self = mismipbasalforcings(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				case 1
++					self=structtoobj(mismipbasalforcings(),varargin{1});
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = initialize(self,md) % {{{
++
++			if isnan(self.groundedice_melting_rate),
++				self.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
++				disp('      no basalforcings.groundedice_melting_rate specified: values set as zero');
++			end
++
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++			%default values for melting parameterization
++			self.meltrate_factor        = 0.2;
++			self.threshold_thickness    = 75;
++			self.upperdepth_melt        = -100;
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
++			end
++			if ismember(BalancethicknessAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
++			end
++			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++			end
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   mismip basal forcings parameters:'));
++
++			fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
++			fielddisplay(self,'meltrate_factor','Melt-rate rate factor [1/yr]');
++			fielddisplay(self,'threshold_thickness','threshold thickness for saturation of basal melting [m]');
++			fielddisplay(self,'upperdepth_melt','depth above which the melt rate is zero [m]');
++			fielddisplay(self,'geothermalflux','geothermal heat flux [W/m^2]');
++
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.2422*24.0*3600.0;
++
++			floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
++			floatingice_melting_rate=md.basalforcings.meltrate_factor*tanh((md.geometry.base-md.geometry.bed)./md.basalforcings.threshold_thickness).*max(md.basalforcings.upperdepth_melt-md.geometry.base,0);
++
++			WriteData(fid,'enum',BasalforcingsEnum(),'data',MismipFloatingMeltRateEnum(),'format','Integer');
++			WriteData(fid,'data',floatingice_melting_rate,'format','DoubleMat','enum',BasalforcingsFloatingiceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','enum',BasalforcingsGroundediceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'fieldname','geothermalflux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'fieldname','meltrate_factor','format','Double','enum',BasalforcingsMeltrateFactorEnum(),'scale',1./yts)
++			WriteData(fid,'object',self,'fieldname','threshold_thickness','format','Double','enum',BasalforcingsThresholdThicknessEnum())
++			WriteData(fid,'object',self,'fieldname','upperdepth_melt','format','Double','enum',BasalforcingsUpperdepthMeltEnum())
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/enum/MismipFloatingMeltRateEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MismipFloatingMeltRateEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MismipFloatingMeltRateEnum.m	(revision 19479)
+@@ -0,0 +1,11 @@
++function macro=MismipFloatingMeltRateEnum()
++%MISMIPFLOATINGMELTRATEENUM - Enum of MismipFloatingMeltRate
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MismipFloatingMeltRateEnum()
++
++macro=StringToEnum('MismipFloatingMeltRate');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsUpperdepthMeltEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsUpperdepthMeltEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsUpperdepthMeltEnum.m	(revision 19479)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsUpperdepthMeltEnum()
++%BASALFORCINGSUPPERDEPTHMELTENUM - Enum of BasalforcingsUpperdepthMelt
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsUpperdepthMeltEnum()
++
++macro=StringToEnum('BasalforcingsUpperdepthMelt');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsThresholdThicknessEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsThresholdThicknessEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsThresholdThicknessEnum.m	(revision 19479)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsThresholdThicknessEnum()
++%BASALFORCINGSTHRESHOLDTHICKNESSENUM - Enum of BasalforcingsThresholdThickness
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsThresholdThicknessEnum()
++
++macro=StringToEnum('BasalforcingsThresholdThickness');
+Index: ../trunk-jpl/src/m/enum/FrictionCoefficientcoulombEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FrictionCoefficientcoulombEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FrictionCoefficientcoulombEnum.m	(revision 19479)
+@@ -0,0 +1,11 @@
++function macro=FrictionCoefficientcoulombEnum()
++%FRICTIONCOEFFICIENTCOULOMBENUM - Enum of FrictionCoefficientcoulomb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FrictionCoefficientcoulombEnum()
++
++macro=StringToEnum('FrictionCoefficientcoulomb');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19478)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19479)
+@@ -45,8 +45,12 @@
+ def BasalforcingsDeepwaterMeltingRateEnum(): return StringToEnum("BasalforcingsDeepwaterMeltingRate")[0]
+ def BasalforcingsDeepwaterElevationEnum(): return StringToEnum("BasalforcingsDeepwaterElevation")[0]
+ def BasalforcingsUpperwaterElevationEnum(): return StringToEnum("BasalforcingsUpperwaterElevation")[0]
++def BasalforcingsMeltrateFactorEnum(): return StringToEnum("BasalforcingsMeltrateFactor")[0]
++def BasalforcingsThresholdThicknessEnum(): return StringToEnum("BasalforcingsThresholdThickness")[0]
++def BasalforcingsUpperdepthMeltEnum(): return StringToEnum("BasalforcingsUpperdepthMelt")[0]
+ def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0]
+ def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0]
++def MismipFloatingMeltRateEnum(): return StringToEnum("MismipFloatingMeltRate")[0]
+ def BedEnum(): return StringToEnum("Bed")[0]
+ def BaseEnum(): return StringToEnum("Base")[0]
+ def ConstantsGEnum(): return StringToEnum("ConstantsG")[0]
+@@ -90,6 +94,7 @@
+ def FlowequationVertexEquationEnum(): return StringToEnum("FlowequationVertexEquation")[0]
+ def FrictionAsEnum(): return StringToEnum("FrictionAs")[0]
+ def FrictionCoefficientEnum(): return StringToEnum("FrictionCoefficient")[0]
++def FrictionCoefficientcoulombEnum(): return StringToEnum("FrictionCoefficientcoulomb")[0]
+ def FrictionPEnum(): return StringToEnum("FrictionP")[0]
+ def FrictionQEnum(): return StringToEnum("FrictionQ")[0]
+ def FrictionMEnum(): return StringToEnum("FrictionM")[0]
+Index: ../trunk-jpl/src/m/enum/BasalforcingsMeltrateFactorEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsMeltrateFactorEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsMeltrateFactorEnum.m	(revision 19479)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsMeltrateFactorEnum()
++%BASALFORCINGSMELTRATEFACTORENUM - Enum of BasalforcingsMeltrateFactor
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsMeltrateFactorEnum()
++
++macro=StringToEnum('BasalforcingsMeltrateFactor');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19479-19480.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19479-19480.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19479-19480.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 19479)
++++ ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 19480)
+@@ -20,11 +20,11 @@
+ 			/*Nothing to be done*/
+ 			break;
+ 		case LinearFloatingMeltRateEnum:
+-			if(VerboseSolution())_printf_("	call Linear Floating melting rate module\n");
++			if(VerboseSolution())_printf0_("	call Linear Floating melting rate module\n");
+ 			LinearFloatingiceMeltingRatex(femmodel);
+ 			break;
+ 		case MismipFloatingMeltRateEnum:
+-			if(VerboseSolution())_printf_("	call Mismip Floating melting rate module\n");
++			if(VerboseSolution())_printf0_("	call Mismip Floating melting rate module\n");
+ 			MismipFloatingiceMeltingRatex(femmodel);
+ 			break;
+ 		default:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19480-19481.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19480-19481.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19480-19481.diff	(revision 20498)
@@ -0,0 +1,91 @@
+Index: ../trunk-jpl/test/NightlyRun/test293.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test293.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test293.m	(revision 19481)
+@@ -0,0 +1,43 @@
++%Test Name: SquareShelfTranSSA2dMismipFloatingMeltParam
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',3);
++md.basalforcings=mismipbasalforcings(md.basalforcings);
++md.transient.isgroundingline=1;
++md.geometry.bed=min(md.geometry.base)*ones(md.mesh.numberofvertices,1);
++md.transient.requested_outputs={'default','BasalforcingsFloatingiceMeltingRate'};
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','BasalforcingsFloatingiceMeltingRate1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','BasalforcingsFloatingiceMeltingRate2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','BasalforcingsFloatingiceMeltingRate3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_values={...
++	(md.results.TransientSolution(1).Vx),...
++	(md.results.TransientSolution(1).Vy),...
++	(md.results.TransientSolution(1).Vel),...
++	(md.results.TransientSolution(1).Pressure),...
++	(md.results.TransientSolution(1).Base),...
++	(md.results.TransientSolution(1).Surface),...
++	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).BasalforcingsFloatingiceMeltingRate),...
++	(md.results.TransientSolution(2).Vx),...
++	(md.results.TransientSolution(2).Vy),...
++	(md.results.TransientSolution(2).Vel),...
++	(md.results.TransientSolution(2).Pressure),...
++	(md.results.TransientSolution(2).Base),...
++	(md.results.TransientSolution(2).Surface),...
++	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).BasalforcingsFloatingiceMeltingRate),...
++	(md.results.TransientSolution(3).Vx),...
++	(md.results.TransientSolution(3).Vy),...
++	(md.results.TransientSolution(3).Vel),...
++	(md.results.TransientSolution(3).Pressure),...
++	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(3).Surface),...
++	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).BasalforcingsFloatingiceMeltingRate),...
++	};
+Index: ../trunk-jpl/test/Archives/Archive293.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive293.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19480)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19481)
+@@ -1663,8 +1663,12 @@
+ 	this->GetInputListOnVertices(base,BaseEnum);
+ 	this->GetInputListOnVertices(bed,BedEnum);
+ 	for(int i=0;i<numvertices;i++){
+-		if(base[i]<upperdepthmelt)  values[i]=0;
+-		else values[i]=meltratefactor*(tanh(base[i]-bed[i])/thresholdthickness)*(upperdepthmelt-bed[i]);
++		if(base[i]>upperdepthmelt){
++			values[i]=0;
++		}
++		else{
++			values[i]=meltratefactor*tanh((base[i]-bed[i])/thresholdthickness)*(upperdepthmelt-base[i]);
++		}
+ 	}
+ 
+ 	this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19480)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19481)
+@@ -66,6 +66,9 @@
+ 				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
+ 			end
++			if isnan(md.geometry.bed),
++				md = checkmessage(md,['requesting mismip basal melting parameterization, but bathymetry is absent!']);
++			end
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   mismip basal forcings parameters:'));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19481-19482.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19481-19482.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19481-19482.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp	(revision 19481)
++++ ../trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp	(revision 19482)
+@@ -56,6 +56,9 @@
+ 		case 14:
+ 			z=y;
+ 			return 8.0*pow(2, 1.0L/3.0L)*pow(PI, 2)*pow(z, 2)*(z - 2)*sin(4*PI*x*z)/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) - 0.0266666666666667*pow(2, 1.0L/3.0L)*PI*z*(z - 2)*(800.0*pow(PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - (-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x)) - (50*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 12.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 12.5*PI*x*cos(4*PI*x*z) - 50*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*x*z*sin(4*PI*x*z) - PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 4.0*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 4*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - 0.25*PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)) + 150*pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 7)))*cos(4*PI*x*z)/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) - 20.0*PI*x*cos(4*PI*x*z) - 1.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) + 4*PI*sin(4*PI*z)*cos(4*PI*x) + (1.0L/150.0L)*pow(2, 1.0L/3.0L)*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(160.0*pow(PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - 40.0*pow(PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*PI*x*z), 2) - 40.0*pow(PI, 2)*z*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (-8.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) + 4.0*PI*x*cos(4*PI*x*z) + 0.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x)) - (10*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 2.5*PI*x*cos(4*PI*x*z) - 10*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L);
++		case 15:
++			z=y;
++			return -24000000000*pow(z - 1, 2) - 1000000*PI*sin(10*PI*x);
+ 		case 21:
+ 			z=y;
+ 			return z - 4.0L/3.0L*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) + z*(6*pow(x, 2) - 6*x + 1))*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1)))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 1.0L/3.0L*pow(2, 1.0L/3.0L)*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1)))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) + 2*pow(2, 1.0L/3.0L)*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L) - 0.5 + pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L);
+@@ -113,6 +116,9 @@
+ 		case 14:
+ 			z=y;
+ 			return 4*PI*sin(4*PI*x)*cos(4*PI*z) + (1.0L/10.0L)*pow(2, 1.0L/3.0L)*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L) + (1.0L/750.0L)*pow(2, 1.0L/3.0L)*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(800.0*pow(PI, 3)*pow(z, 3)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - (-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x))*(40.0*pow(PI, 2)*x*z*(z - 2)*sin(4*PI*x*z) - 10.0*PI*z*cos(4*PI*x*z) - 10.0*PI*(z - 2)*cos(4*PI*x*z) + 1.25*PI*(32*cos(4*PI*x)/pow(x, 2) - 4*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(PI*pow(x, 3)) - 4*(4*pow(PI, 2)*pow(z, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(z, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) - 2*PI*z*(-PI*z + PI)*sin(4*PI*x*z) - 8*PI*z*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - (pow(PI, 2)*pow(z, 2) - 2*pow(PI, 2)*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 20*sin(4*PI*x)/(PI*pow(x, 3)) - 6*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 4)) - 6*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4)) + 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 5)) + 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 5))) + 8*pow(PI, 2)*sin(4*PI*x)) - (50*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 12.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 12.5*PI*x*cos(4*PI*x*z) - 50*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*x*z*sin(4*PI*x*z) - PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 4.0*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 4*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - 0.25*PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)) + 150*pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 7)))/pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L) - pow(2, 1.0L/3.0L)*(4.0*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 2)*pow(x, 3)*pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 1.0L/3.0L)) - 1.0L/15.0L*pow(2, 1.0L/3.0L)*(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) + (-1.0*pow(PI, 2)*pow(x, 2)*z + pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(160.0*pow(PI, 3)*x*pow(z, 2)*pow(z - 2, 2)*sin(4*PI*x*z)*cos(4*PI*x*z) - 40.0*pow(PI, 2)*pow(z, 2)*(z - 2)*pow(cos(4*PI*x*z), 2) - 40.0*pow(PI, 2)*z*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (-8.0*pow(PI, 2)*pow(x, 2)*(z - 2)*sin(4*PI*x*z) + 4.0*PI*x*cos(4*PI*x*z) + 0.25*PI*((16*pow(PI, 2)*x*z*(PI*x*z - PI*x)*cos(4*PI*x*z) + 4*pow(PI, 2)*x*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + 4*pow(PI, 2)*x*z*sin(4*PI*x*z) - 4*PI*x*(-PI*z + PI)*sin(4*PI*x*z) - 16*PI*x*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*cos(4*PI*x*z) - 16*PI*z*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z) + 4*PI*(PI*x*z - PI*x)*sin(4*PI*x*z) - 8*(pow(PI, 2)*x*z - pow(PI, 2)*x)*sin(4*PI*x*z) - PI*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - PI*cos(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) + 3*(-4*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) + PI*x*cos(4*PI*x*z) + 4*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))))*(-10.0*PI*x*(z - 2)*cos(4*PI*x*z) + 0.3125*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) - 2.5*sin(4*PI*x*z) - 2*PI*cos(4*PI*x)) - (10*PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 2.5*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 2.5*PI*x*cos(4*PI*x*z) - 10*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z))*(4*pow(PI, 2)*pow(x, 2)*(PI*x*z - PI*x)*cos(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z) + pow(PI, 2)*pow(x, 2)*sin(4*PI*x*z) - 8.0*PI*x*(pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*cos(4*PI*x*z))/(pow(PI, 4)*pow(x, 6)))/(pow(PI, 2)*pow(x, 3)*pow(4.0*pow(PI, 2)*pow(z, 2)*pow(z - 2, 2)*pow(cos(4*PI*x*z), 2) + (1.0L/2.0L)*pow(2.0*PI*x*(z - 2)*cos(4*PI*x*z) - 0.0625*PI*(16*sin(4*PI*x)/(PI*pow(x, 2)) + 4*(8*pow(PI, 2)*pow(x, 2) + 1)*cos(4*PI*x)/(pow(PI, 2)*pow(x, 3)) + 4*(-4*PI*z*(PI*x*z - PI*x)*sin(4*PI*x*z) + PI*z*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - (-PI*z + PI)*cos(4*PI*x*z) + 4*(pow(PI, 2)*x*pow(z, 2) - 2*pow(PI, 2)*x*z)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 3)) - 3*(8*pow(PI, 2)*pow(x, 2) + 1)*sin(4*PI*x)/(pow(PI, 3)*pow(x, 4)) - 3*(4*(PI*x*z - PI*x)*cos(4*PI*x*z) + (8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*sin(4*PI*x*z))/(pow(PI, 3)*pow(x, 4))) + 0.5*sin(4*PI*x*z) + (2.0L/5.0L)*PI*cos(4*PI*x), 2) + pow(PI*x*(PI*x*z - PI*x)*sin(4*PI*x*z) - 0.25*PI*x*(8*pow(PI, 2)*pow(x, 2)*pow(z, 2) - 16*pow(PI, 2)*pow(x, 2)*z - 1)*cos(4*PI*x*z) - 0.25*PI*x*cos(4*PI*x*z) - (pow(PI, 2)*pow(x, 2)*z - pow(PI, 2)*pow(x, 2))*sin(4*PI*x*z), 2)/(pow(PI, 4)*pow(x, 6)), 4.0L/3.0L));
++		case 15:
++			z=y;
++			return 54000000000000*pow(PI, 2)*sin(30*PI*x) + 6000000000000*pow(PI, 2)*sin(10*PI*x + (1.0L/5.0L)*PI) - 10000000;
+ 		case 21:
+ 			z=y;
+ 			return x + (4.0L/3.0L)*pow(2, 1.0L/3.0L)*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x))*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2) + 2*pow(x, 2)*pow(x - 1, 2)*(z - 1) + pow(x, 2)*pow(x - 1, 2)*(2*z - 1) - 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) + 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) - z*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1)))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 1.0L/3.0L*pow(2, 1.0L/3.0L)*(4*(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1))*(pow(x, 2)*z*(z - 1)*(2*z - 1) + 4*x*z*(x - 1)*(z - 1)*(2*z - 1) + z*pow(x - 1, 2)*(z - 1)*(2*z - 1)) + 4*(2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - 3*pow(z, 2)*(6*pow(x, 2) - 6*x + 1) + z*(6*pow(x, 2) - 6*x + 1))*(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x)) + (2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1)))*(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 4.0L/3.0L) - 0.5 - 2*pow(2, 1.0L/3.0L)*(2*pow(x, 3) - 3*pow(x, 2) + x + 6*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 6*z*(2*pow(x, 3) - 3*pow(x, 2) + x))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L) + pow(2, 1.0L/3.0L)*(2*pow(x, 2)*z*(x - 1)*(z - 1) + pow(x, 2)*z*(x - 1)*(2*z - 1) + pow(x, 2)*(x - 1)*(z - 1)*(2*z - 1) + 2*x*z*pow(x - 1, 2)*(z - 1) + x*z*pow(x - 1, 2)*(2*z - 1) + x*pow(x - 1, 2)*(z - 1)*(2*z - 1) - 3*pow(z, 4)*(2*x - 1) + 6*pow(z, 3)*(2*x - 1) - 3*pow(z, 2)*(2*x - 1))/pow(4*pow(pow(x, 2)*z*(x - 1)*(z - 1)*(2*z - 1) + x*z*pow(x - 1, 2)*(z - 1)*(2*z - 1), 2) + 4*pow(2*pow(z, 3)*(2*pow(x, 3) - 3*pow(x, 2) + x) - 3*pow(z, 2)*(2*pow(x, 3) - 3*pow(x, 2) + x) + z*(2*pow(x, 3) - 3*pow(x, 2) + x), 2) + (1.0L/2.0L)*pow(2*pow(x, 2)*z*pow(x - 1, 2)*(z - 1) + pow(x, 2)*z*pow(x - 1, 2)*(2*z - 1) + pow(x, 2)*pow(x - 1, 2)*(z - 1)*(2*z - 1) - pow(z, 4)*(6*pow(x, 2) - 6*x + 1) + 2*pow(z, 3)*(6*pow(x, 2) - 6*x + 1) - pow(z, 2)*(6*pow(x, 2) - 6*x + 1), 2), 1.0L/3.0L);
+@@ -135,7 +141,7 @@
+ 	IssmDouble a = 1.0;
+ 
+ 	switch(testid){
+-		case 1: case 2: case 7: case 8: case 11:  case 12: case 13: case 14: case 18: case 21: case 22:
++		case 1: case 2: case 7: case 8: case 11:  case 12: case 13: case 14: case 15: case 18: case 21: case 22:
+ 			return 0.;
+ 		case 3: 
+ 			return 2*pow(x, 2)*y*z*(x - 1)*(y - 1)*(2*y - 1) + 2*pow(x, 2)*y*(x - 1)*(y - 1)*(2*y - 1)*(z - 1) - 2*x*pow(y, 2)*z*(x - 1)*(2*x - 1)*(y - 1) - 2*x*pow(y, 2)*(x - 1)*(2*x - 1)*(y - 1)*(z - 1) + 2*x*y*z*pow(x - 1, 2)*(y - 1)*(2*y - 1) - 2*x*y*z*(x - 1)*(2*x - 1)*pow(y - 1, 2) + 2*x*y*pow(x - 1, 2)*(y - 1)*(2*y - 1)*(z - 1) - 2*x*y*(x - 1)*(2*x - 1)*pow(y - 1, 2)*(z - 1);
+@@ -163,6 +169,8 @@
+ 	switch(testid){
+ 		case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 21: case 22:
+ 			return 0.;
++		case 15:
++			return 1.e+5;
+ 		case 18:
+ 			return (120.0L/109.0L)*sqrt(109.)/(10*x - 3*z);
+ 		default:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19482-19483.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19482-19483.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19482-19483.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive293.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19483-19484.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19483-19484.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19483-19484.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test3019.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3019.py	(revision 19483)
++++ ../trunk-jpl/test/NightlyRun/test3019.py	(revision 19484)
+@@ -1,7 +1,4 @@
+ #Test Name: SquareShelfConstrainedTherTranAdolcReverseVsForward
+-SquareShelfConstrainedTherTranAdolcReverseVsForward
+-#Test Name: SquareShelfConstrainedTherTranAdolcReverseVsForward
+-SquareShelfConstrainedTherTranAdolcReverseVsForward
+ import numpy
+ from model import *
+ from triangle import *
Index: /issm/oecreview/Archive/19101-20495/ISSM-19484-19485.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19484-19485.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19484-19485.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19484)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19485)
+@@ -193,6 +193,8 @@
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'BasalforcingsGroundediceMeltingRate'),
+ 		field = field*yts;
++	elseif strcmp(fieldname,'BasalforcingsFloatingiceMeltingRate'),
++		field = field*yts;
+ 	elseif strcmp(fieldname,'TotalSmb'),
+ 		field = field/10.^12*yts; %(GigaTon/year)
+ 	elseif strcmp(fieldname,'SurfaceforcingsMassBalance'),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19485-19486.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19485-19486.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19485-19486.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/classes/flowequation.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.m	(revision 19485)
++++ ../trunk-jpl/src/m/classes/flowequation.m	(revision 19486)
+@@ -145,10 +145,10 @@
+ 			md = checkfield(md,'fieldname','flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2','P2bubble'});
+ 			md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'});
+ 			md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','LATaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart','LACrouzeixRaviart'});
+-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.);
+-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.);
+-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.);
+-			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.);
++			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>=',0.);
++			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>=',0.);
++			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>=',0.);
++			md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>=',0.);
+ 			md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',0.5);
+ 			md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19486-19487.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19486-19487.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19486-19487.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive293.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19487-19488.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19487-19488.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19487-19488.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19487)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19488)
+@@ -240,7 +240,6 @@
+ 	element->GetInputValue(&bed, gauss,BedEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum);
+-	IssmDouble rho_freshwater   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
+ 	IssmDouble rho_water        = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice          = element->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	IssmDouble gravity          = element->GetMaterialParameter(ConstantsGEnum);
+@@ -278,7 +277,7 @@
+ 	else alpha2=drag_coefficient*drag_coefficient*pow(Neff,r)*pow(vmag,(s-1.));
+ 
+ 	floatation_thickness=0;
+-	if(bed<0) floatation_thickness=-rho_freshwater/rho_ice*bed;
++	if(bed<0) floatation_thickness=-rho_water/rho_ice*bed;
+ 	if(vmag==0.) alpha2_coulomb=0.;
+ 	else alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_water*gravity*(thickness-floatation_thickness)/vmag;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19488-19489.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19488-19489.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19488-19489.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19488)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19489)
+@@ -133,6 +133,8 @@
+ 			case GslEnum: {
+ 				#ifdef _HAVE_GSL_
+ 				theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
++				#else
++				_error_("requesting GSL solver without GSL being compiled in!");
+ 				#endif
+ 			    break;
+ 						  }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19489-19490.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19489-19490.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19489-19490.diff	(revision 20498)
@@ -0,0 +1,140 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19489)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19490)
+@@ -721,6 +721,7 @@
+ 		AC_SUBST([ADOLCLIB])
+ 	fi
+ 	AM_CONDITIONAL([ADOLC], [test x$HAVE_ADOLC = xyes])
++        AM_COND_IF(ADOLC,[CXXFLAGS+=" -std=c++11"])
+ 	dnl }}}
+ 	dnl adolc-version{{{
+ 	AC_ARG_WITH([adolc-version],
+Index: ../trunk-jpl/externalpackages/adolc/install-withampi.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/adolc/install-withampi.sh	(revision 19489)
++++ ../trunk-jpl/externalpackages/adolc/install-withampi.sh	(revision 19490)
+@@ -4,7 +4,7 @@
+ #Some cleanup
+ rm -rf install src
+ 
+-git clone -b ampi git://git.mcs.anl.gov/adol-c.git src
++git clone https://gitlab.com/adol-c/adol-c.git src
+ #git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad
+ 
+ #Compile ADOL-C
+Index: ../trunk-jpl/src/c/shared/Numerics/isnan.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/isnan.h	(revision 19489)
++++ ../trunk-jpl/src/c/shared/Numerics/isnan.h	(revision 19490)
+@@ -12,13 +12,13 @@
+ #endif
+ 
+ /*If include cmath instead of math, isnan on linux64 murdo does not work: */
+-#include <math.h>
++#include <cmath>
+ 
+ template <class T> int xIsNan(const T& X) {
+ #ifdef _INTEL_WIN_
+ 		return (X!=X)?1:0;
+ #else
+-		return isnan(X);
++		return std::isnan(X);
+ #endif
+ }
+ 
+Index: ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp	(revision 19489)
++++ ../trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp	(revision 19490)
+@@ -231,16 +231,12 @@
+         IssmDouble*  adoubleEDFin=xNew<IssmDouble>(n*(n+1));  // packed inputs, i.e. matrix and right hand side
+         for(int i=0; i<n*n;i++)adoubleEDFin[i]    =A[i];      // pack matrix
+         for(int i=0; i<n;  i++)adoubleEDFin[i+n*n]=B[i];      // pack the right hand side
+-        IssmPDouble* pdoubleEDFin=xNew<IssmPDouble>(n*(n+1)); // provide space to transfer inputs during call_ext_fct
+-	IssmPDouble* pdoubleEDFout=xNew<IssmPDouble>(n);           // provide space to transfer outputs during call_ext_fct
+ 	// call the wrapped solver through the registry entry we retrieve from parameters
+ 	call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,
+-	             n*(n+1), pdoubleEDFin, adoubleEDFin,
+-	             n, pdoubleEDFout,X);
++	             n*(n+1), adoubleEDFin,
++	             n, X);
+ 	// for(int i=0; i<n;  i++) {ADOLC_DUMP_MACRO(X[i]);}
+ 	xDelete(adoubleEDFin);
+-	xDelete(pdoubleEDFin);
+-	xDelete(pdoubleEDFout);
+ }
+ /*}}}*/
+ #endif
+Index: ../trunk-jpl/src/c/cores/ad_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/ad_core.cpp	(revision 19489)
++++ ../trunk-jpl/src/c/cores/ad_core.cpp	(revision 19490)
+@@ -115,9 +115,6 @@
+ 			/*Branch according to AD driver: */
+ 			femmodel->parameters->FindParam(&driver,AutodiffDriverEnum);
+ 
+-			/* these are always needed regardless of the interpreter */
+-			anEDF_for_solverx_p->dp_x=xNew<double>(anEDF_for_solverx_p->max_n);
+-			anEDF_for_solverx_p->dp_y=xNew<double>(anEDF_for_solverx_p->max_m);
+ 
+ 			if (strcmp(driver,"fos_forward")==0){ /*{{{*/
+ 
+@@ -142,9 +139,6 @@
+ 				anEDF_for_solverx_p->fos_forward=EDF_fos_forward_for_solverx;
+ #endif
+ 
+-				/*allocate the space for the parameters to invoke the EDF fos_forward:*/
+-				anEDF_for_solverx_p->dp_X=xNew<double>(anEDF_for_solverx_p->max_n);
+-				anEDF_for_solverx_p->dp_Y=xNew<double>(anEDF_for_solverx_p->max_m);
+ 
+ 				/*call driver: */
+ 				fos_forward(my_rank,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir );
+@@ -189,9 +183,6 @@
+ #endif
+ 				// anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx;
+ 
+-				/*allocate the space for the parameters to invoke EDF fov_forward:*/
+-				anEDF_for_solverx_p->dpp_X=xNew<double>(anEDF_for_solverx_p->max_n, tangentDirNum);
+-				anEDF_for_solverx_p->dpp_Y=xNew<double>(anEDF_for_solverx_p->max_m, tangentDirNum);
+ 
+ 				/*seed matrix: */
+ 				seed=xNewZeroInit<double>(num_independents,tangentDirNum);
+@@ -251,9 +242,6 @@
+ 				anEDF_for_solverx_p->fos_reverse_iArr=fos_reverse_mumpsSolveEDF;
+ #endif
+ 
+-				/*allocate the space for the parameters to invoke the EDF fos_reverse :*/
+-				anEDF_for_solverx_p->dp_U=xNew<double>(anEDF_for_solverx_p->max_m);
+-				anEDF_for_solverx_p->dp_Z=xNew<double>(anEDF_for_solverx_p->max_n);
+ 
+ 				/*call driver: */
+ 				fos_reverse(my_rank,num_dependents,num_independents, aWeightVector, weightVectorTimesJac );
+@@ -295,9 +283,6 @@
+ 				anEDF_for_solverx_p->fov_reverse=EDF_fov_reverse_for_solverx;
+ 				#endif
+ 
+-				/*allocate the space for the parameters to invoke the EDF fos_reverse :*/
+-				anEDF_for_solverx_p->dpp_U=xNew<double>(weightNum,anEDF_for_solverx_p->max_m);
+-				anEDF_for_solverx_p->dpp_Z=xNew<double>(weightNum,anEDF_for_solverx_p->max_n);
+ 
+ 				/*seed matrix: */
+ 				weights=xNewZeroInit<double>(weightNum,num_dependents);
+@@ -330,17 +315,6 @@
+ 			} /*}}}*/
+ 			else _error_("driver: " << driver << " not yet supported!");
+ 
+-			/* delete the allocated space for the parameters:*/
+-			xDelete(anEDF_for_solverx_p->dp_x);
+-			xDelete(anEDF_for_solverx_p->dp_X);
+-			xDelete(anEDF_for_solverx_p->dpp_X);
+-			xDelete(anEDF_for_solverx_p->dp_y);
+-			xDelete(anEDF_for_solverx_p->dp_Y);
+-			xDelete(anEDF_for_solverx_p->dpp_Y);
+-			xDelete(anEDF_for_solverx_p->dp_U);
+-			xDelete(anEDF_for_solverx_p->dpp_U);
+-			xDelete(anEDF_for_solverx_p->dp_Z);
+-			xDelete(anEDF_for_solverx_p->dpp_Z);
+ 
+ 			if(VerboseAutodiff())_printf0_("   end AD core\n");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19490-19491.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19490-19491.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19490-19491.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/externalpackages/adolc/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/adolc/install.sh	(revision 19490)
++++ ../trunk-jpl/externalpackages/adolc/install.sh	(revision 19491)
+@@ -4,7 +4,7 @@
+ #Some cleanup
+ rm -rf install src
+ 
+-git clone -b ampi git://git.mcs.anl.gov/adol-c.git src
++git clone https://gitlab.com/adol-c/adol-c.git src
+ #git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad
+ 
+ #Compile ADOL-C
+Index: ../trunk-jpl/src/c/toolkits/mumps/MumpsSolve.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mumps/MumpsSolve.cpp	(revision 19490)
++++ ../trunk-jpl/src/c/toolkits/mumps/MumpsSolve.cpp	(revision 19491)
+@@ -320,19 +320,15 @@
+   for (int i=0;i<n;++i) { 
+     pack_A_rhs[local_nnz+i]=rhs[i];
+   }
+-  IssmPDouble *passivePack_A_rhs=xNew<IssmPDouble>(local_nnz+n);
+-  IssmPDouble *passiveSol=xNew<IssmPDouble>(n);
+   IssmDouble *sol=xNew<IssmDouble>(n);
+   call_ext_fct(xDynamicCast<GenericParam<Adolc_edf> * >(parameters->FindParamObject(AdolcParamEnum))->GetParameterValue().myEDF_for_solverx_p,
+ 	       packedDimsSparseArrLength, packedDimsSparseArr,
+-	       local_nnz+n, passivePack_A_rhs, pack_A_rhs, 
+-	       n, passiveSol,sol);
++	       local_nnz+n, pack_A_rhs, 
++	       n,sol);
+   for (int i=0;i<n;++i) { 
+     rhs[i]=sol[i];
+   }
+   xDelete(sol);
+-  xDelete(passiveSol);
+-  xDelete(passivePack_A_rhs);
+   xDelete(pack_A_rhs);
+   xDelete(packedDimsSparseArr);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19491-19492.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19491-19492.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19491-19492.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19491)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19492)
+@@ -70,7 +70,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=3
++NUMCPUS_RUN=1
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19491)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19492)
+@@ -80,7 +80,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=3
++NUMCPUS_RUN=1
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19491)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19492)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=3
++NUMCPUS_RUN=1
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19492-19493.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19492-19493.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19492-19493.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19492)
++++ ../trunk-jpl/src/m/plot/applyoptions.py	(revision 19493)
+@@ -236,6 +236,11 @@
+ 	    if options.exist('colorbarlines'):
+ 	    	locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbarlines'))
+ 	    	cb.add_lines(locs,['k' for i in range(len(locs))],npy.ones_like(locs))
++	    if options.exist('colorbarlineatvalue'):
++                locs=options.getfieldvalue('colorbarlineatvalue')
++                colors=options.getfieldvalue('colorbarlineatvaluecolor',['k' for i in range (len(locs))])
++                widths=options.getfieldvalue('colorbarlineatvaluewidth',npy.ones_like(locs))
++                cb.add_lines(locs,colors,widths)
+ 	    if options.exist('colorbartitle'):
+ 	        if options.exist('colorbartitlepad'):
+ 	    	    cb.set_label(options.getfieldvalue('colorbartitle'),\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19493-19494.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19493-19494.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19493-19494.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19493)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 19494)
+@@ -42,7 +42,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+-					 git install.sh 
+ 					 cmake install.sh 
+ 					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19493)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 19494)
+@@ -52,7 +52,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+-					 git install.sh 
+ 					 cmake install.sh 
+ 					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19494-19495.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19494-19495.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19494-19495.diff	(revision 20498)
@@ -0,0 +1,102 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19494)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19495)
+@@ -29,9 +29,49 @@
+ 	/*retrieve some parameters: */
+ 	iomodel->Constant(&autodiff_analysis,AutodiffIsautodiffEnum);
+ 
++		/*initialize a placeholder to store solver pointers: {{{*/
++		GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
++
++		/*Solver pointers depend on what type of solver we are implementing: */
++		options=OptionsFromAnalysis(parameters,DefaultAnalysisEnum); //options database is not filled in yet, use default.
++		ToolkitOptions::Init(options);
++
++		switch(IssmSolverTypeFromToolkitOptions()){
++			case MumpsEnum:{
++				#ifdef _HAVE_MUMPS_
++				theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(mumpsSolveEDF);
++				#else
++				_error_("requesting mumps solver without MUMPS being compiled in!");
++				#endif
++				break;
++							}
++			case GslEnum: {
++				#ifdef _HAVE_GSL_
++				theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
++				#else
++				_error_("requesting GSL solver without GSL being compiled in!");
++				#endif
++			    break;
++						  }
++			default:
++				_error_("solver type not supported yet!");
++		}
++
++		// to save some space:
++		// we know we won't use adolc inside of  the solver:
++		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
++		// the solution vector is just allocated and doesn't have a meaningful prior value
++		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
++		// the solver wrapper makes sure the matrix and the right hand side don't change
++		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
++		parameters->AddObject(theAdolcEDF_p);
++
++		/*Free ressources: */
++		xDelete<char>(options);
++		/*}}}*/
+ 	if(autodiff_analysis){
+ 
+-		#ifdef _HAVE_ADOLC_
++	#ifdef _HAVE_ADOLC_
+ 
+ 		/*Copy some parameters from IoModel to parameters dataset: {{{*/
+ 		parameters->AddObject(iomodel->CopyConstantObject(AutodiffKeepEnum));
+@@ -114,46 +154,6 @@
+ 		/*Don't forget to copy  iomodel->independent_objects to parameters: */
+ 		parameters->AddObject(new DataSetParam(AutodiffIndependentObjectsEnum,iomodel->independent_objects));
+ 		/*}}}*/
+-		/*initialize a placeholder to store solver pointers: {{{*/
+-		GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
+-
+-		/*Solver pointers depend on what type of solver we are implementing: */
+-		options=OptionsFromAnalysis(parameters,DefaultAnalysisEnum); //options database is not filled in yet, use default.
+-		ToolkitOptions::Init(options);
+-
+-		switch(IssmSolverTypeFromToolkitOptions()){
+-			case MumpsEnum:{
+-				#ifdef _HAVE_MUMPS_
+-				theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(mumpsSolveEDF);
+-				#else
+-				_error_("requesting mumps solver without MUMPS being compiled in!");
+-				#endif
+-				break;
+-							}
+-			case GslEnum: {
+-				#ifdef _HAVE_GSL_
+-				theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p=reg_ext_fct(EDF_for_solverx);
+-				#else
+-				_error_("requesting GSL solver without GSL being compiled in!");
+-				#endif
+-			    break;
+-						  }
+-			default:
+-				_error_("solver type not supported yet!");
+-		}
+-
+-		// to save some space:
+-		// we know we won't use adolc inside of  the solver:
+-		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->nestedAdolc=false;
+-		// the solution vector is just allocated and doesn't have a meaningful prior value
+-		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_y_priorRequired=false;
+-		// the solver wrapper makes sure the matrix and the right hand side don't change
+-		theAdolcEDF_p->GetParameterValue().myEDF_for_solverx_p->dp_x_changes=false;
+-		parameters->AddObject(theAdolcEDF_p);
+-
+-		/*Free ressources: */
+-		xDelete<char>(options);
+-		/*}}}*/
+ 	#endif
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19495-19496.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19495-19496.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19495-19496.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19495)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19496)
+@@ -29,6 +29,7 @@
+ 	/*retrieve some parameters: */
+ 	iomodel->Constant(&autodiff_analysis,AutodiffIsautodiffEnum);
+ 
++	#ifdef _HAVE_ADOLC_
+ 		/*initialize a placeholder to store solver pointers: {{{*/
+ 		GenericParam<Adolc_edf> *theAdolcEDF_p=new GenericParam<Adolc_edf>(AdolcParamEnum);
+ 
+@@ -69,10 +70,8 @@
+ 		/*Free ressources: */
+ 		xDelete<char>(options);
+ 		/*}}}*/
+-	if(autodiff_analysis){
+ 
+-	#ifdef _HAVE_ADOLC_
+-
++	if(autodiff_analysis){
+ 		/*Copy some parameters from IoModel to parameters dataset: {{{*/
+ 		parameters->AddObject(iomodel->CopyConstantObject(AutodiffKeepEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(AutodiffObufsizeEnum));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19496-19497.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19496-19497.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19496-19497.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19496)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp	(revision 19497)
+@@ -153,6 +153,6 @@
+ 		/*Don't forget to copy  iomodel->independent_objects to parameters: */
+ 		parameters->AddObject(new DataSetParam(AutodiffIndependentObjectsEnum,iomodel->independent_objects));
+ 		/*}}}*/
++	}
+ 	#endif
+-	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19497-19498.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19497-19498.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19497-19498.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/test/NightlyRun/test3119.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3119.m	(revision 19497)
++++ ../trunk-jpl/test/NightlyRun/test3119.m	(revision 19498)
+@@ -1,4 +1,5 @@
+-%test reverse scalar driver in ADOLC, using the test3009 setup, equivalent to test109 setup.
++%Test Name: ReverseScalarDriver
++%reverse scalar driver in ADOLC, using the test3009 setup, equivalent to test109 setup.
+ md=triangle(model(),'../Exp/Square.exp',100000.);
+ md=setmask(md,'all','');
+ md=parameterize(md,'../Par/SquareShelfConstrained.par');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19498-19499.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19498-19499.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19498-19499.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19498)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19499)
+@@ -24,9 +24,9 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1.win7-64.sh
++	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1.win7-64.sh
++	source $config_dir/sdk7.1-win32.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19499-19500.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19499-19500.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19499-19500.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19499)
++++ ../trunk-jpl/jenkins/windows	(revision 19500)
+@@ -22,7 +22,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH="C:/MATLAB/R2013a/"
++MATLAB_PATH='C:/Program Files/MATLAB/R2014a/'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19500-19501.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19500-19501.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19500-19501.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19500)
++++ ../trunk-jpl/jenkins/windows	(revision 19501)
+@@ -71,7 +71,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
++NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19501-19502.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19501-19502.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19501-19502.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19501)
++++ ../trunk-jpl/jenkins/windows	(revision 19502)
+@@ -22,7 +22,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH='C:/Program Files/MATLAB/R2014a/'
++MATLAB_PATH='/cygdrive/c/Program Files/MATLAB/R2014a/'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19502-19503.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19502-19503.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19502-19503.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19502)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19503)
+@@ -24,9 +24,9 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
++	source $config_dir/sdk7.1-win32.sh
++elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+-elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1-win32.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19503-19504.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19503-19504.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19503-19504.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19503)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19504)
+@@ -24,7 +24,7 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1-win32.sh
++	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "3" ]]; then 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19504-19505.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19504-19505.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19504-19505.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/interp/ProfileValues.m
+===================================================================
+--- ../trunk-jpl/src/m/interp/ProfileValues.m	(revision 19504)
++++ ../trunk-jpl/src/m/interp/ProfileValues.m	(revision 19505)
+@@ -1,12 +1,11 @@
+ function [Z,data_interp]=ProfileValues(md,data,xprof,yprof,resolution)
+ %PROFILEVALUES - compute the value of a field on a vertical profile
+ %
+-%   This routine gets the value of a given field of the model on points
+-%   given by filname (Argus type file)
++%   This routine gets the value of a given field of the model on 
++%   a point given by its coordinates
+ %
+ %   Usage:
+-%      [z,data]=ProfileValues(md,data,filename,resolution)
+-%      [z,data]=ProfileValues(md,data,profile_structure,resolution)
++%      [z,data]=ProfileValues(md,data,xcoord,ycoord,resolution)
+ 
+ %Get bed and surface for each 2d point, offset to make sure that it is inside the glacier system
+ offset=10^-3;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19505-19506.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19505-19506.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19505-19506.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19505)
++++ ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19506)
+@@ -41,7 +41,7 @@
+ 	if(my_rank==0){
+ 		femmodel->parameters->FindParam(&solutiontype,SolutionTypeEnum);
+ 		EnumToStringx(&solutiontypestring,solutiontype);
+-		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-1));
++		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-9999));
+ 		xDelete<char>(solutiontypestring);
+ 	}
+ 
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19505)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19506)
+@@ -208,7 +208,10 @@
+ 	end
+ 
+ 	result.fieldname=fieldname;
+-	result.time=time/yts;
++	result.time=time;
++	if result.time~=-9999,
++		result.time=time/yts;
++	end
+ 	result.step=step;
+ 	result.field=field;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19506-19507.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19506-19507.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19506-19507.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19506)
++++ ../trunk-jpl/jenkins/windows	(revision 19507)
+@@ -22,7 +22,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH='/cygdrive/c/Program Files/MATLAB/R2014a/'
++MATLAB_PATH='/cygdrive/c/Program\ Files/MATLAB/R2014a/'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19507-19508.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19507-19508.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19507-19508.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19507)
++++ ../trunk-jpl/jenkins/windows	(revision 19508)
+@@ -22,7 +22,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH='/cygdrive/c/Program\ Files/MATLAB/R2014a/'
++MATLAB_PATH='/cygdrive/c/Program\ Files/MATLAB/R2014b/'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19508-19509.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19508-19509.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19508-19509.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19508)
++++ ../trunk-jpl/jenkins/windows	(revision 19509)
+@@ -22,7 +22,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH='/cygdrive/c/Program\ Files/MATLAB/R2014b/'
++MATLAB_PATH="/cygdrive/c/Program\ Files/MATLAB/R2014b/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19509-19510.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19509-19510.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19509-19510.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19509)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19510)
+@@ -210,7 +210,7 @@
+ 	exit
+ EOF
+ 	cd $ISSM_DIR/test/NightlyRun
+-	$MATLAB_PATH/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
++	$ISSM_DIR/externalpackages/matlab/install/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
+ done
+ 
+ #wait until matlab closes
Index: /issm/oecreview/Archive/19101-20495/ISSM-19510-19511.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19510-19511.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19510-19511.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/externalpackages/cmake/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19510)
++++ ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19511)
+@@ -1,19 +1,20 @@
+ #!/bin/bash
+ set -eu 
++VER="3.3.1"
+ 
+ #Some cleanup
+-rm -rf install cmake-2.8.11.2
++rm -rf install cmake-$VER
+ mkdir install
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/cmake-2.8.11.2.tar.gz' 'cmake-2.8.11.2.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
+ 
+ #Untar 
+-tar -zxvf  cmake-2.8.11.2.tar.gz
++tar -zxvf  cmake-$VER.tar.gz
+ 
+ #Move cmake into install directory
+-mv cmake-2.8.11.2/* install
+-rm -rf cmake-2.8.11.2
++mv cmake-$VER/* install
++rm -rf cmake-$VER
+ 
+ #Compile cmake
+ cd install 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19511-19512.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19511-19512.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19511-19512.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19511)
++++ ../trunk-jpl/jenkins/windows	(revision 19512)
+@@ -49,7 +49,6 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="cccl        install-win7.sh
+ 						autotools   install-win.sh
+-						cmake       install.sh                
+ 						petsc       install-3.5-win7.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
Index: /issm/oecreview/Archive/19101-20495/ISSM-19512-19513.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19512-19513.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19512-19513.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/jenkins/windows_test
+===================================================================
+--- ../trunk-jpl/jenkins/windows_test	(revision 0)
++++ ../trunk-jpl/jenkins/windows_test	(revision 19513)
+@@ -0,0 +1,55 @@
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#MATLAB path
++MATLAB_PATH="/cygdrive/c/Program\ Files/MATLAB/R2014b/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="none"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="no"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=1
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++
++#In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
++PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19513-19514.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19513-19514.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19513-19514.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19513)
++++ ../trunk-jpl/jenkins/windows	(revision 19514)
+@@ -18,8 +18,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \
+-	--enable-development'
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \ '
+ 
+ #MATLAB path
+ MATLAB_PATH="/cygdrive/c/Program\ Files/MATLAB/R2014b/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19514-19515.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19514-19515.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19514-19515.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19514)
++++ ../trunk-jpl/jenkins/windows	(revision 19515)
+@@ -18,7 +18,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" \ '
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni"'
+ 
+ #MATLAB path
+ MATLAB_PATH="/cygdrive/c/Program\ Files/MATLAB/R2014b/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19515-19516.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19515-19516.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19515-19516.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19515)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 19516)
+@@ -67,7 +67,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=4
++NUMCPUS_INSTALL=2
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19515)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 19516)
+@@ -77,7 +77,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=4
++NUMCPUS_INSTALL=2
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19516-19517.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19516-19517.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19516-19517.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 19516)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 19517)
+@@ -20,7 +20,7 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	1e-09,3e-10,3e-10,1e-10,1e-13,1e-13,1e-13,...
++	1e-09,3.2e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19517-19518.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19517-19518.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19517-19518.diff	(revision 20498)
@@ -0,0 +1,1181 @@
+Index: ../trunk-jpl/test/NightlyRun/test314.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.m	(revision 19517)
++++ ../trunk-jpl/test/NightlyRun/test314.m	(revision 19518)
+@@ -1,9 +1,11 @@
+ %Test Name: SquareSheetConstrainedTranSIA2d
+-md=triangle(model(),'../Exp/Square.exp',150000.);
++md=triangle(model(),'../Exp/Square.exp',400000.);
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SIA','all');
+-md.cluster=generic('name',oshostname(),'np',3);
++md.cluster=generic('name',oshostname(),'np',1);
++md.transient.requested_outputs={'default','GroundedArea','IceVolume'}
++md.timestepping.final_time=1;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test208.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.m	(revision 19517)
++++ ../trunk-jpl/test/NightlyRun/test208.m	(revision 19518)
+@@ -4,6 +4,7 @@
+ md=parameterize(md,'../Par/SquareShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
++md.transient.requested_outputs={'default','GroundedArea'}
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test210.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test210.m	(revision 19517)
++++ ../trunk-jpl/test/NightlyRun/test210.m	(revision 19518)
+@@ -5,6 +5,8 @@
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
++md.verbose=verbose('solution',true,'module',true);
++md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test317.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.m	(revision 19517)
++++ ../trunk-jpl/test/NightlyRun/test317.m	(revision 19518)
+@@ -2,9 +2,10 @@
+ md=triangle(model(),'../Exp/Square.exp',200000.);
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+-md=extrude(md,3,1.);
++md=extrude(md,10,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
++md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/m4/analyses.m4
+===================================================================
+--- ../trunk-jpl/m4/analyses.m4	(revision 19517)
++++ ../trunk-jpl/m4/analyses.m4	(revision 19518)
+@@ -10,452 +10,836 @@
+ [
+ 
+ dnl with-AdjointBalancethickness{{{
++
+ AC_ARG_WITH([AdjointBalancethickness],
++
+ 	AS_HELP_STRING([--with-AdjointBalancethickness = YES], [compile with AdjointBalancethickness capabilities (default is yes)]),
++
+ 	[ADJOINTBALANCETHICKNESS=$withval],[ADJOINTBALANCETHICKNESS=yes])
++
+ AC_MSG_CHECKING(for AdjointBalancethickness capability compilation)
+ 
++
+ HAVE_ADJOINTBALANCETHICKNESS=no 
++
+ if test "x$ADJOINTBALANCETHICKNESS" = "xyes"; then
++
+ 	HAVE_ADJOINTBALANCETHICKNESS=yes
++
+ 	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS_],[1],[with AdjointBalancethickness capability])
++
+ fi
++
+ AM_CONDITIONAL([ADJOINTBALANCETHICKNESS], [test x$HAVE_ADJOINTBALANCETHICKNESS = xyes])
++
+ AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS)
++
+ dnl }}}
+ dnl with-AdjointBalancethickness2{{{
++
+ AC_ARG_WITH([AdjointBalancethickness2],
++
+ 	AS_HELP_STRING([--with-AdjointBalancethickness2 = YES], [compile with AdjointBalancethickness2 capabilities (default is yes)]),
++
+ 	[ADJOINTBALANCETHICKNESS2=$withval],[ADJOINTBALANCETHICKNESS2=yes])
++
+ AC_MSG_CHECKING(for AdjointBalancethickness2 capability compilation)
+ 
++
+ HAVE_ADJOINTBALANCETHICKNESS2=no 
++
+ if test "x$ADJOINTBALANCETHICKNESS2" = "xyes"; then
++
+ 	HAVE_ADJOINTBALANCETHICKNESS2=yes
++
+ 	AC_DEFINE([_HAVE_ADJOINTBALANCETHICKNESS2_],[1],[with AdjointBalancethickness2 capability])
++
+ fi
++
+ AM_CONDITIONAL([ADJOINTBALANCETHICKNESS2], [test x$HAVE_ADJOINTBALANCETHICKNESS2 = xyes])
++
+ AC_MSG_RESULT($HAVE_ADJOINTBALANCETHICKNESS2)
++
+ dnl }}}
+ dnl with-AdjointHoriz{{{
++
+ AC_ARG_WITH([AdjointHoriz],
++
+ 	AS_HELP_STRING([--with-AdjointHoriz = YES], [compile with AdjointHoriz capabilities (default is yes)]),
++
+ 	[ADJOINTHORIZ=$withval],[ADJOINTHORIZ=yes])
++
+ AC_MSG_CHECKING(for AdjointHoriz capability compilation)
+ 
++
+ HAVE_ADJOINTHORIZ=no 
++
+ if test "x$ADJOINTHORIZ" = "xyes"; then
++
+ 	HAVE_ADJOINTHORIZ=yes
++
+ 	AC_DEFINE([_HAVE_ADJOINTHORIZ_],[1],[with AdjointHoriz capability])
++
+ fi
++
+ AM_CONDITIONAL([ADJOINTHORIZ], [test x$HAVE_ADJOINTHORIZ = xyes])
++
+ AC_MSG_RESULT($HAVE_ADJOINTHORIZ)
++
+ dnl }}}
+ dnl with-Balancethickness{{{
++
+ AC_ARG_WITH([Balancethickness],
++
+ 	AS_HELP_STRING([--with-Balancethickness = YES], [compile with Balancethickness capabilities (default is yes)]),
++
+ 	[BALANCETHICKNESS=$withval],[BALANCETHICKNESS=yes])
++
+ AC_MSG_CHECKING(for Balancethickness capability compilation)
+ 
++
+ HAVE_BALANCETHICKNESS=no 
++
+ if test "x$BALANCETHICKNESS" = "xyes"; then
++
+ 	HAVE_BALANCETHICKNESS=yes
++
+ 	AC_DEFINE([_HAVE_BALANCETHICKNESS_],[1],[with Balancethickness capability])
++
+ fi
++
+ AM_CONDITIONAL([BALANCETHICKNESS], [test x$HAVE_BALANCETHICKNESS = xyes])
++
+ AC_MSG_RESULT($HAVE_BALANCETHICKNESS)
++
+ dnl }}}
+ dnl with-Balancethickness2{{{
++
+ AC_ARG_WITH([Balancethickness2],
++
+ 	AS_HELP_STRING([--with-Balancethickness2 = YES], [compile with Balancethickness2 capabilities (default is yes)]),
++
+ 	[BALANCETHICKNESS2=$withval],[BALANCETHICKNESS2=yes])
++
+ AC_MSG_CHECKING(for Balancethickness2 capability compilation)
+ 
++
+ HAVE_BALANCETHICKNESS2=no 
++
+ if test "x$BALANCETHICKNESS2" = "xyes"; then
++
+ 	HAVE_BALANCETHICKNESS2=yes
++
+ 	AC_DEFINE([_HAVE_BALANCETHICKNESS2_],[1],[with Balancethickness2 capability])
++
+ fi
++
+ AM_CONDITIONAL([BALANCETHICKNESS2], [test x$HAVE_BALANCETHICKNESS2 = xyes])
++
+ AC_MSG_RESULT($HAVE_BALANCETHICKNESS2)
++
+ dnl }}}
+ dnl with-BalancethicknessSoft{{{
++
+ AC_ARG_WITH([BalancethicknessSoft],
++
+ 	AS_HELP_STRING([--with-BalancethicknessSoft = YES], [compile with BalancethicknessSoft capabilities (default is yes)]),
++
+ 	[BALANCETHICKNESSSOFT=$withval],[BALANCETHICKNESSSOFT=yes])
++
+ AC_MSG_CHECKING(for BalancethicknessSoft capability compilation)
+ 
++
+ HAVE_BALANCETHICKNESSSOFT=no 
++
+ if test "x$BALANCETHICKNESSSOFT" = "xyes"; then
++
+ 	HAVE_BALANCETHICKNESSSOFT=yes
++
+ 	AC_DEFINE([_HAVE_BALANCETHICKNESSSOFT_],[1],[with BalancethicknessSoft capability])
++
+ fi
++
+ AM_CONDITIONAL([BALANCETHICKNESSSOFT], [test x$HAVE_BALANCETHICKNESSSOFT = xyes])
++
+ AC_MSG_RESULT($HAVE_BALANCETHICKNESSSOFT)
++
+ dnl }}}
+ dnl with-Balancevelocity{{{
++
+ AC_ARG_WITH([Balancevelocity],
++
+ 	AS_HELP_STRING([--with-Balancevelocity = YES], [compile with Balancevelocity capabilities (default is yes)]),
++
+ 	[BALANCEVELOCITY=$withval],[BALANCEVELOCITY=yes])
++
+ AC_MSG_CHECKING(for Balancevelocity capability compilation)
+ 
++
+ HAVE_BALANCEVELOCITY=no 
++
+ if test "x$BALANCEVELOCITY" = "xyes"; then
++
+ 	HAVE_BALANCEVELOCITY=yes
++
+ 	AC_DEFINE([_HAVE_BALANCEVELOCITY_],[1],[with Balancevelocity capability])
++
+ fi
++
+ AM_CONDITIONAL([BALANCEVELOCITY], [test x$HAVE_BALANCEVELOCITY = xyes])
++
+ AC_MSG_RESULT($HAVE_BALANCEVELOCITY)
++
+ dnl }}}
+ dnl with-L2ProjectionEPL{{{
++
+ AC_ARG_WITH([L2ProjectionEPL],
++
+ 	AS_HELP_STRING([--with-L2ProjectionEPL = YES], [compile with L2ProjectionEPL capabilities (default is yes)]),
++
+ 	[L2PROJECTIONEPL=$withval],[L2PROJECTIONEPL=yes])
++
+ AC_MSG_CHECKING(for L2ProjectionEPL capability compilation)
+ 
++
+ HAVE_L2PROJECTIONEPL=no 
++
+ if test "x$L2PROJECTIONEPL" = "xyes"; then
++
+ 	HAVE_L2PROJECTIONEPL=yes
++
+ 	AC_DEFINE([_HAVE_L2PROJECTIONEPL_],[1],[with L2ProjectionEPL capability])
++
+ fi
++
+ AM_CONDITIONAL([L2PROJECTIONEPL], [test x$HAVE_L2PROJECTIONEPL = xyes])
++
+ AC_MSG_RESULT($HAVE_L2PROJECTIONEPL)
++
+ dnl }}}
+ dnl with-L2ProjectionBase{{{
++
+ AC_ARG_WITH([L2ProjectionBase],
++
+ 	AS_HELP_STRING([--with-L2ProjectionBase = YES], [compile with L2ProjectionBase capabilities (default is yes)]),
++
+ 	[L2PROJECTIONBASE=$withval],[L2PROJECTIONBASE=yes])
++
+ AC_MSG_CHECKING(for L2ProjectionBase capability compilation)
+ 
++
+ HAVE_L2PROJECTIONBASE=no 
++
+ if test "x$L2PROJECTIONBASE" = "xyes"; then
++
+ 	HAVE_L2PROJECTIONBASE=yes
++
+ 	AC_DEFINE([_HAVE_L2PROJECTIONBASE_],[1],[with L2ProjectionBase capability])
++
+ fi
++
+ AM_CONDITIONAL([L2PROJECTIONBASE], [test x$HAVE_L2PROJECTIONBASE = xyes])
++
+ AC_MSG_RESULT($HAVE_L2PROJECTIONBASE)
++
+ dnl }}}
+ dnl with-DamageEvolution{{{
++
+ AC_ARG_WITH([DamageEvolution],
++
+ 	AS_HELP_STRING([--with-DamageEvolution = YES], [compile with DamageEvolution capabilities (default is yes)]),
++
+ 	[DAMAGEEVOLUTION=$withval],[DAMAGEEVOLUTION=yes])
++
+ AC_MSG_CHECKING(for DamageEvolution capability compilation)
+ 
++
+ HAVE_DAMAGEEVOLUTION=no 
++
+ if test "x$DAMAGEEVOLUTION" = "xyes"; then
++
+ 	HAVE_DAMAGEEVOLUTION=yes
++
+ 	AC_DEFINE([_HAVE_DAMAGEEVOLUTION_],[1],[with DamageEvolution capability])
++
+ fi
++
+ AM_CONDITIONAL([DAMAGEEVOLUTION], [test x$HAVE_DAMAGEEVOLUTION = xyes])
++
+ AC_MSG_RESULT($HAVE_DAMAGEEVOLUTION)
++
+ dnl }}}
+ dnl with-Stressbalance{{{
++
+ AC_ARG_WITH([Stressbalance],
++
+ 	AS_HELP_STRING([--with-Stressbalance = YES], [compile with Stressbalance capabilities (default is yes)]),
++
+ 	[STRESSBALANCE=$withval],[STRESSBALANCE=yes])
++
+ AC_MSG_CHECKING(for Stressbalance capability compilation)
+ 
++
+ HAVE_STRESSBALANCE=no 
++
+ if test "x$STRESSBALANCE" = "xyes"; then
++
+ 	HAVE_STRESSBALANCE=yes
++
+ 	AC_DEFINE([_HAVE_STRESSBALANCE_],[1],[with Stressbalance capability])
++
+ fi
++
+ AM_CONDITIONAL([STRESSBALANCE], [test x$HAVE_STRESSBALANCE = xyes])
++
+ AC_MSG_RESULT($HAVE_STRESSBALANCE)
++
+ dnl }}}
+ dnl with-StressbalanceSIA{{{
++
+ AC_ARG_WITH([StressbalanceSIA],
++
+ 	AS_HELP_STRING([--with-StressbalanceSIA = YES], [compile with StressbalanceSIA capabilities (default is yes)]),
++
+ 	[STRESSBALANCESIA=$withval],[STRESSBALANCESIA=yes])
++
+ AC_MSG_CHECKING(for StressbalanceSIA capability compilation)
+ 
++
+ HAVE_STRESSBALANCESIA=no 
++
+ if test "x$STRESSBALANCESIA" = "xyes"; then
++
+ 	HAVE_STRESSBALANCESIA=yes
++
+ 	AC_DEFINE([_HAVE_STRESSBALANCESIA_],[1],[with StressbalanceSIA capability])
++
+ fi
++
+ AM_CONDITIONAL([STRESSBALANCESIA], [test x$HAVE_STRESSBALANCESIA = xyes])
++
+ AC_MSG_RESULT($HAVE_STRESSBALANCESIA)
++
+ dnl }}}
+ dnl with-StressbalanceVertical{{{
++
+ AC_ARG_WITH([StressbalanceVertical],
++
+ 	AS_HELP_STRING([--with-StressbalanceVertical = YES], [compile with StressbalanceVertical capabilities (default is yes)]),
++
+ 	[STRESSBALANCEVERTICAL=$withval],[STRESSBALANCEVERTICAL=yes])
++
+ AC_MSG_CHECKING(for StressbalanceVertical capability compilation)
+ 
++
+ HAVE_STRESSBALANCEVERTICAL=no 
++
+ if test "x$STRESSBALANCEVERTICAL" = "xyes"; then
++
+ 	HAVE_STRESSBALANCEVERTICAL=yes
++
+ 	AC_DEFINE([_HAVE_STRESSBALANCEVERTICAL_],[1],[with StressbalanceVertical capability])
++
+ fi
++
+ AM_CONDITIONAL([STRESSBALANCEVERTICAL], [test x$HAVE_STRESSBALANCEVERTICAL = xyes])
++
+ AC_MSG_RESULT($HAVE_STRESSBALANCEVERTICAL)
++
+ dnl }}}
+ dnl with-Enthalpy{{{
++
+ AC_ARG_WITH([Enthalpy],
++
+ 	AS_HELP_STRING([--with-Enthalpy = YES], [compile with Enthalpy capabilities (default is yes)]),
++
+ 	[ENTHALPY=$withval],[ENTHALPY=yes])
++
+ AC_MSG_CHECKING(for Enthalpy capability compilation)
+ 
++
+ HAVE_ENTHALPY=no 
++
+ if test "x$ENTHALPY" = "xyes"; then
++
+ 	HAVE_ENTHALPY=yes
++
+ 	AC_DEFINE([_HAVE_ENTHALPY_],[1],[with Enthalpy capability])
++
+ fi
++
+ AM_CONDITIONAL([ENTHALPY], [test x$HAVE_ENTHALPY = xyes])
++
+ AC_MSG_RESULT($HAVE_ENTHALPY)
++
+ dnl }}}
+ dnl with-HydrologyShreve{{{
++
+ AC_ARG_WITH([HydrologyShreve],
++
+ 	AS_HELP_STRING([--with-HydrologyShreve = YES], [compile with HydrologyShreve capabilities (default is yes)]),
++
+ 	[HYDROLOGYSHREVE=$withval],[HYDROLOGYSHREVE=yes])
++
+ AC_MSG_CHECKING(for HydrologyShreve capability compilation)
+ 
++
+ HAVE_HYDROLOGYSHREVE=no 
++
+ if test "x$HYDROLOGYSHREVE" = "xyes"; then
++
+ 	HAVE_HYDROLOGYSHREVE=yes
++
+ 	AC_DEFINE([_HAVE_HYDROLOGYSHREVE_],[1],[with HydrologyShreve capability])
++
+ fi
++
+ AM_CONDITIONAL([HYDROLOGYSHREVE], [test x$HAVE_HYDROLOGYSHREVE = xyes])
++
+ AC_MSG_RESULT($HAVE_HYDROLOGYSHREVE)
++
+ dnl }}}
+ dnl with-HydrologyDCInefficient{{{
++
+ AC_ARG_WITH([HydrologyDCInefficient],
++
+ 	AS_HELP_STRING([--with-HydrologyDCInefficient = YES], [compile with HydrologyDCInefficient capabilities (default is yes)]),
++
+ 	[HYDROLOGYDCINEFFICIENT=$withval],[HYDROLOGYDCINEFFICIENT=yes])
++
+ AC_MSG_CHECKING(for HydrologyDCInefficient capability compilation)
+ 
++
+ HAVE_HYDROLOGYDCINEFFICIENT=no 
++
+ if test "x$HYDROLOGYDCINEFFICIENT" = "xyes"; then
++
+ 	HAVE_HYDROLOGYDCINEFFICIENT=yes
++
+ 	AC_DEFINE([_HAVE_HYDROLOGYDCINEFFICIENT_],[1],[with HydrologyDCInefficient capability])
++
+ fi
++
+ AM_CONDITIONAL([HYDROLOGYDCINEFFICIENT], [test x$HAVE_HYDROLOGYDCINEFFICIENT = xyes])
++
+ AC_MSG_RESULT($HAVE_HYDROLOGYDCINEFFICIENT)
++
+ dnl }}}
+ dnl with-HydrologyDCEfficient{{{
++
+ AC_ARG_WITH([HydrologyDCEfficient],
++
+ 	AS_HELP_STRING([--with-HydrologyDCEfficient = YES], [compile with HydrologyDCEfficient capabilities (default is yes)]),
++
+ 	[HYDROLOGYDCEFFICIENT=$withval],[HYDROLOGYDCEFFICIENT=yes])
++
+ AC_MSG_CHECKING(for HydrologyDCEfficient capability compilation)
+ 
++
+ HAVE_HYDROLOGYDCEFFICIENT=no 
++
+ if test "x$HYDROLOGYDCEFFICIENT" = "xyes"; then
++
+ 	HAVE_HYDROLOGYDCEFFICIENT=yes
++
+ 	AC_DEFINE([_HAVE_HYDROLOGYDCEFFICIENT_],[1],[with HydrologyDCEfficient capability])
++
+ fi
++
+ AM_CONDITIONAL([HYDROLOGYDCEFFICIENT], [test x$HAVE_HYDROLOGYDCEFFICIENT = xyes])
++
+ AC_MSG_RESULT($HAVE_HYDROLOGYDCEFFICIENT)
++
+ dnl }}}
+ dnl with-Melting{{{
++
+ AC_ARG_WITH([Melting],
++
+ 	AS_HELP_STRING([--with-Melting = YES], [compile with Melting capabilities (default is yes)]),
++
+ 	[MELTING=$withval],[MELTING=yes])
++
+ AC_MSG_CHECKING(for Melting capability compilation)
+ 
++
+ HAVE_MELTING=no 
++
+ if test "x$MELTING" = "xyes"; then
++
+ 	HAVE_MELTING=yes
++
+ 	AC_DEFINE([_HAVE_MELTING_],[1],[with Melting capability])
++
+ fi
++
+ AM_CONDITIONAL([MELTING], [test x$HAVE_MELTING = xyes])
++
+ AC_MSG_RESULT($HAVE_MELTING)
++
+ dnl }}}
+ dnl with-Masstransport{{{
++
+ AC_ARG_WITH([Masstransport],
++
+ 	AS_HELP_STRING([--with-Masstransport = YES], [compile with Masstransport capabilities (default is yes)]),
++
+ 	[MASSTRANSPORT=$withval],[MASSTRANSPORT=yes])
++
+ AC_MSG_CHECKING(for Masstransport capability compilation)
+ 
++
+ HAVE_MASSTRANSPORT=no 
++
+ if test "x$MASSTRANSPORT" = "xyes"; then
++
+ 	HAVE_MASSTRANSPORT=yes
++
+ 	AC_DEFINE([_HAVE_MASSTRANSPORT_],[1],[with Masstransport capability])
++
+ fi
++
+ AM_CONDITIONAL([MASSTRANSPORT], [test x$HAVE_MASSTRANSPORT = xyes])
++
+ AC_MSG_RESULT($HAVE_MASSTRANSPORT)
++
+ dnl }}}
+ dnl with-FreeSurfaceBase{{{
++
+ AC_ARG_WITH([FreeSurfaceBase],
++
+ 	AS_HELP_STRING([--with-FreeSurfaceBase = YES], [compile with FreeSurfaceBase capabilities (default is yes)]),
++
+ 	[FREESURFACEBASE=$withval],[FREESURFACEBASE=yes])
++
+ AC_MSG_CHECKING(for FreeSurfaceBase capability compilation)
+ 
++
+ HAVE_FREESURFACEBASE=no 
++
+ if test "x$FREESURFACEBASE" = "xyes"; then
++
+ 	HAVE_FREESURFACEBASE=yes
++
+ 	AC_DEFINE([_HAVE_FREESURFACEBASE_],[1],[with FreeSurfaceBase capability])
++
+ fi
++
+ AM_CONDITIONAL([FREESURFACEBASE], [test x$HAVE_FREESURFACEBASE = xyes])
++
+ AC_MSG_RESULT($HAVE_FREESURFACEBASE)
++
+ dnl }}}
+ dnl with-FreeSurfaceTop{{{
++
+ AC_ARG_WITH([FreeSurfaceTop],
++
+ 	AS_HELP_STRING([--with-FreeSurfaceTop = YES], [compile with FreeSurfaceTop capabilities (default is yes)]),
++
+ 	[FREESURFACETOP=$withval],[FREESURFACETOP=yes])
++
+ AC_MSG_CHECKING(for FreeSurfaceTop capability compilation)
+ 
++
+ HAVE_FREESURFACETOP=no 
++
+ if test "x$FREESURFACETOP" = "xyes"; then
++
+ 	HAVE_FREESURFACETOP=yes
++
+ 	AC_DEFINE([_HAVE_FREESURFACETOP_],[1],[with FreeSurfaceTop capability])
++
+ fi
++
+ AM_CONDITIONAL([FREESURFACETOP], [test x$HAVE_FREESURFACETOP = xyes])
++
+ AC_MSG_RESULT($HAVE_FREESURFACETOP)
++
+ dnl }}}
+ dnl with-ExtrudeFromBase{{{
++
+ AC_ARG_WITH([ExtrudeFromBase],
++
+ 	AS_HELP_STRING([--with-ExtrudeFromBase = YES], [compile with ExtrudeFromBase capabilities (default is yes)]),
++
+ 	[EXTRUDEFROMBASE=$withval],[EXTRUDEFROMBASE=yes])
++
+ AC_MSG_CHECKING(for ExtrudeFromBase capability compilation)
+ 
++
+ HAVE_EXTRUDEFROMBASE=no 
++
+ if test "x$EXTRUDEFROMBASE" = "xyes"; then
++
+ 	HAVE_EXTRUDEFROMBASE=yes
++
+ 	AC_DEFINE([_HAVE_EXTRUDEFROMBASE_],[1],[with ExtrudeFromBase capability])
++
+ fi
++
+ AM_CONDITIONAL([EXTRUDEFROMBASE], [test x$HAVE_EXTRUDEFROMBASE = xyes])
++
+ AC_MSG_RESULT($HAVE_EXTRUDEFROMBASE)
++
+ dnl }}}
+ dnl with-ExtrudeFromTop{{{
++
+ AC_ARG_WITH([ExtrudeFromTop],
++
+ 	AS_HELP_STRING([--with-ExtrudeFromTop = YES], [compile with ExtrudeFromTop capabilities (default is yes)]),
++
+ 	[EXTRUDEFROMTOP=$withval],[EXTRUDEFROMTOP=yes])
++
+ AC_MSG_CHECKING(for ExtrudeFromTop capability compilation)
+ 
++
+ HAVE_EXTRUDEFROMTOP=no 
++
+ if test "x$EXTRUDEFROMTOP" = "xyes"; then
++
+ 	HAVE_EXTRUDEFROMTOP=yes
++
+ 	AC_DEFINE([_HAVE_EXTRUDEFROMTOP_],[1],[with ExtrudeFromTop capability])
++
+ fi
++
+ AM_CONDITIONAL([EXTRUDEFROMTOP], [test x$HAVE_EXTRUDEFROMTOP = xyes])
++
+ AC_MSG_RESULT($HAVE_EXTRUDEFROMTOP)
++
+ dnl }}}
+ dnl with-DepthAverage{{{
++
+ AC_ARG_WITH([DepthAverage],
++
+ 	AS_HELP_STRING([--with-DepthAverage = YES], [compile with DepthAverage capabilities (default is yes)]),
++
+ 	[DEPTHAVERAGE=$withval],[DEPTHAVERAGE=yes])
++
+ AC_MSG_CHECKING(for DepthAverage capability compilation)
+ 
++
+ HAVE_DEPTHAVERAGE=no 
++
+ if test "x$DEPTHAVERAGE" = "xyes"; then
++
+ 	HAVE_DEPTHAVERAGE=yes
++
+ 	AC_DEFINE([_HAVE_DEPTHAVERAGE_],[1],[with DepthAverage capability])
++
+ fi
++
+ AM_CONDITIONAL([DEPTHAVERAGE], [test x$HAVE_DEPTHAVERAGE = xyes])
++
+ AC_MSG_RESULT($HAVE_DEPTHAVERAGE)
++
+ dnl }}}
+ dnl with-Smooth{{{
++
+ AC_ARG_WITH([Smooth],
++
+ 	AS_HELP_STRING([--with-Smooth = YES], [compile with Smooth capabilities (default is yes)]),
++
+ 	[SMOOTH=$withval],[SMOOTH=yes])
++
+ AC_MSG_CHECKING(for Smooth capability compilation)
+ 
++
+ HAVE_SMOOTH=no 
++
+ if test "x$SMOOTH" = "xyes"; then
++
+ 	HAVE_SMOOTH=yes
++
+ 	AC_DEFINE([_HAVE_SMOOTH_],[1],[with Smooth capability])
++
+ fi
++
+ AM_CONDITIONAL([SMOOTH], [test x$HAVE_SMOOTH = xyes])
++
+ AC_MSG_RESULT($HAVE_SMOOTH)
++
+ dnl }}}
+ dnl with-Thermal{{{
++
+ AC_ARG_WITH([Thermal],
++
+ 	AS_HELP_STRING([--with-Thermal = YES], [compile with Thermal capabilities (default is yes)]),
++
+ 	[THERMAL=$withval],[THERMAL=yes])
++
+ AC_MSG_CHECKING(for Thermal capability compilation)
+ 
++
+ HAVE_THERMAL=no 
++
+ if test "x$THERMAL" = "xyes"; then
++
+ 	HAVE_THERMAL=yes
++
+ 	AC_DEFINE([_HAVE_THERMAL_],[1],[with Thermal capability])
++
+ fi
++
+ AM_CONDITIONAL([THERMAL], [test x$HAVE_THERMAL = xyes])
++
+ AC_MSG_RESULT($HAVE_THERMAL)
++
+ dnl }}}
+ dnl with-UzawaPressure{{{
++
+ AC_ARG_WITH([UzawaPressure],
++
+ 	AS_HELP_STRING([--with-UzawaPressure = YES], [compile with UzawaPressure capabilities (default is yes)]),
++
+ 	[UZAWAPRESSURE=$withval],[UZAWAPRESSURE=yes])
++
+ AC_MSG_CHECKING(for UzawaPressure capability compilation)
+ 
++
+ HAVE_UZAWAPRESSURE=no 
++
+ if test "x$UZAWAPRESSURE" = "xyes"; then
++
+ 	HAVE_UZAWAPRESSURE=yes
++
+ 	AC_DEFINE([_HAVE_UZAWAPRESSURE_],[1],[with UzawaPressure capability])
++
+ fi
++
+ AM_CONDITIONAL([UZAWAPRESSURE], [test x$HAVE_UZAWAPRESSURE = xyes])
++
+ AC_MSG_RESULT($HAVE_UZAWAPRESSURE)
++
+ dnl }}}
+ dnl with-Gia{{{
++
+ AC_ARG_WITH([Gia],
++
+ 	AS_HELP_STRING([--with-Gia = YES], [compile with Gia capabilities (default is yes)]),
++
+ 	[GIA=$withval],[GIA=yes])
++
+ AC_MSG_CHECKING(for Gia capability compilation)
+ 
++
+ HAVE_GIA=no 
++
+ if test "x$GIA" = "xyes"; then
++
+ 	HAVE_GIA=yes
++
+ 	AC_DEFINE([_HAVE_GIA_],[1],[with Gia capability])
++
+ fi
++
+ AM_CONDITIONAL([GIA], [test x$HAVE_GIA = xyes])
++
+ AC_MSG_RESULT($HAVE_GIA)
++
+ dnl }}}
+ dnl with-Meshdeformation{{{
++
+ AC_ARG_WITH([Meshdeformation],
++
+ 	AS_HELP_STRING([--with-Meshdeformation = YES], [compile with Meshdeformation capabilities (default is yes)]),
++
+ 	[MESHDEFORMATION=$withval],[MESHDEFORMATION=yes])
++
+ AC_MSG_CHECKING(for Meshdeformation capability compilation)
+ 
++
+ HAVE_MESHDEFORMATION=no 
++
+ if test "x$MESHDEFORMATION" = "xyes"; then
++
+ 	HAVE_MESHDEFORMATION=yes
++
+ 	AC_DEFINE([_HAVE_MESHDEFORMATION_],[1],[with Meshdeformation capability])
++
+ fi
++
+ AM_CONDITIONAL([MESHDEFORMATION], [test x$HAVE_MESHDEFORMATION = xyes])
++
+ AC_MSG_RESULT($HAVE_MESHDEFORMATION)
++
+ dnl }}}
+ dnl with-Levelset{{{
++
+ AC_ARG_WITH([Levelset],
++
+ 	AS_HELP_STRING([--with-Levelset = YES], [compile with Levelset capabilities (default is yes)]),
++
+ 	[LEVELSET=$withval],[LEVELSET=yes])
++
+ AC_MSG_CHECKING(for Levelset capability compilation)
+ 
++
+ HAVE_LEVELSET=no 
++
+ if test "x$LEVELSET" = "xyes"; then
++
+ 	HAVE_LEVELSET=yes
++
+ 	AC_DEFINE([_HAVE_LEVELSET_],[1],[with Levelset capability])
++
+ fi
++
+ AM_CONDITIONAL([LEVELSET], [test x$HAVE_LEVELSET = xyes])
++
+ AC_MSG_RESULT($HAVE_LEVELSET)
++
+ dnl }}}
+ dnl with-Extrapolation{{{
++
+ AC_ARG_WITH([Extrapolation],
++
+ 	AS_HELP_STRING([--with-Extrapolation = YES], [compile with Extrapolation capabilities (default is yes)]),
++
+ 	[EXTRAPOLATION=$withval],[EXTRAPOLATION=yes])
++
+ AC_MSG_CHECKING(for Extrapolation capability compilation)
+ 
++
+ HAVE_EXTRAPOLATION=no 
++
+ if test "x$EXTRAPOLATION" = "xyes"; then
++
+ 	HAVE_EXTRAPOLATION=yes
++
+ 	AC_DEFINE([_HAVE_EXTRAPOLATION_],[1],[with Extrapolation capability])
++
+ fi
++
+ AM_CONDITIONAL([EXTRAPOLATION], [test x$HAVE_EXTRAPOLATION = xyes])
++
+ AC_MSG_RESULT($HAVE_EXTRAPOLATION)
++
+ dnl }}}
+ dnl with-LsfReinitialization{{{
++
+ AC_ARG_WITH([LsfReinitialization],
++
+ 	AS_HELP_STRING([--with-LsfReinitialization = YES], [compile with LsfReinitialization capabilities (default is yes)]),
++
+ 	[LSFREINITIALIZATION=$withval],[LSFREINITIALIZATION=yes])
++
+ AC_MSG_CHECKING(for LsfReinitialization capability compilation)
+ 
++
+ HAVE_LSFREINITIALIZATION=no 
++
+ if test "x$LSFREINITIALIZATION" = "xyes"; then
++
+ 	HAVE_LSFREINITIALIZATION=yes
++
+ 	AC_DEFINE([_HAVE_LSFREINITIALIZATION_],[1],[with LsfReinitialization capability])
++
+ fi
++
+ AM_CONDITIONAL([LSFREINITIALIZATION], [test x$HAVE_LSFREINITIALIZATION = xyes])
++
+ AC_MSG_RESULT($HAVE_LSFREINITIALIZATION)
++
+ dnl }}}
+ 
+ ])
+Index: ../trunk-jpl/externalpackages/cmake/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19517)
++++ ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19518)
+@@ -3,18 +3,18 @@
+ VER="3.3.1"
+ 
+ #Some cleanup
+-rm -rf install cmake-$VER
++rm -rf install cmake-3.3.1
+ mkdir install
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/cmake-3.3.1.tar.gz' 'cmake-3.3.1.tar.gz'
+ 
+ #Untar 
+-tar -zxvf  cmake-$VER.tar.gz
++tar -zxvf  cmake-3.3.1.tar.gz
+ 
+ #Move cmake into install directory
+-mv cmake-$VER/* install
+-rm -rf cmake-$VER
++mv cmake-3.3.1/* install
++rm -rf cmake-3.3.1
+ 
+ #Compile cmake
+ cd install 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19517)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19518)
+@@ -827,6 +827,7 @@
+ 	MinVzEnum,
+ 	MaxVzEnum,
+ 	MaxAbsVzEnum,
++	GroundedAreaEnum,
+ 	IceMassEnum,
+ 	IceVolumeEnum,
+ 	IceVolumeAboveFloatationEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19517)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19518)
+@@ -808,6 +808,7 @@
+ 		case MinVzEnum : return "MinVz";
+ 		case MaxVzEnum : return "MaxVz";
+ 		case MaxAbsVzEnum : return "MaxAbsVz";
++		case GroundedAreaEnum : return "GroundedArea";
+ 		case IceMassEnum : return "IceMass";
+ 		case IceVolumeEnum : return "IceVolume";
+ 		case IceVolumeAboveFloatationEnum : return "IceVolumeAboveFloatation";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19517)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19518)
+@@ -826,6 +826,7 @@
+ 	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
+ 	      else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
+ 	      else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
++	      else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
+ 	      else if (strcmp(name,"IceMass")==0) return IceMassEnum;
+ 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
+ 	      else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
+ 	      else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
+-	      else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
++	      if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
++	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+ 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+ 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19517)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19518)
+@@ -992,9 +992,10 @@
+ 					/*Scalar output*/
+ 					case DivergenceEnum:               this->Divergencex(&double_result);               break;
+ 					case MaxDivergenceEnum:            this->MaxDivergencex(&double_result);            break;
+-					case IceMassEnum:                this->IceMassx(&double_result);                break;
++					case IceMassEnum:                  this->IceMassx(&double_result);                  break;
+ 					case IceVolumeEnum:                this->IceVolumex(&double_result);                break;
+ 					case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break;
++					case GroundedAreaEnum:             this->GroundedAreax(&double_result);             break;
+ 					case MinVelEnum:                   this->MinVelx(&double_result);                   break;
+ 					case MaxVelEnum:                   this->MaxVelx(&double_result);                   break;
+ 					case MinVxEnum:                    this->MinVxx(&double_result);                    break;
+@@ -1610,6 +1611,22 @@
+ 	*pmax=uLmax;
+ 
+ }/*}}}*/
++void FemModel::GroundedAreax(IssmDouble* pV){/*{{{*/
++
++	IssmDouble local_grounded_area= 0;
++	IssmDouble total_grounded_area;
++
++	for(int i=0;i<this->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
++		local_grounded_area+=element->GroundedArea();
++	}
++	ISSM_MPI_Reduce(&local_grounded_area,&total_grounded_area,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&total_grounded_area,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Assign output pointers: */
++	*pV=total_grounded_area;
++
++}/*}}}*/
+ void FemModel::IceMassx(IssmDouble* pM){/*{{{*/
+ 
+ 	IssmDouble local_ice_mass = 0;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19518)
+@@ -210,6 +210,7 @@
+ 		virtual void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid)=0;
+ 		virtual void       GetVerticesCoordinatesBase(IssmDouble** xyz_list)=0;
+ 		virtual void       GetVerticesCoordinatesTop(IssmDouble** xyz_list)=0;
++		virtual IssmDouble GroundedArea(void)=0;
+ 		virtual IssmDouble IceMass(void)=0;
+ 		virtual IssmDouble IceVolume(void)=0;
+ 		virtual IssmDouble IceVolumeAboveFloatation(void)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19518)
+@@ -1592,6 +1592,27 @@
+ 	*pxyz_list = xyz_list_edge;
+ 
+ }/*}}}*/
++IssmDouble Tria::GroundedArea(void){/*{{{*/
++
++	/*Intermediaries*/
++	int         domaintype;
++	IssmDouble  phi;
++	IssmDouble *xyz_list  = NULL;
++
++	if(!IsIceInElement())return 0.;
++
++	/*Get problem dimension*/
++	this->FindParam(&domaintype,DomainTypeEnum);
++	if(domaintype!=Domain2DhorizontalEnum && domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++
++	this->GetVerticesCoordinates(&xyz_list);
++	phi=this->GetGroundedPortion(xyz_list);
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	return phi*this->GetArea();
++}
++/*}}}*/
+ bool       Tria::HasEdgeOnBase(){/*{{{*/
+ 
+ 	IssmDouble values[NUMVERTICES];
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19518)
+@@ -88,6 +88,7 @@
+ 		void        GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
+ 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
+ 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
++		IssmDouble  GroundedArea(void);
+ 		bool        HasEdgeOnBase();
+ 		bool        HasEdgeOnSurface();
+ 		IssmDouble  IceMass(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19518)
+@@ -1162,6 +1162,27 @@
+ 	*pxyz_list = xyz_list;
+ 
+ }/*}}}*/
++IssmDouble Penta::GroundedArea(void){/*{{{*/
++
++	/*Intermediaries*/
++	int         domaintype;
++	IssmDouble  phi,base_area;
++	IssmDouble  xyz_list[NUMVERTICES][3];
++
++	if(!IsIceInElement() || !IsOnBase())return 0.;
++
++	/*Get problem dimension*/
++	this->FindParam(&domaintype,DomainTypeEnum);
++	if(domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++	phi=this->GetGroundedPortion(&xyz_list[0][0]);
++	base_area= 1./2.*fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++
++	/*Clean up and return*/
++	return phi*base_area;
++}
++/*}}}*/
+ IssmDouble Penta::IceMass(void){/*{{{*/
+ 
+ 	IssmDouble rho_ice; 
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19518)
+@@ -85,6 +85,7 @@
+ 		void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
+ 		void           GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
+ 		void           GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
++		IssmDouble     GroundedArea(void);
+ 		IssmDouble     IceMass(void);
+ 		IssmDouble     IceVolume(void);
+ 		IssmDouble     IceVolumeAboveFloatation(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19518)
+@@ -76,6 +76,7 @@
+ 		void        GetVerticesCoordinates(IssmDouble** pxyz_list);
+ 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list){_error_("not implemented yet");};
+ 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list){_error_("not implemented yet");};
++		IssmDouble  GroundedArea(void){_error_("not implemented yet");};
+ 		IssmDouble  IceMass(void){_error_("not implemented yet");};
+ 		IssmDouble  IceVolume(void){_error_("not implemented yet");};
+ 		IssmDouble  IceVolumeAboveFloatation(void){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19518)
+@@ -80,6 +80,7 @@
+ 		void        GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
+ 		void        GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
+ 		void        GradientIndexing(int* indexing,int control_index){_error_("not implemented yet");};
++		IssmDouble  GroundedArea(void){_error_("not implemented yet");};
+ 		bool        HasFaceOnBase();
+ 		bool        HasFaceOnSurface();
+ 		IssmDouble  IceMass(void){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19517)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19518)
+@@ -81,6 +81,7 @@
+ 		void TotalSmbx(IssmDouble* pSmb);
+ 		void Divergencex(IssmDouble* pdiv);
+ 		void MaxDivergencex(IssmDouble* pdiv);
++		void GroundedAreax(IssmDouble* pV);
+ 		void IceMassx(IssmDouble* pV);
+ 		void IceVolumex(IssmDouble* pV);
+ 		void IceVolumeAboveFloatationx(IssmDouble* pV);
+Index: ../trunk-jpl/src/m/enum/GroundedAreaEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/GroundedAreaEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/GroundedAreaEnum.m	(revision 19518)
+@@ -0,0 +1,11 @@
++function macro=GroundedAreaEnum()
++%GROUNDEDAREAENUM - Enum of GroundedArea
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=GroundedAreaEnum()
++
++macro=StringToEnum('GroundedArea');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19517)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19518)
+@@ -800,6 +800,7 @@
+ def MinVzEnum(): return StringToEnum("MinVz")[0]
+ def MaxVzEnum(): return StringToEnum("MaxVz")[0]
+ def MaxAbsVzEnum(): return StringToEnum("MaxAbsVz")[0]
++def GroundedAreaEnum(): return StringToEnum("GroundedArea")[0]
+ def IceMassEnum(): return StringToEnum("IceMass")[0]
+ def IceVolumeEnum(): return StringToEnum("IceVolume")[0]
+ def IceVolumeAboveFloatationEnum(): return StringToEnum("IceVolumeAboveFloatation")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19518-19519.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19518-19519.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19518-19519.diff	(revision 20498)
@@ -0,0 +1,100 @@
+Index: ../trunk-jpl/test/NightlyRun/test409.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test409.m	(revision 19518)
++++ ../trunk-jpl/test/NightlyRun/test409.m	(revision 19519)
+@@ -4,17 +4,18 @@
+ md=parameterize(md,'../Par/SquareSheetShelf.par');
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'SSA','../Exp/SquareHalfRight.exp','fill','HO','coupling','penalties');
+-md.cluster=generic('name',oshostname(),'np',3);
++md.cluster=generic('name',oshostname(),'np',1);
++md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1', ...
+-				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', ...
+-					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1', ...
++				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2', ...
++					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'};
+ field_tolerances={...
+-	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,...
+-	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,...
+-	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01};
++	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-10,...
++	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-10,...
++	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-10};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -26,6 +27,7 @@
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).Temperature),...
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(1).GroundedArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -42,8 +44,10 @@
+ 	(md.results.TransientSolution(3).Vel),...
+ 	(md.results.TransientSolution(3).Pressure),...
+ 	(md.results.TransientSolution(3).Base),...
++	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).Temperature),...
+ 	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(3).GroundedArea),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test408.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.m	(revision 19518)
++++ ../trunk-jpl/test/NightlyRun/test408.m	(revision 19519)
+@@ -4,11 +4,14 @@
+ md=parameterize(md,'../Par/SquareSheetShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
++md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -17,6 +20,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).GroundedArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -24,6 +28,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -31,4 +36,5 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).GroundedArea),...
+ 	};
+Index: ../trunk-jpl/test/Archives/Archive408.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive409.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19519-19520.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19519-19520.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19519-19520.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/externalpackages/cmake/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19519)
++++ ../trunk-jpl/externalpackages/cmake/install.sh	(revision 19520)
+@@ -3,18 +3,18 @@
+ VER="3.3.1"
+ 
+ #Some cleanup
+-rm -rf install cmake-3.3.1
++rm -rf install cmake-$VER
+ mkdir install
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/cmake-3.3.1.tar.gz' 'cmake-3.3.1.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
+ 
+ #Untar 
+-tar -zxvf  cmake-3.3.1.tar.gz
++tar -zxvf  cmake-$VER.tar.gz
+ 
+ #Move cmake into install directory
+-mv cmake-3.3.1/* install
+-rm -rf cmake-3.3.1
++mv cmake-$VER/* install
++rm -rf cmake-$VER
+ 
+ #Compile cmake
+ cd install 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19520-19521.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19520-19521.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19520-19521.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/test/NightlyRun/test314.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.m	(revision 19520)
++++ ../trunk-jpl/test/NightlyRun/test314.m	(revision 19521)
+@@ -4,8 +4,7 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SIA','all');
+ md.cluster=generic('name',oshostname(),'np',1);
+-md.transient.requested_outputs={'default','GroundedArea','IceVolume'}
+-md.timestepping.final_time=1;
++md.transient.requested_outputs={'default','GroundedArea','IceVolume'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/Archives/Archive314.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19521-19522.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19521-19522.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19521-19522.diff	(revision 20498)
@@ -0,0 +1,181 @@
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 19521)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 19522)
+@@ -14,15 +14,16 @@
+ md.extrude(3,1.)
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
++md.transient.requested_outputs=['default','GroundedArea']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1',\
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',\
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+-field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+-		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',\
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',\
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
++field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
++		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -34,6 +35,7 @@
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].Temperature,\
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[0].GroundedArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -44,6 +46,7 @@
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].Temperature,\
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[1].GroundedArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -54,4 +57,5 @@
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].Temperature,\
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[2].GroundedArea,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test408.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.py	(revision 19521)
++++ ../trunk-jpl/test/NightlyRun/test408.py	(revision 19522)
+@@ -14,11 +14,12 @@
+ md=parameterize(md,'../Par/SquareSheetShelf.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
++md.transient.requested_outputs=['default','GroundedArea']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -27,6 +28,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].GroundedArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -34,6 +36,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].GroundedArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -41,4 +44,5 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[1].GroundedArea,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test314.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.py	(revision 19521)
++++ ../trunk-jpl/test/NightlyRun/test314.py	(revision 19522)
+@@ -13,11 +13,12 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
+ md=setflowequation(md,'SIA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
++md.transient.requested_outputs=['default','GroundedArea','IceVolume']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -26,6 +27,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].GroundedArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -33,6 +35,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].GroundedArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -40,4 +43,5 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].GroundedArea,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test409.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test409.py	(revision 19521)
++++ ../trunk-jpl/test/NightlyRun/test409.py	(revision 19522)
+@@ -15,16 +15,17 @@
+ md.extrude(3,1.)
+ md=setflowequation(md,'SSA','../Exp/SquareHalfRight.exp','fill','HO','coupling','penalties')
+ md.cluster=generic('name',oshostname(),'np',3)
++md.transient.requested_outputs=['default','GroundedArea'];
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1', \
+-				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', \
+-					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1', \
++				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2', \
++					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
+ field_tolerances=[\
+-	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,\
+-	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,\
+-	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01]
++	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-13,\
++	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-13,\
++	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -36,6 +37,7 @@
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].Temperature,\
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[0].GroundedArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -46,6 +48,7 @@
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].Temperature,\
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[1].GroundedArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -56,4 +59,5 @@
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].Temperature,\
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
++	md.results.TransientSolution[2].GroundedArea,\
+ 	]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19522-19523.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19522-19523.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19522-19523.diff	(revision 20498)
@@ -0,0 +1,252 @@
+Index: ../trunk-jpl/test/NightlyRun/test404.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test404.py	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test404.py	(revision 19523)
+@@ -19,7 +19,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure']
+-field_tolerances=[5e-07,4e-07,2e-06,1e-06,1e-07]
++field_tolerances=[6e-07,6e-07,2e-06,1e-06,1e-07]
+ field_values=[\
+ 	md.results.StressbalanceSolution.Vx,\
+ 	md.results.StressbalanceSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test409.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test409.m	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test409.m	(revision 19523)
+@@ -13,9 +13,9 @@
+ 				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2', ...
+ 					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'};
+ field_tolerances={...
+-	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-10,...
+-	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-10,...
+-	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-10};
++	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-6,...
++	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-6,...
++	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-6};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -38,13 +38,13 @@
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).Temperature),...
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+ 	(md.results.TransientSolution(3).Vel),...
+ 	(md.results.TransientSolution(3).Pressure),...
+ 	(md.results.TransientSolution(3).Base),...
+-	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).Temperature),...
+Index: ../trunk-jpl/test/NightlyRun/test314.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.m	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test314.m	(revision 19523)
+@@ -1,15 +1,21 @@
+ %Test Name: SquareSheetConstrainedTranSIA2d
+-md=triangle(model(),'../Exp/Square.exp',400000.);
++md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SIA','all');
+-md.cluster=generic('name',oshostname(),'np',1);
++md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.requested_outputs={'default','GroundedArea','IceVolume'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={...
++	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'};
++field_tolerances={...
++	1e-13 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13...
++	1e-10 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13...
++	1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13,    1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -18,6 +24,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).GroundedArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -25,6 +32,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -32,4 +40,5 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).GroundedArea),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test513.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.py	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test513.py	(revision 19523)
+@@ -36,7 +36,7 @@
+ 
+ # Fields and tolerances to track changes
+ field_names     =['Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate']
+-field_tolerances=[5e-08,2e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06]
++field_tolerances=[5e-08,3e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06]
+ field_values=[\
+ 	md.results.SteadystateSolution.Gradient1,\
+ 	md.results.SteadystateSolution.J,\
+Index: ../trunk-jpl/test/NightlyRun/test404.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test404.m	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test404.m	(revision 19523)
+@@ -9,7 +9,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure'};
+-field_tolerances={5e-07,5e-07,2e-06,1e-06,1e-07};
++field_tolerances={6e-07,6e-07,2e-06,1e-06,1e-07};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 19523)
+@@ -21,7 +21,7 @@
+ field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',\
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
+-field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12\
++field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+ 		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+ 		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12]
+ field_values=[\
+Index: ../trunk-jpl/test/NightlyRun/test513.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.m	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test513.m	(revision 19523)
+@@ -25,7 +25,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={5e-08,2e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06};
++field_tolerances={5e-08,3e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06};
+ field_values={...
+ 	(md.results.SteadystateSolution.Gradient1),...
+ 	md.results.SteadystateSolution.J,...
+Index: ../trunk-jpl/test/NightlyRun/test317.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.m	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test317.m	(revision 19523)
+@@ -2,19 +2,19 @@
+ md=triangle(model(),'../Exp/Square.exp',200000.);
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+-md=extrude(md,10,1.);
++md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1',...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+-field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'};
++field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
++	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -26,6 +26,7 @@
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).Temperature),...
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(1).GroundedArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -36,6 +37,7 @@
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).Temperature),...
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -46,4 +48,5 @@
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).Temperature),...
+ 	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
++	(md.results.TransientSolution(3).GroundedArea),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test314.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.py	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test314.py	(revision 19523)
+@@ -17,8 +17,14 @@
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =[
++'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',
++'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',
++'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
++field_tolerances=[
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
++		1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
++		1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test409.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test409.py	(revision 19522)
++++ ../trunk-jpl/test/NightlyRun/test409.py	(revision 19523)
+@@ -23,9 +23,9 @@
+ 				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2', \
+ 					   'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
+ field_tolerances=[\
+-	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-13,\
+-	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-13,\
+-	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-13]
++	1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-05,1e-6,\
++	1e-03,1e-03,1e-02,1e-03,1e-02,1e-04,1e-01,1e-03,1e-01,1e-01,1e-6,\
++	1e-02,1e-02,1e-01,1e-02,1e-01,1e-04,1e-04,1e-04,1e-04,1e-01,1e-6]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/Archives/Archive314.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive409.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19523-19524.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19523-19524.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19523-19524.diff	(revision 20498)
@@ -0,0 +1,204 @@
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19524)
+@@ -0,0 +1,199 @@
++%SMBgemb Class definition. 
++%   This is the class that hosts all the inputs for the Alberta Glacier Surface Mass Balance Model 
++%   Alex Gardner, University of Alberta.
++%   
++%   Usage:
++%      SMBgemb=SMBgemb();
++
++classdef SMBgemb
++	properties (SetAccess=public)  
++	% {{{
++		%each one of these properties is a transient forcing to the GEMB model, loaded from meteorological data derived 
++		%from an automatic weather stations (AWS). Each property is therefore a matrix, of size (numberofvertices x number 
++		%of time steps. )
++
++		%inputs: 
++		Ta    = NaN; %2 m air temperature, in Celsius
++		V     = NaN; %wind speed (m/s-1)
++		dswrf = NaN; %downward shortwave radiation flux [W/m^2]
++		dlwrf = NaN; %downward longwave radiation flux [W/m^2]
++		RH    = NaN; %relative humidity [%]
++		P     = NaN; %precipitation [mm w.e. / m^2]
++		eAir  = NaN; %screen level vapor pressure [Pa]
++		pAir  = NaN; %surface pressure [Pa]
++		
++		Tmean = NaN; %mean annual temperature [K]
++		C     = NaN; %mean annual snow accumulation [kg m-2 yr-1]
++		Tz    = NaN; %height above ground at which temperature (T) was sampled [m]
++		Vz    = NaN; %height above ground at which wind (V) eas sampled [m]
++
++		%settings: 
++		spinUp = NaN; %number of cycles of met data run before output is calculated (default is 0)
++		aIdx   = NaN; %method for calculating albedo and subsurface absorption (default is 1)
++		              % 1: effective grain radius [Gardner & Sharp, 2009]
++					  % 2: effective grain radius [Brun et al., 2009]
++					  % 3: density and cloud amount [Greuell & Konzelmann, 1994]
++					  % 4: exponential time decay & wetness [Bougamont & Bamber, 2005]
++		swIdx  = NaN; % apply all SW to top grid cell (0) or allow SW to penetrate surface (1) (default 1)
++
++		denIdx = NaN; %densification model to use (default is 2):
++					% 1 = emperical model of Herron and Langway (1980)
++					% 2 = semi-emerical model of Anthern et al. (2010)
++					% 3 = DO NOT USE: physical model from Appendix B of Anthern et al. (2010)
++					% 4 = DO NOT USE: emperical model of Li and Zwally (2004)
++					% 5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)
++
++		zTop  = NaN; % depth over which grid length is constant at the top of the snopack (default 10) [m]
++		dzTop = NaN; % initial top vertical grid spacing (default .05) [m] 
++		dzMin = NaN; % initial min vertical allowable grid spacing (default dzMin/2) [m] 
++		zY    = NaN; % strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]
++		zMax = NaN; %initial max model depth (default is min(thickness,500)) [m]
++		zMin = NaN; %initial min model depth (default is min(thickness,30)) [m]
++		outputFreq = NaN; %output frequency in days (default is monthly, 30)
++
++		%specific albedo parameters: 
++		%Method 1 and 2: 
++		aSnow = NaN; % new snow albedo (0.64 - 0.89)
++		aIce  = NaN; % range 0.27-0.58 for old snow
++		%Method 3: Radiation Correction Factors -> only used for met station data and Greuell & Konzelmann, 1994 albedo
++		cldFrac = NaN; % average cloud amount
++		%Method 4: additonal tuning parameters albedo as a funtion of age and water content (Bougamont et al., 2005)
++		t0wet = NaN; % time scale for wet snow (15-21.9) 
++		t0dry = NaN; % warm snow timescale (30) 
++		K     = NaN; % time scale temperature coef. (7) 
++
++		%Several fields are missing from the standard GEMB model, which are capture intrinsically by ISSM. 
++		%dateN: that's the last row of the above fields. 
++		%dt:    included in dateN. Not an input.  
++		%elev:  this is taken from the ISSM surface itself.
++
++	end % }}}
++	methods
++		function self = SMBgemb(varargin) % {{{
++			switch nargin
++				case 2
++					mesh=varargin{1}; 
++					geometry=varargin{2}; 
++					self=setdefaultparameters(self,mesh,geometry);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = extrude(self,md) % {{{
++
++			self.Ta=project3d(md,'vector',self.Ta,'type','node');
++			self.V=project3d(md,'vector',self.V,'type','node');
++			self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
++			self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
++			self.RH=project3d(md,'vector',self.RH,'type','node');
++			self.P=project3d(md,'vector',self.P,'type','node');
++			self.eAir=project3d(md,'vector',self.eAir,'type','node');
++			self.pAir=project3d(md,'vector',self.pAir,'type','node');
++
++		end % }}}
++		function self = setdefaultparameters(self,mesh,geometry) % {{{
++
++		
++		self.spinUp=0;
++		self.aIdx = 1;
++		self.swIdx = 1;
++		self.denIdx = 2;
++		self.zTop=10*ones(mesh.numberofelements,1);
++		self.dzTop = .05* ones (mesh.numberofelements,1);
++		self.dzMin = self.dzTop/2;
++		
++		he=sum(geometry.thickness(mesh.elements),2)/size(mesh.elements,2);
++		self.zMax=min(500,he);
++		self.zMin=min(30,he);
++		self.zY = 1.10*ones(mesh.numberofelements,1);
++		self.outputFreq = 30;
++		
++		%additional albedo parameters
++		self.aSnow = 0.85;
++		self.aIce = 0.48;
++		self.cldFrac = 0.1; 
++		self.t0wet = 15;
++		self.t0dry = 30;
++		self.K = 7;
++
++		end % }}}
++function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			md = checkfield(md,'fieldname','surfaceforcings.Ta','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.V','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.dswrf','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.dlwrf','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.RH','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.P','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','surfaceforcings.eAir','timeseries',1,'NaN',1);
++			
++			%check zTop is < local thickness:
++			he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
++			if any(he<self.zTop),
++				error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
++			end
++
++		end % }}}
++		function disp(self) % {{{
++			
++			disp(sprintf('   surface forcings for SMB GEMB model :'));
++			
++			fielddisplay(self,'Ta','2 m air temperature, in Celsius');
++			fielddisplay(self,'V','wind speed (m/s-1)');
++			fielddisplay(self,'dlwrf','downward shortwave radiation flux [W/m^2]');
++			fielddisplay(self,'dswrf','downward longwave radiation flux [W/m^2]');
++			fielddisplay(self,'RH','relative humidity [%]');
++			fielddisplay(self,'P','precipitation [mm w.e. / m^2]');
++			fielddisplay(self,'eAir','screen level vapor pressure [Pa]');
++			fielddisplay(self,'pAir','surface pressure [Pa]');
++			fielddisplay(self,'Tmean','mean annual temperature [K]');
++			fielddisplay(self,'C','mean annual snow accumulation [kg m-2 yr-1]');
++			fielddisplay(self,'Tz','height above ground at which temperature (T) was sampled [m]');
++			fielddisplay(self,'Vz','height above ground at which wind (V) eas sampled [m]');
++			fielddisplay(self,'zTop','depth over which grid length is constant at the top of the snopack (default 10) [m]');
++			fielddisplay(self,'dzTop','initial top vertical grid spacing (default .05) [m] ');
++			fielddisplay(self,'dzMin','initial min vertical allowable grid spacing (default dzMin/2) [m] ');
++			fielddisplay(self,'zMax','initial max model depth (default is min(thickness,500)) [m]');
++			fielddisplay(self,'zMin','initial min model depth (default is min(thickness,30)) [m]');
++			fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]');
++			fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)');
++			fielddisplay(self,'spinUp','number of cycles of met data run before output is calcualted (default is 0)');
++			fielddisplay(self,'aIdx',{'method for calculating albedo and subsurface absorption (default is 1)',...
++									'1: effective grain radius [Gardner & Sharp, 2009]',...
++									'2: effective grain radius [Brun et al., 2009]',...
++									'3: density and cloud amount [Greuell & Konzelmann, 1994]',...
++									'4: exponential time decay & wetness [Bougamont & Bamber, 2005]'});
++			%additional albedo parameters: 
++			switch self.aIdx
++			case {1 2}
++				fielddisplay(self,'aSnow','new snow albedo (0.64 - 0.89)');
++				fielddisplay(self,'aIce','range 0.27-0.58 for old snow');
++			case 3
++				fielddisplay(self,'cldFrac','average cloud amount');
++			case 4
++				fielddisplay(self,'t0wet','time scale for wet snow (15-21.9) [d]');
++				fielddisplay(self,'t0dry','warm snow timescale (30) [d]');
++				fielddisplay(self,'K','time scale temperature coef. (7) [d]');
++			end
++
++			fielddisplay(self,'swIdx','apply all SW to top grid cell (0) or allow SW to penetrate surface (1) [default 1]');
++			fielddisplay(self,'denIdx',{'densification model to use (default is 2):',...
++									'1 = emperical model of Herron and Langway (1980)',...
++									'2 = semi-emerical model of Anthern et al. (2010)',...
++									'3 = DO NOT USE: physical model from Appendix B of Anthern et al. (2010)',...
++									'4 = DO NOT USE: emperical model of Li and Zwally (2004)',...
++									'5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)'});
++									
++			
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgembEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++		end % }}}
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19524-19525.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19524-19525.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19524-19525.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 19525)
+@@ -0,0 +1,34 @@
++%Test Name: SquareShelfSMBGemb
++md=triangle(model(),'../Exp/Square.exp',500000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
++
++%md.verbose=verbose('all');
++
++% Use of Gemb method for SMB computation
++md.surfaceforcings = SMBgemb(md.mesh,md.geometry);
++
++%load hourly surface forcing date from 1979 to 2009:
++inputs=load('~/gemb/TEST/TEST_INPUT_1.mat');
++
++dateN=inputs.dateN/365.25; %convert in years
++md.surfaceforcings.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
++
++md.surfaceforcings.Vz=inputs.LP.Vz;
++md.surfaceforcings.Tz=inputs.LP.Tz;
++md.surfaceforcings.Tmean=inputs.LP.Tmean;
++md.surfaceforcings.C=inputs.LP.C;
++
++%settings
++md.surfaceforcings.spinUp=2
++
++%Run transient
++md=solve(md,TransientSolutionEnum());
Index: /issm/oecreview/Archive/19101-20495/ISSM-19525-19526.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19525-19526.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19525-19526.diff	(revision 20498)
@@ -0,0 +1,78 @@
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 19525)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 19526)
+@@ -1,34 +0,0 @@
+-%Test Name: SquareShelfSMBGemb
+-md=triangle(model(),'../Exp/Square.exp',500000.);
+-md=setmask(md,'all','');
+-md=parameterize(md,'../Par/SquareShelf.par');
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+-
+-%md.verbose=verbose('all');
+-
+-% Use of Gemb method for SMB computation
+-md.surfaceforcings = SMBgemb(md.mesh,md.geometry);
+-
+-%load hourly surface forcing date from 1979 to 2009:
+-inputs=load('~/gemb/TEST/TEST_INPUT_1.mat');
+-
+-dateN=inputs.dateN/365.25; %convert in years
+-md.surfaceforcings.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
+-
+-md.surfaceforcings.Vz=inputs.LP.Vz;
+-md.surfaceforcings.Tz=inputs.LP.Tz;
+-md.surfaceforcings.Tmean=inputs.LP.Tmean;
+-md.surfaceforcings.C=inputs.LP.C;
+-
+-%settings
+-md.surfaceforcings.spinUp=2
+-
+-%Run transient
+-md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/gemb.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/gemb.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19526)
+@@ -0,0 +1,34 @@
++%Test Name: SquareShelfSMBGemb
++md=triangle(model(),'../Exp/Square.exp',500000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
++
++%md.verbose=verbose('all');
++
++% Use of Gemb method for SMB computation
++md.surfaceforcings = SMBgemb(md.mesh,md.geometry);
++
++%load hourly surface forcing date from 1979 to 2009:
++inputs=load('~/gemb/TEST/TEST_INPUT_1.mat');
++
++dateN=inputs.dateN/365.25; %convert in years
++md.surfaceforcings.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
++md.surfaceforcings.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
++
++md.surfaceforcings.Vz=inputs.LP.Vz;
++md.surfaceforcings.Tz=inputs.LP.Tz;
++md.surfaceforcings.Tmean=inputs.LP.Tmean;
++md.surfaceforcings.C=inputs.LP.C;
++
++%settings
++md.surfaceforcings.spinUp=2
++
++%Run transient
++md=solve(md,TransientSolutionEnum());
Index: /issm/oecreview/Archive/19101-20495/ISSM-19526-19527.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19526-19527.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19526-19527.diff	(revision 20498)
@@ -0,0 +1,8855 @@
+Index: ../trunk-jpl/test/Par/SquareEISMINT.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareEISMINT.py	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareEISMINT.py	(revision 19527)
+@@ -29,7 +29,7 @@
+ md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1))
+ 
+ print "      creating surface mass balance"
+-md.surfaceforcings.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
++md.smb.mass_balance=0.2*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
+ md.basalforcings.floatingice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
+ md.basalforcings.groundedice_melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))    #0m/a
+ 
+Index: ../trunk-jpl/test/Par/RoundSheetShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetShelf.py	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetShelf.py	(revision 19527)
+@@ -68,7 +68,7 @@
+ md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1))
+ 
+ #Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance=-10.*numpy.ones((md.mesh.numberofvertices,1))
++md.smb.mass_balance=-10.*numpy.ones((md.mesh.numberofvertices,1))
+ md.basalforcings.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
+ pos=numpy.nonzero(md.mask.groundedice_levelset>0.)[0]
+ md.basalforcings.groundedice_melting_rate[pos]=10.
+Index: ../trunk-jpl/test/Par/RoundSheetEISMINT.par
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetEISMINT.par	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetEISMINT.par	(revision 19527)
+@@ -24,7 +24,7 @@
+ smb_max=0.5; %m/yr
+ sb=10^-2/1000.; %m/yr/m
+ rel=450.*1000.; %m
+-md.surfaceforcings.mass_balance=min(smb_max,sb*(rel-radius));
++md.smb.mass_balance=min(smb_max,sb*(rel-radius));
+ 
+ disp('      creating velocities');
+ constant=0.3;
+Index: ../trunk-jpl/test/Par/79North.par
+===================================================================
+--- ../trunk-jpl/test/Par/79North.par	(revision 19526)
++++ ../trunk-jpl/test/Par/79North.par	(revision 19527)
+@@ -30,7 +30,7 @@
+ md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
+ md.basalforcings.floatingice_melting_rate(find(md.mask.groundedice_levelset<0.))=0.;
+ md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
+-md.surfaceforcings.mass_balance=15.*ones(md.mesh.numberofvertices,1);
++md.smb.mass_balance=15.*ones(md.mesh.numberofvertices,1);
+ 
+ %Numerical parameters
+ md.stressbalance.viscosity_overshoot=0.3;
+Index: ../trunk-jpl/test/Par/SquareThermal.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareThermal.par	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareThermal.par	(revision 19527)
+@@ -30,7 +30,7 @@
+ md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
+ 
+ disp('      creating surface mass balance');
+-md.surfaceforcings.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
++md.smb.mass_balance=ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
+ md.basalforcings.groundedice_melting_rate=0.*ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
+ md.basalforcings.floatingice_melting_rate=0.*ones(md.mesh.numberofvertices,1)/md.constants.yts; %1m/a
+ 
+Index: ../trunk-jpl/test/Par/RoundSheetEISMINT.py
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetEISMINT.py	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetEISMINT.py	(revision 19527)
+@@ -27,7 +27,7 @@
+ smb_max=0.5    #m/yr
+ sb=10**-2/1000.    #m/yr/m
+ rel=450.*1000.    #m
+-md.surfaceforcings.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
++md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
+ 
+ print "      creating velocities"
+ constant=0.3
+Index: ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.par
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.par	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.par	(revision 19527)
+@@ -28,7 +28,7 @@
+ smb_max=0.5; %m/yr
+ sb=10^-2/1000.; %m/yr/m
+ rel=450.*1000.; %m
+-md.surfaceforcings.mass_balance=min(smb_max,sb*(rel-radius));
++md.smb.mass_balance=min(smb_max,sb*(rel-radius));
+ 
+ disp('      creating velocities');
+ constant=0.3;
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.py	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.py	(revision 19527)
+@@ -40,7 +40,7 @@
+ md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1))
+ 
+ #Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
++md.smb.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
+ md.basalforcings.groundedice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
+ md.basalforcings.floatingice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
+ 
+Index: ../trunk-jpl/test/Par/SquareThermal.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareThermal.py	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareThermal.py	(revision 19527)
+@@ -31,7 +31,7 @@
+ md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1))
+ 
+ print "      creating surface mass balance"
+-md.surfaceforcings.mass_balance=numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
++md.smb.mass_balance=numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
+ md.basalforcings.melting_rate=0.*numpy.ones((md.mesh.numberofvertices,1))/md.constants.yts    #1m/a
+ 
+ #Deal with boundary conditions:
+Index: ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.py
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.py	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetStaticEISMINT.py	(revision 19527)
+@@ -31,7 +31,7 @@
+ smb_max=0.5    #m/yr
+ sb=10**-2/1000.    #m/yr/m
+ rel=450.*1000.    #m
+-md.surfaceforcings.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
++md.smb.mass_balance=numpy.minimum(smb_max*numpy.ones_like(radius),sb*(rel-radius))
+ 
+ print "      creating velocities"
+ constant=0.3
+Index: ../trunk-jpl/test/Par/RoundSheetShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/RoundSheetShelf.par	(revision 19526)
++++ ../trunk-jpl/test/Par/RoundSheetShelf.par	(revision 19527)
+@@ -61,7 +61,7 @@
+ md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
+ 
+ %Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance=-10.*ones(md.mesh.numberofvertices,1);
++md.smb.mass_balance=-10.*ones(md.mesh.numberofvertices,1);
+ md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
+ pos=find(md.mask.groundedice_levelset>0.);md.basalforcings.groundedice_melting_rate(pos)=10.;
+ md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 19526)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 19527)
+@@ -48,9 +48,9 @@
+ md.groundingline.migration = 'SubelementMigration';
+ 
+ %Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance = 0.3*ones(md.mesh.numberofvertices,1);
+-md.basalforcings.floatingice_melting_rate = md.surfaceforcings.mass_balance;
+-md.basalforcings.groundedice_melting_rate = md.surfaceforcings.mass_balance;
++md.smb.mass_balance = 0.3*ones(md.mesh.numberofvertices,1);
++md.basalforcings.floatingice_melting_rate = md.smb.mass_balance;
++md.basalforcings.groundedice_melting_rate = md.smb.mass_balance;
+ 
+ %Friction
+ md.friction.coefficient = 20.*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 19526)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 19527)
+@@ -55,9 +55,9 @@
+ md.groundingline.migration='SubelementMigration'
+ 
+ #Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance=0.3*numpy.ones((md.mesh.numberofvertices,1))
+-md.basalforcings.groundedice_melting_rate=md.surfaceforcings.mass_balance
+-md.basalforcings.floatingice_melting_rate=md.surfaceforcings.mass_balance
++md.smb.mass_balance=0.3*numpy.ones((md.mesh.numberofvertices,1))
++md.basalforcings.groundedice_melting_rate=md.smb.mass_balance
++md.basalforcings.floatingice_melting_rate=md.smb.mass_balance
+ 
+ #Friction
+ md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/Par/SquareSheetShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetShelf.par	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareSheetShelf.par	(revision 19527)
+@@ -32,7 +32,7 @@
+ md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
+ 
+ %Accumulation and melting
+-md.surfaceforcings.mass_balance=10.*ones(md.mesh.numberofvertices,1);
++md.smb.mass_balance=10.*ones(md.mesh.numberofvertices,1);
+ md.basalforcings.groundedice_melting_rate=5.*ones(md.mesh.numberofvertices,1);
+ md.basalforcings.floatingice_melting_rate=5.*ones(md.mesh.numberofvertices,1);
+ 
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19527)
+@@ -29,7 +29,7 @@
+ md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
+ 
+ %Surface mass balance and basal melting
+-md.surfaceforcings.mass_balance=10*ones(md.mesh.numberofvertices,1);
++md.smb.mass_balance=10*ones(md.mesh.numberofvertices,1);
+ md.basalforcings.floatingice_melting_rate=5*ones(md.mesh.numberofvertices,1);
+ md.basalforcings.groundedice_melting_rate=5*ones(md.mesh.numberofvertices,1);
+ 
+Index: ../trunk-jpl/test/Par/79North.py
+===================================================================
+--- ../trunk-jpl/test/Par/79North.py	(revision 19526)
++++ ../trunk-jpl/test/Par/79North.py	(revision 19527)
+@@ -42,7 +42,7 @@
+ md.basalforcings.floatingice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
+ md.basalforcings.floatingice_melting_rate[numpy.nonzero(md.mask.groundedice_levelset<0.)[0]]=0.
+ md.basalforcings.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
+-md.surfaceforcings.mass_balance=15*numpy.ones((md.mesh.numberofvertices,1))
++md.smb.mass_balance=15*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ #Numerical parameters
+ md.stressbalance.viscosity_overshoot=0.3
+Index: ../trunk-jpl/test/Par/SquareSheetShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetShelf.py	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareSheetShelf.py	(revision 19527)
+@@ -43,7 +43,7 @@
+ md.materials.rheology_n=3.*numpy.ones((md.mesh.numberofelements,1))
+ 
+ #Accumulation and melting
+-md.surfaceforcings.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
++md.smb.mass_balance=10.*numpy.ones((md.mesh.numberofvertices,1))
+ md.basalforcings.groundedice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
+ md.basalforcings.floatingice_melting_rate=5.*numpy.ones((md.mesh.numberofvertices,1))
+ 
+Index: ../trunk-jpl/test/Par/SquareEISMINT.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareEISMINT.par	(revision 19526)
++++ ../trunk-jpl/test/Par/SquareEISMINT.par	(revision 19527)
+@@ -26,7 +26,7 @@
+ md.materials.rheology_n=3.*ones(md.mesh.numberofelements,1);
+ 
+ disp('      creating surface mass balance');
+-md.surfaceforcings.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a
++md.smb.mass_balance=0.2*ones(md.mesh.numberofvertices,1); %0m/a
+ md.basalforcings.floatingice_melting_rate=0.*ones(md.mesh.numberofvertices,1); %0m/a
+ md.basalforcings.groundedice_melting_rate=0.*ones(md.mesh.numberofvertices,1); %0m/a
+ 
+Index: ../trunk-jpl/test/NightlyRun/test121.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test121.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test121.py	(revision 19527)
+@@ -18,6 +18,7 @@
+ md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1))
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.thermal.isenthalpy=1
+Index: ../trunk-jpl/test/NightlyRun/test242.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test242.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test242.py	(revision 19527)
+@@ -25,16 +25,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
+ field_tolerances=[\
+ 		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
+ 		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,\
+@@ -49,7 +49,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -58,7 +58,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -67,7 +67,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vz,\
+@@ -76,5 +76,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test109.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test109.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test109.py	(revision 19527)
+@@ -16,6 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test337.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test337.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test337.py	(revision 19527)
+@@ -24,19 +24,19 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings=SMBcomponents();
+-md.surfaceforcings.accumulation=numpy.vstack((smb*2, [1.5,3.]));
+-md.surfaceforcings.runoff=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
++md.smb=SMBcomponents();
++md.smb.accumulation=numpy.vstack((smb*2, [1.5,3.]));
++md.smb.runoff=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[\
+ 		5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 		5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -50,7 +50,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -58,7 +58,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -66,7 +66,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -74,5 +74,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test801.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test801.m	(revision 19527)
+@@ -10,6 +10,7 @@
+ md.transient.islevelset=1;
+ md.transient.iscalving=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test703.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test703.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test703.m	(revision 19527)
+@@ -42,7 +42,7 @@
+ md.timestepping.time_step=0.000001;
+ md.timestepping.final_time=0.000005;
+ md.stressbalance.shelf_dampening=1;
+-md.surfaceforcings.mass_balance=zeros(md.mesh.numberofvertices,1);
++md.smb.mass_balance=zeros(md.mesh.numberofvertices,1);
+ md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
+ md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
+ md.basalforcings.geothermalflux=zeros(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test426.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test426.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test426.m	(revision 19527)
+@@ -8,7 +8,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y-500000.)/1000.;
+ md.geometry.thickness(:)=1000.;
+ md.geometry.surface=md.geometry.base+md.geometry.thickness;
+-md.surfaceforcings.mass_balance(:)=100.;
++md.smb.mass_balance(:)=100.;
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'SSA','all');
+ md.transient.isstressbalance=0;
+Index: ../trunk-jpl/test/NightlyRun/test328.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test328.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test328.m	(revision 19527)
+@@ -3,11 +3,11 @@
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SSA','all');
+-md.surfaceforcings = SMBgradients();
+-md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
+-md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
+-md.surfaceforcings.href=md.geometry.surface;
+-md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
++md.smb = SMBgradients();
++md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
++md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
++md.smb.href=md.geometry.surface;
++md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
+ md.transient.requested_outputs={'default','TotalSmb'};
+ md.cluster=generic('name',oshostname(),'np',3);
+ md=solve(md,TransientSolutionEnum());
+@@ -22,7 +22,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(1).TotalSmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+@@ -31,13 +31,13 @@
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).TotalSmb),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).TotalSmb),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test3009.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3009.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test3009.m	(revision 19527)
+@@ -7,6 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.autodiff.isautodiff=true;
+Index: ../trunk-jpl/test/NightlyRun/test231.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test231.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test231.m	(revision 19527)
+@@ -14,17 +14,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*2. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+@@ -38,7 +38,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -47,7 +47,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -56,7 +56,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vz),...
+@@ -65,5 +65,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test803.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test803.py	(revision 19527)
+@@ -27,6 +27,7 @@
+ md.transient.islevelset=True
+ md.transient.iscalving=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test427.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test427.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test427.py	(revision 19527)
+@@ -21,7 +21,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.extrude(3,1.)
+ 
+-md.surfaceforcings.mass_balance[:]=-150
++md.smb.mass_balance[:]=-150
+ md.transient.isstressbalance=False
+ md.transient.isgroundingline=True
+ md.groundingline.migration='SoftMigration'
+Index: ../trunk-jpl/test/NightlyRun/test239.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test239.py	(revision 19527)
+@@ -14,34 +14,34 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ 
+ # Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
+ 
+ # Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ # creating delta18o
+ delta18o=numpy.loadtxt('../Data/delta18o.data')
+-md.surfaceforcings.delta18o=delta18o
++md.smb.delta18o=delta18o
+ 
+ # creating Present day temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+-md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
++    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+-md.surfaceforcings.initialize(md)
++md.smb.initialize(md)
+ 
+ # creating precipitation
+-md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # time steps and resolution
+ md.timestepping.time_step=0.5;
+@@ -49,15 +49,15 @@
+ md.timestepping.final_time=2;
+ 
+ # 
+-md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md.transient.requested_outputs=['default','SmbMonthlytemperatures']
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+-		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+@@ -69,8 +69,8 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMonthlytemperatures,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -78,8 +78,8 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMonthlytemperatures,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -87,6 +87,6 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMonthlytemperatures,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/gemb.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19527)
+@@ -8,27 +8,27 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of Gemb method for SMB computation
+-md.surfaceforcings = SMBgemb(md.mesh,md.geometry);
++md.smb = SMBgemb(md.mesh,md.geometry);
+ 
+ %load hourly surface forcing date from 1979 to 2009:
+ inputs=load('~/gemb/TEST/TEST_INPUT_1.mat');
+ 
+ dateN=inputs.dateN/365.25; %convert in years
+-md.surfaceforcings.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
+-md.surfaceforcings.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
++md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
++md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
++md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
++md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
++md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
++md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
++md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
+ 
+-md.surfaceforcings.Vz=inputs.LP.Vz;
+-md.surfaceforcings.Tz=inputs.LP.Tz;
+-md.surfaceforcings.Tmean=inputs.LP.Tmean;
+-md.surfaceforcings.C=inputs.LP.C;
++md.smb.Vz=inputs.LP.Vz;
++md.smb.Tz=inputs.LP.Tz;
++md.smb.Tmean=inputs.LP.Tmean;
++md.smb.C=inputs.LP.C;
+ 
+ %settings
+-md.surfaceforcings.spinUp=2
++md.smb.spinUp=2;
+ 
+ %Run transient
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test435.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test435.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test435.m	(revision 19527)
+@@ -30,13 +30,14 @@
+ md.materials.rheology_law='None';
+ md.friction.coefficient(:)=sqrt(10^7)*ones(md.mesh.numberofvertices,1);
+ md.friction.p=3*ones(md.mesh.numberofelements,1);
+-md.surfaceforcings.mass_balance(:)=1;
++md.smb.mass_balance(:)=1;
+ md.basalforcings.groundedice_melting_rate(:)=0;
+ md.basalforcings.floatingice_melting_rate(:)=0;
+ md.transient.isthermal=0;
+ md.transient.isstressbalance=1;
+ md.transient.isgroundingline=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.groundingline.migration='SubelementMigration';
+ md.timestepping.final_time=30;
+ md.timestepping.time_step=10;
+Index: ../trunk-jpl/test/NightlyRun/test337.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test337.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test337.m	(revision 19527)
+@@ -14,19 +14,19 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings=SMBcomponents();
+-md.surfaceforcings.accumulation=[smb*2; [1.5 3.]];
+-md.surfaceforcings.runoff=[smb/2; [1.5 3.]];
+-md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
++md.smb=SMBcomponents();
++md.smb.accumulation=[smb*2; [1.5 3.]];
++md.smb.runoff=[smb/2; [1.5 3.]];
++md.smb.evaporation=[smb/2; [1.5 3.]];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={...
+ 	5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	5e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -40,7 +40,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -48,7 +48,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -56,7 +56,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -64,5 +64,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test239.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test239.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test239.m	(revision 19527)
+@@ -6,38 +6,38 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
++%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
++md.smb.delta18o=delta18o;
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+ for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+     % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % creating initialization and spc temperatures initialization and
+ % spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+ 
+-md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
+ 
+ % creating precipitation
+ for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+     % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ 
+ % time steps and resolution
+ md.timestepping.time_step=0.5;
+@@ -45,15 +45,15 @@
+ md.timestepping.final_time=2;
+ 
+ % 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
+-	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
+-	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+@@ -65,8 +65,8 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -74,8 +74,8 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -83,6 +83,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test240.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test240.m	(revision 19527)
+@@ -6,36 +6,36 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
++%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
++md.smb.delta18o=delta18o;
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+ for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+     % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ 
+ % creating initialization and spc temperatures initialization and
+ % spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
+ 
+ % creating precipitation
+ for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+     % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % time steps and resolution
+@@ -45,15 +45,15 @@
+ md.timestepping.interp_forcings=0;
+ 
+ % 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
+-	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
+-	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+@@ -65,8 +65,8 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -74,8 +74,8 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -83,6 +83,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test329.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test329.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test329.py	(revision 19527)
+@@ -15,11 +15,11 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
+ md.extrude(3,1)
+ md=setflowequation(md,'HO','all')
+-md.surfaceforcings = SMBgradients();
+-md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
+-md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
+-md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
+-md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
++md.smb = SMBgradients();
++md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
++md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
++md.smb.href=copy.deepcopy(md.geometry.surface).reshape(-1)
++md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
+ md.transient.requested_outputs=['default','TotalSmb']
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+@@ -38,7 +38,7 @@
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].Temperature,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[0].TotalSmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+@@ -48,7 +48,7 @@
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].Temperature,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[1].TotalSmb,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+@@ -58,6 +58,6 @@
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].Temperature,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[2].TotalSmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 19527)
+@@ -15,6 +15,7 @@
+ md.transient.islevelset=1;
+ md.transient.iscalving=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test427.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test427.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test427.m	(revision 19527)
+@@ -11,7 +11,7 @@
+ md=setflowequation(md,'SSA','all');
+ md=extrude(md,3,1.);
+ 
+-md.surfaceforcings.mass_balance(:)=-150;
++md.smb.mass_balance(:)=-150;
+ md.transient.isstressbalance=0;
+ md.transient.isgroundingline=1;
+ md.groundingline.migration='SoftMigration';
+Index: ../trunk-jpl/test/NightlyRun/test329.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test329.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test329.m	(revision 19527)
+@@ -4,11 +4,11 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+-md.surfaceforcings = SMBgradients();
+-md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
+-md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
+-md.surfaceforcings.href=md.geometry.surface;
+-md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
++md.smb = SMBgradients();
++md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y;
++md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y;
++md.smb.href=md.geometry.surface;
++md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
+ md.transient.requested_outputs={'default','TotalSmb'};
+ md.cluster=generic('name',oshostname(),'np',3);
+ md=solve(md,TransientSolutionEnum());
+@@ -27,7 +27,7 @@
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).Temperature),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(1).TotalSmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+@@ -37,7 +37,7 @@
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).Temperature),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).TotalSmb),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+@@ -47,6 +47,6 @@
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).Temperature),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).TotalSmb),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test232.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test232.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test232.m	(revision 19527)
+@@ -10,6 +10,7 @@
+ md.timestepping.final_time=4;
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test313.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test313.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test313.m	(revision 19527)
+@@ -8,6 +8,7 @@
+ md.verbose=verbose('convergence',true,'solution',true);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test338.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test338.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test338.py	(revision 19527)
+@@ -23,20 +23,20 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings=SMBmeltcomponents();
+-md.surfaceforcings.accumulation=numpy.vstack((smb, [1.5,3.]));
+-md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.melt=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.refreeze=numpy.vstack((smb, [1.5,3.]));
++md.smb=SMBmeltcomponents();
++md.smb.accumulation=numpy.vstack((smb, [1.5,3.]));
++md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.melt=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.refreeze=numpy.vstack((smb, [1.5,3.]));
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -49,7 +49,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -57,7 +57,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -65,7 +65,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -73,5 +73,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test338.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test338.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test338.m	(revision 19527)
+@@ -13,20 +13,20 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings=SMBmeltcomponents();
+-md.surfaceforcings.accumulation=[smb; [1.5 3.]];
+-md.surfaceforcings.melt=[smb/2; [1.5 3.]];
+-md.surfaceforcings.refreeze=[smb; [1.5 3.]];
+-md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
++md.smb=SMBmeltcomponents();
++md.smb.accumulation=[smb; [1.5 3.]];
++md.smb.melt=[smb/2; [1.5 3.]];
++md.smb.refreeze=[smb; [1.5 3.]];
++md.smb.evaporation=[smb/2; [1.5 3.]];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -39,7 +39,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -47,7 +47,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -55,7 +55,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -63,5 +63,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test1501.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1501.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1501.py	(revision 19527)
+@@ -25,35 +25,35 @@
+ 
+ #Solve for thinning rate -> -1 * surface mass balance
+ smb= 2.*numpy.ones((md.mesh.numberofvertices,1))
+-md.surfaceforcings.mass_balance= smb
++md.smb.mass_balance= smb
+ md.basalforcings.groundedice_melting_rate= smb
+ 
+ md=solve(md,MasstransportSolutionEnum())
+ 
+ for i in xrange(1,11):
+ 	 md=solve(md,MasstransportSolutionEnum())
+-	 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
++	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
+ 
+ #Set up transient
+-smb = md.surfaceforcings.mass_balance
++smb = md.smb.mass_balance
+ 
+ #tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
+ tooth=numpy.hstack((numpy.tile(smb-10.,(1,400)),numpy.tile(smb,(1,400))))
+ #smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
+ smb=numpy.hstack((numpy.tile(smb,(1,399)),smb,tooth,tooth))
+ 
+-#md.surfaceforcings.mass_balance= smb;
+-#md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
++#md.smb.mass_balance= smb;
++#md.smb.mass_balance(end+1,:)=[1.:2000.];
++md.smb.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', \
+-	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', \
++	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5']
+ field_tolerances=[1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -67,7 +67,7 @@
+ 	md.results.TransientSolution[400-1].Base,\
+ 	md.results.TransientSolution[400-1].Surface,\
+ 	md.results.TransientSolution[400-1].Thickness,\
+-	md.results.TransientSolution[400-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[400-1].SmbMassBalance,\
+ 	md.results.TransientSolution[800-1].Vx,\
+ 	md.results.TransientSolution[800-1].Vy,\
+ 	md.results.TransientSolution[800-1].Vel,\
+@@ -75,7 +75,7 @@
+ 	md.results.TransientSolution[800-1].Base,\
+ 	md.results.TransientSolution[800-1].Surface,\
+ 	md.results.TransientSolution[800-1].Thickness,\
+-	md.results.TransientSolution[800-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[800-1].SmbMassBalance,\
+ 	md.results.TransientSolution[1200-1].Vx,\
+ 	md.results.TransientSolution[1200-1].Vy,\
+ 	md.results.TransientSolution[1200-1].Vel,\
+@@ -83,7 +83,7 @@
+ 	md.results.TransientSolution[1200-1].Base,\
+ 	md.results.TransientSolution[1200-1].Surface,\
+ 	md.results.TransientSolution[1200-1].Thickness,\
+-	md.results.TransientSolution[1200-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1200-1].SmbMassBalance,\
+ 	md.results.TransientSolution[1600-1].Vx,\
+ 	md.results.TransientSolution[1600-1].Vy,\
+ 	md.results.TransientSolution[1600-1].Vel,\
+@@ -91,7 +91,7 @@
+ 	md.results.TransientSolution[1600-1].Base,\
+ 	md.results.TransientSolution[1600-1].Surface,\
+ 	md.results.TransientSolution[1600-1].Thickness,\
+-	md.results.TransientSolution[1600-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1600-1].SmbMassBalance,\
+ 	md.results.TransientSolution[2000-1].Vx,\
+ 	md.results.TransientSolution[2000-1].Vy,\
+ 	md.results.TransientSolution[2000-1].Vel,\
+@@ -99,7 +99,7 @@
+ 	md.results.TransientSolution[2000-1].Base,\
+ 	md.results.TransientSolution[2000-1].Surface,\
+ 	md.results.TransientSolution[2000-1].Thickness,\
+-	md.results.TransientSolution[2000-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2000-1].SmbMassBalance,\
+ 	]
+ 
+ if printingflag:
+@@ -123,7 +123,7 @@
+ 	for t=starttime:endtime
+ 		thickness = [thickness (md.results.TransientSolution(t).Thickness)];
+ 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
+-		massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
++		massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
+ 		velocity = [velocity (md.results.TransientSolution(t).Vel)];
+ 	end
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3109.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3109.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test3109.py	(revision 19527)
+@@ -16,6 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.toolkits.DefaultAnalysis=issmmumpssolver()
+Index: ../trunk-jpl/test/NightlyRun/test241.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test241.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test241.m	(revision 19527)
+@@ -14,17 +14,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -37,7 +37,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -45,7 +45,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -53,7 +53,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -61,5 +61,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test804.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test804.py	(revision 19527)
+@@ -19,6 +19,7 @@
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=False
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test207.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test207.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test207.m	(revision 19527)
+@@ -7,6 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test109.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test109.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test109.m	(revision 19527)
+@@ -7,6 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test803.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test803.m	(revision 19527)
+@@ -17,6 +17,7 @@
+ md.transient.islevelset=1;
+ md.transient.iscalving=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test1201.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1201.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1201.py	(revision 19527)
+@@ -22,7 +22,7 @@
+ 	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000.)
+ 	md=setmask(md,'all','')
+ 	md=parameterize(md,'../Par/SquareEISMINT.py')
+-	md.surfaceforcings.mass_balance[:]=0.
++	md.smb.mass_balance[:]=0.
+ 	md=setflowequation(md,'SSA','all')
+ 	md.cluster=generic('name',oshostname(),'np',8)
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3109.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3109.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test3109.m	(revision 19527)
+@@ -7,6 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.autodiff.isautodiff=true;
+Index: ../trunk-jpl/test/NightlyRun/test423.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test423.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test423.py	(revision 19527)
+@@ -31,6 +31,7 @@
+ 
+ md.transient.isthermal=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isstressbalance=True
+ md.transient.isgroundingline=True
+ 
+Index: ../trunk-jpl/test/NightlyRun/test437.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test437.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test437.m	(revision 19527)
+@@ -36,6 +36,7 @@
+ 
+ %Additional settings
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isstressbalance=0;
+ md.transient.isthermal=1;
+ md.thermal.stabilization = 0;
+Index: ../trunk-jpl/test/NightlyRun/test339.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test339.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test339.m	(revision 19527)
+@@ -14,20 +14,20 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings=SMBmeltcomponents();
+-md.surfaceforcings.accumulation=[smb; [1.5 3.]];
+-md.surfaceforcings.melt=[smb/2; [1.5 3.]];
+-md.surfaceforcings.refreeze=[smb; [1.5 3.]];
+-md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
++md.smb=SMBmeltcomponents();
++md.smb.accumulation=[smb; [1.5 3.]];
++md.smb.melt=[smb/2; [1.5 3.]];
++md.smb.refreeze=[smb; [1.5 3.]];
++md.smb.evaporation=[smb/2; [1.5 3.]];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={...
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -41,7 +41,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -49,7 +49,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -57,7 +57,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -65,5 +65,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test4001.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test4001.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test4001.m	(revision 19527)
+@@ -482,7 +482,7 @@
+ 	%temperatures and surface mass balance:
+ 	md.initialization.temperature=(273.15-20)*ones(md.mesh.numberofvertices,1);
+ 	md.initialization.pressure=md.materials.rho_ice*md.constants.g*(md.geometry.surface-md.geometry.base);
+-	md.surfaceforcings.mass_balance = [1*ones(md.mesh.numberofvertices,1); 1];
++	md.smb.mass_balance = [1*ones(md.mesh.numberofvertices,1); 1];
+ 
+ 	%Flow law 
+ 	md.materials.rheology_B=paterson(md.initialization.temperature);
+Index: ../trunk-jpl/test/NightlyRun/test230.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test230.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test230.py	(revision 19527)
+@@ -24,16 +24,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+@@ -47,7 +47,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -56,7 +56,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -65,7 +65,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vz,\
+@@ -74,5 +74,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test242.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test242.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test242.m	(revision 19527)
+@@ -15,17 +15,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
+ field_tolerances={...
+ 	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
+ 	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-13,...
+@@ -40,7 +40,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -49,7 +49,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -58,7 +58,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vz),...
+@@ -67,5 +67,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test339.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test339.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test339.py	(revision 19527)
+@@ -24,20 +24,20 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings=SMBmeltcomponents();
+-md.surfaceforcings.accumulation=numpy.vstack((smb, [1.5,3.]));
+-md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.melt=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.refreeze=numpy.vstack((smb, [1.5,3.]));
++md.smb=SMBmeltcomponents();
++md.smb.accumulation=numpy.vstack((smb, [1.5,3.]));
++md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.melt=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.refreeze=numpy.vstack((smb, [1.5,3.]));
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[\
+ 		1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 		1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -51,7 +51,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -59,7 +59,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -67,7 +67,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -75,5 +75,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test804.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test804.m	(revision 19527)
+@@ -9,6 +9,7 @@
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test1502.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1502.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1502.py	(revision 19527)
+@@ -26,35 +26,35 @@
+ 
+ #Solve for thinning rate -> -1 * surface mass balance
+ smb= 2.*numpy.ones((md.mesh.numberofvertices,1))
+-md.surfaceforcings.mass_balance= smb
++md.smb.mass_balance= smb
+ md.basalforcings.groundedice_melting_rate= smb
+ 
+ md=solve(md,MasstransportSolutionEnum())
+ 
+ for i in xrange(1,11):
+ 	 md=solve(md,MasstransportSolutionEnum())
+-	 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
++	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness)
+ 
+ #Set up transient
+-smb = md.surfaceforcings.mass_balance
++smb = md.smb.mass_balance
+ 
+ #tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
+ tooth=numpy.hstack((numpy.tile(smb-10.,(1,400)),numpy.tile(smb,(1,400))))
+ #smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
+ smb=numpy.hstack((numpy.tile(smb,(1,399)),smb,tooth,tooth))
+ 
+-#md.surfaceforcings.mass_balance= smb;
+-#md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
++#md.smb.mass_balance= smb;
++#md.smb.mass_balance(end+1,:)=[1.:2000.];
++md.smb.mass_balance=numpy.vstack((smb,numpy.arange(1,2001)))
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', \
+-	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5']
++field_names=['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', \
++	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5']
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+@@ -69,7 +69,7 @@
+ 	md.results.TransientSolution[400-1].Base,\
+ 	md.results.TransientSolution[400-1].Surface,\
+ 	md.results.TransientSolution[400-1].Thickness,\
+-	md.results.TransientSolution[400-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[400-1].SmbMassBalance,\
+ 	md.results.TransientSolution[800-1].Vx,\
+ 	md.results.TransientSolution[800-1].Vy,\
+ 	md.results.TransientSolution[800-1].Vz,\
+@@ -78,7 +78,7 @@
+ 	md.results.TransientSolution[800-1].Base,\
+ 	md.results.TransientSolution[800-1].Surface,\
+ 	md.results.TransientSolution[800-1].Thickness,\
+-	md.results.TransientSolution[800-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[800-1].SmbMassBalance,\
+ 	md.results.TransientSolution[1200-1].Vx,\
+ 	md.results.TransientSolution[1200-1].Vy,\
+ 	md.results.TransientSolution[1200-1].Vz,\
+@@ -87,7 +87,7 @@
+ 	md.results.TransientSolution[1200-1].Base,\
+ 	md.results.TransientSolution[1200-1].Surface,\
+ 	md.results.TransientSolution[1200-1].Thickness,\
+-	md.results.TransientSolution[1200-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1200-1].SmbMassBalance,\
+ 	md.results.TransientSolution[1600-1].Vx,\
+ 	md.results.TransientSolution[1600-1].Vy,\
+ 	md.results.TransientSolution[1600-1].Vz,\
+@@ -96,7 +96,7 @@
+ 	md.results.TransientSolution[1600-1].Base,\
+ 	md.results.TransientSolution[1600-1].Surface,\
+ 	md.results.TransientSolution[1600-1].Thickness,\
+-	md.results.TransientSolution[1600-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1600-1].SmbMassBalance,\
+ 	md.results.TransientSolution[2000-1].Vx,\
+ 	md.results.TransientSolution[2000-1].Vy,\
+ 	md.results.TransientSolution[2000-1].Vz,\
+@@ -105,7 +105,7 @@
+ 	md.results.TransientSolution[2000-1].Base,\
+ 	md.results.TransientSolution[2000-1].Surface,\
+ 	md.results.TransientSolution[2000-1].Thickness,\
+-	md.results.TransientSolution[2000-1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2000-1].SmbMassBalance,\
+ 	]
+ 
+ if printingflag:
+@@ -129,7 +129,7 @@
+ 	for t=starttime:endtime
+ 		thickness = [thickness (md.results.TransientSolution(t).Thickness)];
+ 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
+-		massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
++		massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
+ 		velocity = [velocity (md.results.TransientSolution(t).Vel)];
+ 	end
+ 
+Index: ../trunk-jpl/test/NightlyRun/test805.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test805.py	(revision 19527)
+@@ -26,6 +26,7 @@
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test234.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test234.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test234.m	(revision 19527)
+@@ -12,8 +12,8 @@
+ smb = ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1 ];
+ 
+-md.surfaceforcings.mass_balance= smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3];
++md.smb.mass_balance= smb;
++md.smb.mass_balance(end+1,:)=[1.5 3];
+ md.transient.isthermal=0;
+ %Dakota options
+ 
+@@ -23,7 +23,7 @@
+ md.qmu.partition=md.qmu.partition-1;
+ 
+ %variables
+-md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SurfaceforcingsMassBalance',1,0.1);
++md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SmbMassBalance',1,0.1);
+ 
+ %responses
+ md.qmu.responses.MaxVel=response_function('MaxVel',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+Index: ../trunk-jpl/test/NightlyRun/test424.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test424.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test424.py	(revision 19527)
+@@ -19,7 +19,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y.reshape(-1,1)-500000.)/1000.
+ md.geometry.thickness[:]=1000.
+ md.geometry.surface=md.geometry.base+md.geometry.thickness
+-md.surfaceforcings.mass_balance[:]=100.
++md.smb.mass_balance[:]=100.
+ md.transient.isstressbalance=False
+ md.transient.isgroundingline=True
+ md.groundingline.migration='AggressiveMigration'
+Index: ../trunk-jpl/test/NightlyRun/test236.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test236.py	(revision 19527)
+@@ -14,54 +14,54 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ 
+ # Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isdelta18o=1
+-md.surfaceforcings.ismungsm=0
++md.smb = SMBpdd();
++md.smb.isdelta18o=1
++md.smb.ismungsm=0
+ 
+ # Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ # creating delta18o
+ delta18o=numpy.loadtxt('../Data/delta18o.data')
+-md.surfaceforcings.delta18o=delta18o
++md.smb.delta18o=delta18o
+ # creating delta18oSurface
+-md.surfaceforcings.delta18o_surface = numpy.zeros((2,numpy.size(delta18o,axis=1)))
+-md.surfaceforcings.delta18o_surface[1,:] = delta18o[1,:]
++md.smb.delta18o_surface = numpy.zeros((2,numpy.size(delta18o,axis=1)))
++md.smb.delta18o_surface[1,:] = delta18o[1,:]
+ 
+ # creating Present day and lgm temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+-md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+-md.surfaceforcings.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+-    md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
++    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+-    md.surfaceforcings.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
++md.thermal.spctemperature=numpy.mean(md.smb.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
+ md.thermal.spctemperature=numpy.tile(md.thermal.spctemperature,(1,md.timestepping.final_time/md.timestepping.time_step))
+ itemp=numpy.arange(0,md.timestepping.final_time,md.timestepping.time_step)
+ md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
+ 
+-md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0]    #*ones(md.mesh.numberofvertices,1)
+-md.surfaceforcings.initialize(md)
++md.initialization.temperature=md.smb.temperatures_lgm[0:md.mesh.numberofvertices,0]    #*ones(md.mesh.numberofvertices,1)
++md.smb.initialize(md)
+ 
+ # creating precipitation
+-md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+-md.surfaceforcings.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+-    md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # Interpolation factors
+-md.surfaceforcings.Tdiff=0.5*numpy.ones((2,md.timestepping.final_time))
+-md.surfaceforcings.sealev=0.5*numpy.ones((2,md.timestepping.final_time))
++md.smb.Tdiff=0.5*numpy.ones((2,md.timestepping.final_time))
++md.smb.sealev=0.5*numpy.ones((2,md.timestepping.final_time))
+ # Year of each data point
+-md.surfaceforcings.Tdiff[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
+-md.surfaceforcings.sealev[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
++md.smb.Tdiff[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
++md.smb.sealev[1,1:md.timestepping.final_time]=numpy.arange(1.,md.timestepping.final_time)
+ 
+ # time steps and resolution
+ md.timestepping.time_step=20.
+@@ -69,15 +69,15 @@
+ 
+ 
+ # 
+-md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md.transient.requested_outputs=['default','SmbMonthlytemperatures']
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+-		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+@@ -89,8 +89,8 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMonthlytemperatures,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -98,8 +98,8 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMonthlytemperatures,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -107,6 +107,6 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMonthlytemperatures,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test805.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test805.m	(revision 19527)
+@@ -16,6 +16,7 @@
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test231.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test231.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test231.py	(revision 19527)
+@@ -24,16 +24,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*2.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4']
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4']
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+@@ -47,7 +47,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -56,7 +56,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -65,7 +65,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vz,\
+@@ -74,5 +74,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test433.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test433.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test433.py	(revision 19527)
+@@ -32,6 +32,7 @@
+ 
+ md.transient.isthermal=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isstressbalance=False
+ md.transient.isgroundingline=True
+ 
+Index: ../trunk-jpl/test/NightlyRun/test326.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test326.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test326.py	(revision 19527)
+@@ -19,6 +19,7 @@
+ md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1))
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.thermal.isenthalpy=1
+Index: ../trunk-jpl/test/NightlyRun/test407.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test407.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test407.py	(revision 19527)
+@@ -17,6 +17,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test235.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test235.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test235.m	(revision 19527)
+@@ -12,8 +12,8 @@
+ smb = ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1 ];
+ 
+-md.surfaceforcings.mass_balance= smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3];
++md.smb.mass_balance= smb;
++md.smb.mass_balance(end+1,:)=[1.5 3];
+ md.transient.isthermal=0;
+ %Dakota options
+ 
+@@ -23,7 +23,7 @@
+ md.qmu.partition=md.qmu.partition-1;
+ 
+ %variables
+-md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SurfaceforcingsMassBalance',1,100);
++md.qmu.variables.surface_mass_balance=normal_uncertain('scaled_SmbMassBalance',1,100);
+ 
+ %responses
+ md.qmu.responses.MaxVel=response_function('MaxVel',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+Index: ../trunk-jpl/test/NightlyRun/test240.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test240.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test240.py	(revision 19527)
+@@ -14,34 +14,34 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ 
+ # Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
+ 
+ # Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ # creating delta18o
+ delta18o=numpy.loadtxt('../Data/delta18o.data')
+-md.surfaceforcings.delta18o=delta18o
++md.smb.delta18o=delta18o
+ 
+ # creating Present day temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+-md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
++    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+-md.surfaceforcings.initialize(md)
++md.smb.initialize(md)
+ 
+ # creating precipitation
+-md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # time steps and resolution
+ md.timestepping.time_step=0.5;
+@@ -50,15 +50,15 @@
+ md.timestepping.interp_forcings=0;
+ 
+ # 
+-md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md.transient.requested_outputs=['default','SmbMonthlytemperatures']
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+-		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+@@ -70,8 +70,8 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMonthlytemperatures,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -79,8 +79,8 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMonthlytemperatures,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -88,6 +88,6 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMonthlytemperatures,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test121.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test121.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test121.m	(revision 19527)
+@@ -9,6 +9,7 @@
+ md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.thermal.isenthalpy=1;
+Index: ../trunk-jpl/test/NightlyRun/test228.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test228.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test228.py	(revision 19527)
+@@ -23,16 +23,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -45,7 +45,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -53,7 +53,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -61,7 +61,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -69,5 +69,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test423.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test423.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test423.m	(revision 19527)
+@@ -20,6 +20,7 @@
+ 
+ md.transient.isthermal=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isstressbalance=1;
+ md.transient.isgroundingline=1;
+ 
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 19527)
+@@ -30,6 +30,7 @@
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=False
+ md.transient.isgroundingline=False
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 19527)
+@@ -19,6 +19,7 @@
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=0;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test1501.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1501.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1501.m	(revision 19527)
+@@ -14,33 +14,33 @@
+ 
+ %Solve for thinning rate -> -1 * surface mass balance
+ smb= 2.*ones(md.mesh.numberofvertices,1);
+-md.surfaceforcings.mass_balance= smb;
++md.smb.mass_balance= smb;
+ md.basalforcings.groundedice_melting_rate= smb;
+ 
+ md=solve(md,MasstransportSolutionEnum());
+ 
+ for i=1:10
+ 	 md=solve(md,MasstransportSolutionEnum());
+-	 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
++	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
+ end
+ 
+ %Set up transient
+-smb = md.surfaceforcings.mass_balance;
++smb = md.smb.mass_balance;
+ 
+ tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
+ smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
+ 
+-md.surfaceforcings.mass_balance= smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
++md.smb.mass_balance= smb;
++md.smb.mass_balance(end+1,:)=[1.:2000.];
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
+-	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', ...
++	'Vx5','Vy5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5'};
+ field_tolerances={1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -54,7 +54,7 @@
+ 	(md.results.TransientSolution(400).Base),...
+ 	(md.results.TransientSolution(400).Surface),...
+ 	(md.results.TransientSolution(400).Thickness),...
+-	(md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(400).SmbMassBalance),...
+ 	(md.results.TransientSolution(800).Vx),...
+ 	(md.results.TransientSolution(800).Vy),...
+ 	(md.results.TransientSolution(800).Vel),...
+@@ -62,7 +62,7 @@
+ 	(md.results.TransientSolution(800).Base),...
+ 	(md.results.TransientSolution(800).Surface),...
+ 	(md.results.TransientSolution(800).Thickness),...
+-	(md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(800).SmbMassBalance),...
+ 	(md.results.TransientSolution(1200).Vx),...
+ 	(md.results.TransientSolution(1200).Vy),...
+ 	(md.results.TransientSolution(1200).Vel),...
+@@ -70,7 +70,7 @@
+ 	(md.results.TransientSolution(1200).Base),...
+ 	(md.results.TransientSolution(1200).Surface),...
+ 	(md.results.TransientSolution(1200).Thickness),...
+-	(md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1200).SmbMassBalance),...
+ 	(md.results.TransientSolution(1600).Vx),...
+ 	(md.results.TransientSolution(1600).Vy),...
+ 	(md.results.TransientSolution(1600).Vel),...
+@@ -78,7 +78,7 @@
+ 	(md.results.TransientSolution(1600).Base),...
+ 	(md.results.TransientSolution(1600).Surface),...
+ 	(md.results.TransientSolution(1600).Thickness),...
+-	(md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1600).SmbMassBalance),...
+ 	(md.results.TransientSolution(2000).Vx),...
+ 	(md.results.TransientSolution(2000).Vy),...
+ 	(md.results.TransientSolution(2000).Vel),...
+@@ -86,7 +86,7 @@
+ 	(md.results.TransientSolution(2000).Base),...
+ 	(md.results.TransientSolution(2000).Surface),...
+ 	(md.results.TransientSolution(2000).Thickness),...
+-	(md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2000).SmbMassBalance),...
+ 	};
+ 
+ if printingflag,
+@@ -108,7 +108,7 @@
+ 	for t=starttime:endtime
+ 		thickness = [thickness (md.results.TransientSolution(t).Thickness)];
+ 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
+-		massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
++		massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
+ 		velocity = [velocity (md.results.TransientSolution(t).Vel)];
+ 	end
+ 
+Index: ../trunk-jpl/test/NightlyRun/test801.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test801.py	(revision 19527)
+@@ -20,6 +20,7 @@
+ md.transient.islevelset=True
+ md.transient.iscalving=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=False
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test425.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test425.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test425.py	(revision 19527)
+@@ -19,7 +19,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y.reshape(-1,1)-500000.)/1000.
+ md.geometry.thickness[:]=1300.
+ md.geometry.surface=md.geometry.base+md.geometry.thickness
+-md.surfaceforcings.mass_balance[:]=-150.
++md.smb.mass_balance[:]=-150.
+ md.transient.isstressbalance=False
+ md.transient.isgroundingline=True
+ md.groundingline.migration='SoftMigration'
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19527)
+@@ -15,9 +15,9 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ 
+ # Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isdelta18o=0
+-md.surfaceforcings.ismungsm=1
++md.smb = SMBpdd();
++md.smb.isdelta18o=0
++md.smb.ismungsm=1
+ 
+ # time steps and resolution
+ md.timestepping.time_step=20.
+@@ -27,58 +27,58 @@
+ # creating Present day and lgm temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+-md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+-md.surfaceforcings.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+-    md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
++    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    md.smb.temperatures_lgm[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]-20.
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+-    md.surfaceforcings.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.temperatures_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
++md.thermal.spctemperature=numpy.mean(md.smb.temperatures_lgm[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)    #-10*ones(md.mesh.numberofvertices,1)
+ md.thermal.spctemperature=numpy.tile(md.thermal.spctemperature,(1,md.timestepping.final_time/md.timestepping.time_step))
+ itemp=numpy.arange(0,md.timestepping.final_time,md.timestepping.time_step)
+ md.thermal.spctemperature=numpy.vstack((md.thermal.spctemperature,itemp.reshape(1,-1)))
+ 
+-md.initialization.temperature=md.surfaceforcings.temperatures_lgm[0:md.mesh.numberofvertices,0].reshape(-1,1)   #*ones(md.mesh.numberofvertices,1)
+-md.surfaceforcings.initialize(md)
++md.initialization.temperature=md.smb.temperatures_lgm[0:md.mesh.numberofvertices,0].reshape(-1,1)   #*ones(md.mesh.numberofvertices,1)
++md.smb.initialize(md)
+ 
+ # creating precipitation
+-md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+-md.surfaceforcings.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_lgm=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+-    md.surfaceforcings.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.precipitations_lgm[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_lgm[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ fsize=int(md.timestepping.final_time/md.timestepping.time_step)+2
+-md.surfaceforcings.Pfac=numpy.zeros((2,fsize))
+-md.surfaceforcings.Tdiff=numpy.zeros((2,fsize))
+-md.surfaceforcings.sealev=numpy.zeros((2,fsize))
++md.smb.Pfac=numpy.zeros((2,fsize))
++md.smb.Tdiff=numpy.zeros((2,fsize))
++md.smb.sealev=numpy.zeros((2,fsize))
+ for iint in xrange(0,fsize):
+     # Interpolation factors
+-	 md.surfaceforcings.Pfac[0,iint]=0.15*(iint+1)
+-	 md.surfaceforcings.Tdiff[0,iint]=0.15*(iint+1)
+-	 md.surfaceforcings.sealev[0,iint]=0.15*(iint+1)
++	 md.smb.Pfac[0,iint]=0.15*(iint+1)
++	 md.smb.Tdiff[0,iint]=0.15*(iint+1)
++	 md.smb.sealev[0,iint]=0.15*(iint+1)
+ 	 # Year of each data point
+-	 md.surfaceforcings.Pfac[1,iint]=(float(iint))*20
+-	 md.surfaceforcings.Tdiff[1,iint]=(float(iint))*20
+-	 md.surfaceforcings.sealev[1,iint]=(float(iint))*20
++	 md.smb.Pfac[1,iint]=(float(iint))*20
++	 md.smb.Tdiff[1,iint]=(float(iint))*20
++	 md.smb.sealev[1,iint]=(float(iint))*20
+ 
+ #
+-md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md.transient.requested_outputs=['default','SmbMonthlytemperatures']
+ md.extrude(3,1.)
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+-		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SmbMonthlytemperatures1','SmbMassBalance1',\
++		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',\
++		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+ 		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+ 		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13];
+@@ -93,8 +93,8 @@
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].Temperature,\
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
+-	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMonthlytemperatures,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -105,8 +105,8 @@
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].Temperature,\
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
+-	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMonthlytemperatures,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -117,6 +117,6 @@
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].Temperature,\
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
+-	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMonthlytemperatures,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test236.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test236.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test236.m	(revision 19527)
+@@ -6,57 +6,57 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isdelta18o=1;
+-md.surfaceforcings.ismungsm=0;
++md.smb = SMBpdd();
++md.smb.isdelta18o=1;
++md.smb.ismungsm=0;
+ 
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
++md.smb.delta18o=delta18o;
+ % creating delta18oSurface
+-md.surfaceforcings.delta18o_surface(1,1:(length(delta18o))) = 0;
+-md.surfaceforcings.delta18o_surface(2,:) = delta18o(2,:);
++md.smb.delta18o_surface(1,1:(length(delta18o))) = 0;
++md.smb.delta18o_surface(2,:) = delta18o(2,:);
+ 
+ % creating Present day and lgm temperatures
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+ for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+-    md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
++    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    md.smb.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
+     % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-    md.surfaceforcings.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % creating initialization and spc temperatures initialization and
+ % spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
++md.thermal.spctemperature=mean(md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
+ md.thermal.spctemperature=repmat(md.thermal.spctemperature,1,md.timestepping.final_time/md.timestepping.time_step);
+ itemp=0:md.timestepping.time_step:md.timestepping.final_time-md.timestepping.time_step;
+ md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
+ 
+-md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.initialization.temperature=md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
++md.smb = initialize(md.smb,md);
+ 
+ % creating precipitation
+ for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+-    md.surfaceforcings.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+     % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-    md.surfaceforcings.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % Interpolation factors
+-md.surfaceforcings.Tdiff(1,1:md.timestepping.final_time)=0.5;
+-md.surfaceforcings.sealev(1,1:md.timestepping.final_time)=0.5;
++md.smb.Tdiff(1,1:md.timestepping.final_time)=0.5;
++md.smb.sealev(1,1:md.timestepping.final_time)=0.5;
+ % Year of each data point
+-md.surfaceforcings.Tdiff(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
+-md.surfaceforcings.sealev(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
++md.smb.Tdiff(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
++md.smb.sealev(2,1:md.timestepping.final_time)=1:1:md.timestepping.final_time;
+ 
+ % time steps and resolution
+ md.timestepping.time_step=20;
+@@ -64,15 +64,15 @@
+ md.timestepping.final_time=60;
+ 
+ % 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
+-	   'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
+-	   'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
++	   'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
++	   'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+@@ -84,8 +84,8 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -93,8 +93,8 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -102,6 +102,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test232.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test232.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test232.py	(revision 19527)
+@@ -20,6 +20,7 @@
+ md.timestepping.final_time=4.
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test313.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test313.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test313.py	(revision 19527)
+@@ -17,6 +17,7 @@
+ md.verbose=verbose('convergence',True,'solution',True)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test105.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test105.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test105.m	(revision 19527)
+@@ -4,6 +4,7 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
++md.verbose=verbose('11111111');
+ md=solve(md,MasstransportSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test515.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test515.py	(revision 19527)
+@@ -17,6 +17,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test424.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test424.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test424.m	(revision 19527)
+@@ -9,7 +9,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y-500000.)/1000.;
+ md.geometry.thickness(:)=1000.;
+ md.geometry.surface=md.geometry.base+md.geometry.thickness;
+-md.surfaceforcings.mass_balance(:)=100.;
++md.smb.mass_balance(:)=100.;
+ md.transient.isstressbalance=0;
+ md.transient.isgroundingline=1;
+ md.groundingline.migration='AggressiveMigration';
+Index: ../trunk-jpl/test/NightlyRun/test326.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test326.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test326.m	(revision 19527)
+@@ -9,6 +9,7 @@
+ md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.thermal.isenthalpy=1;
+Index: ../trunk-jpl/test/NightlyRun/test407.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test407.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test407.m	(revision 19527)
+@@ -7,6 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test228.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test228.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test228.m	(revision 19527)
+@@ -13,17 +13,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -36,7 +36,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -44,7 +44,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -52,7 +52,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -60,5 +60,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 19527)
+@@ -19,6 +19,7 @@
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
++md.transient.issmb=1;
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=0;
+ md.transient.isgia=0;
+Index: ../trunk-jpl/test/NightlyRun/test1502.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1502.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1502.m	(revision 19527)
+@@ -15,33 +15,33 @@
+ 
+ %Solve for thinning rate -> -1 * surface mass balance
+ smb= 2.*ones(md.mesh.numberofvertices,1);
+-md.surfaceforcings.mass_balance= smb;
++md.smb.mass_balance= smb;
+ md.basalforcings.groundedice_melting_rate= smb;
+ 
+ md=solve(md,MasstransportSolutionEnum());
+ 
+ for i=1:10
+ 	 md=solve(md,MasstransportSolutionEnum());
+-	 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
++	 md.smb.mass_balance= md.smb.mass_balance - ((md.results.MasstransportSolution.Thickness)-md.geometry.thickness);
+ end
+ 
+ %Set up transient
+-smb = md.surfaceforcings.mass_balance;
++smb = md.smb.mass_balance;
+ 
+ tooth= [ [ones(400,1)*(smb') - 10.]' [ones(400,1)*(smb')]' ];
+ smb=[ [ones(399,1)*(smb')]' smb  tooth tooth];
+ 
+-md.surfaceforcings.mass_balance= smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.:2000.];
++md.smb.mass_balance= smb;
++md.smb.mass_balance(end+1,:)=[1.:2000.];
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4', ...
+-	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SurfaceforcingsMassBalance5'};
++field_names={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4', ...
++	'Vx5','Vy5','Vz5','Vel5','Pressure5','Bed5','Surface5','Thickness5','SmbMassBalance5'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+@@ -56,7 +56,7 @@
+ 	(md.results.TransientSolution(400).Base),...
+ 	(md.results.TransientSolution(400).Surface),...
+ 	(md.results.TransientSolution(400).Thickness),...
+-	(md.results.TransientSolution(400).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(400).SmbMassBalance),...
+ 	(md.results.TransientSolution(800).Vx),...
+ 	(md.results.TransientSolution(800).Vy),...
+ 	(md.results.TransientSolution(800).Vz),...
+@@ -65,7 +65,7 @@
+ 	(md.results.TransientSolution(800).Base),...
+ 	(md.results.TransientSolution(800).Surface),...
+ 	(md.results.TransientSolution(800).Thickness),...
+-	(md.results.TransientSolution(800).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(800).SmbMassBalance),...
+ 	(md.results.TransientSolution(1200).Vx),...
+ 	(md.results.TransientSolution(1200).Vy),...
+ 	(md.results.TransientSolution(1200).Vz),...
+@@ -74,7 +74,7 @@
+ 	(md.results.TransientSolution(1200).Base),...
+ 	(md.results.TransientSolution(1200).Surface),...
+ 	(md.results.TransientSolution(1200).Thickness),...
+-	(md.results.TransientSolution(1200).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1200).SmbMassBalance),...
+ 	(md.results.TransientSolution(1600).Vx),...
+ 	(md.results.TransientSolution(1600).Vy),...
+ 	(md.results.TransientSolution(1600).Vz),...
+@@ -83,7 +83,7 @@
+ 	(md.results.TransientSolution(1600).Base),...
+ 	(md.results.TransientSolution(1600).Surface),...
+ 	(md.results.TransientSolution(1600).Thickness),...
+-	(md.results.TransientSolution(1600).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1600).SmbMassBalance),...
+ 	(md.results.TransientSolution(2000).Vx),...
+ 	(md.results.TransientSolution(2000).Vy),...
+ 	(md.results.TransientSolution(2000).Vz),...
+@@ -92,7 +92,7 @@
+ 	(md.results.TransientSolution(2000).Base),...
+ 	(md.results.TransientSolution(2000).Surface),...
+ 	(md.results.TransientSolution(2000).Thickness),...
+-	(md.results.TransientSolution(2000).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2000).SmbMassBalance),...
+ 	};
+ 
+ if printingflag,
+@@ -114,7 +114,7 @@
+ 	for t=starttime:endtime
+ 		thickness = [thickness (md.results.TransientSolution(t).Thickness)];
+ 		volume = [volume mean(md.results.TransientSolution(t).Thickness.value,2).*areas];
+-		massbal = [massbal (md.results.TransientSolution(t).SurfaceforcingsMassBalance)];
++		massbal = [massbal (md.results.TransientSolution(t).SmbMassBalance)];
+ 		velocity = [velocity (md.results.TransientSolution(t).Vel)];
+ 	end
+ 
+Index: ../trunk-jpl/test/NightlyRun/test241.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test241.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test241.py	(revision 19527)
+@@ -24,16 +24,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -46,7 +46,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -54,7 +54,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -62,7 +62,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -70,5 +70,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test336.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test336.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test336.py	(revision 19527)
+@@ -23,19 +23,19 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*-1.))
+ 
+-md.surfaceforcings=SMBcomponents();
+-md.surfaceforcings.accumulation=numpy.vstack((smb*2, [1.5,3.]));
+-md.surfaceforcings.runoff=numpy.vstack((smb/2, [1.5,3.]));
+-md.surfaceforcings.evaporation=numpy.vstack((smb/2, [1.5,3.]));
++md.smb=SMBcomponents();
++md.smb.accumulation=numpy.vstack((smb*2, [1.5,3.]));
++md.smb.runoff=numpy.vstack((smb/2, [1.5,3.]));
++md.smb.evaporation=numpy.vstack((smb/2, [1.5,3.]));
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -48,7 +48,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -56,7 +56,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -64,7 +64,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -72,5 +72,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test229.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test229.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test229.py	(revision 19527)
+@@ -23,16 +23,16 @@
+ smb=numpy.ones((md.mesh.numberofvertices,1))*3.6
+ smb=numpy.hstack((smb,smb*2.))
+ 
+-md.surfaceforcings.mass_balance=numpy.vstack((smb,[1.5,3.]))
++md.smb.mass_balance=numpy.vstack((smb,[1.5,3.]))
+ md.transient.isthermal=False
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', \
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', \
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', \
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4']
++field_names=['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', \
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', \
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', \
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4']
+ field_tolerances=[1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+@@ -45,7 +45,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -53,7 +53,7 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -61,7 +61,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[3].Vx,\
+ 	md.results.TransientSolution[3].Vy,\
+ 	md.results.TransientSolution[3].Vel,\
+@@ -69,5 +69,5 @@
+ 	md.results.TransientSolution[3].Base,\
+ 	md.results.TransientSolution[3].Surface,\
+ 	md.results.TransientSolution[3].Thickness,\
+-	md.results.TransientSolution[3].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[3].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test433.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test433.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test433.m	(revision 19527)
+@@ -21,6 +21,7 @@
+ 
+ md.transient.isthermal=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isstressbalance=0;
+ md.transient.isgroundingline=1;
+ 
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 19527)
+@@ -30,6 +30,7 @@
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=False
+ md.transient.isgroundingline=False
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 19527)
+@@ -6,9 +6,9 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of ispdd methods
+-md.surfaceforcings = SMBpdd();
+-md.surfaceforcings.isdelta18o=0;
+-md.surfaceforcings.ismungsm=1;
++md.smb = SMBpdd();
++md.smb.isdelta18o=0;
++md.smb.ismungsm=1;
+ 
+ % time steps and resolution
+ md.timestepping.time_step=20;
+@@ -19,43 +19,43 @@
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+ for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+-    md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
++    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    md.smb.temperatures_lgm(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1)-20.;
+     % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-    md.surfaceforcings.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
++md.thermal.spctemperature=mean(md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1:12),2); %-10*ones(md.mesh.numberofvertices,1);
+ md.thermal.spctemperature=repmat(md.thermal.spctemperature,1,md.timestepping.final_time/md.timestepping.time_step);
+ itemp=0:md.timestepping.time_step:md.timestepping.final_time-md.timestepping.time_step;
+ md.thermal.spctemperature(md.mesh.numberofvertices+1,:)=itemp;
+ 
+-md.initialization.temperature=md.surfaceforcings.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.initialization.temperature=md.smb.temperatures_lgm(1:md.mesh.numberofvertices,1); %*ones(md.mesh.numberofvertices,1);
++md.smb = initialize(md.smb,md);
+ 
+ % creating precipitation
+ for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+-    md.surfaceforcings.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_lgm(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+     % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+-    md.surfaceforcings.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_lgm(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ for iint=1:(md.timestepping.final_time/md.timestepping.time_step)+1
+-    md.surfaceforcings.Pfac(1,iint)=0.15*iint;
+-    md.surfaceforcings.Tdiff(1,iint)=0.15*iint;
+-    md.surfaceforcings.sealev(1,iint)=0.15*iint;
++    md.smb.Pfac(1,iint)=0.15*iint;
++    md.smb.Tdiff(1,iint)=0.15*iint;
++    md.smb.sealev(1,iint)=0.15*iint;
+     % Year of each data point
+-    md.surfaceforcings.Pfac(2,iint)=(iint-1)*20;
+-    md.surfaceforcings.Tdiff(2,iint)=(iint-1)*20;
+-    md.surfaceforcings.sealev(2,iint)=(iint-1)*20;
++    md.smb.Pfac(2,iint)=(iint-1)*20;
++    md.smb.Tdiff(2,iint)=(iint-1)*20;
++    md.smb.sealev(2,iint)=(iint-1)*20;
+ end
+ 
+ %
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
+ md=extrude(md,3,1);
+ 
+ md=setflowequation(md,'SSA','all');
+@@ -63,9 +63,9 @@
+ md=solve(md,TransientSolutionEnum);
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
+-						'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
+-						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','SmbMonthlytemperatures1','SmbMassBalance1',...
++						'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',...
++						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
+@@ -81,8 +81,8 @@
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).Temperature),...
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -93,8 +93,8 @@
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).Temperature),...
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -105,6 +105,6 @@
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).Temperature),...
+ 	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 19527)
+@@ -25,6 +25,7 @@
+ md.transient.islevelset=True
+ md.transient.iscalving=True
+ md.transient.ismasstransport=True
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+Index: ../trunk-jpl/test/NightlyRun/test426.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test426.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test426.py	(revision 19527)
+@@ -18,7 +18,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y.reshape(-1,1)-500000.)/1000.
+ md.geometry.thickness[:]=1000.
+ md.geometry.surface=md.geometry.base+md.geometry.thickness
+-md.surfaceforcings.mass_balance[:]=100.
++md.smb.mass_balance[:]=100.
+ md.extrude(3,1.);
+ md=setflowequation(md,'SSA','all');
+ md.transient.isstressbalance=False
+Index: ../trunk-jpl/test/NightlyRun/test238.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test238.py	(revision 19527)
+@@ -14,34 +14,34 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ 
+ # Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
+ 
+ # Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ # creating delta18o
+ delta18o=numpy.loadtxt('../Data/delta18o.data')
+-md.surfaceforcings.delta18o=delta18o
++md.smb.delta18o=delta18o
+ 
+ # creating Present day temperatures
+ # Same temperature over the all region:
+ tmonth=numpy.ones(12)*(238.15+20.)
+-md.surfaceforcings.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.temperatures_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
++    md.smb.temperatures_presentday[0:md.mesh.numberofvertices,imonth]=tmonth[imonth]
+     # Time for the last line:
+-    md.surfaceforcings.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
++    md.smb.temperatures_presentday[md.mesh.numberofvertices,imonth]=((float(imonth)+1.)/12.)
+ 
+ # creating initialization and spc temperatures initialization and spc
+-md.thermal.spctemperature=numpy.mean(md.surfaceforcings.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
++md.thermal.spctemperature=numpy.mean(md.smb.temperatures_presentday[0:md.mesh.numberofvertices,:],axis=1).reshape(-1,1)
+ md.thermal.spctemperature=md.thermal.spctemperature-10
+ md.initialization.temperature=md.thermal.spctemperature
+-md.surfaceforcings.initialize(md)
++md.smb.initialize(md)
+ 
+ # creating precipitation
+-md.surfaceforcings.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
++md.smb.precipitations_presentday=numpy.zeros((md.mesh.numberofvertices+1,12))
+ for imonth in xrange(0,12):
+-    md.surfaceforcings.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
+-    md.surfaceforcings.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
++    md.smb.precipitations_presentday[0:md.mesh.numberofvertices,imonth]=-0.4*10**(-6)*md.mesh.y+0.5
++    md.smb.precipitations_presentday[md.mesh.numberofvertices,imonth]=(float(imonth)/12.)
+ 
+ # time steps and resolution
+ md.timestepping.time_step=20;
+@@ -49,15 +49,15 @@
+ md.timestepping.final_time=60;
+ 
+ # 
+-md.transient.requested_outputs=['default','SurfaceforcingsMonthlytemperatures']
++md.transient.requested_outputs=['default','SmbMonthlytemperatures']
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',\
+-		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',\
+-				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'];
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',\
++		            'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',\
++				      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 		            1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 			         1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13];
+@@ -69,8 +69,8 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMonthlytemperatures,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -78,8 +78,8 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+-	md.results.TransientSolution[1].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMonthlytemperatures,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -87,6 +87,6 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMonthlytemperatures,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMonthlytemperatures,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test425.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test425.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test425.m	(revision 19527)
+@@ -9,7 +9,7 @@
+ md.geometry.bed =-700.-abs(md.mesh.y-500000.)/1000.;
+ md.geometry.thickness(:)=1300.;
+ md.geometry.surface=md.geometry.base+md.geometry.thickness;
+-md.surfaceforcings.mass_balance(:)=-150.;
++md.smb.mass_balance(:)=-150.;
+ md.transient.isstressbalance=0;
+ md.transient.isgroundingline=1;
+ md.groundingline.migration='SoftMigration';
+Index: ../trunk-jpl/test/NightlyRun/test229.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test229.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test229.m	(revision 19527)
+@@ -13,17 +13,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*2. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -36,7 +36,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -44,7 +44,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -52,7 +52,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -60,5 +60,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test1201.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test1201.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test1201.m	(revision 19527)
+@@ -9,7 +9,7 @@
+ 	md=bamg(model(),'domain','../Exp/SquareEISMINT.exp','hmax',3000.);
+ 	md=setmask(md,'all','');
+ 	md=parameterize(md,'../Par/SquareEISMINT.par');
+-	md.surfaceforcings.mass_balance(:)=0.;
++	md.smb.mass_balance(:)=0.;
+ 	md=setflowequation(md,'SSA','all');
+ 	md.cluster=generic('name',oshostname(),'np',8);
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3009.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19527)
+@@ -16,6 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.toolkits.DefaultAnalysis=issmgslsolver()
+Index: ../trunk-jpl/test/NightlyRun/test230.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test230.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test230.m	(revision 19527)
+@@ -14,17 +14,17 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings.mass_balance=smb;
+-md.surfaceforcings.mass_balance(end+1,:)=[1.5 3.];
++md.smb.mass_balance=smb;
++md.smb.mass_balance(end+1,:)=[1.5 3.];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassbalance4'};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassbalance4'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+@@ -38,7 +38,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -47,7 +47,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -56,7 +56,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vz),...
+@@ -65,5 +65,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test207.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test207.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test207.py	(revision 19527)
+@@ -18,6 +18,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
++md.transient.issmb=False
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test328.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test328.py	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test328.py	(revision 19527)
+@@ -14,12 +14,12 @@
+ md=setmask(md,'','')
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
+ md=setflowequation(md,'SSA','all')
+-md.surfaceforcings = SMBgradients();
+-md.surfaceforcings.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
+-md.surfaceforcings.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
++md.smb = SMBgradients();
++md.smb.b_pos=-100. + 0.00005*md.mesh.x - 0.0001*md.mesh.y
++md.smb.b_neg=250. + 0.000051*md.mesh.x - 0.00011*md.mesh.y
+ md.transient.requested_outputs=['default','TotalSmb']
+-md.surfaceforcings.href=copy.deepcopy(md.geometry.surface).reshape(-1)
+-md.surfaceforcings.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
++md.smb.href=copy.deepcopy(md.geometry.surface).reshape(-1)
++md.smb.smbref= 1000. - 0.001*md.mesh.x - 0.005*md.mesh.y;
+ md.cluster=generic('name',oshostname(),'np',3)
+ md=solve(md,TransientSolutionEnum())
+ 
+@@ -33,7 +33,7 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+-	md.results.TransientSolution[0].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[0].SmbMassBalance,\
+ 	md.results.TransientSolution[0].TotalSmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+@@ -42,13 +42,13 @@
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].TotalSmb,\
+-	md.results.TransientSolution[1].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[1].SmbMassBalance,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[2].SurfaceforcingsMassBalance,\
++	md.results.TransientSolution[2].SmbMassBalance,\
+ 	md.results.TransientSolution[2].TotalSmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test515.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test515.m	(revision 19527)
+@@ -8,6 +8,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
++md.transient.issmb=0;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test336.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test336.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test336.m	(revision 19527)
+@@ -13,19 +13,19 @@
+ smb=ones(md.mesh.numberofvertices,1)*3.6;
+ smb=[ smb smb*-1. ];
+ 
+-md.surfaceforcings=SMBcomponents();
+-md.surfaceforcings.accumulation=[smb*2; [1.5 3.]];
+-md.surfaceforcings.runoff=[smb/2; [1.5 3.]];
+-md.surfaceforcings.evaporation=[smb/2; [1.5 3.]];
++md.smb=SMBcomponents();
++md.smb.accumulation=[smb*2; [1.5 3.]];
++md.smb.runoff=[smb/2; [1.5 3.]];
++md.smb.evaporation=[smb/2; [1.5 3.]];
+ md.transient.isthermal=0;
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMassBalance1', ...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMassBalance2', ...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMassBalance3', ...
+-	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SurfaceforcingsMassBalance4'};
++field_names={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMassBalance1', ...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMassBalance2', ...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMassBalance3', ...
++	'Vx4','Vy4','Vel4','Pressure4','Bed4','Surface4','Thickness4','SmbMassBalance4'};
+ field_tolerances={1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+@@ -38,7 +38,7 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -46,7 +46,7 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -54,7 +54,7 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	(md.results.TransientSolution(4).Vx),...
+ 	(md.results.TransientSolution(4).Vy),...
+ 	(md.results.TransientSolution(4).Vel),...
+@@ -62,5 +62,5 @@
+ 	(md.results.TransientSolution(4).Base),...
+ 	(md.results.TransientSolution(4).Surface),...
+ 	(md.results.TransientSolution(4).Thickness),...
+-	(md.results.TransientSolution(4).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(4).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test238.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test238.m	(revision 19526)
++++ ../trunk-jpl/test/NightlyRun/test238.m	(revision 19527)
+@@ -6,37 +6,37 @@
+ %md.verbose=verbose('all');
+ 
+ % Use of ispdd and isdelta18o methods
+-md.surfaceforcings = SMBd18opdd();
+-md.surfaceforcings.isd18opd=1;
+-%md.surfaceforcings.precipitation(1:md.mesh.numberofvertices,1:12)=0;
+-%md.surfaceforcings.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
++md.smb = SMBd18opdd();
++md.smb.isd18opd=1;
++%md.smb.precipitation(1:md.mesh.numberofvertices,1:12)=0;
++%md.smb.monthlytemperatures(1:md.mesh.numberofvertices,1:12)=273;
+ 
+ % Add temperature, precipitation and delta18o needed to measure the surface mass balance
+ %  creating delta18o
+ load '../Data/delta18o.data'
+-md.surfaceforcings.delta18o=delta18o;
++md.smb.delta18o=delta18o;
+ 
+ % creating Present day  temperatures
+ % Same temperature over the all region:
+ tmonth(1:12)=238.15+20.;
+ for imonth=0:11
+-    md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
++    md.smb.temperatures_presentday(1:md.mesh.numberofvertices,imonth+1)=tmonth(imonth+1);
+     % Time for the last line:
+-    md.surfaceforcings.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.temperatures_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+ 
+ % creating initialization and spc temperatures initialization and
+ % spc
+-md.thermal.spctemperature=mean(md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
+-md.initialization.temperature=md.thermal.spctemperature; %md.surfaceforcings.temperatures_presentday(1:md.mesh.numberofvertices,1);
++md.thermal.spctemperature=mean(md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1:12),2)-10; %-10*ones(md.mesh.numberofvertices,1);
++md.initialization.temperature=md.thermal.spctemperature; %md.smb.temperatures_presentday(1:md.mesh.numberofvertices,1);
+ 
+ % creating precipitation
+ for imonth=0:11
+-    md.surfaceforcings.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
++    md.smb.precipitations_presentday(1:md.mesh.numberofvertices,imonth+1)=-0.4*10^(-6)*md.mesh.y+0.5;
+     % Time for the last line:
+-    md.surfaceforcings.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
++    md.smb.precipitations_presentday(md.mesh.numberofvertices+1,imonth+1)=((imonth+1)/12);
+ end
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ 
+ % time steps and resolution
+ md.timestepping.time_step=20;
+@@ -44,15 +44,15 @@
+ md.timestepping.final_time=60;
+ 
+ % 
+-md.transient.requested_outputs={'default','SurfaceforcingsMonthlytemperatures'};
++md.transient.requested_outputs={'default','SmbMonthlytemperatures'};
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SurfaceforcingsMonthlytemperatures1','SurfaceforcingsMassBalance1',...
+-	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SurfaceforcingsMonthlytemperatures2','SurfaceforcingsMassBalance2',...
+-	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SurfaceforcingsMonthlytemperatures3','SurfaceforcingsMassBalance3'};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','SmbMonthlytemperatures1','SmbMassBalance1',...
++	      'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','SmbMonthlytemperatures2','SmbMassBalance2',...
++	      'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	   1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+@@ -64,8 +64,8 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(1).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(1).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(1).SmbMassBalance),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -73,8 +73,8 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(2).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(2).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(2).SmbMassBalance),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -82,6 +82,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMonthlytemperatures),...
+-	(md.results.TransientSolution(3).SurfaceforcingsMassBalance),...
++	(md.results.TransientSolution(3).SmbMonthlytemperatures),...
++	(md.results.TransientSolution(3).SmbMassBalance),...
+ 	};
+Index: ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 19527)
+@@ -101,7 +101,7 @@
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+-	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
++	iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
+ 
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+@@ -354,7 +354,7 @@
+ 	/*Retrieve all inputs and parameters*/
+ 	element->GetVerticesCoordinates(&xyz_list);
+ 	Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
+-	Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);     _assert_(ms_input);
++	Input* ms_input   = element->GetInput(SmbMassBalanceEnum);     _assert_(ms_input);
+ 	Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);
+ 
+ 	/*Initialize mb_correction to 0, do not forget!:*/
+@@ -395,7 +395,7 @@
+ 	/*Retrieve all inputs and parameters*/
+ 	element->GetVerticesCoordinates(&xyz_list);
+ 	Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
+-	Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);     _assert_(ms_input);
++	Input* ms_input   = element->GetInput(SmbMassBalanceEnum);     _assert_(ms_input);
+ 	Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum); _assert_(dhdt_input);
+ 
+ 	/*Initialize mb_correction to 0, do not forget!:*/
+@@ -516,7 +516,7 @@
+ 	Input* weights_input              = element->GetInput(InversionCostFunctionsCoefficientsEnum);  _assert_(weights_input);
+ 	Input* vx_input                   = element->GetInput(VxEnum);                                  _assert_(vx_input);
+ 	Input* vy_input                   = element->GetInput(VyEnum);                                  _assert_(vy_input);
+-	Input* surface_mass_balance_input = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(surface_mass_balance_input);
++	Input* surface_mass_balance_input = element->GetInput(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
+ 	Input* basal_melting_input        = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(basal_melting_input);
+ 	Input* dhdt_input                 = element->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
+ 
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 19527)
+@@ -111,7 +111,7 @@
+ 	}
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum);
+-	//iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
++	//iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum,0.);
+ 	iomodel->FetchDataToInput(elements,VyEnum,0.);
+ }/*}}}*/
+@@ -381,7 +381,7 @@
+ 	element->GetVerticesCoordinatesTop(&xyz_list_surface);
+ 	element->GetInputValue(&approximation,ApproximationEnum);
+ 	Input* surface_input    =element->GetInput(SurfaceEnum);               _assert_(surface_input);
+-	Input* smb_input=element->GetInput(SurfaceforcingsMassBalanceEnum);    _assert_(smb_input);
++	Input* smb_input=element->GetInput(SmbMassBalanceEnum);    _assert_(smb_input);
+ 	Input* vx_input=element->GetInput(VxEnum);                             _assert_(vx_input);
+ 	Input* vy_input=element->GetInput(VyEnum);                             _assert_(vy_input);
+ 	Input* vzFS_input=NULL;
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19527)
+@@ -126,7 +126,7 @@
+ 	/*Fetch data needed: */
+ 	iomodel->Constant(&stabilization,MasstransportStabilizationEnum);
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+-	iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++	iomodel->Constant(&smb_model,SmbEnum);
+ 	iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+ 	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
+ 
+@@ -173,57 +173,57 @@
+ 	}
+ 
+ 	switch(smb_model){
+-		case SMBEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
++		case SMBforcingEnum:
++			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
+ 			break;
+ 		case SMBpddEnum:
+-			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+-			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
++			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+ 			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
++			iomodel->FetchDataToInput(elements,SmbS0pEnum);
++			iomodel->FetchDataToInput(elements,SmbS0tEnum);
+ 			if(isdelta18o || ismungsm){
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesLgmEnum);
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsLgmEnum);
++				iomodel->FetchDataToInput(elements,SmbTemperaturesLgmEnum);
++				iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
++				iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
++				iomodel->FetchDataToInput(elements,SmbPrecipitationsLgmEnum);
+ 			}
+ 			else{
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
+-				iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
++				iomodel->FetchDataToInput(elements,SmbPrecipitationEnum);
++				iomodel->FetchDataToInput(elements,SmbMonthlytemperaturesEnum);
+ 			}
+ 			break;
+ 		case SMBd18opddEnum:
+-			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
+ 			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsS0pEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsS0tEnum);
++			iomodel->FetchDataToInput(elements,SmbS0pEnum);
++			iomodel->FetchDataToInput(elements,SmbS0tEnum);
+ 			if (isd18opd){
+-			        iomodel->FetchDataToInput(elements,SurfaceforcingsTemperaturesPresentdayEnum);
+-			        iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationsPresentdayEnum);
++			        iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
++			        iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
+ 			}
+ 
+ 			break;
+ 		case SMBgradientsEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsHrefEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsBPosEnum);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsBNegEnum);
++			iomodel->FetchDataToInput(elements,SmbHrefEnum);
++			iomodel->FetchDataToInput(elements,SmbSmbrefEnum);
++			iomodel->FetchDataToInput(elements,SmbBPosEnum);
++			iomodel->FetchDataToInput(elements,SmbBNegEnum);
+ 			break;
+ 		case SMBhenningEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsSmbrefEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbSmbrefEnum,0.);
+ 			break;
+ 		case SMBcomponentsEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsRunoffEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbRunoffEnum,0.);
+ 			break;
+ 		case SMBmeltcomponentsEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsAccumulationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsEvaporationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsMeltEnum,0.);
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsRefreezeEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbMeltEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbRefreezeEnum,0.);
+ 			break;
+ 		default:
+ 			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+@@ -246,7 +246,13 @@
+ 	parameters->AddObject(new IntParam(MasstransportNumRequestedOutputsEnum,numoutputs));
+ 	if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
+ 	iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum);
++	
++	iomodel->FetchData(&requestedoutputs,&numoutputs,SmbRequestedOutputsEnum);
++	parameters->AddObject(new IntParam(SmbNumRequestedOutputsEnum,numoutputs));
++	if(numoutputs)parameters->AddObject(new StringArrayParam(SmbRequestedOutputsEnum,requestedoutputs,numoutputs));
++	iomodel->DeleteData(&requestedoutputs,numoutputs,SmbRequestedOutputsEnum);
+ 
++
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
+@@ -561,7 +567,7 @@
+ 	Input* gmb_input           = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
+ 	Input* fmb_input           = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
+ 	Input* groundedice_input   = element->GetInput(MaskGroundediceLevelsetEnum);              _assert_(groundedice_input);
+-	Input* ms_input            = element->GetInput(SurfaceforcingsMassBalanceEnum);           _assert_(ms_input);
++	Input* ms_input            = element->GetInput(SmbMassBalanceEnum);           _assert_(ms_input);
+ 	Input* thickness_input     = element->GetInput(ThicknessEnum);                            _assert_(thickness_input);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+@@ -611,7 +617,7 @@
+ 	element->FindParam(&dt,TimesteppingTimeStepEnum);
+ 	Input* gmb_input           = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gmb_input);
+ 	Input* fmb_input           = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fmb_input);
+-	Input* ms_input            = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(ms_input);
++	Input* ms_input            = element->GetInput(SmbMassBalanceEnum);          _assert_(ms_input);
+ 	Input* groundedice_input   = element->GetInput(MaskGroundediceLevelsetEnum);             _assert_(groundedice_input);
+ 	Input* thickness_input     = element->GetInput(ThicknessEnum);                           _assert_(thickness_input);
+ 
+Index: ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp	(revision 19527)
+@@ -44,7 +44,7 @@
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+-	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
++	iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
+ 
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+@@ -182,7 +182,7 @@
+ 
+ 	/*Retrieve all inputs and parameters*/
+ 	basalelement->GetVerticesCoordinates(&xyz_list);
+-	Input* ms_input   = basalelement->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(ms_input);
++	Input* ms_input   = basalelement->GetInput(SmbMassBalanceEnum);          _assert_(ms_input);
+ 	Input* mb_input   = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
+ 	Input* dhdt_input = basalelement->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
+ 	Input* H_input    = basalelement->GetInput(ThicknessEnum);                           _assert_(H_input);
+Index: ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 19527)
+@@ -66,7 +66,7 @@
+ 	int finiteelement = P1Enum;
+ 
+ 	/*Fetch data needed: */
+-	iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++	iomodel->Constant(&smb_model,SmbEnum);
+ 
+ 	/*Update elements: */
+ 	int counter=0;
+@@ -89,8 +89,8 @@
+ 		iomodel->FetchDataToInput(elements,VzEnum);
+ 	}
+ 	switch(smb_model){
+-		case SMBEnum:
+-			iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum,0.);
++		case SMBforcingEnum:
++			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
+ 			break;
+ 		default:
+ 			/*Nothing for now*/
+@@ -273,7 +273,7 @@
+ 	/*Retrieve all inputs and parameters*/
+ 	topelement->GetVerticesCoordinates(&xyz_list);
+ 	topelement->FindParam(&dt,TimesteppingTimeStepEnum);
+-	Input* ms_input      = topelement->GetInput(SurfaceforcingsMassBalanceEnum);  _assert_(ms_input);
++	Input* ms_input      = topelement->GetInput(SmbMassBalanceEnum);  _assert_(ms_input);
+ 	Input* surface_input = topelement->GetInput(SurfaceEnum);                     _assert_(surface_input);
+ 	Input* vz_input      = NULL;
+ 	switch(dim){
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19527)
+@@ -23,7 +23,7 @@
+ 	}
+ 	else if (iomodel->solution_enum==TransientSolutionEnum){
+ 		int smb_model;
+-		iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++		iomodel->Constant(&smb_model,SmbEnum);
+ 		if(smb_model==SMBpddEnum) isdynamic=true;
+ 		if(smb_model==SMBd18opddEnum) isdynamic=true;
+ 	}
+Index: ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 19527)
+@@ -34,7 +34,7 @@
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+-	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
++	iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
+ 	iomodel->FetchDataToInput(elements,BalancethicknessThickeningRateEnum);
+ 	iomodel->FetchDataToInput(elements,BalancethicknessOmegaEnum);
+ 
+@@ -187,7 +187,7 @@
+ 
+ 	/*Retrieve all inputs and parameters*/
+ 	element->GetVerticesCoordinates(&xyz_list);
+-	Input* ms_input   = element->GetInput(SurfaceforcingsMassBalanceEnum);                _assert_(ms_input);
++	Input* ms_input   = element->GetInput(SmbMassBalanceEnum);                _assert_(ms_input);
+ 	Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);       _assert_(mb_input);
+ 	Input* dhdt_input = element->GetInput(BalancethicknessThickeningRateEnum);            _assert_(dhdt_input);
+ 
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19527)
+@@ -31,7 +31,7 @@
+ 		}
+ 
+ 		/*Some specific code here for the binding: */
+-		femmodel->parameters->SetParam(SMBgcmEnum,SurfaceforcingsEnum); //bypass SMB model, will be provided by GCM!
++		femmodel->parameters->SetParam(SMBgcmEnum,SmbEnum); //bypass SMB model, will be provided by GCM!
+ 	
+ 		/*Restart file: */
+ 		femmodel->Restart();
+@@ -81,7 +81,7 @@
+ 						smbforcing=smbforcing/(rho_ice*area);
+ 
+ 						/*Add into the element as new forcing :*/
+-						element->inputs->AddInput(new DoubleInput(SurfaceforcingsMassBalanceEnum,smbforcing));
++						element->inputs->AddInput(new DoubleInput(SmbMassBalanceEnum,smbforcing));
+ 
+ 						}
+ 						/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Enum/Synchronize.sh
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19526)
++++ ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19527)
+@@ -201,6 +201,7 @@
+ ENUM=0;
+ 
+ for NAMEENUM in $(cat temp); do
++	echo $NAMEENUM
+ 
+ 	#Get name and enum of the line i
+ 	NAME=$(echo $NAMEENUM | sed -e "s/Enum//g")
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19526)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19527)
+@@ -327,6 +327,7 @@
+ 	TimesteppingTimeAdaptEnum,
+ 	TimesteppingTimeStepEnum,
+ 	TimesteppingInterpForcingsEnum,
++	TransientIssmbEnum,
+ 	TransientIsstressbalanceEnum,
+ 	TransientIsgroundinglineEnum,
+ 	TransientIsmasstransportEnum,
+@@ -346,49 +347,52 @@
+ 	BalancethicknessOmegaEnum,
+ 	BalancethicknessD0Enum,
+ 	/*}}}*/
+-	/*Surfaceforcings{{{*/
+-	SurfaceforcingsEnum,
+-	SMBEnum,
+-	SurfaceforcingsMassBalanceEnum,
++	/*Smb{{{*/
++	SmbEnum,
++	SmbSolutionEnum,
++	SmbNumRequestedOutputsEnum,
++	SmbRequestedOutputsEnum,
++	SMBforcingEnum,
++	SmbMassBalanceEnum,
+ 	SMBpddEnum,	
+-	SurfaceforcingsDelta18oEnum,
+-	SurfaceforcingsDelta18oSurfaceEnum,
+-	SurfaceforcingsIsdelta18oEnum,
+-	SurfaceforcingsIsmungsmEnum,
+-	SurfaceforcingsIsd18opdEnum,
+-	SurfaceforcingsPrecipitationsPresentdayEnum,
+-	SurfaceforcingsPrecipitationsLgmEnum,
+-	SurfaceforcingsTemperaturesPresentdayEnum,
+-	SurfaceforcingsTemperaturesLgmEnum,
+-	SurfaceforcingsPrecipitationEnum,
+-	SurfaceforcingsDesfacEnum,
+-	SurfaceforcingsS0pEnum,
+-	SurfaceforcingsS0tEnum,
+-	SurfaceforcingsRlapsEnum,
+-	SurfaceforcingsRlapslgmEnum,
+-	SurfaceforcingsPfacEnum,
+-	SurfaceforcingsTdiffEnum,
+-	SurfaceforcingsSealevEnum,
++	SmbDelta18oEnum,
++	SmbDelta18oSurfaceEnum,
++	SmbIsdelta18oEnum,
++	SmbIsmungsmEnum,
++	SmbIsd18opdEnum,
++	SmbPrecipitationsPresentdayEnum,
++	SmbPrecipitationsLgmEnum,
++	SmbTemperaturesPresentdayEnum,
++	SmbTemperaturesLgmEnum,
++	SmbPrecipitationEnum,
++	SmbDesfacEnum,
++	SmbS0pEnum,
++	SmbS0tEnum,
++	SmbRlapsEnum,
++	SmbRlapslgmEnum,
++	SmbPfacEnum,
++	SmbTdiffEnum,
++	SmbSealevEnum,
+ 	SMBd18opddEnum,
+-	SurfaceforcingsDpermilEnum,
++	SmbDpermilEnum,
+ 	SMBgradientsEnum,
+-	SurfaceforcingsMonthlytemperaturesEnum,
+-	SurfaceforcingsHrefEnum,
+-	SurfaceforcingsSmbrefEnum,
+-	SurfaceforcingsBPosEnum,
+-	SurfaceforcingsBNegEnum,
++	SmbMonthlytemperaturesEnum,
++	SmbHrefEnum,
++	SmbSmbrefEnum,
++	SmbBPosEnum,
++	SmbBNegEnum,
+ 	SMBhenningEnum,
+ 	SMBcomponentsEnum,
+-	SurfaceforcingsAccumulationEnum,
+-	SurfaceforcingsEvaporationEnum,
+-	SurfaceforcingsRunoffEnum,
++	SmbAccumulationEnum,
++	SmbEvaporationEnum,
++	SmbRunoffEnum,
+ 	SMBmeltcomponentsEnum,
+-	SurfaceforcingsMeltEnum,
+-	SurfaceforcingsRefreezeEnum,
++	SmbMeltEnum,
++	SmbRefreezeEnum,
+ 	SMBgcmEnum,
+ 	/*TO BE REMOVED*/
+-	SurfaceforcingsIspddEnum,
+-	SurfaceforcingsIssmbgradientsEnum,
++	SmbIspddEnum,
++	SmbIssmbgradientsEnum,
+ 	/*}}}*/
+ 	/*Solutions and Analyses{{{ */
+ 	SolutionTypeEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19527)
+@@ -333,6 +333,7 @@
+ 		case TimesteppingTimeAdaptEnum : return "TimesteppingTimeAdapt";
+ 		case TimesteppingTimeStepEnum : return "TimesteppingTimeStep";
+ 		case TimesteppingInterpForcingsEnum : return "TimesteppingInterpForcings";
++		case TransientIssmbEnum : return "TransientIssmb";
+ 		case TransientIsstressbalanceEnum : return "TransientIsstressbalance";
+ 		case TransientIsgroundinglineEnum : return "TransientIsgroundingline";
+ 		case TransientIsmasstransportEnum : return "TransientIsmasstransport";
+@@ -351,47 +352,50 @@
+ 		case BalancethicknessCmuEnum : return "BalancethicknessCmu";
+ 		case BalancethicknessOmegaEnum : return "BalancethicknessOmega";
+ 		case BalancethicknessD0Enum : return "BalancethicknessD0";
+-		case SurfaceforcingsEnum : return "Surfaceforcings";
+-		case SMBEnum : return "SMB";
+-		case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
++		case SmbEnum : return "Smb";
++		case SmbSolutionEnum : return "SmbSolution";
++		case SmbNumRequestedOutputsEnum : return "SmbNumRequestedOutputs";
++		case SmbRequestedOutputsEnum : return "SmbRequestedOutputs";
++		case SMBforcingEnum : return "SMBforcing";
++		case SmbMassBalanceEnum : return "SmbMassBalance";
+ 		case SMBpddEnum : return "SMBpdd";
+-		case SurfaceforcingsDelta18oEnum : return "SurfaceforcingsDelta18o";
+-		case SurfaceforcingsDelta18oSurfaceEnum : return "SurfaceforcingsDelta18oSurface";
+-		case SurfaceforcingsIsdelta18oEnum : return "SurfaceforcingsIsdelta18o";
+-		case SurfaceforcingsIsmungsmEnum : return "SurfaceforcingsIsmungsm";
+-		case SurfaceforcingsIsd18opdEnum : return "SurfaceforcingsIsd18opd";
+-		case SurfaceforcingsPrecipitationsPresentdayEnum : return "SurfaceforcingsPrecipitationsPresentday";
+-		case SurfaceforcingsPrecipitationsLgmEnum : return "SurfaceforcingsPrecipitationsLgm";
+-		case SurfaceforcingsTemperaturesPresentdayEnum : return "SurfaceforcingsTemperaturesPresentday";
+-		case SurfaceforcingsTemperaturesLgmEnum : return "SurfaceforcingsTemperaturesLgm";
+-		case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
+-		case SurfaceforcingsDesfacEnum : return "SurfaceforcingsDesfac";
+-		case SurfaceforcingsS0pEnum : return "SurfaceforcingsS0p";
+-		case SurfaceforcingsS0tEnum : return "SurfaceforcingsS0t";
+-		case SurfaceforcingsRlapsEnum : return "SurfaceforcingsRlaps";
+-		case SurfaceforcingsRlapslgmEnum : return "SurfaceforcingsRlapslgm";
+-		case SurfaceforcingsPfacEnum : return "SurfaceforcingsPfac";
+-		case SurfaceforcingsTdiffEnum : return "SurfaceforcingsTdiff";
+-		case SurfaceforcingsSealevEnum : return "SurfaceforcingsSealev";
++		case SmbDelta18oEnum : return "SmbDelta18o";
++		case SmbDelta18oSurfaceEnum : return "SmbDelta18oSurface";
++		case SmbIsdelta18oEnum : return "SmbIsdelta18o";
++		case SmbIsmungsmEnum : return "SmbIsmungsm";
++		case SmbIsd18opdEnum : return "SmbIsd18opd";
++		case SmbPrecipitationsPresentdayEnum : return "SmbPrecipitationsPresentday";
++		case SmbPrecipitationsLgmEnum : return "SmbPrecipitationsLgm";
++		case SmbTemperaturesPresentdayEnum : return "SmbTemperaturesPresentday";
++		case SmbTemperaturesLgmEnum : return "SmbTemperaturesLgm";
++		case SmbPrecipitationEnum : return "SmbPrecipitation";
++		case SmbDesfacEnum : return "SmbDesfac";
++		case SmbS0pEnum : return "SmbS0p";
++		case SmbS0tEnum : return "SmbS0t";
++		case SmbRlapsEnum : return "SmbRlaps";
++		case SmbRlapslgmEnum : return "SmbRlapslgm";
++		case SmbPfacEnum : return "SmbPfac";
++		case SmbTdiffEnum : return "SmbTdiff";
++		case SmbSealevEnum : return "SmbSealev";
+ 		case SMBd18opddEnum : return "SMBd18opdd";
+-		case SurfaceforcingsDpermilEnum : return "SurfaceforcingsDpermil";
++		case SmbDpermilEnum : return "SmbDpermil";
+ 		case SMBgradientsEnum : return "SMBgradients";
+-		case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
+-		case SurfaceforcingsHrefEnum : return "SurfaceforcingsHref";
+-		case SurfaceforcingsSmbrefEnum : return "SurfaceforcingsSmbref";
+-		case SurfaceforcingsBPosEnum : return "SurfaceforcingsBPos";
+-		case SurfaceforcingsBNegEnum : return "SurfaceforcingsBNeg";
++		case SmbMonthlytemperaturesEnum : return "SmbMonthlytemperatures";
++		case SmbHrefEnum : return "SmbHref";
++		case SmbSmbrefEnum : return "SmbSmbref";
++		case SmbBPosEnum : return "SmbBPos";
++		case SmbBNegEnum : return "SmbBNeg";
+ 		case SMBhenningEnum : return "SMBhenning";
+ 		case SMBcomponentsEnum : return "SMBcomponents";
+-		case SurfaceforcingsAccumulationEnum : return "SurfaceforcingsAccumulation";
+-		case SurfaceforcingsEvaporationEnum : return "SurfaceforcingsEvaporation";
+-		case SurfaceforcingsRunoffEnum : return "SurfaceforcingsRunoff";
++		case SmbAccumulationEnum : return "SmbAccumulation";
++		case SmbEvaporationEnum : return "SmbEvaporation";
++		case SmbRunoffEnum : return "SmbRunoff";
+ 		case SMBmeltcomponentsEnum : return "SMBmeltcomponents";
+-		case SurfaceforcingsMeltEnum : return "SurfaceforcingsMelt";
+-		case SurfaceforcingsRefreezeEnum : return "SurfaceforcingsRefreeze";
++		case SmbMeltEnum : return "SmbMelt";
++		case SmbRefreezeEnum : return "SmbRefreeze";
+ 		case SMBgcmEnum : return "SMBgcm";
+-		case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
+-		case SurfaceforcingsIssmbgradientsEnum : return "SurfaceforcingsIssmbgradients";
++		case SmbIspddEnum : return "SmbIspdd";
++		case SmbIssmbgradientsEnum : return "SmbIssmbgradients";
+ 		case SolutionTypeEnum : return "SolutionType";
+ 		case AnalysisTypeEnum : return "AnalysisType";
+ 		case ConfigurationTypeEnum : return "ConfigurationType";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19527)
+@@ -339,6 +339,7 @@
+ 	      else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
+ 	      else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
+ 	      else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
++	      else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum;
+ 	      else if (strcmp(name,"TransientIsstressbalance")==0) return TransientIsstressbalanceEnum;
+ 	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
+ 	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
+@@ -357,50 +358,53 @@
+ 	      else if (strcmp(name,"BalancethicknessCmu")==0) return BalancethicknessCmuEnum;
+ 	      else if (strcmp(name,"BalancethicknessOmega")==0) return BalancethicknessOmegaEnum;
+ 	      else if (strcmp(name,"BalancethicknessD0")==0) return BalancethicknessD0Enum;
+-	      else if (strcmp(name,"Surfaceforcings")==0) return SurfaceforcingsEnum;
+-	      else if (strcmp(name,"SMB")==0) return SMBEnum;
+-	      else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
++	      else if (strcmp(name,"Smb")==0) return SmbEnum;
++	      else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
++	      else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
++	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
++	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
++	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
+-	      else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
+-	      else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
+-	      else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum;
+-	      else if (strcmp(name,"SurfaceforcingsIsmungsm")==0) return SurfaceforcingsIsmungsmEnum;
+-	      else if (strcmp(name,"SurfaceforcingsIsd18opd")==0) return SurfaceforcingsIsd18opdEnum;
+-	      else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum;
+-	      else if (strcmp(name,"SurfaceforcingsPrecipitationsLgm")==0) return SurfaceforcingsPrecipitationsLgmEnum;
+-	      else if (strcmp(name,"SurfaceforcingsTemperaturesPresentday")==0) return SurfaceforcingsTemperaturesPresentdayEnum;
+-	      else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
+-	      else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
+-	      else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
+-	      else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
+-	      else if (strcmp(name,"SurfaceforcingsS0t")==0) return SurfaceforcingsS0tEnum;
+-	      else if (strcmp(name,"SurfaceforcingsRlaps")==0) return SurfaceforcingsRlapsEnum;
+-	      else if (strcmp(name,"SurfaceforcingsRlapslgm")==0) return SurfaceforcingsRlapslgmEnum;
+-	      else if (strcmp(name,"SurfaceforcingsPfac")==0) return SurfaceforcingsPfacEnum;
+-	      else if (strcmp(name,"SurfaceforcingsTdiff")==0) return SurfaceforcingsTdiffEnum;
+-	      else if (strcmp(name,"SurfaceforcingsSealev")==0) return SurfaceforcingsSealevEnum;
+-	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
+-	      else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
+-	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
++	      else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
++	      else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
++	      else if (strcmp(name,"SmbIsdelta18o")==0) return SmbIsdelta18oEnum;
++	      else if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum;
++	      else if (strcmp(name,"SmbIsd18opd")==0) return SmbIsd18opdEnum;
++	      else if (strcmp(name,"SmbPrecipitationsPresentday")==0) return SmbPrecipitationsPresentdayEnum;
++	      else if (strcmp(name,"SmbPrecipitationsLgm")==0) return SmbPrecipitationsLgmEnum;
++	      else if (strcmp(name,"SmbTemperaturesPresentday")==0) return SmbTemperaturesPresentdayEnum;
++	      else if (strcmp(name,"SmbTemperaturesLgm")==0) return SmbTemperaturesLgmEnum;
++	      else if (strcmp(name,"SmbPrecipitation")==0) return SmbPrecipitationEnum;
++	      else if (strcmp(name,"SmbDesfac")==0) return SmbDesfacEnum;
++	      else if (strcmp(name,"SmbS0p")==0) return SmbS0pEnum;
++	      else if (strcmp(name,"SmbS0t")==0) return SmbS0tEnum;
++	      else if (strcmp(name,"SmbRlaps")==0) return SmbRlapsEnum;
++	      else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum;
++	      else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
++	      else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
+-	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
+-	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
+-	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
+-	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
++	      if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
++	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
++	      else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
++	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
++	      else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
++	      else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
++	      else if (strcmp(name,"SmbSmbref")==0) return SmbSmbrefEnum;
++	      else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
++	      else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
+ 	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
+ 	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
+-	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
+-	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
+-	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
++	      else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
++	      else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
++	      else if (strcmp(name,"SmbRunoff")==0) return SmbRunoffEnum;
+ 	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
+-	      else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
+-	      else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
++	      else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum;
++	      else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
+ 	      else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
+-	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
+-	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
++	      else if (strcmp(name,"SmbIspdd")==0) return SmbIspddEnum;
++	      else if (strcmp(name,"SmbIssmbgradients")==0) return SmbIssmbgradientsEnum;
+ 	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
+ 	      else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
+ 	      else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
+@@ -501,14 +505,14 @@
+ 	      else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
+ 	      else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
+ 	      else if (strcmp(name,"InputToDepthaverage")==0) return InputToDepthaverageEnum;
+-	      else if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
+ 	      else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum;
+ 	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
+ 	      else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
++	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
+ 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
+ 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+ 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
+@@ -624,14 +628,14 @@
+ 	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
+ 	      else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
+ 	      else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
+-	      else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
+ 	      else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
+ 	      else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
+ 	      else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
++	      else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
+ 	      else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
+ 	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
+ 	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
+@@ -747,14 +751,14 @@
+ 	      else if (strcmp(name,"Outputdefinition53")==0) return Outputdefinition53Enum;
+ 	      else if (strcmp(name,"Outputdefinition54")==0) return Outputdefinition54Enum;
+ 	      else if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum;
+-	      else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
+ 	      else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
+ 	      else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
+ 	      else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
++	      else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
+ 	      else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
+ 	      else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
+ 	      else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
+@@ -870,14 +874,14 @@
+ 	      else if (strcmp(name,"ToolkitsFileName")==0) return ToolkitsFileNameEnum;
+ 	      else if (strcmp(name,"RootPath")==0) return RootPathEnum;
+ 	      else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
+-	      else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
+ 	      else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
+ 	      else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
++	      else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
+ 	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
+ 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
+ 	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19527)
+@@ -76,6 +76,7 @@
+ 		parameters->AddObject(iomodel->CopyConstantObject(GroundinglineMigrationEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsstressbalanceEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsmasstransportEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(TransientIssmbEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsthermalEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsgroundinglineEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsgiaEnum));
+@@ -98,59 +99,59 @@
+ 	}
+ 
+ 	/*Surface mass balance parameters*/
+-	parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsEnum));
+-	iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++	parameters->AddObject(iomodel->CopyConstantObject(SmbEnum));
++	iomodel->Constant(&smb_model,SmbEnum);
+ 	iomodel->Constant(&interp,TimesteppingInterpForcingsEnum);
+ 	switch(smb_model){
+-		case SMBEnum:
++		case SMBforcingEnum:
+ 			/*Nothing to add to parameters*/
+ 			break;
+ 		case SMBpddEnum:
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsdelta18oEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
+-			iomodel->Constant(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+-			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
++			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+ 
+ 			if(ismungsm){
+-			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsPfacEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsPfacEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SurfaceforcingsPfacEnum);
++			  iomodel->FetchData(&temp,&N,&M,SmbPfacEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbPfacEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbPfacEnum);
+ 			
+-			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsTdiffEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsTdiffEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SurfaceforcingsTdiffEnum);
++			  iomodel->FetchData(&temp,&N,&M,SmbTdiffEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbTdiffEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbTdiffEnum);
+ 
+-			  iomodel->FetchData(&temp,&N,&M,SurfaceforcingsSealevEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SurfaceforcingsSealevEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SurfaceforcingsSealevEnum);
++			  iomodel->FetchData(&temp,&N,&M,SmbSealevEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbSealevEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbSealevEnum);
+ 			}
+ 			if(isdelta18o){
+-				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oEnum);
+ 
+-				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oSurfaceEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SurfaceforcingsDelta18oSurfaceEnum);
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oSurfaceEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oSurfaceEnum);
+ 			}
+ 			break;
+ 		case SMBd18opddEnum:
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsmungsmEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsIsd18opdEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapsEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsRlapslgmEnum));
+-			iomodel->Constant(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SurfaceforcingsIsd18opdEnum);
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsd18opdEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
+ 			if(isd18opd){
+-				iomodel->FetchData(&temp,&N,&M,SurfaceforcingsDelta18oEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SurfaceforcingsDelta18oEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SurfaceforcingsDelta18oEnum);
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oEnum);
+ 				
+-				parameters->AddObject(iomodel->CopyConstantObject(SurfaceforcingsDpermilEnum));
++				parameters->AddObject(iomodel->CopyConstantObject(SmbDpermilEnum));
+ 			}
+ 			break;
+ 		case SMBgradientsEnum:
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp	(revision 19527)
+@@ -6,68 +6,7 @@
+ #include "../../shared/shared.h"
+ #include "../../toolkits/toolkits.h"
+ 
+-void SurfaceMassBalancex(FemModel* femmodel){/*{{{*/
+ 
+-	/*Intermediaties*/
+-	int  smb_model;
+-	bool isdelta18o,ismungsm,isd18opd;
+-
+-	/*First, get SMB model from parameters*/
+-	femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
+-
+-	/*branch to correct module*/
+-	switch(smb_model){
+-		case SMBEnum:
+-			/*Nothing to be done*/
+-			break;
+-		case SMBpddEnum:
+-			femmodel->parameters->FindParam(&isdelta18o,SurfaceforcingsIsdelta18oEnum);
+-			femmodel->parameters->FindParam(&ismungsm,SurfaceforcingsIsmungsmEnum);
+-			if(isdelta18o){
+-				if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
+-				Delta18oParameterizationx(femmodel);
+-			} 
+-			if(ismungsm){
+-				if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
+-				MungsmtpParameterizationx(femmodel);
+-			} 
+-			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+-			PositiveDegreeDayx(femmodel);
+-			break;
+-		case SMBd18opddEnum:
+-			femmodel->parameters->FindParam(&isd18opd,SurfaceforcingsIsd18opdEnum);
+-			if(isd18opd){
+-				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
+-				Delta18opdParameterizationx(femmodel);
+-				if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+-				PositiveDegreeDayx(femmodel);
+-			} 
+-			break;
+-		case SMBgradientsEnum:
+-			if(VerboseSolution())_printf0_("	call smb gradients module\n");
+-			SmbGradientsx(femmodel);
+-			break;
+-		case SMBhenningEnum:
+-			if(VerboseSolution())_printf0_("  call smb Henning module\n");
+-			SmbHenningx(femmodel);
+-			break;
+-		case SMBcomponentsEnum:
+-			if(VerboseSolution())_printf0_("  call smb Components module\n");
+-			SmbComponentsx(femmodel);
+-			break;
+-		case SMBmeltcomponentsEnum:
+-			if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
+-			SmbMeltComponentsx(femmodel);
+-			break;
+-		case SMBgcmEnum:
+-			/*Nothing to be done*/
+-			break;
+-		default:
+-			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+-	}
+-
+-}/*}}}*/
+-
+ void SmbGradientsx(FemModel* femmodel){/*{{{*/
+ 
+ 	// void SurfaceMassBalancex(hd,agd,ni){
+@@ -92,10 +31,10 @@
+ 		IssmDouble* smb         = xNew<IssmDouble>(numvertices);
+ 
+ 		/*Recover SmbGradients*/
+-		element->GetInputListOnVertices(Href,SurfaceforcingsHrefEnum);
+-		element->GetInputListOnVertices(Smbref,SurfaceforcingsSmbrefEnum);
+-		element->GetInputListOnVertices(b_pos,SurfaceforcingsBPosEnum);
+-		element->GetInputListOnVertices(b_neg,SurfaceforcingsBNegEnum);
++		element->GetInputListOnVertices(Href,SmbHrefEnum);
++		element->GetInputListOnVertices(Smbref,SmbSmbrefEnum);
++		element->GetInputListOnVertices(b_pos,SmbBPosEnum);
++		element->GetInputListOnVertices(b_neg,SmbBNegEnum);
+ 
+ 		/*Recover surface elevation at vertices: */
+ 		element->GetInputListOnVertices(s,SurfaceEnum);
+@@ -116,7 +55,7 @@
+ 		}  //end of the loop over the vertices
+ 
+ 		/*Add input to element and Free memory*/
+-		element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
++		element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
+ 		xDelete<IssmDouble>(Href);
+ 		xDelete<IssmDouble>(Smbref);
+ 		xDelete<IssmDouble>(b_pos);
+@@ -186,7 +125,7 @@
+ 	pds=xNew<IssmDouble>(NPDCMAX+1); 
+ 
+ 	// Get ismungsm parameter
+-	femmodel->parameters->FindParam(&ismungsm,SurfaceforcingsIsmungsmEnum);
++	femmodel->parameters->FindParam(&ismungsm,SmbIsmungsmEnum);
+ 
+ 	/* initialize PDD (creation of a lookup table)*/
+ 	tstep    = 0.1;
+@@ -278,7 +217,7 @@
+ 		IssmDouble* smblistref  = xNew<IssmDouble>(numvertices);
+ 		IssmDouble* smblist     = xNew<IssmDouble>(numvertices);
+ 		element->GetInputListOnVertices(surfacelist,SurfaceEnum);
+-		element->GetInputListOnVertices(smblistref,SurfaceforcingsSmbrefEnum);
++		element->GetInputListOnVertices(smblistref,SmbSmbrefEnum);
+ 
+ 		/*Loop over all vertices of element and correct SMB as a function of altitude z*/
+ 		for(int v=0;v<numvertices;v++){
+@@ -310,7 +249,7 @@
+ 		}
+ 
+ 		/*Add input to element and Free memory*/
+-		element->AddInput(SurfaceforcingsMassBalanceEnum,smblist,P1Enum);
++		element->AddInput(SmbMassBalanceEnum,smblist,P1Enum);
+ 		xDelete<IssmDouble>(surfacelist);
+ 		xDelete<IssmDouble>(smblistref);
+ 		xDelete<IssmDouble>(smblist);
+@@ -339,9 +278,9 @@
+ 		IssmDouble* smb         = xNew<IssmDouble>(numvertices);
+ 
+ 		/*Recover Smb Components*/
+-		element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum);
+-		element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum);
+-		element->GetInputListOnVertices(runoff,SurfaceforcingsRunoffEnum);
++		element->GetInputListOnVertices(acc,SmbAccumulationEnum);
++		element->GetInputListOnVertices(evap,SmbEvaporationEnum);
++		element->GetInputListOnVertices(runoff,SmbRunoffEnum);
+ 
+ 		// loop over all vertices
+ 		for(v=0;v<numvertices;v++){
+@@ -349,7 +288,7 @@
+ 		}  //end of the loop over the vertices
+ 
+ 		/*Add input to element and Free memory*/
+-		element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
++		element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
+ 		xDelete<IssmDouble>(acc);
+ 		xDelete<IssmDouble>(evap);
+ 		xDelete<IssmDouble>(runoff);
+@@ -381,10 +320,10 @@
+ 		IssmDouble* smb         = xNew<IssmDouble>(numvertices);
+ 
+ 		/*Recover Smb Components*/
+-		element->GetInputListOnVertices(acc,SurfaceforcingsAccumulationEnum);
+-		element->GetInputListOnVertices(evap,SurfaceforcingsEvaporationEnum);
+-		element->GetInputListOnVertices(melt,SurfaceforcingsMeltEnum);
+-		element->GetInputListOnVertices(refreeze,SurfaceforcingsRefreezeEnum);
++		element->GetInputListOnVertices(acc,SmbAccumulationEnum);
++		element->GetInputListOnVertices(evap,SmbEvaporationEnum);
++		element->GetInputListOnVertices(melt,SmbMeltEnum);
++		element->GetInputListOnVertices(refreeze,SmbRefreezeEnum);
+ 
+ 		// loop over all vertices
+ 		for(v=0;v<numvertices;v++){
+@@ -392,7 +331,7 @@
+ 		}  //end of the loop over the vertices
+ 
+ 		/*Add input to element and Free memory*/
+-		element->AddInput(SurfaceforcingsMassBalanceEnum,smb,P1Enum);
++		element->AddInput(SmbMassBalanceEnum,smb,P1Enum);
+ 		xDelete<IssmDouble>(acc);
+ 		xDelete<IssmDouble>(evap);
+ 		xDelete<IssmDouble>(melt);
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19526)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19527)
+@@ -205,6 +205,7 @@
+ 					./cores/extrudefrombase_core.cpp\
+ 					./cores/extrudefromtop_core.cpp\
+ 					./cores/thermal_core.cpp\
++					./cores/smb_core.cpp\
+ 					./solutionsequences/solutionsequence_thermal_nonlinear.cpp\
+ 					./modules/ControlInputSetGradientx/ControlInputSetGradientx.cpp\
+ 					./modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.cpp\
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19527)
+@@ -20,7 +20,7 @@
+ 
+ 	/*parameters: */
+ 	IssmDouble starttime,finaltime,dt,yts;
+-	bool       isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
++	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
+@@ -47,6 +47,7 @@
+ 	femmodel->parameters->FindParam(&time_adapt,TimesteppingTimeAdaptEnum);
+ 	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
++	femmodel->parameters->FindParam(&issmb,TransientIssmbEnum);
+ 	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
+ 	femmodel->parameters->FindParam(&isgia,TransientIsgiaEnum);
+ 	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
+@@ -55,7 +56,7 @@
+ 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+ 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
+ 	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
+-	femmodel->parameters->FindParam(&smb_model,SurfaceforcingsEnum);
++	femmodel->parameters->FindParam(&smb_model,SmbEnum);
+ 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+@@ -85,27 +86,18 @@
+ 		 save_results=false;
+ 		femmodel->parameters->SetParam(save_results,SaveResultsEnum);
+ 
+-		if(isthermal && domaintype==Domain3DEnum){
++		if(isthermal && domaintype==Domain3DEnum){ 
+ 			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+ 			if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			thermal_core(femmodel);
+ 		}
+ 
+-		if(ishydrology){
+-			if(VerboseSolution()) _printf0_("   computing water heads\n");
+-			hydrology_core(femmodel);
+-		}
++		if(ishydrology) hydrology_core(femmodel);
+ 
+-		if(isstressbalance){
+-			if(VerboseSolution()) _printf0_("   computing new velocity\n");
+-			stressbalance_core(femmodel);
+-		}
++		if(isstressbalance) stressbalance_core(femmodel);
+ 
+-		if(isdamageevolution){
+-			if(VerboseSolution()) _printf0_("   computing damage\n");
+-			damage_core(femmodel);
+-		}
++		if(isdamageevolution) damage_core(femmodel);
+ 
+ 		if(islevelset){
+ 			if(iscalving) Calvingx(femmodel);
+@@ -136,10 +128,10 @@
+ 			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
+ 		}
+ 
++		if(issmb)smb_core(femmodel);
++
+ 		if(ismasstransport){
+-			if(VerboseSolution()) _printf0_("   computing new thickness\n");
+ 			masstransport_core(femmodel);
+-			if(VerboseSolution()) _printf0_("   updating vertices positions\n");
+ 			femmodel->UpdateVertexPositionsx();
+ 		}
+ 		
+Index: ../trunk-jpl/src/c/cores/damage_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/cores/damage_core.cpp	(revision 19527)
+@@ -18,7 +18,7 @@
+ 	int    numoutputs          = 0; 
+ 	char   **requested_outputs = NULL;
+ 
+-	
++			
+ 	//first recover parameters common to all solutions
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+ 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+Index: ../trunk-jpl/src/c/cores/masstransport_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/masstransport_core.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/cores/masstransport_core.cpp	(revision 19527)
+@@ -30,10 +30,9 @@
+ 	femmodel->parameters->FindParam(&numoutputs,MasstransportNumRequestedOutputsEnum);
+ 	femmodel->parameters->FindParam(&stabilization,MasstransportStabilizationEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,MasstransportRequestedOutputsEnum);
++			
++	if(VerboseSolution()) _printf0_("   computing mass transport\n");
+ 
+-	/*Calculate new Surface Mass Balance (SMB)*/
+-	SurfaceMassBalancex(femmodel);
+-
+ 	/*Transport mass or free surface*/
+ 	if(isFS && isfreesurface){
+ 		if(VerboseSolution()) _printf0_("   call free surface computational core\n");
+Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19527)
+@@ -16,11 +16,14 @@
+ 	bool       save_results;
+ 	bool       modify_loads=true;
+ 	bool       isefficientlayer;
++	
+ 
+ 	/*first recover parameters common to all solutions*/
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+ 	femmodel->parameters->FindParam(&hydrology_model,HydrologyModelEnum);
+-
++	
++	if(VerboseSolution()) _printf0_("   computing water heads\n");
++			
+ 	/*first compute slopes: */
+ 	if (hydrology_model==HydrologyshreveEnum){
+ 		surfaceslope_core(femmodel);
+Index: ../trunk-jpl/src/c/cores/stressbalance_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/stressbalance_core.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/cores/stressbalance_core.cpp	(revision 19527)
+@@ -21,6 +21,7 @@
+ 	int        numoutputs        = 0;
+ 	char     **requested_outputs = NULL;
+ 	Analysis  *analysis          = NULL;
++			
+ 
+ 	/* recover parameters:*/
+ 	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
+@@ -33,6 +34,8 @@
+ 	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,StressbalanceNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,StressbalanceRequestedOutputsEnum);
++	
++	if(VerboseSolution()) _printf0_("   computing new velocity\n");
+ 
+ 	/*Compute slopes if necessary */
+ 	if(isSIA || (isFS && domaintype==Domain2DverticalEnum)) surfaceslope_core(femmodel);
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 19526)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 19527)
+@@ -45,6 +45,7 @@
+ void adgradient_core(FemModel* femmodel);
+ void dummy_core(FemModel* femmodel);
+ void gia_core(FemModel* femmodel);
++void smb_core(FemModel* femmodel);
+ void damage_core(FemModel* femmodel);
+ IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
+ 
+Index: ../trunk-jpl/src/c/cores/smb_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/smb_core.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/smb_core.cpp	(revision 19527)
+@@ -0,0 +1,92 @@
++/*!\file: smb_core.cpp
++ * \brief: core of the smb solution 
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++#include "../solutionsequences/solutionsequences.h"
++
++void smb_core(FemModel* femmodel){
++
++	/*parameters: */
++	int    smb_model;
++	int    numoutputs;
++	bool   save_results;
++	int    solution_type;
++	char** requested_outputs = NULL;
++
++	/*recover parameters: */
++	femmodel->parameters->FindParam(&smb_model,SmbEnum);
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
++	femmodel->parameters->FindParam(&numoutputs,SmbNumRequestedOutputsEnum);
++	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SmbRequestedOutputsEnum);
++			
++	if(VerboseSolution()) _printf0_("   computing smb \n");
++
++	/*branch to correct module*/
++	switch(smb_model){
++		case SMBforcingEnum:
++			/*Nothing to be done*/
++			break;
++		case SMBpddEnum:
++			bool isdelta18o,ismungsm;
++			femmodel->parameters->FindParam(&isdelta18o,SmbIsdelta18oEnum);
++			femmodel->parameters->FindParam(&ismungsm,SmbIsmungsmEnum);
++			if(isdelta18o){
++				if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
++				Delta18oParameterizationx(femmodel);
++			} 
++			if(ismungsm){
++				if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
++				MungsmtpParameterizationx(femmodel);
++			} 
++			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++			PositiveDegreeDayx(femmodel);
++			break;
++		case SMBd18opddEnum:
++			bool isd18opd;
++			femmodel->parameters->FindParam(&isd18opd,SmbIsd18opdEnum);
++			if(isd18opd){
++				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
++				Delta18opdParameterizationx(femmodel);
++				if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++				PositiveDegreeDayx(femmodel);
++			} 
++			break;
++		case SMBgradientsEnum:
++			if(VerboseSolution())_printf0_("	call smb gradients module\n");
++			SmbGradientsx(femmodel);
++			break;
++		case SMBhenningEnum:
++			if(VerboseSolution())_printf0_("  call smb Henning module\n");
++			SmbHenningx(femmodel);
++			break;
++		case SMBcomponentsEnum:
++			if(VerboseSolution())_printf0_("  call smb Components module\n");
++			SmbComponentsx(femmodel);
++			break;
++		case SMBmeltcomponentsEnum:
++			if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
++			SmbMeltComponentsx(femmodel);
++			break;
++		case SMBgcmEnum:
++			/*Nothing to be done*/
++			break;
++		default:
++			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
++	}
++
++	if(save_results){
++		if(VerboseSolution()) _printf0_("   saving results\n");
++		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
++	}
++
++	if(solution_type==SmbSolutionEnum)femmodel->RequestedDependentsx();
++
++	/*Free ressources:*/
++	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
++}
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19527)
+@@ -68,7 +68,7 @@
+ 	bool isefficientlayer;
+ 	int  hydrology_model,smb_model,materials_type;
+ 	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
+-	iomodel->Constant(&smb_model,SurfaceforcingsEnum);
++	iomodel->Constant(&smb_model,SmbEnum);
+ 	iomodel->Constant(&materials_type,MaterialsEnum);
+ 
+ 	this->mid = matpar_mid;
+@@ -92,19 +92,19 @@
+ 			iomodel->Constant(&this->g,ConstantsGEnum);
+ 
+ 			switch(smb_model){
+-				case SMBEnum:
++				case SMBforcingEnum:
+ 					/*Nothing to add*/
+ 					break;
+ 				case SMBpddEnum:
+-					iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
+-					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+-					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
++					iomodel->Constant(&this->desfac,SmbDesfacEnum);
++					iomodel->Constant(&this->rlaps,SmbRlapsEnum);
++					iomodel->Constant(&this->rlapslgm,SmbRlapslgmEnum);
+ 					break;
+ 				case SMBd18opddEnum:
+-					iomodel->Constant(&this->desfac,SurfaceforcingsDesfacEnum);
+-					iomodel->Constant(&this->rlaps,SurfaceforcingsRlapsEnum);
+-					iomodel->Constant(&this->rlapslgm,SurfaceforcingsRlapslgmEnum);
+-					iomodel->Constant(&this->dpermil,SurfaceforcingsDpermilEnum);					
++					iomodel->Constant(&this->desfac,SmbDesfacEnum);
++					iomodel->Constant(&this->rlaps,SmbRlapsEnum);
++					iomodel->Constant(&this->rlapslgm,SmbRlapslgmEnum);
++					iomodel->Constant(&this->dpermil,SmbDpermilEnum);					
+ 				case SMBgradientsEnum:
+ 					break;
+ 					/*Nothing to add*/
+@@ -364,16 +364,16 @@
+ 		case  ConstantsGEnum:
+ 			this->g=constant;
+ 			break;
+-		case  SurfaceforcingsDesfacEnum:
++		case  SmbDesfacEnum:
+ 			this->desfac=constant;
+ 			break;
+-		case SurfaceforcingsRlapsEnum:
++		case SmbRlapsEnum:
+ 			this->rlaps=constant;
+ 			break;
+-		case SurfaceforcingsRlapslgmEnum:
++		case SmbRlapslgmEnum:
+ 			this->rlapslgm=constant;
+ 			break;
+-		case  SurfaceforcingsDpermilEnum:
++		case  SmbDpermilEnum:
+ 			this->dpermil=constant;
+ 			break;
+ 		default: 
+@@ -497,10 +497,10 @@
+ 		case HydrologydcEplMaxThicknessEnum:         return this->epl_max_thickness;
+ 		case HydrologydcWaterCompressibilityEnum:    return this->water_compressibility;
+ 		case ConstantsGEnum:                         return this->g;
+-		case SurfaceforcingsDesfacEnum:              return this->desfac;
+-		case SurfaceforcingsRlapsEnum:               return this->rlaps;
+-		case SurfaceforcingsRlapslgmEnum:            return this->rlapslgm;
+-		case SurfaceforcingsDpermilEnum:             return this->dpermil;
++		case SmbDesfacEnum:              return this->desfac;
++		case SmbRlapsEnum:               return this->rlaps;
++		case SmbRlapslgmEnum:            return this->rlapslgm;
++		case SmbDpermilEnum:             return this->dpermil;
+ 		case MaterialsLithosphereShearModulusEnum:   return this->lithosphere_shear_modulus;
+ 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
+ 		case MaterialsMantleDensityEnum:             return this->mantle_density;
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19527)
+@@ -776,6 +776,8 @@
+ 
+ 	IssmDouble         *surface = NULL;
+ 	IssmDouble         *bed     = NULL;
++			
++	if(VerboseSolution()) _printf0_("   updating vertices positions\n");
+ 
+ 	/*get vertex vectors for bed and thickness: */
+ 	GetVectorFromInputsx(&surface  ,this, SurfaceEnum,VertexPIdEnum);
+@@ -1739,7 +1741,7 @@
+ 		Input* thickness_input                 = element->GetInput(ThicknessEnum); _assert_(thickness_input);
+ 		Input* vx_input                        = element->GetInput(VxEnum);                                  _assert_(vx_input);
+ 		Input* vy_input                        = element->GetInput(VyEnum);                                  _assert_(vy_input);
+-		Input* surface_mass_balance_input      = element->GetInput(SurfaceforcingsMassBalanceEnum);          _assert_(surface_mass_balance_input);
++		Input* surface_mass_balance_input      = element->GetInput(SmbMassBalanceEnum);          _assert_(surface_mass_balance_input);
+ 		Input* groundedice_melting_input       = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedice_melting_input);
+ 		Input* dhdt_input                      = element->GetInput(BalancethicknessThickeningRateEnum);      _assert_(dhdt_input);
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19527)
+@@ -3046,7 +3046,7 @@
+ 	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));	// area of element in m2
+ 
+ 	/*Now get the average SMB over the element*/
+-	Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
++	Input* smb_input = inputs->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
+ 	smb_input->GetInputAverage(&smb);																								// average smb on element in m ice s-1
+    Total_Smb=rho_ice*base*smb;																											// smb on element in kg s-1
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19527)
+@@ -2634,7 +2634,7 @@
+ 	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
+ 
+ 	/*Now get the average SMB over the element*/
+-	Input* smb_input = inputs->GetInput(SurfaceforcingsMassBalanceEnum); _assert_(smb_input);
++	Input* smb_input = inputs->GetInput(SmbMassBalanceEnum); _assert_(smb_input);
+ 
+ 	smb_input->GetInputAverage(&smb);
+ 	Total_Smb=rho_ice*base*smb;// smb on element in kg s-1
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19526)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19527)
+@@ -510,9 +510,9 @@
+ 	time_yr=floor(time/yts)*yts;
+ 
+ 	/*Recover present day temperature and precipitation*/
+-	Input* input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input* input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input* input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
++	Input* input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
++	Input* input2=this->inputs->GetInput(SmbTemperaturesLgmEnum);          _assert_(input2);
++	Input* input3=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input3);
+ 	/*loop over vertices: */
+ 	Gauss* gauss=this->NewGauss();
+ 	for(int month=0;month<12;month++){
+@@ -527,12 +527,12 @@
+ 	}
+ 
+ 	/*Recover delta18o and Delta18oSurface at present day, lgm and at time t*/
+-	this->parameters->FindParam(&Delta18oPresent,SurfaceforcingsDelta18oEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oLgm,SurfaceforcingsDelta18oEnum,(finaltime-(21000*yts)));
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
+-	this->parameters->FindParam(&Delta18oSurfacePresent,SurfaceforcingsDelta18oSurfaceEnum,finaltime);
+-	this->parameters->FindParam(&Delta18oSurfaceLgm,SurfaceforcingsDelta18oSurfaceEnum,(finaltime-(21000*yts)));
+-	this->parameters->FindParam(&Delta18oSurfaceTime,SurfaceforcingsDelta18oSurfaceEnum,time);
++	this->parameters->FindParam(&Delta18oPresent,SmbDelta18oEnum,finaltime);
++	this->parameters->FindParam(&Delta18oLgm,SmbDelta18oEnum,(finaltime-(21000*yts)));
++	this->parameters->FindParam(&Delta18oTime,SmbDelta18oEnum,time);
++	this->parameters->FindParam(&Delta18oSurfacePresent,SmbDelta18oSurfaceEnum,finaltime);
++	this->parameters->FindParam(&Delta18oSurfaceLgm,SmbDelta18oSurfaceEnum,(finaltime-(21000*yts)));
++	this->parameters->FindParam(&Delta18oSurfaceTime,SmbDelta18oSurfaceEnum,time);
+ 
+ 	/*Compute the temperature and precipitation*/
+ 	for(int iv=0;iv<numvertices;iv++){
+@@ -544,21 +544,21 @@
+ 	}
+ 
+ 	/*Update inputs*/
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 	}
+@@ -572,8 +572,8 @@
+ 		case TriaEnum: break;
+ 		case PentaEnum:
+ 		case TetraEnum:
+-							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SmbPrecipitationEnum,-1);
+ 							break;
+ 		default: _error_("Not implemented yet");
+ 	}
+@@ -610,10 +610,10 @@
+ 	time_yr=floor(time/yts)*yts;
+ 
+ 	/*Recover present day temperature and precipitation*/
+-	Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=this->inputs->GetInput(SurfaceforcingsTemperaturesLgmEnum);          _assert_(input2);
+-	Input*     input3=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input3);
+-	Input*     input4=this->inputs->GetInput(SurfaceforcingsPrecipitationsLgmEnum);        _assert_(input4);
++	Input*     input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
++	Input*     input2=this->inputs->GetInput(SmbTemperaturesLgmEnum);          _assert_(input2);
++	Input*     input3=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input3);
++	Input*     input4=this->inputs->GetInput(SmbPrecipitationsLgmEnum);        _assert_(input4);
+ 	/*loop over vertices: */
+ 	Gauss* gauss=this->NewGauss();
+ 	for(int month=0;month<12;month++) {
+@@ -630,8 +630,8 @@
+ 	}
+ 
+ 	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-	this->parameters->FindParam(&PfacTime,SurfaceforcingsPfacEnum,time);
++	this->parameters->FindParam(&TdiffTime,SmbTdiffEnum,time);
++	this->parameters->FindParam(&PfacTime,SmbPfacEnum,time);
+ 
+ 	/*Compute the temperature and precipitation*/
+ 	for(int iv=0;iv<numvertices;iv++){
+@@ -642,21 +642,21 @@
+ 	}
+ 
+ 	/*Update inputs*/
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 	}
+@@ -670,8 +670,8 @@
+ 		case TriaEnum: break;
+ 		case PentaEnum:
+ 		case TetraEnum:
+-							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SmbPrecipitationEnum,-1);
+ 							break;
+ 		default: _error_("Not implemented yet");
+ 	}
+@@ -708,11 +708,11 @@
+ 	time_yr=floor(time/yts)*yts;
+ 
+ 	/*Get some pdd parameters*/
+-	dpermil=this->matpar->GetMaterialParameter(SurfaceforcingsDpermilEnum);
++	dpermil=this->matpar->GetMaterialParameter(SmbDpermilEnum);
+ 
+ 	/*Recover present day temperature and precipitation*/
+-	Input*     input=this->inputs->GetInput(SurfaceforcingsTemperaturesPresentdayEnum);    _assert_(input);
+-	Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationsPresentdayEnum); _assert_(input2);
++	Input*     input=this->inputs->GetInput(SmbTemperaturesPresentdayEnum);    _assert_(input);
++	Input*     input2=this->inputs->GetInput(SmbPrecipitationsPresentdayEnum); _assert_(input2);
+ 	/*loop over vertices: */
+ 	Gauss* gauss=this->NewGauss();
+ 	for(int month=0;month<12;month++) {
+@@ -726,7 +726,7 @@
+ 	}
+ 
+ 	/*Recover interpolation parameters at time t*/
+-	this->parameters->FindParam(&Delta18oTime,SurfaceforcingsDelta18oEnum,time);
++	this->parameters->FindParam(&Delta18oTime,SmbDelta18oEnum,time);
+ 
+ 	/*Compute the temperature and precipitation*/
+ 	for(int iv=0;iv<numvertices;iv++){
+@@ -736,21 +736,21 @@
+ 	}
+ 
+ 	/*Update inputs*/
+-	TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
++	TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
+ 	for (int imonth=0;imonth<12;imonth++) {
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewTemperatureInput->AddTimeInput(new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewTemperatureInput->AddTimeInput(new PentaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewTemperatureInput->AddTimeInput(new TetraInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 		for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+ 		switch(this->ObjectEnum()){
+-			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+-			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TriaEnum:  NewPrecipitationInput->AddTimeInput(new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case PentaEnum: NewPrecipitationInput->AddTimeInput(new PentaInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
++			case TetraEnum: NewPrecipitationInput->AddTimeInput(new TetraInput(SmbPrecipitationEnum,&tmp[0],P1Enum),time_yr+imonth/12.*yts); break;
+ 			default: _error_("Not implemented yet");
+ 		}
+ 	}
+@@ -764,8 +764,8 @@
+ 		case TriaEnum: break;
+ 		case PentaEnum:
+ 		case TetraEnum:
+-							this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-							this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++							this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
++							this->InputExtrude(SmbPrecipitationEnum,-1);
+ 							break;
+ 		default: _error_("Not implemented yet");
+ 	}
+@@ -1457,7 +1457,7 @@
+ 				name==SigmaNNEnum ||
+ 				name==SurfaceSlopeXEnum ||
+ 				name==SurfaceSlopeYEnum ||
+-				name==SurfaceforcingsMassBalanceEnum ||
++				name==SmbMassBalanceEnum ||
+ 				name==BasalforcingsGroundediceMeltingRateEnum ||
+ 				name==BasalforcingsFloatingiceMeltingRateEnum ||
+ 				name==BasalforcingsGeothermalfluxEnum ||
+@@ -1714,13 +1714,13 @@
+ 	rho_ice=this->matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+ 
+ 	/*Get some pdd parameters*/
+-	desfac=this->matpar->GetMaterialParameter(SurfaceforcingsDesfacEnum);
+-	rlaps=this->matpar->GetMaterialParameter(SurfaceforcingsRlapsEnum);
+-	rlapslgm=this->matpar->GetMaterialParameter(SurfaceforcingsRlapslgmEnum);
++	desfac=this->matpar->GetMaterialParameter(SmbDesfacEnum);
++	rlaps=this->matpar->GetMaterialParameter(SmbRlapsEnum);
++	rlapslgm=this->matpar->GetMaterialParameter(SmbRlapslgmEnum);
+ 
+ 	/*Recover monthly temperatures and precipitation and compute the yearly mean temperatures*/
+-	Input*     input=this->inputs->GetInput(SurfaceforcingsMonthlytemperaturesEnum); _assert_(input);
+-	Input*     input2=this->inputs->GetInput(SurfaceforcingsPrecipitationEnum); _assert_(input2);
++	Input*     input=this->inputs->GetInput(SmbMonthlytemperaturesEnum); _assert_(input);
++	Input*     input2=this->inputs->GetInput(SmbPrecipitationEnum); _assert_(input2);
+ 	IssmDouble time,yts,time_yr;
+ 	this->parameters->FindParam(&time,TimeEnum);
+ 	this->parameters->FindParam(&yts,ConstantsYtsEnum);
+@@ -1743,8 +1743,8 @@
+ 	 *     This parameters are used to interpolate the temperature
+ 	 *         and precipitaton between PD and LGM when ismungsm==1 */
+ 	if (ismungsm==1){
+-		this->parameters->FindParam(&TdiffTime,SurfaceforcingsTdiffEnum,time);
+-		this->parameters->FindParam(&sealevTime,SurfaceforcingsSealevEnum,time);
++		this->parameters->FindParam(&TdiffTime,SmbTdiffEnum,time);
++		this->parameters->FindParam(&sealevTime,SmbSealevEnum,time);
+ 	}
+ 	else {
+ 		TdiffTime=0;
+@@ -1754,8 +1754,8 @@
+ 	/*Recover info at the vertices: */
+ 	GetInputListOnVertices(&h[0],ThicknessEnum);
+ 	GetInputListOnVertices(&s[0],SurfaceEnum);
+-	GetInputListOnVertices(&s0p[0],SurfaceforcingsS0pEnum);
+-	GetInputListOnVertices(&s0t[0],SurfaceforcingsS0tEnum);
++	GetInputListOnVertices(&s0p[0],SmbS0pEnum);
++	GetInputListOnVertices(&s0t[0],SmbS0tEnum);
+ 
+ 	/*measure the surface mass balance*/
+ 	for (int iv = 0; iv<numvertices; iv++){
+@@ -1770,15 +1770,15 @@
+ 	}
+ 
+ 	/*Update inputs*/
+-	// TransientInput* NewTemperatureInput = new TransientInput(SurfaceforcingsMonthlytemperaturesEnum);
+-	// TransientInput* NewPrecipitationInput = new TransientInput(SurfaceforcingsPrecipitationEnum);
++	// TransientInput* NewTemperatureInput = new TransientInput(SmbMonthlytemperaturesEnum);
++	// TransientInput* NewPrecipitationInput = new TransientInput(SmbPrecipitationEnum);
+ 	// for (int imonth=0;imonth<12;imonth++) {
+ 	//   for(i=0;i<numvertices;i++) tmp[i]=monthlytemperatures[i*12+imonth];
+-	//   TriaInput* newmonthinput1 = new TriaInput(SurfaceforcingsMonthlytemperaturesEnum,&tmp[0],P1Enum);
++	//   TriaInput* newmonthinput1 = new TriaInput(SmbMonthlytemperaturesEnum,&tmp[0],P1Enum);
+ 	//   NewTemperatureInput->AddTimeInput(newmonthinput1,time+imonth/12.*yts);
+ 	//
+ 	//   for(i=0;i<numvertices;i++) tmp[i]=monthlyprec[i*12+imonth]/yts;
+-	//   TriaInput* newmonthinput2 = new TriaInput(SurfaceforcingsPrecipitationEnum,&tmp[0],P1Enum);
++	//   TriaInput* newmonthinput2 = new TriaInput(SmbPrecipitationEnum,&tmp[0],P1Enum);
+ 	//   NewPrecipitationInput->AddTimeInput(newmonthinput2,time+imonth/12.*yts);
+ 	// }
+ 	// NewTemperatureInput->Configure(this->parameters);
+@@ -1788,9 +1788,9 @@
+ 		case TriaEnum:  
+ 		        // this->inputs->AddInput(new TriaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 		        this->inputs->AddInput(new TriaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
+-			this->inputs->AddInput(new TriaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
+-			this->inputs->AddInput(new TriaInput(SurfaceforcingsAccumulationEnum,&accu[0],P1Enum));
+-			this->inputs->AddInput(new TriaInput(SurfaceforcingsMeltEnum,&melt[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SmbMassBalanceEnum,&agd[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SmbAccumulationEnum,&accu[0],P1Enum));
++			this->inputs->AddInput(new TriaInput(SmbMeltEnum,&melt[0],P1Enum));
+ 			break;
+ 		case PentaEnum:
+ 		        if(IsOnSurface()){
+@@ -1800,10 +1800,10 @@
+ 		              yearlytemperatures[2] = s[2];
+ 		              this->inputs->AddInput(new PentaInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 		        }
+-		        this->inputs->AddInput(new PentaInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++		        this->inputs->AddInput(new PentaInput(SmbMassBalanceEnum,&agd[0],P1Enum));
+ 		        this->inputs->AddInput(new PentaInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
+ 		        this->InputExtrude(TemperaturePDDEnum,-1);
+-		        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++		        this->InputExtrude(SmbMassBalanceEnum,-1);
+ 		        break;
+ 		case TetraEnum: 
+ 		        if(IsOnSurface()){
+@@ -1813,10 +1813,10 @@
+ 		              yearlytemperatures[2] = s[2];
+ 		              this->inputs->AddInput(new TetraInput(TemperatureEnum,&yearlytemperatures[0],P1Enum));
+ 		        }
+-		        this->inputs->AddInput(new TetraInput(SurfaceforcingsMassBalanceEnum,&agd[0],P1Enum));
++		        this->inputs->AddInput(new TetraInput(SmbMassBalanceEnum,&agd[0],P1Enum));
+ 		        this->inputs->AddInput(new TetraInput(TemperaturePDDEnum,&yearlytemperatures[0],P1Enum));
+ 		        this->InputExtrude(TemperaturePDDEnum,-1);
+-		        this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
++		        this->InputExtrude(SmbMassBalanceEnum,-1);
+ 		        break;
+ 		default: _error_("Not implemented yet");
+ 	}
+@@ -1824,9 +1824,9 @@
+ 	// this->inputs->AddInput(NewPrecipitationInput);
+ 	// this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+ 
+-	//this->InputExtrude(SurfaceforcingsMassBalanceEnum,-1);
+-	// this->InputExtrude(SurfaceforcingsMonthlytemperaturesEnum,-1);
+-	// this->InputExtrude(SurfaceforcingsPrecipitationEnum,-1);
++	//this->InputExtrude(SmbMassBalanceEnum,-1);
++	// this->InputExtrude(SmbMonthlytemperaturesEnum,-1);
++	// this->InputExtrude(SmbPrecipitationEnum,-1);
+ 
+ 	/*clean-up*/
+ 	delete gauss;
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp	(revision 19526)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp	(revision 19527)
+@@ -19,7 +19,7 @@
+ 	_printf0_("      x_interp,y_interp : coordinates of the points onto which we interpolate.\n");
+ 	_printf0_("      data_interp       : vector of mesh interpolated data.\n");
+ 	_printf0_("      Available options :\n");
+-	_printf0_("         - 'default' : default value if point is outsite of triangulation (instead of linear interolation)\n");
++	_printf0_("         - 'default' : default value if point is outsite of triangulation (instead of linear interpolation)\n");
+ 	_printf0_("\n");
+ 	_printf0_("   Example:\n");
+ 	_printf0_("      load('temperature.mat');\n");
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19526)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19527)
+@@ -219,7 +219,7 @@
+ 			field = field*yts
+ 		elif m.strcmp(fieldname,'TotalSmb'):
+ 			field = field/10.**12.*yts #(GigaTon/year)
+-		elif m.strcmp(fieldname,'SurfaceforcingsMassBalance'):
++		elif m.strcmp(fieldname,'SmbMassBalance'):
+ 			field = field*yts
+ 		elif m.strcmp(fieldname,'CalvingCalvingrate'):
+ 			field = field*yts
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19526)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19527)
+@@ -197,11 +197,11 @@
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'TotalSmb'),
+ 		field = field/10.^12*yts; %(GigaTon/year)
+-	elseif strcmp(fieldname,'SurfaceforcingsMassBalance'),
++	elseif strcmp(fieldname,'SmbMassBalance'),
+ 		field = field*yts;
+-	elseif strcmp(fieldname,'SurfaceforcingsAccumulation'),
++	elseif strcmp(fieldname,'SmbAccumulation'),
+ 		field = field*yts;
+-	elseif strcmp(fieldname,'SurfaceforcingsMelt'),
++	elseif strcmp(fieldname,'SmbMelt'),
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'CalvingCalvingrate'),
+ 		field = field*yts;
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py	(revision 19527)
+@@ -33,8 +33,8 @@
+ 
+ 	#No ice front -> do nothing
+ 
+-	#Create zeros basalforcings and surfaceforcings
+-	md.surfaceforcings.initialize(md)
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
+ 	md.basalforcings.initialize(md)
+ 
+ 	#Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m	(revision 19527)
+@@ -80,7 +80,7 @@
+ md.hydrology.spcwatercolumn(pos,1)=1;
+ 
+ %Initialize surface and basal forcings
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ md.basalforcings   = initialize(md.basalforcings,md);
+ 
+ %Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.m
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.m	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.m	(revision 19527)
+@@ -29,7 +29,7 @@
+ %No ice front: do nothing
+ 
+ %Initialize surface and basal forcings
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ md.basalforcings   = initialize(md.basalforcings,md);
+ 
+ %Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py	(revision 19527)
+@@ -75,8 +75,8 @@
+ 	else:
+ 		print "      boundary conditions for stressbalance model: spc set as zero"
+ 
+-	#Create zeros basalforcings and surfaceforcings
+-	md.surfaceforcings.initialize(md)
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
+ 	md.basalforcings.initialize(md)
+ 
+ 	#Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py	(revision 19527)
+@@ -83,8 +83,8 @@
+ 	pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
+ 	md.hydrology.spcwatercolumn[pos,0]=1
+ 
+-	#Create zeros basalforcings and surfaceforcings
+-	md.surfaceforcings.initialize(md)
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
+ 	md.basalforcings.initialize(md)
+ 
+ 	#Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m	(revision 19526)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m	(revision 19527)
+@@ -62,7 +62,7 @@
+ end
+ 
+ %Initialize surface and basal forcings
+-md.surfaceforcings = initialize(md.surfaceforcings,md);
++md.smb = initialize(md.smb,md);
+ md.basalforcings   = initialize(md.basalforcings,md);
+ 
+ %Deal with other boundary conditions
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19527)
+@@ -31,6 +31,7 @@
+ 
+ 		#set defaults
+ 		self.setdefaultparameters()
++		self.requested_outputs      = []
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string="   surface forcings parameters:"
+@@ -45,6 +46,7 @@
+ 			string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+ 
+ 		return string
+ 		#}}}
+@@ -57,6 +59,9 @@
+ 
+ 		return self
+ 	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
+ 	def initialize(self,md): # {{{
+ 
+ 		if numpy.all(numpy.isnan(self.s0p)):
+@@ -84,17 +89,19 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if self.isd18opd:
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',[1])
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1])
++		
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 
+ 		return md
+ 	# }}}
+@@ -102,21 +109,30 @@
+ 
+ 		yts=365.0*24.0*3600.0
+ 
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer')
++		WriteData(fid,'enum',SmbEnum(),'data',SMBd18opddEnum(),'format','Integer')
+ 
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
++		WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','isd18opd','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++		WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
+ 
+ 		if self.isd18opd:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double')
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','dpermil','format','Double')
++			
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19527)
+@@ -19,6 +19,7 @@
+ 		delta18o_surface          = NaN;
+ 		temperatures_presentday   = NaN;
+ 		precipitations_presentday = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBd18opdd(varargin) % {{{
+@@ -36,6 +37,11 @@
+ 			self.s0t=project3d(md,'vector',self.s0t,'type','node');
+ 
+ 		end % }}}
++			function list = defaultoutputs(self,md) % {{{
++
++			list = {''};
++
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+                     
+ 			if isnan(self.s0p),
+@@ -61,18 +67,19 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
++				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
+ 				if(self.isd18opd==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.dpermil','>=',0,'numel',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters:'));
+@@ -89,6 +96,7 @@
+ 				fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and d18opd activated');  
+ 				fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated');                            
+ 			end
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 			% No need to display rlapslgm, Tdiff, ismungsm
+ 			% as they are not used in this case but are still needed as default values in
+ 			% PositiveDegreeDay (Tria.cpp) used in that case
+@@ -97,24 +105,34 @@
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBd18opddEnum(),'format','Integer');
++			WriteData(fid,'enum',SmbEnum(),'data',SMBd18opddEnum(),'format','Integer');
+ 
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isd18opd','format','Boolean');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isd18opd','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 
+ 			if self.isd18opd
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','dpermil','format','Double');
++				WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','dpermil','format','Double');
+ 			end
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19527)
+@@ -35,6 +35,7 @@
+ 
+ 		#set defaults
+ 		self.setdefaultparameters()
++		self.requested_outputs      = []
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string="   surface forcings parameters:"
+@@ -66,6 +67,7 @@
+ 				string="%s\n%s"%(string,fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated'))
+ 				string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+ 				
+ 		return string
+ 	# }}}
+@@ -87,6 +89,9 @@
+ 
+ 		return self
+ 	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
+ 	def initialize(self,md): # {{{
+ 
+ 		if numpy.all(numpy.isnan(self.s0p)):
+@@ -113,67 +118,77 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',[1])
+-			md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if (self.isdelta18o==0 and self.ismungsm==0):
+-				md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitation','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)
+ 			elif self.isdelta18o:
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 			elif self.ismungsm:
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+ 	#}}}
+ 	def marshall(self,md,fid):    # {{{
+ 
+ 		yts=365.0*24.0*3600.0
+ 
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBpddEnum(),'format','Integer')
++		WriteData(fid,'enum',SmbEnum(),'data',SMBpddEnum(),'format','Integer')
+ 
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double')
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
+ 
+ 		if (self.isdelta18o==0 and self.ismungsm==0):
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 		elif self.isdelta18o:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)			
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)			
+ 		elif self.ismungsm:
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
++			
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBmeltcomponents.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBmeltcomponents.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBmeltcomponents.py	(revision 19527)
+@@ -16,6 +16,7 @@
+ 		self.accumulation = float('NaN')
+ 		self.runoff = float('NaN')
+ 		self.evaporation = float('NaN')
++		self.requested_outputs      = []
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string="   surface forcings parameters with melt (SMB=accumulation-evaporation-melt+refreeze) :"
+@@ -23,6 +24,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'melt','amount of ice melt in the ice column [m/yr ice eq]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'refreeze','amount of ice melt refrozen in the ice column [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+@@ -33,6 +35,9 @@
+ 		self.mass_balance=project3d(md,'vector',self.refreeze,'type','node');
+ 		return self
+ 	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
+ 	def initialize(self,md): # {{{
+ 
+ 		if numpy.all(numpy.isnan(self.accumulation)):
+@@ -56,38 +61,48 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.melt','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.melt','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.refreeze','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
+ 
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+ 
+ 		yts=365.0*24.0*3600.0
+ 
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'enum',SmbEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBforcing.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBforcing.py	(revision 19527)
+@@ -0,0 +1,68 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBforcing(object):
++	"""
++	SMBforcing Class definition
++
++	   Usage:
++	      SMB=SMBforcing();
++	"""
++
++	def __init__(self): # {{{
++		self.mass_balance = float('NaN')
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++		string="%s\n%s"%(string,fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node');
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.mass_balance)):
++			self.mass_balance=numpy.zeros((md.mesh.numberofvertices,1))
++			print "      no SMBforcing.mass_balance specified: values set as zero"
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
++
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBforcingEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m	(revision 19527)
+@@ -1,9 +1,9 @@
+ %SURFACEFORCING Class definition
+ %
+ %   Usage:
+-%      surfaceforcings=surfaceforcings();
++%      smb=smb();
+ 
+-classdef surfaceforcings
++classdef smb
+ 	properties (SetAccess=public) 
+ 		precipitation             = NaN;
+ 		mass_balance              = NaN;
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 19527)
+@@ -5,6 +5,7 @@
+ 
+ classdef transient
+ 	properties (SetAccess=public) 
++		issmb             = 0;
+ 		ismasstransport   = 0;
+ 		isstressbalance   = 0;
+ 		isthermal         = 0;
+@@ -22,6 +23,7 @@
+                     
+             % transient solution parameters
+             fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="transient solution parameters">','<section name="transient" />');                    
++                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="issmb" type="',class(self.issmb),'" default="',convert2str(self.issmb),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
+                 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="ismasstransport" type="',class(self.ismasstransport),'" default="',convert2str(self.ismasstransport),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
+                 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isstressbalance" type="',class(self.isstressbalance),'" default="',convert2str(self.isstressbalance),'">','     <section name="transient" />','     <help> indicates whether a stressbalance solution is used in the transient </help>','  </parameter>');
+                 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isthermal" type="',class(self.isthermal),'" default="',convert2str(self.isthermal),'">','     <section name="transient" />','     <help> indicates whether a thermal solution is used in the transient </help>','  </parameter>');
+@@ -45,6 +47,7 @@
+ 		function self = deactivateall(self) % {{{
+ 
+ 			%full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++			self.issmb           = 0;
+ 			self.ismasstransport = 0;
+ 			self.isstressbalance = 0;
+ 			self.isthermal       = 0;
+@@ -61,6 +64,7 @@
+ 		function self = setdefaultparameters(self) % {{{
+ 
+ 			%full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++			self.issmb           = 1;
+ 			self.ismasstransport = 1;
+ 			self.isstressbalance = 1;
+ 			self.isthermal       = 1;
+@@ -75,8 +79,8 @@
+ 			self.requested_outputs={'default'};
+ 		end % }}}
+ 		function list = defaultoutputs(self,md) % {{{
+-			if(self.ismasstransport)
+-				list = {'SurfaceforcingsMassBalance'};
++			if(self.issmb)
++				list = {'SmbMassBalance'};
+ 			else
+ 				list = {};
+ 			end
+@@ -86,6 +90,7 @@
+ 			%Early return
+ 			if solution~=TransientSolutionEnum(), return; end
+ 
++			md = checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 1]);
+@@ -101,6 +106,7 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   transient solution parameters:'));
+ 
++			fielddisplay(self,'issmb','indicates whether a surface mass balance solution is used in the transient');
+ 			fielddisplay(self,'ismasstransport','indicates whether a masstransport solution is used in the transient');
+ 			fielddisplay(self,'isstressbalance','indicates whether a stressbalance solution is used in the transient');
+ 			fielddisplay(self,'isthermal','indicates whether a thermal solution is used in the transient');
+@@ -114,6 +120,7 @@
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
++			WriteData(fid,'object',self,'fieldname','issmb','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','ismasstransport','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','isstressbalance','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean');
+Index: ../trunk-jpl/src/m/classes/SMBgradients.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgradients.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBgradients.py	(revision 19527)
+@@ -17,6 +17,7 @@
+ 		self.smbref  = float('NaN')
+ 		self.b_pos   = float('NaN')
+ 		self.b_neg   = float('NaN')
++		self.requested_outputs      = []
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string="   surface forcings parameters:"
+@@ -26,6 +27,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'smbref',' reference smb from which deviation is calculated in smb gradients method'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+ 
+ 		return string
+ 		#}}}
+@@ -34,6 +36,9 @@
+ 		#Nothing for now
+ 		return self
+ 	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
+ 	def initialize(self,md): # {{{
+ 
+ 		#Nothing for now
+@@ -43,20 +48,30 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.href','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','surfaceforcings.b_pos','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','surfaceforcings.b_neg','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)
+ 
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+ 
+ 		yts=365.0*24.0*3600.0
+ 
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgradientsEnum(),'format','Integer');
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'enum',SmbEnum(),'data',SMBgradientsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBcomponents.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBcomponents.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBcomponents.m	(revision 19527)
+@@ -8,6 +8,7 @@
+ 		accumulation = NaN;
+ 		runoff = NaN;
+ 		evaporation = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBcomponents(varargin) % {{{
+@@ -24,57 +25,74 @@
+ 			self.evaporation=project3d(md,'vector',self.evaporation,'type','node');
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++
++			list = {''};
++
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+ 
+ 			if isnan(self.accumulation)
+ 				self.accumulation=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.accumulation specified: values set as zero');
++				disp('      no smb.accumulation specified: values set as zero');
+ 			end
+ 			if isnan(self.evaporation)
+ 				self.evaporation=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.evaporation specified: values set as zero');
++				disp('      no smb.evaporation specified: values set as zero');
+ 			end
+ 			if isnan(self.runoff)
+ 				self.runoff=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.runoff specified: values set as zero');
++				disp('      no smb.runoff specified: values set as zero');
+ 			end
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.runoff','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.runoff','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters (SMB=accumulation-runoff-evaporation) :'));
+ 			fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]');
+ 			fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]');
+ 			fielddisplay(self,'evaporation','amount of ice lost to evaporative processes [m/yr ice eq]');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBcomponentsEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SmbEnum(),'data',SMBcomponentsEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19527)
+@@ -12,7 +12,7 @@
+ 
+ 		geometry         = 0;
+ 		constants        = 0;
+-		surfaceforcings  = 0;
++		smb              = 0;
+ 		basalforcings    = 0;
+ 		materials        = 0;
+ 		damage           = 0;
+@@ -105,11 +105,11 @@
+ 				md.outputdefinition=outputdefinition();
+ 			end
+ 			%2014 January 9th
+-			if isa(md.surfaceforcings,'surfaceforcings'),
+-				disp('Recovering old surfaceforcings class');
+-				mass_balance=md.surfaceforcings.mass_balance;
+-				md.surfaceforcings=SMB();
+-				md.surfaceforcings.mass_balance=mass_balance;
++			if isa(md.smb,'smb'),
++				disp('Recovering old smb class');
++				mass_balance=md.smb.mass_balance;
++				md.smb=SMBforcing();
++				md.smb.mass_balance=mass_balance;
+ 			end
+ 			%2014 March 26th
+ 			if isa(md.mesh,'mesh'),
+@@ -197,10 +197,10 @@
+ 			if ~isnan(md.inversion.cost_functions_coefficients), md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers); end;
+ 			if numel(md.inversion.min_parameters)>1, md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers); end;
+ 			if numel(md.inversion.max_parameters)>1, md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers); end;
+-			if isa(md.surfaceforcings,'SMB') & ~isnan(md.surfaceforcings.mass_balance),
+-				md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers); 
+-			elseif isa(md.surfaceforcings,'SMBhenning') & ~isnan(md.surfaceforcings.smbref),
+-				md.surfaceforcings.smbref=project2d(md,md.surfaceforcings.smbref,md.mesh.numberoflayers);
++			if isa(md.smb,'SMBforcing') & ~isnan(md.smb.mass_balance),
++				md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers); 
++			elseif isa(md.smb,'SMBhenning') & ~isnan(md.smb.smbref),
++				md.smb.smbref=project2d(md,md.smb.smbref,md.mesh.numberoflayers);
+ 			end;
+ 			if ~isnan(md.balancethickness.thickening_rate), md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers); end;
+ 
+@@ -741,7 +741,7 @@
+ 			md.geometry=extrude(md.geometry,md);
+ 			md.friction  = extrude(md.friction,md);
+ 			md.inversion = extrude(md.inversion,md);
+-			md.surfaceforcings = extrude(md.surfaceforcings,md);
++			md.smb = extrude(md.smb,md);
+ 			md.initialization = extrude(md.initialization,md);
+ 
+ 			md.flowequation=md.flowequation.extrude(md);
+@@ -791,7 +791,7 @@
+ 			if isfield(structmd,'melting'), md.basalforcings.floatingice_melting_rate=structmd.melting; end
+ 			if isfield(structmd,'melting_rate'), md.basalforcings.floatingice_melting_rate=structmd.melting_rate; end
+ 			if isfield(structmd,'melting_rate'), md.basalforcings.groundedice_melting_rate=structmd.melting_rate; end
+-			if isfield(structmd,'accumulation'), md.surfaceforcings.mass_balance=structmd.accumulation; end
++			if isfield(structmd,'accumulation'), md.smb.mass_balance=structmd.accumulation; end
+ 			if isfield(structmd,'numberofgrids'), md.mesh.numberofvertices=structmd.numberofgrids; end
+ 			if isfield(structmd,'numberofgrids2d'), md.mesh.numberofvertices2d=structmd.numberofgrids2d; end
+ 			if isfield(structmd,'uppergrids'), md.mesh.uppervertex=structmd.uppergrids; end
+@@ -803,7 +803,7 @@
+ 			if isfield(structmd,'petscoptions') & ~isempty(structmd.petscoptions), md.toolkits=structmd.petscoptions; end
+ 			if isfield(structmd,'g'), md.constants.g=structmd.g; end
+ 			if isfield(structmd,'yts'), md.constants.yts=structmd.yts; end
+-			if isfield(structmd,'surface_mass_balance'), md.surfaceforcings.mass_balance=structmd.surface_mass_balance; end
++			if isfield(structmd,'surface_mass_balance'), md.smb.mass_balance=structmd.surface_mass_balance; end
+ 			if isfield(structmd,'basal_melting_rate'), md.basalforcings.floatingice_melting_rate=structmd.basal_melting_rate; end
+ 			if isfield(structmd,'geothermalflux'), md.basalforcings.geothermalflux=structmd.geothermalflux; end
+ 			if isfield(structmd,'drag'), md.friction.coefficient=structmd.drag; end
+@@ -1048,7 +1048,7 @@
+ 			md.constants        = constants();
+ 			md.geometry         = geometry();
+ 			md.initialization   = initialization();
+-			md.surfaceforcings  = SMB();
++			md.smb              = SMBforcing();
+ 			md.basalforcings    = basalforcings();
+ 			md.friction         = friction();
+ 			md.rifts            = rifts();
+@@ -1217,7 +1217,7 @@
+ 			disp(sprintf('%19s: %-22s -- %s','mask'            ,['[1x1 ' class(self.mask) ']'],'defines grounded and floating elements'));
+ 			disp(sprintf('%19s: %-22s -- %s','geometry'        ,['[1x1 ' class(self.geometry) ']'],'surface elevation, bedrock topography, ice thickness,...'));
+ 			disp(sprintf('%19s: %-22s -- %s','constants'       ,['[1x1 ' class(self.constants) ']'],'physical constants'));
+-			disp(sprintf('%19s: %-22s -- %s','surfaceforcings' ,['[1x1 ' class(self.surfaceforcings) ']'],'surface forcings'));
++			disp(sprintf('%19s: %-22s -- %s','smb'             ,['[1x1 ' class(self.smb) ']'],'surface mass balance'));
+ 			disp(sprintf('%19s: %-22s -- %s','basalforcings'   ,['[1x1 ' class(self.basalforcings) ']'],'bed forcings'));
+ 			disp(sprintf('%19s: %-22s -- %s','materials'       ,['[1x1 ' class(self.materials) ']'],'material properties'));
+ 			disp(sprintf('%19s: %-22s -- %s','damage'          ,['[1x1 ' class(self.damage) ']'],'parameters for damage evolution solution'));
+Index: ../trunk-jpl/src/m/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/transient.py	(revision 19527)
+@@ -12,6 +12,7 @@
+ 	"""
+ 
+ 	def __init__(self): # {{{
++		self.issmb   = False
+ 		self.ismasstransport   = False
+ 		self.isstressbalance   = False
+ 		self.isthermal         = False
+@@ -29,6 +30,7 @@
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string='   transient solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'issmb','indicates if a surface mass balance solution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ismasstransport','indicates if a masstransport solution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isstressbalance','indicates if a stressbalance solution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isthermal','indicates if a thermal solution is used in the transient'))
+@@ -43,8 +45,8 @@
+ 		#}}}
+ 	def defaultoutputs(self,md): # {{{
+ 
+-		if self.ismasstransport:
+-			return ['SurfaceforcingsMassBalance']
++		if self.issmb:
++			return ['SmbMassBalance']
+ 		else:
+ 			return []
+ 
+@@ -52,6 +54,7 @@
+ 	def setallnullparameters(self): # {{{
+ 		
+ 		#Nothing done
++		self.issmb   = False
+ 		self.ismasstransport   = False
+ 		self.isstressbalance   = False
+ 		self.isthermal         = False
+@@ -69,6 +72,7 @@
+ 	def setdefaultparameters(self): # {{{
+ 		
+ 		#full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++		self.issmb = True
+ 		self.ismasstransport = True
+ 		self.isstressbalance = True
+ 		self.isthermal       = True
+@@ -89,6 +93,7 @@
+ 		if not solution==TransientSolutionEnum():
+ 			return md
+ 
++		md = checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0,1])
+@@ -103,6 +108,7 @@
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','issmb','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','ismasstransport','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isstressbalance','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean')
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19527)
+@@ -23,6 +23,7 @@
+ 		temperatures_lgm          = NaN;
+ 		precipitations_presentday = NaN;
+ 		precipitations_lgm        = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBpdd(varargin) % {{{
+@@ -48,6 +49,9 @@
+ 			self.s0t=project3d(md,'vector',self.s0t,'type','node');
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++			list = {''};
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+                     
+ 			if isnan(self.s0p),
+@@ -72,33 +76,35 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','surfaceforcings.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','surfaceforcings.rlaps','>=',0,'numel',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.rlapslgm','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
++				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
++				md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
+ 				if(self.isdelta18o==0 & self.ismungsm==0)
+-					md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','timeseries',1,'NaN',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitation','timeseries',1,'NaN',1);
++					md = checkfield(md,'fieldname','smb.monthlytemperatures','timeseries',1,'NaN',1);
++					md = checkfield(md,'fieldname','smb.precipitation','timeseries',1,'NaN',1);
+ 				elseif(self.isdelta18o==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 				elseif(self.ismungsm==1) 
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','surfaceforcings.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','surfaceforcings.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
+ 				end
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++			
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters:'));
+@@ -132,43 +138,54 @@
+ 				fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated');
+ 				fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated');
+ 			end
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBpddEnum(),'format','Integer');
++			WriteData(fid,'enum',SmbEnum(),'data',SMBpddEnum(),'format','Integer');
+ 
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','isdelta18o','format','Boolean');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','ismungsm','format','Boolean');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','desfac','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0p','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','s0t','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlaps','format','Double');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','rlapslgm','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double');
+ 
+ 			if(self.isdelta18o==0 & self.ismungsm==0)
+-				%WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				%WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			elseif self.isdelta18o
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 			elseif self.ismungsm
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
+-				WriteData(fid,'object',self,'class','surfaceforcings','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2);
++				WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2);
+ 			end
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBcomponents.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBcomponents.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBcomponents.py	(revision 19527)
+@@ -16,12 +16,14 @@
+ 		self.accumulation = float('NaN')
+ 		self.runoff = float('NaN')
+ 		self.evaporation = float('NaN')
++		self.requested_outputs      = []
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string="   surface forcings parameters (SMB=accumulation-runoff-evaporation) :"
+ 		string="%s\n%s"%(string,fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+@@ -31,6 +33,9 @@
+ 		self.mass_balance=project3d(md,'vector',self.evaporation,'type','node');
+ 		return self
+ 	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
+ 	def initialize(self,md): # {{{
+ 
+ 		if numpy.all(numpy.isnan(self.accumulation)):
+@@ -50,22 +55,24 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.runoff','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.runoff','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++		
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 
+ 		return md
+ 	# }}}
+@@ -73,8 +80,17 @@
+ 
+ 		yts=365.0*24.0*3600.0
+ 
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBcomponentsEnum(),'format','Integer');
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'enum',SmbEnum(),'data',SMBcomponentsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBmeltcomponents.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBmeltcomponents.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBmeltcomponents.m	(revision 19527)
+@@ -9,6 +9,7 @@
+ 		evaporation = NaN;
+ 		melt = NaN;
+ 		refreeze = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBmeltcomponents(varargin) % {{{
+@@ -26,52 +27,56 @@
+ 			self.refreeze=project3d(md,'vector',self.refreeze,'type','node');
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++			list = {''};
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+ 
+ 			if isnan(self.accumulation)
+ 				self.accumulation=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.accumulation specified: values set as zero');
++				disp('      no smb.accumulation specified: values set as zero');
+ 			end
+ 			if isnan(self.evaporation)
+ 				self.evaporation=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.evaporation specified: values set as zero');
++				disp('      no smb.evaporation specified: values set as zero');
+ 			end
+ 			if isnan(self.refreeze)
+ 				self.refreeze=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.refreeze specified: values set as zero');
++				disp('      no smb.refreeze specified: values set as zero');
+ 			end
+ 			if isnan(self.melt)
+ 				self.melt=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.melt specified: values set as zero');
++				disp('      no smb.melt specified: values set as zero');
+ 			end
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.accumulation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.evaporation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.refreeze','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.melt','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.melt','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters with melt (SMB=accumulation-evaporation-melt+refreeze) :'));
+@@ -79,16 +84,27 @@
+ 			fielddisplay(self,'evaporation','amount of ice lost to evaporative processes [m/yr ice eq]');
+ 			fielddisplay(self,'melt','amount of ice melt in ice column [m/yr ice eq]');
+ 			fielddisplay(self,'refreeze','amount of ice melt refrozen in ice column [m/yr ice eq]');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SmbEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBgradients.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgradients.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBgradients.m	(revision 19527)
+@@ -9,6 +9,7 @@
+ 		smbref = NaN;
+ 		b_pos  = NaN;
+ 		b_neg  = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBgradients(varargin) % {{{
+@@ -24,6 +25,9 @@
+ 			%Nothing for now
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++			list = {''};
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+ 
+ 			%Nothing done for now
+@@ -37,11 +41,12 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.href','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.b_pos','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','surfaceforcings.b_neg','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1);
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters:'));
+@@ -51,17 +56,27 @@
+ 			fielddisplay(self,'smbref',' reference smb from which deviation is calculated in smb gradients method [mm/yr water equiv]');
+ 			fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated');
+ 			fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgradientsEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SmbEnum(),'data',SMBgradientsEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19527)
+@@ -0,0 +1,76 @@
++%SMBforcing Class definition
++%
++%   Usage:
++%      SMB=SMBforcing();
++
++classdef SMBforcing
++	properties (SetAccess=public) 
++		mass_balance = NaN;
++		requested_outputs      = {};
++	end
++	methods
++        function createxml(self,fid) % {{{
++            fprintf(fid, '\n\n');
++            fprintf(fid, '%s\n', '<!-- smb(SMBforcing) -->');
++			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="mass_balance" type="',class(self.mass_balance),'" default="',self.mass_balance,'">','     <section name="smb(SMBforcing)" />','     <help> surface mass balance [m/yr ice eq] </help>','</parameter>');
++           
++        end % }}}
++		function self = SMBforcing(varargin) % {{{
++			switch nargin
++				case 0
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++
++			list = {''};
++
++		end % }}}
++		function self = extrude(self,md) % {{{
++
++			self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node');
++
++		end % }}}
++		function self = initialize(self,md) % {{{
++
++			if isnan(self.mass_balance)
++				self.mass_balance=zeros(md.mesh.numberofvertices,1);
++				disp('      no smb.mass_balance specified: values set as zero');
++			end
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ismember(MasstransportAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1);
++			end
++			if ismember(BalancethicknessAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
++			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   surface forcings parameters:'));
++			fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',SmbEnum(),'data',SMBforcingEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 19526)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 19527)
+@@ -7,7 +7,7 @@
+ from mask import mask
+ from geometry import geometry
+ from constants import constants
+-from SMB import SMB
++from SMBforcing import SMBforcing
+ from SMBpdd import SMBpdd
+ from SMBd18opdd import SMBd18opdd
+ from SMBgradients import SMBgradients
+@@ -75,7 +75,7 @@
+ 		self.mask             = mask()
+ 		self.geometry         = geometry()
+ 		self.constants        = constants()
+-		self.surfaceforcings  = SMB()
++		self.smb              = SMBforcing()
+ 		self.basalforcings    = basalforcings()
+ 		self.materials        = matice()
+ 		self.damage           = damage()
+@@ -119,7 +119,7 @@
+ 		        'mask',\
+ 		        'geometry',\
+ 		        'constants',\
+-		        'surfaceforcings',\
++		        'smb',\
+ 		        'basalforcings',\
+ 		        'materials',\
+ 		        'damage',\
+@@ -159,7 +159,7 @@
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
+-		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("surfaceforcings","[%s,%s]" % ("1x1",obj.surfaceforcings.__class__.__name__),"surface forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface mass balance"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
+@@ -608,7 +608,7 @@
+ 		md.geometry.extrude(md)
+ 		md.friction.extrude(md)
+ 		md.inversion.extrude(md)
+-		md.surfaceforcings.extrude(md)
++		md.smb.extrude(md)
+ 		md.initialization.extrude(md)
+ 		md.flowequation.extrude(md)
+ 
+@@ -673,8 +673,8 @@
+                     if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers) 
+                 if isinstance(md.inversion.max_parameters,numpy.ndarray):
+ 		    if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers) 
+-		if not numpy.isnan(md.surfaceforcings.mass_balance).all():
+-			md.surfaceforcings.mass_balance=project2d(md,md.surfaceforcings.mass_balance,md.mesh.numberoflayers) 
++		if not numpy.isnan(md.smb.mass_balance).all():
++			md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers) 
+ 		
+ 		if not numpy.isnan(md.balancethickness.thickening_rate).all(): md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers) 
+ 
+Index: ../trunk-jpl/src/m/classes/SMBhenning.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBhenning.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBhenning.m	(revision 19527)
+@@ -6,6 +6,7 @@
+ classdef SMBhenning
+ 	properties (SetAccess=public) 
+ 		smbref = NaN;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = SMBhenning(varargin) % {{{
+@@ -20,33 +21,48 @@
+ 			self.smbref=project3d(md,'vector',self.smbref,'type','node');
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++			list = {''};
++		end % }}}
+ 		function self = initialize(self,md) % {{{
+ 
+ 			if isnan(self.smbref)
+ 				self.smbref=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.smbref specified: values set as zero');
++				disp('      no smb.smbref specified: values set as zero');
+ 			end
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.smbref','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.smbref','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.smbref','size',[md.mesh.numberofvertices 1],'NaN',1);
+ 			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   surface forcings parameters:'));
+ 			fielddisplay(self,'smbref','reference smb from which deviation is calculated [m/yr ice eq]');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBhenningEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SmbEnum(),'data',SMBhenningEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19526)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19527)
+@@ -13,11 +13,10 @@
+ 		%of time steps. )
+ 
+ 		%inputs: 
+-		Ta    = NaN; %2 m air temperature, in Celsius
++		Ta    = NaN; %2 m air temperature, in Kelvin
+ 		V     = NaN; %wind speed (m/s-1)
+ 		dswrf = NaN; %downward shortwave radiation flux [W/m^2]
+ 		dlwrf = NaN; %downward longwave radiation flux [W/m^2]
+-		RH    = NaN; %relative humidity [%]
+ 		P     = NaN; %precipitation [mm w.e. / m^2]
+ 		eAir  = NaN; %screen level vapor pressure [Pa]
+ 		pAir  = NaN; %surface pressure [Pa]
+@@ -61,6 +60,8 @@
+ 		t0wet = NaN; % time scale for wet snow (15-21.9) 
+ 		t0dry = NaN; % warm snow timescale (30) 
+ 		K     = NaN; % time scale temperature coef. (7) 
++		
++		requested_outputs      = {};
+ 
+ 		%Several fields are missing from the standard GEMB model, which are capture intrinsically by ISSM. 
+ 		%dateN: that's the last row of the above fields. 
+@@ -76,7 +77,7 @@
+ 					geometry=varargin{2}; 
+ 					self=setdefaultparameters(self,mesh,geometry);
+ 				otherwise
+-					error('constructor not supported');
++					error('constructor not supported: need geometry and mesh to set defaults');
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+@@ -85,12 +86,14 @@
+ 			self.V=project3d(md,'vector',self.V,'type','node');
+ 			self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
+ 			self.dswrf=project3d(md,'vector',self.dswrf,'type','node');
+-			self.RH=project3d(md,'vector',self.RH,'type','node');
+ 			self.P=project3d(md,'vector',self.P,'type','node');
+ 			self.eAir=project3d(md,'vector',self.eAir,'type','node');
+ 			self.pAir=project3d(md,'vector',self.pAir,'type','node');
+ 
+ 		end % }}}
++		function list = defaultoutputs(self,md) % {{{
++			list = {'SmbMassBalance'};
++		end % }}}
+ 		function self = setdefaultparameters(self,mesh,geometry) % {{{
+ 
+ 		
+@@ -119,30 +122,29 @@
+ 		end % }}}
+ function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','surfaceforcings.Ta','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.V','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.dswrf','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.dlwrf','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.RH','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.P','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','surfaceforcings.eAir','timeseries',1,'NaN',1);
+-			
+-			%check zTop is < local thickness:
+-			he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
+-			if any(he<self.zTop),
+-				error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
+-			end
++		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',0,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
+ 
++		%check zTop is < local thickness:
++		he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
++		if any(he<self.zTop),
++			error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
++		end
++		md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			
+ 			disp(sprintf('   surface forcings for SMB GEMB model :'));
+ 			
+-			fielddisplay(self,'Ta','2 m air temperature, in Celsius');
++			fielddisplay(self,'Ta','2 m air temperature, in Kelvin');
+ 			fielddisplay(self,'V','wind speed (m/s-1)');
+ 			fielddisplay(self,'dlwrf','downward shortwave radiation flux [W/m^2]');
+ 			fielddisplay(self,'dswrf','downward longwave radiation flux [W/m^2]');
+-			fielddisplay(self,'RH','relative humidity [%]');
+ 			fielddisplay(self,'P','precipitation [mm w.e. / m^2]');
+ 			fielddisplay(self,'eAir','screen level vapor pressure [Pa]');
+ 			fielddisplay(self,'pAir','surface pressure [Pa]');
+@@ -183,6 +185,7 @@
+ 									'3 = DO NOT USE: physical model from Appendix B of Anthern et al. (2010)',...
+ 									'4 = DO NOT USE: emperical model of Li and Zwally (2004)',...
+ 									'5 = DO NOT USE: modified emperical model (4) by Helsen et al. (2008)'});
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 									
+ 			
+ 		end % }}}
+@@ -190,10 +193,20 @@
+ 
+ 			yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBgembEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/contrib/netCDF/ClassTry.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/netCDF/ClassTry.py	(revision 19526)
++++ ../trunk-jpl/src/m/contrib/netCDF/ClassTry.py	(revision 19527)
+@@ -46,7 +46,7 @@
+ 		        'mask':'mask',\
+ 		        'geometry':'geometry',\
+ 		        'constants':'constants',\
+-		        'surfaceforcings':'SMB',\
++		        'smb':'SMB',\
+ 		        'basalforcings':'basalforcings',\
+ 		        'materials':'matice',\
+ 		        'damage':'damage',\
+@@ -87,7 +87,7 @@
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
+-		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("surfaceforcings","[%s,%s]" % ("1x1",obj.surfaceforcings.__class__.__name__),"surface forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
+Index: ../trunk-jpl/src/m/contrib/hack/tres.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/hack/tres.m	(revision 19526)
++++ ../trunk-jpl/src/m/contrib/hack/tres.m	(revision 19527)
+@@ -106,9 +106,9 @@
+ 		case VyEnum(), string='vy'; return
+ 		case InversionVyObsEnum(), string='vy_obs'; return
+ 		case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return
+-		case SurfaceforcingsAccumulationRateEnum(), string='surface_accumulation_rate'; return
+-		case SurfaceforcingsAblationRateEnum(), string='surface_ablation_rate'; return
+-		case SurfaceforcingsMassBalanceEnum(), string='surface_mass_balance'; return
++		case SmbAccumulationRateEnum(), string='surface_accumulation_rate'; return
++		case SmbAblationRateEnum(), string='surface_ablation_rate'; return
++		case SmbMassBalanceEnum(), string='surface_mass_balance'; return
+ 		otherwise, error(['Enum ' num2str(enum)  ' not found associated to any model field']);
+ 
+ 		end
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesLgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesLgmEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesLgmEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsTemperaturesLgmEnum()
+-%SURFACEFORCINGSTEMPERATURESLGMENUM - Enum of SurfaceforcingsTemperaturesLgm
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsTemperaturesLgmEnum()
+-
+-macro=StringToEnum('SurfaceforcingsTemperaturesLgm');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIsdelta18oEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIsdelta18oEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIsdelta18oEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsIsdelta18oEnum()
+-%SURFACEFORCINGSISDELTA18OENUM - Enum of SurfaceforcingsIsdelta18o
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsIsdelta18oEnum()
+-
+-macro=StringToEnum('SurfaceforcingsIsdelta18o');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesPresentdayEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesPresentdayEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesPresentdayEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsTemperaturesPresentdayEnum()
+-%SURFACEFORCINGSTEMPERATURESPRESENTDAYENUM - Enum of SurfaceforcingsTemperaturesPresentday
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsTemperaturesPresentdayEnum()
+-
+-macro=StringToEnum('SurfaceforcingsTemperaturesPresentday');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsDelta18oEnum()
+-%SURFACEFORCINGSDELTA18OENUM - Enum of SurfaceforcingsDelta18o
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsDelta18oEnum()
+-
+-macro=StringToEnum('SurfaceforcingsDelta18o');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsEvaporationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsEvaporationEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsEvaporationEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsEvaporationEnum()
+-%SURFACEFORCINGSEVAPORATIONENUM - Enum of SurfaceforcingsEvaporation
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsEvaporationEnum()
+-
+-macro=StringToEnum('SurfaceforcingsEvaporation');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsTdiffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsTdiffEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsTdiffEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsTdiffEnum()
+-%SURFACEFORCINGSTDIFFENUM - Enum of SurfaceforcingsTdiff
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsTdiffEnum()
+-
+-macro=StringToEnum('SurfaceforcingsTdiff');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsMeltEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsMeltEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsMeltEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsMeltEnum()
+-%SURFACEFORCINGSMELTENUM - Enum of SurfaceforcingsMelt
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsMeltEnum()
+-
+-macro=StringToEnum('SurfaceforcingsMelt');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsPrecipitationEnum()
+-%SURFACEFORCINGSPRECIPITATIONENUM - Enum of SurfaceforcingsPrecipitation
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsPrecipitationEnum()
+-
+-macro=StringToEnum('SurfaceforcingsPrecipitation');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsSmbrefEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsSmbrefEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsSmbrefEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsSmbrefEnum()
+-%SURFACEFORCINGSSMBREFENUM - Enum of SurfaceforcingsSmbref
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsSmbrefEnum()
+-
+-macro=StringToEnum('SurfaceforcingsSmbref');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsRunoffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsRunoffEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsRunoffEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsRunoffEnum()
+-%SURFACEFORCINGSRUNOFFENUM - Enum of SurfaceforcingsRunoff
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsRunoffEnum()
+-
+-macro=StringToEnum('SurfaceforcingsRunoff');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsBPosEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsBPosEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsBPosEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsBPosEnum()
+-%SURFACEFORCINGSBPOSENUM - Enum of SurfaceforcingsBPos
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsBPosEnum()
+-
+-macro=StringToEnum('SurfaceforcingsBPos');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsRlapslgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsRlapslgmEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsRlapslgmEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsRlapslgmEnum()
+-%SURFACEFORCINGSRLAPSLGMENUM - Enum of SurfaceforcingsRlapslgm
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsRlapslgmEnum()
+-
+-macro=StringToEnum('SurfaceforcingsRlapslgm');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsBNegEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsBNegEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsBNegEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsBNegEnum()
+-%SURFACEFORCINGSBNEGENUM - Enum of SurfaceforcingsBNeg
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsBNegEnum()
+-
+-macro=StringToEnum('SurfaceforcingsBNeg');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsRlapsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsRlapsEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsRlapsEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsRlapsEnum()
+-%SURFACEFORCINGSRLAPSENUM - Enum of SurfaceforcingsRlaps
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsRlapsEnum()
+-
+-macro=StringToEnum('SurfaceforcingsRlaps');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsMonthlytemperaturesEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsMonthlytemperaturesEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsMonthlytemperaturesEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsMonthlytemperaturesEnum()
+-%SURFACEFORCINGSMONTHLYTEMPERATURESENUM - Enum of SurfaceforcingsMonthlytemperatures
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsMonthlytemperaturesEnum()
+-
+-macro=StringToEnum('SurfaceforcingsMonthlytemperatures');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIssmbgradientsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIssmbgradientsEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIssmbgradientsEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsIssmbgradientsEnum()
+-%SURFACEFORCINGSISSMBGRADIENTSENUM - Enum of SurfaceforcingsIssmbgradients
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsIssmbgradientsEnum()
+-
+-macro=StringToEnum('SurfaceforcingsIssmbgradients');
+Index: ../trunk-jpl/src/m/enum/SMBEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SMBEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SMBEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SMBEnum()
+-%SMBENUM - Enum of SMB
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SMBEnum()
+-
+-macro=StringToEnum('SMB');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsS0tEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsS0tEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsS0tEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsS0tEnum()
+-%SURFACEFORCINGSS0TENUM - Enum of SurfaceforcingsS0t
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsS0tEnum()
+-
+-macro=StringToEnum('SurfaceforcingsS0t');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsPfacEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsPfacEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsPfacEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsPfacEnum()
+-%SURFACEFORCINGSPFACENUM - Enum of SurfaceforcingsPfac
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsPfacEnum()
+-
+-macro=StringToEnum('SurfaceforcingsPfac');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsMassBalanceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsMassBalanceEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsMassBalanceEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsMassBalanceEnum()
+-%SURFACEFORCINGSMASSBALANCEENUM - Enum of SurfaceforcingsMassBalance
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsMassBalanceEnum()
+-
+-macro=StringToEnum('SurfaceforcingsMassBalance');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oSurfaceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oSurfaceEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsDelta18oSurfaceEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsDelta18oSurfaceEnum()
+-%SURFACEFORCINGSDELTA18OSURFACEENUM - Enum of SurfaceforcingsDelta18oSurface
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsDelta18oSurfaceEnum()
+-
+-macro=StringToEnum('SurfaceforcingsDelta18oSurface');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsDpermilEnum()
+-%SURFACEFORCINGSDPERMILENUM - Enum of SurfaceforcingsDpermil
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsDpermilEnum()
+-
+-macro=StringToEnum('SurfaceforcingsDpermil');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsPresentdayEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsPresentdayEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsPresentdayEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsPrecipitationsPresentdayEnum()
+-%SURFACEFORCINGSPRECIPITATIONSPRESENTDAYENUM - Enum of SurfaceforcingsPrecipitationsPresentday
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsPrecipitationsPresentdayEnum()
+-
+-macro=StringToEnum('SurfaceforcingsPrecipitationsPresentday');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsAccumulationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsAccumulationEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsAccumulationEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsAccumulationEnum()
+-%SURFACEFORCINGSACCUMULATIONENUM - Enum of SurfaceforcingsAccumulation
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsAccumulationEnum()
+-
+-macro=StringToEnum('SurfaceforcingsAccumulation');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsLgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsLgmEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsLgmEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsPrecipitationsLgmEnum()
+-%SURFACEFORCINGSPRECIPITATIONSLGMENUM - Enum of SurfaceforcingsPrecipitationsLgm
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsPrecipitationsLgmEnum()
+-
+-macro=StringToEnum('SurfaceforcingsPrecipitationsLgm');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsHrefEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsHrefEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsHrefEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsHrefEnum()
+-%SURFACEFORCINGSHREFENUM - Enum of SurfaceforcingsHref
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsHrefEnum()
+-
+-macro=StringToEnum('SurfaceforcingsHref');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsS0pEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsS0pEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsS0pEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsS0pEnum()
+-%SURFACEFORCINGSS0PENUM - Enum of SurfaceforcingsS0p
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsS0pEnum()
+-
+-macro=StringToEnum('SurfaceforcingsS0p');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsDesfacEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsDesfacEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsDesfacEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsDesfacEnum()
+-%SURFACEFORCINGSDESFACENUM - Enum of SurfaceforcingsDesfac
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsDesfacEnum()
+-
+-macro=StringToEnum('SurfaceforcingsDesfac');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIspddEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIspddEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIspddEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsIspddEnum()
+-%SURFACEFORCINGSISPDDENUM - Enum of SurfaceforcingsIspdd
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsIspddEnum()
+-
+-macro=StringToEnum('SurfaceforcingsIspdd');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsIsd18opdEnum()
+-%SURFACEFORCINGSISD18OPDENUM - Enum of SurfaceforcingsIsd18opd
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsIsd18opdEnum()
+-
+-macro=StringToEnum('SurfaceforcingsIsd18opd');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsIsmungsmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsIsmungsmEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsIsmungsmEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsIsmungsmEnum()
+-%SURFACEFORCINGSISMUNGSMENUM - Enum of SurfaceforcingsIsmungsm
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsIsmungsmEnum()
+-
+-macro=StringToEnum('SurfaceforcingsIsmungsm');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsSealevEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsSealevEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsSealevEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsSealevEnum()
+-%SURFACEFORCINGSSEALEVENUM - Enum of SurfaceforcingsSealev
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsSealevEnum()
+-
+-macro=StringToEnum('SurfaceforcingsSealev');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsRefreezeEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsRefreezeEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsRefreezeEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsRefreezeEnum()
+-%SURFACEFORCINGSREFREEZEENUM - Enum of SurfaceforcingsRefreeze
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsRefreezeEnum()
+-
+-macro=StringToEnum('SurfaceforcingsRefreeze');
+Index: ../trunk-jpl/src/m/enum/SurfaceforcingsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SurfaceforcingsEnum.m	(revision 19526)
++++ ../trunk-jpl/src/m/enum/SurfaceforcingsEnum.m	(revision 19527)
+@@ -1,11 +0,0 @@
+-function macro=SurfaceforcingsEnum()
+-%SURFACEFORCINGSENUM - Enum of Surfaceforcings
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SurfaceforcingsEnum()
+-
+-macro=StringToEnum('Surfaceforcings');
+Index: ../trunk-jpl/src/m/enum/SmbRefreezeEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbRefreezeEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbRefreezeEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbRefreezeEnum()
++%SMBREFREEZEENUM - Enum of SmbRefreeze
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbRefreezeEnum()
++
++macro=StringToEnum('SmbRefreeze');
+Index: ../trunk-jpl/src/m/enum/SmbEvaporationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbEvaporationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbEvaporationEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbEvaporationEnum()
++%SMBEVAPORATIONENUM - Enum of SmbEvaporation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbEvaporationEnum()
++
++macro=StringToEnum('SmbEvaporation');
+Index: ../trunk-jpl/src/m/enum/SmbDesfacEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDesfacEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDesfacEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbDesfacEnum()
++%SMBDESFACENUM - Enum of SmbDesfac
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDesfacEnum()
++
++macro=StringToEnum('SmbDesfac');
+Index: ../trunk-jpl/src/m/enum/SmbIsdelta18oEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsdelta18oEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsdelta18oEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbIsdelta18oEnum()
++%SMBISDELTA18OENUM - Enum of SmbIsdelta18o
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsdelta18oEnum()
++
++macro=StringToEnum('SmbIsdelta18o');
+Index: ../trunk-jpl/src/m/enum/SmbSealevEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSealevEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSealevEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbSealevEnum()
++%SMBSEALEVENUM - Enum of SmbSealev
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSealevEnum()
++
++macro=StringToEnum('SmbSealev');
+Index: ../trunk-jpl/src/m/enum/SmbIspddEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIspddEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIspddEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbIspddEnum()
++%SMBISPDDENUM - Enum of SmbIspdd
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIspddEnum()
++
++macro=StringToEnum('SmbIspdd');
+Index: ../trunk-jpl/src/m/enum/SmbHrefEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbHrefEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbHrefEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbHrefEnum()
++%SMBHREFENUM - Enum of SmbHref
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbHrefEnum()
++
++macro=StringToEnum('SmbHref');
+Index: ../trunk-jpl/src/m/enum/SMBforcingEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SMBforcingEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SMBforcingEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SMBforcingEnum()
++%SMBFORCINGENUM - Enum of SMBforcing
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SMBforcingEnum()
++
++macro=StringToEnum('SMBforcing');
+Index: ../trunk-jpl/src/m/enum/SmbRequestedOutputsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbRequestedOutputsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbRequestedOutputsEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbRequestedOutputsEnum()
++%SMBREQUESTEDOUTPUTSENUM - Enum of SmbRequestedOutputs
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbRequestedOutputsEnum()
++
++macro=StringToEnum('SmbRequestedOutputs');
+Index: ../trunk-jpl/src/m/enum/SmbIssmbgradientsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIssmbgradientsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIssmbgradientsEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbIssmbgradientsEnum()
++%SMBISSMBGRADIENTSENUM - Enum of SmbIssmbgradients
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIssmbgradientsEnum()
++
++macro=StringToEnum('SmbIssmbgradients');
+Index: ../trunk-jpl/src/m/enum/SmbDelta18oEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDelta18oEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDelta18oEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbDelta18oEnum()
++%SMBDELTA18OENUM - Enum of SmbDelta18o
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDelta18oEnum()
++
++macro=StringToEnum('SmbDelta18o');
+Index: ../trunk-jpl/src/m/enum/SmbNumRequestedOutputsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbNumRequestedOutputsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbNumRequestedOutputsEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbNumRequestedOutputsEnum()
++%SMBNUMREQUESTEDOUTPUTSENUM - Enum of SmbNumRequestedOutputs
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbNumRequestedOutputsEnum()
++
++macro=StringToEnum('SmbNumRequestedOutputs');
+Index: ../trunk-jpl/src/m/enum/SmbS0pEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbS0pEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbS0pEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbS0pEnum()
++%SMBS0PENUM - Enum of SmbS0p
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbS0pEnum()
++
++macro=StringToEnum('SmbS0p');
+Index: ../trunk-jpl/src/m/enum/SmbDelta18oSurfaceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDelta18oSurfaceEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDelta18oSurfaceEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbDelta18oSurfaceEnum()
++%SMBDELTA18OSURFACEENUM - Enum of SmbDelta18oSurface
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDelta18oSurfaceEnum()
++
++macro=StringToEnum('SmbDelta18oSurface');
+Index: ../trunk-jpl/src/m/enum/SmbPrecipitationsLgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPrecipitationsLgmEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPrecipitationsLgmEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbPrecipitationsLgmEnum()
++%SMBPRECIPITATIONSLGMENUM - Enum of SmbPrecipitationsLgm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPrecipitationsLgmEnum()
++
++macro=StringToEnum('SmbPrecipitationsLgm');
+Index: ../trunk-jpl/src/m/enum/SmbTemperaturesPresentdayEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTemperaturesPresentdayEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTemperaturesPresentdayEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbTemperaturesPresentdayEnum()
++%SMBTEMPERATURESPRESENTDAYENUM - Enum of SmbTemperaturesPresentday
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTemperaturesPresentdayEnum()
++
++macro=StringToEnum('SmbTemperaturesPresentday');
+Index: ../trunk-jpl/src/m/enum/SmbRlapslgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbRlapslgmEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbRlapslgmEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbRlapslgmEnum()
++%SMBRLAPSLGMENUM - Enum of SmbRlapslgm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbRlapslgmEnum()
++
++macro=StringToEnum('SmbRlapslgm');
+Index: ../trunk-jpl/src/m/enum/TransientIssmbEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIssmbEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TransientIssmbEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=TransientIssmbEnum()
++%TRANSIENTISSMBENUM - Enum of TransientIssmb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TransientIssmbEnum()
++
++macro=StringToEnum('TransientIssmb');
+Index: ../trunk-jpl/src/m/enum/SmbSmbrefEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSmbrefEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSmbrefEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbSmbrefEnum()
++%SMBSMBREFENUM - Enum of SmbSmbref
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSmbrefEnum()
++
++macro=StringToEnum('SmbSmbref');
+Index: ../trunk-jpl/src/m/enum/SmbTdiffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTdiffEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTdiffEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbTdiffEnum()
++%SMBTDIFFENUM - Enum of SmbTdiff
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTdiffEnum()
++
++macro=StringToEnum('SmbTdiff');
+Index: ../trunk-jpl/src/m/enum/SmbRunoffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbRunoffEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbRunoffEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbRunoffEnum()
++%SMBRUNOFFENUM - Enum of SmbRunoff
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbRunoffEnum()
++
++macro=StringToEnum('SmbRunoff');
+Index: ../trunk-jpl/src/m/enum/SmbMeltEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbMeltEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbMeltEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbMeltEnum()
++%SMBMELTENUM - Enum of SmbMelt
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbMeltEnum()
++
++macro=StringToEnum('SmbMelt');
+Index: ../trunk-jpl/src/m/enum/SmbMassBalanceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbMassBalanceEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbMassBalanceEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbMassBalanceEnum()
++%SMBMASSBALANCEENUM - Enum of SmbMassBalance
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbMassBalanceEnum()
++
++macro=StringToEnum('SmbMassBalance');
+Index: ../trunk-jpl/src/m/enum/SmbAccumulationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbAccumulationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbAccumulationEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbAccumulationEnum()
++%SMBACCUMULATIONENUM - Enum of SmbAccumulation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbAccumulationEnum()
++
++macro=StringToEnum('SmbAccumulation');
+Index: ../trunk-jpl/src/m/enum/SmbBPosEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbBPosEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbBPosEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbBPosEnum()
++%SMBBPOSENUM - Enum of SmbBPos
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbBPosEnum()
++
++macro=StringToEnum('SmbBPos');
+Index: ../trunk-jpl/src/m/enum/SmbBNegEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbBNegEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbBNegEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbBNegEnum()
++%SMBBNEGENUM - Enum of SmbBNeg
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbBNegEnum()
++
++macro=StringToEnum('SmbBNeg');
+Index: ../trunk-jpl/src/m/enum/list2
+===================================================================
+--- ../trunk-jpl/src/m/enum/list2	(revision 0)
++++ ../trunk-jpl/src/m/enum/list2	(revision 19527)
+@@ -0,0 +1,34 @@
++SurfaceforcingsHrefEnum.m
++SurfaceforcingsDesfacEnum.m
++SurfaceforcingsIsd18opdEnum.m
++SurfaceforcingsIsmungsmEnum.m
++SurfaceforcingsSealevEnum.m
++SurfaceforcingsRlapsEnum.m
++SurfaceforcingsRefreezeEnum.m
++SurfaceforcingsEnum.m
++SurfaceforcingsMonthlytemperaturesEnum.m
++SurfaceforcingsS0tEnum.m
++SurfaceforcingsMassBalanceEnum.m
++SurfaceforcingsIsdelta18oEnum.m
++SurfaceforcingsTemperaturesPresentdayEnum.m
++SurfaceforcingsDelta18oEnum.m
++SurfaceforcingsDelta18oSurfaceEnum.m
++SurfaceforcingsDpermilEnum.m
++SurfaceforcingsMeltEnum.m
++SurfaceforcingsSmbrefEnum.m
++SurfaceforcingsRunoffEnum.m
++SurfaceforcingsBPosEnum.m
++SurfaceforcingsRlapslgmEnum.m
++SurfaceforcingsPrecipitationsLgmEnum.m
++SurfaceforcingsBNegEnum.m
++SurfaceforcingsS0pEnum.m
++SurfaceforcingsIspddEnum.m
++SurfaceforcingsIssmbgradientsEnum.m
++SMBEnum.m
++SurfaceforcingsTemperaturesLgmEnum.m
++SurfaceforcingsPfacEnum.m
++SurfaceforcingsEvaporationEnum.m
++SurfaceforcingsPrecipitationsPresentdayEnum.m
++SurfaceforcingsTdiffEnum.m
++SurfaceforcingsPrecipitationEnum.m
++SurfaceforcingsAccumulationEnum.m
+Index: ../trunk-jpl/src/m/enum/SmbRlapsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbRlapsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbRlapsEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbRlapsEnum()
++%SMBRLAPSENUM - Enum of SmbRlaps
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbRlapsEnum()
++
++macro=StringToEnum('SmbRlaps');
+Index: ../trunk-jpl/src/m/enum/SmbSolutionEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSolutionEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSolutionEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbSolutionEnum()
++%SMBSOLUTIONENUM - Enum of SmbSolution
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSolutionEnum()
++
++macro=StringToEnum('SmbSolution');
+Index: ../trunk-jpl/src/m/enum/SmbPrecipitationsPresentdayEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPrecipitationsPresentdayEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPrecipitationsPresentdayEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbPrecipitationsPresentdayEnum()
++%SMBPRECIPITATIONSPRESENTDAYENUM - Enum of SmbPrecipitationsPresentday
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPrecipitationsPresentdayEnum()
++
++macro=StringToEnum('SmbPrecipitationsPresentday');
+Index: ../trunk-jpl/src/m/enum/SmbTemperaturesLgmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTemperaturesLgmEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTemperaturesLgmEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbTemperaturesLgmEnum()
++%SMBTEMPERATURESLGMENUM - Enum of SmbTemperaturesLgm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTemperaturesLgmEnum()
++
++macro=StringToEnum('SmbTemperaturesLgm');
+Index: ../trunk-jpl/src/m/enum/SmbDpermilEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDpermilEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDpermilEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbDpermilEnum()
++%SMBDPERMILENUM - Enum of SmbDpermil
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDpermilEnum()
++
++macro=StringToEnum('SmbDpermil');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19526)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19527)
+@@ -325,6 +325,7 @@
+ def TimesteppingTimeAdaptEnum(): return StringToEnum("TimesteppingTimeAdapt")[0]
+ def TimesteppingTimeStepEnum(): return StringToEnum("TimesteppingTimeStep")[0]
+ def TimesteppingInterpForcingsEnum(): return StringToEnum("TimesteppingInterpForcings")[0]
++def TransientIssmbEnum(): return StringToEnum("TransientIssmb")[0]
+ def TransientIsstressbalanceEnum(): return StringToEnum("TransientIsstressbalance")[0]
+ def TransientIsgroundinglineEnum(): return StringToEnum("TransientIsgroundingline")[0]
+ def TransientIsmasstransportEnum(): return StringToEnum("TransientIsmasstransport")[0]
+@@ -343,47 +344,50 @@
+ def BalancethicknessCmuEnum(): return StringToEnum("BalancethicknessCmu")[0]
+ def BalancethicknessOmegaEnum(): return StringToEnum("BalancethicknessOmega")[0]
+ def BalancethicknessD0Enum(): return StringToEnum("BalancethicknessD0")[0]
+-def SurfaceforcingsEnum(): return StringToEnum("Surfaceforcings")[0]
+-def SMBEnum(): return StringToEnum("SMB")[0]
+-def SurfaceforcingsMassBalanceEnum(): return StringToEnum("SurfaceforcingsMassBalance")[0]
++def SmbEnum(): return StringToEnum("Smb")[0]
++def SmbSolutionEnum(): return StringToEnum("SmbSolution")[0]
++def SmbNumRequestedOutputsEnum(): return StringToEnum("SmbNumRequestedOutputs")[0]
++def SmbRequestedOutputsEnum(): return StringToEnum("SmbRequestedOutputs")[0]
++def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
++def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
+ def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
+-def SurfaceforcingsDelta18oEnum(): return StringToEnum("SurfaceforcingsDelta18o")[0]
+-def SurfaceforcingsDelta18oSurfaceEnum(): return StringToEnum("SurfaceforcingsDelta18oSurface")[0]
+-def SurfaceforcingsIsdelta18oEnum(): return StringToEnum("SurfaceforcingsIsdelta18o")[0]
+-def SurfaceforcingsIsmungsmEnum(): return StringToEnum("SurfaceforcingsIsmungsm")[0]
+-def SurfaceforcingsIsd18opdEnum(): return StringToEnum("SurfaceforcingsIsd18opd")[0]
+-def SurfaceforcingsPrecipitationsPresentdayEnum(): return StringToEnum("SurfaceforcingsPrecipitationsPresentday")[0]
+-def SurfaceforcingsPrecipitationsLgmEnum(): return StringToEnum("SurfaceforcingsPrecipitationsLgm")[0]
+-def SurfaceforcingsTemperaturesPresentdayEnum(): return StringToEnum("SurfaceforcingsTemperaturesPresentday")[0]
+-def SurfaceforcingsTemperaturesLgmEnum(): return StringToEnum("SurfaceforcingsTemperaturesLgm")[0]
+-def SurfaceforcingsPrecipitationEnum(): return StringToEnum("SurfaceforcingsPrecipitation")[0]
+-def SurfaceforcingsDesfacEnum(): return StringToEnum("SurfaceforcingsDesfac")[0]
+-def SurfaceforcingsS0pEnum(): return StringToEnum("SurfaceforcingsS0p")[0]
+-def SurfaceforcingsS0tEnum(): return StringToEnum("SurfaceforcingsS0t")[0]
+-def SurfaceforcingsRlapsEnum(): return StringToEnum("SurfaceforcingsRlaps")[0]
+-def SurfaceforcingsRlapslgmEnum(): return StringToEnum("SurfaceforcingsRlapslgm")[0]
+-def SurfaceforcingsPfacEnum(): return StringToEnum("SurfaceforcingsPfac")[0]
+-def SurfaceforcingsTdiffEnum(): return StringToEnum("SurfaceforcingsTdiff")[0]
+-def SurfaceforcingsSealevEnum(): return StringToEnum("SurfaceforcingsSealev")[0]
++def SmbDelta18oEnum(): return StringToEnum("SmbDelta18o")[0]
++def SmbDelta18oSurfaceEnum(): return StringToEnum("SmbDelta18oSurface")[0]
++def SmbIsdelta18oEnum(): return StringToEnum("SmbIsdelta18o")[0]
++def SmbIsmungsmEnum(): return StringToEnum("SmbIsmungsm")[0]
++def SmbIsd18opdEnum(): return StringToEnum("SmbIsd18opd")[0]
++def SmbPrecipitationsPresentdayEnum(): return StringToEnum("SmbPrecipitationsPresentday")[0]
++def SmbPrecipitationsLgmEnum(): return StringToEnum("SmbPrecipitationsLgm")[0]
++def SmbTemperaturesPresentdayEnum(): return StringToEnum("SmbTemperaturesPresentday")[0]
++def SmbTemperaturesLgmEnum(): return StringToEnum("SmbTemperaturesLgm")[0]
++def SmbPrecipitationEnum(): return StringToEnum("SmbPrecipitation")[0]
++def SmbDesfacEnum(): return StringToEnum("SmbDesfac")[0]
++def SmbS0pEnum(): return StringToEnum("SmbS0p")[0]
++def SmbS0tEnum(): return StringToEnum("SmbS0t")[0]
++def SmbRlapsEnum(): return StringToEnum("SmbRlaps")[0]
++def SmbRlapslgmEnum(): return StringToEnum("SmbRlapslgm")[0]
++def SmbPfacEnum(): return StringToEnum("SmbPfac")[0]
++def SmbTdiffEnum(): return StringToEnum("SmbTdiff")[0]
++def SmbSealevEnum(): return StringToEnum("SmbSealev")[0]
+ def SMBd18opddEnum(): return StringToEnum("SMBd18opdd")[0]
+-def SurfaceforcingsDpermilEnum(): return StringToEnum("SurfaceforcingsDpermil")[0]
++def SmbDpermilEnum(): return StringToEnum("SmbDpermil")[0]
+ def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
+-def SurfaceforcingsMonthlytemperaturesEnum(): return StringToEnum("SurfaceforcingsMonthlytemperatures")[0]
+-def SurfaceforcingsHrefEnum(): return StringToEnum("SurfaceforcingsHref")[0]
+-def SurfaceforcingsSmbrefEnum(): return StringToEnum("SurfaceforcingsSmbref")[0]
+-def SurfaceforcingsBPosEnum(): return StringToEnum("SurfaceforcingsBPos")[0]
+-def SurfaceforcingsBNegEnum(): return StringToEnum("SurfaceforcingsBNeg")[0]
++def SmbMonthlytemperaturesEnum(): return StringToEnum("SmbMonthlytemperatures")[0]
++def SmbHrefEnum(): return StringToEnum("SmbHref")[0]
++def SmbSmbrefEnum(): return StringToEnum("SmbSmbref")[0]
++def SmbBPosEnum(): return StringToEnum("SmbBPos")[0]
++def SmbBNegEnum(): return StringToEnum("SmbBNeg")[0]
+ def SMBhenningEnum(): return StringToEnum("SMBhenning")[0]
+ def SMBcomponentsEnum(): return StringToEnum("SMBcomponents")[0]
+-def SurfaceforcingsAccumulationEnum(): return StringToEnum("SurfaceforcingsAccumulation")[0]
+-def SurfaceforcingsEvaporationEnum(): return StringToEnum("SurfaceforcingsEvaporation")[0]
+-def SurfaceforcingsRunoffEnum(): return StringToEnum("SurfaceforcingsRunoff")[0]
++def SmbAccumulationEnum(): return StringToEnum("SmbAccumulation")[0]
++def SmbEvaporationEnum(): return StringToEnum("SmbEvaporation")[0]
++def SmbRunoffEnum(): return StringToEnum("SmbRunoff")[0]
+ def SMBmeltcomponentsEnum(): return StringToEnum("SMBmeltcomponents")[0]
+-def SurfaceforcingsMeltEnum(): return StringToEnum("SurfaceforcingsMelt")[0]
+-def SurfaceforcingsRefreezeEnum(): return StringToEnum("SurfaceforcingsRefreeze")[0]
++def SmbMeltEnum(): return StringToEnum("SmbMelt")[0]
++def SmbRefreezeEnum(): return StringToEnum("SmbRefreeze")[0]
+ def SMBgcmEnum(): return StringToEnum("SMBgcm")[0]
+-def SurfaceforcingsIspddEnum(): return StringToEnum("SurfaceforcingsIspdd")[0]
+-def SurfaceforcingsIssmbgradientsEnum(): return StringToEnum("SurfaceforcingsIssmbgradients")[0]
++def SmbIspddEnum(): return StringToEnum("SmbIspdd")[0]
++def SmbIssmbgradientsEnum(): return StringToEnum("SmbIssmbgradients")[0]
+ def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
+ def AnalysisTypeEnum(): return StringToEnum("AnalysisType")[0]
+ def ConfigurationTypeEnum(): return StringToEnum("ConfigurationType")[0]
+Index: ../trunk-jpl/src/m/enum/SmbMonthlytemperaturesEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbMonthlytemperaturesEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbMonthlytemperaturesEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbMonthlytemperaturesEnum()
++%SMBMONTHLYTEMPERATURESENUM - Enum of SmbMonthlytemperatures
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbMonthlytemperaturesEnum()
++
++macro=StringToEnum('SmbMonthlytemperatures');
+Index: ../trunk-jpl/src/m/enum/SmbPfacEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPfacEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPfacEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbPfacEnum()
++%SMBPFACENUM - Enum of SmbPfac
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPfacEnum()
++
++macro=StringToEnum('SmbPfac');
+Index: ../trunk-jpl/src/m/enum/SmbPrecipitationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPrecipitationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPrecipitationEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbPrecipitationEnum()
++%SMBPRECIPITATIONENUM - Enum of SmbPrecipitation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPrecipitationEnum()
++
++macro=StringToEnum('SmbPrecipitation');
+Index: ../trunk-jpl/src/m/enum/SmbIsd18opdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsd18opdEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsd18opdEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbIsd18opdEnum()
++%SMBISD18OPDENUM - Enum of SmbIsd18opd
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsd18opdEnum()
++
++macro=StringToEnum('SmbIsd18opd');
+Index: ../trunk-jpl/src/m/enum/SmbIsmungsmEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsmungsmEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsmungsmEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbIsmungsmEnum()
++%SMBISMUNGSMENUM - Enum of SmbIsmungsm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsmungsmEnum()
++
++macro=StringToEnum('SmbIsmungsm');
+Index: ../trunk-jpl/src/m/enum/SmbS0tEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbS0tEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbS0tEnum.m	(revision 19527)
+@@ -0,0 +1,11 @@
++function macro=SmbS0tEnum()
++%SMBS0TENUM - Enum of SmbS0t
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbS0tEnum()
++
++macro=StringToEnum('SmbS0t');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19527-19528.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19527-19528.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19527-19528.diff	(revision 20498)
@@ -0,0 +1,1935 @@
+Index: ../trunk-jpl/test/NightlyRun/test121.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test121.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test121.py	(revision 19528)
+@@ -18,7 +18,7 @@
+ md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1))
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.thermal.isenthalpy=1
+Index: ../trunk-jpl/test/NightlyRun/test109.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test109.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test109.py	(revision 19528)
+@@ -16,7 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test3009.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3009.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test3009.m	(revision 19528)
+@@ -7,7 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.autodiff.isautodiff=true;
+Index: ../trunk-jpl/test/NightlyRun/test232.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test232.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test232.m	(revision 19528)
+@@ -10,7 +10,7 @@
+ md.timestepping.final_time=4;
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test313.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test313.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test313.m	(revision 19528)
+@@ -8,7 +8,7 @@
+ md.verbose=verbose('convergence',true,'solution',true);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test3109.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3109.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test3109.py	(revision 19528)
+@@ -16,7 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.toolkits.DefaultAnalysis=issmmumpssolver()
+Index: ../trunk-jpl/test/NightlyRun/test207.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test207.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test207.m	(revision 19528)
+@@ -7,7 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test109.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test109.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test109.m	(revision 19528)
+@@ -7,9 +7,10 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
++md.verbose=verbose('11111111');
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test3109.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3109.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test3109.m	(revision 19528)
+@@ -7,7 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.autodiff.isautodiff=true;
+Index: ../trunk-jpl/test/NightlyRun/test437.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test437.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test437.m	(revision 19528)
+@@ -36,8 +36,8 @@
+ 
+ %Additional settings
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
+ md.transient.isstressbalance=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.thermal.stabilization = 0;
+ 
+Index: ../trunk-jpl/test/NightlyRun/test326.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test326.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test326.py	(revision 19528)
+@@ -19,7 +19,7 @@
+ md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1))
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.thermal.isenthalpy=1
+Index: ../trunk-jpl/test/NightlyRun/test407.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test407.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test407.py	(revision 19528)
+@@ -17,7 +17,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test121.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test121.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test121.m	(revision 19528)
+@@ -9,7 +9,7 @@
+ md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.thermal.isenthalpy=1;
+Index: ../trunk-jpl/test/NightlyRun/test232.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test232.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test232.py	(revision 19528)
+@@ -20,7 +20,7 @@
+ md.timestepping.final_time=4.
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test313.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test313.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test313.py	(revision 19528)
+@@ -17,7 +17,7 @@
+ md.verbose=verbose('convergence',True,'solution',True)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test515.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test515.py	(revision 19528)
+@@ -17,7 +17,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test326.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test326.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test326.m	(revision 19528)
+@@ -9,7 +9,7 @@
+ md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md.thermal.isenthalpy=1;
+Index: ../trunk-jpl/test/NightlyRun/test407.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test407.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test407.m	(revision 19528)
+@@ -7,7 +7,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test3009.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19528)
+@@ -16,7 +16,7 @@
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md.toolkits.DefaultAnalysis=issmgslsolver()
+Index: ../trunk-jpl/test/NightlyRun/test207.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test207.py	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test207.py	(revision 19528)
+@@ -18,7 +18,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.transient.isstressbalance=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+ md=solve(md,TransientSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test515.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test515.m	(revision 19527)
++++ ../trunk-jpl/test/NightlyRun/test515.m	(revision 19528)
+@@ -8,7 +8,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/m4/analyses.m4
+===================================================================
+--- ../trunk-jpl/m4/analyses.m4	(revision 19527)
++++ ../trunk-jpl/m4/analyses.m4	(revision 19528)
+@@ -9,6 +9,32 @@
+ AC_DEFUN([AX_ANALYSES_SELECTION],
+ [
+ 
++dnl with-Smb{{{
++
++AC_ARG_WITH([Smb],
++
++	AS_HELP_STRING([--with-Smb = YES], [compile with Smb capabilities (default is yes)]),
++
++	[SMB=$withval],[SMB=yes])
++
++AC_MSG_CHECKING(for Smb capability compilation)
++
++
++HAVE_SMB=no 
++
++if test "x$SMB" = "xyes"; then
++
++	HAVE_SMB=yes
++
++	AC_DEFINE([_HAVE_SMB_],[1],[with Smb capability])
++
++fi
++
++AM_CONDITIONAL([SMB], [test x$HAVE_SMB = xyes])
++
++AC_MSG_RESULT($HAVE_SMB)
++
++dnl }}}
+ dnl with-AdjointBalancethickness{{{
+ 
+ AC_ARG_WITH([AdjointBalancethickness],
+Index: ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19528)
+@@ -13,6 +13,9 @@
+ Analysis* EnumToAnalysis(int analysis_enum){
+ 
+ 	switch(analysis_enum){
++		#ifdef _HAVE_SMB_
++		case SmbAnalysisEnum : return new SmbAnalysis();
++		#endif
+ 		#ifdef _HAVE_ADJOINTBALANCETHICKNESS_
+ 		case AdjointBalancethicknessAnalysisEnum : return new AdjointBalancethicknessAnalysis();
+ 		#endif
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 19528)
+@@ -117,16 +117,14 @@
+ }/*}}}*/
+ void MasstransportAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+-	int    stabilization,finiteelement,smb_model;
++	int    stabilization,finiteelement;
+ 	bool   dakota_analysis;
+-	bool   isdelta18o,ismungsm,isd18opd;
+ 	bool   isgroundingline;
+ 	bool   islevelset;
+ 
+ 	/*Fetch data needed: */
+ 	iomodel->Constant(&stabilization,MasstransportStabilizationEnum);
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+-	iomodel->Constant(&smb_model,SmbEnum);
+ 	iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+ 	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
+ 
+@@ -172,63 +170,8 @@
+ 		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 	}
+ 
+-	switch(smb_model){
+-		case SMBforcingEnum:
+-			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
+-			break;
+-		case SMBpddEnum:
+-			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
+-			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+-			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
+-			iomodel->FetchDataToInput(elements,SmbS0pEnum);
+-			iomodel->FetchDataToInput(elements,SmbS0tEnum);
+-			if(isdelta18o || ismungsm){
+-				iomodel->FetchDataToInput(elements,SmbTemperaturesLgmEnum);
+-				iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
+-				iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
+-				iomodel->FetchDataToInput(elements,SmbPrecipitationsLgmEnum);
+-			}
+-			else{
+-				iomodel->FetchDataToInput(elements,SmbPrecipitationEnum);
+-				iomodel->FetchDataToInput(elements,SmbMonthlytemperaturesEnum);
+-			}
+-			break;
+-		case SMBd18opddEnum:
+-			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
+-			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
+-			iomodel->FetchDataToInput(elements,SmbS0pEnum);
+-			iomodel->FetchDataToInput(elements,SmbS0tEnum);
+-			if (isd18opd){
+-			        iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
+-			        iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
+-			}
++	
+ 
+-			break;
+-		case SMBgradientsEnum:
+-			iomodel->FetchDataToInput(elements,SmbHrefEnum);
+-			iomodel->FetchDataToInput(elements,SmbSmbrefEnum);
+-			iomodel->FetchDataToInput(elements,SmbBPosEnum);
+-			iomodel->FetchDataToInput(elements,SmbBNegEnum);
+-			break;
+-		case SMBhenningEnum:
+-			iomodel->FetchDataToInput(elements,SmbSmbrefEnum,0.);
+-			break;
+-		case SMBcomponentsEnum:
+-			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SmbRunoffEnum,0.);
+-			break;
+-		case SMBmeltcomponentsEnum:
+-			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
+-			iomodel->FetchDataToInput(elements,SmbMeltEnum,0.);
+-			iomodel->FetchDataToInput(elements,SmbRefreezeEnum,0.);
+-			break;
+-		default:
+-			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+-	}
+-
+ }/*}}}*/
+ void MasstransportAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ 
+@@ -247,12 +190,8 @@
+ 	if(numoutputs)parameters->AddObject(new StringArrayParam(MasstransportRequestedOutputsEnum,requestedoutputs,numoutputs));
+ 	iomodel->DeleteData(&requestedoutputs,numoutputs,MasstransportRequestedOutputsEnum);
+ 	
+-	iomodel->FetchData(&requestedoutputs,&numoutputs,SmbRequestedOutputsEnum);
+-	parameters->AddObject(new IntParam(SmbNumRequestedOutputsEnum,numoutputs));
+-	if(numoutputs)parameters->AddObject(new StringArrayParam(SmbRequestedOutputsEnum,requestedoutputs,numoutputs));
+-	iomodel->DeleteData(&requestedoutputs,numoutputs,SmbRequestedOutputsEnum);
++	
+ 
+-
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
+Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SmbAnalysis.h	(revision 0)
++++ ../trunk-jpl/src/c/analyses/SmbAnalysis.h	(revision 19528)
+@@ -0,0 +1,33 @@
++/*! \file SmbAnalysis.h 
++ *  \brief: header file for generic external result object
++ */
++
++#ifndef _SmbAnalysis_
++#define _SmbAnalysis_
++
++/*Headers*/
++#include "./Analysis.h"
++
++class SmbAnalysis: public Analysis{
++
++	public:
++		/*Model processing*/
++		void CreateConstraints(Constraints* constraints,IoModel* iomodel);
++		void CreateLoads(Loads* loads, IoModel* iomodel);
++		void CreateNodes(Nodes* nodes,IoModel* iomodel);
++		int  DofsPerNode(int** doflist,int domaintype,int approximation);
++		void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
++		void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
++
++		/*Finite element Analysis*/
++		void           Core(FemModel* femmodel);
++		ElementVector* CreateDVector(Element* element);
++		ElementMatrix* CreateJacobianMatrix(Element* element);
++		ElementMatrix* CreateKMatrix(Element* element);
++		ElementVector* CreatePVector(Element* element);
++		void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
++		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
++		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
++		void           UpdateConstraints(FemModel* femmodel);
++};
++#endif
+Index: ../trunk-jpl/src/c/analyses/analyses.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/analyses.h	(revision 19527)
++++ ../trunk-jpl/src/c/analyses/analyses.h	(revision 19528)
+@@ -29,6 +29,7 @@
+ #include "./LevelsetAnalysis.h"
+ #include "./LsfReinitializationAnalysis.h"
+ #include "./MasstransportAnalysis.h"
++#include "./SmbAnalysis.h"
+ #include "./MeltingAnalysis.h"
+ #include "./MeshdeformationAnalysis.h"
+ #include "./SmoothAnalysis.h"
+Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 0)
++++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19528)
+@@ -0,0 +1,271 @@
++#include "./SmbAnalysis.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++
++/*Model processing*/
++void SmbAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
++	/*No constraints*/
++}/*}}}*/
++void SmbAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
++	/*No loads*/
++}/*}}}*/
++void SmbAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
++	::CreateNodes(nodes,iomodel,SmbAnalysisEnum,P1Enum);
++}/*}}}*/
++int  SmbAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
++	return 1;
++}/*}}}*/
++void SmbAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
++	
++	int    smb_model;
++	bool   isdelta18o,ismungsm,isd18opd;
++	
++	/*Figure out smb model: */
++	iomodel->Constant(&smb_model,SmbEnum);
++
++	/*Update elements: */
++	int counter=0;
++	for(int i=0;i<iomodel->numberofelements;i++){
++		if(iomodel->my_elements[i]){
++			Element* element=(Element*)elements->GetObjectByOffset(counter);
++			element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum);
++			counter++;
++		}
++	}
++	
++	switch(smb_model){
++		case SMBforcingEnum:
++			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
++			break;
++		case SMBpddEnum:
++			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
++			iomodel->FetchDataToInput(elements,SmbS0pEnum);
++			iomodel->FetchDataToInput(elements,SmbS0tEnum);
++			if(isdelta18o || ismungsm){
++				iomodel->FetchDataToInput(elements,SmbTemperaturesLgmEnum);
++				iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
++				iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
++				iomodel->FetchDataToInput(elements,SmbPrecipitationsLgmEnum);
++			}
++			else{
++				iomodel->FetchDataToInput(elements,SmbPrecipitationEnum);
++				iomodel->FetchDataToInput(elements,SmbMonthlytemperaturesEnum);
++			}
++			break;
++		case SMBd18opddEnum:
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
++			iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
++			iomodel->FetchDataToInput(elements,SmbS0pEnum);
++			iomodel->FetchDataToInput(elements,SmbS0tEnum);
++			if (isd18opd){
++			        iomodel->FetchDataToInput(elements,SmbTemperaturesPresentdayEnum);
++			        iomodel->FetchDataToInput(elements,SmbPrecipitationsPresentdayEnum);
++			}
++
++			break;
++		case SMBgradientsEnum:
++			iomodel->FetchDataToInput(elements,SmbHrefEnum);
++			iomodel->FetchDataToInput(elements,SmbSmbrefEnum);
++			iomodel->FetchDataToInput(elements,SmbBPosEnum);
++			iomodel->FetchDataToInput(elements,SmbBNegEnum);
++			break;
++		case SMBhenningEnum:
++			iomodel->FetchDataToInput(elements,SmbSmbrefEnum,0.);
++			break;
++		case SMBcomponentsEnum:
++			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbRunoffEnum,0.);
++			break;
++		case SMBmeltcomponentsEnum:
++			iomodel->FetchDataToInput(elements,SmbAccumulationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbEvaporationEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbMeltEnum,0.);
++			iomodel->FetchDataToInput(elements,SmbRefreezeEnum,0.);
++			break;
++		default:
++			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
++	}
++
++}/*}}}*/
++void SmbAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
++
++	int     numoutputs;
++	char**  requestedoutputs = NULL;
++	bool    isdelta18o,ismungsm,isd18opd,interp;
++	int     smb_model;
++	IssmDouble *temp = NULL;
++	int         N,M;
++	
++	parameters->AddObject(iomodel->CopyConstantObject(SmbEnum));
++	
++	iomodel->Constant(&smb_model,SmbEnum);
++	iomodel->Constant(&interp,TimesteppingInterpForcingsEnum);
++	
++	switch(smb_model){
++		case SMBforcingEnum:
++			/*Nothing to add to parameters*/
++			break;
++		case SMBpddEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
++			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++
++			if(ismungsm){
++			  iomodel->FetchData(&temp,&N,&M,SmbPfacEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbPfacEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbPfacEnum);
++			
++			  iomodel->FetchData(&temp,&N,&M,SmbTdiffEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbTdiffEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbTdiffEnum);
++
++			  iomodel->FetchData(&temp,&N,&M,SmbSealevEnum); _assert_(N==2);
++			  parameters->AddObject(new TransientParam(SmbSealevEnum,&temp[0],&temp[M],interp,M));
++			  iomodel->DeleteData(temp,SmbSealevEnum);
++			}
++			if(isdelta18o){
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oEnum);
++
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oSurfaceEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oSurfaceEnum);
++			}
++			break;
++		case SMBd18opddEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsd18opdEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
++			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
++			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
++			if(isd18opd){
++				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
++				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
++				iomodel->DeleteData(temp,SmbDelta18oEnum);
++				
++				parameters->AddObject(iomodel->CopyConstantObject(SmbDpermilEnum));
++			}
++			break;
++		case SMBgradientsEnum:
++			/*Nothing to add to parameters*/
++			break;
++		case SMBhenningEnum:
++			/*Nothing to add to parameters*/
++			break;
++		case SMBcomponentsEnum:
++			/*Nothing to add to parameters*/
++			break;
++		case SMBmeltcomponentsEnum:
++			/*Nothing to add to parameters*/
++			break;
++		default:
++			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
++	}
++
++	iomodel->FetchData(&requestedoutputs,&numoutputs,SmbRequestedOutputsEnum);
++	parameters->AddObject(new IntParam(SmbNumRequestedOutputsEnum,numoutputs));
++	if(numoutputs)parameters->AddObject(new StringArrayParam(SmbRequestedOutputsEnum,requestedoutputs,numoutputs));
++	iomodel->DeleteData(&requestedoutputs,numoutputs,SmbRequestedOutputsEnum);
++
++}/*}}}*/
++
++/*Finite Element Analysis*/
++void           SmbAnalysis::Core(FemModel* femmodel){/*{{{*/
++
++	int    smb_model;
++
++	/*Figure out smb model: */
++	femmodel->parameters->FindParam(&smb_model,SmbEnum);
++	
++	/*branch to correct module*/
++	switch(smb_model){
++		case SMBforcingEnum:
++			/*Nothing to be done*/
++			break;
++		case SMBpddEnum:
++			bool isdelta18o,ismungsm;
++			femmodel->parameters->FindParam(&isdelta18o,SmbIsdelta18oEnum);
++			femmodel->parameters->FindParam(&ismungsm,SmbIsmungsmEnum);
++			if(isdelta18o){
++				if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
++				Delta18oParameterizationx(femmodel);
++			} 
++			if(ismungsm){
++				if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
++				MungsmtpParameterizationx(femmodel);
++			} 
++			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++			PositiveDegreeDayx(femmodel);
++			break;
++		case SMBd18opddEnum:
++			bool isd18opd;
++			femmodel->parameters->FindParam(&isd18opd,SmbIsd18opdEnum);
++			if(isd18opd){
++				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
++				Delta18opdParameterizationx(femmodel);
++				if(VerboseSolution()) _printf0_("   call positive degree day module\n");
++				PositiveDegreeDayx(femmodel);
++			} 
++			break;
++		case SMBgradientsEnum:
++			if(VerboseSolution())_printf0_("	call smb gradients module\n");
++			SmbGradientsx(femmodel);
++			break;
++		case SMBhenningEnum:
++			if(VerboseSolution())_printf0_("  call smb Henning module\n");
++			SmbHenningx(femmodel);
++			break;
++		case SMBcomponentsEnum:
++			if(VerboseSolution())_printf0_("  call smb Components module\n");
++			SmbComponentsx(femmodel);
++			break;
++		case SMBmeltcomponentsEnum:
++			if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
++			SmbMeltComponentsx(femmodel);
++			break;
++		case SMBgcmEnum:
++			/*Nothing to be done*/
++			break;
++		default:
++			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
++	}
++
++}/*}}}*/
++ElementVector* SmbAnalysis::CreateDVector(Element* element){/*{{{*/
++	_error_("not implemented");
++}/*}}}*/
++ElementMatrix* SmbAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
++_error_("Not implemented");
++}/*}}}*/
++ElementMatrix* SmbAnalysis::CreateKMatrix(Element* element){/*{{{*/
++	_error_("not implemented yet");
++}/*}}}*/
++ElementVector* SmbAnalysis::CreatePVector(Element* element){/*{{{*/
++_error_("not implemented yet");
++}/*}}}*/
++void           SmbAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
++	   _error_("not implemented yet");
++}/*}}}*/
++void           SmbAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
++	_error_("Not implemented yet");
++}/*}}}*/
++void           SmbAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
++	_error_("not implemented yet");
++}/*}}}*/
++void           SmbAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
++	/*Default, do nothing*/
++	return;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19527)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19528)
+@@ -349,11 +349,44 @@
+ 	/*}}}*/
+ 	/*Smb{{{*/
+ 	SmbEnum,
++	SmbAnalysisEnum,
+ 	SmbSolutionEnum,
+ 	SmbNumRequestedOutputsEnum,
+ 	SmbRequestedOutputsEnum,
++	/*SMBforcing*/
+ 	SMBforcingEnum,
+ 	SmbMassBalanceEnum,
++	/*SMBgemb*/
++	SMBgembEnum,
++	SmbTaEnum,
++	SmbVEnum,
++	SmbDswrfEnum,
++	SmbDlwrfEnum,
++	SmbPEnum, 
++	SmbEAirEnum, 
++	SmbPAirEnum,
++	SmbTmeanEnum,
++	SmbCEnum,
++	SmbTzEnum,
++	SmbVzEnum,
++	SmbSpinUpEnum,
++	SmbAIdxEnum,
++	SmbSwIdxEnum,
++	SmbDenIdxEnum,
++	SmbZTopEnum, 
++	SmbDzTopEnum, 
++	SmbDzMinEnum, 
++	SmbZYEnum, 
++	SmbZMaxEnum, 
++	SmbZMinEnum, 
++	SmbOutputFreqEnum, 
++	SmbASnowEnum, 
++	SmbAIceEnum, 
++	SmbCldFracEnum, 
++	SmbT0wetEnum, 
++	SmbT0dryEnum, 
++	SmbKEnum, 
++	/*SMBpdd*/
+ 	SMBpddEnum,	
+ 	SmbDelta18oEnum,
+ 	SmbDelta18oSurfaceEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19528)
+@@ -353,11 +353,41 @@
+ 		case BalancethicknessOmegaEnum : return "BalancethicknessOmega";
+ 		case BalancethicknessD0Enum : return "BalancethicknessD0";
+ 		case SmbEnum : return "Smb";
++		case SmbAnalysisEnum : return "SmbAnalysis";
+ 		case SmbSolutionEnum : return "SmbSolution";
+ 		case SmbNumRequestedOutputsEnum : return "SmbNumRequestedOutputs";
+ 		case SmbRequestedOutputsEnum : return "SmbRequestedOutputs";
+ 		case SMBforcingEnum : return "SMBforcing";
+ 		case SmbMassBalanceEnum : return "SmbMassBalance";
++		case SMBgembEnum : return "SMBgemb";
++		case SmbTaEnum : return "SmbTa";
++		case SmbVEnum : return "SmbV";
++		case SmbDswrfEnum : return "SmbDswrf";
++		case SmbDlwrfEnum : return "SmbDlwrf";
++		case SmbPEnum : return "SmbP";
++		case SmbEAirEnum : return "SmbEAir";
++		case SmbPAirEnum : return "SmbPAir";
++		case SmbTmeanEnum : return "SmbTmean";
++		case SmbCEnum : return "SmbC";
++		case SmbTzEnum : return "SmbTz";
++		case SmbVzEnum : return "SmbVz";
++		case SmbSpinUpEnum : return "SmbSpinUp";
++		case SmbAIdxEnum : return "SmbAIdx";
++		case SmbSwIdxEnum : return "SmbSwIdx";
++		case SmbDenIdxEnum : return "SmbDenIdx";
++		case SmbZTopEnum : return "SmbZTop";
++		case SmbDzTopEnum : return "SmbDzTop";
++		case SmbDzMinEnum : return "SmbDzMin";
++		case SmbZYEnum : return "SmbZY";
++		case SmbZMaxEnum : return "SmbZMax";
++		case SmbZMinEnum : return "SmbZMin";
++		case SmbOutputFreqEnum : return "SmbOutputFreq";
++		case SmbASnowEnum : return "SmbASnow";
++		case SmbAIceEnum : return "SmbAIce";
++		case SmbCldFracEnum : return "SmbCldFrac";
++		case SmbT0wetEnum : return "SmbT0wet";
++		case SmbT0dryEnum : return "SmbT0dry";
++		case SmbKEnum : return "SmbK";
+ 		case SMBpddEnum : return "SMBpdd";
+ 		case SmbDelta18oEnum : return "SmbDelta18o";
+ 		case SmbDelta18oSurfaceEnum : return "SmbDelta18oSurface";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19528)
+@@ -359,11 +359,44 @@
+ 	      else if (strcmp(name,"BalancethicknessOmega")==0) return BalancethicknessOmegaEnum;
+ 	      else if (strcmp(name,"BalancethicknessD0")==0) return BalancethicknessD0Enum;
+ 	      else if (strcmp(name,"Smb")==0) return SmbEnum;
++	      else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
+ 	      else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
+ 	      else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+ 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
++	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
++	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
++	      else if (strcmp(name,"SmbV")==0) return SmbVEnum;
++	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
++	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
++	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
++	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
++	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
++	      else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
++	      else if (strcmp(name,"SmbC")==0) return SmbCEnum;
++	      else if (strcmp(name,"SmbTz")==0) return SmbTzEnum;
++	      else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
++	      else if (strcmp(name,"SmbSpinUp")==0) return SmbSpinUpEnum;
++	      else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
++	      else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
++	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
++	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
++	      else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
++	      else if (strcmp(name,"SmbZY")==0) return SmbZYEnum;
++	      else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum;
++	      else if (strcmp(name,"SmbZMin")==0) return SmbZMinEnum;
++	      else if (strcmp(name,"SmbOutputFreq")==0) return SmbOutputFreqEnum;
++	      else if (strcmp(name,"SmbASnow")==0) return SmbASnowEnum;
++	      else if (strcmp(name,"SmbAIce")==0) return SmbAIceEnum;
++	      else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
++	      else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum;
++	      else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum;
++	      else if (strcmp(name,"SmbK")==0) return SmbKEnum;
+ 	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
+ 	      else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
+ 	      else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
+@@ -382,10 +415,7 @@
+ 	      else if (strcmp(name,"SmbRlapslgm")==0) return SmbRlapslgmEnum;
+ 	      else if (strcmp(name,"SmbPfac")==0) return SmbPfacEnum;
+ 	      else if (strcmp(name,"SmbTdiff")==0) return SmbTdiffEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
++	      else if (strcmp(name,"SmbSealev")==0) return SmbSealevEnum;
+ 	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
+ 	      else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
+ 	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
+@@ -475,7 +505,10 @@
+ 	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
+ 	      else if (strcmp(name,"DataSet")==0) return DataSetEnum;
+ 	      else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
+-	      else if (strcmp(name,"Loads")==0) return LoadsEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"Loads")==0) return LoadsEnum;
+ 	      else if (strcmp(name,"Materials")==0) return MaterialsEnum;
+ 	      else if (strcmp(name,"Nodes")==0) return NodesEnum;
+ 	      else if (strcmp(name,"Contours")==0) return ContoursEnum;
+@@ -505,10 +538,7 @@
+ 	      else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
+ 	      else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
+ 	      else if (strcmp(name,"InputToDepthaverage")==0) return InputToDepthaverageEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
++	      else if (strcmp(name,"InputToSmooth")==0) return InputToSmoothEnum;
+ 	      else if (strcmp(name,"SmoothThicknessMultiplier")==0) return SmoothThicknessMultiplierEnum;
+ 	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
+ 	      else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
+@@ -598,7 +628,10 @@
+ 	      else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
+ 	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
+ 	      else if (strcmp(name,"SurfaceAbsMisfit")==0) return SurfaceAbsMisfitEnum;
+-	      else if (strcmp(name,"Vel")==0) return VelEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"Vel")==0) return VelEnum;
+ 	      else if (strcmp(name,"Velocity")==0) return VelocityEnum;
+ 	      else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
+ 	      else if (strcmp(name,"Vx")==0) return VxEnum;
+@@ -628,10 +661,7 @@
+ 	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
+ 	      else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
+ 	      else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
++	      else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
+ 	      else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
+ 	      else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
+ 	      else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
+@@ -721,7 +751,10 @@
+ 	      else if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum;
+ 	      else if (strcmp(name,"Outputdefinition24")==0) return Outputdefinition24Enum;
+ 	      else if (strcmp(name,"Outputdefinition25")==0) return Outputdefinition25Enum;
+-	      else if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum;
+ 	      else if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum;
+ 	      else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum;
+ 	      else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
+@@ -751,10 +784,7 @@
+ 	      else if (strcmp(name,"Outputdefinition53")==0) return Outputdefinition53Enum;
+ 	      else if (strcmp(name,"Outputdefinition54")==0) return Outputdefinition54Enum;
+ 	      else if (strcmp(name,"Outputdefinition55")==0) return Outputdefinition55Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
++	      else if (strcmp(name,"Outputdefinition56")==0) return Outputdefinition56Enum;
+ 	      else if (strcmp(name,"Outputdefinition57")==0) return Outputdefinition57Enum;
+ 	      else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
+ 	      else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
+@@ -844,7 +874,10 @@
+ 	      else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
+ 	      else if (strcmp(name,"None")==0) return NoneEnum;
+ 	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
+-	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
+ 	      else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
+ 	      else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
+ 	      else if (strcmp(name,"Contact")==0) return ContactEnum;
+@@ -874,10 +907,7 @@
+ 	      else if (strcmp(name,"ToolkitsFileName")==0) return ToolkitsFileNameEnum;
+ 	      else if (strcmp(name,"RootPath")==0) return RootPathEnum;
+ 	      else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
++	      else if (strcmp(name,"InputFileName")==0) return InputFileNameEnum;
+ 	      else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
+ 	      else if (strcmp(name,"RestartFileName")==0) return RestartFileNameEnum;
+ 	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 19528)
+@@ -21,7 +21,6 @@
+ 	int         numoutputs,materialtype,smb_model,basalforcing_model;
+ 	char**      requestedoutputs = NULL;
+ 	IssmDouble  time;
+-	bool        isdelta18o,ismungsm,isd18opd,interp;
+ 
+ 	/*parameters for mass flux:*/
+ 	int          mass_flux_num_profiles     = 0;
+@@ -98,78 +97,7 @@
+ 		 parameters->AddObject(iomodel->CopyConstantObject(MeshNumberoflayersEnum));
+ 	}
+ 
+-	/*Surface mass balance parameters*/
+-	parameters->AddObject(iomodel->CopyConstantObject(SmbEnum));
+-	iomodel->Constant(&smb_model,SmbEnum);
+-	iomodel->Constant(&interp,TimesteppingInterpForcingsEnum);
+-	switch(smb_model){
+-		case SMBforcingEnum:
+-			/*Nothing to add to parameters*/
+-			break;
+-		case SMBpddEnum:
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
+-			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
+-			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+-
+-			if(ismungsm){
+-			  iomodel->FetchData(&temp,&N,&M,SmbPfacEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SmbPfacEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SmbPfacEnum);
+-			
+-			  iomodel->FetchData(&temp,&N,&M,SmbTdiffEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SmbTdiffEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SmbTdiffEnum);
+-
+-			  iomodel->FetchData(&temp,&N,&M,SmbSealevEnum); _assert_(N==2);
+-			  parameters->AddObject(new TransientParam(SmbSealevEnum,&temp[0],&temp[M],interp,M));
+-			  iomodel->DeleteData(temp,SmbSealevEnum);
+-			}
+-			if(isdelta18o){
+-				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SmbDelta18oEnum);
+-
+-				iomodel->FetchData(&temp,&N,&M,SmbDelta18oSurfaceEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SmbDelta18oSurfaceEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SmbDelta18oSurfaceEnum);
+-			}
+-			break;
+-		case SMBd18opddEnum:
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbIsd18opdEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbDesfacEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapsEnum));
+-			parameters->AddObject(iomodel->CopyConstantObject(SmbRlapslgmEnum));
+-			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+-			iomodel->Constant(&isd18opd,SmbIsd18opdEnum);
+-			if(isd18opd){
+-				iomodel->FetchData(&temp,&N,&M,SmbDelta18oEnum); _assert_(N==2);
+-				parameters->AddObject(new TransientParam(SmbDelta18oEnum,&temp[0],&temp[M],interp,M));
+-				iomodel->DeleteData(temp,SmbDelta18oEnum);
+-				
+-				parameters->AddObject(iomodel->CopyConstantObject(SmbDpermilEnum));
+-			}
+-			break;
+-		case SMBgradientsEnum:
+-			/*Nothing to add to parameters*/
+-			break;
+-		case SMBhenningEnum:
+-			/*Nothing to add to parameters*/
+-			break;
+-		case SMBcomponentsEnum:
+-			/*Nothing to add to parameters*/
+-			break;
+-		case SMBmeltcomponentsEnum:
+-			/*Nothing to add to parameters*/
+-			break;
+-		default:
+-			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+-	}
+-
++	
+ 	/*Basal forcing parameters*/
+ 	parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsEnum));
+ 	iomodel->Constant(&basalforcing_model,BasalforcingsEnum);
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19527)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19528)
+@@ -402,6 +402,10 @@
+ if MASSTRANSPORT
+ issm_sources += ./analyses/MasstransportAnalysis.cpp
+ endif
++if SMB
++issm_sources += ./analyses/SmbAnalysis.cpp
++endif
++
+ if FREESURFACEBASE
+ issm_sources += ./analyses/FreeSurfaceBaseAnalysis.cpp
+ endif
+Index: ../trunk-jpl/src/c/cores/smb_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/smb_core.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/cores/smb_core.cpp	(revision 19528)
+@@ -12,12 +12,16 @@
+ void smb_core(FemModel* femmodel){
+ 
+ 	/*parameters: */
++	Analysis* analysis=NULL;
+ 	int    smb_model;
+ 	int    numoutputs;
+ 	bool   save_results;
+ 	int    solution_type;
+ 	char** requested_outputs = NULL;
+ 
++	/*activate configuration*/
++	femmodel->SetCurrentConfiguration(SmbAnalysisEnum);
++
+ 	/*recover parameters: */
+ 	femmodel->parameters->FindParam(&smb_model,SmbEnum);
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+@@ -26,60 +30,11 @@
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SmbRequestedOutputsEnum);
+ 			
+ 	if(VerboseSolution()) _printf0_("   computing smb \n");
++ 
++	analysis = new SmbAnalysis();
++	analysis->Core(femmodel);
++	delete analysis;
+ 
+-	/*branch to correct module*/
+-	switch(smb_model){
+-		case SMBforcingEnum:
+-			/*Nothing to be done*/
+-			break;
+-		case SMBpddEnum:
+-			bool isdelta18o,ismungsm;
+-			femmodel->parameters->FindParam(&isdelta18o,SmbIsdelta18oEnum);
+-			femmodel->parameters->FindParam(&ismungsm,SmbIsmungsmEnum);
+-			if(isdelta18o){
+-				if(VerboseSolution()) _printf0_("   call Delta18oParameterization module\n");
+-				Delta18oParameterizationx(femmodel);
+-			} 
+-			if(ismungsm){
+-				if(VerboseSolution()) _printf0_("   call MungsmtpParameterization module\n");
+-				MungsmtpParameterizationx(femmodel);
+-			} 
+-			if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+-			PositiveDegreeDayx(femmodel);
+-			break;
+-		case SMBd18opddEnum:
+-			bool isd18opd;
+-			femmodel->parameters->FindParam(&isd18opd,SmbIsd18opdEnum);
+-			if(isd18opd){
+-				if(VerboseSolution()) _printf0_("   call Delta18opdParameterization module\n");
+-				Delta18opdParameterizationx(femmodel);
+-				if(VerboseSolution()) _printf0_("   call positive degree day module\n");
+-				PositiveDegreeDayx(femmodel);
+-			} 
+-			break;
+-		case SMBgradientsEnum:
+-			if(VerboseSolution())_printf0_("	call smb gradients module\n");
+-			SmbGradientsx(femmodel);
+-			break;
+-		case SMBhenningEnum:
+-			if(VerboseSolution())_printf0_("  call smb Henning module\n");
+-			SmbHenningx(femmodel);
+-			break;
+-		case SMBcomponentsEnum:
+-			if(VerboseSolution())_printf0_("  call smb Components module\n");
+-			SmbComponentsx(femmodel);
+-			break;
+-		case SMBmeltcomponentsEnum:
+-			if(VerboseSolution())_printf0_("  call smb Melt Components module\n");
+-			SmbMeltComponentsx(femmodel);
+-			break;
+-		case SMBgcmEnum:
+-			/*Nothing to be done*/
+-			break;
+-		default:
+-			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+-	}
+-
+ 	if(save_results){
+ 		if(VerboseSolution()) _printf0_("   saving results\n");
+ 		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19527)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19528)
+@@ -495,6 +495,7 @@
+ 
+ 		case MasstransportSolutionEnum:
+ 			analyses_temp[numanalyses++]=MasstransportAnalysisEnum;
++			analyses_temp[numanalyses++]=SmbAnalysisEnum;
+ 			break;
+ 
+ 		case BalancethicknessSolutionEnum:
+@@ -528,12 +529,16 @@
+ 			analyses_temp[numanalyses++]=GiaAnalysisEnum;
+ 			break;
+ 		
++		case SmbSolutionEnum:
++			analyses_temp[numanalyses++]=SmbAnalysisEnum;
++			break;
++
+ 		case DamageEvolutionSolutionEnum:
+ 			analyses_temp[numanalyses++]=DamageEvolutionAnalysisEnum;
+ 			break;
+ 
+ 		case TransientSolutionEnum:{
+-			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,islevelset,ishydrology,isdamage;
++			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,islevelset,ishydrology,isdamage,issmb;
+ 			iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+ 			iomodel->Constant(&isFS,FlowequationIsFSEnum);
+ 			iomodel->Constant(&isthermal,TransientIsthermalEnum);
+@@ -544,6 +549,7 @@
+ 			iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+ 			iomodel->Constant(&isdamage,TransientIsdamageevolutionEnum);
+ 			iomodel->Constant(&ishydrology,TransientIshydrologyEnum);
++			iomodel->Constant(&issmb,TransientIssmbEnum);
+ 			if(isstressbalance){
+ 				int  fe_FS;
+ 				iomodel->Constant(&fe_FS,FlowequationFeFSEnum);
+@@ -569,6 +575,7 @@
+ 			if(ismasstransport || isgroundingline){
+ 				analyses_temp[numanalyses++]=MasstransportAnalysisEnum;
+ 			}
++			if(issmb) analyses_temp[numanalyses++]=SmbAnalysisEnum;
+ 			if(islevelset){
+ 				analyses_temp[numanalyses++]=LevelsetAnalysisEnum;
+ 				analyses_temp[numanalyses++]=ExtrapolationAnalysisEnum;
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19527)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19528)
+@@ -138,6 +138,7 @@
+ if exist(options,'>=')
+ 	lowerbound=getfieldvalue(options,'>=');
+ 	field2=reshape(field,prod(size(field)),1);
++	if getfieldvalue(options,'timeseries',0), field2=reshape(field(1:end-1,:),prod(size(field(1:end-1,:))),1); end
+ 	if any(field2<lowerbound),
+ 		md = checkmessage(md,getfieldvalue(options,'message',...
+ 			['field ''' fieldname ''' should have values above ' num2str(lowerbound(1,1))]));
+@@ -146,6 +147,7 @@
+ if exist(options,'>')
+ 	lowerbound=getfieldvalue(options,'>');
+ 	field2=reshape(field,prod(size(field)),1);
++	if getfieldvalue(options,'timeseries',0), field2=reshape(field(1:end-1,:),prod(size(field(1:end-1,:))),1); end
+ 	if any(field2<=lowerbound),
+ 		md = checkmessage(md,getfieldvalue(options,'message',...
+ 			['field ''' fieldname ''' should have values above ' num2str(lowerbound(1,1))]));
+@@ -156,6 +158,7 @@
+ if exist(options,'<=')
+ 	upperbound=getfieldvalue(options,'<=');
+ 	field2=reshape(field,prod(size(field)),1);
++	if getfieldvalue(options,'timeseries',0), field2=reshape(field(1:end-1,:),prod(size(field(1:end-1,:))),1); end
+ 	if any(field2>upperbound),
+ 		md = checkmessage(md,getfieldvalue(options,'message',...
+ 			['field ''' fieldname ''' should have values below ' num2str(upperbound(1,1))]));
+@@ -164,6 +167,7 @@
+ if exist(options,'<')
+ 	upperbound=getfieldvalue(options,'<');
+ 	field2=reshape(field,prod(size(field)),1);
++	if getfieldvalue(options,'timeseries',0), field2=reshape(field(1:end-1,:),prod(size(field(1:end-1,:))),1); end
+ 	if any(field2>=upperbound),
+ 		md = checkmessage(md,getfieldvalue(options,'message',...
+ 			['field ''' fieldname ''' should have values below ' num2str(upperbound(1,1))]));
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19527)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19528)
+@@ -122,13 +122,41 @@
+ 		end % }}}
+ function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',0,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1);
+-		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1);
+-		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1);
+-		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'>=',0,'<',45); %max 500 km/h
++		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'>=',0,'<=',1400);
++		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'>=',0);
++		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'>=',0,'<=',100);
+ 		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
+-
++		
++		md = checkfield(md,'fieldname','smb.Tmean','NaN',1,'>',273-60,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.C','NaN',1,'>=',0); 
++		md = checkfield(md,'fieldname','smb.Tz','NaN',1,'>=',0,'<=',5000); 
++		md = checkfield(md,'fieldname','smb.Vz','NaN',1,'>=',0,'<=',5000); 
++		
++		md = checkfield(md,'fieldname','smb.spinUp','NaN',1,'>=',0);
++		md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'values',[1,2,3,4]);
++		md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'values',[0,1]);
++		md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'values',[1,2,3,4,5]);
++		
++		md = checkfield(md,'fieldname','smb.zTop','NaN',1,'>=',0);
++		md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'>',0);
++		md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'>',0);
++		md = checkfield(md,'fieldname','smb.zY','NaN',1,'>=',1);
++		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'>',0,'<',10*365); %10 years max 
++		
++		switch self.aIdx,
++		case {1 2}
++			md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'>=',.64,'<=',.89);
++			md = checkfield(md,'fieldname','smb.aIce','NaN',1,'>=',.27,'<=',.58);
++		case 3
++			md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'>=',0,'<=',1);
++		case 4
++			md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'>=',15,'<=',21.9);
++			md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'>=',30,'<=',30);
++			md = checkfield(md,'fieldname','smb.K','NaN',1,'>=',7,'<=',7);
++		end
++		
+ 		%check zTop is < local thickness:
+ 		he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
+ 		if any(he<self.zTop),
+@@ -194,10 +222,39 @@
+ 			yts=365.0*24.0*3600.0;
+ 
+ 			WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			
++			WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			
++			WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','C','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','spinUp','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
++
++			WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',1,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',1,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',1,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',1,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',1,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',1,'scale',1);
++
++			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','aIce','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','cldFrac','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','t0wet','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','t0dry','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double','scale',1);
++			
+ 			%process requested outputs
+ 			outputs = self.requested_outputs;
+ 			pos  = find(ismember(outputs,'default'));
+@@ -209,4 +266,4 @@
+ 
+ 		end % }}}
+ 	end
+-end
++end		
+Index: ../trunk-jpl/src/m/enum/SmbAIdxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbAIdxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbAIdxEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbAIdxEnum()
++%SMBAIDXENUM - Enum of SmbAIdx
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbAIdxEnum()
++
++macro=StringToEnum('SmbAIdx');
+Index: ../trunk-jpl/src/m/enum/SmbASnowEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbASnowEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbASnowEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbASnowEnum()
++%SMBASNOWENUM - Enum of SmbASnow
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbASnowEnum()
++
++macro=StringToEnum('SmbASnow');
+Index: ../trunk-jpl/src/m/enum/SmbCldFracEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbCldFracEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbCldFracEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbCldFracEnum()
++%SMBCLDFRACENUM - Enum of SmbCldFrac
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbCldFracEnum()
++
++macro=StringToEnum('SmbCldFrac');
+Index: ../trunk-jpl/src/m/enum/SmbTzEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTzEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTzEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbTzEnum()
++%SMBTZENUM - Enum of SmbTz
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTzEnum()
++
++macro=StringToEnum('SmbTz');
+Index: ../trunk-jpl/src/m/enum/SmbEAirEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbEAirEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbEAirEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbEAirEnum()
++%SMBEAIRENUM - Enum of SmbEAir
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbEAirEnum()
++
++macro=StringToEnum('SmbEAir');
+Index: ../trunk-jpl/src/m/enum/SmbDzTopEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDzTopEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDzTopEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbDzTopEnum()
++%SMBDZTOPENUM - Enum of SmbDzTop
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDzTopEnum()
++
++macro=StringToEnum('SmbDzTop');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.pyc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/src/m/enum/EnumDefinitions.pyc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/src/m/enum/SmbZYEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbZYEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbZYEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbZYEnum()
++%SMBZYENUM - Enum of SmbZY
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbZYEnum()
++
++macro=StringToEnum('SmbZY');
+Index: ../trunk-jpl/src/m/enum/SmbCEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbCEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbCEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbCEnum()
++%SMBCENUM - Enum of SmbC
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbCEnum()
++
++macro=StringToEnum('SmbC');
+Index: ../trunk-jpl/src/m/enum/SmbPAirEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPAirEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPAirEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbPAirEnum()
++%SMBPAIRENUM - Enum of SmbPAir
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPAirEnum()
++
++macro=StringToEnum('SmbPAir');
+Index: ../trunk-jpl/src/m/enum/SmbAIceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbAIceEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbAIceEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbAIceEnum()
++%SMBAICEENUM - Enum of SmbAIce
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbAIceEnum()
++
++macro=StringToEnum('SmbAIce');
+Index: ../trunk-jpl/src/m/enum/SmbZMinEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbZMinEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbZMinEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbZMinEnum()
++%SMBZMINENUM - Enum of SmbZMin
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbZMinEnum()
++
++macro=StringToEnum('SmbZMin');
+Index: ../trunk-jpl/src/m/enum/SmbTmeanEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTmeanEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTmeanEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbTmeanEnum()
++%SMBTMEANENUM - Enum of SmbTmean
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTmeanEnum()
++
++macro=StringToEnum('SmbTmean');
+Index: ../trunk-jpl/src/m/enum/SmbSwIdxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSwIdxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSwIdxEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbSwIdxEnum()
++%SMBSWIDXENUM - Enum of SmbSwIdx
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSwIdxEnum()
++
++macro=StringToEnum('SmbSwIdx');
+Index: ../trunk-jpl/src/m/enum/SmbTaEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTaEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTaEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbTaEnum()
++%SMBTAENUM - Enum of SmbTa
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTaEnum()
++
++macro=StringToEnum('SmbTa');
+Index: ../trunk-jpl/src/m/enum/SmbZMaxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbZMaxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbZMaxEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbZMaxEnum()
++%SMBZMAXENUM - Enum of SmbZMax
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbZMaxEnum()
++
++macro=StringToEnum('SmbZMax');
+Index: ../trunk-jpl/src/m/enum/SmbOutputFreqEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbOutputFreqEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbOutputFreqEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbOutputFreqEnum()
++%SMBOUTPUTFREQENUM - Enum of SmbOutputFreq
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbOutputFreqEnum()
++
++macro=StringToEnum('SmbOutputFreq');
+Index: ../trunk-jpl/src/m/enum/SmbEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbEnum()
++%SMBENUM - Enum of Smb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbEnum()
++
++macro=StringToEnum('Smb');
+Index: ../trunk-jpl/src/m/enum/SmbVzEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbVzEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbVzEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbVzEnum()
++%SMBVZENUM - Enum of SmbVz
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbVzEnum()
++
++macro=StringToEnum('SmbVz');
+Index: ../trunk-jpl/src/m/enum/SMBgembEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SMBgembEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SMBgembEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SMBgembEnum()
++%SMBGEMBENUM - Enum of SMBgemb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SMBgembEnum()
++
++macro=StringToEnum('SMBgemb');
+Index: ../trunk-jpl/src/m/enum/SmbT0wetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbT0wetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbT0wetEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbT0wetEnum()
++%SMBT0WETENUM - Enum of SmbT0wet
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbT0wetEnum()
++
++macro=StringToEnum('SmbT0wet');
+Index: ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbSpinUpEnum()
++%SMBSPINUPENUM - Enum of SmbSpinUp
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSpinUpEnum()
++
++macro=StringToEnum('SmbSpinUp');
+Index: ../trunk-jpl/src/m/enum/SmbPEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbPEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbPEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbPEnum()
++%SMBPENUM - Enum of SmbP
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbPEnum()
++
++macro=StringToEnum('SmbP');
+Index: ../trunk-jpl/src/m/enum/SmbT0dryEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbT0dryEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbT0dryEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbT0dryEnum()
++%SMBT0DRYENUM - Enum of SmbT0dry
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbT0dryEnum()
++
++macro=StringToEnum('SmbT0dry');
+Index: ../trunk-jpl/src/m/enum/SmbDzMinEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDzMinEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDzMinEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbDzMinEnum()
++%SMBDZMINENUM - Enum of SmbDzMin
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDzMinEnum()
++
++macro=StringToEnum('SmbDzMin');
+Index: ../trunk-jpl/src/m/enum/SmbKEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbKEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbKEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbKEnum()
++%SMBKENUM - Enum of SmbK
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbKEnum()
++
++macro=StringToEnum('SmbK');
+Index: ../trunk-jpl/src/m/enum/SmbDswrfEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDswrfEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDswrfEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbDswrfEnum()
++%SMBDSWRFENUM - Enum of SmbDswrf
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDswrfEnum()
++
++macro=StringToEnum('SmbDswrf');
+Index: ../trunk-jpl/src/m/enum/SmbZTopEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbZTopEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbZTopEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbZTopEnum()
++%SMBZTOPENUM - Enum of SmbZTop
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbZTopEnum()
++
++macro=StringToEnum('SmbZTop');
+Index: ../trunk-jpl/src/m/enum/SmbDlwrfEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDlwrfEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDlwrfEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbDlwrfEnum()
++%SMBDLWRFENUM - Enum of SmbDlwrf
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDlwrfEnum()
++
++macro=StringToEnum('SmbDlwrf');
+Index: ../trunk-jpl/src/m/enum/SmbVEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbVEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbVEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbVEnum()
++%SMBVENUM - Enum of SmbV
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbVEnum()
++
++macro=StringToEnum('SmbV');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19527)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19528)
+@@ -345,11 +345,41 @@
+ def BalancethicknessOmegaEnum(): return StringToEnum("BalancethicknessOmega")[0]
+ def BalancethicknessD0Enum(): return StringToEnum("BalancethicknessD0")[0]
+ def SmbEnum(): return StringToEnum("Smb")[0]
++def SmbAnalysisEnum(): return StringToEnum("SmbAnalysis")[0]
+ def SmbSolutionEnum(): return StringToEnum("SmbSolution")[0]
+ def SmbNumRequestedOutputsEnum(): return StringToEnum("SmbNumRequestedOutputs")[0]
+ def SmbRequestedOutputsEnum(): return StringToEnum("SmbRequestedOutputs")[0]
+ def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
+ def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
++def SMBgembEnum(): return StringToEnum("SMBgemb")[0]
++def SmbTaEnum(): return StringToEnum("SmbTa")[0]
++def SmbVEnum(): return StringToEnum("SmbV")[0]
++def SmbDswrfEnum(): return StringToEnum("SmbDswrf")[0]
++def SmbDlwrfEnum(): return StringToEnum("SmbDlwrf")[0]
++def SmbPEnum(): return StringToEnum("SmbP")[0]
++def SmbEAirEnum(): return StringToEnum("SmbEAir")[0]
++def SmbPAirEnum(): return StringToEnum("SmbPAir")[0]
++def SmbTmeanEnum(): return StringToEnum("SmbTmean")[0]
++def SmbCEnum(): return StringToEnum("SmbC")[0]
++def SmbTzEnum(): return StringToEnum("SmbTz")[0]
++def SmbVzEnum(): return StringToEnum("SmbVz")[0]
++def SmbSpinUpEnum(): return StringToEnum("SmbSpinUp")[0]
++def SmbAIdxEnum(): return StringToEnum("SmbAIdx")[0]
++def SmbSwIdxEnum(): return StringToEnum("SmbSwIdx")[0]
++def SmbDenIdxEnum(): return StringToEnum("SmbDenIdx")[0]
++def SmbZTopEnum(): return StringToEnum("SmbZTop")[0]
++def SmbDzTopEnum(): return StringToEnum("SmbDzTop")[0]
++def SmbDzMinEnum(): return StringToEnum("SmbDzMin")[0]
++def SmbZYEnum(): return StringToEnum("SmbZY")[0]
++def SmbZMaxEnum(): return StringToEnum("SmbZMax")[0]
++def SmbZMinEnum(): return StringToEnum("SmbZMin")[0]
++def SmbOutputFreqEnum(): return StringToEnum("SmbOutputFreq")[0]
++def SmbASnowEnum(): return StringToEnum("SmbASnow")[0]
++def SmbAIceEnum(): return StringToEnum("SmbAIce")[0]
++def SmbCldFracEnum(): return StringToEnum("SmbCldFrac")[0]
++def SmbT0wetEnum(): return StringToEnum("SmbT0wet")[0]
++def SmbT0dryEnum(): return StringToEnum("SmbT0dry")[0]
++def SmbKEnum(): return StringToEnum("SmbK")[0]
+ def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
+ def SmbDelta18oEnum(): return StringToEnum("SmbDelta18o")[0]
+ def SmbDelta18oSurfaceEnum(): return StringToEnum("SmbDelta18oSurface")[0]
+Index: ../trunk-jpl/src/m/enum/SmbAnalysisEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbAnalysisEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbAnalysisEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbAnalysisEnum()
++%SMBANALYSISENUM - Enum of SmbAnalysis
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbAnalysisEnum()
++
++macro=StringToEnum('SmbAnalysis');
+Index: ../trunk-jpl/src/m/enum/SmbDenIdxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDenIdxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDenIdxEnum.m	(revision 19528)
+@@ -0,0 +1,11 @@
++function macro=SmbDenIdxEnum()
++%SMBDENIDXENUM - Enum of SmbDenIdx
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDenIdxEnum()
++
++macro=StringToEnum('SmbDenIdx');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19528-19529.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19528-19529.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19528-19529.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/test/NightlyRun/test333.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test333.py	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test333.py	(revision 19529)
+@@ -17,6 +17,7 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
+ md.transient=transient.setallnullparameters(md.transient)
+ md.transient.ishydrology=True
++md.transient.issmb=True
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.hydrology=hydrologydc()
+Index: ../trunk-jpl/test/NightlyRun/test423.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test423.py	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test423.py	(revision 19529)
+@@ -31,7 +31,7 @@
+ 
+ md.transient.isthermal=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isstressbalance=True
+ md.transient.isgroundingline=True
+ 
+Index: ../trunk-jpl/test/NightlyRun/test433.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test433.py	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test433.py	(revision 19529)
+@@ -32,7 +32,7 @@
+ 
+ md.transient.isthermal=False
+ md.transient.ismasstransport=False
+-md.transient.issmb=False
++md.transient.issmb=True
+ md.transient.isstressbalance=False
+ md.transient.isgroundingline=True
+ 
+Index: ../trunk-jpl/test/NightlyRun/test333.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test333.m	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test333.m	(revision 19529)
+@@ -4,6 +4,7 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md.transient=deactivateall(md.transient);
+ md.transient.ishydrology=1;
++md.transient.issmb=1;
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1);
+ md.hydrology=(hydrologydc);
+Index: ../trunk-jpl/test/NightlyRun/test423.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test423.m	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test423.m	(revision 19529)
+@@ -20,7 +20,7 @@
+ 
+ md.transient.isthermal=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isstressbalance=1;
+ md.transient.isgroundingline=1;
+ 
+Index: ../trunk-jpl/test/NightlyRun/test433.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test433.m	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test433.m	(revision 19529)
+@@ -21,7 +21,7 @@
+ 
+ md.transient.isthermal=0;
+ md.transient.ismasstransport=0;
+-md.transient.issmb=0;
++md.transient.issmb=1;
+ md.transient.isstressbalance=0;
+ md.transient.isgroundingline=1;
+ 
+Index: ../trunk-jpl/test/NightlyRun/test335.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test335.m	(revision 19528)
++++ ../trunk-jpl/test/NightlyRun/test335.m	(revision 19529)
+@@ -3,6 +3,7 @@
+ md=setmask(md,'','');
+ md.transient=deactivateall(md.transient);
+ md.transient.ishydrology=1;
++md.transient.issmb=1;
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',1);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19529-19530.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19529-19530.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19529-19530.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/shared/Enum/Synchronize.sh
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19529)
++++ ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19530)
+@@ -201,7 +201,6 @@
+ ENUM=0;
+ 
+ for NAMEENUM in $(cat temp); do
+-	echo $NAMEENUM
+ 
+ 	#Get name and enum of the line i
+ 	NAME=$(echo $NAMEENUM | sed -e "s/Enum//g")
Index: /issm/oecreview/Archive/19101-20495/ISSM-19530-19531.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19530-19531.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19530-19531.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19530)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19531)
+@@ -417,7 +417,7 @@
+ 	Input* thickness_input = element->GetInput(ThicknessEnum);            _assert_(thickness_input);
+ 	Input* drag_input      = NULL;
+ 	Friction* friction     = NULL;
+-	if(frictionlaw!=5){
++	if(frictionlaw!=5 && frictionlaw!=1){
+ 		drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
+ 	}
+ 	else{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19531-19532.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19531-19532.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19531-19532.diff	(revision 20498)
@@ -0,0 +1,249 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19532)
+@@ -0,0 +1,51 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.1-public.src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.1.0.src/* src
++rm -rf dakota-6.1.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++#patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/DakotaDev.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/DakotaDev.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/DakotaDev.cmake.patch	(revision 19532)
+@@ -0,0 +1,16 @@
++4,8c4,8
++< set(DAKOTA_HAVE_MPI TRUE CACHE BOOL "Enable MPI in DAKOTA?")
++< set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++< set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++<   "Enable DAKOTA specification maintenance mode?")
++< set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++---
++> #set(DAKOTA_HAVE_MPI TRUE CACHE BOOL "Enable MPI in DAKOTA?")
++> #set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++> #set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++> #  "Enable DAKOTA specification maintenance mode?")
++> #set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++14c14
++< #set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
++---
++> set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.cpp.patch	(revision 19532)
+@@ -0,0 +1,24 @@
++51a54,76
++> /** This constructor is provided for the ISSM software, to run serial
++>  * Dakota in a parallel MPI ring: */
++> ParallelLibrary::ParallelLibrary(char* serial_mode):
++>	  mpiManager(dummy_mpi_mgr), programOptions(dummy_prg_opt),
++>	    outputManager(dummy_out_mgr), dummyFlag(true), outputTimings(false)
++> {
++>   initialize_timers();
++> 
++>   // do not initialize MPI.  Get worldRank/worldSize if available
++>   ParallelLevel pl;
++> #ifdef HAVE_MPI // mpi available, we still don't want to run in parallel for Dakota!
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 MPI executable in serial mode on CPU 0 for ISSM." << std::endl;
++> #else // mpi not available
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 serial executable in serial mode for ISSM." << std::endl;
++> #endif // HAVE_MPI
++> 
++>   parallelLevels.push_back(pl);
++>   increment_parallel_configuration();
++> }
++> 
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDLocalReliability.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDLocalReliability.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDLocalReliability.cpp.patch	(revision 19532)
+@@ -0,0 +1,9 @@
++2645a2646
++> 		 // add sensitivity output to importance factors (jes, 8/06/10)
++2651c2652,2655
++< 	    << std::setw(width) << impFactor(j,i) << '\n';
++---
++> 	    << std::setw(width) << impFactor(j,i) 
++> 		 << "  Sensitivity = "
++> 		 << std::resetiosflags(std::ios::adjustfield)
++> 		 << std::setw(width) << fnGradsMeanX(j,i) << '\n';
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.pfe.patch	(revision 19532)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
++> set(LAPACK_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.hpp.patch	(revision 19532)
+@@ -0,0 +1,3 @@
++475a476,477
++>   /// library mode constructor, serial mode (for the ISSM software)
++>   ParallelLibrary(char* serial_mode);
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDSampling.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDSampling.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/NonDSampling.cpp.patch	(revision 19532)
+@@ -0,0 +1,25 @@
++780,786c780,787
++<   if (!subIteratorFlag) {
++<     nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++<     // archive the correlations to the results DB
++<     nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++< 				      div_labels, dsv_labels, drv_labels,
++< 				      iteratedModel.response_labels());
++<   }
++---
++> //don't compute for now, too expensive.
++> //  if (!subIteratorFlag) {
++> //   nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++> //    // archive the correlations to the results DB
++> //    nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++> //				      div_labels, dsv_labels, drv_labels,
++> //				      iteratedModel.response_labels());
++> //  }
++1277,1278c1278,1281
++<     nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++< 				    drv_labels,iteratedModel.response_labels());
++---
++> 
++> //don't output for now.
++> //    nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++> //				    drv_labels,iteratedModel.response_labels());
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch	(revision 19532)
+@@ -0,0 +1,14 @@
++64,65c64,65
++< #set( DAKOTA_HAVE MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 19532)
+@@ -0,0 +1,26 @@
++64,65c64,65
++< #set( DAKOTA_HAVE_MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE_MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.patch	(revision 19532)
+@@ -0,0 +1,4 @@
++47a48,50
++> set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries" FORCE)
++> set(BUILD_SHARED_LIBS OFF CACHE BOOL "Set to ON to build DSO libraries" FORCE)
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/pecos_global_defs.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/pecos_global_defs.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/pecos_global_defs.hpp.patch	(revision 19532)
+@@ -0,0 +1,4 @@
++25a26
++> #ifndef PI
++26a28
++> #endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19532-19533.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19532-19533.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19532-19533.diff	(revision 20498)
@@ -0,0 +1,150 @@
+Index: ../trunk-jpl/src/m/plot/plot_elementstype.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_elementstype.m	(revision 19532)
++++ ../trunk-jpl/src/m/plot/plot_elementstype.m	(revision 19533)
+@@ -16,101 +16,99 @@
+ %plot
+ subplot(width,width,i);
+ 
+-plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options);
+-return;
+ if is2d
+-	posNONE=find(data==0);
+-	A=elements(posNONE,1); B=elements(posNONE,2); C=elements(posNONE,3); 
++	pos=find(data==0);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
+ 	p1=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',0,'FaceColor','flat','EdgeColor',edgecolor);
+-	posH=find(data==1);
+-	A=elements(posH,1); B=elements(posH,2); C=elements(posH,3); 
+-	p2=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',1,'FaceColor','flat','EdgeColor',edgecolor);
+-	posM=find(data==2);
+-	A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); 
+-	posM=find(data==3);
+-	A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); 
+-	p4=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',2,'FaceColor','flat','EdgeColor',edgecolor);
+-	posP=find(data==4);
+-	A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); 
+-	p5=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',3,'FaceColor','flat','EdgeColor',edgecolor);
+-	posS=find(data==5);
+-	A=elements(posS,1); B=elements(posS,2); C=elements(posS,3); 
+-	p6=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',4,'FaceColor','flat','EdgeColor',edgecolor);
+-	posMP=find(data==6);
+-	A=elements(posMP,1); B=elements(posMP,2); C=elements(posMP,3); 
+-	p7=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',5,'FaceColor','flat','EdgeColor',edgecolor);
+-	posPS=find(data==7);
+-	A=elements(posPS,1); B=elements(posPS,2); C=elements(posPS,3); 
+-	p8=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',7,'FaceColor','flat','EdgeColor',edgecolor);
+-	posMS=find(data==8);
+-	A=elements(posMS,1); B=elements(posMS,2); C=elements(posMS,3); 
+-	p9=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',6,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==1);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p2=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',2,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==2);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p3=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',3,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==3);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p4=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',4,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==4);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p5=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',5,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==5);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p6=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',6,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==6);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p7=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',7,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==7);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p8=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',8,'FaceColor','flat','EdgeColor',edgecolor);
++	pos=find(data==8);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
++	p9=patch( 'Faces', [A B C], 'Vertices', [x y z],'CData',9,'FaceColor','flat','EdgeColor',edgecolor);
+ else
+-	PosNONE=find(data==0);
+-	A=elements(PosNONE,1); B=elements(PosNONE,2); C=elements(PosNONE,3); D=elements(PosNONE,4); E=elements(PosNONE,5); F=elements(PosNONE,6);
++	pos=find(data==0);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p1=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 0,'FaceColor','flat','EdgeColor',edgecolor);
+-	posH=find(data==1);
+-	A=elements(posH,1); B=elements(posH,2); C=elements(posH,3); D=elements(posH,4); E=elements(posH,5); F=elements(posH,6);
++	pos=find(data==1);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p2=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 1,'FaceColor','flat','EdgeColor',edgecolor);
+-	posM=find(data==2);
+-	A=elements(posM,1); B=elements(posM,2); C=elements(posM,3); D=elements(posM,4); E=elements(posM,5); F=elements(posM,6);
++	pos=find(data==2);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p3=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 2,'FaceColor','flat','EdgeColor',edgecolor);
+-	posP=find(data==3);
+-	A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
++	pos=find(data==3);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p4=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+-	posP=find(data==3);
+-	A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
++	pos=find(data==3);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p5=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 3,'FaceColor','flat','EdgeColor',edgecolor);
+-	posS=find(data==4);
+-	A=elements(posS,1); B=elements(posS,2); C=elements(posS,3); D=elements(posS,4); E=elements(posS,5); F=elements(posS,6);
++	pos=find(data==4);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p6=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 4,'FaceColor','flat','EdgeColor',edgecolor);
+-	posP=find(data==5);
+-	A=elements(posP,1); B=elements(posP,2); C=elements(posP,3); D=elements(posP,4); E=elements(posP,5); F=elements(posP,6);
++	pos=find(data==5);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p7=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 5,'FaceColor','flat','EdgeColor',edgecolor);
+ 	%HOFS elements
+-	PosPS=find(data==7);
+-	A=elements(PosPS,1); B=elements(PosPS,2); C=elements(PosPS,3); D=elements(PosPS,4); E=elements(PosPS,5); F=elements(PosPS,6);
++	pos=find(data==7);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p8=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 7,'FaceColor','flat','EdgeColor',edgecolor);
+-	PosMS=find(data==6);
+-	A=elements(PosMS,1); B=elements(PosMS,2); C=elements(PosMS,3); D=elements(PosMS,4); E=elements(PosMS,5); F=elements(PosMS,6);
++	pos=find(data==6);
++	A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+ 	p9=patch( 'Faces', [A B C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
+ 	patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', 6,'FaceColor','flat','EdgeColor',edgecolor);
+-
+ end
+ legend([p1 p2 p3 p4 p5 p6 p7 p8 p9],...
+ 		'None','SIA','SSA','L1L2','HO',...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19533-19534.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19533-19534.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19533-19534.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19533)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 19534)
+@@ -337,7 +337,10 @@
+ 	Input* slopey_input    = element->GetInput(SurfaceSlopeYEnum);        _assert_(slopey_input);
+ 	Input* thickness_input = element->GetInput(ThicknessEnum);            _assert_(thickness_input);
+ 	Input* surface_input   = element->GetInput(SurfaceEnum);              _assert_(surface_input);
+-	Input* drag_input      = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
++	Input* drag_input      = NULL;
++	if(frictionlaw!=5 && frictionlaw!=1){
++		drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
++	}
+ 
+ 	Gauss* gauss=element->NewGauss();
+ 	for(int iv=0;iv<numvertices;iv++){
+@@ -347,7 +350,6 @@
+ 
+ 		thickness_input->GetInputValue(&thickness,gauss);
+ 		surface_input->GetInputValue(&surface,gauss);
+-		drag_input->GetInputValue(&drag,gauss);
+ 		slopex_input->GetInputValue(&slope[0],gauss);
+ 		slopey_input->GetInputValue(&slope[1],gauss);
+ 		slope2=slope[0]*slope[0]+slope[1]*slope[1];
+@@ -360,11 +362,13 @@
+ 				break;
+ 			case 2:
+ 				/*Ritz et al. 1996*/
++				drag_input->GetInputValue(&drag,gauss);
+ 				ub=drag*(rho_ice*gravity*thickness)*(rho_ice*gravity*thickness)*slope[0]/sqrt(slope2);
+ 				vb=drag*(rho_ice*gravity*thickness)*(rho_ice*gravity*thickness)*slope[1]/sqrt(slope2);
+ 				break;
+ 			case 3:
+ 				/*Rutt et al. 2009*/
++				drag_input->GetInputValue(&drag,gauss);
+ 				ub=-drag*rho_ice*gravity*thickness*slope[0];
+ 				vb=-drag*rho_ice*gravity*thickness*slope[1];
+ 				break;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19534-19535.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19534-19535.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19534-19535.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/m/parameterization/setflowequation.py
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setflowequation.py	(revision 19534)
++++ ../trunk-jpl/src/m/parameterization/setflowequation.py	(revision 19535)
+@@ -245,8 +245,6 @@
+ 
+ 	#Create vertices_type
+ 	md.flowequation.vertex_equation=numpy.zeros(md.mesh.numberofvertices,int)
+-	pos=numpy.nonzero(nodeonSIA)
+-	md.flowequation.vertex_equation[pos]=1
+ 	pos=numpy.nonzero(nodeonSSA)
+ 	md.flowequation.vertex_equation[pos]=2
+ 	pos=numpy.nonzero(nodeonL1L2)
+@@ -255,6 +253,9 @@
+ 	md.flowequation.vertex_equation[pos]=4
+ 	pos=numpy.nonzero(nodeonFS)
+ 	md.flowequation.vertex_equation[pos]=5
++	#DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority)
++	pos=numpy.nonzero(nodeonSIA)
++	md.flowequation.vertex_equation[pos]=1
+ 	if any(FSflag):
+ 		pos=numpy.nonzero(numpy.logical_not(nodeonFS))
+ 		if not (any(HOflag) or any(SSAflag)):
+Index: ../trunk-jpl/src/m/parameterization/setflowequation.m
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setflowequation.m	(revision 19534)
++++ ../trunk-jpl/src/m/parameterization/setflowequation.m	(revision 19535)
+@@ -257,8 +257,6 @@
+ 
+ %Create vertices_type
+ md.flowequation.vertex_equation=zeros(md.mesh.numberofvertices,1);
+-pos=find(nodeonSIA);
+-md.flowequation.vertex_equation(pos)=1;
+ pos=find(nodeonSSA);
+ md.flowequation.vertex_equation(pos)=2;
+ pos=find(nodeonL1L2);
+@@ -267,6 +265,9 @@
+ md.flowequation.vertex_equation(pos)=4;
+ pos=find(nodeonFS);
+ md.flowequation.vertex_equation(pos)=5;
++%DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority)
++pos=find(nodeonSIA);
++md.flowequation.vertex_equation(pos)=1;
+ if any(FSflag),
+ 	pos=find(~nodeonFS);
+ 	if(~any(HOflag) & ~any(SSAflag)),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19535-19536.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19535-19536.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19535-19536.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.pyc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19536-19537.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19536-19537.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19536-19537.diff	(revision 20498)
@@ -0,0 +1,8 @@
+Index: ../trunk-jpl/test/Archives/Archive306.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive303.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19537-19538.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19537-19538.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19537-19538.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19537)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19538)
+@@ -12,7 +12,7 @@
+ $ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+ 
+ #Untar 
+-tar -zxvf dakota-6.1-public.src.tar.gz
++tar -zxvf dakota-6.1-public-src.tar.gz
+ 
+ #Move Dakota to src directory
+ mv dakota-6.1.0.src/* src
Index: /issm/oecreview/Archive/19101-20495/ISSM-19538-19539.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19538-19539.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19538-19539.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 19538)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 19539)
+@@ -1,8 +1,8 @@
+ 64,65c64,65
+-< #set( DAKOTA_HAVE_MPI ON
++< #set( DAKOTA_HAVE MPI ON
+ < #     CACHE BOOL "Build with MPI enabled" FORCE)
+ ---
+-> set( DAKOTA_HAVE_MPI OFF
++> set( DAKOTA_HAVE MPI OFF
+ >      CACHE BOOL "Build with MPI disabled" FORCE)
+ 73,77c73,77
+ < #set(BOOST_ROOT
Index: /issm/oecreview/Archive/19101-20495/ISSM-19539-19540.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19539-19540.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19539-19540.diff	(revision 20498)
@@ -0,0 +1,142 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 19540)
+@@ -0,0 +1,51 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.1.0.src/* src
++rm -rf dakota-6.1.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
++#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -D CMAKE_C_COMPILER=/usr/local/gfortran/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gfortran/bin/g++ -D CMAKE_Fortran_COMPILER=/usr/local/gfortran/bin/gfortran -D LDFLAGS="-std=gnu++0x" -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 19540)
+@@ -0,0 +1,56 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.1.0.src/* src
++rm -rf dakota-6.1.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.mac.patch
++#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -DBoost_NO_BOOST_CMAKE=TRUE \
++	   -DBoost_NO_SYSTEM_PATHS=TRUE \
++	   -DBOOST_ROOT:PATHNAME=$BOOST_ROOT \
++	   -DBoost_LIBRARY_DIRS:FILEPATH=${BOOST_ROOT}/lib \
++	   -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CC_COMPILER=gcc \
++	   -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19539)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19540)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+ #patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+ 
+ #Apply patches
Index: /issm/oecreview/Archive/19101-20495/ISSM-19540-19541.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19540-19541.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19540-19541.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 19540)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 19541)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
+-#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+ 
+ #Apply patches
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 19540)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 19541)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.mac.patch
+-#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+ 
+ #Apply patches
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19540)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19541)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
+-#patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+ #patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+ 
+ #Apply patches
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch	(revision 19540)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch	(revision 19541)
+@@ -1,8 +1,8 @@
+ 64,65c64,65
+-< #set( DAKOTA_HAVE MPI ON
++< #set( DAKOTA_HAVE_MPI ON
+ < #     CACHE BOOL "Build with MPI enabled" FORCE)
+ ---
+-> set( DAKOTA_HAVE MPI OFF
++> set( DAKOTA_HAVE_MPI OFF
+ >      CACHE BOOL "Build with MPI disabled" FORCE)
+ 91,93c91,93
+ < #set( CMAKE_INSTALL_PREFIX
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 19540)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch	(revision 19541)
+@@ -1,8 +1,8 @@
+ 64,65c64,65
+-< #set( DAKOTA_HAVE MPI ON
++< #set( DAKOTA_HAVE_MPI ON
+ < #     CACHE BOOL "Build with MPI enabled" FORCE)
+ ---
+-> set( DAKOTA_HAVE MPI OFF
++> set( DAKOTA_HAVE_MPI OFF
+ >      CACHE BOOL "Build with MPI disabled" FORCE)
+ 73,77c73,77
+ < #set(BOOST_ROOT
Index: /issm/oecreview/Archive/19101-20495/ISSM-19541-19542.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19541-19542.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19541-19542.diff	(revision 20498)
@@ -0,0 +1,66 @@
+Index: ../trunk-jpl/externalpackages/windows/configs/sdk10.0-win64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/configs/sdk10.0-win64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/windows/configs/sdk10.0-win64.sh	(revision 19542)
+@@ -0,0 +1,48 @@
++
++# -----------------------------------------------------------------------------
++# 
++# The following variables can vary from system to system and standard
++# installation is assumed throughout. If different directories were used when
++# installing MSVC, or Win SDK.
++#
++# TODO: Bring out the host machine arhictecture specific stuff from INCLUDE,
++# LIB and LIBPATH.
++#
++# -----------------------------------------------------------------------------
++
++# The version of Visual Studio is 10.0. Newer versions should work as well.
++export MSVC_DIR='C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\'
++
++# SDK change from 7 to 8 involved changing the locations of important 
++# libraries. If you wish to use 8.0 or 8.1 then you need to provide the 
++# directory of 'Windows Kits' instead.
++export MPI_DIR='C:\Programs\MPICH2'
++
++# Unfotunately, standard installation directories of Matlab usually include 
++# white spaces that are not handled correctly by the command interpreter. As
++# such, the directory where one would find Matlab headers and libraries might
++# need to be provided as environment variables.
++export MATLAB_DIR_WIN=`cygpath -w ${MATLAB_DIR}`
++export MATLAB_DIR_LIB="${MATLAB_DIR_WIN}\\extern\\lib\\win64\\microsoft"
++
++# Information about the .NET framework is required to run the MSVC toolchain
++export FrameworkDir='C:\Windows\Microsoft.NET\Framework64\'
++export FrameworkVersion=v4.0.30319
++
++# Windows Kit Information
++export WIN_KIT_DIR='C:\Program Files (x86)\Windows Kits\10'
++export WIN_KIT_VER='10.0.10240.0'
++export WIN_KIT_INC="${WIN_KIT_DIR}\\Include\\${WIN_KIT_VER}\\ucrt;${WIN_KIT_DIR}\\Include\\${WIN_KIT_VER}\\um;${WIN_KIT_DIR}\\Include\\${WIN_KIT_VER}\\shared"
++export WIN_KIT_LIB="${WIN_KIT_DIR}\\Lib\\${WIN_KIT_VER}\\um\\x64;${WIN_KIT_DIR}\\Lib\\${WIN_KIT_VER}\\ucrt\\x64"
++
++
++# LIB and LIBPATH seem redundant, but MSVC linker and compiler use different 
++# variables for the same purpose.
++export INCLUDE="${MSVC_DIR}include;${MATLAB_DIR_WIN}\\extern\\include;${WIN_KIT_INC};"
++export LIB="${MSVC_DIR}lib\\amd64;${MATLAB_DIR_LIB};${WIN_KIT_LIB};"
++export LIBPATH="${FrameworkDir}${FrameworkVersion};${MATLAB_DIR_LIB};${WIN_KIT_LIB};"
++export LIBPATH="${LIBPATH}${MSVC_DIR}lib\\amd64;${MSVC_DIR}bin\\amd64;"
++
++export MSVC_DIR_UNIX=`cygpath -u "${MSVC_DIR}"`
++export MPI_DIR_UNIX=`cygpath -u "${MPI_DIR}"`
++export PATH="${MSVC_DIR_UNIX}/bin/amd64:${MPI_DIR_UNIX}/bin:$PATH"
+Index: ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19541)
++++ ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19542)
+@@ -6,7 +6,7 @@
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
++#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+ tar -zxvf  petsc-3.5.3.tar.gz
Index: /issm/oecreview/Archive/19101-20495/ISSM-19542-19543.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19542-19543.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19542-19543.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19543)
+@@ -0,0 +1,58 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.1.0.src/* src
++rm -rf dakota-6.1.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
++
++#Apply patches
++#patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++#patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++#patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++#patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++#patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	-D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	-D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	-D LDFLAGS="-std=gnu++0x" \
++	-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++	-C $DAK_SRC/cmake/DakotaDev.cmake \
++	$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19543-19544.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19543-19544.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19543-19544.diff	(revision 20498)
@@ -0,0 +1,179 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/DakotaDev.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/DakotaDev.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/DakotaDev.cmake.patch	(revision 19544)
+@@ -0,0 +1,14 @@
++5,8c5,8
++< set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++< set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++<   "Enable DAKOTA specification maintenance mode?")
++< set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++---
++> #set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++> #set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++> #  "Enable DAKOTA specification maintenance mode?")
++> #set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++14c14
++< #set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
++---
++> set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.cpp.patch	(revision 19544)
+@@ -0,0 +1,24 @@
++51a54,76
++> /** This constructor is provided for the ISSM software, to run serial
++>  * Dakota in a parallel MPI ring: */
++> ParallelLibrary::ParallelLibrary(char* serial_mode):
++>	  mpiManager(dummy_mpi_mgr), programOptions(dummy_prg_opt),
++>	    outputManager(dummy_out_mgr), dummyFlag(true), outputTimings(false)
++> {
++>   initialize_timers();
++> 
++>   // do not initialize MPI.  Get worldRank/worldSize if available
++>   ParallelLevel pl;
++> #ifdef HAVE_MPI // mpi available, we still don't want to run in parallel for Dakota!
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 MPI executable in serial mode on CPU 0 for ISSM." << std::endl;
++> #else // mpi not available
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 serial executable in serial mode for ISSM." << std::endl;
++> #endif // HAVE_MPI
++> 
++>   parallelLevels.push_back(pl);
++>   increment_parallel_configuration();
++> }
++> 
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDLocalReliability.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDLocalReliability.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDLocalReliability.cpp.patch	(revision 19544)
+@@ -0,0 +1,9 @@
++2645a2646
++> 		 // add sensitivity output to importance factors (jes, 8/06/10)
++2651c2652,2655
++< 	    << std::setw(width) << impFactor(j,i) << '\n';
++---
++> 	    << std::setw(width) << impFactor(j,i) 
++> 		 << "  Sensitivity = "
++> 		 << std::resetiosflags(std::ios::adjustfield)
++> 		 << std::setw(width) << fnGradsMeanX(j,i) << '\n';
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.pfe.patch	(revision 19544)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
++> set(LAPACK_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.hpp.patch	(revision 19544)
+@@ -0,0 +1,3 @@
++475a476,477
++>   /// library mode constructor, serial mode (for the ISSM software)
++>   ParallelLibrary(char* serial_mode);
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDSampling.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDSampling.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDSampling.cpp.patch	(revision 19544)
+@@ -0,0 +1,25 @@
++780,786c780,787
++<   if (!subIteratorFlag) {
++<     nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++<     // archive the correlations to the results DB
++<     nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++< 				      div_labels, dsv_labels, drv_labels,
++< 				      iteratedModel.response_labels());
++<   }
++---
++> //don't compute for now, too expensive.
++> //  if (!subIteratorFlag) {
++> //   nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++> //    // archive the correlations to the results DB
++> //    nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++> //				      div_labels, dsv_labels, drv_labels,
++> //				      iteratedModel.response_labels());
++> //  }
++1277,1278c1278,1281
++<     nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++< 				    drv_labels,iteratedModel.response_labels());
++---
++> 
++> //don't output for now.
++> //    nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++> //				    drv_labels,iteratedModel.response_labels());
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 19544)
+@@ -0,0 +1,14 @@
++64,65c64,65
++< #set( DAKOTA_HAVE_MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE_MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 19544)
+@@ -0,0 +1,20 @@
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.patch	(revision 19544)
+@@ -0,0 +1,4 @@
++47a48,50
++> set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries" FORCE)
++> set(BUILD_SHARED_LIBS OFF CACHE BOOL "Set to ON to build DSO libraries" FORCE)
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/pecos_global_defs.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/pecos_global_defs.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/pecos_global_defs.hpp.patch	(revision 19544)
+@@ -0,0 +1,4 @@
++25a26
++> #ifndef PI
++26a28
++> #endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19544-19545.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19544-19545.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19544-19545.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19544)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19545)
+@@ -56,7 +56,6 @@
+ 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+ 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
+ 	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
+-	femmodel->parameters->FindParam(&smb_model,SmbEnum);
+ 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+@@ -86,7 +85,8 @@
+ 		 save_results=false;
+ 		femmodel->parameters->SetParam(save_results,SaveResultsEnum);
+ 
+-		if(isthermal && domaintype==Domain3DEnum){ 
++		if(issmb && isthermal && domaintype==Domain3DEnum){ 
++			femmodel->parameters->FindParam(&smb_model,SmbEnum);
+ 			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+ 			if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19545-19546.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19545-19546.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19545-19546.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/m/enum/list2
+===================================================================
+--- ../trunk-jpl/src/m/enum/list2	(revision 19545)
++++ ../trunk-jpl/src/m/enum/list2	(revision 19546)
+@@ -1,34 +0,0 @@
+-SurfaceforcingsHrefEnum.m
+-SurfaceforcingsDesfacEnum.m
+-SurfaceforcingsIsd18opdEnum.m
+-SurfaceforcingsIsmungsmEnum.m
+-SurfaceforcingsSealevEnum.m
+-SurfaceforcingsRlapsEnum.m
+-SurfaceforcingsRefreezeEnum.m
+-SurfaceforcingsEnum.m
+-SurfaceforcingsMonthlytemperaturesEnum.m
+-SurfaceforcingsS0tEnum.m
+-SurfaceforcingsMassBalanceEnum.m
+-SurfaceforcingsIsdelta18oEnum.m
+-SurfaceforcingsTemperaturesPresentdayEnum.m
+-SurfaceforcingsDelta18oEnum.m
+-SurfaceforcingsDelta18oSurfaceEnum.m
+-SurfaceforcingsDpermilEnum.m
+-SurfaceforcingsMeltEnum.m
+-SurfaceforcingsSmbrefEnum.m
+-SurfaceforcingsRunoffEnum.m
+-SurfaceforcingsBPosEnum.m
+-SurfaceforcingsRlapslgmEnum.m
+-SurfaceforcingsPrecipitationsLgmEnum.m
+-SurfaceforcingsBNegEnum.m
+-SurfaceforcingsS0pEnum.m
+-SurfaceforcingsIspddEnum.m
+-SurfaceforcingsIssmbgradientsEnum.m
+-SMBEnum.m
+-SurfaceforcingsTemperaturesLgmEnum.m
+-SurfaceforcingsPfacEnum.m
+-SurfaceforcingsEvaporationEnum.m
+-SurfaceforcingsPrecipitationsPresentdayEnum.m
+-SurfaceforcingsTdiffEnum.m
+-SurfaceforcingsPrecipitationEnum.m
+-SurfaceforcingsAccumulationEnum.m
Index: /issm/oecreview/Archive/19101-20495/ISSM-19546-19547.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19546-19547.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19546-19547.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19546)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19547)
+@@ -104,7 +104,7 @@
+ 			if ~isa(md.outputdefinition,'outputdefinition'),
+ 				md.outputdefinition=outputdefinition();
+ 			end
+-			%2014 January 9th
++			%2014 January 9th - 2015 Sept 10
+ 			if isa(md.smb,'smb'),
+ 				disp('Recovering old smb class');
+ 				mass_balance=md.smb.mass_balance;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19547-19548.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19547-19548.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19547-19548.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19547)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19548)
+@@ -85,11 +85,13 @@
+ 		 save_results=false;
+ 		femmodel->parameters->SetParam(save_results,SaveResultsEnum);
+ 
+-		if(issmb && isthermal && domaintype==Domain3DEnum){ 
+-			femmodel->parameters->FindParam(&smb_model,SmbEnum);
+-			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+-			if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+-			if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
++		if(isthermal && domaintype==Domain3DEnum){ 
++			if(issmb){
++				femmodel->parameters->FindParam(&smb_model,SmbEnum);
++				if(VerboseSolution()) _printf0_("   computing thermal regime\n");
++				if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
++				if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
++			}
+ 			thermal_core(femmodel);
+ 		}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19548-19549.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19548-19549.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19548-19549.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19548)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19549)
+@@ -88,10 +88,10 @@
+ 		if(isthermal && domaintype==Domain3DEnum){ 
+ 			if(issmb){
+ 				femmodel->parameters->FindParam(&smb_model,SmbEnum);
+-				if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+ 				if(smb_model==SMBpddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 				if(smb_model==SMBd18opddEnum) ResetBoundaryConditions(femmodel,ThermalAnalysisEnum);
+ 			}
++			if(VerboseSolution()) _printf0_("   computing thermal regime\n");
+ 			thermal_core(femmodel);
+ 		}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19549-19550.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19549-19550.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19549-19550.diff	(revision 20498)
@@ -0,0 +1,144 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 19549)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 19550)
+@@ -1,9 +1,3 @@
+-64,65c64,65
+-< #set( DAKOTA_HAVE_MPI ON
+-< #     CACHE BOOL "Build with MPI enabled" FORCE)
+----
+-> set( DAKOTA_HAVE_MPI OFF
+->      CACHE BOOL "Build with MPI disabled" FORCE)
+ 91,93c91,93
+ < #set( CMAKE_INSTALL_PREFIX
+ < #     "/path/to/Dakota/installation"
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 19549)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 19550)
+@@ -1,3 +1,12 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.a"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
+ 73,77c73,77
+ < #set(BOOST_ROOT
+ < #    "path/to/custom/Boost/install/directory"
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19549)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19550)
+@@ -21,28 +21,29 @@
+ #Set up Dakota cmake variables and config
+ export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
+ 
+ #Apply patches
+-#patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-#patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-#patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-#patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+ #patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+ 
+ #Configure dakota
+ cd $DAK_BUILD
+ 
+ cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	-D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	-D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-	-D LDFLAGS="-std=gnu++0x" \
+-	-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-	-C $DAK_SRC/cmake/DakotaDev.cmake \
+-	$DAK_SRC
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	   -D LDFLAGS="-std=gnu++0x" \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
+ cd ..
+ 
+ #Compile and install dakota
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 19550)
+@@ -0,0 +1,58 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.1.0.src/* src
++rm -rf dakota-6.1.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
++#patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
++#patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19550-19551.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19550-19551.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19550-19551.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19550)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19551)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
+ 
+@@ -32,7 +32,7 @@
+ patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+ patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+ patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-#patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+ 
+ #Configure dakota
+ cd $DAK_BUILD
Index: /issm/oecreview/Archive/19101-20495/ISSM-19551-19552.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19551-19552.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19551-19552.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19551)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19552)
+@@ -428,14 +428,17 @@
+ 		DAKOTAINCL=-I$DAKOTA_ROOT/include
+ 
+ 		AC_MSG_CHECKING(for dakota version)
+-		if test -f "$DAKOTA_ROOT/../src/src/CommandLineHandler.C"; then
+-			DAKOTA_VERSION=`cat $DAKOTA_ROOT/../src/src/CommandLineHandler.C | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
++		if test -f "$DAKOTA_ROOT/VERSION"; then
++		 DAKOTA_VERSION=`cat $DAKOTA_ROOT/VERSION | grep 'DAKOTA Version' | sed 's/.*DAKOTA Version //' | sed 's/ .*//' `
++		else if test -f "$DAKOTA_ROOT/../src/src/CommandLineHandler.C"; then
++		 DAKOTA_VERSION=`cat $DAKOTA_ROOT/../src/src/CommandLineHandler.C | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
+ 		else if test -f "$DAKOTA_ROOT/../src/src/CommandLineHandler.cpp"; then
+-			DAKOTA_VERSION=`cat $DAKOTA_ROOT/../src/src/CommandLineHandler.cpp | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
++		 DAKOTA_VERSION=`cat $DAKOTA_ROOT/../src/src/CommandLineHandler.cpp | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
+ 		else
+-			AC_MSG_ERROR([Dakota CommandLineHandler.C or CommandLineHandler.cpp file not found to determine DAKOTA_VERSION!]);
++		 AC_MSG_ERROR([Dakota CommandLineHandler.C or CommandLineHandler.cpp file not found to determine DAKOTA_VERSION!]);
+ 		fi
+ 		fi
++		fi
+ 		AC_MSG_RESULT($DAKOTA_VERSION)
+ 		AC_DEFINE_UNQUOTED([_DAKOTA_VERSION_],"$DAKOTA_VERSION",[Dakota version number])
+ 
+@@ -459,11 +462,15 @@
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++				else if test x$DAKOTA_VERSION = x6.1; then
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+ 				fi
+ 				fi
++				fi
+ 			;;
+ 			*darwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+@@ -475,11 +482,15 @@
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++				else if test x$DAKOTA_VERSION = x6.1; then
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+ 				fi
+-                                fi
++            fi
++				fi
+ 			;;
+ 		esac
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19552-19553.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19552-19553.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19552-19553.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch	(revision 19553)
+@@ -0,0 +1,29 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.a"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 19552)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch	(revision 19553)
+@@ -5,7 +5,7 @@
+ >  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
+ >  CACHE FILEPATH "Use installed MPI headers" FORCE)
+ > set( MPI_LIBRARY
+->  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.a"
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.so"
+ >  CACHE FILEPATH "Use installed MPI library" FORCE)
+ 73,77c73,77
+ < #set(BOOST_ROOT
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 19552)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 19553)
+@@ -32,7 +32,7 @@
+ patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+ patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+ patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-#patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+ 
+ #Configure dakota
+ cd $DAK_BUILD
Index: /issm/oecreview/Archive/19101-20495/ISSM-19553-19554.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19553-19554.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19553-19554.diff	(revision 20498)
@@ -0,0 +1,3835 @@
+Index: ../trunk-jpl/test/NightlyRun/gemb.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19553)
++++ ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19554)
+@@ -22,13 +22,23 @@
+ md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
+ md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
+ 
+-md.smb.Vz=inputs.LP.Vz;
+-md.smb.Tz=inputs.LP.Tz;
+-md.smb.Tmean=inputs.LP.Tmean;
+-md.smb.C=inputs.LP.C;
++md.smb.Vz=repmat(inputs.LP.Vz,md.mesh.numberofelements,1);
++md.smb.Tz=repmat(inputs.LP.Tz,md.mesh.numberofelements,1);
++md.smb.Tmean=repmat(inputs.LP.Tmean,md.mesh.numberofelements,1);
++md.smb.C=repmat(inputs.LP.C,md.mesh.numberofelements,1);
+ 
+ %settings
+-md.smb.spinUp=2;
++md.smb.ismelt=0;
++md.smb.isthermal=0;
++md.smb.isalbedo=0;
++md.transient.isstressbalance=0;
++md.transient.ismasstransport=0;
++md.transient.isthermal=0;
++md.timestepping.start_time=2000;
++md.timestepping.final_time=2001;
++md.timestepping.time_step=1/12; %monthly
+ 
++md.verbose=verbose('11111111');
++
+ %Run transient
+ md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19554)
+@@ -22,9 +22,6 @@
+ 	int    smb_model;
+ 	bool   isdelta18o,ismungsm,isd18opd;
+ 	
+-	/*Figure out smb model: */
+-	iomodel->Constant(&smb_model,SmbEnum);
+-
+ 	/*Update elements: */
+ 	int counter=0;
+ 	for(int i=0;i<iomodel->numberofelements;i++){
+@@ -35,10 +32,35 @@
+ 		}
+ 	}
+ 	
++	/*Figure out smb model: */
++	iomodel->Constant(&smb_model,SmbEnum);
++
++			
++	Input* bof=NULL;
++	Element* element=NULL;
+ 	switch(smb_model){
+ 		case SMBforcingEnum:
+ 			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
+ 			break;
++		case SMBgembEnum:
++			iomodel->FetchDataToInput(elements,SmbTaEnum);
++			iomodel->FetchDataToInput(elements,SmbVEnum);
++			iomodel->FetchDataToInput(elements,SmbDswrfEnum);
++			iomodel->FetchDataToInput(elements,SmbDlwrfEnum);
++			iomodel->FetchDataToInput(elements,SmbPEnum);
++			iomodel->FetchDataToInput(elements,SmbEAirEnum);
++			iomodel->FetchDataToInput(elements,SmbPAirEnum);
++			iomodel->FetchDataToInput(elements,SmbZTopEnum);
++			iomodel->FetchDataToInput(elements,SmbDzTopEnum);
++			iomodel->FetchDataToInput(elements,SmbDzMinEnum);
++			iomodel->FetchDataToInput(elements,SmbZYEnum);
++			iomodel->FetchDataToInput(elements,SmbZMaxEnum);
++			iomodel->FetchDataToInput(elements,SmbZMinEnum);
++			iomodel->FetchDataToInput(elements,SmbTmeanEnum);
++			iomodel->FetchDataToInput(elements,SmbCEnum);
++			iomodel->FetchDataToInput(elements,SmbTzEnum);
++			iomodel->FetchDataToInput(elements,SmbVzEnum);
++			break;
+ 		case SMBpddEnum:
+ 			iomodel->Constant(&isdelta18o,SmbIsdelta18oEnum);
+ 			iomodel->Constant(&ismungsm,SmbIsmungsmEnum);
+@@ -91,6 +113,8 @@
+ 		default:
+ 			_error_("Surface mass balance model "<<EnumToStringx(smb_model)<<" not supported yet");
+ 	}
++	
++	
+ 
+ }/*}}}*/
+ void SmbAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+@@ -111,6 +135,27 @@
+ 		case SMBforcingEnum:
+ 			/*Nothing to add to parameters*/
+ 			break;
++		case SMBgembEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(SmbAIdxEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbSwIdxEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDenIdxEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbOutputFreqEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbCldFracEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbT0wetEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbT0dryEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbKEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbASnowEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbAIceEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbDtEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsgraingrowthEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsalbedoEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsshortwaveEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsthermalEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsaccumulationEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmeltEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdensificationEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbIsturbulentfluxEnum));
++			break;
+ 		case SMBpddEnum:
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmungsmEnum));
+@@ -195,6 +240,9 @@
+ 		case SMBforcingEnum:
+ 			/*Nothing to be done*/
+ 			break;
++		case SMBgembEnum:
++			Gembx(femmodel);
++			break;
+ 		case SMBpddEnum:
+ 			bool isdelta18o,ismungsm;
+ 			femmodel->parameters->FindParam(&isdelta18o,SmbIsdelta18oEnum);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19553)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19554)
+@@ -353,6 +353,7 @@
+ 	SmbSolutionEnum,
+ 	SmbNumRequestedOutputsEnum,
+ 	SmbRequestedOutputsEnum,
++	SmbIsInitializedEnum,
+ 	/*SMBforcing*/
+ 	SMBforcingEnum,
+ 	SmbMassBalanceEnum,
+@@ -368,8 +369,9 @@
+ 	SmbTmeanEnum,
+ 	SmbCEnum,
+ 	SmbTzEnum,
+-	SmbVzEnum,
+-	SmbSpinUpEnum,
++	SmbVzEnum, 
++	SmbDtEnum,
++	SmbDzEnum,
+ 	SmbAIdxEnum,
+ 	SmbSwIdxEnum,
+ 	SmbDenIdxEnum,
+@@ -386,6 +388,22 @@
+ 	SmbT0wetEnum, 
+ 	SmbT0dryEnum, 
+ 	SmbKEnum, 
++	SmbDEnum,
++	SmbReEnum,
++	SmbGdnEnum,
++	SmbGspEnum,
++	SmbECEnum,
++	SmbWEnum,
++	SmbAEnum,
++	SmbTEnum,
++	SmbIsgraingrowthEnum,
++	SmbIsalbedoEnum,
++	SmbIsshortwaveEnum,
++	SmbIsthermalEnum,
++	SmbIsaccumulationEnum,
++	SmbIsmeltEnum,
++	SmbIsdensificationEnum,
++	SmbIsturbulentfluxEnum,
+ 	/*SMBpdd*/
+ 	SMBpddEnum,	
+ 	SmbDelta18oEnum,
+@@ -519,6 +537,7 @@
+ 	ControlInputEnum,
+ 	DatasetInputEnum,
+ 	DoubleInputEnum,
++	DoubleArrayInputEnum,
+ 	DataSetParamEnum,
+ 	DoubleMatArrayParamEnum,
+ 	DoubleMatParamEnum,
+@@ -695,6 +714,7 @@
+ 	/*}}}*/
+ 	/*Element Interpolations{{{*/
+ 	P0Enum,
++	P0ArrayEnum,
+ 	P1Enum,
+ 	P1DGEnum,
+ 	P1bubbleEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19554)
+@@ -357,6 +357,7 @@
+ 		case SmbSolutionEnum : return "SmbSolution";
+ 		case SmbNumRequestedOutputsEnum : return "SmbNumRequestedOutputs";
+ 		case SmbRequestedOutputsEnum : return "SmbRequestedOutputs";
++		case SmbIsInitializedEnum : return "SmbIsInitialized";
+ 		case SMBforcingEnum : return "SMBforcing";
+ 		case SmbMassBalanceEnum : return "SmbMassBalance";
+ 		case SMBgembEnum : return "SMBgemb";
+@@ -371,7 +372,8 @@
+ 		case SmbCEnum : return "SmbC";
+ 		case SmbTzEnum : return "SmbTz";
+ 		case SmbVzEnum : return "SmbVz";
+-		case SmbSpinUpEnum : return "SmbSpinUp";
++		case SmbDtEnum : return "SmbDt";
++		case SmbDzEnum : return "SmbDz";
+ 		case SmbAIdxEnum : return "SmbAIdx";
+ 		case SmbSwIdxEnum : return "SmbSwIdx";
+ 		case SmbDenIdxEnum : return "SmbDenIdx";
+@@ -388,6 +390,22 @@
+ 		case SmbT0wetEnum : return "SmbT0wet";
+ 		case SmbT0dryEnum : return "SmbT0dry";
+ 		case SmbKEnum : return "SmbK";
++		case SmbDEnum : return "SmbD";
++		case SmbReEnum : return "SmbRe";
++		case SmbGdnEnum : return "SmbGdn";
++		case SmbGspEnum : return "SmbGsp";
++		case SmbECEnum : return "SmbEC";
++		case SmbWEnum : return "SmbW";
++		case SmbAEnum : return "SmbA";
++		case SmbTEnum : return "SmbT";
++		case SmbIsgraingrowthEnum : return "SmbIsgraingrowth";
++		case SmbIsalbedoEnum : return "SmbIsalbedo";
++		case SmbIsshortwaveEnum : return "SmbIsshortwave";
++		case SmbIsthermalEnum : return "SmbIsthermal";
++		case SmbIsaccumulationEnum : return "SmbIsaccumulation";
++		case SmbIsmeltEnum : return "SmbIsmelt";
++		case SmbIsdensificationEnum : return "SmbIsdensification";
++		case SmbIsturbulentfluxEnum : return "SmbIsturbulentflux";
+ 		case SMBpddEnum : return "SMBpdd";
+ 		case SmbDelta18oEnum : return "SmbDelta18o";
+ 		case SmbDelta18oSurfaceEnum : return "SmbDelta18oSurface";
+@@ -511,6 +529,7 @@
+ 		case ControlInputEnum : return "ControlInput";
+ 		case DatasetInputEnum : return "DatasetInput";
+ 		case DoubleInputEnum : return "DoubleInput";
++		case DoubleArrayInputEnum : return "DoubleArrayInput";
+ 		case DataSetParamEnum : return "DataSetParam";
+ 		case DoubleMatArrayParamEnum : return "DoubleMatArrayParam";
+ 		case DoubleMatParamEnum : return "DoubleMatParam";
+@@ -679,6 +698,7 @@
+ 		case GiadWdtEnum : return "GiadWdt";
+ 		case GiaWEnum : return "GiaW";
+ 		case P0Enum : return "P0";
++		case P0ArrayEnum : return "P0Array";
+ 		case P1Enum : return "P1";
+ 		case P1DGEnum : return "P1DG";
+ 		case P1bubbleEnum : return "P1bubble";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19554)
+@@ -363,6 +363,7 @@
+ 	      else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
+ 	      else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
++	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
+ 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+ 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
+@@ -377,15 +378,16 @@
+ 	      else if (strcmp(name,"SmbC")==0) return SmbCEnum;
+ 	      else if (strcmp(name,"SmbTz")==0) return SmbTzEnum;
+ 	      else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
+-	      else if (strcmp(name,"SmbSpinUp")==0) return SmbSpinUpEnum;
++	      else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
++	      else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
+ 	      else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
+ 	      else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
+-	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
+-	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
++	      if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
++	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
++	      else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
+ 	      else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
+ 	      else if (strcmp(name,"SmbZY")==0) return SmbZYEnum;
+ 	      else if (strcmp(name,"SmbZMax")==0) return SmbZMaxEnum;
+@@ -397,6 +399,22 @@
+ 	      else if (strcmp(name,"SmbT0wet")==0) return SmbT0wetEnum;
+ 	      else if (strcmp(name,"SmbT0dry")==0) return SmbT0dryEnum;
+ 	      else if (strcmp(name,"SmbK")==0) return SmbKEnum;
++	      else if (strcmp(name,"SmbD")==0) return SmbDEnum;
++	      else if (strcmp(name,"SmbRe")==0) return SmbReEnum;
++	      else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum;
++	      else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
++	      else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
++	      else if (strcmp(name,"SmbW")==0) return SmbWEnum;
++	      else if (strcmp(name,"SmbA")==0) return SmbAEnum;
++	      else if (strcmp(name,"SmbT")==0) return SmbTEnum;
++	      else if (strcmp(name,"SmbIsgraingrowth")==0) return SmbIsgraingrowthEnum;
++	      else if (strcmp(name,"SmbIsalbedo")==0) return SmbIsalbedoEnum;
++	      else if (strcmp(name,"SmbIsshortwave")==0) return SmbIsshortwaveEnum;
++	      else if (strcmp(name,"SmbIsthermal")==0) return SmbIsthermalEnum;
++	      else if (strcmp(name,"SmbIsaccumulation")==0) return SmbIsaccumulationEnum;
++	      else if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum;
++	      else if (strcmp(name,"SmbIsdensification")==0) return SmbIsdensificationEnum;
++	      else if (strcmp(name,"SmbIsturbulentflux")==0) return SmbIsturbulentfluxEnum;
+ 	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
+ 	      else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
+ 	      else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
+@@ -487,7 +505,10 @@
+ 	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
+ 	      else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
+ 	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
+-	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
+ 	      else if (strcmp(name,"LevelsetStabilization")==0) return LevelsetStabilizationEnum;
+ 	      else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
+ 	      else if (strcmp(name,"LsfReinitializationAnalysis")==0) return LsfReinitializationAnalysisEnum;
+@@ -505,10 +526,7 @@
+ 	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
+ 	      else if (strcmp(name,"DataSet")==0) return DataSetEnum;
+ 	      else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"Loads")==0) return LoadsEnum;
++	      else if (strcmp(name,"Loads")==0) return LoadsEnum;
+ 	      else if (strcmp(name,"Materials")==0) return MaterialsEnum;
+ 	      else if (strcmp(name,"Nodes")==0) return NodesEnum;
+ 	      else if (strcmp(name,"Contours")==0) return ContoursEnum;
+@@ -523,6 +541,7 @@
+ 	      else if (strcmp(name,"ControlInput")==0) return ControlInputEnum;
+ 	      else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
+ 	      else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;
++	      else if (strcmp(name,"DoubleArrayInput")==0) return DoubleArrayInputEnum;
+ 	      else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
+ 	      else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
+ 	      else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
+@@ -609,7 +628,10 @@
+ 	      else if (strcmp(name,"Internal")==0) return InternalEnum;
+ 	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
+ 	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
+-	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"Misfit")==0) return MisfitEnum;
+ 	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
+ 	      else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum;
+ 	      else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
+@@ -628,10 +650,7 @@
+ 	      else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
+ 	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
+ 	      else if (strcmp(name,"SurfaceAbsMisfit")==0) return SurfaceAbsMisfitEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"Vel")==0) return VelEnum;
++	      else if (strcmp(name,"Vel")==0) return VelEnum;
+ 	      else if (strcmp(name,"Velocity")==0) return VelocityEnum;
+ 	      else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
+ 	      else if (strcmp(name,"Vx")==0) return VxEnum;
+@@ -694,6 +713,7 @@
+ 	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
+ 	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
+ 	      else if (strcmp(name,"P0")==0) return P0Enum;
++	      else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
+ 	      else if (strcmp(name,"P1")==0) return P1Enum;
+ 	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
+ 	      else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
+@@ -731,7 +751,10 @@
+ 	      else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
+ 	      else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
+ 	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
+-	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
+ 	      else if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum;
+ 	      else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
+ 	      else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
+@@ -751,10 +774,7 @@
+ 	      else if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum;
+ 	      else if (strcmp(name,"Outputdefinition24")==0) return Outputdefinition24Enum;
+ 	      else if (strcmp(name,"Outputdefinition25")==0) return Outputdefinition25Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum;
++	      else if (strcmp(name,"Outputdefinition26")==0) return Outputdefinition26Enum;
+ 	      else if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum;
+ 	      else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum;
+ 	      else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
+@@ -854,7 +874,10 @@
+ 	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
+ 	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
+ 	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
+-	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"MinVy")==0) return MinVyEnum;
+ 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
+ 	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
+ 	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
+@@ -874,10 +897,7 @@
+ 	      else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
+ 	      else if (strcmp(name,"None")==0) return NoneEnum;
+ 	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
++	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
+ 	      else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
+ 	      else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
+ 	      else if (strcmp(name,"Contact")==0) return ContactEnum;
+Index: ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19554)
+@@ -556,3 +556,73 @@
+ 	Matrix4x4Invert(&Ainv[0][0],A);
+ 	for(int i=0;i<4;i++) X[i]=Ainv[i][0]*B[0] + Ainv[i][1]*B[1] + Ainv[i][2]*B[2] + Ainv[i][3]*B[3];
+ }/*}}}*/
++
++void newcell(IssmDouble** pcell, IssmDouble newvalue, bool top, int m){  /*{{{*/
++
++	IssmDouble* cell=NULL;
++	IssmDouble* dummy=NULL;
++
++	/*recover pointer: */
++	cell=*pcell;
++
++	/*reallocate:*/
++	dummy=xNew<IssmDouble>(m+1); 
++
++	/*copy data:*/
++	for(int i=0;i<m;i++)dummy[i+1]=cell[i];
++
++	/*top or bottom layer:*/
++	if(top) dummy[0]=newvalue;
++	else dummy[m]=newvalue;
++	
++	/*delete and reassign: */
++	xDelete<IssmDouble>(cell); cell=dummy;
++
++	/*assign output pointer:*/
++	*pcell=cell;
++} /*}}}*/
++IssmDouble  cellsum(IssmDouble* cell, int m){ /*{{{*/
++
++	IssmDouble sum=0;
++
++	for(int i=0;i<m;i++)sum+=cell[i];
++
++	return sum;
++} /*}}}*/
++void celldelete(IssmDouble** pcell, int m, int* indices, int nind){ /*{{{*/
++
++	/*input: */
++	IssmDouble* cell=*pcell;
++	
++	/*output: */
++	IssmDouble* newcell=xNew<IssmDouble>(nind);
++
++	for(int i=0;i<nind;i++){
++		newcell[i]=cell[indices[i]];
++	}
++	
++	/*free allocation:*/
++	xDelete<IssmDouble>(cell);
++
++	/*assign output pointers: */
++	*pcell=newcell;
++} /*}}}*/
++void cellsplit(IssmDouble** pcell, int m, int i,IssmDouble scale) { /*{{{*/
++
++	/*input: */
++	IssmDouble* cell=*pcell;
++	
++	/*output: */
++	IssmDouble* newcell=xNew<IssmDouble>(m+1);
++
++	for(int j=0;j<i;j++)newcell[j]=cell[j]; 
++	newcell[i]=scale*cell[i];
++	newcell[i+1]=scale* cell[i]/2;
++	for(int j=i+2;j<m+1;j++)newcell[j]=cell[j-1];
++	
++	/*free allocation:*/
++	xDelete<IssmDouble>(cell);
++
++	/*assign output pointers: */
++	*pcell=newcell;
++} /*}}}*/
+Index: ../trunk-jpl/src/c/shared/Matrix/matrix.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Matrix/matrix.h	(revision 19553)
++++ ../trunk-jpl/src/c/shared/Matrix/matrix.h	(revision 19554)
+@@ -24,5 +24,9 @@
+ void Matrix4x4Invert(IssmDouble* Ainv, IssmDouble* A);
+ void Matrix4x4Determinant(IssmDouble* Adet,IssmDouble* A);
+ void Matrix4x4Solve(IssmDouble* X,IssmDouble* A,IssmDouble* B);
+-
++ 
++void newcell(IssmDouble** pcell, IssmDouble newvalue, bool top, int m);
++IssmDouble  cellsum(IssmDouble* cell, int m);
++void celldelete(IssmDouble** pcell, int m, int* indices, int nind);
++void cellsplit(IssmDouble** pcell, int m, int i,IssmDouble scale) ;
+ #endif //ifndef _MATRIXUTILS_H_
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19553)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19554)
+@@ -16,6 +16,18 @@
+ void PositiveDegreeDayx(FemModel* femmodel);
+ void SmbHenningx(FemModel* femmodel);
+ void SmbComponentsx(FemModel* femmodel);
+-void SmbMeltComponentsx(FemModel* femmodel);
++void SmbMeltComponentsx(FemModel* femmodel); 
+ 
++/*GEMB: */
++void       Gembx(FemModel* femmodel);
++void       GembgridInitialize(IssmDouble** pdz, int* psize, IssmDouble zTop, IssmDouble dzTop, IssmDouble zMax, IssmDouble zY); 
++IssmDouble Marbouty(IssmDouble T, IssmDouble d, IssmDouble dT);
++void grainGrowth(IssmDouble* pre, IssmDouble* pgdn, IssmDouble* pgsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx);
++void albedo(IssmDouble* a,int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt,int m);
++void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m);
++void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz);
++void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow); 
++void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin);
++void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,int m);
++void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz);
+ #endif  /* _SurfaceMassBalancex_H*/
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 0)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19554)
+@@ -0,0 +1,1806 @@
++/*!\file GEMB module from Alex Gardner.
++ * \brief: calculates SMB 
++ */
++
++#include "./SurfaceMassBalancex.h"
++#include "../../shared/shared.h"
++#include "../../toolkits/toolkits.h"
++
++const double Pi =3.141592653589793238462643383279502884197169399375105820974944592308;
++
++void Gembx(FemModel* femmodel){  /*{{{*/
++
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		element->SmbGemb();
++	}
++
++} /*}}}*/
++void GembgridInitialize(IssmDouble** pdz, int* psize, IssmDouble zTop, IssmDouble dzTop, IssmDouble zMax, IssmDouble zY){ /*{{{*/
++
++	/* This file sets up the initial grid spacing and total grid depth.  The
++	grid structure is set as constant grid length 'dzTop' for the top
++	'zTop' meters of the model grid. Bellow 'zTop' the gid length increases
++	linearly with depth */
++
++	/*intermediary:*/
++	IssmDouble dgpTop;
++	int gpTop, gpBottom;
++	int i;
++	IssmDouble gp0,z0;
++	IssmDouble* dzT=NULL;
++	IssmDouble* dzB=NULL;
++
++	/*output: */
++	int m;
++	IssmDouble* dz=NULL;
++
++	//----------------------Calculate Grid Lengths------------------------------
++	//calculate number of top grid points
++	dgpTop = zTop/dzTop;
++
++	//check to see if the top grid cell structure length (dzTop) goes evenly 
++	//into specified top structure depth (zTop). Also make sure top grid cell
++	//structure length (dzTop) is greater than 5 cm
++	if (dgpTop != round(dgpTop)){
++		_error_("top grid cell structure length does not go evenly into specified top structure depth, adjust dzTop or zTop");
++	}
++	else if(dzTop < 0.05){
++		_printf_("initial top grid cell length (dzTop) is < 0.05 m");
++	}
++	gpTop=round(dgpTop);
++
++	//initialize top grid depth vector
++	dzT = xNew<IssmDouble>(gpTop); 
++	for (i=0;i<gpTop;i++)dzT[i]=dzTop;
++
++	//bottom grid cell depth = x*zY^(cells from to structure)
++	//figure out the number of grid points in the bottom vector (not known a priori)
++	gp0 = dzTop;
++	z0 = zTop;
++	gpBottom = 0;
++	while (zMax > z0){
++		gp0= gp0 * zY;
++		z0 = z0 + gp0;
++		gpBottom++;
++	}
++   //initialize bottom vectors
++	dzB = xNewZeroInit<IssmDouble>(gpBottom);
++	gp0 = dzTop;
++	z0 = zTop;
++	for(i=0;i<gpBottom;i++){
++		gp0=gp0*zY;
++		dzB[i]=gp0;
++	}
++
++	//combine top and bottom dz vectors
++	dz = xNew<IssmDouble>(gpTop+gpBottom);
++	for(i=0;i<gpTop;i++){
++		dz[i]=dzT[i];
++	}
++	for(i=0;i<gpBottom;i++){
++		dz[gpTop+i]=dzB[i];
++	}
++
++	/*Free ressouces:*/
++	xDelete(dzT);
++	xDelete(dzB);
++	
++	//---------NEED TO IMPLEMENT A PROPER GRID STRECHING ALGORITHM------------
++
++	/*assign ouput pointers: */
++	*pdz=dz; 
++	*psize=gpTop+gpBottom;
++} /*}}}*/ 
++IssmDouble Marbouty(IssmDouble T, IssmDouble d, IssmDouble dT){ /*{{{*/
++
++	// calculates grain growth according to Fig. 9 of Marbouty, 1980
++	// ------NO GRAIN GROWTH FOR d > 400 kg m-3 because (H is set to zero)------
++	// ---------------this is a major limitation of the model-------------------
++
++	// initialize
++	IssmDouble F = 0, H=0, G=0, E;
++
++	// convert T from K to ºC
++	T = T - 273.15;
++
++	// temperature coefficient F
++	if(T>-6.0) F =  0.7 + ((T/-6) * 0.3);
++	if(T<=-6.0 && T>-22.0) F =  1 - ((T+6)/-16 * 0.8);
++	if(T<=-22.0 && T>=-40.0) F =  0.2 - ((T+22)/-18 * 0.2);
++
++	// density coefficient F
++	if(d<150) H=1.0;
++
++	if(d>=150 & d<400) H = 1 - ((d-150)/250);
++
++	// temperature gradient coefficient G
++	if(dT >= 0.16 && dT < 0.25) G = ((dT - 0.16)/0.09) * 0.1;
++	if(dT >= 0.25 && dT < 0.4)  G = 0.1 + (((dT - 0.25)/0.15) * 0.57);
++	if(dT >= 0.4  && dT < 0.5)  G = 0.67 + (((dT - 0.4)/0.1) * 0.23);
++	if(dT >= 0.5  && dT < 0.7)  G = 0.9 + (((dT - 0.5)/0.2) * 0.1);
++	if(dT >= .7              )  G = 1.0;
++
++	// model time growth constant E
++	E = 0.09;        //[mm d-1]
++
++	// grouped coefficient Q
++	return F*H*G*E;
++
++} /*}}}*/
++void grainGrowth(IssmDouble* re, IssmDouble* gdn, IssmDouble* gsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx){ /*{{{*/
++
++	/*Created by: Alex S. Gardner, University of Alberta
++
++	 *Description*: models the effective snow grain size
++
++	 *Reference:*
++	 DENDRITIC SNOW METAMORPHISM:
++	 Brun, E., P. David, M. Sudul, and G. Brunot, 1992: A numerical model to
++	 simulate snow-cover stratigraphy for operational avalanche forecasting.
++	 Journal of Glaciology, 38, 13-22.
++
++	 NONDENDRITIC SNOW METAMORPHISM:
++	 Dry snow metamorphism:
++	 Marbouty, D., 1980: An experimental study of temperature-gradient
++	 metamorphism. Journal of Glaciology, 26, 303-312.
++
++	 WET SNOW METAMORPHISM:
++	 Brun, E., 1989: Investigation on wet-snow metamorphism in respect of
++	 liquid-water content. Annals of Glaciology, 13, 22-26.
++
++	 INPUTS
++	 * T: grid cell temperature [k]
++	 * dz: grid cell depth [m]
++	 * d: grid cell density [kg m-3]
++	 * W: water content [kg/m^2]
++	 * re: effective grain size [mm]
++	 * gdn: grain dentricity
++	 * gsp: grain sphericity
++	 * dt: time step of input data [s]
++
++	 OUTPUTS
++	 * re: effective grain size [mm]
++	 * gdn: grain dentricity
++	 * gsp: grain sphericity*/
++
++	/*intermediary: */
++	IssmDouble  dt;
++	IssmDouble* gsz=NULL;
++	IssmDouble* dT=NULL;
++	IssmDouble* zGPC=NULL;
++	IssmDouble* lwc=NULL;
++	IssmDouble  Q=0;
++
++	/*only when aIdx = 1 or 2 do we run grainGrowth: */
++	if(aIdx!=1 & aIdx!=2){
++		/*come out as we came in: */
++		return;
++	}
++
++	/*Figure out grain size from effective grain radius: */
++	gsz=xNew<IssmDouble>(m); for(int i=0;i<m;i++)gsz[i]=re[i]*2;
++
++	/*Convert dt from seconds to day: */
++	dt=smb_dt/86400;
++
++	/*Determine liquid-water content in percentage: */
++	lwc=xNew<IssmDouble>(m); for(int i=0;i<m;i++)lwc[i]= W[i] / (d[i]*dz[i])*100.0;
++
++	//set maximum water content by mass to 9 percent (Brun, 1980)
++	for(int i=0;i<m;i++)if(lwc[i]>9) lwc[i]=9.0;
++
++
++	/* Calculate temperature gradiant across grid cells 
++	 * Returns the avereage gradient across the upper and lower grid cell */
++
++	//initialize
++	dT=xNewZeroInit<IssmDouble>(m); 
++
++	//depth of grid point center from surface
++	zGPC=xNewZeroInit<IssmDouble>(m);  
++	for(int i=0;i<m;i++){
++		for (int j=0;j<=i;j++) zGPC[i]+=dz[j];
++		zGPC[i]-=dz[i]/2;
++	}
++
++	// Take forward differences on left and right edges
++	dT[0] = (T[1] - T[0])/(zGPC[1]-zGPC[0]);
++	dT[m-1] = (T[m-1] - T[m-2])/(zGPC[m-1]-zGPC[m-2]);
++
++	//Take centered differences on interior points
++	for(int i=1;i<m-1;i++) dT[i] = (T[i+1]-T[i-1])/(zGPC[i+1]-zGPC[i-1]);
++
++	// take absolute value of temperature gradient
++	for(int i=0;i<m;i++)dT[i]=abs(dT[i]);
++	
++	/*Snow metamorphism. Depends on value of snow dendricity and wetness of the snowpack: */
++	for(int i=0;i<m;i++){
++		if (gdn[i]>0){
++
++			//_printf_("Dendritic dry snow metamorphism\n");
++
++			//index for dentricity > 0 and T gradients < 5 degC m-1 and >= 5 degC m-1
++			if(dT[i]<5){
++				//determine coefficients
++				IssmDouble A = - 2e8 * exp(-6e3 / T[i]) * dt;
++				IssmDouble B = 1e9 * exp(-6e3 / T[i]) * dt;
++				//new dentricity and sphericity for dT < 5 degC m-1
++				gdn[i] += A;
++				gsp[i] += B;
++			}
++			else{
++				// new dendricity and sphericity for dT >= 5 degC m-1
++
++				//determine coefficients
++				IssmDouble C = (-2e8 * exp(-6e3 / T[i]) * dt) * pow(dT[i],.4);
++				gdn[i] +=C;
++				gsp[i] +=C;
++			}
++
++			// wet snow metamorphism
++			if(W[i]>0){
++
++				//_printf_("D}ritic wet snow metamorphism\n");
++
++				//determine coefficient
++				IssmDouble D = (1/16) * pow(lwc[i],3.0) * dt;
++
++				// new dendricity and sphericity for wet snow
++				gdn[i] -= D;
++				gsp[i] += D;
++			}
++
++			// dendricity and sphericity can not be > 1 or < 0
++			if (gdn[i]<0)gdn[i]=0.0;
++			if (gsp[i]<0)gsp[i]=0.0;
++			if (gdn[i]>1)gdn[i]=1.0;
++			if (gsp[i]>1)gsp[i]=1.0;
++
++			// determine new grain size (mm)
++			gsz[i] = 0.1 + (1-gdn[i])*0.25 + (0.5-gsp[i])*0.1;
++
++		}
++		else{
++
++			/*Dry snow metamorphism (Marbouty, 1980) grouped model coefficinets
++			 *from Marbouty, 1980: Figure 9*/
++
++			//_printf_("Nond}ritic snow metamorphism\n");
++			Q = Marbouty(T[i],d[i],dT[i]);
++
++			// calculate grain growth
++			gsz[i] += Q* dt;
++
++			//Wet snow metamorphism (Brun, 1989)
++			if(W[i]>0){
++				//_printf_("Nond}ritic wet snow metamorphism\n");
++				//wet rate of change coefficient
++				IssmDouble E = 1.28e-8 + (4.22e-10 * pow(lwc[i],3.0))* (dt *86400);   // [mm^3 s^-1]
++
++				// calculate change in grain volume and convert to grain size
++				gsz[i] = 2 * pow(3/(Pi * 4)*((4 / 3)*Pi*pow(gsz[i]/2,3.0) + E),1.0/3.0);
++
++			}
++
++			// grains with sphericity == 1 can not have grain sizes > 2 mm (Brun, 1992)
++			if (gsp[i]==1.0 && gsz[i]>2) gsz[i]=2.0;
++
++			// grains with sphericity == 0 can not have grain sizes > 5 mm (Brun, 1992)
++			if (gsp[i]!=1.0 && gsz[i]>5.0) gsz[i]=5.0;
++		}
++
++		//convert grain size back to effective grain radius: 
++		re[i]=gsz[i]/2;
++	}
++	
++	/*Free ressources:*/
++	xDelete<IssmDouble>(gsz);
++	xDelete<IssmDouble>(dT);
++	xDelete<IssmDouble>(zGPC);
++	xDelete<IssmDouble>(lwc);
++
++}  /*}}}*/
++void albedo(IssmDouble* a, int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* TK, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt, int m) { /*{{{*/
++
++	//// Calculates Snow, firn and ice albedo as a function of:
++	//   1 : effective grain radius (Gardner & Sharp, 2009)
++	//   2 : effective grain radius (Brun et al., 2009)
++	//   3 : density and cloud amount (Greuell & Konzelmann, 1994)
++	//   4 : exponential time decay & wetness (Bougamont & Bamber, 2005)
++
++	//// Inputs
++	// aIdx      = albedo method to use
++
++	// Methods 1 & 2
++	//   re      = surface effective grain radius [mm]
++
++	// Methods 3
++	//   d       = snow surface density [kg m-3]
++	//   n       = cloud amount
++	//   aIce    = albedo of ice
++	//   aSnow   = albedo of fresh snow
++
++	// Methods 4
++	//   aIce    = albedo of ice
++	//   aSnow   = albedo of fresh snow
++	//   a       = grid cell albedo from prevous time step;
++	//   T       = grid cell temperature [k]
++	//   W       = pore water [kg]
++	//   P       = precipitation [mm w.e.] or [kg m-3]
++	//   EC      = surface evaporation (-) condensation (+) [kg m-2]
++	//   t0wet   = time scale for wet snow (15-21.9) [d]
++	//   t0dry   = warm snow timescale [15] [d]
++	//   K       = time scale temperature coef. (7) [d]
++	//   dt      = time step of input data [s]
++
++	//// Output
++	//   a       = grid cell albedo 
++
++	//// Usage 
++	// Method 1
++	// a = albedo(1, 0.1); 
++
++	// Method 4
++	// a = albedo(4, [], [], [], 0.48, 0.85, [0.8 0.5 ... 0.48], ...
++	//   [273 272.5 ... 265], [0 0.001 ... 0], 0, 0.01, 15, 15, 7, 3600)
++        
++	//some constants:
++	const IssmDouble dSnow = 300;   // density of fresh snow [kg m-3]       
++	const IssmDouble dIce = 910;    // density of ice [kg m-3]
++
++	if(aIdx==1){ 
++		//function of effective grain radius
++        
++        //convert effective radius to specific surface area [cm2 g-1]
++		IssmDouble S = 3.0 / (.091 * re[0]);
++        
++        //determine broadband albedo
++        a[0]= 1.48 - pow(S,-.07);
++	}
++	else if(aIdx==2){
++		
++		// Spectral fractions  (Lefebre et al., 2003)
++        // [0.3-0.8um 0.8-1.5um 1.5-2.8um]
++        
++		IssmDouble sF[3] = {0.606, 0.301, 0.093};
++        
++        // convert effective radius to grain size in meters
++        IssmDouble gsz = (re[0] * 2) / 1000.0;
++        
++        // spectral range:
++        // 0.3 - 0.8um
++        IssmDouble a0 = fmin(0.98, 1 - 1.58 *pow(gsz,0.5));
++        // 0.8 - 1.5um
++        IssmDouble a1 = fmax(0, 0.95 - 15.4 *pow(gsz,0.5));
++        // 1.5 - 2.8um
++        IssmDouble a2 = fmax(0.127, 0.88 + 346.3*gsz - 32.31*pow(gsz,0.5));
++        
++        // broadband surface albedo
++        a[0] = sF[0]*a0 + sF[1]*a1 + sF[2]*a2;
++
++	}
++	else if(aIdx==3){
++		
++		// a as a function of density
++        
++        // calculate albedo
++        a[0] = aIce + (d[0] - dIce)*(aSnow - aIce) / (dSnow - dIce) + (0.05 * (cldFrac - 0.5));
++	}
++	else if(aIdx==4){
++		
++		// exponential time decay & wetness
++        
++        // change in albedo with time:
++        //   (d_a) = (a - a_old)/(t0)
++        // where: t0 = timescale for albedo decay
++        
++        dt = dt / 86400;    // convert from [s] to [d]
++        
++        // initialize variables
++		IssmDouble* t0=xNew<IssmDouble>(m);
++		IssmDouble* T=xNew<IssmDouble>(m);
++		IssmDouble* t0warm=xNew<IssmDouble>(m);
++		IssmDouble* d_a=xNew<IssmDouble>(m);
++        
++        // specify constants
++        // a_wet = 0.15;        // water albedo (0.15)
++        // a_new = aSnow        // new snow albedo (0.64 - 0.89)
++        // a_old = aIce;        // old snow/ice albedo (0.27-0.53)
++        // t0_wet = t0wet;      // time scale for wet snow (15-21.9) [d]
++        // t0_dry = t0dry;      // warm snow timescale [15] [d]
++        // K = 7                // time scale temperature coef. (7) [d]
++        // W0 = 300;            // 200 - 600 [mm]
++        const IssmDouble z_snow = 15;            // 16 - 32 [mm]
++        
++        // determine timescale for albedo decay
++		for(int i=0;i<m;i++)if(W[i]>0)t0[i]=t0wet; // wet snow timescale
++		for(int i=0;i<m;i++)T[i]=TK[i] - 273.15; // change T from K to degC
++		for(int i=0;i<m;i++) t0warm[i]= abs(T[i]) * K + t0dry; //// 'warm' snow timescale
++        for(int i=0;i<m;i++)if(W[i]==0.0 && T[i]>=-10)t0[i]= t0warm[i];
++        for(int i=0;i<m;i++)if(T[i]<-10) t0[i] =  10 * K + t0dry; // 'cold' snow timescale
++        
++        // calculate new albedo
++        for(int i=0;i<m;i++)d_a[i] = (a[i] - aIce) / t0[i] * dt;           // change in albedo
++        for(int i=0;i<m;i++)a[i] -= d_a[i];                            // new albedo
++        
++        // modification of albedo due to thin layer of snow or solid
++        // condensation (deposition) at the surface surface
++        
++        // check if condensation occurs & if it is deposited in solid phase
++        if ( EC > 0 && T[0] < 0) P = P + (EC/dSnow) * 1000;  // add cond to precip [mm]
++        
++        a[0] = aSnow - (aSnow - a[0]) * exp(-P/z_snow);
++        
++        //----------THIS NEEDS TO BE IMPLEMENTED AT A LATER DATE------------
++        // modification of albedo due to thin layer of water on the surface
++        // a_surf = a_wet - (a_wet - a_surf) * exp(-W_surf/W0);
++
++		/*Free ressources:*/
++		xDelete<IssmDouble>(t0);
++		xDelete<IssmDouble>(T);
++		xDelete<IssmDouble>(t0warm);
++		xDelete<IssmDouble>(d_a);
++
++	}
++	else _error_("albedo method switch should range from 1 to 4!");
++	
++	// Check for erroneous values
++	if (a[0] > 1) _printf_("albedo > 1.0\n");
++	else if (a[0] < 0) _printf_("albedo is negative\n");
++	else if (isnan(a[0])) _error_("albedo == NAN\n");
++}  /*}}}*/
++void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz) { /*{{{*/
++
++	/* ENGLACIAL THERMODYNAMICS*/
++	 
++	/* Description: 
++	   computes new temperature profile accounting for energy absorption and 
++	   thermal diffusion.*/
++
++	// INPUTS
++	//  T: grid cell temperature [k]
++	//  dz: grid cell depth [m]
++	//  d: grid cell density [kg m-3]
++	//  swf: shortwave radiation fluxes [W m-2]
++	//  dlwrf: downward longwave radiation fluxes [W m-2]
++	//  Ta: 2 m air temperature
++	//  V:  wind velocity [m s-1]
++	//  eAir: screen level vapor pressure [Pa]
++	//  Ws: surface water content [kg]
++	//  dt0: time step of input data [s]
++	//  elev: surface elevation [m a.s.l.] 
++	//  Vz: air temperature height above surface [m]
++	//  Tz: wind height above surface [m]
++
++	// OUTPUTS
++	// T: grid cell temperature [k]
++	// EC: evaporation/condensation [kg]
++	
++	/*intermediary: */
++	IssmDouble* K = NULL;
++	IssmDouble* KU = NULL;
++	IssmDouble* KD = NULL;
++	IssmDouble* KP = NULL;
++	IssmDouble* Au = NULL;
++	IssmDouble* Ad = NULL;
++	IssmDouble* Ap = NULL;
++	IssmDouble* Nu = NULL;
++	IssmDouble* Nd = NULL;
++	IssmDouble* Np = NULL;
++	IssmDouble* dzU = NULL;
++	IssmDouble* dzD = NULL;
++	IssmDouble* sw = NULL;
++	IssmDouble* dT_sw = NULL;
++	IssmDouble* lw = NULL;
++	IssmDouble* T0 = NULL;
++	IssmDouble* Tu = NULL;
++	IssmDouble* Td = NULL;
++
++	IssmDouble  z0;	
++	IssmDouble  dt;
++	IssmDouble max_fdt=0;
++	IssmDouble  Ts;
++	IssmDouble  L;
++	IssmDouble  eS;
++	IssmDouble  Ri;
++	IssmDouble  coefM;
++	IssmDouble  coefH;
++	IssmDouble An;
++	IssmDouble C;
++	IssmDouble shf;
++	IssmDouble SB;
++	IssmDouble CI; 
++	IssmDouble ds;
++	IssmDouble dAir;
++	IssmDouble TCs;
++	IssmDouble lhf;
++	IssmDouble EC_day;
++	IssmDouble dT_turb;
++	IssmDouble turb;
++	IssmDouble ulw;
++	IssmDouble dT_ulw;
++	IssmDouble dlw;
++	IssmDouble dT_dlw;
++	
++	/*outputs:*/
++	IssmDouble EC;
++
++	// INITIALIZE
++	CI = 2102;          // heat capacity of snow/ice (J kg-1 k-1)
++	// CA = 1005;                  // heat capacity of air (J kg-1 k-1)
++	// LF = 0.3345E6;              // latent heat of fusion(J kg-1)
++	// LV = 2.495E6;               // latent heat of vaporization(J kg-1)
++	// dIce = 910;                 // density of ice [kg m-3]
++	// dSnow = 300;                // density of snow [kg m-3]
++	SB = 5.67E-8;       // Stefan-Boltzmann constant [W m-2 K-4]
++
++	ds = d[0];      // density of top grid cell
++
++	// calculated air density [kg/m3]
++	dAir = 0.029 * pAir /(8.314 * Ta);
++
++	// thermal capacity of top grid cell [J/k]
++	TCs = d[0]*dz[0]*CI; 
++
++	//initialize Evaporation - Condenstation 
++	EC = 0;
++	
++	// check if all SW applied to surface or distributed throught subsurface
++	// swIdx = length(swf) > 1
++
++	// SURFACE ROUGHNESS (Bougamont, 2006)
++	// wind/temperature surface roughness height [m]
++	if (ds < 910 && Ws == 0) z0 = 0.00012;       // 0.12 mm for dry snow
++	else if (ds >= 910) z0 = 0.0032;             // 3.2 mm for ice
++	else z0 = 0.0013;                            // 1.3 mm for wet snow
++
++	// if V = 0 goes to infinity therfore if V = 0 change
++	if(V<.01)V=.01;
++	
++	// Bulk-transfer coefficient for turbulent fluxes
++	An =  pow(0.4,2) / pow(log(Tz/z0),2);     // Bulk-transfer coefficient
++	C = An * dAir * V;                        // shf & lhf common coefficient
++
++	// THERMAL CONDUCTIVITY (Sturm, 1997: J. Glaciology)
++	// calculate new K profile [W m-1 K-1]
++
++	// initialize conductivity
++	K= xNewZeroInit<IssmDouble>(m);
++
++	// for snow and firn (density < 910 kg m-3) (Sturn et al, 1997)
++	for(int i=0;i<m;i++) if(d[i]<910) K[i] = 0.138 - 1.01E-3 * d[i] + 3.233E-6 * (pow(d[i],2));
++
++	// for ice (density >= 910 kg m-3)
++	for(int i=0;i<m;i++) if(d[i]>=910) K[i] = 9.828 * exp(-5.7E-3*T[i]);
++
++	// THERMAL DIFFUSION COEFFICIENTS
++ 
++	// A discretization scheme which truncates the Taylor-Series expansion
++	// after the 3rd term is used. See Patankar 1980, Ch. 3&4
++ 
++	// discretized heat equation:
++ 
++	//                 Tp = (Au*Tu° + Ad*Td° + (Ap-Au-Ad)Tp° + S) / Ap
++ 
++	// where neighbor coefficients Au, Ap, & Ad are
++ 
++	//                   Au = [dz_u/2KP + dz_p/2KE]^-1
++	//                   Ad = [dz_d/2KP + dz_d/2KD]^-1 
++	//                   Ap = d*CI*dz/Dt 
++
++	// and u & d represent grid points up and down from the center grid point 
++	// p and // u & d represent grid points up and down from the center grid 
++	// point p and ° identifies previous time step values. S is a source term.
++
++	// u, d, and p conductivities
++	KU = xNew<IssmDouble>(m);
++	KD = xNew<IssmDouble>(m);
++	KP = xNew<IssmDouble>(m);
++	
++	KU[0] = UNDEF;
++	KD[m-1] = UNDEF;
++	for(int i=1;i<m;i++) KU[i]= K[i-1];
++	for(int i=0;i<m-1;i++) KD[i] = K[i+1];
++	for(int i=0;i<m;i++) KP[i] = K[i];
++
++	// determine u, d & p cell widths
++	dzU = xNew<IssmDouble>(m);
++	dzD = xNew<IssmDouble>(m);
++	dzU[0]=UNDEF;
++	dzD[m-1]=UNDEF;
++	
++	for(int i=1;i<m;i++) dzU[i]= dz[i-1];
++	for(int i=0;i<m-1;i++) dzD[i] = dz[i+1];
++
++	// determine minimum acceptable delta t (diffusion number > 1/2) [s]
++	dt=1e12; 
++	for(int i=0;i<m;i++)dt = fmin(dt,CI * pow(dz[i],2) * d[i]  / (3 * K[i]));
++
++	// smallest possible even integer of 60 min where diffusion number > 1/2
++	// must go evenly into one hour or the data frequency if it is smaller
++
++	// all integer factors of the number of second in a day (8600 [s])
++	int f[45] = {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 30, 36, 40, 45, 48, 50, 60,
++    72, 75, 80, 90, 100, 120, 144, 150, 180, 200, 225, 240, 300, 360, 400, 450, 600, 720, 900, 1200, 1800, 3600};
++
++	// return the min integer factor that is < dt
++	max_fdt=0;
++	for(int i=0;i<45;i++){
++		if (f[i]<dt)if(f[i]>=max_fdt)max_fdt=f[i];
++	}
++	dt=max_fdt;
++	
++	// determine mean (harmonic mean) of K/dz for u, d, & p
++	Au = xNew<IssmDouble>(m);
++	Ad = xNew<IssmDouble>(m);
++	Ap = xNew<IssmDouble>(m);
++	for(int i=0;i<m;i++){
++		Au[i] = pow((dzU[i]/2/KP[i] + dz[i]/2/KU[i]),-1);
++		Ad[i] = pow((dzD[i]/2/KP[i] + dz[i]/2/KD[i]),-1);
++		Ap[i] = (d[i]*dz[i]*CI)/dt;
++	}
++	
++	// create "neighbor" coefficient matrix
++	Nu = xNew<IssmDouble>(m);
++	Nd = xNew<IssmDouble>(m);
++	Np = xNew<IssmDouble>(m);
++	for(int i=0;i<m;i++){
++		Nu[i] = Au[i] / Ap[i];
++		Nd[i] = Ad[i] / Ap[i];
++		Np[i]= 1 - Nu[i] - Nd[i];
++	}
++	
++	// specify boundary conditions: constant flux at bottom
++	Nu[m-1] = 0;
++	Np[m-1] = 1;
++	
++	// zero flux at surface
++	Np[0] = 1 - Nd[0];
++	
++	// Create neighbor arrays for diffusion calculations instead of a tridiagonal matrix
++	Nu[0] = 0;
++	Nd[m-1] = 0;
++	
++	/* RADIATIVE FLUXES*/
++
++	// energy supplied by shortwave radiation [J]
++	sw = xNew<IssmDouble>(m);
++	for(int i=0;i<m;i++) sw[i]= swf[i] * dt;
++	
++	// temperature change due to SW
++	dT_sw = xNew<IssmDouble>(m);
++	for(int i=0;i<m;i++) dT_sw[i]= sw[i] / (CI * d[i] * dz[i]);
++
++	// Upward longwave radiation flux is calculated from the snow surface
++	// temperature which is set equal to the average temperature of the
++	// top grid cells.
++
++	// energy supplied by downward longwave radiation to the top grid cell [J]
++	dlw = dlwrf * dt;
++
++	// temperature change due to dlw_surf
++	dT_dlw = dlw / TCs;
++
++	// PREALLOCATE ARRAYS BEFORE LOOP FOR IMPROVED PERFORMANCE
++	T0 = xNew<IssmDouble>(m+2);
++	Tu=xNew<IssmDouble>(m);
++	Td=xNew<IssmDouble>(m);
++
++	/* CALCULATE ENERGY SOURCES AND DIFFUSION FOR EVERY TIME STEP [dt]*/
++	for (int i=1;i<=dt0;i+=dt){
++
++		// PART OF ENERGY CONSERVATION CHECK
++		// store initial temperature
++		//T_init = T;
++    
++		// calculate temperature of snow surface (Ts)
++		// when incoming SW radition is allowed to penetrate the surface,
++		// the modeled energy balance becomes very sensitive to how Ts is
++		// calculated.  The estimated enegy balance & melt are significanly
++		// less when Ts is taken as the mean of the x top grid cells.
++		Ts = (T[0] + T[1])/2;
++		Ts = fmin(273.15,Ts);    // don't allow Ts to exceed 273.15 K (0°C)
++		
++		//TURBULENT HEAT FLUX
++    
++		// MoninObukhov Stability Correction
++		// Reference:
++		// Ohmura, A., 1982: Climate and Energy-Balance on the Arctic Tundra.
++		// Journal of Climatology, 2, 65-84.
++
++		// calculate the Bulk Richardson Number (Ri)
++		Ri = (2*9.81* (Vz - z0) * (Ta - Ts)) / ((Ta + Ts)* pow(V,2.0));
++		
++		// calculate Monin-Obukhov stability factors 'coefM' and 'coefH'
++    
++		// do not allow Ri to exceed 0.19
++		Ri = fmin(Ri, 0.19);
++
++		// calculate momentum 'coefM' stability factor
++		if (Ri > 0){
++			// if stable
++			coefM = 1/(1-5.2*Ri);
++		}
++		else {
++			coefM =pow (1-18*Ri,-0.25);
++		}
++		
++		// calculate heat/wind 'coef_H' stability factor
++		if (Ri < -0.03) coefH = 1.3 * coefM;
++		else coefH = coefM;
++		
++		//// Sensible Heat
++		// calculate the sensible heat flux [W m-2](Patterson, 1998)
++		shf = C * 1005 * (Ta - Ts);
++
++		// adjust using MoninObukhov stability theory
++		shf = shf / (coefM * coefH);
++
++		//// Latent Heat
++		// determine if snow pack is melting & calcualte surface vapour pressure over ice or liquid water
++		if (Ts >= 273.15){
++			L = 2.495E6;
++
++			// for an ice surface Murphy and Koop, 2005 [Equation 7]
++			eS = exp(9.550426 - 5723.265/Ts + 3.53068 * log(Ts) - 0.00728332 * Ts);
++		}
++		else{
++			L = 2.8295E6; // latent heat of sublimation for liquid surface (assume liquid on surface when Ts == 0 deg C)
++			// Wright (1997), US Meteorological Handbook from Murphy and Koop, 2005 Appendix A
++			eS = 611.21 * exp(17.502 * (Ts - 273.15) / (240.97 + Ts - 273.15));
++		}
++		
++		// Latent heat flux [W m-2]
++		lhf = C * L * (eAir - eS) * 0.622 / pAir;
++		
++		// adjust using MoninObukhov stability theory (if lhf '+' then there is energy and mass gained at the surface, 
++		// if '-' then there is mass and energy loss at the surface.
++		lhf = lhf / (coefM * coefH);
++
++		//mass loss (-)/acreation(+) due to evaporation/condensation [kg]
++		EC_day = lhf * 86400 / L;
++
++		// temperature change due turbulent fluxes
++		turb = (shf + lhf)* dt;
++		dT_turb = turb  / TCs;
++
++		// upward longwave contribution
++		ulw = - SB * pow(Ts,4.0) * dt;
++		dT_ulw = ulw / TCs;
++		
++		// new grid point temperature
++    
++		//SW penetrates surface
++		for(int i=0;i<m;i++) T[i] = T[i] + dT_sw[i];
++		T[0] = T[0] + dT_dlw + dT_ulw + dT_turb;
++		
++		// temperature diffusion
++		for(int i=0;i<m;i++)T0[1+i]=T[i];
++		for(int i=0;i<m;i++) Tu[i] = T0[i];
++		for(int i=0;i<m;i++) Td[i] = T0[2+i];
++    
++		for(int i=0;i<m;i++) T[i] = (Np[i] * T[i]) + (Nu[i] * Tu[i]) + (Nd[i] * Td[i]);
++		
++		// calculate cumulative evaporation (+)/condensation(-)
++		EC = EC + (EC_day/86400)*dt;
++    
++		/* CHECK FOR ENERGY (E) CONSERVATION [UNITS: J]
++		//energy flux across lower boundary (energy supplied by underling ice)
++		base_flux = Ad(-1)*(T_init()-T_init(-1)) * dt;
++
++		E_used = sum((T - T_init) * (d*dz*CI));
++		E_sup = ((sum(swf)  * dt) + dlw + ulw + turb + base_flux);
++
++		E_diff = E_used - E_sup;
++
++		if abs(E_diff) > 1E-6 || isnan(E_diff)
++		disp(T(1))
++		_error_("energy not conserved in thermodynamics equations");
++		*/
++	}
++	
++	/*Free ressources:*/
++	xDelete<IssmDouble>(K);
++	xDelete<IssmDouble>(KU);
++	xDelete<IssmDouble>(KD);
++	xDelete<IssmDouble>(KP);
++	xDelete<IssmDouble>(Au);
++	xDelete<IssmDouble>(Ad);
++	xDelete<IssmDouble>(Ap);
++	xDelete<IssmDouble>(Nu);
++	xDelete<IssmDouble>(Nd);
++	xDelete<IssmDouble>(Np);
++	xDelete<IssmDouble>(dzU);
++	xDelete<IssmDouble>(dzD);
++	xDelete<IssmDouble>(sw);
++	xDelete<IssmDouble>(dT_sw);
++	xDelete<IssmDouble>(lw);
++	xDelete<IssmDouble>(T0);
++	xDelete<IssmDouble>(Tu);
++	xDelete<IssmDouble>(Td);
++
++
++	/*Assign output pointers:*/
++	*pEC=EC;
++
++}  /*}}}*/
++void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m){ /*{{{*/
++
++	// DISTRIBUTES ABSORBED SHORTWAVE RADIATION WITHIN SNOW/ICE
++
++	// swIdx = 0 : all absorbed SW energy is assigned to the top grid cell
++
++	// swIdx = 1 : absorbed SW is distributed with depth as a function of:
++	//   1 : snow density (taken from Bassford, 2004)
++	//   2 : grain size in 3 spectral bands (Brun et al., 1992)
++
++	// Inputs
++	//   swIdx   = shortwave allowed to penetrate surface (0 = No, 1 = Yes)
++	//   aIdx    = method for calculating albedo (1-4)
++	//   dsw     = downward shortwave radiative flux [w m-2]
++	//   as      = surface albedo
++	//   d       = grid cell density [kg m-3]
++	//   dz      = grid cell depth [m]
++	//   re      = grid cell effective grain radius [mm]
++
++	// Outputs
++	//   swf     = absorbed shortwave radiation [W m-2]
++
++	/*outputs:*/
++	IssmDouble* swf = NULL;
++
++	// SHORTWAVE FUNCTION
++	// initialize variables
++	swf = xNewZeroInit<IssmDouble>(m);
++
++	if (swIdx == 0) {// all sw radation is absorbed in by the top grid cell
++        
++		// calculate surface shortwave radiation fluxes [W m-2]
++		swf[0] = (1 - as) * dsw;
++	}
++	else{ // sw radation is absorbed at depth within the glacier
++
++		if (aIdx == 2){    // function of effective radius (3 spectral bands)
++
++			IssmDouble * gsz=NULL;
++			IssmDouble * B1_cum=NULL;
++			IssmDouble * B2_cum=NULL;
++			IssmDouble* h =NULL;
++			IssmDouble* B1 =NULL;
++			IssmDouble* B2 =NULL;
++			IssmDouble* exp1 = NULL;
++			IssmDouble* exp2 = NULL;
++			IssmDouble*  Qs1 = NULL;
++			IssmDouble*  Qs2 = NULL;
++
++			// convert effective radius [mm] to grain size [m]
++			gsz=xNew<IssmDouble>(m);
++			for(int i=0;i<m;i++) gsz[i]= (re[i] * 2) / 1000;
++
++			// Spectral fractions [0.3-0.8um 0.8-1.5um 1.5-2.8um]
++			// (Lefebre et al., 2003)
++			IssmDouble sF[3] = {0.606, 0.301, 0.093};
++
++			// initialize variables
++			B1_cum=xNew<IssmDouble>(m+1);
++			B2_cum=xNew<IssmDouble>(m+1);
++			for(int i=0;i<m+1;i++){
++				B1_cum[i]=1;
++				B2_cum[i]=1;
++			}
++
++
++			// spectral albedos:
++			// 0.3 - 0.8um
++			IssmDouble a0 = fmin(0.98, 1 - 1.58 *pow(gsz[0],0.5));
++			// 0.8 - 1.5um
++			IssmDouble a1 = fmax(0, 0.95 - 15.4 *pow(gsz[0],0.5));
++			// 1.5 - 2.8um
++			IssmDouble a2 = fmax(0.127, 0.88 + 346.3*gsz[0] - 32.31*pow(gsz[0],0.5));
++
++			// separate net shortwave radiative flux into spectral ranges
++			IssmDouble swfS[3];
++			swfS[0] = (sF[0] * dsw) * (1 - a0);
++			swfS[1] = (sF[1] * dsw) * (1 - a1);
++			swfS[2] = (sF[2] * dsw) * (1 - a2);
++
++			// absorption coeficient for spectral range:
++			h =xNew<IssmDouble>(m);
++			B1 =xNew<IssmDouble>(m);
++			B2 =xNew<IssmDouble>(m);
++			for(int i=0;i<m;i++) h[i]= d[i] /(pow(gsz[i],0.5));
++			for(int i=0;i<m;i++) B1[i] = .0192 * h[i];                 // 0.3 - 0.8um
++			for(int i=0;i<m;i++) B2[i]= .1098 * h[i];                 // 0.8 - 1.5um
++			// B3 = +inf                     // 1.5 - 2.8um
++
++			// cumulative extinction factors
++			exp1 = xNew<IssmDouble>(m); 
++			exp2 = xNew<IssmDouble>(m); 
++			for(int i=0;i<m;i++) exp1[i]=exp(-B1[i]*dz[i]);
++			for(int i=0;i<m;i++) exp2[i]=exp(-B2[i]*dz[i]);
++
++			for(int i=0;i<m;i++){
++				IssmDouble cum1=exp1[0];
++				IssmDouble cum2=exp2[0];
++				for(int j=1;j<=i;j++){
++					cum1 = cum1*exp1[j];
++					cum2 = cum2*exp2[j];
++				}
++				B1_cum[i+1]=cum1;
++				B2_cum[i+1]=cum2;
++			}
++
++
++			// flux across grid cell boundaries
++			Qs1 = xNew<IssmDouble>(m+1);
++			Qs2 = xNew<IssmDouble>(m+1);
++			for(int i=0;i<m+1;i++){
++				Qs1[i] = swfS[0] * B1_cum[i];
++				Qs2[i] = swfS[1] * B2_cum[i];
++			}
++
++			// net energy flux to each grid cell
++			for(int i=0;i<m;i++) swf[i]= (Qs1[i]-Qs1[i+1]) + (Qs2[i]-Qs2[i+1]);
++
++			// add flux absorbed at surface
++			swf[0] = swf[0]+ swfS[2];
++
++			/*Free ressources: */
++			xDelete<IssmDouble>(gsz);
++			xDelete<IssmDouble>(B1_cum);
++			xDelete<IssmDouble>(B2_cum);
++			xDelete<IssmDouble>(h);
++			xDelete<IssmDouble>(B1);
++			xDelete<IssmDouble>(B2);
++			xDelete<IssmDouble>(exp1);
++			xDelete<IssmDouble>(exp2);
++			xDelete<IssmDouble>(Qs1);
++			xDelete<IssmDouble>(Qs2);
++		}
++		else{  //function of grid cell density
++
++			/*intermediary: */
++			IssmDouble* B_cum = NULL;
++			IssmDouble* exp_B = NULL;
++			IssmDouble* Qs    = NULL;
++			IssmDouble* B    = NULL;
++
++			// fraction of sw radiation absorbed in top grid cell (wavelength > 0.8um)
++			IssmDouble SWs = 0.36;
++
++			// SWs and SWss coefficients need to be better constranted. Greuell
++			// and Konzelmann 1994 used SWs = 0.36 and SWss = 0.64 as this the
++			// the // of SW radiation with wavelengths > and < 800 nm
++			// respectively.  This, however, may not account for the fact that
++			// the albedo of wavelengths > 800 nm has a much lower albedo.
++
++			// calculate surface shortwave radiation fluxes [W m-2]
++			IssmDouble swf_s = SWs * (1 - as) * dsw;
++
++			// calculate surface shortwave radiation fluxes [W m-2]
++			IssmDouble swf_ss = (1-SWs) * (1 - as) * dsw;
++
++			// SW allowed to penetrate into snowpack
++			IssmDouble Bs = 10;    // snow SW extinction coefficient [m-1] (Bassford,2006)
++			IssmDouble Bi = 1.3;   // ice SW extinction coefficient [m-1] (Bassford,2006)
++
++			// calculate extinction coefficient B [m-1] vector
++			B=xNew<IssmDouble>(m);
++			for(int i=0;i<m;i++) B[i] = Bs + (300 - d[i]) * ((Bs - Bi)/(910 - 300));
++
++			// cumulative extinction factor
++			B_cum = xNew<IssmDouble>(m+1);
++			exp_B = xNew<IssmDouble>(m);
++			for(int i=0;i<m;i++)exp_B[i]=exp(-B[i]*dz[i]);
++
++			B_cum[0]=1;
++			for(int i=0;i<m;i++){
++				IssmDouble cum_B=exp_B[0];
++				for(int j=1;j<=i;j++) cum_B=cum_B*exp_B[j];
++				B_cum[i+1]=  cum_B;
++			}
++
++			// flux across grid cell boundaries
++			Qs=xNew<IssmDouble>(m+1);
++			for(int i=0;i<m+1;i++) Qs[i] = swf_ss * B_cum[i];
++
++			// net energy flux to each grid cell
++			for(int i=0;i<m;i++) swf[i] = (Qs[i]-Qs[i+1]);
++
++			// add flux absorbed at surface
++			swf[0] = swf[0] + swf_s;
++
++			/*Free ressources:*/
++			xDelete<IssmDouble>(B_cum);
++			xDelete<IssmDouble>(exp_B);
++			xDelete<IssmDouble>(Qs);
++			xDelete<IssmDouble>(B);
++		}
++	}
++	/*Assign output pointers: */
++	*pswf=swf;
++} /*}}}*/ 
++void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow){ /*{{{*/
++
++	// Adds precipitation and deposition to the model grid
++
++	// Author: Alex Gardner, University of Alberta
++	// Date last modified: JAN, 2008
++
++	/* Description:
++	   adjusts the properties of the top grid cell to account for accumulation
++	   T_air & T = Air and top grid cell temperatures [K]
++	   dz = topgrid cell length [m]
++	   d = density of top grid gell [kg m-3]
++	   P = precipitation [mm w.e.] or [kg m-3]
++	   re = effective grain radius [mm]
++	   gdn = grain dentricity
++	   gsp = grain sphericity*/
++
++	// MAIN FUNCTION
++	// specify constants
++	const IssmDouble dIce = 910;     // density of ice [kg m-3]
++	const IssmDouble dSnow = 150;    // density of snow [kg m-3]
++	const IssmDouble reNew = 0.1;    // new snow grain size [mm]
++	const IssmDouble gdnNew = 1;     // new snow dendricity 
++	const IssmDouble gspNew = 0.5;   // new snow sphericity 
++
++	/*intermediary: */
++	IssmDouble* mInit=NULL;
++	bool        top=true;
++	IssmDouble  mass, massinit, mass_diff;
++
++	/*output: */
++	IssmDouble* T=NULL;
++	IssmDouble* dz=NULL;
++	IssmDouble* d=NULL;
++	IssmDouble* W=NULL;
++	IssmDouble* a=NULL;
++	IssmDouble* re=NULL;
++	IssmDouble* gdn=NULL;
++	IssmDouble* gsp=NULL;
++	int         m;
++
++	/*Recover pointers: */
++	T=*pT;
++	dz=*pdz;
++	d=*pd;
++	W=*pW;
++	a=*pa;
++	re=*pre;
++	gdn=*pgdn;
++	gsp=*pgsp;
++	m=*pm;
++
++	/*Allocate: */
++	mInit=xNew<IssmDouble>(m);
++
++	if (P > 0){
++		// determine initial mass
++		for(int i=0;i<m;i++) mInit[i]= d[i] * dz[i];
++	
++
++		if (T_air <= 273.15){ // if snow
++
++			IssmDouble  z_snow = P/dSnow;               // depth of snow
++
++			// if snow depth is greater than specified min dz, new cell created
++			if (z_snow > dzMin){
++
++				newcell(&T,T_air,top,m); //new cell T
++				newcell(&dz,z_snow,top,m); //new cell dz
++				newcell(&d,dSnow,top,m); //new cell d
++				newcell(&W,0,top,m); //new cell W
++				newcell(&a,aSnow,top,m); //new cell a
++				newcell(&re,reNew,top,m); //new cell grain size
++				newcell(&gdn,gdnNew,top,m); //new cell grain dendricity
++				newcell(&gsp,gspNew,top,m); //new cell grain sphericity
++				m=m+1;
++			}
++			else { // if snow depth is less than specified minimum dz snow
++
++				IssmDouble mass = mInit[0] + P;         // grid cell adjust mass
++
++				dz[0] = dz[0] + P/dSnow;    // adjust grid cell depth      
++				d[0] = mass / dz[0];    // adjust grid cell density
++
++				// adjust variables as a linearly weighted function of mass
++				// adjust temperature (assume P is same temp as air)
++				T[0] = (T_air * P + T[0] * mInit[0])/mass;
++
++				// adjust a, re, gdn & gsp
++				a[0] = (aSnow * P + a[0] * mInit[0])/mass;
++				re[0] = (reNew * P + re[0] * mInit[0])/mass;
++				gdn[0] = (gdnNew * P + gdn[0] * mInit[0])/mass;
++				gsp[0] = (gspNew * P + gsp[0] * mInit[0])/mass;
++			}
++		}
++		else{ // if rain    
++
++			/*rain is added by increasing the mass and temperature of the ice
++			  of the top grid cell.  Temperatures are set artifically high to
++			  account for the latent heat of fusion.  This is the same as
++			  directly adding liquid water to the the snow pack surface but
++			  makes the numerics easier.*/
++
++			IssmDouble LF = 0.3345E6;  // latent heat of fusion(J kg-1)
++			IssmDouble CI = 2102;      // specific heat capacity of snow/ice (J kg-1 k-1)
++
++			// grid cell adjust mass
++			mass = mInit[0] + P;
++
++			// adjust temperature
++			// liquid: must account for latent heat of fusion
++			T[0] = (P *(T_air + LF/CI) + T[0] * mInit[0]) / mass;
++
++			// adjust grid cell density
++			d[0] = mass / dz[0];
++
++			// if d > the density of ice, d = dIce
++			if (d[0] > dIce){
++				d[0] = dIce;           // adjust d
++				dz[0] = mass / d[0];    // dz is adjusted to conserve mass
++			}
++		}
++
++		// check for conservation of mass
++		mass=0; for(int i=0;i<m;i++)mass+=d[i]*dz[i]; 
++		massinit=0; for(int i=0;i<m;i++)massinit+=mInit[i];
++
++		mass_diff = mass - massinit - P;
++		mass_diff = round(mass_diff * 100)/100;
++
++		if (mass_diff > 0) _error_("mass not conserved in accumulation function");
++
++	}
++	/*Free ressources:*/
++	if(mInit)xDelete<IssmDouble>(mInit);
++
++	/*Assign output pointers:*/
++	*pT=T;
++	*pdz=dz;
++	*pd=d;
++	*pW=W;
++	*pa=a;
++	*pre=re;
++	*pgdn=gdn;
++	*pgsp=gsp;
++	*pm=m;
++} /*}}}*/
++void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin){ /*{{{*/
++
++	//// MELT ROUTINE
++
++	// Description:
++	// computes the quantity of meltwater due to snow temperature in excess of
++	// 0 deg C, determines pore water content and adjusts grid spacing
++
++	/*intermediary:*/
++	IssmDouble* m=NULL;
++	IssmDouble* maxF=NULL;
++	IssmDouble* dW=NULL;
++	IssmDouble* exsW=NULL;
++	IssmDouble* exsT=NULL;
++	IssmDouble* surpT=NULL;
++	IssmDouble* surpE=NULL;
++	IssmDouble* F=NULL;
++	IssmDouble* flxDn=NULL;
++	IssmDouble* R=NULL;
++	IssmDouble* ER=NULL;
++	IssmDouble* EI=NULL;
++	IssmDouble* EW=NULL;
++	IssmDouble* M=NULL;
++	int*       D=NULL;
++	
++	IssmDouble sumM;
++	IssmDouble sumER;
++	IssmDouble addE;
++	IssmDouble mSum0;
++	IssmDouble sumE0;
++	IssmDouble mSum1;
++	IssmDouble sumE1;
++	IssmDouble dE;
++	IssmDouble dm;
++	IssmDouble X;
++	IssmDouble Wi;
++	int        D_size;
++
++	/*outputs:*/
++	IssmDouble  mAdd;
++	IssmDouble  Rsum;
++	IssmDouble* T=*pT;
++	IssmDouble* d=*pd;
++	IssmDouble* dz=*pdz;
++	IssmDouble* W=*pW;
++	IssmDouble* a=*pa;
++	IssmDouble* re=*pre;
++	IssmDouble* gdn=*pgdn;
++	IssmDouble* gsp=*pgsp;
++	int         n=*pn;
++	
++	//// INITIALIZATION
++
++	/*Allocations: */
++	M=xNewZeroInit<IssmDouble>(n); 
++	maxF=xNew<IssmDouble>(n); 
++	dW=xNew<IssmDouble>(n); 
++
++	// specify constants
++	const IssmDouble CtoK = 273.15;  // clecius to Kelvin conversion
++	const IssmDouble CI = 2102;      // specific heat capacity of snow/ice (J kg-1 k-1)
++	const IssmDouble LF = 0.3345E6;  // latent heat of fusion(J kg-1)
++	const IssmDouble dPHC = 830;     // pore hole close off density[kg m-3]
++	const IssmDouble dIce = 910;     // density of ice [kg m-3]
++
++	// store initial mass [kg] and energy [J]
++	m=xNew<IssmDouble>(n); for(int i=0;i<n;i++) m[i] = dz[i]* d[i];                    // grid cell mass [kg]
++	EI=xNew<IssmDouble>(n); for(int i=0;i<n;i++)EI[i] = m[i] * T[i] * CI;               // initial enegy of snow/ice
++	EW=xNew<IssmDouble>(n); for(int i=0;i<n;i++)EW[i]= W[i] * (LF + CtoK * CI);     // initial enegy of water
++
++	mSum0 = cellsum(W,n) + cellsum(m,n);        // total mass [kg]
++	sumE0 = cellsum(EI,n) + cellsum(EW,n);      // total energy [J]
++
++	// initialize melt and runoff scalars
++	R = 0;          // runoff [kg]
++	sumM = 0;       // total melt [kg]
++	mAdd = 0;       // mass added/removed to/from base of model [kg]
++	addE = 0;       // energy added/removed to/from base of model [J]
++
++	// calculate temperature excess above 0 °C
++	exsT=xNewZeroInit<IssmDouble>(n);
++	for(int i=0;i<n;i++) exsT[i]= fmax(0, T[i] - CtoK);        // [K] to [°C]
++
++	// new grid point center temperature, T [K]
++	for(int i=0;i<n;i++) T[i]-=exsT[i];
++
++	// specify irreducible water content saturation [fraction]
++	const IssmDouble Swi = 0.07;                     // assumed constant after Colbeck, 1974
++
++	//// REFREEZE PORE WATER
++	// check if any pore water
++	if (cellsum(W,n) > 0){
++		// _printf_("PORE WATER REFREEZE");
++		// calculate maximum freeze amount, maxF [kg]
++		for(int i=0;i<n;i++) maxF[i] = fmax(0, -((T[i] - CtoK) * m[i] * CI) / LF);
++
++		// freeze pore water and change snow/ice properties
++		for(int i=0;i<n;i++) dW[i] = fmin(maxF[i], W[i]);    // freeze mass [kg]   
++		for(int i=0;i<n;i++) W[i] -= dW[i];                                            // pore water mass [kg]
++		for(int i=0;i<n;i++) m[i] += dW[i];                                            // new mass [kg]
++		for(int i=0;i<n;i++) d[i] = m[i] / dz[i];                                    // density [kg m-3]   
++		for(int i=0;i<n;i++) T[i] = T[i] + (dW[i]*(LF+(CtoK - T[i])*CI)/(m[i]*CI));      // temperature [K]
++
++		// if pore water froze in ice then adjust d and dz thickness
++		for(int i=0;i<n;i++)if(d[i]>dIce)d[i]=m[i]/d[i];
++	}
++
++	// squeeze water from snow pack
++	exsW=xNew<IssmDouble>(n); for(int i=0;i<n;i++){
++		Wi= (910 - d[i]) * Swi * (m[i] / d[i]);        // irreducible water content [kg]
++		exsW[i] = fmax(0, W[i] - Wi);                  // water "squeezed" from snow [kg]
++	}
++
++	//// MELT, PERCOLATION AND REFREEZE
++
++	// run melt algorithm if there is melt water or excess pore water
++	if ((cellsum(exsT,n) > 0) || (cellsum(exsW,n) > 0)){
++		
++		// _printf_(""MELT OCCURS");
++		// check to see if thermal energy exceeds energy to melt entire cell
++		// if so redistribute temperature to lower cells (temperature surplus)
++		// (maximum T of snow before entire grid cell melts is a constant
++		// LF/CI = 159.1342)
++		surpT=xNew<IssmDouble>(n); for(int i=0;i<n;i++)surpT[i] = fmax(0, exsT [i]- 159.1342);
++
++		if (cellsum(surpT,n) > 0 ){
++			// _printf_("T Surplus");
++			// calculate surplus energy
++			surpE=xNew<IssmDouble>(n); for(int i=0;i<n;i++)surpE[i] = surpT[i] * CI / m[i];
++			
++			int i = 0;
++			while (cellsum(surpE,n) > 0){
++				// use surplus energy to increase the temperature of lower cell
++				T[i+i] = surpE[i] * m[i+1]/CI + T[i+i];
++				surpT[i+1] = fmax(0, (T[i+1] - CtoK - 159.1342));
++				surpE[i+1] = surpT[i+1] * CI / m[i+1];
++
++				// adjust current cell properties (again 159.1342 is the max T)
++				T[i] = CtoK + 159.1342;
++				surpE[i] = 0;   
++				i = i + 1;
++			}
++			// recalculate temperature excess above 0 deg C
++			for(int i=0;i<n;i++) exsT[i] = fmax(0, T[i] - CtoK); 
++		}
++
++		// convert temperature excess to melt [kg]
++		for(int i=0;i<n;i++) M[i] = exsT[i] * d[i] * dz[i] * CI / LF;      // melt
++		sumM = cellsum(M,n);                                               // total melt [kg]
++
++		// calculate maximum refreeze amount, maxF [kg]
++		for(int i=0;i<n;i++)maxF[i] = fmax(0, -((T[i] - CtoK) * d[i] * dz[i] * CI)/ LF);
++
++		// initialize refreeze, runoff, flxDn and dW vectors [kg]
++		F = xNewZeroInit<IssmDouble>(n); 
++		R = xNewZeroInit<IssmDouble>(n);
++		for(int i=0;i<n;i++)dW[i] = 0;
++		flxDn=xNewZeroInit<IssmDouble>(n+1); for(int i=0;i<n;i++)flxDn[i+1]=F[i];
++
++		// determine the deepest grid cell where melt/pore water is generated
++		X = 0;
++		for(int i=n-1;i>=0;i--){
++			if(M[i]>0 || exsW[i]){
++				X=i;
++				break;
++			}
++		}
++
++		//// meltwater percolation
++		for(int i=0;i<n;i++){
++			// calculate total melt water entering cell
++			IssmDouble inM = M[i]+ flxDn[i];
++
++			// break loop if there is no meltwater and if depth is > mw_depth
++			if (inM == 0 && i > X){
++				break;
++			}
++
++			// if reaches impermeable ice layer all liquid water runs off (R)
++			else if (d[i] >= dIce){   // dPHC = pore hole close off [kg m-3]
++				// _printf_("ICE LAYER");
++				// no water freezes in this cell
++				// no water percolates to lower cell
++				// cell ice temperature & density do not change
++
++				m[i] = m[i] - M[i];                     // mass after melt
++				Wi = (910-d[i]) * Swi * (m[i]/d[i]);    // irreducible water 
++				dW[i] = fmin(inM, Wi - W[i]);            // change in pore water
++				R[i] = fmax(0, inM - dW[i]);             // runoff
++			}
++			// check if no energy to refreeze meltwater     
++			else if (maxF[i] == 0){
++				// _printf_("REFREEZE == 0");
++				// no water freezes in this cell
++				// cell ice temperature & density do not change
++
++				m[i] = m[i] - M[i];                     // mass after melt
++				Wi = (910-d[i]) * Swi * (m[i]/d[i]);    // irreducible water 
++				dW[i] = fmin(inM, Wi-W[i]);              // change in pore water
++				flxDn[i+1] = fmax(0, inM-dW[i]);         // meltwater out
++				F[i] = 0;                               // no freeze 
++			}
++			// some or all meltwater refreezes
++			else{
++				// change in density density and temperature
++				// _printf_("MELT REFREEZE");
++				//-----------------------melt water-----------------------------
++				IssmDouble dz_0 = m[i]/d[i];          
++				IssmDouble dMax = (dIce - d[i])*dz_0;              // d max = dIce
++				IssmDouble F1 = fmin(fmin(inM,dMax),maxF[i]);         // maximum refreeze               
++				m[i] = m[i] + F1;                       // mass after refreeze
++				d[i] = m[i]/dz_0;
++
++				//-----------------------pore water-----------------------------
++				Wi = (910-d[i])* Swi * dz_0;            // irreducible water 
++				dW[i] = fmin(inM - F1, Wi-W[i]);         // change in pore water
++				if (-dW[i]>W[i] ){
++					dW[i]= W[i];
++				}
++				IssmDouble F2 = 0;                                 
++
++				if (dW[i] < 0){                            // excess pore water
++					dMax = (dIce - d[i])*dz_0;          // maximum refreeze                                             
++					IssmDouble maxF2 = fmin(dMax, maxF[i]-F1);      // maximum refreeze
++					F2 = fmin(-dW[i], maxF2);            // pore water refreeze
++					m[i] = m[i] + F2;                   // mass after refreeze
++					d[i] = m[i]/dz_0;
++				}
++
++				flxDn[i+1] = inM - F1 - dW[i] - F2;     // meltwater out        
++				T[i] = T[i] + ((F1+F2)*(LF+(CtoK - T[i])*CI)/(m[i]*CI));// change in temperature
++
++
++				// check if an ice layer forms 
++				if (d[i] == dIce){
++					// _printf_("ICE LAYER FORMS");
++					// excess water runs off
++					R[i] = flxDn[i+1];
++					// no water percolates to lower cell
++					flxDn[i+1] = 0;
++				}
++			}
++		}
++
++
++		//// GRID CELL SPACING AND MODEL DEPTH
++		for(int i=0;i<n;i++)if (W[i] < 0) _error_("negative pore water generated in melt equations");
++		
++		// delete all cells with zero mass
++		// adjust pore water
++		for(int i=0;i<n;i++)W[i] += dW[i];
++
++		// delete all cells with zero mass
++		D_size=0; for(int i=0;i<n;i++)if(m[i]!=0)D_size++; D=xNew<int>(D_size); 
++		D_size=0; for(int i=0;i<n;i++)if(m[i]!=0){ D[D_size] = i; D_size++;}
++		
++		celldelete(&m,n,D,D_size);
++		celldelete(&W,n,D,D_size);
++		celldelete(&d,n,D,D_size);
++		celldelete(&T,n,D,D_size);
++		celldelete(&a,n,D,D_size);
++		celldelete(&re,n,D,D_size);
++		celldelete(&gdn,n,D,D_size);
++		celldelete(&gsp,n,D,D_size);
++		n=D_size;
++	
++		// calculate new grid lengths
++		for(int i=0;i<n;i++)dz[i] = m[i] / d[i];
++	}
++
++	// check if depth is too small
++	X = 0;
++	for(int i=n-1;i>=0;i--){
++		if(dz[i]<dzMin){
++			X=i;
++			break;
++		}
++	}
++
++	for (int i = 0; i<=X;i++){
++		if (dz [i] < dzMin){                               // merge top cells                                                                 
++			//                                                                          _printf_("dz > dzMin * 2')
++			// adjust variables as a linearly weighted function of mass
++			IssmDouble m_new = m[i] + m[i+1];
++			T[i+1] = (T[i]*m[i] + T[i+1]*m[i+1]) / m_new;
++			a[i+1] = (a[i]*m[i] + a[i+1]*m[i+1]) / m_new;
++			re[i+1] = (re[i]*m[i] + re[i+1]*m[i+1]) / m_new;
++			gdn[i+1] = (gdn[i]*m[i] + gdn[i+1]*m[i+1]) / m_new;
++			gsp[i+1] = (gsp[i]*m[i] + gsp[i+1]*m[i+1]) / m_new;
++
++			// merge with underlying grid cell and delete old cell
++			dz [i+1] = dz[i] + dz[i+1];                 // combine cell depths
++			d[i+1] = m_new / dz[i+1];                   // combine top densities
++			W[i+1] = W[i+1] + W[i];                     // combine liquid water
++			m[i+1] = m_new;                             // combine top masses
++
++			// set cell to 99999 for deletion
++			m[i] = 99999;
++		}
++	}
++
++	// delete combined cells
++	xDelete<int>(D); D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999)D_size++; D=xNew<int>(D_size); 
++	D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999){ D[D_size] = i; D_size++;}
++
++	//// CORRECT FOR TOTAL MODEL DEPTH
++	// WORKS FINE BUT HAS BEEN DISABLED FOR CONVIENCE OF MODEL OUTPUT
++	// INTERPRETATION
++
++	// // calculate total model depth
++	// z = sum(dz);
++	// 
++	// if (z < zMin){ // check if model is too shallow                                                                      
++	//                                                                          _printf_("z < zMin')
++	//     // mass and energy to be added
++	//     mAdd = m(end) + W(end);
++	//     addE = T(end) * m(end) * CI;
++	//     
++	//     // add a grid cell of the same size and temperature to the bottom
++	//     dz = [dz; dz(end)];
++	//     T = [T; T(end)];
++	//     W = [W; W(end)];
++	//     m = [m; m(end)];
++	//     d = [d; d(end)];
++	//     a = [a; a(end)];
++	//     re = [re; re(end)];
++	//     gdn = [gdn; gdn(end)];
++	//     gsp = [gsp; gsp(end)];
++	// }
++	// else (if z > zMax){ // check if model is too deep                                                                                                                                        
++	//                                                                          _printf_("z > zMax')
++	//     // mass and energy loss
++	//     mAdd = -(m(end) + W(end));
++	//     addE = -(T(end) * m(end) * CI);
++	//     
++	//     // add a grid cell of the same size and temperature to the bottom
++	//     dz(end) = []; T(end) = []; W(end) = []; m(end) = []; 
++	//     d(end) = []; a(end) = [];  re(end) = [];  gdn(end) = [];  
++	//     gsp(end) = [];
++	// }
++
++	//// CHECK FOR MASS AND ENERGY CONSERVATION
++
++	// calculate final mass [kg] and energy [J]
++	ER=xNew<IssmDouble>(n);
++	Rsum = cellsum(R,n);
++	for(int i=0;i<n;i++)EI[i] = m[i] * T[i] * CI;
++	for(int i=0;i<n;i++)ER[i] = R[i] * (LF + CtoK * CI);
++	for(int i=0;i<n;i++)EW[i] = W[i] * (LF + CtoK * CI);
++
++	mSum1 = cellsum(W,n) + cellsum(m,n) + Rsum;
++	sumE1 = cellsum(EI,n) + cellsum(EW,n);
++	sumER = cellsum(ER,n);
++
++	dm = round(mSum0 - mSum1 + mAdd);
++	dE = round(sumE0 - sumE1 - sumER +  addE);
++
++	if (dm !=0  && dE !=0) _printf_("mass and energy are not conserved in melt equations");
++	else if (dm != 0) _printf_("mass is not conserved in melt equations");
++	else if (dE != 0) _printf_("energy is not conserved in melt equations");
++
++	// W = round(W * 10000)/10000;
++	for(int i=0;i<n;i++) if (W[i]<0) _error_("negative pore water generated in melt equations");
++
++	/*Free ressources:*/
++	if(m)xDelete<IssmDouble>(m);
++	if(EI)xDelete<IssmDouble>(EI);
++	if(maxF)xDelete<IssmDouble>(maxF);
++	if(dW)xDelete<IssmDouble>(dW);
++	if(exsW)xDelete<IssmDouble>(exsW);
++	if(exsT)xDelete<IssmDouble>(exsT);
++	if(surpT)xDelete<IssmDouble>(surpT);
++	if(surpE)xDelete<IssmDouble>(surpE);
++	if(F)xDelete<IssmDouble>(F);
++	if(flxDn)xDelete<IssmDouble>(flxDn);
++	if(D)xDelete<int>(D);
++	if(R)xDelete<IssmDouble>(R);
++	if(M)xDelete<IssmDouble>(M);
++	
++	/*Assign output pointers:*/
++	*pM=sumM;
++	*pR=Rsum;
++	*pmAdd=mAdd;
++	
++	*pT=T;
++	*pd=d;
++	*pdz=dz;
++	*pW=W;
++	*pa=a;
++	*pre=re;
++	*pgdn=gdn;
++	*pgsp=gsp;
++	*pn=n;
++
++} /*}}}*/ 
++void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,int m){ /*{{{*/
++
++	//// THIS NEEDS TO BE DOUBLE CHECKED AS THERE SEAMS TO BE LITTLE DENSIFICATION IN THE MODEL OUTOUT [MAYBE COMPATION IS COMPNSATED FOR BY TRACES OF SNOW???]
++
++	//// FUNCTION INFO
++
++	// Author: Alex Gardner, University of Alberta
++	// Date last modified: FEB, 2008 
++
++	// Description: 
++	//   computes the densification of snow/firn using the emperical model of
++	//   Herron and Langway (1980) or the semi-emperical model of Anthern et al.
++	//   (2010)
++
++	// Inputs:
++	//   denIdx = densification model to use:
++	//       1 = emperical model of Herron and Langway (1980)
++	//       2 = semi-imerical model of Anthern et al. (2010)
++	//       3 = physical model from Appendix B of Anthern et al. (2010)
++	//   d   = initial snow/firn density [kg m-3]
++	//   T   = temperature [K]
++	//   dz  = grid cell size [m]
++	//   C   = average accumulation rate [kg m-2 yr-1]
++	//   dt  = time lapsed [s]
++	//   re  = effective grain radius [mm];
++	//   Ta  = mean annual temperature                                          
++
++	// Reference: 
++	// Herron and Langway (1980), Anthern et al. (2010)
++
++	//// FOR TESTING
++	// denIdx = 2;
++	// d = 800;
++	// T = 270;
++	// dz = 0.005;
++	// C = 200;
++	// dt = 60*60;
++	// re = 0.7;
++	// Tmean = 273.15-18;
++
++	//// MAIN FUNCTION
++	// specify constants
++	const IssmDouble dIce    = 910;         // density of ice [kg m-3]
++	dt      = dt / 86400;  // convert from [s] to [d]
++	// R     = 8.314        // gas constant [mol-1 K-1]
++	// Ec    = 60           // activation energy for self-diffusion of water
++	//                      // molecules through the ice tattice [kJ mol-1]
++	// Eg    = 42.4         // activation energy for grain growth [kJ mol-1]
++
++	/*intermediary: */
++	IssmDouble c0,c1,H;
++
++	// initial mass
++	IssmDouble* mass_init = xNew<IssmDouble>(m);for(int i=0;i<m;i++) mass_init[i]=d[i] * dz[i];
++	
++	/*allocations and initialization of overburden pressure and factor H: */
++	IssmDouble* cumdz = xNew<IssmDouble>(m-1);
++	cumdz[0]=dz[0];
++	for(int i=1;i<m-1;i++)cumdz[i]=cumdz[i-1]+dz[i];
++
++	IssmDouble* obp = xNew<IssmDouble>(m);
++	obp[0]=0;
++	for(int i=1;i<m;i++)obp[i]=cumdz[i]*d[i];
++	
++	// calculate new snow/firn density for:
++	//   snow with densities <= 550 [kg m-3]
++	//   snow with densities > 550 [kg m-3]
++		
++	
++	for(int i=0;i<m;i++){
++		switch (denIdx){
++			case 1: // Herron and Langway (1980)
++				c0 = (11 * exp(-10160 / (T[i] * 8.314))) * C/1000;
++				c1 = (575 * exp(-21400 / (T[i]* 8.314))) * pow(C/1000,.5);
++				break;
++			case 2: // Arthern et al. (2010) [semi-emperical]
++				// common variable
++				// NOTE: Ec=60000, Eg=42400 (i.e. should be in J not kJ)
++				H = exp((-60000./(T[i] * 8.314)) + (42400./(Tmean * 8.314))) * (C * 9.81);
++				c0 = 0.07 * H;
++				c1 = 0.03 * H;
++				break;
++
++			case 3: // Arthern et al. (2010) [physical model eqn. B1]
++
++				// common variable
++				H = exp((-60/(T[i] * 8.314))) * obp[i] / pow(re[i]/1000,2.0);
++				c0 = 9.2E-9 * H;
++				c1 = 3.7E-9 * H;
++				break;
++
++			case 4: // Li and Zwally (2004)
++				c0 = (C/dIce) * (139.21 - 0.542*Tmean)*8.36*pow(273.15 - T[i],-2.061);
++				c1 = c0;
++				break;
++
++			case 5: // Helsen et al. (2008)
++				// common variable
++				c0 = (C/dIce) * (76.138 - 0.28965*Tmean)*8.36*pow(273.15 - T[i],-2.061);
++				c1 = c0;
++				break;
++		}
++
++		// new snow density
++		if(d[i] <= 550) d[i] = d[i] + (c0 * (dIce - d[i]) / 365 * dt);
++		else            d[i] = d[i] + (c1 * (dIce - d[i]) / 365 * dt);
++
++		//disp((num2str(nanmean(c0 .* (dIce - d(idx)) / 365 * dt))))
++
++		// do not allow densities to exceed the density of ice
++		if(d[i]>dIce)d[i]=dIce;
++
++		// calculate new grid cell length
++		dz[i] = mass_init[i] / d[i];
++	}
++	/*Free ressources:*/
++	xDelete<IssmDouble>(mass_init);
++	xDelete<IssmDouble>(cumdz);
++	xDelete<IssmDouble>(obp);
++
++} /*}}}*/
++void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz){ /*{{{*/
++
++	//// TURBULENT HEAT FLUX
++
++	// Description: 
++	// computed the surface sensible and latent heat fluxes [W m-2], this
++	// function also calculated the mass loss/acreation due to
++	// condensation/evaporation [kg]
++
++	// Reference: 
++	// Dingman, 2002.
++
++	//// INPUTS:
++	//   Ta: 2m air temperature [K]
++	//   Ts: snow/firn/ice surface temperature [K]
++	//   V: wind speed [m s^-^1]
++	//   eAir: screen level vapor pressure [Pa]
++	//   pAir: surface pressure [Pa]
++	//   ds: surface density [kg/m^3]
++	//   Ws: surface liquid water content [kg/m^2]
++	//   Vz: height above ground at which wind (V) eas sampled [m]
++	//   Tz: height above ground at which temperature (T) was sampled [m]
++
++	//// FUNCTION INITILIZATION 
++
++	// CA = 1005;                    // heat capacity of air (J kg-1 k-1)
++	// LF = 0.3345E6;                // latent heat of fusion(J kg-1)
++	// LV = 2.495E6;                 // latent heat of vaporization(J kg-1)
++	// dIce = 910;                   // density of ice [kg m-3]
++	
++	/*intermediary:*/
++	IssmDouble d_air;
++	IssmDouble Ri;
++	IssmDouble z0;
++	IssmDouble coef_M,coef_H;
++	IssmDouble An, C;
++	IssmDouble L, eS;
++
++	/*output: */
++	IssmDouble shf, lhf, EC;
++
++	// calculated air density [kg/m3]
++	d_air = 0.029 * pAir /(8.314 * Ta);
++
++	//// Determine Surface Roughness
++	// Bougamont, 2006
++	// wind/temperature surface roughness height [m]
++	if (ds < 910 && Ws == 0) z0 = 0.00012;               // 0.12 mm for dry snow
++	else if (ds >= 910) z0 = 0.0032;                // 3.2 mm for ice 
++	else z0 = 0.0013;                // 1.3 mm for wet snow
++
++	//// MoninObukhov Stability Correction
++	// Reference:
++	// Ohmura, A., 1982: Climate and Energy-Balance on the Arctic Tundra.
++	// Journal of Climatology, 2, 65-84.
++
++	// if V = 0 goes to infinity therfore if V = 0 change
++	if(V< .01) V=.01;
++
++	// calculate the Bulk Richardson Number (Ri)
++	Ri = (2*9.81* (Vz - z0) * (Ta - Ts)) / ((Ta + Ts)* pow(V,2));
++
++	// calculate MoninObukhov stability factors 'coef_M' and 'coef_H'
++
++	// do not allow Ri to exceed 0.19
++	if(Ri>.19)Ri= 0.19;
++
++	// calculate momentum 'coef_M' stability factor
++	if (Ri > 0) coef_M = pow(1-5.2*Ri,-1); // if stable
++	else coef_M = pow(1-18*Ri,-0.25);
++
++	// calculate heat/wind 'coef_H' stability factor
++	if (Ri < -0.03) coef_H = 1.3 * coef_M;
++	else coef_H = coef_M;
++		
++	//// Bulk-transfer coefficient
++	An =  pow(0.4,2) / pow(log(Tz/z0),2);     // Bulk-transfer coefficient
++	C = An * d_air * V;             // shf & lhf common coefficient
++
++	//// Sensible Heat
++	// calculate the sensible heat flux [W m-2](Patterson, 1998)
++	shf = C * 1005 * (Ta - Ts);
++
++	// adjust using MoninObukhov stability theory
++	shf = shf / (coef_M * coef_H);
++
++	//// Latent Heat
++	// determine if snow pack is melting & calcualte surface vapour pressure
++	// over ice or liquid water
++	if (Ts >= 273.15){
++		L = 2.495E6;
++
++		// for an ice surface Murphy and Koop, 2005 [Equation 7]
++		eS = exp(9.550426 - 5723.265/Ts + 3.53068 * log(Ts)- 0.00728332 * Ts);
++	}
++	else{
++		L = 2.8295E6; // latent heat of sublimation
++		// for liquid surface (assume liquid on surface when Ts == 0 deg C)
++		// Wright (1997), US Meteorological Handbook from Murphy and Koop,
++		// 2005 Apendix A
++		eS = 611.21 * exp(17.502 * (Ts - 273.15) / (240.97 + Ts - 273.15));
++	}
++
++	// Latent heat flux [W m-2]
++	lhf = C * L * (eAir - eS) * 0.622 / pAir;
++
++	// adjust using MoninObukhov stability theory (if lhf '+' then there is
++	// energy and mass gained at the surface, if '-' then there is mass and 
++	// energy loss at the surface. 
++	lhf = lhf / (coef_M * coef_H);
++
++	// mass loss (-)/acreation(+) due to evaporation/condensation [kg]
++	EC = lhf * 86400 / L;
++
++	/*assign output poitners: */
++	*pshf=shf;
++	*plhf=lhf;
++	*pEC=EC;
++
++} /*}}}*/
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19553)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19554)
+@@ -57,6 +57,7 @@
+ 					./classes/Inputs/BoolInput.cpp\
+ 					./classes/Inputs/IntInput.cpp\
+ 					./classes/Inputs/DoubleInput.cpp\
++					./classes/Inputs/DoubleArrayInput.cpp\
+ 					./classes/Inputs/DatasetInput.cpp\
+ 					./classes/Materials/Materials.cpp\
+ 					./classes/Materials/Matice.cpp\
+@@ -170,6 +171,7 @@
+ 					./modules/ConfigureObjectsx/ConfigureObjectsx.cpp\
+ 					./modules/SpcNodesx/SpcNodesx.cpp\
+ 					./modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp\
++					./modules/SurfaceMassBalancex/Gembx.cpp\
+ 					./modules/Reducevectorgtofx/Reducevectorgtofx.cpp\
+ 					./modules/Reduceloadx/Reduceloadx.cpp\
+ 					./modules/ConstraintsStatex/ConstraintsStatex.cpp\
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19554)
+@@ -38,6 +38,9 @@
+ 	rlapslgm=0;
+ 	dpermil=0;
+ 
++	albedo_snow=0;
++	albedo_ice=0;
++
+ 	sediment_compressibility=0;
+ 	sediment_porosity=0;
+ 	sediment_thickness=0;
+@@ -95,6 +98,10 @@
+ 				case SMBforcingEnum:
+ 					/*Nothing to add*/
+ 					break;
++				case SMBgembEnum:
++					iomodel->Constant(&this->albedo_ice,SmbAIceEnum);
++					iomodel->Constant(&this->albedo_snow,SmbASnowEnum);
++					break;
+ 				case SMBpddEnum:
+ 					iomodel->Constant(&this->desfac,SmbDesfacEnum);
+ 					iomodel->Constant(&this->rlaps,SmbRlapsEnum);
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19554)
+@@ -35,6 +35,10 @@
+ 		IssmDouble  rlapslgm;
+ 		IssmDouble  dpermil;
+ 
++		/*albedo: */
++		IssmDouble albedo_ice;
++		IssmDouble albedo_snow;
++
+ 		/*hydrology Dual Porous Continuum: */	 
+ 		IssmDouble  sediment_compressibility;
+ 		IssmDouble  sediment_porosity;	 
+Index: ../trunk-jpl/src/c/classes/classes.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/classes.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/classes.h	(revision 19554)
+@@ -61,6 +61,7 @@
+ #include "./Inputs/Input.h"
+ #include "./Inputs/BoolInput.h"
+ #include "./Inputs/DoubleInput.h"
++#include "./Inputs/DoubleArrayInput.h"
+ #include "./Inputs/IntInput.h"
+ #include "./Inputs/TetraInput.h"
+ #include "./Inputs/PentaInput.h"
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19554)
+@@ -1039,21 +1039,26 @@
+ 					default:
+ 
+ 						/*Vector layout*/
+-						int interpolation,nodesperelement,size;
+-						int rank_interpolation=-1,rank_nodesperelement=-1;
++						int interpolation,nodesperelement,size,nlines,ncols,array_size;
++						int rank_interpolation=-1,rank_nodesperelement=-1,rank_arraysize=-1,max_rank_arraysize=0;
++						bool isarray=false;
+ 
+ 						/*Get interpolation (and compute input if necessary)*/
+ 						for(int j=0;j<elements->Size();j++){
+ 							Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(j));
+-							element->ResultInterpolation(&rank_interpolation,&rank_nodesperelement,output_enum);
++							element->ResultInterpolation(&rank_interpolation,&rank_nodesperelement,&rank_arraysize,output_enum);
++							if (rank_arraysize>max_rank_arraysize)max_rank_arraysize=rank_arraysize;
+ 						}
++						rank_arraysize=max_rank_arraysize;
+ 
+ 						/*Broadcast for cpus that do not have any elements*/
+ 						ISSM_MPI_Reduce(&rank_interpolation,&interpolation,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm());
+ 						ISSM_MPI_Reduce(&rank_nodesperelement,&nodesperelement,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm());
++						ISSM_MPI_Reduce(&rank_arraysize,&array_size,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm());
+ 						ISSM_MPI_Bcast(&interpolation,1,ISSM_MPI_INT,0,IssmComm::GetComm());
+ 						ISSM_MPI_Bcast(&nodesperelement,1,ISSM_MPI_INT,0,IssmComm::GetComm());
+-
++						ISSM_MPI_Bcast(&array_size,1,ISSM_MPI_INT,0,IssmComm::GetComm());
++						
+ 						if(results_on_nodes){
+ 
+ 							/*Allocate matrices*/
+@@ -1079,21 +1084,40 @@
+ 
+ 							/*Allocate vector depending on interpolation*/
+ 							switch(interpolation){
+-								case P0Enum: size = this->elements->NumberOfElements(); break;
+-								case P1Enum: size = this->vertices->NumberOfVertices(); break;
++								case P0Enum: isarray = false; size = this->elements->NumberOfElements(); break;
++								case P1Enum: isarray = false; size = this->vertices->NumberOfVertices(); break;
++								case P0ArrayEnum: isarray = true; nlines = this->elements->NumberOfElements(); ncols= array_size; break;
+ 								default:     _error_("Interpolation "<<EnumToStringx(interpolation)<<" not supported yet");
+ 
+ 							}
+-							Vector<IssmDouble> *vector_result = new Vector<IssmDouble>(size);
++							if (!isarray){
++								Vector<IssmDouble> *vector_result = new Vector<IssmDouble>(size);
+ 
+-							/*Fill in vector*/
+-							for(int j=0;j<elements->Size();j++){
+-								Element* element=(Element*)elements->GetObjectByOffset(j);
+-								element->ResultToVector(vector_result,output_enum);
++								/*Fill in vector*/
++								for(int j=0;j<elements->Size();j++){
++									Element* element=(Element*)elements->GetObjectByOffset(j);
++									element->ResultToVector(vector_result,output_enum);
++								}
++								vector_result->Assemble();
++
++								if(save_results)results->AddResult(new GenericExternalResult<Vector<IssmDouble>*>(results->Size()+1,output_enum,vector_result,step,time));
+ 							}
+-							vector_result->Assemble();
+-
+-							if(save_results)results->AddResult(new GenericExternalResult<Vector<IssmDouble>*>(results->Size()+1,output_enum,vector_result,step,time));
++							else{
++								IssmDouble* values    = xNewZeroInit<IssmDouble>(nlines*ncols);
++								IssmDouble* allvalues = xNew<IssmDouble>(nlines*ncols);
++								
++								/*Fill-in matrix*/
++								for(int j=0;j<elements->Size();j++){
++									Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(j));
++									element->ResultToMatrix(values,ncols, output_enum);
++								}
++								/*Gather from all cpus*/
++								ISSM_MPI_Allreduce((void*)values,(void*)allvalues,ncols*nlines,ISSM_MPI_PDOUBLE,ISSM_MPI_SUM,IssmComm::GetComm());
++								xDelete<IssmDouble>(values);
++								
++								if(save_results)results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,output_enum,allvalues,nlines,ncols,step,time));
++								xDelete<IssmDouble>(allvalues);
++							}
+ 						}
+ 						isvec = true;
+ 						break;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19554)
+@@ -129,11 +129,13 @@
+ 		void               PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm);
+ 		IssmDouble         PureIceEnthalpy(IssmDouble pressure);
+ 		void               ResetIceLevelset(void);
+-		void               ResultInterpolation(int* pinterpolation,int*nodesperelement,int output_enum);
++		void               ResultInterpolation(int* pinterpolation,int*nodesperelement,int* parray_size, int output_enum);
+ 		void               ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum);
++		void               ResultToMatrix(IssmDouble* values,int ncols,int output_enum);
+ 		void               ResultToVector(Vector<IssmDouble>* vector,int output_enum);
+ 		void               SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
+ 		int                Sid();
++		void               SmbGemb();
+ 		void               StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void               StrainRateHO(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+ 		void               StrainRateHO2dvertical(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19554)
+@@ -13,6 +13,7 @@
+ #include <string.h>
+ #include "../classes.h"
+ #include "../../shared/shared.h"
++#include "../../modules/SurfaceMassBalancex/SurfaceMassBalancex.h"
+ /*}}}*/
+ 
+ /*Constructors/destructor/copy*/
+@@ -1365,6 +1366,9 @@
+ 		xDelete<int>(vertexids);
+ 	}
+ 	else if(vector_type==2){ //element vector
++
++		IssmDouble value;
++
+ 		/*Are we in transient or static? */
+ 		if(M==iomodel->numberofelements){
+ 			if (code==5){ //boolean
+@@ -1378,14 +1382,29 @@
+ 			}
+ 			else _error_("could not recognize nature of vector from code " << code);
+ 		}
+-		else {
+-			_error_("transient element inputs not supported yet!");
++		else if(M==iomodel->numberofelements+1){
++			/*create transient input: */
++			IssmDouble* times = xNew<IssmDouble>(N);
++			for(t=0;t<N;t++) times[t] = vector[(M-1)*N+t];
++			TransientInput* transientinput=new TransientInput(vector_enum,times,N);
++			TriaInput* bof=NULL;
++			for(t=0;t<N;t++){
++				value=vector[N*this->Sid()+t];
++				switch(this->ObjectEnum()){
++					case TriaEnum:  transientinput->AddTimeInput(new TriaInput( vector_enum,&value,P0Enum)); break;
++					case PentaEnum: transientinput->AddTimeInput(new PentaInput(vector_enum,&value,P0Enum)); break;
++					case TetraEnum: transientinput->AddTimeInput(new TetraInput(vector_enum,&value,P0Enum)); break;
++					default: _error_("Not implemented yet");
++				}
++			}
++			this->inputs->AddInput(transientinput);
++			xDelete<IssmDouble>(times);
+ 		}
++		else _error_("element vector is either numberofelements or numberofelements+1 long. Field provided (" << EnumToStringx(vector_enum) << ") is " << M << " long");
+ 	}
+-	else{
+-		_error_("Cannot add input for vector type " << vector_type << " (not supported)");
+-	}
+-}/*}}}*/
++	else _error_("Cannot add input for vector type " << vector_type << " (not supported)");
++}
++/*}}}*/
+ void       Element::InputDuplicate(int original_enum,int new_enum){/*{{{*/
+ 
+ 	/*Call inputs method*/
+@@ -1865,7 +1884,7 @@
+ 	xDelete<IssmDouble>(values);
+ 
+ }/*}}}*/
+-void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int output_enum){/*{{{*/
++void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
+ 
+ 	Input* input=this->inputs->GetInput(output_enum);
+ 
+@@ -1959,6 +1978,7 @@
+ 	_assert_(input);
+ 	*pinterpolation   = input->GetResultInterpolation();
+ 	*pnodesperelement = input->GetResultNumberOfNodes();
++	*parray_size      = input->GetResultArraySize();
+ }/*}}}*/
+ void       Element::ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum){/*{{{*/
+ 
+@@ -1968,6 +1988,14 @@
+ 	input->ResultToPatch(values,nodesperelement,this->Sid());
+ 
+ } /*}}}*/
++void       Element::ResultToMatrix(IssmDouble* values,int ncols,int output_enum){/*{{{*/
++
++	Input* input=this->inputs->GetInput(output_enum);
++	if(!input) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");
++
++	input->ResultToMatrix(values,ncols,this->Sid());
++
++} /*}}}*/
+ void       Element::ResultToVector(Vector<IssmDouble>* vector,int output_enum){/*{{{*/
+ 
+ 	Input* input=this->inputs->GetInput(output_enum);
+@@ -2092,6 +2120,263 @@
+ 
+ }
+ /*}}}*/
++void       Element::SmbGemb(){/*{{{*/
++
++	/*Intermediary variables: {{{*/
++	bool       isinitialized=false;
++	IssmDouble zTop,dzTop,zMax,zMin,zY,dzMin;
++	IssmDouble Tmean; 
++	IssmDouble C; 
++	IssmDouble Tz,Vz; 
++	IssmDouble rho_ice, aSnow,aIce;
++	IssmDouble time,dt;
++	IssmDouble t,smb_dt;
++	IssmDouble Ta,V,dlw,dsw,P,eAir,pAir;
++	int        aIdx=0;
++	int        denIdx=0;
++	int        swIdx=0;
++	IssmDouble cldFrac,t0wet, t0dry, K;
++	IssmDouble comp1,comp2;
++	IssmDouble ulw;
++	IssmDouble netSW;
++	IssmDouble netLW;
++	IssmDouble lhf, shf, dayEC;
++	IssmDouble initMass;
++    IssmDouble sumR, sumM, sumEC, sumP, sumW,sumMassAdd;
++    IssmDouble sumMass,dMass;
++	bool isgraingrowth,isalbedo,isshortwave,isthermal,isaccumulation,ismelt,isdensification,isturbulentflux;
++	/*}}}*/
++	/*Output variables:{{{ */
++	IssmDouble* dz=NULL;
++	IssmDouble* d = NULL;
++	IssmDouble* re = NULL;
++	IssmDouble* gdn = NULL;
++	IssmDouble* gsp = NULL;
++	IssmDouble  EC = 0;
++	IssmDouble* W = NULL;
++	IssmDouble* a = NULL;
++	IssmDouble* swf=NULL;
++	IssmDouble* T = NULL;
++	IssmDouble  T_bottom;
++	IssmDouble  M;
++	IssmDouble  R; 
++	IssmDouble  mAdd;
++	int         m;
++	/*}}}*/
++
++	/*only compute SMB at the surface: */
++	if (!IsOnSurface()) return;
++
++	/*Retrieve material properties and parameters:{{{ */
++	rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++	parameters->FindParam(&aSnow,SmbASnowEnum);
++	parameters->FindParam(&aIce,SmbAIceEnum);
++	parameters->FindParam(&time,TimeEnum);                        /*transient core time at which we run the smb core*/
++	parameters->FindParam(&dt,TimesteppingTimeStepEnum);          /*transient core time step*/
++	parameters->FindParam(&smb_dt,SmbDtEnum);                     /*time period for the smb solution,  usually smaller than the glaciological dt*/
++	parameters->FindParam(&aIdx,SmbAIdxEnum);
++	parameters->FindParam(&denIdx,SmbDenIdxEnum);
++	parameters->FindParam(&swIdx,SmbSwIdxEnum);
++	parameters->FindParam(&cldFrac,SmbCldFracEnum);
++	parameters->FindParam(&t0wet,SmbT0wetEnum);
++	parameters->FindParam(&t0dry,SmbT0dryEnum);
++	parameters->FindParam(&K,SmbKEnum);
++	parameters->FindParam(&isgraingrowth,SmbIsgraingrowthEnum);
++	parameters->FindParam(&isalbedo,SmbIsalbedoEnum);
++	parameters->FindParam(&isshortwave,SmbIsshortwaveEnum);
++	parameters->FindParam(&isthermal,SmbIsthermalEnum);
++	parameters->FindParam(&isaccumulation,SmbIsaccumulationEnum);
++	parameters->FindParam(&ismelt,SmbIsmeltEnum);
++	parameters->FindParam(&isdensification,SmbIsdensificationEnum);
++	parameters->FindParam(&isturbulentflux,SmbIsturbulentfluxEnum);
++	/*}}}*/
++	/*Retrieve inputs: {{{*/
++	Input* zTop_input=this->GetInput(SmbZTopEnum); _assert_(zTop_input); 
++	Input* dzTop_input=this->GetInput(SmbDzTopEnum); _assert_(dzTop_input); 
++	Input* dzMin_input=this->GetInput(SmbDzMinEnum); _assert_(dzMin_input); 
++	Input* zMax_input=this->GetInput(SmbZMaxEnum); _assert_(zMax_input); 
++	Input* zMin_input=this->GetInput(SmbZMinEnum); _assert_(zMin_input); 
++	Input* zY_input=this->GetInput(SmbZYEnum); _assert_(zY_input); 
++	Input* Tmean_input=this->GetInput(SmbTmeanEnum); _assert_(Tmean_input);
++	Input* C_input=this->GetInput(SmbCEnum); _assert_(C_input);
++	Input* Tz_input=this->GetInput(SmbTzEnum); _assert_(Tz_input);
++	Input* Vz_input=this->GetInput(SmbVzEnum); _assert_(Vz_input);
++	Input* Ta_input=this->GetInput(SmbTaEnum); _assert_(Ta_input);
++	Input* V_input=this->GetInput(SmbVEnum); _assert_(V_input);
++	Input* Dlwr_input=this->GetInput(SmbDlwrfEnum); _assert_(Dlwr_input);
++	Input* Dswr_input=this->GetInput(SmbDswrfEnum); _assert_(Dswr_input);
++	Input* P_input=this->GetInput(SmbPEnum); _assert_(P_input);
++	Input* eAir_input=this->GetInput(SmbEAirEnum); _assert_(eAir_input);
++	Input* pAir_input=this->GetInput(SmbPAirEnum); _assert_(pAir_input);
++	Input* isinitialized_input=this->inputs->GetInput(SmbIsInitializedEnum); 
++	
++	/*Retrieve input values:*/
++	Gauss* gauss=this->NewGauss(1); gauss->GaussPoint(0);
++
++	zTop_input->GetInputValue(&zTop,gauss);
++	dzTop_input->GetInputValue(&dzTop,gauss);
++	dzMin_input->GetInputValue(&dzMin,gauss);
++	zMax_input->GetInputValue(&zMax,gauss); 
++	zMin_input->GetInputValue(&zMin,gauss); 
++	zY_input->GetInputValue(&zY,gauss);
++	Tmean_input->GetInputValue(&Tmean,gauss);
++	C_input->GetInputValue(&C,gauss);
++	Tz_input->GetInputValue(&Tz,gauss);
++	Vz_input->GetInputValue(&Vz,gauss);
++	/*}}}*/
++	/*First, check that the initial structures have been setup in GEMB. If not, initialize profile variables: layer thickness dz, * density d, temperature T, etc. {{{*/
++	if(!isinitialized_input){ 
++
++		/*Initialize grid:*/
++		GembgridInitialize(&dz, &m, zTop, dzTop, zMax, zY);
++		//if(this->Sid()==1) for(int i=0;i<m;i++)_printf_("z[" << i << "]=" <<
++		//dz[i] << "\n");
++
++		/*initialize profile variables:*/
++		d = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)d[i]=rho_ice; //ice density 
++		re = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)re[i]=2.5;         //set grain size to old snow [mm] 
++		gdn = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gdn[i]=0;         //set grain dentricity to old snow 
++		gsp = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gsp[i]=0;         //set grain sphericity to old snow 
++		EC = 0;                                                                //surface evaporation (-) condensation (+) [kg m-2] 
++		W = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)W[i]=0;             //set water content to zero [kg m-2]
++		a = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)a[i]=aSnow;         //set albedo equal to fresh snow [fraction] 
++		T = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)T[i]=Tmean;         //set initial grid cell temperature to the annual mean temperature [K]
++
++		//fixed lower temperatuer bounday condition - T is fixed
++		T_bottom=T[m-1];
++
++		/*Flag the initialization:*/
++		this->AddInput(new BoolInput(SmbIsInitializedEnum,true));
++	} 
++	else{ 
++		/*Recover inputs: */
++		DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDzEnum));
++		DoubleArrayInput* d_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDEnum));
++		DoubleArrayInput* re_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbReEnum));
++		DoubleArrayInput* gdn_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGdnEnum));
++		DoubleArrayInput* gsp_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGspEnum));
++		DoubleInput* EC_input= dynamic_cast<DoubleInput*>(this->GetInput(SmbECEnum));
++		DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWEnum));
++		DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));
++		DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));
++		
++		/*Recover arrays: */
++		dz_input->GetValues(&dz,&m);
++		d_input->GetValues(&d,&m);
++		re_input->GetValues(&re,&m);
++		gdn_input->GetValues(&gdn,&m);
++		gsp_input->GetValues(&gsp,&m);
++		EC_input->GetInputValue(&EC);
++		W_input->GetValues(&W,&m);
++		a_input->GetValues(&a,&m);
++		T_input->GetValues(&T,&m);
++
++	} /*}}}*/
++
++	// determine initial mass [kg]
++	initMass=0; for(int i=0;i<m;i++) initMass += dz[i]*d[i] + W[i];
++    
++    // initialize cumulative variables
++    sumR = 0; sumM = 0; sumEC = 0; sumP = 0; sumMassAdd = 0;
++
++	/*Start loop: */
++	for (t=time;t<=time+dt;t=t+smb_dt){
++
++		/*extract daily data:{{{*/
++		Ta_input->GetInputValue(&Ta,gauss,t);//screen level air temperature [K]
++		V_input->GetInputValue(&V,gauss,t);  //wind speed [m s-1]
++		Dlwr_input->GetInputValue(&dlw,gauss,t);   //downward longwave radiation flux [W m-2]
++		Dswr_input->GetInputValue(&dsw,gauss,t);   //downward shortwave radiation flux [W m-2]
++		P_input->GetInputValue(&P,gauss,t);        //precipitation [kg m-2]
++		eAir_input->GetInputValue(&eAir,gauss,t);  //screen level vapor pressure [Pa]
++		pAir_input->GetInputValue(&pAir,gauss,t);  // screen level air pressure [Pa]
++		//_printf_("Time: " << t << " Ta: " << Ta << " V: " << V << " dlw: " << dlw << " dsw: " << dsw << " P: " << P << " eAir: " << eAir << " pAir: " << pAir << "\n");
++		/*}}}*/
++
++		/*Snow grain metamorphism:*/
++		if(isgraingrowth)grainGrowth(re, gdn, gsp, T, dz, d, W, smb_dt, m, aIdx);
++
++		/*Snow, firn and ice albedo:*/
++		if(isalbedo)albedo(a,aIdx,re,d,cldFrac,aIce, aSnow,T,W,P,EC,t0wet,t0dry,K,smb_dt,m);
++		
++		/*Distribution of absorbed short wave radation with depth:*/
++        if(isshortwave)shortwave(&swf, swIdx, aIdx, dsw, a[0], d, dz, re,m);
++		
++		/*Thermal profile computation:*/
++        if(isthermal)thermo(&EC, T, dz, d, swf, dlw, Ta, V, eAir, pAir, W[0], smb_dt, Vz, Tz,m);     
++
++		/*Change in thickness of top cell due to evaporation/condensation  assuming same density as top cell. 
++		 * need to fix this in case all or more of cell evaporates */
++        dz[0] = dz[0] + EC / d[0];
++		
++		/*Add snow/rain to top grid cell adjusting cell depth, temperature and density*/
++        if(isaccumulation)accumulation(&T, &dz, &d, &W, &a, &re, &gdn, &gsp, &m, Ta, P, dzMin, aSnow);
++
++		/*Calculate water production, M [kg m-2] resulting from snow/ice temperature exceeding 273.15 deg K 
++		 * (> 0 deg C), runoff R [kg m-2] and resulting changes in density and determine wet compaction [m]*/
++		comp2 = cellsum(dz,m); 
++		if(ismelt)melt(&M, &R, &mAdd, &T, &d, &dz, &W, &a, &re, &gdn, &gsp, &m, dzMin, zMax, zMin);
++        comp2 = (comp2 - cellsum(dz,m));
++
++		/*Allow non-melt densification and determine compaction [m]*/
++        comp1 = cellsum(dz,m); 
++        if(isdensification)densification(d,dz, T, re, denIdx, C, smb_dt, Tmean,m);
++        comp1 = (comp1 - cellsum(dz,m));
++		
++		/*Calculate upward longwave radiation flux [W m-2] not used in energy balance. Calculated for every 
++		 * sub-time step in thermo equations*/
++        ulw = 5.67E-8 * pow(T[0],4.0);
++
++		/*Calculate net shortwave and longwave [W m-2]*/
++        netSW = cellsum(swf,m);
++        netLW = dlw - ulw;
++		
++		/*Calculate turbulent heat fluxes [W m-2]*/
++        if(isturbulentflux)turbulentFlux(&shf, &lhf, &dayEC, Ta, T[0], V, eAir, pAir, d[0], W[0], Vz, Tz);
++		
++		/*Sum component mass changes [kg m-2]*/
++        sumMassAdd = mAdd + sumMassAdd;
++        sumM = M + sumM;
++        sumR = R + sumR;
++        sumW = cellsum(W,m);
++        sumP = P +  sumP;
++        sumEC = sumEC + EC;  // evap (-)/cond(+)
++
++		/*Calculate total system mass:*/
++        sumMass=0; for(int i=0;i<m;i++) sumMass += dz[i]*d[i];
++        dMass = sumMass + sumR + sumW - sumP - sumEC - initMass - sumMassAdd;
++        dMass = round(dMass * 100.0)/100.0;
++		
++		/*Check mass conservation:*/
++        if (dMass != 0.0) _error_("total system mass not conserved in MB function");
++		
++		/*Check bottom grid cell T is unchanged:*/
++        if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom");
++	}
++
++	/*Save generated inputs: */
++	this->AddInput(new DoubleArrayInput(SmbDzEnum,dz,m));
++	this->AddInput(new DoubleArrayInput(SmbDEnum,d,m));
++	this->AddInput(new DoubleArrayInput(SmbReEnum,re,m));
++	this->AddInput(new DoubleArrayInput(SmbGdnEnum,gdn,m));
++	this->AddInput(new DoubleArrayInput(SmbGspEnum,gsp,m));
++	this->AddInput(new DoubleInput(SmbECEnum,EC));
++	this->AddInput(new DoubleArrayInput(SmbWEnum,W,m));
++	this->AddInput(new DoubleArrayInput(SmbAEnum,a,m));
++	this->AddInput(new DoubleArrayInput(SmbTEnum,T,m));
++
++	/*Free allocations:{{{*/
++	xDelete<IssmDouble>(dz);
++	xDelete<IssmDouble>(d);
++	xDelete<IssmDouble>(re);
++	xDelete<IssmDouble>(gdn);
++	xDelete<IssmDouble>(gsp);
++	xDelete<IssmDouble>(W);
++	xDelete<IssmDouble>(a);
++	xDelete<IssmDouble>(T);
++	/*}}}*/
++}
++/*}}}*/
+ void       Element::StrainRateFS(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
+ 	/*Compute the 3d Strain Rate (6 components):
+ 	 *
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 19554)
+@@ -0,0 +1,76 @@
++/*! \file DoubleArrayInput.h 
++ *  \brief: header file for vector type input object
++ */
++
++#ifndef _DOUBLE_ARRAY_INPUT_H_
++#define _DOUBLE_ARRAY_INPUT_H_
++
++/*Headers:*/
++/*{{{*/
++#include "./Input.h"
++/*}}}*/
++
++class DoubleArrayInput: public Input{
++
++	public:
++		int    enum_type;
++		IssmDouble* values; /*vector*/
++		int         m; /*size of vector*/
++
++		/*DoubleArrayInput constructors, destructors: {{{*/
++		DoubleArrayInput();
++		DoubleArrayInput(int enum_type,IssmDouble* values, int m);
++		~DoubleArrayInput();
++		/*}}}*/
++		/*Object virtual functions definitions:{{{ */
++		void  Echo();
++		void  DeepEcho();
++		int   Id(); 
++		int   ObjectEnum();
++		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
++		/*}}}*/
++		/*DoubleArrayInput management: {{{*/
++		int   InstanceEnum();
++		Input* SpawnTriaInput(int index1,int index2,int index3){_error_("not implemented yet");};
++		Input* SpawnSegInput(int index1,int index2){_error_("not implemented yet");};
++		Input* PointwiseDivide(Input* inputB){_error_("not implemented yet");};
++		Input* PointwiseMin(Input* inputB){_error_("not implemented yet");};
++		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
++		int  GetResultInterpolation(void){return P0ArrayEnum;};
++		int  GetResultNumberOfNodes(void){return 1;};
++		int  GetResultArraySize(void){return m;};
++		void ResultToMatrix(IssmDouble* values,int ncols,int sid);
++		void Configure(Parameters* parameters);
++		void GetValues(IssmDouble** pvalues,int* pm);
++		/*}}}*/
++		/*numerics: {{{*/
++		void GetInputValue(bool* pvalue){_error_("not implemented yet");};
++		void GetInputValue(int* pvalue){_error_("not implemented yet");};
++		void GetInputValue(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputValue(IssmDouble* pvalue,Gauss* gauss){_error_("not implemented yet");};
++		void GetInputValue(IssmDouble* pvalue,Gauss* gauss,IssmDouble time){_error_("not implemented yet");};
++		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
++		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
++		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
++		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
++		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
++		void ConstrainMin(IssmDouble minimum){_error_("not implemented yet");};
++		void Set(IssmDouble setvalue){_error_("Set not implemented yet");};
++		void Scale(IssmDouble scale_factor){_error_("not implemented yet");};
++		void AXPY(Input* xinput,IssmDouble scalar){_error_("not implemented yet");};
++		void Constrain(IssmDouble cm_min, IssmDouble cm_max){_error_("not implemented yet");};
++		void ChangeEnum(int newenumtype);
++		IssmDouble InfinityNorm(void){_error_("not implemented yet");};
++		IssmDouble Max(void){_error_("not implemented yet");};
++		IssmDouble MaxAbs(void){_error_("not implemented yet");};
++		IssmDouble Min(void){_error_("not implemented yet");};
++		IssmDouble MinAbs(void){_error_("not implemented yet");};
++		void Extrude(int start){_error_("not supported yet");};
++		void VerticallyIntegrate(Input* thickness_input){_error_("not implemented yet");};
++		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");};
++		/*}}}*/
++
++};
++#endif  /* _DOUBLE_ARRAY_INPUT_H */
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19554)
+@@ -40,6 +40,7 @@
+ 		Input* PointwiseMax(Input* inputB);
+ 		int  GetResultInterpolation(void){return P0Enum;};
+ 		int  GetResultNumberOfNodes(void){return 1;};
++		int  GetResultArraySize(void){return 1;};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19554)
+@@ -42,6 +42,7 @@
+ 		Input* PointwiseMax(Input* inputB){_error_("not supported yet");};
+ 		int  GetResultInterpolation(void){_error_("not implemented");};
+ 		int  GetResultNumberOfNodes(void){_error_("not implemented");};
++		int  GetResultArraySize(void){_error_("not implemented");};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void   AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void   Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19554)
+@@ -42,6 +42,7 @@
+ 		Input* PointwiseMax(Input* inputB);
+ 		int    GetResultInterpolation(void);
+ 		int    GetResultNumberOfNodes(void);
++		int    GetResultArraySize(void){return 1;};
+ 		void   ResultToPatch(IssmDouble* values,int nodesperelement,int sid);
+ 		void   AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void   Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/Input.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 19554)
+@@ -60,6 +60,8 @@
+ 		virtual Input* PointwiseMin(Input* inputmin)=0;
+ 		virtual int  GetResultInterpolation(void)=0;
+ 		virtual int  GetResultNumberOfNodes(void)=0;
+-		virtual void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
++		virtual int  GetResultArraySize(void)=0;
++		virtual void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");}; 
++		virtual void ResultToMatrix(IssmDouble* values,int ncols,int sid){_error_("not supported yet");};
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19554)
+@@ -78,6 +78,7 @@
+ 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist);
+ 		int  GetResultInterpolation(void);
+ 		int  GetResultNumberOfNodes(void);
++		int  GetResultArraySize(void){return 1;};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void GetGradient(Vector<IssmDouble>* gradient_vec,int* doflist);
+ 		void ScaleGradient(IssmDouble scale);
+Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19554)
+@@ -73,6 +73,7 @@
+ 		void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist){_error_("not implemented yet");};
+ 		int GetResultInterpolation(void){_error_("not implemented yet");};
+ 		int GetResultNumberOfNodes(void){_error_("not implemented yet");};
++		int GetResultArraySize(void){_error_("not implemented yet");};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void GetGradient(Vector<IssmDouble>* gradient_vec,int* doflist){_error_("not implemented yet");};
+ 		void ScaleGradient(IssmDouble scale){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19554)
+@@ -140,6 +140,12 @@
+ 
+ }
+ /*}}}*/
++int  TriaInput::GetResultArraySize(void){/*{{{*/
++
++	return 1;
++
++}
++/*}}}*/
+ void TriaInput::ResultToPatch(IssmDouble* values,int nodesperelement,int sid){/*{{{*/
+ 
+ 	int numnodes = this->NumberofNodes(this->interpolation_type);
+Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19554)
+@@ -41,6 +41,7 @@
+ 		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
+ 		int  GetResultInterpolation(void){return P0Enum;};
+ 		int  GetResultNumberOfNodes(void){return 1;};
++		int  GetResultArraySize(void){return 1;};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19554)
+@@ -37,6 +37,7 @@
+ 		Input* PointwiseMax(Input* inputB){_error_("not implemented yet");};
+ 		int  GetResultInterpolation(void){return P0Enum;};
+ 		int  GetResultNumberOfNodes(void){return 1;};
++		int  GetResultArraySize(void){return 1;};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void Configure(Parameters* parameters);
+ 		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19554)
+@@ -42,6 +42,7 @@
+ 		Input* PointwiseMax(Input* inputB);
+ 		int    GetResultInterpolation(void);
+ 		int    GetResultNumberOfNodes(void);
++		int    GetResultArraySize(void);
+ 		void   ResultToPatch(IssmDouble* values,int nodesperelement,int sid);
+ 		void   AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void   Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 19554)
+@@ -356,6 +356,11 @@
+ 
+ }
+ /*}}}*/
++int  TransientInput::GetResultArraySize(void){/*{{{*/
++
++	return 1;
++}
++/*}}}*/
+ void TransientInput::Extrude(int start){/*{{{*/
+ 
+ 	for(int i=0;i<this->numtimesteps;i++){
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp	(revision 0)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp	(revision 19554)
+@@ -0,0 +1,111 @@
++/*!\file DoubleArrayInput.c
++ * \brief: implementation of the DoubleArrayInput object
++ */
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "../classes.h"
++#include "../../shared/shared.h"
++
++/*DoubleArrayInput constructors and destructor*/
++DoubleArrayInput::DoubleArrayInput(){/*{{{*/
++	return;
++}
++/*}}}*/
++DoubleArrayInput::DoubleArrayInput(int in_enum_type,IssmDouble* in_values,  int in_m){/*{{{*/
++
++	enum_type=in_enum_type;
++	m=in_m;
++	values=xNew<IssmDouble>(m);
++	xMemCpy<IssmDouble>(values,in_values,m);
++
++}
++/*}}}*/
++DoubleArrayInput::~DoubleArrayInput(){/*{{{*/
++	return;
++}
++/*}}}*/
++
++/*Object virtual functions definitions:*/
++void DoubleArrayInput::Echo(void){/*{{{*/
++	this->DeepEcho();
++}
++/*}}}*/
++void DoubleArrayInput::DeepEcho(void){/*{{{*/
++
++	_printf_(setw(15)<<"   DoubleArrayInput "<<setw(25)<<left<<EnumToStringx(this->enum_type)<<" Size: " << m << "\n");
++	for (int i=0;i<m;i++) _printf_(setw(20) << this->values[i]<<"\n");
++
++}
++/*}}}*/
++int DoubleArrayInput::Id(void){ return -1; }/*{{{*/
++/*}}}*/
++int DoubleArrayInput::ObjectEnum(void){/*{{{*/
++
++	return DoubleArrayInputEnum;
++
++}
++/*}}}*/
++Object* DoubleArrayInput::copy() {/*{{{*/
++
++	return new DoubleArrayInput(this->enum_type,this->values,this->m);
++
++}
++/*}}}*/
++void DoubleArrayInput::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	MARSHALLING_ENUM(DoubleArrayInputEnum);
++
++	MARSHALLING(enum_type);
++	MARSHALLING(m);
++	MARSHALLING_DYNAMIC(this->values,IssmDouble,m);
++}
++/*}}}*/
++
++/*DoubleArrayInput management*/
++int DoubleArrayInput::InstanceEnum(void){/*{{{*/
++
++	return this->enum_type;
++
++}
++/*}}}*/
++void DoubleArrayInput::ResultToMatrix(IssmDouble* values,int ncols,int sid){/*{{{*/
++
++	int ncols_local = this->GetResultArraySize();
++
++	/*Some checks*/
++	_assert_(values);
++	_assert_(ncols_local<=ncols);
++
++	/*Fill in arrays*/
++	for(int i=0;i<ncols_local;i++) values[sid*ncols + i] = this->values[i];
++}
++/*}}}*/
++void DoubleArrayInput::GetValues(IssmDouble** pvalues, int *pm){ /*{{{*/
++
++	/*output: */
++	IssmDouble*  outvalues= NULL;
++
++	outvalues=xNew<IssmDouble>(m);
++
++	xMemCpy<IssmDouble>(outvalues,values,m);
++
++	/*assign output pointers: */
++	*pm=m;
++	*pvalues=outvalues;
++}
++/*}}}*/
++
++/*Object functions*/
++void DoubleArrayInput::ChangeEnum(int newenumtype){/*{{{*/
++	this->enum_type=newenumtype;
++}
++/*}}}*/
++void DoubleArrayInput::Configure(Parameters* parameters){/*{{{*/
++	/*do nothing: */
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19554)
+@@ -42,6 +42,7 @@
+ 		Input* PointwiseMax(Input* inputB);
+ 		int  GetResultInterpolation(void);
+ 		int  GetResultNumberOfNodes(void);
++		int  GetResultArraySize(void){return 1;};
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid);
+ 		void AddTimeValues(IssmDouble* values,int step,IssmDouble time){_error_("not supported yet");};
+ 		void Configure(Parameters* parameters);
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19553)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19554)
+@@ -47,6 +47,7 @@
+ 		Input* PointwiseMax(Input* input_in){_error_("not implemented yet");};
+ 		int  GetResultInterpolation(void);
+ 		int  GetResultNumberOfNodes(void);
++		int  GetResultArraySize(void);
+ 		void ResultToPatch(IssmDouble* values,int nodesperelement,int sid){_error_("not supported yet");};
+ 		void Configure(Parameters* parameters);
+ 		/*}}}*/
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19553)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19554)
+@@ -12,6 +12,16 @@
+ 		%from an automatic weather stations (AWS). Each property is therefore a matrix, of size (numberofvertices x number 
+ 		%of time steps. )
+ 
++		%solution choices
++		isgraingrowth;
++		isalbedo;
++		isshortwave;
++		isthermal;
++		isaccumulation;
++		ismelt;
++		isdensification;
++		isturbulentflux;
++
+ 		%inputs: 
+ 		Ta    = NaN; %2 m air temperature, in Kelvin
+ 		V     = NaN; %wind speed (m/s-1)
+@@ -27,7 +37,6 @@
+ 		Vz    = NaN; %height above ground at which wind (V) eas sampled [m]
+ 
+ 		%settings: 
+-		spinUp = NaN; %number of cycles of met data run before output is calculated (default is 0)
+ 		aIdx   = NaN; %method for calculating albedo and subsurface absorption (default is 1)
+ 		              % 1: effective grain radius [Gardner & Sharp, 2009]
+ 					  % 2: effective grain radius [Brun et al., 2009]
+@@ -96,8 +105,15 @@
+ 		end % }}}
+ 		function self = setdefaultparameters(self,mesh,geometry) % {{{
+ 
+-		
+-		self.spinUp=0;
++		self.isgraingrowth=1;
++		self.isalbedo=1;
++		self.isshortwave=1;
++		self.isthermal=1;
++		self.isaccumulation=1;
++		self.ismelt=1;
++		self.isdensification=1;
++		self.isturbulentflux=1;
++	
+ 		self.aIdx = 1;
+ 		self.swIdx = 1;
+ 		self.denIdx = 2;
+@@ -122,6 +138,16 @@
+ 		end % }}}
+ function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
++
++		md = checkfield(md,'fieldname','smb.isgraingrowth','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isalbedo','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isshortwave','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isthermal','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isaccumulation','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.ismelt','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isdensification','values',[0 1]);
++		md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]);
++		
+ 		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
+ 		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'>=',0,'<',45); %max 500 km/h
+ 		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'>=',0,'<=',1400);
+@@ -129,12 +155,11 @@
+ 		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'>=',0,'<=',100);
+ 		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
+ 		
+-		md = checkfield(md,'fieldname','smb.Tmean','NaN',1,'>',273-60,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.C','NaN',1,'>=',0); 
+-		md = checkfield(md,'fieldname','smb.Tz','NaN',1,'>=',0,'<=',5000); 
+-		md = checkfield(md,'fieldname','smb.Vz','NaN',1,'>=',0,'<=',5000); 
++		md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements 1],'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0); 
++		md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0,'<=',5000); 
++		md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0,'<=',5000); 
+ 		
+-		md = checkfield(md,'fieldname','smb.spinUp','NaN',1,'>=',0);
+ 		md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'values',[1,2,3,4]);
+ 		md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'values',[0,1]);
+ 		md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'values',[1,2,3,4,5]);
+@@ -169,6 +194,14 @@
+ 			
+ 			disp(sprintf('   surface forcings for SMB GEMB model :'));
+ 			
++			fielddisplay(self,'isgraingrowth','run grain growth module (default true)');
++			fielddisplay(self,'isalbedo','run albedo module (default true)');
++			fielddisplay(self,'isshortwave','run short wave module (default true)');
++			fielddisplay(self,'isthermal','run thermal module (default true)');
++			fielddisplay(self,'isaccumulation','run accumulation module (default true)');
++			fielddisplay(self,'ismelt','run melting  module (default true)');
++			fielddisplay(self,'isdensification','run densification module (default true)');
++			fielddisplay(self,'isturbulentflux','run turbulant heat fluxes module (default true)');
+ 			fielddisplay(self,'Ta','2 m air temperature, in Kelvin');
+ 			fielddisplay(self,'V','wind speed (m/s-1)');
+ 			fielddisplay(self,'dlwrf','downward shortwave radiation flux [W/m^2]');
+@@ -187,7 +220,6 @@
+ 			fielddisplay(self,'zMin','initial min model depth (default is min(thickness,30)) [m]');
+ 			fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]');
+ 			fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)');
+-			fielddisplay(self,'spinUp','number of cycles of met data run before output is calcualted (default is 0)');
+ 			fielddisplay(self,'aIdx',{'method for calculating albedo and subsurface absorption (default is 1)',...
+ 									'1: effective grain radius [Gardner & Sharp, 2009]',...
+ 									'2: effective grain radius [Brun et al., 2009]',...
+@@ -197,7 +229,7 @@
+ 			switch self.aIdx
+ 			case {1 2}
+ 				fielddisplay(self,'aSnow','new snow albedo (0.64 - 0.89)');
+-				fielddisplay(self,'aIce','range 0.27-0.58 for old snow');
++				fielddisplay(self,'aIce','albedo of ice (0.27-0.58)');
+ 			case 3
+ 				fielddisplay(self,'cldFrac','average cloud amount');
+ 			case 4
+@@ -223,29 +255,40 @@
+ 
+ 			WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
+ 			
+-			WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',1,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isalbedo','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isshortwave','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isthermal','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isaccumulation','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','ismelt','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isdensification','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isturbulentflux','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
++			WriteData(fid,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
+ 			
+-			WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','C','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','spinUp','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			
++			WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','C','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',2,'scale',1);
++		
+ 			WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
+ 
+-			WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',1,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',1,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',1,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',1,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',1,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',1,'scale',1);
+ 
+ 			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double','scale',1);
+@@ -254,6 +297,12 @@
+ 			WriteData(fid,'object',self,'class','smb','fieldname','t0wet','format','Double','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','t0dry','format','Double','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double','scale',1);
++
++			%figure out dt from forcings: 
++			time=self.Ta(end,:); %assume all forcings are one the same time step
++			dtime=diff(time,1);
++			dt=min(dtime);
++			WriteData(fid,'data',dt,'enum',SmbDtEnum,'format','Double','scale',yts);
+ 			
+ 			%process requested outputs
+ 			outputs = self.requested_outputs;
+@@ -263,7 +312,6 @@
+ 				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
+-
+ 		end % }}}
+ 	end
+ end		
+Index: ../trunk-jpl/src/m/enum/SmbWEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbWEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbWEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbWEnum()
++%SMBWENUM - Enum of SmbW
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbWEnum()
++
++macro=StringToEnum('SmbW');
+Index: ../trunk-jpl/src/m/enum/SmbIsgraingrowthEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsgraingrowthEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsgraingrowthEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsgraingrowthEnum()
++%SMBISGRAINGROWTHENUM - Enum of SmbIsgraingrowth
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsgraingrowthEnum()
++
++macro=StringToEnum('SmbIsgraingrowth');
+Index: ../trunk-jpl/src/m/enum/DoubleArrayInputEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DoubleArrayInputEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/DoubleArrayInputEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=DoubleArrayInputEnum()
++%DOUBLEARRAYINPUTENUM - Enum of DoubleArrayInput
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=DoubleArrayInputEnum()
++
++macro=StringToEnum('DoubleArrayInput');
+Index: ../trunk-jpl/src/m/enum/SmbIsturbulentfluxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsturbulentfluxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsturbulentfluxEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsturbulentfluxEnum()
++%SMBISTURBULENTFLUXENUM - Enum of SmbIsturbulentflux
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsturbulentfluxEnum()
++
++macro=StringToEnum('SmbIsturbulentflux');
+Index: ../trunk-jpl/src/m/enum/P0ArrayEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/P0ArrayEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/P0ArrayEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=P0ArrayEnum()
++%P0ARRAYENUM - Enum of P0Array
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=P0ArrayEnum()
++
++macro=StringToEnum('P0Array');
+Index: ../trunk-jpl/src/m/enum/SmbIsalbedoEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsalbedoEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsalbedoEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsalbedoEnum()
++%SMBISALBEDOENUM - Enum of SmbIsalbedo
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsalbedoEnum()
++
++macro=StringToEnum('SmbIsalbedo');
+Index: ../trunk-jpl/src/m/enum/SmbGdnEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbGdnEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbGdnEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbGdnEnum()
++%SMBGDNENUM - Enum of SmbGdn
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbGdnEnum()
++
++macro=StringToEnum('SmbGdn');
+Index: ../trunk-jpl/src/m/enum/SmbIsthermalEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsthermalEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsthermalEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsthermalEnum()
++%SMBISTHERMALENUM - Enum of SmbIsthermal
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsthermalEnum()
++
++macro=StringToEnum('SmbIsthermal');
+Index: ../trunk-jpl/src/m/enum/SmbIsInitializedEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsInitializedEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsInitializedEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsInitializedEnum()
++%SMBISINITIALIZEDENUM - Enum of SmbIsInitialized
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsInitializedEnum()
++
++macro=StringToEnum('SmbIsInitialized');
+Index: ../trunk-jpl/src/m/enum/SmbDEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbDEnum()
++%SMBDENUM - Enum of SmbD
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDEnum()
++
++macro=StringToEnum('SmbD');
+Index: ../trunk-jpl/src/m/enum/SmbTEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbTEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbTEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbTEnum()
++%SMBTENUM - Enum of SmbT
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbTEnum()
++
++macro=StringToEnum('SmbT');
+Index: ../trunk-jpl/src/m/enum/SmbECEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbECEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbECEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbECEnum()
++%SMBECENUM - Enum of SmbEC
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbECEnum()
++
++macro=StringToEnum('SmbEC');
+Index: ../trunk-jpl/src/m/enum/SmbDtEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDtEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDtEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbDtEnum()
++%SMBDTENUM - Enum of SmbDt
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDtEnum()
++
++macro=StringToEnum('SmbDt');
+Index: ../trunk-jpl/src/m/enum/SmbIsdensificationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsdensificationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsdensificationEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsdensificationEnum()
++%SMBISDENSIFICATIONENUM - Enum of SmbIsdensification
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsdensificationEnum()
++
++macro=StringToEnum('SmbIsdensification');
+Index: ../trunk-jpl/src/m/enum/SmbDzEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbDzEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbDzEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbDzEnum()
++%SMBDZENUM - Enum of SmbDz
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbDzEnum()
++
++macro=StringToEnum('SmbDz');
+Index: ../trunk-jpl/src/m/enum/SmbReEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbReEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbReEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbReEnum()
++%SMBREENUM - Enum of SmbRe
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbReEnum()
++
++macro=StringToEnum('SmbRe');
+Index: ../trunk-jpl/src/m/enum/SmbIsmeltEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsmeltEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsmeltEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsmeltEnum()
++%SMBISMELTENUM - Enum of SmbIsmelt
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsmeltEnum()
++
++macro=StringToEnum('SmbIsmelt');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19553)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19554)
+@@ -349,6 +349,7 @@
+ def SmbSolutionEnum(): return StringToEnum("SmbSolution")[0]
+ def SmbNumRequestedOutputsEnum(): return StringToEnum("SmbNumRequestedOutputs")[0]
+ def SmbRequestedOutputsEnum(): return StringToEnum("SmbRequestedOutputs")[0]
++def SmbIsInitializedEnum(): return StringToEnum("SmbIsInitialized")[0]
+ def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
+ def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
+ def SMBgembEnum(): return StringToEnum("SMBgemb")[0]
+@@ -363,7 +364,8 @@
+ def SmbCEnum(): return StringToEnum("SmbC")[0]
+ def SmbTzEnum(): return StringToEnum("SmbTz")[0]
+ def SmbVzEnum(): return StringToEnum("SmbVz")[0]
+-def SmbSpinUpEnum(): return StringToEnum("SmbSpinUp")[0]
++def SmbDtEnum(): return StringToEnum("SmbDt")[0]
++def SmbDzEnum(): return StringToEnum("SmbDz")[0]
+ def SmbAIdxEnum(): return StringToEnum("SmbAIdx")[0]
+ def SmbSwIdxEnum(): return StringToEnum("SmbSwIdx")[0]
+ def SmbDenIdxEnum(): return StringToEnum("SmbDenIdx")[0]
+@@ -380,6 +382,22 @@
+ def SmbT0wetEnum(): return StringToEnum("SmbT0wet")[0]
+ def SmbT0dryEnum(): return StringToEnum("SmbT0dry")[0]
+ def SmbKEnum(): return StringToEnum("SmbK")[0]
++def SmbDEnum(): return StringToEnum("SmbD")[0]
++def SmbReEnum(): return StringToEnum("SmbRe")[0]
++def SmbGdnEnum(): return StringToEnum("SmbGdn")[0]
++def SmbGspEnum(): return StringToEnum("SmbGsp")[0]
++def SmbECEnum(): return StringToEnum("SmbEC")[0]
++def SmbWEnum(): return StringToEnum("SmbW")[0]
++def SmbAEnum(): return StringToEnum("SmbA")[0]
++def SmbTEnum(): return StringToEnum("SmbT")[0]
++def SmbIsgraingrowthEnum(): return StringToEnum("SmbIsgraingrowth")[0]
++def SmbIsalbedoEnum(): return StringToEnum("SmbIsalbedo")[0]
++def SmbIsshortwaveEnum(): return StringToEnum("SmbIsshortwave")[0]
++def SmbIsthermalEnum(): return StringToEnum("SmbIsthermal")[0]
++def SmbIsaccumulationEnum(): return StringToEnum("SmbIsaccumulation")[0]
++def SmbIsmeltEnum(): return StringToEnum("SmbIsmelt")[0]
++def SmbIsdensificationEnum(): return StringToEnum("SmbIsdensification")[0]
++def SmbIsturbulentfluxEnum(): return StringToEnum("SmbIsturbulentflux")[0]
+ def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
+ def SmbDelta18oEnum(): return StringToEnum("SmbDelta18o")[0]
+ def SmbDelta18oSurfaceEnum(): return StringToEnum("SmbDelta18oSurface")[0]
+@@ -503,6 +521,7 @@
+ def ControlInputEnum(): return StringToEnum("ControlInput")[0]
+ def DatasetInputEnum(): return StringToEnum("DatasetInput")[0]
+ def DoubleInputEnum(): return StringToEnum("DoubleInput")[0]
++def DoubleArrayInputEnum(): return StringToEnum("DoubleArrayInput")[0]
+ def DataSetParamEnum(): return StringToEnum("DataSetParam")[0]
+ def DoubleMatArrayParamEnum(): return StringToEnum("DoubleMatArrayParam")[0]
+ def DoubleMatParamEnum(): return StringToEnum("DoubleMatParam")[0]
+@@ -671,6 +690,7 @@
+ def GiadWdtEnum(): return StringToEnum("GiadWdt")[0]
+ def GiaWEnum(): return StringToEnum("GiaW")[0]
+ def P0Enum(): return StringToEnum("P0")[0]
++def P0ArrayEnum(): return StringToEnum("P0Array")[0]
+ def P1Enum(): return StringToEnum("P1")[0]
+ def P1DGEnum(): return StringToEnum("P1DG")[0]
+ def P1bubbleEnum(): return StringToEnum("P1bubble")[0]
+Index: ../trunk-jpl/src/m/enum/SmbAEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbAEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbAEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbAEnum()
++%SMBAENUM - Enum of SmbA
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbAEnum()
++
++macro=StringToEnum('SmbA');
+Index: ../trunk-jpl/src/m/enum/SmbIsshortwaveEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsshortwaveEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsshortwaveEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsshortwaveEnum()
++%SMBISSHORTWAVEENUM - Enum of SmbIsshortwave
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsshortwaveEnum()
++
++macro=StringToEnum('SmbIsshortwave');
+Index: ../trunk-jpl/src/m/enum/SmbIsaccumulationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbIsaccumulationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbIsaccumulationEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbIsaccumulationEnum()
++%SMBISACCUMULATIONENUM - Enum of SmbIsaccumulation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbIsaccumulationEnum()
++
++macro=StringToEnum('SmbIsaccumulation');
+Index: ../trunk-jpl/src/m/enum/SmbGspEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbGspEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbGspEnum.m	(revision 19554)
+@@ -0,0 +1,11 @@
++function macro=SmbGspEnum()
++%SMBGSPENUM - Enum of SmbGsp
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbGspEnum()
++
++macro=StringToEnum('SmbGsp');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19554-19555.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19554-19555.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19554-19555.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m	(revision 19554)
++++ ../trunk-jpl/src/m/enum/SmbSpinUpEnum.m	(revision 19555)
+@@ -1,11 +0,0 @@
+-function macro=SmbSpinUpEnum()
+-%SMBSPINUPENUM - Enum of SmbSpinUp
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SmbSpinUpEnum()
+-
+-macro=StringToEnum('SmbSpinUp');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19555-19556.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19555-19556.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19555-19556.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19556)
+@@ -0,0 +1,58 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.0.tar.gz
++mv petsc-3.6.0/* src/
++rm -rf petsc-3.6.0
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-blas-lapack-dir="$TACC_MKL_LIB" \
++	--with-mpi-lib="/opt/apps/intel11_1/mvapich2/1.6/lib/libmpich.so" \
++	--with-mpi-include="/opt/apps/intel11_1/mvapich2/1.6/include/" \
++	--known-mpi-shared-libraries=1 \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-batch=1  \
++	--with-shared-libraries=1 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1 
++
++#prepare script to reconfigure petsc
++cat > script.queue << EOF
++#!/bin/bash		 
++#$ -V		#Inherit the submission environment
++#$ -cwd	# Start job in submission directory
++#$ -N petscinstall # Job Name
++#$ -j y	# Combine stderr and stdout
++#$ -o $JOB_NAME.o$JOB_ID	# Name of the output file (eg. myMPI.oJobID)
++#$ -pe 12way 12	# Requests 12 tasks/node, 12 cores total
++#$ -q normal	# Queue name normal
++#$ -l h_rt=00:01:00	# Run time (hh:mm:ss) - 1.5 hours
++set -x	# Echo commands, use set echo with csh
++
++module load cmake/2.8.7
++module load mkl/10.3
++
++mpiexec -np 1 ./conftest-arch-linux2-c-opt
++EOF
++
++#print instructions
++echo "== Now: cd src/ "
++echo "== qsub script.queue "
++echo "== Then run reconfigure script generated by PETSc and follow instructions"
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19556-19557.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19556-19557.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19556-19557.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19556)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19557)
+@@ -223,6 +223,9 @@
+ 			export CXX=icpc
+ 			export CFLAGS=" -D_INTEL_LINUX_"
+ 			export CXXFLAGS=" -D_INTEL_LINUX_"
++		elif test $VENDOR = intel-lonestar; then
++			export CC=icc
++			export CXX=icpc
+ 		elif test $VENDOR = intel-discover; then
+ 			export CC=icc
+ 			export CXX=icpc
+@@ -1349,6 +1352,8 @@
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		elif test x$VENDOR = xintel-gp; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
++		elif test x$VENDOR = xintel-lonestar; then
++			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		else
+ 			MKLLIB=-L"$MKL_ROOT -lmkl -lmkl_lapack -lmkl_scalapack_ilp64 -lmkl_blacs_sgimpt_ilp64 -lguide -lpthread"
+ 		fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-19557-19558.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19557-19558.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19557-19558.diff	(revision 20498)
@@ -0,0 +1,202 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19558)
+@@ -0,0 +1,174 @@
++%LONESTAR class definition
++%
++%   Usage:
++%      cluster=lonestar();
++%      cluster=lonestar('np',3);
++%      cluster=lonestar('np',3,'login','username');
++
++classdef lonestar
++    properties (SetAccess=public)  
++		 % {{{
++		 name          = 'lonestar.tacc.utexas.edu'
++		 login         = '';
++		 numnodes      = 1;
++		 cpuspernode   = 12;
++		 port          = 0;
++		 queue         = 'normal';
++		 codepath      = '';
++		 executionpath = '';
++		 interactive   = 0;
++		 time          = 24*60;
++	 end
++	 properties (SetAccess=private) 
++		 np=20*8;
++		 % }}}
++	 end
++	 methods
++		 function cluster=lonestar(varargin) % {{{
++
++			 %initialize cluster using default settings if provided
++			 if (exist('lonestar_settings')==2), lonestar_settings; end
++
++			 %use provided options to change fields
++			 cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
++		 end
++		 %}}}
++		 function disp(cluster) % {{{
++			 %  display the object
++			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
++			 disp(sprintf('    name: %s',cluster.name));
++			 disp(sprintf('    login: %s',cluster.login));
++			 disp(sprintf('    port: %i',cluster.port));
++			 disp(sprintf('    numnodes: %i',cluster.numnodes));
++			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
++			 disp(sprintf('    np: %i',cluster.cpuspernode*cluster.numnodes));
++			 disp(sprintf('    queue: %s',cluster.queue));
++			 disp(sprintf('    codepath: %s',cluster.codepath));
++			 disp(sprintf('    executionpath: %s',cluster.executionpath));
++			 disp(sprintf('    interactive: %i',cluster.interactive));
++			 disp(sprintf('    time: %i',cluster.time));
++		 end
++		 %}}}
++		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
++
++			 available_queues={'normal'};
++			 queue_requirements_time=[Inf];
++			 queue_requirements_np=[Inf];
++
++			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++
++			 %Miscelaneous
++			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
++			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
++			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
++		 end
++		 %}}}
++		 function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++			 fprintf(fid,'#!/bin/bash\n');
++			 fprintf(fid,'#$ -N %s\n',modelname);
++			 fprintf(fid,'#$ -q %s \n',cluster.queue);
++			 fprintf(fid,'#$ -pe one-node-mpi 2-64\n');
++			 fprintf(fid,'#$ -R y\n');
++			 fprintf(fid,'#$ -m beas\n');
++			 fprintf(fid,'#$ -o %s.outlog \n',modelname);
++			 fprintf(fid,'#$ -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,modelname);
++			 fprintf(fid,'mpiexec -np %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++		 end
++		 %}}}
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++
++			 fprintf(fid,'#!/bin/bash\n');
++			 fprintf(fid,'#$ -V #Inherit the submission environment \n');
++			 fprintf(fid,'#$ -cwd ## Start job in submission directory \n');
++			 fprintf(fid,'#$ -N %s\n',modelname);
++			 fprintf(fid,'#$ -q %s \n',cluster.queue);
++			 fprintf(fid,'#$ -R y\n');
++			 fprintf(fid,'#$ -o %s.outlog \n',modelname);
++			 fprintf(fid,'#$ -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'#$ -pe 12way %i \n\n',cluster.np);
++			 fprintf(fid,'#$ -l h_rt=%02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
++
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
++			 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++
++			 %in interactive mode, create a run file, and errlog and outlog file
++			 if cluster.interactive,
++				 fid=fopen([modelname '.run'],'w');
++				 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++				 if ~io_gather, %concatenate the output files:
++					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++				 end
++				 fclose(fid);
++				 fid=fopen([modelname '.errlog'],'w');
++				 fclose(fid);
++				 fid=fopen([modelname '.outlog'],'w');
++				 fclose(fid);
++			 end
++		 end %}}}
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
++
++			 %compress the files into one zip.
++			 compressstring=['tar -zcf ' dirname '.tar.gz '];
++			 for i=1:numel(filelist),
++				 compressstring = [compressstring ' ' filelist{i}];
++			 end
++			 if cluster.interactive,
++				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
++			 end
++			 system(compressstring);
++
++			 disp('uploading input file and queueing script');
++			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
++
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++
++			 disp('launching solution sequence on remote cluster');
++			 if ~isempty(restart)
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
++			 else
++				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 end
++			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
++		 end %}}}
++		 function Download(cluster,dirname,filelist)% {{{
++
++			 %copy files from cluster to current directory
++			 directory=[cluster.executionpath '/' dirname '/'];
++			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
++
++		 end %}}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/clusters/hpc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19557)
++++ ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19558)
+@@ -1,4 +1,4 @@
+-%PFE class definition
++%HPC class definition
+ %
+ %   Usage:
+ %      cluster=hpc();
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19557)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19558)
+@@ -44,7 +44,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
+-			 disp(sprintf('    modules: %s',cluster.modules));
++			 disp(sprintf('    modules: %s',strjoin(cluster.modules,', ')));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19558-19559.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19558-19559.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19558-19559.diff	(revision 20498)
@@ -0,0 +1,154 @@
+Index: ../trunk-jpl/src/m/classes/verbose.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.py	(revision 19558)
++++ ../trunk-jpl/src/m/classes/verbose.py	(revision 19559)
+@@ -16,6 +16,7 @@
+ 	      control     : control method
+ 	      qmu         : sensitivity analysis
+ 	      autodiff    : AD analysis
++	      smb         : SMB analysis
+ 
+ 	   Usage:
+ 	      verbose=verbose();
+@@ -37,6 +38,7 @@
+ 		self.control     = False
+ 		self.qmu         = False
+ 		self.autodiff    = False
++		self.smb         = False
+ 		#ENDFIELDS
+ 
+ 		if not len(args):
+@@ -83,6 +85,7 @@
+ 		s+="   %15s : %s\n" % ('control',self.control)
+ 		s+="   %15s : %s\n" % ('qmu',self.qmu)
+ 		s+="   %15s : %s\n" % ('autodiff',self.autodiff)
++		s+="   %15s : %s\n" % ('smb',self.smb)
+ 		#ENDDISP
+ 
+ 		return s
+@@ -107,6 +110,8 @@
+ 			binary=binary | 64
+ 		if self.autodiff:
+ 			binary=binary | 128
++		if self.smb:
++			binary=binary | 256
+ 		#ENDVERB2BIN
+ 
+ 		return binary
+@@ -122,6 +127,7 @@
+ 		self.control    =bool(binary &  32)
+ 		self.qmu        =bool(binary &  64)
+ 		self.autodiff   =bool(binary & 128)
++		self.smb        =bool(binary & 256)
+ 		#ENDBIN2VERB
+ 	# }}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+Index: ../trunk-jpl/src/m/classes/verbose.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.m	(revision 19558)
++++ ../trunk-jpl/src/m/classes/verbose.m	(revision 19559)
+@@ -9,6 +9,7 @@
+ %      control     : control method
+ %      qmu         : sensitivity analysis
+ %      autodiff    : AD analysis
++%      smb         : smb analysis
+ %
+ %   Usage:
+ %      verbose=verbose();
+@@ -32,6 +33,7 @@
+ 		control=false;
+ 		qmu=false;
+ 		autodiff=false;
++		smb=false;
+ 		%ENDFIELDS
+ 		% }}}
+ 	end
+@@ -103,6 +105,7 @@
+ 		if (verbose.control), binary=bitor(binary,32); end
+ 		if (verbose.qmu), binary=bitor(binary,64); end
+ 		if (verbose.autodiff), binary=bitor(binary,128); end
++		if (verbose.smb), binary=bitor(binary,256); end
+ 		%ENDVERB2BIN
+ 
+ 		end
+@@ -118,6 +121,7 @@
+ 		if bitand(binary,32), verbose.control=true; else verbose.control=false; end
+ 		if bitand(binary,64), verbose.qmu=true; else verbose.qmu=false; end
+ 		if bitand(binary,128), verbose.autodiff=true; else verbose.autodiff=false; end
++		if bitand(binary,256), verbose.smb=true; else verbose.smb=false; end
+ 		%ENDBIN2VERB
+ 
+ 		end
+@@ -137,6 +141,7 @@
+ 		disp(sprintf('   %15s : %s','control',mat2str(verbose.control)));
+ 		disp(sprintf('   %15s : %s','qmu',mat2str(verbose.qmu)));
+ 		disp(sprintf('   %15s : %s','autodiff',mat2str(verbose.autodiff)));
++		disp(sprintf('   %15s : %s','smb',mat2str(verbose.smb)));
+ 		%ENDDISP
+ 
+ 		end
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19558)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19559)
+@@ -71,7 +71,11 @@
+ 			% get mask of vertices of elements with ice
+ 			isice=md.mask.ice_levelset<=0.;
+ 			vlist = zeros(md.mesh.numberofvertices,1);
+-			pos=find(sum(isice(md.mesh.elements),2)>0);
++			if md.mesh.numberofelements==1,
++				pos=find(sum(isice(md.mesh.elements),1)>0);
++			else
++				pos=find(sum(isice(md.mesh.elements),2)>0);
++			end
+ 			vlist(md.mesh.elements(pos,:))=1;
+ 			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19558)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19559)
+@@ -69,6 +69,9 @@
+ 		t0wet = NaN; % time scale for wet snow (15-21.9) 
+ 		t0dry = NaN; % warm snow timescale (30) 
+ 		K     = NaN; % time scale temperature coef. (7) 
++
++		%densities:
++		InitDensityScaling= NaN; %initial scaling factor multiplying the density of ice, which describes the density of the snowpack.
+ 		
+ 		requested_outputs      = {};
+ 
+@@ -120,6 +123,7 @@
+ 		self.zTop=10*ones(mesh.numberofelements,1);
+ 		self.dzTop = .05* ones (mesh.numberofelements,1);
+ 		self.dzMin = self.dzTop/2;
++		self.InitDensityScaling = 1.0;
+ 		
+ 		he=sum(geometry.thickness(mesh.elements),2)/size(mesh.elements,2);
+ 		self.zMax=min(500,he);
+@@ -169,6 +173,7 @@
+ 		md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'>',0);
+ 		md = checkfield(md,'fieldname','smb.zY','NaN',1,'>=',1);
+ 		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'>',0,'<',10*365); %10 years max 
++		md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'>=',0,'<=',1);
+ 		
+ 		switch self.aIdx,
+ 		case {1 2}
+@@ -219,6 +224,7 @@
+ 			fielddisplay(self,'zMax','initial max model depth (default is min(thickness,500)) [m]');
+ 			fielddisplay(self,'zMin','initial min model depth (default is min(thickness,30)) [m]');
+ 			fielddisplay(self,'zY','strech grid cells bellow top_z by a [top_dz * y ^ (cells bellow top_z)]');
++			fielddisplay(self,'InitDensityScaling',{'initial scaling factor multiplying the density of ice','which describes the density of the snowpack.'});
+ 			fielddisplay(self,'outputFreq','output frequency in days (default is monthly, 30)');
+ 			fielddisplay(self,'aIdx',{'method for calculating albedo and subsurface absorption (default is 1)',...
+ 									'1: effective grain radius [Gardner & Sharp, 2009]',...
+@@ -288,8 +294,8 @@
+ 			WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double');
+ 
+-
+ 			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double','scale',1);
+ 			WriteData(fid,'object',self,'class','smb','fieldname','aIce','format','Double','scale',1);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19559-19560.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19559-19560.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19559-19560.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19559)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19560)
+@@ -202,12 +202,12 @@
+ 
+ %Check forcings (size and times)
+ if getfieldvalue(options,'timeseries',0),
+-	if size(field,1)==md.mesh.numberofvertices,
++	if (size(field,1)==md.mesh.numberofvertices | size(field,1)==md.mesh.numberofelements),
+ 		if ~size(field,2)==1,
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' should have only one column as there are md.mesh.numberofvertices lines']));
+ 		end
+-	elseif size(field,1)==md.mesh.numberofvertices+1
++	elseif (size(field,1)==md.mesh.numberofvertices+1 | size(field,1)==md.mesh.numberofelements+1),
+ 		if any(field(end,:)~=sort(field(end,:))),
+ 			md = checkmessage(md,getfieldvalue(options,'message',...
+ 				['field ''' fieldname ''' columns should be sorted chronologically']));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19560-19561.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19560-19561.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19560-19561.diff	(revision 20498)
@@ -0,0 +1,184 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19560)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19561)
+@@ -359,11 +359,13 @@
+ 	SmbMassBalanceEnum,
+ 	/*SMBgemb*/
+ 	SMBgembEnum,
++	SmbInitDensityScalingEnum,
+ 	SmbTaEnum,
+ 	SmbVEnum,
+ 	SmbDswrfEnum,
+ 	SmbDlwrfEnum,
+ 	SmbPEnum, 
++	SmbSwfEnum, 
+ 	SmbEAirEnum, 
+ 	SmbPAirEnum,
+ 	SmbTmeanEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19560)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19561)
+@@ -361,11 +361,13 @@
+ 		case SMBforcingEnum : return "SMBforcing";
+ 		case SmbMassBalanceEnum : return "SmbMassBalance";
+ 		case SMBgembEnum : return "SMBgemb";
++		case SmbInitDensityScalingEnum : return "SmbInitDensityScaling";
+ 		case SmbTaEnum : return "SmbTa";
+ 		case SmbVEnum : return "SmbV";
+ 		case SmbDswrfEnum : return "SmbDswrf";
+ 		case SmbDlwrfEnum : return "SmbDlwrf";
+ 		case SmbPEnum : return "SmbP";
++		case SmbSwfEnum : return "SmbSwf";
+ 		case SmbEAirEnum : return "SmbEAir";
+ 		case SmbPAirEnum : return "SmbPAir";
+ 		case SmbTmeanEnum : return "SmbTmean";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19560)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19561)
+@@ -367,11 +367,13 @@
+ 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+ 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
++	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
+ 	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
+ 	      else if (strcmp(name,"SmbV")==0) return SmbVEnum;
+ 	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
+ 	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+ 	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
++	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+ 	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+ 	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
+ 	      else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
+@@ -380,12 +382,12 @@
+ 	      else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
+ 	      else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
+ 	      else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
+-	      else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
+-	      else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
++	      if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
++	      else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
++	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
+ 	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
+ 	      else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
+ 	      else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
+@@ -503,12 +505,12 @@
+ 	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
+ 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
+ 	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
+-	      else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
+-	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
++	      if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
++	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
++	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
+ 	      else if (strcmp(name,"LevelsetStabilization")==0) return LevelsetStabilizationEnum;
+ 	      else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
+ 	      else if (strcmp(name,"LsfReinitializationAnalysis")==0) return LsfReinitializationAnalysisEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
+ 	      else if (strcmp(name,"Friction")==0) return FrictionEnum;
+ 	      else if (strcmp(name,"Internal")==0) return InternalEnum;
+-	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
+-	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"Misfit")==0) return MisfitEnum;
++	      if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
++	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
++	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
+ 	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
+ 	      else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum;
+ 	      else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
+ 	      else if (strcmp(name,"Outputdefinition2")==0) return Outputdefinition2Enum;
+ 	      else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
+-	      else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
+-	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
++	      if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
++	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
++	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
+ 	      else if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum;
+ 	      else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
+ 	      else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
+ 	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
+ 	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
+-	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
+-	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MinVy")==0) return MinVyEnum;
++	      if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
++	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
++	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
+ 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
+ 	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
+ 	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
+Index: ../trunk-jpl/src/m/enum/SmbInitDensityScalingEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbInitDensityScalingEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbInitDensityScalingEnum.m	(revision 19561)
+@@ -0,0 +1,11 @@
++function macro=SmbInitDensityScalingEnum()
++%SMBINITDENSITYSCALINGENUM - Enum of SmbInitDensityScaling
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbInitDensityScalingEnum()
++
++macro=StringToEnum('SmbInitDensityScaling');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19560)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19561)
+@@ -353,11 +353,13 @@
+ def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
+ def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
+ def SMBgembEnum(): return StringToEnum("SMBgemb")[0]
++def SmbInitDensityScalingEnum(): return StringToEnum("SmbInitDensityScaling")[0]
+ def SmbTaEnum(): return StringToEnum("SmbTa")[0]
+ def SmbVEnum(): return StringToEnum("SmbV")[0]
+ def SmbDswrfEnum(): return StringToEnum("SmbDswrf")[0]
+ def SmbDlwrfEnum(): return StringToEnum("SmbDlwrf")[0]
+ def SmbPEnum(): return StringToEnum("SmbP")[0]
++def SmbSwfEnum(): return StringToEnum("SmbSwf")[0]
+ def SmbEAirEnum(): return StringToEnum("SmbEAir")[0]
+ def SmbPAirEnum(): return StringToEnum("SmbPAir")[0]
+ def SmbTmeanEnum(): return StringToEnum("SmbTmean")[0]
+Index: ../trunk-jpl/src/m/enum/SmbSwfEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbSwfEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbSwfEnum.m	(revision 19561)
+@@ -0,0 +1,11 @@
++function macro=SmbSwfEnum()
++%SMBSWFENUM - Enum of SmbSwf
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbSwfEnum()
++
++macro=StringToEnum('SmbSwf');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19561-19562.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19561-19562.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19561-19562.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/Verbosity.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/Verbosity.cpp	(revision 19561)
++++ ../trunk-jpl/src/c/shared/Numerics/Verbosity.cpp	(revision 19562)
+@@ -27,6 +27,7 @@
+ bool VerboseControl(void){return (GetVerbosityLevel() & 32);} /* 2^5*/
+ bool VerboseQmu(void){return (GetVerbosityLevel() & 64);} /* 2^6*/
+ bool VerboseAutodiff(void){return (GetVerbosityLevel() & 128);} /* 2^7*/
++bool VerboseSmb(void){return (GetVerbosityLevel() & 256);} /* 2^8*/
+ 
+ /*Verbosity Setup*/
+ static int verbositylevel=-1;
+Index: ../trunk-jpl/src/c/shared/Numerics/Verbosity.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/Verbosity.h	(revision 19561)
++++ ../trunk-jpl/src/c/shared/Numerics/Verbosity.h	(revision 19562)
+@@ -14,6 +14,7 @@
+ bool VerboseControl(void);
+ bool VerboseQmu(void);
+ bool VerboseAutodiff(void);
++bool VerboseSmb(void);
+ 
+ /*Setup Verbosity level*/
+ void SetVerbosityLevel(int level);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19562-19563.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19562-19563.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19562-19563.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19562)
++++ ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19563)
+@@ -8,10 +8,13 @@
+ #include <sys/types.h>
+ #include <math.h>
+ #include <float.h>    /*  DBL_EPSILON  */
++#include <cstdarg>
++#include <iostream>
+ 
+ #include "./matrix.h"
+ #include "../Exceptions/exceptions.h"
+ #include "../MemOps/MemOps.h"
++#include "../io/io.h"
+ /*}}}*/
+ 
+ int TripleMultiply(IssmDouble* a, int nrowa, int ncola, int itrna, IssmDouble* b, int nrowb, int ncolb, int itrnb, IssmDouble* c, int nrowc, int ncolc, int itrnc, IssmDouble* d, int iaddd){/*{{{*/
+@@ -626,3 +629,29 @@
+ 	/*assign output pointers: */
+ 	*pcell=newcell;
+ } /*}}}*/
++void cellecho(int numcells, int m, ...) { /*{{{*/
++
++	va_list arguments;                     
++	IssmDouble** celllist= NULL;
++
++	/*allocate variable length array: */
++	celllist=xNew<IssmDouble*>(numcells); 
++
++	va_start(arguments,m);
++
++	for ( int x = 0; x < numcells; x++ ){
++		celllist[x]= va_arg ( arguments, IssmDouble*); 
++	}
++	va_end ( arguments );                  
++	
++	_printf_("Echo of cell: \n");
++	for(int i=0;i<m;i++){
++		_printf_(i << ": ");
++		for (int j=0;j<numcells;j++)_printf_(celllist[j][i] << " ");
++		_printf_("\n");
++	}
++
++	/*deallocate:*/
++	xDelete<IssmDouble*>(celllist);
++
++} /*}}}*/
+Index: ../trunk-jpl/src/c/shared/Matrix/matrix.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Matrix/matrix.h	(revision 19562)
++++ ../trunk-jpl/src/c/shared/Matrix/matrix.h	(revision 19563)
+@@ -28,5 +28,6 @@
+ void newcell(IssmDouble** pcell, IssmDouble newvalue, bool top, int m);
+ IssmDouble  cellsum(IssmDouble* cell, int m);
+ void celldelete(IssmDouble** pcell, int m, int* indices, int nind);
+-void cellsplit(IssmDouble** pcell, int m, int i,IssmDouble scale) ;
++void cellsplit(IssmDouble** pcell, int m, int i,IssmDouble scale);
++void cellecho(int numcells, int m, ...);
+ #endif //ifndef _MATRIXUTILS_H_
Index: /issm/oecreview/Archive/19101-20495/ISSM-19563-19564.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19563-19564.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19563-19564.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19563)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19564)
+@@ -78,7 +78,7 @@
+ 		femmodel->parameters->SetParam(time,TimeEnum);
+ 		femmodel->parameters->SetParam(step,StepEnum);
+ 
+-		if(VerboseSolution()) _printf0_("iteration " << step << "/" << floor((finaltime-time)/dt)+step << "  time [yr]: " << time/yts << " (time step: " << dt/yts << ")\n");
++		if(VerboseSolution()) _printf0_("iteration " << step << "/" << floor((finaltime-time)/dt)+step << "  time [yr]: " << setprecision(8) << time/yts << " (time step: " << dt/yts << ")\n");
+ 		if(step%output_frequency==0 || (time >= finaltime - (yts*DBL_EPSILON)) || step==1)
+ 		 save_results=true;
+ 		else
Index: /issm/oecreview/Archive/19101-20495/ISSM-19564-19565.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19564-19565.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19564-19565.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19564)
++++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19565)
+@@ -155,6 +155,7 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsmeltEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdensificationEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsturbulentfluxEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(SmbInitDensityScalingEnum));
+ 			break;
+ 		case SMBpddEnum:
+ 			parameters->AddObject(iomodel->CopyConstantObject(SmbIsdelta18oEnum));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19565-19566.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19565-19566.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19565-19566.diff	(revision 20498)
@@ -0,0 +1,217 @@
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19565)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19566)
+@@ -128,7 +128,7 @@
+ 	return F*H*G*E;
+ 
+ } /*}}}*/
+-void grainGrowth(IssmDouble* re, IssmDouble* gdn, IssmDouble* gsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx){ /*{{{*/
++void grainGrowth(IssmDouble* re, IssmDouble* gdn, IssmDouble* gsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx,int sid){ /*{{{*/
+ 
+ 	/*Created by: Alex S. Gardner, University of Alberta
+ 
+@@ -172,6 +172,8 @@
+ 	IssmDouble* lwc=NULL;
+ 	IssmDouble  Q=0;
+ 
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   grain growth module\n");
++	
+ 	/*only when aIdx = 1 or 2 do we run grainGrowth: */
+ 	if(aIdx!=1 & aIdx!=2){
+ 		/*come out as we came in: */
+@@ -301,7 +303,7 @@
+ 	xDelete<IssmDouble>(lwc);
+ 
+ }  /*}}}*/
+-void albedo(IssmDouble* a, int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* TK, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt, int m) { /*{{{*/
++void albedo(IssmDouble* a, int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* TK, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt, int m,int sid) { /*{{{*/
+ 
+ 	//// Calculates Snow, firn and ice albedo as a function of:
+ 	//   1 : effective grain radius (Gardner & Sharp, 2009)
+@@ -344,6 +346,8 @@
+ 	// Method 4
+ 	// a = albedo(4, [], [], [], 0.48, 0.85, [0.8 0.5 ... 0.48], ...
+ 	//   [273 272.5 ... 265], [0 0.001 ... 0], 0, 0.01, 15, 15, 7, 3600)
++
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   albedo module\n");
+         
+ 	//some constants:
+ 	const IssmDouble dSnow = 300;   // density of fresh snow [kg m-3]       
+@@ -450,7 +454,7 @@
+ 	else if (a[0] < 0) _printf_("albedo is negative\n");
+ 	else if (isnan(a[0])) _error_("albedo == NAN\n");
+ }  /*}}}*/
+-void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz) { /*{{{*/
++void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz,int sid) { /*{{{*/
+ 
+ 	/* ENGLACIAL THERMODYNAMICS*/
+ 	 
+@@ -526,6 +530,8 @@
+ 	/*outputs:*/
+ 	IssmDouble EC;
+ 
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   thermal module\n");
++
+ 	// INITIALIZE
+ 	CI = 2102;          // heat capacity of snow/ice (J kg-1 k-1)
+ 	// CA = 1005;                  // heat capacity of air (J kg-1 k-1)
+@@ -620,12 +626,12 @@
+ 	// smallest possible even integer of 60 min where diffusion number > 1/2
+ 	// must go evenly into one hour or the data frequency if it is smaller
+ 
+-	// all integer factors of the number of second in a day (8600 [s])
++	// all integer factors of the number of second in a day (86400 [s])
+ 	int f[45] = {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 30, 36, 40, 45, 48, 50, 60,
+     72, 75, 80, 90, 100, 120, 144, 150, 180, 200, 225, 240, 300, 360, 400, 450, 600, 720, 900, 1200, 1800, 3600};
+ 
+ 	// return the min integer factor that is < dt
+-	max_fdt=0;
++	max_fdt=f[0];
+ 	for(int i=0;i<45;i++){
+ 		if (f[i]<dt)if(f[i]>=max_fdt)max_fdt=f[i];
+ 	}
+@@ -772,15 +778,14 @@
+ 		// new grid point temperature
+     
+ 		//SW penetrates surface
+-		for(int i=0;i<m;i++) T[i] = T[i] + dT_sw[i];
++		for(int j=0;j<m;j++) T[j] = T[j] + dT_sw[j];
+ 		T[0] = T[0] + dT_dlw + dT_ulw + dT_turb;
+ 		
+ 		// temperature diffusion
+-		for(int i=0;i<m;i++)T0[1+i]=T[i];
+-		for(int i=0;i<m;i++) Tu[i] = T0[i];
+-		for(int i=0;i<m;i++) Td[i] = T0[2+i];
+-    
+-		for(int i=0;i<m;i++) T[i] = (Np[i] * T[i]) + (Nu[i] * Tu[i]) + (Nd[i] * Td[i]);
++		for(int j=0;j<m;j++)T0[1+j]=T[j];
++		for(int j=0;j<m;j++) Tu[j] = T0[j];
++		for(int j=0;j<m;j++) Td[j] = T0[2+j];
++		for(int j=0;j<m;j++) T[j] = (Np[j] * T[j]) + (Nu[j] * Tu[j]) + (Nd[j] * Td[j]);
+ 		
+ 		// calculate cumulative evaporation (+)/condensation(-)
+ 		EC = EC + (EC_day/86400)*dt;
+@@ -825,7 +830,7 @@
+ 	*pEC=EC;
+ 
+ }  /*}}}*/
+-void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m){ /*{{{*/
++void shortwave(IssmDouble* swf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid){ /*{{{*/
+ 
+ 	// DISTRIBUTES ABSORBED SHORTWAVE RADIATION WITHIN SNOW/ICE
+ 
+@@ -847,13 +852,9 @@
+ 	// Outputs
+ 	//   swf     = absorbed shortwave radiation [W m-2]
+ 
+-	/*outputs:*/
+-	IssmDouble* swf = NULL;
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   shortwave module\n");
+ 
+ 	// SHORTWAVE FUNCTION
+-	// initialize variables
+-	swf = xNewZeroInit<IssmDouble>(m);
+-
+ 	if (swIdx == 0) {// all sw radation is absorbed in by the top grid cell
+         
+ 		// calculate surface shortwave radiation fluxes [W m-2]
+@@ -1009,7 +1010,7 @@
+ 			for(int i=0;i<m;i++) swf[i] = (Qs[i]-Qs[i+1]);
+ 
+ 			// add flux absorbed at surface
+-			swf[0] = swf[0] + swf_s;
++			swf[0] += swf_s;
+ 
+ 			/*Free ressources:*/
+ 			xDelete<IssmDouble>(B_cum);
+@@ -1018,10 +1019,8 @@
+ 			xDelete<IssmDouble>(B);
+ 		}
+ 	}
+-	/*Assign output pointers: */
+-	*pswf=swf;
+ } /*}}}*/ 
+-void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow){ /*{{{*/
++void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, int sid){ /*{{{*/
+ 
+ 	// Adds precipitation and deposition to the model grid
+ 
+@@ -1062,6 +1061,8 @@
+ 	IssmDouble* gsp=NULL;
+ 	int         m;
+ 
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   accumulation module\n");
++
+ 	/*Recover pointers: */
+ 	T=*pT;
+ 	dz=*pdz;
+@@ -1168,7 +1169,7 @@
+ 	*pgsp=gsp;
+ 	*pm=m;
+ } /*}}}*/
+-void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin){ /*{{{*/
++void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, int sid){ /*{{{*/
+ 
+ 	//// MELT ROUTINE
+ 
+@@ -1219,6 +1220,8 @@
+ 	IssmDouble* gsp=*pgsp;
+ 	int         n=*pn;
+ 	
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   melt module\n");
++
+ 	//// INITIALIZATION
+ 
+ 	/*Allocations: */
+@@ -1563,7 +1566,7 @@
+ 	*pn=n;
+ 
+ } /*}}}*/ 
+-void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,int m){ /*{{{*/
++void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,IssmDouble dIce, int m, int sid){ /*{{{*/
+ 
+ 	//// THIS NEEDS TO BE DOUBLE CHECKED AS THERE SEAMS TO BE LITTLE DENSIFICATION IN THE MODEL OUTOUT [MAYBE COMPATION IS COMPNSATED FOR BY TRACES OF SNOW???]
+ 
+@@ -1605,7 +1608,6 @@
+ 
+ 	//// MAIN FUNCTION
+ 	// specify constants
+-	const IssmDouble dIce    = 910;         // density of ice [kg m-3]
+ 	dt      = dt / 86400;  // convert from [s] to [d]
+ 	// R     = 8.314        // gas constant [mol-1 K-1]
+ 	// Ec    = 60           // activation energy for self-diffusion of water
+@@ -1614,6 +1616,8 @@
+ 
+ 	/*intermediary: */
+ 	IssmDouble c0,c1,H;
++	
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   densification module\n");
+ 
+ 	// initial mass
+ 	IssmDouble* mass_init = xNew<IssmDouble>(m);for(int i=0;i<m;i++) mass_init[i]=d[i] * dz[i];
+@@ -1678,13 +1682,14 @@
+ 		// calculate new grid cell length
+ 		dz[i] = mass_init[i] / d[i];
+ 	}
++
+ 	/*Free ressources:*/
+ 	xDelete<IssmDouble>(mass_init);
+ 	xDelete<IssmDouble>(cumdz);
+ 	xDelete<IssmDouble>(obp);
+ 
+ } /*}}}*/
+-void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz){ /*{{{*/
++void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz, int sid){ /*{{{*/
+ 
+ 	//// TURBULENT HEAT FLUX
+ 
+@@ -1724,6 +1729,8 @@
+ 
+ 	/*output: */
+ 	IssmDouble shf, lhf, EC;
++	
++	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   turbulentFlux module\n");
+ 
+ 	// calculated air density [kg/m3]
+ 	d_air = 0.029 * pAir /(8.314 * Ta);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19566-19567.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19566-19567.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19566-19567.diff	(revision 20498)
@@ -0,0 +1,211 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19566)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19567)
+@@ -2136,7 +2136,6 @@
+ 	int        denIdx=0;
+ 	int        swIdx=0;
+ 	IssmDouble cldFrac,t0wet, t0dry, K;
+-	IssmDouble comp1,comp2;
+ 	IssmDouble ulw;
+ 	IssmDouble netSW;
+ 	IssmDouble netLW;
+@@ -2145,6 +2144,7 @@
+     IssmDouble sumR, sumM, sumEC, sumP, sumW,sumMassAdd;
+     IssmDouble sumMass,dMass;
+ 	bool isgraingrowth,isalbedo,isshortwave,isthermal,isaccumulation,ismelt,isdensification,isturbulentflux;
++	IssmDouble init_scaling=1.0;
+ 	/*}}}*/
+ 	/*Output variables:{{{ */
+ 	IssmDouble* dz=NULL;
+@@ -2162,11 +2162,13 @@
+ 	IssmDouble  R; 
+ 	IssmDouble  mAdd;
+ 	int         m;
++	IssmDouble  SmbMassBalance=0;
+ 	/*}}}*/
+ 
+ 	/*only compute SMB at the surface: */
+ 	if (!IsOnSurface()) return;
+ 
++
+ 	/*Retrieve material properties and parameters:{{{ */
+ 	rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	parameters->FindParam(&aSnow,SmbASnowEnum);
+@@ -2189,6 +2191,7 @@
+ 	parameters->FindParam(&ismelt,SmbIsmeltEnum);
+ 	parameters->FindParam(&isdensification,SmbIsdensificationEnum);
+ 	parameters->FindParam(&isturbulentflux,SmbIsturbulentfluxEnum);
++	parameters->FindParam(&init_scaling,SmbInitDensityScalingEnum);
+ 	/*}}}*/
+ 	/*Retrieve inputs: {{{*/
+ 	Input* zTop_input=this->GetInput(SmbZTopEnum); _assert_(zTop_input); 
+@@ -2224,16 +2227,17 @@
+ 	Tz_input->GetInputValue(&Tz,gauss);
+ 	Vz_input->GetInputValue(&Vz,gauss);
+ 	/*}}}*/
++
+ 	/*First, check that the initial structures have been setup in GEMB. If not, initialize profile variables: layer thickness dz, * density d, temperature T, etc. {{{*/
+-	if(!isinitialized_input){ 
++	if(!isinitialized_input){
+ 
+-		/*Initialize grid:*/
++		if(VerboseSmb() && this->Sid()==0)_printf0_("smb core: Initializing grid\n");
+ 		GembgridInitialize(&dz, &m, zTop, dzTop, zMax, zY);
+ 		//if(this->Sid()==1) for(int i=0;i<m;i++)_printf_("z[" << i << "]=" <<
+ 		//dz[i] << "\n");
+ 
+ 		/*initialize profile variables:*/
+-		d = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)d[i]=rho_ice; //ice density 
++		d = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)d[i]=rho_ice*init_scaling; //ice density scaled by a factor
+ 		re = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)re[i]=2.5;         //set grain size to old snow [mm] 
+ 		gdn = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gdn[i]=0;         //set grain dentricity to old snow 
+ 		gsp = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)gsp[i]=0;         //set grain sphericity to old snow 
+@@ -2241,6 +2245,7 @@
+ 		W = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)W[i]=0;             //set water content to zero [kg m-2]
+ 		a = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)a[i]=aSnow;         //set albedo equal to fresh snow [fraction] 
+ 		T = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)T[i]=Tmean;         //set initial grid cell temperature to the annual mean temperature [K]
++		swf = xNewZeroInit<IssmDouble>(m); 
+ 
+ 		//fixed lower temperatuer bounday condition - T is fixed
+ 		T_bottom=T[m-1];
+@@ -2250,15 +2255,16 @@
+ 	} 
+ 	else{ 
+ 		/*Recover inputs: */
+-		DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDzEnum));
+-		DoubleArrayInput* d_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDEnum));
+-		DoubleArrayInput* re_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbReEnum));
+-		DoubleArrayInput* gdn_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGdnEnum));
+-		DoubleArrayInput* gsp_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGspEnum));
+-		DoubleInput* EC_input= dynamic_cast<DoubleInput*>(this->GetInput(SmbECEnum));
+-		DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWEnum));
+-		DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));
+-		DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));
++		DoubleArrayInput* dz_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDzEnum)); _assert_(dz_input);
++		DoubleArrayInput* d_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbDEnum));_assert_(d_input);
++		DoubleArrayInput* re_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbReEnum));_assert_(re_input);
++		DoubleArrayInput* gdn_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGdnEnum));_assert_(gdn_input);
++		DoubleArrayInput* gsp_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbGspEnum));_assert_(gsp_input);
++		DoubleInput* EC_input= dynamic_cast<DoubleInput*>(this->GetInput(SmbECEnum));_assert_(EC_input);
++		DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWEnum));_assert_(W_input);
++		DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));_assert_(a_input);
++		DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));_assert_(T_input);
++		DoubleArrayInput* swf_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbSwfEnum));_assert_(swf_input);
+ 		
+ 		/*Recover arrays: */
+ 		dz_input->GetValues(&dz,&m);
+@@ -2270,6 +2276,7 @@
+ 		W_input->GetValues(&W,&m);
+ 		a_input->GetValues(&a,&m);
+ 		T_input->GetValues(&T,&m);
++		swf_input->GetValues(&swf,&m);
+ 
+ 	} /*}}}*/
+ 
+@@ -2279,9 +2286,15 @@
+     // initialize cumulative variables
+     sumR = 0; sumM = 0; sumEC = 0; sumP = 0; sumMassAdd = 0;
+ 
++	//before starting loop, realize that the transient core runs this smb_core at time = time +deltaT. 
++	//go back to time - deltaT: 
++	time-=dt;
++
+ 	/*Start loop: */
+ 	for (t=time;t<=time+dt;t=t+smb_dt){
+ 
++		if(VerboseSmb() && this->Sid()==0 && IssmComm::GetRank()==0)_printf0_("Time: t=" << setprecision(8) << t/365.0/24.0/3600.0 << " yr/" << (time+dt)/365.0/24.0/3600.0 << " yr" << "\n");
++
+ 		/*extract daily data:{{{*/
+ 		Ta_input->GetInputValue(&Ta,gauss,t);//screen level air temperature [K]
+ 		V_input->GetInputValue(&V,gauss,t);  //wind speed [m s-1]
+@@ -2294,34 +2307,31 @@
+ 		/*}}}*/
+ 
+ 		/*Snow grain metamorphism:*/
+-		if(isgraingrowth)grainGrowth(re, gdn, gsp, T, dz, d, W, smb_dt, m, aIdx);
++		if(isgraingrowth)grainGrowth(re, gdn, gsp, T, dz, d, W, smb_dt, m, aIdx,this->Sid());
+ 
+ 		/*Snow, firn and ice albedo:*/
+-		if(isalbedo)albedo(a,aIdx,re,d,cldFrac,aIce, aSnow,T,W,P,EC,t0wet,t0dry,K,smb_dt,m);
++		if(isalbedo)albedo(a,aIdx,re,d,cldFrac,aIce, aSnow,T,W,P,EC,t0wet,t0dry,K,smb_dt,m,this->Sid());
+ 		
++					
+ 		/*Distribution of absorbed short wave radation with depth:*/
+-        if(isshortwave)shortwave(&swf, swIdx, aIdx, dsw, a[0], d, dz, re,m);
++        if(isshortwave)shortwave(swf, swIdx, aIdx, dsw, a[0], d, dz, re,m,this->Sid());
+ 		
+ 		/*Thermal profile computation:*/
+-        if(isthermal)thermo(&EC, T, dz, d, swf, dlw, Ta, V, eAir, pAir, W[0], smb_dt, Vz, Tz,m);     
++        if(isthermal)thermo(&EC, T, dz, d, swf, dlw, Ta, V, eAir, pAir, W[0], smb_dt, m, Vz, Tz,this->Sid());     
+ 
+ 		/*Change in thickness of top cell due to evaporation/condensation  assuming same density as top cell. 
+ 		 * need to fix this in case all or more of cell evaporates */
+         dz[0] = dz[0] + EC / d[0];
+ 		
+ 		/*Add snow/rain to top grid cell adjusting cell depth, temperature and density*/
+-        if(isaccumulation)accumulation(&T, &dz, &d, &W, &a, &re, &gdn, &gsp, &m, Ta, P, dzMin, aSnow);
++        if(isaccumulation)accumulation(&T, &dz, &d, &W, &a, &re, &gdn, &gsp, &m, Ta, P, dzMin, aSnow,this->Sid());
+ 
+ 		/*Calculate water production, M [kg m-2] resulting from snow/ice temperature exceeding 273.15 deg K 
+ 		 * (> 0 deg C), runoff R [kg m-2] and resulting changes in density and determine wet compaction [m]*/
+-		comp2 = cellsum(dz,m); 
+-		if(ismelt)melt(&M, &R, &mAdd, &T, &d, &dz, &W, &a, &re, &gdn, &gsp, &m, dzMin, zMax, zMin);
+-        comp2 = (comp2 - cellsum(dz,m));
++		if(ismelt)melt(&M, &R, &mAdd, &T, &d, &dz, &W, &a, &re, &gdn, &gsp, &m, dzMin, zMax, zMin,this->Sid());
+ 
+ 		/*Allow non-melt densification and determine compaction [m]*/
+-        comp1 = cellsum(dz,m); 
+-        if(isdensification)densification(d,dz, T, re, denIdx, C, smb_dt, Tmean,m);
+-        comp1 = (comp1 - cellsum(dz,m));
++        if(isdensification)densification(d,dz, T, re, denIdx, C, smb_dt, Tmean,rho_ice,m,this->Sid());
+ 		
+ 		/*Calculate upward longwave radiation flux [W m-2] not used in energy balance. Calculated for every 
+ 		 * sub-time step in thermo equations*/
+@@ -2332,7 +2342,7 @@
+         netLW = dlw - ulw;
+ 		
+ 		/*Calculate turbulent heat fluxes [W m-2]*/
+-        if(isturbulentflux)turbulentFlux(&shf, &lhf, &dayEC, Ta, T[0], V, eAir, pAir, d[0], W[0], Vz, Tz);
++        if(isturbulentflux)turbulentFlux(&shf, &lhf, &dayEC, Ta, T[0], V, eAir, pAir, d[0], W[0], Vz, Tz,this->Sid());
+ 		
+ 		/*Sum component mass changes [kg m-2]*/
+         sumMassAdd = mAdd + sumMassAdd;
+@@ -2346,25 +2356,32 @@
+         sumMass=0; for(int i=0;i<m;i++) sumMass += dz[i]*d[i];
+         dMass = sumMass + sumR + sumW - sumP - sumEC - initMass - sumMassAdd;
+         dMass = round(dMass * 100.0)/100.0;
+-		
++
+ 		/*Check mass conservation:*/
+-        if (dMass != 0.0) _error_("total system mass not conserved in MB function");
++        if(!VerboseSmb())if (dMass != 0.0) _printf_("total system mass not conserved in MB function");
+ 		
+ 		/*Check bottom grid cell T is unchanged:*/
+-        if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom");
+-	}
++        if(!VerboseSmb())if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom" << "\n");
++		
++		SmbMassBalance += sumP + sumEC - sumR; //increment SMB for the entire time span of ice-flow dynamics.
+ 
++
++	} //for (t=time;t<=time+dt;t=t+smb_dt)
++
+ 	/*Save generated inputs: */
+ 	this->AddInput(new DoubleArrayInput(SmbDzEnum,dz,m));
+ 	this->AddInput(new DoubleArrayInput(SmbDEnum,d,m));
+ 	this->AddInput(new DoubleArrayInput(SmbReEnum,re,m));
+ 	this->AddInput(new DoubleArrayInput(SmbGdnEnum,gdn,m));
+ 	this->AddInput(new DoubleArrayInput(SmbGspEnum,gsp,m));
++	this->AddInput(new DoubleArrayInput(SmbTEnum,T,m));
+ 	this->AddInput(new DoubleInput(SmbECEnum,EC));
+ 	this->AddInput(new DoubleArrayInput(SmbWEnum,W,m));
+ 	this->AddInput(new DoubleArrayInput(SmbAEnum,a,m));
+-	this->AddInput(new DoubleArrayInput(SmbTEnum,T,m));
++	this->AddInput(new DoubleArrayInput(SmbSwfEnum,swf,m));
++	this->AddInput(new DoubleInput(SmbMassBalanceEnum,time));
+ 
++
+ 	/*Free allocations:{{{*/
+ 	xDelete<IssmDouble>(dz);
+ 	xDelete<IssmDouble>(d);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19567-19568.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19567-19568.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19567-19568.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19567)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19568)
+@@ -22,12 +22,12 @@
+ void       Gembx(FemModel* femmodel);
+ void       GembgridInitialize(IssmDouble** pdz, int* psize, IssmDouble zTop, IssmDouble dzTop, IssmDouble zMax, IssmDouble zY); 
+ IssmDouble Marbouty(IssmDouble T, IssmDouble d, IssmDouble dT);
+-void grainGrowth(IssmDouble* pre, IssmDouble* pgdn, IssmDouble* pgsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx);
+-void albedo(IssmDouble* a,int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt,int m);
+-void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m);
+-void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz);
+-void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow); 
+-void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin);
+-void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,int m);
+-void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz);
++void grainGrowth(IssmDouble* pre, IssmDouble* pgdn, IssmDouble* pgsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx, int sid);
++void albedo(IssmDouble* a,int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt,int m, int sid);
++void shortwave(IssmDouble* swf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid);
++void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, int sid);
++void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, int sid); 
++void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, int sid);
++void densification(IssmDouble* d,IssmDouble* dz, IssmDouble* T, IssmDouble* re, int denIdx, IssmDouble C, IssmDouble dt, IssmDouble Tmean,IssmDouble rho_ice,int m, int sid);
++void turbulentFlux(IssmDouble* pshf, IssmDouble* plhf, IssmDouble* pEC, IssmDouble Ta, IssmDouble Ts, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble ds, IssmDouble Ws, IssmDouble Vz, IssmDouble Tz, int sid);
+ #endif  /* _SurfaceMassBalancex_H*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19568-19569.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19568-19569.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19568-19569.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/organizer.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.py	(revision 19568)
++++ ../trunk-jpl/src/m/classes/organizer.py	(revision 19569)
+@@ -160,6 +160,8 @@
+ 
+ 		if (name=='default'):
+ 			name=os.path.join(self.repository,self.prefix+'.step#'+self.steps[self._currentstep-1]['string']+'.python')
++                else:
++                    name=os.path.join(self.repository,name)
+ 		print "saving model as: '%s'" % name
+ 
+ 		#check that md is a model
Index: /issm/oecreview/Archive/19101-20495/ISSM-19569-19570.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19569-19570.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19569-19570.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/classes/organizer.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.py	(revision 19569)
++++ ../trunk-jpl/src/m/classes/organizer.py	(revision 19570)
+@@ -97,12 +97,16 @@
+ 		#Get model path
+ 		if not isinstance(string,(str,unicode)):
+ 			raise TypeError("argument provided is not a string")
+-		path=os.path.join(self.repository,self.prefix+'.step#'+string+'.python')
++		path1=os.path.join(self.repository,self.prefix+'.step#'+string+'.python')
++		path2=os.path.join(self.repository,string)
+ 
+ 		#figure out if the model is there, otherwise, we have to use the default path supplied by user.
+-		if whichdb(path):
+-			md=loadmodel(path)
++		if whichdb(path1):
++			md=loadmodel(path1)
+ 			return md
++                elif whichdb(path2):
++                        md=loadmodel(path2)
++                        return md
+ 
+ 		#If we are here, the model has not been found. Try trunk prefix if provided
+ 		if self.trunkprefix:
+@@ -114,7 +118,7 @@
+ 				md=loadmodel(path2)
+ 				return md
+ 		else:
+-			raise IOError("Could not find '%s'" % path)
++			raise IOError("Could not find '%s'" % path1)
+ 	#}}}
+ 	def perform(self,string):    # {{{
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19570-19571.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19570-19571.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19570-19571.diff	(revision 20498)
@@ -0,0 +1,4281 @@
+Index: ../trunk-jpl/externalpackages/export_fig/using_hg2.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/using_hg2.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/using_hg2.m	(revision 19571)
+@@ -1,4 +1,4 @@
+-%USING_HG2 Determine if the HG2 graphics pipeline is used
++%USING_HG2 Determine if the HG2 graphics engine is used
+ %
+ %   tf = using_hg2(fig)
+ %
+@@ -6,13 +6,30 @@
+ %   fig - handle to the figure in question.
+ %
+ %OUT:
+-%   tf - boolean indicating whether the HG2 graphics pipeline is being used
++%   tf - boolean indicating whether the HG2 graphics engine is being used
+ %        (true) or not (false).
+ 
++% 19/06/2015 - Suppress warning in R2015b; cache result for improved performance
++
+ function tf = using_hg2(fig)
+-try
+-    tf = ~graphicsversion(fig, 'handlegraphics');
+-catch
+-    tf = false;
++    persistent tf_cached
++    if isempty(tf_cached)
++        try
++            if nargin < 1,  fig = figure('visible','off');  end
++            oldWarn = warning('off','MATLAB:graphicsversion:GraphicsVersionRemoval');
++            try
++                % This generates a [supressed] warning in R2015b:
++                tf = ~graphicsversion(fig, 'handlegraphics');
++            catch
++                tf = verLessThan('matlab','8.4');  % =R2014b
++            end
++            warning(oldWarn);
++        catch
++            tf = false;
++        end
++        if nargin < 1,  delete(fig);  end
++        tf_cached = tf;
++    else
++        tf = tf_cached;
++    end
+ end
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/print2eps.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/print2eps.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/print2eps.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function print2eps(name, fig, export_options, varargin)
+ %PRINT2EPS  Prints figures to eps with improved line styles
+ %
+ % Examples:
+@@ -3,13 +4,12 @@
+ %   print2eps filename
+ %   print2eps(filename, fig_handle)
+-%   print2eps(filename, fig_handle, bb_padding)
+-%   print2eps(filename, fig_handle, bb_padding, options)
++%   print2eps(filename, fig_handle, export_options)
++%   print2eps(filename, fig_handle, export_options, print_options)
+ %
+ % This function saves a figure as an eps file, with two improvements over
+ % MATLAB's print command. First, it improves the line style, making dashed
+-% lines more like those on screen and giving grid lines their own dotted
+-% style. Secondly, it substitutes original font names back into the eps
+-% file, where these have been changed by MATLAB, for up to 11 different
+-% fonts.
++% lines more like those on screen and giving grid lines a dotted line style.
++% Secondly, it substitutes original font names back into the eps file,
++% where these have been changed by MATLAB, for up to 11 different fonts.
+ %
+ %IN:
+@@ -19,21 +19,26 @@
+ %              ".eps" extension is added if not there already. If a path is
+ %              not specified, the figure is saved in the current directory.
+ %   fig_handle - The handle of the figure to be saved. Default: gcf().
+-%   bb_padding - Scalar value of amount of padding to add to border around
+-%                the figure, in points. Can be negative as well as
+-%                positive. Default: 0.
+-%   options - Additional parameter strings to be passed to print.
++%   export_options - array of optional scalar values:
++%       bb_padding - Scalar value of amount of padding to add to border around
++%                    the cropped image, in points (if >1) or percent (if <1).
++%                    Can be negative as well as positive; Default: 0
++%       crop       - Crop amount. Deafult: 0
++%       fontswap   - Whether to swap non-default fonts in figure. Default: true
++%   print_options - Additional parameter strings to be passed to the print command
+ 
+-% Copyright (C) Oliver Woodford 2008-2014
++%{
++% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
+ 
+ % The idea of editing the EPS file to change line styles comes from Jiro
+ % Doke's FIXPSLINESTYLE (fex id: 17928)
+ % The idea of changing dash length with line width came from comments on
+ % fex id: 5743, but the implementation is mine :)
+-
+-% 14/11/2011: Fix a MATLAB bug rendering black or white text incorrectly.
+-%             Thanks to Mathieu Morlighem for reporting the issue and
+-%             obtaining a fix from TMW.
++%}
++%{
++% 14/11/11: Fix a MATLAB bug rendering black or white text incorrectly.
++%           Thanks to Mathieu Morlighem for reporting the issue and
++%           obtaining a fix from TMW.
+ % 08/12/11: Added ability to correct fonts. Several people have requested
+ %           this at one time or another, and also pointed me to printeps
+ %           (fex id: 7501), so thank you to them. My implementation (which
+@@ -57,157 +62,346 @@
+ %           issue.
+ % 13/08/13: Fix MATLAB feature of not exporting white lines correctly.
+ %           Thanks to Sebastian Heßlinger for reporting it.
++% 24/02/15: Fix for Matlab R2014b bug (issue #31): LineWidths<0.75 are not
++%           set in the EPS (default line width is used)
++% 25/02/15: Fixed issue #32: BoundingBox problem caused uncropped EPS/PDF files
++% 05/03/15: Fixed issue #43: Inability to perform EPS file post-processing
++% 06/03/15: Improved image padding & cropping thanks to Oscar Hartogensis
++% 21/03/15: Fixed edge-case of missing handles having a 'FontName' property
++% 26/03/15: Attempt to fix issue #45: white lines in subplots do not print correctly
++% 27/03/15: Attempt to fix issue #44: white artifact lines appearing in patch exports
++% 30/03/15: Fixed issue #52: improved performance on HG2 (R2014b+)
++% 09/04/15: Comment blocks consolidation and minor code cleanup (no real code change)
++% 12/04/15: Fixed issue #56: bad cropping
++% 14/04/15: Workaround for issue #45: lines in image subplots are exported in invalid color
++% 07/07/15: Added option to avoid font-swapping in EPS/PDF
++% 07/07/15: Fixed issue #83: use numeric handles in HG1
++% 22/07/15: Fixed issue #91 (thanks to Carlos Moffat)
++%}
+ 
+-function print2eps(name, fig, bb_padding, varargin)
+-options = {'-depsc2'};
+-if nargin > 3
+-    options = [options varargin];
+-elseif nargin < 3
+-    bb_padding = 0;
+-    if nargin < 2
+-        fig = gcf();
++    options = {'-loose'};
++    if nargin > 3
++        options = [options varargin];
++    elseif nargin < 3
++        export_options = 0;
++        if nargin < 2
++            fig = gcf();
++        end
+     end
+-end
+-% Construct the filename
+-if numel(name) < 5 || ~strcmpi(name(end-3:end), '.eps')
+-    name = [name '.eps']; % Add the missing extension
+-end
+-% Set paper size
+-old_pos_mode = get(fig, 'PaperPositionMode');
+-old_orientation = get(fig, 'PaperOrientation');
+-set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
+-% Find all the used fonts in the figure
+-font_handles = findall(fig, '-property', 'FontName');
+-fonts = get(font_handles, 'FontName');
+-if ~iscell(fonts)
+-    fonts = {fonts};
+-end
+-% Map supported font aliases onto the correct name
+-fontsl = lower(fonts);
+-for a = 1:numel(fonts)
+-    f = fontsl{a};
+-    f(f==' ') = [];
+-    switch f
+-        case {'times', 'timesnewroman', 'times-roman'}
+-            fontsl{a} = 'times-roman';
+-        case {'arial', 'helvetica'}
+-            fontsl{a} = 'helvetica';
+-        case {'newcenturyschoolbook', 'newcenturyschlbk'}
+-            fontsl{a} = 'newcenturyschlbk';
+-        otherwise
++
++    % Retrieve padding, crop & font-swap values
++    if numel(export_options) > 2  % font-swapping
++        fontswap = export_options(3);
++    else
++        fontswap = true;
+     end
+-end
+-fontslu = unique(fontsl);
+-% Determine the font swap table
+-matlab_fonts = {'Helvetica', 'Times-Roman', 'Palatino', 'Bookman', 'Helvetica-Narrow', 'Symbol', ...
+-                'AvantGarde', 'NewCenturySchlbk', 'Courier', 'ZapfChancery', 'ZapfDingbats'};
+-matlab_fontsl = lower(matlab_fonts);
+-require_swap = find(~ismember(fontslu, matlab_fontsl));
+-unused_fonts = find(~ismember(matlab_fontsl, fontslu));
+-font_swap = cell(3, min(numel(require_swap), numel(unused_fonts)));
+-fonts_new = fonts;
+-for a = 1:size(font_swap, 2)
+-    font_swap{1,a} = find(strcmp(fontslu{require_swap(a)}, fontsl));
+-    font_swap{2,a} = matlab_fonts{unused_fonts(a)};
+-    font_swap{3,a} = fonts{font_swap{1,a}(1)};
+-    fonts_new(font_swap{1,a}) = {font_swap{2,a}};
+-end
+-% Swap the fonts
+-if ~isempty(font_swap)
+-    fonts_size = get(font_handles, 'FontSize');
+-    if iscell(fonts_size)
+-        fonts_size = cell2mat(fonts_size);
++    if numel(export_options) > 1  % cropping
++        bb_crop = export_options(2);
++    else
++        bb_crop = 0;  % scalar value, so use default bb_crop value of 0
+     end
+-    M = false(size(font_handles));
+-    % Loop because some changes may not stick first time, due to listeners
+-    c = 0;
+-    update = zeros(1000, 1);
+-    for b = 1:10 % Limit number of loops to avoid infinite loop case
+-        for a = 1:numel(M)
+-            M(a) = ~isequal(get(font_handles(a), 'FontName'), fonts_new{a}) || ~isequal(get(font_handles(a), 'FontSize'), fonts_size(a));
+-            if M(a)
+-                set(font_handles(a), 'FontName', fonts_new{a}, 'FontSize', fonts_size(a));
+-                c = c + 1;
+-                update(c) = a;
++    if numel(export_options) > 0  % padding
++        bb_padding = export_options(1);
++    else
++        bb_padding = 0;
++    end
++
++    % Construct the filename
++    if numel(name) < 5 || ~strcmpi(name(end-3:end), '.eps')
++        name = [name '.eps']; % Add the missing extension
++    end
++
++    % Set paper size
++    old_pos_mode = get(fig, 'PaperPositionMode');
++    old_orientation = get(fig, 'PaperOrientation');
++    set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
++
++    % Find all the used fonts in the figure
++    font_handles = findall(fig, '-property', 'FontName');
++    fonts = get(font_handles, 'FontName');
++    if isempty(fonts)
++        fonts = {};
++    elseif ~iscell(fonts)
++        fonts = {fonts};
++    end
++
++    % Map supported font aliases onto the correct name
++    fontsl = lower(fonts);
++    for a = 1:numel(fonts)
++        f = fontsl{a};
++        f(f==' ') = [];
++        switch f
++            case {'times', 'timesnewroman', 'times-roman'}
++                fontsl{a} = 'times-roman';
++            case {'arial', 'helvetica'}
++                fontsl{a} = 'helvetica';
++            case {'newcenturyschoolbook', 'newcenturyschlbk'}
++                fontsl{a} = 'newcenturyschlbk';
++            otherwise
++        end
++    end
++    fontslu = unique(fontsl);
++
++    % Determine the font swap table
++    if fontswap
++        matlab_fonts = {'Helvetica', 'Times-Roman', 'Palatino', 'Bookman', 'Helvetica-Narrow', 'Symbol', ...
++                        'AvantGarde', 'NewCenturySchlbk', 'Courier', 'ZapfChancery', 'ZapfDingbats'};
++        matlab_fontsl = lower(matlab_fonts);
++        require_swap = find(~ismember(fontslu, matlab_fontsl));
++        unused_fonts = find(~ismember(matlab_fontsl, fontslu));
++        font_swap = cell(3, min(numel(require_swap), numel(unused_fonts)));
++        fonts_new = fonts;
++        for a = 1:size(font_swap, 2)
++            font_swap{1,a} = find(strcmp(fontslu{require_swap(a)}, fontsl));
++            font_swap{2,a} = matlab_fonts{unused_fonts(a)};
++            font_swap{3,a} = fonts{font_swap{1,a}(1)};
++            fonts_new(font_swap{1,a}) = font_swap(2,a);
++        end
++    else
++        font_swap = [];
++    end
++
++    % Swap the fonts
++    if ~isempty(font_swap)
++        fonts_size = get(font_handles, 'FontSize');
++        if iscell(fonts_size)
++            fonts_size = cell2mat(fonts_size);
++        end
++        M = false(size(font_handles));
++
++        % Loop because some changes may not stick first time, due to listeners
++        c = 0;
++        update = zeros(1000, 1);
++        for b = 1:10 % Limit number of loops to avoid infinite loop case
++            for a = 1:numel(M)
++                M(a) = ~isequal(get(font_handles(a), 'FontName'), fonts_new{a}) || ~isequal(get(font_handles(a), 'FontSize'), fonts_size(a));
++                if M(a)
++                    set(font_handles(a), 'FontName', fonts_new{a}, 'FontSize', fonts_size(a));
++                    c = c + 1;
++                    update(c) = a;
++                end
+             end
++            if ~any(M)
++                break;
++            end
+         end
+-        if ~any(M)
+-            break;
++
++        % Compute the order to revert fonts later, without the need of a loop
++        [update, M] = unique(update(1:c));
++        [M, M] = sort(M);
++        update = reshape(update(M), 1, []);
++    end
++
++    % MATLAB bug fix - black and white text can come out inverted sometimes
++    % Find the white and black text
++    black_text_handles = findall(fig, 'Type', 'text', 'Color', [0 0 0]);
++    white_text_handles = findall(fig, 'Type', 'text', 'Color', [1 1 1]);
++    % Set the font colors slightly off their correct values
++    set(black_text_handles, 'Color', [0 0 0] + eps);
++    set(white_text_handles, 'Color', [1 1 1] - eps);
++
++    % MATLAB bug fix - white lines can come out funny sometimes
++    % Find the white lines
++    white_line_handles = findall(fig, 'Type', 'line', 'Color', [1 1 1]);
++    % Set the line color slightly off white
++    set(white_line_handles, 'Color', [1 1 1] - 0.00001);
++
++    % Workaround for issue #45: lines in image subplots are exported in invalid color
++    % In this case the -depsc driver solves the problem, but then all the other workarounds
++    % below (for all the other issues) will fail, so it's better to let the user decide by
++    % just issuing a warning and accepting the '-depsc' input parameter
++    epsLevel2 = ~any(strcmpi(options,'-depsc'));
++    if epsLevel2
++        % Use -depsc2 (EPS color level-2) if -depsc (EPS color level-3) was not specifically requested
++        options{end+1} = '-depsc2';
++        % Issue a warning if multiple images & lines were found in the figure, and HG1 with painters renderer is used
++        isPainters = any(strcmpi(options,'-painters'));
++        if isPainters && ~using_hg2 && numel(findall(fig,'Type','image'))>1 && ~isempty(findall(fig,'Type','line'))
++            warning('YMA:export_fig:issue45', ...
++                    ['Multiple images & lines detected. In such cases, the lines might \n' ...
++                     'appear with an invalid color due to an internal MATLAB bug (fixed in R2014b). \n' ...
++                     'Possible workaround: add a ''-depsc'' or ''-opengl'' parameter to the export_fig command.']);
+         end
+     end
+-    % Compute the order to revert fonts later, without the need of a loop
+-    [update, M] = unique(update(1:c));
+-    [M, M] = sort(M);
+-    update = reshape(update(M), 1, []);
+-end
+-% MATLAB bug fix - black and white text can come out inverted sometimes
+-% Find the white and black text
+-white_text_handles = findobj(fig, 'Type', 'text');
+-M = get(white_text_handles, 'Color');
+-if iscell(M)
+-    M = cell2mat(M);
+-end
+-M = sum(M, 2);
+-black_text_handles = white_text_handles(M == 0);
+-white_text_handles = white_text_handles(M == 3);
+-% Set the font colors slightly off their correct values
+-set(black_text_handles, 'Color', [0 0 0] + eps);
+-set(white_text_handles, 'Color', [1 1 1] - eps);
+-% MATLAB bug fix - white lines can come out funny sometimes
+-% Find the white lines
+-white_line_handles = findobj(fig, 'Type', 'line');
+-M = get(white_line_handles, 'Color');
+-if iscell(M)
+-    M = cell2mat(M);
+-end
+-white_line_handles = white_line_handles(sum(M, 2) == 3);
+-% Set the line color slightly off white
+-set(white_line_handles, 'Color', [1 1 1] - 0.00001);
+-% Print to eps file
+-print(fig, options{:}, name);
+-% Reset the font and line colors
+-set(black_text_handles, 'Color', [0 0 0]);
+-set(white_text_handles, 'Color', [1 1 1]);
+-set(white_line_handles, 'Color', [1 1 1]);
+-% Reset paper size
+-set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
+-% Reset the font names in the figure
+-if ~isempty(font_swap)
+-    for a = update
+-        set(font_handles(a), 'FontName', fonts{a}, 'FontSize', fonts_size(a));
++
++    % Fix issue #83: use numeric handles in HG1
++    if ~using_hg2(fig),  fig = double(fig);  end
++
++    % Print to eps file
++    print(fig, options{:}, name);
++
++    % Do post-processing on the eps file
++    try
++        % Read the EPS file into memory
++        fstrm = read_write_entire_textfile(name);
++    catch
++        fstrm = '';
+     end
+-end
+-% Do post-processing on the eps file
+-try
+-    fstrm = read_write_entire_textfile(name);
+-catch
+-    warning('Loading EPS file failed, so unable to perform post-processing. This is usually because the figure contains a large number of patch objects. Consider exporting to a bitmap format in this case.');
+-    return
+-end
+-% Replace the font names
+-if ~isempty(font_swap)
+-    for a = 1:size(font_swap, 2)
+-        %fstrm = regexprep(fstrm, [font_swap{1,a} '-?[a-zA-Z]*\>'], font_swap{3,a}(~isspace(font_swap{3,a})));
+-        fstrm = regexprep(fstrm, font_swap{2,a}, font_swap{3,a}(~isspace(font_swap{3,a})));
++
++    % Fix for Matlab R2014b bug (issue #31): LineWidths<0.75 are not set in the EPS (default line width is used)
++    try
++        if ~isempty(fstrm) && using_hg2(fig)
++            % Convert miter joins to line joins
++            %fstrm = regexprep(fstrm, '\n10.0 ML\n', '\n1 LJ\n');
++            % This is faster (the original regexprep could take many seconds when the axes contains many lines):
++            fstrm = strrep(fstrm, sprintf('\n10.0 ML\n'), sprintf('\n1 LJ\n'));
++
++            % In HG2, grid lines and axes Ruler Axles have a default LineWidth of 0.5 => replace en-bulk (assume that 1.0 LineWidth = 1.333 LW)
++            %   hAxes=gca; hAxes.YGridHandle.LineWidth, hAxes.YRuler.Axle.LineWidth
++            %fstrm = regexprep(fstrm, '(GC\n2 setlinecap\n1 LJ)\nN', '$1\n0.667 LW\nN');
++            % This is faster:
++            fstrm = strrep(fstrm, sprintf('GC\n2 setlinecap\n1 LJ\nN'), sprintf('GC\n2 setlinecap\n1 LJ\n0.667 LW\nN'));
++
++            % This is more accurate but *MUCH* slower (issue #52)
++            %{
++            % Modify all thin lines in the figure to have 10x LineWidths
++            hLines = findall(fig,'Type','line');
++            hThinLines = [];
++            for lineIdx = 1 : numel(hLines)
++                thisLine = hLines(lineIdx);
++                if thisLine.LineWidth < 0.75 && strcmpi(thisLine.Visible,'on')
++                    hThinLines(end+1) = thisLine; %#ok<AGROW>
++                    thisLine.LineWidth = thisLine.LineWidth * 10;
++                end
++            end
++
++            % If any thin lines were found
++            if ~isempty(hThinLines)
++                % Prepare an EPS with large-enough line widths
++                print(fig, options{:}, name);
++                % Restore the original LineWidths in the figure
++                for lineIdx = 1 : numel(hThinLines)
++                    thisLine = handle(hThinLines(lineIdx));
++                    thisLine.LineWidth = thisLine.LineWidth / 10;
++                end
++
++                % Compare the original and the new EPS files and correct the original stream's LineWidths
++                fstrm_new = read_write_entire_textfile(name);
++                idx = 500;  % skip heading with its possibly-different timestamp
++                markerStr = sprintf('10.0 ML\nN');
++                markerLen = length(markerStr);
++                while ~isempty(idx) && idx < length(fstrm)
++                    lastIdx = min(length(fstrm), length(fstrm_new));
++                    delta = fstrm(idx+1:lastIdx) - fstrm_new(idx+1:lastIdx);
++                    idx = idx + find(delta,1);
++                    if ~isempty(idx) && ...
++                            isequal(fstrm(idx-markerLen+1:idx), markerStr) && ...
++                            ~isempty(regexp(fstrm_new(idx-markerLen+1:idx+12),'10.0 ML\n[\d\.]+ LW\nN')) %#ok<RGXP1>
++                        value = str2double(regexprep(fstrm_new(idx:idx+12),' .*',''));
++                        if isnan(value), break; end  % something's wrong... - bail out
++                        newStr = sprintf('%0.3f LW\n',value/10);
++                        fstrm = [fstrm(1:idx-1) newStr fstrm(idx:end)];
++                        idx = idx + 12;
++                    else
++                        break;
++                    end
++                end
++            end
++            %}
++
++            % This is much faster although less accurate: fix all non-gray lines to have a LineWidth of 0.75 (=1 LW)
++            % Note: This will give incorrect LineWidth of 075 for lines having LineWidth<0.75, as well as for non-gray grid-lines (if present)
++            %       However, in practice these edge-cases are very rare indeed, and the difference in LineWidth should not be noticeable
++            %fstrm = regexprep(fstrm, '([CR]C\n2 setlinecap\n1 LJ)\nN', '$1\n1 LW\nN');
++            % This is faster (the original regexprep could take many seconds when the axes contains many lines):
++            fstrm = strrep(fstrm, sprintf('\n2 setlinecap\n1 LJ\nN'), sprintf('\n2 setlinecap\n1 LJ\n1 LW\nN'));
++        end
++    catch err
++        fprintf(2, 'Error fixing LineWidths in EPS file: %s\n at %s:%d\n', err.message, err.stack(1).file, err.stack(1).line);
+     end
+-end
+-if using_hg2(fig)
+-    % Convert miter joins to line joins
+-    fstrm = regexprep(fstrm, '10.0 ML\n', '1 LJ\n');
+-    % Move the bounding box to the top of the file
+-    [s, e] = regexp(fstrm, '%%BoundingBox: [\w\s()]*%%');
+-    if numel(s) == 2
+-        fstrm = fstrm([1:s(1)-1 s(2):e(2)-2 e(1)-1:s(2)-1 e(2)-1:end]);
++
++    % Reset the font and line colors
++    set(black_text_handles, 'Color', [0 0 0]);
++    set(white_text_handles, 'Color', [1 1 1]);
++    set(white_line_handles, 'Color', [1 1 1]);
++
++    % Reset paper size
++    set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
++
++    % Reset the font names in the figure
++    if ~isempty(font_swap)
++        for a = update
++            set(font_handles(a), 'FontName', fonts{a}, 'FontSize', fonts_size(a));
++        end
+     end
+-else
+-    % Fix the line styles
+-    fstrm = fix_lines(fstrm);
++
++    % Bail out if EPS post-processing is not possible
++    if isempty(fstrm)
++        warning('Loading EPS file failed, so unable to perform post-processing. This is usually because the figure contains a large number of patch objects. Consider exporting to a bitmap format in this case.');
++        return
++    end
++
++    % Replace the font names
++    if ~isempty(font_swap)
++        for a = 1:size(font_swap, 2)
++            %fstrm = regexprep(fstrm, [font_swap{1,a} '-?[a-zA-Z]*\>'], font_swap{3,a}(~isspace(font_swap{3,a})));
++            fstrm = regexprep(fstrm, font_swap{2,a}, font_swap{3,a}(~isspace(font_swap{3,a})));
++        end
++    end
++
++    % Move the bounding box to the top of the file (HG2 only), or fix the line styles (HG1 only)
++    if using_hg2(fig)
++        % Move the bounding box to the top of the file (HG2 only)
++        [s, e] = regexp(fstrm, '%%BoundingBox: [^%]*%%');
++        if numel(s) == 2
++            fstrm = fstrm([1:s(1)-1 s(2):e(2)-2 e(1)-1:s(2)-1 e(2)-1:end]);
++        end
++    else
++        % Fix the line styles (HG1 only)
++        fstrm = fix_lines(fstrm);
++    end
++
++    % Apply the bounding box padding & cropping, replacing Matlab's print()'s bounding box
++    if bb_crop
++        % Calculate a new bounding box based on a bitmap print using crop_border.m
++        % 1. Determine the Matlab BoundingBox and PageBoundingBox
++        [s,e] = regexp(fstrm, '%%BoundingBox: [^%]*%%'); % location BB in eps file
++        if numel(s)==2, s=s(2); e=e(2); end
++        aa = fstrm(s+15:e-3); % dimensions bb - STEP1
++        bb_matlab = cell2mat(textscan(aa,'%f32%f32%f32%f32'));  % dimensions bb - STEP2
++
++        [s,e] = regexp(fstrm, '%%PageBoundingBox: [^%]*%%'); % location bb in eps file
++        if numel(s)==2, s=s(2); e=e(2); end
++        aa = fstrm(s+19:e-3); % dimensions bb - STEP1
++        pagebb_matlab = cell2mat(textscan(aa,'%f32%f32%f32%f32'));  % dimensions bb - STEP2
++
++        % 2. Create a bitmap image and use crop_borders to create the relative
++        %    bb with respect to the PageBoundingBox
++        [A, bcol] = print2array(fig, 1, '-opengl');
++        [aa, aa, aa, bb_rel] = crop_borders(A, bcol, bb_padding);
++
++        % 3. Calculate the new Bounding Box
++        pagew = pagebb_matlab(3)-pagebb_matlab(1);
++        pageh = pagebb_matlab(4)-pagebb_matlab(2);
++        %bb_new = [pagebb_matlab(1)+pagew*bb_rel(1) pagebb_matlab(2)+pageh*bb_rel(2) ...
++        %          pagebb_matlab(1)+pagew*bb_rel(3) pagebb_matlab(2)+pageh*bb_rel(4)];
++        bb_new = pagebb_matlab([1,2,1,2]) + [pagew,pageh,pagew,pageh].*bb_rel;  % clearer
++        bb_offset = (bb_new-bb_matlab) + [-1,-1,1,1];  % 1px margin so that cropping is not TOO tight
++
++        % Apply the bounding box padding
++        if bb_padding
++            if abs(bb_padding)<1
++                bb_padding = round((mean([bb_new(3)-bb_new(1) bb_new(4)-bb_new(2)])*bb_padding)/0.5)*0.5; % ADJUST BB_PADDING
++            end
++            add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + [-bb_padding -bb_padding bb_padding bb_padding] + bb_offset);
++        else
++            add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + bb_offset); % fix small but noticeable bounding box shift
++        end
++        fstrm = regexprep(fstrm, '%%BoundingBox:[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)', '%%BoundingBox:${add_padding($1, $2, $3, $4)}');
++    end
++
++    % Fix issue #44: white artifact lines appearing in patch exports
++    % Note: the problem is due to the fact that Matlab's print() function exports patches
++    %       as a combination of filled triangles, and a white line appears where the triangles touch
++    % In the workaround below, we will modify such dual-triangles into a filled rectangle.
++    % We are careful to only modify regexps that exactly match specific patterns - it's better to not
++    % correct some white-line artifacts than to change the geometry of a patch, or to corrupt the EPS.
++    %   e.g.: '0 -450 937 0 0 450 3 MP PP 937 0 0 -450 0 450 3 MP PP' => '0 -450 937 0 0 450 0 0 4 MP'
++    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\2 \1 \3 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
++    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\2 \3 \1 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
++    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\3 \1 \2 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
++    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\3 \2 \1 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
++
++    % Write out the fixed eps file
++    read_write_entire_textfile(name, fstrm);
+ end
+-% Apply the bounding box padding
+-if bb_padding
+-    add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + [-bb_padding -bb_padding bb_padding bb_padding]);
+-    fstrm = regexprep(fstrm, '%%BoundingBox:[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)', '%%BoundingBox:${add_padding($1, $2, $3, $4)}');
+-end
+-% Write out the fixed eps file
+-read_write_entire_textfile(name, fstrm);
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/LICENSE
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/LICENSE	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/LICENSE	(revision 19571)
+@@ -1,4 +1,4 @@
+-Copyright (c) 2014, Oliver J. Woodford
++Copyright (c) 2014, Oliver J. Woodford, Yair M. Altman
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+Index: ../trunk-jpl/externalpackages/export_fig/copyfig.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/copyfig.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/copyfig.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function fh = copyfig(fh)
+ %COPYFIG Create a copy of a figure, without changing the figure
+ %
+ % Examples:
+@@ -14,20 +15,37 @@
+ 
+ % Copyright (C) Oliver Woodford 2012
+ 
+-function fh = copyfig(fh)
+-% Set the default
+-if nargin == 0
+-    fh = gcf;
++% 26/02/15: If temp dir is not writable, use the dest folder for temp
++%           destination files (Javier Paredes)
++% 15/04/15: Suppress warnings during copyobj (Dun Kirk comment on FEX page 2013-10-02)
++
++    % Set the default
++    if nargin == 0
++        fh = gcf;
++    end
++    % Is there a legend?
++    if isempty(findall(fh, 'Type', 'axes', 'Tag', 'legend'))
++        % Safe to copy using copyobj
++        oldWarn = warning('off'); %#ok<WNOFF>  %Suppress warnings during copyobj (Dun Kirk comment on FEX page 2013-10-02)
++        fh = copyobj(fh, 0);
++        warning(oldWarn);
++    else
++        % copyobj will change the figure, so save and then load it instead
++        tmp_nam = [tempname '.fig'];
++        try
++            % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
++            fid = fopen(tmp_nam,'w');
++            fwrite(fid,1);
++            fclose(fid);
++            delete(tmp_nam);  % cleanup
++        catch
++            % Temp dir is not writable, so use the current folder
++            [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
++            fpath = pwd;
++            tmp_nam = fullfile(fpath,[fname fext]);
++        end
++        hgsave(fh, tmp_nam);
++        fh = hgload(tmp_nam);
++        delete(tmp_nam);
++    end
+ end
+-% Is there a legend?
+-if isempty(findall(fh, 'Type', 'axes', 'Tag', 'legend'))
+-    % Safe to copy using copyobj
+-    fh = copyobj(fh, 0);
+-else
+-    % copyobj will change the figure, so save and then load it instead
+-    tmp_nam = [tempname '.fig'];
+-    hgsave(fh, tmp_nam);
+-    fh = hgload(tmp_nam);
+-    delete(tmp_nam);
+-end
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/README.md
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/README.md	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/README.md	(revision 19571)
+@@ -24,7 +24,7 @@
+ |:-------:|:---------:|:----------:|
+ |![](https://farm6.staticflickr.com/5616/15589249291_16e485c29a_o_d.png)|![](https://farm4.staticflickr.com/3944/15406302850_4d2e1c7afa_o_d.png)|![](https://farm6.staticflickr.com/5607/15568225476_8ce9bd5f6b_o_d.png)|
+ 
+-Note that the size and background colour of test2.png (the output of export_fig) are the same as those of the on screen figure, in contrast to test.png. Of course, if you want want the figure background to be white (or any other colour) in the exported file then you can set this prior to exporting using:
++Note that the size and background colour of test2.png (the output of export_fig) are the same as those of the on screen figure, in contrast to test.png. Of course, if you want the figure background to be white (or any other colour) in the exported file then you can set this prior to exporting using:
+ ```Matlab
+ set(gcf, 'Color', 'w');
+ ```
+@@ -170,11 +170,11 @@
+ 
+ **Specifying the figure/axes** - if you have mutiple figures open you can specify which figure to export using its handle:  
+ ```Matlab
+-export_fig(figure_handle, 'filename.fmt');
++export_fig(figure_handle, filename);
+ ```
+ Equally, if your figure contains several subplots then you can export just one of them by giving export_fig the handle to the relevant axes:
+ ```Matlab
+-export_fig(axes_handle, 'filename.fmt');
++export_fig(axes_handle, filename);
+ ```
+ 
+ **Multiple formats** - save time by exporting to multiple formats simultaneously. E.g.: 
+@@ -194,9 +194,14 @@
+ 
+ **Appending to a file** - you can use the `-append` option to append the figure to the end of an image/document, if it already exists. This is supported for PDF and TIFF files only. Note that if you wish to append a lot of figures consecutively to a PDF, it can be more efficient to save all the figures to PDF separately then append them all in one go at the end (e.g. using [append_pdfs](http://www.mathworks.com/matlabcentral/fileexchange/31215-appendpdfs)).  
+   
++**Output to clipboard** - you can use the `-clipboard` option to copy the specified figure or axes to the system clipboard, for easy paste into other documents (e.g., Word or PowerPoint). Note that the image is copied in bitmap (not vector) format.  
++  
+ **Font size** - if you want to place an exported figure in a document with the font a particular size then you need to set the font to that size in the figure, and not resize the output of export_fig in the document. To avoid resizing, simply make sure that the on screen figure is the size you want the output to be in the document before exporting.  
+   
+-**Renderers** - MATLAB has three renderers for displaying and exporting figures: painters, OpenGL and ZBuffer. The different renderers have different [features](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410), so if you aren't happy with the result from one renderer try another. By default, vector formats (i.e. PDF and EPS outputs) use the painters renderer, while other formats use the OpenGL renderer. Non-default renderers can be selected by using one of these three export_fig input options: `-painters`, `-opengl`, `-zbuffer`.  
++**Renderers** - MATLAB has three renderers for displaying and exporting figures: painters, OpenGL and ZBuffer. The different renderers have different [features](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410), so if you aren't happy with the result from one renderer try another. By default, vector formats (i.e. PDF and EPS outputs) use the painters renderer, while other formats use the OpenGL renderer. Non-default renderers can be selected by using one of these three export_fig input options: `-painters`, `-opengl`, `-zbuffer`:  
++```Matlab
++export_fig test.png -painters
++```
+   
+ **Artifacts** - sometimes the output that you get from export_fig is not what you expected. If an output file contains artifacts that aren't in the on screen figure then make sure that the renderer used for rendering the figure on screen is the same as that used for exporting. To set the renderer used to display the figure, use:  
+ ```Matlab
+@@ -214,32 +219,33 @@
+ to this location using the dialogue box.
+ 
+ **Undefined function errors** - If you download and run export_fig and get an error similar to this:  
+-```Matlab
++```
+ ??? Undefined function or method 'print2array' for input arguments of type 'double'.
+ ```
+ then you are missing one or more of the files that come in the export_fig package. Make sure that you click the "Get from GitHub" button at the top-right of the download [page](http://www.mathworks.co.uk/matlabcentral/fileexchange/23629-exportfig), then extract all the files in the zip file to the same directory. You should then have all the necessary files.
+   
+ ### Known issues
+-There are lots of problems with MATLAB's exporting functions, and unfortunately export_fig, which is simply a glorified wrapper for MATLAB's print function, doesn't solve all of them (yet?). Some of the problems I know about are:
++There are lots of problems with MATLAB's exporting functions, especially `print`. Export_fig is simply a glorified wrapper for MATLAB's `print` function, and doesn't solve all of its bugs (yet?). Some of the problems I know about are:
+   
+-**Fonts** - when using the painters renderer, MATLAB can only export a small number of fonts, details of which can be found [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-103191.html#f3-96545). Export_fig attempts to correct font names in the resulting EPS file (for upto a maximum of 11 different fonts in one figure), but this is not always guaranteed to work. In particular, the text positions will be affected. It also does not work for text blocks where the 'Interpreter' property is set to 'latex'.
++**Fonts** - when using the painters renderer, MATLAB can only export a small number of fonts, details of which can be found [here](http://www.mathworks.com/help/releases/R2014a/matlab/creating_plots/choosing-a-printer-driver.html#f3-96545). Export_fig attempts to correct font names in the resulting EPS file (up to a maximum of 11 different fonts in one figure), but this is not always guaranteed to work. In particular, the text positions will be affected. It also does not work for text blocks where the 'Interpreter' property is set to 'latex'.
+ 
+-Also, when using the painters renderer, ghostscript will sometimes throw an error such as `Error: /undefined in /findfont`. This suggests that ghostscript could not find a definition file for one of your fonts. One possible fix for this is to make sure the file `EXPORT_FIG_PATH/.ignore/gs_font_path.txt` exists and contains a list of paths to the folder(s) containing the necessary font definitions (make sure they're TrueType definitions), separated by a semicolon.
++Also, when using the painters renderer, ghostscript will sometimes throw an error such as `Error: /undefined in /findfont`. This suggests that ghostscript could not find a definition file for one of your fonts. One possible fix for this is to make sure the file `EXPORT_FIG_PATH/.ignore/gs_font_path.txt` exists and contains a list of paths to the folder(s) containing the necessary font definitions (make sure that they are TrueType definitions!), separated by a semicolon.
+ 
+-**RGB color data not yet supported in Painter's mode** - you will see this as a warning if you try to export a figure which contains patch objects whose face or vertex colors are specified as a an RGB colour, rather than an index into the colormap, using the painters renderer (the default renderer for vector output). This problem can arise if you use `pcolor`, for example. This is a problem with MATLAB's painters renderer, which also affects `print`; there is currently no fix available in export_fig (other than to export to bitmap). The suggested workaround is to avoid colouring patches using RGB. First, try to use colours in the figure's colourmap (instructions [here](http://www.mathworks.co.uk/support/solutions/en/data/1-6OTPQE/)) - change the colourmap, if necessary. If you are using `pcolor`, try using [uimagesc](http://www.mathworks.com/matlabcentral/fileexchange/11368) (on the file exchange) instead.  
++**RGB color data not yet supported in Painter's mode** - you will see this as a warning if you try to export a figure which contains patch objects whose face or vertex colors are specified as an RGB colour, rather than an index into the colormap, using the painters renderer (the default renderer for vector output). This problem can arise if you use `pcolor`, for example. This is a problem with MATLAB's painters renderer, which also affects `print`; there is currently no fix available in export_fig (other than to export to bitmap). The suggested workaround is to avoid colouring patches using RGB. First, try to use colours in the figure's colourmap (instructions [here](http://www.mathworks.co.uk/support/solutions/en/data/1-6OTPQE/)) - change the colourmap, if necessary. If you are using `pcolor`, try using [uimagesc](http://www.mathworks.com/matlabcentral/fileexchange/11368) (on the file exchange) instead.  
+ 
+ **Dashed contour lines appear solid** - when using the painters renderer, MATLAB cannot generate dashed lines using the `contour` function (either on screen or in exported PDF and EPS files). Details can be found [here](http://www.mathworks.com/support/solutions/en/data/1-14PPHB/?solution=1-14PPHB).  
+   
+ **Text size** - when using the OpenGL or ZBuffer renderers, large text can be resized relative to the figure when exporting at non-screen-resolution (including using anti-alising at screen resolution). This is a feature of MATLAB's `print `function. In this case, try using the `-painters` option.  
+   
+-**Lighting and transparency** - when using the painters renderer, transparency and lighting effects are not supported. Sorry, but this is a feature of the renderer. To find out more about the capabilities of each rendering method, see [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410). You can still export transparent objects to vector format (SVG) using the excellent [plot2svg](http://www.mathworks.com/matlabcentral/fileexchange/7401) package, then convert this to PDF, for example using [Inkscape](http://inkscape.org/). However, it can't handle lighting.  
++**Lighting and transparency** - when using the painters renderer, transparency and lighting effects are not supported. Sorry, but this is an inherent feature of MATLAB's painters renderer. To find out more about the capabilities of each rendering method, see [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410). You can still export transparent objects to vector format (SVG) using the excellent [plot2svg](http://www.mathworks.com/matlabcentral/fileexchange/7401) package, then convert this to PDF, for example using [Inkscape](http://inkscape.org/). However, it can't handle lighting.  
+   
+-**Lines in patch objects** - when exporting patch objects to PDF using the painters renderer (default), sometimes the output can appear to have lines across the middle of rectangular patches; these lines are the colour of the background, as if there is a crack in the patch, allowing you to see through. This issue is a feature of the software used to display the PDF, rather than the PDF itself. Sometimes disabling anti-aliasing in this software can get rid of the lines.  
++**Lines in patch objects** - when exporting patch objects to PDF using the painters renderer (default), sometimes the output can appear to have lines across the middle of rectangular patches; these lines are the colour of the background, as if there is a crack in the patch, allowing you to see through. This issue is a feature of the software used to display the PDF, rather than the PDF itself. Sometimes disabling anti-aliasing in this software can get rid of the lines ([discussion](https://github.com/altmany/export_fig/issues/44)).  
+   
+ **Out of memory** - if you run into memory issues when using export_fig, some ways to get round this are:  
+  1. Reduce the level of anti-aliasing.
+- 2. Reduce the size of the on screen figure.
+- 3. Reduce the resolution (dpi) the figure is exported at.  
++ 2. Reduce the size of the figure.
++ 3. Reduce the export resolution (dpi). 
++ 4. Change the renderer to painters or ZBuffer.  
+   
+ **Errors** - the other common type of errors people get with export_fig are OpenGL errors. This isn't a fault of export_fig, but either a bug in MATLAB's `print`, or your graphics driver getting itself into a state. Always make sure your graphics driver is up-to-date. If it still doesn't work, try using the ZBuffer renderer.  
+   
+@@ -248,12 +254,17 @@
+ 
+ Secondly, if exporting to bitmap, do try all the renderers (i.e. try the options `-opengl`, `-zbuffer` and `-painters` separately), to see if one of them does produce an acceptable output, and if so, use that.
+ 
+-If the figure looks correct on screen, but an error exists in the exported output (which cannot be solved using a different renderer) then please feel free to raise an [issue](https://github.com/ojwoodford/export_fig/issues). Please be sure to include the .fig file, the export_fig command you use, the output you get, and a description of what you expected. I can't promise anything, but if it's easy to fix I probably will do it. Often I will find that the error is due to a bug in MATLAB's print function, in which case I will suggest you submit it as a bug to TheMathWorks, and inform me of any fix they suggest. Also, if there's a feature you'd like that isn't supported please tell me what it is and I'll consider implementing it.
++If this still does not help, then ensure that you are using the latest version of export_fig, which is available [here](https://github.com/altmany/export_fig/archive/master.zip).  
++ 
++If the figure looks correct on screen, but an error exists in the exported output (which cannot be solved using a different renderer) then please feel free to raise an [issue](https://github.com/ojwoodford/export_fig/issues). Please be sure to include the .fig file, the export_fig command you use, the output you get, and a description of what you expected. I can't promise anything, but if it's easy to fix I may indeed do it. Often I will find that the error is due to a bug in MATLAB's `print` function, in which case I will suggest you submit it as a bug to TheMathWorks, and inform me of any fix they suggest. Also, if there's a feature you'd like that isn't supported please tell me what it is and I'll consider implementing it.
+ 
+ ### And finally...
+ 
+ ![](https://farm4.staticflickr.com/3956/15591911455_b9008bd77e_o_d.jpg)
+ 
+-If you've ever wondered what's going on in the icon on the export_fig download page (reproduced on the left), then this explanantion is for you. The icon is designed to demonstrate as many of export_fig's features as possible. Given a
+-figure containing a translucent mesh (top right), export_fig can export to pdf (bottom centre), which allows the figure to be zoomed in without losing quality (because it's a vector graphic), but isn't able to reproduce the translucency, and also, depending on the viewer, creates small gaps between the patches, which are seen here as thin white lines. By contrast, when exporting to png (top left), translucency is preserved (see how the graphic below shows through), the figure is anti-aliased, but zooming in does not reveal more detail.
++If you've ever wondered what's going on in the logo on the export_fig download page (reproduced here), then this explanantion is for you. The logo is designed to demonstrate as many of export_fig's features as possible: 
++ 
++Given a figure containing a translucent mesh (top right), export_fig can export to pdf (bottom centre), which allows the figure to be zoomed-in without losing quality (because it's a vector graphic), but isn't able to reproduce the translucency. Also, depending on the PDF viewer program, small gaps appear between the patches, which are seen here as thin white lines. 
++ 
++By contrast, when exporting to png (top left), translucency is preserved (see how the graphic below shows through), and the figure is anti-aliased. However, zooming-in does not reveal more detail since png is a bitmap format. Also, lines appear less sharp than in the pdf output.
+ 
+Index: ../trunk-jpl/externalpackages/export_fig/eps2pdf.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/eps2pdf.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/eps2pdf.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function eps2pdf(source, dest, crop, append, gray, quality, gs_options)
+ %EPS2PDF  Convert an eps file to pdf format using ghostscript
+ %
+ % Examples:
+@@ -6,6 +7,7 @@
+ %   eps2pdf(source, dest, crop, append)
+ %   eps2pdf(source, dest, crop, append, gray)
+ %   eps2pdf(source, dest, crop, append, gray, quality)
++%   eps2pdf(source, dest, crop, append, gray, quality, gs_options)
+ %
+ % This function converts an eps file to pdf format. The output can be
+ % optionally cropped and also converted to grayscale. If the output pdf
+@@ -16,23 +18,25 @@
+ % This function requires that you have ghostscript installed on your
+ % system. Ghostscript can be downloaded from: http://www.ghostscript.com
+ %
+-%IN:
+-%   source - filename of the source eps file to convert. The filename is
+-%            assumed to already have the extension ".eps".
+-%   dest - filename of the destination pdf file. The filename is assumed to
+-%          already have the extension ".pdf".
+-%   crop - boolean indicating whether to crop the borders off the pdf.
+-%          Default: true.
+-%   append - boolean indicating whether the eps should be appended to the
+-%            end of the pdf as a new page (if the pdf exists already).
+-%            Default: false.
+-%   gray - boolean indicating whether the output pdf should be grayscale or
+-%          not. Default: false.
++% Inputs:
++%   source  - filename of the source eps file to convert. The filename is
++%             assumed to already have the extension ".eps".
++%   dest    - filename of the destination pdf file. The filename is assumed
++%             to already have the extension ".pdf".
++%   crop    - boolean indicating whether to crop the borders off the pdf.
++%             Default: true.
++%   append  - boolean indicating whether the eps should be appended to the
++%             end of the pdf as a new page (if the pdf exists already).
++%             Default: false.
++%   gray    - boolean indicating whether the output pdf should be grayscale
++%             or not. Default: false.
+ %   quality - scalar indicating the level of image bitmap quality to
+ %             output. A larger value gives a higher quality. quality > 100
+ %             gives lossless output. Default: ghostscript prepress default.
++%   gs_options - optional ghostscript options (e.g.: '-dNoOutputFonts'). If
++%                multiple options are needed, enclose in call array: {'-a','-b'}
+ 
+-% Copyright (C) Oliver Woodford 2009-2011
++% Copyright (C) Oliver Woodford 2009-2014, Yair Altman 2015-
+ 
+ % Suggestion of appending pdf files provided by Matt C at:
+ % http://www.mathworks.com/matlabcentral/fileexchange/23629
+@@ -43,92 +47,133 @@
+ % which was fixed for lossless compression settings.
+ 
+ % 9/12/2011 Pass font path to ghostscript.
++% 26/02/15: If temp dir is not writable, use the dest folder for temp
++%           destination files (Javier Paredes)
++% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
++% 01/03/15: Upon GS error, retry without the -sFONTPATH= option (this might solve
++%           some /findfont errors according to James Rankin, FEX Comment 23/01/15)
++% 23/06/15: Added extra debug info in case of ghostscript error; code indentation
+ 
+-function eps2pdf(source, dest, crop, append, gray, quality)
+-% Intialise the options string for ghostscript
+-options = ['-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="' dest '"'];
+-% Set crop option
+-if nargin < 3 || crop
+-    options = [options ' -dEPSCrop'];
+-end
+-% Set the font path
+-fp = font_path();
+-if ~isempty(fp)
+-    options = [options ' -sFONTPATH="' fp '"'];
+-end
+-% Set the grayscale option
+-if nargin > 4 && gray
+-    options = [options ' -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray'];
+-end
+-% Set the bitmap quality
+-if nargin > 5 && ~isempty(quality)
+-    options = [options ' -dAutoFilterColorImages=false -dAutoFilterGrayImages=false'];
+-    if quality > 100
+-        options = [options ' -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -c ".setpdfwrite << /ColorImageDownsampleThreshold 10 /GrayImageDownsampleThreshold 10 >> setdistillerparams"'];
+-    else
+-        options = [options ' -dColorImageFilter=/DCTEncode -dGrayImageFilter=/DCTEncode'];
+-        v = 1 + (quality < 80);
+-        quality = 1 - quality / 100;
+-        s = sprintf('<< /QFactor %.2f /Blend 1 /HSample [%d 1 1 %d] /VSample [%d 1 1 %d] >>', quality, v, v, v, v);
+-        options = sprintf('%s -c ".setpdfwrite << /ColorImageDict %s /GrayImageDict %s >> setdistillerparams"', options, s, s);
++    % Intialise the options string for ghostscript
++    options = ['-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="' dest '"'];
++    % Set crop option
++    if nargin < 3 || crop
++        options = [options ' -dEPSCrop'];
+     end
+-end
+-% Check if the output file exists
+-if nargin > 3 && append && exist(dest, 'file') == 2
+-    % File exists - append current figure to the end
+-    tmp_nam = tempname;
+-    % Copy the file
+-    copyfile(dest, tmp_nam);
+-    % Add the output file names
+-    options = [options ' -f "' tmp_nam '" "' source '"'];
+-    try
+-        % Convert to pdf using ghostscript
+-        [status, message] = ghostscript(options);
+-    catch me
++    % Set the font path
++    fp = font_path();
++    if ~isempty(fp)
++        options = [options ' -sFONTPATH="' fp '"'];
++    end
++    % Set the grayscale option
++    if nargin > 4 && gray
++        options = [options ' -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray'];
++    end
++    % Set the bitmap quality
++    if nargin > 5 && ~isempty(quality)
++        options = [options ' -dAutoFilterColorImages=false -dAutoFilterGrayImages=false'];
++        if quality > 100
++            options = [options ' -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -c ".setpdfwrite << /ColorImageDownsampleThreshold 10 /GrayImageDownsampleThreshold 10 >> setdistillerparams"'];
++        else
++            options = [options ' -dColorImageFilter=/DCTEncode -dGrayImageFilter=/DCTEncode'];
++            v = 1 + (quality < 80);
++            quality = 1 - quality / 100;
++            s = sprintf('<< /QFactor %.2f /Blend 1 /HSample [%d 1 1 %d] /VSample [%d 1 1 %d] >>', quality, v, v, v, v);
++            options = sprintf('%s -c ".setpdfwrite << /ColorImageDict %s /GrayImageDict %s >> setdistillerparams"', options, s, s);
++        end
++    end
++    % Enable users to specify optional ghostscript options (issue #36)
++    if nargin > 6 && ~isempty(gs_options)
++        if iscell(gs_options)
++            gs_options = sprintf(' %s',gs_options{:});
++        elseif ~ischar(gs_options)
++            error('gs_options input argument must be a string or cell-array of strings');
++        else
++            gs_options = [' ' gs_options];
++        end
++        options = [options gs_options];
++    end
++    % Check if the output file exists
++    if nargin > 3 && append && exist(dest, 'file') == 2
++        % File exists - append current figure to the end
++        tmp_nam = tempname;
++        try
++            % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
++            fid = fopen(tmp_nam,'w');
++            fwrite(fid,1);
++            fclose(fid);
++            delete(tmp_nam);
++        catch
++            % Temp dir is not writable, so use the dest folder
++            [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
++            fpath = fileparts(dest);
++            tmp_nam = fullfile(fpath,[fname fext]);
++        end
++        % Copy the file
++        copyfile(dest, tmp_nam);
++        % Add the output file names
++        options = [options ' -f "' tmp_nam '" "' source '"'];
++        try
++            % Convert to pdf using ghostscript
++            [status, message] = ghostscript(options);
++        catch me
++            % Delete the intermediate file
++            delete(tmp_nam);
++            rethrow(me);
++        end
+         % Delete the intermediate file
+         delete(tmp_nam);
+-        rethrow(me);
+-    end
+-    % Delete the intermediate file
+-    delete(tmp_nam);
+-else
+-    % File doesn't exist or should be over-written
+-    % Add the output file names
+-    options = [options ' -f "' source '"'];
+-    % Convert to pdf using ghostscript
+-    [status, message] = ghostscript(options);
+-end
+-% Check for error
+-if status
+-    % Report error
+-    if isempty(message)
+-        error('Unable to generate pdf. Check destination directory is writable.');
+     else
+-        error(message);
++        % File doesn't exist or should be over-written
++        % Add the output file names
++        options = [options ' -f "' source '"'];
++        % Convert to pdf using ghostscript
++        [status, message] = ghostscript(options);
+     end
++    % Check for error
++    if status
++        % Retry without the -sFONTPATH= option (this might solve some GS
++        % /findfont errors according to James Rankin, FEX Comment 23/01/15)
++        orig_options = options;
++        if ~isempty(fp)
++            options = regexprep(options, ' -sFONTPATH=[^ ]+ ',' ');
++            status = ghostscript(options);
++            if ~status, return; end  % hurray! (no error)
++        end
++        % Report error
++        if isempty(message)
++            error('Unable to generate pdf. Check destination directory is writable.');
++        else
++            fprintf(2, 'Ghostscript error: perhaps %s is open by another application\n', dest);
++            if ~isempty(gs_options)
++                fprintf(2, '  or maybe the%s option(s) are not accepted by your GS version\n', gs_options);
++            end
++            fprintf(2, 'Ghostscript options: %s\n\n', orig_options);
++            error(message);
++        end
++    end
+ end
+-end
+ 
+ % Function to return (and create, where necessary) the font path
+ function fp = font_path()
+-fp = user_string('gs_font_path');
+-if ~isempty(fp)
+-    return
+-end
+-% Create the path
+-% Start with the default path
+-fp = getenv('GS_FONTPATH');
+-% Add on the typical directories for a given OS
+-if ispc
++    fp = user_string('gs_font_path');
+     if ~isempty(fp)
+-        fp = [fp ';'];
++        return
+     end
+-    fp = [fp getenv('WINDIR') filesep 'Fonts'];
+-else
+-    if ~isempty(fp)
+-        fp = [fp ':'];
++    % Create the path
++    % Start with the default path
++    fp = getenv('GS_FONTPATH');
++    % Add on the typical directories for a given OS
++    if ispc
++        if ~isempty(fp)
++            fp = [fp ';'];
++        end
++        fp = [fp getenv('WINDIR') filesep 'Fonts'];
++    else
++        if ~isempty(fp)
++            fp = [fp ':'];
++        end
++        fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
+     end
+-    fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
++    user_string('gs_font_path', fp);
+ end
+-user_string('gs_font_path', fp);
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/user_string.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/user_string.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/user_string.m	(revision 19571)
+@@ -1,24 +1,27 @@
++function string = user_string(string_name, string)
+ %USER_STRING  Get/set a user specific string
+ %
+ % Examples:
+-%   string = user_string(string_name)
+-%   saved = user_string(string_name, new_string)
++%   string  = user_string(string_name)
++%   isSaved = user_string(string_name, new_string)
+ %
+ % Function to get and set a string in a system or user specific file. This
+ % enables, for example, system specific paths to binaries to be saved.
+ %
++% The specified string will be saved in a file named <string_name>.txt,
++% either in a subfolder named .ignore under this file's folder, or in the
++% user's prefdir folder (in case this file's folder is non-writable).
++%
+ % IN:
+-%   string_name - String containing the name of the string required. The
+-%                 string is extracted from a file called (string_name).txt,
+-%                 stored in the same directory as user_string.m.
+-%   new_string - The new string to be saved under the name given by
+-%                string_name.
++%   string_name - String containing the name of the string required, which
++%                 sets the filename storing the string: <string_name>.txt
++%   new_string  - The new string to be saved in the <string_name>.txt file
+ %
+ % OUT:
+-%   string - The currently saved string. Default: ''.
+-%   saved - Boolean indicating whether the save was succesful
++%   string  - The currently saved string. Default: ''
++%   isSaved - Boolean indicating whether the save was succesful
+ 
+-% Copyright (C) Oliver Woodford 2011-2013
++% Copyright (C) Oliver Woodford 2011-2014, Yair Altman 2015-
+ 
+ % This method of saving paths avoids changing .m files which might be in a
+ % version control system. Instead it saves the user dependent paths in
+@@ -27,61 +30,76 @@
+ % approach.
+ 
+ % 10/01/2013 - Access files in text, not binary mode, as latter can cause
+-% errors. Thanks to Christian for pointing this out.
++%              errors. Thanks to Christian for pointing this out.
++% 29/05/2015 - Save file in prefdir if current folder is non-writable (issue #74)
+ 
+-function string = user_string(string_name, string)
+-if ~ischar(string_name)
+-    error('string_name must be a string.');
+-end
+-% Create the full filename
+-string_name = fullfile(fileparts(mfilename('fullpath')), '.ignore', [string_name '.txt']);
+-if nargin > 1
+-    % Set string
+-    if ~ischar(string)
+-        error('new_string must be a string.');
++    if ~ischar(string_name)
++        error('string_name must be a string.');
+     end
+-    % Make sure the save directory exists
+-    dname = fileparts(string_name);
+-    if ~exist(dname, 'dir')
+-        % Create the directory
+-        try
+-            if ~mkdir(dname)                
++    % Create the full filename
++    fname = [string_name '.txt'];
++    dname = fullfile(fileparts(mfilename('fullpath')), '.ignore');
++    file_name = fullfile(dname, fname);
++    if nargin > 1
++        % Set string
++        if ~ischar(string)
++            error('new_string must be a string.');
++        end
++        % Make sure the save directory exists
++        %dname = fileparts(file_name);
++        if ~exist(dname, 'dir')
++            % Create the directory
++            try
++                if ~mkdir(dname)
++                    string = false;
++                    return
++                end
++            catch
+                 string = false;
+                 return
+             end
++            % Make it hidden
++            try
++                fileattrib(dname, '+h');
++            catch
++            end
++        end
++        % Write the file
++        fid = fopen(file_name, 'wt');
++        if fid == -1
++            % file cannot be created/updated - use prefdir if file does not already exist
++            % (if file exists but is simply not writable, don't create a duplicate in prefdir)
++            if ~exist(file_name,'file')
++                file_name = fullfile(prefdir, fname);
++                fid = fopen(file_name, 'wt');
++            end
++            if fid == -1
++                string = false;
++                return;
++            end
++        end
++        try
++            fprintf(fid, '%s', string);
+         catch
++            fclose(fid);
+             string = false;
+             return
+         end
+-        % Make it hidden
+-        try
+-            fileattrib(dname, '+h');
+-        catch
++        fclose(fid);
++        string = true;
++    else
++        % Get string
++        fid = fopen(file_name, 'rt');
++        if fid == -1
++            % file cannot be read, try to read the file in prefdir
++            file_name = fullfile(prefdir, fname);
++            fid = fopen(file_name, 'rt');
++            if fid == -1
++                string = '';
++                return
++            end
+         end
+-    end
+-    % Write the file
+-    fid = fopen(string_name, 'wt');
+-    if fid == -1
+-        string = false;
+-        return
+-    end
+-    try
+-        fprintf(fid, '%s', string);
+-    catch
++        string = fgetl(fid);
+         fclose(fid);
+-        string = false;
+-        return
+     end
+-    fclose(fid);
+-    string = true;
+-else
+-    % Get string
+-    fid = fopen(string_name, 'rt');
+-    if fid == -1
+-        string = '';
+-        return
+-    end
+-    string = fgetl(fid);
+-    fclose(fid);
+ end
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/export_fig.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/export_fig.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/export_fig.m	(revision 19571)
+@@ -1,8 +1,9 @@
+-%EXPORT_FIG  Exports figures suitable for publication
++function [imageData, alpha] = export_fig(varargin)
++%EXPORT_FIG  Exports figures in a publication-quality format
+ %
+ % Examples:
+-%   im = export_fig
+-%   [im alpha] = export_fig
++%   imageData = export_fig
++%   [imageData, alpha] = export_fig
+ %   export_fig filename
+ %   export_fig filename -format1 -format2
+ %   export_fig ... -nocrop
+@@ -13,15 +14,20 @@
+ %   export_fig ... -a<val>
+ %   export_fig ... -q<val>
+ %   export_fig ... -p<val>
++%   export_fig ... -d<gs_option>
++%   export_fig ... -depsc
+ %   export_fig ... -<renderer>
+ %   export_fig ... -<colorspace>
+ %   export_fig ... -append
+ %   export_fig ... -bookmark
++%   export_fig ... -clipboard
++%   export_fig ... -update
++%   export_fig ... -nofontswap
+ %   export_fig(..., handle)
+ %
+ % This function saves a figure or single axes to one or more vector and/or
+-% bitmap file formats, and/or outputs a rasterized version to the
+-% workspace, with the following properties:
++% bitmap file formats, and/or outputs a rasterized version to the workspace,
++% with the following properties:
+ %   - Figure/axes reproduced as it appears on screen
+ %   - Cropped borders (optional)
+ %   - Embedded fonts (vector formats)
+@@ -34,8 +40,8 @@
+ %   - Variable image compression, including lossless (pdf, eps, jpg)
+ %   - Optionally append to file (pdf, tiff)
+ %   - Vector formats: pdf, eps
+-%   - Bitmap formats: png, tiff, jpg, bmp, export to workspace 
+-%   
++%   - Bitmap formats: png, tiff, jpg, bmp, export to workspace
++%
+ % This function is especially suited to exporting figures for use in
+ % publications and presentations, because of the high quality and
+ % portability of media produced.
+@@ -45,21 +51,20 @@
+ % output file. For transparent background (and semi-transparent patch
+ % objects), use the -transparent option or set the figure 'Color' property
+ % to 'none'. To make axes transparent set the axes 'Color' property to
+-% 'none'. Pdf, eps and png are the only file formats to support a
+-% transparent background, whilst the png format alone supports transparency
+-% of patch objects.
++% 'none'. PDF, EPS and PNG are the only formats that support a transparent
++% background, while only PNG format supports transparency of patch objects.
+ %
+ % The choice of renderer (opengl, zbuffer or painters) has a large impact
+-% on the quality of output. Whilst the default value (opengl for bitmaps,
+-% painters for vector formats) generally gives good results, if you aren't
+-% satisfied then try another renderer.  Notes: 1) For vector formats (eps,
+-% pdf), only painters generates vector graphics. 2) For bitmaps, only
++% on the quality of output. The default value (opengl for bitmaps, painters
++% for vector formats) generally gives good results, but if you aren't
++% satisfied then try another renderer.  Notes: 1) For vector formats (EPS,
++% PDF), only painters generates vector graphics. 2) For bitmaps, only
+ % opengl can render transparent patch objects correctly. 3) For bitmaps,
+ % only painters will correctly scale line dash and dot lengths when
+ % magnifying or anti-aliasing. 4) Fonts may be substitued with Courier when
+ % using painters.
+ %
+-% When exporting to vector format (pdf & eps) and bitmap format using the
++% When exporting to vector format (PDF & EPS) and bitmap format using the
+ % painters renderer, this function requires that ghostscript is installed
+ % on your system. You can download this from:
+ %   http://www.ghostscript.com
+@@ -67,7 +72,7 @@
+ % suite of functions. You can download this from:
+ %   http://www.foolabs.com/xpdf
+ %
+-%IN:
++% Inputs:
+ %   filename - string containing the name (optionally including full or
+ %              relative path) of the file the figure is to be saved as. If
+ %              a path is not specified, the figure is saved in the current
+@@ -86,7 +91,7 @@
+ %                  made transparent (png, pdf and eps output only).
+ %   -m<val> - option where val indicates the factor to magnify the
+ %             on-screen figure pixel dimensions by when generating bitmap
+-%             outputs. Default: '-m1'.
++%             outputs (does not affect vector formats). Default: '-m1'.
+ %   -r<val> - option val indicates the resolution (in pixels per inch) to
+ %             export bitmap and vector outputs at, keeping the dimensions
+ %             of the on-screen figure. Default: '-r864' (for vector output
+@@ -105,9 +110,10 @@
+ %   -a1, -a2, -a3, -a4 - option indicating the amount of anti-aliasing to
+ %                        use for bitmap outputs. '-a1' means no anti-
+ %                        aliasing; '-a4' is the maximum amount (default).
+-%   -<renderer> - option to force a particular renderer (painters, opengl
+-%                 or zbuffer) to be used over the default: opengl for
+-%                 bitmaps; painters for vector formats.
++%   -<renderer> - option to force a particular renderer (painters, opengl or
++%                 zbuffer). Default value: opengl for bitmap formats or
++%                 figures with patches and/or transparent annotations;
++%                 painters for vector formats without patches/transparencies.
+ %   -<colorspace> - option indicating which colorspace color figures should
+ %                   be saved in: RGB (default), CMYK or gray. CMYK is only
+ %                   supported in pdf, eps and tiff output.
+@@ -118,29 +124,45 @@
+ %             default for pdf & eps. Note: lossless compression can
+ %             sometimes give a smaller file size than the default lossy
+ %             compression, depending on the type of images.
+-%   -p<val> - option to add a border of width val to eps and pdf files,
+-%             where val is in units of the intermediate eps file. Default:
+-%             0 (i.e. no padding).
++%   -p<val> - option to pad a border of width val to exported files, where
++%             val is either a relative size with respect to cropped image
++%             size (i.e. p=0.01 adds a 1% border). For EPS & PDF formats,
++%             val can also be integer in units of 1/72" points (abs(val)>1).
++%             val can be positive (padding) or negative (extra cropping).
++%             If used, the -nocrop flag will be ignored, i.e. the image will
++%             always be cropped and then padded. Default: 0 (i.e. no padding).
+ %   -append - option indicating that if the file (pdfs only) already
+ %             exists, the figure is to be appended as a new page, instead
+ %             of being overwritten (default).
+ %   -bookmark - option to indicate that a bookmark with the name of the
+ %               figure is to be created in the output file (pdf only).
+-%   handle - The handle of the figure, axes or uipanels (can be an array of
+-%            handles, but the objects must be in the same figure) to be
+-%            saved. Default: gcf.
++%   -clipboard - option to save output as an image on the system clipboard.
++%                Note: background transparency is not preserved in clipboard
++%   -d<gs_option> - option to indicate a ghostscript setting. For example,
++%                   -dMaxBitmap=0 or -dNoOutputFonts (Ghostscript 9.15+).
++%   -depsc -  option to use EPS level-3 rather than the default level-2 print
++%             device. This solves some bugs with Matlab's default -depsc2 device
++%             such as discolored subplot lines on images (vector formats only).
++%   -update - option to download and install the latest version of export_fig
++%   -nofontswap - option to avoid font swapping. Font swapping is automatically
++%             done in vector formats (only): 11 standard Matlab fonts are
++%             replaced by the original figure fonts. This option prevents this.
++%   handle -  The handle of the figure, axes or uipanels (can be an array of
++%             handles, but the objects must be in the same figure) to be
++%             saved. Default: gcf.
+ %
+-%OUT:
+-%   im - MxNxC uint8 image array of the figure.
+-%   alpha - MxN single array of alphamatte values in range [0,1], for the
+-%           case when the background is transparent.
++% Outputs:
++%   imageData - MxNxC uint8 image array of the exported image.
++%   alpha     - MxN single array of alphamatte values in the range [0,1],
++%               for the case when the background is transparent.
+ %
+ %   Some helpful examples and tips can be found at:
+-%      https://github.com/ojwoodford/export_fig
++%      https://github.com/altmany/export_fig
+ %
+-%   See also PRINT, SAVEAS.
++%   See also PRINT, SAVEAS, ScreenCapture (on the Matlab File Exchange)
+ 
+-% Copyright (C) Oliver Woodford 2008-2014
++%{
++% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
+ 
+ % The idea of using ghostscript is inspired by Peder Axensten's SAVEFIG
+ % (fex id: 10889) which is itself inspired by EPS2PDF (fex id: 5782).
+@@ -161,639 +183,1033 @@
+ % fix anyway.
+ % Thanks to Tammy Threadgill for reporting a bug where an axes is not
+ % isolated from gui objects.
+-
++%}
++%{
+ % 23/02/12: Ensure that axes limits don't change during printing
+-% 14/03/12: Fix bug in fixing the axes limits (thanks to Tobias Lamour for
+-%           reporting it).
+-% 02/05/12: Incorporate patch of Petr Nechaev (many thanks), enabling
+-%           bookmarking of figures in pdf files.
+-% 09/05/12: Incorporate patch of Arcelia Arrieta (many thanks), to keep
+-%           tick marks fixed.
+-% 12/12/12: Add support for isolating uipanels. Thanks to michael for
+-%           suggesting it.
+-% 25/09/13: Add support for changing resolution in vector formats. Thanks
+-%           to Jan Jaap Meijer for suggesting it.
+-% 07/05/14: Add support for '~' at start of path. Thanks to Sally Warner
+-%           for suggesting it.
++% 14/03/12: Fix bug in fixing the axes limits (thanks to Tobias Lamour for reporting it).
++% 02/05/12: Incorporate patch of Petr Nechaev (many thanks), enabling bookmarking of figures in pdf files.
++% 09/05/12: Incorporate patch of Arcelia Arrieta (many thanks), to keep tick marks fixed.
++% 12/12/12: Add support for isolating uipanels. Thanks to michael for suggesting it.
++% 25/09/13: Add support for changing resolution in vector formats. Thanks to Jan Jaap Meijer for suggesting it.
++% 07/05/14: Add support for '~' at start of path. Thanks to Sally Warner for suggesting it.
++% 24/02/15: Fix Matlab R2014b bug (issue #34): plot markers are not displayed when ZLimMode='manual'
++% 25/02/15: Fix issue #4 (using HG2 on R2014a and earlier)
++% 25/02/15: Fix issue #21 (bold TeX axes labels/titles in R2014b)
++% 26/02/15: If temp dir is not writable, use the user-specified folder for temporary EPS/PDF files (Javier Paredes)
++% 27/02/15: Modified repository URL from github.com/ojwoodford to /altmany
++%           Indented main function
++%           Added top-level try-catch block to display useful workarounds
++% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
++% 06/03/15: Improved image padding & cropping thanks to Oscar Hartogensis
++% 26/03/15: Fixed issue #49 (bug with transparent grayscale images); fixed out-of-memory issue
++% 26/03/15: Fixed issue #42: non-normalized annotations on HG1
++% 26/03/15: Fixed issue #46: Ghostscript crash if figure units <> pixels
++% 27/03/15: Fixed issue #39: bad export of transparent annotations/patches
++% 28/03/15: Fixed issue #50: error on some Matlab versions with the fix for issue #42
++% 29/03/15: Fixed issue #33: bugs in Matlab's print() function with -cmyk
++% 29/03/15: Improved processing of input args (accept space between param name & value, related to issue #51)
++% 30/03/15: When exporting *.fig files, then saveas *.fig if figure is open, otherwise export the specified fig file
++% 30/03/15: Fixed edge case bug introduced yesterday (commit #ae1755bd2e11dc4e99b95a7681f6e211b3fa9358)
++% 09/04/15: Consolidated header comment sections; initialize output vars only if requested (nargout>0)
++% 14/04/15: Workaround for issue #45: lines in image subplots are exported in invalid color
++% 15/04/15: Fixed edge-case in parsing input parameters; fixed help section to show the -depsc option (issue #45)
++% 21/04/15: Bug fix: Ghostscript croaks on % chars in output PDF file (reported by Sven on FEX page, 15-Jul-2014)
++% 22/04/15: Bug fix: Pdftops croaks on relative paths (reported by Tintin Milou on FEX page, 19-Jan-2015)
++% 04/05/15: Merged fix #63 (Kevin Mattheus Moerman): prevent tick-label changes during export
++% 07/05/15: Partial fix for issue #65: PDF export used painters rather than opengl renderer (thanks Nguyenr)
++% 08/05/15: Fixed issue #65: bad PDF append since commit #e9f3cdf 21/04/15 (thanks Robert Nguyen)
++% 12/05/15: Fixed issue #67: exponent labels cropped in export, since fix #63 (04/05/15)
++% 28/05/15: Fixed issue #69: set non-bold label font only if the string contains symbols (\beta etc.), followup to issue #21
++% 29/05/15: Added informative error message in case user requested SVG output (issue #72)
++% 09/06/15: Fixed issue #58: -transparent removed anti-aliasing when exporting to PNG
++% 19/06/15: Added -update option to download and install the latest version of export_fig
++% 07/07/15: Added -nofontswap option to avoid font-swapping in EPS/PDF
++% 16/07/15: Fixed problem with anti-aliasing on old Matlab releases
++% 11/09/15: Fixed issue #103: magnification must never become negative; also fixed reported error msg in parsing input params
++%}
+ 
+-function [im, alpha] = export_fig(varargin)
+-% Make sure the figure is rendered correctly _now_ so that properties like
+-% axes limits are up-to-date.
+-drawnow;
+-% Parse the input arguments
+-[fig, options] = parse_args(nargout, varargin{:});
+-% Isolate the subplot, if it is one
+-cls = all(ismember(get(fig, 'Type'), {'axes', 'uipanel'}));
+-if cls
+-    % Given handles of one or more axes, so isolate them from the rest
+-    fig = isolate_axes(fig);
+-else
+-    % Check we have a figure
+-    if ~isequal(get(fig, 'Type'), 'figure');
+-        error('Handle must be that of a figure, axes or uipanel');
++    if nargout
++        [imageData, alpha] = deal([]);
+     end
+-    % Get the old InvertHardcopy mode
+-    old_mode = get(fig, 'InvertHardcopy');
+-end
+-% Hack the font units where necessary (due to a font rendering bug in
+-% print?). This may not work perfectly in all cases. Also it can change the
+-% figure layout if reverted, so use a copy.
+-magnify = options.magnify * options.aa_factor;
+-if isbitmap(options) && magnify ~= 1
+-    fontu = findobj(fig, 'FontUnits', 'normalized');
+-    if ~isempty(fontu)
+-        % Some normalized font units found
+-        if ~cls
+-            fig = copyfig(fig);
+-            set(fig, 'Visible', 'off');
+-            fontu = findobj(fig, 'FontUnits', 'normalized');
+-            cls = true;
++    hadError = false;
++    displaySuggestedWorkarounds = true;
++
++    % Ensure the figure is rendered correctly _now_ so that properties like axes limits are up-to-date
++    drawnow;
++    pause(0.05);  % this solves timing issues with Java Swing's EDT (http://undocumentedmatlab.com/blog/solving-a-matlab-hang-problem)
++
++    % Parse the input arguments
++    fig = get(0, 'CurrentFigure');
++    [fig, options] = parse_args(nargout, fig, varargin{:});
++
++    % Ensure that we have a figure handle
++    if isequal(fig,-1)
++        return;  % silent bail-out
++    elseif isempty(fig)
++        error('No figure found');
++    end
++
++    % Isolate the subplot, if it is one
++    cls = all(ismember(get(fig, 'Type'), {'axes', 'uipanel'}));
++    if cls
++        % Given handles of one or more axes, so isolate them from the rest
++        fig = isolate_axes(fig);
++    else
++        % Check we have a figure
++        if ~isequal(get(fig, 'Type'), 'figure');
++            error('Handle must be that of a figure, axes or uipanel');
+         end
+-        set(fontu, 'FontUnits', 'points');
++        % Get the old InvertHardcopy mode
++        old_mode = get(fig, 'InvertHardcopy');
+     end
+-end
+-% MATLAB "feature": axes limits and tick marks can change when printing
+-Hlims = findall(fig, 'Type', 'axes');
+-if ~cls
+-    % Record the old axes limit and tick modes
+-    Xlims = make_cell(get(Hlims, 'XLimMode'));
+-    Ylims = make_cell(get(Hlims, 'YLimMode'));
+-    Zlims = make_cell(get(Hlims, 'ZLimMode'));
+-    Xtick = make_cell(get(Hlims, 'XTickMode'));
+-    Ytick = make_cell(get(Hlims, 'YTickMode'));
+-    Ztick = make_cell(get(Hlims, 'ZTickMode'));
+-end
+-% Set all axes limit and tick modes to manual, so the limits and ticks can't change
+-set(Hlims, 'XLimMode', 'manual', 'YLimMode', 'manual', 'ZLimMode', 'manual');
+-set_tick_mode(Hlims, 'X');
+-set_tick_mode(Hlims, 'Y');
+-set_tick_mode(Hlims, 'Z');
+-% Set to print exactly what is there
+-set(fig, 'InvertHardcopy', 'off');
+-% Set the renderer
+-switch options.renderer
+-    case 1
+-        renderer = '-opengl';
+-    case 2
+-        renderer = '-zbuffer';
+-    case 3
+-        renderer = '-painters';
+-    otherwise
+-        renderer = '-opengl'; % Default for bitmaps
+-end
+-% Do the bitmap formats first
+-if isbitmap(options)
+-    % Get the background colour
+-    if options.transparent && (options.png || options.alpha)
+-        % Get out an alpha channel
+-        % MATLAB "feature": black colorbar axes can change to white and vice versa!
+-        hCB = findobj(fig, 'Type', 'axes', 'Tag', 'Colorbar');
+-        if isempty(hCB)
+-            yCol = [];
+-            xCol = [];
+-        else
+-            yCol = get(hCB, 'YColor');
+-            xCol = get(hCB, 'XColor');
+-            if iscell(yCol)
+-                yCol = cell2mat(yCol);
+-                xCol = cell2mat(xCol);
++
++    % Hack the font units where necessary (due to a font rendering bug in print?).
++    % This may not work perfectly in all cases.
++    % Also it can change the figure layout if reverted, so use a copy.
++    magnify = options.magnify * options.aa_factor;
++    if isbitmap(options) && magnify ~= 1
++        fontu = findall(fig, 'FontUnits', 'normalized');
++        if ~isempty(fontu)
++            % Some normalized font units found
++            if ~cls
++                fig = copyfig(fig);
++                set(fig, 'Visible', 'off');
++                fontu = findall(fig, 'FontUnits', 'normalized');
++                cls = true;
+             end
+-            yCol = sum(yCol, 2);
+-            xCol = sum(xCol, 2);
++            set(fontu, 'FontUnits', 'points');
+         end
+-        % MATLAB "feature": apparently figure size can change when changing
+-        % colour in -nodisplay mode
+-        pos = get(fig, 'Position');
+-        % Set the background colour to black, and set size in case it was
+-        % changed internally
+-        tcol = get(fig, 'Color');
+-        set(fig, 'Color', 'k', 'Position', pos);
+-        % Correct the colorbar axes colours
+-        set(hCB(yCol==0), 'YColor', [0 0 0]);
+-        set(hCB(xCol==0), 'XColor', [0 0 0]);
+-        % Print large version to array
+-        B = print2array(fig, magnify, renderer);
+-        % Downscale the image
+-        B = downsize(single(B), options.aa_factor);
+-        % Set background to white (and set size)
+-        set(fig, 'Color', 'w', 'Position', pos);
+-        % Correct the colorbar axes colours
+-        set(hCB(yCol==3), 'YColor', [1 1 1]);
+-        set(hCB(xCol==3), 'XColor', [1 1 1]);
+-        % Print large version to array
+-        A = print2array(fig, magnify, renderer);
+-        % Downscale the image
+-        A = downsize(single(A), options.aa_factor);
+-        % Set the background colour (and size) back to normal
+-        set(fig, 'Color', tcol, 'Position', pos);
+-        % Compute the alpha map
+-        alpha = round(sum(B - A, 3)) / (255 * 3) + 1;
+-        A = alpha;
+-        A(A==0) = 1;
+-        A = B ./ A(:,:,[1 1 1]);
+-        clear B
+-        % Convert to greyscale
+-        if options.colourspace == 2
+-            A = rgb2grey(A);
++    end
++
++    try
++        % MATLAB "feature": axes limits and tick marks can change when printing
++        Hlims = findall(fig, 'Type', 'axes');
++        if ~cls
++            % Record the old axes limit and tick modes
++            Xlims = make_cell(get(Hlims, 'XLimMode'));
++            Ylims = make_cell(get(Hlims, 'YLimMode'));
++            Zlims = make_cell(get(Hlims, 'ZLimMode'));
++            Xtick = make_cell(get(Hlims, 'XTickMode'));
++            Ytick = make_cell(get(Hlims, 'YTickMode'));
++            Ztick = make_cell(get(Hlims, 'ZTickMode'));
++            Xlabel = make_cell(get(Hlims, 'XTickLabelMode')); 
++            Ylabel = make_cell(get(Hlims, 'YTickLabelMode')); 
++            Zlabel = make_cell(get(Hlims, 'ZTickLabelMode')); 
+         end
+-        A = uint8(A);
+-        % Crop the background
+-        if options.crop
+-            [alpha, v] = crop_borders(alpha, 0, 1);
+-            A = A(v(1):v(2),v(3):v(4),:);
++
++        % Set all axes limit and tick modes to manual, so the limits and ticks can't change
++        % Fix Matlab R2014b bug (issue #34): plot markers are not displayed when ZLimMode='manual'
++        set(Hlims, 'XLimMode', 'manual', 'YLimMode', 'manual');
++        set_tick_mode(Hlims, 'X');
++        set_tick_mode(Hlims, 'Y');
++        if ~using_hg2(fig)
++            set(Hlims,'ZLimMode', 'manual');
++            set_tick_mode(Hlims, 'Z');
+         end
+-        if options.png
+-            % Compute the resolution
+-            res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
+-            % Save the png
+-            imwrite(A, [options.name '.png'], 'Alpha', double(alpha), 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
+-            % Clear the png bit
+-            options.png = false;
+-        end
+-        % Return only one channel for greyscale
+-        if isbitmap(options)
+-            A = check_greyscale(A);
+-        end
+-        if options.alpha
+-            % Store the image
+-            im = A;
+-            % Clear the alpha bit
+-            options.alpha = false;
+-        end
+-        % Get the non-alpha image
+-        if isbitmap(options)
+-            alph = alpha(:,:,ones(1, size(A, 3)));
+-            A = uint8(single(A) .* alph + 255 * (1 - alph));
+-            clear alph
+-        end
+-        if options.im
+-            % Store the new image
+-            im = A;
+-        end
+-    else
+-        % Print large version to array
+-        if options.transparent
+-            % MATLAB "feature": apparently figure size can change when changing
+-            % colour in -nodisplay mode
+-            pos = get(fig, 'Position');
+-            tcol = get(fig, 'Color');
+-            set(fig, 'Color', 'w', 'Position', pos);
+-            A = print2array(fig, magnify, renderer);
+-            set(fig, 'Color', tcol, 'Position', pos);
+-            tcol = 255;
+-        else
+-            [A, tcol] = print2array(fig, magnify, renderer);
+-        end
+-        % Crop the background
+-        if options.crop
+-            A = crop_borders(A, tcol, 1);
+-        end
+-        % Downscale the image
+-        A = downsize(A, options.aa_factor);
+-        if options.colourspace == 2
+-            % Convert to greyscale
+-            A = rgb2grey(A);
+-        else
+-            % Return only one channel for greyscale
+-            A = check_greyscale(A);
+-        end
+-        % Outputs
+-        if options.im
+-            im = A;
+-        end
+-        if options.alpha
+-            im = A;
+-            alpha = zeros(size(A, 1), size(A, 2), 'single');
+-        end
++    catch
++        % ignore - fix issue #4 (using HG2 on R2014a and earlier)
+     end
+-    % Save the images
+-    if options.png
+-        res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
+-        imwrite(A, [options.name '.png'], 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
+-    end
+-    if options.bmp
+-        imwrite(A, [options.name '.bmp']);
+-    end
+-    % Save jpeg with given quality
+-    if options.jpg
+-        quality = options.quality;
+-        if isempty(quality)
+-            quality = 95;
++
++    % Fix issue #21 (bold TeX axes labels/titles in R2014b when exporting to EPS/PDF)
++    try
++        if using_hg2(fig) && isvector(options)
++            % Set the FontWeight of axes labels/titles to 'normal'
++            % Fix issue #69: set non-bold font only if the string contains symbols (\beta etc.)
++            texLabels = findall(fig, 'type','text', 'FontWeight','bold');
++            symbolIdx = ~cellfun('isempty',strfind({texLabels.String},'\'));
++            set(texLabels(symbolIdx), 'FontWeight','normal');
+         end
+-        if quality > 100
+-            imwrite(A, [options.name '.jpg'], 'Mode', 'lossless');
+-        else
+-            imwrite(A, [options.name '.jpg'], 'Quality', quality);
+-        end
++    catch
++        % ignore
+     end
+-    % Save tif images in cmyk if wanted (and possible)
+-    if options.tif
+-        if options.colourspace == 1 && size(A, 3) == 3
+-            A = double(255 - A);
+-            K = min(A, [], 3);
+-            K_ = 255 ./ max(255 - K, 1);
+-            C = (A(:,:,1) - K) .* K_;
+-            M = (A(:,:,2) - K) .* K_;
+-            Y = (A(:,:,3) - K) .* K_;
+-            A = uint8(cat(3, C, M, Y, K));
+-            clear C M Y K K_
++
++    % Fix issue #42: non-normalized annotations on HG1 (internal Matlab bug)
++    annotationHandles = [];
++    try
++        if ~using_hg2(fig)
++            annotationHandles = findall(fig,'Type','hggroup','-and','-property','Units','-and','-not','Units','norm');
++            originalUnits = get(annotationHandles,'Units');
++            set(annotationHandles,'Units','norm');
+         end
+-        append_mode = {'overwrite', 'append'};
+-        imwrite(A, [options.name '.tif'], 'Resolution', options.magnify*get(0, 'ScreenPixelsPerInch'), 'WriteMode', append_mode{options.append+1});
++    catch
++        % should never happen, but ignore in any case - issue #50
+     end
+-end
+-% Now do the vector formats
+-if isvector(options)
+-    % Set the default renderer to painters
+-    if ~options.renderer
+-        renderer = '-painters';
++
++    % Fix issue #46: Ghostscript crash if figure units <> pixels
++    oldFigUnits = get(fig,'Units');
++    set(fig,'Units','pixels');
++
++    % Set to print exactly what is there
++    set(fig, 'InvertHardcopy', 'off');
++    % Set the renderer
++    switch options.renderer
++        case 1
++            renderer = '-opengl';
++        case 2
++            renderer = '-zbuffer';
++        case 3
++            renderer = '-painters';
++        otherwise
++            renderer = '-opengl'; % Default for bitmaps
+     end
+-    % Generate some filenames
+-    tmp_nam = [tempname '.eps'];
+-    if options.pdf
+-        pdf_nam = [options.name '.pdf'];
+-    else
+-        pdf_nam = [tempname '.pdf'];
+-    end
+-    % Generate the options for print
+-    p2eArgs = {renderer, sprintf('-r%d', options.resolution)};
+-    if options.colourspace == 1
+-        p2eArgs = [p2eArgs {'-cmyk'}];
+-    end
+-    if ~options.crop
+-        p2eArgs = [p2eArgs {'-loose'}];
+-    end
++
+     try
+-        % Generate an eps
+-        print2eps(tmp_nam, fig, options.bb_padding, p2eArgs{:});
+-        % Remove the background, if desired
+-        if options.transparent && ~isequal(get(fig, 'Color'), 'none')
+-            eps_remove_background(tmp_nam, 1 + using_hg2(fig));
+-        end
+-        % Add a bookmark to the PDF if desired
+-        if options.bookmark
+-            fig_nam = get(fig, 'Name');
+-            if isempty(fig_nam)
+-                warning('export_fig:EmptyBookmark', 'Bookmark requested for figure with no name. Bookmark will be empty.');
++        % Do the bitmap formats first
++        if isbitmap(options)
++            if abs(options.bb_padding) > 1
++                displaySuggestedWorkarounds = false;
++                error('For bitmap output (png,jpg,tif,bmp) the padding value (-p) must be between -1<p<1')
+             end
+-            add_bookmark(tmp_nam, fig_nam);
+-        end
+-        % Generate a pdf
+-        eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);
+-    catch ex
+-        % Delete the eps
+-        delete(tmp_nam);
+-        rethrow(ex);
+-    end
+-    % Delete the eps
+-    delete(tmp_nam);
+-    if options.eps
+-        try
+-            % Generate an eps from the pdf
+-            pdf2eps(pdf_nam, [options.name '.eps']);
+-        catch ex
+-            if ~options.pdf
+-                % Delete the pdf
+-                delete(pdf_nam);
++            % Get the background colour
++            if options.transparent && (options.png || options.alpha)
++                % Get out an alpha channel
++                % MATLAB "feature": black colorbar axes can change to white and vice versa!
++                hCB = findall(fig, 'Type','axes', 'Tag','Colorbar');
++                if isempty(hCB)
++                    yCol = [];
++                    xCol = [];
++                else
++                    yCol = get(hCB, 'YColor');
++                    xCol = get(hCB, 'XColor');
++                    if iscell(yCol)
++                        yCol = cell2mat(yCol);
++                        xCol = cell2mat(xCol);
++                    end
++                    yCol = sum(yCol, 2);
++                    xCol = sum(xCol, 2);
++                end
++                % MATLAB "feature": apparently figure size can change when changing
++                % colour in -nodisplay mode
++                pos = get(fig, 'Position');
++                % Set the background colour to black, and set size in case it was
++                % changed internally
++                tcol = get(fig, 'Color');
++                set(fig, 'Color', 'k', 'Position', pos);
++                % Correct the colorbar axes colours
++                set(hCB(yCol==0), 'YColor', [0 0 0]);
++                set(hCB(xCol==0), 'XColor', [0 0 0]);
++
++                % The following code might cause out-of-memory errors
++                try
++                    % Print large version to array
++                    B = print2array(fig, magnify, renderer);
++                    % Downscale the image
++                    B = downsize(single(B), options.aa_factor);
++                catch
++                    % This is more conservative in memory, but kills transparency (issue #58)
++                    B = single(print2array(fig, magnify/options.aa_factor, renderer));
++                end
++
++                % Set background to white (and set size)
++                set(fig, 'Color', 'w', 'Position', pos);
++                % Correct the colorbar axes colours
++                set(hCB(yCol==3), 'YColor', [1 1 1]);
++                set(hCB(xCol==3), 'XColor', [1 1 1]);
++
++                % The following code might cause out-of-memory errors
++                try
++                    % Print large version to array
++                    A = print2array(fig, magnify, renderer);
++                    % Downscale the image
++                    A = downsize(single(A), options.aa_factor);
++                catch
++                    % This is more conservative in memory, but kills transparency (issue #58)
++                    A = single(print2array(fig, magnify/options.aa_factor, renderer));
++                end
++
++                % Set the background colour (and size) back to normal
++                set(fig, 'Color', tcol, 'Position', pos);
++                % Compute the alpha map
++                alpha = round(sum(B - A, 3)) / (255 * 3) + 1;
++                A = alpha;
++                A(A==0) = 1;
++                A = B ./ A(:,:,[1 1 1]);
++                clear B
++                % Convert to greyscale
++                if options.colourspace == 2
++                    A = rgb2grey(A);
++                end
++                A = uint8(A);
++                % Crop the background
++                if options.crop
++                    %[alpha, v] = crop_borders(alpha, 0, 1);
++                    %A = A(v(1):v(2),v(3):v(4),:);
++                    [alpha, vA, vB] = crop_borders(alpha, 0, options.bb_padding);
++                    if ~any(isnan(vB)) % positive padding
++                        B = repmat(uint8(zeros(1,1,size(A,3))),size(alpha));
++                        B(vB(1):vB(2), vB(3):vB(4), :) = A(vA(1):vA(2), vA(3):vA(4), :); % ADDED BY OH
++                        A = B;
++                    else  % negative padding
++                        A = A(vA(1):vA(2), vA(3):vA(4), :);
++                    end
++                end
++                if options.png
++                    % Compute the resolution
++                    res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
++                    % Save the png
++                    imwrite(A, [options.name '.png'], 'Alpha', double(alpha), 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
++                    % Clear the png bit
++                    options.png = false;
++                end
++                % Return only one channel for greyscale
++                if isbitmap(options)
++                    A = check_greyscale(A);
++                end
++                if options.alpha
++                    % Store the image
++                    imageData = A;
++                    % Clear the alpha bit
++                    options.alpha = false;
++                end
++                % Get the non-alpha image
++                if isbitmap(options)
++                    alph = alpha(:,:,ones(1, size(A, 3)));
++                    A = uint8(single(A) .* alph + 255 * (1 - alph));
++                    clear alph
++                end
++                if options.im
++                    % Store the new image
++                    imageData = A;
++                end
++            else
++                % Print large version to array
++                if options.transparent
++                    % MATLAB "feature": apparently figure size can change when changing
++                    % colour in -nodisplay mode
++                    pos = get(fig, 'Position');
++                    tcol = get(fig, 'Color');
++                    set(fig, 'Color', 'w', 'Position', pos);
++                    A = print2array(fig, magnify, renderer);
++                    set(fig, 'Color', tcol, 'Position', pos);
++                    tcol = 255;
++                else
++                    [A, tcol] = print2array(fig, magnify, renderer);
++                end
++                % Crop the background
++                if options.crop
++                    A = crop_borders(A, tcol, options.bb_padding);
++                end
++                % Downscale the image
++                A = downsize(A, options.aa_factor);
++                if options.colourspace == 2
++                    % Convert to greyscale
++                    A = rgb2grey(A);
++                else
++                    % Return only one channel for greyscale
++                    A = check_greyscale(A);
++                end
++                % Outputs
++                if options.im
++                    imageData = A;
++                end
++                if options.alpha
++                    imageData = A;
++                    alpha = zeros(size(A, 1), size(A, 2), 'single');
++                end
+             end
+-            rethrow(ex);
++            % Save the images
++            if options.png
++                res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
++                imwrite(A, [options.name '.png'], 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
++            end
++            if options.bmp
++                imwrite(A, [options.name '.bmp']);
++            end
++            % Save jpeg with given quality
++            if options.jpg
++                quality = options.quality;
++                if isempty(quality)
++                    quality = 95;
++                end
++                if quality > 100
++                    imwrite(A, [options.name '.jpg'], 'Mode', 'lossless');
++                else
++                    imwrite(A, [options.name '.jpg'], 'Quality', quality);
++                end
++            end
++            % Save tif images in cmyk if wanted (and possible)
++            if options.tif
++                if options.colourspace == 1 && size(A, 3) == 3
++                    A = double(255 - A);
++                    K = min(A, [], 3);
++                    K_ = 255 ./ max(255 - K, 1);
++                    C = (A(:,:,1) - K) .* K_;
++                    M = (A(:,:,2) - K) .* K_;
++                    Y = (A(:,:,3) - K) .* K_;
++                    A = uint8(cat(3, C, M, Y, K));
++                    clear C M Y K K_
++                end
++                append_mode = {'overwrite', 'append'};
++                imwrite(A, [options.name '.tif'], 'Resolution', options.magnify*get(0, 'ScreenPixelsPerInch'), 'WriteMode', append_mode{options.append+1});
++            end
+         end
+-        if ~options.pdf
+-            % Delete the pdf
+-            delete(pdf_nam);
+-        end
+-    end
+-end
+-if cls
+-    % Close the created figure
+-    close(fig);
+-else
+-    % Reset the hardcopy mode
+-    set(fig, 'InvertHardcopy', old_mode);
+-    % Reset the axes limit and tick modes
+-    for a = 1:numel(Hlims)
+-        set(Hlims(a), 'XLimMode', Xlims{a}, 'YLimMode', Ylims{a}, 'ZLimMode', Zlims{a}, 'XTickMode', Xtick{a}, 'YTickMode', Ytick{a}, 'ZTickMode', Ztick{a});
+-    end
+-end
+-end
+ 
+-function [fig, options] = parse_args(nout, varargin)
+-% Parse the input arguments
+-% Set the defaults
+-fig = get(0, 'CurrentFigure');
+-options = struct('name', 'export_fig_out', ...
+-                 'crop', true, ...
+-                 'transparent', false, ...
+-                 'renderer', 0, ... % 0: default, 1: OpenGL, 2: ZBuffer, 3: Painters
+-                 'pdf', false, ...
+-                 'eps', false, ...
+-                 'png', false, ...
+-                 'tif', false, ...
+-                 'jpg', false, ...
+-                 'bmp', false, ...
+-                 'colourspace', 0, ... % 0: RGB/gray, 1: CMYK, 2: gray
+-                 'append', false, ...
+-                 'im', nout == 1, ...
+-                 'alpha', nout == 2, ...
+-                 'aa_factor', 0, ...
+-                 'bb_padding', 0, ...
+-                 'magnify', [], ...
+-                 'resolution', [], ...
+-                 'bookmark', false, ...
+-                 'quality', []);
+-native = false; % Set resolution to native of an image
+-
+-% Go through the other arguments
+-for a = 1:nargin-1
+-    if all(ishandle(varargin{a}))
+-        fig = varargin{a};
+-    elseif ischar(varargin{a}) && ~isempty(varargin{a})
+-        if varargin{a}(1) == '-'
+-            switch lower(varargin{a}(2:end))
+-                case 'nocrop'
+-                    options.crop = false;
+-                case {'trans', 'transparent'}
+-                    options.transparent = true;
+-                case 'opengl'
+-                    options.renderer = 1;
+-                case 'zbuffer'
+-                    options.renderer = 2;
+-                case 'painters'
+-                    options.renderer = 3;
+-                case 'pdf'
+-                    options.pdf = true;
+-                case 'eps'
+-                    options.eps = true;
+-                case 'png'
+-                    options.png = true;
+-                case {'tif', 'tiff'}
+-                    options.tif = true;
+-                case {'jpg', 'jpeg'}
+-                    options.jpg = true;
+-                case 'bmp'
+-                    options.bmp = true;
+-                case 'rgb'
+-                    options.colourspace = 0;
+-                case 'cmyk'
+-                    options.colourspace = 1;
+-                case {'gray', 'grey'}
+-                    options.colourspace = 2;
+-                case {'a1', 'a2', 'a3', 'a4'}
+-                    options.aa_factor = str2double(varargin{a}(3));
+-                case 'append'
+-                    options.append = true;
+-                case 'bookmark'
+-                    options.bookmark = true;
+-                case 'native'
+-                    native = true;
+-                otherwise
+-                    val = str2double(regexp(varargin{a}, '(?<=-(m|M|r|R|q|Q|p|P))-?\d*.?\d+', 'match'));
+-                    if ~isscalar(val)
+-                        error('option %s not recognised', varargin{a});
++        % Now do the vector formats
++        if isvector(options)
++            % Set the default renderer to painters
++            if ~options.renderer
++                if isempty(findall(fig,'-property','FaceAlpha','-and','-not','FaceAlpha',1)) && ...
++                        isempty(findall(fig,'type','patch'))
++                    renderer = '-painters';
++                else
++                    % This is *MUCH* slower, but more accurate for patches and transparent annotations (issue #39)
++                    renderer = '-opengl';
++                end
++            end
++            % Generate some filenames
++            tmp_nam = [tempname '.eps'];
++            try
++                % Ensure that the temp dir is writable (Javier Paredes 30/1/15)
++                fid = fopen(tmp_nam,'w');
++                fwrite(fid,1);
++                fclose(fid);
++                delete(tmp_nam);
++                isTempDirOk = true;
++            catch
++                % Temp dir is not writable, so use the user-specified folder
++                [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
++                fpath = fileparts(options.name);
++                tmp_nam = fullfile(fpath,[fname fext]);
++                isTempDirOk = false;
++            end
++            if isTempDirOk
++                pdf_nam_tmp = [tempname '.pdf'];
++            else
++                pdf_nam_tmp = fullfile(fpath,[fname '.pdf']);
++            end
++            if options.pdf
++                pdf_nam = [options.name '.pdf'];
++                try copyfile(pdf_nam, pdf_nam_tmp, 'f'); catch, end  % fix for issue #65
++            else
++                pdf_nam = pdf_nam_tmp;
++            end
++            % Generate the options for print
++            p2eArgs = {renderer, sprintf('-r%d', options.resolution)};
++            if options.colourspace == 1  % CMYK
++                % Issue #33: due to internal bugs in Matlab's print() function, we can't use its -cmyk option
++                %p2eArgs{end+1} = '-cmyk';
++            end
++            if ~options.crop
++                % Issue #56: due to internal bugs in Matlab's print() function, we can't use its internal cropping mechanism,
++                % therefore we always use '-loose' (in print2eps.m) and do our own cropping (in crop_borders)
++                %p2eArgs{end+1} = '-loose';
++            end
++            if any(strcmpi(varargin,'-depsc'))
++                % Issue #45: lines in image subplots are exported in invalid color.
++                % The workaround is to use the -depsc parameter instead of the default -depsc2
++                p2eArgs{end+1} = '-depsc';
++            end
++            try
++                % Generate an eps
++                print2eps(tmp_nam, fig, [options.bb_padding, options.crop, options.fontswap], p2eArgs{:});
++                % Remove the background, if desired
++                if options.transparent && ~isequal(get(fig, 'Color'), 'none')
++                    eps_remove_background(tmp_nam, 1 + using_hg2(fig));
++                end
++                % Fix colorspace to CMYK, if requested (workaround for issue #33)
++                if options.colourspace == 1  % CMYK
++                    % Issue #33: due to internal bugs in Matlab's print() function, we can't use its -cmyk option
++                    change_rgb_to_cmyk(tmp_nam);
++                end
++                % Add a bookmark to the PDF if desired
++                if options.bookmark
++                    fig_nam = get(fig, 'Name');
++                    if isempty(fig_nam)
++                        warning('export_fig:EmptyBookmark', 'Bookmark requested for figure with no name. Bookmark will be empty.');
+                     end
+-                    switch lower(varargin{a}(2))
+-                        case 'm'
+-                            options.magnify = val;
+-                        case 'r'
+-                            options.resolution = val;
+-                        case 'q'
+-                            options.quality = max(val, 0);
+-                        case 'p'
+-                            options.bb_padding = val;
++                    add_bookmark(tmp_nam, fig_nam);
++                end
++                % Generate a pdf
++                eps2pdf(tmp_nam, pdf_nam_tmp, 1, options.append, options.colourspace==2, options.quality, options.gs_options);
++                % Ghostscript croaks on % chars in the output PDF file, so use tempname and then rename the file
++                try movefile(pdf_nam_tmp, pdf_nam, 'f'); catch, end
++            catch ex
++                % Delete the eps
++                delete(tmp_nam);
++                rethrow(ex);
++            end
++            % Delete the eps
++            delete(tmp_nam);
++            if options.eps
++                try
++                    % Generate an eps from the pdf
++                    % since pdftops can't handle relative paths (e.g., '..\'), use a temp file
++                    eps_nam_tmp = strrep(pdf_nam_tmp,'.pdf','.eps');
++                    pdf2eps(pdf_nam, eps_nam_tmp);
++                    movefile(eps_nam_tmp,  [options.name '.eps'], 'f');
++                catch ex
++                    if ~options.pdf
++                        % Delete the pdf
++                        delete(pdf_nam);
+                     end
++                    try delete(eps_nam_tmp); catch, end
++                    rethrow(ex);
++                end
++                if ~options.pdf
++                    % Delete the pdf
++                    delete(pdf_nam);
++                end
+             end
++        end
++
++        % Revert the figure or close it (if requested)
++        if cls || options.closeFig
++            % Close the created figure
++            close(fig);
+         else
+-            [p, options.name, ext] = fileparts(varargin{a});
+-            if ~isempty(p)
+-                options.name = [p filesep options.name];
++            % Reset the hardcopy mode
++            set(fig, 'InvertHardcopy', old_mode);
++            % Reset the axes limit and tick modes
++            for a = 1:numel(Hlims)
++                try
++                    set(Hlims(a), 'XLimMode', Xlims{a}, 'YLimMode', Ylims{a}, 'ZLimMode', Zlims{a},... 
++                                  'XTickMode', Xtick{a}, 'YTickMode', Ytick{a}, 'ZTickMode', Ztick{a},...
++                                  'XTickLabelMode', Xlabel{a}, 'YTickLabelMode', Ylabel{a}, 'ZTickLabelMode', Zlabel{a}); 
++                catch
++                    % ignore - fix issue #4 (using HG2 on R2014a and earlier)
++                end
+             end
+-            switch lower(ext)
+-                case {'.tif', '.tiff'}
+-                    options.tif = true;
+-                case {'.jpg', '.jpeg'}
+-                    options.jpg = true;
+-                case '.png'
+-                    options.png = true;
+-                case '.bmp'
+-                    options.bmp = true;
+-                case '.eps'
+-                    options.eps = true;
+-                case '.pdf'
+-                    options.pdf = true;
+-                otherwise
+-                    options.name = varargin{a};
++            % Revert the tex-labels font weights
++            try set(texLabels, 'FontWeight','bold'); catch, end
++            % Revert annotation units
++            for handleIdx = 1 : numel(annotationHandles)
++                try
++                    oldUnits = originalUnits{handleIdx};
++                catch
++                    oldUnits = originalUnits;
++                end
++                try set(annotationHandles(handleIdx),'Units',oldUnits); catch, end
+             end
++            % Revert figure units
++            set(fig,'Units',oldFigUnits);
+         end
++
++        % Output to clipboard (if requested)
++        if options.clipboard
++            % Delete the output file if unchanged from the default name ('export_fig_out.png')
++            if strcmpi(options.name,'export_fig_out')
++                try
++                    fileInfo = dir('export_fig_out.png');
++                    if ~isempty(fileInfo)
++                        timediff = now - fileInfo.datenum;
++                        ONE_SEC = 1/24/60/60;
++                        if timediff < ONE_SEC
++                            delete('export_fig_out.png');
++                        end
++                    end
++                catch
++                    % never mind...
++                end
++            end
++
++            % Save the image in the system clipboard
++            % credit: Jiro Doke's IMCLIPBOARD: http://www.mathworks.com/matlabcentral/fileexchange/28708-imclipboard
++            try
++                error(javachk('awt', 'export_fig -clipboard output'));
++            catch
++                warning('export_fig -clipboard output failed: requires Java to work');
++                return;
++            end
++            try
++                % Import necessary Java classes
++                import java.awt.Toolkit.*
++                import java.awt.image.BufferedImage
++                import java.awt.datatransfer.DataFlavor
++
++                % Get System Clipboard object (java.awt.Toolkit)
++                cb = getDefaultToolkit.getSystemClipboard();
++
++                % Add java class (ImageSelection) to the path
++                if ~exist('ImageSelection', 'class')
++                    javaaddpath(fileparts(which(mfilename)), '-end');
++                end
++
++                % Get image size
++                ht = size(imageData, 1);
++                wd = size(imageData, 2);
++
++                % Convert to Blue-Green-Red format
++                try
++                    imageData2 = imageData(:, :, [3 2 1]);
++                catch
++                    % Probably gray-scaled image (2D, without the 3rd [RGB] dimension)
++                    imageData2 = imageData(:, :, [1 1 1]);
++                end
++
++                % Convert to 3xWxH format
++                imageData2 = permute(imageData2, [3, 2, 1]);
++
++                % Append Alpha data (unused - transparency is not supported in clipboard copy)
++                alphaData2 = uint8(permute(255*alpha,[3,2,1])); %=255*ones(1,wd,ht,'uint8')
++                imageData2 = cat(1, imageData2, alphaData2);
++
++                % Create image buffer
++                imBuffer = BufferedImage(wd, ht, BufferedImage.TYPE_INT_RGB);
++                imBuffer.setRGB(0, 0, wd, ht, typecast(imageData2(:), 'int32'), 0, wd);
++
++                % Create ImageSelection object from the image buffer
++                imSelection = ImageSelection(imBuffer);
++
++                % Set clipboard content to the image
++                cb.setContents(imSelection, []);
++            catch
++                warning('export_fig -clipboard output failed: %s', lasterr); %#ok<LERR>
++            end
++        end
++
++        % Don't output the data to console unless requested
++        if ~nargout
++            clear imageData alpha
++        end
++    catch err
++        % Display possible workarounds before the error message
++        if displaySuggestedWorkarounds
++            if ~hadError,  fprintf(2, 'export_fig error. ');  end
++            fprintf(2, 'Please ensure:\n');
++            fprintf(2, '  that you are using the <a href="https://github.com/altmany/export_fig/archive/master.zip">latest version</a> of export_fig\n');
++            fprintf(2, '  and that you have <a href="http://www.ghostscript.com">Ghostscript</a> installed\n');
++            try
++                if options.eps
++                    fprintf(2, '  and that you have <a href="http://www.foolabs.com/xpdf">pdftops</a> installed\n');
++                end
++            catch
++                % ignore - probably an error in parse_args
++            end
++            fprintf(2, '  and that you do not have <a href="matlab:which export_fig -all">multiple versions</a> of export_fig installed by mistake\n');
++            fprintf(2, '  and that you did not made a mistake in the <a href="matlab:help export_fig">expected input arguments</a>\n');
++            fprintf(2, '\nIf the problem persists, then please <a href="https://github.com/altmany/export_fig/issues">report a new issue</a>.\n\n');
++        end
++        rethrow(err)
+     end
+ end
+ 
+-% Set default anti-aliasing now we know the renderer
+-if options.aa_factor == 0
+-    options.aa_factor = 1 + 2 * (~(using_hg2(fig) && strcmp(get(ancestor(fig, 'figure'), 'GraphicsSmoothing'), 'on')) | (options.renderer == 3));
+-end
++function [fig, options] = parse_args(nout, fig, varargin)
++    % Parse the input arguments
++    % Set the defaults
++    options = struct(...
++        'name', 'export_fig_out', ...
++        'crop', true, ...
++        'transparent', false, ...
++        'renderer', 0, ... % 0: default, 1: OpenGL, 2: ZBuffer, 3: Painters
++        'pdf', false, ...
++        'eps', false, ...
++        'png', false, ...
++        'tif', false, ...
++        'jpg', false, ...
++        'bmp', false, ...
++        'clipboard', false, ...
++        'colourspace', 0, ... % 0: RGB/gray, 1: CMYK, 2: gray
++        'append', false, ...
++        'im',    nout == 1, ...
++        'alpha', nout == 2, ...
++        'aa_factor', 0, ...
++        'bb_padding', 0, ...
++        'magnify', [], ...
++        'resolution', [], ...
++        'bookmark', false, ...
++        'closeFig', false, ...
++        'quality', [], ...
++        'update', false, ...
++        'fontswap', true, ...
++        'gs_options', {{}});
++    native = false; % Set resolution to native of an image
+ 
+-% Convert user dir '~' to full path
+-if numel(options.name) > 2 && options.name(1) == '~' && (options.name(2) == '/' || options.name(2) == '\')
+-    options.name = fullfile(char(java.lang.System.getProperty('user.home')), options.name(2:end));
+-end
++    % Go through the other arguments
++    skipNext = false;
++    for a = 1:nargin-2
++        if skipNext
++            skipNext = false;
++            continue;
++        end
++        if all(ishandle(varargin{a}))
++            fig = varargin{a};
++        elseif ischar(varargin{a}) && ~isempty(varargin{a})
++            if varargin{a}(1) == '-'
++                switch lower(varargin{a}(2:end))
++                    case 'nocrop'
++                        options.crop = false;
++                    case {'trans', 'transparent'}
++                        options.transparent = true;
++                    case 'opengl'
++                        options.renderer = 1;
++                    case 'zbuffer'
++                        options.renderer = 2;
++                    case 'painters'
++                        options.renderer = 3;
++                    case 'pdf'
++                        options.pdf = true;
++                    case 'eps'
++                        options.eps = true;
++                    case 'png'
++                        options.png = true;
++                    case {'tif', 'tiff'}
++                        options.tif = true;
++                    case {'jpg', 'jpeg'}
++                        options.jpg = true;
++                    case 'bmp'
++                        options.bmp = true;
++                    case 'rgb'
++                        options.colourspace = 0;
++                    case 'cmyk'
++                        options.colourspace = 1;
++                    case {'gray', 'grey'}
++                        options.colourspace = 2;
++                    case {'a1', 'a2', 'a3', 'a4'}
++                        options.aa_factor = str2double(varargin{a}(3));
++                    case 'append'
++                        options.append = true;
++                    case 'bookmark'
++                        options.bookmark = true;
++                    case 'native'
++                        native = true;
++                    case 'clipboard'
++                        options.clipboard = true;
++                        options.im = true;
++                        options.alpha = true;
++                    case 'svg'
++                        msg = ['SVG output is not supported by export_fig. Use one of the following alternatives:\n' ...
++                               '  1. saveas(gcf,''filename.svg'')\n' ...
++                               '  2. plot2svg utility: http://github.com/jschwizer99/plot2svg\n' ...
++                               '  3. export_fig to EPS/PDF, then convert to SVG using generic (non-Matlab) tools\n'];
++                        error(sprintf(msg)); %#ok<SPERR>
++                    case 'update'
++                        % Download the latest version of export_fig into the export_fig folder
++                        try
++                            zipFileName = 'https://github.com/altmany/export_fig/archive/master.zip';
++                            folderName = fileparts(which(mfilename('fullpath')));
++                            targetFileName = fullfile(folderName, datestr(now,'yyyy-mm-dd.zip'));
++                            urlwrite(zipFileName,targetFileName);
++                        catch
++                            error('Could not download %s into %s\n',zipFileName,targetFileName);
++                        end
+ 
+-% Compute the magnification and resolution
+-if isempty(options.magnify)
+-    if isempty(options.resolution)
+-        options.magnify = 1;
+-        options.resolution = 864;
+-    else
+-        options.magnify = options.resolution ./ get(0, 'ScreenPixelsPerInch');
++                        % Unzip the downloaded zip file in the export_fig folder
++                        try
++                            unzip(targetFileName,folderName);
++                        catch
++                            error('Could not unzip %s\n',targetFileName);
++                        end
++                    case 'nofontswap'
++                        options.fontswap = false;
++                    otherwise
++                        try
++                            wasError = false;
++                            if strcmpi(varargin{a}(1:2),'-d')
++                                varargin{a}(2) = 'd';  % ensure lowercase 'd'
++                                options.gs_options{end+1} = varargin{a};
++                            else
++                                val = str2double(regexp(varargin{a}, '(?<=-(m|M|r|R|q|Q|p|P))-?\d*.?\d+', 'match'));
++                                if isempty(val) || isnan(val)
++                                    % Issue #51: improved processing of input args (accept space between param name & value)
++                                    val = str2double(varargin{a+1});
++                                    if isscalar(val) && ~isnan(val)
++                                        skipNext = true;
++                                    end
++                                end
++                                if ~isscalar(val) || isnan(val)
++                                    wasError = true;
++                                    error('option %s is not recognised or cannot be parsed', varargin{a});
++                                end
++                                switch lower(varargin{a}(2))
++                                    case 'm'
++                                        % Magnification may never be negative
++                                        if val <= 0
++                                            wasError = true;
++                                            error('Bad magnification value: %g (must be positive)', val);
++                                        end
++                                        options.magnify = val;
++                                    case 'r'
++                                        options.resolution = val;
++                                    case 'q'
++                                        options.quality = max(val, 0);
++                                    case 'p'
++                                        options.bb_padding = val;
++                                end
++                            end
++                        catch err
++                            % We might have reached here by raising an intentional error
++                            if wasError  % intentional raise
++                                rethrow(err)
++                            else  % unintentional
++                                error(['Unrecognized export_fig input option: ''' varargin{a} '''']);
++                            end
++                        end
++                end
++            else
++                [p, options.name, ext] = fileparts(varargin{a});
++                if ~isempty(p)
++                    options.name = [p filesep options.name];
++                end
++                switch lower(ext)
++                    case {'.tif', '.tiff'}
++                        options.tif = true;
++                    case {'.jpg', '.jpeg'}
++                        options.jpg = true;
++                    case '.png'
++                        options.png = true;
++                    case '.bmp'
++                        options.bmp = true;
++                    case '.eps'
++                        options.eps = true;
++                    case '.pdf'
++                        options.pdf = true;
++                    case '.fig'
++                        % If no open figure, then load the specified .fig file and continue
++                        if isempty(fig)
++                            fig = openfig(varargin{a},'invisible');
++                            varargin{a} = fig;
++                            options.closeFig = true;
++                        else
++                            % save the current figure as the specified .fig file and exit
++                            saveas(fig(1),varargin{a});
++                            fig = -1;
++                            return
++                        end
++                    case '.svg'
++                        msg = ['SVG output is not supported by export_fig. Use one of the following alternatives:\n' ...
++                               '  1. saveas(gcf,''filename.svg'')\n' ...
++                               '  2. plot2svg utility: http://github.com/jschwizer99/plot2svg\n' ...
++                               '  3. export_fig to EPS/PDF, then convert to SVG using generic (non-Matlab) tools\n'];
++                        error(sprintf(msg)); %#ok<SPERR>
++                    otherwise
++                        options.name = varargin{a};
++                end
++            end
++        end
+     end
+-elseif isempty(options.resolution)
+-    options.resolution = 864;
+-end  
+ 
+-% Check we have a figure handle
+-if isempty(fig)
+-    error('No figure found');
+-end
++    % Quick bail-out if no figure found
++    if isempty(fig),  return;  end
+ 
+-% Set the default format
+-if ~isvector(options) && ~isbitmap(options)
+-    options.png = true;
+-end
++    % Do border padding with repsect to a cropped image
++    if options.bb_padding
++        options.crop = true;
++    end
+ 
+-% Check whether transparent background is wanted (old way)
+-if isequal(get(ancestor(fig(1), 'figure'), 'Color'), 'none')
+-    options.transparent = true;
+-end
++    % Set default anti-aliasing now we know the renderer
++    if options.aa_factor == 0
++        try isAA = strcmp(get(ancestor(fig, 'figure'), 'GraphicsSmoothing'), 'on'); catch, isAA = false; end
++        options.aa_factor = 1 + 2 * (~(using_hg2(fig) && isAA) | (options.renderer == 3));
++    end
+ 
+-% If requested, set the resolution to the native vertical resolution of the
+-% first suitable image found
+-if native && isbitmap(options)
+-    % Find a suitable image
+-    list = findobj(fig, 'Type', 'image', 'Tag', 'export_fig_native');
+-    if isempty(list)
+-        list = findobj(fig, 'Type', 'image', 'Visible', 'on');
++    % Convert user dir '~' to full path
++    if numel(options.name) > 2 && options.name(1) == '~' && (options.name(2) == '/' || options.name(2) == '\')
++        options.name = fullfile(char(java.lang.System.getProperty('user.home')), options.name(2:end));
+     end
+-    for hIm = list(:)'
+-        % Check height is >= 2
+-        height = size(get(hIm, 'CData'), 1);
+-        if height < 2
+-            continue
++
++    % Compute the magnification and resolution
++    if isempty(options.magnify)
++        if isempty(options.resolution)
++            options.magnify = 1;
++            options.resolution = 864;
++        else
++            options.magnify = options.resolution ./ get(0, 'ScreenPixelsPerInch');
+         end
+-        % Account for the image filling only part of the axes, or vice
+-        % versa
+-        yl = get(hIm, 'YData');
+-        if isscalar(yl)
+-            yl = [yl(1)-0.5 yl(1)+height+0.5];
+-        else
+-            if ~diff(yl)
++    elseif isempty(options.resolution)
++        options.resolution = 864;
++    end
++
++    % Set the default format
++    if ~isvector(options) && ~isbitmap(options)
++        options.png = true;
++    end
++
++    % Check whether transparent background is wanted (old way)
++    if isequal(get(ancestor(fig(1), 'figure'), 'Color'), 'none')
++        options.transparent = true;
++    end
++
++    % If requested, set the resolution to the native vertical resolution of the
++    % first suitable image found
++    if native && isbitmap(options)
++        % Find a suitable image
++        list = findall(fig, 'Type','image', 'Tag','export_fig_native');
++        if isempty(list)
++            list = findall(fig, 'Type','image', 'Visible','on');
++        end
++        for hIm = list(:)'
++            % Check height is >= 2
++            height = size(get(hIm, 'CData'), 1);
++            if height < 2
+                 continue
+             end
+-            yl = yl + [-0.5 0.5] * (diff(yl) / (height - 1));
++            % Account for the image filling only part of the axes, or vice
++            % versa
++            yl = get(hIm, 'YData');
++            if isscalar(yl)
++                yl = [yl(1)-0.5 yl(1)+height+0.5];
++            else
++                if ~diff(yl)
++                    continue
++                end
++                yl = yl + [-0.5 0.5] * (diff(yl) / (height - 1));
++            end
++            hAx = get(hIm, 'Parent');
++            yl2 = get(hAx, 'YLim');
++            % Find the pixel height of the axes
++            oldUnits = get(hAx, 'Units');
++            set(hAx, 'Units', 'pixels');
++            pos = get(hAx, 'Position');
++            set(hAx, 'Units', oldUnits);
++            if ~pos(4)
++                continue
++            end
++            % Found a suitable image
++            % Account for stretch-to-fill being disabled
++            pbar = get(hAx, 'PlotBoxAspectRatio');
++            pos = min(pos(4), pbar(2)*pos(3)/pbar(1));
++            % Set the magnification to give native resolution
++            options.magnify = abs((height * diff(yl2)) / (pos * diff(yl)));  % magnification must never be negative: issue #103
++            break
+         end
+-        hAx = get(hIm, 'Parent');
+-        yl2 = get(hAx, 'YLim');
+-        % Find the pixel height of the axes
+-        oldUnits = get(hAx, 'Units');
+-        set(hAx, 'Units', 'pixels');
+-        pos = get(hAx, 'Position');
+-        set(hAx, 'Units', oldUnits);
+-        if ~pos(4)
+-            continue
+-        end
+-        % Found a suitable image
+-        % Account for stretch-to-fill being disabled
+-        pbar = get(hAx, 'PlotBoxAspectRatio');
+-        pos = min(pos(4), pbar(2)*pos(3)/pbar(1));
+-        % Set the magnification to give native resolution
+-        options.magnify = (height * diff(yl2)) / (pos * diff(yl));
+-        break
+     end
+ end
+-end
+ 
+ function A = downsize(A, factor)
+-% Downsample an image
+-if factor == 1
+-    % Nothing to do
+-    return
+-end
+-try
+-    % Faster, but requires image processing toolbox
+-    A = imresize(A, 1/factor, 'bilinear');
+-catch
+-    % No image processing toolbox - resize manually
+-    % Lowpass filter - use Gaussian as is separable, so faster
+-    % Compute the 1d Gaussian filter
+-    filt = (-factor-1:factor+1) / (factor * 0.6);
+-    filt = exp(-filt .* filt);
+-    % Normalize the filter
+-    filt = single(filt / sum(filt));
+-    % Filter the image
+-    padding = floor(numel(filt) / 2);
+-    for a = 1:size(A, 3)
+-        A(:,:,a) = conv2(filt, filt', single(A([ones(1, padding) 1:end repmat(end, 1, padding)],[ones(1, padding) 1:end repmat(end, 1, padding)],a)), 'valid');
++    % Downsample an image
++    if factor == 1
++        % Nothing to do
++        return
+     end
+-    % Subsample
+-    A = A(1+floor(mod(end-1, factor)/2):factor:end,1+floor(mod(end-1, factor)/2):factor:end,:);
++    try
++        % Faster, but requires image processing toolbox
++        A = imresize(A, 1/factor, 'bilinear');
++    catch
++        % No image processing toolbox - resize manually
++        % Lowpass filter - use Gaussian as is separable, so faster
++        % Compute the 1d Gaussian filter
++        filt = (-factor-1:factor+1) / (factor * 0.6);
++        filt = exp(-filt .* filt);
++        % Normalize the filter
++        filt = single(filt / sum(filt));
++        % Filter the image
++        padding = floor(numel(filt) / 2);
++        for a = 1:size(A, 3)
++            A(:,:,a) = conv2(filt, filt', single(A([ones(1, padding) 1:end repmat(end, 1, padding)],[ones(1, padding) 1:end repmat(end, 1, padding)],a)), 'valid');
++        end
++        % Subsample
++        A = A(1+floor(mod(end-1, factor)/2):factor:end,1+floor(mod(end-1, factor)/2):factor:end,:);
++    end
+ end
+-end
+ 
+ function A = rgb2grey(A)
+-A = cast(reshape(reshape(single(A), [], 3) * single([0.299; 0.587; 0.114]), size(A, 1), size(A, 2)), class(A));
++    A = cast(reshape(reshape(single(A), [], 3) * single([0.299; 0.587; 0.114]), size(A, 1), size(A, 2)), class(A)); %#ok<ZEROLIKE>
+ end
+ 
+ function A = check_greyscale(A)
+-% Check if the image is greyscale
+-if size(A, 3) == 3 && ...
+-        all(reshape(A(:,:,1) == A(:,:,2), [], 1)) && ...
+-        all(reshape(A(:,:,2) == A(:,:,3), [], 1))
+-    A = A(:,:,1); % Save only one channel for 8-bit output
++    % Check if the image is greyscale
++    if size(A, 3) == 3 && ...
++            all(reshape(A(:,:,1) == A(:,:,2), [], 1)) && ...
++            all(reshape(A(:,:,2) == A(:,:,3), [], 1))
++        A = A(:,:,1); % Save only one channel for 8-bit output
++    end
+ end
+-end
+ 
+ function eps_remove_background(fname, count)
+-% Remove the background of an eps file
+-% Open the file
+-fh = fopen(fname, 'r+');
+-if fh == -1
+-    error('Not able to open file %s.', fname);
+-end
+-% Read the file line by line
+-while count
+-    % Get the next line
+-    l = fgets(fh);
+-    if isequal(l, -1)
+-        break; % Quit, no rectangle found
++    % Remove the background of an eps file
++    % Open the file
++    fh = fopen(fname, 'r+');
++    if fh == -1
++        error('Not able to open file %s.', fname);
+     end
+-    % Check if the line contains the background rectangle
+-    if isequal(regexp(l, ' *0 +0 +\d+ +\d+ +r[fe] *[\n\r]+', 'start'), 1)
+-        % Set the line to whitespace and quit
+-        l(1:regexp(l, '[\n\r]', 'start', 'once')-1) = ' ';
+-        fseek(fh, -numel(l), 0);
+-        fprintf(fh, l);
+-        % Reduce the count
+-        count = count - 1;
++    % Read the file line by line
++    while count
++        % Get the next line
++        l = fgets(fh);
++        if isequal(l, -1)
++            break; % Quit, no rectangle found
++        end
++        % Check if the line contains the background rectangle
++        if isequal(regexp(l, ' *0 +0 +\d+ +\d+ +r[fe] *[\n\r]+', 'start'), 1)
++            % Set the line to whitespace and quit
++            l(1:regexp(l, '[\n\r]', 'start', 'once')-1) = ' ';
++            fseek(fh, -numel(l), 0);
++            fprintf(fh, l);
++            % Reduce the count
++            count = count - 1;
++        end
+     end
++    % Close the file
++    fclose(fh);
+ end
+-% Close the file
+-fclose(fh);
+-end
+ 
+ function b = isvector(options)
+-b = options.pdf || options.eps;
++    b = options.pdf || options.eps;
+ end
+ 
+ function b = isbitmap(options)
+-b = options.png || options.tif || options.jpg || options.bmp || options.im || options.alpha;
++    b = options.png || options.tif || options.jpg || options.bmp || options.im || options.alpha;
+ end
+ 
+ % Helper function
+ function A = make_cell(A)
+-if ~iscell(A)
+-    A = {A};
++    if ~iscell(A)
++        A = {A};
++    end
+ end
+-end
+ 
+ function add_bookmark(fname, bookmark_text)
+-% Adds a bookmark to the temporary EPS file after %%EndPageSetup
+-% Read in the file
+-fh = fopen(fname, 'r');
+-if fh == -1
+-    error('File %s not found.', fname);
+-end
+-try
+-    fstrm = fread(fh, '*char')';
+-catch ex
++    % Adds a bookmark to the temporary EPS file after %%EndPageSetup
++    % Read in the file
++    fh = fopen(fname, 'r');
++    if fh == -1
++        error('File %s not found.', fname);
++    end
++    try
++        fstrm = fread(fh, '*char')';
++    catch ex
++        fclose(fh);
++        rethrow(ex);
++    end
+     fclose(fh);
+-    rethrow(ex);
+-end
+-fclose(fh);
+ 
+-% Include standard pdfmark prolog to maximize compatibility
+-fstrm = strrep(fstrm, '%%BeginProlog', sprintf('%%%%BeginProlog\n/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse'));
+-% Add page bookmark
+-fstrm = strrep(fstrm, '%%EndPageSetup', sprintf('%%%%EndPageSetup\n[ /Title (%s) /OUT pdfmark',bookmark_text));
++    % Include standard pdfmark prolog to maximize compatibility
++    fstrm = strrep(fstrm, '%%BeginProlog', sprintf('%%%%BeginProlog\n/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse'));
++    % Add page bookmark
++    fstrm = strrep(fstrm, '%%EndPageSetup', sprintf('%%%%EndPageSetup\n[ /Title (%s) /OUT pdfmark',bookmark_text));
+ 
+-% Write out the updated file
+-fh = fopen(fname, 'w');
+-if fh == -1
+-    error('Unable to open %s for writing.', fname);
+-end
+-try
+-    fwrite(fh, fstrm, 'char*1');
+-catch ex
++    % Write out the updated file
++    fh = fopen(fname, 'w');
++    if fh == -1
++        error('Unable to open %s for writing.', fname);
++    end
++    try
++        fwrite(fh, fstrm, 'char*1');
++    catch ex
++        fclose(fh);
++        rethrow(ex);
++    end
+     fclose(fh);
+-    rethrow(ex);
+ end
+-fclose(fh);
+-end
+ 
+ function set_tick_mode(Hlims, ax)
+-% Set the tick mode of linear axes to manual
+-% Leave log axes alone as these are tricky
+-M = get(Hlims, [ax 'Scale']);
+-if ~iscell(M)
+-    M = {M};
++    % Set the tick mode of linear axes to manual
++    % Leave log axes alone as these are tricky
++    M = get(Hlims, [ax 'Scale']);
++    if ~iscell(M)
++        M = {M};
++    end
++    M = cellfun(@(c) strcmp(c, 'linear'), M);
++    set(Hlims(M), [ax 'TickMode'], 'manual');
++    %set(Hlims(M), [ax 'TickLabelMode'], 'manual');  % this hides exponent label in HG2!
+ end
+-M = cellfun(@(c) strcmp(c, 'linear'), M);
+-set(Hlims(M), [ax 'TickMode'], 'manual');
++
++function change_rgb_to_cmyk(fname)  % convert RGB => CMYK within an EPS file
++    % Do post-processing on the eps file
++    try
++        % Read the EPS file into memory
++        fstrm = read_write_entire_textfile(fname);
++
++        % Replace all gray-scale colors
++        fstrm = regexprep(fstrm, '\n([\d.]+) +GC\n', '\n0 0 0 ${num2str(1-str2num($1))} CC\n');
++        
++        % Replace all RGB colors
++        fstrm = regexprep(fstrm, '\n[0.]+ +[0.]+ +[0.]+ +RC\n', '\n0 0 0 1 CC\n');  % pure black
++        fstrm = regexprep(fstrm, '\n([\d.]+) +([\d.]+) +([\d.]+) +RC\n', '\n${sprintf(''%.4g '',[1-[str2num($1),str2num($2),str2num($3)]/max([str2num($1),str2num($2),str2num($3)]),1-max([str2num($1),str2num($2),str2num($3)])])} CC\n');
++
++        % Overwrite the file with the modified contents
++        read_write_entire_textfile(fname, fstrm);
++    catch
++        % never mind - leave as is...
++    end
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/ghostscript.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/ghostscript.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/ghostscript.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function varargout = ghostscript(cmd)
+ %GHOSTSCRIPT  Calls a local GhostScript executable with the input command
+ %
+ % Example:
+@@ -19,140 +20,172 @@
+ %   status - 0 iff command ran without problem.
+ %   result - Output from ghostscript.
+ 
+-% Copyright: Oliver Woodford, 2009-2013
+-
+-% Thanks to Jonas Dorn for the fix for the title of the uigetdir window on
+-% Mac OS.
+-% Thanks to Nathan Childress for the fix to the default location on 64-bit
+-% Windows systems.
+-% 27/4/11 - Find 64-bit Ghostscript on Windows. Thanks to Paul Durack and
+-% Shaun Kline for pointing out the issue
+-% 4/5/11 - Thanks to David Chorlian for pointing out an alternative
+-% location for gs on linux.
++% Copyright: Oliver Woodford, 2009-2015, Yair Altman 2015-
++%{
++% Thanks to Jonas Dorn for the fix for the title of the uigetdir window on Mac OS.
++% Thanks to Nathan Childress for the fix to default location on 64-bit Windows systems.
++% 27/04/11 - Find 64-bit Ghostscript on Windows. Thanks to Paul Durack and
++%            Shaun Kline for pointing out the issue
++% 04/05/11 - Thanks to David Chorlian for pointing out an alternative
++%            location for gs on linux.
+ % 12/12/12 - Add extra executable name on Windows. Thanks to Ratish
+-% Punnoose for highlighting the issue.
+-% 28/6/13 - Fix error using GS 9.07 in Linux. Many thanks to Jannick
+-% Steinbring for proposing the fix.
+-% 24/10/13 - Fix error using GS 9.07 in Linux. Many thanks to Johannes
+-% for the fix.
+-% 23/01/2014 - Add full path to ghostscript.txt in warning. Thanks to Koen
+-% Vermeer for raising the issue.
++%            Punnoose for highlighting the issue.
++% 28/06/13 - Fix error using GS 9.07 in Linux. Many thanks to Jannick
++%            Steinbring for proposing the fix.
++% 24/10/13 - Fix error using GS 9.07 in Linux. Many thanks to Johannes 
++%            for the fix.
++% 23/01/14 - Add full path to ghostscript.txt in warning. Thanks to Koen
++%            Vermeer for raising the issue.
++% 27/02/15 - If Ghostscript croaks, display suggested workarounds
++% 30/03/15 - Improved performance by caching status of GS path check, if ok
++% 14/05/15 - Clarified warning message in case GS path could not be saved
++% 29/05/15 - Avoid cryptic error in case the ghostscipt path cannot be saved (issue #74)
++%}
+ 
+-function varargout = ghostscript(cmd)
+-% Initialize any required system calls before calling ghostscript
+-shell_cmd = '';
+-if isunix
+-    shell_cmd = 'export LD_LIBRARY_PATH=""; '; % Avoids an error on Linux with GS 9.07
++    try
++        % Call ghostscript
++        [varargout{1:nargout}] = system([gs_command(gs_path()) cmd]);
++    catch err
++        % Display possible workarounds for Ghostscript croaks
++        url1 = 'https://github.com/altmany/export_fig/issues/12#issuecomment-61467998';  % issue #12
++        url2 = 'https://github.com/altmany/export_fig/issues/20#issuecomment-63826270';  % issue #20
++        hg2_str = ''; if using_hg2, hg2_str = ' or Matlab R2014a'; end
++        fprintf(2, 'Ghostscript error. Rolling back to GS 9.10%s may possibly solve this:\n * <a href="%s">%s</a> ',hg2_str,url1,url1);
++        if using_hg2
++            fprintf(2, '(GS 9.10)\n * <a href="%s">%s</a> (R2014a)',url2,url2);
++        end
++        fprintf('\n\n');
++        if ismac || isunix
++            url3 = 'https://github.com/altmany/export_fig/issues/27';  % issue #27
++            fprintf(2, 'Alternatively, this may possibly be due to a font path issue:\n * <a href="%s">%s</a>\n\n',url3,url3);
++            % issue #20
++            fpath = which(mfilename);
++            if isempty(fpath), fpath = [mfilename('fullpath') '.m']; end
++            fprintf(2, 'Alternatively, if you are using csh, modify shell_cmd from "export..." to "setenv ..."\nat the bottom of <a href="matlab:opentoline(''%s'',174)">%s</a>\n\n',fpath,fpath);
++        end
++        rethrow(err);
++    end
+ end
+-if ismac
+-    shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
+-end
+-% Call ghostscript
+-[varargout{1:nargout}] = system(sprintf('%s"%s" %s', shell_cmd, gs_path, cmd));
+-end
+ 
+ function path_ = gs_path
+-% Return a valid path
+-% Start with the currently set path
+-path_ = user_string('ghostscript');
+-% Check the path works
+-if check_gs_path(path_)
+-    return
+-end
+-% Check whether the binary is on the path
+-if ispc
+-    bin = {'gswin32c.exe', 'gswin64c.exe', 'gs'};
+-else
+-    bin = {'gs'};
+-end
+-for a = 1:numel(bin)
+-    path_ = bin{a};
+-    if check_store_gs_path(path_)
++    % Return a valid path
++    % Start with the currently set path
++    path_ = user_string('ghostscript');
++    % Check the path works
++    if check_gs_path(path_)
+         return
+     end
+-end
+-% Search the obvious places
+-if ispc
+-    default_location = 'C:\Program Files\gs\';
+-    dir_list = dir(default_location);
+-    if isempty(dir_list)
+-        default_location = 'C:\Program Files (x86)\gs\'; % Possible location on 64-bit systems 
++    % Check whether the binary is on the path
++    if ispc
++        bin = {'gswin32c.exe', 'gswin64c.exe', 'gs'};
++    else
++        bin = {'gs'};
++    end
++    for a = 1:numel(bin)
++        path_ = bin{a};
++        if check_store_gs_path(path_)
++            return
++        end
++    end
++    % Search the obvious places
++    if ispc
++        default_location = 'C:\Program Files\gs\';
+         dir_list = dir(default_location);
+-    end
+-    executable = {'\bin\gswin32c.exe', '\bin\gswin64c.exe'};
+-    ver_num = 0;
+-    % If there are multiple versions, use the newest
+-    for a = 1:numel(dir_list)
+-        ver_num2 = sscanf(dir_list(a).name, 'gs%g');
+-        if ~isempty(ver_num2) && ver_num2 > ver_num
+-            for b = 1:numel(executable)
+-                path2 = [default_location dir_list(a).name executable{b}];
+-                if exist(path2, 'file') == 2
+-                    path_ = path2;
+-                    ver_num = ver_num2;
++        if isempty(dir_list)
++            default_location = 'C:\Program Files (x86)\gs\'; % Possible location on 64-bit systems
++            dir_list = dir(default_location);
++        end
++        executable = {'\bin\gswin32c.exe', '\bin\gswin64c.exe'};
++        ver_num = 0;
++        % If there are multiple versions, use the newest
++        for a = 1:numel(dir_list)
++            ver_num2 = sscanf(dir_list(a).name, 'gs%g');
++            if ~isempty(ver_num2) && ver_num2 > ver_num
++                for b = 1:numel(executable)
++                    path2 = [default_location dir_list(a).name executable{b}];
++                    if exist(path2, 'file') == 2
++                        path_ = path2;
++                        ver_num = ver_num2;
++                    end
+                 end
+             end
+         end
+-    end
+-    if check_store_gs_path(path_)
+-        return
+-    end
+-else
+-    executable = {'/usr/bin/gs', '/usr/local/bin/gs'};
+-    for a = 1:numel(executable)
+-        path_ = executable{a};
+         if check_store_gs_path(path_)
+             return
+         end
++    else
++        executable = {'/usr/bin/gs', '/usr/local/bin/gs'};
++        for a = 1:numel(executable)
++            path_ = executable{a};
++            if check_store_gs_path(path_)
++                return
++            end
++        end
+     end
+-end
+-% Ask the user to enter the path
+-while 1
+-    if strncmp(computer, 'MAC', 3) % Is a Mac
+-        % Give separate warning as the uigetdir dialogue box doesn't have a
+-        % title
+-        uiwait(warndlg('Ghostscript not found. Please locate the program.'))
+-    end
+-    base = uigetdir('/', 'Ghostcript not found. Please locate the program.');
+-    if isequal(base, 0)
+-        % User hit cancel or closed window
+-        break;
+-    end
+-    base = [base filesep];
+-    bin_dir = {'', ['bin' filesep], ['lib' filesep]};
+-    for a = 1:numel(bin_dir)
+-        for b = 1:numel(bin)
+-            path_ = [base bin_dir{a} bin{b}];
+-            if exist(path_, 'file') == 2
+-                if check_store_gs_path(path_)
+-                    return
++    % Ask the user to enter the path
++    while true
++        if strncmp(computer, 'MAC', 3) % Is a Mac
++            % Give separate warning as the uigetdir dialogue box doesn't have a
++            % title
++            uiwait(warndlg('Ghostscript not found. Please locate the program.'))
++        end
++        base = uigetdir('/', 'Ghostcript not found. Please locate the program.');
++        if isequal(base, 0)
++            % User hit cancel or closed window
++            break;
++        end
++        base = [base filesep]; %#ok<AGROW>
++        bin_dir = {'', ['bin' filesep], ['lib' filesep]};
++        for a = 1:numel(bin_dir)
++            for b = 1:numel(bin)
++                path_ = [base bin_dir{a} bin{b}];
++                if exist(path_, 'file') == 2
++                    if check_store_gs_path(path_)
++                        return
++                    end
+                 end
+             end
+         end
+     end
++    error('Ghostscript not found. Have you installed it from www.ghostscript.com?');
+ end
+-error('Ghostscript not found. Have you installed it from www.ghostscript.com?');
+-end
+ 
+ function good = check_store_gs_path(path_)
+-% Check the path is valid
+-good = check_gs_path(path_);
+-if ~good
+-    return
++    % Check the path is valid
++    good = check_gs_path(path_);
++    if ~good
++        return
++    end
++    % Update the current default path to the path found
++    if ~user_string('ghostscript', path_)
++        filename = fullfile(fileparts(which('user_string.m')), '.ignore', 'ghostscript.txt');
++        warning('Path to ghostscript installation could not be saved in %s (perhaps a permissions issue). You can manually create this file and set its contents to %s, to improve performance in future invocations (this warning is safe to ignore).', filename, path_);
++        return
++    end
+ end
+-% Update the current default path to the path found
+-if ~user_string('ghostscript', path_)
+-    warning('Path to ghostscript installation could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'ghostscript.txt'));
+-    return
+-end
+-end
+ 
+ function good = check_gs_path(path_)
+-% Check the path is valid
+-shell_cmd = '';
+-if ismac
+-    shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
++    persistent isOk
++    if isempty(path_)
++        isOk = false;
++    elseif ~isequal(isOk,true)
++        % Check whether the path is valid
++        [status, message] = system([gs_command(path_) '-h']); %#ok<ASGLU>
++        isOk = status == 0;
++    end
++    good = isOk;
+ end
+-[good, message] = system(sprintf('%s"%s" -h', shell_cmd, path_));
+-good = good == 0;
++
++function cmd = gs_command(path_)
++    % Initialize any required system calls before calling ghostscript
++    % TODO: in Unix/Mac, find a way to determine whether to use "export" (bash) or "setenv" (csh/tcsh)
++    shell_cmd = '';
++    if isunix
++        shell_cmd = 'export LD_LIBRARY_PATH=""; '; % Avoids an error on Linux with GS 9.07
++    end
++    if ismac
++        shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
++    end
++    % Construct the command string
++    cmd = sprintf('%s"%s" ', shell_cmd, path_);
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/print2array.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/print2array.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/print2array.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function [A, bcol] = print2array(fig, res, renderer, gs_options)
+ %PRINT2ARRAY  Exports a figure to an image array
+ %
+ % Examples:
+@@ -5,6 +6,7 @@
+ %   A = print2array(figure_handle)
+ %   A = print2array(figure_handle, resolution)
+ %   A = print2array(figure_handle, resolution, renderer)
++%   A = print2array(figure_handle, resolution, renderer, gs_options)
+ %   [A bcol] = print2array(...)
+ %
+ % This function outputs a bitmap image of the given figure, at the desired
+@@ -19,180 +21,224 @@
+ %                resolution. Default: 1.
+ %   renderer - string containing the renderer paramater to be passed to
+ %              print. Default: '-opengl'.
++%   gs_options - optional ghostscript options (e.g.: '-dNoOutputFonts'). If
++%                multiple options are needed, enclose in call array: {'-a','-b'}
+ %
+ % OUT:
+ %   A - MxNx3 uint8 image of the figure.
+ %   bcol - 1x3 uint8 vector of the background color
+ 
+-% Copyright (C) Oliver Woodford 2008-2012
+-
++% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
++%{
+ % 05/09/11: Set EraseModes to normal when using opengl or zbuffer
+-%           renderers. Thanks to Pawel Kocieniewski for reporting the
+-%           issue.
+-% 21/09/11: Bug fix: unit8 -> uint8! Thanks to Tobias Lamour for reporting
+-%           the issue.
+-% 14/11/11: Bug fix: stop using hardcopy(), as it interfered with figure
+-%           size and erasemode settings. Makes it a bit slower, but more
+-%           reliable. Thanks to Phil Trinh and Meelis Lootus for reporting
+-%           the issues.
++%           renderers. Thanks to Pawel Kocieniewski for reporting the issue.
++% 21/09/11: Bug fix: unit8 -> uint8! Thanks to Tobias Lamour for reporting it.
++% 14/11/11: Bug fix: stop using hardcopy(), as it interfered with figure size
++%           and erasemode settings. Makes it a bit slower, but more reliable.
++%           Thanks to Phil Trinh and Meelis Lootus for reporting the issues.
+ % 09/12/11: Pass font path to ghostscript.
+ % 27/01/12: Bug fix affecting painters rendering tall figures. Thanks to
+ %           Ken Campbell for reporting it.
+-% 03/04/12: Bug fix to median input. Thanks to Andy Matthews for reporting
+-%           it.
++% 03/04/12: Bug fix to median input. Thanks to Andy Matthews for reporting it.
+ % 26/10/12: Set PaperOrientation to portrait. Thanks to Michael Watts for
+ %           reporting the issue.
++% 26/02/15: If temp dir is not writable, use the current folder for temp
++%           EPS/TIF files (Javier Paredes)
++% 27/02/15: Display suggested workarounds to internal print() error (issue #16)
++% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
++% 10/03/15: Fixed minor warning reported by Paul Soderlind; fixed code indentation
++% 28/05/15: Fixed issue #69: patches with LineWidth==0.75 appear wide (internal bug in Matlab's print() func)
++% 07/07/15: Fixed issue #83: use numeric handles in HG1
++%}
+ 
+-function [A, bcol] = print2array(fig, res, renderer)
+-% Generate default input arguments, if needed
+-if nargin < 2
+-    res = 1;
+-    if nargin < 1
+-        fig = gcf;
++    % Generate default input arguments, if needed
++    if nargin < 2
++        res = 1;
++        if nargin < 1
++            fig = gcf;
++        end
+     end
+-end
+-% Warn if output is large
+-old_mode = get(fig, 'Units');
+-set(fig, 'Units', 'pixels');
+-px = get(fig, 'Position');
+-set(fig, 'Units', old_mode);
+-npx = prod(px(3:4)*res)/1e6;
+-if npx > 30
+-    % 30M pixels or larger!
+-    warning('MATLAB:LargeImage', 'print2array generating a %.1fM pixel image. This could be slow and might also cause memory problems.', npx);
+-end
+-% Retrieve the background colour
+-bcol = get(fig, 'Color');
+-% Set the resolution parameter
+-res_str = ['-r' num2str(ceil(get(0, 'ScreenPixelsPerInch')*res))];
+-% Generate temporary file name
+-tmp_nam = [tempname '.tif'];
+-if nargin > 2 && strcmp(renderer, '-painters')
+-    % Print to eps file
+-    tmp_eps = [tempname '.eps'];
+-    print2eps(tmp_eps, fig, 0, renderer, '-loose');
++    % Warn if output is large
++    old_mode = get(fig, 'Units');
++    set(fig, 'Units', 'pixels');
++    px = get(fig, 'Position');
++    set(fig, 'Units', old_mode);
++    npx = prod(px(3:4)*res)/1e6;
++    if npx > 30
++        % 30M pixels or larger!
++        warning('MATLAB:LargeImage', 'print2array generating a %.1fM pixel image. This could be slow and might also cause memory problems.', npx);
++    end
++    % Retrieve the background colour
++    bcol = get(fig, 'Color');
++    % Set the resolution parameter
++    res_str = ['-r' num2str(ceil(get(0, 'ScreenPixelsPerInch')*res))];
++    % Generate temporary file name
++    tmp_nam = [tempname '.tif'];
+     try
+-        % Initialize the command to export to tiff using ghostscript
+-        cmd_str = ['-dEPSCrop -q -dNOPAUSE -dBATCH ' res_str ' -sDEVICE=tiff24nc'];
+-        % Set the font path
+-        fp = font_path();
+-        if ~isempty(fp)
+-            cmd_str = [cmd_str ' -sFONTPATH="' fp '"'];
++        % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
++        fid = fopen(tmp_nam,'w');
++        fwrite(fid,1);
++        fclose(fid);
++        delete(tmp_nam);  % cleanup
++        isTempDirOk = true;
++    catch
++        % Temp dir is not writable, so use the current folder
++        [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
++        fpath = pwd;
++        tmp_nam = fullfile(fpath,[fname fext]);
++        isTempDirOk = false;
++    end
++    % Enable users to specify optional ghostscript options (issue #36)
++    if nargin > 3 && ~isempty(gs_options)
++        if iscell(gs_options)
++            gs_options = sprintf(' %s',gs_options{:});
++        elseif ~ischar(gs_options)
++            error('gs_options input argument must be a string or cell-array of strings');
++        else
++            gs_options = [' ' gs_options];
+         end
+-        % Add the filenames
+-        cmd_str = [cmd_str ' -sOutputFile="' tmp_nam '" "' tmp_eps '"'];
+-        % Execute the ghostscript command
+-        ghostscript(cmd_str);
+-    catch me
+-        % Delete the intermediate file
+-        delete(tmp_eps);
+-        rethrow(me);
++    else
++        gs_options = '';
+     end
+-    % Delete the intermediate file
+-    delete(tmp_eps);
+-    % Read in the generated bitmap
+-    A = imread(tmp_nam);
+-    % Delete the temporary bitmap file
+-    delete(tmp_nam);
+-    % Set border pixels to the correct colour
+-    if isequal(bcol, 'none')
+-        bcol = [];
+-    elseif isequal(bcol, [1 1 1])
+-        bcol = uint8([255 255 255]);
+-    else
+-        for l = 1:size(A, 2)
+-            if ~all(reshape(A(:,l,:) == 255, [], 1))
+-                break;
+-            end
++    if nargin > 2 && strcmp(renderer, '-painters')
++        % Print to eps file
++        if isTempDirOk
++            tmp_eps = [tempname '.eps'];
++        else
++            tmp_eps = fullfile(fpath,[fname '.eps']);
+         end
+-        for r = size(A, 2):-1:l
+-            if ~all(reshape(A(:,r,:) == 255, [], 1))
+-                break;
++        print2eps(tmp_eps, fig, 0, renderer, '-loose');
++        try
++            % Initialize the command to export to tiff using ghostscript
++            cmd_str = ['-dEPSCrop -q -dNOPAUSE -dBATCH ' res_str ' -sDEVICE=tiff24nc'];
++            % Set the font path
++            fp = font_path();
++            if ~isempty(fp)
++                cmd_str = [cmd_str ' -sFONTPATH="' fp '"'];
+             end
++            % Add the filenames
++            cmd_str = [cmd_str ' -sOutputFile="' tmp_nam '" "' tmp_eps '"' gs_options];
++            % Execute the ghostscript command
++            ghostscript(cmd_str);
++        catch me
++            % Delete the intermediate file
++            delete(tmp_eps);
++            rethrow(me);
+         end
+-        for t = 1:size(A, 1)
+-            if ~all(reshape(A(t,:,:) == 255, [], 1))
+-                break;
++        % Delete the intermediate file
++        delete(tmp_eps);
++        % Read in the generated bitmap
++        A = imread(tmp_nam);
++        % Delete the temporary bitmap file
++        delete(tmp_nam);
++        % Set border pixels to the correct colour
++        if isequal(bcol, 'none')
++            bcol = [];
++        elseif isequal(bcol, [1 1 1])
++            bcol = uint8([255 255 255]);
++        else
++            for l = 1:size(A, 2)
++                if ~all(reshape(A(:,l,:) == 255, [], 1))
++                    break;
++                end
+             end
+-        end
+-        for b = size(A, 1):-1:t
+-            if ~all(reshape(A(b,:,:) == 255, [], 1))
+-                break;
++            for r = size(A, 2):-1:l
++                if ~all(reshape(A(:,r,:) == 255, [], 1))
++                    break;
++                end
+             end
++            for t = 1:size(A, 1)
++                if ~all(reshape(A(t,:,:) == 255, [], 1))
++                    break;
++                end
++            end
++            for b = size(A, 1):-1:t
++                if ~all(reshape(A(b,:,:) == 255, [], 1))
++                    break;
++                end
++            end
++            bcol = uint8(median(single([reshape(A(:,[l r],:), [], size(A, 3)); reshape(A([t b],:,:), [], size(A, 3))]), 1));
++            for c = 1:size(A, 3)
++                A(:,[1:l-1, r+1:end],c) = bcol(c);
++                A([1:t-1, b+1:end],:,c) = bcol(c);
++            end
+         end
+-        bcol = uint8(median(single([reshape(A(:,[l r],:), [], size(A, 3)); reshape(A([t b],:,:), [], size(A, 3))]), 1));
+-        for c = 1:size(A, 3)
+-            A(:,[1:l-1, r+1:end],c) = bcol(c);
+-            A([1:t-1, b+1:end],:,c) = bcol(c);
++    else
++        if nargin < 3
++            renderer = '-opengl';
+         end
+-    end
+-else
+-    if nargin < 3
+-        renderer = '-opengl';
+-    end
+-    err = false;
+-    % Set paper size
+-    old_pos_mode = get(fig, 'PaperPositionMode');
+-    old_orientation = get(fig, 'PaperOrientation');
+-    set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
+-    try
+-        % Print to tiff file
+-        print(fig, renderer, res_str, '-dtiff', tmp_nam);
+-        % Read in the printed file
+-        A = imread(tmp_nam);
+-        % Delete the temporary file
+-        delete(tmp_nam);
+-    catch ex
+-        err = true;
+-    end
+-    % Reset paper size
+-    set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
+-    % Throw any error that occurred
+-    if err
+-        rethrow(ex);
+-    end
+-    % Set the background color
+-    if isequal(bcol, 'none')
+-        bcol = [];
+-    else
+-        bcol = bcol * 255;
+-        if isequal(bcol, round(bcol))
+-            bcol = uint8(bcol);
++        err = false;
++        % Set paper size
++        old_pos_mode = get(fig, 'PaperPositionMode');
++        old_orientation = get(fig, 'PaperOrientation');
++        set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
++        try
++            % Workaround for issue #69: patches with LineWidth==0.75 appear wide (internal bug in Matlab's print() function)
++            fp = [];  % in case we get an error below
++            fp = findall(fig, 'Type','patch', 'LineWidth',0.75);
++            set(fp, 'LineWidth',0.5);
++            % Fix issue #83: use numeric handles in HG1
++            if ~using_hg2(fig),  fig = double(fig);  end
++            % Print to tiff file
++            print(fig, renderer, res_str, '-dtiff', tmp_nam);
++            % Read in the printed file
++            A = imread(tmp_nam);
++            % Delete the temporary file
++            delete(tmp_nam);
++        catch ex
++            err = true;
++        end
++        set(fp, 'LineWidth',0.75);  % restore original figure appearance
++        % Reset paper size
++        set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
++        % Throw any error that occurred
++        if err
++            % Display suggested workarounds to internal print() error (issue #16)
++            fprintf(2, 'An error occured with Matlab''s builtin print function.\nTry setting the figure Renderer to ''painters'' or use opengl(''software'').\n\n');
++            rethrow(ex);
++        end
++        % Set the background color
++        if isequal(bcol, 'none')
++            bcol = [];
+         else
+-            bcol = squeeze(A(1,1,:));
++            bcol = bcol * 255;
++            if isequal(bcol, round(bcol))
++                bcol = uint8(bcol);
++            else
++                bcol = squeeze(A(1,1,:));
++            end
+         end
+     end
+-end
+-% Check the output size is correct
+-if isequal(res, round(res))
+-    px = [px([4 3])*res 3];
+-    if ~isequal(size(A), px)
+-        % Correct the output size
+-        A = A(1:min(end,px(1)),1:min(end,px(2)),:);
++    % Check the output size is correct
++    if isequal(res, round(res))
++        px = round([px([4 3])*res 3]);  % round() to avoid an indexing warning below
++        if ~isequal(size(A), px)
++            % Correct the output size
++            A = A(1:min(end,px(1)),1:min(end,px(2)),:);
++        end
+     end
+ end
+-end
+ 
+ % Function to return (and create, where necessary) the font path
+ function fp = font_path()
+-fp = user_string('gs_font_path');
+-if ~isempty(fp)
+-    return
+-end
+-% Create the path
+-% Start with the default path
+-fp = getenv('GS_FONTPATH');
+-% Add on the typical directories for a given OS
+-if ispc
++    fp = user_string('gs_font_path');
+     if ~isempty(fp)
+-        fp = [fp ';'];
++        return
+     end
+-    fp = [fp getenv('WINDIR') filesep 'Fonts'];
+-else
+-    if ~isempty(fp)
+-        fp = [fp ':'];
++    % Create the path
++    % Start with the default path
++    fp = getenv('GS_FONTPATH');
++    % Add on the typical directories for a given OS
++    if ispc
++        if ~isempty(fp)
++            fp = [fp ';'];
++        end
++        fp = [fp getenv('WINDIR') filesep 'Fonts'];
++    else
++        if ~isempty(fp)
++            fp = [fp ':'];
++        end
++        fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
+     end
+-    fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
++    user_string('gs_font_path', fp);
+ end
+-user_string('gs_font_path', fp);
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/pdftops.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/pdftops.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/pdftops.m	(revision 19571)
+@@ -28,82 +28,86 @@
+ % Thanks to Christoph Hertel for pointing out a bug in check_xpdf_path
+ % under linux.
+ % 23/01/2014 - Add full path to pdftops.txt in warning.
++% 27/05/2015 - Fixed alert in case of missing pdftops; fixed code indentation
+ 
+-% Call pdftops
+-[varargout{1:nargout}] = system(sprintf('"%s" %s', xpdf_path, cmd));
++    % Call pdftops
++    [varargout{1:nargout}] = system(sprintf('"%s" %s', xpdf_path, cmd));
+ end
+ 
+ function path_ = xpdf_path
+-% Return a valid path
+-% Start with the currently set path
+-path_ = user_string('pdftops');
+-% Check the path works
+-if check_xpdf_path(path_)
+-    return
+-end
+-% Check whether the binary is on the path
+-if ispc
+-    bin = 'pdftops.exe';
+-else
+-    bin = 'pdftops';
+-end
+-if check_store_xpdf_path(bin)
+-    path_ = bin;
+-    return
+-end
+-% Search the obvious places
+-if ispc
+-    path_ = 'C:\Program Files\xpdf\pdftops.exe';
+-else
+-    path_ = '/usr/local/bin/pdftops';
+-end
+-if check_store_xpdf_path(path_)
+-    return
+-end
+-% Ask the user to enter the path
+-while 1
+-    if strncmp(computer,'MAC',3) % Is a Mac
+-        % Give separate warning as the uigetdir dialogue box doesn't have a
+-        % title
+-        uiwait(warndlg('Pdftops not found. Please locate the program, or install xpdf-tools from http://users.phg-online.de/tk/MOSXS/.'))
++    % Return a valid path
++    % Start with the currently set path
++    path_ = user_string('pdftops');
++    % Check the path works
++    if check_xpdf_path(path_)
++        return
+     end
+-    base = uigetdir('/', 'Pdftops not found. Please locate the program.');
+-    if isequal(base, 0)
+-        % User hit cancel or closed window
+-        break;
++    % Check whether the binary is on the path
++    if ispc
++        bin = 'pdftops.exe';
++    else
++        bin = 'pdftops';
+     end
+-    base = [base filesep];
+-    bin_dir = {'', ['bin' filesep], ['lib' filesep]};
+-    for a = 1:numel(bin_dir)
+-        path_ = [base bin_dir{a} bin];
+-        if exist(path_, 'file') == 2
+-            break;
+-        end
++    if check_store_xpdf_path(bin)
++        path_ = bin;
++        return
+     end
++    % Search the obvious places
++    if ispc
++        path_ = 'C:\Program Files\xpdf\pdftops.exe';
++    else
++        path_ = '/usr/local/bin/pdftops';
++    end
+     if check_store_xpdf_path(path_)
+         return
+     end
++    % Ask the user to enter the path
++    while 1
++        errMsg = 'Pdftops not found. Please locate the program, or install xpdf-tools from ';
++        url = 'http://foolabs.com/xpdf';
++        fprintf(2, '%s\n', [errMsg '<a href="matlab:web(''-browser'',''' url ''');">' url '</a>']);
++        errMsg = [errMsg url]; %#ok<AGROW>
++        if strncmp(computer,'MAC',3) % Is a Mac
++            % Give separate warning as the MacOS uigetdir dialogue box doesn't have a title
++            uiwait(warndlg(errMsg))
++        end
++        base = uigetdir('/', errMsg);
++        if isequal(base, 0)
++            % User hit cancel or closed window
++            break;
++        end
++        base = [base filesep]; %#ok<AGROW>
++        bin_dir = {'', ['bin' filesep], ['lib' filesep]};
++        for a = 1:numel(bin_dir)
++            path_ = [base bin_dir{a} bin];
++            if exist(path_, 'file') == 2
++                break;
++            end
++        end
++        if check_store_xpdf_path(path_)
++            return
++        end
++    end
++    error('pdftops executable not found.');
+ end
+-error('pdftops executable not found.');
+-end
+ 
+ function good = check_store_xpdf_path(path_)
+-% Check the path is valid
+-good = check_xpdf_path(path_);
+-if ~good
+-    return
++    % Check the path is valid
++    good = check_xpdf_path(path_);
++    if ~good
++        return
++    end
++    % Update the current default path to the path found
++    if ~user_string('pdftops', path_)
++        warning('Path to pdftops executable could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'pdftops.txt'));
++        return
++    end
+ end
+-% Update the current default path to the path found
+-if ~user_string('pdftops', path_)
+-    warning('Path to pdftops executable could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'pdftops.txt'));
+-    return
+-end
+-end
+ 
+ function good = check_xpdf_path(path_)
+-% Check the path is valid
+-[good, message] = system(sprintf('"%s" -h', path_));
+-% system returns good = 1 even when the command runs
+-% Look for something distinct in the help text
+-good = ~isempty(strfind(message, 'PostScript'));
++    % Check the path is valid
++    [good, message] = system(sprintf('"%s" -h', path_)); %#ok<ASGLU>
++    % system returns good = 1 even when the command runs
++    % Look for something distinct in the help text
++    good = ~isempty(strfind(message, 'PostScript'));
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/isolate_axes.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/isolate_axes.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/isolate_axes.m	(revision 19571)
+@@ -1,3 +1,4 @@
++function fh = isolate_axes(ah, vis)
+ %ISOLATE_AXES Isolate the specified axes in a figure on their own
+ %
+ % Examples:
+@@ -21,99 +22,109 @@
+ % Copyright (C) Oliver Woodford 2011-2013
+ 
+ % Thank you to Rosella Blatt for reporting a bug to do with axes in GUIs
+-% 16/3/2012 Moved copyfig to its own function. Thanks to Bob Fratantonio
+-% for pointing out that the function is also used in export_fig.m.
+-% 12/12/12 - Add support for isolating uipanels. Thanks to michael for
+-% suggesting it.
+-% 08/10/13 - Bug fix to allchildren suggested by Will Grant (many thanks!).
+-% 05/12/13 - Bug fix to axes having different units. Thanks to Remington
+-% Reid for reporting the issue.
++% 16/03/12: Moved copyfig to its own function. Thanks to Bob Fratantonio
++%           for pointing out that the function is also used in export_fig.m
++% 12/12/12: Add support for isolating uipanels. Thanks to michael for suggesting it
++% 08/10/13: Bug fix to allchildren suggested by Will Grant (many thanks!)
++% 05/12/13: Bug fix to axes having different units. Thanks to Remington Reid for reporting
++% 21/04/15: Bug fix for exporting uipanels with legend/colorbar on HG1 (reported by Alvaro
++%           on FEX page as a comment on 24-Apr-2014); standardized indentation & help section
++% 22/04/15: Bug fix: legends and colorbars were not exported when exporting axes handle in HG2
+ 
+-function fh = isolate_axes(ah, vis)
+-% Make sure we have an array of handles
+-if ~all(ishandle(ah))
+-    error('ah must be an array of handles');
+-end
+-% Check that the handles are all for axes or uipanels, and are all in the same figure
+-fh = ancestor(ah(1), 'figure');
+-nAx = numel(ah);
+-for a = 1:nAx
+-    if ~ismember(get(ah(a), 'Type'), {'axes', 'uipanel'})
+-        error('All handles must be axes or uipanel handles.');
++    % Make sure we have an array of handles
++    if ~all(ishandle(ah))
++        error('ah must be an array of handles');
+     end
+-    if ~isequal(ancestor(ah(a), 'figure'), fh)
+-        error('Axes must all come from the same figure.');
++    % Check that the handles are all for axes or uipanels, and are all in the same figure
++    fh = ancestor(ah(1), 'figure');
++    nAx = numel(ah);
++    for a = 1:nAx
++        if ~ismember(get(ah(a), 'Type'), {'axes', 'uipanel'})
++            error('All handles must be axes or uipanel handles.');
++        end
++        if ~isequal(ancestor(ah(a), 'figure'), fh)
++            error('Axes must all come from the same figure.');
++        end
+     end
+-end
+-% Tag the objects so we can find them in the copy
+-old_tag = get(ah, 'Tag');
+-if nAx == 1
+-    old_tag = {old_tag};
+-end
+-set(ah, 'Tag', 'ObjectToCopy');
+-% Create a new figure exactly the same as the old one
+-fh = copyfig(fh); %copyobj(fh, 0);
+-if nargin < 2 || ~vis
+-    set(fh, 'Visible', 'off');
+-end
+-% Reset the object tags
+-for a = 1:nAx
+-    set(ah(a), 'Tag', old_tag{a});
+-end
+-% Find the objects to save
+-ah = findall(fh, 'Tag', 'ObjectToCopy');
+-if numel(ah) ~= nAx
+-    close(fh);
+-    error('Incorrect number of objects found.');
+-end
+-% Set the axes tags to what they should be
+-for a = 1:nAx
+-    set(ah(a), 'Tag', old_tag{a});
+-end
+-% Keep any legends and colorbars which overlap the subplots
+-lh = findall(fh, 'Type', 'axes', '-and', {'Tag', 'legend', '-or', 'Tag', 'Colorbar'});
+-nLeg = numel(lh);
+-if nLeg > 0
+-    set([ah(:); lh(:)], 'Units', 'normalized');
+-    ax_pos = get(ah, 'OuterPosition');
+-    if nAx > 1
+-        ax_pos = cell2mat(ax_pos(:));
++    % Tag the objects so we can find them in the copy
++    old_tag = get(ah, 'Tag');
++    if nAx == 1
++        old_tag = {old_tag};
+     end
+-    ax_pos(:,3:4) = ax_pos(:,3:4) + ax_pos(:,1:2);
+-    leg_pos = get(lh, 'OuterPosition');
+-    if nLeg > 1;
+-        leg_pos = cell2mat(leg_pos);
++    set(ah, 'Tag', 'ObjectToCopy');
++    % Create a new figure exactly the same as the old one
++    fh = copyfig(fh); %copyobj(fh, 0);
++    if nargin < 2 || ~vis
++        set(fh, 'Visible', 'off');
+     end
+-    leg_pos(:,3:4) = leg_pos(:,3:4) + leg_pos(:,1:2);
+-    ax_pos = shiftdim(ax_pos, -1);
+-    % Overlap test
+-    M = bsxfun(@lt, leg_pos(:,1), ax_pos(:,:,3)) & ...
+-        bsxfun(@lt, leg_pos(:,2), ax_pos(:,:,4)) & ...
+-        bsxfun(@gt, leg_pos(:,3), ax_pos(:,:,1)) & ...
+-        bsxfun(@gt, leg_pos(:,4), ax_pos(:,:,2));
+-    ah = [ah; lh(any(M, 2))];
++    % Reset the object tags
++    for a = 1:nAx
++        set(ah(a), 'Tag', old_tag{a});
++    end
++    % Find the objects to save
++    ah = findall(fh, 'Tag', 'ObjectToCopy');
++    if numel(ah) ~= nAx
++        close(fh);
++        error('Incorrect number of objects found.');
++    end
++    % Set the axes tags to what they should be
++    for a = 1:nAx
++        set(ah(a), 'Tag', old_tag{a});
++    end
++    % Keep any legends and colorbars which overlap the subplots
++    % Note: in HG1 these are axes objects; in HG2 they are separate objects, therefore we
++    %       don't test for the type, only the tag (hopefully nobody but Matlab uses them!)
++    lh = findall(fh, 'Tag', 'legend', '-or', 'Tag', 'Colorbar');
++    nLeg = numel(lh);
++    if nLeg > 0
++        set([ah(:); lh(:)], 'Units', 'normalized');
++        try
++            ax_pos = get(ah, 'OuterPosition'); % axes and figures have the OuterPosition property
++        catch
++            ax_pos = get(ah, 'Position'); % uipanels only have Position, not OuterPosition
++        end
++        if nAx > 1
++            ax_pos = cell2mat(ax_pos(:));
++        end
++        ax_pos(:,3:4) = ax_pos(:,3:4) + ax_pos(:,1:2);
++        try
++            leg_pos = get(lh, 'OuterPosition');
++        catch
++            leg_pos = get(lh, 'Position');  % No OuterPosition in HG2, only in HG1
++        end
++        if nLeg > 1;
++            leg_pos = cell2mat(leg_pos);
++        end
++        leg_pos(:,3:4) = leg_pos(:,3:4) + leg_pos(:,1:2);
++        ax_pos = shiftdim(ax_pos, -1);
++        % Overlap test
++        M = bsxfun(@lt, leg_pos(:,1), ax_pos(:,:,3)) & ...
++            bsxfun(@lt, leg_pos(:,2), ax_pos(:,:,4)) & ...
++            bsxfun(@gt, leg_pos(:,3), ax_pos(:,:,1)) & ...
++            bsxfun(@gt, leg_pos(:,4), ax_pos(:,:,2));
++        ah = [ah; lh(any(M, 2))];
++    end
++    % Get all the objects in the figure
++    axs = findall(fh);
++    % Delete everything except for the input objects and associated items
++    delete(axs(~ismember(axs, [ah; allchildren(ah); allancestors(ah)])));
+ end
+-% Get all the objects in the figure
+-axs = findall(fh);
+-% Delete everything except for the input objects and associated items
+-delete(axs(~ismember(axs, [ah; allchildren(ah); allancestors(ah)])));
+-end
+ 
+ function ah = allchildren(ah)
+-ah = findall(ah);
+-if iscell(ah)
+-    ah = cell2mat(ah);
++    ah = findall(ah);
++    if iscell(ah)
++        ah = cell2mat(ah);
++    end
++    ah = ah(:);
+ end
+-ah = ah(:);
+-end
+ 
+ function ph = allancestors(ah)
+-ph = [];
+-for a = 1:numel(ah)
+-    h = get(ah(a), 'parent');
+-    while h ~= 0
+-        ph = [ph; h];
+-        h = get(h, 'parent');
++    ph = [];
++    for a = 1:numel(ah)
++        h = get(ah(a), 'parent');
++        while h ~= 0
++            ph = [ph; h];
++            h = get(h, 'parent');
++        end
+     end
+ end
+-end
+Index: ../trunk-jpl/externalpackages/export_fig/fix_lines.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/fix_lines.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/fix_lines.m	(revision 19571)
+@@ -37,8 +37,16 @@
+ % Thank you to Laurence K for suggesting the check to see if the file was
+ % opened.
+ 
++% 01/03/15: Issue #20: warn users if using this function in HG2 (R2014b+)
++% 27/03/15: Fixed out of memory issue with enormous EPS files (generated by print() with OpenGL renderer), related to issue #39
++
+ function fstrm = fix_lines(fstrm, fname2)
+ 
++% Issue #20: warn users if using this function in HG2 (R2014b+)
++if using_hg2
++    warning('export_fig:hg2','The fix_lines function should not be used in this Matlab version.');
++end
++    
+ if nargout == 0 || nargin > 1
+     if nargin < 2
+         % Overwrite the input file
+@@ -113,11 +121,6 @@
+     end
+ end
+ 
+-% Isolate line style definition section
+-first_sec = strfind(fstrm, '% line types:');
+-[second_sec, remaining] = strtok(fstrm(first_sec+1:end), '/');
+-[remaining, remaining] = strtok(remaining, '%');
+-
+ % Define the new styles, including the new GR format
+ % Dot and dash lengths have two parts: a constant amount plus a line width
+ % variable amount. The constant amount comes after dpi2point, and the
+@@ -134,7 +137,12 @@
+              '/GR { [0 dpi2point mul 4 dpi2point mul] 0 setdash 1 setlinecap } bdef'}; % Grid lines - dot spacing remains constant
+ 
+ % Construct the output
+-fstrm = [fstrm(1:first_sec) second_sec sprintf('%s\r', new_style{:}) remaining];
++% This is the original (memory-intensive) code:
++%first_sec = strfind(fstrm, '% line types:'); % Isolate line style definition section
++%[second_sec, remaining] = strtok(fstrm(first_sec+1:end), '/');
++%[remaining, remaining] = strtok(remaining, '%');
++%fstrm = [fstrm(1:first_sec) second_sec sprintf('%s\r', new_style{:}) remaining];
++fstrm = regexprep(fstrm,'(% line types:.+?)/.+?%',['$1',sprintf('%s\r',new_style{:}),'%']);
+ 
+ % Write the output file
+ if nargout == 0 || nargin > 1
+Index: ../trunk-jpl/externalpackages/export_fig/crop_borders.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/crop_borders.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/crop_borders.m	(revision 19571)
+@@ -1,81 +1,125 @@
++function [A, vA, vB, bb_rel] = crop_borders(A, bcol, padding)
+ %CROP_BORDERS Crop the borders of an image or stack of images
+ %
+-%   [B, v] = crop_borders(A, bcol, [padding])
++%   [B, vA, vB, bb_rel] = crop_borders(A, bcol, [padding])
+ %
+ %IN:
+ %   A - HxWxCxN stack of images.
+ %   bcol - Cx1 background colour vector.
+-%   padding - scalar indicating how many pixels padding to have. Default: 0.
++%   padding - scalar indicating how much padding to have in relation to
++%             the cropped-image-size (0<=padding<=1). Default: 0
+ %
+ %OUT:
+ %   B - JxKxCxN cropped stack of images.
+-%   v - 1x4 vector of start and end indices for first two dimensions, s.t.
+-%       B = A(v(1):v(2),v(3):v(4),:,:).
++%   vA     - coordinates in A that contain the cropped image
++%   vB     - coordinates in B where the cropped version of A is placed
++%   bb_rel - relative bounding box (used for eps-cropping)
+ 
+-function [A, v] = crop_borders(A, bcol, padding)
+-if nargin < 3
+-    padding = 0;
+-end
+-[h, w, c, n] = size(A);
+-if isscalar(bcol)
+-    bcol = bcol(ones(c, 1));
+-end
+-bail = false;
+-for l = 1:w
+-    for a = 1:c
+-        if ~all(col(A(:,l,a,:)) == bcol(a))
+-            bail = true;
++% 06/03/15: Improved image cropping thanks to Oscar Hartogensis
++% 08/06/15: Fixed issue #76: case of transparent figure bgcolor
++
++    if nargin < 3
++        padding = 0;
++    end
++    [h, w, c, n] = size(A);
++    if isempty(bcol)  % case of transparent bgcolor
++        bcol = A(ceil(end/2),1,:,1);
++    end
++    if isscalar(bcol)
++        bcol = bcol(ones(c, 1));
++    end
++
++    % Crop margin from left
++    bail = false;
++    for l = 1:w
++        for a = 1:c
++            if ~all(col(A(:,l,a,:)) == bcol(a))
++                bail = true;
++                break;
++            end
++        end
++        if bail
+             break;
+         end
+     end
+-    if bail
+-        break;
+-    end
+-end
+-bcol = A(ceil(end/2),w,:,1);
+-bail = false;
+-for r = w:-1:l
+-    for a = 1:c
+-        if ~all(col(A(:,r,a,:)) == bcol(a))
+-            bail = true;
++
++    % Crop margin from right
++    bcol = A(ceil(end/2),w,:,1);
++    bail = false;
++    for r = w:-1:l
++        for a = 1:c
++            if ~all(col(A(:,r,a,:)) == bcol(a))
++                bail = true;
++                break;
++            end
++        end
++        if bail
+             break;
+         end
+     end
+-    if bail
+-        break;
+-    end
+-end
+-bcol = A(1,ceil(end/2),:,1);
+-bail = false;
+-for t = 1:h
+-    for a = 1:c
+-        if ~all(col(A(t,:,a,:)) == bcol(a))
+-            bail = true;
++
++    % Crop margin from top
++    bcol = A(1,ceil(end/2),:,1);
++    bail = false;
++    for t = 1:h
++        for a = 1:c
++            if ~all(col(A(t,:,a,:)) == bcol(a))
++                bail = true;
++                break;
++            end
++        end
++        if bail
+             break;
+         end
+     end
+-    if bail
+-        break;
+-    end
+-end
+-bcol = A(h,ceil(end/2),:,1);
+-bail = false;
+-for b = h:-1:t
+-    for a = 1:c
+-        if ~all(col(A(b,:,a,:)) == bcol(a))
+-            bail = true;
++
++    % Crop margin from bottom
++    bcol = A(h,ceil(end/2),:,1);
++    bail = false;
++    for b = h:-1:t
++        for a = 1:c
++            if ~all(col(A(b,:,a,:)) == bcol(a))
++                bail = true;
++                break;
++            end
++        end
++        if bail
+             break;
+         end
+     end
+-    if bail
+-        break;
++
++    % Crop the background, leaving one boundary pixel to avoid bleeding on resize
++    %v = [max(t-padding, 1) min(b+padding, h) max(l-padding, 1) min(r+padding, w)];
++    %A = A(v(1):v(2),v(3):v(4),:,:);
++    if padding == 0  % no padding
++        padding = 1;
++    elseif abs(padding) < 1  % pad value is a relative fraction of image size
++        padding = sign(padding)*round(mean([b-t r-l])*abs(padding)); % ADJUST PADDING
++    else  % pad value is in units of 1/72" points
++        padding = round(padding);  % fix cases of non-integer pad value
+     end
++
++    if padding > 0  % extra padding
++        % Create an empty image, containing the background color, that has the
++        % cropped image size plus the padded border
++        B = repmat(bcol,(b-t)+1+padding*2,(r-l)+1+padding*2);
++        % vA - coordinates in A that contain the cropped image
++        vA = [t b l r];
++        % vB - coordinates in B where the cropped version of A will be placed
++        vB = [padding+1, (b-t)+1+padding, padding+1, (r-l)+1+padding];
++        % Place the original image in the empty image
++        B(vB(1):vB(2), vB(3):vB(4), :) = A(vA(1):vA(2), vA(3):vA(4), :);
++        A = B;
++    else  % extra cropping
++        vA = [t-padding b+padding l-padding r+padding];
++        A = A(vA(1):vA(2), vA(3):vA(4), :);
++        vB = [NaN NaN NaN NaN];
++    end
++
++    % For EPS cropping, determine the relative BoundingBox - bb_rel
++    bb_rel = [l-1 h-b-1 r+1 h-t+1]./[w h w h];
+ end
+-% Crop the background, leaving one boundary pixel to avoid bleeding on resize
+-v = [max(t-padding, 1) min(b+padding, h) max(l-padding, 1) min(r+padding, w)];
+-A = A(v(1):v(2),v(3):v(4),:,:);
+-end
+ 
+ function A = col(A)
+-A = A(:);
++    A = A(:);
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/append_pdfs.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/append_pdfs.m	(revision 19570)
++++ ../trunk-jpl/externalpackages/export_fig/append_pdfs.m	(revision 19571)
+@@ -32,17 +32,40 @@
+ % Issue resolved (to best of my ability) 1/6/2011, using the prepress
+ % setting
+ 
++% 26/02/15: If temp dir is not writable, use the output folder for temp
++%           files when appending (Javier Paredes); sanity check of inputs
++
+ function append_pdfs(varargin)
++
++if nargin < 2,  return;  end  % sanity check
++
+ % Are we appending or creating a new file
+ append = exist(varargin{1}, 'file') == 2;
+-if append
+-    output = [tempname '.pdf'];
+-else
++output = [tempname '.pdf'];
++try
++    % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
++    fid = fopen(output,'w');
++    fwrite(fid,1);
++    fclose(fid);
++    delete(output);
++    isTempDirOk = true;
++catch
++    % Temp dir is not writable, so use the output folder
++    [dummy,fname,fext] = fileparts(output); %#ok<ASGLU>
++    fpath = fileparts(varargin{1});
++    output = fullfile(fpath,[fname fext]);
++    isTempDirOk = false;
++end
++if ~append
+     output = varargin{1};
+     varargin = varargin(2:end);
+ end
+ % Create the command file
+-cmdfile = [tempname '.txt'];
++if isTempDirOk
++    cmdfile = [tempname '.txt'];
++else
++    cmdfile = fullfile(fpath,[fname '.txt']);
++end
+ fh = fopen(cmdfile, 'w');
+ fprintf(fh, '-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="%s" -f', output);
+ fprintf(fh, ' "%s"', varargin{:});
Index: /issm/oecreview/Archive/19101-20495/ISSM-19571-19572.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19571-19572.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19571-19572.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19571)
++++ ../trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 19572)
+@@ -620,7 +620,7 @@
+ 
+ 	for(int j=0;j<i;j++)newcell[j]=cell[j]; 
+ 	newcell[i]=scale*cell[i];
+-	newcell[i+1]=scale* cell[i]/2;
++	newcell[i+1]=scale* cell[i];
+ 	for(int j=i+2;j<m+1;j++)newcell[j]=cell[j-1];
+ 	
+ 	/*free allocation:*/
+@@ -647,7 +647,7 @@
+ 	_printf_("Echo of cell: \n");
+ 	for(int i=0;i<m;i++){
+ 		_printf_(i << ": ");
+-		for (int j=0;j<numcells;j++)_printf_(celllist[j][i] << " ");
++		for (int j=0;j<numcells;j++)_printf_(setprecision(10) << celllist[j][i] << " ");
+ 		_printf_("\n");
+ 	}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19572-19573.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19572-19573.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19572-19573.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/geometry.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.py	(revision 19572)
++++ ../trunk-jpl/src/m/classes/geometry.py	(revision 19573)
+@@ -48,7 +48,7 @@
+ 		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
+ 		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices])
+ 		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
+-		if any((self.thickness-self.surface+self.base)>10**-9):
++		if any(abs(self.thickness-self.surface+self.base)>10**-9):
+ 			md.checkmessage("equality thickness=surface-base violated")
+ 		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
+ 			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices])
+Index: ../trunk-jpl/src/m/classes/geometry.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.m	(revision 19572)
++++ ../trunk-jpl/src/m/classes/geometry.m	(revision 19573)
+@@ -69,7 +69,7 @@
+ 				md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
+-				if any((self.thickness-self.surface+self.base)>10^-9),
++				if any(abs(self.thickness-self.surface+self.base)>10^-9),
+ 					md = checkmessage(md,['equality thickness=surface-base violated']);
+ 				end 
+ 				if solution==TransientSolutionEnum() & md.transient.isgroundingline,
Index: /issm/oecreview/Archive/19101-20495/ISSM-19573-19574.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19573-19574.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19573-19574.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19573)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19574)
+@@ -1345,7 +1345,7 @@
+ 	 dnl look at $ISSM_DIR/externalpackages/petsc/install/lib/petsc/conf/petscvariables BLASLAPACK_LIB
+ 		MKLINCL=""
+ 		if test x$VENDOR = xintel-pleiades; then
+-		   MKLLIB="-Wl,-rpath,/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
++		   MKLLIB="-Wl,-rpath,/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -lirc"
+ 		elif test x$VENDOR = xintel-discover; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"
+ 		elif test x$VENDOR = xintel-acenet; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19574-19575.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19574-19575.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19574-19575.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19574)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19575)
+@@ -122,7 +122,7 @@
+ #}}}
+ # Module sources and dependencies {{{
+ if !WINDOWS
+-libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) $(MEXLIB) 
++libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(MPILIB) $(PETSCLIB) $(MKLLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) $(MEXLIB) 
+ endif
+ 
+ if STANDALONE_LIBRARIES
Index: /issm/oecreview/Archive/19101-20495/ISSM-19575-19576.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19575-19576.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19575-19576.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19575)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19576)
+@@ -1345,7 +1345,7 @@
+ 	 dnl look at $ISSM_DIR/externalpackages/petsc/install/lib/petsc/conf/petscvariables BLASLAPACK_LIB
+ 		MKLINCL=""
+ 		if test x$VENDOR = xintel-pleiades; then
+-		   MKLLIB="-Wl,-rpath,/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -lirc"
++		   MKLLIB="-Wl,-rpath,/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		elif test x$VENDOR = xintel-discover; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"
+ 		elif test x$VENDOR = xintel-acenet; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19576-19577.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19576-19577.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19576-19577.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/test/NightlyRun/test414.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test414.m	(revision 19576)
++++ ../trunk-jpl/test/NightlyRun/test414.m	(revision 19577)
+@@ -6,6 +6,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.materials.rho_ice=10^7; %involved in the mass flux, make it easy
+ md.geometry.thickness(:)=1; %make it easy
++md.geometry.surface=md.geometry.base+md.geometry.thickness;
+ 
+ %constrain all velocities to 1 m/yr, in the y-direction
+ md.stressbalance.spcvx=zeros(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test417.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test417.m	(revision 19576)
++++ ../trunk-jpl/test/NightlyRun/test417.m	(revision 19577)
+@@ -6,6 +6,7 @@
+ md.cluster=generic('name',oshostname(),'np',3);
+ md.materials.rho_ice=10^7; %involved in the mass flux, make it easy
+ md.geometry.thickness(:)=1; %make it easy
++md.geometry.surface=md.geometry.base+md.geometry.thickness;
+ 
+ %constrain all velocities to 1 m/yr, in the y-direction
+ md.stressbalance.spcvx(:)=0;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19577-19578.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19577-19578.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19577-19578.diff	(revision 20498)
@@ -0,0 +1,109 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19577)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19578)
+@@ -175,7 +175,7 @@
+ 			IS_WINDOWS=yes
+ 		elif  test $VENDOR = intel-win7-32; then
+ 			export CC=cl
+-			export CXX=cccl
++			export CXX=cl
+ 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export AR="ar-lib lib"
+@@ -185,7 +185,7 @@
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif  test $VENDOR = intel-win7-64; then
+ 			export CC=cl
+-			export CXX=cccl
++			export CXX=cl
+ 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export AR="ar-lib lib"
+@@ -195,7 +195,7 @@
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif  test $VENDOR = MSVC-Win64; then
+ 			export CC=cl
+-			export CXX=cccl
++			export CXX=cl
+ 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -D_HAVE_PETSC_MPI_ -EHsc"
+ 			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -D_HAVE_PETSC_MPI_ -EHsc"
+ 			export AR="ar-lib lib"
+@@ -205,7 +205,7 @@
+ 			OSLIBS="-Wl,kernel32.lib -Wl,user32.lib -Wl,gdi32.lib -Wl,winspool.lib -Wl,comdlg32.lib -Wl,advapi32.lib -Wl,shell32.lib -Wl,ole32.lib -Wl,oleaut32.lib -Wl,uuid.lib -Wl,odbc32.lib -Wl,odbccp32.lib"
+ 		elif  test $VENDOR = MSVC-Win64-par; then
+ 			export CC=cl
+-			export CXX=cccl
++			export CXX=cl
+ 			export CXXFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export CFLAGS="-DWIN32 -D_INTEL_WIN_ -EHsc"
+ 			export AR="ar-lib lib"
+@@ -288,16 +288,16 @@
+   			*cygwin*) 
+   				if  test $VENDOR = intel-win7-32; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/export:mexFunction -Wl,/LD"
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
+ 					MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+ 					MEXEXT=".$MEXEXT"
+   				elif test $VENDOR = intel-win7-64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
+ 					MEXEXT=".mexw64"
+   				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/export:mexFunction -Wl,/LD" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
+ 					MEXEXT=".mexw64"
+   				fi
+   			;;
+@@ -367,6 +367,7 @@
+ 		TRIANGLEINCL=-I$TRIANGLE_ROOT/
+ 		case "${host_os}" in
+ 				*cygwin*)
++				TRIANGLEINCL="/I`cygpath -m $TRIANGLE_ROOT/`"
+ 				TRIANGLELIB="-Wl,`cygpath -m $TRIANGLE_ROOT/`triangle.lib"
+ 				;;
+ 				*linux*)
+@@ -935,10 +936,18 @@
+ 		fi
+ 
+ 		if test -z "$MPI_LIBDIR"; then
+-			MPIINCL=-I"$MPI_INCLUDE"
++			if  test x$IS_WINDOWS = xyes; then
++				MPIINCL=/I"$MPI_INCLUDE"
++			else 
++				MPIINCL=-I"$MPI_INCLUDE"
++			fi
+ 			MPILIB="$MPI_LIBFLAGS"
+ 		else
+-			MPIINCL=-I"$MPI_INCLUDE"
++			if  test x$IS_WINDOWS = xyes; then
++				MPIINCL=/I"$MPI_INCLUDE"
++			else 
++				MPIINCL=-I"$MPI_INCLUDE"
++			fi
+ 			MPILIB="-L$MPI_LIBDIR $MPI_LIBFLAGS"
+ 		fi
+ 		AC_DEFINE([_HAVE_MPI_],[1],[with Mpi in ISSM src])
+@@ -1013,7 +1022,8 @@
+ 				if test $PETSC_MAJOR -lt 3 ; then
+ 					PETSCLIB=-Wl,/LIBPATH:`cygpath -w $PETSC_ROOT/lib`  -Wl,libpetscksp.lib  -Wl,libpetscdm.lib  -Wl,libpetscmat.lib  -Wl,libpetscvec.lib  -Wl,libpetscsnes.lib  -Wl,libpetscts.lib  -Wl,libmpiuni.lib  -Wl,libpetsc.lib
+ 				else
+-					PETSCLIB="-L$PETSC_ROOT/lib  -Wl,libpetsc.lib"
++					PETSCLIB="/link -Wl,/LIBPATH:`cygpath -m $PETSC_ROOT/lib`  -Wl,libpetsc.lib"
++					PETSCINCL="/I`cygpath -m $PETSC_ROOT/include`"
+ 				fi
+ 				;;
+ 				*linux*)
+@@ -1078,7 +1088,8 @@
+ 				METISINCL=-I"$METIS_ROOT/Lib" 
+ 				case "${host_os}" in
+ 					*cygwin*)
+-					METISLIB="-L$METIS_ROOT -Wl,libmetis.lib"
++					METISINCL="/I`cygpath -m $METIS_ROOT/Lib`" 
++					METISLIB="-Wl,/link -Wl,/LIBPATH:`cygpath -m $METIS_ROOT` -Wl,libmetis.lib"
+ 					;;
+ 					*linux*)
+ 					METISLIB=-L"$METIS_ROOT/ -lmetis"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19578-19579.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19578-19579.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19578-19579.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19578)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 19579)
+@@ -127,7 +127,7 @@
+ 
+ if STANDALONE_LIBRARIES
+ libISSMMatlab_la_LDFLAGS = -static 
+-deps += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
++deps += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
+ endif
+ 
+ if !WINDOWS
+Index: ../trunk-jpl/configure.ac
+===================================================================
+--- ../trunk-jpl/configure.ac	(revision 19578)
++++ ../trunk-jpl/configure.ac	(revision 19579)
+@@ -10,9 +10,9 @@
+ AC_CANONICAL_TARGET
+ 
+ #Compilers
+-AC_PROG_CC([icc cccl cl icl gcc])
++AC_PROG_CC([icc cl icl gcc])
+ AC_PROG_CPP
+-AC_PROG_CXX([icpc cccl cl icl g++])
++AC_PROG_CXX([icpc cl icl g++])
+ AC_PROG_F77([ifort g77 gfortran])
+ 
+ #AUTOMAKE
Index: /issm/oecreview/Archive/19101-20495/ISSM-19579-19580.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19579-19580.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19579-19580.diff	(revision 20498)
@@ -0,0 +1,75 @@
+Index: ../trunk-jpl/externalpackages/autotools/install-win.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19579)
++++ ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19580)
+@@ -9,9 +9,9 @@
+ #install autoconf
+ echo " === INSTALLING AUTOCONF =="
+ rm -rf src
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/autoconf-2.68.tar.gz' 'autoconf-2.68.tar.gz'
+-tar -zxvf autoconf-2.68.tar.gz
+-mv autoconf-2.68 src
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/autoconf-2.69.tar.gz' 'autoconf-2.69.tar.gz'
++tar -zxvf autoconf-2.69.tar.gz
++mv autoconf-2.69 src
+ cd src 
+ ./configure --prefix="$ISSM_DIR/externalpackages/autotools/install" 
+ make  
+@@ -21,9 +21,9 @@
+ #install automake
+ echo " === INSTALLING AUTOMAKE =="
+ rm -rf src
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/automake-1.11.3.tar.gz' 'automake-1.11.3.tar.gz'
+-tar -zxvf  automake-1.11.3.tar.gz
+-mv automake-1.11.3 src
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/automake-1.14.tar.gz' 'automake-1.14.tar.gz'
++tar -zxvf  automake-1.14.tar.gz
++mv automake-1.14 src
+ cd src 
+ ./configure --prefix="$ISSM_DIR/externalpackages/autotools/install" 
+ make  
+Index: ../trunk-jpl/externalpackages/petsc/install-dev-win10.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-dev-win10.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-dev-win10.sh	(revision 19580)
+@@ -0,0 +1,34 @@
++#!/bin/bash
++
++STEP=1
++
++if [ $STEP -eq 1 ]; then
++	git clone -b maint https://bitbucket.org/petsc/petsc src
++fi
++
++export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
++export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
++
++#configure
++cd src
++./config/configure.py  \
++	--with-parallel-no \
++	--prefix=$PREFIX_DIR \
++	--PETSC_ARCH=cygwin-intel \
++	--PETSC_DIR=$PETSC_DIR \
++	--with-mpi=0 \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--download-f2cblaslapack=yes \
++	--with-cc='win32fe cl' \
++	--with-fc=0 \
++	--with-cxx='win32fe cl' \
++	--with-clanguage=cxx 
++
++#Compile petsc and install it
++make
++make install
++
++patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-dev-win10.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19580-19581.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19580-19581.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19580-19581.diff	(revision 20498)
@@ -0,0 +1,194 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch	(revision 19581)
+@@ -0,0 +1,26 @@
++64,65c64,65
++< #set( DAKOTA_HAVE MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch	(revision 19581)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
++> set(LAPACK_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh	(revision 19581)
+@@ -0,0 +1,51 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-5.3.1-public-src.tar.gz' 'dakota-5.3.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-5.3.1-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-5.3.1.src/* src
++rm -rf dakota-5.3.1.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.lonestar.patch
++
++#Apply patches
++patch src/src/ParallelLibrary.cpp configs/5.3.1/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/5.3.1/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/5.3.1/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/5.3.1/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/5.3.1/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19580)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19581)
+@@ -36,17 +36,15 @@
+ #prepare script to reconfigure petsc
+ cat > script.queue << EOF
+ #!/bin/bash		 
+-#$ -V		#Inherit the submission environment
+-#$ -cwd	# Start job in submission directory
++#$ -V #Inherit the submission environment
++#$ -cwd # Start job in submission directory
+ #$ -N petscinstall # Job Name
+-#$ -j y	# Combine stderr and stdout
+-#$ -o $JOB_NAME.o$JOB_ID	# Name of the output file (eg. myMPI.oJobID)
+-#$ -pe 12way 12	# Requests 12 tasks/node, 12 cores total
+-#$ -q normal	# Queue name normal
+-#$ -l h_rt=00:01:00	# Run time (hh:mm:ss) - 1.5 hours
+-set -x	# Echo commands, use set echo with csh
++#$ -j y # Combine stderr and stdout
++#$ -pe 12way 12 # Requests 12 tasks/node, 12 cores total
++#$ -q normal # Queue name normal
++#$ -l h_rt=00:01:00 # Run time (hh:mm:ss) - 1.5 hours
++set -x # Echo commands, use set echo with csh
+ 
+-module load cmake/2.8.7
+ module load mkl/10.3
+ 
+ mpiexec -np 1 ./conftest-arch-linux2-c-opt
+Index: ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.lonestar.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.lonestar.patch	(revision 19581)
+@@ -0,0 +1,7 @@
++33,34c33,35
++<         || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
++<         )
++---
++> 		 )
++> //        || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
++> //        )
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-lonestar.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-lonestar.sh	(revision 19581)
+@@ -0,0 +1,38 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++patch src/boost/mpl/aux_/config/adl.hpp ./configs/1.55/adl.hpp.lonestar.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python3.2 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++./bjam install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-lonestar.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19581-19582.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19581-19582.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19581-19582.diff	(revision 20498)
@@ -0,0 +1,463 @@
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19581)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h	(revision 19582)
+@@ -24,7 +24,7 @@
+ IssmDouble Marbouty(IssmDouble T, IssmDouble d, IssmDouble dT);
+ void grainGrowth(IssmDouble* pre, IssmDouble* pgdn, IssmDouble* pgsp, IssmDouble* T,IssmDouble* dz,IssmDouble* d, IssmDouble* W,IssmDouble smb_dt,int m,int aIdx, int sid);
+ void albedo(IssmDouble* a,int aIdx, IssmDouble* re, IssmDouble* d, IssmDouble cldFrac, IssmDouble aIce, IssmDouble aSnow, IssmDouble* T, IssmDouble* W, IssmDouble P, IssmDouble EC, IssmDouble t0wet, IssmDouble t0dry, IssmDouble K, IssmDouble dt,int m, int sid);
+-void shortwave(IssmDouble* swf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid);
++void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid);
+ void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlw, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz, int sid);
+ void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble Ta, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, int sid); 
+ void melt(IssmDouble* pM, IssmDouble* pR, IssmDouble* pmAdd, IssmDouble** pT, IssmDouble** pd, IssmDouble** pdz, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pn, IssmDouble dzMin, IssmDouble zMax, IssmDouble zMin, int sid);
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19581)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19582)
+@@ -6,7 +6,7 @@
+ #include "../../shared/shared.h"
+ #include "../../toolkits/toolkits.h"
+ 
+-const double Pi =3.141592653589793238462643383279502884197169399375105820974944592308;
++const double Pi = 3.141592653589793;
+ 
+ void Gembx(FemModel* femmodel){  /*{{{*/
+ 
+@@ -99,20 +99,20 @@
+ 	// ---------------this is a major limitation of the model-------------------
+ 
+ 	// initialize
+-	IssmDouble F = 0, H=0, G=0, E;
+-
++	IssmDouble F = 0, H=0, G=0;
++	const IssmDouble E = 0.09;        //[mm d-1] model time growth constant E
+ 	// convert T from K to ºC
+ 	T = T - 273.15;
+ 
+ 	// temperature coefficient F
+-	if(T>-6.0) F =  0.7 + ((T/-6) * 0.3);
+-	if(T<=-6.0 && T>-22.0) F =  1 - ((T+6)/-16 * 0.8);
+-	if(T<=-22.0 && T>=-40.0) F =  0.2 - ((T+22)/-18 * 0.2);
++	if(T>-6.0) F =  0.7 + ((T/-6.0) * 0.3);
++	if(T<=-6.0 && T>-22.0) F =  1 - ((T+6.0)/-16.0 * 0.8);
++	if(T<=-22.0 && T>-40.0) F =  0.2 - ((T+22.0)/-18.0 * 0.2);
+ 
+ 	// density coefficient F
+-	if(d<150) H=1.0;
++	if(d<150.0) H=1.0;
+ 
+-	if(d>=150 & d<400) H = 1 - ((d-150)/250);
++	if(d>=150.0 & d<400.0) H = 1 - ((d-150.0)/250.0);
+ 
+ 	// temperature gradient coefficient G
+ 	if(dT >= 0.16 && dT < 0.25) G = ((dT - 0.16)/0.09) * 0.1;
+@@ -121,9 +121,6 @@
+ 	if(dT >= 0.5  && dT < 0.7)  G = 0.9 + (((dT - 0.5)/0.2) * 0.1);
+ 	if(dT >= .7              )  G = 1.0;
+ 
+-	// model time growth constant E
+-	E = 0.09;        //[mm d-1]
+-
+ 	// grouped coefficient Q
+ 	return F*H*G*E;
+ 
+@@ -181,16 +178,16 @@
+ 	}
+ 
+ 	/*Figure out grain size from effective grain radius: */
+-	gsz=xNew<IssmDouble>(m); for(int i=0;i<m;i++)gsz[i]=re[i]*2;
++	gsz=xNew<IssmDouble>(m); for(int i=0;i<m;i++)gsz[i]=re[i]*2.0;
+ 
+ 	/*Convert dt from seconds to day: */
+-	dt=smb_dt/86400;
++	dt=smb_dt/86400.0;
+ 
+ 	/*Determine liquid-water content in percentage: */
+ 	lwc=xNew<IssmDouble>(m); for(int i=0;i<m;i++)lwc[i]= W[i] / (d[i]*dz[i])*100.0;
+ 
+ 	//set maximum water content by mass to 9 percent (Brun, 1980)
+-	for(int i=0;i<m;i++)if(lwc[i]>9) lwc[i]=9.0;
++	for(int i=0;i<m;i++)if(lwc[i]>9.0) lwc[i]=9.0;
+ 
+ 
+ 	/* Calculate temperature gradiant across grid cells 
+@@ -223,7 +220,7 @@
+ 			//_printf_("Dendritic dry snow metamorphism\n");
+ 
+ 			//index for dentricity > 0 and T gradients < 5 degC m-1 and >= 5 degC m-1
+-			if(dT[i]<5){
++			if(dT[i]<5.0){
+ 				//determine coefficients
+ 				IssmDouble A = - 2e8 * exp(-6e3 / T[i]) * dt;
+ 				IssmDouble B = 1e9 * exp(-6e3 / T[i]) * dt;
+@@ -241,12 +238,12 @@
+ 			}
+ 
+ 			// wet snow metamorphism
+-			if(W[i]>0){
++			if(W[i]>0.0){
+ 
+ 				//_printf_("D}ritic wet snow metamorphism\n");
+ 
+ 				//determine coefficient
+-				IssmDouble D = (1/16) * pow(lwc[i],3.0) * dt;
++				IssmDouble D = (1.0/16.0) * pow(lwc[i],3.0) * dt;
+ 
+ 				// new dendricity and sphericity for wet snow
+ 				gdn[i] -= D;
+@@ -254,10 +251,10 @@
+ 			}
+ 
+ 			// dendricity and sphericity can not be > 1 or < 0
+-			if (gdn[i]<0)gdn[i]=0.0;
+-			if (gsp[i]<0)gsp[i]=0.0;
+-			if (gdn[i]>1)gdn[i]=1.0;
+-			if (gsp[i]>1)gsp[i]=1.0;
++			if (gdn[i]<0.0)gdn[i]=0.0;
++			if (gsp[i]<0.0)gsp[i]=0.0;
++			if (gdn[i]>1.0)gdn[i]=1.0;
++			if (gsp[i]>1.0)gsp[i]=1.0;
+ 
+ 			// determine new grain size (mm)
+ 			gsz[i] = 0.1 + (1-gdn[i])*0.25 + (0.5-gsp[i])*0.1;
+@@ -275,25 +272,25 @@
+ 			gsz[i] += Q* dt;
+ 
+ 			//Wet snow metamorphism (Brun, 1989)
+-			if(W[i]>0){
++			if(W[i]>0.0){
+ 				//_printf_("Nond}ritic wet snow metamorphism\n");
+ 				//wet rate of change coefficient
+-				IssmDouble E = 1.28e-8 + (4.22e-10 * pow(lwc[i],3.0))* (dt *86400);   // [mm^3 s^-1]
++				IssmDouble E = 1.28e-8 + (4.22e-10 * pow(lwc[i],3.0))* (dt *86400.0);   // [mm^3 s^-1]
+ 
+ 				// calculate change in grain volume and convert to grain size
+-				gsz[i] = 2 * pow(3/(Pi * 4)*((4 / 3)*Pi*pow(gsz[i]/2,3.0) + E),1.0/3.0);
++				gsz[i] = 2.0 * pow(3.0/(Pi * 4.0)*((4.0/ 3.0)*Pi*pow(gsz[i]/2.0,3.0) + E),1.0/3.0);
+ 
+ 			}
+ 
+ 			// grains with sphericity == 1 can not have grain sizes > 2 mm (Brun, 1992)
+-			if (gsp[i]==1.0 && gsz[i]>2) gsz[i]=2.0;
++			if (gsp[i]==1.0 && gsz[i]>2.0) gsz[i]=2.0;
+ 
+ 			// grains with sphericity == 0 can not have grain sizes > 5 mm (Brun, 1992)
+ 			if (gsp[i]!=1.0 && gsz[i]>5.0) gsz[i]=5.0;
+ 		}
+ 
+ 		//convert grain size back to effective grain radius: 
+-		re[i]=gsz[i]/2;
++		re[i]=gsz[i]/2.0;
+ 	}
+ 	
+ 	/*Free ressources:*/
+@@ -504,10 +501,10 @@
+ 	IssmDouble  z0;	
+ 	IssmDouble  dt;
+ 	IssmDouble max_fdt=0;
+-	IssmDouble  Ts;
++	IssmDouble  Ts=0;
+ 	IssmDouble  L;
+ 	IssmDouble  eS;
+-	IssmDouble  Ri;
++	IssmDouble  Ri=0;
+ 	IssmDouble  coefM;
+ 	IssmDouble  coefH;
+ 	IssmDouble An;
+@@ -689,7 +686,7 @@
+ 	dT_dlw = dlw / TCs;
+ 
+ 	// PREALLOCATE ARRAYS BEFORE LOOP FOR IMPROVED PERFORMANCE
+-	T0 = xNew<IssmDouble>(m+2);
++	T0 = xNewZeroInit<IssmDouble>(m+2);
+ 	Tu=xNew<IssmDouble>(m);
+ 	Td=xNew<IssmDouble>(m);
+ 
+@@ -830,7 +827,7 @@
+ 	*pEC=EC;
+ 
+ }  /*}}}*/
+-void shortwave(IssmDouble* swf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid){ /*{{{*/
++void shortwave(IssmDouble** pswf, int swIdx, int aIdx, IssmDouble dsw, IssmDouble as, IssmDouble* d, IssmDouble* dz, IssmDouble* re, int m, int sid){ /*{{{*/
+ 
+ 	// DISTRIBUTES ABSORBED SHORTWAVE RADIATION WITHIN SNOW/ICE
+ 
+@@ -851,9 +848,17 @@
+ 
+ 	// Outputs
+ 	//   swf     = absorbed shortwave radiation [W m-2]
++	//
++	
++	/*outputs: */
++	IssmDouble* swf=NULL;
+ 
+ 	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   shortwave module\n");
+ 
++	/*Initialize and allocate: */
++	swf=xNewZeroInit<IssmDouble>(m);
++
++
+ 	// SHORTWAVE FUNCTION
+ 	if (swIdx == 0) {// all sw radation is absorbed in by the top grid cell
+         
+@@ -1019,6 +1024,9 @@
+ 			xDelete<IssmDouble>(B);
+ 		}
+ 	}
++	/*Assign output pointers: */
++	*pswf=swf;
++
+ } /*}}}*/ 
+ void accumulation(IssmDouble** pT, IssmDouble** pdz, IssmDouble** pd, IssmDouble** pW, IssmDouble** pa, IssmDouble** pre, IssmDouble** pgdn, IssmDouble** pgsp, int* pm, IssmDouble T_air, IssmDouble P, IssmDouble dzMin, IssmDouble aSnow, int sid){ /*{{{*/
+ 
+@@ -1074,13 +1082,13 @@
+ 	gsp=*pgsp;
+ 	m=*pm;
+ 
+-	/*Allocate: */
++	// determine initial mass
+ 	mInit=xNew<IssmDouble>(m);
++	for(int i=0;i<m;i++) mInit[i]= d[i] * dz[i];
++	massinit=0; for(int i=0;i<m;i++)massinit+=mInit[i];
+ 
+ 	if (P > 0){
+-		// determine initial mass
+-		for(int i=0;i<m;i++) mInit[i]= d[i] * dz[i];
+-	
++			
+ 
+ 		if (T_air <= 273.15){ // if snow
+ 
+@@ -1147,7 +1155,6 @@
+ 
+ 		// check for conservation of mass
+ 		mass=0; for(int i=0;i<m;i++)mass+=d[i]*dz[i]; 
+-		massinit=0; for(int i=0;i<m;i++)massinit+=mInit[i];
+ 
+ 		mass_diff = mass - massinit - P;
+ 		mass_diff = round(mass_diff * 100)/100;
+@@ -1187,8 +1194,7 @@
+ 	IssmDouble* surpE=NULL;
+ 	IssmDouble* F=NULL;
+ 	IssmDouble* flxDn=NULL;
+-	IssmDouble* R=NULL;
+-	IssmDouble* ER=NULL;
++	IssmDouble  ER=0;
+ 	IssmDouble* EI=NULL;
+ 	IssmDouble* EW=NULL;
+ 	IssmDouble* M=NULL;
+@@ -1206,6 +1212,7 @@
+ 	IssmDouble X;
+ 	IssmDouble Wi;
+ 	int        D_size;
++	int         i;
+ 
+ 	/*outputs:*/
+ 	IssmDouble  mAdd;
+@@ -1219,6 +1226,7 @@
+ 	IssmDouble* gdn=*pgdn;
+ 	IssmDouble* gsp=*pgsp;
+ 	int         n=*pn;
++	IssmDouble* R=0;
+ 	
+ 	if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("   melt module\n");
+ 
+@@ -1245,12 +1253,12 @@
+ 	sumE0 = cellsum(EI,n) + cellsum(EW,n);      // total energy [J]
+ 
+ 	// initialize melt and runoff scalars
+-	R = 0;          // runoff [kg]
++	Rsum = 0;       // runoff [kg]
+ 	sumM = 0;       // total melt [kg]
+ 	mAdd = 0;       // mass added/removed to/from base of model [kg]
+ 	addE = 0;       // energy added/removed to/from base of model [J]
+ 
+-	// calculate temperature excess above 0 °C
++	// calculate temperature excess above 0 deg C
+ 	exsT=xNewZeroInit<IssmDouble>(n);
+ 	for(int i=0;i<n;i++) exsT[i]= fmax(0, T[i] - CtoK);        // [K] to [°C]
+ 
+@@ -1263,7 +1271,7 @@
+ 	//// REFREEZE PORE WATER
+ 	// check if any pore water
+ 	if (cellsum(W,n) > 0){
+-		// _printf_("PORE WATER REFREEZE");
++		if(VerboseSmb() && sid==0 && IssmComm::GetRank()==0)_printf0_("      pore water refreeze\n");
+ 		// calculate maximum freeze amount, maxF [kg]
+ 		for(int i=0;i<n;i++) maxF[i] = fmax(0, -((T[i] - CtoK) * m[i] * CI) / LF);
+ 
+@@ -1275,11 +1283,13 @@
+ 		for(int i=0;i<n;i++) T[i] = T[i] + (dW[i]*(LF+(CtoK - T[i])*CI)/(m[i]*CI));      // temperature [K]
+ 
+ 		// if pore water froze in ice then adjust d and dz thickness
+-		for(int i=0;i<n;i++)if(d[i]>dIce)d[i]=m[i]/d[i];
++		for(int i=0;i<n;i++)if(d[i]>dIce)d[i]=dIce;
++		for(int i=0;i<n;i++) dz[i]= m[i]/d[i];
+ 	}
+ 
+ 	// squeeze water from snow pack
+-	exsW=xNew<IssmDouble>(n); for(int i=0;i<n;i++){
++	exsW=xNew<IssmDouble>(n); 
++	for(int i=0;i<n;i++){
+ 		Wi= (910 - d[i]) * Swi * (m[i] / d[i]);        // irreducible water content [kg]
+ 		exsW[i] = fmax(0, W[i] - Wi);                  // water "squeezed" from snow [kg]
+ 	}
+@@ -1304,7 +1314,7 @@
+ 			int i = 0;
+ 			while (cellsum(surpE,n) > 0){
+ 				// use surplus energy to increase the temperature of lower cell
+-				T[i+i] = surpE[i] * m[i+1]/CI + T[i+i];
++				T[i+1] = surpE[i] * m[i+1]/CI + T[i+1];
+ 				surpT[i+1] = fmax(0, (T[i+1] - CtoK - 159.1342));
+ 				surpE[i+1] = surpT[i+1] * CI / m[i+1];
+ 
+@@ -1325,8 +1335,9 @@
+ 		for(int i=0;i<n;i++)maxF[i] = fmax(0, -((T[i] - CtoK) * d[i] * dz[i] * CI)/ LF);
+ 
+ 		// initialize refreeze, runoff, flxDn and dW vectors [kg]
+-		F = xNewZeroInit<IssmDouble>(n); 
+-		R = xNewZeroInit<IssmDouble>(n);
++		IssmDouble* F = xNewZeroInit<IssmDouble>(n); 
++		IssmDouble* R=xNewZeroInit<IssmDouble>(n); 
++
+ 		for(int i=0;i<n;i++)dW[i] = 0;
+ 		flxDn=xNewZeroInit<IssmDouble>(n+1); for(int i=0;i<n;i++)flxDn[i+1]=F[i];
+ 
+@@ -1435,10 +1446,17 @@
+ 		celldelete(&re,n,D,D_size);
+ 		celldelete(&gdn,n,D,D_size);
+ 		celldelete(&gsp,n,D,D_size);
++		celldelete(&EI,n,D,D_size);
++		celldelete(&EW,n,D,D_size);
++		celldelete(&R,n,D,D_size);
+ 		n=D_size;
+ 	
+ 		// calculate new grid lengths
+ 		for(int i=0;i<n;i++)dz[i] = m[i] / d[i];
++
++		//calculate Rsum: 
++		Rsum=cellsum(R,n);
++	
+ 	}
+ 
+ 	// check if depth is too small
+@@ -1476,6 +1494,51 @@
+ 	xDelete<int>(D); D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999)D_size++; D=xNew<int>(D_size); 
+ 	D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999){ D[D_size] = i; D_size++;}
+ 
++	celldelete(&m,n,D,D_size);
++	celldelete(&W,n,D,D_size);
++	celldelete(&dz,n,D,D_size);
++	celldelete(&d,n,D,D_size);
++	celldelete(&T,n,D,D_size);
++	celldelete(&a,n,D,D_size);
++	celldelete(&re,n,D,D_size);
++	celldelete(&gdn,n,D,D_size);
++	celldelete(&gsp,n,D,D_size);
++	celldelete(&EI,n,D,D_size);
++	celldelete(&EW,n,D,D_size);
++	n=D_size;
++
++	// check if any of the top 10 cell depths are too large
++	X=0;
++	for(int i=9;i>=0;i--){
++		if(dz[i]> 2* dzMin){
++			X=i;
++			break;
++		}
++	}
++	
++	i=0;
++	while(i<=X){
++		if (dz [i] > dzMin *2){
++
++			// _printf_("dz > dzMin * 2");
++			// split in two
++			cellsplit(&dz, n, i,.5);
++			cellsplit(&W, n, i,.5);
++			cellsplit(&m, n, i,.5);
++			cellsplit(&T, n, i,1.0);
++			cellsplit(&d, n, i,1.0);
++			cellsplit(&a, n, i,1.0);
++			cellsplit(&EI, n, i,1.0);
++			cellsplit(&EW, n, i,1.0);
++			cellsplit(&re, n, i,1.0);
++			cellsplit(&gdn, n, i,1.0);
++			cellsplit(&gsp, n, i,1.0);
++			n++;
++			X=X+1;
++		}
++		else i++;
++	}
++
+ 	//// CORRECT FOR TOTAL MODEL DEPTH
+ 	// WORKS FINE BUT HAS BEEN DISABLED FOR CONVIENCE OF MODEL OUTPUT
+ 	// INTERPRETATION
+@@ -1515,39 +1578,34 @@
+ 	//// CHECK FOR MASS AND ENERGY CONSERVATION
+ 
+ 	// calculate final mass [kg] and energy [J]
+-	ER=xNew<IssmDouble>(n);
+-	Rsum = cellsum(R,n);
++	sumER = Rsum * (LF + CtoK * CI);
+ 	for(int i=0;i<n;i++)EI[i] = m[i] * T[i] * CI;
+-	for(int i=0;i<n;i++)ER[i] = R[i] * (LF + CtoK * CI);
+ 	for(int i=0;i<n;i++)EW[i] = W[i] * (LF + CtoK * CI);
+ 
+ 	mSum1 = cellsum(W,n) + cellsum(m,n) + Rsum;
+ 	sumE1 = cellsum(EI,n) + cellsum(EW,n);
+-	sumER = cellsum(ER,n);
+ 
+ 	dm = round(mSum0 - mSum1 + mAdd);
+ 	dE = round(sumE0 - sumE1 - sumER +  addE);
++	
++	for(int i=0;i<n;i++) if (W[i]<0) _error_("negative pore water generated in melt equations\n");
+ 
+-	if (dm !=0  && dE !=0) _printf_("mass and energy are not conserved in melt equations");
+-	else if (dm != 0) _printf_("mass is not conserved in melt equations");
+-	else if (dE != 0) _printf_("energy is not conserved in melt equations");
++	if (dm !=0  || dE !=0) _error_("mass or energy are not conserved in melt equations\n" 
++			<< "dm: " << dm << " dE: " << dE << "\n");
+ 
+-	// W = round(W * 10000)/10000;
+-	for(int i=0;i<n;i++) if (W[i]<0) _error_("negative pore water generated in melt equations");
+-
++	
+ 	/*Free ressources:*/
+ 	if(m)xDelete<IssmDouble>(m);
+ 	if(EI)xDelete<IssmDouble>(EI);
++	if(EW)xDelete<IssmDouble>(EW);
+ 	if(maxF)xDelete<IssmDouble>(maxF);
+ 	if(dW)xDelete<IssmDouble>(dW);
+ 	if(exsW)xDelete<IssmDouble>(exsW);
+ 	if(exsT)xDelete<IssmDouble>(exsT);
+ 	if(surpT)xDelete<IssmDouble>(surpT);
+ 	if(surpE)xDelete<IssmDouble>(surpE);
+-	if(F)xDelete<IssmDouble>(F);
+ 	if(flxDn)xDelete<IssmDouble>(flxDn);
+ 	if(D)xDelete<int>(D);
+-	if(R)xDelete<IssmDouble>(R);
+ 	if(M)xDelete<IssmDouble>(M);
+ 	
+ 	/*Assign output pointers:*/
+@@ -1629,7 +1687,7 @@
+ 
+ 	IssmDouble* obp = xNew<IssmDouble>(m);
+ 	obp[0]=0;
+-	for(int i=1;i<m;i++)obp[i]=cumdz[i]*d[i];
++	for(int i=1;i<m;i++)obp[i]=cumdz[i-1]*d[i-1];
+ 	
+ 	// calculate new snow/firn density for:
+ 	//   snow with densities <= 550 [kg m-3]
+@@ -1654,8 +1712,8 @@
+ 
+ 				// common variable
+ 				H = exp((-60/(T[i] * 8.314))) * obp[i] / pow(re[i]/1000,2.0);
+-				c0 = 9.2E-9 * H;
+-				c1 = 3.7E-9 * H;
++				c0 = 9.2e-9 * H;
++				c1 = 3.7e-9 * H;
+ 				break;
+ 
+ 			case 4: // Li and Zwally (2004)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19582-19583.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19582-19583.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19582-19583.diff	(revision 20498)
@@ -0,0 +1,120 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19582)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19583)
+@@ -2163,6 +2163,7 @@
+ 	IssmDouble  mAdd;
+ 	int         m;
+ 	IssmDouble  SmbMassBalance=0;
++	int         count=0;
+ 	/*}}}*/
+ 
+ 	/*only compute SMB at the surface: */
+@@ -2245,7 +2246,6 @@
+ 		W = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)W[i]=0;             //set water content to zero [kg m-2]
+ 		a = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)a[i]=aSnow;         //set albedo equal to fresh snow [fraction] 
+ 		T = xNewZeroInit<IssmDouble>(m); for(int i=0;i<m;i++)T[i]=Tmean;         //set initial grid cell temperature to the annual mean temperature [K]
+-		swf = xNewZeroInit<IssmDouble>(m); 
+ 
+ 		//fixed lower temperatuer bounday condition - T is fixed
+ 		T_bottom=T[m-1];
+@@ -2264,7 +2264,6 @@
+ 		DoubleArrayInput* W_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbWEnum));_assert_(W_input);
+ 		DoubleArrayInput* a_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbAEnum));_assert_(a_input);
+ 		DoubleArrayInput* T_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbTEnum));_assert_(T_input);
+-		DoubleArrayInput* swf_input= dynamic_cast<DoubleArrayInput*>(this->GetInput(SmbSwfEnum));_assert_(swf_input);
+ 		
+ 		/*Recover arrays: */
+ 		dz_input->GetValues(&dz,&m);
+@@ -2276,7 +2275,9 @@
+ 		W_input->GetValues(&W,&m);
+ 		a_input->GetValues(&a,&m);
+ 		T_input->GetValues(&T,&m);
+-		swf_input->GetValues(&swf,&m);
++		
++		//fixed lower temperatuer bounday condition - T is fixed
++		T_bottom=T[m-1];
+ 
+ 	} /*}}}*/
+ 
+@@ -2291,9 +2292,10 @@
+ 	time-=dt;
+ 
+ 	/*Start loop: */
++	count=1;
+ 	for (t=time;t<=time+dt;t=t+smb_dt){
+ 
+-		if(VerboseSmb() && this->Sid()==0 && IssmComm::GetRank()==0)_printf0_("Time: t=" << setprecision(8) << t/365.0/24.0/3600.0 << " yr/" << (time+dt)/365.0/24.0/3600.0 << " yr" << "\n");
++		if(VerboseSmb() && this->Sid()==0 && IssmComm::GetRank()==0)_printf0_("Time: t=" << setprecision(8) << t/365.0/24.0/3600.0 << " yr/" << (time+dt)/365.0/24.0/3600.0 << " yr" << setprecision(3) << " Step: " << count << "\n");
+ 
+ 		/*extract daily data:{{{*/
+ 		Ta_input->GetInputValue(&Ta,gauss,t);//screen level air temperature [K]
+@@ -2314,8 +2316,11 @@
+ 		
+ 					
+ 		/*Distribution of absorbed short wave radation with depth:*/
+-        if(isshortwave)shortwave(swf, swIdx, aIdx, dsw, a[0], d, dz, re,m,this->Sid());
++        if(isshortwave)shortwave(&swf, swIdx, aIdx, dsw, a[0], d, dz, re,m,this->Sid());
+ 		
++		/*Calculate net shortwave [W m-2]*/
++        netSW = cellsum(swf,m);
++
+ 		/*Thermal profile computation:*/
+         if(isthermal)thermo(&EC, T, dz, d, swf, dlw, Ta, V, eAir, pAir, W[0], smb_dt, m, Vz, Tz,this->Sid());     
+ 
+@@ -2337,13 +2342,27 @@
+ 		 * sub-time step in thermo equations*/
+         ulw = 5.67E-8 * pow(T[0],4.0);
+ 
+-		/*Calculate net shortwave and longwave [W m-2]*/
+-        netSW = cellsum(swf,m);
++		/*Calculate net longwave [W m-2]*/
+         netLW = dlw - ulw;
+ 		
+ 		/*Calculate turbulent heat fluxes [W m-2]*/
+         if(isturbulentflux)turbulentFlux(&shf, &lhf, &dayEC, Ta, T[0], V, eAir, pAir, d[0], W[0], Vz, Tz,this->Sid());
+ 		
++		/*Verbose some resuls in debug mode: {{{*/
++		if(VerboseSmb() && 0){ 
++			_printf_("smb log: count[" << count << "] m[" << m << "] " 
++				<< setprecision(16)   << "T[" << cellsum(T,m)  << "] " 
++					                  << "d[" << cellsum(d,m)  << "] "
++					                  << "dz[" << cellsum(dz,m)  << "] "
++					                  << "a[" << cellsum(a,m)  << "] "
++					                  << "W[" << cellsum(W,m)  << "] "
++					                  << "re[" << cellsum(re,m)  << "] "
++					                  << "gdn[" << cellsum(gdn,m)  << "] "
++					                  << "gsp[" << cellsum(gsp,m)  << "] "
++					                  << "swf[" << netSW << "] "
++									  << "\n");
++		} /*}}}*/
++		
+ 		/*Sum component mass changes [kg m-2]*/
+         sumMassAdd = mAdd + sumMassAdd;
+         sumM = M + sumM;
+@@ -2358,13 +2377,14 @@
+         dMass = round(dMass * 100.0)/100.0;
+ 
+ 		/*Check mass conservation:*/
+-        if(!VerboseSmb())if (dMass != 0.0) _printf_("total system mass not conserved in MB function");
++        if (dMass != 0.0) _printf_("total system mass not conserved in MB function");
+ 		
+ 		/*Check bottom grid cell T is unchanged:*/
+-        if(!VerboseSmb())if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom" << "\n");
++        if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom" << "\n");
+ 		
+ 		SmbMassBalance += sumP + sumEC - sumR; //increment SMB for the entire time span of ice-flow dynamics.
+ 
++		count++;
+ 
+ 	} //for (t=time;t<=time+dt;t=t+smb_dt)
+ 
+@@ -2391,6 +2411,8 @@
+ 	xDelete<IssmDouble>(W);
+ 	xDelete<IssmDouble>(a);
+ 	xDelete<IssmDouble>(T);
++	xDelete<IssmDouble>(swf);
++	delete gauss;
+ 	/*}}}*/
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19583-19584.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19583-19584.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19583-19584.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp	(revision 19583)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp	(revision 19584)
+@@ -26,6 +26,9 @@
+ }
+ /*}}}*/
+ DoubleArrayInput::~DoubleArrayInput(){/*{{{*/
++
++	if(values)xDelete<IssmDouble>(values);
++
+ 	return;
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19584-19585.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19584-19585.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19584-19585.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19584)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19585)
+@@ -117,18 +117,18 @@
+ 					fprintf(fid,'LD_PRELOAD=%s \\\n',cluster.valgrindlib);
+ 					if ismac, 
+ 						if IssmConfig('_HAVE_MPI_'),
+-							fprintf(fid,'mpiexec -np %i %s --leak-check=full --dsymutil=yes --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
++							fprintf(fid,'mpiexec -np %i %s --leak-check=full --error-limit=no --dsymutil=yes --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
+ 							cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname], modelname,modelname,modelname);
+ 						else
+-							fprintf(fid,'%s --leak-check=full --dsymutil=yes --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
++							fprintf(fid,'%s --leak-check=full --dsymutil=yes --error-limit=no --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
+ 							cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname], modelname,modelname,modelname);
+ 						end
+ 					else
+ 						if IssmConfig('_HAVE_MPI_'),
+-							fprintf(fid,'mpiexec -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
++							fprintf(fid,'mpiexec -np %i %s --leak-check=full --error-limit=no --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
+ 							cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						else
+-							fprintf(fid,'%s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
++							fprintf(fid,'%s --leak-check=full --error-limit=no --suppressions=%s %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',...
+ 							cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						end
+ 					end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19585-19586.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19585-19586.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19585-19586.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/plot/plotgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotgemb.m	(revision 0)
++++ ../trunk-jpl/src/m/plot/plotgemb.m	(revision 19586)
+@@ -0,0 +1,47 @@
++function plotgemb(results,fieldname,varargin);
++
++	options=pairoptions(varargin{:});
++
++	zerolevel= getfieldvalue(options,'zerolevel',0);
++	numlevels= getfieldvalue(options,'numlevels',-1);
++	element= getfieldvalue(options,'element',1);
++	maxstep=getfieldvalue(options,'maxstep',length(results));
++
++	%number of results: 
++	nt=length(results); 
++
++	for i=1:nt, 
++
++		z0=zerolevel;
++
++		%retrieve time, and delta around time: 
++		time=results(i).time;
++		if i<nt,
++			deltat=results(i+1).time-time;
++		else
++			deltat=time-results(i-1).time;
++		end
++
++		%figure out number of levels: 
++		dz=flipud(results(i).SmbDz(element,:)') ;
++		if numlevels==-1,
++			nlevels=length(dz); 
++		else
++			nlevels=numlevels;
++		end
++		dz=dz(1:nlevels);
++
++		%retrieve values: 
++		field=results(i).(fieldname);
++		T=flipud(field(element,1:nlevels)');
++
++		%build vertical values: 
++		nz=length(dz); 
++		for j=1:nz, 
++			patch([time-deltat/2 ;time+deltat/2; time+deltat/2; time-deltat/2],[z0; z0; z0+dz(j); z0+dz(j)],[T(j);T(j);T(j);T(j)]);
++			z0=z0+dz(j);
++		end
++		if i>=maxstep,
++			break;
++		end
++	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19586-19587.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19586-19587.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19586-19587.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19586)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19587)
+@@ -257,7 +257,7 @@
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+-			yts=365.0*24.0*3600.0;
++			yts=365.25*24.0*3600.0;
+ 
+ 			WriteData(fid,'enum',SmbEnum(),'data',SMBgembEnum(),'format','Integer');
+ 			
+@@ -305,7 +305,7 @@
+ 			WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double','scale',1);
+ 
+ 			%figure out dt from forcings: 
+-			time=self.Ta(end,:); %assume all forcings are one the same time step
++			time=self.Ta(end,:); %assume all forcings are on the same time step
+ 			dtime=diff(time,1);
+ 			dt=min(dtime);
+ 			WriteData(fid,'data',dt,'enum',SmbDtEnum,'format','Double','scale',yts);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19587-19588.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19587-19588.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19587-19588.diff	(revision 20498)
@@ -0,0 +1,125 @@
+Index: ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19587)
++++ ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19588)
+@@ -1,5 +1,14 @@
+---- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-05-22 18:31:17.780392900 -0700
+-+++ ./m4/libtool.m4	2015-05-22 18:35:16.669058700 -0700
++--- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-09-24 19:28:57.393566400 -0700
+++++ /home/daeden/tmp/libtool.m4	2015-09-25 11:30:45.133747600 -0700
++@@ -2382,7 +2382,7 @@
++     # Native MSVC
++     libname_spec='$name'
++     soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
++-    library_names_spec='${libname}.dll.lib'
+++    library_names_spec='${libname}${shrext_cmds}'
++ 
++     case $build_os in
++     mingw*)
+ @@ -3142,7 +3142,7 @@
+  case $host_os in
+    cygwin* | mingw* | pw32* | cegcc*)
+@@ -14,7 +23,7 @@
+  
+        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ -        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+        _LT_TAGVAR(archive_cmds, $1)='$CC /LD $libobjs $deplibs $compiler_flags -o $output_objdir/$soname '
+++        _LT_TAGVAR(archive_cmds, $1)='$CC /LD $libobjs $deplibs $compiler_flags /OUT:$output_objdir/$soname '
+  	# If the export-symbols file already is a .def file (1st line
+  	# is EXPORTS), use it as is; otherwise, prepend...
+  	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+@@ -23,16 +32,49 @@
+  	  cat $export_symbols >> $output_objdir/$soname.def;
+  	fi~
+ -	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	$CC /LD $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname '
+++	$CC /LD $output_objdir/$soname.def $libobjs $deplibs $compiler_flags /OUT:$output_objdir/$soname '
+        else
+  	_LT_TAGVAR(ld_shlibs, $1)=no
+        fi
++@@ -5130,13 +5130,13 @@
++ 	# Tell ltmain to make .dll files, not .so files.
++ 	shrext_cmds=".dll"
++ 	# FIXME: Setting linknames here is a bad hack.
++-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+++	_LT_TAGVAR(archive_cmds, $1)='$CC /OUT:$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ 	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+++	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ 	  else
++-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+++	    sed -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ 	  fi~
++-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+++	  $CC /OUT:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
++ 	  linknames='
++ 	# The linker will not automatically build a static lib if we build a DLL.
++ 	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
++@@ -6131,11 +6131,11 @@
++ 	  # FIXME: Setting linknames here is a bad hack.
++ 	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
++ 	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
++-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+++	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ 	    else
++-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+++	      $SED -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ 	    fi~
++-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+++	    $CC /Fo:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
++ 	    linknames='
++ 	  # The linker will not automatically build a static lib if we build a DLL.
++ 	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ @@ -6168,7 +6168,7 @@
+  	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+  
+  	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ -	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	    _LT_TAGVAR(archive_cmds, $1)='$CC /LD -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname '
+++	    _LT_TAGVAR(archive_cmds, $1)='$CC /LD -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags /OUT:$output_objdir/$soname '
+  	    # If the export-symbols file already is a .def file (1st line
+  	    # is EXPORTS), use it as is; otherwise, prepend...
+  	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+@@ -41,7 +83,7 @@
+  	      cat $export_symbols >> $output_objdir/$soname.def;
+  	    fi~
+ -	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+-+	    $CC /LD -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname '
+++	    $CC /LD -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags /OUT:$output_objdir/$soname '
+  	  else
+  	    _LT_TAGVAR(ld_shlibs, $1)=no
+  	  fi
+Index: ../trunk-jpl/externalpackages/autotools/patches/automake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/patches/automake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/autotools/patches/automake.patch	(revision 19588)
+@@ -0,0 +1,13 @@
++--- ./externalpackages/autotools/install/bin/automake	2015-09-24 19:26:11.796659200 -0700
+++++ /home/daeden/tmp/automake	2015-09-25 11:32:53.557609300 -0700
++@@ -702,8 +702,8 @@
++ 		   'compile' => "\$(CXX) @cpplike_flags \$(AM_CXXFLAGS) \$(CXXFLAGS)",
++ 		   'ccer' => 'CXX',
++ 		   'compiler' => 'CXXCOMPILE',
++-		   'compile_flag' => '-c',
++-		   'output_flag' => '-o',
+++		   'compile_flag' => '/c',
+++		   'output_flag' => '/Fo:',
++ 		   'libtool_tag' => 'CXX',
++ 		   'lder' => 'CXXLD',
++ 		   'ld' => '$(CXX)',
+Index: ../trunk-jpl/externalpackages/autotools/install-win.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19587)
++++ ../trunk-jpl/externalpackages/autotools/install-win.sh	(revision 19588)
+@@ -44,5 +44,10 @@
+ cd ..
+ 
+ # This patch takes care of removing options passed to the linker that casuse 
+-# the build to fail.
++# the build to fail, as well as changing some flags to match up to Microsoft
++# compilers.
+ patch ./install/share/aclocal/libtool.m4 < ./patches/libtool.m4.patch
++
++# Small change to Automake in order to get the right flags for Microsoft's
++# compiler.
++patch ./install/bin/automake < ./patches/automake.patch
Index: /issm/oecreview/Archive/19101-20495/ISSM-19588-19589.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19588-19589.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19588-19589.diff	(revision 20498)
@@ -0,0 +1,141 @@
+Index: ../trunk-jpl/test/NightlyRun/gemb.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19588)
++++ ../trunk-jpl/test/NightlyRun/gemb.m	(revision 19589)
+@@ -1,44 +0,0 @@
+-%Test Name: SquareShelfSMBGemb
+-md=triangle(model(),'../Exp/Square.exp',500000.);
+-md=setmask(md,'all','');
+-md=parameterize(md,'../Par/SquareShelf.par');
+-md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',1); % 3 for the cluster
+-
+-%md.verbose=verbose('all');
+-
+-% Use of Gemb method for SMB computation
+-md.smb = SMBgemb(md.mesh,md.geometry);
+-
+-%load hourly surface forcing date from 1979 to 2009:
+-inputs=load('~/gemb/TEST/TEST_INPUT_1.mat');
+-
+-dateN=inputs.dateN/365.25; %convert in years
+-md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
+-md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
+-md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
+-md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
+-md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
+-md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
+-md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
+-
+-md.smb.Vz=repmat(inputs.LP.Vz,md.mesh.numberofelements,1);
+-md.smb.Tz=repmat(inputs.LP.Tz,md.mesh.numberofelements,1);
+-md.smb.Tmean=repmat(inputs.LP.Tmean,md.mesh.numberofelements,1);
+-md.smb.C=repmat(inputs.LP.C,md.mesh.numberofelements,1);
+-
+-%settings
+-md.smb.ismelt=0;
+-md.smb.isthermal=0;
+-md.smb.isalbedo=0;
+-md.transient.isstressbalance=0;
+-md.transient.ismasstransport=0;
+-md.transient.isthermal=0;
+-md.timestepping.start_time=2000;
+-md.timestepping.final_time=2001;
+-md.timestepping.time_step=1/12; %monthly
+-
+-md.verbose=verbose('11111111');
+-
+-%Run transient
+-md=solve(md,TransientSolutionEnum());
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 19589)
+@@ -0,0 +1,67 @@
++%Test Name: SquareShelfSMBGemb
++md=triangle(model(),'../Exp/Square.exp',500000.);
++md=setmask(md,'all','');
++md=parameterize(md,'../Par/SquareShelf.par');
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',4); % 3 for the cluster
++
++%md.verbose=verbose('all');
++
++% Use of Gemb method for SMB computation
++md.smb = SMBgemb(md.mesh,md.geometry);
++
++%load hourly surface forcing date from 1979 to 2009:
++inputs=load('../Data/gemb_input.mat');
++
++%setup the time line: 
++deltatindays=(inputs.dateN(2) - inputs.dateN(1));
++dateN=(1979:deltatindays/365.25:2011)';
++dateN(length(inputs.dateN)+1:end)=[];
++
++%setup the inputs: 
++md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
++md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
++md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
++md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
++md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
++md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
++md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
++md.smb.Vz=repmat(inputs.LP.Vz,md.mesh.numberofelements,1);
++md.smb.Tz=repmat(inputs.LP.Tz,md.mesh.numberofelements,1);
++md.smb.Tmean=repmat(inputs.LP.Tmean,md.mesh.numberofelements,1);
++md.smb.C=repmat(inputs.LP.C,md.mesh.numberofelements,1);
++
++%smb settings
++md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC','SmbA','SmbMassBalance','SmbSwf'};
++
++md.materials.rho_ice=910;
++md.timestepping.interp_forcings=0;
++
++%only run smb core: 
++md.transient.isstressbalance=0;
++md.transient.ismasstransport=0;
++md.transient.isthermal=0;
++
++%time stepping: 
++md.timestepping.start_time=1979;
++md.timestepping.final_time=1980;
++md.timestepping.time_step=.1;
++
++%Run transient
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names          ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance'};
++field_tolerances     ={'1e-13','1e-13','1e-13','1e-13','1e-13' ,'1e-13' ,'1e-13','1e-13','1e-13'};
++
++field_values={...
++	(md.results.TransientSolution(end).SmbDz(1,:)),...
++	(md.results.TransientSolution(end).SmbT(1,:)),...
++	(md.results.TransientSolution(end).SmbD(1,:)),...
++	(md.results.TransientSolution(end).SmbRe(1,:)),...
++	(md.results.TransientSolution(end).SmbGdn(1,:)),...
++	(md.results.TransientSolution(end).SmbGsp(1,:)),...
++	(md.results.TransientSolution(end).SmbA(1,:)),...
++	(md.results.TransientSolution(end).SmbEC(1)),...
++	(md.results.TransientSolution(end).SmbMassBalance(1)),...
++	};
+Index: ../trunk-jpl/test/Archives/Archive243.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive243.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/test/Data/gemb_input.mat
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Data/gemb_input.mat
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19589-19590.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19589-19590.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19589-19590.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19589)
++++ ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19590)
+@@ -1,5 +1,5 @@
+---- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-09-24 19:28:57.393566400 -0700
+-+++ /home/daeden/tmp/libtool.m4	2015-09-25 11:30:45.133747600 -0700
++--- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-09-25 12:22:44.498051700 -0700
+++++ /home/daeden/tmp/libtool.m4	2015-09-25 12:24:23.070426400 -0700
+ @@ -2382,7 +2382,7 @@
+      # Native MSVC
+      libname_spec='$name'
+@@ -43,26 +43,18 @@
+ -	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+ +	_LT_TAGVAR(archive_cmds, $1)='$CC /OUT:$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+  	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+--	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+-+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++ 	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+  	  else
+--	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+-+	    sed -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ 	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+  	  fi~
+ -	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ +	  $CC /OUT:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
+  	  linknames='
+  	# The linker will not automatically build a static lib if we build a DLL.
+  	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+-@@ -6131,11 +6131,11 @@
+- 	  # FIXME: Setting linknames here is a bad hack.
+- 	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+- 	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+--	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+-+	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++@@ -6135,7 +6135,7 @@
+  	    else
+--	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+-+	      $SED -e 's/\\\\\\\(.*\\\\\\\)/\/link\\\ \/EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
++ 	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+  	    fi~
+ -	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ +	    $CC /Fo:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
Index: /issm/oecreview/Archive/19101-20495/ISSM-19590-19591.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19590-19591.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19590-19591.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19590)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19591)
+@@ -10,6 +10,7 @@
+ 		 % {{{
+ 		 name          = 'lonestar.tacc.utexas.edu'
+ 		 login         = '';
++		 modules        = {'mkl/10.3'};
+ 		 numnodes      = 1;
+ 		 cpuspernode   = 12;
+ 		 port          = 0;
+@@ -38,6 +39,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
++			 disp(sprintf('    modules: %s',strjoin(cluster.modules,', ')));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -109,10 +111,13 @@
+ 			 fprintf(fid,'#$ -q %s \n',cluster.queue);
+ 			 fprintf(fid,'#$ -R y\n');
+ 			 fprintf(fid,'#$ -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#$ -e %s.errlog \n\n',modelname);
+-			 fprintf(fid,'#$ -pe 12way %i \n\n',cluster.np);
++			 fprintf(fid,'#$ -e %s.errlog \n',modelname);
++			 fprintf(fid,'#$ -pe 12way %i \n',cluster.np);
+ 			 fprintf(fid,'#$ -l h_rt=%02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
+-
++			 for i=1:numel(cluster.modules),
++				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
++			 end
++			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19591-19592.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19591-19592.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19591-19592.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19591)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19592)
+@@ -112,7 +112,7 @@
+ 			 fprintf(fid,'#$ -R y\n');
+ 			 fprintf(fid,'#$ -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#$ -e %s.errlog \n',modelname);
+-			 fprintf(fid,'#$ -pe 12way %i \n',cluster.np);
++			 fprintf(fid,'#$ -pe 12way %i \n',cluster.numnodes*12);
+ 			 fprintf(fid,'#$ -l h_rt=%02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
+ 			 for i=1:numel(cluster.modules),
+ 				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19592-19593.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19592-19593.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19592-19593.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19592)
++++ ../trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch	(revision 19593)
+@@ -1,5 +1,5 @@
+---- ./externalpackages/autotools/install/share/aclocal/libtool.m4	2015-09-25 12:22:44.498051700 -0700
+-+++ /home/daeden/tmp/libtool.m4	2015-09-25 12:24:23.070426400 -0700
++--- ./install/share/aclocal/libtool.m4	2015-09-25 15:51:40.870862200 -0700
+++++ /home/daeden/tmp/libtool.m4	2015-09-25 15:42:15.385935100 -0700
+ @@ -2382,7 +2382,7 @@
+      # Native MSVC
+      libname_spec='$name'
+@@ -36,19 +36,12 @@
+        else
+  	_LT_TAGVAR(ld_shlibs, $1)=no
+        fi
+-@@ -5130,13 +5130,13 @@
+- 	# Tell ltmain to make .dll files, not .so files.
+- 	shrext_cmds=".dll"
+- 	# FIXME: Setting linknames here is a bad hack.
+--	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+-+	_LT_TAGVAR(archive_cmds, $1)='$CC /OUT:$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+- 	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+- 	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
++@@ -5136,7 +5136,7 @@
+  	  else
+  	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+  	  fi~
+ -	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+-+	  $CC /OUT:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
+++	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
+  	  linknames='
+  	# The linker will not automatically build a static lib if we build a DLL.
+  	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+@@ -57,7 +50,7 @@
+  	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+  	    fi~
+ -	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+-+	    $CC /Fo:$tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
+++	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs~
+  	    linknames='
+  	  # The linker will not automatically build a static lib if we build a DLL.
+  	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
Index: /issm/oecreview/Archive/19101-20495/ISSM-19593-19594.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19593-19594.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19593-19594.diff	(revision 20498)
@@ -0,0 +1,198 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19593)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19594)
+@@ -395,6 +395,7 @@
+ 	SmbGdnEnum,
+ 	SmbGspEnum,
+ 	SmbECEnum,
++	SmbCondensationEnum,
+ 	SmbWEnum,
+ 	SmbAEnum,
+ 	SmbTEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19593)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19594)
+@@ -397,6 +397,7 @@
+ 		case SmbGdnEnum : return "SmbGdn";
+ 		case SmbGspEnum : return "SmbGsp";
+ 		case SmbECEnum : return "SmbEC";
++		case SmbCondensationEnum : return "SmbCondensation";
+ 		case SmbWEnum : return "SmbW";
+ 		case SmbAEnum : return "SmbA";
+ 		case SmbTEnum : return "SmbT";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19593)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19594)
+@@ -406,6 +406,7 @@
+ 	      else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum;
+ 	      else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
+ 	      else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
++	      else if (strcmp(name,"SmbCondensation")==0) return SmbCondensationEnum;
+ 	      else if (strcmp(name,"SmbW")==0) return SmbWEnum;
+ 	      else if (strcmp(name,"SmbA")==0) return SmbAEnum;
+ 	      else if (strcmp(name,"SmbT")==0) return SmbTEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
+ 	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
+ 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
+-	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
++	      if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
++	      else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
+ 	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
+ 	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
+ 	      else if (strcmp(name,"LevelsetStabilization")==0) return LevelsetStabilizationEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"Fill")==0) return FillEnum;
+ 	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
+ 	      else if (strcmp(name,"Friction")==0) return FrictionEnum;
+-	      else if (strcmp(name,"Internal")==0) return InternalEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
++	      if (strcmp(name,"Internal")==0) return InternalEnum;
++	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
+ 	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
+ 	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
+ 	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"Outputdefinition")==0) return OutputdefinitionEnum;
+ 	      else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
+ 	      else if (strcmp(name,"Outputdefinition2")==0) return Outputdefinition2Enum;
+-	      else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
++	      if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
++	      else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
+ 	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
+ 	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
+ 	      else if (strcmp(name,"Outputdefinition7")==0) return Outputdefinition7Enum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"WeightsVyObs")==0) return WeightsVyObsEnum;
+ 	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
+ 	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
+-	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
++	      if (strcmp(name,"MinVx")==0) return MinVxEnum;
++	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
+ 	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
+ 	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
+ 	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19593)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19594)
+@@ -2128,9 +2128,10 @@
+ 	IssmDouble Tmean; 
+ 	IssmDouble C; 
+ 	IssmDouble Tz,Vz; 
+-	IssmDouble rho_ice, aSnow,aIce;
++	IssmDouble rho_ice, rho_water,aSnow,aIce;
+ 	IssmDouble time,dt;
+ 	IssmDouble t,smb_dt;
++	IssmDouble yts;
+ 	IssmDouble Ta,V,dlw,dsw,P,eAir,pAir;
+ 	int        aIdx=0;
+ 	int        denIdx=0;
+@@ -2162,7 +2163,6 @@
+ 	IssmDouble  R; 
+ 	IssmDouble  mAdd;
+ 	int         m;
+-	IssmDouble  SmbMassBalance=0;
+ 	int         count=0;
+ 	/*}}}*/
+ 
+@@ -2172,6 +2172,7 @@
+ 
+ 	/*Retrieve material properties and parameters:{{{ */
+ 	rho_ice = matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++	rho_water = matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
+ 	parameters->FindParam(&aSnow,SmbASnowEnum);
+ 	parameters->FindParam(&aIce,SmbAIceEnum);
+ 	parameters->FindParam(&time,TimeEnum);                        /*transient core time at which we run the smb core*/
+@@ -2382,12 +2383,11 @@
+ 		/*Check bottom grid cell T is unchanged:*/
+         if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom" << "\n");
+ 		
+-		SmbMassBalance += sumP + sumEC - sumR; //increment SMB for the entire time span of ice-flow dynamics.
+-
+ 		count++;
+ 
+ 	} //for (t=time;t<=time+dt;t=t+smb_dt)
+ 
++
+ 	/*Save generated inputs: */
+ 	this->AddInput(new DoubleArrayInput(SmbDzEnum,dz,m));
+ 	this->AddInput(new DoubleArrayInput(SmbDEnum,d,m));
+@@ -2399,9 +2399,13 @@
+ 	this->AddInput(new DoubleArrayInput(SmbWEnum,W,m));
+ 	this->AddInput(new DoubleArrayInput(SmbAEnum,a,m));
+ 	this->AddInput(new DoubleArrayInput(SmbSwfEnum,swf,m));
+-	this->AddInput(new DoubleInput(SmbMassBalanceEnum,time));
++	this->AddInput(new DoubleInput(SmbMassBalanceEnum,(sumP + sumEC -sumR)/rho_water/dt));
++	this->AddInput(new DoubleInput(SmbRunoffEnum,sumR/rho_water/dt));
++	this->AddInput(new DoubleInput(SmbPrecipitationEnum,sumP/rho_water/dt));
++	this->AddInput(new DoubleInput(SmbCondensationEnum,sumEC/rho_water/dt));
+ 
+ 
++
+ 	/*Free allocations:{{{*/
+ 	xDelete<IssmDouble>(dz);
+ 	xDelete<IssmDouble>(d);
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19593)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19594)
+@@ -199,6 +199,12 @@
+ 		field = field/10.^12*yts; %(GigaTon/year)
+ 	elseif strcmp(fieldname,'SmbMassBalance'),
+ 		field = field*yts;
++	elseif strcmp(fieldname,'SmbPrecipitation'),
++		field = field*yts;
++	elseif strcmp(fieldname,'SmbRunoff'),
++		field = field*yts;
++	elseif strcmp(fieldname,'SmbCondensation'),
++		field = field*yts;
+ 	elseif strcmp(fieldname,'SmbAccumulation'),
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'SmbMelt'),
+Index: ../trunk-jpl/src/m/enum/SmbCondensationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SmbCondensationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SmbCondensationEnum.m	(revision 19594)
+@@ -0,0 +1,11 @@
++function macro=SmbCondensationEnum()
++%SMBCONDENSATIONENUM - Enum of SmbCondensation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SmbCondensationEnum()
++
++macro=StringToEnum('SmbCondensation');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19593)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19594)
+@@ -389,6 +389,7 @@
+ def SmbGdnEnum(): return StringToEnum("SmbGdn")[0]
+ def SmbGspEnum(): return StringToEnum("SmbGsp")[0]
+ def SmbECEnum(): return StringToEnum("SmbEC")[0]
++def SmbCondensationEnum(): return StringToEnum("SmbCondensation")[0]
+ def SmbWEnum(): return StringToEnum("SmbW")[0]
+ def SmbAEnum(): return StringToEnum("SmbA")[0]
+ def SmbTEnum(): return StringToEnum("SmbT")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19594-19595.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19594-19595.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19594-19595.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/runme.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.m	(revision 19594)
++++ ../trunk-jpl/test/NightlyRun/runme.m	(revision 19595)
+@@ -219,7 +219,7 @@
+ 					error_diff=full(max(abs(archive(:)-field(:)))/(max(abs(archive))+eps));
+ 
+ 					%disp test result
+-					if (error_diff>tolerance);
++					if (error_diff>tolerance | isnan(error_diff));
+ 						disp(sprintf(['ERROR   difference: %-7.2g > %7.2g test id: %i test name: %s field: %s'],...
+ 							error_diff,tolerance,id,id_string,fieldname));
+ 						if(getfieldvalue(options,'stoponerror',0)), disp('STOP'); return; end
+Index: ../trunk-jpl/test/NightlyRun/runme.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.py	(revision 19594)
++++ ../trunk-jpl/test/NightlyRun/runme.py	(revision 19595)
+@@ -191,7 +191,7 @@
+ 								   (numpy.amax(numpy.abs(archive),axis=0)+sys.float_info.epsilon)
+ 
+ 						#disp test result
+-						if (numpy.any(error_diff>tolerance)):
++						if (numpy.any(error_diff>tolerance) or numpy.isnan(error_diff)):
+ 							print 'ERROR   difference: %-7.2g > %7.2g test id: %i test name: %s field: %s' % \
+ 								(error_diff,tolerance,id,id_string,fieldname)
+ 						else:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19595-19596.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19595-19596.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19595-19596.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19595)
++++ ../trunk-jpl/jenkins/windows	(revision 19596)
+@@ -46,9 +46,8 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="cccl        install-win7.sh
+-						autotools   install-win.sh
+-						petsc       install-3.5-win7.sh
++EXTERNALPACKAGES="autotools   install-win.sh
++						petsc       install-dev-win10.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19596-19597.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19596-19597.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19596-19597.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/configs/config-win64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win64.sh	(revision 19596)
++++ ../trunk-jpl/configs/config-win64.sh	(revision 19597)
+@@ -15,5 +15,5 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+    --with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" 
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni" 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19597-19598.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19597-19598.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19597-19598.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19597)
++++ ../trunk-jpl/jenkins/windows	(revision 19598)
+@@ -21,7 +21,7 @@
+ 	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni"'
+ 
+ #MATLAB path
+-MATLAB_PATH="/cygdrive/c/Program\ Files/MATLAB/R2014b/"
++MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19598-19599.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19598-19599.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19598-19599.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19598)
++++ ../trunk-jpl/jenkins/windows	(revision 19599)
+@@ -18,7 +18,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni"'
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni"'
+ 
+ #MATLAB path
+ MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19599-19600.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19599-19600.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19599-19600.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19599)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19600)
+@@ -19,8 +19,8 @@
+ #}}}
+ #Get Operating system (OS) name{{{
+ OS=$(uname -s)
+-if [[ $OS == "CYGWIN_NT-6.1-WOW64" ]]; then 
+-	OS="win7";
++if [[ $OS == "CYGWIN_NT-6.2" ]]; then 
++	OS="win";
+ fi
+ #}}}
+ 
+@@ -134,7 +134,7 @@
+ 	exit 1
+ fi
+ 
+-if [ "$OS" == "win7" ]
++if [ "$OS" == "win" ]
+ then
+ 	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+ fi
+@@ -214,7 +214,7 @@
+ done
+ 
+ #wait until matlab closes
+-if [ "$OS" = "win7" ]; then
++if [ "$OS" = "win" ]; then
+ 	echo "Waiting for matlab on windows"
+ 	pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
+ 	while [ -n "$pid" ]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19600-19601.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19600-19601.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19600-19601.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19600)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19601)
+@@ -24,7 +24,7 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
+-	source $config_dir/sdk7.1-win64.sh
++	source $config_dir/sdk10.0-win64.sh
+ elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "3" ]]; then 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19601-19602.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19601-19602.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19601-19602.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19601)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19602)
+@@ -134,13 +134,14 @@
+ 	exit 1
+ fi
+ 
++source $ISSM_DIR/etc/environment.sh
++
+ if [ "$OS" == "win" ]
+ then
++	echo "WINDOWS ENVIRONMENT DETECTED"
+ 	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+ fi
+ 
+-source $ISSM_DIR/etc/environment.sh
+-
+ #}}}
+ #ISSM compilation yes/no                (ISSM_COMPILATION) {{{
+ if [ "$ISSM_COMPILATION" == "yes" ]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19602-19603.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19602-19603.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19602-19603.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/externalpackages/windows/windows_environment.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19602)
++++ ../trunk-jpl/externalpackages/windows/windows_environment.sh	(revision 19603)
+@@ -24,9 +24,9 @@
+ #source corresponding environment variables: 
+ 
+ if [[ "$compiler" == "1" ]]; then 
++	source $config_dir/sdk10.0-win32.sh
++elif [[ "$compiler" == "2" ]]; then 
+ 	source $config_dir/sdk10.0-win64.sh
+-elif [[ "$compiler" == "2" ]]; then 
+-	source $config_dir/sdk7.1-win64.sh
+ elif [[ "$compiler" == "3" ]]; then 
+ 	source $config_dir/intel-win7.sh
+ else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19603-19604.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19603-19604.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19603-19604.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19603)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19604)
+@@ -211,7 +211,11 @@
+ 	exit
+ EOF
+ 	cd $ISSM_DIR/test/NightlyRun
++if [ "$OS" = "win" ]; then
++	$ISSM_DIR_WIN/externalpackages/matlab/install/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR_WIN/src/m/dev; devpath; addpath $ISSM_DIR_WIN/nightlylog/; matlab_run$i" -logfile $ISSM_DIR_WIN/nightlylog/matlab_log$i.log &
++else
+ 	$ISSM_DIR/externalpackages/matlab/install/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
++fi
+ done
+ 
+ #wait until matlab closes
Index: /issm/oecreview/Archive/19101-20495/ISSM-19606-19607.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19606-19607.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19606-19607.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19606)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19607)
+@@ -55,7 +55,12 @@
+ 			end
+ 			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
+ 			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
+-				error('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
++				if strcmp(elementtype(md.mesh),'Tria'),
++					numberemptyelements=length(find(icefront==3));
++				elseif strcmp(elementtype(md.mesh),'Penta')
++					numberemptyelements=length(find(icefront==6));
++				end
++				error([' ' num2str(numberemptyelements) ' have all nodes on ice front, change md.mask.ice_levelset to fix it'])
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19607-19608.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19607-19608.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19607-19608.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19607)
++++ ../trunk-jpl/jenkins/windows	(revision 19608)
+@@ -60,7 +60,7 @@
+ #ISSM_COMPILATION can have 2 values:
+ # - "yes" compile ISSM
+ # - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
++ISSM_COMPILATION="no"
+ 
+ #------------------------#
+ # 5: Nightly run options #
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19607)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19608)
+@@ -222,6 +222,9 @@
+ if [ "$OS" = "win" ]; then
+ 	echo "Waiting for matlab on windows"
+ 	pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
++	echo '-----------------------------'
++	echo "PID: $PID"
++	echo '-----------------------------'
+ 	while [ -n "$pid" ]
+ 	do
+ 		pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19608-19609.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19608-19609.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19608-19609.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19608)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19609)
+@@ -220,6 +220,7 @@
+ 
+ #wait until matlab closes
+ if [ "$OS" = "win" ]; then
++	sleep 5;
+ 	echo "Waiting for matlab on windows"
+ 	pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
+ 	echo '-----------------------------'
Index: /issm/oecreview/Archive/19101-20495/ISSM-19609-19610.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19609-19610.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19609-19610.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19609)
++++ ../trunk-jpl/jenkins/windows	(revision 19610)
+@@ -60,7 +60,7 @@
+ #ISSM_COMPILATION can have 2 values:
+ # - "yes" compile ISSM
+ # - "no"  do not compile ISSM
+-ISSM_COMPILATION="no"
++ISSM_COMPILATION="yes"
+ 
+ #------------------------#
+ # 5: Nightly run options #
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19609)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19610)
+@@ -224,7 +224,7 @@
+ 	echo "Waiting for matlab on windows"
+ 	pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
+ 	echo '-----------------------------'
+-	echo "PID: $PID"
++	echo "pid: $pid"
+ 	echo '-----------------------------'
+ 	while [ -n "$pid" ]
+ 	do
Index: /issm/oecreview/Archive/19101-20495/ISSM-19610-19611.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19610-19611.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19610-19611.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/mercurial/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mercurial/install.sh	(revision 19610)
++++ ../trunk-jpl/externalpackages/mercurial/install.sh	(revision 19611)
+@@ -18,7 +18,6 @@
+ #Apply patches
+ cd install 
+ #patch Lib/Makefile ../lib_Makefile.patch
+-exit
+ 
+ #Compile mercurial
+-make
++make local
Index: /issm/oecreview/Archive/19101-20495/ISSM-19611-19612.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19611-19612.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19611-19612.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19611)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19612)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
++NUMCPUS_RUN=2
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+Index: ../trunk-jpl/examples/Greenland/runme.m
+===================================================================
+--- ../trunk-jpl/examples/Greenland/runme.m	(revision 19611)
++++ ../trunk-jpl/examples/Greenland/runme.m	(revision 19612)
+@@ -1,5 +1,5 @@
+ clear all;
+-steps=[1];
++steps=[1 2 3 4 5];
+ 
+ %Location of SeaRISE dataset
+ ncdata='../Data/Greenland_5km_dev1.2.nc';
+@@ -116,14 +116,7 @@
+ 	md = loadmodel('./Models/Greenland.Transient');
+ 
+ 	%Planview plots
+-	plotmodel(md,'data',md.results.TransientSolution(end).Vel,'caxis',[1e-1 6000],...
+-		'log', 10, 'title', 'Velocity (m/y)','gridded',1, ...
+-		'data', md.results.TransientSolution(1).SurfaceforcingsMassBalance, ...
+-		'title', 'Surface mass balance (m/y)', 'gridded',1,...
+-		'data',md.results.TransientSolution(end).Thickness,...
+-		'title','Thickness (m)', 'gridded',1, ...
+-		'data',md.results.TransientSolution(end).Surface, ...
+-		'title', 'Surface (m)', 'gridded',1);
++	plotmodel(md,'data',md.results.TransientSolution(end).Vel,'caxis',[1e-1 6000],'log', 10, 'title', 'Velocity (m/y)','gridded',11);
+ 
+ 	%Line Plots
+ 	figure
Index: /issm/oecreview/Archive/19101-20495/ISSM-19612-19613.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19612-19613.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19612-19613.diff	(revision 20498)
@@ -0,0 +1,191 @@
+Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19612)
++++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp	(revision 19613)
+@@ -42,13 +42,15 @@
+ 	//check to see if the top grid cell structure length (dzTop) goes evenly 
+ 	//into specified top structure depth (zTop). Also make sure top grid cell
+ 	//structure length (dzTop) is greater than 5 cm
+-	if (dgpTop != round(dgpTop)){
++	#ifndef _HAVE_ADOLC_  //avoid the round operation check!
++	if (dgpTop != round(dgpTop)){ 
+ 		_error_("top grid cell structure length does not go evenly into specified top structure depth, adjust dzTop or zTop");
+ 	}
+-	else if(dzTop < 0.05){
++	#endif
++	if(dzTop < 0.05){
+ 		_printf_("initial top grid cell length (dzTop) is < 0.05 m");
+ 	}
+-	gpTop=round(dgpTop);
++	gpTop=reCast<int,IssmDouble>(dgpTop);
+ 
+ 	//initialize top grid depth vector
+ 	dzT = xNew<IssmDouble>(gpTop); 
+@@ -211,7 +213,7 @@
+ 	for(int i=1;i<m-1;i++) dT[i] = (T[i+1]-T[i-1])/(zGPC[i+1]-zGPC[i-1]);
+ 
+ 	// take absolute value of temperature gradient
+-	for(int i=0;i<m;i++)dT[i]=abs(dT[i]);
++	for(int i=0;i<m;i++)dT[i]=fabs(dT[i]);
+ 	
+ 	/*Snow metamorphism. Depends on value of snow dendricity and wetness of the snowpack: */
+ 	for(int i=0;i<m;i++){
+@@ -417,7 +419,7 @@
+         // determine timescale for albedo decay
+ 		for(int i=0;i<m;i++)if(W[i]>0)t0[i]=t0wet; // wet snow timescale
+ 		for(int i=0;i<m;i++)T[i]=TK[i] - 273.15; // change T from K to degC
+-		for(int i=0;i<m;i++) t0warm[i]= abs(T[i]) * K + t0dry; //// 'warm' snow timescale
++		for(int i=0;i<m;i++) t0warm[i]= fabs(T[i]) * K + t0dry; //// 'warm' snow timescale
+         for(int i=0;i<m;i++)if(W[i]==0.0 && T[i]>=-10)t0[i]= t0warm[i];
+         for(int i=0;i<m;i++)if(T[i]<-10) t0[i] =  10 * K + t0dry; // 'cold' snow timescale
+         
+@@ -449,7 +451,7 @@
+ 	// Check for erroneous values
+ 	if (a[0] > 1) _printf_("albedo > 1.0\n");
+ 	else if (a[0] < 0) _printf_("albedo is negative\n");
+-	else if (isnan(a[0])) _error_("albedo == NAN\n");
++	else if (xIsNan(a[0])) _error_("albedo == NAN\n");
+ }  /*}}}*/
+ void thermo(IssmDouble* pEC, IssmDouble* T, IssmDouble* dz, IssmDouble* d, IssmDouble* swf, IssmDouble dlwrf, IssmDouble Ta, IssmDouble V, IssmDouble eAir, IssmDouble pAir, IssmDouble Ws, IssmDouble dt0, int m, IssmDouble Vz, IssmDouble Tz,int sid) { /*{{{*/
+ 
+@@ -691,7 +693,7 @@
+ 	Td=xNew<IssmDouble>(m);
+ 
+ 	/* CALCULATE ENERGY SOURCES AND DIFFUSION FOR EVERY TIME STEP [dt]*/
+-	for (int i=1;i<=dt0;i+=dt){
++	for (IssmDouble i=1;i<=dt0;i+=dt){
+ 
+ 		// PART OF ENERGY CONSERVATION CHECK
+ 		// store initial temperature
+@@ -963,6 +965,8 @@
+ 			xDelete<IssmDouble>(exp2);
+ 			xDelete<IssmDouble>(Qs1);
+ 			xDelete<IssmDouble>(Qs2);
++			
++			
+ 		}
+ 		else{  //function of grid cell density
+ 
+@@ -1157,9 +1161,11 @@
+ 		mass=0; for(int i=0;i<m;i++)mass+=d[i]*dz[i]; 
+ 
+ 		mass_diff = mass - massinit - P;
++		
++		#ifndef _HAVE_ADOLC_  //avoid round operation. only check in forward mode.
+ 		mass_diff = round(mass_diff * 100)/100;
+-
+ 		if (mass_diff > 0) _error_("mass not conserved in accumulation function");
++		#endif
+ 
+ 	}
+ 	/*Free ressources:*/
+@@ -1344,7 +1350,7 @@
+ 		// determine the deepest grid cell where melt/pore water is generated
+ 		X = 0;
+ 		for(int i=n-1;i>=0;i--){
+-			if(M[i]>0 || exsW[i]){
++			if(M[i]>0 || reCast<int,IssmDouble>(exsW[i])){
+ 				X=i;
+ 				break;
+ 			}
+@@ -1450,13 +1456,17 @@
+ 		celldelete(&EW,n,D,D_size);
+ 		celldelete(&R,n,D,D_size);
+ 		n=D_size;
++		xDelete<int>(D);
+ 	
+ 		// calculate new grid lengths
+ 		for(int i=0;i<n;i++)dz[i] = m[i] / d[i];
+ 
+ 		//calculate Rsum: 
+ 		Rsum=cellsum(R,n);
+-	
++
++		/*Free ressources:*/
++		xDelete<IssmDouble>(F);
++		xDelete<IssmDouble>(R);
+ 	}
+ 
+ 	// check if depth is too small
+@@ -1491,7 +1501,7 @@
+ 	}
+ 
+ 	// delete combined cells
+-	xDelete<int>(D); D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999)D_size++; D=xNew<int>(D_size); 
++	D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999)D_size++; D=xNew<int>(D_size); 
+ 	D_size=0; for(int i=0;i<n;i++)if(m[i]!=99999){ D[D_size] = i; D_size++;}
+ 
+ 	celldelete(&m,n,D,D_size);
+@@ -1506,6 +1516,7 @@
+ 	celldelete(&EI,n,D,D_size);
+ 	celldelete(&EW,n,D,D_size);
+ 	n=D_size;
++	xDelete<int>(D);
+ 
+ 	// check if any of the top 10 cell depths are too large
+ 	X=0;
+@@ -1585,14 +1596,16 @@
+ 	mSum1 = cellsum(W,n) + cellsum(m,n) + Rsum;
+ 	sumE1 = cellsum(EI,n) + cellsum(EW,n);
+ 
++	/*checks: */
++	for(int i=0;i<n;i++) if (W[i]<0) _error_("negative pore water generated in melt equations\n");
++	
++	/*only in forward mode! avoid round in AD mode as it is not differentiable: */
++	#ifndef _HAVE_ADOLC_
+ 	dm = round(mSum0 - mSum1 + mAdd);
+ 	dE = round(sumE0 - sumE1 - sumER +  addE);
+-	
+-	for(int i=0;i<n;i++) if (W[i]<0) _error_("negative pore water generated in melt equations\n");
+-
+ 	if (dm !=0  || dE !=0) _error_("mass or energy are not conserved in melt equations\n" 
+ 			<< "dm: " << dm << " dE: " << dE << "\n");
+-
++	#endif
+ 	
+ 	/*Free ressources:*/
+ 	if(m)xDelete<IssmDouble>(m);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19612)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19613)
+@@ -2374,15 +2374,22 @@
+ 
+ 		/*Calculate total system mass:*/
+         sumMass=0; for(int i=0;i<m;i++) sumMass += dz[i]*d[i];
++
++        #ifndef _HAVE_ADOLC_ //we want to avoid the round operation at all cost. Not differentiable.
+         dMass = sumMass + sumR + sumW - sumP - sumEC - initMass - sumMassAdd;
+-        dMass = round(dMass * 100.0)/100.0;
++		dMass = round(dMass * 100.0)/100.0;
+ 
+ 		/*Check mass conservation:*/
+         if (dMass != 0.0) _printf_("total system mass not conserved in MB function");
++		#endif
+ 		
+ 		/*Check bottom grid cell T is unchanged:*/
+         if (T[m-1]!=T_bottom) _printf_("T(end)~=T_bottom" << "\n");
+ 		
++		/*Free ressources: */
++		xDelete<IssmDouble>(swf);
++
++		/*increase counter:*/
+ 		count++;
+ 
+ 	} //for (t=time;t<=time+dt;t=t+smb_dt)
+@@ -2398,7 +2405,6 @@
+ 	this->AddInput(new DoubleInput(SmbECEnum,EC));
+ 	this->AddInput(new DoubleArrayInput(SmbWEnum,W,m));
+ 	this->AddInput(new DoubleArrayInput(SmbAEnum,a,m));
+-	this->AddInput(new DoubleArrayInput(SmbSwfEnum,swf,m));
+ 	this->AddInput(new DoubleInput(SmbMassBalanceEnum,(sumP + sumEC -sumR)/rho_water/dt));
+ 	this->AddInput(new DoubleInput(SmbRunoffEnum,sumR/rho_water/dt));
+ 	this->AddInput(new DoubleInput(SmbPrecipitationEnum,sumP/rho_water/dt));
+@@ -2415,7 +2421,6 @@
+ 	xDelete<IssmDouble>(W);
+ 	xDelete<IssmDouble>(a);
+ 	xDelete<IssmDouble>(T);
+-	xDelete<IssmDouble>(swf);
+ 	delete gauss;
+ 	/*}}}*/
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19613-19614.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19613-19614.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19613-19614.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 19613)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 19614)
+@@ -32,7 +32,7 @@
+ md.smb.C=repmat(inputs.LP.C,md.mesh.numberofelements,1);
+ 
+ %smb settings
+-md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC','SmbA','SmbMassBalance','SmbSwf'};
++md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC','SmbA','SmbMassBalance'};
+ 
+ md.materials.rho_ice=910;
+ md.timestepping.interp_forcings=0;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19614-19615.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19614-19615.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19614-19615.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19614)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19615)
+@@ -19,7 +19,7 @@
+ #}}}
+ #Get Operating system (OS) name{{{
+ OS=$(uname -s)
+-if [[ $OS == "CYGWIN_NT-6.2" ]]; then 
++if [[ -z "$ISSM_DIR_WIN" ]]; then 
+ 	OS="win";
+ fi
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19615-19616.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19615-19616.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19615-19616.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19615)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19616)
+@@ -19,7 +19,7 @@
+ #}}}
+ #Get Operating system (OS) name{{{
+ OS=$(uname -s)
+-if [[ -z "$ISSM_DIR_WIN" ]]; then 
++if [[ $OS == CYGWIN* ]]; then 
+ 	OS="win";
+ fi
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19616-19617.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19616-19617.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19616-19617.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19616)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19617)
+@@ -130,9 +130,8 @@
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+-			 for i=1:numel(cluster.modules),
+-				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
+-			 end
++			 fprintf(fid,'module load comp-intel/2015.0.090\n');
++			 fprintf(fid,'module load mpi-sgi/mpt.2.12r16\n');
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+@@ -223,7 +222,7 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+ 			 fprintf(fid,'#PBS -l select=1:ncpus=%i:model=%s\n',np,cluster.processor);
+-			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time); %walltime is in seconds.
++			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+ 			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+ 			 fprintf(fid,'#PBS -W group_list=%s\n',cluster.grouplist);
+ 			 fprintf(fid,'#PBS -m e\n');
+@@ -244,6 +243,17 @@
+ 		%	 end
+ 			 fclose(fid);
+ 
++			 %in interactive mode, create a run file, and errlog and outlog file
++			 if cluster.interactive,
++				 fid=fopen([modelname '.run'],'w');
++				 fprintf(fid,['mpiexec -np %i ./mitgcmuv && touch ' modelname '.lock %s\n'],np);
++				 fclose(fid);
++				 fid=fopen([modelname '.errlog'],'w');
++				 fclose(fid);
++				 fid=fopen([modelname '.outlog'],'w');
++				 fclose(fid);
++			 end
++
+ 		 end %}}}
+ 		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19617-19618.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19617-19618.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19617-19618.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19617)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19618)
+@@ -926,9 +926,9 @@
+ 		dnl Processing for windows
+ 		if  test x$VENDOR = xintel-win7-32; then
+ 			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
+-			MPIINCL=`cygpath -m $MPI_INCLUDE`
++			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
+ 		elif test x$VENDOR = xintel-win7-64; then
+-			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
++			MPI_LIBDIR="/I`cygpath -m $MPI_LIBDIR`"
+ 			MPI_INCLUDE=`cygpath -m $MPI_INCLUDE`
+ 		elif test x$VENDOR = xMSVC-Win64 || test x$VENDOR = xMSVC-Win64-par; then
+ 			MPI_LIBDIR=`cygpath -m $MPI_LIBDIR`
+@@ -936,20 +936,17 @@
+ 		fi
+ 
+ 		if test -z "$MPI_LIBDIR"; then
+-			if  test x$IS_WINDOWS = xyes; then
+-				MPIINCL=/I"$MPI_INCLUDE"
+-			else 
+-				MPIINCL=-I"$MPI_INCLUDE"
+-			fi
+ 			MPILIB="$MPI_LIBFLAGS"
+ 		else
+-			if  test x$IS_WINDOWS = xyes; then
+-				MPIINCL=/I"$MPI_INCLUDE"
+-			else 
+-				MPIINCL=-I"$MPI_INCLUDE"
+-			fi
+ 			MPILIB="-L$MPI_LIBDIR $MPI_LIBFLAGS"
+ 		fi
++
++		if  test x$IS_WINDOWS = xyes; then
++			MPIINCL=/I"$MPI_INCLUDE"
++		else 
++			MPIINCL=-I"$MPI_INCLUDE"
++		fi
++
+ 		AC_DEFINE([_HAVE_MPI_],[1],[with Mpi in ISSM src])
+ 		AC_DEFINE([HAVE_MPI],[1],[Mpi Flag for Dakota (DO NOT REMOVE)])
+ 		AC_SUBST([MPIINCL])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19618-19619.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19618-19619.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19618-19619.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 19618)
++++ ../trunk-jpl/jenkins/windows-par	(revision 19619)
+@@ -11,18 +11,18 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
+-	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
++	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+-	--with-mpi-include="C:/Programs/MPICH2/include" \
+-	--with-mpi-libflags="-Wl,mpi.lib -Wl,-L/cygdrive/c/Programs/MPICH2/lib" \
++	--with-mpi-include="/cygdrive/c/Programs/MPICH2/include" \
++	--with-mpi-libflags="-Wl,mpi.lib -Wl,/LIBPATH:C:/Programs/MPICH2/lib" \
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+ #MATLAB path
+-MATLAB_PATH="C:/MATLAB/R2013a/"
++MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-19619-19620.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19619-19620.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19619-19620.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh	(revision 19620)
+@@ -0,0 +1,33 @@
++#!/bin/bash
++
++STEP=1
++
++if [ $STEP -eq 1 ]; then
++	git clone -b maint https://bitbucket.org/petsc/petsc src
++fi
++
++export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
++export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
++
++#configure
++cd src
++./config/configure.py  \
++	--prefix=$PREFIX_DIR \
++	--PETSC_ARCH=cygwin-intel \
++	--PETSC_DIR=$PETSC_DIR \
++	--with-mpi-dir="/cygdrive/c/Programs/MPICH2/"\
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--download-f2cblaslapack=yes \
++	--with-cc='win32fe cl' \
++	--with-fc=0 \
++	--with-cxx='win32fe cl' \
++	--with-clanguage=cxx 
++
++#Compile petsc and install it
++make
++make install
++
++patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19620-19621.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19620-19621.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19620-19621.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 19620)
++++ ../trunk-jpl/jenkins/windows-par	(revision 19621)
+@@ -47,9 +47,7 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="cccl        install-win7.sh
+-						autotools   install-win.sh
+-						cmake       install.sh                
++EXTERNALPACKAGES="				autotools   install-win.sh
+ 						petsc       install-3.5-win-par.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
Index: /issm/oecreview/Archive/19101-20495/ISSM-19621-19622.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19621-19622.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19621-19622.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 19621)
++++ ../trunk-jpl/jenkins/windows-par	(revision 19622)
+@@ -48,7 +48,7 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="				autotools   install-win.sh
+-						petsc       install-3.5-win-par.sh
++						petsc       install-dev-win-par.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19622-19623.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19622-19623.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19622-19623.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 19622)
++++ ../trunk-jpl/jenkins/windows-par	(revision 19623)
+@@ -48,7 +48,7 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="				autotools   install-win.sh
+-						petsc       install-dev-win-par.sh
++						petsc       install-dev-win10-par.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19623-19624.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19623-19624.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19623-19624.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh	(revision 19623)
++++ ../trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh	(revision 19624)
+@@ -2,6 +2,8 @@
+ 
+ STEP=1
+ 
++rm -rf src
++
+ if [ $STEP -eq 1 ]; then
+ 	git clone -b maint https://bitbucket.org/petsc/petsc src
+ fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-19624-19625.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19624-19625.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19624-19625.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19624)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19625)
+@@ -150,10 +150,15 @@
+ 			 %in interactive mode, create a run file, and errlog and outlog file
+ 			 if cluster.interactive,
+ 				 fid=fopen([modelname '.run'],'w');
+-				 if ~isvalgrind,
+-					 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/Interactive' num2str(cluster.interactive)],modelname);
++				 if cluster.interactive==10,
++						 fprintf(fid,'module unload mpi-mvapich2/1.4.1/gcc\n');
++						 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[pwd() '/run'],modelname);
+ 				 else
+-					 fprintf(fid,'mpiexec -np %i valgrind --leak-check=full %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/Interactive' num2str(cluster.interactive)],modelname);
++					 if ~isvalgrind,
++						 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/Interactive' num2str(cluster.interactive)],modelname);
++					 else
++						 fprintf(fid,'mpiexec -np %i valgrind --leak-check=full %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/Interactive' num2str(cluster.interactive)],modelname);
++					 end
+ 				 end
+ 				 if ~io_gather, %concatenate the output files:
+ 					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+@@ -246,7 +251,9 @@
+ 			 %in interactive mode, create a run file, and errlog and outlog file
+ 			 if cluster.interactive,
+ 				 fid=fopen([modelname '.run'],'w');
+-				 fprintf(fid,['mpiexec -np %i ./mitgcmuv && touch ' modelname '.lock %s\n'],np);
++				 fprintf(fid,'module load mpi-mvapich2/1.4.1/gcc\n');
++				 fprintf(fid,['mpiexec -np %i ./mitgcmuv \n'],np);
++				 fprintf(fid,['touch ' modelname '.lock %s\n']);
+ 				 fclose(fid);
+ 				 fid=fopen([modelname '.errlog'],'w');
+ 				 fclose(fid);
+@@ -268,7 +275,9 @@
+ 			 system(compressstring);
+ 
+ 			 disp('uploading input file and queueing script');
+-			 if cluster.interactive,
++			 if cluster.interactive==10,
++				 directory=[pwd() '/run/'];
++			 elseif cluster.interactive,
+ 				 directory=[cluster.executionpath '/Interactive' num2str(cluster.interactive)];
+ 			 else 
+ 				 directory=cluster.executionpath;
+@@ -296,7 +305,11 @@
+ 				 if ~isempty(restart)
+ 					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive)];
+ 				 else
+-					 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++					 if cluster.interactive==10,
++						 launchcommand=['cd ' pwd() '/run && tar -zxf ' dirname '.tar.gz'];
++					 else
++						 launchcommand=['cd ' cluster.executionpath '/Interactive' num2str(cluster.interactive) ' && tar -zxf ' dirname '.tar.gz'];
++					 end
+ 				 end
+ 			 end
+ 
+@@ -307,7 +320,9 @@
+ 		 function Download(cluster,dirname,filelist)% {{{
+ 
+ 			 %copy files from cluster to current directory
+-			 if ~cluster.interactive,
++			 if cluster.interactive==10,
++				 directory=[pwd() '/run/'];
++			 elseif ~cluster.interactive,
+ 				 directory=[cluster.executionpath '/' dirname '/'];
+ 			 else
+ 				 directory=[cluster.executionpath '/Interactive' num2str(cluster.interactive) '/'];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19625-19626.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19625-19626.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19625-19626.diff	(revision 20498)
@@ -0,0 +1,41 @@
+Index: ../trunk-jpl/externalpackages/dakota/tests/test.in
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/tests/test.in	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/tests/test.in	(revision 19626)
+@@ -0,0 +1,36 @@
++method,
++	nond_sampling
++	  seed             = 1234
++	  rng                rnum2
++	  samples          = 20
++	  sample_type        lhs
++	  distribution cumulative
++	  num_probability_levels = 9 
++	  probability_levels =
++	    0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999
++	    0.9999
++
++model,
++	single
++
++variables,
++	normal_uncertain = 2
++	  nuv_means =
++	    1 1 
++	  nuv_std_deviations =
++	    0.1 0.1 
++	  nuv_descriptors =
++	    'x1' 'x2'
++
++interface,
++	direct
++	  analysis_driver = 'plugin_text_book'
++       evaluation_scheduling master 
++       processors_per_evaluation = 3
++
++responses,
++	num_response_functions = 1
++	response_descriptors =
++	  'MaxVel' 
++	no_gradients
++	no_hessians
Index: /issm/oecreview/Archive/19101-20495/ISSM-19626-19627.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19626-19627.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19626-19627.diff	(revision 20498)
@@ -0,0 +1,305 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/DakotaDev.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/DakotaDev.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/DakotaDev.cmake.patch	(revision 19627)
+@@ -0,0 +1,14 @@
++5,8c5,8
++< set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++< set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++<   "Enable DAKOTA specification maintenance mode?")
++< set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++---
++> #set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++> #set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++> #  "Enable DAKOTA specification maintenance mode?")
++> #set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++14c14
++< #set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
++---
++> set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.cpp.patch	(revision 19627)
+@@ -0,0 +1,24 @@
++51a54,76
++> /** This constructor is provided for the ISSM software, to run serial
++>  * Dakota in a parallel MPI ring: */
++> ParallelLibrary::ParallelLibrary(char* serial_mode):
++>	  mpiManager(dummy_mpi_mgr), programOptions(dummy_prg_opt),
++>	    outputManager(dummy_out_mgr), dummyFlag(true), outputTimings(false)
++> {
++>   initialize_timers();
++> 
++>   // do not initialize MPI.  Get worldRank/worldSize if available
++>   ParallelLevel pl;
++> #ifdef HAVE_MPI // mpi available, we still don't want to run in parallel for Dakota!
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 MPI executable in serial mode on CPU 0 for ISSM." << std::endl;
++> #else // mpi not available
++>   pl.serverIntraComm = MPI_COMM_NULL;
++>   Cout << "Running Dakota 6.1 serial executable in serial mode for ISSM." << std::endl;
++> #endif // HAVE_MPI
++> 
++>   parallelLevels.push_back(pl);
++>   increment_parallel_configuration();
++> }
++> 
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDLocalReliability.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDLocalReliability.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDLocalReliability.cpp.patch	(revision 19627)
+@@ -0,0 +1,9 @@
++2645a2646
++> 		 // add sensitivity output to importance factors (jes, 8/06/10)
++2651c2652,2655
++< 	    << std::setw(width) << impFactor(j,i) << '\n';
++---
++> 	    << std::setw(width) << impFactor(j,i) 
++> 		 << "  Sensitivity = "
++> 		 << std::resetiosflags(std::ios::adjustfield)
++> 		 << std::setw(width) << fnGradsMeanX(j,i) << '\n';
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.pfe.patch	(revision 19627)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
++> set(LAPACK_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.hpp.patch	(revision 19627)
+@@ -0,0 +1,3 @@
++475a476,477
++>   /// library mode constructor, serial mode (for the ISSM software)
++>   ParallelLibrary(char* serial_mode);
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch	(revision 19627)
+@@ -0,0 +1,29 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.a"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDSampling.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDSampling.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDSampling.cpp.patch	(revision 19627)
+@@ -0,0 +1,25 @@
++780,786c780,787
++<   if (!subIteratorFlag) {
++<     nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++<     // archive the correlations to the results DB
++<     nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++< 				      div_labels, dsv_labels, drv_labels,
++< 				      iteratedModel.response_labels());
++<   }
++---
++> //don't compute for now, too expensive.
++> //  if (!subIteratorFlag) {
++> //   nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++> //    // archive the correlations to the results DB
++> //    nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++> //				      div_labels, dsv_labels, drv_labels,
++> //				      iteratedModel.response_labels());
++> //  }
++1277,1278c1278,1281
++<     nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++< 				    drv_labels,iteratedModel.response_labels());
++---
++> 
++> //don't output for now.
++> //    nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++> //				    drv_labels,iteratedModel.response_labels());
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.mac.patch	(revision 19627)
+@@ -0,0 +1,8 @@
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.mac.patch
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.patch	(revision 19627)
+@@ -0,0 +1,29 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.so"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.patch	(revision 19627)
+@@ -0,0 +1,4 @@
++47a48,50
++> set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries" FORCE)
++> set(BUILD_SHARED_LIBS OFF CACHE BOOL "Set to ON to build DSO libraries" FORCE)
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/pecos_global_defs.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/pecos_global_defs.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2-mpi/pecos_global_defs.hpp.patch	(revision 19627)
+@@ -0,0 +1,4 @@
++24a25
++> #ifndef PI
++25a27
++> #endif
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19626)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19627)
+@@ -28,11 +28,11 @@
+ patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
+ 
+ #Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
++patch src/src/ParallelLibrary.cpp configs/6.1-mpi/ParallelLibrary.cpp.patch
++patch src/src/ParallelLibrary.hpp configs/6.1-mpi/ParallelLibrary.hpp.patch
++patch src/src/NonDSampling.cpp configs/6.1-mpi/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.1-mpi/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1-mpi/pecos_global_defs.hpp.patch
+ 
+ #Configure dakota
+ cd $DAK_BUILD
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh	(revision 19627)
+@@ -0,0 +1,57 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public.src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2-mpi/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2-mpi/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2-mpi/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2-mpi/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2-mpi/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	   -D LDFLAGS="-std=gnu++0x" \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19627-19628.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19627-19628.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19627-19628.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/examples/Greenland/Greenland.par
+===================================================================
+--- ../trunk-jpl/examples/Greenland/Greenland.par	(revision 19627)
++++ ../trunk-jpl/examples/Greenland/Greenland.par	(revision 19628)
+@@ -39,8 +39,8 @@
+ md.initialization.temperature=InterpFromGridToMesh(x1,y1,temp,md.mesh.x,md.mesh.y,0)+273.15;
+ 
+ disp('   Interpolating surface mass balance');
+-md.surfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
+-md.surfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;
++md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
++md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice;
+ 
+ disp('   Construct basal friction parameters');
+ md.friction.coefficient=30*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/examples/Greenland/runme.m
+===================================================================
+--- ../trunk-jpl/examples/Greenland/runme.m	(revision 19627)
++++ ../trunk-jpl/examples/Greenland/runme.m	(revision 19628)
+@@ -91,7 +91,7 @@
+ 	smb = InterpFromGridToMesh(x1,y1,smb',md.mesh.x,md.mesh.y,0);
+ 	smb = smb*md.materials.rho_freshwater/md.materials.rho_ice;
+ 	smb = [smb smb smb-1.0];
+-	md.surfaceforcings.mass_balance = [smb;1 10 20];
++	md.smb.mass_balance = [smb;1 10 20];
+ 
+ 	%Set transient options, run for 20 years, saving every timestep
+ 	md.timestepping.time_step=0.2;
+@@ -101,7 +101,7 @@
+ 	%Additional options
+ 	md.inversion.iscontrol=0;
+ 	md.transient.requested_outputs={'IceVolume','TotalSmb', ...
+-		                             'SurfaceforcingsMassBalance'};
++		                             'SmbMassBalance'};
+ 	md.verbose=verbose('solution',true,'module',true,'convergence',true);
+ 
+ 	%Go solve
+@@ -123,7 +123,7 @@
+ 
+ 	%Plot surface mass balance
+ 	surfmb=[]; for i=1:100; surfmb=[surfmb ...
+-		md.results.TransientSolution(i).SurfaceforcingsMassBalance]; end
++		md.results.TransientSolution(i).SmbMassBalance]; end
+ 	subplot(3,1,1); plot([0.2:0.2:20],mean(surfmb)); title('Mean Surface mass balance');
+ 
+ 	%Plot velocity
+@@ -180,7 +180,7 @@
+ 	index = BamgTriangulate(x1(:),y1(:));
+ 	smb_mo = InterpFromMeshToMesh2d(index,x1(:),y1(:),smbmean(:),xi,yi);
+ 	smb = smb_mo*12/1000*md.materials.rho_freshwater/md.materials.rho_ice;
+-	md.surfaceforcings.mass_balance = [smb;1 ];
++	md.smb.mass_balance = [smb;1 ];
+ 
+ 	%Set transient options, run for 20 years, saving every timestep
+ 	md.timestepping.time_step=0.2;
+@@ -190,7 +190,7 @@
+ 	%Additional options
+ 	md.inversion.iscontrol=0;
+ 	md.transient.requested_outputs={'IceVolume','TotalSmb', ...
+-		'SurfaceforcingsMassBalance'};
++		'SmbMassBalance'};
+ 	md.verbose=verbose('solution',true,'module',true);
+ 
+ 	%Go solve
+@@ -271,7 +271,7 @@
+ 			smb(:,(year-years_of_simulation(1))*12+month) = smb_mo;
+ 		end
+ 	end
+-	md.surfaceforcings.mass_balance = ...
++	md.smb.mass_balance = ...
+ 		[smb*12/1000*md.materials.rho_freshwater/md.materials.rho_ice; ...
+ 		[1/24:1/12:length(years_of_simulation)]];
+ 
+@@ -283,7 +283,7 @@
+ 	%Additional options
+ 	md.inversion.iscontrol=0;
+ 	md.transient.requested_outputs={'IceVolume','TotalSmb', ...
+-		'SurfaceforcingsMassBalance'};
++		'SmbMassBalance'};
+ 	md.verbose=verbose('solution',true,'module',true);
+ 
+ 	%Go solve
Index: /issm/oecreview/Archive/19101-20495/ISSM-19628-19629.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19628-19629.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19628-19629.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/examples/Greenland/CheatSheet.m
+===================================================================
+--- ../trunk-jpl/examples/Greenland/CheatSheet.m	(revision 19628)
++++ ../trunk-jpl/examples/Greenland/CheatSheet.m	(revision 19629)
+@@ -9,7 +9,7 @@
+ 
+ 	%Save surface mass balance, by looping through 200 years, or 1000 steps
+ 	surfmb=[]; for i=1:1000; surfmb=[surfmb ...
+-		md.results.TransientSolution(i).SurfaceforcingsMassBalance]; end
++		md.results.TransientSolution(i).SmbMassBalance]; end
+ 
+ 	%Plot surface mass balance time series in first subplot
+ 	subplot(3,1,1); plot([0.2:0.2:200],mean(surfmb));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19629-19630.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19629-19630.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19629-19630.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/externalpackages/dakota/tests/test.in
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/tests/test.in	(revision 19629)
++++ ../trunk-jpl/externalpackages/dakota/tests/test.in	(revision 19630)
+@@ -2,7 +2,7 @@
+ 	nond_sampling
+ 	  seed             = 1234
+ 	  rng                rnum2
+-	  samples          = 20
++	  samples          = 2000
+ 	  sample_type        lhs
+ 	  distribution cumulative
+ 	  num_probability_levels = 9 
+Index: ../trunk-jpl/externalpackages/dakota/tests/test2.in
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/tests/test2.in	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/tests/test2.in	(revision 19630)
+@@ -0,0 +1,36 @@
++method,
++	nond_sampling
++	  seed             = 1234
++	  rng                rnum2
++	  samples          = 3
++	  sample_type        lhs
++	  distribution cumulative
++	  num_probability_levels = 9 
++	  probability_levels =
++	    0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999
++	    0.9999
++
++model,
++	single
++
++variables,
++	normal_uncertain = 2
++	  nuv_means =
++	    1 1 
++	  nuv_std_deviations =
++	    0.1 0.1 
++	  nuv_descriptors =
++	    'x1' 'x2'
++
++interface,
++	direct
++	  analysis_driver = 'plugin_text_book'
++       evaluation_scheduling master 
++       processors_per_evaluation = 1
++
++responses,
++	num_response_functions = 1
++	response_descriptors =
++	  'MaxVel' 
++	no_gradients
++	no_hessians
Index: /issm/oecreview/Archive/19101-20495/ISSM-19630-19631.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19630-19631.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19630-19631.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19630)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 19631)
+@@ -420,7 +420,7 @@
+ 
+ 	vector<Object*>::iterator object;
+ 
+-	if(this==NULL)_error_("trying to echo a NULL dataset");
++	_assert_(this);
+ 
+ 	_printf0_("DataSet echo: " << objects.size() << " objects\n");
+ 
+@@ -436,7 +436,7 @@
+ 
+ 	vector<Object*>::iterator object;
+ 
+-	if(this==NULL)_error_("trying to echo a NULL dataset");
++	_assert_(this);
+ 
+ 	_printf0_("DataSet echo: " << objects.size() << " objects\n");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19631-19632.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19631-19632.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19631-19632.diff	(revision 20498)
@@ -0,0 +1,944 @@
+Index: ../trunk-jpl/src/c/main/issm_dakota.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 0)
++++ ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19632)
+@@ -0,0 +1,82 @@
++/*!\file:  issm_dakota.cpp
++ * \brief: ISSM DAKOTA main program
++ */ 
++
++#include "./issm.h"
++
++/*Dakota includes: */
++#include "ParallelLibrary.hpp"
++#include "ProblemDescDB.hpp"
++#include "LibraryEnvironment.hpp"
++#include "DakotaModel.hpp"
++#include "DakotaInterface.hpp"
++
++int main(int argc,char **argv){
++
++	bool parallel=true;
++	char* dakota_input_file=NULL;
++
++	/*Define MPI_DEBUG in dakota_global_defs.cpp to cause a hold here*/
++	Dakota::mpi_debug_hold();
++	
++	/*Initialize MPI: */
++	ISSM_MPI_Init(&argc, &argv); // initialize MPI
++
++	/*Recover file name for dakota input file:*/
++	dakota_input_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.in")+1));
++	sprintf(dakota_input_file,"%s%s%s",argv[2],argv[3],".qmu.in");
++
++	Cout << "dakota_input_file: " << dakota_input_file << "\n";
++	
++	/* Parse input and construct Dakota LibraryEnvironment, performing input data checks*/
++	Dakota::ProgramOptions opts;
++	opts.input_file(dakota_input_file);
++
++	
++	/* Defaults constructs the MPIManager, which assumes COMM_WORLD*/
++	Dakota::LibraryEnvironment env(opts);
++
++	if (env.mpi_manager().world_rank() == 0)
++		Cout << "Library mode 1: run_dakota_parse()\n";
++	
++	/* get the list of all models matching the specified model, interface, driver:*/
++	Dakota::ModelList filt_models = env.filtered_model_list("single", "direct", "matlab");
++	if (filt_models.empty()) {
++		Cerr << "Error: no parallel interface plugin performed.  Check compatibility "
++			<< "between parallel\n       configuration and selected analysis_driver."
++			<< std::endl;
++		Dakota::abort_handler(-1);
++	}
++	
++	Dakota::ProblemDescDB& problem_db = env.problem_description_db();
++	Dakota::ModelLIter ml_iter;
++	size_t model_index = problem_db.get_db_model_node(); // for restoration
++	for (ml_iter = filt_models.begin(); ml_iter != filt_models.end(); ++ml_iter) {
++		// set DB nodes to input specification for this Model
++		problem_db.set_db_model_nodes(ml_iter->model_id());
++
++		Dakota::Interface& model_interface = ml_iter->derived_interface();
++
++		// Parallel case: plug in derived Interface object with an analysisComm.
++		// Note: retrieval and passing of analysisComm is necessary only if
++		// parallel operations will be performed in the derived constructor.
++
++		// retrieve the currently active analysisComm from the Model.  In the most
++		// general case, need an array of Comms to cover all Model configurations.
++		const MPI_Comm& analysis_comm = ml_iter->analysis_comm();
++
++		// don't increment ref count since no other envelope shares this letter
++		model_interface.assign_rep(new
++				SIM::IssmParallelDirectApplicInterface(problem_db, analysis_comm,NULL), false);
++	}
++	problem_db.set_db_model_nodes(model_index);            // restore
++
++	/* Execute the environment:*/
++	env.execute();
++
++	/*Finalize MPI:*/
++	ISSM_MPI_Finalize();
++
++	/*Return unix success: */
++	return 0; 
++}
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19631)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19632)
+@@ -262,14 +262,15 @@
+ #}}}
+ #DAKOTA sources  {{{
+ if DAKOTA
+-issm_sources +=  ./modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp\
++issm_sources +=       ./classes/Dakota/IssmDirectApplicInterface.h\
++					  ./classes/Dakota/IssmParallelDirectApplicInterface.h\
++					  ./modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp\
+ 					  ./modules/InputUpdateFromVectorDakotax/InputUpdateFromVectorDakotax.cpp\
+ 					  ./modules/InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.cpp\
+ 					  ./modules/AverageOntoPartitionx/AverageOntoPartitionx.cpp\
+ 					  ./modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp\
+ 					  ./modules/ModelProcessorx/Dakota/UpdateElementsAndMaterialsDakota.cpp\
+-					  ./cores/dakota_core.cpp\
+-					  ./cores/DakotaSpawnCore.cpp
++					  ./cores/dakota_core.cpp
+ endif
+ #}}}
+ #BAMG sources  {{{
+@@ -658,6 +659,14 @@
+ kriging_SOURCES = main/kriging.cpp
+ kriging_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+ endif
++
++if DAKOTA
++bin_PROGRAMS += issm_dakota
++issm_dakota_SOURCES = main/issm_dakota.cpp
++issm_dakota_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
++issm_dakota_LDADD= $(LDADD)
++endif
++
+ #}}}
+ #Automatic differentiation (must be done at the end) {{{
+ if ADIC2 
+Index: ../trunk-jpl/src/c/cores/DakotaSpawnCore.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/DakotaSpawnCore.h	(revision 19631)
++++ ../trunk-jpl/src/c/cores/DakotaSpawnCore.h	(revision 19632)
+@@ -1,4 +0,0 @@
+-#ifndef _DAKOTA_SPAWN_CORE_
+-#define _DAKOTA_SPAWN_CORE_
+-int  DakotaSpawnCore(double* responses, int numresponses, double* variables, char** variables_descriptors,int numvariables, void* femmodel,int counter);
+-#endif
+Index: ../trunk-jpl/src/c/cores/DakotaSpawnCore.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/DakotaSpawnCore.cpp	(revision 19631)
++++ ../trunk-jpl/src/c/cores/DakotaSpawnCore.cpp	(revision 19632)
+@@ -1,191 +0,0 @@
+-/*!\file:  DakotaSpawnCore.cpp
+-
+- * \brief: run core ISSM solution using Dakota inputs coming from CPU 0.
+- * \sa qmu.cpp DakotaPlugin.cpp
+- *
+- * This routine needs to be understood simultaneously with qmu.cpp and DakotaPlugin. 
+- * DakotaSpawnCoreParallel is called by all CPUS, with CPU 0 holding Dakota variable values, along 
+- * with variable descriptors. 
+- *
+- * DakotaSpawnCoreParallel takes care of broadcasting the variables and their descriptors across the MPI 
+- * ring. Once this is done, we use the variables to modify the inputs for the solution core. 
+- * For ex, if "rho_ice" is provided, for ex 920, we include "rho_ice" in the inputs, then 
+- * call the core with the modified inputs. This is the way we get Dakota to explore the parameter 
+- * spce of the core. 
+- *
+- * Once the core is called, we process the results of the core, and using the processed results, 
+- * we compute response functions. The responses are computed on all CPUS, but they are targeted 
+- * for CPU 0, which will get these values back to the Dakota engine. 
+- *
+- */ 
+-
+-/*Includes and prototypes: {{{*/
+-#ifdef HAVE_CONFIG_H
+-	#include <config.h>
+-#else
+-#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+-#endif
+-
+-#include "./cores.h"
+-#include "../classes/classes.h"
+-#include "../shared/shared.h"
+-#include "../modules/modules.h"
+-
+-void DakotaMPI_Bcast(double** pvariables, char*** pvariables_descriptors,int* pnumvariables, int* pnumresponses);
+-void DakotaFree(double** pvariables,char*** pvariables_descriptors,char*** presponses_descriptors,int numvariables,int numresponses);
+-/*}}}*/
+-
+-/*Notice the d_, which prefixes anything that is being provided to us by the Dakota pluggin. Careful. some things are ours, some are dakotas!: */
+-int DakotaSpawnCore(double* d_responses, int d_numresponses, double* d_variables, char** d_variables_descriptors,int d_numvariables, void* void_femmodel,int counter){
+-
+-	char     **responses_descriptors    = NULL;      //these are our! there are only numresponsedescriptors of them, not d_numresponses!!!
+-	int        numresponsedescriptors;
+-	int        solution_type;
+-	bool       control_analysis         = false;
+-	void     (*solutioncore)(FemModel*) = NULL;
+-	FemModel  *femmodel                 = NULL;
+-	bool       nodakotacore             = true;
+-
+-	/*If counter==-1 on cpu0, it means that the dakota runs are done. In which case, bail out and return 0: */
+-	ISSM_MPI_Bcast(&counter,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
+-	if(counter==-1)return 0;
+-
+-	/*cast void_femmodel to FemModel, and at the same time, make a copy, so we start this new core run for this specific sample 
+-	 *with a brand new copy of the model, which has not been tempered with by previous dakota runs: */
+-	femmodel=(reinterpret_cast<FemModel*>(void_femmodel))->copy();
+-
+-	/*retrieve parameters: */
+-	femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
+-	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+-	femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
+-
+-	if(VerboseQmu()) _printf0_("qmu iteration: " << counter << "\n");
+-
+-	/* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */
+-	DakotaMPI_Bcast(&d_variables,&d_variables_descriptors,&d_numvariables,&d_numresponses);
+-
+-	/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
+-	InputUpdateFromDakotax(femmodel,d_variables,d_variables_descriptors,d_numvariables);
+-
+-	/*Determine solution sequence: */
+-	if(VerboseQmu()) _printf0_("Starting " << EnumToStringx(solution_type) << " core:\n");
+-	WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);
+-
+-	/*Run the core solution sequence: */
+-	solutioncore(femmodel);
+-
+-	/*compute responses: */
+-	if(VerboseQmu()) _printf0_("compute dakota responses:\n");
+-	femmodel->DakotaResponsesx(d_responses,responses_descriptors,numresponsedescriptors,d_numresponses);
+-
+-	/*Free ressources:*/
+-	DakotaFree(&d_variables,&d_variables_descriptors,&responses_descriptors, d_numvariables, numresponsedescriptors);
+-
+-	/*Avoid leaks here: */
+-	delete femmodel;
+-
+-	return 1; //this is critical! do not return 0, otherwise, dakota_core will stop running!
+-}
+-
+-void DakotaMPI_Bcast(double** pvariables, char*** pvariables_descriptors,int* pnumvariables, int* pnumresponses){ /*{{{*/
+-
+-	/* * \brief: broadcast variables_descriptors, variables, numvariables and numresponses
+-	 * from cpu 0 to all other cpus.
+-	 */ 
+-
+-	int i;
+-	int my_rank;
+-
+-	/*inputs and outputs: */
+-	double* variables=NULL;
+-	char**  variables_descriptors=NULL;
+-	int     numvariables;
+-	int     numresponses;
+-
+-	/*intermediary: */
+-	char* string=NULL;
+-	int   string_length;
+-
+-	/*recover my_rank:*/
+-	my_rank=IssmComm::GetRank();
+-
+-	/*recover inputs from pointers: */
+-	variables=*pvariables;
+-	variables_descriptors=*pvariables_descriptors;
+-	numvariables=*pnumvariables;
+-	numresponses=*pnumresponses;
+-
+-	/*numvariables: */
+-	ISSM_MPI_Bcast(&numvariables,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
+-
+-	/*variables:*/
+-	if(my_rank!=0)variables=xNew<double>(numvariables);
+-	ISSM_MPI_Bcast(variables,numvariables,MPI_DOUBLE,0,IssmComm::GetComm()); 
+-
+-	/*variables_descriptors: */
+-	if(my_rank!=0){
+-		variables_descriptors=xNew<char*>(numvariables);
+-	}
+-	for(i=0;i<numvariables;i++){
+-		if(my_rank==0){
+-			string=variables_descriptors[i];
+-			string_length=(strlen(string)+1)*sizeof(char);
+-		}
+-		ISSM_MPI_Bcast(&string_length,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
+-		if(my_rank!=0)string=xNew<char>(string_length);
+-		ISSM_MPI_Bcast(string,string_length,ISSM_MPI_CHAR,0,IssmComm::GetComm()); 
+-		if(my_rank!=0)variables_descriptors[i]=string;
+-	}
+-
+-	/*numresponses: */
+-	ISSM_MPI_Bcast(&numresponses,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
+-
+-	/*Assign output pointers:*/
+-	*pnumvariables=numvariables;
+-	*pvariables=variables;
+-	*pvariables_descriptors=variables_descriptors;
+-	*pnumresponses=numresponses;
+-} /*}}}*/
+-void DakotaFree(double** pvariables,char*** pvariables_descriptors,char*** presponses_descriptors,int numvariables,int numresponses){ /*{{{*/
+-
+-	/*\brief DakotaFree: free allocations on other cpus, not done by Dakota.*/
+-
+-	int i;
+-	int my_rank;
+-
+-	double  *variables             = NULL;
+-	char   **variables_descriptors = NULL;
+-	char   **responses_descriptors = NULL;
+-	char    *string                = NULL;
+-
+-	/*recover pointers: */
+-	variables=*pvariables;
+-	variables_descriptors=*pvariables_descriptors;
+-	responses_descriptors=*presponses_descriptors;
+-
+-	/*recover my_rank:*/
+-	my_rank=IssmComm::GetRank();
+-
+-	/*Free variables and variables_descriptors only on cpu !=0*/
+-	if(my_rank!=0){
+-		xDelete<double>(variables);
+-		for(i=0;i<numvariables;i++){
+-			string=variables_descriptors[i];
+-			xDelete<char>(string);
+-		}
+-		xDelete<char*>(variables_descriptors);
+-	}
+-
+-	//responses descriptors on every cpu
+-	for(i=0;i<numresponses;i++){
+-		string=responses_descriptors[i];
+-		xDelete<char>(string);
+-	}
+-	//rest of dynamic allocations.
+-	xDelete<char*>(responses_descriptors);
+-
+-	/*Assign output pointers:*/
+-	*pvariables=variables;
+-	*pvariables_descriptors=variables_descriptors;
+-	*presponses_descriptors=responses_descriptors;
+-} /*}}}*/
+Index: ../trunk-jpl/src/c/cores/dakota_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/dakota_core.cpp	(revision 19631)
++++ ../trunk-jpl/src/c/cores/dakota_core.cpp	(revision 19632)
+@@ -26,136 +26,205 @@
+  *
+  */ 
+ 
+-/*include files: {{{*/
++ /* \brief: run core ISSM solution using Dakota inputs coming from CPU 0.
++ * \sa qmu.cpp DakotaPlugin.cpp
++ *
++ * This routine needs to be understood simultaneously with qmu.cpp and DakotaPlugin. 
++ * DakotaSpawnCoreParallel is called by all CPUS, with CPU 0 holding Dakota variable values, along 
++ * with variable descriptors. 
++ *
++ * DakotaSpawnCoreParallel takes care of broadcasting the variables and their descriptors across the MPI 
++ * ring. Once this is done, we use the variables to modify the inputs for the solution core. 
++ * For ex, if "rho_ice" is provided, for ex 920, we include "rho_ice" in the inputs, then 
++ * call the core with the modified inputs. This is the way we get Dakota to explore the parameter 
++ * spce of the core. 
++ *
++ * Once the core is called, we process the results of the core, and using the processed results, 
++ * we compute response functions. The responses are computed on all CPUS, but they are targeted 
++ * for CPU 0, which will get these values back to the Dakota engine. 
++ *
++ */ 
++
++/*include config: {{{*/
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+ #else
+ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+ #endif
++/*}}}*/
+ 
++/*include ISSM files: */
+ #include "./cores.h"
+ #include "../toolkits/toolkits.h"
+ #include "../shared/shared.h"
+ #include "../classes/classes.h"
+ 
+-#ifdef _HAVE_DAKOTA_ //only works if dakota library has been compiled in.
+-#if _DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3)
++#if defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
++
++/*include dakota files: */
+ #include <ParallelLibrary.H>
+ #include <ProblemDescDB.H>
+ #include <DakotaStrategy.H>
+ #include <DakotaModel.H>
+ #include <DakotaInterface.H>
+-#else
+-#include <ParallelLibrary.hpp>
+-#include <ProblemDescDB.hpp>
+-#include <DakotaStrategy.hpp>
+-#include <DakotaModel.hpp>
+-#include <DakotaInterface.hpp>
+-#endif
+-#include "./DakotaSpawnCore.h"
+-#endif
+-/*}}}*/
+-/*DakotaPlugin class {{{*/
+-#ifdef _HAVE_DAKOTA_ //only works if dakota library has been compiled in.
+-#if _DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3)
+-#include <DirectApplicInterface.H>
+-#include <DakotaResponse.H>
+-#include <ParamResponsePair.H>
+-#include <system_defs.h>
+-#include <ProblemDescDB.H>
+-#include <ParallelLibrary.H>
+-#else
+-#include <DirectApplicInterface.hpp>
+-#include <DakotaResponse.hpp>
+-#include <ParamResponsePair.hpp>
+-#include <ProblemDescDB.hpp>
+-#include <ParallelLibrary.hpp>
+-#endif
+-namespace SIM {
+-	class DakotaPlugin: public Dakota::DirectApplicInterface{
+-		public:
+-			/*these fields are used by core solutions: */
+-			void *femmodel;
+-			int   counter;
+-			/*Constructors/Destructors*/
+-			DakotaPlugin(const Dakota::ProblemDescDB& problem_db,void* in_femmodel):Dakota::DirectApplicInterface(problem_db){/*{{{*/
+-				femmodel = in_femmodel;
+-				counter  = 0;
+-			}/*}}}*/
+-			~DakotaPlugin(){/*{{{*/
+-				/* Virtual destructor handles referenceCount at Interface level. */ 
+-			}/*}}}*/
+-		protected:
+-			/*execute the input filter portion of a direct evaluation invocation*/
+-			//int derived_map_if(const Dakota::String& if_name);
+-			/*execute an analysis code portion of a direct evaluation invocation*/
+-			int derived_map_ac(const Dakota::String& driver){/*{{{*/
++int  DakotaSpawnCore(double* d_responses, int d_numresponses, double* d_variables, char** d_variables_descriptors,int d_numvariables, void* void_femmodel,int counter){ /*{{{*/
+ 
+-				int i;
+-				IssmDouble* variables=NULL;
+-				char** variable_descriptors=NULL;
+-				char*  variable_descriptor=NULL;
+-				IssmDouble* responses=NULL;
++	/*Notice the d_, which prefixes anything that is being provided to us by the Dakota pluggin. Careful. some things are ours, some are dakotas!: */
+ 
+-				/*increae counter: */
+-				counter++;
++	char     **responses_descriptors    = NULL;      //these are our! there are only numresponsedescriptors of them, not d_numresponses!!!
++	int        numresponsedescriptors;
++	int        solution_type;
++	bool       control_analysis         = false;
++	void     (*solutioncore)(FemModel*) = NULL;
++	FemModel  *femmodel                 = NULL;
++	bool       nodakotacore             = true;
+ 
+-				/*Before launching analysis, we need to transfer the dakota inputs into Issm 
+-				 *readable variables: */
++	/*If counter==-1 on cpu0, it means that the dakota runs are done. In which case, bail out and return 0: */
++	ISSM_MPI_Bcast(&counter,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
++	if(counter==-1)return 0;
+ 
+-				/*First, the variables: */
+-				variables=xNew<IssmDouble>(numACV);
+-				for(i=0;i<numACV;i++){
+-					variables[i]=xC[i];
+-				}
+-				/*The descriptors: */
+-				variable_descriptors=xNew<char*>(numACV);
+-				for(i=0;i<numACV;i++){
+-					std::string label=xCLabels[i];
+-					variable_descriptor=xNew<char>(strlen(label.c_str())+1);
+-					memcpy(variable_descriptor,label.c_str(),(strlen(label.c_str())+1)*sizeof(char));
++	/*cast void_femmodel to FemModel, and at the same time, make a copy, so we start this new core run for this specific sample 
++	 *with a brand new copy of the model, which has not been tempered with by previous dakota runs: */
++	femmodel=(reinterpret_cast<FemModel*>(void_femmodel))->copy();
+ 
+-					variable_descriptors[i]=variable_descriptor;
+-				}
++	/*retrieve parameters: */
++	femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
++	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
++	femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
+ 
+-				/*Initialize responses: */
+-				responses=xNewZeroInit<IssmDouble>(numFns);
++	if(VerboseQmu()) _printf0_("qmu iteration: " << counter << "\n");
+ 
+-				/*run core solution: */
+-				DakotaSpawnCore(responses,numFns, variables,variable_descriptors,numACV,femmodel,counter);
++	/* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */
++	DakotaMPI_Bcast(&d_variables,&d_variables_descriptors,&d_numvariables,&d_numresponses);
+ 
+-				/*populate responses: */
+-				for(i=0;i<numFns;i++){
+-					fnVals[i]=responses[i];
+-				}
++	/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
++	InputUpdateFromDakotax(femmodel,d_variables,d_variables_descriptors,d_numvariables);
+ 
+-				/*Free ressources:*/
+-				xDelete<IssmDouble>(variables);
+-				for(i=0;i<numACV;i++){
+-					variable_descriptor=variable_descriptors[i];
+-					xDelete<char>(variable_descriptor);
+-				}
+-				xDelete<char*>(variable_descriptors);
+-				xDelete<IssmDouble>(responses);
++	/*Determine solution sequence: */
++	if(VerboseQmu()) _printf0_("Starting " << EnumToStringx(solution_type) << " core:\n");
++	WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);
+ 
+-				return 0;
+-			}/*}}}*/
+-			/*execute the output filter portion of a direct evaluation invocation*/
+-			//int derived_map_of(const Dakota::String& of_name);
+-			/*add for issm: */
+-			int GetCounter(){/*{{{*/
+-				return counter;
+-			}/*}}}*/
+-		private:
+-	};
++	/*Run the core solution sequence: */
++	solutioncore(femmodel);
++
++	/*compute responses: */
++	if(VerboseQmu()) _printf0_("compute dakota responses:\n");
++	femmodel->DakotaResponsesx(d_responses,responses_descriptors,numresponsedescriptors,d_numresponses);
++
++	/*Free ressources:*/
++	DakotaFree(&d_variables,&d_variables_descriptors,&responses_descriptors, d_numvariables, numresponsedescriptors);
++
++	/*Avoid leaks here: */
++	delete femmodel;
++
++	return 1; //this is critical! do not return 0, otherwise, dakota_core will stop running!
+ } 
+-#endif
+ /*}}}*/
++void DakotaMPI_Bcast(double** pvariables, char*** pvariables_descriptors,int* pnumvariables, int* pnumresponses){ /*{{{*/
+ 
+-void dakota_core(FemModel* femmodel){ 
++	/* * \brief: broadcast variables_descriptors, variables, numvariables and numresponses
++	 * from cpu 0 to all other cpus.
++	 */ 
+ 
+-	#ifdef _HAVE_DAKOTA_ //only works if dakota library has been compiled in.
++	int i;
++	int my_rank;
+ 
++	/*inputs and outputs: */
++	double* variables=NULL;
++	char**  variables_descriptors=NULL;
++	int     numvariables;
++	int     numresponses;
++
++	/*intermediary: */
++	char* string=NULL;
++	int   string_length;
++
++	/*recover my_rank:*/
++	my_rank=IssmComm::GetRank();
++
++	/*recover inputs from pointers: */
++	variables=*pvariables;
++	variables_descriptors=*pvariables_descriptors;
++	numvariables=*pnumvariables;
++	numresponses=*pnumresponses;
++
++	/*numvariables: */
++	ISSM_MPI_Bcast(&numvariables,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
++
++	/*variables:*/
++	if(my_rank!=0)variables=xNew<double>(numvariables);
++	ISSM_MPI_Bcast(variables,numvariables,MPI_DOUBLE,0,IssmComm::GetComm()); 
++
++	/*variables_descriptors: */
++	if(my_rank!=0){
++		variables_descriptors=xNew<char*>(numvariables);
++	}
++	for(i=0;i<numvariables;i++){
++		if(my_rank==0){
++			string=variables_descriptors[i];
++			string_length=(strlen(string)+1)*sizeof(char);
++		}
++		ISSM_MPI_Bcast(&string_length,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
++		if(my_rank!=0)string=xNew<char>(string_length);
++		ISSM_MPI_Bcast(string,string_length,ISSM_MPI_CHAR,0,IssmComm::GetComm()); 
++		if(my_rank!=0)variables_descriptors[i]=string;
++	}
++
++	/*numresponses: */
++	ISSM_MPI_Bcast(&numresponses,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
++
++	/*Assign output pointers:*/
++	*pnumvariables=numvariables;
++	*pvariables=variables;
++	*pvariables_descriptors=variables_descriptors;
++	*pnumresponses=numresponses;
++} /*}}}*/
++void DakotaFree(double** pvariables,char*** pvariables_descriptors,char*** presponses_descriptors,int numvariables,int numresponses){ /*{{{*/
++
++	/*\brief DakotaFree: free allocations on other cpus, not done by Dakota.*/
++
++	int i;
++	int my_rank;
++
++	double  *variables             = NULL;
++	char   **variables_descriptors = NULL;
++	char   **responses_descriptors = NULL;
++	char    *string                = NULL;
++
++	/*recover pointers: */
++	variables=*pvariables;
++	variables_descriptors=*pvariables_descriptors;
++	responses_descriptors=*presponses_descriptors;
++
++	/*recover my_rank:*/
++	my_rank=IssmComm::GetRank();
++
++	/*Free variables and variables_descriptors only on cpu !=0*/
++	if(my_rank!=0){
++		xDelete<double>(variables);
++		for(i=0;i<numvariables;i++){
++			string=variables_descriptors[i];
++			xDelete<char>(string);
++		}
++		xDelete<char*>(variables_descriptors);
++	}
++
++	//responses descriptors on every cpu
++	for(i=0;i<numresponses;i++){
++		string=responses_descriptors[i];
++		xDelete<char>(string);
++	}
++	//rest of dynamic allocations.
++	xDelete<char*>(responses_descriptors);
++
++	/*Assign output pointers:*/
++	*pvariables=variables;
++	*pvariables_descriptors=variables_descriptors;
++	*presponses_descriptors=responses_descriptors;
++} /*}}}*/
++void dakota_core(FemModel* femmodel){  /*{{{*/
++
++
+ 	int                my_rank;
+ 	char              *dakota_input_file  = NULL;
+ 	char              *dakota_output_file = NULL;
+@@ -226,5 +295,9 @@
+ 	xDelete<char>(dakota_error_file);
+ 	xDelete<char>(dakota_output_file);
+ 
+-	#endif //#ifdef _HAVE_DAKOTA_
++} /*}}}*/
++#else
++void dakota_core(FemModel* femmodel){ 
++	/*do nothing*/
+ }
++#endif
+Index: ../trunk-jpl/src/c/classes/classes.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/classes.h	(revision 19631)
++++ ../trunk-jpl/src/c/classes/classes.h	(revision 19632)
+@@ -112,6 +112,10 @@
+ /*kriging: */
+ #include "./kriging/krigingobjects.h"
+ 
++/*dakota:*/
++#include "./Dakota/IssmDirectApplicInterface.h"
++#include "./Dakota/IssmParallelDirectApplicInterface.h"
++
+ /*diverse: */
+ #include "./Hook.h"
+ #include "./DofIndexing.h"
+Index: ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h	(revision 19632)
+@@ -0,0 +1,136 @@
++/*!\file:  IssmParallelDirectApplicInterface.h. This code is only valid for Dakota versions higher than 6!
++ *
++ * \brief: derived ParallelDirectApplicInterface class declaration and implementation, taylored to ISSM.
++ * This class is registered into the interface database of Dakota, and is used to directly call ISSM cores 
++ * from Dakota. 
++ *
++ * This routine helps running ISSM and Dakota in library mode, for Dakota versions that are >=6, and that fully 
++ * support parallelism.  The setup is radically different than from version <6! Now, dakota runs the show more. 
++ * The reason is that dakota now controls the parallelism in a master/slave setup, and hands over to ISSM a  bunch 
++ * of slave communicators, which are then used to run our simulations. Because ISSM is now ESMF compliant, we can 
++ * use these communicators to create separate identical FemModel instances on each slave communicator! This allows 
++ * us to scale to large jobs (think 1000's of cpus), which we split into multiple sub-slave communicators, which 
++ * run the sampling (or forward different, local reliability, optimization you name it) simulations on each slave. 
++ * 
++ * This is all bootstraped from the main issm_dakota main, (see c/main directory), which is heavily inspired on the
++ * main found in the dakota/src/library_mode.cpp code. We also have to create an ISSM code that registers into the 
++ * dakota database, which is capable of running ISSM. This is derived from the Dakota class called 
++ * ParallelDirectApplicInterface. 
++ */ 
++#ifndef _ISSMPARALLELDIRECTAPPLICINTERFACE_
++#define _ISSMPARALLELDIRECTAPPLICINTERFACE_
++
++/*Issm Configuration: {{{*/
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++/*}}}*/
++
++#if defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
++
++/*Dakota include files: {{{*/
++#include <DirectApplicInterface.hpp>
++/*}}}*/
++
++namespace SIM {
++	class IssmParallelDirectApplicInterface: public Dakota::DirectApplicInterface{
++      
++		public:
++			/*these fields are used by core solutions: */
++			void *femmodel;
++			
++			/*Constructors/Destructors{{{*/
++			IssmParallelDirectApplicInterface(const Dakota::ProblemDescDB& problem_db, const MPI_Comm& analysis_comm, void* in_femmodel):Dakota::DirectApplicInterface(problem_db){
++
++				#ifdef MPI_DEBUG
++				  // For testing purposes, output size/rank of the incoming analysis_comm
++				  int rank, size;
++				  MPI_Comm_rank(analysis_comm, &rank);
++				  MPI_Comm_size(analysis_comm, &size);
++				  Cout << "In SIM::ParallelDirectApplicInterface ctor, rank = " << rank
++					   << " size = " << size << std::endl;
++				 #endif // MPI_DEBUG
++
++				femmodel = in_femmodel;
++			}
++			~IssmParallelDirectApplicInterface(){
++			}
++			/*}}}*/
++		
++		protected:
++			
++			/// execute an analysis code portion of a direct evaluation invocation
++			int derived_map_ac(const Dakota::String& driver){/*{{{*/
++
++				#ifdef MPI_DEBUG
++					Cout << "analysis server " << analysisServerId << " invoking " << ac_name
++						 << " within SIM::ParallelDirectApplicInterface." << std::endl;
++				#endif // MPI_DEBUG
++
++				int i;
++				IssmDouble* variables=NULL;
++				char** variable_descriptors=NULL;
++				char*  variable_descriptor=NULL;
++				IssmDouble* responses=NULL;
++
++				/*Before launching analysis, we need to transfer the dakota inputs into Issm 
++				 *readable variables: */
++
++				/*First, the variables: */
++				variables=xNew<IssmDouble>(numACV);
++				for(i=0;i<numACV;i++){
++					variables[i]=xC[i];
++				}
++				/*The descriptors: */
++				variable_descriptors=xNew<char*>(numACV);
++				for(i=0;i<numACV;i++){
++					std::string label=xCLabels[i];
++					variable_descriptor=xNew<char>(strlen(label.c_str())+1);
++					memcpy(variable_descriptor,label.c_str(),(strlen(label.c_str())+1)*sizeof(char));
++
++					variable_descriptors[i]=variable_descriptor;
++				}
++
++				/*Initialize responses: */
++				responses=xNewZeroInit<IssmDouble>(numFns);
++
++				/*run core solution: */
++				//DakotaSpawnCore(responses,numFns, variables,variable_descriptors,numACV,femmodel);
++
++				/*populate responses: */
++				for(i=0;i<numFns;i++){
++					fnVals[i]=responses[i];
++				}
++
++				/*Free ressources:*/
++				xDelete<IssmDouble>(variables);
++				for(i=0;i<numACV;i++){
++					variable_descriptor=variable_descriptors[i];
++					xDelete<char>(variable_descriptor);
++				}
++				xDelete<char*>(variable_descriptors);
++				xDelete<IssmDouble>(responses);
++
++				return 0;
++			}/*}}}*/
++
++			/// no-op hides base error; job batching occurs within wait_local_evaluations()
++			//void derived_map_asynch(const Dakota::ParamResponsePair& pair){};
++
++			/// evaluate the batch of jobs contained in prp_queue
++			//void wait_local_evaluations(Dakota::PRPQueue& prp_queue);
++
++			/// invokes wait_local_evaluations() (no special nowait support)
++			//void test_local_evaluations(Dakota::PRPQueue& prp_queue) { wait_local_evaluations(prp_queue); };
++
++			/// no-op hides default run-time error checks at DirectApplicInterface level
++			//void set_communicators_checks(int max_eval_concurrency){};
++
++		private:
++	};
++}
++/*}}}*/
++#endif
++#endif
+Index: ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h	(revision 19632)
+@@ -0,0 +1,133 @@
++/*!\file:  IssmDirectApplicInterface.* This code is only valid for Dakota versions lower than 5!
++ *
++ * \brief: derived DirectApplicInterface class declaration and implementation, taylored to the ISSM cores. 
++ * This class is registered into the interface database of Dakota, and is used to directly call ISSM cores 
++ * from Dakota. 
++ *
++ * This routine helps running ISSM and Dakota in library mode, for Dakota versions that are <=5, and which 
++ * do not really support parallelism. In library mode, Dakota does not 
++ * run as an execuatble. Its capabilities are linked into the ISSM software, and ISSM calls dakota routines 
++ * directly from the dakota library. dakota_core.cpp is the code that is in charge of calling those routines. 
++ *
++ * Prior to versions 6 and more, Dakota had its own way of running in parallel (for embarassingly parallel jobs). 
++ * We do not want that, as ISSM knows exactly how to run "really parallel" jobs that use all CPUS. To bypass Dakota's parallelism, 
++ * we overloaded the constructor for the parallel library (see the Dakota patch in the externalpackages/dakota
++ * directory). This overloaded constructor fires up Dakota serially on CPU 0 only! We take care of broadcasting 
++ * to the other CPUS, hence ISSM is running in parallel, and Dakota serially on CPU0. 
++ *
++ * Now, how does CPU 0 drive all other CPUS to carry out sensitivity analysese? By synchronizing its call to 
++ * our ISSM cores (stressbalance_core, thermal_core, transient_core, etc ...) on CPU 0 with all other CPUS. 
++ * This explains the structure of dakota_core.cpp, where cpu 0 runs Dakota, the Dakota pluggin fires up DakotaSpawnCore.cpp, 
++ * while the other CPUS are waiting for a broadcast from CPU0, once they get it, they also fire up 
++ * DakotaSpawnCore. In the end, DakotaSpawnCore is fired up on all CPUS, with CPU0 having Dakota inputs, that it will 
++ * broacast to other CPUS. 
++ *
++ * Now, how does dakota call the DakotaSpawnCore routine? The DakotaSpawnCore is embedded into the IssmDirectApplicInterface object 
++ * which is derived from the Direct Interface Dakota objct. This is the only way to run Dakota in library 
++ * mode (see their developper guide for more info). Dakota registers the IssmDirectApplicInterface object into its own 
++ * database, and calls on the embedded DakotaSpawnCore from CPU0. 
++ *
++ */ 
++
++/*Issm Configuration: {{{*/
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif 
++/*}}}*/
++
++#if defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
++
++/*Dakota include files:{{{*/
++#include <DakotaInterface.H>
++#include <DakotaStrategy.H>
++#include <DakotaModel.H>
++#include <DirectApplicInterface.H>
++#include <DakotaResponse.H>
++#include <ParamResponsePair.H>
++#include <system_defs.h>
++#include <ProblemDescDB.H>
++#include <ParallelLibrary.H>
++/*}}}*/
++
++/*IssmDirectApplicInterface class */
++namespace SIM {
++	class IssmDirectApplicInterface: public Dakota::DirectApplicInterface{
++		public:
++			/*these fields are used by core solutions: */
++			void *femmodel;
++			int   counter;
++			/*Constructors/Destructors*/
++			IssmDirectApplicInterface(const Dakota::ProblemDescDB& problem_db,void* in_femmodel):Dakota::DirectApplicInterface(problem_db){/*{{{*/
++				femmodel = in_femmodel;
++				counter  = 0;
++			}/*}}}*/
++			~IssmDirectApplicInterface(){/*{{{*/
++				/* Virtual destructor handles referenceCount at Interface level. */ 
++			}/*}}}*/
++		protected:
++			/*execute the input filter portion of a direct evaluation invocation*/
++			//int derived_map_if(const Dakota::String& if_name);
++			/*execute an analysis code portion of a direct evaluation invocation*/
++			int derived_map_ac(const Dakota::String& driver){/*{{{*/
++
++				int i;
++				IssmDouble* variables=NULL;
++				char** variable_descriptors=NULL;
++				char*  variable_descriptor=NULL;
++				IssmDouble* responses=NULL;
++
++				/*increae counter: */
++				counter++;
++
++				/*Before launching analysis, we need to transfer the dakota inputs into Issm 
++				 *readable variables: */
++
++				/*First, the variables: */
++				variables=xNew<IssmDouble>(numACV);
++				for(i=0;i<numACV;i++){
++					variables[i]=xC[i];
++				}
++				/*The descriptors: */
++				variable_descriptors=xNew<char*>(numACV);
++				for(i=0;i<numACV;i++){
++					std::string label=xCLabels[i];
++					variable_descriptor=xNew<char>(strlen(label.c_str())+1);
++					memcpy(variable_descriptor,label.c_str(),(strlen(label.c_str())+1)*sizeof(char));
++
++					variable_descriptors[i]=variable_descriptor;
++				}
++
++				/*Initialize responses: */
++				responses=xNewZeroInit<IssmDouble>(numFns);
++
++				/*run core solution: */
++				DakotaSpawnCore(responses,numFns, variables,variable_descriptors,numACV,femmodel,counter);
++
++				/*populate responses: */
++				for(i=0;i<numFns;i++){
++					fnVals[i]=responses[i];
++				}
++
++				/*Free ressources:*/
++				xDelete<IssmDouble>(variables);
++				for(i=0;i<numACV;i++){
++					variable_descriptor=variable_descriptors[i];
++					xDelete<char>(variable_descriptor);
++				}
++				xDelete<char*>(variable_descriptors);
++				xDelete<IssmDouble>(responses);
++
++				return 0;
++			}/*}}}*/
++			/*execute the output filter portion of a direct evaluation invocation*/
++			//int derived_map_of(const Dakota::String& of_name);
++			/*add for issm: */
++			int GetCounter(){/*{{{*/
++				return counter;
++			}/*}}}*/
++		private:
++	};
++} 
++#endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19632-19633.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19632-19633.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19632-19633.diff	(revision 20498)
@@ -0,0 +1,55 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19632)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19633)
+@@ -453,10 +453,16 @@
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem"
++				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+ 				fi
++				fi
+ 			;;
+ 			*linux*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+@@ -466,9 +472,11 @@
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+-				else if test x$DAKOTA_VERSION = x6.1; then
++				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -486,15 +494,17 @@
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+-				else if test x$DAKOTA_VERSION = x6.1; then
+-				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL -Wno-deprecated-register -Wno-return-type"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+ 				fi
+-            fi
+ 				fi
++				fi
+ 			;;
+ 		esac
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19633-19634.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19633-19634.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19633-19634.diff	(revision 20498)
@@ -0,0 +1,382 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19633)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19634)
+@@ -451,13 +451,16 @@
+ 			*cygwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
++					AM_CONDITIONAL([ISSM_DAKOTA],1)
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -467,16 +470,21 @@
+ 			*linux*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system -ldl"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
++					AM_CONDITIONAL([ISSM_DAKOTA],1)
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -487,18 +495,24 @@
+ 			*darwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver" 
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
++					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL -Wno-deprecated-register -Wno-return-type"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
++					AM_CONDITIONAL([ISSM_DAKOTA],1)
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+Index: ../trunk-jpl/src/c/main/issm_dakota.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19633)
++++ ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19634)
+@@ -5,14 +5,19 @@
+ #include "./issm.h"
+ 
+ /*Dakota includes: */
++#if defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
+ #include "ParallelLibrary.hpp"
+ #include "ProblemDescDB.hpp"
+ #include "LibraryEnvironment.hpp"
+ #include "DakotaModel.hpp"
+ #include "DakotaInterface.hpp"
++#endif
+ 
+ int main(int argc,char **argv){
+ 
++
++	#if defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
++
+ 	bool parallel=true;
+ 	char* dakota_input_file=NULL;
+ 
+@@ -79,4 +84,8 @@
+ 
+ 	/*Return unix success: */
+ 	return 0; 
++	#else 
++	Cout <<  "ISSM Dakota  executable was compiled without support of Dakota! Will just return now!" << "\n";
++	return 1;
++	#endif
+ }
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19633)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19634)
+@@ -660,7 +660,7 @@
+ kriging_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+ endif
+ 
+-if DAKOTA
++if ISSM_DAKOTA
+ bin_PROGRAMS += issm_dakota
+ issm_dakota_SOURCES = main/issm_dakota.cpp
+ issm_dakota_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+Index: ../trunk-jpl/src/c/cores/dakota_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/dakota_core.cpp	(revision 19633)
++++ ../trunk-jpl/src/c/cores/dakota_core.cpp	(revision 19634)
+@@ -58,68 +58,68 @@
+ #include "../toolkits/toolkits.h"
+ #include "../shared/shared.h"
+ #include "../classes/classes.h"
++#include "../modules/modules.h"
+ 
+-#if defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
+-
+-/*include dakota files: */
++#if defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ <= 5) //this only works for Dakota <=5, which had no effective parallel capabilities yet.
++/*Dakota include files:{{{*/
++#if (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
+ #include <ParallelLibrary.H>
+ #include <ProblemDescDB.H>
+ #include <DakotaStrategy.H>
+ #include <DakotaModel.H>
+ #include <DakotaInterface.H>
+-int  DakotaSpawnCore(double* d_responses, int d_numresponses, double* d_variables, char** d_variables_descriptors,int d_numvariables, void* void_femmodel,int counter){ /*{{{*/
++#else
++#include <ParallelLibrary.hpp>
++#include <ProblemDescDB.hpp>
++#include <DakotaStrategy.hpp>
++#include <DakotaModel.hpp>
++#include <DakotaInterface.hpp>
++#endif
++/*}}}*/
+ 
+-	/*Notice the d_, which prefixes anything that is being provided to us by the Dakota pluggin. Careful. some things are ours, some are dakotas!: */
++void DakotaFree(double** pvariables,char*** pvariables_descriptors,char*** presponses_descriptors,int numvariables,int numresponses){ /*{{{*/
+ 
+-	char     **responses_descriptors    = NULL;      //these are our! there are only numresponsedescriptors of them, not d_numresponses!!!
+-	int        numresponsedescriptors;
+-	int        solution_type;
+-	bool       control_analysis         = false;
+-	void     (*solutioncore)(FemModel*) = NULL;
+-	FemModel  *femmodel                 = NULL;
+-	bool       nodakotacore             = true;
++	/*\brief DakotaFree: free allocations on other cpus, not done by Dakota.*/
+ 
+-	/*If counter==-1 on cpu0, it means that the dakota runs are done. In which case, bail out and return 0: */
+-	ISSM_MPI_Bcast(&counter,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
+-	if(counter==-1)return 0;
++	int i;
++	int my_rank;
+ 
+-	/*cast void_femmodel to FemModel, and at the same time, make a copy, so we start this new core run for this specific sample 
+-	 *with a brand new copy of the model, which has not been tempered with by previous dakota runs: */
+-	femmodel=(reinterpret_cast<FemModel*>(void_femmodel))->copy();
++	double  *variables             = NULL;
++	char   **variables_descriptors = NULL;
++	char   **responses_descriptors = NULL;
++	char    *string                = NULL;
+ 
+-	/*retrieve parameters: */
+-	femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
+-	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+-	femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
++	/*recover pointers: */
++	variables=*pvariables;
++	variables_descriptors=*pvariables_descriptors;
++	responses_descriptors=*presponses_descriptors;
+ 
+-	if(VerboseQmu()) _printf0_("qmu iteration: " << counter << "\n");
++	/*recover my_rank:*/
++	my_rank=IssmComm::GetRank();
+ 
+-	/* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */
+-	DakotaMPI_Bcast(&d_variables,&d_variables_descriptors,&d_numvariables,&d_numresponses);
++	/*Free variables and variables_descriptors only on cpu !=0*/
++	if(my_rank!=0){
++		xDelete<double>(variables);
++		for(i=0;i<numvariables;i++){
++			string=variables_descriptors[i];
++			xDelete<char>(string);
++		}
++		xDelete<char*>(variables_descriptors);
++	}
+ 
+-	/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
+-	InputUpdateFromDakotax(femmodel,d_variables,d_variables_descriptors,d_numvariables);
++	//responses descriptors on every cpu
++	for(i=0;i<numresponses;i++){
++		string=responses_descriptors[i];
++		xDelete<char>(string);
++	}
++	//rest of dynamic allocations.
++	xDelete<char*>(responses_descriptors);
+ 
+-	/*Determine solution sequence: */
+-	if(VerboseQmu()) _printf0_("Starting " << EnumToStringx(solution_type) << " core:\n");
+-	WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);
+-
+-	/*Run the core solution sequence: */
+-	solutioncore(femmodel);
+-
+-	/*compute responses: */
+-	if(VerboseQmu()) _printf0_("compute dakota responses:\n");
+-	femmodel->DakotaResponsesx(d_responses,responses_descriptors,numresponsedescriptors,d_numresponses);
+-
+-	/*Free ressources:*/
+-	DakotaFree(&d_variables,&d_variables_descriptors,&responses_descriptors, d_numvariables, numresponsedescriptors);
+-
+-	/*Avoid leaks here: */
+-	delete femmodel;
+-
+-	return 1; //this is critical! do not return 0, otherwise, dakota_core will stop running!
+-} 
+-/*}}}*/
++	/*Assign output pointers:*/
++	*pvariables=variables;
++	*pvariables_descriptors=variables_descriptors;
++	*presponses_descriptors=responses_descriptors;
++} /*}}}*/
+ void DakotaMPI_Bcast(double** pvariables, char*** pvariables_descriptors,int* pnumvariables, int* pnumresponses){ /*{{{*/
+ 
+ 	/* * \brief: broadcast variables_descriptors, variables, numvariables and numresponses
+@@ -179,49 +179,59 @@
+ 	*pvariables_descriptors=variables_descriptors;
+ 	*pnumresponses=numresponses;
+ } /*}}}*/
+-void DakotaFree(double** pvariables,char*** pvariables_descriptors,char*** presponses_descriptors,int numvariables,int numresponses){ /*{{{*/
++int  DakotaSpawnCore(double* d_responses, int d_numresponses, double* d_variables, char** d_variables_descriptors,int d_numvariables, void* void_femmodel,int counter){ /*{{{*/
+ 
+-	/*\brief DakotaFree: free allocations on other cpus, not done by Dakota.*/
++	/*Notice the d_, which prefixes anything that is being provided to us by the Dakota pluggin. Careful. some things are ours, some are dakotas!: */
+ 
+-	int i;
+-	int my_rank;
++	char     **responses_descriptors    = NULL;      //these are our! there are only numresponsedescriptors of them, not d_numresponses!!!
++	int        numresponsedescriptors;
++	int        solution_type;
++	bool       control_analysis         = false;
++	void     (*solutioncore)(FemModel*) = NULL;
++	FemModel  *femmodel                 = NULL;
++	bool       nodakotacore             = true;
+ 
+-	double  *variables             = NULL;
+-	char   **variables_descriptors = NULL;
+-	char   **responses_descriptors = NULL;
+-	char    *string                = NULL;
++	/*If counter==-1 on cpu0, it means that the dakota runs are done. In which case, bail out and return 0: */
++	ISSM_MPI_Bcast(&counter,1,ISSM_MPI_INT,0,IssmComm::GetComm()); 
++	if(counter==-1)return 0;
+ 
+-	/*recover pointers: */
+-	variables=*pvariables;
+-	variables_descriptors=*pvariables_descriptors;
+-	responses_descriptors=*presponses_descriptors;
++	/*cast void_femmodel to FemModel, and at the same time, make a copy, so we start this new core run for this specific sample 
++	 *with a brand new copy of the model, which has not been tempered with by previous dakota runs: */
++	femmodel=(reinterpret_cast<FemModel*>(void_femmodel))->copy();
+ 
+-	/*recover my_rank:*/
+-	my_rank=IssmComm::GetRank();
++	/*retrieve parameters: */
++	femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
++	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
++	femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
+ 
+-	/*Free variables and variables_descriptors only on cpu !=0*/
+-	if(my_rank!=0){
+-		xDelete<double>(variables);
+-		for(i=0;i<numvariables;i++){
+-			string=variables_descriptors[i];
+-			xDelete<char>(string);
+-		}
+-		xDelete<char*>(variables_descriptors);
+-	}
++	if(VerboseQmu()) _printf0_("qmu iteration: " << counter << "\n");
+ 
+-	//responses descriptors on every cpu
+-	for(i=0;i<numresponses;i++){
+-		string=responses_descriptors[i];
+-		xDelete<char>(string);
+-	}
+-	//rest of dynamic allocations.
+-	xDelete<char*>(responses_descriptors);
++	/* only cpu 0, running dakota is providing us with variables and variables_descriptors and numresponses: broadcast onto other cpus: */
++	DakotaMPI_Bcast(&d_variables,&d_variables_descriptors,&d_numvariables,&d_numresponses);
+ 
+-	/*Assign output pointers:*/
+-	*pvariables=variables;
+-	*pvariables_descriptors=variables_descriptors;
+-	*presponses_descriptors=responses_descriptors;
+-} /*}}}*/
++	/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
++	InputUpdateFromDakotax(femmodel,d_variables,d_variables_descriptors,d_numvariables);
++
++	/*Determine solution sequence: */
++	if(VerboseQmu()) _printf0_("Starting " << EnumToStringx(solution_type) << " core:\n");
++	WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);
++
++	/*Run the core solution sequence: */
++	solutioncore(femmodel);
++
++	/*compute responses: */
++	if(VerboseQmu()) _printf0_("compute dakota responses:\n");
++	femmodel->DakotaResponsesx(d_responses,responses_descriptors,numresponsedescriptors,d_numresponses);
++
++	/*Free ressources:*/
++	DakotaFree(&d_variables,&d_variables_descriptors,&responses_descriptors, d_numvariables, numresponsedescriptors);
++
++	/*Avoid leaks here: */
++	delete femmodel;
++
++	return 1; //this is critical! do not return 0, otherwise, dakota_core will stop running!
++} 
++/*}}}*/
+ void dakota_core(FemModel* femmodel){  /*{{{*/
+ 
+ 
+@@ -272,7 +282,7 @@
+ 			problem_db.set_db_model_nodes(ml_iter->model_id());
+ 
+ 			// Serial case: plug in derived Interface object without an analysisComm
+-			interface.assign_rep(new SIM::DakotaPlugin(problem_db,(void*)femmodel), false);
++			interface.assign_rep(new SIM::IssmDirectApplicInterface(problem_db,(void*)femmodel), false);
+ 		}
+ 
+ 		// Execute the strategy
+@@ -298,6 +308,6 @@
+ } /*}}}*/
+ #else
+ void dakota_core(FemModel* femmodel){ 
+-	/*do nothing*/
++	_error_("dakota_core for versions of Dakota >=6 should not be used anymore! Use instead the issm_dakota  executable!");
+ }
+ #endif
+Index: ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h	(revision 19633)
++++ ../trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h	(revision 19634)
+@@ -37,20 +37,27 @@
+ #endif 
+ /*}}}*/
+ 
+-#if defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
++#if !defined(_WRAPPERS_) && defined(_HAVE_DAKOTA_) && (_DAKOTA_MAJOR_ <= 5) //this only works for Dakota <=5, which had no effective parallel capabilities yet.
+ 
+ /*Dakota include files:{{{*/
+-#include <DakotaInterface.H>
+-#include <DakotaStrategy.H>
+-#include <DakotaModel.H>
++#if (_DAKOTA_MAJOR_ < 5 || (_DAKOTA_MAJOR_ == 5 && _DAKOTA_MINOR_ < 3))
+ #include <DirectApplicInterface.H>
+ #include <DakotaResponse.H>
+ #include <ParamResponsePair.H>
+ #include <system_defs.h>
+ #include <ProblemDescDB.H>
+ #include <ParallelLibrary.H>
++#else
++#include <DirectApplicInterface.hpp>
++#include <DakotaResponse.hpp>
++#include <ParamResponsePair.hpp>
++#include <ProblemDescDB.hpp>
++#include <ParallelLibrary.hpp>
++#endif
+ /*}}}*/
+ 
++int  DakotaSpawnCore(double* d_responses, int d_numresponses, double* d_variables, char** d_variables_descriptors,int d_numvariables, void* void_femmodel,int counter);
++
+ /*IssmDirectApplicInterface class */
+ namespace SIM {
+ 	class IssmDirectApplicInterface: public Dakota::DirectApplicInterface{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19634-19635.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19634-19635.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19634-19635.diff	(revision 20498)
@@ -0,0 +1,87 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19634)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19635)
+@@ -426,6 +426,7 @@
+ 	fi
+ 	AC_MSG_RESULT($HAVE_DAKOTA)
+ 	AM_CONDITIONAL([DAKOTA],[test x$HAVE_DAKOTA = xyes])
++	ISSM_DAKOTA=no
+ 
+ 	dnl library and header files
+ 	if test "x$HAVE_DAKOTA" = "xyes"; then
+@@ -451,16 +452,14 @@
+ 			*cygwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+-					AM_CONDITIONAL([ISSM_DAKOTA],1)
++					ISSM_DAKOTA=yes
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -470,21 +469,18 @@
+ 			*linux*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system -ldl"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+-					AM_CONDITIONAL([ISSM_DAKOTA],1)
++					ISSM_DAKOTA=yes
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -495,24 +491,19 @@
+ 			*darwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver" 
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+ 				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+-					AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL -Wno-deprecated-register -Wno-return-type"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+-					AM_CONDITIONAL([ISSM_DAKOTA],1)
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -557,6 +548,8 @@
+ 		AC_SUBST([DAKOTAFLAGS])
+ 		AC_SUBST([DAKOTALIB])
+ 	fi
++
++	AM_CONDITIONAL([ISSM_DAKOTA],[test x$ISSM_DAKOTA = xyes])
+ 	dnl }}}
+ 	dnl python{{{
+ 	AC_ARG_WITH([python-dir],
Index: /issm/oecreview/Archive/19101-20495/ISSM-19635-19636.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19635-19636.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19635-19636.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19635)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19636)
+@@ -426,7 +426,6 @@
+ 	fi
+ 	AC_MSG_RESULT($HAVE_DAKOTA)
+ 	AM_CONDITIONAL([DAKOTA],[test x$HAVE_DAKOTA = xyes])
+-	ISSM_DAKOTA=no
+ 
+ 	dnl library and header files
+ 	if test "x$HAVE_DAKOTA" = "xyes"; then
+@@ -459,7 +458,6 @@
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+-					ISSM_DAKOTA=yes
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -480,7 +478,6 @@
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+-					ISSM_DAKOTA=yes
+ 				else
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+@@ -548,8 +545,7 @@
+ 		AC_SUBST([DAKOTAFLAGS])
+ 		AC_SUBST([DAKOTALIB])
+ 	fi
+-
+-	AM_CONDITIONAL([ISSM_DAKOTA],[test x$ISSM_DAKOTA = xyes])
++	AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
+ 	dnl }}}
+ 	dnl python{{{
+ 	AC_ARG_WITH([python-dir],
Index: /issm/oecreview/Archive/19101-20495/ISSM-19636-19637.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19636-19637.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19636-19637.diff	(revision 20498)
@@ -0,0 +1,109 @@
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19636)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19637)
+@@ -246,7 +246,7 @@
+ 	IssmDouble  thermal_exchange_vel= element->GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGaussBase(2);
++	Gauss* gauss=element->NewGaussBase(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -312,7 +312,7 @@
+ 	if(stabilization==2) diameter=element->MinEdgeLength(xyz_list);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGauss(2);
++	Gauss* gauss=element->NewGauss(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -451,7 +451,7 @@
+ 	Friction* friction=new Friction(element,3);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss   = element->NewGaussBase(2);
++	Gauss* gauss   = element->NewGaussBase(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -510,7 +510,7 @@
+ 	IssmDouble  thermal_exchange_vel= element->GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGaussBase(2);
++	Gauss* gauss=element->NewGaussBase(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -570,7 +570,7 @@
+ 	if(stabilization==2) diameter=element->MinEdgeLength(xyz_list);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGauss(3);
++	Gauss* gauss=element->NewGauss(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -713,7 +713,7 @@
+ 	int         i,rheology_law;
+ 	int        *doflist   = NULL;
+ 	IssmDouble *xyz_list  = NULL;
+-	bool        hack      = false;
++	bool        hack      = true;
+ 
+ 	/*Fetch number of nodes and dof for this finite element*/
+ 	int numnodes = element->GetNumberOfNodes();
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19636)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 19637)
+@@ -529,7 +529,7 @@
+ 	IssmDouble kappa=this->EnthalpyDiffusionParameterVolume(element,EnthalpyPicardEnum); _assert_(kappa>=0.);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGauss(2);
++	Gauss* gauss=element->NewGauss(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -647,7 +647,7 @@
+ 	IssmDouble  thermal_exchange_vel= element->GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGaussBase(2);
++	Gauss* gauss=element->NewGaussBase(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -736,7 +736,7 @@
+ 	}
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGauss(3);
++	Gauss* gauss=element->NewGauss(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -843,8 +843,8 @@
+ 	Friction* friction=new Friction(element,3);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGaussBase(2);
+-	Gauss* gaussup=element->NewGaussTop(2);
++	Gauss* gauss=element->NewGaussBase(4);
++	Gauss* gaussup=element->NewGaussTop(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 		gaussup->GaussPoint(ig);
+@@ -937,7 +937,7 @@
+ 	IssmDouble  thermal_exchange_vel= element->GetMaterialParameter(MaterialsThermalExchangeVelocityEnum);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGaussBase(2);
++	Gauss* gauss=element->NewGaussBase(4);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19637-19638.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19637-19638.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19637-19638.diff	(revision 20498)
@@ -0,0 +1,221 @@
+Index: ../trunk-jpl/src/m/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.py	(revision 19637)
++++ ../trunk-jpl/src/m/solve/solve.py	(revision 19638)
+@@ -94,7 +94,7 @@
+ 	#Write all input files
+ 	marshall(md)                                           # bin file
+ 	md.toolkits.ToolkitsFile(md.miscellaneous.name+'.toolkits')    # toolkits file
+-	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof)    # queue file
++	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota)    # queue file
+ 
+ 	#Stop here if batch mode
+ 	if m.strcmpi(options.getfieldvalue('batch','no'),'yes'):
+Index: ../trunk-jpl/src/m/solve/solve.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.m	(revision 19637)
++++ ../trunk-jpl/src/m/solve/solve.m	(revision 19638)
+@@ -96,7 +96,7 @@
+ %Write all input files
+ marshall(md);                                          % bin file
+ ToolkitsFile(md.toolkits,[md.miscellaneous.name '.toolkits']); % toolkits file
+-BuildQueueScript(cluster,md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof); % queue file
++BuildQueueScript(cluster,md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); % queue file
+ 
+ %Stop here if batch mode
+ if strcmpi(getfieldvalue(options,'batch','no'),'yes')
+Index: ../trunk-jpl/src/m/dev/devpath.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.m	(revision 19637)
++++ ../trunk-jpl/src/m/dev/devpath.m	(revision 19638)
+@@ -17,7 +17,7 @@
+ 
+ %ISSM path
+ addpath([ISSM_DIR '/src/m/os/']); %load recursivepath
+-addpath([ISSM_DIR '/lib']);       %load mex
++addpath([ISSM_DIR '/build-fw/lib']);       %load mex
+ addpath(recursivepath([ISSM_DIR '/src/m']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/scotch']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/canos']));
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19638)
+@@ -93,7 +93,7 @@
+ 			 fclose(fid);
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/castor.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/castor.m	(revision 19638)
+@@ -45,7 +45,7 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/acenet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/acenet.m	(revision 19638)
+@@ -55,7 +55,7 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/cosmos.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/cosmos.m	(revision 19638)
+@@ -45,7 +45,7 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/greenplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19638)
+@@ -96,7 +96,7 @@
+ 			 fclose(fid);
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/cloud.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/cloud.m	(revision 19638)
+@@ -47,7 +47,7 @@
+ 			end
+ 		end
+ 		%}}}
+-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			%write queuing script 
+ 			fid=fopen([modelname '.queue'],'w');
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19638)
+@@ -128,7 +128,7 @@
+ 			
+ 		return self
+ 	# }}}
+-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof):
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+ 		# {{{
+ 
+ 		self.np=self.numnodes*self.cpuspernode;
+Index: ../trunk-jpl/src/m/classes/clusters/gemini.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/gemini.m	(revision 19638)
+@@ -45,7 +45,7 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19638)
+@@ -68,7 +68,7 @@
+ 
+ 		return md
+ 	# }}}
+-	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof):    # {{{
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):    # {{{
+ 
+ 		#write queuing script 
+ 		if not m.ispc():
+Index: ../trunk-jpl/src/m/classes/clusters/hpc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19638)
+@@ -90,7 +90,7 @@
+ 			 fclose(fid);
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19638)
+@@ -111,7 +111,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19638)
+@@ -83,7 +83,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/generic_static.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 19638)
+@@ -48,7 +48,7 @@
+ 			end
+ 		end
+ 		%}}}
+-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			%write queuing script 
+ 			fid=fopen([modelname '.queue'],'w');
+Index: ../trunk-jpl/src/m/classes/clusters/pollux.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19637)
++++ ../trunk-jpl/src/m/classes/clusters/pollux.m	(revision 19638)
+@@ -45,7 +45,7 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 		 end
+ 		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19638-19639.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19638-19639.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19638-19639.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/dev/devpath.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.py	(revision 19638)
++++ ../trunk-jpl/src/m/dev/devpath.py	(revision 19639)
+@@ -21,7 +21,7 @@
+ 				if root not in sys.path:
+ 					sys.path.append(root)
+ 				
+-sys.path.append(ISSM_DIR + '/build-fw/lib')
++sys.path.append(ISSM_DIR + '/lib')
+ sys.path.append(ISSM_DIR + '/src/wrappers/python/.libs')
+ # If using clusters, we need to have the path to the cluster settings directory
+ if(JPL_SVN!=None):
+Index: ../trunk-jpl/src/m/dev/devpath.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.m	(revision 19638)
++++ ../trunk-jpl/src/m/dev/devpath.m	(revision 19639)
+@@ -17,7 +17,7 @@
+ 
+ %ISSM path
+ addpath([ISSM_DIR '/src/m/os/']); %load recursivepath
+-addpath([ISSM_DIR '/build-fw/lib']);       %load mex
++addpath([ISSM_DIR '/lib']);       %load mex
+ addpath(recursivepath([ISSM_DIR '/src/m']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/scotch']));
+ addpath(recursivepath([ISSM_DIR '/externalpackages/canos']));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19639-19640.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19639-19640.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19639-19640.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19639)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19640)
+@@ -89,7 +89,7 @@
+ 			end
+ 		end
+ 		%}}}
+-		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			%write queuing script 
+ 			if ~ispc(),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19640-19641.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19640-19641.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19640-19641.diff	(revision 20498)
@@ -0,0 +1,216 @@
+Index: ../trunk-jpl/test/Archives/Archive439.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive111.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive232.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive313.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive206.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive515.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive327.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive120.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive510.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive108.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive210.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive224.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive802.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive426.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive507.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive233.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive207.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive516.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive409.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive121.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive109.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive211.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive225.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive803.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive508.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive427.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive315.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive436.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive329.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive122.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive431.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive324.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive509.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive316.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive437.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive432.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive513.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive325.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive406.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive415.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive227.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive805.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive410.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive505.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive312.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive124.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive326.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive407.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive416.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive411.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive506.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive318.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19641-19642.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19641-19642.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19641-19642.diff	(revision 20498)
@@ -0,0 +1,73 @@
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19641)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19642)
+@@ -104,13 +104,6 @@
+ 			if ~isa(md.outputdefinition,'outputdefinition'),
+ 				md.outputdefinition=outputdefinition();
+ 			end
+-			%2014 January 9th - 2015 Sept 10
+-			if isa(md.smb,'smb'),
+-				disp('Recovering old smb class');
+-				mass_balance=md.smb.mass_balance;
+-				md.smb=SMBforcing();
+-				md.smb.mass_balance=mass_balance;
+-			end
+ 			%2014 March 26th
+ 			if isa(md.mesh,'mesh'),
+ 				disp('Recovering old mesh class');
+@@ -1039,6 +1032,19 @@
+ 				disp('Recovering old diagnostic class');
+ 				md.stressbalance=stressbalance(structmd.diagnostic);
+ 			end
++			%2014 January 9th
++			if isfield(structmd,'surfaceforcings'),
++				disp('Recovering old surfaceforcings class');
++				mass_balance=structmd.surfaceforcings.mass_balance;
++				md.smb=SMB();
++				md.smb.mass_balance=mass_balance;
++			end
++			%2015 September 10
++			if isfield(structmd,'surfaceforcings') & isa(md.smb,'SMB'),
++				disp('Recovering old SMB class');
++				md.smb=SMBforcing(structmd.surfaceforcings);
++			end
++
+ 		end% }}}
+ 		function md = setdefaultparameters(md) % {{{
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19641)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19642)
+@@ -18,7 +18,7 @@
+ 		 codepath      = '';
+ 		 executionpath = '';
+ 		 interactive   = 0;
+-		 time          = 24*60;
++		 time          = 24*60*60;
+ 	 end
+ 	 properties (SetAccess=private) 
+ 		 np=20*8;
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19641)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19642)
+@@ -18,6 +18,17 @@
+ 		function self = SMBforcing(varargin) % {{{
+ 			switch nargin
+ 				case 0
++
++				case 1
++					inputstruct=varargin{1};
++					list1 = properties('SMBforcing');
++					list2 = fieldnames(inputstruct);
++					for i=1:length(list1)
++						fieldname = list1{i};
++						if ismember(fieldname,list2),
++							self.(fieldname) = inputstruct.(fieldname);
++						end
++					end
+ 				otherwise
+ 					error('constructor not supported');
+ 			end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19642-19643.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19642-19643.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19642-19643.diff	(revision 20498)
@@ -0,0 +1,136 @@
+Index: ../trunk-jpl/src/m/classes/SMB.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMB.m	(revision 19642)
++++ ../trunk-jpl/src/m/classes/SMB.m	(revision 19643)
+@@ -1,58 +0,0 @@
+-%SMB Class definition
+-%
+-%   Usage:
+-%      SMB=SMB();
+-
+-classdef SMB
+-	properties (SetAccess=public) 
+-		mass_balance = NaN;
+-	end
+-	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- surfaceforcings(SMB) -->');
+-			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="mass_balance" type="',class(self.mass_balance),'" default="',self.mass_balance,'">','     <section name="surfaceforcings(SMB)" />','     <help> surface mass balance [m/yr ice eq] </help>','</parameter>');
+-           
+-        end % }}}
+-		function self = SMB(varargin) % {{{
+-			switch nargin
+-				case 0
+-				otherwise
+-					error('constructor not supported');
+-			end
+-		end % }}}
+-		function self = extrude(self,md) % {{{
+-
+-			self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node');
+-
+-		end % }}}
+-		function self = initialize(self,md) % {{{
+-
+-			if isnan(self.mass_balance)
+-				self.mass_balance=zeros(md.mesh.numberofvertices,1);
+-				disp('      no surfaceforcings.mass_balance specified: values set as zero');
+-			end
+-
+-		end % }}}
+-		function md = checkconsistency(self,md,solution,analyses) % {{{
+-
+-			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.mass_balance','timeseries',1,'NaN',1);
+-			end
+-			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
+-			end
+-		end % }}}
+-		function disp(self) % {{{
+-			disp(sprintf('   surface forcings parameters:'));
+-			fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]');
+-		end % }}}
+-		function marshall(self,md,fid) % {{{
+-
+-			yts=365.0*24.0*3600.0;
+-
+-			WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBEnum(),'format','Integer');
+-			WriteData(fid,'object',self,'class','surfaceforcings','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+-		end % }}}
+-	end
+-end
+Index: ../trunk-jpl/src/m/classes/SMB.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMB.py	(revision 19642)
++++ ../trunk-jpl/src/m/classes/SMB.py	(revision 19643)
+@@ -1,53 +0,0 @@
+-import numpy
+-from fielddisplay import fielddisplay
+-from EnumDefinitions import *
+-from checkfield import checkfield
+-from WriteData import WriteData
+-from project3d import project3d
+-
+-class SMB(object):
+-	"""
+-	SMB Class definition
+-
+-	   Usage:
+-	      SMB=SMB();
+-	"""
+-
+-	def __init__(self): # {{{
+-		self.mass_balance = float('NaN')
+-		#}}}
+-	def __repr__(self): # {{{
+-		string="   surface forcings parameters:"
+-		string="%s\n%s"%(string,fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]'))
+-		return string
+-		#}}}
+-	def extrude(self,md): # {{{
+-
+-		self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node');
+-		return self
+-	#}}}
+-	def initialize(self,md): # {{{
+-
+-		if numpy.all(numpy.isnan(self.mass_balance)):
+-			self.mass_balance=numpy.zeros((md.mesh.numberofvertices,1))
+-			print "      no SMB.mass_balance specified: values set as zero"
+-
+-		return self
+-	#}}}
+-	def checkconsistency(self,md,solution,analyses):    # {{{
+-
+-		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.mass_balance','timeseries',1,'NaN',1)
+-
+-		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
+-
+-		return md
+-	# }}}
+-	def marshall(self,md,fid):    # {{{
+-
+-		yts=365.0*24.0*3600.0
+-
+-		WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SMBEnum(),'format','Integer');
+-		WriteData(fid,'object',self,'class','surfaceforcings','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-	# }}}
+Index: ../trunk-jpl/src/m/classes/oldclasses/SMB.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/oldclasses/SMB.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/oldclasses/SMB.m	(revision 19643)
+@@ -0,0 +1,10 @@
++%SMB Class definition
++%
++%   Usage:
++%      SMB=SMB();
++
++classdef SMB
++	properties (SetAccess=public) 
++		mass_balance = NaN;
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19643-19644.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19643-19644.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19643-19644.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19643)
++++ ../trunk-jpl/src/c/analyses/SmbAnalysis.cpp	(revision 19644)
+@@ -36,8 +36,6 @@
+ 	iomodel->Constant(&smb_model,SmbEnum);
+ 
+ 			
+-	Input* bof=NULL;
+-	Element* element=NULL;
+ 	switch(smb_model){
+ 		case SMBforcingEnum:
+ 			iomodel->FetchDataToInput(elements,SmbMassBalanceEnum,0.);
+Index: ../trunk-jpl/src/c/bamg/VertexOnGeom.cpp
+===================================================================
+--- ../trunk-jpl/src/c/bamg/VertexOnGeom.cpp	(revision 19643)
++++ ../trunk-jpl/src/c/bamg/VertexOnGeom.cpp	(revision 19644)
+@@ -43,11 +43,11 @@
+ 	}
+ 	/*}}}*/
+ 	int VertexOnGeom::OnGeomVertex()const{/*{{{*/
+-		return this? curvilincoord <0 :0;
++		return curvilincoord<0;
+ 	}
+ 	/*}}}*/
+ 	int VertexOnGeom::OnGeomEdge() const{/*{{{*/
+-		return this? curvilincoord >=0 :0;
++		return curvilincoord>=0;
+ 	}
+ 	/*}}}*/
+ 	int VertexOnGeom::IsRequiredVertex() {/*{{{*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19644-19645.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19644-19645.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19644-19645.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19644)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19645)
+@@ -473,6 +473,7 @@
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+@@ -496,6 +497,7 @@
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -lmods -lmoga -loptpp -lsampling -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -lmod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lanalyzer -lbose -lcport -ldace -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -lrandom -ltinyxml -lutilities -lsparsegrid -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
++					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL -Wno-deprecated-register -Wno-return-type"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19645-19646.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19645-19646.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19645-19646.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/Archives/Archive431.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive209.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive214.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19646-19647.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19646-19647.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19646-19647.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19646)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19647)
+@@ -78,6 +78,7 @@
+ 	this->InitFromFiles(rootpath,binfilename,outbinfilename,petscfilename,lockfilename,restartfilename, solution_type,trace,NULL);
+ 	profiler->Tag(FinishInit);
+ 
++
+ 	/*Free resources */
+ 	xDelete<char>(lockfilename);
+ 	xDelete<char>(binfilename);
+@@ -128,6 +129,13 @@
+ 
+ 	/*Now delete: */
+ 	if(profiler)delete profiler;
++	
++	/*Finalize PETSC for this model: */
++	#ifdef _HAVE_PETSC_
++	_printf0_("closing PETSc\n");
++	PetscFinalize();
++	#endif
++
+ }
+ /*}}}*/
+ 
+@@ -248,13 +256,6 @@
+ 				);
+ 	_printf0_("\n");
+ 
+-	/*Finalize PETSC for this model: */
+-	#ifdef _HAVE_PETSC_
+-	_printf0_("closing PETSc\n");
+-	PetscFinalize();
+-	#endif
+-
+-
+ 	/*Clean up*/
+ 	xDelete<char>(outbinfilename);
+ 	xDelete<char>(lockfilename);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19647-19648.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19647-19648.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19647-19648.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/test/NightlyRun/test431.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test431.py	(revision 19647)
++++ ../trunk-jpl/test/NightlyRun/test431.py	(revision 19648)
+@@ -24,7 +24,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy']
+-field_tolerances=[8e-5,5e-5,5e-5,5e-5,1e-13,1e-5,5e-5,5e-5]
++field_tolerances=[8e-4,5e-4,5e-4,5e-4,1e-13,1e-4,5e-4,5e-4]
+ field_values=[\
+ 	md.results.SteadystateSolution.Vx,\
+ 	md.results.SteadystateSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test431.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test431.m	(revision 19647)
++++ ../trunk-jpl/test/NightlyRun/test431.m	(revision 19648)
+@@ -14,7 +14,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy'};
+-field_tolerances={8e-5,5e-5,5e-5,5e-5,1e-13,1e-5,5e-5,5e-5};
++field_tolerances={8e-4,5e-4,5e-4,5e-4,1e-13,1e-4,5e-4,5e-4};
+ field_values={...
+ 	(md.results.SteadystateSolution.Vx),...
+ 	(md.results.SteadystateSolution.Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test211.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test211.m	(revision 19647)
++++ ../trunk-jpl/test/NightlyRun/test211.m	(revision 19648)
+@@ -14,8 +14,8 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', ...
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={...
+-	2e-08,2e-08,1e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,...
+-	5e-07,5e-07,5e-05,1e-07,1e-08,1e-08,1e-08,1e-08,5e-08,2e-06,...
++	2e-08,2e-08,2e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,...
++	5e-07,5e-07,5e-05,2e-07,1e-08,1e-08,1e-08,1e-08,6e-08,2e-06,...
+ 	5e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+Index: ../trunk-jpl/test/NightlyRun/test701.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test701.m	(revision 19647)
++++ ../trunk-jpl/test/NightlyRun/test701.m	(revision 19648)
+@@ -57,7 +57,7 @@
+ 	md.flowequation.fe_FS=i{1};
+ 	md=solve(md,StressbalanceSolutionEnum());
+ 	field_names     ={field_names{:},['Vx' i{1}],['Vy' i{1}],['Vel' i{1}],['Pressure' i{1}]};
+-	field_tolerances={field_tolerances{:},9e-5,8e-5,9e-5,1e-10};
++	field_tolerances={field_tolerances{:},9e-5,9e-5,9e-5,1e-10};
+ 	field_values={field_values{:},...
+ 		(md.results.StressbalanceSolution.Vx),...
+ 		(md.results.StressbalanceSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19648-19649.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19648-19649.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19648-19649.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19648)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19649)
+@@ -92,6 +92,13 @@
+ 		function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) % {{{
+ 
+ 			%write queuing script 
++			%what is the executable being called? 
++			executable='issm.exe';
++			version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
++			if isdakota & (version>=6),
++				executable='issm_dakota.exe';
++			end
++
+ 			if ~ispc(),
+ 
+ 				fid=fopen([modelname '.queue'],'w');
+@@ -99,15 +106,15 @@
+ 				if ~isvalgrind,
+ 					if cluster.interactive
+ 						if IssmConfig('_HAVE_MPI_'),
+-							fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s \n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++							fprintf(fid,'mpiexec -np %i %s/%s %s %s %s \n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 						else
+-							fprintf(fid,'%s/issm.exe %s %s %s ',cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++							fprintf(fid,'%s/%s %s %s %s ',cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 						end
+ 					else
+ 						if IssmConfig('_HAVE_MPI_'),
+-							fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
++							fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						else
+-							fprintf(fid,'%s/issm.exe %s %s %s 2> %s.errlog >%s.outlog ',cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
++							fprintf(fid,'%s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						end
+ 					end
+ 				elseif isgprof,
Index: /issm/oecreview/Archive/19101-20495/ISSM-19649-19650.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19649-19650.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19649-19650.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/classes/qmu.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.m	(revision 19649)
++++ ../trunk-jpl/src/m/classes/qmu.m	(revision 19650)
+@@ -71,8 +71,26 @@
+ 			%Early return
+ 			if ~md.qmu.isdakota, return; end
+ 
+-			if md.qmu.params.evaluation_concurrency~=1,
+-				md = checkmessage(md,['concurrency should be set to 1 when running dakota in library mode']);
++			version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
++
++			if version < 6,
++				if md.qmu.params.evaluation_concurrency~=1,
++					md = checkmessage(md,['concurrency should be set to 1 when running dakota in library mode']);
++				end
++			else
++				if ~strcmpi(self.params.evaluation_scheduling,'master'),
++					md = checkmessage(md,['evaluation_scheduling in qmu.params should be set to ''master''']);
++				end
++				if md.cluster.np<=1,
++					md = checkmessage(md,['in parallel library mode, Dakota needs to run on at least 2 cpus, 1 cpu for the master, 1 cpu for the slave. Modify md.cluser.np accordingly.']);
++				end
++					
++				if self.params.processors_per_evaluation<1,
++					md = checkmessage(md,['in parallel library mode, Dakota needs to run at least one slave on one cpu (md.qmu.params.processors_per_evaluation >=1)!']);
++				end
++				if mod(md.cluster.np-1,self.params.processors_per_evaluation), 
++					md = checkmessage(md,['in parallel library mode, the requirement is for md.cluster.np = md.qmu.params.processors_per_evaluation * number_of_slaves, where number_of_slaves will automatically be determined by Dakota. Modify md.cluster.np accordingly']);
++				end
+ 			end
+ 			if ~isempty(md.qmu.partition),
+ 				if numel(md.qmu.partition)~=md.mesh.numberofvertices,
Index: /issm/oecreview/Archive/19101-20495/ISSM-19650-19651.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19650-19651.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19650-19651.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19650)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19651)
+@@ -130,12 +130,7 @@
+ 	/*Now delete: */
+ 	if(profiler)delete profiler;
+ 	
+-	/*Finalize PETSC for this model: */
+-	#ifdef _HAVE_PETSC_
+-	_printf0_("closing PETSc\n");
+-	PetscFinalize();
+-	#endif
+-
++	
+ }
+ /*}}}*/
+ 
+@@ -256,6 +251,12 @@
+ 				);
+ 	_printf0_("\n");
+ 
++	/*Finalize PETSC for this model: */
++	#ifdef _HAVE_PETSC_
++	_printf0_("closing PETSc\n");
++	PetscFinalize();
++	#endif
++
+ 	/*Clean up*/
+ 	xDelete<char>(outbinfilename);
+ 	xDelete<char>(lockfilename);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19651-19652.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19651-19652.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19651-19652.diff	(revision 20498)
@@ -0,0 +1,274 @@
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19651)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19652)
+@@ -263,7 +263,7 @@
+ #DAKOTA sources  {{{
+ if DAKOTA
+ issm_sources +=       ./classes/Dakota/IssmDirectApplicInterface.h\
+-					  ./classes/Dakota/IssmParallelDirectApplicInterface.h\
++					  ./classes/Dakota/IssmParallelDirectApplicInterface.cpp\
+ 					  ./modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp\
+ 					  ./modules/InputUpdateFromVectorDakotax/InputUpdateFromVectorDakotax.cpp\
+ 					  ./modules/InputUpdateFromMatrixDakotax/InputUpdateFromMatrixDakotax.cpp\
+Index: ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h	(revision 19651)
++++ ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h	(revision 19652)
+@@ -28,107 +28,23 @@
+ #endif
+ /*}}}*/
+ 
+-#if defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
+ 
+-/*Dakota include files: {{{*/
++#if !defined(_WRAPPERS_) && defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
++
+ #include <DirectApplicInterface.hpp>
+-/*}}}*/
++class FemModel;
+ 
+ namespace SIM {
+ 	class IssmParallelDirectApplicInterface: public Dakota::DirectApplicInterface{
+       
++		private: 
++			FemModel* femmodel_init;
+ 		public:
+-			/*these fields are used by core solutions: */
+-			void *femmodel;
+-			
+-			/*Constructors/Destructors{{{*/
+-			IssmParallelDirectApplicInterface(const Dakota::ProblemDescDB& problem_db, const MPI_Comm& analysis_comm, void* in_femmodel):Dakota::DirectApplicInterface(problem_db){
+-
+-				#ifdef MPI_DEBUG
+-				  // For testing purposes, output size/rank of the incoming analysis_comm
+-				  int rank, size;
+-				  MPI_Comm_rank(analysis_comm, &rank);
+-				  MPI_Comm_size(analysis_comm, &size);
+-				  Cout << "In SIM::ParallelDirectApplicInterface ctor, rank = " << rank
+-					   << " size = " << size << std::endl;
+-				 #endif // MPI_DEBUG
+-
+-				femmodel = in_femmodel;
+-			}
+-			~IssmParallelDirectApplicInterface(){
+-			}
+-			/*}}}*/
+-		
++			IssmParallelDirectApplicInterface(const Dakota::ProblemDescDB& problem_db, const MPI_Comm& evaluation_comm, int argc, char** argv);
++			~IssmParallelDirectApplicInterface();
+ 		protected:
+-			
+ 			/// execute an analysis code portion of a direct evaluation invocation
+-			int derived_map_ac(const Dakota::String& driver){/*{{{*/
+-
+-				#ifdef MPI_DEBUG
+-					Cout << "analysis server " << analysisServerId << " invoking " << ac_name
+-						 << " within SIM::ParallelDirectApplicInterface." << std::endl;
+-				#endif // MPI_DEBUG
+-
+-				int i;
+-				IssmDouble* variables=NULL;
+-				char** variable_descriptors=NULL;
+-				char*  variable_descriptor=NULL;
+-				IssmDouble* responses=NULL;
+-
+-				/*Before launching analysis, we need to transfer the dakota inputs into Issm 
+-				 *readable variables: */
+-
+-				/*First, the variables: */
+-				variables=xNew<IssmDouble>(numACV);
+-				for(i=0;i<numACV;i++){
+-					variables[i]=xC[i];
+-				}
+-				/*The descriptors: */
+-				variable_descriptors=xNew<char*>(numACV);
+-				for(i=0;i<numACV;i++){
+-					std::string label=xCLabels[i];
+-					variable_descriptor=xNew<char>(strlen(label.c_str())+1);
+-					memcpy(variable_descriptor,label.c_str(),(strlen(label.c_str())+1)*sizeof(char));
+-
+-					variable_descriptors[i]=variable_descriptor;
+-				}
+-
+-				/*Initialize responses: */
+-				responses=xNewZeroInit<IssmDouble>(numFns);
+-
+-				/*run core solution: */
+-				//DakotaSpawnCore(responses,numFns, variables,variable_descriptors,numACV,femmodel);
+-
+-				/*populate responses: */
+-				for(i=0;i<numFns;i++){
+-					fnVals[i]=responses[i];
+-				}
+-
+-				/*Free ressources:*/
+-				xDelete<IssmDouble>(variables);
+-				for(i=0;i<numACV;i++){
+-					variable_descriptor=variable_descriptors[i];
+-					xDelete<char>(variable_descriptor);
+-				}
+-				xDelete<char*>(variable_descriptors);
+-				xDelete<IssmDouble>(responses);
+-
+-				return 0;
+-			}/*}}}*/
+-
+-			/// no-op hides base error; job batching occurs within wait_local_evaluations()
+-			//void derived_map_asynch(const Dakota::ParamResponsePair& pair){};
+-
+-			/// evaluate the batch of jobs contained in prp_queue
+-			//void wait_local_evaluations(Dakota::PRPQueue& prp_queue);
+-
+-			/// invokes wait_local_evaluations() (no special nowait support)
+-			//void test_local_evaluations(Dakota::PRPQueue& prp_queue) { wait_local_evaluations(prp_queue); };
+-
+-			/// no-op hides default run-time error checks at DirectApplicInterface level
+-			//void set_communicators_checks(int max_eval_concurrency){};
+-
+-		private:
++			int derived_map_ac(const Dakota::String& ac_name);
+ 	};
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.cpp	(revision 0)
++++ ../trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.cpp	(revision 19652)
+@@ -0,0 +1,136 @@
++/*!\file:  see IssmParallelDirectApplicInterface.h for documentation.  */ 
++
++/*Issm Configuration: {{{*/
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++/*}}}*/
++
++#if !defined(_WRAPPERS_) && defined(_HAVE_DAKOTA_) && _DAKOTA_MAJOR_ >= 6
++
++#include "../classes.h"
++#include "../../cores/cores.h"
++#include "../../modules/modules.h"
++
++namespace SIM {
++	IssmParallelDirectApplicInterface::IssmParallelDirectApplicInterface(const Dakota::ProblemDescDB& problem_db, const MPI_Comm& evaluation_comm, int argc, char** argv) :Dakota::DirectApplicInterface(problem_db){ /*{{{*/
++
++		int world_rank;
++		ISSM_MPI_Comm_rank(ISSM_MPI_COMM_WORLD,&world_rank);
++		
++		/*Build an femmodel if you are a slave, using the corresponding communicator:*/
++		if(world_rank!=0){
++			femmodel_init= new FemModel(argc,argv,evaluation_comm);
++			femmodel_init->profiler->Tag(StartCore);
++		}
++
++	}
++	/*}}}*/
++	IssmParallelDirectApplicInterface::~IssmParallelDirectApplicInterface(){ /*{{{*/
++
++		int world_rank;
++		ISSM_MPI_Comm_rank(ISSM_MPI_COMM_WORLD,&world_rank);
++		
++		if(world_rank!=0){
++
++			/*Wrap up: */
++			femmodel_init->profiler->Tag(FinishCore);
++			femmodel_init->CleanUp(); //only close file pointers on rank 0 of slave 1!
++
++			/*Delete Model: */
++			delete femmodel_init;
++		}
++	}
++	/*}}}*/
++			int IssmParallelDirectApplicInterface::derived_map_ac(const Dakota::String& ac_name){/*{{{*/
++
++				FemModel* femmodel;
++				
++				char     **responses_descriptors    = NULL;      //these are our! there are only numresponsedescriptors of them, not d_numresponses!!!
++				int        numresponsedescriptors;
++				int        solution_type;
++				bool       control_analysis         = false;
++				void     (*solutioncore)(FemModel*) = NULL;
++				bool       nodakotacore             = true;
++
++				int world_rank;
++				ISSM_MPI_Comm_rank(ISSM_MPI_COMM_WORLD,&world_rank);
++
++				/*Only have slaves work!:*/
++				if(world_rank==0)return 0;
++
++				#ifdef MPI_DEBUG
++				Cout << "eval server id" << evalServerId << " invoking " << ac_name << " within SIM::IssmParallelDirectApplicInterface." << std::endl;
++				#endif // MPI_DEBUG
++
++				int i;
++				IssmDouble* variables=NULL;
++				char** variable_descriptors=NULL;
++				char*  variable_descriptor=NULL;
++				IssmDouble* responses=NULL;
++
++				/*Before launching evaluation, we need to transfer the dakota inputs into Issm readable variables: */
++
++				/*First, the variables: */
++				variables=xNew<IssmDouble>(numACV);
++				for(i=0;i<numACV;i++){
++					variables[i]=xC[i];
++				}
++				/*The descriptors: */
++				variable_descriptors=xNew<char*>(numACV);
++				for(i=0;i<numACV;i++){
++					std::string label=xCLabels[i];
++					variable_descriptor=xNew<char>(strlen(label.c_str())+1);
++					memcpy(variable_descriptor,label.c_str(),(strlen(label.c_str())+1)*sizeof(char));
++
++					variable_descriptors[i]=variable_descriptor;
++				}
++
++				/*Initialize responses: */
++				responses=xNewZeroInit<IssmDouble>(numFns);
++
++				/*Make a copy of femmodel, so we start this new evaluation run for this specific sample with a brand 
++				 * new copy of the model, which has not been tempered with by previous evaluation runs: */
++
++				femmodel=femmodel_init->copy();
++
++				/*retrieve parameters: */
++				femmodel->parameters->FindParam(&responses_descriptors,&numresponsedescriptors,QmuResponsedescriptorsEnum);
++				femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
++				femmodel->parameters->FindParam(&control_analysis,InversionIscontrolEnum);
++
++				/*Modify core inputs in objects contained in femmodel, to reflect the dakota variables inputs: */
++				InputUpdateFromDakotax(femmodel,variables,variable_descriptors,numACV);
++
++				/*Determine solution sequence: */
++				if(VerboseQmu()) _printf0_("Starting " << EnumToStringx(solution_type) << " core:\n");
++				WrapperCorePointerFromSolutionEnum(&solutioncore,femmodel->parameters,solution_type,nodakotacore);
++
++				/*Run the core solution sequence: */
++				solutioncore(femmodel);
++
++				/*compute responses: */
++				if(VerboseQmu()) _printf0_("compute dakota responses:\n");
++				femmodel->DakotaResponsesx(responses,responses_descriptors,numresponsedescriptors,numFns);
++
++				/*populate responses: */
++				for(i=0;i<numFns;i++){
++					fnVals[i]=responses[i];
++				}
++
++				/*Free ressources:*/
++				xDelete<IssmDouble>(variables);
++				for(i=0;i<numACV;i++){
++					variable_descriptor=variable_descriptors[i];
++					xDelete<char>(variable_descriptor);
++				}
++				xDelete<char*>(variable_descriptors);
++				xDelete<IssmDouble>(responses);
++				delete femmodel;
++
++				return 0;
++			}/*}}}*/
++}
++#endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19652-19653.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19652-19653.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19652-19653.diff	(revision 20498)
@@ -0,0 +1,61 @@
+Index: ../trunk-jpl/src/c/main/issm_dakota.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19652)
++++ ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19653)
+@@ -20,30 +20,29 @@
+ 
+ 	bool parallel=true;
+ 	char* dakota_input_file=NULL;
++	char* dakota_output_file = NULL;
+ 
+ 	/*Define MPI_DEBUG in dakota_global_defs.cpp to cause a hold here*/
+ 	Dakota::mpi_debug_hold();
+-	
++
+ 	/*Initialize MPI: */
+ 	ISSM_MPI_Init(&argc, &argv); // initialize MPI
+-
++	
+ 	/*Recover file name for dakota input file:*/
+ 	dakota_input_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.in")+1));
+-	sprintf(dakota_input_file,"%s%s%s",argv[2],argv[3],".qmu.in");
+-
+-	Cout << "dakota_input_file: " << dakota_input_file << "\n";
++	sprintf(dakota_input_file,"%s/%s%s",argv[2],argv[3],".qmu.in");
+ 	
++	dakota_output_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.out")+1));
++	sprintf(dakota_output_file,"%s/%s%s",argv[2],argv[3],".qmu.out");
++
+ 	/* Parse input and construct Dakota LibraryEnvironment, performing input data checks*/
+ 	Dakota::ProgramOptions opts;
+ 	opts.input_file(dakota_input_file);
++	opts.output_file(dakota_output_file);
+ 
+-	
+ 	/* Defaults constructs the MPIManager, which assumes COMM_WORLD*/
+ 	Dakota::LibraryEnvironment env(opts);
+ 
+-	if (env.mpi_manager().world_rank() == 0)
+-		Cout << "Library mode 1: run_dakota_parse()\n";
+-	
+ 	/* get the list of all models matching the specified model, interface, driver:*/
+ 	Dakota::ModelList filt_models = env.filtered_model_list("single", "direct", "matlab");
+ 	if (filt_models.empty()) {
+@@ -72,16 +71,13 @@
+ 
+ 		// don't increment ref count since no other envelope shares this letter
+ 		model_interface.assign_rep(new
+-				SIM::IssmParallelDirectApplicInterface(problem_db, analysis_comm,NULL), false);
++				SIM::IssmParallelDirectApplicInterface(problem_db, analysis_comm, argc, argv), false);
+ 	}
+ 	problem_db.set_db_model_nodes(model_index);            // restore
+ 
+ 	/* Execute the environment:*/
+ 	env.execute();
+ 
+-	/*Finalize MPI:*/
+-	ISSM_MPI_Finalize();
+-
+ 	/*Return unix success: */
+ 	return 0; 
+ 	#else 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19653-19654.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19653-19654.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19653-19654.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/qmu/dakota_in_params.m
+===================================================================
+--- ../trunk-jpl/src/m/qmu/dakota_in_params.m	(revision 19653)
++++ ../trunk-jpl/src/m/qmu/dakota_in_params.m	(revision 19654)
+@@ -104,9 +104,14 @@
+     params.evaluation_self_scheduling=false;
+ end
+ if ~isfield(params,'evaluation_static_scheduling')
+-    params.evaluation_static_scheduling=true;
++	params.evaluation_static_scheduling=true;
+ end
+-
++if ~isfield(params,'evaluation_scheduling')
++	params.evaluation_scheduling=false;
++end
++if ~isfield(params,'processors_per_evaluation')
++	params.processors_per_evaluation=false;
++end
+ if ~isfield(params,'analysis_servers')
+     params.analysis_servers=false;
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19654-19655.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19654-19655.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19654-19655.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/qmu/postqmu.m
+===================================================================
+--- ../trunk-jpl/src/m/qmu/postqmu.m	(revision 19654)
++++ ../trunk-jpl/src/m/qmu/postqmu.m	(revision 19655)
+@@ -18,9 +18,6 @@
+        error(['Dakota returned error in ''' qmuerrfile ' file.  ''' qmudir ''' directory retained.'])
+     end
+     status=fclose(fide);
+-else
+-   cd ../
+-   error(['Dakota did not generate ''' qmuerrfile ' file.  ''' qmudir ''' directory retained.'])
+ end
+ 
+ %parse inputs and results from dakota
Index: /issm/oecreview/Archive/19101-20495/ISSM-19655-19656.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19655-19656.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19655-19656.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/qmu/dakota_in_write.m
+===================================================================
+--- ../trunk-jpl/src/m/qmu/dakota_in_write.m	(revision 19655)
++++ ../trunk-jpl/src/m/qmu/dakota_in_write.m	(revision 19656)
+@@ -82,7 +82,9 @@
+ 
+ %  write the strategy section
+ 
+-strategy_write(fidi,params);
++if IssmConfig('_DAKOTA_VERSION_') < 6,
++	strategy_write(fidi,params);
++end
+ 
+ %  write the method section
+ 
+@@ -228,10 +230,16 @@
+     param_write(fidi,'\t  ','file_save','','\n',params);
+ elseif params.direct
+ %  Error: asynchronous capability not yet supported in direct interfaces.
++%  Update: it is now possible to run in parallel in direct interfaces.
+     param_write(fidi,'\t','algebraic_mappings',' = ','\n',params);
+     param_write(fidi,'\t','direct','','\n',params);
+     param_write(fidi,'\t  ','analysis_driver','     = ''','''\n',params);
+-    param_write(fidi,'\t  ','evaluation_static_scheduling','','\n',params);
++    if IssmConfig('_DAKOTA_VERSION_') < 6,
++		param_write(fidi,'\t  ','evaluation_static_scheduling','','\n',params);
++	else
++		param_write(fidi,'\t  ','evaluation_scheduling',' ','\n',params);
++		param_write(fidi,'\t  ','processors_per_evaluation',' = ','\n',params);
++	end
+     if ~isempty(params.analysis_components)
+         [pathstr,name,ext] = fileparts(params.analysis_components);
+         if isempty(ext)
Index: /issm/oecreview/Archive/19101-20495/ISSM-19656-19657.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19656-19657.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19656-19657.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/qmu/dakota_out_parse.m
+===================================================================
+--- ../trunk-jpl/src/m/qmu/dakota_out_parse.m	(revision 19656)
++++ ../trunk-jpl/src/m/qmu/dakota_out_parse.m	(revision 19657)
+@@ -80,14 +80,15 @@
+ 
+ [fline]=findline(fidi,'methodName = ');
+ if ~ischar(fline)
+-    return
++	%do nothing
++else
++	% display(['  ' deblank(fline)]);
++
++	[ntokens,tokens]=fltokens(fline);
++	method=tokens{1}{3};
++	display(sprintf('Dakota methodName=''%s''.',method));
+ end
+-% display(['  ' deblank(fline)]);
+ 
+-[ntokens,tokens]=fltokens(fline);
+-method=tokens{1}{3};
+-display(sprintf('Dakota methodName=''%s''.',method));
+-
+ dresp=struct([]);
+ scm =struct([]);
+ pcm =struct([]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19657-19658.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19657-19658.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19657-19658.diff	(revision 20498)
@@ -0,0 +1,291 @@
+Index: ../trunk-jpl/test/NightlyRun/test420.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test420.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test420.m	(revision 19658)
+@@ -12,6 +12,10 @@
+ md.qmu.isdakota=1;
+ 
+ %Dakota options
++
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %variables
+ md.qmu.variables.rho_ice=normal_uncertain('MaterialsRhoIce',md.materials.rho_ice,0.01);
+ 
+@@ -23,11 +27,19 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='stressbalance';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
+ 
++
++
+ %imperative! 
+ md.stressbalance.reltol=10^-5; %tighten for qmu analysese
+ 
+Index: ../trunk-jpl/test/NightlyRun/test412.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test412.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test412.m	(revision 19658)
+@@ -13,6 +13,10 @@
+ 
+ 
+ %Dakota options
++
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %variables
+ md.qmu.variables.rho_ice=normal_uncertain('MaterialsRhoIce',md.materials.rho_ice,0.01);
+ md.qmu.variables.drag_coefficient=normal_uncertain('scaled_FrictionCoefficient',1,0.01);
+@@ -25,10 +29,18 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='stressbalance';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
++
+ %imperative! 
+ md.stressbalance.reltol=10^-5; %tighten for qmu analysese
+ 
+Index: ../trunk-jpl/test/NightlyRun/test413.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test413.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test413.m	(revision 19658)
+@@ -7,6 +7,9 @@
+ 
+ %Dakota options
+ 
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %partitioning
+ md.qmu.numberofpartitions=20;
+ md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
+@@ -24,10 +27,16 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='stressbalance';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
+ 
+ %imperative!
+ md.stressbalance.reltol=10^-5; %tighten for qmu analyses
+Index: ../trunk-jpl/test/NightlyRun/test234.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test234.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test234.m	(revision 19658)
+@@ -17,6 +17,9 @@
+ md.transient.isthermal=0;
+ %Dakota options
+ 
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %partitioning
+ md.qmu.numberofpartitions=20;
+ md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
+@@ -49,13 +52,21 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='';
+ md.qmu.params.analysis_components='';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ md.qmu.params.tabular_graphics_data=true;
+ md.qmu.isdakota=1;
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
++
+ md.stressbalance.reltol=10^-5; %tighten for qmu analyses
+ md.transient.requested_outputs={'IceVolume'};
+ 
+Index: ../trunk-jpl/test/NightlyRun/test414.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test414.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test414.m	(revision 19658)
+@@ -15,6 +15,9 @@
+ 
+ %Dakota options
+ 
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %partitioning
+ md.qmu.numberofpartitions=20;
+ md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
+@@ -42,12 +45,20 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='stressbalance';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ md.qmu.isdakota=1;
+ md.stressbalance.reltol=10^-5; %tighten for qmu analyses
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
++
+ %solve
+ md=solve(md,StressbalanceSolutionEnum(),'overwrite','y');
+ md.qmu.results=md.results.dakota;
+Index: ../trunk-jpl/test/NightlyRun/test235.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test235.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test235.m	(revision 19658)
+@@ -17,6 +17,9 @@
+ md.transient.isthermal=0;
+ %Dakota options
+ 
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %partitioning
+ md.qmu.numberofpartitions=20;
+ md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
+@@ -44,13 +47,21 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='';
+ md.qmu.params.analysis_components='';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ md.qmu.params.fd_gradient_step_size='0.1';
+ md.qmu.isdakota=1;
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
++
+ md.stressbalance.reltol=10^-5; %tighten for qmu analyses
+ md.transient.requested_outputs={'IceVolume'};
+ 
+Index: ../trunk-jpl/test/NightlyRun/test218.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test218.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test218.m	(revision 19658)
+@@ -54,6 +54,10 @@
+ md.qmu.partition=md.qmu.partition-1;
+ 
+ %Dakota options
++
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ %variables
+ md.qmu.variables.rheology_B=normal_uncertain('scaled_MaterialsRheologyB',1,.05);
+ 
+@@ -65,10 +69,17 @@
+ 
+ %parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='stressbalance';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.interval_type='forward';
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
+ %imperative! 
+ md.stressbalance.reltol=10^-10; %tighten for qmu analysese
+ md.qmu.isdakota=1;
+Index: ../trunk-jpl/test/NightlyRun/test417.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test417.m	(revision 19657)
++++ ../trunk-jpl/test/NightlyRun/test417.m	(revision 19658)
+@@ -14,6 +14,10 @@
+ md.stressbalance.spcvz(:)=0;
+ 
+ %Dakota options
++
++%dakota version
++version=IssmConfig('_DAKOTA_VERSION_'); version=version(1:3); version=str2num(version);
++
+ md.qmu.variables.drag_coefficient=normal_uncertain('scaled_FrictionCoefficient',1,0.01);
+ 
+ md.qmu.responses.MaxVel=response_function('MaxVel',[],[0.0001 0.001 0.01 0.25 0.5 0.75 0.99 0.999 0.9999]);
+@@ -40,11 +44,19 @@
+ 
+ %%  a variety of parameters
+ md.qmu.params.direct=true;
+-md.qmu.params.analysis_driver='';
+ md.qmu.params.analysis_components='';
+-md.qmu.params.evaluation_concurrency=1;
+ md.qmu.params.tabular_graphics_data=true;
+ 
++if version>=6,
++	md.qmu.params.analysis_driver='matlab';
++	md.qmu.params.evaluation_scheduling='master';
++	md.qmu.params.processors_per_evaluation=2;
++else
++	md.qmu.params.analysis_driver='stressbalance';
++	md.qmu.params.evaluation_concurrency=1;
++end
++
++
+ %partitioning
+ md.qmu.numberofpartitions=20;
+ md=partitioner(md,'package','chaco','npart',md.qmu.numberofpartitions,'weighting','on');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19658-19659.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19658-19659.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19658-19659.diff	(revision 20498)
@@ -0,0 +1,245 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/DakotaDev.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/DakotaDev.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/DakotaDev.cmake.patch	(revision 19659)
+@@ -0,0 +1,14 @@
++5,8c5,8
++< set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++< set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++<   "Enable DAKOTA specification maintenance mode?")
++< set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++---
++> #set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
++> #set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
++> #  "Enable DAKOTA specification maintenance mode?")
++> #set(PECOS_ENABLE_TESTS TRUE CACHE BOOL "Enable Pecos-specific tests?")
++14c14
++< #set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
++---
++> set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDLocalReliability.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDLocalReliability.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDLocalReliability.cpp.patch	(revision 19659)
+@@ -0,0 +1,9 @@
++2645a2646
++> 		 // add sensitivity output to importance factors (jes, 8/06/10)
++2651c2652,2655
++< 	    << std::setw(width) << impFactor(j,i) << '\n';
++---
++> 	    << std::setw(width) << impFactor(j,i) 
++> 		 << "  Sensitivity = "
++> 		 << std::resetiosflags(std::ios::adjustfield)
++> 		 << std::setw(width) << fnGradsMeanX(j,i) << '\n';
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.pfe.patch	(revision 19659)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
++> set(LAPACK_LIBS "-L/nasa/intel/mkl/10.0.011/lib/em64t/ -lmkl -lmkl_lapack -liomp5 -lpthread")
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.yosemite.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.yosemite.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.yosemite.patch	(revision 19659)
+@@ -0,0 +1,29 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.a"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDSampling.cpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDSampling.cpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/NonDSampling.cpp.patch	(revision 19659)
+@@ -0,0 +1,25 @@
++780,786c780,787
++<   if (!subIteratorFlag) {
++<     nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++<     // archive the correlations to the results DB
++<     nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++< 				      div_labels, dsv_labels, drv_labels,
++< 				      iteratedModel.response_labels());
++<   }
++---
++> //don't compute for now, too expensive.
++> //  if (!subIteratorFlag) {
++> //   nonDSampCorr.compute_correlations(vars_samples, resp_samples);
++> //    // archive the correlations to the results DB
++> //    nonDSampCorr.archive_correlations(run_identifier(), resultsDB, cv_labels,
++> //				      div_labels, dsv_labels, drv_labels,
++> //				      iteratedModel.response_labels());
++> //  }
++1277,1278c1278,1281
++<     nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++< 				    drv_labels,iteratedModel.response_labels());
++---
++> 
++> //don't output for now.
++> //    nonDSampCorr.print_correlations(s, cv_labels, div_labels, dsv_labels,
++> //				    drv_labels,iteratedModel.response_labels());
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.mac.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.mac.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.mac.patch	(revision 19659)
+@@ -0,0 +1,8 @@
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.mac.patch
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.patch	(revision 19659)
+@@ -0,0 +1,29 @@
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.so"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.patch	(revision 19659)
+@@ -0,0 +1,4 @@
++47a48,50
++> set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries" FORCE)
++> set(BUILD_SHARED_LIBS OFF CACHE BOOL "Set to ON to build DSO libraries" FORCE)
++> 
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/pecos_global_defs.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/pecos_global_defs.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/pecos_global_defs.hpp.patch	(revision 19659)
+@@ -0,0 +1,4 @@
++24a25
++> #ifndef PI
++25a27
++> #endif
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh	(revision 19659)
+@@ -0,0 +1,55 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19659-19660.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19659-19660.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19659-19660.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 19659)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 19660)
+@@ -60,7 +60,7 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
++						dakota        install-6.2-linux64.sh  
+ 						chaco         install.sh 
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19660-19661.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19660-19661.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19660-19661.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19660)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19661)
+@@ -94,9 +94,11 @@
+ 			%write queuing script 
+ 			%what is the executable being called? 
+ 			executable='issm.exe';
+-			version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
+-			if isdakota & (version>=6),
+-				executable='issm_dakota.exe';
++			if isdakota,
++				version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
++				if (version>=6),
++					executable='issm_dakota.exe';
++				end
+ 			end
+ 
+ 			if ~ispc(),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19661-19662.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19661-19662.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19661-19662.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19661)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19662)
+@@ -318,7 +318,8 @@
+ 				fi
+ 
+ 				dnl Make sure mexFunction.map is not in MEXLIB to avoid problems with global variables
+-				MEXLINK=$(echo $MEXLINK | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
++				dnl MEXLINK=$(echo $MEXLINK | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
++				MEXLINK="" dnl We actually don't need MEXLINK????
+ 
+   			;;
+       esac
Index: /issm/oecreview/Archive/19101-20495/ISSM-19662-19663.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19662-19663.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19662-19663.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test120.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test120.m	(revision 19662)
++++ ../trunk-jpl/test/NightlyRun/test120.m	(revision 19663)
+@@ -15,7 +15,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Enthalpy','Waterfraction','Temperature'};
+-field_tolerances={1e-13,2e-10,1e-13};
++field_tolerances={1e-13,3e-10,1e-13};
+ field_values={...
+ 	(md.results.ThermalSolution.Enthalpy),...
+ 	(md.results.ThermalSolution.Waterfraction),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19663-19664.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19663-19664.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19663-19664.diff	(revision 20498)
@@ -0,0 +1,504 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh	(revision 19664)
+@@ -1,51 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.1-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.1.0.src/* src
+-rm -rf dakota-6.1.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-cmake -D CMAKE_C_COMPILER=/usr/local/gfortran/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gfortran/bin/g++ -D CMAKE_Fortran_COMPILER=/usr/local/gfortran/bin/gfortran -D LDFLAGS="-std=gnu++0x" -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh	(revision 19664)
+@@ -1,56 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.1-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.1.0.src/* src
+-rm -rf dakota-6.1.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.mac.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-cmake -DBoost_NO_BOOST_CMAKE=TRUE \
+-	   -DBoost_NO_SYSTEM_PATHS=TRUE \
+-	   -DBOOST_ROOT:PATHNAME=$BOOST_ROOT \
+-	   -DBoost_LIBRARY_DIRS:FILEPATH=${BOOST_ROOT}/lib \
+-	   -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CC_COMPILER=gcc \
+-	   -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh	(revision 19664)
+@@ -1,51 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.1-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.1.0.src/* src
+-rm -rf dakota-6.1.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1/BuildDakotaCustom.cmake.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1/DakotaDev.cmake.patch
+-#patch $DAK_SRC/CMakeLists.txt configs/6.1/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh	(revision 19664)
+@@ -1,59 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.1-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.1.0.src/* src
+-rm -rf dakota-6.1.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1-mpi/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1-mpi/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1-mpi/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1-mpi/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1-mpi/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-	   -D LDFLAGS="-std=gnu++0x" \
+-		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-		-C $DAK_SRC/cmake/DakotaDev.cmake \
+-		$DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh	(revision 19664)
+@@ -1,57 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.2-public.src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.2.0.src/* src
+-rm -rf dakota-6.2.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2-mpi/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.2-mpi/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/NonDSampling.cpp configs/6.2-mpi/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.2-mpi/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2-mpi/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-	   -D LDFLAGS="-std=gnu++0x" \
+-		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-		-C $DAK_SRC/cmake/DakotaDev.cmake \
+-		$DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 19663)
++++ ../trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh	(revision 19664)
+@@ -1,58 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.1-public.src.tar.gz' 'dakota-6.1-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.1-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.1.0.src/* src
+-rm -rf dakota-6.1.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.1-mpi/BuildDakotaCustom.cmake.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.1-mpi/DakotaDev.cmake.patch
+-#patch $DAK_SRC/CMakeLists.txt configs/6.1-mpi/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/ParallelLibrary.cpp configs/6.1/ParallelLibrary.cpp.patch
+-patch src/src/ParallelLibrary.hpp configs/6.1/ParallelLibrary.hpp.patch
+-patch src/src/NonDSampling.cpp configs/6.1/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.1/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.1/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-		-C $DAK_SRC/cmake/DakotaDev.cmake \
+-		$DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-yosemite.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-yosemite.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-yosemite.sh	(revision 19664)
+@@ -0,0 +1,57 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.yosemite.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	   -D LDFLAGS="-std=gnu++0x" \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-yosemite.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 19664)
+@@ -0,0 +1,63 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.mac.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++export BOOST_ROOT=$ISSM_DIR/externalpackages/boost/install
++
++#Configure dakota
++# Set your local gcc compiler here
++cd $DAK_BUILD
++cmake -DBoost_NO_BOOST_CMAKE=TRUE \
++	-DBoost_NO_SYSTEM_PATHS=TRUE \
++	-DBOOST_ROOT:PATHNAME=$BOOST_ROOT \
++	-DBoost_LIBRARY_DIRS:FILEPATH=${BOOST_ROOT}/lib \
++	-D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	-D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	-D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	-D LDFLAGS="-std=gnu++0x" \
++	-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++	-C $DAK_SRC/cmake/DakotaDev.cmake \
++	$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19664-19665.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19664-19665.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19664-19665.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 19664)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 19665)
+@@ -50,6 +50,10 @@
+ 	$DAK_SRC
+ cd ..
+ 
++# Snowleopard: Mpi should be made with these compilers
++#-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_CC_COMPILER=/usr/bin/gcc \
++#-DCMAKE_Fortran_COMPILER=/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran \
++
+ #Compile and install dakota
+ cd $DAK_BUILD
+ if [ $# -eq 0 ];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19665-19666.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19665-19666.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19665-19666.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19665)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19666)
+@@ -500,7 +500,7 @@
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+-				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL -Wno-deprecated-register -Wno-return-type"
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19666-19667.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19666-19667.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19666-19667.diff	(revision 20498)
@@ -0,0 +1,220 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch	(revision 19666)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch	(revision 19667)
+@@ -1,26 +0,0 @@
+-64,65c64,65
+-< #set( DAKOTA_HAVE MPI ON
+-< #     CACHE BOOL "Build with MPI enabled" FORCE)
+----
+-> set( DAKOTA_HAVE MPI OFF
+->      CACHE BOOL "Build with MPI disabled" FORCE)
+-73,77c73,77
+-< #set(BOOST_ROOT
+-< #    "path/to/custom/Boost/install/directory"
+-< #    CACHE PATH "Use non-standard Boost install" FORCE)
+-< #set( Boost_NO_SYSTEM_PATHS TRUE
+-< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+----
+-> set(BOOST_ROOT
+->     "$ENV{ISSM_DIR}/externalpackages/boost/install"
+->     CACHE PATH "Use non-standard Boost install" FORCE)
+-> set( Boost_NO_SYSTEM_PATHS TRUE
+->      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+-91,93c91,93
+-< #set( CMAKE_INSTALL_PREFIX
+-< #     "/path/to/Dakota/installation"
+-< #     CACHE PATH "Path to Dakota installation" )
+----
+-> set( CMAKE_INSTALL_PREFIX
+->      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
+->      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.lonestar.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.lonestar.patch	(revision 19667)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
++> set(LAPACK_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch	(revision 19667)
+@@ -0,0 +1,26 @@
++64,65c64,65
++< #set( DAKOTA_HAVE MPI ON
++< #     CACHE BOOL "Build with MPI enabled" FORCE)
++---
++> set( DAKOTA_HAVE MPI OFF
++>      CACHE BOOL "Build with MPI disabled" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "/nasa/boost/1.50.0"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 19667)
+@@ -0,0 +1,56 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.pfe.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.pfe.patc
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh	(revision 19666)
++++ ../trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh	(revision 19667)
+@@ -22,7 +22,7 @@
+ export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3.1/BuildDakotaCustom.cmake.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3.1/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/5.3.1/CMakeLists.txt.lonestar.patch
+ 
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh	(revision 19667)
+@@ -0,0 +1,56 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.lonestar.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19667-19668.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19667-19668.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19667-19668.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 19667)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 19668)
+@@ -35,9 +35,9 @@
+ #Configure dakota
+ cd $DAK_BUILD
+ 
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++cmake -D CMAKE_C_COMPILER=mpicc \
++	   -D CMAKE_CXX_COMPILER=mpicxx \
++	   -D CMAKE_Fortran_COMPILER=mpif77 \
+ 		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+ 		-C $DAK_SRC/cmake/DakotaDev.cmake \
+ 		$DAK_SRC
Index: /issm/oecreview/Archive/19101-20495/ISSM-19670-19671.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19670-19671.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19670-19671.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/c/main/issm_dakota.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19670)
++++ ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19671)
+@@ -21,6 +21,7 @@
+ 	bool parallel=true;
+ 	char* dakota_input_file=NULL;
+ 	char* dakota_output_file = NULL;
++	char* dakota_error_file = NULL;
+ 
+ 	/*Define MPI_DEBUG in dakota_global_defs.cpp to cause a hold here*/
+ 	Dakota::mpi_debug_hold();
+@@ -35,10 +36,14 @@
+ 	dakota_output_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.out")+1));
+ 	sprintf(dakota_output_file,"%s/%s%s",argv[2],argv[3],".qmu.out");
+ 
++	dakota_error_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.err")+1));
++	sprintf(dakota_error_file,"%s/%s%s",argv[2],argv[3],".qmu.err");
++
+ 	/* Parse input and construct Dakota LibraryEnvironment, performing input data checks*/
+ 	Dakota::ProgramOptions opts;
+ 	opts.input_file(dakota_input_file);
+ 	opts.output_file(dakota_output_file);
++	opts.error_file(dakota_error_file);
+ 
+ 	/* Defaults constructs the MPIManager, which assumes COMM_WORLD*/
+ 	Dakota::LibraryEnvironment env(opts);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19671-19672.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19671-19672.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19671-19672.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/m/qmu/dakota_out_parse.m
+===================================================================
+--- ../trunk-jpl/src/m/qmu/dakota_out_parse.m	(revision 19671)
++++ ../trunk-jpl/src/m/qmu/dakota_out_parse.m	(revision 19672)
+@@ -167,14 +167,21 @@
+ %  process column headings of matrix (skipping eval_id)
+ 
+ [ntokens,tokens]=fltokens(fline);
+-desc=cell (1,ntokens-1);
+-data=zeros(1,ntokens-1);
+ 
+-for i=1:ntokens-1
+-    desc(1,i)=cellstr(tokens{1}{i+1});
++% New file DAKOTA versions>6
++if strncmpi(fline,'%eval_id interface',18)
++	offset=2;
++else %DAKOTA versions<6
++	offset=1;
+ end
+-display(sprintf('Number of columns (Dakota V+R)=%d.',ntokens-1));
++desc=cell (1,ntokens-offset);
++data=zeros(1,ntokens-offset);
+ 
++for i=1:ntokens-offset
++    desc(1,i)=cellstr(tokens{1}{i+offset});
++end
++display(sprintf('Number of columns (Dakota V+R)=%d.',ntokens-2));
++
+ %  process rows of matrix
+ 
+ nrow=0;
+@@ -188,8 +195,8 @@
+ %  add row values to matrix (skipping eval_id)
+ 
+     nrow=nrow+1;
+-    for i=1:ntokens-1
+-        data(nrow,i)=tokens{1}{i+1};
++    for i=1:ntokens-offset
++        data(nrow,i)=tokens{1}{i+offset};
+     end
+ end
+ display(sprintf('Number of rows (Dakota func evals)=%d.',nrow));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19672-19673.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19672-19673.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19672-19673.diff	(revision 20498)
@@ -0,0 +1,158 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19672)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19673)
+@@ -20,6 +20,7 @@
+ 		 interactive   = 0;
+ 		 time          = 24*60*60;
+ 	 end
++	 %}}}
+ 	 methods
+ 		 function cluster=lonestar(varargin) % {{{
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/greenplanet.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19672)
++++ ../trunk-jpl/src/m/classes/clusters/greenplanet.m	(revision 19673)
+@@ -20,10 +20,7 @@
+ 		 time          = 24*60;
+ 		 memory        = 2;
+ 	 end
+-	 properties (SetAccess=private) 
+-		 np=20*8;
+-		 % }}}
+-	 end
++	 %}}}
+ 	 methods
+ 		 function cluster=greenplanet(varargin) % {{{
+ 
+@@ -51,6 +48,11 @@
+ 			 disp(sprintf('    memory: %i',cluster.memory));
+ 		 end
+ 		 %}}}
++		 function numprocs=np(cluster) % {{{
++			 %compute number of processors
++			 numprocs=cluster.numnodes*cluster.cpuspernode;
++		 end
++		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+ 			 available_queues={'c6145','default'};
+@@ -71,9 +73,6 @@
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+@@ -101,9 +100,6 @@
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#!/bin/bash\n');
+Index: ../trunk-jpl/src/m/classes/clusters/hpc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19672)
++++ ../trunk-jpl/src/m/classes/clusters/hpc.m	(revision 19673)
+@@ -18,10 +18,7 @@
+ 		 executionpath='';
+ 		 interactive=0;
+ 	 end
+-	 properties (SetAccess=private) 
+-		 np=20*8;
+-		 % }}}
+-	 end
++	 %}}}
+ 	 methods
+ 		 function cluster=hpc(varargin) % {{{
+ 
+@@ -47,6 +44,11 @@
+ 			 disp(sprintf('    interactive: %i',cluster.interactive));
+ 		 end
+ 		 %}}}
++		 function numprocs=np(cluster) % {{{
++			 %compute number of processors
++			 numprocs=cluster.numnodes*cluster.cpuspernode;
++		 end
++		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+ 			 available_queues={'pub64','free64','free48','free*,pub64','free*'};
+@@ -67,9 +69,6 @@
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#!/bin/bash\n');
+@@ -95,9 +94,6 @@
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#!/bin/bash\n');
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19672)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 19673)
+@@ -25,6 +25,7 @@
+ 		 numstreams     = 8;
+ 		 hyperthreading = 0;
+ 	 end
++	 %}}}
+ 	 methods
+ 		 function cluster=pfe(varargin) % {{{
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19672)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 19673)
+@@ -23,10 +23,7 @@
+ 		 numstreams=8;
+ 		 hyperthreading=0;
+ 	 end
+-	 properties (SetAccess=private) 
+-		 np=20*8;
+-		 % }}}
+-	 end
++	 %}}}
+ 	 methods
+ 		 function cluster=discover(varargin) % {{{
+ 
+@@ -55,6 +52,11 @@
+ 			 disp(sprintf('    hyperthreading: %i',cluster.hyperthreading));
+ 		 end
+ 		 %}}}
++		 function numprocs=np(cluster) % {{{
++			 %compute number of processors
++			 numprocs=cluster.numnodes*cluster.cpuspernode;
++		 end
++		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+ 			 available_queues={'general_long','general','debug'};
+@@ -87,9 +89,6 @@
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#!/bin/bash\n');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19673-19674.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19673-19674.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19673-19674.diff	(revision 20498)
@@ -0,0 +1,125 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19673)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 19674)
+@@ -48,7 +48,7 @@
+ 
+ 		#initialize cluster using user settings if provided
+ 		self=pfe_settings(self)
+-		self.np=20*8
++		self.np=self.nprocs()
+ 		#OK get other fields
+ 		self=options.AssignObjectFields(self)
+ 		
+@@ -77,6 +77,11 @@
+ 		return s
+ 	# }}}
+ 
++	def nprocs(self):
++		# {{{
++		self.np=self.numnodes*self.cpuspernode
++		return self.np
++		# }}}
+ 	def checkconsistency(self,md,solution,analyses):
+ 		# {{{
+ 
+@@ -85,7 +90,7 @@
+ 								 'normal': [8*60, 2048],
+ 								 'debug':[2*60,150],
+ 								 'devel':[2*60,150]}
+-		QueueRequirements(queuedict,self.queue,self.np,self.time)
++		QueueRequirements(queuedict,self.queue,self.nprocs(),self.time)
+ 
+ 		#now, check cluster.cpuspernode according to processor type
+ 		if self.processor=='har' or self.processor=='neh':
+@@ -131,7 +136,13 @@
+ 	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
+ 		# {{{
+ 
+-		self.np=self.numnodes*self.cpuspernode;
++		executable='issm.exe'
++		if isdakota:
++			version=IssmConfig('_DAKOTA_VERSION_')[0:2]
++			version=float(version)
++			if version>=6:
++				executable='issm_dakota.exe'
++
+ 		#write queuing script 
+ 		fid=open(modelname+'.queue','w')
+ 		fid.write('#PBS -S /bin/bash\n')
+@@ -150,7 +161,7 @@
+ 		fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)
+ 		fid.write('source $ISSM_DIR/etc/environment.sh\n')
+ 		fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname))
+-		fid.write('mpiexec -np %i %s/issm.exe %s %s/%s %s\n' % (self.np,self.codepath,str(EnumToString(solution)[0]),self.executionpath,dirname,modelname))
++		fid.write('mpiexec -np %i %s/%s %s %s/%s %s\n' % (self.nprocs(),self.codepath,executable,str(EnumToString(solution)[0]),self.executionpath,dirname,modelname))
+ 		
+ 		fid.close()
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19673)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 19674)
+@@ -70,6 +70,13 @@
+ 	# }}}
+ 	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):    # {{{
+ 
++		executable='issm.exe';
++		if isdakota:
++			version=IssmConfig('_DAKOTA_VERSION_')[0:2]
++			version=float(version)
++			if version>=6:
++				executable='issm_dakota.exe'
++
+ 		#write queuing script 
+ 		if not m.ispc():
+ 
+@@ -78,25 +85,25 @@
+ 			if not isvalgrind:
+ 				if self.interactive: 
+ 					if IssmConfig('_HAVE_MPI_')[0]:
+-						fid.write('mpiexec -np %i %s/issm.exe %s %s/%s %s ' % (self.np,self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++						fid.write('mpiexec -np %i %s/%s %s %s/%s %s ' % (self.np,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
+ 					else:
+-						fid.write('%s/issm.exe %s %s/%s %s ' % (self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++						fid.write('%s/%s %s %s/%s %s ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
+ 				else:
+ 					if IssmConfig('_HAVE_MPI_')[0]:
+-						fid.write('mpiexec -np %i %s/issm.exe %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++						fid.write('mpiexec -np %i %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
+ 					else:
+-						fid.write('%s/issm.exe %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++						fid.write('%s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
+ 			elif isgprof:
+-				fid.write('\n gprof %s/issm.exe gmon.out > %s.performance' % (self.codepath,modelname))
++				fid.write('\n gprof %s/%s gmon.out > %s.performance' % (self.codepath,executable,modelname))
+ 			else:
+ 				#Add --gen-suppressions=all to get suppression lines
+ 				fid.write('LD_PRELOAD=%s \\\n' % self.valgrindlib)
+ 				if IssmConfig('_HAVE_MPI_')[0]:
+-					fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
+-							(self.np,self.valgrind,self.valgrindsup,self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++					fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
++							(self.np,self.valgrind,self.valgrindsup,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
+ 				else:	
+-					fid.write('%s --leak-check=full --suppressions=%s %s/issm.exe %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
+-							(self.valgrind,self.valgrindsup,self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++					fid.write('%s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
++							(self.valgrind,self.valgrindsup,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
+ 
+ 			if not io_gather:    #concatenate the output files:
+ 				fid.write('\ncat %s.outbin.* > %s.outbin' % (modelname,modelname))
+@@ -107,10 +114,10 @@
+ 			fid=open(modelname+'.bat','w')
+ 			fid.write('@echo off\n')
+ 			if self.interactive:
+-				fid.write('"%s/issm.exe" %s "%s/%s" %s ' % (self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++				fid.write('"%s/%s" %s "%s/%s" %s ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
+ 			else:
+-				fid.write('"%s/issm.exe" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \
+-					(self.codepath,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++				fid.write('"%s/%s" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \
++					(self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
+ 			fid.close()
+ 
+ 		#in interactive mode, create a run file, and errlog and outlog file
Index: /issm/oecreview/Archive/19101-20495/ISSM-19674-19675.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19674-19675.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19674-19675.diff	(revision 20498)
@@ -0,0 +1,297 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 19675)
+@@ -0,0 +1,94 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-6.2-linux64.sh  
++						chaco         install.sh 
++						m1qn3         install.sh          
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=6
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=4
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
++MATLAB_NROPTIONS="'exclude',[119,514,701,702,435]"
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19675)
+@@ -0,0 +1,80 @@
++#
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++				--disable-static \
++				--prefix=$ISSM_DIR \
++				--without-kriging \
++				--without-kml \
++				--without-Gia \
++				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
++				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
++				--with-matlab-dir=$MATLAB_DIR \
++				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools install.sh                
++					 matlab install.sh 
++					 mpich install-3.0-linux64.sh
++					 petsc install-3.5-linux64.sh
++					 metis install-5.0.1-linux64.sh
++					 triangle install-linux64.sh 
++					 gsl install-linux64.sh 
++					 adolc install.sh
++					 shell2junit install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=3
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=2
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross_ad
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 19675)
+@@ -0,0 +1,90 @@
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++				 --disable-static \
++				 --without-kriging \
++				 --without-kml \
++				 --without-Gia \
++				 --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
++				 --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
++				 --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
++				 --with-matlab-dir=$MATLAB_DIR \
++				 --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++				 --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++				 --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
++				 --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				 --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++				 --with-numthreads=4  \
++				 --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++				 --enable-development '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools install.sh 
++					 matlab install.sh 
++					 mpich install-3.0-linux64.sh
++					 petsc install-3.5-linux64.sh
++					 metis install-5.0.1-linux64.sh
++					 triangle install-linux64.sh 
++					 gsl install-linux64.sh 
++					 adjoinablempi install.sh
++					 adolc install-withampi.sh
++					 shell2junit install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=3
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=2
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross_ampi
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19675-19676.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19675-19676.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19675-19676.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 19675)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 19676)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=6
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=4
++NUMCPUS_RUN=3
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19676-19677.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19676-19677.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19676-19677.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19676)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19677)
+@@ -265,7 +265,7 @@
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ 	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
+-	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log
++	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log &
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19677-19678.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19677-19678.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19677-19678.diff	(revision 20498)
@@ -0,0 +1,77 @@
+Index: ../trunk-jpl/configs/config-linux64-ubuntu64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-ubuntu64.sh	(revision 19677)
++++ ../trunk-jpl/configs/config-linux64-ubuntu64.sh	(revision 19678)
+@@ -1,23 +0,0 @@
+-#!/bin/sh
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+- --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+- --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-mpi-include="/usr/lib/mpich/include" \
+- --with-mpi-libflags="-L/usr/lib/mpich/lib -lmpich -lmpl -ldl" \
+- --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/ -lPLAPACK" \
+- --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/INCLUDE" \
+- --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+- --with-cxxoptflags="-mtune=barcelona -ffast-math -O3 -msse4.2 -Wno-write-strings "\
+- --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.7/ -lgfortran"\
+- --with-numthreads=8 \
+- --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+- --enable-debugging
+- 
+- 
+Index: ../trunk-jpl/configs/config-greenplanet.sh
+===================================================================
+--- ../trunk-jpl/configs/config-greenplanet.sh	(revision 19677)
++++ ../trunk-jpl/configs/config-greenplanet.sh	(revision 19678)
+@@ -1,23 +0,0 @@
+-#!/bin/sh
+-
+-#PETSc 3.2
+-#MPI /sopt/mpi/openmpi-1.5.4_psm/intel
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-wrappers=no \
+- --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+- --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
+- --with-mpi-include="/sopt/mpi/openmpi-1.5.4_psm/intel/include/" \
+- --with-mpi-libflags="-L/sopt/mpi/openmpi-1.5.4_psm/intel/lib/ -lmpi -lmpi_f77" \
+- --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+- --with-mkl-dir=/opt/intel/mkl/10.2.4.032/ \
+- --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/ -lPLAPACK" \
+- --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/INCLUDE" \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-graphics-lib=/usr/lib64/libX11.so \
+- --with-cxxoptflags="-O3" \
+- --with-vendor=intel-linux
+Index: ../trunk-jpl/configs/config-hoffman2.sh
+===================================================================
+--- ../trunk-jpl/configs/config-hoffman2.sh	(revision 19677)
++++ ../trunk-jpl/configs/config-hoffman2.sh	(revision 19678)
+@@ -1,16 +0,0 @@
+-.//config-greenplanet.sh:21: #!/bin/csh
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-wrappers=no \
+- --with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-mpi-include=/u/local/intel/11.1/openmpi/1.4.5/include \
+- --with-mpi-libflags="-L/u/local/intel/11.1/openmpi/1.4.5/include -lmpi" \
+- --with-plapack-lib="-L$ISSM_DIR/externalpackages/petsc/install/ -lPLAPACK" \
+- --with-plapack-include="-I$ISSM_DIR/externalpackages/petsc/install/externalpackages/PLAPACKR32-hg/INCLUDE" \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-graphics-lib=/usr/lib64/libX11.so \
+- --with-cxxoptflags="-O3 -L/u/local/intel/11.1/openmpi/1.4.5/lib -lmpi -lmpi_f77 -lmpi_cxx"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19678-19679.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19678-19679.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19678-19679.diff	(revision 20498)
@@ -0,0 +1,273 @@
+Index: ../trunk-jpl/configs/config-linux64-murdo-nopetsc.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-murdo-nopetsc.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-murdo-nopetsc.sh	(revision 19679)
+@@ -1,16 +0,0 @@
+-#!/bin/sh
+-./configure \
+-	--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_DIR \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+-	--with-graphics-lib="/usr/lib/x86_64-linux-gnu/libX11.so" \
+-	--with-cxxoptflags="-mtune=barcelona -ffast-math -O3 -msse4.2 -Wno-write-strings "\
+-	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-	--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install\
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-numthreads=18  \
+-	--enable-debugging 
+Index: ../trunk-jpl/configs/config-linux64-larsen-ad.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-larsen-ad.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-larsen-ad.sh	(revision 19679)
+@@ -1,11 +0,0 @@
+-#!/bin/sh
+-
+-./configure \
+-	--prefix=$ISSM_DIR \
+-	--without-kriging  \
+-	--without-kml  \
+-	--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+-	--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-	--with-adolc-version=3 \
+-	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+Index: ../trunk-jpl/configs/config-macosx64-static.sh
+===================================================================
+--- ../trunk-jpl/configs/config-macosx64-static.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-macosx64-static.sh	(revision 19679)
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-./configure \
+-	--prefix=$ISSM_DIR \
+-   --disable-static \
+-   --enable-standalone-executables \
+-   --enable-standalone-libraries \
+-	--with-matlab-dir=$MATLAB_DIR \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
+-   --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags=" -L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich -lpmpich" \
+-	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-   --with-fortran-lib="/usr/local/lib/libgfortran.a" \
+-   --enable-debugging \
+-	--with-numthreads=4
+Index: ../trunk-jpl/configs/config-linux64-ad.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-ad.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-ad.sh	(revision 19679)
+@@ -1,20 +0,0 @@
+-#!/bin/sh
+-
+-./configure \
+-	--prefix=$ISSM_DIR \
+-	--without-wrappers\
+-	--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install\
+-	--without-thermal \
+-	--without-control \
+-	--without-hydrology \
+-	--without-stressbalance \
+-	--without-balanced \
+-	--without-responses \
+-	--without-slope \
+-	--without-rifts \
+-	--without-steadystate \
+-	--without-transient \
+-	--without-3d \
+-	--without-groundingline \
+-	--without-kriging  \
+-	--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install
+Index: ../trunk-jpl/configs/config-linux64-larsen.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-larsen.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-larsen.sh	(revision 19679)
+@@ -1,27 +0,0 @@
+-#!/bin/sh
+-
+-#External packages versions:
+-#petsc 3.4
+-#mpich 3.0
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-matlab-dir=$ISSM_DIR/externalpackages/matlab/install \
+- --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+- --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-python-dir=$ISSM_DIR/externalpackages/python/install\
+- --with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+- --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+- --with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+- --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+- --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich -lmpl " \
+- --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+- --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+- --with-graphics-lib="/usr/lib/x86_64-linux-gnu/libX11.so" \
+- --with-cxxoptflags="-march=opteron -O2" \
+- --with-numthreads=16 \
+- --enable-debugging
+Index: ../trunk-jpl/configs/config-win7-64-parallel.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win7-64-parallel.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-win7-64-parallel.sh	(revision 19679)
+@@ -1,16 +0,0 @@
+-#!/bin/sh
+-
+-#Dos style path needed for the windows sdk 7.1 cl compiler: 
+-ISSM_DIR_WIN=`cygpath -m "$ISSM_DIR"`
+-
+-#get configure.sh to pick up the win7 Visual Studio compiler 
+-./configure --prefix=$ISSM_DIR \
+-	--with-vendor=intel-win7-64  \
+-	--with-matlab-dir="C:/MATLAB/R2012b/"\
+-	--with-triangle-dir="$ISSM_DIR_WIN/externalpackages/triangle/install" \
+-	--with-metis-dir="$ISSM_DIR_WIN/externalpackages/metis/install" \
+-	--with-petsc-dir="$ISSM_DIR_WIN/externalpackages/petsc/install" \
+-	--with-blas-lapack-dir="$ISSM_DIR/externalpackages/petsc/install/lib"  \
+-	--with-mpi-include="C:/MPICH2/include" \
+-	--with-mpi-libflags="-LC:/MPICH2/lib mpi.lib"
+-
+Index: ../trunk-jpl/configs/config-win7-32.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win7-32.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-win7-32.sh	(revision 19679)
+@@ -1,14 +0,0 @@
+-#!/bin/sh
+-
+-#get configure.sh to pick up the win7 Visual Studio compiler 
+-./configure --prefix=$ISSM_DIR \
+-   --disable-static \
+-   --with-vendor=intel-win7-32  \
+-   --with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+-   --with-blas-lapack-dir="$ISSM_DIR/externalpackages/petsc/install" \
+-   --with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+-   --with-metis-dir="$ISSM_DIR/externalpackages/metis/install" \
+-   --with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+-   --with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+-   --with-mpi-libflags="-Wl,libpetsc.lib" \
+-   --with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" 
+Index: ../trunk-jpl/configs/config-win64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win64.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-win64.sh	(revision 19679)
+@@ -1,19 +0,0 @@
+-#!/bin/sh
+-
+-# Works on Win8, but should also work on 7.
+-./configure --prefix=$ISSM_DIR \
+-	--with-vendor=MSVC-Win64  \
+-	--disable-static \
+-	--enable-standalone-libraries \
+-	--with-fortran=no  \
+-	--without-Gia \
+-	--without-kriging \
+-	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+-	--with-metis-dir="$ISSM_DIR/externalpackages/metis/install" \
+-	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+-	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+-	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+-   --with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni" 
+-
+Index: ../trunk-jpl/configs/config-win7-64.sh
+===================================================================
+--- ../trunk-jpl/configs/config-win7-64.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-win7-64.sh	(revision 19679)
+@@ -1,14 +0,0 @@
+-#!/bin/sh
+-
+-#get configure.sh to pick up the win7 Visual Studio compiler 
+-./configure --prefix=$ISSM_DIR \
+-   --disable-static \
+-	--with-vendor=intel-win7-64  \
+-	--with-matlab-dir=""$ISSM_DIR/externalpackages/matlab/install"" \
+-	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+-	--with-metis-dir="$ISSM_DIR/externalpackages/metis/install" \
+-	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+-	--with-mpi-libflags-dir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+-   --with-mpi-libflagss="-Wl,libpetsc.lib" \
+-	--with-mpi-include-dir="$ISSM_DIR/externalpackages/petsc/install/include/mpiuni" 
+Index: ../trunk-jpl/configs/config-linux64-cmake.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-cmake.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-cmake.sh	(revision 19679)
+@@ -1,2 +0,0 @@
+-rm $ISSM_DIR/CMakeCache.txt
+-cmake -D GSL_DIR=${GSL_DIR} ${ISSM_DIR}
+Index: ../trunk-jpl/configs/config-linux64-larsen-gia.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-larsen-gia.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-larsen-gia.sh	(revision 19679)
+@@ -1,31 +0,0 @@
+-#!/bin/sh
+-
+-#External packages versions:
+-#petsc 3.4
+-#mpich 3.0
+-
+-./configure \
+- --prefix=$ISSM_DIR \
+- --with-matlab-dir=$ISSM_DIR/externalpackages/matlab/install \
+- --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+- --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-python-dir=$ISSM_DIR/externalpackages/python/install\
+- --with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+- --with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+- --with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
+- --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+- --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich -lmpl " \
+- --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+- --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+- --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+- --with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+- --with-shapelib-dir="$ISSM_DIR/externalpackages/shapelib/install" \
+- --with-math77-dir="$ISSM_DIR/externalpackages/math77/install" \
+- --with-gia="yes"\
+- --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+- --with-graphics-lib="/usr/lib/x86_64-linux-gnu/libX11.so" \
+- --with-cxxoptflags="-march=opteron -O2" \
+- --with-numthreads=16 \
+- --enable-debugging
+Index: ../trunk-jpl/configs/config-linux64-murdo.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-murdo.sh	(revision 19678)
++++ ../trunk-jpl/configs/config-linux64-murdo.sh	(revision 19679)
+@@ -1,24 +0,0 @@
+-#!/bin/sh
+-
+-#petsc 3.2
+-#mpich 1.4
+-
+-./configure \
+-	--prefix=$ISSM_DIR \
+-	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
+-	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+-	--with-tao-dir=$ISSM_DIR/externalpackages/tao/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-graphics-lib="/usr/lib/x86_64-linux-gnu/libX11.so" \
+-	--with-cxxoptflags="-mtune=barcelona -ffast-math -O3 -msse4.2 -Wno-write-strings "\
+-	--with-numthreads=18 \
+-	--enable-debugging 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19679-19680.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19679-19680.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19679-19680.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/test/Archives/Archive3008.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive3009.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive3108.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive3109.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19680-19681.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19680-19681.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19680-19681.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh	(revision 19680)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-linux.sh	(revision 19681)
+@@ -24,7 +24,7 @@
+ cd src 
+ ./bootstrap.sh \
+ 	--prefix="$ISSM_DIR/externalpackages/boost/install" \
+-	--with-python=python3.2 \
++	--with-python=python2.7 \
+ 	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
+ 
+ #Compile boost
Index: /issm/oecreview/Archive/19101-20495/ISSM-19681-19682.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19681-19682.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19681-19682.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/src/c/main/esmfbinders.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19681)
++++ ../trunk-jpl/src/c/main/esmfbinders.cpp	(revision 19682)
+@@ -9,6 +9,9 @@
+ const int GCMForcingNumTerms = 1;
+ const int GCMForcingTerms[GCMForcingNumTerms]= { SMBgcmEnum}; 
+ 
++const int ISSMOutputNumTerms = 1;
++const int ISSMOutputTerms[ISSMOutputNumTerms]= { SurfaceEnum };
++
+ extern "C" {
+ 
+ 	FemModel *femmodel;
+@@ -95,6 +98,39 @@
+ 
+ 		/*}}}*/
+ 
++		/*Retrieve ISSM outputs and pass them back to the Gcm : {{{*/
++		for (int f=0;f<ISSMOutputNumTerms;f++){
++
++			int output_type=ISSMOutputTerms[f];
++
++			for (int i=0;i<femmodel->elements->Size();i++){
++				Element* element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
++
++				switch(output_type){
++					case SurfaceEnum:
++						/*{{{*/
++						{
++
++						IssmDouble surface;
++						
++						/*Recover surface from the ISSM element: */
++						Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);
++						surface_input->GetInputAverage(&surface);
++			
++						*(issmoutputs+f*numberofelements+i) = surface;
++
++						}
++						/*}}}*/
++						break; 
++					default: 
++						{ _error_("Unknown output type " << output_type << "\n"); }
++						break;
++				}
++			}
++		}
++
++		/*}}}*/
++
+ 		/*Before running, setup the time interval: */
+ 		femmodel->parameters->FindParam(&start_time,TimesteppingStartTimeEnum);
+ 		final_time=start_time+dt;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19682-19683.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19682-19683.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19682-19683.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19682)
++++ ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19683)
+@@ -150,6 +150,7 @@
+ //						}
+ //					}
+ //				}
++			
+ 			}
+ 
+ 			else if (PyArray_TYPE((PyArrayObject*)py_matrix) == NPY_LONG) {
+@@ -173,8 +174,7 @@
+ 			else
+ 				_error_("unrecognized double pyarray type in input!");
+ 
+-			if (py_matrix2)
+-				delete(py_matrix2);
++			//if (py_matrix2) delete(py_matrix2); Not doing this for now, seems to  be creating a segfault!
+ 		}
+ 		else
+ 			matrix=NULL;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19683-19684.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19683-19684.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19683-19684.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19683)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19684)
+@@ -245,6 +245,12 @@
+ 
+ rm matlab_log.log
+ 
++for job in `jobs -p`
++do
++echo "Waiting on: $job"
++    wait $job
++done
++
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	cat matlab_log$i.log >> matlab_log.log
+@@ -272,6 +278,13 @@
+ # concatenate reports
+ cd $ISSM_DIR/nightlylog/
+ rm python_log.log
++
++for job in `jobs -p`
++do
++echo "Waiting on: $job"
++    wait $job
++done
++
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	echo "This is the concatenation phase for rank: python_log$i.log"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19684-19685.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19684-19685.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19684-19685.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh	(revision 19685)
+@@ -0,0 +1,27 @@
++#!/bin/bash
++set -eu 
++VER="2.8.5"
++
++#Some cleanup
++rm -rf install cmake-$VER
++mkdir install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
++
++#Untar 
++tar -zxvf  cmake-$VER.tar.gz
++
++#Move cmake into install directory
++mv cmake-$VER/* install
++rm -rf cmake-$VER
++
++#Compile cmake
++cd install 
++./bootstrap --prefix=$ISSM_DIR/externalpackages/cmake/install
++if [ $# -eq 0 ]; then
++	make
++else 
++	make -j $1; 
++fi
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19685-19686.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19685-19686.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19685-19686.diff	(revision 20498)
@@ -0,0 +1,32 @@
+Index: ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh	(revision 19685)
++++ ../trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh	(revision 19686)
+@@ -1,27 +0,0 @@
+-#!/bin/bash
+-set -eu 
+-VER="2.8.5"
+-
+-#Some cleanup
+-rm -rf install cmake-$VER
+-mkdir install
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
+-
+-#Untar 
+-tar -zxvf  cmake-$VER.tar.gz
+-
+-#Move cmake into install directory
+-mv cmake-$VER/* install
+-rm -rf cmake-$VER
+-
+-#Compile cmake
+-cd install 
+-./bootstrap --prefix=$ISSM_DIR/externalpackages/cmake/install
+-if [ $# -eq 0 ]; then
+-	make
+-else 
+-	make -j $1; 
+-fi
+-make install
Index: /issm/oecreview/Archive/19101-20495/ISSM-19686-19687.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19686-19687.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19686-19687.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 19687)
+@@ -0,0 +1,27 @@
++#!/bin/bash
++set -eu 
++VER="2.8.11.2"
++
++#Some cleanup
++rm -rf install cmake-$VER
++mkdir install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py "http://issm.jpl.nasa.gov/files/externalpackages/cmake-$VER.tar.gz" "cmake-$VER.tar.gz"
++
++#Untar 
++tar -zxvf  cmake-$VER.tar.gz
++
++#Move cmake into install directory
++mv cmake-$VER/* install
++rm -rf cmake-$VER
++
++#Compile cmake
++cd install 
++./bootstrap --prefix=$ISSM_DIR/externalpackages/cmake/install
++if [ $# -eq 0 ]; then
++	make
++else 
++	make -j $1; 
++fi
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19687-19688.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19687-19688.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19687-19688.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19687)
++++ ../trunk-jpl/jenkins/windows	(revision 19688)
+@@ -79,5 +79,5 @@
+ #ex: "'id',[101 102 103]"
+ 
+ #In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
+-MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 315, 322, 324, 325, 327, 333, 335, 416, 431, 437, 806, 807, 216, 124, 126 ,404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19688-19689.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19688-19689.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19688-19689.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19688)
++++ ../trunk-jpl/externalpackages/boost/install-1.49-linux.sh	(revision 19689)
+@@ -24,7 +24,7 @@
+ cd src 
+ ./bootstrap.sh \
+ 	--prefix="$ISSM_DIR/externalpackages/boost/install" \
+-	--with-python=python3.2 \
++	--with-python=python2.7 \
+ 	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
+ 
+ #Compile boost
Index: /issm/oecreview/Archive/19101-20495/ISSM-19689-19690.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19689-19690.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19689-19690.diff	(revision 20498)
@@ -0,0 +1,154 @@
+Index: ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh	(revision 19690)
+@@ -0,0 +1,55 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup 
++rm -rf install src m1qn3-3.3-distrib
++mkdir install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/m1qn3-3.3-distrib.tgz' 'm1qn3-3.3-distrib.tgz'
++
++#Untar 
++tar -xzf m1qn3-3.3-distrib.tgz
++mv m1qn3-3.3-distrib src
++
++FC="gfortran"
++
++#Compile m1qn3
++cd src/src/
++(
++cat << EOF
++LIB_EXT=a
++FC=$FC
++install: libm1qn3.\$(LIB_EXT)
++	cp libm1qn3.\$(LIB_EXT) ../../install/
++OBJECTS= m1qn3.o
++libm1qn3.\$(LIB_EXT): \$(OBJECTS)
++	ar -r libm1qn3.\$(LIB_EXT) \$(OBJECTS) 
++	ranlib libm1qn3.\$(LIB_EXT) 
++%.o: %.f
++	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
++clean: 
++	rm -rf *.o *.\$(LIB_EXT)
++EOF
++) > Makefile
++make
++
++#compile ddot
++cd ../blas
++(
++cat << EOF
++LIB_EXT=a
++FC=$FC
++install: libddot.\$(LIB_EXT)
++	cp libddot.\$(LIB_EXT) ../../install/
++OBJECTS= ddot.o
++libddot.\$(LIB_EXT): \$(OBJECTS)
++	ar -r libddot.\$(LIB_EXT) \$(OBJECTS) 
++	ranlib libddot.\$(LIB_EXT) 
++%.o: %.f
++	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
++clean: 
++	rm -rf *.o *.\$(LIB_EXT)
++EOF
++) > Makefile
++make
+
+Property changes on: ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make	(revision 19690)
+@@ -0,0 +1,5 @@
++CC=gcc 
++CSWITCHES = $(CFLAGS) -DNO_TIMER -fPIC
++TRILIBDEFS = -DTRILIBRARY
++OBJ_EXT=o
++LIB_EXT=a
+Index: ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh	(revision 19690)
+@@ -0,0 +1,24 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup 
++rm -rf install triangle
++mkdir install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/triangle.zip' 'triangle.zip'
++
++#Untar 
++cd install
++cp ../triangle.zip ./
++unzip triangle.zip
++
++#copy new makefile
++cp ../configs/macosx64/configure.snowleopard.make ./
++cp ../makefile ./
++
++#Compile triangle
++make
++
++#Patch triangle.h
++patch triangle.h ../triangle.h.patch
+
+Property changes on: ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/matplotlib/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/matplotlib/install-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/matplotlib/install-macosx64-snowleopard.sh	(revision 19690)
+@@ -0,0 +1,32 @@
++#/bin/bash
++set -eu
++
++rm -rf src deps 
++
++#export C_INCLUDE_PATH="$C_INCLUDE_PATH:/usr/include/c++/4.2.1"
++export GIT_SSL_NO_VERIFY=true 
++export CC="gcc -fPIC -std=c99 -I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++export CXX="g++ -fPIC -std=c99 -I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++export F77="gfortran -fPIC -I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++export FC="gfortran -fPIC -I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++export FFLAGS="-ff2c -I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++export ARCHFLAGS="-I/usr/local/gfortran/include/c++/4.6.2 -I/usr/local/gfortran/include/c++/4.6.2/x86_64-apple-darwin11/"
++
++git clone https://github.com/matplotlib/matplotlib
++mv matplotlib src
++mkdir deps
++cd src
++
++#only try this if the classic python setup.py build approach does not work. The approach in the next 3 lines can 
++#trigger issues of permissions with freetype. Sometimes it is better to independently install freetype2 (from the 
++#issm externalpackages) as sudo (or root), so that the python script can detect its existence automatically.
++#sudo make -f make.osx PREFIX=$ISSM_DIR/externalpackages/matplotlib/deps PYVERSION=$pythonversion fetch deps mpl_install_std
++#sudo make -f make.osx PREFIX=$ISSM_DIR/externalpackages/matplotlib/deps PYVERSION=$pythonversion mpl_install_std
++#python -c "import matplotlib; print 'Installed matplotlib', matplotlib.__version__, matplotlib.__file__"
++
++#comments: try exporting this first before calling python setup.py build
++CFLAGS=-mmacosx-version-min=10.6
++
++#to be tried:  first get freetype and zlib and libpng installed in sudo mode
++python setup.py build
++python setup.py install
+
+Property changes on: ../trunk-jpl/externalpackages/matplotlib/install-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19690-19691.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19690-19691.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19690-19691.diff	(revision 20498)
@@ -0,0 +1,126 @@
+Index: ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh	(revision 19690)
++++ ../trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh	(revision 19691)
+@@ -1,55 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup 
+-rm -rf install src m1qn3-3.3-distrib
+-mkdir install
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/m1qn3-3.3-distrib.tgz' 'm1qn3-3.3-distrib.tgz'
+-
+-#Untar 
+-tar -xzf m1qn3-3.3-distrib.tgz
+-mv m1qn3-3.3-distrib src
+-
+-FC="gfortran"
+-
+-#Compile m1qn3
+-cd src/src/
+-(
+-cat << EOF
+-LIB_EXT=a
+-FC=$FC
+-install: libm1qn3.\$(LIB_EXT)
+-	cp libm1qn3.\$(LIB_EXT) ../../install/
+-OBJECTS= m1qn3.o
+-libm1qn3.\$(LIB_EXT): \$(OBJECTS)
+-	ar -r libm1qn3.\$(LIB_EXT) \$(OBJECTS) 
+-	ranlib libm1qn3.\$(LIB_EXT) 
+-%.o: %.f
+-	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
+-clean: 
+-	rm -rf *.o *.\$(LIB_EXT)
+-EOF
+-) > Makefile
+-make
+-
+-#compile ddot
+-cd ../blas
+-(
+-cat << EOF
+-LIB_EXT=a
+-FC=$FC
+-install: libddot.\$(LIB_EXT)
+-	cp libddot.\$(LIB_EXT) ../../install/
+-OBJECTS= ddot.o
+-libddot.\$(LIB_EXT): \$(OBJECTS)
+-	ar -r libddot.\$(LIB_EXT) \$(OBJECTS) 
+-	ranlib libddot.\$(LIB_EXT) 
+-%.o: %.f
+-	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
+-clean: 
+-	rm -rf *.o *.\$(LIB_EXT)
+-EOF
+-) > Makefile
+-make
+Index: ../trunk-jpl/externalpackages/m1qn3/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/m1qn3/install-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/m1qn3/install-macosx64-snowleopard.sh	(revision 19691)
+@@ -0,0 +1,55 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup 
++rm -rf install src m1qn3-3.3-distrib
++mkdir install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/m1qn3-3.3-distrib.tgz' 'm1qn3-3.3-distrib.tgz'
++
++#Untar 
++tar -xzf m1qn3-3.3-distrib.tgz
++mv m1qn3-3.3-distrib src
++
++FC="gfortran"
++
++#Compile m1qn3
++cd src/src/
++(
++cat << EOF
++LIB_EXT=a
++FC=$FC
++install: libm1qn3.\$(LIB_EXT)
++	cp libm1qn3.\$(LIB_EXT) ../../install/
++OBJECTS= m1qn3.o
++libm1qn3.\$(LIB_EXT): \$(OBJECTS)
++	ar -r libm1qn3.\$(LIB_EXT) \$(OBJECTS) 
++	ranlib libm1qn3.\$(LIB_EXT) 
++%.o: %.f
++	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
++clean: 
++	rm -rf *.o *.\$(LIB_EXT)
++EOF
++) > Makefile
++make
++
++#compile ddot
++cd ../blas
++(
++cat << EOF
++LIB_EXT=a
++FC=$FC
++install: libddot.\$(LIB_EXT)
++	cp libddot.\$(LIB_EXT) ../../install/
++OBJECTS= ddot.o
++libddot.\$(LIB_EXT): \$(OBJECTS)
++	ar -r libddot.\$(LIB_EXT) \$(OBJECTS) 
++	ranlib libddot.\$(LIB_EXT) 
++%.o: %.f
++	\$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
++clean: 
++	rm -rf *.o *.\$(LIB_EXT)
++EOF
++) > Makefile
++make
+
+Property changes on: ../trunk-jpl/externalpackages/m1qn3/install-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19691-19692.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19691-19692.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19691-19692.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/externalpackages/triangle/configs/macosx64_snowleopard/configure.make
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/macosx64_snowleopard/configure.make	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/macosx64_snowleopard/configure.make	(revision 19692)
+@@ -0,0 +1,5 @@
++CC=gcc 
++CSWITCHES = $(CFLAGS) -DNO_TIMER -fPIC
++TRILIBDEFS = -DTRILIBRARY
++OBJ_EXT=o
++LIB_EXT=a
+Index: ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make	(revision 19691)
++++ ../trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make	(revision 19692)
+@@ -1,5 +0,0 @@
+-CC=gcc 
+-CSWITCHES = $(CFLAGS) -DNO_TIMER -fPIC
+-TRILIBDEFS = -DTRILIBRARY
+-OBJ_EXT=o
+-LIB_EXT=a
+Index: ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh	(revision 19691)
++++ ../trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh	(revision 19692)
+@@ -14,7 +14,7 @@
+ unzip triangle.zip
+ 
+ #copy new makefile
+-cp ../configs/macosx64/configure.snowleopard.make ./
++cp ../configs/macosx64_snowleopard/configure.make ./
+ cp ../makefile ./
+ 
+ #Compile triangle
Index: /issm/oecreview/Archive/19101-20495/ISSM-19692-19693.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19692-19693.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19692-19693.diff	(revision 20498)
@@ -0,0 +1,65 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 19693)
+@@ -0,0 +1,41 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.2 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.2.tar.gz' 'petsc-3.6.2.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.2.tar.gz
++mv petsc-3.6.2/* src/
++rm -rf petsc-3.6.2
++
++export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
++export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
++
++#configure
++cd src
++./config/configure.py  \
++	--with-parallel-no \
++	--prefix=$PREFIX_DIR \
++	--PETSC_ARCH=cygwin-intel \
++	--PETSC_DIR=$PETSC_DIR \
++	--with-mpi=0 \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--download-f2cblaslapack=yes \
++	--with-cc='win32fe cl' \
++	--with-fc=0 \
++	--with-cxx='win32fe cl' \
++	--with-clanguage=cxx 
++
++#Compile petsc and install it
++make
++make install
++
++patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19692)
++++ ../trunk-jpl/jenkins/windows	(revision 19693)
+@@ -47,7 +47,7 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools   install-win.sh
+-						petsc       install-dev-win10.sh
++						petsc       install-3.6-win10.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+ 						matlab      install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-19693-19694.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19693-19694.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19693-19694.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 19693)
++++ ../trunk-jpl/jenkins/windows	(revision 19694)
+@@ -79,5 +79,5 @@
+ #ex: "'id',[101 102 103]"
+ 
+ #In Windows, we don't yet have MUMPS, can't do full stokes, so exclude all FS runs. Also exclude all runs with Dakota. And exclude higher order runs that have penalties. And 800+ tests because we don't want to have --with-development since we do the binaries with this version
+-MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 315, 322, 324, 325, 327, 333, 335, 416, 431, 437, 806, 807, 216, 124, 126 ,404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
++MATLAB_NROPTIONS="'exclude',[104, 124, 204, 211, 215, 220, 221, 285, 290, 308, 322, 404, 421, 422, 503, 507, 510, 511, 513, 701, 702, 703, 218, 234, 235, 412, 413, 414, 417, 418, 420, 205, 274, 331, 405, 409, 455, 612, 514, 435, 280,801,802,803,804,805,291,340,341]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-19694-19695.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19694-19695.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19694-19695.diff	(revision 20498)
@@ -0,0 +1,151 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 19694)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh	(revision 19695)
+@@ -1,56 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.2-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.2.0.src/* src
+-rm -rf dakota-6.2.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.pfe.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.pfe.patc
+-
+-#Apply patches
+-patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-
+-cmake -D CMAKE_C_COMPILER=mpicc \
+-	   -D CMAKE_CXX_COMPILER=mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=mpif77 \
+-		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-		-C $DAK_SRC/cmake/DakotaDev.cmake \
+-		$DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch	(revision 19694)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch	(revision 19695)
+@@ -1,9 +1,12 @@
+-64,65c64,65
+-< #set( DAKOTA_HAVE MPI ON
+-< #     CACHE BOOL "Build with MPI enabled" FORCE)
+----
+-> set( DAKOTA_HAVE MPI OFF
+->      CACHE BOOL "Build with MPI disabled" FORCE)
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.so"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
+ 73,77c73,77
+ < #set(BOOST_ROOT
+ < #    "path/to/custom/Boost/install/directory"
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh	(revision 19695)
+@@ -0,0 +1,56 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.pfe.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.pfe.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=mpicc \
++	   -D CMAKE_CXX_COMPILER=mpicxx \
++	   -D CMAKE_Fortran_COMPILER=/usr/bin/gfortran \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19695-19696.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19695-19696.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19695-19696.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh	(revision 19695)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh	(revision 19696)
+@@ -23,7 +23,7 @@
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+ export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.pfe.patch
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
+ patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.pfe.patch
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19696-19697.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19696-19697.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19696-19697.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-pleiades_dakota6.2.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-pleiades_dakota6.2.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-pleiades_dakota6.2.sh	(revision 19697)
+@@ -0,0 +1,38 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++patch src/boost/mpl/aux_/config/adl.hpp ./configs/1.55/adl.hpp.lonestar.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python3.2 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++./bjam install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-pleiades_dakota6.2.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19697-19698.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19697-19698.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19697-19698.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/c/main/issm_dakota.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19697)
++++ ../trunk-jpl/src/c/main/issm_dakota.cpp	(revision 19698)
+@@ -30,13 +30,13 @@
+ 	ISSM_MPI_Init(&argc, &argv); // initialize MPI
+ 	
+ 	/*Recover file name for dakota input file:*/
+-	dakota_input_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.in")+1));
++	dakota_input_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.in")+2));
+ 	sprintf(dakota_input_file,"%s/%s%s",argv[2],argv[3],".qmu.in");
+ 	
+-	dakota_output_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.out")+1));
++	dakota_output_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.out")+2));
+ 	sprintf(dakota_output_file,"%s/%s%s",argv[2],argv[3],".qmu.out");
+ 
+-	dakota_error_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.err")+1));
++	dakota_error_file=xNew<char>((strlen(argv[2])+strlen(argv[3])+strlen(".qmu.err")+2));
+ 	sprintf(dakota_error_file,"%s/%s%s",argv[2],argv[3],".qmu.err");
+ 
+ 	/* Parse input and construct Dakota LibraryEnvironment, performing input data checks*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19698-19699.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19698-19699.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19698-19699.diff	(revision 20498)
@@ -0,0 +1,164 @@
+Index: ../trunk-jpl/externalpackages/triangle/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/install.sh	(revision 19698)
++++ ../trunk-jpl/externalpackages/triangle/install.sh	(revision 19699)
+@@ -23,10 +23,10 @@
+ cp ./../configs/libtool/src/Makefile.am ./src/
+ 
+ autoreconf -ivf
+-./configure --prefix="${ISSM_DIR}/externalpackages/triangle/install" --disable-executables
++./configure --prefix="${HOME}/externalpackages/triangle/install" --disable-executables
+ 
+ make 
+ make install
+ 
+ #Patch triangle.h
+-patch ${ISSM_DIR}/externalpackages/triangle/install/include/triangle.h ${ISSM_DIR}/externalpackages/triangle/triangle.h.patch
++patch ${HOME}/externalpackages/triangle/install/include/triangle.h ${HOME}/externalpackages/triangle/triangle.h.patch
+Index: ../trunk-jpl/externalpackages/triangle/install-javascript.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/install-javascript.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/install-javascript.sh	(revision 19699)
+@@ -0,0 +1,26 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup 
++rm -rf install-javascript triangle
++mkdir install-javascript
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/triangle.zip' 'triangle.zip'
++
++#Untar 
++cd install-javascript
++cp ../triangle.zip ./
++unzip triangle.zip
++
++#copy new makefile
++cp ../configs/javascript/configure.make ./
++cp ../configs/javascript/makefile ./
++
++#Patch triangle.h
++patch triangle.h ../triangle.h.patch.js
++
++#Compile triangle
++make
++
++
+
+Property changes on: ../trunk-jpl/externalpackages/triangle/install-javascript.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/triangle/configs/javascript/configure.make
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/javascript/configure.make	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/javascript/configure.make	(revision 19699)
+@@ -0,0 +1,5 @@
++CXX=em++
++CXXSWITCHES = $(CFLAGS) -DNO_TIMER -fPIC -DANSI_DECLARATORS -DTRILIBRARY 
++TRILIBDEFS = -DTRILIBRARY -DANSI_DECLARATORS
++OBJ_EXT=o
++LIB_EXT=a
+Index: ../trunk-jpl/externalpackages/triangle/configs/javascript/makefile
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/configs/javascript/makefile	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/configs/javascript/makefile	(revision 19699)
+@@ -0,0 +1,32 @@
++#Adaptation of Triangle makefile to compile only the triangle.c file, 
++#into a standalone library that can then be used to compile mex modules
++
++include ./configure.make
++
++ifeq "$(origin CC)" "undefined"
++	CC = cc
++endif
++
++ifeq "$(origin AR)" "undefined"
++	AR = ar
++endif
++
++ifeq "$(origin RANLIB)" "undefined"
++	RANLIB = ranlib
++endif
++
++TRILIBDEFS = -DTRILIBRARY
++
++all: triangle.$(LIB_EXT)
++
++OBJECTS=triangle.$(OBJ_EXT)
++
++triangle.$(LIB_EXT): $(OBJECTS)
++	$(AR) cr  triangle.$(LIB_EXT) $(OBJECTS)
++	$(RANLIB) triangle.$(LIB_EXT)
++
++triangle.$(OBJ_EXT): triangle.c triangle.h
++	$(CXX) $(CXXSWITCHES) $(TRILIBDEFS) -c triangle.c
++
++clean: 
++	rm -rf *.$(LIB_EXT) *.$(OBJ_EXT) *.LIB *.LST *.$(OBJ_EXT)bj *.BAK
+Index: ../trunk-jpl/externalpackages/triangle/triangle.h.patch.js
+===================================================================
+--- ../trunk-jpl/externalpackages/triangle/triangle.h.patch.js	(revision 0)
++++ ../trunk-jpl/externalpackages/triangle/triangle.h.patch.js	(revision 19699)
+@@ -0,0 +1,8 @@
++250a251,257
++> /*Patch for ISSM*/
++> #ifndef REAL
++> typedef double REAL;
++> typedef void VOID;
++> #endif
++> /*End patch*/
++> 
+
+Property changes on: ../trunk-jpl/externalpackages/triangle
+___________________________________________________________________
+Modified: svn:ignore
+   - android-install
+macosx64-install
+*.zip
+*.gz
+*.zip
+*.a
+*.so
+*.o
+*.la
+*.cmake
+*.cache
+*.exe
+*.in
+*.log
+*.deps
+*.metadata
+install
+src
+CMakeCache.txt
+Makefile
+CMakeFiles
+
+   + install-javascript
+android-install
+macosx64-install
+*.zip
+*.gz
+*.zip
+*.a
+*.so
+*.o
+*.la
+*.cmake
+*.cache
+*.exe
+*.in
+*.log
+*.deps
+*.metadata
+install
+src
+CMakeCache.txt
+Makefile
+CMakeFiles
+
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19699-19700.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19699-19700.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19699-19700.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp	(revision 19699)
++++ ../trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp	(revision 19700)
+@@ -10,11 +10,9 @@
+ #if defined(_HAVE_TRIANGLE_)
+ 	#ifndef ANSI_DECLARATORS
+ 	#define ANSI_DECLARATORS
++	#endif
+ 	#include "triangle.h"
+ 	#undef ANSI_DECLARATORS
+-	#else
+-	#include "triangle.h"
+-	#endif
+ #endif
+ /*}}}*/
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19700-19701.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19700-19701.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19700-19701.diff	(revision 20498)
@@ -0,0 +1,77 @@
+Index: ../trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp	(revision 19700)
++++ ../trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp	(revision 19701)
+@@ -79,7 +79,7 @@
+ 
+ 	return;
+ }/*}}}*/
+-const char* ErrorException::MatlabReport() const{/*{{{*/
++const char* ErrorException::WrapperReport() const{/*{{{*/
+ 
+ 	/*Output*/
+ 	std::ostringstream buffer;
+@@ -99,23 +99,3 @@
+ 	message = xNew<char>(strlen(buffer2.c_str())+1); sprintf(message,"%s",buffer2.c_str());
+ 	return message;
+ }/*}}}*/
+-const char* ErrorException::PythonReport() const{/*{{{*/
+-
+-	/*Output*/
+-	std::ostringstream buffer;
+-	char *message = NULL;
+-
+-	/*WINDOWS*/
+-	if(!function_name || file_line==0){ 
+-		buffer << " error message: " << this->what_str;
+-	}
+-	else{
+-		buffer << "\nError in ==> " << this->file_name << ":" << file_line << "\n";
+-		buffer << this->function_name << " error message: " << this->what_str;
+-	}
+-
+-	/*Convert std::ostringstream to std::string and then create char* */
+-	std::string buffer2 = buffer.str();
+-	message = xNew<char>(strlen(buffer2.c_str())+1); sprintf(message,"%s",buffer2.c_str());
+-	return message;
+-}/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Exceptions/exceptions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Exceptions/exceptions.h	(revision 19700)
++++ ../trunk-jpl/src/c/shared/Exceptions/exceptions.h	(revision 19701)
+@@ -86,8 +86,7 @@
+ 	~ErrorException() throw();
+ 	virtual const char *what() const throw();
+ 	void Report() const;
+-	const char* MatlabReport() const;
+-	const char* PythonReport() const;
++	const char* WrapperReport() const;
+ 
+ };
+ /*}}}*/
+Index: ../trunk-jpl/src/wrappers/python/include/wrapper_macros.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/include/wrapper_macros.h	(revision 19700)
++++ ../trunk-jpl/src/wrappers/python/include/wrapper_macros.h	(revision 19701)
+@@ -26,7 +26,7 @@
+ 
+ #define MODULEEND(); }\
+   catch(ErrorException &exception){\
+-	  PyErr_SetString(PyExc_TypeError,exception.PythonReport()); \
++	  PyErr_SetString(PyExc_TypeError,exception.WrapperReport()); \
+ 	  return NULL;\
+   } \
+ 	catch (exception &e){\
+Index: ../trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h	(revision 19700)
++++ ../trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h	(revision 19701)
+@@ -22,7 +22,7 @@
+ 
+ #define MODULEEND(); }\
+ 	catch(ErrorException &exception){\
+-		mexErrMsgTxt(exception.MatlabReport()); \
++		mexErrMsgTxt(exception.WrapperReport()); \
+ 	}\
+ 	catch (exception &e){\
+ 		mexErrMsgTxt(e.what());\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19701-19702.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19701-19702.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19701-19702.diff	(revision 20498)
@@ -0,0 +1,1048 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19702)
+@@ -0,0 +1,28 @@
++<!DOCTYPE html>
++<html>
++<head><!--{{{-->
++<title>ISSM Web APP &mdash; Beta</title>
++<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
++<!-- Includes {{{-->
++<script type="text/javascript" src="../Exp/Square.js"></script>
++<script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
++<script type="text/javascript" src="../../src/m/classes/model.js"></script>
++<script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
++<script type="text/javascript" src="../../src/m/array/listToMatrix.js"></script>
++<script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
++<script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
++<script type="text/javascript" src="../../build-js/src/wrappers/javascript/TriMeshModule.js"></script>
++<script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
++<!-- Includes }}}-->
++</head><!--}}}-->
++<body> <!--{{{-->
++
++	<script type="text/javascript" async>
++	var md = new model();
++	triangle(md,square,[],5000); 
++	setmask(md,'all','');
++
++	</script>
++
++</body><!--}}}-->
++</html>
+Index: ../trunk-jpl/test/Exp/Square.js
+===================================================================
+--- ../trunk-jpl/test/Exp/Square.js	(revision 0)
++++ ../trunk-jpl/test/Exp/Square.js	(revision 19702)
+@@ -0,0 +1,8 @@
++// Name:domainoutline
++// Icon:0
++// Points Count  Value
++var square={}
++square["nods"]=5;
++// X pos Y pos
++square["x"]=[0,1000000,1000000,0,0];
++square["y"]=[0, 0, 1000000,  1000000, 0];
+
+Property changes on: ../trunk-jpl/test/Exp/Square.js
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19701)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19702)
+@@ -303,7 +303,7 @@
+   			;;
+ 		   *)
+            MEXLINK=$($MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
+-           MEXLIB=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
++           MEXLIB="-L$MATLAB_ROOT/bin/maci64  -Wl,$MATLAB_ROOT/bin/maci64/libmx.dylib -lmex -lmat -lstdc++"
+ 		     MEXEXT=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
+ 				dnl version 2014 and up
+ 				if test "x$MEXEXT" = "x" ; then
+@@ -550,6 +550,25 @@
+ 	fi
+ 	AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
+ 	dnl }}}
++	dnl javascript{{{
++	AC_ARG_WITH([javascript],
++	  AS_HELP_STRING([--with-javascript], [compile javascript wrappers? default is no.]),
++	  [JAVASCRIPT=$withval],[JAVASCRIPT="no"]) 
++
++	dnl Check whether javascript wrappers are desired
++	AC_MSG_CHECKING([for javascript])
++	if test "x$JAVASCRIPT" = "xno" ; then
++		HAVE_JAVASCRIPT=no
++	else
++		HAVE_JAVASCRIPT=yes
++		AC_DEFINE([_HAVE_JAVASCRIPT_],[1],[with javascript])
++	fi
++	AC_MSG_RESULT($HAVE_JAVASCRIPT)
++	AM_CONDITIONAL([JAVASCRIPT],[test x$HAVE_JAVASCRIPT = xyes])
++	JAVASCRIPTWRAPPEREXT=.js
++	AC_SUBST([JAVASCRIPTWRAPPEREXT])
++
++	dnl }}}
+ 	dnl python{{{
+ 	AC_ARG_WITH([python-dir],
+ 	  AS_HELP_STRING([--with-python-dir=DIR], [python root directory.]),
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19701)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19702)
+@@ -635,8 +635,12 @@
+ bin_PROGRAMS = 
+ endif
+ else
++if JAVASCRIPT
++bin_PROGRAMS =
++else
+ bin_PROGRAMS = issm 
+ endif
++endif
+ 
+ #Standard libraries
+ LDADD = ./libISSMCore.la ./libISSMOverload.la
+Index: ../trunk-jpl/src/wrappers/javascript/include/javascriptincludes.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/include/javascriptincludes.h	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/include/javascriptincludes.h	(revision 19702)
+@@ -0,0 +1,15 @@
++
++#ifndef _JAVASCRIPT_INCLUDES_H_
++#define _JAVASCRIPT_INCLUDES_H_
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#ifdef _HAVE_JAVASCRIPT_
++//nothing for now
++#endif
++
++#endif /*_JAVASCRIPT_INCLUDES_H_*/
+Index: ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h	(revision 19702)
+@@ -0,0 +1,44 @@
++/* \file javascript macros.h
++ * \brief: macros used for the javascript bindings
++ */
++
++#ifndef _JAVASCRIPT_MACROS_H_
++#define _JAVASCRIPT_MACROS_H_
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#ifdef _HAVE_JAVASCRIPT_
++/* MODULEBOOT/MODULEEND {{{*/
++
++/*The following macros hide the error exception handling in a javascript module. Just put 
++ * MODULEBOOT(); and MODULEEND(); at the beginning and end of a module, and c++ exceptions 
++ * will be trapped*/
++#define MODULEBOOT(); try{ \
++	IssmComm::SetComm();
++
++#define MODULEEND(); }\
++	catch(ErrorException &exception){\
++		printf(exception.WrapperReport()); \
++	}\
++	catch (exception &e){\
++		printf(e.what());\
++	}\
++	catch(...){\
++		printf("An unexpected error occurred");\
++	}\
++	return 0;\
++	}
++/*}}}*/
++/* WRAPPER {{{*/
++#define WRAPPER(modulename,...) extern "C" { int  modulename##Module(__VA_ARGS__) 
++/*}}}*/
++/* CHECKARGUMENTS {{{*/
++#define CHECKARGUMENTS(NLHS,NRHS,functionpointer)  //do nothing, we are not creating a dynamic library here!
++/*}}}*/
++#endif
++
++#endif
+Index: ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19702)
+@@ -0,0 +1,29 @@
++/*\file matlabio.h
++ *\brief: I/O for ISSM in matlab mode
++ */
++
++#ifndef _JAVASCRIPT_IO_H_
++#define _JAVASCRIPT_IO_H_
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif 
++
++#include "../include/javascriptincludes.h"
++#include "../../../c/bamg/bamgobjects.h"
++#include "../../../c/classes/classes.h"
++#include "../../../c/toolkits/toolkits.h"
++#include "../../../c/shared/shared.h"
++
++void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N);
++void WriteData(IssmPDouble** px, int* pnods, int* vector, int M);
++void WriteData(IssmPDouble** px, int* pnods, double* vector, int M);
++
++void FetchData(double* pscalar,double scalar);
++void FetchData(Contours** pcontours,double* x, double* y, int nods);
++
++/*Print*/
++void ApiPrintf(const char* string);
++#endif	/* _IO_H_ */
+Index: ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19702)
+@@ -0,0 +1,46 @@
++/*\file FetchData.cpp:
++ * \brief: general I/O interface to fetch data in javascript
++ */
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./javascriptio.h"
++#include <cstring> 
++
++/*Primitive data types*/
++/*FUNCTION FetchData(double* pscalar,double scalar){{{*/
++void FetchData(double* pscalar,double scalar){
++	
++	*pscalar = scalar;
++}
++/*}}}*/
++
++/*ISSM objects*/
++/*FUNCTION FetchData(Contours** pcontours,double* x, double* y, int nods){{{*/
++void FetchData(Contours** pcontours,double* x, double* y, int nods){
++
++	int             numcontours,index,test1,test2;
++	char            *contourname = NULL;
++	Contours        *contours    = NULL;
++	Contour<double> *contouri    = NULL;
++
++	/*only 1 contour for now: */
++	contours=new Contours();
++
++	if (nods){
++			
++		contouri=new Contour<double>();
++		contouri->nods=nods;
++		contouri->x=xNew<IssmPDouble>(nods); xMemCpy<IssmPDouble>(contouri->x,x,nods);
++		contouri->y=xNew<IssmPDouble>(nods); xMemCpy<IssmPDouble>(contouri->y,y,nods);
++
++		contours->AddObject(contouri);
++	}
++	
++	*pcontours=contours;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19702)
+@@ -0,0 +1,55 @@
++/* \file WriteData.c:
++ * \brief: general interface for writing data
++ */
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./javascriptio.h"
++#include "./../../../c/datastructures/datastructures.h"
++
++/*Primitive data types*/
++/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pnel, int* matrix, int M,int N){{{*/
++void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N){
++
++	if(pmatrix && matrix){
++
++		/*Copy matrix: */
++		IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N); 
++		for (int i=0;i<M*N;i++)dmatrix[i]=(IssmPDouble)matrix[i];
++		*pmatrix=dmatrix;
++		*pnel=M;
++	}
++}
++/*}}}*/
++/*FUNCTION WriteData(IssmPDouble** px, int* pnods, double* vector, int M){{{*/
++void WriteData(IssmPDouble** px, int* pnods, double* vector, int M){
++
++	if(px && vector){
++
++		IssmPDouble* dx=xNew<IssmPDouble>(M); 
++		for(int i=0;i<M;i++)dx[i]=vector[i];
++		*px=dx;
++		*pnods=M;
++	}
++}
++/*}}}*/
++/*FUNCTION WriteData(IssmPDouble** px, int* pnods, int* vector, int M){{{*/
++void WriteData(IssmPDouble** px, int* pnods, int* vector, int M){
++
++	if(px && vector){
++
++		IssmPDouble* dx=xNew<IssmPDouble>(M); 
++		for(int i=0;i<M;i++)dx[i]=(IssmPDouble)vector[i];
++		*px=dx;
++		*pnods=M;
++	}
++}
++/*}}}*/
++
++/*ISSM objects*/
++
++/*Toolkit*/
+Index: ../trunk-jpl/src/wrappers/javascript/io/ApiPrintf.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/ApiPrintf.cpp	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/io/ApiPrintf.cpp	(revision 19702)
+@@ -0,0 +1,19 @@
++/* \file ApiPrintf.c:
++ * \brief: API specific symbols from libISSMCore that we need to resolve here
++ */
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./javascriptio.h"
++
++/*Javascript printf i/o: */
++void ApiPrintf(const char* string){
++
++	/*use mexPrintf in matlab: */
++	printf(string);
++	return;
++}
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 0)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19702)
+@@ -0,0 +1,76 @@
++AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @AMPIINCL@
++AUTOMAKE_OPTIONS = subdir-objects
++
++EXEEXT=$(JAVASCRIPTWRAPPEREXT)
++
++#define prefix (from http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Defining-Directories.html)
++AM_CPPFLAGS+=  -DISSM_PREFIX='"$(prefix)"'
++
++bin_SCRIPTS = 
++bin_SCRIPTS += ../TriMesh/TriMesh.js 
++	
++#javascript io{{{
++if !WINDOWS
++lib_LTLIBRARIES = libISSMJavascript.la
++else
++noinst_LTLIBRARIES = libISSMJavascript.la
++lib_LTLIBRARIES = 
++endif
++
++io_sources=   ./io/WriteJavascriptData.cpp\
++				./io/FetchJavascriptData.cpp
++
++ALLCXXFLAGS= -fPIC -D_WRAPPERS_ $(CXXFLAGS) $(CXXOPTFLAGS) 
++
++libISSMJavascript_la_SOURCES = $(io_sources)
++libISSMJavascript_la_CXXFLAGS= $(ALLCXXFLAGS)
++#}}}
++#api io{{{
++if !WINDOWS
++lib_LTLIBRARIES += libISSMApi.la
++else
++noinst_LTLIBRARIES += libISSMApi.la
++endif
++
++api_sources= ./io/ApiPrintf.cpp
++
++libISSMApi_la_SOURCES = $(api_sources)
++libISSMApi_la_CXXFLAGS= $(ALLCXXFLAGS)
++#}}}
++#Wrappers {{{
++bin_PROGRAMS = 		 TriMeshModule
++#}}}
++
++# Dependencies {{{
++
++#Triangle library
++AM_CXXFLAGS =  -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER -D_WRAPPERS_
++AM_CXXFLAGS +=  -D_HAVE_JAVASCRIPT_MODULES_ -fPIC
++
++deps = ./libISSMJavascript.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
++
++#Optimization flags:
++AM_CXXFLAGS += $(CXXOPTFLAGS) 
++#}}}
++# Module sources and dependencies {{{
++if !WINDOWS
++libISSMJavascript_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(MPILIB) $(PETSCLIB) $(MKLLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) 
++endif
++
++if STANDALONE_LIBRARIES
++libISSMJavascript_la_LDFLAGS = -static 
++deps += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB)   $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
++endif
++
++if !WINDOWS
++libISSMApi_la_LIBADD = $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB) $(MEXLIB)
++endif
++
++if STANDALONE_LIBRARIES
++libISSMApi_la_LDFLAGS = -static 
++endif
++
++TriMeshModule_SOURCES = ../TriMesh/TriMesh.cpp
++TriMeshModule_CXXFLAGS= -fPIC --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule']"  -s DISABLE_EXCEPTION_CATCHING=0
++TriMeshModule_LDADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
++#}}}
+
+Property changes on: ../trunk-jpl/src/wrappers/javascript
+___________________________________________________________________
+Added: svn:ignore
+   + .libs
+*.obj
+Makefile
+*.lib
+*.manifest
+*.exp
+.deps
+Makefile.in
+
+
+Index: ../trunk-jpl/src/wrappers/bindings.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/bindings.h	(revision 19701)
++++ ../trunk-jpl/src/wrappers/bindings.h	(revision 19702)
+@@ -19,4 +19,11 @@
+ #include "./matlab/io/matlabio.h"
+ #endif
+ 
++#ifdef  _HAVE_JAVASCRIPT_MODULES_
++#include "./javascript/include/javascriptincludes.h"
++#include "./javascript/include/wrapper_macros.h"
++#include "./javascript/io/javascriptio.h"
+ #endif
++
++
++#endif
+Index: ../trunk-jpl/src/wrappers/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/Makefile.am	(revision 19701)
++++ ../trunk-jpl/src/wrappers/Makefile.am	(revision 19702)
+@@ -5,6 +5,10 @@
+ SUBDIRS += matlab
+ endif
+ 
++if JAVASCRIPT
++SUBDIRS += javascript
++endif
++
+ if PYTHON
+ SUBDIRS += python
+ endif
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19701)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19702)
+@@ -54,6 +54,20 @@
+ #define SEGMENTMARKERLIST output,4
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define DOMAINOUTLINE domainx,domainy,domainnods
++#define RIFTSOUTLINE  NULL,NULL,0
++#define AREA          areain
++/* serial output macros: */
++#define INDEX             pindex,pnel
++#define X                 px,pnods
++#define Y                 py,pnods
++#define SEGMENTS          NULL,NULL
++#define SEGMENTMARKERLIST NULL,NULL
++#endif
++
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  5
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js	(revision 19702)
+@@ -0,0 +1,76 @@
++function TriMesh(md,domain,rifts, area){
++/*TriMesh 
++	   usage: var array = TriMesh(domain,rifts,area);
++	      where: array is made of [index,x,y,segments,segmentmarkers]
++		  and index,x,y defines a triangulation, segments is an array made 
++	      of exterior segments to the mesh domain outline, segmentmarkers is an array 
++		  flagging each segment, domain a js array defining the domain outline  (sames for 
++		  rifts) and area is the maximum area desired for any element of the resulting mesh.
++
++		  Ok, for now, we are not dealing with rifts. Also, the domain is made of only one 
++		  profile, this to avoid passing a double** pointer to js. 
++*/
++
++	//Dynamic allocations: {{{
++	//Retrieve domain arrays, and allocate on Module heap: 
++	
++	//input
++	var dx=new Float64Array(domain['x']); var nx=dx.length * dx.BYTES_PER_ELEMENT;
++	var dxPtr= Module._malloc(nx); var domainxHeap = new Uint8Array(Module.HEAPU8.buffer,dxPtr,nx);
++	domainxHeap.set(new Uint8Array(dx.buffer)); var domainx=domainxHeap.byteOffset;
++
++	var dy=new Float64Array(domain['y']); var ny=dy.length * dy.BYTES_PER_ELEMENT;
++	var dyPtr = Module._malloc(ny); var domainyHeap = new Uint8Array(Module.HEAPU8.buffer,dyPtr,ny);
++	domainyHeap.set(new Uint8Array(dy.buffer)); var domainy=domainyHeap.byteOffset;
++	
++	//output
++	var nel,indexlinear,index,nods,x,y;
++	var pnel= Module._malloc(4); 
++	var pindex= Module._malloc(4); 
++	var pnods= Module._malloc(4); 
++	var px= Module._malloc(4); 
++	var py= Module._malloc(4); 
++	//}}}
++
++	//Declare TriMesh module: 
++	TriMeshModule = Module.cwrap('TriMeshModule','number',['number','number','number','number','number','number','number','number','number']);
++	
++	//Call TriMesh module: 
++	TriMeshModule(pindex,px,py,pnel,pnods,domainx,domainy,dx.length,area);
++	
++	/*Dynamic copying from heap: {{{*/
++	//recover mesh: 
++	nel = Module.getValue(pnel, 'i32');
++	var indexptr = Module.getValue(pindex,'i32');
++	indexlinear = Module.HEAPF64.slice(indexptr /8, indexptr/8 + nel*3);
++	index = listToMatrix(indexlinear,3);
++
++	nods = Module.getValue(pnods, 'i32');
++	var xptr = Module.getValue(px,'i32');
++	var yptr = Module.getValue(py,'i32');
++	x = Module.HEAPF64.slice(xptr /8, xptr/8 + nods);
++	y = Module.HEAPF64.slice(yptr /8, yptr/8 + nods);
++	/*}}}*/
++
++	/*Assign output: */
++	md.mesh=new mesh2d();
++
++	md.mesh.elements=index;
++	md.mesh.numberofelements=nel;
++	md.mesh.numberofvertices=nods;
++	md.mesh.x=x;
++	md.mesh.y=y;
++	md.mesh.segments=[];
++	md.mesh.segmentmarkers=[];
++
++	/*Free ressources: */
++	Module._free(pindex); 
++	Module._free(indexlinear); 
++	Module._free(px); 
++	Module._free(x); 
++	Module._free(py); 
++	Module._free(y); 
++	Module._free(pnel); 
++	Module._free(pnods); 
++
++}
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19701)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19702)
+@@ -13,7 +13,8 @@
+ 	_printf_("      area is the maximum area desired for any element of the resulting mesh, \n");
+ 	_printf_("\n");
+ }/*}}}*/
+-WRAPPER(TriMesh){
++WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double* domainx, double* domainy, int domainnods, double areain){
++	
+ 
+ 	/*intermediary: */
+ 	double    area;
+@@ -26,7 +27,7 @@
+ 	double *y                 = NULL;
+ 	int    *segments          = NULL;
+ 	int    *segmentmarkerlist = NULL;
+-	int     nels,nods,nsegs;
++	int     nel,nods,nsegs;
+ 
+ 	/*Boot module: */
+ 	MODULEBOOT();
+@@ -40,10 +41,10 @@
+ 	FetchData(&area,AREA);
+ 
+ 	/*call x core: */
+-	TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,&nels,&nods,&nsegs,domain,rifts,area);
++	TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,&nel,&nods,&nsegs,domain,rifts,area);
+ 
+ 	/*write outputs: */
+-	WriteData(INDEX,index,nels,3);
++	WriteData(INDEX,index,nel,3);
+ 	WriteData(X,x,nods);
+ 	WriteData(Y,y,nods);
+ 	WriteData(SEGMENTS,segments,nsegs,3);
+Index: ../trunk-jpl/src/m/miscellaneous/fielddisplay.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19702)
+@@ -0,0 +1,85 @@
++function fielddisplay(md,name,comment){
++//FIELDDISPLAY - display model field
++//
++//   Usage:
++//      fielddisplay(md,name,comment)
++
++	//get field
++	field=md[name];
++
++	//disp corresponding line as a function of field type (offset set as 9 spaces)
++	parsedisplay('         ',name,field,comment);
++}
++
++function parsedisplay(offset,name,field,comment) { //{{{
++
++	//string
++	if (typeof(field) == "string"){
++
++		if (field.length > 30){
++			displayunit(offset,name,"not displayed",comment);
++		}
++		else{
++			console.log(offset)
++			console.log(name)
++			console.log(field)
++			//displayunit(offset,name,"""" + field """",comment),
++		}
++	}
++	//numeric
++	else if (typeof(field) == "number"){
++		
++		displayunit(offset,name,sprintf("%g",field),comment);
++
++	}
++	//logical
++	else if (typeof(field) == "boolean") {
++
++		if (field){
++			displayunit(offset,name,"true",comment);
++		}
++		else{
++			displayunit(offset,name,"false",comment);
++		}
++
++	}
++	//object
++	else if (typeof(field) == "object"){
++			
++		displayunit(offset,name,sprintf("(%i)",field.length),comment);
++
++	}
++	else{
++		displayunit(offset,name,"not displayed",comment);
++	}
++} //}}}
++
++function displayunit(offset,name,characterization,comment){ // {{{
++
++	//take care of name
++	if (name.length>23){
++		name=name.slice(0,21) + "...";
++	}
++
++	//take care of characterization
++	if ( characterization == "\" \"" || characterization == "NaN" ){
++	
++		characterization="N/A";
++	}
++	if (characterization.length>15){
++		characterization=characterization.slice(0,13) + "...";
++	}
++
++	//print
++	if (comment.length==0){
++		console.log(sprintf("%s%-23s: %-15s",offset,name,characterization));
++	}
++	else{
++		if (typeof(comment) == "string"){
++			console.log(sprintf("%s%-23s: %-15s -- %s",offset,name,characterization,comment));
++		}
++		else{
++			console.error("fielddisplay error message: format for comment not supported yet");
++		}
++	}
++} //}}}
+Index: ../trunk-jpl/src/m/mesh/triangle.js
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.js	(revision 0)
++++ ../trunk-jpl/src/m/mesh/triangle.js	(revision 19702)
+@@ -0,0 +1,29 @@
++function triangle(md,domain, rifts, resolution){
++//TRIANGLE - create model mesh using the triangle package
++//
++//   This routine creates a model mesh using TriMesh and a domain outline, to within a certain resolution
++//   where md is a @model object, domainname is the name of an Argus domain outline file, 
++//   and resolution is a characteristic length for the mesh (same unit as the domain outline
++//   unit). Riftname is an optional argument (Argus domain outline) describing rifts.
++//
++//   Usage:
++//      triangle(md,domain,resolution)
++//   or triangle(md,domain,riftname, resolution)
++//
++//   Examples:
++//      triangle(md,domain,1000);
++//      triangle(md,domain, rifts, 1500);
++
++	var area=Math.pow(resolution,2);
++
++	//Call mesher: 
++	var array = TriMesh(md, domain, rifts, area); 
++
++	//Fill in rest of fields:
++	//md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
++
++	//Now, build the connectivity tables for this mesh.
++	//md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++	//md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++
++}
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19702)
+@@ -0,0 +1,72 @@
++//MESH2D class definition
++//
++//   Usage:
++//      mesh2d= new mesh2d();
++
++function mesh2d () {
++	//properties 
++	// {{{
++		this.x                           = NaN;
++		this.y                           = NaN;
++		this.elements                    = NaN;
++		this.numberofelements            = 0;
++		this.numberofvertices            = 0;
++		this.numberofedges               = 0;
++
++		this.lat                         = NaN;
++		this.long                        = NaN;
++		this.epsg                        = 0;
++
++		this.vertexonboundary            = NaN;
++
++		this.edges                       = NaN;
++		this.segments                    = NaN;
++		this.segmentmarkers              = NaN;
++		this.vertexconnectivity          = NaN;
++		this.elementconnectivity         = NaN;
++		this.average_vertex_connectivity = 0;
++
++		this.extractedvertices           = NaN;
++		this.extractedelements           = NaN;
++		//}}}
++	//methods 
++		this.setdefaultparameters = function () //{{{
++
++			//the connectivity is the averaged number of nodes linked to a
++			//given node through an edge. This connectivity is used to initially
++			//allocate memory to the stiffness matrix. A value of 16 seems to
++			//give a good memory/time ration. This value can be checked in
++			//trunk/test/Miscellaneous/runme.m
++			this.average_vertex_connectivity=25;
++		// }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   2D tria Mesh (horizontal):")); 
++
++			console.log(sprintf("\n      Elements and vertices:"));
++			fielddisplay(this,"numberofelements","number of elements");
++			fielddisplay(this,"numberofvertices","number of vertices");
++			fielddisplay(this,"elements","vertex indices of the mesh elements");
++			fielddisplay(this,"x","vertices x coordinate [m]");
++			fielddisplay(this,"y","vertices y coordinate [m]");
++			fielddisplay(this,"edges","edges of the 2d mesh (vertex1 vertex2 element1 element2)");
++			fielddisplay(this,"numberofedges","number of edges of the 2d mesh");
++
++			console.log(sprintf("\n      Properties:"));
++			fielddisplay(this,"vertexonboundary","vertices on the boundary of the domain flag list");
++			fielddisplay(this,"segments","edges on domain boundary (vertex1 vertex2 element)");
++			fielddisplay(this,"segmentmarkers","number associated to each segment");
++			fielddisplay(this,"vertexconnectivity","list of vertices connected to vertex_i");
++			fielddisplay(this,"elementconnectivity","list of vertices connected to element_i");
++			fielddisplay(this,"average_vertex_connectivity","average number of vertices connected to one vertex");
++
++			console.log(sprintf("\n      Extracted model:"));
++			fielddisplay(this,"extractedvertices","vertices extracted from the model");
++			fielddisplay(this,"extractedelements","elements extracted from the model");
++
++			console.log(sprintf("\n      Projection:"));
++			fielddisplay(this,"lat","vertices latitude [degrees]");
++			fielddisplay(this,"long","vertices longitude [degrees]");
++			fielddisplay(this,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)");
++		} //}}}
++
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19702)
+@@ -0,0 +1,138 @@
++//MODEL class definition
++//
++//   Usage:
++//      md = new model()
++
++function model () {
++	//methods
++		this.disp = function() { //{{{
++			console.log(sprintf("class model echo: "));
++			console.log(sprintf("%19s: %-22s -- %s","mesh"            ,"[1x1 " + typeof(this.mesh) + "]","mesh properties"));
++			console.log(sprintf("%19s: %-22s -- %s","mask"            ,"[1x1 " + typeof(this.mask) + "]","defines grounded and floating elements"));
++			console.log(sprintf("%19s: %-22s -- %s","geometry"        ,"[1x1 " + typeof(this.geometry) + "]","surface elevation, bedrock topography, ice thickness,..."));
++			console.log(sprintf("%19s: %-22s -- %s","constants"       ,"[1x1 " + typeof(this.constants) + "]","physical constants"));
++			console.log(sprintf("%19s: %-22s -- %s","smb"             ,"[1x1 " + typeof(this.smb) + "]","surface mass balance"));
++			console.log(sprintf("%19s: %-22s -- %s","basalforcings"   ,"[1x1 " + typeof(this.basalforcings) + "]","bed forcings"));
++			console.log(sprintf("%19s: %-22s -- %s","materials"       ,"[1x1 " + typeof(this.materials) + "]","material properties"));
++			console.log(sprintf("%19s: %-22s -- %s","damage"          ,"[1x1 " + typeof(this.damage) + "]","parameters for damage evolution solution"));
++			console.log(sprintf("%19s: %-22s -- %s","friction"        ,"[1x1 " + typeof(this.friction) + "]","basal friction/drag properties"));
++			console.log(sprintf("%19s: %-22s -- %s","flowequation"    ,"[1x1 " + typeof(this.flowequation) + "]","flow equations"));
++			console.log(sprintf("%19s: %-22s -- %s","timestepping"    ,"[1x1 " + typeof(this.timestepping) + "]","time stepping for transient models"));
++			console.log(sprintf("%19s: %-22s -- %s","initialization"  ,"[1x1 " + typeof(this.initialization) + "]","initial guess/state"));
++			console.log(sprintf("%19s: %-22s -- %s","rifts"           ,"[1x1 " + typeof(this.rifts) + "]","rifts properties"));
++			console.log(sprintf("%19s: %-22s -- %s","debug"           ,"[1x1 " + typeof(this.debug) + "]","debugging tools (valgrind, gprof)"));
++			console.log(sprintf("%19s: %-22s -- %s","verbose"         ,"[1x1 " + typeof(this.verbose) + "]","verbosity level in solve"));
++			console.log(sprintf("%19s: %-22s -- %s","settings"        ,"[1x1 " + typeof(this.settings) + "]","settings properties"));
++			console.log(sprintf("%19s: %-22s -- %s","toolkits"        ,"[1x1 " + typeof(this.toolkits) + "]","PETSc options for each solution"));
++			console.log(sprintf("%19s: %-22s -- %s","cluster"         ,"[1x1 " + typeof(this.cluster) + "]","cluster parameters (number of cpus...)"));
++			console.log(sprintf("%19s: %-22s -- %s","balancethickness","[1x1 " + typeof(this.balancethickness) + "]","parameters for balancethickness solution"));
++			console.log(sprintf("%19s: %-22s -- %s","stressbalance"   ,"[1x1 " + typeof(this.stressbalance) + "]","parameters for stressbalance solution"));
++			console.log(sprintf("%19s: %-22s -- %s","groundingline"   ,"[1x1 " + typeof(this.groundingline) + "]","parameters for groundingline solution"));
++			console.log(sprintf("%19s: %-22s -- %s","hydrology"       ,"[1x1 " + typeof(this.hydrology) + "]","parameters for hydrology solution"));
++			console.log(sprintf("%19s: %-22s -- %s","masstransport"   ,"[1x1 " + typeof(this.masstransport) + "]","parameters for masstransport solution"));
++			console.log(sprintf("%19s: %-22s -- %s","thermal"         ,"[1x1 " + typeof(this.thermal) + "]","parameters for thermal solution"));
++			console.log(sprintf("%19s: %-22s -- %s","steadystate"     ,"[1x1 " + typeof(this.steadystate) + "]","parameters for steadystate solution"));
++			console.log(sprintf("%19s: %-22s -- %s","transient"       ,"[1x1 " + typeof(this.transient) + "]","parameters for transient solution"));
++			console.log(sprintf("%19s: %-22s -- %s","calving"         ,"[1x1 " + typeof(this.calving) + "]","parameters for calving"));
++			console.log(sprintf("%19s: %-22s -- %s","gia"             ,"[1x1 " + typeof(this.gia) + "]","parameters for gia solution"));
++			console.log(sprintf("%19s: %-22s -- %s","autodiff"        ,"[1x1 " + typeof(this.autodiff) + "]","automatic differentiation parameters"));
++			console.log(sprintf("%19s: %-22s -- %s","flaim"           ,"[1x1 " + typeof(this.flaim) + "]","flaim parameters"));
++			console.log(sprintf("%19s: %-22s -- %s","inversion"       ,"[1x1 " + typeof(this.inversion) + "]","parameters for inverse methods"));
++			console.log(sprintf("%19s: %-22s -- %s","qmu"             ,"[1x1 " + typeof(this.qmu) + "]","dakota properties"));
++			console.log(sprintf("%19s: %-22s -- %s","outputdefinition","[1x1 " + typeof(this.outputdefinition) + "]","output definition"));
++			console.log(sprintf("%19s: %-22s -- %s","results"         ,"[1x1 " + typeof(this.results) + "]","model results"));
++			console.log(sprintf("%19s: %-22s -- %s","radaroverlay"    ,"[1x1 " + typeof(this.radaroverlay) + "]","radar image for plot overlay"));
++			console.log(sprintf("%19s: %-22s -- %s","miscellaneous"   ,"[1x1 " + typeof(this.miscellaneous) + "]","miscellaneous fields"));
++		} //}}}
++		this.setdefaultparameters = function () { // {{{
++
++			//initialize subclasses
++			this.mesh             = new mesh2d();
++//			this.mask             = mask();
++//			this.constants        = constants();
++//			this.geometry         = geometry();
++//			this.initialization   = initialization();
++//			this.smb              = SMBforcing();
++//			this.basalforcings    = basalforcings();
++//			this.friction         = friction();
++//			this.rifts            = rifts();
++//			this.timestepping     = timestepping();
++//			this.groundingline    = groundingline();
++//			this.materials        = matice();
++//			this.damage           = damage();
++//			this.flowequation     = flowequation();
++//			this.debug            = debug();
++//			this.verbose          = verbose();
++//			this.settings         = settings();
++//			this.toolkits         = toolkits();
++//			this.cluster          = generic();
++//			this.balancethickness = balancethickness();
++//			this.stressbalance    = stressbalance();
++//			this.hydrology        = hydrologyshreve();
++//			this.masstransport    = masstransport();
++//			this.thermal          = thermal();
++//			this.steadystate      = steadystate();
++//			this.transient        = transient();
++//			this.calving          = calving();
++//			this.gia              = gia();
++//			this.autodiff         = autodiff();
++//			this.flaim            = flaim();
++//			this.inversion        = inversion();
++//			this.qmu              = qmu();
++//			this.radaroverlay     = radaroverlay();
++//			this.results          = struct();
++//			this.outputdefinition = outputdefinition();
++//			this.miscellaneous    = miscellaneous();
++//			this.private          = private();
++		} //}}}
++	//properties
++	// {{{
++		//Careful here: no other class should be used as default value this is a bug of matlab
++		this.mesh             = 0;
++		this.mask             = 0;
++
++		this.geometry         = 0;
++		this.constants        = 0;
++		this.smb              = 0;
++		this.basalforcings    = 0;
++		this.materials        = 0;
++		this.damage           = 0;
++		this.friction         = 0;
++		this.flowequation     = 0;
++		this.timestepping     = 0;
++		this.initialization   = 0;
++		this.rifts            = 0;
++
++		this.debug            = 0;
++		this.verbose          = 0;
++		this.settings         = 0;
++		this.toolkits         = 0;
++		this.cluster          = 0;
++
++		this.balancethickness = 0;
++		this.stressbalance    = 0;
++		this.groundingline    = 0;
++		this.hydrology        = 0;
++		this.masstransport    = 0;
++		this.thermal          = 0;
++		this.steadystate      = 0;
++		this.transient        = 0;
++		this.calving          = 0;
++		this.gia              = 0;
++
++		this.autodiff         = 0;
++		this.flaim            = 0;
++		this.inversion        = 0;
++		this.qmu              = 0;
++
++		this.results          = 0;
++		this.outputdefinition = 0;
++		this.radaroverlay     = 0;
++		this.miscellaneous    = 0;
++		this.private          = 0;
++
++		//set default values for fields
++		this.setdefaultparameters();
++
++		//}}}
++}
+Index: ../trunk-jpl/src/m/array/listToMatrix.js
+===================================================================
+--- ../trunk-jpl/src/m/array/listToMatrix.js	(revision 0)
++++ ../trunk-jpl/src/m/array/listToMatrix.js	(revision 19702)
+@@ -0,0 +1,14 @@
++function listToMatrix(list, elementsPerSubArray) {
++	var matrix = [], i, k;
++
++	for (i = 0, k = -1; i < list.length; i++) {
++		if (i % elementsPerSubArray === 0) {
++			k++;
++			matrix[k] = [];
++		}
++
++		matrix[k].push(list[i]);
++	}
++
++	return matrix;
++}
+Index: ../trunk-jpl/configure.ac
+===================================================================
+--- ../trunk-jpl/configure.ac	(revision 19701)
++++ ../trunk-jpl/configure.ac	(revision 19702)
+@@ -36,6 +36,7 @@
+ 					  src/wrappers/Makefile
+ 					  src/wrappers/python/Makefile
+ 					  src/wrappers/matlab/Makefile
++					  src/wrappers/javascript/Makefile
+ 					  src/mobile/Makefile
+ 					  src/mobile/native/Makefile
+ 					  src/m/Makefile
+
+Property changes on: ../trunk-jpl
+___________________________________________________________________
+Modified: svn:ignore
+   - build-gcm
+build-fw
+build-ad
+nightlylog
+configure.sh
+par
+ad
+proj-*
+projects
+autom4te.cache
+aclocal.m4
+bin
+config.log
+config.h
+config.h.in
+config.status
+configure
+ISSM.paf
+ISSM.ppf
+ISSM.ppf_cache
+libtool
+Makefile
+Makefile.in
+stamp-h1
+svn-commit*
+
+   + build-js
+build-esmf
+build-gcm
+build-fw
+build-ad
+nightlylog
+configure.sh
+par
+ad
+proj-*
+projects
+autom4te.cache
+aclocal.m4
+bin
+config.log
+config.h
+config.h.in
+config.status
+configure
+ISSM.paf
+ISSM.ppf
+ISSM.ppf_cache
+libtool
+Makefile
+Makefile.in
+stamp-h1
+svn-commit*
+
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19702-19703.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19702-19703.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19702-19703.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19702)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19703)
+@@ -303,7 +303,7 @@
+   			;;
+ 		   *)
+            MEXLINK=$($MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
+-           MEXLIB="-L$MATLAB_ROOT/bin/maci64  -Wl,$MATLAB_ROOT/bin/maci64/libmx.dylib -lmex -lmat -lstdc++"
++			  MEXLIB=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
+ 		     MEXEXT=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
+ 				dnl version 2014 and up
+ 				if test "x$MEXEXT" = "x" ; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19703-19704.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19703-19704.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19703-19704.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/m/dev/issmversion.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/issmversion.py	(revision 19703)
++++ ../trunk-jpl/src/m/dev/issmversion.py	(revision 19704)
+@@ -11,10 +11,10 @@
+ 
+ print ' '
+ print IssmConfig('PACKAGE_NAME')[0]+' Version '+IssmConfig('PACKAGE_VERSION')[0]
+-print '(website: '+IssmConfig('PACKAGE_URL')[0]+' contact:'+IssmConfig('PACKAGE_BUGREPORT')[0]+')'
++print '(website: '+IssmConfig('PACKAGE_URL')[0]+' contact: '+IssmConfig('PACKAGE_BUGREPORT')[0]+')'
+ print ' '
+ print 'Build date: '+IssmConfig('PACKAGE_BUILD_DATE')[0]
+-print 'Copyright (c) 2009-2013 California Institute of Technology'
++print 'Copyright (c) 2009-2015 California Institute of Technology'
+ print ' '
+ print '    to get started type: issmdoc'
+ print ' '
+Index: ../trunk-jpl/src/m/dev/issmversion.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/issmversion.m	(revision 19703)
++++ ../trunk-jpl/src/m/dev/issmversion.m	(revision 19704)
+@@ -11,7 +11,7 @@
+ 
+ disp([' ']);
+ disp([IssmConfig('PACKAGE_NAME') ' Version ' IssmConfig('PACKAGE_VERSION')]);
+-disp(['(website: ' IssmConfig('PACKAGE_URL') ' contact:' IssmConfig('PACKAGE_BUGREPORT') ')']);
++disp(['(website: ' IssmConfig('PACKAGE_URL') ' contact: ' IssmConfig('PACKAGE_BUGREPORT') ')']);
+ disp([' ']);
+ disp(['Build date: ' IssmConfig('PACKAGE_BUILD_DATE')]);
+ disp(['Compiled on ' IssmConfig('HOST_VENDOR') ' ' IssmConfig('HOST_OS') ' ' IssmConfig('HOST_ARCH') ' by ' IssmConfig('USER_NAME')]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19704-19705.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19704-19705.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19704-19705.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19704)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19705)
+@@ -342,6 +342,25 @@
+ 	AM_CONDITIONAL([WINDOWS], [test x$IS_WINDOWS = xyes])
+ 	AC_MSG_RESULT(done)
+ 	dnl }}}
++	dnl javascript{{{
++	AC_ARG_WITH([javascript],
++	  AS_HELP_STRING([--with-javascript], [compile javascript wrappers? default is no.]),
++	  [JAVASCRIPT=$withval],[JAVASCRIPT="no"]) 
++
++	dnl Check whether javascript wrappers are desired
++	AC_MSG_CHECKING([for javascript])
++	if test "x$JAVASCRIPT" = "xno" ; then
++		HAVE_JAVASCRIPT=no
++	else
++		HAVE_JAVASCRIPT=yes
++		AC_DEFINE([_HAVE_JAVASCRIPT_],[1],[with javascript])
++	fi
++	AC_MSG_RESULT($HAVE_JAVASCRIPT)
++	AM_CONDITIONAL([JAVASCRIPT],[test x$HAVE_JAVASCRIPT = xyes])
++	JAVASCRIPTWRAPPEREXT=.js
++	AC_SUBST([JAVASCRIPTWRAPPEREXT])
++
++	dnl }}}
+ 	dnl triangle {{{
+ 	AC_ARG_WITH([triangle-dir],
+ 			  AS_HELP_STRING([--with-triangle-dir=DIR], [triangle root directory.]),
+@@ -375,7 +394,11 @@
+ 				TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
+ 				;;
+ 				*darwin*)
+-				TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
++				if test "x$HAVE_JAVASCRIPT" = "xyes"; then
++					TRIANGLELIB=$TRIANGLE_ROOT/triangle.o dnl go to the bit code, not the library.
++				else
++					TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
++				fi
+ 				;;
+ 			esac
+ 		AC_DEFINE([_HAVE_TRIANGLE_],[1],[with Triangle in ISSM src])
+@@ -550,25 +573,6 @@
+ 	fi
+ 	AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
+ 	dnl }}}
+-	dnl javascript{{{
+-	AC_ARG_WITH([javascript],
+-	  AS_HELP_STRING([--with-javascript], [compile javascript wrappers? default is no.]),
+-	  [JAVASCRIPT=$withval],[JAVASCRIPT="no"]) 
+-
+-	dnl Check whether javascript wrappers are desired
+-	AC_MSG_CHECKING([for javascript])
+-	if test "x$JAVASCRIPT" = "xno" ; then
+-		HAVE_JAVASCRIPT=no
+-	else
+-		HAVE_JAVASCRIPT=yes
+-		AC_DEFINE([_HAVE_JAVASCRIPT_],[1],[with javascript])
+-	fi
+-	AC_MSG_RESULT($HAVE_JAVASCRIPT)
+-	AM_CONDITIONAL([JAVASCRIPT],[test x$HAVE_JAVASCRIPT = xyes])
+-	JAVASCRIPTWRAPPEREXT=.js
+-	AC_SUBST([JAVASCRIPTWRAPPEREXT])
+-
+-	dnl }}}
+ 	dnl python{{{
+ 	AC_ARG_WITH([python-dir],
+ 	  AS_HELP_STRING([--with-python-dir=DIR], [python root directory.]),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19705-19706.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19705-19706.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19705-19706.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 19705)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 19706)
+@@ -395,7 +395,8 @@
+ 				;;
+ 				*darwin*)
+ 				if test "x$HAVE_JAVASCRIPT" = "xyes"; then
+-					TRIANGLELIB=$TRIANGLE_ROOT/triangle.o dnl go to the bit code, not the library.
++					dnl go to the bit code, not the library.
++					TRIANGLELIB=$TRIANGLE_ROOT/triangle.o 
+ 				else
+ 					TRIANGLELIB=$TRIANGLE_ROOT/triangle.a
+ 				fi
+@@ -404,6 +405,7 @@
+ 		AC_DEFINE([_HAVE_TRIANGLE_],[1],[with Triangle in ISSM src])
+ 		AC_SUBST([TRIANGLEINCL])
+ 		AC_SUBST([TRIANGLELIB])
++		echo $TRIANGLELIB
+ 	fi
+ 	dnl }}}
+ 	dnl boost{{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19706-19707.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19706-19707.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19706-19707.diff	(revision 20498)
@@ -0,0 +1,232 @@
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19707)
+@@ -0,0 +1,98 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import numpy
++
++class mismipbasalforcings(object):
++    """
++    MISMIP Basal Forcings class definition
++
++        Usage:
++	    mismipbasalforcings=mismipbasalforcings()
++    """
++
++    def __init__(self,md): # {{{
++
++        self.groundedice_melting_rate = float('NaN')
++        self.meltrate_factor = float('NaN')
++        self.threshold_thickness = float('NaN')
++        self.upperdepth_melt = float('NaN')
++        self.geothermalflux = float('NaN')
++
++        if numpy.all(numpy.isnan(self.groundedice_melting_rate)):
++            self.groundedice_melting_rate=numpy.zeros(md.mesh.numberofvertices)
++            print ' no basalforcings.groundedice_melting_rate specified: values set as zero'
++
++	self.setdefaultparameters()
++
++    #}}}
++    def __repr__(self): # {{{
++        string=" MISMIP+ basal melt parameterization\n"
++        string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
++        string="%s\n%s"%(string,fielddisplay(self,"meltrate_factor","Melt-rate rate factor [1/yr]"))
++        string="%s\n%s"%(string,fielddisplay(self,"threshold_thickness","Threshold thickness for saturation of basal melting [m]"))
++        string="%s\n%s"%(string,fielddisplay(self,"upperdepth_melt","Depth above which melt rate is zero [m]"))
++        string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","Geothermal heat flux [W/m^2]"))
++
++	return string
++    #}}}
++    def extrude(self,md): # {{{
++	self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
++	self.p=project3d(md,'vector',self.p,'type','element')
++	self.q=project3d(md,'vector',self.q,'type','element')
++	return self
++    #}}}
++    def setdefaultparameters(self): # {{{
++
++        # default values for melting parameterization
++        self.meltrate_factor = 0.2
++        self.threshold_thickness = 75.
++        self.upperdepth_melt = -100.
++
++	return self
++    #}}}
++    def checkconsistency(self,md,solution,analyses):    # {{{
++
++	#Early return
++        if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.ismasstransport==0):
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
++
++        if BalancethicknessAnalysisEnum() in analyses:
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
++
++        if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.isthermal==0):
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.geothermal_flux','NaN',1,'timeseries',1,'>=',0)
++	return md
++    # }}}
++    def marshall(self,md,fid):    # {{{
++
++        yts=md.constants.yts
++        if yts!=365.2422*24.*3600.:
++            print 'WARNING: value of yts for MISMIP+ runs different from ISSM default!'
++
++        floatingice_melting_rate = numpy.zeros((md.mesh.numberofvertices,1))
++        floatingice_melting_rate = md.basalforcings.meltrate_factor*numpy.tanh((md.geometry.base-md.geometry.bed)/md.basalforcings.threshold_thickness)*numpy.amax(md.basalforcings.upperdepth_melt-md.geometry.base,0)
++
++	WriteData(fid,'enum',BasalforcingsEnum(),'data',MismipFloatingMeltRateEnum(),'format','Integer')
++	WriteData(fid,'data',floatingice_melting_rate,'format','DoubleMat','enum',BasalforcingsFloatingiceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','enum',BasalforcingsGroundediceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','geothermal_flux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','meltrate_factor','format','Double','enum',BasalforcingsMeltrateFactorEnum(),'scale',1./yts)
++	WriteData(fid,'object',self,'fieldname','threshold_thickness','format','Double','enum',BasalforcingsThresholdThicknessEnum())
++	WriteData(fid,'object',self,'fieldname','upperdepth_melt','format','Double','enum',BasalforcingsUpperdepthMeltEnum())
++
++    # }}}
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19706)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19707)
+@@ -47,14 +47,13 @@
+ 			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+-			disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * rho_i * g * (h-h_f) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_fw / rho_i * bed))'));
+-			fielddisplay(self,'coefficient','friction coefficient [SI]');
+-			fielddisplay(self,'coefficientcoulomb','coulomb friction coefficient [SI]');
++			disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * rho_i * g * (h-h_f)) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_sw / rho_i * bed))'));
++			fielddisplay(self,'coefficient','power law (Weertman) friction coefficient [SI]');
++			fielddisplay(self,'coefficientcoulomb','Coulomb friction coefficient [SI]');
+ 			fielddisplay(self,'p','p exponent');
+ 			fielddisplay(self,'q','q exponent');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+-			yts=365.0*24.0*3600.0;
+ 
+ 			WriteData(fid,'enum',FrictionLawEnum,'data',7,'format','Integer');
+ 			WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'enum',FrictionCoefficientEnum());
+Index: ../trunk-jpl/src/m/classes/timestepping.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.py	(revision 19706)
++++ ../trunk-jpl/src/m/classes/timestepping.py	(revision 19707)
+@@ -65,7 +65,7 @@
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+ 
+-		yts=365.0*24.0*3600.0
++                yts=md.constants.yts
+ 
+ 		WriteData(fid,'object',self,'fieldname','start_time','format','Double','scale',yts)
+ 		WriteData(fid,'object',self,'fieldname','final_time','format','Double','scale',yts)
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 19707)
+@@ -0,0 +1,63 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class frictioncoulomb(object):
++    """
++    FRICTIONCOULOMB class definition
++
++    Usage:
++        frictioncoulomb=frictioncoulomb()
++    """
++
++    def __init__(self): # {{{
++        self.coefficient = float('NaN')
++        self.coefficientcoulomb = float('NaN')
++        self.p = float('NaN')
++	self.q = float('NaN')
++
++	#set defaults
++	self.setdefaultparameters()
++
++    #}}}
++    def __repr__(self): # {{{
++	string="Basal shear stress parameters: Sigma_b = min(coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b,\n coefficientcoulomb^2 * rho_i * g * (h-h_f)), (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)."
++
++	string="%s\n%s"%(string,fielddisplay(self,"coefficient","power law (Weertman) friction coefficient [SI]"))
++	string="%s\n%s"%(string,fielddisplay(self,"coefficientcoulomb","Coulomb friction coefficient [SI]"))
++	string="%s\n%s"%(string,fielddisplay(self,"p","p exponent"))
++	string="%s\n%s"%(string,fielddisplay(self,"q","q exponent"))
++	return string
++    #}}}
++    def extrude(self,md): # {{{
++	self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
++	self.coefficientcoulomb=project3d(md,'vector',self.coefficientcoulomb,'type','node','layer',1)
++	self.p=project3d(md,'vector',self.p,'type','element')
++	self.q=project3d(md,'vector',self.q,'type','element')
++	return self
++    #}}}
++    def setdefaultparameters(self): # {{{
++	return self
++    #}}}
++    def checkconsistency(self,md,solution,analyses):    # {{{
++
++	#Early return
++	if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
++	    return md
++
++	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
++	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)
++	md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++
++	return md
++    # }}}
++    def marshall(self,md,fid):    # {{{
++	WriteData(fid,'enum',FrictionLawEnum(),'data',1,'format','Integer')
++	WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1)
++	WriteData(fid,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1)
++	WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2)
++	WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2)
++    # }}}
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19706)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19707)
+@@ -71,7 +71,7 @@
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
+-			disp(sprintf('   mismip basal forcings parameters:'));
++			disp(sprintf('   MISMIP+ basal melt parameterization:'));
+ 
+ 			fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
+ 			fielddisplay(self,'meltrate_factor','Melt-rate rate factor [1/yr]');
+Index: ../trunk-jpl/src/m/classes/friction.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.py	(revision 19706)
++++ ../trunk-jpl/src/m/classes/friction.py	(revision 19707)
+@@ -9,7 +9,7 @@
+ 	FRICTION class definition
+ 
+ 	   Usage:
+-	      friction=friction();
++	      friction=friction()
+ 	"""
+ 
+ 	def __init__(self): # {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19707-19708.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19707-19708.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19707-19708.diff	(revision 20498)
@@ -0,0 +1,32 @@
+Index: ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19707)
++++ ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19708)
+@@ -41,7 +41,7 @@
+ 	if(my_rank==0){
+ 		femmodel->parameters->FindParam(&solutiontype,SolutionTypeEnum);
+ 		EnumToStringx(&solutiontypestring,solutiontype);
+-		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-9999));
++		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-1));
+ 		xDelete<char>(solutiontypestring);
+ 	}
+ 
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19707)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19708)
+@@ -79,12 +79,11 @@
+ 		elif results[index] is None:
+ 			results[index]=resultsclass.results()
+ 
+-		if index==0 and  step==3:
+-			print result
+ 			
+ 		#Get time and step
+ 		setattr(results[index],'step',result['step'])
+-		setattr(results[index],'time',result['time']) 
++		if result['time'] != -9999.:
++			setattr(results[index],'time',result['time']) 
+ 	
+ 		#Add result
+ 		if hasattr(results[index],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19708-19709.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19708-19709.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19708-19709.diff	(revision 20498)
@@ -0,0 +1,117 @@
+Index: ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19708)
++++ ../trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 19709)
+@@ -41,7 +41,7 @@
+ 	if(my_rank==0){
+ 		femmodel->parameters->FindParam(&solutiontype,SolutionTypeEnum);
+ 		EnumToStringx(&solutiontypestring,solutiontype);
+-		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring,-1));
++		femmodel->results->AddResult(new GenericExternalResult<char*>(femmodel->results->Size()+1,SolutionTypeEnum,solutiontypestring));
+ 		xDelete<char>(solutiontypestring);
+ 	}
+ 
+Index: ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19708)
++++ ../trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 19709)
+@@ -136,7 +136,7 @@
+ 	SetControlInputsFromVectorx(femmodel,X);
+ 	ControlInputSetGradientx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,G);
+ 	femmodel->OutputControlsx(&femmodel->results);
+-	femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1,JEnum,f,0));
++	femmodel->results->AddObject(new GenericExternalResult<double>(femmodel->results->Size()+1,JEnum,f));
+ 
+ 	/*Finalize*/
+ 	if(VerboseControl()) _printf0_("   preparing final solution\n");
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19708)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19709)
+@@ -101,10 +101,10 @@
+ 			EnumToStringx(&this->result_name,in_enum_type);
+ 		}
+ 		/*}}}*/
+-		GenericExternalResult(int in_id, int in_enum_type,ResultType in_value,int in_step){ /*{{{*/
++		GenericExternalResult(int in_id, int in_enum_type,ResultType in_value){ /*{{{*/
+ 			id        = in_id;
+ 			value     = in_value;
+-			step      = in_step;
++			step      = UNDEF;
+ 			time      = UNDEF;
+ 			M         = 1;
+ 			N         = 1;
+@@ -271,12 +271,12 @@
+ 	EnumToStringx(&this->result_name,in_enum_type);
+ 
+ } /*}}}*/
+-template <> inline GenericExternalResult<char*>::GenericExternalResult(int in_id, int in_enum_type,char* in_value,int in_step){ /*{{{*/
++template <> inline GenericExternalResult<char*>::GenericExternalResult(int in_id, int in_enum_type,char* in_value){ /*{{{*/
+ 
+ 	id = in_id;
+ 	value = xNew<char>(strlen(in_value)+1);
+ 	xMemCpy<char>(value,in_value,(strlen(in_value)+1));
+-	step  = in_step;
++	step  = UNDEF;
+ 	time  = UNDEF;
+ 
+ 	/*Convert enum to name*/
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19708)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 19709)
+@@ -57,12 +57,8 @@
+ 			step    = result['step']
+ 
+ 		#Add result
+-		if result['step']==-1:
+-			#specialty case, put this result at the beginning of the structure
+-			index = 0
+-			result['step']=0
+-		elif result['step']==0:
+-			#if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
++		if result['step']==0:
++			#if we have a step = 0, this is a steady state solution, don't expect more steps. 
+ 			index = 0;
+ 			check_nomoresteps=1
+ 	
+@@ -81,7 +77,8 @@
+ 
+ 			
+ 		#Get time and step
+-		setattr(results[index],'step',result['step'])
++		if result['step'] != -9999.:
++			setattr(results[index],'step',result['step'])
+ 		if result['time'] != -9999.:
+ 			setattr(results[index],'time',result['time']) 
+ 	
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19708)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19709)
+@@ -46,11 +46,7 @@
+ 	end
+ 
+ 	%Add result
+-	if(result.step==-1), 
+-		%specialty case, put this result at the beginning of the structure
+-		index = 1;
+-		result.step=0;
+-	elseif(result.step==0),
++	if(result.step==0),
+ 		%if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
+ 		index = 1;
+ 		check_nomoresteps=1;
+@@ -59,9 +55,11 @@
+ 	else
+ 		index = counter;
+ 	end
+-	results(index).step=result.step;
+ 	results(index).(result.fieldname)=result.field;
+ 	if(result.time~=-9999),
++		results(index).step=result.step;
++	end
++	if(result.time~=-9999),
+ 		results(index).time=result.time;
+ 	end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19709-19710.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19709-19710.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19709-19710.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/miscellaneous/fielddisplay.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19709)
++++ ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19710)
+@@ -46,7 +46,12 @@
+ 	//object
+ 	else if (typeof(field) == "object"){
+ 			
+-		displayunit(offset,name,sprintf("(%i)",field.length),comment);
++		if ((field[0].length==0) | (typeof field[0].length =='undefined')){
++			displayunit(offset,name,sprintf("(%i)",field.length),comment);
++		}
++		else{
++			displayunit(offset,name,sprintf("(%i,%i)",field.length,field[0].length),comment);
++		}
+ 
+ 	}
+ 	else{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19710-19711.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19710-19711.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19710-19711.diff	(revision 20498)
@@ -0,0 +1,560 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19710)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19711)
+@@ -8,10 +8,12 @@
+ <script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/model.js"></script>
+ <script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
+-<script type="text/javascript" src="../../src/m/array/listToMatrix.js"></script>
++<script type="text/javascript" src="../../src/m/array/ArrayOperations.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/TriMeshModule.js"></script>
++<script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
++<script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <!-- Includes }}}-->
+ </head><!--}}}-->
+@@ -19,9 +21,10 @@
+ 
+ 	<script type="text/javascript" async>
+ 	var md = new model();
+-	triangle(md,square,[],5000); 
+-	setmask(md,'all','');
++	triangle(md,square,50000); 
++	md.mesh.disp();
+ 
++
+ 	</script>
+ 
+ </body><!--}}}-->
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.js	(revision 19711)
+@@ -0,0 +1,43 @@
++function NodeConnectivity(elementsin,nods){
++/*NodeConnectivity 
++	   usage: var md.mesh.vertexconnectivity = NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++*/
++
++	//Dynamic allocations: {{{
++	//Retrieve elements and allocate on Module heap: 
++	
++	//input
++	var delements=new Int32Array(MatrixToList(elementsin)); var nelements=delements.length * delements.BYTES_PER_ELEMENT;
++	var delementsPtr= Module._malloc(nelements); var elementsHeap = new Uint8Array(Module.HEAPU8.buffer,delementsPtr,nelements);
++	elementsHeap.set(new Uint8Array(delements.buffer)); var elements=elementsHeap.byteOffset;
++
++	//output
++	var width,connectivitylinear,connectivity;
++	var pwidth= Module._malloc(4); 
++	var pnods= Module._malloc(4); 
++	var pconnectivity= Module._malloc(4); 
++	var nels=elementsin.length;
++	//}}}
++
++	//Declare NodeConnectivity module: 
++	NodeConnectivityModule = Module.cwrap('NodeConnectivityModule','number',['number','number','number','number']);
++	
++	//Call NodeConnectivity module: 
++	NodeConnectivityModule(pconnectivity,pnods,pwidth,elements,nels,nods);
++	
++	/*Dynamic copying from heap: {{{*/
++	//recover mesh: 
++	width = Module.getValue(pwidth, 'i32');
++	var connectivityptr = Module.getValue(pconnectivity,'i32');
++	connectivitylinear = Module.HEAPF64.slice(connectivityptr /8, connectivityptr/8 + nods*width);
++	connectivity = ListToMatrix(connectivitylinear,width);
++	/*}}}*/
++
++	/*Free ressources: */
++	Module._free(pconnectivity); 
++	Module._free(connectivitylinear); 
++	Module._free(pwidth); 
++	Module._free(pnods); 
++
++	return connectivity;
++}
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 19710)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 19711)
+@@ -9,7 +9,7 @@
+ 	_printf0_("   usage: connectivity = " << __FUNCT__ << "(elements, numnodes);\n");
+ 	_printf0_("\n");
+ }/*}}}*/
+-WRAPPER(NodeConnectivity){
++WRAPPER(NodeConnectivity, double** pconnectivity, int* pnods, int *pwidth, int* elementsin, int nelsin, int nodsin){
+ 
+ 	/*inputs: */
+ 	int* elements=NULL;
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19710)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19711)
+@@ -21,7 +21,9 @@
+ 
+ /*Header files: */
+ #include "../bindings.h"
++#ifndef _HAVE_JAVASCRIPT_MODULES_
+ #include "../../c/main/globals.h"
++#endif
+ #include "../../c/toolkits/toolkits.h"
+ #include "../../c/modules/modules.h"
+ #include "../../c/shared/shared.h"
+@@ -44,6 +46,14 @@
+ #define CONNECTIVITY output,0
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define ELEMENTS elementsin, nelsin,3
++#define NUMNODES nodsin
++/* serial output macros: */
++#define CONNECTIVITY pconnectivity,pnods,pwidth
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19710)
++++ ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19711)
+@@ -18,10 +18,15 @@
+ #include "../../../c/shared/shared.h"
+ 
+ void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N);
++void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, int* matrix, int M, int N);
+ void WriteData(IssmPDouble** px, int* pnods, int* vector, int M);
+ void WriteData(IssmPDouble** px, int* pnods, double* vector, int M);
+ 
+ void FetchData(double* pscalar,double scalar);
++void FetchData(int* pinteger,int integer);
++void FetchData(double** pvector, double* vectorin, int nods);
++void FetchData(double **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
++void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
+ void FetchData(Contours** pcontours,double* x, double* y, int nods);
+ 
+ /*Print*/
+Index: ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19710)
++++ ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19711)
+@@ -18,7 +18,51 @@
+ 	*pscalar = scalar;
+ }
+ /*}}}*/
++/*FUNCTION FetchData(double* pscalar,double scalar){{{*/
++void FetchData(int* pinteger,int integer){
++	
++	*pinteger = integer;
++}
++/*}}}*/
++/*FUNCTION FetchData(double **pvector, double* vectorin, int nods){{{*/
++void FetchData(double** pvector, double* vectorin, int nods){
+ 
++	double* vector=NULL;
++	
++	vector=xNew<IssmPDouble>(nods); xMemCpy<IssmPDouble>(vector,vectorin,nods);
++	
++	*pvector=vector;
++}
++/*}}}*/
++/*FUNCTION FetchData(double **pmatrix, int* pM, int* pN, int* matrix, int M, int N){{{*/
++void FetchData(double **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
++
++	double* matrix=NULL;
++	
++	if(pmatrix && matrixin){ 
++
++		matrix=xNew<IssmPDouble>(M*N); 
++		for(int i=0;i<M*N;i++)matrix[i]=(IssmPDouble)matrixin[i];
++		if (pM)*pM=M;
++		if (pN)*pN=N;
++		*pmatrix=matrix;
++	}
++}
++/*}}}*/
++/*FUNCTION FetchData(int **pmatrix, int* pM, int* pN, int* matrix, int M, int N){{{*/
++void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
++
++	int* matrix=NULL;
++	
++	if(pmatrix && matrixin){ 
++
++		matrix=xNew<int>(M*N);xMemCpy<int>(matrix,matrixin,M*N); 
++		if (pM)*pM=M;
++		if (pN)*pN=N;
++		*pmatrix=matrix;
++	}
++}
++/*}}}*/
+ /*ISSM objects*/
+ /*FUNCTION FetchData(Contours** pcontours,double* x, double* y, int nods){{{*/
+ void FetchData(Contours** pcontours,double* x, double* y, int nods){
+Index: ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19710)
++++ ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19711)
+@@ -25,6 +25,20 @@
+ 	}
+ }
+ /*}}}*/
++/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pM, int* pN, , int* matrix, int M,int N){{{*/
++void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, int* matrix, int M, int N){
++
++	if(pmatrix && matrix){
++
++		/*Copy matrix: */
++		IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N); 
++		for (int i=0;i<M*N;i++)dmatrix[i]=(IssmPDouble)matrix[i];
++		*pmatrix=dmatrix;
++		*pM=M;
++		*pN=N;
++	}
++}
++/*}}}*/
+ /*FUNCTION WriteData(IssmPDouble** px, int* pnods, double* vector, int M){{{*/
+ void WriteData(IssmPDouble** px, int* pnods, double* vector, int M){
+ 
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19710)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19711)
+@@ -7,7 +7,8 @@
+ AM_CPPFLAGS+=  -DISSM_PREFIX='"$(prefix)"'
+ 
+ bin_SCRIPTS = 
+-bin_SCRIPTS += ../TriMesh/TriMesh.js 
++bin_SCRIPTS += ../TriMesh/TriMesh.js  \
++			   ../NodeConnectivity/NodeConnectivity.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+@@ -38,7 +39,7 @@
+ libISSMApi_la_CXXFLAGS= $(ALLCXXFLAGS)
+ #}}}
+ #Wrappers {{{
+-bin_PROGRAMS = 		 TriMeshModule
++bin_PROGRAMS = 		 IssmModule
+ #}}}
+ 
+ # Dependencies {{{
+@@ -70,7 +71,8 @@
+ libISSMApi_la_LDFLAGS = -static 
+ endif
+ 
+-TriMeshModule_SOURCES = ../TriMesh/TriMesh.cpp
+-TriMeshModule_CXXFLAGS= -fPIC --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule']"  -s DISABLE_EXCEPTION_CATCHING=0
+-TriMeshModule_LDADD = ${deps} $(MPILIB) $(PETSCLIB) $(TRIANGLELIB) $(GSLLIB) $(PROJ4LIB)
++IssmModule_SOURCES = ../TriMesh/TriMesh.cpp \
++					 ../NodeConnectivity/NodeConnectivity.cpp
++IssmModule_CXXFLAGS= -fPIC --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
++IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19710)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19711)
+@@ -63,8 +63,8 @@
+ #define INDEX             pindex,pnel
+ #define X                 px,pnods
+ #define Y                 py,pnods
+-#define SEGMENTS          NULL,NULL
+-#define SEGMENTMARKERLIST NULL,NULL
++#define SEGMENTS          psegments,pnsegs
++#define SEGMENTMARKERLIST psegmentmarkers,pnsegs
+ #endif
+ 
+ 
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js	(revision 19710)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.js	(revision 19711)
+@@ -30,39 +30,41 @@
+ 	var pnods= Module._malloc(4); 
+ 	var px= Module._malloc(4); 
+ 	var py= Module._malloc(4); 
++	var psegments= Module._malloc(4); 
++	var psegmentmarkers= Module._malloc(4); 
++	var pnsegs= Module._malloc(4); 
+ 	//}}}
+ 
+ 	//Declare TriMesh module: 
+-	TriMeshModule = Module.cwrap('TriMeshModule','number',['number','number','number','number','number','number','number','number','number']);
++	TriMeshModule = Module.cwrap('TriMeshModule','number',['number','number','number','number','number','number','number','number','number','number','number','number']);
+ 	
+ 	//Call TriMesh module: 
+-	TriMeshModule(pindex,px,py,pnel,pnods,domainx,domainy,dx.length,area);
++	TriMeshModule(pindex,px,py,pnel,pnods,psegments,psegmentmarkers,pnsegs, domainx,domainy,dx.length,area);
+ 	
+ 	/*Dynamic copying from heap: {{{*/
+ 	//recover mesh: 
+ 	nel = Module.getValue(pnel, 'i32');
+ 	var indexptr = Module.getValue(pindex,'i32');
+ 	indexlinear = Module.HEAPF64.slice(indexptr /8, indexptr/8 + nel*3);
+-	index = listToMatrix(indexlinear,3);
++	index = ListToMatrix(indexlinear,3);
+ 
+ 	nods = Module.getValue(pnods, 'i32');
+ 	var xptr = Module.getValue(px,'i32');
+ 	var yptr = Module.getValue(py,'i32');
+ 	x = Module.HEAPF64.slice(xptr /8, xptr/8 + nods);
+ 	y = Module.HEAPF64.slice(yptr /8, yptr/8 + nods);
++	
++	nsegs = Module.getValue(pnsegs, 'i32');
++	var segmentsptr = Module.getValue(psegments,'i32');
++	segmentslinear = Module.HEAPF64.slice(segmentsptr /8, segmentsptr/8 + nsegs*3);
++	segments = ListToMatrix(segmentslinear,3);
++	
++	var segmentmarkersptr = Module.getValue(psegmentmarkers,'i32');
++	segmentmarkers = Module.HEAPF64.slice(segmentmarkersptr /8, segmentmarkersptr/8 + nsegs);
+ 	/*}}}*/
+ 
+-	/*Assign output: */
+-	md.mesh=new mesh2d();
++	var return_array=[index,x,y,segments,segmentmarkers];
+ 
+-	md.mesh.elements=index;
+-	md.mesh.numberofelements=nel;
+-	md.mesh.numberofvertices=nods;
+-	md.mesh.x=x;
+-	md.mesh.y=y;
+-	md.mesh.segments=[];
+-	md.mesh.segmentmarkers=[];
+-
+ 	/*Free ressources: */
+ 	Module._free(pindex); 
+ 	Module._free(indexlinear); 
+@@ -72,5 +74,9 @@
+ 	Module._free(y); 
+ 	Module._free(pnel); 
+ 	Module._free(pnods); 
++	Module._free(psegments); 
++	Module._free(psegmentmarkers); 
++	Module._free(pnsegs); 
+ 
++	return return_array;
+ }
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19710)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19711)
+@@ -13,7 +13,7 @@
+ 	_printf_("      area is the maximum area desired for any element of the resulting mesh, \n");
+ 	_printf_("\n");
+ }/*}}}*/
+-WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double* domainx, double* domainy, int domainnods, double areain){
++WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double** psegments, double** psegmentmarkers, int* pnsegs, double* domainx, double* domainy, int domainnods, double areain){
+ 	
+ 
+ 	/*intermediary: */
+Index: ../trunk-jpl/src/m/mesh/triangle.js
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.js	(revision 19710)
++++ ../trunk-jpl/src/m/mesh/triangle.js	(revision 19711)
+@@ -1,4 +1,4 @@
+-function triangle(md,domain, rifts, resolution){
++function triangle(md){
+ //TRIANGLE - create model mesh using the triangle package
+ //
+ //   This routine creates a model mesh using TriMesh and a domain outline, to within a certain resolution
+@@ -14,16 +14,45 @@
+ //      triangle(md,domain,1000);
+ //      triangle(md,domain, rifts, 1500);
+ 
++	if (!(arguments.length==3 | arguments.length==4)){
++		console.log('triangle usage error.');
++	}
++	
++	var md=arguments[0];
++	var domain=arguments[1];
++
++	if (arguments.length==3){
++		var resolution=arguments[2];
++		var rifts=[];
++	}
++	if (arguments.length==4){
++		var rifts=arguments[2];
++		var resolution=arguments[3];
++	}
++
++	//Figure out a characteristic area. Resolution is a node oriented concept (ex a 1000m  resolution node would 
++	//be made of 1000*1000 area squares). 
+ 	var area=Math.pow(resolution,2);
+ 
+ 	//Call mesher: 
+-	var array = TriMesh(md, domain, rifts, area); 
++	var return_array=TriMesh(md, domain, rifts, area); 
+ 
++	//Plug into md:
++	md.mesh.elements=return_array[0];
++	md.mesh.x=return_array[1];
++	md.mesh.y=return_array[2];
++	md.mesh.segments=return_array[3];
++	md.mesh.segmentmarkers=return_array[4];
++	
+ 	//Fill in rest of fields:
+-	//md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
++	md.mesh.numberofelements=md.mesh.elements.length;
++	md.mesh.numberofvertices=md.mesh.x.length;
++	md.mesh.vertexonboundary=new Float64Array(md.mesh.numberofvertices); 
+ 
++	for (i=0;i<md.mesh.segments.length;i++) for(j=0;j<2;j++) md.mesh.vertexonboundary[md.mesh.segments[i][j]-1]=1;
++
+ 	//Now, build the connectivity tables for this mesh.
+-	//md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
+-	//md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++	md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++	//md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);	
+ 
+ }
+Index: ../trunk-jpl/src/m/mesh/triangle.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.m	(revision 19710)
++++ ../trunk-jpl/src/m/mesh/triangle.m	(revision 19711)
+@@ -1,4 +1,4 @@
+-function md=triangle(md,domainname,varargin)
++function md=triangle(md)
+ %TRIANGLE - create model mesh using the triangle package
+ %
+ %   This routine creates a model mesh using TriMesh and a domain outline, to within a certain resolution
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 0)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19711)
+@@ -0,0 +1,70 @@
++function md=setmask(md,floatingicename,groundedicename,varargin)
++%SETMASK - establish boundaries between grounded and floating ice.
++%
++%   By default, ice is considered grounded. The contour floatingicename defines nodes 
++%   for which ice is floating. The contour groundedicename defines nodes inside an floatingice, 
++%   that are grounded (ie: ice rises, islands, etc ...)
++%   All input files are in the Argus format (extension .exp).
++%
++%   Usage:
++%      md=setmask(md,floatingicename,groundedicename)
++%
++%   Examples:
++%      md=setmask(md,'all','');
++%      md=setmask(md,'Iceshelves.exp','Islands.exp');
++
++%some checks on list of arguments
++if ((mod(nargin,2)==0) | (nargout~=1)),
++	help mask
++	error('mask error message');
++end
++
++if(nargin>3)
++	if(varargin(1)=='icedomain'),
++		icedomainname=varargin(2);	
++	else
++		error('mask error message: wrong field specified. Only icedomain allowed for now.');
++	end
++	if ~exist(icedomainname),
++        error(['setmask error message: file ' icedomainname ' not found!']);
++	end
++end
++
++%Get assigned fields
++x=md.mesh.x;
++y=md.mesh.y;
++elements=md.mesh.elements;
++
++%Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. {{{
++elementonfloatingice=FlagElements(md,floatingicename);
++elementongroundedice=FlagElements(md,groundedicename);
++
++%Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 
++%arrays come from domain outlines that can intersect one another: 
++elementonfloatingice=double((elementonfloatingice & ~elementongroundedice));
++elementongroundedice=double(~elementonfloatingice);
++
++%the order here is important. we choose vertexongroundedice as default on the grounding line.
++vertexonfloatingice=zeros(md.mesh.numberofvertices,1);
++vertexongroundedice=zeros(md.mesh.numberofvertices,1);
++vertexongroundedice(md.mesh.elements(find(elementongroundedice),:))=1;
++vertexonfloatingice(find(~vertexongroundedice))=1;
++%}}}
++
++%level sets
++md.mask.groundedice_levelset=vertexongroundedice;
++md.mask.groundedice_levelset(find(vertexongroundedice==0.))=-1.;
++
++if(nargin>3)
++	if(varargin(1)=='icedomain')
++		md.mask.ice_levelset = 1.*ones(md.mesh.numberofvertices,1);
++		%use contourtomesh to set ice values inside ice domain
++		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomainname,'node',1);
++		pos=find(vertexinsideicedomain==1.);
++		md.mask.ice_levelset(pos) = -1.;
++	end
++else
++	md.mask.ice_levelset = -1.*ones(md.mesh.numberofvertices,1);
++end
++
++
+Index: ../trunk-jpl/src/m/array/ArrayOperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 0)
++++ ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19711)
+@@ -0,0 +1,56 @@
++function ArrayMax(array){ //{{{
++	return Math.max.apply(null,array);
++} //}}}
++function ArrayMax2D(array){ //{{{
++	
++	var max=0;
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		max=Math.max(max,ArrayMax(subarray));
++	}
++
++	return max;
++} //}}}
++function ArrayMin(array){ //{{{
++	return Math.min.apply(null,array);
++} //}}}
++function ArrayMin2D(array){ //{{{
++	
++	var min=ArrayMax2D(array);
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		min=Math.min(min,ArrayMin(subarray));
++	}
++
++	return min;
++} //}}}
++function ListToMatrix(list, elementsPerSubArray) { //{{{
++	var matrix = [], i, k;
++
++	for (i = 0, k = -1; i < list.length; i++) {
++		if (i % elementsPerSubArray === 0) {
++			k++;
++			matrix[k] = [];
++		}
++
++		matrix[k].push(list[i]);
++	}
++
++	return matrix;
++} //}}}
++function MatrixToList(matrix) { //{{{
++	
++	var width = matrix[0].length;
++	var length = matrix.length;
++	var list= new Array(width*length);
++
++	for (i=0;i<length;i++){
++		for(j=0;j<width;j++){
++			list[i*width+j]=matrix[i][j];
++		}
++	}
++		
++	return list;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19711-19712.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19711-19712.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19711-19712.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/src/m/mesh/triangle.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.m	(revision 19711)
++++ ../trunk-jpl/src/m/mesh/triangle.m	(revision 19712)
+@@ -1,4 +1,4 @@
+-function md=triangle(md)
++function md=triangle(md,domainname,varargin)
+ %TRIANGLE - create model mesh using the triangle package
+ %
+ %   This routine creates a model mesh using TriMesh and a domain outline, to within a certain resolution
Index: /issm/oecreview/Archive/19101-20495/ISSM-19712-19713.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19712-19713.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19712-19713.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19712)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19713)
+@@ -30,7 +30,7 @@
+     def __repr__(self): # {{{
+         string=" MISMIP+ basal melt parameterization\n"
+         string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
+-        string="%s\n%s"%(string,fielddisplay(self,"meltrate_factor","Melt-rate rate factor [1/yr]"))
++        string="%s\n%s"%(string,fielddisplay(self,"meltrate_factor","Melt-rate rate factor [1/yr] (sign is opposite to MISMIP+ benchmark to remain consistent with ISSM convention of positive values for melting)"))
+         string="%s\n%s"%(string,fielddisplay(self,"threshold_thickness","Threshold thickness for saturation of basal melting [m]"))
+         string="%s\n%s"%(string,fielddisplay(self,"upperdepth_melt","Depth above which melt rate is zero [m]"))
+         string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","Geothermal heat flux [W/m^2]"))
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19712)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19713)
+@@ -74,7 +74,7 @@
+ 			disp(sprintf('   MISMIP+ basal melt parameterization:'));
+ 
+ 			fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
+-			fielddisplay(self,'meltrate_factor','Melt-rate rate factor [1/yr]');
++			fielddisplay(self,'meltrate_factor','Melt-rate rate factor [1/yr] (sign is opposite to MISMIP+ benchmark to remain consistent with ISSM convention of positive values for melting)');
+ 			fielddisplay(self,'threshold_thickness','threshold thickness for saturation of basal melting [m]');
+ 			fielddisplay(self,'upperdepth_melt','depth above which the melt rate is zero [m]');
+ 			fielddisplay(self,'geothermalflux','geothermal heat flux [W/m^2]');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19713-19714.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19713-19714.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19713-19714.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/c/main/globals.h
+===================================================================
+--- ../trunk-jpl/src/c/main/globals.h	(revision 19713)
++++ ../trunk-jpl/src/c/main/globals.h	(revision 19714)
+@@ -4,11 +4,11 @@
+ 
+ #ifndef _GLOBALS_H_
+ #define _GLOBALS_H_
+-
+ #include "../shared/io/Comm/IssmComm.h"
+ #include "../toolkits/ToolkitOptions.h"
+ 
+ /*Communicators: */
++#ifndef _DO_NOT_LOAD_GLOBALS_ 
+ ISSM_MPI_Comm IssmComm::comm;
+ bool IssmComm::parallel;
+ 
+@@ -16,5 +16,6 @@
+  * database if we use Petsc. Can also be used to characterize the ISSM toolkit,
+  * often used when Petsc is not allowed*/
+ char* ToolkitOptions::toolkitoptions;
++#endif
+ 
+ #endif
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19713)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19714)
+@@ -73,6 +73,6 @@
+ 
+ IssmModule_SOURCES = ../TriMesh/TriMesh.cpp \
+ 					 ../NodeConnectivity/NodeConnectivity.cpp
+-IssmModule_CXXFLAGS= -fPIC --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19713)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19714)
+@@ -16,6 +16,10 @@
+ #define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++#undef _DO_NOT_LOAD_GLOBALS_
++#endif
++
+ /*Header files: */
+ #include "../bindings.h"
+ #include "../../c/main/globals.h"
+@@ -65,6 +69,7 @@
+ #define Y                 py,pnods
+ #define SEGMENTS          psegments,pnsegs
+ #define SEGMENTMARKERLIST psegmentmarkers,pnsegs
++#define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriMeshModule.js, not other modules!
+ #endif
+ 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19714-19715.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19714-19715.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19714-19715.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19714)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19715)
+@@ -17,7 +17,8 @@
+ #endif
+ 
+ #ifdef _HAVE_JAVASCRIPT_MODULES_
+-#undef _DO_NOT_LOAD_GLOBALS_
++#undef _DO_NOT_LOAD_GLOBALS_ /*only module where this needs to be undefined, so as to 
++							   not include IssmComm several times in the javascript Modle construct.*/
+ #endif
+ 
+ /*Header files: */
Index: /issm/oecreview/Archive/19101-20495/ISSM-19715-19716.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19715-19716.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19715-19716.diff	(revision 20498)
@@ -0,0 +1,173 @@
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 19715)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 19716)
+@@ -9,7 +9,7 @@
+ 	_printf0_("   usage: connectivity = " << __FUNCT__ << "(elements, numnodes);\n");
+ 	_printf0_("\n");
+ }/*}}}*/
+-WRAPPER(NodeConnectivity, double** pconnectivity, int* pnods, int *pwidth, int* elementsin, int nelsin, int nodsin){
++WRAPPER(NodeConnectivity){
+ 
+ 	/*inputs: */
+ 	int* elements=NULL;
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19715)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19716)
+@@ -21,9 +21,7 @@
+ 
+ /*Header files: */
+ #include "../bindings.h"
+-#ifndef _HAVE_JAVASCRIPT_MODULES_
+ #include "../../c/main/globals.h"
+-#endif
+ #include "../../c/toolkits/toolkits.h"
+ #include "../../c/modules/modules.h"
+ #include "../../c/shared/shared.h"
+@@ -52,6 +50,8 @@
+ #define NUMNODES nodsin
+ /* serial output macros: */
+ #define CONNECTIVITY pconnectivity,pnods,pwidth
++#undef WRAPPER
++#define WRAPPER(modulename) extern "C" { int  NodeConnectivityModule(double** pconnectivity, int* pnods, int *pwidth, int* elementsin, int nelsin, int nodsin)
+ #endif
+ 
+ /* serial arg counts: */
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19715)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19716)
+@@ -8,7 +8,8 @@
+ 
+ bin_SCRIPTS = 
+ bin_SCRIPTS += ../TriMesh/TriMesh.js  \
+-			   ../NodeConnectivity/NodeConnectivity.js
++			   ../NodeConnectivity/NodeConnectivity.js\
++			   ../ElementConnectivity/ElementConnectivity.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+@@ -72,7 +73,9 @@
+ endif
+ 
+ IssmModule_SOURCES = ../TriMesh/TriMesh.cpp \
+-					 ../NodeConnectivity/NodeConnectivity.cpp
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
++					 ../NodeConnectivity/NodeConnectivity.cpp\
++					 ../ElementConnectivity/ElementConnectivity.cpp
++
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.js	(revision 19716)
+@@ -0,0 +1,45 @@
++function ElementConnectivity(elementsin,nodeconnectivityin){
++/*ElementConnectivity 
++	   usage: var md.mesh.elementconnectivity= ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++*/
++
++	//Dynamic allocations: {{{
++	//Retrieve elements and allocate on Module heap: 
++	
++	//input
++	nel=elementsin.length;
++	nods=nodeconnectivityin.length;
++	width=nodeconnectivityin[0].length;
++	
++	var delements=new Int32Array(MatrixToList(elementsin)); var nelements=delements.length * delements.BYTES_PER_ELEMENT;
++	var delementsPtr= Module._malloc(nelements); var elementsHeap = new Uint8Array(Module.HEAPU8.buffer,delementsPtr,nelements);
++	elementsHeap.set(new Uint8Array(delements.buffer)); var elements=elementsHeap.byteOffset;
++	
++	var dnodeconnectivity=new Int32Array(MatrixToList(nodeconnectivityin)); var nnodeconnectivity=dnodeconnectivity.length * dnodeconnectivity.BYTES_PER_ELEMENT;
++	var dnodeconnectivityPtr= Module._malloc(nnodeconnectivity); var nodeconnectivityHeap = new Uint8Array(Module.HEAPU8.buffer,dnodeconnectivityPtr,nnodeconnectivity);
++	nodeconnectivityHeap.set(new Uint8Array(dnodeconnectivity.buffer)); var nodeconnectivity=nodeconnectivityHeap.byteOffset;
++
++	//output
++	var connectivitylinear,connectivity;
++	var pconnectivity= Module._malloc(4); 
++	//}}}
++
++	//Declare ElementConnectivity module: 
++	ElementConnectivityModule = Module.cwrap('ElementConnectivityModule','number',['number','number','number','number','number','number']);
++	
++	//Call ElementConnectivity module: 
++	ElementConnectivityModule(pconnectivity,elements, nodeconnectivity, nel, nods, width);
++	
++	/*Dynamic copying from heap: {{{*/
++	//recover mesh: 
++	var connectivityptr = Module.getValue(pconnectivity,'i32');
++	connectivitylinear = Module.HEAPF64.slice(connectivityptr /8, connectivityptr/8 + nel*3);
++	connectivity = ListToMatrix(connectivitylinear,3);
++	/*}}}*/
++
++	/*Free ressources: */
++	Module._free(pconnectivity); 
++	Module._free(connectivitylinear); 
++
++	return connectivity;
++}
+Index: ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h	(revision 19715)
++++ ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h	(revision 19716)
+@@ -44,6 +44,16 @@
+ #define ELEMENTCONNECTIVITY output,0
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define ELEMENTS         elementsin, nelsin,3
++#define NODECONNECTIVITY nodeconnectivityin, nodsin, widthin
++/* serial output macros: */
++#define ELEMENTCONNECTIVITY pelementconnectivity,NULL,NULL
++#undef WRAPPER
++#define WRAPPER(modulename) extern "C" { int  ElementConnectivityModule(double** pelementconnectivity, int* elementsin, int* nodeconnectivityin, int nelsin, int nodsin, int widthin)
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19715)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19716)
+@@ -70,6 +70,8 @@
+ #define Y                 py,pnods
+ #define SEGMENTS          psegments,pnsegs
+ #define SEGMENTMARKERLIST psegmentmarkers,pnsegs
++#undef WRAPPER
++#define WRAPPER(modulename) extern "C" { int  TriMeshModule(double** pindex, double** px, double** py, int* pnel, int* pnods, double** psegments, double** psegmentmarkers, int* pnsegs, double* domainx, double* domainy, int domainnods, double areain)
+ #define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriMeshModule.js, not other modules!
+ #endif
+ 
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19715)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp	(revision 19716)
+@@ -13,9 +13,8 @@
+ 	_printf_("      area is the maximum area desired for any element of the resulting mesh, \n");
+ 	_printf_("\n");
+ }/*}}}*/
+-WRAPPER(TriMesh,double** pindex, double** px, double** py, int* pnel, int* pnods, double** psegments, double** psegmentmarkers, int* pnsegs, double* domainx, double* domainy, int domainnods, double areain){
++WRAPPER(TriMesh){
+ 	
+-
+ 	/*intermediary: */
+ 	double    area;
+ 	Contours *domain = NULL;
+Index: ../trunk-jpl/src/m/mesh/triangle.js
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.js	(revision 19715)
++++ ../trunk-jpl/src/m/mesh/triangle.js	(revision 19716)
+@@ -53,6 +53,6 @@
+ 
+ 	//Now, build the connectivity tables for this mesh.
+ 	md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
+-	//md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);	
++	md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);	
+ 
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19716-19717.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19716-19717.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19716-19717.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19716)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h	(revision 19717)
+@@ -50,7 +50,6 @@
+ #define NUMNODES nodsin
+ /* serial output macros: */
+ #define CONNECTIVITY pconnectivity,pnods,pwidth
+-#undef WRAPPER
+ #define WRAPPER(modulename) extern "C" { int  NodeConnectivityModule(double** pconnectivity, int* pnods, int *pwidth, int* elementsin, int nelsin, int nodsin)
+ #endif
+ 
+Index: ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h	(revision 19716)
++++ ../trunk-jpl/src/wrappers/javascript/include/wrapper_macros.h	(revision 19717)
+@@ -33,9 +33,6 @@
+ 	return 0;\
+ 	}
+ /*}}}*/
+-/* WRAPPER {{{*/
+-#define WRAPPER(modulename,...) extern "C" { int  modulename##Module(__VA_ARGS__) 
+-/*}}}*/
+ /* CHECKARGUMENTS {{{*/
+ #define CHECKARGUMENTS(NLHS,NRHS,functionpointer)  //do nothing, we are not creating a dynamic library here!
+ /*}}}*/
+Index: ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h	(revision 19716)
++++ ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h	(revision 19717)
+@@ -50,7 +50,6 @@
+ #define NODECONNECTIVITY nodeconnectivityin, nodsin, widthin
+ /* serial output macros: */
+ #define ELEMENTCONNECTIVITY pelementconnectivity,NULL,NULL
+-#undef WRAPPER
+ #define WRAPPER(modulename) extern "C" { int  ElementConnectivityModule(double** pelementconnectivity, int* elementsin, int* nodeconnectivityin, int nelsin, int nodsin, int widthin)
+ #endif
+ 
+Index: ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19716)
++++ ../trunk-jpl/src/wrappers/TriMesh/TriMesh.h	(revision 19717)
+@@ -70,7 +70,6 @@
+ #define Y                 py,pnods
+ #define SEGMENTS          psegments,pnsegs
+ #define SEGMENTMARKERLIST psegmentmarkers,pnsegs
+-#undef WRAPPER
+ #define WRAPPER(modulename) extern "C" { int  TriMeshModule(double** pindex, double** px, double** py, int* pnel, int* pnods, double** psegments, double** psegmentmarkers, int* pnsegs, double* domainx, double* domainy, int domainnods, double areain)
+ #define _DO_NOT_LOAD_GLOBALS_//we only load globals for TriMeshModule.js, not other modules!
+ #endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19717-19718.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19717-19718.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19717-19718.diff	(revision 20498)
@@ -0,0 +1,133 @@
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.js
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 0)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 19718)
+@@ -0,0 +1,70 @@
++function parameterize(md){
++
++	//Geometry
++	var hmin=300;
++	var hmax=1000;
++	var ymin=ArrayMin(md.mesh.y);
++	var ymax=ArrayMax(md.mesh.y);
++	var xmin=ArrayMin(md.mesh.x);
++	var xmax=ArrayMax(md.mesh.x);
++	
++	md.geometry.thickness=NewArrayFill(md.mesh.numberofvertices,0);
++	md.geometry.base=NewArrayFill(md.mesh.numberofvertices,0);
++	md.geometry.surface=NewArrayFill(md.mesh.numberofvertices,0);
++	md.geometry.bed=NewArrayFill(md.mesh.numberofvertices,0);
++
++	for(i=0;i<md.mesh.numberofvertices;i++){
++		md.geometry.thickness[i]=hmax+(hmin-hmax)*(md.mesh.y[i]-ymin)/(ymax-ymin)+0.1*(hmin-hmax)*(md.mesh.x[i]-xmin)/(xmax-xmin);
++		md.geometry.base[i]=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness[i];
++		md.geometry.surface[i]=md.geometry.base[i]+md.geometry.thickness[i];
++	}
++	
++	//Initial velocity 
++	x     = transpose(ncread('../Data/SquareShelfConstrained.nc','x'));
++	y     = transpose(ncread('../Data/SquareShelfConstrained.nc','y'));
++	vx    = transpose(ncread('../Data/SquareShelfConstrained.nc','vx'));
++	vy    = transpose(ncread('../Data/SquareShelfConstrained.nc','vy'));
++	index = transpose(ncread('../Data/SquareShelfConstrained.nc','index'));
++	md.initialization.vx=InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y);
++	md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y);
++	clear vx vy x y index;
++	md.initialization.vz=zeros(md.mesh.numberofvertices,1);
++	md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
++
++	//Materials
++	md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
++	md.materials.rheology_B=paterson(md.initialization.temperature);
++	md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
++
++	//Surface mass balance and basal melting
++	md.smb.mass_balance=10*ones(md.mesh.numberofvertices,1);
++	md.basalforcings.floatingice_melting_rate=5*ones(md.mesh.numberofvertices,1);
++	md.basalforcings.groundedice_melting_rate=5*ones(md.mesh.numberofvertices,1);
++
++	//Friction
++	md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
++	md.friction.coefficient(find(md.mask.groundedice_levelset<0.))=0.;
++	md.friction.p=ones(md.mesh.numberofelements,1);
++	md.friction.q=ones(md.mesh.numberofelements,1);
++
++	//Numerical parameters
++	md.stressbalance.viscosity_overshoot=0.0;
++	md.masstransport.stabilization=1;
++	md.thermal.stabilization=1;
++	md.verbose=verbose(0);
++	md.settings.waitonlock=30;
++	md.stressbalance.restol=0.05;
++	md.stressbalance.reltol=0.05;
++	md.steadystate.reltol=0.05;
++	md.stressbalance.abstol=NaN;
++	md.timestepping.time_step=1;
++	md.timestepping.final_time=3;
++
++	//Deal with boundary conditions:
++	md=SetIceShelfBC(md);
++
++	//Change name so that no tests have the same name
++	A=dbstack;
++	if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
++
++}
+
+Property changes on: ../trunk-jpl/test/Par/SquareShelfConstrained.js
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19717)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19718)
+@@ -1,7 +1,6 @@
+-<!DOCTYPE html>
++<!DOCTYPE html><!--{{{-->
+ <html>
+-<head><!--{{{-->
+-<title>ISSM Web APP &mdash; Beta</title>
++<head><title>ISSM Web APP &mdash; Beta</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
+ <script type="text/javascript" src="../Exp/Square.js"></script>
+@@ -10,22 +9,29 @@
+ <script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
+ <script type="text/javascript" src="../../src/m/array/ArrayOperations.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
++<script type="text/javascript" src="../../src/m/classes/geometry.js"></script>
++<script type="text/javascript" src="../../src/m/classes/constants.js"></script>
++<script type="text/javascript" src="../../src/m/classes/mask.js"></script>
++<script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
++<script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
++<script type="text/javascript" src="../Par/SquareShelfConstrained.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/TriMeshModule.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
++<script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <!-- Includes }}}-->
+-</head><!--}}}-->
+-<body> <!--{{{-->
++</head>
++<body> <script type="text/javascript" async><!--}}}-->
+ 
+-	<script type="text/javascript" async>
+ 	var md = new model();
+ 	triangle(md,square,50000); 
+-	md.mesh.disp();
++	setmask(md,'all','');
++	parameterize(md);
++	md.geometry.disp();
+ 
+ 
+-	</script>
+-
+-</body><!--}}}-->
+-</html>
++</script> <!--{{{-->
++</body> 
++</html><!--}}}-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19718-19719.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19718-19719.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19718-19719.diff	(revision 20498)
@@ -0,0 +1,441 @@
+Index: ../trunk-jpl/src/m/geometry/FlagElements.js
+===================================================================
+--- ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 0)
++++ ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 19719)
+@@ -0,0 +1,49 @@
++function FlagElements(md,region){
++//FLAGELEMENTS - flag the elements in an region
++//
++//   The region can be given as a string, or as a javascript array
++//
++//   Usage: 
++//      flag=FlagElements(md,region);
++//
++//   Example:
++//      flag=FlagElements(md,'all');
++//      flag=FlagElements(md,'');
++//      flag=FlagElements(md,domain);
++
++	//variables
++	var flag;
++	
++	if (typeof region == 'string'){
++		if (region === ''){
++			flag=NewArrayFill(md.mesh.numberofelements,0);
++		}
++		else if (region === 'all'){
++			flag=NewArrayFill(md.mesh.numberofelements,1);
++		}
++		else{
++			flag=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,region,'element',1);
++		}
++	}
++	else if(IsArray(region)){
++		if (region.length==md.mesh.numberofelements){
++			flag=region;
++		}
++		else if (region.length==md.mesh.numberofvertices){
++			var flag=NewArrayFill(md.mesh.numberofelements,0);
++			for (i=0;i<md.mesh.numberofelements;i++)
++				var sum=0;
++				for(j=0;j<md.mesh.elements[0].length;j++){
++					sum += region[md.mesh.element[i][j]-1];
++				}
++				if (sum==md.mesh.elements[0].length)flag[i]=1;
++		}
++		else{
++			console.error('Flaglist for region must be of same size as number of elements in model');
++		}
++	}
++	else{
++		console.error('Invalid region option');
++	}
++	return flag;
++}
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19718)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19719)
+@@ -4,31 +4,6 @@
+ //      mesh2d= new mesh2d();
+ 
+ function mesh2d () {
+-	//properties 
+-	// {{{
+-		this.x                           = NaN;
+-		this.y                           = NaN;
+-		this.elements                    = NaN;
+-		this.numberofelements            = 0;
+-		this.numberofvertices            = 0;
+-		this.numberofedges               = 0;
+-
+-		this.lat                         = NaN;
+-		this.long                        = NaN;
+-		this.epsg                        = 0;
+-
+-		this.vertexonboundary            = NaN;
+-
+-		this.edges                       = NaN;
+-		this.segments                    = NaN;
+-		this.segmentmarkers              = NaN;
+-		this.vertexconnectivity          = NaN;
+-		this.elementconnectivity         = NaN;
+-		this.average_vertex_connectivity = 0;
+-
+-		this.extractedvertices           = NaN;
+-		this.extractedelements           = NaN;
+-		//}}}
+ 	//methods 
+ 		this.setdefaultparameters = function () //{{{
+ 
+@@ -68,5 +43,32 @@
+ 			fielddisplay(this,"long","vertices longitude [degrees]");
+ 			fielddisplay(this,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)");
+ 		} //}}}
++	//properties 
++	// {{{
++		this.x                           = NaN;
++		this.y                           = NaN;
++		this.elements                    = NaN;
++		this.numberofelements            = 0;
++		this.numberofvertices            = 0;
++		this.numberofedges               = 0;
+ 
++		this.lat                         = NaN;
++		this.long                        = NaN;
++		this.epsg                        = 0;
++
++		this.vertexonboundary            = NaN;
++
++		this.edges                       = NaN;
++		this.segments                    = NaN;
++		this.segmentmarkers              = NaN;
++		this.vertexconnectivity          = NaN;
++		this.elementconnectivity         = NaN;
++		this.average_vertex_connectivity = 0;
++
++		this.extractedvertices           = NaN;
++		this.extractedelements           = NaN;
++
++		this.setdefaultparameters();
++		//}}}
++
+ }
+Index: ../trunk-jpl/src/m/classes/constants.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/constants.js	(revision 19719)
+@@ -0,0 +1,39 @@
++//CONSTANTS class definition
++//
++//   Usage:
++//      constants=constants();
++
++function constants() {
++	//methods 
++		this.setdefaultparameters = function (){ //{{{
++
++			//acceleration due to gravity (m/s^2)
++			this.g=9.81;
++
++			//Earth's rotation speed 
++			this.omega = 7.292*1e-5;
++
++			//converstion from year to seconds
++			this.yts=365*24*3600;
++
++			//the reference temperature for enthalpy model (cf Aschwanden)
++			this.referencetemperature=223.15;
++		}// }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   Constants parameters:")); 
++			
++			fielddisplay(this,'g','gravitational acceleration [m/s^2]');
++			fielddisplay(this,'omega','angular velocity of Earth [rad/s]');
++			fielddisplay(this,'yts','number of seconds in a year [s/yr]');
++			fielddisplay(this,'referencetemperature','reference temperature used in the enthalpy model [K]');
++
++		} //}}}
++	//properties 
++	// {{{
++		this.g                    = 0.;
++		this.omega                = 0.;
++		this.yts                  = 0.;
++		this.referencetemperature = 0.;
++		this.setdefaultparameters();
++		//}}}
++}
+Index: ../trunk-jpl/src/m/classes/mask.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/mask.js	(revision 19719)
+@@ -0,0 +1,22 @@
++//MASK class definition
++//
++//   Usage:
++//      mask= new mask();
++
++function mask () {
++	//properties 
++	// {{{
++		this.groundedice_levelset                           = NaN;
++		this.ice_levelset                           = NaN;
++		//}}}
++	//methods 
++		this.setdefaultparameters = function (){ //{{{
++		} // }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   mask:")); 
++
++			fielddisplay(this,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");
++			fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
++		} //}}}
++
++}
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19719)
+@@ -0,0 +1,28 @@
++//GEOMETRY class definition
++//
++//   Usage:
++//      geometry=geometry();
++
++function geometry(){
++	//methods 
++		this.setdefaultparameters = function (){ //{{{
++		}// }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   Geometry parameters:"));
++
++			fielddisplay(this,'surface','ice upper surface elevation [m]');
++			fielddisplay(this,'thickness','ice thickness [m]');
++			fielddisplay(this,'base','ice base elevation [m]');
++			fielddisplay(this,'bed','bed elevation [m]');
++		} //}}}
++	//properties 
++	// {{{
++		this.surface           = NaN;
++		this.thickness         = NaN;
++		this.base              = NaN;
++		this.bed               = NaN;
++		this.hydrostatic_ratio = NaN;
++		this.setdefaultparameters();
++		//}}}
++
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19718)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19719)
+@@ -48,9 +48,9 @@
+ 
+ 			//initialize subclasses
+ 			this.mesh             = new mesh2d();
+-//			this.mask             = mask();
+-//			this.constants        = constants();
+-//			this.geometry         = geometry();
++			this.mask             = new mask();
++			this.constants        = new constants();
++			this.geometry         = new geometry();
+ //			this.initialization   = initialization();
+ //			this.smb              = SMBforcing();
+ //			this.basalforcings    = basalforcings();
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19718)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19719)
+@@ -1,70 +1,78 @@
+-function md=setmask(md,floatingicename,groundedicename,varargin)
+-%SETMASK - establish boundaries between grounded and floating ice.
+-%
+-%   By default, ice is considered grounded. The contour floatingicename defines nodes 
+-%   for which ice is floating. The contour groundedicename defines nodes inside an floatingice, 
+-%   that are grounded (ie: ice rises, islands, etc ...)
+-%   All input files are in the Argus format (extension .exp).
+-%
+-%   Usage:
+-%      md=setmask(md,floatingicename,groundedicename)
+-%
+-%   Examples:
+-%      md=setmask(md,'all','');
+-%      md=setmask(md,'Iceshelves.exp','Islands.exp');
++function setmask(md,floatingice,groundedice){
++//SETMASK - establish boundaries between grounded and floating ice.
++//
++//   By default, ice is considered grounded. The contour floatingice defines nodes 
++//   for which ice is floating. The contour groundedice defines nodes inside a floatingice, 
++//   that are grounded (ie: ice rises, islands, etc ...)
++//   All inputs are either strings or actually javascript arrays (included in the html file)
++//   For example: 
++//
++//	   floatingice[0]['x']=[0,0,0,1];
++//	   floatingice[0]['y']=[0,1,1,1];
++//	   floatingice[1]['x']=[0,0.5,0.5,.5];
++//	   floatingice[1]['y']=[0,.5,.5,.5];
++//
++//
++//   Usage:
++//      md=setmask(md,floatingice,groundedice)
++//
++//   Examples:
++//      md=setmask(md,'all','');
++//      md=setmask(md,iceshelves,islands);
+ 
+-%some checks on list of arguments
+-if ((mod(nargin,2)==0) | (nargout~=1)),
+-	help mask
+-	error('mask error message');
+-end
++	//variables: 
++	var  icedomain=[];
++	
++	//some checks on list of arguments
++	if (!((arguments.length==3) | (arguments.length==5))){
++		console.error('mask error message: wrong usage.');
++	}
+ 
+-if(nargin>3)
+-	if(varargin(1)=='icedomain'),
+-		icedomainname=varargin(2);	
+-	else
+-		error('mask error message: wrong field specified. Only icedomain allowed for now.');
+-	end
+-	if ~exist(icedomainname),
+-        error(['setmask error message: file ' icedomainname ' not found!']);
+-	end
+-end
++	if(arguments.length>3){
++		if (arguments[3]=='icedomain'){
++			icedomain=arguments[4];
++		}
++		else{
++			console.error('mask error message: wrong field specified. Only icedomain allowed for now.');
++		}
++		if (IsArray(icedomain)){
++			console.error('setmask error message: icedomain should be an array!');
++		}
++	}
++	
++	//Get assigned fields
++	x=md.mesh.x;
++	y=md.mesh.y;
++	elements=md.mesh.elements;
+ 
+-%Get assigned fields
+-x=md.mesh.x;
+-y=md.mesh.y;
+-elements=md.mesh.elements;
++	//Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. 
++	//Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. 
++	elementonfloatingice=FlagElements(md,floatingice);
++	elementongroundedice=FlagElements(md,groundedice);
+ 
+-%Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. {{{
+-elementonfloatingice=FlagElements(md,floatingicename);
+-elementongroundedice=FlagElements(md,groundedicename);
++	//Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 
++	//arrays come from domain outlines that can intersect one another: 
++	elementonfloatingice=ArrayAnd(elementonfloatingice,ArrayNot(elementongroundedice));
++	elementongroundedice=ArrayNot(elementonfloatingice);
+ 
+-%Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 
+-%arrays come from domain outlines that can intersect one another: 
+-elementonfloatingice=double((elementonfloatingice & ~elementongroundedice));
+-elementongroundedice=double(~elementonfloatingice);
++	//the order here is important. we choose vertexongroundedice as default on the grounding line.
++	vertexonfloatingice=NewArrayFill(md.mesh.numberofvertices,0);
++	vertexongroundedice=NewArrayFill(md.mesh.numberofvertices,0);
++	pos=ArrayFind(elementongroundedice,1); for (i=0;i<pos.length;i++)for(j=0;j<3;j++) vertexongroundedice[md.mesh.elements[i,j]-1]=1;
++	pos=ArrayFind(vertexongroundedice,0); for (i=0;i<pos.length;i++)vertexonfloatingice[i]=1;
+ 
+-%the order here is important. we choose vertexongroundedice as default on the grounding line.
+-vertexonfloatingice=zeros(md.mesh.numberofvertices,1);
+-vertexongroundedice=zeros(md.mesh.numberofvertices,1);
+-vertexongroundedice(md.mesh.elements(find(elementongroundedice),:))=1;
+-vertexonfloatingice(find(~vertexongroundedice))=1;
+-%}}}
++	//level sets
++	groundedice_levelset=vertexongroundedice;
++	pos=ArrayFind(vertexongroundedice,0);for(i=0;i<pos.length;i++) groundedice_levelset[i]=-1;
++	md.mask.groundedice_levelset=groundedice_levelset;
+ 
+-%level sets
+-md.mask.groundedice_levelset=vertexongroundedice;
+-md.mask.groundedice_levelset(find(vertexongroundedice==0.))=-1.;
+-
+-if(nargin>3)
+-	if(varargin(1)=='icedomain')
+-		md.mask.ice_levelset = 1.*ones(md.mesh.numberofvertices,1);
+-		%use contourtomesh to set ice values inside ice domain
+-		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomainname,'node',1);
+-		pos=find(vertexinsideicedomain==1.);
+-		md.mask.ice_levelset(pos) = -1.;
+-	end
+-else
+-	md.mask.ice_levelset = -1.*ones(md.mesh.numberofvertices,1);
+-end
+-
+-
++	if(arguments.length>3){
++		md.mask.ice_levelset = NewArrayFill(md.mesh.numberofvertices,1.0);
++		//use contourtomesh to set ice values inside ice domain
++		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomain,'node',1);
++		pos=ArrayFind(vertexinsideicedomain,1.0);for(i=0;i<pos.length;i++) md.mask.ice_levelset[pos]=-1;
++	}
++	else{
++		md.mask.ice_levelset = NewArrayFill(md.mesh.numberofvertices,-1);
++	}
++}
+Index: ../trunk-jpl/src/m/array/ArrayOperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19718)
++++ ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19719)
+@@ -54,3 +54,46 @@
+ 		
+ 	return list;
+ } //}}}
++function IsArray(object) { //{{{
++
++	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
++		return 1;
++	}
++	else return 0;
++
++} //}}}
++function ArrayNot(array) { //{{{
++
++	var notarray=array;
++	for (i=0;i<array.length;i++)notarray[i]=-array[i];
++	return notarray;
++} //}}}
++function ArrayAnd(array1,array2) { //{{{
++
++	var array=array1;
++	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
++	return array;
++} //}}}
++function NewArrayFill(size,value) { //{{{
++
++	return new Array(size).fill(value);
++} //}}}
++function ArrayFind(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]==value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]==value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19719-19720.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19719-19720.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19719-19720.diff	(revision 20498)
@@ -0,0 +1,896 @@
+Index: ../trunk-jpl/m4/analyses.m4
+===================================================================
+--- ../trunk-jpl/m4/analyses.m4	(revision 19719)
++++ ../trunk-jpl/m4/analyses.m4	(revision 19720)
+@@ -477,6 +477,32 @@
+ AC_MSG_RESULT($HAVE_HYDROLOGYDCEFFICIENT)
+ 
+ dnl }}}
++dnl with-HydrologySommers{{{
++
++AC_ARG_WITH([HydrologySommers],
++
++	AS_HELP_STRING([--with-HydrologySommers = YES], [compile with HydrologySommers capabilities (default is yes)]),
++
++	[HYDROLOGYSOMMERS=$withval],[HYDROLOGYSOMMERS=yes])
++
++AC_MSG_CHECKING(for HydrologySommers capability compilation)
++
++
++HAVE_HYDROLOGYSOMMERS=no 
++
++if test "x$HYDROLOGYSOMMERS" = "xyes"; then
++
++	HAVE_HYDROLOGYSOMMERS=yes
++
++	AC_DEFINE([_HAVE_HYDROLOGYSOMMERS_],[1],[with HydrologySommers capability])
++
++fi
++
++AM_CONDITIONAL([HYDROLOGYSOMMERS], [test x$HAVE_HYDROLOGYSOMMERS = xyes])
++
++AC_MSG_RESULT($HAVE_HYDROLOGYSOMMERS)
++
++dnl }}}
+ dnl with-Melting{{{
+ 
+ AC_ARG_WITH([Melting],
+Index: ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19720)
+@@ -67,6 +67,9 @@
+ 		#ifdef _HAVE_HYDROLOGYDCEFFICIENT_
+ 		case HydrologyDCEfficientAnalysisEnum : return new HydrologyDCEfficientAnalysis();
+ 		#endif
++		#ifdef _HAVE_HYDROLOGYSOMMERS_
++		case HydrologySommersAnalysisEnum : return new HydrologySommersAnalysis();
++		#endif
+ 		#ifdef _HAVE_MELTING_
+ 		case MeltingAnalysisEnum : return new MeltingAnalysis();
+ 		#endif
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 0)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19720)
+@@ -0,0 +1,232 @@
++#include "./HydrologySommersAnalysis.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++
++/*Model processing*/
++void HydrologySommersAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
++
++	/*retrieve some parameters: */
++	int hydrology_model;
++	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
++
++	if(hydrology_model!=HydrologysommersEnum) return;
++
++	IoModelToConstraintsx(constraints,iomodel,HydrologySpcheadEnum,HydrologySommersAnalysisEnum,P1Enum);
++
++}/*}}}*/
++void HydrologySommersAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
++	/*No loads*/
++}/*}}}*/
++void HydrologySommersAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
++
++	/*Fetch parameters: */
++	int  hydrology_model;
++	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
++
++	/*Now, do we really want Sommers?*/
++	if(hydrology_model!=HydrologysommersEnum) return;
++
++	if(iomodel->domaintype==Domain3DEnum) iomodel->FetchData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum);
++	::CreateNodes(nodes,iomodel,HydrologySommersAnalysisEnum,P1Enum);
++	iomodel->DeleteData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum);
++}/*}}}*/
++int  HydrologySommersAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
++	return 1;
++}/*}}}*/
++void HydrologySommersAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
++
++	/*Fetch data needed: */
++	int    hydrology_model;
++	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
++
++	/*Now, do we really want Sommers?*/
++	if(hydrology_model!=HydrologysommersEnum) return;
++
++	/*Update elements: */
++	int counter=0;
++	for(int i=0;i<iomodel->numberofelements;i++){
++		if(iomodel->my_elements[i]){
++			Element* element=(Element*)elements->GetObjectByOffset(counter);
++			element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum);
++			counter++;
++		}
++	}
++
++	iomodel->FetchDataToInput(elements,ThicknessEnum);
++	iomodel->FetchDataToInput(elements,BaseEnum);
++	if(iomodel->domaintype!=Domain2DhorizontalEnum){
++		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
++		iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
++	}
++	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
++	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
++	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
++	iomodel->FetchDataToInput(elements,HydrologyHeadEnum);
++	iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum);
++	iomodel->FetchDataToInput(elements,HydrologyEnglacialInputEnum);
++	iomodel->FetchDataToInput(elements,HydrologyBumpSpacingEnum);
++	iomodel->FetchDataToInput(elements,HydrologyReynoldsEnum);
++}/*}}}*/
++void HydrologySommersAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
++
++	/*retrieve some parameters: */
++	int  hydrology_model;
++	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
++
++	/*Now, do we really want Sommers?*/
++	if(hydrology_model!=HydrologysommersEnum) return;
++
++	parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
++}/*}}}*/
++
++/*Finite Element Analysis*/
++void           HydrologySommersAnalysis::Core(FemModel* femmodel){/*{{{*/
++	_error_("not implemented");
++}/*}}}*/
++ElementVector* HydrologySommersAnalysis::CreateDVector(Element* element){/*{{{*/
++	/*Default, return NULL*/
++	return NULL;
++}/*}}}*/
++ElementMatrix* HydrologySommersAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
++_error_("Not implemented");
++}/*}}}*/
++ElementMatrix* HydrologySommersAnalysis::CreateKMatrix(Element* element){/*{{{*/
++
++	/*Intermediaries */
++	IssmDouble conductivity;
++	IssmDouble Jdet;
++	IssmDouble gap,reynolds;
++	IssmDouble* xyz_list = NULL;
++
++	/*Hard coded parameters*/
++	IssmDouble omega = 0.001;    // parameter controlling transition to nonlinear resistance in basal system (dimensionless)
++	IssmDouble nu    = 1.787e-6; // kinematic water viscosity m^2/s
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Initialize Element vector and other vectors*/
++	ElementMatrix* Ke     = element->NewElementMatrix();
++	IssmDouble*    dbasis = xNew<IssmDouble>(2*numnodes);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++	IssmDouble  g = element->GetMaterialParameter(ConstantsGEnum);
++	Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum);  _assert_(reynolds_input);
++	Input* gap_input      = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
++
++		/*Compute conductivity*/
++		reynolds_input->GetInputValue(&reynolds,gauss);
++		gap_input->GetInputValue(&gap,gauss);
++		conductivity = pow(gap,3)*g/(12.*nu*(1+omega*reynolds));
++
++		for(int i=0;i<numnodes;i++){
++			for(int j=0;j<numnodes;j++){
++				Ke->values[i*numnodes+j] += -conductivity*gauss->weight*Jdet*(dbasis[0*numnodes+i]*dbasis[0*numnodes+j] + dbasis[1*numnodes+i]*dbasis[1*numnodes+j]);
++			}
++		}
++
++
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(dbasis);
++	delete gauss;
++	return Ke;
++}/*}}}*/
++ElementVector* HydrologySommersAnalysis::CreatePVector(Element* element){/*{{{*/
++	_error_("STOP");
++
++	/*Skip if water or ice shelf element*/
++	if(element->IsFloating()) return NULL;
++
++	/*Intermediaries */
++	IssmDouble  Jdet,dt;
++	IssmDouble  mb,oldw;
++	IssmDouble* xyz_list = NULL;
++
++	/*Fetch number of nodes and dof for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Initialize Element vector and other vectors*/
++	ElementVector* pe    = element->NewElementVector();
++	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++	element->FindParam(&dt,TimesteppingTimeStepEnum);
++	Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
++	Input* oldw_input = element->GetInput(WaterColumnOldEnum);                      _assert_(oldw_input);
++
++	/*Initialize mb_correction to 0, do not forget!:*/
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		element->NodalFunctions(basis,gauss);
++
++		mb_input->GetInputValue(&mb,gauss);
++		oldw_input->GetInputValue(&oldw,gauss);
++
++		if(dt!=0.){
++			for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(oldw+dt*mb)*basis[i];
++		}
++		else{
++			for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*mb*basis[i];
++		}
++	}
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	xDelete<IssmDouble>(basis);
++	delete gauss;
++	return pe;
++}/*}}}*/
++void           HydrologySommersAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
++	element->GetSolutionFromInputsOneDof(solution,HydrologyHeadEnum);
++}/*}}}*/
++void           HydrologySommersAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
++	_error_("Not implemented yet");
++}/*}}}*/
++void           HydrologySommersAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
++
++	/*Intermediary*/
++	int* doflist = NULL;
++
++	/*Fetch number of nodes for this finite element*/
++	int numnodes = element->GetNumberOfNodes();
++
++	/*Fetch dof list and allocate solution vector*/
++	element->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
++	IssmDouble* values = xNew<IssmDouble>(numnodes);
++
++	/*Use the dof list to index into the solution vector: */
++	for(int i=0;i<numnodes;i++){
++		values[i]=solution[doflist[i]];
++		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
++	}
++
++	/*Add input to the element: */
++	element->AddInput(HydrologyHeadEnum,values,element->GetElementType());
++
++	/*Free ressources:*/
++	xDelete<IssmDouble>(values);
++	xDelete<int>(doflist);
++}/*}}}*/
++void           HydrologySommersAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
++	/*Default, do nothing*/
++	return;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 0)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 19720)
+@@ -0,0 +1,33 @@
++/*! \file HydrologySommersAnalysis.h 
++ *  \brief: header file for generic external result object
++ */
++
++#ifndef _HydrologySommersAnalysis_
++#define _HydrologySommersAnalysis_
++
++/*Headers*/
++#include "./Analysis.h"
++
++class HydrologySommersAnalysis: public Analysis{
++
++	public:
++		/*Model processing*/
++		void CreateConstraints(Constraints* constraints,IoModel* iomodel);
++		void CreateLoads(Loads* loads, IoModel* iomodel);
++		void CreateNodes(Nodes* nodes,IoModel* iomodel);
++		int  DofsPerNode(int** doflist,int domaintype,int approximation);
++		void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
++		void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
++
++		/*Finite element Analysis*/
++		void           Core(FemModel* femmodel);
++		ElementVector* CreateDVector(Element* element);
++		ElementMatrix* CreateJacobianMatrix(Element* element);
++		ElementMatrix* CreateKMatrix(Element* element);
++		ElementVector* CreatePVector(Element* element);
++		void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
++		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
++		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
++		void           UpdateConstraints(FemModel* femmodel);
++};
++#endif
+Index: ../trunk-jpl/src/c/analyses/analyses.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/analyses.h	(revision 19719)
++++ ../trunk-jpl/src/c/analyses/analyses.h	(revision 19720)
+@@ -26,6 +26,7 @@
+ #include "./HydrologyDCEfficientAnalysis.h"
+ #include "./HydrologyDCInefficientAnalysis.h"
+ #include "./HydrologyShreveAnalysis.h"
++#include "./HydrologySommersAnalysis.h"
+ #include "./LevelsetAnalysis.h"
+ #include "./LsfReinitializationAnalysis.h"
+ #include "./MasstransportAnalysis.h"
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19719)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19720)
+@@ -155,6 +155,14 @@
+ 	HydrologySedimentEnum,
+ 	HydrologyEfficientEnum,
+ 	HydrologySedimentKmaxEnum,
++	HydrologysommersEnum,
++	HydrologyHeadEnum,
++	HydrologyGapHeightEnum,
++	HydrologyBumpSpacingEnum,
++	HydrologyBumpHeightEnum,
++	HydrologyEnglacialInputEnum,
++	HydrologyReynoldsEnum,
++	HydrologySpcheadEnum,
+ 	IndependentObjectEnum,
+ 	InversionControlParametersEnum,
+ 	InversionControlScalingFactorsEnum,
+@@ -480,6 +488,7 @@
+ 	HydrologyShreveAnalysisEnum,
+ 	HydrologyDCInefficientAnalysisEnum,
+ 	HydrologyDCEfficientAnalysisEnum,
++	HydrologySommersAnalysisEnum,
+ 	HydrologySolutionEnum,
+ 	MeltingAnalysisEnum,
+ 	MasstransportAnalysisEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19720)
+@@ -161,6 +161,14 @@
+ 		case HydrologySedimentEnum : return "HydrologySediment";
+ 		case HydrologyEfficientEnum : return "HydrologyEfficient";
+ 		case HydrologySedimentKmaxEnum : return "HydrologySedimentKmax";
++		case HydrologysommersEnum : return "Hydrologysommers";
++		case HydrologyHeadEnum : return "HydrologyHead";
++		case HydrologyGapHeightEnum : return "HydrologyGapHeight";
++		case HydrologyBumpSpacingEnum : return "HydrologyBumpSpacing";
++		case HydrologyBumpHeightEnum : return "HydrologyBumpHeight";
++		case HydrologyEnglacialInputEnum : return "HydrologyEnglacialInput";
++		case HydrologyReynoldsEnum : return "HydrologyReynolds";
++		case HydrologySpcheadEnum : return "HydrologySpchead";
+ 		case IndependentObjectEnum : return "IndependentObject";
+ 		case InversionControlParametersEnum : return "InversionControlParameters";
+ 		case InversionControlScalingFactorsEnum : return "InversionControlScalingFactors";
+@@ -478,6 +486,7 @@
+ 		case HydrologyShreveAnalysisEnum : return "HydrologyShreveAnalysis";
+ 		case HydrologyDCInefficientAnalysisEnum : return "HydrologyDCInefficientAnalysis";
+ 		case HydrologyDCEfficientAnalysisEnum : return "HydrologyDCEfficientAnalysis";
++		case HydrologySommersAnalysisEnum : return "HydrologySommersAnalysis";
+ 		case HydrologySolutionEnum : return "HydrologySolution";
+ 		case MeltingAnalysisEnum : return "MeltingAnalysis";
+ 		case MasstransportAnalysisEnum : return "MasstransportAnalysis";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19720)
+@@ -164,6 +164,14 @@
+ 	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
+ 	      else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
+ 	      else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
++	      else if (strcmp(name,"Hydrologysommers")==0) return HydrologysommersEnum;
++	      else if (strcmp(name,"HydrologyHead")==0) return HydrologyHeadEnum;
++	      else if (strcmp(name,"HydrologyGapHeight")==0) return HydrologyGapHeightEnum;
++	      else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
++	      else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
++	      else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
++	      else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
++	      else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
+ 	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
+ 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
+ 	      else if (strcmp(name,"InversionControlScalingFactors")==0) return InversionControlScalingFactorsEnum;
+@@ -251,7 +259,10 @@
+ 	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+ 	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+ 	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+-	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
++         else stage=3;
++   }
++   if(stage==3){
++	      if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
+ 	      else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
+ 	      else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
+ 	      else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;
+@@ -259,10 +270,7 @@
+ 	      else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
+ 	      else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
+ 	      else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
+-         else stage=3;
+-   }
+-   if(stage==3){
+-	      if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
++	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+ 	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+ 	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
+@@ -374,7 +382,10 @@
+ 	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+ 	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
+ 	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+-	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+ 	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
+ 	      else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
+ 	      else if (strcmp(name,"SmbC")==0) return SmbCEnum;
+@@ -382,10 +393,7 @@
+ 	      else if (strcmp(name,"SmbVz")==0) return SmbVzEnum;
+ 	      else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
+ 	      else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
++	      else if (strcmp(name,"SmbAIdx")==0) return SmbAIdxEnum;
+ 	      else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
+ 	      else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
+ 	      else if (strcmp(name,"SmbZTop")==0) return SmbZTopEnum;
+@@ -487,6 +495,7 @@
+ 	      else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
++	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+ 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+@@ -496,7 +505,10 @@
+ 	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
+ 	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+ 	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
+-	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
+ 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
+ 	      else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
+ 	      else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
+@@ -505,10 +517,7 @@
+ 	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
+ 	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
+ 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
++	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
+ 	      else if (strcmp(name,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
+ 	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
+ 	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
+@@ -619,7 +628,10 @@
+ 	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
+ 	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
+ 	      else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
+-	      else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
+ 	      else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
+ 	      else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
+ 	      else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
+@@ -628,10 +640,7 @@
+ 	      else if (strcmp(name,"Fill")==0) return FillEnum;
+ 	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
+ 	      else if (strcmp(name,"Friction")==0) return FrictionEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"Internal")==0) return InternalEnum;
++	      else if (strcmp(name,"Internal")==0) return InternalEnum;
+ 	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
+ 	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
+ 	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
+@@ -742,7 +751,10 @@
+ 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
+-	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+ 	      else if (strcmp(name,"J")==0) return JEnum;
+ 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
+ 	      else if (strcmp(name,"Step")==0) return StepEnum;
+@@ -751,10 +763,7 @@
+ 	      else if (strcmp(name,"Outputdefinition")==0) return OutputdefinitionEnum;
+ 	      else if (strcmp(name,"Outputdefinition1")==0) return Outputdefinition1Enum;
+ 	      else if (strcmp(name,"Outputdefinition2")==0) return Outputdefinition2Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
++	      else if (strcmp(name,"Outputdefinition3")==0) return Outputdefinition3Enum;
+ 	      else if (strcmp(name,"Outputdefinition4")==0) return Outputdefinition4Enum;
+ 	      else if (strcmp(name,"Outputdefinition5")==0) return Outputdefinition5Enum;
+ 	      else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
+@@ -865,7 +874,10 @@
+ 	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+ 	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
+ 	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
+-	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
+ 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
+ 	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
+ 	      else if (strcmp(name,"VxObs")==0) return VxObsEnum;
+@@ -874,10 +886,7 @@
+ 	      else if (strcmp(name,"WeightsVyObs")==0) return WeightsVyObsEnum;
+ 	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
+ 	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"MinVx")==0) return MinVxEnum;
++	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
+ 	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
+ 	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
+ 	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19719)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19720)
+@@ -390,6 +390,9 @@
+ if HYDROLOGYSHREVE
+ issm_sources += ./analyses/HydrologyShreveAnalysis.cpp
+ endif
++if HYDROLOGYSOMMERS
++issm_sources += ./analyses/HydrologySommersAnalysis.cpp
++endif
+ if HYDROLOGYDCINEFFICIENT
+ issm_sources += ./analyses/HydrologyDCInefficientAnalysis.cpp
+ endif
+Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19720)
+@@ -78,5 +78,25 @@
+ 			OutputResultsx(femmodel);
+ 		}
+ 	}
++
++	else if (hydrology_model==HydrologysommersEnum){
++		if(VerboseSolution()) _printf0_("   computing water head\n");
++		femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);
++		solutionsequence_nonlinear(femmodel,modify_loads);
++		
++		if(save_results){
++			if(VerboseSolution()) _printf0_("   saving results \n");
++			int outputs[2] = {HydrologyHeadEnum,HydrologyGapHeightEnum};
++			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2);
++			
++			/*unload results*/
++			if(VerboseSolution()) _printf0_("   saving temporary results\n");
++			OutputResultsx(femmodel);
++		}
++	}
++
++	else{
++		_error_("Hydrology model "<< EnumToStringx(hydrology_model) <<" not supported yet");
++	}
+ }
+ 
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19720)
+@@ -147,6 +147,9 @@
+ 			else if(hydrology_model==HydrologyshreveEnum){
+ 				/*Nothing to add*/
+ 			}
++			else if(hydrology_model==HydrologysommersEnum){
++				/*Nothing to add*/
++			}
+ 			else{
+ 				_error_("Hydrology model "<<EnumToStringx(hydrology_model)<<" not supported yet");
+ 			}
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19719)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19720)
+@@ -585,6 +585,7 @@
+ 			}
+ 			if(ishydrology){
+ 				analyses_temp[numanalyses++]=HydrologyShreveAnalysisEnum;
++				analyses_temp[numanalyses++]=HydrologySommersAnalysisEnum;
+ 				analyses_temp[numanalyses++]=HydrologyDCInefficientAnalysisEnum;
+ 				analyses_temp[numanalyses++]=HydrologyDCEfficientAnalysisEnum;
+ 				analyses_temp[numanalyses++]=L2ProjectionEPLAnalysisEnum;
+Index: ../trunk-jpl/src/m/classes/hydrologysommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19720)
+@@ -0,0 +1,71 @@
++%HYDROLOGYSOMMERS class definition
++%
++%   Usage:
++%      hydrologysommers=hydrologysommers();
++
++classdef hydrologysommers
++	properties (SetAccess=public) 
++		head            = NaN;
++		gap_height      = NaN;
++		bump_spacing    = NaN;
++		bump_height     = NaN;
++		englacial_input = NaN;
++		reynolds        = NaN;
++		spchead         = NaN;
++	end
++	methods
++		function self = extrude(self,md) % {{{
++		end % }}}
++		function self = hydrologysommers(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				case 1
++					self=structtoobj(self,varargin{1});
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			%Early return
++			if ~ismember(HydrologySommersAnalysisEnum(),analyses)
++				return;
++			end
++
++			md = checkfield(md,'fieldname','hydrology.head','size',[md.mesh.numberofvertices 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.gap_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.bump_spacing','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.bump_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'size',[md.mesh.numberofvertices 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.spchead','size',[md.mesh.numberofvertices 1]);
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   hydrologysommers solution parameters:'));
++			fielddisplay(self,'head','subglacial hydrology water head (m)');
++			fielddisplay(self,'gap_height','height of gap separating ice to bed (m)');
++			fielddisplay(self,'bump_spacing','characteristic bedrock bump spacing (m)');
++			fielddisplay(self,'bump_height','characteristic bedrock bump height (m)');
++			fielddisplay(self,'englacial_input','liquid water input from englacial to subglacial system (m/yr)');
++			fielddisplay(self,'reynolds','Reynolds'' number');
++			fielddisplay(self,'spchead','water head constraints (NaN means no constraint) (m)');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologysommersEnum(),'format','Integer');
++			WriteData(fid,'object',self,'class','hydrology','fieldname','head','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','gap_height','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','bump_spacing','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','bump_height','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','englacial_input','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','reynolds','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1);
++		end % }}}
++	end
++end
++
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19719)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19720)
+@@ -181,6 +181,11 @@
+ 			elseif isa(md.friction,'frictionweertman'),
+ 				md.friction.C=project2d(md,md.friction.C,1);
+ 				md.friction.m=project2d(md,md.friction.m,1);
++			elseif isa(md.friction,'frictionweertmantemp'),
++				md.friction.C=project2d(md,md.friction.C,1);
++				md.friction.m=project2d(md,md.friction.m,1);
++			else
++				disp('friction type not supported');
+ 	    end
+ 
+ 			%observations
+Index: ../trunk-jpl/src/m/enum/HydrologyEnglacialInputEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyEnglacialInputEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyEnglacialInputEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyEnglacialInputEnum()
++%HYDROLOGYENGLACIALINPUTENUM - Enum of HydrologyEnglacialInput
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyEnglacialInputEnum()
++
++macro=StringToEnum('HydrologyEnglacialInput');
+Index: ../trunk-jpl/src/m/enum/HydrologyGapHeightEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyGapHeightEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyGapHeightEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyGapHeightEnum()
++%HYDROLOGYGAPHEIGHTENUM - Enum of HydrologyGapHeight
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyGapHeightEnum()
++
++macro=StringToEnum('HydrologyGapHeight');
+Index: ../trunk-jpl/src/m/enum/HydrologysommersEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologysommersEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologysommersEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologysommersEnum()
++%HYDROLOGYSOMMERSENUM - Enum of Hydrologysommers
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologysommersEnum()
++
++macro=StringToEnum('Hydrologysommers');
+Index: ../trunk-jpl/src/m/enum/HydrologyBumpHeightEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyBumpHeightEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyBumpHeightEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyBumpHeightEnum()
++%HYDROLOGYBUMPHEIGHTENUM - Enum of HydrologyBumpHeight
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyBumpHeightEnum()
++
++macro=StringToEnum('HydrologyBumpHeight');
+Index: ../trunk-jpl/src/m/enum/HydrologyBumpSpacingEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyBumpSpacingEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyBumpSpacingEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyBumpSpacingEnum()
++%HYDROLOGYBUMPSPACINGENUM - Enum of HydrologyBumpSpacing
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyBumpSpacingEnum()
++
++macro=StringToEnum('HydrologyBumpSpacing');
+Index: ../trunk-jpl/src/m/enum/HydrologyReynoldsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyReynoldsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyReynoldsEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyReynoldsEnum()
++%HYDROLOGYREYNOLDSENUM - Enum of HydrologyReynolds
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyReynoldsEnum()
++
++macro=StringToEnum('HydrologyReynolds');
+Index: ../trunk-jpl/src/m/enum/HydrologySpcheadEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologySpcheadEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologySpcheadEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologySpcheadEnum()
++%HYDROLOGYSPCHEADENUM - Enum of HydrologySpchead
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologySpcheadEnum()
++
++macro=StringToEnum('HydrologySpchead');
+Index: ../trunk-jpl/src/m/enum/HydrologyHeadEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyHeadEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyHeadEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologyHeadEnum()
++%HYDROLOGYHEADENUM - Enum of HydrologyHead
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyHeadEnum()
++
++macro=StringToEnum('HydrologyHead');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19719)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19720)
+@@ -153,6 +153,14 @@
+ def HydrologySedimentEnum(): return StringToEnum("HydrologySediment")[0]
+ def HydrologyEfficientEnum(): return StringToEnum("HydrologyEfficient")[0]
+ def HydrologySedimentKmaxEnum(): return StringToEnum("HydrologySedimentKmax")[0]
++def HydrologysommersEnum(): return StringToEnum("Hydrologysommers")[0]
++def HydrologyHeadEnum(): return StringToEnum("HydrologyHead")[0]
++def HydrologyGapHeightEnum(): return StringToEnum("HydrologyGapHeight")[0]
++def HydrologyBumpSpacingEnum(): return StringToEnum("HydrologyBumpSpacing")[0]
++def HydrologyBumpHeightEnum(): return StringToEnum("HydrologyBumpHeight")[0]
++def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
++def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
++def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
+ def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
+ def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
+ def InversionControlScalingFactorsEnum(): return StringToEnum("InversionControlScalingFactors")[0]
+@@ -470,6 +478,7 @@
+ def HydrologyShreveAnalysisEnum(): return StringToEnum("HydrologyShreveAnalysis")[0]
+ def HydrologyDCInefficientAnalysisEnum(): return StringToEnum("HydrologyDCInefficientAnalysis")[0]
+ def HydrologyDCEfficientAnalysisEnum(): return StringToEnum("HydrologyDCEfficientAnalysis")[0]
++def HydrologySommersAnalysisEnum(): return StringToEnum("HydrologySommersAnalysis")[0]
+ def HydrologySolutionEnum(): return StringToEnum("HydrologySolution")[0]
+ def MeltingAnalysisEnum(): return StringToEnum("MeltingAnalysis")[0]
+ def MasstransportAnalysisEnum(): return StringToEnum("MasstransportAnalysis")[0]
+Index: ../trunk-jpl/src/m/enum/HydrologySommersAnalysisEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologySommersAnalysisEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologySommersAnalysisEnum.m	(revision 19720)
+@@ -0,0 +1,11 @@
++function macro=HydrologySommersAnalysisEnum()
++%HYDROLOGYSOMMERSANALYSISENUM - Enum of HydrologySommersAnalysis
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologySommersAnalysisEnum()
++
++macro=StringToEnum('HydrologySommersAnalysis');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19720-19721.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19720-19721.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19720-19721.diff	(revision 20498)
@@ -0,0 +1,1601 @@
+Index: ../trunk-jpl/src/m/geometry/FlagElements.js
+===================================================================
+--- ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 19720)
++++ ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 19721)
+@@ -33,17 +33,17 @@
+ 			var flag=NewArrayFill(md.mesh.numberofelements,0);
+ 			for (i=0;i<md.mesh.numberofelements;i++)
+ 				var sum=0;
+-				for(j=0;j<md.mesh.elements[0].length;j++){
++				for(var j=0;j<md.mesh.elements[0].length;j++){
+ 					sum += region[md.mesh.element[i][j]-1];
+ 				}
+ 				if (sum==md.mesh.elements[0].length)flag[i]=1;
+ 		}
+ 		else{
+-			console.error('Flaglist for region must be of same size as number of elements in model');
++			throw Error('Flaglist for region must be of same size as number of elements in model');
+ 		}
+ 	}
+ 	else{
+-		console.error('Invalid region option');
++		throw Error('Invalid region option');
+ 	}
+ 	return flag;
+ }
+Index: ../trunk-jpl/src/m/miscellaneous/fielddisplay.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19720)
++++ ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19721)
+@@ -84,7 +84,7 @@
+ 			console.log(sprintf("%s%-23s: %-15s -- %s",offset,name,characterization,comment));
+ 		}
+ 		else{
+-			console.error("fielddisplay error message: format for comment not supported yet");
++			throw Error("fielddisplay error message: format for comment not supported yet");
+ 		}
+ 	}
+ } //}}}
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19721)
+@@ -0,0 +1,226 @@
++function processdata(md,data,options){
++	//PROCESSDATA - process data to be plotted
++	//
++	//   datatype = 1 -> elements
++	//   datatype = 2 -> nodes
++	//   datatype = 3 -> node quivers
++	//   datatype = 4 -> patch
++	//
++	//   Usage:
++	//      var array = processdata(md,data,options);
++	//      var data = array[0]; 
++	//      var datatype = array[1];
++	//
++	//   See also: PLOTMODEL, PROCESSMESH
++
++	//check format
++	if ( data.length ==0 | data === [] | typeof data === 'number' | ArrayAnyNaN(data)){
++		throw Error('plotmodel error message: data provided is empty');
++	}
++
++	//Process NaN if any (do not know before mask is applied)
++	if (options.exist('nan')){
++		var valuefornan=options.getfieldvalue('nan',0);
++		for (var i=0;i<data.length;i++)if(IsNaN(data[i]))data[i]=valuefornan;
++	}
++
++	//special case for mesh 2dvertical
++	if (md.mesh.domaintype() === '2Dvertical'){
++		return processdata(md.mesh,md,data,options);
++	}
++
++	//needed later on
++	if ('numberofvertices2d' in md.mesh){
++		numberofvertices2d=md.mesh.numberofvertices2d; 
++		numberofelements2d=md.mesh.numberofelements2d; 
++	}
++	else {
++		numberofvertices2d=NaN;
++		numberofelements2d=NaN;
++	}
++
++	//initialize datatype
++	datatype=0;
++
++	//get datasize
++	datasize=data.length;
++
++	//transpose data if necessary
++	if (data[0].length > data.length){
++		throw Error('processdata error message: you need to tranpose your data!');
++	}
++
++
++	//check length
++	if (datasize != md.mesh.numberofvertices & datasize !=md.mesh.numberofelements & datasize!=md.mesh.numberofvertices*6 & 
++			((md.mesh.domaintype() === '3D') & !(datasize==numberofelements2d | datasize==numberofvertices2d))){
++		throw Error('plotmodel error message: data not supported yet');
++	}
++
++	//quiver?
++	if (data[0].length>1){
++		datatype=3;
++
++		//check number of columns, add zeros if necessary,
++		if (md.mesh.dimension()==3){
++			if (data[0].length==2){
++				data=[data, NewArrayFill(data.length,1)];
++			}
++			else if (data[0].length!=3){
++				throw Error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot');
++			}
++		}
++	}
++
++	//treat the case datasize(1)=6*nodes
++	if (datasize==6*md.mesh.numberofvertices){
++		//keep the only norm of data
++		data1=new Array(md.mesh.numberofvertices);
++		data2=new Array(md.mesh.numberofvertices);
++		data=new Array(md.mesh.numberofvertices);
++		for(var i=0;i<md.mesh.numberofvertices;i++){
++			data1[i]=data[6*i+0];
++			data2[i]=data[6*i+1];
++			data[i]=Math.sqrt(pow(data1[i],2),pow(data2[i],2));
++		}
++		datasize=md.mesh.numberofvertices;
++		//---> go to node data
++	}
++
++	//treat the case datasize(1)=nodes2d
++	if (md.mesh.dimension()==3 & datasize==numberofvertices2d){
++		data=project3d(md,'vector',data,'type','node');
++		datasize=md.mesh.numberofvertices;
++		//---> go to node data
++	}
++
++	//treat the case datasize=nodes2d
++	if (md.mesh.dimension()==3 & datasize==numberofelements2d){
++		data=project3d(md,'vector',data,'type','element');
++		datasize=md.mesh.numberofelements;
++		//---> go to node data
++	}
++
++	//smoothing?
++	if (options.exist('smooth')){
++		data=averaging(md,data,options.getfieldvalue('smooth'));
++		datasize=md.mesh.numberofvertices;
++		//---> go to node data
++	}
++
++	//element data
++	if (datasize==md.mesh.numberofelements & data[0].length==1){
++
++		//Initialize datatype if non patch
++		if(datatype!=4 & datatype!=5){
++			datatype=1;
++		}
++
++		//Mask?
++		if(options.exist('mask')){
++			flags=options.getfieldvalue('mask');
++			if(flags.length==md.mesh.numberofvertices){
++				for(var i=0;i<md.mesh.numberofelements;i++){
++					var nanify=0;
++					for(var j=0;j<md.mesh.elements[0].length;j++){
++						if (flags[md.mesh.elements[i][j]-1]==0)nanify=1;
++					}
++					if(nanify) for(var j=0;j<md.mesh.elements[0].length;j++)data[md.mesh.elements[i][j]-1]=NaN;
++				}
++			}
++			else if (flags.length==md.mesh.numberofelements){
++				for(var i=0;i<md.mesh.numberofelements;i++)if (flags[i]==0)data[i]=NaN;
++			}
++			else{
++				console.log('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements)');
++			}
++		}
++
++		//log?
++		if (options.exist('log')){
++			var bounds=options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++			for(var i=0;i<md.mesh.numberofelements;i++)if(data[i]<bounds[0])data[i]=bounds[0];
++			for(var i=0;i<md.mesh.numberofelements;i++)if(data[i]<=0){
++				throw Error("Log option cannot be applied on negative values. Use caxis option (Rignot''s settings: [1.5 max(data)])");
++			}
++			for(var i=0;i<md.mesh.numberofelements;i++){
++				if(!IsNaN(data[i])){
++					data[i]=Math.log(data[i])/log(options.getfieldvalue('log'));
++				}
++			}
++		}
++	}
++
++	//node data
++	if (datasize==md.mesh.numberofvertices){
++		datatype=2;
++
++		//Mask?
++		if (options.exist('mask')){
++			flags=options.getfieldvalue('mask');
++			if (flags.length==md.mesh.numberofvertices){
++				for(var i=0;i<md.mesh.numberofvertices;i++){
++					if(flags[i]==0)data[i]=NaN;
++				}
++			}
++			else if( length(flags)==md.mesh.numberofelements){
++				for(var i=0;i<md.mesh.numberofelements;i++){
++					if(flags[i]==0){
++						for(var j=0;j<md.mesh.elements[0].length;j++){
++							data[md.mesh.elements[i][j]-1]=NaN;
++						}
++					}
++				}
++			}
++			else{
++				console.log("plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements");
++			}
++		}
++
++		//log?
++		if (options.exist('log')){
++		   for(var i=0;i<md.mesh.numberofvertices;i++){
++			   data[i]=Math.log(data[i])/log(options.getfieldvalue('log'));
++		   }
++		}
++	}
++
++	//layer projection? 
++	if (options.getfieldvalue('layer',0)>=1){
++		data=project2d(md,data,options.getfieldvalue('layer')); //project onto 2d mesh
++	}
++
++	//control arrow density if quiverplot: not done yet since conversion of matlab to javascript.
++	/*if (datatype==3 & options.exist('density')){
++		databak=data;
++		data=NewArrayFill(datasize,NaN);
++
++		density=options.getfieldvalue('density');
++		data(1:density:end,:)=databak(1:density:end,:);
++		clear databak
++	}*/
++
++	/*if (datatype==3){ //not done yet
++		//Mask?
++		if (options.exist('mask')){
++			flags=options.getfieldvalue('mask');
++			pos=find(~flags);
++			if (flags.length==md.mesh.numberofvertices){
++			   data(pos,:)=NaN;
++			}
++			else if (flags.length==md.mesh.numberofelements){
++				data(md.mesh.elements(pos,:),:)=NaN;
++			}
++			else{
++				console.log("plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements");
++			}
++		}
++	}*/
++
++	//OK, if datatype=0 error out
++	if (datatype==0){
++	   throw Error('data provided not recognized or not supported');
++	}
++
++	return [data,datatype];
++}
+Index: ../trunk-jpl/src/m/plot/plotmodel.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotmodel.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19721)
+@@ -0,0 +1,50 @@
++function plotmodel(md){
++
++	//Convert arguments to array: 
++	var args = Array.prototype.slice.call(arguments);
++
++	//First process options
++	var  options = new plotoptions(args.slice(1,args.length));
++	
++	//get number of subplots
++	subplotwidth=Math.ceil(Math.sqrt(options.numberofplots)); 
++	
++	//Get figure number and number of plots
++	figurenumber=options.figurenumber;
++	numberofplots=options.numberofplots;
++
++	//if nlines and ncols specified, then bypass.
++	var nlines,ncols;
++	if (options.list[0].exist('nlines')){
++		nlines=options.list[0].getfieldvalue('nlines');
++	}
++	else {
++		nlines=Math.ceil(numberofplots/subplotwidth);
++	}
++	if (options.list[0].exist('ncols')){
++		ncols=options.list[0].getfieldvalue('ncols');
++	}
++	else {
++		ncols=subplotwidth;
++	}
++	
++	//check that nlines and ncols were given at the same time!
++	if ((options.list[0].exist('ncols') & !options.list[0].exist('nlines')) | (options.list[0].exist('nlines') & !options.list[0].exist('ncols'))) throw Error('plotmodel error message: nlines and ncols  need to be specified together, or not at all');
++
++	//go through subplots
++	if (numberofplots){
++
++		//Create figure : to be replaced by Dan's code here for the <div> segment of the html code?
++		//f=figure(figurenumber);clf;
++		//deal with visible off or on, figure position, etc...
++
++		//Go through all data plottable and close window if an error occurs
++		for (var i=0;i<numberofplots;i++){
++
++			plot_manager(options.list[i].getfieldvalue('model',md),options.list[i],subplotwidth,nlines,ncols,i);
++
++			//List all unused options
++			options.list[i].displayunused();
++		}
++	}
++}
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19721)
+@@ -0,0 +1,80 @@
++function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options){
++	//PLOT_UNIT - unit plot, display data
++	//
++	//   Usage:
++	//      plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options);
++	//
++	//   See also: PLOTMODEL, PLOT_MANAGER
++
++	//edgecolor
++	edgecolor=options.getfieldvalue('edgecolor','none');
++
++	switch(datatype){
++
++		//element plot
++		case 1:
++
++			pos=ArrayFindNot(data,NaN); //needed for element on water
++			if (elements[0].length==6){ //prisms
++
++				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
++				  patch( 'Faces', [A B C],  'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  */
++			}
++			else if (elements[0].length==4){ //tetras
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
++				  patch( 'Faces',[A B C],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces',[A B D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces',[B C D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
++				  patch( 'Faces',[C A D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
++			}
++			else{
++				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3);
++				  patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
++			}
++			break;
++
++			//node plot
++		case 2:
++
++			if (elements[0].length==6){ //prisms
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
++				  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
++			}
++			else if (elements[0].length==4){//tetras
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
++				  patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
++			}
++			else{
++				throw Error('Here we are, take it over Dan');
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); 
++				  patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
++				  */
++			}
++			break;
++
++			//quiver plot
++		case 3:
++
++			if (is2d){
++				//plot_quiver(x,y,data(:,1),data(:,2),options);
++			}
++			else{
++				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
++			}
++
++		default:
++				throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
++	}
++}
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19721)
+@@ -0,0 +1,235 @@
++function plot_manager(md,options,subplotwidth,nlines,ncols,i){
++//PLOT__MANAGER - distribute the plots, called by plotmodel
++//
++//   Usage:
++//      plot_manager(md,options,subplotwidth,i);
++//
++//   See also: PLOTMODEL, PLOT_UNIT
++
++	//parse options and get a structure of options. 
++	checkplotoptions(md,options);
++
++	options.disp();
++
++	//get data to be displayed
++	data=options.getfieldvalue('data');
++
++	//figure out if this is a special plot
++	if (typeof data === 'string'){
++
++		switch(data){
++
++			case 'boundaries':
++				plot_boundaries(md,options,subplotwidth,i);
++				break;
++			case 'BC':
++				plot_BC(md,options,subplotwidth,i,data);
++				break;
++			case 'edges':
++				plot_edges(md,options,subplotwidth,i,data);
++				break;
++			case 'elementnumbering':
++				plot_elementnumbering(md,options,subplotwidth,i);
++				break;
++			case 'highlightelements':
++				plot_highlightelements(md,options,subplotwidth,i);
++				break;
++			case 'qmumean':
++				plot_qmumean(md,options,nlines,ncols,i);
++				break;
++			case 'qmustddev':
++				plot_qmustddev(md,options,nlines,ncols,i);
++				break;
++			case 'qmuhistnorm':
++				plot_qmuhistnorm(md,options,nlines,ncols,i);
++				break;
++			case 'qmu_mass_flux_segments':
++				plot_qmu_mass_flux_segments(md,options,nlines,ncols,i);
++				break;
++			case 'part_hist':
++				plot_parthist(md,options,nlines,ncols,i);
++				break;
++			case 'part_hist_n':
++				plot_parthistn(md,options,nlines,ncols,i);
++				break;
++			case 'part_hist_w':
++				plot_parthistw(md,options,nlines,ncols,i);
++				break;
++			case 'elements_type':
++				plot_elementstype(md,options,subplotwidth,i);
++				break;
++			case 'vertexnumbering':
++				plot_vertexnumbering(md,options,subplotwidth,i);
++				break;
++			case 'highlightvertices':
++				plot_highlightvertices(md,options,subplotwidth,i);
++				break;
++			case 'basal_drag':
++				plot_basaldrag(md,options,subplotwidth,i,data);
++				break;
++			case 'basal_dragx':
++				plot_basaldrag(md,options,subplotwidth,i,data);
++				break;
++			case 'basal_dragy':
++				plot_basaldrag(md,options,subplotwidth,i,data);
++				break;
++			case 'driving_stress':
++				plot_drivingstress(md,options,subplotwidth,i);
++				break;
++			case 'mesh':
++				plot_mesh(md,options,nlines,ncols,i);
++				break;
++			case 'none':
++				if (!(options.exist('overlay'))){
++					plot_none(md,options,nlines,ncols,i);
++				}
++				break;
++			case 'penalties':
++				plot_penalties(md,options,subplotwidth,i);
++				break;
++			case 'partition':
++				plot_partition(md,options,nlines,ncols,i);
++				break;
++			case 'referential':
++				plot_referential(md,options,nlines,ncols,i);
++				break;
++			case 'riftvel':
++				plot_riftvel(md,options,nlines,ncols,i);
++				break;
++			case 'riftnumbering':
++				plot_riftnumbering(md,options,nlines,ncols,i);
++				break;
++			case 'rifts':
++				plot_rifts(md,options,nlines,ncols,i);
++				break;
++			case 'riftrelvel':
++				plot_riftrelvel(md,options,nlines,ncols,i);
++				break;
++			case 'riftpenetration':
++				plot_riftpenetration(md,options,nlines,ncols,i);
++				break;
++			case 'riftfraction':
++				plot_riftfraction(md,options,nlines,ncols,i);
++				break;
++			case 'sarpwr':
++				plot_sarpwr(md,options,subplotwidth,i);
++				break;
++			case 'time_dependant':
++				plot_vstime(md,options,nlines,ncols,i);
++				break;
++			case 'icefront':
++				plot_icefront(md,options,subplotwidth,i,data);
++				break;
++			case 'segments':
++				plot_segments(md,options,subplotwidth,i,data);
++				break;
++			case 'quiver':
++				data=[md.initialization.vx, md.initialization.vy]; //Go ahead and try plot_unit
++
++			case 'strainrate_tensor':
++			case 'strainrate':
++			case 'strainrate_principal':
++			case 'strainrate_principalaxis1':
++			case 'strainrate_principalaxis2':
++			case 'strainrate_principalaxis3':
++			case 'stress_tensor':
++			case 'stress':
++			case 'stress_principal':
++			case 'stress_principalaxis1':
++			case 'stress_principalaxis2':
++			case 'stress_principalaxis3':
++			case 'deviatoricstress_tensor':
++			case 'deviatoricstress':
++			case 'deviatoricstress_principal':
++			case 'deviatoricstress_principalaxis1':
++			case 'deviatoricstress_principalaxis2':
++			case 'deviatoricstress_principalaxis3':
++				plot_tensor(md,options,subplotwidth,i,data);
++				break;
++			case 'thermaltransient_results':
++				plot_thermaltransient_results(md,options,subplotwidth,i);
++				break;
++			case 'transient_movie':
++				plot_transient_movie(md,options,subplotwidth,i);
++				break;
++			case 'transient_results':
++				plot_transient_results(md,options,subplotwidth,i);
++				break;
++			case 'transient_field':
++				plot_transient_field(md,options,subplotwidth,i);
++				break;
++			default:
++				if (data in md){
++					data=md[data];
++				}
++				else{
++					error('plot error message: data provided not supported yet. Type plotdoc for help');
++				}
++		}
++	}
++
++	//Figure out if this is a semi-transparent plot.
++	if (options.exist('overlay')){
++		plot_overlay(md,data,options,nlines,ncols,i);
++		return;
++	}
++
++	//Figure out if this is a semi-transparent plot.
++	if (options.exist('googlemaps')){
++		plot_googlemaps(md,data,options,nlines,ncols,i);
++		return;
++	}
++
++	//Figure out if this is a semi-transparent plot.
++	if (options.exist('gridded')){
++		plot_gridded(md,data,options,nlines,ncols,i);
++		return;
++	}
++
++	//Figure out if this is a Section plot
++	if (options.exist('sectionvalue')){
++		plot_section(md,data,options,nlines,ncols,i);
++		return;
++	}
++
++	//Figure out if this is a Profile plot
++	if (options.exist('profile')){
++		plot_profile(md,data,options,nlines,ncols,i);
++		return;
++	}
++
++	//process data and model
++    var meshresults = processmesh(md,data,options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
++
++	var dataresults = processdata(md,data,options);
++	var data2 = dataresults[0]; 
++	var datatype = dataresults[1];
++
++
++	//standard plot:
++	if (options.exist('asymsubplot')){
++		id=options.getfieldvalue('asymsubplot',i);
++		//subplot(nlines,ncols,id);
++	}
++	else{
++		//subplot(nlines,ncols,i);
++	}
++
++	//plot unit
++	plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options);
++
++	//apply all options
++	if (datatype==3){
++		options.changefieldvalue('colorbar',2);
++		if (options.exist('contourlevels')){
++			data2=data;
++		}
++	}
++	applyoptions(md,data2,options);
++}
+
+Property changes on: ../trunk-jpl/src/m/plot/plot_manager.js
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/plot/checkplotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/checkplotoptions.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/checkplotoptions.js	(revision 19721)
+@@ -0,0 +1,239 @@
++function checkplotoptions(md,options){
++	//PARSE_OPTIONS - build a structure that holds all plot options
++	//
++	//   Usage:
++	//      checkplotoptions(md,options);
++	//
++	//   See also: PLOTMODEL
++
++	//units
++	if (options.exist('unit')){
++		if (options.getfieldvalue('unit') === 'km'){
++			options.changefieldvalue('unit',10^-3);
++		}
++		if (options.getfieldvalue('unit') === '100km'){
++			options.changefieldvalue('unit',10^-5);
++		}
++	}
++
++	//density
++	if (options.exist('density')){
++		density=options.getfieldvalue('density');
++		options.changefieldvalue('density',Math.abs(Math.ceil(density)));
++	}
++
++	//Show section
++	if (options.exist('showsection')){
++		if (options.getfieldvalue('showsection') === 'on'){
++			options.changefieldvalue('showsection',4);
++		}
++	}
++
++	//smooth values
++	if (options.exist('smooth')){
++		if (options.getfieldvalue('smooth') === 'on'){
++			options.changefieldvalue('smooth',0);
++		}
++	}
++
++	//contouronly values
++	if (options.exist('contouronly')){
++		if (options.getfieldvalue('contouronly') === 'on'){
++			options.changefieldvalue('contouronly',1);
++		}
++	}
++
++	//Colorbar;
++	if (options.exist('colorbar')){
++		if (options.getfieldvalue('colorbar') === 'on'){
++			options.changefieldvalue('colorbar',1);
++		}
++		else if (options.getfieldvalue('colorbar') === 'off'){
++			options.changefieldvalue('colorbar',0);
++		}
++	}
++
++	//text
++	if (options.exist('text')){
++
++		//1: textvalue
++		textvalues=options.getfieldvalue('text');
++
++		//ischar if only one expstyle -> create a cell
++		if (typeof textvalues === 'string'){
++			textvalues=[textvalues];
++			numtext=1;
++		}
++		else if (IsArray(textvalues)){
++			numtext=textvalues.length;
++		}
++		else throw Error("plot error message: ''text'' option should be either a string or a cell");
++
++		//2: textweight
++		if (options.exist('textweight')){
++
++			textweightvalues=options.getfieldvalue('textweight');
++
++			//ischar if only one textweight -> create a cell
++			if (typeof textweightvalues === 'string'){
++				textweightvalues=[textweightvalues];
++			}
++			else if (!IsArray(textweightvalues)){
++				throw Error("plot error message: ''textweight'' option should be either a string or a cell");
++			}
++		}
++		else{
++			textweightvalues=['n'];
++		}
++		if (textweightvalues.length==1){
++			var value=textweightvalues[0];
++			for (var i=0;i<numtext-1;i++)textweightvalues.push(value);
++		}
++
++		//3: textsize
++		if (options.exist('textsize')){
++			textsizevalues=options.getfieldvalue('textsize');
++		}
++		//ischar if only one textsize -> create a cell
++		if (typeof textsizevalues === 'number'){
++			textsizevalues=[textsizevalues];
++		}
++		else if (!IsArray(textsizevalues)){
++			throw Error("plot error message: ''textsize'' option should be either a number or a cell");
++		}
++		else{
++			textsizevalues=[14];
++		}
++		if (textsizevalues.length==1){
++			var value=textsizevalues[0];
++			for (var i=0;i<numtext-1;i++)textsizevalues.push(value);
++		}
++			
++		//4: textcolor
++		if (options.exist('textcolor')){
++			textcolorvalues=options.getfieldvalue('textcolor');
++		}
++		if (typeof textcolorvalues === 'string'){ //ischar if only one textcolor -> create a cell
++			textcolorvalues=[textcolorvalues];
++		}
++		else if (!IsArray(textcolorvalues)){
++			throw Error("plot error message: ''textcolor'' option should be either a string or a cell");
++		}
++		else textcolorvalues=['k'];
++
++		if (textcolorvalues.length==1){
++			var value=textcolorvalues[0];
++			for (var i=0;i<numtext-1;i++)textcolorvalues.push(value);
++		}
++		
++		//5: textposition
++		if (options.exist('textposition')){
++			textpositionvalues=options.getfieldvalue('textposition');
++		}
++		//ischar if only one textposition -> create a cell
++		if (typeof textpositionvalues === 'number'){
++			textpositionvalues=[textpositionvalues];
++		}
++		else if(!IsArray(textpositionvalues)){
++			throw Error("plot error message: ''textposition'' option should be either a string or a cell");
++		}
++		else throw Error("plot error message: ''textposition'' option is missing");
++			
++		//6: textrotation
++		if (options.exist('textrotation')){
++			textrotationvalues=options.getfieldvalue('textrotation');
++		}
++		//ischar if only one textsize -> create a cell
++		if (typeof textrotationvalues === 'number'){
++			textrotationvalues=[textrotationvalues];
++		}
++		else if (!IsArray(textrotationvalues)){
++			throw Error("plot error message: ''textrotation'' option should be either a number or a cell");
++		}
++		else textrotationvalues=[0];
++		
++		if (textrotationvalues.length==1){
++			var value=textrotationvalues[0];
++			for (var i=0;i<numtext-1;i++)textrotationvalues.push(value);
++		}
++			
++		options.changefieldvalue('text',textvalues);
++		options.changefieldvalue('textsize',textsizevalues);
++		options.changefieldvalue('textweight',textweightvalues);
++		options.changefieldvalue('textcolor',textcolorvalues);
++		options.changefieldvalue('textposition',textpositionvalues);
++		options.changefieldvalue('textrotation',textrotationvalues);
++	}
++
++	//expdisp
++	expdispvaluesarray=[];
++	expstylevaluesarray=[];
++	expstylevalues=[];
++	if (options.exist('expstyle')){
++		expstylevalues=options.getfieldvalue('expstyle');
++		//ischar if only one expstyle -> create a cell
++		if (typeof expstylevalues === 'string'){
++			expstylevalues=[expstylevalues];
++		}
++		options.changefieldvalue('expdisp',expdispvaluesarray);
++	}
++		
++	if (options.exist('expdisp')){
++		expdispvalues=options.getfieldvalue('expdisp');
++	
++		//ischar if only one expstyle -> create a cell
++		if (typeof expdispvalues === 'string'){
++			expdispvalues=[expdispvalues];
++		}
++		for (var i=0; i< expdispvalues.length;i++){
++			expdispvaluesarray.push(expdispvalues[i]);
++			if (expstylevalues.length>i){
++				expstylevaluesarray.push(expstylevalues[i]);
++			}
++			else{
++				expstylevaluesarray.push('g-');
++			}
++		}
++		options.changefieldvalue('expstyle',expstylevaluesarray);
++	}
++
++	//latlonnumbering
++	if (options.exist('latlonclick')){
++		if (options.getfieldvalue('latlonclick') === 'on'){
++			options.changefieldvalue('latlonclick',1);
++		}
++	}
++
++	//north arrow
++	if (options.exist('northarrow')){
++	   if (options.getfieldvalue('northarrow') === 'on'){
++		   
++		   //default values
++		   Lx=ArrayMax(md.mesh.y)-ArrayMin(md.mesh.y);
++		   Ly=ArrayMax(md.mesh.y)-ArrayMin(md.mesh.y);
++		  
++		   //default values
++		   options.changefieldvalue('northarrow',[ArrayMin(md.mesh.x)+1/6*Lx,ArrayMin(md.mesh.y)+5/6*Ly,1/15*Ly,0.25,1/250*Ly]);
++	   }
++	}
++
++	//scale ruler
++	if (options.exist('scaleruler')){
++	   if (options.getfieldvalue('scaleruler') === 'on'){
++		   //default values
++		   Lx=ArrayMax(md.mesh.x)-ArrayMin(md.mesh.x);
++		   Ly=ArrayMax(md.mesh.y)-ArrayMin(md.mesh.y);
++		   
++		   //default values
++		   options.changefieldvalue('scaleruler',[ArrayMin(md.mesh.x)+6/8*Lx, ArrayMin(md.mesh.y)+1/10*Ly, 10^(Mat.ceil(Mat.log10(Lx)))/5, Math.floor(Lx/100), 5]);
++	   }
++	}
++
++	//Log scale (LOTS of changes to be performed
++	if (options.exist('log')){
++	   if (options.exist('caxis')){
++		   options.changefieldvalue('caxis',Math.log(options.getfieldvalue('caxis'))/Math.log(options.getfieldvalue('log')));
++	   }
++	   options.changefieldvalue('cutoff',Math.log(options.getfieldvalue('cutoff',1.5))/Math.log(options.getfieldvalue('log')));
++	}
++}
+Index: ../trunk-jpl/src/m/plot/processmesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/processmesh.js	(revision 19721)
+@@ -0,0 +1,97 @@
++function processmesh(md,data,options){
++//PROCESSMESH - process mesh to be plotted
++//
++//   Usage:
++//      var meshresults=processmesh(md,data,options)
++//      var x=meshresults[0]; 
++//      var y=meshresults[1]; 
++//      var z=meshresults[2]; 
++//      var elements=meshresults[3]; 
++//      var is2d=meshresults[4]; 
++//      var isplanet=meshresults[5]; 
++//
++//   See also: PLOTMODEL, PROCESSDATA
++
++	//some checks
++	if (md.mesh.numberofvertices==0){
++		throw Error('plot error message: mesh is empty');
++	}
++
++	if (md.mesh.numberofvertices==md.mesh.numberofelements){
++		throw Error(['plot error message: the number of elements is the same as the number of nodes...']);
++	}
++
++	//special case for mesg 2dvertical
++	if (md.mesh.domaintype() === '2Dvertical') return processmesh(md.mesh,options);
++
++	//special case for mesh 3dsurface
++	if (md.mesh.domaintype() == '3Dsurface') return processmesh(md.mesh,options);
++
++	if (options.getfieldvalue('coord','xy') !== 'latlon'){
++		x=md.mesh.x;
++		if ('x2d' in md.mesh) x2d=md.mesh.x2d;
++		y=md.mesh.y;
++		if ('y2d' in md.mesh) y2d=md.mesh.y2d;
++	}
++	else{
++		x=md.mesh.long;
++		y=md.mesh.lat;
++	}
++
++	if ('z' in md.mesh){
++		z=md.mesh.z;
++	}
++	else{
++		z=NewArrayFill(x.length,0);
++	}
++	z=options.getfieldvalue('z',z);
++	if (typeof z === 'string'){
++		z=md[z];
++	}
++
++	if ('elements2d' in md.mesh) elements2d=md.mesh.elements2d;
++	elements=md.mesh.elements;
++
++	//is it a 2d plot?
++	if (md.mesh.dimension()==2){
++		is2d=1;
++	}
++	else{
++		if (options.getfieldvalue('layer',0)>=1){
++			is2d=1;
++		}
++		else{
++			is2d=0;
++		}
++	}
++
++	//layer projection? 
++	if (options.getfieldvalue('layer',0)>=1){
++		if (options.getfieldvalue('coord','xy') === 'latlon'){
++			throw Error('processmesh error message: cannot work with 3D meshes for now');
++		}
++		
++		//we modify the mesh temporarily to a 2d mesh from which the 3d mesh was extruded. 
++		x=x2d;
++		y=y2d;
++		z=NewArrayFill(x2d.length,0);
++		elements=elements2d;
++	}
++
++	//units
++	if (options.exist('unit')){
++		unit=options.getfieldvalue('unit');
++		x=x*unit;
++		y=y*unit;
++		z=z*unit;
++	}
++
++	//for now, always isplanet = 0, as we don't have the isa capability: 
++	//if isa(md,'planet'),
++	//	isplanet=1;
++	//else
++	isplanet=0;
++	//end
++
++	return  [x,y,z,elements,is2d,isplanet];
++}
+Index: ../trunk-jpl/src/m/mesh/triangle.js
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.js	(revision 19720)
++++ ../trunk-jpl/src/m/mesh/triangle.js	(revision 19721)
+@@ -49,7 +49,7 @@
+ 	md.mesh.numberofvertices=md.mesh.x.length;
+ 	md.mesh.vertexonboundary=new Float64Array(md.mesh.numberofvertices); 
+ 
+-	for (i=0;i<md.mesh.segments.length;i++) for(j=0;j<2;j++) md.mesh.vertexonboundary[md.mesh.segments[i][j]-1]=1;
++	for (i=0;i<md.mesh.segments.length;i++) for(var j=0;j<2;j++) md.mesh.vertexonboundary[md.mesh.segments[i][j]-1]=1;
+ 
+ 	//Now, build the connectivity tables for this mesh.
+ 	md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19720)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19721)
+@@ -43,6 +43,15 @@
+ 			fielddisplay(this,"long","vertices longitude [degrees]");
+ 			fielddisplay(this,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)");
+ 		} //}}}
++		this.domaintype=function (){ // {{{
++			return '2Dhorizontal';
++		} // }}}
++		this.dimension = function () { //{{{
++			return 2;
++		} //}}}
++		this.elementtype = function() {//{{{
++			return 'Tria';
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 		this.x                           = NaN;
+Index: ../trunk-jpl/src/m/classes/pairoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/pairoptions.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/pairoptions.js	(revision 19721)
+@@ -0,0 +1,269 @@
++//PAIROPTIONS class definition
++//
++//   Usage:
++//      pairoptions=pairoptions();
++//      pairoptions=pairoptions('module',true,'solver',false);
++
++function pairoptions(args) { 
++
++
++	//methods
++	this.constructor = function (args) {// {{{
++
++		//initialize list
++		if (args.length==0){
++			this.list=[];
++		}
++		else{
++
++			//check length of input
++			if (args.length % 2){
++				throw Error('pairoptions error message: invalid parameter/value pair arguments') 
++			}
++			numoptions = args.length/2;
++
++			//Allocate memory
++			this.list= Create2DArray(numoptions,3);
++
++			//go through args and build list of obj
++			for (i=0;i<numoptions;i++){
++				if (typeof args[2*i] === 'string'){
++					this.list[i][0]=args[2*i];
++					this.list[i][1]=args[2*i+1];
++					this.list[i][2]=false;  //used?
++				}
++				else{
++					//option is not a string, ignore it
++					console.log(sprintf('%s%i%s\n','WARNING: option number ',i,' is not a string, it will be ignored'));
++					this.list[i][0]=[];
++					this.list[i][1]=[];
++					this.list[i][2]=[];
++					continue
++				}
++			}
++		}
++	}// }}}
++	this.addfield = function (field, value){ // {{{
++		if (typeof field === 'string'){
++			this.list.push([field,value,false]);
++		}
++	}// }}}
++	this.numoptions = function (){ // {{{
++		return this.list.length;
++	}// }}}
++	this.addfielddefault = function (field,value){ // {{{
++		//ADDFIELDDEFAULT - add a field to an options list if it does not exist
++		if (typeof field === 'string'){
++			if (!this.exist(field)){
++				this.list.push([field,value,true]); //true is a default so user will not be notified if not used
++			}
++		}
++	} // }}}
++	this.AssignObjectFields = function(object){ // {{{
++		//ASSIGNOBJECTFIELDS - assign object fields from options
++		for (i=0;i<list.length;i++){
++			fieldname=list[i][0];
++			fieldvalue=list[i][1];
++			if (fieldname in object){
++				obj2[fieldname]=fieldvalue;
++			}
++			else{
++				console.log(sprintf("%s'%s'%s%s\n",'WARNING: ',fieldname, 'is not a property of ',typeof object));
++			}
++		}
++	} // }}}
++	this.changefieldvalue = function(field,newvalue){ // {{{
++		//CHANGEOPTIONVALUE - change the value of an option in an option list
++
++		var found=0;
++		for (i=0;i<this.list.length;i++){
++			if (this.list[i][0] === field){
++				found=1;
++			}
++		}
++
++		if (found==0){
++			this.list.push([field,newvalue,true]); // do not notify user if unused
++		}
++		else{
++			for (i=0;i<this.list.length;i++){
++				if (this.list[i][0] === field){
++					this.list[i][1] = newvalue;
++				}
++			}
++		}
++	} // }}}
++	this.deleteduplicates = function(warn){ // {{{
++		//DELETEDUPLICATES - delete duplicates in an option list
++
++		//track the first occurrence of each option
++		var indices=NewArrayFill(this.list.length,0);
++		for (i=0;i<this.list.length;i++){
++			if(indices[i]==0){
++				for(var j=i+1;j<this.list.length;j++){
++					if (this.list[i][0] === this.list[j][0])indices[j]=1;
++				}
++			}
++		}
++		sumindices=ArraySum(indices);
++
++		//remove duplicates from the options list
++		newlist=Create2DArray(sumindices,3);
++		var count=0;
++		for (i=0;i<this.list.length;i++){
++			if (indices[i]==1) if (warn) console.log(sprintf("%s%s%s\n",'WARNING: option ', this.list[i,0],' appeared more than once. Only its first occurrence will be kept'));
++			else{
++				newlist[count]=this.list[i];
++				count++;
++			}
++		}
++	} // }}}
++	this.displayunused = function (){ // {{{
++		//DISPLAYUNUSED - display unused options
++
++		for (i=0;i<this.list.length;i++){
++			if (!(this.list[i][2])){
++				console.log(sprintf("%s%s%s\n",'WARNING: option ',this.list[i][0],' was not used'));
++			}
++		}
++	}// }}}
++	this.disp = function (){ //{{{
++		if (this.list.length){
++			console.log(sprintf('   pairoptions: (%i)\n',this.list.length));
++			for (i=0;i<this.list.length;i++){
++				if (typeof this.list[i][1] === 'string'){
++					console.log(sprintf("     field: '%s' value(string): ''%s''",this.list[i][0],this.list[i][1]));
++				}
++				else if( typeof this.list[i][1] === 'number'){
++					console.log(sprintf("     field: '%s' value(number): %g",this.list[i][0],this.list[i][1]));
++				}
++				else if( IsArray(this.list[i][1])){
++					console.log(sprintf("     field: '%s' value(array): [%i]",this.list[i][0],this.list[i][1].length));
++				}
++			}
++		}
++		else{
++			console.log(sprintf('   list: empty'));
++		}
++	}// }}}
++	this.exist = function (field) { //{{{
++
++		//EXIST - check if the option exists
++		//some argument checking: 
++		if (!(typeof field === 'string')){
++			throw Error('exist error message: field should be a string');
++		}
++
++		//Recover option
++		var bool=0;
++		for (var i=0;i<this.list.length;i++){
++			if (this.list[i][0] === field){
++				bool=1;
++				this.list[i][2]=1; //It is a default so user will not be notified if not used
++				break;
++			}
++		}
++		return bool;
++	} // }}}
++	this.fieldoccurrences = function(field){ // {{{
++
++		//FIELDOCCURRENCES - get number of occurrence of a field
++		var num=0;
++
++		//check input 
++		if (!(typeof field === 'string')){
++			throw Error('exist error message: field should be a string');
++		}
++
++		//count number of occurrences:
++		for (i=0;i<this.list.length;i++) if (this.list[i][0] === field)num++;
++
++		return num;
++
++	} // }}}
++	this.getfieldvalue = function(field){ // {{{
++		//GETOPTION - get the value of an option
++		//
++		//   Usage:
++		//      value=pairoptions.getfieldvalue(field,varargin)
++		//
++		//   Find an option value from a field. A default option
++		//   can be given in input if the field does not exist
++		//
++		//   Examples:
++		//      value=pairoptions.getfieldvalue('caxis');
++		//      value=pairoptions.getfieldvalue('caxis',[0 2]);
++
++		//some argument checking: 
++		if(!(arguments.length==1 | arguments.length==2)){
++			error('pairoptions usage error: getfieldvalue bad usage');
++		}
++
++		if (!(typeof field === 'string')){
++			throw Error('pairoptions error message: field should be a string');
++		}
++
++		//Recover option
++		for(var i=0;i<this.list.length;i++){
++			if (this.list[i][0] === field){
++				this.list[i][2]=1; //option used
++				return value=this.list[i][1];
++			}
++		}
++
++		//The option has not been found, output default if provided
++		if (arguments.length==2){
++			return arguments[1];
++		}
++		else{
++			throw Error(sprintf("%s%s%s\n",'error message: field ',field,' has not been provided by user (and no default value has been specified)'));
++		}
++	} // }}}
++	this.removefield = function(field,warn){// {{{
++
++		//REMOVEFIELD - delete a field in an option list
++		//
++		//   Usage:
++		//      options.removefield(field,warn)
++		//
++		//   if warn==1 display an info message to warn user that
++		//   some of his options have been removed.
++
++		//check if field exists
++		if (this.exist(field)){
++
++			var indices;
++			var count;
++
++			//find where the field is located
++			indices=NewArrayFill(this.list.length,1);
++			for (i=0;i<this.list.length;i++)if(this.list[i][1] === field)indices[i]=0;
++			sumindices=ArraySum(indices);
++
++			//remove duplicates from the options list
++			newlist=Create2DArray(sumindices,3);
++
++			count=0;
++			for (i=0;i<this.list.length;i++){
++				if(!(this.list[i][1] === field)){
++					newlist[count]=this.list[i];
++					count++;
++				}
++			}
++			this.list=newlist;
++
++			//warn user if requested
++			if (warn){
++				console.log(sprintf("%s%s%s\n",'removefield info: option ',field,' has been removed from the list of options.'));
++			}
++		}
++	} // }}}
++	this.marshall = function(fid,firstindex){// {{{
++
++		throw Error('pairoptions marshall error: not implemented yet!');
++	} // }}}
++
++	//properties 
++	list         = [];
++	this.constructor(args);
++}
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19721)
+@@ -0,0 +1,166 @@
++//PLOTOPTIONS class definition
++//
++//   Usage:
++//      plotoptions = plotoptions(varargin)
++
++function plotoptions(args) {
++	//methods
++	 this.disp = function (){ // {{{
++		 console.log(sprintf('\nplotoptions = \n'));
++		 console.log(sprintf('   figurenumber: %i',this.figurenumber));
++		 console.log(sprintf('   numberofplots: %i',this.numberofplots));
++		 if (this.list.length){
++			 for (var i=0;i<this.list.length;i++){
++				 console.log(sprintf('\n   options of plot number %i',i+1));
++				 this.list[i].disp();
++			 }
++		 }
++		 else{
++			 console.log(sprintf('   list: empty'));
++		 }
++	 }
++	 //}}}
++	 this.constructor = function (args){ // {{{
++
++		 //check length of input
++		 if (args.length % 2){
++			 for (i=0;i<args.length;i+=2){
++				 if (!(typeof args[i] === 'string')){
++					 console.log('Last valid option: ' + args[i-2]);
++					 break;
++				 }
++			 }
++			 throw Error('plotoptions error message: invalid parameter/value pair arguments');
++		 }
++
++		 //go through varargin and build list (like pairoptions)
++		 var rawoptions=new pairoptions(args);
++		 numoptions=rawoptions.numoptions();
++
++		 var counter=0;
++		 for (i=0;i<numoptions;i++){
++			 if(typeof args[2*i] === 'string')counter++;
++		 }
++		 rawlist=Create2DArray(counter,2);
++		 var counter=0;
++		 for (i=0;i<numoptions;i++){
++			 optionname=args[2*i];
++			 optionval=args[2*i+1];
++			 if(typeof optionname === 'string'){
++				 rawlist[counter][0]=optionname;
++				 rawlist[counter][1]=optionval;
++				 counter++;
++			 }
++			 else{
++				 //option is not a string, ignore it
++				 console.log(sprintf("%s%i%s\n",'WARNING: option number ',i,' is not a string, it will be ignored'));
++				 rawlist[counter]=[];
++				 continue
++			 }
++		 }
++		 
++			 
++		 //get number of data to be plotted
++		 numberofplots=rawoptions.fieldoccurrences('data');
++		 this.numberofplots=numberofplots;
++
++		 //figure out wether alloptions flog is on
++		 if (rawoptions.getfieldvalue('alloptions','off') === 'on') allflag=1;
++		 else allflag=0;
++
++		 //initialize list
++		 var list=new Array(numberofplots);
++		 for (i=0;i<numberofplots;i++){
++			 list[i]=new pairoptions([]);
++		 }
++		 		 
++		//process plot options
++		 for(var i=0;i<rawlist.length;i++){
++
++			 //If alloptions flag has is on, apply to all plots
++			 if (allflag & !(rawlist[i][0] === 'data') & (rawlist[i][0].indexOf('#') == -1)){
++				 for(var j=0;j<numberofplots;j++){
++					 list[j].addfield(rawlist[i][0],rawlist[i][1]);
++				 }
++			 }
++			 else if (rawlist[i][0].indexOf('#') != -1){ //option contains '#'
++
++				 //get suplot(s) associated
++				 string=rawlist[i][0].split('#');
++				 plotnums=string[1];
++				 field=string[0];
++
++				 //divide plotnums if there is a comma ','
++				 plotnums=plotnums.split(',');
++
++				 //loop over plotnums
++				 for (k=0;k<plotnums.length;k++){
++					 plotnum=plotnums[k];
++
++					 //Empty
++					 if (plotnum === '') continue;
++
++					 else if (plotnum === 'all'){ //pound all
++						 for(var j=0;j<numberofplots;j++){
++							 list[j].addfield(field,rawlist[i][1]);
++						 }
++					 }
++					 else if (plotnum.indexOf('-')!=-1){  //pound i-j
++						 nums=plotnum.split('-');
++						 if (nums.length!=2) continue;
++						 if ((nums[0] == '') | (nums[1] === '')){
++							 throw Error(sprintf("%s%s\n",'the option #i-j is not set properly for ',field));
++						 }
++						 for (j=(Number(nums[0])-1);j<(Number(nums[1])); j++){
++							 list[j].addfield(field,rawlist[i][1]);
++						 }
++					 }
++					 else{ //pound i
++						 //assign to subplot
++						 if (Number(plotnum)>numberofplots){
++							throw Error(sprintf("%s%s%s%i%s\n",'plotoptions error message: ',field,' cannot be assigned (',plotnum,' exceeds maximum number of plot)'));
++						 }
++						 list[Number(plotnum)-1].addfield(field,rawlist[i][1]);
++					 }
++				 }
++			 }
++			 else{ //assign option field to corresponding subplot
++
++				 
++				 //go through all subplot and assign to the first one free
++				 var inc=0;
++				 
++				 while (inc<numberofplots){
++					
++					 if (!list[inc].exist(rawlist[i][0])){
++						 list[inc].addfield(rawlist[i][0],rawlist[i][1]);
++						 break
++					 }
++					 else inc++;
++				 }
++
++				 if (inc>numberofplots-1){
++					 console.log(sprintf("%s%s%s\n",'plot info message: too many ',rawlist[i][0],' options'));
++				 }
++			 }
++		 }
++
++		 //check that there is no duplicates
++		 for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
++
++		 //Get figure number (should be in options for subplot 1)
++		 this.figurenumber=list[0].getfieldvalue('figure',1);
++		 list[0].removefield('figure',0);
++
++		 //asign output
++		 this.list=list;
++
++	 } //}}}
++    //properties 
++	 // {{{
++	 numberofplots = 0;
++	 figurenumber  = 1;
++	 list          = [];
++	 this.constructor(args);
++	 //}}}
++}
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19720)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19721)
+@@ -25,7 +25,7 @@
+ 	
+ 	//some checks on list of arguments
+ 	if (!((arguments.length==3) | (arguments.length==5))){
+-		console.error('mask error message: wrong usage.');
++		throw Error('mask error message: wrong usage.');
+ 	}
+ 
+ 	if(arguments.length>3){
+@@ -33,10 +33,10 @@
+ 			icedomain=arguments[4];
+ 		}
+ 		else{
+-			console.error('mask error message: wrong field specified. Only icedomain allowed for now.');
++			throw Error('mask error message: wrong field specified. Only icedomain allowed for now.');
+ 		}
+ 		if (IsArray(icedomain)){
+-			console.error('setmask error message: icedomain should be an array!');
++			throw Error('setmask error message: icedomain should be an array!');
+ 		}
+ 	}
+ 	
+@@ -58,19 +58,19 @@
+ 	//the order here is important. we choose vertexongroundedice as default on the grounding line.
+ 	vertexonfloatingice=NewArrayFill(md.mesh.numberofvertices,0);
+ 	vertexongroundedice=NewArrayFill(md.mesh.numberofvertices,0);
+-	pos=ArrayFind(elementongroundedice,1); for (i=0;i<pos.length;i++)for(j=0;j<3;j++) vertexongroundedice[md.mesh.elements[i,j]-1]=1;
++	pos=ArrayFind(elementongroundedice,1); for (i=0;i<pos.length;i++)for(var j=0;j<3;j++) vertexongroundedice[md.mesh.elements[i,j]-1]=1;
+ 	pos=ArrayFind(vertexongroundedice,0); for (i=0;i<pos.length;i++)vertexonfloatingice[i]=1;
+ 
+ 	//level sets
+ 	groundedice_levelset=vertexongroundedice;
+-	pos=ArrayFind(vertexongroundedice,0);for(i=0;i<pos.length;i++) groundedice_levelset[i]=-1;
++	pos=ArrayFind(vertexongroundedice,0);for(var i=0;i<pos.length;i++) groundedice_levelset[i]=-1;
+ 	md.mask.groundedice_levelset=groundedice_levelset;
+ 
+ 	if(arguments.length>3){
+ 		md.mask.ice_levelset = NewArrayFill(md.mesh.numberofvertices,1.0);
+ 		//use contourtomesh to set ice values inside ice domain
+ 		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomain,'node',1);
+-		pos=ArrayFind(vertexinsideicedomain,1.0);for(i=0;i<pos.length;i++) md.mask.ice_levelset[pos]=-1;
++		pos=ArrayFind(vertexinsideicedomain,1.0);for(var i=0;i<pos.length;i++) md.mask.ice_levelset[pos]=-1;
+ 	}
+ 	else{
+ 		md.mask.ice_levelset = NewArrayFill(md.mesh.numberofvertices,-1);
+Index: ../trunk-jpl/src/m/array/ArrayOperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19720)
++++ ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19721)
+@@ -15,6 +15,11 @@
+ function ArrayMin(array){ //{{{
+ 	return Math.min.apply(null,array);
+ } //}}}
++function ArraySum(array){ //{{{
++	var sum=0;
++	for(var i=0;i<array.length;i++)sum+=array[i];
++	return sum;
++} //}}}
+ function ArrayMin2D(array){ //{{{
+ 	
+ 	var min=ArrayMax2D(array);
+@@ -46,8 +51,8 @@
+ 	var length = matrix.length;
+ 	var list= new Array(width*length);
+ 
+-	for (i=0;i<length;i++){
+-		for(j=0;j<width;j++){
++	for(var i=0;i<length;i++){
++		for(var j=0;j<width;j++){
+ 			list[i*width+j]=matrix[i][j];
+ 		}
+ 	}
+@@ -68,6 +73,13 @@
+ 	for (i=0;i<array.length;i++)notarray[i]=-array[i];
+ 	return notarray;
+ } //}}}
++function ArrayAnyNaN(array) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (isNaN(array[i])) return 1;
++	}
++	return 0;
++} //}}}
+ function ArrayAnd(array1,array2) { //{{{
+ 
+ 	var array=array1;
+@@ -97,3 +109,31 @@
+ 	}
+ 	return indices;
+ } //}}}
++function ArrayFindNot(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]!=value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
++function Create2DArray(rows,cols) { //{{{
++	var arr = [];
++
++	for (var i=0;i<rows;i++) {
++		arr[i] = new Array(cols);
++	}
++
++	return arr;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19721-19722.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19721-19722.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19721-19722.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19721)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19722)
+@@ -12,11 +12,17 @@
+ <script type="text/javascript" src="../../src/m/classes/geometry.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/constants.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mask.js"></script>
++<script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
++<script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
++<script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
++<script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
++<script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
++<script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
++<script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
++<script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+-<script type="text/javascript" src="../Par/SquareShelfConstrained.js"></script>
+-<script type="text/javascript" src="../../build-js/src/wrappers/javascript/TriMeshModule.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+@@ -28,8 +34,8 @@
+ 	var md = new model();
+ 	triangle(md,square,50000); 
+ 	setmask(md,'all','');
+-	parameterize(md);
+-	md.geometry.disp();
++	//parameterize(md);
++	plotmodel(md,'data',md.mask.ice_levelset,'adsfa',1,'daas',[1,1,1],'asdf',[1],'string','bof','data','bof','caxis#1',3);
+ 
+ 
+ </script> <!--{{{-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19722-19723.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19722-19723.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19722-19723.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19722)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19723)
+@@ -18,6 +18,7 @@
+ <script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
++<script type="text/javascript" src="../../src/m/plot/initWebGL.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+@@ -29,15 +30,21 @@
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <!-- Includes }}}-->
+ </head>
+-<body> <script type="text/javascript" async><!--}}}-->
++<body> 
++	<canvas id="figure1" width="640" height="480">
++	</canvas>
++	<canvas id="figure2" width="640" height="480">
++	</canvas>
+ 
++
++	<script type="text/javascript" async><!--}}}-->
++
+ 	var md = new model();
+ 	triangle(md,square,50000); 
+ 	setmask(md,'all','');
+ 	//parameterize(md);
+-	plotmodel(md,'data',md.mask.ice_levelset,'adsfa',1,'daas',[1,1,1],'asdf',[1],'string','bof','data','bof','caxis#1',3);
+-
+-
++	plotmodel(md,'data',md.mask.ice_levelset,'data',md.mask.ice_levelset,'canvasid','figure1','canvasid','figure2');
++	
+ </script> <!--{{{-->
+ </body> 
+ </html><!--}}}-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19723-19724.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19723-19724.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19723-19724.diff	(revision 20498)
@@ -0,0 +1,589 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19724)
+@@ -0,0 +1,502 @@
++function applyoptions(md,data,options){
++//APPLYOPTIONS - apply the options to current plot
++//
++//   Usage:
++//      applyoptions(md,data,options)
++//
++//   See also: PLOTMODEL, PARSE_OPTIONS
++
++//fontsize
++fontsize=options.getfieldvalue('fontsize',14);
++
++//fontweight
++fontweight=options.getfieldvalue('fontweight','normal');
++
++//title
++if exist(options,'title')
++	titlevalue=options.getfieldvalue('title');
++	if iscell(titlevalue),
++		title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
++	else
++		if ~isnan(titlevalue),
++			title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
++		end
++	end
++end
++
++//xlabel, ylabel and zlabel
++if exist(options,'xlabel');
++	xlabel(options.getfieldvalue('xlabel'),'FontSize',fontsize,'FontWeight',fontweight);
++end
++if exist(options,'ylabel');
++	ylabel(options.getfieldvalue('ylabel'),'FontSize',fontsize,'FontWeight',fontweight);
++end
++if exist(options,'zlabel');
++	zlabel(options.getfieldvalue('zlabel'),'FontSize',fontsize,'FontWeight',fontweight);
++end
++
++//xticks, yticks and zticks
++if exist(options,'xtick'), set(gca,'XTick',options.getfieldvalue('xtick')); end
++if exist(options,'ytick'), set(gca,'YTick',options.getfieldvalue('ytick')); end
++if exist(options,'ztick'), set(gca,'ZTick',options.getfieldvalue('ztick')); end
++
++//view 
++if dimension(md.mesh)==3 & ~exist(options,'layer'),
++	view(options.getfieldvalue('view',3));
++else
++	view(options.getfieldvalue('view',2));
++end
++
++//axis
++set(gca,'FontSize',options.getfieldvalue('axisfontsize',fontsize));;
++if exist(options,'axis')
++	eval(['axis ' options.getfieldvalue('axis')]);
++else
++	if strcmp(domaintype(md.mesh),'3D'),
++		if ~exist(options,'layer'),
++			axis auto tight
++		else
++			axis tight equal
++		end
++	elseif strcmp(domaintype(md.mesh),'2Dvertical'),
++		axis auto tight
++	elseif strcmp(domaintype(md.mesh),'3Dsurface'),
++		axis auto tight
++
++	elseif strcmp(domaintype(md.mesh),'2Dhorizontal'),
++		axis tight equal;
++	else
++		error('type of domain not supported');
++	end
++end
++
++//box
++if exist(options,'box')
++	eval(['box ' options.getfieldvalue('box')]);
++end
++
++//xlim, ylim and zlim
++if exist(options,'xlim');
++	xlim(options.getfieldvalue('xlim'));
++end
++if exist(options,'ylim');
++	ylim(options.getfieldvalue('ylim'));
++end
++if exist(options,'zlim');
++	zlim(options.getfieldvalue('zlim'));
++end
++
++//latlon
++//Must be done here (before xlim and ylim??) so that it uses the same xlim and ylim as plot_overlay
++//these are changed by axis that follows
++if ~strcmpi(options.getfieldvalue('latlon','off'),'off')
++	latlonoverlay(md,options);
++end
++
++//Basinzoom
++if exist(options,'basin');
++	basinzoom(options);
++end
++
++//ShowBasins
++if strcmpi(options.getfieldvalue('showbasins','off'),'on')
++	showbasins(options);
++end
++
++//Caxis
++if exist(options,'caxis'),
++	caxis(options.getfieldvalue('caxis'));
++end
++
++//shading
++if exist(options,'shading'),
++	shading(options.getfieldvalue('shading'));
++end
++
++//grid
++if exist(options,'grid'),
++	if strcmpi(options.getfieldvalue('grid'),'on'),
++		grid on;
++	end
++end
++
++//colormap
++c = getcolormap(options);
++h = colormap(c);
++
++//wrapping
++if exist(options,'wrapping'),
++	if ~exist(options,'colormap'),
++		h=jet;
++	end
++	colormap(repmat(h,options.getfieldvalue('wrapping',1),1));
++end
++
++//colorbar
++if options.getfieldvalue('colorbar',1)==1,
++	if exist(options,'colorbarcornerposition'),
++		c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
++	else 
++		c=colorbar('peer',gca);
++	end
++	set(c,'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'YColor',options.getfieldvalue('FontColor','k'));
++	if exist(options,'wrapping')
++		lim=get(c,'Ylim');
++		lim=[lim(1) lim(1)+(lim(2)-lim(1))/options.getfieldvalue('wrapping')];
++		set(c,'Ylim',lim);
++	end
++	if exist(options,'colorbarpos'),
++		set(c,'Position',options.getfieldvalue('colorbarpos'));
++	end
++	if exist(options,'log'),
++		nlab=length(get(c,'YTick'));
++		logvalue=options.getfieldvalue('log');
++
++		scaleminmax=caxis;
++		Min=min(scaleminmax);
++		Max=max(scaleminmax);
++		set(c,'YLim',[Min Max]); // set colorbar limits
++		set(c,'YTick',linspace(Min,Max,nlab));     // set tick mark locations
++
++		labels = cell(1,nlab);
++		tick_vals = linspace(Min,Max,nlab);
++		tick_vals = exp(log(logvalue)*tick_vals);
++		warning off MATLAB:log:logOfZero;
++		for i = 1:nlab
++			labels{i} = sprintf('//-3.4g',round_ice(tick_vals(i),2));
++			//labels{i} = sprintf('//-.4g',round_ice(tick_vals(i),2));
++		end
++		warning on MATLAB:log:logOfZero;
++		set(c,'YTickLabel',labels);
++	end 
++ 	if exist(options,'cbYLim'); 
++		set(c,'YLim',options.getfieldvalue('cbYLim'));
++	end
++	if exist(options,'colorbartitle'),
++		set(get(c,'title'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbartitle'),...
++			'Color',options.getfieldvalue('FontColor','k'));
++	end
++	if exist(options,'colorbarYLabel'),
++		set(get(c,'Ylabel'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbarYLabel'),...
++			'Color',options.getfieldvalue('FontColor','k'));
++	end
++	if exist(options,'colorbarwidth'),
++		posaxes=get(gca,'Position');
++		alpha=options.getfieldvalue('colorbarwidth',1);
++		position=get(c,'Position');
++		dx=position(3);
++		newdx=dx*alpha;
++		position(1)=position(1)+(dx-newdx)/2;
++		position(3)=newdx;
++		set(c,'Position',position);
++		set(gca,'Position',posaxes);
++	end
++	if exist(options,'colorbarheight'),
++		posaxes=get(gca,'Position');
++		alpha=options.getfieldvalue('colorbarheight',1);
++		position=get(c,'Position');
++		dy=position(4);
++		newdy=dy*alpha;
++		position(2)=position(2)+(dy-newdy)/2;
++		position(4)=newdy;
++		set(c,'Position',position);
++		set(gca,'Position',posaxes);
++	end
++	if exist(options,'cbYTickLabel');
++		tick_vals=options.getfieldvalue('cbYTickLabel');
++		if ~isnumeric(tick_vals) & strcmp(tick_vals,'on')
++			tick_vals=get(c,'YTick')';
++			if exist(options,'log')
++				logval= options.getfieldvalue('log');
++				for i= 1:numel(tick_vals)
++					tick_vals(i)= logval^(tick_vals(i));
++				end
++			elseif numel(tick_vals) == 3
++				tick_vals=[tick_vals(1); mean(tick_vals(1:2)); tick_vals(2); ...
++					mean(tick_vals(2:3)); tick_vals(3)];
++				set(c,'YTick',tick_vals);
++			end
++		else
++			if exist(options,'log')
++				logvalue=options.getfieldvalue('log');
++				set(c,'YTick',log(tick_vals)./log(logvalue));
++			else
++				set(c,'YTick',tick_vals);
++			end
++		end
++		labels = cell(1,numel(tick_vals));
++		for i = 1:numel(tick_vals)
++			labels{i} = num2str(tick_vals(i));
++		end
++		set(c,'YTickLabel',labels);
++	end
++
++elseif options.getfieldvalue('colorbar',1)==0,
++	colorbar('off');
++else
++	//do nothing
++
++end
++
++//area
++if exist(options,'area'),
++	antzoom(options.getfieldvalue('area'));
++end
++
++//expdisp
++if exist(options,'expdisp'),
++	filename=(options.getfieldvalue('expdisp'));
++	style=(options.getfieldvalue('expstyle'));
++	linewidth=(options.getfieldvalue('linewidth',1));
++	for i=1:length(options.getfieldvalue('expdisp')),
++		filenamei=filename{i};
++		stylei=style{i};
++		if length(linewidth)==1,
++			linewidthi=linewidth;
++		else
++			linewidthi=linewidth{i};
++		end
++		expdisp(filenamei,'linestyle',stylei,'linewidthi',linewidthi,'multiplier',options.getfieldvalue('unit',1));
++	end
++end
++
++//text (default value is empty, not NaN...)
++if exist(options,'text');
++	textstring=options.getfieldvalue('text');
++	textweight=options.getfieldvalue('textweight','b');
++	textsize=options.getfieldvalue('textsize');
++	textcolor=options.getfieldvalue('textcolor');
++	textposition=options.getfieldvalue('textposition');
++	textrotation=options.getfieldvalue('textrotation');
++	for i=1:length(options.getfieldvalue('text'));
++		textstringi=textstring{i};
++		textweighti=textweight{i};
++		textsizei=textsize{i};
++		textcolori=textcolor{i};
++		textpositioni=textposition{i};
++		textrotationi=textrotation{i};
++		h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
++		set(h,'Clipping','on'); //prevent text from appearing outside of the box
++	end
++end
++
++//north arrow
++if exist(options,'northarrow'),
++	northarrow(options.getfieldvalue('northarrow'));
++end
++
++//curved arrow
++if exist(options,'curvedarrow'),
++	curvedoptions=options.getfieldvalue('curvedarrow');
++	curvedarrow(curvedoptions{:});
++end
++
++//Scale ruler
++if exist(options,'scaleruler'),
++	scaleruler(options);
++end
++
++//streamliness
++if exist(options,'streamlines'),
++	plot_streamlines(md,options);
++end
++
++//contours
++if exist(options,'contourlevels'),
++	plot_contour(md,data,options);
++end
++
++//YTickLabel
++if exist(options,'yticklabel'),
++	set(gca,'YTickLabel',options.getfieldvalue('YTickLabel'));
++end
++
++//XTickLabel
++if exist(options,'xticklabel'),
++	set(gca,'XTickLabel',options.getfieldvalue('XTickLabel'));
++end
++
++//xtick
++if exist(options,'xtick'),
++	set(gca,'xtick',options.getfieldvalue('xtick'));
++end
++
++//ytick
++if exist(options,'ytick'),
++	set(gca,'ytick',options.getfieldvalue('ytick'));
++end
++
++//Axis positions
++if exist(options,'offsetaxispos'),
++	offset=options.getfieldvalue('offsetaxispos');
++	P=get(gca,'pos');
++	P(1)=P(1)+offset(1);
++	P(2)=P(2)+offset(2);
++	P(3)=P(3)+offset(3);
++	P(3)=P(4)+offset(4);
++	set(gca,'pos',P);
++end
++if exist(options,'axispos'),
++	Axis=options.getfieldvalue('axispos');
++	hold on
++	set(gca,'pos',Axis);
++end
++
++//axes position
++if exist(options,'axesPosition')
++	set(gca,'Position',options.getfieldvalue('axesPosition'));
++end
++
++//showregion
++if strcmpi(options.getfieldvalue('showregion','off'),'on'),
++	//Keep pointer of main axis
++	maingca=gca;
++	//get inset relative position (x,y,width,height)
++	insetpos=options.getfieldvalue('insetpos',[0.02 0.70 0.18 0.18]);
++	//get current plos position
++	cplotpos=get(maingca,'pos');
++	//compute inset position
++	PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
++	axes('pos',PosInset);
++	axis equal off
++	//box off
++	if md.mesh.epsg==3413,
++		A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp');
++		[A.x A.y]=ll2xy(A.x,A.y,+1,45,70);
++		A.x = A.x(1:30:end);
++		A.y = A.y(1:30:end);
++	elseif md.mesh.epsg==3031,
++		A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp');
++	else
++		error('applyoptions error message: md.mesh.epsg not defined');
++	end
++	offset=3*10^4;
++	Ax=[min(A.x)-offset max(A.x)+offset];
++	Ay=[min(A.y)-offset max(A.y)+offset];
++	//if we are zooming on a basin, don't take the mesh for the boundaries!
++	if exist(options,'basin'),
++		[mdx mdy]=basinzoom(options);
++	else
++		mdx=[min(md.mesh.x)-offset max(md.mesh.x)+offset];
++		mdy=[min(md.mesh.y)-offset max(md.mesh.y)+offset];
++	end
++	line(A.x,A.y,ones(size(A.x)),'color','b');
++	patch([Ax(1)  Ax(2)  Ax(2)  Ax(1) Ax(1)],[Ay(1)  Ay(1)  Ay(2)  Ay(2) Ay(1)],[1 1 1],'EdgeColor',[0 0 0],'LineWidth',1,'FaceLighting','none')
++	patch([mdx(1) mdx(2) mdx(2) mdx(1)],[mdy(1) mdy(1) mdy(2) mdy(2)],ones(4,1),'EdgeColor',[0 0 0],'FaceColor','r','FaceAlpha',0.5)
++	colorbar('off');
++	//back to main gca
++	set(gcf,'CurrentAxes',maingca)
++end
++
++//flag edges of a partition
++if exist(options,'partitionedges')
++	[xsegments ysegments]=flagedges(md.mesh.elements,md.mesh.x,md.mesh.y,md.qmu.partition);
++	xsegments=xsegments*options.getfieldvalue('unit',1);
++	ysegments=ysegments*options.getfieldvalue('unit',1);
++	color=options.getfieldvalue('partitionedgescolor','r-');
++	linewidth=options.getfieldvalue('linewidth',1);
++	hold on;
++	for i=1:length(xsegments),
++		plot(xsegments(i,:),ysegments(i,:),color,'LineWidth',linewidth);
++	end
++end
++
++//Scatter
++if exist(options,'scatter')
++	data=options.getfieldvalue('scatter');
++	hold on
++	plot_scatter(data(:,1),data(:,2),data(:,3),options);
++end
++
++//backgroundcolor
++set(gca,'color',options.getfieldvalue('backgroundcolor','none'));
++
++//lighting
++if strcmpi(options.getfieldvalue('light','off'),'on'),
++	set(gca,'FaceLighting','gouraud','FaceColor','interp','AmbientStrength',0.5);
++	light('Position',[0 0.1 0.1],'Style','infinite');
++end
++
++//cloud of points: 
++if exist(options,'cloud'),
++	field=options.getfieldvalue('cloud');
++	x=field(:,1);
++	y=field(:,2);
++	//unit multiplier:
++	if exist(options,'unit'),
++		unit=options.getfieldvalue('unit');
++		x=x*unit;
++		y=y*unit;
++	end
++	hold on,p=plot(x,y,'k.');
++	markersize=options.getfieldvalue('markersize',12);
++	color=options.getfieldvalue('cloudcolor','k');
++	set(p,'Color',color);
++	set(p,'MarkerSize',markersize);
++end
++
++//========================//
++//OK VERY LAST STEP: INSET|
++//========================//
++if exist(options,'inset'),
++
++	//Keep pointer of main axis
++	maingca=gca;
++	//get inset relative position (x,y,width,height)
++	insetpos=options.getfieldvalue('insetpos',[0.56 0.55 0.35 0.35]);
++	//get current plot position
++	cplotpos=get(gca,'pos');
++
++	X1=options.getfieldvalue('insetx',xlim);
++	Y1=options.getfieldvalue('insety',ylim);
++
++	for i=1:length(options.getfieldvalue('insetx')),
++		if length(insetpos)==4,
++			insetposi=insetpos;
++		else
++			insetposi=insetpos{i};
++		end
++		PosInseti=[cplotpos(1)+insetposi(1)*cplotpos(3),cplotpos(2)+insetposi(2)*cplotpos(4), insetposi(3)*cplotpos(3), insetposi(4)*cplotpos(4)];
++		//show pos
++		if iscell(X1),
++			X1i=X1{i};
++		else
++			X1i=X1;
++		end
++		if iscell(Y1),
++			Y1i=Y1{i};
++		else
++			Y1i=Y1;
++		end
++		if strcmpi(options.getfieldvalue('showinset','off'),'on')
++			line(X1i([1 2 2 1 1]),Y1i([1 1 2 2 1]),zeros(1,5),'Color','k','LineWidth',2);
++		end
++
++		//Get current figure
++		ax1=gca;
++
++		//plot inset
++		axes('pos',PosInseti);
++		copyobj(get(ax1,'children'),gca);
++		patch('Faces',[1 2 3 4 1],'Vertices',[X1i([1 2 2 1])' Y1i([1 1 2 2])'],'FaceColor','None','EdgeColor','k','LineWidth',2);
++
++		//apply options
++		options=removefield(options,'text',0);
++		options=removefield(options,'title',0);
++		options=removefield(options,'xlabel',0);
++		options=removefield(options,'ylabel',0);
++		options=removefield(options,'inset',0);
++		options=removefield(options,'offsetaxispos',0);
++		options=removefield(options,'showregion',0);
++		options=changefieldvalue(options,'colorbar',0);
++		options=changefieldvalue(options,'latlon','off');
++		options=changefieldvalue(options,'axis','equal off');
++		options=changefieldvalue(options,'xlim',X1i);
++		options=changefieldvalue(options,'ylim',Y1i);
++		applyoptions(md,data,options);
++
++		//back to main gca
++		set(gcf,'CurrentAxes',maingca)
++	end
++end
++}
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19723)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19724)
+@@ -41,6 +41,8 @@
+ 			//node plot
+ 		case 2:
+ 
++			
++
+ 			if (elements[0].length==6){ //prisms
+ 				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+ 				  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+@@ -57,7 +59,25 @@
+ 				  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
+ 			}
+ 			else{
+-				throw Error('Here we are, take it over Dan');
++				
++				var canvas=document.getElementById(options.getfieldvalue('canvasid'));
++
++				//Initialize the GL context: 
++				var gl=initWebGL(canvas);
++
++				// Only continue if WebGL is available and working
++
++				if (gl) {
++					// Set clear color to black, fully opaque
++					gl.clearColor(0.0, 0.0, 0.0, 1.0);
++					// Enable depth testing
++					gl.enable(gl.DEPTH_TEST);
++					// Near things obscure far things
++					gl.depthFunc(gl.LEQUAL);
++					// Clear the color as well as the depth buffer.
++					gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++				}
++				
+ 				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); 
+ 				  patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+ 				  */
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19723)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19724)
+@@ -9,8 +9,6 @@
+ 	//parse options and get a structure of options. 
+ 	checkplotoptions(md,options);
+ 
+-	options.disp();
+-
+ 	//get data to be displayed
+ 	data=options.getfieldvalue('data');
+ 
+@@ -231,5 +229,5 @@
+ 			data2=data;
+ 		}
+ 	}
+-	applyoptions(md,data2,options);
++	//applyoptions(md,data2,options); 
+ }
+Index: ../trunk-jpl/src/m/plot/initWebGL.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/initWebGL.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/initWebGL.js	(revision 19724)
+@@ -0,0 +1,17 @@
++function initWebGL(canvas) {
++	gl = null;
++
++	try {
++		// Try to grab the standard context. If it fails, fallback to experimental.
++		gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
++	}
++	catch(e) {}
++
++	// If we don't have a GL context, give up now
++	if (!gl) {
++		alert("Unable to initialize WebGL. Your browser may not support it.");
++		gl = null;
++	}
++
++	return gl;
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19724-19725.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19724-19725.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19724-19725.diff	(revision 20498)
@@ -0,0 +1,582 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19724)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19725)
+@@ -4,6 +4,10 @@
+ #include "../shared/shared.h"
+ #include "../modules/modules.h"
+ 
++/*Define 2 hardcoded parameters*/
++#define OMEGA 0.001    // parameter controlling transition to nonlinear resistance in basal system (dimensionless)
++#define NU    1.787e-6 //kinematic water viscosity m^2/s
++
+ /*Model processing*/
+ void HydrologySommersAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+ 
+@@ -63,6 +67,7 @@
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
++	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyHeadEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyEnglacialInputEnum);
+@@ -95,15 +100,9 @@
+ ElementMatrix* HydrologySommersAnalysis::CreateKMatrix(Element* element){/*{{{*/
+ 
+ 	/*Intermediaries */
+-	IssmDouble conductivity;
+ 	IssmDouble Jdet;
+-	IssmDouble gap,reynolds;
+ 	IssmDouble* xyz_list = NULL;
+ 
+-	/*Hard coded parameters*/
+-	IssmDouble omega = 0.001;    // parameter controlling transition to nonlinear resistance in basal system (dimensionless)
+-	IssmDouble nu    = 1.787e-6; // kinematic water viscosity m^2/s
+-
+ 	/*Fetch number of nodes and dof for this finite element*/
+ 	int numnodes = element->GetNumberOfNodes();
+ 
+@@ -113,10 +112,10 @@
+ 
+ 	/*Retrieve all inputs and parameters*/
+ 	element->GetVerticesCoordinates(&xyz_list);
+-	IssmDouble  g = element->GetMaterialParameter(ConstantsGEnum);
+-	Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum);  _assert_(reynolds_input);
+-	Input* gap_input      = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);
+ 
++	/*Get conductivity from inputs*/
++	IssmDouble conductivity = GetConductivity(element);
++
+ 	/* Start  looping on the number of gaussian points: */
+ 	Gauss* gauss=element->NewGauss(2);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+@@ -125,18 +124,11 @@
+ 		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
+ 		element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
+ 
+-		/*Compute conductivity*/
+-		reynolds_input->GetInputValue(&reynolds,gauss);
+-		gap_input->GetInputValue(&gap,gauss);
+-		conductivity = pow(gap,3)*g/(12.*nu*(1+omega*reynolds));
+-
+ 		for(int i=0;i<numnodes;i++){
+ 			for(int j=0;j<numnodes;j++){
+ 				Ke->values[i*numnodes+j] += -conductivity*gauss->weight*Jdet*(dbasis[0*numnodes+i]*dbasis[0*numnodes+j] + dbasis[1*numnodes+i]*dbasis[1*numnodes+j]);
+ 			}
+ 		}
+-
+-
+ 	}
+ 
+ 	/*Clean up and return*/
+@@ -146,14 +138,13 @@
+ 	return Ke;
+ }/*}}}*/
+ ElementVector* HydrologySommersAnalysis::CreatePVector(Element* element){/*{{{*/
+-	_error_("STOP");
+ 
+ 	/*Skip if water or ice shelf element*/
+ 	if(element->IsFloating()) return NULL;
+ 
+ 	/*Intermediaries */
+-	IssmDouble  Jdet,dt;
+-	IssmDouble  mb,oldw;
++	IssmDouble  Jdet,meltrate,G,dh[2],B,A,n;
++	IssmDouble  gap,bed,thickness,head;
+ 	IssmDouble* xyz_list = NULL;
+ 
+ 	/*Fetch number of nodes and dof for this finite element*/
+@@ -165,11 +156,21 @@
+ 
+ 	/*Retrieve all inputs and parameters*/
+ 	element->GetVerticesCoordinates(&xyz_list);
+-	element->FindParam(&dt,TimesteppingTimeStepEnum);
+-	Input* mb_input   = element->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(mb_input);
+-	Input* oldw_input = element->GetInput(WaterColumnOldEnum);                      _assert_(oldw_input);
++	IssmDouble  latentheat      = element->GetMaterialParameter(MaterialsLatentheatEnum);
++	IssmDouble  g               = element->GetMaterialParameter(ConstantsGEnum);
++	IssmDouble  rho_ice         = element->GetMaterialParameter(MaterialsRhoIceEnum);
++	IssmDouble  rho_water       = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
++	Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);
++	Input* head_input           = element->GetInput(HydrologyHeadEnum);              _assert_(head_input);
++	Input* gap_input            = element->GetInput(HydrologyGapHeightEnum);         _assert_(gap_input);
++	Input* thickness_input      = element->GetInput(ThicknessEnum);                  _assert_(thickness_input);
++	Input* base_input           = element->GetInput(BaseEnum);                       _assert_(base_input);
++	Input* B_input              = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
++	Input* n_input              = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
+ 
+-	/*Initialize mb_correction to 0, do not forget!:*/
++	/*Get conductivity from inputs*/
++	IssmDouble conductivity = GetConductivity(element);
++
+ 	/* Start  looping on the number of gaussian points: */
+ 	Gauss* gauss=element->NewGauss(2);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+@@ -177,16 +178,31 @@
+ 
+ 		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
+ 		element->NodalFunctions(basis,gauss);
++		geothermalflux_input->GetInputValue(&G,gauss);
++		base_input->GetInputValue(&bed,gauss);
++		thickness_input->GetInputValue(&thickness,gauss);
++		gap_input->GetInputValue(&gap,gauss);
++		head_input->GetInputValue(&head,gauss);
++		head_input->GetInputDerivativeValue(&dh[0],xyz_list,gauss);
+ 
+-		mb_input->GetInputValue(&mb,gauss);
+-		oldw_input->GetInputValue(&oldw,gauss);
++		/*Get ice A parameter*/
++		B_input->GetInputValue(&B,gauss);
++		n_input->GetInputValue(&n,gauss);
++		A=pow(B,-n);
+ 
+-		if(dt!=0.){
+-			for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*(oldw+dt*mb)*basis[i];
+-		}
+-		else{
+-			for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*mb*basis[i];
+-		}
++		/*Get water and ice pressures*/
++		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
++		IssmDouble pressure_water = rho_water*g*(head-bed);
++		_assert_(pressure_water<=pressure_ice);
++
++		meltrate = 1/latentheat*(G+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
++		_assert_(meltrate>0.);
++
++		for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*
++		 (
++		  meltrate*(1/rho_water-1/rho_ice)
++		  +A*pow(fabs(pressure_ice-pressure_water),n-1)*(pressure_ice-pressure_water)*gap
++		  )*basis[i];
+ 	}
+ 
+ 	/*Clean up and return*/
+@@ -204,7 +220,9 @@
+ void           HydrologySommersAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
+ 
+ 	/*Intermediary*/
++	IssmDouble dh[3];
+ 	int* doflist = NULL;
++	IssmDouble* xyz_list = NULL;
+ 
+ 	/*Fetch number of nodes for this finite element*/
+ 	int numnodes = element->GetNumberOfNodes();
+@@ -213,20 +231,68 @@
+ 	element->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
+ 	IssmDouble* values = xNew<IssmDouble>(numnodes);
+ 
++	/*Get thickness and base on nodes to apply cap on water head*/
++	IssmDouble* thickness = xNew<IssmDouble>(numnodes);
++	IssmDouble* bed       = xNew<IssmDouble>(numnodes);
++	IssmDouble  rho_ice   = element->GetMaterialParameter(MaterialsRhoIceEnum);
++	IssmDouble  rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
++	element->GetInputListOnNodes(&thickness[0],ThicknessEnum);
++	element->GetInputListOnNodes(&bed[0],BaseEnum);
++
+ 	/*Use the dof list to index into the solution vector: */
+ 	for(int i=0;i<numnodes;i++){
+ 		values[i]=solution[doflist[i]];
++
++		/*make sure that p_water<p_ice ->  h<rho_i H/rho_w + zb*/
++		if(values[i]>rho_ice*thickness[i]/rho_water+bed[i]){
++			values[i] = rho_ice*thickness[i]/rho_water+bed[i];
++		}
++
+ 		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
+ 	}
+ 
+ 	/*Add input to the element: */
+ 	element->AddInput(HydrologyHeadEnum,values,element->GetElementType());
+ 
++	/*Update reynolds number according to new solution*/
++	element->GetVerticesCoordinates(&xyz_list);
++	Input* head_input = element->GetInput(HydrologyHeadEnum);_assert_(head_input);
++	head_input->GetInputDerivativeAverageValue(&dh[0],xyz_list);
++	IssmDouble conductivity = GetConductivity(element);
++	IssmDouble reynolds = conductivity*sqrt(dh[0]*dh[0]+dh[1]*dh[1])/(2.*NU);
++	element->AddInput(HydrologyReynoldsEnum,&reynolds,P0Enum);
++
+ 	/*Free ressources:*/
+ 	xDelete<IssmDouble>(values);
++	xDelete<IssmDouble>(thickness);
++	xDelete<IssmDouble>(bed);
++	xDelete<IssmDouble>(xyz_list);
+ 	xDelete<int>(doflist);
+ }/*}}}*/
+ void           HydrologySommersAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+ 	/*Default, do nothing*/
+ 	return;
+ }/*}}}*/
++
++/*Additional methods*/
++IssmDouble HydrologySommersAnalysis::GetConductivity(Element* element){/*{{{*/
++
++	/*Intermediaries */
++	IssmDouble gap,reynolds;
++
++	/*Get gravity from parameters*/
++	IssmDouble  g = element->GetMaterialParameter(ConstantsGEnum);
++
++	/*Get Reynolds and gap average values*/
++	Input* reynolds_input = element->GetInput(HydrologyReynoldsEnum);  _assert_(reynolds_input);
++	Input* gap_input      = element->GetInput(HydrologyGapHeightEnum); _assert_(gap_input);
++	reynolds_input->GetInputAverage(&reynolds);
++	gap_input->GetInputAverage(&gap);
++
++	/*Compute conductivity*/
++	IssmDouble conductivity = pow(gap,3)*g/(12.*NU*(1+OMEGA*reynolds));
++	_assert_(conductivity>0);
++
++	/*Clean up and return*/
++	return conductivity;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 19724)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 19725)
+@@ -29,5 +29,8 @@
+ 		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
+ 		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
+ 		void           UpdateConstraints(FemModel* femmodel);
++
++		/*Intermediaries*/
++		IssmDouble GetConductivity(Element* element);
+ };
+ #endif
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19724)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19725)
+@@ -163,6 +163,7 @@
+ 	HydrologyEnglacialInputEnum,
+ 	HydrologyReynoldsEnum,
+ 	HydrologySpcheadEnum,
++	HydrologyConductivityEnum,
+ 	IndependentObjectEnum,
+ 	InversionControlParametersEnum,
+ 	InversionControlScalingFactorsEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19724)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19725)
+@@ -169,6 +169,7 @@
+ 		case HydrologyEnglacialInputEnum : return "HydrologyEnglacialInput";
+ 		case HydrologyReynoldsEnum : return "HydrologyReynolds";
+ 		case HydrologySpcheadEnum : return "HydrologySpchead";
++		case HydrologyConductivityEnum : return "HydrologyConductivity";
+ 		case IndependentObjectEnum : return "IndependentObject";
+ 		case InversionControlParametersEnum : return "InversionControlParameters";
+ 		case InversionControlScalingFactorsEnum : return "InversionControlScalingFactors";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19724)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19725)
+@@ -172,6 +172,7 @@
+ 	      else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
+ 	      else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
+ 	      else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
++	      else if (strcmp(name,"HydrologyConductivity")==0) return HydrologyConductivityEnum;
+ 	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
+ 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
+ 	      else if (strcmp(name,"InversionControlScalingFactors")==0) return InversionControlScalingFactorsEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+ 	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+ 	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+-	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
++	      if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
++	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
+ 	      else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
+ 	      else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
+ 	      else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
+ 	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+ 	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
+-	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
++	      if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
++	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+ 	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
+ 	      else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
+ 	      else if (strcmp(name,"SmbC")==0) return SmbCEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
+ 	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
+ 	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+-	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
++	      if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
++	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
+ 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
+ 	      else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
+ 	      else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"Open")==0) return OpenEnum;
+ 	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
+ 	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
+-	      else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
++	      if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
++	      else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
+ 	      else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
+ 	      else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
+ 	      else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+ 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
+-	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
++	      if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
++	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+ 	      else if (strcmp(name,"J")==0) return JEnum;
+ 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
+ 	      else if (strcmp(name,"Step")==0) return StepEnum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
+ 	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+ 	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
+-	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
++	      if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
++	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
+ 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
+ 	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
+ 	      else if (strcmp(name,"VxObs")==0) return VxObsEnum;
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h	(revision 19725)
+@@ -53,6 +53,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
+ 		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/DoubleInput.h	(revision 19725)
+@@ -54,6 +54,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/SegInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/SegInput.h	(revision 19725)
+@@ -56,6 +56,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/TetraInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/TetraInput.h	(revision 19725)
+@@ -56,6 +56,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/Input.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/Input.h	(revision 19725)
+@@ -33,6 +33,7 @@
+ 		virtual void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index)=0;
+ 		virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss)=0;
+ 		virtual void GetInputAverage(IssmDouble* pvalue)=0;
++		virtual void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list)=0;
+ 		virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0;
+ 		virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime)=0;
+ 		virtual void ChangeEnum(int newenumtype)=0;
+Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.h	(revision 19725)
+@@ -57,6 +57,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/DatasetInput.h	(revision 19725)
+@@ -53,6 +53,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index);
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
+ 		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.cpp	(revision 19725)
+@@ -191,6 +191,26 @@
+ 	*pvalue=value;
+ }
+ /*}}}*/
++void TriaInput::GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){/*{{{*/
++
++	int        numnodes  = this->NumberofNodes(this->interpolation_type);
++	IssmDouble numnodesd = reCast<int,IssmDouble>(numnodes);
++	IssmDouble dvalue[3];
++
++	derivativevalues[0] = 0.;
++	derivativevalues[1] = 0.;
++
++	GaussTria* gauss=new GaussTria();
++	for(int iv=0;iv<numnodes;iv++){
++		gauss->GaussNode(this->interpolation_type,iv);
++		this->GetInputDerivativeValue(&dvalue[0],xyz_list,gauss);
++
++		derivativevalues[0] += dvalue[0]/numnodesd;
++		derivativevalues[1] += dvalue[1]/numnodesd;
++	}
++	delete gauss;
++}
++/*}}}*/
+ void TriaInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){/*{{{*/
+ 
+ 	IssmDouble* outvalues=NULL;
+Index: ../trunk-jpl/src/c/classes/Inputs/IntInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/IntInput.h	(revision 19725)
+@@ -55,6 +55,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
+ 		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/BoolInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/BoolInput.h	(revision 19725)
+@@ -51,6 +51,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
+ 		void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");};
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/TriaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/TriaInput.h	(revision 19725)
+@@ -56,6 +56,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list);
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/Inputs.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/Inputs.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/Inputs.h	(revision 19725)
+@@ -38,6 +38,7 @@
+ 		IssmDouble  Min(int enumtype);
+ 		IssmDouble  MinAbs(int enumtype);
+ 		void        GetInputAverage(IssmDouble* pvalue, int enum_type);
++		void        GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
+ 		void        GetInputValue(bool* pvalue,int enum_type);
+ 		void        GetInputValue(int* pvalue,int enum_type);
+ 		void        GetInputValue(IssmDouble* pvalue,int enum_type);
+Index: ../trunk-jpl/src/c/classes/Inputs/PentaInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/PentaInput.h	(revision 19725)
+@@ -55,6 +55,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/c/classes/Inputs/TransientInput.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19724)
++++ ../trunk-jpl/src/c/classes/Inputs/TransientInput.h	(revision 19725)
+@@ -60,6 +60,7 @@
+ 		void GetInputValue(IssmDouble* pvalue,Gauss* gauss ,int index){_error_("not implemented yet");};
+ 		void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list,Gauss* gauss);
+ 		void GetInputAverage(IssmDouble* pvalue);
++		void GetInputDerivativeAverageValue(IssmDouble* derivativevalues, IssmDouble* xyz_list){_error_("not implemented yet");};
+ 		void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
+ 		void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
+ 		void ChangeEnum(int newenumtype);
+Index: ../trunk-jpl/src/m/enum/HydrologyConductivityEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyConductivityEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyConductivityEnum.m	(revision 19725)
+@@ -0,0 +1,11 @@
++function macro=HydrologyConductivityEnum()
++%HYDROLOGYCONDUCTIVITYENUM - Enum of HydrologyConductivity
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyConductivityEnum()
++
++macro=StringToEnum('HydrologyConductivity');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19724)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19725)
+@@ -161,6 +161,7 @@
+ def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
+ def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
+ def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
++def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0]
+ def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
+ def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
+ def InversionControlScalingFactorsEnum(): return StringToEnum("InversionControlScalingFactors")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19725-19726.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19725-19726.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19725-19726.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19725)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19726)
+@@ -18,7 +18,7 @@
+ <script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/initWebGL.js"></script>
++<script type="text/javascript" src="../../src/m/plot/webgl.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+Index: ../trunk-jpl/src/m/plot/initWebGL.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/initWebGL.js	(revision 19725)
++++ ../trunk-jpl/src/m/plot/initWebGL.js	(revision 19726)
+@@ -1,17 +0,0 @@
+-function initWebGL(canvas) {
+-	gl = null;
+-
+-	try {
+-		// Try to grab the standard context. If it fails, fallback to experimental.
+-		gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
+-	}
+-	catch(e) {}
+-
+-	// If we don't have a GL context, give up now
+-	if (!gl) {
+-		alert("Unable to initialize WebGL. Your browser may not support it.");
+-		gl = null;
+-	}
+-
+-	return gl;
+-}
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19726)
+@@ -0,0 +1,17 @@
++function initWebGL(canvas) {
++	gl = null;
++
++	try {
++		// Try to grab the standard context. If it fails, fallback to experimental.
++		gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
++	}
++	catch(e) {}
++
++	// If we don't have a GL context, give up now
++	if (!gl) {
++		alert("Unable to initialize WebGL. Your browser may not support it.");
++		gl = null;
++	}
++
++	return gl;
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19726-19727.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19726-19727.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19726-19727.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19726)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19727)
+@@ -8,7 +8,26 @@
+ 
+ 	//edgecolor
+ 	edgecolor=options.getfieldvalue('edgecolor','none');
++	
++	/*First initialize webgl for the corresponding canvas: */
++	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
++	//Initialize the GL context: 
++	var gl=initWebGL(canvas);
++
++	// Only continue if WebGL is available and working
++
++	if (gl) {
++		// Set clear color to black, fully opaque
++		gl.clearColor(0.0, 0.0, 0.0, 1.0);
++		// Enable depth testing
++		gl.enable(gl.DEPTH_TEST);
++		// Near things obscure far things
++		gl.depthFunc(gl.LEQUAL);
++		// Clear the color as well as the depth buffer.
++		gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++	}
++
+ 	switch(datatype){
+ 
+ 		//element plot
+@@ -41,8 +60,6 @@
+ 			//node plot
+ 		case 2:
+ 
+-			
+-
+ 			if (elements[0].length==6){ //prisms
+ 				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+ 				  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+@@ -60,24 +77,6 @@
+ 			}
+ 			else{
+ 				
+-				var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+-
+-				//Initialize the GL context: 
+-				var gl=initWebGL(canvas);
+-
+-				// Only continue if WebGL is available and working
+-
+-				if (gl) {
+-					// Set clear color to black, fully opaque
+-					gl.clearColor(0.0, 0.0, 0.0, 1.0);
+-					// Enable depth testing
+-					gl.enable(gl.DEPTH_TEST);
+-					// Near things obscure far things
+-					gl.depthFunc(gl.LEQUAL);
+-					// Clear the color as well as the depth buffer.
+-					gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+-				}
+-				
+ 				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); 
+ 				  patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+ 				  */
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19726)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19727)
+@@ -1,4 +1,5 @@
+-function initWebGL(canvas) {
++/*This is where we have all our webgl relevant functionality for the plotting routines: */
++function initWebGL(canvas) { //{{{
+ 	gl = null;
+ 
+ 	try {
+@@ -14,4 +15,4 @@
+ 	}
+ 
+ 	return gl;
+-}
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19727-19728.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19727-19728.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19727-19728.diff	(revision 20498)
@@ -0,0 +1,424 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19727)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19728)
+@@ -3,6 +3,11 @@
+ <head><title>ISSM Web APP &mdash; Beta</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
++<script type="text/javascript" src="webgl/jquery-1.11.1.js"></script>
++<script type="text/javascript" src="webgl/gl-matrix-2.2.0.js"></script>
++<script type="text/javascript" src="webgl/colorbars.js"></script>
++<script type="text/javascript" src="./IssmModule.js"></script>
++<script type="text/javascript" src="./sprintf.js"></script>
+ <script type="text/javascript" src="../Exp/Square.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/model.js"></script>
+@@ -26,8 +31,6 @@
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+-<script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+-<script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+@@ -36,7 +39,6 @@
+ 	<canvas id="figure2" width="640" height="480">
+ 	</canvas>
+ 
+-
+ 	<script type="text/javascript" async><!--}}}-->
+ 
+ 	var md = new model();
+@@ -46,5 +48,6 @@
+ 	plotmodel(md,'data',md.mask.ice_levelset,'data',md.mask.ice_levelset,'canvasid','figure1','canvasid','figure2');
+ 	
+ </script> <!--{{{-->
++<canvas id="ISSM-canvas"></canvas>
+ </body> 
+ </html><!--}}}-->
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19727)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19728)
+@@ -1,4 +1,4 @@
+-function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options){
++function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options) {
+ 	//PLOT_UNIT - unit plot, display data
+ 	//
+ 	//   Usage:
+@@ -12,20 +12,15 @@
+ 	/*First initialize webgl for the corresponding canvas: */
+ 	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
+-	//Initialize the GL context: 
++	// Initialize the GL context: 
+ 	var gl=initWebGL(canvas);
+ 
+ 	// Only continue if WebGL is available and working
+ 
+ 	if (gl) {
+-		// Set clear color to black, fully opaque
+-		gl.clearColor(0.0, 0.0, 0.0, 1.0);
+-		// Enable depth testing
+-		gl.enable(gl.DEPTH_TEST);
+-		// Near things obscure far things
+-		gl.depthFunc(gl.LEQUAL);
+-		// Clear the color as well as the depth buffer.
+-		gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++		loadShaders(gl);
++		var node=loadModel(gl,x,y,z,elements,data);
++		drawSceneGraphNode(gl,node);
+ 	}
+ 
+ 	switch(datatype){
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19727)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19728)
+@@ -1,4 +1,6 @@
+ /*This is where we have all our webgl relevant functionality for the plotting routines: */
++var shaders = {};
++//{{{ GL Initialization
+ function initWebGL(canvas) { //{{{
+ 	gl = null;
+ 
+@@ -14,5 +16,337 @@
+ 		gl = null;
+ 	}
+ 
++
++	// Set clear color to black, fully opaque
++	gl.clearColor(0.0, 0.0, 0.0, 1.0);
++	// Enable depth testing
++	gl.enable(gl.DEPTH_TEST);
++	// Near things obscure far things
++	gl.depthFunc(gl.LEQUAL);
++	// Clear the color as well as the depth buffer.
++	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++
++	// Allocate arrays equal to maximium number of attributes used by any one shader
++	gl.enableVertexAttribArray(0);
++	gl.enableVertexAttribArray(1);
++
++	// Add context state variables
++	//gl.zoomFactor = 1.0;
++	//gl.cameraMatrix = mat4.create();
++
++	// Add event listeners for canvas
++	if (canvas.addEventListener) {
++		// IE9, Chrome, Safari, Opera
++		canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e,gl)}, false);
++		// Firefox
++		canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,gl)}, false);
++		// Mobile
++		//canvas.addEventListener("gesturechange", MousePinchHandler, false);
++	}
++
+ 	return gl;
+ } //}}}
++function loadModel(gl,x,y,z,elements,data){ //{{{
++	colorbar=colorbars["rainbow"];
++	model={"x":x,"y":y,"z":z,"elements":elements};	
++	sceneGraph={};
++	sceneGraph["model"] = sceneGraphNode(gl);
++	sceneGraph["model"]["shaderName"] = "colored";
++	sceneGraph["model"]["shader"] = shaders["colored"]["program"];
++	sceneGraph["model"]["useIndexBuffer"] = true;
++	
++	var meshVertices = [];
++	var meshColors = [];
++	var meshNormals = [];
++	var color = [];
++
++	var qmin = Math.min.apply(null,data);
++	var qmax = Math.max.apply(null,data);
++	var xmin = Math.min.apply(null,model["x"]);
++	var xmax = Math.max.apply(null,model["x"]);
++	var ymin = Math.min.apply(null,model["y"]);
++	var ymax = Math.max.apply(null,model["y"]);
++	var zmin = Math.min.apply(null,[0]);
++	var zmax = Math.max.apply(null,[0]);
++	
++	var scale = 1 / (xmax - xmin);
++	sceneGraph["model"]["scale"] = [scale, scale, scale];
++	sceneGraph["model"]["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	sceneGraph["model"]["modelMatrix"] = recalculateModelMatrix(sceneGraph["model"]);
++
++	for(var i = 0; i < model["x"].length; i++){
++		meshVertices[meshVertices.length] = model["x"][i];
++		meshVertices[meshVertices.length] = model["y"][i];
++		meshVertices[meshVertices.length] = 0.0;
++		
++		//initialize vertex normals
++		meshNormals[meshNormals.length] = 0.0;
++		meshNormals[meshNormals.length] = 0.0;
++		meshNormals[meshNormals.length] = 0.0;
++		
++		//handle mesh/qinterest size mismatch
++		color = rgb(data[i], qmin, qmax);
++		meshColors[meshColors.length] = color[0];
++		meshColors[meshColors.length] = color[1];
++		meshColors[meshColors.length] = color[2];
++		meshColors[meshColors.length] = 1.0;
++	}
++
++	var indices = [];
++	indices = indices.concat.apply(indices, model["elements"]);
++
++	for (var i = 0; i < indices.length; i += 3){
++		indices[i] -= 1;
++		indices[i + 1] -= 1;
++		indices[i + 2] -= 1;
++	}
++
++	meshVertices.itemSize = 3;
++	meshColors.itemSize = 4;
++	indices.itemSize = 1;
++
++	sceneGraph["model"]["buffers"] = initBuffers(gl,[meshVertices, meshColors, indices]);
++	return sceneGraph["model"];
++} //}}}
++function initBuffers(gl,arrays) { //{{{	
++	var bufferArray = [];
++	for (var i = 0; i < arrays.length; i++) {
++		bufferArray[i] = gl.createBuffer();	
++		bufferArray[i].itemSize = arrays[i].itemSize;
++		bufferArray[i].numItems = arrays[i].length/bufferArray[i].itemSize;
++		
++		if (bufferArray[i].itemSize > 1) {
++			gl.bindBuffer(gl.ARRAY_BUFFER, bufferArray[i]);
++			gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(arrays[i]), gl.STATIC_DRAW);
++		}
++		else {
++			//TODO: identify index buffers uniquely (by name)
++			gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferArray[i]);
++			gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(arrays[i]), gl.STATIC_DRAW);
++		}
++	}	
++	return bufferArray;
++} //}}}
++function sceneGraphNode(gl) { //{{{
++	//Primary object for storing common rendering information.
++	return {buffers:[],
++		shader:null,
++		draw:null,
++		hideOcean:false,
++		level:0,
++		useIndexBuffer:false,
++		useOrthographic:false,
++	       	transparency:1.0,
++		disableDepthTest:false, 
++		enableCullFace:false,
++		cullFace:gl.FRONT,
++		drawMode:gl.TRIANGLES,
++		texture:null,
++		translation:vec3.create(),
++		rotation:vec3.create(),
++		scale:vec3.fromValues(1, 1, 1),
++		modelMatrix:mat4.create()};
++} //}}}
++function recalculateModelMatrix(node) { //{{{
++	var modelMatrix = mat4.create();
++
++	var scaleMatrix = mat4.create();
++	mat4.scale(scaleMatrix, scaleMatrix, node["scale"]);
++	mat4.multiply(modelMatrix, scaleMatrix, modelMatrix);
++
++	var zRotationMatrix = mat4.create();	
++	mat4.rotate(zRotationMatrix, zRotationMatrix, node["rotation"][2] * Math.PI/180.0, [0.0, 0.0, 1.0]);
++	mat4.multiply(modelMatrix, zRotationMatrix, modelMatrix);
++	var yRotationMatrix = mat4.create();	
++	mat4.rotate(yRotationMatrix, yRotationMatrix, node["rotation"][1] * Math.PI/180.0, [0.0, 1.0, 0.0]);
++	mat4.multiply(modelMatrix, yRotationMatrix, modelMatrix);
++	var xRotationMatrix = mat4.create();	
++	mat4.rotate(xRotationMatrix, xRotationMatrix, node["rotation"][0] * Math.PI/180.0, [1.0, 0.0, 0.0]);
++	mat4.multiply(modelMatrix, xRotationMatrix, modelMatrix);
++
++	var translationMatrix = mat4.create();
++	mat4.translate(translationMatrix, translationMatrix, node["translation"]); //relative translation
++	mat4.multiply(modelMatrix, translationMatrix, modelMatrix);
++
++	return modelMatrix;
++} //}}}
++function rgb(value, min, max) { //{{{
++	value = clamp(value, min + 1.0, max);
++	var use_log_scale = true;
++	if (use_log_scale == true) {
++		var normalizedValue = Math.log(value - min) / Math.log(max - min);
++	}
++	else {
++		var normalizedValue = (value - min) / (max - min);
++	}
++	var index = clamp(Math.round(normalizedValue * colorbar.length), 0, colorbar.length - 1);
++	return colorbar[index];
++} //}}}
++function clamp(value, min, max) { //{{{
++	return Math.max(min, Math.min(value, max));
++} //}}}
++//}}}
++//{{{ Shader Loading
++function loadShaders(gl) { //{{{
++	var shader_name_array = ["colored"];
++	//var shaders = {};
++	for (var i = 0; i < shader_name_array.length; i++) {
++		loadShader(gl,shader_name_array[i]);
++	}
++	//return shaders; 
++} //}}}
++function loadShader(gl,shaderName) { //{{{
++	//var shader = {loaded:false, vsh:{}, fsh:{}};
++	shaders[shaderName] = {loaded:false, vsh:{}, fsh:{}};
++	$.ajax({
++		url: "webgl/shaders/" + shaderName + ".vsh",
++		async: false,
++		dataType: "script"
++	});
++	$.ajax({
++		url: "webgl/shaders/" + shaderName + ".fsh",
++		async: false,
++		dataType: "script"
++	});
++
++	shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
++	shaders[shaderName]["fsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["fsh"]["string"], "fsh");
++
++	shaders[shaderName]["program"] = gl.createProgram();
++	gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["vsh"]["shader"]);
++	gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["fsh"]["shader"]);
++	gl.linkProgram(shaders[shaderName]["program"]);
++
++	if (!gl.getProgramParameter(shaders[shaderName]["program"], gl.LINK_STATUS)) {
++		alert("Could not initialise shaders");
++	}
++
++	var vshStringArray = shaders[shaderName]["vsh"]["string"].split("\n");
++	var fshStringArray = shaders[shaderName]["fsh"]["string"].split("\n");
++	var line = "";
++	var property = "";
++	for (var i = 0; i < vshStringArray.length; i++) {
++		line = vshStringArray[i];
++		if (line.search("attribute") != -1) {
++			property = nameFromLine(line);
++			shaders[shaderName]["program"][property] = gl.getAttribLocation(shaders[shaderName]["program"], property);
++		}
++		else if (line.search("uniform") != -1) {
++			property = nameFromLine(line);
++			shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
++		}
++		else if (line.search("void main") != -1) {
++			break;
++		}
++	}
++	for (var i = 0; i < fshStringArray.length; i++) {
++		line = fshStringArray[i];
++		if (line.search("uniform") != -1) {
++			property = nameFromLine(line);
++			shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
++		}
++		else if (line.search("void main") != -1) {
++			break;
++		}
++	}
++	shaders[shaderName]["loaded"] = true;
++	//return shader;
++} //}}}
++function getShaderByString(gl,str,type) { //{{{
++	var shader;
++	if (type == "fsh") {
++		shader = gl.createShader(gl.FRAGMENT_SHADER);
++	}
++	else if (type == "vsh") {
++		shader = gl.createShader(gl.VERTEX_SHADER);
++	}
++	else {
++		return null;
++	}
++	
++	gl.shaderSource(shader, str);
++	gl.compileShader(shader);
++
++	if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {	
++		alert(gl.getShaderInfoLog(shader));
++		return null;
++	}
++
++	return shader;
++} //}}}
++function functionToString(functionVariable) { //{{{
++	//Workaround for loading text files - store as multiline comment in function, then strip string from function once loaded
++	return functionVariable.toString().replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, '');
++} //}}}
++function nameFromLine(line) { //{{{
++	//returns lowerCamelCase property name from shader line
++	var fullName = line.split(" ")[2];
++	return fullName.slice(0, fullName.search(";"));
++} //}}}
++//}}}
++//{{{ Interface Functions
++function MouseWheelHandler(e,gl) { //{{{
++	// prevent scrolling when over canvas
++	e.preventDefault();
++	var delta = clamp((e.wheelDelta || -e.detail), -1, 1);
++	//gl.zoomFactor = gl.zoomFactor + delta;
++	updateCameraMatrix(gl);
++} //}}}
++//}}}
++//{{{ Drawing Functions
++function updateCameraMatrix(gl) { //{{{
++       	//Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix.
++	var vMatrix = mat4.create();
++	var pMatrix = mat4.create();
++
++	mat4.perspective(pMatrix, 45 * Math.PI / 180, gl.canvas.width / gl.canvas.height, 0.001, 10000.0);
++
++	var scaleMatrix= mat4.create();
++	mat4.scale(scaleMatrix, scaleMatrix, [1/100000000000000, 1/100000000000000, 1/100000000000000]);	
++	mat4.multiply(vMatrix, scaleMatrix, vMatrix);
++
++	//Apply screenspace relative translation
++	var translateMatrix = mat4.create();
++	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, gl.zoomFactor]);
++	mat4.multiply(vMatrix, translateMatrix, vMatrix);
++
++	//Apply projection matrix to get camera matrix
++	mat4.multiply(gl.cameraMatrix, pMatrix, vMatrix);
++}//}}}
++function drawSceneGraphNode(gl,node) { //{{{
++	bindAttributes(gl, node["shader"], node["buffers"]);
++	var mvpMatrix = mat4.create();
++	var cameraMatrix = mat4.create();
++	//var cameraMatrix = gl.cameraMatrix;
++	if (node["useOrthographic"] == true) {
++		mat4.ortho(mvpMatrix, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
++	}
++	else {
++		mat4.multiply(mvpMatrix, cameraMatrix, node["modelMatrix"]);
++	}
++	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
++	gl.uniform1f(node["shader"]["uAlpha"], node["transparency"]);
++	if  (node["useIndexBuffer"]) {
++		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
++		gl.drawElements(node["drawMode"], node["buffers"][node["buffers"].length - 1].numItems, gl.UNSIGNED_SHORT, 0);
++	}
++	else {
++		gl.drawArrays(node["drawMode"], 0, node["buffers"][0].numItems);
++	}	
++	gl.enable(gl.DEPTH_TEST);
++	gl.disable(gl.CULL_FACE);
++} //}}}
++function bindAttributes(gl,shaderProgram,bufferArray) { //{{{
++	gl.useProgram(shaderProgram);
++	var arrayNumber = 0;
++	for (var propertyName in shaderProgram) {
++		if (propertyName[0] == "a") {
++			if (bufferArray[arrayNumber].itemSize > 1) {
++				gl.bindBuffer(gl.ARRAY_BUFFER, bufferArray[arrayNumber]);
++				gl.vertexAttribPointer(shaderProgram[propertyName], bufferArray[arrayNumber].itemSize, gl.FLOAT, false, 0, 0);
++				arrayNumber++;
++			}
++		}
++	}
++} //}}}
++//}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19728-19729.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19728-19729.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19728-19729.diff	(revision 20498)
@@ -0,0 +1,116 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19728)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19729)
+@@ -20,8 +20,7 @@
+ 	if (gl) {
+ 		loadShaders(gl);
+ 		var node=loadModel(gl,x,y,z,elements,data);
+-		drawSceneGraphNode(gl,node);
+-	}
++		draw(gl,canvas,node);}
+ 
+ 	switch(datatype){
+ 
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19728)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19729)
+@@ -31,15 +31,15 @@
+ 	gl.enableVertexAttribArray(1);
+ 
+ 	// Add context state variables
+-	//gl.zoomFactor = 1.0;
+-	//gl.cameraMatrix = mat4.create();
++	canvas.zoomFactor = -1.0;
++	canvas.cameraMatrix = mat4.create();
+ 
+ 	// Add event listeners for canvas
+ 	if (canvas.addEventListener) {
+ 		// IE9, Chrome, Safari, Opera
+-		canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e,gl)}, false);
++		canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e,canvas)}, false);
+ 		// Firefox
+-		canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,gl)}, false);
++		canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,canvas)}, false);
+ 		// Mobile
+ 		//canvas.addEventListener("gesturechange", MousePinchHandler, false);
+ 	}
+@@ -285,44 +285,38 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function MouseWheelHandler(e,gl) { //{{{
++function MouseWheelHandler(e,canvas) { //{{{
+ 	// prevent scrolling when over canvas
+ 	e.preventDefault();
+-	var delta = clamp((e.wheelDelta || -e.detail), -1, 1);
+-	//gl.zoomFactor = gl.zoomFactor + delta;
+-	updateCameraMatrix(gl);
++	var delta = 1/10 * clamp((e.wheelDelta || -e.detail), -1, 1);
++	canvas.zoomFactor = canvas.zoomFactor + -delta * canvas.zoomFactor;
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
+-function updateCameraMatrix(gl) { //{{{
++function updateCameraMatrix(canvas) { //{{{
+        	//Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix.
+ 	var vMatrix = mat4.create();
+ 	var pMatrix = mat4.create();
+ 
+-	mat4.perspective(pMatrix, 45 * Math.PI / 180, gl.canvas.width / gl.canvas.height, 0.001, 10000.0);
++	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.width / canvas.height, 0.001, 10000.0);
+ 
+-	var scaleMatrix= mat4.create();
+-	mat4.scale(scaleMatrix, scaleMatrix, [1/100000000000000, 1/100000000000000, 1/100000000000000]);	
+-	mat4.multiply(vMatrix, scaleMatrix, vMatrix);
+-
+ 	//Apply screenspace relative translation
+ 	var translateMatrix = mat4.create();
+-	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, gl.zoomFactor]);
++	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]);
+ 	mat4.multiply(vMatrix, translateMatrix, vMatrix);
+ 
+ 	//Apply projection matrix to get camera matrix
+-	mat4.multiply(gl.cameraMatrix, pMatrix, vMatrix);
++	mat4.multiply(canvas.cameraMatrix, pMatrix, vMatrix);
++//	canvas.cameraMatrix = mat4.create();
+ }//}}}
+-function drawSceneGraphNode(gl,node) { //{{{
++function drawSceneGraphNode(gl,canvas,node) { //{{{
+ 	bindAttributes(gl, node["shader"], node["buffers"]);
+ 	var mvpMatrix = mat4.create();
+-	var cameraMatrix = mat4.create();
+-	//var cameraMatrix = gl.cameraMatrix;
+ 	if (node["useOrthographic"] == true) {
+ 		mat4.ortho(mvpMatrix, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
+ 	}
+ 	else {
+-		mat4.multiply(mvpMatrix, cameraMatrix, node["modelMatrix"]);
++		mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]);
+ 	}
+ 	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
+ 	gl.uniform1f(node["shader"]["uAlpha"], node["transparency"]);
+@@ -333,8 +327,6 @@
+ 	else {
+ 		gl.drawArrays(node["drawMode"], 0, node["buffers"][0].numItems);
+ 	}	
+-	gl.enable(gl.DEPTH_TEST);
+-	gl.disable(gl.CULL_FACE);
+ } //}}}
+ function bindAttributes(gl,shaderProgram,bufferArray) { //{{{
+ 	gl.useProgram(shaderProgram);
+@@ -349,4 +341,13 @@
+ 		}
+ 	}
+ } //}}}
++function draw(gl,canvas,node) { //{{{
++	window.requestAnimationFrame(function(time) {draw(gl,canvas,node)});
++	gl.viewport(0, 0, canvas.width, canvas.height);
++	gl.clearColor(0.0, 0.0, 0.0, 1.0);	
++	gl.clear(gl.COLOR_BUFFER_BIT);
++	updateCameraMatrix(canvas);
++	
++	drawSceneGraphNode(gl, canvas, node);
++} //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19729-19730.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19729-19730.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19729-19730.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19729)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19730)
+@@ -172,7 +172,7 @@
+ } //}}}
+ function rgb(value, min, max) { //{{{
+ 	value = clamp(value, min + 1.0, max);
+-	var use_log_scale = true;
++	var use_log_scale = false;
+ 	if (use_log_scale == true) {
+ 		var normalizedValue = Math.log(value - min) / Math.log(max - min);
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19730-19731.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19730-19731.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19730-19731.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19730)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19731)
+@@ -117,7 +117,7 @@
+ 	IssmDouble conductivity = GetConductivity(element);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=element->NewGauss(2);
++	Gauss* gauss=element->NewGauss(1);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 		gauss->GaussPoint(ig);
+ 
+@@ -126,7 +126,7 @@
+ 
+ 		for(int i=0;i<numnodes;i++){
+ 			for(int j=0;j<numnodes;j++){
+-				Ke->values[i*numnodes+j] += -conductivity*gauss->weight*Jdet*(dbasis[0*numnodes+i]*dbasis[0*numnodes+j] + dbasis[1*numnodes+i]*dbasis[1*numnodes+j]);
++				Ke->values[i*numnodes+j] += conductivity*gauss->weight*Jdet*(dbasis[0*numnodes+i]*dbasis[0*numnodes+j] + dbasis[1*numnodes+i]*dbasis[1*numnodes+j]);
+ 			}
+ 		}
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19731-19732.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19731-19732.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19731-19732.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19731)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19732)
+@@ -13,14 +13,14 @@
+ 	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
+ 	// Initialize the GL context: 
+-	var gl=initWebGL(canvas);
++	var gl=initWebGL(canvas,options);
+ 
+ 	// Only continue if WebGL is available and working
+-
+ 	if (gl) {
+ 		loadShaders(gl);
+ 		var node=loadModel(gl,x,y,z,elements,data);
+-		draw(gl,canvas,node);}
++		draw(gl,canvas,node);
++	}
+ 
+ 	switch(datatype){
+ 
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19731)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19732)
+@@ -1,7 +1,7 @@
+ /*This is where we have all our webgl relevant functionality for the plotting routines: */
+ var shaders = {};
+ //{{{ GL Initialization
+-function initWebGL(canvas) { //{{{
++function initWebGL(canvas,options) { //{{{
+ 	gl = null;
+ 
+ 	try {
+@@ -18,7 +18,12 @@
+ 
+ 
+ 	// Set clear color to black, fully opaque
+-	gl.clearColor(0.0, 0.0, 0.0, 1.0);
++	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
++	if(backgroundcolor.ok){
++		gl.clearColor(backgroundcolor.r/255.0, backgroundcolor.g/255.0, backgroundcolor.b/255.0, 1.0);
++	}
++	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
++
+ 	// Enable depth testing
+ 	gl.enable(gl.DEPTH_TEST);
+ 	// Near things obscure far things
+@@ -344,7 +349,6 @@
+ function draw(gl,canvas,node) { //{{{
+ 	window.requestAnimationFrame(function(time) {draw(gl,canvas,node)});
+ 	gl.viewport(0, 0, canvas.width, canvas.height);
+-	gl.clearColor(0.0, 0.0, 0.0, 1.0);	
+ 	gl.clear(gl.COLOR_BUFFER_BIT);
+ 	updateCameraMatrix(canvas);
+ 	
Index: /issm/oecreview/Archive/19101-20495/ISSM-19732-19733.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19732-19733.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19732-19733.diff	(revision 20498)
@@ -0,0 +1,293 @@
+Index: ../trunk-jpl/src/m/miscellaneous/rgbcolor.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/rgbcolor.js	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/rgbcolor.js	(revision 19733)
+@@ -0,0 +1,288 @@
++/**
++ * A class to parse color values
++ * @author Stoyan Stefanov <sstoo@gmail.com>
++ * @link   http://www.phpied.com/rgb-color-parser-in-javascript/
++ * @license Use it if you like it
++ */
++function RGBColor(color_string)
++{
++    this.ok = false;
++
++    // strip any leading #
++    if (color_string.charAt(0) == '#') { // remove # if any
++        color_string = color_string.substr(1,6);
++    }
++
++    color_string = color_string.replace(/ /g,'');
++    color_string = color_string.toLowerCase();
++
++    // before getting into regexps, try simple matches
++    // and overwrite the input
++    var simple_colors = {
++        aliceblue: 'f0f8ff',
++        antiquewhite: 'faebd7',
++        aqua: '00ffff',
++        aquamarine: '7fffd4',
++        azure: 'f0ffff',
++        beige: 'f5f5dc',
++        bisque: 'ffe4c4',
++        black: '000000',
++        blanchedalmond: 'ffebcd',
++        blue: '0000ff',
++        blueviolet: '8a2be2',
++        brown: 'a52a2a',
++        burlywood: 'deb887',
++        cadetblue: '5f9ea0',
++        chartreuse: '7fff00',
++        chocolate: 'd2691e',
++        coral: 'ff7f50',
++        cornflowerblue: '6495ed',
++        cornsilk: 'fff8dc',
++        crimson: 'dc143c',
++        cyan: '00ffff',
++        darkblue: '00008b',
++        darkcyan: '008b8b',
++        darkgoldenrod: 'b8860b',
++        darkgray: 'a9a9a9',
++        darkgreen: '006400',
++        darkkhaki: 'bdb76b',
++        darkmagenta: '8b008b',
++        darkolivegreen: '556b2f',
++        darkorange: 'ff8c00',
++        darkorchid: '9932cc',
++        darkred: '8b0000',
++        darksalmon: 'e9967a',
++        darkseagreen: '8fbc8f',
++        darkslateblue: '483d8b',
++        darkslategray: '2f4f4f',
++        darkturquoise: '00ced1',
++        darkviolet: '9400d3',
++        deeppink: 'ff1493',
++        deepskyblue: '00bfff',
++        dimgray: '696969',
++        dodgerblue: '1e90ff',
++        feldspar: 'd19275',
++        firebrick: 'b22222',
++        floralwhite: 'fffaf0',
++        forestgreen: '228b22',
++        fuchsia: 'ff00ff',
++        gainsboro: 'dcdcdc',
++        ghostwhite: 'f8f8ff',
++        gold: 'ffd700',
++        goldenrod: 'daa520',
++        gray: '808080',
++        green: '008000',
++        greenyellow: 'adff2f',
++        honeydew: 'f0fff0',
++        hotpink: 'ff69b4',
++        indianred : 'cd5c5c',
++        indigo : '4b0082',
++        ivory: 'fffff0',
++        khaki: 'f0e68c',
++        lavender: 'e6e6fa',
++        lavenderblush: 'fff0f5',
++        lawngreen: '7cfc00',
++        lemonchiffon: 'fffacd',
++        lightblue: 'add8e6',
++        lightcoral: 'f08080',
++        lightcyan: 'e0ffff',
++        lightgoldenrodyellow: 'fafad2',
++        lightgrey: 'd3d3d3',
++        lightgreen: '90ee90',
++        lightpink: 'ffb6c1',
++        lightsalmon: 'ffa07a',
++        lightseagreen: '20b2aa',
++        lightskyblue: '87cefa',
++        lightslateblue: '8470ff',
++        lightslategray: '778899',
++        lightsteelblue: 'b0c4de',
++        lightyellow: 'ffffe0',
++        lime: '00ff00',
++        limegreen: '32cd32',
++        linen: 'faf0e6',
++        magenta: 'ff00ff',
++        maroon: '800000',
++        mediumaquamarine: '66cdaa',
++        mediumblue: '0000cd',
++        mediumorchid: 'ba55d3',
++        mediumpurple: '9370d8',
++        mediumseagreen: '3cb371',
++        mediumslateblue: '7b68ee',
++        mediumspringgreen: '00fa9a',
++        mediumturquoise: '48d1cc',
++        mediumvioletred: 'c71585',
++        midnightblue: '191970',
++        mintcream: 'f5fffa',
++        mistyrose: 'ffe4e1',
++        moccasin: 'ffe4b5',
++        navajowhite: 'ffdead',
++        navy: '000080',
++        oldlace: 'fdf5e6',
++        olive: '808000',
++        olivedrab: '6b8e23',
++        orange: 'ffa500',
++        orangered: 'ff4500',
++        orchid: 'da70d6',
++        palegoldenrod: 'eee8aa',
++        palegreen: '98fb98',
++        paleturquoise: 'afeeee',
++        palevioletred: 'd87093',
++        papayawhip: 'ffefd5',
++        peachpuff: 'ffdab9',
++        peru: 'cd853f',
++        pink: 'ffc0cb',
++        plum: 'dda0dd',
++        powderblue: 'b0e0e6',
++        purple: '800080',
++        red: 'ff0000',
++        rosybrown: 'bc8f8f',
++        royalblue: '4169e1',
++        saddlebrown: '8b4513',
++        salmon: 'fa8072',
++        sandybrown: 'f4a460',
++        seagreen: '2e8b57',
++        seashell: 'fff5ee',
++        sienna: 'a0522d',
++        silver: 'c0c0c0',
++        skyblue: '87ceeb',
++        slateblue: '6a5acd',
++        slategray: '708090',
++        snow: 'fffafa',
++        springgreen: '00ff7f',
++        steelblue: '4682b4',
++        tan: 'd2b48c',
++        teal: '008080',
++        thistle: 'd8bfd8',
++        tomato: 'ff6347',
++        turquoise: '40e0d0',
++        violet: 'ee82ee',
++        violetred: 'd02090',
++        wheat: 'f5deb3',
++        white: 'ffffff',
++        whitesmoke: 'f5f5f5',
++        yellow: 'ffff00',
++        yellowgreen: '9acd32'
++    };
++    for (var key in simple_colors) {
++        if (color_string == key) {
++            color_string = simple_colors[key];
++        }
++    }
++    // emd of simple type-in colors
++
++    // array of color definition objects
++    var color_defs = [
++        {
++            re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
++            example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
++            process: function (bits){
++                return [
++                    parseInt(bits[1]),
++                    parseInt(bits[2]),
++                    parseInt(bits[3])
++                ];
++            }
++        },
++        {
++            re: /^(\w{2})(\w{2})(\w{2})$/,
++            example: ['#00ff00', '336699'],
++            process: function (bits){
++                return [
++                    parseInt(bits[1], 16),
++                    parseInt(bits[2], 16),
++                    parseInt(bits[3], 16)
++                ];
++            }
++        },
++        {
++            re: /^(\w{1})(\w{1})(\w{1})$/,
++            example: ['#fb0', 'f0f'],
++            process: function (bits){
++                return [
++                    parseInt(bits[1] + bits[1], 16),
++                    parseInt(bits[2] + bits[2], 16),
++                    parseInt(bits[3] + bits[3], 16)
++                ];
++            }
++        }
++    ];
++
++    // search through the definitions to find a match
++    for (var i = 0; i < color_defs.length; i++) {
++        var re = color_defs[i].re;
++        var processor = color_defs[i].process;
++        var bits = re.exec(color_string);
++        if (bits) {
++            channels = processor(bits);
++            this.r = channels[0];
++            this.g = channels[1];
++            this.b = channels[2];
++            this.ok = true;
++        }
++
++    }
++
++    // validate/cleanup values
++    this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);
++    this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);
++    this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);
++
++    // some getters
++    this.toRGB = function () {
++        return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
++    }
++    this.toHex = function () {
++        var r = this.r.toString(16);
++        var g = this.g.toString(16);
++        var b = this.b.toString(16);
++        if (r.length == 1) r = '0' + r;
++        if (g.length == 1) g = '0' + g;
++        if (b.length == 1) b = '0' + b;
++        return '#' + r + g + b;
++    }
++
++    // help
++    this.getHelpXML = function () {
++
++        var examples = new Array();
++        // add regexps
++        for (var i = 0; i < color_defs.length; i++) {
++            var example = color_defs[i].example;
++            for (var j = 0; j < example.length; j++) {
++                examples[examples.length] = example[j];
++            }
++        }
++        // add type-in colors
++        for (var sc in simple_colors) {
++            examples[examples.length] = sc;
++        }
++
++        var xml = document.createElement('ul');
++        xml.setAttribute('id', 'rgbcolor-examples');
++        for (var i = 0; i < examples.length; i++) {
++            try {
++                var list_item = document.createElement('li');
++                var list_color = new RGBColor(examples[i]);
++                var example_div = document.createElement('div');
++                example_div.style.cssText =
++                        'margin: 3px; '
++                        + 'border: 1px solid black; '
++                        + 'background:' + list_color.toHex() + '; '
++                        + 'color:' + list_color.toHex()
++                ;
++                example_div.appendChild(document.createTextNode('test'));
++                var list_item_value = document.createTextNode(
++                    ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()
++                );
++                list_item.appendChild(example_div);
++                list_item.appendChild(list_item_value);
++                xml.appendChild(list_item);
++
++            } catch(e){}
++        }
++        return xml;
++
++    }
++
++}
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-19733-19734.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19733-19734.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19733-19734.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19733)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19734)
+@@ -36,7 +36,7 @@
+ 	gl.enableVertexAttribArray(1);
+ 
+ 	// Add context state variables
+-	canvas.zoomFactor = -1.0;
++	canvas.zoomFactor = options.getfieldvalue('zoomfactor',-.52);
+ 	canvas.cameraMatrix = mat4.create();
+ 
+ 	// Add event listeners for canvas
Index: /issm/oecreview/Archive/19101-20495/ISSM-19734-19735.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19734-19735.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19734-19735.diff	(revision 20498)
@@ -0,0 +1,288 @@
+Index: ../trunk-jpl/src/m/array/ArrayOperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19734)
++++ ../trunk-jpl/src/m/array/ArrayOperations.js	(revision 19735)
+@@ -1,139 +0,0 @@
+-function ArrayMax(array){ //{{{
+-	return Math.max.apply(null,array);
+-} //}}}
+-function ArrayMax2D(array){ //{{{
+-	
+-	var max=0;
+-
+-	for (i=0;i<array.length;i++){
+-		var subarray=array[i];
+-		max=Math.max(max,ArrayMax(subarray));
+-	}
+-
+-	return max;
+-} //}}}
+-function ArrayMin(array){ //{{{
+-	return Math.min.apply(null,array);
+-} //}}}
+-function ArraySum(array){ //{{{
+-	var sum=0;
+-	for(var i=0;i<array.length;i++)sum+=array[i];
+-	return sum;
+-} //}}}
+-function ArrayMin2D(array){ //{{{
+-	
+-	var min=ArrayMax2D(array);
+-
+-	for (i=0;i<array.length;i++){
+-		var subarray=array[i];
+-		min=Math.min(min,ArrayMin(subarray));
+-	}
+-
+-	return min;
+-} //}}}
+-function ListToMatrix(list, elementsPerSubArray) { //{{{
+-	var matrix = [], i, k;
+-
+-	for (i = 0, k = -1; i < list.length; i++) {
+-		if (i % elementsPerSubArray === 0) {
+-			k++;
+-			matrix[k] = [];
+-		}
+-
+-		matrix[k].push(list[i]);
+-	}
+-
+-	return matrix;
+-} //}}}
+-function MatrixToList(matrix) { //{{{
+-	
+-	var width = matrix[0].length;
+-	var length = matrix.length;
+-	var list= new Array(width*length);
+-
+-	for(var i=0;i<length;i++){
+-		for(var j=0;j<width;j++){
+-			list[i*width+j]=matrix[i][j];
+-		}
+-	}
+-		
+-	return list;
+-} //}}}
+-function IsArray(object) { //{{{
+-
+-	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
+-		return 1;
+-	}
+-	else return 0;
+-
+-} //}}}
+-function ArrayNot(array) { //{{{
+-
+-	var notarray=array;
+-	for (i=0;i<array.length;i++)notarray[i]=-array[i];
+-	return notarray;
+-} //}}}
+-function ArrayAnyNaN(array) { //{{{
+-
+-	for(var i=0;i<array.length;i++){
+-		if (isNaN(array[i])) return 1;
+-	}
+-	return 0;
+-} //}}}
+-function ArrayAnd(array1,array2) { //{{{
+-
+-	var array=array1;
+-	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
+-	return array;
+-} //}}}
+-function NewArrayFill(size,value) { //{{{
+-
+-	return new Array(size).fill(value);
+-} //}}}
+-function ArrayFind(array,value) { //{{{
+-	
+-	//find number of indices
+-	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]==value)count++;
+-
+-	//allocate:
+-	var indices= NewArrayFill(count,0);
+-
+-	//fill in:
+-	count=0;
+-	for (i=0;i<array.length;i++){
+-		if(array[i]==value){
+-			indices[count]=i;
+-			count++;
+-		}
+-	}
+-	return indices;
+-} //}}}
+-function ArrayFindNot(array,value) { //{{{
+-	
+-	//find number of indices
+-	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
+-
+-	//allocate:
+-	var indices= NewArrayFill(count,0);
+-
+-	//fill in:
+-	count=0;
+-	for (i=0;i<array.length;i++){
+-		if(array[i]!=value){
+-			indices[count]=i;
+-			count++;
+-		}
+-	}
+-	return indices;
+-} //}}}
+-function Create2DArray(rows,cols) { //{{{
+-	var arr = [];
+-
+-	for (var i=0;i<rows;i++) {
+-		arr[i] = new Array(cols);
+-	}
+-
+-	return arr;
+-} //}}}
+Index: ../trunk-jpl/src/m/array/array_operations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/array_operations.js	(revision 0)
++++ ../trunk-jpl/src/m/array/array_operations.js	(revision 19735)
+@@ -0,0 +1,139 @@
++function ArrayMax(array){ //{{{
++	return Math.max.apply(null,array);
++} //}}}
++function ArrayMax2D(array){ //{{{
++	
++	var max=0;
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		max=Math.max(max,ArrayMax(subarray));
++	}
++
++	return max;
++} //}}}
++function ArrayMin(array){ //{{{
++	return Math.min.apply(null,array);
++} //}}}
++function ArraySum(array){ //{{{
++	var sum=0;
++	for(var i=0;i<array.length;i++)sum+=array[i];
++	return sum;
++} //}}}
++function ArrayMin2D(array){ //{{{
++	
++	var min=ArrayMax2D(array);
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		min=Math.min(min,ArrayMin(subarray));
++	}
++
++	return min;
++} //}}}
++function ListToMatrix(list, elementsPerSubArray) { //{{{
++	var matrix = [], i, k;
++
++	for (i = 0, k = -1; i < list.length; i++) {
++		if (i % elementsPerSubArray === 0) {
++			k++;
++			matrix[k] = [];
++		}
++
++		matrix[k].push(list[i]);
++	}
++
++	return matrix;
++} //}}}
++function MatrixToList(matrix) { //{{{
++	
++	var width = matrix[0].length;
++	var length = matrix.length;
++	var list= new Array(width*length);
++
++	for(var i=0;i<length;i++){
++		for(var j=0;j<width;j++){
++			list[i*width+j]=matrix[i][j];
++		}
++	}
++		
++	return list;
++} //}}}
++function IsArray(object) { //{{{
++
++	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
++		return 1;
++	}
++	else return 0;
++
++} //}}}
++function ArrayNot(array) { //{{{
++
++	var notarray=array;
++	for (i=0;i<array.length;i++)notarray[i]=-array[i];
++	return notarray;
++} //}}}
++function ArrayAnyNaN(array) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (isNaN(array[i])) return 1;
++	}
++	return 0;
++} //}}}
++function ArrayAnd(array1,array2) { //{{{
++
++	var array=array1;
++	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
++	return array;
++} //}}}
++function NewArrayFill(size,value) { //{{{
++
++	return new Array(size).fill(value);
++} //}}}
++function ArrayFind(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]==value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]==value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
++function ArrayFindNot(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]!=value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
++function Create2DArray(rows,cols) { //{{{
++	var arr = [];
++
++	for (var i=0;i<rows;i++) {
++		arr[i] = new Array(cols);
++	}
++
++	return arr;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19735-19736.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19735-19736.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19735-19736.diff	(revision 20498)
@@ -0,0 +1,288 @@
+Index: ../trunk-jpl/src/m/array/array_operations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/array_operations.js	(revision 19735)
++++ ../trunk-jpl/src/m/array/array_operations.js	(revision 19736)
+@@ -1,139 +0,0 @@
+-function ArrayMax(array){ //{{{
+-	return Math.max.apply(null,array);
+-} //}}}
+-function ArrayMax2D(array){ //{{{
+-	
+-	var max=0;
+-
+-	for (i=0;i<array.length;i++){
+-		var subarray=array[i];
+-		max=Math.max(max,ArrayMax(subarray));
+-	}
+-
+-	return max;
+-} //}}}
+-function ArrayMin(array){ //{{{
+-	return Math.min.apply(null,array);
+-} //}}}
+-function ArraySum(array){ //{{{
+-	var sum=0;
+-	for(var i=0;i<array.length;i++)sum+=array[i];
+-	return sum;
+-} //}}}
+-function ArrayMin2D(array){ //{{{
+-	
+-	var min=ArrayMax2D(array);
+-
+-	for (i=0;i<array.length;i++){
+-		var subarray=array[i];
+-		min=Math.min(min,ArrayMin(subarray));
+-	}
+-
+-	return min;
+-} //}}}
+-function ListToMatrix(list, elementsPerSubArray) { //{{{
+-	var matrix = [], i, k;
+-
+-	for (i = 0, k = -1; i < list.length; i++) {
+-		if (i % elementsPerSubArray === 0) {
+-			k++;
+-			matrix[k] = [];
+-		}
+-
+-		matrix[k].push(list[i]);
+-	}
+-
+-	return matrix;
+-} //}}}
+-function MatrixToList(matrix) { //{{{
+-	
+-	var width = matrix[0].length;
+-	var length = matrix.length;
+-	var list= new Array(width*length);
+-
+-	for(var i=0;i<length;i++){
+-		for(var j=0;j<width;j++){
+-			list[i*width+j]=matrix[i][j];
+-		}
+-	}
+-		
+-	return list;
+-} //}}}
+-function IsArray(object) { //{{{
+-
+-	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
+-		return 1;
+-	}
+-	else return 0;
+-
+-} //}}}
+-function ArrayNot(array) { //{{{
+-
+-	var notarray=array;
+-	for (i=0;i<array.length;i++)notarray[i]=-array[i];
+-	return notarray;
+-} //}}}
+-function ArrayAnyNaN(array) { //{{{
+-
+-	for(var i=0;i<array.length;i++){
+-		if (isNaN(array[i])) return 1;
+-	}
+-	return 0;
+-} //}}}
+-function ArrayAnd(array1,array2) { //{{{
+-
+-	var array=array1;
+-	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
+-	return array;
+-} //}}}
+-function NewArrayFill(size,value) { //{{{
+-
+-	return new Array(size).fill(value);
+-} //}}}
+-function ArrayFind(array,value) { //{{{
+-	
+-	//find number of indices
+-	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]==value)count++;
+-
+-	//allocate:
+-	var indices= NewArrayFill(count,0);
+-
+-	//fill in:
+-	count=0;
+-	for (i=0;i<array.length;i++){
+-		if(array[i]==value){
+-			indices[count]=i;
+-			count++;
+-		}
+-	}
+-	return indices;
+-} //}}}
+-function ArrayFindNot(array,value) { //{{{
+-	
+-	//find number of indices
+-	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
+-
+-	//allocate:
+-	var indices= NewArrayFill(count,0);
+-
+-	//fill in:
+-	count=0;
+-	for (i=0;i<array.length;i++){
+-		if(array[i]!=value){
+-			indices[count]=i;
+-			count++;
+-		}
+-	}
+-	return indices;
+-} //}}}
+-function Create2DArray(rows,cols) { //{{{
+-	var arr = [];
+-
+-	for (var i=0;i<rows;i++) {
+-		arr[i] = new Array(cols);
+-	}
+-
+-	return arr;
+-} //}}}
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 0)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19736)
+@@ -0,0 +1,139 @@
++function ArrayMax(array){ //{{{
++	return Math.max.apply(null,array);
++} //}}}
++function ArrayMax2D(array){ //{{{
++	
++	var max=0;
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		max=Math.max(max,ArrayMax(subarray));
++	}
++
++	return max;
++} //}}}
++function ArrayMin(array){ //{{{
++	return Math.min.apply(null,array);
++} //}}}
++function ArraySum(array){ //{{{
++	var sum=0;
++	for(var i=0;i<array.length;i++)sum+=array[i];
++	return sum;
++} //}}}
++function ArrayMin2D(array){ //{{{
++	
++	var min=ArrayMax2D(array);
++
++	for (i=0;i<array.length;i++){
++		var subarray=array[i];
++		min=Math.min(min,ArrayMin(subarray));
++	}
++
++	return min;
++} //}}}
++function ListToMatrix(list, elementsPerSubArray) { //{{{
++	var matrix = [], i, k;
++
++	for (i = 0, k = -1; i < list.length; i++) {
++		if (i % elementsPerSubArray === 0) {
++			k++;
++			matrix[k] = [];
++		}
++
++		matrix[k].push(list[i]);
++	}
++
++	return matrix;
++} //}}}
++function MatrixToList(matrix) { //{{{
++	
++	var width = matrix[0].length;
++	var length = matrix.length;
++	var list= new Array(width*length);
++
++	for(var i=0;i<length;i++){
++		for(var j=0;j<width;j++){
++			list[i*width+j]=matrix[i][j];
++		}
++	}
++		
++	return list;
++} //}}}
++function IsArray(object) { //{{{
++
++	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
++		return 1;
++	}
++	else return 0;
++
++} //}}}
++function ArrayNot(array) { //{{{
++
++	var notarray=array;
++	for (i=0;i<array.length;i++)notarray[i]=-array[i];
++	return notarray;
++} //}}}
++function ArrayAnyNaN(array) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (isNaN(array[i])) return 1;
++	}
++	return 0;
++} //}}}
++function ArrayAnd(array1,array2) { //{{{
++
++	var array=array1;
++	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
++	return array;
++} //}}}
++function NewArrayFill(size,value) { //{{{
++
++	return new Array(size).fill(value);
++} //}}}
++function ArrayFind(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]==value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]==value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
++function ArrayFindNot(array,value) { //{{{
++	
++	//find number of indices
++	var count=0;
++	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
++
++	//allocate:
++	var indices= NewArrayFill(count,0);
++
++	//fill in:
++	count=0;
++	for (i=0;i<array.length;i++){
++		if(array[i]!=value){
++			indices[count]=i;
++			count++;
++		}
++	}
++	return indices;
++} //}}}
++function Create2DArray(rows,cols) { //{{{
++	var arr = [];
++
++	for (var i=0;i<rows;i++) {
++		arr[i] = new Array(cols);
++	}
++
++	return arr;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19736-19737.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19736-19737.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19736-19737.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/array/listToMatrix.js
+===================================================================
+--- ../trunk-jpl/src/m/array/listToMatrix.js	(revision 19736)
++++ ../trunk-jpl/src/m/array/listToMatrix.js	(revision 19737)
+@@ -1,14 +0,0 @@
+-function listToMatrix(list, elementsPerSubArray) {
+-	var matrix = [], i, k;
+-
+-	for (i = 0, k = -1; i < list.length; i++) {
+-		if (i % elementsPerSubArray === 0) {
+-			k++;
+-			matrix[k] = [];
+-		}
+-
+-		matrix[k].push(list[i]);
+-	}
+-
+-	return matrix;
+-}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19737-19738.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19737-19738.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19737-19738.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/classes/frictionsommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionsommers.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/frictionsommers.m	(revision 19738)
+@@ -0,0 +1,45 @@
++%FRICTIONSOMMERS class definition
++%
++%   Usage:
++%      friction=frictionsommers();
++
++classdef frictionsommers
++	properties (SetAccess=public) 
++		coefficient = NaN;
++	end
++	methods
++		function self = extrude(self,md) % {{{
++			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
++		end % }}}
++		function self = frictionsommers(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				case 1
++					self=structtoobj(frictionsommers(),varargin{1});
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			%Early return
++			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('Basal shear stress parameters: Sigma_b = coefficient^2 * Neff * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(head-b))'));
++			fielddisplay(self,'coefficient','friction coefficient [SI]');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',FrictionLawEnum,'data',8,'format','Integer');
++			WriteData(fid,'class','friction','object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++
++		end % }}}
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19738-19739.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19738-19739.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19738-19739.diff	(revision 20498)
@@ -0,0 +1,359 @@
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19738)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19739)
+@@ -76,6 +76,6 @@
+ 					 ../NodeConnectivity/NodeConnectivity.cpp\
+ 					 ../ElementConnectivity/ElementConnectivity.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/m/plot/plotmodel.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19738)
++++ ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19739)
+@@ -10,7 +10,6 @@
+ 	subplotwidth=Math.ceil(Math.sqrt(options.numberofplots)); 
+ 	
+ 	//Get figure number and number of plots
+-	figurenumber=options.figurenumber;
+ 	numberofplots=options.numberofplots;
+ 
+ 	//if nlines and ncols specified, then bypass.
+@@ -34,10 +33,6 @@
+ 	//go through subplots
+ 	if (numberofplots){
+ 
+-		//Create figure : to be replaced by Dan's code here for the <div> segment of the html code?
+-		//f=figure(figurenumber);clf;
+-		//deal with visible off or on, figure position, etc...
+-
+ 		//Go through all data plottable and close window if an error occurs
+ 		for (var i=0;i<numberofplots;i++){
+ 
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19738)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19739)
+@@ -1,4 +1,4 @@
+-function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options) {
++function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options,canvas,gl) {
+ 	//PLOT_UNIT - unit plot, display data
+ 	//
+ 	//   Usage:
+@@ -6,21 +6,42 @@
+ 	//
+ 	//   See also: PLOTMODEL, PLOT_MANAGER
+ 
+-	//edgecolor
+-	edgecolor=options.getfieldvalue('edgecolor','none');
++	//declare variables:  {{{
++	var node;
++	var vertices = [];
++	var indices = [];
++	var colors = [];
++	var rgbcolor = [];
++	var xmin,xmax;
++	var ymin,ymax;
++	var zmin,zmax;
++	var datamin,datamax;
++	var scale;
++	//}}}
++
++	loadShaders(gl);
+ 	
+-	/*First initialize webgl for the corresponding canvas: */
+-	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
++	//Initialize the buffer structure: 
++	node = Node(gl,options);
+ 
+-	// Initialize the GL context: 
+-	var gl=initWebGL(canvas,options);
++	//Compute coordinates and data range: 
++	xmin = ArrayMin(x);
++	xmax = ArrayMax(x);
++	ymin = ArrayMin(y);
++	ymax = ArrayMax(y);
++	zmin = ArrayMin(z);
++	zmax = ArrayMax(z);
++	datamin = ArrayMin(data);
++	datamax = ArrayMax(data);
+ 
+-	// Only continue if WebGL is available and working
+-	if (gl) {
+-		loadShaders(gl);
+-		var node=loadModel(gl,x,y,z,elements,data);
+-		draw(gl,canvas,node);
+-	}
++	//Compute scaling: 
++	var scale = 1 / (xmax - xmin);
++	node["scale"] = [scale, scale, scale];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["modelMatrix"] = recalculateModelMatrix(node);
++				
++	//some defaults:
++	colors.itemSize = 4;
+ 
+ 	switch(datatype){
+ 
+@@ -45,7 +66,8 @@
+ 				  patch( 'Faces',[B C D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+ 				  patch( 'Faces',[C A D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+-			else{
++			else{ //2D triangular elements
++					
+ 				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3);
+ 				  patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+@@ -69,11 +91,28 @@
+ 				  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
+ 				  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
+ 			}
+-			else{
+-				
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); 
+-				  patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  */
++			else{ //triangular elements
++			
++				vertices.itemSize = 3;
++				for(var i = 0; i < x.length; i++){
++					vertices[vertices.length] = x[i];
++					vertices[vertices.length] = y[i];
++					//vertices[vertices.length] = z[i];
++					vertices[vertices.length] = 0;
++
++					//handle mesh/qinterest size mismatch
++					rgbcolor = rgb(data[i], datamin, datamax);
++					colors[colors.length] = rgbcolor[0];
++					colors[colors.length] = rgbcolor[1];
++					colors[colors.length] = rgbcolor[2];
++					colors[colors.length] = 1.0;
++				}
++
++				//linearize the elements array: 
++				indices = indices.concat.apply(indices, elements); 
++				indices.itemSize = 1;
++				for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
++
+ 			}
+ 			break;
+ 
+@@ -90,4 +129,10 @@
+ 		default:
+ 				throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
+ 	}
++	
++	/*Initalize buffers: */
++	node["buffers"] = initBuffers(gl,[vertices, colors, indices]);
++	
++	/*Draw into the canvas:*/
++	draw(gl,options,canvas,node);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19738)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19739)
+@@ -12,6 +12,15 @@
+ 	//get data to be displayed
+ 	data=options.getfieldvalue('data');
+ 
++	//standard plot: initialize open Gl for each canvas: 
++	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
++
++	// Initialize the GL context: 
++	var gl=initWebGL(canvas,options);
++	if(!gl){
++		throw Error("plotmodel error message: could not initialize open Gl!");
++	}
++	
+ 	//figure out if this is a special plot
+ 	if (typeof data === 'string'){
+ 
+@@ -209,18 +218,8 @@
+ 	var data2 = dataresults[0]; 
+ 	var datatype = dataresults[1];
+ 
+-
+-	//standard plot:
+-	if (options.exist('asymsubplot')){
+-		id=options.getfieldvalue('asymsubplot',i);
+-		//subplot(nlines,ncols,id);
+-	}
+-	else{
+-		//subplot(nlines,ncols,i);
+-	}
+-
+ 	//plot unit
+-	plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options);
++	plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,canvas,gl);
+ 
+ 	//apply all options
+ 	if (datatype==3){
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19738)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19739)
+@@ -16,14 +16,6 @@
+ 		gl = null;
+ 	}
+ 
+-
+-	// Set clear color to black, fully opaque
+-	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
+-	if(backgroundcolor.ok){
+-		gl.clearColor(backgroundcolor.r/255.0, backgroundcolor.g/255.0, backgroundcolor.b/255.0, 1.0);
+-	}
+-	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
+-
+ 	// Enable depth testing
+ 	gl.enable(gl.DEPTH_TEST);
+ 	// Near things obscure far things
+@@ -51,68 +43,6 @@
+ 
+ 	return gl;
+ } //}}}
+-function loadModel(gl,x,y,z,elements,data){ //{{{
+-	colorbar=colorbars["rainbow"];
+-	model={"x":x,"y":y,"z":z,"elements":elements};	
+-	sceneGraph={};
+-	sceneGraph["model"] = sceneGraphNode(gl);
+-	sceneGraph["model"]["shaderName"] = "colored";
+-	sceneGraph["model"]["shader"] = shaders["colored"]["program"];
+-	sceneGraph["model"]["useIndexBuffer"] = true;
+-	
+-	var meshVertices = [];
+-	var meshColors = [];
+-	var meshNormals = [];
+-	var color = [];
+-
+-	var qmin = Math.min.apply(null,data);
+-	var qmax = Math.max.apply(null,data);
+-	var xmin = Math.min.apply(null,model["x"]);
+-	var xmax = Math.max.apply(null,model["x"]);
+-	var ymin = Math.min.apply(null,model["y"]);
+-	var ymax = Math.max.apply(null,model["y"]);
+-	var zmin = Math.min.apply(null,[0]);
+-	var zmax = Math.max.apply(null,[0]);
+-	
+-	var scale = 1 / (xmax - xmin);
+-	sceneGraph["model"]["scale"] = [scale, scale, scale];
+-	sceneGraph["model"]["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+-	sceneGraph["model"]["modelMatrix"] = recalculateModelMatrix(sceneGraph["model"]);
+-
+-	for(var i = 0; i < model["x"].length; i++){
+-		meshVertices[meshVertices.length] = model["x"][i];
+-		meshVertices[meshVertices.length] = model["y"][i];
+-		meshVertices[meshVertices.length] = 0.0;
+-		
+-		//initialize vertex normals
+-		meshNormals[meshNormals.length] = 0.0;
+-		meshNormals[meshNormals.length] = 0.0;
+-		meshNormals[meshNormals.length] = 0.0;
+-		
+-		//handle mesh/qinterest size mismatch
+-		color = rgb(data[i], qmin, qmax);
+-		meshColors[meshColors.length] = color[0];
+-		meshColors[meshColors.length] = color[1];
+-		meshColors[meshColors.length] = color[2];
+-		meshColors[meshColors.length] = 1.0;
+-	}
+-
+-	var indices = [];
+-	indices = indices.concat.apply(indices, model["elements"]);
+-
+-	for (var i = 0; i < indices.length; i += 3){
+-		indices[i] -= 1;
+-		indices[i + 1] -= 1;
+-		indices[i + 2] -= 1;
+-	}
+-
+-	meshVertices.itemSize = 3;
+-	meshColors.itemSize = 4;
+-	indices.itemSize = 1;
+-
+-	sceneGraph["model"]["buffers"] = initBuffers(gl,[meshVertices, meshColors, indices]);
+-	return sceneGraph["model"];
+-} //}}}
+ function initBuffers(gl,arrays) { //{{{	
+ 	var bufferArray = [];
+ 	for (var i = 0; i < arrays.length; i++) {
+@@ -132,16 +62,18 @@
+ 	}	
+ 	return bufferArray;
+ } //}}}
+-function sceneGraphNode(gl) { //{{{
+-	//Primary object for storing common rendering information.
+-	return {buffers:[],
+-		shader:null,
++function Node(gl,options) { //{{{
++	
++	var node;
++
++	node= {buffers:[],
++		shader:shaders["colored"]["program"],
+ 		draw:null,
+ 		hideOcean:false,
+ 		level:0,
+-		useIndexBuffer:false,
++		useIndexBuffer:true,
+ 		useOrthographic:false,
+-	       	transparency:1.0,
++		transparency:1.0,
+ 		disableDepthTest:false, 
+ 		enableCullFace:false,
+ 		cullFace:gl.FRONT,
+@@ -150,7 +82,12 @@
+ 		translation:vec3.create(),
+ 		rotation:vec3.create(),
+ 		scale:vec3.fromValues(1, 1, 1),
+-		modelMatrix:mat4.create()};
++		modelMatrix:mat4.create(),
++		shaderName:"colored",
++	};
++	
++	return node;
++
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
+ 	var modelMatrix = mat4.create();
+@@ -176,6 +113,9 @@
+ 	return modelMatrix;
+ } //}}}
+ function rgb(value, min, max) { //{{{
++					
++	colorbar=colorbars["rainbow"];
++
+ 	value = clamp(value, min + 1.0, max);
+ 	var use_log_scale = false;
+ 	if (use_log_scale == true) {
+@@ -346,12 +286,21 @@
+ 		}
+ 	}
+ } //}}}
+-function draw(gl,canvas,node) { //{{{
+-	window.requestAnimationFrame(function(time) {draw(gl,canvas,node)});
+-	gl.viewport(0, 0, canvas.width, canvas.height);
+-	gl.clear(gl.COLOR_BUFFER_BIT);
+-	updateCameraMatrix(canvas);
++function draw(gl,options,canvas,node) { //{{{
++
++	// Set clear color to black, fully opaque
++	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
++	if(backgroundcolor.ok){
++		gl.clearColor(backgroundcolor.r/255.0, backgroundcolor.g/255.0, backgroundcolor.b/255.0, 1.0);
++	}
++	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
+ 	
++	// Clear the color as well as the depth buffer.
++	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++
++	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,node)});
++	updateCameraMatrix(canvas);
+ 	drawSceneGraphNode(gl, canvas, node);
++
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19739-19740.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19739-19740.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19739-19740.diff	(revision 20498)
@@ -0,0 +1,365 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19739)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19740)
+@@ -42,7 +42,7 @@
+ void HydrologySommersAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+ 	/*Fetch data needed: */
+-	int    hydrology_model;
++	int    hydrology_model,frictionlaw;
+ 	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
+ 
+ 	/*Now, do we really want Sommers?*/
+@@ -72,7 +72,20 @@
+ 	iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyEnglacialInputEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyBumpSpacingEnum);
++	iomodel->FetchDataToInput(elements,HydrologyBumpHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyReynoldsEnum);
++	iomodel->FetchDataToInput(elements,VxEnum);
++	iomodel->FetchDataToInput(elements,VyEnum);
++
++	iomodel->Constant(&frictionlaw,FrictionLawEnum);
++	/*Friction law variables*/
++	switch(frictionlaw){
++		case 8:
++			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
++			break;
++		default:
++			_error_("Friction law "<< frictionlaw <<" not supported");
++	}
+ }/*}}}*/
+ void HydrologySommersAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ 
+@@ -84,6 +97,7 @@
+ 	if(hydrology_model!=HydrologysommersEnum) return;
+ 
+ 	parameters->AddObject(new IntParam(HydrologyModelEnum,hydrology_model));
++	parameters->AddObject(iomodel->CopyConstantObject(FrictionLawEnum));
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
+@@ -144,7 +158,9 @@
+ 
+ 	/*Intermediaries */
+ 	IssmDouble  Jdet,meltrate,G,dh[2],B,A,n;
+-	IssmDouble  gap,bed,thickness,head;
++	IssmDouble  gap,bed,thickness,head,ieb;
++	IssmDouble  lr,br,vx,vy,beta;
++	IssmDouble  alpha2,frictionheat;
+ 	IssmDouble* xyz_list = NULL;
+ 
+ 	/*Fetch number of nodes and dof for this finite element*/
+@@ -167,10 +183,18 @@
+ 	Input* base_input           = element->GetInput(BaseEnum);                       _assert_(base_input);
+ 	Input* B_input              = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
+ 	Input* n_input              = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
++	Input* englacial_input      = element->GetInput(HydrologyEnglacialInputEnum);    _assert_(englacial_input);
++	Input* vx_input             = element->GetInput(VxEnum);                         _assert_(vx_input);
++	Input* vy_input             = element->GetInput(VyEnum);                         _assert_(vy_input);
++	Input* lr_input             = element->GetInput(HydrologyBumpSpacingEnum);       _assert_(lr_input);
++	Input* br_input             = element->GetInput(HydrologyBumpHeightEnum);        _assert_(br_input);
+ 
+ 	/*Get conductivity from inputs*/
+ 	IssmDouble conductivity = GetConductivity(element);
+ 
++	/*Build friction element, needed later: */
++	Friction* friction=new Friction(element,3);
++
+ 	/* Start  looping on the number of gaussian points: */
+ 	Gauss* gauss=element->NewGauss(2);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+@@ -184,30 +208,50 @@
+ 		gap_input->GetInputValue(&gap,gauss);
+ 		head_input->GetInputValue(&head,gauss);
+ 		head_input->GetInputDerivativeValue(&dh[0],xyz_list,gauss);
++		englacial_input->GetInputValue(&ieb,gauss);
++		lr_input->GetInputValue(&lr,gauss);
++		br_input->GetInputValue(&br,gauss);
++		vx_input->GetInputValue(&vx,gauss);
++		vy_input->GetInputValue(&vy,gauss);
+ 
+ 		/*Get ice A parameter*/
+ 		B_input->GetInputValue(&B,gauss);
+ 		n_input->GetInputValue(&n,gauss);
+ 		A=pow(B,-n);
++		
++		/*Compute beta term*/
++		if(gap<br)
++		 beta = (br-gap)/lr;
++		else
++		 beta = 0.;
+ 
++		/*Compute frictional heat flux*/
++		friction->GetAlpha2(&alpha2,gauss);
++		vx_input->GetInputValue(&vx,gauss);
++		vy_input->GetInputValue(&vy,gauss);
++		frictionheat=alpha2*(vx*vx+vy*vy);
++
+ 		/*Get water and ice pressures*/
+ 		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
+ 		IssmDouble pressure_water = rho_water*g*(head-bed);
+ 		_assert_(pressure_water<=pressure_ice);
+ 
+-		meltrate = 1/latentheat*(G+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
++		meltrate = 1/latentheat*(G+frictionheat+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
+ 		_assert_(meltrate>0.);
+ 
+ 		for(int i=0;i<numnodes;i++) pe->values[i]+=Jdet*gauss->weight*
+ 		 (
+ 		  meltrate*(1/rho_water-1/rho_ice)
+ 		  +A*pow(fabs(pressure_ice-pressure_water),n-1)*(pressure_ice-pressure_water)*gap
++		  -beta*sqrt(vx*vx+vy*vy)
++		  +ieb
+ 		  )*basis[i];
+ 	}
+ 
+ 	/*Clean up and return*/
+ 	xDelete<IssmDouble>(xyz_list);
+ 	xDelete<IssmDouble>(basis);
++	delete friction;
+ 	delete gauss;
+ 	return pe;
+ }/*}}}*/
+@@ -296,3 +340,118 @@
+ 	/*Clean up and return*/
+ 	return conductivity;
+ }/*}}}*/
++void HydrologySommersAnalysis::UpdateGapHeight(FemModel* femmodel){/*{{{*/
++
++
++	for(int j=0;j<femmodel->elements->Size();j++){
++		Element* element=(Element*)femmodel->elements->GetObjectByOffset(j);
++		UpdateGapHeight(element);
++	}
++
++}/*}}}*/
++void HydrologySommersAnalysis::UpdateGapHeight(Element* element){/*{{{*/
++
++	/*Skip if water or ice shelf element*/
++	if(element->IsFloating()) return;
++
++	/*Intermediaries */
++	IssmDouble newgap = 0.;
++	IssmDouble  Jdet,meltrate,G,dh[2],B,A,n,dt;
++	IssmDouble  gap,bed,thickness,head,ieb;
++	IssmDouble  lr,br,vx,vy,beta;
++	IssmDouble  alpha2,frictionheat;
++	IssmDouble* xyz_list = NULL;
++
++
++	/*Retrieve all inputs and parameters*/
++	element->GetVerticesCoordinates(&xyz_list);
++	element->FindParam(&dt,TimesteppingTimeStepEnum);
++	IssmDouble  latentheat      = element->GetMaterialParameter(MaterialsLatentheatEnum);
++	IssmDouble  g               = element->GetMaterialParameter(ConstantsGEnum);
++	IssmDouble  rho_ice         = element->GetMaterialParameter(MaterialsRhoIceEnum);
++	IssmDouble  rho_water       = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
++	Input* geothermalflux_input = element->GetInput(BasalforcingsGeothermalfluxEnum);_assert_(geothermalflux_input);
++	Input* head_input           = element->GetInput(HydrologyHeadEnum);              _assert_(head_input);
++	Input* gap_input            = element->GetInput(HydrologyGapHeightEnum);         _assert_(gap_input);
++	Input* thickness_input      = element->GetInput(ThicknessEnum);                  _assert_(thickness_input);
++	Input* base_input           = element->GetInput(BaseEnum);                       _assert_(base_input);
++	Input* B_input              = element->GetInput(MaterialsRheologyBEnum);         _assert_(B_input);
++	Input* n_input              = element->GetInput(MaterialsRheologyNEnum);         _assert_(n_input);
++	Input* englacial_input      = element->GetInput(HydrologyEnglacialInputEnum);    _assert_(englacial_input);
++	Input* vx_input             = element->GetInput(VxEnum);                         _assert_(vx_input);
++	Input* vy_input             = element->GetInput(VyEnum);                         _assert_(vy_input);
++	Input* lr_input             = element->GetInput(HydrologyBumpSpacingEnum);       _assert_(lr_input);
++	Input* br_input             = element->GetInput(HydrologyBumpHeightEnum);        _assert_(br_input);
++
++	/*Get conductivity from inputs*/
++	IssmDouble conductivity = GetConductivity(element);
++
++	/*Build friction element, needed later: */
++	Friction* friction=new Friction(element,3);
++
++	/*Keep track of weights*/
++	IssmDouble totalweights=0.;
++
++	/* Start  looping on the number of gaussian points: */
++	Gauss* gauss=element->NewGauss(2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++		gauss->GaussPoint(ig);
++
++		element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++
++		geothermalflux_input->GetInputValue(&G,gauss);
++		base_input->GetInputValue(&bed,gauss);
++		thickness_input->GetInputValue(&thickness,gauss);
++		gap_input->GetInputValue(&gap,gauss);
++		head_input->GetInputValue(&head,gauss);
++		head_input->GetInputDerivativeValue(&dh[0],xyz_list,gauss);
++		englacial_input->GetInputValue(&ieb,gauss);
++		lr_input->GetInputValue(&lr,gauss);
++		br_input->GetInputValue(&br,gauss);
++		vx_input->GetInputValue(&vx,gauss);
++		vy_input->GetInputValue(&vy,gauss);
++
++		/*Get ice A parameter*/
++		B_input->GetInputValue(&B,gauss);
++		n_input->GetInputValue(&n,gauss);
++		A=pow(B,-n);
++
++		/*Compute beta term*/
++		if(gap<br)
++		 beta = (br-gap)/lr;
++		else
++		 beta = 0.;
++
++		/*Compute frictional heat flux*/
++		friction->GetAlpha2(&alpha2,gauss);
++		vx_input->GetInputValue(&vx,gauss);
++		vy_input->GetInputValue(&vy,gauss);
++		frictionheat=alpha2*(vx*vx+vy*vy);
++
++		/*Get water and ice pressures*/
++		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
++		IssmDouble pressure_water = rho_water*g*(head-bed);
++		_assert_(pressure_water<=pressure_ice);
++
++		meltrate = 1/latentheat*(G+frictionheat+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
++		_assert_(meltrate>0.);
++
++		newgap += gauss->weight*Jdet*(gap+dt*(
++					meltrate/rho_ice
++					-A*pow(fabs(pressure_ice-pressure_water),n-1)*(pressure_ice-pressure_water)*gap
++					+beta*sqrt(vx*vx+vy*vy)
++					));
++		totalweights +=gauss->weight*Jdet;
++	}
++
++	/*Divide by connectivity*/
++	newgap = newgap/totalweights;
++
++	/*Add new gap as an input*/
++	element->AddInput(HydrologyGapHeightEnum,&newgap,P0Enum);
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	delete friction;
++	delete gauss;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 19739)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h	(revision 19740)
+@@ -32,5 +32,7 @@
+ 
+ 		/*Intermediaries*/
+ 		IssmDouble GetConductivity(Element* element);
++		void UpdateGapHeight(FemModel* femmodel);
++		void UpdateGapHeight(Element* element);
+ };
+ #endif
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19739)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19740)
+@@ -56,7 +56,7 @@
+ 
+ 	//Update once again the solution to make sure that vx and vxold are similar (for next step in transient or steadystate)
+ 	InputUpdateFromConstantx(femmodel,converged,ConvergedEnum);
+-	InputUpdateFromSolutionx(femmodel,ug);
++	//InputUpdateFromSolutionx(femmodel,ug);
+ 
+ 	for(;;){
+ 
+Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19739)
++++ ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19740)
+@@ -12,11 +12,10 @@
+ void hydrology_core(FemModel* femmodel){
+ 
+ 	/*intermediary*/
+-	int        hydrology_model;
+-	bool       save_results;
+-	bool       modify_loads=true;
+-	bool       isefficientlayer;
+-	
++	int  hydrology_model;
++	bool save_results;
++	bool modify_loads=true;
++	bool isefficientlayer;
+ 
+ 	/*first recover parameters common to all solutions*/
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+@@ -83,6 +82,10 @@
+ 		if(VerboseSolution()) _printf0_("   computing water head\n");
+ 		femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);
+ 		solutionsequence_nonlinear(femmodel,modify_loads);
++		if(VerboseSolution()) _printf0_("   updating gap height\n");
++		HydrologySommersAnalysis* analysis = new HydrologySommersAnalysis();
++		analysis->UpdateGapHeight(femmodel);
++		delete analysis;	
+ 		
+ 		if(save_results){
+ 			if(VerboseSolution()) _printf0_("   saving results \n");
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.h	(revision 19739)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.h	(revision 19740)
+@@ -39,6 +39,7 @@
+ 		void  GetAlpha2WaterLayer(IssmDouble* palpha2,Gauss* gauss);
+ 		void  GetAlpha2Weertman(IssmDouble* palpha2,Gauss* gauss);
+ 		void  GetAlpha2WeertmanTemp(IssmDouble* palpha2,Gauss* gauss);
++		void  GetAlpha2Sommers(IssmDouble* palpha2,Gauss* gauss);
+ };
+ 
+ #endif  /* _FRICTION_H_ */
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19739)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 19740)
+@@ -213,8 +213,11 @@
+ 		case 7:
+ 			GetAlpha2Coulomb(palpha2,gauss);
+ 			break;
++		case 8:
++			GetAlpha2Sommers(palpha2,gauss);
++			break;
+ 	  default:
+-			_error_("not supported");
++			_error_("Friction law "<< this->law <<" not supported");
+ 	}
+ 
+ }/*}}}*/
+@@ -587,3 +590,36 @@
+ 	/*Assign output pointers:*/
+ 	*palpha2=alpha2;
+ }/*}}}*/
++void Friction::GetAlpha2Sommers(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
++
++	/* FrictionGetAlpha2 computes alpha2= drag^2 * Neff, with Neff=rho_ice*g*thickness+rho_ice*g*(head-bed)*/
++
++	/*diverse: */
++	IssmDouble  pressure_ice,pressure_water;
++	IssmDouble  Neff;
++	IssmDouble  drag_coefficient;
++	IssmDouble  bed,thickness,head;
++	IssmDouble  alpha2;
++
++	/*Recover parameters: */
++	element->GetInputValue(&thickness, gauss,ThicknessEnum);
++	element->GetInputValue(&bed, gauss,BaseEnum);
++	element->GetInputValue(&head, gauss,HydrologyHeadEnum);
++	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
++	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
++	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
++	IssmDouble gravity     = element->GetMaterialParameter(ConstantsGEnum);
++
++	//From bed and thickness, compute effective pressure when drag is viscous:
++	pressure_ice   = rho_ice*gravity*thickness;
++	pressure_water = rho_water*gravity*(head-bed);
++	Neff=pressure_ice-pressure_water;
++	if(Neff<0.) Neff=0.;
++
++	alpha2=drag_coefficient*drag_coefficient*Neff;
++	_assert_(!xIsNan<IssmDouble>(alpha2));
++
++	/*Assign output pointers:*/
++	*palpha2=alpha2;
++}
++/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19740-19741.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19740-19741.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19740-19741.diff	(revision 20498)
@@ -0,0 +1,122 @@
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19741)
+@@ -145,7 +145,7 @@
+ 			}
+ 			for(var i=0;i<md.mesh.numberofelements;i++){
+ 				if(!IsNaN(data[i])){
+-					data[i]=Math.log(data[i])/log(options.getfieldvalue('log'));
++					data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log'));
+ 				}
+ 			}
+ 		}
+@@ -179,8 +179,14 @@
+ 
+ 		//log?
+ 		if (options.exist('log')){
++			var bounds=options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(data[i]<bounds[0])data[i]=bounds[0];
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(data[i]>bounds[1])data[i]=bounds[1];
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(data[i]<=0){
++				throw Error("Log option cannot be applied on negative values. Use caxis option (Rignot''s settings: [1.5 max(data)])");
++			}
+ 		   for(var i=0;i<md.mesh.numberofvertices;i++){
+-			   data[i]=Math.log(data[i])/log(options.getfieldvalue('log'));
++			   data[i]=Math.log10(data[i])/Math.log10(options.getfieldvalue('log'));
+ 		   }
+ 		}
+ 	}
+Index: ../trunk-jpl/src/m/plot/plotmodel.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19741)
+@@ -5,6 +5,7 @@
+ 
+ 	//First process options
+ 	var  options = new plotoptions(args.slice(1,args.length));
++
+ 	
+ 	//get number of subplots
+ 	subplotwidth=Math.ceil(Math.sqrt(options.numberofplots)); 
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19741)
+@@ -19,6 +19,7 @@
+ 	var scale;
+ 	//}}}
+ 
++	//load the shaders: 
+ 	loadShaders(gl);
+ 	
+ 	//Initialize the buffer structure: 
+@@ -31,8 +32,9 @@
+ 	ymax = ArrayMax(y);
+ 	zmin = ArrayMin(z);
+ 	zmax = ArrayMax(z);
+-	datamin = ArrayMin(data);
+-	datamax = ArrayMax(data);
++	caxis= options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++	datamin = caxis[0];
++	datamax = caxis[1];
+ 
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+@@ -67,7 +69,7 @@
+ 				  patch( 'Faces',[C A D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+ 			else{ //2D triangular elements
+-					
++				
+ 				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3);
+ 				  patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19741)
+@@ -5,6 +5,7 @@
+ //      plot_manager(md,options,subplotwidth,i);
+ //
+ //   See also: PLOTMODEL, PLOT_UNIT
++			
+ 
+ 	//parse options and get a structure of options. 
+ 	checkplotoptions(md,options);
+Index: ../trunk-jpl/src/m/plot/checkplotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/checkplotoptions.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/checkplotoptions.js	(revision 19741)
+@@ -228,12 +228,4 @@
+ 		   options.changefieldvalue('scaleruler',[ArrayMin(md.mesh.x)+6/8*Lx, ArrayMin(md.mesh.y)+1/10*Ly, 10^(Mat.ceil(Mat.log10(Lx)))/5, Math.floor(Lx/100), 5]);
+ 	   }
+ 	}
+-
+-	//Log scale (LOTS of changes to be performed
+-	if (options.exist('log')){
+-	   if (options.exist('caxis')){
+-		   options.changefieldvalue('caxis',Math.log(options.getfieldvalue('caxis'))/Math.log(options.getfieldvalue('log')));
+-	   }
+-	   options.changefieldvalue('cutoff',Math.log(options.getfieldvalue('cutoff',1.5))/Math.log(options.getfieldvalue('log')));
+-	}
+ }
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19740)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19741)
+@@ -117,13 +117,7 @@
+ 	colorbar=colorbars["rainbow"];
+ 
+ 	value = clamp(value, min + 1.0, max);
+-	var use_log_scale = false;
+-	if (use_log_scale == true) {
+-		var normalizedValue = Math.log(value - min) / Math.log(max - min);
+-	}
+-	else {
+-		var normalizedValue = (value - min) / (max - min);
+-	}
++	var normalizedValue = (value - min) / (max - min);
+ 	var index = clamp(Math.round(normalizedValue * colorbar.length), 0, colorbar.length - 1);
+ 	return colorbar[index];
+ } //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19741-19742.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19741-19742.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19741-19742.diff	(revision 20498)
@@ -0,0 +1,332 @@
+Index: ../trunk-jpl/src/m/miscellaneous/colorbars.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/colorbars.js	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/colorbars.js	(revision 19742)
+@@ -0,0 +1,321 @@
++var colorbars={};
++colorbars["rainbow"]=[[ 0,0,0.5625],
++                  [ 0,0,0.625],
++                  [ 0,0,0.6875],
++                  [ 0,0,0.75],
++                  [ 0,0,0.8125],
++                  [ 0,0,0.875],
++                  [ 0,0,0.9375],
++                  [ 0,0,1],
++                  [ 0,0.0625,1],
++                  [ 0,0.125,1],
++                  [ 0,0.1875,1],
++                  [ 0,0.25,1],
++                  [ 0,0.3125,1],
++                  [ 0,0.375,1],
++                  [ 0,0.4375,1],
++                  [ 0,0.5,1],
++                  [ 0,0.5625,1],
++                  [ 0,0.625,1],
++                  [ 0,0.6875,1],
++                  [ 0,0.75,1],
++                  [ 0,0.8125,1],
++                  [ 0,0.875,1],
++                  [ 0,0.9375,1],
++                  [ 0,1,1],
++                  [ 0.0625,1,0.9375],
++                  [ 0.125,1,0.875],
++                  [ 0.1875,1,0.8125],
++                  [ 0.25,1,0.75],
++                  [ 0.3125,1,0.6875],
++                  [ 0.375,1,0.625],
++                  [ 0.4375,1,0.5625],
++                  [ 0.5,1,0.5],
++                  [ 0.5625,1,0.4375],
++                  [ 0.625,1,0.375],
++                  [ 0.6875,1,0.3125],
++                  [ 0.75,1,0.25],
++                  [ 0.8125,1,0.1875],
++                  [ 0.875,1,0.125],
++                  [ 0.9375,1,0.0625],
++                  [ 1,1,0],
++                  [ 1,0.9375,0],
++                  [ 1,0.875,0],
++                  [ 1,0.8125,0],
++                  [ 1,0.75,0],
++                  [ 1,0.6875,0],
++                  [ 1,0.625,0],
++                  [ 1,0.5625,0],
++                  [ 1,0.5,0],
++                  [ 1,0.4375,0],
++                  [ 1,0.375,0],
++                  [ 1,0.3125,0],
++                  [ 1,0.25,0],
++                  [ 1,0.1875,0],
++                  [ 1,0.125,0],
++                  [ 1,0.0625,0],
++                  [ 1,0,0],
++                  [ 0.9375,0,0],
++                  [ 0.875,0,0],
++                  [ 0.8125,0,0],
++                  [ 0.75,0,0],
++                  [ 0.6875,0,0],
++                  [ 0.625,0,0],
++                  [ 0.5625,0,0],
++                  [ 0.5,0,0]];
++colorbars["hot"]=[[ 0.0416667,0,0],
++                  [ 0.0833333,0,0],
++                  [ 0.125,0,0],
++                  [ 0.166667,0,0],
++                  [ 0.208333,0,0],
++                  [ 0.25,0,0],
++                  [ 0.291667,0,0],
++                  [ 0.333333,0,0],
++                  [ 0.375,0,0],
++                  [ 0.416667,0,0],
++                  [ 0.458333,0,0],
++                  [ 0.5,0,0],
++                  [ 0.541667,0,0],
++                  [ 0.583333,0,0],
++                  [ 0.625,0,0],
++                  [ 0.666667,0,0],
++                  [ 0.708333,0,0],
++                  [ 0.75,0,0],
++                  [ 0.791667,0,0],
++                  [ 0.833333,0,0],
++                  [ 0.875,0,0],
++                  [ 0.916667,0,0],
++                  [ 0.958333,0,0],
++                  [ 1,0,0],
++                  [ 1,0.0416667,0],
++                  [ 1,0.0833333,0],
++                  [ 1,0.125,0],
++                  [ 1,0.166667,0],
++                  [ 1,0.208333,0],
++                  [ 1,0.25,0],
++                  [ 1,0.291667,0],
++                  [ 1,0.333333,0],
++                  [ 1,0.375,0],
++                  [ 1,0.416667,0],
++                  [ 1,0.458333,0],
++                  [ 1,0.5,0],
++                  [ 1,0.541667,0],
++                  [ 1,0.583333,0],
++                  [ 1,0.625,0],
++                  [ 1,0.666667,0],
++                  [ 1,0.708333,0],
++                  [ 1,0.75,0],
++                  [ 1,0.791667,0],
++                  [ 1,0.833333,0],
++                  [ 1,0.875,0],
++                  [ 1,0.916667,0],
++                  [ 1,0.958333,0],
++                  [ 1,1,0],
++                  [ 1,1,0.0625],
++                  [ 1,1,0.125],
++                  [ 1,1,0.1875],
++                  [ 1,1,0.25],
++                  [ 1,1,0.3125],
++                  [ 1,1,0.375],
++                  [ 1,1,0.4375],
++                  [ 1,1,0.5],
++                  [ 1,1,0.5625],
++                  [ 1,1,0.625],
++                  [ 1,1,0.6875],
++                  [ 1,1,0.75],
++                  [ 1,1,0.8125],
++                  [ 1,1,0.875],
++                  [ 1,1,0.9375],
++                  [ 1,1,1]];
++colorbars["cool"]=[[ 0,1,1],
++                  [ 0.015873,0.984127,1],
++                  [ 0.031746,0.968254,1],
++                  [ 0.047619,0.952381,1],
++                  [ 0.0634921,0.936508,1],
++                  [ 0.0793651,0.920635,1],
++                  [ 0.0952381,0.904762,1],
++                  [ 0.111111,0.888889,1],
++                  [ 0.126984,0.873016,1],
++                  [ 0.142857,0.857143,1],
++                  [ 0.15873,0.84127,1],
++                  [ 0.174603,0.825397,1],
++                  [ 0.190476,0.809524,1],
++                  [ 0.206349,0.793651,1],
++                  [ 0.222222,0.777778,1],
++                  [ 0.238095,0.761905,1],
++                  [ 0.253968,0.746032,1],
++                  [ 0.269841,0.730159,1],
++                  [ 0.285714,0.714286,1],
++                  [ 0.301587,0.698413,1],
++                  [ 0.31746,0.68254,1],
++                  [ 0.333333,0.666667,1],
++                  [ 0.349206,0.650794,1],
++                  [ 0.365079,0.634921,1],
++                  [ 0.380952,0.619048,1],
++                  [ 0.396825,0.603175,1],
++                  [ 0.412698,0.587302,1],
++                  [ 0.428571,0.571429,1],
++                  [ 0.444444,0.555556,1],
++                  [ 0.460317,0.539683,1],
++                  [ 0.47619,0.52381,1],
++                  [ 0.492063,0.507937,1],
++                  [ 0.507937,0.492063,1],
++                  [ 0.52381,0.47619,1],
++                  [ 0.539683,0.460317,1],
++                  [ 0.555556,0.444444,1],
++                  [ 0.571429,0.428571,1],
++                  [ 0.587302,0.412698,1],
++                  [ 0.603175,0.396825,1],
++                  [ 0.619048,0.380952,1],
++                  [ 0.634921,0.365079,1],
++                  [ 0.650794,0.349206,1],
++                  [ 0.666667,0.333333,1],
++                  [ 0.68254,0.31746,1],
++                  [ 0.698413,0.301587,1],
++                  [ 0.714286,0.285714,1],
++                  [ 0.730159,0.269841,1],
++                  [ 0.746032,0.253968,1],
++                  [ 0.761905,0.238095,1],
++                  [ 0.777778,0.222222,1],
++                  [ 0.793651,0.206349,1],
++                  [ 0.809524,0.190476,1],
++                  [ 0.825397,0.174603,1],
++                  [ 0.84127,0.15873,1],
++                  [ 0.857143,0.142857,1],
++                  [ 0.873016,0.126984,1],
++                  [ 0.888889,0.111111,1],
++                  [ 0.904762,0.0952381,1],
++                  [ 0.920635,0.0793651,1],
++                  [ 0.936508,0.0634921,1],
++                  [ 0.952381,0.047619,1],
++                  [ 0.968254,0.031746,1],
++                  [ 0.984127,0.015873,1],
++                  [ 1,0,1]];
++colorbars["bone"]=[[ 0,0,0.00520833],
++                  [ 0.0138889,0.0138889,0.0243056],
++                  [ 0.0277778,0.0277778,0.0434028],
++                  [ 0.0416667,0.0416667,0.0625],
++                  [ 0.0555556,0.0555556,0.0815972],
++                  [ 0.0694444,0.0694444,0.100694],
++                  [ 0.0833333,0.0833333,0.119792],
++                  [ 0.0972222,0.0972222,0.138889],
++                  [ 0.111111,0.111111,0.157986],
++                  [ 0.125,0.125,0.177083],
++                  [ 0.138889,0.138889,0.196181],
++                  [ 0.152778,0.152778,0.215278],
++                  [ 0.166667,0.166667,0.234375],
++                  [ 0.180556,0.180556,0.253472],
++                  [ 0.194444,0.194444,0.272569],
++                  [ 0.208333,0.208333,0.291667],
++                  [ 0.222222,0.222222,0.310764],
++                  [ 0.236111,0.236111,0.329861],
++                  [ 0.25,0.25,0.348958],
++                  [ 0.263889,0.263889,0.368056],
++                  [ 0.277778,0.277778,0.387153],
++                  [ 0.291667,0.291667,0.40625],
++                  [ 0.305556,0.305556,0.425347],
++                  [ 0.319444,0.319444,0.444444],
++                  [ 0.333333,0.338542,0.458333],
++                  [ 0.347222,0.357639,0.472222],
++                  [ 0.361111,0.376736,0.486111],
++                  [ 0.375,0.395833,0.5],
++                  [ 0.388889,0.414931,0.513889],
++                  [ 0.402778,0.434028,0.527778],
++                  [ 0.416667,0.453125,0.541667],
++                  [ 0.430556,0.472222,0.555556],
++                  [ 0.444444,0.491319,0.569444],
++                  [ 0.458333,0.510417,0.583333],
++                  [ 0.472222,0.529514,0.597222],
++                  [ 0.486111,0.548611,0.611111],
++                  [ 0.5,0.567708,0.625],
++                  [ 0.513889,0.586806,0.638889],
++                  [ 0.527778,0.605903,0.652778],
++                  [ 0.541667,0.625,0.666667],
++                  [ 0.555556,0.644097,0.680556],
++                  [ 0.569444,0.663194,0.694444],
++                  [ 0.583333,0.682292,0.708333],
++                  [ 0.597222,0.701389,0.722222],
++                  [ 0.611111,0.720486,0.736111],
++                  [ 0.625,0.739583,0.75],
++                  [ 0.638889,0.758681,0.763889],
++                  [ 0.652778,0.777778,0.777778],
++                  [ 0.674479,0.791667,0.791667],
++                  [ 0.696181,0.805556,0.805556],
++                  [ 0.717882,0.819444,0.819444],
++                  [ 0.739583,0.833333,0.833333],
++                  [ 0.761285,0.847222,0.847222],
++                  [ 0.782986,0.861111,0.861111],
++                  [ 0.804688,0.875,0.875],
++                  [ 0.826389,0.888889,0.888889],
++                  [ 0.84809,0.902778,0.902778],
++                  [ 0.869792,0.916667,0.916667],
++                  [ 0.891493,0.930556,0.930556],
++                  [ 0.913194,0.944444,0.944444],
++                  [ 0.934896,0.958333,0.958333],
++                  [ 0.956597,0.972222,0.972222],
++                  [ 0.978299,0.986111,0.986111],
++                  [ 1,1,1]];
++colorbars["copper"]=[[ 0,0,0],
++                  [ 0.0198413,0.0124,0.00789683],
++                  [ 0.0396825,0.0248,0.0157937],
++                  [ 0.0595238,0.0372,0.0236905],
++                  [ 0.0793651,0.0496,0.0315873],
++                  [ 0.0992063,0.062,0.0394841],
++                  [ 0.119048,0.0744,0.047381],
++                  [ 0.138889,0.0868,0.0552778],
++                  [ 0.15873,0.0992,0.0631746],
++                  [ 0.178571,0.1116,0.0710714],
++                  [ 0.198413,0.124,0.0789683],
++                  [ 0.218254,0.1364,0.0868651],
++                  [ 0.238095,0.1488,0.0947619],
++                  [ 0.257937,0.1612,0.102659],
++                  [ 0.277778,0.1736,0.110556],
++                  [ 0.297619,0.186,0.118452],
++                  [ 0.31746,0.1984,0.126349],
++                  [ 0.337302,0.2108,0.134246],
++                  [ 0.357143,0.2232,0.142143],
++                  [ 0.376984,0.2356,0.15004],
++                  [ 0.396825,0.248,0.157937],
++                  [ 0.416667,0.2604,0.165833],
++                  [ 0.436508,0.2728,0.17373],
++                  [ 0.456349,0.2852,0.181627],
++                  [ 0.47619,0.2976,0.189524],
++                  [ 0.496032,0.31,0.197421],
++                  [ 0.515873,0.3224,0.205317],
++                  [ 0.535714,0.3348,0.213214],
++                  [ 0.555556,0.3472,0.221111],
++                  [ 0.575397,0.3596,0.229008],
++                  [ 0.595238,0.372,0.236905],
++                  [ 0.615079,0.3844,0.244802],
++                  [ 0.634921,0.3968,0.252698],
++                  [ 0.654762,0.4092,0.260595],
++                  [ 0.674603,0.4216,0.268492],
++                  [ 0.694444,0.434,0.276389],
++                  [ 0.714286,0.4464,0.284286],
++                  [ 0.734127,0.4588,0.292183],
++                  [ 0.753968,0.4712,0.300079],
++                  [ 0.77381,0.4836,0.307976],
++                  [ 0.793651,0.496,0.315873],
++                  [ 0.813492,0.5084,0.32377],
++                  [ 0.833333,0.5208,0.331667],
++                  [ 0.853175,0.5332,0.339563],
++                  [ 0.873016,0.5456,0.34746],
++                  [ 0.892857,0.558,0.355357],
++                  [ 0.912698,0.5704,0.363254],
++                  [ 0.93254,0.5828,0.371151],
++                  [ 0.952381,0.5952,0.379048],
++                  [ 0.972222,0.6076,0.386944],
++                  [ 0.992063,0.62,0.394841],
++                  [ 1,0.6324,0.402738],
++                  [ 1,0.6448,0.410635],
++                  [ 1,0.6572,0.418532],
++                  [ 1,0.6696,0.426429],
++                  [ 1,0.682,0.434325],
++                  [ 1,0.6944,0.442222],
++                  [ 1,0.7068,0.450119],
++                  [ 1,0.7192,0.458016],
++                  [ 1,0.7316,0.465913],
++                  [ 1,0.744,0.47381],
++                  [ 1,0.7564,0.481706],
++                  [ 1,0.7688,0.489603],
++                  [ 1,0.7812,0.4975]];
+
+Property changes on: ../trunk-jpl/src/m/miscellaneous/colorbars.js
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19742-19743.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19742-19743.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19742-19743.diff	(revision 20498)
@@ -0,0 +1,63 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19742)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19743)
+@@ -3,16 +3,11 @@
+ <head><title>ISSM Web APP &mdash; Beta</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
+-<script type="text/javascript" src="webgl/jquery-1.11.1.js"></script>
+-<script type="text/javascript" src="webgl/gl-matrix-2.2.0.js"></script>
+-<script type="text/javascript" src="webgl/colorbars.js"></script>
+-<script type="text/javascript" src="./IssmModule.js"></script>
+-<script type="text/javascript" src="./sprintf.js"></script>
+ <script type="text/javascript" src="../Exp/Square.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/model.js"></script>
+ <script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
+-<script type="text/javascript" src="../../src/m/array/ArrayOperations.js"></script>
++<script type="text/javascript" src="../../src/m/array/arrayoperations.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/geometry.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/constants.js"></script>
+@@ -20,6 +15,8 @@
+ <script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
++<script type="text/javascript" src="../../src/m/miscellaneous/rgbcolor.js"></script>
++<script type="text/javascript" src="../../src/m/miscellaneous/colorbars.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
+@@ -31,23 +28,21 @@
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
++<script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
++<script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
++<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
++<script src="https://raw.githubusercontent.com/toji/gl-matrix/master/dist/gl-matrix-min.js"></script>
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+-	<canvas id="figure1" width="640" height="480">
+-	</canvas>
+-	<canvas id="figure2" width="640" height="480">
+-	</canvas>
++	<canvas id="1" width="640" height="480"> </canvas>
+ 
+ 	<script type="text/javascript" async><!--}}}-->
+ 
+ 	var md = new model();
+-	triangle(md,square,50000); 
+-	setmask(md,'all','');
+-	//parameterize(md);
+-	plotmodel(md,'data',md.mask.ice_levelset,'data',md.mask.ice_levelset,'canvasid','figure1','canvasid','figure2');
+-	
++	triangle(md,square,100000); 
++	plotmodel(md,'data',md.mesh.x,'canvasid',1);
++
+ </script> <!--{{{-->
+-<canvas id="ISSM-canvas"></canvas>
+ </body> 
+ </html><!--}}}-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19743-19744.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19743-19744.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19743-19744.diff	(revision 20498)
@@ -0,0 +1,794 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19743)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19744)
+@@ -21,7 +21,31 @@
+ 
+ }/*}}}*/
+ void HydrologySommersAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+-	/*No loads*/
++
++	/*Fetch parameters: */
++	int  hydrology_model;
++	iomodel->Constant(&hydrology_model,HydrologyModelEnum);
++
++	/*Now, do we really want Sommers?*/
++	if(hydrology_model!=HydrologysommersEnum) return;
++
++	//create penalties for nodes: no node can have water above the max
++	CreateSingleNodeToElementConnectivity(iomodel);
++	for(int i=0;i<iomodel->numberofvertices;i++){
++		if (iomodel->domaintype!=Domain3DEnum){
++			/*keep only this partition's nodes:*/
++			if(iomodel->my_vertices[i]){
++				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologySommersAnalysisEnum));
++			}
++		}
++		else if(reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[i])){
++			if(iomodel->my_vertices[i]){
++				loads->AddObject(new Moulin(iomodel->loadcounter+i+1,i,iomodel,HydrologySommersAnalysisEnum));
++			}	
++		}
++	}
++	iomodel->DeleteData(1,MeshVertexonbaseEnum);
++
+ }/*}}}*/
+ void HydrologySommersAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
+ 
+@@ -71,6 +95,7 @@
+ 	iomodel->FetchDataToInput(elements,HydrologyHeadEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyGapHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyEnglacialInputEnum);
++	iomodel->FetchDataToInput(elements,HydrologyMoulinInputEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyBumpSpacingEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyBumpHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyReynoldsEnum);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19743)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19744)
+@@ -161,6 +161,7 @@
+ 	HydrologyBumpSpacingEnum,
+ 	HydrologyBumpHeightEnum,
+ 	HydrologyEnglacialInputEnum,
++	HydrologyMoulinInputEnum,
+ 	HydrologyReynoldsEnum,
+ 	HydrologySpcheadEnum,
+ 	HydrologyConductivityEnum,
+@@ -578,6 +579,7 @@
+ 	NumericalfluxEnum,
+ 	NumericalfluxTypeEnum,
+ 	ParamEnum,
++	MoulinEnum,
+ 	PengridEnum,
+ 	PenpairEnum,
+ 	ProfilerEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19743)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19744)
+@@ -167,6 +167,7 @@
+ 		case HydrologyBumpSpacingEnum : return "HydrologyBumpSpacing";
+ 		case HydrologyBumpHeightEnum : return "HydrologyBumpHeight";
+ 		case HydrologyEnglacialInputEnum : return "HydrologyEnglacialInput";
++		case HydrologyMoulinInputEnum : return "HydrologyMoulinInput";
+ 		case HydrologyReynoldsEnum : return "HydrologyReynolds";
+ 		case HydrologySpcheadEnum : return "HydrologySpchead";
+ 		case HydrologyConductivityEnum : return "HydrologyConductivity";
+@@ -570,6 +571,7 @@
+ 		case NumericalfluxEnum : return "Numericalflux";
+ 		case NumericalfluxTypeEnum : return "NumericalfluxType";
+ 		case ParamEnum : return "Param";
++		case MoulinEnum : return "Moulin";
+ 		case PengridEnum : return "Pengrid";
+ 		case PenpairEnum : return "Penpair";
+ 		case ProfilerEnum : return "Profiler";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19743)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19744)
+@@ -170,6 +170,7 @@
+ 	      else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
+ 	      else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
+ 	      else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
++	      else if (strcmp(name,"HydrologyMoulinInput")==0) return HydrologyMoulinInputEnum;
+ 	      else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
+ 	      else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
+ 	      else if (strcmp(name,"HydrologyConductivity")==0) return HydrologyConductivityEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"StrainRateeffective")==0) return StrainRateeffectiveEnum;
+ 	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+ 	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+-	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
++	      if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
++	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+ 	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
+ 	      else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
+ 	      else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SmbV")==0) return SmbVEnum;
+ 	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
+ 	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+-	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
++	      if (strcmp(name,"SmbP")==0) return SmbPEnum;
++	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+ 	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+ 	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
+ 	      else if (strcmp(name,"SmbTmean")==0) return SmbTmeanEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
+ 	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
+ 	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
+-	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
++	      if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
++	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
+ 	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
+ 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
+ 	      else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
+@@ -582,6 +583,7 @@
+ 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
++	      else if (strcmp(name,"Moulin")==0) return MoulinEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+ 	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
+ 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
+ 	      else if (strcmp(name,"Free")==0) return FreeEnum;
+ 	      else if (strcmp(name,"Open")==0) return OpenEnum;
+-	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
+-	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
++	      if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
++	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
++	      else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
+ 	      else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
+ 	      else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
+ 	      else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
+ 	      else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
+ 	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+-	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+-	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
++	      if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
++	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
++	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
+ 	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+ 	      else if (strcmp(name,"J")==0) return JEnum;
+ 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
+ 	      else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
+ 	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
+-	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+-	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
++	      if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
++	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
++	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
+ 	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
+ 	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
+ 	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19743)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19744)
+@@ -68,6 +68,7 @@
+ 					./classes/Loads/Loads.cpp\
+ 					./classes/Loads/Penpair.cpp\
+ 					./classes/Loads/Pengrid.cpp\
++					./classes/Loads/Moulin.cpp\
+ 					./classes/Loads/Numericalflux.cpp\
+ 					./classes/matrix/ElementMatrix.cpp\
+ 					./classes/matrix/ElementVector.cpp\
+Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19743)
++++ ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19744)
+@@ -59,7 +59,6 @@
+ 		}
+ 		
+ 		/*Proceed now to heads computations*/
+-		if(VerboseSolution()) _printf0_("   computing water head\n");
+ 		solutionsequence_hydro_nonlinear(femmodel);
+ 
+ 		if(save_results){
+Index: ../trunk-jpl/src/c/classes/classes.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/classes.h	(revision 19743)
++++ ../trunk-jpl/src/c/classes/classes.h	(revision 19744)
+@@ -36,6 +36,7 @@
+ #include "./Loads/Riftfront.h"
+ #include "./Loads/Penpair.h"
+ #include "./Loads/Pengrid.h"
++#include "./Loads/Moulin.h"
+ 
+ /*Elements: */
+ #include "./Elements/Elements.h"
+Index: ../trunk-jpl/src/c/classes/Loads/Moulin.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 0)
++++ ../trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 19744)
+@@ -0,0 +1,350 @@
++/*!\file Moulin.c
++ * \brief: implementation of the Moulin object
++ */
++
++/*Headers*/
++/*{{{*/
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "../classes.h"
++#include "shared/shared.h"
++#include "../../analyses/analyses.h"
++/*}}}*/
++
++/*Element macros*/
++#define NUMVERTICES   1
++
++/*Moulin constructors and destructor*/
++Moulin::Moulin(){/*{{{*/
++	this->parameters=NULL;
++	this->hnode=NULL;
++	this->node=NULL;
++	this->helement=NULL;
++	this->element=NULL;
++	this->hmatpar=NULL;
++	this->matpar=NULL;
++}
++/*}}}*/
++Moulin::Moulin(int id, int index, IoModel* iomodel, int in_analysis_type){ //i is the element index/*{{{*/
++
++	int pengrid_node_id;
++	int pengrid_matpar_id;
++	int pengrid_element_id;
++
++	/*Some checks if debugging activated*/
++	_assert_(iomodel->singlenodetoelementconnectivity);
++	_assert_(index>=0 && index<iomodel->numberofvertices);
++	_assert_(id);
++
++	/*id: */
++	this->id=id;
++	this->analysis_type=in_analysis_type;
++
++	/*hooks: */
++	pengrid_node_id=iomodel->nodecounter+index+1;
++	pengrid_element_id=iomodel->singlenodetoelementconnectivity[index];
++	_assert_(pengrid_element_id);
++	pengrid_matpar_id=iomodel->numberofelements+1; //refers to the constant material parameters object
++
++	this->hnode=new Hook(&pengrid_node_id,1);
++	this->helement=new Hook(&pengrid_element_id,1);
++	this->hmatpar=new Hook(&pengrid_matpar_id,1);
++
++	//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
++	this->parameters=NULL;
++	this->node=NULL;
++	this->element=NULL;
++	this->matpar=NULL;
++}
++/*}}}*/
++Moulin::~Moulin(){/*{{{*/
++	delete hnode;
++	delete helement;
++	delete hmatpar;
++	return;
++}
++/*}}}*/
++
++/*Object virtual functions definitions:*/
++Object* Moulin::copy() {/*{{{*/
++
++	Moulin* pengrid=NULL;
++
++	pengrid=new Moulin();
++
++	/*copy fields: */
++	pengrid->id=this->id;
++	pengrid->analysis_type=this->analysis_type;
++
++	/*point parameters: */
++	pengrid->parameters=this->parameters;
++
++	/*now deal with hooks and objects: */
++	pengrid->hnode=(Hook*)this->hnode->copy();
++	pengrid->hmatpar=(Hook*)this->hmatpar->copy();
++	pengrid->helement=(Hook*)this->helement->copy();
++
++	/*corresponding fields*/
++	pengrid->node  =(Node*)pengrid->hnode->delivers();
++	pengrid->matpar =(Matpar*)pengrid->hmatpar->delivers();
++	pengrid->element=(Element*)pengrid->helement->delivers();
++
++	return pengrid;
++}
++/*}}}*/
++void    Moulin::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(MoulinEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnode      = new Hook();
++		this->helement   = new Hook();
++		this->hmatpar    = new Hook();
++	}
++
++	this->hnode->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hmatpar->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	node   =(Node*)this->hnode->delivers();
++	matpar =(Matpar*)this->hmatpar->delivers();
++	element=(Element*)this->helement->delivers();
++}
++/*}}}*/
++void    Moulin::DeepEcho(void){/*{{{*/
++
++	_printf_("Moulin:\n");
++	_printf_("   id: " << id << "\n");
++	_printf_("   analysis_type: " << EnumToStringx(analysis_type) << "\n");
++	hnode->DeepEcho();
++	helement->DeepEcho();
++	hmatpar->DeepEcho();
++	_printf_("   parameters\n");
++	parameters->DeepEcho();
++}
++/*}}}*/
++void    Moulin::Echo(void){/*{{{*/
++	this->DeepEcho();
++}
++/*}}}*/
++int     Moulin::Id(void){ return id; }/*{{{*/
++/*}}}*/
++int     Moulin::ObjectEnum(void){/*{{{*/
++
++	return MoulinEnum;
++}
++/*}}}*/
++
++/*Load virtual functions definitions:*/
++void  Moulin::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
++
++	/*Take care of hooking up all objects for this load, ie links the objects in the hooks to their respective 
++	 * datasets, using internal ids and offsets hidden in hooks: */
++	hnode->configure(nodesin);
++	helement->configure(elementsin);
++	hmatpar->configure(materialsin);
++
++	/*Get corresponding fields*/
++	node=(Node*)hnode->delivers();
++	element=(Element*)helement->delivers();
++	matpar=(Matpar*)hmatpar->delivers();
++
++	/*point parameters to real dataset: */
++	this->parameters=parametersin;
++}
++/*}}}*/
++void  Moulin::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
++
++	/*No loads applied, do nothing: */
++	return;
++
++}
++/*}}}*/
++void  Moulin::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
++
++	ElementVector* pe=NULL;
++	int analysis_type;
++	this->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
++
++	switch(analysis_type){
++		
++	case HydrologySommersAnalysisEnum:
++		pe = this->CreatePVectorMoulin();
++		break;
++	default:
++		_error_("Don't know why we should be here");
++		/*No loads applied, do nothing: */
++		return;
++	}
++	if(pe){
++		pe->AddToGlobal(pf);
++		delete pe;
++	}
++
++}
++/*}}}*/
++void  Moulin::GetNodesLidList(int* lidlist){/*{{{*/
++
++	_assert_(lidlist);
++	_assert_(node);
++
++	lidlist[0]=node->Lid();
++}
++/*}}}*/
++void  Moulin::GetNodesSidList(int* sidlist){/*{{{*/
++
++	_assert_(sidlist);
++	_assert_(node);
++
++	sidlist[0]=node->Sid();
++}
++/*}}}*/
++int   Moulin::GetNumberOfNodes(void){/*{{{*/
++
++	return NUMVERTICES;
++}
++/*}}}*/
++bool  Moulin::InAnalysis(int in_analysis_type){/*{{{*/
++	if (in_analysis_type==this->analysis_type)return true;
++	else return false;
++}
++/*}}}*/
++bool  Moulin::IsPenalty(void){/*{{{*/
++	return true;
++}
++/*}}}*/
++void  Moulin::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
++
++	/*Don't do anything for now*/
++
++}
++/*}}}*/
++void  Moulin::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
++
++	/*Don't do anything for now*/
++}
++/*}}}*/
++void  Moulin::ResetHooks(){/*{{{*/
++
++	this->node=NULL;
++	this->element=NULL;
++	this->matpar=NULL;
++	this->parameters=NULL;
++
++	/*Get Element type*/
++	this->hnode->reset();
++	this->helement->reset();
++	this->hmatpar->reset();
++
++}
++/*}}}*/
++void  Moulin::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
++
++}
++/*}}}*/
++void  Moulin::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
++
++	/*Output */
++	int d_nz = 0;
++	int o_nz = 0;
++
++	if(!flags[this->node->Lid()]){
++
++		/*flag current node so that no other element processes it*/
++		flags[this->node->Lid()]=true;
++
++		int counter=0;
++		while(flagsindices[counter]>=0) counter++;
++		flagsindices[counter]=this->node->Lid();
++
++		/*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/
++		switch(set2_enum){
++			case FsetEnum:
++				if(node->indexing.fsize){
++					if(this->node->IsClone())
++					 o_nz += 1;
++					else
++					 d_nz += 1;
++				}
++				break;
++			case GsetEnum:
++				if(node->indexing.gsize){
++					if(this->node->IsClone())
++					 o_nz += 1;
++					else
++					 d_nz += 1;
++				}
++				break;
++			case SsetEnum:
++				if(node->indexing.ssize){
++					if(this->node->IsClone())
++					 o_nz += 1;
++					else
++					 d_nz += 1;
++				}
++				break;
++			default: _error_("not supported");
++		}
++	}
++
++	/*Assign output pointers: */
++	*pd_nz=d_nz;
++	*po_nz=o_nz;
++}
++/*}}}*/
++
++/*Update virtual functions definitions:*/
++void  Moulin::InputUpdateFromConstant(IssmDouble constant, int name){/*{{{*/
++	/*Nothing*/
++}
++/*}}}*/
++void  Moulin::InputUpdateFromConstant(int constant, int name){/*{{{*/
++	/*Nothing updated yet*/
++}
++/*}}}*/
++void  Moulin::InputUpdateFromConstant(bool constant, int name){/*{{{*/
++
++	/*Don't do anything for now*/
++}
++/*}}}*/
++void  Moulin::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*{{{*/
++	/*Nothing updated yet*/
++}
++/*}}}*/
++void  Moulin::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
++	/*Nothing updated yet*/
++}
++/*}}}*/
++void  Moulin::InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*{{{*/
++	/*Nothing updated yet*/
++}
++/*}}}*/
++
++ElementVector* Moulin::CreatePVectorMoulin(void){/*{{{*/
++
++	/*If this node is not the master node (belongs to another partition of the
++	 * mesh), don't add the moulin input a second time*/
++	if(node->IsClone()) return NULL;
++
++	IssmDouble moulin_load;
++
++	/*Initialize Element matrix*/
++	ElementVector* pe=new ElementVector(&node,1,this->parameters);
++
++	this->element->GetInputValue(&moulin_load,node,HydrologyMoulinInputEnum);
++	pe->values[0]=moulin_load;
++
++	/*Clean up and return*/
++	return pe;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Loads/Moulin.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Moulin.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Loads/Moulin.h	(revision 19744)
+@@ -0,0 +1,85 @@
++/*!\file Moulin.h
++ * \brief: header file for pengrid object */
++
++#ifndef _MOULIN_H_
++#define _MOULIN_H_
++
++/*Headers:*/
++/*{{{*/
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++#include "./Load.h"
++class Hook;
++class Inputs;
++class Parameters;
++class IoModel;
++/*}}}*/
++
++class Moulin: public Load{
++
++	private: 
++
++		int id;
++		int analysis_type;
++
++		/*Hooks*/
++		Hook* hnode;  //hook to 1 node
++		Hook* helement;  //hook to 1 element
++		Hook* hmatpar; //hook to 1 matpar
++
++		/*Corresponding fields*/
++		Node    *node;
++		Element *element;
++		Matpar  *matpar;
++
++		Parameters* parameters; //pointer to solution parameters
++
++	public:
++
++		/*Moulin constructors, destructors {{{*/
++		Moulin();
++		Moulin(int index, int id, IoModel* iomodel,int analysis_type);
++		~Moulin();
++		/*}}}*/
++		/*Object virtual functions definitions:{{{ */
++		void  Echo();
++		void  DeepEcho();
++		int   Id(); 
++		int   ObjectEnum();
++		Object* copy();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
++		/*}}}*/
++		/*Update virtual functions resolution: {{{*/
++		void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
++		void  InputUpdateFromMatrixDakota(IssmDouble* matrix ,int nrows, int ncols, int name, int type);
++		void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
++		void  InputUpdateFromConstant(IssmDouble constant, int name);
++		void  InputUpdateFromConstant(int constant, int name);
++		void  InputUpdateFromConstant(bool constant, int name);
++		void  InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
++		/*}}}*/
++		/*Load virtual functions definitions: {{{*/
++		void  Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
++		void  SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
++		void  ResetHooks();
++		void  CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
++		void  CreatePVector(Vector<IssmDouble>* pf);
++		void  CreateJacobianMatrix(Matrix<IssmDouble>* Jff){_error_("Not implemented yet");};
++		void  GetNodesSidList(int* sidlist);
++		void  GetNodesLidList(int* lidlist);
++		int   GetNumberOfNodes(void);
++		bool  IsPenalty(void);
++		void  PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
++		void  PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* kfs, IssmDouble kmax);
++		void  PenaltyCreatePVector(Vector<IssmDouble>* pf, IssmDouble kmax);
++		void  SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
++		bool  InAnalysis(int analysis_type);
++		/*}}}*/
++
++		ElementVector* CreatePVectorMoulin(void);
++};
++
++#endif  /* _MOULIN_H_ */
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 19743)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 19744)
+@@ -79,7 +79,7 @@
+ 		analyses=[GiaAnalysisEnum()];
+ 
+ 	case TransientSolutionEnum(),
+-		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum();EnthalpyAnalysisEnum();MasstransportAnalysisEnum()];
++		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum();EnthalpyAnalysisEnum();MasstransportAnalysisEnum();HydrologySommersAnalysisEnum];
+ 
+ 	case FlaimSolutionEnum(),
+ 		analyses=[FlaimAnalysisEnum()];
+Index: ../trunk-jpl/src/m/plot/plot_transient_movie.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_transient_movie.m	(revision 19743)
++++ ../trunk-jpl/src/m/plot/plot_transient_movie.m	(revision 19744)
+@@ -61,7 +61,7 @@
+ 			[data datatype]=processdata(md,results(i).(field),options);
+ 
+ 			clf;
+-			titlestring=[field ' at time ' num2str(results(i).time/md.constants.yts) ' year'];
++			titlestring=[field ' at time ' num2str(results(i).time) ' year'];
+ 			plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options)
+ 			apply_options_movie(md,options,titlestring);
+ 
+Index: ../trunk-jpl/src/m/classes/hydrologysommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19743)
++++ ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19744)
+@@ -10,6 +10,7 @@
+ 		bump_spacing    = NaN;
+ 		bump_height     = NaN;
+ 		englacial_input = NaN;
++		moulin_input    = NaN;
+ 		reynolds        = NaN;
+ 		spchead         = NaN;
+ 	end
+@@ -39,7 +40,8 @@
+ 			md = checkfield(md,'fieldname','hydrology.gap_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+ 			md = checkfield(md,'fieldname','hydrology.bump_spacing','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+ 			md = checkfield(md,'fieldname','hydrology.bump_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'size',[md.mesh.numberofvertices 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'NaN',1,'timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.moulin_input','>=',0,'NaN',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+ 			md = checkfield(md,'fieldname','hydrology.spchead','size',[md.mesh.numberofvertices 1]);
+ 		end % }}}
+@@ -50,6 +52,7 @@
+ 			fielddisplay(self,'bump_spacing','characteristic bedrock bump spacing (m)');
+ 			fielddisplay(self,'bump_height','characteristic bedrock bump height (m)');
+ 			fielddisplay(self,'englacial_input','liquid water input from englacial to subglacial system (m/yr)');
++			fielddisplay(self,'moulin_input','liquid water input from moulins (at the vertices) to subglacial system (m^3/s)');
+ 			fielddisplay(self,'reynolds','Reynolds'' number');
+ 			fielddisplay(self,'spchead','water head constraints (NaN means no constraint) (m)');
+ 		end % }}}
+@@ -62,7 +65,8 @@
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','gap_height','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','bump_spacing','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','bump_height','format','DoubleMat','mattype',2);
+-			WriteData(fid,'object',self,'class','hydrology','fieldname','englacial_input','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','englacial_input','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','reynolds','format','DoubleMat','mattype',2);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/enum/MoulinEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MoulinEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MoulinEnum.m	(revision 19744)
+@@ -0,0 +1,11 @@
++function macro=MoulinEnum()
++%MOULINENUM - Enum of Moulin
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MoulinEnum()
++
++macro=StringToEnum('Moulin');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19743)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19744)
+@@ -159,6 +159,7 @@
+ def HydrologyBumpSpacingEnum(): return StringToEnum("HydrologyBumpSpacing")[0]
+ def HydrologyBumpHeightEnum(): return StringToEnum("HydrologyBumpHeight")[0]
+ def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
++def HydrologyMoulinInputEnum(): return StringToEnum("HydrologyMoulinInput")[0]
+ def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
+ def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
+ def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0]
+@@ -562,6 +563,7 @@
+ def NumericalfluxEnum(): return StringToEnum("Numericalflux")[0]
+ def NumericalfluxTypeEnum(): return StringToEnum("NumericalfluxType")[0]
+ def ParamEnum(): return StringToEnum("Param")[0]
++def MoulinEnum(): return StringToEnum("Moulin")[0]
+ def PengridEnum(): return StringToEnum("Pengrid")[0]
+ def PenpairEnum(): return StringToEnum("Penpair")[0]
+ def ProfilerEnum(): return StringToEnum("Profiler")[0]
+Index: ../trunk-jpl/src/m/enum/HydrologyMoulinInputEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyMoulinInputEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyMoulinInputEnum.m	(revision 19744)
+@@ -0,0 +1,11 @@
++function macro=HydrologyMoulinInputEnum()
++%HYDROLOGYMOULININPUTENUM - Enum of HydrologyMoulinInput
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyMoulinInputEnum()
++
++macro=StringToEnum('HydrologyMoulinInput');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19744-19745.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19744-19745.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19744-19745.diff	(revision 20498)
@@ -0,0 +1,117 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19744)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19745)
+@@ -19,9 +19,6 @@
+ 	var scale;
+ 	//}}}
+ 
+-	//load the shaders: 
+-	loadShaders(gl);
+-	
+ 	//Initialize the buffer structure: 
+ 	node = Node(gl,options);
+ 
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19744)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19745)
+@@ -1,5 +1,4 @@
+ /*This is where we have all our webgl relevant functionality for the plotting routines: */
+-var shaders = {};
+ //{{{ GL Initialization
+ function initWebGL(canvas,options) { //{{{
+ 	gl = null;
+@@ -27,6 +26,9 @@
+ 	gl.enableVertexAttribArray(0);
+ 	gl.enableVertexAttribArray(1);
+ 
++	// Load shaders and store them in gl object
++	gl.shaders = loadShaders(gl);
++
+ 	// Add context state variables
+ 	canvas.zoomFactor = options.getfieldvalue('zoomfactor',-.52);
+ 	canvas.cameraMatrix = mat4.create();
+@@ -67,7 +69,7 @@
+ 	var node;
+ 
+ 	node= {buffers:[],
+-		shader:shaders["colored"]["program"],
++		shader:gl.shaders["colored"]["program"],
+ 		draw:null,
+ 		hideOcean:false,
+ 		level:0,
+@@ -127,27 +129,34 @@
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+-	var shader_name_array = ["colored"];
+-	//var shaders = {};
+-	for (var i = 0; i < shader_name_array.length; i++) {
+-		loadShader(gl,shader_name_array[i]);
+-	}
+-	//return shaders; 
+-} //}}}
+-function loadShader(gl,shaderName) { //{{{
+-	//var shader = {loaded:false, vsh:{}, fsh:{}};
++	// TODO: Subsitute shaders["colored"] with shaderColored
++	shaderName = "colored";
++	shaders = {};
+ 	shaders[shaderName] = {loaded:false, vsh:{}, fsh:{}};
+-	$.ajax({
+-		url: "webgl/shaders/" + shaderName + ".vsh",
+-		async: false,
+-		dataType: "script"
+-	});
+-	$.ajax({
+-		url: "webgl/shaders/" + shaderName + ".fsh",
+-		async: false,
+-		dataType: "script"
+-	});
++	shaders["colored"]["vsh"]["string"] = `
++		attribute vec3 aVertexPosition;
++		attribute vec4 aVertexColor;
+ 
++		uniform mat4 uMVPMatrix;
++		uniform float uAlpha;
++
++		varying vec4 vColor;
++
++		void main(void) {
++			gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);
++			vColor = vec4(aVertexColor.xyz, uAlpha);
++		}
++	`;
++	shaders["colored"]["fsh"]["string"] = `
++		precision mediump float;
++
++		varying vec4 vColor;
++
++		void main(void) {
++			gl_FragColor = vColor;
++		}
++	`;
++
+ 	shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
+ 	shaders[shaderName]["fsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["fsh"]["string"], "fsh");
+ 
+@@ -189,7 +198,7 @@
+ 		}
+ 	}
+ 	shaders[shaderName]["loaded"] = true;
+-	//return shader;
++	return shaders;
+ } //}}}
+ function getShaderByString(gl,str,type) { //{{{
+ 	var shader;
+@@ -213,10 +222,6 @@
+ 
+ 	return shader;
+ } //}}}
+-function functionToString(functionVariable) { //{{{
+-	//Workaround for loading text files - store as multiline comment in function, then strip string from function once loaded
+-	return functionVariable.toString().replace(/^[^\/]+\/\*!?/, '').replace(/\*\/[^\/]+$/, '');
+-} //}}}
+ function nameFromLine(line) { //{{{
+ 	//returns lowerCamelCase property name from shader line
+ 	var fullName = line.split(" ")[2];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19745-19746.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19745-19746.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19745-19746.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp
+===================================================================
+--- ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19745)
++++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_nonlinear.cpp	(revision 19746)
+@@ -32,7 +32,6 @@
+ 	int configuration_type;
+ 	IssmDouble eps_res,eps_rel,eps_abs;
+ 
+-
+ 	/*Recover parameters: */
+ 	femmodel->parameters->FindParam(&min_mechanical_constraints,StressbalanceRiftPenaltyThresholdEnum);
+ 	femmodel->parameters->FindParam(&max_nonlinear_iterations,StressbalanceMaxiterEnum);
+@@ -56,7 +55,7 @@
+ 
+ 	//Update once again the solution to make sure that vx and vxold are similar (for next step in transient or steadystate)
+ 	InputUpdateFromConstantx(femmodel,converged,ConvergedEnum);
+-	//InputUpdateFromSolutionx(femmodel,ug);
++	InputUpdateFromSolutionx(femmodel,ug);
+ 
+ 	for(;;){
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19746-19747.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19746-19747.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19746-19747.diff	(revision 20498)
@@ -0,0 +1,58 @@
+Index: ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 19746)
++++ ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 19747)
+@@ -16,6 +16,9 @@
+ mv cmake-$VER/* install
+ rm -rf cmake-$VER
+ 
++LDFLAGS="-L/usr/lib/ -libstdc++ -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran"
++F77="/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran"
++
+ #Compile cmake
+ cd install 
+ ./bootstrap --prefix=$ISSM_DIR/externalpackages/cmake/install
+Index: ../trunk-jpl/externalpackages/python/install-2.7.3-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/python/install-2.7.3-macosx-snowleopard.sh	(revision 19746)
++++ ../trunk-jpl/externalpackages/python/install-2.7.3-macosx-snowleopard.sh	(revision 19747)
+@@ -21,7 +21,8 @@
+ cd src 
+ # --enable-framework needs to have the form "$SOME_PATH/Library/Frameworks" to avoid installing components in /Applications directory
+ # --prefix is recognized as $SOME_PATH as long as this form is taken, so it's not necessary to include
+-./configure --enable-framework="$ISSM_DIR/externalpackages/python/install/Library/Frameworks" 
++./configure --enable-framework="$ISSM_DIR/externalpackages/python/install/Library/Frameworks" \
++	LDFLAGS="-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran "
+ 
+ #make
+ if [ $# -eq 0 ]; then
+Index: ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19746)
++++ ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19747)
+@@ -3,8 +3,8 @@
+ 
+ # On OSX 10.6, fgortran gets installed in /usr/local/gfortran 
+ export PATH="/usr/local/gfortran/bin/:$PATH"
+-export CC="/usr/local/gfortran/bin/gcc"
+-export CXX="/usr/local/gfortran/bin/g++"
++#export CC="/usr/local/gfortran/bin/gcc"
++#export CXX="/usr/local/gfortran/bin/g++"
+ 
+ #download scipy
+ git clone https://github.com/scipy/scipy.git
+Index: ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh	(revision 19746)
++++ ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh	(revision 19747)
+@@ -4,8 +4,8 @@
+ rm -rf install
+ 
+ # On OSX 10.6, gfortran gets installed in /usr/local/gfortran 
+-export CC="/usr/local/gfortran/bin/gcc"
+-export CXX="/usr/local/gfortran/bin/g++"
++#export CC="/usr/local/gfortran/bin/gcc"
++#export CXX="/usr/local/gfortran/bin/g++"
+ 
+ #download numpy first
+ git clone https://github.com/numpy/numpy.git
Index: /issm/oecreview/Archive/19101-20495/ISSM-19747-19748.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19747-19748.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19747-19748.diff	(revision 20498)
@@ -0,0 +1,348 @@
+Index: ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim
+===================================================================
+--- ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim	(revision 19747)
++++ ../trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim	(revision 19748)
+@@ -422,6 +422,7 @@
+ syn keyword cType Definition
+ syn keyword cType DependentObject
+ syn keyword cType DofIndexing
++syn keyword cType DoubleArrayInput
+ syn keyword cType DoubleInput
+ syn keyword cType DoubleMatArrayParam
+ syn keyword cType DoubleMatParam
+@@ -457,6 +458,8 @@
+ syn keyword cType IntParam
+ syn keyword cType IntVecParam
+ syn keyword cType IoModel
++syn keyword cType IssmDirectApplicInterface
++syn keyword cType IssmParallelDirectApplicInterface
+ syn keyword cType Load
+ syn keyword cType Loads
+ syn keyword cType Masscon
+@@ -468,6 +471,8 @@
+ syn keyword cType Matpar
+ syn keyword cType MatrixParam
+ syn keyword cType Misfit
++syn keyword cType Moulin
++syn keyword cType Neumannflux
+ syn keyword cType Node
+ syn keyword cType Nodes
+ syn keyword cType Numericalflux
+@@ -537,6 +542,7 @@
+ syn keyword cType HydrologyDCEfficientAnalysis
+ syn keyword cType HydrologyDCInefficientAnalysis
+ syn keyword cType HydrologyShreveAnalysis
++syn keyword cType HydrologySommersAnalysis
+ syn keyword cType L2ProjectionBaseAnalysis
+ syn keyword cType L2ProjectionEPLAnalysis
+ syn keyword cType LevelsetAnalysis
+@@ -544,6 +550,7 @@
+ syn keyword cType MasstransportAnalysis
+ syn keyword cType MeltingAnalysis
+ syn keyword cType MeshdeformationAnalysis
++syn keyword cType SmbAnalysis
+ syn keyword cType SmoothAnalysis
+ syn keyword cType StressbalanceAnalysis
+ syn keyword cType StressbalanceSIAAnalysis
+@@ -552,6 +559,7 @@
+ syn keyword cType UzawaPressureAnalysis
+ "ISSM's objects end
+ "ISSM's Enums begin
++syn keyword cConstant FemModelEnum
+ syn keyword cConstant AutodiffIsautodiffEnum
+ syn keyword cConstant AutodiffNumDependentsEnum
+ syn keyword cConstant AutodiffNumDependentObjectsEnum
+@@ -588,12 +596,15 @@
+ syn keyword cConstant BasalforcingsDeepwaterMeltingRateEnum
+ syn keyword cConstant BasalforcingsDeepwaterElevationEnum
+ syn keyword cConstant BasalforcingsUpperwaterElevationEnum
++syn keyword cConstant BasalforcingsMeltrateFactorEnum
++syn keyword cConstant BasalforcingsThresholdThicknessEnum
++syn keyword cConstant BasalforcingsUpperdepthMeltEnum
+ syn keyword cConstant FloatingMeltRateEnum
+ syn keyword cConstant LinearFloatingMeltRateEnum
++syn keyword cConstant MismipFloatingMeltRateEnum
+ syn keyword cConstant BedEnum
+ syn keyword cConstant BaseEnum
+ syn keyword cConstant ConstantsGEnum
+-syn keyword cConstant ConstantsOmegaEnum
+ syn keyword cConstant ConstantsReferencetemperatureEnum
+ syn keyword cConstant ConstantsYtsEnum
+ syn keyword cConstant DependentObjectEnum
+@@ -633,12 +644,14 @@
+ syn keyword cConstant FlowequationVertexEquationEnum
+ syn keyword cConstant FrictionAsEnum
+ syn keyword cConstant FrictionCoefficientEnum
++syn keyword cConstant FrictionCoefficientcoulombEnum
+ syn keyword cConstant FrictionPEnum
+ syn keyword cConstant FrictionQEnum
+ syn keyword cConstant FrictionMEnum
+ syn keyword cConstant FrictionCEnum
+ syn keyword cConstant FrictionLawEnum
+ syn keyword cConstant FrictionGammaEnum
++syn keyword cConstant FrictionFEnum
+ syn keyword cConstant FrictionWaterLayerEnum
+ syn keyword cConstant FrictionEffectivePressureEnum
+ syn keyword cConstant FrictionCouplingEnum
+@@ -690,6 +703,17 @@
+ syn keyword cConstant HydrologySedimentEnum
+ syn keyword cConstant HydrologyEfficientEnum
+ syn keyword cConstant HydrologySedimentKmaxEnum
++syn keyword cConstant HydrologysommersEnum
++syn keyword cConstant HydrologyHeadEnum
++syn keyword cConstant HydrologyGapHeightEnum
++syn keyword cConstant HydrologyBumpSpacingEnum
++syn keyword cConstant HydrologyBumpHeightEnum
++syn keyword cConstant HydrologyEnglacialInputEnum
++syn keyword cConstant HydrologyMoulinInputEnum
++syn keyword cConstant HydrologyReynoldsEnum
++syn keyword cConstant HydrologyNeumannfluxEnum
++syn keyword cConstant HydrologySpcheadEnum
++syn keyword cConstant HydrologyConductivityEnum
+ syn keyword cConstant IndependentObjectEnum
+ syn keyword cConstant InversionControlParametersEnum
+ syn keyword cConstant InversionControlScalingFactorsEnum
+@@ -743,10 +767,8 @@
+ syn keyword cConstant DamageElementinterpEnum
+ syn keyword cConstant DamageHealingEnum
+ syn keyword cConstant DamageStressThresholdEnum
++syn keyword cConstant DamageKappaEnum
+ syn keyword cConstant DamageStabilizationEnum
+-syn keyword cConstant DamagePenaltyThresholdEnum
+-syn keyword cConstant DamagePenaltyLockEnum
+-syn keyword cConstant DamagePenaltyFactorEnum
+ syn keyword cConstant DamageMaxiterEnum
+ syn keyword cConstant DamageSpcdamageEnum
+ syn keyword cConstant DamageMaxDamageEnum
+@@ -803,6 +825,7 @@
+ syn keyword cConstant MeshYEnum
+ syn keyword cConstant MeshZEnum
+ syn keyword cConstant MeshElementtypeEnum
++syn keyword cConstant MeshSegmentsEnum
+ syn keyword cConstant DomainTypeEnum
+ syn keyword cConstant DomainDimensionEnum
+ syn keyword cConstant Domain2DhorizontalEnum
+@@ -833,6 +856,7 @@
+ syn keyword cConstant SettingsIoGatherEnum
+ syn keyword cConstant SettingsLowmemEnum
+ syn keyword cConstant SettingsOutputFrequencyEnum
++syn keyword cConstant SettingsRecordingFrequencyEnum
+ syn keyword cConstant SettingsWaitonlockEnum
+ syn keyword cConstant DebugProfilingEnum
+ syn keyword cConstant ProfilingCurrentMemEnum
+@@ -863,6 +887,7 @@
+ syn keyword cConstant TimesteppingTimeAdaptEnum
+ syn keyword cConstant TimesteppingTimeStepEnum
+ syn keyword cConstant TimesteppingInterpForcingsEnum
++syn keyword cConstant TransientIssmbEnum
+ syn keyword cConstant TransientIsstressbalanceEnum
+ syn keyword cConstant TransientIsgroundinglineEnum
+ syn keyword cConstant TransientIsmasstransportEnum
+@@ -881,43 +906,101 @@
+ syn keyword cConstant BalancethicknessCmuEnum
+ syn keyword cConstant BalancethicknessOmegaEnum
+ syn keyword cConstant BalancethicknessD0Enum
+-syn keyword cConstant SurfaceforcingsEnum
+-syn keyword cConstant SMBEnum
+-syn keyword cConstant SurfaceforcingsMassBalanceEnum
++syn keyword cConstant SmbEnum
++syn keyword cConstant SmbAnalysisEnum
++syn keyword cConstant SmbSolutionEnum
++syn keyword cConstant SmbNumRequestedOutputsEnum
++syn keyword cConstant SmbRequestedOutputsEnum
++syn keyword cConstant SmbIsInitializedEnum
++syn keyword cConstant SMBforcingEnum
++syn keyword cConstant SmbMassBalanceEnum
++syn keyword cConstant SMBgembEnum
++syn keyword cConstant SmbInitDensityScalingEnum
++syn keyword cConstant SmbTaEnum
++syn keyword cConstant SmbVEnum
++syn keyword cConstant SmbDswrfEnum
++syn keyword cConstant SmbDlwrfEnum
++syn keyword cConstant SmbPEnum
++syn keyword cConstant SmbSwfEnum
++syn keyword cConstant SmbEAirEnum
++syn keyword cConstant SmbPAirEnum
++syn keyword cConstant SmbTmeanEnum
++syn keyword cConstant SmbCEnum
++syn keyword cConstant SmbTzEnum
++syn keyword cConstant SmbVzEnum
++syn keyword cConstant SmbDtEnum
++syn keyword cConstant SmbDzEnum
++syn keyword cConstant SmbAIdxEnum
++syn keyword cConstant SmbSwIdxEnum
++syn keyword cConstant SmbDenIdxEnum
++syn keyword cConstant SmbZTopEnum
++syn keyword cConstant SmbDzTopEnum
++syn keyword cConstant SmbDzMinEnum
++syn keyword cConstant SmbZYEnum
++syn keyword cConstant SmbZMaxEnum
++syn keyword cConstant SmbZMinEnum
++syn keyword cConstant SmbOutputFreqEnum
++syn keyword cConstant SmbASnowEnum
++syn keyword cConstant SmbAIceEnum
++syn keyword cConstant SmbCldFracEnum
++syn keyword cConstant SmbT0wetEnum
++syn keyword cConstant SmbT0dryEnum
++syn keyword cConstant SmbKEnum
++syn keyword cConstant SmbDEnum
++syn keyword cConstant SmbReEnum
++syn keyword cConstant SmbGdnEnum
++syn keyword cConstant SmbGspEnum
++syn keyword cConstant SmbECEnum
++syn keyword cConstant SmbCondensationEnum
++syn keyword cConstant SmbWEnum
++syn keyword cConstant SmbAEnum
++syn keyword cConstant SmbTEnum
++syn keyword cConstant SmbIsgraingrowthEnum
++syn keyword cConstant SmbIsalbedoEnum
++syn keyword cConstant SmbIsshortwaveEnum
++syn keyword cConstant SmbIsthermalEnum
++syn keyword cConstant SmbIsaccumulationEnum
++syn keyword cConstant SmbIsmeltEnum
++syn keyword cConstant SmbIsdensificationEnum
++syn keyword cConstant SmbIsturbulentfluxEnum
+ syn keyword cConstant SMBpddEnum
+-syn keyword cConstant SurfaceforcingsDelta18oEnum
+-syn keyword cConstant SurfaceforcingsDelta18oSurfaceEnum
+-syn keyword cConstant SurfaceforcingsIsdelta18oEnum
+-syn keyword cConstant SurfaceforcingsIsmungsmEnum
+-syn keyword cConstant SurfaceforcingsPrecipitationsPresentdayEnum
+-syn keyword cConstant SurfaceforcingsPrecipitationsLgmEnum
+-syn keyword cConstant SurfaceforcingsTemperaturesPresentdayEnum
+-syn keyword cConstant SurfaceforcingsTemperaturesLgmEnum
+-syn keyword cConstant SurfaceforcingsPrecipitationEnum
+-syn keyword cConstant SurfaceforcingsDesfacEnum
+-syn keyword cConstant SurfaceforcingsS0pEnum
+-syn keyword cConstant SurfaceforcingsS0tEnum
+-syn keyword cConstant SurfaceforcingsRlapsEnum
+-syn keyword cConstant SurfaceforcingsRlapslgmEnum
+-syn keyword cConstant SurfaceforcingsPfacEnum
+-syn keyword cConstant SurfaceforcingsTdiffEnum
+-syn keyword cConstant SurfaceforcingsSealevEnum
++syn keyword cConstant SmbDelta18oEnum
++syn keyword cConstant SmbDelta18oSurfaceEnum
++syn keyword cConstant SmbIsdelta18oEnum
++syn keyword cConstant SmbIsmungsmEnum
++syn keyword cConstant SmbIsd18opdEnum
++syn keyword cConstant SmbPrecipitationsPresentdayEnum
++syn keyword cConstant SmbPrecipitationsLgmEnum
++syn keyword cConstant SmbTemperaturesPresentdayEnum
++syn keyword cConstant SmbTemperaturesLgmEnum
++syn keyword cConstant SmbPrecipitationEnum
++syn keyword cConstant SmbDesfacEnum
++syn keyword cConstant SmbS0pEnum
++syn keyword cConstant SmbS0tEnum
++syn keyword cConstant SmbRlapsEnum
++syn keyword cConstant SmbRlapslgmEnum
++syn keyword cConstant SmbPfacEnum
++syn keyword cConstant SmbTdiffEnum
++syn keyword cConstant SmbSealevEnum
++syn keyword cConstant SMBd18opddEnum
++syn keyword cConstant SmbDpermilEnum
+ syn keyword cConstant SMBgradientsEnum
+-syn keyword cConstant SurfaceforcingsMonthlytemperaturesEnum
+-syn keyword cConstant SurfaceforcingsHrefEnum
+-syn keyword cConstant SurfaceforcingsSmbrefEnum
+-syn keyword cConstant SurfaceforcingsBPosEnum
+-syn keyword cConstant SurfaceforcingsBNegEnum
++syn keyword cConstant SmbMonthlytemperaturesEnum
++syn keyword cConstant SmbHrefEnum
++syn keyword cConstant SmbSmbrefEnum
++syn keyword cConstant SmbBPosEnum
++syn keyword cConstant SmbBNegEnum
+ syn keyword cConstant SMBhenningEnum
+ syn keyword cConstant SMBcomponentsEnum
+-syn keyword cConstant SurfaceforcingsAccumulationEnum
+-syn keyword cConstant SurfaceforcingsEvaporationEnum
+-syn keyword cConstant SurfaceforcingsRunoffEnum
++syn keyword cConstant SmbAccumulationEnum
++syn keyword cConstant SmbEvaporationEnum
++syn keyword cConstant SmbRunoffEnum
+ syn keyword cConstant SMBmeltcomponentsEnum
+-syn keyword cConstant SurfaceforcingsMeltEnum
+-syn keyword cConstant SurfaceforcingsRefreezeEnum
+-syn keyword cConstant SurfaceforcingsIspddEnum
+-syn keyword cConstant SurfaceforcingsIssmbgradientsEnum
++syn keyword cConstant SmbMeltEnum
++syn keyword cConstant SmbRefreezeEnum
++syn keyword cConstant SMBgcmEnum
++syn keyword cConstant SmbIspddEnum
++syn keyword cConstant SmbIssmbgradientsEnum
+ syn keyword cConstant SolutionTypeEnum
+ syn keyword cConstant AnalysisTypeEnum
+ syn keyword cConstant ConfigurationTypeEnum
+@@ -949,6 +1032,7 @@
+ syn keyword cConstant HydrologyShreveAnalysisEnum
+ syn keyword cConstant HydrologyDCInefficientAnalysisEnum
+ syn keyword cConstant HydrologyDCEfficientAnalysisEnum
++syn keyword cConstant HydrologySommersAnalysisEnum
+ syn keyword cConstant HydrologySolutionEnum
+ syn keyword cConstant MeltingAnalysisEnum
+ syn keyword cConstant MasstransportAnalysisEnum
+@@ -986,6 +1070,7 @@
+ syn keyword cConstant FSApproximationEnum
+ syn keyword cConstant FSvelocityEnum
+ syn keyword cConstant FSpressureEnum
++syn keyword cConstant DataSetEnum
+ syn keyword cConstant ConstraintsEnum
+ syn keyword cConstant LoadsEnum
+ syn keyword cConstant MaterialsEnum
+@@ -1002,12 +1087,15 @@
+ syn keyword cConstant ControlInputEnum
+ syn keyword cConstant DatasetInputEnum
+ syn keyword cConstant DoubleInputEnum
++syn keyword cConstant DoubleArrayInputEnum
+ syn keyword cConstant DataSetParamEnum
+ syn keyword cConstant DoubleMatArrayParamEnum
+ syn keyword cConstant DoubleMatParamEnum
+ syn keyword cConstant DoubleParamEnum
+ syn keyword cConstant DoubleVecParamEnum
+ syn keyword cConstant ElementEnum
++syn keyword cConstant ElementHookEnum
++syn keyword cConstant HookEnum
+ syn keyword cConstant ExternalResultEnum
+ syn keyword cConstant FileParamEnum
+ syn keyword cConstant InputEnum
+@@ -1026,7 +1114,9 @@
+ syn keyword cConstant NodeEnum
+ syn keyword cConstant NumericalfluxEnum
+ syn keyword cConstant NumericalfluxTypeEnum
++syn keyword cConstant NeumannfluxEnum
+ syn keyword cConstant ParamEnum
++syn keyword cConstant MoulinEnum
+ syn keyword cConstant PengridEnum
+ syn keyword cConstant PenpairEnum
+ syn keyword cConstant ProfilerEnum
+@@ -1102,6 +1192,7 @@
+ syn keyword cConstant SurfaceSlopeYEnum
+ syn keyword cConstant TemperatureEnum
+ syn keyword cConstant TemperaturePicardEnum
++syn keyword cConstant TemperaturePDDEnum
+ syn keyword cConstant ThicknessAbsMisfitEnum
+ syn keyword cConstant SurfaceAbsMisfitEnum
+ syn keyword cConstant VelEnum
+@@ -1167,6 +1258,7 @@
+ syn keyword cConstant GiadWdtEnum
+ syn keyword cConstant GiaWEnum
+ syn keyword cConstant P0Enum
++syn keyword cConstant P0ArrayEnum
+ syn keyword cConstant P1Enum
+ syn keyword cConstant P1DGEnum
+ syn keyword cConstant P1bubbleEnum
+@@ -1330,6 +1422,7 @@
+ syn keyword cConstant MinVzEnum
+ syn keyword cConstant MaxVzEnum
+ syn keyword cConstant MaxAbsVzEnum
++syn keyword cConstant GroundedAreaEnum
+ syn keyword cConstant IceMassEnum
+ syn keyword cConstant IceVolumeEnum
+ syn keyword cConstant IceVolumeAboveFloatationEnum
+@@ -1375,6 +1468,7 @@
+ syn keyword cConstant OutputFileNameEnum
+ syn keyword cConstant InputFileNameEnum
+ syn keyword cConstant LockFileNameEnum
++syn keyword cConstant RestartFileNameEnum
+ syn keyword cConstant ToolkitsOptionsAnalysesEnum
+ syn keyword cConstant ToolkitsOptionsStringsEnum
+ syn keyword cConstant QmuErrNameEnum
Index: /issm/oecreview/Archive/19101-20495/ISSM-19748-19749.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19748-19749.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19748-19749.diff	(revision 20498)
@@ -0,0 +1,1028 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19749)
+@@ -29,7 +29,7 @@
+ 	/*Now, do we really want Sommers?*/
+ 	if(hydrology_model!=HydrologysommersEnum) return;
+ 
+-	//create penalties for nodes: no node can have water above the max
++	/*Create discrete loads for Moulins*/
+ 	CreateSingleNodeToElementConnectivity(iomodel);
+ 	for(int i=0;i<iomodel->numberofvertices;i++){
+ 		if (iomodel->domaintype!=Domain3DEnum){
+@@ -46,6 +46,21 @@
+ 	}
+ 	iomodel->DeleteData(1,MeshVertexonbaseEnum);
+ 
++	/*Deal with Neumann BC*/
++	int M,N;
++	int *segments = NULL;
++	iomodel->FetchData(&segments,&M,&N,MeshSegmentsEnum);
++
++	/*Check that the size seem right*/
++	_assert_(N==3); _assert_(M>=3);
++	for(int i=0;i<M;i++){
++		if(iomodel->my_elements[segments[i*3+2]-1]){
++			loads->AddObject(new Neumannflux(iomodel->loadcounter+i+1,i,iomodel,segments,HydrologySommersAnalysisEnum));
++		}
++	}
++
++	xDelete<int>(segments);
++
+ }/*}}}*/
+ void HydrologySommersAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
+ 
+@@ -99,6 +114,7 @@
+ 	iomodel->FetchDataToInput(elements,HydrologyBumpSpacingEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyBumpHeightEnum);
+ 	iomodel->FetchDataToInput(elements,HydrologyReynoldsEnum);
++	iomodel->FetchDataToInput(elements,HydrologyNeumannfluxEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 
+@@ -259,7 +275,7 @@
+ 		/*Get water and ice pressures*/
+ 		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
+ 		IssmDouble pressure_water = rho_water*g*(head-bed);
+-		_assert_(pressure_water<=pressure_ice);
++		if(pressure_water>pressure_ice) pressure_water = pressure_ice;
+ 
+ 		meltrate = 1/latentheat*(G+frictionheat+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
+ 		_assert_(meltrate>0.);
+@@ -456,7 +472,7 @@
+ 		/*Get water and ice pressures*/
+ 		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
+ 		IssmDouble pressure_water = rho_water*g*(head-bed);
+-		_assert_(pressure_water<=pressure_ice);
++		if(pressure_water>pressure_ice) pressure_water = pressure_ice;
+ 
+ 		meltrate = 1/latentheat*(G+frictionheat+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
+ 		_assert_(meltrate>0.);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19748)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19749)
+@@ -56,7 +56,6 @@
+ 	BedEnum,
+ 	BaseEnum,
+ 	ConstantsGEnum,
+-	ConstantsOmegaEnum,
+ 	ConstantsReferencetemperatureEnum,
+ 	ConstantsYtsEnum,
+ 	DependentObjectEnum,
+@@ -163,6 +162,7 @@
+ 	HydrologyEnglacialInputEnum,
+ 	HydrologyMoulinInputEnum,
+ 	HydrologyReynoldsEnum,
++	HydrologyNeumannfluxEnum,
+ 	HydrologySpcheadEnum,
+ 	HydrologyConductivityEnum,
+ 	IndependentObjectEnum,
+@@ -276,6 +276,7 @@
+ 	MeshYEnum,
+ 	MeshZEnum,
+ 	MeshElementtypeEnum,
++	MeshSegmentsEnum,
+ 	DomainTypeEnum,
+ 	DomainDimensionEnum,
+ 	Domain2DhorizontalEnum,
+@@ -578,6 +579,7 @@
+ 	NodeEnum,
+ 	NumericalfluxEnum,
+ 	NumericalfluxTypeEnum,
++	NeumannfluxEnum,
+ 	ParamEnum,
+ 	MoulinEnum,
+ 	PengridEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19749)
+@@ -62,7 +62,6 @@
+ 		case BedEnum : return "Bed";
+ 		case BaseEnum : return "Base";
+ 		case ConstantsGEnum : return "ConstantsG";
+-		case ConstantsOmegaEnum : return "ConstantsOmega";
+ 		case ConstantsReferencetemperatureEnum : return "ConstantsReferencetemperature";
+ 		case ConstantsYtsEnum : return "ConstantsYts";
+ 		case DependentObjectEnum : return "DependentObject";
+@@ -169,6 +168,7 @@
+ 		case HydrologyEnglacialInputEnum : return "HydrologyEnglacialInput";
+ 		case HydrologyMoulinInputEnum : return "HydrologyMoulinInput";
+ 		case HydrologyReynoldsEnum : return "HydrologyReynolds";
++		case HydrologyNeumannfluxEnum : return "HydrologyNeumannflux";
+ 		case HydrologySpcheadEnum : return "HydrologySpchead";
+ 		case HydrologyConductivityEnum : return "HydrologyConductivity";
+ 		case IndependentObjectEnum : return "IndependentObject";
+@@ -282,6 +282,7 @@
+ 		case MeshYEnum : return "MeshY";
+ 		case MeshZEnum : return "MeshZ";
+ 		case MeshElementtypeEnum : return "MeshElementtype";
++		case MeshSegmentsEnum : return "MeshSegments";
+ 		case DomainTypeEnum : return "DomainType";
+ 		case DomainDimensionEnum : return "DomainDimension";
+ 		case Domain2DhorizontalEnum : return "Domain2Dhorizontal";
+@@ -570,6 +571,7 @@
+ 		case NodeEnum : return "Node";
+ 		case NumericalfluxEnum : return "Numericalflux";
+ 		case NumericalfluxTypeEnum : return "NumericalfluxType";
++		case NeumannfluxEnum : return "Neumannflux";
+ 		case ParamEnum : return "Param";
+ 		case MoulinEnum : return "Moulin";
+ 		case PengridEnum : return "Pengrid";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19749)
+@@ -62,7 +62,6 @@
+ 	      else if (strcmp(name,"Bed")==0) return BedEnum;
+ 	      else if (strcmp(name,"Base")==0) return BaseEnum;
+ 	      else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
+-	      else if (strcmp(name,"ConstantsOmega")==0) return ConstantsOmegaEnum;
+ 	      else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
+ 	      else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
+ 	      else if (strcmp(name,"DependentObject")==0) return DependentObjectEnum;
+@@ -136,11 +135,11 @@
+ 	      else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;
+ 	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
+ 	      else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
++	      else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
+          else stage=2;
+    }
+    if(stage==2){
+-	      if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
+-	      else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
++	      if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
+ 	      else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
+ 	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+@@ -172,6 +171,7 @@
+ 	      else if (strcmp(name,"HydrologyEnglacialInput")==0) return HydrologyEnglacialInputEnum;
+ 	      else if (strcmp(name,"HydrologyMoulinInput")==0) return HydrologyMoulinInputEnum;
+ 	      else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
++	      else if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum;
+ 	      else if (strcmp(name,"HydrologySpchead")==0) return HydrologySpcheadEnum;
+ 	      else if (strcmp(name,"HydrologyConductivity")==0) return HydrologyConductivityEnum;
+ 	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
+@@ -288,6 +288,7 @@
+ 	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
+ 	      else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
+ 	      else if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum;
++	      else if (strcmp(name,"MeshSegments")==0) return MeshSegmentsEnum;
+ 	      else if (strcmp(name,"DomainType")==0) return DomainTypeEnum;
+ 	      else if (strcmp(name,"DomainDimension")==0) return DomainDimensionEnum;
+ 	      else if (strcmp(name,"Domain2Dhorizontal")==0) return Domain2DhorizontalEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
+ 	      else if (strcmp(name,"SmbV")==0) return SmbVEnum;
+ 	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
+-	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbP")==0) return SmbPEnum;
++	      if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
++	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
+ 	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+ 	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+ 	      else if (strcmp(name,"SmbPAir")==0) return SmbPAirEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
+ 	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
+ 	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
+-	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
++	      if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
++	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+ 	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
+ 	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
+ 	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
+@@ -582,6 +583,7 @@
+ 	      else if (strcmp(name,"Node")==0) return NodeEnum;
+ 	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
+ 	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
++	      else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
+ 	      else if (strcmp(name,"Param")==0) return ParamEnum;
+ 	      else if (strcmp(name,"Moulin")==0) return MoulinEnum;
+ 	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
+ 	      else if (strcmp(name,"Water")==0) return WaterEnum;
+ 	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
+-	      else if (strcmp(name,"Free")==0) return FreeEnum;
+-	      else if (strcmp(name,"Open")==0) return OpenEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
++	      if (strcmp(name,"Free")==0) return FreeEnum;
++	      else if (strcmp(name,"Open")==0) return OpenEnum;
++	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
+ 	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
+ 	      else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
+ 	      else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
+ 	      else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
+ 	      else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
+-	      else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
+-	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
++	      if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
++	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
++	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
+ 	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;
+ 	      else if (strcmp(name,"MisfitDefinitionenum")==0) return MisfitDefinitionenumEnum;
+ 	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
+-	      else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
+-	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
++	      if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
++	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
++	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+ 	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
+ 	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
+ 	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp	(revision 19749)
+@@ -58,9 +58,12 @@
+ 		/* Update counters, because we have created more nodes, loads and
+ 		 * constraints, and ids for objects created in next call to CreateDataSets
+ 		 * will need to start at the end of the updated counters: */
+-		iomodel->nodecounter       = nodes->MaximumId();
++		if(nodes->Size()) iomodel->nodecounter = nodes->MaximumId();
+ 		iomodel->loadcounter       = loads->NumberOfLoads();
+ 		iomodel->constraintcounter = constraints->NumberOfConstraints();
++
++		/*Make sure nodecounter is at least 0 (if no node exists, maxid will be -1*/
++		_assert_(iomodel->nodecounter>=0);
+ 	}
+ 
+ 	/*Solution specific updates*/
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19748)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19749)
+@@ -70,6 +70,7 @@
+ 					./classes/Loads/Pengrid.cpp\
+ 					./classes/Loads/Moulin.cpp\
+ 					./classes/Loads/Numericalflux.cpp\
++					./classes/Loads/Neumannflux.cpp\
+ 					./classes/matrix/ElementMatrix.cpp\
+ 					./classes/matrix/ElementVector.cpp\
+ 					./classes/Params/Parameters.cpp\
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 19749)
+@@ -78,7 +78,7 @@
+ 		femmodel->parameters->SetParam(time,TimeEnum);
+ 		femmodel->parameters->SetParam(step,StepEnum);
+ 
+-		if(VerboseSolution()) _printf0_("iteration " << step << "/" << floor((finaltime-time)/dt)+step << "  time [yr]: " << setprecision(8) << time/yts << " (time step: " << dt/yts << ")\n");
++		if(VerboseSolution()) _printf0_("iteration " << step << "/" << floor((finaltime-time)/dt)+step << "  time [yr]: " << setprecision(4) << time/yts << " (time step: " << dt/yts << ")\n");
+ 		if(step%output_frequency==0 || (time >= finaltime - (yts*DBL_EPSILON)) || step==1)
+ 		 save_results=true;
+ 		else
+Index: ../trunk-jpl/src/c/cores/hydrology_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19748)
++++ ../trunk-jpl/src/c/cores/hydrology_core.cpp	(revision 19749)
+@@ -78,7 +78,6 @@
+ 	}
+ 
+ 	else if (hydrology_model==HydrologysommersEnum){
+-		if(VerboseSolution()) _printf0_("   computing water head\n");
+ 		femmodel->SetCurrentConfiguration(HydrologySommersAnalysisEnum);
+ 		solutionsequence_nonlinear(femmodel,modify_loads);
+ 		if(VerboseSolution()) _printf0_("   updating gap height\n");
+Index: ../trunk-jpl/src/c/classes/classes.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/classes.h	(revision 19748)
++++ ../trunk-jpl/src/c/classes/classes.h	(revision 19749)
+@@ -33,6 +33,7 @@
+ #include "./Loads/Load.h"
+ #include "./Loads/Friction.h"
+ #include "./Loads/Numericalflux.h"
++#include "./Loads/Neumannflux.h"
+ #include "./Loads/Riftfront.h"
+ #include "./Loads/Penpair.h"
+ #include "./Loads/Pengrid.h"
+Index: ../trunk-jpl/src/c/classes/Loads/Neumannflux.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Neumannflux.cpp	(revision 0)
++++ ../trunk-jpl/src/c/classes/Loads/Neumannflux.cpp	(revision 19749)
+@@ -0,0 +1,391 @@
++/*!\file Neumannflux.c
++ * \brief: implementation of the Neumannflux object
++ */
++
++/*Headers:*/
++/*{{{*/
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "shared/shared.h"
++#include "../classes.h"
++/*}}}*/	
++
++/*Load macros*/
++#define NUMVERTICES 2
++#define NUMNODES_BOUNDARY 2
++
++/*Neumannflux constructors and destructor*/
++Neumannflux::Neumannflux(){/*{{{*/
++	this->parameters = NULL;
++	this->helement   = NULL;
++	this->element    = NULL;
++	this->hnodes     = NULL;
++	this->hvertices  = NULL;
++	this->nodes      = NULL;
++}
++/*}}}*/
++Neumannflux::Neumannflux(int neumannflux_id,int i,IoModel* iomodel,int* segments,int in_analysis_type){/*{{{*/
++
++
++	/*Some sanity checks*/
++	_assert_(segments);
++
++	/*neumannflux constructor data: */
++	int neumannflux_elem_id;
++	int neumannflux_vertex_ids[2];
++	int neumannflux_node_ids[2];
++
++	/*1: Get vertices ids*/
++	neumannflux_vertex_ids[0]=segments[3*i+0];
++	neumannflux_vertex_ids[1]=segments[3*i+1];
++
++	/*2: Get the ids of the nodes*/
++	neumannflux_node_ids[0]=iomodel->nodecounter+neumannflux_vertex_ids[0];
++	neumannflux_node_ids[1]=iomodel->nodecounter+neumannflux_vertex_ids[1];
++
++	/*Get element id*/
++	neumannflux_elem_id = segments[3*i+2];
++
++	/*Ok, we have everything to build the object: */
++	this->id=neumannflux_id;
++	this->analysis_type=in_analysis_type;
++
++	/*Hooks: */
++	this->hnodes    =new Hook(&neumannflux_node_ids[0],2);
++	this->hvertices =new Hook(&neumannflux_vertex_ids[0],2);
++	this->helement  =new Hook(&neumannflux_elem_id,1);
++
++	//this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
++	this->parameters=NULL;
++	this->element=NULL;
++	this->nodes=NULL;
++}
++/*}}}*/
++Neumannflux::~Neumannflux(){/*{{{*/
++	this->parameters=NULL;
++	delete helement;
++	delete hnodes;
++	delete hvertices;
++}
++/*}}}*/
++
++/*Object virtual functions definitions:*/
++Object* Neumannflux::copy() {/*{{{*/
++
++	Neumannflux* neumannflux=NULL;
++
++	neumannflux=new Neumannflux();
++
++	/*copy fields: */
++	neumannflux->id=this->id;
++	neumannflux->analysis_type=this->analysis_type;
++
++	/*point parameters: */
++	neumannflux->parameters=this->parameters;
++
++	/*now deal with hooks and objects: */
++	neumannflux->hnodes    = (Hook*)this->hnodes->copy();
++	neumannflux->hvertices = (Hook*)this->hvertices->copy();
++	neumannflux->helement  = (Hook*)this->helement->copy();
++
++	/*corresponding fields*/
++	neumannflux->nodes    = (Node**)neumannflux->hnodes->deliverp();
++	neumannflux->vertices = (Vertex**)neumannflux->hvertices->deliverp();
++	neumannflux->element  = (Element*)neumannflux->helement->delivers();
++
++	return neumannflux;
++}
++/*}}}*/
++void    Neumannflux::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
++
++	_assert_(this);
++
++	/*ok, marshall operations: */
++	MARSHALLING_ENUM(NeumannfluxEnum);
++	MARSHALLING(id);
++	MARSHALLING(analysis_type);
++
++	if(marshall_direction==MARSHALLING_BACKWARD){
++		this->hnodes      = new Hook();
++		this->hvertices   = new Hook();
++		this->helement    = new Hook();
++	}
++
++	this->hnodes->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->helement->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++	this->hvertices->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
++
++	/*corresponding fields*/
++	nodes    =(Node**)this->hnodes->deliverp();
++	vertices =(Vertex**)this->hvertices->deliverp();
++	element  =(Element*)this->helement->delivers();
++
++}
++/*}}}*/
++void    Neumannflux::DeepEcho(void){/*{{{*/
++
++	_printf_("Neumannflux:\n");
++	_printf_("   id: " << id << "\n");
++	_printf_("   analysis_type: " << EnumToStringx(analysis_type) << "\n");
++	hnodes->DeepEcho();
++	hvertices->DeepEcho();
++	helement->DeepEcho();
++	_printf_("   parameters\n");
++	if(parameters)
++	 parameters->DeepEcho();
++	else
++	 _printf_("      NULL\n");
++}		
++/*}}}*/
++void    Neumannflux::Echo(void){/*{{{*/
++	_printf_("Neumannflux:\n");
++	_printf_("   id: " << id << "\n");
++	_printf_("   analysis_type: " << EnumToStringx(analysis_type) << "\n");
++	hnodes->Echo();
++	hvertices->Echo();
++	helement->Echo();
++	_printf_("   parameters: " << parameters << "\n");
++}
++/*}}}*/
++int     Neumannflux::Id(void){/*{{{*/
++	return id;
++}
++/*}}}*/
++int     Neumannflux::ObjectEnum(void){/*{{{*/
++
++	return NeumannfluxEnum;
++
++}
++/*}}}*/
++
++/*Load virtual functions definitions:*/
++void  Neumannflux::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
++
++	/*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective 
++	 * datasets, using internal ids and offsets hidden in hooks: */
++	hnodes->configure((DataSet*)nodesin);
++	hvertices->configure((DataSet*)verticesin);
++	helement->configure((DataSet*)elementsin);
++
++	/*Initialize hooked fields*/
++	this->nodes    = (Node**)hnodes->deliverp();
++	this->vertices = (Vertex**)hvertices->deliverp();
++	this->element  = (Element*)helement->delivers();
++
++	/*point parameters to real dataset: */
++	this->parameters=parametersin;
++}
++/*}}}*/
++void  Neumannflux::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){/*{{{*/
++
++	/*recover some parameters*/
++	ElementMatrix* Ke=NULL;
++	int analysis_type;
++	this->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
++
++	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
++	switch(analysis_type){
++		case HydrologySommersAnalysisEnum:
++			/*Nothing!*/
++			break;
++		default:
++			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
++	}
++
++	/*Add to global matrix*/
++	if(Ke){
++		Ke->AddToGlobal(Kff,Kfs);
++		delete Ke;
++	}
++
++}
++/*}}}*/
++void  Neumannflux::CreatePVector(Vector<IssmDouble>* pf){/*{{{*/
++
++	/*recover some parameters*/
++	ElementVector* pe=NULL;
++	int analysis_type;
++	this->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
++
++	switch(analysis_type){
++		case HydrologySommersAnalysisEnum:
++			pe=CreatePVectorHydrologySommers();
++			break;
++		default:
++			_error_("analysis " << analysis_type << " (" << EnumToStringx(analysis_type) << ") not supported yet");
++	}
++
++	/*Add to global matrix*/
++	if(pe){
++		pe->AddToGlobal(pf);
++		delete pe;
++	}
++
++}
++/*}}}*/
++void  Neumannflux::GetNodesLidList(int* lidlist){/*{{{*/
++
++	_assert_(lidlist);
++	_assert_(nodes);
++
++	for(int i=0;i<NUMNODES_BOUNDARY;i++) lidlist[i]=nodes[i]->Lid();
++}
++/*}}}*/
++void  Neumannflux::GetNodesSidList(int* sidlist){/*{{{*/
++
++	_assert_(sidlist);
++	_assert_(nodes);
++
++	for(int i=0;i<NUMNODES_BOUNDARY;i++) sidlist[i]=nodes[i]->Sid();
++}
++/*}}}*/
++int   Neumannflux::GetNumberOfNodes(void){/*{{{*/
++
++	return NUMNODES_BOUNDARY;
++}
++/*}}}*/
++bool  Neumannflux::InAnalysis(int in_analysis_type){/*{{{*/
++	if (in_analysis_type==this->analysis_type) return true;
++	else return false;
++}
++/*}}}*/
++bool  Neumannflux::IsPenalty(void){/*{{{*/
++	return false;
++}
++/*}}}*/
++void  Neumannflux::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs,IssmDouble kmax){/*{{{*/
++
++	/*No stiffness loads applied, do nothing: */
++	return;
++
++}
++/*}}}*/
++void  Neumannflux::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){/*{{{*/
++
++	/*No penalty loads applied, do nothing: */
++	return;
++
++}
++/*}}}*/
++void  Neumannflux::ResetHooks(){/*{{{*/
++
++	this->nodes=NULL;
++	this->vertices=NULL;
++	this->element=NULL;
++	this->parameters=NULL;
++
++	/*Get Element type*/
++	this->hnodes->reset();
++	this->hvertices->reset();
++	this->helement->reset();
++
++}
++/*}}}*/
++void  Neumannflux::SetCurrentConfiguration(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
++
++}
++/*}}}*/
++void  Neumannflux::SetwiseNodeConnectivity(int* pd_nz,int* po_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum){/*{{{*/
++
++	/*Output */
++	int d_nz = 0;
++	int o_nz = 0;
++
++	/*Loop over all nodes*/
++	for(int i=0;i<this->GetNumberOfNodes();i++){
++
++		if(!flags[this->nodes[i]->Lid()]){
++
++			/*flag current node so that no other element processes it*/
++			flags[this->nodes[i]->Lid()]=true;
++
++			int counter=0;
++			while(flagsindices[counter]>=0) counter++;
++			flagsindices[counter]=this->nodes[i]->Lid();
++
++			/*if node is clone, we have an off-diagonal non-zero, else it is a diagonal non-zero*/
++			switch(set2_enum){
++				case FsetEnum:
++					if(nodes[i]->indexing.fsize){
++						if(this->nodes[i]->IsClone())
++						 o_nz += 1;
++						else
++						 d_nz += 1;
++					}
++					break;
++				case GsetEnum:
++					if(nodes[i]->indexing.gsize){
++						if(this->nodes[i]->IsClone())
++						 o_nz += 1;
++						else
++						 d_nz += 1;
++					}
++					break;
++				case SsetEnum:
++					if(nodes[i]->indexing.ssize){
++						if(this->nodes[i]->IsClone())
++						 o_nz += 1;
++						else
++						 d_nz += 1;
++					}
++					break;
++				default: _error_("not supported");
++			}
++		}
++	}
++
++	/*Assign output pointers: */
++	*pd_nz=d_nz;
++	*po_nz=o_nz;
++}
++/*}}}*/
++
++/*Neumannflux management*/
++ElementVector* Neumannflux::CreatePVectorHydrologySommers(void){/*{{{*/
++
++	/* constants*/
++	const int numdof=2;
++
++	/* Intermediaries*/
++	IssmDouble Jdet,flux;
++	IssmDouble xyz_list[NUMVERTICES][3];
++	IssmDouble basis[numdof];
++
++	/*Initialize Load Vector and return if necessary*/
++	Tria*  tria=(Tria*)element;
++	_assert_(tria->FiniteElement()==P1Enum); 
++	if(!tria->IsIceInElement() || tria->IsFloating()) return NULL;
++
++	/*Initialize Element vector and other vectors*/
++	ElementVector* pe=new ElementVector(nodes,NUMNODES_BOUNDARY,this->parameters);
++
++	/*Retrieve all inputs and parameters*/
++	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++	Input* flux_input = tria->inputs->GetInput(HydrologyNeumannfluxEnum);  _assert_(flux_input); 
++
++	/*Check wether it is an inflow or outflow BC (0 is the middle of the segment)*/
++	int index1=tria->GetNodeIndex(nodes[0]);
++	int index2=tria->GetNodeIndex(nodes[1]);
++
++	/* Start  looping on the number of gaussian points: */
++	GaussTria* gauss=new GaussTria(index1,index2,2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
++
++		gauss->GaussPoint(ig);
++
++		tria->GetSegmentJacobianDeterminant(&Jdet,&xyz_list[0][0],gauss);
++		tria->GetSegmentNodalFunctions(&basis[0],gauss,index1,index2,tria->FiniteElement());
++		flux_input->GetInputValue(&flux,gauss);
++
++		for(int i=0;i<numdof;i++) pe->values[i] += gauss->weight*Jdet*flux*basis[i];
++	}
++
++	/*Clean up and return*/
++	delete gauss;
++	return pe;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Loads/Neumannflux.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Neumannflux.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Loads/Neumannflux.h	(revision 19749)
+@@ -0,0 +1,80 @@
++/*!\file Neumannflux.h
++ * \brief: header file for icefront object
++ */
++
++#ifndef _NEUMANNFLUX_H_
++#define _NEUMANNFLUX_H_
++
++/*Headers:*/
++#include "./Load.h"
++class Hook;
++class Parameters;
++class IoModel;
++class Element;
++class Vertex;
++class ElementMatrix;
++class ElementVector;
++
++class Neumannflux: public Load {
++
++	public: 
++		int id;
++		int analysis_type;
++
++		/*Hooks*/
++		Hook *helement;
++		Hook *hnodes;
++		Hook *hvertices;
++
++		/*Corresponding fields*/
++		Element     *element;
++		Vertex     **vertices;
++		Node       **nodes;
++		Parameters  *parameters;
++
++		/*Neumannflux constructors,destructors {{{*/
++		Neumannflux();
++		Neumannflux(int numericalflux_id,int i,IoModel* iomodel,int* segments,int analysis_type);
++		~Neumannflux();
++		/*}}}*/
++		/*Object virtual functions definitions:{{{ */
++		Object *copy();
++		void    DeepEcho();
++		void    Echo();
++		int     Id();
++		int     ObjectEnum();
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
++		/*}}}*/
++		/*Update virtual functions resolution: {{{*/
++		void InputUpdateFromConstant(IssmDouble constant, int name){/*Do nothing*/};
++		void InputUpdateFromConstant(int constant, int name){/*Do nothing*/};
++		void InputUpdateFromConstant(bool constant, int name){/*Do nothing*/};
++		void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");};
++		void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*Do nothing*/}
++		void InputUpdateFromVector(IssmDouble* vector, int name, int type){/*Do nothing*/}
++		void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){/*Do nothing*/}
++		/*}}}*/
++		/*Load virtual functions definitions: {{{*/
++		void Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
++		void CreateJacobianMatrix(Matrix<IssmDouble>* Jff){_error_("Not implemented yet");};
++		void CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
++		void CreatePVector(Vector<IssmDouble>* pf);
++		void GetNodesLidList(int* lidlist);
++		void GetNodesSidList(int* sidlist);
++		int  GetNumberOfNodes(void);
++		bool InAnalysis(int analysis_type);
++		bool IsPenalty(void);
++		void PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){_error_("Not implemented yet");};
++		void PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* kfs, IssmDouble kmax);
++		void PenaltyCreatePVector(Vector<IssmDouble>* pf, IssmDouble kmax);
++		void ResetHooks();
++		void SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum);
++		void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
++		/*}}}*/
++		/*Neumannflux management:{{{*/
++		ElementVector* CreatePVectorHydrologySommers(void);
++		/*}}}*/
++
++};
++
++#endif  /* _NEUMANNFLUX_H_ */
+Index: ../trunk-jpl/src/m/classes/hydrologysommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19748)
++++ ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19749)
+@@ -13,9 +13,10 @@
+ 		moulin_input    = NaN;
+ 		reynolds        = NaN;
+ 		spchead         = NaN;
++		neumannflux     = NaN;
+ 	end
+ 	methods
+-		function self = extrude(self,md) % {{{
++		function self = extrud,e(self,md) % {{{
+ 		end % }}}
+ 		function self = hydrologysommers(varargin) % {{{
+ 			switch nargin
+@@ -43,6 +44,7 @@
+ 			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'NaN',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.moulin_input','>=',0,'NaN',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1);
+ 			md = checkfield(md,'fieldname','hydrology.spchead','size',[md.mesh.numberofvertices 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+@@ -54,6 +56,7 @@
+ 			fielddisplay(self,'englacial_input','liquid water input from englacial to subglacial system (m/yr)');
+ 			fielddisplay(self,'moulin_input','liquid water input from moulins (at the vertices) to subglacial system (m^3/s)');
+ 			fielddisplay(self,'reynolds','Reynolds'' number');
++			fielddisplay(self,'neumannflux','water flux applied along the model boundary (m^2/s)');
+ 			fielddisplay(self,'spchead','water head constraints (NaN means no constraint) (m)');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -68,6 +71,7 @@
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','englacial_input','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','reynolds','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','hydrology','fieldname','neumannflux','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
+ 			WriteData(fid,'object',self,'class','hydrology','fieldname','spchead','format','DoubleMat','mattype',1);
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/constants.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.m	(revision 19748)
++++ ../trunk-jpl/src/m/classes/constants.m	(revision 19749)
+@@ -60,7 +60,6 @@
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'fieldname','g','format','Double');
+-			WriteData(fid,'object',self,'fieldname','omega','format','Double');
+ 			WriteData(fid,'object',self,'fieldname','yts','format','Double');
+ 			WriteData(fid,'object',self,'fieldname','referencetemperature','format','Double');
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/mesh2d.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19748)
++++ ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19749)
+@@ -90,6 +90,7 @@
+ 			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
+ 			md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
+ 			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
++			md = checkfield(md,'fieldname','mesh.segments','NaN',1,'>',0,'size',[NaN 3]);
+ 
+ 			switch(solution),
+ 				case ThermalSolutionEnum(),
+@@ -125,48 +126,6 @@
+ 			fielddisplay(self,'long','vertices longitude [degrees]');
+ 			fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+ 		end % }}}
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- 2D tria Mesh (horizontal) -->\n');
+-
+-			%elements and vertices
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Elements and vertices">','<section name="mesh" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofelements" type="',class(self.numberofelements),'" default="',convert2str(self.numberofelements),'">','     <section name="mesh" />','     <help> number of elements </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofvertices" type="',class(self.numberofvertices),'" default="',convert2str(self.numberofvertices),'">','     <section name="mesh" />','     <help> number of vertices </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="elements" type="',class(self.elements),'" default="',convert2str(self.elements),'">','     <section name="mesh" />','     <help> vertex indices of the mesh elements </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(self.x),'" default="',convert2str(self.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(self.edges),'" default="',convert2str(self.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(self.numberofedges),'" default="',convert2str(self.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% properties
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(self.vertexonboundary),'" default="',convert2str(self.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(self.segments),'" default="',convert2str(self.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(self.segmentmarkers),'" default="',convert2str(self.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(self.vertexconnectivity),'" default="',convert2str(self.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(self.elementconnectivity),'" default="',convert2str(self.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(self.average_vertex_connectivity),'" default="',convert2str(self.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			%extracted model
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Extracted Model">','<section name="mesh" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(self.extractedvertices),'" default="',convert2str(self.extractedvertices),'">','     <section name="mesh" />','     <help> vertices extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(self.extractedelements),'" default="',convert2str(self.extractedelements),'">','     <section name="mesh" />','     <help> elements extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			%projection
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Projection">','<section name="mesh" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(self.lat),'" default="',convert2str(self.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(self.long),'" default="',convert2str(self.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
+-			% choice (epsg) 'n' or 's'
+-			fprintf(fid,'%s\n%s\n%s\n','  <parameter key ="epsg" type="alternative" optional="false">','     <section name="mesh" />','     <help> Indicate epsg ''n'' or ''s'' </help>');
+-			fprintf(fid,'%s\n','       <option value="n" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="s" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype(self)]),'format','Integer');
+ 			WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension(self),'format','Integer');
+@@ -179,6 +138,7 @@
+ 			WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer');
+ 			WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');
+ 			WriteData(fid,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
+ 		end % }}}
+ 		function t = domaintype(self) % {{{
+ 			t = '2Dhorizontal';
+Index: ../trunk-jpl/src/m/enum/ConstantsOmegaEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/ConstantsOmegaEnum.m	(revision 19748)
++++ ../trunk-jpl/src/m/enum/ConstantsOmegaEnum.m	(revision 19749)
+@@ -1,11 +0,0 @@
+-function macro=ConstantsOmegaEnum()
+-%CONSTANTSOMEGAENUM - Enum of ConstantsOmega
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=ConstantsOmegaEnum()
+-
+-macro=StringToEnum('ConstantsOmega');
+Index: ../trunk-jpl/src/m/enum/MeshSegmentsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MeshSegmentsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MeshSegmentsEnum.m	(revision 19749)
+@@ -0,0 +1,11 @@
++function macro=MeshSegmentsEnum()
++%MESHSEGMENTSENUM - Enum of MeshSegments
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MeshSegmentsEnum()
++
++macro=StringToEnum('MeshSegments');
+Index: ../trunk-jpl/src/m/enum/HydrologyNeumannfluxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/HydrologyNeumannfluxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/HydrologyNeumannfluxEnum.m	(revision 19749)
+@@ -0,0 +1,11 @@
++function macro=HydrologyNeumannfluxEnum()
++%HYDROLOGYNEUMANNFLUXENUM - Enum of HydrologyNeumannflux
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=HydrologyNeumannfluxEnum()
++
++macro=StringToEnum('HydrologyNeumannflux');
+Index: ../trunk-jpl/src/m/enum/NeumannfluxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NeumannfluxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NeumannfluxEnum.m	(revision 19749)
+@@ -0,0 +1,11 @@
++function macro=NeumannfluxEnum()
++%NEUMANNFLUXENUM - Enum of Neumannflux
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NeumannfluxEnum()
++
++macro=StringToEnum('Neumannflux');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19748)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19749)
+@@ -54,7 +54,6 @@
+ def BedEnum(): return StringToEnum("Bed")[0]
+ def BaseEnum(): return StringToEnum("Base")[0]
+ def ConstantsGEnum(): return StringToEnum("ConstantsG")[0]
+-def ConstantsOmegaEnum(): return StringToEnum("ConstantsOmega")[0]
+ def ConstantsReferencetemperatureEnum(): return StringToEnum("ConstantsReferencetemperature")[0]
+ def ConstantsYtsEnum(): return StringToEnum("ConstantsYts")[0]
+ def DependentObjectEnum(): return StringToEnum("DependentObject")[0]
+@@ -161,6 +160,7 @@
+ def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
+ def HydrologyMoulinInputEnum(): return StringToEnum("HydrologyMoulinInput")[0]
+ def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
++def HydrologyNeumannfluxEnum(): return StringToEnum("HydrologyNeumannflux")[0]
+ def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
+ def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0]
+ def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
+@@ -274,6 +274,7 @@
+ def MeshYEnum(): return StringToEnum("MeshY")[0]
+ def MeshZEnum(): return StringToEnum("MeshZ")[0]
+ def MeshElementtypeEnum(): return StringToEnum("MeshElementtype")[0]
++def MeshSegmentsEnum(): return StringToEnum("MeshSegments")[0]
+ def DomainTypeEnum(): return StringToEnum("DomainType")[0]
+ def DomainDimensionEnum(): return StringToEnum("DomainDimension")[0]
+ def Domain2DhorizontalEnum(): return StringToEnum("Domain2Dhorizontal")[0]
+@@ -562,6 +563,7 @@
+ def NodeEnum(): return StringToEnum("Node")[0]
+ def NumericalfluxEnum(): return StringToEnum("Numericalflux")[0]
+ def NumericalfluxTypeEnum(): return StringToEnum("NumericalfluxType")[0]
++def NeumannfluxEnum(): return StringToEnum("Neumannflux")[0]
+ def ParamEnum(): return StringToEnum("Param")[0]
+ def MoulinEnum(): return StringToEnum("Moulin")[0]
+ def PengridEnum(): return StringToEnum("Pengrid")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19749-19750.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19749-19750.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19749-19750.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/test/NightlyRun/test350.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test350.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test350.m	(revision 19750)
+@@ -0,0 +1,77 @@
++%Test Name: SquareSheetHydrologySommers
++md=triangle(model(),'../Exp/Square.exp',50000.);
++md.mesh.x = md.mesh.x/1000;
++md.mesh.y = md.mesh.y/1000;
++md=setmask(md,'','');
++md=parameterize(md,'../Par/SquareSheetConstrained.par');
++md.transient=deactivateall(md.transient);
++md.transient.ishydrology=1;
++md=setflowequation(md,'SSA','all');
++md.cluster=generic('name',oshostname(),'np',2);
++
++%Use hydroogy coupled friciton law
++md.friction=frictionsommers(md.friction);
++
++%Change hydrology class to Sommers' model
++md.hydrology=hydrologysommers();
++
++%Change geometry
++md.geometry.base = -.02*md.mesh.x + 20;
++md.geometry.thickness = 300*ones(md.mesh.numberofvertices,1);
++md.geometry.bed = md.geometry.base;
++md.geometry.surface = md.geometry.bed+md.geometry.thickness;
++
++%define the initial water head as being such that the water pressure is 50% of the ice overburden pressure
++md.hydrology.head = 0.5*md.materials.rho_ice/md.materials.rho_freshwater*md.geometry.thickness + md.geometry.base;
++md.hydrology.gap_height = 0.01*ones(md.mesh.numberofelements,1);
++md.hydrology.bump_spacing = 2*ones(md.mesh.numberofelements,1);
++md.hydrology.bump_height = 0.05*ones(md.mesh.numberofelements,1);
++md.hydrology.englacial_input = 0.5*ones(md.mesh.numberofvertices,1);
++md.hydrology.reynolds= 1000*ones(md.mesh.numberofelements,1);
++md.hydrology.spchead = NaN(md.mesh.numberofvertices,1);
++pos=find(md.mesh.vertexonboundary & md.mesh.x==1000);
++md.hydrology.spchead(pos)=md.geometry.base(pos);
++
++%Define velocity
++md.initialization.vx = 10^-6*md.constants.yts*ones(md.mesh.numberofvertices,1);
++md.initialization.vy = zeros(md.mesh.numberofvertices,1);
++
++md.timestepping.time_step=3*3600/md.constants.yts;
++md.timestepping.final_time=.5/365;
++md.materials.rheology_B(:)= (5e-25)^(-1/3);
++
++%Add one moulin and Neumann BC, varying in time
++[a pos] = min(sqrt((md.mesh.x-500).^2+(md.mesh.y-500).^2));
++time=0:md.timestepping.time_step:md.timestepping.final_time;
++md.hydrology.moulin_input = zeros(md.mesh.numberofvertices+1,numel(time));
++md.hydrology.moulin_input(end,:)=time;
++md.hydrology.moulin_input(pos,:)=5*(1-sin(2*pi/(1/365)*time));
++md.hydrology.neumannflux=zeros(md.mesh.numberofelements+1,numel(time));
++md.hydrology.neumannflux(end,:)=time;
++segx = md.mesh.x(md.mesh.segments(:,1)); segy=md.mesh.y(md.mesh.segments(:,1));
++pos = md.mesh.segments(find(segx<1 & segy>400 & segy<600),3);
++md.hydrology.neumannflux(pos,:)=repmat(0.05*(1-sin(2*pi/(1/365)*time)),numel(pos),1);
++
++md=solve(md,TransientSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names ={...
++	'HydrologyHead1','HydrologyGapHeight1',...
++	'HydrologyHead2','HydrologyGapHeight2',...
++	'HydrologyHead3','HydrologyGapHeight3',...
++	'HydrologyHead4','HydrologyGapHeight4'};
++field_tolerances={...
++	1e-13, 1e-13, 1e-13,...
++	1e-13, 1e-13, 1e-13,...
++	1e-13, 1e-13, 1e-13,...
++	1e-13, 1e-13, 1e-13};
++field_values={...
++	md.results.TransientSolution(1).HydrologyHead, ...
++	md.results.TransientSolution(1).HydrologyGapHeight,...
++	md.results.TransientSolution(2).HydrologyHead, ...
++	md.results.TransientSolution(2).HydrologyGapHeight,...
++	md.results.TransientSolution(3).HydrologyHead, ...
++	md.results.TransientSolution(3).HydrologyGapHeight,...
++	md.results.TransientSolution(4).HydrologyHead, ...
++	md.results.TransientSolution(4).HydrologyGapHeight};
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-19750-19751.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19750-19751.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19750-19751.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19750)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19751)
+@@ -12,11 +12,11 @@
+ md.geometry.surface=md.geometry.base+md.geometry.thickness;
+ 
+ %Initial velocity 
+-x     = transpose(ncread('../Data/SquareShelfConstrained.nc','x'));
+-y     = transpose(ncread('../Data/SquareShelfConstrained.nc','y'));
+-vx    = transpose(ncread('../Data/SquareShelfConstrained.nc','vx'));
+-vy    = transpose(ncread('../Data/SquareShelfConstrained.nc','vy'));
+-index = transpose(ncread('../Data/SquareShelfConstrained.nc','index'));
++x     = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'x'));
++y     = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'y'));
++vx    = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'vx'));
++vy    = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'vy'));
++index = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'index'));
+ md.initialization.vx=InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y);
+ md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y);
+ clear vx vy x y index;
+Index: ../trunk-jpl/test/Archives/Archive350.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive350.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19751-19752.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19751-19752.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19751-19752.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19751)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19752)
+@@ -157,7 +157,7 @@
+ 
+ 	/* output: */
+ 	if(isstring)
+-	 WriteData(VALUE,svalue);
++	 WriteData(SVALUE,svalue);
+ 	else
+ 	 WriteData(VALUE,value);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19752-19753.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19752-19753.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19752-19753.diff	(revision 20498)
@@ -0,0 +1,3658 @@
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.js
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 19752)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 19753)
+@@ -17,38 +17,41 @@
+ 		md.geometry.thickness[i]=hmax+(hmin-hmax)*(md.mesh.y[i]-ymin)/(ymax-ymin)+0.1*(hmin-hmax)*(md.mesh.x[i]-xmin)/(xmax-xmin);
+ 		md.geometry.base[i]=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness[i];
+ 		md.geometry.surface[i]=md.geometry.base[i]+md.geometry.thickness[i];
++		md.geometry.bed[i]=md.geometry.base[i]-10;
+ 	}
+ 	
+-	//Initial velocity 
+-	x     = transpose(ncread('../Data/SquareShelfConstrained.nc','x'));
++	//Initial velocity: no ncreader for now, so we just load arrays.
++	/*x     = transpose(ncread('../Data/SquareShelfConstrained.nc','x'));
+ 	y     = transpose(ncread('../Data/SquareShelfConstrained.nc','y'));
+ 	vx    = transpose(ncread('../Data/SquareShelfConstrained.nc','vx'));
+ 	vy    = transpose(ncread('../Data/SquareShelfConstrained.nc','vy'));
+-	index = transpose(ncread('../Data/SquareShelfConstrained.nc','index'));
++	index = transpose(ncread('../Data/SquareShelfConstrained.nc','index'));*/
++	
+ 	md.initialization.vx=InterpFromMeshToMesh2d(index,x,y,vx,md.mesh.x,md.mesh.y);
+ 	md.initialization.vy=InterpFromMeshToMesh2d(index,x,y,vy,md.mesh.x,md.mesh.y);
+-	clear vx vy x y index;
+-	md.initialization.vz=zeros(md.mesh.numberofvertices,1);
+-	md.initialization.pressure=zeros(md.mesh.numberofvertices,1);
++	md.initialization.vel=ArrayMag(md.initialization.vx,md.initialization.vy);
++	md.initialization.vz=NewArrayFill(md.mesh.numberofvertices,0);
++	md.initialization.pressure=NewArrayFill(md.mesh.numberofvertices,0);
+ 
+ 	//Materials
+-	md.initialization.temperature=(273-20)*ones(md.mesh.numberofvertices,1);
++	md.initialization.temperature=NewArrayFill(md.mesh.numberofvertices,273-20);
+ 	md.materials.rheology_B=paterson(md.initialization.temperature);
+-	md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
++	md.materials.rheology_n=NewArrayFill(md.mesh.numberofelements,3);
+ 
+ 	//Surface mass balance and basal melting
+-	md.smb.mass_balance=10*ones(md.mesh.numberofvertices,1);
+-	md.basalforcings.floatingice_melting_rate=5*ones(md.mesh.numberofvertices,1);
+-	md.basalforcings.groundedice_melting_rate=5*ones(md.mesh.numberofvertices,1);
++	md.smb.mass_balance=NewArrayFill(md.mesh.numberofvertices,10);
++	md.basalforcings.floatingice_melting_rate=NewArrayFill(md.mesh.numberofvertices,5.0);
++	md.basalforcings.groundedice_melting_rate=NewArrayFill(md.mesh.numberofvertices,5.0);
+ 
+ 	//Friction
+-	md.friction.coefficient=20*ones(md.mesh.numberofvertices,1);
+-	md.friction.coefficient(find(md.mask.groundedice_levelset<0.))=0.;
+-	md.friction.p=ones(md.mesh.numberofelements,1);
+-	md.friction.q=ones(md.mesh.numberofelements,1);
++	md.friction.coefficient=NewArrayFill(md.mesh.numberofvertices,20);
++	for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.groundedice_levelset[i]<0)md.friction.coefficient[i]=0;
++	md.friction.p=NewArrayFill(md.mesh.numberofelements,1);
++	md.friction.q=NewArrayFill(md.mesh.numberofelements,1);
+ 
+ 	//Numerical parameters
+ 	md.stressbalance.viscosity_overshoot=0.0;
++	return;
+ 	md.masstransport.stabilization=1;
+ 	md.thermal.stabilization=1;
+ 	md.verbose=verbose(0);
+@@ -64,7 +67,7 @@
+ 	md=SetIceShelfBC(md);
+ 
+ 	//Change name so that no tests have the same name
+-	A=dbstack;
+-	if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
++	//A=dbstack;
++	//if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
+ 
+ }
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19752)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19753)
+@@ -4,18 +4,37 @@
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
+ <script type="text/javascript" src="../Exp/Square.js"></script>
++<script type="text/javascript" src="../Par/SquareShelfConstrained.js"></script>
++<script type="text/javascript" src="../Data/SquareShelfConstrained.data.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/model.js"></script>
+ <script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
+ <script type="text/javascript" src="../../src/m/array/arrayoperations.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/geometry.js"></script>
++<script type="text/javascript" src="../../src/m/classes/matice.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/constants.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/mask.js"></script>
++<script type="text/javascript" src="../../src/m/classes/initialization.js"></script>
++<script type="text/javascript" src="../../src/m/classes/SMBforcing.js"></script>
++<script type="text/javascript" src="../../src/m/classes/timestepping.js"></script>
++<script type="text/javascript" src="../../src/m/classes/basalforcings.js"></script>
++<script type="text/javascript" src="../../src/m/classes/groundingline.js"></script>
++<script type="text/javascript" src="../../src/m/classes/damage.js"></script>
++<script type="text/javascript" src="../../src/m/classes/flowequation.js"></script>
++<script type="text/javascript" src="../../src/m/classes/debug.js"></script>
++<script type="text/javascript" src="../../src/m/classes/verbose.js"></script>
++<script type="text/javascript" src="../../src/m/classes/settings.js"></script>
++<script type="text/javascript" src="../../src/m/classes/toolkits.js"></script>
++<script type="text/javascript" src="../../src/m/classes/stressbalance.js"></script>
++<script type="text/javascript" src="../../src/m/classes/rifts.js"></script>
++<script type="text/javascript" src="../../src/m/classes/friction.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
++<script type="text/javascript" src="../../src/m/classes/clusters/generic.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/rgbcolor.js"></script>
++<script type="text/javascript" src="../../src/m/materials/paterson.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/colorbars.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+@@ -25,9 +44,12 @@
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
++<script type="text/javascript" src="../../src/m/solvers/issmgslsolver.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
++<script type="text/javascript" src="../../src/wrappers/IssmConfig/IssmConfig.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
++<script type="text/javascript" src="../../src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
+@@ -36,13 +58,22 @@
+ </head>
+ <body> 
+ 	<canvas id="1" width="640" height="480"> </canvas>
++	<canvas id="2" width="640" height="480"> </canvas>
++	<canvas id="3" width="640" height="480"> </canvas>
++	<canvas id="4" width="640" height="480"> </canvas>
+ 
+ 	<script type="text/javascript" async><!--}}}-->
+ 
+ 	var md = new model();
+-	triangle(md,square,100000); 
+-	plotmodel(md,'data',md.mesh.x,'canvasid',1);
++	triangle(md,square,10000); 
++	parameterize(md);
++	
++	plotmodel(md,'data',md.friction.coefficient,'canvasid',1,
++	'data',md.materials.rheology_B,'canvasid',2,
++	'data',md.initialization.temperature,'canvasid',3,
++	'data',md.basalforcings.floatingice_melting_rate,'canvasid',4);
+ 
++
+ </script> <!--{{{-->
+ </body> 
+ </html><!--}}}-->
+Index: ../trunk-jpl/test/Data/SquareShelfConstrained.data.js
+===================================================================
+--- ../trunk-jpl/test/Data/SquareShelfConstrained.data.js	(revision 0)
++++ ../trunk-jpl/test/Data/SquareShelfConstrained.data.js	(revision 19753)
+@@ -0,0 +1,1974 @@
++var x =[ 0, //{{{
++    1000000.00,
++    1000000.00,
++             0,
++     500000.00,
++     500000.00,
++    1000000.00,
++     500000.00,
++             0,
++     750000.00,
++     250000.00,
++     250000.00,
++     750000.00,
++    1000000.00,
++     750000.00,
++     625000.00,
++     875000.00,
++     750000.00,
++     625000.00,
++     562500.00,
++     625000.00,
++     687500.00,
++     687500.00,
++     718750.00,
++     875000.00,
++     792968.75,
++     687500.00,
++     750651.04,
++     812500.00,
++     784376.26,
++     812500.00,
++     737044.20,
++     711415.45,
++     619808.98,
++     679903.16,
++     875000.00,
++     816565.05,
++     790340.66,
++     879033.53,
++     820390.62,
++     759468.98,
++    1000000.00,
++     702320.86,
++     894268.51,
++     743370.58,
++     756140.79,
++     870143.86,
++    1000000.00,
++     941365.26,
++     927759.20,
++     835259.33,
++    1000000.00,
++     683743.63,
++     843782.67,
++     943774.60,
++     728886.91,
++     703008.76,
++     617381.75,
++     725024.94,
++     815309.94,
++     864434.02,
++     923153.03,
++     839208.76,
++     790417.28,
++     811985.49,
++     904485.58,
++    1000000.00,
++     764145.24,
++    1000000.00,
++     803825.28,
++     805004.84,
++    1000000.00,
++     897809.81,
++     856709.28,
++     849378.44,
++     880439.03,
++     874923.01,
++     926298.65,
++     850818.89,
++     773165.13,
++     821586.23,
++     750000.00,
++     838262.90,
++     843656.20,
++    1000000.00,
++     923364.60,
++    1000000.00,
++     947000.54,
++     951408.71,
++    1000000.00,
++     941348.21,
++     955296.62,
++     908023.58,
++     562500.00,
++     250000.00,
++     631606.65,
++     528507.30,
++     576013.63,
++     577293.44,
++     535671.78,
++     502260.83,
++     455537.02,
++     492730.44,
++     375000.00,
++     558796.01,
++     437500.00,
++     406250.00,
++     523391.71,
++     471037.47,
++     357447.01,
++     414577.09,
++     371858.37,
++     406507.82,
++     333442.08,
++     431668.11,
++     282518.77,
++     329423.36,
++     292139.49,
++     532046.01,
++     612510.98,
++     455486.33,
++     312500.00,
++             0,
++     327477.57,
++     528654.71,
++     440987.54,
++     576170.41,
++     490525.44,
++     445996.32,
++     603292.83,
++     638938.30,
++     678235.71,
++     661669.03,
++     215117.76,
++     332210.28,
++     669283.27,
++     667292.83,
++     568893.78,
++     608536.87,
++     555812.71,
++     660330.04,
++     676819.27,
++     727629.11,
++     620541.50,
++     590910.90,
++     569641.27,
++     551966.23,
++     498954.02,
++     483275.96,
++     760325.72,
++     700090.45,
++     772962.54,
++     508900.23,
++     442063.96,
++     645432.38,
++     599915.31,
++     609769.65,
++     512359.02,
++     672668.03,
++     449356.47,
++     352874.69,
++     404046.43,
++     385658.72,
++     382051.86,
++     268990.07,
++     382316.37,
++     322143.60,
++     398597.44,
++     246074.32,
++     325043.39,
++     272789.22,
++     169268.75,
++     224121.33,
++             0,
++     190250.64,
++     220642.79,
++     262363.99,
++     727971.89,
++     731757.70,
++     782353.48,
++     714788.34,
++     793570.57,
++     648067.15,
++     875000.00,
++     785216.54,
++     886603.37,
++     847230.22,
++     835381.89,
++     902841.78,
++     812500.00,
++     873594.69,
++     937500.00,
++     934993.85,
++    1000000.00,
++     956423.95,
++     934982.86,
++     431714.85,
++     375712.88,
++     208581.66,
++     543451.44,
++     625000.00,
++     292441.32,
++     219943.28,
++     173276.46,
++     255248.48,
++             0,
++     133383.78,
++     322294.88,
++     102245.78,
++     588925.13,
++     536316.75,
++     608474.93,
++     720734.45,
++     682677.77,
++     687500.00,
++     326922.57,
++     278769.51,
++     340100.93,
++     182890.39,
++     302010.56,
++     226879.14,
++     175206.51,
++     233160.67,
++     166331.80,
++     299277.36,
++     250000.00,
++     396132.12,
++     348745.04,
++     343516.37,
++     562500.00,
++     531250.00,
++     375000.00,
++     437500.00,
++     480127.31,
++     486755.23,
++     437500.00,
++     418753.58,
++     348418.56,
++     215190.87,
++             0,
++     475106.46,
++     450403.05,
++     462691.02,
++     490774.65,
++     444026.71,
++     442305.62,
++     106797.52,
++     156735.92,
++     125000.00,
++      88484.21,
++     175049.24,
++    1000000.00,
++     949486.27,
++     910659.68,
++     264470.56,
++     187500.00,
++     156250.00,
++      70150.11,
++     210176.80,
++     121372.74,
++     230344.80,
++     446594.38,
++     635173.42,
++    1000000.00,
++     191736.12,
++     143967.18,
++     208897.91,
++     154003.12,
++             0,
++      70969.18,
++     214394.01,
++     280158.83,
++     192618.72,
++     125000.00,
++     249231.59,
++     140263.51,
++     291112.70,
++     313365.54,
++     364113.09,
++     295977.82,
++      76015.00,
++     187500.00,
++     218750.00,
++     156250.00,
++     102877.29,
++      62500.00,
++             0,
++      50433.46,
++     312500.00,
++     400218.61,
++     401492.48,
++     363132.76,
++      98732.17,
++             0,
++      39542.29,
++     330682.47,
++      43070.27,
++     106669.47,
++      57457.06,
++             0,
++             0,
++      50794.52,
++      97418.47,
++      62039.94,
++     143821.44,
++     119380.50,
++      44732.05,
++             0,
++             0,
++      66521.34,
++      69603.39,
++      43959.82,
++      43762.58,
++      93564.32,
++      44263.93,
++     117747.91,
++     139478.83,
++     124387.95,
++             0,
++      48631.61,
++      53659.39,
++      99563.52,
++     659034.30,
++     194316.29,
++     213251.06,
++     400950.40,
++     535853.28,
++     517149.04,
++             0,
++      41128.00,
++      50958.58,
++      72804.35,
++      62500.00,
++             0,
++     857793.90,
++     937500.00,
++     937500.00,
++     901657.70,
++     937500.00,
++    1000000.00]; //}}}
++var y=[ 0, //{{{
++             0,
++    1000000.00,
++    1000000.00,
++     500000.00,
++             0,
++     500000.00,
++    1000000.00,
++     500000.00,
++     750000.00,
++     250000.00,
++     750000.00,
++     500000.00,
++     750000.00,
++    1000000.00,
++     875000.00,
++     875000.00,
++     875000.00,
++    1000000.00,
++     937500.00,
++     937500.00,
++     906250.00,
++    1000000.00,
++     953125.00,
++    1000000.00,
++     937500.00,
++     828125.00,
++     920572.92,
++     878051.76,
++     812500.00,
++    1000000.00,
++     827170.23,
++     783194.86,
++     763264.44,
++     707543.97,
++     721951.29,
++     754091.69,
++     637221.80,
++     798475.65,
++     691856.09,
++     689783.04,
++     625000.00,
++     620870.45,
++     615640.57,
++     644980.88,
++     576238.43,
++     666169.59,
++     687500.00,
++     718750.00,
++     662653.98,
++     829478.44,
++     875000.00,
++     543703.29,
++     530812.60,
++     784862.85,
++     540067.13,
++     500834.56,
++     488117.17,
++     417114.77,
++     583137.43,
++     575959.28,
++     521802.97,
++     626976.87,
++     535111.03,
++     469465.03,
++     758765.61,
++     812500.00,
++     450532.37,
++     250000.00,
++     364474.06,
++     417194.98,
++     375000.00,
++     431402.06,
++     389664.51,
++     437988.85,
++     485024.68,
++     283320.55,
++     362242.64,
++     333923.92,
++     265892.28,
++     288956.91,
++             0,
++     191587.33,
++     242623.96,
++     125000.00,
++     213744.02,
++     437500.00,
++     466364.65,
++     411369.19,
++     312500.00,
++     281250.00,
++     325736.34,
++     317956.14,
++    1000000.00,
++    1000000.00,
++     818704.70,
++     835140.58,
++     801559.48,
++     853763.55,
++     889585.37,
++     939760.83,
++     872436.66,
++     734134.40,
++    1000000.00,
++     737678.54,
++    1000000.00,
++     930524.50,
++     780113.29,
++     812731.80,
++     815106.21,
++     829938.20,
++     877039.54,
++     743576.31,
++     939541.44,
++     784783.37,
++     865184.74,
++     854270.44,
++     800285.94,
++     618790.44,
++     695127.75,
++     922347.37,
++    1000000.00,
++     750000.00,
++     727873.35,
++     682006.93,
++     660032.60,
++     652856.74,
++     648262.24,
++     570982.80,
++     572117.19,
++     635651.50,
++     660876.82,
++     589837.26,
++     822030.59,
++     775011.93,
++     756356.32,
++     446687.43,
++     378923.73,
++     426682.39,
++     465627.29,
++     343357.76,
++     394146.07,
++     349578.94,
++     376385.08,
++     300208.01,
++     523291.43,
++     571482.87,
++     577008.32,
++     410345.02,
++     384657.84,
++     280362.49,
++     320014.02,
++     451952.45,
++     464419.94,
++     289909.55,
++     198407.22,
++     250577.47,
++     241961.37,
++     211680.91,
++     517504.82,
++     538287.18,
++     541502.43,
++     612254.76,
++     482738.10,
++     458789.56,
++     376142.77,
++     486708.47,
++     429481.16,
++     566975.56,
++     416629.96,
++     516114.28,
++     494186.76,
++     490551.45,
++     250000.00,
++     395130.61,
++     438064.38,
++     376306.64,
++     229415.05,
++     122509.49,
++     208273.89,
++     175428.37,
++     143850.07,
++     140502.99,
++             0,
++      67856.86,
++     101540.82,
++     138402.56,
++      86288.28,
++     158344.27,
++             0,
++      51593.97,
++             0,
++      62270.01,
++     187500.00,
++     156250.00,
++     111705.85,
++     614845.27,
++     679697.99,
++     317812.85,
++     102480.06,
++             0,
++     644558.17,
++     361338.44,
++     350274.35,
++     328876.94,
++     375000.00,
++     271457.22,
++     343067.08,
++     402793.01,
++     140294.94,
++     180339.60,
++      70536.35,
++      58255.14,
++      97856.74,
++             0,
++     679082.32,
++     704028.74,
++     631439.06,
++     676013.97,
++     586192.29,
++     703542.79,
++     758241.27,
++     644595.87,
++     593593.21,
++     286334.17,
++             0,
++     280074.28,
++     299300.04,
++     218400.54,
++             0,
++      47201.74,
++             0,
++      75323.67,
++      47102.18,
++     103417.45,
++             0,
++     165415.80,
++     584511.32,
++     777604.49,
++     875000.00,
++     192009.96,
++     249299.90,
++     145315.40,
++     324936.76,
++     301296.02,
++     362740.14,
++     845423.29,
++     814178.18,
++    1000000.00,
++     760623.21,
++     898978.26,
++     562500.00,
++     593750.00,
++     567168.26,
++     932160.89,
++    1000000.00,
++     952573.37,
++     929849.89,
++     941394.35,
++     910245.08,
++     887045.13,
++     711233.62,
++     534282.83,
++      62500.00,
++     260968.98,
++     162770.50,
++     191902.67,
++     218606.39,
++     125000.00,
++     204711.03,
++      92726.84,
++     185075.65,
++     141260.30,
++             0,
++     137508.90,
++      88618.69,
++      68986.34,
++     129647.50,
++      76619.17,
++     231890.83,
++     128996.12,
++             0,
++      41199.93,
++      40241.38,
++      49434.20,
++             0,
++      65536.00,
++      51062.77,
++             0,
++      42666.40,
++     114827.65,
++     156155.21,
++     168535.63,
++     187500.00,
++      97803.02,
++      43445.41,
++     164826.19,
++     334482.71,
++     365594.16,
++     437500.00,
++     312500.00,
++     419179.12,
++     476605.37,
++     281250.00,
++     442576.08,
++     542459.43,
++     471741.14,
++     625000.00,
++     562500.00,
++     523498.57,
++     598067.34,
++     322564.20,
++     240327.37,
++     246137.38,
++     561766.58,
++     591080.84,
++     641861.77,
++     705710.88,
++     687500.00,
++     718750.00,
++     657460.18,
++     666135.63,
++      47644.44,
++     544673.40,
++     601399.14,
++     220045.66,
++     292367.99,
++     370285.70,
++     812500.00,
++     781250.00,
++     836877.18,
++     880834.88,
++    1000000.00,
++     937500.00,
++     937500.00,
++     925824.50,
++    1000000.00,
++     959042.80,
++     861983.44,
++     937500.00]; //}}}
++var vx =[ 0, //{{{
++             0,
++             0,
++             0,
++          1.06,
++             0,
++             0,
++             0,
++             0,
++         98.52,
++         99.38,
++        -94.27,
++         -4.26,
++             0,
++             0,
++        106.36,
++        210.00,
++        192.06,
++             0,
++         48.30,
++         90.18,
++        158.39,
++             0,
++        122.10,
++             0,
++        204.38,
++        126.53,
++        201.33,
++        220.43,
++        160.49,
++             0,
++        151.85,
++        107.37,
++         54.44,
++         51.59,
++         97.47,
++        118.15,
++         45.15,
++        158.09,
++         74.73,
++         61.60,
++             0,
++         23.73,
++         47.66,
++         41.24,
++         17.36,
++         65.43,
++             0,
++         80.82,
++         58.32,
++        186.32,
++             0,
++          3.32,
++          1.41,
++        100.86,
++          5.30,
++         -1.51,
++         -1.87,
++        -22.02,
++         24.52,
++         24.83,
++         -2.09,
++         48.43,
++          2.90,
++        -11.16,
++        118.64,
++             0,
++        -15.04,
++             0,
++        -53.63,
++        -29.86,
++             0,
++        -34.85,
++        -45.14,
++        -26.83,
++         -9.00,
++        -95.11,
++        -51.45,
++        -72.33,
++        -95.02,
++        -92.08,
++             0,
++       -141.64,
++       -114.80,
++             0,
++       -108.28,
++             0,
++        -22.46,
++        -23.52,
++             0,
++        -63.36,
++        -45.08,
++        -68.59,
++             0,
++             0,
++         88.53,
++         24.42,
++         47.17,
++         65.40,
++         30.32,
++          2.87,
++        -32.11,
++         -1.11,
++             0,
++         19.72,
++             0,
++        -74.71,
++         13.31,
++        -12.68,
++        -85.39,
++        -52.31,
++        -98.96,
++        -31.91,
++       -126.23,
++        -33.15,
++       -168.78,
++       -127.85,
++       -113.05,
++          3.73,
++         25.88,
++        -28.14,
++             0,
++             0,
++        -54.29,
++          6.07,
++         -7.19,
++         11.34,
++         -0.16,
++         -0.22,
++          4.96,
++         16.50,
++         30.60,
++         11.89,
++       -167.77,
++        -80.40,
++         72.66,
++         -9.43,
++         -8.40,
++         -7.51,
++         -1.21,
++        -35.04,
++        -23.15,
++        -46.83,
++        -19.97,
++        -28.94,
++          0.88,
++          1.90,
++          1.58,
++          2.34,
++        -37.84,
++        -70.28,
++        -69.67,
++          0.93,
++          3.98,
++        -48.82,
++        -56.57,
++        -51.69,
++         -4.61,
++        -92.92,
++          1.22,
++         -1.98,
++         -0.14,
++         -6.83,
++          3.66,
++         13.06,
++         18.74,
++          5.90,
++          9.75,
++        -11.42,
++         18.20,
++          0.40,
++          4.48,
++          5.15,
++             0,
++         42.78,
++         23.87,
++         38.99,
++       -103.80,
++       -132.41,
++       -130.63,
++       -126.64,
++       -157.32,
++        -94.57,
++             0,
++       -125.29,
++       -139.68,
++       -152.66,
++       -151.02,
++       -127.20,
++             0,
++       -104.08,
++             0,
++        -69.03,
++             0,
++        -80.34,
++       -107.03,
++         -3.11,
++        -20.48,
++         74.88,
++        -27.50,
++             0,
++        -28.90,
++         51.47,
++         62.66,
++         59.36,
++             0,
++         99.89,
++         39.70,
++         45.08,
++        -58.14,
++        -21.77,
++        -58.26,
++        -97.48,
++       -107.06,
++             0,
++        -33.93,
++        -56.70,
++        -15.90,
++        -61.45,
++         -9.79,
++        -68.57,
++       -118.40,
++        -38.45,
++        -24.30,
++         67.95,
++             0,
++         37.44,
++         45.71,
++         81.87,
++             0,
++        -11.23,
++             0,
++         33.96,
++          6.22,
++          7.93,
++             0,
++         55.37,
++         -6.11,
++       -126.14,
++             0,
++         16.31,
++         20.66,
++         28.64,
++          0.85,
++         20.30,
++          8.57,
++       -180.75,
++       -174.45,
++             0,
++       -117.58,
++       -227.43,
++             0,
++         22.05,
++          6.36,
++       -175.77,
++             0,
++       -177.70,
++       -178.91,
++       -193.64,
++       -213.47,
++       -208.14,
++        -11.05,
++          2.37,
++             0,
++        104.62,
++        143.06,
++        136.85,
++        125.74,
++             0,
++         93.48,
++        147.01,
++        121.98,
++        154.33,
++             0,
++        148.01,
++        145.90,
++        112.62,
++        119.04,
++         78.25,
++         92.46,
++        118.43,
++             0,
++         93.51,
++        102.75,
++        109.77,
++             0,
++             0,
++         68.45,
++             0,
++         38.61,
++         64.65,
++         88.59,
++        123.38,
++             0,
++         75.40,
++         62.22,
++         79.75,
++         64.80,
++         44.90,
++             0,
++             0,
++         30.65,
++         16.75,
++         82.29,
++         29.52,
++         -7.98,
++         14.13,
++             0,
++             0,
++        -17.43,
++        -19.78,
++         39.27,
++         70.57,
++        103.88,
++         -7.47,
++        -23.11,
++        -49.25,
++        -87.42,
++             0,
++        -69.20,
++        -50.66,
++        -65.04,
++        -63.82,
++         -8.68,
++        -23.77,
++         53.60,
++        -14.42,
++         -1.64,
++             0,
++        -82.69,
++       -127.73,
++       -157.86,
++             0,
++             0,
++        220.71,
++        162.18,
++             0,
++        150.08,
++        150.12,
++             0]; //}}}
++var vy =[ 0, //{{{
++             0,
++             0,
++             0,
++       1619.49,
++             0,
++             0,
++             0,
++             0,
++       1392.27,
++       1188.56,
++       1395.65,
++       1452.44,
++             0,
++             0,
++       1298.38,
++        766.39,
++       1138.53,
++             0,
++        927.25,
++        877.20,
++       1081.21,
++             0,
++        638.61,
++             0,
++        705.43,
++       1382.70,
++        907.94,
++        979.15,
++       1227.77,
++             0,
++       1297.35,
++       1416.22,
++       1538.22,
++       1525.45,
++       1029.03,
++       1223.08,
++       1373.30,
++        909.03,
++       1262.65,
++       1419.06,
++             0,
++       1531.61,
++        995.93,
++       1462.65,
++       1455.20,
++       1092.03,
++             0,
++        616.34,
++        761.96,
++       1029.65,
++             0,
++       1552.90,
++       1226.70,
++        543.19,
++       1500.29,
++       1529.54,
++       1595.18,
++       1456.50,
++       1320.62,
++       1139.39,
++        816.26,
++       1233.00,
++       1380.17,
++       1306.29,
++        809.95,
++             0,
++       1405.50,
++             0,
++       1230.93,
++       1284.81,
++             0,
++        899.64,
++       1065.17,
++       1141.21,
++       1041.37,
++        838.78,
++        673.32,
++       1023.09,
++       1162.13,
++       1059.53,
++             0,
++        798.03,
++        892.42,
++             0,
++        495.54,
++             0,
++        580.56,
++        503.81,
++             0,
++        465.65,
++        395.83,
++        716.40,
++             0,
++             0,
++       1455.92,
++       1470.71,
++       1521.05,
++       1405.51,
++       1256.40,
++        917.14,
++       1352.49,
++       1600.45,
++             0,
++       1589.29,
++             0,
++        967.30,
++       1563.03,
++       1519.27,
++       1462.17,
++       1464.61,
++       1283.29,
++       1576.28,
++        852.51,
++       1551.33,
++       1237.14,
++       1332.92,
++       1407.55,
++       1619.57,
++       1588.68,
++       1029.47,
++             0,
++             0,
++       1524.91,
++       1613.84,
++       1611.70,
++       1609.22,
++       1619.00,
++       1616.90,
++       1605.97,
++       1585.52,
++       1547.54,
++       1573.97,
++       1205.85,
++       1491.46,
++       1506.09,
++       1546.38,
++       1582.85,
++       1584.62,
++       1611.28,
++       1486.20,
++       1509.30,
++       1393.33,
++       1547.02,
++       1494.59,
++       1614.65,
++       1618.48,
++       1621.38,
++       1602.99,
++       1364.42,
++       1345.20,
++       1256.72,
++       1614.07,
++       1610.59,
++       1432.10,
++       1265.45,
++       1397.92,
++       1424.33,
++       1236.84,
++       1616.96,
++       1586.97,
++       1607.97,
++       1601.76,
++       1597.01,
++       1476.70,
++       1554.73,
++       1549.11,
++       1591.19,
++       1462.44,
++       1529.48,
++       1500.68,
++       1250.40,
++       1407.74,
++             0,
++       1244.07,
++       1375.30,
++       1408.15,
++       1183.64,
++        803.25,
++       1006.75,
++       1054.70,
++        783.42,
++        997.80,
++             0,
++        449.58,
++        386.59,
++        619.74,
++        465.23,
++        474.56,
++             0,
++        247.34,
++             0,
++        167.10,
++             0,
++        235.10,
++        263.31,
++       1613.80,
++       1587.70,
++       1203.52,
++        837.02,
++             0,
++       1516.37,
++       1295.49,
++       1132.67,
++       1338.28,
++             0,
++        871.64,
++       1466.21,
++        907.04,
++       1032.52,
++       1232.40,
++        616.06,
++        456.63,
++        739.98,
++             0,
++       1546.05,
++       1474.90,
++       1573.91,
++       1287.44,
++       1540.92,
++       1386.17,
++       1191.36,
++       1429.80,
++       1258.43,
++       1353.32,
++             0,
++       1459.16,
++       1442.41,
++       1274.50,
++             0,
++        438.29,
++             0,
++        659.04,
++        435.91,
++        850.65,
++             0,
++       1151.04,
++       1584.37,
++       1284.45,
++             0,
++       1276.03,
++       1429.12,
++       1078.90,
++       1554.86,
++       1512.96,
++       1574.04,
++        745.50,
++       1027.16,
++             0,
++        780.09,
++        862.57,
++             0,
++        567.30,
++        891.65,
++        834.83,
++             0,
++        490.02,
++        361.35,
++        687.58,
++        615.29,
++       1042.57,
++       1603.74,
++       1590.74,
++             0,
++       1051.03,
++        666.22,
++        941.56,
++        841.37,
++             0,
++        453.67,
++        588.49,
++       1080.39,
++        738.85,
++             0,
++        849.76,
++        429.99,
++        548.42,
++        904.98,
++        639.96,
++       1232.98,
++        337.14,
++             0,
++        301.78,
++        239.88,
++        213.59,
++             0,
++             0,
++        113.54,
++             0,
++        393.37,
++        898.54,
++       1084.03,
++        510.41,
++             0,
++        162.78,
++        376.10,
++        250.47,
++        844.66,
++        556.31,
++             0,
++             0,
++        538.12,
++        938.17,
++        509.26,
++       1117.10,
++       1080.94,
++        497.80,
++             0,
++             0,
++        715.37,
++        751.00,
++        408.31,
++        337.32,
++        629.18,
++        528.73,
++       1065.63,
++       1144.69,
++       1037.25,
++             0,
++        541.72,
++        600.74,
++        924.29,
++        412.98,
++       1347.97,
++       1393.51,
++       1329.15,
++       1512.89,
++       1586.47,
++             0,
++        420.92,
++        435.64,
++        492.18,
++             0,
++             0,
++        584.82,
++        331.77,
++             0,
++        306.87,
++        481.10,
++             0]; //}}}
++var index=[[32,33,10], //{{{
++	[68,57,59],
++	[148,5,147],
++	[154,160,164],
++	[74,75,71],
++	[185,213,82],
++	[23,19,21],
++	[49,36,50],
++	[97,108,98],
++	[51,37,39],
++	[233,235,243],
++	[272,229,280],
++	[306,324,224],
++	[222,248,250],
++	[137,57,58],
++	[10,33,136],
++	[17,29,51],
++	[15,24,28],
++	[96,98,34],
++	[19,20,21],
++	[15,26,31],
++	[335,17,336],
++	[29,18,30],
++	[27,18,22],
++	[21,22,24],
++	[102,100,101],
++	[8,101,94],
++	[22,21,16],
++	[20,16,21],
++	[15,28,26],
++	[27,22,16],
++	[18,28,22],
++	[24,15,23],
++	[21,24,23],
++	[29,26,28],
++	[25,335,338],
++	[26,29,335],
++	[136,27,96],
++	[32,10,30],
++	[22,28,24],
++	[29,28,18],
++	[18,32,30],
++	[335,29,17],
++	[30,10,37],
++	[29,30,51],
++	[18,27,32],
++	[335,31,26],
++	[32,27,33],
++	[96,27,16],
++	[136,35,10],
++	[96,99,98],
++	[38,45,46],
++	[34,98,105],
++	[45,38,41],
++	[36,37,40],
++	[48,14,49],
++	[41,40,37],
++	[37,36,39],
++	[38,40,41],
++	[63,44,47],
++	[66,49,55],
++	[66,55,39],
++	[41,37,10],
++	[47,40,63],
++	[10,35,41],
++	[132,45,41],
++	[120,35,136],
++	[36,40,47],
++	[64,56,13],
++	[38,46,60],
++	[62,252,253],
++	[132,41,35],
++	[46,45,43],
++	[56,43,53],
++	[56,64,46],
++	[63,40,38],
++	[50,48,49],
++	[49,14,55],
++	[47,44,50],
++	[50,36,47],
++	[253,50,44],
++	[48,50,42],
++	[37,51,30],
++	[17,51,39],
++	[131,132,120],
++	[339,39,55],
++	[13,56,57],
++	[65,13,68],
++	[254,61,54],
++	[52,339,67],
++	[339,52,336],
++	[43,56,46],
++	[57,56,53],
++	[132,131,43],
++	[53,263,57],
++	[59,137,142],
++	[58,139,137],
++	[72,78,92],
++	[75,73,76],
++	[64,60,46],
++	[61,60,54],
++	[254,54,62],
++	[63,61,44],
++	[54,64,65],
++	[252,42,253],
++	[38,60,63],
++	[63,60,61],
++	[65,64,13],
++	[60,64,54],
++	[76,88,62],
++	[75,76,65],
++	[39,36,66],
++	[49,66,36],
++	[57,68,13],
++	[55,14,67],
++	[150,71,68],
++	[59,57,137],
++	[65,68,71],
++	[151,155,159],
++	[150,68,59],
++	[75,74,73],
++	[74,71,70],
++	[72,87,89],
++	[88,7,62],
++	[74,70,79],
++	[73,74,78],
++	[88,76,73],
++	[71,75,65],
++	[62,54,76],
++	[65,76,54],
++	[77,79,81],
++	[84,86,77],
++	[79,78,74],
++	[92,91,90],
++	[70,152,81],
++	[79,77,93],
++	[59,142,143],
++	[84,77,81],
++	[70,81,79],
++	[80,180,84],
++	[187,83,182],
++	[178,151,159],
++	[69,91,86],
++	[80,84,81],
++	[84,83,86],
++	[83,187,189],
++	[188,187,182],
++	[194,69,86],
++	[89,73,78],
++	[89,78,72],
++	[7,88,87],
++	[87,88,89],
++	[73,89,88],
++	[86,91,77],
++	[93,91,92],
++	[69,90,91],
++	[72,92,90],
++	[93,92,78],
++	[79,93,78],
++	[91,93,77],
++	[20,19,94],
++	[20,100,99],
++	[102,97,100],
++	[96,34,136],
++	[97,99,100],
++	[105,103,125],
++	[99,96,16],
++	[108,105,98],
++	[20,99,16],
++	[97,98,99],
++	[101,20,94],
++	[100,20,101],
++	[114,116,117],
++	[121,107,102],
++	[104,107,106],
++	[108,109,103],
++	[97,109,108],
++	[198,113,124],
++	[128,103,262],
++	[121,106,107],
++	[34,105,120],
++	[107,114,112],
++	[101,8,106],
++	[109,115,103],
++	[109,97,102],
++	[103,105,108],
++	[111,109,102],
++	[111,115,109],
++	[111,102,112],
++	[110,111,112],
++	[112,102,107],
++	[110,113,115],
++	[114,107,104],
++	[110,112,117],
++	[135,110,118],
++	[135,113,110],
++	[95,255,122],
++	[116,118,117],
++	[110,115,111],
++	[115,113,262],
++	[255,114,122],
++	[260,251,257],
++	[114,117,112],
++	[116,134,118],
++	[12,124,135],
++	[110,117,118],
++	[146,140,58],
++	[147,127,119],
++	[125,120,105],
++	[120,125,127],
++	[102,101,121],
++	[106,121,101],
++	[162,164,160],
++	[114,104,122],
++	[239,118,134],
++	[128,119,125],
++	[103,115,262],
++	[125,119,127],
++	[238,162,163],
++	[148,128,197],
++	[147,5,146],
++	[120,127,131],
++	[103,128,125],
++	[126,197,128],
++	[217,221,223],
++	[154,149,153],
++	[263,130,146],
++	[133,53,43],
++	[127,130,131],
++	[130,263,133],
++	[45,132,43],
++	[120,132,35],
++	[43,131,133],
++	[130,133,131],
++	[114,255,116],
++	[221,222,219],
++	[12,135,118],
++	[113,135,124],
++	[136,33,27],
++	[120,136,34],
++	[140,138,139],
++	[142,139,144],
++	[140,153,138],
++	[152,151,80],
++	[140,139,58],
++	[139,138,144],
++	[58,263,146],
++	[140,5,153],
++	[141,144,145],
++	[143,152,150],
++	[139,142,137],
++	[143,142,141],
++	[151,143,141],
++	[152,143,151],
++	[145,144,138],
++	[142,144,141],
++	[328,138,153],
++	[157,159,155],
++	[147,146,130],
++	[5,140,146],
++	[127,147,130],
++	[147,119,148],
++	[128,148,119],
++	[148,129,160],
++	[154,5,160],
++	[166,227,245],
++	[71,150,70],
++	[59,143,150],
++	[145,155,141],
++	[141,155,151],
++	[81,152,80],
++	[150,152,70],
++	[154,153,5],
++	[153,149,328],
++	[160,129,162],
++	[154,164,168],
++	[157,158,156],
++	[155,145,157],
++	[179,214,213],
++	[83,84,180],
++	[157,145,327],
++	[157,156,159],
++	[328,327,138],
++	[235,234,231],
++	[214,181,183],
++	[80,151,178],
++	[148,160,5],
++	[129,163,162],
++	[167,171,165],
++	[168,170,166],
++	[163,129,197],
++	[162,161,164],
++	[126,198,163],
++	[218,198,216],
++	[167,164,161],
++	[168,149,154],
++	[218,220,238],
++	[173,176,165],
++	[170,168,164],
++	[225,228,208],
++	[161,220,171],
++	[167,165,170],
++	[170,164,167],
++	[168,166,246],
++	[223,202,217],
++	[165,171,173],
++	[165,176,177],
++	[170,177,208],
++	[161,171,167],
++	[169,324,173],
++	[223,325,169],
++	[298,299,312],
++	[169,173,171],
++	[172,305,176],
++	[206,299,302],
++	[165,177,170],
++	[177,203,205],
++	[172,176,173],
++	[175,203,176],
++	[177,176,203],
++	[205,208,177],
++	[181,178,159],
++	[80,178,180],
++	[159,183,181],
++	[180,182,83],
++	[181,180,178],
++	[180,181,182],
++	[183,159,156],
++	[181,179,182],
++	[185,179,213],
++	[193,186,191],
++	[210,183,156],
++	[212,210,200],
++	[191,190,184],
++	[179,185,182],
++	[190,191,188],
++	[192,193,191],
++	[194,86,195],
++	[188,182,185],
++	[189,187,186],
++	[188,185,190],
++	[186,187,188],
++	[186,193,196],
++	[83,189,86],
++	[85,196,264],
++	[185,82,190],
++	[186,188,191],
++	[264,192,2],
++	[191,184,192],
++	[85,195,196],
++	[189,186,196],
++	[195,86,189],
++	[85,194,195],
++	[196,193,264],
++	[189,196,195],
++	[197,129,148],
++	[126,163,197],
++	[198,126,262],
++	[216,198,124],
++	[204,199,203],
++	[207,199,204],
++	[211,210,156],
++	[272,278,292],
++	[216,124,217],
++	[230,201,212],
++	[220,218,202],
++	[204,203,175],
++	[205,203,199],
++	[207,204,298],
++	[298,204,209],
++	[199,11,205],
++	[208,166,170],
++	[276,281,285],
++	[209,204,175],
++	[11,199,265],
++	[11,225,205],
++	[208,205,225],
++	[172,303,305],
++	[209,303,302],
++	[211,156,158],
++	[230,212,231],
++	[326,229,292],
++	[200,210,211],
++	[215,82,213],
++	[183,210,212],
++	[179,181,214],
++	[212,323,214],
++	[183,212,214],
++	[323,201,215],
++	[217,124,12],
++	[323,213,214],
++	[218,216,202],
++	[217,12,221],
++	[202,216,217],
++	[223,220,202],
++	[198,218,163],
++	[239,221,12],
++	[310,9,307],
++	[171,220,169],
++	[238,220,161],
++	[221,239,222],
++	[221,219,223],
++	[222,239,248],
++	[222,250,318],
++	[325,219,224],
++	[220,223,169],
++	[321,322,320],
++	[172,306,303],
++	[228,229,227],
++	[228,166,208],
++	[11,280,225],
++	[268,267,265],
++	[242,245,227],
++	[229,228,225],
++	[166,228,227],
++	[267,11,265],
++	[234,6,231],
++	[236,6,234],
++	[231,212,200],
++	[6,230,231],
++	[233,234,235],
++	[275,278,272],
++	[275,277,278],
++	[235,231,200],
++	[233,290,236],
++	[200,211,235],
++	[211,158,241],
++	[243,211,241],
++	[233,236,234],
++	[242,326,241],
++	[162,238,161],
++	[218,238,163],
++	[118,239,12],
++	[248,239,134],
++	[242,241,158],
++	[334,240,258],
++	[243,241,237],
++	[244,242,158],
++	[227,229,326],
++	[243,237,291],
++	[211,243,235],
++	[244,158,327],
++	[246,166,245],
++	[242,244,245],
++	[245,244,246],
++	[328,246,244],
++	[168,246,149],
++	[257,256,249],
++	[330,329,123],
++	[251,248,134],
++	[250,248,247],
++	[330,331,329],
++	[251,247,248],
++	[308,311,321],
++	[134,116,261],
++	[257,258,260],
++	[50,253,42],
++	[62,7,252],
++	[44,61,254],
++	[62,253,254],
++	[44,254,253],
++	[259,95,256],
++	[261,255,259],
++	[257,249,258],
++	[257,259,256],
++	[259,257,251],
++	[334,333,4],
++	[240,331,332],
++	[261,259,251],
++	[259,255,95],
++	[332,260,258],
++	[247,251,260],
++	[134,261,251],
++	[116,255,261],
++	[198,262,113],
++	[128,262,126],
++	[57,263,58],
++	[133,263,53],
++	[199,207,265],
++	[192,264,193],
++	[265,207,268],
++	[314,268,207],
++	[226,283,282],
++	[273,267,266],
++	[11,267,272],
++	[304,313,314],
++	[267,268,266],
++	[297,269,295],
++	[270,293,268],
++	[266,281,276],
++	[274,284,285],
++	[277,275,271],
++	[275,267,273],
++	[275,272,267],
++	[276,273,266],
++	[273,271,275],
++	[271,283,277],
++	[276,271,273],
++	[279,291,292],
++	[266,293,281],
++	[276,285,284],
++	[296,232,290],
++	[296,290,279],
++	[279,278,277],
++	[279,292,278],
++	[279,277,296],
++	[279,290,291],
++	[225,280,229],
++	[11,272,280],
++	[281,293,297],
++	[1,286,288],
++	[277,283,226],
++	[271,284,283],
++	[284,271,276],
++	[274,282,284],
++	[283,284,282],
++	[295,287,288],
++	[286,274,285],
++	[285,288,286],
++	[295,281,297],
++	[295,285,281],
++	[1,288,287],
++	[236,290,232],
++	[277,226,289],
++	[291,290,233],
++	[243,291,233],
++	[291,237,292],
++	[326,292,237],
++	[272,292,229],
++	[268,293,266],
++	[297,293,270],
++	[287,295,269],
++	[313,294,270],
++	[285,295,288],
++	[277,289,296],
++	[232,296,289],
++	[270,294,297],
++	[269,297,294],
++	[209,299,298],
++	[312,299,206],
++	[302,299,209],
++	[301,174,304],
++	[305,303,209],
++	[300,302,307],
++	[206,301,312],
++	[206,302,300],
++	[172,324,306],
++	[300,307,9],
++	[313,304,174],
++	[207,298,304],
++	[209,175,305],
++	[176,305,175],
++	[322,317,318],
++	[310,307,303],
++	[302,303,307],
++	[310,303,306],
++	[306,311,315],
++	[308,309,315],
++	[9,315,309],
++	[310,315,9],
++	[306,224,316],
++	[316,224,317],
++	[301,304,312],
++	[298,312,304],
++	[294,313,174],
++	[314,313,270],
++	[268,314,270],
++	[207,304,314],
++	[306,315,310],
++	[308,315,311],
++	[317,224,219],
++	[311,306,316],
++	[318,317,219],
++	[316,317,322],
++	[222,318,219],
++	[319,320,123],
++	[321,320,319],
++	[320,250,330],
++	[318,250,320],
++	[308,321,319],
++	[316,322,311],
++	[320,322,318],
++	[311,322,321],
++	[201,323,212],
++	[213,323,215],
++	[173,324,172],
++	[325,324,169],
++	[219,325,223],
++	[324,325,224],
++	[241,326,237],
++	[227,326,242],
++	[157,327,158],
++	[138,327,145],
++	[246,328,149],
++	[327,328,244],
++	[320,330,123],
++	[250,331,330],
++	[331,250,247],
++	[332,331,247],
++	[240,329,331],
++	[260,332,247],
++	[240,332,258],
++	[339,336,17],
++	[258,249,333],
++	[333,334,258],
++	[31,335,25],
++	[3,337,340],
++	[338,337,25],
++	[335,336,338],
++	[340,337,336],
++	[337,338,336],
++	[39,339,17],
++	[67,339,55],
++	[336,52,340]]; //}}}
+Index: ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19752)
++++ ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19753)
+@@ -19,15 +19,22 @@
+ 
+ void WriteData(IssmPDouble** pmatrix,int* pnel, int* matrix, int M,int N);
+ void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, int* matrix, int M, int N);
++void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, IssmPDouble* matrix, int M, int N);
+ void WriteData(IssmPDouble** px, int* pnods, int* vector, int M);
+ void WriteData(IssmPDouble** px, int* pnods, double* vector, int M);
++void WriteData(char** pstring, char* stringin);
++void WriteData(IssmPDouble* pdouble, IssmPDouble doublein);
+ 
++void FetchData(char** pstring, char* stringin);
+ void FetchData(double* pscalar,double scalar);
+ void FetchData(int* pinteger,int integer);
+ void FetchData(double** pvector, double* vectorin, int nods);
++void FetchData(double** pvector, int* pnods, double* vectorin, int nods);
+ void FetchData(double **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
++void FetchData(double **pmatrix, int* pM, int* pN, double* matrixin, int M, int N);
+ void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
+ void FetchData(Contours** pcontours,double* x, double* y, int nods);
++void FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue);
+ 
+ /*Print*/
+ void ApiPrintf(const char* string);
+Index: ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19752)
++++ ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19753)
+@@ -12,6 +12,15 @@
+ #include <cstring> 
+ 
+ /*Primitive data types*/
++/*FUNCTION FetchData(char** pstring, char* string){{{*/
++void FetchData(char** pstring, char* stringin){
++
++	char* string=xNew<char>(strlen(stringin)+1);
++	xMemCpy<char>(string,stringin,strlen(stringin)+1);
++
++	*pstring=string;
++}
++/*}}}*/
+ /*FUNCTION FetchData(double* pscalar,double scalar){{{*/
+ void FetchData(double* pscalar,double scalar){
+ 	
+@@ -34,6 +43,17 @@
+ 	*pvector=vector;
+ }
+ /*}}}*/
++/*FUNCTION FetchData(double **pvector, int* pnods, double* vectorin, int nods){{{*/
++void FetchData(double** pvector, int* pnods, double* vectorin, int nods){
++
++	double* vector=NULL;
++	
++	vector=xNew<IssmPDouble>(nods); xMemCpy<IssmPDouble>(vector,vectorin,nods);
++	
++	*pvector=vector;
++	*pnods=nods;
++}
++/*}}}*/
+ /*FUNCTION FetchData(double **pmatrix, int* pM, int* pN, int* matrix, int M, int N){{{*/
+ void FetchData(double **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
+ 
+@@ -49,6 +69,21 @@
+ 	}
+ }
+ /*}}}*/
++/*FUNCTION FetchData(double **pmatrix, int* pM, int* pN, double* matrix, int M, int N){{{*/
++void FetchData(double **pmatrix, int* pM, int* pN, double* matrixin, int M, int N){
++
++	double* matrix=NULL;
++	
++	if(pmatrix && matrixin){ 
++
++		matrix=xNew<IssmPDouble>(M*N); 
++		for(int i=0;i<M*N;i++)matrix[i]=matrixin[i];
++		if (pM)*pM=M;
++		if (pN)*pN=N;
++		*pmatrix=matrix;
++	}
++}
++/*}}}*/
+ /*FUNCTION FetchData(int **pmatrix, int* pM, int* pN, int* matrix, int M, int N){{{*/
+ void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N){
+ 
+@@ -88,3 +123,26 @@
+ 	*pcontours=contours;
+ }
+ /*}}}*/
++/*FUNCTION FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue){{{*/
++void FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue){
++
++	/*Initialize output*/
++	Options* options=new Options();
++	
++	GenericOption<double> *odouble = NULL;
++
++	/*check and parse the name  */
++	odouble=new GenericOption<double>();
++	odouble->name =xNew<char>(strlen(optionname)+1);
++	memcpy(odouble->name,optionname,(strlen(optionname)+1)*sizeof(char));
++	odouble->value=optionvalue;
++	odouble->numel=1;
++	odouble->ndims=1;
++	odouble->size=NULL;
++	 
++	options->AddOption((Option*)odouble);
++
++	/*Assign output pointers:*/
++	*poptions=options;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19752)
++++ ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19753)
+@@ -39,6 +39,20 @@
+ 	}
+ }
+ /*}}}*/
++/*FUNCTION WriteData(IssmPDouble** pmatrix, int* pM, IssmPDouble* pN, , int* matrix, int M,int N){{{*/
++void WriteData(IssmPDouble** pmatrix,int* pM, int* pN, IssmPDouble* matrix, int M, int N){
++
++	if(pmatrix && matrix){
++
++		/*Copy matrix: */
++		IssmPDouble* dmatrix = xNew<IssmPDouble>(M*N); 
++		for (int i=0;i<M*N;i++)dmatrix[i]=matrix[i];
++		*pmatrix=dmatrix;
++		if(pM)*pM=M;
++		if(pN)*pN=N;
++	}
++}
++/*}}}*/
+ /*FUNCTION WriteData(IssmPDouble** px, int* pnods, double* vector, int M){{{*/
+ void WriteData(IssmPDouble** px, int* pnods, double* vector, int M){
+ 
+@@ -63,7 +77,18 @@
+ 	}
+ }
+ /*}}}*/
++/*FUNCTION WriteData(IssmPDouble* pdouble, IssmPDouble double){{{*/
++void WriteData(IssmPDouble* pdouble, IssmPDouble doublein){
+ 
+-/*ISSM objects*/
++	*pdouble=doublein;
++}
++/*}}}*/
++/*FUNCTION WriteData(char** pstring, char* string){{{*/
++void WriteData(char** pstring, char* stringin){
+ 
+-/*Toolkit*/
++	char* string=xNew<char>(strlen(stringin)+1);
++	xMemCpy<char>(string,stringin,strlen(stringin)+1);
++
++	*pstring=string;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19752)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19753)
+@@ -9,7 +9,9 @@
+ bin_SCRIPTS = 
+ bin_SCRIPTS += ../TriMesh/TriMesh.js  \
+ 			   ../NodeConnectivity/NodeConnectivity.js\
+-			   ../ElementConnectivity/ElementConnectivity.js
++			   ../ElementConnectivity/ElementConnectivity.js\
++			   ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
++			   ../IssmConfig/IssmConfig.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+@@ -74,8 +76,10 @@
+ 
+ IssmModule_SOURCES = ../TriMesh/TriMesh.cpp \
+ 					 ../NodeConnectivity/NodeConnectivity.cpp\
+-					 ../ElementConnectivity/ElementConnectivity.cpp
++					 ../ElementConnectivity/ElementConnectivity.cpp\
++					 ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp\
++					 ../IssmConfig/IssmConfig.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19752)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19753)
+@@ -30,6 +30,7 @@
+ #define NAME (mxArray*)prhs[0]
+ /* serial output macros: */
+ #define VALUE (mxArray**)&plhs[0]
++#define SVALUE (mxArray**)&plhs[0]
+ #endif
+ 
+ #ifdef _HAVE_PYTHON_MODULES_
+@@ -37,8 +38,19 @@
+ #define NAME PyTuple_GetItem(args,0)
+ /* serial output macros: */
+ #define VALUE output,0
++#define SVALUE output,0
+ #endif
+ 
++
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define NAME string
++/* serial output macros: */
++#define VALUE pvalue
++#define SVALUE psvalue
++#define WRAPPER(modulename) extern "C" { int  IssmConfigModule(double* pvalue, char** psvalue, char* string)
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.js	(revision 19753)
+@@ -0,0 +1,24 @@
++function IssmConfig(string){
++/*IssmConfig 
++	   usage: var config = IssmConfig('_HAVE_PETSC_');
++*/
++
++	//output
++	var pvalue= Module._malloc(4); 
++	var psvalue= Module._malloc(4); 
++
++	//Declare IssmConfig module: 
++	IssmConfigModule = Module.cwrap('IssmConfigModule','number',['number','string','string']);
++	
++	//Call IssmConfig module: 
++	IssmConfigModule(pvalue, psvalue, string);
++	
++	/*Dynamic copying from heap: {{{*/
++	var value = Module.getValue(pvalue, 'double');
++	/*}}}*/
++
++	/*Free ressources: */
++	Module._free(pvalue); 
++
++	return value;
++}
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js	(revision 19753)
+@@ -0,0 +1,78 @@
++function InterpFromMeshToMesh2d(indexin,xin,yin,datain,x_interpin,y_interpin){
++
++/* INTERFROMMESHTOMESH2D - interpolation from a 2d triangular mesh onto a list of point
++  
++  This function interpolates a field defined on a Delaunay triangulation onto a list of points.
++
++  Usage:
++	  var data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp); or
++	  var data_interp=InterpFromMeshToMesh2d(index,x,y,data,x_interp,y_interp,default_value);
++
++	  index             : index of the mesh where data is defined
++	  x,y               : coordinates of the nodes where data is defined
++	  data              : matrix holding the data to be interpolated onto the mesh. (one column per field)
++	  x_interp,y_interp : coordinates of the points onto which we interpolate.
++	  default_value     : default value if point is outsite of triangulation (instead of linear interpolation)
++	  data_interp       : vector of mesh interpolated data.
++
++*/
++
++	/*Figure out default_value: */
++	if (arguments.length==7)default_value=arguments[6];
++	else default_value=0;
++	
++	//Dynamic allocations: {{{
++	//Retrieve elements and allocate on Module heap: 
++	
++	//input
++	
++	var dindex=new Int32Array(MatrixToList(indexin)); var nindex=dindex.length * dindex.BYTES_PER_ELEMENT;
++	var dindexPtr= Module._malloc(nindex); var indexHeap = new Uint8Array(Module.HEAPU8.buffer,dindexPtr,nindex);
++	indexHeap.set(new Uint8Array(dindex.buffer)); var index=indexHeap.byteOffset;
++
++	var dx=new Float64Array(xin); var nx=dx.length * dx.BYTES_PER_ELEMENT;
++	var dxPtr= Module._malloc(nx); var dxHeap = new Uint8Array(Module.HEAPU8.buffer,dxPtr,nx);
++	dxHeap.set(new Uint8Array(dx.buffer)); var x=dxHeap.byteOffset;
++	
++	var dy=new Float64Array(yin); var ny=dy.length * dy.BYTES_PER_ELEMENT;
++	var dyPtr= Module._malloc(nx); var dyHeap = new Uint8Array(Module.HEAPU8.buffer,dyPtr,ny);
++	dyHeap.set(new Uint8Array(dy.buffer)); var y=dyHeap.byteOffset;
++	
++	var ddata=new Float64Array(datain); var ndata=ddata.length * ddata.BYTES_PER_ELEMENT;
++	var ddataPtr= Module._malloc(ndata); var ddataHeap = new Uint8Array(Module.HEAPU8.buffer,ddataPtr,ndata);
++	ddataHeap.set(new Uint8Array(ddata.buffer)); var data=ddataHeap.byteOffset;
++	
++	var dx_interp=new Float64Array(x_interpin); var nx_interp=dx_interp.length * dx_interp.BYTES_PER_ELEMENT;
++	var dx_interpPtr= Module._malloc(nx_interp); var dx_interpHeap = new Uint8Array(Module.HEAPU8.buffer,dx_interpPtr,nx_interp);
++	dx_interpHeap.set(new Uint8Array(dx_interp.buffer)); var x_interp=dx_interpHeap.byteOffset;
++	
++	var dy_interp=new Float64Array(y_interpin); var ny_interp=dy_interp.length * dy_interp.BYTES_PER_ELEMENT;
++	var dy_interpPtr= Module._malloc(ny_interp); var dy_interpHeap = new Uint8Array(Module.HEAPU8.buffer,dy_interpPtr,ny_interp);
++	dy_interpHeap.set(new Uint8Array(dy_interp.buffer)); var y_interp=dy_interpHeap.byteOffset;
++	
++	nel=indexin.length;
++	nods=xin.length;
++	nods_interp=x_interpin.length;
++
++	//output
++	var data_interp;
++	var pdata_interp= Module._malloc(4); 
++	//}}}
++
++	//Declare InterpFromMeshToMesh2d module: 
++	InterpFromMeshToMesh2dModule = Module.cwrap('InterpFromMeshToMesh2dModule','number',['number','number','number','number','number','number','number','number','number','number','number']);
++	
++	//Call InterpFromMeshToMesh2d module: 
++	InterpFromMeshToMesh2dModule(pdata_interp,index,x,y,data,x_interp,y_interp,nel,nods,nods_interp,default_value);
++	
++	/*Dynamic copying from heap: {{{*/
++	//recover mesh: 
++	var data_interpptr = Module.getValue(pdata_interp,'i32');
++	data_interp = Module.HEAPF64.slice(data_interpptr /8, data_interpptr/8 + nods_interp);
++	/*}}}*/
++
++	/*Free ressources: */
++	Module._free(pdata_interp); 
++
++	return data_interp;
++}
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h	(revision 19752)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h	(revision 19753)
+@@ -54,6 +54,21 @@
+ #define DATAINTERP output,0
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define INDEX          indexin,nelin,3
++#define X              xin,nodsin
++#define Y              yin,nodsin
++#define DATA           datain,nodsin,1
++#define XINTERP        x_interpin, nods_interpin
++#define YINTERP        y_interpin, nods_interpin
++#define ARGUMENTS "default_value",default_value
++/* serial output macros: */
++#define DATAINTERP pdata_interp,NULL,NULL
++#define WRAPPER(modulename) extern "C" { int  InterpFromMeshToMesh2dModule(double** pdata_interp,int* indexin,double* xin,double* yin,double* datain,double* x_interpin,double* y_interpin,int nelin,int nodsin,int nods_interpin,double default_value)
++#define nrhs  6
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/m/miscellaneous/fielddisplay.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19752)
++++ ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19753)
+@@ -20,10 +20,7 @@
+ 			displayunit(offset,name,"not displayed",comment);
+ 		}
+ 		else{
+-			console.log(offset)
+-			console.log(name)
+-			console.log(field)
+-			//displayunit(offset,name,"""" + field """",comment),
++			displayunit(offset,name,"'"+field+"'",comment);
+ 		}
+ 	}
+ 	//numeric
+@@ -81,7 +78,8 @@
+ 	}
+ 	else{
+ 		if (typeof(comment) == "string"){
+-			console.log(sprintf("%s%-23s: %-15s -- %s",offset,name,characterization,comment));
++			//console.log(sprintf("%s%-23s: %-15s -- %s",offset,name,characterization,comment));
++			console.log(sprintf("%s%s: %-15s -- %s",offset,name,characterization,comment));
+ 		}
+ 		else{
+ 			throw Error("fielddisplay error message: format for comment not supported yet");
+Index: ../trunk-jpl/src/m/materials/paterson.js
+===================================================================
+--- ../trunk-jpl/src/m/materials/paterson.js	(revision 0)
++++ ../trunk-jpl/src/m/materials/paterson.js	(revision 19753)
+@@ -0,0 +1,53 @@
++function paterson(temperature){
++//PATERSON - figure out the rigidity of ice for a given temperature
++//
++//   rigidity (in s^(1/3)Pa) is the flow law paramter in the flow law sigma=B*e(1/3) (Paterson, p97). 
++//   temperature is in Kelvin degrees
++//
++//   Usage:
++//      var rigidity=paterson(temperature)
++
++	//variables:
++	var T=[];
++
++	if (ArrayAnyBelowStrict(temperature,0)){
++		throw Error('input temperature should be in Kelvin (positive)');
++	}
++	
++	T=temperature;
++	for(var i=0;i<temperature.length;i++)T[i]=temperature[i]-273.15;
++
++	//The routine below is equivalent to:
++
++	// n=3; T=temperature-273;
++	// //From paterson,
++	// Temp=[0;-2;-5;-10;-15;-20;-25;-30;-35;-40;-45;-50];
++	// A=[6.8*10^-15;2.4*10^-15;1.6*10^-15;4.9*10^-16;2.9*10^-16;1.7*10^-16;9.4*
++	// 10^-17;5.1*10^-17;2.7*10^-17;1.4*10^-17;7.3*10^-18;3.6*10^-18];;//s-1(kPa-3)
++	// //Convert into rigidity B
++	// B=A.^(-1/n)*10^3; //s^(1/3)Pa
++	// //Now, do a cubic fit between Temp and B: 
++	// fittedmodel=fit(Temp,B,'cubicspline');
++	// rigidity=fittedmodel(temperature);
++
++	var rigidity=NewArrayFill(T.length,0);
++	
++	for (var i=0;i<T.length;i++){
++		
++		if(T[i]<=-45)              rigidity[i]=Math.pow(10,8)*(-0.000292866376675*Math.pow(T[i]+50,3)+ 0.011672640664130*Math.pow(T[i]+50,2)  -0.325004442485481*(T[i]+50)+  6.524779401948101);
++		if(-45<=T[i] & T[i]<-40)   rigidity[i]=Math.pow(10,8)*(-0.000292866376675*Math.pow(T[i]+45,3)+ 0.007279645014004*Math.pow(T[i]+45,2)  -0.230243014094813*(T[i]+45)+  5.154964909039554);
++		if(-40<=T[i] & T[i]<-35)   rigidity[i]=Math.pow(10,8)*(0.000072737147457*Math.pow(T[i]+40,3)+  0.002886649363879*Math.pow(T[i]+40,2)  -0.179411542205399*(T[i]+40)+  4.149132666831214);
++		if(-35<=T[i] & T[i]<-30)   rigidity[i]=Math.pow(10,8)*(-0.000086144770023*Math.pow(T[i]+35,3)+ 0.003977706575736*Math.pow(T[i]+35,2)  -0.145089762507325*(T[i]+35)+  3.333333333333331);
++		if(-30<=T[i] & T[i]<-25)   rigidity[i]=Math.pow(10,8)*(-0.000043984685769*Math.pow(T[i]+30,3)+ 0.002685535025386*Math.pow(T[i]+30,2)  -0.111773554501713*(T[i]+30)+  2.696559088937191);
++		if(-25<=T[i] & T[i]<-20)   rigidity[i]=Math.pow(10,8)*(-0.000029799523463*Math.pow(T[i]+25,3)+ 0.002025764738854*Math.pow(T[i]+25,2)  -0.088217055680511*(T[i]+25)+  2.199331606342181);
++		if(-20<=T[i] & T[i]<-15)   rigidity[i]=Math.pow(10,8)*(0.000136920904777*Math.pow(T[i]+20,3)+  0.001578771886910*Math.pow(T[i]+20,2)  -0.070194372551690*(T[i]+20)+  1.805165505978111);
++		if(-15<=T[i] & T[i]<-10)   rigidity[i]=Math.pow(10,8)*(-0.000899763781026*Math.pow(T[i]+15,3)+ 0.003632585458564*Math.pow(T[i]+15,2)  -0.044137585824322*(T[i]+15)+  1.510778053489523);
++		if(-10<=T[i] & T[i]<-5)    rigidity[i]=Math.pow(10,8)*(0.001676964325070*Math.pow(T[i]+10,3)-  0.009863871256831*Math.pow(T[i]+10,2)  -0.075294014815659*(T[i]+10)+  1.268434288203714);
++		if(-5<=T[i] & T[i]<-2)     rigidity[i]=Math.pow(10,8)*(-0.003748937622487*Math.pow(T[i]+5,3)+0.015290593619213*Math.pow(T[i]+5,2)  -0.048160403003748*(T[i]+5)+  0.854987973338348);
++		if(-2<=T[i]);              rigidity[i]=Math.pow(10,8)*(-0.003748937622488*Math.pow(T[i]+2,3)-0.018449844983174*Math.pow(T[i]+2,2)  -0.057638157095631*(T[i]+2)+  0.746900791092860);
++
++		//Now make sure that rigidity is positive
++		if(rigidity[i]<0)          rigidity[i]=Math.pow(10,6);
++	}
++	return rigidity;
++}
+
+Property changes on: ../trunk-jpl/src/m/materials/paterson.js
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19753)
+@@ -0,0 +1,97 @@
++//STRESSBALANCE class definition
++//
++//   Usage:
++//      stressbalance=new stressbalance();
++
++function stressbalance (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//maximum of non-linear iterations.
++		this.maxiter=100;
++
++		//Convergence criterion: absolute, relative and residual
++		this.restol=Math.pow(10,-4); 
++		this.reltol=0.01;
++		this.abstol=10;
++
++		this.FSreconditioning=Math.pow(10,13);
++		this.shelf_dampening=0;
++
++		//Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor
++		this.penalty_factor=3;
++
++		//coefficient to update the viscosity between each iteration of
++		//a stressbalance according to the following formula
++		//viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
++		this.viscosity_overshoot=0;
++
++		//Stop the iterations of rift if below a threshold
++		this.rift_penalty_threshold=0;
++
++		//in some solutions, it might be needed to stop a run when only
++		//a few constraints remain unstable. For thermal computation, this
++		//parameter is often used.
++		this.rift_penalty_lock=10;
++
++		//output default:
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   StressBalance solution parameters:'));
++
++		console.log(sprintf('\n      %s','Convergence criteria:'));
++		fielddisplay(this,'restol','mechanical equilibrium residual convergence criterion');
++		fielddisplay(this,'reltol','velocity relative convergence criterion, NaN: not applied');
++		fielddisplay(this,'abstol','velocity absolute convergence criterion, NaN: not applied');
++		fielddisplay(this,'isnewton',"0: Picard's fixed point, 1: Newton's method, 2: hybrid");
++		fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
++		fielddisplay(this,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)');
++
++		console.log(sprintf('\n      %s','boundary conditions:'));
++		fielddisplay(this,'spcvx','x-axis velocity constraint (NaN means no constraint) [m/yr]');
++		fielddisplay(this,'spcvy','y-axis velocity constraint (NaN means no constraint) [m/yr]');
++		fielddisplay(this,'spcvz','z-axis velocity constraint (NaN means no constraint) [m/yr]');
++
++		console.log(sprintf('\n      %s','Rift options:'));
++		fielddisplay(this,'rift_penalty_threshold','threshold for instability of mechanical constraints');
++		fielddisplay(this,'rift_penalty_lock','number of iterations before rift penalties are locked');
++
++		console.log(sprintf('\n      %s','Penalty options:'));
++		fielddisplay(this,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset');
++		fielddisplay(this,'vertex_pairing','pairs of vertices that are penalized');
++
++		console.log(sprintf('\n      %s','Other:'));
++		fielddisplay(this,'shelf_dampening','use dampening for floating ice ? Only for FS model');
++		fielddisplay(this,'FSreconditioning','multiplier for incompressibility equation. Only for FS model');
++		fielddisplay(this,'referential','local referential');
++		fielddisplay(this,'loadingforce','loading force applied on each point [N/m^3]');
++		fielddisplay(this,'requested_outputs','additional outputs requested');
++
++
++
++	}// }}}
++	//properties 
++	// {{{
++	this.spcvx                  = NaN;
++	this.spcvy                  = NaN;
++	this.spcvz                  = NaN;
++	this.restol                 = 0;
++	this.reltol                 = 0;
++	this.abstol                 = 0;
++	this.isnewton               = 0;
++	this.FSreconditioning       = 0;
++	this.viscosity_overshoot    = 0;
++	this.maxiter                = 0;
++	this.shelf_dampening        = 0;
++	this.vertex_pairing         = NaN;
++	this.penalty_factor         = NaN;
++	this.rift_penalty_lock      = NaN;
++	this.rift_penalty_threshold = 0;
++	this.referential            = NaN;
++	this.loadingforce           = NaN;
++	this.requested_outputs      = ['']
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19753)
+@@ -0,0 +1,105 @@
++//MATICE class definition
++//
++//   Usage:
++//      matice=matice();
++
++function matice(){
++	//methods
++		this.setdefaultparameters = function(){ // {{{
++
++			//ice density (kg/m^3)
++			this.rho_ice=917.;
++
++			//ocean water density (kg/m^3)
++			this.rho_water=1023.;
++
++			//fresh water density (kg/m^3)
++			this.rho_freshwater=1000.;
++
++			//water viscosity (N.s/m^2)
++			this.mu_water=0.001787;  
++
++			//ice heat capacity cp (J/kg/K)
++			this.heatcapacity=2093.;
++
++			//ice latent heat of fusion L (J/kg)
++			this.latentheat=3.34*10^5;
++
++			//ice thermal conductivity (W/m/K)
++			this.thermalconductivity=2.4;
++			
++			//wet ice thermal conductivity (W/m/K)
++			this.temperateiceconductivity=.24;
++
++			//the melting point of ice at 1 atmosphere of pressure in K
++			this.meltingpoint=273.15;
++
++			//rate of change of melting point with pressure (K/Pa)
++			this.beta=9.8*10^-8;
++
++			//mixed layer (ice-water interface) heat capacity (J/kg/K)
++			this.mixed_layer_capacity=3974.;
++
++			//thermal exchange velocity (ice-water interface) (m/s)
++			this.thermal_exchange_velocity=1.00*10^-4;
++
++			//Rheology law: what is the temperature dependence of B with T
++			//available: none, paterson and arrhenius
++			this.rheology_law='Paterson';
++
++			// GIA:
++			this.lithosphere_shear_modulus  = 6.7*Math.pow(10,10);  // (Pa)
++			this.lithosphere_density        = 3.32;       // (g/cm^-3)
++			this.mantle_shear_modulus       = 1.45*Math.pow(10,11); // (Pa)
++			this.mantle_density             = 3.34;       // (g/cm^-3)
++
++		} //}}}
++		this.disp = function() {// {{{
++			console.log(sprintf('   Materials:'));
++
++			fielddisplay(this,'rho_ice','ice density [kg/m^3]');
++			fielddisplay(this,'rho_water','ocean water density [kg/m^3]');
++			fielddisplay(this,'rho_freshwater','fresh water density [kg/m^3]');
++			fielddisplay(this,'mu_water','water viscosity [N s/m^2]');
++			fielddisplay(this,'heatcapacity','heat capacity [J/kg/K]');
++			fielddisplay(this,'thermalconductivity','ice thermal conductivity [W/m/K]');
++			fielddisplay(this,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
++			fielddisplay(this,'meltingpoint','melting point of ice at 1atm in K');
++			fielddisplay(this,'latentheat','latent heat of fusion [J/kg]');
++			fielddisplay(this,'beta','rate of change of melting point with pressure [K/Pa]');
++			fielddisplay(this,'mixed_layer_capacity','mixed layer capacity [W/kg/K]');
++			fielddisplay(this,'thermal_exchange_velocity','thermal exchange velocity [m/s]');
++			fielddisplay(this,'rheology_B','flow law parameter [Pa/s^(1/n)]');
++			fielddisplay(this,'rheology_n',"Glen's flow law exponent");
++			fielddisplay(this,'rheology_law',"law for the temperature dependance of the rheology: 'None', 'Cuffey', 'Paterson', 'Arrhenius' or 'LliboutryDuval'");
++			fielddisplay(this,'lithosphere_shear_modulus','Lithosphere shear modulus [Pa]');
++			fielddisplay(this,'lithosphere_density','Lithosphere density [g/cm^-3]');
++			fielddisplay(this,'mantle_shear_modulus','Mantle shear modulus [Pa]');
++			fielddisplay(this,'mantle_density','Mantle density [g/cm^-3]');
++		} // }}}
++	//properties 
++	// {{{
++		this.rho_ice                    = 0.;
++		this.rho_water                  = 0.;
++		this.rho_freshwater             = 0.;
++		this.mu_water                   = 0.;
++		this.heatcapacity               = 0.;
++		this.latentheat                 = 0.;
++		this.thermalconductivity        = 0.;
++		this.temperateiceconductivity   = 0.;
++		this.meltingpoint               = 0.;
++		this.beta                       = 0.;
++		this.mixed_layer_capacity       = 0.;
++		this.thermal_exchange_velocity  = 0.;
++		this.rheology_B   = NaN;
++		this.rheology_n   = NaN;
++		this.rheology_law = '';
++
++		//gia: 
++		this.lithosphere_shear_modulus  = 0.;
++		this.lithosphere_density        = 0.;
++		this.mantle_shear_modulus       = 0.;
++		this.mantle_density             = 0.;
++		this.setdefaultparameters();
++		//}}}
++}
+Index: ../trunk-jpl/src/m/classes/settings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/settings.js	(revision 19753)
+@@ -0,0 +1,50 @@
++//SETTINGS class definition
++//
++//   Usage:
++//      settings=new settings();
++
++function settings (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		//are we short in memory ? (0 faster but requires more memory)
++		this.lowmem=0;
++
++		//i/o:
++		this.io_gather=1;
++
++		//results frequency by default every step
++		this.output_frequency=1;
++
++		//checkpoints frequency, by default never: 
++		this.recording_frequency=0;
++
++		//this option can be activated to load automatically the results
++		//onto the model after a parallel run by waiting for the lock file
++		//N minutes that is generated once the solution has converged
++		//0 to deactivate
++		this.waitonlock=Infinity;
++
++		//upload options: 
++		upload_port         = 0;
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   settings class echo:'));
++
++	}// }}}
++	//properties 
++	// {{{
++	this.results_on_nodes    = 0;
++	this.io_gather           = 0;
++	this.lowmem              = 0;
++	this.output_frequency    = 0;
++	this.recording_frequency   = 0;
++	this.waitonlock          = 0;
++	this.upload_server       = '';
++	this.upload_path         = '';
++	this.upload_login        = '';
++	this.upload_port         = 0;
++	this.upload_filename     = '';
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/template.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/template.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/template.js	(revision 19753)
+@@ -0,0 +1,18 @@
++//TEMPLATE class definition
++//
++//   Usage:
++//      template=new template();
++
++function template (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   template class echo:'));
++
++	}// }}}
++	//properties 
++	// {{{
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/rifts.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/rifts.js	(revision 19753)
+@@ -0,0 +1,21 @@
++//RIFTS class definition
++//
++//   Usage:
++//      rifts=new rifts();
++
++function rifts (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   rifts class echo:'));
++		fielddisplay(this,'riftstruct','structure containing all rift information (vertices coordinates, segments, type of melange, ...)');
++		fielddisplay(this,'riftproperties','');
++	}// }}}
++	//properties 
++	// {{{
++	this.riftstruct     = NaN;
++	this.riftproperties = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19753)
+@@ -0,0 +1,53 @@
++//TIMESTEPPING class definition
++//
++//   Usage:
++//      timestepping=new timestepping();
++
++function timestepping (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		//time between 2 time steps
++		this.time_step=1./2.;
++
++		//final time
++		this.final_time=10.*this.time_step;
++
++		//time adaptation? 
++		this.time_adapt=0;
++		this.cfl_coefficient=0.5;
++
++		//should we interpolate forcings between timesteps?
++		this.interp_forcings=1;
++
++		//In years by default
++		this.in_years = 1;
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   timestepping parameters:'));
++
++		if(this.in_years) unit = 'yr';
++		else unit = 's';
++		fielddisplay(this,'start_time','simulation starting time ['+ unit + ']');
++		fielddisplay(this,'final_time','final time to stop the simulation ['+ unit + ']');
++		fielddisplay(this,'time_step','length of time steps [' +unit+ ']');
++		fielddisplay(this,'time_adapt','use cfl condition to define time step ? (0 or 1) ');
++		fielddisplay(this,'cfl_coefficient','coefficient applied to cfl condition');
++		fielddisplay(this,'interp_forcings','interpolate in time between requested forcing values ? (0 or 1)');
++		fielddisplay(this,'in_years','time unit, 1: years, 0: seconds');
++
++
++	}// }}}
++	//properties 
++	// {{{
++	this.start_time      = 0.;
++	this.final_time      = 0.;
++	this.time_step       = 0.;
++	this.time_adapt      = 0;
++	this.cfl_coefficient = 0.;
++	this.interp_forcings = 1;
++	this.in_years        = 1;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/debug.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/debug.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/debug.js	(revision 19753)
+@@ -0,0 +1,26 @@
++//DEBUG class definition
++//
++//   Usage:
++//      debug=new debug();
++
++function debug (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   debug parameters:'));
++		console.log(sprintf('   debug parameters:'));
++
++		fielddisplay(this,'valgrind','use Valgrind to debug (0 or 1)');
++		fielddisplay(this,'gprof','use gnu-profiler to find out where the time is spent');
++		fielddisplay(this,'profiling','enables profiling (memory, flops, time)');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.valgrind = false;
++	this.gprof    = false;
++	this.profiling = false;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19753)
+@@ -0,0 +1,42 @@
++//INITIALIZATION class definition
++//
++//   Usage:
++//      initialization=new initialization();
++
++function initialization (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   initial field values:'));
++
++		fielddisplay(this,'vx','x component of velocity [m/yr]');
++		fielddisplay(this,'vy','y component of velocity [m/yr]');
++		fielddisplay(this,'vz','z component of velocity [m/yr]');
++		fielddisplay(this,'vel','velocity norm [m/yr]');
++		fielddisplay(this,'pressure','pressure field [Pa]');
++		fielddisplay(this,'temperature','temperature [K]');
++		fielddisplay(this,'waterfraction','fraction of water in the ice');
++		fielddisplay(this,'sediment_head','sediment water head of subglacial system [m]');
++		fielddisplay(this,'epl_head','epl water head of subglacial system [m]');
++		fielddisplay(this,'epl_thickness','epl layer thickness [m]');
++		fielddisplay(this,'watercolumn','thickness of subglacial water [m]');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.vx            = NaN;
++	this.vy            = NaN;
++	this.vz            = NaN;
++	this.vel           = NaN;
++	this.pressure      = NaN;
++	this.temperature   = NaN;
++	this.waterfraction = NaN;
++	this.sediment_head = NaN;
++	this.epl_head      = NaN;
++	this.epl_thickness = NaN;
++	this.watercolumn   = NaN;
++	this.setdefaultparameters();
++
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19753)
+@@ -0,0 +1,19 @@
++//SMBforcing Class definition
++//
++//   Usage:
++//      SMB=SMBforcing();
++
++function SMBforcing(){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	} // }}}
++	this.disp = function(){ // {{{
++		console.log(sprintf('   surface forcings parameters:'));
++		fielddisplay(this,'mass_balance','surface mass balance [m/yr ice eq]');
++		fielddisplay(this,'requested_outputs','additional outputs requested');
++	} // }}}
++	//properties 
++	this.mass_balance = NaN;
++	this.requested_outputs      = [''];
++	this.setdefaultparameters();
++}
+Index: ../trunk-jpl/src/m/classes/verbose.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/verbose.js	(revision 19753)
+@@ -0,0 +1,58 @@
++//VERBOSE class definition
++//
++//   Available verbosity levels:
++//      mprocessor  : model processing 
++//      module      : modules
++//      solution    : solution sequence
++//      solver      : solver info (extensive)
++//      convergence : convergence criteria
++//      control     : control method
++//      qmu         : sensitivity analysis
++//      autodiff    : AD analysis
++//      smb         : smb analysis
++//
++//   Usage:
++//      verbose=verbose();
++//      verbose=verbose(3);
++//      verbose=verbose('all');
++//      verbose=verbose('001100');
++//      verbose=verbose('module',true,'solver',false);
++
++//WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h
++//         Do not modify these sections. See src/c/shared/Numerics/README for more info
++
++function verbose (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		//BEGINDISP
++		console.log(sprintf('verbose class echo:'));
++		console.log(sprintf('   %15s : %s','mprocessor',mat2str(verbose.mprocessor)));
++		console.log(sprintf('   %15s : %s','module',mat2str(verbose.module)));
++		console.log(sprintf('   %15s : %s','solution',mat2str(verbose.solution)));
++		console.log(sprintf('   %15s : %s','solver',mat2str(verbose.solver)));
++		console.log(sprintf('   %15s : %s','convergence',mat2str(verbose.convergence)));
++		console.log(sprintf('   %15s : %s','control',mat2str(verbose.control)));
++		console.log(sprintf('   %15s : %s','qmu',mat2str(verbose.qmu)));
++		console.log(sprintf('   %15s : %s','autodiff',mat2str(verbose.autodiff)));
++		console.log(sprintf('   %15s : %s','smb',mat2str(verbose.smb)));
++		//ENDDISP
++	}// }}}
++	//properties 
++	// {{{
++	//BEGINFIELDS
++	this.mprocessor=false;
++	this.module=false;
++	this.solution=false;
++	this.solver=false;
++	this.convergence=false;
++	this.control=false;
++	this.qmu=false;
++	this.autodiff=false;
++	this.smb=false;
++	//ENDFIELDS
++	// }}}
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/pairoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/pairoptions.js	(revision 19752)
++++ ../trunk-jpl/src/m/classes/pairoptions.js	(revision 19753)
+@@ -264,6 +264,6 @@
+ 	} // }}}
+ 
+ 	//properties 
+-	list         = [];
++	this.list         = [];
+ 	this.constructor(args);
+ }
+Index: ../trunk-jpl/src/m/classes/toolkits.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/toolkits.js	(revision 19753)
+@@ -0,0 +1,46 @@
++//TOOLKITS class definition
++//
++//   Usage:
++//      toolkits=new toolkits();
++
++function toolkits (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//default toolkits: 
++		if (IssmConfig('_HAVE_PETSC_')){
++			//MUMPS is the default toolkits
++			if (IssmConfig('_HAVE_MUMPS_')){
++				this.DefaultAnalysis           = mumpsoptions();
++			}
++			else{
++				this.DefaultAnalysis           = iluasmoptions(); 
++			}
++		}
++		else{
++			if (IssmConfig('_HAVE_MUMPS_')){
++				this.DefaultAnalysis           = issmmumpssolver(); 
++			}
++			else if (IssmConfig('_HAVE_GSL_')){
++				this.DefaultAnalysis           = issmgslsolver(); 
++			}
++			else{
++				console.warn('toolkits setdefaultparameters message: need at least Mumps or Gsl to define an issm solver type, no default solver assigned');
++			}
++		}
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('List of toolkits options per analysis:\n'));
++		for(var prop in this){
++			if(typeof this[prop] == 'object'){
++				console.log(prop+ ':',this[prop]);
++			}
++		}
++	}// }}}
++	//properties 
++	// {{{
++	this.DefaultAnalysis           = [];
++	//The other properties are dynamic
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/flowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/flowequation.js	(revision 19753)
+@@ -0,0 +1,58 @@
++//FLOWEQUATION class definition
++//
++//   Usage:
++//      flowequation=new flowequation();
++
++function flowequation (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		//P1 for SSA
++		this.fe_SSA= 'P1';
++
++		//P1 for HO
++		this.fe_HO= 'P1';
++
++		//MINI condensed element for FS by default
++		this.fe_FS = 'MINIcondensed';
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   flow equation parameters:'));
++
++		fielddisplay(this,'isSIA','is the Shallow Ice Approximation (SIA) used ?');
++		fielddisplay(this,'isSSA','is the Shelfy-Stream Approximation (SSA) used ?');
++		fielddisplay(this,'isL1L2','is the L1L2 approximation used ?');
++		fielddisplay(this,'isHO','is the Higher-Order (HO) approximation used ?');
++		fielddisplay(this,'isFS','are the Full-FS (FS) equations used ?');
++		fielddisplay(this,'fe_SSA',"Finite Element for SSA  'P1', 'P1bubble' 'P1bubblecondensed' 'P2'");
++		fielddisplay(this,'fe_HO', "Finite Element for HO   'P1' 'P1bubble' 'P1bubblecondensed' 'P1xP2' 'P2xP1' 'P2'");
++		fielddisplay(this,'fe_FS', "Finite Element for FS   'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood' 'XTaylorHood'");
++		fielddisplay(this,'vertex_equation','flow equation for each vertex');
++		fielddisplay(this,'element_equation','flow equation for each element');
++		fielddisplay(this,'borderSSA',"vertices on SSA's border (for tiling)");
++		fielddisplay(this,'borderHO',"vertices on HO's border (for tiling)");
++		fielddisplay(this,'borderFS',"vertices on FS' border (for tiling)");
++
++	}// }}}
++	//properties 
++	// {{{
++	this.isSIA                          = 0;
++	this.isSSA                          = 0;
++	this.isL1L2                         = 0;
++	this.isHO                           = 0;
++	this.isFS                           = 0;
++	this.fe_SSA                         = '';
++	this.fe_HO                          = '';
++	this.fe_FS                          = '';
++	this.augmented_lagrangian_r         = 1.;
++	this.augmented_lagrangian_rhop      = 1.;
++	this.augmented_lagrangian_rlambda   = 1.;
++	this.augmented_lagrangian_rholambda = 1.;
++	this.XTH_theta                      = 0.;
++	this.vertex_equation                = NaN;
++	this.element_equation               = NaN;
++	this.borderSSA                      = NaN;
++	this.borderHO                       = NaN;
++	this.borderFS                       = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19753)
+@@ -0,0 +1,26 @@
++//BASAL FORCINGS class definition
++//
++//   Usage:
++//      basalforcings=basalforcings();
++
++function basalforcings(){
++	//methods
++	this.setdefaultparameters = function() {//{{{
++
++	} // }}}
++	this.disp = function(){ // {{{
++		console.log(sprintf('   basal forcings parameters:'));
++
++		fielddisplay(this,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
++		fielddisplay(this,'floatingice_melting_rate','basal melting rate (positive if melting) [m/yr]');
++		fielddisplay(this,'geothermalflux','geothermal heat flux [W/m^2]');
++
++	} // }}}
++	//properties 
++	//{{{
++	this.groundedice_melting_rate  = NaN;
++	this.floatingice_melting_rate  = NaN;
++	this.geothermalflux            = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 19753)
+@@ -0,0 +1,55 @@
++//GENERIC class definition
++//
++//   Usage:
++//      generic=new generic();
++
++function generic (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		this.name='';
++		this.login='';
++		this.np=1;
++		this.port=0;
++		this.interactive=1;
++		this.codepath='issmdir/bin';
++		this.etcpath='issmdir/etc';
++		this.executionpath= 'issmdir/execution';
++		this.valgrind='issmdir/externalpackages/valgrind/install/bin/valgrind';
++		this.valgrindlib='issmdir/externalpackages/valgrind/install/lib/libmpidebug.so';
++		this.valgrindsup='issdir/externalpackages/valgrind/issm.supp';
++		this.verbose=1;
++		this.shell='/bin/sh';
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   generic class echo:'));
++		console.log(sprintf('    name: %s',this.name));
++		console.log(sprintf('    login: %s',this.login));
++		console.log(sprintf('    np: %i',this.np));
++		console.log(sprintf('    port: %i',this.port));
++		console.log(sprintf('    codepath: %s',this.codepath));
++		console.log(sprintf('    executionpath: %s',this.executionpath));
++		console.log(sprintf('    etcpath: %s',this.etcpath));
++		console.log(sprintf('    valgrind: %s',this.valgrind));
++		console.log(sprintf('    valgrindlib: %s',this.valgrindlib));
++		console.log(sprintf('    valgrindsup: %s',this.valgrindsup));
++		console.log(sprintf('    verbose: %s',this.verbose));
++		console.log(sprintf('    shell: %s',this.shell));
++	}// }}}
++	//properties 
++	// {{{
++	this.name='';
++	this.login='';
++	this.np=NaN;
++	this.port=NaN;
++	this.interactive=NaN;
++	this.codepath='';
++	this.etcpath='';
++	this.executionpath='';
++	this.valgrind='';
++	this.valgrindlib='';
++	this.valgrindsup='';
++	this.verbose=NaN;
++	this.shell='';
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/groundingline.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/groundingline.js	(revision 19753)
+@@ -0,0 +1,24 @@
++//GROUNDINGLINE class definition
++//
++//   Usage:
++//      groundingline=new groundingline();
++
++function groundingline (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		//Type of migration
++		this.migration='None';
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   grounding line migration parameters:'));
++		fielddisplay(this,'migration',"type of grounding line migration: 'SoftMigration','AggressiveMigration','SubelementMigration','SubelementMigration2' or 'None'");
++
++
++	}// }}}
++	//properties 
++	// {{{
++	this.migration    = '';
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19753)
+@@ -0,0 +1,90 @@
++//DAMAGE class definition
++//
++//   Usage:
++//      damage=new damage();
++
++function damage (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		
++		//damage parameters: 
++		this.isdamage=0;
++		this.D=0;
++		this.law=0;
++
++		this.max_damage=1-1e-5; //if damage reaches 1, solve becomes singular, as viscosity becomes nil
++
++		//Type of stabilization used
++		this.stabilization=4;
++
++		//Maximum number of iterations
++		this.maxiter=100;
++
++		//finite element interpolation
++		this.elementinterp='P1';
++
++		//damage evolution parameters 
++		this.stress_threshold=1.3e5;
++		this.kappa=2.8;
++		this.healing=0;
++		this.c1=0;
++		this.c2=0;
++		this.c3=0;
++		this.c4=0;
++		this.equiv_stress=0;
++
++		//output default:
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   Damage:\n'));
++
++		fielddisplay(this,'isdamage','is damage mechanics being used? {true,false}');
++		if (this.isdamage){
++			fielddisplay(this,'law',"damage law ['0: analytical','1: pralong']");
++			fielddisplay(this,'D','damage tensor (scalar)');
++			fielddisplay(this,'spcdamage','damage constraints (NaN means no constraint)');
++			fielddisplay(this,'max_damage','maximum possible damage (0<=max_damage<1)');
++
++			fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: flux corrected transport');
++			fielddisplay(this,'maxiter','maximum number of non linear iterations');
++			fielddisplay(this,'elementinterp',"interpolation scheme for finite elements {'P1','P2'}");
++			fielddisplay(this,'stress_threshold','stress threshold for damage initiation [Pa]');
++			fielddisplay(this,'kappa','ductility parameter for stress softening and damage');
++			fielddisplay(this,'c1','damage parameter 1');
++			fielddisplay(this,'c2','damage parameter 2');
++			fielddisplay(this,'c3','damage parameter 3');
++			fielddisplay(this,'c4','damage parameter 4');
++			fielddisplay(this,'healing','damage healing parameter');
++			fielddisplay(this,'equiv_stress','0: von Mises, 1: max principal');
++			fielddisplay(this,'requested_outputs','additional outputs requested');
++		}
++	}// }}}
++	//properties 
++	// {{{
++	this.isdamage            = 0;
++	this.D                   = NaN;
++	this.law                 = 0;
++	this.spcdamage           = NaN; 
++	this.max_damage          = 0;
++
++	//numerical
++	this.stabilization       = 0;
++	this.maxiter             = 0;
++	this.elementinterp       = '';
++
++	//general parameters for evolution law: 
++	this.stress_threshold    = 0;
++	this.kappa               = 0;
++	this.c1                  = 0;
++	this.c2                  = 0;
++	this.c3                  = 0;
++	this.c4                  = 0;
++	this.healing             = 0;
++	this.equiv_stress		  = 0;
++	this.requested_outputs   = [''];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19752)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19753)
+@@ -158,9 +158,9 @@
+ 	 } //}}}
+     //properties 
+ 	 // {{{
+-	 numberofplots = 0;
+-	 figurenumber  = 1;
+-	 list          = [];
++	 this.numberofplots = 0;
++	 this.figurenumber  = 1;
++	 this.list          = [];
+ 	 this.constructor(args);
+ 	 //}}}
+ }
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19753)
+@@ -0,0 +1,24 @@
++//FRICTION class definition
++//
++//   Usage:
++//      friction=friction();
++
++function friction (){
++	//methods
++	this.setdefaultparameters = function(){ // {{{
++
++	} // }}}
++	this.disp= function (){// {{{
++		console.log(sprintf('Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)'));
++		fielddisplay(this,'coefficient','friction coefficient [SI]');
++		fielddisplay(this,'p','p exponent');
++		fielddisplay(this,'q','q exponent');
++	} // }}}
++	//properties 
++	//{{{
++	this.coefficient = NaN;
++	this.p           = NaN;
++	this.q           = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19752)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19753)
+@@ -51,39 +51,40 @@
+ 			this.mask             = new mask();
+ 			this.constants        = new constants();
+ 			this.geometry         = new geometry();
+-//			this.initialization   = initialization();
+-//			this.smb              = SMBforcing();
+-//			this.basalforcings    = basalforcings();
+-//			this.friction         = friction();
+-//			this.rifts            = rifts();
+-//			this.timestepping     = timestepping();
+-//			this.groundingline    = groundingline();
+-//			this.materials        = matice();
+-//			this.damage           = damage();
+-//			this.flowequation     = flowequation();
+-//			this.debug            = debug();
+-//			this.verbose          = verbose();
+-//			this.settings         = settings();
+-//			this.toolkits         = toolkits();
+-//			this.cluster          = generic();
+-//			this.balancethickness = balancethickness();
+-//			this.stressbalance    = stressbalance();
+-//			this.hydrology        = hydrologyshreve();
+-//			this.masstransport    = masstransport();
+-//			this.thermal          = thermal();
+-//			this.steadystate      = steadystate();
+-//			this.transient        = transient();
+-//			this.calving          = calving();
+-//			this.gia              = gia();
+-//			this.autodiff         = autodiff();
+-//			this.flaim            = flaim();
+-//			this.inversion        = inversion();
+-//			this.qmu              = qmu();
+-//			this.radaroverlay     = radaroverlay();
+-//			this.results          = struct();
+-//			this.outputdefinition = outputdefinition();
+-//			this.miscellaneous    = miscellaneous();
+-//			this.private          = private();
++			this.initialization   = new initialization();
++			this.smb              = new SMBforcing();
++			this.basalforcings    = new basalforcings();
++			this.friction         = new friction();
++			this.rifts            = new rifts();
++			this.timestepping     = new timestepping();
++			this.groundingline    = new groundingline();
++			this.materials        = new matice();
++			this.damage           = new damage();
++			this.flowequation     = new flowequation();
++			this.debug            = new debug();
++			this.verbose          = new verbose();
++			this.settings         = new settings();
++			this.toolkits         = new toolkits();
++			this.toolkits.disp();
++			this.cluster          = new generic();
++			this.balancethickness = new balancethickness();
++			this.stressbalance    = new stressbalance();
++			this.hydrology        = new hydrologyshreve();
++			this.masstransport    = new masstransport();
++			this.thermal          = new thermal();
++			this.steadystate      = new steadystate();
++			this.transient        = new transient();
++			this.calving          = new calving();
++			this.gia              = new gia();
++			this.autodiff         = new autodiff();
++			this.flaim            = new flaim();
++			this.inversion        = new inversion();
++			this.qmu              = new qmu();
++			this.radaroverlay     = new radaroverlay();
++			this.results          = [];
++			this.outputdefinition = new outputdefinition();
++			this.miscellaneous    = new miscellaneous();
++			this.private          = new private();
+ 		} //}}}
+ 	//properties
+ 	// {{{
+Index: ../trunk-jpl/src/m/solvers/issmgslsolver.js
+===================================================================
+--- ../trunk-jpl/src/m/solvers/issmgslsolver.js	(revision 0)
++++ ../trunk-jpl/src/m/solvers/issmgslsolver.js	(revision 19753)
+@@ -0,0 +1,21 @@
++function issmgslsolver(){
++//ISSMSOLVER - 
++//
++//   Usage:
++//      options=issmsolver(varargin);
++
++	//Retrieve options provided in varargin. First convert arguments to array:
++	var args = Array.prototype.slice.call(arguments);
++
++	//Then process options
++	var  options = new pairoptions(args.slice(1,args.length));
++
++	//default issmoptions options
++	var issmoptions={};
++	issmoptions['toolkit']='issm';
++	issmoptions['mat_type']=options.getfieldvalue('mat_type','dense');
++	issmoptions['vec_type']=options.getfieldvalue('vec_type','seq');
++	issmoptions['solver_type']=options.getfieldvalue('solver_type','gsl');
++
++	return issmoptions;
++}
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19752)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19753)
+@@ -73,6 +73,24 @@
+ 	for (i=0;i<array.length;i++)notarray[i]=-array[i];
+ 	return notarray;
+ } //}}}
++function ArrayPow(array,coefficient) { //{{{
++
++	var powarray=array;
++	for (i=0;i<array.length;i++)powarray[i]=Math.pow(array[i],coefficient);
++	return powarray;
++} //}}}
++function ArraySqrt(array) { //{{{
++
++	var sqrtarray=array;
++	for (i=0;i<array.length;i++)sqrtarray[i]=Math.sqrt(array[i]);
++	return sqrtarray;
++} //}}}
++function ArrayMag(array1,array2) { //{{{
++
++	var arraymag=NewArrayFill(array1.length,0);
++	for (var i=0;i<array1.length;i++)arraymag[i]=Math.sqrt(Math.pow(array1[i],2)+Math.pow(array2[i],2));
++	return arraymag;
++} //}}}
+ function ArrayAnyNaN(array) { //{{{
+ 
+ 	for(var i=0;i<array.length;i++){
+@@ -80,6 +98,20 @@
+ 	}
+ 	return 0;
+ } //}}}
++function ArrayAnyBelowOrEqual(array,value) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (array[i]<=value)return 1;
++	}
++	return 0;
++} //}}}
++function ArrayAnyBelowStrict(array,value) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (array[i]<value)return 1;
++	}
++	return 0;
++} //}}}
+ function ArrayAnd(array1,array2) { //{{{
+ 
+ 	var array=array1;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19753-19754.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19753-19754.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19753-19754.diff	(revision 20498)
@@ -0,0 +1,137 @@
+Index: ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 19753)
++++ ../trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh	(revision 19754)
+@@ -16,7 +16,7 @@
+ mv cmake-$VER/* install
+ rm -rf cmake-$VER
+ 
+-LDFLAGS="-L/usr/lib/ -libstdc++ -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran"
++LDFLAGS="-L/usr/lib/ -lstdc++ -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran"
+ F77="/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran"
+ 
+ #Compile cmake
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-snowleopard-dakota.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-snowleopard-dakota.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-snowleopard-dakota.sh	(revision 19754)
+@@ -0,0 +1,35 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src install mpich-3.0.4
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
++
++#Untar 
++tar -zxvf  mpich-3.0.4.tar.gz
++
++#Move mpich into src directory
++mv mpich-3.0.4/* src
++rm -rf mpich-3.0.4
++
++#Configure mpich
++cd src
++./configure \
++	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
++	--enable-shared \
++	CC=/usr/bin/gcc CXX=/usr/bin/g++ \
++	F77=/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran \
++	LDFLAGS="-L/usr/lib/ -lstdc++ -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran"
++
++	#CC=llvm-gcc \
++
++#Compile mpich (this new version supports parallel make)
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install 
+
+Property changes on: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-snowleopard-dakota.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-snowleopard.sh	(revision 19754)
+@@ -0,0 +1,67 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.mac.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++export BOOST_ROOT=$ISSM_DIR/externalpackages/boost/install
++
++#Configure dakota
++# Set your local gcc compiler here
++cd $DAK_BUILD
++cmake -DBoost_NO_BOOST_CMAKE=TRUE \
++	-DBoost_NO_SYSTEM_PATHS=TRUE \
++	-DBOOST_ROOT:PATHNAME=$BOOST_ROOT \
++	-DBoost_LIBRARY_DIRS:FILEPATH=${BOOST_ROOT}/lib \
++	-D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++	-D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++	-D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++	-D LDFLAGS="-L/usr/lib/ -lstdc++ -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin10/4.6.2/ -lgfortran" \
++	-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++	-C $DAK_SRC/cmake/DakotaDev.cmake \
++	$DAK_SRC
++cd ..
++
++# Snowleopard: Mpi should be made with these compilers
++#-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_CC_COMPILER=/usr/bin/gcc \
++#-DCMAKE_Fortran_COMPILER=/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran \
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19754-19755.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19754-19755.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19754-19755.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 19754)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 19755)
+@@ -84,7 +84,7 @@
+ NUMCPUS_INSTALL=6
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=3
++NUMCPUS_RUN=1
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-19755-19756.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19755-19756.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19755-19756.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test208.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.m	(revision 19755)
++++ ../trunk-jpl/test/NightlyRun/test208.m	(revision 19756)
+@@ -4,7 +4,7 @@
+ md=parameterize(md,'../Par/SquareShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea'}
++md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 19755)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 19756)
+@@ -48,7 +48,7 @@
+ md.timestepping.time_step=.1;
+ 
+ %Run transient
+-md=solve(md,TransientSolutionEnum());
++%md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+ field_names          ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance'};
Index: /issm/oecreview/Archive/19101-20495/ISSM-19756-19757.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19756-19757.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19756-19757.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/hydrologysommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19756)
++++ ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19757)
+@@ -16,7 +16,7 @@
+ 		neumannflux     = NaN;
+ 	end
+ 	methods
+-		function self = extrud,e(self,md) % {{{
++		function self = extrude(self,md) % {{{
+ 		end % }}}
+ 		function self = hydrologysommers(varargin) % {{{
+ 			switch nargin
Index: /issm/oecreview/Archive/19101-20495/ISSM-19757-19758.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19757-19758.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19757-19758.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 19757)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 19758)
+@@ -84,11 +84,11 @@
+ NUMCPUS_INSTALL=6
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
++NUMCPUS_RUN=3
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+-MATLAB_NROPTIONS="'exclude',[119,514,701,702,435]"
++PYTHON_NROPTIONS="--exclude 119 243 514 701 702 435"
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19758-19759.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19758-19759.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19758-19759.diff	(revision 20498)
@@ -0,0 +1,1035 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 0)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 19759)
+@@ -0,0 +1,106 @@
++function SetIceShelfBC(md) { 
++//SETICESHELFBC - Create the boundary conditions for stressbalance and thermal models for a  Ice Shelf with Ice Front
++//
++//   Neumann BC are used on the ice front (an ANRGUS contour around the ice front
++//   must be given in input)
++//   Dirichlet BC are used elsewhere for stressbalance
++//
++//   Usage:
++//      md=SetIceShelfBC(md,varargin)
++//
++//   Example:
++//      SetIceShelfBC(md);
++//      SetIceShelfBC(md,'Front.exp');
++//
++//   See also: SETICESHEETBC, SETMARINEICESHEETBC
++
++	//node on Dirichlet (boundary and ~icefront)
++	if (arguments.length==2){
++		icefront=arguments[1];
++		nodeinsideicefront=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2);
++		nodeonicefront=ArrayAnd(md.mesh.vertexonboundary,nodeinsideicefront);
++	}
++	else if(arguments.length==1){
++		nodeonicefront=NewArrayFill(md.mesh.numberofvertices,0);
++	}
++	else{
++		throw Error('SetIceShelfBC usage error');
++	}
++
++	md.stressbalance.spcvx=NewArrayFill(md.mesh.numberofvertices,NaN); 
++	md.stressbalance.spcvy=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.stressbalance.spcvz=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.stressbalance.referential=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.stressbalance.loadingforce=NewArrayFill(md.mesh.numberofvertices,0);
++
++	//Ice front position: 
++	pos=ArrayFind(nodeonicefront,1);
++	for(var i=0;i<pos.length;i++)md.mask.ice_levelset[pos[i]]=0;
++
++	//First find segments that are not completely on the front
++	if (md.mesh.elementtype() === 'Penta'){
++		numbernodesfront=4;
++	}
++	else if (md.mesh.elementtype() === 'Tria'){
++		numbernodesfront=2;
++	}
++	else{
++		throw Error('mesh type not supported yet');
++	}
++	var obs=false;
++	if((md.inversion.vx_obs.length == md.mesh.numberofvertices) & (md.inversion.vy_obs.length==md.mesh.numberofvertices))obs=true;
++
++
++	if(obs==true){
++		console.log('      boundary conditions for stressbalance model: setting spc as observed velocities');
++	}
++	else{
++		console.log('      boundary conditions for stressbalance model: setting spc as zero');
++	}
++	for(var i=0;i<md.mesh.segments.length;i++){
++		var sum=0;
++		for (var j=0;j<numbernodesfront;j++) sum+=md.mask.ice_levelset[md.mesh.segments[i][j]-1];
++		if(sum!=numbernodesfront){
++			for (var j=0;j<numbernodesfront;j++){
++				if(obs==false){
++					md.stressbalance.spcvx[md.mesh.segments[i][j]-1]=0;
++					md.stressbalance.spcvy[md.mesh.segments[i][j]-1]=0;
++				}
++				else{
++					md.stressbalance.spcvx[md.mesh.segments[i][j]-1]=md.inversion.vx_obs[md.mesh.segments[i][j]-1];
++					md.stressbalance.spcvy[md.mesh.segments[i][j]-1]=md.inversion.vy_obs[md.mesh.segments[i][j]-1];
++				}
++				md.stressbalance.spcvz[md.mesh.segments[i][j]-1]=0;
++
++			}
++		}
++	}
++
++	//Initialize surface and basal forcings
++	md.smb.initialize(md);
++	md.basalforcings.initialize(md);
++
++	//Deal with other boundary conditions
++	if (md.balancethickness.thickening_rate === NaN){
++		md.balancethickness.thickening_rate=NewArrayFill(md.mesh.numberofvertices,0);
++		console.log('      no balancethickness.thickening_rate specified: values set as zero');
++	}
++		
++	md.masstransport.spcthickness=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.balancethickness.spcthickness=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.damage.spcdamage=NewArrayFill(md.mesh.numberofvertices,NaN);
++
++	if (md.initialization.temperature.length==md.mesh.numberofvertices){
++		md.thermal.spctemperature=NewArrayFill(md.mesh.numberofvertices,NaN);
++		if ('vertexonsurface' in md.mesh){
++			pos=ArrayFind(md.mesh.vertexonsurface,1);
++			for(var i=0;i<pos.length;i++)md.thermal.spctemperature[i]=md.initialization.temperature[i]; //impose observed temperature on surface
++		}
++		if (md.basalforcings.geothermalflux.length != md.mesh.numberofvertices){
++			md.basalforcings.geothermalflux=NewArrayFill(md.mesh.numberofvertices,0);
++		}
++	}
++	else{
++		console.log('      no thermal boundary conditions created: no observed temperature found');
++	}
++}
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19758)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19759)
+@@ -14,7 +14,7 @@
+ 	//   See also: PLOTMODEL, PROCESSMESH
+ 
+ 	//check format
+-	if ( data.length ==0 | data === [] | typeof data === 'number' | ArrayAnyNaN(data)){
++	if ( data.length ==0 | data === [] | typeof data === 'number' | data === NaN ){
+ 		throw Error('plotmodel error message: data provided is empty');
+ 	}
+ 
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19759)
+@@ -0,0 +1,22 @@
++//OUTPUTDEFINITION class definition
++//
++//   Usage:
++//      outputdefinition=new outputdefinition();
++
++function outputdefinition (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++		this.definitions={};
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   outputdefinition:'));
++		fielddisplay(this,'definitions','list of potential outputs that can be requested, but which need additional data to be defined');
++
++
++	}// }}}
++	//properties 
++	// {{{
++	this.definitions                 = {};
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/flaim.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flaim.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/flaim.js	(revision 19759)
+@@ -0,0 +1,58 @@
++//FLAIM class definition
++//
++//   Usage:
++//      flaim=new flaim();
++
++function flaim (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   FLAIM - Flight Line Adaptation using Ice sheet Modeling:')); 
++
++		console.log(sprintf('\n      Input:'));
++		fielddisplay(this,'targets'            ,'name of kml output targets file ');
++		fielddisplay(this,'tracks'             ,'name of kml input tracks file ');
++		fielddisplay(this,'flightreqs'         ,'structure of kml flight requirements (not used yet)');
++		fielddisplay(this,'criterion'          ,'element or nodal criterion for flight path evaluation (metric)');
++
++		console.log(sprintf('\n      Arguments:'));
++		fielddisplay(this,'gridsatequator'     ,'number of grids at equator (determines resolution)');
++		fielddisplay(this,'usevalueordering'   ,'flag to consider target values for flight path evaluation');
++		fielddisplay(this,'split_antimeridian' ,'flag to split polygons on the antimeridian');
++
++		console.log(sprintf('\n      Optimization:'));
++		fielddisplay(this,'path_optimize'     ,'optimize? (default false)');
++		fielddisplay(this,'opt_ndir'     ,['number of directions to test when moving a point.  If this value = 1, a random direction is tested.',...
++				'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.',...
++				'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].']);
++		fielddisplay(this,'opt_dist'     ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration');
++		fielddisplay(this,'opt_niter'     ,['number of iterations (default 30,000) to run for flightplan optimization',...
++				'i.e. the number of times to randomly select a point and move it.']);
++
++		console.log(sprintf('\n      Output:'));
++		fielddisplay(this,'solution'           ,'name of kml solution file');
++		fielddisplay(this,'quality'            ,'quality of kml solution');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.targets            = '';
++	this.tracks             = '';
++	this.flightreqs         = {};
++	this.criterion          = NaN;
++	this.gridsatequator     = 200000;
++	this.usevalueordering   = true;
++	this.split_antimeridian = true;
++	this.solution           = '';
++	this.quality            = 0;
++	this.path_optimize      = false;
++	this.opt_ndir           = 1;
++	this.opt_dist           = 25;
++	this.opt_niter          = 30000;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19758)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19759)
+@@ -92,6 +92,7 @@
+ 	this.referential            = NaN;
+ 	this.loadingforce           = NaN;
+ 	this.requested_outputs      = ['']
++
+ 	this.setdefaultparameters();
+ 	//}}}
+ }
+Index: ../trunk-jpl/src/m/classes/steadystate.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/steadystate.js	(revision 19759)
+@@ -0,0 +1,39 @@
++//STEADYSTATE class definition
++//
++//   Usage:
++//      steadystate=new steadystate();
++
++function steadystate (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//maximum of steady state iterations
++		this.maxiter=100;
++
++		//Relative tolerance for the steadystate convertgence
++		this.reltol=0.01;
++
++		//default output
++		this.requested_outputs=['default'];
++
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   steadystate solution parameters:'));
++
++		fielddisplay(this,'reltol','relative tolerance criterion');
++		fielddisplay(this,'maxiter','maximum number of iterations');
++		fielddisplay(this,'requested_outputs','additional requested outputs');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.reltol            = 0;
++	this.maxiter           = 0;
++	this.requested_outputs = [];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 19759)
+@@ -0,0 +1,114 @@
++//QMU class definition
++//
++//   Usage:
++//      qmu=new qmu();
++
++function qmu (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   qmu parameters:'));
++
++		/*fielddisplay(this,'isdakota','is qmu analysis activated?');
++		for (var i=0;i<this.variables.length;i++){
++			console.log(sprintf('         variables%s:  (arrays of each variable class)',...
++						string_dim(this.variables,i)));
++		}
++		fnames=fieldnames(this.variables(i));
++		maxlen=0;
++		for j=1:numel(fnames)
++			maxlen=max(maxlen,length(fnames{j}));
++		end
++
++			for j=1:numel(fnames)
++				console.log(sprintf(['            %-' num2str(maxlen+1) 's:    [%ix%i]    ''%s'''],...
++							fnames{j},size(this.variables.(fnames{j})),class(this.variables.(fnames{j}))));
++		end
++			end
++			for i=1:numel(this.responses)
++				console.log(sprintf('         responses%s:  (arrays of each response class)',...
++							string_dim(this.responses,i)));
++		fnames=fieldnames(this.responses(i));
++		maxlen=0;
++		for j=1:numel(fnames)
++			maxlen=max(maxlen,length(fnames{j}));
++		end
++
++			for j=1:numel(fnames)
++				console.log(sprintf(['            %-' num2str(maxlen+1) 's:    [%ix%i]    ''%s'''],...
++							fnames{j},size(this.responses.(fnames{j})),class(this.responses.(fnames{j}))));
++		end
++			end
++			fielddisplay(this,'numberofresponses','number of responses') 
++			for i=1:numel(this.method);
++		if strcmp(class(this.method(i)),'dakota_method')
++			console.log(sprintf('            method%s :    ''%s''',...
++						string_dim(this.method,i),this.method(i).method));
++		end
++			end
++			for i=1:numel(this.params)
++				console.log(sprintf('         params%s:  (array of method-independent parameters)',...
++							string_dim(this.params,i)));
++		fnames=fieldnames(this.params(i));
++		maxlen=0;
++		for j=1:numel(fnames)
++			maxlen=max(maxlen,length(fnames{j}));
++		end
++
++			for j=1:numel(fnames)
++				console.log(sprintf(['            %-' num2str(maxlen+1) 's: %s'],...
++							fnames{j},any2str(this.params(i).(fnames{j}))));
++		end
++			end
++			for i=1:numel(this.results)
++				console.log(sprintf('         results%s:  (information from dakota files)',...
++							string_dim(this.results,i)));
++		fnames=fieldnames(this.results(i));
++		maxlen=0;
++		for j=1:numel(fnames)
++			maxlen=max(maxlen,length(fnames{j}));
++		end
++
++			for j=1:numel(fnames)
++				console.log(sprintf(['            %-' num2str(maxlen+1) 's:    [%ix%i]    ''%s'''],...
++							fnames{j},size(this.results.(fnames{j})),class(this.results.(fnames{j}))));
++		end
++			end
++			fielddisplay(this,'partition','user provided mesh partitioning, defaults to metis if not specified') 
++			fielddisplay(this,'numberofpartitions','number of partitions for semi-discrete qmu') 
++			fielddisplay(this,'variabledescriptors','');
++		fielddisplay(this,'responsedescriptors','');
++		fielddisplay(this,'method','array of dakota_method class');
++		fielddisplay(this,'mass_flux_profile_directory','directory for mass flux profiles');
++		fielddisplay(this,'mass_flux_profiles','list of mass_flux profiles');
++		fielddisplay(this,'mass_flux_segments','');
++		fielddisplay(this,'adjacency','');
++		fielddisplay(this,'vertex_weight','weight applied to each mesh vertex');
++		*/
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.isdakota                    = 0;
++	this.variables                   = {};
++	this.responses                   = {};
++	this.method                      = {};
++	this.params                      = {};
++	this.results                     = {};
++	this.partition                   = NaN;
++	this.numberofpartitions          = 0;
++	this.numberofresponses           = 0;
++	this.variabledescriptors         = {};
++	this.responsedescriptors         = {};
++	this.mass_flux_profile_directory = NaN;
++	this.mass_flux_profiles          = NaN;
++	this.mass_flux_segments          = {};
++	this.adjacency                   = NaN;
++	this.vertex_weight               = NaN;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/miscellaneous.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19759)
+@@ -0,0 +1,27 @@
++//MISCELLANEOUS class definition
++//
++//   Usage:
++//      miscellaneous=new miscellaneous();
++
++function miscellaneous (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   miscellaneous parameters:'));
++
++		fielddisplay(this,'notes','notes in a cell of strings');
++		fielddisplay(this,'name','model name');
++		fielddisplay(this,'dummy','empty field to store some data');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.notes = '';
++	this.name  = '';
++	this.dummy = {};
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19759)
+@@ -0,0 +1,67 @@
++//THERMAL class definition
++//
++//   Usage:
++//      thermal=new thermal();
++
++function thermal (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//Number of unstable constraints acceptable
++		this.penalty_threshold=0;
++
++		//Type of stabilization used
++		this.stabilization=1;
++
++		//Relative tolerance for the enthalpy convergence
++		this.reltol=0.01;
++
++		//Maximum number of iterations
++		this.maxiter=100;
++
++		//factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor
++		this.penalty_factor=3;
++
++		//Should we use cold ice (default) or enthalpy formulation
++		this.isenthalpy=0;
++
++		//will basal boundary conditions be set dynamically
++		this.isdynamicbasalspc=0;
++
++		//default output
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   Thermal solution parameters:'));
++
++		fielddisplay(this,'spctemperature','temperature constraints (NaN means no constraint) [K]');
++		fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG');
++		fielddisplay(this,'reltol','relative tolerance convergence criterion for enthalpy');
++		fielddisplay(this,'maxiter','maximum number of non linear iterations');
++		fielddisplay(this,'penalty_lock','stabilize unstable thermal constraints that keep zigzagging after n iteration (default is 0, no stabilization)');
++		fielddisplay(this,'penalty_threshold','threshold to declare convergence of thermal solution (default is 0)');
++		fielddisplay(this,'penalty_factor','scaling exponent (default is 3)');
++		fielddisplay(this,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)');
++		fielddisplay(this,'isdynamicbasalspc',['enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)']);
++		fielddisplay(this,'requested_outputs','additional outputs requested');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.spctemperature    = NaN;
++	this.penalty_threshold = 0;
++	this.stabilization     = 0;
++	this.reltol				= 0;
++	this.maxiter           = 0;
++	this.penalty_lock      = 0;
++	this.penalty_factor    = 0;
++	this.isenthalpy        = 0;
++	this.isdynamicbasalspc = 0;
++	this.requested_outputs = [];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19759)
+@@ -0,0 +1,31 @@
++//GIA class definition
++//
++//   Usage:
++//      gia=new gia();
++
++function gia (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		this.cross_section_shape=1; //square as default (see iedge in GiaDeflectionCorex)
++	
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   gia parameters:'));
++
++		fielddisplay(this,'mantle_viscosity','mantle viscosity[Pa s]');
++		fielddisplay(this,'lithosphere_thickness','lithosphere thickness (km)');
++		fielddisplay(this,'cross_section_shape','1: square-edged (default). 2: elliptical.  See iedge in GiaDeflectionCore');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.mantle_viscosity              = NaN;
++	this.lithosphere_thickness         = NaN;
++	this.cross_section_shape           = 0;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19759)
+@@ -0,0 +1,30 @@
++//BALANCETHICKNESS class definition
++//
++//   Usage:
++//      balancethickness=new balancethickness();
++
++function balancethickness (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//Type of stabilization used
++		this.stabilization=1;
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   balance thickness solution parameters:'));
++
++		fielddisplay(this,'spcthickness','thickness constraints (NaN means no constraint) [m]');
++		fielddisplay(this,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]');
++		fielddisplay(this,"stabilization','0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
++
++	}// }}}
++	//properties 
++	// {{{
++	this.spcthickness      = NaN;
++	this.thickening_rate   = NaN;
++	this.stabilization     = 0;
++	this.omega             = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19759)
+@@ -0,0 +1,33 @@
++//CALVING class definition
++//
++//   Usage:
++//      calving=new calving();
++
++function calving (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//stabilization = 2 by default
++		this.stabilization = 2;
++	
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   Calving parameters:'));
++		fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++		fielddisplay(this,'spclevelset','Levelset constraints (NaN means no constraint)');
++		fielddisplay(this,'calvingrate','calving rate at given location [m/a]');
++		fielddisplay(this,'meltingrate','melting rate at given location [m/a]');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.stabilization = 0;
++	this.spclevelset   = NaN;
++	this.calvingrate   = NaN;
++	this.meltingrate   = NaN;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19758)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19759)
+@@ -12,6 +12,14 @@
+ 		fielddisplay(this,'mass_balance','surface mass balance [m/yr ice eq]');
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 	} // }}}
++		this.initialize = function(md) {// {{{
++
++			if (self.mass_balance === NaN){
++				self.mass_balance=NewArrayFill(md.mesh.numberofvertices,0);
++				console.log('      no smb.mass_balance specified: values set as zero');
++			}
++
++		} // }}}
+ 	//properties 
+ 	this.mass_balance = NaN;
+ 	this.requested_outputs      = [''];
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19759)
+@@ -0,0 +1,54 @@
++//MASSTRANSPORT class definition
++//
++//   Usage:
++//      masstransport=new masstransport();
++
++function masstransport (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin
++		this.stabilization=1;
++
++		//Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor
++		this.penalty_factor=3;
++
++		//Minimum ice thickness that can be used
++		this.min_thickness=1;
++
++		//Hydrostatic adjustment
++		this.hydrostatic_adjustment='Absolute';
++
++		//default output
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   Masstransport solution parameters:'));
++		fielddisplay(this,'spcthickness','thickness constraints (NaN means no constraint) [m]');
++		fielddisplay(this,'isfreesurface','do we use free surfaces (FS only) are mass conservation');
++		fielddisplay(this,'min_thickness','minimum ice thickness allowed [m]');
++		fielddisplay(this,'hydrostatic_adjustment',"adjustment of ice shelves surface and bed elevations: 'Incremental' or 'Absolute' ");
++		fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin, 4: Flux Correction Transport');
++
++		console.log(sprintf('\n      %s','Penalty options:'));
++		fielddisplay(this,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset');
++		fielddisplay(this,'vertex_pairing','pairs of vertices that are penalized');
++		fielddisplay(this,'requested_outputs','additional outputs requested');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.spcthickness           = NaN;
++	this.isfreesurface          = 0;
++	this.min_thickness          = 0;
++	this.hydrostatic_adjustment = 0;
++	this.stabilization          = 0;
++	this.vertex_pairing         = NaN;
++	this.penalty_factor         = 0;
++	this.requested_outputs      = [''];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19759)
+@@ -0,0 +1,27 @@
++//HYDROLOGYSHREVE class definition
++//
++//   Usage:
++//      hydrologyshreve=new hydrologyshreve();
++
++function hydrologyshreve (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//Type of stabilization to use 0:nothing 1:artificial_diffusivity
++		self.stabilization=1;
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   hydrologyshreve solution parameters:'));
++		fielddisplay(this,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
++		fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.spcwatercolumn = NaN;
++	this.stabilization  = 0;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/private.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/private.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/private.js	(revision 19759)
+@@ -0,0 +1,27 @@
++//PRIVATE class definition
++//
++//   Usage:
++//      private=new private();
++
++function private (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   private parameters: do not change'));
++
++		fielddisplay(this,'isconsistent','is model this consistent');
++		fielddisplay(this,'runtimename','name of the run launched');
++		fielddisplay(this,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain');
++		fielddisplay(this,'solution','type of solution launched');
++	}// }}}
++	//properties 
++	// {{{
++	this.isconsistent = true;
++	this.runtimename  = '';
++	this.bamg         = {};
++	this.solution     = '';
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/inversion.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/inversion.js	(revision 19759)
+@@ -0,0 +1,101 @@
++//INVERSION class definition
++//
++//   Usage:
++//      inversion=new inversion();
++
++function inversion (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//default is incomplete adjoint for now
++		this.incomplete_adjoint=1;
++
++		//parameter to be inferred by control methods (only
++		//drag and B are supported yet)
++		this.control_parameters=['FrictionCoefficient'];
++
++		//number of steps in the control methods
++		this.nsteps=20;
++
++		//maximum number of iteration in the optimization algorithm for
++		//each step
++		this.maxiter_per_step=20*NewArrayFill(this.nsteps,1);
++
++		//the inversed parameter is updated as follows:
++		//new_par=old_par + gradient_scaling(n)*C*gradient with C in [0 1];
++		//usually the gradient_scaling must be of the order of magnitude of the 
++		//inversed parameter (10^8 for B, 50 for drag) and can be decreased
++		//after the first iterations
++		this.gradient_scaling=NewArrayFill(this.nsteps,50);
++
++		//several responses can be used:
++		this.cost_functions=101;
++
++		//step_threshold is used to speed up control method. When
++		//misfit(1)/misfit(0) < this.step_threshold, we go directly to
++		//the next step
++		this.step_threshold=NewArrayFill(this.nsteps,.7); //30 per cent decrement.
++
++		//cost_function_threshold is a criteria to stop the control methods.
++		//if J[n]-J[n-1]/J[n] < criteria, the control run stops
++		//NaN if not applied
++		this.cost_function_threshold=NaN; //not activated
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   inversion parameters:'));
++		fielddisplay(this,'iscontrol','is inversion activated?');
++		fielddisplay(this,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity');
++		fielddisplay(this,'control_parameters',"ex: {'FrictionCoefficient'}, or {'MaterialsRheologyBbar'}");
++		fielddisplay(this,'nsteps','number of optimization searches');
++		fielddisplay(this,'cost_functions','indicate the type of response for each optimization step');
++		fielddisplay(this,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter');
++		fielddisplay(this,'cost_function_threshold','misfit convergence criterion. Default is 1%, NaN if not applied');
++		fielddisplay(this,'maxiter_per_step','maximum iterations during each optimization step');
++		fielddisplay(this,'gradient_scaling','scaling factor on gradient direction during optimization, for each optimization step');
++		fielddisplay(this,'step_threshold','decrease threshold for misfit, default is 30%');
++		fielddisplay(this,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex');
++		fielddisplay(this,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex');
++		fielddisplay(this,'vx_obs','observed velocity x component [m/yr]');
++		fielddisplay(this,'vy_obs','observed velocity y component [m/yr]');
++		fielddisplay(this,'vel_obs','observed velocity magnitude [m/yr]');
++		fielddisplay(this,'thickness_obs','observed thickness [m]');
++		fielddisplay(this,'surface_obs','observed surface elevation [m]');
++		console.log('Available cost functions:');
++		console.log('   101: SurfaceAbsVelMisfit');
++		console.log('   102: SurfaceRelVelMisfit');
++		console.log('   103: SurfaceLogVelMisfit');
++		console.log('   104: SurfaceLogVxVyMisfit');
++		console.log('   105: SurfaceAverageVelMisfit');
++		console.log('   201: ThicknessAbsMisfit');
++		console.log('   501: DragCoefficientAbsGradient');
++		console.log('   502: RheologyBbarAbsGradient');
++		console.log('   503: ThicknessAbsGradient');
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.iscontrol                   = 0;
++	this.incomplete_adjoint          = 0;
++	this.control_parameters          = NaN;
++	this.nsteps                      = 0;
++	this.maxiter_per_step            = NaN;
++	this.cost_functions              = NaN;
++	this.cost_functions_coefficients = NaN;
++	this.gradient_scaling            = NaN;
++	this.cost_function_threshold     = 0;
++	this.min_parameters              = NaN;
++	this.max_parameters              = NaN;
++	this.step_threshold              = NaN;
++	this.vx_obs                      = NaN;
++	this.vy_obs                      = NaN;
++	this.vz_obs                      = NaN;
++	this.vel_obs                     = NaN;
++	this.thickness_obs               = NaN;
++	this.surface_obs                 = NaN;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19758)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19759)
+@@ -16,6 +16,19 @@
+ 		fielddisplay(this,'geothermalflux','geothermal heat flux [W/m^2]');
+ 
+ 	} // }}}
++		this.initialize = function (md){ // {{{
++
++			if (this.groundedice_melting_rate === NaN){
++				this.groundedice_melting_rate=NewArrayFill(md.mesh.numberofvertices,0);
++				console.log('      no basalforcings.groundedice_melting_rate specified: values set as zero');
++			}
++
++			if (this.floatingice_melting_rate === NaN){
++				this.floatingice_melting_rate=NewArrayFill(md.mesh.numberofvertices,0);
++				console.log('      no basalforcings.floatingice_melting_rate specified: values set as zero');
++			}
++
++		} // }}}
+ 	//properties 
+ 	//{{{
+ 	this.groundedice_melting_rate  = NaN;
+Index: ../trunk-jpl/src/m/classes/transient.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/transient.js	(revision 19759)
+@@ -0,0 +1,61 @@
++//TRANSIENT class definition
++//
++//   Usage:
++//      transient=new transient();
++
++function transient (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++		this.issmb           = 1;
++		this.ismasstransport = 1;
++		this.isstressbalance = 1;
++		this.isthermal       = 1;
++		this.isgroundingline = 0;
++		this.isgia           = 0;
++		this.isdamageevolution = 0;
++		this.islevelset      = 0;
++		this.iscalving       = 0;
++		this.ishydrology     = 0;
++
++		//default output
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   transient solution parameters:'));
++
++		fielddisplay(this,'issmb','indicates whether a surface mass balance solution is used in the transient');
++		fielddisplay(this,'ismasstransport','indicates whether a masstransport solution is used in the transient');
++		fielddisplay(this,'isstressbalance','indicates whether a stressbalance solution is used in the transient');
++		fielddisplay(this,'isthermal','indicates whether a thermal solution is used in the transient');
++		fielddisplay(this,'isgroundingline','indicates whether a groundingline migration is used in the transient');
++		fielddisplay(this,'isgia','indicates whether a postglacial rebound model is used in the transient');
++		fielddisplay(this,'isdamageevolution','indicates whether damage evolution is used in the transient');
++		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
++		fielddisplay(this,'iscalving','indicates whether calving is used in the transient');
++		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
++		fielddisplay(this,'requested_outputs','list of additional outputs requested');
++
++
++	}// }}}
++	//properties 
++	// {{{
++
++	this.issmb             = 0;
++	this.ismasstransport   = 0;
++	this.isstressbalance   = 0;
++	this.isthermal         = 0;
++	this.isgroundingline   = 0;
++	this.isgia             = 0;
++	this.isdamageevolution = 0;
++	this.islevelset        = 0;
++	this.iscalving         = 0;
++	this.ishydrology       = 0;
++	this.requested_outputs = [];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/radaroverlay.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/radaroverlay.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/radaroverlay.js	(revision 19759)
+@@ -0,0 +1,25 @@
++//RADAROVERLAY class definition
++//
++//   Usage:
++//      radaroverlay=new radaroverlay();
++
++function radaroverlay (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   radaroverlay parameters:'));
++
++		fielddisplay(this,'pwr','radar power image (matrix)');
++		fielddisplay(this,'x','corresponding x coordinates [m]');
++		fielddisplay(this,'y','corresponding y coordinates [m]');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.pwr = NaN;
++	this.x   = NaN;
++	this.y   = NaN;
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19758)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19759)
+@@ -65,7 +65,6 @@
+ 			this.verbose          = new verbose();
+ 			this.settings         = new settings();
+ 			this.toolkits         = new toolkits();
+-			this.toolkits.disp();
+ 			this.cluster          = new generic();
+ 			this.balancethickness = new balancethickness();
+ 			this.stressbalance    = new stressbalance();
+Index: ../trunk-jpl/src/m/classes/autodiff.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/autodiff.js	(revision 19759)
+@@ -0,0 +1,48 @@
++//AUTODIFF class definition
++//
++//   Usage:
++//      autodiff=new autodiff();
++
++function autodiff (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		this.obufsize     = 524288;
++		this.lbufsize     = 524288;
++		this.cbufsize     = 524288;
++		this.tbufsize     = 524288;
++		this.gcTriggerRatio=2.0;
++		this.gcTriggerMaxSize=65536;
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   automatic differentiation parameters:'));
++		fielddisplay(this,'isautodiff','indicates if the automatic differentiation is activated');
++		fielddisplay(this,'dependents','list of dependent variables');
++		fielddisplay(this,'independents','list of independent variables');
++		fielddisplay(this,'driver',"ADOLC driver ('fos_forward' or 'fov_forward')");
++		fielddisplay(this,'obufsize','Number of operations per buffer (==OBUFSIZE in usrparms.h)');
++		fielddisplay(this,'lbufsize','Number of locations per buffer (==LBUFSIZE in usrparms.h)');
++		fielddisplay(this,'cbufsize','Number of values per buffer (==CBUFSIZE in usrparms.h)');
++		fielddisplay(this,'tbufsize','Number of taylors per buffer (<=TBUFSIZE in usrparms.h)');
++		fielddisplay(this,'gcTriggerRatio','free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio');
++		fielddisplay(this,'gcTriggerMaxSize','free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize');
++
++	}// }}}
++	//properties 
++	// {{{
++	this.isautodiff   = false;
++	this.dependents   = {};
++	this.independents = {};
++	this.driver       = 'fos_forward';
++	this.obufsize     = NaN;
++	this.lbufsize     = NaN;
++	this.cbufsize     = NaN;
++	this.tbufsize     = NaN;
++	this.gcTriggerRatio = NaN;
++	this.gcTriggerMaxSize = NaN;
++
++	this.setdefaultparameters();
++	//}}}
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19759-19760.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19759-19760.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19759-19760.diff	(revision 20498)
@@ -0,0 +1,241 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19759)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19760)
+@@ -44,7 +44,7 @@
+ 
+ 	switch(datatype){
+ 
+-		//element plot
++		//element plot {{{
+ 		case 1:
+ 
+ 			pos=ArrayFindNot(data,NaN); //needed for element on water
+@@ -71,8 +71,8 @@
+ 				  patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+ 			break;
+-
+-			//node plot
++		//}}}
++		//node plot {{{
+ 		case 2:
+ 
+ 			if (elements[0].length==6){ //prisms
+@@ -114,8 +114,8 @@
+ 
+ 			}
+ 			break;
+-
+-			//quiver plot
++		//}}}
++		//quiver plot {{{
+ 		case 3:
+ 
+ 			if (is2d){
+@@ -125,8 +125,9 @@
+ 				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
+ 			}
+ 
++		//}}}
+ 		default:
+-				throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
++			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
+ 	}
+ 	
+ 	/*Initalize buffers: */
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19759)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19760)
+@@ -85,7 +85,8 @@
+ 				plot_drivingstress(md,options,subplotwidth,i);
+ 				break;
+ 			case 'mesh':
+-				plot_mesh(md,options,nlines,ncols,i);
++				//plot_mesh(md,options,nlines,ncols,i);
++				plot_mesh(md.mesh.x,md.mesh.y,[0.0],md.mesh.elements,2,options,canvas,gl);
+ 				break;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+@@ -206,22 +207,24 @@
+ 		return;
+ 	}
+ 
+-	//process data and model
+-    var meshresults = processmesh(md,data,options);
+-	var x = meshresults[0]; 
+-	var y = meshresults[1]; 
+-	var z = meshresults[2]; 
+-	var elements = meshresults[3]; 
+-	var is2d = meshresults[4]; 
+-	var isplanet = meshresults[5];
++	if (typeof data !== 'string'){
++		//process data and model
++		var meshresults = processmesh(md,data,options);
++		var x = meshresults[0]; 
++		var y = meshresults[1]; 
++		var z = meshresults[2]; 
++		var elements = meshresults[3]; 
++		var is2d = meshresults[4]; 
++		var isplanet = meshresults[5];
++		
++		var dataresults = processdata(md,data,options);
++		var data2 = dataresults[0]; 
++		var datatype = dataresults[1];
+ 
+-	var dataresults = processdata(md,data,options);
+-	var data2 = dataresults[0]; 
+-	var datatype = dataresults[1];
++		//plot unit
++		plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,canvas,gl);
++	}
+ 
+-	//plot unit
+-	plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,canvas,gl);
+-
+ 	//apply all options
+ 	if (datatype==3){
+ 		options.changefieldvalue('colorbar',2);
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19760)
+@@ -0,0 +1,137 @@
++function plot_mesh(x,y,z,elements,datatype,options,canvas,gl) {
++	//   Usage:
++	//      plot_mesh(md,options,nlines,ncols,i);
++	//
++	//   See also: PLOTMODEL
++
++	//declare variables:  {{{
++	var node;
++	var vertices = [];
++	var indices = [];
++	var colors = [];
++	var rgbcolor = [];
++	var xmin,xmax;
++	var ymin,ymax;
++	var zmin,zmax;
++	var scale;
++	//}}}
++
++	//Initialize the buffer structure: 
++	node = Node(gl,options);
++
++	//Compute coordinates and data range: 
++	xmin = ArrayMin(x);
++	xmax = ArrayMax(x);
++	ymin = ArrayMin(y);
++	ymax = ArrayMax(y);
++	zmin = ArrayMin(z);
++	zmax = ArrayMax(z);
++
++	//Compute scaling: 
++	var scale = 1 / (xmax - xmin);
++	node["scale"] = [scale, scale, scale];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["modelMatrix"] = recalculateModelMatrix(node);
++	node["drawMode"] = gl.LINES;
++				
++	//some defaults:
++	colors.itemSize = 4;
++
++	//retrieve some options
++	var linewidth=options.getfieldvalue('linewidth',1);
++	var edgecolor=options.getfieldvalue('edgecolor','black');
++
++	/*//plot mesh
++	if (is2d){
++		A=elements(:,1); B=elements(:,2); C=elements(:,3); 
++		patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++	}
++	*/
++	
++	// populate arrays {{{
++	switch(datatype){
++		//element plot {{{
++		case 1:
++			break;
++		//}}}
++		//node plot {{{
++		case 2:
++			if (elements[0].length==6){ //prisms
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
++				patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				*/
++			}
++			else if (elements[0].length==4){ //tetras
++				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
++				patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++				*/
++			}
++			else{ //2D triangular elements
++				vertices.itemSize = 3;
++				for(var i = 0; i < x.length; i++){
++					vertices[vertices.length] = x[i];
++					vertices[vertices.length] = y[i];
++					//vertices[vertices.length] = z[i];
++					vertices[vertices.length] = 0;
++
++					//handle mesh/qinterest size mismatch
++					rgbcolor = [0.0, 0.0, 0.0];
++					colors[colors.length] = rgbcolor[0];
++					colors[colors.length] = rgbcolor[1];
++					colors[colors.length] = rgbcolor[2];
++					colors[colors.length] = 1.0;
++				}
++
++				//linearize the elements array: 
++				
++				for(var i = 0; i < elements.length; i++){
++					//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity
++					//matlab indices from 1, so decrement indices.
++					indices[indices.length] = elements[i][0] - 1;
++					indices[indices.length] = elements[i][1] - 1;
++					indices[indices.length] = elements[i][1] - 1;
++					indices[indices.length] = elements[i][2] - 1;
++					indices[indices.length] = elements[i][2] - 1;
++					indices[indices.length] = elements[i][0] - 1;
++				}
++				indices.itemSize = 1;
++			}
++			break;
++		//}}}
++		//quiver plot {{{
++		case 3:
++
++			if (is2d){
++				//plot_quiver(x,y,data(:,1),data(:,2),options);
++			}
++			else{
++				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
++			}
++
++		//}}}
++		default:
++			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
++	}
++	//}}}
++
++	/*//apply options
++	options=addfielddefault(options,'title','Mesh');
++	options=addfielddefault(options,'colorbar',0);
++	applyoptions(md,[],options);
++	*/
++
++	/*Initalize buffers: */
++	node["arrays"] = [vertices, colors, indices];
++	node["buffers"] = initBuffers(gl, node["arrays"]);
++	
++	/*Draw into the canvas:*/
++	console.log(node);
++	draw(gl,options,canvas,node);
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19760-19761.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19760-19761.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19760-19761.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/externalpackages/adolc/install-withampi-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/adolc/install-withampi-macosx64.sh	(revision 19760)
++++ ../trunk-jpl/externalpackages/adolc/install-withampi-macosx64.sh	(revision 19761)
+@@ -4,7 +4,8 @@
+ #Some cleanup
+ rm -rf install src
+ 
+-git clone -b ampi git://git.mcs.anl.gov/adol-c.git src
++git clone https://gitlab.com/adol-c/adol-c.git src
++#git clone -b ampi git://git.mcs.anl.gov/adol-c.git src
+ #git reset --hard b254b2a001a1b7a024a9184cd087ae06eb975cad
+ 
+ #Compile ADOL-C
Index: /issm/oecreview/Archive/19101-20495/ISSM-19761-19762.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19761-19762.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19761-19762.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19761)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 19762)
+@@ -713,7 +713,7 @@
+ 	int         i,rheology_law;
+ 	int        *doflist   = NULL;
+ 	IssmDouble *xyz_list  = NULL;
+-	bool        hack      = true;
++	bool        hack      = false;
+ 
+ 	/*Fetch number of nodes and dof for this finite element*/
+ 	int numnodes = element->GetNumberOfNodes();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19762-19763.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19762-19763.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19762-19763.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19762)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19763)
+@@ -96,8 +96,7 @@
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
+-					//vertices[vertices.length] = z[i];
+-					vertices[vertices.length] = 0;
++					vertices[vertices.length] = z[i];
+ 
+ 					//handle mesh/qinterest size mismatch
+ 					rgbcolor = rgb(data[i], datamin, datamax);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19763-19764.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19763-19764.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19763-19764.diff	(revision 20498)
@@ -0,0 +1,436 @@
+Index: ../trunk-jpl/test/NightlyRun/test314.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.m	(revision 19763)
++++ ../trunk-jpl/test/NightlyRun/test314.m	(revision 19764)
+@@ -4,18 +4,18 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
+ md=setflowequation(md,'SIA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea','IceVolume'};
++md.transient.requested_outputs={'default','GroundedArea','FloatingArea','IceVolume'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+ field_names     ={...
+-	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'};
++	'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3'};
+ field_tolerances={...
+-	1e-13 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13...
+-	1e-10 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13...
+-	1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13,    1e-13};
++	1e-13 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13 , 1e-13...
++	1e-10 , 1e-13   , 1e-13   , 1e-13 , 1e-13 , 1e-13 , 1e-13   , 1e-13 , 1e-13...
++	1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13,    1e-13 , 1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -25,6 +25,7 @@
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).GroundedArea),...
++	(md.results.TransientSolution(1).FloatingArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -33,6 +34,7 @@
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).GroundedArea),...
++	(md.results.TransientSolution(2).FloatingArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -41,4 +43,5 @@
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).GroundedArea),...
++	(md.results.TransientSolution(3).FloatingArea),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 19763)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 19764)
+@@ -14,13 +14,13 @@
+ md.extrude(3,1.)
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea']
++md.transient.requested_outputs=['default','GroundedArea','FloatingArea']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',\
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',\
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea'\
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea',\
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea']
+ field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+ 		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+ 		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12]
+@@ -36,6 +36,7 @@
+ 	md.results.TransientSolution[0].Temperature,\
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[0].GroundedArea,\
++	md.results.TransientSolution[0].FloatingArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -47,6 +48,7 @@
+ 	md.results.TransientSolution[1].Temperature,\
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[1].GroundedArea,\
++	md.results.TransientSolution[1].FloatingArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -58,4 +60,5 @@
+ 	md.results.TransientSolution[2].Temperature,\
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[2].GroundedArea,\
++	md.results.TransientSolution[2].FloatingArea,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test317.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.m	(revision 19763)
++++ ../trunk-jpl/test/NightlyRun/test317.m	(revision 19764)
+@@ -5,16 +5,16 @@
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea'};
++md.transient.requested_outputs={'default','GroundedArea','FloatingArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'};
+-field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
+-	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1',...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3'};
++field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
++	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -27,6 +27,7 @@
+ 	(md.results.TransientSolution(1).Temperature),...
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(1).GroundedArea),...
++	(md.results.TransientSolution(1).FloatingArea),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -38,6 +39,7 @@
+ 	(md.results.TransientSolution(2).Temperature),...
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(2).GroundedArea),...
++	(md.results.TransientSolution(2).FloatingArea),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -49,4 +51,5 @@
+ 	(md.results.TransientSolution(3).Temperature),...
+ 	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(3).GroundedArea),...
++	(md.results.TransientSolution(3).FloatingArea),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test314.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test314.py	(revision 19763)
++++ ../trunk-jpl/test/NightlyRun/test314.py	(revision 19764)
+@@ -13,18 +13,18 @@
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
+ md=setflowequation(md,'SIA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea','IceVolume']
++md.transient.requested_outputs=['default','GroundedArea','FloatingArea','IceVolume']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+ field_names     =[
+-'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',
+-'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',
+-'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
++'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1',
++'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2',
++'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3']
+ field_tolerances=[
+-		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
+-		1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
+-		1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
++		1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
++		1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -34,6 +34,7 @@
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].GroundedArea,\
++	md.results.TransientSolution[0].FloatingArea,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -42,6 +43,7 @@
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].GroundedArea,\
++	md.results.TransientSolution[1].FloatingArea,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -50,4 +52,5 @@
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].GroundedArea,\
++	md.results.TransientSolution[2].FloatingArea,\
+ 	]
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19763)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19764)
+@@ -901,6 +901,7 @@
+ 	MinVzEnum,
+ 	MaxVzEnum,
+ 	MaxAbsVzEnum,
++	FloatingAreaEnum,
+ 	GroundedAreaEnum,
+ 	IceMassEnum,
+ 	IceVolumeEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19763)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19764)
+@@ -879,6 +879,7 @@
+ 		case MinVzEnum : return "MinVz";
+ 		case MaxVzEnum : return "MaxVz";
+ 		case MaxAbsVzEnum : return "MaxAbsVz";
++		case FloatingAreaEnum : return "FloatingArea";
+ 		case GroundedAreaEnum : return "GroundedArea";
+ 		case IceMassEnum : return "IceMass";
+ 		case IceVolumeEnum : return "IceVolume";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19763)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19764)
+@@ -900,6 +900,7 @@
+ 	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
+ 	      else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
+ 	      else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
++	      else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
+ 	      else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
+ 	      else if (strcmp(name,"IceMass")==0) return IceMassEnum;
+ 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19763)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19764)
+@@ -1008,6 +1008,7 @@
+ 					case IceVolumeEnum:                this->IceVolumex(&double_result);                break;
+ 					case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break;
+ 					case GroundedAreaEnum:             this->GroundedAreax(&double_result);             break;
++					case FloatingAreaEnum:             this->FloatingAreax(&double_result);             break;
+ 					case MinVelEnum:                   this->MinVelx(&double_result);                   break;
+ 					case MaxVelEnum:                   this->MaxVelx(&double_result);                   break;
+ 					case MinVxEnum:                    this->MinVxx(&double_result);                    break;
+@@ -1614,6 +1615,22 @@
+ 	*pdiv=max_divergence;
+ 
+ }/*}}}*/
++void FemModel::FloatingAreax(IssmDouble* pV){/*{{{*/
++
++	IssmDouble local_floating_area= 0;
++	IssmDouble total_floating_area;
++
++	for(int i=0;i<this->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
++		local_floating_area+=element->FloatingArea();
++	}
++	ISSM_MPI_Reduce(&local_floating_area,&total_floating_area,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&total_floating_area,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Assign output pointers: */
++	*pV=total_floating_area;
++
++}/*}}}*/
+ void FemModel::GetInputLocalMinMaxOnNodesx(IssmDouble** pmin,IssmDouble** pmax,IssmDouble* ug){/*{{{*/
+ 
+ 	/*Get vector sizes for current configuration*/
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19764)
+@@ -193,6 +193,7 @@
+ 		virtual void       ElementResponse(IssmDouble* presponse,int response_enum)=0;
+ 		virtual void       ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0;
+ 		virtual int        FiniteElement(void)=0;
++		virtual IssmDouble FloatingArea(void)=0;
+ 		virtual void       FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating)=0;
+ 		virtual Element*   GetBasalElement(void)=0;
+ 		virtual int        GetElementType(void)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19764)
+@@ -910,6 +910,27 @@
+ 	return this->element_type;
+ }
+ /*}}}*/
++IssmDouble Tria::FloatingArea(void){/*{{{*/
++
++	/*Intermediaries*/
++	int         domaintype;
++	IssmDouble  phi;
++	IssmDouble *xyz_list  = NULL;
++
++	if(!IsIceInElement())return 0.;
++
++	/*Get problem dimension*/
++	this->FindParam(&domaintype,DomainTypeEnum);
++	if(domaintype!=Domain2DhorizontalEnum && domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++
++	this->GetVerticesCoordinates(&xyz_list);
++	phi=this->GetGroundedPortion(xyz_list);
++
++	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
++	return (1-phi)*this->GetArea();
++}
++/*}}}*/
+ void       Tria::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){/*{{{*/
+ 
+ 	if(!IsOnBase()) return;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19764)
+@@ -72,6 +72,7 @@
+ 		void        ElementResponse(IssmDouble* presponse,int response_enum);
+ 		void        ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
+ 		int         FiniteElement(void);
++		IssmDouble  FloatingArea(void);
+ 		void        FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
+ 		Element*    GetBasalElement(void){_error_("not implemented yet");};
+ 		void        GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 19764)
+@@ -654,6 +654,27 @@
+ 	return this->element_type;
+ }
+ /*}}}*/
++IssmDouble Penta::FloatingArea(void){/*{{{*/
++
++	/*Intermediaries*/
++	int         domaintype;
++	IssmDouble  phi,base_area;
++	IssmDouble  xyz_list[NUMVERTICES][3];
++
++	if(!IsIceInElement() || !IsOnBase())return 0.;
++
++	/*Get problem dimension*/
++	this->FindParam(&domaintype,DomainTypeEnum);
++	if(domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++	phi=this->GetGroundedPortion(&xyz_list[0][0]);
++	base_area= 1./2.*fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++
++	/*Clean up and return*/
++	return (1-phi)*base_area;
++}
++/*}}}*/
+ void       Penta::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){/*{{{*/
+ 
+ 	if(!IsOnBase()) return;
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19764)
+@@ -61,6 +61,7 @@
+ 		void           ElementResponse(IssmDouble* presponse,int response_enum);
+ 		void           ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
+ 		int            FiniteElement(void);
++		IssmDouble     FloatingArea(void);
+ 		void           FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
+ 		void           GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints);
+ 		Element*       GetBasalElement(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19764)
+@@ -55,8 +55,9 @@
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
+ 		void        ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};
+ 		void        ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");};
++		int         FiniteElement(void);
++		IssmDouble  FloatingArea(void){_error_("not implemented yet");};
+ 		void        FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");};
+-		int         FiniteElement(void);
+ 		Element*    GetBasalElement(void){_error_("not implemented yet");};
+ 		int         GetElementType(void){_error_("not implemented yet");};
+ 		void        GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19764)
+@@ -60,6 +60,7 @@
+ 		void        FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3);
+ 		void        FaceOnSurfaceIndices(int* pindex1,int* pindex2,int* pindex3);
+ 		int         FiniteElement(void);
++		IssmDouble  FloatingArea(void){_error_("not implemented yet");};
+ 		void        FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");};
+ 		Element*    GetBasalElement(void){_error_("not implemented yet");};
+ 		int         GetElementType(void);
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19763)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19764)
+@@ -81,6 +81,7 @@
+ 		void TotalSmbx(IssmDouble* pSmb);
+ 		void Divergencex(IssmDouble* pdiv);
+ 		void MaxDivergencex(IssmDouble* pdiv);
++		void FloatingAreax(IssmDouble* pV);
+ 		void GroundedAreax(IssmDouble* pV);
+ 		void IceMassx(IssmDouble* pV);
+ 		void IceVolumex(IssmDouble* pV);
+Index: ../trunk-jpl/src/m/enum/FloatingAreaEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FloatingAreaEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FloatingAreaEnum.m	(revision 19764)
+@@ -0,0 +1,11 @@
++function macro=FloatingAreaEnum()
++%FLOATINGAREAENUM - Enum of FloatingArea
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FloatingAreaEnum()
++
++macro=StringToEnum('FloatingArea');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19763)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19764)
+@@ -871,6 +871,7 @@
+ def MinVzEnum(): return StringToEnum("MinVz")[0]
+ def MaxVzEnum(): return StringToEnum("MaxVz")[0]
+ def MaxAbsVzEnum(): return StringToEnum("MaxAbsVz")[0]
++def FloatingAreaEnum(): return StringToEnum("FloatingArea")[0]
+ def GroundedAreaEnum(): return StringToEnum("GroundedArea")[0]
+ def IceMassEnum(): return StringToEnum("IceMass")[0]
+ def IceVolumeEnum(): return StringToEnum("IceVolume")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19764-19765.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19764-19765.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19764-19765.diff	(revision 20498)
@@ -0,0 +1,8 @@
+Index: ../trunk-jpl/test/Archives/Archive314.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19765-19766.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19765-19766.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19765-19766.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19765)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19766)
+@@ -121,6 +121,11 @@
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 	/*Friction law variables*/
+ 	switch(frictionlaw){
++		case 1:
++			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
++			iomodel->FetchDataToInput(elements,FrictionPEnum);
++			iomodel->FetchDataToInput(elements,FrictionQEnum);
++			break;
+ 		case 8:
+ 			iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
+ 			break;
+@@ -487,6 +492,8 @@
+ 
+ 	/*Divide by connectivity*/
+ 	newgap = newgap/totalweights;
++	IssmDouble mingap = 0.00001;
++	if(newgap<mingap) newgap=mingap;
+ 
+ 	/*Add new gap as an input*/
+ 	element->AddInput(HydrologyGapHeightEnum,&newgap,P0Enum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19766-19767.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19766-19767.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19766-19767.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19766)
++++ ../trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh	(revision 19767)
+@@ -2,9 +2,10 @@
+ set -eu
+ 
+ # On OSX 10.6, fgortran gets installed in /usr/local/gfortran 
+-export PATH="/usr/local/gfortran/bin/:$PATH"
+-#export CC="/usr/local/gfortran/bin/gcc"
+-#export CXX="/usr/local/gfortran/bin/g++"
++#export PATH="/usr/local/gfortran/bin/:$PATH"
++export F77="/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran"
++export CC="/usr/bin/gcc"
++export CXX="/usr/bin/g++"
+ 
+ #download scipy
+ git clone https://github.com/scipy/scipy.git
Index: /issm/oecreview/Archive/19101-20495/ISSM-19767-19768.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19767-19768.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19767-19768.diff	(revision 20498)
@@ -0,0 +1,606 @@
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.js
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 19767)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.js	(revision 19768)
+@@ -51,10 +51,9 @@
+ 
+ 	//Numerical parameters
+ 	md.stressbalance.viscosity_overshoot=0.0;
+-	return;
+ 	md.masstransport.stabilization=1;
+ 	md.thermal.stabilization=1;
+-	md.verbose=verbose(0);
++	md.verbose=new verbose(0);
+ 	md.settings.waitonlock=30;
+ 	md.stressbalance.restol=0.05;
+ 	md.stressbalance.reltol=0.05;
+@@ -64,10 +63,8 @@
+ 	md.timestepping.final_time=3;
+ 
+ 	//Deal with boundary conditions:
+-	md=SetIceShelfBC(md);
++	SetIceShelfBC(md);
+ 
+ 	//Change name so that no tests have the same name
+-	//A=dbstack;
+-	//if (length(A)>2), md.miscellaneous.name=A(3).file(1:end-2); end
+-
++	md.miscellaneous.name='test101';
+ }
+Index: ../trunk-jpl/test/Exp/Square.js
+===================================================================
+--- ../trunk-jpl/test/Exp/Square.js	(revision 19767)
++++ ../trunk-jpl/test/Exp/Square.js	(revision 19768)
+@@ -2,7 +2,8 @@
+ // Icon:0
+ // Points Count  Value
+ var square={}
+-square["nods"]=5;
++square[0]={};
++square[0]["nods"]=5;
+ // X pos Y pos
+-square["x"]=[0,1000000,1000000,0,0];
+-square["y"]=[0, 0, 1000000,  1000000, 0];
++square[0]["x"]=[0,1000000,1000000,0,0];
++square[0]["y"]=[0, 0, 1000000,  1000000, 0];
+Index: ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19767)
++++ ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19768)
+@@ -35,6 +35,7 @@
+ void FetchData(int **pmatrix, int* pM, int* pN, int* matrixin, int M, int N);
+ void FetchData(Contours** pcontours,double* x, double* y, int nods);
+ void FetchData(Options** poptions,int NRHS, int nrhs, const char* optionname, double optionvalue);
++void FetchData(int* pinteger,int integer);
+ 
+ /*Print*/
+ void ApiPrintf(const char* string);
+Index: ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19767)
++++ ../trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp	(revision 19768)
+@@ -21,16 +21,16 @@
+ 	*pstring=string;
+ }
+ /*}}}*/
+-/*FUNCTION FetchData(double* pscalar,double scalar){{{*/
+-void FetchData(double* pscalar,double scalar){
++/*FUNCTION FetchData(int* pinteger,int integer){{{*/
++void FetchData(int* pinteger,int integer){
+ 	
+-	*pscalar = scalar;
++	*pinteger = integer;
+ }
+ /*}}}*/
+ /*FUNCTION FetchData(double* pscalar,double scalar){{{*/
+-void FetchData(int* pinteger,int integer){
++void FetchData(double* pscalar,double scalar){
+ 	
+-	*pinteger = integer;
++	*pscalar = scalar;
+ }
+ /*}}}*/
+ /*FUNCTION FetchData(double **pvector, double* vectorin, int nods){{{*/
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19767)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19768)
+@@ -11,7 +11,9 @@
+ 			   ../NodeConnectivity/NodeConnectivity.js\
+ 			   ../ElementConnectivity/ElementConnectivity.js\
+ 			   ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
+-			   ../IssmConfig/IssmConfig.js
++			   ../IssmConfig/IssmConfig.js\
++			   ../EnumToString/EnumToString.js\
++			   ../StringToEnum/StringToEnum.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+@@ -78,8 +80,10 @@
+ 					 ../NodeConnectivity/NodeConnectivity.cpp\
+ 					 ../ElementConnectivity/ElementConnectivity.cpp\
+ 					 ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp\
+-					 ../IssmConfig/IssmConfig.cpp
++					 ../IssmConfig/IssmConfig.cpp\
++					 ../EnumToString/EnumToString.cpp\
++					 ../StringToEnum/StringToEnum.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.h	(revision 19767)
++++ ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.h	(revision 19768)
+@@ -39,6 +39,14 @@
+ #define ENUMOUT output,0
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define NAME string
++/* serial output macros: */
++#define ENUMOUT penum
++#define WRAPPER(modulename) extern "C" { int  StringToEnumModule(double* penum, char* string)
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.js	(revision 19768)
+@@ -0,0 +1,20 @@
++function StringToEnum(string){
++/*StringToEnum 
++	   usage: var enum = StringToEnum(string);
++*/
++
++	var penum= Module._malloc(4); 
++
++	//Declare StringToEnum module: 
++	StringToEnumModule = Module.cwrap('StringToEnumModule','number',['number','string']);
++	
++	//Call StringToEnum module: 
++	StringToEnumModule(penum, string);
++	
++	enumout= Module.getValue(penum,'double');
++
++	/*Free ressources: */
++	Module._free(penum); 
++	
++	return enumout;
++}
+Index: ../trunk-jpl/src/wrappers/EnumToString/EnumToString.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/EnumToString/EnumToString.h	(revision 19767)
++++ ../trunk-jpl/src/wrappers/EnumToString/EnumToString.h	(revision 19768)
+@@ -39,6 +39,15 @@
+ #define NAME output,0
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define ENUMIN enumin
++/* serial output macros: */
++#define NAME pstring
++#define WRAPPER(modulename) extern "C" { int  EnumToStringModule(char** pstring, int enumin)
++#endif
++
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  1
+Index: ../trunk-jpl/src/wrappers/EnumToString/EnumToString.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/EnumToString/EnumToString.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/EnumToString/EnumToString.js	(revision 19768)
+@@ -0,0 +1,20 @@
++function EnumToString(enumin){
++/*EnumToString 
++	   usage: var string = EnumToString(enumin);
++*/
++
++	var pstring= Module._malloc(4); 
++
++	//Declare EnumToString module: 
++	EnumToStringModule = Module.cwrap('EnumToStringModule','number',['number','number']);
++	
++	//Call EnumToString module: 
++	EnumToStringModule(pstring, enumin);
++	
++	string_ptr= Module.getValue(pstring,'i32');
++
++	/*Free ressources: */
++	Module._free(pstring); 
++	
++	return UTF8ToString(string_ptr);
++}
+Index: ../trunk-jpl/src/m/parameterization/setflowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setflowequation.js	(revision 0)
++++ ../trunk-jpl/src/m/parameterization/setflowequation.js	(revision 19768)
+@@ -0,0 +1,309 @@
++function setflowequation(md){
++//SETFLOWEQUATION - associate a solution type to each element
++//
++//   This routine works like plotmodel: it works with an even number of inputs
++//   'SIA','SSA','L1L2','HO','FS' and 'fill' are the possible options
++//   that must be followed by the corresponding exp file or flags list
++//   It can either be a domain file (argus type, .exp extension), or an array of element flags. 
++//   If user wants every element outside the domain to be 
++//   setflowequationd, add '~' to the name of the domain file (ex: '~HO.exp');
++//   an empty string '' will be considered as an empty domain
++//   a string 'all' will be considered as the entire domain
++//   You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling'
++//   NB: L1L2 cannot currently be coupled to any other ice flow model
++//
++//   Usage:
++//      setflowequation(md,varargin)
++//
++//   Example:
++//      setflowequation(md,'HO',HO,'fill','SIA','coupling','tiling');
++
++	//some checks on list of arguments
++	if(arguments.length<3) throw Error('setflowequation error message');
++
++	//Process options
++	var args = Array.prototype.slice.call(arguments);
++	var options = new pairoptions(args.slice(1,args.length));
++	options.deleteduplicates(1);
++
++	//Find_out what kind of coupling to use
++	coupling_method=options.getfieldvalue('coupling','tiling');
++	if ((coupling_method != 'tiling') & !(coupling_method != 'penalties')){
++		throw error('coupling type can only be: tiling or penalties');
++	}
++
++	//recover elements distribution
++	SIAflag  = FlagElements(md,options.getfieldvalue('SIA',''));
++	SSAflag  = FlagElements(md,options.getfieldvalue('SSA',''));
++	HOflag   = FlagElements(md,options.getfieldvalue('HO',''));
++	L1L2flag = FlagElements(md,options.getfieldvalue('L1L2',''));
++	FSflag   = FlagElements(md,options.getfieldvalue('FS',''));
++	filltype = options.getfieldvalue('fill','none');
++	options.displayunused();
++
++	//Flag the elements that have not been flagged as filltype
++	if (filltype === 'SIA'){
++		for(var i=0;i<md.mesh.numberofelements;i++)if(!(SSAflag[i] | HOflag[i]))SIAflag[i]=1;
++	}
++	else if (filltype === 'SSA'){
++		for(var i=0;i<md.mesh.numberofelements;i++)if(!(SIAflag[i] | HOflag[i] | FSflag[i]))SSAflag[i]=1;
++	}
++	else if (filltype === 'HO'){
++		for(var i=0;i<md.mesh.numberofelements;i++)if(!(SIAflag[i] | SSAflag[i] | FSflag[i]))HOflag[i]=1;
++	}
++
++	//check that each element has at least one flag
++	for(var i=0;i<md.mesh.numberofelements;i++)if((SIAflag[i] + SSAflag[i] + HOflag[i] + L1L2flag[i] + FSflag[i])==0)
++	throw Error("elements type not assigned, supported models are 'SIA','SSA','HO' and 'FS'");
++
++	//check that each element has only one flag
++	if (ArrayAnyAboveStrict(ArrayXPY(SIAflag,SSAflag,HOflag,L1L2flag),1)){
++		console.log('setflowequation warning message: some elements have several types, higher order type is used for them')
++
++		for(var i=0;i<md.mesh.numberofelements;i++){
++			if(SIAflag[i] & SSAflag[i])SIAflag[i]=0;
++			if(SIAflag[i] & HOflag[i])SIAflag[i]=0;
++			if(SSAflag[i] & HOflag[i])SSAflag[i]=0;
++		}
++	}
++
++	//check that L1L2 is not coupled to any other model for now
++	if (ArrayAnyEqual(L1L2flag,1) & ArrayAnyEqual(ArrayOr(SIAflag,SSAflag,HOflag,FSflag),1)) throw Error('L1L2 cannot be coupled to any other model');
++
++	//Check that no HO or FS for 2d mesh
++	if (md.mesh.domaintype() == '2Dhorizontal'){
++		for(var i=0;i<FSflag.length;i++){
++			if(FSflag[i] | HOflag[i]) throw Error('FS and HO elements not allowed in 2d mesh, extrude it first')
++		}
++	}
++
++	//FS can only be used alone for now:
++	if (ArrayAnyEqual(FSflag,1) & ArrayAnyEqual(SIAflag,1)) throw Error('FS cannot be used with any other model for now, put FS everywhere')
++
++	//Initialize node fields
++	nodeonSIA=NewArrayFill(md.mesh.numberofvertices,0);
++	pos=ArrayFind(SIAflag,1);
++	for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonSIA[md.mesh.elements[pos[i]][j]-1]=1;
++	
++	nodeonSSA=NewArrayFill(md.mesh.numberofvertices,0);
++	pos=ArrayFind(SSAflag,1);
++	for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonSSA[md.mesh.elements[pos[i]][j]-1]=1;
++	
++	nodeonHO=NewArrayFill(md.mesh.numberofvertices,0);
++	pos=ArrayFind(HOflag,1);
++	for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonHO[md.mesh.elements[pos[i]][j]-1]=1;
++	
++	nodeonL1L2=NewArrayFill(md.mesh.numberofvertices,0);
++	pos=ArrayFind(L1L2flag,1);
++	for(var i=0;i<pos.length;i++) for(var j=0;j<md.mesh.elements[0].length;j++) nodeonL1L2[md.mesh.elements[pos[i]][j]-1]=1;
++
++	nodeonFS=NewArrayFill(md.mesh.numberofvertices,0);
++	noneflag=NewArrayFill(md.mesh.numberofvertices,0);
++	
++	
++	//First modify FSflag to get rid of elements contrained everywhere (spc + border with HO or SSA)
++	if (ArrayAnyEqual(FSflag,1)){
++		throw Error("FS elements not supported yet!");
++		/*fullspcnodes=double((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy)+~isnan(md.stressbalance.spcvz))==3 | (nodeonHO & nodeonFS));         //find all the nodes on the boundary of the domain without icefront
++		fullspcelems=double(sum(fullspcnodes(md.mesh.elements),2)==6);         //find all the nodes on the boundary of the domain without icefront
++		FSflag(find(fullspcelems))=0;
++		nodeonFS(md.mesh.elements(find(FSflag),:))=1;*/
++	}
++
++	//Then complete with NoneApproximation or the other model used if there is no FS
++	if (ArrayAnyEqual(FSflag,1)){
++		throw Error("FS elements not supported yet!");
++		/*if any(HOflag), //fill with HO
++			HOflag(~FSflag)=1;
++			nodeonHO(md.mesh.elements(find(HOflag),:))=1;
++		elseif any(SSAflag), //fill with SSA
++			SSAflag(~FSflag)=1;
++			nodeonSSA(md.mesh.elements(find(SSAflag),:))=1;
++		else //fill with none 
++			noneflag(find(~FSflag))=1;
++		end*/
++	}
++
++	//Now take care of the coupling between SSA and HO
++	md.stressbalance.vertex_pairing=[];
++	nodeonSSAHO=NewArrayFill(md.mesh.numberofvertices,0);
++	nodeonHOFS=NewArrayFill(md.mesh.numberofvertices,0);
++	nodeonSSAFS=NewArrayFill(md.mesh.numberofvertices,0);
++	SSAHOflag=NewArrayFill(md.mesh.numberofelements,0);
++	SSAFSflag=NewArrayFill(md.mesh.numberofelements,0);
++	HOFSflag=NewArrayFill(md.mesh.numberofelements,0);
++
++	/*if strcmpi(coupling_method,'penalties'),
++		//Create the border nodes between HO and SSA and extrude them
++		numnodes2d=md.mesh.numberofvertices2d;
++		numlayers=md.mesh.numberoflayers;
++		bordernodes2d=find(nodeonHO(1:numnodes2d) & nodeonSSA(1:numnodes2d)); //Nodes connected to two different types of elements
++
++		//initialize and fill in penalties structure
++		if ~isnan(bordernodes2d),
++			penalties=[];
++			for	i=1:numlayers-1,
++				penalties=[penalties; [bordernodes2d bordernodes2d+md.mesh.numberofvertices2d*(i)]];
++			end
++			md.stressbalance.vertex_pairing=penalties;
++		end
++	elseif strcmpi(coupling_method,'tiling'),
++		if any(SSAflag) & any(HOflag), //coupling SSA HO
++			//Find node at the border
++			nodeonSSAHO(find(nodeonSSA & nodeonHO))=1;
++			//SSA elements in contact with this layer become SSAHO elements
++			matrixelements=ismember(md.mesh.elements,find(nodeonSSAHO));
++			commonelements=sum(matrixelements,2)~=0;
++			commonelements(find(HOflag))=0; //only one layer: the elements previously in SSA
++			SSAflag(find(commonelements))=0; //these elements are now SSAHOelements
++			SSAHOflag(find(commonelements))=1;
++			nodeonSSA(:)=0;
++			nodeonSSA(md.mesh.elements(find(SSAflag),:))=1;
++
++			//rule out elements that don't touch the 2 boundaries
++			pos=find(SSAHOflag);
++			elist=zeros(length(pos),1);
++			elist = elist + any(sum(nodeonSSA(md.mesh.elements(pos,:)),2),2);
++			elist = elist - any(sum(nodeonHO(md.mesh.elements(pos,:))  ,2),2);
++			pos1=find(elist==1);
++			SSAflag(pos(pos1))=1;
++			SSAHOflag(pos(pos1))=0;
++			pos2=find(elist==-1);
++			HOflag(pos(pos2))=1;
++			SSAHOflag(pos(pos2))=0;
++
++			//Recompute nodes associated to these elements
++			nodeonSSA(:)=0;
++			nodeonSSA(md.mesh.elements(find(SSAflag),:))=1;
++			nodeonHO(:)=0;
++			nodeonHO(md.mesh.elements(find(HOflag),:))=1;
++			nodeonSSAHO(:)=0;
++			nodeonSSAHO(md.mesh.elements(find(SSAHOflag),:))=1;
++
++		elseif any(HOflag) & any(FSflag), //coupling HO FS
++			//Find node at the border
++			nodeonHOFS(find(nodeonHO & nodeonFS))=1;
++			//FS elements in contact with this layer become HOFS elements
++			matrixelements=ismember(md.mesh.elements,find(nodeonHOFS));
++			commonelements=sum(matrixelements,2)~=0;
++			commonelements(find(HOflag))=0; //only one layer: the elements previously in SSA
++			FSflag(find(commonelements))=0; //these elements are now SSAHOelements
++			HOFSflag(find(commonelements))=1;
++			nodeonFS=zeros(md.mesh.numberofvertices,1);
++			nodeonFS(md.mesh.elements(find(FSflag),:))=1;
++
++			//rule out elements that don't touch the 2 boundaries
++			pos=find(HOFSflag);
++			elist=zeros(length(pos),1);
++			elist = elist + any(sum(nodeonFS(md.mesh.elements(pos,:)),2),2);
++			elist = elist - any(sum(nodeonHO(md.mesh.elements(pos,:)),2),2);
++			pos1=find(elist==1);
++			FSflag(pos(pos1))=1;
++			HOFSflag(pos(pos1))=0;
++			pos2=find(elist==-1);
++			HOflag(pos(pos2))=1;
++			HOFSflag(pos(pos2))=0;
++
++			//Recompute nodes associated to these elements
++			nodeonFS(:)=0;
++			nodeonFS(md.mesh.elements(find(FSflag),:))=1;
++			nodeonHO(:)=0;
++			nodeonHO(md.mesh.elements(find(HOflag),:))=1;
++			nodeonHOFS(:)=0;
++			nodeonHOFS(md.mesh.elements(find(HOFSflag),:))=1;
++
++		elseif any(FSflag) & any(SSAflag),
++			//Find node at the border
++			nodeonSSAFS(find(nodeonSSA & nodeonFS))=1;
++			//FS elements in contact with this layer become SSAFS elements
++			matrixelements=ismember(md.mesh.elements,find(nodeonSSAFS));
++			commonelements=sum(matrixelements,2)~=0;
++			commonelements(find(SSAflag))=0; //only one layer: the elements previously in SSA
++			FSflag(find(commonelements))=0; //these elements are now SSASSAelements
++			SSAFSflag(find(commonelements))=1;
++			nodeonFS=zeros(md.mesh.numberofvertices,1);
++			nodeonFS(md.mesh.elements(find(FSflag),:))=1;
++
++			//rule out elements that don't touch the 2 boundaries
++			pos=find(SSAFSflag);
++			elist=zeros(length(pos),1);
++			elist = elist + any(sum(nodeonSSA(md.mesh.elements(pos,:)),2),2);
++			elist = elist - any(sum(nodeonFS(md.mesh.elements(pos,:))  ,2),2);
++			pos1=find(elist==1);
++			SSAflag(pos(pos1))=1;
++			SSAFSflag(pos(pos1))=0;
++			pos2=find(elist==-1);
++			FSflag(pos(pos2))=1;
++			SSAFSflag(pos(pos2))=0;
++
++			//Recompute nodes associated to these elements
++			nodeonSSA(:)=0;
++			nodeonSSA(md.mesh.elements(find(SSAflag),:))=1;
++			nodeonFS(:)=0;
++			nodeonFS(md.mesh.elements(find(FSflag),:))=1;
++			nodeonSSAFS(:)=0;
++			nodeonSSAFS(md.mesh.elements(find(SSAFSflag),:))=1;
++
++		elseif any(FSflag) & any(SIAflag),
++			error('type of coupling not supported yet');
++		end
++	end*/
++
++	//Create element equations
++	md.flowequation.element_equation=NewArrayFill(md.mesh.numberofelements,0);
++	pos=ArrayFind(noneflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=0;
++	pos=ArrayFind(SIAflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=1;
++	pos=ArrayFind(SSAflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=2;
++	pos=ArrayFind(L1L2flag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=3;
++	pos=ArrayFind(HOflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=4;
++	pos=ArrayFind(FSflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=5;
++	pos=ArrayFind(SSAHOflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=6;
++	pos=ArrayFind(SSAFSflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=7;
++	pos=ArrayFind(HOFSflag,1);for(var i=0;i<pos.length;i++)md.flowequation.element_equation[pos[i]]=8;
++
++
++	//border
++	md.flowequation.borderHO=nodeonHO;
++	md.flowequation.borderSSA=nodeonSSA;
++	md.flowequation.borderFS=nodeonFS;
++	
++
++	//Create vertices_type
++	md.flowequation.vertex_equation=NewArrayFill(md.mesh.numberofvertices,0);
++
++	pos=ArrayFind(nodeonSSA,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=2;
++	pos=ArrayFind(nodeonL1L2,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=3;
++	pos=ArrayFind(nodeonHO,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=4;
++	pos=ArrayFind(nodeonFS,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=5;
++	//DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority)
++	pos=ArrayFind(nodeonSIA,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=1;
++	if (ArrayAnyEqual(FSflag,1)){
++		pos=ArrayFind(nodeonFS==0);
++		if(ArrayAnyEqual(HOflag,0) & ArrayAnyEqual(SSA,0)){
++			for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=0;
++		}
++	}
++
++	pos=ArrayFind(nodeonSSAHO,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=6;
++	pos=ArrayFind(nodeonHOFS,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=7;
++	pos=ArrayFind(nodeonSSAFS,1);for(var i=0;i<pos.length;i++)md.flowequation.vertex_equation[pos[i]]=8;
++
++	//figure out solution types
++	md.flowequation.isSIA  = ArrayAnyEqual(md.flowequation.element_equation,1);
++	md.flowequation.isSSA  = ArrayAnyEqual(md.flowequation.element_equation,2);
++	md.flowequation.isL1L2 = ArrayAnyEqual(md.flowequation.element_equation,3);
++	md.flowequation.isHO   = ArrayAnyEqual(md.flowequation.element_equation,4);
++	md.flowequation.isFS   = ArrayAnyEqual(md.flowequation.element_equation,5);
++	return
++
++	//Check that tiling can work:
++	/*if any(md.flowequation.borderSSA) & any(md.flowequation.borderHO) & any(md.flowequation.borderHO + md.flowequation.borderSSA ~=1),
++		error('error coupling domain too irregular');
++	end
++	if any(md.flowequation.borderSSA) & any(md.flowequation.borderFS) & any(md.flowequation.borderFS + md.flowequation.borderSSA ~=1),
++		error('error coupling domain too irregular');
++	end
++	if any(md.flowequation.borderFS) & any(md.flowequation.borderHO) & any(md.flowequation.borderHO + md.flowequation.borderFS~=1),
++		error('error coupling domain too irregular');
++	end*/
++}
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19767)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19768)
+@@ -20,6 +20,52 @@
+ 	for(var i=0;i<array.length;i++)sum+=array[i];
+ 	return sum;
+ } //}}}
++function ArrayXPY(){ //{{{
++    if (arguments.length<2)throw Error("ArrayXPY error message: sum has to be for at least two arrays!");
++
++	//check internal consistency of arrays provided!: 
++	var firstarray=arguments[0];
++	var firstsize=firstarray.length;
++	
++	for(var a=1;a<arguments.length;a++){
++		var array=arguments[a];
++		if(array.length!=firstsize)throw Error("ArrayXPY error message: arrays provided as arguments are not of the same length!");
++	}
++
++	//do the sum:
++	var sum=NewArrayFill(firstsize,0);
++	for(var a=0;a<arguments.length;a++){
++		var array=arguments[a];
++		for(var i=0;i<array.length;i++){
++			sum[i]+=array[i];
++		}
++	}
++	return sum;
++
++} //}}}
++function ArrayOr(){ //{{{
++    if (arguments.length<2)throw Error("ArrayOr error message: sum has to be for at least two arrays!");
++
++	//check internal consistency of arrays provided!: 
++	var firstarray=arguments[0];
++	var firstsize=firstarray.length;
++	
++	for(var a=1;a<arguments.length;a++){
++		var array=arguments[a];
++		if(array.length!=firstsize)throw Error("ArrayOr error message: arrays provided as arguments are not of the same length!");
++	}
++
++	//do the or:
++	var or=NewArrayFill(firstsize,0);
++	for(var a=0;a<arguments.length;a++){
++		var array=arguments[a];
++		for(var i=0;i<array.length;i++){
++			or[i] = or[i] | array[i];
++		}
++	}
++	return or;
++
++} //}}}
+ function ArrayMin2D(array){ //{{{
+ 	
+ 	var min=ArrayMax2D(array);
+@@ -98,6 +144,13 @@
+ 	}
+ 	return 0;
+ } //}}}
++function ArrayAnyEqual(array,value) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (array[i]==value)return 1;
++	}
++	return 0;
++} //}}}
+ function ArrayAnyBelowOrEqual(array,value) { //{{{
+ 
+ 	for(var i=0;i<array.length;i++){
+@@ -112,6 +165,20 @@
+ 	}
+ 	return 0;
+ } //}}}
++function ArrayAnyAboveOrEqual(array,value) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (array[i]>=value)return 1;
++	}
++	return 0;
++} //}}}
++function ArrayAnyAboveStrict(array,value) { //{{{
++
++	for(var i=0;i<array.length;i++){
++		if (array[i]>value)return 1;
++	}
++	return 0;
++} //}}}
+ function ArrayAnd(array1,array2) { //{{{
+ 
+ 	var array=array1;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19768-19769.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19768-19769.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19768-19769.diff	(revision 20498)
@@ -0,0 +1,148 @@
+Index: ../trunk-jpl/test/NightlyRun/test210.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test210.m	(revision 19768)
++++ ../trunk-jpl/test/NightlyRun/test210.m	(revision 19769)
+@@ -5,7 +5,6 @@
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.verbose=verbose('solution',true,'module',true);
+ md.transient.requested_outputs={'default','GroundedArea'};
+ md=solve(md,TransientSolutionEnum());
+ 
+Index: ../trunk-jpl/test/Archives/Archive439.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive111.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive232.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive206.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive515.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive510.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive108.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive210.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive224.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive802.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive426.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive507.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive233.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive207.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive516.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive409.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive211.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive508.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive427.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive208.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive226.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive509.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive209.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive513.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive406.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive415.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive227.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive410.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive312.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive416.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive411.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive506.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive318.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive237.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19769-19770.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19769-19770.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19769-19770.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/shared/Enum/Synchronize.sh
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19769)
++++ ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19770)
+@@ -197,6 +197,17 @@
+ cat temp |  awk '{print "def " $1"(): return StringToEnum(\"" substr($1,1,length($1)-4) "\")[0]"}' >> $ISSM_DIR/src/m/enum/EnumDefinitions.py
+ #}}}
+ 
++#Deal with Javascript Enums
++#Build EnumDefinitions.js{{{
++cat <<END > $ISSM_DIR/src/m/enum/EnumDefinitions.js
++//WARNING: DO NOT MODIFY THIS FILE
++//this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++//Please read src/c/shared/Enum/README for more information
++END
++#core
++cat temp |  awk '{print "function " $1"(){ return StringToEnum(\"" substr($1,1,length($1)-4) "\");\}"}' >> $ISSM_DIR/src/m/enum/EnumDefinitions.js
++#}}}
++
+ #Deal with Matlab Enums`
+ ENUM=0;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19770-19771.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19770-19771.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19770-19771.diff	(revision 20498)
@@ -0,0 +1,132 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19770)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19771)
+@@ -1,8 +1,8 @@
+-function plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options,canvas,gl) {
++function plot_unit(md,data,options,canvas,gl) {
+ 	//PLOT_UNIT - unit plot, display data
+ 	//
+ 	//   Usage:
+-	//      plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options);
++	//      plot_unit(md,data,options,canvas,gl);
+ 	//
+ 	//   See also: PLOTMODEL, PLOT_MANAGER
+ 
+@@ -17,11 +17,24 @@
+ 	var zmin,zmax;
+ 	var datamin,datamax;
+ 	var scale;
++	//Process data and model
++	var meshresults = processmesh(md,data,options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
++	
++	var dataresults = processdata(md,data,options);
++	var data2 = dataresults[0]; 
++	var datatype = dataresults[1];
+ 	//}}}
+ 
+ 	//Initialize the buffer structure: 
+ 	node = Node(gl,options);
+ 
++
+ 	//Compute coordinates and data range: 
+ 	xmin = ArrayMin(x);
+ 	xmax = ArrayMax(x);
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19770)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19771)
+@@ -15,6 +15,7 @@
+ 
+ 	//standard plot: initialize open Gl for each canvas: 
+ 	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
++	//$.("<canvas id='"+options.getfieldvalue('canvasid')+"' width=640 height=480></canvas>)").append("body");
+ 
+ 	// Initialize the GL context: 
+ 	var gl=initWebGL(canvas,options);
+@@ -86,7 +87,7 @@
+ 				break;
+ 			case 'mesh':
+ 				//plot_mesh(md,options,nlines,ncols,i);
+-				plot_mesh(md.mesh.x,md.mesh.y,[0.0],md.mesh.elements,2,options,canvas,gl);
++				plot_mesh(md,options,canvas,gl);
+ 				break;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+@@ -208,21 +209,8 @@
+ 	}
+ 
+ 	if (typeof data !== 'string'){
+-		//process data and model
+-		var meshresults = processmesh(md,data,options);
+-		var x = meshresults[0]; 
+-		var y = meshresults[1]; 
+-		var z = meshresults[2]; 
+-		var elements = meshresults[3]; 
+-		var is2d = meshresults[4]; 
+-		var isplanet = meshresults[5];
+-		
+-		var dataresults = processdata(md,data,options);
+-		var data2 = dataresults[0]; 
+-		var datatype = dataresults[1];
+-
+ 		//plot unit
+-		plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,canvas,gl);
++		plot_unit(md,data,options,canvas,gl);
+ 	}
+ 
+ 	//apply all options
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19770)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19771)
+@@ -1,6 +1,6 @@
+-function plot_mesh(x,y,z,elements,datatype,options,canvas,gl) {
++function plot_mesh(md,options,canvas,gl) {
+ 	//   Usage:
+-	//      plot_mesh(md,options,nlines,ncols,i);
++	//      plot_mesh(md,options,canvas,gl);
+ 	//
+ 	//   See also: PLOTMODEL
+ 
+@@ -14,6 +14,11 @@
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+ 	var scale;
++	//Process data and model
++	var x = md.x;
++	var y = md.y;
++	var z = [0.0];
++	var elements = md.elements;
+ 	//}}}
+ 
+ 	//Initialize the buffer structure: 
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19770)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19771)
+@@ -40,7 +40,7 @@
+ 		// Firefox
+ 		canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,canvas)}, false);
+ 		// Mobile
+-		//canvas.addEventListener("gesturechange", MousePinchHandler, false);
++		canvas.addEventListener("gesturechange", MouseWheelHandler, false);
+ 	}
+ 
+ 	return gl;
+@@ -232,7 +232,8 @@
+ function MouseWheelHandler(e,canvas) { //{{{
+ 	// prevent scrolling when over canvas
+ 	e.preventDefault();
+-	var delta = 1/10 * clamp((e.wheelDelta || -e.detail), -1, 1);
++	var e = window.event || e; // old IE support
++	var delta = 1/10 * clamp((e.scale || e.wheelDelta || -e.detail), -1, 1);
+ 	canvas.zoomFactor = canvas.zoomFactor + -delta * canvas.zoomFactor;
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19771-19772.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19771-19772.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19771-19772.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19771)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19772)
+@@ -15,10 +15,10 @@
+ 	var zmin,zmax;
+ 	var scale;
+ 	//Process data and model
+-	var x = md.x;
+-	var y = md.y;
++	var x = md.mesh.x;
++	var y = md.mesh.y;
+ 	var z = [0.0];
+-	var elements = md.elements;
++	var elements = md.mesh.elements;
+ 	//}}}
+ 
+ 	//Initialize the buffer structure: 
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19771)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19772)
+@@ -31,6 +31,7 @@
+ 
+ 	// Add context state variables
+ 	canvas.zoomFactor = options.getfieldvalue('zoomfactor',-.52);
++	canvas.zoomFactorMax = options.getfieldvalue('zoomfactor',-.52);
+ 	canvas.cameraMatrix = mat4.create();
+ 
+ 	// Add event listeners for canvas
+@@ -234,7 +235,7 @@
+ 	e.preventDefault();
+ 	var e = window.event || e; // old IE support
+ 	var delta = 1/10 * clamp((e.scale || e.wheelDelta || -e.detail), -1, 1);
+-	canvas.zoomFactor = canvas.zoomFactor + -delta * canvas.zoomFactor;
++	canvas.zoomFactor = clamp(canvas.zoomFactor + -delta * canvas.zoomFactor,canvas.zoomFactorMax,0);
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19772-19773.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19772-19773.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19772-19773.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19772)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19773)
+@@ -14,8 +14,8 @@
+ 	data=options.getfieldvalue('data');
+ 
+ 	//standard plot: initialize open Gl for each canvas: 
++	$('<canvas id="'+options.getfieldvalue('canvasid')+'" width="480" height="480"></canvas>)').appendTo('body');
+ 	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+-	//$.("<canvas id='"+options.getfieldvalue('canvasid')+"' width=640 height=480></canvas>)").append("body");
+ 
+ 	// Initialize the GL context: 
+ 	var gl=initWebGL(canvas,options);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19773-19774.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19773-19774.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19773-19774.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19773)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19774)
+@@ -41,6 +41,7 @@
+ <script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/webgl.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
++<script type="text/javascript" src="../../src/m/plot/plot_mesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+@@ -57,23 +58,18 @@
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+-	<canvas id="1" width="640" height="480"> </canvas>
+-	<canvas id="2" width="640" height="480"> </canvas>
+-	<canvas id="3" width="640" height="480"> </canvas>
+-	<canvas id="4" width="640" height="480"> </canvas>
++	<script type="text/javascript" async><!--{{{-->
+ 
+-	<script type="text/javascript" async><!--}}}-->
++		var md = new model();
++		triangle(md,square,10000); 
++		parameterize(md);
++		
++		plotmodel(md,'data',md.friction.coefficient,'canvasid',1,
++		'data',md.materials.rheology_B,'canvasid',2,
++		'data',md.initialization.temperature,'canvasid',3,
++		'data',md.basalforcings.floatingice_melting_rate,'canvasid',4);
+ 
+-	var md = new model();
+-	triangle(md,square,10000); 
+-	parameterize(md);
+-	
+-	plotmodel(md,'data',md.friction.coefficient,'canvasid',1,
+-	'data',md.materials.rheology_B,'canvasid',2,
+-	'data',md.initialization.temperature,'canvasid',3,
+-	'data',md.basalforcings.floatingice_melting_rate,'canvasid',4);
+ 
+-
+-</script> <!--{{{-->
++	</script> <!--}}}-->
+ </body> 
+ </html><!--}}}-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19774-19775.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19774-19775.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19774-19775.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19774)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19775)
+@@ -14,7 +14,7 @@
+ 	data=options.getfieldvalue('data');
+ 
+ 	//standard plot: initialize open Gl for each canvas: 
+-	$('<canvas id="'+options.getfieldvalue('canvasid')+'" width="480" height="480"></canvas>)').appendTo('body');
++	$('<canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas>)').appendTo('body');
+ 	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
+ 	// Initialize the GL context: 
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19774)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19775)
+@@ -148,6 +148,9 @@
+ 		 //check that there is no duplicates
+ 		 for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
+ 
++		 //allocate canvasid automatically
++		 for (var i=0;i<numberofplots;i++) list[i].addfield('canvasid',i);
++
+ 		 //Get figure number (should be in options for subplot 1)
+ 		 this.figurenumber=list[0].getfieldvalue('figure',1);
+ 		 list[0].removefield('figure',0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19775-19776.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19775-19776.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19775-19776.diff	(revision 20498)
@@ -0,0 +1,8 @@
+Index: ../trunk-jpl/test/Archives/Archive225.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive505.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19776-19777.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19776-19777.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19776-19777.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/test/NightlyRun/test505.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test505.py	(revision 19776)
++++ ../trunk-jpl/test/NightlyRun/test505.py	(revision 19777)
+@@ -19,8 +19,8 @@
+ # Fields and tolerances to track changes
+ field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1', \
+ 				      'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2']
+-field_tolerances=[1e-12,1e-12,1e-10,1e-12,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13, \
+-						1e-13,1e-12,1e-10,1e-12,1e-13,1e-11,1e-11,2e-12,1e-11,1e-8]
++field_tolerances=[1e-12,1e-12,1e-10,1e-12,1e-13,3e-13,7e-13,3e-13,1e-13,6e-10, \
++						2e-12,5e-12,1e-10,4e-12,3e-13,1e-11,1e-11,2e-12,1e-11,1e-8]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19776)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19777)
+@@ -80,8 +80,8 @@
+ 		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',\
+ 		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13];
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-8,1e-13,1e-13,\
++		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-8,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19777-19778.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19777-19778.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19777-19778.diff	(revision 20498)
@@ -0,0 +1,132 @@
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19777)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19778)
+@@ -46,83 +46,54 @@
+ 	var linewidth=options.getfieldvalue('linewidth',1);
+ 	var edgecolor=options.getfieldvalue('edgecolor','black');
+ 
+-	/*//plot mesh
+-	if (is2d){
+-		A=elements(:,1); B=elements(:,2); C=elements(:,3); 
+-		patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++	// populate arrays 
++	//node plot {{{
++	if (elements[0].length==6){ //prisms
++		/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
++		  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  */
+ 	}
+-	*/
+-	
+-	// populate arrays {{{
+-	switch(datatype){
+-		//element plot {{{
+-		case 1:
+-			break;
+-		//}}}
+-		//node plot {{{
+-		case 2:
+-			if (elements[0].length==6){ //prisms
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+-				patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				*/
+-			}
+-			else if (elements[0].length==4){ //tetras
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+-				patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-				*/
+-			}
+-			else{ //2D triangular elements
+-				vertices.itemSize = 3;
+-				for(var i = 0; i < x.length; i++){
+-					vertices[vertices.length] = x[i];
+-					vertices[vertices.length] = y[i];
+-					//vertices[vertices.length] = z[i];
+-					vertices[vertices.length] = 0;
++	else if (elements[0].length==4){ //tetras
++		/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
++		  patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
++		  */
++	}
++	else{ //2D triangular elements
++		vertices.itemSize = 3;
++		for(var i = 0; i < x.length; i++){
++			vertices[vertices.length] = x[i];
++			vertices[vertices.length] = y[i];
++			//vertices[vertices.length] = z[i];
++			vertices[vertices.length] = 0;
+ 
+-					//handle mesh/qinterest size mismatch
+-					rgbcolor = [0.0, 0.0, 0.0];
+-					colors[colors.length] = rgbcolor[0];
+-					colors[colors.length] = rgbcolor[1];
+-					colors[colors.length] = rgbcolor[2];
+-					colors[colors.length] = 1.0;
+-				}
++			//handle mesh/qinterest size mismatch
++			rgbcolor = [0.0, 0.0, 0.0];
++			colors[colors.length] = rgbcolor[0];
++			colors[colors.length] = rgbcolor[1];
++			colors[colors.length] = rgbcolor[2];
++			colors[colors.length] = 1.0;
++		}
+ 
+-				//linearize the elements array: 
+-				
+-				for(var i = 0; i < elements.length; i++){
+-					//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity
+-					//matlab indices from 1, so decrement indices.
+-					indices[indices.length] = elements[i][0] - 1;
+-					indices[indices.length] = elements[i][1] - 1;
+-					indices[indices.length] = elements[i][1] - 1;
+-					indices[indices.length] = elements[i][2] - 1;
+-					indices[indices.length] = elements[i][2] - 1;
+-					indices[indices.length] = elements[i][0] - 1;
+-				}
+-				indices.itemSize = 1;
+-			}
+-			break;
+-		//}}}
+-		//quiver plot {{{
+-		case 3:
++		//linearize the elements array: 
+ 
+-			if (is2d){
+-				//plot_quiver(x,y,data(:,1),data(:,2),options);
+-			}
+-			else{
+-				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
+-			}
+-
+-		//}}}
+-		default:
+-			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
++		for(var i = 0; i < elements.length; i++){
++			//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity
++			//matlab indices from 1, so decrement indices.
++			indices[indices.length] = elements[i][0] - 1;
++			indices[indices.length] = elements[i][1] - 1;
++			indices[indices.length] = elements[i][1] - 1;
++			indices[indices.length] = elements[i][2] - 1;
++			indices[indices.length] = elements[i][2] - 1;
++			indices[indices.length] = elements[i][0] - 1;
++		}
++		indices.itemSize = 1;
+ 	}
+ 	//}}}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19778-19779.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19778-19779.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19778-19779.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19778)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19779)
+@@ -108,6 +108,5 @@
+ 	node["buffers"] = initBuffers(gl, node["arrays"]);
+ 	
+ 	/*Draw into the canvas:*/
+-	console.log(node);
+ 	draw(gl,options,canvas,node);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19779-19780.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19779-19780.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19779-19780.diff	(revision 20498)
@@ -0,0 +1,2105 @@
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 0)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 19780)
+@@ -0,0 +1,173 @@
++function solve(md,solutionenum){
++//SOLVE - apply solution sequence for this model
++//
++//   Usage:
++//      solve(md,solutionenum,varargin)
++//      where varargin is a lit of paired arguments of string OR enums
++//
++//   solution types available comprise:
++//		 - StressbalanceSolutionEnum
++//		 - MasstransportSolutionEnum
++//		 - ThermalSolutionEnum
++//		 - SteadystateSolutionEnum
++//		 - TransientSolutionEnum
++//		 - BalancethicknessSolutionEnum
++//		 - BedSlopeSolutionEnum
++//		 - SurfaceSlopeSolutionEnum
++//		 - HydrologySolutionEnum
++//		 - FlaimSolutionEnum
++//
++//  extra options:
++//      - loadonly    : does not solve. only load results
++//      - runtimename : true or false (default is true), makes name unique
++//      - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model
++//      - restart: 'directory name (relative to the execution directory) where the restart file is located.
++//
++//   Examples:
++//      md=solve(md,StressbalanceSolutionEnum);
++
++	solutionstring=EnumToString(solutionenum);
++	
++	//recover and process solve options
++	if (solutionstring.slice(-8) !== 'Solution'){
++		throw Error(sprintf("%s%s%s\n",'solutionenum ',solutionstring,' not supported!'));
++	}
++	
++	//Process options
++	var args = Array.prototype.slice.call(arguments);
++	var options = new pairoptions(args.slice(2,args.length));
++	options.addfield('solutionenum',solutionenum);
++
++	//recover some fields
++	md.private.solution=solutionenum;
++	cluster=md.cluster;
++
++	//check model consistency
++	if (options.getfieldvalue('checkconsistency','yes') == 'yes'){
++		if (md.verbose.solution){
++			console.log('checking model consistency');
++		}
++		if (solutionenum == FlaimSolutionEnum()){
++			md.private.isconsistent=true;
++			md.mesh.checkconsistency(md,solutionenum);
++			md.flaim.checkconsistency(md,solutionenum);
++			if (md.private.isconsistent==false){
++				throw error('solve error message: model not consistent, see messages above');
++			}
++		}
++		else{
++			ismodelselfconsistent(md);
++		}
++	}
++
++	//If we are restarting, actually use the provided runtime name:
++	restart=options.getfieldvalue('restart','');
++	//First, build a runtime name that is unique
++	if (restart==1 ){
++		//Leave the runtimename as is
++		}
++	else{
++		if (!(restart == '')){
++			md.private.runtimename=restart;
++		}
++		else if (options.getfieldvalue('runtimename',true)){
++			c=new Date().getTime();
++			md.private.runtimename=sprintf('%s-%g',md.miscellaneous.name,c);
++		}
++		else{
++			md.private.runtimename=md.miscellaneous.name;
++		}
++	}
++
++	//if running qmu analysis, some preprocessing of dakota files using models
++	//fields needs to be carried out. 
++	if (md.qmu.isdakota){
++		throw Error("solve error message: qmu runs not supported yet!");
++		//md.preqmu(options);
++	}
++
++	//flaim analysis (To be removed?)
++	if (solutionenum == FlaimSolutionEnum()){
++		//fmdir     = options.getfieldvalue('fmdir',['fm' num2str(feature('GetPid'))]);
++		//overwrite = options.getfieldvalue('overwrite','n');
++		//keep      = options.getfieldvalue('keep','y');
++		//latsgn    = options.getfieldvalue('latsgn',0);
++		//cmap      = options.getfieldvalue('cmap',[]);
++		throw  Error("solve error message: flaim runs not supported yet!");
++		//flaim_sol(md,options);
++		//md.private.solution=EnumToString(solutionenum);
++		//return;
++	}
++
++	//Do we load results only?
++	if (options.getfieldvalue('loadonly',false)){
++		loadresultsfromcluster(md);
++		return;
++	}
++
++	//Write all input files
++	marshall(md);                                          // bin file
++	ToolkitsFile(md.toolkits,md.miscellaneous.name + '.toolkits'); // toolkits file
++	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
++
++	//Stop here if batch mode
++	if (options.getfieldvalue('batch','no') === 'yes'){
++		if (md.verbose.solution){
++			console.log('batch mode requested: not launching job interactively');
++			console.log('launch solution sequence on remote cluster by hand');
++		}
++		return;
++	}
++
++	//Upload all required files
++	modelname = md.miscellaneous.name;
++	filelist  = [modelname + '.bin ',modelname + '.toolkits '];
++	if (ispc){
++		filelist.push(modelname + '.bat ');
++	}
++	else{
++		filelist.push(modelname + '.queue ');
++	}
++
++	if (md.qmu.isdakota){
++		filelist.push(modelname + '.qmu.in');
++	}
++
++	if (restart == ''){
++		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist);
++	}
++
++	//launch queue job: 
++	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart);
++
++	//wait on lock
++	if (md.settings.waitonlock == 'NaN'){
++		//load when user enters 'y'
++		console.log('solution launched on remote cluster. log in to detect job completion.');
++		throw Error("solve error message: user detection of successfull completion of job not support yet!");
++		/*choice=input('Is the job successfully completed? (y/n)','s');
++		if ~strcmp(choice,'y'), 
++			console.log('Results not loaded... exiting'); 
++		else
++			md=loadresultsfromcluster(md);
++		end*/
++	}
++	else if (md.settings.waitonlock>0){
++		//we wait for the done file
++		done=waitonlock(md);
++		if (md.verbose.solution){
++			console.log('loading results from cluster');
++		}
++		loadresultsfromcluster(md);
++	}
++	else if (md.settings.waitonlock==0){
++		 console.log('Model results must be loaded manually with md=loadresultsfromcluster(md);');
++	}
++
++	//post processes qmu results if necessary
++	if (md.qmu.isdakota){
++		/*if ~strncmpi(options.getfieldvalue('keep','y'),'y',1)
++			system(['rm -rf qmu' num2str(feature('GetPid'))]);
++		end*/
++	}
++}
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 0)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 19780)
+@@ -0,0 +1,111 @@
++function ismodelselfconsistent(md){
++//ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
++//
++//   Usage:
++//      ismodelselfconsistent(md),
++
++	//initialize consistency as true
++	md.private.isconsistent=true;
++
++	//Get solution and associated analyses
++	solution=md.private.solution;
++	var analyses = AnalysisConfiguration(solution);
++
++	//Go through a model field, check that it is a class, and call checkconsistency
++	for(field in md){
++
++		//Some properties do not need to be checked
++		if (field == 'results' | field == 'debug' | field == 'radaroverlay'){
++			continue;
++		}
++
++		//Check that current field is a class
++		if(typeof md[field] == 'function'){
++			continue;
++		}
++		console.log(field);
++
++		//Check consistency of the class
++		md[field].checkconsistency(md,solution,analyses);
++	}
++
++	//error message if mode is not consistent
++	if (md.private.isconsistent==false){
++		throw Error('Model not consistent, see messages above');
++	}
++}
++
++function AnalysisConfiguration(solutiontype){ // {{{
++	//ANALYSISCONFIGURATION - return type of analyses, number of analyses 
++	//
++	//   Usage:
++	//      [analyses]=AnalysisConfiguration(solutiontype);
++
++	var analyses=[];
++	switch (solutiontype){
++
++		case StressbalanceSolutionEnum():
++			analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum()];
++			break;
++
++		case SteadystateSolutionEnum():
++			analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];
++			break;
++
++		case ThermalSolutionEnum():
++			analyses=[EnthalpyAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];
++			break;
++
++		case MasstransportSolutionEnum():
++			analyses=[MasstransportAnalysisEnum()];
++			break;
++
++		case BalancethicknessSolutionEnum():
++			analyses=[BalancethicknessAnalysisEnum()];
++			break;
++
++		case Balancethickness2SolutionEnum():
++			analyses=[Balancethickness2AnalysisEnum()];
++			break;
++
++		case BalancethicknessSoftSolutionEnum():
++			analyses=[BalancethicknessAnalysisEnum()];
++			break;
++
++		case BalancevelocitySolutionEnum():
++			analyses=[BalancevelocityAnalysisEnum()];
++			break;
++
++		case SurfaceSlopeSolutionEnum():
++			analyses=[L2ProjectionBaseAnalysisEnum()];
++			break;
++
++		case BedSlopeSolutionEnum():
++			analyses=[L2ProjectionBaseAnalysisEnum()];
++			break;
++
++		case GiaSolutionEnum():
++			analyses=[GiaAnalysisEnum()];
++			break;
++
++		case TransientSolutionEnum():
++			analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum(),EnthalpyAnalysisEnum(),MasstransportAnalysisEnum(),HydrologySommersAnalysisEnum];
++			break;
++
++		case FlaimSolutionEnum():
++			analyses=[FlaimAnalysisEnum()];
++			break;
++
++		case HydrologySolutionEnum():
++			analyses=[L2ProjectionBaseAnalysisEnum(),HydrologyShreveAnalysisEnum(),HydrologyDCInefficientAnalysisEnum(),HydrologyDCEfficientAnalysisEnum()];
++			break;
++
++		case DamageEvolutionSolutionEnum():
++			analyses=[DamageEvolutionAnalysisEnum()];
++			break;
++
++		default:
++			throw Error(sprintf("%s%s%s\n",' solution type: ',EnumToString(solutiontype),' not supported yet!'));
++	}
++	return analyses;
++} // }}}
+Index: ../trunk-jpl/src/m/consistency/checkfield.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.js	(revision 0)
++++ ../trunk-jpl/src/m/consistency/checkfield.js	(revision 19780)
+@@ -0,0 +1,263 @@
++function checkfield(md){
++//CHECKFIELD - check field consistency
++//
++//   Used to check model consistency.
++//   Requires: 
++//     'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 
++//             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
++//   Available options:
++//      - NaN: 1 if check that there is no NaN
++//      - size: [lines cols], NaN for non checked dimensions
++//      - >:  greater than provided value
++//      - >=: greater or equal to provided value
++//      - <:  smallerthan provided value
++//      - <=: smaller or equal to provided value
++//      - < vec:  smallerthan provided values on each vertex
++//      - timeseries: 1 if check time series consistency (size and time)
++//      - values: array of strings or vector of acceptable values
++//      - numel: list of acceptable number of elements
++//      - array: 1 if check that is array
++//      - empty: 1 if check that non empty
++//      - message: overloaded error message
++//
++//   Usage:
++//      checkfield(md,fieldname,options);
++
++	//get options
++	var args = Array.prototype.slice.call(arguments);
++	var  options = new pairoptions(args.slice(1,args.length));
++	
++	//get field: 
++	if (options.exist('field')){
++		field=options.getfieldvalue('field'); 
++		fieldname=options.getfieldvalue('fieldname','no fieldname'); 
++	}
++	else{
++		fieldname=options.getfieldvalue('fieldname'); 
++		eval("field=md." + fieldname + ";");
++	}
++
++	//check empty
++	if (options.exist('empty')){
++		if (field.length == 0){
++			md.checkmessage(options.getfieldvalue('message','field ' + "'" + fieldname + "'" + 'is empty'));
++		}
++	}
++
++	//Check size
++	if (options.exist('size')){
++		fieldsize=options.getfieldvalue('size');
++		if (isNaN(fieldsize[0])){
++			if (field[0].length !=fieldsize[1]){
++				md.checkmessage(options.getfieldvalue('message', sprintf("field '%s' should have %i columns",fieldname,fieldsize[1])));
++			}
++		}
++		else if (isNaN(fieldsize[1])){
++			if (field.length!= fieldsize[0]){
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have %i lines",fieldname,fieldsize[0])));
++			}
++		}
++		else{
++			if (IsArray(field)){
++				if ((field.length!=fieldsize[0])){
++					md.checkmessage(options.getfieldvalue('message', sprintf("field '%s' should be %ix%i",fieldname,fieldsize[0],fieldsize[1])));
++				}
++			}
++			if (IsArray(field[0])){
++				if(field[0].length!=fieldsize[1]){
++					md.checkmessage(options.getfieldvalue('message', sprintf("field '%s' should be %ix%i",fieldname,fieldsize[0],fieldsize[1])));
++				}
++			}
++		}
++	}
++
++	//Check numel
++	if (options.exist('numel')){
++		fieldnumel=options.getfieldvalue('numel');
++		if (!ArrayIsMember(fieldnumel,[field.length])){
++			if (fieldnumel.length==1){
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' size should be %i",fieldname,fieldnumel[0])));
++			}
++			else if (fieldnumel.length==2){
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' size should be %i or %i",fieldname,fieldnumel[0],fieldnumel[1])));
++			}
++			else{
++				var string=''; 
++				for (var i=0;i<fieldnumel.length;i++)string=sprintf("%s or %i",string,fieldnumel[i]);
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' size should be %s",fieldname,string)));
++			}
++		}
++	}
++
++	//check NaN
++	if (options.getfieldvalue('NaN',0)){
++		field2=MatrixToList(field);
++		if (ArrayAnyEqual(field2,NaN)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("NaN values found in field %s",field)));
++		}
++	}
++
++	//check arry
++	if (options.getfieldvalue('array',0)){
++		if (!IsArray(field)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should be an array!",fieldname)));
++		}
++	}
++
++	//check values
++	if (options.exist('values')){
++		fieldvalues=options.getfieldvalue('values');
++		if (typeof fieldvalues[0]== 'string'){
++			if (typeof field == 'string'){
++				if(ArrayAnyEqual(ArrayIsMember([field],fieldvalues),0)){
++					if (fieldvalues.length==1){
++						md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' value should be %s",fieldname,fieldvalues[0])));
++					}
++					else if (fieldvalues.length==2){
++						md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' values should be %s or %s",fieldname,fieldvalues[0],fieldvalues[1])));
++					}
++					else{
++						var string=''; 
++						for (var i=0;i<fieldvalues.length;i++)string=sprintf("%s or %s",string,fieldvalues[i]);
++						md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values in %s",fieldname,string)));
++					}
++				}
++			}
++			else{
++				var string=''; for (var i=0;i<fieldvalues.length;i++)string=sprintf("%s or %s",string,fieldvalues[i]);
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values in %s",fieldname,string)));
++			}
++		}
++		else{
++			if (typeof field == 'number') field2=MatrixToList([field]);
++			else field2=MatrixToList(field);
++			if (typeof field2[0] == 'number'){
++				if(ArrayAnyEqual(ArrayIsMember(field2,fieldvalues),0)){
++					var string=''; for (var i=0;i<fieldvalues.length;i++)string=sprintf("%s or %g",string,fieldvalues[i]);
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values in %s",fieldname,string)));
++				}
++			}
++			else{
++				var string=''; for (var i=0;i<fieldvalues.length;i++)string=sprintf("%s or %g",string,fieldvalues[i]);
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should be a number in %s",fieldname,string)));
++			}
++		}
++	}
++	
++	//check greater
++	if (options.exist('>=')){
++		lowerbound=options.getfieldvalue('>=');
++		field2=MatrixToList(field);
++		if (options.getfieldvalue('timeseries',0)) field2=MatrixToList(ArrayCopy(field).splice(-1,1));
++
++		if (ArrayAnyBelowStrict(field2,lowerbound)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values above %g",fieldname,lowerbound)));
++		}
++	}
++	if (options.exist('>')){
++		lowerbound=options.getfieldvalue('>');
++		field2=MatrixToList(field);
++		if (options.getfieldvalue('timeseries',0)) field2=MatrixToList(ArrayCopy(field).splice(-1,1));
++
++		if (ArrayAnyBelowOrEqual(field2,lowerbound)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values above %g",fieldname,lowerbound)));
++		}
++	}
++	
++	//check smaller
++	if (options.exist('<=')){
++		upperbound=options.getfieldvalue('<=');
++		field2=MatrixToList(field);
++		if (options.getfieldvalue('timeseries',0)) field2=MatrixToList(ArrayCopy(field).splice(-1,1));
++
++		if (ArrayAnyAboveOrEqual(field2,upperbound)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values below %g",fieldname,upperbound)));
++		}
++	}
++	
++	
++	if (options.exist('<')){
++		upperbound=options.getfieldvalue('<');
++		field2=MatrixToList(field);
++		if (options.getfieldvalue('timeseries',0)) field2=MatrixToList(ArrayCopy(field).splice(-1,1));
++		if (ArrayAnyAboveStrict(field2,upperbound)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have values below %g",fieldname,upperbound)));
++		}
++	}
++
++	//Check row of stringrow
++	if (options.getfieldvalue('stringrow',0)){
++		if (IsArray(field[0])){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have only one row",field)));
++		}
++		if (!IsArray(field)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should be an array of string",fieldname)));
++		}
++		else{
++			for(var i=0;i<field.length;i++){
++				if (!(typeof field[i] == 'string')){
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' values should be a cell of strings",fieldname)));
++				}
++			}
++		}
++	}
++
++	//check file
++	if (options.getfieldvalue('file',0)){
++		/*if ~exist(field,'file')
++			md.checkmessage(['file provided in ''' fieldname ''': ''' field ''' does not exist']);
++		end*/
++		throw Error("checkfield error message: file checking on javascript not supported yet!");
++	}
++
++	//Check forcings (size and times)
++	if (options.getfieldvalue('timeseries',0)){
++		if (field.length==md.mesh.numberofvertices | field.length==md.mesh.numberofelements){
++			if (IsArray(field[0])){
++				md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have only one column as there are md.mesh.numberofvertices lines",fieldname)));
++			}
++		}
++		else if ((field.length==md.mesh.numberofvertices+1) | (field.length==md.mesh.numberofelements+1)){
++			var times=field[field.length-1]; var sorted_times=ArraySort(times);
++			for(var i=0;i<times.length;i++){
++				if(times[i] !=sorted_times[i]){
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' columns should be sorted chronologically",fieldname)));
++					break;
++				}
++			}
++			var timesm=ArrayCopy(times).splice(0,-1); var timesp=ArrayCopy(times).shift();
++			for(var i=0;i<timesm.length;i++){
++				if(timesm[i]==timesp[i]){
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' columns must not contain duplicate timesteps",fieldname)));
++					break;
++				}
++			}
++		}
++		else{
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines",fieldname)));
++		}
++	}
++
++	//Check single value forcings (size and times)
++	if (options.getfieldvalue('singletimeseries',0)){
++		if (field.length==2){
++			var times=field[1]; var sorted_times=ArraySort(times);
++			for(var i=0;i<times.length;i++){
++				if(times[i] !=sorted_times[i]){
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' columns should be sorted chronologically",fieldname)));
++					break;
++				}
++			}
++			var timesm=ArrayCopy(times).splice(0,-1); var timesp=ArrayCopy(times).shift();
++			for(var i=0;i<timesm.length;i++){
++				if(timesm[i]==timesp[i]){
++					md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' columns must not contain duplicate timesteps",fieldname)));
++					break;
++				}
++			}
++		}
++		else{
++			md.checkmessage(options.getfieldvalue('message',sprintf("field '%s' should have 2 lines",fieldname)));
++		}
++	}
++}
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19780)
+@@ -77,6 +77,23 @@
+ 			fielddisplay(this,'mantle_shear_modulus','Mantle shear modulus [Pa]');
+ 			fielddisplay(this,'mantle_density','Mantle density [g/cm^-3]');
+ 		} // }}}
++		this.checkconsistency = function(md,solution,analyses) { // {{{
++			checkfield(md,'fieldname','materials.rho_ice','>',0);
++			checkfield(md,'fieldname','materials.rho_water','>',0);
++			checkfield(md,'fieldname','materials.rho_freshwater','>',0);
++			checkfield(md,'fieldname','materials.mu_water','>',0);
++			checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1);
++			checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements,1]);
++			checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval']);
++
++			if(ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
++				checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1);
++				checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
++				checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
++			}
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 		this.rho_ice                    = 0.;
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19780)
+@@ -52,6 +52,28 @@
+ 		this.elementtype = function() {//{{{
+ 			return 'Tria';
+ 		} // }}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
++
++			checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',NewArrayFillIncrement(md.mesh.numberofvertices,1,1));
++			checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements, 3]);
++			if(ArrayAnyEqual(ArrayIsMember(NewArrayFillIncrement(md.mesh.numberofvertices,1,1),ArraySort(ArrayUnique(MatrixToList(md.mesh.elements)))),0)){
++				md.checkmessage('orphan nodes have been found. Check the mesh outline');
++			}
++			checkfield(md,'fieldname','mesh.numberofelements','>',0);
++			checkfield(md,'fieldname','mesh.numberofvertices','>',0);
++			checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d");
++			checkfield(md,'fieldname','mesh.segments','NaN',1,'>',0,'size',[NaN, 3]);
++
++			switch(solution){
++			case ThermalSolutionEnum():
++				checkmessage(md,'thermal not supported for 2d mesh');
++				break;
++			default:
++				break
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 		this.x                           = NaN;
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19780)
+@@ -38,6 +38,18 @@
+ 
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++			
++			checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1);
++			checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1);
++			checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1);
++			checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1]);
++			checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1);
++			checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1]);
++			if (this.final_time-this.start_time<0){
++				md.checkmessage('timestepping.final_time should be larger than timestepping.start_time');
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.start_time      = 0.;
+Index: ../trunk-jpl/src/m/classes/constants.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/constants.js	(revision 19780)
+@@ -28,6 +28,14 @@
+ 			fielddisplay(this,'referencetemperature','reference temperature used in the enthalpy model [K]');
+ 
+ 		} //}}}
++		this.checkconsistency = function(md,solution,analyses) {//% {{{
++
++			checkfield(md,'fieldname','constants.g','>=',0,'size',[1,1]); //We allow 0 for validation tests
++			checkfield(md,'fieldname','constants.omega','>=',0,'size',[1,1]);
++			checkfield(md,'fieldname','constants.yts','>',0,'size',[1,1]);
++			checkfield(md,'fieldname','constants.referencetemperature','size',[1,1]);
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 		this.g                    = 0.;
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19780)
+@@ -23,6 +23,63 @@
+ 		fielddisplay(this,'watercolumn','thickness of subglacial water [m]');
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++			if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)){
++				if (!(isNaN(md.initialization.vx) | isNaN(md.initialization.vy))){
++					checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++					checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				}
++			}
++			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++			}
++			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum)){
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				//Triangle with zero velocity
++				for(var i=0;i<md.mesh.numberofelements;i++){
++					var sum=0;
++					for(var j=0;j<md.mesh.elements[0].length;j++){
++						if  ((md.initialization.vx[md.mesh.elements[i][j]-1]==0) & (md.initialization.vy[md.mesh.elements[i][j]-1]==0)) sum+=1;
++					}
++					if (sum==md.mesh.elements[0].length){
++						md.checkmessage('at least one triangle has all its vertices with a zero velocity');
++					}
++				}
++			}
++			if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				if (md.mesh.dimension() == 3){
++					checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++				}
++				checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++				checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++			}
++			if( ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy){
++				checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices, 1]);
++			}
++			if(ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)){
++				if (md.hydrology.type() == 'hydrologyshreve'){
++					checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++				}
++			}
++			if(ArrayAnyEqual(ArrayIsMember(HydrologyDCInefficientAnalysisEnum(),analyses),1)){
++				if (md.hydrology.type() == 'hydrologydc'){
++					checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				}
++			}
++			if(ArrayAnyEqual(ArrayIsMember(HydrologyDCEfficientAnalysisEnum(),analyses),1)){
++				if (md.hydrology.type() == 'hydrologydc'){
++					if (md.hydrology.isefficientlayer==1){
++						checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++						checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++					}
++				}
++			}
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	this.vx            = NaN;
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19780)
+@@ -20,6 +20,17 @@
+ 			}
+ 
+ 		} // }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1);
++			}
++			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1);
++			}
++			checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++
++		} // }}}
+ 	//properties 
+ 	this.mass_balance = NaN;
+ 	this.requested_outputs      = [''];
+Index: ../trunk-jpl/src/m/classes/mask.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/mask.js	(revision 19780)
+@@ -18,5 +18,33 @@
+ 			fielddisplay(this,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");
+ 			fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
+ 		} //}}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
+ 
++			checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
++			isice=NewArrayFill(md.mesh.numberofvertices,0); 
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
++			if (ArraySum(isice)==0){
++				console.log('no ice present in the domain');
++			}
++			if (ArrayMax(md.mask.ice_levelset)<0){
++				console.log('no ice front provided');
++			}
++				
++			icefront=NewArrayFill(md.mesh.numberofelements,0);
++			for(var i=0;i<md.mesh.numberofelements;i++){
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0);
++				}
++			}
++			if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
++				if (md.mesh.elementtype()=='Tria'){
++					pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
++				}
++				else if (md.mesh.elementtype() == 'Penta'){
++					pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
++				}
++				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
++			}
++		} // }}}
+ }
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19780)
+@@ -15,6 +15,26 @@
+ 			fielddisplay(this,'base','ice base elevation [m]');
+ 			fielddisplay(this,'bed','bed elevation [m]');
+ 		} //}}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			if ((solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum())){
++				checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'>=',0);
++			}
++			else{
++				checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices, 1],'>',0);
++				for(var i=0;i<md.mesh.numberofvertices;i++){
++					if (Math.abs(md.geometry.thickness.thickness-md.geometry.surface+md.geometry.base)>Math.pow(10,9)){
++						md = checkmessage(md,'equality thickness=surface-base violated');
++						break;
++					}
++				}
++				if (solution==TransientSolutionEnum() & md.transient.isgroundingline){
++					checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				}
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 		this.surface           = NaN;
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19780)
+@@ -18,6 +18,10 @@
+ 		fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
+ 
+ 	}// }}}
++	this.type= function(){// {{{
++
++		return "hydrologyshreve";
++	}// }}}
+ 	//properties 
+ 	// {{{
+ 	this.spcwatercolumn = NaN;
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19780)
+@@ -29,7 +29,28 @@
+ 			}
+ 
+ 		} // }}}
+-	//properties 
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
++				if (!(solution==TransientSolutionEnum() & md.transient.ismasstransport==0)){
++					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++				}
++			}
++
++			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++			}
++			if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
++				if (!(solution==TransientSolutionEnum() & md.transient.isthermal==0)){
++					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++				}
++			}
++		} // }}}
++	//properties
+ 	//{{{
+ 	this.groundedice_melting_rate  = NaN;
+ 	this.floatingice_melting_rate  = NaN;
+Index: ../trunk-jpl/src/m/classes/flowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/flowequation.js	(revision 19780)
+@@ -33,6 +33,58 @@
+ 		fielddisplay(this,'borderFS',"vertices on FS' border (for tiling)");
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) {//{{{
++
++			//Early return
++			if ( ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceSIAAnalysisEnum(),analyses),1))) | 
++					(solution==TransientSolutionEnum() & md.transient.isstressbalance==0)
++			   ) return ;
++
++			checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2','P2bubble']);
++			checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4']);
++			checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','LATaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart','LACrouzeixRaviart']);
++			checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>=',0.);
++			checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>=',0.);
++			checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>=',0.);
++			checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>=',0.);
++			checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',0.5);
++			checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices, 1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices, 1],'values',[0, 1]);
++			checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices, 1],'values',[0, 1]);
++			if (md.mesh.domaintype() == '2Dhorizontal'){
++				checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices, 1],'values',[1,2]);
++				checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements, 1],'values',[1,2]);
++			}
++			else if (md.mesh.domaintype() == '3Dsurface'){
++				checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices, 1],'values',[1,2]);
++				checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements, 1],'values',[1,2]);
++			}
++			else if (md.mesh.domaintype() =='2Dvertical'){
++				checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices, 1],'values',[2,4,5]);
++				checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements, 1],'values',[2,4,5]);
++			}
++			else if (md.mesh.domaintype() =='3D'){
++				checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices, 1],'values',[0,1,2,3,4,5,6,7,8]);
++				checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements, 1],'values',[0,1,2,3,4,5,6,7,8]);
++			}
++			else throw Error('Case not supported yet');
++			
++			if (!(this.isSIA | this.isSSA | this.isL1L2 | this.isHO | this.isFS)){
++				md = checkmessage(md,['no element types set for this model']);
++			}
++			if(ArrayAnyEqual(ArrayIsMember(StressbalanceSIAAnalysisEnum(), analyses),1)){
++				if (ArrayAnyEqual(this.element_equation,1)){
++					if(this.vertex_equation & ArrayAnyBelowStrict(md.mask.groundedice_levelset)){
++						console.log(sprintf("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n"));
++					}
++				}
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.isSIA                          = 0;
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19780)
+@@ -61,6 +61,33 @@
+ 			fielddisplay(this,'requested_outputs','additional outputs requested');
+ 		}
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++			
++			checkfield(md,'fieldname','damage.isdamage','values',[1,0]);
++			if (this.isdamage){
++				checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2]);
++				checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices ,1]);
++				checkfield(md,'fieldname','damage.spcdamage','timeseries',1);
++				checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0);
++				checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0, 1, 2, 4]);
++				checkfield(md,'fieldname','damage.maxiter','>=0',0);
++				checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2']);
++				checkfield(md,'fieldname','damage.stress_threshold','>=',0);
++				checkfield(md,'fieldname','damage.kappa','>',1);
++				checkfield(md,'fieldname','damage.healing','>=',0);
++				checkfield(md,'fieldname','damage.c1','>=',0);
++				checkfield(md,'fieldname','damage.c2','>=',0);
++				checkfield(md,'fieldname','damage.c3','>=',0);
++				checkfield(md,'fieldname','damage.c4','>=',0);
++				checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0, 1]);
++				checkfield(md,'fieldname','damage.requested_outputs','stringrow',1);
++			}
++			else if (this.law!=0){
++				if (solution==DamageEvolutionSolutionEnum){
++					throw Error('Invalid evolution law (md.damage.law) for a damage solution');
++				}
++			}
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	this.isdamage            = 0;
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19780)
+@@ -14,6 +14,17 @@
+ 		fielddisplay(this,'p','p exponent');
+ 		fielddisplay(this,'q','q exponent');
+ 	} // }}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
++
++			//Early return
++			if ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1))){
++				return; 
++			}
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements ,1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements ,1]);
++
++		} // }}}
+ 	//properties 
+ 	//{{{
+ 	this.coefficient = NaN;
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19779)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19780)
+@@ -85,6 +85,10 @@
+ 			this.miscellaneous    = new miscellaneous();
+ 			this.private          = new private();
+ 		} //}}}
++		this.checkmessage = function(string){ //{{{
++			console.log('model not consistent: ' + string);
++			md.private.isconsistent=false;
++		} //}}}
+ 	//properties
+ 	// {{{
+ 		//Careful here: no other class should be used as default value this is a bug of matlab
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 0)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19780)
+@@ -0,0 +1,952 @@
++//WARNING: DO NOT MODIFY THIS FILE
++//this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++//Please read src/c/shared/Enum/README for more information
++function FemModelEnum(){ return StringToEnum("FemModel");}
++function AutodiffIsautodiffEnum(){ return StringToEnum("AutodiffIsautodiff");}
++function AutodiffNumDependentsEnum(){ return StringToEnum("AutodiffNumDependents");}
++function AutodiffNumDependentObjectsEnum(){ return StringToEnum("AutodiffNumDependentObjects");}
++function AutodiffDependentObjectNamesEnum(){ return StringToEnum("AutodiffDependentObjectNames");}
++function AutodiffDependentObjectTypesEnum(){ return StringToEnum("AutodiffDependentObjectTypes");}
++function AutodiffDependentObjectIndicesEnum(){ return StringToEnum("AutodiffDependentObjectIndices");}
++function AutodiffDependentObjectsEnum(){ return StringToEnum("AutodiffDependentObjects");}
++function AutodiffNumIndependentsEnum(){ return StringToEnum("AutodiffNumIndependents");}
++function AutodiffNumIndependentObjectsEnum(){ return StringToEnum("AutodiffNumIndependentObjects");}
++function AutodiffIndependentObjectNamesEnum(){ return StringToEnum("AutodiffIndependentObjectNames");}
++function AutodiffIndependentObjectTypesEnum(){ return StringToEnum("AutodiffIndependentObjectTypes");}
++function AutodiffIndependentObjectsEnum(){ return StringToEnum("AutodiffIndependentObjects");}
++function AutodiffJacobianEnum(){ return StringToEnum("AutodiffJacobian");}
++function AutodiffXpEnum(){ return StringToEnum("AutodiffXp");}
++function AutodiffDriverEnum(){ return StringToEnum("AutodiffDriver");}
++function AutodiffFosForwardIndexEnum(){ return StringToEnum("AutodiffFosForwardIndex");}
++function AutodiffFovForwardIndicesEnum(){ return StringToEnum("AutodiffFovForwardIndices");}
++function AutodiffFosReverseIndexEnum(){ return StringToEnum("AutodiffFosReverseIndex");}
++function AutodiffMassFluxSegmentsPresentEnum(){ return StringToEnum("AutodiffMassFluxSegmentsPresent");}
++function AutodiffKeepEnum(){ return StringToEnum("AutodiffKeep");}
++function AutodiffObufsizeEnum(){ return StringToEnum("AutodiffObufsize");}
++function AutodiffLbufsizeEnum(){ return StringToEnum("AutodiffLbufsize");}
++function AutodiffCbufsizeEnum(){ return StringToEnum("AutodiffCbufsize");}
++function AutodiffTbufsizeEnum(){ return StringToEnum("AutodiffTbufsize");}
++function AutodiffGcTriggerRatioEnum(){ return StringToEnum("AutodiffGcTriggerRatio");}
++function AutodiffGcTriggerMaxSizeEnum(){ return StringToEnum("AutodiffGcTriggerMaxSize");}
++function BalancethicknessSpcthicknessEnum(){ return StringToEnum("BalancethicknessSpcthickness");}
++function BalancethicknessStabilizationEnum(){ return StringToEnum("BalancethicknessStabilization");}
++function BalancethicknessThickeningRateEnum(){ return StringToEnum("BalancethicknessThickeningRate");}
++function BasalforcingsEnum(){ return StringToEnum("Basalforcings");}
++function BasalforcingsGeothermalfluxEnum(){ return StringToEnum("BasalforcingsGeothermalflux");}
++function BasalforcingsGroundediceMeltingRateEnum(){ return StringToEnum("BasalforcingsGroundediceMeltingRate");}
++function BasalforcingsFloatingiceMeltingRateEnum(){ return StringToEnum("BasalforcingsFloatingiceMeltingRate");}
++function BasalforcingsDeepwaterMeltingRateEnum(){ return StringToEnum("BasalforcingsDeepwaterMeltingRate");}
++function BasalforcingsDeepwaterElevationEnum(){ return StringToEnum("BasalforcingsDeepwaterElevation");}
++function BasalforcingsUpperwaterElevationEnum(){ return StringToEnum("BasalforcingsUpperwaterElevation");}
++function BasalforcingsMeltrateFactorEnum(){ return StringToEnum("BasalforcingsMeltrateFactor");}
++function BasalforcingsThresholdThicknessEnum(){ return StringToEnum("BasalforcingsThresholdThickness");}
++function BasalforcingsUpperdepthMeltEnum(){ return StringToEnum("BasalforcingsUpperdepthMelt");}
++function FloatingMeltRateEnum(){ return StringToEnum("FloatingMeltRate");}
++function LinearFloatingMeltRateEnum(){ return StringToEnum("LinearFloatingMeltRate");}
++function MismipFloatingMeltRateEnum(){ return StringToEnum("MismipFloatingMeltRate");}
++function BedEnum(){ return StringToEnum("Bed");}
++function BaseEnum(){ return StringToEnum("Base");}
++function ConstantsGEnum(){ return StringToEnum("ConstantsG");}
++function ConstantsReferencetemperatureEnum(){ return StringToEnum("ConstantsReferencetemperature");}
++function ConstantsYtsEnum(){ return StringToEnum("ConstantsYts");}
++function DependentObjectEnum(){ return StringToEnum("DependentObject");}
++function StressbalanceAbstolEnum(){ return StringToEnum("StressbalanceAbstol");}
++function StressbalanceIsnewtonEnum(){ return StringToEnum("StressbalanceIsnewton");}
++function StressbalanceMaxiterEnum(){ return StringToEnum("StressbalanceMaxiter");}
++function StressbalancePenaltyFactorEnum(){ return StringToEnum("StressbalancePenaltyFactor");}
++function StressbalanceReferentialEnum(){ return StringToEnum("StressbalanceReferential");}
++function StressbalanceReltolEnum(){ return StringToEnum("StressbalanceReltol");}
++function StressbalanceNumRequestedOutputsEnum(){ return StringToEnum("StressbalanceNumRequestedOutputs");}
++function StressbalanceRequestedOutputsEnum(){ return StringToEnum("StressbalanceRequestedOutputs");}
++function StressbalanceRestolEnum(){ return StringToEnum("StressbalanceRestol");}
++function StressbalanceRiftPenaltyLockEnum(){ return StringToEnum("StressbalanceRiftPenaltyLock");}
++function StressbalanceRiftPenaltyThresholdEnum(){ return StringToEnum("StressbalanceRiftPenaltyThreshold");}
++function StressbalanceShelfDampeningEnum(){ return StringToEnum("StressbalanceShelfDampening");}
++function StressbalanceSpcvxEnum(){ return StringToEnum("StressbalanceSpcvx");}
++function StressbalanceSpcvyEnum(){ return StringToEnum("StressbalanceSpcvy");}
++function StressbalanceSpcvzEnum(){ return StringToEnum("StressbalanceSpcvz");}
++function StressbalanceFSreconditioningEnum(){ return StringToEnum("StressbalanceFSreconditioning");}
++function StressbalanceVertexPairingEnum(){ return StringToEnum("StressbalanceVertexPairing");}
++function StressbalanceViscosityOvershootEnum(){ return StringToEnum("StressbalanceViscosityOvershoot");}
++function LoadingforceXEnum(){ return StringToEnum("LoadingforceX");}
++function LoadingforceYEnum(){ return StringToEnum("LoadingforceY");}
++function LoadingforceZEnum(){ return StringToEnum("LoadingforceZ");}
++function FlowequationBorderSSAEnum(){ return StringToEnum("FlowequationBorderSSA");}
++function FlowequationBorderHOEnum(){ return StringToEnum("FlowequationBorderHO");}
++function FlowequationBorderFSEnum(){ return StringToEnum("FlowequationBorderFS");}
++function FlowequationElementEquationEnum(){ return StringToEnum("FlowequationElementEquation");}
++function FlowequationIsSIAEnum(){ return StringToEnum("FlowequationIsSIA");}
++function FlowequationIsSSAEnum(){ return StringToEnum("FlowequationIsSSA");}
++function FlowequationIsL1L2Enum(){ return StringToEnum("FlowequationIsL1L2");}
++function FlowequationIsHOEnum(){ return StringToEnum("FlowequationIsHO");}
++function FlowequationIsFSEnum(){ return StringToEnum("FlowequationIsFS");}
++function FlowequationFeSSAEnum(){ return StringToEnum("FlowequationFeSSA");}
++function FlowequationFeHOEnum(){ return StringToEnum("FlowequationFeHO");}
++function FlowequationFeFSEnum(){ return StringToEnum("FlowequationFeFS");}
++function FlowequationVertexEquationEnum(){ return StringToEnum("FlowequationVertexEquation");}
++function FrictionAsEnum(){ return StringToEnum("FrictionAs");}
++function FrictionCoefficientEnum(){ return StringToEnum("FrictionCoefficient");}
++function FrictionCoefficientcoulombEnum(){ return StringToEnum("FrictionCoefficientcoulomb");}
++function FrictionPEnum(){ return StringToEnum("FrictionP");}
++function FrictionQEnum(){ return StringToEnum("FrictionQ");}
++function FrictionMEnum(){ return StringToEnum("FrictionM");}
++function FrictionCEnum(){ return StringToEnum("FrictionC");}
++function FrictionLawEnum(){ return StringToEnum("FrictionLaw");}
++function FrictionGammaEnum(){ return StringToEnum("FrictionGamma");}
++function FrictionFEnum(){ return StringToEnum("FrictionF");}
++function FrictionWaterLayerEnum(){ return StringToEnum("FrictionWaterLayer");}
++function FrictionEffectivePressureEnum(){ return StringToEnum("FrictionEffectivePressure");}
++function FrictionCouplingEnum(){ return StringToEnum("FrictionCoupling");}
++function GeometryHydrostaticRatioEnum(){ return StringToEnum("GeometryHydrostaticRatio");}
++function HydrologyModelEnum(){ return StringToEnum("HydrologyModel");}
++function HydrologyshreveEnum(){ return StringToEnum("Hydrologyshreve");}
++function HydrologyshreveSpcwatercolumnEnum(){ return StringToEnum("HydrologyshreveSpcwatercolumn");}
++function HydrologyshreveStabilizationEnum(){ return StringToEnum("HydrologyshreveStabilization");}
++function HydrologydcEnum(){ return StringToEnum("Hydrologydc");}
++function SedimentHeadEnum(){ return StringToEnum("SedimentHead");}
++function SedimentHeadOldEnum(){ return StringToEnum("SedimentHeadOld");}
++function SedimentHeadResidualEnum(){ return StringToEnum("SedimentHeadResidual");}
++function EffectivePressureEnum(){ return StringToEnum("EffectivePressure");}
++function EplHeadEnum(){ return StringToEnum("EplHead");}
++function EplHeadOldEnum(){ return StringToEnum("EplHeadOld");}
++function EplHeadSlopeXEnum(){ return StringToEnum("EplHeadSlopeX");}
++function EplHeadSlopeYEnum(){ return StringToEnum("EplHeadSlopeY");}
++function EplZigZagCounterEnum(){ return StringToEnum("EplZigZagCounter");}
++function HydrologydcMaxIterEnum(){ return StringToEnum("HydrologydcMaxIter");}
++function HydrologydcRelTolEnum(){ return StringToEnum("HydrologydcRelTol");}
++function HydrologydcSpcsedimentHeadEnum(){ return StringToEnum("HydrologydcSpcsedimentHead");}
++function HydrologydcSedimentCompressibilityEnum(){ return StringToEnum("HydrologydcSedimentCompressibility");}
++function HydrologydcSedimentPorosityEnum(){ return StringToEnum("HydrologydcSedimentPorosity");}
++function HydrologydcSedimentThicknessEnum(){ return StringToEnum("HydrologydcSedimentThickness");}
++function HydrologydcSedimentTransmitivityEnum(){ return StringToEnum("HydrologydcSedimentTransmitivity");}
++function HydrologydcWaterCompressibilityEnum(){ return StringToEnum("HydrologydcWaterCompressibility");}
++function HydrologydcSpceplHeadEnum(){ return StringToEnum("HydrologydcSpceplHead");}
++function HydrologydcMaskEplactiveNodeEnum(){ return StringToEnum("HydrologydcMaskEplactiveNode");}
++function HydrologydcMaskEplactiveEltEnum(){ return StringToEnum("HydrologydcMaskEplactiveElt");}
++function HydrologydcEplCompressibilityEnum(){ return StringToEnum("HydrologydcEplCompressibility");}
++function HydrologydcEplPorosityEnum(){ return StringToEnum("HydrologydcEplPorosity");}
++function HydrologydcEplInitialThicknessEnum(){ return StringToEnum("HydrologydcEplInitialThickness");}
++function HydrologydcEplColapseThicknessEnum(){ return StringToEnum("HydrologydcEplColapseThickness");}
++function HydrologydcEplMaxThicknessEnum(){ return StringToEnum("HydrologydcEplMaxThickness");}
++function HydrologydcEplThicknessEnum(){ return StringToEnum("HydrologydcEplThickness");}
++function HydrologydcEplThicknessOldEnum(){ return StringToEnum("HydrologydcEplThicknessOld");}
++function HydrologydcEplThickCompEnum(){ return StringToEnum("HydrologydcEplThickComp");}
++function HydrologydcEplConductivityEnum(){ return StringToEnum("HydrologydcEplConductivity");}
++function HydrologydcIsefficientlayerEnum(){ return StringToEnum("HydrologydcIsefficientlayer");}
++function HydrologydcSedimentlimitFlagEnum(){ return StringToEnum("HydrologydcSedimentlimitFlag");}
++function HydrologydcSedimentlimitEnum(){ return StringToEnum("HydrologydcSedimentlimit");}
++function HydrologydcTransferFlagEnum(){ return StringToEnum("HydrologydcTransferFlag");}
++function HydrologydcLeakageFactorEnum(){ return StringToEnum("HydrologydcLeakageFactor");}
++function HydrologydcPenaltyFactorEnum(){ return StringToEnum("HydrologydcPenaltyFactor");}
++function HydrologydcPenaltyLockEnum(){ return StringToEnum("HydrologydcPenaltyLock");}
++function HydrologydcEplflipLockEnum(){ return StringToEnum("HydrologydcEplflipLock");}
++function HydrologydcBasalMoulinInputEnum(){ return StringToEnum("HydrologydcBasalMoulinInput");}
++function HydrologyLayerEnum(){ return StringToEnum("HydrologyLayer");}
++function HydrologySedimentEnum(){ return StringToEnum("HydrologySediment");}
++function HydrologyEfficientEnum(){ return StringToEnum("HydrologyEfficient");}
++function HydrologySedimentKmaxEnum(){ return StringToEnum("HydrologySedimentKmax");}
++function HydrologysommersEnum(){ return StringToEnum("Hydrologysommers");}
++function HydrologyHeadEnum(){ return StringToEnum("HydrologyHead");}
++function HydrologyGapHeightEnum(){ return StringToEnum("HydrologyGapHeight");}
++function HydrologyBumpSpacingEnum(){ return StringToEnum("HydrologyBumpSpacing");}
++function HydrologyBumpHeightEnum(){ return StringToEnum("HydrologyBumpHeight");}
++function HydrologyEnglacialInputEnum(){ return StringToEnum("HydrologyEnglacialInput");}
++function HydrologyMoulinInputEnum(){ return StringToEnum("HydrologyMoulinInput");}
++function HydrologyReynoldsEnum(){ return StringToEnum("HydrologyReynolds");}
++function HydrologyNeumannfluxEnum(){ return StringToEnum("HydrologyNeumannflux");}
++function HydrologySpcheadEnum(){ return StringToEnum("HydrologySpchead");}
++function HydrologyConductivityEnum(){ return StringToEnum("HydrologyConductivity");}
++function IndependentObjectEnum(){ return StringToEnum("IndependentObject");}
++function InversionControlParametersEnum(){ return StringToEnum("InversionControlParameters");}
++function InversionControlScalingFactorsEnum(){ return StringToEnum("InversionControlScalingFactors");}
++function InversionCostFunctionThresholdEnum(){ return StringToEnum("InversionCostFunctionThreshold");}
++function InversionCostFunctionsCoefficientsEnum(){ return StringToEnum("InversionCostFunctionsCoefficients");}
++function InversionCostFunctionsEnum(){ return StringToEnum("InversionCostFunctions");}
++function InversionGradientScalingEnum(){ return StringToEnum("InversionGradientScaling");}
++function InversionIscontrolEnum(){ return StringToEnum("InversionIscontrol");}
++function InversionTypeEnum(){ return StringToEnum("InversionType");}
++function InversionIncompleteAdjointEnum(){ return StringToEnum("InversionIncompleteAdjoint");}
++function InversionMaxParametersEnum(){ return StringToEnum("InversionMaxParameters");}
++function InversionMaxiterPerStepEnum(){ return StringToEnum("InversionMaxiterPerStep");}
++function InversionMaxiterEnum(){ return StringToEnum("InversionMaxiter");}
++function InversionMaxstepsEnum(){ return StringToEnum("InversionMaxsteps");}
++function InversionFatolEnum(){ return StringToEnum("InversionFatol");}
++function InversionFrtolEnum(){ return StringToEnum("InversionFrtol");}
++function InversionGatolEnum(){ return StringToEnum("InversionGatol");}
++function InversionGrtolEnum(){ return StringToEnum("InversionGrtol");}
++function InversionGttolEnum(){ return StringToEnum("InversionGttol");}
++function InversionAlgorithmEnum(){ return StringToEnum("InversionAlgorithm");}
++function InversionMinParametersEnum(){ return StringToEnum("InversionMinParameters");}
++function InversionNstepsEnum(){ return StringToEnum("InversionNsteps");}
++function InversionDxminEnum(){ return StringToEnum("InversionDxmin");}
++function InversionNumControlParametersEnum(){ return StringToEnum("InversionNumControlParameters");}
++function InversionNumCostFunctionsEnum(){ return StringToEnum("InversionNumCostFunctions");}
++function InversionStepThresholdEnum(){ return StringToEnum("InversionStepThreshold");}
++function InversionThicknessObsEnum(){ return StringToEnum("InversionThicknessObs");}
++function InversionSurfaceObsEnum(){ return StringToEnum("InversionSurfaceObs");}
++function InversionVxObsEnum(){ return StringToEnum("InversionVxObs");}
++function InversionVyObsEnum(){ return StringToEnum("InversionVyObs");}
++function InversionVzObsEnum(){ return StringToEnum("InversionVzObs");}
++function MaskIceLevelsetEnum(){ return StringToEnum("MaskIceLevelset");}
++function MaterialsBetaEnum(){ return StringToEnum("MaterialsBeta");}
++function MaterialsHeatcapacityEnum(){ return StringToEnum("MaterialsHeatcapacity");}
++function MaterialsLatentheatEnum(){ return StringToEnum("MaterialsLatentheat");}
++function MaterialsMeltingpointEnum(){ return StringToEnum("MaterialsMeltingpoint");}
++function MaterialsMixedLayerCapacityEnum(){ return StringToEnum("MaterialsMixedLayerCapacity");}
++function MaterialsRheologyBEnum(){ return StringToEnum("MaterialsRheologyB");}
++function MaterialsRheologyBbarEnum(){ return StringToEnum("MaterialsRheologyBbar");}
++function MaterialsRheologyLawEnum(){ return StringToEnum("MaterialsRheologyLaw");}
++function MaterialsRheologyNEnum(){ return StringToEnum("MaterialsRheologyN");}
++function DamageIsdamageEnum(){ return StringToEnum("DamageIsdamage");}
++function DamageDEnum(){ return StringToEnum("DamageD");}
++function DamageFEnum(){ return StringToEnum("DamageF");}
++function DamageDbarEnum(){ return StringToEnum("DamageDbar");}
++function DamageLawEnum(){ return StringToEnum("DamageLaw");}
++function DamageC1Enum(){ return StringToEnum("DamageC1");}
++function DamageC2Enum(){ return StringToEnum("DamageC2");}
++function DamageC3Enum(){ return StringToEnum("DamageC3");}
++function DamageC4Enum(){ return StringToEnum("DamageC4");}
++function DamageElementinterpEnum(){ return StringToEnum("DamageElementinterp");}
++function DamageHealingEnum(){ return StringToEnum("DamageHealing");}
++function DamageStressThresholdEnum(){ return StringToEnum("DamageStressThreshold");}
++function DamageKappaEnum(){ return StringToEnum("DamageKappa");}
++function DamageStabilizationEnum(){ return StringToEnum("DamageStabilization");}
++function DamageMaxiterEnum(){ return StringToEnum("DamageMaxiter");}
++function DamageSpcdamageEnum(){ return StringToEnum("DamageSpcdamage");}
++function DamageMaxDamageEnum(){ return StringToEnum("DamageMaxDamage");}
++function DamageEquivStressEnum(){ return StringToEnum("DamageEquivStress");}
++function DamageEvolutionNumRequestedOutputsEnum(){ return StringToEnum("DamageEvolutionNumRequestedOutputs");}
++function DamageEvolutionRequestedOutputsEnum(){ return StringToEnum("DamageEvolutionRequestedOutputs");}
++function DamageEnum(){ return StringToEnum("Damage");}
++function NewDamageEnum(){ return StringToEnum("NewDamage");}
++function StressIntensityFactorEnum(){ return StringToEnum("StressIntensityFactor");}
++function CalvingLawEnum(){ return StringToEnum("CalvingLaw");}
++function CalvingCalvingrateEnum(){ return StringToEnum("CalvingCalvingrate");}
++function CalvingMeltingrateEnum(){ return StringToEnum("CalvingMeltingrate");}
++function CalvingLevermannEnum(){ return StringToEnum("CalvingLevermann");}
++function CalvingPiEnum(){ return StringToEnum("CalvingPi");}
++function CalvingDevEnum(){ return StringToEnum("CalvingDev");}
++function DefaultCalvingEnum(){ return StringToEnum("DefaultCalving");}
++function CalvingRequestedOutputsEnum(){ return StringToEnum("CalvingRequestedOutputs");}
++function CalvinglevermannCoeffEnum(){ return StringToEnum("CalvinglevermannCoeff");}
++function CalvinglevermannMeltingrateEnum(){ return StringToEnum("CalvinglevermannMeltingrate");}
++function CalvingpiCoeffEnum(){ return StringToEnum("CalvingpiCoeff");}
++function CalvingpiMeltingrateEnum(){ return StringToEnum("CalvingpiMeltingrate");}
++function CalvingratexEnum(){ return StringToEnum("Calvingratex");}
++function CalvingrateyEnum(){ return StringToEnum("Calvingratey");}
++function CalvingratexAverageEnum(){ return StringToEnum("CalvingratexAverage");}
++function CalvingrateyAverageEnum(){ return StringToEnum("CalvingrateyAverage");}
++function StrainRateparallelEnum(){ return StringToEnum("StrainRateparallel");}
++function StrainRateperpendicularEnum(){ return StringToEnum("StrainRateperpendicular");}
++function StrainRateeffectiveEnum(){ return StringToEnum("StrainRateeffective");}
++function MaterialsRhoIceEnum(){ return StringToEnum("MaterialsRhoIce");}
++function MaterialsRhoSeawaterEnum(){ return StringToEnum("MaterialsRhoSeawater");}
++function MaterialsRhoFreshwaterEnum(){ return StringToEnum("MaterialsRhoFreshwater");}
++function MaterialsMuWaterEnum(){ return StringToEnum("MaterialsMuWater");}
++function MaterialsThermalExchangeVelocityEnum(){ return StringToEnum("MaterialsThermalExchangeVelocity");}
++function MaterialsThermalconductivityEnum(){ return StringToEnum("MaterialsThermalconductivity");}
++function MaterialsTemperateiceconductivityEnum(){ return StringToEnum("MaterialsTemperateiceconductivity");}
++function MaterialsLithosphereShearModulusEnum(){ return StringToEnum("MaterialsLithosphereShearModulus");}
++function MaterialsLithosphereDensityEnum(){ return StringToEnum("MaterialsLithosphereDensity");}
++function MaterialsMantleShearModulusEnum(){ return StringToEnum("MaterialsMantleShearModulus");}
++function MaterialsMantleDensityEnum(){ return StringToEnum("MaterialsMantleDensity");}
++function MeshAverageVertexConnectivityEnum(){ return StringToEnum("MeshAverageVertexConnectivity");}
++function MeshElements2dEnum(){ return StringToEnum("MeshElements2d");}
++function MeshElementsEnum(){ return StringToEnum("MeshElements");}
++function MeshLowerelementsEnum(){ return StringToEnum("MeshLowerelements");}
++function MeshNumberofelements2dEnum(){ return StringToEnum("MeshNumberofelements2d");}
++function MeshNumberofelementsEnum(){ return StringToEnum("MeshNumberofelements");}
++function MeshNumberoflayersEnum(){ return StringToEnum("MeshNumberoflayers");}
++function MeshNumberofvertices2dEnum(){ return StringToEnum("MeshNumberofvertices2d");}
++function MeshNumberofverticesEnum(){ return StringToEnum("MeshNumberofvertices");}
++function MeshUpperelementsEnum(){ return StringToEnum("MeshUpperelements");}
++function MeshVertexonbaseEnum(){ return StringToEnum("MeshVertexonbase");}
++function MeshVertexonsurfaceEnum(){ return StringToEnum("MeshVertexonsurface");}
++function MeshVertexonboundaryEnum(){ return StringToEnum("MeshVertexonboundary");}
++function MeshXEnum(){ return StringToEnum("MeshX");}
++function MeshYEnum(){ return StringToEnum("MeshY");}
++function MeshZEnum(){ return StringToEnum("MeshZ");}
++function MeshElementtypeEnum(){ return StringToEnum("MeshElementtype");}
++function MeshSegmentsEnum(){ return StringToEnum("MeshSegments");}
++function DomainTypeEnum(){ return StringToEnum("DomainType");}
++function DomainDimensionEnum(){ return StringToEnum("DomainDimension");}
++function Domain2DhorizontalEnum(){ return StringToEnum("Domain2Dhorizontal");}
++function Domain2DverticalEnum(){ return StringToEnum("Domain2Dvertical");}
++function Domain3DEnum(){ return StringToEnum("Domain3D");}
++function MiscellaneousNameEnum(){ return StringToEnum("MiscellaneousName");}
++function MasstransportHydrostaticAdjustmentEnum(){ return StringToEnum("MasstransportHydrostaticAdjustment");}
++function MasstransportIsfreesurfaceEnum(){ return StringToEnum("MasstransportIsfreesurface");}
++function MasstransportMinThicknessEnum(){ return StringToEnum("MasstransportMinThickness");}
++function MasstransportPenaltyFactorEnum(){ return StringToEnum("MasstransportPenaltyFactor");}
++function MasstransportSpcthicknessEnum(){ return StringToEnum("MasstransportSpcthickness");}
++function MasstransportStabilizationEnum(){ return StringToEnum("MasstransportStabilization");}
++function MasstransportVertexPairingEnum(){ return StringToEnum("MasstransportVertexPairing");}
++function MasstransportNumRequestedOutputsEnum(){ return StringToEnum("MasstransportNumRequestedOutputs");}
++function MasstransportRequestedOutputsEnum(){ return StringToEnum("MasstransportRequestedOutputs");}
++function QmuIsdakotaEnum(){ return StringToEnum("QmuIsdakota");}
++function MassFluxSegmentsEnum(){ return StringToEnum("MassFluxSegments");}
++function MassFluxSegmentsPresentEnum(){ return StringToEnum("MassFluxSegmentsPresent");}
++function QmuMassFluxSegmentsPresentEnum(){ return StringToEnum("QmuMassFluxSegmentsPresent");}
++function QmuNumberofpartitionsEnum(){ return StringToEnum("QmuNumberofpartitions");}
++function QmuNumberofresponsesEnum(){ return StringToEnum("QmuNumberofresponses");}
++function QmuPartitionEnum(){ return StringToEnum("QmuPartition");}
++function QmuResponsedescriptorsEnum(){ return StringToEnum("QmuResponsedescriptors");}
++function QmuVariabledescriptorsEnum(){ return StringToEnum("QmuVariabledescriptors");}
++function RiftsNumriftsEnum(){ return StringToEnum("RiftsNumrifts");}
++function RiftsRiftstructEnum(){ return StringToEnum("RiftsRiftstruct");}
++function SettingsResultsOnNodesEnum(){ return StringToEnum("SettingsResultsOnNodes");}
++function SettingsIoGatherEnum(){ return StringToEnum("SettingsIoGather");}
++function SettingsLowmemEnum(){ return StringToEnum("SettingsLowmem");}
++function SettingsOutputFrequencyEnum(){ return StringToEnum("SettingsOutputFrequency");}
++function SettingsRecordingFrequencyEnum(){ return StringToEnum("SettingsRecordingFrequency");}
++function SettingsWaitonlockEnum(){ return StringToEnum("SettingsWaitonlock");}
++function DebugProfilingEnum(){ return StringToEnum("DebugProfiling");}
++function ProfilingCurrentMemEnum(){ return StringToEnum("ProfilingCurrentMem");}
++function ProfilingCurrentFlopsEnum(){ return StringToEnum("ProfilingCurrentFlops");}
++function ProfilingSolutionTimeEnum(){ return StringToEnum("ProfilingSolutionTime");}
++function SteadystateMaxiterEnum(){ return StringToEnum("SteadystateMaxiter");}
++function SteadystateNumRequestedOutputsEnum(){ return StringToEnum("SteadystateNumRequestedOutputs");}
++function SteadystateReltolEnum(){ return StringToEnum("SteadystateReltol");}
++function SteadystateRequestedOutputsEnum(){ return StringToEnum("SteadystateRequestedOutputs");}
++function SurfaceEnum(){ return StringToEnum("Surface");}
++function ThermalIsenthalpyEnum(){ return StringToEnum("ThermalIsenthalpy");}
++function ThermalIsdynamicbasalspcEnum(){ return StringToEnum("ThermalIsdynamicbasalspc");}
++function ThermalReltolEnum(){ return StringToEnum("ThermalReltol");}
++function ThermalMaxiterEnum(){ return StringToEnum("ThermalMaxiter");}
++function ThermalPenaltyFactorEnum(){ return StringToEnum("ThermalPenaltyFactor");}
++function ThermalPenaltyLockEnum(){ return StringToEnum("ThermalPenaltyLock");}
++function ThermalPenaltyThresholdEnum(){ return StringToEnum("ThermalPenaltyThreshold");}
++function ThermalSpctemperatureEnum(){ return StringToEnum("ThermalSpctemperature");}
++function ThermalStabilizationEnum(){ return StringToEnum("ThermalStabilization");}
++function ThermalNumRequestedOutputsEnum(){ return StringToEnum("ThermalNumRequestedOutputs");}
++function ThermalRequestedOutputsEnum(){ return StringToEnum("ThermalRequestedOutputs");}
++function GiaMantleViscosityEnum(){ return StringToEnum("GiaMantleViscosity");}
++function GiaLithosphereThicknessEnum(){ return StringToEnum("GiaLithosphereThickness");}
++function ThicknessEnum(){ return StringToEnum("Thickness");}
++function TimesteppingStartTimeEnum(){ return StringToEnum("TimesteppingStartTime");}
++function TimesteppingFinalTimeEnum(){ return StringToEnum("TimesteppingFinalTime");}
++function TimesteppingCflCoefficientEnum(){ return StringToEnum("TimesteppingCflCoefficient");}
++function TimesteppingTimeAdaptEnum(){ return StringToEnum("TimesteppingTimeAdapt");}
++function TimesteppingTimeStepEnum(){ return StringToEnum("TimesteppingTimeStep");}
++function TimesteppingInterpForcingsEnum(){ return StringToEnum("TimesteppingInterpForcings");}
++function TransientIssmbEnum(){ return StringToEnum("TransientIssmb");}
++function TransientIsstressbalanceEnum(){ return StringToEnum("TransientIsstressbalance");}
++function TransientIsgroundinglineEnum(){ return StringToEnum("TransientIsgroundingline");}
++function TransientIsmasstransportEnum(){ return StringToEnum("TransientIsmasstransport");}
++function TransientIsthermalEnum(){ return StringToEnum("TransientIsthermal");}
++function TransientIsgiaEnum(){ return StringToEnum("TransientIsgia");}
++function TransientIsdamageevolutionEnum(){ return StringToEnum("TransientIsdamageevolution");}
++function TransientIshydrologyEnum(){ return StringToEnum("TransientIshydrology");}
++function TransientIscalvingEnum(){ return StringToEnum("TransientIscalving");}
++function TransientNumRequestedOutputsEnum(){ return StringToEnum("TransientNumRequestedOutputs");}
++function TransientRequestedOutputsEnum(){ return StringToEnum("TransientRequestedOutputs");}
++function PotentialEnum(){ return StringToEnum("Potential");}
++function BalancethicknessSpcpotentialEnum(){ return StringToEnum("BalancethicknessSpcpotential");}
++function BalancethicknessApparentMassbalanceEnum(){ return StringToEnum("BalancethicknessApparentMassbalance");}
++function Balancethickness2MisfitEnum(){ return StringToEnum("Balancethickness2Misfit");}
++function BalancethicknessDiffusionCoefficientEnum(){ return StringToEnum("BalancethicknessDiffusionCoefficient");}
++function BalancethicknessCmuEnum(){ return StringToEnum("BalancethicknessCmu");}
++function BalancethicknessOmegaEnum(){ return StringToEnum("BalancethicknessOmega");}
++function BalancethicknessD0Enum(){ return StringToEnum("BalancethicknessD0");}
++function SmbEnum(){ return StringToEnum("Smb");}
++function SmbAnalysisEnum(){ return StringToEnum("SmbAnalysis");}
++function SmbSolutionEnum(){ return StringToEnum("SmbSolution");}
++function SmbNumRequestedOutputsEnum(){ return StringToEnum("SmbNumRequestedOutputs");}
++function SmbRequestedOutputsEnum(){ return StringToEnum("SmbRequestedOutputs");}
++function SmbIsInitializedEnum(){ return StringToEnum("SmbIsInitialized");}
++function SMBforcingEnum(){ return StringToEnum("SMBforcing");}
++function SmbMassBalanceEnum(){ return StringToEnum("SmbMassBalance");}
++function SMBgembEnum(){ return StringToEnum("SMBgemb");}
++function SmbInitDensityScalingEnum(){ return StringToEnum("SmbInitDensityScaling");}
++function SmbTaEnum(){ return StringToEnum("SmbTa");}
++function SmbVEnum(){ return StringToEnum("SmbV");}
++function SmbDswrfEnum(){ return StringToEnum("SmbDswrf");}
++function SmbDlwrfEnum(){ return StringToEnum("SmbDlwrf");}
++function SmbPEnum(){ return StringToEnum("SmbP");}
++function SmbSwfEnum(){ return StringToEnum("SmbSwf");}
++function SmbEAirEnum(){ return StringToEnum("SmbEAir");}
++function SmbPAirEnum(){ return StringToEnum("SmbPAir");}
++function SmbTmeanEnum(){ return StringToEnum("SmbTmean");}
++function SmbCEnum(){ return StringToEnum("SmbC");}
++function SmbTzEnum(){ return StringToEnum("SmbTz");}
++function SmbVzEnum(){ return StringToEnum("SmbVz");}
++function SmbDtEnum(){ return StringToEnum("SmbDt");}
++function SmbDzEnum(){ return StringToEnum("SmbDz");}
++function SmbAIdxEnum(){ return StringToEnum("SmbAIdx");}
++function SmbSwIdxEnum(){ return StringToEnum("SmbSwIdx");}
++function SmbDenIdxEnum(){ return StringToEnum("SmbDenIdx");}
++function SmbZTopEnum(){ return StringToEnum("SmbZTop");}
++function SmbDzTopEnum(){ return StringToEnum("SmbDzTop");}
++function SmbDzMinEnum(){ return StringToEnum("SmbDzMin");}
++function SmbZYEnum(){ return StringToEnum("SmbZY");}
++function SmbZMaxEnum(){ return StringToEnum("SmbZMax");}
++function SmbZMinEnum(){ return StringToEnum("SmbZMin");}
++function SmbOutputFreqEnum(){ return StringToEnum("SmbOutputFreq");}
++function SmbASnowEnum(){ return StringToEnum("SmbASnow");}
++function SmbAIceEnum(){ return StringToEnum("SmbAIce");}
++function SmbCldFracEnum(){ return StringToEnum("SmbCldFrac");}
++function SmbT0wetEnum(){ return StringToEnum("SmbT0wet");}
++function SmbT0dryEnum(){ return StringToEnum("SmbT0dry");}
++function SmbKEnum(){ return StringToEnum("SmbK");}
++function SmbDEnum(){ return StringToEnum("SmbD");}
++function SmbReEnum(){ return StringToEnum("SmbRe");}
++function SmbGdnEnum(){ return StringToEnum("SmbGdn");}
++function SmbGspEnum(){ return StringToEnum("SmbGsp");}
++function SmbECEnum(){ return StringToEnum("SmbEC");}
++function SmbCondensationEnum(){ return StringToEnum("SmbCondensation");}
++function SmbWEnum(){ return StringToEnum("SmbW");}
++function SmbAEnum(){ return StringToEnum("SmbA");}
++function SmbTEnum(){ return StringToEnum("SmbT");}
++function SmbIsgraingrowthEnum(){ return StringToEnum("SmbIsgraingrowth");}
++function SmbIsalbedoEnum(){ return StringToEnum("SmbIsalbedo");}
++function SmbIsshortwaveEnum(){ return StringToEnum("SmbIsshortwave");}
++function SmbIsthermalEnum(){ return StringToEnum("SmbIsthermal");}
++function SmbIsaccumulationEnum(){ return StringToEnum("SmbIsaccumulation");}
++function SmbIsmeltEnum(){ return StringToEnum("SmbIsmelt");}
++function SmbIsdensificationEnum(){ return StringToEnum("SmbIsdensification");}
++function SmbIsturbulentfluxEnum(){ return StringToEnum("SmbIsturbulentflux");}
++function SMBpddEnum(){ return StringToEnum("SMBpdd");}
++function SmbDelta18oEnum(){ return StringToEnum("SmbDelta18o");}
++function SmbDelta18oSurfaceEnum(){ return StringToEnum("SmbDelta18oSurface");}
++function SmbIsdelta18oEnum(){ return StringToEnum("SmbIsdelta18o");}
++function SmbIsmungsmEnum(){ return StringToEnum("SmbIsmungsm");}
++function SmbIsd18opdEnum(){ return StringToEnum("SmbIsd18opd");}
++function SmbPrecipitationsPresentdayEnum(){ return StringToEnum("SmbPrecipitationsPresentday");}
++function SmbPrecipitationsLgmEnum(){ return StringToEnum("SmbPrecipitationsLgm");}
++function SmbTemperaturesPresentdayEnum(){ return StringToEnum("SmbTemperaturesPresentday");}
++function SmbTemperaturesLgmEnum(){ return StringToEnum("SmbTemperaturesLgm");}
++function SmbPrecipitationEnum(){ return StringToEnum("SmbPrecipitation");}
++function SmbDesfacEnum(){ return StringToEnum("SmbDesfac");}
++function SmbS0pEnum(){ return StringToEnum("SmbS0p");}
++function SmbS0tEnum(){ return StringToEnum("SmbS0t");}
++function SmbRlapsEnum(){ return StringToEnum("SmbRlaps");}
++function SmbRlapslgmEnum(){ return StringToEnum("SmbRlapslgm");}
++function SmbPfacEnum(){ return StringToEnum("SmbPfac");}
++function SmbTdiffEnum(){ return StringToEnum("SmbTdiff");}
++function SmbSealevEnum(){ return StringToEnum("SmbSealev");}
++function SMBd18opddEnum(){ return StringToEnum("SMBd18opdd");}
++function SmbDpermilEnum(){ return StringToEnum("SmbDpermil");}
++function SMBgradientsEnum(){ return StringToEnum("SMBgradients");}
++function SmbMonthlytemperaturesEnum(){ return StringToEnum("SmbMonthlytemperatures");}
++function SmbHrefEnum(){ return StringToEnum("SmbHref");}
++function SmbSmbrefEnum(){ return StringToEnum("SmbSmbref");}
++function SmbBPosEnum(){ return StringToEnum("SmbBPos");}
++function SmbBNegEnum(){ return StringToEnum("SmbBNeg");}
++function SMBhenningEnum(){ return StringToEnum("SMBhenning");}
++function SMBcomponentsEnum(){ return StringToEnum("SMBcomponents");}
++function SmbAccumulationEnum(){ return StringToEnum("SmbAccumulation");}
++function SmbEvaporationEnum(){ return StringToEnum("SmbEvaporation");}
++function SmbRunoffEnum(){ return StringToEnum("SmbRunoff");}
++function SMBmeltcomponentsEnum(){ return StringToEnum("SMBmeltcomponents");}
++function SmbMeltEnum(){ return StringToEnum("SmbMelt");}
++function SmbRefreezeEnum(){ return StringToEnum("SmbRefreeze");}
++function SMBgcmEnum(){ return StringToEnum("SMBgcm");}
++function SmbIspddEnum(){ return StringToEnum("SmbIspdd");}
++function SmbIssmbgradientsEnum(){ return StringToEnum("SmbIssmbgradients");}
++function SolutionTypeEnum(){ return StringToEnum("SolutionType");}
++function AnalysisTypeEnum(){ return StringToEnum("AnalysisType");}
++function ConfigurationTypeEnum(){ return StringToEnum("ConfigurationType");}
++function AdjointBalancethicknessAnalysisEnum(){ return StringToEnum("AdjointBalancethicknessAnalysis");}
++function AdjointBalancethickness2AnalysisEnum(){ return StringToEnum("AdjointBalancethickness2Analysis");}
++function AdjointHorizAnalysisEnum(){ return StringToEnum("AdjointHorizAnalysis");}
++function AnalysisCounterEnum(){ return StringToEnum("AnalysisCounter");}
++function DefaultAnalysisEnum(){ return StringToEnum("DefaultAnalysis");}
++function BalancethicknessAnalysisEnum(){ return StringToEnum("BalancethicknessAnalysis");}
++function BalancethicknessSolutionEnum(){ return StringToEnum("BalancethicknessSolution");}
++function Balancethickness2AnalysisEnum(){ return StringToEnum("Balancethickness2Analysis");}
++function Balancethickness2SolutionEnum(){ return StringToEnum("Balancethickness2Solution");}
++function BalancethicknessSoftAnalysisEnum(){ return StringToEnum("BalancethicknessSoftAnalysis");}
++function BalancethicknessSoftSolutionEnum(){ return StringToEnum("BalancethicknessSoftSolution");}
++function BalancevelocityAnalysisEnum(){ return StringToEnum("BalancevelocityAnalysis");}
++function BalancevelocitySolutionEnum(){ return StringToEnum("BalancevelocitySolution");}
++function L2ProjectionEPLAnalysisEnum(){ return StringToEnum("L2ProjectionEPLAnalysis");}
++function L2ProjectionBaseAnalysisEnum(){ return StringToEnum("L2ProjectionBaseAnalysis");}
++function BedSlopeSolutionEnum(){ return StringToEnum("BedSlopeSolution");}
++function DamageEvolutionSolutionEnum(){ return StringToEnum("DamageEvolutionSolution");}
++function DamageEvolutionAnalysisEnum(){ return StringToEnum("DamageEvolutionAnalysis");}
++function StressbalanceAnalysisEnum(){ return StringToEnum("StressbalanceAnalysis");}
++function StressbalanceSIAAnalysisEnum(){ return StringToEnum("StressbalanceSIAAnalysis");}
++function StressbalanceSolutionEnum(){ return StringToEnum("StressbalanceSolution");}
++function StressbalanceVerticalAnalysisEnum(){ return StringToEnum("StressbalanceVerticalAnalysis");}
++function EnthalpyAnalysisEnum(){ return StringToEnum("EnthalpyAnalysis");}
++function FlaimAnalysisEnum(){ return StringToEnum("FlaimAnalysis");}
++function FlaimSolutionEnum(){ return StringToEnum("FlaimSolution");}
++function HydrologyShreveAnalysisEnum(){ return StringToEnum("HydrologyShreveAnalysis");}
++function HydrologyDCInefficientAnalysisEnum(){ return StringToEnum("HydrologyDCInefficientAnalysis");}
++function HydrologyDCEfficientAnalysisEnum(){ return StringToEnum("HydrologyDCEfficientAnalysis");}
++function HydrologySommersAnalysisEnum(){ return StringToEnum("HydrologySommersAnalysis");}
++function HydrologySolutionEnum(){ return StringToEnum("HydrologySolution");}
++function MeltingAnalysisEnum(){ return StringToEnum("MeltingAnalysis");}
++function MasstransportAnalysisEnum(){ return StringToEnum("MasstransportAnalysis");}
++function MasstransportSolutionEnum(){ return StringToEnum("MasstransportSolution");}
++function FreeSurfaceBaseAnalysisEnum(){ return StringToEnum("FreeSurfaceBaseAnalysis");}
++function FreeSurfaceTopAnalysisEnum(){ return StringToEnum("FreeSurfaceTopAnalysis");}
++function SurfaceNormalVelocityEnum(){ return StringToEnum("SurfaceNormalVelocity");}
++function ExtrudeFromBaseAnalysisEnum(){ return StringToEnum("ExtrudeFromBaseAnalysis");}
++function ExtrudeFromTopAnalysisEnum(){ return StringToEnum("ExtrudeFromTopAnalysis");}
++function DepthAverageAnalysisEnum(){ return StringToEnum("DepthAverageAnalysis");}
++function SteadystateSolutionEnum(){ return StringToEnum("SteadystateSolution");}
++function SurfaceSlopeSolutionEnum(){ return StringToEnum("SurfaceSlopeSolution");}
++function SmoothAnalysisEnum(){ return StringToEnum("SmoothAnalysis");}
++function ThermalAnalysisEnum(){ return StringToEnum("ThermalAnalysis");}
++function ThermalSolutionEnum(){ return StringToEnum("ThermalSolution");}
++function TransientSolutionEnum(){ return StringToEnum("TransientSolution");}
++function UzawaPressureAnalysisEnum(){ return StringToEnum("UzawaPressureAnalysis");}
++function GiaSolutionEnum(){ return StringToEnum("GiaSolution");}
++function GiaAnalysisEnum(){ return StringToEnum("GiaAnalysis");}
++function MeshdeformationSolutionEnum(){ return StringToEnum("MeshdeformationSolution");}
++function MeshdeformationAnalysisEnum(){ return StringToEnum("MeshdeformationAnalysis");}
++function LevelsetAnalysisEnum(){ return StringToEnum("LevelsetAnalysis");}
++function LevelsetStabilizationEnum(){ return StringToEnum("LevelsetStabilization");}
++function ExtrapolationAnalysisEnum(){ return StringToEnum("ExtrapolationAnalysis");}
++function LsfReinitializationAnalysisEnum(){ return StringToEnum("LsfReinitializationAnalysis");}
++function ApproximationEnum(){ return StringToEnum("Approximation");}
++function NoneApproximationEnum(){ return StringToEnum("NoneApproximation");}
++function SIAApproximationEnum(){ return StringToEnum("SIAApproximation");}
++function SSAApproximationEnum(){ return StringToEnum("SSAApproximation");}
++function SSAHOApproximationEnum(){ return StringToEnum("SSAHOApproximation");}
++function SSAFSApproximationEnum(){ return StringToEnum("SSAFSApproximation");}
++function L1L2ApproximationEnum(){ return StringToEnum("L1L2Approximation");}
++function HOApproximationEnum(){ return StringToEnum("HOApproximation");}
++function HOFSApproximationEnum(){ return StringToEnum("HOFSApproximation");}
++function FSApproximationEnum(){ return StringToEnum("FSApproximation");}
++function FSvelocityEnum(){ return StringToEnum("FSvelocity");}
++function FSpressureEnum(){ return StringToEnum("FSpressure");}
++function DataSetEnum(){ return StringToEnum("DataSet");}
++function ConstraintsEnum(){ return StringToEnum("Constraints");}
++function LoadsEnum(){ return StringToEnum("Loads");}
++function MaterialsEnum(){ return StringToEnum("Materials");}
++function NodesEnum(){ return StringToEnum("Nodes");}
++function ContoursEnum(){ return StringToEnum("Contours");}
++function ParametersEnum(){ return StringToEnum("Parameters");}
++function VerticesEnum(){ return StringToEnum("Vertices");}
++function ResultsEnum(){ return StringToEnum("Results");}
++function GenericParamEnum(){ return StringToEnum("GenericParam");}
++function AdolcParamEnum(){ return StringToEnum("AdolcParam");}
++function BoolInputEnum(){ return StringToEnum("BoolInput");}
++function BoolParamEnum(){ return StringToEnum("BoolParam");}
++function ContourEnum(){ return StringToEnum("Contour");}
++function ControlInputEnum(){ return StringToEnum("ControlInput");}
++function DatasetInputEnum(){ return StringToEnum("DatasetInput");}
++function DoubleInputEnum(){ return StringToEnum("DoubleInput");}
++function DoubleArrayInputEnum(){ return StringToEnum("DoubleArrayInput");}
++function DataSetParamEnum(){ return StringToEnum("DataSetParam");}
++function DoubleMatArrayParamEnum(){ return StringToEnum("DoubleMatArrayParam");}
++function DoubleMatParamEnum(){ return StringToEnum("DoubleMatParam");}
++function DoubleParamEnum(){ return StringToEnum("DoubleParam");}
++function DoubleVecParamEnum(){ return StringToEnum("DoubleVecParam");}
++function ElementEnum(){ return StringToEnum("Element");}
++function ElementHookEnum(){ return StringToEnum("ElementHook");}
++function HookEnum(){ return StringToEnum("Hook");}
++function ExternalResultEnum(){ return StringToEnum("ExternalResult");}
++function FileParamEnum(){ return StringToEnum("FileParam");}
++function InputEnum(){ return StringToEnum("Input");}
++function IntInputEnum(){ return StringToEnum("IntInput");}
++function InputToExtrudeEnum(){ return StringToEnum("InputToExtrude");}
++function InputToL2ProjectEnum(){ return StringToEnum("InputToL2Project");}
++function InputToDepthaverageEnum(){ return StringToEnum("InputToDepthaverage");}
++function InputToSmoothEnum(){ return StringToEnum("InputToSmooth");}
++function SmoothThicknessMultiplierEnum(){ return StringToEnum("SmoothThicknessMultiplier");}
++function IntParamEnum(){ return StringToEnum("IntParam");}
++function IntVecParamEnum(){ return StringToEnum("IntVecParam");}
++function TransientParamEnum(){ return StringToEnum("TransientParam");}
++function MaticeEnum(){ return StringToEnum("Matice");}
++function MatdamageiceEnum(){ return StringToEnum("Matdamageice");}
++function MatparEnum(){ return StringToEnum("Matpar");}
++function NodeEnum(){ return StringToEnum("Node");}
++function NumericalfluxEnum(){ return StringToEnum("Numericalflux");}
++function NumericalfluxTypeEnum(){ return StringToEnum("NumericalfluxType");}
++function NeumannfluxEnum(){ return StringToEnum("Neumannflux");}
++function ParamEnum(){ return StringToEnum("Param");}
++function MoulinEnum(){ return StringToEnum("Moulin");}
++function PengridEnum(){ return StringToEnum("Pengrid");}
++function PenpairEnum(){ return StringToEnum("Penpair");}
++function ProfilerEnum(){ return StringToEnum("Profiler");}
++function MatrixParamEnum(){ return StringToEnum("MatrixParam");}
++function MassconEnum(){ return StringToEnum("Masscon");}
++function MassconNameEnum(){ return StringToEnum("MassconName");}
++function MassconDefinitionenumEnum(){ return StringToEnum("MassconDefinitionenum");}
++function MassconLevelsetEnum(){ return StringToEnum("MassconLevelset");}
++function MassconaxpbyEnum(){ return StringToEnum("Massconaxpby");}
++function MassconaxpbyNameEnum(){ return StringToEnum("MassconaxpbyName");}
++function MassconaxpbyDefinitionenumEnum(){ return StringToEnum("MassconaxpbyDefinitionenum");}
++function MassconaxpbyNamexEnum(){ return StringToEnum("MassconaxpbyNamex");}
++function MassconaxpbyNameyEnum(){ return StringToEnum("MassconaxpbyNamey");}
++function MassconaxpbyAlphaEnum(){ return StringToEnum("MassconaxpbyAlpha");}
++function MassconaxpbyBetaEnum(){ return StringToEnum("MassconaxpbyBeta");}
++function NodeSIdEnum(){ return StringToEnum("NodeSId");}
++function VectorParamEnum(){ return StringToEnum("VectorParam");}
++function RiftfrontEnum(){ return StringToEnum("Riftfront");}
++function RiftfrontTypeEnum(){ return StringToEnum("RiftfrontType");}
++function SegmentEnum(){ return StringToEnum("Segment");}
++function SegmentRiftfrontEnum(){ return StringToEnum("SegmentRiftfront");}
++function SpcDynamicEnum(){ return StringToEnum("SpcDynamic");}
++function SpcStaticEnum(){ return StringToEnum("SpcStatic");}
++function SpcTransientEnum(){ return StringToEnum("SpcTransient");}
++function StringArrayParamEnum(){ return StringToEnum("StringArrayParam");}
++function StringParamEnum(){ return StringToEnum("StringParam");}
++function SegEnum(){ return StringToEnum("Seg");}
++function SegInputEnum(){ return StringToEnum("SegInput");}
++function TriaEnum(){ return StringToEnum("Tria");}
++function TriaInputEnum(){ return StringToEnum("TriaInput");}
++function TetraEnum(){ return StringToEnum("Tetra");}
++function TetraInputEnum(){ return StringToEnum("TetraInput");}
++function PentaEnum(){ return StringToEnum("Penta");}
++function PentaInputEnum(){ return StringToEnum("PentaInput");}
++function VertexEnum(){ return StringToEnum("Vertex");}
++function VertexPIdEnum(){ return StringToEnum("VertexPId");}
++function VertexSIdEnum(){ return StringToEnum("VertexSId");}
++function AirEnum(){ return StringToEnum("Air");}
++function IceEnum(){ return StringToEnum("Ice");}
++function MelangeEnum(){ return StringToEnum("Melange");}
++function WaterEnum(){ return StringToEnum("Water");}
++function ClosedEnum(){ return StringToEnum("Closed");}
++function FreeEnum(){ return StringToEnum("Free");}
++function OpenEnum(){ return StringToEnum("Open");}
++function AdjointpEnum(){ return StringToEnum("Adjointp");}
++function AdjointxEnum(){ return StringToEnum("Adjointx");}
++function AdjointyEnum(){ return StringToEnum("Adjointy");}
++function AdjointzEnum(){ return StringToEnum("Adjointz");}
++function BalancethicknessMisfitEnum(){ return StringToEnum("BalancethicknessMisfit");}
++function BedSlopeXEnum(){ return StringToEnum("BedSlopeX");}
++function BedSlopeYEnum(){ return StringToEnum("BedSlopeY");}
++function BoundaryEnum(){ return StringToEnum("Boundary");}
++function ConvergedEnum(){ return StringToEnum("Converged");}
++function FillEnum(){ return StringToEnum("Fill");}
++function FractionIncrementEnum(){ return StringToEnum("FractionIncrement");}
++function FrictionEnum(){ return StringToEnum("Friction");}
++function InternalEnum(){ return StringToEnum("Internal");}
++function MassFluxEnum(){ return StringToEnum("MassFlux");}
++function MeltingOffsetEnum(){ return StringToEnum("MeltingOffset");}
++function MisfitEnum(){ return StringToEnum("Misfit");}
++function PressureEnum(){ return StringToEnum("Pressure");}
++function PressurePicardEnum(){ return StringToEnum("PressurePicard");}
++function AndroidFrictionCoefficientEnum(){ return StringToEnum("AndroidFrictionCoefficient");}
++function ResetPenaltiesEnum(){ return StringToEnum("ResetPenalties");}
++function SegmentOnIceShelfEnum(){ return StringToEnum("SegmentOnIceShelf");}
++function SurfaceAbsVelMisfitEnum(){ return StringToEnum("SurfaceAbsVelMisfit");}
++function SurfaceAreaEnum(){ return StringToEnum("SurfaceArea");}
++function SurfaceAverageVelMisfitEnum(){ return StringToEnum("SurfaceAverageVelMisfit");}
++function SurfaceLogVelMisfitEnum(){ return StringToEnum("SurfaceLogVelMisfit");}
++function SurfaceLogVxVyMisfitEnum(){ return StringToEnum("SurfaceLogVxVyMisfit");}
++function SurfaceRelVelMisfitEnum(){ return StringToEnum("SurfaceRelVelMisfit");}
++function SurfaceSlopeXEnum(){ return StringToEnum("SurfaceSlopeX");}
++function SurfaceSlopeYEnum(){ return StringToEnum("SurfaceSlopeY");}
++function TemperatureEnum(){ return StringToEnum("Temperature");}
++function TemperaturePicardEnum(){ return StringToEnum("TemperaturePicard");}
++function TemperaturePDDEnum(){ return StringToEnum("TemperaturePDD");}
++function ThicknessAbsMisfitEnum(){ return StringToEnum("ThicknessAbsMisfit");}
++function SurfaceAbsMisfitEnum(){ return StringToEnum("SurfaceAbsMisfit");}
++function VelEnum(){ return StringToEnum("Vel");}
++function VelocityEnum(){ return StringToEnum("Velocity");}
++function VxAverageEnum(){ return StringToEnum("VxAverage");}
++function VxEnum(){ return StringToEnum("Vx");}
++function VxPicardEnum(){ return StringToEnum("VxPicard");}
++function VyAverageEnum(){ return StringToEnum("VyAverage");}
++function VyEnum(){ return StringToEnum("Vy");}
++function VyPicardEnum(){ return StringToEnum("VyPicard");}
++function VzEnum(){ return StringToEnum("Vz");}
++function VzSSAEnum(){ return StringToEnum("VzSSA");}
++function VzHOEnum(){ return StringToEnum("VzHO");}
++function VzPicardEnum(){ return StringToEnum("VzPicard");}
++function VzFSEnum(){ return StringToEnum("VzFS");}
++function VxMeshEnum(){ return StringToEnum("VxMesh");}
++function VyMeshEnum(){ return StringToEnum("VyMesh");}
++function VzMeshEnum(){ return StringToEnum("VzMesh");}
++function EnthalpyEnum(){ return StringToEnum("Enthalpy");}
++function EnthalpyPicardEnum(){ return StringToEnum("EnthalpyPicard");}
++function ThicknessAbsGradientEnum(){ return StringToEnum("ThicknessAbsGradient");}
++function ThicknessAlongGradientEnum(){ return StringToEnum("ThicknessAlongGradient");}
++function ThicknessAcrossGradientEnum(){ return StringToEnum("ThicknessAcrossGradient");}
++function IntMatParamEnum(){ return StringToEnum("IntMatParam");}
++function RheologyBbarAbsGradientEnum(){ return StringToEnum("RheologyBbarAbsGradient");}
++function RheologyBAbsGradientEnum(){ return StringToEnum("RheologyBAbsGradient");}
++function DragCoefficientAbsGradientEnum(){ return StringToEnum("DragCoefficientAbsGradient");}
++function TransientInputEnum(){ return StringToEnum("TransientInput");}
++function WaterfractionEnum(){ return StringToEnum("Waterfraction");}
++function WatercolumnEnum(){ return StringToEnum("Watercolumn");}
++function BasalFrictionEnum(){ return StringToEnum("BasalFriction");}
++function ViscousHeatingEnum(){ return StringToEnum("ViscousHeating");}
++function HydrologyWaterVxEnum(){ return StringToEnum("HydrologyWaterVx");}
++function HydrologyWaterVyEnum(){ return StringToEnum("HydrologyWaterVy");}
++function DrivingStressXEnum(){ return StringToEnum("DrivingStressX");}
++function DrivingStressYEnum(){ return StringToEnum("DrivingStressY");}
++function SigmaNNEnum(){ return StringToEnum("SigmaNN");}
++function StressTensorEnum(){ return StringToEnum("StressTensor");}
++function StressTensorxxEnum(){ return StringToEnum("StressTensorxx");}
++function StressTensorxyEnum(){ return StringToEnum("StressTensorxy");}
++function StressTensorxzEnum(){ return StringToEnum("StressTensorxz");}
++function StressTensoryyEnum(){ return StringToEnum("StressTensoryy");}
++function StressTensoryzEnum(){ return StringToEnum("StressTensoryz");}
++function StressTensorzzEnum(){ return StringToEnum("StressTensorzz");}
++function StressMaxPrincipalEnum(){ return StringToEnum("StressMaxPrincipal");}
++function DeviatoricStressEnum(){ return StringToEnum("DeviatoricStress");}
++function DeviatoricStressxxEnum(){ return StringToEnum("DeviatoricStressxx");}
++function DeviatoricStressxyEnum(){ return StringToEnum("DeviatoricStressxy");}
++function DeviatoricStressxzEnum(){ return StringToEnum("DeviatoricStressxz");}
++function DeviatoricStressyyEnum(){ return StringToEnum("DeviatoricStressyy");}
++function DeviatoricStressyzEnum(){ return StringToEnum("DeviatoricStressyz");}
++function DeviatoricStresszzEnum(){ return StringToEnum("DeviatoricStresszz");}
++function StrainRateEnum(){ return StringToEnum("StrainRate");}
++function StrainRatexxEnum(){ return StringToEnum("StrainRatexx");}
++function StrainRatexyEnum(){ return StringToEnum("StrainRatexy");}
++function StrainRatexzEnum(){ return StringToEnum("StrainRatexz");}
++function StrainRateyyEnum(){ return StringToEnum("StrainRateyy");}
++function StrainRateyzEnum(){ return StringToEnum("StrainRateyz");}
++function StrainRatezzEnum(){ return StringToEnum("StrainRatezz");}
++function DivergenceEnum(){ return StringToEnum("Divergence");}
++function MaxDivergenceEnum(){ return StringToEnum("MaxDivergence");}
++function GiaCrossSectionShapeEnum(){ return StringToEnum("GiaCrossSectionShape");}
++function GiadWdtEnum(){ return StringToEnum("GiadWdt");}
++function GiaWEnum(){ return StringToEnum("GiaW");}
++function P0Enum(){ return StringToEnum("P0");}
++function P0ArrayEnum(){ return StringToEnum("P0Array");}
++function P1Enum(){ return StringToEnum("P1");}
++function P1DGEnum(){ return StringToEnum("P1DG");}
++function P1bubbleEnum(){ return StringToEnum("P1bubble");}
++function P1bubblecondensedEnum(){ return StringToEnum("P1bubblecondensed");}
++function P2Enum(){ return StringToEnum("P2");}
++function P2bubbleEnum(){ return StringToEnum("P2bubble");}
++function P2bubblecondensedEnum(){ return StringToEnum("P2bubblecondensed");}
++function P2xP1Enum(){ return StringToEnum("P2xP1");}
++function P1xP2Enum(){ return StringToEnum("P1xP2");}
++function P1xP3Enum(){ return StringToEnum("P1xP3");}
++function P2xP4Enum(){ return StringToEnum("P2xP4");}
++function P1P1Enum(){ return StringToEnum("P1P1");}
++function P1P1GLSEnum(){ return StringToEnum("P1P1GLS");}
++function MINIEnum(){ return StringToEnum("MINI");}
++function MINIcondensedEnum(){ return StringToEnum("MINIcondensed");}
++function TaylorHoodEnum(){ return StringToEnum("TaylorHood");}
++function LATaylorHoodEnum(){ return StringToEnum("LATaylorHood");}
++function XTaylorHoodEnum(){ return StringToEnum("XTaylorHood");}
++function OneLayerP4zEnum(){ return StringToEnum("OneLayerP4z");}
++function CrouzeixRaviartEnum(){ return StringToEnum("CrouzeixRaviart");}
++function LACrouzeixRaviartEnum(){ return StringToEnum("LACrouzeixRaviart");}
++function SaveResultsEnum(){ return StringToEnum("SaveResults");}
++function BoolExternalResultEnum(){ return StringToEnum("BoolExternalResult");}
++function DoubleExternalResultEnum(){ return StringToEnum("DoubleExternalResult");}
++function DoubleMatExternalResultEnum(){ return StringToEnum("DoubleMatExternalResult");}
++function IntExternalResultEnum(){ return StringToEnum("IntExternalResult");}
++function JEnum(){ return StringToEnum("J");}
++function StringExternalResultEnum(){ return StringToEnum("StringExternalResult");}
++function StepEnum(){ return StringToEnum("Step");}
++function TimeEnum(){ return StringToEnum("Time");}
++function WaterColumnOldEnum(){ return StringToEnum("WaterColumnOld");}
++function OutputdefinitionEnum(){ return StringToEnum("Outputdefinition");}
++function Outputdefinition1Enum(){ return StringToEnum("Outputdefinition1");}
++function Outputdefinition2Enum(){ return StringToEnum("Outputdefinition2");}
++function Outputdefinition3Enum(){ return StringToEnum("Outputdefinition3");}
++function Outputdefinition4Enum(){ return StringToEnum("Outputdefinition4");}
++function Outputdefinition5Enum(){ return StringToEnum("Outputdefinition5");}
++function Outputdefinition6Enum(){ return StringToEnum("Outputdefinition6");}
++function Outputdefinition7Enum(){ return StringToEnum("Outputdefinition7");}
++function Outputdefinition8Enum(){ return StringToEnum("Outputdefinition8");}
++function Outputdefinition9Enum(){ return StringToEnum("Outputdefinition9");}
++function Outputdefinition10Enum(){ return StringToEnum("Outputdefinition10");}
++function Outputdefinition11Enum(){ return StringToEnum("Outputdefinition11");}
++function Outputdefinition12Enum(){ return StringToEnum("Outputdefinition12");}
++function Outputdefinition13Enum(){ return StringToEnum("Outputdefinition13");}
++function Outputdefinition14Enum(){ return StringToEnum("Outputdefinition14");}
++function Outputdefinition15Enum(){ return StringToEnum("Outputdefinition15");}
++function Outputdefinition16Enum(){ return StringToEnum("Outputdefinition16");}
++function Outputdefinition17Enum(){ return StringToEnum("Outputdefinition17");}
++function Outputdefinition18Enum(){ return StringToEnum("Outputdefinition18");}
++function Outputdefinition19Enum(){ return StringToEnum("Outputdefinition19");}
++function Outputdefinition20Enum(){ return StringToEnum("Outputdefinition20");}
++function Outputdefinition21Enum(){ return StringToEnum("Outputdefinition21");}
++function Outputdefinition22Enum(){ return StringToEnum("Outputdefinition22");}
++function Outputdefinition23Enum(){ return StringToEnum("Outputdefinition23");}
++function Outputdefinition24Enum(){ return StringToEnum("Outputdefinition24");}
++function Outputdefinition25Enum(){ return StringToEnum("Outputdefinition25");}
++function Outputdefinition26Enum(){ return StringToEnum("Outputdefinition26");}
++function Outputdefinition27Enum(){ return StringToEnum("Outputdefinition27");}
++function Outputdefinition28Enum(){ return StringToEnum("Outputdefinition28");}
++function Outputdefinition29Enum(){ return StringToEnum("Outputdefinition29");}
++function Outputdefinition30Enum(){ return StringToEnum("Outputdefinition30");}
++function Outputdefinition31Enum(){ return StringToEnum("Outputdefinition31");}
++function Outputdefinition32Enum(){ return StringToEnum("Outputdefinition32");}
++function Outputdefinition33Enum(){ return StringToEnum("Outputdefinition33");}
++function Outputdefinition34Enum(){ return StringToEnum("Outputdefinition34");}
++function Outputdefinition35Enum(){ return StringToEnum("Outputdefinition35");}
++function Outputdefinition36Enum(){ return StringToEnum("Outputdefinition36");}
++function Outputdefinition37Enum(){ return StringToEnum("Outputdefinition37");}
++function Outputdefinition38Enum(){ return StringToEnum("Outputdefinition38");}
++function Outputdefinition39Enum(){ return StringToEnum("Outputdefinition39");}
++function Outputdefinition40Enum(){ return StringToEnum("Outputdefinition40");}
++function Outputdefinition41Enum(){ return StringToEnum("Outputdefinition41");}
++function Outputdefinition42Enum(){ return StringToEnum("Outputdefinition42");}
++function Outputdefinition43Enum(){ return StringToEnum("Outputdefinition43");}
++function Outputdefinition44Enum(){ return StringToEnum("Outputdefinition44");}
++function Outputdefinition45Enum(){ return StringToEnum("Outputdefinition45");}
++function Outputdefinition46Enum(){ return StringToEnum("Outputdefinition46");}
++function Outputdefinition47Enum(){ return StringToEnum("Outputdefinition47");}
++function Outputdefinition48Enum(){ return StringToEnum("Outputdefinition48");}
++function Outputdefinition49Enum(){ return StringToEnum("Outputdefinition49");}
++function Outputdefinition50Enum(){ return StringToEnum("Outputdefinition50");}
++function Outputdefinition51Enum(){ return StringToEnum("Outputdefinition51");}
++function Outputdefinition52Enum(){ return StringToEnum("Outputdefinition52");}
++function Outputdefinition53Enum(){ return StringToEnum("Outputdefinition53");}
++function Outputdefinition54Enum(){ return StringToEnum("Outputdefinition54");}
++function Outputdefinition55Enum(){ return StringToEnum("Outputdefinition55");}
++function Outputdefinition56Enum(){ return StringToEnum("Outputdefinition56");}
++function Outputdefinition57Enum(){ return StringToEnum("Outputdefinition57");}
++function Outputdefinition58Enum(){ return StringToEnum("Outputdefinition58");}
++function Outputdefinition59Enum(){ return StringToEnum("Outputdefinition59");}
++function Outputdefinition60Enum(){ return StringToEnum("Outputdefinition60");}
++function Outputdefinition61Enum(){ return StringToEnum("Outputdefinition61");}
++function Outputdefinition62Enum(){ return StringToEnum("Outputdefinition62");}
++function Outputdefinition63Enum(){ return StringToEnum("Outputdefinition63");}
++function Outputdefinition64Enum(){ return StringToEnum("Outputdefinition64");}
++function Outputdefinition65Enum(){ return StringToEnum("Outputdefinition65");}
++function Outputdefinition66Enum(){ return StringToEnum("Outputdefinition66");}
++function Outputdefinition67Enum(){ return StringToEnum("Outputdefinition67");}
++function Outputdefinition68Enum(){ return StringToEnum("Outputdefinition68");}
++function Outputdefinition69Enum(){ return StringToEnum("Outputdefinition69");}
++function Outputdefinition70Enum(){ return StringToEnum("Outputdefinition70");}
++function Outputdefinition71Enum(){ return StringToEnum("Outputdefinition71");}
++function Outputdefinition72Enum(){ return StringToEnum("Outputdefinition72");}
++function Outputdefinition73Enum(){ return StringToEnum("Outputdefinition73");}
++function Outputdefinition74Enum(){ return StringToEnum("Outputdefinition74");}
++function Outputdefinition75Enum(){ return StringToEnum("Outputdefinition75");}
++function Outputdefinition76Enum(){ return StringToEnum("Outputdefinition76");}
++function Outputdefinition77Enum(){ return StringToEnum("Outputdefinition77");}
++function Outputdefinition78Enum(){ return StringToEnum("Outputdefinition78");}
++function Outputdefinition79Enum(){ return StringToEnum("Outputdefinition79");}
++function Outputdefinition80Enum(){ return StringToEnum("Outputdefinition80");}
++function Outputdefinition81Enum(){ return StringToEnum("Outputdefinition81");}
++function Outputdefinition82Enum(){ return StringToEnum("Outputdefinition82");}
++function Outputdefinition83Enum(){ return StringToEnum("Outputdefinition83");}
++function Outputdefinition84Enum(){ return StringToEnum("Outputdefinition84");}
++function Outputdefinition85Enum(){ return StringToEnum("Outputdefinition85");}
++function Outputdefinition86Enum(){ return StringToEnum("Outputdefinition86");}
++function Outputdefinition87Enum(){ return StringToEnum("Outputdefinition87");}
++function Outputdefinition88Enum(){ return StringToEnum("Outputdefinition88");}
++function Outputdefinition89Enum(){ return StringToEnum("Outputdefinition89");}
++function Outputdefinition90Enum(){ return StringToEnum("Outputdefinition90");}
++function Outputdefinition91Enum(){ return StringToEnum("Outputdefinition91");}
++function Outputdefinition92Enum(){ return StringToEnum("Outputdefinition92");}
++function Outputdefinition93Enum(){ return StringToEnum("Outputdefinition93");}
++function Outputdefinition94Enum(){ return StringToEnum("Outputdefinition94");}
++function Outputdefinition95Enum(){ return StringToEnum("Outputdefinition95");}
++function Outputdefinition96Enum(){ return StringToEnum("Outputdefinition96");}
++function Outputdefinition97Enum(){ return StringToEnum("Outputdefinition97");}
++function Outputdefinition98Enum(){ return StringToEnum("Outputdefinition98");}
++function Outputdefinition99Enum(){ return StringToEnum("Outputdefinition99");}
++function Outputdefinition100Enum(){ return StringToEnum("Outputdefinition100");}
++function OutputdefinitionListEnum(){ return StringToEnum("OutputdefinitionList");}
++function MassfluxatgateEnum(){ return StringToEnum("Massfluxatgate");}
++function MassfluxatgateNameEnum(){ return StringToEnum("MassfluxatgateName");}
++function MassfluxatgateDefinitionenumEnum(){ return StringToEnum("MassfluxatgateDefinitionenum");}
++function MassfluxatgateSegmentsEnum(){ return StringToEnum("MassfluxatgateSegments");}
++function MisfitNameEnum(){ return StringToEnum("MisfitName");}
++function MisfitDefinitionenumEnum(){ return StringToEnum("MisfitDefinitionenum");}
++function MisfitModelEnumEnum(){ return StringToEnum("MisfitModelEnum");}
++function MisfitObservationEnum(){ return StringToEnum("MisfitObservation");}
++function MisfitObservationEnumEnum(){ return StringToEnum("MisfitObservationEnum");}
++function MisfitLocalEnum(){ return StringToEnum("MisfitLocal");}
++function MisfitTimeinterpolationEnum(){ return StringToEnum("MisfitTimeinterpolation");}
++function MisfitWeightsEnum(){ return StringToEnum("MisfitWeights");}
++function MisfitWeightsEnumEnum(){ return StringToEnum("MisfitWeightsEnum");}
++function SurfaceObservationEnum(){ return StringToEnum("SurfaceObservation");}
++function WeightsSurfaceObservationEnum(){ return StringToEnum("WeightsSurfaceObservation");}
++function VxObsEnum(){ return StringToEnum("VxObs");}
++function WeightsVxObsEnum(){ return StringToEnum("WeightsVxObs");}
++function VyObsEnum(){ return StringToEnum("VyObs");}
++function WeightsVyObsEnum(){ return StringToEnum("WeightsVyObs");}
++function MinVelEnum(){ return StringToEnum("MinVel");}
++function MaxVelEnum(){ return StringToEnum("MaxVel");}
++function MinVxEnum(){ return StringToEnum("MinVx");}
++function MaxVxEnum(){ return StringToEnum("MaxVx");}
++function MaxAbsVxEnum(){ return StringToEnum("MaxAbsVx");}
++function MinVyEnum(){ return StringToEnum("MinVy");}
++function MaxVyEnum(){ return StringToEnum("MaxVy");}
++function MaxAbsVyEnum(){ return StringToEnum("MaxAbsVy");}
++function MinVzEnum(){ return StringToEnum("MinVz");}
++function MaxVzEnum(){ return StringToEnum("MaxVz");}
++function MaxAbsVzEnum(){ return StringToEnum("MaxAbsVz");}
++function FloatingAreaEnum(){ return StringToEnum("FloatingArea");}
++function GroundedAreaEnum(){ return StringToEnum("GroundedArea");}
++function IceMassEnum(){ return StringToEnum("IceMass");}
++function IceVolumeEnum(){ return StringToEnum("IceVolume");}
++function IceVolumeAboveFloatationEnum(){ return StringToEnum("IceVolumeAboveFloatation");}
++function TotalSmbEnum(){ return StringToEnum("TotalSmb");}
++function AbsoluteEnum(){ return StringToEnum("Absolute");}
++function IncrementalEnum(){ return StringToEnum("Incremental");}
++function AugmentedLagrangianREnum(){ return StringToEnum("AugmentedLagrangianR");}
++function AugmentedLagrangianRhopEnum(){ return StringToEnum("AugmentedLagrangianRhop");}
++function AugmentedLagrangianRlambdaEnum(){ return StringToEnum("AugmentedLagrangianRlambda");}
++function AugmentedLagrangianRholambdaEnum(){ return StringToEnum("AugmentedLagrangianRholambda");}
++function AugmentedLagrangianThetaEnum(){ return StringToEnum("AugmentedLagrangianTheta");}
++function NoneEnum(){ return StringToEnum("None");}
++function AggressiveMigrationEnum(){ return StringToEnum("AggressiveMigration");}
++function SoftMigrationEnum(){ return StringToEnum("SoftMigration");}
++function SubelementMigrationEnum(){ return StringToEnum("SubelementMigration");}
++function SubelementMigration2Enum(){ return StringToEnum("SubelementMigration2");}
++function ContactEnum(){ return StringToEnum("Contact");}
++function GroundingOnlyEnum(){ return StringToEnum("GroundingOnly");}
++function MaskGroundediceLevelsetEnum(){ return StringToEnum("MaskGroundediceLevelset");}
++function GaussSegEnum(){ return StringToEnum("GaussSeg");}
++function GaussTriaEnum(){ return StringToEnum("GaussTria");}
++function GaussTetraEnum(){ return StringToEnum("GaussTetra");}
++function GaussPentaEnum(){ return StringToEnum("GaussPenta");}
++function FSSolverEnum(){ return StringToEnum("FSSolver");}
++function AdjointEnum(){ return StringToEnum("Adjoint");}
++function ColinearEnum(){ return StringToEnum("Colinear");}
++function ControlSteadyEnum(){ return StringToEnum("ControlSteady");}
++function FsetEnum(){ return StringToEnum("Fset");}
++function Gradient1Enum(){ return StringToEnum("Gradient1");}
++function Gradient2Enum(){ return StringToEnum("Gradient2");}
++function Gradient3Enum(){ return StringToEnum("Gradient3");}
++function GradientEnum(){ return StringToEnum("Gradient");}
++function GroundinglineMigrationEnum(){ return StringToEnum("GroundinglineMigration");}
++function GsetEnum(){ return StringToEnum("Gset");}
++function IndexEnum(){ return StringToEnum("Index");}
++function IndexedEnum(){ return StringToEnum("Indexed");}
++function IntersectEnum(){ return StringToEnum("Intersect");}
++function NodalEnum(){ return StringToEnum("Nodal");}
++function OldGradientEnum(){ return StringToEnum("OldGradient");}
++function OutputFilePointerEnum(){ return StringToEnum("OutputFilePointer");}
++function ToolkitsFileNameEnum(){ return StringToEnum("ToolkitsFileName");}
++function RootPathEnum(){ return StringToEnum("RootPath");}
++function OutputFileNameEnum(){ return StringToEnum("OutputFileName");}
++function InputFileNameEnum(){ return StringToEnum("InputFileName");}
++function LockFileNameEnum(){ return StringToEnum("LockFileName");}
++function RestartFileNameEnum(){ return StringToEnum("RestartFileName");}
++function ToolkitsOptionsAnalysesEnum(){ return StringToEnum("ToolkitsOptionsAnalyses");}
++function ToolkitsOptionsStringsEnum(){ return StringToEnum("ToolkitsOptionsStrings");}
++function QmuErrNameEnum(){ return StringToEnum("QmuErrName");}
++function QmuInNameEnum(){ return StringToEnum("QmuInName");}
++function QmuOutNameEnum(){ return StringToEnum("QmuOutName");}
++function RegularEnum(){ return StringToEnum("Regular");}
++function ScaledEnum(){ return StringToEnum("Scaled");}
++function SeparateEnum(){ return StringToEnum("Separate");}
++function SsetEnum(){ return StringToEnum("Sset");}
++function VerboseEnum(){ return StringToEnum("Verbose");}
++function TriangleInterpEnum(){ return StringToEnum("TriangleInterp");}
++function BilinearInterpEnum(){ return StringToEnum("BilinearInterp");}
++function NearestInterpEnum(){ return StringToEnum("NearestInterp");}
++function XYEnum(){ return StringToEnum("XY");}
++function XYZEnum(){ return StringToEnum("XYZ");}
++function DenseEnum(){ return StringToEnum("Dense");}
++function MpiDenseEnum(){ return StringToEnum("MpiDense");}
++function MpiSparseEnum(){ return StringToEnum("MpiSparse");}
++function SeqEnum(){ return StringToEnum("Seq");}
++function MpiEnum(){ return StringToEnum("Mpi");}
++function MumpsEnum(){ return StringToEnum("Mumps");}
++function GslEnum(){ return StringToEnum("Gsl");}
++function OptionEnum(){ return StringToEnum("Option");}
++function GenericOptionEnum(){ return StringToEnum("GenericOption");}
++function OptionCellEnum(){ return StringToEnum("OptionCell");}
++function OptionStructEnum(){ return StringToEnum("OptionStruct");}
++function CuffeyEnum(){ return StringToEnum("Cuffey");}
++function PatersonEnum(){ return StringToEnum("Paterson");}
++function ArrheniusEnum(){ return StringToEnum("Arrhenius");}
++function LliboutryDuvalEnum(){ return StringToEnum("LliboutryDuval");}
++function TransientIslevelsetEnum(){ return StringToEnum("TransientIslevelset");}
++function SpcLevelsetEnum(){ return StringToEnum("SpcLevelset");}
++function ExtrapolationVariableEnum(){ return StringToEnum("ExtrapolationVariable");}
++function IceMaskNodeActivationEnum(){ return StringToEnum("IceMaskNodeActivation");}
++function LevelsetfunctionSlopeXEnum(){ return StringToEnum("LevelsetfunctionSlopeX");}
++function LevelsetfunctionSlopeYEnum(){ return StringToEnum("LevelsetfunctionSlopeY");}
++function LevelsetfunctionPicardEnum(){ return StringToEnum("LevelsetfunctionPicard");}
++function MaximumNumberOfDefinitionsEnum(){ return StringToEnum("MaximumNumberOfDefinitions");}
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19779)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19780)
+@@ -41,9 +41,9 @@
+ 	}
+ 	
+ 	//Get assigned fields
+-	x=md.mesh.x;
+-	y=md.mesh.y;
+-	elements=md.mesh.elements;
++	var x=md.mesh.x;
++	var y=md.mesh.y;
++	var elements=md.mesh.elements;
+ 
+ 	//Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. 
+ 	//Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. 
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19779)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19780)
+@@ -91,19 +91,23 @@
+ 
+ 	return matrix;
+ } //}}}
+-function MatrixToList(matrix) { //{{{
+-	
+-	var width = matrix[0].length;
+-	var length = matrix.length;
+-	var list= new Array(width*length);
++function MatrixToList(matrixin) { //{{{
+ 
+-	for(var i=0;i<length;i++){
+-		for(var j=0;j<width;j++){
+-			list[i*width+j]=matrix[i][j];
++	var matrix=matrixin;
++
++	if (!IsArray(matrix[0])) return matrix;
++	else{
++		var width = matrix[0].length;
++		var length = matrix.length;
++		var list= new Array(width*length);
++
++		for(var i=0;i<length;i++){
++			for(var j=0;j<width;j++){
++				list[i*width+j]=matrix[i][j];
++			}
+ 		}
++		return list;
+ 	}
+-		
+-	return list;
+ } //}}}
+ function IsArray(object) { //{{{
+ 
+@@ -119,6 +123,12 @@
+ 	for (i=0;i<array.length;i++)notarray[i]=-array[i];
+ 	return notarray;
+ } //}}}
++function ArrayCopy(array) { //{{{
++
++	var copy=[];
++	for(var i=0;i<array.length;i++)copy[i]=array[i];
++	return copy;
++} //}}}
+ function ArrayPow(array,coefficient) { //{{{
+ 
+ 	var powarray=array;
+@@ -144,11 +154,31 @@
+ 	}
+ 	return 0;
+ } //}}}
++function ArrayUnique(arr) { //{{{
++
++	return arr.reverse().filter(function (e, i, arr) {
++		    return arr.indexOf(e, i+1) === -1;
++	}).reverse();
++} //}}}
++function ArraySort(array) { //{{{
++
++	return array.sort(function(a, b) {
++		return a - b;
++	});
++
++} //}}}
+ function ArrayAnyEqual(array,value) { //{{{
+-
+-	for(var i=0;i<array.length;i++){
+-		if (array[i]==value)return 1;
++	
++	if(!isNaN(value)){
++		for(var i=0;i<array.length;i++){
++			if (array[i]==value)return 1;
++		}
+ 	}
++	else{
++		for(var i=0;i<array.length;i++){
++			if (isNaN(array[i]))return 1;
++		}
++	}
+ 	return 0;
+ } //}}}
+ function ArrayAnyBelowOrEqual(array,value) { //{{{
+@@ -185,10 +215,33 @@
+ 	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
+ 	return array;
+ } //}}}
++function ArrayIsMember(array1,array2) { //{{{
++
++	var array=NewArrayFill(array1.length,0);
++	for (i=0;i<array1.length;i++){
++		for(j=0;j<array2.length;j++){
++			if (array1[i] == array2[j]){
++				array[i]=1;
++				break;
++			}
++		}
++	}
++	return array;
++} //}}}
+ function NewArrayFill(size,value) { //{{{
+ 
+ 	return new Array(size).fill(value);
+ } //}}}
++function NewArrayFillIncrement(size,start,increment) { //{{{
++
++	var array=new Array(size); 
++
++	for(var i=0;i<size;i++){
++		array[i]=start+i*increment;
++	}
++
++	return array;
++} //}}}
+ function ArrayFind(array,value) { //{{{
+ 	
+ 	//find number of indices
Index: /issm/oecreview/Archive/19101-20495/ISSM-19780-19781.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19780-19781.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19780-19781.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19780)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19781)
+@@ -27,26 +27,50 @@
+ <script type="text/javascript" src="../../src/m/classes/settings.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/toolkits.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/stressbalance.js"></script>
++<script type="text/javascript" src="../../src/m/classes/balancethickness.js"></script>
++<script type="text/javascript" src="../../src/m/classes/hydrologyshreve.js"></script>
++<script type="text/javascript" src="../../src/m/classes/masstransport.js"></script>
++<script type="text/javascript" src="../../src/m/classes/thermal.js"></script>
++<script type="text/javascript" src="../../src/m/classes/calving.js"></script>
++<script type="text/javascript" src="../../src/m/classes/gia.js"></script>
++<script type="text/javascript" src="../../src/m/classes/autodiff.js"></script>
++<script type="text/javascript" src="../../src/m/classes/flaim.js"></script>
++<script type="text/javascript" src="../../src/m/classes/inversion.js"></script>
++<script type="text/javascript" src="../../src/m/classes/qmu.js"></script>
++<script type="text/javascript" src="../../src/m/classes/radaroverlay.js"></script>
++<script type="text/javascript" src="../../src/m/classes/outputdefinition.js"></script>
++<script type="text/javascript" src="../../src/m/classes/miscellaneous.js"></script>
++<script type="text/javascript" src="../../src/m/classes/private.js"></script>
++<script type="text/javascript" src="../../src/m/classes/steadystate.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/rifts.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/friction.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
++<script type="text/javascript" src="../../src/m/classes/transient.js"></script>
++<script type="text/javascript" src="../../src/m/boundaryconditions/SetIceShelfBC.js"></script>
++<script type="text/javascript" src="../../src/m/parameterization/setflowequation.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/clusters/generic.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
++<script type="text/javascript" src="../../src/m/consistency/ismodelselfconsistent.js"></script>
++<script type="text/javascript" src="../../src/m/consistency/checkfield.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/rgbcolor.js"></script>
+ <script type="text/javascript" src="../../src/m/materials/paterson.js"></script>
+ <script type="text/javascript" src="../../src/m/miscellaneous/colorbars.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/webgl.js"></script>
++<script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_mesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
++<script type="text/javascript" src="../../src/m/enum/EnumDefinitions.js"></script>
+ <script type="text/javascript" src="../../src/m/solvers/issmgslsolver.js"></script>
++<script type="text/javascript" src="../../src/m/solve/solve.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
++<script type="text/javascript" src="../../src/wrappers/EnumToString/EnumToString.js"></script>
++<script type="text/javascript" src="../../src/wrappers/StringToEnum/StringToEnum.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/IssmConfig/IssmConfig.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+@@ -58,18 +82,21 @@
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+-	<script type="text/javascript" async><!--{{{-->
++	
++	<script type="text/javascript" async><!--}}}-->
+ 
+-		var md = new model();
+-		triangle(md,square,10000); 
+-		parameterize(md);
+-		
+-		plotmodel(md,'data',md.friction.coefficient,'canvasid',1,
+-		'data',md.materials.rheology_B,'canvasid',2,
+-		'data',md.initialization.temperature,'canvasid',3,
+-		'data',md.basalforcings.floatingice_melting_rate,'canvasid',4);
++	var md = new model();
++	triangle(md,square[0],100000); 
++	setmask(md,'all','');
++	parameterize(md);
++	
++	setflowequation(md,'SSA','all');
++	md=solve(md,StressbalanceSolutionEnum());
+ 
++	/*plotmodel(md,'data',md.initialization.vel, 'data',md.initialization.vx,
++	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');*/
+ 
+-	</script> <!--}}}-->
++
++</script> <!--{{{-->
+ </body> 
+ </html><!--}}}-->
Index: /issm/oecreview/Archive/19101-20495/ISSM-19781-19782.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19781-19782.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19781-19782.diff	(revision 20498)
@@ -0,0 +1,995 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19781)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19782)
+@@ -63,6 +63,7 @@
+ <script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_mesh.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
++<script type="text/javascript" src="../../src/m/plot/applyoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+ <script type="text/javascript" src="../../src/m/enum/EnumDefinitions.js"></script>
+@@ -90,11 +91,11 @@
+ 	setmask(md,'all','');
+ 	parameterize(md);
+ 	
+-	setflowequation(md,'SSA','all');
+-	md=solve(md,StressbalanceSolutionEnum());
++	//setflowequation(md,'SSA','all');
++	//md=solve(md,StressbalanceSolutionEnum());
+ 
+-	/*plotmodel(md,'data',md.initialization.vel, 'data',md.initialization.vx,
+-	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');*/
++	plotmodel(md,'data',md.initialization.vel,'colorbar',1, 'data',md.initialization.vx,
++	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
+ 
+ 
+ </script> <!--{{{-->
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19781)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19782)
+@@ -1,502 +1,517 @@
+ function applyoptions(md,data,options){
+-//APPLYOPTIONS - apply the options to current plot
+-//
+-//   Usage:
+-//      applyoptions(md,data,options)
+-//
+-//   See also: PLOTMODEL, PARSE_OPTIONS
++	//APPLYOPTIONS - apply the options to current plot
++	//
++	//   Usage:
++	//      applyoptions(md,data,options)
++	//
++	//   See also: PLOTMODEL, PARSE_OPTIONS
++	/* //{{{
++	//fontsize
++	fontsize=options.getfieldvalue('fontsize',14);
+ 
+-//fontsize
+-fontsize=options.getfieldvalue('fontsize',14);
++	//fontweight
++	fontweight=options.getfieldvalue('fontweight','normal');
+ 
+-//fontweight
+-fontweight=options.getfieldvalue('fontweight','normal');
+-
+-//title
+-if exist(options,'title')
+-	titlevalue=options.getfieldvalue('title');
+-	if iscell(titlevalue),
+-		title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
+-	else
+-		if ~isnan(titlevalue),
++	//title
++	if exist(options,'title')
++		titlevalue=options.getfieldvalue('title');
++		if iscell(titlevalue),
+ 			title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
++		else
++			if ~isnan(titlevalue),
++				title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
++			end
+ 		end
+ 	end
+-end
+ 
+-//xlabel, ylabel and zlabel
+-if exist(options,'xlabel');
+-	xlabel(options.getfieldvalue('xlabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-end
+-if exist(options,'ylabel');
+-	ylabel(options.getfieldvalue('ylabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-end
+-if exist(options,'zlabel');
+-	zlabel(options.getfieldvalue('zlabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-end
++	//xlabel, ylabel and zlabel
++	if exist(options,'xlabel');
++		xlabel(options.getfieldvalue('xlabel'),'FontSize',fontsize,'FontWeight',fontweight);
++	end
++	if exist(options,'ylabel');
++		ylabel(options.getfieldvalue('ylabel'),'FontSize',fontsize,'FontWeight',fontweight);
++	end
++	if exist(options,'zlabel');
++		zlabel(options.getfieldvalue('zlabel'),'FontSize',fontsize,'FontWeight',fontweight);
++	end
+ 
+-//xticks, yticks and zticks
+-if exist(options,'xtick'), set(gca,'XTick',options.getfieldvalue('xtick')); end
+-if exist(options,'ytick'), set(gca,'YTick',options.getfieldvalue('ytick')); end
+-if exist(options,'ztick'), set(gca,'ZTick',options.getfieldvalue('ztick')); end
++	//xticks, yticks and zticks
++	if exist(options,'xtick'), set(gca,'XTick',options.getfieldvalue('xtick')); end
++	if exist(options,'ytick'), set(gca,'YTick',options.getfieldvalue('ytick')); end
++	if exist(options,'ztick'), set(gca,'ZTick',options.getfieldvalue('ztick')); end
+ 
+-//view 
+-if dimension(md.mesh)==3 & ~exist(options,'layer'),
+-	view(options.getfieldvalue('view',3));
+-else
+-	view(options.getfieldvalue('view',2));
+-end
++	//view 
++	if dimension(md.mesh)==3 & ~exist(options,'layer'),
++		view(options.getfieldvalue('view',3));
++	else
++		view(options.getfieldvalue('view',2));
++	end
+ 
+-//axis
+-set(gca,'FontSize',options.getfieldvalue('axisfontsize',fontsize));;
+-if exist(options,'axis')
+-	eval(['axis ' options.getfieldvalue('axis')]);
+-else
+-	if strcmp(domaintype(md.mesh),'3D'),
+-		if ~exist(options,'layer'),
++	//axis
++	set(gca,'FontSize',options.getfieldvalue('axisfontsize',fontsize));;
++	if exist(options,'axis')
++		eval(['axis ' options.getfieldvalue('axis')]);
++	else
++		if strcmp(domaintype(md.mesh),'3D'),
++			if ~exist(options,'layer'),
++				axis auto tight
++			else
++				axis tight equal
++			end
++		elseif strcmp(domaintype(md.mesh),'2Dvertical'),
+ 			axis auto tight
++		elseif strcmp(domaintype(md.mesh),'3Dsurface'),
++			axis auto tight
++
++		elseif strcmp(domaintype(md.mesh),'2Dhorizontal'),
++			axis tight equal;
+ 		else
+-			axis tight equal
++			error('type of domain not supported');
+ 		end
+-	elseif strcmp(domaintype(md.mesh),'2Dvertical'),
+-		axis auto tight
+-	elseif strcmp(domaintype(md.mesh),'3Dsurface'),
+-		axis auto tight
++	end
+ 
+-	elseif strcmp(domaintype(md.mesh),'2Dhorizontal'),
+-		axis tight equal;
+-	else
+-		error('type of domain not supported');
++	//box
++	if exist(options,'box')
++		eval(['box ' options.getfieldvalue('box')]);
+ 	end
+-end
+ 
+-//box
+-if exist(options,'box')
+-	eval(['box ' options.getfieldvalue('box')]);
+-end
++	//xlim, ylim and zlim
++	if exist(options,'xlim');
++		xlim(options.getfieldvalue('xlim'));
++	end
++	if exist(options,'ylim');
++		ylim(options.getfieldvalue('ylim'));
++	end
++	if exist(options,'zlim');
++		zlim(options.getfieldvalue('zlim'));
++	end
+ 
+-//xlim, ylim and zlim
+-if exist(options,'xlim');
+-	xlim(options.getfieldvalue('xlim'));
+-end
+-if exist(options,'ylim');
+-	ylim(options.getfieldvalue('ylim'));
+-end
+-if exist(options,'zlim');
+-	zlim(options.getfieldvalue('zlim'));
+-end
+-
+-//latlon
+-//Must be done here (before xlim and ylim??) so that it uses the same xlim and ylim as plot_overlay
+-//these are changed by axis that follows
+-if ~strcmpi(options.getfieldvalue('latlon','off'),'off')
+-	latlonoverlay(md,options);
+-end
+-
+-//Basinzoom
+-if exist(options,'basin');
+-	basinzoom(options);
+-end
+-
+-//ShowBasins
+-if strcmpi(options.getfieldvalue('showbasins','off'),'on')
+-	showbasins(options);
+-end
+-
+-//Caxis
+-if exist(options,'caxis'),
+-	caxis(options.getfieldvalue('caxis'));
+-end
+-
+-//shading
+-if exist(options,'shading'),
+-	shading(options.getfieldvalue('shading'));
+-end
+-
+-//grid
+-if exist(options,'grid'),
+-	if strcmpi(options.getfieldvalue('grid'),'on'),
+-		grid on;
++	//latlon
++	//Must be done here (before xlim and ylim??) so that it uses the same xlim and ylim as plot_overlay
++	//these are changed by axis that follows
++	if ~strcmpi(options.getfieldvalue('latlon','off'),'off')
++		latlonoverlay(md,options);
+ 	end
+-end
+ 
+-//colormap
+-c = getcolormap(options);
+-h = colormap(c);
+-
+-//wrapping
+-if exist(options,'wrapping'),
+-	if ~exist(options,'colormap'),
+-		h=jet;
++	//Basinzoom
++	if exist(options,'basin');
++		basinzoom(options);
+ 	end
+-	colormap(repmat(h,options.getfieldvalue('wrapping',1),1));
+-end
+ 
+-//colorbar
+-if options.getfieldvalue('colorbar',1)==1,
+-	if exist(options,'colorbarcornerposition'),
+-		c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+-	else 
+-		c=colorbar('peer',gca);
++	//ShowBasins
++	if strcmpi(options.getfieldvalue('showbasins','off'),'on')
++		showbasins(options);
+ 	end
+-	set(c,'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'YColor',options.getfieldvalue('FontColor','k'));
+-	if exist(options,'wrapping')
+-		lim=get(c,'Ylim');
+-		lim=[lim(1) lim(1)+(lim(2)-lim(1))/options.getfieldvalue('wrapping')];
+-		set(c,'Ylim',lim);
++	*/ //}}}
++	//Caxis
++	if (options.exist('caxis')) {
++		caxis(options.getfieldvalue('caxis'));
++	}
++	/* ///{{{
++	//shading
++	if exist(options,'shading'),
++		shading(options.getfieldvalue('shading'));
+ 	end
+-	if exist(options,'colorbarpos'),
+-		set(c,'Position',options.getfieldvalue('colorbarpos'));
++
++	//grid
++	if exist(options,'grid'),
++		if strcmpi(options.getfieldvalue('grid'),'on'),
++			grid on;
++		end
+ 	end
+-	if exist(options,'log'),
+-		nlab=length(get(c,'YTick'));
+-		logvalue=options.getfieldvalue('log');
+ 
+-		scaleminmax=caxis;
+-		Min=min(scaleminmax);
+-		Max=max(scaleminmax);
+-		set(c,'YLim',[Min Max]); // set colorbar limits
+-		set(c,'YTick',linspace(Min,Max,nlab));     // set tick mark locations
++	//colormap
++	c = getcolormap(options);
++	h = colormap(c);
+ 
+-		labels = cell(1,nlab);
+-		tick_vals = linspace(Min,Max,nlab);
+-		tick_vals = exp(log(logvalue)*tick_vals);
+-		warning off MATLAB:log:logOfZero;
+-		for i = 1:nlab
+-			labels{i} = sprintf('//-3.4g',round_ice(tick_vals(i),2));
+-			//labels{i} = sprintf('//-.4g',round_ice(tick_vals(i),2));
++	//wrapping
++	if exist(options,'wrapping'),
++		if ~exist(options,'colormap'),
++			h=jet;
+ 		end
+-		warning on MATLAB:log:logOfZero;
+-		set(c,'YTickLabel',labels);
+-	end 
+- 	if exist(options,'cbYLim'); 
+-		set(c,'YLim',options.getfieldvalue('cbYLim'));
++		colormap(repmat(h,options.getfieldvalue('wrapping',1),1));
+ 	end
+-	if exist(options,'colorbartitle'),
+-		set(get(c,'title'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbartitle'),...
+-			'Color',options.getfieldvalue('FontColor','k'));
++	*/ //}}}
++	//colorbar
++	if (options.exist('colorbar')) {
++		if (options.getfieldvalue('colorbar')==1) {
++			if (options.exist('colorbarcornerposition')) {
++				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
++			} else { 
++				var cheight = options.getfieldvalue('colorbarheight',options.getfieldvalue('canvassize',480));
++				var cwidth = options.getfieldvalue('colorbarwidth',options.getfieldvalue('canvassize',480)/20);
++				var cdivisions = cheight/4;
++				var color;
++				var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'-colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter("#"+options.getfieldvalue('canvasid'));
++				ccanvas.css({"vertical-align":"top","margin":"0px "+String(cwidth/4)+"px 0px "+String(cwidth/4)+"px"});
++				var ccontext = ccanvas[0].getContext('2d');
++				for (var i = 0; i < cdivisions; i++) {
++					var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
++					color = colorbar[(colorbar.length - 1) - cindex];
++					color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)];	
++					ccontext.fillStyle = "rgba(" + color.toString() + ",1.0)";
++					ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
++				}
++			}
++			/* //{{{
++			set(c,'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'YColor',options.getfieldvalue('FontColor','k'));
++			if exist(options,'wrapping')
++				lim=get(c,'Ylim');
++				lim=[lim(1) lim(1)+(lim(2)-lim(1))/options.getfieldvalue('wrapping')];
++				set(c,'Ylim',lim);
++			}
++			if exist(options,'colorbarpos'),
++				set(c,'Position',options.getfieldvalue('colorbarpos'));
++			}
++			if exist(options,'log'),
++				nlab=length(get(c,'YTick'));
++				logvalue=options.getfieldvalue('log');
++
++				scaleminmax=caxis;
++				Min=min(scaleminmax);
++				Max=max(scaleminmax);
++				set(c,'YLim',[Min Max]); // set colorbar limits
++				set(c,'YTick',linspace(Min,Max,nlab));     // set tick mark locations
++
++				labels = cell(1,nlab);
++				tick_vals = linspace(Min,Max,nlab);
++				tick_vals = exp(log(logvalue)*tick_vals);
++				warning off MATLAB:log:logOfZero;
++				for i = 1:nlab
++					labels{i} = sprintf('//-3.4g',round_ice(tick_vals(i),2));
++					//labels{i} = sprintf('//-.4g',round_ice(tick_vals(i),2));
++				}
++				warning on MATLAB:log:logOfZero;
++				set(c,'YTickLabel',labels);
++			} 
++			if exist(options,'cbYLim'); 
++				set(c,'YLim',options.getfieldvalue('cbYLim'));
++			}
++			if exist(options,'colorbartitle'),
++				set(get(c,'title'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbartitle'),...
++					'Color',options.getfieldvalue('FontColor','k'));
++			}
++			if exist(options,'colorbarYLabel'),
++				set(get(c,'Ylabel'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbarYLabel'),...
++					'Color',options.getfieldvalue('FontColor','k'));
++			}
++			if exist(options,'colorbarwidth'),
++				posaxes=get(gca,'Position');
++				alpha=options.getfieldvalue('colorbarwidth',1);
++				position=get(c,'Position');
++				dx=position(3);
++				newdx=dx*alpha;
++				position(1)=position(1)+(dx-newdx)/2;
++				position(3)=newdx;
++				set(c,'Position',position);
++				set(gca,'Position',posaxes);
++			}
++			if exist(options,'colorbarheight'),
++				posaxes=get(gca,'Position');
++				alpha=options.getfieldvalue('colorbarheight',1);
++				position=get(c,'Position');
++				dy=position(4);
++				newdy=dy*alpha;
++				position(2)=position(2)+(dy-newdy)/2;
++				position(4)=newdy;
++				set(c,'Position',position);
++				set(gca,'Position',posaxes);
++			}
++			if exist(options,'cbYTickLabel');
++				tick_vals=options.getfieldvalue('cbYTickLabel');
++				if ~isnumeric(tick_vals) & strcmp(tick_vals,'on')
++					tick_vals=get(c,'YTick')';
++					if exist(options,'log')
++						logval= options.getfieldvalue('log');
++						for i= 1:numel(tick_vals)
++							tick_vals(i)= logval^(tick_vals(i));
++						}
++					elseif numel(tick_vals) == 3
++						tick_vals=[tick_vals(1); mean(tick_vals(1:2)); tick_vals(2); ...
++							mean(tick_vals(2:3)); tick_vals(3)];
++						set(c,'YTick',tick_vals);
++					}
++				else
++					if exist(options,'log')
++						logvalue=options.getfieldvalue('log');
++						set(c,'YTick',log(tick_vals)./log(logvalue));
++					else
++						set(c,'YTick',tick_vals);
++					}
++				}
++				labels = cell(1,numel(tick_vals));
++				for i = 1:numel(tick_vals)
++					labels{i} = num2str(tick_vals(i));
++				}
++				set(c,'YTickLabel',labels);
++			}
++			*/ //}}}
++		}
++	} else {
++		//do nothing
++
++	}
++	/* //{{{
++	//area
++	if exist(options,'area'),
++		antzoom(options.getfieldvalue('area'));
+ 	end
+-	if exist(options,'colorbarYLabel'),
+-		set(get(c,'Ylabel'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbarYLabel'),...
+-			'Color',options.getfieldvalue('FontColor','k'));
+-	end
+-	if exist(options,'colorbarwidth'),
+-		posaxes=get(gca,'Position');
+-		alpha=options.getfieldvalue('colorbarwidth',1);
+-		position=get(c,'Position');
+-		dx=position(3);
+-		newdx=dx*alpha;
+-		position(1)=position(1)+(dx-newdx)/2;
+-		position(3)=newdx;
+-		set(c,'Position',position);
+-		set(gca,'Position',posaxes);
+-	end
+-	if exist(options,'colorbarheight'),
+-		posaxes=get(gca,'Position');
+-		alpha=options.getfieldvalue('colorbarheight',1);
+-		position=get(c,'Position');
+-		dy=position(4);
+-		newdy=dy*alpha;
+-		position(2)=position(2)+(dy-newdy)/2;
+-		position(4)=newdy;
+-		set(c,'Position',position);
+-		set(gca,'Position',posaxes);
+-	end
+-	if exist(options,'cbYTickLabel');
+-		tick_vals=options.getfieldvalue('cbYTickLabel');
+-		if ~isnumeric(tick_vals) & strcmp(tick_vals,'on')
+-			tick_vals=get(c,'YTick')';
+-			if exist(options,'log')
+-				logval= options.getfieldvalue('log');
+-				for i= 1:numel(tick_vals)
+-					tick_vals(i)= logval^(tick_vals(i));
+-				end
+-			elseif numel(tick_vals) == 3
+-				tick_vals=[tick_vals(1); mean(tick_vals(1:2)); tick_vals(2); ...
+-					mean(tick_vals(2:3)); tick_vals(3)];
+-				set(c,'YTick',tick_vals);
+-			end
+-		else
+-			if exist(options,'log')
+-				logvalue=options.getfieldvalue('log');
+-				set(c,'YTick',log(tick_vals)./log(logvalue));
++
++	//expdisp
++	if exist(options,'expdisp'),
++		filename=(options.getfieldvalue('expdisp'));
++		style=(options.getfieldvalue('expstyle'));
++		linewidth=(options.getfieldvalue('linewidth',1));
++		for i=1:length(options.getfieldvalue('expdisp')),
++			filenamei=filename{i};
++			stylei=style{i};
++			if length(linewidth)==1,
++				linewidthi=linewidth;
+ 			else
+-				set(c,'YTick',tick_vals);
++				linewidthi=linewidth{i};
+ 			end
++			expdisp(filenamei,'linestyle',stylei,'linewidthi',linewidthi,'multiplier',options.getfieldvalue('unit',1));
+ 		end
+-		labels = cell(1,numel(tick_vals));
+-		for i = 1:numel(tick_vals)
+-			labels{i} = num2str(tick_vals(i));
+-		end
+-		set(c,'YTickLabel',labels);
+ 	end
+ 
+-elseif options.getfieldvalue('colorbar',1)==0,
+-	colorbar('off');
+-else
+-	//do nothing
+-
+-end
+-
+-//area
+-if exist(options,'area'),
+-	antzoom(options.getfieldvalue('area'));
+-end
+-
+-//expdisp
+-if exist(options,'expdisp'),
+-	filename=(options.getfieldvalue('expdisp'));
+-	style=(options.getfieldvalue('expstyle'));
+-	linewidth=(options.getfieldvalue('linewidth',1));
+-	for i=1:length(options.getfieldvalue('expdisp')),
+-		filenamei=filename{i};
+-		stylei=style{i};
+-		if length(linewidth)==1,
+-			linewidthi=linewidth;
+-		else
+-			linewidthi=linewidth{i};
++	//text (default value is empty, not NaN...)
++	if exist(options,'text');
++		textstring=options.getfieldvalue('text');
++		textweight=options.getfieldvalue('textweight','b');
++		textsize=options.getfieldvalue('textsize');
++		textcolor=options.getfieldvalue('textcolor');
++		textposition=options.getfieldvalue('textposition');
++		textrotation=options.getfieldvalue('textrotation');
++		for i=1:length(options.getfieldvalue('text'));
++			textstringi=textstring{i};
++			textweighti=textweight{i};
++			textsizei=textsize{i};
++			textcolori=textcolor{i};
++			textpositioni=textposition{i};
++			textrotationi=textrotation{i};
++			h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
++			set(h,'Clipping','on'); //prevent text from appearing outside of the box
+ 		end
+-		expdisp(filenamei,'linestyle',stylei,'linewidthi',linewidthi,'multiplier',options.getfieldvalue('unit',1));
+ 	end
+-end
+ 
+-//text (default value is empty, not NaN...)
+-if exist(options,'text');
+-	textstring=options.getfieldvalue('text');
+-	textweight=options.getfieldvalue('textweight','b');
+-	textsize=options.getfieldvalue('textsize');
+-	textcolor=options.getfieldvalue('textcolor');
+-	textposition=options.getfieldvalue('textposition');
+-	textrotation=options.getfieldvalue('textrotation');
+-	for i=1:length(options.getfieldvalue('text'));
+-		textstringi=textstring{i};
+-		textweighti=textweight{i};
+-		textsizei=textsize{i};
+-		textcolori=textcolor{i};
+-		textpositioni=textposition{i};
+-		textrotationi=textrotation{i};
+-		h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
+-		set(h,'Clipping','on'); //prevent text from appearing outside of the box
++	//north arrow
++	if exist(options,'northarrow'),
++		northarrow(options.getfieldvalue('northarrow'));
+ 	end
+-end
+ 
+-//north arrow
+-if exist(options,'northarrow'),
+-	northarrow(options.getfieldvalue('northarrow'));
+-end
++	//curved arrow
++	if exist(options,'curvedarrow'),
++		curvedoptions=options.getfieldvalue('curvedarrow');
++		curvedarrow(curvedoptions{:});
++	end
+ 
+-//curved arrow
+-if exist(options,'curvedarrow'),
+-	curvedoptions=options.getfieldvalue('curvedarrow');
+-	curvedarrow(curvedoptions{:});
+-end
++	//Scale ruler
++	if exist(options,'scaleruler'),
++		scaleruler(options);
++	end
+ 
+-//Scale ruler
+-if exist(options,'scaleruler'),
+-	scaleruler(options);
+-end
++	//streamliness
++	if exist(options,'streamlines'),
++		plot_streamlines(md,options);
++	end
+ 
+-//streamliness
+-if exist(options,'streamlines'),
+-	plot_streamlines(md,options);
+-end
++	//contours
++	if exist(options,'contourlevels'),
++		plot_contour(md,data,options);
++	end
+ 
+-//contours
+-if exist(options,'contourlevels'),
+-	plot_contour(md,data,options);
+-end
++	//YTickLabel
++	if exist(options,'yticklabel'),
++		set(gca,'YTickLabel',options.getfieldvalue('YTickLabel'));
++	end
+ 
+-//YTickLabel
+-if exist(options,'yticklabel'),
+-	set(gca,'YTickLabel',options.getfieldvalue('YTickLabel'));
+-end
++	//XTickLabel
++	if exist(options,'xticklabel'),
++		set(gca,'XTickLabel',options.getfieldvalue('XTickLabel'));
++	end
+ 
+-//XTickLabel
+-if exist(options,'xticklabel'),
+-	set(gca,'XTickLabel',options.getfieldvalue('XTickLabel'));
+-end
++	//xtick
++	if exist(options,'xtick'),
++		set(gca,'xtick',options.getfieldvalue('xtick'));
++	end
+ 
+-//xtick
+-if exist(options,'xtick'),
+-	set(gca,'xtick',options.getfieldvalue('xtick'));
+-end
++	//ytick
++	if exist(options,'ytick'),
++		set(gca,'ytick',options.getfieldvalue('ytick'));
++	end
+ 
+-//ytick
+-if exist(options,'ytick'),
+-	set(gca,'ytick',options.getfieldvalue('ytick'));
+-end
++	//Axis positions
++	if exist(options,'offsetaxispos'),
++		offset=options.getfieldvalue('offsetaxispos');
++		P=get(gca,'pos');
++		P(1)=P(1)+offset(1);
++		P(2)=P(2)+offset(2);
++		P(3)=P(3)+offset(3);
++		P(3)=P(4)+offset(4);
++		set(gca,'pos',P);
++	end
++	if exist(options,'axispos'),
++		Axis=options.getfieldvalue('axispos');
++		hold on
++		set(gca,'pos',Axis);
++	end
+ 
+-//Axis positions
+-if exist(options,'offsetaxispos'),
+-	offset=options.getfieldvalue('offsetaxispos');
+-	P=get(gca,'pos');
+-	P(1)=P(1)+offset(1);
+-	P(2)=P(2)+offset(2);
+-	P(3)=P(3)+offset(3);
+-	P(3)=P(4)+offset(4);
+-	set(gca,'pos',P);
+-end
+-if exist(options,'axispos'),
+-	Axis=options.getfieldvalue('axispos');
+-	hold on
+-	set(gca,'pos',Axis);
+-end
++	//axes position
++	if exist(options,'axesPosition')
++		set(gca,'Position',options.getfieldvalue('axesPosition'));
++	end
+ 
+-//axes position
+-if exist(options,'axesPosition')
+-	set(gca,'Position',options.getfieldvalue('axesPosition'));
+-end
++	//showregion
++	if strcmpi(options.getfieldvalue('showregion','off'),'on'),
++		//Keep pointer of main axis
++		maingca=gca;
++		//get inset relative position (x,y,width,height)
++		insetpos=options.getfieldvalue('insetpos',[0.02 0.70 0.18 0.18]);
++		//get current plos position
++		cplotpos=get(maingca,'pos');
++		//compute inset position
++		PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
++		axes('pos',PosInset);
++		axis equal off
++		//box off
++		if md.mesh.epsg==3413,
++			A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp');
++			[A.x A.y]=ll2xy(A.x,A.y,+1,45,70);
++			A.x = A.x(1:30:end);
++			A.y = A.y(1:30:end);
++		elseif md.mesh.epsg==3031,
++			A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp');
++		else
++			error('applyoptions error message: md.mesh.epsg not defined');
++		end
++		offset=3*10^4;
++		Ax=[min(A.x)-offset max(A.x)+offset];
++		Ay=[min(A.y)-offset max(A.y)+offset];
++		//if we are zooming on a basin, don't take the mesh for the boundaries!
++		if exist(options,'basin'),
++			[mdx mdy]=basinzoom(options);
++		else
++			mdx=[min(md.mesh.x)-offset max(md.mesh.x)+offset];
++			mdy=[min(md.mesh.y)-offset max(md.mesh.y)+offset];
++		end
++		line(A.x,A.y,ones(size(A.x)),'color','b');
++		patch([Ax(1)  Ax(2)  Ax(2)  Ax(1) Ax(1)],[Ay(1)  Ay(1)  Ay(2)  Ay(2) Ay(1)],[1 1 1],'EdgeColor',[0 0 0],'LineWidth',1,'FaceLighting','none')
++		patch([mdx(1) mdx(2) mdx(2) mdx(1)],[mdy(1) mdy(1) mdy(2) mdy(2)],ones(4,1),'EdgeColor',[0 0 0],'FaceColor','r','FaceAlpha',0.5)
++		colorbar('off');
++		//back to main gca
++		set(gcf,'CurrentAxes',maingca)
++	end
+ 
+-//showregion
+-if strcmpi(options.getfieldvalue('showregion','off'),'on'),
+-	//Keep pointer of main axis
+-	maingca=gca;
+-	//get inset relative position (x,y,width,height)
+-	insetpos=options.getfieldvalue('insetpos',[0.02 0.70 0.18 0.18]);
+-	//get current plos position
+-	cplotpos=get(maingca,'pos');
+-	//compute inset position
+-	PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
+-	axes('pos',PosInset);
+-	axis equal off
+-	//box off
+-	if md.mesh.epsg==3413,
+-		A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp');
+-		[A.x A.y]=ll2xy(A.x,A.y,+1,45,70);
+-		A.x = A.x(1:30:end);
+-		A.y = A.y(1:30:end);
+-	elseif md.mesh.epsg==3031,
+-		A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp');
+-	else
+-		error('applyoptions error message: md.mesh.epsg not defined');
++	//flag edges of a partition
++	if exist(options,'partitionedges')
++		[xsegments ysegments]=flagedges(md.mesh.elements,md.mesh.x,md.mesh.y,md.qmu.partition);
++		xsegments=xsegments*options.getfieldvalue('unit',1);
++		ysegments=ysegments*options.getfieldvalue('unit',1);
++		color=options.getfieldvalue('partitionedgescolor','r-');
++		linewidth=options.getfieldvalue('linewidth',1);
++		hold on;
++		for i=1:length(xsegments),
++			plot(xsegments(i,:),ysegments(i,:),color,'LineWidth',linewidth);
++		end
+ 	end
+-	offset=3*10^4;
+-	Ax=[min(A.x)-offset max(A.x)+offset];
+-	Ay=[min(A.y)-offset max(A.y)+offset];
+-	//if we are zooming on a basin, don't take the mesh for the boundaries!
+-	if exist(options,'basin'),
+-		[mdx mdy]=basinzoom(options);
+-	else
+-		mdx=[min(md.mesh.x)-offset max(md.mesh.x)+offset];
+-		mdy=[min(md.mesh.y)-offset max(md.mesh.y)+offset];
+-	end
+-	line(A.x,A.y,ones(size(A.x)),'color','b');
+-	patch([Ax(1)  Ax(2)  Ax(2)  Ax(1) Ax(1)],[Ay(1)  Ay(1)  Ay(2)  Ay(2) Ay(1)],[1 1 1],'EdgeColor',[0 0 0],'LineWidth',1,'FaceLighting','none')
+-	patch([mdx(1) mdx(2) mdx(2) mdx(1)],[mdy(1) mdy(1) mdy(2) mdy(2)],ones(4,1),'EdgeColor',[0 0 0],'FaceColor','r','FaceAlpha',0.5)
+-	colorbar('off');
+-	//back to main gca
+-	set(gcf,'CurrentAxes',maingca)
+-end
+ 
+-//flag edges of a partition
+-if exist(options,'partitionedges')
+-	[xsegments ysegments]=flagedges(md.mesh.elements,md.mesh.x,md.mesh.y,md.qmu.partition);
+-	xsegments=xsegments*options.getfieldvalue('unit',1);
+-	ysegments=ysegments*options.getfieldvalue('unit',1);
+-	color=options.getfieldvalue('partitionedgescolor','r-');
+-	linewidth=options.getfieldvalue('linewidth',1);
+-	hold on;
+-	for i=1:length(xsegments),
+-		plot(xsegments(i,:),ysegments(i,:),color,'LineWidth',linewidth);
++	//Scatter
++	if exist(options,'scatter')
++		data=options.getfieldvalue('scatter');
++		hold on
++		plot_scatter(data(:,1),data(:,2),data(:,3),options);
+ 	end
+-end
+ 
+-//Scatter
+-if exist(options,'scatter')
+-	data=options.getfieldvalue('scatter');
+-	hold on
+-	plot_scatter(data(:,1),data(:,2),data(:,3),options);
+-end
++	//backgroundcolor
++	set(gca,'color',options.getfieldvalue('backgroundcolor','none'));
+ 
+-//backgroundcolor
+-set(gca,'color',options.getfieldvalue('backgroundcolor','none'));
++	//lighting
++	if strcmpi(options.getfieldvalue('light','off'),'on'),
++		set(gca,'FaceLighting','gouraud','FaceColor','interp','AmbientStrength',0.5);
++		light('Position',[0 0.1 0.1],'Style','infinite');
++	end
+ 
+-//lighting
+-if strcmpi(options.getfieldvalue('light','off'),'on'),
+-	set(gca,'FaceLighting','gouraud','FaceColor','interp','AmbientStrength',0.5);
+-	light('Position',[0 0.1 0.1],'Style','infinite');
+-end
+-
+-//cloud of points: 
+-if exist(options,'cloud'),
+-	field=options.getfieldvalue('cloud');
+-	x=field(:,1);
+-	y=field(:,2);
+-	//unit multiplier:
+-	if exist(options,'unit'),
+-		unit=options.getfieldvalue('unit');
+-		x=x*unit;
+-		y=y*unit;
++	//cloud of points: 
++	if exist(options,'cloud'),
++		field=options.getfieldvalue('cloud');
++		x=field(:,1);
++		y=field(:,2);
++		//unit multiplier:
++		if exist(options,'unit'),
++			unit=options.getfieldvalue('unit');
++			x=x*unit;
++			y=y*unit;
++		end
++		hold on,p=plot(x,y,'k.');
++		markersize=options.getfieldvalue('markersize',12);
++		color=options.getfieldvalue('cloudcolor','k');
++		set(p,'Color',color);
++		set(p,'MarkerSize',markersize);
+ 	end
+-	hold on,p=plot(x,y,'k.');
+-	markersize=options.getfieldvalue('markersize',12);
+-	color=options.getfieldvalue('cloudcolor','k');
+-	set(p,'Color',color);
+-	set(p,'MarkerSize',markersize);
+-end
+ 
+-//========================//
+-//OK VERY LAST STEP: INSET|
+-//========================//
+-if exist(options,'inset'),
++	//========================//
++	//OK VERY LAST STEP: INSET|
++	//========================//
++	if exist(options,'inset'),
+ 
+-	//Keep pointer of main axis
+-	maingca=gca;
+-	//get inset relative position (x,y,width,height)
+-	insetpos=options.getfieldvalue('insetpos',[0.56 0.55 0.35 0.35]);
+-	//get current plot position
+-	cplotpos=get(gca,'pos');
++		//Keep pointer of main axis
++		maingca=gca;
++		//get inset relative position (x,y,width,height)
++		insetpos=options.getfieldvalue('insetpos',[0.56 0.55 0.35 0.35]);
++		//get current plot position
++		cplotpos=get(gca,'pos');
+ 
+-	X1=options.getfieldvalue('insetx',xlim);
+-	Y1=options.getfieldvalue('insety',ylim);
++		X1=options.getfieldvalue('insetx',xlim);
++		Y1=options.getfieldvalue('insety',ylim);
+ 
+-	for i=1:length(options.getfieldvalue('insetx')),
+-		if length(insetpos)==4,
+-			insetposi=insetpos;
+-		else
+-			insetposi=insetpos{i};
+-		end
+-		PosInseti=[cplotpos(1)+insetposi(1)*cplotpos(3),cplotpos(2)+insetposi(2)*cplotpos(4), insetposi(3)*cplotpos(3), insetposi(4)*cplotpos(4)];
+-		//show pos
+-		if iscell(X1),
+-			X1i=X1{i};
+-		else
+-			X1i=X1;
+-		end
+-		if iscell(Y1),
+-			Y1i=Y1{i};
+-		else
+-			Y1i=Y1;
+-		end
+-		if strcmpi(options.getfieldvalue('showinset','off'),'on')
+-			line(X1i([1 2 2 1 1]),Y1i([1 1 2 2 1]),zeros(1,5),'Color','k','LineWidth',2);
+-		end
++		for i=1:length(options.getfieldvalue('insetx')),
++			if length(insetpos)==4,
++				insetposi=insetpos;
++			else
++				insetposi=insetpos{i};
++			end
++			PosInseti=[cplotpos(1)+insetposi(1)*cplotpos(3),cplotpos(2)+insetposi(2)*cplotpos(4), insetposi(3)*cplotpos(3), insetposi(4)*cplotpos(4)];
++			//show pos
++			if iscell(X1),
++				X1i=X1{i};
++			else
++				X1i=X1;
++			end
++			if iscell(Y1),
++				Y1i=Y1{i};
++			else
++				Y1i=Y1;
++			end
++			if strcmpi(options.getfieldvalue('showinset','off'),'on')
++				line(X1i([1 2 2 1 1]),Y1i([1 1 2 2 1]),zeros(1,5),'Color','k','LineWidth',2);
++			end
+ 
+-		//Get current figure
+-		ax1=gca;
++			//Get current figure
++			ax1=gca;
+ 
+-		//plot inset
+-		axes('pos',PosInseti);
+-		copyobj(get(ax1,'children'),gca);
+-		patch('Faces',[1 2 3 4 1],'Vertices',[X1i([1 2 2 1])' Y1i([1 1 2 2])'],'FaceColor','None','EdgeColor','k','LineWidth',2);
++			//plot inset
++			axes('pos',PosInseti);
++			copyobj(get(ax1,'children'),gca);
++			patch('Faces',[1 2 3 4 1],'Vertices',[X1i([1 2 2 1])' Y1i([1 1 2 2])'],'FaceColor','None','EdgeColor','k','LineWidth',2);
+ 
+-		//apply options
+-		options=removefield(options,'text',0);
+-		options=removefield(options,'title',0);
+-		options=removefield(options,'xlabel',0);
+-		options=removefield(options,'ylabel',0);
+-		options=removefield(options,'inset',0);
+-		options=removefield(options,'offsetaxispos',0);
+-		options=removefield(options,'showregion',0);
+-		options=changefieldvalue(options,'colorbar',0);
+-		options=changefieldvalue(options,'latlon','off');
+-		options=changefieldvalue(options,'axis','equal off');
+-		options=changefieldvalue(options,'xlim',X1i);
+-		options=changefieldvalue(options,'ylim',Y1i);
+-		applyoptions(md,data,options);
++			//apply options
++			options=removefield(options,'text',0);
++			options=removefield(options,'title',0);
++			options=removefield(options,'xlabel',0);
++			options=removefield(options,'ylabel',0);
++			options=removefield(options,'inset',0);
++			options=removefield(options,'offsetaxispos',0);
++			options=removefield(options,'showregion',0);
++			options=changefieldvalue(options,'colorbar',0);
++			options=changefieldvalue(options,'latlon','off');
++			options=changefieldvalue(options,'axis','equal off');
++			options=changefieldvalue(options,'xlim',X1i);
++			options=changefieldvalue(options,'ylim',Y1i);
++			applyoptions(md,data,options);
+ 
+-		//back to main gca
+-		set(gcf,'CurrentAxes',maingca)
++			//back to main gca
++			set(gcf,'CurrentAxes',maingca)
++		end
+ 	end
+-end
++	*/ //}}}
+ }
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19781)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19782)
+@@ -221,4 +221,5 @@
+ 		}
+ 	}
+ 	//applyoptions(md,data2,options); 
++	applyoptions(md,data,options); 
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19782-19783.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19782-19783.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19782-19783.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19782)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19783)
+@@ -58,24 +58,24 @@
+         if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.ismasstransport==0):
+ 
+ 	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if BalancethicknessAnalysisEnum() in analyses:
+ 
+ 	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
+-	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.isthermal==0):
+ 
+ 	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1)
+-	    md = checkfield(md,'fieldname','basalforcings.geothermal_flux','NaN',1,'timeseries',1,'>=',0)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
+ 	return md
+     # }}}
+     def marshall(self,md,fid):    # {{{
+@@ -90,7 +90,7 @@
+ 	WriteData(fid,'enum',BasalforcingsEnum(),'data',MismipFloatingMeltRateEnum(),'format','Integer')
+ 	WriteData(fid,'data',floatingice_melting_rate,'format','DoubleMat','enum',BasalforcingsFloatingiceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 	WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','enum',BasalforcingsGroundediceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+-	WriteData(fid,'object',self,'fieldname','geothermal_flux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','geothermalflux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
+ 	WriteData(fid,'object',self,'fieldname','meltrate_factor','format','Double','enum',BasalforcingsMeltrateFactorEnum(),'scale',1./yts)
+ 	WriteData(fid,'object',self,'fieldname','threshold_thickness','format','Double','enum',BasalforcingsThresholdThicknessEnum())
+ 	WriteData(fid,'object',self,'fieldname','upperdepth_melt','format','Double','enum',BasalforcingsUpperdepthMeltEnum())
Index: /issm/oecreview/Archive/19101-20495/ISSM-19783-19784.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19783-19784.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19783-19784.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh	(revision 19784)
+@@ -0,0 +1,38 @@
++# One way to avoid firewall and host-name issues on El Capitan is
++# to use gforker, instead of default hydra, process manager.
++# Note that gforker will only work with a single-node configuration.
++# https://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-installguide.pdf
++
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src install mpich-3.0.4
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
++
++#Untar 
++tar -zxvf  mpich-3.0.4.tar.gz
++
++#Move mpich into src directory
++mv mpich-3.0.4/* src
++rm -rf mpich-3.0.4
++
++#Configure mpich
++cd src
++./configure \
++	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
++	--enable-shared \
++        --with-pm=gforker
++
++	#CC=llvm-gcc \
++
++#Compile mpich (this new version supports parallel make)
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install 
+
+Property changes on: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19784-19785.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19784-19785.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19784-19785.diff	(revision 20498)
@@ -0,0 +1,90 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19784)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19785)
+@@ -94,7 +94,7 @@
+ 	//setflowequation(md,'SSA','all');
+ 	//md=solve(md,StressbalanceSolutionEnum());
+ 
+-	plotmodel(md,'data',md.initialization.vel,'colorbar',1, 'data',md.initialization.vx,
++	plotmodel(md,'data',md.initialization.vel,'colorbar',1,'cbYTickLabel',1, 'data',md.initialization.vx,
+ 	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
+ 
+ 
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19784)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19785)
+@@ -142,14 +142,14 @@
+ 				var cwidth = options.getfieldvalue('colorbarwidth',options.getfieldvalue('canvassize',480)/20);
+ 				var cdivisions = cheight/4;
+ 				var color;
+-				var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'-colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter("#"+options.getfieldvalue('canvasid'));
+-				ccanvas.css({"vertical-align":"top","margin":"0px "+String(cwidth/4)+"px 0px "+String(cwidth/4)+"px"});
++				var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++				ccanvas.css({'vertical-align':'top','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
+ 				var ccontext = ccanvas[0].getContext('2d');
+ 				for (var i = 0; i < cdivisions; i++) {
+ 					var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
+ 					color = colorbar[(colorbar.length - 1) - cindex];
+ 					color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)];	
+-					ccontext.fillStyle = "rgba(" + color.toString() + ",1.0)";
++					ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)';
+ 					ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
+ 				}
+ 			}
+@@ -217,35 +217,28 @@
+ 				set(c,'Position',position);
+ 				set(gca,'Position',posaxes);
+ 			}
+-			if exist(options,'cbYTickLabel');
+-				tick_vals=options.getfieldvalue('cbYTickLabel');
+-				if ~isnumeric(tick_vals) & strcmp(tick_vals,'on')
+-					tick_vals=get(c,'YTick')';
+-					if exist(options,'log')
+-						logval= options.getfieldvalue('log');
+-						for i= 1:numel(tick_vals)
+-							tick_vals(i)= logval^(tick_vals(i));
+-						}
+-					elseif numel(tick_vals) == 3
+-						tick_vals=[tick_vals(1); mean(tick_vals(1:2)); tick_vals(2); ...
+-							mean(tick_vals(2:3)); tick_vals(3)];
+-						set(c,'YTick',tick_vals);
++			*/ //}}}
++			if (options.exist('cbYTickLabel')) {
++				var cwidth = options.getfieldvalue('colorbarwidth',options.getfieldvalue('canvassize',480)/20);
++				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>').insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
++				clabels.css({'width':'auto','height':String(options.getfieldvalue('canvassize',480)),'vertical-align':'top','list-style-type':'none','display':'inline-table','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
++				var tick_vals = options.getfieldvalue('cbYTickLabel');
++				var labels = [];
++				var cdivisions = 8;
++				var caxisdelta = caxis[1] - caxis[0];
++				var clabelitem;
++				if (options.exist('log')) {
++					//logvalue=options.getfieldvalue('log');
++					//set(c,'YTick',log(tick_vals)./log(logvalue));
++				} else {
++					for (var i = cdivisions; i >= 0; i--) {
++						var clabelitem = $('<li><div>'+(caxisdelta*i/cdivisions-caxis[0]).toFixed(2)+'</div></li>')
++						clabelitem.css({'display':'table-row'});
++						clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
++						clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
+ 					}
+-				else
+-					if exist(options,'log')
+-						logvalue=options.getfieldvalue('log');
+-						set(c,'YTick',log(tick_vals)./log(logvalue));
+-					else
+-						set(c,'YTick',tick_vals);
+-					}
+ 				}
+-				labels = cell(1,numel(tick_vals));
+-				for i = 1:numel(tick_vals)
+-					labels{i} = num2str(tick_vals(i));
+-				}
+-				set(c,'YTickLabel',labels);
+ 			}
+-			*/ //}}}
+ 		}
+ 	} else {
+ 		//do nothing
Index: /issm/oecreview/Archive/19101-20495/ISSM-19785-19786.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19785-19786.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19785-19786.diff	(revision 20498)
@@ -0,0 +1,79 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19785)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19786)
+@@ -94,7 +94,7 @@
+ 	//setflowequation(md,'SSA','all');
+ 	//md=solve(md,StressbalanceSolutionEnum());
+ 
+-	plotmodel(md,'data',md.initialization.vel,'colorbar',1,'cbYTickLabel',1, 'data',md.initialization.vx,
++	plotmodel(md,'data',md.initialization.vel,'colorbar','on', 'data',md.initialization.vx,
+ 	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
+ 
+ 
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19785)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19786)
+@@ -152,6 +152,31 @@
+ 					ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)';
+ 					ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
+ 				}
++				//Set colorbar lables
++				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>').insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
++				clabels.css({'width':'auto','height':String(options.getfieldvalue('canvassize',480)),'vertical-align':'top','list-style-type':'none','display':'inline-table','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
++				var labels = [];
++				var cdivisions = 8;
++				var caxisdelta = caxis[1] - caxis[0];
++				var clabelitem;
++
++				if (options.exist('log')) {
++					//logvalue=options.getfieldvalue('log');
++					//set(c,'YTick',log(tick_vals)./log(logvalue));
++					for (var i = cdivisions; i >= 0; i--) {
++						labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
++					}
++				} else {
++					for (var i = cdivisions; i >= 0; i--) {
++						labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
++					}
++				}
++				for (var i = cdivisions; i >= 0; i--) {
++					var clabelitem = $('<li><div>'+labels[i]+'</div></li>')
++					clabelitem.css({'display':'table-row'});
++					clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
++					clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
++				}
+ 			}
+ 			/* //{{{
+ 			set(c,'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'YColor',options.getfieldvalue('FontColor','k'));
+@@ -217,28 +242,9 @@
+ 				set(c,'Position',position);
+ 				set(gca,'Position',posaxes);
+ 			}
+-			*/ //}}}
+ 			if (options.exist('cbYTickLabel')) {
+-				var cwidth = options.getfieldvalue('colorbarwidth',options.getfieldvalue('canvassize',480)/20);
+-				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>').insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
+-				clabels.css({'width':'auto','height':String(options.getfieldvalue('canvassize',480)),'vertical-align':'top','list-style-type':'none','display':'inline-table','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
+-				var tick_vals = options.getfieldvalue('cbYTickLabel');
+-				var labels = [];
+-				var cdivisions = 8;
+-				var caxisdelta = caxis[1] - caxis[0];
+-				var clabelitem;
+-				if (options.exist('log')) {
+-					//logvalue=options.getfieldvalue('log');
+-					//set(c,'YTick',log(tick_vals)./log(logvalue));
+-				} else {
+-					for (var i = cdivisions; i >= 0; i--) {
+-						var clabelitem = $('<li><div>'+(caxisdelta*i/cdivisions-caxis[0]).toFixed(2)+'</div></li>')
+-						clabelitem.css({'display':'table-row'});
+-						clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
+-						clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
+-					}
+-				}
+ 			}
++			*/ //}}}
+ 		}
+ 	} else {
+ 		//do nothing
Index: /issm/oecreview/Archive/19101-20495/ISSM-19786-19787.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19786-19787.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19786-19787.diff	(revision 20498)
@@ -0,0 +1,1161 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19786)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19787)
+@@ -68,7 +68,10 @@
+ <script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+ <script type="text/javascript" src="../../src/m/enum/EnumDefinitions.js"></script>
+ <script type="text/javascript" src="../../src/m/solvers/issmgslsolver.js"></script>
++<script type="text/javascript" src="../../src/m/io/fileptr.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/solve.js"></script>
++<script type="text/javascript" src="../../src/m/solve/marshall.js"></script>
++<script type="text/javascript" src="../../src/m/solve/WriteData.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/EnumToString/EnumToString.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/StringToEnum/StringToEnum.js"></script>
+@@ -77,6 +80,7 @@
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
++<script type="text/javascript" src="../../src/c/main/issm.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
+ <script src="https://raw.githubusercontent.com/toji/gl-matrix/master/dist/gl-matrix-min.js"></script>
+@@ -90,12 +94,12 @@
+ 	triangle(md,square[0],100000); 
+ 	setmask(md,'all','');
+ 	parameterize(md);
+-	
+-	//setflowequation(md,'SSA','all');
+-	//md=solve(md,StressbalanceSolutionEnum());
++	setflowequation(md,'SSA','all');
++	md=solve(md,StressbalanceSolutionEnum());
+ 
+-	plotmodel(md,'data',md.initialization.vel,'colorbar','on', 'data',md.initialization.vx,
+-	'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
++	/*plotmodel(md,'data',md.initialization.vel,'colorbar','on','data',md.initialization.vx,
++	  'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
++	//var output=issm([5,1,1]);*/
+ 
+ 
+ </script> <!--{{{-->
+Index: ../trunk-jpl/src/c/main/issm.js
+===================================================================
+--- ../trunk-jpl/src/c/main/issm.js	(revision 0)
++++ ../trunk-jpl/src/c/main/issm.js	(revision 19787)
+@@ -0,0 +1,20 @@
++function issm(binaryin){
++/*issm 
++	   usage: var output = issm(input);
++	      where: input is a typed array buffer created by marshall and output 
++		  is a binary buffer to be read by loadresultsfromcluster.
++*/
++
++	//input
++	var dbinary=new Float64Array(binaryin); var nb=dbinary.length * dbinary.BYTES_PER_ELEMENT;
++	var dbinaryPtr= Module._malloc(nb); var binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
++	binHeap.set(new Uint8Array(dbinary.buffer)); var binary=binHeap.byteOffset;
++
++	//Declare TriMesh module: 
++	issm= Module.cwrap('main','number',['number','number']);
++	
++	//Call issm:
++	var output = issm(binary, 'null');
++	
++	return output;
++}
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19786)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19787)
+@@ -82,8 +82,9 @@
+ 					 ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp\
+ 					 ../IssmConfig/IssmConfig.cpp\
+ 					 ../EnumToString/EnumToString.cpp\
+-					 ../StringToEnum/StringToEnum.cpp
++					 ../StringToEnum/StringToEnum.cpp\
++					 ../../c/main/issm.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule','_main']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
+ #}}}
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 0)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 19787)
+@@ -0,0 +1,303 @@
++function WriteData(fid){
++//WRITEDATA - write model field into binary buffer 
++//
++//   Usage:
++//      WriteData(fid,varargin);
++
++	//process options
++	var args = Array.prototype.slice.call(arguments);
++	var options = new pairoptions(args.slice(1,args.length));
++
++	//Get data properties
++	if (options.exist('object')){
++		//This is a object field, construct enum and data
++		obj       = options.getfieldvalue('object');
++		fieldname = options.getfieldvalue('fieldname');
++		classname = options.getfieldvalue('class',obj.classname());
++		if (options.exist('enum')){
++			enumm = options.getfieldvalue('enum');
++		}
++		else{
++			enumm = BuildEnum(classname  + '_' + fieldname);
++		}
++		data  = obj[fieldname];
++	}
++	else{
++		//No processing required
++		data = options.getfieldvalue('data');
++		enumm = options.getfieldvalue('enum');
++	}
++
++	format  = options.getfieldvalue('format');
++	mattype = options.getfieldvalue('mattype',0);    //only required for matrices
++	timeserieslength = options.getfieldvalue('timeserieslength',-1);
++
++	//Scale data if necesarry
++	if (options.exist('scale')){
++		scale = options.getfieldvalue('scale');
++		if (data.length==timeserieslength){
++			if (IsArray(data[0])){
++				for(var i=0;i<data.length-1;i++){
++					for(var j=0;j<data[0].length;j++){
++						data[i][j]=scale*data[i][j];
++					}
++				}
++			}
++			else{
++				for(var i=0;i<data.length-1;i++){
++					data[i]=scale*data[i];
++				}
++			}
++		}
++		else{
++			ArrayScale(data,scale);
++		}
++	}
++
++	if(data.length == timeserieslength){
++		var yts=365.0*24.0*3600.0;
++		if (IsArray(data[0])){
++			for(var j=0;j<data[0].length;j++)data[timeserieslength-1][j]=data[timeserieslength-1][j]*yts;
++		}
++		else data[timeserieslength-1]=data[timeserieslength-1]*yts;
++	}
++
++	//Step 1: write the enum to identify this record uniquely
++	fid.fwrite(enumm,'int'); 
++
++	//Step 2: write the data itself.
++	if (format == 'Boolean'){// {{{
++		if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
++
++		//first write length of record
++		fid.fwrite(4+4,'int');  //1 bool (disguised as an int)+code
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//now write integer
++		fid.fwrite(data,'int');  //send an int, not easy to send a bool
++	} // }}}
++	else if (format == 'Integer'){ // {{{
++		if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
++
++		//first write length of record
++		fid.fwrite(4+4,'int');  //1 integer + code
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//now write integer
++		fid.fwrite(data,'int'); 
++	} // }}}
++	else if (format == 'Double'){ // {{{
++		if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
++
++		//first write length of record
++		fid.fwrite(8+4,'int');  //1 double+code
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//now write double
++		fid.fwrite(data,'double'); 
++	} // }}}
++	else if (format == 'String'){ // {{{
++		//first write length of record
++		fid.fwrite(data.length+4+4,'int');  //string + string size + code
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//now write string
++		fid.fwrite(data.length,'int'); 
++		fid.fwrite(data,'char'); 
++	} // }}}
++	else if (format == 'BooleanMat'){ // {{{
++
++		//Get size
++		var s=[data.length,1];
++		if(IsArray(data[0]))s[1]=data[0].length;
++
++		//if matrix = NaN, then do not write anything
++		if (s[0]==1 & s[1]==1 & isNan(data)){
++			s[0]=0; s[1]=0;
++		}
++		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++			s[0]=0; s[1]=0;
++		}
++
++		//first write length of record
++		fid.fwrite(4+4+8*s[0]*s[1]+4+4,'int');  //2 integers (32 bits) + the double matrix + code + matrix type
++
++		//write data code and matrix type: 
++		fid.fwrite(FormatToCode(format),'int'); 
++		fid.fwrite(mattype,'int');
++
++		//now write matrix
++		fid.fwrite(s[0],'int'); 
++		fid.fwrite(s[1],'int'); 
++		if (s[0]*s[1]) fid.fwrite(MatrixToList(data),'double'); //get to the "c" convention, hence the transpose
++	} // }}}
++	else if (format == 'IntMat'){ // {{{
++
++		//Get size
++		var s=[data.length,1];
++		if(IsArray(data[0]))s[1]=data[0].length;
++
++		//if matrix = NaN, then do not write anything
++		if (s[0]==1 & s[1]==1 & isNan(data)){
++			s[0]=0; s[1]=0;
++		}
++		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++			s[0]=0; s[1]=0;
++		}
++
++		//first write length of record
++		fid.fwrite(4+4+8*s[0]*s[1]+4+4,'int');  //2 integers (32 bits) + the double matrix + code + matrix type
++
++		//write data code and matrix type: 
++		fid.fwrite(FormatToCode(format),'int'); 
++		fid.fwrite(mattype,'int');
++
++		//now write matrix
++		fid.fwrite(s[0],'int'); 
++		fid.fwrite(s[1],'int'); 
++		if (s[0]*s[1]) fid.fwrite(MatrixToList(data),'double'); //get to the "c" convention, hence the transpose
++
++	} // }}}
++	else if (format == 'DoubleMat'){ // {{{
++
++		//Get size
++		var s=[data.length,1];
++		if(IsArray(data[0]))s[1]=data[0].length;
++
++		//if matrix = NaN, then do not write anything
++		if (s[0]==1 & s[1]==1 & isNan(data)){
++			s[0]=0; s[1]=0;
++		}
++		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++			s[0]=0; s[1]=0;
++		}
++
++		//first write length of record
++		var recordlength=4+4+8*s[0]*s[1]+4+4; //2 integers (32 bits) + the double matrix + code + matrix type
++		if (recordlength>Math.pow(2,31)) throw Error(sprintf("field '%s' cannot be marshalled because it is larger than 2^31 bytes!",EnumToString(enumm)));
++		fid.fwrite(recordlength,'int');
++
++		//write data code and matrix type: 
++		fid.fwrite(FormatToCode(format),'int'); 
++		fid.fwrite(mattype,'int');
++
++		//now write matrix
++		fid.fwrite(s[0],'int'); 
++		fid.fwrite(s[1],'int'); 
++		if (s[0]*s[1]) fid.fwrite(MatrixToList(data),'double'); //get to the "c" convention, hence the transpose
++	} // }}}
++	else if (format == 'MatArray'){ // {{{
++
++		numrecords=data.length;
++
++		//first get length of record
++		recordlength=4+4; //number of records + code
++		for (var i=0;i<numrecords;i++){
++			matrix=data[i];
++			var s=[matrix.length,1];
++			if(IsArray(matrix[0]))s[1]=matrix[0].length;
++
++			recordlength=recordlength+4*2+ //row and col of matrix
++				s[0]*s[1]*8; //matrix of doubles
++		}
++
++		//write length of record
++		fid.fwrite(recordlength,'int'); 
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//write data, first number of records
++		fid.fwrite(numrecords,'int'); 
++
++		//write each matrix: 
++		for (var i=0;i<numrecords;i++){
++			matrix=data[i];
++			var s=[matrix.length,1];
++			if(IsArray(matrix[0]))s[1]=matrix[0].length;
++
++			fid.fwrite(s[0],'int'); 
++			fid.fwrite(s[1],'int'); 
++			fid.fwrite(MatrixToList(matrix),'double');
++		}
++	} // }}}
++	else if (format == 'StringArray'){ // {{{
++
++		//first get length of string array: 
++		num=data.length;
++		if ((typeof data[0] == 'numeric') & num==1 & isNaN(data[0])){
++			num = 0;
++		}
++
++		//now get length of record: 
++		recordlength=4+4; //for length of array + code
++		for (var i=0;i<num;i++){
++			string=data[i];
++			recordlength=recordlength+4+string.length; //for each string
++		}
++
++		//write length of record
++		fid.fwrite(recordlength,'int'); 
++
++		//write data code: 
++		fid.fwrite(FormatToCode(format),'int'); 
++
++		//now write length of string array
++		fid.fwrite(num,'int'); 
++
++		//now write the strings
++		for (var i=0;i<num;i++){
++			string=data[i];
++			fid.fwrite(string.length,'int'); 
++			fid.fwrite(string,'char'); 
++		}
++	} // }}}
++	else { 
++		throw Error(sprintf("WriteData error message: data type: %s not supported yet! ('%s')",
++					format.toString(),EnumToString(enumm)));
++	}
++}
++
++function BuildEnum(string){ // {{{
++	//BUILDENUM - build enum out of string
++	//
++	//   Usage:
++	//      enumm=BuildEnum(string)
++
++	while( string.indexOf('_') !=-1){
++		index=string.indexOf('_');
++		string=string.slice(0,index)+string[index+1].toUpperCase() + string.slice(index+2);
++	}
++
++	//take first letter of string and make it uppercase: 
++	string = string.charAt(0).toUpperCase() + this.slice(1);
++
++	//Get Enum
++	enumm=StringToEnum(string); 
++
++	return enumm;
++} // }}}
++function FormatToCode(format){ // {{{
++	//This routine takes the format string, and hardcodes it into an integer, which 
++	//is passed along the record, in order to identify the nature of the dataset being 
++	//sent.
++	if  (format == 'Boolean') code=1;
++	else if (format == 'Integer') code=2;
++	else if (format == 'Double') code=3;
++	else if (format == 'String') code=4;
++	else if (format == 'BooleanMat') code=5;
++	else if (format == 'IntMat') code=6;
++	else if (format == 'DoubleMat') code=7;
++	else if (format == 'MatArray') code=8;
++	else if (format == 'StringArray') code=9;
++	else throw Error('FormatToCode error message: data type not supported yet!');
++	return code;
++}// }}}
+Index: ../trunk-jpl/src/m/solve/marshall.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/marshall.js	(revision 0)
++++ ../trunk-jpl/src/m/solve/marshall.js	(revision 19787)
+@@ -0,0 +1,40 @@
++function marshall(md){
++//MARSHALL - outputs a typed array buffer to be send to the issm module.
++//
++//   The routine creates a compatible binary stream from @model md
++//   This binary stream will be used for single cpu runs using the issm module.
++//
++//   Usage:
++//      fid=marshall(md)
++
++	if (md.verbose.solution){
++		console.log('marshalling file ' + md.miscellaneous.name + '.bin');
++	}
++
++	//open file for binary writing
++	fid=new fileptr();
++
++	//First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
++	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',true,'format','Boolean');
++
++	//Go through all model fields: check that it is a class and call checkconsistency
++	for (field in md){
++
++		//Some properties do not need to be marshalled
++		if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'flaim' | field == 'private') continue;
++		
++		//Check that current field is a class
++		if(typeof md[field] == 'function'){
++			continue;
++		}
++		console.log(field);
++
++		//Marshall current object
++		md[field].marshall(md,fid);
++	}
++
++	//Last, write MaximumNumberOfEnum+1 to make sure that the binary file is not corrupt
++	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum()+1,'data',true,'format','Boolean');
++
++	return fid;
++}
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 19786)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 19787)
+@@ -23,7 +23,6 @@
+ 		if(typeof md[field] == 'function'){
+ 			continue;
+ 		}
+-		console.log(field);
+ 
+ 		//Check consistency of the class
+ 		md[field].checkconsistency(md,solution,analyses);
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19787)
+@@ -14,6 +14,15 @@
+ 
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			checkfield(md,'fieldname','outputdefinition.definitions','cell',1);
++
++			for (var i=0;i<this.definitions.length;i++){
++				this.definitions[i].checkconsistency(md,solution,analyses);
++			}
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.definitions                 = {};
+Index: ../trunk-jpl/src/m/classes/flaim.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flaim.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/flaim.js	(revision 19787)
+@@ -36,6 +36,19 @@
+ 		fielddisplay(this,'quality'            ,'quality of kml solution');
+ 
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses) { // {{{
++
++		//Early return
++		if (solution!=FlaimSolutionEnum()) return;
++
++		checkfield(md,'fieldname','flaim.tracks','file',1);
++		if (isNaN(md.flaim.criterion) | md.flaim.criterion.length==0){
++			checkfield(md,'fieldname','flaim.targets','file',1);
++		}
++		else{
++			checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices, md.mesh.numberofelements]);
++		}
++	} //}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19787)
+@@ -72,6 +72,66 @@
+ 
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			//Early return
++			if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),0))return;
++
++			checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1);
++			checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1);
++			checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1);
++			checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1);
++			checkfield(md,'fieldname','stressbalance.reltol','size',[1, 1]);
++			checkfield(md,'fieldname','stressbalance.abstol','size',[1, 1]);
++			checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0, 1, 2]);
++			checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1, 1],'NaN',1);
++			checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1, 1],'NaN',1);
++			checkfield(md,'fieldname','stressbalance.maxiter','size',[1, 1],'>=',1);
++			checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices, 6]);
++			checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices, 3]);
++			checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
++
++			//singular solution
++			if(!ArrayAnyNaN(md.stressbalance.spcvx) | !ArrayAnyNaN(md.stressbalance.spcvy) |  !ArrayAnyAboveStrict(md.mask.groundedice_levelset,0)){
++				md = checkmessage(md,'model is not well posed (singular). You need at least one node with fixed velocity!');
++				console.log(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n'));
++			}
++			//CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
++			for(var i=0;i<md.stressbalance.referential.length;i++){
++				var sum=0;
++				for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
++				if (sum!=0 & sum!=6){
++					md = checkmessage(md,'Each line of stressbalance.referential should contain either only NaN values or no NaN values');
++					break;
++				}
++			}
++			//CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
++			for(var i=0;i<md.stressbalance.referential.length;i++){
++				var sum=0;
++				for(j=0;j<md.stressbalance.referential[0].length;j++)sum+=md.stressbalance.referential[i][j];
++				if(sum==0){
++					var dot=0;
++					for(j=0;j<3;j++)dot+=md.stressbalance.referential[i][j]*md.stressbalance.referential[i][j+3];
++					dot=Math.abs(dot);
++					if(dot>Math.pow(10,-18)){
++						md.checkmessage('Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal');
++						break;
++					}
++				}
++			}
++			//CHECK THAT NO rotation specified for FS Grounded ice at base
++			if (md.mesh.domaintype() == '3D' & md.flowequation.isFS){
++				for(var i=0;i<md.mask.groundedice_levelset.length;i++){
++					if(md.mask.groundedice_levelset[i]>0 & md.mesh.vertexonbase[i]){
++						if(!ArrayIsNan(md.stressbalance.referential[i])){
++							md.checkmessage('no referential should be specified for basal vertices of grounded ice');
++							break;
++						}
++					}
++				}
++				checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.spcvx                  = NaN;
+Index: ../trunk-jpl/src/m/classes/steadystate.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/steadystate.js	(revision 19787)
+@@ -27,6 +27,20 @@
+ 		fielddisplay(this,'requested_outputs','additional requested outputs');
+ 
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses) {// {{{
++
++		//Early return
++		if (solution!=SteadystateSolutionEnum()) return;
++
++		if (md.timestepping.time_step!=0){
++			md.checkmessage('for a steadystate computation, timestepping.time_step must be zero.');
++		}
++		checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1);
++
++		if (isNaN(md.stressbalance.reltol)){
++			md.checkmessage('for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!');
++		}
++	} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 19787)
+@@ -89,6 +89,13 @@
+ 		*/
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			///Early return
++			if (!md.qmu.isdakota) return;
++			else md.checkmessage('qmu runs not supported yet!');
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/miscellaneous.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19787)
+@@ -16,6 +16,10 @@
+ 		fielddisplay(this,'dummy','empty field to store some data');
+ 
+ 	}// }}}
++		this.checkconsistency= function(md,solution,analyses) {// {{{
++
++			checkfield(md,'fieldname','miscellaneous.name','empty',1);
++		}// }}}
+ 	//properties 
+ 	// {{{
+ 	this.notes = '';
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19787)
+@@ -48,6 +48,38 @@
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses){ // {{{
++
++		//Early return
++		if(!ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1) & !ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1)  | (solution == TransientSolutionEnum() & md.transient.isthermal==0)) return;
++
++		checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]);
++		checkfield(md,'fieldname','thermal.spctemperature','timeseries',1);
++		if(ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy & md.mesh.dimension() == 3){
++			
++			for(var i=0;i<md.mesh.numberofvertices;i++){
++				for(var j=0;j<md.thermal.spctemperature[0].length;j++){
++					if (!isNaN(md.thermal.spctemperature[i][j])){
++						var rep=md.geometry.surface[i]-md.mesh.z[i];
++						if (md.thermal.spctemperature[i][j] <= md.materials.melting-md.materials.beta*md.materials.rho_ice*md.constants.g*rep+Math.pow(10,-5)){
++
++							md.checkmessage('spctemperature should be less or equal than the adjusted melting point');
++							break;
++						}
++					}
++				}
++			}
++			checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[0, 1]);
++			if(md.thermal.isenthalpy){
++				if (isNan(md.stressbalance.reltol)){
++					md.checkmessage('for a steadystate computation, thermal.reltol (relative convergence criterion) must be defined!');
++				}
++			}
++			checkfield(md,'fieldname','thermal.reltol','>',0.,'message','reltol must be larger than zero');
++		}
++		checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1);
++	} // }}} 
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19787)
+@@ -19,6 +19,27 @@
+ 		fielddisplay(this,'cross_section_shape','1: square-edged (default). 2: elliptical.  See iedge in GiaDeflectionCore');
+ 
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses) { // {{{
++
++		if(!ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1))return;
++
++		checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0);
++		checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0);
++		checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]);
++
++		//be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
++		//are not provided into the future.
++		if (solution==TransientSolutionEnum() & md.transient.ismasstransport & md.transient.isgia){
++			//figure out if thickness is a transient forcing: 
++			if (md.geometry.thickness.length == (md.mesh.numberofvertices+1)){
++				//recover the furthest time "in time": 
++				t=md.geometry.thickness[0].length;
++				if(md.geometry.thickness[md.geometry.thickness.length-1][t-1]!=md.timestepping.start_time){
++					md.checkmessage('if ismasstransport is on, transient thickness forcing for the gia model should not be provided in the future. Synchronize your start_time to correspond to the most recent transient thickness forcing timestep');
++				}
++			}
++		}
++	} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/settings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/settings.js	(revision 19787)
+@@ -32,6 +32,15 @@
+ 		console.log(sprintf('   settings class echo:'));
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { // {{{
++
++			checkfield(md,'fieldname','settings.results_on_nodes','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1);
++			checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0);
++			checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.results_on_nodes    = 0;
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19787)
+@@ -19,6 +19,15 @@
+ 		fielddisplay(this,"stabilization','0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses){ // {{{
++			//Early return
++			if (solution!=BalancethicknessSolutionEnum())return;
++
++			checkfield(md,'fieldname','balancethickness.spcthickness');
++			checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices ,1],'NaN',1);
++			checkfield(md,'fieldname','balancethickness.stabilization','size',[1, 1],'values',[0, 1, 2 ,3]);
++			//checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices ,1],'NaN',1,'>=',0);
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcthickness      = NaN;
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19787)
+@@ -20,6 +20,15 @@
+ 		fielddisplay(this,'meltingrate','melting rate at given location [m/a]');
+ 
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses) { // {{{
++		//Early return
++		if (solution!=TransientSolutionEnum() | md.transient.iscalving==0) return;
++
++		checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
++		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
++		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
++	} //}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/rifts.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/rifts.js	(revision 19787)
+@@ -12,6 +12,35 @@
+ 		fielddisplay(this,'riftstruct','structure containing all rift information (vertices coordinates, segments, type of melange, ...)');
+ 		fielddisplay(this,'riftproperties','');
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++			if (isNaN(this.riftstruct) | this.riftstruct.length==0){
++				numrifts=0;
++			}
++			else{
++				numrifts=this.riftstruct.length;
++			}
++			if (numrifts){
++				if (!(md.mesh.domaintype() == '2Dhorizontal')){
++					md.checkmessage('models with rifts are only supported in 2d for now!');
++				}
++				if (!IsArray(this.riftstruct)){
++					md.checkmessage('rifts.riftstruct should be a structure!');
++				}
++				for(var i=0;i<md.mesh.segmentmarkers.length;i++){
++					if (md.mesh.segmentmarkers[i]>=2){
++						//We have segments with rift markers, but no rift structure!
++						md.checkmessage(['model should be processed for rifts (run meshprocessrifts)!']);
++						break;
++					}
++				}
++				for (var i=0;i<numrifts;i++){
++					md = checkfield(md,'fieldname',sprintf('rifts.riftstruct[%i].fill',i),'values',[WaterEnum(), AirEnum(), IceEnum(), MelangeEnum()]);
++				}
++			}
++			else{
++				if (!isNaN(this.riftstruct)) md.checkmessage('riftstruct should be NaN since numrifts is 0!');
++			}
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	this.riftstruct     = NaN;
+Index: ../trunk-jpl/src/m/classes/verbose.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/verbose.js	(revision 19787)
+@@ -39,6 +39,9 @@
+ 		console.log(sprintf('   %15s : %s','smb',mat2str(verbose.smb)));
+ 		//ENDDISP
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses){ // {{{
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	//BEGINFIELDS
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19787)
+@@ -37,6 +37,19 @@
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 
+ 	}// }}}
++		this.checkconsistency = function (md,solution,analyses){  // {{{
++
++			//Early return
++			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1) | (solution==TransientSolutionEnum() & md.transient.ismasstransport==0)) return; 
++
++			checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1);
++			checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 ,1]);
++			checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute', 'Incremental']);
++			checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4]);
++			checkfield(md,'fieldname','masstransport.min_thickness','>',0);
++			checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1);
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19787)
+@@ -22,6 +22,15 @@
+ 
+ 		return "hydrologyshreve";
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			//Early return
++			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)) return;
++
++			checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1);
++			checkfield(md,'fieldname','hydrology.stabilization','>=',0);
++
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.spcwatercolumn = NaN;
+Index: ../trunk-jpl/src/m/classes/toolkits.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/toolkits.js	(revision 19787)
+@@ -29,7 +29,7 @@
+ 			}
+ 		}
+ 	}// }}}
+-	this.disp= function(){// {{{
++	this.disp = function(){// {{{
+ 		console.log(sprintf('List of toolkits options per analysis:\n'));
+ 		for(var prop in this){
+ 			if(typeof this[prop] == 'object'){
+@@ -37,6 +37,15 @@
+ 			}
+ 		}
+ 	}// }}}
++	this.checkconsistency = function (md,solution,analyses) { // {{{
++		for(var prop in this){
++			if(typeof this[prop] == 'object'){
++				if (this[prop] == ''){
++					md.checkmessage(sprintf("md.toolkits.%s is empty",prop));
++				}
++			}
++		}
++	} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.DefaultAnalysis           = [];
+Index: ../trunk-jpl/src/m/classes/private.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/private.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/private.js	(revision 19787)
+@@ -15,6 +15,9 @@
+ 		fielddisplay(this,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain');
+ 		fielddisplay(this,'solution','type of solution launched');
+ 	}// }}}
++	this.checkconsistency = function(md,solution,analyses){ // {{{
++
++	}// % }}}
+ 	//properties 
+ 	// {{{
+ 	this.isconsistent = true;
+Index: ../trunk-jpl/src/m/classes/inversion.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/inversion.js	(revision 19787)
+@@ -74,6 +74,44 @@
+ 		console.log('   503: ThicknessAbsGradient');
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			//Early return
++			if (!this.iscontrol) return;
++
++			num_controls=md.inversion.control_parameters.length;
++			num_costfunc=md.inversion.control_parameters[0].length;
++
++			checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1]);
++			checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 ,1]);
++			checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols());
++			checkfield(md,'fieldname','inversion.nsteps','numel',1,'>=',0);
++			checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps, 1],'>=',0);
++			checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps, 1]);
++			checkfield(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values',supportedcostfunctions());
++			checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0);
++			checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps, num_controls]);
++			checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices , num_controls]);
++			checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices ,num_controls]);
++
++			//Only SSA, HO and FS are supported right now
++			if (solution==StressbalanceSolutionEnum()){
++				if (!(md.flowequation.isSSA | md.flowequation.isHO | md.flowequation.isFS | md.flowequation.isL1L2)){
++					md.checkmessage('inversion can only be performed for SSA, HO or FS ice flow models');
++				}
++			}
++
++			if (solution==BalancethicknessSolutionEnum()){
++				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
++			}
++			else if (solution==BalancethicknessSoftSolutionEnum()){
++				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1);
++			}
++			else{
++				checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
++				checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 19787)
+@@ -35,6 +35,14 @@
+ 		console.log(sprintf('    verbose: %s',this.verbose));
+ 		console.log(sprintf('    shell: %s',this.shell));
+ 	}// }}}
++		this.checkconsistency = function (md,solution,analyses) { //{{{
++			if (cluster.np<1){
++				md.checkmessage('number of processors should be at least 1');
++			}
++			if (isNaN(cluster.np)){
++				md.checkmessage('number of processors should not be NaN!');
++			}
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	this.name='';
+Index: ../trunk-jpl/src/m/classes/groundingline.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/groundingline.js	(revision 19787)
+@@ -16,6 +16,26 @@
+ 
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) {// {{{
++
++			checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'SubelementMigration', 'SubelementMigration2', 'Contact', 'None', 'GroundingOnly']);
++
++			if (this.migration !='None'){
++				if (isNaN(md.geometry.bed)){
++					md.checkmessage('requesting grounding line migration, but bathymetry is absent!');
++				}
++				for (var i=0;i<md.mesh.numberofvertices;i++){
++					if(md.mask.groundedice_levelset[i]>0){
++						md.checkmessage('base not equal to bed on grounded ice!');
++						break;
++					}
++					if(md.geometry.bed[i] - md.geometry.base[i] > Math.pow(10,-9)){
++						md = checkmessage(md,'bed superior to base on floating ice!');
++						break;
++					}
++				}
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.migration    = '';
+Index: ../trunk-jpl/src/m/classes/transient.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/transient.js	(revision 19787)
+@@ -41,6 +41,23 @@
+ 
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { // {{{
++
++			//Early return
++			if (solution!=TransientSolutionEnum()) return;
++
++			checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/autodiff.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.js	(revision 19786)
++++ ../trunk-jpl/src/m/classes/autodiff.js	(revision 19787)
+@@ -30,6 +30,32 @@
+ 		fielddisplay(this,'gcTriggerMaxSize','free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize');
+ 
+ 	}// }}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
++
++			//Early return 
++			if (!this.isautodiff) return; 
++
++			//Driver value:
++			checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all']);
++			
++			//buffer values: 
++			checkfield(md,'fieldname','autodiff.obufsize','>=',16);
++			checkfield(md,'fieldname','autodiff.lbufsize','>=',16);
++			checkfield(md,'fieldname','autodiff.cbufsize','>=',16);
++			checkfield(md,'fieldname','autodiff.tbufsize','>=',16);
++			checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',0);
++			checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536);
++
++			//go through our dependents and independents and check consistency: 
++			for (var i=0;i<this.dependents.length;i++){
++				dep=this.dependents[i];
++				dep.checkconsistency(md,solution,analyses);
++			}
++			for (var i=0;i<this.independents.length;i++){
++				indep=this.independents[i];
++				indep.checkconsistency(md,i,solution,analyses,this.driver);
++			}
++		} // }}}
+ 	//properties 
+ 	// {{{
+ 	this.isautodiff   = false;
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 0)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 19787)
+@@ -0,0 +1,80 @@
++//FILEPTR class definition
++////
++//// Usage: 
++//// var fid = new fileptr(); 
++//
++//
++
++function fileptr() {
++	//properties
++	this.increment=NaN;
++	this.buffer =NaN;
++	this.view =NaN;
++	this.ptr =NaN;
++	this.options = new pairoptions(Array.prototype.slice.call(arguments));
++	
++	//methods
++		this.disp = function () { //{{{
++			console.log(sprintf("   fileptr:")); 
++
++			console.log(sprintf("       buffer: ArrayBuffer{ byteLength: %i }\n",this.buffer.byteLength));
++			console.log(sprintf("       ptr: %i\n",this.ptr));
++			console.log(sprintf("       increment: %i\n",this.increment));
++
++		} //}}}
++		this.setdefaultparameters = function (options) { //{{{
++
++			this.increment=options.getfieldvalue('increment',8000); //8000 bytes,  1000 doubles.
++			this.buffer=new ArrayBuffer(this.increment);
++			this.ptr=0;
++			this.view=new DataView(this.buffer);
++
++		} //}}}
++		this.fwrite = function (value,format) { //{{{
++
++			if(this.ptr==this.buffer.byteLength){
++				//need to resize the buffer: 
++				var  newbuffer = new ArrayBuffer(this.buffer.byteLength+this.increment);
++				newbuffer.set(this.buffer);
++				this.buffer=newbuffer;
++			}
++			
++			if(format == 'int'){
++				this.view.setUint32(this.ptr,value,true); this.ptr+=4;
++			}
++			else if(format == 'char'){
++				for(var i=0;i<value.length;i++){
++					this.view.setUint8(this.ptr,value.charCodeAt(i),true); 
++					this.ptr+=1;
++				}
++			}
++			else if(format == 'double'){
++				if (!IsArray(value)){
++					this.view.setFloat64(this.ptr,value,true);
++					this.ptr+=8;
++				}
++				else{
++					if (!IsArray(value[0])){
++						for(var i=0;i<value.length;i++){
++							this.view.setFloat64(this.ptr,value[i],true);
++							this.ptr+=8;
++						}
++					}
++					else{
++						for(var i=0;i<value.length;i++){
++							for(var j=0;j<value[0].length;j++){
++								this.view.setFloat64(this.ptr,value[i][j],true);
++								this.ptr+=8;
++							}
++						}
++					}
++				}
++			}
++			else throw Error('fileptr.fwrite error message: wrong type of format');
++		} //}}}
++		this.rawbuffer = function () { //{{{
++			return this.buffer;
++		} //}}}
++	//set defaults
++	this.setdefaultparameters(this.options);
++}
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19786)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19787)
+@@ -141,6 +141,11 @@
+ 	for (i=0;i<array.length;i++)sqrtarray[i]=Math.sqrt(array[i]);
+ 	return sqrtarray;
+ } //}}}
++function ArrayScale(array,alpha) { //{{{
++
++	for (i=0;i<array.length;i++)array[i]=array[i]*alpha;
++
++} //}}}
+ function ArrayMag(array1,array2) { //{{{
+ 
+ 	var arraymag=NewArrayFill(array1.length,0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19787-19788.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19787-19788.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19787-19788.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 19787)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 19788)
+@@ -21,9 +21,9 @@
+ field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea'\
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea']
+-field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
+-		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12]
++field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
++		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19788-19789.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19788-19789.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19788-19789.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 19788)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 19789)
+@@ -18,8 +18,8 @@
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea'\
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea',\
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1'\
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea']
+ field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
+ 		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19789-19790.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19789-19790.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19789-19790.diff	(revision 20498)
@@ -0,0 +1,249 @@
+Index: ../trunk-jpl/externalpackages/javascript/src/gl-matrix-min.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/gl-matrix-min.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/gl-matrix-min.js	(revision 19790)
+@@ -0,0 +1,29 @@
++/**
++ * @fileoverview gl-matrix - High performance matrix and vector operations
++ * @author Brandon Jones
++ * @author Colin MacKenzie IV
++ * @version 2.3.2
++ */
++
++/* Copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++THE SOFTWARE. */
++
++!function(t,a){if("object"==typeof exports&&"object"==typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define(a);else{var n=a();for(var r in n)("object"==typeof exports?exports:t)[r]=n[r]}}(this,function(){return function(t){function a(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,a),o.loaded=!0,o.exports}var n={};return a.m=t,a.c=n,a.p="",a(0)}([function(t,a,n){a.glMatrix=n(1),a.mat2=n(2),a.mat2d=n(3),a.mat3=n(4),a.mat4=n(5),a.quat=n(6),a.vec2=n(9),a.vec3=n(7),a.vec4=n(8)},function(t,a){var n={};n.EPSILON=1e-6,n.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,n.RANDOM=Math.random,n.ENABLE_SIMD=!1,n.SIMD_AVAILABLE=n.ARRAY_TYPE===Float32Array&&"SIMD"in this,n.USE_SIMD=n.ENABLE_SIMD&&n.SIMD_AVAILABLE,n.setMatrixArrayType=function(t){n.ARRAY_TYPE=t};var r=Math.PI/180;n.toRadian=function(t){return t*r},t.exports=n},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(4);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},o.clone=function(t){var a=new r.ARRAY_TYPE(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},o.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},o.transpose=function(t,a){if(t===a){var n=a[1];t[1]=a[2],t[2]=n}else t[0]=a[0],t[1]=a[2],t[2]=a[1],t[3]=a[3];return t},o.invert=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=n*l-o*r;return u?(u=1/u,t[0]=l*u,t[1]=-r*u,t[2]=-o*u,t[3]=n*u,t):null},o.adjoint=function(t,a){var n=a[0];return t[0]=a[3],t[1]=-a[1],t[2]=-a[2],t[3]=n,t},o.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},o.multiply=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=n[0],M=n[1],i=n[2],s=n[3];return t[0]=r*e+l*M,t[1]=o*e+u*M,t[2]=r*i+l*s,t[3]=o*i+u*s,t},o.mul=o.multiply,o.rotate=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=Math.sin(n),M=Math.cos(n);return t[0]=r*M+l*e,t[1]=o*M+u*e,t[2]=r*-e+l*M,t[3]=o*-e+u*M,t},o.scale=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=n[0],M=n[1];return t[0]=r*e,t[1]=o*e,t[2]=l*M,t[3]=u*M,t},o.fromRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t},o.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t},o.str=function(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},o.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2))},o.LDU=function(t,a,n,r){return t[2]=r[2]/r[0],n[0]=r[0],n[1]=r[1],n[3]=r[3]-t[2]*n[1],[t,a,n]},t.exports=o},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(6);return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},o.clone=function(t){var a=new r.ARRAY_TYPE(6);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t},o.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},o.invert=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=n*l-r*o;return M?(M=1/M,t[0]=l*M,t[1]=-r*M,t[2]=-o*M,t[3]=n*M,t[4]=(o*e-l*u)*M,t[5]=(r*u-n*e)*M,t):null},o.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},o.multiply=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=n[0],s=n[1],c=n[2],D=n[3],S=n[4],I=n[5];return t[0]=r*i+l*s,t[1]=o*i+u*s,t[2]=r*c+l*D,t[3]=o*c+u*D,t[4]=r*S+l*I+e,t[5]=o*S+u*I+M,t},o.mul=o.multiply,o.rotate=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=Math.sin(n),s=Math.cos(n);return t[0]=r*s+l*i,t[1]=o*s+u*i,t[2]=r*-i+l*s,t[3]=o*-i+u*s,t[4]=e,t[5]=M,t},o.scale=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=n[0],s=n[1];return t[0]=r*i,t[1]=o*i,t[2]=l*s,t[3]=u*s,t[4]=e,t[5]=M,t},o.translate=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=n[0],s=n[1];return t[0]=r,t[1]=o,t[2]=l,t[3]=u,t[4]=r*i+l*s+e,t[5]=o*i+u*s+M,t},o.fromRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t[4]=0,t[5]=0,t},o.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=a[1],t[4]=0,t[5]=0,t},o.fromTranslation=function(t,a){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=a[0],t[5]=a[1],t},o.str=function(t){return"mat2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"},o.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+1)},t.exports=o},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},o.fromMat4=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[4],t[4]=a[5],t[5]=a[6],t[6]=a[8],t[7]=a[9],t[8]=a[10],t},o.clone=function(t){var a=new r.ARRAY_TYPE(9);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a[6]=t[6],a[7]=t[7],a[8]=t[8],a},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t},o.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},o.transpose=function(t,a){if(t===a){var n=a[1],r=a[2],o=a[5];t[1]=a[3],t[2]=a[6],t[3]=n,t[5]=a[7],t[6]=r,t[7]=o}else t[0]=a[0],t[1]=a[3],t[2]=a[6],t[3]=a[1],t[4]=a[4],t[5]=a[7],t[6]=a[2],t[7]=a[5],t[8]=a[8];return t},o.invert=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=a[6],i=a[7],s=a[8],c=s*u-e*i,D=-s*l+e*M,S=i*l-u*M,I=n*c+r*D+o*S;return I?(I=1/I,t[0]=c*I,t[1]=(-s*r+o*i)*I,t[2]=(e*r-o*u)*I,t[3]=D*I,t[4]=(s*n-o*M)*I,t[5]=(-e*n+o*l)*I,t[6]=S*I,t[7]=(-i*n+r*M)*I,t[8]=(u*n-r*l)*I,t):null},o.adjoint=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=a[6],i=a[7],s=a[8];return t[0]=u*s-e*i,t[1]=o*i-r*s,t[2]=r*e-o*u,t[3]=e*M-l*s,t[4]=n*s-o*M,t[5]=o*l-n*e,t[6]=l*i-u*M,t[7]=r*M-n*i,t[8]=n*u-r*l,t},o.determinant=function(t){var a=t[0],n=t[1],r=t[2],o=t[3],l=t[4],u=t[5],e=t[6],M=t[7],i=t[8];return a*(i*l-u*M)+n*(-i*o+u*e)+r*(M*o-l*e)},o.multiply=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=a[6],s=a[7],c=a[8],D=n[0],S=n[1],I=n[2],x=n[3],f=n[4],F=n[5],m=n[6],h=n[7],d=n[8];return t[0]=D*r+S*u+I*i,t[1]=D*o+S*e+I*s,t[2]=D*l+S*M+I*c,t[3]=x*r+f*u+F*i,t[4]=x*o+f*e+F*s,t[5]=x*l+f*M+F*c,t[6]=m*r+h*u+d*i,t[7]=m*o+h*e+d*s,t[8]=m*l+h*M+d*c,t},o.mul=o.multiply,o.translate=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=a[6],s=a[7],c=a[8],D=n[0],S=n[1];return t[0]=r,t[1]=o,t[2]=l,t[3]=u,t[4]=e,t[5]=M,t[6]=D*r+S*u+i,t[7]=D*o+S*e+s,t[8]=D*l+S*M+c,t},o.rotate=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=a[6],s=a[7],c=a[8],D=Math.sin(n),S=Math.cos(n);return t[0]=S*r+D*u,t[1]=S*o+D*e,t[2]=S*l+D*M,t[3]=S*u-D*r,t[4]=S*e-D*o,t[5]=S*M-D*l,t[6]=i,t[7]=s,t[8]=c,t},o.scale=function(t,a,n){var r=n[0],o=n[1];return t[0]=r*a[0],t[1]=r*a[1],t[2]=r*a[2],t[3]=o*a[3],t[4]=o*a[4],t[5]=o*a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t},o.fromTranslation=function(t,a){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=a[0],t[7]=a[1],t[8]=1,t},o.fromRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=0,t[3]=-n,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},o.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=0,t[4]=a[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},o.fromMat2d=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=0,t[3]=a[2],t[4]=a[3],t[5]=0,t[6]=a[4],t[7]=a[5],t[8]=1,t},o.fromQuat=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=n+n,e=r+r,M=o+o,i=n*u,s=r*u,c=r*e,D=o*u,S=o*e,I=o*M,x=l*u,f=l*e,F=l*M;return t[0]=1-c-I,t[3]=s-F,t[6]=D+f,t[1]=s+F,t[4]=1-i-I,t[7]=S-x,t[2]=D-f,t[5]=S+x,t[8]=1-i-c,t},o.normalFromMat4=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=a[6],i=a[7],s=a[8],c=a[9],D=a[10],S=a[11],I=a[12],x=a[13],f=a[14],F=a[15],m=n*e-r*u,h=n*M-o*u,d=n*i-l*u,v=r*M-o*e,z=r*i-l*e,p=o*i-l*M,w=s*x-c*I,A=s*f-D*I,R=s*F-S*I,b=c*f-D*x,Y=c*F-S*x,q=D*F-S*f,y=m*q-h*Y+d*b+v*R-z*A+p*w;return y?(y=1/y,t[0]=(e*q-M*Y+i*b)*y,t[1]=(M*R-u*q-i*A)*y,t[2]=(u*Y-e*R+i*w)*y,t[3]=(o*Y-r*q-l*b)*y,t[4]=(n*q-o*R+l*A)*y,t[5]=(r*R-n*Y-l*w)*y,t[6]=(x*p-f*z+F*v)*y,t[7]=(f*d-I*p-F*h)*y,t[8]=(I*z-x*d+F*m)*y,t):null},o.str=function(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},o.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2))},t.exports=o},function(t,a,n){var r=n(1),o={scalar:{},SIMD:{}};o.create=function(){var t=new r.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.clone=function(t){var a=new r.ARRAY_TYPE(16);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=t[4],a[5]=t[5],a[6]=t[6],a[7]=t[7],a[8]=t[8],a[9]=t[9],a[10]=t[10],a[11]=t[11],a[12]=t[12],a[13]=t[13],a[14]=t[14],a[15]=t[15],a},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},o.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.scalar.transpose=function(t,a){if(t===a){var n=a[1],r=a[2],o=a[3],l=a[6],u=a[7],e=a[11];t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=n,t[6]=a[9],t[7]=a[13],t[8]=r,t[9]=l,t[11]=a[14],t[12]=o,t[13]=u,t[14]=e}else t[0]=a[0],t[1]=a[4],t[2]=a[8],t[3]=a[12],t[4]=a[1],t[5]=a[5],t[6]=a[9],t[7]=a[13],t[8]=a[2],t[9]=a[6],t[10]=a[10],t[11]=a[14],t[12]=a[3],t[13]=a[7],t[14]=a[11],t[15]=a[15];return t},o.SIMD.transpose=function(t,a){var n,r,o,l,u,e,M,i,s,c;return n=SIMD.Float32x4.load(a,0),r=SIMD.Float32x4.load(a,4),o=SIMD.Float32x4.load(a,8),l=SIMD.Float32x4.load(a,12),u=SIMD.Float32x4.shuffle(n,r,0,1,4,5),e=SIMD.Float32x4.shuffle(o,l,0,1,4,5),M=SIMD.Float32x4.shuffle(u,e,0,2,4,6),i=SIMD.Float32x4.shuffle(u,e,1,3,5,7),SIMD.Float32x4.store(t,0,M),SIMD.Float32x4.store(t,4,i),u=SIMD.Float32x4.shuffle(n,r,2,3,6,7),e=SIMD.Float32x4.shuffle(o,l,2,3,6,7),s=SIMD.Float32x4.shuffle(u,e,0,2,4,6),c=SIMD.Float32x4.shuffle(u,e,1,3,5,7),SIMD.Float32x4.store(t,8,s),SIMD.Float32x4.store(t,12,c),t},o.transpose=r.USE_SIMD?o.SIMD.transpose:o.scalar.transpose,o.scalar.invert=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=a[6],i=a[7],s=a[8],c=a[9],D=a[10],S=a[11],I=a[12],x=a[13],f=a[14],F=a[15],m=n*e-r*u,h=n*M-o*u,d=n*i-l*u,v=r*M-o*e,z=r*i-l*e,p=o*i-l*M,w=s*x-c*I,A=s*f-D*I,R=s*F-S*I,b=c*f-D*x,Y=c*F-S*x,q=D*F-S*f,y=m*q-h*Y+d*b+v*R-z*A+p*w;return y?(y=1/y,t[0]=(e*q-M*Y+i*b)*y,t[1]=(o*Y-r*q-l*b)*y,t[2]=(x*p-f*z+F*v)*y,t[3]=(D*z-c*p-S*v)*y,t[4]=(M*R-u*q-i*A)*y,t[5]=(n*q-o*R+l*A)*y,t[6]=(f*d-I*p-F*h)*y,t[7]=(s*p-D*d+S*h)*y,t[8]=(u*Y-e*R+i*w)*y,t[9]=(r*R-n*Y-l*w)*y,t[10]=(I*z-x*d+F*m)*y,t[11]=(c*d-s*z-S*m)*y,t[12]=(e*A-u*b-M*w)*y,t[13]=(n*b-r*A+o*w)*y,t[14]=(x*h-I*v-f*m)*y,t[15]=(s*v-c*h+D*m)*y,t):null},o.SIMD.invert=function(t,a){var n,r,o,l,u,e,M,i,s,c,D=SIMD.Float32x4.load(a,0),S=SIMD.Float32x4.load(a,4),I=SIMD.Float32x4.load(a,8),x=SIMD.Float32x4.load(a,12);return u=SIMD.Float32x4.shuffle(D,S,0,1,4,5),r=SIMD.Float32x4.shuffle(I,x,0,1,4,5),n=SIMD.Float32x4.shuffle(u,r,0,2,4,6),r=SIMD.Float32x4.shuffle(r,u,1,3,5,7),u=SIMD.Float32x4.shuffle(D,S,2,3,6,7),l=SIMD.Float32x4.shuffle(I,x,2,3,6,7),o=SIMD.Float32x4.shuffle(u,l,0,2,4,6),l=SIMD.Float32x4.shuffle(l,u,1,3,5,7),u=SIMD.Float32x4.mul(o,l),u=SIMD.Float32x4.swizzle(u,1,0,3,2),e=SIMD.Float32x4.mul(r,u),M=SIMD.Float32x4.mul(n,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),e=SIMD.Float32x4.sub(SIMD.Float32x4.mul(r,u),e),M=SIMD.Float32x4.sub(SIMD.Float32x4.mul(n,u),M),M=SIMD.Float32x4.swizzle(M,2,3,0,1),u=SIMD.Float32x4.mul(r,o),u=SIMD.Float32x4.swizzle(u,1,0,3,2),e=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,u),e),s=SIMD.Float32x4.mul(n,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),e=SIMD.Float32x4.sub(e,SIMD.Float32x4.mul(l,u)),s=SIMD.Float32x4.sub(SIMD.Float32x4.mul(n,u),s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),u=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(r,2,3,0,1),l),u=SIMD.Float32x4.swizzle(u,1,0,3,2),o=SIMD.Float32x4.swizzle(o,2,3,0,1),e=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,u),e),i=SIMD.Float32x4.mul(n,u),u=SIMD.Float32x4.swizzle(u,2,3,0,1),e=SIMD.Float32x4.sub(e,SIMD.Float32x4.mul(o,u)),i=SIMD.Float32x4.sub(SIMD.Float32x4.mul(n,u),i),i=SIMD.Float32x4.swizzle(i,2,3,0,1),u=SIMD.Float32x4.mul(n,r),u=SIMD.Float32x4.swizzle(u,1,0,3,2),i=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,u),i),s=SIMD.Float32x4.sub(SIMD.Float32x4.mul(o,u),s),u=SIMD.Float32x4.swizzle(u,2,3,0,1),i=SIMD.Float32x4.sub(SIMD.Float32x4.mul(l,u),i),s=SIMD.Float32x4.sub(s,SIMD.Float32x4.mul(o,u)),u=SIMD.Float32x4.mul(n,l),u=SIMD.Float32x4.swizzle(u,1,0,3,2),M=SIMD.Float32x4.sub(M,SIMD.Float32x4.mul(o,u)),i=SIMD.Float32x4.add(SIMD.Float32x4.mul(r,u),i),u=SIMD.Float32x4.swizzle(u,2,3,0,1),M=SIMD.Float32x4.add(SIMD.Float32x4.mul(o,u),M),i=SIMD.Float32x4.sub(i,SIMD.Float32x4.mul(r,u)),u=SIMD.Float32x4.mul(n,o),u=SIMD.Float32x4.swizzle(u,1,0,3,2),M=SIMD.Float32x4.add(SIMD.Float32x4.mul(l,u),M),s=SIMD.Float32x4.sub(s,SIMD.Float32x4.mul(r,u)),u=SIMD.Float32x4.swizzle(u,2,3,0,1),M=SIMD.Float32x4.sub(M,SIMD.Float32x4.mul(l,u)),s=SIMD.Float32x4.add(SIMD.Float32x4.mul(r,u),s),c=SIMD.Float32x4.mul(n,e),c=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(c,2,3,0,1),c),c=SIMD.Float32x4.add(SIMD.Float32x4.swizzle(c,1,0,3,2),c),u=SIMD.Float32x4.reciprocalApproximation(c),c=SIMD.Float32x4.sub(SIMD.Float32x4.add(u,u),SIMD.Float32x4.mul(c,SIMD.Float32x4.mul(u,u))),(c=SIMD.Float32x4.swizzle(c,0,0,0,0))?(SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(c,e)),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(c,M)),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(c,i)),SIMD.Float32x4.store(t,12,SIMD.Float32x4.mul(c,s)),t):null},o.invert=r.USE_SIMD?o.SIMD.invert:o.scalar.invert,o.scalar.adjoint=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=a[4],e=a[5],M=a[6],i=a[7],s=a[8],c=a[9],D=a[10],S=a[11],I=a[12],x=a[13],f=a[14],F=a[15];return t[0]=e*(D*F-S*f)-c*(M*F-i*f)+x*(M*S-i*D),t[1]=-(r*(D*F-S*f)-c*(o*F-l*f)+x*(o*S-l*D)),t[2]=r*(M*F-i*f)-e*(o*F-l*f)+x*(o*i-l*M),t[3]=-(r*(M*S-i*D)-e*(o*S-l*D)+c*(o*i-l*M)),t[4]=-(u*(D*F-S*f)-s*(M*F-i*f)+I*(M*S-i*D)),t[5]=n*(D*F-S*f)-s*(o*F-l*f)+I*(o*S-l*D),t[6]=-(n*(M*F-i*f)-u*(o*F-l*f)+I*(o*i-l*M)),t[7]=n*(M*S-i*D)-u*(o*S-l*D)+s*(o*i-l*M),t[8]=u*(c*F-S*x)-s*(e*F-i*x)+I*(e*S-i*c),t[9]=-(n*(c*F-S*x)-s*(r*F-l*x)+I*(r*S-l*c)),t[10]=n*(e*F-i*x)-u*(r*F-l*x)+I*(r*i-l*e),t[11]=-(n*(e*S-i*c)-u*(r*S-l*c)+s*(r*i-l*e)),t[12]=-(u*(c*f-D*x)-s*(e*f-M*x)+I*(e*D-M*c)),t[13]=n*(c*f-D*x)-s*(r*f-o*x)+I*(r*D-o*c),t[14]=-(n*(e*f-M*x)-u*(r*f-o*x)+I*(r*M-o*e)),t[15]=n*(e*D-M*c)-u*(r*D-o*c)+s*(r*M-o*e),t},o.SIMD.adjoint=function(t,a){var n,r,o,l,u,e,M,i,s,c,D,S,I,n=SIMD.Float32x4.load(a,0),r=SIMD.Float32x4.load(a,4),o=SIMD.Float32x4.load(a,8),l=SIMD.Float32x4.load(a,12);return s=SIMD.Float32x4.shuffle(n,r,0,1,4,5),e=SIMD.Float32x4.shuffle(o,l,0,1,4,5),u=SIMD.Float32x4.shuffle(s,e,0,2,4,6),e=SIMD.Float32x4.shuffle(e,s,1,3,5,7),s=SIMD.Float32x4.shuffle(n,r,2,3,6,7),i=SIMD.Float32x4.shuffle(o,l,2,3,6,7),M=SIMD.Float32x4.shuffle(s,i,0,2,4,6),i=SIMD.Float32x4.shuffle(i,s,1,3,5,7),s=SIMD.Float32x4.mul(M,i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),c=SIMD.Float32x4.mul(e,s),D=SIMD.Float32x4.mul(u,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),c=SIMD.Float32x4.sub(SIMD.Float32x4.mul(e,s),c),D=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,s),D),D=SIMD.Float32x4.swizzle(D,2,3,0,1),s=SIMD.Float32x4.mul(e,M),s=SIMD.Float32x4.swizzle(s,1,0,3,2),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),c),I=SIMD.Float32x4.mul(u,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(i,s)),I=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,s),I),I=SIMD.Float32x4.swizzle(I,2,3,0,1),s=SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(e,2,3,0,1),i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),M=SIMD.Float32x4.swizzle(M,2,3,0,1),c=SIMD.Float32x4.add(SIMD.Float32x4.mul(M,s),c),S=SIMD.Float32x4.mul(u,s),s=SIMD.Float32x4.swizzle(s,2,3,0,1),c=SIMD.Float32x4.sub(c,SIMD.Float32x4.mul(M,s)),S=SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,s),S),S=SIMD.Float32x4.swizzle(S,2,3,0,1),s=SIMD.Float32x4.mul(u,e),s=SIMD.Float32x4.swizzle(s,1,0,3,2),S=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),S),I=SIMD.Float32x4.sub(SIMD.Float32x4.mul(M,s),I),s=SIMD.Float32x4.swizzle(s,2,3,0,1),S=SIMD.Float32x4.sub(SIMD.Float32x4.mul(i,s),S),I=SIMD.Float32x4.sub(I,SIMD.Float32x4.mul(M,s)),s=SIMD.Float32x4.mul(u,i),s=SIMD.Float32x4.swizzle(s,1,0,3,2),D=SIMD.Float32x4.sub(D,SIMD.Float32x4.mul(M,s)),S=SIMD.Float32x4.add(SIMD.Float32x4.mul(e,s),S),s=SIMD.Float32x4.swizzle(s,2,3,0,1),D=SIMD.Float32x4.add(SIMD.Float32x4.mul(M,s),D),S=SIMD.Float32x4.sub(S,SIMD.Float32x4.mul(e,s)),s=SIMD.Float32x4.mul(u,M),s=SIMD.Float32x4.swizzle(s,1,0,3,2),D=SIMD.Float32x4.add(SIMD.Float32x4.mul(i,s),D),I=SIMD.Float32x4.sub(I,SIMD.Float32x4.mul(e,s)),s=SIMD.Float32x4.swizzle(s,2,3,0,1),D=SIMD.Float32x4.sub(D,SIMD.Float32x4.mul(i,s)),I=SIMD.Float32x4.add(SIMD.Float32x4.mul(e,s),I),SIMD.Float32x4.store(t,0,c),SIMD.Float32x4.store(t,4,D),SIMD.Float32x4.store(t,8,S),SIMD.Float32x4.store(t,12,I),t},o.adjoint=r.USE_SIMD?o.SIMD.adjoint:o.scalar.adjoint,o.determinant=function(t){var a=t[0],n=t[1],r=t[2],o=t[3],l=t[4],u=t[5],e=t[6],M=t[7],i=t[8],s=t[9],c=t[10],D=t[11],S=t[12],I=t[13],x=t[14],f=t[15],F=a*u-n*l,m=a*e-r*l,h=a*M-o*l,d=n*e-r*u,v=n*M-o*u,z=r*M-o*e,p=i*I-s*S,w=i*x-c*S,A=i*f-D*S,R=s*x-c*I,b=s*f-D*I,Y=c*f-D*x;return F*Y-m*b+h*R+d*A-v*w+z*p},o.SIMD.multiply=function(t,a,n){var r=SIMD.Float32x4.load(a,0),o=SIMD.Float32x4.load(a,4),l=SIMD.Float32x4.load(a,8),u=SIMD.Float32x4.load(a,12),e=SIMD.Float32x4.load(n,0),M=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(e,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(e,1,1,1,1),o),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(e,2,2,2,2),l),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(e,3,3,3,3),u))));SIMD.Float32x4.store(t,0,M);var i=SIMD.Float32x4.load(n,4),s=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(i,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(i,1,1,1,1),o),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(i,2,2,2,2),l),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(i,3,3,3,3),u))));SIMD.Float32x4.store(t,4,s);var c=SIMD.Float32x4.load(n,8),D=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(c,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(c,1,1,1,1),o),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(c,2,2,2,2),l),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(c,3,3,3,3),u))));SIMD.Float32x4.store(t,8,D);var S=SIMD.Float32x4.load(n,12),I=SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(S,0,0,0,0),r),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(S,1,1,1,1),o),SIMD.Float32x4.add(SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(S,2,2,2,2),l),SIMD.Float32x4.mul(SIMD.Float32x4.swizzle(S,3,3,3,3),u))));return SIMD.Float32x4.store(t,12,I),t},o.scalar.multiply=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=a[6],s=a[7],c=a[8],D=a[9],S=a[10],I=a[11],x=a[12],f=a[13],F=a[14],m=a[15],h=n[0],d=n[1],v=n[2],z=n[3];return t[0]=h*r+d*e+v*c+z*x,t[1]=h*o+d*M+v*D+z*f,t[2]=h*l+d*i+v*S+z*F,t[3]=h*u+d*s+v*I+z*m,h=n[4],d=n[5],v=n[6],z=n[7],t[4]=h*r+d*e+v*c+z*x,t[5]=h*o+d*M+v*D+z*f,t[6]=h*l+d*i+v*S+z*F,t[7]=h*u+d*s+v*I+z*m,h=n[8],d=n[9],v=n[10],z=n[11],t[8]=h*r+d*e+v*c+z*x,t[9]=h*o+d*M+v*D+z*f,t[10]=h*l+d*i+v*S+z*F,t[11]=h*u+d*s+v*I+z*m,h=n[12],d=n[13],v=n[14],z=n[15],t[12]=h*r+d*e+v*c+z*x,t[13]=h*o+d*M+v*D+z*f,t[14]=h*l+d*i+v*S+z*F,t[15]=h*u+d*s+v*I+z*m,t},o.multiply=r.USE_SIMD?o.SIMD.multiply:o.scalar.multiply,o.mul=o.multiply,o.scalar.translate=function(t,a,n){var r,o,l,u,e,M,i,s,c,D,S,I,x=n[0],f=n[1],F=n[2];return a===t?(t[12]=a[0]*x+a[4]*f+a[8]*F+a[12],t[13]=a[1]*x+a[5]*f+a[9]*F+a[13],t[14]=a[2]*x+a[6]*f+a[10]*F+a[14],t[15]=a[3]*x+a[7]*f+a[11]*F+a[15]):(r=a[0],o=a[1],l=a[2],u=a[3],e=a[4],M=a[5],i=a[6],s=a[7],c=a[8],D=a[9],S=a[10],I=a[11],t[0]=r,t[1]=o,t[2]=l,t[3]=u,t[4]=e,t[5]=M,t[6]=i,t[7]=s,t[8]=c,t[9]=D,t[10]=S,t[11]=I,t[12]=r*x+e*f+c*F+a[12],t[13]=o*x+M*f+D*F+a[13],t[14]=l*x+i*f+S*F+a[14],t[15]=u*x+s*f+I*F+a[15]),t},o.SIMD.translate=function(t,a,n){var r=SIMD.Float32x4.load(a,0),o=SIMD.Float32x4.load(a,4),l=SIMD.Float32x4.load(a,8),u=SIMD.Float32x4.load(a,12),e=SIMD.Float32x4(n[0],n[1],n[2],0);a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11]),r=SIMD.Float32x4.mul(r,SIMD.Float32x4.swizzle(e,0,0,0,0)),o=SIMD.Float32x4.mul(o,SIMD.Float32x4.swizzle(e,1,1,1,1)),l=SIMD.Float32x4.mul(l,SIMD.Float32x4.swizzle(e,2,2,2,2));var M=SIMD.Float32x4.add(r,SIMD.Float32x4.add(o,SIMD.Float32x4.add(l,u)));return SIMD.Float32x4.store(t,12,M),t},o.translate=r.USE_SIMD?o.SIMD.translate:o.scalar.translate,o.scalar.scale=function(t,a,n){var r=n[0],o=n[1],l=n[2];return t[0]=a[0]*r,t[1]=a[1]*r,t[2]=a[2]*r,t[3]=a[3]*r,t[4]=a[4]*o,t[5]=a[5]*o,t[6]=a[6]*o,t[7]=a[7]*o,t[8]=a[8]*l,t[9]=a[9]*l,t[10]=a[10]*l,t[11]=a[11]*l,t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},o.SIMD.scale=function(t,a,n){var r,o,l,u=SIMD.Float32x4(n[0],n[1],n[2],0);return r=SIMD.Float32x4.load(a,0),SIMD.Float32x4.store(t,0,SIMD.Float32x4.mul(r,SIMD.Float32x4.swizzle(u,0,0,0,0))),o=SIMD.Float32x4.load(a,4),SIMD.Float32x4.store(t,4,SIMD.Float32x4.mul(o,SIMD.Float32x4.swizzle(u,1,1,1,1))),l=SIMD.Float32x4.load(a,8),SIMD.Float32x4.store(t,8,SIMD.Float32x4.mul(l,SIMD.Float32x4.swizzle(u,2,2,2,2))),t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15],t},o.scale=r.USE_SIMD?o.SIMD.scale:o.scalar.scale,o.rotate=function(t,a,n,o){var l,u,e,M,i,s,c,D,S,I,x,f,F,m,h,d,v,z,p,w,A,R,b,Y,q=o[0],y=o[1],E=o[2],g=Math.sqrt(q*q+y*y+E*E);return Math.abs(g)<r.EPSILON?null:(g=1/g,q*=g,y*=g,E*=g,l=Math.sin(n),u=Math.cos(n),e=1-u,M=a[0],i=a[1],s=a[2],c=a[3],D=a[4],S=a[5],I=a[6],x=a[7],f=a[8],F=a[9],m=a[10],h=a[11],d=q*q*e+u,v=y*q*e+E*l,z=E*q*e-y*l,p=q*y*e-E*l,w=y*y*e+u,A=E*y*e+q*l,R=q*E*e+y*l,b=y*E*e-q*l,Y=E*E*e+u,t[0]=M*d+D*v+f*z,t[1]=i*d+S*v+F*z,t[2]=s*d+I*v+m*z,t[3]=c*d+x*v+h*z,t[4]=M*p+D*w+f*A,t[5]=i*p+S*w+F*A,t[6]=s*p+I*w+m*A,t[7]=c*p+x*w+h*A,t[8]=M*R+D*b+f*Y,t[9]=i*R+S*b+F*Y,t[10]=s*R+I*b+m*Y,t[11]=c*R+x*b+h*Y,a!==t&&(t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t)},o.scalar.rotateX=function(t,a,n){var r=Math.sin(n),o=Math.cos(n),l=a[4],u=a[5],e=a[6],M=a[7],i=a[8],s=a[9],c=a[10],D=a[11];return a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[4]=l*o+i*r,t[5]=u*o+s*r,t[6]=e*o+c*r,t[7]=M*o+D*r,t[8]=i*o-l*r,t[9]=s*o-u*r,t[10]=c*o-e*r,t[11]=D*o-M*r,t},o.SIMD.rotateX=function(t,a,n){var r=SIMD.Float32x4.splat(Math.sin(n)),o=SIMD.Float32x4.splat(Math.cos(n));a!==t&&(t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);var l=SIMD.Float32x4.load(a,4),u=SIMD.Float32x4.load(a,8);return SIMD.Float32x4.store(t,4,SIMD.Float32x4.add(SIMD.Float32x4.mul(l,o),SIMD.Float32x4.mul(u,r))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,o),SIMD.Float32x4.mul(l,r))),t},o.rotateX=r.USE_SIMD?o.SIMD.rotateX:o.scalar.rotateX,o.scalar.rotateY=function(t,a,n){var r=Math.sin(n),o=Math.cos(n),l=a[0],u=a[1],e=a[2],M=a[3],i=a[8],s=a[9],c=a[10],D=a[11];return a!==t&&(t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[0]=l*o-i*r,t[1]=u*o-s*r,t[2]=e*o-c*r,t[3]=M*o-D*r,t[8]=l*r+i*o,t[9]=u*r+s*o,t[10]=e*r+c*o,t[11]=M*r+D*o,t},o.SIMD.rotateY=function(t,a,n){var r=SIMD.Float32x4.splat(Math.sin(n)),o=SIMD.Float32x4.splat(Math.cos(n));a!==t&&(t[4]=a[4],t[5]=a[5],t[6]=a[6],t[7]=a[7],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);var l=SIMD.Float32x4.load(a,0),u=SIMD.Float32x4.load(a,8);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.sub(SIMD.Float32x4.mul(l,o),SIMD.Float32x4.mul(u,r))),SIMD.Float32x4.store(t,8,SIMD.Float32x4.add(SIMD.Float32x4.mul(l,r),SIMD.Float32x4.mul(u,o))),t},o.rotateY=r.USE_SIMD?o.SIMD.rotateY:o.scalar.rotateY,o.scalar.rotateZ=function(t,a,n){var r=Math.sin(n),o=Math.cos(n),l=a[0],u=a[1],e=a[2],M=a[3],i=a[4],s=a[5],c=a[6],D=a[7];return a!==t&&(t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]),t[0]=l*o+i*r,t[1]=u*o+s*r,t[2]=e*o+c*r,t[3]=M*o+D*r,t[4]=i*o-l*r,t[5]=s*o-u*r,t[6]=c*o-e*r,t[7]=D*o-M*r,t},o.SIMD.rotateZ=function(t,a,n){var r=SIMD.Float32x4.splat(Math.sin(n)),o=SIMD.Float32x4.splat(Math.cos(n));a!==t&&(t[8]=a[8],t[9]=a[9],t[10]=a[10],t[11]=a[11],t[12]=a[12],t[13]=a[13],t[14]=a[14],t[15]=a[15]);var l=SIMD.Float32x4.load(a,0),u=SIMD.Float32x4.load(a,4);return SIMD.Float32x4.store(t,0,SIMD.Float32x4.add(SIMD.Float32x4.mul(l,o),SIMD.Float32x4.mul(u,r))),SIMD.Float32x4.store(t,4,SIMD.Float32x4.sub(SIMD.Float32x4.mul(u,o),SIMD.Float32x4.mul(l,r))),t},o.rotateZ=r.USE_SIMD?o.SIMD.rotateZ:o.scalar.rotateZ,o.fromTranslation=function(t,a){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=a[0],t[13]=a[1],t[14]=a[2],t[15]=1,t},o.fromScaling=function(t,a){return t[0]=a[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=a[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.fromRotation=function(t,a,n){var o,l,u,e=n[0],M=n[1],i=n[2],s=Math.sqrt(e*e+M*M+i*i);return Math.abs(s)<r.EPSILON?null:(s=1/s,e*=s,M*=s,i*=s,o=Math.sin(a),l=Math.cos(a),u=1-l,t[0]=e*e*u+l,t[1]=M*e*u+i*o,t[2]=i*e*u-M*o,t[3]=0,t[4]=e*M*u-i*o,t[5]=M*M*u+l,t[6]=i*M*u+e*o,t[7]=0,t[8]=e*i*u+M*o,t[9]=M*i*u-e*o,t[10]=i*i*u+l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},o.fromXRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.fromYRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.fromZRotation=function(t,a){var n=Math.sin(a),r=Math.cos(a);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.fromRotationTranslation=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=r+r,M=o+o,i=l+l,s=r*e,c=r*M,D=r*i,S=o*M,I=o*i,x=l*i,f=u*e,F=u*M,m=u*i;return t[0]=1-(S+x),t[1]=c+m,t[2]=D-F,t[3]=0,t[4]=c-m,t[5]=1-(s+x),t[6]=I+f,t[7]=0,t[8]=D+F,t[9]=I-f,t[10]=1-(s+S),t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},o.fromRotationTranslationScale=function(t,a,n,r){var o=a[0],l=a[1],u=a[2],e=a[3],M=o+o,i=l+l,s=u+u,c=o*M,D=o*i,S=o*s,I=l*i,x=l*s,f=u*s,F=e*M,m=e*i,h=e*s,d=r[0],v=r[1],z=r[2];return t[0]=(1-(I+f))*d,t[1]=(D+h)*d,t[2]=(S-m)*d,t[3]=0,t[4]=(D-h)*v,t[5]=(1-(c+f))*v,t[6]=(x+F)*v,t[7]=0,t[8]=(S+m)*z,t[9]=(x-F)*z,t[10]=(1-(c+I))*z,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t},o.fromRotationTranslationScaleOrigin=function(t,a,n,r,o){var l=a[0],u=a[1],e=a[2],M=a[3],i=l+l,s=u+u,c=e+e,D=l*i,S=l*s,I=l*c,x=u*s,f=u*c,F=e*c,m=M*i,h=M*s,d=M*c,v=r[0],z=r[1],p=r[2],w=o[0],A=o[1],R=o[2];return t[0]=(1-(x+F))*v,t[1]=(S+d)*v,t[2]=(I-h)*v,t[3]=0,t[4]=(S-d)*z,t[5]=(1-(D+F))*z,t[6]=(f+m)*z,t[7]=0,t[8]=(I+h)*p,t[9]=(f-m)*p,t[10]=(1-(D+x))*p,t[11]=0,t[12]=n[0]+w-(t[0]*w+t[4]*A+t[8]*R),t[13]=n[1]+A-(t[1]*w+t[5]*A+t[9]*R),t[14]=n[2]+R-(t[2]*w+t[6]*A+t[10]*R),t[15]=1,t},o.fromQuat=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=n+n,e=r+r,M=o+o,i=n*u,s=r*u,c=r*e,D=o*u,S=o*e,I=o*M,x=l*u,f=l*e,F=l*M;return t[0]=1-c-I,t[1]=s+F,t[2]=D-f,t[3]=0,t[4]=s-F,t[5]=1-i-I,t[6]=S+x,t[7]=0,t[8]=D+f,t[9]=S-x,t[10]=1-i-c,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},o.frustum=function(t,a,n,r,o,l,u){var e=1/(n-a),M=1/(o-r),i=1/(l-u);return t[0]=2*l*e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*l*M,t[6]=0,t[7]=0,t[8]=(n+a)*e,t[9]=(o+r)*M,t[10]=(u+l)*i,t[11]=-1,t[12]=0,t[13]=0,t[14]=u*l*2*i,t[15]=0,t},o.perspective=function(t,a,n,r,o){var l=1/Math.tan(a/2),u=1/(r-o);return t[0]=l/n,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=(o+r)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=2*o*r*u,t[15]=0,t},o.perspectiveFromFieldOfView=function(t,a,n,r){var o=Math.tan(a.upDegrees*Math.PI/180),l=Math.tan(a.downDegrees*Math.PI/180),u=Math.tan(a.leftDegrees*Math.PI/180),e=Math.tan(a.rightDegrees*Math.PI/180),M=2/(u+e),i=2/(o+l);return t[0]=M,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=-((u-e)*M*.5),t[9]=(o-l)*i*.5,t[10]=r/(n-r),t[11]=-1,t[12]=0,t[13]=0,t[14]=r*n/(n-r),t[15]=0,t},o.ortho=function(t,a,n,r,o,l,u){var e=1/(a-n),M=1/(r-o),i=1/(l-u);return t[0]=-2*e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*M,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*i,t[11]=0,t[12]=(a+n)*e,t[13]=(o+r)*M,t[14]=(u+l)*i,t[15]=1,t},o.lookAt=function(t,a,n,l){var u,e,M,i,s,c,D,S,I,x,f=a[0],F=a[1],m=a[2],h=l[0],d=l[1],v=l[2],z=n[0],p=n[1],w=n[2];return Math.abs(f-z)<r.EPSILON&&Math.abs(F-p)<r.EPSILON&&Math.abs(m-w)<r.EPSILON?o.identity(t):(D=f-z,S=F-p,I=m-w,x=1/Math.sqrt(D*D+S*S+I*I),D*=x,S*=x,I*=x,u=d*I-v*S,e=v*D-h*I,M=h*S-d*D,x=Math.sqrt(u*u+e*e+M*M),x?(x=1/x,u*=x,e*=x,M*=x):(u=0,e=0,M=0),i=S*M-I*e,s=I*u-D*M,c=D*e-S*u,x=Math.sqrt(i*i+s*s+c*c),x?(x=1/x,i*=x,s*=x,c*=x):(i=0,s=0,c=0),t[0]=u,t[1]=i,t[2]=D,t[3]=0,t[4]=e,t[5]=s,t[6]=S,t[7]=0,t[8]=M,t[9]=c,t[10]=I,t[11]=0,t[12]=-(u*f+e*F+M*m),t[13]=-(i*f+s*F+c*m),t[14]=-(D*f+S*F+I*m),t[15]=1,t)},o.str=function(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},o.frob=function(t){return Math.sqrt(Math.pow(t[0],2)+Math.pow(t[1],2)+Math.pow(t[2],2)+Math.pow(t[3],2)+Math.pow(t[4],2)+Math.pow(t[5],2)+Math.pow(t[6],2)+Math.pow(t[7],2)+Math.pow(t[8],2)+Math.pow(t[9],2)+Math.pow(t[10],2)+Math.pow(t[11],2)+Math.pow(t[12],2)+Math.pow(t[13],2)+Math.pow(t[14],2)+Math.pow(t[15],2))},t.exports=o},function(t,a,n){var r=n(1),o=n(4),l=n(7),u=n(8),e={};e.create=function(){var t=new r.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},e.rotationTo=function(){var t=l.create(),a=l.fromValues(1,0,0),n=l.fromValues(0,1,0);return function(r,o,u){var M=l.dot(o,u);return-.999999>M?(l.cross(t,a,o),l.length(t)<1e-6&&l.cross(t,n,o),l.normalize(t,t),e.setAxisAngle(r,t,Math.PI),r):M>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(l.cross(t,o,u),r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=1+M,e.normalize(r,r))}}(),e.setAxes=function(){var t=o.create();return function(a,n,r,o){return t[0]=r[0],t[3]=r[1],t[6]=r[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-n[0],t[5]=-n[1],t[8]=-n[2],e.normalize(a,e.fromMat3(a,t))}}(),e.clone=u.clone,e.fromValues=u.fromValues,e.copy=u.copy,e.set=u.set,e.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},e.setAxisAngle=function(t,a,n){n=.5*n;var r=Math.sin(n);return t[0]=r*a[0],t[1]=r*a[1],t[2]=r*a[2],t[3]=Math.cos(n),t},e.add=u.add,e.multiply=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3],e=n[0],M=n[1],i=n[2],s=n[3];return t[0]=r*s+u*e+o*i-l*M,t[1]=o*s+u*M+l*e-r*i,t[2]=l*s+u*i+r*M-o*e,t[3]=u*s-r*e-o*M-l*i,t},e.mul=e.multiply,e.scale=u.scale,e.rotateX=function(t,a,n){n*=.5;var r=a[0],o=a[1],l=a[2],u=a[3],e=Math.sin(n),M=Math.cos(n);return t[0]=r*M+u*e,t[1]=o*M+l*e,t[2]=l*M-o*e,t[3]=u*M-r*e,t},e.rotateY=function(t,a,n){n*=.5;var r=a[0],o=a[1],l=a[2],u=a[3],e=Math.sin(n),M=Math.cos(n);return t[0]=r*M-l*e,t[1]=o*M+u*e,t[2]=l*M+r*e,t[3]=u*M-o*e,t},e.rotateZ=function(t,a,n){n*=.5;var r=a[0],o=a[1],l=a[2],u=a[3],e=Math.sin(n),M=Math.cos(n);return t[0]=r*M+o*e,t[1]=o*M-r*e,t[2]=l*M+u*e,t[3]=u*M-l*e,t},e.calculateW=function(t,a){var n=a[0],r=a[1],o=a[2];return t[0]=n,t[1]=r,t[2]=o,t[3]=Math.sqrt(Math.abs(1-n*n-r*r-o*o)),t},e.dot=u.dot,e.lerp=u.lerp,e.slerp=function(t,a,n,r){var o,l,u,e,M,i=a[0],s=a[1],c=a[2],D=a[3],S=n[0],I=n[1],x=n[2],f=n[3];return l=i*S+s*I+c*x+D*f,0>l&&(l=-l,S=-S,I=-I,x=-x,f=-f),1-l>1e-6?(o=Math.acos(l),u=Math.sin(o),e=Math.sin((1-r)*o)/u,M=Math.sin(r*o)/u):(e=1-r,M=r),t[0]=e*i+M*S,t[1]=e*s+M*I,t[2]=e*c+M*x,t[3]=e*D+M*f,t},e.sqlerp=function(){var t=e.create(),a=e.create();return function(n,r,o,l,u,M){return e.slerp(t,r,u,M),e.slerp(a,o,l,M),e.slerp(n,t,a,2*M*(1-M)),n}}(),e.invert=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=n*n+r*r+o*o+l*l,e=u?1/u:0;
++return t[0]=-n*e,t[1]=-r*e,t[2]=-o*e,t[3]=l*e,t},e.conjugate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=a[3],t},e.length=u.length,e.len=e.length,e.squaredLength=u.squaredLength,e.sqrLen=e.squaredLength,e.normalize=u.normalize,e.fromMat3=function(t,a){var n,r=a[0]+a[4]+a[8];if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(a[5]-a[7])*n,t[1]=(a[6]-a[2])*n,t[2]=(a[1]-a[3])*n;else{var o=0;a[4]>a[0]&&(o=1),a[8]>a[3*o+o]&&(o=2);var l=(o+1)%3,u=(o+2)%3;n=Math.sqrt(a[3*o+o]-a[3*l+l]-a[3*u+u]+1),t[o]=.5*n,n=.5/n,t[3]=(a[3*l+u]-a[3*u+l])*n,t[l]=(a[3*l+o]+a[3*o+l])*n,t[u]=(a[3*u+o]+a[3*o+u])*n}return t},e.str=function(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},t.exports=e},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(3);return t[0]=0,t[1]=0,t[2]=0,t},o.clone=function(t){var a=new r.ARRAY_TYPE(3);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a},o.fromValues=function(t,a,n){var o=new r.ARRAY_TYPE(3);return o[0]=t,o[1]=a,o[2]=n,o},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t},o.set=function(t,a,n,r){return t[0]=a,t[1]=n,t[2]=r,t},o.add=function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t},o.subtract=function(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t},o.sub=o.subtract,o.multiply=function(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t[2]=a[2]*n[2],t},o.mul=o.multiply,o.divide=function(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t[2]=a[2]/n[2],t},o.div=o.divide,o.min=function(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t[2]=Math.min(a[2],n[2]),t},o.max=function(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t[2]=Math.max(a[2],n[2]),t},o.scale=function(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t},o.scaleAndAdd=function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t},o.distance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1],o=a[2]-t[2];return Math.sqrt(n*n+r*r+o*o)},o.dist=o.distance,o.squaredDistance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1],o=a[2]-t[2];return n*n+r*r+o*o},o.sqrDist=o.squaredDistance,o.length=function(t){var a=t[0],n=t[1],r=t[2];return Math.sqrt(a*a+n*n+r*r)},o.len=o.length,o.squaredLength=function(t){var a=t[0],n=t[1],r=t[2];return a*a+n*n+r*r},o.sqrLen=o.squaredLength,o.negate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t},o.inverse=function(t,a){return t[0]=1/a[0],t[1]=1/a[1],t[2]=1/a[2],t},o.normalize=function(t,a){var n=a[0],r=a[1],o=a[2],l=n*n+r*r+o*o;return l>0&&(l=1/Math.sqrt(l),t[0]=a[0]*l,t[1]=a[1]*l,t[2]=a[2]*l),t},o.dot=function(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]},o.cross=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=n[0],e=n[1],M=n[2];return t[0]=o*M-l*e,t[1]=l*u-r*M,t[2]=r*e-o*u,t},o.lerp=function(t,a,n,r){var o=a[0],l=a[1],u=a[2];return t[0]=o+r*(n[0]-o),t[1]=l+r*(n[1]-l),t[2]=u+r*(n[2]-u),t},o.hermite=function(t,a,n,r,o,l){var u=l*l,e=u*(2*l-3)+1,M=u*(l-2)+l,i=u*(l-1),s=u*(3-2*l);return t[0]=a[0]*e+n[0]*M+r[0]*i+o[0]*s,t[1]=a[1]*e+n[1]*M+r[1]*i+o[1]*s,t[2]=a[2]*e+n[2]*M+r[2]*i+o[2]*s,t},o.bezier=function(t,a,n,r,o,l){var u=1-l,e=u*u,M=l*l,i=e*u,s=3*l*e,c=3*M*u,D=M*l;return t[0]=a[0]*i+n[0]*s+r[0]*c+o[0]*D,t[1]=a[1]*i+n[1]*s+r[1]*c+o[1]*D,t[2]=a[2]*i+n[2]*s+r[2]*c+o[2]*D,t},o.random=function(t,a){a=a||1;var n=2*r.RANDOM()*Math.PI,o=2*r.RANDOM()-1,l=Math.sqrt(1-o*o)*a;return t[0]=Math.cos(n)*l,t[1]=Math.sin(n)*l,t[2]=o*a,t},o.transformMat4=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=n[3]*r+n[7]*o+n[11]*l+n[15];return u=u||1,t[0]=(n[0]*r+n[4]*o+n[8]*l+n[12])/u,t[1]=(n[1]*r+n[5]*o+n[9]*l+n[13])/u,t[2]=(n[2]*r+n[6]*o+n[10]*l+n[14])/u,t},o.transformMat3=function(t,a,n){var r=a[0],o=a[1],l=a[2];return t[0]=r*n[0]+o*n[3]+l*n[6],t[1]=r*n[1]+o*n[4]+l*n[7],t[2]=r*n[2]+o*n[5]+l*n[8],t},o.transformQuat=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=n[0],e=n[1],M=n[2],i=n[3],s=i*r+e*l-M*o,c=i*o+M*r-u*l,D=i*l+u*o-e*r,S=-u*r-e*o-M*l;return t[0]=s*i+S*-u+c*-M-D*-e,t[1]=c*i+S*-e+D*-u-s*-M,t[2]=D*i+S*-M+s*-e-c*-u,t},o.rotateX=function(t,a,n,r){var o=[],l=[];return o[0]=a[0]-n[0],o[1]=a[1]-n[1],o[2]=a[2]-n[2],l[0]=o[0],l[1]=o[1]*Math.cos(r)-o[2]*Math.sin(r),l[2]=o[1]*Math.sin(r)+o[2]*Math.cos(r),t[0]=l[0]+n[0],t[1]=l[1]+n[1],t[2]=l[2]+n[2],t},o.rotateY=function(t,a,n,r){var o=[],l=[];return o[0]=a[0]-n[0],o[1]=a[1]-n[1],o[2]=a[2]-n[2],l[0]=o[2]*Math.sin(r)+o[0]*Math.cos(r),l[1]=o[1],l[2]=o[2]*Math.cos(r)-o[0]*Math.sin(r),t[0]=l[0]+n[0],t[1]=l[1]+n[1],t[2]=l[2]+n[2],t},o.rotateZ=function(t,a,n,r){var o=[],l=[];return o[0]=a[0]-n[0],o[1]=a[1]-n[1],o[2]=a[2]-n[2],l[0]=o[0]*Math.cos(r)-o[1]*Math.sin(r),l[1]=o[0]*Math.sin(r)+o[1]*Math.cos(r),l[2]=o[2],t[0]=l[0]+n[0],t[1]=l[1]+n[1],t[2]=l[2]+n[2],t},o.forEach=function(){var t=o.create();return function(a,n,r,o,l,u){var e,M;for(n||(n=3),r||(r=0),M=o?Math.min(o*n+r,a.length):a.length,e=r;M>e;e+=n)t[0]=a[e],t[1]=a[e+1],t[2]=a[e+2],l(t,t,u),a[e]=t[0],a[e+1]=t[1],a[e+2]=t[2];return a}}(),o.angle=function(t,a){var n=o.fromValues(t[0],t[1],t[2]),r=o.fromValues(a[0],a[1],a[2]);o.normalize(n,n),o.normalize(r,r);var l=o.dot(n,r);return l>1?0:Math.acos(l)},o.str=function(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"},t.exports=o},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},o.clone=function(t){var a=new r.ARRAY_TYPE(4);return a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=t[3],a},o.fromValues=function(t,a,n,o){var l=new r.ARRAY_TYPE(4);return l[0]=t,l[1]=a,l[2]=n,l[3]=o,l},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3],t},o.set=function(t,a,n,r,o){return t[0]=a,t[1]=n,t[2]=r,t[3]=o,t},o.add=function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t[2]=a[2]+n[2],t[3]=a[3]+n[3],t},o.subtract=function(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t[2]=a[2]-n[2],t[3]=a[3]-n[3],t},o.sub=o.subtract,o.multiply=function(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t[2]=a[2]*n[2],t[3]=a[3]*n[3],t},o.mul=o.multiply,o.divide=function(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t[2]=a[2]/n[2],t[3]=a[3]/n[3],t},o.div=o.divide,o.min=function(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t[2]=Math.min(a[2],n[2]),t[3]=Math.min(a[3],n[3]),t},o.max=function(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t[2]=Math.max(a[2],n[2]),t[3]=Math.max(a[3],n[3]),t},o.scale=function(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t[2]=a[2]*n,t[3]=a[3]*n,t},o.scaleAndAdd=function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t[2]=a[2]+n[2]*r,t[3]=a[3]+n[3]*r,t},o.distance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1],o=a[2]-t[2],l=a[3]-t[3];return Math.sqrt(n*n+r*r+o*o+l*l)},o.dist=o.distance,o.squaredDistance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1],o=a[2]-t[2],l=a[3]-t[3];return n*n+r*r+o*o+l*l},o.sqrDist=o.squaredDistance,o.length=function(t){var a=t[0],n=t[1],r=t[2],o=t[3];return Math.sqrt(a*a+n*n+r*r+o*o)},o.len=o.length,o.squaredLength=function(t){var a=t[0],n=t[1],r=t[2],o=t[3];return a*a+n*n+r*r+o*o},o.sqrLen=o.squaredLength,o.negate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t[2]=-a[2],t[3]=-a[3],t},o.inverse=function(t,a){return t[0]=1/a[0],t[1]=1/a[1],t[2]=1/a[2],t[3]=1/a[3],t},o.normalize=function(t,a){var n=a[0],r=a[1],o=a[2],l=a[3],u=n*n+r*r+o*o+l*l;return u>0&&(u=1/Math.sqrt(u),t[0]=n*u,t[1]=r*u,t[2]=o*u,t[3]=l*u),t},o.dot=function(t,a){return t[0]*a[0]+t[1]*a[1]+t[2]*a[2]+t[3]*a[3]},o.lerp=function(t,a,n,r){var o=a[0],l=a[1],u=a[2],e=a[3];return t[0]=o+r*(n[0]-o),t[1]=l+r*(n[1]-l),t[2]=u+r*(n[2]-u),t[3]=e+r*(n[3]-e),t},o.random=function(t,a){return a=a||1,t[0]=r.RANDOM(),t[1]=r.RANDOM(),t[2]=r.RANDOM(),t[3]=r.RANDOM(),o.normalize(t,t),o.scale(t,t,a),t},o.transformMat4=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=a[3];return t[0]=n[0]*r+n[4]*o+n[8]*l+n[12]*u,t[1]=n[1]*r+n[5]*o+n[9]*l+n[13]*u,t[2]=n[2]*r+n[6]*o+n[10]*l+n[14]*u,t[3]=n[3]*r+n[7]*o+n[11]*l+n[15]*u,t},o.transformQuat=function(t,a,n){var r=a[0],o=a[1],l=a[2],u=n[0],e=n[1],M=n[2],i=n[3],s=i*r+e*l-M*o,c=i*o+M*r-u*l,D=i*l+u*o-e*r,S=-u*r-e*o-M*l;return t[0]=s*i+S*-u+c*-M-D*-e,t[1]=c*i+S*-e+D*-u-s*-M,t[2]=D*i+S*-M+s*-e-c*-u,t[3]=a[3],t},o.forEach=function(){var t=o.create();return function(a,n,r,o,l,u){var e,M;for(n||(n=4),r||(r=0),M=o?Math.min(o*n+r,a.length):a.length,e=r;M>e;e+=n)t[0]=a[e],t[1]=a[e+1],t[2]=a[e+2],t[3]=a[e+3],l(t,t,u),a[e]=t[0],a[e+1]=t[1],a[e+2]=t[2],a[e+3]=t[3];return a}}(),o.str=function(t){return"vec4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"},t.exports=o},function(t,a,n){var r=n(1),o={};o.create=function(){var t=new r.ARRAY_TYPE(2);return t[0]=0,t[1]=0,t},o.clone=function(t){var a=new r.ARRAY_TYPE(2);return a[0]=t[0],a[1]=t[1],a},o.fromValues=function(t,a){var n=new r.ARRAY_TYPE(2);return n[0]=t,n[1]=a,n},o.copy=function(t,a){return t[0]=a[0],t[1]=a[1],t},o.set=function(t,a,n){return t[0]=a,t[1]=n,t},o.add=function(t,a,n){return t[0]=a[0]+n[0],t[1]=a[1]+n[1],t},o.subtract=function(t,a,n){return t[0]=a[0]-n[0],t[1]=a[1]-n[1],t},o.sub=o.subtract,o.multiply=function(t,a,n){return t[0]=a[0]*n[0],t[1]=a[1]*n[1],t},o.mul=o.multiply,o.divide=function(t,a,n){return t[0]=a[0]/n[0],t[1]=a[1]/n[1],t},o.div=o.divide,o.min=function(t,a,n){return t[0]=Math.min(a[0],n[0]),t[1]=Math.min(a[1],n[1]),t},o.max=function(t,a,n){return t[0]=Math.max(a[0],n[0]),t[1]=Math.max(a[1],n[1]),t},o.scale=function(t,a,n){return t[0]=a[0]*n,t[1]=a[1]*n,t},o.scaleAndAdd=function(t,a,n,r){return t[0]=a[0]+n[0]*r,t[1]=a[1]+n[1]*r,t},o.distance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1];return Math.sqrt(n*n+r*r)},o.dist=o.distance,o.squaredDistance=function(t,a){var n=a[0]-t[0],r=a[1]-t[1];return n*n+r*r},o.sqrDist=o.squaredDistance,o.length=function(t){var a=t[0],n=t[1];return Math.sqrt(a*a+n*n)},o.len=o.length,o.squaredLength=function(t){var a=t[0],n=t[1];return a*a+n*n},o.sqrLen=o.squaredLength,o.negate=function(t,a){return t[0]=-a[0],t[1]=-a[1],t},o.inverse=function(t,a){return t[0]=1/a[0],t[1]=1/a[1],t},o.normalize=function(t,a){var n=a[0],r=a[1],o=n*n+r*r;return o>0&&(o=1/Math.sqrt(o),t[0]=a[0]*o,t[1]=a[1]*o),t},o.dot=function(t,a){return t[0]*a[0]+t[1]*a[1]},o.cross=function(t,a,n){var r=a[0]*n[1]-a[1]*n[0];return t[0]=t[1]=0,t[2]=r,t},o.lerp=function(t,a,n,r){var o=a[0],l=a[1];return t[0]=o+r*(n[0]-o),t[1]=l+r*(n[1]-l),t},o.random=function(t,a){a=a||1;var n=2*r.RANDOM()*Math.PI;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t},o.transformMat2=function(t,a,n){var r=a[0],o=a[1];return t[0]=n[0]*r+n[2]*o,t[1]=n[1]*r+n[3]*o,t},o.transformMat2d=function(t,a,n){var r=a[0],o=a[1];return t[0]=n[0]*r+n[2]*o+n[4],t[1]=n[1]*r+n[3]*o+n[5],t},o.transformMat3=function(t,a,n){var r=a[0],o=a[1];return t[0]=n[0]*r+n[3]*o+n[6],t[1]=n[1]*r+n[4]*o+n[7],t},o.transformMat4=function(t,a,n){var r=a[0],o=a[1];return t[0]=n[0]*r+n[4]*o+n[12],t[1]=n[1]*r+n[5]*o+n[13],t},o.forEach=function(){var t=o.create();return function(a,n,r,o,l,u){var e,M;for(n||(n=2),r||(r=0),M=o?Math.min(o*n+r,a.length):a.length,e=r;M>e;e+=n)t[0]=a[e],t[1]=a[e+1],l(t,t,u),a[e]=t[0],a[e+1]=t[1];return a}}(),o.str=function(t){return"vec2("+t[0]+", "+t[1]+")"},t.exports=o}])});
+\ No newline at end of file
+Index: ../trunk-jpl/externalpackages/javascript/src/sprintf.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/sprintf.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/sprintf.js	(revision 19790)
+@@ -0,0 +1,190 @@
++function sprintf() {
++  //  discuss at: http://phpjs.org/functions/sprintf/
++  // original by: Ash Searle (http://hexmen.com/blog/)
++  // improved by: Michael White (http://getsprink.com)
++  // improved by: Jack
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Dj
++  // improved by: Allidylls
++  //    input by: Paulo Freitas
++  //    input by: Brett Zamir (http://brett-zamir.me)
++  //   example 1: sprintf("%01.2f", 123.1);
++  //   returns 1: 123.10
++  //   example 2: sprintf("[%10s]", 'monkey');
++  //   returns 2: '[    monkey]'
++  //   example 3: sprintf("[%'#10s]", 'monkey');
++  //   returns 3: '[####monkey]'
++  //   example 4: sprintf("%d", 123456789012345);
++  //   returns 4: '123456789012345'
++  //   example 5: sprintf('%-03s', 'E');
++  //   returns 5: 'E00'
++
++  var regex = /%%|%(\d+\$)?([\-+\'#0 ]*)(\*\d+\$|\*|\d+)?(?:\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g;
++  var a = arguments;
++  var i = 0;
++  var format = a[i++];
++
++  // pad()
++  var pad = function(str, len, chr, leftJustify) {
++    if (!chr) {
++      chr = ' ';
++    }
++    var padding = (str.length >= len) ? '' : new Array(1 + len - str.length >>> 0)
++      .join(chr);
++    return leftJustify ? str + padding : padding + str;
++  };
++
++  // justify()
++  var justify = function(value, prefix, leftJustify, minWidth, zeroPad, customPadChar) {
++    var diff = minWidth - value.length;
++    if (diff > 0) {
++      if (leftJustify || !zeroPad) {
++        value = pad(value, minWidth, customPadChar, leftJustify);
++      } else {
++        value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);
++      }
++    }
++    return value;
++  };
++
++  // formatBaseX()
++  var formatBaseX = function(value, base, prefix, leftJustify, minWidth, precision, zeroPad) {
++    // Note: casts negative numbers to positive ones
++    var number = value >>> 0;
++    prefix = (prefix && number && {
++      '2'  : '0b',
++      '8'  : '0',
++      '16' : '0x'
++    }[base]) || '';
++    value = prefix + pad(number.toString(base), precision || 0, '0', false);
++    return justify(value, prefix, leftJustify, minWidth, zeroPad);
++  };
++
++  // formatString()
++  var formatString = function(value, leftJustify, minWidth, precision, zeroPad, customPadChar) {
++    if (precision !== null && precision !== undefined) {
++      value = value.slice(0, precision);
++    }
++    return justify(value, '', leftJustify, minWidth, zeroPad, customPadChar);
++  };
++
++  // doFormat()
++  var doFormat = function(substring, valueIndex, flags, minWidth, precision, type) {
++    var number, prefix, method, textTransform, value;
++
++    if (substring === '%%') {
++      return '%';
++    }
++
++    // parse flags
++    var leftJustify = false;
++    var positivePrefix = '';
++    var zeroPad = false;
++    var prefixBaseX = false;
++    var customPadChar = ' ';
++    var flagsl = flags.length;
++    var j;
++    for (j = 0; flags && j < flagsl; j++) {
++      switch (flags.charAt(j)) {
++      case ' ':
++        positivePrefix = ' ';
++        break;
++      case '+':
++        positivePrefix = '+';
++        break;
++      case '-':
++        leftJustify = true;
++        break;
++      case "'":
++        customPadChar = flags.charAt(j + 1);
++        break;
++      case '0':
++        zeroPad = true;
++        customPadChar = '0';
++        break;
++      case '#':
++        prefixBaseX = true;
++        break;
++      }
++    }
++
++    // parameters may be null, undefined, empty-string or real valued
++    // we want to ignore null, undefined and empty-string values
++    if (!minWidth) {
++      minWidth = 0;
++    } else if (minWidth === '*') {
++      minWidth = +a[i++];
++    } else if (minWidth.charAt(0) === '*') {
++      minWidth = +a[minWidth.slice(1, -1)];
++    } else {
++      minWidth = +minWidth;
++    }
++
++    // Note: undocumented perl feature:
++    if (minWidth < 0) {
++      minWidth = -minWidth;
++      leftJustify = true;
++    }
++
++    if (!isFinite(minWidth)) {
++      throw new Error('sprintf: (minimum-)width must be finite');
++    }
++
++    if (!precision) {
++      precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type === 'd') ? 0 : undefined;
++    } else if (precision === '*') {
++      precision = +a[i++];
++    } else if (precision.charAt(0) === '*') {
++      precision = +a[precision.slice(1, -1)];
++    } else {
++      precision = +precision;
++    }
++
++    // grab value using valueIndex if required?
++    value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];
++
++    switch (type) {
++    case 's':
++      return formatString(String(value), leftJustify, minWidth, precision, zeroPad, customPadChar);
++    case 'c':
++      return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad);
++    case 'b':
++      return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'o':
++      return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'x':
++      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'X':
++      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
++        .toUpperCase();
++    case 'u':
++      return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'i':
++    case 'd':
++      number = +value || 0;
++      // Plain Math.round doesn't just truncate
++      number = Math.round(number - number % 1);
++      prefix = number < 0 ? '-' : positivePrefix;
++      value = prefix + pad(String(Math.abs(number)), precision, '0', false);
++      return justify(value, prefix, leftJustify, minWidth, zeroPad);
++    case 'e':
++    case 'E':
++    case 'f': // Should handle locales (as per setlocale)
++    case 'F':
++    case 'g':
++    case 'G':
++      number = +value;
++      prefix = number < 0 ? '-' : positivePrefix;
++      method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];
++      textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];
++      value = prefix + Math.abs(number)[method](precision);
++      return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]();
++    default:
++      return substring;
++    }
++  };
++
++  return format.replace(regex, doFormat);
++}
+Index: ../trunk-jpl/externalpackages/javascript/src/jquery.min.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/jquery.min.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/jquery.min.js	(revision 19790)
+@@ -0,0 +1,4 @@
++/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
++!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''><option selected=''></option></select>",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
++if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
++},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
+Index: ../trunk-jpl/externalpackages/javascript/compressor/yuicompressor-2.4.8.jar
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/externalpackages/javascript/compressor/yuicompressor-2.4.8.jar
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19790-19791.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19790-19791.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19790-19791.diff	(revision 20498)
@@ -0,0 +1,1573 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19790)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19791)
+@@ -70,6 +70,7 @@
+ <script type="text/javascript" src="../../src/m/solvers/issmgslsolver.js"></script>
+ <script type="text/javascript" src="../../src/m/io/fileptr.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/solve.js"></script>
++<script type="text/javascript" src="../../src/m/inversions/marshallcostfunctions.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/marshall.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/WriteData.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+@@ -82,8 +83,8 @@
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+ <script type="text/javascript" src="../../src/c/main/issm.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
+-<script src="https://raw.githubusercontent.com/toji/gl-matrix/master/dist/gl-matrix-min.js"></script>
++<script type="text/javascript" src="../../externalpackages/javascript/src/jquery.min.js"></script>
++<script type="text/javascript" src="../../externalpackages/javascript/src/gl-matrix-min.js"></script>
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+@@ -95,7 +96,7 @@
+ 	setmask(md,'all','');
+ 	parameterize(md);
+ 	setflowequation(md,'SSA','all');
+-	md=solve(md,StressbalanceSolutionEnum());
++	md=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
+ 
+ 	/*plotmodel(md,'data',md.initialization.vel,'colorbar','on','data',md.initialization.vx,
+ 	  'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 19790)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 19791)
+@@ -13,11 +13,11 @@
+ 		//This is a object field, construct enum and data
+ 		obj       = options.getfieldvalue('object');
+ 		fieldname = options.getfieldvalue('fieldname');
+-		classname = options.getfieldvalue('class',obj.classname());
+ 		if (options.exist('enum')){
+ 			enumm = options.getfieldvalue('enum');
+ 		}
+ 		else{
++			classname = options.getfieldvalue('class',obj.classname());
+ 			enumm = BuildEnum(classname  + '_' + fieldname);
+ 		}
+ 		data  = obj[fieldname];
+@@ -120,10 +120,10 @@
+ 		if(IsArray(data[0]))s[1]=data[0].length;
+ 
+ 		//if matrix = NaN, then do not write anything
+-		if (s[0]==1 & s[1]==1 & isNan(data)){
++		if (s[0]==1 & s[1]==1 & isNaN(data)){
+ 			s[0]=0; s[1]=0;
+ 		}
+-		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++		if (s[0]==1 & s[1]==1 & isNaN(data[0])){
+ 			s[0]=0; s[1]=0;
+ 		}
+ 
+@@ -146,10 +146,10 @@
+ 		if(IsArray(data[0]))s[1]=data[0].length;
+ 
+ 		//if matrix = NaN, then do not write anything
+-		if (s[0]==1 & s[1]==1 & isNan(data)){
++		if (s[0]==1 & s[1]==1 & isNaN(data)){
+ 			s[0]=0; s[1]=0;
+ 		}
+-		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++		if (s[0]==1 & s[1]==1 & isNaN(data[0])){
+ 			s[0]=0; s[1]=0;
+ 		}
+ 
+@@ -173,10 +173,10 @@
+ 		if(IsArray(data[0]))s[1]=data[0].length;
+ 
+ 		//if matrix = NaN, then do not write anything
+-		if (s[0]==1 & s[1]==1 & isNan(data)){
++		if (s[0]==1 & s[1]==1 & isNaN(data)){
+ 			s[0]=0; s[1]=0;
+ 		}
+-		if (s[0]==1 & s[1]==1 & isNan(data[0])){
++		if (s[0]==1 & s[1]==1 & isNaN(data[0])){
+ 			s[0]=0; s[1]=0;
+ 		}
+ 
+@@ -278,7 +278,7 @@
+ 	}
+ 
+ 	//take first letter of string and make it uppercase: 
+-	string = string.charAt(0).toUpperCase() + this.slice(1);
++	string = string.charAt(0).toUpperCase() + string.slice(1);
+ 
+ 	//Get Enum
+ 	enumm=StringToEnum(string); 
+Index: ../trunk-jpl/src/m/solve/marshall.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/marshall.js	(revision 19790)
++++ ../trunk-jpl/src/m/solve/marshall.js	(revision 19791)
+@@ -27,7 +27,6 @@
+ 		if(typeof md[field] == 'function'){
+ 			continue;
+ 		}
+-		console.log(field);
+ 
+ 		//Marshall current object
+ 		md[field].marshall(md,fid);
+@@ -35,6 +34,5 @@
+ 
+ 	//Last, write MaximumNumberOfEnum+1 to make sure that the binary file is not corrupt
+ 	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum()+1,'data',true,'format','Boolean');
+-
+ 	return fid;
+ }
+Index: ../trunk-jpl/src/m/inversions/marshallcostfunctions.js
+===================================================================
+--- ../trunk-jpl/src/m/inversions/marshallcostfunctions.js	(revision 0)
++++ ../trunk-jpl/src/m/inversions/marshallcostfunctions.js	(revision 19791)
+@@ -0,0 +1,19 @@
++function  marshallcostfunctions(cost_functions){
++	for(i=0;i<cost_functions.length;i++){
++		if(cost_functions[i]==101) data[i]=SurfaceAbsVelMisfitEnum();
++		if(cost_functions[i]==102) data[i]=SurfaceRelVelMisfitEnum();
++		if(cost_functions[i]==103) data[i]=SurfaceLogVelMisfitEnum();
++		if(cost_functions[i]==104) data[i]=SurfaceLogVxVyMisfitEnum();
++		if(cost_functions[i]==105) data[i]=SurfaceAverageVelMisfitEnum();
++		if(cost_functions[i]==201) data[i]=ThicknessAbsMisfitEnum();
++		if(cost_functions[i]==501) data[i]=DragCoefficientAbsGradientEnum();
++		if(cost_functions[i]==502) data[i]=RheologyBbarAbsGradientEnum();
++		if(cost_functions[i]==503) data[i]=ThicknessAbsGradientEnum();
++		if(cost_functions[i]==504) data[i]=ThicknessAlongGradientEnum();
++		if(cost_functions[i]==505) data[i]=ThicknessAcrossGradientEnum();
++		if(cost_functions[i]==506) data[i]=BalancethicknessMisfitEnum();
++		if(cost_functions[i]==507) data[i]=RheologyBAbsGradientEnum();
++		if(cost_functions[i]==601) data[i]=SurfaceAbsMisfitEnum();
++	}
++	return data;
++}
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19791)
+@@ -14,6 +14,9 @@
+ 
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "outputdefinition";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			checkfield(md,'fieldname','outputdefinition.definitions','cell',1);
+@@ -23,6 +26,18 @@
+ 			}
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++		enums=NewArrayFill(this.definitions.length,0);
++		for (var i=0;i<this.definitions.length;i++){
++			this.definitions[i].marshall(md,fid);
++			classdefinition=this.definitions[i].classname();
++			classdefinition=classdefinition.charAt(0).tuUpperCase() + classdefinition.slice(1); //so it matches our enums definitions.
++			enums[i]=StringToEnum(classdefinition);
++		}
++		enums=ArrayUnique(enums);
++		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.definitions                 = {};
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19791)
+@@ -72,6 +72,9 @@
+ 
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "stressbalance";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			//Early return
+@@ -132,6 +135,55 @@
+ 				checkfield(md,'fieldname','stressbalance.FSreconditioning','>',0);
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3);
++
++			yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvz','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','restol','format','Double');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','reltol','format','Double');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','abstol','format','Double','scale',1./yts);
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','isnewton','format','Integer');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','FSreconditioning','format','Double');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','viscosity_overshoot','format','Double');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','maxiter','format','Integer');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','shelf_dampening','format','Integer');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','penalty_factor','format','Double');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
++			WriteData(fid,'object',this,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
++
++			lx=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lx[i]=this.loadingforce[i][0];
++			ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
++			lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
++
++			WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
++			WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
++			WriteData(fid,'data',lz,'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}			
++			WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum,'format','StringArray');
++		}//}}}
++		this.defaultoutputs = function(md){ // {{{
++
++			var list;
++			if (md.mesh.dimension() == 3) list = ['Vx','Vy','Vz','Vel','Pressure'];
++			else if (md.mesh.dimension()==2) list = ['Vx','Vy','Vel','Pressure'];
++			else throw Error('mesh type not supported yet');
++			return list;
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcvx                  = NaN;
+Index: ../trunk-jpl/src/m/classes/steadystate.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/steadystate.js	(revision 19791)
+@@ -27,6 +27,10 @@
+ 		fielddisplay(this,'requested_outputs','additional requested outputs');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "steadystate";
++
++	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses) {// {{{
+ 
+ 		//Early return
+@@ -41,6 +45,30 @@
+ 			md.checkmessage('for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!');
+ 		}
+ 	} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','reltol','format','Double');
++			WriteData(fid,'object',this,'fieldname','maxiter','format','Integer');
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}
++			WriteData(fid,'data',outputs,'enum',SteadystateRequestedOutputsEnum,'format','StringArray');
++		}//}}}
++		this.defaultoutputs = function(md) { //{{{
++
++			var list=[];
++
++			for (var i=0;i<md.stressbalance.defaultoutputs().length;i++)list.push(md.stressbalance.defaultoutputs()[i]);
++			for (var i=0;i<md.thermal.defaultoutputs().length;i++)list.push(md.thermal.defaultoutputs()[i]);
++
++			return list;
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 19791)
+@@ -89,6 +89,9 @@
+ 		*/
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "qmu";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			///Early return
+@@ -96,6 +99,24 @@
+ 			else md.checkmessage('qmu runs not supported yet!');
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','isdakota','format','Boolean');
++			if (!this.isdakota){
++				WriteData(fid,'data',false,'enum',QmuMassFluxSegmentsPresentEnum,'format','Boolean');
++				return; 
++			}
++			WriteData(fid,'object',this,'fieldname','partition','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',this,'fieldname','numberofpartitions','format','Integer');
++			WriteData(fid,'object',this,'fieldname','numberofresponses','format','Integer');
++			WriteData(fid,'object',this,'fieldname','variabledescriptors','format','StringArray');
++			WriteData(fid,'object',this,'fieldname','responsedescriptors','format','StringArray');
++			if (this.mass_flux_segments.length){
++				WriteData(fid,'data',this.mass_flux_segments,'enum',MassFluxSegmentsEnum,'format','MatArray');
++				flag=true; 
++			}
++			else flag=false; 
++			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum,'format','Boolean');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19791)
+@@ -77,6 +77,9 @@
+ 			fielddisplay(this,'mantle_shear_modulus','Mantle shear modulus [Pa]');
+ 			fielddisplay(this,'mantle_density','Mantle density [g/cm^-3]');
+ 		} // }}}
++		this.classname = function() {// {{{
++			return "matice";
++		} // }}}
+ 		this.checkconsistency = function(md,solution,analyses) { // {{{
+ 			checkfield(md,'fieldname','materials.rho_ice','>',0);
+ 			checkfield(md,'fieldname','materials.rho_water','>',0);
+@@ -94,6 +97,28 @@
+ 			}
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'enum',MaterialsEnum(),'data',MaticeEnum(),'format','Integer');
++			WriteData(fid,'object',this,'class','materials','fieldname','rho_ice','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','rho_water','enum',MaterialsRhoSeawaterEnum(),'format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','rho_freshwater','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','mu_water','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','heatcapacity','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','latentheat','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','thermalconductivity','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','temperateiceconductivity','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','meltingpoint','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','beta','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','mixed_layer_capacity','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','thermal_exchange_velocity','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2);
++			WriteData(fid,'data',StringToEnum(this.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer');
++			WriteData(fid,'object',this,'class','materials','fieldname','lithosphere_shear_modulus','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3);
++			WriteData(fid,'object',this,'class','materials','fieldname','mantle_shear_modulus','format','Double');
++			WriteData(fid,'object',this,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.rho_ice                    = 0.;
+Index: ../trunk-jpl/src/m/classes/miscellaneous.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19791)
+@@ -16,10 +16,16 @@
+ 		fielddisplay(this,'dummy','empty field to store some data');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "miscellaneous";
++	}// }}}
+ 		this.checkconsistency= function(md,solution,analyses) {// {{{
+ 
+ 			checkfield(md,'fieldname','miscellaneous.name','empty',1);
+ 		}// }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','name','format','String');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.notes = '';
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19791)
+@@ -43,6 +43,9 @@
+ 			fielddisplay(this,"long","vertices longitude [degrees]");
+ 			fielddisplay(this,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)");
+ 		} //}}}
++		this.classname = function () { //{{{
++			return "mesh2d";
++		} //}}}
+ 		this.domaintype=function (){ // {{{
+ 			return '2Dhorizontal';
+ 		} // }}}
+@@ -74,6 +77,21 @@
+ 				break
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum('Domain' + this.domaintype()),'format','Integer');
++			WriteData(fid,'enum',DomainDimensionEnum(),'data',this.dimension(),'format','Integer');
++			WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(this.elementtype()),'format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','x','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','y','format','DoubleMat','mattype',1);
++			WriteData(fid,'enum',MeshZEnum(),'data',NewArrayFill(this.numberofvertices,0),'format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',this,'class','mesh','fieldname','numberofelements','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','numberofvertices','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
++		}//}}}
++
+ 	//properties 
+ 	// {{{
+ 		this.x                           = NaN;
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19791)
+@@ -48,6 +48,9 @@
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "thermal";
++	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses){ // {{{
+ 
+ 		//Early return
+@@ -80,6 +83,32 @@
+ 		}
+ 		checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1);
+ 	} // }}} 
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','spctemperature','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'fieldname','penalty_threshold','format','Integer');
++			WriteData(fid,'object',this,'fieldname','stabilization','format','Integer');
++			WriteData(fid,'object',this,'fieldname','reltol','format','Double');
++			WriteData(fid,'object',this,'fieldname','maxiter','format','Integer');
++			WriteData(fid,'object',this,'fieldname','penalty_lock','format','Integer');
++			WriteData(fid,'object',this,'fieldname','penalty_factor','format','Double');
++			WriteData(fid,'object',this,'fieldname','isenthalpy','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isdynamicbasalspc','format','Boolean');
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}
++			WriteData(fid,'data',outputs,'enum',ThermalRequestedOutputsEnum(),'format','StringArray');
++        	}//}}}
++		this.defaultoutputs = function(md) { //{{{
++
++			if (this.isenthalpy) return ['Enthalpy','Temperature','Waterfraction','Watercolumn','BasalforcingsGroundediceMeltingRate'];
++			else return ['Temperature','BasalforcingsGroundediceMeltingRate'];
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19791)
+@@ -19,6 +19,9 @@
+ 		fielddisplay(this,'cross_section_shape','1: square-edged (default). 2: elliptical.  See iedge in GiaDeflectionCore');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "gia";
++	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses) { // {{{
+ 
+ 		if(!ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1))return;
+@@ -40,6 +43,11 @@
+ 			}
+ 		}
+ 	} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','mantle_viscosity','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','lithosphere_thickness','format','DoubleMat','mattype',1,'scale',Math.pow(10,3)); //from km to m
++			WriteData(fid,'object',this,'fieldname','cross_section_shape','format','Integer');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/settings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/settings.js	(revision 19791)
+@@ -32,6 +32,10 @@
+ 		console.log(sprintf('   settings class echo:'));
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "settings";
++
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { // {{{
+ 
+ 			checkfield(md,'fieldname','settings.results_on_nodes','numel',[1],'values',[0, 1]);
+@@ -41,6 +45,15 @@
+ 			checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0);
+ 			checkfield(md,'fieldname','settings.waitonlock','numel',[1]);
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','results_on_nodes','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','io_gather','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','lowmem','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','output_frequency','format','Integer');
++			WriteData(fid,'object',this,'fieldname','recording_frequency','format','Integer');
++			if (this.waitonlock>0) WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',true,'format','Boolean');
++			else WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',false,'format','Boolean');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.results_on_nodes    = 0;
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19791)
+@@ -19,6 +19,10 @@
+ 		fielddisplay(this,"stabilization','0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "balancethickness";
++
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses){ // {{{
+ 			//Early return
+ 			if (solution!=BalancethicknessSolutionEnum())return;
+@@ -28,6 +32,16 @@
+ 			checkfield(md,'fieldname','balancethickness.stabilization','size',[1, 1],'values',[0, 1, 2 ,3]);
+ 			//checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices ,1],'NaN',1,'>=',0);
+ 		} //}}}
++		this.marshall=function(md,fid) { //{{{
++
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'object',this,'fieldname','spcthickness','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','thickening_rate','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',this,'fieldname','stabilization','format','Integer');
++			WriteData(fid,'object',this,'fieldname','omega','format','DoubleMat','mattype',1);
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcthickness      = NaN;
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19791)
+@@ -20,6 +20,9 @@
+ 		fielddisplay(this,'meltingrate','melting rate at given location [m/a]');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "calving";
++	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses) { // {{{
+ 		//Early return
+ 		if (solution!=TransientSolutionEnum() | md.transient.iscalving==0) return;
+@@ -29,6 +32,14 @@
+ 		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+ 		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+ 	} //}}}
++		this.marshall=function(md,fid) { //{{{
++			yts=365.0*24.0*3600.0;
++			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
++			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',this.stabilization,'format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
++			WriteData(fid,'object',this,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/rifts.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/rifts.js	(revision 19791)
+@@ -7,6 +7,9 @@
+ 	//methods
+ 	this.setdefaultparameters = function(){// {{{
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "rifts";
++	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   rifts class echo:'));
+ 		fielddisplay(this,'riftstruct','structure containing all rift information (vertices coordinates, segments, type of melange, ...)');
+@@ -41,6 +44,38 @@
+ 				if (!isNaN(this.riftstruct)) md.checkmessage('riftstruct should be NaN since numrifts is 0!');
+ 			}
+ 		} //}}}
++		this.marshall=function(md,fid) { //{{{
++
++			//Process rift info
++			if ((this.riftstruct.length==0) | isNaN(this.riftstruct)){
++				numrifts=0;
++			}
++			else{
++				numrifts=this.riftstruct.length;
++			}
++			var numpairs=0;
++			for (var i=0;i<numrifts;i++){
++				numpairs=numpairs+this.riftstruct[i].penaltypairs.length;
++			}
++
++			// 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
++			data=Create2DArray(numpairs,12);
++			count=0;
++			for (var i=0;i<numrifts;i++){
++				numpairsforthisrift=this.riftstruct[i].penaltypairs.length;
++				for(var j=0;j<numpairsforthisrift;j++){
++					for(var k=0;k<7;k++)data[count+j][k]=this.riftstruct[i].penaltypairs;
++					data[count+j][7]=this.riftstruct[i].fill;
++					data[count+j][8]=this.riftstruct[i].friction;
++					data[count+j][9]=this.riftstruct[i].fraction;
++					data[count+j][10]=this.riftstruct[i].fractionincrement;
++					data[count+j][11]=this.riftstruct[i].state;
++					count+=numpairsforthisrift;
++				}
++			}
++			WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer');
++			WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.riftstruct     = NaN;
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19791)
+@@ -38,6 +38,10 @@
+ 
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "timestepping";
++
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 			
+ 			checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1);
+@@ -50,6 +54,20 @@
+ 				md.checkmessage('timestepping.final_time should be larger than timestepping.start_time');
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			var scale;
++			if (this.in_years) scale = 365.0*24.0*3600.0;
++			else scale = 1.;
++			
++			WriteData(fid,'object',this,'fieldname','start_time','format','Double','scale',scale);
++			WriteData(fid,'object',this,'fieldname','final_time','format','Double','scale',scale);
++			WriteData(fid,'object',this,'fieldname','time_step','format','Double','scale',scale);
++			WriteData(fid,'object',this,'fieldname','time_adapt','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','cfl_coefficient','format','Double');
++			WriteData(fid,'object',this,'fieldname','interp_forcings','format','Boolean');
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.start_time      = 0.;
+Index: ../trunk-jpl/src/m/classes/constants.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/constants.js	(revision 19791)
+@@ -28,6 +28,10 @@
+ 			fielddisplay(this,'referencetemperature','reference temperature used in the enthalpy model [K]');
+ 
+ 		} //}}}
++		this.classname = function () { //{{{
++			return "constants";
++
++		} //}}}
+ 		this.checkconsistency = function(md,solution,analyses) {//% {{{
+ 
+ 			checkfield(md,'fieldname','constants.g','>=',0,'size',[1,1]); //We allow 0 for validation tests
+@@ -36,6 +40,11 @@
+ 			checkfield(md,'fieldname','constants.referencetemperature','size',[1,1]);
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','g','format','Double');
++			WriteData(fid,'object',this,'fieldname','yts','format','Double');
++			WriteData(fid,'object',this,'fieldname','referencetemperature','format','Double');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.g                    = 0.;
+Index: ../trunk-jpl/src/m/classes/debug.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/debug.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/debug.js	(revision 19791)
+@@ -7,6 +7,9 @@
+ 	//methods
+ 	this.setdefaultparameters = function(){// {{{
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "debug";
++	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   debug parameters:'));
+ 		console.log(sprintf('   debug parameters:'));
+@@ -16,6 +19,9 @@
+ 		fielddisplay(this,'profiling','enables profiling (memory, flops, time)');
+ 
+ 	}// }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','profiling','format','Boolean');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.valgrind = false;
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19791)
+@@ -80,6 +80,33 @@
+ 				}
+ 			}
+ 		} //}}}
++		this.marshall=function(md,fid) { //{{{
++
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'data',this.vx,'format','DoubleMat','mattype',1,'enum',VxEnum,'scale',1./yts);
++			WriteData(fid,'data',this.vy,'format','DoubleMat','mattype',1,'enum',VyEnum,'scale',1./yts);
++			WriteData(fid,'data',this.vz,'format','DoubleMat','mattype',1,'enum',VzEnum,'scale',1./yts);
++			WriteData(fid,'data',this.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum);
++			WriteData(fid,'data',this.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum);
++			WriteData(fid,'data',this.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
++			WriteData(fid,'data',this.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum);
++			WriteData(fid,'data',this.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum);
++			WriteData(fid,'data',this.epl_thickness,'format','DoubleMat','mattype',1,'enum',HydrologydcEplThicknessEnum);
++			WriteData(fid,'data',this.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum);
++
++			if (md.thermal.isenthalpy){
++				tpmp=NewArrayFill(md.mesh.numberofvertices,0);
++				for (var i=0;i<md.mesh.numberofvertices;i++) tpmp[i]= md.materials.meltingpoint - md.materials.beta*md.initialization.pressure[i];
++				enthalpy=NewArrayFill(md.mesh.numberofvertices,0); 
++				for (var i=0;i<md.mesh.numberofvertices;i++)enthalpy[i] = md.materials.heatcapacity*(md.initialization.temperature[i]-md.constants.referencetemperature);
++				
++				for (var i=0;i<md.mesh.numberofvertices;i++)if(md.initialization.temperature[i]>=tpmp[i]){
++					enthalpy[i] = md.materials.heatcapacity*(tpmp[i] - md.constants.referencetemperature) + md.materials.latentheat*md.initialization.waterfraction[i];
++				}
++				WriteData(fid,'data',enthalpy,'format','DoubleMat','mattype',1,'enum',EnthalpyEnum());
++			}
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.vx            = NaN;
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19791)
+@@ -12,6 +12,12 @@
+ 		fielddisplay(this,'mass_balance','surface mass balance [m/yr ice eq]');
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 	} // }}}
++	this.defaultoutputs = function(){ // {{{
++		return '';
++	}//}}}
++this.classname = function(){ // {{{
++	return "SMBforcing";
++} // }}}
+ 		this.initialize = function(md) {// {{{
+ 
+ 			if (self.mass_balance === NaN){
+@@ -31,6 +37,24 @@
+ 			checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',SmbEnum(),'data',SMBforcingEnum(),'format','Integer');
++			WriteData(fid,'object',this,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
++			
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++
++		}//}}}
+ 	//properties 
+ 	this.mass_balance = NaN;
+ 	this.requested_outputs      = [''];
+Index: ../trunk-jpl/src/m/classes/mask.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/mask.js	(revision 19791)
+@@ -18,6 +18,9 @@
+ 			fielddisplay(this,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");
+ 			fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
+ 		} //}}}
++		this.classname = function () { //{{{
++			return "mask";
++		} //}}}
+ 		this.checkconsistency = function(md,solution,analyses){ //{{{
+ 
+ 			checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]);
+@@ -47,4 +50,28 @@
+ 				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
++
++			// get mask of vertices of elements with ice
++			isice= NewArrayFill(md.mesh.numberofvertices,0);
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
++			
++			vlist = NewArrayFill(md.mesh.numberofvertices,0);
++			var pos=[];
++			for(var i=0;i<md.mesh.numberofelements;i++){
++				var sum=0;
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					sum+=isice[md.mesh.elements[i][j]-1];
++				}
++				if(sum>0)pos.push(i);
++			}
++			for(var i=0;i<pos.length;i++){
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					vlist[md.mesh.elements[pos[i]][j]-1]=1;
++				}
++			}
++			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++		}//}}}
+ }
+Index: ../trunk-jpl/src/m/classes/verbose.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/verbose.js	(revision 19791)
+@@ -42,6 +42,26 @@
+ 		this.checkconsistency = function(md,solution,analyses){ // {{{
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'data',this.VerboseToBinary(),'enum',VerboseEnum(),'format','Integer');
++		}//}}}
++		this.VerboseToBinary = function () { //{{{
++
++			//BEGINVERB2BIN
++			var binary=0;
++			if (verbose.mprocessor) binary=Math.bitOr(binary1); 
++			if (verbose.module) binary=Math.bitOr(binary2); 
++			if (verbose.solution) binary=Math.bitOr(binary4); 
++			if (verbose.solver) binary=Math.bitOr(binary8); 
++			if (verbose.convergence) binary=Math.bitOr(binary16); 
++			if (verbose.control) binary=Math.bitOr(binary32); 
++			if (verbose.qmu) binary=Math.bitOr(binary64); 
++			if (verbose.autodiff) binary=Math.bitOr(binary128); 
++			if (verbose.smb) binary=Math.bitOr(binary256); 
++			//ENDVERB2BIN
++			return binary;
++
++		} //}}}
+ 	//properties 
+ 	// {{{
+ 	//BEGINFIELDS
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19791)
+@@ -37,6 +37,9 @@
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "masstransport";
++	}// }}}
+ 		this.checkconsistency = function (md,solution,analyses){  // {{{
+ 
+ 			//Early return
+@@ -50,7 +53,32 @@
+ 			checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1);
+ 
+ 		} // }}}
+-	//properties 
++		this.marshall=function(md,fid) { //{{{
++
++			yts=365.*24.*3600.;
++
++			WriteData(fid,'object',this,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'fieldname','isfreesurface','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','min_thickness','format','Double');
++			WriteData(fid,'data',StringToEnum(this.hydrostatic_adjustment),'format','Integer','enum',MasstransportHydrostaticAdjustmentEnum());
++			WriteData(fid,'object',this,'fieldname','stabilization','format','Integer');
++			WriteData(fid,'object',this,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','penalty_factor','format','Double');
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}
++			WriteData(fid,'data',outputs,'enum',MasstransportRequestedOutputsEnum,'format','StringArray');
++		}//}}}
++		this.defaultoutputs = function(md) { //{{{
++			return ['Thickness','Surface','Base'];
++		}//}}}
++//properties 
+ 	// {{{
+ 
+ 	this.spcthickness           = NaN;
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19791)
+@@ -15,6 +15,9 @@
+ 			fielddisplay(this,'base','ice base elevation [m]');
+ 			fielddisplay(this,'bed','bed elevation [m]');
+ 		} //}}}
++		this.classname = function () { //{{{
++			return 'geometry';
++		} //}}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			if ((solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum())){
+@@ -35,6 +38,13 @@
+ 				}
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'data',this.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum());
++			WriteData(fid,'data',this.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'data',this.base,'format','DoubleMat','mattype',1,'enum',BaseEnum());
++			WriteData(fid,'data',this.bed,'format','DoubleMat','mattype',1,'enum',BedEnum());
++			WriteData(fid,'object',this,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.surface           = NaN;
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19791)
+@@ -11,13 +11,17 @@
+ 		self.stabilization=1;
+ 
+ 	}// }}}
+-	this.disp= function(){// {{{
++		this.disp= function(){// {{{
+ 
+ 		console.log(sprintf('   hydrologyshreve solution parameters:'));
+ 		fielddisplay(this,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]');
+ 		fielddisplay(this,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');
+ 
+ 	}// }}}
++		this.classname= function(){// {{{
++			return "hydrologyshreve";
++
++		}// }}}
+ 	this.type= function(){// {{{
+ 
+ 		return "hydrologyshreve";
+@@ -31,6 +35,11 @@
+ 			checkfield(md,'fieldname','hydrology.stabilization','>=',0);
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
++			WriteData(fid,'object',this,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'fieldname','stabilization','format','Double');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcwatercolumn = NaN;
+Index: ../trunk-jpl/src/m/classes/inversion.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/inversion.js	(revision 19791)
+@@ -74,6 +74,9 @@
+ 		console.log('   503: ThicknessAbsGradient');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "inversion";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			//Early return
+@@ -112,6 +115,46 @@
+ 				checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',InversionTypeEnum(),'data',0,'format','Integer');
++			WriteData(fid,'object',this,'fieldname','iscontrol','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','incomplete_adjoint','format','Boolean');
++			if (!this.iscontrol) return;
++			WriteData(fid,'object',this,'fieldname','nsteps','format','Integer');
++			WriteData(fid,'object',this,'fieldname','maxiter_per_step','format','IntMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','gradient_scaling','format','DoubleMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','cost_function_threshold','format','Double');
++			WriteData(fid,'object',this,'fieldname','min_parameters','format','DoubleMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','max_parameters','format','DoubleMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','step_threshold','format','DoubleMat','mattype',3);
++			WriteData(fid,'object',this,'fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',this,'fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',this,'fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++			if(this.thickness_obs.length==md.mesh.numberofelements) mattype=2;
++			else mattype=1;
++			WriteData(fid,'object',this,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
++			WriteData(fid,'object',this,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',mattype);
++
++
++			//process control parameters
++			num_control_parameters=this.control_parameters.length;
++			data=NewArrayFill(num_control_parameters,0);
++			for (var i=0;i<num_control_parameters;i++){
++				data[i]=StringToEnum(this.control_parameters[i]);
++			}
++			WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3);
++			WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer');
++
++			//process cost functions
++			num_cost_functions=this.cost_functions[0].length;
++			data=marshallcostfunctions(this.cost_functions);
++			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
++			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19791)
+@@ -16,6 +16,9 @@
+ 		fielddisplay(this,'geothermalflux','geothermal heat flux [W/m^2]');
+ 
+ 	} // }}}
++	this.classname = function(){ // {{{
++		return "basalforcings";
++	} // }}}
+ 		this.initialize = function (md){ // {{{
+ 
+ 			if (this.groundedice_melting_rate === NaN){
+@@ -50,6 +53,15 @@
+ 				}
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',BasalforcingsEnum(),'data',FloatingMeltRateEnum(),'format','Integer');
++			WriteData(fid,'object',this,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',this,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',this,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		}//}}}
+ 	//properties
+ 	//{{{
+ 	this.groundedice_melting_rate  = NaN;
+Index: ../trunk-jpl/src/m/classes/flowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/flowequation.js	(revision 19791)
+@@ -33,6 +33,10 @@
+ 		fielddisplay(this,'borderFS',"vertices on FS' border (for tiling)");
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "flowequation";
++
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) {//{{{
+ 
+ 			//Early return
+@@ -85,6 +89,66 @@
+ 				}
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','isSIA','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isSSA','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isL1L2','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isHO','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isFS','format','Boolean');
++			WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(this.fe_SSA),'format','Integer');
++			WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(this.fe_HO) ,'format','Integer');
++			WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(this.fe_FS) ,'format','Integer');
++			WriteData(fid,'enum',AugmentedLagrangianREnum(),'data',this.augmented_lagrangian_r ,'format','Double');
++			WriteData(fid,'enum',AugmentedLagrangianRhopEnum(),'data',this.augmented_lagrangian_rhop ,'format','Double');
++			WriteData(fid,'enum',AugmentedLagrangianRlambdaEnum(),'data',this.augmented_lagrangian_rlambda ,'format','Double');
++			WriteData(fid,'enum',AugmentedLagrangianRholambdaEnum(),'data',this.augmented_lagrangian_rholambda ,'format','Double');
++			WriteData(fid,'enum',AugmentedLagrangianThetaEnum() ,'data',this.XTH_theta ,'format','Double');
++			WriteData(fid,'object',this,'fieldname','borderSSA','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','borderHO','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','borderFS','format','DoubleMat','mattype',1);
++
++			//convert approximations to enums
++			data=this.vertex_equation;
++			
++			//some optimization: 
++			noneap=NoneApproximationEnum();
++			siaap=SIAApproximationEnum();
++			ssaap=SSAApproximationEnum();
++			l1l2ap=L1L2ApproximationEnum();
++			hoap=HOApproximationEnum();
++			fsap=FSApproximationEnum();
++			ssahoap=SSAHOApproximationEnum();
++			hofsaap=HOFSApproximationEnum();
++			ssafsap=SSAFSApproximationEnum();
++
++			for(var i=0;i<data.length;i++){
++				if(data[i]==0)data[i]=nonap;
++				if(data[i]==1) data[i]=siaap;
++				if(data[i]==2) data[i]=ssaap;
++				if(data[i]==3) data[i]=l1l2ap;
++				if(data[i]==4) data[i]=hoap;
++				if(data[i]==5) data[i]=fsap;
++				if(data[i]==6) data[i]=ssahoap;
++				if(data[i]==7) data[i]=hofsaap;
++				if(data[i]==8) data[i]=ssafsap;
++			}
++			WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1);
++
++			data=this.element_equation;
++			for(var i=0;i<data.length;i++){
++				if(data[i]==0) data[i]=nonap;
++				if(data[i]==1) data[i]=siaap;
++				if(data[i]==2) data[i]=ssaap;
++				if(data[i]==3) data[i]=l1l2ap;
++				if(data[i]==4) data[i]=hoap;
++				if(data[i]==5) data[i]=fsap;
++				if(data[i]==6) data[i]=ssahoap;
++				if(data[i]==7) data[i]=ssafsap;
++				if(data[i]==8) data[i]=hofsaap;
++			}
++			WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.isSIA                          = 0;
+Index: ../trunk-jpl/src/m/classes/groundingline.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/groundingline.js	(revision 19791)
+@@ -16,6 +16,9 @@
+ 
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "groundingline";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) {// {{{
+ 
+ 			checkfield(md,'fieldname','groundingline.migration','values',['None', 'AggressiveMigration', 'SoftMigration', 'SubelementMigration', 'SubelementMigration2', 'Contact', 'None', 'GroundingOnly']);
+@@ -36,6 +39,9 @@
+ 				}
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'data',StringToEnum(this.migration),'enum',GroundinglineMigrationEnum(),'format','Integer');
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.migration    = '';
+Index: ../trunk-jpl/src/m/classes/transient.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/transient.js	(revision 19791)
+@@ -41,6 +41,9 @@
+ 
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "transient";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { // {{{
+ 
+ 			//Early return
+@@ -58,6 +61,32 @@
+ 			checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 ,1]);
+ 			checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','issmb','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','ismasstransport','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isstressbalance','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isthermal','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isgroundingline','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isgia','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isdamageevolution','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs());
++				}
++			}			
++			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum,'format','StringArray');
++		}//}}}
++		this.defaultoutputs = function(md) { //{{{
++			if(this.issmb)return ['SmbMassBalance'];
++			else return [];
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19791)
+@@ -61,6 +61,9 @@
+ 			fielddisplay(this,'requested_outputs','additional outputs requested');
+ 		}
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "damage";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 			
+ 			checkfield(md,'fieldname','damage.isdamage','values',[1,0]);
+@@ -88,6 +91,47 @@
+ 				}
+ 			}
+ 		} //}}}
++		this.marshall=function(md,fid) { //{{{
++		
++			WriteData(fid,'object',this,'fieldname','isdamage','format','Boolean');
++			if (this.isdamage){
++				WriteData(fid,'object',this,'fieldname','law','format','Integer');
++				WriteData(fid,'object',this,'fieldname','D','format','DoubleMat','mattype',1);
++				WriteData(fid,'object',this,'fieldname','spcdamage','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++				WriteData(fid,'object',this,'fieldname','max_damage','format','Double');
++
++				WriteData(fid,'object',this,'fieldname','stabilization','format','Integer');
++				WriteData(fid,'object',this,'fieldname','maxiter','format','Integer');
++				WriteData(fid,'enum',DamageElementinterpEnum(),'data',StringToEnum(this.elementinterp),'format','Integer');
++				WriteData(fid,'object',this,'fieldname','stress_threshold','format','Double');
++				WriteData(fid,'object',this,'fieldname','kappa','format','Double');
++				WriteData(fid,'object',this,'fieldname','c1','format','Double');
++				WriteData(fid,'object',this,'fieldname','c2','format','Double');
++				WriteData(fid,'object',this,'fieldname','c3','format','Double');
++				WriteData(fid,'object',this,'fieldname','c4','format','Double');
++				WriteData(fid,'object',this,'fieldname','healing','format','Double');
++				WriteData(fid,'object',this,'fieldname','equiv_stress','format','Integer');
++			}
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					outputs.push(this.defaultoutputs(md));
++				}
++			}
++			if (this.isdamage){
++				WriteData(fid,'data',outputs,'enum',DamageEvolutionRequestedOutputsEnum,'format','StringArray');
++			}
++
++		}//}}}
++		this.defaultoutputs = function(md){ //{{{
++
++			if (md.domaintype() == '2Dhorizontal') return 'DamageDbar';
++			else return 'DamageD';
++
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.isdamage            = 0;
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19791)
+@@ -14,6 +14,9 @@
+ 		fielddisplay(this,'p','p exponent');
+ 		fielddisplay(this,'q','q exponent');
+ 	} // }}}
++	this.classname= function (){// {{{
++		return "friction";
++	} // }}}
+ 		this.checkconsistency = function(md,solution,analyses){ //{{{
+ 
+ 			//Early return
+@@ -25,6 +28,17 @@
+ 			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements ,1]);
+ 
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			var yts=365.0*24.0*3600.0;
++
++			WriteData(fid,'enum',FrictionLawEnum,'data',1,'format','Integer');
++			WriteData(fid,'object',this,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			//WriteData(fid,'object',this,'fieldname','coefficient','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'fieldname','p','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',this,'fieldname','q','format','DoubleMat','mattype',2);
++			
++
++		}//}}}
+ 	//properties 
+ 	//{{{
+ 	this.coefficient = NaN;
+Index: ../trunk-jpl/src/m/classes/autodiff.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.js	(revision 19790)
++++ ../trunk-jpl/src/m/classes/autodiff.js	(revision 19791)
+@@ -30,6 +30,9 @@
+ 		fielddisplay(this,'gcTriggerMaxSize','free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize');
+ 
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "autodiff";
++	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses){ //{{{
+ 
+ 			//Early return 
+@@ -56,6 +59,155 @@
+ 				indep.checkconsistency(md,i,solution,analyses,this.driver);
+ 			}
+ 		} // }}}
++		this.marshall=function(md,fid) { //{{{
++
++			WriteData(fid,'object',this,'fieldname','isautodiff','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','driver','format','String');
++
++			//early return
++			if (!this.isautodiff){
++				WriteData(fid,'data',false,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean');
++				WriteData(fid,'data',false,'enum',AutodiffKeepEnum(),'format','Boolean');
++				return;
++			}
++
++			//buffer sizes {{{
++			WriteData(fid,'object',this,'fieldname','obufsize','format','Double');
++			WriteData(fid,'object',this,'fieldname','lbufsize','format','Double');
++			WriteData(fid,'object',this,'fieldname','cbufsize','format','Double');
++			WriteData(fid,'object',this,'fieldname','tbufsize','format','Double');
++			WriteData(fid,'object',this,'fieldname','gcTriggerRatio','format','Double');
++			WriteData(fid,'object',this,'fieldname','gcTriggerMaxSize','format','Double');
++			//}}}
++			//process dependent variables {{{
++			num_dependent_objects=this.dependents.length;
++			WriteData(fid,'data',num_dependent_objects,'enum',AutodiffNumDependentObjectsEnum(),'format','Integer');
++
++			if(num_dependent_objects){
++				var names=[];
++				types=NewArrayFill(num_dependent_objects,0);
++				indices=NewArrayFill(num_dependent_objects,0);
++
++				for (var i=0;i<num_dependent_objects;i++){
++					dep=this.dependents[i];
++
++					names.push(dep.name);
++					types[i]=dep.typetoscalar();
++					indices[i]=dep.index;
++				}
++				WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','StringArray');
++				WriteData(fid,'data',types,'enum',AutodiffDependentObjectTypesEnum(),'format','IntMat','mattype',3);
++				WriteData(fid,'data',indices,'enum',AutodiffDependentObjectIndicesEnum(),'format','IntMat','mattype',3);
++			}
++			//}}}
++			//process independent variables {{{
++			num_independent_objects=this.independents.length;
++			WriteData(fid,'data',num_independent_objects,'enum',AutodiffNumIndependentObjectsEnum(),'format','Integer');
++
++			if(num_independent_objects){
++				names=NewArrayFill(num_independent_objects,0);
++				types=NewArrayFill(num_independent_objects,0);
++
++				for (var i=0;i<num_independent_objects;i++){
++					indep=this.independents[i];
++
++					names[i]=StringToEnum(indep.name);
++					types[i]=indep.typetoscalar();
++				}
++				WriteData(fid,'data',names,'enum',AutodiffIndependentObjectNamesEnum(),'format','IntMat','mattype',3);
++				WriteData(fid,'data',types,'enum',AutodiffIndependentObjectTypesEnum(),'format','IntMat','mattype',3);
++			}
++			//}}}
++			//if driver is fos_forward, build index:  {{{
++			if (this.driver == 'fos_forward'){
++				var index=0;
++
++				for (var i=0;i<num_independent_objects;i++){
++					indep=this.independents[i];
++					if (!(isNaN(indep.fos_forward_index))){
++						index=index+indep.fos_forward_index;
++						break;
++					}
++					else{
++						if (indep.type=='scalar') index=index+1;
++						else index=index+indep.nods;
++					}
++				}
++				index=index-1; //get c-index numbering going
++				WriteData(fid,'data',index,'enum',AutodiffFosForwardIndexEnum(),'format','Integer');
++			}
++			//}}}
++			//if driver is fos_reverse, build index:  {{{
++			if (this.driver  == 'fos_reverse'){
++				var index=0;
++
++				for (var i=0;i<num_dependent_objects;i++){
++					dep=this.dependents[i];
++					if (!(isNaN(dep.fos_reverse_index))){
++						index=index+dep.fos_reverse_index;
++						break;
++					}
++					else{
++						if (dep.type =='scalar') index=index+1;
++						else index=index+dep.nods;
++					}
++				}
++				index=index-1; //get c-index numbering going
++				WriteData(fid,'data',index,'enum',AutodiffFosReverseIndexEnum(),'format','Integer');
++			}
++			//}}}
++			//if driver is fov_forward, build indices:  {{{
++			if (this.driver == 'fov_forward'){
++				var indices=0;
++
++				for (var i=0;i<num_independent_objects;i++){
++					indep=this.independents[i];
++					if (!indep.fos_forward_index.length){
++						indices=indices+indep.fov_forward_indices;
++						break;
++					}
++					else{
++						if (indep.type =='scalar') indices=indices+1;
++						else indices=indices+indep.nods;
++					}
++				}
++				indices=indices-1; //get c-indices numbering going
++				WriteData(fid,'data',indices,'enum',AutodiffFovForwardIndicesEnum(),'format','IntMat','mattype',3);
++			}
++			//}}}
++			//deal with mass fluxes:  {{{
++			mass_flux_segments=[];
++			for (var i=0;i<num_dependent_objects;i++){
++				dep=this.dependents[i];
++				if (dep.name =='MassFlux'){
++					mass_flux_segments.push(dep.segments);
++				}
++			}
++			if (mass_flux_segments.length){
++				WriteData(fid,'data',mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
++				flag=true;
++			}
++			else flag=false;
++			WriteData(fid,'data',flag,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean');
++			//}}}
++			//deal with trace keep on: {{{
++			keep=false;
++
++			//From ADOLC userdoc: 
++			// The optional integer argument keep of trace on determines whether the numerical values of all active variables are 
++			// recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 
++			// prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 
++			// mode as described in the Section 4 and Section 5. 
++			//
++
++			if (this.driver.length<=3) keep=false; //there is no "_reverse" string within the driver string: 
++			else{
++				if (this.driver.splice(4) == '_reverse') keep=true;
++				else keep=false;
++			}
++			WriteData(fid,'data',keep,'enum',AutodiffKeepEnum(),'format','Boolean');
++			//}}}
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.isautodiff   = false;
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 19790)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 19791)
+@@ -24,7 +24,7 @@
+ 		} //}}}
+ 		this.setdefaultparameters = function (options) { //{{{
+ 
+-			this.increment=options.getfieldvalue('increment',8000); //8000 bytes,  1000 doubles.
++			this.increment=options.getfieldvalue('increment',80000); //80000 bytes,  10000 doubles.
+ 			this.buffer=new ArrayBuffer(this.increment);
+ 			this.ptr=0;
+ 			this.view=new DataView(this.buffer);
+@@ -32,35 +32,34 @@
+ 		} //}}}
+ 		this.fwrite = function (value,format) { //{{{
+ 
+-			if(this.ptr==this.buffer.byteLength){
+-				//need to resize the buffer: 
+-				var  newbuffer = new ArrayBuffer(this.buffer.byteLength+this.increment);
+-				newbuffer.set(this.buffer);
+-				this.buffer=newbuffer;
+-			}
+ 			
+ 			if(format == 'int'){
++				if(this.ptr+4>=this.buffer.byteLength)this.resize();
+ 				this.view.setUint32(this.ptr,value,true); this.ptr+=4;
+ 			}
+ 			else if(format == 'char'){
++				if(this.ptr+value.length>=this.buffer.byteLength)this.resize();
+ 				for(var i=0;i<value.length;i++){
+ 					this.view.setUint8(this.ptr,value.charCodeAt(i),true); 
+ 					this.ptr+=1;
+ 				}
+ 			}
+ 			else if(format == 'double'){
++				if(this.ptr+8>=this.buffer.byteLength)this.resize();
+ 				if (!IsArray(value)){
+ 					this.view.setFloat64(this.ptr,value,true);
+ 					this.ptr+=8;
+ 				}
+ 				else{
+ 					if (!IsArray(value[0])){
++						if(this.ptr+value.length*8>=this.buffer.byteLength)this.resize();
+ 						for(var i=0;i<value.length;i++){
+ 							this.view.setFloat64(this.ptr,value[i],true);
+ 							this.ptr+=8;
+ 						}
+ 					}
+ 					else{
++						if(this.ptr+value.length*value[0].length*8>=this.buffer.byteLength)this.resize();
+ 						for(var i=0;i<value.length;i++){
+ 							for(var j=0;j<value[0].length;j++){
+ 								this.view.setFloat64(this.ptr,value[i][j],true);
+@@ -75,6 +74,12 @@
+ 		this.rawbuffer = function () { //{{{
+ 			return this.buffer;
+ 		} //}}}
++		this.resize = function () { //{{{
++			var  newbuffer = new ArrayBuffer(this.buffer.byteLength+this.increment);
++			new Uint8Array(newbuffer).set(new Uint8Array(this.buffer));
++			this.buffer=newbuffer;
++			this.view=new DataView(this.buffer);
++		} //}}}
+ 	//set defaults
+ 	this.setdefaultparameters(this.options);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19791-19792.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19791-19792.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19791-19792.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19791)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19792)
+@@ -138,12 +138,13 @@
+ 			if (options.exist('colorbarcornerposition')) {
+ 				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+ 			} else { 
+-				var cheight = options.getfieldvalue('colorbarheight',options.getfieldvalue('canvassize',480));
+-				var cwidth = options.getfieldvalue('colorbarwidth',options.getfieldvalue('canvassize',480)/20);
++				var canvassize = options.getfieldvalue('canvassize',480);
++				var cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
++				var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
+ 				var cdivisions = cheight/4;
+ 				var color;
+ 				var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-				ccanvas.css({'vertical-align':'top','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
++				ccanvas.css({'position':'relative','top':((canvassize-cheight)/-2).toFixed(2)+'px'});
+ 				var ccontext = ccanvas[0].getContext('2d');
+ 				for (var i = 0; i < cdivisions; i++) {
+ 					var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
+@@ -153,8 +154,9 @@
+ 					ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
+ 				}
+ 				//Set colorbar lables
+-				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>').insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
+-				clabels.css({'width':'auto','height':String(options.getfieldvalue('canvassize',480)),'vertical-align':'top','list-style-type':'none','display':'inline-table','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
++				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>');
++				clabels.css({'position':'relative','top':'0px','width':'auto','vertical-align':'top','height':String(cheight)+'px','list-style-type':'none','display':'inline-table','top':((canvassize-cheight)/2).toFixed(2)+'px','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
++				clabels.insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
+ 				var labels = [];
+ 				var cdivisions = 8;
+ 				var caxisdelta = caxis[1] - caxis[0];
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19791)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19792)
+@@ -14,8 +14,10 @@
+ 	data=options.getfieldvalue('data');
+ 
+ 	//standard plot: initialize open Gl for each canvas: 
+-	$('<canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas>)').appendTo('body');
+-	var canvas=document.getElementById(options.getfieldvalue('canvasid'));
++	var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
++	canvas.css({'height':String(options.getfieldvalue('canvassize',480)+'px')});
++	canvas.appendTo('body');
++	canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
+ 	// Initialize the GL context: 
+ 	var gl=initWebGL(canvas,options);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19792-19793.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19792-19793.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19792-19793.diff	(revision 20498)
@@ -0,0 +1,1069 @@
+Index: ../trunk-jpl/test/Par/SquareShelfConstrained.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19792)
++++ ../trunk-jpl/test/Par/SquareShelfConstrained.par	(revision 19793)
+@@ -10,6 +10,7 @@
+ md.geometry.thickness=hmax+(hmin-hmax)*(md.mesh.y-ymin)/(ymax-ymin)+0.1*(hmin-hmax)*(md.mesh.x-xmin)/(xmax-xmin);
+ md.geometry.base=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness;
+ md.geometry.surface=md.geometry.base+md.geometry.thickness;
++md.geometry.bed=md.geometry.base-10;
+ 
+ %Initial velocity 
+ x     = transpose(ncread([issmdir() '/test/Data/SquareShelfConstrained.nc'],'x'));
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19792)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19793)
+@@ -49,7 +49,7 @@
+ <script type="text/javascript" src="../../src/m/classes/transient.js"></script>
+ <script type="text/javascript" src="../../src/m/boundaryconditions/SetIceShelfBC.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setflowequation.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/clusters/generic.js"></script>
++<script type="text/javascript" src="../../src/m/classes/clusters/local.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
+ <script type="text/javascript" src="../../src/m/consistency/ismodelselfconsistent.js"></script>
+ <script type="text/javascript" src="../../src/m/consistency/checkfield.js"></script>
+@@ -80,8 +80,8 @@
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js"></script>
++<script type="text/javascript" src="../../src/wrappers/Issm/issm.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+-<script type="text/javascript" src="../../src/c/main/issm.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/jquery.min.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/gl-matrix-min.js"></script>
+@@ -96,11 +96,12 @@
+ 	setmask(md,'all','');
+ 	parameterize(md);
+ 	setflowequation(md,'SSA','all');
++	md.verbose.solution=1;  md.verbose.convergence=1;
+ 	md=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
+ 
+-	/*plotmodel(md,'data',md.initialization.vel,'colorbar','on','data',md.initialization.vx,
+-	  'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');
+-	//var output=issm([5,1,1]);*/
++	/*plotmodel(md,'data',md.initialization.vel,'colorbar','on','colorbarheight',.5,'data',md.initialization.vx,
++	  'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');*/
++	//var output=issm([5,1,1]);
+ 
+ 
+ </script> <!--{{{-->
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19792)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19793)
+@@ -111,8 +111,10 @@
+ 	char *outbinfilename = NULL;
+ 	char *lockfilename   = NULL;
+ 
+-	this->parameters->FindParam(&outbinfilename,OutputFileNameEnum);
+-	this->parameters->FindParam(&lockfilename,LockFileNameEnum);
++	#ifndef _HAVE_JAVASCRIPT_
++	if(this->parameters->Exist(OutputFileNameEnum)) this->parameters->FindParam(&outbinfilename,OutputFileNameEnum);
++	if(this-parameters->Exist(LockFileNameEnum)) this->parameters->FindParam(&lockfilename,LockFileNameEnum);
++	#endif
+ 
+ 	/*Delete all the datasets: */
+ 	if(analysis_type_list)xDelete<int>(analysis_type_list);
+@@ -2334,3 +2336,120 @@
+ 	if(VerboseSolution()) _printf0_("   Number of active nodes L2 Projection: "<< counter <<"\n");
+ }
+ /*}}}*/
++
++#ifdef _HAVE_JAVASCRIPT_ 
++FemModel::FemModel(IssmDouble* buffer, int buffersize, char* toolkits, char* solution, char* modelname,ISSM_MPI_Comm incomm, bool trace){ /*{{{*/
++	/*configuration: */
++	int  solution_type;
++	int  ierr;
++
++	/*First things first, store the communicator, and set it as a global variable: */
++	this->comm=incomm;
++	this->SetStaticComm();
++
++	/*Start profiler: */
++	this->profiler=new Profiler();
++	profiler->Tag(Start);
++
++	/*From command line arguments, retrieve different filenames needed to create the FemModel: */
++	solution_type=StringToEnumx(solution);
++	
++	/*Create femmodel from input files: */
++	profiler->Tag(StartInit);
++	this->InitFromBuffers((char*)buffer,buffersize,toolkits, solution_type,trace,NULL);
++	profiler->Tag(FinishInit);
++
++}
++/*}}}*/
++void FemModel::InitFromBuffers(char* buffer, int buffersize, char* toolkits, int in_solution_type, bool trace, IssmPDouble* X){/*{{{*/
++
++	/*intermediary*/
++	int         i;
++	int         analysis_type;
++	FILE       *IOMODEL = NULL;
++	FILE       *toolkitsoptionsfid = NULL;
++	FILE       *output_fid = NULL;
++	int         my_rank;
++	size_t      outputsize;
++	char       *outputbuffer;
++	const char* rootpath=""; //needed for Dakota runs only, which we won't do here.
++
++	/*recover my_rank:*/
++	my_rank=IssmComm::GetRank();
++
++	/*Initialize internal data: */
++	this->solution_type    = in_solution_type;
++	this->analysis_counter = nummodels-1;   //point to last analysis_type carried out.
++	this->results          = new Results(); //not initialized by CreateDataSets
++	
++	/*Open input file on cpu 0 and create IoModel */
++	if(my_rank==0) IOMODEL = fmemopen((void*)buffer, buffersize, "rb");
++	IoModel* iomodel = new IoModel(IOMODEL,in_solution_type,trace,X);
++
++	/*Figure out what analyses are activated for this solution*/
++	SolutionAnalysesList(&this->analysis_type_list,&this->nummodels,iomodel,this->solution_type);
++
++	/*Open toolkits file: */
++	toolkitsoptionsfid=fmemopen((void*)toolkits, strlen(toolkits)+1, "r");
++
++	/*create datasets for all analyses*/
++	ModelProcessorx(&this->elements,&this->nodes,&this->vertices,&this->materials,&this->constraints,&this->loads,&this->parameters,iomodel,toolkitsoptionsfid,(char*)rootpath,this->solution_type,this->nummodels,this->analysis_type_list);
++
++	/*do the post-processing of the datasets to get an FemModel that can actually run analyses: */
++	for(i=0;i<nummodels;i++){
++
++		if(VerboseMProcessor()) _printf0_("   Processing finite element model of analysis " << EnumToStringx(analysis_type_list[i]) << ":\n");
++		analysis_type=analysis_type_list[i];
++		this->SetCurrentConfiguration(analysis_type);
++
++		if(i==0){
++			if(VerboseMProcessor()) _printf0_("      creating vertex PIDs\n");
++			VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
++		}
++
++		if(VerboseMProcessor()) _printf0_("      resolving node constraints\n");
++		SpcNodesx(nodes,constraints,parameters,analysis_type); 
++
++		if(VerboseMProcessor()) _printf0_("      creating nodal degrees of freedom\n");
++		NodesDofx(nodes,parameters,analysis_type);
++
++		if(VerboseMProcessor()) _printf0_("      configuring element and loads\n");
++		ConfigureObjectsx(elements, loads, nodes, vertices, materials,parameters);
++	}
++
++	/*Close input file and toolkits file descriptors: */
++	if(my_rank==0) fclose(IOMODEL);
++	fclose(toolkitsoptionsfid);
++
++	/*Open output file once for all and add output file descriptor to parameters*/
++	output_fid=open_memstream(&outputbuffer,&outputsize); 
++	if(output_fid==NULL)_error_("FemModel::InitFromBuffers error message: could not initialize output stream");
++	this->parameters->SetParam(output_fid,OutputFilePointerEnum);
++	
++	/*Clean up*/
++	delete iomodel;
++}/*}}}*/
++void FemModel::CleanUpJs(void){/*{{{*/
++
++	/*Intermediary*/
++	FILE *output_fid;
++
++	/*Close output file: */
++	this->parameters->FindParam(&output_fid,OutputFilePointerEnum);
++	fclose(output_fid);
++
++	/*Before we delete the profiler, report statistics for this run: */
++	profiler->Tag(Finish);  //final tagging
++	_printf0_("\n");
++	_printf0_("   "<<setw(40)<<left<<"FemModel initialization elapsed time:"<<profiler->DeltaTime(StartInit,FinishInit) << "\n");
++	_printf0_("   "<<setw(40)<<left<<"Core solution elapsed time:"<<profiler->DeltaTime(StartCore,FinishCore) << "\n");
++	_printf0_("\n");
++	_printf0_("   Total elapsed time: "
++				<<profiler->DeltaTimeModHour(Start,Finish)<<" hrs "
++				<<profiler->DeltaTimeModMin(Start,Finish)<<" min "
++				<<profiler->DeltaTimeModSec(Start,Finish)<<" sec"
++				);
++	_printf0_("\n");
++}
++/*}}}*/
++#endif
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19792)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19793)
+@@ -118,6 +118,13 @@
+ 		void UpdateConstraintsExtrudeFromTopx();
+ 		void HydrologyEPLupdateDomainx(IssmDouble* pEplcount);
+ 		void UpdateConstraintsL2ProjectionEPLx(IssmDouble* pL2count);
++
++		#ifdef _HAVE_JAVASCRIPT_
++		FemModel(IssmDouble* buffer, int buffersize, char* toolkits, char* solution, char* modelname,ISSM_MPI_Comm incomm, bool trace=false);
++		void InitFromBuffers(char* buffer, int buffersize, char* toolkits, int solution_type,bool trace,IssmPDouble* X=NULL);
++		void CleanUpJs(void);
++		#endif
+ };
++		
+ 
+ #endif
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19792)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19793)
+@@ -13,7 +13,8 @@
+ 			   ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
+ 			   ../IssmConfig/IssmConfig.js\
+ 			   ../EnumToString/EnumToString.js\
+-			   ../StringToEnum/StringToEnum.js
++			   ../StringToEnum/StringToEnum.js\
++			   ../Issm/issm.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+@@ -83,8 +84,8 @@
+ 					 ../IssmConfig/IssmConfig.cpp\
+ 					 ../EnumToString/EnumToString.cpp\
+ 					 ../StringToEnum/StringToEnum.cpp\
+-					 ../../c/main/issm.cpp
++					 ../Issm/issm.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_ --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule','_main']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1
+-IssmModule_LDADD = ${deps} $(TRIANGLELIB) 
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_  --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule','_IssmModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 -s INVOKE_RUN=0
++IssmModule_LDADD = ${deps} $(TRIANGLELIB)  $(GSLLIB)
+ #}}}
+Index: ../trunk-jpl/src/wrappers/Issm/issm.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/Issm/issm.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/Issm/issm.js	(revision 19793)
+@@ -0,0 +1,26 @@
++function issm(fid,toolkitstring,solutionstring,modelname){
++/*issm 
++	   usage: var output = issm(fid,toolkitstring);
++	      where: fid is a pointer to a memory buffer created by marshall, toolkitstring is a toolkits 
++		  string created by ToolkitsToFile and 
++		  output is a binary buffer to be read by loadresultsfromcluster.
++*/
++
++	var binarybuffer=fid.rawbuffer(); //binarybuffer is now an arraybuffer
++	var nb = fid.ptr; //size of array buffer in bytes.
++
++	/*var dbinary=new Float64Array(binarybuffer); var nb=dbinary.length * dbinary.BYTES_PER_ELEMENT;
++	var dbinaryPtr= Module._malloc(nb); var binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
++	binHeap.set(new Uint8Array(dbinary.buffer)); var binary=binHeap.byteOffset;*/
++
++	var dbinaryPtr= Module._malloc(nb); var binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
++	binHeap.set(new Uint8Array(binarybuffer)); var binary=binHeap.byteOffset;
++
++	//Declare TriMesh module: 
++	issmmodule= Module.cwrap('IssmModule','number',['number','number','string','string','string']);
++	
++	//Call issm:
++	var output = issmmodule(binary, nb, toolkitstring,solutionstring,modelname);
++	
++	return output;
++}
+Index: ../trunk-jpl/src/wrappers/Issm/issm.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/Issm/issm.cpp	(revision 0)
++++ ../trunk-jpl/src/wrappers/Issm/issm.cpp	(revision 19793)
+@@ -0,0 +1,41 @@
++/*!\file:  issm.cpp
++ * \brief: ISSM main program
++ */ 
++
++#include "../../c/main/issm.h"
++
++extern "C" { 
++	int IssmModule(double* buffer, int buffersize, char* toolkits,char* solution,char* modelname){
++
++		/*Initialize exception trapping: */
++		ExceptionTrapBegin();
++
++		/*Initialize environment: */
++		ISSM_MPI_Comm comm_init=EnvironmentInit(0,NULL);
++
++		/*Initialize femmodel from arguments provided command line: */
++		FemModel *femmodel = new FemModel(buffer,buffersize,toolkits,solution,modelname,comm_init);
++
++		/*Solve: */
++		femmodel->Solve();
++
++		/*Output results: */
++		OutputResultsx(femmodel);
++
++		/*Wrap up: */
++		femmodel->CleanUpJs();
++
++		/*Delete Model: */
++		delete femmodel;
++		
++		/*Finalize environment:*/
++		EnvironmentFinalize();
++
++		/*Finalize exception trapping: */
++		ExceptionTrapEnd();
++
++		/*Return unix success: */
++		return 0; 
++
++	} 
++} //extern "C" 
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 19792)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 19793)
+@@ -171,6 +171,7 @@
+ 		//Get size
+ 		var s=[data.length,1];
+ 		if(IsArray(data[0]))s[1]=data[0].length;
++		if(typeof data == 'number'){s[0]=1; s[1]=1}
+ 
+ 		//if matrix = NaN, then do not write anything
+ 		if (s[0]==1 & s[1]==1 & isNaN(data)){
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 19792)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 19793)
+@@ -106,68 +106,82 @@
+ 	}
+ 
+ 	//Write all input files
+-	marshall(md);                                          // bin file
+-	ToolkitsFile(md.toolkits,md.miscellaneous.name + '.toolkits'); // toolkits file
+-	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
++	fid = marshall(md);                                          // bin file
++	toolkitsstring= md.toolkits.ToolkitsFile(md.miscellaneous.name + '.toolkits'); // toolkits file
+ 
+-	//Stop here if batch mode
+-	if (options.getfieldvalue('batch','no') === 'yes'){
+-		if (md.verbose.solution){
+-			console.log('batch mode requested: not launching job interactively');
+-			console.log('launch solution sequence on remote cluster by hand');
++	if (cluster.classname() != 'local'){ //{{{
++
++		throw Error('non local clusters not supported yet!');
++
++		cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
++
++		//Stop here if batch mode
++		if (options.getfieldvalue('batch','no') === 'yes'){
++			if (md.verbose.solution){
++				console.log('batch mode requested: not launching job interactively');
++				console.log('launch solution sequence on remote cluster by hand');
++			}
++			return;
+ 		}
+-		return;
+-	}
+ 
+-	//Upload all required files
+-	modelname = md.miscellaneous.name;
+-	filelist  = [modelname + '.bin ',modelname + '.toolkits '];
+-	if (ispc){
+-		filelist.push(modelname + '.bat ');
+-	}
+-	else{
+-		filelist.push(modelname + '.queue ');
+-	}
++		//Upload all required files
++		modelname = md.miscellaneous.name;
++		filelist  = [modelname + '.bin ',modelname + '.toolkits '];
++		if (ispc){
++			filelist.push(modelname + '.bat ');
++		}
++		else{
++			filelist.push(modelname + '.queue ');
++		}
+ 
+-	if (md.qmu.isdakota){
+-		filelist.push(modelname + '.qmu.in');
+-	}
++		if (md.qmu.isdakota){
++			filelist.push(modelname + '.qmu.in');
++		}
+ 
+-	if (restart == ''){
+-		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist);
+-	}
++		if (restart == ''){
++			cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist);
++		}
+ 
+-	//launch queue job: 
+-	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart);
++		//launch queue job: 
++		cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart);
+ 
+-	//wait on lock
+-	if (md.settings.waitonlock == 'NaN'){
+-		//load when user enters 'y'
+-		console.log('solution launched on remote cluster. log in to detect job completion.');
+-		throw Error("solve error message: user detection of successfull completion of job not support yet!");
+-		/*choice=input('Is the job successfully completed? (y/n)','s');
+-		if ~strcmp(choice,'y'), 
+-			console.log('Results not loaded... exiting'); 
+-		else
+-			md=loadresultsfromcluster(md);
+-		end*/
+-	}
+-	else if (md.settings.waitonlock>0){
+-		//we wait for the done file
+-		done=waitonlock(md);
+-		if (md.verbose.solution){
+-			console.log('loading results from cluster');
++		//wait on lock
++		if (md.settings.waitonlock == 'NaN'){
++			//load when user enters 'y'
++			console.log('solution launched on remote cluster. log in to detect job completion.');
++			throw Error("solve error message: user detection of successfull completion of job not support yet!");
++			/*choice=input('Is the job successfully completed? (y/n)','s');
++			  if ~strcmp(choice,'y'), 
++			  console.log('Results not loaded... exiting'); 
++			  else
++			  md=loadresultsfromcluster(md);
++			  end*/
+ 		}
+-		loadresultsfromcluster(md);
+-	}
+-	else if (md.settings.waitonlock==0){
+-		 console.log('Model results must be loaded manually with md=loadresultsfromcluster(md);');
+-	}
++		else if (md.settings.waitonlock>0){
++			//we wait for the done file
++			done=waitonlock(md);
++			if (md.verbose.solution){
++				console.log('loading results from cluster');
++			}
++			loadresultsfromcluster(md);
++		}
++		else if (md.settings.waitonlock==0){
++			console.log('Model results must be loaded manually with md=loadresultsfromcluster(md);');
++		}
+ 
+-	//post processes qmu results if necessary
+-	if (md.qmu.isdakota){
+-		/*if ~strncmpi(options.getfieldvalue('keep','y'),'y',1)
+-			system(['rm -rf qmu' num2str(feature('GetPid'))]);
+-		end*/
++		//post processes qmu results if necessary
++		if (md.qmu.isdakota){
++			/*if ~strncmpi(options.getfieldvalue('keep','y'),'y',1)
++			  system(['rm -rf qmu' num2str(feature('GetPid'))]);
++			  end*/
++		}
++	} //}}}
++	else{ //if (cluster.classname() == 'local') 
++
++		/*We are running locally on the machine, using the issm module:*/
++		console.log('running issm locally');
++		
++		//Call issm:
++		issm(fid, toolkitsstring, solutionstring, md.miscellaneous.name);
+ 	}
+ }
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 19792)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 19793)
+@@ -30,7 +30,8 @@
+ 	md.stressbalance.spcvx=NewArrayFill(md.mesh.numberofvertices,NaN); 
+ 	md.stressbalance.spcvy=NewArrayFill(md.mesh.numberofvertices,NaN);
+ 	md.stressbalance.spcvz=NewArrayFill(md.mesh.numberofvertices,NaN);
+-	md.stressbalance.referential=NewArrayFill(md.mesh.numberofvertices,NaN);
++	md.stressbalance.referential=Create2DArray(md.mesh.numberofvertices,6);
++	for(var i=0;i<md.mesh.numberofvertices;i++)for(var j=0;j<6;j++)md.stressbalance.referential[i][j]=NaN;
+ 	md.stressbalance.loadingforce=NewArrayFill(md.mesh.numberofvertices,0);
+ 
+ 	//Ice front position: 
+@@ -81,7 +82,7 @@
+ 	md.basalforcings.initialize(md);
+ 
+ 	//Deal with other boundary conditions
+-	if (md.balancethickness.thickening_rate === NaN){
++	if (isNaN(md.balancethickness.thickening_rate)){
+ 		md.balancethickness.thickening_rate=NewArrayFill(md.mesh.numberofvertices,0);
+ 		console.log('      no balancethickness.thickening_rate specified: values set as zero');
+ 	}
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19792)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19793)
+@@ -14,7 +14,7 @@
+ 	//   See also: PLOTMODEL, PROCESSMESH
+ 
+ 	//check format
+-	if ( data.length ==0 | data === [] | typeof data === 'number' | data === NaN ){
++	if ( data.length ==0 | data === [] | typeof data === 'number' | isNaN(data) ){
+ 		throw Error('plotmodel error message: data provided is empty');
+ 	}
+ 
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19793)
+@@ -6,7 +6,7 @@
+ function outputdefinition (){
+ 	//methods
+ 	this.setdefaultparameters = function(){// {{{
+-		this.definitions={};
++		this.definitions=[];
+ 	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   outputdefinition:'));
+@@ -40,7 +40,7 @@
+ 		}//}}}
+ 	//properties 
+ 	// {{{
+-	this.definitions                 = {};
++	this.definitions                 = [];
+ 	this.setdefaultparameters();
+ 	//}}}
+ }
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19793)
+@@ -161,19 +161,20 @@
+ 			ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
+ 			lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
+ 
+-			WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
+-			WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
+-			WriteData(fid,'data',lz,'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
++			WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum());
++			WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum());
++			WriteData(fid,'data',lz,'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum());
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+-			}			
+-			WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum,'format','StringArray');
++			}
++			WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum(),'format','StringArray');
+ 		}//}}}
+ 		this.defaultoutputs = function(md){ // {{{
+ 
+@@ -203,7 +204,7 @@
+ 	this.rift_penalty_threshold = 0;
+ 	this.referential            = NaN;
+ 	this.loadingforce           = NaN;
+-	this.requested_outputs      = ['']
++	this.requested_outputs      = []
+ 
+ 	this.setdefaultparameters();
+ 	//}}}
+Index: ../trunk-jpl/src/m/classes/steadystate.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/steadystate.js	(revision 19793)
+@@ -51,20 +51,21 @@
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+-			WriteData(fid,'data',outputs,'enum',SteadystateRequestedOutputsEnum,'format','StringArray');
++			WriteData(fid,'data',outputs,'enum',SteadystateRequestedOutputsEnum(),'format','StringArray');
+ 		}//}}}
+ 		this.defaultoutputs = function(md) { //{{{
+ 
+ 			var list=[];
+ 
+-			for (var i=0;i<md.stressbalance.defaultoutputs().length;i++)list.push(md.stressbalance.defaultoutputs()[i]);
+-			for (var i=0;i<md.thermal.defaultoutputs().length;i++)list.push(md.thermal.defaultoutputs()[i]);
++			for (var i=0;i<md.stressbalance.defaultoutputs(md).length;i++)list.push(md.stressbalance.defaultoutputs(md)[i]);
++			for (var i=0;i<md.thermal.defaultoutputs(md).length;i++)list.push(md.thermal.defaultoutputs(md)[i]);
+ 
+ 			return list;
+ 
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 19793)
+@@ -102,7 +102,7 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','isdakota','format','Boolean');
+ 			if (!this.isdakota){
+-				WriteData(fid,'data',false,'enum',QmuMassFluxSegmentsPresentEnum,'format','Boolean');
++				WriteData(fid,'data',false,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 				return; 
+ 			}
+ 			WriteData(fid,'object',this,'fieldname','partition','format','DoubleMat','mattype',2);
+@@ -111,11 +111,11 @@
+ 			WriteData(fid,'object',this,'fieldname','variabledescriptors','format','StringArray');
+ 			WriteData(fid,'object',this,'fieldname','responsedescriptors','format','StringArray');
+ 			if (this.mass_flux_segments.length){
+-				WriteData(fid,'data',this.mass_flux_segments,'enum',MassFluxSegmentsEnum,'format','MatArray');
++				WriteData(fid,'data',this.mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
+ 				flag=true; 
+ 			}
+ 			else flag=false; 
+-			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum,'format','Boolean');
++			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 		}//}}}
+ 	//properties 
+ 	// {{{
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19793)
+@@ -96,10 +96,11 @@
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+ 			WriteData(fid,'data',outputs,'enum',ThermalRequestedOutputsEnum(),'format','StringArray');
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19793)
+@@ -37,7 +37,7 @@
+ 			var yts=365.0*24.0*3600.0;
+ 
+ 			WriteData(fid,'object',this,'fieldname','spcthickness','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',this,'fieldname','thickening_rate','format','DoubleMat','mattype',1,'scale',1./yts);
++			WriteData(fid,'object',this,'fieldname','thickening_rate','format','DoubleMat','mattype',1,'scale',1/yts);
+ 			WriteData(fid,'object',this,'fieldname','stabilization','format','Integer');
+ 			WriteData(fid,'object',this,'fieldname','omega','format','DoubleMat','mattype',1);
+ 
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19793)
+@@ -34,7 +34,7 @@
+ 				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 			}
+-			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum)){
++			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum())){
+ 				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 				//Triangle with zero velocity
+@@ -84,16 +84,16 @@
+ 
+ 			var yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'data',this.vx,'format','DoubleMat','mattype',1,'enum',VxEnum,'scale',1./yts);
+-			WriteData(fid,'data',this.vy,'format','DoubleMat','mattype',1,'enum',VyEnum,'scale',1./yts);
+-			WriteData(fid,'data',this.vz,'format','DoubleMat','mattype',1,'enum',VzEnum,'scale',1./yts);
+-			WriteData(fid,'data',this.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum);
+-			WriteData(fid,'data',this.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum);
+-			WriteData(fid,'data',this.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum);
+-			WriteData(fid,'data',this.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum);
+-			WriteData(fid,'data',this.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum);
+-			WriteData(fid,'data',this.epl_thickness,'format','DoubleMat','mattype',1,'enum',HydrologydcEplThicknessEnum);
+-			WriteData(fid,'data',this.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum);
++			WriteData(fid,'data',this.vx,'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vy,'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vz,'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum());
++			WriteData(fid,'data',this.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
++			WriteData(fid,'data',this.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum());
++			WriteData(fid,'data',this.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum());
++			WriteData(fid,'data',this.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum());
++			WriteData(fid,'data',this.epl_thickness,'format','DoubleMat','mattype',1,'enum',HydrologydcEplThicknessEnum());
++			WriteData(fid,'data',this.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum());
+ 
+ 			if (md.thermal.isenthalpy){
+ 				tpmp=NewArrayFill(md.mesh.numberofvertices,0);
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19793)
+@@ -20,7 +20,7 @@
+ } // }}}
+ 		this.initialize = function(md) {// {{{
+ 
+-			if (self.mass_balance === NaN){
++			if (isNaN(self.mass_balance)){
+ 				self.mass_balance=NewArrayFill(md.mesh.numberofvertices,0);
+ 				console.log('      no smb.mass_balance specified: values set as zero');
+ 			}
+@@ -46,17 +46,18 @@
+ 			
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+-			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
++			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray');
+ 
+ 		}//}}}
+ 	//properties 
+ 	this.mass_balance = NaN;
+-	this.requested_outputs      = [''];
++	this.requested_outputs      = [];
+ 	this.setdefaultparameters();
+ }
+Index: ../trunk-jpl/src/m/classes/verbose.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/verbose.js	(revision 19793)
+@@ -28,15 +28,15 @@
+ 	this.disp= function(){// {{{
+ 		//BEGINDISP
+ 		console.log(sprintf('verbose class echo:'));
+-		console.log(sprintf('   %15s : %s','mprocessor',mat2str(verbose.mprocessor)));
+-		console.log(sprintf('   %15s : %s','module',mat2str(verbose.module)));
+-		console.log(sprintf('   %15s : %s','solution',mat2str(verbose.solution)));
+-		console.log(sprintf('   %15s : %s','solver',mat2str(verbose.solver)));
+-		console.log(sprintf('   %15s : %s','convergence',mat2str(verbose.convergence)));
+-		console.log(sprintf('   %15s : %s','control',mat2str(verbose.control)));
+-		console.log(sprintf('   %15s : %s','qmu',mat2str(verbose.qmu)));
+-		console.log(sprintf('   %15s : %s','autodiff',mat2str(verbose.autodiff)));
+-		console.log(sprintf('   %15s : %s','smb',mat2str(verbose.smb)));
++		console.log(sprintf('   %s : %i','mprocessor',this.mprocessor));
++		console.log(sprintf('   %s : %i','module',this.module));
++		console.log(sprintf('   %s : %i','solution',this.solution));
++		console.log(sprintf('   %s : %i','solver',this.solver));
++		console.log(sprintf('   %s : %i','convergence',this.convergence));
++		console.log(sprintf('   %s : %i','control',this.control));
++		console.log(sprintf('   %s : %i','qmu',this.qmu));
++		console.log(sprintf('   %s : %i','autodiff',this.autodiff));
++		console.log(sprintf('   %s : %i','smb',this.smb));
+ 		//ENDDISP
+ 	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses){ // {{{
+@@ -49,15 +49,15 @@
+ 
+ 			//BEGINVERB2BIN
+ 			var binary=0;
+-			if (verbose.mprocessor) binary=Math.bitOr(binary1); 
+-			if (verbose.module) binary=Math.bitOr(binary2); 
+-			if (verbose.solution) binary=Math.bitOr(binary4); 
+-			if (verbose.solver) binary=Math.bitOr(binary8); 
+-			if (verbose.convergence) binary=Math.bitOr(binary16); 
+-			if (verbose.control) binary=Math.bitOr(binary32); 
+-			if (verbose.qmu) binary=Math.bitOr(binary64); 
+-			if (verbose.autodiff) binary=Math.bitOr(binary128); 
+-			if (verbose.smb) binary=Math.bitOr(binary256); 
++			if (this.mprocessor) binary=binary|1; 
++			if (this.module) binary=binary|2; 
++			if (this.solution) binary=binary|4; 
++			if (this.solver) binary=binary|8; 
++			if (this.convergence) binary=binary|16; 
++			if (this.control) binary=binary|32; 
++			if (this.qmu) binary=binary|64; 
++			if (this.autodiff) binary=binary|128; 
++			if (this.smb) binary=binary|256; 
+ 			//ENDVERB2BIN
+ 			return binary;
+ 
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19793)
+@@ -67,13 +67,14 @@
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+-			WriteData(fid,'data',outputs,'enum',MasstransportRequestedOutputsEnum,'format','StringArray');
++			WriteData(fid,'data',outputs,'enum',MasstransportRequestedOutputsEnum(),'format','StringArray');
+ 		}//}}}
+ 		this.defaultoutputs = function(md) { //{{{
+ 			return ['Thickness','Surface','Base'];
+@@ -88,7 +89,7 @@
+ 	this.stabilization          = 0;
+ 	this.vertex_pairing         = NaN;
+ 	this.penalty_factor         = 0;
+-	this.requested_outputs      = [''];
++	this.requested_outputs      = [];
+ 
+ 	this.setdefaultparameters();
+ 	//}}}
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19793)
+@@ -54,5 +54,4 @@
+ 		this.hydrostatic_ratio = NaN;
+ 		this.setdefaultparameters();
+ 		//}}}
+-
+ }
+Index: ../trunk-jpl/src/m/classes/toolkits.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/toolkits.js	(revision 19793)
+@@ -46,6 +46,50 @@
+ 			}
+ 		}
+ 	} // }}}
++		 this.ToolkitsFile = function(filename) { //{{{
++		 //TOOLKITSFILE - build toolkits file (in string format)
++		 //
++		 //   Build a Petsc compatible options string, from the toolkits model field  + return options string. 
++		 //   This file string will also be used when the toolkit used is 'issm' instead of 'petsc'
++		 //
++		 //   Usage:     var toolkitsstring = toolkits.ToolkitsFile();
++
++			 var string = '';
++
++			 //write header
++			 string += sprintf('%s%s%s\n','\%Toolkits options file: ',filename,' written from Javascript toolkits array');
++
++			 //start writing options
++			 for (var analysis in this){
++				 
++				 if(typeof this[analysis] == 'object') options=this[analysis]; else continue;
++
++				 //first write analysis:
++				 string += sprintf('\n+%s\n',analysis); //append a + to recognize it's an analysis enum
++
++				 //now, write options
++			
++				 for(var optionname in options){
++					 optionvalue=options[optionname];
++
++					 if (optionvalue.length==0){
++						 //this option has only one argument
++						 string+=sprintf('-%s\n',optionname);
++					 }
++					 else{
++						 //option with value. value can be string or scalar
++						 if (typeof optionvalue == 'number'){
++							 string+=sprintf('-%s %g\n',optionname,optionvalue);
++						 }
++						 else if (typeof optionvalue == 'string'){
++							 string+=sprintf('-%s %s\n',optionname,optionvalue);
++						 }
++						 else throw Error(sprintf("ToolkitsFile error: option '%s' is not well formatted",optionname));
++					 }
++				 }
++			 }
++			 return string;
++		 } //}}}
+ 	//properties 
+ 	// {{{
+ 	this.DefaultAnalysis           = [];
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19793)
+@@ -21,12 +21,12 @@
+ 	} // }}}
+ 		this.initialize = function (md){ // {{{
+ 
+-			if (this.groundedice_melting_rate === NaN){
++			if (isNaN(this.groundedice_melting_rate)){
+ 				this.groundedice_melting_rate=NewArrayFill(md.mesh.numberofvertices,0);
+ 				console.log('      no basalforcings.groundedice_melting_rate specified: values set as zero');
+ 			}
+ 
+-			if (this.floatingice_melting_rate === NaN){
++			if (isNaN(this.floatingice_melting_rate)){
+ 				this.floatingice_melting_rate=NewArrayFill(md.mesh.numberofvertices,0);
+ 				console.log('      no basalforcings.floatingice_melting_rate specified: values set as zero');
+ 			}
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 19793)
+@@ -35,6 +35,9 @@
+ 		console.log(sprintf('    verbose: %s',this.verbose));
+ 		console.log(sprintf('    shell: %s',this.shell));
+ 	}// }}}
++	this.classname= function(){// {{{
++		return "generic";
++	}// }}}
+ 		this.checkconsistency = function (md,solution,analyses) { //{{{
+ 			if (cluster.np<1){
+ 				md.checkmessage('number of processors should be at least 1');
+Index: ../trunk-jpl/src/m/classes/clusters/local.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/local.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/local.js	(revision 19793)
+@@ -0,0 +1,22 @@
++//LOCAL cluster class definition
++//
++//   Usage:
++//      local=new local();
++
++function local (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   local cluster class echo: []'));
++	}// }}}
++	this.classname= function(){// {{{
++		return "local";
++	}// }}}
++		this.checkconsistency = function (md,solution,analyses) { //{{{
++		} //}}}
++	//properties 
++	// {{{
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/transient.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/transient.js	(revision 19793)
+@@ -75,13 +75,14 @@
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					outputs.push(this.defaultoutputs());
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}			
+-			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum,'format','StringArray');
++			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum(),'format','StringArray');
+ 		}//}}}
+ 		this.defaultoutputs = function(md) { //{{{
+ 			if(this.issmb)return ['SmbMassBalance'];
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19793)
+@@ -86,7 +86,7 @@
+ 				checkfield(md,'fieldname','damage.requested_outputs','stringrow',1);
+ 			}
+ 			else if (this.law!=0){
+-				if (solution==DamageEvolutionSolutionEnum){
++				if (solution==DamageEvolutionSolutionEnum()){
+ 					throw Error('Invalid evolution law (md.damage.law) for a damage solution');
+ 				}
+ 			}
+@@ -115,20 +115,20 @@
+ 
+ 			//process requested outputs
+ 			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs;i++){
++			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+ 					outputs.push(this.defaultoutputs(md));
+ 				}
+ 			}
+ 			if (this.isdamage){
+-				WriteData(fid,'data',outputs,'enum',DamageEvolutionRequestedOutputsEnum,'format','StringArray');
++				WriteData(fid,'data',outputs,'enum',DamageEvolutionRequestedOutputsEnum(),'format','StringArray');
+ 			}
+ 
+ 		}//}}}
+ 		this.defaultoutputs = function(md){ //{{{
+ 
+-			if (md.domaintype() == '2Dhorizontal') return 'DamageDbar';
++			if (md.mesh.domaintype() == '2Dhorizontal') return 'DamageDbar';
+ 			else return 'DamageD';
+ 
+ 		}//}}}
+@@ -154,7 +154,7 @@
+ 	this.c4                  = 0;
+ 	this.healing             = 0;
+ 	this.equiv_stress		  = 0;
+-	this.requested_outputs   = [''];
++	this.requested_outputs   = [];
+ 
+ 	this.setdefaultparameters();
+ 	//}}}
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19793)
+@@ -31,7 +31,7 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			var yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'enum',FrictionLawEnum,'data',1,'format','Integer');
++			WriteData(fid,'enum',FrictionLawEnum(),'data',1,'format','Integer');
+ 			WriteData(fid,'object',this,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			//WriteData(fid,'object',this,'fieldname','coefficient','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'fieldname','p','format','DoubleMat','mattype',2);
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19792)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19793)
+@@ -65,7 +65,7 @@
+ 			this.verbose          = new verbose();
+ 			this.settings         = new settings();
+ 			this.toolkits         = new toolkits();
+-			this.cluster          = new generic();
++			this.cluster          = new local();
+ 			this.balancethickness = new balancethickness();
+ 			this.stressbalance    = new stressbalance();
+ 			this.hydrology        = new hydrologyshreve();
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 19792)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 19793)
+@@ -72,7 +72,7 @@
+ 			else throw Error('fileptr.fwrite error message: wrong type of format');
+ 		} //}}}
+ 		this.rawbuffer = function () { //{{{
+-			return this.buffer;
++			return this.buffer.slice(0,this.ptr);
+ 		} //}}}
+ 		this.resize = function () { //{{{
+ 			var  newbuffer = new ArrayBuffer(this.buffer.byteLength+this.increment);
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19792)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19793)
+@@ -111,10 +111,16 @@
+ } //}}}
+ function IsArray(object) { //{{{
+ 
+-	if( Object.prototype.toString.call( object ) === '[object Array]' ) {
+-		return 1;
+-	}
+-	else return 0;
++	var type=Object.prototype.toString.call( object );
++	if( type === '[object Array]' ) return 1;
++	if( type === '[object Float64Array]' ) return 1;
++	if( type === '[object Float32Array]' ) return 1;
++	if( type === '[object Int32Array]' ) return 1;
++	if( type === '[object Int16Array]' ) return 1;
++	if( type === '[object Uint32Array]' ) return 1;
++	if( type === '[object Uint16Array]' ) return 1;
++	if( type === '[object Uint8Array]' ) return 1;
++	return 0;
+ 
+ } //}}}
+ function ArrayNot(array) { //{{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19793-19794.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19793-19794.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19793-19794.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19793)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19794)
+@@ -138,50 +138,49 @@
+ 			if (options.exist('colorbarcornerposition')) {
+ 				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+ 			} else { 
+-				var canvassize = options.getfieldvalue('canvassize',480);
+-				var cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
+-				var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
+-				var cdivisions = cheight/4;
+-				var color;
+-				var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-				ccanvas.css({'position':'relative','top':((canvassize-cheight)/-2).toFixed(2)+'px'});
+-				var ccontext = ccanvas[0].getContext('2d');
+-				for (var i = 0; i < cdivisions; i++) {
+-					var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
+-					color = colorbar[(colorbar.length - 1) - cindex];
+-					color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)];	
+-					ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)';
+-					ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
+-				}
+-				//Set colorbar lables
+-				var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>');
+-				clabels.css({'position':'relative','top':'0px','width':'auto','vertical-align':'top','height':String(cheight)+'px','list-style-type':'none','display':'inline-table','top':((canvassize-cheight)/2).toFixed(2)+'px','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px'});
+-				clabels.insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
+-				var labels = [];
+-				var cdivisions = 8;
+-				var caxisdelta = caxis[1] - caxis[0];
+-				var clabelitem;
++			}
++			var canvassize = options.getfieldvalue('canvassize',480);
++			var cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
++			var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
++			var cdivisions = cheight/4;
++			var color;
++			var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++			ccanvas.css({'position':'relative','top':((canvassize-cheight)/-2).toFixed(2)+'px'});
++			var ccontext = ccanvas[0].getContext('2d');
++			for (var i = 0; i < cdivisions; i++) {
++				var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
++				color = colorbar[(colorbar.length - 1) - cindex];
++				color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)];	
++				ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)';
++				ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
++			}
++			//Set colorbar lables
++			var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>');
++			clabels.css({'position':'relative','width':'auto','vertical-align':'top','height':String(cheight)+'px','list-style-type':'none','display':'inline-table','top':((canvassize-cheight)/2).toFixed(2)+'px','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px','font-size':String(options.getfieldvalue('colorbarfontsize',16))+'px','color':String(options.getfieldvalue('FontColor','black'))});
++			clabels.insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
++			var labels = [];
++			var cdivisions = 8;
++			var caxisdelta = caxis[1] - caxis[0];
++			var clabelitem;
+ 
+-				if (options.exist('log')) {
+-					//logvalue=options.getfieldvalue('log');
+-					//set(c,'YTick',log(tick_vals)./log(logvalue));
+-					for (var i = cdivisions; i >= 0; i--) {
+-						labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
+-					}
+-				} else {
+-					for (var i = cdivisions; i >= 0; i--) {
+-						labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
+-					}
++			if (options.exist('log')) {
++				//logvalue=options.getfieldvalue('log');
++				//set(c,'YTick',log(tick_vals)./log(logvalue));
++				for (var i = cdivisions; i >= 0; i--) {
++					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
+ 				}
++			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					var clabelitem = $('<li><div>'+labels[i]+'</div></li>')
+-					clabelitem.css({'display':'table-row'});
+-					clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
+-					clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
++					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
+ 				}
+ 			}
++			for (var i = cdivisions; i >= 0; i--) {
++				var clabelitem = $('<li><div>'+labels[i]+'</div></li>')
++				clabelitem.css({'display':'table-row'});
++				clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
++				clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
++			}
+ 			/* //{{{
+-			set(c,'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'YColor',options.getfieldvalue('FontColor','k'));
+ 			if exist(options,'wrapping')
+ 				lim=get(c,'Ylim');
+ 				lim=[lim(1) lim(1)+(lim(2)-lim(1))/options.getfieldvalue('wrapping')];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19794-19795.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19794-19795.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19794-19795.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19794)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19795)
+@@ -14,7 +14,7 @@
+ 	//   See also: PLOTMODEL, PROCESSMESH
+ 
+ 	//check format
+-	if ( data.length ==0 | data === [] | typeof data === 'number' | isNaN(data) ){
++	if ( data.length ==0 | data === [] | typeof data === 'number' | ArrayAnyNaN(data) ){
+ 		throw Error('plotmodel error message: data provided is empty');
+ 	}
+ 
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19794)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19795)
+@@ -215,13 +215,6 @@
+ 		plot_unit(md,data,options,canvas,gl);
+ 	}
+ 
+-	//apply all options
+-	if (datatype==3){
+-		options.changefieldvalue('colorbar',2);
+-		if (options.exist('contourlevels')){
+-			data2=data;
+-		}
+-	}
+ 	//applyoptions(md,data2,options); 
+ 	applyoptions(md,data,options); 
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19795-19796.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19795-19796.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19795-19796.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/test/NightlyRun/test513.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.py	(revision 19795)
++++ ../trunk-jpl/test/NightlyRun/test513.py	(revision 19796)
+@@ -36,7 +36,7 @@
+ 
+ # Fields and tolerances to track changes
+ field_names     =['Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate']
+-field_tolerances=[5e-08,3e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06]
++field_tolerances=[5e-08,4e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06]
+ field_values=[\
+ 	md.results.SteadystateSolution.Gradient1,\
+ 	md.results.SteadystateSolution.J,\
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 19795)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 19796)
+@@ -80,8 +80,8 @@
+ 		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',\
+ 		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-8,1e-13,1e-13];
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,7e-8,1e-13,1e-13,\
++		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,7e-8,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-19796-19797.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19796-19797.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19796-19797.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test513.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.py	(revision 19796)
++++ ../trunk-jpl/test/NightlyRun/test513.py	(revision 19797)
+@@ -36,7 +36,7 @@
+ 
+ # Fields and tolerances to track changes
+ field_names     =['Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate']
+-field_tolerances=[5e-08,4e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06]
++field_tolerances=[5e-08,4e-10,1e-10,1e-10,3e-6,4e-6,3.4e-6,3e-6,2e-6,2e-06]
+ field_values=[\
+ 	md.results.SteadystateSolution.Gradient1,\
+ 	md.results.SteadystateSolution.J,\
+Index: ../trunk-jpl/test/NightlyRun/test513.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.m	(revision 19796)
++++ ../trunk-jpl/test/NightlyRun/test513.m	(revision 19797)
+@@ -25,7 +25,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={5e-08,3e-10,1e-10,1e-10,3e-6,3e-6,3e-6,3e-6,2e-6,2e-06};
++field_tolerances={5e-08,3e-10,1e-10,1e-10,3e-6,4e-6,4e-6,3e-6,2e-6,2e-06};
+ field_values={...
+ 	(md.results.SteadystateSolution.Gradient1),...
+ 	md.results.SteadystateSolution.J,...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19797-19798.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19797-19798.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19797-19798.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19797)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19798)
+@@ -167,11 +167,11 @@
+ 				//logvalue=options.getfieldvalue('log');
+ 				//set(c,'YTick',log(tick_vals)./log(logvalue));
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
++					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toPrecision(3);
+ 				}
+ 			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toFixed(2);
++					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toPrecision(3);
+ 				}
+ 			}
+ 			for (var i = cdivisions; i >= 0; i--) {
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19797)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19798)
+@@ -119,7 +119,7 @@
+ 					
+ 	colorbar=colorbars["rainbow"];
+ 
+-	value = clamp(value, min + 1.0, max);
++	value = clamp(value, min, max);
+ 	var normalizedValue = (value - min) / (max - min);
+ 	var index = clamp(Math.round(normalizedValue * colorbar.length), 0, colorbar.length - 1);
+ 	return colorbar[index];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19798-19799.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19798-19799.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19798-19799.diff	(revision 20498)
@@ -0,0 +1,32 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19798)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19799)
+@@ -103,10 +103,6 @@
+ 		showbasins(options);
+ 	end
+ 	*/ //}}}
+-	//Caxis
+-	if (options.exist('caxis')) {
+-		caxis(options.getfieldvalue('caxis'));
+-	}
+ 	/* ///{{{
+ 	//shading
+ 	if exist(options,'shading'),
+@@ -139,6 +135,7 @@
+ 				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+ 			} else { 
+ 			}
++			var caxis = options.getfieldvalue('caxis',[Math.min.apply(null,data),Math.max.apply(null,data)]);
+ 			var canvassize = options.getfieldvalue('canvassize',480);
+ 			var cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
+ 			var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
+@@ -171,7 +168,7 @@
+ 				}
+ 			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toPrecision(3);
++					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toString();
+ 				}
+ 			}
+ 			for (var i = cdivisions; i >= 0; i--) {
Index: /issm/oecreview/Archive/19101-20495/ISSM-19799-19800.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19799-19800.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19799-19800.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19799)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19800)
+@@ -164,11 +164,11 @@
+ 				//logvalue=options.getfieldvalue('log');
+ 				//set(c,'YTick',log(tick_vals)./log(logvalue));
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toPrecision(3);
++					labels[i] = (caxisdelta*i/cdivisions+caxis[0]).toPrecision(3);
+ 				}
+ 			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions-caxis[0]).toString();
++					labels[i] = (caxisdelta*i/cdivisions+caxis[0]).toPrecision(3);
+ 				}
+ 			}
+ 			for (var i = cdivisions; i >= 0; i--) {
Index: /issm/oecreview/Archive/19101-20495/ISSM-19800-19801.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19800-19801.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19800-19801.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19800)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19801)
+@@ -276,7 +276,8 @@
+ 	id = in_id;
+ 	value = xNew<char>(strlen(in_value)+1);
+ 	xMemCpy<char>(value,in_value,(strlen(in_value)+1));
+-	step  = UNDEF;
++	//step = UNDEF;  Update: can't define an int as UNDEF, ends up as garbage.
++	step  = 0; //this result needs to end up in the first step. (used to be UNDEF, which is garbage for an int type)
+ 	time  = UNDEF;
+ 
+ 	/*Convert enum to name*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19801-19802.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19801-19802.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19801-19802.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19801)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 19802)
+@@ -32,6 +32,7 @@
+         public:
+                 /*GenericParam constructors, destructors: {{{*/
+                 GenericParam(int enumVal) : myEnumVal(enumVal){};
++                GenericParam(P Pin, int enumVal) : myP(Pin),myEnumVal(enumVal){};
+                 ~GenericParam(){};
+                 /*}}}*/
+                 /*Object virtual functions definitions:{{{ */
Index: /issm/oecreview/Archive/19101-20495/ISSM-19802-19803.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19802-19803.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19802-19803.diff	(revision 20498)
@@ -0,0 +1,68 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19802)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19803)
+@@ -2425,19 +2425,22 @@
+ 	output_fid=open_memstream(&outputbuffer,&outputsize); 
+ 	if(output_fid==NULL)_error_("FemModel::InitFromBuffers error message: could not initialize output stream");
+ 	this->parameters->SetParam(output_fid,OutputFilePointerEnum);
+-	
++	this->parameters->AddObject(new GenericParam<char**>(&outputbuffer,OutputBufferPointerEnum));
++	this->parameters->AddObject(new GenericParam<size_t*>(&outputsize,OutputBufferSizePointerEnum));
++
+ 	/*Clean up*/
+ 	delete iomodel;
+ }/*}}}*/
+-void FemModel::CleanUpJs(void){/*{{{*/
++void FemModel::CleanUpJs(char** poutput, size_t* psize){/*{{{*/
+ 
+ 	/*Intermediary*/
+ 	FILE *output_fid;
++	GenericParam<char**>* outputbufferparam=NULL;
++	GenericParam<size_t*>* outputbuffersizeparam=NULL;
++	char** poutputbuffer;
++	size_t* poutputbuffersize;
+ 
+-	/*Close output file: */
+-	this->parameters->FindParam(&output_fid,OutputFilePointerEnum);
+-	fclose(output_fid);
+-
++	
+ 	/*Before we delete the profiler, report statistics for this run: */
+ 	profiler->Tag(Finish);  //final tagging
+ 	_printf0_("\n");
+@@ -2450,6 +2453,21 @@
+ 				<<profiler->DeltaTimeModSec(Start,Finish)<<" sec"
+ 				);
+ 	_printf0_("\n");
++	
++	/*Before we close the output file, recover the buffer and size:*/
++	outputbufferparam = xDynamicCast<GenericParam<char**>*>(this->parameters->FindParamObject(OutputBufferPointerEnum));
++	poutputbuffer=outputbufferparam->GetParameterValue();
++	outputbuffersizeparam = xDynamicCast<GenericParam<size_t*>*>(this->parameters->FindParamObject(OutputBufferSizePointerEnum));
++	poutputbuffersize=outputbuffersizeparam->GetParameterValue();
++
++	/*Close output file. Watch out, only close the output file after recovering the buffer pointers. Not sure 
++	 * why, but otherwise, the buffers are garbage: */
++	this->parameters->FindParam(&output_fid,OutputFilePointerEnum);
++	fclose(output_fid);
++
++	/*Assign output values: */
++	*poutput=*poutputbuffer;
++	*psize=*poutputbuffersize;
+ }
+ /*}}}*/
+ #endif
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19802)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19803)
+@@ -122,7 +122,7 @@
+ 		#ifdef _HAVE_JAVASCRIPT_
+ 		FemModel(IssmDouble* buffer, int buffersize, char* toolkits, char* solution, char* modelname,ISSM_MPI_Comm incomm, bool trace=false);
+ 		void InitFromBuffers(char* buffer, int buffersize, char* toolkits, int solution_type,bool trace,IssmPDouble* X=NULL);
+-		void CleanUpJs(void);
++		void CleanUpJs(char** poutput, size_t* psize);
+ 		#endif
+ };
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-19803-19804.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19803-19804.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19803-19804.diff	(revision 20498)
@@ -0,0 +1,67 @@
+Index: ../trunk-jpl/src/c/shared/Enum/Synchronize.sh
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19803)
++++ ../trunk-jpl/src/c/shared/Enum/Synchronize.sh	(revision 19804)
+@@ -7,6 +7,7 @@
+ #Removed existing files
+ rm $ISSM_DIR/src/m/enum/*.m
+ rm $ISSM_DIR/src/m/enum/*.py
++rm $ISSM_DIR/src/m/enum/*.js
+ rm $ISSM_DIR/src/c/shared/Enum/EnumToStringx.cpp
+ rm $ISSM_DIR/src/c/shared/Enum/StringToEnumx.cpp
+ 
+@@ -205,7 +206,14 @@
+ //Please read src/c/shared/Enum/README for more information
+ END
+ #core
+-cat temp |  awk '{print "function " $1"(){ return StringToEnum(\"" substr($1,1,length($1)-4) "\");\}"}' >> $ISSM_DIR/src/m/enum/EnumDefinitions.js
++ENUM=0;
++for NAMEENUM in $(cat temp); do
++	#Get name and enum of the line i
++	NAME=$(echo $NAMEENUM | sed -e "s/Enum//g")
++	echo "function ${NAME}Enum(){ return $ENUM;}" >> $ISSM_DIR/src/m/enum/EnumDefinitions.js
++	#offset Enum by one (Enum begins with 0 and not 1!)
++	let ENUM=$ENUM+1
++done
+ #}}}
+ 
+ #Deal with Matlab Enums`
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19803)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19804)
+@@ -952,6 +952,8 @@
+ 	IntersectEnum,
+ 	NodalEnum,
+ 	OldGradientEnum,
++	OutputBufferPointerEnum,
++	OutputBufferSizePointerEnum,
+ 	OutputFilePointerEnum,
+ 	ToolkitsFileNameEnum,
+ 	RootPathEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19803)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19804)
+@@ -920,6 +920,8 @@
+ 		case IntersectEnum : return "Intersect";
+ 		case NodalEnum : return "Nodal";
+ 		case OldGradientEnum : return "OldGradient";
++		case OutputBufferPointerEnum : return "OutputBufferPointer";
++		case OutputBufferSizePointerEnum : return "OutputBufferSizePointer";
+ 		case OutputFilePointerEnum : return "OutputFilePointer";
+ 		case ToolkitsFileNameEnum : return "ToolkitsFileName";
+ 		case RootPathEnum : return "RootPath";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19803)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19804)
+@@ -941,6 +941,8 @@
+ 	      else if (strcmp(name,"Intersect")==0) return IntersectEnum;
+ 	      else if (strcmp(name,"Nodal")==0) return NodalEnum;
+ 	      else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
++	      else if (strcmp(name,"OutputBufferPointer")==0) return OutputBufferPointerEnum;
++	      else if (strcmp(name,"OutputBufferSizePointer")==0) return OutputBufferSizePointerEnum;
+ 	      else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
+ 	      else if (strcmp(name,"ToolkitsFileName")==0) return ToolkitsFileNameEnum;
+ 	      else if (strcmp(name,"RootPath")==0) return RootPathEnum;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19804-19805.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19804-19805.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19804-19805.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19804)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19805)
+@@ -300,3 +300,11 @@
+ 
+ 	return arr;
+ } //}}}
++function MapIsEmpty(map) { //{{{
++	for (var key in map){
++		if(map.hasOwnProperty(key)){
++			return false;
++		}
++	}
++	return true;
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19805-19806.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19805-19806.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19805-19806.diff	(revision 20498)
@@ -0,0 +1,91 @@
+Index: ../trunk-jpl/src/wrappers/Issm/issm.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/Issm/issm.js	(revision 19805)
++++ ../trunk-jpl/src/wrappers/Issm/issm.js	(revision 19806)
+@@ -5,22 +5,34 @@
+ 		  string created by ToolkitsToFile and 
+ 		  output is a binary buffer to be read by loadresultsfromcluster.
+ */
++	
++	/*variables: */
++	var poutput,output,poutputsize,outputsize;
++	var dbinaryPtr,binHeap,binary,binarybuffer,nb
+ 
+-	var binarybuffer=fid.rawbuffer(); //binarybuffer is now an arraybuffer
+-	var nb = fid.ptr; //size of array buffer in bytes.
++	/*recover input buffer: */
++	binarybuffer=fid.rawbuffer(); //binarybuffer is now an arraybuffer
++	nb = fid.ptr; //size of array buffer in bytes.
+ 
+-	/*var dbinary=new Float64Array(binarybuffer); var nb=dbinary.length * dbinary.BYTES_PER_ELEMENT;
+-	var dbinaryPtr= Module._malloc(nb); var binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
+-	binHeap.set(new Uint8Array(dbinary.buffer)); var binary=binHeap.byteOffset;*/
++	/*dyanmically allocate the raw buffer onto the Module heap: */
++	dbinaryPtr= Module._malloc(nb); binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
++	binHeap.set(new Uint8Array(binarybuffer)); binary=binHeap.byteOffset;
+ 
+-	var dbinaryPtr= Module._malloc(nb); var binHeap = new Uint8Array(Module.HEAPU8.buffer,dbinaryPtr,nb);
+-	binHeap.set(new Uint8Array(binarybuffer)); var binary=binHeap.byteOffset;
++	/*allocate output pointers: */
++	poutputsize = Module._malloc(4); 
++	poutput = Module._malloc(4); 
+ 
+ 	//Declare TriMesh module: 
+-	issmmodule= Module.cwrap('IssmModule','number',['number','number','string','string','string']);
++	issmmodule= Module.cwrap('IssmModule','number',['number','number','number','number','string','string','string']);
+ 	
+ 	//Call issm:
+-	var output = issmmodule(binary, nb, toolkitstring,solutionstring,modelname);
++	issmmodule(poutput, poutputsize,binary, nb, toolkitstring,solutionstring,modelname);
++
++	//recover outputs from pointers: 
++	var outputsize = Module.getValue(poutputsize,'i32');
+ 	
+-	return output;
++	var outputptr = Module.getValue(poutput,'i32');
++	output = Module.HEAP8.slice(outputptr, outputptr + outputsize);
++	
++	return [output,outputsize];
+ }
+Index: ../trunk-jpl/src/wrappers/Issm/issm.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/Issm/issm.cpp	(revision 19805)
++++ ../trunk-jpl/src/wrappers/Issm/issm.cpp	(revision 19806)
+@@ -5,8 +5,12 @@
+ #include "../../c/main/issm.h"
+ 
+ extern "C" { 
+-	int IssmModule(double* buffer, int buffersize, char* toolkits,char* solution,char* modelname){
++	int IssmModule(char** poutput,int* poutputsize, double* buffer, int buffersize, char* toolkits,char* solution,char* modelname){
+ 
++		/*output variables:*/
++		char* output=NULL;
++		size_t size;
++
+ 		/*Initialize exception trapping: */
+ 		ExceptionTrapBegin();
+ 
+@@ -23,7 +27,7 @@
+ 		OutputResultsx(femmodel);
+ 
+ 		/*Wrap up: */
+-		femmodel->CleanUpJs();
++		femmodel->CleanUpJs(&output,&size);
+ 
+ 		/*Delete Model: */
+ 		delete femmodel;
+@@ -34,8 +38,12 @@
+ 		/*Finalize exception trapping: */
+ 		ExceptionTrapEnd();
+ 
+-		/*Return unix success: */
+-		return 0; 
++		/*Assign output pointers:*/
++		*poutputsize=(int)size;
++		*poutput=output;
+ 
++		/*Return output stream: */
++		return 0 ;
++
+ 	} 
+ } //extern "C" 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19806-19807.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19806-19807.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19806-19807.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/materials/paterson.js
+===================================================================
+--- ../trunk-jpl/src/m/materials/paterson.js	(revision 19806)
++++ ../trunk-jpl/src/m/materials/paterson.js	(revision 19807)
+@@ -44,7 +44,7 @@
+ 		if(-15<=T[i] & T[i]<-10)   rigidity[i]=Math.pow(10,8)*(-0.000899763781026*Math.pow(T[i]+15,3)+ 0.003632585458564*Math.pow(T[i]+15,2)  -0.044137585824322*(T[i]+15)+  1.510778053489523);
+ 		if(-10<=T[i] & T[i]<-5)    rigidity[i]=Math.pow(10,8)*(0.001676964325070*Math.pow(T[i]+10,3)-  0.009863871256831*Math.pow(T[i]+10,2)  -0.075294014815659*(T[i]+10)+  1.268434288203714);
+ 		if(-5<=T[i] & T[i]<-2)     rigidity[i]=Math.pow(10,8)*(-0.003748937622487*Math.pow(T[i]+5,3)+0.015290593619213*Math.pow(T[i]+5,2)  -0.048160403003748*(T[i]+5)+  0.854987973338348);
+-		if(-2<=T[i]);              rigidity[i]=Math.pow(10,8)*(-0.003748937622488*Math.pow(T[i]+2,3)-0.018449844983174*Math.pow(T[i]+2,2)  -0.057638157095631*(T[i]+2)+  0.746900791092860);
++		if(-2<=T[i])              rigidity[i]=Math.pow(10,8)*(-0.003748937622488*Math.pow(T[i]+2,3)-0.018449844983174*Math.pow(T[i]+2,2)  -0.057638157095631*(T[i]+2)+  0.746900791092860);
+ 
+ 		//Now make sure that rigidity is positive
+ 		if(rigidity[i]<0)          rigidity[i]=Math.pow(10,6);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19807-19808.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19807-19808.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19807-19808.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19807)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19808)
+@@ -116,11 +116,15 @@
+ 	return modelMatrix;
+ } //}}}
+ function rgb(value, min, max) { //{{{
++	
++	var normalizedValue;
+ 					
+ 	colorbar=colorbars["rainbow"];
+ 
+ 	value = clamp(value, min, max);
+-	var normalizedValue = (value - min) / (max - min);
++	if((max-min)!=0) normalizedValue = (value - min) / (max - min);
++	else normalizedValue = value;
++
+ 	var index = clamp(Math.round(normalizedValue * colorbar.length), 0, colorbar.length - 1);
+ 	return colorbar[index];
+ } //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19808-19809.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19808-19809.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19808-19809.diff	(revision 20498)
@@ -0,0 +1,1953 @@
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19808)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19809)
+@@ -1,952 +1,954 @@
+ //WARNING: DO NOT MODIFY THIS FILE
+ //this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+ //Please read src/c/shared/Enum/README for more information
+-function FemModelEnum(){ return StringToEnum("FemModel");}
+-function AutodiffIsautodiffEnum(){ return StringToEnum("AutodiffIsautodiff");}
+-function AutodiffNumDependentsEnum(){ return StringToEnum("AutodiffNumDependents");}
+-function AutodiffNumDependentObjectsEnum(){ return StringToEnum("AutodiffNumDependentObjects");}
+-function AutodiffDependentObjectNamesEnum(){ return StringToEnum("AutodiffDependentObjectNames");}
+-function AutodiffDependentObjectTypesEnum(){ return StringToEnum("AutodiffDependentObjectTypes");}
+-function AutodiffDependentObjectIndicesEnum(){ return StringToEnum("AutodiffDependentObjectIndices");}
+-function AutodiffDependentObjectsEnum(){ return StringToEnum("AutodiffDependentObjects");}
+-function AutodiffNumIndependentsEnum(){ return StringToEnum("AutodiffNumIndependents");}
+-function AutodiffNumIndependentObjectsEnum(){ return StringToEnum("AutodiffNumIndependentObjects");}
+-function AutodiffIndependentObjectNamesEnum(){ return StringToEnum("AutodiffIndependentObjectNames");}
+-function AutodiffIndependentObjectTypesEnum(){ return StringToEnum("AutodiffIndependentObjectTypes");}
+-function AutodiffIndependentObjectsEnum(){ return StringToEnum("AutodiffIndependentObjects");}
+-function AutodiffJacobianEnum(){ return StringToEnum("AutodiffJacobian");}
+-function AutodiffXpEnum(){ return StringToEnum("AutodiffXp");}
+-function AutodiffDriverEnum(){ return StringToEnum("AutodiffDriver");}
+-function AutodiffFosForwardIndexEnum(){ return StringToEnum("AutodiffFosForwardIndex");}
+-function AutodiffFovForwardIndicesEnum(){ return StringToEnum("AutodiffFovForwardIndices");}
+-function AutodiffFosReverseIndexEnum(){ return StringToEnum("AutodiffFosReverseIndex");}
+-function AutodiffMassFluxSegmentsPresentEnum(){ return StringToEnum("AutodiffMassFluxSegmentsPresent");}
+-function AutodiffKeepEnum(){ return StringToEnum("AutodiffKeep");}
+-function AutodiffObufsizeEnum(){ return StringToEnum("AutodiffObufsize");}
+-function AutodiffLbufsizeEnum(){ return StringToEnum("AutodiffLbufsize");}
+-function AutodiffCbufsizeEnum(){ return StringToEnum("AutodiffCbufsize");}
+-function AutodiffTbufsizeEnum(){ return StringToEnum("AutodiffTbufsize");}
+-function AutodiffGcTriggerRatioEnum(){ return StringToEnum("AutodiffGcTriggerRatio");}
+-function AutodiffGcTriggerMaxSizeEnum(){ return StringToEnum("AutodiffGcTriggerMaxSize");}
+-function BalancethicknessSpcthicknessEnum(){ return StringToEnum("BalancethicknessSpcthickness");}
+-function BalancethicknessStabilizationEnum(){ return StringToEnum("BalancethicknessStabilization");}
+-function BalancethicknessThickeningRateEnum(){ return StringToEnum("BalancethicknessThickeningRate");}
+-function BasalforcingsEnum(){ return StringToEnum("Basalforcings");}
+-function BasalforcingsGeothermalfluxEnum(){ return StringToEnum("BasalforcingsGeothermalflux");}
+-function BasalforcingsGroundediceMeltingRateEnum(){ return StringToEnum("BasalforcingsGroundediceMeltingRate");}
+-function BasalforcingsFloatingiceMeltingRateEnum(){ return StringToEnum("BasalforcingsFloatingiceMeltingRate");}
+-function BasalforcingsDeepwaterMeltingRateEnum(){ return StringToEnum("BasalforcingsDeepwaterMeltingRate");}
+-function BasalforcingsDeepwaterElevationEnum(){ return StringToEnum("BasalforcingsDeepwaterElevation");}
+-function BasalforcingsUpperwaterElevationEnum(){ return StringToEnum("BasalforcingsUpperwaterElevation");}
+-function BasalforcingsMeltrateFactorEnum(){ return StringToEnum("BasalforcingsMeltrateFactor");}
+-function BasalforcingsThresholdThicknessEnum(){ return StringToEnum("BasalforcingsThresholdThickness");}
+-function BasalforcingsUpperdepthMeltEnum(){ return StringToEnum("BasalforcingsUpperdepthMelt");}
+-function FloatingMeltRateEnum(){ return StringToEnum("FloatingMeltRate");}
+-function LinearFloatingMeltRateEnum(){ return StringToEnum("LinearFloatingMeltRate");}
+-function MismipFloatingMeltRateEnum(){ return StringToEnum("MismipFloatingMeltRate");}
+-function BedEnum(){ return StringToEnum("Bed");}
+-function BaseEnum(){ return StringToEnum("Base");}
+-function ConstantsGEnum(){ return StringToEnum("ConstantsG");}
+-function ConstantsReferencetemperatureEnum(){ return StringToEnum("ConstantsReferencetemperature");}
+-function ConstantsYtsEnum(){ return StringToEnum("ConstantsYts");}
+-function DependentObjectEnum(){ return StringToEnum("DependentObject");}
+-function StressbalanceAbstolEnum(){ return StringToEnum("StressbalanceAbstol");}
+-function StressbalanceIsnewtonEnum(){ return StringToEnum("StressbalanceIsnewton");}
+-function StressbalanceMaxiterEnum(){ return StringToEnum("StressbalanceMaxiter");}
+-function StressbalancePenaltyFactorEnum(){ return StringToEnum("StressbalancePenaltyFactor");}
+-function StressbalanceReferentialEnum(){ return StringToEnum("StressbalanceReferential");}
+-function StressbalanceReltolEnum(){ return StringToEnum("StressbalanceReltol");}
+-function StressbalanceNumRequestedOutputsEnum(){ return StringToEnum("StressbalanceNumRequestedOutputs");}
+-function StressbalanceRequestedOutputsEnum(){ return StringToEnum("StressbalanceRequestedOutputs");}
+-function StressbalanceRestolEnum(){ return StringToEnum("StressbalanceRestol");}
+-function StressbalanceRiftPenaltyLockEnum(){ return StringToEnum("StressbalanceRiftPenaltyLock");}
+-function StressbalanceRiftPenaltyThresholdEnum(){ return StringToEnum("StressbalanceRiftPenaltyThreshold");}
+-function StressbalanceShelfDampeningEnum(){ return StringToEnum("StressbalanceShelfDampening");}
+-function StressbalanceSpcvxEnum(){ return StringToEnum("StressbalanceSpcvx");}
+-function StressbalanceSpcvyEnum(){ return StringToEnum("StressbalanceSpcvy");}
+-function StressbalanceSpcvzEnum(){ return StringToEnum("StressbalanceSpcvz");}
+-function StressbalanceFSreconditioningEnum(){ return StringToEnum("StressbalanceFSreconditioning");}
+-function StressbalanceVertexPairingEnum(){ return StringToEnum("StressbalanceVertexPairing");}
+-function StressbalanceViscosityOvershootEnum(){ return StringToEnum("StressbalanceViscosityOvershoot");}
+-function LoadingforceXEnum(){ return StringToEnum("LoadingforceX");}
+-function LoadingforceYEnum(){ return StringToEnum("LoadingforceY");}
+-function LoadingforceZEnum(){ return StringToEnum("LoadingforceZ");}
+-function FlowequationBorderSSAEnum(){ return StringToEnum("FlowequationBorderSSA");}
+-function FlowequationBorderHOEnum(){ return StringToEnum("FlowequationBorderHO");}
+-function FlowequationBorderFSEnum(){ return StringToEnum("FlowequationBorderFS");}
+-function FlowequationElementEquationEnum(){ return StringToEnum("FlowequationElementEquation");}
+-function FlowequationIsSIAEnum(){ return StringToEnum("FlowequationIsSIA");}
+-function FlowequationIsSSAEnum(){ return StringToEnum("FlowequationIsSSA");}
+-function FlowequationIsL1L2Enum(){ return StringToEnum("FlowequationIsL1L2");}
+-function FlowequationIsHOEnum(){ return StringToEnum("FlowequationIsHO");}
+-function FlowequationIsFSEnum(){ return StringToEnum("FlowequationIsFS");}
+-function FlowequationFeSSAEnum(){ return StringToEnum("FlowequationFeSSA");}
+-function FlowequationFeHOEnum(){ return StringToEnum("FlowequationFeHO");}
+-function FlowequationFeFSEnum(){ return StringToEnum("FlowequationFeFS");}
+-function FlowequationVertexEquationEnum(){ return StringToEnum("FlowequationVertexEquation");}
+-function FrictionAsEnum(){ return StringToEnum("FrictionAs");}
+-function FrictionCoefficientEnum(){ return StringToEnum("FrictionCoefficient");}
+-function FrictionCoefficientcoulombEnum(){ return StringToEnum("FrictionCoefficientcoulomb");}
+-function FrictionPEnum(){ return StringToEnum("FrictionP");}
+-function FrictionQEnum(){ return StringToEnum("FrictionQ");}
+-function FrictionMEnum(){ return StringToEnum("FrictionM");}
+-function FrictionCEnum(){ return StringToEnum("FrictionC");}
+-function FrictionLawEnum(){ return StringToEnum("FrictionLaw");}
+-function FrictionGammaEnum(){ return StringToEnum("FrictionGamma");}
+-function FrictionFEnum(){ return StringToEnum("FrictionF");}
+-function FrictionWaterLayerEnum(){ return StringToEnum("FrictionWaterLayer");}
+-function FrictionEffectivePressureEnum(){ return StringToEnum("FrictionEffectivePressure");}
+-function FrictionCouplingEnum(){ return StringToEnum("FrictionCoupling");}
+-function GeometryHydrostaticRatioEnum(){ return StringToEnum("GeometryHydrostaticRatio");}
+-function HydrologyModelEnum(){ return StringToEnum("HydrologyModel");}
+-function HydrologyshreveEnum(){ return StringToEnum("Hydrologyshreve");}
+-function HydrologyshreveSpcwatercolumnEnum(){ return StringToEnum("HydrologyshreveSpcwatercolumn");}
+-function HydrologyshreveStabilizationEnum(){ return StringToEnum("HydrologyshreveStabilization");}
+-function HydrologydcEnum(){ return StringToEnum("Hydrologydc");}
+-function SedimentHeadEnum(){ return StringToEnum("SedimentHead");}
+-function SedimentHeadOldEnum(){ return StringToEnum("SedimentHeadOld");}
+-function SedimentHeadResidualEnum(){ return StringToEnum("SedimentHeadResidual");}
+-function EffectivePressureEnum(){ return StringToEnum("EffectivePressure");}
+-function EplHeadEnum(){ return StringToEnum("EplHead");}
+-function EplHeadOldEnum(){ return StringToEnum("EplHeadOld");}
+-function EplHeadSlopeXEnum(){ return StringToEnum("EplHeadSlopeX");}
+-function EplHeadSlopeYEnum(){ return StringToEnum("EplHeadSlopeY");}
+-function EplZigZagCounterEnum(){ return StringToEnum("EplZigZagCounter");}
+-function HydrologydcMaxIterEnum(){ return StringToEnum("HydrologydcMaxIter");}
+-function HydrologydcRelTolEnum(){ return StringToEnum("HydrologydcRelTol");}
+-function HydrologydcSpcsedimentHeadEnum(){ return StringToEnum("HydrologydcSpcsedimentHead");}
+-function HydrologydcSedimentCompressibilityEnum(){ return StringToEnum("HydrologydcSedimentCompressibility");}
+-function HydrologydcSedimentPorosityEnum(){ return StringToEnum("HydrologydcSedimentPorosity");}
+-function HydrologydcSedimentThicknessEnum(){ return StringToEnum("HydrologydcSedimentThickness");}
+-function HydrologydcSedimentTransmitivityEnum(){ return StringToEnum("HydrologydcSedimentTransmitivity");}
+-function HydrologydcWaterCompressibilityEnum(){ return StringToEnum("HydrologydcWaterCompressibility");}
+-function HydrologydcSpceplHeadEnum(){ return StringToEnum("HydrologydcSpceplHead");}
+-function HydrologydcMaskEplactiveNodeEnum(){ return StringToEnum("HydrologydcMaskEplactiveNode");}
+-function HydrologydcMaskEplactiveEltEnum(){ return StringToEnum("HydrologydcMaskEplactiveElt");}
+-function HydrologydcEplCompressibilityEnum(){ return StringToEnum("HydrologydcEplCompressibility");}
+-function HydrologydcEplPorosityEnum(){ return StringToEnum("HydrologydcEplPorosity");}
+-function HydrologydcEplInitialThicknessEnum(){ return StringToEnum("HydrologydcEplInitialThickness");}
+-function HydrologydcEplColapseThicknessEnum(){ return StringToEnum("HydrologydcEplColapseThickness");}
+-function HydrologydcEplMaxThicknessEnum(){ return StringToEnum("HydrologydcEplMaxThickness");}
+-function HydrologydcEplThicknessEnum(){ return StringToEnum("HydrologydcEplThickness");}
+-function HydrologydcEplThicknessOldEnum(){ return StringToEnum("HydrologydcEplThicknessOld");}
+-function HydrologydcEplThickCompEnum(){ return StringToEnum("HydrologydcEplThickComp");}
+-function HydrologydcEplConductivityEnum(){ return StringToEnum("HydrologydcEplConductivity");}
+-function HydrologydcIsefficientlayerEnum(){ return StringToEnum("HydrologydcIsefficientlayer");}
+-function HydrologydcSedimentlimitFlagEnum(){ return StringToEnum("HydrologydcSedimentlimitFlag");}
+-function HydrologydcSedimentlimitEnum(){ return StringToEnum("HydrologydcSedimentlimit");}
+-function HydrologydcTransferFlagEnum(){ return StringToEnum("HydrologydcTransferFlag");}
+-function HydrologydcLeakageFactorEnum(){ return StringToEnum("HydrologydcLeakageFactor");}
+-function HydrologydcPenaltyFactorEnum(){ return StringToEnum("HydrologydcPenaltyFactor");}
+-function HydrologydcPenaltyLockEnum(){ return StringToEnum("HydrologydcPenaltyLock");}
+-function HydrologydcEplflipLockEnum(){ return StringToEnum("HydrologydcEplflipLock");}
+-function HydrologydcBasalMoulinInputEnum(){ return StringToEnum("HydrologydcBasalMoulinInput");}
+-function HydrologyLayerEnum(){ return StringToEnum("HydrologyLayer");}
+-function HydrologySedimentEnum(){ return StringToEnum("HydrologySediment");}
+-function HydrologyEfficientEnum(){ return StringToEnum("HydrologyEfficient");}
+-function HydrologySedimentKmaxEnum(){ return StringToEnum("HydrologySedimentKmax");}
+-function HydrologysommersEnum(){ return StringToEnum("Hydrologysommers");}
+-function HydrologyHeadEnum(){ return StringToEnum("HydrologyHead");}
+-function HydrologyGapHeightEnum(){ return StringToEnum("HydrologyGapHeight");}
+-function HydrologyBumpSpacingEnum(){ return StringToEnum("HydrologyBumpSpacing");}
+-function HydrologyBumpHeightEnum(){ return StringToEnum("HydrologyBumpHeight");}
+-function HydrologyEnglacialInputEnum(){ return StringToEnum("HydrologyEnglacialInput");}
+-function HydrologyMoulinInputEnum(){ return StringToEnum("HydrologyMoulinInput");}
+-function HydrologyReynoldsEnum(){ return StringToEnum("HydrologyReynolds");}
+-function HydrologyNeumannfluxEnum(){ return StringToEnum("HydrologyNeumannflux");}
+-function HydrologySpcheadEnum(){ return StringToEnum("HydrologySpchead");}
+-function HydrologyConductivityEnum(){ return StringToEnum("HydrologyConductivity");}
+-function IndependentObjectEnum(){ return StringToEnum("IndependentObject");}
+-function InversionControlParametersEnum(){ return StringToEnum("InversionControlParameters");}
+-function InversionControlScalingFactorsEnum(){ return StringToEnum("InversionControlScalingFactors");}
+-function InversionCostFunctionThresholdEnum(){ return StringToEnum("InversionCostFunctionThreshold");}
+-function InversionCostFunctionsCoefficientsEnum(){ return StringToEnum("InversionCostFunctionsCoefficients");}
+-function InversionCostFunctionsEnum(){ return StringToEnum("InversionCostFunctions");}
+-function InversionGradientScalingEnum(){ return StringToEnum("InversionGradientScaling");}
+-function InversionIscontrolEnum(){ return StringToEnum("InversionIscontrol");}
+-function InversionTypeEnum(){ return StringToEnum("InversionType");}
+-function InversionIncompleteAdjointEnum(){ return StringToEnum("InversionIncompleteAdjoint");}
+-function InversionMaxParametersEnum(){ return StringToEnum("InversionMaxParameters");}
+-function InversionMaxiterPerStepEnum(){ return StringToEnum("InversionMaxiterPerStep");}
+-function InversionMaxiterEnum(){ return StringToEnum("InversionMaxiter");}
+-function InversionMaxstepsEnum(){ return StringToEnum("InversionMaxsteps");}
+-function InversionFatolEnum(){ return StringToEnum("InversionFatol");}
+-function InversionFrtolEnum(){ return StringToEnum("InversionFrtol");}
+-function InversionGatolEnum(){ return StringToEnum("InversionGatol");}
+-function InversionGrtolEnum(){ return StringToEnum("InversionGrtol");}
+-function InversionGttolEnum(){ return StringToEnum("InversionGttol");}
+-function InversionAlgorithmEnum(){ return StringToEnum("InversionAlgorithm");}
+-function InversionMinParametersEnum(){ return StringToEnum("InversionMinParameters");}
+-function InversionNstepsEnum(){ return StringToEnum("InversionNsteps");}
+-function InversionDxminEnum(){ return StringToEnum("InversionDxmin");}
+-function InversionNumControlParametersEnum(){ return StringToEnum("InversionNumControlParameters");}
+-function InversionNumCostFunctionsEnum(){ return StringToEnum("InversionNumCostFunctions");}
+-function InversionStepThresholdEnum(){ return StringToEnum("InversionStepThreshold");}
+-function InversionThicknessObsEnum(){ return StringToEnum("InversionThicknessObs");}
+-function InversionSurfaceObsEnum(){ return StringToEnum("InversionSurfaceObs");}
+-function InversionVxObsEnum(){ return StringToEnum("InversionVxObs");}
+-function InversionVyObsEnum(){ return StringToEnum("InversionVyObs");}
+-function InversionVzObsEnum(){ return StringToEnum("InversionVzObs");}
+-function MaskIceLevelsetEnum(){ return StringToEnum("MaskIceLevelset");}
+-function MaterialsBetaEnum(){ return StringToEnum("MaterialsBeta");}
+-function MaterialsHeatcapacityEnum(){ return StringToEnum("MaterialsHeatcapacity");}
+-function MaterialsLatentheatEnum(){ return StringToEnum("MaterialsLatentheat");}
+-function MaterialsMeltingpointEnum(){ return StringToEnum("MaterialsMeltingpoint");}
+-function MaterialsMixedLayerCapacityEnum(){ return StringToEnum("MaterialsMixedLayerCapacity");}
+-function MaterialsRheologyBEnum(){ return StringToEnum("MaterialsRheologyB");}
+-function MaterialsRheologyBbarEnum(){ return StringToEnum("MaterialsRheologyBbar");}
+-function MaterialsRheologyLawEnum(){ return StringToEnum("MaterialsRheologyLaw");}
+-function MaterialsRheologyNEnum(){ return StringToEnum("MaterialsRheologyN");}
+-function DamageIsdamageEnum(){ return StringToEnum("DamageIsdamage");}
+-function DamageDEnum(){ return StringToEnum("DamageD");}
+-function DamageFEnum(){ return StringToEnum("DamageF");}
+-function DamageDbarEnum(){ return StringToEnum("DamageDbar");}
+-function DamageLawEnum(){ return StringToEnum("DamageLaw");}
+-function DamageC1Enum(){ return StringToEnum("DamageC1");}
+-function DamageC2Enum(){ return StringToEnum("DamageC2");}
+-function DamageC3Enum(){ return StringToEnum("DamageC3");}
+-function DamageC4Enum(){ return StringToEnum("DamageC4");}
+-function DamageElementinterpEnum(){ return StringToEnum("DamageElementinterp");}
+-function DamageHealingEnum(){ return StringToEnum("DamageHealing");}
+-function DamageStressThresholdEnum(){ return StringToEnum("DamageStressThreshold");}
+-function DamageKappaEnum(){ return StringToEnum("DamageKappa");}
+-function DamageStabilizationEnum(){ return StringToEnum("DamageStabilization");}
+-function DamageMaxiterEnum(){ return StringToEnum("DamageMaxiter");}
+-function DamageSpcdamageEnum(){ return StringToEnum("DamageSpcdamage");}
+-function DamageMaxDamageEnum(){ return StringToEnum("DamageMaxDamage");}
+-function DamageEquivStressEnum(){ return StringToEnum("DamageEquivStress");}
+-function DamageEvolutionNumRequestedOutputsEnum(){ return StringToEnum("DamageEvolutionNumRequestedOutputs");}
+-function DamageEvolutionRequestedOutputsEnum(){ return StringToEnum("DamageEvolutionRequestedOutputs");}
+-function DamageEnum(){ return StringToEnum("Damage");}
+-function NewDamageEnum(){ return StringToEnum("NewDamage");}
+-function StressIntensityFactorEnum(){ return StringToEnum("StressIntensityFactor");}
+-function CalvingLawEnum(){ return StringToEnum("CalvingLaw");}
+-function CalvingCalvingrateEnum(){ return StringToEnum("CalvingCalvingrate");}
+-function CalvingMeltingrateEnum(){ return StringToEnum("CalvingMeltingrate");}
+-function CalvingLevermannEnum(){ return StringToEnum("CalvingLevermann");}
+-function CalvingPiEnum(){ return StringToEnum("CalvingPi");}
+-function CalvingDevEnum(){ return StringToEnum("CalvingDev");}
+-function DefaultCalvingEnum(){ return StringToEnum("DefaultCalving");}
+-function CalvingRequestedOutputsEnum(){ return StringToEnum("CalvingRequestedOutputs");}
+-function CalvinglevermannCoeffEnum(){ return StringToEnum("CalvinglevermannCoeff");}
+-function CalvinglevermannMeltingrateEnum(){ return StringToEnum("CalvinglevermannMeltingrate");}
+-function CalvingpiCoeffEnum(){ return StringToEnum("CalvingpiCoeff");}
+-function CalvingpiMeltingrateEnum(){ return StringToEnum("CalvingpiMeltingrate");}
+-function CalvingratexEnum(){ return StringToEnum("Calvingratex");}
+-function CalvingrateyEnum(){ return StringToEnum("Calvingratey");}
+-function CalvingratexAverageEnum(){ return StringToEnum("CalvingratexAverage");}
+-function CalvingrateyAverageEnum(){ return StringToEnum("CalvingrateyAverage");}
+-function StrainRateparallelEnum(){ return StringToEnum("StrainRateparallel");}
+-function StrainRateperpendicularEnum(){ return StringToEnum("StrainRateperpendicular");}
+-function StrainRateeffectiveEnum(){ return StringToEnum("StrainRateeffective");}
+-function MaterialsRhoIceEnum(){ return StringToEnum("MaterialsRhoIce");}
+-function MaterialsRhoSeawaterEnum(){ return StringToEnum("MaterialsRhoSeawater");}
+-function MaterialsRhoFreshwaterEnum(){ return StringToEnum("MaterialsRhoFreshwater");}
+-function MaterialsMuWaterEnum(){ return StringToEnum("MaterialsMuWater");}
+-function MaterialsThermalExchangeVelocityEnum(){ return StringToEnum("MaterialsThermalExchangeVelocity");}
+-function MaterialsThermalconductivityEnum(){ return StringToEnum("MaterialsThermalconductivity");}
+-function MaterialsTemperateiceconductivityEnum(){ return StringToEnum("MaterialsTemperateiceconductivity");}
+-function MaterialsLithosphereShearModulusEnum(){ return StringToEnum("MaterialsLithosphereShearModulus");}
+-function MaterialsLithosphereDensityEnum(){ return StringToEnum("MaterialsLithosphereDensity");}
+-function MaterialsMantleShearModulusEnum(){ return StringToEnum("MaterialsMantleShearModulus");}
+-function MaterialsMantleDensityEnum(){ return StringToEnum("MaterialsMantleDensity");}
+-function MeshAverageVertexConnectivityEnum(){ return StringToEnum("MeshAverageVertexConnectivity");}
+-function MeshElements2dEnum(){ return StringToEnum("MeshElements2d");}
+-function MeshElementsEnum(){ return StringToEnum("MeshElements");}
+-function MeshLowerelementsEnum(){ return StringToEnum("MeshLowerelements");}
+-function MeshNumberofelements2dEnum(){ return StringToEnum("MeshNumberofelements2d");}
+-function MeshNumberofelementsEnum(){ return StringToEnum("MeshNumberofelements");}
+-function MeshNumberoflayersEnum(){ return StringToEnum("MeshNumberoflayers");}
+-function MeshNumberofvertices2dEnum(){ return StringToEnum("MeshNumberofvertices2d");}
+-function MeshNumberofverticesEnum(){ return StringToEnum("MeshNumberofvertices");}
+-function MeshUpperelementsEnum(){ return StringToEnum("MeshUpperelements");}
+-function MeshVertexonbaseEnum(){ return StringToEnum("MeshVertexonbase");}
+-function MeshVertexonsurfaceEnum(){ return StringToEnum("MeshVertexonsurface");}
+-function MeshVertexonboundaryEnum(){ return StringToEnum("MeshVertexonboundary");}
+-function MeshXEnum(){ return StringToEnum("MeshX");}
+-function MeshYEnum(){ return StringToEnum("MeshY");}
+-function MeshZEnum(){ return StringToEnum("MeshZ");}
+-function MeshElementtypeEnum(){ return StringToEnum("MeshElementtype");}
+-function MeshSegmentsEnum(){ return StringToEnum("MeshSegments");}
+-function DomainTypeEnum(){ return StringToEnum("DomainType");}
+-function DomainDimensionEnum(){ return StringToEnum("DomainDimension");}
+-function Domain2DhorizontalEnum(){ return StringToEnum("Domain2Dhorizontal");}
+-function Domain2DverticalEnum(){ return StringToEnum("Domain2Dvertical");}
+-function Domain3DEnum(){ return StringToEnum("Domain3D");}
+-function MiscellaneousNameEnum(){ return StringToEnum("MiscellaneousName");}
+-function MasstransportHydrostaticAdjustmentEnum(){ return StringToEnum("MasstransportHydrostaticAdjustment");}
+-function MasstransportIsfreesurfaceEnum(){ return StringToEnum("MasstransportIsfreesurface");}
+-function MasstransportMinThicknessEnum(){ return StringToEnum("MasstransportMinThickness");}
+-function MasstransportPenaltyFactorEnum(){ return StringToEnum("MasstransportPenaltyFactor");}
+-function MasstransportSpcthicknessEnum(){ return StringToEnum("MasstransportSpcthickness");}
+-function MasstransportStabilizationEnum(){ return StringToEnum("MasstransportStabilization");}
+-function MasstransportVertexPairingEnum(){ return StringToEnum("MasstransportVertexPairing");}
+-function MasstransportNumRequestedOutputsEnum(){ return StringToEnum("MasstransportNumRequestedOutputs");}
+-function MasstransportRequestedOutputsEnum(){ return StringToEnum("MasstransportRequestedOutputs");}
+-function QmuIsdakotaEnum(){ return StringToEnum("QmuIsdakota");}
+-function MassFluxSegmentsEnum(){ return StringToEnum("MassFluxSegments");}
+-function MassFluxSegmentsPresentEnum(){ return StringToEnum("MassFluxSegmentsPresent");}
+-function QmuMassFluxSegmentsPresentEnum(){ return StringToEnum("QmuMassFluxSegmentsPresent");}
+-function QmuNumberofpartitionsEnum(){ return StringToEnum("QmuNumberofpartitions");}
+-function QmuNumberofresponsesEnum(){ return StringToEnum("QmuNumberofresponses");}
+-function QmuPartitionEnum(){ return StringToEnum("QmuPartition");}
+-function QmuResponsedescriptorsEnum(){ return StringToEnum("QmuResponsedescriptors");}
+-function QmuVariabledescriptorsEnum(){ return StringToEnum("QmuVariabledescriptors");}
+-function RiftsNumriftsEnum(){ return StringToEnum("RiftsNumrifts");}
+-function RiftsRiftstructEnum(){ return StringToEnum("RiftsRiftstruct");}
+-function SettingsResultsOnNodesEnum(){ return StringToEnum("SettingsResultsOnNodes");}
+-function SettingsIoGatherEnum(){ return StringToEnum("SettingsIoGather");}
+-function SettingsLowmemEnum(){ return StringToEnum("SettingsLowmem");}
+-function SettingsOutputFrequencyEnum(){ return StringToEnum("SettingsOutputFrequency");}
+-function SettingsRecordingFrequencyEnum(){ return StringToEnum("SettingsRecordingFrequency");}
+-function SettingsWaitonlockEnum(){ return StringToEnum("SettingsWaitonlock");}
+-function DebugProfilingEnum(){ return StringToEnum("DebugProfiling");}
+-function ProfilingCurrentMemEnum(){ return StringToEnum("ProfilingCurrentMem");}
+-function ProfilingCurrentFlopsEnum(){ return StringToEnum("ProfilingCurrentFlops");}
+-function ProfilingSolutionTimeEnum(){ return StringToEnum("ProfilingSolutionTime");}
+-function SteadystateMaxiterEnum(){ return StringToEnum("SteadystateMaxiter");}
+-function SteadystateNumRequestedOutputsEnum(){ return StringToEnum("SteadystateNumRequestedOutputs");}
+-function SteadystateReltolEnum(){ return StringToEnum("SteadystateReltol");}
+-function SteadystateRequestedOutputsEnum(){ return StringToEnum("SteadystateRequestedOutputs");}
+-function SurfaceEnum(){ return StringToEnum("Surface");}
+-function ThermalIsenthalpyEnum(){ return StringToEnum("ThermalIsenthalpy");}
+-function ThermalIsdynamicbasalspcEnum(){ return StringToEnum("ThermalIsdynamicbasalspc");}
+-function ThermalReltolEnum(){ return StringToEnum("ThermalReltol");}
+-function ThermalMaxiterEnum(){ return StringToEnum("ThermalMaxiter");}
+-function ThermalPenaltyFactorEnum(){ return StringToEnum("ThermalPenaltyFactor");}
+-function ThermalPenaltyLockEnum(){ return StringToEnum("ThermalPenaltyLock");}
+-function ThermalPenaltyThresholdEnum(){ return StringToEnum("ThermalPenaltyThreshold");}
+-function ThermalSpctemperatureEnum(){ return StringToEnum("ThermalSpctemperature");}
+-function ThermalStabilizationEnum(){ return StringToEnum("ThermalStabilization");}
+-function ThermalNumRequestedOutputsEnum(){ return StringToEnum("ThermalNumRequestedOutputs");}
+-function ThermalRequestedOutputsEnum(){ return StringToEnum("ThermalRequestedOutputs");}
+-function GiaMantleViscosityEnum(){ return StringToEnum("GiaMantleViscosity");}
+-function GiaLithosphereThicknessEnum(){ return StringToEnum("GiaLithosphereThickness");}
+-function ThicknessEnum(){ return StringToEnum("Thickness");}
+-function TimesteppingStartTimeEnum(){ return StringToEnum("TimesteppingStartTime");}
+-function TimesteppingFinalTimeEnum(){ return StringToEnum("TimesteppingFinalTime");}
+-function TimesteppingCflCoefficientEnum(){ return StringToEnum("TimesteppingCflCoefficient");}
+-function TimesteppingTimeAdaptEnum(){ return StringToEnum("TimesteppingTimeAdapt");}
+-function TimesteppingTimeStepEnum(){ return StringToEnum("TimesteppingTimeStep");}
+-function TimesteppingInterpForcingsEnum(){ return StringToEnum("TimesteppingInterpForcings");}
+-function TransientIssmbEnum(){ return StringToEnum("TransientIssmb");}
+-function TransientIsstressbalanceEnum(){ return StringToEnum("TransientIsstressbalance");}
+-function TransientIsgroundinglineEnum(){ return StringToEnum("TransientIsgroundingline");}
+-function TransientIsmasstransportEnum(){ return StringToEnum("TransientIsmasstransport");}
+-function TransientIsthermalEnum(){ return StringToEnum("TransientIsthermal");}
+-function TransientIsgiaEnum(){ return StringToEnum("TransientIsgia");}
+-function TransientIsdamageevolutionEnum(){ return StringToEnum("TransientIsdamageevolution");}
+-function TransientIshydrologyEnum(){ return StringToEnum("TransientIshydrology");}
+-function TransientIscalvingEnum(){ return StringToEnum("TransientIscalving");}
+-function TransientNumRequestedOutputsEnum(){ return StringToEnum("TransientNumRequestedOutputs");}
+-function TransientRequestedOutputsEnum(){ return StringToEnum("TransientRequestedOutputs");}
+-function PotentialEnum(){ return StringToEnum("Potential");}
+-function BalancethicknessSpcpotentialEnum(){ return StringToEnum("BalancethicknessSpcpotential");}
+-function BalancethicknessApparentMassbalanceEnum(){ return StringToEnum("BalancethicknessApparentMassbalance");}
+-function Balancethickness2MisfitEnum(){ return StringToEnum("Balancethickness2Misfit");}
+-function BalancethicknessDiffusionCoefficientEnum(){ return StringToEnum("BalancethicknessDiffusionCoefficient");}
+-function BalancethicknessCmuEnum(){ return StringToEnum("BalancethicknessCmu");}
+-function BalancethicknessOmegaEnum(){ return StringToEnum("BalancethicknessOmega");}
+-function BalancethicknessD0Enum(){ return StringToEnum("BalancethicknessD0");}
+-function SmbEnum(){ return StringToEnum("Smb");}
+-function SmbAnalysisEnum(){ return StringToEnum("SmbAnalysis");}
+-function SmbSolutionEnum(){ return StringToEnum("SmbSolution");}
+-function SmbNumRequestedOutputsEnum(){ return StringToEnum("SmbNumRequestedOutputs");}
+-function SmbRequestedOutputsEnum(){ return StringToEnum("SmbRequestedOutputs");}
+-function SmbIsInitializedEnum(){ return StringToEnum("SmbIsInitialized");}
+-function SMBforcingEnum(){ return StringToEnum("SMBforcing");}
+-function SmbMassBalanceEnum(){ return StringToEnum("SmbMassBalance");}
+-function SMBgembEnum(){ return StringToEnum("SMBgemb");}
+-function SmbInitDensityScalingEnum(){ return StringToEnum("SmbInitDensityScaling");}
+-function SmbTaEnum(){ return StringToEnum("SmbTa");}
+-function SmbVEnum(){ return StringToEnum("SmbV");}
+-function SmbDswrfEnum(){ return StringToEnum("SmbDswrf");}
+-function SmbDlwrfEnum(){ return StringToEnum("SmbDlwrf");}
+-function SmbPEnum(){ return StringToEnum("SmbP");}
+-function SmbSwfEnum(){ return StringToEnum("SmbSwf");}
+-function SmbEAirEnum(){ return StringToEnum("SmbEAir");}
+-function SmbPAirEnum(){ return StringToEnum("SmbPAir");}
+-function SmbTmeanEnum(){ return StringToEnum("SmbTmean");}
+-function SmbCEnum(){ return StringToEnum("SmbC");}
+-function SmbTzEnum(){ return StringToEnum("SmbTz");}
+-function SmbVzEnum(){ return StringToEnum("SmbVz");}
+-function SmbDtEnum(){ return StringToEnum("SmbDt");}
+-function SmbDzEnum(){ return StringToEnum("SmbDz");}
+-function SmbAIdxEnum(){ return StringToEnum("SmbAIdx");}
+-function SmbSwIdxEnum(){ return StringToEnum("SmbSwIdx");}
+-function SmbDenIdxEnum(){ return StringToEnum("SmbDenIdx");}
+-function SmbZTopEnum(){ return StringToEnum("SmbZTop");}
+-function SmbDzTopEnum(){ return StringToEnum("SmbDzTop");}
+-function SmbDzMinEnum(){ return StringToEnum("SmbDzMin");}
+-function SmbZYEnum(){ return StringToEnum("SmbZY");}
+-function SmbZMaxEnum(){ return StringToEnum("SmbZMax");}
+-function SmbZMinEnum(){ return StringToEnum("SmbZMin");}
+-function SmbOutputFreqEnum(){ return StringToEnum("SmbOutputFreq");}
+-function SmbASnowEnum(){ return StringToEnum("SmbASnow");}
+-function SmbAIceEnum(){ return StringToEnum("SmbAIce");}
+-function SmbCldFracEnum(){ return StringToEnum("SmbCldFrac");}
+-function SmbT0wetEnum(){ return StringToEnum("SmbT0wet");}
+-function SmbT0dryEnum(){ return StringToEnum("SmbT0dry");}
+-function SmbKEnum(){ return StringToEnum("SmbK");}
+-function SmbDEnum(){ return StringToEnum("SmbD");}
+-function SmbReEnum(){ return StringToEnum("SmbRe");}
+-function SmbGdnEnum(){ return StringToEnum("SmbGdn");}
+-function SmbGspEnum(){ return StringToEnum("SmbGsp");}
+-function SmbECEnum(){ return StringToEnum("SmbEC");}
+-function SmbCondensationEnum(){ return StringToEnum("SmbCondensation");}
+-function SmbWEnum(){ return StringToEnum("SmbW");}
+-function SmbAEnum(){ return StringToEnum("SmbA");}
+-function SmbTEnum(){ return StringToEnum("SmbT");}
+-function SmbIsgraingrowthEnum(){ return StringToEnum("SmbIsgraingrowth");}
+-function SmbIsalbedoEnum(){ return StringToEnum("SmbIsalbedo");}
+-function SmbIsshortwaveEnum(){ return StringToEnum("SmbIsshortwave");}
+-function SmbIsthermalEnum(){ return StringToEnum("SmbIsthermal");}
+-function SmbIsaccumulationEnum(){ return StringToEnum("SmbIsaccumulation");}
+-function SmbIsmeltEnum(){ return StringToEnum("SmbIsmelt");}
+-function SmbIsdensificationEnum(){ return StringToEnum("SmbIsdensification");}
+-function SmbIsturbulentfluxEnum(){ return StringToEnum("SmbIsturbulentflux");}
+-function SMBpddEnum(){ return StringToEnum("SMBpdd");}
+-function SmbDelta18oEnum(){ return StringToEnum("SmbDelta18o");}
+-function SmbDelta18oSurfaceEnum(){ return StringToEnum("SmbDelta18oSurface");}
+-function SmbIsdelta18oEnum(){ return StringToEnum("SmbIsdelta18o");}
+-function SmbIsmungsmEnum(){ return StringToEnum("SmbIsmungsm");}
+-function SmbIsd18opdEnum(){ return StringToEnum("SmbIsd18opd");}
+-function SmbPrecipitationsPresentdayEnum(){ return StringToEnum("SmbPrecipitationsPresentday");}
+-function SmbPrecipitationsLgmEnum(){ return StringToEnum("SmbPrecipitationsLgm");}
+-function SmbTemperaturesPresentdayEnum(){ return StringToEnum("SmbTemperaturesPresentday");}
+-function SmbTemperaturesLgmEnum(){ return StringToEnum("SmbTemperaturesLgm");}
+-function SmbPrecipitationEnum(){ return StringToEnum("SmbPrecipitation");}
+-function SmbDesfacEnum(){ return StringToEnum("SmbDesfac");}
+-function SmbS0pEnum(){ return StringToEnum("SmbS0p");}
+-function SmbS0tEnum(){ return StringToEnum("SmbS0t");}
+-function SmbRlapsEnum(){ return StringToEnum("SmbRlaps");}
+-function SmbRlapslgmEnum(){ return StringToEnum("SmbRlapslgm");}
+-function SmbPfacEnum(){ return StringToEnum("SmbPfac");}
+-function SmbTdiffEnum(){ return StringToEnum("SmbTdiff");}
+-function SmbSealevEnum(){ return StringToEnum("SmbSealev");}
+-function SMBd18opddEnum(){ return StringToEnum("SMBd18opdd");}
+-function SmbDpermilEnum(){ return StringToEnum("SmbDpermil");}
+-function SMBgradientsEnum(){ return StringToEnum("SMBgradients");}
+-function SmbMonthlytemperaturesEnum(){ return StringToEnum("SmbMonthlytemperatures");}
+-function SmbHrefEnum(){ return StringToEnum("SmbHref");}
+-function SmbSmbrefEnum(){ return StringToEnum("SmbSmbref");}
+-function SmbBPosEnum(){ return StringToEnum("SmbBPos");}
+-function SmbBNegEnum(){ return StringToEnum("SmbBNeg");}
+-function SMBhenningEnum(){ return StringToEnum("SMBhenning");}
+-function SMBcomponentsEnum(){ return StringToEnum("SMBcomponents");}
+-function SmbAccumulationEnum(){ return StringToEnum("SmbAccumulation");}
+-function SmbEvaporationEnum(){ return StringToEnum("SmbEvaporation");}
+-function SmbRunoffEnum(){ return StringToEnum("SmbRunoff");}
+-function SMBmeltcomponentsEnum(){ return StringToEnum("SMBmeltcomponents");}
+-function SmbMeltEnum(){ return StringToEnum("SmbMelt");}
+-function SmbRefreezeEnum(){ return StringToEnum("SmbRefreeze");}
+-function SMBgcmEnum(){ return StringToEnum("SMBgcm");}
+-function SmbIspddEnum(){ return StringToEnum("SmbIspdd");}
+-function SmbIssmbgradientsEnum(){ return StringToEnum("SmbIssmbgradients");}
+-function SolutionTypeEnum(){ return StringToEnum("SolutionType");}
+-function AnalysisTypeEnum(){ return StringToEnum("AnalysisType");}
+-function ConfigurationTypeEnum(){ return StringToEnum("ConfigurationType");}
+-function AdjointBalancethicknessAnalysisEnum(){ return StringToEnum("AdjointBalancethicknessAnalysis");}
+-function AdjointBalancethickness2AnalysisEnum(){ return StringToEnum("AdjointBalancethickness2Analysis");}
+-function AdjointHorizAnalysisEnum(){ return StringToEnum("AdjointHorizAnalysis");}
+-function AnalysisCounterEnum(){ return StringToEnum("AnalysisCounter");}
+-function DefaultAnalysisEnum(){ return StringToEnum("DefaultAnalysis");}
+-function BalancethicknessAnalysisEnum(){ return StringToEnum("BalancethicknessAnalysis");}
+-function BalancethicknessSolutionEnum(){ return StringToEnum("BalancethicknessSolution");}
+-function Balancethickness2AnalysisEnum(){ return StringToEnum("Balancethickness2Analysis");}
+-function Balancethickness2SolutionEnum(){ return StringToEnum("Balancethickness2Solution");}
+-function BalancethicknessSoftAnalysisEnum(){ return StringToEnum("BalancethicknessSoftAnalysis");}
+-function BalancethicknessSoftSolutionEnum(){ return StringToEnum("BalancethicknessSoftSolution");}
+-function BalancevelocityAnalysisEnum(){ return StringToEnum("BalancevelocityAnalysis");}
+-function BalancevelocitySolutionEnum(){ return StringToEnum("BalancevelocitySolution");}
+-function L2ProjectionEPLAnalysisEnum(){ return StringToEnum("L2ProjectionEPLAnalysis");}
+-function L2ProjectionBaseAnalysisEnum(){ return StringToEnum("L2ProjectionBaseAnalysis");}
+-function BedSlopeSolutionEnum(){ return StringToEnum("BedSlopeSolution");}
+-function DamageEvolutionSolutionEnum(){ return StringToEnum("DamageEvolutionSolution");}
+-function DamageEvolutionAnalysisEnum(){ return StringToEnum("DamageEvolutionAnalysis");}
+-function StressbalanceAnalysisEnum(){ return StringToEnum("StressbalanceAnalysis");}
+-function StressbalanceSIAAnalysisEnum(){ return StringToEnum("StressbalanceSIAAnalysis");}
+-function StressbalanceSolutionEnum(){ return StringToEnum("StressbalanceSolution");}
+-function StressbalanceVerticalAnalysisEnum(){ return StringToEnum("StressbalanceVerticalAnalysis");}
+-function EnthalpyAnalysisEnum(){ return StringToEnum("EnthalpyAnalysis");}
+-function FlaimAnalysisEnum(){ return StringToEnum("FlaimAnalysis");}
+-function FlaimSolutionEnum(){ return StringToEnum("FlaimSolution");}
+-function HydrologyShreveAnalysisEnum(){ return StringToEnum("HydrologyShreveAnalysis");}
+-function HydrologyDCInefficientAnalysisEnum(){ return StringToEnum("HydrologyDCInefficientAnalysis");}
+-function HydrologyDCEfficientAnalysisEnum(){ return StringToEnum("HydrologyDCEfficientAnalysis");}
+-function HydrologySommersAnalysisEnum(){ return StringToEnum("HydrologySommersAnalysis");}
+-function HydrologySolutionEnum(){ return StringToEnum("HydrologySolution");}
+-function MeltingAnalysisEnum(){ return StringToEnum("MeltingAnalysis");}
+-function MasstransportAnalysisEnum(){ return StringToEnum("MasstransportAnalysis");}
+-function MasstransportSolutionEnum(){ return StringToEnum("MasstransportSolution");}
+-function FreeSurfaceBaseAnalysisEnum(){ return StringToEnum("FreeSurfaceBaseAnalysis");}
+-function FreeSurfaceTopAnalysisEnum(){ return StringToEnum("FreeSurfaceTopAnalysis");}
+-function SurfaceNormalVelocityEnum(){ return StringToEnum("SurfaceNormalVelocity");}
+-function ExtrudeFromBaseAnalysisEnum(){ return StringToEnum("ExtrudeFromBaseAnalysis");}
+-function ExtrudeFromTopAnalysisEnum(){ return StringToEnum("ExtrudeFromTopAnalysis");}
+-function DepthAverageAnalysisEnum(){ return StringToEnum("DepthAverageAnalysis");}
+-function SteadystateSolutionEnum(){ return StringToEnum("SteadystateSolution");}
+-function SurfaceSlopeSolutionEnum(){ return StringToEnum("SurfaceSlopeSolution");}
+-function SmoothAnalysisEnum(){ return StringToEnum("SmoothAnalysis");}
+-function ThermalAnalysisEnum(){ return StringToEnum("ThermalAnalysis");}
+-function ThermalSolutionEnum(){ return StringToEnum("ThermalSolution");}
+-function TransientSolutionEnum(){ return StringToEnum("TransientSolution");}
+-function UzawaPressureAnalysisEnum(){ return StringToEnum("UzawaPressureAnalysis");}
+-function GiaSolutionEnum(){ return StringToEnum("GiaSolution");}
+-function GiaAnalysisEnum(){ return StringToEnum("GiaAnalysis");}
+-function MeshdeformationSolutionEnum(){ return StringToEnum("MeshdeformationSolution");}
+-function MeshdeformationAnalysisEnum(){ return StringToEnum("MeshdeformationAnalysis");}
+-function LevelsetAnalysisEnum(){ return StringToEnum("LevelsetAnalysis");}
+-function LevelsetStabilizationEnum(){ return StringToEnum("LevelsetStabilization");}
+-function ExtrapolationAnalysisEnum(){ return StringToEnum("ExtrapolationAnalysis");}
+-function LsfReinitializationAnalysisEnum(){ return StringToEnum("LsfReinitializationAnalysis");}
+-function ApproximationEnum(){ return StringToEnum("Approximation");}
+-function NoneApproximationEnum(){ return StringToEnum("NoneApproximation");}
+-function SIAApproximationEnum(){ return StringToEnum("SIAApproximation");}
+-function SSAApproximationEnum(){ return StringToEnum("SSAApproximation");}
+-function SSAHOApproximationEnum(){ return StringToEnum("SSAHOApproximation");}
+-function SSAFSApproximationEnum(){ return StringToEnum("SSAFSApproximation");}
+-function L1L2ApproximationEnum(){ return StringToEnum("L1L2Approximation");}
+-function HOApproximationEnum(){ return StringToEnum("HOApproximation");}
+-function HOFSApproximationEnum(){ return StringToEnum("HOFSApproximation");}
+-function FSApproximationEnum(){ return StringToEnum("FSApproximation");}
+-function FSvelocityEnum(){ return StringToEnum("FSvelocity");}
+-function FSpressureEnum(){ return StringToEnum("FSpressure");}
+-function DataSetEnum(){ return StringToEnum("DataSet");}
+-function ConstraintsEnum(){ return StringToEnum("Constraints");}
+-function LoadsEnum(){ return StringToEnum("Loads");}
+-function MaterialsEnum(){ return StringToEnum("Materials");}
+-function NodesEnum(){ return StringToEnum("Nodes");}
+-function ContoursEnum(){ return StringToEnum("Contours");}
+-function ParametersEnum(){ return StringToEnum("Parameters");}
+-function VerticesEnum(){ return StringToEnum("Vertices");}
+-function ResultsEnum(){ return StringToEnum("Results");}
+-function GenericParamEnum(){ return StringToEnum("GenericParam");}
+-function AdolcParamEnum(){ return StringToEnum("AdolcParam");}
+-function BoolInputEnum(){ return StringToEnum("BoolInput");}
+-function BoolParamEnum(){ return StringToEnum("BoolParam");}
+-function ContourEnum(){ return StringToEnum("Contour");}
+-function ControlInputEnum(){ return StringToEnum("ControlInput");}
+-function DatasetInputEnum(){ return StringToEnum("DatasetInput");}
+-function DoubleInputEnum(){ return StringToEnum("DoubleInput");}
+-function DoubleArrayInputEnum(){ return StringToEnum("DoubleArrayInput");}
+-function DataSetParamEnum(){ return StringToEnum("DataSetParam");}
+-function DoubleMatArrayParamEnum(){ return StringToEnum("DoubleMatArrayParam");}
+-function DoubleMatParamEnum(){ return StringToEnum("DoubleMatParam");}
+-function DoubleParamEnum(){ return StringToEnum("DoubleParam");}
+-function DoubleVecParamEnum(){ return StringToEnum("DoubleVecParam");}
+-function ElementEnum(){ return StringToEnum("Element");}
+-function ElementHookEnum(){ return StringToEnum("ElementHook");}
+-function HookEnum(){ return StringToEnum("Hook");}
+-function ExternalResultEnum(){ return StringToEnum("ExternalResult");}
+-function FileParamEnum(){ return StringToEnum("FileParam");}
+-function InputEnum(){ return StringToEnum("Input");}
+-function IntInputEnum(){ return StringToEnum("IntInput");}
+-function InputToExtrudeEnum(){ return StringToEnum("InputToExtrude");}
+-function InputToL2ProjectEnum(){ return StringToEnum("InputToL2Project");}
+-function InputToDepthaverageEnum(){ return StringToEnum("InputToDepthaverage");}
+-function InputToSmoothEnum(){ return StringToEnum("InputToSmooth");}
+-function SmoothThicknessMultiplierEnum(){ return StringToEnum("SmoothThicknessMultiplier");}
+-function IntParamEnum(){ return StringToEnum("IntParam");}
+-function IntVecParamEnum(){ return StringToEnum("IntVecParam");}
+-function TransientParamEnum(){ return StringToEnum("TransientParam");}
+-function MaticeEnum(){ return StringToEnum("Matice");}
+-function MatdamageiceEnum(){ return StringToEnum("Matdamageice");}
+-function MatparEnum(){ return StringToEnum("Matpar");}
+-function NodeEnum(){ return StringToEnum("Node");}
+-function NumericalfluxEnum(){ return StringToEnum("Numericalflux");}
+-function NumericalfluxTypeEnum(){ return StringToEnum("NumericalfluxType");}
+-function NeumannfluxEnum(){ return StringToEnum("Neumannflux");}
+-function ParamEnum(){ return StringToEnum("Param");}
+-function MoulinEnum(){ return StringToEnum("Moulin");}
+-function PengridEnum(){ return StringToEnum("Pengrid");}
+-function PenpairEnum(){ return StringToEnum("Penpair");}
+-function ProfilerEnum(){ return StringToEnum("Profiler");}
+-function MatrixParamEnum(){ return StringToEnum("MatrixParam");}
+-function MassconEnum(){ return StringToEnum("Masscon");}
+-function MassconNameEnum(){ return StringToEnum("MassconName");}
+-function MassconDefinitionenumEnum(){ return StringToEnum("MassconDefinitionenum");}
+-function MassconLevelsetEnum(){ return StringToEnum("MassconLevelset");}
+-function MassconaxpbyEnum(){ return StringToEnum("Massconaxpby");}
+-function MassconaxpbyNameEnum(){ return StringToEnum("MassconaxpbyName");}
+-function MassconaxpbyDefinitionenumEnum(){ return StringToEnum("MassconaxpbyDefinitionenum");}
+-function MassconaxpbyNamexEnum(){ return StringToEnum("MassconaxpbyNamex");}
+-function MassconaxpbyNameyEnum(){ return StringToEnum("MassconaxpbyNamey");}
+-function MassconaxpbyAlphaEnum(){ return StringToEnum("MassconaxpbyAlpha");}
+-function MassconaxpbyBetaEnum(){ return StringToEnum("MassconaxpbyBeta");}
+-function NodeSIdEnum(){ return StringToEnum("NodeSId");}
+-function VectorParamEnum(){ return StringToEnum("VectorParam");}
+-function RiftfrontEnum(){ return StringToEnum("Riftfront");}
+-function RiftfrontTypeEnum(){ return StringToEnum("RiftfrontType");}
+-function SegmentEnum(){ return StringToEnum("Segment");}
+-function SegmentRiftfrontEnum(){ return StringToEnum("SegmentRiftfront");}
+-function SpcDynamicEnum(){ return StringToEnum("SpcDynamic");}
+-function SpcStaticEnum(){ return StringToEnum("SpcStatic");}
+-function SpcTransientEnum(){ return StringToEnum("SpcTransient");}
+-function StringArrayParamEnum(){ return StringToEnum("StringArrayParam");}
+-function StringParamEnum(){ return StringToEnum("StringParam");}
+-function SegEnum(){ return StringToEnum("Seg");}
+-function SegInputEnum(){ return StringToEnum("SegInput");}
+-function TriaEnum(){ return StringToEnum("Tria");}
+-function TriaInputEnum(){ return StringToEnum("TriaInput");}
+-function TetraEnum(){ return StringToEnum("Tetra");}
+-function TetraInputEnum(){ return StringToEnum("TetraInput");}
+-function PentaEnum(){ return StringToEnum("Penta");}
+-function PentaInputEnum(){ return StringToEnum("PentaInput");}
+-function VertexEnum(){ return StringToEnum("Vertex");}
+-function VertexPIdEnum(){ return StringToEnum("VertexPId");}
+-function VertexSIdEnum(){ return StringToEnum("VertexSId");}
+-function AirEnum(){ return StringToEnum("Air");}
+-function IceEnum(){ return StringToEnum("Ice");}
+-function MelangeEnum(){ return StringToEnum("Melange");}
+-function WaterEnum(){ return StringToEnum("Water");}
+-function ClosedEnum(){ return StringToEnum("Closed");}
+-function FreeEnum(){ return StringToEnum("Free");}
+-function OpenEnum(){ return StringToEnum("Open");}
+-function AdjointpEnum(){ return StringToEnum("Adjointp");}
+-function AdjointxEnum(){ return StringToEnum("Adjointx");}
+-function AdjointyEnum(){ return StringToEnum("Adjointy");}
+-function AdjointzEnum(){ return StringToEnum("Adjointz");}
+-function BalancethicknessMisfitEnum(){ return StringToEnum("BalancethicknessMisfit");}
+-function BedSlopeXEnum(){ return StringToEnum("BedSlopeX");}
+-function BedSlopeYEnum(){ return StringToEnum("BedSlopeY");}
+-function BoundaryEnum(){ return StringToEnum("Boundary");}
+-function ConvergedEnum(){ return StringToEnum("Converged");}
+-function FillEnum(){ return StringToEnum("Fill");}
+-function FractionIncrementEnum(){ return StringToEnum("FractionIncrement");}
+-function FrictionEnum(){ return StringToEnum("Friction");}
+-function InternalEnum(){ return StringToEnum("Internal");}
+-function MassFluxEnum(){ return StringToEnum("MassFlux");}
+-function MeltingOffsetEnum(){ return StringToEnum("MeltingOffset");}
+-function MisfitEnum(){ return StringToEnum("Misfit");}
+-function PressureEnum(){ return StringToEnum("Pressure");}
+-function PressurePicardEnum(){ return StringToEnum("PressurePicard");}
+-function AndroidFrictionCoefficientEnum(){ return StringToEnum("AndroidFrictionCoefficient");}
+-function ResetPenaltiesEnum(){ return StringToEnum("ResetPenalties");}
+-function SegmentOnIceShelfEnum(){ return StringToEnum("SegmentOnIceShelf");}
+-function SurfaceAbsVelMisfitEnum(){ return StringToEnum("SurfaceAbsVelMisfit");}
+-function SurfaceAreaEnum(){ return StringToEnum("SurfaceArea");}
+-function SurfaceAverageVelMisfitEnum(){ return StringToEnum("SurfaceAverageVelMisfit");}
+-function SurfaceLogVelMisfitEnum(){ return StringToEnum("SurfaceLogVelMisfit");}
+-function SurfaceLogVxVyMisfitEnum(){ return StringToEnum("SurfaceLogVxVyMisfit");}
+-function SurfaceRelVelMisfitEnum(){ return StringToEnum("SurfaceRelVelMisfit");}
+-function SurfaceSlopeXEnum(){ return StringToEnum("SurfaceSlopeX");}
+-function SurfaceSlopeYEnum(){ return StringToEnum("SurfaceSlopeY");}
+-function TemperatureEnum(){ return StringToEnum("Temperature");}
+-function TemperaturePicardEnum(){ return StringToEnum("TemperaturePicard");}
+-function TemperaturePDDEnum(){ return StringToEnum("TemperaturePDD");}
+-function ThicknessAbsMisfitEnum(){ return StringToEnum("ThicknessAbsMisfit");}
+-function SurfaceAbsMisfitEnum(){ return StringToEnum("SurfaceAbsMisfit");}
+-function VelEnum(){ return StringToEnum("Vel");}
+-function VelocityEnum(){ return StringToEnum("Velocity");}
+-function VxAverageEnum(){ return StringToEnum("VxAverage");}
+-function VxEnum(){ return StringToEnum("Vx");}
+-function VxPicardEnum(){ return StringToEnum("VxPicard");}
+-function VyAverageEnum(){ return StringToEnum("VyAverage");}
+-function VyEnum(){ return StringToEnum("Vy");}
+-function VyPicardEnum(){ return StringToEnum("VyPicard");}
+-function VzEnum(){ return StringToEnum("Vz");}
+-function VzSSAEnum(){ return StringToEnum("VzSSA");}
+-function VzHOEnum(){ return StringToEnum("VzHO");}
+-function VzPicardEnum(){ return StringToEnum("VzPicard");}
+-function VzFSEnum(){ return StringToEnum("VzFS");}
+-function VxMeshEnum(){ return StringToEnum("VxMesh");}
+-function VyMeshEnum(){ return StringToEnum("VyMesh");}
+-function VzMeshEnum(){ return StringToEnum("VzMesh");}
+-function EnthalpyEnum(){ return StringToEnum("Enthalpy");}
+-function EnthalpyPicardEnum(){ return StringToEnum("EnthalpyPicard");}
+-function ThicknessAbsGradientEnum(){ return StringToEnum("ThicknessAbsGradient");}
+-function ThicknessAlongGradientEnum(){ return StringToEnum("ThicknessAlongGradient");}
+-function ThicknessAcrossGradientEnum(){ return StringToEnum("ThicknessAcrossGradient");}
+-function IntMatParamEnum(){ return StringToEnum("IntMatParam");}
+-function RheologyBbarAbsGradientEnum(){ return StringToEnum("RheologyBbarAbsGradient");}
+-function RheologyBAbsGradientEnum(){ return StringToEnum("RheologyBAbsGradient");}
+-function DragCoefficientAbsGradientEnum(){ return StringToEnum("DragCoefficientAbsGradient");}
+-function TransientInputEnum(){ return StringToEnum("TransientInput");}
+-function WaterfractionEnum(){ return StringToEnum("Waterfraction");}
+-function WatercolumnEnum(){ return StringToEnum("Watercolumn");}
+-function BasalFrictionEnum(){ return StringToEnum("BasalFriction");}
+-function ViscousHeatingEnum(){ return StringToEnum("ViscousHeating");}
+-function HydrologyWaterVxEnum(){ return StringToEnum("HydrologyWaterVx");}
+-function HydrologyWaterVyEnum(){ return StringToEnum("HydrologyWaterVy");}
+-function DrivingStressXEnum(){ return StringToEnum("DrivingStressX");}
+-function DrivingStressYEnum(){ return StringToEnum("DrivingStressY");}
+-function SigmaNNEnum(){ return StringToEnum("SigmaNN");}
+-function StressTensorEnum(){ return StringToEnum("StressTensor");}
+-function StressTensorxxEnum(){ return StringToEnum("StressTensorxx");}
+-function StressTensorxyEnum(){ return StringToEnum("StressTensorxy");}
+-function StressTensorxzEnum(){ return StringToEnum("StressTensorxz");}
+-function StressTensoryyEnum(){ return StringToEnum("StressTensoryy");}
+-function StressTensoryzEnum(){ return StringToEnum("StressTensoryz");}
+-function StressTensorzzEnum(){ return StringToEnum("StressTensorzz");}
+-function StressMaxPrincipalEnum(){ return StringToEnum("StressMaxPrincipal");}
+-function DeviatoricStressEnum(){ return StringToEnum("DeviatoricStress");}
+-function DeviatoricStressxxEnum(){ return StringToEnum("DeviatoricStressxx");}
+-function DeviatoricStressxyEnum(){ return StringToEnum("DeviatoricStressxy");}
+-function DeviatoricStressxzEnum(){ return StringToEnum("DeviatoricStressxz");}
+-function DeviatoricStressyyEnum(){ return StringToEnum("DeviatoricStressyy");}
+-function DeviatoricStressyzEnum(){ return StringToEnum("DeviatoricStressyz");}
+-function DeviatoricStresszzEnum(){ return StringToEnum("DeviatoricStresszz");}
+-function StrainRateEnum(){ return StringToEnum("StrainRate");}
+-function StrainRatexxEnum(){ return StringToEnum("StrainRatexx");}
+-function StrainRatexyEnum(){ return StringToEnum("StrainRatexy");}
+-function StrainRatexzEnum(){ return StringToEnum("StrainRatexz");}
+-function StrainRateyyEnum(){ return StringToEnum("StrainRateyy");}
+-function StrainRateyzEnum(){ return StringToEnum("StrainRateyz");}
+-function StrainRatezzEnum(){ return StringToEnum("StrainRatezz");}
+-function DivergenceEnum(){ return StringToEnum("Divergence");}
+-function MaxDivergenceEnum(){ return StringToEnum("MaxDivergence");}
+-function GiaCrossSectionShapeEnum(){ return StringToEnum("GiaCrossSectionShape");}
+-function GiadWdtEnum(){ return StringToEnum("GiadWdt");}
+-function GiaWEnum(){ return StringToEnum("GiaW");}
+-function P0Enum(){ return StringToEnum("P0");}
+-function P0ArrayEnum(){ return StringToEnum("P0Array");}
+-function P1Enum(){ return StringToEnum("P1");}
+-function P1DGEnum(){ return StringToEnum("P1DG");}
+-function P1bubbleEnum(){ return StringToEnum("P1bubble");}
+-function P1bubblecondensedEnum(){ return StringToEnum("P1bubblecondensed");}
+-function P2Enum(){ return StringToEnum("P2");}
+-function P2bubbleEnum(){ return StringToEnum("P2bubble");}
+-function P2bubblecondensedEnum(){ return StringToEnum("P2bubblecondensed");}
+-function P2xP1Enum(){ return StringToEnum("P2xP1");}
+-function P1xP2Enum(){ return StringToEnum("P1xP2");}
+-function P1xP3Enum(){ return StringToEnum("P1xP3");}
+-function P2xP4Enum(){ return StringToEnum("P2xP4");}
+-function P1P1Enum(){ return StringToEnum("P1P1");}
+-function P1P1GLSEnum(){ return StringToEnum("P1P1GLS");}
+-function MINIEnum(){ return StringToEnum("MINI");}
+-function MINIcondensedEnum(){ return StringToEnum("MINIcondensed");}
+-function TaylorHoodEnum(){ return StringToEnum("TaylorHood");}
+-function LATaylorHoodEnum(){ return StringToEnum("LATaylorHood");}
+-function XTaylorHoodEnum(){ return StringToEnum("XTaylorHood");}
+-function OneLayerP4zEnum(){ return StringToEnum("OneLayerP4z");}
+-function CrouzeixRaviartEnum(){ return StringToEnum("CrouzeixRaviart");}
+-function LACrouzeixRaviartEnum(){ return StringToEnum("LACrouzeixRaviart");}
+-function SaveResultsEnum(){ return StringToEnum("SaveResults");}
+-function BoolExternalResultEnum(){ return StringToEnum("BoolExternalResult");}
+-function DoubleExternalResultEnum(){ return StringToEnum("DoubleExternalResult");}
+-function DoubleMatExternalResultEnum(){ return StringToEnum("DoubleMatExternalResult");}
+-function IntExternalResultEnum(){ return StringToEnum("IntExternalResult");}
+-function JEnum(){ return StringToEnum("J");}
+-function StringExternalResultEnum(){ return StringToEnum("StringExternalResult");}
+-function StepEnum(){ return StringToEnum("Step");}
+-function TimeEnum(){ return StringToEnum("Time");}
+-function WaterColumnOldEnum(){ return StringToEnum("WaterColumnOld");}
+-function OutputdefinitionEnum(){ return StringToEnum("Outputdefinition");}
+-function Outputdefinition1Enum(){ return StringToEnum("Outputdefinition1");}
+-function Outputdefinition2Enum(){ return StringToEnum("Outputdefinition2");}
+-function Outputdefinition3Enum(){ return StringToEnum("Outputdefinition3");}
+-function Outputdefinition4Enum(){ return StringToEnum("Outputdefinition4");}
+-function Outputdefinition5Enum(){ return StringToEnum("Outputdefinition5");}
+-function Outputdefinition6Enum(){ return StringToEnum("Outputdefinition6");}
+-function Outputdefinition7Enum(){ return StringToEnum("Outputdefinition7");}
+-function Outputdefinition8Enum(){ return StringToEnum("Outputdefinition8");}
+-function Outputdefinition9Enum(){ return StringToEnum("Outputdefinition9");}
+-function Outputdefinition10Enum(){ return StringToEnum("Outputdefinition10");}
+-function Outputdefinition11Enum(){ return StringToEnum("Outputdefinition11");}
+-function Outputdefinition12Enum(){ return StringToEnum("Outputdefinition12");}
+-function Outputdefinition13Enum(){ return StringToEnum("Outputdefinition13");}
+-function Outputdefinition14Enum(){ return StringToEnum("Outputdefinition14");}
+-function Outputdefinition15Enum(){ return StringToEnum("Outputdefinition15");}
+-function Outputdefinition16Enum(){ return StringToEnum("Outputdefinition16");}
+-function Outputdefinition17Enum(){ return StringToEnum("Outputdefinition17");}
+-function Outputdefinition18Enum(){ return StringToEnum("Outputdefinition18");}
+-function Outputdefinition19Enum(){ return StringToEnum("Outputdefinition19");}
+-function Outputdefinition20Enum(){ return StringToEnum("Outputdefinition20");}
+-function Outputdefinition21Enum(){ return StringToEnum("Outputdefinition21");}
+-function Outputdefinition22Enum(){ return StringToEnum("Outputdefinition22");}
+-function Outputdefinition23Enum(){ return StringToEnum("Outputdefinition23");}
+-function Outputdefinition24Enum(){ return StringToEnum("Outputdefinition24");}
+-function Outputdefinition25Enum(){ return StringToEnum("Outputdefinition25");}
+-function Outputdefinition26Enum(){ return StringToEnum("Outputdefinition26");}
+-function Outputdefinition27Enum(){ return StringToEnum("Outputdefinition27");}
+-function Outputdefinition28Enum(){ return StringToEnum("Outputdefinition28");}
+-function Outputdefinition29Enum(){ return StringToEnum("Outputdefinition29");}
+-function Outputdefinition30Enum(){ return StringToEnum("Outputdefinition30");}
+-function Outputdefinition31Enum(){ return StringToEnum("Outputdefinition31");}
+-function Outputdefinition32Enum(){ return StringToEnum("Outputdefinition32");}
+-function Outputdefinition33Enum(){ return StringToEnum("Outputdefinition33");}
+-function Outputdefinition34Enum(){ return StringToEnum("Outputdefinition34");}
+-function Outputdefinition35Enum(){ return StringToEnum("Outputdefinition35");}
+-function Outputdefinition36Enum(){ return StringToEnum("Outputdefinition36");}
+-function Outputdefinition37Enum(){ return StringToEnum("Outputdefinition37");}
+-function Outputdefinition38Enum(){ return StringToEnum("Outputdefinition38");}
+-function Outputdefinition39Enum(){ return StringToEnum("Outputdefinition39");}
+-function Outputdefinition40Enum(){ return StringToEnum("Outputdefinition40");}
+-function Outputdefinition41Enum(){ return StringToEnum("Outputdefinition41");}
+-function Outputdefinition42Enum(){ return StringToEnum("Outputdefinition42");}
+-function Outputdefinition43Enum(){ return StringToEnum("Outputdefinition43");}
+-function Outputdefinition44Enum(){ return StringToEnum("Outputdefinition44");}
+-function Outputdefinition45Enum(){ return StringToEnum("Outputdefinition45");}
+-function Outputdefinition46Enum(){ return StringToEnum("Outputdefinition46");}
+-function Outputdefinition47Enum(){ return StringToEnum("Outputdefinition47");}
+-function Outputdefinition48Enum(){ return StringToEnum("Outputdefinition48");}
+-function Outputdefinition49Enum(){ return StringToEnum("Outputdefinition49");}
+-function Outputdefinition50Enum(){ return StringToEnum("Outputdefinition50");}
+-function Outputdefinition51Enum(){ return StringToEnum("Outputdefinition51");}
+-function Outputdefinition52Enum(){ return StringToEnum("Outputdefinition52");}
+-function Outputdefinition53Enum(){ return StringToEnum("Outputdefinition53");}
+-function Outputdefinition54Enum(){ return StringToEnum("Outputdefinition54");}
+-function Outputdefinition55Enum(){ return StringToEnum("Outputdefinition55");}
+-function Outputdefinition56Enum(){ return StringToEnum("Outputdefinition56");}
+-function Outputdefinition57Enum(){ return StringToEnum("Outputdefinition57");}
+-function Outputdefinition58Enum(){ return StringToEnum("Outputdefinition58");}
+-function Outputdefinition59Enum(){ return StringToEnum("Outputdefinition59");}
+-function Outputdefinition60Enum(){ return StringToEnum("Outputdefinition60");}
+-function Outputdefinition61Enum(){ return StringToEnum("Outputdefinition61");}
+-function Outputdefinition62Enum(){ return StringToEnum("Outputdefinition62");}
+-function Outputdefinition63Enum(){ return StringToEnum("Outputdefinition63");}
+-function Outputdefinition64Enum(){ return StringToEnum("Outputdefinition64");}
+-function Outputdefinition65Enum(){ return StringToEnum("Outputdefinition65");}
+-function Outputdefinition66Enum(){ return StringToEnum("Outputdefinition66");}
+-function Outputdefinition67Enum(){ return StringToEnum("Outputdefinition67");}
+-function Outputdefinition68Enum(){ return StringToEnum("Outputdefinition68");}
+-function Outputdefinition69Enum(){ return StringToEnum("Outputdefinition69");}
+-function Outputdefinition70Enum(){ return StringToEnum("Outputdefinition70");}
+-function Outputdefinition71Enum(){ return StringToEnum("Outputdefinition71");}
+-function Outputdefinition72Enum(){ return StringToEnum("Outputdefinition72");}
+-function Outputdefinition73Enum(){ return StringToEnum("Outputdefinition73");}
+-function Outputdefinition74Enum(){ return StringToEnum("Outputdefinition74");}
+-function Outputdefinition75Enum(){ return StringToEnum("Outputdefinition75");}
+-function Outputdefinition76Enum(){ return StringToEnum("Outputdefinition76");}
+-function Outputdefinition77Enum(){ return StringToEnum("Outputdefinition77");}
+-function Outputdefinition78Enum(){ return StringToEnum("Outputdefinition78");}
+-function Outputdefinition79Enum(){ return StringToEnum("Outputdefinition79");}
+-function Outputdefinition80Enum(){ return StringToEnum("Outputdefinition80");}
+-function Outputdefinition81Enum(){ return StringToEnum("Outputdefinition81");}
+-function Outputdefinition82Enum(){ return StringToEnum("Outputdefinition82");}
+-function Outputdefinition83Enum(){ return StringToEnum("Outputdefinition83");}
+-function Outputdefinition84Enum(){ return StringToEnum("Outputdefinition84");}
+-function Outputdefinition85Enum(){ return StringToEnum("Outputdefinition85");}
+-function Outputdefinition86Enum(){ return StringToEnum("Outputdefinition86");}
+-function Outputdefinition87Enum(){ return StringToEnum("Outputdefinition87");}
+-function Outputdefinition88Enum(){ return StringToEnum("Outputdefinition88");}
+-function Outputdefinition89Enum(){ return StringToEnum("Outputdefinition89");}
+-function Outputdefinition90Enum(){ return StringToEnum("Outputdefinition90");}
+-function Outputdefinition91Enum(){ return StringToEnum("Outputdefinition91");}
+-function Outputdefinition92Enum(){ return StringToEnum("Outputdefinition92");}
+-function Outputdefinition93Enum(){ return StringToEnum("Outputdefinition93");}
+-function Outputdefinition94Enum(){ return StringToEnum("Outputdefinition94");}
+-function Outputdefinition95Enum(){ return StringToEnum("Outputdefinition95");}
+-function Outputdefinition96Enum(){ return StringToEnum("Outputdefinition96");}
+-function Outputdefinition97Enum(){ return StringToEnum("Outputdefinition97");}
+-function Outputdefinition98Enum(){ return StringToEnum("Outputdefinition98");}
+-function Outputdefinition99Enum(){ return StringToEnum("Outputdefinition99");}
+-function Outputdefinition100Enum(){ return StringToEnum("Outputdefinition100");}
+-function OutputdefinitionListEnum(){ return StringToEnum("OutputdefinitionList");}
+-function MassfluxatgateEnum(){ return StringToEnum("Massfluxatgate");}
+-function MassfluxatgateNameEnum(){ return StringToEnum("MassfluxatgateName");}
+-function MassfluxatgateDefinitionenumEnum(){ return StringToEnum("MassfluxatgateDefinitionenum");}
+-function MassfluxatgateSegmentsEnum(){ return StringToEnum("MassfluxatgateSegments");}
+-function MisfitNameEnum(){ return StringToEnum("MisfitName");}
+-function MisfitDefinitionenumEnum(){ return StringToEnum("MisfitDefinitionenum");}
+-function MisfitModelEnumEnum(){ return StringToEnum("MisfitModelEnum");}
+-function MisfitObservationEnum(){ return StringToEnum("MisfitObservation");}
+-function MisfitObservationEnumEnum(){ return StringToEnum("MisfitObservationEnum");}
+-function MisfitLocalEnum(){ return StringToEnum("MisfitLocal");}
+-function MisfitTimeinterpolationEnum(){ return StringToEnum("MisfitTimeinterpolation");}
+-function MisfitWeightsEnum(){ return StringToEnum("MisfitWeights");}
+-function MisfitWeightsEnumEnum(){ return StringToEnum("MisfitWeightsEnum");}
+-function SurfaceObservationEnum(){ return StringToEnum("SurfaceObservation");}
+-function WeightsSurfaceObservationEnum(){ return StringToEnum("WeightsSurfaceObservation");}
+-function VxObsEnum(){ return StringToEnum("VxObs");}
+-function WeightsVxObsEnum(){ return StringToEnum("WeightsVxObs");}
+-function VyObsEnum(){ return StringToEnum("VyObs");}
+-function WeightsVyObsEnum(){ return StringToEnum("WeightsVyObs");}
+-function MinVelEnum(){ return StringToEnum("MinVel");}
+-function MaxVelEnum(){ return StringToEnum("MaxVel");}
+-function MinVxEnum(){ return StringToEnum("MinVx");}
+-function MaxVxEnum(){ return StringToEnum("MaxVx");}
+-function MaxAbsVxEnum(){ return StringToEnum("MaxAbsVx");}
+-function MinVyEnum(){ return StringToEnum("MinVy");}
+-function MaxVyEnum(){ return StringToEnum("MaxVy");}
+-function MaxAbsVyEnum(){ return StringToEnum("MaxAbsVy");}
+-function MinVzEnum(){ return StringToEnum("MinVz");}
+-function MaxVzEnum(){ return StringToEnum("MaxVz");}
+-function MaxAbsVzEnum(){ return StringToEnum("MaxAbsVz");}
+-function FloatingAreaEnum(){ return StringToEnum("FloatingArea");}
+-function GroundedAreaEnum(){ return StringToEnum("GroundedArea");}
+-function IceMassEnum(){ return StringToEnum("IceMass");}
+-function IceVolumeEnum(){ return StringToEnum("IceVolume");}
+-function IceVolumeAboveFloatationEnum(){ return StringToEnum("IceVolumeAboveFloatation");}
+-function TotalSmbEnum(){ return StringToEnum("TotalSmb");}
+-function AbsoluteEnum(){ return StringToEnum("Absolute");}
+-function IncrementalEnum(){ return StringToEnum("Incremental");}
+-function AugmentedLagrangianREnum(){ return StringToEnum("AugmentedLagrangianR");}
+-function AugmentedLagrangianRhopEnum(){ return StringToEnum("AugmentedLagrangianRhop");}
+-function AugmentedLagrangianRlambdaEnum(){ return StringToEnum("AugmentedLagrangianRlambda");}
+-function AugmentedLagrangianRholambdaEnum(){ return StringToEnum("AugmentedLagrangianRholambda");}
+-function AugmentedLagrangianThetaEnum(){ return StringToEnum("AugmentedLagrangianTheta");}
+-function NoneEnum(){ return StringToEnum("None");}
+-function AggressiveMigrationEnum(){ return StringToEnum("AggressiveMigration");}
+-function SoftMigrationEnum(){ return StringToEnum("SoftMigration");}
+-function SubelementMigrationEnum(){ return StringToEnum("SubelementMigration");}
+-function SubelementMigration2Enum(){ return StringToEnum("SubelementMigration2");}
+-function ContactEnum(){ return StringToEnum("Contact");}
+-function GroundingOnlyEnum(){ return StringToEnum("GroundingOnly");}
+-function MaskGroundediceLevelsetEnum(){ return StringToEnum("MaskGroundediceLevelset");}
+-function GaussSegEnum(){ return StringToEnum("GaussSeg");}
+-function GaussTriaEnum(){ return StringToEnum("GaussTria");}
+-function GaussTetraEnum(){ return StringToEnum("GaussTetra");}
+-function GaussPentaEnum(){ return StringToEnum("GaussPenta");}
+-function FSSolverEnum(){ return StringToEnum("FSSolver");}
+-function AdjointEnum(){ return StringToEnum("Adjoint");}
+-function ColinearEnum(){ return StringToEnum("Colinear");}
+-function ControlSteadyEnum(){ return StringToEnum("ControlSteady");}
+-function FsetEnum(){ return StringToEnum("Fset");}
+-function Gradient1Enum(){ return StringToEnum("Gradient1");}
+-function Gradient2Enum(){ return StringToEnum("Gradient2");}
+-function Gradient3Enum(){ return StringToEnum("Gradient3");}
+-function GradientEnum(){ return StringToEnum("Gradient");}
+-function GroundinglineMigrationEnum(){ return StringToEnum("GroundinglineMigration");}
+-function GsetEnum(){ return StringToEnum("Gset");}
+-function IndexEnum(){ return StringToEnum("Index");}
+-function IndexedEnum(){ return StringToEnum("Indexed");}
+-function IntersectEnum(){ return StringToEnum("Intersect");}
+-function NodalEnum(){ return StringToEnum("Nodal");}
+-function OldGradientEnum(){ return StringToEnum("OldGradient");}
+-function OutputFilePointerEnum(){ return StringToEnum("OutputFilePointer");}
+-function ToolkitsFileNameEnum(){ return StringToEnum("ToolkitsFileName");}
+-function RootPathEnum(){ return StringToEnum("RootPath");}
+-function OutputFileNameEnum(){ return StringToEnum("OutputFileName");}
+-function InputFileNameEnum(){ return StringToEnum("InputFileName");}
+-function LockFileNameEnum(){ return StringToEnum("LockFileName");}
+-function RestartFileNameEnum(){ return StringToEnum("RestartFileName");}
+-function ToolkitsOptionsAnalysesEnum(){ return StringToEnum("ToolkitsOptionsAnalyses");}
+-function ToolkitsOptionsStringsEnum(){ return StringToEnum("ToolkitsOptionsStrings");}
+-function QmuErrNameEnum(){ return StringToEnum("QmuErrName");}
+-function QmuInNameEnum(){ return StringToEnum("QmuInName");}
+-function QmuOutNameEnum(){ return StringToEnum("QmuOutName");}
+-function RegularEnum(){ return StringToEnum("Regular");}
+-function ScaledEnum(){ return StringToEnum("Scaled");}
+-function SeparateEnum(){ return StringToEnum("Separate");}
+-function SsetEnum(){ return StringToEnum("Sset");}
+-function VerboseEnum(){ return StringToEnum("Verbose");}
+-function TriangleInterpEnum(){ return StringToEnum("TriangleInterp");}
+-function BilinearInterpEnum(){ return StringToEnum("BilinearInterp");}
+-function NearestInterpEnum(){ return StringToEnum("NearestInterp");}
+-function XYEnum(){ return StringToEnum("XY");}
+-function XYZEnum(){ return StringToEnum("XYZ");}
+-function DenseEnum(){ return StringToEnum("Dense");}
+-function MpiDenseEnum(){ return StringToEnum("MpiDense");}
+-function MpiSparseEnum(){ return StringToEnum("MpiSparse");}
+-function SeqEnum(){ return StringToEnum("Seq");}
+-function MpiEnum(){ return StringToEnum("Mpi");}
+-function MumpsEnum(){ return StringToEnum("Mumps");}
+-function GslEnum(){ return StringToEnum("Gsl");}
+-function OptionEnum(){ return StringToEnum("Option");}
+-function GenericOptionEnum(){ return StringToEnum("GenericOption");}
+-function OptionCellEnum(){ return StringToEnum("OptionCell");}
+-function OptionStructEnum(){ return StringToEnum("OptionStruct");}
+-function CuffeyEnum(){ return StringToEnum("Cuffey");}
+-function PatersonEnum(){ return StringToEnum("Paterson");}
+-function ArrheniusEnum(){ return StringToEnum("Arrhenius");}
+-function LliboutryDuvalEnum(){ return StringToEnum("LliboutryDuval");}
+-function TransientIslevelsetEnum(){ return StringToEnum("TransientIslevelset");}
+-function SpcLevelsetEnum(){ return StringToEnum("SpcLevelset");}
+-function ExtrapolationVariableEnum(){ return StringToEnum("ExtrapolationVariable");}
+-function IceMaskNodeActivationEnum(){ return StringToEnum("IceMaskNodeActivation");}
+-function LevelsetfunctionSlopeXEnum(){ return StringToEnum("LevelsetfunctionSlopeX");}
+-function LevelsetfunctionSlopeYEnum(){ return StringToEnum("LevelsetfunctionSlopeY");}
+-function LevelsetfunctionPicardEnum(){ return StringToEnum("LevelsetfunctionPicard");}
+-function MaximumNumberOfDefinitionsEnum(){ return StringToEnum("MaximumNumberOfDefinitions");}
++function FemModelEnum(){ return 0;}
++function AutodiffIsautodiffEnum(){ return 1;}
++function AutodiffNumDependentsEnum(){ return 2;}
++function AutodiffNumDependentObjectsEnum(){ return 3;}
++function AutodiffDependentObjectNamesEnum(){ return 4;}
++function AutodiffDependentObjectTypesEnum(){ return 5;}
++function AutodiffDependentObjectIndicesEnum(){ return 6;}
++function AutodiffDependentObjectsEnum(){ return 7;}
++function AutodiffNumIndependentsEnum(){ return 8;}
++function AutodiffNumIndependentObjectsEnum(){ return 9;}
++function AutodiffIndependentObjectNamesEnum(){ return 10;}
++function AutodiffIndependentObjectTypesEnum(){ return 11;}
++function AutodiffIndependentObjectsEnum(){ return 12;}
++function AutodiffJacobianEnum(){ return 13;}
++function AutodiffXpEnum(){ return 14;}
++function AutodiffDriverEnum(){ return 15;}
++function AutodiffFosForwardIndexEnum(){ return 16;}
++function AutodiffFovForwardIndicesEnum(){ return 17;}
++function AutodiffFosReverseIndexEnum(){ return 18;}
++function AutodiffMassFluxSegmentsPresentEnum(){ return 19;}
++function AutodiffKeepEnum(){ return 20;}
++function AutodiffObufsizeEnum(){ return 21;}
++function AutodiffLbufsizeEnum(){ return 22;}
++function AutodiffCbufsizeEnum(){ return 23;}
++function AutodiffTbufsizeEnum(){ return 24;}
++function AutodiffGcTriggerRatioEnum(){ return 25;}
++function AutodiffGcTriggerMaxSizeEnum(){ return 26;}
++function BalancethicknessSpcthicknessEnum(){ return 27;}
++function BalancethicknessStabilizationEnum(){ return 28;}
++function BalancethicknessThickeningRateEnum(){ return 29;}
++function BasalforcingsEnum(){ return 30;}
++function BasalforcingsGeothermalfluxEnum(){ return 31;}
++function BasalforcingsGroundediceMeltingRateEnum(){ return 32;}
++function BasalforcingsFloatingiceMeltingRateEnum(){ return 33;}
++function BasalforcingsDeepwaterMeltingRateEnum(){ return 34;}
++function BasalforcingsDeepwaterElevationEnum(){ return 35;}
++function BasalforcingsUpperwaterElevationEnum(){ return 36;}
++function BasalforcingsMeltrateFactorEnum(){ return 37;}
++function BasalforcingsThresholdThicknessEnum(){ return 38;}
++function BasalforcingsUpperdepthMeltEnum(){ return 39;}
++function FloatingMeltRateEnum(){ return 40;}
++function LinearFloatingMeltRateEnum(){ return 41;}
++function MismipFloatingMeltRateEnum(){ return 42;}
++function BedEnum(){ return 43;}
++function BaseEnum(){ return 44;}
++function ConstantsGEnum(){ return 45;}
++function ConstantsReferencetemperatureEnum(){ return 46;}
++function ConstantsYtsEnum(){ return 47;}
++function DependentObjectEnum(){ return 48;}
++function StressbalanceAbstolEnum(){ return 49;}
++function StressbalanceIsnewtonEnum(){ return 50;}
++function StressbalanceMaxiterEnum(){ return 51;}
++function StressbalancePenaltyFactorEnum(){ return 52;}
++function StressbalanceReferentialEnum(){ return 53;}
++function StressbalanceReltolEnum(){ return 54;}
++function StressbalanceNumRequestedOutputsEnum(){ return 55;}
++function StressbalanceRequestedOutputsEnum(){ return 56;}
++function StressbalanceRestolEnum(){ return 57;}
++function StressbalanceRiftPenaltyLockEnum(){ return 58;}
++function StressbalanceRiftPenaltyThresholdEnum(){ return 59;}
++function StressbalanceShelfDampeningEnum(){ return 60;}
++function StressbalanceSpcvxEnum(){ return 61;}
++function StressbalanceSpcvyEnum(){ return 62;}
++function StressbalanceSpcvzEnum(){ return 63;}
++function StressbalanceFSreconditioningEnum(){ return 64;}
++function StressbalanceVertexPairingEnum(){ return 65;}
++function StressbalanceViscosityOvershootEnum(){ return 66;}
++function LoadingforceXEnum(){ return 67;}
++function LoadingforceYEnum(){ return 68;}
++function LoadingforceZEnum(){ return 69;}
++function FlowequationBorderSSAEnum(){ return 70;}
++function FlowequationBorderHOEnum(){ return 71;}
++function FlowequationBorderFSEnum(){ return 72;}
++function FlowequationElementEquationEnum(){ return 73;}
++function FlowequationIsSIAEnum(){ return 74;}
++function FlowequationIsSSAEnum(){ return 75;}
++function FlowequationIsL1L2Enum(){ return 76;}
++function FlowequationIsHOEnum(){ return 77;}
++function FlowequationIsFSEnum(){ return 78;}
++function FlowequationFeSSAEnum(){ return 79;}
++function FlowequationFeHOEnum(){ return 80;}
++function FlowequationFeFSEnum(){ return 81;}
++function FlowequationVertexEquationEnum(){ return 82;}
++function FrictionAsEnum(){ return 83;}
++function FrictionCoefficientEnum(){ return 84;}
++function FrictionCoefficientcoulombEnum(){ return 85;}
++function FrictionPEnum(){ return 86;}
++function FrictionQEnum(){ return 87;}
++function FrictionMEnum(){ return 88;}
++function FrictionCEnum(){ return 89;}
++function FrictionLawEnum(){ return 90;}
++function FrictionGammaEnum(){ return 91;}
++function FrictionFEnum(){ return 92;}
++function FrictionWaterLayerEnum(){ return 93;}
++function FrictionEffectivePressureEnum(){ return 94;}
++function FrictionCouplingEnum(){ return 95;}
++function GeometryHydrostaticRatioEnum(){ return 96;}
++function HydrologyModelEnum(){ return 97;}
++function HydrologyshreveEnum(){ return 98;}
++function HydrologyshreveSpcwatercolumnEnum(){ return 99;}
++function HydrologyshreveStabilizationEnum(){ return 100;}
++function HydrologydcEnum(){ return 101;}
++function SedimentHeadEnum(){ return 102;}
++function SedimentHeadOldEnum(){ return 103;}
++function SedimentHeadResidualEnum(){ return 104;}
++function EffectivePressureEnum(){ return 105;}
++function EplHeadEnum(){ return 106;}
++function EplHeadOldEnum(){ return 107;}
++function EplHeadSlopeXEnum(){ return 108;}
++function EplHeadSlopeYEnum(){ return 109;}
++function EplZigZagCounterEnum(){ return 110;}
++function HydrologydcMaxIterEnum(){ return 111;}
++function HydrologydcRelTolEnum(){ return 112;}
++function HydrologydcSpcsedimentHeadEnum(){ return 113;}
++function HydrologydcSedimentCompressibilityEnum(){ return 114;}
++function HydrologydcSedimentPorosityEnum(){ return 115;}
++function HydrologydcSedimentThicknessEnum(){ return 116;}
++function HydrologydcSedimentTransmitivityEnum(){ return 117;}
++function HydrologydcWaterCompressibilityEnum(){ return 118;}
++function HydrologydcSpceplHeadEnum(){ return 119;}
++function HydrologydcMaskEplactiveNodeEnum(){ return 120;}
++function HydrologydcMaskEplactiveEltEnum(){ return 121;}
++function HydrologydcEplCompressibilityEnum(){ return 122;}
++function HydrologydcEplPorosityEnum(){ return 123;}
++function HydrologydcEplInitialThicknessEnum(){ return 124;}
++function HydrologydcEplColapseThicknessEnum(){ return 125;}
++function HydrologydcEplMaxThicknessEnum(){ return 126;}
++function HydrologydcEplThicknessEnum(){ return 127;}
++function HydrologydcEplThicknessOldEnum(){ return 128;}
++function HydrologydcEplThickCompEnum(){ return 129;}
++function HydrologydcEplConductivityEnum(){ return 130;}
++function HydrologydcIsefficientlayerEnum(){ return 131;}
++function HydrologydcSedimentlimitFlagEnum(){ return 132;}
++function HydrologydcSedimentlimitEnum(){ return 133;}
++function HydrologydcTransferFlagEnum(){ return 134;}
++function HydrologydcLeakageFactorEnum(){ return 135;}
++function HydrologydcPenaltyFactorEnum(){ return 136;}
++function HydrologydcPenaltyLockEnum(){ return 137;}
++function HydrologydcEplflipLockEnum(){ return 138;}
++function HydrologydcBasalMoulinInputEnum(){ return 139;}
++function HydrologyLayerEnum(){ return 140;}
++function HydrologySedimentEnum(){ return 141;}
++function HydrologyEfficientEnum(){ return 142;}
++function HydrologySedimentKmaxEnum(){ return 143;}
++function HydrologysommersEnum(){ return 144;}
++function HydrologyHeadEnum(){ return 145;}
++function HydrologyGapHeightEnum(){ return 146;}
++function HydrologyBumpSpacingEnum(){ return 147;}
++function HydrologyBumpHeightEnum(){ return 148;}
++function HydrologyEnglacialInputEnum(){ return 149;}
++function HydrologyMoulinInputEnum(){ return 150;}
++function HydrologyReynoldsEnum(){ return 151;}
++function HydrologyNeumannfluxEnum(){ return 152;}
++function HydrologySpcheadEnum(){ return 153;}
++function HydrologyConductivityEnum(){ return 154;}
++function IndependentObjectEnum(){ return 155;}
++function InversionControlParametersEnum(){ return 156;}
++function InversionControlScalingFactorsEnum(){ return 157;}
++function InversionCostFunctionThresholdEnum(){ return 158;}
++function InversionCostFunctionsCoefficientsEnum(){ return 159;}
++function InversionCostFunctionsEnum(){ return 160;}
++function InversionGradientScalingEnum(){ return 161;}
++function InversionIscontrolEnum(){ return 162;}
++function InversionTypeEnum(){ return 163;}
++function InversionIncompleteAdjointEnum(){ return 164;}
++function InversionMaxParametersEnum(){ return 165;}
++function InversionMaxiterPerStepEnum(){ return 166;}
++function InversionMaxiterEnum(){ return 167;}
++function InversionMaxstepsEnum(){ return 168;}
++function InversionFatolEnum(){ return 169;}
++function InversionFrtolEnum(){ return 170;}
++function InversionGatolEnum(){ return 171;}
++function InversionGrtolEnum(){ return 172;}
++function InversionGttolEnum(){ return 173;}
++function InversionAlgorithmEnum(){ return 174;}
++function InversionMinParametersEnum(){ return 175;}
++function InversionNstepsEnum(){ return 176;}
++function InversionDxminEnum(){ return 177;}
++function InversionNumControlParametersEnum(){ return 178;}
++function InversionNumCostFunctionsEnum(){ return 179;}
++function InversionStepThresholdEnum(){ return 180;}
++function InversionThicknessObsEnum(){ return 181;}
++function InversionSurfaceObsEnum(){ return 182;}
++function InversionVxObsEnum(){ return 183;}
++function InversionVyObsEnum(){ return 184;}
++function InversionVzObsEnum(){ return 185;}
++function MaskIceLevelsetEnum(){ return 186;}
++function MaterialsBetaEnum(){ return 187;}
++function MaterialsHeatcapacityEnum(){ return 188;}
++function MaterialsLatentheatEnum(){ return 189;}
++function MaterialsMeltingpointEnum(){ return 190;}
++function MaterialsMixedLayerCapacityEnum(){ return 191;}
++function MaterialsRheologyBEnum(){ return 192;}
++function MaterialsRheologyBbarEnum(){ return 193;}
++function MaterialsRheologyLawEnum(){ return 194;}
++function MaterialsRheologyNEnum(){ return 195;}
++function DamageIsdamageEnum(){ return 196;}
++function DamageDEnum(){ return 197;}
++function DamageFEnum(){ return 198;}
++function DamageDbarEnum(){ return 199;}
++function DamageLawEnum(){ return 200;}
++function DamageC1Enum(){ return 201;}
++function DamageC2Enum(){ return 202;}
++function DamageC3Enum(){ return 203;}
++function DamageC4Enum(){ return 204;}
++function DamageElementinterpEnum(){ return 205;}
++function DamageHealingEnum(){ return 206;}
++function DamageStressThresholdEnum(){ return 207;}
++function DamageKappaEnum(){ return 208;}
++function DamageStabilizationEnum(){ return 209;}
++function DamageMaxiterEnum(){ return 210;}
++function DamageSpcdamageEnum(){ return 211;}
++function DamageMaxDamageEnum(){ return 212;}
++function DamageEquivStressEnum(){ return 213;}
++function DamageEvolutionNumRequestedOutputsEnum(){ return 214;}
++function DamageEvolutionRequestedOutputsEnum(){ return 215;}
++function DamageEnum(){ return 216;}
++function NewDamageEnum(){ return 217;}
++function StressIntensityFactorEnum(){ return 218;}
++function CalvingLawEnum(){ return 219;}
++function CalvingCalvingrateEnum(){ return 220;}
++function CalvingMeltingrateEnum(){ return 221;}
++function CalvingLevermannEnum(){ return 222;}
++function CalvingPiEnum(){ return 223;}
++function CalvingDevEnum(){ return 224;}
++function DefaultCalvingEnum(){ return 225;}
++function CalvingRequestedOutputsEnum(){ return 226;}
++function CalvinglevermannCoeffEnum(){ return 227;}
++function CalvinglevermannMeltingrateEnum(){ return 228;}
++function CalvingpiCoeffEnum(){ return 229;}
++function CalvingpiMeltingrateEnum(){ return 230;}
++function CalvingratexEnum(){ return 231;}
++function CalvingrateyEnum(){ return 232;}
++function CalvingratexAverageEnum(){ return 233;}
++function CalvingrateyAverageEnum(){ return 234;}
++function StrainRateparallelEnum(){ return 235;}
++function StrainRateperpendicularEnum(){ return 236;}
++function StrainRateeffectiveEnum(){ return 237;}
++function MaterialsRhoIceEnum(){ return 238;}
++function MaterialsRhoSeawaterEnum(){ return 239;}
++function MaterialsRhoFreshwaterEnum(){ return 240;}
++function MaterialsMuWaterEnum(){ return 241;}
++function MaterialsThermalExchangeVelocityEnum(){ return 242;}
++function MaterialsThermalconductivityEnum(){ return 243;}
++function MaterialsTemperateiceconductivityEnum(){ return 244;}
++function MaterialsLithosphereShearModulusEnum(){ return 245;}
++function MaterialsLithosphereDensityEnum(){ return 246;}
++function MaterialsMantleShearModulusEnum(){ return 247;}
++function MaterialsMantleDensityEnum(){ return 248;}
++function MeshAverageVertexConnectivityEnum(){ return 249;}
++function MeshElements2dEnum(){ return 250;}
++function MeshElementsEnum(){ return 251;}
++function MeshLowerelementsEnum(){ return 252;}
++function MeshNumberofelements2dEnum(){ return 253;}
++function MeshNumberofelementsEnum(){ return 254;}
++function MeshNumberoflayersEnum(){ return 255;}
++function MeshNumberofvertices2dEnum(){ return 256;}
++function MeshNumberofverticesEnum(){ return 257;}
++function MeshUpperelementsEnum(){ return 258;}
++function MeshVertexonbaseEnum(){ return 259;}
++function MeshVertexonsurfaceEnum(){ return 260;}
++function MeshVertexonboundaryEnum(){ return 261;}
++function MeshXEnum(){ return 262;}
++function MeshYEnum(){ return 263;}
++function MeshZEnum(){ return 264;}
++function MeshElementtypeEnum(){ return 265;}
++function MeshSegmentsEnum(){ return 266;}
++function DomainTypeEnum(){ return 267;}
++function DomainDimensionEnum(){ return 268;}
++function Domain2DhorizontalEnum(){ return 269;}
++function Domain2DverticalEnum(){ return 270;}
++function Domain3DEnum(){ return 271;}
++function MiscellaneousNameEnum(){ return 272;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 273;}
++function MasstransportIsfreesurfaceEnum(){ return 274;}
++function MasstransportMinThicknessEnum(){ return 275;}
++function MasstransportPenaltyFactorEnum(){ return 276;}
++function MasstransportSpcthicknessEnum(){ return 277;}
++function MasstransportStabilizationEnum(){ return 278;}
++function MasstransportVertexPairingEnum(){ return 279;}
++function MasstransportNumRequestedOutputsEnum(){ return 280;}
++function MasstransportRequestedOutputsEnum(){ return 281;}
++function QmuIsdakotaEnum(){ return 282;}
++function MassFluxSegmentsEnum(){ return 283;}
++function MassFluxSegmentsPresentEnum(){ return 284;}
++function QmuMassFluxSegmentsPresentEnum(){ return 285;}
++function QmuNumberofpartitionsEnum(){ return 286;}
++function QmuNumberofresponsesEnum(){ return 287;}
++function QmuPartitionEnum(){ return 288;}
++function QmuResponsedescriptorsEnum(){ return 289;}
++function QmuVariabledescriptorsEnum(){ return 290;}
++function RiftsNumriftsEnum(){ return 291;}
++function RiftsRiftstructEnum(){ return 292;}
++function SettingsResultsOnNodesEnum(){ return 293;}
++function SettingsIoGatherEnum(){ return 294;}
++function SettingsLowmemEnum(){ return 295;}
++function SettingsOutputFrequencyEnum(){ return 296;}
++function SettingsRecordingFrequencyEnum(){ return 297;}
++function SettingsWaitonlockEnum(){ return 298;}
++function DebugProfilingEnum(){ return 299;}
++function ProfilingCurrentMemEnum(){ return 300;}
++function ProfilingCurrentFlopsEnum(){ return 301;}
++function ProfilingSolutionTimeEnum(){ return 302;}
++function SteadystateMaxiterEnum(){ return 303;}
++function SteadystateNumRequestedOutputsEnum(){ return 304;}
++function SteadystateReltolEnum(){ return 305;}
++function SteadystateRequestedOutputsEnum(){ return 306;}
++function SurfaceEnum(){ return 307;}
++function ThermalIsenthalpyEnum(){ return 308;}
++function ThermalIsdynamicbasalspcEnum(){ return 309;}
++function ThermalReltolEnum(){ return 310;}
++function ThermalMaxiterEnum(){ return 311;}
++function ThermalPenaltyFactorEnum(){ return 312;}
++function ThermalPenaltyLockEnum(){ return 313;}
++function ThermalPenaltyThresholdEnum(){ return 314;}
++function ThermalSpctemperatureEnum(){ return 315;}
++function ThermalStabilizationEnum(){ return 316;}
++function ThermalNumRequestedOutputsEnum(){ return 317;}
++function ThermalRequestedOutputsEnum(){ return 318;}
++function GiaMantleViscosityEnum(){ return 319;}
++function GiaLithosphereThicknessEnum(){ return 320;}
++function ThicknessEnum(){ return 321;}
++function TimesteppingStartTimeEnum(){ return 322;}
++function TimesteppingFinalTimeEnum(){ return 323;}
++function TimesteppingCflCoefficientEnum(){ return 324;}
++function TimesteppingTimeAdaptEnum(){ return 325;}
++function TimesteppingTimeStepEnum(){ return 326;}
++function TimesteppingInterpForcingsEnum(){ return 327;}
++function TransientIssmbEnum(){ return 328;}
++function TransientIsstressbalanceEnum(){ return 329;}
++function TransientIsgroundinglineEnum(){ return 330;}
++function TransientIsmasstransportEnum(){ return 331;}
++function TransientIsthermalEnum(){ return 332;}
++function TransientIsgiaEnum(){ return 333;}
++function TransientIsdamageevolutionEnum(){ return 334;}
++function TransientIshydrologyEnum(){ return 335;}
++function TransientIscalvingEnum(){ return 336;}
++function TransientNumRequestedOutputsEnum(){ return 337;}
++function TransientRequestedOutputsEnum(){ return 338;}
++function PotentialEnum(){ return 339;}
++function BalancethicknessSpcpotentialEnum(){ return 340;}
++function BalancethicknessApparentMassbalanceEnum(){ return 341;}
++function Balancethickness2MisfitEnum(){ return 342;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 343;}
++function BalancethicknessCmuEnum(){ return 344;}
++function BalancethicknessOmegaEnum(){ return 345;}
++function BalancethicknessD0Enum(){ return 346;}
++function SmbEnum(){ return 347;}
++function SmbAnalysisEnum(){ return 348;}
++function SmbSolutionEnum(){ return 349;}
++function SmbNumRequestedOutputsEnum(){ return 350;}
++function SmbRequestedOutputsEnum(){ return 351;}
++function SmbIsInitializedEnum(){ return 352;}
++function SMBforcingEnum(){ return 353;}
++function SmbMassBalanceEnum(){ return 354;}
++function SMBgembEnum(){ return 355;}
++function SmbInitDensityScalingEnum(){ return 356;}
++function SmbTaEnum(){ return 357;}
++function SmbVEnum(){ return 358;}
++function SmbDswrfEnum(){ return 359;}
++function SmbDlwrfEnum(){ return 360;}
++function SmbPEnum(){ return 361;}
++function SmbSwfEnum(){ return 362;}
++function SmbEAirEnum(){ return 363;}
++function SmbPAirEnum(){ return 364;}
++function SmbTmeanEnum(){ return 365;}
++function SmbCEnum(){ return 366;}
++function SmbTzEnum(){ return 367;}
++function SmbVzEnum(){ return 368;}
++function SmbDtEnum(){ return 369;}
++function SmbDzEnum(){ return 370;}
++function SmbAIdxEnum(){ return 371;}
++function SmbSwIdxEnum(){ return 372;}
++function SmbDenIdxEnum(){ return 373;}
++function SmbZTopEnum(){ return 374;}
++function SmbDzTopEnum(){ return 375;}
++function SmbDzMinEnum(){ return 376;}
++function SmbZYEnum(){ return 377;}
++function SmbZMaxEnum(){ return 378;}
++function SmbZMinEnum(){ return 379;}
++function SmbOutputFreqEnum(){ return 380;}
++function SmbASnowEnum(){ return 381;}
++function SmbAIceEnum(){ return 382;}
++function SmbCldFracEnum(){ return 383;}
++function SmbT0wetEnum(){ return 384;}
++function SmbT0dryEnum(){ return 385;}
++function SmbKEnum(){ return 386;}
++function SmbDEnum(){ return 387;}
++function SmbReEnum(){ return 388;}
++function SmbGdnEnum(){ return 389;}
++function SmbGspEnum(){ return 390;}
++function SmbECEnum(){ return 391;}
++function SmbCondensationEnum(){ return 392;}
++function SmbWEnum(){ return 393;}
++function SmbAEnum(){ return 394;}
++function SmbTEnum(){ return 395;}
++function SmbIsgraingrowthEnum(){ return 396;}
++function SmbIsalbedoEnum(){ return 397;}
++function SmbIsshortwaveEnum(){ return 398;}
++function SmbIsthermalEnum(){ return 399;}
++function SmbIsaccumulationEnum(){ return 400;}
++function SmbIsmeltEnum(){ return 401;}
++function SmbIsdensificationEnum(){ return 402;}
++function SmbIsturbulentfluxEnum(){ return 403;}
++function SMBpddEnum(){ return 404;}
++function SmbDelta18oEnum(){ return 405;}
++function SmbDelta18oSurfaceEnum(){ return 406;}
++function SmbIsdelta18oEnum(){ return 407;}
++function SmbIsmungsmEnum(){ return 408;}
++function SmbIsd18opdEnum(){ return 409;}
++function SmbPrecipitationsPresentdayEnum(){ return 410;}
++function SmbPrecipitationsLgmEnum(){ return 411;}
++function SmbTemperaturesPresentdayEnum(){ return 412;}
++function SmbTemperaturesLgmEnum(){ return 413;}
++function SmbPrecipitationEnum(){ return 414;}
++function SmbDesfacEnum(){ return 415;}
++function SmbS0pEnum(){ return 416;}
++function SmbS0tEnum(){ return 417;}
++function SmbRlapsEnum(){ return 418;}
++function SmbRlapslgmEnum(){ return 419;}
++function SmbPfacEnum(){ return 420;}
++function SmbTdiffEnum(){ return 421;}
++function SmbSealevEnum(){ return 422;}
++function SMBd18opddEnum(){ return 423;}
++function SmbDpermilEnum(){ return 424;}
++function SMBgradientsEnum(){ return 425;}
++function SmbMonthlytemperaturesEnum(){ return 426;}
++function SmbHrefEnum(){ return 427;}
++function SmbSmbrefEnum(){ return 428;}
++function SmbBPosEnum(){ return 429;}
++function SmbBNegEnum(){ return 430;}
++function SMBhenningEnum(){ return 431;}
++function SMBcomponentsEnum(){ return 432;}
++function SmbAccumulationEnum(){ return 433;}
++function SmbEvaporationEnum(){ return 434;}
++function SmbRunoffEnum(){ return 435;}
++function SMBmeltcomponentsEnum(){ return 436;}
++function SmbMeltEnum(){ return 437;}
++function SmbRefreezeEnum(){ return 438;}
++function SMBgcmEnum(){ return 439;}
++function SmbIspddEnum(){ return 440;}
++function SmbIssmbgradientsEnum(){ return 441;}
++function SolutionTypeEnum(){ return 442;}
++function AnalysisTypeEnum(){ return 443;}
++function ConfigurationTypeEnum(){ return 444;}
++function AdjointBalancethicknessAnalysisEnum(){ return 445;}
++function AdjointBalancethickness2AnalysisEnum(){ return 446;}
++function AdjointHorizAnalysisEnum(){ return 447;}
++function AnalysisCounterEnum(){ return 448;}
++function DefaultAnalysisEnum(){ return 449;}
++function BalancethicknessAnalysisEnum(){ return 450;}
++function BalancethicknessSolutionEnum(){ return 451;}
++function Balancethickness2AnalysisEnum(){ return 452;}
++function Balancethickness2SolutionEnum(){ return 453;}
++function BalancethicknessSoftAnalysisEnum(){ return 454;}
++function BalancethicknessSoftSolutionEnum(){ return 455;}
++function BalancevelocityAnalysisEnum(){ return 456;}
++function BalancevelocitySolutionEnum(){ return 457;}
++function L2ProjectionEPLAnalysisEnum(){ return 458;}
++function L2ProjectionBaseAnalysisEnum(){ return 459;}
++function BedSlopeSolutionEnum(){ return 460;}
++function DamageEvolutionSolutionEnum(){ return 461;}
++function DamageEvolutionAnalysisEnum(){ return 462;}
++function StressbalanceAnalysisEnum(){ return 463;}
++function StressbalanceSIAAnalysisEnum(){ return 464;}
++function StressbalanceSolutionEnum(){ return 465;}
++function StressbalanceVerticalAnalysisEnum(){ return 466;}
++function EnthalpyAnalysisEnum(){ return 467;}
++function FlaimAnalysisEnum(){ return 468;}
++function FlaimSolutionEnum(){ return 469;}
++function HydrologyShreveAnalysisEnum(){ return 470;}
++function HydrologyDCInefficientAnalysisEnum(){ return 471;}
++function HydrologyDCEfficientAnalysisEnum(){ return 472;}
++function HydrologySommersAnalysisEnum(){ return 473;}
++function HydrologySolutionEnum(){ return 474;}
++function MeltingAnalysisEnum(){ return 475;}
++function MasstransportAnalysisEnum(){ return 476;}
++function MasstransportSolutionEnum(){ return 477;}
++function FreeSurfaceBaseAnalysisEnum(){ return 478;}
++function FreeSurfaceTopAnalysisEnum(){ return 479;}
++function SurfaceNormalVelocityEnum(){ return 480;}
++function ExtrudeFromBaseAnalysisEnum(){ return 481;}
++function ExtrudeFromTopAnalysisEnum(){ return 482;}
++function DepthAverageAnalysisEnum(){ return 483;}
++function SteadystateSolutionEnum(){ return 484;}
++function SurfaceSlopeSolutionEnum(){ return 485;}
++function SmoothAnalysisEnum(){ return 486;}
++function ThermalAnalysisEnum(){ return 487;}
++function ThermalSolutionEnum(){ return 488;}
++function TransientSolutionEnum(){ return 489;}
++function UzawaPressureAnalysisEnum(){ return 490;}
++function GiaSolutionEnum(){ return 491;}
++function GiaAnalysisEnum(){ return 492;}
++function MeshdeformationSolutionEnum(){ return 493;}
++function MeshdeformationAnalysisEnum(){ return 494;}
++function LevelsetAnalysisEnum(){ return 495;}
++function LevelsetStabilizationEnum(){ return 496;}
++function ExtrapolationAnalysisEnum(){ return 497;}
++function LsfReinitializationAnalysisEnum(){ return 498;}
++function ApproximationEnum(){ return 499;}
++function NoneApproximationEnum(){ return 500;}
++function SIAApproximationEnum(){ return 501;}
++function SSAApproximationEnum(){ return 502;}
++function SSAHOApproximationEnum(){ return 503;}
++function SSAFSApproximationEnum(){ return 504;}
++function L1L2ApproximationEnum(){ return 505;}
++function HOApproximationEnum(){ return 506;}
++function HOFSApproximationEnum(){ return 507;}
++function FSApproximationEnum(){ return 508;}
++function FSvelocityEnum(){ return 509;}
++function FSpressureEnum(){ return 510;}
++function DataSetEnum(){ return 511;}
++function ConstraintsEnum(){ return 512;}
++function LoadsEnum(){ return 513;}
++function MaterialsEnum(){ return 514;}
++function NodesEnum(){ return 515;}
++function ContoursEnum(){ return 516;}
++function ParametersEnum(){ return 517;}
++function VerticesEnum(){ return 518;}
++function ResultsEnum(){ return 519;}
++function GenericParamEnum(){ return 520;}
++function AdolcParamEnum(){ return 521;}
++function BoolInputEnum(){ return 522;}
++function BoolParamEnum(){ return 523;}
++function ContourEnum(){ return 524;}
++function ControlInputEnum(){ return 525;}
++function DatasetInputEnum(){ return 526;}
++function DoubleInputEnum(){ return 527;}
++function DoubleArrayInputEnum(){ return 528;}
++function DataSetParamEnum(){ return 529;}
++function DoubleMatArrayParamEnum(){ return 530;}
++function DoubleMatParamEnum(){ return 531;}
++function DoubleParamEnum(){ return 532;}
++function DoubleVecParamEnum(){ return 533;}
++function ElementEnum(){ return 534;}
++function ElementHookEnum(){ return 535;}
++function HookEnum(){ return 536;}
++function ExternalResultEnum(){ return 537;}
++function FileParamEnum(){ return 538;}
++function InputEnum(){ return 539;}
++function IntInputEnum(){ return 540;}
++function InputToExtrudeEnum(){ return 541;}
++function InputToL2ProjectEnum(){ return 542;}
++function InputToDepthaverageEnum(){ return 543;}
++function InputToSmoothEnum(){ return 544;}
++function SmoothThicknessMultiplierEnum(){ return 545;}
++function IntParamEnum(){ return 546;}
++function IntVecParamEnum(){ return 547;}
++function TransientParamEnum(){ return 548;}
++function MaticeEnum(){ return 549;}
++function MatdamageiceEnum(){ return 550;}
++function MatparEnum(){ return 551;}
++function NodeEnum(){ return 552;}
++function NumericalfluxEnum(){ return 553;}
++function NumericalfluxTypeEnum(){ return 554;}
++function NeumannfluxEnum(){ return 555;}
++function ParamEnum(){ return 556;}
++function MoulinEnum(){ return 557;}
++function PengridEnum(){ return 558;}
++function PenpairEnum(){ return 559;}
++function ProfilerEnum(){ return 560;}
++function MatrixParamEnum(){ return 561;}
++function MassconEnum(){ return 562;}
++function MassconNameEnum(){ return 563;}
++function MassconDefinitionenumEnum(){ return 564;}
++function MassconLevelsetEnum(){ return 565;}
++function MassconaxpbyEnum(){ return 566;}
++function MassconaxpbyNameEnum(){ return 567;}
++function MassconaxpbyDefinitionenumEnum(){ return 568;}
++function MassconaxpbyNamexEnum(){ return 569;}
++function MassconaxpbyNameyEnum(){ return 570;}
++function MassconaxpbyAlphaEnum(){ return 571;}
++function MassconaxpbyBetaEnum(){ return 572;}
++function NodeSIdEnum(){ return 573;}
++function VectorParamEnum(){ return 574;}
++function RiftfrontEnum(){ return 575;}
++function RiftfrontTypeEnum(){ return 576;}
++function SegmentEnum(){ return 577;}
++function SegmentRiftfrontEnum(){ return 578;}
++function SpcDynamicEnum(){ return 579;}
++function SpcStaticEnum(){ return 580;}
++function SpcTransientEnum(){ return 581;}
++function StringArrayParamEnum(){ return 582;}
++function StringParamEnum(){ return 583;}
++function SegEnum(){ return 584;}
++function SegInputEnum(){ return 585;}
++function TriaEnum(){ return 586;}
++function TriaInputEnum(){ return 587;}
++function TetraEnum(){ return 588;}
++function TetraInputEnum(){ return 589;}
++function PentaEnum(){ return 590;}
++function PentaInputEnum(){ return 591;}
++function VertexEnum(){ return 592;}
++function VertexPIdEnum(){ return 593;}
++function VertexSIdEnum(){ return 594;}
++function AirEnum(){ return 595;}
++function IceEnum(){ return 596;}
++function MelangeEnum(){ return 597;}
++function WaterEnum(){ return 598;}
++function ClosedEnum(){ return 599;}
++function FreeEnum(){ return 600;}
++function OpenEnum(){ return 601;}
++function AdjointpEnum(){ return 602;}
++function AdjointxEnum(){ return 603;}
++function AdjointyEnum(){ return 604;}
++function AdjointzEnum(){ return 605;}
++function BalancethicknessMisfitEnum(){ return 606;}
++function BedSlopeXEnum(){ return 607;}
++function BedSlopeYEnum(){ return 608;}
++function BoundaryEnum(){ return 609;}
++function ConvergedEnum(){ return 610;}
++function FillEnum(){ return 611;}
++function FractionIncrementEnum(){ return 612;}
++function FrictionEnum(){ return 613;}
++function InternalEnum(){ return 614;}
++function MassFluxEnum(){ return 615;}
++function MeltingOffsetEnum(){ return 616;}
++function MisfitEnum(){ return 617;}
++function PressureEnum(){ return 618;}
++function PressurePicardEnum(){ return 619;}
++function AndroidFrictionCoefficientEnum(){ return 620;}
++function ResetPenaltiesEnum(){ return 621;}
++function SegmentOnIceShelfEnum(){ return 622;}
++function SurfaceAbsVelMisfitEnum(){ return 623;}
++function SurfaceAreaEnum(){ return 624;}
++function SurfaceAverageVelMisfitEnum(){ return 625;}
++function SurfaceLogVelMisfitEnum(){ return 626;}
++function SurfaceLogVxVyMisfitEnum(){ return 627;}
++function SurfaceRelVelMisfitEnum(){ return 628;}
++function SurfaceSlopeXEnum(){ return 629;}
++function SurfaceSlopeYEnum(){ return 630;}
++function TemperatureEnum(){ return 631;}
++function TemperaturePicardEnum(){ return 632;}
++function TemperaturePDDEnum(){ return 633;}
++function ThicknessAbsMisfitEnum(){ return 634;}
++function SurfaceAbsMisfitEnum(){ return 635;}
++function VelEnum(){ return 636;}
++function VelocityEnum(){ return 637;}
++function VxAverageEnum(){ return 638;}
++function VxEnum(){ return 639;}
++function VxPicardEnum(){ return 640;}
++function VyAverageEnum(){ return 641;}
++function VyEnum(){ return 642;}
++function VyPicardEnum(){ return 643;}
++function VzEnum(){ return 644;}
++function VzSSAEnum(){ return 645;}
++function VzHOEnum(){ return 646;}
++function VzPicardEnum(){ return 647;}
++function VzFSEnum(){ return 648;}
++function VxMeshEnum(){ return 649;}
++function VyMeshEnum(){ return 650;}
++function VzMeshEnum(){ return 651;}
++function EnthalpyEnum(){ return 652;}
++function EnthalpyPicardEnum(){ return 653;}
++function ThicknessAbsGradientEnum(){ return 654;}
++function ThicknessAlongGradientEnum(){ return 655;}
++function ThicknessAcrossGradientEnum(){ return 656;}
++function IntMatParamEnum(){ return 657;}
++function RheologyBbarAbsGradientEnum(){ return 658;}
++function RheologyBAbsGradientEnum(){ return 659;}
++function DragCoefficientAbsGradientEnum(){ return 660;}
++function TransientInputEnum(){ return 661;}
++function WaterfractionEnum(){ return 662;}
++function WatercolumnEnum(){ return 663;}
++function BasalFrictionEnum(){ return 664;}
++function ViscousHeatingEnum(){ return 665;}
++function HydrologyWaterVxEnum(){ return 666;}
++function HydrologyWaterVyEnum(){ return 667;}
++function DrivingStressXEnum(){ return 668;}
++function DrivingStressYEnum(){ return 669;}
++function SigmaNNEnum(){ return 670;}
++function StressTensorEnum(){ return 671;}
++function StressTensorxxEnum(){ return 672;}
++function StressTensorxyEnum(){ return 673;}
++function StressTensorxzEnum(){ return 674;}
++function StressTensoryyEnum(){ return 675;}
++function StressTensoryzEnum(){ return 676;}
++function StressTensorzzEnum(){ return 677;}
++function StressMaxPrincipalEnum(){ return 678;}
++function DeviatoricStressEnum(){ return 679;}
++function DeviatoricStressxxEnum(){ return 680;}
++function DeviatoricStressxyEnum(){ return 681;}
++function DeviatoricStressxzEnum(){ return 682;}
++function DeviatoricStressyyEnum(){ return 683;}
++function DeviatoricStressyzEnum(){ return 684;}
++function DeviatoricStresszzEnum(){ return 685;}
++function StrainRateEnum(){ return 686;}
++function StrainRatexxEnum(){ return 687;}
++function StrainRatexyEnum(){ return 688;}
++function StrainRatexzEnum(){ return 689;}
++function StrainRateyyEnum(){ return 690;}
++function StrainRateyzEnum(){ return 691;}
++function StrainRatezzEnum(){ return 692;}
++function DivergenceEnum(){ return 693;}
++function MaxDivergenceEnum(){ return 694;}
++function GiaCrossSectionShapeEnum(){ return 695;}
++function GiadWdtEnum(){ return 696;}
++function GiaWEnum(){ return 697;}
++function P0Enum(){ return 698;}
++function P0ArrayEnum(){ return 699;}
++function P1Enum(){ return 700;}
++function P1DGEnum(){ return 701;}
++function P1bubbleEnum(){ return 702;}
++function P1bubblecondensedEnum(){ return 703;}
++function P2Enum(){ return 704;}
++function P2bubbleEnum(){ return 705;}
++function P2bubblecondensedEnum(){ return 706;}
++function P2xP1Enum(){ return 707;}
++function P1xP2Enum(){ return 708;}
++function P1xP3Enum(){ return 709;}
++function P2xP4Enum(){ return 710;}
++function P1P1Enum(){ return 711;}
++function P1P1GLSEnum(){ return 712;}
++function MINIEnum(){ return 713;}
++function MINIcondensedEnum(){ return 714;}
++function TaylorHoodEnum(){ return 715;}
++function LATaylorHoodEnum(){ return 716;}
++function XTaylorHoodEnum(){ return 717;}
++function OneLayerP4zEnum(){ return 718;}
++function CrouzeixRaviartEnum(){ return 719;}
++function LACrouzeixRaviartEnum(){ return 720;}
++function SaveResultsEnum(){ return 721;}
++function BoolExternalResultEnum(){ return 722;}
++function DoubleExternalResultEnum(){ return 723;}
++function DoubleMatExternalResultEnum(){ return 724;}
++function IntExternalResultEnum(){ return 725;}
++function JEnum(){ return 726;}
++function StringExternalResultEnum(){ return 727;}
++function StepEnum(){ return 728;}
++function TimeEnum(){ return 729;}
++function WaterColumnOldEnum(){ return 730;}
++function OutputdefinitionEnum(){ return 731;}
++function Outputdefinition1Enum(){ return 732;}
++function Outputdefinition2Enum(){ return 733;}
++function Outputdefinition3Enum(){ return 734;}
++function Outputdefinition4Enum(){ return 735;}
++function Outputdefinition5Enum(){ return 736;}
++function Outputdefinition6Enum(){ return 737;}
++function Outputdefinition7Enum(){ return 738;}
++function Outputdefinition8Enum(){ return 739;}
++function Outputdefinition9Enum(){ return 740;}
++function Outputdefinition10Enum(){ return 741;}
++function Outputdefinition11Enum(){ return 742;}
++function Outputdefinition12Enum(){ return 743;}
++function Outputdefinition13Enum(){ return 744;}
++function Outputdefinition14Enum(){ return 745;}
++function Outputdefinition15Enum(){ return 746;}
++function Outputdefinition16Enum(){ return 747;}
++function Outputdefinition17Enum(){ return 748;}
++function Outputdefinition18Enum(){ return 749;}
++function Outputdefinition19Enum(){ return 750;}
++function Outputdefinition20Enum(){ return 751;}
++function Outputdefinition21Enum(){ return 752;}
++function Outputdefinition22Enum(){ return 753;}
++function Outputdefinition23Enum(){ return 754;}
++function Outputdefinition24Enum(){ return 755;}
++function Outputdefinition25Enum(){ return 756;}
++function Outputdefinition26Enum(){ return 757;}
++function Outputdefinition27Enum(){ return 758;}
++function Outputdefinition28Enum(){ return 759;}
++function Outputdefinition29Enum(){ return 760;}
++function Outputdefinition30Enum(){ return 761;}
++function Outputdefinition31Enum(){ return 762;}
++function Outputdefinition32Enum(){ return 763;}
++function Outputdefinition33Enum(){ return 764;}
++function Outputdefinition34Enum(){ return 765;}
++function Outputdefinition35Enum(){ return 766;}
++function Outputdefinition36Enum(){ return 767;}
++function Outputdefinition37Enum(){ return 768;}
++function Outputdefinition38Enum(){ return 769;}
++function Outputdefinition39Enum(){ return 770;}
++function Outputdefinition40Enum(){ return 771;}
++function Outputdefinition41Enum(){ return 772;}
++function Outputdefinition42Enum(){ return 773;}
++function Outputdefinition43Enum(){ return 774;}
++function Outputdefinition44Enum(){ return 775;}
++function Outputdefinition45Enum(){ return 776;}
++function Outputdefinition46Enum(){ return 777;}
++function Outputdefinition47Enum(){ return 778;}
++function Outputdefinition48Enum(){ return 779;}
++function Outputdefinition49Enum(){ return 780;}
++function Outputdefinition50Enum(){ return 781;}
++function Outputdefinition51Enum(){ return 782;}
++function Outputdefinition52Enum(){ return 783;}
++function Outputdefinition53Enum(){ return 784;}
++function Outputdefinition54Enum(){ return 785;}
++function Outputdefinition55Enum(){ return 786;}
++function Outputdefinition56Enum(){ return 787;}
++function Outputdefinition57Enum(){ return 788;}
++function Outputdefinition58Enum(){ return 789;}
++function Outputdefinition59Enum(){ return 790;}
++function Outputdefinition60Enum(){ return 791;}
++function Outputdefinition61Enum(){ return 792;}
++function Outputdefinition62Enum(){ return 793;}
++function Outputdefinition63Enum(){ return 794;}
++function Outputdefinition64Enum(){ return 795;}
++function Outputdefinition65Enum(){ return 796;}
++function Outputdefinition66Enum(){ return 797;}
++function Outputdefinition67Enum(){ return 798;}
++function Outputdefinition68Enum(){ return 799;}
++function Outputdefinition69Enum(){ return 800;}
++function Outputdefinition70Enum(){ return 801;}
++function Outputdefinition71Enum(){ return 802;}
++function Outputdefinition72Enum(){ return 803;}
++function Outputdefinition73Enum(){ return 804;}
++function Outputdefinition74Enum(){ return 805;}
++function Outputdefinition75Enum(){ return 806;}
++function Outputdefinition76Enum(){ return 807;}
++function Outputdefinition77Enum(){ return 808;}
++function Outputdefinition78Enum(){ return 809;}
++function Outputdefinition79Enum(){ return 810;}
++function Outputdefinition80Enum(){ return 811;}
++function Outputdefinition81Enum(){ return 812;}
++function Outputdefinition82Enum(){ return 813;}
++function Outputdefinition83Enum(){ return 814;}
++function Outputdefinition84Enum(){ return 815;}
++function Outputdefinition85Enum(){ return 816;}
++function Outputdefinition86Enum(){ return 817;}
++function Outputdefinition87Enum(){ return 818;}
++function Outputdefinition88Enum(){ return 819;}
++function Outputdefinition89Enum(){ return 820;}
++function Outputdefinition90Enum(){ return 821;}
++function Outputdefinition91Enum(){ return 822;}
++function Outputdefinition92Enum(){ return 823;}
++function Outputdefinition93Enum(){ return 824;}
++function Outputdefinition94Enum(){ return 825;}
++function Outputdefinition95Enum(){ return 826;}
++function Outputdefinition96Enum(){ return 827;}
++function Outputdefinition97Enum(){ return 828;}
++function Outputdefinition98Enum(){ return 829;}
++function Outputdefinition99Enum(){ return 830;}
++function Outputdefinition100Enum(){ return 831;}
++function OutputdefinitionListEnum(){ return 832;}
++function MassfluxatgateEnum(){ return 833;}
++function MassfluxatgateNameEnum(){ return 834;}
++function MassfluxatgateDefinitionenumEnum(){ return 835;}
++function MassfluxatgateSegmentsEnum(){ return 836;}
++function MisfitNameEnum(){ return 837;}
++function MisfitDefinitionenumEnum(){ return 838;}
++function MisfitModelEnum(){ return 839;}
++function MisfitObservationEnum(){ return 840;}
++function MisfitObservationEnum(){ return 841;}
++function MisfitLocalEnum(){ return 842;}
++function MisfitTimeinterpolationEnum(){ return 843;}
++function MisfitWeightsEnum(){ return 844;}
++function MisfitWeightsEnum(){ return 845;}
++function SurfaceObservationEnum(){ return 846;}
++function WeightsSurfaceObservationEnum(){ return 847;}
++function VxObsEnum(){ return 848;}
++function WeightsVxObsEnum(){ return 849;}
++function VyObsEnum(){ return 850;}
++function WeightsVyObsEnum(){ return 851;}
++function MinVelEnum(){ return 852;}
++function MaxVelEnum(){ return 853;}
++function MinVxEnum(){ return 854;}
++function MaxVxEnum(){ return 855;}
++function MaxAbsVxEnum(){ return 856;}
++function MinVyEnum(){ return 857;}
++function MaxVyEnum(){ return 858;}
++function MaxAbsVyEnum(){ return 859;}
++function MinVzEnum(){ return 860;}
++function MaxVzEnum(){ return 861;}
++function MaxAbsVzEnum(){ return 862;}
++function FloatingAreaEnum(){ return 863;}
++function GroundedAreaEnum(){ return 864;}
++function IceMassEnum(){ return 865;}
++function IceVolumeEnum(){ return 866;}
++function IceVolumeAboveFloatationEnum(){ return 867;}
++function TotalSmbEnum(){ return 868;}
++function AbsoluteEnum(){ return 869;}
++function IncrementalEnum(){ return 870;}
++function AugmentedLagrangianREnum(){ return 871;}
++function AugmentedLagrangianRhopEnum(){ return 872;}
++function AugmentedLagrangianRlambdaEnum(){ return 873;}
++function AugmentedLagrangianRholambdaEnum(){ return 874;}
++function AugmentedLagrangianThetaEnum(){ return 875;}
++function NoneEnum(){ return 876;}
++function AggressiveMigrationEnum(){ return 877;}
++function SoftMigrationEnum(){ return 878;}
++function SubelementMigrationEnum(){ return 879;}
++function SubelementMigration2Enum(){ return 880;}
++function ContactEnum(){ return 881;}
++function GroundingOnlyEnum(){ return 882;}
++function MaskGroundediceLevelsetEnum(){ return 883;}
++function GaussSegEnum(){ return 884;}
++function GaussTriaEnum(){ return 885;}
++function GaussTetraEnum(){ return 886;}
++function GaussPentaEnum(){ return 887;}
++function FSSolverEnum(){ return 888;}
++function AdjointEnum(){ return 889;}
++function ColinearEnum(){ return 890;}
++function ControlSteadyEnum(){ return 891;}
++function FsetEnum(){ return 892;}
++function Gradient1Enum(){ return 893;}
++function Gradient2Enum(){ return 894;}
++function Gradient3Enum(){ return 895;}
++function GradientEnum(){ return 896;}
++function GroundinglineMigrationEnum(){ return 897;}
++function GsetEnum(){ return 898;}
++function IndexEnum(){ return 899;}
++function IndexedEnum(){ return 900;}
++function IntersectEnum(){ return 901;}
++function NodalEnum(){ return 902;}
++function OldGradientEnum(){ return 903;}
++function OutputBufferPointerEnum(){ return 904;}
++function OutputBufferSizePointerEnum(){ return 905;}
++function OutputFilePointerEnum(){ return 906;}
++function ToolkitsFileNameEnum(){ return 907;}
++function RootPathEnum(){ return 908;}
++function OutputFileNameEnum(){ return 909;}
++function InputFileNameEnum(){ return 910;}
++function LockFileNameEnum(){ return 911;}
++function RestartFileNameEnum(){ return 912;}
++function ToolkitsOptionsAnalysesEnum(){ return 913;}
++function ToolkitsOptionsStringsEnum(){ return 914;}
++function QmuErrNameEnum(){ return 915;}
++function QmuInNameEnum(){ return 916;}
++function QmuOutNameEnum(){ return 917;}
++function RegularEnum(){ return 918;}
++function ScaledEnum(){ return 919;}
++function SeparateEnum(){ return 920;}
++function SsetEnum(){ return 921;}
++function VerboseEnum(){ return 922;}
++function TriangleInterpEnum(){ return 923;}
++function BilinearInterpEnum(){ return 924;}
++function NearestInterpEnum(){ return 925;}
++function XYEnum(){ return 926;}
++function XYZEnum(){ return 927;}
++function DenseEnum(){ return 928;}
++function MpiDenseEnum(){ return 929;}
++function MpiSparseEnum(){ return 930;}
++function SeqEnum(){ return 931;}
++function MpiEnum(){ return 932;}
++function MumpsEnum(){ return 933;}
++function GslEnum(){ return 934;}
++function OptionEnum(){ return 935;}
++function GenericOptionEnum(){ return 936;}
++function OptionCellEnum(){ return 937;}
++function OptionStructEnum(){ return 938;}
++function CuffeyEnum(){ return 939;}
++function PatersonEnum(){ return 940;}
++function ArrheniusEnum(){ return 941;}
++function LliboutryDuvalEnum(){ return 942;}
++function TransientIslevelsetEnum(){ return 943;}
++function SpcLevelsetEnum(){ return 944;}
++function ExtrapolationVariableEnum(){ return 945;}
++function IceMaskNodeActivationEnum(){ return 946;}
++function LevelsetfunctionSlopeXEnum(){ return 947;}
++function LevelsetfunctionSlopeYEnum(){ return 948;}
++function LevelsetfunctionPicardEnum(){ return 949;}
++function MaximumNumberOfDefinitionsEnum(){ return 950;}
+Index: ../trunk-jpl/src/m/enum/OutputBufferSizePointerEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/OutputBufferSizePointerEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/OutputBufferSizePointerEnum.m	(revision 19809)
+@@ -0,0 +1,11 @@
++function macro=OutputBufferSizePointerEnum()
++%OUTPUTBUFFERSIZEPOINTERENUM - Enum of OutputBufferSizePointer
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=OutputBufferSizePointerEnum()
++
++macro=StringToEnum('OutputBufferSizePointer');
+Index: ../trunk-jpl/src/m/enum/OutputBufferPointerEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/OutputBufferPointerEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/OutputBufferPointerEnum.m	(revision 19809)
+@@ -0,0 +1,11 @@
++function macro=OutputBufferPointerEnum()
++%OUTPUTBUFFERPOINTERENUM - Enum of OutputBufferPointer
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=OutputBufferPointerEnum()
++
++macro=StringToEnum('OutputBufferPointer');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19808)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19809)
+@@ -912,6 +912,8 @@
+ def IntersectEnum(): return StringToEnum("Intersect")[0]
+ def NodalEnum(): return StringToEnum("Nodal")[0]
+ def OldGradientEnum(): return StringToEnum("OldGradient")[0]
++def OutputBufferPointerEnum(): return StringToEnum("OutputBufferPointer")[0]
++def OutputBufferSizePointerEnum(): return StringToEnum("OutputBufferSizePointer")[0]
+ def OutputFilePointerEnum(): return StringToEnum("OutputFilePointer")[0]
+ def ToolkitsFileNameEnum(): return StringToEnum("ToolkitsFileName")[0]
+ def RootPathEnum(): return StringToEnum("RootPath")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19809-19810.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19809-19810.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19809-19810.diff	(revision 20498)
@@ -0,0 +1,113 @@
+Index: ../trunk-jpl/src/m/solve/marshall.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/marshall.js	(revision 19809)
++++ ../trunk-jpl/src/m/solve/marshall.js	(revision 19810)
+@@ -12,7 +12,7 @@
+ 	}
+ 
+ 	//open file for binary writing
+-	fid=new fileptr();
++	fid=new fileptr('mode','w');
+ 
+ 	//First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
+ 	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',true,'format','Boolean');
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 19809)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 19810)
+@@ -11,6 +11,8 @@
+ 	this.buffer =NaN;
+ 	this.view =NaN;
+ 	this.ptr =NaN;
++	this.buffersize =NaN;
++	this.mode ='';
+ 	this.options = new pairoptions(Array.prototype.slice.call(arguments));
+ 	
+ 	//methods
+@@ -20,14 +22,31 @@
+ 			console.log(sprintf("       buffer: ArrayBuffer{ byteLength: %i }\n",this.buffer.byteLength));
+ 			console.log(sprintf("       ptr: %i\n",this.ptr));
+ 			console.log(sprintf("       increment: %i\n",this.increment));
++			console.log(sprintf("       mode: %s\n",this.mode));
+ 
+ 		} //}}}
+ 		this.setdefaultparameters = function (options) { //{{{
+-
+-			this.increment=options.getfieldvalue('increment',80000); //80000 bytes,  10000 doubles.
+-			this.buffer=new ArrayBuffer(this.increment);
++	
++			this.mode=options.getfieldvalue('mode');
+ 			this.ptr=0;
+-			this.view=new DataView(this.buffer);
++			this.increment=0;
++			this.buffersize=0;
++			if (this.mode=='w'){
++				this.increment=options.getfieldvalue('increment',80000); //80000 bytes,  10000 doubles.
++				this.buffer=new ArrayBuffer(this.increment);
++				this.view=new DataView(this.buffer);
++			}
++			else if(this.mode == 'r'){
++				
++				/*recover buffer and its size: */
++				var bufferin= options.getfieldvalue('buffer');
++				this.buffersize= options.getfieldvalue('buffersize');
++				
++				/*crete a typed array buffer: */
++				this.buffer=new ArrayBuffer(this.buffersize);
++				this.view=new DataView(this.buffer); 
++				for(var i=0;i<this.buffersize;i++) this.view.setUint8(i,bufferin[i]);
++			}
+ 
+ 		} //}}}
+ 		this.fwrite = function (value,format) { //{{{
+@@ -71,6 +90,50 @@
+ 			}
+ 			else throw Error('fileptr.fwrite error message: wrong type of format');
+ 		} //}}}
++		this.fread = function (size,format) { //{{{
++			
++			var value;
++
++			if(this.ptr==this.buffersize)return -1;
++			if(format == 'int'){
++				if(size==1){
++					value=this.view.getUint32(this.ptr,true); 
++					this.ptr+=4;
++				}
++				else{
++					value = new Uint32Array(size);
++					for(var i=0;i<size;i++){
++						value[i]=this.view.getUint32(this.ptr,true); 
++						this.ptr+=4;
++					}
++				}
++			}
++			else if(format == 'char'){
++				value = ''; 
++				for(var i=0;i<(size-1);i++){
++					value+= String.fromCharCode(this.view.getUint8(this.ptr,true));
++					this.ptr+=1;
++				}
++				this.ptr+=1; //pass over the '\0';
++
++			}
++			else if(format == 'double'){
++				if(size==1){
++					value=this.view.getFloat64(this.ptr,true);
++					this.ptr+=8;
++				}
++				else{ 
++					value = new Float64Array(size);
++					for(var i=0;i<size;i++){
++						value[i]=this.view.getFloat64(this.ptr,true);
++						this.ptr+=8;
++					}
++				}
++			}
++			else throw Error('fileptr.fwrite error message: wrong type of format');
++			
++			return value;
++		} //}}}
+ 		this.rawbuffer = function () { //{{{
+ 			return this.buffer.slice(0,this.ptr);
+ 		} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19810-19811.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19810-19811.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19810-19811.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19810)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 19811)
+@@ -56,7 +56,7 @@
+ 		index = counter;
+ 	end
+ 	results(index).(result.fieldname)=result.field;
+-	if(result.time~=-9999),
++	if(result.step~=-9999),
+ 		results(index).step=result.step;
+ 	end
+ 	if(result.time~=-9999),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19811-19812.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19811-19812.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19811-19812.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19811)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19812)
+@@ -276,8 +276,7 @@
+ 	id = in_id;
+ 	value = xNew<char>(strlen(in_value)+1);
+ 	xMemCpy<char>(value,in_value,(strlen(in_value)+1));
+-	//step = UNDEF;  Update: can't define an int as UNDEF, ends up as garbage.
+-	step  = 0; //this result needs to end up in the first step. (used to be UNDEF, which is garbage for an int type)
++	step = UNDEF;  Update: can't define an int as UNDEF, ends up as garbage.
+ 	time  = UNDEF;
+ 
+ 	/*Convert enum to name*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19812-19813.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19812-19813.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19812-19813.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19812)
++++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 19813)
+@@ -276,7 +276,7 @@
+ 	id = in_id;
+ 	value = xNew<char>(strlen(in_value)+1);
+ 	xMemCpy<char>(value,in_value,(strlen(in_value)+1));
+-	step = UNDEF;  Update: can't define an int as UNDEF, ends up as garbage.
++	step = UNDEF;  
+ 	time  = UNDEF;
+ 
+ 	/*Convert enum to name*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-19813-19814.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19813-19814.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19813-19814.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 19813)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 19814)
+@@ -97,13 +97,13 @@
+ 			if(this.ptr==this.buffersize)return -1;
+ 			if(format == 'int'){
+ 				if(size==1){
+-					value=this.view.getUint32(this.ptr,true); 
++					value=this.view.getInt32(this.ptr,true); 
+ 					this.ptr+=4;
+ 				}
+ 				else{
+-					value = new Uint32Array(size);
++					value = new Int32Array(size);
+ 					for(var i=0;i<size;i++){
+-						value[i]=this.view.getUint32(this.ptr,true); 
++						value[i]=this.view.getInt32(this.ptr,true); 
+ 						this.ptr+=4;
+ 					}
+ 				}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19814-19815.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19814-19815.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19814-19815.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19814)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19815)
+@@ -80,7 +80,7 @@
+ 			this.inversion        = new inversion();
+ 			this.qmu              = new qmu();
+ 			this.radaroverlay     = new radaroverlay();
+-			this.results          = [];
++			this.results          = {};
+ 			this.outputdefinition = new outputdefinition();
+ 			this.miscellaneous    = new miscellaneous();
+ 			this.private          = new private();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19815-19816.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19815-19816.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19815-19816.diff	(revision 20498)
@@ -0,0 +1,217 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19815)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19816)
+@@ -72,6 +72,8 @@
+ <script type="text/javascript" src="../../src/m/solve/solve.js"></script>
+ <script type="text/javascript" src="../../src/m/inversions/marshallcostfunctions.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/marshall.js"></script>
++<script type="text/javascript" src="../../src/m/solve/loadresultsfrombuffer.js"></script>
++<script type="text/javascript" src="../../src/m/solve/parseresultsfrombuffer.js"></script>
+ <script type="text/javascript" src="../../src/m/solve/WriteData.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/EnumToString/EnumToString.js"></script>
+@@ -89,20 +91,25 @@
+ </head>
+ <body> 
+ 	
+-	<script type="text/javascript" async><!--}}}-->
++<script type="text/javascript" async><!--}}}-->
+ 
++	console.log('creating model'); 
+ 	var md = new model();
+-	triangle(md,square[0],100000); 
++
++	console.log('meshing');
++	triangle(md,square[0],40000); 
++	
++	console.log('parameterization');
+ 	setmask(md,'all','');
+ 	parameterize(md);
+ 	setflowequation(md,'SSA','all');
+-	md.verbose.solution=1;  md.verbose.convergence=1;
+-	md=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
++	md.verbose.solution=1;  md.verbose.convergence=0;
+ 
+-	/*plotmodel(md,'data',md.initialization.vel,'colorbar','on','colorbarheight',.5,'data',md.initialization.vx,
+-	  'data',md.initialization.temperature, 'data',md.basalforcings.floatingice_melting_rate,'data','mesh');*/
+-	//var output=issm([5,1,1]);
++	console.log('solve');
++	solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
+ 
++	console.log('plotting');
++	plotmodel(md,'data',md.results['StressbalanceSolution'][0]['Vel'],'colorbar#1','on','colorbarheight',.5);
+ 
+ </script> <!--{{{-->
+ </body> 
+Index: ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js	(revision 0)
++++ ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js	(revision 19816)
+@@ -0,0 +1,116 @@
++function parseresultsfrombuffer(buffer,buffersize){ //{{{
++//PARSERESULTSFROMDISK - ...
++//
++//   Usage:
++//      results=parseresultsfrombuffer(buffer,buffersize);
++
++	//Open file
++	results=[];
++	
++	var fid = new fileptr('mode','r','buffer',buffer,'buffersize',buffersize);
++
++	//Read fields until the end of the file.
++	result  = ReadData(fid);
++
++	if (MapIsEmpty(result))throw Error('no results found in binary memory buffer');
++	
++	var counter = 0;
++	var check_nomoresteps=0;
++	var step    = result['step'];
++
++	while (!MapIsEmpty(result)){
++
++		if (check_nomoresteps){
++			//check that the new result does not add a step, which would be an error: 
++			if (result['step']>=1)throw Error('parsing results for a steady-state core, which incorporates transient results!');
++		}
++
++		//Check step, increase counter if this is a new step
++		if(step!=result['step'] & result['step']>1){
++			counter = counter + 1;
++			step    = result['step'];
++		}
++
++		//Add result
++		if(result['step']==0){
++			//if we have a step = 0, this is a steady state solutoin, don't expect more steps. 
++			index = 0;
++			check_nomoresteps=1;
++		}
++		else if(result['step']==1){
++			index = 0;
++		}
++		else index = counter;
++
++		if(index>results.length-1)results.push({});
++		for(var i=results.length-1;i<index-1;i++)results[i]={};
++		results[index][result['fieldname']]=result['field'];
++		
++		//Get time and step
++		if(result['time']!=-9999){
++			results[index]['step']=result['step'];
++		}
++		if(result['time']!=-9999){
++			results[index]['time']=result['time'];
++		}
++
++		//read next result
++		result  = ReadData(fid);
++	}
++	return results;
++} // }}}
++function ReadData(fid){ //{{{
++//READDATA - ...
++//
++//   Usage:
++//      field=ReadData(fid)
++
++	//read field
++	var length=fid.fread(1,'int');
++	
++	var result={};
++
++	if (length!==-1){
++		fieldname=fid.fread(length,'char');
++		time=fid.fread(1,'double');
++		step=fid.fread(1,'int');
++		type=fid.fread(1,'int');
++		M=fid.fread(1,'int');
++
++		if (type==1) field=fid.fread(M,'double');
++		else if (type==2) field=fid.fread(M,'char');
++		else if (type==3) {
++			N=fid.fread(1,'int');
++			field=fid.fread(N*M,'double');
++		}
++		else throw Error(sprintf("%s%i",'ReadData error message: cannot read data of type ',type));
++
++		//Process units here FIXME: this should not be done here!
++		var yts=365.0*24.0*3600.0;
++		if (fieldname == 'BalancethicknessThickeningRate') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'HydrologyWaterVx') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'HydrologyWaterVy') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'Vx') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'Vy') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'Vz') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'Vel') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'BasalforcingsGroundediceMeltingRate') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'BasalforcingsFloatingiceMeltingRate') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'TotalSmb') for (var i=0;i<field.length;i++)field[i]= field[i]/Math.pow(10,12)*yts; //(GigaTon/year)
++		else if (fieldname == 'SmbMassBalance') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'SmbPrecipitation') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'SmbRunoff') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'SmbCondensation') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'SmbAccumulation') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'SmbMelt') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++		else if (fieldname == 'CalvingCalvingrate') for (var i=0;i<field.length;i++)field[i]= field[i]*yts;
++
++		result['fieldname']=fieldname;
++		result['time']=time;
++		if (result['time']!=-9999) result['time']=time/yts;
++		result['step']=step;
++		result['field']=field;
++	}
++	return result;
++
++} // }}}
+Index: ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 0)
++++ ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 19816)
+@@ -0,0 +1,26 @@
++function loadresultsfrombuffer(md,buffer,buffersize){
++//LOADRESULTSFROMBUFFER - load results of solution sequence from memory buffer 
++//
++//   Usage:
++//      loadresultsfrombuffer(md,buffer,buffersize);
++
++	//check number of inputs/outputs
++	if (arguments.length!=3) throw Error('loadresultsfrombuffer error message: wrong usage!');
++
++	if (!md.qmu.isdakota){
++
++		//initialize md.results if not a structure yet
++		if (MapIsEmpty(md.results)) md.results={};
++
++		//load results onto model
++		var array=parseresultsfrombuffer(buffer,buffersize);
++		if (array.length==0) throw Error('No result found in binary buffer. Check for solution crash.');
++
++
++		md.results[array[0]['SolutionType']] = array;
++		
++		//recover solution_type from results
++		md.private.solution=array['SolutionType'];
++	}
++	else throw Error('loadresultsfrombuffer error message: qmu results not supported yet!');
++}
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 19815)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 19816)
+@@ -182,6 +182,13 @@
+ 		console.log('running issm locally');
+ 		
+ 		//Call issm:
+-		issm(fid, toolkitsstring, solutionstring, md.miscellaneous.name);
++		var outputs = issm(fid, toolkitsstring, solutionstring, md.miscellaneous.name); 
++		
++		//Recover output arguments: 
++		var outputbuffer = outputs[0]; var outputbuffersize = outputs[1];
++			
++		//Load results: 
++		loadresultsfrombuffer(md,outputbuffer,outputbuffersize);
++
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19816-19817.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19816-19817.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19816-19817.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19816)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19817)
+@@ -69,7 +69,7 @@
+ 	if(arguments.length>3){
+ 		md.mask.ice_levelset = NewArrayFill(md.mesh.numberofvertices,1.0);
+ 		//use contourtomesh to set ice values inside ice domain
+-		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomain,'node',1);
++		//[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomain,'node',1);
+ 		pos=ArrayFind(vertexinsideicedomain,1.0);for(var i=0;i<pos.length;i++) md.mask.ice_levelset[pos]=-1;
+ 	}
+ 	else{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19817-19818.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19817-19818.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19817-19818.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19817)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19818)
+@@ -5,7 +5,7 @@
+ 
+ function mesh2d () {
+ 	//methods 
+-		this.setdefaultparameters = function () //{{{
++		this.setdefaultparameters = function (){ //{{{
+ 
+ 			//the connectivity is the averaged number of nodes linked to a
+ 			//given node through an edge. This connectivity is used to initially
+@@ -119,5 +119,4 @@
+ 
+ 		this.setdefaultparameters();
+ 		//}}}
+-
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19818-19819.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19818-19819.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19818-19819.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19818)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19819)
+@@ -13,6 +13,7 @@
+ 			//give a good memory/time ration. This value can be checked in
+ 			//trunk/test/Miscellaneous/runme.m
+ 			this.average_vertex_connectivity=25;
++		}
+ 		// }}}
+ 		this.disp = function () { //{{{
+ 			console.log(sprintf("   2D tria Mesh (horizontal):")); 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19819-19820.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19819-19820.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19819-19820.diff	(revision 20498)
@@ -0,0 +1,56 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19819)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19820)
+@@ -138,30 +138,28 @@
+ 	shaderName = "colored";
+ 	shaders = {};
+ 	shaders[shaderName] = {loaded:false, vsh:{}, fsh:{}};
+-	shaders["colored"]["vsh"]["string"] = `
+-		attribute vec3 aVertexPosition;
+-		attribute vec4 aVertexColor;
++	shaders["colored"]["vsh"]["string"] = 
++		['attribute vec3 aVertexPosition;',
++		'attribute vec4 aVertexColor;',
++		'',
++		'uniform mat4 uMVPMatrix;',
++		'uniform float uAlpha;',
++		'',
++		'varying vec4 vColor;',
++		'',
++		'void main(void) {',
++		'	gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);',
++		'	vColor = vec4(aVertexColor.xyz, uAlpha);',
++		'}'].join('\n');
++	shaders["colored"]["fsh"]["string"] =
++		['precision mediump float;',
++		'',
++		'varying vec4 vColor;',
++		'',
++		'void main(void) {',
++		'	gl_FragColor = vColor;',
++		'}'].join('\n');
+ 
+-		uniform mat4 uMVPMatrix;
+-		uniform float uAlpha;
+-
+-		varying vec4 vColor;
+-
+-		void main(void) {
+-			gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);
+-			vColor = vec4(aVertexColor.xyz, uAlpha);
+-		}
+-	`;
+-	shaders["colored"]["fsh"]["string"] = `
+-		precision mediump float;
+-
+-		varying vec4 vColor;
+-
+-		void main(void) {
+-			gl_FragColor = vColor;
+-		}
+-	`;
+-
+ 	shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
+ 	shaders[shaderName]["fsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["fsh"]["string"], "fsh");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19820-19821.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19820-19821.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19820-19821.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19820)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19821)
+@@ -141,41 +141,57 @@
+ 			var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
+ 			var cdivisions = cheight/4;
+ 			var color;
+-			var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+cwidth+'" height="'+cheight+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-			ccanvas.css({'position':'relative','top':((canvassize-cheight)/-2).toFixed(2)+'px'});
++			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
++			var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++			ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 			var ccontext = ccanvas[0].getContext('2d');
+-			for (var i = 0; i < cdivisions; i++) {
+-				var cindex= Math.floor(i / cdivisions * (colorbar.length - 1));
+-				color = colorbar[(colorbar.length - 1) - cindex];
+-				color = [Math.round(color[0] * 255), Math.round(color[1] * 255), Math.round(color[2] * 255)];	
+-				ccontext.fillStyle = 'rgba(' + color.toString() + ',1.0)';
+-				ccontext.fillRect(0, Math.floor(i * cheight / cdivisions), cwidth, Math.ceil(cheight / cdivisions));
++			var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
++			for (var i = 0; i < colorbar.length; i++) {
++				color = colorbar[colorbar.length-i-1];
++				color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
++				cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 			}
++			ccontext.fillStyle=cgradient;
++			ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
++			//Draw colorbar border
++			ccontext.beginPath();
++			ccontext.lineWidth='1';
++			ccontext.strokeStyle='black';
++			ccontext.rect(0,cheightoffset/2,cwidth,cheight);
++			ccontext.stroke();
+ 			//Set colorbar lables
+-			var clabels = $('<ul id="'+options.getfieldvalue('canvasid')+'_colorbar_labels"></ul>');
+-			clabels.css({'position':'relative','width':'auto','vertical-align':'top','height':String(cheight)+'px','list-style-type':'none','display':'inline-table','top':((canvassize-cheight)/2).toFixed(2)+'px','padding':'0px','margin':'0px '+String(cwidth/4)+'px 0px '+String(cwidth/4)+'px','font-size':String(options.getfieldvalue('colorbarfontsize',16))+'px','color':String(options.getfieldvalue('FontColor','black'))});
+-			clabels.insertAfter('#'+options.getfieldvalue('canvasid')+'_colorbar');
+ 			var labels = [];
+ 			var cdivisions = 8;
+ 			var caxisdelta = caxis[1] - caxis[0];
+ 			var clabelitem;
+-
+ 			if (options.exist('log')) {
+-				//logvalue=options.getfieldvalue('log');
+-				//set(c,'YTick',log(tick_vals)./log(logvalue));
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions+caxis[0]).toPrecision(3);
++					if (caxisdelta*i/cdivisions==min) {
++						labels[i] = (caxis[0]).toPrecision(3);
++					}
++					else {
++						labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(3);
++					}	
+ 				}
+ 			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*i/cdivisions+caxis[0]).toPrecision(3);
++					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(3);
+ 				}
+ 			}
+ 			for (var i = cdivisions; i >= 0; i--) {
+-				var clabelitem = $('<li><div>'+labels[i]+'</div></li>')
+-				clabelitem.css({'display':'table-row'});
+-				clabelitem.find('div').css({'display':'table-cell','vertical-align':'middle'});
+-				clabelitem.appendTo('#'+options.getfieldvalue('canvasid')+'_colorbar_labels');
++				var y = i/cdivisions*cheight+cheightoffset/2;
++				var x = 0.2*cwidth;
++				ccontext.beginPath();
++				ccontext.moveTo(0,y);
++				ccontext.lineTo(x,y);
++				ccontext.moveTo(cwidth-x,y);
++				ccontext.lineTo(cwidth,y);
++				ccontext.stroke();
++				ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++				ccontext.fillStyle='black';
++				ccontext.textAlign='left';
++				ccontext.fillText(labels[i],cwidth+x,y+cheightoffset/2);
++
+ 			}
+ 			/* //{{{
+ 			if exist(options,'wrapping')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19821-19822.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19821-19822.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19821-19822.diff	(revision 20498)
@@ -0,0 +1,86 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19821)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19822)
+@@ -82,4 +82,81 @@
+ 					${ISSM_DIR}/src/m/materials/*.py
+ endif
+ endif
++
++if JAVASCRIPT
++if !DEVELOPMENT
++bin_SCRIPTS +=  ${ISSM_DIR}/src/m/array/arrayoperations.js \
++				${ISSM_DIR}/src/m/boundaryconditions/SetIceShelfBC.js \
++				${ISSM_DIR}/src/m/classes/autodiff.js \
++				${ISSM_DIR}/src/m/classes/balancethickness.js \
++				${ISSM_DIR}/src/m/classes/basalforcings.js \
++				${ISSM_DIR}/src/m/classes/calving.js \
++				${ISSM_DIR}/src/m/classes/clusters/generic.js \
++				${ISSM_DIR}/src/m/classes/clusters/local.js \
++				${ISSM_DIR}/src/m/classes/constants.js \
++				${ISSM_DIR}/src/m/classes/damage.js \
++				${ISSM_DIR}/src/m/classes/debug.js \
++				${ISSM_DIR}/src/m/classes/flaim.js \
++				${ISSM_DIR}/src/m/classes/flowequation.js \
++				${ISSM_DIR}/src/m/classes/friction.js \
++				${ISSM_DIR}/src/m/classes/geometry.js \
++				${ISSM_DIR}/src/m/classes/gia.js \
++				${ISSM_DIR}/src/m/classes/groundingline.js \
++				${ISSM_DIR}/src/m/classes/hydrologyshreve.js \
++				${ISSM_DIR}/src/m/classes/initialization.js \
++				${ISSM_DIR}/src/m/classes/inversion.js \
++				${ISSM_DIR}/src/m/classes/mask.js \
++				${ISSM_DIR}/src/m/classes/masstransport.js \
++				${ISSM_DIR}/src/m/classes/matice.js \
++				${ISSM_DIR}/src/m/classes/mesh2d.js \
++				${ISSM_DIR}/src/m/classes/miscellaneous.js \
++				${ISSM_DIR}/src/m/classes/model.js \
++				${ISSM_DIR}/src/m/classes/outputdefinition.js \
++				${ISSM_DIR}/src/m/classes/pairoptions.js \
++				${ISSM_DIR}/src/m/classes/plotoptions.js \
++				${ISSM_DIR}/src/m/classes/private.js \
++				${ISSM_DIR}/src/m/classes/qmu.js \
++				${ISSM_DIR}/src/m/classes/radaroverlay.js \
++				${ISSM_DIR}/src/m/classes/rifts.js \
++				${ISSM_DIR}/src/m/classes/settings.js \
++				${ISSM_DIR}/src/m/classes/SMBforcing.js \
++				${ISSM_DIR}/src/m/classes/steadystate.js \
++				${ISSM_DIR}/src/m/classes/stressbalance.js \
++				${ISSM_DIR}/src/m/classes/template.js \
++				${ISSM_DIR}/src/m/classes/thermal.js \
++				${ISSM_DIR}/src/m/classes/timestepping.js \
++				${ISSM_DIR}/src/m/classes/toolkits.js \
++				${ISSM_DIR}/src/m/classes/transient.js \
++				${ISSM_DIR}/src/m/classes/verbose.js \
++				${ISSM_DIR}/src/m/consistency/checkfield.js \
++				${ISSM_DIR}/src/m/consistency/ismodelselfconsistent.js \
++				${ISSM_DIR}/src/m/enum/EnumDefinitions.js \
++				${ISSM_DIR}/src/m/geometry/FlagElements.js \
++				${ISSM_DIR}/src/m/inversions/marshallcostfunctions.js \
++				${ISSM_DIR}/src/m/io/fileptr.js \
++				${ISSM_DIR}/src/m/materials/paterson.js \
++				${ISSM_DIR}/src/m/mesh/triangle.js \
++				${ISSM_DIR}/src/m/miscellaneous/colorbars.js \
++				${ISSM_DIR}/src/m/miscellaneous/fielddisplay.js \
++				${ISSM_DIR}/src/m/miscellaneous/rgbcolor.js \
++				${ISSM_DIR}/src/m/parameterization/setflowequation.js \
++				${ISSM_DIR}/src/m/parameterization/setmask.js \
++				${ISSM_DIR}/src/m/plot/applyoptions.js \
++				${ISSM_DIR}/src/m/plot/checkplotoptions.js \
++				${ISSM_DIR}/src/m/plot/plot_manager.js \
++				${ISSM_DIR}/src/m/plot/plot_mesh.js \
++				${ISSM_DIR}/src/m/plot/plot_unit.js \
++				${ISSM_DIR}/src/m/plot/plotmodel.js \
++				${ISSM_DIR}/src/m/plot/processdata.js \
++				${ISSM_DIR}/src/m/plot/processmesh.js \
++				${ISSM_DIR}/src/m/plot/webgl.js \
++				${ISSM_DIR}/src/m/solve/loadresultsfrombuffer.js \
++				${ISSM_DIR}/src/m/solve/marshall.js \
++				${ISSM_DIR}/src/m/solve/parseresultsfrombuffer.js \
++				${ISSM_DIR}/src/m/solve/solve.js \
++				${ISSM_DIR}/src/m/solve/WriteData.js \
++				${ISSM_DIR}/src/m/solvers/issmgslsolver.js 
+ endif
++endif
++
++endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-19822-19823.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19822-19823.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19822-19823.diff	(revision 20498)
@@ -0,0 +1,246 @@
+Index: ../trunk-jpl/src/m/geometry/FlagElements.js
+===================================================================
+--- ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 19822)
++++ ../trunk-jpl/src/m/geometry/FlagElements.js	(revision 19823)
+@@ -31,7 +31,7 @@
+ 		}
+ 		else if (region.length==md.mesh.numberofvertices){
+ 			var flag=NewArrayFill(md.mesh.numberofelements,0);
+-			for (i=0;i<md.mesh.numberofelements;i++)
++			for (var i=0;i<md.mesh.numberofelements;i++)
+ 				var sum=0;
+ 				for(var j=0;j<md.mesh.elements[0].length;j++){
+ 					sum += region[md.mesh.element[i][j]-1];
+Index: ../trunk-jpl/src/m/inversions/marshallcostfunctions.js
+===================================================================
+--- ../trunk-jpl/src/m/inversions/marshallcostfunctions.js	(revision 19822)
++++ ../trunk-jpl/src/m/inversions/marshallcostfunctions.js	(revision 19823)
+@@ -1,5 +1,5 @@
+ function  marshallcostfunctions(cost_functions){
+-	for(i=0;i<cost_functions.length;i++){
++	for(var i=0;i<cost_functions.length;i++){
+ 		if(cost_functions[i]==101) data[i]=SurfaceAbsVelMisfitEnum();
+ 		if(cost_functions[i]==102) data[i]=SurfaceRelVelMisfitEnum();
+ 		if(cost_functions[i]==103) data[i]=SurfaceLogVelMisfitEnum();
+Index: ../trunk-jpl/src/m/classes/pairoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/pairoptions.js	(revision 19822)
++++ ../trunk-jpl/src/m/classes/pairoptions.js	(revision 19823)
+@@ -26,7 +26,7 @@
+ 			this.list= Create2DArray(numoptions,3);
+ 
+ 			//go through args and build list of obj
+-			for (i=0;i<numoptions;i++){
++			for (var i=0;i<numoptions;i++){
+ 				if (typeof args[2*i] === 'string'){
+ 					this.list[i][0]=args[2*i];
+ 					this.list[i][1]=args[2*i+1];
+@@ -61,7 +61,7 @@
+ 	} // }}}
+ 	this.AssignObjectFields = function(object){ // {{{
+ 		//ASSIGNOBJECTFIELDS - assign object fields from options
+-		for (i=0;i<list.length;i++){
++		for (var i=0;i<list.length;i++){
+ 			fieldname=list[i][0];
+ 			fieldvalue=list[i][1];
+ 			if (fieldname in object){
+@@ -76,7 +76,7 @@
+ 		//CHANGEOPTIONVALUE - change the value of an option in an option list
+ 
+ 		var found=0;
+-		for (i=0;i<this.list.length;i++){
++		for (var i=0;i<this.list.length;i++){
+ 			if (this.list[i][0] === field){
+ 				found=1;
+ 			}
+@@ -86,7 +86,7 @@
+ 			this.list.push([field,newvalue,true]); // do not notify user if unused
+ 		}
+ 		else{
+-			for (i=0;i<this.list.length;i++){
++			for (var i=0;i<this.list.length;i++){
+ 				if (this.list[i][0] === field){
+ 					this.list[i][1] = newvalue;
+ 				}
+@@ -98,7 +98,7 @@
+ 
+ 		//track the first occurrence of each option
+ 		var indices=NewArrayFill(this.list.length,0);
+-		for (i=0;i<this.list.length;i++){
++		for (var i=0;i<this.list.length;i++){
+ 			if(indices[i]==0){
+ 				for(var j=i+1;j<this.list.length;j++){
+ 					if (this.list[i][0] === this.list[j][0])indices[j]=1;
+@@ -110,7 +110,7 @@
+ 		//remove duplicates from the options list
+ 		newlist=Create2DArray(sumindices,3);
+ 		var count=0;
+-		for (i=0;i<this.list.length;i++){
++		for (var i=0;i<this.list.length;i++){
+ 			if (indices[i]==1) if (warn) console.log(sprintf("%s%s%s\n",'WARNING: option ', this.list[i,0],' appeared more than once. Only its first occurrence will be kept'));
+ 			else{
+ 				newlist[count]=this.list[i];
+@@ -121,7 +121,7 @@
+ 	this.displayunused = function (){ // {{{
+ 		//DISPLAYUNUSED - display unused options
+ 
+-		for (i=0;i<this.list.length;i++){
++		for (var i=0;i<this.list.length;i++){
+ 			if (!(this.list[i][2])){
+ 				console.log(sprintf("%s%s%s\n",'WARNING: option ',this.list[i][0],' was not used'));
+ 			}
+@@ -130,7 +130,7 @@
+ 	this.disp = function (){ //{{{
+ 		if (this.list.length){
+ 			console.log(sprintf('   pairoptions: (%i)\n',this.list.length));
+-			for (i=0;i<this.list.length;i++){
++			for (var i=0;i<this.list.length;i++){
+ 				if (typeof this.list[i][1] === 'string'){
+ 					console.log(sprintf("     field: '%s' value(string): ''%s''",this.list[i][0],this.list[i][1]));
+ 				}
+@@ -176,7 +176,7 @@
+ 		}
+ 
+ 		//count number of occurrences:
+-		for (i=0;i<this.list.length;i++) if (this.list[i][0] === field)num++;
++		for (var i=0;i<this.list.length;i++) if (this.list[i][0] === field)num++;
+ 
+ 		return num;
+ 
+@@ -237,14 +237,14 @@
+ 
+ 			//find where the field is located
+ 			indices=NewArrayFill(this.list.length,1);
+-			for (i=0;i<this.list.length;i++)if(this.list[i][1] === field)indices[i]=0;
++			for (var i=0;i<this.list.length;i++)if(this.list[i][1] === field)indices[i]=0;
+ 			sumindices=ArraySum(indices);
+ 
+ 			//remove duplicates from the options list
+ 			newlist=Create2DArray(sumindices,3);
+ 
+ 			count=0;
+-			for (i=0;i<this.list.length;i++){
++			for (var i=0;i<this.list.length;i++){
+ 				if(!(this.list[i][1] === field)){
+ 					newlist[count]=this.list[i];
+ 					count++;
+Index: ../trunk-jpl/src/m/parameterization/setmask.js
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19822)
++++ ../trunk-jpl/src/m/parameterization/setmask.js	(revision 19823)
+@@ -58,8 +58,8 @@
+ 	//the order here is important. we choose vertexongroundedice as default on the grounding line.
+ 	vertexonfloatingice=NewArrayFill(md.mesh.numberofvertices,0);
+ 	vertexongroundedice=NewArrayFill(md.mesh.numberofvertices,0);
+-	pos=ArrayFind(elementongroundedice,1); for (i=0;i<pos.length;i++)for(var j=0;j<3;j++) vertexongroundedice[md.mesh.elements[i,j]-1]=1;
+-	pos=ArrayFind(vertexongroundedice,0); for (i=0;i<pos.length;i++)vertexonfloatingice[i]=1;
++	pos=ArrayFind(elementongroundedice,1); for (var i=0;i<pos.length;i++)for(var j=0;j<3;j++) vertexongroundedice[md.mesh.elements[i,j]-1]=1;
++	pos=ArrayFind(vertexongroundedice,0); for (var i=0;i<pos.length;i++)vertexonfloatingice[i]=1;
+ 
+ 	//level sets
+ 	groundedice_levelset=vertexongroundedice;
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19822)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19823)
+@@ -5,7 +5,7 @@
+ 	
+ 	var max=0;
+ 
+-	for (i=0;i<array.length;i++){
++	for (var i=0;i<array.length;i++){
+ 		var subarray=array[i];
+ 		max=Math.max(max,ArrayMax(subarray));
+ 	}
+@@ -70,7 +70,7 @@
+ 	
+ 	var min=ArrayMax2D(array);
+ 
+-	for (i=0;i<array.length;i++){
++	for (var i=0;i<array.length;i++){
+ 		var subarray=array[i];
+ 		min=Math.min(min,ArrayMin(subarray));
+ 	}
+@@ -126,7 +126,7 @@
+ function ArrayNot(array) { //{{{
+ 
+ 	var notarray=array;
+-	for (i=0;i<array.length;i++)notarray[i]=-array[i];
++	for (var i=0;i<array.length;i++)notarray[i]=-array[i];
+ 	return notarray;
+ } //}}}
+ function ArrayCopy(array) { //{{{
+@@ -138,18 +138,18 @@
+ function ArrayPow(array,coefficient) { //{{{
+ 
+ 	var powarray=array;
+-	for (i=0;i<array.length;i++)powarray[i]=Math.pow(array[i],coefficient);
++	for (var i=0;i<array.length;i++)powarray[i]=Math.pow(array[i],coefficient);
+ 	return powarray;
+ } //}}}
+ function ArraySqrt(array) { //{{{
+ 
+ 	var sqrtarray=array;
+-	for (i=0;i<array.length;i++)sqrtarray[i]=Math.sqrt(array[i]);
++	for (var i=0;i<array.length;i++)sqrtarray[i]=Math.sqrt(array[i]);
+ 	return sqrtarray;
+ } //}}}
+ function ArrayScale(array,alpha) { //{{{
+ 
+-	for (i=0;i<array.length;i++)array[i]=array[i]*alpha;
++	for (var i=0;i<array.length;i++)array[i]=array[i]*alpha;
+ 
+ } //}}}
+ function ArrayMag(array1,array2) { //{{{
+@@ -223,14 +223,14 @@
+ function ArrayAnd(array1,array2) { //{{{
+ 
+ 	var array=array1;
+-	for (i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
++	for (var i=0;i<array1.length;i++)array[i]=array1[i] & array2[i];
+ 	return array;
+ } //}}}
+ function ArrayIsMember(array1,array2) { //{{{
+ 
+ 	var array=NewArrayFill(array1.length,0);
+-	for (i=0;i<array1.length;i++){
+-		for(j=0;j<array2.length;j++){
++	for (var i=0;i<array1.length;i++){
++		for(var j=0;j<array2.length;j++){
+ 			if (array1[i] == array2[j]){
+ 				array[i]=1;
+ 				break;
+@@ -257,14 +257,14 @@
+ 	
+ 	//find number of indices
+ 	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]==value)count++;
++	for (var i=0;i<array.length;i++)if(array[i]==value)count++;
+ 
+ 	//allocate:
+ 	var indices= NewArrayFill(count,0);
+ 
+ 	//fill in:
+ 	count=0;
+-	for (i=0;i<array.length;i++){
++	for (var i=0;i<array.length;i++){
+ 		if(array[i]==value){
+ 			indices[count]=i;
+ 			count++;
+@@ -276,14 +276,14 @@
+ 	
+ 	//find number of indices
+ 	var count=0;
+-	for (i=0;i<array.length;i++)if(array[i]!=value)count++;
++	for (var i=0;i<array.length;i++)if(array[i]!=value)count++;
+ 
+ 	//allocate:
+ 	var indices= NewArrayFill(count,0);
+ 
+ 	//fill in:
+ 	count=0;
+-	for (i=0;i<array.length;i++){
++	for (var i=0;i<array.length;i++){
+ 		if(array[i]!=value){
+ 			indices[count]=i;
+ 			count++;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19823-19824.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19823-19824.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19823-19824.diff	(revision 20498)
@@ -0,0 +1,476 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19823)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19824)
+@@ -40,13 +40,13 @@
+ <script type="text/javascript" src="../../src/m/classes/radaroverlay.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/outputdefinition.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/miscellaneous.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/private.js"></script>
++<script type="text/javascript" src="../../src/m/classes/priv.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/steadystate.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/rifts.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/friction.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/transient.js"></script>
++<script type="text/javascript" src="../../src/m/classes/trans.js"></script>
+ <script type="text/javascript" src="../../src/m/boundaryconditions/SetIceShelfBC.js"></script>
+ <script type="text/javascript" src="../../src/m/parameterization/setflowequation.js"></script>
+ <script type="text/javascript" src="../../src/m/classes/clusters/local.js"></script>
+Index: ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 19823)
++++ ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 19824)
+@@ -20,7 +20,7 @@
+ 		md.results[array[0]['SolutionType']] = array;
+ 		
+ 		//recover solution_type from results
+-		md.private.solution=array['SolutionType'];
++		md.priv.solution=array['SolutionType'];
+ 	}
+ 	else throw Error('loadresultsfrombuffer error message: qmu results not supported yet!');
+ }
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 19823)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 19824)
+@@ -39,7 +39,7 @@
+ 	options.addfield('solutionenum',solutionenum);
+ 
+ 	//recover some fields
+-	md.private.solution=solutionenum;
++	md.priv.solution=solutionenum;
+ 	cluster=md.cluster;
+ 
+ 	//check model consistency
+@@ -48,10 +48,10 @@
+ 			console.log('checking model consistency');
+ 		}
+ 		if (solutionenum == FlaimSolutionEnum()){
+-			md.private.isconsistent=true;
++			md.priv.isconsistent=true;
+ 			md.mesh.checkconsistency(md,solutionenum);
+ 			md.flaim.checkconsistency(md,solutionenum);
+-			if (md.private.isconsistent==false){
++			if (md.priv.isconsistent==false){
+ 				throw error('solve error message: model not consistent, see messages above');
+ 			}
+ 		}
+@@ -68,14 +68,14 @@
+ 		}
+ 	else{
+ 		if (!(restart == '')){
+-			md.private.runtimename=restart;
++			md.priv.runtimename=restart;
+ 		}
+ 		else if (options.getfieldvalue('runtimename',true)){
+ 			c=new Date().getTime();
+-			md.private.runtimename=sprintf('%s-%g',md.miscellaneous.name,c);
++			md.priv.runtimename=sprintf('%s-%g',md.miscellaneous.name,c);
+ 		}
+ 		else{
+-			md.private.runtimename=md.miscellaneous.name;
++			md.priv.runtimename=md.miscellaneous.name;
+ 		}
+ 	}
+ 
+@@ -95,7 +95,7 @@
+ 		//cmap      = options.getfieldvalue('cmap',[]);
+ 		throw  Error("solve error message: flaim runs not supported yet!");
+ 		//flaim_sol(md,options);
+-		//md.private.solution=EnumToString(solutionenum);
++		//md.priv.solution=EnumToString(solutionenum);
+ 		//return;
+ 	}
+ 
+@@ -113,7 +113,7 @@
+ 
+ 		throw Error('non local clusters not supported yet!');
+ 
+-		cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
++		cluster.BuildQueueScript(md.priv.runtimename,md.miscellaneous.name,md.priv.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
+ 
+ 		//Stop here if batch mode
+ 		if (options.getfieldvalue('batch','no') === 'yes'){
+@@ -139,11 +139,11 @@
+ 		}
+ 
+ 		if (restart == ''){
+-			cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist);
++			cluster.UploadQueueJob(md.miscellaneous.name,md.priv.runtimename,filelist);
+ 		}
+ 
+ 		//launch queue job: 
+-		cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart);
++		cluster.LaunchQueueJob(md.miscellaneous.name,md.priv.runtimename,filelist,restart);
+ 
+ 		//wait on lock
+ 		if (md.settings.waitonlock == 'NaN'){
+Index: ../trunk-jpl/src/m/solve/marshall.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/marshall.js	(revision 19823)
++++ ../trunk-jpl/src/m/solve/marshall.js	(revision 19824)
+@@ -21,7 +21,7 @@
+ 	for (field in md){
+ 
+ 		//Some properties do not need to be marshalled
+-		if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'flaim' | field == 'private') continue;
++		if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'flaim' | field == 'priv') continue;
+ 		
+ 		//Check that current field is a class
+ 		if(typeof md[field] == 'function'){
+Index: ../trunk-jpl/src/m/classes/private.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/private.js	(revision 19823)
++++ ../trunk-jpl/src/m/classes/private.js	(revision 19824)
+@@ -1,30 +0,0 @@
+-//PRIVATE class definition
+-//
+-//   Usage:
+-//      private=new private();
+-
+-function private (){
+-	//methods
+-	this.setdefaultparameters = function(){// {{{
+-	}// }}}
+-	this.disp= function(){// {{{
+-		console.log(sprintf('   private parameters: do not change'));
+-
+-		fielddisplay(this,'isconsistent','is model this consistent');
+-		fielddisplay(this,'runtimename','name of the run launched');
+-		fielddisplay(this,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain');
+-		fielddisplay(this,'solution','type of solution launched');
+-	}// }}}
+-	this.checkconsistency = function(md,solution,analyses){ // {{{
+-
+-	}// % }}}
+-	//properties 
+-	// {{{
+-	this.isconsistent = true;
+-	this.runtimename  = '';
+-	this.bamg         = {};
+-	this.solution     = '';
+-
+-	this.setdefaultparameters();
+-	//}}}
+-}
+Index: ../trunk-jpl/src/m/classes/transient.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.js	(revision 19823)
++++ ../trunk-jpl/src/m/classes/transient.js	(revision 19824)
+@@ -1,108 +0,0 @@
+-//TRANSIENT class definition
+-//
+-//   Usage:
+-//      transient=new transient();
+-
+-function transient (){
+-	//methods
+-	this.setdefaultparameters = function(){// {{{
+-
+-		//full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
+-		this.issmb           = 1;
+-		this.ismasstransport = 1;
+-		this.isstressbalance = 1;
+-		this.isthermal       = 1;
+-		this.isgroundingline = 0;
+-		this.isgia           = 0;
+-		this.isdamageevolution = 0;
+-		this.islevelset      = 0;
+-		this.iscalving       = 0;
+-		this.ishydrology     = 0;
+-
+-		//default output
+-		this.requested_outputs=['default'];
+-
+-	}// }}}
+-	this.disp= function(){// {{{
+-
+-		console.log(sprintf('   transient solution parameters:'));
+-
+-		fielddisplay(this,'issmb','indicates whether a surface mass balance solution is used in the transient');
+-		fielddisplay(this,'ismasstransport','indicates whether a masstransport solution is used in the transient');
+-		fielddisplay(this,'isstressbalance','indicates whether a stressbalance solution is used in the transient');
+-		fielddisplay(this,'isthermal','indicates whether a thermal solution is used in the transient');
+-		fielddisplay(this,'isgroundingline','indicates whether a groundingline migration is used in the transient');
+-		fielddisplay(this,'isgia','indicates whether a postglacial rebound model is used in the transient');
+-		fielddisplay(this,'isdamageevolution','indicates whether damage evolution is used in the transient');
+-		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
+-		fielddisplay(this,'iscalving','indicates whether calving is used in the transient');
+-		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
+-		fielddisplay(this,'requested_outputs','list of additional outputs requested');
+-
+-
+-	}// }}}
+-	this.classname= function(){// {{{
+-		return "transient";
+-	}// }}}
+-		this.checkconsistency = function(md,solution,analyses) { // {{{
+-
+-			//Early return
+-			if (solution!=TransientSolutionEnum()) return;
+-
+-			checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
+-		} // }}}
+-		this.marshall=function(md,fid) { //{{{
+-			WriteData(fid,'object',this,'fieldname','issmb','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','ismasstransport','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','isstressbalance','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','isthermal','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','isgroundingline','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','isgia','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','isdamageevolution','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
+-
+-			//process requested outputs
+-			outputs = this.requested_outputs;
+-			for (var i=0;i<outputs.length;i++){
+-				if (outputs[i] == 'default') {
+-					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
+-					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+-				}
+-			}			
+-			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum(),'format','StringArray');
+-		}//}}}
+-		this.defaultoutputs = function(md) { //{{{
+-			if(this.issmb)return ['SmbMassBalance'];
+-			else return [];
+-		}//}}}
+-	//properties 
+-	// {{{
+-
+-	this.issmb             = 0;
+-	this.ismasstransport   = 0;
+-	this.isstressbalance   = 0;
+-	this.isthermal         = 0;
+-	this.isgroundingline   = 0;
+-	this.isgia             = 0;
+-	this.isdamageevolution = 0;
+-	this.islevelset        = 0;
+-	this.iscalving         = 0;
+-	this.ishydrology       = 0;
+-	this.requested_outputs = [];
+-
+-	this.setdefaultparameters();
+-	//}}}
+-}
+Index: ../trunk-jpl/src/m/classes/priv.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/priv.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/priv.js	(revision 19824)
+@@ -0,0 +1,30 @@
++//PRIV class definition
++//
++//   Usage:
++//      priv =new priv();
++
++function priv (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++	}// }}}
++	this.disp= function(){// {{{
++		console.log(sprintf('   private parameters: do not change'));
++
++		fielddisplay(this,'isconsistent','is model this consistent');
++		fielddisplay(this,'runtimename','name of the run launched');
++		fielddisplay(this,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain');
++		fielddisplay(this,'solution','type of solution launched');
++	}// }}}
++	this.checkconsistency = function(md,solution,analyses){ // {{{
++
++	}// % }}}
++	//properties 
++	// {{{
++	this.isconsistent = true;
++	this.runtimename  = '';
++	this.bamg         = {};
++	this.solution     = '';
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 19824)
+@@ -0,0 +1,108 @@
++//TRANS class definition
++//
++//   Usage:
++//      trans =new trans();
++
++function trans (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++		this.issmb           = 1;
++		this.ismasstransport = 1;
++		this.isstressbalance = 1;
++		this.isthermal       = 1;
++		this.isgroundingline = 0;
++		this.isgia           = 0;
++		this.isdamageevolution = 0;
++		this.islevelset      = 0;
++		this.iscalving       = 0;
++		this.ishydrology     = 0;
++
++		//default output
++		this.requested_outputs=['default'];
++
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   transient solution parameters:'));
++
++		fielddisplay(this,'issmb','indicates whether a surface mass balance solution is used in the transient');
++		fielddisplay(this,'ismasstransport','indicates whether a masstransport solution is used in the transient');
++		fielddisplay(this,'isstressbalance','indicates whether a stressbalance solution is used in the transient');
++		fielddisplay(this,'isthermal','indicates whether a thermal solution is used in the transient');
++		fielddisplay(this,'isgroundingline','indicates whether a groundingline migration is used in the transient');
++		fielddisplay(this,'isgia','indicates whether a postglacial rebound model is used in the transient');
++		fielddisplay(this,'isdamageevolution','indicates whether damage evolution is used in the transient');
++		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
++		fielddisplay(this,'iscalving','indicates whether calving is used in the transient');
++		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
++		fielddisplay(this,'requested_outputs','list of additional outputs requested');
++
++
++	}// }}}
++	this.classname= function(){// {{{
++		return "transient";
++	}// }}}
++		this.checkconsistency = function(md,solution,analyses) { // {{{
++
++			//Early return
++			if (solution!=TransientSolutionEnum()) return;
++
++			checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
++		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'fieldname','issmb','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','ismasstransport','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isstressbalance','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isthermal','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isgroundingline','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isgia','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isdamageevolution','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
++
++			//process requested outputs
++			outputs = this.requested_outputs;
++			for (var i=0;i<outputs.length;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
++				}
++			}			
++			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum(),'format','StringArray');
++		}//}}}
++		this.defaultoutputs = function(md) { //{{{
++			if(this.issmb)return ['SmbMassBalance'];
++			else return [];
++		}//}}}
++	//properties 
++	// {{{
++
++	this.issmb             = 0;
++	this.ismasstransport   = 0;
++	this.isstressbalance   = 0;
++	this.isthermal         = 0;
++	this.isgroundingline   = 0;
++	this.isgia             = 0;
++	this.isdamageevolution = 0;
++	this.islevelset        = 0;
++	this.iscalving         = 0;
++	this.ishydrology       = 0;
++	this.requested_outputs = [];
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19823)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19824)
+@@ -17,7 +17,7 @@
+ 			console.log(sprintf("%19s: %-22s -- %s","damage"          ,"[1x1 " + typeof(this.damage) + "]","parameters for damage evolution solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","friction"        ,"[1x1 " + typeof(this.friction) + "]","basal friction/drag properties"));
+ 			console.log(sprintf("%19s: %-22s -- %s","flowequation"    ,"[1x1 " + typeof(this.flowequation) + "]","flow equations"));
+-			console.log(sprintf("%19s: %-22s -- %s","timestepping"    ,"[1x1 " + typeof(this.timestepping) + "]","time stepping for transient models"));
++			console.log(sprintf("%19s: %-22s -- %s","timestepping"    ,"[1x1 " + typeof(this.timestepping) + "]","time stepping for trans models"));
+ 			console.log(sprintf("%19s: %-22s -- %s","initialization"  ,"[1x1 " + typeof(this.initialization) + "]","initial guess/state"));
+ 			console.log(sprintf("%19s: %-22s -- %s","rifts"           ,"[1x1 " + typeof(this.rifts) + "]","rifts properties"));
+ 			console.log(sprintf("%19s: %-22s -- %s","debug"           ,"[1x1 " + typeof(this.debug) + "]","debugging tools (valgrind, gprof)"));
+@@ -32,7 +32,7 @@
+ 			console.log(sprintf("%19s: %-22s -- %s","masstransport"   ,"[1x1 " + typeof(this.masstransport) + "]","parameters for masstransport solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","thermal"         ,"[1x1 " + typeof(this.thermal) + "]","parameters for thermal solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","steadystate"     ,"[1x1 " + typeof(this.steadystate) + "]","parameters for steadystate solution"));
+-			console.log(sprintf("%19s: %-22s -- %s","transient"       ,"[1x1 " + typeof(this.transient) + "]","parameters for transient solution"));
++			console.log(sprintf("%19s: %-22s -- %s","trans"       ,"[1x1 " + typeof(this.trans) + "]","parameters for trans solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","calving"         ,"[1x1 " + typeof(this.calving) + "]","parameters for calving"));
+ 			console.log(sprintf("%19s: %-22s -- %s","gia"             ,"[1x1 " + typeof(this.gia) + "]","parameters for gia solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","autodiff"        ,"[1x1 " + typeof(this.autodiff) + "]","automatic differentiation parameters"));
+@@ -72,7 +72,7 @@
+ 			this.masstransport    = new masstransport();
+ 			this.thermal          = new thermal();
+ 			this.steadystate      = new steadystate();
+-			this.transient        = new transient();
++			this.trans            = new trans();
+ 			this.calving          = new calving();
+ 			this.gia              = new gia();
+ 			this.autodiff         = new autodiff();
+@@ -83,7 +83,7 @@
+ 			this.results          = {};
+ 			this.outputdefinition = new outputdefinition();
+ 			this.miscellaneous    = new miscellaneous();
+-			this.private          = new private();
++			this.priv             = new priv();
+ 		} //}}}
+ 		this.checkmessage = function(string){ //{{{
+ 			console.log('model not consistent: ' + string);
+@@ -120,7 +120,7 @@
+ 		this.masstransport    = 0;
+ 		this.thermal          = 0;
+ 		this.steadystate      = 0;
+-		this.transient        = 0;
++		this.trans            = 0;
+ 		this.calving          = 0;
+ 		this.gia              = 0;
+ 
+@@ -133,7 +133,7 @@
+ 		this.outputdefinition = 0;
+ 		this.radaroverlay     = 0;
+ 		this.miscellaneous    = 0;
+-		this.private          = 0;
++		this.priv             = 0;
+ 
+ 		//set default values for fields
+ 		this.setdefaultparameters();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19824-19825.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19824-19825.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19824-19825.diff	(revision 20498)
@@ -0,0 +1,669 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19824)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19825)
+@@ -716,6 +716,7 @@
+ 	DeviatoricStressyyEnum,
+ 	DeviatoricStressyzEnum,
+ 	DeviatoricStresszzEnum,
++	DeviatoricStresseffectiveEnum,
+ 	StrainRateEnum,
+ 	StrainRatexxEnum,
+ 	StrainRatexyEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19824)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19825)
+@@ -702,6 +702,7 @@
+ 		case DeviatoricStressyyEnum : return "DeviatoricStressyy";
+ 		case DeviatoricStressyzEnum : return "DeviatoricStressyz";
+ 		case DeviatoricStresszzEnum : return "DeviatoricStresszz";
++		case DeviatoricStresseffectiveEnum : return "DeviatoricStresseffective";
+ 		case StrainRateEnum : return "StrainRate";
+ 		case StrainRatexxEnum : return "StrainRatexx";
+ 		case StrainRatexyEnum : return "StrainRatexy";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19824)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19825)
+@@ -717,6 +717,7 @@
+ 	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
+ 	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
+ 	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
++	      else if (strcmp(name,"DeviatoricStresseffective")==0) return DeviatoricStresseffectiveEnum;
+ 	      else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
+ 	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
+ 	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
+ 	      else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
+ 	      else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
+-	      else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
++	      if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
++	      else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
+ 	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+ 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+ 	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
+ 	      else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;
+ 	      else if (strcmp(name,"MisfitDefinitionenum")==0) return MisfitDefinitionenumEnum;
+-	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
++	      if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
++	      else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
+ 	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
+ 	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+ 	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19824)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19825)
+@@ -548,6 +548,7 @@
+ 	IssmDouble  tau_xy[NUMVERTICES];
+ 	IssmDouble	tau_xz[NUMVERTICES]={0,0,0};
+ 	IssmDouble	tau_yz[NUMVERTICES]={0,0,0};
++	IssmDouble  tau_e[NUMVERTICES];
+ 	GaussTria*  gauss=NULL;
+ 	int domaintype,dim=2;
+ 
+@@ -573,6 +574,7 @@
+ 		tau_xx[iv]=2*viscosity*epsilon[0]; // tau = nu eps
+ 		tau_yy[iv]=2*viscosity*epsilon[1];
+ 		tau_xy[iv]=2*viscosity*epsilon[2];
++		tau_e[iv]=1/sqrt(2)*sqrt(pow(tau_xx[iv],2)+pow(tau_yy[iv],2)+2*pow(tau_xy[iv],2));
+ 	}
+ 
+ 	/*Add Stress tensor components into inputs*/
+@@ -582,6 +584,7 @@
+ 	this->inputs->AddInput(new TriaInput(DeviatoricStressyyEnum,&tau_yy[0],P1Enum));
+ 	this->inputs->AddInput(new TriaInput(DeviatoricStressyzEnum,&tau_yz[0],P1Enum));
+ 	this->inputs->AddInput(new TriaInput(DeviatoricStresszzEnum,&tau_zz[0],P1Enum));
++	this->inputs->AddInput(new TriaInput(DeviatoricStresseffectiveEnum,&tau_e[0],P1Enum));
+ 
+ 	/*Clean up and return*/
+ 	delete gauss;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19824)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19825)
+@@ -1924,6 +1924,7 @@
+ 			case DeviatoricStressyyEnum: 
+ 			case DeviatoricStressyzEnum: 
+ 			case DeviatoricStresszzEnum: 
++			case DeviatoricStresseffectiveEnum: 
+ 				this->ComputeDeviatoricStressTensor();
+ 				input=this->inputs->GetInput(output_enum);
+ 				break;
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19824)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19825)
+@@ -687,268 +687,269 @@
+ function DeviatoricStressyyEnum(){ return 683;}
+ function DeviatoricStressyzEnum(){ return 684;}
+ function DeviatoricStresszzEnum(){ return 685;}
+-function StrainRateEnum(){ return 686;}
+-function StrainRatexxEnum(){ return 687;}
+-function StrainRatexyEnum(){ return 688;}
+-function StrainRatexzEnum(){ return 689;}
+-function StrainRateyyEnum(){ return 690;}
+-function StrainRateyzEnum(){ return 691;}
+-function StrainRatezzEnum(){ return 692;}
+-function DivergenceEnum(){ return 693;}
+-function MaxDivergenceEnum(){ return 694;}
+-function GiaCrossSectionShapeEnum(){ return 695;}
+-function GiadWdtEnum(){ return 696;}
+-function GiaWEnum(){ return 697;}
+-function P0Enum(){ return 698;}
+-function P0ArrayEnum(){ return 699;}
+-function P1Enum(){ return 700;}
+-function P1DGEnum(){ return 701;}
+-function P1bubbleEnum(){ return 702;}
+-function P1bubblecondensedEnum(){ return 703;}
+-function P2Enum(){ return 704;}
+-function P2bubbleEnum(){ return 705;}
+-function P2bubblecondensedEnum(){ return 706;}
+-function P2xP1Enum(){ return 707;}
+-function P1xP2Enum(){ return 708;}
+-function P1xP3Enum(){ return 709;}
+-function P2xP4Enum(){ return 710;}
+-function P1P1Enum(){ return 711;}
+-function P1P1GLSEnum(){ return 712;}
+-function MINIEnum(){ return 713;}
+-function MINIcondensedEnum(){ return 714;}
+-function TaylorHoodEnum(){ return 715;}
+-function LATaylorHoodEnum(){ return 716;}
+-function XTaylorHoodEnum(){ return 717;}
+-function OneLayerP4zEnum(){ return 718;}
+-function CrouzeixRaviartEnum(){ return 719;}
+-function LACrouzeixRaviartEnum(){ return 720;}
+-function SaveResultsEnum(){ return 721;}
+-function BoolExternalResultEnum(){ return 722;}
+-function DoubleExternalResultEnum(){ return 723;}
+-function DoubleMatExternalResultEnum(){ return 724;}
+-function IntExternalResultEnum(){ return 725;}
+-function JEnum(){ return 726;}
+-function StringExternalResultEnum(){ return 727;}
+-function StepEnum(){ return 728;}
+-function TimeEnum(){ return 729;}
+-function WaterColumnOldEnum(){ return 730;}
+-function OutputdefinitionEnum(){ return 731;}
+-function Outputdefinition1Enum(){ return 732;}
+-function Outputdefinition2Enum(){ return 733;}
+-function Outputdefinition3Enum(){ return 734;}
+-function Outputdefinition4Enum(){ return 735;}
+-function Outputdefinition5Enum(){ return 736;}
+-function Outputdefinition6Enum(){ return 737;}
+-function Outputdefinition7Enum(){ return 738;}
+-function Outputdefinition8Enum(){ return 739;}
+-function Outputdefinition9Enum(){ return 740;}
+-function Outputdefinition10Enum(){ return 741;}
+-function Outputdefinition11Enum(){ return 742;}
+-function Outputdefinition12Enum(){ return 743;}
+-function Outputdefinition13Enum(){ return 744;}
+-function Outputdefinition14Enum(){ return 745;}
+-function Outputdefinition15Enum(){ return 746;}
+-function Outputdefinition16Enum(){ return 747;}
+-function Outputdefinition17Enum(){ return 748;}
+-function Outputdefinition18Enum(){ return 749;}
+-function Outputdefinition19Enum(){ return 750;}
+-function Outputdefinition20Enum(){ return 751;}
+-function Outputdefinition21Enum(){ return 752;}
+-function Outputdefinition22Enum(){ return 753;}
+-function Outputdefinition23Enum(){ return 754;}
+-function Outputdefinition24Enum(){ return 755;}
+-function Outputdefinition25Enum(){ return 756;}
+-function Outputdefinition26Enum(){ return 757;}
+-function Outputdefinition27Enum(){ return 758;}
+-function Outputdefinition28Enum(){ return 759;}
+-function Outputdefinition29Enum(){ return 760;}
+-function Outputdefinition30Enum(){ return 761;}
+-function Outputdefinition31Enum(){ return 762;}
+-function Outputdefinition32Enum(){ return 763;}
+-function Outputdefinition33Enum(){ return 764;}
+-function Outputdefinition34Enum(){ return 765;}
+-function Outputdefinition35Enum(){ return 766;}
+-function Outputdefinition36Enum(){ return 767;}
+-function Outputdefinition37Enum(){ return 768;}
+-function Outputdefinition38Enum(){ return 769;}
+-function Outputdefinition39Enum(){ return 770;}
+-function Outputdefinition40Enum(){ return 771;}
+-function Outputdefinition41Enum(){ return 772;}
+-function Outputdefinition42Enum(){ return 773;}
+-function Outputdefinition43Enum(){ return 774;}
+-function Outputdefinition44Enum(){ return 775;}
+-function Outputdefinition45Enum(){ return 776;}
+-function Outputdefinition46Enum(){ return 777;}
+-function Outputdefinition47Enum(){ return 778;}
+-function Outputdefinition48Enum(){ return 779;}
+-function Outputdefinition49Enum(){ return 780;}
+-function Outputdefinition50Enum(){ return 781;}
+-function Outputdefinition51Enum(){ return 782;}
+-function Outputdefinition52Enum(){ return 783;}
+-function Outputdefinition53Enum(){ return 784;}
+-function Outputdefinition54Enum(){ return 785;}
+-function Outputdefinition55Enum(){ return 786;}
+-function Outputdefinition56Enum(){ return 787;}
+-function Outputdefinition57Enum(){ return 788;}
+-function Outputdefinition58Enum(){ return 789;}
+-function Outputdefinition59Enum(){ return 790;}
+-function Outputdefinition60Enum(){ return 791;}
+-function Outputdefinition61Enum(){ return 792;}
+-function Outputdefinition62Enum(){ return 793;}
+-function Outputdefinition63Enum(){ return 794;}
+-function Outputdefinition64Enum(){ return 795;}
+-function Outputdefinition65Enum(){ return 796;}
+-function Outputdefinition66Enum(){ return 797;}
+-function Outputdefinition67Enum(){ return 798;}
+-function Outputdefinition68Enum(){ return 799;}
+-function Outputdefinition69Enum(){ return 800;}
+-function Outputdefinition70Enum(){ return 801;}
+-function Outputdefinition71Enum(){ return 802;}
+-function Outputdefinition72Enum(){ return 803;}
+-function Outputdefinition73Enum(){ return 804;}
+-function Outputdefinition74Enum(){ return 805;}
+-function Outputdefinition75Enum(){ return 806;}
+-function Outputdefinition76Enum(){ return 807;}
+-function Outputdefinition77Enum(){ return 808;}
+-function Outputdefinition78Enum(){ return 809;}
+-function Outputdefinition79Enum(){ return 810;}
+-function Outputdefinition80Enum(){ return 811;}
+-function Outputdefinition81Enum(){ return 812;}
+-function Outputdefinition82Enum(){ return 813;}
+-function Outputdefinition83Enum(){ return 814;}
+-function Outputdefinition84Enum(){ return 815;}
+-function Outputdefinition85Enum(){ return 816;}
+-function Outputdefinition86Enum(){ return 817;}
+-function Outputdefinition87Enum(){ return 818;}
+-function Outputdefinition88Enum(){ return 819;}
+-function Outputdefinition89Enum(){ return 820;}
+-function Outputdefinition90Enum(){ return 821;}
+-function Outputdefinition91Enum(){ return 822;}
+-function Outputdefinition92Enum(){ return 823;}
+-function Outputdefinition93Enum(){ return 824;}
+-function Outputdefinition94Enum(){ return 825;}
+-function Outputdefinition95Enum(){ return 826;}
+-function Outputdefinition96Enum(){ return 827;}
+-function Outputdefinition97Enum(){ return 828;}
+-function Outputdefinition98Enum(){ return 829;}
+-function Outputdefinition99Enum(){ return 830;}
+-function Outputdefinition100Enum(){ return 831;}
+-function OutputdefinitionListEnum(){ return 832;}
+-function MassfluxatgateEnum(){ return 833;}
+-function MassfluxatgateNameEnum(){ return 834;}
+-function MassfluxatgateDefinitionenumEnum(){ return 835;}
+-function MassfluxatgateSegmentsEnum(){ return 836;}
+-function MisfitNameEnum(){ return 837;}
+-function MisfitDefinitionenumEnum(){ return 838;}
+-function MisfitModelEnum(){ return 839;}
+-function MisfitObservationEnum(){ return 840;}
++function DeviatoricStresseffectiveEnum(){ return 686;}
++function StrainRateEnum(){ return 687;}
++function StrainRatexxEnum(){ return 688;}
++function StrainRatexyEnum(){ return 689;}
++function StrainRatexzEnum(){ return 690;}
++function StrainRateyyEnum(){ return 691;}
++function StrainRateyzEnum(){ return 692;}
++function StrainRatezzEnum(){ return 693;}
++function DivergenceEnum(){ return 694;}
++function MaxDivergenceEnum(){ return 695;}
++function GiaCrossSectionShapeEnum(){ return 696;}
++function GiadWdtEnum(){ return 697;}
++function GiaWEnum(){ return 698;}
++function P0Enum(){ return 699;}
++function P0ArrayEnum(){ return 700;}
++function P1Enum(){ return 701;}
++function P1DGEnum(){ return 702;}
++function P1bubbleEnum(){ return 703;}
++function P1bubblecondensedEnum(){ return 704;}
++function P2Enum(){ return 705;}
++function P2bubbleEnum(){ return 706;}
++function P2bubblecondensedEnum(){ return 707;}
++function P2xP1Enum(){ return 708;}
++function P1xP2Enum(){ return 709;}
++function P1xP3Enum(){ return 710;}
++function P2xP4Enum(){ return 711;}
++function P1P1Enum(){ return 712;}
++function P1P1GLSEnum(){ return 713;}
++function MINIEnum(){ return 714;}
++function MINIcondensedEnum(){ return 715;}
++function TaylorHoodEnum(){ return 716;}
++function LATaylorHoodEnum(){ return 717;}
++function XTaylorHoodEnum(){ return 718;}
++function OneLayerP4zEnum(){ return 719;}
++function CrouzeixRaviartEnum(){ return 720;}
++function LACrouzeixRaviartEnum(){ return 721;}
++function SaveResultsEnum(){ return 722;}
++function BoolExternalResultEnum(){ return 723;}
++function DoubleExternalResultEnum(){ return 724;}
++function DoubleMatExternalResultEnum(){ return 725;}
++function IntExternalResultEnum(){ return 726;}
++function JEnum(){ return 727;}
++function StringExternalResultEnum(){ return 728;}
++function StepEnum(){ return 729;}
++function TimeEnum(){ return 730;}
++function WaterColumnOldEnum(){ return 731;}
++function OutputdefinitionEnum(){ return 732;}
++function Outputdefinition1Enum(){ return 733;}
++function Outputdefinition2Enum(){ return 734;}
++function Outputdefinition3Enum(){ return 735;}
++function Outputdefinition4Enum(){ return 736;}
++function Outputdefinition5Enum(){ return 737;}
++function Outputdefinition6Enum(){ return 738;}
++function Outputdefinition7Enum(){ return 739;}
++function Outputdefinition8Enum(){ return 740;}
++function Outputdefinition9Enum(){ return 741;}
++function Outputdefinition10Enum(){ return 742;}
++function Outputdefinition11Enum(){ return 743;}
++function Outputdefinition12Enum(){ return 744;}
++function Outputdefinition13Enum(){ return 745;}
++function Outputdefinition14Enum(){ return 746;}
++function Outputdefinition15Enum(){ return 747;}
++function Outputdefinition16Enum(){ return 748;}
++function Outputdefinition17Enum(){ return 749;}
++function Outputdefinition18Enum(){ return 750;}
++function Outputdefinition19Enum(){ return 751;}
++function Outputdefinition20Enum(){ return 752;}
++function Outputdefinition21Enum(){ return 753;}
++function Outputdefinition22Enum(){ return 754;}
++function Outputdefinition23Enum(){ return 755;}
++function Outputdefinition24Enum(){ return 756;}
++function Outputdefinition25Enum(){ return 757;}
++function Outputdefinition26Enum(){ return 758;}
++function Outputdefinition27Enum(){ return 759;}
++function Outputdefinition28Enum(){ return 760;}
++function Outputdefinition29Enum(){ return 761;}
++function Outputdefinition30Enum(){ return 762;}
++function Outputdefinition31Enum(){ return 763;}
++function Outputdefinition32Enum(){ return 764;}
++function Outputdefinition33Enum(){ return 765;}
++function Outputdefinition34Enum(){ return 766;}
++function Outputdefinition35Enum(){ return 767;}
++function Outputdefinition36Enum(){ return 768;}
++function Outputdefinition37Enum(){ return 769;}
++function Outputdefinition38Enum(){ return 770;}
++function Outputdefinition39Enum(){ return 771;}
++function Outputdefinition40Enum(){ return 772;}
++function Outputdefinition41Enum(){ return 773;}
++function Outputdefinition42Enum(){ return 774;}
++function Outputdefinition43Enum(){ return 775;}
++function Outputdefinition44Enum(){ return 776;}
++function Outputdefinition45Enum(){ return 777;}
++function Outputdefinition46Enum(){ return 778;}
++function Outputdefinition47Enum(){ return 779;}
++function Outputdefinition48Enum(){ return 780;}
++function Outputdefinition49Enum(){ return 781;}
++function Outputdefinition50Enum(){ return 782;}
++function Outputdefinition51Enum(){ return 783;}
++function Outputdefinition52Enum(){ return 784;}
++function Outputdefinition53Enum(){ return 785;}
++function Outputdefinition54Enum(){ return 786;}
++function Outputdefinition55Enum(){ return 787;}
++function Outputdefinition56Enum(){ return 788;}
++function Outputdefinition57Enum(){ return 789;}
++function Outputdefinition58Enum(){ return 790;}
++function Outputdefinition59Enum(){ return 791;}
++function Outputdefinition60Enum(){ return 792;}
++function Outputdefinition61Enum(){ return 793;}
++function Outputdefinition62Enum(){ return 794;}
++function Outputdefinition63Enum(){ return 795;}
++function Outputdefinition64Enum(){ return 796;}
++function Outputdefinition65Enum(){ return 797;}
++function Outputdefinition66Enum(){ return 798;}
++function Outputdefinition67Enum(){ return 799;}
++function Outputdefinition68Enum(){ return 800;}
++function Outputdefinition69Enum(){ return 801;}
++function Outputdefinition70Enum(){ return 802;}
++function Outputdefinition71Enum(){ return 803;}
++function Outputdefinition72Enum(){ return 804;}
++function Outputdefinition73Enum(){ return 805;}
++function Outputdefinition74Enum(){ return 806;}
++function Outputdefinition75Enum(){ return 807;}
++function Outputdefinition76Enum(){ return 808;}
++function Outputdefinition77Enum(){ return 809;}
++function Outputdefinition78Enum(){ return 810;}
++function Outputdefinition79Enum(){ return 811;}
++function Outputdefinition80Enum(){ return 812;}
++function Outputdefinition81Enum(){ return 813;}
++function Outputdefinition82Enum(){ return 814;}
++function Outputdefinition83Enum(){ return 815;}
++function Outputdefinition84Enum(){ return 816;}
++function Outputdefinition85Enum(){ return 817;}
++function Outputdefinition86Enum(){ return 818;}
++function Outputdefinition87Enum(){ return 819;}
++function Outputdefinition88Enum(){ return 820;}
++function Outputdefinition89Enum(){ return 821;}
++function Outputdefinition90Enum(){ return 822;}
++function Outputdefinition91Enum(){ return 823;}
++function Outputdefinition92Enum(){ return 824;}
++function Outputdefinition93Enum(){ return 825;}
++function Outputdefinition94Enum(){ return 826;}
++function Outputdefinition95Enum(){ return 827;}
++function Outputdefinition96Enum(){ return 828;}
++function Outputdefinition97Enum(){ return 829;}
++function Outputdefinition98Enum(){ return 830;}
++function Outputdefinition99Enum(){ return 831;}
++function Outputdefinition100Enum(){ return 832;}
++function OutputdefinitionListEnum(){ return 833;}
++function MassfluxatgateEnum(){ return 834;}
++function MassfluxatgateNameEnum(){ return 835;}
++function MassfluxatgateDefinitionenumEnum(){ return 836;}
++function MassfluxatgateSegmentsEnum(){ return 837;}
++function MisfitNameEnum(){ return 838;}
++function MisfitDefinitionenumEnum(){ return 839;}
++function MisfitModelEnum(){ return 840;}
+ function MisfitObservationEnum(){ return 841;}
+-function MisfitLocalEnum(){ return 842;}
+-function MisfitTimeinterpolationEnum(){ return 843;}
+-function MisfitWeightsEnum(){ return 844;}
++function MisfitObservationEnum(){ return 842;}
++function MisfitLocalEnum(){ return 843;}
++function MisfitTimeinterpolationEnum(){ return 844;}
+ function MisfitWeightsEnum(){ return 845;}
+-function SurfaceObservationEnum(){ return 846;}
+-function WeightsSurfaceObservationEnum(){ return 847;}
+-function VxObsEnum(){ return 848;}
+-function WeightsVxObsEnum(){ return 849;}
+-function VyObsEnum(){ return 850;}
+-function WeightsVyObsEnum(){ return 851;}
+-function MinVelEnum(){ return 852;}
+-function MaxVelEnum(){ return 853;}
+-function MinVxEnum(){ return 854;}
+-function MaxVxEnum(){ return 855;}
+-function MaxAbsVxEnum(){ return 856;}
+-function MinVyEnum(){ return 857;}
+-function MaxVyEnum(){ return 858;}
+-function MaxAbsVyEnum(){ return 859;}
+-function MinVzEnum(){ return 860;}
+-function MaxVzEnum(){ return 861;}
+-function MaxAbsVzEnum(){ return 862;}
+-function FloatingAreaEnum(){ return 863;}
+-function GroundedAreaEnum(){ return 864;}
+-function IceMassEnum(){ return 865;}
+-function IceVolumeEnum(){ return 866;}
+-function IceVolumeAboveFloatationEnum(){ return 867;}
+-function TotalSmbEnum(){ return 868;}
+-function AbsoluteEnum(){ return 869;}
+-function IncrementalEnum(){ return 870;}
+-function AugmentedLagrangianREnum(){ return 871;}
+-function AugmentedLagrangianRhopEnum(){ return 872;}
+-function AugmentedLagrangianRlambdaEnum(){ return 873;}
+-function AugmentedLagrangianRholambdaEnum(){ return 874;}
+-function AugmentedLagrangianThetaEnum(){ return 875;}
+-function NoneEnum(){ return 876;}
+-function AggressiveMigrationEnum(){ return 877;}
+-function SoftMigrationEnum(){ return 878;}
+-function SubelementMigrationEnum(){ return 879;}
+-function SubelementMigration2Enum(){ return 880;}
+-function ContactEnum(){ return 881;}
+-function GroundingOnlyEnum(){ return 882;}
+-function MaskGroundediceLevelsetEnum(){ return 883;}
+-function GaussSegEnum(){ return 884;}
+-function GaussTriaEnum(){ return 885;}
+-function GaussTetraEnum(){ return 886;}
+-function GaussPentaEnum(){ return 887;}
+-function FSSolverEnum(){ return 888;}
+-function AdjointEnum(){ return 889;}
+-function ColinearEnum(){ return 890;}
+-function ControlSteadyEnum(){ return 891;}
+-function FsetEnum(){ return 892;}
+-function Gradient1Enum(){ return 893;}
+-function Gradient2Enum(){ return 894;}
+-function Gradient3Enum(){ return 895;}
+-function GradientEnum(){ return 896;}
+-function GroundinglineMigrationEnum(){ return 897;}
+-function GsetEnum(){ return 898;}
+-function IndexEnum(){ return 899;}
+-function IndexedEnum(){ return 900;}
+-function IntersectEnum(){ return 901;}
+-function NodalEnum(){ return 902;}
+-function OldGradientEnum(){ return 903;}
+-function OutputBufferPointerEnum(){ return 904;}
+-function OutputBufferSizePointerEnum(){ return 905;}
+-function OutputFilePointerEnum(){ return 906;}
+-function ToolkitsFileNameEnum(){ return 907;}
+-function RootPathEnum(){ return 908;}
+-function OutputFileNameEnum(){ return 909;}
+-function InputFileNameEnum(){ return 910;}
+-function LockFileNameEnum(){ return 911;}
+-function RestartFileNameEnum(){ return 912;}
+-function ToolkitsOptionsAnalysesEnum(){ return 913;}
+-function ToolkitsOptionsStringsEnum(){ return 914;}
+-function QmuErrNameEnum(){ return 915;}
+-function QmuInNameEnum(){ return 916;}
+-function QmuOutNameEnum(){ return 917;}
+-function RegularEnum(){ return 918;}
+-function ScaledEnum(){ return 919;}
+-function SeparateEnum(){ return 920;}
+-function SsetEnum(){ return 921;}
+-function VerboseEnum(){ return 922;}
+-function TriangleInterpEnum(){ return 923;}
+-function BilinearInterpEnum(){ return 924;}
+-function NearestInterpEnum(){ return 925;}
+-function XYEnum(){ return 926;}
+-function XYZEnum(){ return 927;}
+-function DenseEnum(){ return 928;}
+-function MpiDenseEnum(){ return 929;}
+-function MpiSparseEnum(){ return 930;}
+-function SeqEnum(){ return 931;}
+-function MpiEnum(){ return 932;}
+-function MumpsEnum(){ return 933;}
+-function GslEnum(){ return 934;}
+-function OptionEnum(){ return 935;}
+-function GenericOptionEnum(){ return 936;}
+-function OptionCellEnum(){ return 937;}
+-function OptionStructEnum(){ return 938;}
+-function CuffeyEnum(){ return 939;}
+-function PatersonEnum(){ return 940;}
+-function ArrheniusEnum(){ return 941;}
+-function LliboutryDuvalEnum(){ return 942;}
+-function TransientIslevelsetEnum(){ return 943;}
+-function SpcLevelsetEnum(){ return 944;}
+-function ExtrapolationVariableEnum(){ return 945;}
+-function IceMaskNodeActivationEnum(){ return 946;}
+-function LevelsetfunctionSlopeXEnum(){ return 947;}
+-function LevelsetfunctionSlopeYEnum(){ return 948;}
+-function LevelsetfunctionPicardEnum(){ return 949;}
+-function MaximumNumberOfDefinitionsEnum(){ return 950;}
++function MisfitWeightsEnum(){ return 846;}
++function SurfaceObservationEnum(){ return 847;}
++function WeightsSurfaceObservationEnum(){ return 848;}
++function VxObsEnum(){ return 849;}
++function WeightsVxObsEnum(){ return 850;}
++function VyObsEnum(){ return 851;}
++function WeightsVyObsEnum(){ return 852;}
++function MinVelEnum(){ return 853;}
++function MaxVelEnum(){ return 854;}
++function MinVxEnum(){ return 855;}
++function MaxVxEnum(){ return 856;}
++function MaxAbsVxEnum(){ return 857;}
++function MinVyEnum(){ return 858;}
++function MaxVyEnum(){ return 859;}
++function MaxAbsVyEnum(){ return 860;}
++function MinVzEnum(){ return 861;}
++function MaxVzEnum(){ return 862;}
++function MaxAbsVzEnum(){ return 863;}
++function FloatingAreaEnum(){ return 864;}
++function GroundedAreaEnum(){ return 865;}
++function IceMassEnum(){ return 866;}
++function IceVolumeEnum(){ return 867;}
++function IceVolumeAboveFloatationEnum(){ return 868;}
++function TotalSmbEnum(){ return 869;}
++function AbsoluteEnum(){ return 870;}
++function IncrementalEnum(){ return 871;}
++function AugmentedLagrangianREnum(){ return 872;}
++function AugmentedLagrangianRhopEnum(){ return 873;}
++function AugmentedLagrangianRlambdaEnum(){ return 874;}
++function AugmentedLagrangianRholambdaEnum(){ return 875;}
++function AugmentedLagrangianThetaEnum(){ return 876;}
++function NoneEnum(){ return 877;}
++function AggressiveMigrationEnum(){ return 878;}
++function SoftMigrationEnum(){ return 879;}
++function SubelementMigrationEnum(){ return 880;}
++function SubelementMigration2Enum(){ return 881;}
++function ContactEnum(){ return 882;}
++function GroundingOnlyEnum(){ return 883;}
++function MaskGroundediceLevelsetEnum(){ return 884;}
++function GaussSegEnum(){ return 885;}
++function GaussTriaEnum(){ return 886;}
++function GaussTetraEnum(){ return 887;}
++function GaussPentaEnum(){ return 888;}
++function FSSolverEnum(){ return 889;}
++function AdjointEnum(){ return 890;}
++function ColinearEnum(){ return 891;}
++function ControlSteadyEnum(){ return 892;}
++function FsetEnum(){ return 893;}
++function Gradient1Enum(){ return 894;}
++function Gradient2Enum(){ return 895;}
++function Gradient3Enum(){ return 896;}
++function GradientEnum(){ return 897;}
++function GroundinglineMigrationEnum(){ return 898;}
++function GsetEnum(){ return 899;}
++function IndexEnum(){ return 900;}
++function IndexedEnum(){ return 901;}
++function IntersectEnum(){ return 902;}
++function NodalEnum(){ return 903;}
++function OldGradientEnum(){ return 904;}
++function OutputBufferPointerEnum(){ return 905;}
++function OutputBufferSizePointerEnum(){ return 906;}
++function OutputFilePointerEnum(){ return 907;}
++function ToolkitsFileNameEnum(){ return 908;}
++function RootPathEnum(){ return 909;}
++function OutputFileNameEnum(){ return 910;}
++function InputFileNameEnum(){ return 911;}
++function LockFileNameEnum(){ return 912;}
++function RestartFileNameEnum(){ return 913;}
++function ToolkitsOptionsAnalysesEnum(){ return 914;}
++function ToolkitsOptionsStringsEnum(){ return 915;}
++function QmuErrNameEnum(){ return 916;}
++function QmuInNameEnum(){ return 917;}
++function QmuOutNameEnum(){ return 918;}
++function RegularEnum(){ return 919;}
++function ScaledEnum(){ return 920;}
++function SeparateEnum(){ return 921;}
++function SsetEnum(){ return 922;}
++function VerboseEnum(){ return 923;}
++function TriangleInterpEnum(){ return 924;}
++function BilinearInterpEnum(){ return 925;}
++function NearestInterpEnum(){ return 926;}
++function XYEnum(){ return 927;}
++function XYZEnum(){ return 928;}
++function DenseEnum(){ return 929;}
++function MpiDenseEnum(){ return 930;}
++function MpiSparseEnum(){ return 931;}
++function SeqEnum(){ return 932;}
++function MpiEnum(){ return 933;}
++function MumpsEnum(){ return 934;}
++function GslEnum(){ return 935;}
++function OptionEnum(){ return 936;}
++function GenericOptionEnum(){ return 937;}
++function OptionCellEnum(){ return 938;}
++function OptionStructEnum(){ return 939;}
++function CuffeyEnum(){ return 940;}
++function PatersonEnum(){ return 941;}
++function ArrheniusEnum(){ return 942;}
++function LliboutryDuvalEnum(){ return 943;}
++function TransientIslevelsetEnum(){ return 944;}
++function SpcLevelsetEnum(){ return 945;}
++function ExtrapolationVariableEnum(){ return 946;}
++function IceMaskNodeActivationEnum(){ return 947;}
++function LevelsetfunctionSlopeXEnum(){ return 948;}
++function LevelsetfunctionSlopeYEnum(){ return 949;}
++function LevelsetfunctionPicardEnum(){ return 950;}
++function MaximumNumberOfDefinitionsEnum(){ return 951;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19824)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19825)
+@@ -694,6 +694,7 @@
+ def DeviatoricStressyyEnum(): return StringToEnum("DeviatoricStressyy")[0]
+ def DeviatoricStressyzEnum(): return StringToEnum("DeviatoricStressyz")[0]
+ def DeviatoricStresszzEnum(): return StringToEnum("DeviatoricStresszz")[0]
++def DeviatoricStresseffectiveEnum(): return StringToEnum("DeviatoricStresseffective")[0]
+ def StrainRateEnum(): return StringToEnum("StrainRate")[0]
+ def StrainRatexxEnum(): return StringToEnum("StrainRatexx")[0]
+ def StrainRatexyEnum(): return StringToEnum("StrainRatexy")[0]
+Index: ../trunk-jpl/src/m/enum/DeviatoricStresseffectiveEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/DeviatoricStresseffectiveEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/DeviatoricStresseffectiveEnum.m	(revision 19825)
+@@ -0,0 +1,11 @@
++function macro=DeviatoricStresseffectiveEnum()
++%DEVIATORICSTRESSEFFECTIVEENUM - Enum of DeviatoricStresseffective
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=DeviatoricStresseffectiveEnum()
++
++macro=StringToEnum('DeviatoricStresseffective');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19825-19826.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19825-19826.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19825-19826.diff	(revision 20498)
@@ -0,0 +1,67 @@
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19825)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19826)
+@@ -13,6 +13,9 @@
+ 	//
+ 	//   See also: PLOTMODEL, PROCESSMESH
+ 
++	//variables: 
++	var datatype;
++	
+ 	//check format
+ 	if ( data.length ==0 | data === [] | typeof data === 'number' | ArrayAnyNaN(data) ){
+ 		throw Error('plotmodel error message: data provided is empty');
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19825)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19826)
+@@ -142,9 +142,20 @@
+ 			var cdivisions = cheight/4;
+ 			var color;
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+-			var ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-			ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+-			var ccontext = ccanvas[0].getContext('2d');
++
++			var ccontext,ccanvas;
++			ccanvas=document.getElementById(options.getfieldvalue('canvasid')+'_colorbar');
++			if(ccanvas==null){
++				ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++				ccontext = ccanvas[0].getContext('2d');
++			}
++			else{
++				ccontext = ccanvas.getContext('2d');
++				/*erase existing colorbar:*/
++				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++				ccontext.beginPath();
++			}
+ 			var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
+ 			for (var i = 0; i < colorbar.length; i++) {
+ 				color = colorbar[colorbar.length-i-1];
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19825)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19826)
+@@ -17,6 +17,7 @@
+ 	var zmin,zmax;
+ 	var datamin,datamax;
+ 	var scale;
++
+ 	//Process data and model
+ 	var meshresults = processmesh(md,data,options);
+ 	var x = meshresults[0]; 
+Index: ../trunk-jpl/src/m/plot/processmesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.js	(revision 19825)
++++ ../trunk-jpl/src/m/plot/processmesh.js	(revision 19826)
+@@ -12,6 +12,8 @@
+ //
+ //   See also: PLOTMODEL, PROCESSDATA
+ 
++	var x,y,z,elements,is2d,isplanet;
++
+ 	//some checks
+ 	if (md.mesh.numberofvertices==0){
+ 		throw Error('plot error message: mesh is empty');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19826-19827.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19826-19827.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19826-19827.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19826)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19827)
+@@ -308,3 +308,37 @@
+ 	}
+ 	return true;
+ } //}}}
++function clone(obj) {//{{{
++	
++	var copy;
++
++	// Handle the 3 simple types, and null or undefined
++	if (null == obj || "object" != typeof obj) return obj;
++
++	// Handle Date
++	if (obj instanceof Date) {
++		copy = new Date();
++		copy.setTime(obj.getTime());
++		return copy;
++	}
++
++	// Handle Array
++	if (obj instanceof Array) {
++		copy = [];
++		for (var i = 0, len = obj.length; i < len; i++) {
++			copy[i] = clone(obj[i]);
++		}
++		return copy;
++	}
++
++	// Handle Object
++	if (obj instanceof Object) {
++		copy = {};
++		for (var attr in obj) {
++			if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
++		}
++		return copy;
++	}
++
++	throw new Error("Unable to copy obj! Its type isn't supported.");
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19827-19828.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19827-19828.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19827-19828.diff	(revision 20498)
@@ -0,0 +1,142 @@
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19828)
+@@ -54,7 +54,7 @@
+ 	this.checkconsistency = function(md,solution,analyses){ // {{{
+ 
+ 		//Early return
+-		if(!ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1) & !ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1)  | (solution == TransientSolutionEnum() & md.transient.isthermal==0)) return;
++		if(!ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1) & !ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1)  | (solution == TransientSolutionEnum() & md.trans.isthermal==0)) return;
+ 
+ 		checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]);
+ 		checkfield(md,'fieldname','thermal.spctemperature','timeseries',1);
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19828)
+@@ -32,7 +32,7 @@
+ 
+ 		//be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
+ 		//are not provided into the future.
+-		if (solution==TransientSolutionEnum() & md.transient.ismasstransport & md.transient.isgia){
++		if (solution==TransientSolutionEnum() & md.trans.ismasstransport & md.trans.isgia){
+ 			//figure out if thickness is a transient forcing: 
+ 			if (md.geometry.thickness.length == (md.mesh.numberofvertices+1)){
+ 				//recover the furthest time "in time": 
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19828)
+@@ -25,7 +25,7 @@
+ 	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses) { // {{{
+ 		//Early return
+-		if (solution!=TransientSolutionEnum() | md.transient.iscalving==0) return;
++		if (solution!=TransientSolutionEnum() | md.trans.iscalving==0) return;
+ 
+ 		checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19828)
+@@ -43,7 +43,7 @@
+ 		this.checkconsistency = function (md,solution,analyses){  // {{{
+ 
+ 			//Early return
+-			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1) | (solution==TransientSolutionEnum() & md.transient.ismasstransport==0)) return; 
++			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1) | (solution==TransientSolutionEnum() & md.trans.ismasstransport==0)) return; 
+ 
+ 			checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1);
+ 			checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 ,1]);
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19828)
+@@ -20,7 +20,7 @@
+ 		} //}}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+-			if ((solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum())){
++			if ((solution==TransientSolutionEnum() & md.trans.isgia) | (solution==GiaSolutionEnum())){
+ 				checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'>=',0);
+ 			}
+ 			else{
+@@ -33,7 +33,7 @@
+ 						break;
+ 					}
+ 				}
+-				if (solution==TransientSolutionEnum() & md.transient.isgroundingline){
++				if (solution==TransientSolutionEnum() & md.trans.isgroundingline){
+ 					checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 				}
+ 			}
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19828)
+@@ -35,7 +35,7 @@
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
+-				if (!(solution==TransientSolutionEnum() & md.transient.ismasstransport==0)){
++				if (!(solution==TransientSolutionEnum() & md.trans.ismasstransport==0)){
+ 					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+ 					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
+ 				}
+@@ -46,7 +46,7 @@
+ 				checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
+-				if (!(solution==TransientSolutionEnum() & md.transient.isthermal==0)){
++				if (!(solution==TransientSolutionEnum() & md.trans.isthermal==0)){
+ 					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+ 					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
+ 					checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
+Index: ../trunk-jpl/src/m/classes/flowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/flowequation.js	(revision 19828)
+@@ -41,7 +41,7 @@
+ 
+ 			//Early return
+ 			if ( ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceSIAAnalysisEnum(),analyses),1))) | 
+-					(solution==TransientSolutionEnum() & md.transient.isstressbalance==0)
++					(solution==TransientSolutionEnum() & md.trans.isstressbalance==0)
+ 			   ) return ;
+ 
+ 			checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0, 1]);
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 19827)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 19828)
+@@ -49,17 +49,17 @@
+ 			//Early return
+ 			if (solution!=TransientSolutionEnum()) return;
+ 
+-			checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 ,1]);
+-			checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
++			checkfield(md,'fieldname','trans.issmb','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.ismasstransport','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.isstressbalance','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.isthermal','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.isgroundingline','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.isgia','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.isdamageevolution','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.islevelset','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.iscalving','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.requested_outputs','stringrow',1);
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','issmb','format','Boolean');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19828-19829.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19828-19829.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19828-19829.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 19828)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 19829)
+@@ -5,10 +5,12 @@
+ //      ismodelselfconsistent(md),
+ 
+ 	//initialize consistency as true
+-	md.private.isconsistent=true;
++	md.priv.isconsistent=true;
+ 
+ 	//Get solution and associated analyses
+-	solution=md.private.solution;
++	solution=md.priv.solution;
++	if(typeof solution != 'number')throw Error('ismodelselfconsistent: did not provide solution type in the private class!');
++	
+ 	var analyses = AnalysisConfiguration(solution);
+ 
+ 	//Go through a model field, check that it is a class, and call checkconsistency
+@@ -29,7 +31,7 @@
+ 	}
+ 
+ 	//error message if mode is not consistent
+-	if (md.private.isconsistent==false){
++	if (md.priv.isconsistent==false){
+ 		throw Error('Model not consistent, see messages above');
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19829-19830.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19829-19830.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19829-19830.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19829)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19830)
+@@ -114,7 +114,7 @@
+ 				${ISSM_DIR}/src/m/classes/outputdefinition.js \
+ 				${ISSM_DIR}/src/m/classes/pairoptions.js \
+ 				${ISSM_DIR}/src/m/classes/plotoptions.js \
+-				${ISSM_DIR}/src/m/classes/private.js \
++				${ISSM_DIR}/src/m/classes/priv.js \
+ 				${ISSM_DIR}/src/m/classes/qmu.js \
+ 				${ISSM_DIR}/src/m/classes/radaroverlay.js \
+ 				${ISSM_DIR}/src/m/classes/rifts.js \
+@@ -126,7 +126,7 @@
+ 				${ISSM_DIR}/src/m/classes/thermal.js \
+ 				${ISSM_DIR}/src/m/classes/timestepping.js \
+ 				${ISSM_DIR}/src/m/classes/toolkits.js \
+-				${ISSM_DIR}/src/m/classes/transient.js \
++				${ISSM_DIR}/src/m/classes/trans.js \
+ 				${ISSM_DIR}/src/m/classes/verbose.js \
+ 				${ISSM_DIR}/src/m/consistency/checkfield.js \
+ 				${ISSM_DIR}/src/m/consistency/ismodelselfconsistent.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19830-19831.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19830-19831.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19830-19831.diff	(revision 20498)
@@ -0,0 +1,67 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js	(revision 19830)
++++ ../trunk-jpl/src/m/solve/parseresultsfrombuffer.js	(revision 19831)
+@@ -17,6 +17,7 @@
+ 	var counter = 0;
+ 	var check_nomoresteps=0;
+ 	var step    = result['step'];
++	var index;
+ 
+ 	while (!MapIsEmpty(result)){
+ 
+Index: ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 19830)
++++ ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 19831)
+@@ -13,14 +13,7 @@
+ 		if (MapIsEmpty(md.results)) md.results={};
+ 
+ 		//load results onto model
+-		var array=parseresultsfrombuffer(buffer,buffersize);
+-		if (array.length==0) throw Error('No result found in binary buffer. Check for solution crash.');
+-
+-
+-		md.results[array[0]['SolutionType']] = array;
+-		
+-		//recover solution_type from results
+-		md.priv.solution=array['SolutionType'];
++		return parseresultsfrombuffer(buffer,buffersize);
+ 	}
+ 	else throw Error('loadresultsfrombuffer error message: qmu results not supported yet!');
+ }
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 19830)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 19831)
+@@ -7,6 +7,7 @@
+ 	//process options
+ 	var args = Array.prototype.slice.call(arguments);
+ 	var options = new pairoptions(args.slice(1,args.length));
++	var enumm;
+ 
+ 	//Get data properties
+ 	if (options.exist('object')){
+@@ -273,6 +274,7 @@
+ 	//   Usage:
+ 	//      enumm=BuildEnum(string)
+ 
++	var index;
+ 	while( string.indexOf('_') !=-1){
+ 		index=string.indexOf('_');
+ 		string=string.slice(0,index)+string[index+1].toUpperCase() + string.slice(index+2);
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 19830)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 19831)
+@@ -188,7 +188,9 @@
+ 		var outputbuffer = outputs[0]; var outputbuffersize = outputs[1];
+ 			
+ 		//Load results: 
+-		loadresultsfrombuffer(md,outputbuffer,outputbuffersize);
++		var results = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); //loadresults: [array,solution_type]
+ 
++		return results;
++
+ 	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19831-19832.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19831-19832.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19831-19832.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/organizer.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.py	(revision 19831)
++++ ../trunk-jpl/src/m/classes/organizer.py	(revision 19832)
+@@ -163,7 +163,7 @@
+ 			raise RuntimeError("Cannot save model because organizer (org) is not up to date!")
+ 
+ 		if (name=='default'):
+-			name=os.path.join(self.repository,self.prefix+'.step#'+self.steps[self._currentstep-1]['string']+'.python')
++			name=os.path.join(self.repository,self.prefix+'step#'+self.steps[self._currentstep-1]['string']+'.python')
+                 else:
+                     name=os.path.join(self.repository,name)
+ 		print "saving model as: '%s'" % name
Index: /issm/oecreview/Archive/19101-20495/ISSM-19832-19833.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19832-19833.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19832-19833.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19832)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19833)
+@@ -106,10 +106,10 @@
+ 	md.verbose.solution=1;  md.verbose.convergence=0;
+ 
+ 	console.log('solve');
+-	solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
++	md.results=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
+ 
+ 	console.log('plotting');
+-	plotmodel(md,'data',md.results['StressbalanceSolution'][0]['Vel'],'colorbar#1','on','colorbarheight',.5);
++	plotmodel(md,'data',md.results[0]['Vel'],'colorbar#1','on','colorbarheight',.5);
+ 
+ </script> <!--{{{-->
+ </body> 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19833-19834.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19833-19834.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19833-19834.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19833)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19834)
+@@ -84,11 +84,11 @@
+ 
+ 			var yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'data',this.vx,'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.vy,'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.vz,'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum());
+-			WriteData(fid,'data',this.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
++			WriteData(fid,'data',this.vx.slice(),'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vy.slice(),'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vz.slice(),'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.pressure.slice(),'format','DoubleMat','mattype',1,'enum',PressureEnum());
++			WriteData(fid,'data',this.temperature.slice(),'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
+ 			WriteData(fid,'data',this.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum());
+ 			WriteData(fid,'data',this.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum());
+ 			WriteData(fid,'data',this.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum());
Index: /issm/oecreview/Archive/19101-20495/ISSM-19834-19835.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19834-19835.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19834-19835.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test341.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test341.m	(revision 19834)
++++ ../trunk-jpl/test/NightlyRun/test341.m	(revision 19835)
+@@ -22,7 +22,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Gradient','FrictionCoefficient','Pressure','Vel','Vx','Vy'};
+-field_tolerances={1e-08,1e-10,1e-10,1e-09,1e-09,1e-09};
++field_tolerances={1e-08,1e-9,1e-10,1e-09,1e-09,1e-09};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Gradient1),...
+ 	(md.results.StressbalanceSolution.FrictionCoefficient),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19835-19836.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19835-19836.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19835-19836.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/materials/DepthAvgTempCond.py
+===================================================================
+--- ../trunk-jpl/src/m/materials/DepthAvgTempCond.py	(revision 19835)
++++ ../trunk-jpl/src/m/materials/DepthAvgTempCond.py	(revision 19836)
+@@ -11,7 +11,7 @@
+ 
+    k=md.materials.thermalconductivity
+    G=md.basalforcings.geothermalflux
+-   H=md.geometry.thickness[:,0]
++   H=md.geometry.thickness
+    Ts=md.initialization.temperature
+    alpha=G*H/k
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19836-19837.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19836-19837.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19836-19837.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 19836)
++++ ../trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js	(revision 19837)
+@@ -17,7 +17,7 @@
+ 	//node on Dirichlet (boundary and ~icefront)
+ 	if (arguments.length==2){
+ 		icefront=arguments[1];
+-		nodeinsideicefront=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2);
++		nodeinsideicefront=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefront,'node',2);
+ 		nodeonicefront=ArrayAnd(md.mesh.vertexonboundary,nodeinsideicefront);
+ 	}
+ 	else if(arguments.length==1){
+@@ -51,7 +51,6 @@
+ 	var obs=false;
+ 	if((md.inversion.vx_obs.length == md.mesh.numberofvertices) & (md.inversion.vy_obs.length==md.mesh.numberofvertices))obs=true;
+ 
+-
+ 	if(obs==true){
+ 		console.log('      boundary conditions for stressbalance model: setting spc as observed velocities');
+ 	}
+@@ -61,7 +60,7 @@
+ 	for(var i=0;i<md.mesh.segments.length;i++){
+ 		var sum=0;
+ 		for (var j=0;j<numbernodesfront;j++) sum+=md.mask.ice_levelset[md.mesh.segments[i][j]-1];
+-		if(sum!=numbernodesfront){
++		if(sum!=0){
+ 			for (var j=0;j<numbernodesfront;j++){
+ 				if(obs==false){
+ 					md.stressbalance.spcvx[md.mesh.segments[i][j]-1]=0;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19837-19838.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19837-19838.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19837-19838.diff	(revision 20498)
@@ -0,0 +1,182 @@
+Index: ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19837)
++++ ../trunk-jpl/src/wrappers/javascript/io/javascriptio.h	(revision 19838)
+@@ -24,6 +24,7 @@
+ void WriteData(IssmPDouble** px, int* pnods, double* vector, int M);
+ void WriteData(char** pstring, char* stringin);
+ void WriteData(IssmPDouble* pdouble, IssmPDouble doublein);
++void WriteData(IssmPDouble** pdouble, void*);
+ 
+ void FetchData(char** pstring, char* stringin);
+ void FetchData(double* pscalar,double scalar);
+Index: ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19837)
++++ ../trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp	(revision 19838)
+@@ -83,6 +83,11 @@
+ 	*pdouble=doublein;
+ }
+ /*}}}*/
++/*FUNCTION WriteData(IssmPDouble** pdouble, void* nullptr){{{*/
++void WriteData(IssmPDouble** pdouble, void*){
++	//do nothing
++}
++/*}}}*/
+ /*FUNCTION WriteData(char** pstring, char* string){{{*/
+ void WriteData(char** pstring, char* stringin){
+ 
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19837)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 19838)
+@@ -9,6 +9,7 @@
+ bin_SCRIPTS = 
+ bin_SCRIPTS += ../TriMesh/TriMesh.js  \
+ 			   ../NodeConnectivity/NodeConnectivity.js\
++			   ../ContourToMesh/ContourToMesh.js\
+ 			   ../ElementConnectivity/ElementConnectivity.js\
+ 			   ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
+ 			   ../IssmConfig/IssmConfig.js\
+@@ -79,6 +80,7 @@
+ 
+ IssmModule_SOURCES = ../TriMesh/TriMesh.cpp \
+ 					 ../NodeConnectivity/NodeConnectivity.cpp\
++					 ../ContourToMesh/ContourToMesh.cpp\
+ 					 ../ElementConnectivity/ElementConnectivity.cpp\
+ 					 ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp\
+ 					 ../IssmConfig/IssmConfig.cpp\
+@@ -86,6 +88,6 @@
+ 					 ../StringToEnum/StringToEnum.cpp\
+ 					 ../Issm/issm.cpp
+ 
+-IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_  --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule','_IssmModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 -s INVOKE_RUN=0
++IssmModule_CXXFLAGS= -fPIC -D_DO_NOT_LOAD_GLOBALS_  --memory-init-file 0 $(AM_CXXFLAGS) $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) -s EXPORTED_FUNCTIONS="['_TriMeshModule','_NodeConnectivityModule','_ContourToMeshModule','_ElementConnectivityModule','_InterpFromMeshToMesh2dModule','_IssmConfigModule','_EnumToStringModule','_StringToEnumModule','_IssmModule']"  -s DISABLE_EXCEPTION_CATCHING=0 -s ALLOW_MEMORY_GROWTH=1 -s INVOKE_RUN=0
+ IssmModule_LDADD = ${deps} $(TRIANGLELIB)  $(GSLLIB)
+ #}}}
+Index: ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.h	(revision 19837)
++++ ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.h	(revision 19838)
+@@ -54,6 +54,21 @@
+ #define PLHS1 output,1
+ #endif
+ 
++#ifdef _HAVE_JAVASCRIPT_MODULES_
++/* serial input macros: */
++#define INDEX       indexin,nelin,3
++#define X           xin,nodsin,1
++#define Y           yin,nodsin,1
++#define CONTOUR     contourx,contoury,contour_nods
++#define INTERPTYPE  interptypein
++#define EDGEVALUE   valuein
++#define WRAPPER(modulename) extern "C" { int  ContourToMeshModule(double** pin_nod, double** pin_nel, double* indexin, double* xin, double* yin, double* contourx, double* contoury, char* interptypein, int nelin, int nodsin, int contour_nods, double valuein)
++/* serial output macros: */
++#define PLHS0 pin_nod,NULL
++#define PLHS1 pin_nel,NULL
++#define nrhs 6
++#endif
++
+ /* serial arg counts: */
+ #undef NLHS
+ #define NLHS  2
+Index: ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.js
+===================================================================
+--- ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.js	(revision 0)
++++ ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.js	(revision 19838)
+@@ -0,0 +1,95 @@
++function ContourToMesh(indexin,xin,yin,contour,interptype,edgevalue){
++/* CONTOURTOMESH - Flag the elements or nodes inside a contour;
++	
++	      Usage: ;
++	         [in_nod,in_elem]=ContourToMesh(index,x,y,contourname,interptype,edgevalue);
++	
++	         index,x,y: mesh triangulation
++	         contourname: name of .exp file containing the contours
++	         interptype: string definining type of interpolation ('element', or 'node')
++	         edgevalue: integer (0, 1 or 2) defining the value associated to the nodes on the edges of the polygons.
++	         in_nod: vector of flags (0 or 1), of size nods if interptype is set to 'node' or 'element and node',
++	            or of size 0 otherwise.
++	         in_elem: vector of flags (0 or 1), of size nel if interptype is set to 'element' or 'element and node', 
++	            or of size 0 otherwise.
++	
++	      Example: 
++	         in_nod=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','node',1)
++	         in_elements=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','element',0)
++	         return_values=ContourToMesh(md.elements,md.x,md.y,'Contour.exp','element and node',0); in_nodes=return_values[0]; in_elements=return_values[1];
++*/
++
++	//Dynamic allocations: {{{
++	//Retrieve elements and allocate on Module heap: 
++	
++	//input
++	
++	var dindex=new Int32Array(MatrixToList(indexin)); var nindex=dindex.length * dindex.BYTES_PER_ELEMENT;
++	var dindexPtr= Module._malloc(nindex); var indexHeap = new Uint8Array(Module.HEAPU8.buffer,dindexPtr,nindex);
++	indexHeap.set(new Uint8Array(dindex.buffer)); var index=indexHeap.byteOffset;
++
++	var dx=new Float64Array(xin); var nx=dx.length * dx.BYTES_PER_ELEMENT;
++	var dxPtr= Module._malloc(nx); var dxHeap = new Uint8Array(Module.HEAPU8.buffer,dxPtr,nx);
++	dxHeap.set(new Uint8Array(dx.buffer)); var x=dxHeap.byteOffset;
++	
++	var dy=new Float64Array(yin); var ny=dy.length * dy.BYTES_PER_ELEMENT;
++	var dyPtr= Module._malloc(nx); var dyHeap = new Uint8Array(Module.HEAPU8.buffer,dyPtr,ny);
++	dyHeap.set(new Uint8Array(dy.buffer)); var y=dyHeap.byteOffset;
++	
++	var dcontourx=new Float64Array(contour['x']); var nx=dcontourx.length * dcontourx.BYTES_PER_ELEMENT;
++	var dcontourxPtr= Module._malloc(nx); var contourxHeap = new Uint8Array(Module.HEAPU8.buffer,dcontourxPtr,nx);
++	contourxHeap.set(new Uint8Array(dcontourx.buffer)); var contourx=contourxHeap.byteOffset;
++
++	var dcontoury=new Float64Array(contour['y']); var ny=dcontoury.length * dcontoury.BYTES_PER_ELEMENT;
++	var dcontouryPtr = Module._malloc(ny); var contouryHeap = new Uint8Array(Module.HEAPU8.buffer,dcontouryPtr,ny);
++	contouryHeap.set(new Uint8Array(dcontoury.buffer)); var contoury=contouryHeap.byteOffset;
++	
++	nel=indexin.length;
++	nods=xin.length;
++	contour_nods=dcontourx.length;
++
++	//output
++	var in_nod;
++	var pin_nod= Module._malloc(4); 
++	var in_nel;
++	var pin_nel= Module._malloc(4); 
++	//}}}
++
++	//Declare ContourToMesh module: 
++	ContourToMeshModule = Module.cwrap('ContourToMeshModule','number',['number','number','number','number','number','number','number','string','number','number','number']);
++	
++	//Call ContourToMesh module: 
++	ContourToMeshModule(pin_nod,pin_nel,index,x,y,contourx,contoury,interptype,nel, nods, contour_nods, edgevalue);
++
++	/*Dynamic copying from heap: {{{*/
++	if(interptype == 'node'){
++		var in_nodptr = Module.getValue(pin_nod,'i32');
++		in_nod = Module.HEAPF64.slice(in_nodptr /8, in_nodptr/8 + nods);
++	}
++	else if (interptype == 'element'){
++		var in_nelptr = Module.getValue(pin_nel,'i32');
++		in_nel = Module.HEAPF64.slice(in_nelptr /8, in_nelptr/8 + nel);
++	}
++	else if (interptype == 'element and node'){
++		var in_nodptr = Module.getValue(pin_nod,'i32');
++		in_nod = Module.HEAPF64.slice(in_nodptr /8, in_nodptr/8 + nods);
++		var in_nelptr = Module.getValue(pin_nel,'i32');
++		in_nel = Module.HEAPF64.slice(in_nelptr /8, in_nelptr/8 + nel);
++	}
++	else throw Error('ContourToMeshModule error message: wrong interpolation type!');
++	/*}}}*/
++
++	/*Free ressources: */
++	Module._free(pin_nod); 
++	Module._free(pin_nel); 
++	
++	if(interptype == 'node'){
++		return in_nod;
++	}
++	else if (interptype == 'element'){
++		return in_nel;
++	}
++	else if (interptype == 'element and node'){
++		return [in_nod,in_nel];
++	}
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19838-19839.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19838-19839.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19838-19839.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19838)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19839)
+@@ -107,13 +107,14 @@
+ 			else{ //triangular elements
+ 			
+ 				vertices.itemSize = 3;
++				var cmap=options.getfieldvalue('cmap','rainbow');
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
+ 					vertices[vertices.length] = z[i];
+ 
+ 					//handle mesh/qinterest size mismatch
+-					rgbcolor = rgb(data[i], datamin, datamax);
++					rgbcolor = rgb(data[i], datamin, datamax,cmap);
+ 					colors[colors.length] = rgbcolor[0];
+ 					colors[colors.length] = rgbcolor[1];
+ 					colors[colors.length] = rgbcolor[2];
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19838)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19839)
+@@ -115,11 +115,11 @@
+ 
+ 	return modelMatrix;
+ } //}}}
+-function rgb(value, min, max) { //{{{
++function rgb(value, min, max,cmap) { //{{{
+ 	
+ 	var normalizedValue;
+ 					
+-	colorbar=colorbars["rainbow"];
++	colorbar=colorbars[cmap];
+ 
+ 	value = clamp(value, min, max);
+ 	if((max-min)!=0) normalizedValue = (value - min) / (max - min);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19839-19840.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19839-19840.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19839-19840.diff	(revision 20498)
@@ -0,0 +1,63 @@
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 19840)
+@@ -0,0 +1,58 @@
++function slider(initialvalue,functionvalue,slidername){
++	
++	//Convert arguments to options
++	var args = Array.prototype.slice.call(arguments);
++	var  options = new pairoptions(args.slice(3,args.length));
++
++	//Recover option values:
++	min=options.getfieldvalue('min',.6*initialvalue);
++	max=options.getfieldvalue('max',1.4*initialvalue);
++	sliderheight=options.getfieldvalue('sliderheight',32);
++	message=options.getfieldvalue('message','');
++	startmessage=options.getfieldvalue('startmessage',message);
++	middlemessage=options.getfieldvalue('middlemessage',message);
++	endmessage=options.getfieldvalue('endmessage',message);
++	color=options.getfieldvalue('color','#bbbbbb');
++
++	$('<div id="slider_'+slidername+'"></div>').appendTo('#sliders');
++	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#sliders');
++	var info=$('#info_'+slidername);
++	$('#slider_'+slidername).slider({
++		range:'min',
++		value:initialvalue,
++		min:min,
++		max:max,
++		slide:function(event,ui){
++			moveSlide(event,ui,info,middlemessage);
++		},
++		stop:function(event,ui){
++			stopSlide(event,ui,info,functionvalue,middlemessage,endmessage);
++		},
++	});
++	$('.ui-slider').css({
++		width:'90%',
++		height:sliderheight,
++		background:color,
++		margin:'8px 12px'
++	});
++	$('.ui-slider-handle').css({
++		background:color,
++		height:sliderheight*1.3
++	});
++	$('.ui-slider-range').css({
++		background:color
++	});
++
++}
++
++function moveSlide(event,ui,info,middlemessage){
++	var val=ui.value;
++	info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
++}
++
++function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage){
++	var val=ui.value;
++	info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
++	functionvalue(val);
++	info.text(endmessage[0]+val.toPrecision(3).toString()+endmessage[1]);
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19840-19841.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19840-19841.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19840-19841.diff	(revision 20498)
@@ -0,0 +1,614 @@
+Index: ../trunk-jpl/src/m/miscellaneous/colorbars.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/colorbars.js	(revision 19840)
++++ ../trunk-jpl/src/m/miscellaneous/colorbars.js	(revision 19841)
+@@ -1,321 +1,289 @@
+ var colorbars={};
+-colorbars["rainbow"]=[[ 0,0,0.5625],
+-                  [ 0,0,0.625],
+-                  [ 0,0,0.6875],
+-                  [ 0,0,0.75],
+-                  [ 0,0,0.8125],
+-                  [ 0,0,0.875],
+-                  [ 0,0,0.9375],
+-                  [ 0,0,1],
+-                  [ 0,0.0625,1],
+-                  [ 0,0.125,1],
+-                  [ 0,0.1875,1],
+-                  [ 0,0.25,1],
+-                  [ 0,0.3125,1],
+-                  [ 0,0.375,1],
+-                  [ 0,0.4375,1],
+-                  [ 0,0.5,1],
+-                  [ 0,0.5625,1],
+-                  [ 0,0.625,1],
+-                  [ 0,0.6875,1],
+-                  [ 0,0.75,1],
+-                  [ 0,0.8125,1],
+-                  [ 0,0.875,1],
+-                  [ 0,0.9375,1],
+-                  [ 0,1,1],
+-                  [ 0.0625,1,0.9375],
+-                  [ 0.125,1,0.875],
+-                  [ 0.1875,1,0.8125],
+-                  [ 0.25,1,0.75],
+-                  [ 0.3125,1,0.6875],
+-                  [ 0.375,1,0.625],
+-                  [ 0.4375,1,0.5625],
+-                  [ 0.5,1,0.5],
+-                  [ 0.5625,1,0.4375],
+-                  [ 0.625,1,0.375],
+-                  [ 0.6875,1,0.3125],
+-                  [ 0.75,1,0.25],
+-                  [ 0.8125,1,0.1875],
+-                  [ 0.875,1,0.125],
+-                  [ 0.9375,1,0.0625],
+-                  [ 1,1,0],
+-                  [ 1,0.9375,0],
+-                  [ 1,0.875,0],
+-                  [ 1,0.8125,0],
+-                  [ 1,0.75,0],
+-                  [ 1,0.6875,0],
+-                  [ 1,0.625,0],
+-                  [ 1,0.5625,0],
+-                  [ 1,0.5,0],
+-                  [ 1,0.4375,0],
+-                  [ 1,0.375,0],
+-                  [ 1,0.3125,0],
+-                  [ 1,0.25,0],
+-                  [ 1,0.1875,0],
+-                  [ 1,0.125,0],
+-                  [ 1,0.0625,0],
+-                  [ 1,0,0],
+-                  [ 0.9375,0,0],
+-                  [ 0.875,0,0],
+-                  [ 0.8125,0,0],
+-                  [ 0.75,0,0],
+-                  [ 0.6875,0,0],
+-                  [ 0.625,0,0],
+-                  [ 0.5625,0,0],
+-                  [ 0.5,0,0]];
+-colorbars["hot"]=[[ 0.0416667,0,0],
+-                  [ 0.0833333,0,0],
+-                  [ 0.125,0,0],
+-                  [ 0.166667,0,0],
+-                  [ 0.208333,0,0],
+-                  [ 0.25,0,0],
+-                  [ 0.291667,0,0],
+-                  [ 0.333333,0,0],
+-                  [ 0.375,0,0],
+-                  [ 0.416667,0,0],
+-                  [ 0.458333,0,0],
+-                  [ 0.5,0,0],
+-                  [ 0.541667,0,0],
+-                  [ 0.583333,0,0],
+-                  [ 0.625,0,0],
+-                  [ 0.666667,0,0],
+-                  [ 0.708333,0,0],
+-                  [ 0.75,0,0],
+-                  [ 0.791667,0,0],
+-                  [ 0.833333,0,0],
+-                  [ 0.875,0,0],
+-                  [ 0.916667,0,0],
+-                  [ 0.958333,0,0],
+-                  [ 1,0,0],
+-                  [ 1,0.0416667,0],
+-                  [ 1,0.0833333,0],
+-                  [ 1,0.125,0],
+-                  [ 1,0.166667,0],
+-                  [ 1,0.208333,0],
+-                  [ 1,0.25,0],
+-                  [ 1,0.291667,0],
+-                  [ 1,0.333333,0],
+-                  [ 1,0.375,0],
+-                  [ 1,0.416667,0],
+-                  [ 1,0.458333,0],
+-                  [ 1,0.5,0],
+-                  [ 1,0.541667,0],
+-                  [ 1,0.583333,0],
+-                  [ 1,0.625,0],
+-                  [ 1,0.666667,0],
+-                  [ 1,0.708333,0],
+-                  [ 1,0.75,0],
+-                  [ 1,0.791667,0],
+-                  [ 1,0.833333,0],
+-                  [ 1,0.875,0],
+-                  [ 1,0.916667,0],
+-                  [ 1,0.958333,0],
+-                  [ 1,1,0],
+-                  [ 1,1,0.0625],
+-                  [ 1,1,0.125],
+-                  [ 1,1,0.1875],
+-                  [ 1,1,0.25],
+-                  [ 1,1,0.3125],
+-                  [ 1,1,0.375],
+-                  [ 1,1,0.4375],
+-                  [ 1,1,0.5],
+-                  [ 1,1,0.5625],
+-                  [ 1,1,0.625],
+-                  [ 1,1,0.6875],
+-                  [ 1,1,0.75],
+-                  [ 1,1,0.8125],
+-                  [ 1,1,0.875],
+-                  [ 1,1,0.9375],
+-                  [ 1,1,1]];
+-colorbars["cool"]=[[ 0,1,1],
+-                  [ 0.015873,0.984127,1],
+-                  [ 0.031746,0.968254,1],
+-                  [ 0.047619,0.952381,1],
+-                  [ 0.0634921,0.936508,1],
+-                  [ 0.0793651,0.920635,1],
+-                  [ 0.0952381,0.904762,1],
+-                  [ 0.111111,0.888889,1],
+-                  [ 0.126984,0.873016,1],
+-                  [ 0.142857,0.857143,1],
+-                  [ 0.15873,0.84127,1],
+-                  [ 0.174603,0.825397,1],
+-                  [ 0.190476,0.809524,1],
+-                  [ 0.206349,0.793651,1],
+-                  [ 0.222222,0.777778,1],
+-                  [ 0.238095,0.761905,1],
+-                  [ 0.253968,0.746032,1],
+-                  [ 0.269841,0.730159,1],
+-                  [ 0.285714,0.714286,1],
+-                  [ 0.301587,0.698413,1],
+-                  [ 0.31746,0.68254,1],
+-                  [ 0.333333,0.666667,1],
+-                  [ 0.349206,0.650794,1],
+-                  [ 0.365079,0.634921,1],
+-                  [ 0.380952,0.619048,1],
+-                  [ 0.396825,0.603175,1],
+-                  [ 0.412698,0.587302,1],
+-                  [ 0.428571,0.571429,1],
+-                  [ 0.444444,0.555556,1],
+-                  [ 0.460317,0.539683,1],
+-                  [ 0.47619,0.52381,1],
+-                  [ 0.492063,0.507937,1],
+-                  [ 0.507937,0.492063,1],
+-                  [ 0.52381,0.47619,1],
+-                  [ 0.539683,0.460317,1],
+-                  [ 0.555556,0.444444,1],
+-                  [ 0.571429,0.428571,1],
+-                  [ 0.587302,0.412698,1],
+-                  [ 0.603175,0.396825,1],
+-                  [ 0.619048,0.380952,1],
+-                  [ 0.634921,0.365079,1],
+-                  [ 0.650794,0.349206,1],
+-                  [ 0.666667,0.333333,1],
+-                  [ 0.68254,0.31746,1],
+-                  [ 0.698413,0.301587,1],
+-                  [ 0.714286,0.285714,1],
+-                  [ 0.730159,0.269841,1],
+-                  [ 0.746032,0.253968,1],
+-                  [ 0.761905,0.238095,1],
+-                  [ 0.777778,0.222222,1],
+-                  [ 0.793651,0.206349,1],
+-                  [ 0.809524,0.190476,1],
+-                  [ 0.825397,0.174603,1],
+-                  [ 0.84127,0.15873,1],
+-                  [ 0.857143,0.142857,1],
+-                  [ 0.873016,0.126984,1],
+-                  [ 0.888889,0.111111,1],
+-                  [ 0.904762,0.0952381,1],
+-                  [ 0.920635,0.0793651,1],
+-                  [ 0.936508,0.0634921,1],
+-                  [ 0.952381,0.047619,1],
+-                  [ 0.968254,0.031746,1],
+-                  [ 0.984127,0.015873,1],
+-                  [ 1,0,1]];
+-colorbars["bone"]=[[ 0,0,0.00520833],
+-                  [ 0.0138889,0.0138889,0.0243056],
+-                  [ 0.0277778,0.0277778,0.0434028],
+-                  [ 0.0416667,0.0416667,0.0625],
+-                  [ 0.0555556,0.0555556,0.0815972],
+-                  [ 0.0694444,0.0694444,0.100694],
+-                  [ 0.0833333,0.0833333,0.119792],
+-                  [ 0.0972222,0.0972222,0.138889],
+-                  [ 0.111111,0.111111,0.157986],
+-                  [ 0.125,0.125,0.177083],
+-                  [ 0.138889,0.138889,0.196181],
+-                  [ 0.152778,0.152778,0.215278],
+-                  [ 0.166667,0.166667,0.234375],
+-                  [ 0.180556,0.180556,0.253472],
+-                  [ 0.194444,0.194444,0.272569],
+-                  [ 0.208333,0.208333,0.291667],
+-                  [ 0.222222,0.222222,0.310764],
+-                  [ 0.236111,0.236111,0.329861],
+-                  [ 0.25,0.25,0.348958],
+-                  [ 0.263889,0.263889,0.368056],
+-                  [ 0.277778,0.277778,0.387153],
+-                  [ 0.291667,0.291667,0.40625],
+-                  [ 0.305556,0.305556,0.425347],
+-                  [ 0.319444,0.319444,0.444444],
+-                  [ 0.333333,0.338542,0.458333],
+-                  [ 0.347222,0.357639,0.472222],
+-                  [ 0.361111,0.376736,0.486111],
+-                  [ 0.375,0.395833,0.5],
+-                  [ 0.388889,0.414931,0.513889],
+-                  [ 0.402778,0.434028,0.527778],
+-                  [ 0.416667,0.453125,0.541667],
+-                  [ 0.430556,0.472222,0.555556],
+-                  [ 0.444444,0.491319,0.569444],
+-                  [ 0.458333,0.510417,0.583333],
+-                  [ 0.472222,0.529514,0.597222],
+-                  [ 0.486111,0.548611,0.611111],
+-                  [ 0.5,0.567708,0.625],
+-                  [ 0.513889,0.586806,0.638889],
+-                  [ 0.527778,0.605903,0.652778],
+-                  [ 0.541667,0.625,0.666667],
+-                  [ 0.555556,0.644097,0.680556],
+-                  [ 0.569444,0.663194,0.694444],
+-                  [ 0.583333,0.682292,0.708333],
+-                  [ 0.597222,0.701389,0.722222],
+-                  [ 0.611111,0.720486,0.736111],
+-                  [ 0.625,0.739583,0.75],
+-                  [ 0.638889,0.758681,0.763889],
+-                  [ 0.652778,0.777778,0.777778],
+-                  [ 0.674479,0.791667,0.791667],
+-                  [ 0.696181,0.805556,0.805556],
+-                  [ 0.717882,0.819444,0.819444],
+-                  [ 0.739583,0.833333,0.833333],
+-                  [ 0.761285,0.847222,0.847222],
+-                  [ 0.782986,0.861111,0.861111],
+-                  [ 0.804688,0.875,0.875],
+-                  [ 0.826389,0.888889,0.888889],
+-                  [ 0.84809,0.902778,0.902778],
+-                  [ 0.869792,0.916667,0.916667],
+-                  [ 0.891493,0.930556,0.930556],
+-                  [ 0.913194,0.944444,0.944444],
+-                  [ 0.934896,0.958333,0.958333],
+-                  [ 0.956597,0.972222,0.972222],
+-                  [ 0.978299,0.986111,0.986111],
+-                  [ 1,1,1]];
+-colorbars["copper"]=[[ 0,0,0],
+-                  [ 0.0198413,0.0124,0.00789683],
+-                  [ 0.0396825,0.0248,0.0157937],
+-                  [ 0.0595238,0.0372,0.0236905],
+-                  [ 0.0793651,0.0496,0.0315873],
+-                  [ 0.0992063,0.062,0.0394841],
+-                  [ 0.119048,0.0744,0.047381],
+-                  [ 0.138889,0.0868,0.0552778],
+-                  [ 0.15873,0.0992,0.0631746],
+-                  [ 0.178571,0.1116,0.0710714],
+-                  [ 0.198413,0.124,0.0789683],
+-                  [ 0.218254,0.1364,0.0868651],
+-                  [ 0.238095,0.1488,0.0947619],
+-                  [ 0.257937,0.1612,0.102659],
+-                  [ 0.277778,0.1736,0.110556],
+-                  [ 0.297619,0.186,0.118452],
+-                  [ 0.31746,0.1984,0.126349],
+-                  [ 0.337302,0.2108,0.134246],
+-                  [ 0.357143,0.2232,0.142143],
+-                  [ 0.376984,0.2356,0.15004],
+-                  [ 0.396825,0.248,0.157937],
+-                  [ 0.416667,0.2604,0.165833],
+-                  [ 0.436508,0.2728,0.17373],
+-                  [ 0.456349,0.2852,0.181627],
+-                  [ 0.47619,0.2976,0.189524],
+-                  [ 0.496032,0.31,0.197421],
+-                  [ 0.515873,0.3224,0.205317],
+-                  [ 0.535714,0.3348,0.213214],
+-                  [ 0.555556,0.3472,0.221111],
+-                  [ 0.575397,0.3596,0.229008],
+-                  [ 0.595238,0.372,0.236905],
+-                  [ 0.615079,0.3844,0.244802],
+-                  [ 0.634921,0.3968,0.252698],
+-                  [ 0.654762,0.4092,0.260595],
+-                  [ 0.674603,0.4216,0.268492],
+-                  [ 0.694444,0.434,0.276389],
+-                  [ 0.714286,0.4464,0.284286],
+-                  [ 0.734127,0.4588,0.292183],
+-                  [ 0.753968,0.4712,0.300079],
+-                  [ 0.77381,0.4836,0.307976],
+-                  [ 0.793651,0.496,0.315873],
+-                  [ 0.813492,0.5084,0.32377],
+-                  [ 0.833333,0.5208,0.331667],
+-                  [ 0.853175,0.5332,0.339563],
+-                  [ 0.873016,0.5456,0.34746],
+-                  [ 0.892857,0.558,0.355357],
+-                  [ 0.912698,0.5704,0.363254],
+-                  [ 0.93254,0.5828,0.371151],
+-                  [ 0.952381,0.5952,0.379048],
+-                  [ 0.972222,0.6076,0.386944],
+-                  [ 0.992063,0.62,0.394841],
+-                  [ 1,0.6324,0.402738],
+-                  [ 1,0.6448,0.410635],
+-                  [ 1,0.6572,0.418532],
+-                  [ 1,0.6696,0.426429],
+-                  [ 1,0.682,0.434325],
+-                  [ 1,0.6944,0.442222],
+-                  [ 1,0.7068,0.450119],
+-                  [ 1,0.7192,0.458016],
+-                  [ 1,0.7316,0.465913],
+-                  [ 1,0.744,0.47381],
+-                  [ 1,0.7564,0.481706],
+-                  [ 1,0.7688,0.489603],
+-                  [ 1,0.7812,0.4975]];
++colorbars["jet"]=[[0.000000,0.000000,0.750000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.250000,1.000000],
++[0.000000,0.500000,1.000000],
++[0.000000,0.750000,1.000000],
++[0.000000,1.000000,1.000000],
++[0.250000,1.000000,0.750000],
++[0.500000,1.000000,0.500000],
++[0.750000,1.000000,0.250000],
++[1.000000,1.000000,0.000000],
++[1.000000,0.750000,0.000000],
++[1.000000,0.500000,0.000000],
++[1.000000,0.250000,0.000000],
++[1.000000,0.000000,0.000000],
++[0.750000,0.000000,0.000000],
++[0.500000,0.000000,0.000000]];
++colorbars["hsv"]=[[1.000000,0.000000,0.000000],
++[1.000000,0.375000,0.000000],
++[1.000000,0.750000,0.000000],
++[0.875000,1.000000,0.000000],
++[0.500000,1.000000,0.000000],
++[0.125000,1.000000,0.000000],
++[0.000000,1.000000,0.250000],
++[0.000000,1.000000,0.625000],
++[0.000000,1.000000,1.000000],
++[0.000000,0.625000,1.000000],
++[0.000000,0.250000,1.000000],
++[0.125000,0.000000,1.000000],
++[0.500000,0.000000,1.000000],
++[0.875000,0.000000,1.000000],
++[1.000000,0.000000,0.750000],
++[1.000000,0.000000,0.375000]];
++colorbars["hot"]=[[0.166667,0.000000,0.000000],
++[0.333333,0.000000,0.000000],
++[0.500000,0.000000,0.000000],
++[0.666667,0.000000,0.000000],
++[0.833333,0.000000,0.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,0.166667,0.000000],
++[1.000000,0.333333,0.000000],
++[1.000000,0.500000,0.000000],
++[1.000000,0.666667,0.000000],
++[1.000000,0.833333,0.000000],
++[1.000000,1.000000,0.000000],
++[1.000000,1.000000,0.250000],
++[1.000000,1.000000,0.500000],
++[1.000000,1.000000,0.750000],
++[1.000000,1.000000,1.000000]];
++colorbars["gray"]=[[0.000000,0.000000,0.000000],
++[0.066667,0.066667,0.066667],
++[0.133333,0.133333,0.133333],
++[0.200000,0.200000,0.200000],
++[0.266667,0.266667,0.266667],
++[0.333333,0.333333,0.333333],
++[0.400000,0.400000,0.400000],
++[0.466667,0.466667,0.466667],
++[0.533333,0.533333,0.533333],
++[0.600000,0.600000,0.600000],
++[0.666667,0.666667,0.666667],
++[0.733333,0.733333,0.733333],
++[0.800000,0.800000,0.800000],
++[0.866667,0.866667,0.866667],
++[0.933333,0.933333,0.933333],
++[1.000000,1.000000,1.000000]];
++colorbars["bone"]=[[0.000000,0.000000,0.020833],
++[0.058333,0.058333,0.100000],
++[0.116667,0.116667,0.179167],
++[0.175000,0.175000,0.258333],
++[0.233333,0.233333,0.337500],
++[0.291667,0.291667,0.416667],
++[0.350000,0.370833,0.475000],
++[0.408333,0.450000,0.533333],
++[0.466667,0.529167,0.591667],
++[0.525000,0.608333,0.650000],
++[0.583333,0.687500,0.708333],
++[0.641667,0.766667,0.766667],
++[0.731250,0.825000,0.825000],
++[0.820833,0.883333,0.883333],
++[0.910417,0.941667,0.941667],
++[1.000000,1.000000,1.000000]];
++colorbars["copper"]=[[0.000000,0.000000,0.000000],
++[0.083333,0.052080,0.033167],
++[0.166667,0.104160,0.066333],
++[0.250000,0.156240,0.099500],
++[0.333333,0.208320,0.132667],
++[0.416667,0.260400,0.165833],
++[0.500000,0.312480,0.199000],
++[0.583333,0.364560,0.232167],
++[0.666667,0.416640,0.265333],
++[0.750000,0.468720,0.298500],
++[0.833333,0.520800,0.331667],
++[0.916667,0.572880,0.364833],
++[1.000000,0.624960,0.398000],
++[1.000000,0.677040,0.431167],
++[1.000000,0.729120,0.464333],
++[1.000000,0.781200,0.497500]];
++colorbars["pink"]=[[0.235702,0.000000,0.000000],
++[0.394405,0.210819,0.210819],
++[0.505525,0.298142,0.298142],
++[0.596285,0.365148,0.365148],
++[0.674949,0.421637,0.421637],
++[0.745356,0.471405,0.471405],
++[0.774597,0.567646,0.516398],
++[0.802773,0.649786,0.557773],
++[0.829993,0.722649,0.596285],
++[0.856349,0.788811,0.632456],
++[0.881917,0.849837,0.666667],
++[0.906765,0.906765,0.699206],
++[0.930949,0.930949,0.785281],
++[0.954521,0.954521,0.862812],
++[0.977525,0.977525,0.933928],
++[1.000000,1.000000,1.000000]];
++colorbars["white"]=[[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000],
++[1.000000,1.000000,1.000000]];
++colorbars["flag"]=[[1.000000,0.000000,0.000000],
++[1.000000,1.000000,1.000000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,1.000000,1.000000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,1.000000,1.000000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,1.000000,1.000000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000]];
++colorbars["lines"]=[[0.000000,0.000000,1.000000],
++[0.000000,0.500000,0.000000],
++[1.000000,0.000000,0.000000],
++[0.000000,0.750000,0.750000],
++[0.750000,0.000000,0.750000],
++[0.750000,0.750000,0.000000],
++[0.250000,0.250000,0.250000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.500000,0.000000],
++[1.000000,0.000000,0.000000],
++[0.000000,0.750000,0.750000],
++[0.750000,0.000000,0.750000],
++[0.750000,0.750000,0.000000],
++[0.250000,0.250000,0.250000],
++[0.000000,0.000000,1.000000],
++[0.000000,0.500000,0.000000]];
++colorbars["colorcube"]=[[1.000000,1.000000,0.000000],
++[0.000000,1.000000,1.000000],
++[1.000000,0.000000,1.000000],
++[0.333333,0.000000,0.000000],
++[0.666667,0.000000,0.000000],
++[1.000000,0.000000,0.000000],
++[0.000000,0.333333,0.000000],
++[0.000000,0.666667,0.000000],
++[0.000000,1.000000,0.000000],
++[0.000000,0.000000,0.333333],
++[0.000000,0.000000,0.666667],
++[0.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000],
++[0.333333,0.333333,0.333333],
++[0.666667,0.666667,0.666667],
++[1.000000,1.000000,1.000000]];
++colorbars["vga"]=[[1.000000,1.000000,1.000000],
++[0.750000,0.750000,0.750000],
++[1.000000,0.000000,0.000000],
++[1.000000,1.000000,0.000000],
++[0.000000,1.000000,0.000000],
++[0.000000,1.000000,1.000000],
++[0.000000,0.000000,1.000000],
++[1.000000,0.000000,1.000000],
++[0.000000,0.000000,0.000000],
++[0.500000,0.500000,0.500000],
++[0.500000,0.000000,0.000000],
++[0.500000,0.500000,0.000000],
++[0.000000,0.500000,0.000000],
++[0.000000,0.500000,0.500000],
++[0.000000,0.000000,0.500000],
++[0.500000,0.000000,0.500000]];
++colorbars["prism"]=[[1.000000,0.000000,0.000000],
++[1.000000,0.500000,0.000000],
++[1.000000,1.000000,0.000000],
++[0.000000,1.000000,0.000000],
++[0.000000,0.000000,1.000000],
++[0.666667,0.000000,1.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,0.500000,0.000000],
++[1.000000,1.000000,0.000000],
++[0.000000,1.000000,0.000000],
++[0.000000,0.000000,1.000000],
++[0.666667,0.000000,1.000000],
++[1.000000,0.000000,0.000000],
++[1.000000,0.500000,0.000000],
++[1.000000,1.000000,0.000000],
++[0.000000,1.000000,0.000000]];
++colorbars["cool"]=[[0.000000,1.000000,1.000000],
++[0.066667,0.933333,1.000000],
++[0.133333,0.866667,1.000000],
++[0.200000,0.800000,1.000000],
++[0.266667,0.733333,1.000000],
++[0.333333,0.666667,1.000000],
++[0.400000,0.600000,1.000000],
++[0.466667,0.533333,1.000000],
++[0.533333,0.466667,1.000000],
++[0.600000,0.400000,1.000000],
++[0.666667,0.333333,1.000000],
++[0.733333,0.266667,1.000000],
++[0.800000,0.200000,1.000000],
++[0.866667,0.133333,1.000000],
++[0.933333,0.066667,1.000000],
++[1.000000,0.000000,1.000000]];
++colorbars["autumn"]=[[1.000000,0.000000,0.000000],
++[1.000000,0.066667,0.000000],
++[1.000000,0.133333,0.000000],
++[1.000000,0.200000,0.000000],
++[1.000000,0.266667,0.000000],
++[1.000000,0.333333,0.000000],
++[1.000000,0.400000,0.000000],
++[1.000000,0.466667,0.000000],
++[1.000000,0.533333,0.000000],
++[1.000000,0.600000,0.000000],
++[1.000000,0.666667,0.000000],
++[1.000000,0.733333,0.000000],
++[1.000000,0.800000,0.000000],
++[1.000000,0.866667,0.000000],
++[1.000000,0.933333,0.000000],
++[1.000000,1.000000,0.000000]];
++colorbars["spring"]=[[1.000000,0.000000,1.000000],
++[1.000000,0.066667,0.933333],
++[1.000000,0.133333,0.866667],
++[1.000000,0.200000,0.800000],
++[1.000000,0.266667,0.733333],
++[1.000000,0.333333,0.666667],
++[1.000000,0.400000,0.600000],
++[1.000000,0.466667,0.533333],
++[1.000000,0.533333,0.466667],
++[1.000000,0.600000,0.400000],
++[1.000000,0.666667,0.333333],
++[1.000000,0.733333,0.266667],
++[1.000000,0.800000,0.200000],
++[1.000000,0.866667,0.133333],
++[1.000000,0.933333,0.066667],
++[1.000000,1.000000,0.000000]];
++colorbars["winter"]=[[0.000000,0.000000,1.000000],
++[0.000000,0.066667,0.966667],
++[0.000000,0.133333,0.933333],
++[0.000000,0.200000,0.900000],
++[0.000000,0.266667,0.866667],
++[0.000000,0.333333,0.833333],
++[0.000000,0.400000,0.800000],
++[0.000000,0.466667,0.766667],
++[0.000000,0.533333,0.733333],
++[0.000000,0.600000,0.700000],
++[0.000000,0.666667,0.666667],
++[0.000000,0.733333,0.633333],
++[0.000000,0.800000,0.600000],
++[0.000000,0.866667,0.566667],
++[0.000000,0.933333,0.533333],
++[0.000000,1.000000,0.500000]];
++colorbars["summer"]=[[0.000000,0.500000,0.400000],
++[0.066667,0.533333,0.400000],
++[0.133333,0.566667,0.400000],
++[0.200000,0.600000,0.400000],
++[0.266667,0.633333,0.400000],
++[0.333333,0.666667,0.400000],
++[0.400000,0.700000,0.400000],
++[0.466667,0.733333,0.400000],
++[0.533333,0.766667,0.400000],
++[0.600000,0.800000,0.400000],
++[0.666667,0.833333,0.400000],
++[0.733333,0.866667,0.400000],
++[0.800000,0.900000,0.400000],
++[0.866667,0.933333,0.400000],
++[0.933333,0.966667,0.400000],
++[1.000000,1.000000,0.400000]];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19841-19842.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19841-19842.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19841-19842.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19841)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19842)
+@@ -82,6 +82,7 @@
+ <script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js"></script>
++<script type="text/javascript" src="../../src/wrappers/ContourToMesh/ContourToMesh.js"></script>
+ <script type="text/javascript" src="../../src/wrappers/Issm/issm.js"></script>
+ <script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
Index: /issm/oecreview/Archive/19101-20495/ISSM-19842-19843.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19842-19843.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19842-19843.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19842)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19843)
+@@ -141,6 +141,7 @@
+ 				${ISSM_DIR}/src/m/miscellaneous/rgbcolor.js \
+ 				${ISSM_DIR}/src/m/parameterization/setflowequation.js \
+ 				${ISSM_DIR}/src/m/parameterization/setmask.js \
++				${ISSM_DIR}/src/m/plot/slider.js \
+ 				${ISSM_DIR}/src/m/plot/applyoptions.js \
+ 				${ISSM_DIR}/src/m/plot/checkplotoptions.js \
+ 				${ISSM_DIR}/src/m/plot/plot_manager.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19843-19844.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19843-19844.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19843-19844.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19843)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19844)
+@@ -16,7 +16,9 @@
+ 	//standard plot: initialize open Gl for each canvas: 
+ 	var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
+ 	canvas.css({'height':String(options.getfieldvalue('canvassize',480)+'px')});
+-	canvas.appendTo('body');
++	if ($('#'+options.getfieldvalue('canvasid')).length == 0) {
++		canvas.appendTo('body');
++	}
+ 	canvas=document.getElementById(options.getfieldvalue('canvasid'));
+ 
+ 	// Initialize the GL context: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19844-19845.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19844-19845.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19844-19845.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19844)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19845)
+@@ -107,7 +107,8 @@
+ 			else{ //triangular elements
+ 			
+ 				vertices.itemSize = 3;
+-				var cmap=options.getfieldvalue('cmap','rainbow');
++				var cmap=options.getfieldvalue('cmap','jet');
++				console.log(z[0]);
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19845-19846.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19845-19846.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19845-19846.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19845)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19846)
+@@ -143,10 +143,16 @@
+ 			var color;
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+ 
+-			var ccontext,ccanvas;
+-			ccanvas=document.getElementById(options.getfieldvalue('canvasid')+'_colorbar');
++			var ccontext,ccanvas,ccanvasid;
++			if (options.getfieldvalue('colorbarcanvasid')){
++				ccanvasid=options.getfieldvalue('colorbarcanvasid');
++			}
++			else{
++				ccanvasid=options.getfieldvalue('canvasid')+'_colorbar';
++			}
++			ccanvas=document.getElementById(ccanvasid);
+ 			if(ccanvas==null){
+-				ccanvas = $('<canvas id="'+options.getfieldvalue('canvasid')+'_colorbar" width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++				ccanvas = $('<canvas id="'+ccanvasid+' width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+ 				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 			}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19846-19847.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19846-19847.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19846-19847.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19846)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19847)
+@@ -144,12 +144,7 @@
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+ 
+ 			var ccontext,ccanvas,ccanvasid;
+-			if (options.getfieldvalue('colorbarcanvasid')){
+-				ccanvasid=options.getfieldvalue('colorbarcanvasid');
+-			}
+-			else{
+-				ccanvasid=options.getfieldvalue('canvasid')+'_colorbar';
+-			}
++			ccanvasid=options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 			ccanvas=document.getElementById(ccanvasid);
+ 			if(ccanvas==null){
+ 				ccanvas = $('<canvas id="'+ccanvasid+' width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+@@ -157,6 +152,10 @@
+ 				ccontext = ccanvas[0].getContext('2d');
+ 			}
+ 			else{
++				ccanvas = $('#'+ccanvasid);
++				ccanvas.height(cwidth*4);
++				ccanvas.width(cheight+cheightoffset);	
++				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas.getContext('2d');
+ 				/*erase existing colorbar:*/
+ 				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19847-19848.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19847-19848.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19847-19848.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19847)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19848)
+@@ -156,7 +156,7 @@
+ 				ccanvas.height(cwidth*4);
+ 				ccanvas.width(cheight+cheightoffset);	
+ 				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+-				ccontext = ccanvas.getContext('2d');
++				ccontext = ccanvas[0].getContext('2d');
+ 				/*erase existing colorbar:*/
+ 				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
+ 				ccontext.beginPath();
Index: /issm/oecreview/Archive/19101-20495/ISSM-19848-19849.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19848-19849.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19848-19849.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19848)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19849)
+@@ -142,20 +142,21 @@
+ 			var cdivisions = cheight/4;
+ 			var color;
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+-
+ 			var ccontext,ccanvas,ccanvasid;
+ 			ccanvasid=options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 			ccanvas=document.getElementById(ccanvasid);
+ 			if(ccanvas==null){
+ 				ccanvas = $('<canvas id="'+ccanvasid+' width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++				ccanvas.css({'display':'inline-block','position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 			}
+ 			else{
+ 				ccanvas = $('#'+ccanvasid);
+-				ccanvas.height(cwidth*4);
+-				ccanvas.width(cheight+cheightoffset);	
+-				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++				if (options.exist('colorbarcanvasid')){
++					cheight=ccanvas.height();
++					cwidth=ccanvas.width();	
++				}
++				ccanvas.css({'display':'inline-block','position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 				/*erase existing colorbar:*/
+ 				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19849-19850.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19849-19850.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19849-19850.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19849)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19850)
+@@ -146,17 +146,20 @@
+ 			ccanvasid=options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 			ccanvas=document.getElementById(ccanvasid);
+ 			if(ccanvas==null){
+-				ccanvas = $('<canvas id="'+ccanvasid+' width="'+String(cwidth*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-				ccanvas.css({'display':'inline-block','position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++				ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 			}
+ 			else{
+ 				ccanvas = $('#'+ccanvasid);
+ 				if (options.exist('colorbarcanvasid')){
++					//store actual colobar size
+ 					cheight=ccanvas.height();
+-					cwidth=ccanvas.width();	
++					cwidth=ccanvas.width();
++					//get html object instead of jqurey object to modify height/width to accomodate labels
++					document.getElementById(ccanvasid).width=ccanvas.width()+cheightoffset*6;
++					document.getElementById(ccanvasid).width=ccanvas.height()+cheightoffset;
+ 				}
+-				ccanvas.css({'display':'inline-block','position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 				/*erase existing colorbar:*/
+ 				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19850-19851.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19850-19851.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19850-19851.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 19850)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 19851)
+@@ -56,8 +56,8 @@
+     # }}}
+     def marshall(self,md,fid):    # {{{
+ 	WriteData(fid,'enum',FrictionLawEnum(),'data',1,'format','Integer')
+-	WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1)
+-	WriteData(fid,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1)
+-	WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2)
+-	WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2)
++	WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'enum',FrictionCoefficientEnum())
++	WriteData(fid,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1,'enum',FrictionCoefficientcoulombEnum())
++	WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2,'enum',FrictionPEnum())
++	WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2,'enum',FrictionQEnum())
+     # }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19851-19852.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19851-19852.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19851-19852.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19851)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19852)
+@@ -143,23 +143,31 @@
+ 			var color;
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+ 			var ccontext,ccanvas,ccanvasid;
+-			ccanvasid=options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+-			ccanvas=document.getElementById(ccanvasid);
+-			if(ccanvas==null){
++			ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
++			ccanvashtml = document.getElementById(ccanvasid);
++			if(ccanvashtml==null){
+ 				ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+ 				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+ 			}
+ 			else{
+ 				ccanvas = $('#'+ccanvasid);
+-				if (options.exist('colorbarcanvasid')){
++				if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
+ 					//store actual colobar size
+-					cheight=ccanvas.height();
+-					cwidth=ccanvas.width();
++					cwidth = ccanvas.width();
++					cheight = ccanvas.height();
+ 					//get html object instead of jqurey object to modify height/width to accomodate labels
+-					document.getElementById(ccanvasid).width=ccanvas.width()+cheightoffset*6;
+-					document.getElementById(ccanvasid).width=ccanvas.height()+cheightoffset;
++					ccanvashtml.width = ccanvas.width()+cheightoffset*6;
++					ccanvas.css({'display':'inline-block'});
++					ccanvashtml.height = canvassize;
++					ccanvashtml.cwidth = cwidth;
++					ccanvashtml.cheight = cheight;
++					ccanvashtml.init = true;
+ 				}
++				else {
++					cwidth = ccanvashtml.cwidth;
++					cheight = ccanvashtml.cheight;
++				}
+ 				ccontext = ccanvas[0].getContext('2d');
+ 				/*erase existing colorbar:*/
+ 				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19852-19853.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19852-19853.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19852-19853.diff	(revision 20498)
@@ -0,0 +1,438 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19852)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19853)
+@@ -1,4 +1,4 @@
+-function applyoptions(md,data,options){
++function applyoptions(md,data,options,canvas,gl,node){
+ 	//APPLYOPTIONS - apply the options to current plot
+ 	//
+ 	//   Usage:
+@@ -142,10 +142,10 @@
+ 			var cdivisions = cheight/4;
+ 			var color;
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+-			var ccontext,ccanvas,ccanvasid;
++			var ccontext,ccanvas,ccanvasid,ccanvashtml;
+ 			ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 			ccanvashtml = document.getElementById(ccanvasid);
+-			if(ccanvashtml==null){
++			if (ccanvashtml==null) {
+ 				ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+ 				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 				ccontext = ccanvas[0].getContext('2d');
+@@ -158,8 +158,7 @@
+ 					cheight = ccanvas.height();
+ 					//get html object instead of jqurey object to modify height/width to accomodate labels
+ 					ccanvashtml.width = ccanvas.width()+cheightoffset*6;
+-					ccanvas.css({'display':'inline-block'});
+-					ccanvashtml.height = canvassize;
++					ccanvashtml.height = cheight+cheightoffset;
+ 					ccanvashtml.cwidth = cwidth;
+ 					ccanvashtml.cheight = cheight;
+ 					ccanvashtml.init = true;
+@@ -174,13 +173,34 @@
+ 				ccontext.beginPath();
+ 			}
+ 			var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
++			var tgradient = ccontext.createLinearGradient(0,0,0,256);
++			var cmap = options.getfieldvalue('cmap','jet');
++			var colorbar = colorbars[cmap];
+ 			for (var i = 0; i < colorbar.length; i++) {
+ 				color = colorbar[colorbar.length-i-1];
+ 				color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
+ 				cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++				tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 			}
+ 			ccontext.fillStyle=cgradient;
+ 			ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
++			//Make texture canvas
++			var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL;
++			tcanvasid = 'texturecanvas';
++			var tcanvashtml = document.getElementById(tcanvasid);
++			if (tcanvashtml == null) {
++				tcanvas = $('<canvas id="texturecanvas" width="256" height="256"></canvas>').insertAfter(ccanvas);
++				tcanvas.css({'display':'none'});
++				tcanvashtml = document.getElementById(tcanvasid);
++			}
++			else {
++				tcanvas = $('#' + tcanvasid);
++			}
++			tcontext = tcanvashtml.getContext('2d');
++			tcontext.fillStyle = tgradient;
++			tcontext.fillRect(0,0,256,256);
++			tURL = tcanvashtml.toDataURL();
++			node["texture"] = initTexture(gl,tURL);
+ 			//Draw colorbar border
+ 			ccontext.beginPath();
+ 			ccontext.lineWidth='1';
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19852)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19853)
+@@ -1,4 +1,4 @@
+-function plot_unit(md,data,options,canvas,gl) {
++function plot_unit(md,data,options,canvas,gl,node) {
+ 	//PLOT_UNIT - unit plot, display data
+ 	//
+ 	//   Usage:
+@@ -7,10 +7,9 @@
+ 	//   See also: PLOTMODEL, PLOT_MANAGER
+ 
+ 	//declare variables:  {{{
+-	var node;
+ 	var vertices = [];
+ 	var indices = [];
+-	var colors = [];
++	var texcoords = [];
+ 	var rgbcolor = [];
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+@@ -32,10 +31,6 @@
+ 	var datatype = dataresults[1];
+ 	//}}}
+ 
+-	//Initialize the buffer structure: 
+-	node = Node(gl,options);
+-
+-
+ 	//Compute coordinates and data range: 
+ 	xmin = ArrayMin(x);
+ 	xmax = ArrayMax(x);
+@@ -54,7 +49,7 @@
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 				
+ 	//some defaults:
+-	colors.itemSize = 4;
++	texcoords.itemSize = 2;
+ 
+ 	switch(datatype){
+ 
+@@ -108,20 +103,16 @@
+ 			
+ 				vertices.itemSize = 3;
+ 				var cmap=options.getfieldvalue('cmap','jet');
+-				console.log(z[0]);
++				
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
+ 					vertices[vertices.length] = z[i];
+ 
+-					//handle mesh/qinterest size mismatch
+-					rgbcolor = rgb(data[i], datamin, datamax,cmap);
+-					colors[colors.length] = rgbcolor[0];
+-					colors[colors.length] = rgbcolor[1];
+-					colors[colors.length] = rgbcolor[2];
+-					colors[colors.length] = 1.0;
++					texcoords[texcoords.length] = 0.5;
++					texcoords[texcoords.length] = (data[i] - datamin) / (datamax - datamin);
+ 				}
+-
++				
+ 				//linearize the elements array: 
+ 				indices = indices.concat.apply(indices, elements); 
+ 				indices.itemSize = 1;
+@@ -146,8 +137,5 @@
+ 	}
+ 	
+ 	/*Initalize buffers: */
+-	node["buffers"] = initBuffers(gl,[vertices, colors, indices]);
+-	
+-	/*Draw into the canvas:*/
+-	draw(gl,options,canvas,node);
++	node["buffers"] = initBuffers(gl,[vertices, texcoords, indices]);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19852)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19853)
+@@ -27,6 +27,9 @@
+ 		throw Error("plotmodel error message: could not initialize open Gl!");
+ 	}
+ 	
++	//Initialize the buffer structure: 
++	var node = Node(gl,options);
++	
+ 	//figure out if this is a special plot
+ 	if (typeof data === 'string'){
+ 
+@@ -91,7 +94,7 @@
+ 				break;
+ 			case 'mesh':
+ 				//plot_mesh(md,options,nlines,ncols,i);
+-				plot_mesh(md,options,canvas,gl);
++				plot_mesh(md,options,canvas,gl,node);
+ 				break;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+@@ -214,9 +217,12 @@
+ 
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+-		plot_unit(md,data,options,canvas,gl);
++		plot_unit(md,data,options,canvas,gl,node);
+ 	}
+ 
+ 	//applyoptions(md,data2,options); 
+-	applyoptions(md,data,options); 
++	applyoptions(md,data,options,canvas,gl,node);
++	
++	/*Draw into the canvas:*/
++	draw(gl,options,canvas,node);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19852)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19853)
+@@ -1,11 +1,10 @@
+-function plot_mesh(md,options,canvas,gl) {
++function plot_mesh(md,options,canvas,gl,node) {
+ 	//   Usage:
+ 	//      plot_mesh(md,options,canvas,gl);
+ 	//
+ 	//   See also: PLOTMODEL
+ 
+ 	//declare variables:  {{{
+-	var node;
+ 	var vertices = [];
+ 	var indices = [];
+ 	var colors = [];
+@@ -21,9 +20,6 @@
+ 	var elements = md.mesh.elements;
+ 	//}}}
+ 
+-	//Initialize the buffer structure: 
+-	node = Node(gl,options);
+-
+ 	//Compute coordinates and data range: 
+ 	xmin = ArrayMin(x);
+ 	xmax = ArrayMax(x);
+@@ -34,6 +30,7 @@
+ 
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
++	node["shaderName"] = "colored";
+ 	node["scale"] = [scale, scale, scale];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+@@ -106,7 +103,4 @@
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, colors, indices];
+ 	node["buffers"] = initBuffers(gl, node["arrays"]);
+-	
+-	/*Draw into the canvas:*/
+-	draw(gl,options,canvas,node);
+ }
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19852)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19853)
+@@ -65,12 +65,44 @@
+ 	}	
+ 	return bufferArray;
+ } //}}}
++function createSolidTexture(gl, r, g, b, a) {
++    var data = new Uint8Array([r, g, b, a]);
++    var texture = gl.createTexture();
++    gl.bindTexture(gl.TEXTURE_2D, texture);
++    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);
++    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
++    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
++	gl.bindTexture(gl.TEXTURE_2D, null);
++    return texture;
++}
++function initTexture(gl,imageSource) { //{{{
++	var texture = gl.createTexture();
++	texture.image = new Image();
++	texture.image.onload = function () {
++		handleLoadedTexture(gl,texture);
++	}
++	texture.image.src = imageSource;
++	texture.isLoaded = true;
++	return texture;
++} //}}}
++function handleLoadedTexture(gl,texture) { //{{{
++	gl.activeTexture(gl.TEXTURE0);
++	gl.bindTexture(gl.TEXTURE_2D, texture);
++	gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
++	gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, texture.image);
++	gl.generateMipmap(gl.TEXTURE_2D);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_LINEAR);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
++	gl.bindTexture(gl.TEXTURE_2D, null);
++} //}}}
+ function Node(gl,options) { //{{{
+ 	
+ 	var node;
+ 
+ 	node= {buffers:[],
+-		shader:gl.shaders["colored"]["program"],
++		shader:gl.shaders["unlit_textured"]["program"],
+ 		draw:null,
+ 		hideOcean:false,
+ 		level:0,
+@@ -86,7 +118,7 @@
+ 		rotation:vec3.create(),
+ 		scale:vec3.fromValues(1, 1, 1),
+ 		modelMatrix:mat4.create(),
+-		shaderName:"colored",
++		shaderName:"unlit_textured",
+ 	};
+ 	
+ 	return node;
+@@ -119,7 +151,7 @@
+ 	
+ 	var normalizedValue;
+ 					
+-	colorbar=colorbars[cmap];
++	var colorbar=colorbars[cmap];
+ 
+ 	value = clamp(value, min, max);
+ 	if((max-min)!=0) normalizedValue = (value - min) / (max - min);
+@@ -134,10 +166,9 @@
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+-	// TODO: Subsitute shaders["colored"] with shaderColored
+-	shaderName = "colored";
++	var shaderNames = ["colored", "unlit_textured"];
+ 	shaders = {};
+-	shaders[shaderName] = {loaded:false, vsh:{}, fsh:{}};
++	shaders["colored"] = {loaded:false, vsh:{}, fsh:{}};
+ 	shaders["colored"]["vsh"]["string"] = 
+ 		['attribute vec3 aVertexPosition;',
+ 		'attribute vec4 aVertexColor;',
+@@ -159,48 +190,72 @@
+ 		'void main(void) {',
+ 		'	gl_FragColor = vColor;',
+ 		'}'].join('\n');
++	shaders["unlit_textured"] = {loaded:false, vsh:{}, fsh:{}};
++	shaders["unlit_textured"]["vsh"]["string"] = 
++		['attribute vec3 aVertexPosition;',
++		'attribute vec2 aTextureCoord;',
++		'',
++		'uniform mat4 uMVPMatrix;',
++		'',
++		'varying vec2 vTextureCoord;',
++		'',
++		'void main(void) {',
++		'	gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);',
++		'	vTextureCoord = aTextureCoord;',
++		'}'].join('\n');
++	shaders["unlit_textured"]["fsh"]["string"] =
++		['precision mediump float;',
++		'',
++		'varying vec2 vTextureCoord;',
++		'',
++		'uniform sampler2D uColorSampler;',
++		'',
++		'void main(void) {',
++		'	gl_FragColor = texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t));',
++		'}'].join('\n');
++	shaderNames.forEach(function(shaderName){
++		shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
++		shaders[shaderName]["fsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["fsh"]["string"], "fsh");
+ 
+-	shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
+-	shaders[shaderName]["fsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["fsh"]["string"], "fsh");
++		shaders[shaderName]["program"] = gl.createProgram();
++		gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["vsh"]["shader"]);
++		gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["fsh"]["shader"]);
++		gl.linkProgram(shaders[shaderName]["program"]);
+ 
+-	shaders[shaderName]["program"] = gl.createProgram();
+-	gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["vsh"]["shader"]);
+-	gl.attachShader(shaders[shaderName]["program"], shaders[shaderName]["fsh"]["shader"]);
+-	gl.linkProgram(shaders[shaderName]["program"]);
++		if (!gl.getProgramParameter(shaders[shaderName]["program"], gl.LINK_STATUS)) {
++			alert("Could not initialise shaders");
++		}
+ 
+-	if (!gl.getProgramParameter(shaders[shaderName]["program"], gl.LINK_STATUS)) {
+-		alert("Could not initialise shaders");
+-	}
+-
+-	var vshStringArray = shaders[shaderName]["vsh"]["string"].split("\n");
+-	var fshStringArray = shaders[shaderName]["fsh"]["string"].split("\n");
+-	var line = "";
+-	var property = "";
+-	for (var i = 0; i < vshStringArray.length; i++) {
+-		line = vshStringArray[i];
+-		if (line.search("attribute") != -1) {
+-			property = nameFromLine(line);
+-			shaders[shaderName]["program"][property] = gl.getAttribLocation(shaders[shaderName]["program"], property);
++		var vshStringArray = shaders[shaderName]["vsh"]["string"].split("\n");
++		var fshStringArray = shaders[shaderName]["fsh"]["string"].split("\n");
++		var line = "";
++		var property = "";
++		for (var i = 0; i < vshStringArray.length; i++) {
++			line = vshStringArray[i];
++			if (line.search("attribute") != -1) {
++				property = nameFromLine(line);
++				shaders[shaderName]["program"][property] = gl.getAttribLocation(shaders[shaderName]["program"], property);
++			}
++			else if (line.search("uniform") != -1) {
++				property = nameFromLine(line);
++				shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
++			}
++			else if (line.search("void main") != -1) {
++				break;
++			}
+ 		}
+-		else if (line.search("uniform") != -1) {
+-			property = nameFromLine(line);
+-			shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
++		for (var i = 0; i < fshStringArray.length; i++) {
++			line = fshStringArray[i];
++			if (line.search("uniform") != -1) {
++				property = nameFromLine(line);
++				shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
++			}
++			else if (line.search("void main") != -1) {
++				break;
++			}
+ 		}
+-		else if (line.search("void main") != -1) {
+-			break;
+-		}
+-	}
+-	for (var i = 0; i < fshStringArray.length; i++) {
+-		line = fshStringArray[i];
+-		if (line.search("uniform") != -1) {
+-			property = nameFromLine(line);
+-			shaders[shaderName]["program"][property] = gl.getUniformLocation(shaders[shaderName]["program"], property);
+-		}
+-		else if (line.search("void main") != -1) {
+-			break;
+-		}
+-	}
+-	shaders[shaderName]["loaded"] = true;
++		shaders[shaderName]["loaded"] = true;
++	});
+ 	return shaders;
+ } //}}}
+ function getShaderByString(gl,str,type) { //{{{
+@@ -268,6 +323,11 @@
+ 	}
+ 	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
+ 	gl.uniform1f(node["shader"]["uAlpha"], node["transparency"]);
++	if (node["texture"]) {
++		gl.activeTexture(gl.TEXTURE0);
++		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
++		gl.uniform1i(node["shader"]["uColorSampler"], 0);	
++	}
+ 	if  (node["useIndexBuffer"]) {
+ 		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
+ 		gl.drawElements(node["drawMode"], node["buffers"][node["buffers"].length - 1].numItems, gl.UNSIGNED_SHORT, 0);
+@@ -303,7 +363,7 @@
+ 
+ 	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,node)});
+ 	updateCameraMatrix(canvas);
++
+ 	drawSceneGraphNode(gl, canvas, node);
+-
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19853-19854.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19853-19854.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19853-19854.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19853)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19854)
+@@ -45,6 +45,7 @@
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["scale"] = [scale, scale, scale];
++	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 				
Index: /issm/oecreview/Archive/19101-20495/ISSM-19854-19855.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19854-19855.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19854-19855.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19854)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19855)
+@@ -209,7 +209,7 @@
+ 			ccontext.stroke();
+ 			//Set colorbar lables
+ 			var labels = [];
+-			var cdivisions = 8;
++			var cdivisions = options.getfieldvalue('colorbarnticks',6);
+ 			var caxisdelta = caxis[1] - caxis[0];
+ 			var clabelitem;
+ 			if (options.exist('log')) {
Index: /issm/oecreview/Archive/19101-20495/ISSM-19855-19856.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19855-19856.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19855-19856.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19855)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19856)
+@@ -212,18 +212,19 @@
+ 			var cdivisions = options.getfieldvalue('colorbarnticks',6);
+ 			var caxisdelta = caxis[1] - caxis[0];
+ 			var clabelitem;
++			precision=options.getfieldvalue('colorbarprecision',3);
+ 			if (options.exist('log')) {
+ 				for (var i = cdivisions; i >= 0; i--) {
+ 					if (caxisdelta*i/cdivisions==min) {
+-						labels[i] = (caxis[0]).toPrecision(3);
++						labels[i] = (caxis[0]).toPrecision(precision);
+ 					}
+ 					else {
+-						labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(3);
++						labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(precision);
+ 					}	
+ 				}
+ 			} else {
+ 				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(3);
++					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(precision);
+ 				}
+ 			}
+ 			for (var i = cdivisions; i >= 0; i--) {
Index: /issm/oecreview/Archive/19101-20495/ISSM-19856-19857.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19856-19857.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19856-19857.diff	(revision 20498)
@@ -0,0 +1,101 @@
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 19856)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19857)
+@@ -18,25 +18,18 @@
+ 
+ 		//should we interpolate forcings between timesteps?
+ 		this.interp_forcings=1;
+-
+-		//In years by default
+-		this.in_years = 1;
+-
+ 	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   timestepping parameters:'));
+ 
+-		if(this.in_years) unit = 'yr';
+-		else unit = 's';
++		unit = 'yr';
+ 		fielddisplay(this,'start_time','simulation starting time ['+ unit + ']');
+ 		fielddisplay(this,'final_time','final time to stop the simulation ['+ unit + ']');
+ 		fielddisplay(this,'time_step','length of time steps [' +unit+ ']');
+ 		fielddisplay(this,'time_adapt','use cfl condition to define time step ? (0 or 1) ');
+ 		fielddisplay(this,'cfl_coefficient','coefficient applied to cfl condition');
+ 		fielddisplay(this,'interp_forcings','interpolate in time between requested forcing values ? (0 or 1)');
+-		fielddisplay(this,'in_years','time unit, 1: years, 0: seconds');
+ 
+-
+ 	}// }}}
+ 	this.classname= function(){// {{{
+ 		return "timestepping";
+@@ -57,8 +50,7 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 
+ 			var scale;
+-			if (this.in_years) scale = 365.0*24.0*3600.0;
+-			else scale = 1.;
++			scale = 365.0*24.0*3600.0;
+ 			
+ 			WriteData(fid,'object',this,'fieldname','start_time','format','Double','scale',scale);
+ 			WriteData(fid,'object',this,'fieldname','final_time','format','Double','scale',scale);
+@@ -76,7 +68,6 @@
+ 	this.time_adapt      = 0;
+ 	this.cfl_coefficient = 0.;
+ 	this.interp_forcings = 1;
+-	this.in_years        = 1;
+ 
+ 	this.setdefaultparameters();
+ 	//}}}
+Index: ../trunk-jpl/src/m/classes/timestepping.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.m	(revision 19856)
++++ ../trunk-jpl/src/m/classes/timestepping.m	(revision 19857)
+@@ -11,7 +11,6 @@
+ 		time_adapt      = 0;
+ 		cfl_coefficient = 0.;
+ 		interp_forcings = 1;
+-		in_years        = 1;
+ 	end
+ 	methods
+        function createxml(self,fid) % {{{
+@@ -50,9 +49,6 @@
+ 
+ 			%should we interpolate forcings between timesteps?
+ 			self.interp_forcings=1;
+-
+-			%In years by default
+-			self.in_years = 1;
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+@@ -69,27 +65,18 @@
+ 		function disp(self) % {{{
+ 			disp(sprintf('   timestepping parameters:'));
+ 
+-			if(self.in_years)
+-				unit = 'yr';
+-			else
+-				unit = 's';
+-			end
++			unit = 'yr';
+ 			fielddisplay(self,'start_time',['simulation starting time [' unit ']']);
+ 			fielddisplay(self,'final_time',['final time to stop the simulation [' unit ']']);
+ 			fielddisplay(self,'time_step',['length of time steps [' unit ']']);
+ 			fielddisplay(self,'time_adapt','use cfl condition to define time step ? (0 or 1) ');
+ 			fielddisplay(self,'cfl_coefficient','coefficient applied to cfl condition');
+ 			fielddisplay(self,'interp_forcings','interpolate in time between requested forcing values ? (0 or 1)');
+-			fielddisplay(self,'in_years','time unit, 1: years, 0: seconds');
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 
+-			if self.in_years,
+-				scale = 365.0*24.0*3600.0;
+-			else
+-				scale = 1.;
+-			end
++			scale = 365.0*24.0*3600.0;
+ 			WriteData(fid,'object',self,'fieldname','start_time','format','Double','scale',scale);
+ 			WriteData(fid,'object',self,'fieldname','final_time','format','Double','scale',scale);
+ 			WriteData(fid,'object',self,'fieldname','time_step','format','Double','scale',scale);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19857-19858.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19857-19858.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19857-19858.diff	(revision 20498)
@@ -0,0 +1,269 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19857)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19858)
+@@ -137,53 +137,178 @@
+ 			}
+ 			var caxis = options.getfieldvalue('caxis',[Math.min.apply(null,data),Math.max.apply(null,data)]);
+ 			var canvassize = options.getfieldvalue('canvassize',480);
+-			var cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
+-			var cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
++			var cheight;
++			var cwidth;
+ 			var cdivisions = cheight/4;
+ 			var color;
++			var ccontext,ccanvas,ccanvasid,ccanvashtml;
++			var colorbarorientiation = options.getfieldvalue('colorbarorientation','vertical');
++			//define offsets for correct font drawing on canvas
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+-			var ccontext,ccanvas,ccanvasid,ccanvashtml;
+-			ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+-			ccanvashtml = document.getElementById(ccanvasid);
+-			if (ccanvashtml==null) {
+-				ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-				ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+-				ccontext = ccanvas[0].getContext('2d');
++			var cwidthoffset = options.getfieldvalue('colorbarfontsize',16)*3;
++			
++			//Set colorbar lables
++			var labels = [];
++			var cdivisions = options.getfieldvalue('colorbarnticks',6);
++			var caxisdelta = caxis[1] - caxis[0];
++			var clabelitem;
++			var precision=options.getfieldvalue('colorbarprecision',3);
++			if (options.exist('log')) {
++				for (var i = cdivisions; i >= 0; i--) {
++					if (caxisdelta*i/cdivisions==min) {
++						labels[i] = (caxis[0]).toPrecision(precision);
++					}
++					else {
++						labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(precision);
++					}	
++				}
++			} else {
++				for (var i = cdivisions; i >= 0; i--) {
++					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(precision);
++				}
+ 			}
+-			else{
+-				ccanvas = $('#'+ccanvasid);
+-				if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
+-					//store actual colobar size
+-					cwidth = ccanvas.width();
+-					cheight = ccanvas.height();
+-					//get html object instead of jqurey object to modify height/width to accomodate labels
+-					ccanvashtml.width = ccanvas.width()+cheightoffset*6;
+-					ccanvashtml.height = cheight+cheightoffset;
+-					ccanvashtml.cwidth = cwidth;
+-					ccanvashtml.cheight = cheight;
+-					ccanvashtml.init = true;
++			var y;
++			var x;
++			
++			if (colorbarorientiation=='vertical') {
++				cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
++				cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
++				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
++				ccanvashtml = document.getElementById(ccanvasid);
++				if (ccanvashtml==null) {
++					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++					ccontext = ccanvas[0].getContext('2d');
+ 				}
+-				else {
+-					cwidth = ccanvashtml.cwidth;
+-					cheight = ccanvashtml.cheight;
++				else{
++					ccanvas = $('#'+ccanvasid);
++					if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
++						//store actual colobar size
++						cwidth = ccanvas.width();
++						cheight = ccanvas.height();
++						//get html object instead of jqurey object to modify height/width to accomodate labels
++						ccanvashtml.width = ccanvas.width()+cheightoffset*6;
++						ccanvashtml.height = cheight+cheightoffset;
++						ccanvashtml.cwidth = cwidth;
++						ccanvashtml.cheight = cheight;
++						ccanvashtml.init = true;
++					}
++					else {
++						cwidth = ccanvashtml.cwidth;
++						cheight = ccanvashtml.cheight;
++					}
++					ccontext = ccanvas[0].getContext('2d');
++					/*erase existing colorbar:*/
++					ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++					ccontext.beginPath();
+ 				}
+-				ccontext = ccanvas[0].getContext('2d');
+-				/*erase existing colorbar:*/
+-				ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++				var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
++				var tgradient = ccontext.createLinearGradient(0,0,0,256);
++				
++				var cmap = options.getfieldvalue('cmap','jet');
++				var colorbar = colorbars[cmap];
++				for (var i = 0; i < colorbar.length; i++) {
++					color = colorbar[colorbar.length-i-1];
++					color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
++					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++					tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++				}
++				ccontext.fillStyle=cgradient;
++				ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
++				
++				
++				//Draw colorbar border
+ 				ccontext.beginPath();
++				ccontext.lineWidth='1';
++				ccontext.strokeStyle='black';
++				ccontext.rect(0,cheightoffset/2,cwidth,cheight);
++				ccontext.stroke();
++				
++				for (var i = 0; i <= cdivisions; i++) {
++					y = i/cdivisions*cheight+cheightoffset/2;
++					x = 0.2*cwidth;
++					ccontext.beginPath();
++					ccontext.moveTo(0,y);
++					ccontext.lineTo(x,y);
++					ccontext.moveTo(cwidth-x,y);
++					ccontext.lineTo(cwidth,y);
++					ccontext.stroke();
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.fillStyle='black';
++					ccontext.textAlign='left';
++					ccontext.fillText(labels[i],cwidth+x,y+cheightoffset/2);
++				}
+ 			}
+-			var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
+-			var tgradient = ccontext.createLinearGradient(0,0,0,256);
+-			var cmap = options.getfieldvalue('cmap','jet');
+-			var colorbar = colorbars[cmap];
+-			for (var i = 0; i < colorbar.length; i++) {
+-				color = colorbar[colorbar.length-i-1];
+-				color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
+-				cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+-				tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++			else { //colorbarorientiation=='horizontal'
++				cheight = options.getfieldvalue('colorbarheight',canvassize/20);
++				cwidth = options.getfieldvalue('colorbarwidth',0.95)*canvassize;
++				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
++				ccanvashtml = document.getElementById(ccanvasid);
++				if (ccanvashtml==null) {
++					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++					ccontext = ccanvas[0].getContext('2d');
++				}
++				else{
++					ccanvas = $('#'+ccanvasid);
++					if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
++						//store actual colobar size
++						cwidth = ccanvas.width();
++						cheight = ccanvas.height();
++						//get html object instead of jqurey object to modify height/width to accomodate labels
++						ccanvashtml.width = cwidth+cheightoffset*6;
++						ccanvashtml.height = cheight+cheightoffset;
++						ccanvashtml.cwidth = cwidth;
++						ccanvashtml.cheight = cheight;
++						ccanvashtml.init = true;
++					}
++					else {
++						cwidth = ccanvashtml.cwidth;
++						cheight = ccanvashtml.cheight;
++					}
++					ccontext = ccanvas[0].getContext('2d');
++					/*erase existing colorbar:*/
++					ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++					ccontext.beginPath();
++				}
++				var cgradient = ccontext.createLinearGradient(cwidth+cwidthoffset,0,cwidthoffset,0);
++				var tgradient = ccontext.createLinearGradient(cwidthoffset,0,0,256);
++				
++				var cmap = options.getfieldvalue('cmap','jet');
++				var colorbar = colorbars[cmap];
++				for (var i = 0; i < colorbar.length; i++) {
++					color = colorbar[colorbar.length-i-1];
++					color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
++					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++					tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++				}
++				ccontext.fillStyle=cgradient;
++				ccontext.fillRect(cwidthoffset,0,cwidth,cheight);
++				
++				
++				//Draw colorbar border
++				ccontext.beginPath();
++				ccontext.lineWidth='1';
++				ccontext.strokeStyle='black';
++				ccontext.rect(cwidthoffset,0,cwidth,cheight);
++				ccontext.stroke();
++				
++				for (var i = 0; i <= cdivisions; i++) {
++					y = 0.2*cheight;
++					x = i/cdivisions*cwidth;
++					ccontext.beginPath();
++					ccontext.moveTo(x+cwidthoffset,0);
++					ccontext.lineTo(x+cwidthoffset,y);
++					ccontext.moveTo(x+cwidthoffset,cheight-y);
++					ccontext.lineTo(x+cwidthoffset,cheight);
++					ccontext.stroke();
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.fillStyle='black';
++					ccontext.textAlign='center';
++					ccontext.fillText(labels[cdivisions-i],x+cwidthoffset,cheight+cheightoffset);
++				}
+ 			}
+-			ccontext.fillStyle=cgradient;
+-			ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
++			
+ 			//Make texture canvas
+ 			var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL;
+ 			tcanvasid = 'texturecanvas';
+@@ -201,47 +326,6 @@
+ 			tcontext.fillRect(0,0,256,256);
+ 			tURL = tcanvashtml.toDataURL();
+ 			node["texture"] = initTexture(gl,tURL);
+-			//Draw colorbar border
+-			ccontext.beginPath();
+-			ccontext.lineWidth='1';
+-			ccontext.strokeStyle='black';
+-			ccontext.rect(0,cheightoffset/2,cwidth,cheight);
+-			ccontext.stroke();
+-			//Set colorbar lables
+-			var labels = [];
+-			var cdivisions = options.getfieldvalue('colorbarnticks',6);
+-			var caxisdelta = caxis[1] - caxis[0];
+-			var clabelitem;
+-			precision=options.getfieldvalue('colorbarprecision',3);
+-			if (options.exist('log')) {
+-				for (var i = cdivisions; i >= 0; i--) {
+-					if (caxisdelta*i/cdivisions==min) {
+-						labels[i] = (caxis[0]).toPrecision(precision);
+-					}
+-					else {
+-						labels[i] = (Math.exp(Math.log(caxisdelta)*i/cdivisions)+caxis[0]).toPrecision(precision);
+-					}	
+-				}
+-			} else {
+-				for (var i = cdivisions; i >= 0; i--) {
+-					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(precision);
+-				}
+-			}
+-			for (var i = cdivisions; i >= 0; i--) {
+-				var y = i/cdivisions*cheight+cheightoffset/2;
+-				var x = 0.2*cwidth;
+-				ccontext.beginPath();
+-				ccontext.moveTo(0,y);
+-				ccontext.lineTo(x,y);
+-				ccontext.moveTo(cwidth-x,y);
+-				ccontext.lineTo(cwidth,y);
+-				ccontext.stroke();
+-				ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
+-				ccontext.fillStyle='black';
+-				ccontext.textAlign='left';
+-				ccontext.fillText(labels[i],cwidth+x,y+cheightoffset/2);
+-
+-			}
+ 			/* //{{{
+ 			if exist(options,'wrapping')
+ 				lim=get(c,'Ylim');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19858-19859.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19858-19859.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19858-19859.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/io/savemodel.js
+===================================================================
+--- ../trunk-jpl/src/m/io/savemodel.js	(revision 0)
++++ ../trunk-jpl/src/m/io/savemodel.js	(revision 19859)
+@@ -0,0 +1,8 @@
++function savemodel(md) {
++
++	var string=encodeURI(JSONfn.stringify(md));
++
++	var url='data:text/json:charset=utf8,' + encodeURIComponent(string);
++	window.open(url, '_blank');
++	window.focus();
++}
+Index: ../trunk-jpl/src/m/io/loadmodel.js
+===================================================================
+--- ../trunk-jpl/src/m/io/loadmodel.js	(revision 0)
++++ ../trunk-jpl/src/m/io/loadmodel.js	(revision 19859)
+@@ -0,0 +1,6 @@
++function loadmodel(modelstring) {
++
++	var md=JSONfn.parse(decodeURI(modelstring));
++	md.fix();
++	return md;
++}
+Index: ../trunk-jpl/src/m/io/saveAsFile.js
+===================================================================
+--- ../trunk-jpl/src/m/io/saveAsFile.js	(revision 0)
++++ ../trunk-jpl/src/m/io/saveAsFile.js	(revision 19859)
+@@ -0,0 +1,6 @@
++function saveAsFile(content) {
++
++	var url='data:text/json:charset=utf8,' + encodeURIComponent(content);
++	window.open(url, '_blank');
++	window.focus();
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19859-19860.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19859-19860.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19859-19860.diff	(revision 20498)
@@ -0,0 +1,1028 @@
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 19860)
+@@ -28,7 +28,7 @@
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+ 
+-		enums=NewArrayFill(this.definitions.length,0);
++		var enums=NewArrayFill(this.definitions.length,0);
+ 		for (var i=0;i<this.definitions.length;i++){
+ 			this.definitions[i].marshall(md,fid);
+ 			classdefinition=this.definitions[i].classname();
+@@ -38,6 +38,8 @@
+ 		enums=ArrayUnique(enums);
+ 		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.definitions                 = [];
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19860)
+@@ -139,7 +139,7 @@
+ 
+ 			WriteData(fid,'object',this,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3);
+ 
+-			yts=365.0*24.0*3600.0;
++			var yts=365.0*24.0*3600.0;
+ 
+ 			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',this,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+@@ -157,20 +157,20 @@
+ 			WriteData(fid,'object',this,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
+ 			WriteData(fid,'object',this,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
+ 
+-			lx=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lx[i]=this.loadingforce[i][0];
+-			ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
+-			lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
++			var lx=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lx[i]=this.loadingforce[i][0];
++			var ly=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)ly[i]=this.loadingforce[i][1];
++			var lz=NewArrayFill(this.loadingforce.length,0); for(var i=0;i<lx.length;i++)lz[i]=this.loadingforce[i][2];
+ 
+ 			WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum());
+ 			WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum());
+ 			WriteData(fid,'data',lz,'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum());
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+@@ -185,6 +185,16 @@
+ 			return list;
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.abstol=NullFix(this.abstol,NaN);
++			this.rift_penalty_lock=NullFix(this.rift_penalty_lock,NaN);
++			this.referential=NullFix(this.referential,NaN);
++			this.loadingforce=NullFix(this.loadingforce,NaN);
++			this.spcvx=NullFix(this.spcvx,NaN);
++			this.spcvy=NullFix(this.spcvy,NaN);
++			this.spcvz=NullFix(this.spcvz,NaN);
++			if(this.vertex_pairing=[])this.vertex_pairing=NaN;
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcvx                  = NaN;
+Index: ../trunk-jpl/src/m/classes/steadystate.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/steadystate.js	(revision 19860)
+@@ -50,11 +50,11 @@
+ 			WriteData(fid,'object',this,'fieldname','maxiter','format','Integer');
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+@@ -70,6 +70,8 @@
+ 			return list;
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 19860)
+@@ -117,23 +117,25 @@
+ 			else flag=false; 
+ 			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+ 	this.isdakota                    = 0;
+-	this.variables                   = {};
+-	this.responses                   = {};
+-	this.method                      = {};
+-	this.params                      = {};
+-	this.results                     = {};
++	this.variables                   = []
++	this.responses                   = [];
++	this.method                      = []
++	this.params                      = []
++	this.results                     = []
+ 	this.partition                   = NaN;
+ 	this.numberofpartitions          = 0;
+ 	this.numberofresponses           = 0;
+-	this.variabledescriptors         = {};
+-	this.responsedescriptors         = {};
++	this.variabledescriptors         = []
++	this.responsedescriptors         = []
+ 	this.mass_flux_profile_directory = NaN;
+ 	this.mass_flux_profiles          = NaN;
+-	this.mass_flux_segments          = {};
++	this.mass_flux_segments          = []
+ 	this.adjacency                   = NaN;
+ 	this.vertex_weight               = NaN;
+ 
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19860)
+@@ -119,6 +119,8 @@
+ 			WriteData(fid,'object',this,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 			WriteData(fid,'object',this,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.rho_ice                    = 0.;
+Index: ../trunk-jpl/src/m/classes/miscellaneous.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/miscellaneous.js	(revision 19860)
+@@ -26,11 +26,13 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','name','format','String');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.notes = '';
+ 	this.name  = '';
+-	this.dummy = {};
++	this.dummy = [];
+ 
+ 	this.setdefaultparameters();
+ 	//}}}
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19860)
+@@ -92,6 +92,18 @@
+ 			WriteData(fid,'object',this,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
+ 		}//}}}
++		this.fix=function() { //{{{
++			//Transform objects into Float64Arrays:
++			this.x=FloatFix(this.x,this.numberofvertices); 
++			this.y=FloatFix(this.y,this.numberofvertices); 
++			this.edges=NullFix(this.edges,NaN);
++			this.vertexonboundary=FloatFix(this.vertexonboundary,this.numberofvertices); 
++			this.segmentmarkers=FloatFix(this.segmentmarkers,this.segments.length);
++			this.extractedvertices=NullFix(this.extractedvertices,NaN);
++			this.extractedelements=NullFix(this.extractedelements,NaN);
++			this.lat=NullFix(this.lat,NaN);
++			this.long=NullFix(this.long,NaN);
++		}//}}}
+ 
+ 	//properties 
+ 	// {{{
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19860)
+@@ -44,7 +44,7 @@
+ 		fielddisplay(this,'penalty_threshold','threshold to declare convergence of thermal solution (default is 0)');
+ 		fielddisplay(this,'penalty_factor','scaling exponent (default is 3)');
+ 		fielddisplay(this,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)');
+-		fielddisplay(this,'isdynamicbasalspc',['enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)']);
++		fielddisplay(this,'isdynamicbasalspc','enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)');
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+ 
+ 	}// }}}
+@@ -95,11 +95,11 @@
+ 			WriteData(fid,'object',this,'fieldname','isdynamicbasalspc','format','Boolean');
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+@@ -110,6 +110,9 @@
+ 			if (this.isenthalpy) return ['Enthalpy','Temperature','Waterfraction','Watercolumn','BasalforcingsGroundediceMeltingRate'];
+ 			else return ['Temperature','BasalforcingsGroundediceMeltingRate'];
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.spctemperature=NullFix(this.spctemperature,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19860)
+@@ -48,6 +48,10 @@
+ 			WriteData(fid,'object',this,'fieldname','lithosphere_thickness','format','DoubleMat','mattype',1,'scale',Math.pow(10,3)); //from km to m
+ 			WriteData(fid,'object',this,'fieldname','cross_section_shape','format','Integer');
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.mantle_viscosity=NullFix(this.mantle_viscosity,NaN);
++			this.lithosphere_thickness=NullFix(this.lithosphere_thickness,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/settings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/settings.js	(revision 19860)
+@@ -30,7 +30,20 @@
+ 	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   settings class echo:'));
++		
++		fielddisplay(this,'results_on_nodes','results are output for all the nodes of each element');
++		fielddisplay(this,'io_gather','I/O gathering strategy for result outputs (default 1)');
++		fielddisplay(this,'lowmem','is the memory limited ? (0 or 1)');
++		fielddisplay(this,'output_frequency','frequency at which results are saved in all solutions with multiple time_steps');
++		fielddisplay(this,'recording_frequency','frequency at which the runs are being recorded, allowing for a restart');
++		fielddisplay(this,'waitonlock','maximum number of minutes to wait for batch results (NaN to deactivate)');
++		fielddisplay(this,'upload_server','server hostname where model should be uploaded');
++		fielddisplay(this,'upload_path','path on server where model should be uploaded');
++		fielddisplay(this,'upload_login','server login');
++		fielddisplay(this,'upload_port','port login (default is 0)');
++		fielddisplay(this,'upload_filename','unique id generated when uploading the file to server');
+ 
++
+ 	}// }}}
+ 	this.classname= function(){// {{{
+ 		return "settings";
+@@ -54,6 +67,8 @@
+ 			if (this.waitonlock>0) WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',true,'format','Boolean');
+ 			else WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',false,'format','Boolean');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.results_on_nodes    = 0;
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19860)
+@@ -16,7 +16,7 @@
+ 
+ 		fielddisplay(this,'spcthickness','thickness constraints (NaN means no constraint) [m]');
+ 		fielddisplay(this,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]');
+-		fielddisplay(this,"stabilization','0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
++		fielddisplay(this,'stabilization',"0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG");
+ 
+ 	}// }}}
+ 	this.classname= function(){// {{{
+@@ -42,6 +42,11 @@
+ 			WriteData(fid,'object',this,'fieldname','omega','format','DoubleMat','mattype',1);
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.spcthickness=NullFix(this.spcthickness,NaN);
++			this.thicknening_rate=NullFix(this.thicknening_rate,NaN);
++			this.omega=NullFix(this.omega,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcthickness      = NaN;
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19860)
+@@ -33,13 +33,18 @@
+ 		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+ 	} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+-			yts=365.0*24.0*3600.0;
++			var yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+ 			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',this.stabilization,'format','Integer');
+ 			WriteData(fid,'enum',SpcLevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',this,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 			WriteData(fid,'object',this,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.spclevelset=NullFix(this.spclevelset,NaN);
++			this.calvingrate=NullFix(this.calvingrate,NaN);
++			this.meltingrate=NullFix(this.meltingrate,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/rifts.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/rifts.js	(revision 19860)
+@@ -16,6 +16,7 @@
+ 		fielddisplay(this,'riftproperties','');
+ 	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
++			var numrifts;
+ 			if (isNaN(this.riftstruct) | this.riftstruct.length==0){
+ 				numrifts=0;
+ 			}
+@@ -46,6 +47,7 @@
+ 		} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+ 
++			var numrifts;
+ 			//Process rift info
+ 			if ((this.riftstruct.length==0) | isNaN(this.riftstruct)){
+ 				numrifts=0;
+@@ -60,7 +62,7 @@
+ 
+ 			// 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
+ 			data=Create2DArray(numpairs,12);
+-			count=0;
++			var count=0;
+ 			for (var i=0;i<numrifts;i++){
+ 				numpairsforthisrift=this.riftstruct[i].penaltypairs.length;
+ 				for(var j=0;j<numpairsforthisrift;j++){
+@@ -76,6 +78,10 @@
+ 			WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer');
+ 			WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3);
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.riftstruct=NullFix(this.riftstruct,NaN);
++			this.riftproperties=NullFix(this.riftproperties,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.riftstruct     = NaN;
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19860)
+@@ -20,8 +20,9 @@
+ 		this.interp_forcings=1;
+ 	}// }}}
+ 	this.disp= function(){// {{{
++
++		var unit;
+ 		console.log(sprintf('   timestepping parameters:'));
+-
+ 		unit = 'yr';
+ 		fielddisplay(this,'start_time','simulation starting time ['+ unit + ']');
+ 		fielddisplay(this,'final_time','final time to stop the simulation ['+ unit + ']');
+@@ -60,6 +61,8 @@
+ 			WriteData(fid,'object',this,'fieldname','interp_forcings','format','Boolean');
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.start_time      = 0.;
+Index: ../trunk-jpl/src/m/classes/constants.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/constants.js	(revision 19860)
+@@ -45,6 +45,8 @@
+ 			WriteData(fid,'object',this,'fieldname','yts','format','Double');
+ 			WriteData(fid,'object',this,'fieldname','referencetemperature','format','Double');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.g                    = 0.;
+Index: ../trunk-jpl/src/m/classes/debug.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/debug.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/debug.js	(revision 19860)
+@@ -22,6 +22,9 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','profiling','format','Boolean');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
++
+ 	//properties 
+ 	// {{{
+ 	this.valgrind = false;
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19860)
+@@ -107,6 +107,16 @@
+ 				WriteData(fid,'data',enthalpy,'format','DoubleMat','mattype',1,'enum',EnthalpyEnum());
+ 			}
+ 		}//}}}
++		this.fix=function(md) { //{{{
++			this.vx=FloatFix(this.vx,md.mesh.numberofvertices); 
++			this.vy=FloatFix(this.vx,md.mesh.numberofvertices); 
++			this.vy=FloatFix(this.vx,md.mesh.numberofvertices); 
++			this.waterfraction=NullFix(this.waterfraction,NaN);
++			this.sediment_head=NullFix(this.sediment_head,NaN);
++			this.epl_head=NullFix(this.epl_head,NaN);
++			this.epl_thickness=NullFix(this.epl_thickness,NaN);
++			this.watercolumn=NullFix(this.watercolumn,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.vx            = NaN;
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19860)
+@@ -6,6 +6,7 @@
+ function SMBforcing(){
+ 	//methods
+ 	this.setdefaultparameters = function(){// {{{
++		this.requested_outputs=['default'];
+ 	} // }}}
+ 	this.disp = function(){ // {{{
+ 		console.log(sprintf('   surface forcings parameters:'));
+@@ -45,17 +46,19 @@
+ 			WriteData(fid,'object',this,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1);
+ 			
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs.slice();
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+ 			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray');
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	this.mass_balance = NaN;
+ 	this.requested_outputs      = [];
+Index: ../trunk-jpl/src/m/classes/mask.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/mask.js	(revision 19860)
+@@ -25,7 +25,7 @@
+ 
+ 			checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]);
+ 			checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
+-			isice=NewArrayFill(md.mesh.numberofvertices,0); 
++			var isice=NewArrayFill(md.mesh.numberofvertices,0); 
+ 			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
+ 			if (ArraySum(isice)==0){
+ 				console.log('no ice present in the domain');
+@@ -34,7 +34,7 @@
+ 				console.log('no ice front provided');
+ 			}
+ 				
+-			icefront=NewArrayFill(md.mesh.numberofelements,0);
++			var icefront=NewArrayFill(md.mesh.numberofelements,0);
+ 			for(var i=0;i<md.mesh.numberofelements;i++){
+ 				for(var j=0;j<md.mesh.elements[0].length;j++){
+ 					icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0);
+@@ -42,10 +42,10 @@
+ 			}
+ 			if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
+ 				if (md.mesh.elementtype()=='Tria'){
+-					pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
++					var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
+ 				}
+ 				else if (md.mesh.elementtype() == 'Penta'){
+-					pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
++					var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
+ 				}
+ 				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
+ 			}
+@@ -55,10 +55,10 @@
+ 			WriteData(fid,'object',this,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+ 
+ 			// get mask of vertices of elements with ice
+-			isice= NewArrayFill(md.mesh.numberofvertices,0);
++			var isice= NewArrayFill(md.mesh.numberofvertices,0);
+ 			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
+ 			
+-			vlist = NewArrayFill(md.mesh.numberofvertices,0);
++			var vlist = NewArrayFill(md.mesh.numberofvertices,0);
+ 			var pos=[];
+ 			for(var i=0;i<md.mesh.numberofelements;i++){
+ 				var sum=0;
+@@ -74,4 +74,7 @@
+ 			}
+ 			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
++
+ }
+Index: ../trunk-jpl/src/m/classes/verbose.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/verbose.js	(revision 19860)
+@@ -62,6 +62,8 @@
+ 			return binary;
+ 
+ 		} //}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	//BEGINFIELDS
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19859)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19860)
+@@ -1,89 +1,89 @@
+-%MASK class definition
+-%
+-%   Usage:
+-%      mask=mask();
+-
+-classdef mask
+-	properties (SetAccess=public) 
+-		groundedice_levelset = NaN;
+-		ice_levelset         = NaN;
+-	end
+-	methods (Static)
+-		function self = loadobj(self) % {{{
+-			% This function is directly called by matlab when a model object is
+-			% loaded. Update old properties here
+-
+-			%2014 February 5th
+-			if numel(self.ice_levelset)>1 & all(self.ice_levelset>=0),
+-				disp('WARNING: md.mask.ice_levelset>=0, you probably need to change the sign of this levelset');
+-			end
+-
+-		end% }}}
+-	end
+-	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- mask -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="groundedice_levelset" type="',class(self.groundedice_levelset),'" default="',self.groundedice_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="ice_levelset" type="',class(self.ice_levelset),'" default="',self.ice_levelset,'">','     <section name="mask" />','     <help> presence of ice if > 0, icefront position if = 0, no ice if &amp;lt; 0 </help>','</parameter>');
+-		end % }}}
+-		function self = extrude(self,md) % {{{
+-			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
+-			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
+-		end % }}}
+-		function self = mask(varargin) % {{{
+-			switch nargin
+-				case 0
+-					self=setdefaultparameters(self);
+-				otherwise
+-					error('constructor not supported');
+-			end
+-		end % }}}
+-		function self = setdefaultparameters(self) % {{{
+-
+-		end % }}}
+-		function md = checkconsistency(self,md,solution,analyses) % {{{
+-
+-			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
+-			isice=(md.mask.ice_levelset<=0);
+-			if sum(isice)==0,
+-				warning('no ice present in the domain');
+-			end
+-			if max(md.mask.ice_levelset)<0,
+-				warning('no ice front provided');
+-			end
+-			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
+-			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
+-				if strcmp(elementtype(md.mesh),'Tria'),
+-					numberemptyelements=length(find(icefront==3));
+-				elseif strcmp(elementtype(md.mesh),'Penta')
+-					numberemptyelements=length(find(icefront==6));
+-				end
+-				error([' ' num2str(numberemptyelements) ' have all nodes on ice front, change md.mask.ice_levelset to fix it'])
+-			end
+-		end % }}}
+-		function disp(self) % {{{
+-			disp(sprintf('   masks:'));
+-
+-			fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');
+-			fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0');
+-		end % }}}
+-		function marshall(self,md,fid) % {{{
+-			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+-
+-			% get mask of vertices of elements with ice
+-			isice=md.mask.ice_levelset<=0.;
+-			vlist = zeros(md.mesh.numberofvertices,1);
+-			if md.mesh.numberofelements==1,
+-				pos=find(sum(isice(md.mesh.elements),1)>0);
+-			else
+-				pos=find(sum(isice(md.mesh.elements),2)>0);
+-			end
+-			vlist(md.mesh.elements(pos,:))=1;
+-			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+-
+-		end % }}}
+-	end
+-end
++%MASK class definition
++%
++%   Usage:
++%      mask=mask();
++
++classdef mask
++	properties (SetAccess=public) 
++		groundedice_levelset = NaN;
++		ice_levelset         = NaN;
++	end
++	methods (Static)
++		function self = loadobj(self) % {{{
++			% This function is directly called by matlab when a model object is
++			% loaded. Update old properties here
++
++			%2014 February 5th
++			if numel(self.ice_levelset)>1 & all(self.ice_levelset>=0),
++				disp('WARNING: md.mask.ice_levelset>=0, you probably need to change the sign of this levelset');
++			end
++
++		end% }}}
++	end
++	methods
++		function createxml(self,fid) % {{{
++			fprintf(fid, '\n\n');
++			fprintf(fid, '%s\n', '<!-- mask -->');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="groundedice_levelset" type="',class(self.groundedice_levelset),'" default="',self.groundedice_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
++			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="ice_levelset" type="',class(self.ice_levelset),'" default="',self.ice_levelset,'">','     <section name="mask" />','     <help> presence of ice if > 0, icefront position if = 0, no ice if &amp;lt; 0 </help>','</parameter>');
++		end % }}}
++		function self = extrude(self,md) % {{{
++			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
++			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
++		end % }}}
++		function self = mask(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mask.ice_levelset','forcing',1);
++			isice=(md.mask.ice_levelset<=0);
++			if sum(isice)==0,
++				warning('no ice present in the domain');
++			end
++			if max(md.mask.ice_levelset)<0,
++				warning('no ice front provided');
++			end
++			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
++			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
++				error('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
++			end
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   masks:'));
++
++			fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');
++			fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
++
++			% get mask of vertices of elements with ice
++			if size(md.mask.ice_levelset,1)==md.mesh.numberofvertices,
++				isice=md.mask.ice_levelset<=0.;
++				vlist = zeros(md.mesh.numberofvertices,1);
++				pos=find(sum(isice(md.mesh.elements),2)>0);
++				vlist(md.mesh.elements(pos,:))=1;
++				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++			else
++				isice=md.mask.ice_levelset(1:end-1,1)<=0.;
++				vlist = zeros(md.mesh.numberofvertices,1);
++				pos=find(sum(isice(md.mesh.elements),2)>0);
++				vlist(md.mesh.elements(pos,:))=1;
++				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++				save temp vlist;
++			end
++
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19860)
+@@ -55,7 +55,7 @@
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+ 
+-			yts=365.*24.*3600.;
++			var yts=365.*24.*3600.;
+ 
+ 			WriteData(fid,'object',this,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',this,'fieldname','isfreesurface','format','Boolean');
+@@ -66,11 +66,11 @@
+ 			WriteData(fid,'object',this,'fieldname','penalty_factor','format','Double');
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}
+@@ -79,7 +79,11 @@
+ 		this.defaultoutputs = function(md) { //{{{
+ 			return ['Thickness','Surface','Base'];
+ 		}//}}}
+-//properties 
++		this.fix=function() { //{{{
++			this.spcthickness=NullFix(this.spcthickness,NaN);
++			this.vertex_pairing=NullFix(this.vertex_pairing,NaN);
++		}//}}}
++	//properties 
+ 	// {{{
+ 
+ 	this.spcthickness           = NaN;
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19860)
+@@ -45,6 +45,9 @@
+ 			WriteData(fid,'data',this.bed,'format','DoubleMat','mattype',1,'enum',BedEnum());
+ 			WriteData(fid,'object',this,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1);
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.hydrostatic_ratio=NullFix(this.hydrostatic_ratio,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 		this.surface           = NaN;
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19860)
+@@ -40,6 +40,9 @@
+ 			WriteData(fid,'object',this,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',this,'fieldname','stabilization','format','Double');
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.spcwatercolumn=NullFix(this.spcwatercolumn,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.spcwatercolumn = NaN;
+Index: ../trunk-jpl/src/m/classes/toolkits.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/toolkits.js	(revision 19860)
+@@ -61,6 +61,7 @@
+ 
+ 			 //start writing options
+ 			 for (var analysis in this){
++				 var options;
+ 				 
+ 				 if(typeof this[analysis] == 'object') options=this[analysis]; else continue;
+ 
+@@ -70,7 +71,7 @@
+ 				 //now, write options
+ 			
+ 				 for(var optionname in options){
+-					 optionvalue=options[optionname];
++					 var optionvalue=options[optionname];
+ 
+ 					 if (optionvalue.length==0){
+ 						 //this option has only one argument
+Index: ../trunk-jpl/src/m/classes/inversion.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/inversion.js	(revision 19860)
+@@ -155,6 +155,23 @@
+ 			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
+ 			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.control_parameters=NullFix(this.control_parameters,NaN);
++			this.maxiter_per_step=NullFix(this.maxiter_per_step,NaN);
++			this.cost_functions=NullFix(this.cost_functions,NaN);
++			this.cost_functions_coefficients=NullFix(this.cost_functions_coefficients,NaN);
++			this.cost_function_threshold=NullFix(this.cost_function_threshold,NaN);
++			this.gradient_scaling=NullFix(this.gradient_scaling,NaN);
++			this.min_parameters=NullFix(this.min_parameters,NaN);
++			this.max_parameters=NullFix(this.max_parameters,NaN);
++			this.step_threshold=NullFix(this.step_threshold,NaN);
++			this.vx_obs=NullFix(this.vx_obs,NaN);
++			this.vy_obs=NullFix(this.vy_obs,NaN);
++			this.vz_obs=NullFix(this.vz_obs,NaN);
++			this.vel_obs=NullFix(this.vel_obs,NaN);
++			this.thickness_obs=NullFix(this.thickness_obs,NaN);
++			this.surface_obs=NullFix(this.surface_obs,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19860)
+@@ -62,6 +62,8 @@
+ 			WriteData(fid,'object',this,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',this,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties
+ 	//{{{
+ 	this.groundedice_melting_rate  = NaN;
+Index: ../trunk-jpl/src/m/classes/flowequation.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/flowequation.js	(revision 19860)
+@@ -111,15 +111,15 @@
+ 			data=this.vertex_equation;
+ 			
+ 			//some optimization: 
+-			noneap=NoneApproximationEnum();
+-			siaap=SIAApproximationEnum();
+-			ssaap=SSAApproximationEnum();
+-			l1l2ap=L1L2ApproximationEnum();
+-			hoap=HOApproximationEnum();
+-			fsap=FSApproximationEnum();
+-			ssahoap=SSAHOApproximationEnum();
+-			hofsaap=HOFSApproximationEnum();
+-			ssafsap=SSAFSApproximationEnum();
++			var noneap=NoneApproximationEnum();
++			var siaap=SIAApproximationEnum();
++			var ssaap=SSAApproximationEnum();
++			var l1l2ap=L1L2ApproximationEnum();
++			var hoap=HOApproximationEnum();
++			var fsap=FSApproximationEnum();
++			var ssahoap=SSAHOApproximationEnum();
++			var hofsaap=HOFSApproximationEnum();
++			var ssafsap=SSAFSApproximationEnum();
+ 
+ 			for(var i=0;i<data.length;i++){
+ 				if(data[i]==0)data[i]=nonap;
+@@ -149,6 +149,8 @@
+ 			WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.isSIA                          = 0;
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 19860)
+@@ -74,11 +74,11 @@
+ 			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+-					newoutputs=this.defaultoutputs(md);
++					var newoutputs=this.defaultoutputs(md);
+ 					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
+ 				}
+ 			}			
+@@ -88,6 +88,8 @@
+ 			if(this.issmb)return ['SmbMassBalance'];
+ 			else return [];
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+Index: ../trunk-jpl/src/m/classes/groundingline.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/groundingline.js	(revision 19860)
+@@ -42,6 +42,8 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'data',StringToEnum(this.migration),'enum',GroundinglineMigrationEnum(),'format','Integer');
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.migration    = '';
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19860)
+@@ -114,7 +114,7 @@
+ 			}
+ 
+ 			//process requested outputs
+-			outputs = this.requested_outputs;
++			var outputs = this.requested_outputs;
+ 			for (var i=0;i<outputs.length;i++){
+ 				if (outputs[i] == 'default') {
+ 					outputs.splice(i,1);
+@@ -126,6 +126,8 @@
+ 			}
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 		this.defaultoutputs = function(md){ //{{{
+ 
+ 			if (md.mesh.domaintype() == '2Dhorizontal') return 'DamageDbar';
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19860)
+@@ -39,6 +39,8 @@
+ 			
+ 
+ 		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
+ 	//properties 
+ 	//{{{
+ 	this.coefficient = NaN;
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 19860)
+@@ -89,6 +89,23 @@
+ 			console.log('model not consistent: ' + string);
+ 			md.private.isconsistent=false;
+ 		} //}}}
++		this.fix = function(){ //{{{
++
++			for (var field in this){
++
++				//Some properties do not need to be fixed
++				if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'flaim' | field == 'priv') continue;
++
++				//Check that current field is a class
++				if(typeof this[field] == 'function'){
++					continue;
++				}
++
++				//Fix current object
++				this[field].fix(this);
++			}
++
++		} //}}}
+ 	//properties
+ 	// {{{
+ 		//Careful here: no other class should be used as default value this is a bug of matlab
+Index: ../trunk-jpl/src/m/classes/autodiff.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.js	(revision 19859)
++++ ../trunk-jpl/src/m/classes/autodiff.js	(revision 19860)
+@@ -208,11 +208,19 @@
+ 			WriteData(fid,'data',keep,'enum',AutodiffKeepEnum(),'format','Boolean');
+ 			//}}}
+ 		}//}}}
++		this.fix=function() { //{{{
++			this.obufsize=NullFix(this.obufsize,NaN);
++			this.lbufsize=NullFix(this.lbufsize,NaN);
++			this.cbufsize=NullFix(this.cbufsize,NaN);
++			this.tbufsize=NullFix(this.tbufsize,NaN);
++			this.gcTriggerRatio=NullFix(this.gcTriggerRatio,NaN);
++			this.gcTriggerMaxSize=NullFix(this.gcTriggerMaxSize,NaN);
++		}//}}}
+ 	//properties 
+ 	// {{{
+ 	this.isautodiff   = false;
+-	this.dependents   = {};
+-	this.independents = {};
++	this.dependents   = [];
++	this.independents = [];
+ 	this.driver       = 'fos_forward';
+ 	this.obufsize     = NaN;
+ 	this.lbufsize     = NaN;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19860-19861.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19860-19861.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19860-19861.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/miscellaneous/fielddisplay.js
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19860)
++++ ../trunk-jpl/src/m/miscellaneous/fielddisplay.js	(revision 19861)
+@@ -42,8 +42,9 @@
+ 	}
+ 	//object
+ 	else if (typeof(field) == "object"){
+-			
+-		if ((field[0].length==0) | (typeof field[0].length =='undefined')){
++
++		if(field.length == 0) displayunit(offset,name,sprintf("(%i)",field.length),comment);
++		else if ((field[0].length==0) | (typeof field[0].length =='undefined')){
+ 			displayunit(offset,name,sprintf("(%i)",field.length),comment);
+ 		}
+ 		else{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19861-19862.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19861-19862.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19861-19862.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19861)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19862)
+@@ -134,6 +134,9 @@
+ 				${ISSM_DIR}/src/m/geometry/FlagElements.js \
+ 				${ISSM_DIR}/src/m/inversions/marshallcostfunctions.js \
+ 				${ISSM_DIR}/src/m/io/fileptr.js \
++				${ISSM_DIR}/src/m/io/savemodel.js \
++				${ISSM_DIR}/src/m/io/loadmodel.js \
++				${ISSM_DIR}/src/m/io/saveAsFile.js \
+ 				${ISSM_DIR}/src/m/materials/paterson.js \
+ 				${ISSM_DIR}/src/m/mesh/triangle.js \
+ 				${ISSM_DIR}/src/m/miscellaneous/colorbars.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19862-19863.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19862-19863.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19862-19863.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19862)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19863)
+@@ -342,3 +342,34 @@
+ 
+ 	throw new Error("Unable to copy obj! Its type isn't supported.");
+ } //}}}
++function FloatFix(pointer,size) {//{{{
++
++	var buffer=new Float64Array(size);
++	for(var i=0;i<size;i++)buffer[i]=pointer[i];
++	return buffer;
++
++
++} //}}}
++function NullFix(pointer,value) {//{{{
++
++	if(pointer==null)return value;
++	else{
++		//check that the pointer values are not null: 
++		if(IsArray(pointer)){
++			if(IsArray(pointer[0])){
++				for(var i=0;i<pointer.length;i++){
++					for(var j=0;j<pointer[0].length;j++){
++						if(pointer[i][j]==null)pointer[i][j]=value;
++					}
++				}	
++			}
++			else{
++				for(var i=0;i<pointer.length;i++){
++					if(pointer[i]==null)pointer[i]=value;
++				}
++			}
++		}
++		return pointer;
++	}
++
++} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19863-19864.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19863-19864.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19863-19864.diff	(revision 20498)
@@ -0,0 +1,244 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19863)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19864)
+@@ -139,4 +139,5 @@
+ 	
+ 	/*Initalize buffers: */
+ 	node["buffers"] = initBuffers(gl,[vertices, texcoords, indices]);
++	node["overlay"] = false;
+ }
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19863)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19864)
+@@ -28,7 +28,8 @@
+ 	}
+ 	
+ 	//Initialize the buffer structure: 
+-	var node = Node(gl,options);
++	var nodes = {};
++	nodes["main"] = Node(gl,options);
+ 	
+ 	//figure out if this is a special plot
+ 	if (typeof data === 'string'){
+@@ -94,7 +95,7 @@
+ 				break;
+ 			case 'mesh':
+ 				//plot_mesh(md,options,nlines,ncols,i);
+-				plot_mesh(md,options,canvas,gl,node);
++				plot_mesh(md,options,canvas,gl,nodes["main"]);
+ 				break;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+@@ -186,9 +187,9 @@
+ 	}
+ 
+ 	//Figure out if this is a semi-transparent plot.
+-	if (options.exist('overlay')){
+-		plot_overlay(md,data,options,nlines,ncols,i);
+-		return;
++	if (options.getfieldvalue('overlay','off')=='on'){
++		nodes["overlay"] = Node(gl,options);
++		plot_overlay(md,data,options,canvas,gl,nodes["overlay"]);
+ 	}
+ 
+ 	//Figure out if this is a semi-transparent plot.
+@@ -217,12 +218,12 @@
+ 
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+-		plot_unit(md,data,options,canvas,gl,node);
++		plot_unit(md,data,options,canvas,gl,nodes["main"]);
+ 	}
+ 
+ 	//applyoptions(md,data2,options); 
+-	applyoptions(md,data,options,canvas,gl,node);
++	applyoptions(md,data,options,canvas,gl,nodes["main"]);
+ 	
+ 	/*Draw into the canvas:*/
+-	draw(gl,options,canvas,node);
++	draw(gl,options,canvas,nodes);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19864)
+@@ -0,0 +1,69 @@
++function plot_overlay(md,data,options,canvas,gl,node){
++	//PLOT_OVERLAY - Function for plotting a georeferenced image.  
++	//This function is called from within the plotmodel code.
++	//
++	//   Usage:
++	//      plot_overlay(md,data,options,canvas,gl,node);
++	//
++	//   See also: PLOTMODEL, PLOT_MANAGER
++
++	//declare variables:  {{{
++	var vertices = [];
++	var indices = [];
++	var texcoords = [];
++	var xmin,xmax;
++	var ymin,ymax;
++	var zmin,zmax;
++	
++	//Process data and model
++	var x = md.mesh.x;
++	var y = md.mesh.y;
++	var z = [0.0];
++	var elements = md.mesh.elements;
++	//}}}
++
++	//Compute coordinates and data range:
++	xlim=options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
++	ylim=options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
++	xmin = xlim[0];
++	xmax = xlim[1];
++	ymin = ylim[0];
++	ymax = ylim[1];
++	zmin = ArrayMin(z);
++	zmax = ArrayMax(z);
++	
++	//Compute scaling: 
++	var scale = 1 / (xmax - xmin);
++	node["scale"] = [scale, scale, scale];
++	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["modelMatrix"] = recalculateModelMatrix(node);
++	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/checker.gif'));
++	node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["overlay"] = true;
++				
++	//some defaults:
++	texcoords.itemSize = 2;
++	vertices.itemSize = 3;
++	
++	var xrange = xmax - xmin;
++	var yrange = ymax - ymin;
++	
++	//generate mesh:
++	for(var i = 0; i < x.length; i++){
++		vertices[vertices.length] = x[i];
++		vertices[vertices.length] = y[i];
++		vertices[vertices.length] = 0.0;
++
++		texcoords[texcoords.length] = (x[i] - xmin) / xrange;
++		texcoords[texcoords.length] = (y[i] - ymin) / yrange;
++	}
++	
++	//linearize the elements array: 
++	indices = indices.concat.apply(indices, elements); 
++	indices.itemSize = 1;
++	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
++	
++	/*Initalize buffers: */
++	node["buffers"] = initBuffers(gl,[vertices, texcoords, indices]);
++}
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19863)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19864)
+@@ -21,6 +21,8 @@
+ 	gl.depthFunc(gl.LEQUAL);
+ 	// Clear the color as well as the depth buffer.
+ 	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++	// Enable color blending/overlay
++	gl.enable(gl.BLEND);
+ 
+ 	// Allocate arrays equal to maximium number of attributes used by any one shader
+ 	gl.enableVertexAttribArray(0);
+@@ -98,17 +100,15 @@
+ 	gl.bindTexture(gl.TEXTURE_2D, null);
+ } //}}}
+ function Node(gl,options) { //{{{
+-	
+-	var node;
+-
+-	node= {buffers:[],
++	//Returns a Node object that contains default display states for webgl object
++	return {buffers:[],
+ 		shader:gl.shaders["unlit_textured"]["program"],
+ 		draw:null,
+ 		hideOcean:false,
+ 		level:0,
+ 		useIndexBuffer:true,
+ 		useOrthographic:false,
+-		transparency:1.0,
++		alpha:1.0,
+ 		disableDepthTest:false, 
+ 		enableCullFace:false,
+ 		cullFace:gl.FRONT,
+@@ -119,10 +119,8 @@
+ 		scale:vec3.fromValues(1, 1, 1),
+ 		modelMatrix:mat4.create(),
+ 		shaderName:"unlit_textured",
++		overlay:false,
+ 	};
+-	
+-	return node;
+-
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
+ 	var modelMatrix = mat4.create();
+@@ -209,9 +207,10 @@
+ 		'varying vec2 vTextureCoord;',
+ 		'',
+ 		'uniform sampler2D uColorSampler;',
++		'uniform float uAlpha;',
+ 		'',
+ 		'void main(void) {',
+-		'	gl_FragColor = texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t));',
++		'	gl_FragColor = vec4(texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t)).rgb, uAlpha);',
+ 		'}'].join('\n');
+ 	shaderNames.forEach(function(shaderName){
+ 		shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
+@@ -322,13 +321,19 @@
+ 		mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]);
+ 	}
+ 	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
+-	gl.uniform1f(node["shader"]["uAlpha"], node["transparency"]);
++	gl.uniform1f(node["shader"]["uAlpha"], node["alpha"]);
+ 	if (node["texture"]) {
+ 		gl.activeTexture(gl.TEXTURE0);
+ 		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
+ 		gl.uniform1i(node["shader"]["uColorSampler"], 0);	
+ 	}
+-	if  (node["useIndexBuffer"]) {
++	if (node["overlay"] == true) {
++		gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
++	}
++	else {
++		gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
++	}
++	if  (node["useIndexBuffer"] == true) {
+ 		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
+ 		gl.drawElements(node["drawMode"], node["buffers"][node["buffers"].length - 1].numItems, gl.UNSIGNED_SHORT, 0);
+ 	}
+@@ -349,7 +354,7 @@
+ 		}
+ 	}
+ } //}}}
+-function draw(gl,options,canvas,node) { //{{{
++function draw(gl,options,canvas,nodes) { //{{{
+ 
+ 	// Set clear color to black, fully opaque
+ 	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
+@@ -357,13 +362,14 @@
+ 		gl.clearColor(backgroundcolor.r/255.0, backgroundcolor.g/255.0, backgroundcolor.b/255.0, 1.0);
+ 	}
+ 	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
+-	
++		
+ 	// Clear the color as well as the depth buffer.
+ 	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+ 
+-	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,node)});
++	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
+ 	updateCameraMatrix(canvas);
+-
+-	drawSceneGraphNode(gl, canvas, node);
++	for (var node in nodes) {
++		drawSceneGraphNode(gl, canvas, nodes[node]);
++	}
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19864-19865.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19864-19865.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19864-19865.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/interp/SectionValues.py
+===================================================================
+--- ../trunk-jpl/src/m/interp/SectionValues.py	(revision 19864)
++++ ../trunk-jpl/src/m/interp/SectionValues.py	(revision 19865)
+@@ -60,8 +60,8 @@
+ 		s_segment=npy.zeros(portion)
+ 
+ 		for j in xrange(int(portion)):
+-			x_segment[j]=x_start+(j-1)*(x_end-x_start)/portion
+-			y_segment[j]=y_start+(j-1)*(y_end-y_start)/portion
++			x_segment[j]=x_start+(j)*(x_end-x_start)/portion
++			y_segment[j]=y_start+(j)*(y_end-y_start)/portion
+ 			s_segment[j]=s_start+j*length_segment/portion
+ 	
+ 		#plug into X and Y
Index: /issm/oecreview/Archive/19101-20495/ISSM-19865-19866.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19865-19866.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19865-19866.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/examples/Pig/Pig.par
+===================================================================
+--- ../trunk-jpl/examples/Pig/Pig.par	(revision 19865)
++++ ../trunk-jpl/examples/Pig/Pig.par	(revision 19866)
+@@ -98,8 +98,8 @@
+ 
+ %Forcings
+ disp('   Interpolating surface mass balance');
+-md.surfaceforcings.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
+-md.surfaceforcings.mass_balance=md.surfaceforcings.mass_balance*md.materials.rho_water/md.materials.rho_ice;
++md.smb.mass_balance=InterpFromGridToMesh(x1,y1,smb,md.mesh.x,md.mesh.y,0);
++md.smb.mass_balance=md.smb.mass_balance*md.materials.rho_water/md.materials.rho_ice;
+ clear smb;
+ 
+ disp('   Set geothermal heat flux');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19866-19867.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19866-19867.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19866-19867.diff	(revision 20498)
@@ -0,0 +1,71 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19866)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19867)
+@@ -16,29 +16,36 @@
+ 	var zmin,zmax;
+ 	
+ 	//Process data and model
+-	var x = md.mesh.x;
+-	var y = md.mesh.y;
+-	var z = [0.0];
+-	var elements = md.mesh.elements;
++	var meshresults = processmesh(md,data,options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+-	xlim=options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
+-	ylim=options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
+ 	xmin = xlim[0];
+ 	xmax = xlim[1];
+ 	ymin = ylim[0];
+ 	ymax = ylim[1];
+-	zmin = ArrayMin(z);
+-	zmax = ArrayMax(z);
++	zmin = zlim[0];
++	zmax = zlim[1];
+ 	
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(modelxlim[0] + modelxlim[1]) / (-2 / scale), (modelylim[0] + modelylim[1]) / (-2 / scale), (modelzlim[0] + modelzlim[1]) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/checker.gif'));
++	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/penguin.png'));
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = true;
+ 				
+@@ -48,12 +55,18 @@
+ 	
+ 	var xrange = xmax - xmin;
+ 	var yrange = ymax - ymin;
++
++	//redefine overlay as square plane
++	x = [xmin, xmax, xmin, xmax];
++	y = [ymin, ymin, ymax, ymax];
++	z = [zmin, zmin, zmin, zmin];
++	elements = [[1,2,3],[2,4,3]];
+ 	
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
+ 		vertices[vertices.length] = x[i];
+ 		vertices[vertices.length] = y[i];
+-		vertices[vertices.length] = 0.0;
++		vertices[vertices.length] = z[i];
+ 
+ 		texcoords[texcoords.length] = (x[i] - xmin) / xrange;
+ 		texcoords[texcoords.length] = (y[i] - ymin) / yrange;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19867-19868.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19867-19868.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19867-19868.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test432.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test432.py	(revision 19867)
++++ ../trunk-jpl/test/NightlyRun/test432.py	(revision 19868)
+@@ -23,7 +23,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy']
+-field_tolerances=[3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-9]
++field_tolerances=[3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3.2e-10,3e-9]
+ field_values=[\
+ 	md.results.SteadystateSolution.Vx,\
+ 	md.results.SteadystateSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test432.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test432.m	(revision 19867)
++++ ../trunk-jpl/test/NightlyRun/test432.m	(revision 19868)
+@@ -13,7 +13,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','Waterfraction','Enthalpy'};
+-field_tolerances={3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3e-10,3e-9};
++field_tolerances={3e-09,1e-09,1e-09,1e-09,1e-13,1e-10,3.2e-10,3e-9};
+ field_values={...
+ 	(md.results.SteadystateSolution.Vx),...
+ 	(md.results.SteadystateSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19868-19869.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19868-19869.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19868-19869.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19868)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19869)
+@@ -44,6 +44,7 @@
+ 
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
++	node["shaderName"] = "unlit_textured";
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19868)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19869)
+@@ -41,6 +41,7 @@
+ 	
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
++	node["shaderName"] = "unlit_textured";
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(modelxlim[0] + modelxlim[1]) / (-2 / scale), (modelylim[0] + modelylim[1]) / (-2 / scale), (modelzlim[0] + modelzlim[1]) / (-2 / scale)];
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19868)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19869)
+@@ -102,7 +102,7 @@
+ function Node(gl,options) { //{{{
+ 	//Returns a Node object that contains default display states for webgl object
+ 	return {buffers:[],
+-		shader:gl.shaders["unlit_textured"]["program"],
++		shader:gl.shaders["colored"]["program"],
+ 		draw:null,
+ 		hideOcean:false,
+ 		level:0,
+@@ -118,7 +118,7 @@
+ 		rotation:vec3.create(),
+ 		scale:vec3.fromValues(1, 1, 1),
+ 		modelMatrix:mat4.create(),
+-		shaderName:"unlit_textured",
++		shaderName:"colored",
+ 		overlay:false,
+ 	};
+ } //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19869-19870.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19869-19870.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19869-19870.diff	(revision 20498)
@@ -0,0 +1,125 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19869)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19870)
+@@ -31,14 +31,17 @@
+ 	var datatype = dataresults[1];
+ 	//}}}
+ 
+-	//Compute coordinates and data range: 
+-	xmin = ArrayMin(x);
+-	xmax = ArrayMax(x);
+-	ymin = ArrayMin(y);
+-	ymax = ArrayMax(y);
+-	zmin = ArrayMin(z);
+-	zmax = ArrayMax(z);
+-	caxis= options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++	//Compute coordinates and data range:
++	var xlim = options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
++	var ylim = options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
++	var zlim = options.getfieldvalue('zlim',[ArrayMin(z),ArrayMax(z)]);
++	xmin = xlim[0];
++	xmax = xlim[1];
++	ymin = ylim[0];
++	ymax = ylim[1];
++	zmin = zlim[0];
++	zmax = zlim[1];
++	var caxis= options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+ 	datamin = caxis[0];
+ 	datamax = caxis[1];
+ 
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19869)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19870)
+@@ -26,12 +26,9 @@
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+-	var modelxlim = [ArrayMin(x),ArrayMax(x)];
+-	var modelylim = [ArrayMin(y),ArrayMax(y)];
+-	var modelzlim = [ArrayMin(z),ArrayMax(z)];
+-	var xlim = options.getfieldvalue('xlim',modelxlim);
+-	var ylim = options.getfieldvalue('ylim',modelylim);
+-	var zlim = options.getfieldvalue('zlim',modelzlim);
++	var xlim = options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
++	var ylim = options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
++	var zlim = options.getfieldvalue('zlim',[ArrayMin(z),ArrayMax(z)]);
+ 	xmin = xlim[0];
+ 	xmax = xlim[1];
+ 	ymin = ylim[0];
+@@ -44,7 +41,7 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+-	node["translation"] = [(modelxlim[0] + modelxlim[1]) / (-2 / scale), (modelylim[0] + modelylim[1]) / (-2 / scale), (modelzlim[0] + modelzlim[1]) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/penguin.png'));
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+@@ -58,10 +55,10 @@
+ 	var yrange = ymax - ymin;
+ 
+ 	//redefine overlay as square plane
+-	x = [xmin, xmax, xmin, xmax];
+-	y = [ymin, ymin, ymax, ymax];
+-	z = [zmin, zmin, zmin, zmin];
+-	elements = [[1,2,3],[2,4,3]];
++	//x = [xmin, xmax, xmin, xmax];
++	//y = [ymin, ymin, ymax, ymax];
++	//z = [zmin, zmin, zmin, zmin];
++	//elements = [[1,2,3],[2,4,3]];
+ 	
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19869)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19870)
+@@ -20,13 +20,19 @@
+ 	var elements = md.mesh.elements;
+ 	//}}}
+ 
+-	//Compute coordinates and data range: 
+-	xmin = ArrayMin(x);
+-	xmax = ArrayMax(x);
+-	ymin = ArrayMin(y);
+-	ymax = ArrayMax(y);
+-	zmin = ArrayMin(z);
+-	zmax = ArrayMax(z);
++	//Compute coordinates and data range:
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
++	xmin = xlim[0];
++	xmax = xlim[1];
++	ymin = ylim[0];
++	ymax = ylim[1];
++	zmin = zlim[0];
++	zmax = zlim[1];
+ 
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19869)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19870)
+@@ -91,12 +91,9 @@
+ 	gl.activeTexture(gl.TEXTURE0);
+ 	gl.bindTexture(gl.TEXTURE_2D, texture);
+ 	gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
+-	gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, texture.image);
+-	gl.generateMipmap(gl.TEXTURE_2D);
+-	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_LINEAR);
+-	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
+-	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+-	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
++	gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, texture.image);
++    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
++    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
+ 	gl.bindTexture(gl.TEXTURE_2D, null);
+ } //}}}
+ function Node(gl,options) { //{{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19870-19871.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19870-19871.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19870-19871.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19870)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19871)
+@@ -276,6 +276,7 @@
+ 				
+ 				var cmap = options.getfieldvalue('cmap','jet');
+ 				var colorbar = colorbars[cmap];
++				console.log(cmap, colorbar);
+ 				for (var i = 0; i < colorbar.length; i++) {
+ 					color = colorbar[colorbar.length-i-1];
+ 					color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
+@@ -326,6 +327,7 @@
+ 			tcontext.fillRect(0,0,256,256);
+ 			tURL = tcanvashtml.toDataURL();
+ 			node["texture"] = initTexture(gl,tURL);
++			console.log(node["texture"]);
+ 			/* //{{{
+ 			if exist(options,'wrapping')
+ 				lim=get(c,'Ylim');
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19870)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19871)
+@@ -48,11 +48,13 @@
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
++	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
++	console.log(gl["shaders"]);
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-				
++	console.log(node);
+ 	//some defaults:
+ 	texcoords.itemSize = 2;
+ 
+@@ -108,7 +110,7 @@
+ 			
+ 				vertices.itemSize = 3;
+ 				var cmap=options.getfieldvalue('cmap','jet');
+-				
++				console.log(datamin,datamax,data);
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19870)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19871)
+@@ -39,6 +39,7 @@
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
++	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19870)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19871)
+@@ -37,6 +37,7 @@
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "colored";
++	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19870)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19871)
+@@ -91,9 +91,12 @@
+ 	gl.activeTexture(gl.TEXTURE0);
+ 	gl.bindTexture(gl.TEXTURE_2D, texture);
+ 	gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
+-	gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, texture.image);
+-    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
+-    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
++	gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, texture.image);
++	gl.generateMipmap(gl.TEXTURE_2D);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST_MIPMAP_LINEAR);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
++	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+ 	gl.bindTexture(gl.TEXTURE_2D, null);
+ } //}}}
+ function Node(gl,options) { //{{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19871-19872.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19871-19872.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19871-19872.diff	(revision 20498)
@@ -0,0 +1,135 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19871)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19872)
+@@ -203,7 +203,6 @@
+ 					ccontext.beginPath();
+ 				}
+ 				var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
+-				var tgradient = ccontext.createLinearGradient(0,0,0,256);
+ 				
+ 				var cmap = options.getfieldvalue('cmap','jet');
+ 				var colorbar = colorbars[cmap];
+@@ -211,12 +210,10 @@
+ 					color = colorbar[colorbar.length-i-1];
+ 					color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
+ 					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+-					tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 				}
+ 				ccontext.fillStyle=cgradient;
+ 				ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
+ 				
+-				
+ 				//Draw colorbar border
+ 				ccontext.beginPath();
+ 				ccontext.lineWidth='1';
+@@ -272,21 +269,17 @@
+ 					ccontext.beginPath();
+ 				}
+ 				var cgradient = ccontext.createLinearGradient(cwidth+cwidthoffset,0,cwidthoffset,0);
+-				var tgradient = ccontext.createLinearGradient(cwidthoffset,0,0,256);
+ 				
+ 				var cmap = options.getfieldvalue('cmap','jet');
+ 				var colorbar = colorbars[cmap];
+-				console.log(cmap, colorbar);
+ 				for (var i = 0; i < colorbar.length; i++) {
+ 					color = colorbar[colorbar.length-i-1];
+ 					color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
+ 					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+-					tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 				}
+ 				ccontext.fillStyle=cgradient;
+ 				ccontext.fillRect(cwidthoffset,0,cwidth,cheight);
+ 				
+-				
+ 				//Draw colorbar border
+ 				ccontext.beginPath();
+ 				ccontext.lineWidth='1';
+@@ -309,25 +302,6 @@
+ 					ccontext.fillText(labels[cdivisions-i],x+cwidthoffset,cheight+cheightoffset);
+ 				}
+ 			}
+-			
+-			//Make texture canvas
+-			var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL;
+-			tcanvasid = 'texturecanvas';
+-			var tcanvashtml = document.getElementById(tcanvasid);
+-			if (tcanvashtml == null) {
+-				tcanvas = $('<canvas id="texturecanvas" width="256" height="256"></canvas>').insertAfter(ccanvas);
+-				tcanvas.css({'display':'none'});
+-				tcanvashtml = document.getElementById(tcanvasid);
+-			}
+-			else {
+-				tcanvas = $('#' + tcanvasid);
+-			}
+-			tcontext = tcanvashtml.getContext('2d');
+-			tcontext.fillStyle = tgradient;
+-			tcontext.fillRect(0,0,256,256);
+-			tURL = tcanvashtml.toDataURL();
+-			node["texture"] = initTexture(gl,tURL);
+-			console.log(node["texture"]);
+ 			/* //{{{
+ 			if exist(options,'wrapping')
+ 				lim=get(c,'Ylim');
+@@ -399,6 +373,34 @@
+ 		//do nothing
+ 
+ 	}
++	//Make texture canvas
++	
++	var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL,tgradient;
++	tcanvasid = 'texturecanvas';
++	var tcanvashtml = document.getElementById(tcanvasid);
++	if (tcanvashtml == null) {
++		tcanvas = $('<canvas id="texturecanvas" width="256" height="256"></canvas>').insertAfter('#'+String(options.getfieldvalue('canvasid')));
++		tcanvas.css({'display':'none'});
++		tcanvashtml = document.getElementById(tcanvasid);
++	}
++	else {
++		tcanvas = $('#' + tcanvasid);
++	}
++	tcontext = tcanvashtml.getContext('2d');
++	tgradient = tcontext.createLinearGradient(0,0,0,256);
++		
++	var cmap = options.getfieldvalue('cmap','jet');
++	var colorbar = colorbars[cmap];
++	for (var i = 0; i < colorbar.length; i++) {
++		color = colorbar[colorbar.length-i-1];
++		color = [Math.round(color[0]*255),Math.round(color[1]*255),Math.round(color[2]*255)];	
++		tgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
++	}
++	
++	tcontext.fillStyle = tgradient;
++	tcontext.fillRect(0,0,256,256);
++	tURL = tcanvashtml.toDataURL();
++	node["texture"] = initTexture(gl,tURL);
+ 	/* //{{{
+ 	//area
+ 	if exist(options,'area'),
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19871)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19872)
+@@ -49,12 +49,10 @@
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	console.log(gl["shaders"]);
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	console.log(node);
+ 	//some defaults:
+ 	texcoords.itemSize = 2;
+ 
+@@ -109,8 +107,7 @@
+ 			else{ //triangular elements
+ 			
+ 				vertices.itemSize = 3;
+-				var cmap=options.getfieldvalue('cmap','jet');
+-				console.log(datamin,datamax,data);
++				var cmap=options.getfieldvalue('cmap','jet');	
+ 				for(var i = 0; i < x.length; i++){
+ 					vertices[vertices.length] = x[i];
+ 					vertices[vertices.length] = y[i];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19872-19873.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19872-19873.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19872-19873.diff	(revision 20498)
@@ -0,0 +1,89 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19872)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19873)
+@@ -53,6 +53,10 @@
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
++	node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["overlay"] = true;
++	node["drawOrder"] = 0;
++		
+ 	//some defaults:
+ 	texcoords.itemSize = 2;
+ 
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19872)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19873)
+@@ -26,9 +26,12 @@
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+-	var xlim = options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
+-	var ylim = options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
+-	var zlim = options.getfieldvalue('zlim',[ArrayMin(z),ArrayMax(z)]);
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
+ 	xmin = xlim[0];
+ 	xmax = xlim[1];
+ 	ymin = ylim[0];
+@@ -45,8 +48,9 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/penguin.png'));
+-	node["alpha"] = options.getfieldvalue('alpha',1.0);
+-	node["overlay"] = true;
++	//node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["overlay"] = false;
++	node["drawOrder"] = 1;
+ 				
+ 	//some defaults:
+ 	texcoords.itemSize = 2;
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19872)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19873)
+@@ -42,6 +42,9 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
++	//node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["overlay"] = false;
++	node["drawOrder"] = 0;
+ 				
+ 	//some defaults:
+ 	colors.itemSize = 4;
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19872)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19873)
+@@ -120,6 +120,7 @@
+ 		modelMatrix:mat4.create(),
+ 		shaderName:"colored",
+ 		overlay:false,
++		drawOrder:0,
+ 	};
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
+@@ -368,8 +369,13 @@
+ 
+ 	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
+ 	updateCameraMatrix(canvas);
+-	for (var node in nodes) {
+-		drawSceneGraphNode(gl, canvas, nodes[node]);
++	var drawPassNumber = 2;
++	for (var i = drawPassNumber - 1; i >= 0; i--) {
++		for (var node in nodes) {
++			if (nodes[node]["drawOrder"] == i) {
++				drawSceneGraphNode(gl, canvas, nodes[node]);
++			}
++		}
+ 	}
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19873-19874.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19873-19874.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19873-19874.diff	(revision 20498)
@@ -0,0 +1,80 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19873)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19874)
+@@ -32,9 +32,12 @@
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+-	var xlim = options.getfieldvalue('xlim',[ArrayMin(x),ArrayMax(x)]);
+-	var ylim = options.getfieldvalue('ylim',[ArrayMin(y),ArrayMax(y)]);
+-	var zlim = options.getfieldvalue('zlim',[ArrayMin(z),ArrayMax(z)]);
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
+ 	xmin = xlim[0];
+ 	xmax = xlim[1];
+ 	ymin = ylim[0];
+@@ -145,6 +148,6 @@
+ 	}
+ 	
+ 	/*Initalize buffers: */
+-	node["buffers"] = initBuffers(gl,[vertices, texcoords, indices]);
+-	node["overlay"] = false;
++	node["arrays"] = [vertices, texcoords, indices];
++	node["buffers"] = initBuffers(gl,node["arrays"]);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19873)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19874)
+@@ -47,7 +47,7 @@
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/penguin.png'));
++	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/checker.gif'));
+ 	//node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+@@ -56,13 +56,13 @@
+ 	texcoords.itemSize = 2;
+ 	vertices.itemSize = 3;
+ 	
+-	var xrange = xmax - xmin;
+-	var yrange = ymax - ymin;
++	var xrange = modelxlim[1] - modelxlim[0];
++	var yrange = modelylim[1] - modelylim[0];
+ 
+ 	//redefine overlay as square plane
+-	//x = [xmin, xmax, xmin, xmax];
+-	//y = [ymin, ymin, ymax, ymax];
+-	//z = [zmin, zmin, zmin, zmin];
++	//x = [modelxlim[0], modelxlim[1], modelxlim[0], modelxlim[1]];
++	//y = [modelylim[0], modelylim[0], modelylim[1], modelylim[1]];
++	//z = [modelzlim[0], modelzlim[0], modelzlim[0], modelzlim[0]];
+ 	//elements = [[1,2,3],[2,4,3]];
+ 	
+ 	//generate mesh:
+@@ -71,8 +71,8 @@
+ 		vertices[vertices.length] = y[i];
+ 		vertices[vertices.length] = z[i];
+ 
+-		texcoords[texcoords.length] = (x[i] - xmin) / xrange;
+-		texcoords[texcoords.length] = (y[i] - ymin) / yrange;
++		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
++		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
+ 	}
+ 	
+ 	//linearize the elements array: 
+@@ -81,5 +81,6 @@
+ 	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+ 	
+ 	/*Initalize buffers: */
+-	node["buffers"] = initBuffers(gl,[vertices, texcoords, indices]);
++	node["arrays"] = [vertices, texcoords, indices];
++	node["buffers"] = initBuffers(gl,node["arrays"]);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19874-19875.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19874-19875.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19874-19875.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19874)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19875)
+@@ -57,7 +57,7 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+-	node["overlay"] = true;
++	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 		
+ 	//some defaults:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19875-19876.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19875-19876.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19875-19876.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/plot/radarpower.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/radarpower.m	(revision 19875)
++++ ../trunk-jpl/src/m/plot/radarpower.m	(revision 19876)
+@@ -102,8 +102,12 @@
+ 		md.radaroverlay.x=(x0:(x1-x0)/(size(md.radaroverlay.pwr,2)-1):x1);
+ 		md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
+ 
+-		%Erase image
+-		system('rm -rf ./temp.tif');
++		%Erase image or keep it?
++		if getfieldvalue(options,'keep_image',0),
++			system(['mv ./temp.tif ' getfieldvalue(options,'image_name','temp.tif')]);
++		else
++			system('rm -rf ./temp.tif');
++		end
+ 
+ 	elseif md.mesh.epsg==3031,
+ 		if ~exist(options,'geotiff_name'),
Index: /issm/oecreview/Archive/19101-20495/ISSM-19876-19877.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19876-19877.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19876-19877.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.m	(revision 19876)
++++ ../trunk-jpl/src/m/plot/applyoptions.m	(revision 19877)
+@@ -276,7 +276,9 @@
+ 		textpositioni=textposition{i};
+ 		textrotationi=textrotation{i};
+ 		h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
+-		set(h,'Clipping','on'); %prevent text from appearing outside of the box
++		if getfieldvalue(options,'textclip','on'),
++			set(h,'Clipping','on'); %prevent text from appearing outside of the box
++		end
+ 	end
+ end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19877-19878.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19877-19878.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19877-19878.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19877)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19878)
+@@ -47,8 +47,8 @@
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["texture"] = initTexture(gl,options.getfieldvalue('image','images/checker.gif'));
+-	//node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
++	node["alpha"] = options.getfieldvalue('alpha',.5);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 				
Index: /issm/oecreview/Archive/19101-20495/ISSM-19878-19879.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19878-19879.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19878-19879.diff	(revision 20498)
@@ -0,0 +1,765 @@
+Index: ../trunk-jpl/src/m/classes/initialization.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/initialization.m	(revision 19879)
+@@ -151,5 +151,20 @@
+ 				WriteData(fid,'data',enthalpy,'format','DoubleMat','mattype',1,'enum',EnthalpyEnum());
+ 			end
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.initialization.vx'],self.vx);
++			writejs1Darray(fid,[modelname '.initialization.vy'],self.vy);
++			writejs1Darray(fid,[modelname '.initialization.vz'],self.vz);
++			writejs1Darray(fid,[modelname '.initialization.vel'],self.vel);
++			writejs1Darray(fid,[modelname '.initialization.pressure'],self.pressure);
++			writejs1Darray(fid,[modelname '.initialization.temperature'],self.temperature);
++			writejs1Darray(fid,[modelname '.initialization.waterfraction'],self.waterfraction);
++			writejs1Darray(fid,[modelname '.initialization.sediment_head'],self.sediment_head);
++			writejs1Darray(fid,[modelname '.initialization.epl_head'],self.epl_head);
++			writejs1Darray(fid,[modelname '.initialization.epl_thickness'],self.epl_thickness);
++			writejs1Darray(fid,[modelname '.initialization.watercolumn'],self.watercolumn);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/toolkits.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/toolkits.m	(revision 19879)
+@@ -124,5 +124,17 @@
+ 
+ 			 fclose(fid);
+ 		 end %}}}
++		function savemodeljs(self,fid,modelname) % {{{
++	
++			analyses=properties(self);
++			 for i=1:numel(analyses),
++				 if isempty(fieldnames(self.(analyses{i})))
++					 error(['md.toolkits.' analyses{i} ' is empty']);
++				 else
++					 writejsstruct(fid,[modelname '.toolkits.' analyses{i}],self.(analyses{i}));
++				 end
++			 end
++	
++		end % }}}
+ 	 end
+  end
+Index: ../trunk-jpl/src/m/classes/debug.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/debug.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/debug.m	(revision 19879)
+@@ -44,5 +44,12 @@
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'fieldname','profiling','format','Boolean');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.debug.valgrind'],self.valgrind);
++			writejsdouble(fid,[modelname '.debug.gprof'],self.gprof);
++			writejsdouble(fid,[modelname '.debug.profiling'],self.profiling);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/thermal.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/thermal.m	(revision 19879)
+@@ -150,5 +150,19 @@
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',ThermalRequestedOutputsEnum(),'format','StringArray');
+         	end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.thermal.spctemperature'],self.spctemperature);
++			writejsdouble(fid,[modelname '.thermal.penalty_threshold'],self.penalty_threshold);
++			writejsdouble(fid,[modelname '.thermal.stabilization'],self.stabilization);
++			writejsdouble(fid,[modelname '.thermal.reltol'],self.reltol);
++			writejsdouble(fid,[modelname '.thermal.maxiter'],self.maxiter);
++			writejsdouble(fid,[modelname '.thermal.penalty_lock'],self.penalty_lock);
++			writejsdouble(fid,[modelname '.thermal.penalty_factor'],self.penalty_factor);
++			writejsdouble(fid,[modelname '.thermal.isenthalpy'],self.isenthalpy);
++			writejsdouble(fid,[modelname '.thermal.isdynamicbasalspc'],self.isdynamicbasalspc);
++			writejscellstring(fid,[modelname '.thermal.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/m1qn3inversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/m1qn3inversion.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/m1qn3inversion.m	(revision 19879)
+@@ -177,5 +177,27 @@
+ 			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
+ 			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.inversion.iscontrol'],self.iscontrol);
++			writejsdouble(fid,[modelname '.inversion.incomplete_adjoint'],self.incomplete_adjoint);
++			writejscellstring(fid,[modelname '.inversion.control_parameters'],self.control_parameters);
++			writejsdouble(fid,[modelname '.inversion.control_scaling_factors'],self.control_scaling_factors);
++			writejsdouble(fid,[modelname '.inversion.maxsteps'],self.maxsteps);
++			writejsdouble(fid,[modelname '.inversion.maxiter'],self.maxiter);
++			writejsdouble(fid,[modelname '.inversion.dxmin'],self.dxmin);
++			writejsdouble(fid,[modelname '.inversion.gttol'],self.gttol);
++			writejs2Darray(fid,[modelname '.inversion.cost_functions'],self.cost_functions);
++			writejs2Darray(fid,[modelname '.inversion.cost_functions_coefficients'],self.cost_functions_coefficients);
++			writejs1Darray(fid,[modelname '.inversion.min_parameters'],self.min_parameters);
++			writejs1Darray(fid,[modelname '.inversion.max_parameters'],self.max_parameters);
++			writejs1Darray(fid,[modelname '.inversion.vx_obs'],self.vx_obs);
++			writejs1Darray(fid,[modelname '.inversion.vy_obs'],self.vy_obs);
++			writejs1Darray(fid,[modelname '.inversion.vz_obs'],self.vz_obs);
++			writejs1Darray(fid,[modelname '.inversion.vel_obs'],self.vel_obs);
++			writejs1Darray(fid,[modelname '.inversion.thickness_obs'],self.thickness_obs);
++			writejs1Darray(fid,[modelname '.inversion.surface_obs'],self.surface_obs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/miscellaneous.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19879)
+@@ -48,5 +48,12 @@
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'fieldname','name','format','String');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsstring(fid,[modelname '.miscellaneous.notes'],self.notes);
++			writejsstring(fid,[modelname '.miscellaneous.name'],self.name);
++			%do not save dummy data.
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/steadystate.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/steadystate.m	(revision 19879)
+@@ -79,5 +79,12 @@
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',SteadystateRequestedOutputsEnum,'format','StringArray');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.steadystate.reltol'],self.reltol);
++			writejsdouble(fid,[modelname '.steadystate.maxiter'],self.maxiter);
++			writejscellstring(fid,[modelname '.steadystate.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/autodiff.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/autodiff.m	(revision 19879)
+@@ -256,5 +256,11 @@
+ 			%}}}
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++			%do nothing for now
++			if self.isautodiff,
++				error('autodiff savemodeljs error message: not implemented yet!');
++			end
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/matice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/matice.m	(revision 19879)
+@@ -204,5 +204,29 @@
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.materials.rho_ice'],self.rho_ice);
++			writejsdouble(fid,[modelname '.materials.rho_water'],self.rho_water);
++			writejsdouble(fid,[modelname '.materials.rho_freshwater'],self.rho_freshwater);
++			writejsdouble(fid,[modelname '.materials.mu_water'],self.mu_water);
++			writejsdouble(fid,[modelname '.materials.heatcapacity'],self.heatcapacity);
++			writejsdouble(fid,[modelname '.materials.latentheat'],self.latentheat);
++			writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
++			writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
++			writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
++			writejsdouble(fid,[modelname '.materials.beta'],self.beta);
++			writejsdouble(fid,[modelname '.materials.mixed_layer_capacity'],self.mixed_layer_capacity);
++			writejsdouble(fid,[modelname '.materials.thermal_exchange_velocity'],self.thermal_exchange_velocity);
++			writejsdouble(fid,[modelname '.materials.mixed_layer_capacity'],self.mixed_layer_capacity);
++			writejs1Darray(fid,[modelname '.materials.rheology_B'],self.rheology_B);
++			writejs1Darray(fid,[modelname '.materials.rheology_n'],self.rheology_n);
++			writejsstring(fid,[modelname '.materials.rheology_law'],self.rheology_law);
++			writejsdouble(fid,[modelname '.materials.lithosphere_shear_modulus'],self.lithosphere_shear_modulus);
++			writejsdouble(fid,[modelname '.materials.lithosphere_density'],self.lithosphere_density);
++			writejsdouble(fid,[modelname '.materials.mantle_shear_modulus'],self.mantle_shear_modulus);
++			writejsdouble(fid,[modelname '.materials.mantle_density'],self.mantle_density);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/qmu.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/qmu.m	(revision 19879)
+@@ -208,5 +208,12 @@
+ 			end
+ 			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum,'format','Boolean');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			if self.isdakota,
++				error('qmu savemodeljs error message: not supported yet!');
++			end
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/verbose.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/verbose.m	(revision 19879)
+@@ -149,5 +149,18 @@
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'data',VerboseToBinary(self),'enum',VerboseEnum(),'format','Integer');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.verbose.mprocessor'],self.mprocessor);
++			writejsdouble(fid,[modelname '.verbose.module'],self.module);
++			writejsdouble(fid,[modelname '.verbose.solution'],self.solution);
++			writejsdouble(fid,[modelname '.verbose.solver'],self.solver);
++			writejsdouble(fid,[modelname '.verbose.convergence'],self.convergence);
++			writejsdouble(fid,[modelname '.verbose.control'],self.control);
++			writejsdouble(fid,[modelname '.verbose.qmu'],self.qmu);
++			writejsdouble(fid,[modelname '.verbose.autodiff'],self.autodiff);
++			writejsdouble(fid,[modelname '.verbose.smb'],self.smb);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 19879)
+@@ -140,5 +140,20 @@
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum,'format','StringArray');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.trans.issmb'],self.issmb);
++			writejsdouble(fid,[modelname '.trans.ismasstransport'],self.ismasstransport);
++			writejsdouble(fid,[modelname '.trans.isstressbalance'],self.isstressbalance);
++			writejsdouble(fid,[modelname '.trans.isthermal'],self.isthermal);
++			writejsdouble(fid,[modelname '.trans.isgroundingline'],self.isgroundingline);
++			writejsdouble(fid,[modelname '.trans.isgia'],self.isgia);
++			writejsdouble(fid,[modelname '.trans.isdamageevolution'],self.isdamageevolution);
++			writejsdouble(fid,[modelname '.trans.islevelset'],self.islevelset);
++			writejsdouble(fid,[modelname '.trans.iscalving'],self.iscalving);
++			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
++			writejscellstring(fid,[modelname '.trans.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/outputdefinition.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 19879)
+@@ -57,5 +57,12 @@
+ 		
+ 		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			if ~isempty(self.definitions),
++				error('outputdefinition savemodeljs error message: not supported yet!');
++			end
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/constants.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/constants.m	(revision 19879)
+@@ -63,5 +63,13 @@
+ 			WriteData(fid,'object',self,'fieldname','yts','format','Double');
+ 			WriteData(fid,'object',self,'fieldname','referencetemperature','format','Double');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.constants.g'],self.g);
++			writejsdouble(fid,[modelname '.constants.omega'],self.omega);
++			writejsdouble(fid,[modelname '.constants.yts'],self.yts);
++			writejsdouble(fid,[modelname '.constants.referencetemperature'],self.referencetemperature);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/mesh2d.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19879)
+@@ -149,5 +149,27 @@
+ 		function s = elementtype(self) % {{{
+ 			s = 'Tria';
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.mesh.x'],self.x);
++			writejs1Darray(fid,[modelname '.mesh.y'],self.y);
++			writejs2Darray(fid,[modelname '.mesh.elements'],self.elements);
++			writejsdouble(fid,[modelname '.mesh.numberofelements'],self.numberofelements);
++			writejsdouble(fid,[modelname '.mesh.numberofvertices'],self.numberofvertices);
++			writejsdouble(fid,[modelname '.mesh.numberofedges'],self.numberofedges);
++			writejs1Darray(fid,[modelname '.mesh.lat'],self.lat);
++			writejs1Darray(fid,[modelname '.mesh.long'],self.long);
++			writejsdouble(fid,[modelname '.mesh.epsg'],self.epsg);
++			writejs1Darray(fid,[modelname '.mesh.vertexonboundary'],self.vertexonboundary);
++			writejs2Darray(fid,[modelname '.mesh.edges'],self.edges);
++			writejs2Darray(fid,[modelname '.mesh.segments'],self.segments);
++			writejs2Darray(fid,[modelname '.mesh.segmentmarkers'],self.segmentmarkers);
++			writejs2Darray(fid,[modelname '.mesh.vertexconnectivity'],self.vertexconnectivity);
++			writejs2Darray(fid,[modelname '.mesh.elementconnectivity'],self.elementconnectivity);
++			writejsdouble(fid,[modelname '.mesh.average_vertex_connectivity'],self.average_vertex_connectivity);
++			writejs1Darray(fid,[modelname '.mesh.extractedvertices'],self.extractedvertices);
++			writejs1Darray(fid,[modelname '.mesh.extractedelements'],self.extractedelements);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 19879)
+@@ -64,5 +64,13 @@
+ 			WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.calving.stabilization'],self.stabilization);
++			writejs1Darray(fid,[modelname '.calving.spclevelset'],self.spclevelset);
++			writejs1Darray(fid,[modelname '.calving.calvingrate'],self.calvingrate);
++			writejs1Darray(fid,[modelname '.calving.meltingrate'],self.meltingrate);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19879)
+@@ -251,5 +251,27 @@
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum,'format','StringArray');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.stressbalance.spcvx'],self.spcvx);
++			writejs1Darray(fid,[modelname '.stressbalance.spcvy'],self.spcvy);
++			writejs1Darray(fid,[modelname '.stressbalance.spcvz'],self.spcvz);
++			writejsdouble(fid,[modelname '.stressbalance.restol'],self.restol);
++			writejsdouble(fid,[modelname '.stressbalance.reltol'],self.reltol);
++			writejsdouble(fid,[modelname '.stressbalance.abstol'],self.abstol);
++			writejsdouble(fid,[modelname '.stressbalance.isnewton'],self.isnewton);
++			writejsdouble(fid,[modelname '.stressbalance.FSreconditioning'],self.FSreconditioning);
++			writejsdouble(fid,[modelname '.stressbalance.viscosity_overshoot'],self.viscosity_overshoot);
++			writejsdouble(fid,[modelname '.stressbalance.maxiter'],self.maxiter);
++			writejsdouble(fid,[modelname '.stressbalance.shelf_dampening'],self.shelf_dampening);
++			writejs1Darray(fid,[modelname '.stressbalance.vertex_pairing'],self.vertex_pairing);
++			writejsdouble(fid,[modelname '.stressbalance.penalty_factor'],self.penalty_factor);
++			writejsdouble(fid,[modelname '.stressbalance.rift_penalty_lock'],self.rift_penalty_lock);
++			writejsdouble(fid,[modelname '.stressbalance.rift_penalty_threshold'],self.rift_penalty_threshold);
++			writejs1Darray(fid,[modelname '.stressbalance.referential'],self.referential);
++			writejs1Darray(fid,[modelname '.stressbalance.loadingforce'],self.loadingforce);
++			writejscellstring(fid,[modelname '.stressbalance.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19879)
+@@ -58,6 +58,12 @@
+ 			WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'fieldname','stabilization','format','Double');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.hydrology.spcwatercolumn'],self.spcwatercolumn);
++			writejsdouble(fid,[modelname '.hydrology.stabilization'],self.stabilization);
++
++		end % }}}
+ 	end
+ end
+ 
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19879)
+@@ -1351,5 +1351,41 @@
+ 		eval(['delete ' name]);
+ 
+ 		end % }}}
++		function savemodeljs(md,modelname,filename) % {{{
++
++			%the goal of this routine is to save the model as a javascript array that can be included in any html 
++			%file: 
++
++			%disp: 
++			disp(['saving model ''' modelname ''' in file ' filename]);
++
++			%open file for writing and declare the model:
++			fid=fopen(filename,'w');
++			fprintf(fid,'var %s=new model();\n',modelname);
++
++			%now go through all the classes and fwrite all the corresponding fields: 
++			
++			fields=properties('model');
++			for i=1:length(fields),
++				field=fields{i};
++
++				%Some properties do not need to be saved
++				if ismember(field,{'results' 'radaroverlay','cluster' }),
++					continue;
++				end
++
++				%Check that current field is an object
++				if ~isobject(md.(field))
++					error(['field ''' char(field) ''' is not an object']);
++				end
++
++				%savemodeljs for current object
++				%disp(['javascript saving ' field '...']);
++				savemodeljs(md.(field),fid,modelname);
++			end
++
++			%done, close file:
++			fclose(fid);
++		end
+ 	end
+  end
+Index: ../trunk-jpl/src/m/classes/flowequation.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/flowequation.m	(revision 19879)
+@@ -241,5 +241,27 @@
+ 			pos=find(data==8); data(pos,end)=HOFSApproximationEnum();
+ 			WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.flowequation.isSIA'],self.isSIA);
++			writejsdouble(fid,[modelname '.flowequation.isSSA'],self.isSSA);
++			writejsdouble(fid,[modelname '.flowequation.isL1L2'],self.isL1L2);
++			writejsdouble(fid,[modelname '.flowequation.isHO'],self.isHO);
++			writejsdouble(fid,[modelname '.flowequation.isFS'],self.isFS);
++			writejsstring(fid,[modelname '.flowequation.fe_SSA'],self.fe_SSA);
++			writejsstring(fid,[modelname '.flowequation.fe_HO'],self.fe_HO);
++			writejsstring(fid,[modelname '.flowequation.fe_FS'],self.fe_FS);
++			writejsdouble(fid,[modelname '.flowequation.augmented_lagrangian_r'],self.augmented_lagrangian_r);
++			writejsdouble(fid,[modelname '.flowequation.augmented_lagrangian_rhop'],self.augmented_lagrangian_rhop);
++			writejsdouble(fid,[modelname '.flowequation.augmented_lagrangian_rlambda'],self.augmented_lagrangian_rlambda);
++			writejsdouble(fid,[modelname '.flowequation.augmented_lagrangian_rholambda'],self.augmented_lagrangian_rholambda);
++			writejsdouble(fid,[modelname '.flowequation.XTH_theta'],self.XTH_theta);
++			writejs1Darray(fid,[modelname '.flowequation.vertex_equation'],self.vertex_equation);
++			writejs1Darray(fid,[modelname '.flowequation.element_equation'],self.element_equation);
++			writejs1Darray(fid,[modelname '.flowequation.borderSSA'],self.borderSSA);
++			writejs1Darray(fid,[modelname '.flowequation.borderHO'],self.borderHO);
++			writejs1Darray(fid,[modelname '.flowequation.borderFS'],self.borderFS);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/basalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19879)
+@@ -79,5 +79,12 @@
+ 			WriteData(fid,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
+ 			WriteData(fid,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.basalforcings.groundedice_melting_rate'],self.groundedice_melting_rate);
++			writejs1Darray(fid,[modelname '.basalforcings.floatingice_melting_rate'],self.floatingice_melting_rate);
++			writejs1Darray(fid,[modelname '.basalforcings.geothermalflux'],self.geothermalflux);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19879)
+@@ -226,5 +226,13 @@
+ 			end
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.damage.isdamage'],self.isdamage);
++			if self.isdamage,
++				error('savemodeljs error message: not implemented  yet!');
++			end
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/flaim.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flaim.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/flaim.m	(revision 19879)
+@@ -105,5 +105,13 @@
+ 			fielddisplay(self,'solution'           ,'name of kml solution file');
+ 			fielddisplay(self,'quality'            ,'quality of kml solution');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			%do nothing for now!
++			if ~isempty(self.targets),
++				error('flaim savemodeljs error message: not supported yet!');
++			end
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19879)
+@@ -81,9 +81,14 @@
+ 				pos=find(sum(isice(md.mesh.elements),2)>0);
+ 				vlist(md.mesh.elements(pos,:))=1;
+ 				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+-				save temp vlist;
+ 			end
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
++			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/balancethickness.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/balancethickness.m	(revision 19879)
+@@ -54,5 +54,13 @@
+ 
+ 			WriteData(fid,'object',self,'fieldname','omega','format','DoubleMat','mattype',1);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.balancethickness.spcthickness'],self.spcthickness);
++			writejs1Darray(fid,[modelname '.balancethickness.thickening_rate'],self.thickening_rate);
++			writejsdouble(fid,[modelname '.balancethickness.stabilization'],self.stabilization);
++			writejs1Darray(fid,[modelname '.balancethickness.omega'],self.omega);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/geometry.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/geometry.m	(revision 19879)
+@@ -93,5 +93,14 @@
+ 			WriteData(fid,'data',self.bed,'format','DoubleMat','mattype',1,'enum',BedEnum());
+ 			WriteData(fid,'object',self,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.geometry.surface'],self.surface);
++			writejs1Darray(fid,[modelname '.geometry.thickness'],self.thickness);
++			writejs1Darray(fid,[modelname '.geometry.base'],self.base);
++			writejs1Darray(fid,[modelname '.geometry.bed'],self.bed);
++			writejs1Darray(fid,[modelname '.geometry.hydrostatic_ratio'],self.hydrostatic_ratio);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/gia.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/gia.m	(revision 19879)
+@@ -76,5 +76,12 @@
+ 			WriteData(fid,'object',self,'fieldname','lithosphere_thickness','format','DoubleMat','mattype',1,'scale',10^3); %from km to m
+ 			WriteData(fid,'object',self,'fieldname','cross_section_shape','format','Integer');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.gia.mantle_viscosity'],self.mantle_viscosity);
++			writejsdouble(fid,[modelname '.gia.lithosphere_thickness'],self.lithosphere_thickness);
++			writejsdouble(fid,[modelname '.gia.cross_section_shape'],self.cross_section_shape);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/settings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/settings.m	(revision 19879)
+@@ -109,5 +109,20 @@
+ 				WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',false,'format','Boolean');
+ 			end
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.settings.results_on_nodes'],self.results_on_nodes);
++			writejsdouble(fid,[modelname '.settings.io_gather'],self.io_gather);
++			writejsdouble(fid,[modelname '.settings.lowmem'],self.lowmem);
++			writejsdouble(fid,[modelname '.settings.output_frequency'],self.output_frequency);
++			writejsdouble(fid,[modelname '.settings.recording_frequency'],self.recording_frequency);
++			writejsdouble(fid,[modelname '.settings.waitonlock'],self.waitonlock);
++			writejsstring(fid,[modelname '.settings.upload_server'],self.upload_server);
++			writejsstring(fid,[modelname '.settings.upload_path'],self.upload_path);
++			writejsstring(fid,[modelname '.settings.upload_login'],self.upload_login);
++			writejsdouble(fid,[modelname '.settings.upload_port'],self.upload_port);
++			writejsstring(fid,[modelname '.settings.upload_filename'],self.upload_filename);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/groundingline.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/groundingline.m	(revision 19879)
+@@ -63,5 +63,10 @@
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'data',StringToEnum(self.migration),'enum',GroundinglineMigrationEnum(),'format','Integer');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsstring(fid,[modelname '.groundingline.migration'],self.migration);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/friction.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/friction.m	(revision 19879)
+@@ -60,5 +60,12 @@
+ 			
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.friction.coefficient'],self.coefficient);
++			writejs1Darray(fid,[modelname '.friction.p'],self.p);
++			writejs1Darray(fid,[modelname '.friction.q'],self.q);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19879)
+@@ -83,5 +83,11 @@
+ 			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.smb.mass_balance'],self.mass_balance);
++			writejscellstring(fid,[modelname '.smb.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/timestepping.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/timestepping.m	(revision 19879)
+@@ -84,5 +84,16 @@
+ 			WriteData(fid,'object',self,'fieldname','cfl_coefficient','format','Double');
+ 			WriteData(fid,'object',self,'fieldname','interp_forcings','format','Boolean');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.timestepping.start_time'],self.start_time);
++			writejsdouble(fid,[modelname '.timestepping.final_time'],self.final_time);
++			writejsdouble(fid,[modelname '.timestepping.time_step'],self.time_step);
++			writejsdouble(fid,[modelname '.timestepping.time_adapt'],self.time_adapt);
++			writejsdouble(fid,[modelname '.timestepping.cfl_coefficient'],self.cfl_coefficient);
++			writejsdouble(fid,[modelname '.timestepping.interp_forcings'],self.interp_forcings);
++			writejsdouble(fid,[modelname '.timestepping.in_years'],self.in_years);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/private.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/private.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/private.m	(revision 19879)
+@@ -34,5 +34,13 @@
+ 			fielddisplay(self,'solution','type of solution launched');
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.priv.isconsistent'],self.isconsistent);
++			writejsstring(fid,[modelname '.priv.runtimename'],self.runtimename);
++			writejsstring(fid,[modelname '.priv.solution'],self.solution);
++			%no bamg 
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/rifts.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/rifts.m	(revision 19879)
+@@ -90,5 +90,18 @@
+ 			WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer');
+ 			WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3);
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++	
++			if isempty(self.riftstruct) | isnans(self.riftstruct),
++				numrifts=0;
++			else
++				numrifts=numel(self.riftstruct);
++			end
++			
++			if numrifts,
++				error('rifts savemodeljs error message: not supported yet!');
++			end
++	
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/masstransport.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.m	(revision 19878)
++++ ../trunk-jpl/src/m/classes/masstransport.m	(revision 19879)
+@@ -131,5 +131,17 @@
+ 			end
+ 			WriteData(fid,'data',outputs,'enum',MasstransportRequestedOutputsEnum,'format','StringArray');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.masstransport.spcthickness'],self.spcthickness);
++			writejsdouble(fid,[modelname '.masstransport.isfreesurface'],self.isfreesurface);
++			writejsdouble(fid,[modelname '.masstransport.min_thickness'],self.min_thickness);
++			writejsdouble(fid,[modelname '.masstransport.hydrostatic_adjustment'],self.hydrostatic_adjustment);
++			writejsdouble(fid,[modelname '.masstransport.stabilization'],self.stabilization);
++			writejs2Darray(fid,[modelname '.masstransport.vertex_pairing'],self.vertex_pairing);
++			writejsdouble(fid,[modelname '.masstransport.penalty_factor'],self.penalty_factor);
++			writejscellstring(fid,[modelname '.masstransport.requested_outputs'],self.requested_outputs);
++
++		end % }}}
+ 	end
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19879-19880.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19879-19880.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19879-19880.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.m	(revision 19879)
++++ ../trunk-jpl/src/m/plot/applyoptions.m	(revision 19880)
+@@ -276,7 +276,7 @@
+ 		textpositioni=textposition{i};
+ 		textrotationi=textrotation{i};
+ 		h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
+-		if getfieldvalue(options,'textclip','on'),
++		if strcmpi(getfieldvalue(options,'textclip','on'),'on'),
+ 			set(h,'Clipping','on'); %prevent text from appearing outside of the box
+ 		end
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19880-19881.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19880-19881.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19880-19881.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/m/shp/shp2js.m
+===================================================================
+--- ../trunk-jpl/src/m/shp/shp2js.m	(revision 0)
++++ ../trunk-jpl/src/m/shp/shp2js.m	(revision 19881)
+@@ -0,0 +1,31 @@
++function shp2js(jsname,shpname,domainname)
++
++	shp=shpread(shpname);
++	
++	fid=fopen(jsname,'w');
++	fprintf(fid,'var %s={}\n',domainname);
++
++	for i=1:length(shp),
++	
++		fprintf(fid,'%s[%i]={}\n',domainname,i-1);
++
++		x=shp(i).x;
++		y=shp(i).y;
++		nods=shp(i).nods;
++
++		fprintf(fid,'<!-- %s[%i]{{{-->\n',domainname,i-1);
++		
++		fprintf(fid,'%s[%i][''x'']=[',domainname,i-1);
++		for j=1:nods-1,
++			fprintf(fid,'%g,',x(j));
++		end
++		fprintf(fid,'%g];\n',x(end));
++		
++		fprintf(fid,'%s[%i][''y'']=[',domainname,i-1);
++		for j=1:nods-1,
++			fprintf(fid,'%g,',y(j));
++		end
++		fprintf(fid,'%g];\n',y(end));
++		fprintf(fid,'<!--}}}-->\n');
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19881-19882.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19881-19882.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19881-19882.diff	(revision 20498)
@@ -0,0 +1,112 @@
+Index: ../trunk-jpl/src/m/js/writejs1Darray.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejs1Darray.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejs1Darray.m	(revision 19882)
+@@ -0,0 +1,14 @@
++function writejs1Darray(fid,prefix,array)
++
++	if isempty(array)
++		fprintf(fid,'%s=[];\n',prefix);
++	else if  isscalar(array),
++		fprintf(fid,'%s=%g;\n',prefix,array);
++	else
++		fprintf(fid,'%s=[',prefix);
++		for i=1:length(array)-1,
++			fprintf(fid,'%g,',array(i));
++		end
++		fprintf(fid,'%g];\n',array(end));
++	end
++end
+Index: ../trunk-jpl/src/m/js/writejs2Darray.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejs2Darray.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejs2Darray.m	(revision 19882)
+@@ -0,0 +1,20 @@
++function writejs2Darray(fid,prefix,array)
++
++	if  isscalar(array),
++		fprintf(fid,'%s=%g;\n',prefix,array);
++	else
++		fprintf(fid,'%s=[',prefix);
++		for i=1:size(array,1)-1,
++			fprintf(fid,'[%g,',array(i,1));
++			for j=2:size(array,2)-1,
++				fprintf(fid,'%g,',array(i,j));
++			end
++			fprintf(fid,'%g],',array(i,end));
++		end
++		fprintf(fid,'[%g,',array(end,1));
++		for j=2:size(array,2)-1,
++			fprintf(fid,'%g,',array(end,j));
++		end
++		fprintf(fid,'%g]];\n',array(end,end));
++	end
++end
+Index: ../trunk-jpl/src/m/js/writejsstruct.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejsstruct.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejsstruct.m	(revision 19882)
+@@ -0,0 +1,16 @@
++function writejsstruct(fid,prefix,structure)
++	
++	fprintf(fid,'%s={};\n',prefix);
++
++	fields=fieldnames(structure);
++	for i=1:numel(fields),
++		fieldname=fields{i};
++		field=structure.(fieldname);
++		if isscalar(field),
++			fprintf(fid,'%s[''%s'']=%g;\n',prefix,fieldname,field);
++		end
++		if ischar(field),
++			fprintf(fid,'%s[''%s'']=''%s'';\n',prefix,fieldname,field);
++		end
++	end
++end
+Index: ../trunk-jpl/src/m/js/writejscellstring.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejscellstring.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejscellstring.m	(revision 19882)
+@@ -0,0 +1,22 @@
++function writejscellstring(fid,prefix,cell)
++
++
++	if ~iscell(cell),
++		fprintf(fid,'%s=%g;\n',prefix,cell);
++	else
++		if length(cell),
++			if length(cell)==1,
++				fprintf(fid,'%s=[''%s''];\n',prefix,cell{1});
++			else
++				fprintf(fid,'%s=[''%s'',',prefix,cell{1});
++				for i=2:length(cell)-1,
++					fprintf(fid,'''%s'',',cell{i});
++				end
++				fprintf(fid,'''%s''];\n',cell{end});
++			end
++		else
++			fprintf(fid,'%s=[];\n',prefix);
++		end
++	end
++
++end
+Index: ../trunk-jpl/src/m/js/writejsstring.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejsstring.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejsstring.m	(revision 19882)
+@@ -0,0 +1,3 @@
++function writejsstring(fid,prefix,string)
++	fprintf(fid,'%s=''%s'';\n',prefix,string);
++end
+Index: ../trunk-jpl/src/m/js/writejsdouble.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejsdouble.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejsdouble.m	(revision 19882)
+@@ -0,0 +1,7 @@
++function writejsdouble(fid,prefix,scalar)
++	if  isinf(scalar),
++		fprintf(fid,'%s=Infinity;\n',prefix);
++	else
++		fprintf(fid,'%s=%g;\n',prefix,scalar);
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19882-19883.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19882-19883.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19882-19883.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19882)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19883)
+@@ -149,6 +149,7 @@
+ 				${ISSM_DIR}/src/m/plot/checkplotoptions.js \
+ 				${ISSM_DIR}/src/m/plot/plot_manager.js \
+ 				${ISSM_DIR}/src/m/plot/plot_mesh.js \
++				${ISSM_DIR}/src/m/plot/plot_overlay.js \
+ 				${ISSM_DIR}/src/m/plot/plot_unit.js \
+ 				${ISSM_DIR}/src/m/plot/plotmodel.js \
+ 				${ISSM_DIR}/src/m/plot/processdata.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19883-19884.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19883-19884.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19883-19884.diff	(revision 20498)
@@ -0,0 +1,148 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19883)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19884)
+@@ -176,7 +176,7 @@
+ 				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 				ccanvashtml = document.getElementById(ccanvasid);
+ 				if (ccanvashtml==null) {
+-					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset*2)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+ 					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
+ 					ccontext = ccanvas[0].getContext('2d');
+ 				}
+@@ -188,7 +188,7 @@
+ 						cheight = ccanvas.height();
+ 						//get html object instead of jqurey object to modify height/width to accomodate labels
+ 						ccanvashtml.width = ccanvas.width()+cheightoffset*6;
+-						ccanvashtml.height = cheight+cheightoffset;
++						ccanvashtml.height = cheight+cheightoffset*2;
+ 						ccanvashtml.cwidth = cwidth;
+ 						ccanvashtml.cheight = cheight;
+ 						ccanvashtml.init = true;
+@@ -199,7 +199,7 @@
+ 					}
+ 					ccontext = ccanvas[0].getContext('2d');
+ 					/*erase existing colorbar:*/
+-					ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++					ccontext.clearRect(0,0, ccanvashtml.width, ccanvashtml.height);
+ 					ccontext.beginPath();
+ 				}
+ 				var cgradient = ccontext.createLinearGradient(0,cheightoffset/2,0,cheight);
+@@ -212,29 +212,36 @@
+ 					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 				}
+ 				ccontext.fillStyle=cgradient;
+-				ccontext.fillRect(0,cheightoffset/2,cwidth,cheight);
++				ccontext.fillRect(0,cheightoffset*3/2,cwidth,cheight);
+ 				
+ 				//Draw colorbar border
+ 				ccontext.beginPath();
+ 				ccontext.lineWidth='1';
+ 				ccontext.strokeStyle='black';
+-				ccontext.rect(0,cheightoffset/2,cwidth,cheight);
++				ccontext.rect(0,cheightoffset*3/2,cwidth,cheight);
+ 				ccontext.stroke();
+ 				
+ 				for (var i = 0; i <= cdivisions; i++) {
+ 					y = i/cdivisions*cheight+cheightoffset/2;
+ 					x = 0.2*cwidth;
+ 					ccontext.beginPath();
+-					ccontext.moveTo(0,y);
+-					ccontext.lineTo(x,y);
+-					ccontext.moveTo(cwidth-x,y);
+-					ccontext.lineTo(cwidth,y);
++					ccontext.moveTo(0,y+cheightoffset);
++					ccontext.lineTo(x,y+cheightoffset);
++					ccontext.moveTo(cwidth-x,y+cheightoffset);
++					ccontext.lineTo(cwidth,y+cheightoffset);
+ 					ccontext.stroke();
+ 					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='left';
+-					ccontext.fillText(labels[i],cwidth+x,y+cheightoffset/2);
++					ccontext.fillText(labels[i],cwidth+x,y+cheightoffset*3/2);
+ 				}
++				if (options.exist('colorbartitle')) {
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.fillStyle='black';
++					ccontext.textAlign='left';
++					ccontext.textBaseline='bottom';
++					ccontext.fillText(options.getfieldvalue('colorbartitle'),0,cheightoffset);
++				}
+ 			}
+ 			else { //colorbarorientiation=='horizontal'
+ 				cheight = options.getfieldvalue('colorbarheight',canvassize/20);
+@@ -242,8 +249,8 @@
+ 				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 				ccanvashtml = document.getElementById(ccanvasid);
+ 				if (ccanvashtml==null) {
+-					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+-					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset)/-2).toFixed(2)+'px'});
++					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset*2)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset*2)/-2).toFixed(2)+'px'});
+ 					ccontext = ccanvas[0].getContext('2d');
+ 				}
+ 				else{
+@@ -254,7 +261,7 @@
+ 						cheight = ccanvas.height();
+ 						//get html object instead of jqurey object to modify height/width to accomodate labels
+ 						ccanvashtml.width = cwidth+cheightoffset*6;
+-						ccanvashtml.height = cheight+cheightoffset;
++						ccanvashtml.height = cheight+cheightoffset*2;
+ 						ccanvashtml.cwidth = cwidth;
+ 						ccanvashtml.cheight = cheight;
+ 						ccanvashtml.init = true;
+@@ -265,7 +272,7 @@
+ 					}
+ 					ccontext = ccanvas[0].getContext('2d');
+ 					/*erase existing colorbar:*/
+-					ccontext.clearRect(0,0, cwidth*4, cheight+cheightoffset);
++					ccontext.clearRect(0,0, ccanvashtml.width, ccanvashtml.height);
+ 					ccontext.beginPath();
+ 				}
+ 				var cgradient = ccontext.createLinearGradient(cwidth+cwidthoffset,0,cwidthoffset,0);
+@@ -278,29 +285,36 @@
+ 					cgradient.addColorStop(i/colorbar.length,'rgba('+color.toString()+',1.0)');
+ 				}
+ 				ccontext.fillStyle=cgradient;
+-				ccontext.fillRect(cwidthoffset,0,cwidth,cheight);
++				ccontext.fillRect(cwidthoffset,cheightoffset,cwidth,cheight);
+ 				
+ 				//Draw colorbar border
+ 				ccontext.beginPath();
+ 				ccontext.lineWidth='1';
+ 				ccontext.strokeStyle='black';
+-				ccontext.rect(cwidthoffset,0,cwidth,cheight);
++				ccontext.rect(cwidthoffset,cheightoffset,cwidth,cheight);
+ 				ccontext.stroke();
+ 				
+ 				for (var i = 0; i <= cdivisions; i++) {
+ 					y = 0.2*cheight;
+ 					x = i/cdivisions*cwidth;
+ 					ccontext.beginPath();
+-					ccontext.moveTo(x+cwidthoffset,0);
+-					ccontext.lineTo(x+cwidthoffset,y);
+-					ccontext.moveTo(x+cwidthoffset,cheight-y);
+-					ccontext.lineTo(x+cwidthoffset,cheight);
++					ccontext.moveTo(x+cwidthoffset,cheightoffset);
++					ccontext.lineTo(x+cwidthoffset,y+cheightoffset);
++					ccontext.moveTo(x+cwidthoffset,cheight-y+cheightoffset);
++					ccontext.lineTo(x+cwidthoffset,cheight+cheightoffset);
+ 					ccontext.stroke();
+ 					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='center';
+-					ccontext.fillText(labels[cdivisions-i],x+cwidthoffset,cheight+cheightoffset);
++					ccontext.fillText(labels[cdivisions-i],x+cwidthoffset,cheight+cheightoffset*2);
+ 				}
++				if (options.exist('colorbartitle')) {
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.fillStyle='black';
++					ccontext.textAlign='center';
++					ccontext.textBaseline='bottom';
++					ccontext.fillText(options.getfieldvalue('colorbartitle'),cwidth/2+cwidthoffset,cheightoffset);
++				}
+ 			}
+ 			/* //{{{
+ 			if exist(options,'wrapping')
Index: /issm/oecreview/Archive/19101-20495/ISSM-19884-19885.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19884-19885.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19884-19885.diff	(revision 20498)
@@ -0,0 +1,158 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19884)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19885)
+@@ -14,11 +14,17 @@
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+-	var datamin,datamax;
++	var datamin,datamax,datadelta;
+ 	var scale;
+ 
+ 	//Process data and model
+-	var meshresults = processmesh(md,data,options);
++	var meshresults;
++	if (data["1"] instanceof Float64Array) {
++		meshresults = processmesh(md,data["1"],options);
++	}
++	else {
++		meshresults = processmesh(md,data,options);
++	}
+ 	var x = meshresults[0]; 
+ 	var y = meshresults[1]; 
+ 	var z = meshresults[2]; 
+@@ -26,9 +32,17 @@
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+ 	
+-	var dataresults = processdata(md,data,options);
+-	var data2 = dataresults[0]; 
+-	var datatype = dataresults[1];
++	var dataresults, data2, datatype;
++	if (data["1"] instanceof Float64Array) {
++		dataresults = processdata(md,data["1"],options);
++		data2 = dataresults[0]; 
++		datatype = dataresults[1];
++	}
++	else {
++		dataresults = processdata(md,data,options);
++		data2 = dataresults[0]; 
++		datatype = dataresults[1];
++	}
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -44,9 +58,7 @@
+ 	ymax = ylim[1];
+ 	zmin = zlim[0];
+ 	zmax = zlim[1];
+-	var caxis= options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+-	datamin = caxis[0];
+-	datamax = caxis[1];
++	var caxis;
+ 
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+@@ -60,9 +72,6 @@
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 		
+-	//some defaults:
+-	texcoords.itemSize = 2;
+-
+ 	switch(datatype){
+ 
+ 		//element plot {{{
+@@ -114,16 +123,68 @@
+ 			else{ //triangular elements
+ 			
+ 				vertices.itemSize = 3;
+-				var cmap=options.getfieldvalue('cmap','jet');	
+-				for(var i = 0; i < x.length; i++){
+-					vertices[vertices.length] = x[i];
+-					vertices[vertices.length] = y[i];
+-					vertices[vertices.length] = z[i];
++				var cmap=options.getfieldvalue('cmap','jet');
++				//If handling movie data, compute vertices once and texcoords for each movie frame
++				if (data["1"] instanceof Float64Array) {
++					for(var i = 0; i < x.length; i++){
++						vertices[vertices.length] = x[i];
++						vertices[vertices.length] = y[i];
++						vertices[vertices.length] = z[i];
++					}	
+ 
+-					texcoords[texcoords.length] = 0.5;
+-					texcoords[texcoords.length] = (data[i] - datamin) / (datamax - datamin);
++					var datasubarray;
++					for(var i = 0; i < data.length-1; i++){
++						//Prevent evaluation of datasubarray min/max if caxis exists
++						datasubarray = data[String(i+1)];
++						if (options.exist('caxis')) {
++							caxis = options.getfieldvalue('caxis');
++						}
++						else {
++							caxis = [ArrayMin(datasubarray),ArrayMax(datasubarray)];
++						}
++						datamin = caxis[0];
++						datamax = caxis[1];
++						datadelta = datamax - datamin;
++						
++						//Precalculate arrays for each datasubarray
++						texcoords[i] = [];
++						texcoords[i].itemSize = 2;
++						for(var j = 0; j < x.length; j++){
++							texcoords[i][texcoords[i].length] = 0.5;
++							texcoords[i][texcoords[i].length] = (datasubarray[j] - datamin) / datadelta;
++						}
++					}
++					
++					//Initialize movie loop
++					node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
++					node["movieLength"] = data.length;
++					node["movieFrame"] = 0;
++					node["movieHandler"] = function () {
++							node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]-1);
++							var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
++							node["buffers"] = initBuffers(gl,array);
++							if (true) {
++								setTimeout(node["movieHandler"], node["movieInterval"]);
++							}
++						};
++					setTimeout(node["movieHandler"], node["movieInterval"]);
+ 				}
+-				
++				else {
++					caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++					datamin = caxis[0];
++					datamax = caxis[1];
++					datadelta = datamax - datamin;
++					texcoords.itemSize = 2;
++					for(var i = 0; i < x.length; i++){
++						vertices[vertices.length] = x[i];
++						vertices[vertices.length] = y[i];
++						vertices[vertices.length] = z[i];
++
++						texcoords[texcoords.length] = 0.5;
++						texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
++					}
++				}
++
+ 				//linearize the elements array: 
+ 				indices = indices.concat.apply(indices, elements); 
+ 				indices.itemSize = 1;
+@@ -148,6 +209,12 @@
+ 	}
+ 	
+ 	/*Initalize buffers: */
+-	node["arrays"] = [vertices, texcoords, indices];
+-	node["buffers"] = initBuffers(gl,node["arrays"]);
++	if (data["1"] instanceof Float64Array) {
++		node["arrays"] = [vertices, texcoords, indices];
++		node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][0],node["arrays"][2]]);
++	}
++	else {
++		node["arrays"] = [vertices, texcoords, indices];
++		node["buffers"] = initBuffers(gl,node["arrays"]);
++	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19885-19886.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19885-19886.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19885-19886.diff	(revision 20498)
@@ -0,0 +1,116 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19885)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19886)
+@@ -18,13 +18,7 @@
+ 	var scale;
+ 
+ 	//Process data and model
+-	var meshresults;
+-	if (data["1"] instanceof Float64Array) {
+-		meshresults = processmesh(md,data["1"],options);
+-	}
+-	else {
+-		meshresults = processmesh(md,data,options);
+-	}
++	var meshresults = processmesh(md,data,options);
+ 	var x = meshresults[0]; 
+ 	var y = meshresults[1]; 
+ 	var z = meshresults[2]; 
+@@ -32,17 +26,9 @@
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+ 	
+-	var dataresults, data2, datatype;
+-	if (data["1"] instanceof Float64Array) {
+-		dataresults = processdata(md,data["1"],options);
+-		data2 = dataresults[0]; 
+-		datatype = dataresults[1];
+-	}
+-	else {
+-		dataresults = processdata(md,data,options);
+-		data2 = dataresults[0]; 
+-		datatype = dataresults[1];
+-	}
++	var	dataresults = processdata(md,data,options);
++	var	data2 = dataresults[0]; 
++	var	datatype = dataresults[1];
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -125,22 +111,25 @@
+ 				vertices.itemSize = 3;
+ 				var cmap=options.getfieldvalue('cmap','jet');
+ 				//If handling movie data, compute vertices once and texcoords for each movie frame
+-				if (data["1"] instanceof Float64Array) {
++				if (data[0] instanceof Float64Array) {
+ 					for(var i = 0; i < x.length; i++){
+ 						vertices[vertices.length] = x[i];
+ 						vertices[vertices.length] = y[i];
+ 						vertices[vertices.length] = z[i];
+ 					}	
+-
+-					var datasubarray;
++					//Transpose data to obtain column addressable data matrix
++					data = data[0].map(function(col, i) { 
++						return data.map(function(row) { 
++							return row[i]
++						})
++					});
+ 					for(var i = 0; i < data.length-1; i++){
+ 						//Prevent evaluation of datasubarray min/max if caxis exists
+-						datasubarray = data[String(i+1)];
+ 						if (options.exist('caxis')) {
+ 							caxis = options.getfieldvalue('caxis');
+ 						}
+ 						else {
+-							caxis = [ArrayMin(datasubarray),ArrayMax(datasubarray)];
++							caxis = [ArrayMin(data[i]),ArrayMax(data[i])];
+ 						}
+ 						datamin = caxis[0];
+ 						datamax = caxis[1];
+@@ -151,13 +140,13 @@
+ 						texcoords[i].itemSize = 2;
+ 						for(var j = 0; j < x.length; j++){
+ 							texcoords[i][texcoords[i].length] = 0.5;
+-							texcoords[i][texcoords[i].length] = (datasubarray[j] - datamin) / datadelta;
++							texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
+ 						}
+ 					}
+ 					
+ 					//Initialize movie loop
+ 					node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
+-					node["movieLength"] = data.length;
++					node["movieLength"] = data[0].length;
+ 					node["movieFrame"] = 0;
+ 					node["movieHandler"] = function () {
+ 							node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]-1);
+@@ -209,7 +198,7 @@
+ 	}
+ 	
+ 	/*Initalize buffers: */
+-	if (data["1"] instanceof Float64Array) {
++	if (data[0] instanceof Float64Array) {
+ 		node["arrays"] = [vertices, texcoords, indices];
+ 		node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][0],node["arrays"][2]]);
+ 	}
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19885)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19886)
+@@ -356,7 +356,6 @@
+ 	}
+ } //}}}
+ function draw(gl,options,canvas,nodes) { //{{{
+-
+ 	// Set clear color to black, fully opaque
+ 	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
+ 	if(backgroundcolor.ok){
+@@ -369,6 +368,7 @@
+ 
+ 	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
+ 	updateCameraMatrix(canvas);
++	
+ 	var drawPassNumber = 2;
+ 	for (var i = drawPassNumber - 1; i >= 0; i--) {
+ 		for (var node in nodes) {
Index: /issm/oecreview/Archive/19101-20495/ISSM-19886-19887.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19886-19887.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19886-19887.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/array/arrayoperations.js
+===================================================================
+--- ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19886)
++++ ../trunk-jpl/src/m/array/arrayoperations.js	(revision 19887)
+@@ -160,10 +160,19 @@
+ } //}}}
+ function ArrayAnyNaN(array) { //{{{
+ 
+-	for(var i=0;i<array.length;i++){
+-		if (isNaN(array[i])) return 1;
+-	}
+-	return 0;
++    if(IsArray(array[0])){
++        for(var i=0;i<array.length;i++){
++            for(var j=0;j<array[0].length;j++){
++                if (isNaN(array[i][j])) return 1;
++            }
++        }
++    }
++    else{
++        for(var i=0;i<array.length;i++){
++            if (isNaN(array[i])) return 1;
++        }
++    }
++    return 0;
+ } //}}}
+ function ArrayUnique(arr) { //{{{
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19887-19888.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19887-19888.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19887-19888.diff	(revision 20498)
@@ -0,0 +1,231 @@
+Index: ../trunk-jpl/src/m/plot/processdata.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.js	(revision 19887)
++++ ../trunk-jpl/src/m/plot/processdata.js	(revision 19888)
+@@ -5,6 +5,7 @@
+ 	//   datatype = 2 -> nodes
+ 	//   datatype = 3 -> node quivers
+ 	//   datatype = 4 -> patch
++	//   datatype = 5 -> nodes transient
+ 	//
+ 	//   Usage:
+ 	//      var array = processdata(md,data,options);
+@@ -60,6 +61,7 @@
+ 		throw Error('plotmodel error message: data not supported yet');
+ 	}
+ 
++
+ 	//quiver?
+ 	if (data[0].length>1){
+ 		datatype=3;
+@@ -193,6 +195,12 @@
+ 		   }
+ 		}
+ 	}
++	
++	//node transient data
++    if (datasize==md.mesh.numberofvertices+1){
++        datatype=5;
++    }
++	
+ 
+ 	//layer projection? 
+ 	if (options.getfieldvalue('layer',0)>=1){
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19887)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19888)
+@@ -57,7 +57,7 @@
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+-		
++		console.log(data,datatype);
+ 	switch(datatype){
+ 
+ 		//element plot {{{
+@@ -106,72 +106,21 @@
+ 				  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
+ 				  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
+ 			}
+-			else{ //triangular elements
+-			
++			else{ //triangular elements	
++				caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
++				datamin = caxis[0];
++				datamax = caxis[1];
++				datadelta = datamax - datamin;
++
+ 				vertices.itemSize = 3;
+-				var cmap=options.getfieldvalue('cmap','jet');
+-				//If handling movie data, compute vertices once and texcoords for each movie frame
+-				if (data[0] instanceof Float64Array) {
+-					for(var i = 0; i < x.length; i++){
+-						vertices[vertices.length] = x[i];
+-						vertices[vertices.length] = y[i];
+-						vertices[vertices.length] = z[i];
+-					}	
+-					//Transpose data to obtain column addressable data matrix
+-					data = data[0].map(function(col, i) { 
+-						return data.map(function(row) { 
+-							return row[i]
+-						})
+-					});
+-					for(var i = 0; i < data.length-1; i++){
+-						//Prevent evaluation of datasubarray min/max if caxis exists
+-						if (options.exist('caxis')) {
+-							caxis = options.getfieldvalue('caxis');
+-						}
+-						else {
+-							caxis = [ArrayMin(data[i]),ArrayMax(data[i])];
+-						}
+-						datamin = caxis[0];
+-						datamax = caxis[1];
+-						datadelta = datamax - datamin;
+-						
+-						//Precalculate arrays for each datasubarray
+-						texcoords[i] = [];
+-						texcoords[i].itemSize = 2;
+-						for(var j = 0; j < x.length; j++){
+-							texcoords[i][texcoords[i].length] = 0.5;
+-							texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
+-						}
+-					}
+-					
+-					//Initialize movie loop
+-					node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
+-					node["movieLength"] = data[0].length;
+-					node["movieFrame"] = 0;
+-					node["movieHandler"] = function () {
+-							node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]-1);
+-							var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
+-							node["buffers"] = initBuffers(gl,array);
+-							if (true) {
+-								setTimeout(node["movieHandler"], node["movieInterval"]);
+-							}
+-						};
+-					setTimeout(node["movieHandler"], node["movieInterval"]);
+-				}
+-				else {
+-					caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+-					datamin = caxis[0];
+-					datamax = caxis[1];
+-					datadelta = datamax - datamin;
+-					texcoords.itemSize = 2;
+-					for(var i = 0; i < x.length; i++){
+-						vertices[vertices.length] = x[i];
+-						vertices[vertices.length] = y[i];
+-						vertices[vertices.length] = z[i];
++				texcoords.itemSize = 2;
++				for(var i = 0; i < x.length; i++){
++					vertices[vertices.length] = x[i];
++					vertices[vertices.length] = y[i];
++					vertices[vertices.length] = z[i];
+ 
+-						texcoords[texcoords.length] = 0.5;
+-						texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
+-					}
++					texcoords[texcoords.length] = 0.5;
++					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
+ 				}
+ 
+ 				//linearize the elements array: 
+@@ -180,6 +129,9 @@
+ 				for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+ 
+ 			}
++			//Initalize buffers
++			node["arrays"] = [vertices, texcoords, indices];
++			node["buffers"] = initBuffers(gl,node["arrays"]);
+ 			break;
+ 		//}}}
+ 		//quiver plot {{{
+@@ -191,19 +143,78 @@
+ 			else{
+ 				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
+ 			}
++			break;
++			
++		//}}}
++		//node transient plot {{{
++		case 5:
++			if (elements[0].length==6){ //prisms
++			}
++			else if (elements[0].length==4){//tetras
++			}
++			else{ //triangular elements
++				vertices.itemSize = 3;
++				for(var i = 0; i < x.length; i++){
++					vertices[vertices.length] = x[i];
++					vertices[vertices.length] = y[i];
++					vertices[vertices.length] = z[i];
++				}	
++				
++				//Transpose data to obtain column addressable data matrix
++				data = data[0].map(function(col, i) { 
++					return data.map(function(row) { 
++						return row[i]
++					})
++				});
++				
++				for(var i = 0; i < data.length-1; i++){
++					//Prevent evaluation of datasubarray min/max if caxis exists
++					if (options.exist('caxis')) {
++						caxis = options.getfieldvalue('caxis');
++					}
++					else {
++						caxis = [ArrayMin(data[i]),ArrayMax(data[i].slice(0,-1))];
++					}
++					datamin = caxis[0];
++					datamax = caxis[1];
++					datadelta = datamax - datamin;
+ 
++					//Precalculate arrays for each datasubarray
++					texcoords[i] = [];
++					texcoords[i].itemSize = 2;
++					for(var j = 0; j < x.length; j++){
++						texcoords[i][texcoords[i].length] = 0.5;
++						texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
++					}
++				}
++				console.log(texcoords);
++				
++				//linearize the elements array: 
++				indices = indices.concat.apply(indices, elements); 
++				indices.itemSize = 1;
++				for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
++				
++				//Initialize movie loop
++				node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
++				node["movieLength"] = data.length-1;
++				node["movieFrame"] = 0;
++				node["movieHandler"] = function () {
++						node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]);
++						console.log(node["movieFrame"]);
++						var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
++						node["buffers"] = initBuffers(gl,array);
++						setTimeout(node["movieHandler"], node["movieInterval"]);
++					};
++				setTimeout(node["movieHandler"], node["movieInterval"]);
++			}
++			
++			//Initalize buffers
++			node["arrays"] = [vertices, texcoords, indices];
++			node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][0],node["arrays"][2]]);
++			break;
+ 		//}}}
++			
+ 		default:
+ 			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
+ 	}
+-	
+-	/*Initalize buffers: */
+-	if (data[0] instanceof Float64Array) {
+-		node["arrays"] = [vertices, texcoords, indices];
+-		node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][0],node["arrays"][2]]);
+-	}
+-	else {
+-		node["arrays"] = [vertices, texcoords, indices];
+-		node["buffers"] = initBuffers(gl,node["arrays"]);
+-	}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19888-19889.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19888-19889.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19888-19889.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19888)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19889)
+@@ -57,7 +57,6 @@
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+-		console.log(data,datatype);
+ 	switch(datatype){
+ 
+ 		//element plot {{{
+@@ -187,7 +186,6 @@
+ 						texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
+ 					}
+ 				}
+-				console.log(texcoords);
+ 				
+ 				//linearize the elements array: 
+ 				indices = indices.concat.apply(indices, elements); 
+@@ -200,7 +198,6 @@
+ 				node["movieFrame"] = 0;
+ 				node["movieHandler"] = function () {
+ 						node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]);
+-						console.log(node["movieFrame"]);
+ 						var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
+ 						node["buffers"] = initBuffers(gl,array);
+ 						setTimeout(node["movieHandler"], node["movieInterval"]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19889-19890.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19889-19890.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19889-19890.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19889)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19890)
+@@ -135,7 +135,16 @@
+ 				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+ 			} else { 
+ 			}
+-			var caxis = options.getfieldvalue('caxis',[Math.min.apply(null,data),Math.max.apply(null,data)]);
++			
++			//Handle movie data
++			var	dataresults = processdata(md,data,options);
++			var	data2 = dataresults[0]; 
++			var	datatype = dataresults[1];
++			if (datatype == 5) {
++				data = data[node["movieFrame"]];
++			}
++			
++			var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+ 			var canvassize = options.getfieldvalue('canvassize',480);
+ 			var cheight;
+ 			var cwidth;
+@@ -249,7 +258,7 @@
+ 				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+ 				ccanvashtml = document.getElementById(ccanvasid);
+ 				if (ccanvashtml==null) {
+-					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset*2)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
++					ccanvas = $('<canvas id="'+ccanvasid+'" width="'+String(cwidth+cheightoffset*4)+'" height="'+String(cheight+cheightoffset*5/2)+'"></canvas>').insertAfter('#'+options.getfieldvalue('canvasid'));
+ 					ccanvas.css({'position':'relative','top':((canvassize-cheight-cheightoffset*2)/-2).toFixed(2)+'px'});
+ 					ccontext = ccanvas[0].getContext('2d');
+ 				}
+@@ -261,7 +270,7 @@
+ 						cheight = ccanvas.height();
+ 						//get html object instead of jqurey object to modify height/width to accomodate labels
+ 						ccanvashtml.width = cwidth+cheightoffset*6;
+-						ccanvashtml.height = cheight+cheightoffset*2;
++						ccanvashtml.height = cheight+cheightoffset*5/2;
+ 						ccanvashtml.cwidth = cwidth;
+ 						ccanvashtml.cheight = cheight;
+ 						ccanvashtml.init = true;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19890-19891.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19890-19891.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19890-19891.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19890)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19891)
+@@ -141,7 +141,14 @@
+ 			var	data2 = dataresults[0]; 
+ 			var	datatype = dataresults[1];
+ 			if (datatype == 5) {
+-				data = data[node["movieFrame"]];
++				//Transpose data to obtain column addressable data matrix
++				data = data[0].map(function(col, i) { 
++					return data.map(function(row) { 
++						return row[i]
++					})
++				});
++				data = data[node["movieFrame"]].slice(0,-1);
++				console.log(data);
+ 			}
+ 			
+ 			var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19890)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19891)
+@@ -172,7 +172,7 @@
+ 						caxis = options.getfieldvalue('caxis');
+ 					}
+ 					else {
+-						caxis = [ArrayMin(data[i]),ArrayMax(data[i].slice(0,-1))];
++						caxis = [ArrayMin(data[i].slice(0,-1)),ArrayMax(data[i].slice(0,-1))];
+ 					}
+ 					datamin = caxis[0];
+ 					datamax = caxis[1];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19891-19892.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19891-19892.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19891-19892.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19891)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19892)
+@@ -268,8 +268,8 @@
+ 			writejsdouble(fid,[modelname '.stressbalance.penalty_factor'],self.penalty_factor);
+ 			writejsdouble(fid,[modelname '.stressbalance.rift_penalty_lock'],self.rift_penalty_lock);
+ 			writejsdouble(fid,[modelname '.stressbalance.rift_penalty_threshold'],self.rift_penalty_threshold);
+-			writejs1Darray(fid,[modelname '.stressbalance.referential'],self.referential);
+-			writejs1Darray(fid,[modelname '.stressbalance.loadingforce'],self.loadingforce);
++			writejs2Darray(fid,[modelname '.stressbalance.referential'],self.referential);
++			writejs2Darray(fid,[modelname '.stressbalance.loadingforce'],self.loadingforce);
+ 			writejscellstring(fid,[modelname '.stressbalance.requested_outputs'],self.requested_outputs);
+ 
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19891)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19892)
+@@ -87,7 +87,7 @@
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+ 			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
+-			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
++			writejs2Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
+ 
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19892-19893.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19892-19893.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19892-19893.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19892)
++++ ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19893)
+@@ -804,7 +804,9 @@
+ 	/*convert from bytes to string: */
+ 	string=PyBytes_AS_STRING(py_bytes);
+ 
+-	*pstring=string;
++	/*copy string (note strlen does not include trailing NULL): */
++	*pstring=xNew<char>(strlen(string)+1);
++	memcpy(*pstring,string,(strlen(string)+1)*sizeof(char));
+ }
+ /*}}}*/
+ #else
Index: /issm/oecreview/Archive/19101-20495/ISSM-19893-19894.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19893-19894.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19893-19894.diff	(revision 20498)
@@ -0,0 +1,246 @@
+Index: ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m	(revision 19894)
+@@ -0,0 +1,29 @@
++function converttopowerof2(tiffname,pngname)
++%CONVERTTOPOWEROF2: read it a tiff, resize it so its xy dimensions are multiples of 2, and convert to png 
++%
++%  Usage:    converttopowerof2('temp.tif','temp.png')
++%
++
++	if ismac,
++		dyld_library_path_old=getenv('DYLD_LIBRARY_PATH');
++		setenv('DYLD_LIBRARY_PATH','/opt/local/lib:/usr/lib');
++	end
++
++	%figure out the size of the tiff
++	[status,width]=system(['tiffinfo ' tiffname ' 2>/dev/null | grep "Image Width" | awk ''{printf("%s\n",$3);}''']); 
++	[status,length]=system(['tiffinfo ' tiffname ' 2>/dev/null | grep "Image Width" | awk ''{printf("%s\n",$6);}''']);
++	width=str2num(width); length=str2num(length);
++
++	
++	%Now, figure out the highest multiple of 2 for both width and length:
++	width=2^nextpow2(width); length=2^nextpow2(length);
++
++	%convert image to that size: 
++	setenv('DYLD_LIBRARY_PATH','/opt/local/lib:/usr/lib');
++	
++	[status,result]=system(sprintf('convert %s -resize %ix%i %s',tiffname,width,length,pngname));
++	system(sprintf('rm -rf %s',tiffname));
++
++	%reset DYLD_LIBRARY_PATH to what it was:
++	if ismac, setenv('DYLD_LIBRARY_PATH',dyld_library_path_old); end
++end
+Index: ../trunk-jpl/src/m/plot/radarpower.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/radarpower.m	(revision 19893)
++++ ../trunk-jpl/src/m/plot/radarpower.m	(revision 19894)
+@@ -103,12 +103,9 @@
+ 		md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
+ 
+ 		%Erase image or keep it?
+-		if getfieldvalue(options,'keep_image',0),
+-			system(['mv ./temp.tif ' getfieldvalue(options,'image_name','temp.tif')]);
+-		else
++		if ~getfieldvalue(options,'keep_image',0),
+ 			system('rm -rf ./temp.tif');
+ 		end
+-
+ 	elseif md.mesh.epsg==3031,
+ 		if ~exist(options,'geotiff_name'),
+ 			if highres,
+@@ -139,7 +136,12 @@
+ 
+ 		%Erase image
+ 		system('rm -rf ./temp.tif');
++		%Erase image or keep it?
++		if ~getfieldvalue(options,'keep_image',0),
++			system('rm -rf ./temp.tif');
++		end
+ 
++
+ 	else
+ 		error('EPSG code not supported yet (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+ 	end
+@@ -169,3 +171,37 @@
+ 	md.radaroverlay.x=(x0:(x1-x0)/(size(md.radaroverlay.pwr,2)-1):x1);
+ 	md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
+ end
++
++%Was a triangulation requested for the area of the image that is not covered by the mesh?
++if getfieldvalue(options,'outertriangulation','yes'),
++
++	%create expfile that is a box controlled by xlim and ylim, with a hole defined by the mesh outer segments.
++	box.name='';
++	
++	%box: 
++	box.x=[xlim(1) xlim(2) xlim(2) xlim(1) xlim(1)];
++	box.y=[ylim(1) ylim(1) ylim(2) ylim(2) ylim(1)];
++	box.density=1;
++
++	%inner hole from mesh segments: 
++	box(2).x=[md.mesh.x(md.mesh.segments(:,1)); md.mesh.x(md.mesh.segments(end,2))];
++	box(2).x=[box(2).x; box(2).x(1)];
++	box(2).y=[md.mesh.y(md.mesh.segments(:,1)); md.mesh.y(md.mesh.segments(end,2))];
++	box(2).y=[box(2).y; box(2).y(1)];
++
++	box(2).x=flipud(box(2).x);
++	box(2).y=flipud(box(2).y);
++
++	%write contour to file
++	expwrite(box,'./outertriangulation.exp');
++
++	%mesh: 
++	maxarea=max(GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y));
++	outermd=triangle(model(),'./outertriangulation.exp',maxarea);
++	
++	%save the triangulation: 
++	md.radaroverlay.outerindex=outermd.mesh.elements;
++	md.radaroverlay.outerx=outermd.mesh.x;
++	md.radaroverlay.outery=outermd.mesh.y;
++
++end
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 19893)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 19894)
+@@ -13,6 +13,7 @@
+ 	middlemessage=options.getfieldvalue('middlemessage',message);
+ 	endmessage=options.getfieldvalue('endmessage',message);
+ 	color=options.getfieldvalue('color','#bbbbbb');
++	precision=options.getfieldvalue('precision',3);
+ 
+ 	$('<div id="slider_'+slidername+'"></div>').appendTo('#sliders');
+ 	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#sliders');
+@@ -47,12 +48,12 @@
+ 
+ function moveSlide(event,ui,info,middlemessage){
+ 	var val=ui.value;
+-	info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
++	info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
+ }
+ 
+ function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage){
+ 	var val=ui.value;
+-	info.text(middlemessage[0]+val.toPrecision(3).toString()+middlemessage[1]);
++	info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
+ 	functionvalue(val);
+-	info.text(endmessage[0]+val.toPrecision(3).toString()+endmessage[1]);
++	info.text(endmessage[0]+val.toPrecision(precision).toString()+endmessage[1]);
+ }
+Index: ../trunk-jpl/src/m/classes/radaroverlay.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/radaroverlay.m	(revision 19893)
++++ ../trunk-jpl/src/m/classes/radaroverlay.m	(revision 19894)
+@@ -8,6 +8,10 @@
+ 		pwr = NaN;
+ 		x   = NaN;
+ 		y   = NaN;
++		outerindex = NaN;
++		outerx = NaN;
++		outery = NaN;
++		outerheight = NaN;
+ 	end
+ 	methods
+ 		function self = radaroverlay(varargin) % {{{
+@@ -27,7 +31,23 @@
+ 			fielddisplay(self,'pwr','radar power image (matrix)');
+ 			fielddisplay(self,'x','corresponding x coordinates [m]');
+ 			fielddisplay(self,'y','corresponding y coordinates [m]');
++			fielddisplay(self,'outerindex','outer triangulation corresponding to space between mesh and the bounding box');
++			fielddisplay(self,'outerx','outer x corresponding to space between mesh and the bounding box');
++			fielddisplay(self,'outery','outer y corresponding to space between mesh and the bounding box');
++			fielddisplay(self,'outerheight','outer height corresponding to space between mesh and the bounding box');
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			if ~isnan(self.pwr),
++				writejs1Darray(fid,[modelname '.radaroverlay.xlim'],[min(self.x) max(self.x)]);
++				writejs1Darray(fid,[modelname '.radaroverlay.ylim'],[min(self.y) max(self.y)]);
++				writejs2Darray(fid,[modelname '.radaroverlay.outerindex'],self.outerindex);
++				writejs1Darray(fid,[modelname '.radaroverlay.outerx'],self.outerx);
++				writejs1Darray(fid,[modelname '.radaroverlay.outery'],self.outery);
++				writejs1Darray(fid,[modelname '.radaroverlay.outerheight'],self.outerheight)
++			end
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19893)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19894)
+@@ -1351,16 +1351,16 @@
+ 		eval(['delete ' name]);
+ 
+ 		end % }}}
+-		function savemodeljs(md,modelname,filename) % {{{
++		function savemodeljs(md,modelname,websiteroot) % {{{
+ 
+ 			%the goal of this routine is to save the model as a javascript array that can be included in any html 
+ 			%file: 
+ 
+ 			%disp: 
+-			disp(['saving model ''' modelname ''' in file ' filename]);
++			disp(['saving model ''' modelname ''' in file ' websiteroot '/js/' modelname '.js']);
+ 
+ 			%open file for writing and declare the model:
+-			fid=fopen(filename,'w');
++			fid=fopen([websiteroot '/js/' modelname '.js'],'w');
+ 			fprintf(fid,'var %s=new model();\n',modelname);
+ 
+ 			%now go through all the classes and fwrite all the corresponding fields: 
+@@ -1370,7 +1370,7 @@
+ 				field=fields{i};
+ 
+ 				%Some properties do not need to be saved
+-				if ismember(field,{'results' 'radaroverlay','cluster' }),
++				if ismember(field,{'results','cluster' }),
+ 					continue;
+ 				end
+ 
+Index: ../trunk-jpl/src/m/classes/timestepping.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.m	(revision 19893)
++++ ../trunk-jpl/src/m/classes/timestepping.m	(revision 19894)
+@@ -92,7 +92,6 @@
+ 			writejsdouble(fid,[modelname '.timestepping.time_adapt'],self.time_adapt);
+ 			writejsdouble(fid,[modelname '.timestepping.cfl_coefficient'],self.cfl_coefficient);
+ 			writejsdouble(fid,[modelname '.timestepping.interp_forcings'],self.interp_forcings);
+-			writejsdouble(fid,[modelname '.timestepping.in_years'],self.in_years);
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/radaroverlay.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/radaroverlay.js	(revision 19893)
++++ ../trunk-jpl/src/m/classes/radaroverlay.js	(revision 19894)
+@@ -10,16 +10,20 @@
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   radaroverlay parameters:'));
+ 
+-		fielddisplay(this,'pwr','radar power image (matrix)');
+-		fielddisplay(this,'x','corresponding x coordinates [m]');
+-		fielddisplay(this,'y','corresponding y coordinates [m]');
++		fielddisplay(this,'xlim','corresponding x boundaries[m]');
++		fielddisplay(this,'ylim','corresponding y boundaries [m]');
++		fielddisplay(this,'outerindex','outer triangulation between mesh and bounding box');
++		fielddisplay(this,'outerx','outer triangulation x coordinate between mesh and bounding box');
++		fielddisplay(this,'outery','outer triangulation y coordinate between mesh and bounding box');
+ 
+ 	}// }}}
+ 	//properties 
+ 	// {{{
+-	this.pwr = NaN;
+-	this.x   = NaN;
+-	this.y   = NaN;
++	this.xlim   = NaN;
++	this.ylim   = NaN;
++	this.outerindex   = NaN;
++	this.outerx   = NaN;
++	this.outery   = NaN;
+ 	this.setdefaultparameters();
+ 	//}}}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19894-19895.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19894-19895.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19894-19895.diff	(revision 20498)
@@ -0,0 +1,19899 @@
+Index: ../trunk-jpl/src/wrappers/python/include/pythonincludes.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/include/pythonincludes.h	(revision 19894)
++++ ../trunk-jpl/src/wrappers/python/include/pythonincludes.h	(revision 19895)
+@@ -10,7 +10,7 @@
+ 
+ #ifdef _HAVE_PYTHON_
+ 
+-#if _PYTHON_MAJOR_ == 2
++#if _PYTHON_MAJOR_ >= 2
+ #undef NPY_NO_DEPRECATED_API
+ #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+ #else
+Index: ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19894)
++++ ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19895)
+@@ -23,9 +23,9 @@
+ 	/*return internal value: */
+ 	if      (PyFloat_Check(py_float))
+ 		dscalar=PyFloat_AsDouble(py_float);
+-	else if (PyInt_Check(py_float))
+-		dscalar=(double)PyInt_AsLong(py_float);
+ 	else if (PyLong_Check(py_float))
++		dscalar=(double)PyLong_AsLong(py_float);
++	else if (PyLong_Check(py_float))
+ 		dscalar=PyLong_AsDouble(py_float);
+ 	else if (PyBool_Check(py_float))
+ 		dscalar=(double)PyLong_AsLong(py_float);
+@@ -46,8 +46,8 @@
+ 	int iscalar;
+ 
+ 	/*return internal value: */
+-	if      (PyInt_Check(py_long))
+-		iscalar=(int)PyInt_AsLong(py_long);
++	if      (PyLong_Check(py_long))
++		iscalar=(int)PyLong_AsLong(py_long);
+ 	else if (PyLong_Check(py_long))
+ 		iscalar=(int)PyLong_AsLong(py_long);
+ 	else if (PyFloat_Check(py_long))
+@@ -73,10 +73,10 @@
+ 	/*return internal value: */
+ 	if      (PyBool_Check(py_boolean))
+ 		bscalar=(bool)PyLong_AsLong(py_boolean);
+-	else if (PyInt_Check(py_boolean))
+-		bscalar=(bool)PyInt_AsLong(py_boolean);
+ 	else if (PyLong_Check(py_boolean))
+ 		bscalar=(bool)PyLong_AsLong(py_boolean);
++	else if (PyLong_Check(py_boolean))
++		bscalar=(bool)PyLong_AsLong(py_boolean);
+ 	else if (PyTuple_Check(py_boolean) && (int)PyTuple_Size(py_boolean)==1)
+ 		FetchData(&bscalar,PyTuple_GetItem(py_boolean,(Py_ssize_t)0));
+ 	else if (PyList_Check(py_boolean) && (int)PyList_Size(py_boolean)==1)
+@@ -723,7 +723,7 @@
+ 
+ 	/*Fetch all options*/
+ 	for (int i=istart; i<nrhs; i=i+2){
+-		if (!PyString_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
++		if (!PyUnicode_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
+ 
+ 		FetchData(&name,PyTuple_GetItem(py_tuple,(Py_ssize_t)i));
+ 		if(i+1 == nrhs) _error_("Argument " << i+2 << " must exist and be value of option \"" << name << "\".");
+@@ -749,7 +749,7 @@
+ 	PyObject        *py_dicti    = NULL;
+ 	PyObject        *py_item     = NULL;
+ 
+-	if (PyString_Check(py_list)){
++	if (PyUnicode_Check(py_list)){
+ 		FetchData(&contourname,py_list);
+ 		contours=ExpRead<double>(contourname);
+ 	}
+Index: ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19894)
++++ ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19895)
+@@ -19,7 +19,7 @@
+ /*FUNCTION WriteData(PyObject* py_tuple,int index,int integer){{{*/
+ void WriteData(PyObject* py_tuple, int index, int integer){
+ 
+-	PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t((Py_ssize_t)integer));
++	PyTuple_SetItem(py_tuple, index, PyLong_FromSsize_t((Py_ssize_t)integer));
+ 
+ }/*}}}*/
+ /*FUNCTION WriteData(PyObject* py_tuple,int index,char* string){{{*/
+@@ -211,13 +211,13 @@
+ 	for (i=0; i<riftstruct->numrifts; i++) {
+ 		dict=PyDict_New();
+ 
+-		PyDict_SetItemString(dict,"numsegs"          ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
++		PyDict_SetItemString(dict,"numsegs"          ,PyLong_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
+ 		PyDict_SetItemString(dict,"segments"         ,PyArrayFromCopiedData(riftstruct->riftsnumsegments[i]    ,3,riftstruct->riftssegments[i]));
+ 		PyDict_SetItemString(dict,"pairs"            ,PyArrayFromCopiedData(riftstruct->riftsnumpairs[i]       ,2,riftstruct->riftspairs[i]));
+ 		PyDict_SetItemString(dict,"tips"             ,PyArrayFromCopiedData(1                                  ,2,&riftstruct->riftstips[2*i]));
+ 		PyDict_SetItemString(dict,"penaltypairs"     ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i]));
+-		PyDict_SetItemString(dict,"fill"             ,PyInt_FromSsize_t((Py_ssize_t)IceEnum));
+-		PyDict_SetItemString(dict,"friction"         ,PyInt_FromSsize_t((Py_ssize_t)0));
++		PyDict_SetItemString(dict,"fill"             ,PyLong_FromSsize_t((Py_ssize_t)IceEnum));
++		PyDict_SetItemString(dict,"friction"         ,PyLong_FromSsize_t((Py_ssize_t)0));
+ 		PyDict_SetItemString(dict,"fraction"         ,PyFloat_FromDouble(0.));
+ 		PyDict_SetItemString(dict,"fractionincrement",PyFloat_FromDouble(0.1));
+ 		PyDict_SetItemString(dict,"state"            ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],1,riftstruct->state[i]));
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19894)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19895)
+@@ -23,6 +23,7 @@
+ 	IssmDouble  value   = 0.;
+ 	char       *svalue   = NULL;
+ 
++
+ 	/*Boot module: */
+ 	MODULEBOOT();
+ 
+@@ -161,10 +162,12 @@
+ 	else
+ 	 WriteData(VALUE,value);
+ 
++
+ 	/*Clean up*/
+ 	xDelete<char>(name);
+ 	xDelete<char>(svalue);
+ 
+ 	/*end module: */
+ 	MODULEEND();
++
+ }
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19894)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19895)
+@@ -5,6 +5,7 @@
+ #ifndef _ISSMCONFIG_H
+ #define _ISSMCONFIG_H
+ 
++
+ #ifdef HAVE_CONFIG_H
+ 	#include <config.h>
+ #else
+Index: ../trunk-jpl/src/py3/os/issmscpin.py
+===================================================================
+--- ../trunk-jpl/src/py3/os/issmscpin.py	(revision 0)
++++ ../trunk-jpl/src/py3/os/issmscpin.py	(revision 19895)
+@@ -0,0 +1,68 @@
++from socket import gethostname
++import subprocess
++import os
++import shutil
++import MatlabFuncs as m
++
++def issmscpin(host, login,port,path, packages):
++	"""
++	ISSMSCPIN get packages from host, using scp on unix, and pscp on windows
++ 
++	   usage: issmscpin(host,packages,path)
++	"""
++
++	#first get hostname
++	hostname=gethostname()
++
++	#first be sure packages are not in the current directory, this could conflict with pscp on windows. 
++	#remove warnings in case the files do not exist
++	for package in packages:
++		try:
++			os.remove(package)
++		except OSError as e:
++			pass
++
++	#if hostname and host are the same, do a simple copy
++	if m.strcmpi(hostname,host):
++
++		for package in packages:
++			try:
++				shutil.copy(os.path.join(path,package),os.getcwd())    #keep going, even if success=0
++			except OSError as e:
++				pass
++
++	else:
++
++		if m.ispc():
++			#use the putty project pscp.exe: it should be in the path.
++		
++			#get ISSM_DIR variable
++			if 'ISSM_DIR_WIN' in os.environ:
++				ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2]
++			else:
++				raise OSError("issmscpin error message: could not find ISSM_DIR_WIN environment variable.")
++
++			username=input('Username: (quoted string) ')
++			key=input('Key: (quoted string) ')
++
++			for package in packages:
++				try:
++					subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s:%s %s' % (ISSM_DIR,username,key,host,os.path.join(path,package),os.getcwd()),shell=True)
++				except CalledProcessError as e:
++					raise CalledProcessError("issmscpin error message: could not call putty pscp.")
++
++		else:
++			#just use standard unix scp
++			#string to copy multiple files using scp: 
++			string='\{'+','.join([str(x) for x in packages])+'\}'
++			
++			if port:
++				subprocess.call('scp -P %d %s@localhost:%s %s/. ' % (port,login,os.path.join(path,string),os.getcwd()),shell=True)
++			else:
++				subprocess.call('scp %s@%s:%s %s/.' % (login,host,os.path.join(path,string),os.getcwd()),shell=True)
++		
++			#check scp worked
++			for package in packages:
++				if not os.path.exists(os.path.join('.',package)):
++					raise OSError("issmscpin error message: could not call scp on *nix system.")
++
+Index: ../trunk-jpl/src/py3/os/issmscpout.py
+===================================================================
+--- ../trunk-jpl/src/py3/os/issmscpout.py	(revision 0)
++++ ../trunk-jpl/src/py3/os/issmscpout.py	(revision 19895)
+@@ -0,0 +1,59 @@
++from socket  import gethostname
++import subprocess
++import os
++import MatlabFuncs as m
++
++def issmscpout(host,path,login,port,packages):
++	"""
++	ISSMSCPOUT send packages to a host, using scp on unix, and pscp on windows
++ 
++	   usage: issmscpout(host,path,packages)
++	"""
++
++	#get hostname
++	hostname=gethostname();
++
++	#if hostname and host are the same, do a simple copy
++
++	if m.strcmpi(host,hostname):
++		for package in packages:
++			here=os.getcwd()
++			os.chdir(path)
++			try:
++				os.remove(package)
++			except OSError as e:
++				pass
++			subprocess.call('ln -s %s %s' % (os.path.join(here,package),path),shell=True)
++			os.chdir(here)
++	else:
++		if m.ispc():
++			#use the putty project pscp.exe: it should be in the path.
++		
++			#get ISSM_DIR variable
++			if 'ISSM_DIR_WIN' in os.environ:
++				ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2]
++			else:
++				raise OSError("issmscpout error message: could not find ISSM_DIR_WIN environment variable.")
++
++			username=input('Username: (quoted string) ')
++			key=input('Key: (quoted string) ')
++
++			for package in packages:
++				try:
++					subprocess.check_call('%s/externalpackages/ssh/pscp.exe -l "%s" -pw "%s" %s %s:%s' % (ISSM_DIR,username,key,package,host,path),shell=True)
++				except CalledProcessError as e:
++					raise CalledProcessError("issmscpout error message: could not call putty pscp.")
++
++		else:
++			#just use standard unix scp
++			#create string of packages being sent
++			string=''
++			for package in packages:
++				string+=' '+package
++			string+=' '
++		
++			if port:
++				subprocess.call('scp -P %d %s %s@localhost:%s' % (port,string,login,path),shell=True)
++			else:
++				subprocess.call('scp %s %s@%s:%s' % (string,login,host,path),shell=True)
++
+Index: ../trunk-jpl/src/py3/os/issmssh.py
+===================================================================
+--- ../trunk-jpl/src/py3/os/issmssh.py	(revision 0)
++++ ../trunk-jpl/src/py3/os/issmssh.py	(revision 19895)
+@@ -0,0 +1,59 @@
++from socket import gethostname
++import subprocess
++import os
++import MatlabFuncs as m
++
++def issmssh(host,login,port,command):
++	"""
++	ISSMSSH - wrapper for OS independent ssh command.
++ 
++	   usage: 
++	      issmssh(host,command)
++	"""
++
++	#first get hostname 
++	hostname=gethostname()
++
++	#if same as host, just run the command. 
++	if m.strcmpi(host,hostname):
++		subprocess.call(command,shell=True)
++	else:
++		if m.ispc():
++			#use the putty project plink.exe: it should be in the path.
++		
++			#get ISSM_DIR variable
++			if 'ISSM_DIR_WIN' in os.environ:
++				ISSM_DIR=os.environ['ISSM_DIR_WIN'][1:-2]
++			else:
++				raise OSError("issmssh error message: could not find ISSM_DIR_WIN environment variable.")
++
++			username=input('Username: (quoted string) ')
++			key=input('Key: (quoted string) ')
++
++			subprocess.call('%s/externalpackages/ssh/plink.exe -ssh -l "%s" -pw "%s" %s "%s"' % (ISSM_DIR,username,key,host,command),shell=True);
++
++		else:
++			#just use standard unix ssh
++			if port:
++				subprocess.call('ssh -l %s -p %d localhost "%s"' % (login,port,command),shell=True)
++			else:
++				subprocess.call('ssh -l %s %s "%s"' % (login,host,command),shell=True)
++
++	# The following code was added to fix:
++	# "IOError: [Errno 35] Resource temporarily unavailable"
++	# on the Mac when trying to display md after the solution.
++	# (from http://code.google.com/p/robotframework/issues/detail?id=995)
++
++	# Make FreeBSD use blocking I/O like other platforms
++	import sys
++	import fcntl
++	from os import O_NONBLOCK
++
++	fd = sys.stdin.fileno()
++	flags = fcntl.fcntl(fd, fcntl.F_GETFL)
++	fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK)
++
++	fd = sys.stdout.fileno()
++	flags = fcntl.fcntl(fd, fcntl.F_GETFL)
++	fcntl.fcntl(fd, fcntl.F_SETFL, flags & ~O_NONBLOCK)
++
+Index: ../trunk-jpl/src/py3/os/issmdir.py
+===================================================================
+--- ../trunk-jpl/src/py3/os/issmdir.py	(revision 0)
++++ ../trunk-jpl/src/py3/os/issmdir.py	(revision 19895)
+@@ -0,0 +1,23 @@
++import os
++import MatlabFuncs as m
++
++def issmdir():
++	"""
++	ISSMDIR - Get ISSM_DIR environment variable
++ 
++	   Usage:
++	      ISSM_DIR=issmdir()
++	"""
++
++	if not m.ispc():
++		ISSM_DIR =os.environ['ISSM_DIR']
++	else:
++		ISSM_DIR =os.environ['ISSM_DIR_WIN']
++		if m.strcmpi(ISSM_DIR[-1],'/') or m.strcmpi(ISSM_DIR[-1],'\\'):
++			ISSM_DIR = ISSM_DIR[:-1]    #shave off the last '/'
++
++	if not ISSM_DIR:
++		raise RuntimeError("issmdir error message: 'ISSM_DIR' environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!")
++
++	return ISSM_DIR
++
+Index: ../trunk-jpl/src/py3/materials/paterson.py
+===================================================================
+--- ../trunk-jpl/src/py3/materials/paterson.py	(revision 0)
++++ ../trunk-jpl/src/py3/materials/paterson.py	(revision 19895)
+@@ -0,0 +1,79 @@
++import numpy
++
++def paterson(temperature):
++	"""
++	PATERSON - figure out the rigidity of ice for a given temperature
++
++	   rigidity (in s^(1/3)Pa) is the flow law paramter in the flow law sigma=B*e(1/3) (Paterson, p97). 
++	   temperature is in Kelvin degrees
++
++	   Usage:
++	      rigidity=paterson(temperature)
++	"""
++	
++	if numpy.any(temperature<0.):
++		raise RuntimeError("input temperature should be in Kelvin (positive)")
++
++	if numpy.ndim(temperature)==2:
++		#T = temperature.reshape(-1,)-273.15
++		T = temperature.flatten()-273.15
++	elif isinstance(temperature,float) or isinstance(temperature,int):
++		T = numpy.array([temperature])-273.15
++	else:
++		T = temperature-273.15
++
++	#The routine below is equivalent to:
++
++	# n=3; T=temperature-273;
++	# %From paterson,
++	# Temp=[0;-2;-5;-10;-15;-20;-25;-30;-35;-40;-45;-50];
++	# A=[6.8*10^-15;2.4*10^-15;1.6*10^-15;4.9*10^-16;2.9*10^-16;1.7*10^-16;9.4*
++	# 10^-17;5.1*10^-17;2.7*10^-17;1.4*10^-17;7.3*10^-18;3.6*10^-18];;%s-1(kPa-3)
++	# %Convert into rigidity B
++	# B=A.^(-1/n)*10^3; %s^(1/3)Pa
++	# %Now, do a cubic fit between Temp and B: 
++	# fittedmodel=fit(Temp,B,'cubicspline');
++	# rigidity=fittedmodel(temperature);
++
++	rigidity=numpy.zeros_like(T)
++	pos1=numpy.nonzero(T<=-45)[0]
++	if len(pos1):
++		rigidity[pos1]=10**8*(-0.000292866376675*(T[pos1]+50)**3+ 0.011672640664130*(T[pos1]+50)**2  -0.325004442485481*(T[pos1]+50)+  6.524779401948101)
++	pos2=numpy.nonzero(numpy.logical_and(-45<=T,T<-40))[0]
++	if len(pos2):
++		rigidity[pos2]=10**8*(-0.000292866376675*(T[pos2]+45)**3+ 0.007279645014004*(T[pos2]+45)**2  -0.230243014094813*(T[pos2]+45)+  5.154964909039554)
++	pos3=numpy.nonzero(numpy.logical_and(-40<=T,T<-35))[0]
++	if len(pos3):
++		rigidity[pos3]=10**8*(0.000072737147457*(T[pos3]+40)**3+  0.002886649363879*(T[pos3]+40)**2  -0.179411542205399*(T[pos3]+40)+  4.149132666831214)
++	pos4=numpy.nonzero(numpy.logical_and(-35<=T,T<-30))[0]
++	if len(pos4):
++		rigidity[pos4]=10**8*(-0.000086144770023*(T[pos4]+35)**3+ 0.003977706575736*(T[pos4]+35)**2  -0.145089762507325*(T[pos4]+35)+  3.333333333333331)
++	pos5=numpy.nonzero(numpy.logical_and(-30<=T,T<-25))[0]
++	if len(pos5):
++		rigidity[pos5]=10**8*(-0.000043984685769*(T[pos5]+30)**3+ 0.002685535025386*(T[pos5]+30)**2  -0.111773554501713*(T[pos5]+30)+  2.696559088937191)
++	pos6=numpy.nonzero(numpy.logical_and(-25<=T,T<-20))[0]
++	if len(pos6):
++		rigidity[pos6]=10**8*(-0.000029799523463*(T[pos6]+25)**3+ 0.002025764738854*(T[pos6]+25)**2  -0.088217055680511*(T[pos6]+25)+  2.199331606342181)
++	pos7=numpy.nonzero(numpy.logical_and(-20<=T,T<-15))[0]
++	if len(pos7):
++		rigidity[pos7]=10**8*(0.000136920904777*(T[pos7]+20)**3+  0.001578771886910*(T[pos7]+20)**2  -0.070194372551690*(T[pos7]+20)+  1.805165505978111)
++	pos8=numpy.nonzero(numpy.logical_and(-15<=T,T<-10))[0]
++	if len(pos8):
++		rigidity[pos8]=10**8*(-0.000899763781026*(T[pos8]+15)**3+ 0.003632585458564*(T[pos8]+15)**2  -0.044137585824322*(T[pos8]+15)+  1.510778053489523)
++	pos9=numpy.nonzero(numpy.logical_and(-10<=T,T<-5))[0]
++	if len(pos9):
++		rigidity[pos9]=10**8*(0.001676964325070*(T[pos9]+10)**3-  0.009863871256831*(T[pos9]+10)**2  -0.075294014815659*(T[pos9]+10)+  1.268434288203714)
++	pos10=numpy.nonzero(numpy.logical_and(-5<=T,T<-2))[0]
++	if len(pos10):
++		rigidity[pos10]=10**8*(-0.003748937622487*(T[pos10]+5)**3+0.015290593619213*(T[pos10]+5)**2  -0.048160403003748*(T[pos10]+5)+  0.854987973338348)
++	pos11=numpy.nonzero(-2<=T)[0]
++	if len(pos11):
++		rigidity[pos11]=10**8*(-0.003748937622488*(T[pos11]+2)**3-0.018449844983174*(T[pos11]+2)**2  -0.057638157095631*(T[pos11]+2)+  0.746900791092860)
++
++	#Now make sure that rigidity is positive
++	pos=numpy.nonzero(rigidity<0)[0]
++	if len(pos):
++		rigidity[pos]=1.e6 
++
++	return rigidity
++
+Index: ../trunk-jpl/src/py3/materials/DepthAvgTempCond.py
+===================================================================
+--- ../trunk-jpl/src/py3/materials/DepthAvgTempCond.py	(revision 0)
++++ ../trunk-jpl/src/py3/materials/DepthAvgTempCond.py	(revision 19895)
+@@ -0,0 +1,34 @@
++import numpy as npy
++from TMeltingPoint  import TMeltingPoint
++
++def DepthAvgTempCond(md):
++   ''' compute conduction dependent temperature profile for an ice sheet. 
++   Usage:
++   Tbar=DepthAvgTempCond(md)
++   '''
++
++   Tpmp=TMeltingPoint(md.materials.meltingpoint,0) #pressure melting point at 0 pressure.
++
++   k=md.materials.thermalconductivity
++   G=md.basalforcings.geothermalflux
++   H=md.geometry.thickness
++   Ts=md.initialization.temperature
++   alpha=G*H/k
++
++   Tbar=npy.zeros(md.mesh.numberofvertices,)
++
++   #find temperature average when we are below melting point: 
++   pos=npy.nonzero( Ts+alpha < Tpmp)
++   if pos:
++	   Tbar[pos]=Ts[pos]+alpha[pos]/2 
++
++   pos=npy.nonzero( Ts+alpha>= Tpmp)
++   if pos:
++	   Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2/alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)/alpha[pos]
++   
++   #on ice shelf, easier: 
++   pos=npy.nonzero(md.mask.groundedice_levelset[0]<=0)
++   if pos:
++	   Tbar[pos]=(Ts[pos]+Tpmp)/2
++
++   return Tbar
+Index: ../trunk-jpl/src/py3/materials/TMeltingPoint.py
+===================================================================
+--- ../trunk-jpl/src/py3/materials/TMeltingPoint.py	(revision 0)
++++ ../trunk-jpl/src/py3/materials/TMeltingPoint.py	(revision 19895)
+@@ -0,0 +1,21 @@
++import numpy as npy
++
++def TMeltingPoint(reftemp,pressure):
++	'''
++	Calculate the pressure melting point of ice at a given pressure
++
++	reftemp is the melting temperature in K at atmospheric pressure (initialized in md.materials.meltingpoint)
++
++	pressure is in Pa
++
++	Usage:
++		Tm=TMeltingPoint(md.materials.meltingpoint,pressure)
++	'''
++
++	#variables
++	beta=7.9e-8
++
++	#ensure ref is same dimension as pressure
++	ref=reftemp*npy.ones_like(pressure)
++
++	return reftemp-beta*pressure
+Index: ../trunk-jpl/src/py3/materials/cuffey.py
+===================================================================
+--- ../trunk-jpl/src/py3/materials/cuffey.py	(revision 0)
++++ ../trunk-jpl/src/py3/materials/cuffey.py	(revision 19895)
+@@ -0,0 +1,49 @@
++import numpy
++
++def cuffey(temperature):
++	"""
++	CUFFEY - calculates ice rigidity as a function of temperature
++
++	   rigidity (in s^(1/3)Pa) is the flow law parameter in the flow law sigma=B*e(1/3)
++		(Cuffey and Paterson, p75). 
++	   temperature is in Kelvin degrees
++
++	   Usage:
++	      rigidity=cuffey(temperature)
++	"""
++	
++	if numpy.any(temperature<0.):
++		raise RuntimeError("input temperature should be in Kelvin (positive)")
++	
++	T = temperature.reshape(-1,)-273.15
++
++	rigidity=numpy.zeros_like(T)
++	pos=numpy.nonzero(T<=-45)
++	rigidity[pos]=10**8*(-0.000396645116301*(T[pos]+50)**3+ 0.013345579471334*(T[pos]+50)**2  -0.356868703259105*(T[pos]+50)+7.272363035371383)
++	pos=numpy.nonzero(numpy.logical_and(-45<=T,T<-40))
++	rigidity[pos]=10**8*(-0.000396645116301*(T[pos]+45)**3+ 0.007395902726819*(T[pos]+45)**2  -0.253161292268336*(T[pos]+45)+5.772078366321591)
++	pos=numpy.nonzero(numpy.logical_and(-40<=T,T<-35))
++	rigidity[pos]=10**8*(0.000408322072669*(T[pos]+40)**3+  0.001446225982305*(T[pos]+40)**2  -0.208950648722716*(T[pos]+40)+4.641588833612773)
++	pos=numpy.nonzero(numpy.logical_and(-35<=T,T<-30))
++	rigidity[pos]=10**8*(-0.000423888728124*(T[pos]+35)**3+ 0.007571057072334*(T[pos]+35)**2  -0.163864233449525*(T[pos]+35)+3.684031498640382)
++	pos=numpy.nonzero(numpy.logical_and(-30<=T,T<-25))
++	rigidity[pos]=10**8*(0.000147154327025*(T[pos]+30)**3+ 0.001212726150476*(T[pos]+30)**2  -0.119945317335478*(T[pos]+30)+3.001000667185614)
++	pos=numpy.nonzero(numpy.logical_and(-25<=T,T<-20))
++	rigidity[pos]=10**8*(-0.000193435838672*(T[pos]+25)**3+ 0.003420041055847*(T[pos]+25)**2  -0.096781481303861*(T[pos]+25)+2.449986525148220)
++	pos=numpy.nonzero(numpy.logical_and(-20<=T,T<-15))
++	rigidity[pos]=10**8*(0.000219771255067*(T[pos]+20)**3+  0.000518503475772*(T[pos]+20)**2  -0.077088758645767*(T[pos]+20)+2.027400665191131)
++	pos=numpy.nonzero(numpy.logical_and(-15<=T,T<-10))
++	rigidity[pos]=10**8*(-0.000653438900191*(T[pos]+15)**3+ 0.003815072301777*(T[pos]+15)**2  -0.055420879758021*(T[pos]+15)+1.682390865739973)
++	pos=numpy.nonzero(numpy.logical_and(-10<=T,T<-5))
++	rigidity[pos]=10**8*(0.000692439419762*(T[pos]+10)**3 -0.005986511201093 *(T[pos]+10)**2 -0.066278074254598*(T[pos]+10)+1.418983411970382)
++	pos=numpy.nonzero(numpy.logical_and(-5<=T,T<-2))
++	rigidity[pos]=10**8*(-0.000132282004110*(T[pos]+5)**3 +0.004400080095332*(T[pos]+5)**2    -0.074210229783403*(T[pos]+5)+ 1.024485188140279)
++	pos=numpy.nonzero(-2<=T)
++	rigidity[pos]=10**8*(-0.000132282004110*(T[pos]+2)**3 +0.003209542058346*(T[pos]+2)**2    -0.051381363322371*(T[pos]+2)+ 0.837883605537096)
++
++	#Now make sure that rigidity is positive
++	pos=numpy.nonzero(rigidity<0)
++	rigidity[pos]=1**6 
++
++	return rigidity
++
+Index: ../trunk-jpl/src/py3/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/solve.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/solve.py	(revision 19895)
+@@ -0,0 +1,132 @@
++import datetime
++import os
++import shutil
++from pairoptions import pairoptions
++from EnumDefinitions import *
++from EnumToString import EnumToString
++from ismodelselfconsistent import ismodelselfconsistent
++from marshall import marshall
++from waitonlock import waitonlock
++from loadresultsfromcluster import loadresultsfromcluster
++import MatlabFuncs as m
++
++def solve(md,solutionenum,**kwargs):
++	"""
++	SOLVE - apply solution sequence for this model
++ 
++	   Usage:
++	      md=solve(md,solutionenum,varargin)
++	      where varargin is a list of paired arguments of string OR enums
++ 
++	   solution types available comprise:
++	      - StressbalanceSolutionEnum
++	      - MasstransportSolutionEnum
++	      - ThermalSolutionEnum
++	      - SteadystateSolutionEnum
++	      - TransientSolutionEnum
++	      - BalancethicknessSolutionEnum
++	      - BedSlopeSolutionEnum
++	      - SurfaceSlopeSolutionEnum
++	      - HydrologySolutionEnum
++	      - FlaimSolutionEnum
++ 
++	   extra options:
++	      - loadonly : does not solve. only load results
++		  - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model
++		  - restart: 'directory name (relative to the execution directory) where the restart file is located.
++ 
++	   Examples:
++	      md=solve(md,StressbalanceSolutionEnum);
++	"""
++
++	#recover and process solve options
++	if EnumToString(solutionenum)[0][-8:] != 'Solution':
++		raise ValueError("solutionenum '%s' not supported!" % EnumToString(solutionenum)[0])
++	options=pairoptions(solutionenum=solutionenum,**kwargs)
++
++	#recover some fields
++	md.private.solution=solutionenum
++	cluster=md.cluster
++
++	#check model consistency
++	if m.strcmpi(options.getfieldvalue('checkconsistency','yes'),'yes'):
++		print("checking model consistency")
++		if solutionenum == FlaimSolutionEnum():
++			md.private.isconsistent=True
++			md.mesh.checkconsistency(md,solutionenum)
++			md.flaim.checkconsistency(md,solutionenum)
++			if not md.private.isconsistent:
++				raise RuntimeError("Model not consistent, see messages above.")
++		else:
++			ismodelselfconsistent(md)
++
++	#First, build a runtime name that is unique
++	restart=options.getfieldvalue('restart','')
++	if restart == 1:
++		pass #do nothing
++	else:
++		if restart:
++			md.private.runtimename=restart
++		else:
++			if options.getfieldvalue('runtimename',True):
++				c=datetime.datetime.now()
++				md.private.runtimename="%s-%02i-%02i-%04i-%02i-%02i-%02i-%i" % (md.miscellaneous.name,c.month,c.day,c.year,c.hour,c.minute,c.second,os.getpid())
++			else:
++				md.private.runtimename=md.miscellaneous.name 
++
++	#if running qmu analysis, some preprocessing of dakota files using models
++	#fields needs to be carried out. 
++	if md.qmu.isdakota:
++		md=preqmu(md,options)
++
++	#flaim analysis
++	if solutionenum == FlaimSolutionEnum():
++		md=flaim_sol(md,options)
++		[md.private.solution]=EnumToString(solutionenum)
++		return md
++
++	#Do we load results only?
++	if options.getfieldvalue('loadonly',False):
++		md=loadresultsfromcluster(md)
++		return md
++
++
++	#Write all input files
++	marshall(md)                                           # bin file
++	md.toolkits.ToolkitsFile(md.miscellaneous.name+'.toolkits')    # toolkits file
++	cluster.BuildQueueScript(md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota)    # queue file
++
++	#Stop here if batch mode
++	if m.strcmpi(options.getfieldvalue('batch','no'),'yes'):
++		print('batch mode requested: not launching job interactively')
++		print('launch solution sequence on remote cluster by hand')
++		return md
++
++	#Upload all required files: 
++	modelname = md.miscellaneous.name
++	filelist  = [modelname+'.bin ',modelname+'.toolkits ',modelname+'.queue ']
++	if md.qmu.isdakota:
++		filelist.append(modelname+'.qmu.in')
++
++	if not restart:
++		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
++	
++	#Launch job
++	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart)
++
++	#wait on lock
++	if md.settings.waitonlock>0:
++		#we wait for the done file
++		islock=waitonlock(md)
++		if islock==0:    #no results to be loaded
++			print('The results must be loaded manually with md=loadresultsfromcluster(md).')
++		else:            #load results
++			print('loading results from cluster')
++			md=loadresultsfromcluster(md)
++
++	#post processes qmu results if necessary
++	if md.qmu.isdakota:
++		if not strncmpi(options['keep'],'y',1):
++			shutil.rmtree('qmu'+str(os.getpid()))
++
++	return md
+Index: ../trunk-jpl/src/py3/solve/waitonlock.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/waitonlock.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/waitonlock.py	(revision 19895)
+@@ -0,0 +1,64 @@
++import os
++from socket import gethostname
++import time
++import MatlabFuncs as m
++
++def waitonlock(md):
++	"""
++	WAITONLOCK - wait for a file
++ 
++	   This routine will return when a file named 'filename' is written to disk.
++	   If the time limit given in input is exceeded, return 0
++ 
++	   Usage:
++	      flag=waitonlock(md)
++	"""
++
++	#Get filename (lock file) and options
++	executionpath=md.cluster.executionpath
++	cluster=md.cluster.name
++	login=md.cluster.login
++	port=md.cluster.port
++	timelimit=md.settings.waitonlock
++	filename=os.path.join(executionpath,md.private.runtimename,md.miscellaneous.name+'.lock')
++
++	#waitonlock will work if the lock is on the same machine only: 
++	if not m.strcmpi(gethostname(),cluster):
++
++		print('solution launched on remote cluster. log in to detect job completion.')
++		choice=input('Is the job successfully completed? (y/n) ')
++		if not m.strcmp(choice,'y'): 
++			print('Results not loaded... exiting') 
++			flag=0
++		else:
++			flag=1
++
++	#job is running on the same machine
++	else:
++
++		if 'interactive' in vars(md.cluster) and md.cluster.interactive:
++			#We are in interactive mode, no need to check for job completion
++			flag=1
++			return flag
++		#initialize time and file presence test flag
++		etime=0
++		ispresent=0
++		print("waiting for '%s' hold on... (Ctrl+C to exit)" % filename)
++
++		#loop till file .lock exist or time is up
++		while ispresent==0 and etime<timelimit:
++			ispresent=os.path.exist(filename)
++			time.sleep(1)
++			etime+=1/60
++
++		#build output
++		if etime>timelimit:
++			print('Time limit exceeded. Increase md.settings.waitonlock')
++			print('The results must be loaded manually with md=loadresultsfromcluster(md).')
++			raise RuntimeError('waitonlock error message: time limit exceeded.')
++			flag=0
++		else:
++			flag=1
++
++	return flag
++
+Index: ../trunk-jpl/src/py3/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/parseresultsfromdisk.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/parseresultsfromdisk.py	(revision 19895)
+@@ -0,0 +1,275 @@
++import struct
++import numpy
++from collections import OrderedDict
++import results as resultsclass
++import MatlabFuncs as m
++
++def parseresultsfromdisk(filename,iosplit):
++	"""
++	PARSERESULTSFROMDISK - ...
++
++	   Usage:
++	      results=parseresultsfromdisk(filename,iosplit)
++	"""
++
++	if iosplit:
++		results=parseresultsfromdiskiosplit(filename)
++	else:
++		results=parseresultsfromdiskioserial(filename)
++
++	return results
++
++def parseresultsfromdiskioserial(filename):    # {{{
++	"""
++	PARSERESULTSFROMDISK - ...
++	 
++	    Usage:
++	       results=parseresultsfromdiskioserial(filename)
++	"""
++
++	#Open file
++	try:
++		fid=open(filename,'rb')
++	except IOError as e:
++		raise IOError("loadresultsfromdisk error message: could not open '%s' for binary reading." % filename)
++
++	#initialize results: 
++	results=[]
++	results.append(None)
++
++	#Read fields until the end of the file.
++	result=ReadData(fid)
++
++	counter=0
++	check_nomoresteps=0
++	step=result['step']
++
++	while result:
++
++		if check_nomoresteps:
++			#check that the new result does not add a step, which would be an error: 
++			if result['step']>=1:
++				raise TypeError("parsing results for a steady-state core, which incorporates transient results!")
++
++		#Check step, increase counter if this is a new step
++		if(step!=result['step'] and result['step']>1):
++			counter = counter + 1
++			step    = result['step']
++
++		#Add result
++		if result['step']==0:
++			#if we have a step = 0, this is a steady state solution, don't expect more steps. 
++			index = 0;
++			check_nomoresteps=1
++	
++		elif result['step']==1:
++			index = 0
++		else:
++			index = counter;
++	
++		if index > len(results)-1:
++			for i in range(len(results)-1,index-1):
++				results.append(None)
++			results.append(resultsclass.results())
++		
++		elif results[index] is None:
++			results[index]=resultsclass.results()
++
++			
++		#Get time and step
++		if result['step'] != -9999.:
++			setattr(results[index],'step',result['step'])
++		if result['time'] != -9999.:
++			setattr(results[index],'time',result['time']) 
++	
++		#Add result
++		if hasattr(results[index],result['fieldname']) and not m.strcmp(result['fieldname'],'SolutionType'):
++			setattr(results[index],result['fieldname'],numpy.vstack((getattr(results[index],result['fieldname']),result['field'])))
++		else:
++			setattr(results[index],result['fieldname'],result['field'])
++
++		#read next result
++		result=ReadData(fid)
++
++	fid.close()
++
++	return results
++	# }}}
++def parseresultsfromdiskiosplit(filename):    # {{{
++	"""
++	PARSERESULTSFROMDISKIOSPLIT - ...
++	 
++	    Usage:
++	       results=parseresultsfromdiskiosplit(filename)
++	"""
++
++	#Open file
++	try:
++		fid=open(filename,'rb')
++	except IOError as e:
++		raise IOError("loadresultsfromdisk error message: could not open '%s' for binary reading." % filename)
++
++	results=[]
++
++	#if we have done split I/O, ie, we have results that are fragmented across patches, 
++	#do a first pass, and figure out the structure of results
++	result=ReadDataDimensions(fid)
++	while result:
++
++		#Get time and step
++		if result['step'] > len(results):
++			for i in range(len(results),result['step']-1):
++				results.append(None)
++			results.append(resultsclass.results())
++		setattr(results[result['step']-1],'step',result['step'])
++		setattr(results[result['step']-1],'time',result['time']) 
++
++		#Add result
++		setattr(results[result['step']-1],result['fieldname'],float('NaN'))
++
++		#read next result
++		result=ReadDataDimensions(fid)
++
++	#do a second pass, and figure out the size of the patches
++	fid.seek(0)    #rewind
++	result=ReadDataDimensions(fid)
++	while result:
++
++		#read next result
++		result=ReadDataDimensions(fid)
++
++	#third pass, this time to read the real information
++	fid.seek(0)    #rewind
++	result=ReadData(fid)
++	while result:
++
++		#Get time and step
++		if result['step']> len(results):
++			for i in range(len(results),result['step']-1):
++				results.append(None)
++			results.append(resultsclass.results())
++		setattr(results[result['step']-1],'step',result['step'])
++		setattr(results[result['step']-1],'time',result['time']) 
++
++		#Add result
++		setattr(results[result['step']-1],result['fieldname'],result['field'])
++
++		#read next result
++		result=ReadData(fid)
++
++	#close file
++	fid.close()
++
++	return results
++	# }}}
++def ReadData(fid):    # {{{
++	"""
++	READDATA - ...
++	 
++	    Usage:
++	       field=ReadData(fid)
++	"""
++
++	#read field
++	try:
++		length=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++
++		fieldname=struct.unpack('%ds' % length,fid.read(length))[0][:-1]
++		time=struct.unpack('d',fid.read(struct.calcsize('d')))[0]
++		step=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++
++		type=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++		M=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++		if   type==1:
++			field=numpy.array(struct.unpack('%dd' % M,fid.read(M*struct.calcsize('d'))),dtype=float)
++		elif type==2:
++			field=struct.unpack('%ds' % M,fid.read(M))[0][:-1]
++		elif type==3:
++			N=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++#			field=transpose(fread(fid,[N M],'double'));
++			field=numpy.zeros(shape=(M,N),dtype=float)
++			for i in range(M):
++				field[i,:]=struct.unpack('%dd' % N,fid.read(N*struct.calcsize('d')))
++		else:
++			raise TypeError("cannot read data of type %d" % type)
++
++		#Process units here FIXME: this should not be done here!
++		yts=365.0*24.0*3600.0
++		if m.strcmp(fieldname,'BalancethicknessThickeningRate'):
++			field = field*yts
++		elif m.strcmp(fieldname,'Time'):
++			field = field/yts
++		elif m.strcmp(fieldname,'HydrologyWaterVx'):
++			field = field*yts
++		elif m.strcmp(fieldname,'HydrologyWaterVy'):
++			field = field*yts
++		elif m.strcmp(fieldname,'Vx'):
++			field = field*yts
++		elif m.strcmp(fieldname,'Vy'):
++			field = field*yts
++		elif m.strcmp(fieldname,'Vz'):
++			field = field*yts
++		elif m.strcmp(fieldname,'Vel'):
++			field = field*yts
++		elif m.strcmp(fieldname,'BasalforcingsGroundediceMeltingRate'):
++			field = field*yts
++		elif m.strcmp(fieldname,'TotalSmb'):
++			field = field/10.**12.*yts #(GigaTon/year)
++		elif m.strcmp(fieldname,'SmbMassBalance'):
++			field = field*yts
++		elif m.strcmp(fieldname,'CalvingCalvingrate'):
++			field = field*yts
++
++
++		result=OrderedDict()
++		result['fieldname']=fieldname
++		result['time']=time
++		result['step']=step
++		result['field']=field
++
++	except struct.error as e:
++		result=None
++
++	return result
++	# }}}
++def ReadDataDimensions(fid):    # {{{
++	"""
++	READDATADIMENSIONS - read data dimensions, step and time, but not the data itself.
++	 
++	    Usage:
++	       field=ReadDataDimensions(fid)
++	"""
++
++	#read field
++	try:
++		length=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++
++		fieldname=struct.unpack('%ds' % length,fid.read(length))[0][:-1]
++		time=struct.unpack('d',fid.read(struct.calcsize('d')))[0]
++		step=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++
++		type=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++		M=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++		N=1    #default
++		if   type==1:
++			fid.seek(M*8,1)
++		elif type==2:
++			fid.seek(M,1)
++		elif type==3:
++			N=struct.unpack('i',fid.read(struct.calcsize('i')))[0]
++			fid.seek(N*M*8,1)
++		else:
++			raise TypeError("cannot read data of type %d" % type)
++
++		result=OrderedDict()
++		result['fieldname']=fieldname
++		result['time']=time
++		result['step']=step
++		result['M']=M
++		result['N']=N
++
++	except struct.error as e:
++		result=None
++
++	return result
++	# }}}
+Index: ../trunk-jpl/src/py3/solve/loadresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/loadresultsfromdisk.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/loadresultsfromdisk.py	(revision 19895)
+@@ -0,0 +1,67 @@
++import os
++from results import results
++from parseresultsfromdisk import parseresultsfromdisk
++from EnumToString import EnumToString
++import MatlabFuncs as m
++
++def loadresultsfromdisk(md,filename):
++	"""
++	LOADRESULTSFROMDISK - load results of solution sequence from disk file "filename"            
++ 
++	   Usage:
++	      md=loadresultsfromdisk(md=False,filename=False);
++	"""
++
++	#check number of inputs/outputs
++	if not md or not filename:
++		raise ValueError("loadresultsfromdisk: error message.")
++
++	if not md.qmu.isdakota:
++
++		#Check that file exists
++		if not os.path.exists(filename):
++			raise OSError("binary file '%s' not found." % filename)
++
++		#initialize md.results if not a structure yet
++		if not isinstance(md.results,results):
++			md.results=results()
++
++		#load results onto model
++		structure=parseresultsfromdisk(filename,not md.settings.io_gather)
++		if not len(structure):
++			raise RuntimeError("No result found in binary file '%s'. Check for solution crash." % filename)
++		setattr(md.results,structure[0].SolutionType,structure)
++
++		#recover solution_type from results
++		md.private.solution=structure[0].SolutionType
++
++		#read log files onto fields
++		if os.path.exists(md.miscellaneous.name+'.errlog'):
++			with open(md.miscellaneous.name+'.errlog','r') as f:
++				setattr(getattr(md.results,structure[0].SolutionType)[0],'errlog',[line[:-1] for line in f])
++		else:
++			setattr(getattr(md.results,structure[0].SolutionType)[0],'errlog',[])
++
++		if os.path.exists(md.miscellaneous.name+'.outlog'):
++			with open(md.miscellaneous.name+'.outlog','r') as f:
++				setattr(getattr(md.results,structure[0].SolutionType)[0],'outlog',[line[:-1] for line in f])
++		else:
++			setattr(getattr(md.results,structure[0].SolutionType)[0],'outlog',[])
++
++		if len(getattr(md.results,structure[0].SolutionType)[0].errlog):
++			print ("loadresultsfromcluster info message: error during solution. Check your errlog and outlog model fields.")
++
++		#if only one solution, extract it from list for user friendliness
++		if len(structure) == 1 and not m.strcmp(structure[0].SolutionType,'TransientSolution'):
++			setattr(md.results,structure[0].SolutionType,structure[0])
++
++	#post processes qmu results if necessary
++	else:
++
++		if not isinstance(md.private.solution,str):
++			[md.private.solution]=EnumToString(md.private.solution)
++		md=postqmu(md)
++		os.chdir('..')
++
++	return md
++
+Index: ../trunk-jpl/src/py3/solve/marshall.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/marshall.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/marshall.py	(revision 19895)
+@@ -0,0 +1,52 @@
++from WriteData import WriteData
++from EnumDefinitions import *
++
++def marshall(md):
++	"""
++	MARSHALL - outputs a compatible binary file from @model md, for certain solution type.
++
++	   The routine creates a compatible binary file from @model md
++	   This binary file will be used for parallel runs in JPL-package
++
++	   Usage:
++	      marshall(md)
++	"""
++
++	print("marshalling file '%s.bin'." % md.miscellaneous.name)
++
++	#open file for binary writing
++	try:
++		fid=open(md.miscellaneous.name+'.bin','wb')
++	except IOError as e:
++		raise IOError("marshall error message: could not open '%s.bin' file for binary writing." % md.miscellaneous.name)
++
++	#First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
++	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',True,'format','Boolean')
++
++	#Go through all model fields: check that it is a class and call checkconsistency
++	fields=vars(md)
++
++#	for field in fields.iterkeys():
++	for field in md.properties():
++
++		#Some properties do not need to be marshalled
++		if field in ['results','radaroverlay','toolkits','cluster','flaim','private']:
++			continue
++
++		#Check that current field is an object
++		if not hasattr(getattr(md,field),'marshall'):
++			raise TypeError("field '%s' is not an object." % field)
++
++		#Marshall current object
++		#print "marshalling %s ..." % field
++		exec("md.%s.marshall(md,fid)" % field)
++
++	#Last, write MaximumNumberOfEnum+1 to make sure that the binary file is not corrupt
++	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum()+1,'data',True,'format','Boolean');
++
++	#close file
++	try:
++		fid.close()
++	except IOError as e:
++		raise IOError("marshall error message: could not close file '%s.bin'." % md.miscellaneous.name)
++
+Index: ../trunk-jpl/src/py3/solve/WriteData.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/WriteData.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/WriteData.py	(revision 19895)
+@@ -0,0 +1,344 @@
++import numpy
++import math
++import struct
++import pairoptions
++import MatlabFuncs as m
++from EnumDefinitions import *
++from EnumToString import EnumToString
++
++def WriteData(fid,**kwargs):
++	"""
++	WRITEDATA - write model field in binary file
++ 
++	   Usage:
++	      WriteData(fid,varargin)
++	"""
++
++	#process options
++	options=pairoptions.pairoptions(**kwargs)
++
++	#Get data properties
++	if options.exist('object'):
++		#This is an object field, construct enum and data
++		obj       = options.getfieldvalue('object')
++		fieldname = options.getfieldvalue('fieldname')
++		classname = options.getfieldvalue('class',str(type(obj)).rsplit('.')[-1].split("'")[0])
++		if options.exist('enum'):
++			enum = options.getfieldvalue('enum')
++		else:
++			enum = BuildEnum(classname+'_'+fieldname)
++		data      = getattr(obj,fieldname)
++	else:
++		#No processing required
++		data = options.getfieldvalue('data')
++		enum = options.getfieldvalue('enum')
++	format  = options.getfieldvalue('format')
++	mattype = options.getfieldvalue('mattype',0)    #only required for matrices
++	timeserieslength = options.getfieldvalue('timeserieslength',-1)
++
++	#Process sparse matrices
++#	if issparse(data),
++#		data=full(data);
++#	end
++
++	#Scale data if necesarry
++	if options.exist('scale'):
++		scale = options.getfieldvalue('scale')
++		if numpy.size(data) > 1 :
++			if numpy.size(data,0)==timeserieslength:
++				data=numpy.array(data)
++				data[0:-1,:] = scale*data[0:-1,:]
++			else:
++				data  = scale*data
++		else:
++			data  = scale*data
++	if numpy.size(data) > 1 :
++		if numpy.size(data,0)==timeserieslength:
++			yts=365.0*24.0*3600.0
++			data[-1,:] = yts*data[-1,:]
++
++	#Step 1: write the enum to identify this record uniquely
++	fid.write(struct.pack('i',enum)) 
++
++	#Step 2: write the data itself.
++	if   m.strcmpi(format,'Boolean'):    # {{{
++#		if len(data) !=1:
++#			raise ValueError('field %s cannot be marshalled as it has more than one element!' % EnumToString(enum)[0])
++
++		#first write length of record
++		fid.write(struct.pack('i',4+4))  #1 bool (disguised as an int)+code
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#now write integer
++		fid.write(struct.pack('i',int(data)))  #send an int, not easy to send a bool
++		# }}}
++
++	elif m.strcmpi(format,'Integer'):    # {{{
++#		if len(data) !=1:
++#			raise ValueError('field %s cannot be marshalled as it has more than one element!' % EnumToString(enum)[0])
++
++		#first write length of record
++		fid.write(struct.pack('i',4+4))  #1 integer + code
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#now write integer
++		fid.write(struct.pack('i',data)) 
++		# }}}
++
++	elif m.strcmpi(format,'Double'):    # {{{
++#		if len(data) !=1:
++#			raise ValueError('field %s cannot be marshalled as it has more than one element!' % EnumToString(enum)[0])
++
++		#first write length of record
++		fid.write(struct.pack('i',8+4))  #1 double+code
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#now write double
++		fid.write(struct.pack('d',data)) 
++		# }}}
++
++	elif m.strcmpi(format,'String'):    # {{{
++		#first write length of record
++		fid.write(struct.pack('i',len(data)+4+4))  #string + string size + code
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#now write string
++		fid.write(struct.pack('i',len(data))) 
++		fid.write(struct.pack('%ds' % len(data),data)) 
++		# }}}
++
++	elif m.strcmpi(format,'BooleanMat'):    # {{{
++
++		if   isinstance(data,bool):
++			data=numpy.array([data])
++		elif isinstance(data,(list,tuple)):
++			data=numpy.array(data).reshape(-1,1)
++		if numpy.ndim(data) == 1:
++			if numpy.size(data):
++				data=data.reshape(numpy.size(data),1)
++			else:
++				data=data.reshape(0,0)
++
++		#Get size
++		s=data.shape
++		#if matrix = NaN, then do not write anything
++		if s[0]==1 and s[1]==1 and math.isnan(data[0][0]):
++			s=(0,0)
++
++		#first write length of record
++		fid.write(struct.pack('i',4+4+8*s[0]*s[1]+4+4))    #2 integers (32 bits) + the double matrix + code + matrix type
++
++		#write data code and matrix type: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++		fid.write(struct.pack('i',mattype))
++
++		#now write matrix
++		fid.write(struct.pack('i',s[0])) 
++		fid.write(struct.pack('i',s[1])) 
++		for i in range(s[0]):
++			for j in range(s[1]):
++				fid.write(struct.pack('d',float(data[i][j])))    #get to the "c" convention, hence the transpose
++		# }}}
++
++	elif m.strcmpi(format,'IntMat'):    # {{{
++
++		if   isinstance(data,int):
++			data=numpy.array([data])
++		elif isinstance(data,(list,tuple)):
++			data=numpy.array(data).reshape(-1,1)
++		if numpy.ndim(data) == 1:
++			if numpy.size(data):
++				data=data.reshape(numpy.size(data),1)
++			else:
++				data=data.reshape(0,0)
++
++		#Get size
++		s=data.shape
++		#if matrix = NaN, then do not write anything
++		if s[0]==1 and s[1]==1 and math.isnan(data[0][0]):
++			s=(0,0)
++
++		#first write length of record
++		fid.write(struct.pack('i',4+4+8*s[0]*s[1]+4+4))    #2 integers (32 bits) + the double matrix + code + matrix type
++
++		#write data code and matrix type: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++		fid.write(struct.pack('i',mattype))
++
++		#now write matrix
++		fid.write(struct.pack('i',s[0])) 
++		fid.write(struct.pack('i',s[1])) 
++		for i in range(s[0]):
++			for j in range(s[1]):
++				fid.write(struct.pack('d',float(data[i][j])))    #get to the "c" convention, hence the transpose
++		# }}}
++
++	elif m.strcmpi(format,'DoubleMat'):    # {{{
++
++		if   isinstance(data,(bool,int,float)):
++			data=numpy.array([data])
++		elif isinstance(data,(list,tuple)):
++			data=numpy.array(data).reshape(-1,1)
++		if numpy.ndim(data) == 1:
++			if numpy.size(data):
++				data=data.reshape(numpy.size(data),1)
++			else:
++				data=data.reshape(0,0)
++
++		#Get size
++		s=data.shape
++		#if matrix = NaN, then do not write anything
++		if s[0]==1 and s[1]==1 and math.isnan(data[0][0]):
++			s=(0,0)
++
++		#first write length of record
++		recordlength=4+4+8*s[0]*s[1]+4+4; #2 integers (32 bits) + the double matrix + code + matrix type
++		if recordlength > 2**31 :
++			raise ValueError('field %s cannot be marshalled because it is larger than 4^31 bytes!' % EnumToString(enum)[0])
++
++		fid.write(struct.pack('i',recordlength))  #2 integers (32 bits) + the double matrix + code + matrix type
++
++		#write data code and matrix type: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++		fid.write(struct.pack('i',mattype))
++
++		#now write matrix
++		fid.write(struct.pack('i',s[0])) 
++		fid.write(struct.pack('i',s[1])) 
++		for i in range(s[0]):
++			for j in range(s[1]):
++				fid.write(struct.pack('d',float(data[i][j])))    #get to the "c" convention, hence the transpose
++		# }}}
++
++	elif m.strcmpi(format,'MatArray'):    # {{{
++
++		#first get length of record
++		recordlength=4+4    #number of records + code
++		for matrix in data:
++			if   isinstance(matrix,(bool,int,float)):
++				matrix=numpy.array([matrix])
++			elif isinstance(matrix,(list,tuple)):
++				matrix=numpy.array(matrix).reshape(-1,1)
++			if numpy.ndim(matrix) == 1:
++				if numpy.size(matrix):
++					matrix=matrix.reshape(numpy.size(matrix),1)
++				else:
++					matrix=matrix.reshape(0,0)
++
++			s=matrix.shape
++			recordlength+=4*2+s[0]*s[1]*8    #row and col of matrix + matrix of doubles
++
++		#write length of record
++		fid.write(struct.pack('i',recordlength)) 
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#write data, first number of records
++		fid.write(struct.pack('i',len(data))) 
++
++		#write each matrix: 
++		for matrix in data:
++			if   isinstance(matrix,(bool,int,float)):
++				matrix=numpy.array([matrix])
++			elif isinstance(matrix,(list,tuple)):
++				matrix=numpy.array(matrix).reshape(-1,1)
++			if numpy.ndim(matrix) == 1:
++				matrix=matrix.reshape(numpy.size(matrix),1)
++
++			s=matrix.shape
++			fid.write(struct.pack('i',s[0])) 
++			fid.write(struct.pack('i',s[1])) 
++			for i in range(s[0]):
++				for j in range(s[1]):
++					fid.write(struct.pack('d',float(matrix[i][j])))
++		# }}}
++
++	elif m.strcmpi(format,'StringArray'):    # {{{
++
++		#first get length of record
++		recordlength=4+4    #for length of array + code
++		for string in data:
++			recordlength+=4+len(string)    #for each string
++
++		#write length of record
++		fid.write(struct.pack('i',recordlength)) 
++
++		#write data code: 
++		fid.write(struct.pack('i',FormatToCode(format))) 
++
++		#now write length of string array
++		fid.write(struct.pack('i',len(data))) 
++
++		#now write the strings
++		for string in data:
++			fid.write(struct.pack('i',len(string))) 
++			fid.write(struct.pack('%ds' % len(string),string)) 
++		# }}}
++
++	else:    # {{{
++		raise TypeError('WriteData error message: data type: %d not supported yet! (%s)' % (format,EnumToString(enum)[0]))
++	# }}}
++
++def BuildEnum(string): # {{{
++	"""
++	BUILDENUM - build enum out of string
++ 
++    Usage:
++       enum=BuildEnum(string)
++	"""
++
++	if '_' in string:
++		substrs=string.split('_')
++		string=''
++		for substr in substrs:
++			string+=substr[0].upper()+substr[1:]
++	else:
++		#take first letter of string and make it uppercase: 
++		string=string[0].upper()+string[1:]
++
++	#Get Enum
++	enum=StringToEnum(string)[0]
++
++	return enum
++# }}}
++
++def FormatToCode(format): # {{{
++	"""
++	This routine takes the format string, and hardcodes it into an integer, which 
++	is passed along the record, in order to identify the nature of the dataset being 
++	sent.
++	"""
++
++	if   m.strcmpi(format,'Boolean'):
++		code=1
++	elif m.strcmpi(format,'Integer'):
++		code=2
++	elif m.strcmpi(format,'Double'):
++		code=3
++	elif m.strcmpi(format,'String'):
++		code=4
++	elif m.strcmpi(format,'BooleanMat'):
++		code=5
++	elif m.strcmpi(format,'IntMat'):
++		code=6
++	elif m.strcmpi(format,'DoubleMat'):
++		code=7
++	elif m.strcmpi(format,'MatArray'):
++		code=8
++	elif m.strcmpi(format,'StringArray'):
++		code=9
++	else:
++		raise InputError('FormatToCode error message: data type not supported yet!')
++
++	return code
++# }}}
++
+Index: ../trunk-jpl/src/py3/solve/loadresultsfromcluster.py
+===================================================================
+--- ../trunk-jpl/src/py3/solve/loadresultsfromcluster.py	(revision 0)
++++ ../trunk-jpl/src/py3/solve/loadresultsfromcluster.py	(revision 19895)
+@@ -0,0 +1,69 @@
++import os
++import socket
++import platform
++from loadresultsfromdisk import loadresultsfromdisk
++
++def loadresultsfromcluster(md,runtimename=False):
++	"""
++	LOADRESULTSFROMCLUSTER - load results of solution sequence from cluster
++ 
++	   Usage:
++	      md=loadresultsfromcluster(md,runtimename);
++	"""
++
++	#retrieve cluster, to be able to call its methods
++	cluster=md.cluster
++
++	if runtimename:
++		md.private.runtimename=runtimename
++
++	#Download outputs from the cluster
++	filelist=[md.miscellaneous.name+'.outlog',md.miscellaneous.name+'.errlog']
++	if md.qmu.isdakota:
++		filelist.append(md.miscellaneous.name+'.qmu.err')
++		filelist.append(md.miscellaneous.name+'.qmu.out')
++		if 'tabular_graphics_data' in md.qmu.params:
++			if md.qmu.params['tabular_graphics_data']:
++				filelist.append('dakota_tabular.dat')
++	else:
++		filelist.append(md.miscellaneous.name+'.outbin')
++	cluster.Download(md.private.runtimename,filelist)
++
++	#If we are here, no errors in the solution sequence, call loadresultsfromdisk.
++	md=loadresultsfromdisk(md,md.miscellaneous.name+'.outbin')
++
++	#erase the log and output files
++	if md.qmu.isdakota:
++		filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
++	else:
++		filename=md.miscellaneous.name
++		TryRem('.outbin',filename)
++		if not platform.system()=='Windows':
++			TryRem('.tar.gz',md.private.runtimename)
++
++	TryRem('.errlog',filename)
++	TryRem('.outlog',filename)
++	
++	#erase input file if run was carried out on same platform.
++	hostname=socket.gethostname()
++	if hostname==cluster.name:
++		if md.qmu.isdakota:
++			filename=os.path.join('qmu'+str(os.getpid()),md.miscellaneous.name)
++			TryRem('.queue',filename)
++		else:
++			filename=md.miscellaneous.name
++			TryRem('.toolkits',filename)
++			if not platform.system()=='Windows':
++				TryRem('.queue',filename)
++			else:
++				TryRem('.bat',filename)
++
++		TryRem('.bin',filename)
++
++	return md
++
++def TryRem(extension,filename):
++	try:	
++		os.remove(filename+extension)
++	except OSError:
++		print('WARNING, no '+extension+'  is present for run '+filename)
+Index: ../trunk-jpl/src/py3/shp/shp2exp.py
+===================================================================
+--- ../trunk-jpl/src/py3/shp/shp2exp.py	(revision 0)
++++ ../trunk-jpl/src/py3/shp/shp2exp.py	(revision 19895)
+@@ -0,0 +1,50 @@
++import shapefile
++import os
++from expwrite import expwrite
++
++def shp2exp(shapefilename,*expfilename):
++	'''
++	Convert a shapefile to an .exp file.  Optionally, expfilename can be
++	specified to give a name for the .exp file to be created, otherwise the
++	.exp file will have the same prefix as the .shp file.
++
++	Usage:
++		shp2exp(shapefilename)
++		shp2exp(shapefilename,expfilename)
++
++	Examples:
++		shp2exp('Domain.shp') % creates Domain.exp
++		shp2exp('Domain.shp','DomainForISSM.exp')
++	'''
++	
++	if not os.path.exists(shapefilename):
++		raise IOError("shp2exp error message: file '%s' not found!" % parametername)
++	if not len(expfilename):
++		expfile=os.path.splitext(shapefilename)[0]+'.exp'
++	else:
++		expfile=expfilename[0]
++
++	shp=shapefile.Reader(shapefilename)
++	expdict=dict(closed=1,density=1)
++
++	x=[]
++	y=[]
++	for i in range(len(shp.shapes())):
++		geom=shp.shapes()[i].shapeType
++		if geom==5: # polygon
++			tmpx=[p[0] for p in shp.shapes()[i].points]
++			tmpy=[q[1] for q in shp.shapes()[i].points]
++			x.append(tmpx)
++			y.append(tmpy)
++		elif geom==3: # line
++			tmpx=[p[0] for p in shp.shapes()[i].points]
++			tmpy=[q[1] for q in shp.shapes()[i].points]
++			x.append(tmpx)
++			y.append(tmpy)
++		elif geom==1: # point
++			x.append(shp.shapes()[i].points[0][0])
++			y.append(shp.shapes()[i].points[0][1])
++
++	expdict['x']=x
++	expdict['y']=y
++	expwrite(expdict,expfile)
+Index: ../trunk-jpl/src/py3/geometry/GetAreas.py
+===================================================================
+--- ../trunk-jpl/src/py3/geometry/GetAreas.py	(revision 0)
++++ ../trunk-jpl/src/py3/geometry/GetAreas.py	(revision 19895)
+@@ -0,0 +1,52 @@
++import numpy
++
++def GetAreas(index,x,y,z=numpy.array([])):
++	"""
++	GETAREAS - compute areas or volumes of elements
++
++	   compute areas of triangular elements or volumes 
++	   of pentahedrons
++
++	   Usage:
++	      areas  =GetAreas(index,x,y);
++	      volumes=GetAreas(index,x,y,z);
++
++	   Examples:
++	      areas  =GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y);
++	      volumes=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y,md.z);
++	"""
++
++	#get number of elements and number of nodes
++	nels=numpy.size(index,axis=0)
++	nods=numpy.size(x)
++
++	#some checks
++	if numpy.size(y)!=nods or (z and numpy.size(z)!=nods):
++		raise TypeError("GetAreas error message: x,y and z do not have the same length.")
++	if numpy.max(index)>nods:
++		raise TypeError("GetAreas error message: index should not have values above %d." % nods)
++	if (not z and numpy.size(index,axis=1)!=3):
++		raise TypeError("GetAreas error message: index should have 3 columns for 2d meshes.")
++	if (z and numpy.size(index,axis=1)!=6):
++		raise TypeError("GetAreas error message: index should have 6 columns for 3d meshes.")
++
++	#initialization
++	areas=numpy.zeros(nels)
++	x1=x[index[:,0]-1]
++	x2=x[index[:,1]-1]
++	x3=x[index[:,2]-1]
++	y1=y[index[:,0]-1]
++	y2=y[index[:,1]-1]
++	y3=y[index[:,2]-1]
++
++	#compute the volume of each element
++	if not z:
++		#compute the surface of the triangle
++		areas=(0.5*((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)))
++	else:
++		#V=area(triangle)*1/3(z1+z2+z3)
++		thickness=numpy.mean(z[index[:,3:6]-1])-numpy.mean(z[index[:,0:3]-1])
++		areas=(0.5*((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1)))*thickness
++
++	return areas
++
+Index: ../trunk-jpl/src/py3/geometry/SegIntersect.py
+===================================================================
+--- ../trunk-jpl/src/py3/geometry/SegIntersect.py	(revision 0)
++++ ../trunk-jpl/src/py3/geometry/SegIntersect.py	(revision 19895)
+@@ -0,0 +1,82 @@
++import numpy
++
++def SegIntersect(seg1,seg2):
++	"""
++	SEGINTERSECT - test of segments intersection
++
++	   return 1 if the two segments intersect
++	   seg1=[x1 y1; x2 y2]
++	   seg2=[x1 y1; x2 y2]
++
++	   Usage:
++	      bval=SegIntersect(seg1,seg2)
++	"""
++
++	bval=1
++
++	xA=seg1[0,0]
++	yA=seg1[0,1]
++	xB=seg1[1,0]
++	yB=seg1[1,1]
++	xC=seg2[0,0]
++	yC=seg2[0,1]
++	xD=seg2[1,0]
++	yD=seg2[1,1]
++
++	O2A=numpy.array([xA,yA])-numpy.array([xD/2.+xC/2.,yD/2.+yC/2.])
++	O2B=numpy.array([xB,yB])-numpy.array([xD/2.+xC/2.,yD/2.+yC/2.])
++	O1C=numpy.array([xC,yC])-numpy.array([xA/2.+xB/2.,yB/2.+yA/2.])
++	O1D=numpy.array([xD,yD])-numpy.array([xA/2.+xB/2.,yB/2.+yA/2.])
++
++	n1=numpy.array([yA-yB,xB-xA])    #normal vector to segA
++	n2=numpy.array([yC-yD,xD-xC])    #normal vector to segB
++
++	test1=numpy.dot(n2,O2A)
++	test2=numpy.dot(n2,O2B)
++
++	if test1*test2>0:
++		bval=0
++		return bval
++
++	test3=numpy.dot(n1,O1C)
++	test4=numpy.dot(n1,O1D)
++
++	if test3*test4>0:
++		bval=0
++		return bval
++
++	#if colinear
++	if test1*test2==0 and test3*test4==0 and numpy.linalg.det(numpy.hstack((n1.reshape((-1,1)),n2.reshape(-1,1))))==0:
++
++		#projection on the axis O1O2
++		O2O1=numpy.array([xA/2.+xB/2.,yB/2.+yA/2.])-numpy.array([xD/2.+xC/2.,yD/2.+yC/2.])
++		O1A=numpy.dot(O2O1,(O2A-O2O1))
++		O1B=numpy.dot(O2O1,(O2B-O2O1))
++		O1C=numpy.dot(O2O1,O1C)
++		O1D=numpy.dot(O2O1,O1D)
++
++		#test if one point is included in the other segment (->bval=1)
++		if (O1C-O1A)*(O1D-O1A)<0:
++			bval=1
++			return bval
++		if (O1C-O1B)*(O1D-O1B)<0:
++			bval=1
++			return bval
++		if (O1A-O1C)*(O1B-O1C)<0:
++			bval=1
++			return bval
++		if (O1A-O1D)*(O1B-O1D)<0:
++			bval=1
++			return bval
++
++		#test if the 2 segments have the same middle (->bval=1)
++		if O2O1==0:
++			bval=1
++			return bval
++
++		#else
++		bval=0
++		return bval
++
++	return bval
++
+Index: ../trunk-jpl/src/py3/geometry/slope.py
+===================================================================
+--- ../trunk-jpl/src/py3/geometry/slope.py	(revision 0)
++++ ../trunk-jpl/src/py3/geometry/slope.py	(revision 19895)
+@@ -0,0 +1,46 @@
++import numpy as npy
++from GetNodalFunctionsCoeff import  GetNodalFunctionsCoeff
++
++def slope(md,*args):
++	"""
++	SLOPE - compute the surface slope
++
++	Usage:
++		sx,sy,s=slope(md)
++		sx,sy,s=slope(md,md.results.TransientSolution(1).Surface)
++	"""
++
++	#load some variables (it is much faster if the variables are loaded from md once for all) 
++	if md.mesh.dimension()==2:
++		numberofelements=md.mesh.numberofelements
++		numberofnodes=md.mesh.numberofvertices
++		index=md.mesh.elements
++		x=md.mesh.x ; y=md.mesh.y
++	else:
++		numberofelements=md.mesh.numberofelements2d
++		numberofnodes=md.mesh.numberofvertices2d
++		index=md.mesh.elements2d
++		x=md.mesh.x2d; y=md.mesh.y2d
++
++	if len(args)==0:
++		surf=md.geometry.surface
++	elif len(args)==1:
++		surf=args[0]
++	else:
++		raise RuntimeError("slope.py usage error")
++
++	#%compute nodal functions coefficients N(x,y)=alpha x + beta y + gamma
++	alpha,beta=GetNodalFunctionsCoeff(index,x,y)[0:2]
++
++	summation=npy.array([[1],[1],[1]])
++	sx=npy.dot(surf[index-1]*alpha,summation).reshape(-1,)
++	sy=npy.dot(surf[index-1]*beta,summation).reshape(-1,)
++
++	s=npy.sqrt(sx**2+sy**2)
++
++	if md.mesh.dimension()==3:
++		sx=project3d(md,'vector',sx,'type','element')
++		sy=project3d(md,'vector',sy,'type','element')
++		s=npy.sqrt(sx**2+sy**2)
++
++	return (sx,sy,s)
+Index: ../trunk-jpl/src/py3/geometry/FlagElements.py
+===================================================================
+--- ../trunk-jpl/src/py3/geometry/FlagElements.py	(revision 0)
++++ ../trunk-jpl/src/py3/geometry/FlagElements.py	(revision 19895)
+@@ -0,0 +1,67 @@
++import numpy
++import os
++#from basinzoom import basinzoon
++from ContourToMesh import ContourToMesh
++import MatlabFuncs as m
++import PythonFuncs as p
++
++def FlagElements(md,region):
++	"""
++	FLAGELEMENTS - flag the elements in an region
++
++	   The region can be given with an exp file, a list of elements or vertices
++
++	   Usage: 
++	      flag=FlagElements(md,region);
++
++	   Example:
++	      flag=FlagElements(md,'all');
++	      flag=FlagElements(md,'');
++	      flag=FlagElements(md,'Domain.exp');
++	      flag=FlagElements(md,'~Domain.exp');
++	"""
++
++	if   isinstance(region,str):
++		if   not region:
++			flag=numpy.zeros(md.mesh.numberofelements,bool)
++			invert=0
++		elif m.strcmpi(region,'all'):
++			flag=numpy.ones(md.mesh.numberofelements,bool)
++			invert=0
++		else:
++			#make sure that we actually don't want the elements outside the domain outline!
++			if m.strcmpi(region[0],'~'):
++				region=region[1:]
++				invert=1
++			else:
++				invert=0
++
++			#does the region domain outline exist or do we have to look for xlim,ylim in basinzoom?
++			if not os.path.exists(region):
++				if len(region)>3 and not m.strcmp(region[-4:],'.exp'):
++					raise IOError("Error: File 'region' not found!" % region)
++				raise RuntimeError("FlagElements.py calling basinzoom.py is not complete.")
++				xlim,ylim=basinzoom('basin',region)
++				flag_nodes=p.logical_and_n(md.mesh.x<xlim[1],md.mesh.x>xlim[0],md.mesh.y<ylim[1],md.mesh.y>ylim[0])
++				flag=numpy.prod(flag_nodes[md.mesh.elements],axis=1).astype(bool)
++			else:
++				#ok, flag elements
++				[flag,dum]=ContourToMesh(md.mesh.elements[:,0:3].copy(),md.mesh.x,md.mesh.y,region,'element',1)
++				flag=flag.astype(bool)
++
++		if invert:
++			flag=numpy.logical_not(flag)
++
++	elif isinstance(region,numpy.ndarray) or isinstance(region,bool):
++		if numpy.size(region,0)==md.mesh.numberofelements:
++			flag=region
++		elif numpy.size(region,0)==md.mesh.numberofvertices:
++			flag=(numpy.sum(region[md.mesh.elements-1]>0,axis=1)==numpy.size(md.mesh.elements,1))
++		else:
++			raise TypeError("Flaglist for region must be of same size as number of elements in model.")
++
++	else:
++		raise TypeError("Invalid region option")
++
++	return flag
++
+Index: ../trunk-jpl/src/py3/exp/expread.py
+===================================================================
+--- ../trunk-jpl/src/py3/exp/expread.py	(revision 0)
++++ ../trunk-jpl/src/py3/exp/expread.py	(revision 19895)
+@@ -0,0 +1,100 @@
++import os.path
++import numpy
++from collections import OrderedDict
++import MatlabFuncs as m
++
++def expread(filename):
++	"""
++	EXPREAD - read a file exp and build a Structure
++
++	   This routine reads a file .exp and builds a list of dicts containing the 
++	   fields x and y corresponding to the coordinates, one for the filename of
++	   the exp file, for the density, for the nodes, and a field closed to 
++	   indicate if the domain is closed. 
++	   The first argument is the .exp file to be read and the second one (optional) 
++	   indicate if the last point shall be read (1 to read it, 0 not to).
++
++	   Usage:
++	      contours=expread(filename)
++
++	   Example:
++	      contours=expread('domainoutline.exp')
++	      contours=expread('domainoutline.exp')
++
++	   See also EXPDOC, EXPWRITEASVERTICES
++	"""
++
++	#some checks
++	if not os.path.exists(filename):
++		raise OSError("expread error message: file '%s' not found!" % filename)
++
++	#initialize number of profile
++	contours=[]
++
++	#open file
++	fid=open(filename,'r')
++
++	#loop over the number of profiles
++	while True:
++
++		#update number of profiles
++		contour=OrderedDict()
++
++		#Get file name
++		A=fid.readline()
++		while A=='\n':
++			A=fid.readline()
++		if not A:
++			break
++		A=A.split(None,1)
++		if not (len(A) == 2 and m.strcmp(A[0],'##') and m.strncmp(A[1],'Name:',5)):
++			break
++		if len(A[1])>5: 
++			contour['name']=A[1][5:-1]
++		else:
++			contour['name']=''
++
++		#Get Icon
++		A=fid.readline().split(None,1)
++		if not (len(A) == 2 and m.strcmp(A[0],'##') and m.strncmp(A[1],'Icon:',5)):
++			break
++
++		#Get Info
++		A=fid.readline().split()
++		if not (len(A) == 4 and m.strcmp(A[0],'#') and m.strcmp(A[1],'Points')):
++			break
++
++		#Get number of nodes and density
++		A=fid.readline().split()
++		contour['nods']=int(A[0])
++		contour['density']=float(A[1])
++
++		#Get Info
++		A=fid.readline().split()
++		if not (len(A) == 5 and m.strcmp(A[0],'#') and m.strcmp(A[1],'X') and m.strcmp(A[2],'pos') \
++		                                         and m.strcmp(A[3],'Y') and m.strcmp(A[4],'pos')):
++			break
++
++		#Get Coordinates
++		contour['x']=numpy.empty(contour['nods'])
++		contour['y']=numpy.empty(contour['nods'])
++		for i in range(int(contour['nods'])):
++			A=fid.readline().split()
++			contour['x'][i]=float(A[0])
++			contour['y'][i]=float(A[1])
++
++		#Check if closed
++		if (contour['nods'] > 1) and \
++		   (contour['x'][-1] == contour['x'][0]) and \
++		   (contour['y'][-1] == contour['y'][0]):
++			contour['closed']=True
++		else:
++			contour['closed']=False
++
++		contours.append(contour)
++
++	#close file
++	fid.close()
++
++	return contours
++
+Index: ../trunk-jpl/src/py3/exp/expdisp.py
+===================================================================
+--- ../trunk-jpl/src/py3/exp/expdisp.py	(revision 0)
++++ ../trunk-jpl/src/py3/exp/expdisp.py	(revision 19895)
+@@ -0,0 +1,27 @@
++from expread import expread
++import numpy as npy
++
++def expdisp(domainoutline,ax,linestyle='--k',linewidth=1,unitmultiplier=1.):
++    '''
++    plot the contents of a domain outline file
++
++    This routine reads in a domain outline file and plots all of the x,y contours
++
++    'ax' is a handle to the current plot axes, onto which the contours are to be drawn
++
++    Usage:
++        expdisp(domainoutline,ax)
++
++    Example:
++        expdisp('domain.exp',plt.gca(),linestyle='--k',linewidth=2,unitmultiplier=1.e3)
++    '''
++
++    domain=expread(domainoutline)
++
++    for i in range(len(domain)):
++        if domain[i]['nods']==1:
++            ax.plot(domain[i]['x']*unitmultiplier,domain[i]['y']*unitmultiplier,'o',mec='k',mfc='r',ms=10)
++        else:
++            x=domain[i]['x'].tolist() # since expread returns a string representation of the arrays
++            y=domain[i]['y'].tolist()
++            ax.plot(x*unitmultiplier,y*unitmultiplier,linestyle,linewidth=linewidth)
+Index: ../trunk-jpl/src/py3/exp/expcoarsen.py
+===================================================================
+--- ../trunk-jpl/src/py3/exp/expcoarsen.py	(revision 0)
++++ ../trunk-jpl/src/py3/exp/expcoarsen.py	(revision 19895)
+@@ -0,0 +1,77 @@
++import os.path
++import numpy as npy
++from collections import OrderedDict
++from expread import expread
++from expwrite import expwrite
++
++def expcoarsen(newfile,oldfile,resolution):
++	""" 
++	EXPCOARSEN - coarsen an exp contour
++
++	This routine read an Argus file and remove points with respect to
++	the resolution (in meters) given in input. 
++
++	Usage:
++	  expcoarsen(newfile,oldfile,resolution)
++
++	Example:
++	   expcoarsen('DomainOutline.exp','Antarctica.exp',4000)
++	""" 
++
++	#Some checks
++	if not os.path.exists(oldfile):
++		raise OSError("expcoarsen error message: file '%s' not found!" % oldfile)
++	if os.path.exists(newfile):
++		choice=input('A file ' + newfile + ' already exists, do you want to modify it? (y/n)')
++		if choice not in 'y': 
++			print('no modification done ... exiting')
++			return 0
++
++	#Get exp oldfile
++	contours=expread(oldfile)
++	newcontours=[]
++
++	for contour in  contours:
++		
++		numpoints=npy.size(contour['x'])
++
++		j=0
++		x=contour['x']
++		y=contour['y']
++
++		#stop if we have reached end of profile (always keep the last point)
++		while j<numpoints-1:
++
++			#see whether we keep this point or not
++			distance=npy.sqrt((x[j]-x[j+1])**2+(y[j]-y[j+1])**2)
++			if distance<resolution and j<numpoints-2:   #do not remove last point
++				x=npy.delete(x,j+1,0)
++				y=npy.delete(y,j+1,0)
++				numpoints=numpoints-1
++			else:
++				division=int(npy.floor(distance/resolution)+1)
++				if division>=2:
++					xi=npy.linspace(x[j],x[j+1],division)
++					yi=npy.linspace(y[j],y[j+1],division)
++					
++					x=npy.hstack((x[0:j+1],xi[1:-1],x[j+1:]))
++					y=npy.hstack((y[0:j+1],yi[1:-1],y[j+1:]))
++
++					#update current point
++					j=j+1+division-2
++					numpoints=numpoints+division-2
++				else:
++					#update current point
++					j=j+1
++		
++		if npy.size(x)>1:
++			#keep the (x,y) contour arond
++			newcontour=OrderedDict()
++			newcontour['nods']=npy.size(x)
++			newcontour['density']=contour['density']
++			newcontour['x']=x
++			newcontour['y']=y
++			newcontours.append(newcontour)
++
++	#write output
++	expwrite(newcontours,newfile)
+Index: ../trunk-jpl/src/py3/exp/expwrite.py
+===================================================================
+--- ../trunk-jpl/src/py3/exp/expwrite.py	(revision 0)
++++ ../trunk-jpl/src/py3/exp/expwrite.py	(revision 19895)
+@@ -0,0 +1,47 @@
++import numpy
++
++def expwrite(contours,filename):
++	"""
++	EXPWRITE - write an Argus file from a dictionary given in input
++
++	   This routine writes an Argus file from a dict containing the fields:
++	   x and y of the coordinates of the points.
++	   The first argument is the list containing the points coordinates 
++	   and the second one the file to be written.
++
++	   Usage:
++	      expwrite(contours,filename)
++
++	   Example:
++	      expwrite(coordstruct,'domainoutline.exp')
++
++	   See also EXPDOC, EXPREAD, EXPWRITEASVERTICES
++	"""
++
++	fid=open(filename,'w')
++	for x,y in zip(contours['x'],contours['y']):
++		#if numpy.size(contour['x'])!=numpy.size(contour['y']):
++		if len(x)!=len(y):
++			raise RuntimeError("contours x and y coordinates must be of identical size")
++		if 'name' in contours:
++			fid.write("%s%s\n" % ('## Name:',contours['name']))
++		else:
++			fid.write("%s%s\n" % ('## Name:',filename))
++   
++		#Add density if it's not there FIXME what is this ever used for?
++		#if 'density' not in contours:
++		#	contours['density']=1
++		density=1
++
++		fid.write("%s\n" % '## Icon:0')
++		fid.write("%s\n" % '# Points Count Value')
++		#fid.write("%i %f\n" % (numpy.size(contour['x']),contour['density']))
++		fid.write("%i %f\n" % (numpy.size(x),density))
++		fid.write("%s\n" % '# X pos Y pos')
++		#for x,y in zip(contour['x'],contour['y']):
++		for xi,yi in zip(x,y):
++			fid.write("%10.10f %10.10f\n" % (xi,yi))
++		fid.write("\n")
++
++	fid.close()
++
+Index: ../trunk-jpl/src/py3/mesh/GetNodalFunctionsCoeff.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/GetNodalFunctionsCoeff.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/GetNodalFunctionsCoeff.py	(revision 19895)
+@@ -0,0 +1,58 @@
++import numpy
++
++def GetNodalFunctionsCoeff(index,x,y):
++	"""
++	GETNODELFUNCTIONSCOEFF - compute nodal functions coefficients
++
++	   Compute the coefficients alpha beta and optionaly gamma of
++	   2d triangular elements. For each element, the nodal function
++	   is defined as:
++	   N(x,y)=sum(i=1:3) alpha_i * x + beta_i * y + gamma_i
++
++	   Usage:
++	      [alpha beta]=GetNodalFunctionsCoeff(index,x,y);
++	      [alpha beta gamma]=GetNodalFunctionsCoeff(index,x,y);
++
++	   Example:
++	      [alpha beta gamma]=GetNodalFunctionsCoeff(md.mesh.elements,md.mesh.x,md.mesh.y);
++	"""
++
++	#make columns out of x and y
++	x=x.reshape(-1)
++	y=y.reshape(-1)
++
++	#get nels and nods
++	nels=numpy.size(index,axis=0)
++	nods=numpy.size(x)
++
++	#some checks
++	if numpy.size(y)!=nods:
++		raise TypeError("GetNodalFunctionsCoeff error message: x and y do not have the same length.")
++	if numpy.max(index)>nods:
++		raise TypeError("GetNodalFunctionsCoeff error message: index should not have values above %d." % nods)
++	if numpy.size(index,axis=1)!=3:
++		raise TypeError("GetNodalFunctionsCoeff error message: only 2d meshes supported. index should have 3 columns.")
++
++	#initialize output
++	alpha=numpy.zeros((nels,3))
++	beta=numpy.zeros((nels,3))
++
++	#compute nodal functions coefficients N(x,y)=alpha x + beta y +gamma
++	x1=x[index[:,0]-1]
++	x2=x[index[:,1]-1]
++	x3=x[index[:,2]-1]
++	y1=y[index[:,0]-1]
++	y2=y[index[:,1]-1]
++	y3=y[index[:,2]-1]
++	invdet=1./(x1*(y2-y3)-x2*(y1-y3)+x3*(y1-y2))
++
++	#get alpha and beta
++	alpha=numpy.hstack(((invdet*(y2-y3)).reshape(-1,1),(invdet*(y3-y1)).reshape(-1,1),(invdet*(y1-y2)).reshape(-1,1)))
++	beta =numpy.hstack(((invdet*(x3-x2)).reshape(-1,1),(invdet*(x1-x3)).reshape(-1,1),(invdet*(x2-x1)).reshape(-1,1)))
++
++	#get gamma if requested
++	gamma=numpy.zeros((nels,3))
++	gamma=numpy.hstack(((invdet*(x2*y3-x3*y2)).reshape(-1,1),(invdet*(y1*x3-y3*x1)).reshape(-1,1),(invdet*(x1*y2-x2*y1)).reshape(-1,1)))
++
++	return alpha,beta,gamma
++
+Index: ../trunk-jpl/src/py3/mesh/meshconvert.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/meshconvert.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/meshconvert.py	(revision 19895)
+@@ -0,0 +1,52 @@
++import numpy
++from collections import OrderedDict
++from BamgConvertMesh import BamgConvertMesh 
++from mesh2d   import mesh2d
++from bamgmesh import bamgmesh
++from bamggeom import bamggeom
++
++def meshconvert(md,*args):
++	"""
++	CONVERTMESH - convert mesh to bamg mesh
++
++	   Usage:
++	      md=meshconvert(md);
++	      md=meshconvert(md,index,x,y);
++	"""
++
++	if not len(args)==0 and not len(args)==3:
++		raise TypeError("meshconvert error message: bad usage")
++
++	if not len(args):
++		index = md.mesh.elements
++		x     = md.mesh.x
++		y     = md.mesh.y
++	else:
++		index = args[0]
++		x     = args[1]
++		y     = args[2]
++
++	#call Bamg
++	bamgmesh_out,bamggeom_out=BamgConvertMesh(index,x,y)
++
++	# plug results onto model
++	md.private.bamg             = OrderedDict()
++	md.private.bamg['mesh']     = bamgmesh(bamgmesh_out)
++	md.private.bamg['geometry'] = bamggeom(bamggeom_out)
++	md.mesh                     = mesh2d()
++	md.mesh.x                   = bamgmesh_out['Vertices'][:,0].copy()
++	md.mesh.y                   = bamgmesh_out['Vertices'][:,1].copy()
++	md.mesh.elements            = bamgmesh_out['Triangles'][:,0:3].astype(int)
++	md.mesh.edges               = bamgmesh_out['IssmEdges'].astype(int)
++	md.mesh.segments            = bamgmesh_out['IssmSegments'][:,0:3].astype(int)
++	md.mesh.segmentmarkers      = bamgmesh_out['IssmSegments'][:,3].astype(int)
++
++	#Fill in rest of fields:
++	md.mesh.numberofelements   = numpy.size(md.mesh.elements,axis=0)
++	md.mesh.numberofvertices   = numpy.size(md.mesh.x)
++	md.mesh.numberofedges      = numpy.size(md.mesh.edges,axis=0)
++	md.mesh.vertexonboundary   = numpy.zeros(md.mesh.numberofvertices,bool)
++	md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1] = True
++
++	return md
++
+Index: ../trunk-jpl/src/py3/mesh/squaremesh.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/squaremesh.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/squaremesh.py	(revision 19895)
+@@ -0,0 +1,76 @@
++import numpy
++from NodeConnectivity import NodeConnectivity
++from ElementConnectivity import ElementConnectivity 
++from mesh2d import mesh2d
++
++def squaremesh(md,Lx,Ly,nx,ny):
++	"""
++	SQUAREMESH - create a structured square mesh 
++
++	   This script will generate a structured square mesh
++	   Lx and Ly are the dimension of the domain (in meters)
++	   nx anx ny are the number of nodes in the x and y direction
++	   The coordinates x and y returned are in meters.
++
++	   Usage:
++	      [md]=squaremesh(md,Lx,Ly,nx,ny)
++	"""
++
++	#get number of elements and number of nodes
++	nel=(nx-1)*(ny-1)*2
++	nods=nx*ny
++
++	#initialization
++	index=numpy.zeros((nel,3),int)
++	x=numpy.zeros((nx*ny))
++	y=numpy.zeros((nx*ny))
++
++	#create coordinates
++	for n in range(0,nx):
++		for m in range(0,ny):
++			x[n*ny+m]=float(n)
++			y[n*ny+m]=float(m)
++
++	#create index
++	for n in range(0,nx-1):
++		for m in range(0,ny-1):
++			A=n*ny+(m+1)
++			B=A+1
++			C=(n+1)*ny+(m+1)
++			D=C+1
++			index[n*(ny-1)*2+2*m,:]=[A,C,B]
++			index[n*(ny-1)*2+2*(m+1)-1,:]=[B,C,D]
++
++	#Scale  x and y
++	x=x/numpy.max(x)*Lx
++	y=y/numpy.max(y)*Ly
++
++	#create segments
++	segments=numpy.zeros((2*(nx-1)+2*(ny-1),3),int)
++	#left edge:
++	segments[0:ny-1,:]=numpy.hstack((numpy.arange(2,ny+1).reshape(-1,1),numpy.arange(1,ny).reshape(-1,1),(2*numpy.arange(1,ny)-1).reshape(-1,1)))
++	#right edge:
++	segments[ny-1:2*(ny-1),:]=numpy.hstack((numpy.arange(ny*(nx-1)+1,nx*ny).reshape(-1,1),numpy.arange(ny*(nx-1)+2,nx*ny+1).reshape(-1,1),2*numpy.arange((ny-1)*(nx-2)+1,(nx-1)*(ny-1)+1).reshape(-1,1)))
++	#front edge:
++	segments[2*(ny-1):2*(ny-1)+(nx-1),:]=numpy.hstack((numpy.arange(2*ny,ny*nx+1,ny).reshape(-1,1),numpy.arange(ny,ny*(nx-1)+1,ny).reshape(-1,1),numpy.arange(2*(ny-1),2*(nx-1)*(ny-1)+1,2*(ny-1)).reshape(-1,1)))
++	#back edge
++	segments[2*(ny-1)+(nx-1):2*(nx-1)+2*(ny-1),:]=numpy.hstack((numpy.arange(1,(nx-2)*ny+2,ny).reshape(-1,1),numpy.arange(ny+1,ny*(nx-1)+2,ny).reshape(-1,1),numpy.arange(1,2*(nx-2)*(ny-1)+2,2*(ny-1)).reshape(-1,1)))
++
++	#plug coordinates and nodes
++	md.mesh=mesh2d()
++	md.mesh.x=x
++	md.mesh.y=y
++	md.mesh.numberofvertices=nods
++	md.mesh.vertexonboundary=numpy.zeros((nods),bool)
++	md.mesh.vertexonboundary[segments[:,0:2]-1]=True
++
++	#plug elements
++	md.mesh.elements=index
++	md.mesh.segments=segments
++	md.mesh.numberofelements=nel
++
++	#Now, build the connectivity tables for this mesh.
++	[md.mesh.vertexconnectivity]=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices)
++	[md.mesh.elementconnectivity]=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity)
++
++	return md
+Index: ../trunk-jpl/src/py3/mesh/ComputeMetric.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/ComputeMetric.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/ComputeMetric.py	(revision 19895)
+@@ -0,0 +1,74 @@
++import numpy
++
++def ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos):
++	"""
++	COMPUTEMETRIC - compute metric from an Hessian
++
++	   Usage:
++	      metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos)
++	      pos is contains the positions where the metric is wished to be maximized (water?)
++
++	   Example:
++	      metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,[])
++	"""
++
++	#first, find the eigen values of each line of H=[hessian(i,1) hessian(i,2); hessian(i,2) hessian(i,3)]
++	a=hessian[:,0]
++	b=hessian[:,1]
++	d=hessian[:,2]
++	lambda1=0.5*((a+d)+numpy.sqrt(4.*b**2+(a-d)**2))
++	lambda2=0.5*((a+d)-numpy.sqrt(4.*b**2+(a-d)**2))
++	pos1=numpy.nonzero(lambda1==0.)[0]
++	pos2=numpy.nonzero(lambda2==0.)[0]
++	pos3=numpy.nonzero(numpy.logical_and(b==0.,lambda1==lambda2))[0]
++
++	#Modify the eigen values to control the shape of the elements
++	lambda1=numpy.minimum(numpy.maximum(numpy.abs(lambda1)*scale/epsilon,1./hmax**2),1./hmin**2)
++	lambda2=numpy.minimum(numpy.maximum(numpy.abs(lambda2)*scale/epsilon,1./hmax**2),1./hmin**2)
++
++	#compute eigen vectors
++	norm1=numpy.sqrt(8.*b**2+2.*(d-a)**2+2.*(d-a)*numpy.sqrt((a-d)**2+4.*b**2))
++	v1x=2.*b/norm1
++	v1y=((d-a)+numpy.sqrt((a-d)**2+4.*b**2))/norm1
++	norm2=numpy.sqrt(8.*b**2+2.*(d-a)**2-2.*(d-a)*numpy.sqrt((a-d)**2+4.*b**2))
++	v2x=2.*b/norm2
++	v2y=((d-a)-numpy.sqrt((a-d)**2+4.*b**2))/norm2
++
++	v1x[pos3]=1.
++	v1y[pos3]=0.
++	v2x[pos3]=0.
++	v2y[pos3]=1.
++
++	#Compute new metric (for each node M=V*Lambda*V^-1)
++	metric=numpy.hstack((((v1x*v2y-v1y*v2x)**(-1)*( lambda1*v2y*v1x-lambda2*v1y*v2x)).reshape(-1,1), \
++		                 ((v1x*v2y-v1y*v2x)**(-1)*( lambda1*v1y*v2y-lambda2*v1y*v2y)).reshape(-1,1), \
++		                 ((v1x*v2y-v1y*v2x)**(-1)*(-lambda1*v2x*v1y+lambda2*v1x*v2y)).reshape(-1,1)))
++
++	#some corrections for 0 eigen values
++	metric[pos1,:]=numpy.tile(numpy.array([[1./hmax**2,0.,1./hmax**2]]),(numpy.size(pos1),1))
++	metric[pos2,:]=numpy.tile(numpy.array([[1./hmax**2,0.,1./hmax**2]]),(numpy.size(pos2),1))
++
++	#take care of water elements
++	metric[pos ,:]=numpy.tile(numpy.array([[1./hmax**2,0.,1./hmax**2]]),(numpy.size(pos ),1))
++
++	#take care of NaNs if any (use Numpy eig in a loop)
++	pos=numpy.nonzero(numpy.isnan(metric))[0]
++	if numpy.size(pos):
++		print((" %i NaN found in the metric. Use Numpy routine..." % numpy.size(pos)))
++		for posi in pos:
++			H=numpy.array([[hessian[posi,0],hessian[posi,1]],[hessian[posi,1],hessian[posi,2]]])
++			[v,u]=numpy.linalg.eig(H)
++			v=numpy.diag(v)
++			lambda1=v[0,0]
++			lambda2=v[1,1]
++			v[0,0]=numpy.minimum(numpy.maximum(numpy.abs(lambda1)*scale/epsilon,1./hmax**2),1./hmin**2)
++			v[1,1]=numpy.minimum(numpy.maximum(numpy.abs(lambda2)*scale/epsilon,1./hmax**2),1./hmin**2)
++
++			metricTria=numpy.dot(numpy.dot(u,v),numpy.linalg.inv(u))
++			metric[posi,:]=numpy.array([metricTria[0,0],metricTria[0,1],metricTria[1,1]])
++
++	if numpy.any(numpy.isnan(metric)):
++		raise RunTimeError("ComputeMetric error message: NaN in the metric despite our efforts...")
++
++	return metric
++
+Index: ../trunk-jpl/src/py3/mesh/rifts/meshprocessoutsiderifts.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/rifts/meshprocessoutsiderifts.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/rifts/meshprocessoutsiderifts.py	(revision 19895)
+@@ -0,0 +1,104 @@
++import numpy
++from ElementsFromEdge import ElementsFromEdge
++import MatlabFuncs as m
++
++def meshprocessoutsiderifts(md,domainoutline):
++	"""
++	MESHPROCESSOUTSIDERIFTS - process rifts when they touch the domain outline
++
++	   Usage:
++	      md=meshprocessoutsiderifts(md,domain)
++
++	"""
++
++	#go through rifts, and figure out which ones touch the domain outline
++	for rift in md.rifts.riftstruct:
++	
++		#first, flag nodes that belong to the domain outline
++		flags=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0)
++
++		tips=rift.tips
++		outsidetips=tips[numpy.nonzero(flags[rift.tips-1])[0]]
++
++		#we have found outsidetips, tips that touch the domain outline. go through them
++		for tip in outsidetips:
++		
++			#find tip in the segments, take first segment (there should be 2) that holds tip, 
++			#and node_connected_to_tip is the other node on this segment:
++			tipindex=numpy.nonzero(rift.segments[:,0]==tip)[0]
++			if tipindex:
++				tipindex=tipindex[0]
++				node_connected_to_tip=rift.segments[tipindex,1]
++			else:
++				tipindex=numpy.nonzero(rift.segments[:,1]==tip)[0]
++				tipindex=tipindex[0]
++				node_connected_to_tip=rift.segments[tipindex,1]
++
++			#ok, we have the tip node, and the first node connected to it, on the rift. Now, 
++			#identify all the elements that are connected to the tip, and that are on the same 
++			#side of the rift.
++			A=tip
++			B=node_connected_to_tip
++
++			elements=numpy.empty(0,int)
++
++			while flags(B):    #as long as B does not belong to the domain outline, keep looking.
++				#detect elements on edge A,B:
++				edgeelements=ElementsFromEdge(md.mesh.elements,A,B)
++				#rule out those we already detected
++				already_detected=m.ismember(edgeelements,elements)
++				nextelement=edgeelements(numpy.nonzero(numpy.logical_not(already_detected))[0])
++				#add new detected element to the list of elements we are looking for.
++				elements=numpy.concatenate((elements,nextelement))
++				#new B:
++				B=md.mesh.elements[nextelement-1,numpy.nonzero(numpy.logical_not(m.ismember(md.mesh.elements[nextelement-1,:],numpy.array([A,B]))))]
++		
++			#take the list of elements on one side of the rift that connect to the tip, 
++			#and duplicate the tip on them, so as to open the rift to the outside.
++			num=numpy.size(md.mesh.x)+1
++			md.mesh.x=numpy.concatenate((md.mesh.x,md.mesh.x[tip]))
++			md.mesh.y=numpy.concatenate((md.mesh.y,md.mesh.y[tip]))
++			md.mesh.numberofvertices=num
++		
++			#replace tip in elements
++			newelements=md.mesh.elements[elements-1,:]
++			pos=numpy.nonzero(newelements==tip)
++			newelements[pos]=num
++			md.mesh.elements[elements-1,:]=newelements
++			rift.tips=numpy.concatenate((rift.tips,num))
++
++			#deal with segments
++			tipsegments=numpy.nonzero(numpy.logical_or(md.mesh.segments[:,0]==tip,md.mesh.segments[:,1]==tip))[0]
++			for segment_index in tipsegments:
++				pos=numpy.nonzero(md.mesh.segments[segment_index,0:2]!=tip)[0]
++				other_node=md.mesh.segments[segment_index,pos]
++				if not isconnected(md.mesh.elements,other_node,tip):
++					pos=numpy.nonzero(md.mesh.segments[segment_index,0:2]==tip)[0]
++					md.mesh.segments[segment_index,pos]=num
++
++	#Fill in rest of fields:
++	md.mesh.numberofelements=numpy.size(md.mesh.elements,axis=0)
++	md.mesh.numberofvertices=numpy.size(md.mesh.x)
++	md.mesh.vertexonboundary=numpy.zeros(numpy.size(md.mesh.x),bool)
++	md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1]=True
++	md.rifts.numrifts=length(md.rifts.riftstruct)
++
++	return md
++
++def isconnected(elements,A,B):    # {{{
++	"""
++	ISCONNECTED: are two nodes connected by a triangulation?
++
++	   Usage: flag=isconnected(elements,A,B)
++
++	"""
++
++	elements=ElementsFromEdge(elements,A,B)
++	if not elements:
++		flag=0
++	else:
++		flag=1
++
++	return flag
++	# }}}
++
+Index: ../trunk-jpl/src/py3/mesh/rifts/meshprocessrifts.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/rifts/meshprocessrifts.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/rifts/meshprocessrifts.py	(revision 19895)
+@@ -0,0 +1,64 @@
++import numpy
++from TriMeshProcessRifts import TriMeshProcessRifts
++from ContourToMesh import ContourToMesh
++from meshprocessoutsiderifts import meshprocessoutsiderifts
++from GetAreas import GetAreas
++
++def meshprocessrifts(md,domainoutline):
++	"""
++	MESHPROCESSRIFTS - process mesh when rifts are present
++
++	   split rifts inside mesh (rifts are defined by presence of
++	   segments inside the domain outline)
++	   if domain outline is provided, check for rifts that could touch it, and open them up.
++
++	   Usage:
++	      md=meshprocessrifts(md,domainoutline)
++
++	   Ex: 
++	      md=meshprocessrifts(md,'DomainOutline.exp');
++	
++	"""
++
++	#Call MEX file
++	[md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers,md.rifts.riftstruct]=TriMeshProcessRifts(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers)
++	md.mesh.elements=md.mesh.elements.astype(int)
++	md.mesh.x=md.mesh.x.reshape(-1)
++	md.mesh.y=md.mesh.y.reshape(-1)
++	md.mesh.segments=md.mesh.segments.astype(int)
++	md.mesh.segmentmarkers=md.mesh.segmentmarkers.astype(int)
++	if not isinstance(md.rifts.riftstruct,list) or not md.rifts.riftstruct:
++		raise RuntimeError("TriMeshProcessRifts did not find any rift")
++
++	#Fill in rest of fields:
++	numrifts=len(md.rifts.riftstruct)
++	md.mesh.numberofelements=numpy.size(md.mesh.elements,axis=0)
++	md.mesh.numberofvertices=numpy.size(md.mesh.x)
++	md.mesh.vertexonboundary=numpy.zeros(numpy.size(md.mesh.x),bool)
++	md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1]=True
++
++	#get coordinates of rift tips
++	for rift in md.rifts.riftstruct:
++		rift['tip1coordinates']=numpy.hstack((md.mesh.x[rift['tips'][0,0].astype(int)-1].reshape(-1,1),md.mesh.y[rift['tips'][0,0].astype(int)-1].reshape(-1,1)))
++		rift['tip2coordinates']=numpy.hstack((md.mesh.x[rift['tips'][0,1].astype(int)-1].reshape(-1,1),md.mesh.y[rift['tips'][0,1].astype(int)-1].reshape(-1,1)))
++
++	#In case we have rifts that open up the domain outline, we need to open them: 
++	[flags,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,domainoutline,'node',0)
++	found=0
++	for rift in md.rifts.riftstruct:
++		if flags[rift['tips'][0,0].astype(int)-1]==0:
++			found=1
++			break
++		if flags[rift['tips'][0,1].astype(int)-1]==0:
++			found=1
++			break
++	if found:
++		md=meshprocessoutsiderifts(md,domainoutline)
++
++	#get elements that are not correctly oriented in the correct direction:
++	aires=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y)
++	pos=numpy.nonzero(aires<0)[0]
++	md.mesh.elements[pos,:]=numpy.hstack((md.mesh.elements[pos,1].reshape(-1,1),md.mesh.elements[pos,0].reshape(-1,1),md.mesh.elements[pos,2].reshape(-1,1)))
++
++	return md
++
+Index: ../trunk-jpl/src/py3/mesh/roundmesh.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/roundmesh.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/roundmesh.py	(revision 19895)
+@@ -0,0 +1,61 @@
++import numpy
++import os
++from collections import OrderedDict
++from expwrite import expwrite
++from triangle import triangle
++
++def roundmesh(md,radius,resolution):
++	"""
++	ROUNDMESH - create an unstructured round mesh 
++
++	   This script will generate a structured round mesh
++	   - radius     : specifies the radius of the circle in meters
++	   - resolution : specifies the resolution in meters
++
++	   Usage:
++	      md=roundmesh(md,radius,resolution)
++	"""
++
++	#First we have to create the domain outline 
++
++	#Get number of points on the circle
++	pointsonedge=numpy.floor((2.*numpy.pi*radius) / resolution)
++
++	#Calculate the cartesians coordinates of the points
++	x_list=numpy.ones(pointsonedge)
++	y_list=numpy.ones(pointsonedge)
++	theta=numpy.linspace(0.,2.*numpy.pi,num=pointsonedge,endpoint=False)
++	x_list=roundsigfig(radius*x_list*numpy.cos(theta),12)
++	y_list=roundsigfig(radius*y_list*numpy.sin(theta),12)
++	A=OrderedDict()
++	A['x']=[x_list]
++	A['y']=[y_list]
++	A['density']=1.
++	expwrite(A,'RoundDomainOutline.exp')
++
++	#Call Bamg
++	md=triangle(md,'RoundDomainOutline.exp',resolution)
++	#md=bamg(md,'domain','RoundDomainOutline.exp','hmin',resolution)
++
++	#move the closest node to the center
++	pos=numpy.argmin(md.mesh.x**2+md.mesh.y**2)
++	md.mesh.x[pos]=0.
++	md.mesh.y[pos]=0.
++
++	#delete domain
++	os.remove('RoundDomainOutline.exp')
++
++	return md
++
++def roundsigfig(x,n):
++
++	digits=numpy.ceil(numpy.log10(numpy.abs(x)))
++	x=x/10.**digits
++	x=numpy.round(x,decimals=n)
++	x=x*10.**digits
++
++	pos=numpy.nonzero(numpy.isnan(x))
++	x[pos]=0.
++
++	return x
++
+Index: ../trunk-jpl/src/py3/mesh/ElementsFromEdge.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/ElementsFromEdge.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/ElementsFromEdge.py	(revision 19895)
+@@ -0,0 +1,24 @@
++import numpy
++import PythonFuncs as p
++
++def ElementsFromEdge(elements,A,B):
++	"""
++	ELEMENTSFROMEDGE: find elements connected to one edge defined by nodes A and B
++
++	   Usage: edgeelements=ElementsFromEdge(elements,A,B) 
++
++	   Eg:    edgeelements=ElementsFromEdge(md.mesh.elements,tip1,tip2)
++
++	"""
++
++	edgeelements=numpy.nonzero(\
++		p.logical_or_n(numpy.logical_and(elements[:,0]==A,elements[:,1]==B), \
++					 numpy.logical_and(elements[:,0]==A,elements[:,2]==B), \
++					 numpy.logical_and(elements[:,1]==A,elements[:,2]==B), \
++					 numpy.logical_and(elements[:,1]==A,elements[:,0]==B), \
++					 numpy.logical_and(elements[:,2]==A,elements[:,0]==B), \
++					 numpy.logical_and(elements[:,2]==A,elements[:,1]==B), \
++		))[0]+1
++
++	return edgeelements
++
+Index: ../trunk-jpl/src/py3/mesh/triangle.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/triangle.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/triangle.py	(revision 19895)
+@@ -0,0 +1,62 @@
++import numpy
++from mesh2d import mesh2d
++from TriMesh import TriMesh
++from NodeConnectivity import NodeConnectivity
++from ElementConnectivity import ElementConnectivity
++import MatlabFuncs as m
++
++def triangle(md,domainname,*args):
++	"""
++	TRIANGLE - create model mesh using the triangle package
++
++	   This routine creates a model mesh using TriMesh and a domain outline, to within a certain resolution
++	   where md is a @model object, domainname is the name of an Argus domain outline file, 
++	   and resolution is a characteristic length for the mesh (same unit as the domain outline
++	   unit). Riftname is an optional argument (Argus domain outline) describing rifts.
++
++	   Usage:
++	      md=triangle(md,domainname,resolution)
++	   or md=triangle(md,domainname, resolution, riftname)
++
++	   Examples:
++	      md=triangle(md,'DomainOutline.exp',1000);
++	      md=triangle(md,'DomainOutline.exp',1000,'Rifts.exp');
++	"""
++
++	#Figure out a characteristic area. Resolution is a node oriented concept (ex a 1000m  resolution node would 
++	#be made of 1000*1000 area squares). 
++
++	if len(args)==1:
++		resolution=args[0]
++		riftname=''
++	if len(args)==2:
++		riftname=args[0]
++		resolution=args[1]
++
++	#Check that mesh was not already run, and warn user: 
++	if md.mesh.numberofelements:
++		choice = input('This model already has a mesh. Are you sure you want to go ahead? (y/n)')
++		if not m.strcmp(choice,'y'):
++			print('no meshing done ... exiting')
++			return None
++
++	area = resolution**2
++
++	#Mesh using TriMesh
++	md.mesh=mesh2d()
++	[md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=TriMesh(domainname,riftname,area)
++	md.mesh.elements=md.mesh.elements.astype(int)
++	md.mesh.segments=md.mesh.segments.astype(int)
++	md.mesh.segmentmarkers=md.mesh.segmentmarkers.astype(int)
++
++	#Fill in rest of fields:
++	md.mesh.numberofelements = numpy.size(md.mesh.elements,axis=0)
++	md.mesh.numberofvertices = numpy.size(md.mesh.x)
++	md.mesh.vertexonboundary = numpy.zeros(md.mesh.numberofvertices,bool)
++	md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1] = True
++
++	#Now, build the connectivity tables for this mesh.
++	[md.mesh.vertexconnectivity] = NodeConnectivity(md.mesh.elements, md.mesh.numberofvertices)
++	[md.mesh.elementconnectivity] = ElementConnectivity(md.mesh.elements, md.mesh.vertexconnectivity)
++
++	return md
+Index: ../trunk-jpl/src/py3/mesh/bamg.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/bamg.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/bamg.py	(revision 19895)
+@@ -0,0 +1,486 @@
++import os.path
++import numpy
++from mesh2d import mesh2d
++from collections import OrderedDict
++from pairoptions import pairoptions
++from bamggeom import bamggeom
++from bamgmesh import bamgmesh
++from expread import expread
++from expwrite import expwrite
++from SegIntersect import SegIntersect
++import MatlabFuncs as m
++from BamgMesher import BamgMesher
++from ContourToNodes import ContourToNodes
++
++def bamg(md,*kwargs):
++	"""
++	BAMG - mesh generation
++
++	   Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
++
++	   - domain :            followed by an ARGUS file that prescribes the domain outline
++	   - hmin :              minimum edge length (default is 10^-100)
++	   - hmax :              maximum edge length (default is 10^100)
++	   - hVertices :         imposed edge length for each vertex (geometry or mesh)
++	   - hminVertices :      minimum edge length for each vertex (mesh)
++	   - hmaxVertices :      maximum edge length for each vertex (mesh)
++
++	   - anisomax :          maximum ratio between the smallest and largest edges (default is 10^30)
++	   - coeff :             coefficient applied to the metric (2-> twice as many elements, default is 1)
++	   - cutoff :            scalar used to compute the metric when metric type 2 or 3 are applied
++	   - err :               error used to generate the metric from a field
++	   - errg :              geometric error (default is 0.1)
++	   - field :             field of the model that will be used to compute the metric
++	                         to apply several fields, use one column per field
++	   - gradation :         maximum ratio between two adjacent edges
++	   - Hessiantype :       0 -> use double P2 projection (default)
++	                         1 -> use Green formula
++	   - KeepVertices :      try to keep initial vertices when adaptation is done on an existing mesh (default 1)
++	   - MaxCornerAngle :    maximum angle of corners in degree (default is 10)
++	   - maxnbv :            maximum number of vertices used to allocate memory (default is 10^6)
++	   - maxsubdiv :         maximum subdivision of exisiting elements (default is 10)
++	   - metric :            matrix (numberofnodes x 3) used as a metric
++	   - Metrictype :        1 -> absolute error          c/(err coeff^2) * Abs(H)        (default)
++	                         2 -> relative error          c/(err coeff^2) * Abs(H)/max(s,cutoff*max(s))
++	                         3 -> rescaled absolute error c/(err coeff^2) * Abs(H)/(smax-smin)
++	   - nbjacoby :          correction used by Hessiantype=1 (default is 1)
++	   - nbsmooth :          number of metric smoothing procedure (default is 3)
++	   - omega :             relaxation parameter of the smoothing procedure (default is 1.8)
++	   - power :             power applied to the metric (default is 1)
++	   - splitcorners :      split triangles whuch have 3 vertices on the outline (default is 1)
++	   - geometricalmetric : take the geometry into account to generate the metric (default is 0)
++	   - verbose :           level of verbosity (default is 1)
++
++	   - rifts :             followed by an ARGUS file that prescribes the rifts
++	   - toltip :            tolerance to move tip on an existing point of the domain outline
++	   - tracks :            followed by an ARGUS file that prescribes the tracks that the mesh will stick to
++	   - RequiredVertices :  mesh vertices that are required. [x,y,ref]; ref is optional
++	   - tol :               if the distance between 2 points of the domain outline is less than tol, they
++	                         will be merged
++
++	   Examples:
++	      md=bamg(md,'domain','DomainOutline.exp','hmax',3000);
++	      md=bamg(md,'field',[md.inversion.vel_obs md.geometry.thickness],'hmax',20000,'hmin',1000);
++	      md=bamg(md,'metric',A,'hmin',1000,'hmax',20000,'gradation',3,'anisomax',1);
++	"""
++
++	#process options
++	options=pairoptions(**kwargs)
++#	options=deleteduplicates(options,1);
++
++	#initialize the structures required as input of Bamg
++	bamg_options=OrderedDict()
++	bamg_geometry=bamggeom()
++	bamg_mesh=bamgmesh()
++
++	# Bamg Geometry parameters {{{
++	if options.exist('domain'):
++
++		#Check that file exists
++		domainfile=options.getfieldvalue('domain')
++		if not os.path.exists(domainfile):
++			raise IOError("bamg error message: file '%s' not found" % domainfile)
++		domain=expread(domainfile)
++
++		#Build geometry 
++		count=0
++		for i,domaini in enumerate(domain):
++
++			#Check that the domain is closed
++			if (domaini['x'][0]!=domaini['x'][-1] or domaini['y'][0]!=domaini['y'][-1]):
++				raise RuntimeError("bamg error message: all contours provided in ''domain'' should be closed")
++
++			#Checks that all holes are INSIDE the principle domain outline
++			if i:
++				flags=ContourToNodes(domaini['x'],domaini['y'],domainfile,0)
++				if numpy.any(numpy.logical_not(flags)):
++					raise RuntimeError("bamg error message: All holes should be strictly inside the principal domain")
++
++			#Add all points to bamg_geometry
++			nods=domaini['nods']-1    #the domain are closed 0=end
++			bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,numpy.hstack((domaini['x'][0:nods].reshape(-1,1),domaini['y'][0:nods].reshape(-1,1),numpy.ones((nods,1))))))
++			bamg_geometry.Edges   =numpy.vstack((bamg_geometry.Edges,   numpy.hstack((numpy.arange(count+1,count+nods+1).reshape(-1,1),numpy.hstack((numpy.arange(count+2,count+nods+1),count+1)).reshape(-1,1),1.*numpy.ones((nods,1))))))
++			if i:
++				bamg_geometry.SubDomains=numpy.vstack((bamg_geometry.SubDomains,[2,count+1,1,1]))
++
++			#update counter
++			count+=nods
++
++		#take care of rifts
++		if options.exist('rifts'):
++
++			#Check that file exists
++			riftfile=options.getfieldvalue('rifts')
++			if not os.path.exists(riftfile):
++				raise IOError("bamg error message: file '%s' not found" % riftfile)
++			rift=expread(riftfile)
++
++			for i,rifti in enumerate(rift):
++
++				#detect whether all points of the rift are inside the domain
++				flags=ContourToNodes(rifti['x'],rifti['y'],domain[0],0)
++				if numpy.all(numpy.logical_not(flags)):
++					raise RuntimeError("one rift has all its points outside of the domain outline")
++
++				elif numpy.any(numpy.logical_not(flags)):
++					#We LOTS of work to do
++					print("Rift tip outside of or on the domain has been detected and is being processed...")
++
++					#check that only one point is outside (for now)
++					if numpy.sum(numpy.logical_not(flags).astype(int))!=1:
++						raise RuntimeError("bamg error message: only one point outside of the domain is supported yet")
++
++					#Move tip outside to the first position
++					if   not flags[0]:
++						#OK, first point is outside (do nothing),
++						pass
++					elif not flags[-1]:
++						rifti['x']=numpy.flipud(rifti['x'])
++						rifti['y']=numpy.flipud(rifti['y'])
++					else:
++						raise RuntimeError("bamg error message: only a rift tip can be outside of the domain")
++
++					#Get cordinate of intersection point
++					x1=rifti['x'][0]
++					y1=rifti['y'][0]
++					x2=rifti['x'][1]
++					y2=rifti['y'][1]
++					for j in range(0,numpy.size(domain[0]['x'])-1):
++						if SegIntersect(numpy.array([[x1,y1],[x2,y2]]),numpy.array([[domain[0]['x'][j],domain[0]['y'][j]],[domain[0]['x'][j+1],domain[0]['y'][j+1]]])):
++
++							#Get position of the two nodes of the edge in domain
++							i1=j
++							i2=j+1
++
++							#rift is crossing edge [i1 i2] of the domain
++							#Get coordinate of intersection point (http://mathworld.wolfram.com/Line-LineIntersection.html)
++							x3=domain[0]['x'][i1]
++							y3=domain[0]['y'][i1]
++							x4=domain[0]['x'][i2]
++							y4=domain[0]['y'][i2]
++#							x=det([det([x1 y1; x2 y2])  x1-x2;det([x3 y3; x4 y4])  x3-x4])/det([x1-x2 y1-y2;x3-x4 y3-y4]);
++#							y=det([det([x1 y1; x2 y2])  y1-y2;det([x3 y3; x4 y4])  y3-y4])/det([x1-x2 y1-y2;x3-x4 y3-y4]);
++							x=numpy.linalg.det(numpy.array([[numpy.linalg.det(numpy.array([[x1,y1],[x2,y2]])),x1-x2],[numpy.linalg.det(numpy.array([[x3,y3],[x4,y4]])),x3-x4]]))/numpy.linalg.det(numpy.array([[x1-x2,y1-y2],[x3-x4,y3-y4]]))
++							y=numpy.linalg.det(numpy.array([[numpy.linalg.det(numpy.array([[x1,y1],[x2,y2]])),y1-y2],[numpy.linalg.det(numpy.array([[x3,y3],[x4,y4]])),y3-y4]]))/numpy.linalg.det(numpy.array([[x1-x2,y1-y2],[x3-x4,y3-y4]]))
++
++							segdis= sqrt((x4-x3)**2+(y4-y3)**2)
++							tipdis=numpy.array([sqrt((x-x3)**2+(y-y3)**2),sqrt((x-x4)**2+(y-y4)**2)])
++
++							if numpy.min(tipdis)/segdis < options.getfieldvalue('toltip',0):
++								print("moving tip-domain intersection point")
++
++								#Get position of the closer point
++								if tipdis[0]>tipdis[1]:
++									pos=i2
++								else:
++									pos=i1
++
++								#This point is only in Vertices (number pos).
++								#OK, now we can add our own rift
++								nods=rifti['nods']-1
++								bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,numpy.hstack((rifti['x'][1:].reshape(-1,1),rifti['y'][1:].reshape(-1,1),numpy.ones((nods,1))))))
++								bamg_geometry.Edges=numpy.vstack((bamg_geometry.Edges,\
++									numpy.array([[pos,count+1,(1+i)]]),\
++									numpy.hstack((numpy.arange(count+1,count+nods).reshape(-1,1),numpy.arange(count+2,count+nods+1).reshape(-1,1),(1+i)*numpy.ones((nods-1,1))))))
++								count+=nods
++
++								break
++
++							else:
++								#Add intersection point to Vertices
++								bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,numpy.array([[x,y,1]])))
++								count+=1
++
++								#Decompose the crossing edge into 2 subedges
++								pos=numpy.nonzero(numpy.logical_and(bamg_geometry.Edges[:,0]==i1,bamg_geometry.Edges[:,1]==i2))[0]
++								if not pos:
++									raise RuntimeError("bamg error message: a problem occurred...")
++								bamg_geometry.Edges=numpy.vstack((bamg_geometry.Edges[0:pos-1,:],\
++									numpy.array([[bamg_geometry.Edges[pos,0],count                     ,bamg_geometry.Edges[pos,2]]]),\
++									numpy.array([[count                     ,bamg_geometry.Edges[pos,1],bamg_geometry.Edges[pos,2]]]),\
++									bamg_geometry.Edges[pos+1:,:]))
++
++								#OK, now we can add our own rift
++								nods=rifti['nods']-1
++								bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,numpy.hstack((rifti['x'][1:].reshape(-1,1),rifti['y'][1:].reshape(-1,1),numpy.ones((nods,1))))))
++								bamg_geometry.Edges=numpy.vstack((bamg_geometry.Edges,\
++									numpy.array([[count,count+1,2]]),\
++									numpy.hstack((numpy.arange(count+1,count+nods).reshape(-1,1),numpy.arange(count+2,count+nods+1).reshape(-1,1),(1+i)*numpy.ones((nods-1,1))))))
++								count+=nods
++
++								break
++
++				else:
++					nods=rifti['nods']-1
++					bamg_geometry.Vertices=numpy.vstack(bamg_geometry.Vertices, numpy.hstack(rifti['x'][:],rifti['y'][:],numpy.ones((nods+1,1))))
++					bamg_geometry.Edges   =numpy.vstack(bamg_geometry.Edges, numpy.hstack(numpy.arange(count+1,count+nods).reshape(-1,1),numpy.arange(count+2,count+nods+1).reshape(-1,1),i*numpy.ones((nods,1))))
++					count=+nods+1
++
++		#Deal with tracks
++		if options.exist('tracks'):
++
++			#read tracks
++			track=options.getfieldvalue('tracks')
++			if all(isinstance(track,str)):
++				A=expread(track)
++				track=numpy.hstack((A.x.reshape(-1,1),A.y.reshape(-1,1)))
++			else:
++				track=float(track)    #for some reason, it is of class "single"
++			if numpy.size(track,axis=1)==2:
++				track=numpy.hstack((track,3.*numpy.ones((size(track,axis=0),1))))
++
++			#only keep those inside
++			flags=ContourToNodes(track[:,0],track[:,1],domainfile,0)
++			track=track[numpy.nonzero(flags),:]
++
++			#Add all points to bamg_geometry
++			nods=numpy.size(track,axis=0)
++			bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,track))
++			bamg_geometry.Edges   =numpy.vstack((bamg_geometry.Edges,numpy.hstack((numpy.arange(count+1,count+nods).reshape(-1,1),numpy.arange(count+2,count+nods+1).reshape(-1,1),3.*numpy.ones((nods-1,1))))))
++
++			#update counter
++			count+=nods
++
++		#Deal with vertices that need to be kept by mesher
++		if options.exist('RequiredVertices'):
++
++			#recover RequiredVertices
++			requiredvertices=options.getfieldvalue('RequiredVertices')    #for some reason, it is of class "single"
++			if numpy.size(requiredvertices,axis=1)==2:
++				requiredvertices=numpy.hstack((requiredvertices,4.*numpy.ones((numpy.size(requiredvertices,axis=0),1))))
++			
++
++			#only keep those inside
++			flags=ContourToNodes(requiredvertices[:,0],requiredvertices[:,1],domainfile,0)[0]
++			requiredvertices=requiredvertices[numpy.nonzero(flags)[0],:]
++
++			#Add all points to bamg_geometry
++			nods=numpy.size(requiredvertices,axis=0)
++			bamg_geometry.Vertices=numpy.vstack((bamg_geometry.Vertices,requiredvertices))
++
++			#update counter
++			count+=nods
++
++		#process geom
++		#bamg_geometry=processgeometry(bamg_geometry,options.getfieldvalue('tol',float(nan)),domain[0])
++
++	elif isinstance(md.private.bamg,dict) and 'geometry' in md.private.bamg:
++		bamg_geometry=bamggeom(md.private.bamg['geometry'].__dict__) 
++	else:
++		#do nothing...
++		pass
++	#}}}
++	# Bamg Mesh parameters {{{
++	if not options.exist('domain') and md.mesh.numberofvertices and m.strcmp(md.mesh.elementtype(),'Tria'):
++
++		if isinstance(md.private.bamg,dict) and 'mesh' in md.private.bamg:
++			bamg_mesh=bamgmesh(md.private.bamg['mesh'].__dict__)
++		else:
++			bamg_mesh.Vertices=numpy.hstack((md.mesh.x.reshape(-1,1),md.mesh.y.reshape(-1,1),numpy.ones((md.mesh.numberofvertices,1))))
++			bamg_mesh.Triangles=numpy.hstack((md.mesh.elements,numpy.ones((md.mesh.numberofelements,1))))
++
++		if isinstance(md.rifts.riftstruct,dict):
++			raise TypeError("bamg error message: rifts not supported yet. Do meshprocessrift AFTER bamg")
++	#}}}
++	# Bamg Options {{{
++	bamg_options['Crack']=options.getfieldvalue('Crack',0)
++	bamg_options['anisomax']=options.getfieldvalue('anisomax',10.**30)
++	bamg_options['coeff']=options.getfieldvalue('coeff',1.)
++	bamg_options['cutoff']=options.getfieldvalue('cutoff',10.**-5)
++	bamg_options['err']=options.getfieldvalue('err',numpy.array([[0.01]]))
++	bamg_options['errg']=options.getfieldvalue('errg',0.1)
++	bamg_options['field']=options.getfieldvalue('field',numpy.empty((0,1)))
++	bamg_options['gradation']=options.getfieldvalue('gradation',1.5)
++	bamg_options['Hessiantype']=options.getfieldvalue('Hessiantype',0)
++	bamg_options['hmin']=options.getfieldvalue('hmin',10.**-100)
++	bamg_options['hmax']=options.getfieldvalue('hmax',10.**100)
++	bamg_options['hminVertices']=options.getfieldvalue('hminVertices',numpy.empty((0,1)))
++	bamg_options['hmaxVertices']=options.getfieldvalue('hmaxVertices',numpy.empty((0,1)))
++	bamg_options['hVertices']=options.getfieldvalue('hVertices',numpy.empty((0,1)))
++	bamg_options['KeepVertices']=options.getfieldvalue('KeepVertices',1)
++	bamg_options['MaxCornerAngle']=options.getfieldvalue('MaxCornerAngle',10.)
++	bamg_options['maxnbv']=options.getfieldvalue('maxnbv',10**6)
++	bamg_options['maxsubdiv']=options.getfieldvalue('maxsubdiv',10.)
++	bamg_options['metric']=options.getfieldvalue('metric',numpy.empty((0,1)))
++	bamg_options['Metrictype']=options.getfieldvalue('Metrictype',0)
++	bamg_options['nbjacobi']=options.getfieldvalue('nbjacobi',1)
++	bamg_options['nbsmooth']=options.getfieldvalue('nbsmooth',3)
++	bamg_options['omega']=options.getfieldvalue('omega',1.8)
++	bamg_options['power']=options.getfieldvalue('power',1.)
++	bamg_options['splitcorners']=options.getfieldvalue('splitcorners',1)
++	bamg_options['geometricalmetric']=options.getfieldvalue('geometricalmetric',0)
++	bamg_options['random']=options.getfieldvalue('rand',True)
++	bamg_options['verbose']=options.getfieldvalue('verbose',1)
++	#}}}
++
++	#call Bamg
++	[bamgmesh_out,bamggeom_out]=BamgMesher(bamg_mesh.__dict__,bamg_geometry.__dict__,bamg_options)
++
++	# plug results onto model
++	md.private.bamg=OrderedDict()
++	md.private.bamg['mesh']=bamgmesh(bamgmesh_out)
++	md.private.bamg['geometry']=bamggeom(bamggeom_out)
++	md.mesh = mesh2d()
++	md.mesh.x=bamgmesh_out['Vertices'][:,0].copy()
++	md.mesh.y=bamgmesh_out['Vertices'][:,1].copy()
++	md.mesh.elements=bamgmesh_out['Triangles'][:,0:3].astype(int)
++	md.mesh.edges=bamgmesh_out['IssmEdges'].astype(int)
++	md.mesh.segments=bamgmesh_out['IssmSegments'][:,0:3].astype(int)
++	md.mesh.segmentmarkers=bamgmesh_out['IssmSegments'][:,3].astype(int)
++
++	#Fill in rest of fields:
++	md.mesh.numberofelements=numpy.size(md.mesh.elements,axis=0)
++	md.mesh.numberofvertices=numpy.size(md.mesh.x)
++	md.mesh.numberofedges=numpy.size(md.mesh.edges,axis=0)
++	md.mesh.vertexonboundary=numpy.zeros(md.mesh.numberofvertices,bool)
++	md.mesh.vertexonboundary[md.mesh.segments[:,0:2]-1]=True
++	md.mesh.elementconnectivity=md.private.bamg['mesh'].ElementConnectivity
++	md.mesh.elementconnectivity[numpy.nonzero(numpy.isnan(md.mesh.elementconnectivity))]=0
++	md.mesh.elementconnectivity=md.mesh.elementconnectivity.astype(int)
++
++	#Check for orphan
++	if numpy.any(numpy.logical_not(numpy.in1d(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements.flat))):
++		raise RuntimeError("Output mesh has orphans. Decrease MaxCornerAngle to prevent outside points (ex: 0.01)")
++
++	return md
++
++def processgeometry(geom,tol,outline):    # {{{
++
++	raise RuntimeError("bamg.py/processgeometry is not complete.")
++	#Deal with edges
++	print("Checking Edge crossing...")
++	i=0
++	while (i<numpy.size(geom.Edges,axis=0)):
++
++		#edge counter
++		i+=1
++
++		#Get coordinates
++		x1=geom.Vertices[geom.Edges[i,0],0]
++		y1=geom.Vertices[geom.Edges[i,0],1]
++		x2=geom.Vertices[geom.Edges[i,1],0]
++		y2=geom.Vertices[geom.Edges[i,1],1]
++		color1=geom.Edges[i,2]
++
++		j=i    #test edges located AFTER i only
++		while (j<numpy.size(geom.Edges,axis=0)):
++
++			#edge counter
++			j+=1
++
++			#Skip if the two edges already have a vertex in common
++			if any(m.ismember(geom.Edges[i,0:2],geom.Edges[j,0:2])):
++				continue
++
++			#Get coordinates
++			x3=geom.Vertices[geom.Edges[j,0],0]
++			y3=geom.Vertices[geom.Edges[j,0],1]
++			x4=geom.Vertices[geom.Edges[j,1],0]
++			y4=geom.Vertices[geom.Edges[j,1],1]
++			color2=geom.Edges[j,2]
++
++			#Check if the two edges are crossing one another
++			if SegIntersect(numpy.array([[x1,y1],[x2,y2]]),numpy.array([[x3,y3],[x4,y4]])):
++
++				#Get coordinate of intersection point (http://mathworld.wolfram.com/Line-LineIntersection.html)
++				x=numpy.linalg.det(numpy.array([numpy.linalg.det(numpy.array([[x1,y1],[x2,y2]])),x1-x2],[numpy.linalg.det(numpy.array([[x3,y3],[x4,y4]])),x3-x4])/numpy.linalg.det(numpy.array([[x1-x2,y1-y2],[x3-x4,y3-y4]])))
++				y=numpy.linalg.det(numpy.array([numpy.linalg.det(numpy.array([[x1,y1],[x2,y2]])),y1-y2],[numpy.linalg.det(numpy.array([[x3,y3],[x4,y4]])),y3-y4])/numpy.linalg.det(numpy.array([[x1-x2,y1-y2],[x3-x4,y3-y4]])))
++
++				#Add vertex to the list of vertices
++				geom.Vertices=numpy.vstack((geom.Vertices,[x,y,min(color1,color2)]))
++				id=numpy.size(geom.Vertices,axis=0)
++
++				#Update edges i and j
++				edgei=geom.Edges[i,:].copy()
++				edgej=geom.Edges[j,:].copy()
++				geom.Edges[i,:]    =[edgei(0),id      ,edgei(2)]
++				geom.Edges=numpy.vstack((geom.Edges,[id      ,edgei(1),edgei(2)]))
++				geom.Edges[j,:]    =[edgej(0),id      ,edgej(2)]
++				geom.Edges=numpy.vstack((geom.Edges,[id      ,edgej(1),edgej(2)]))
++
++				#update current edge second tip
++				x2=x
++				y2=y
++
++	#Check point outside
++	print("Checking for points outside the domain...")
++	i=0
++	num=0
++	while (i<numpy.size(geom.Vertices,axis=0)):
++
++		#vertex counter
++		i+=1
++
++		#Get coordinates
++		x=geom.Vertices[i,0]
++		y=geom.Vertices[i,1]
++		color=geom.Vertices[i,2]
++
++		#Check that the point is inside the domain
++		if color!=1 and not ContourToNodes(x,y,outline[0],1):
++
++			#Remove points from list of Vertices
++			num+=1
++			geom.Vertices[i,:]=[]
++
++			#update edges
++			posedges=numpy.nonzero(geom.Edges==i)
++			geom.Edges[posedges[0],:]=[]
++			posedges=numpy.nonzero(geom.Edges>i)
++			geom.Edges[posedges]=geom.Edges[posedges]-1
++
++			#update counter
++			i-=1
++
++	if num:
++		print("WARNING: %d points outside the domain outline have been removed" % num)
++
++	"""
++	%Check point spacing
++	if ~isnan(tol),
++		disp('Checking point spacing...');
++		i=0;
++		while (i<size(geom.Vertices,1)),
++
++			%vertex counter
++			i=i+1;
++
++			%Get coordinates
++			x1=geom.Vertices(i,1);
++			y1=geom.Vertices(i,2);
++
++			j=i; %test edges located AFTER i only
++			while (j<size(geom.Vertices,1)),
++
++				%vertex counter
++				j=j+1;
++
++				%Get coordinates
++				x2=geom.Vertices(j,1);
++				y2=geom.Vertices(j,2);
++
++				%Check whether the two vertices are too close
++				if ((x2-x1)**2+(y2-y1)**2<tol**2)
++
++					%Remove points from list of Vertices
++					geom.Vertices(j,:)=[];
++
++					%update edges
++					posedges=find(m.ismember(geom.Edges,j));
++					geom.Edges(posedges)=i;
++					posedges=find(geom.Edges>j);
++					geom.Edges(posedges)=geom.Edges(posedges)-1;
++
++					%update counter
++					j=j-1;
++
++				end
++			end
++		end
++	end
++	%remove empty edges
++	geom.Edges(find(geom.Edges(:,1)==geom.Edges(:,2)),:)=[];
++	"""
++	return geom
++# }}}
++
+Index: ../trunk-jpl/src/py3/mesh/ComputeHessian.py
+===================================================================
+--- ../trunk-jpl/src/py3/mesh/ComputeHessian.py	(revision 0)
++++ ../trunk-jpl/src/py3/mesh/ComputeHessian.py	(revision 19895)
+@@ -0,0 +1,66 @@
++import numpy
++from GetNodalFunctionsCoeff import GetNodalFunctionsCoeff
++from GetAreas import GetAreas
++import MatlabFuncs as m
++
++def ComputeHessian(index,x,y,field,type):
++	"""
++	COMPUTEHESSIAN - compute hessian matrix from a field
++
++	   Compute the hessian matrix of a given field
++	   return the three components Hxx Hxy Hyy
++	   for each element or each node
++
++	   Usage:
++	      hessian=ComputeHessian(index,x,y,field,type)
++
++	   Example:
++	      hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,md.inversion.vel_obs,'node')
++	"""
++
++	#some variables
++	numberofnodes=numpy.size(x)
++	numberofelements=numpy.size(index,axis=0)
++
++	#some checks
++	if numpy.size(field)!=numberofnodes and numpy.size(field)!=numberofelements:
++		raise TypeError("ComputeHessian error message: the given field size not supported yet")
++	if not m.strcmpi(type,'node') and not m.strcmpi(type,'element'):
++		raise TypeError("ComputeHessian error message: only 'node' or 'element' type supported yet")
++
++	#initialization
++	line=index.reshape(-1,order='F')
++	linesize=3*numberofelements
++
++	#get areas and nodal functions coefficients N(x,y)=alpha x + beta y + gamma 
++	[alpha,beta,dum]=GetNodalFunctionsCoeff(index,x,y)
++	areas=GetAreas(index,x,y)
++
++	#compute weights that hold the volume of all the element holding the node i
++	weights=m.sparse(line,numpy.ones((linesize,1)),numpy.tile(areas.reshape(-1,1),(3,1)),numberofnodes,1)
++
++	#compute field on nodes if on elements
++	if numpy.size(field,axis=0)==numberofelements:
++		field=m.sparse(line,numpy.ones((linesize,1)),numpy.tile(areas*field,(3,1)),numberofnodes,1)/weights
++
++	#Compute gradient for each element
++	grad_elx=numpy.sum(field[index-1,0]*alpha,axis=1) 
++	grad_ely=numpy.sum(field[index-1,0]*beta,axis=1)
++
++	#Compute gradient for each node (average of the elements around)
++	gradx=m.sparse(line,numpy.ones((linesize,1)),numpy.tile((areas*grad_elx).reshape(-1,1),(3,1)),numberofnodes,1)
++	grady=m.sparse(line,numpy.ones((linesize,1)),numpy.tile((areas*grad_ely).reshape(-1,1),(3,1)),numberofnodes,1)
++	gradx=gradx/weights
++	grady=grady/weights
++
++	#Compute hessian for each element
++	hessian=numpy.hstack((numpy.sum(gradx[index-1,0]*alpha,axis=1).reshape(-1,1),numpy.sum(grady[index-1,0]*alpha,axis=1).reshape(-1,1),numpy.sum(grady[index-1,0]*beta,axis=1).reshape(-1,1)))
++
++	if m.strcmpi(type,'node'):
++		#Compute Hessian on the nodes (average of the elements around)
++		hessian=numpy.hstack((m.sparse(line,numpy.ones((linesize,1)),numpy.tile((areas*hessian[:,0]).reshape(-1,1),(3,1)),numberofnodes,1)/weights, \
++			m.sparse(line,numpy.ones((linesize,1)),numpy.tile((areas*hessian[:,1]).reshape(-1,1),(3,1)),numberofnodes,1)/weights, \
++			m.sparse(line,numpy.ones((linesize,1)),numpy.tile((areas*hessian[:,2]).reshape(-1,1),(3,1)),numberofnodes,1)/weights ))
++
++	return hessian
++
+Index: ../trunk-jpl/src/py3/test.txt
+===================================================================
+--- ../trunk-jpl/src/py3/test.txt	(revision 0)
++++ ../trunk-jpl/src/py3/test.txt	(revision 19895)
+@@ -0,0 +1 @@
++truc
+Index: ../trunk-jpl/src/py3/solvers/issmmumpssolver.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/issmmumpssolver.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/issmmumpssolver.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def issmmumpssolver(**kwargs):
++	#ISSMSOLVE - return issm solver options
++	#
++	#   Usage:
++	#      options=issmsolver;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','issm'],['mat_type','mpidense'],['vec_type','mpi'],['solver_type','mumps']];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/asmoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/asmoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/asmoptions.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def asmoptions(*args):
++	#ASMOPTIONS - return ASM petsc options
++	#
++	#   Usage:
++	#      options=asmoptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','petsc'],['mat_type','aij'],['ksp_type','gmres'],['pc_type','asm'],['sub_pc_type','lu'],['pc_asm_overlap',3],['ksp_max_it',100],['ksp_rtol',1e-30]];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/issmgslsolver.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/issmgslsolver.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/issmgslsolver.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def issmgslsolver(**kwargs):
++	#ISSMSOLVE - return issm solver options
++	#
++	#   Usage:
++	#      options=issmsolver;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','issm'],['mat_type','dense'],['vec_type','seq'],['solver_type','gsl']];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/matlaboptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/matlaboptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/matlaboptions.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def matlaboptions(**kwargs):
++	#MATLABOPTIONS - return Matlab petsc options
++	#
++	#   Usage:
++	#      options=matlaboptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','petsc'],['ksp_type','matlab']];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/jacobicgoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/jacobicgoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/jacobicgoptions.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions 
++
++def jacobicgoptions(*args):
++	#ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options
++	#
++	#   Usage:
++	#      options=jacobicgoptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','petsc'],['mat_type','aij'],['ksp_type','cg'],['ksp_max_it',100],['ksp_rtol',1e-15]];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/mumpsoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/mumpsoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/mumpsoptions.py	(revision 19895)
+@@ -0,0 +1,36 @@
++from collections import OrderedDict
++import pairoptions
++from IssmConfig import IssmConfig
++
++def mumpsoptions(**kwargs):
++	"""
++	MUMPSOPTIONS - return MUMPS direct solver  petsc options
++
++	   Usage:
++	      options=mumpsoptions;
++	"""
++
++	#retrieve options provided in varargin
++	options=pairoptions.pairoptions(**kwargs)
++	mumps=OrderedDict()
++
++	#default mumps options
++	PETSC_VERSION=IssmConfig('_PETSC_MAJOR_')[0]
++	if PETSC_VERSION==2.:
++		mumps['toolkit']='petsc'
++		mumps['mat_type']=options.getfieldvalue('mat_type','aijmumps')
++		mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly')
++		mumps['pc_type']=options.getfieldvalue('pc_type','lu')
++		mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120)
++		mumps['pc_factor_shift_positive_definite']=options.getfieldvalue('pc_factor_shift_positive_definite','true')
++	if PETSC_VERSION==3.:
++		mumps['toolkit']='petsc'
++		mumps['mat_type']=options.getfieldvalue('mat_type','mpiaij')
++		mumps['ksp_type']=options.getfieldvalue('ksp_type','preonly')
++		mumps['pc_type']=options.getfieldvalue('pc_type','lu')
++		mumps['pc_factor_mat_solver_package']=options.getfieldvalue('pc_factor_mat_solver_package','mumps')
++		mumps['mat_mumps_icntl_14']=options.getfieldvalue('mat_mumps_icntl_14',120)
++		mumps['pc_factor_shift_positive_definite']=options.getfieldvalue('pc_factor_shift_positive_definite','true')
++
++	return mumps
++
+Index: ../trunk-jpl/src/py3/solvers/soroptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/soroptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/soroptions.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def soroptions(**kwargs):
++	#SOROPTIONS - return Relaxation Solver petsc options
++	#
++	#   Usage:
++	#      options=soroptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','petsc'],['mat_type','aij'],['ksp_type','cg'],['pc_type','sor'],['pc_sor_omega',1.1],['pc_sor_its',2]];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/jacobiasmoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/jacobiasmoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/jacobiasmoptions.py	(revision 19895)
+@@ -0,0 +1,29 @@
++import pairoptions
++
++def jacobiasmoptions(**kwargs):
++	#ASMOPTIONS - return Additive Shwartz Method with Jacobi preconditioner petsc options
++	#
++	#   Usage:
++	#      options=jacobiasmoptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++	
++	options=[['toolkit','petsc'],['mat_type','aij'],['ksp_type','gmres'],['pc_type','asm'],['sub_pc_type','jacobi'],['pc_asm_overlap',3],['ksp_max_it',100],['ksp_rtol',1e-15]];
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/stokesoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/stokesoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/stokesoptions.py	(revision 19895)
+@@ -0,0 +1,39 @@
++import pairoptions
++from IssmConfig import IssmConfig
++
++def stokesoptions(**kwargs):
++	#STOKESOPTIONS - return STOKES multi-physics solver petsc options
++	#
++	#   Usage:
++	#      options=stokesoptions;
++	
++	#retrieve options provided in varargin
++	arguments=pairoptions.pairoptions(**kwargs) 
++
++
++	#default stokes options
++	PETSC_VERSION=IssmConfig('_PETSC_MAJOR_')[0]
++
++	if PETSC_VERSION==2.:
++		raise RuntimeError('stokesoptions error message: multi-physics options not supported in Petsc 2')
++	if PETSC_VERSION==3.:
++		options=[['toolkit','petsc'],['mat_type','mpiaij'],['ksp_max_it',1000],['ksp_type','gmres'],['pc_type','fieldsplit'],['pc_field_split_type','schur'],\
++	['fieldsplit_0_pc_type','hypre'],['fieldsplit_0_ksp_type','gmres'],['fieldsplit_0_pc_hypre_type','boomerang'],\
++	['fieldsplit_1_pc_type','jacobi'],['fieldsplit_1_ksp_type','preonly'],['issm_option_solver','stokes']]
++
++	#now, go through our arguments, and write over default options.
++	for i in range(len(arguments.list)):
++		arg1=arguments.list[i][0]
++		arg2=arguments.list[i][1]
++		found=0;
++		for j in range(len(options)):
++			joption=options[j][0]
++			if joption==arg1:
++				joption[1]=arg2;
++				options[j]=joption;
++				found=1;
++				break
++		if not found:
++			#this option did not exist, add it: 
++			options.append([arg1,arg2])
++	return options
+Index: ../trunk-jpl/src/py3/solvers/iluasmoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/solvers/iluasmoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/solvers/iluasmoptions.py	(revision 19895)
+@@ -0,0 +1,27 @@
++from collections import OrderedDict
++import pairoptions
++
++def iluasmoptions(*args):
++	"""
++	ILUASMOPTIONS - 
++
++	   Usage:
++	      options=iluasmoptions;
++	"""
++			 
++	#retrieve options provided in varargin
++	options=pairoptions.pairoptions(**kwargs)
++	iluasm=OrderedDict()
++
++	#default iluasm options
++	iluasm['toolkit']='petsc'
++	iluasm['mat_type']=options.getfieldvalue('mat_type','aij')
++	iluasm['ksp_type']=options.getfieldvalue('ksp_type','gmres')
++	iluasm['pc_type']=options.getfieldvalue('pc_type','asm')
++	iluasm['sub_pc_type']=options.getfieldvalue('sub_pc_type','ilu')
++	iluasm['pc_asm_overlap']=options.getfieldvalue('pc_asm_overlap',5)
++	iluasm['ksp_max_it']=options.getfieldvalue('ksp_max_it',100)
++	iluasm['ksp_rtol']=options.getfieldvalue('ksp_rtol',1e-15)
++
++	return iluasm
++
+Index: ../trunk-jpl/src/py3/classes/massfluxatgate.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/massfluxatgate.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/massfluxatgate.py	(revision 19895)
+@@ -0,0 +1,71 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from pairoptions import pairoptions
++from checkfield import checkfield
++from WriteData import WriteData
++from MeshProfileIntersection import MeshProfileIntersection
++import os
++
++class massfluxatgate(object):
++	"""
++	MASSFLUXATEGATE class definition
++
++	   Usage:
++		  massfluxatgate=massfluxatgate('GateName','PathToExpFile')
++	"""
++
++	def __init__(self,**kwargs): # {{{
++
++		self.name            = ''
++		self.definitionenum  = 0
++		self.profilename     = ''
++		self.segments        = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#use provided options to change fields
++		options=pairoptions(**kwargs)
++
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++
++		#}}}
++	def __repr__(self): # {{{
++
++		string="   Massfluxatgate:"
++		string="%s\n%s"%(string,fielddisplay(self,'name','identifier for this massfluxatgate response'))
++		string="%s\n%s"%(string,fielddisplay(self,'definitionenum','enum that identifies this output definition uniquely, from Outputdefinition[1-10]Enum'))
++		string="%s\n%s"%(string,fielddisplay(self,'profilename','name of file (shapefile or argus file) defining a profile (or gate)'))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		
++		if  not isinstance(self.name, str):
++			raise RuntimeError("massfluxatgate error message: 'name' field should be a string!")
++			
++		if  not isinstance(self.profilename, str):
++			raise RuntimeError("massfluxatgate error message: 'profilename' field should be a string!") 
++
++			md = checkfield(md,'field',self.definitionenum,'values',[Outputdefinition1Enum(),Outputdefinition2Enum(),Outputdefinition3Enum(),Outputdefinition4Enum(),Outputdefinition5Enum(),Outputdefinition6Enum(),Outputdefinition7Enum(),Outputdefinition8Enum(),Outputdefinition9Enum(),Outputdefinition10Enum()])
++		
++		#check the profilename points to a file!: 
++		if not os.path.isfile(self.profilename):
++			raise RuntimeError("massfluxatgate error message: file name for profile corresponding to gate does not point to a legitimate file on disk!")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		
++		#before marshalling, we need to create the segments out of the profilename: 
++		self.segments=MeshProfileIntersection(md.mesh.elements,md.mesh.x,md.mesh.y,self.profilename)[0]
++
++		#ok, marshall name and segments: 
++		WriteData(fid,'object',self,'fieldname','name','format','String')
++		WriteData(fid,'object',self,'fieldname','definitionenum','format','Integer')
++		WriteData(fid,'object',self,'fieldname','segments','format','DoubleMat','mattype',1)
++
++	# }}}
+
+Property changes on: ../trunk-jpl/src/py3/classes/massfluxatgate.py
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/py3/classes/SMBforcing.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBforcing.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBforcing.py	(revision 19895)
+@@ -0,0 +1,68 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBforcing(object):
++	"""
++	SMBforcing Class definition
++
++	   Usage:
++	      SMB=SMBforcing();
++	"""
++
++	def __init__(self): # {{{
++		self.mass_balance = float('NaN')
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++		string="%s\n%s"%(string,fielddisplay(self,'mass_balance','surface mass balance [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node');
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.mass_balance)):
++			self.mass_balance=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMBforcing.mass_balance specified: values set as zero")
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
++
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBforcingEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 19895)
+@@ -0,0 +1,68 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class calvinglevermann(object):
++	"""
++	CALVINGLEVERMANN class definition
++
++	   Usage:
++	      calvinglevermann=calvinglevermann();
++	"""
++
++	def __init__(self): # {{{
++
++		self.stabilization = 0
++		self.spclevelset   = float('NaN')
++		self.coeff         = float('NaN')
++		self.meltingrate   = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   Calving Levermann parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
++		string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model'))
++		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
++		self.coeff=project3d(md,'vector',self.coeff,'type','node')
++		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#stabilization = 2 by default
++		self.stabilization = 2
++
++		#Proportionality coefficient in Levermann model
++		self.coeff=2e13;
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
++			return md
++
++		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
++		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
++		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices],'>=',0)
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		yts=365.*24.*3600.
++		WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
++		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/mask.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mask.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/mask.py	(revision 19895)
+@@ -0,0 +1,63 @@
++import numpy
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class mask(object):
++	"""
++	MASK class definition
++
++	   Usage:
++	      mask=mask();
++	"""
++
++	def __init__(self): # {{{
++		self.ice_levelset         = float('NaN')
++		self.groundedice_levelset = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   masks:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0"))
++		string="%s\n%s"%(string,fielddisplay(self,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0"))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node')
++		self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices])
++		isice=numpy.array(md.mask.ice_levelset<=0,int)
++		if numpy.sum(isice)==0:
++			raise TypeError("no ice present in the domain")
++
++		icefront=numpy.sum(md.mask.ice_levelset[md.mesh.elements-1]==0,axis=1)
++		if (max(icefront)==3 and m.strcmp(md.mesh.elementtype(),'Tria')) or (max(icefront==6) and m.strcmp(md.mesh.elementtype(),'Penta')):
++			raise TypeError("At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1)
++
++		# get mask of vertices of elements with ice
++		isice=numpy.array(md.mask.ice_levelset<0.,int)
++		vlist = numpy.zeros((md.mesh.numberofvertices,1), dtype=int)
++		pos=numpy.nonzero(numpy.sum(isice[md.mesh.elements-1],axis=1))[0]
++		vlist[md.mesh.elements[pos,:]-1]=1
++		WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/radaroverlay.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/radaroverlay.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/radaroverlay.py	(revision 19895)
+@@ -0,0 +1,29 @@
++from fielddisplay import fielddisplay
++
++class radaroverlay(object):
++	"""
++	RADAROVERLAY class definition
++
++	   Usage:
++	      radaroverlay=radaroverlay();
++	"""
++
++	def __init__(self): # {{{
++		self.pwr = float('NaN')
++		self.x   = float('NaN')
++		self.y   = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   radaroverlay parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'pwr','radar power image (matrix)'))
++		string="%s\n%s"%(string,fielddisplay(self,'x','corresponding x coordinates [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'y','corresponding y coordinates [m]'))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
+Index: ../trunk-jpl/src/py3/classes/m1qn3inversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/m1qn3inversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/m1qn3inversion.py	(revision 19895)
+@@ -0,0 +1,198 @@
++import numpy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++from supportedcontrols import supportedcontrols
++from supportedcostfunctions import supportedcostfunctions
++from marshallcostfunctions import marshallcostfunctions
++
++class m1qn3inversion(object):
++	'''
++	M1QN3 class definition
++
++   Usage:
++      m1qn3inversion=m1qn3inversion()
++	'''
++
++	def __init__(self,*args): # {{{
++
++		if not len(args):
++			print('empty init')
++			self.iscontrol                   = 0
++			self.incomplete_adjoint          = 0
++			self.control_parameters          = float('NaN')
++			self.control_scaling_factors     = float('NaN')
++			self.maxsteps                    = 0
++			self.maxiter                     = 0
++			self.dxmin                       = 0.
++			self.gttol                       = 0.
++			self.cost_functions              = float('NaN')
++			self.cost_functions_coefficients = float('NaN')
++			self.min_parameters              = float('NaN')
++			self.max_parameters              = float('NaN')
++			self.vx_obs                      = float('NaN')
++			self.vy_obs                      = float('NaN')
++			self.vz_obs                      = float('NaN')
++			self.vel_obs                     = float('NaN')
++			self.thickness_obs               = float('NaN')
++
++			#set defaults
++			self.setdefaultparameters()
++		elif len(args)==1 and args[0].__module__=='inversion':
++			print('converting inversion to m1qn3inversion')
++			inv=args[0]
++			#first call setdefaultparameters: 
++			self.setdefaultparameters()
++
++			#then go fish whatever is available in the inversion object provided to the constructor
++			self.iscontrol                   = inv.iscontrol
++			self.incomplete_adjoint          = inv.incomplete_adjoint
++			self.control_parameters          = inv.control_parameters
++			self.maxsteps                    = inv.nsteps
++			self.cost_functions              = inv.cost_functions
++			self.cost_functions_coefficients = inv.cost_functions_coefficients
++			self.min_parameters              = inv.min_parameters
++			self.max_parameters              = inv.max_parameters
++			self.vx_obs                      = inv.vx_obs
++			self.vy_obs                      = inv.vy_obs
++			self.vz_obs                      = inv.vz_obs
++			self.vel_obs                     = inv.vel_obs
++			self.thickness_obs               = inv.thickness_obs
++		else:
++			raise Exception('constructor not supported')
++		#}}}
++	def __repr__(self): # {{{
++		string='   m1qn3inversion parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'iscontrol','is inversion activated?'))
++		string="%s\n%s"%(string,fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity'))
++		string="%s\n%s"%(string,fielddisplay(self,'control_parameters','ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']'))
++		string="%s\n%s"%(string,fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)'))
++		string="%s\n%s"%(string,fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)'))
++		string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'))
++		string="%s\n%s"%(string,fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical'))
++		string="%s\n%s"%(string,fielddisplay(self,'gttol','||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'cost_functions','indicate the type of response for each optimization step'))
++		string="%s\n%s"%(string,fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string="%s\n%s"%(string,fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fielddisplay(self,'vx_obs','observed velocity x component [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vy_obs','observed velocity y component [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'thickness_obs','observed thickness [m]'))
++		string="%s\n%s"%(string,'Available cost functions:')
++		string="%s\n%s"%(string,'   101: SurfaceAbsVelMisfit')
++		string="%s\n%s"%(string,'   102: SurfaceRelVelMisfit')
++		string="%s\n%s"%(string,'   103: SurfaceLogVelMisfit')
++		string="%s\n%s"%(string,'   104: SurfaceLogVxVyMisfit')
++		string="%s\n%s"%(string,'   105: SurfaceAverageVelMisfit')
++		string="%s\n%s"%(string,'   201: ThicknessAbsMisfit')
++		string="%s\n%s"%(string,'   501: DragCoefficientAbsGradient')
++		string="%s\n%s"%(string,'   502: RheologyBbarAbsGradient')
++		string="%s\n%s"%(string,'   503: ThicknessAbsGradient')
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node')
++		self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node')
++		self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node')
++		self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node')
++		if not numpy.any(numpy.isnan(self.cost_functions_coefficients)):
++			self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')
++		if not numpy.any(numpy.isnan(self.min_parameters)):
++			self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node')
++		if not numpy.any(numpy.isnan(self.max_parameters)):
++			self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#default is incomplete adjoint for now
++		self.incomplete_adjoint=1
++
++		#parameter to be inferred by control methods (only
++		#drag and B are supported yet)
++		self.control_parameters='FrictionCoefficient'
++		
++		#Scaling factor for each control
++		self.control_scaling_factors=1
++
++		#number of iterations
++		self.maxsteps=20
++		self.maxiter=40
++
++		#several responses can be used:
++		self.cost_functions=101
++
++		#m1qn3 parameters
++		self.dxmin  = 0.1
++		self.gttol = 1e-4
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not self.iscontrol:
++			return md
++
++		num_controls=numpy.size(md.inversion.control_parameters)
++		num_costfunc=numpy.size(md.inversion.cost_functions)
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1])
++		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
++		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1)
++		md = checkfield(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter','numel',[1],'>=',0)
++		md = checkfield(md,'fieldname','inversion.dxmin','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','inversion.gttol','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions())
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean')
++		WriteData(fid,'enum',InversionTypeEnum(),'data',2,'format','Integer')
++		if not self.iscontrol:
++			return
++		WriteData(fid,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean')
++		WriteData(fid,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer')
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer')
++		WriteData(fid,'object',self,'class','inversion','fieldname','dxmin','format','Double')
++		WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double')
++		WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1)
++
++		#process control parameters
++		num_control_parameters=len(self.control_parameters)
++		data=numpy.array([StringToEnum(control_parameter)[0] for control_parameter in self.control_parameters]).reshape(1,-1)
++		WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3)
++		WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer')
++
++		#process cost functions
++		num_cost_functions=numpy.size(self.cost_functions)
++		data=marshallcostfunctions(self.cost_functions)
++		WriteData(fid,'data',numpy.array(data).reshape(1,-1),'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
++		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/thermal.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/thermal.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/thermal.py	(revision 19895)
+@@ -0,0 +1,130 @@
++import numpy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class thermal(object):
++	"""
++	THERMAL class definition
++
++	   Usage:
++	      thermal=thermal();
++	"""
++
++	def __init__(self): # {{{
++		self.spctemperature    = float('NaN')
++		self.penalty_threshold = 0
++		self.stabilization     = 0
++		self.reltol            = 0
++		self.maxiter           = 0
++		self.penalty_lock      = 0
++		self.penalty_factor    = 0
++		self.isenthalpy        = 0
++		self.isdynamicbasalspc = 0;
++		self.requested_outputs = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   Thermal solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'spctemperature','temperature constraints (NaN means no constraint) [K]'))
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: SUPG'))
++		string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of non linear iterations'))
++		string="%s\n%s"%(string,fielddisplay(self,'reltol','relative tolerance criterion'))
++		string="%s\n%s"%(string,fielddisplay(self,'penalty_lock','stabilize unstable thermal constraints that keep zigzagging after n iteration (default is 0, no stabilization)'))
++		string="%s\n%s"%(string,fielddisplay(self,'penalty_threshold','threshold to declare convergence of thermal solution (default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'isenthalpy','use an enthalpy formulation to include temperate ice (default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'isdynamicbasalspc','enable dynamic setting of basal forcing. required for enthalpy formulation (default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spctemperature=project3d(md,'vector',self.spctemperature,'type','node','layer',md.mesh.numberoflayers,'padding',numpy.nan)
++		if isinstance(md.initialization.temperature,numpy.ndarray) and numpy.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:
++			self.spctemperature=numpy.nan*numpy.ones((md.mesh.numberofvertices,1))
++			pos=numpy.nonzero(md.mesh.vertexonsurface)[0]
++			self.spctemperature[pos]=md.initialization.temperature[pos]    #impose observed temperature on surface
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++
++		if self.isenthalpy:
++			return ['Enthalpy','Temperature','Waterfraction','Watercolumn','BasalforcingsGroundediceMeltingRate']
++		else:
++			return ['Temperature','BasalforcingsGroundediceMeltingRate']
++
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#Number of unstable constraints acceptable
++		self.penalty_threshold=0
++
++		#Type of stabilization used
++		self.stabilization=1
++
++		#Relative tolerance for the enthalpy convergence
++		self.reltol=0.01
++
++		#Maximum number of iterations
++		self.maxiter=100
++
++		#factor used to compute the values of the penalties: kappa=max(stiffness matrix)*10^penalty_factor
++		self.penalty_factor=3
++
++		#Should we use cold ice (default) or enthalpy formulation
++		self.isenthalpy=0
++
++		#will basal boundary conditions be set dynamically
++		self.isdynamicbasalspc=0;
++
++		#default output
++		self.requested_outputs=['default']
++		return self
++
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (ThermalAnalysisEnum() not in analyses and EnthalpyAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.isthermal):
++			return md
++
++		md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2])
++		md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1)
++		if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension()==3:
++			pos=numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices])))
++			replicate=numpy.tile(md.geometry.surface-md.mesh.z,(1,numpy.size(md.thermal.spctemperature,axis=1)))
++			md = checkfield(md,'fieldname','thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")
++			md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0,1])
++			md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel',[1],'values',[0,1]);
++			if(md.thermal.isenthalpy):
++				if numpy.isnan(md.stressbalance.reltol):
++					md.checkmessage("for a steadystate computation, thermal.reltol (relative convergence criterion) must be defined!")
++				md = checkfield(md,'fieldname','thermal.reltol','>',0.,'message',"reltol must be larger than zero");
++		md = checkfield(md,'fieldname','thermal.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','spctemperature','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','penalty_threshold','format','Integer')
++		WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
++		WriteData(fid,'object',self,'fieldname','reltol','format','Double');
++		WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
++		WriteData(fid,'object',self,'fieldname','penalty_lock','format','Integer')
++		WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
++		WriteData(fid,'object',self,'fieldname','isenthalpy','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isdynamicbasalspc','format','Boolean');
++
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',ThermalRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/frictioncoulomb.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/frictioncoulomb.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/frictioncoulomb.py	(revision 19895)
+@@ -0,0 +1,63 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class frictioncoulomb(object):
++    """
++    FRICTIONCOULOMB class definition
++
++    Usage:
++        frictioncoulomb=frictioncoulomb()
++    """
++
++    def __init__(self): # {{{
++        self.coefficient = float('NaN')
++        self.coefficientcoulomb = float('NaN')
++        self.p = float('NaN')
++	self.q = float('NaN')
++
++	#set defaults
++	self.setdefaultparameters()
++
++    #}}}
++    def __repr__(self): # {{{
++	string="Basal shear stress parameters: Sigma_b = min(coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b,\n coefficientcoulomb^2 * rho_i * g * (h-h_f)), (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)."
++
++	string="%s\n%s"%(string,fielddisplay(self,"coefficient","power law (Weertman) friction coefficient [SI]"))
++	string="%s\n%s"%(string,fielddisplay(self,"coefficientcoulomb","Coulomb friction coefficient [SI]"))
++	string="%s\n%s"%(string,fielddisplay(self,"p","p exponent"))
++	string="%s\n%s"%(string,fielddisplay(self,"q","q exponent"))
++	return string
++    #}}}
++    def extrude(self,md): # {{{
++	self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
++	self.coefficientcoulomb=project3d(md,'vector',self.coefficientcoulomb,'type','node','layer',1)
++	self.p=project3d(md,'vector',self.p,'type','element')
++	self.q=project3d(md,'vector',self.q,'type','element')
++	return self
++    #}}}
++    def setdefaultparameters(self): # {{{
++	return self
++    #}}}
++    def checkconsistency(self,md,solution,analyses):    # {{{
++
++	#Early return
++	if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
++	    return md
++
++	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
++	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)
++	md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++
++	return md
++    # }}}
++    def marshall(self,md,fid):    # {{{
++	WriteData(fid,'enum',FrictionLawEnum(),'data',1,'format','Integer')
++	WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'enum',FrictionCoefficientEnum())
++	WriteData(fid,'object',self,'fieldname','coefficientcoulomb','format','DoubleMat','mattype',1,'enum',FrictionCoefficientcoulombEnum())
++	WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2,'enum',FrictionPEnum())
++	WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2,'enum',FrictionQEnum())
++    # }}}
+Index: ../trunk-jpl/src/py3/classes/gia.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/gia.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/gia.py	(revision 19895)
+@@ -0,0 +1,64 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class gia(object):
++	"""
++	GIA class definition
++
++	   Usage:
++	      gia=gia();
++	"""
++
++	def __init__(self): # {{{
++		self.mantle_viscosity              = float('NaN');
++		self.lithosphere_thickness         = float('NaN');
++		self.cross_section_shape           = 0;
++	
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		
++		string='   gia solution parameters:' 
++		
++		string="%s\n%s"%(string,fielddisplay(self,'mantle_viscosity','mantle viscosity constraints (NaN means no constraint) (Pa s)'))
++		string="%s\n%s"%(string,fielddisplay(self,'lithosphere_thickness','lithosphere thickness constraints (NaN means no constraint) (m)'))
++		string="%s\n%s"%(string,fielddisplay(self,'cross_section_shape',"1: square-edged, 2: elliptical-edged surface"))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.mantle_viscosity=project3d(md,'vector',self.mantle_viscosity,'type','node')
++		self.lithosphere_thickness=project3d(md,'vector',self.lithosphere_thickness,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		self.cross_section_shape=1; 
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		# Early return 
++		if (GiaAnalysisEnum() not in  analyses):
++			return md 
++		
++		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2])
++
++		#be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
++		#are not provided into the future.
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		WriteData(fid,'object',self,'fieldname','mantle_viscosity','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'fieldname','lithosphere_thickness','format','DoubleMat','mattype',1,'scale',10.**3.);
++		WriteData(fid,'object',self,'fieldname','cross_section_shape','format','Integer');
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/model.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/model.py	(revision 19895)
+@@ -0,0 +1,670 @@
++#module imports {{{
++import numpy
++import copy
++import sys
++import MatlabFuncs as m
++#}}}
++
++class model(object):
++	#properties
++	def __init__(self,*filename):#{{{
++
++		def netCDFread(filename):
++			def walktree(data):
++				keys = data.groups.keys()
++				yield keys
++				for key in keys:
++					for children in walktree(data.groups[str(key)]):
++						yield children
++
++			if path.exists(filename):
++				print ('Opening {} for reading '.format(filename))
++				NCData=Dataset(filename, 'r')
++				class_dict={}
++				
++				for children in walktree(NCData):
++					for child in children:
++						class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype'))
++
++				return class_dict
++
++		if filename:		
++			classtype=netCDFread(filename[0])
++		else:
++			classtype=self.properties()
++			
++		VT=[v[0] for v in dict.values(classtype)]
++		classnames=[classname for classname in dict.keys(classtype)]
++		module=map(__import__,VT)
++
++		for i,mod in enumerate(module):
++			self.__dict__[classnames[i]] = getattr(mod,str(classtype[str(classnames[i])][0]))()
++
++	#}}}
++
++	def properties(self):    # {{{
++		# ordered list of properties since vars(self) is random
++		return {'mesh':['mesh2d','mesh properties'],\
++		        'mask':['mask','defines grounded and floating elements'],\
++		        'geometry':['geometry','surface elevation, bedrock topography, ice thickness,...'],\
++		        'constants':['constants','physical constants'],\
++		        'smb':['SMBpdd','surface forcings'],\
++		        'basalforcings':['basalforcings','bed forcings'],\
++		        'materials':['matice','material properties'],\
++		        'damage':['damage','damage propagation laws'],\
++		        'friction':['friction','basal friction/drag properties'],\
++		        'flowequation':['flowequation','flow equations'],\
++		        'timestepping':['timestepping','time stepping for transient models'],\
++		        'initialization':['initialization','initial guess/state'],\
++		        'rifts':['rifts','rifts properties'],\
++		        'debug':['debug','debugging tools (valgrind, gprof)'],\
++		        'verbose':['verbose','verbosity level in solve'],\
++		        'settings':['settings','settings properties'],\
++		        'toolkits':['toolkits','PETSc options for each solution'],\
++		        'cluster':['generic','cluster parameters (number of cpus...)'],\
++		        'balancethickness':['balancethickness','parameters for balancethickness solution'],\
++		        'stressbalance':['stressbalance','parameters for stressbalance solution'],\
++		        'groundingline':['groundingline','parameters for groundingline solution'],\
++		        'hydrology':['hydrologyshreve','parameters for hydrology solution'],\
++		        'masstransport':['masstransport','parameters for masstransport solution'],\
++		        'thermal':['thermal','parameters for thermal solution'],\
++		        'steadystate':['steadystate','parameters for steadystate solution'],\
++		        'transient':['transient','parameters for transient solution'],\
++		        'calving':['calving','parameters for calving'],\
++						'gia':['gia','Parameters for gia model'],\
++		        'autodiff':['autodiff','automatic differentiation parameters'],\
++		        'flaim':['flaim','flaim parameters'],\
++		        'inversion':['inversion','parameters for inverse methods'],\
++		        'qmu':['qmu','dakota properties'],\
++		        'outputdefinition':['outputdefinition','output definition'],\
++		        'results':['results','model results'],\
++		        'radaroverlay':['radaroverlay','radar image for plot overlay'],\
++		        'miscellaneous':['miscellaneous','miscellaneous fields'],\
++		        'private':['private','...']}
++	# }}}
++
++	def __repr__(obj): #{{{
++		string = "Model Description"
++		for i,mod in enumerate(dict.keys(obj.properties())):
++			tmp="%19s: %-22s -- %s" % (mod,"[%s,%s]" % ("1x1",obj.__dict__[mod].__class__.__name__),obj.properties()[mod][1])
++			string="\n".join([string, tmp])
++		return string
++	# }}}
++
++	def checkmessage(self,string):    # {{{
++		print(("model not consistent: ", string))
++		self.private.isconsistent=False
++		return self
++	# }}}
++
++	def extract(md,area):    # {{{
++		"""
++		extract - extract a model according to an Argus contour or flag list
++
++   This routine extracts a submodel from a bigger model with respect to a given contour
++   md must be followed by the corresponding exp file or flags list
++   It can either be a domain file (argus type, .exp extension), or an array of element flags. 
++   If user wants every element outside the domain to be 
++   extract2d, add '~' to the name of the domain file (ex: '~HO.exp')
++   an empty string '' will be considered as an empty domain
++   a string 'all' will be considered as the entire domain
++
++   Usage:
++      md2=extract(md,area)
++
++   Examples:
++      md2=extract(md,'Domain.exp')
++
++   See also: EXTRUDE, COLLAPSE
++		"""
++
++		#copy model
++		md1=copy.deepcopy(md)
++
++		#get elements that are inside area
++		flag_elem=FlagElements(md1,area)
++		if not numpy.any(flag_elem):
++			raise RuntimeError("extracted model is empty")
++
++		#kick out all elements with 3 dirichlets
++		spc_elem=numpy.nonzero(numpy.logical_not(flag_elem))[0]
++		spc_node=numpy.unique(md1.mesh.elements[spc_elem,:])-1
++		flag=numpy.ones(md1.mesh.numberofvertices)
++		flag[spc_node]=0
++		pos=numpy.nonzero(numpy.logical_not(numpy.sum(flag[md1.mesh.elements-1],axis=1)))[0]
++		flag_elem[pos]=0
++	
++		#extracted elements and nodes lists
++		pos_elem=numpy.nonzero(flag_elem)[0]
++		pos_node=numpy.unique(md1.mesh.elements[pos_elem,:])-1
++	
++		#keep track of some fields
++		numberofvertices1=md1.mesh.numberofvertices
++		numberofelements1=md1.mesh.numberofelements
++		numberofvertices2=numpy.size(pos_node)
++		numberofelements2=numpy.size(pos_elem)
++		flag_node=numpy.zeros(numberofvertices1)
++		flag_node[pos_node]=1
++	
++		#Create Pelem and Pnode (transform old nodes in new nodes and same thing for the elements)
++		Pelem=numpy.zeros(numberofelements1,int)
++		Pelem[pos_elem]=numpy.arange(1,numberofelements2+1)
++		Pnode=numpy.zeros(numberofvertices1,int)
++		Pnode[pos_node]=numpy.arange(1,numberofvertices2+1)
++	
++		#renumber the elements (some node won't exist anymore)
++		elements_1=copy.deepcopy(md1.mesh.elements)
++		elements_2=elements_1[pos_elem,:]
++		elements_2[:,0]=Pnode[elements_2[:,0]-1]
++		elements_2[:,1]=Pnode[elements_2[:,1]-1]
++		elements_2[:,2]=Pnode[elements_2[:,2]-1]
++		if md1.mesh.__class__.__name__=='mesh3dprisms':
++			elements_2[:,3]=Pnode[elements_2[:,3]-1]
++			elements_2[:,4]=Pnode[elements_2[:,4]-1]
++			elements_2[:,5]=Pnode[elements_2[:,5]-1]
++
++		#OK, now create the new model!
++		#take every field from model
++		md2=copy.deepcopy(md1)
++
++		#automatically modify fields
++		#loop over model fields
++		model_fields=vars(md1)
++		for fieldi in model_fields:
++			#get field
++			field=getattr(md1,fieldi)
++			fieldsize=numpy.shape(field)
++			if hasattr(field,'__dict__') and not m.ismember(fieldi,['results'])[0]:    #recursive call
++				object_fields=vars(field)
++				for fieldj in object_fields:
++					#get field
++					field=getattr(getattr(md1,fieldi),fieldj)
++					fieldsize=numpy.shape(field)
++					if len(fieldsize):
++						#size = number of nodes * n
++						if   fieldsize[0]==numberofvertices1:
++							setattr(getattr(md2,fieldi),fieldj,field[pos_node])
++						elif fieldsize[0]==numberofvertices1+1:
++							setattr(getattr(md2,fieldi),fieldj,numpy.vstack((field[pos_node],field[-1,:])))
++							#size = number of elements * n
++						elif fieldsize[0]==numberofelements1:
++							setattr(getattr(md2,fieldi),fieldj,field[pos_elem])
++			else:
++				if len(fieldsize):
++					#size = number of nodes * n
++					if fieldsize[0]==numberofvertices1:
++						setattr(md2,fieldi,field[pos_node])
++					elif fieldsize[0]==numberofvertices1+1:
++						setattr(md2,fieldi,numpy.hstack((field[pos_node],field[-1,:])))
++						#size = number of elements * n
++					elif fieldsize[0]==numberofelements1:
++						setattr(md2,fieldi,field[pos_elem])
++
++		#modify some specific fields
++
++		#Mesh
++		md2.mesh.numberofelements=numberofelements2
++		md2.mesh.numberofvertices=numberofvertices2
++		md2.mesh.elements=elements_2
++		
++		#mesh.uppervertex mesh.lowervertex
++		if md1.mesh.__class__.__name__=='mesh3dprisms':
++			md2.mesh.uppervertex=md1.mesh.uppervertex[pos_node]
++			pos=numpy.nonzero(numpy.logical_not(md2.mesh.uppervertex==-1))[0]
++			md2.mesh.uppervertex[pos]=Pnode[md2.mesh.uppervertex[pos]-1]
++			
++			md2.mesh.lowervertex=md1.mesh.lowervertex[pos_node]
++			pos=numpy.nonzero(numpy.logical_not(md2.mesh.lowervertex==-1))[0]
++			md2.mesh.lowervertex[pos]=Pnode[md2.mesh.lowervertex[pos]-1]
++			
++			md2.mesh.upperelements=md1.mesh.upperelements[pos_elem]
++			pos=numpy.nonzero(numpy.logical_not(md2.mesh.upperelements==-1))[0]
++			md2.mesh.upperelements[pos]=Pelem[md2.mesh.upperelements[pos]-1]
++			
++			md2.mesh.lowerelements=md1.mesh.lowerelements[pos_elem]
++			pos=numpy.nonzero(numpy.logical_not(md2.mesh.lowerelements==-1))[0]
++			md2.mesh.lowerelements[pos]=Pelem[md2.mesh.lowerelements[pos]-1]
++			
++		#Initial 2d mesh 
++		if md1.mesh.__class__.__name__=='mesh3dprisms':
++			flag_elem_2d=flag_elem[numpy.arange(0,md1.mesh.numberofelements2d)]
++			pos_elem_2d=numpy.nonzero(flag_elem_2d)[0]
++			flag_node_2d=flag_node[numpy.arange(0,md1.mesh.numberofvertices2d)]
++			pos_node_2d=numpy.nonzero(flag_node_2d)[0]
++		
++			md2.mesh.numberofelements2d=numpy.size(pos_elem_2d)
++			md2.mesh.numberofvertices2d=numpy.size(pos_node_2d)
++			md2.mesh.elements2d=md1.mesh.elements2d[pos_elem_2d,:]
++			md2.mesh.elements2d[:,0]=Pnode[md2.mesh.elements2d[:,0]-1]
++			md2.mesh.elements2d[:,1]=Pnode[md2.mesh.elements2d[:,1]-1]
++			md2.mesh.elements2d[:,2]=Pnode[md2.mesh.elements2d[:,2]-1]
++		
++			md2.mesh.x2d=md1.mesh.x[pos_node_2d]
++			md2.mesh.y2d=md1.mesh.y[pos_node_2d]
++		
++		#Edges
++		if m.strcmp(md.mesh.domaintype(),'2Dhorizontal'):
++			if numpy.ndim(md2.mesh.edges)>1 and numpy.size(md2.mesh.edges,axis=1)>1:    
++				#do not use ~isnan because there are some numpy.nans...
++				#renumber first two columns
++				pos=numpy.nonzero(md2.mesh.edges[:,3]!=-1)[0]
++				md2.mesh.edges[:  ,0]=Pnode[md2.mesh.edges[:,0]-1]
++				md2.mesh.edges[:  ,1]=Pnode[md2.mesh.edges[:,1]-1]
++				md2.mesh.edges[:  ,2]=Pelem[md2.mesh.edges[:,2]-1]
++				md2.mesh.edges[pos,3]=Pelem[md2.mesh.edges[pos,3]-1]
++				#remove edges when the 2 vertices are not in the domain.
++				md2.mesh.edges=md2.mesh.edges[numpy.nonzero(numpy.logical_and(md2.mesh.edges[:,0],md2.mesh.edges[:,1]))[0],:]
++				#Replace all zeros by -1 in the last two columns
++				pos=numpy.nonzero(md2.mesh.edges[:,2]==0)[0]
++				md2.mesh.edges[pos,2]=-1
++				pos=numpy.nonzero(md2.mesh.edges[:,3]==0)[0]
++				md2.mesh.edges[pos,3]=-1
++				#Invert -1 on the third column with last column (Also invert first two columns!!)
++				pos=numpy.nonzero(md2.mesh.edges[:,2]==-1)[0]
++				md2.mesh.edges[pos,2]=md2.mesh.edges[pos,3]
++				md2.mesh.edges[pos,3]=-1
++				values=md2.mesh.edges[pos,1]
++				md2.mesh.edges[pos,1]=md2.mesh.edges[pos,0]
++				md2.mesh.edges[pos,0]=values
++				#Finally remove edges that do not belong to any element
++				pos=numpy.nonzero(numpy.logical_and(md2.mesh.edges[:,1]==-1,md2.mesh.edges[:,2]==-1))[0]
++				md2.mesh.edges=numpy.delete(md2.mesh.edges,pos,axis=0)
++
++		#Penalties
++		if numpy.any(numpy.logical_not(numpy.isnan(md2.stressbalance.vertex_pairing))):
++			for i in range(numpy.size(md1.stressbalance.vertex_pairing,axis=0)):
++				md2.stressbalance.vertex_pairing[i,:]=Pnode[md1.stressbalance.vertex_pairing[i,:]]
++			md2.stressbalance.vertex_pairing=md2.stressbalance.vertex_pairing[numpy.nonzero(md2.stressbalance.vertex_pairing[:,0])[0],:]
++		if numpy.any(numpy.logical_not(numpy.isnan(md2.masstransport.vertex_pairing))):
++			for i in range(numpy.size(md1.masstransport.vertex_pairing,axis=0)):
++				md2.masstransport.vertex_pairing[i,:]=Pnode[md1.masstransport.vertex_pairing[i,:]]
++				md2.masstransport.vertex_pairing=md2.masstransport.vertex_pairing[numpy.nonzero(md2.masstransport.vertex_pairing[:,0])[0],:]
++
++		#recreate segments
++		if md1.mesh.__class__.__name__=='mesh2d':
++			[md2.mesh.vertexconnectivity]=NodeConnectivity(md2.mesh.elements,md2.mesh.numberofvertices)
++			[md2.mesh.elementconnectivity]=ElementConnectivity(md2.mesh.elements,md2.mesh.vertexconnectivity)
++			md2.mesh.segments=contourenvelope(md2)
++			md2.mesh.vertexonboundary=numpy.zeros(numberofvertices2,bool)
++			md2.mesh.vertexonboundary[md2.mesh.segments[:,0:2]-1]=True
++		else:
++			#First do the connectivity for the contourenvelope in 2d
++			[md2.mesh.vertexconnectivity]=NodeConnectivity(md2.mesh.elements2d,md2.mesh.numberofvertices2d)
++			[md2.mesh.elementconnectivity]=ElementConnectivity(md2.mesh.elements2d,md2.mesh.vertexconnectivity)
++			segments=contourenvelope(md2)
++			md2.mesh.vertexonboundary=numpy.zeros(numberofvertices2/md2.mesh.numberoflayers,bool)
++			md2.mesh.vertexonboundary[segments[:,0:2]-1]=True
++			md2.mesh.vertexonboundary=numpy.tile(md2.mesh.vertexonboundary,md2.mesh.numberoflayers)
++			#Then do it for 3d as usual
++			[md2.mesh.vertexconnectivity]=NodeConnectivity(md2.mesh.elements,md2.mesh.numberofvertices)
++			[md2.mesh.elementconnectivity]=ElementConnectivity(md2.mesh.elements,md2.mesh.vertexconnectivity)
++
++		#Boundary conditions: Dirichlets on new boundary
++		#Catch the elements that have not been extracted
++		orphans_elem=numpy.nonzero(numpy.logical_not(flag_elem))[0]
++		orphans_node=numpy.unique(md1.mesh.elements[orphans_elem,:])-1
++		#Figure out which node are on the boundary between md2 and md1
++		nodestoflag1=numpy.intersect1d(orphans_node,pos_node)
++		nodestoflag2=Pnode[nodestoflag1].astype(int)-1
++		if numpy.size(md1.stressbalance.spcvx)>1 and numpy.size(md1.stressbalance.spcvy)>2 and numpy.size(md1.stressbalance.spcvz)>2:
++			if numpy.size(md1.inversion.vx_obs)>1 and numpy.size(md1.inversion.vy_obs)>1:
++				md2.stressbalance.spcvx[nodestoflag2]=md2.inversion.vx_obs[nodestoflag2] 
++				md2.stressbalance.spcvy[nodestoflag2]=md2.inversion.vy_obs[nodestoflag2]
++			else:
++				md2.stressbalance.spcvx[nodestoflag2]=numpy.nan
++				md2.stressbalance.spcvy[nodestoflag2]=numpy.nan
++				print("\n!! extract warning: spc values should be checked !!\n\n")
++			#put 0 for vz
++			md2.stressbalance.spcvz[nodestoflag2]=0
++		if numpy.any(numpy.logical_not(numpy.isnan(md1.thermal.spctemperature))):
++			md2.thermal.spctemperature[nodestoflag2,0]=1
++
++		#Results fields
++		if md1.results:
++			md2.results=results()
++			for solutionfield,field in list(md1.results.__dict__.items()):
++				if   isinstance(field,list):
++					setattr(md2.results,solutionfield,[])
++					#get time step
++					for i,fieldi in enumerate(field):
++						if isinstance(fieldi,results) and fieldi:
++							getattr(md2.results,solutionfield).append(results())
++							fieldr=getattr(md2.results,solutionfield)[i]
++							#get subfields
++							for solutionsubfield,subfield in list(fieldi.__dict__.items()):
++								if   numpy.size(subfield)==numberofvertices1:
++									setattr(fieldr,solutionsubfield,subfield[pos_node])
++								elif numpy.size(subfield)==numberofelements1:
++									setattr(fieldr,solutionsubfield,subfield[pos_elem])
++								else:
++									setattr(fieldr,solutionsubfield,subfield)
++						else:
++							getattr(md2.results,solutionfield).append(None)
++				elif isinstance(field,results):
++					setattr(md2.results,solutionfield,results())
++					if isinstance(field,results) and field:
++						fieldr=getattr(md2.results,solutionfield)
++						#get subfields
++						for solutionsubfield,subfield in list(field.__dict__.items()):
++							if   numpy.size(subfield)==numberofvertices1:
++								setattr(fieldr,solutionsubfield,subfield[pos_node])
++							elif numpy.size(subfield)==numberofelements1:
++								setattr(fieldr,solutionsubfield,subfield[pos_elem])
++							else:
++								setattr(fieldr,solutionsubfield,subfield)
++
++		#Keep track of pos_node and pos_elem
++		md2.mesh.extractedvertices=pos_node+1
++		md2.mesh.extractedelements=pos_elem+1
++		return md2
++	# }}}
++
++	def extrude(md,*args):    # {{{
++		"""
++		EXTRUDE - vertically extrude a 2d mesh
++
++		   vertically extrude a 2d mesh and create corresponding 3d mesh.
++		   The vertical distribution can:
++		    - follow a polynomial law
++		    - follow two polynomial laws, one for the lower part and one for the upper part of the mesh
++		    - be discribed by a list of coefficients (between 0 and 1)
++ 
++
++		   Usage:
++		      md=extrude(md,numlayers,extrusionexponent)
++		      md=extrude(md,numlayers,lowerexponent,upperexponent)
++		      md=extrude(md,listofcoefficients)
++
++		   Example:
++				md=extrude(md,15,1.3);
++				md=extrude(md,15,1.3,1.2);
++				md=extrude(md,[0 0.2 0.5 0.7 0.9 0.95 1])
++
++		   See also: MODELEXTRACT, COLLAPSE
++		"""
++
++		#some checks on list of arguments
++		if len(args)>3 or len(args)<1:
++			raise RuntimeError("extrude error message")
++
++		#Extrude the mesh
++		if   len(args)==1:    #list of coefficients
++			clist=args[0]
++			if any(clist<0) or any(clist>1):
++				raise TypeError("extrusioncoefficients must be between 0 and 1")
++			clist.extend([0.,1.])
++			clist.sort()
++			extrusionlist=list(set(clist))
++			numlayers=len(extrusionlist)
++
++		elif len(args)==2:    #one polynomial law
++			if args[1]<=0:
++				raise TypeError("extrusionexponent must be >=0")
++			numlayers=args[0]
++			extrusionlist=(numpy.arange(0.,float(numlayers-1)+1.,1.)/float(numlayers-1))**args[1]
++
++		elif len(args)==3:    #two polynomial laws
++			numlayers=args[0]
++			lowerexp=args[1]
++			upperexp=args[2]
++
++			if args[1]<=0 or args[2]<=0:
++				raise TypeError("lower and upper extrusionexponents must be >=0")
++
++			lowerextrusionlist=(numpy.arange(0.,1.+2./float(numlayers-1),2./float(numlayers-1)))**lowerexp/2.
++			upperextrusionlist=(numpy.arange(0.,1.+2./float(numlayers-1),2./float(numlayers-1)))**upperexp/2.
++			extrusionlist=numpy.unique(numpy.concatenate((lowerextrusionlist,1.-upperextrusionlist)))
++
++		if numlayers<2:
++			raise TypeError("number of layers should be at least 2")
++		if md.mesh.__class__.__name__=='mesh3dprisms':
++			raise TypeError("Cannot extrude a 3d mesh (extrude cannot be called more than once)")
++
++		#Initialize with the 2d mesh
++		mesh2d = md.mesh
++		md.mesh=mesh3dprisms()
++		md.mesh.x                           = mesh2d.x
++		md.mesh.y                           = mesh2d.y
++		md.mesh.elements                    = mesh2d.elements
++		md.mesh.numberofelements            = mesh2d.numberofelements
++		md.mesh.numberofvertices            = mesh2d.numberofvertices
++		
++		md.mesh.lat                         = mesh2d.lat
++		md.mesh.long                        = mesh2d.long
++		md.mesh.epsg                        = mesh2d.epsg
++		
++		md.mesh.vertexonboundary            = mesh2d.vertexonboundary
++		md.mesh.vertexconnectivity          = mesh2d.vertexconnectivity
++		md.mesh.elementconnectivity         = mesh2d.elementconnectivity
++		md.mesh.average_vertex_connectivity = mesh2d.average_vertex_connectivity
++		
++		md.mesh.extractedvertices           = mesh2d.extractedvertices
++		md.mesh.extractedelements           = mesh2d.extractedelements
++		
++		x3d=numpy.empty((0))
++		y3d=numpy.empty((0))
++		z3d=numpy.empty((0))    #the lower node is on the bed
++		thickness3d=md.geometry.thickness    #thickness and bed for these nodes
++		bed3d=md.geometry.base
++
++		#Create the new layers
++		for i in range(numlayers):
++			x3d=numpy.concatenate((x3d,md.mesh.x))
++			y3d=numpy.concatenate((y3d,md.mesh.y))
++			#nodes are distributed between bed and surface accordingly to the given exponent
++			z3d=numpy.concatenate((z3d,(bed3d+thickness3d*extrusionlist[i]).reshape(-1)))
++		number_nodes3d=numpy.size(x3d)    #number of 3d nodes for the non extruded part of the mesh
++
++		#Extrude elements 
++		elements3d=numpy.empty((0,6),int)
++		for i in range(numlayers-1):
++			elements3d=numpy.vstack((elements3d,numpy.hstack((md.mesh.elements+i*md.mesh.numberofvertices,md.mesh.elements+(i+1)*md.mesh.numberofvertices))))    #Create the elements of the 3d mesh for the non extruded part
++		number_el3d=numpy.size(elements3d,axis=0)    #number of 3d nodes for the non extruded part of the mesh
++
++		#Keep a trace of lower and upper nodes
++		lowervertex=-1*numpy.ones(number_nodes3d,int)
++		uppervertex=-1*numpy.ones(number_nodes3d,int)
++		lowervertex[md.mesh.numberofvertices:]=numpy.arange(1,(numlayers-1)*md.mesh.numberofvertices+1)
++		uppervertex[:(numlayers-1)*md.mesh.numberofvertices]=numpy.arange(md.mesh.numberofvertices+1,number_nodes3d+1)
++		md.mesh.lowervertex=lowervertex
++		md.mesh.uppervertex=uppervertex
++
++		#same for lower and upper elements
++		lowerelements=-1*numpy.ones(number_el3d,int)
++		upperelements=-1*numpy.ones(number_el3d,int)
++		lowerelements[md.mesh.numberofelements:]=numpy.arange(1,(numlayers-2)*md.mesh.numberofelements+1)
++		upperelements[:(numlayers-2)*md.mesh.numberofelements]=numpy.arange(md.mesh.numberofelements+1,(numlayers-1)*md.mesh.numberofelements+1)
++		md.mesh.lowerelements=lowerelements
++		md.mesh.upperelements=upperelements
++
++		#Save old mesh 
++		md.mesh.x2d=md.mesh.x
++		md.mesh.y2d=md.mesh.y
++		md.mesh.elements2d=md.mesh.elements
++		md.mesh.numberofelements2d=md.mesh.numberofelements
++		md.mesh.numberofvertices2d=md.mesh.numberofvertices
++
++		#Build global 3d mesh 
++		md.mesh.elements=elements3d
++		md.mesh.x=x3d
++		md.mesh.y=y3d
++		md.mesh.z=z3d
++		md.mesh.numberofelements=number_el3d
++		md.mesh.numberofvertices=number_nodes3d
++		md.mesh.numberoflayers=numlayers
++
++		#Ok, now deal with the other fields from the 2d mesh:
++
++		#bedinfo and surface info
++		md.mesh.vertexonbase=project3d(md,'vector',numpy.ones(md.mesh.numberofvertices2d,bool),'type','node','layer',1)
++		md.mesh.vertexonsurface=project3d(md,'vector',numpy.ones(md.mesh.numberofvertices2d,bool),'type','node','layer',md.mesh.numberoflayers)
++		md.mesh.vertexonboundary=project3d(md,'vector',md.mesh.vertexonboundary,'type','node')
++
++		#lat long
++		md.mesh.lat=project3d(md,'vector',md.mesh.lat,'type','node')
++		md.mesh.long=project3d(md,'vector',md.mesh.long,'type','node')
++
++		md.geometry.extrude(md)
++		md.friction.extrude(md)
++		md.inversion.extrude(md)
++		md.smb.extrude(md)
++		md.initialization.extrude(md)
++		md.flowequation.extrude(md)
++
++		md.stressbalance.extrude(md)
++		md.thermal.extrude(md)
++		md.masstransport.extrude(md)
++
++		# Calving variables
++		md.hydrology.extrude(md)
++		md.calving.extrude(md)
++
++		#connectivity
++		md.mesh.elementconnectivity=numpy.tile(md.mesh.elementconnectivity,(numlayers-1,1))
++		md.mesh.elementconnectivity[numpy.nonzero(md.mesh.elementconnectivity==0)]=-sys.maxsize-1
++		if not numpy.isnan(md.mesh.elementconnectivity).all():
++			for i in range(1,numlayers-1):
++				md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:] \
++					=md.mesh.elementconnectivity[i*md.mesh.numberofelements2d:(i+1)*md.mesh.numberofelements2d,:]+md.mesh.numberofelements2d
++				md.mesh.elementconnectivity[numpy.nonzero(md.mesh.elementconnectivity<0)]=0
++
++		md.materials.extrude(md)
++		md.damage.extrude(md)
++		md.gia.extrude(md)
++		md.mask.extrude(md)
++		md.qmu.extrude(md)
++		md.basalforcings.extrude(md)
++
++		#increase connectivity if less than 25:
++		if md.mesh.average_vertex_connectivity<=25:
++			md.mesh.average_vertex_connectivity=100
++
++		return md
++	# }}}
++	def collapse(md): #{{{
++		'''
++		collapses a 3d mesh into a 2d mesh
++			
++		This routine collapses a 3d model into a 2d model and collapses all
++		the fileds of the 3d model by taking their depth-averaged values
++			
++		Usage:
++			md=collapse(md)
++		'''	
++
++		#Check that the model is really a 3d model
++		if md.mesh.domaintype().lower() != '3d':
++			raise Exception("only a 3D model can be collapsed")
++		
++		#drag is limited to nodes that are on the bedrock.
++		md.friction.coefficient=project2d(md,md.friction.coefficient,1)
++
++		#p and q (same deal, except for element that are on the bedrock: )
++		md.friction.p=project2d(md,md.friction.p,1)
++		md.friction.q=project2d(md,md.friction.q,1)
++
++		#observations
++		if not numpy.isnan(md.inversion.vx_obs).all(): md.inversion.vx_obs=project2d(md,md.inversion.vx_obs,md.mesh.numberoflayers) 
++		if not numpy.isnan(md.inversion.vy_obs).all(): md.inversion.vy_obs=project2d(md,md.inversion.vy_obs,md.mesh.numberoflayers) 
++		if not numpy.isnan(md.inversion.vel_obs).all(): md.inversion.vel_obs=project2d(md,md.inversion.vel_obs,md.mesh.numberoflayers) 
++		if not numpy.isnan(md.inversion.cost_functions_coefficients).all(): md.inversion.cost_functions_coefficients=project2d(md,md.inversion.cost_functions_coefficients,md.mesh.numberoflayers) 
++		if isinstance(md.inversion.min_parameters,numpy.ndarray):
++			if md.inversion.min_parameters.size>1: md.inversion.min_parameters=project2d(md,md.inversion.min_parameters,md.mesh.numberoflayers) 
++			if isinstance(md.inversion.max_parameters,numpy.ndarray):
++				if md.inversion.max_parameters.size>1: md.inversion.max_parameters=project2d(md,md.inversion.max_parameters,md.mesh.numberoflayers) 
++				if not numpy.isnan(md.smb.mass_balance).all():
++					md.smb.mass_balance=project2d(md,md.smb.mass_balance,md.mesh.numberoflayers) 
++					
++		if not numpy.isnan(md.balancethickness.thickening_rate).all(): md.balancethickness.thickening_rate=project2d(md,md.balancethickness.thickening_rate,md.mesh.numberoflayers) 
++
++		#results
++		if not numpy.isnan(md.initialization.vx).all(): md.initialization.vx=DepthAverage(md,md.initialization.vx)
++		if not numpy.isnan(md.initialization.vy).all(): md.initialization.vy=DepthAverage(md,md.initialization.vy)
++		if not numpy.isnan(md.initialization.vz).all(): md.initialization.vz=DepthAverage(md,md.initialization.vz)
++		if not numpy.isnan(md.initialization.vel).all(): md.initialization.vel=DepthAverage(md,md.initialization.vel)
++		if not numpy.isnan(md.initialization.temperature).all(): md.initialization.temperature=DepthAverage(md,md.initialization.temperature)
++		if not numpy.isnan(md.initialization.pressure).all(): md.initialization.pressure=project2d(md,md.initialization.pressure,1)
++		if not numpy.isnan(md.initialization.sediment_head).all(): md.initialization.sediment_head=project2d(md,md.initialization.sediment_head,1)
++		if not numpy.isnan(md.initialization.epl_head).all(): md.initialization.epl_head=project2d(md,md.initialization.epl_head,1)
++		if not numpy.isnan(md.initialization.epl_thickness).all(): md.initialization.epl_thickness=project2d(md,md.initialization.epl_thickness,1)
++
++		#gia
++		if not numpy.isnan(md.gia.mantle_viscosity).all(): md.gia.mantle_viscosity=project2d(md,md.gia.mantle_viscosity,1) 
++		if not numpy.isnan(md.gia.lithosphere_thickness).all(): md.gia.lithosphere_thickness=project2d(md,md.gia.lithosphere_thickness,1) 
++
++		#elementstype
++		if not numpy.isnan(md.flowequation.element_equation).all():
++			md.flowequation.element_equation=project2d(md,md.flowequation.element_equation,1)
++			md.flowequation.vertex_equation=project2d(md,md.flowequation.vertex_equation,1)
++			md.flowequation.borderSSA=project2d(md,md.flowequation.borderSSA,1)
++			md.flowequation.borderHO=project2d(md,md.flowequation.borderHO,1)
++			md.flowequation.borderFS=project2d(md,md.flowequation.borderFS,1)
++
++		# Hydrologydc variables
++		if hasattr(md.hydrology,'hydrologydc'):
++			md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
++			md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
++			md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
++			md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
++			if md.hydrology.isefficientlayer == 1:
++				md.hydrology.spcepl_head=project2d(md,md.hydrology.spcepl_head,1)
++
++		#boundary conditions
++		md.stressbalance.spcvx=project2d(md,md.stressbalance.spcvx,md.mesh.numberoflayers)
++		md.stressbalance.spcvy=project2d(md,md.stressbalance.spcvy,md.mesh.numberoflayers)
++		md.stressbalance.spcvz=project2d(md,md.stressbalance.spcvz,md.mesh.numberoflayers)
++		md.stressbalance.referential=project2d(md,md.stressbalance.referential,md.mesh.numberoflayers)
++		md.stressbalance.loadingforce=project2d(md,md.stressbalance.loadingforce,md.mesh.numberoflayers)
++		md.masstransport.spcthickness=project2d(md,md.masstransport.spcthickness,md.mesh.numberoflayers)
++		if not numpy.isnan(md.damage.spcdamage).all(): md.damage.spcdamage=project2d(md,md.damage.spcdamage,md.mesh.numberoflayers-1)
++		md.thermal.spctemperature=project2d(md,md.thermal.spctemperature,md.mesh.numberoflayers-1)
++
++		#materials
++		md.materials.rheology_B=DepthAverage(md,md.materials.rheology_B)
++		md.materials.rheology_n=project2d(md,md.materials.rheology_n,1)
++		
++		#damage: 
++		if md.damage.isdamage:
++			md.damage.D=DepthAverage(md,md.damage.D)
++
++		#special for thermal modeling:
++		md.basalforcings.groundedice_melting_rate=project2d(md,md.basalforcings.groundedice_melting_rate,1) 
++		md.basalforcings.floatingice_melting_rate=project2d(md,md.basalforcings.floatingice_melting_rate,1) 
++		md.basalforcings.geothermalflux=project2d(md,md.basalforcings.geothermalflux,1) #bedrock only gets geothermal flux
++
++		#update of connectivity matrix
++		md.mesh.average_vertex_connectivity=25
++
++		#Collapse the mesh
++		nodes2d=md.mesh.numberofvertices2d
++		elements2d=md.mesh.numberofelements2d
++
++		#parameters
++		md.geometry.surface=project2d(md,md.geometry.surface,1)
++		md.geometry.thickness=project2d(md,md.geometry.thickness,1)
++		md.geometry.base=project2d(md,md.geometry.base,1)
++		if isinstance(md.geometry.bed,numpy.ndarray):
++			md.geometry.bed=project2d(md,md.geometry.bed,1)
++			md.mask.groundedice_levelset=project2d(md,md.mask.groundedice_levelset,1)
++			md.mask.ice_levelset=project2d(md,md.mask.ice_levelset,1)
++
++		#lat long
++		if isinstance(md.mesh.lat,numpy.ndarray):
++			if md.mesh.lat.size==md.mesh.numberofvertices:  md.mesh.lat=project2d(md,md.mesh.lat,1) 
++			if isinstance(md.mesh.long,numpy.ndarray):
++				if md.mesh.long.size==md.mesh.numberofvertices: md.mesh.long=project2d(md,md.mesh.long,1) 
++
++		#Initialize with the 2d mesh
++		mesh=mesh2d()
++		mesh.x=md.mesh.x2d
++		mesh.y=md.mesh.y2d
++		mesh.numberofvertices=md.mesh.numberofvertices2d
++		mesh.numberofelements=md.mesh.numberofelements2d
++		mesh.elements=md.mesh.elements2d
++		if not numpy.isnan(md.mesh.vertexonboundary).all(): mesh.vertexonboundary=project2d(md,md.mesh.vertexonboundary,1)
++		if not numpy.isnan(md.mesh.elementconnectivity).all(): mesh.elementconnectivity=project2d(md,md.mesh.elementconnectivity,1)
++		md.mesh=mesh
++
++		return md
++
++#}}}
+Index: ../trunk-jpl/src/py3/classes/settings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/settings.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/settings.py	(revision 19895)
+@@ -0,0 +1,80 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class settings(object):
++	"""
++	SETTINGS class definition
++
++	   Usage:
++	      settings=settings();
++	"""
++
++	def __init__(self): # {{{
++		self.results_on_nodes    = 0
++		self.io_gather           = 0
++		self.lowmem              = 0
++		self.output_frequency    = 0
++		self.recording_frequency    = 0
++		self.waitonlock          = 0
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   general settings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"results_on_nodes","results are output for all the nodes of each element"))
++		string="%s\n%s"%(string,fielddisplay(self,"io_gather","I/O gathering strategy for result outputs (default 1)"))
++		string="%s\n%s"%(string,fielddisplay(self,"lowmem","is the memory limited ? (0 or 1)"))
++		string="%s\n%s"%(string,fielddisplay(self,"output_frequency","frequency at which results are saved in all solutions with multiple time_steps"))
++		string="%s\n%s"%(string,fielddisplay(self,"recording_frequency","frequency at which the runs are being recorded, allowing for a restart"))
++		string="%s\n%s"%(string,fielddisplay(self,"waitonlock","maximum number of minutes to wait for batch results, or return 0"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#are we short in memory ? (0 faster but requires more memory)
++		self.lowmem=0
++
++		#i/o:
++		self.io_gather=1
++
++		#results frequency by default every step
++		self.output_frequency=1
++
++		#checkpoints frequency, by default never: 
++		self.recording_frequency=0
++
++
++		#this option can be activated to load automatically the results
++		#onto the model after a parallel run by waiting for the lock file
++		#N minutes that is generated once the solution has converged
++		#0 to deactivate
++		self.waitonlock=2**31-1
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		md = checkfield(md,'fieldname','settings.results_on_nodes','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)
++		md = checkfield(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0)
++		md = checkfield(md,'fieldname','settings.waitonlock','numel',[1])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','results_on_nodes','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','io_gather','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','lowmem','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','output_frequency','format','Integer')
++		WriteData(fid,'object',self,'fieldname','recording_frequency','format','Integer')
++		if self.waitonlock>0:
++			WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',True,'format','Boolean');
++		else:
++			WriteData(fid,'enum',SettingsWaitonlockEnum(),'data',False,'format','Boolean');
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/autodiff.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/autodiff.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/autodiff.py	(revision 19895)
+@@ -0,0 +1,215 @@
++import numpy
++from dependent import dependent
++from independent import independent
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class autodiff(object):
++	"""
++	AUTODIFF class definition
++
++	   Usage:
++	      autodiff=autodiff();
++	"""
++	def __init__(self,*args):    # {{{
++		self.isautodiff   = False
++		self.dependents   = []
++		self.independents = []
++		self.driver       = 'fos_forward'
++		self.obufsize     = float('NaN')
++		self.lbufsize     = float('NaN')
++		self.cbufsize     = float('NaN')
++		self.tbufsize     = float('NaN')
++		self.gcTriggerMaxSize     = float('NaN')
++		self.gcTriggerRatio     = float('NaN')
++		if not len(args):
++			self.setdefaultparameters()
++		else:
++			raise RuntimeError("constructor not supported")
++	# }}}
++	def __repr__(self):    # {{{
++		s ="      automatic differentiation parameters:\n"
++
++		s+="%s\n" % fielddisplay(self,'isautodiff',"indicates if the automatic differentiation is activated")
++		s+="%s\n" % fielddisplay(self,'dependents',"list of dependent variables")
++		s+="%s\n" % fielddisplay(self,'independents',"list of independent variables")
++		s+="%s\n" % fielddisplay(self,'driver',"ADOLC driver ('fos_forward' or 'fov_forward')")
++		s+="%s\n" % fielddisplay(self,'obufsize',"Number of operations per buffer (==OBUFSIZE in usrparms.h)")
++		s+="%s\n" % fielddisplay(self,'lbufsize',"Number of locations per buffer (==LBUFSIZE in usrparms.h)")
++		s+="%s\n" % fielddisplay(self,'cbufsize',"Number of values per buffer (==CBUFSIZE in usrparms.h)")
++		s+="%s\n" % fielddisplay(self,'tbufsize',"Number of taylors per buffer (<=TBUFSIZE in usrparms.h)")
++		s+="%s\n" % fielddisplay(self,'gcTriggerRatio',"free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio")
++		s+="%s\n" % fielddisplay(self,'gcTriggerMaxSize',"free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize)")
++
++		return s
++	# }}}
++	def setdefaultparameters(self):    # {{{
++		
++		self.obufsize     = 524288
++		self.lbufsize     = 524288
++		self.cbufsize     = 524288
++		self.tbufsize     = 524288
++		self.gcTriggerRatio=2.0
++		self.gcTriggerMaxSize=65536
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return 
++		if not self.isautodiff:
++			return md 
++		
++		md = checkfield(md,'fieldname','autodiff.obufsize','>=',524288)
++		md = checkfield(md,'fieldname','autodiff.lbufsize','>=',524288)
++		md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288)
++		md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288)
++		md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)
++		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)
++
++		#Driver value:
++		md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
++
++		#go through our dependents and independents and check consistency: 
++		for dep in self.dependents:
++			dep.checkconsistency(md,solution,analyses)
++		for i,indep in enumerate(self.independents):
++			indep.checkconsistency(md,i,solution,analyses,self.driver)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','isautodiff','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','driver','format','String')
++
++		#early return
++		if not self.isautodiff:
++			WriteData(fid,'data',False,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean')
++			WriteData(fid,'data',False,'enum',AutodiffKeepEnum(),'format','Boolean')
++			return
++			
++		#buffer sizes {{{
++		WriteData(fid,'object',self,'fieldname','obufsize','format','Double');
++		WriteData(fid,'object',self,'fieldname','lbufsize','format','Double');
++		WriteData(fid,'object',self,'fieldname','cbufsize','format','Double');
++		WriteData(fid,'object',self,'fieldname','tbufsize','format','Double');
++		WriteData(fid,'object',self,'fieldname','gcTriggerRatio','format','Double');
++		WriteData(fid,'object',self,'fieldname','gcTriggerMaxSize','format','Double');
++		#}}}
++		#process dependent variables {{{
++		num_dependent_objects=len(self.dependents)
++		WriteData(fid,'data',num_dependent_objects,'enum',AutodiffNumDependentObjectsEnum(),'format','Integer')
++
++		if num_dependent_objects:
++			names=[]
++			types=numpy.zeros(num_dependent_objects)
++			indices=numpy.zeros(num_dependent_objects)
++
++			for i,dep in enumerate(self.dependents):
++				names[i]=dep.name
++				types[i]=dep.typetoscalar()
++				indices[i]=dep.index
++
++			WriteData(fid,'data',names,'enum',AutodiffDependentObjectNamesEnum(),'format','StringArray')
++			WriteData(fid,'data',types,'enum',AutodiffDependentObjectTypesEnum(),'format','IntMat','mattype',3)
++			WriteData(fid,'data',indices,'enum',AutodiffDependentObjectIndicesEnum(),'format','IntMat','mattype',3)
++		#}}}
++		#process independent variables {{{
++		num_independent_objects=len(self.independents)
++		WriteData(fid,'data',num_independent_objects,'enum',AutodiffNumIndependentObjectsEnum(),'format','Integer')
++
++		if num_independent_objects:
++			names=numpy.zeros(num_independent_objects)
++			types=numpy.zeros(num_independent_objects)
++
++			for i,indep in enumerate(self.independents):
++				names[i]=StringToEnum(indep.name)[0]
++				types[i]=indep.typetoscalar()
++
++			WriteData(fid,'data',names,'enum',AutodiffIndependentObjectNamesEnum(),'format','IntMat','mattype',3)
++			WriteData(fid,'data',types,'enum',AutodiffIndependentObjectTypesEnum(),'format','IntMat','mattype',3)
++		#}}}
++		#if driver is fos_forward, build index:  {{{
++		if strcmpi(self.driver,'fos_forward'):
++			index=0
++
++			for indep in self.independents:
++				if not numpy.isnan(indep.fos_forward_index):
++					index+=indep.fos_forward_index
++					break
++				else:
++					if strcmpi(indep.type,'scalar'):
++						index+=1
++					else:
++						index+=indep.nods
++
++			index-=1    #get c-index numbering going
++			WriteData(fid,'data',index,'enum',AutodiffFosForwardIndexEnum(),'format','Integer')
++		#}}}
++		#if driver is fos_reverse, build index:  {{{
++		if strcmpi(self.driver,'fos_reverse'):
++			index=0
++
++			for dep in self.dependents:
++				if not numpy.isnan(dep.fos_reverse_index):
++					index+=dep.fos_reverse_index
++					break
++				else:
++					if strcmpi(dep.type,'scalar'):
++						index+=1
++					else:
++						index+=dep.nods
++
++			index-=1    #get c-index numbering going
++			WriteData(fid,'data',index,'enum',AutodiffFosReverseIndexEnum(),'format','Integer')
++		#}}}
++		#if driver is fov_forward, build indices:  {{{
++		if strcmpi(self.driver,'fov_forward'):
++			indices=0
++
++			for indep in self.independents:
++				if indep.fos_forward_index:
++					indices+=indep.fov_forward_indices
++					break
++				else:
++					if strcmpi(indep.type,'scalar'):
++						indices+=1
++					else:
++						indices+=indep.nods
++
++			indices-=1    #get c-indices numbering going
++			WriteData(fid,'data',indices,'enum',AutodiffFovForwardIndicesEnum(),'format','IntMat','mattype',3)
++		#}}}
++		#deal with mass fluxes:  {{{
++		mass_flux_segments=[dep.segments for dep in self.dependents if strcmpi(dep.name,'MassFlux')]
++
++		if mass_flux_segments:
++			WriteData(fid,'data',mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray')
++			flag=True
++		else:
++			flag=False
++		WriteData(fid,'data',flag,'enum',AutodiffMassFluxSegmentsPresentEnum(),'format','Boolean')
++		#}}}
++		#deal with trace keep on: {{{
++		keep=False
++
++		#From ADOLC userdoc: 
++		# The optional integer argument keep of trace on determines whether the numerical values of all active variables are 
++		# recorded in a buffered temporary array or file called the taylor stack. This option takes effect if keep = 1 and 
++		# prepares the scene for an immediately following gradient evaluation by a call to a routine implementing the reverse 
++		# mode as described in the Section 4 and Section 5. 
++		#
++
++		if len(self.driver)<=3:
++			keep=False    #there is no "_reverse" string within the driver string: 
++		else:
++			if strncmpi(self.driver[3:],'_reverse',8):
++				keep=True
++			else:
++				keep=False
++		WriteData(fid,'data',keep,'enum',AutodiffKeepEnum(),'format','Boolean')
++		#}}}
++
++		return
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/balancethickness.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/balancethickness.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/balancethickness.py	(revision 19895)
+@@ -0,0 +1,57 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class balancethickness(object):
++	"""
++	BALANCETHICKNESS class definition
++
++	   Usage:
++	      balancethickness=balancethickness();
++	"""
++
++	def __init__(self): # {{{
++		self.spcthickness      = float('NaN')
++		self.thickening_rate   = float('NaN')
++		self.stabilization     = 0
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		
++		string='   balance thickness solution parameters:' 
++		
++		string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'thickening_rate','ice thickening rate used in the mass conservation (dh/dt) [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization',"0: None, 1: SU, 2: SSA's artificial diffusivity, 3:DG"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#Type of stabilization used
++		self.stabilization=1
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		#Early return
++		if not solution==BalancethicknessSolutionEnum():
++			return md
++
++		md = checkfield(md,'fieldname','balancethickness.spcthickness')
++		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
++		md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','thickening_rate','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/matdamageice.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/matdamageice.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/matdamageice.py	(revision 19895)
+@@ -0,0 +1,156 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import MaterialsEnum, MatdamageiceEnum, MaterialsRheologyLawEnum, MaterialsRhoSeawaterEnum
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class matdamageice(object):
++	"""
++	MATICE class definition
++
++	   Usage:
++	      matdamagice=matdamageice();
++	"""
++
++	def __init__(self): # {{{
++		self.rho_ice                   = 0.
++		self.rho_water                 = 0.
++		self.rho_freshwater            = 0.
++		self.mu_water                  = 0.
++		self.heatcapacity              = 0.
++		self.latentheat                = 0.
++		self.thermalconductivity       = 0.
++		self.temperateiceconductivity  = 0.
++		self.meltingpoint              = 0.
++		self.beta                      = 0.
++		self.mixed_layer_capacity      = 0.
++		self.thermal_exchange_velocity = 0.
++		self.rheology_B                = float('NaN')
++		self.rheology_n                = float('NaN')
++		self.rheology_law              = ''
++
++		#gia: 
++		self.lithosphere_shear_modulus  = 0.
++		self.lithosphere_density        = 0.
++		self.mantle_shear_modulus       = 0.
++		self.mantle_density             = 0.
++
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++		string="   Materials:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]"))
++		string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
++		string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Cuffey', 'Paterson', 'Arrhenius' or 'LliboutryDuval'"))
++		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]"))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node')
++		self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		#ice density (kg/m^3)
++		self.rho_ice=917.
++
++		#ocean water density (kg/m^3)
++		self.rho_water=1023.
++
++		#fresh water density (kg/m^3)
++		self.rho_freshwater=1000.
++
++		#water viscosity (N.s/m^2)
++		self.mu_water=0.001787  
++
++		#ice heat capacity cp (J/kg/K)
++		self.heatcapacity=2093.
++
++		#ice latent heat of fusion L (J/kg)
++		self.latentheat=3.34*10**5
++
++		#ice thermal conductivity (W/m/K)
++		self.thermalconductivity=2.4
++
++		#temperate ice thermal conductivity (W/m/K)
++		self.temperateiceconductivity=0.24
++
++		#the melting point of ice at 1 atmosphere of pressure in K
++		self.meltingpoint=273.15
++
++		#rate of change of melting point with pressure (K/Pa)
++		self.beta=9.8*10**-8
++
++		#mixed layer (ice-water interface) heat capacity (J/kg/K)
++		self.mixed_layer_capacity=3974.
++
++		#thermal exchange velocity (ice-water interface) (m/s)
++		self.thermal_exchange_velocity=1.00*10**-4
++
++		#Rheology law: what is the temperature dependence of B with T
++		#available: none, paterson and arrhenius
++		self.rheology_law='Paterson'
++
++		# GIA:
++		self.lithosphere_shear_modulus  = 6.7*10**10  # (Pa)
++		self.lithosphere_density        = 3.32        # (g/cm^-3)
++		self.mantle_shear_modulus       = 1.45*10**11 # (Pa)
++		self.mantle_density             = 3.34        # (g/cm^-3)
++
++		return self
++		#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		md = checkfield(md,'fieldname','materials.rho_ice','>',0)
++		md = checkfield(md,'fieldname','materials.rho_water','>',0)
++		md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)
++		md = checkfield(md,'fieldname','materials.mu_water','>',0)
++		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])
++		md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',MaterialsEnum(),'data',MatdamageiceEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_ice','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_water','enum',MaterialsRhoSeawaterEnum(),'format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_freshwater','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','mu_water','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','heatcapacity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','latentheat','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','beta','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2)
++		WriteData(fid,'data',StringToEnum(self.rheology_law)[0],'enum',MaterialsRheologyLawEnum(),'format','Integer')
++
++		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double');
++		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.);
++		WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
++		WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.);
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/groundingline.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/groundingline.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/groundingline.py	(revision 19895)
+@@ -0,0 +1,54 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class groundingline(object):
++	"""
++	GROUNDINGLINE class definition
++
++	   Usage:
++	      groundingline=groundingline();
++	"""
++
++	def __init__(self): # {{{
++		self.migration=''
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   grounding line migration parameters:'
++
++		string="%s\n%s"%(string,fielddisplay(self,'migration','type of grounding line migration: ''SoftMigration'',''AggressiveMigration'',''SubelementMigration'',''SubelementMigration2'',''Contact'',''None'''))
++		return string
++		#}}}	
++	def setdefaultparameters(self): # {{{
++
++		#Type of migration
++		self.migration='None'
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,fieldname='groundingline.migration',values=['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly'])
++
++		if not m.strcmp(self.migration,'None'):
++			if numpy.any(numpy.isnan(md.geometry.bed)):
++				md.checkmessage("requesting grounding line migration, but bathymetry is absent!")
++			pos=numpy.nonzero(md.mask.groundedice_levelset>0.)[0]
++			if any(numpy.abs(md.geometry.base[pos]-md.geometry.bed[pos])>10**-10):
++				md.checkmessage("base not equal to bed on grounded ice!")
++			if any(md.geometry.bed - md.geometry.base > 10**-9):
++				md.checkmessage("bed superior to base on floating ice!")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'data',StringToEnum(self.migration)[0],'enum',GroundinglineMigrationEnum(),'format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/verbose.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/verbose.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/verbose.py	(revision 19895)
+@@ -0,0 +1,138 @@
++from pairoptions import pairoptions
++import MatlabFuncs as m
++from EnumDefinitions import *
++from WriteData import WriteData
++
++class verbose(object):
++	"""
++	VERBOSE class definition
++
++	   Available verbosity levels:
++	      mprocessor  : model processing 
++	      module      : modules
++	      solution    : solution sequence
++	      solver      : solver info (extensive)
++	      convergence : convergence criteria
++	      control     : control method
++	      qmu         : sensitivity analysis
++	      autodiff    : AD analysis
++	      smb         : SMB analysis
++
++	   Usage:
++	      verbose=verbose();
++	      verbose=verbose(3);
++	      verbose=verbose('001100');
++	      verbose=verbose('module',True,'solver',False);
++
++	WARNING: some parts of this file are Synchronized with src/c/shared/Numerics/Verbosity.h
++	         Do not modify these sections. See src/c/shared/Numerics/README for more info
++	"""
++
++	def __init__(self,*args,**kwargs):    # {{{
++		#BEGINFIELDS
++		self.mprocessor  = False
++		self.module      = False
++		self.solution    = False
++		self.solver      = False
++		self.convergence = False
++		self.control     = False
++		self.qmu         = False
++		self.autodiff    = False
++		self.smb         = False
++		#ENDFIELDS
++
++		if not kwargs and not args:
++			#Don't do anything
++			self.solution=True;
++			self.qmu=True;
++			self.control=True;
++			pass
++
++		elif len(args) == 1:
++			binary=args[0]
++			if   isinstance(binary,str):
++				if binary.lower()=='all':
++					binary=2**11-1    #all ones
++					self.BinaryToVerbose(binary)
++					self.solver=False    #Do not use by default
++				else:
++					binary=int(binary,2)
++					self.BinaryToVerbose(binary)
++			elif isinstance(binary,(int,float)):
++				self.BinaryToVerbose(int(binary))
++
++		else:
++			#Use options to initialize object
++			self=pairoptions(**kwargs).AssignObjectFields(self)
++
++			#Cast to logicals
++			listproperties=vars(self)
++			for fieldname,fieldvalue in list(listproperties.items()):
++				if isinstance(fieldvalue,bool) or isinstance(fieldvalue,(int,float)):
++					setattr(self,fieldname,bool(fieldvalue))
++				else:
++					raise TypeError("verbose supported field values are logicals only (True or False)")
++	# }}}
++	def __repr__(self):    # {{{
++			
++		#BEGINDISP
++		s ="class '%s'  = \n" % type(self)
++		s+="   %15s : %s\n" % ('mprocessor',self.mprocessor)
++		s+="   %15s : %s\n" % ('module',self.module)
++		s+="   %15s : %s\n" % ('solution',self.solution)
++		s+="   %15s : %s\n" % ('solver',self.solver)
++		s+="   %15s : %s\n" % ('convergence',self.convergence)
++		s+="   %15s : %s\n" % ('control',self.control)
++		s+="   %15s : %s\n" % ('qmu',self.qmu)
++		s+="   %15s : %s\n" % ('autodiff',self.autodiff)
++		s+="   %15s : %s\n" % ('smb',self.smb)
++		#ENDDISP
++
++		return s
++	# }}}
++	def VerboseToBinary(self):    # {{{
++
++		#BEGINVERB2BIN
++		binary=0
++		if self.mprocessor:
++			binary=binary |  1
++		if self.module:
++			binary=binary |  2
++		if self.solution:
++			binary=binary |  4
++		if self.solver:
++			binary=binary |  8
++		if self.convergence:
++			binary=binary | 16
++		if self.control:
++			binary=binary | 32
++		if self.qmu:
++			binary=binary | 64
++		if self.autodiff:
++			binary=binary | 128
++		if self.smb:
++			binary=binary | 256
++		#ENDVERB2BIN
++
++		return binary
++	# }}}
++	def BinaryToVerbose(self,binary):    # {{{
++
++		#BEGINBIN2VERB
++		self.mprocessor =bool(binary &   1)
++		self.module     =bool(binary &   2)
++		self.solution   =bool(binary &   4)
++		self.solver     =bool(binary &   8)
++		self.convergence=bool(binary &  16)
++		self.control    =bool(binary &  32)
++		self.qmu        =bool(binary &  64)
++		self.autodiff   =bool(binary & 128)
++		self.smb        =bool(binary & 256)
++		#ENDBIN2VERB
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'data',self.VerboseToBinary(),'enum',VerboseEnum(),'format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBd18opdd.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBd18opdd.py	(revision 19895)
+@@ -0,0 +1,138 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBd18opdd(object):
++	"""
++	SMBd18opdd Class definition
++
++	   Usage:
++	      SMBd18opdd=SMBd18opdd();
++	"""
++
++	def __init__(self): # {{{
++		self.desfac                    = 0.
++		self.s0p                       = float('NaN')
++		self.s0t                       = float('NaN')
++		self.rlaps                     = 0.
++		self.rlapslgm                  = 0.
++		self.dpermil                   = 0.
++		self.Tdiff                     = float('NaN')
++		self.sealev                    = float('NaN')
++		self.ismungsm                  = 0
++		self.isd18opd                  = 0
++		self.delta18o                  = float('NaN')
++		self.delta18o_surface          = float('NaN')
++		self.temperatures_presentday   = float('NaN')
++		self.precipitations_presentday = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,'isd18opd','is delta18o parametrisation from present day temperature and precipitation activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]'))
++		if self.isd18opd:
++			string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
++			string="%s\n%s"%(string,fielddisplay(self,'dpermil','degree per mil, required if d18opd is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		if self.isd18opd: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
++		if self.isd18opd: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
++		self.s0p=project3d(md,'vector',self.s0p,'type','node')
++		self.s0t=project3d(md,'vector',self.s0t,'type','node')
++
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.s0p)):
++			self.s0p=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMBd18opdd.s0p specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.s0t)):
++			self.s0t=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMBd18opdd.s0t specified: values set as zero")
++			
++		return self
++	# }}}
++	def setdefaultparameters(self): # {{{
++
++		#pdd method not used in default mode
++		self.ismungsm   = 0
++		self.isd18opd   = 1
++		self.desfac     = 0.5
++		self.rlaps      = 6.5 
++		self.rlapslgm   = 6.5
++		self.dpermil    = 2.4
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
++
++			if self.isd18opd:
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1])
++		
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBd18opddEnum(),'format','Integer')
++
++		WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','isd18opd','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++		WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
++
++		if self.isd18opd:
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','dpermil','format','Double')
++			
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/transient.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/transient.py	(revision 19895)
+@@ -0,0 +1,129 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class transient(object):
++	"""
++	TRANSIENT class definition
++
++	   Usage:
++	      transient=transient();
++	"""
++
++	def __init__(self): # {{{
++		self.issmb   = False
++		self.ismasstransport   = False
++		self.isstressbalance   = False
++		self.isthermal         = False
++		self.isgroundingline   = False
++		self.isgia             = False
++		self.isdamageevolution = False
++		self.islevelset        = False
++		self.iscalving         = False
++		self.ishydrology       = False
++		self.requested_outputs = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   transient solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'issmb','indicates if a surface mass balance solution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'ismasstransport','indicates if a masstransport solution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'isstressbalance','indicates if a stressbalance solution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'isthermal','indicates if a thermal solution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'isgroundingline','indicates if a groundingline migration is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
++		string="%s\n%s"%(string,fielddisplay(self,'iscalving','indicates whether calving is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
++		return string
++		#}}}
++	def defaultoutputs(self,md): # {{{
++
++		if self.issmb:
++			return ['SmbMassBalance']
++		else:
++			return []
++
++	#}}}
++	def setallnullparameters(self): # {{{
++		
++		#Nothing done
++		self.issmb   = False
++		self.ismasstransport   = False
++		self.isstressbalance   = False
++		self.isthermal         = False
++		self.isgroundingline   = False
++		self.isgia             = False
++		self.isdamageevolution = False
++		self.islevelset        = False
++		self.iscalving         = False
++		self.ishydrology       = False
++
++		#default output
++		self.requested_outputs=[]
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#full analysis: Stressbalance, Masstransport and Thermal but no groundingline migration for now
++		self.issmb = True
++		self.ismasstransport = True
++		self.isstressbalance = True
++		self.isthermal       = True
++		self.isgroundingline = False
++		self.isgia           = False
++		self.isdamageevolution = False
++		self.islevelset      = False
++		self.iscalving       = False
++		self.ishydrology     = False
++
++		#default output
++		self.requested_outputs=['default']
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not solution==TransientSolutionEnum():
++			return md
++
++		md = checkfield(md,'fieldname','transient.issmb','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.isthermal','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);
++		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','issmb','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','ismasstransport','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isstressbalance','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isthermal','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean')
++
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',TransientRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/pairoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/pairoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/pairoptions.py	(revision 19895)
+@@ -0,0 +1,174 @@
++from collections import OrderedDict
++from WriteData import WriteData
++
++class pairoptions(object):
++	"""
++	PAIROPTIONS class definition
++ 
++	   Usage:
++	      pairoptions=pairoptions();
++	      pairoptions=pairoptions('module',true,'solver',false);
++	"""
++
++	def __init__(self,**kwargs): # {{{
++		self.functionname = ''
++		self.list         = OrderedDict()
++
++		#get calling function name
++		import inspect
++		if len(inspect.stack()) > 1:
++			self.functionname=inspect.stack()[1][3]
++
++		#initialize list
++		if not len(kwargs):
++			pass    #Do nothing,
++		else:
++			self.buildlist(**kwargs)
++	# }}}
++	def __repr__(self):    # {{{
++		s="   functionname: '%s'\n" % self.functionname
++		if self.list:
++			s+="   list: (%ix%i)\n\n" % (len(self.list),2)
++			for item in list(self.list.items()):
++				if   isinstance(item[1],str):
++					s+="     field: %-10s value: '%s'\n" % (item[0],item[1])
++				elif isinstance(item[1],(bool,int,float)):
++					s+="     field: %-10s value: %g\n" % (item[0],item[1])
++				else:
++					s+="     field: %-10s value: %s\n" % (item[0],type(item[1]))
++		else:
++			s+="   list: empty\n"
++		return s
++	# }}}
++	def buildlist(self,**kwargs):    # {{{
++		"""BUILDLIST - build list of objects from input"""
++		# #check length of input
++		# if len(arg) % 2:
++		# 	raise TypeError('Invalid parameter/value pair arguments') 
++		# numoptions = len(arg)/2
++
++		# #go through arg and build list of objects
++		# for i in xrange(numoptions):
++		# 	if isinstance(arg[2*i],(str,unicode)):
++		# 		self.list[arg[2*i]] = arg[2*i+1];
++		# 	else:
++		# 		#option is not a string, ignore it
++		# 		print "WARNING: option number %d is not a string and will be ignored." % (i+1)
++
++		#go through arg and build list of objects
++		print(kwargs)
++		for name,value in kwargs.items():
++			self.list[name] = value
++		# }}}
++	def addfield(self,field,value):    # {{{
++		"""ADDFIELD - add a field to an options list"""
++		if isinstance(field,str):
++			if field in self.list:
++				print(("WARNING: field '%s' with value=%s exists and will be overwritten with value=%s." % (field,str(self.list[field]),str(value))))
++			self.list[field] = value
++	# }}}
++	def addfielddefault(self,field,value):    # {{{
++		"""ADDFIELDDEFAULT - add a field to an options list if it does not already exist"""
++		if isinstance(field,str):
++			if field not in self.list:
++				self.list[field] = value
++	# }}}
++	def AssignObjectFields(self,obj2):    # {{{
++		"""ASSIGNOBJECTFIELDS - assign object fields from options"""
++		for item in list(self.list.items()):
++			if item[0] in dir(obj2):
++				setattr(obj2,item[0],item[1])
++			else:
++				print(("WARNING: field '%s' is not a property of '%s'." % (item[0],type(obj2))))
++		return obj2
++	# }}}
++	def changefieldvalue(self,field,newvalue):    # {{{
++		"""CHANGEOPTIONVALUE - change the value of an option in an option list"""
++
++		self.list[field]=newvalue;
++	# }}}
++	def exist(self,field):    # {{{
++		"""EXIST - check if the option exist"""
++
++		#some argument checking: 
++		if field == None or field == '':
++			raise ValueError('exist error message: bad usage');
++		if not isinstance(field,str):
++			raise TypeError("exist error message: field '%s' should be a string." % str(field));
++
++		#Recover option
++		if field in self.list:
++			return True
++		else:
++			return False
++	# }}}
++	def getfieldvalue(self,field,default=None):    # {{{
++		"""
++		GETOPTION - get the value of an option
++	
++		Usage:
++		   value=options.getfieldvalue(field,default)
++	 
++		Find an option value from a field. A default option
++		can be given in input if the field does not exist
++	 
++		Examples:
++		   value=options.getfieldvalue(options,'caxis')
++		   value=options.getfieldvalue(options,'caxis',[0 2])
++		"""
++
++		#some argument checking: 
++		if field == None or field == '':
++			raise ValueError('getfieldvalue error message: bad usage');
++		if not isinstance(field,str):
++			raise TypeError("getfieldvalue error message: field '%s' should be a string." % str(field));
++
++		#Recover option
++		if field in self.list:
++			value=self.list[field]
++		else:
++			if not default == None:
++				value=default
++			else:
++				raise KeyError("error message: field '%s' has not been provided by user (and no default value has been specified)." % field)
++
++		return value
++	# }}}
++	def removefield(self,field,warn):    # {{{
++		"""
++		REMOVEFIELD - delete a field in an option list
++	 
++		Usage:
++		   obj=removefield(self,field,warn)
++	 
++		if warn==1 display an info message to warn user that
++		some of his options have been removed.
++		"""
++
++		#check if field exist
++		if field in self.list:
++
++			#remove duplicates from the options list
++			del self.list[field]
++
++			#warn user if requested
++			if warn:
++				print(("removefield info: option '%s' has been removed from the list of options." % field))
++	# }}}
++	def marshall(self,md,fid,firstindex):    # {{{
++
++		for i,item in enumerate(self.list.items()):
++			name  = item[0]
++			value = item[1]
++
++			#Write option name
++			WriteData(fid,'enum',(firstindex-1)+2*i+1,'data',name,'format','String')
++
++			#Write option value
++			if   isinstance(value,str):
++				WriteData(fid,'enum',(firstindex-1)+2*i+2,'data',value,'format','String')
++			elif isinstance(value,(bool,int,float)):
++				WriteData(fid,'enum',(firstindex-1)+2*i+2,'data',value,'format','Double')
++			else:
++				raise TypeError("Cannot marshall option '%s': format not supported yet." % name)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/linearbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/linearbasalforcings.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/linearbasalforcings.py	(revision 19895)
+@@ -0,0 +1,108 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import numpy
++
++class linearbasalforcings(object):
++	"""
++	LINEAR BASAL FORCINGS class definition
++
++	   Usage:
++	      basalforcings=linearbasalforcings();
++	"""
++
++	def __init__(self,*args): # {{{
++
++		if not len(args):
++			print('empty init')
++			self.groundedice_melting_rate  = float('NaN')
++			self.deepwater_melting_rate    = 0.
++			self.deepwater_elevation       = 0.
++			self.upperwater_elevation      = 0.
++			self.geothermalflux            = float('NaN')
++
++			#set defaults
++			self.setdefaultparameters()
++		elif len(args)==1 and args[0].__module__=='basalforcings':
++			print('converting basalforings to linearbasalforcings')
++			inv=args[0]
++			self.groundedice_melting_rate  = inv.groundedice_melting_rate
++			self.geothermalflux            = inv.geothermalflux
++			self.deepwater_melting_rate    = 0.
++			self.deepwater_elevation       = 0.
++			self.upperwater_elevation      = 0.
++
++			#set defaults
++			self.setdefaultparameters()
++		else:
++			raise Exception('constructor not supported')
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   linear basal forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"deepwater_melting_rate","basal melting rate (positive if melting applied for floating ice whith base < deepwater_elevation) [m/yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"deepwater_elevation","elevation of ocean deepwater [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"upperwater_elevation","elevation of ocean upper water [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","geothermal heat flux [W/m^2]"))
++		return string
++		#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.groundedice_melting_rate)):
++			self.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no basalforcings.groundedice_melting_rate specified: values set as zero")
++
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		self.deepwater_melting_rate   = 50.0
++		self.deepwater_elevation      = -800.0
++		self.upperwater_elevation     = -400.0
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
++			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
++			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
++			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
++			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
++
++		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
++			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
++			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		floatingice_melting_rate = numpy.zeros((md.mesh.numberofvertices,1))
++		pos=numpy.nonzero(md.geometry.base<=md.basalforcings.deepwater_elevation)
++		floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate
++		pos=numpy.nonzero(numpy.logical_and(md.geometry.base>md.basalforcings.deepwater_elevation,md.geometry.base<md.basalforcings.upperwater_elevation))
++		floatingice_melting_rate[pos]=md.basalforcings.deepwater_melting_rate*(md.geometry.base[pos]-md.basalforcings.upperwater_elevation)/(md.basalforcings.deepwater_elevation-md.basalforcings.upperwater_elevation)
++
++		WriteData(fid,'enum',BasalforcingsEnum(),'data',LinearFloatingMeltRateEnum(),'format','Integer');
++		WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','enum',BasalforcingsGroundediceMeltingRateEnum(),'format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'data',floatingice_melting_rate,'enum',BasalforcingsFloatingiceMeltingRateEnum(),'format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','geothermalflux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','deepwater_melting_rate','enum',BasalforcingsDeepwaterMeltingRateEnum(),'format','Double','scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','deepwater_elevation','enum',BasalforcingsDeepwaterElevationEnum(),'format','Double')
++		WriteData(fid,'object',self,'fieldname','upperwater_elevation','enum',BasalforcingsUpperwaterElevationEnum(),'format','Double')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/outputdefinition.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/outputdefinition.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/outputdefinition.py	(revision 19895)
+@@ -0,0 +1,49 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++import numpy as npy
++
++class outputdefinition(object):
++	"""
++	OUTPUTDEFINITION class definition
++
++	   Usage:
++	      outputdefinition=outputdefinition();
++	"""
++
++	def __init__(self): # {{{
++		self.definitions                   = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   Outputdefinitions:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"definitions","list of potential outputs that can be requested, but which need additional data to be defined"))
++
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++		#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		
++		md = checkfield(md,'fieldname','outputdefinition.definitions','cell',1)
++		for definition in self.definitions:
++			definition.checkconsistency(md,solution,analyses);
++
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		
++		enums=npy.zeros(len(self.definitions),)
++		
++		for i in range(len(self.definitions)):
++			self.definitions[i].marshall(md,fid);
++			classdefinition=self.definitions[i].__class__.__name__
++			classdefinition=classdefinition[0].upper()+classdefinition[1:]
++			enums[i]=StringToEnum(classdefinition)[0]
++		
++		enums=npy.unique(enums);
++		
++		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBpdd.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBpdd.py	(revision 19895)
+@@ -0,0 +1,194 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBpdd(object):
++	"""
++	SMBpdd Class definition
++
++	   Usage:
++	      SMBpdd=SMBpdd();
++	"""
++
++	def __init__(self): # {{{
++		self.precipitation             = float('NaN')
++		self.monthlytemperatures       = float('NaN')
++		self.desfac                    = 0.
++		self.s0p                       = float('NaN')
++		self.s0t                       = float('NaN')
++		self.rlaps                     = 0.
++		self.rlapslgm                  = 0.
++		self.Pfac                      = float('NaN')
++		self.Tdiff                     = float('NaN')
++		self.sealev                    = float('NaN')
++		self.isdelta18o                = 0
++		self.ismungsm                  = 0
++		self.delta18o                  = float('NaN')
++		self.delta18o_surface          = float('NaN')
++		self.temperatures_presentday   = float('NaN')
++		self.temperatures_lgm          = float('NaN')
++		self.precipitations_presentday = float('NaN')
++		self.precipitations_lgm        = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'ismungsm','is temperature and precipitation mungsm parametrisation activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'s0t','should be set to elevation from temperature source (between 0 and a few 1000s m, default is 0) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'rlaps','present day lapse rate [degree/km]'))
++		string="%s\n%s"%(string,fielddisplay(self,'rlapslgm','LGM lapse rate [degree/km]'))
++		if not (self.isdelta18o and self.ismungsm):
++			string="%s\n%s"%(string,fielddisplay(self,'monthlytemperatures',['monthly surface temperatures [K], required if pdd is activated and delta18o not activated']))
++			string="%s\n%s"%(string,fielddisplay(self,'precipitation',['monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o or mungsm not activated']))
++			if self.isdelta18o:
++				string="%s\n%s"%(string,fielddisplay(self,'delta18o','delta18o [per mil], required if pdd is activated and delta18o activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated'))
++			if self.ismungsm:
++				string="%s\n%s"%(string,fielddisplay(self,'temperatures_presentday','monthly present day surface temperatures [K], required if delta18o/mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'temperatures_lgm','monthly LGM surface temperatures [K], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'precipitations_lgm','monthly surface precipitation [m/yr water eq], required if delta18o or mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'Pfac','time interpolation parameter for precipitation, 1D(year), required if mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'Tdiff','time interpolation parameter for temperature, 1D(year), required if mungsm is activated'))
++				string="%s\n%s"%(string,fielddisplay(self,'sealev','sea level [m], 1D(year), required if mungsm is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++				
++		return string
++	# }}}
++	def extrude(self,md): # {{{
++
++		if not (self.isdelta18o and self.ismungsm):
++			self.precipitation=project3d(md,'vector',self.precipitation,'type','node')
++			self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node')
++		if self.isdelta18o: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node')
++		if self.isdelta18o: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
++		if self.isdelta18o: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
++		if self.isdelta18o: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node')
++		if self.ismungsm: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node')
++		if self.ismungsm: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node')
++		if self.ismungsm: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node')
++		if self.ismungsm: self.precipitations_lgm=project3d(md,'vector',self.precipitations_lgm,'type','node')
++		self.s0p=project3d(md,'vector',self.s0p,'type','node')
++		self.s0t=project3d(md,'vector',self.s0t,'type','node')
++
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.s0p)):
++			self.s0p=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMBpdd.s0p specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.s0t)):
++			self.s0t=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMBpdd.s0t specified: values set as zero")
++
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#pdd method not used in default mode
++		self.isdelta18o = 0
++		self.ismungsm   = 0
++		self.desfac     = 0.5
++		self.rlaps      = 6.5 
++		self.rlapslgm   = 6.5
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
++			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
++
++			if (self.isdelta18o==0 and self.ismungsm==0):
++				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)
++			elif self.isdelta18o:
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++			elif self.ismungsm:
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++		return md
++	#}}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBpddEnum(),'format','Integer')
++
++		WriteData(fid,'object',self,'class','smb','fieldname','isdelta18o','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','ismungsm','format','Boolean')
++		WriteData(fid,'object',self,'class','smb','fieldname','desfac','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','s0p','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','s0t','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','smb','fieldname','rlaps','format','Double')
++		WriteData(fid,'object',self,'class','smb','fieldname','rlapslgm','format','Double')
++
++		if (self.isdelta18o==0 and self.ismungsm==0):
++			WriteData(fid,'object',self,'class','smb','fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		elif self.isdelta18o:
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o_surface','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','delta18o','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)			
++		elif self.ismungsm:
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_presentday','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','temperatures_lgm','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_presentday','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','precipitations_lgm','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'class','smb','fieldname','Pfac','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','Tdiff','format','DoubleMat','mattype',1,'timeserieslength',2)
++			WriteData(fid,'object',self,'class','smb','fieldname','sealev','format','DoubleMat','mattype',1,'timeserieslength',2)
++			
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/bamggeom.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/bamggeom.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/bamggeom.py	(revision 19895)
+@@ -0,0 +1,45 @@
++import numpy
++
++class bamggeom(object):
++	"""
++	BAMGGEOM class definition
++
++	   Usage:
++	      bamggeom(varargin)
++	"""
++
++	def __init__(self,*args):    # {{{
++		self.Vertices=numpy.empty((0,3))
++		self.Edges=numpy.empty((0,3))
++		self.TangentAtEdges=numpy.empty((0,4))
++		self.Corners=numpy.empty((0,1))
++		self.RequiredVertices=numpy.empty((0,1))
++		self.RequiredEdges=numpy.empty((0,1))
++		self.CrackedEdges=numpy.empty((0,0))
++		self.SubDomains=numpy.empty((0,4))
++
++		if not len(args):
++			# if no input arguments, create a default object
++			pass
++
++		elif len(args) == 1:
++			object=args[0]
++			for field in list(object.keys()):
++				if field in vars(self):
++					setattr(self,field,object[field])
++
++		else:
++			raise TypeError("bamggeom constructor error message: unknown type of constructor call")
++	# }}}
++	def __repr__(self):    # {{{
++		s ="class '%s' object '%s' = \n" % (type(self),'self')
++		s+="    Vertices: %s\n" % str(self.Vertices)
++		s+="    Edges: %s\n" % str(self.Edges)
++		s+="    TangentAtEdges: %s\n" % str(self.TangentAtEdges)
++		s+="    Corners: %s\n" % str(self.Corners)
++		s+="    RequiredVertices: %s\n" % str(self.RequiredVertices)
++		s+="    RequiredEdges: %s\n" % str(self.RequiredEdges)
++		s+="    CrackedEdges: %s\n" % str(self.CrackedEdges)
++		s+="    SubDomains: %s\n" % str(self.SubDomains)
++		return s
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/damage.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/damage.py	(revision 19895)
+@@ -0,0 +1,173 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class damage(object):
++	"""
++	DAMAGE class definition
++
++	   Usage:
++	      damage=damage()
++	"""
++
++	def __init__(self,*args):    # {{{
++			
++		#damage: 
++		self.isdamage           = 0.
++		self.D			= float('NaN')
++		self.law		= float('NaN')
++		self.spcdamage		= float('NaN')
++		self.max_damage		= float('NaN')
++		
++		#numerical
++		self.stabilization	= float('NaN')
++		self.maxiter		= float('NaN')
++		self.elementinterp      = ''
++
++		#general parameters for evolution law: 
++		self.stress_threshold   = float('NaN')
++		self.kappa              = float('NaN')
++		self.c1                 = float('NaN')
++		self.c2                 = float('NaN')
++		self.c3                 = float('NaN')
++		self.c4                 = float('NaN')
++		self.healing		= float('NaN')
++		self.equiv_stress       = float('NaN')
++		self.requested_outputs  = []
++
++		if not len(args):
++			self.setdefaultparameters()
++		else:
++			raise RuntimeError("constructor not supported")
++
++	# }}}
++	def __repr__(self):    # {{{
++		s ='   Damage:\n'
++		
++		s+="%s\n" % fielddisplay(self,"isdamage","is damage mechanics being used? [0 (default) or 1]")
++		if self.isdamage:
++			s+="%s\n" % fielddisplay(self,"D","damage tensor (scalar for now)")
++			s+="%s\n" % fielddisplay(self,"law","damage law ['0: analytical','1: pralong']")
++			s+="%s\n" % fielddisplay(self,"spcdamage","damage constraints (NaN means no constraint)")
++			s+="%s\n" % fielddisplay(self,"max_damage","maximum possible damage (0<=max_damage<1)")
++			s+="%s\n" % fielddisplay(self,"stabilization","0: no, 1: artificial_diffusivity, 2: SUPG (not working), 4: Flux corrected transport")
++			s+="%s\n" % fielddisplay(self,"maxiter","maximum number of non linear iterations")
++			s+="%s\n" %	fielddisplay(self,"elementinterp","interpolation scheme for finite elements [''P1'',''P2'']")
++			s+="%s\n" % fielddisplay(self,"stress_threshold","stress threshold for damage initiation [Pa]")
++			s+="%s\n" % fielddisplay(self,"kappa","ductility parameter for stress softening and damage [>1]")
++			s+="%s\n" % fielddisplay(self,"c1","damage parameter 1 ")
++			s+="%s\n" % fielddisplay(self,"c2","damage parameter 2 ")
++			s+="%s\n" % fielddisplay(self,"c3","damage parameter 3 ")
++			s+="%s\n" % fielddisplay(self,"c4","damage parameter 4 ")
++			s+="%s\n" % fielddisplay(self,"healing","damage healing parameter")
++			s+="%s\n" % fielddisplay(self,"equiv_stress","0: von Mises, 1: max principal")
++			s+="%s\n" % fielddisplay(self,'requested_outputs','additional outputs requested')
++
++		return s
++	# }}}
++	def extrude(self,md): # {{{
++		self.D=project3d(md,'vector',self.D,'type','node')
++		self.spcdamage=project3d(md,'vector',self.spcdamage,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self):    # {{{
++
++		#damage parameters: 
++		self.isdamage=0
++		self.D=0
++		self.law=0
++
++		self.max_damage=1-1e-5 #if damage reaches 1, solve becomes singular, as viscosity becomes nil
++		
++		#Type of stabilization used
++		self.stabilization=4
++			
++		#Maximum number of iterations
++		self.maxiter=100
++
++		#finite element interpolation
++		self.elementinterp='P1'
++
++		#damage evolution parameters 
++		self.stress_threshold=1.3e5
++		self.kappa=2.8
++		self.c1=0
++		self.c2=0
++		self.c3=0
++		self.c4=0
++		self.healing=0
++		self.equiv_stress=0
++
++		#output default:
++		self.requested_outputs=['default']
++
++		return self
++	# }}}
++	def defaultoutputs(self,md): # {{{
++		
++		if md.mesh.domaintype().lower()=='2dhorizontal':
++			list = ['DamageDbar']
++		else:
++			list = ['DamageD']
++		return list
++
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','damage.isdamage','numel',[1],'values',[0,1])
++		if self.isdamage:
++			md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
++			md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3])
++			md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1)
++			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4])
++			md = checkfield(md,'fieldname','damage.maxiter','>=0',0)
++			md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2'])
++			md = checkfield(md,'fieldname','damage.stress_threshold','>=',0)
++			md = checkfield(md,'fieldname','damage.kappa','>',1)
++			md = checkfield(md,'fieldname','damage.healing','>=',0)
++			md = checkfield(md,'fieldname','damage.c1','>=',0)
++			md = checkfield(md,'fieldname','damage.c2','>=',0)
++			md = checkfield(md,'fieldname','damage.c3','>=',0)
++			md = checkfield(md,'fieldname','damage.c4','>=',0)
++			md = checkfield(md,'fieldname','damage.healing','>=',0)
++			md = checkfield(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1])
++			md = checkfield(md,'fieldname','damage.requested_outputs','stringrow',1)
++		elif self.law != 0:
++			if (solution==DamageEvolutionSolutionEnum):
++				raise RuntimeError('Invalid evolution law (md.damage.law) for a damage solution')
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		WriteData(fid,'object',self,'fieldname','isdamage','format','Boolean')
++		if self.isdamage:
++			WriteData(fid,'object',self,'fieldname','D','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'fieldname','law','format','Integer')
++			WriteData(fid,'object',self,'fieldname','spcdamage','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'fieldname','max_damage','format','Double')
++			WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
++			WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
++			WriteData(fid,'enum',DamageElementinterpEnum(),'data',StringToEnum(self.elementinterp)[0],'format','Integer')
++			WriteData(fid,'object',self,'fieldname','stress_threshold','format','Double')
++			WriteData(fid,'object',self,'fieldname','kappa','format','Double')
++			WriteData(fid,'object',self,'fieldname','c1','format','Double')
++			WriteData(fid,'object',self,'fieldname','c2','format','Double')
++			WriteData(fid,'object',self,'fieldname','c3','format','Double')
++			WriteData(fid,'object',self,'fieldname','c4','format','Double')
++			WriteData(fid,'object',self,'fieldname','healing','format','Double')
++			WriteData(fid,'object',self,'fieldname','equiv_stress','format','Integer')
++			
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',DamageEvolutionRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/taoinversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/taoinversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/taoinversion.py	(revision 19895)
+@@ -0,0 +1,200 @@
++import numpy
++from project3d import project3d
++from WriteData import WriteData
++from checkfield import checkfield
++from fielddisplay import fielddisplay
++from IssmConfig import IssmConfig
++from EnumDefinitions import *
++from marshallcostfunctions import marshallcostfunctions
++
++
++class taoinversion:
++	def __init__(self):
++		iscontrol                   = 0
++		incomplete_adjoint          = 0
++		control_parameters          = float('NaN')
++		maxsteps                    = 0
++		maxiter                     = 0
++		fatol                       = 0
++		frtol                       = 0
++		gatol                       = 0
++		grtol                       = 0
++		gttol                       = 0
++		algorithm                   = ''
++		cost_functions              = float('NaN')
++		cost_functions_coefficients = float('NaN')
++		min_parameters              = float('NaN')
++		max_parameters              = float('NaN')
++		vx_obs                      = float('NaN')
++		vy_obs                      = float('NaN')
++		vz_obs                      = float('NaN')
++		vel_obs                     = float('NaN')
++		thickness_obs               = float('NaN')
++		surface_obs                 = float('NaN')
++
++	def __repr__(self):
++		string = '   taoinversion parameters:'
++		string = "%s\n\%s"%(string, fieldstring(self,'iscontrol','is inversion activated?'))
++		string="%s\n%s"%(string,fieldstring(self,'mantle_viscosity','mantle viscosity constraints (NaN means no constraint) (Pa s)'))
++		string="%s\n%s"%(string,fieldstring(self,'lithosphere_thickness','lithosphere thickness constraints (NaN means no constraint) (m)'))
++		string="%s\n%s"%(string,fieldstring(self,'cross_section_shape',"1: square-edged, 2: elliptical-edged surface"))
++		string="%s\n%s"%(string,fieldstring(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity'))
++		string="%s\n%s"%(string,fieldstring(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}'))
++		string="%s\n%s"%(string,fieldstring(self,'maxsteps','maximum number of iterations (gradient computation)'))
++		string="%s\n%s"%(string,fieldstring(self,'maxiter','maximum number of Function evaluation (forward run)'))
++		string="%s\n%s"%(string,fieldstring(self,'fatol','convergence criterion: f(X)-f(X*) (X: current iteration, X*: "true" solution, f: cost function)'))
++		string="%s\n%s"%(string,fieldstring(self,'frtol','convergence criterion: |f(X)-f(X*)|/|f(X*)|'))
++		string="%s\n%s"%(string,fieldstring(self,'gatol','convergence criterion: ||g(X)|| (g: gradient of the cost function)'))
++		string="%s\n%s"%(string,fieldstring(self,'grtol','convergence criterion: ||g(X)||/|f(X)|'))
++		string="%s\n%s"%(string,fieldstring(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
++		string="%s\n%s"%(string,fieldstring(self,'algorithm','minimization algorithm: ''tao_blmvm'', ''tao_cg'', ''tao_lmvm'''))
++		string="%s\n%s"%(string,fieldstring(self,'cost_functions','indicate the type of response for each optimization step'))
++		string="%s\n%s"%(string,fieldstring(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string="%s\n%s"%(string,fieldstring(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fieldstring(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fieldstring(self,'vx_obs','observed velocity x component [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'vy_obs','observed velocity y component [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string="%s\n%s"%(string,fieldstring(self,'thickness_obs','observed thickness [m]'))
++		string="%s\n%s"%(string,fieldstring(self,'surface_obs','observed surface elevation [m]'))
++		string="%s\n%s"%(string,'Available cost functions:')
++		string="%s\n%s"%(string, '   101: SurfaceAbsVelMisfit')
++		string="%s\n%s"%(string, '   102: SurfaceRelVelMisfit')
++		string="%s\n%s"%(string, '   103: SurfaceLogVelMisfit')
++		string="%s\n%s"%(string, '   104: SurfaceLogVxVyMisfit')
++		string="%s\n%s"%(string, '   105: SurfaceAverageVelMisfit')
++		string="%s\n%s"%(string, '   201: ThicknessAbsMisfit')
++		string="%s\n%s"%(string, '   501: DragCoefficientAbsGradient')
++		string="%s\n%s"%(string, '   502: RheologyBbarAbsGradient')
++		string="%s\n%s"%(string, '   503: ThicknessAbsGradient')
++		return string
++	def setdefaultparameters(self):
++
++		#default is incomplete adjoint for now
++		self.incomplete_adjoint=1
++
++		#parameter to be inferred by control methods (only
++		#drag and B are supported yet)
++		self.control_parameters=['FrictionCoefficient']
++
++		#number of iterations and steps
++		self.maxsteps=20;
++		self.maxiter =30;
++
++		#default tolerances
++		self.fatol = 0;
++		self.frtol = 0;
++		self.gatol = 0;
++		self.grtol = 0;
++		self.gttol = 1e-4;
++
++		#minimization algorithm
++		PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')
++		PETSCMINOR = IssmConfig('_PETSC_MINOR_')
++		if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)):
++			self.algorithm = 'blmvm';
++		else:
++			self.algorithm = 'tao_blmvm';
++		
++		#several responses can be used:
++		self.cost_functions=101;
++
++		return self
++
++	def extrude(self,md):
++		self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node')
++		self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node')
++		self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node')
++		self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node')
++
++		if numel(self.cost_functions_coefficients) > 1:
++			self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')
++		
++		if numel(self.min_parameters) > 1:
++			self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node')
++		
++		if numel(self.max_parameters)>1:
++			self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node')
++
++		return self
++
++	def checkconsistency(self,md,solution,analyses):
++		if not self.control:
++			return md
++		if not IssmConfig('_HAVE_TAO_'):
++			md = checkmessage(md,['TAO has not been installed, ISSM needs to be reconfigured and recompiled with TAO'])
++
++
++		num_controls= numpy.numel(md.inversion.control_parameters)
++		num_costfunc= numpy.size(md.inversion.cost_functions,2)
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
++		md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.fatol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.frtol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.gatol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.grtol','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>=',0)
++
++
++		PETSCMAJOR = IssmConfig('_PETSC_MAJOR_')
++		PETSCMINOR = IssmConfig('_PETSC_MINOR_')
++		if(PETSCMAJOR>3 or (PETSCMAJOR==3 and PETSCMINOR>=5)):
++			md = checkfield(md,'fieldname','inversion.algorithm','values',{'blmvm','cg','lmvm'})
++		else:
++			md = checkfield(md,'fieldname','inversion.algorithm','values',{'tao_blmvm','tao_cg','tao_lmvm'})
++
++
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values',supportedcostfunctions())
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])
++
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++		elif solution==BalancethicknessSoftSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++
++		def marshall(self, md, fid):
++
++			yts=365.0*24.0*3600.0;
++			WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean')
++			WriteData(fid,'enum',InversionTypeEnum(),'data',1,'format','Integer')
++			if not self.iscontrol:
++				return
++			WriteData(fid,'object',self,'class','inversion','fieldname','incomplete_adjoint','format','Boolean')
++			WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer')
++			WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer')
++			WriteData(fid,'object',self,'class','inversion','fieldname','fatol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','frtol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','gatol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','grtol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double')
++			WriteData(fid,'object',self,'class','inversion','fieldname','algorithm','format','String')
++			WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3)
++			WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++			WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',1)
++
++			#process control parameters
++			num_control_parameters = numpy.numel(self.control_parameters)
++			data = numpy.array([StringToEnum(self.control_parameter[0]) for control_parameter in self.control_parameters]).reshape(1,-1)
++			WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3)
++			WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer')
++
++			#process cost functions
++			num_cost_functions = numpy.size(self.cost_functions,2)
++			data= marshallcostfunctions(self.cost_functions)
++			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
++			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
+
+Property changes on: ../trunk-jpl/src/py3/classes/taoinversion.py
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/py3/classes/masstransport.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/masstransport.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/masstransport.py	(revision 19895)
+@@ -0,0 +1,102 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class masstransport(object):
++	"""
++	MASSTRANSPORT class definition
++
++	   Usage:
++	      masstransport=masstransport();
++	"""
++
++	def __init__(self): # {{{
++		self.spcthickness           = float('NaN')
++		self.isfreesurface          = 0
++		self.min_thickness          = 0.
++		self.hydrostatic_adjustment = 0
++		self.stabilization          = 0
++		self.vertex_pairing         = float('NaN')
++		self.penalty_factor         = 0
++		self.requested_outputs      = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   Masstransport solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'spcthickness','thickness constraints (NaN means no constraint) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'isfreesurface','do we use free surfaces (FS only) are mass conservation'))
++		string="%s\n%s"%(string,fielddisplay(self,'min_thickness','minimum ice thickness allowed [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'hydrostatic_adjustment','adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' '))
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin, 4: Flux Correction Transport'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spcthickness=project3d(md,'vector',self.spcthickness,'type','node')
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++
++		return ['Thickness','Surface','Base']
++
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin
++		self.stabilization=1
++
++		#Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor
++		self.penalty_factor=3
++
++		#Minimum ice thickness that can be used
++		self.min_thickness=1
++
++		#Hydrostatic adjustment
++		self.hydrostatic_adjustment='Absolute'
++
++		#default output
++		self.requested_outputs=['default']
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (MasstransportAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
++			return md
++
++		md = checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1)
++		md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1])
++		md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])
++		md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4])
++		md = checkfield(md,'fieldname','masstransport.min_thickness','>',0)
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.*24.*3600.
++
++		WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','isfreesurface','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','min_thickness','format','Double')
++		WriteData(fid,'data',StringToEnum(self.hydrostatic_adjustment)[0],'format','Integer','enum',MasstransportHydrostaticAdjustmentEnum())
++		WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
++		WriteData(fid,'object',self,'fieldname','vertex_pairing','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
++
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',MasstransportRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/frictionweertman.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/frictionweertman.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/frictionweertman.py	(revision 19895)
+@@ -0,0 +1,48 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class frictionweertman(object):
++	"""
++	FRICTIONWEERTMAN class definition
++
++	   Usage:
++	      frictionweertman=frictionweertman();
++	"""
++
++	def __init__(self): # {{{
++		self.C = float('NaN')
++		self.m = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="Weertman sliding law parameters: Sigma_b = C^(-1/m) * |u_b|^(1/m-1) * u_b"
++
++		string="%s\n%s"%(string,fielddisplay(self,"C","friction coefficient [SI]"))
++		string="%s\n%s"%(string,fielddisplay(self,"m","m exponent"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
++			return md
++
++		md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1)
++		md = checkfield(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',FrictionLawEnum(),'data',2,'format','Integer')
++		WriteData(fid,'class','friction','object',self,'fieldname','C','format','DoubleMat','mattype',1)
++		WriteData(fid,'class','friction','object',self,'fieldname','m','format','DoubleMat','mattype',2)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/mesh3dprisms.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mesh3dprisms.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/mesh3dprisms.py	(revision 19895)
+@@ -0,0 +1,152 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import *
++import MatlabFuncs as m
++from WriteData import WriteData
++
++class mesh3dprisms(object):
++	"""
++	MESH3DPRISMS class definition
++
++	   Usage:
++	      mesh3d=mesh3dprisms();
++	"""
++
++	def __init__(self): # {{{
++		self.x                           = float('NaN');
++		self.y                           = float('NaN');
++		self.z                           = float('NaN');
++		self.elements                    = float('NaN');
++		self.numberoflayers              = 0;
++		self.numberofelements            = 0;
++		self.numberofvertices            = 0;
++		
++		self.lat                         = float('NaN');
++		self.long                        = float('NaN');
++		self.epsg                        = 0;
++
++		self.vertexonbase                = float('NaN');
++		self.vertexonsurface             = float('NaN');
++		self.lowerelements               = float('NaN');
++		self.lowervertex                 = float('NaN');
++		self.upperelements               = float('NaN');
++		self.uppervertex                 = float('NaN');
++		self.vertexonboundary            = float('NaN');
++
++		self.vertexconnectivity          = float('NaN');
++		self.elementconnectivity         = float('NaN');
++		self.average_vertex_connectivity = 0;
++
++		self.x2d                         = float('NaN');
++		self.y2d                         = float('NaN');
++		self.elements2d                  = float('NaN');
++		self.numberofvertices2d          = 0;
++		self.numberofelements2d          = 0;
++
++		self.extractedvertices           = float('NaN');
++		self.extractedelements           = float('NaN');
++
++		#set defaults
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++		string="   3D prism Mesh:" 
++
++		string="%s\n%s"%(string,"\n      Elements and vertices of the original 2d mesh3dprisms:")
++		
++		string="%s\n%s"%(string,fielddisplay(self,"numberofelements2d","number of elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"numberofvertices2d","number of vertices"))
++		string="%s\n%s"%(string,fielddisplay(self,"elements2d","vertex indices of the mesh3dprisms elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"x2d","vertices x coordinate [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"y2d","vertices y coordinate [m]"))
++
++		string="%s\n%s"%(string,"\n\n      Elements and vertices of the extruded 3d mesh3dprisms:")
++		string="%s\n%s"%(string,fielddisplay(self,"numberofelements","number of elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"numberofvertices","number of vertices"))
++		string="%s\n%s"%(string,fielddisplay(self,"elements","vertex indices of the mesh3dprisms elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"x","vertices x coordinate [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"y","vertices y coordinate [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"z","vertices z coordinate [m]"))
++
++		string="%s%s"%(string,"\n\n      Properties:")
++		string="%s\n%s"%(string,fielddisplay(self,"numberoflayers","number of extrusion layers"))
++		string="%s\n%s"%(string,fielddisplay(self,"vertexonbase","lower vertices flags list"))
++		string="%s\n%s"%(string,fielddisplay(self,"vertexonsurface","upper vertices flags list"))
++		string="%s\n%s"%(string,fielddisplay(self,"uppervertex","upper vertex list (-1 for vertex on the upper surface)"))
++		string="%s\n%s"%(string,fielddisplay(self,"upperelements","upper element list (-1 for element on the upper layer)"))
++		string="%s\n%s"%(string,fielddisplay(self,"lowervertex","lower vertex list (-1 for vertex on the lower surface)"))
++		string="%s\n%s"%(string,fielddisplay(self,"lowerelements","lower element list (-1 for element on the lower layer)"))
++		string="%s\n%s"%(string,fielddisplay(self,"vertexonboundary","vertices on the boundary of the domain flag list"))
++		string="%s\n%s"%(string,fielddisplay(self,"vertexconnectivity","list of vertices connected to vertex_i"))
++		string="%s\n%s"%(string,fielddisplay(self,"elementconnectivity","list of vertices connected to element_i"))
++		string="%s\n%s"%(string,fielddisplay(self,"average_vertex_connectivity","average number of vertices connected to one vertex"))
++
++		string="%s%s"%(string,"\n\n      Extracted model:")
++		string="%s\n%s"%(string,fielddisplay(self,"extractedvertices","vertices extracted from the model"))
++		string="%s\n%s"%(string,fielddisplay(self,"extractedelements","elements extracted from the model"))
++
++		string="%s%s"%(string,"\n\n      Projection:")
++		string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]"))
++		string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]"))
++		string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#the connectivity is the averaged number of nodes linked to a
++		#given node through an edge. This connectivity is used to initially
++		#allocate memory to the stiffness matrix. A value of 16 seems to
++		#give a good memory/time ration. This value can be checked in
++		#trunk/test/Miscellaneous/runme.m
++		self.average_vertex_connectivity=25
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6])
++		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
++			md.checkmessage("orphan nodes have been found. Check the mesh3dprisms outline")
++		md = checkfield(md,'fieldname','mesh.numberoflayers','>=',0)
++		md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
++		md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
++		md = checkfield(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1])
++		md = checkfield(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])
++		md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")
++
++		return md
++	# }}}
++	def domaintype(self): # {{{
++		return "3D"
++	#}}}
++	def dimension(self): # {{{
++		return 3
++	#}}}
++	def elementtype(self): # {{{
++		return "Penta"
++	#}}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum("Domain"+self.domaintype())[0],'format','Integer');
++		WriteData(fid,'enum',DomainDimensionEnum(),'data',self.dimension(),'format','Integer');
++		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(self.elementtype())[0],'format','Integer');
++		WriteData(fid,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','z','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberoflayers','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','vertexonbase','format','BooleanMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','vertexonsurface','format','BooleanMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','lowerelements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'class','mesh','fieldname','upperelements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','elements2d','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices2d','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements2d','format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/adinversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/adinversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/adinversion.py	(revision 19895)
+@@ -0,0 +1,202 @@
++"""
++== == == == == == == == == == == == == == == == == == ==
++Auto generated python script for ISSM:   /home/andrei/issm/trunk-jpl/src/m/classes/adinversion.m
++Created on 2015-05-15 via translateToPy.py Ver 1.0 by andrei
++== == == == == == == == == == == == == == == == == == ==
++
++Matlab script conversion into python
++translateToPy.py Author: Michael Pellegrin
++translateToPy.py Date: 09/24/12
++== == == == == == == == == == == == == == == == == == ==
++"""
++
++from MatlabFuncs import *
++
++from EnumDefinitions import *
++from numpy import *
++
++# ADINVERSION class definition
++
++# 
++
++#    Usage:
++
++#       adinversion=adinversion();
++
++
++
++class adinversion:
++	def __init__(self): 
++		iscontrol                   = 0
++		control_parameters          = float('Nan')
++		control_scaling_factors     = float('Nan')
++		maxsteps                    = 0
++		maxiter                     = 0
++		dxmin                       = 0
++		gttol                       = 0
++		cost_functions              = float('Nan')
++		cost_functions_coefficients = float('Nan')
++		min_parameters              = float('Nan')
++		max_parameters              = float('Nan')
++		vx_obs                      = float('Nan')
++		vy_obs                      = float('Nan')
++		vz_obs                      = float('Nan')
++		vel_obs                     = float('Nan')
++		thickness_obs               = float('Nan')
++		surface_obs                 = float('Nan')
++
++	def setdefaultparameters(self):
++
++		self.control_parameters=['FrictionCoefficient']
++
++
++# 		Scaling factor for each control
++		self.control_scaling_factors=1
++
++# 		number of iterations
++		self.maxsteps=20
++		self.maxiter=40
++
++#		several responses can be used:
++		self.cost_functions=['FrictionCoefficient']
++
++# 		m1qn3 parameters
++		self.dxmin  = 0.1
++		self.gttol = 1e-4
++
++		return self
++	
++	def checkconsistency(self, md, solution, analyses): 
++
++# 			Early return
++		if not self.iscontrol:
++			return
++
++		if not IssmConfig('_HAVE_M1QN3_'):
++			md = checkmessage(md,['M1QN3 has not been installed, ISSM needs to be reconfigured and recompiled with AD'])
++
++
++		num_controls=numpy.numel(md.inversion.control_parameters)
++		num_costfunc=numpy.size(md.inversion.cost_functions,2)
++
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0, 1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',\
++			['BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar',\
++			'Vx' 'Vy' 'Thickness' 'BalancethicknessOmega' 'BalancethicknessApparentMassbalance'])
++		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1, num_controls],'>',0,float('Nan'),1)
++		md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0)
++		md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0)
++		md = checkfield(md,'fieldname','inversion.gttol','numel',1,'>',0)
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values', [i for i in range(101,106)]+[201]+[i for i in range(501,507)]+[i for i in range(601,605)]+[i for i in range(1001, 1011)])
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])
++
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++			md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices, 1], float('Nan'),1)
++		elif solution==BalancethicknessSoftSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++			if not numpy.strcmp(domaintype(md.mesh),'2Dvertical'):
++				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)
++		return md
++
++	def __repr__(self):
++		string = '   adinversion parameters:'
++		string ="%s\n\%s"%(string, fielddisplay(self,'iscontrol','is inversion activated?'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'control_parameters','ex: [''FrictionCoefficient''], or [''MaterialsRheologyBbar'']'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'control_scaling_factors','order of magnitude of each control (useful for multi-parameter optimization)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'maxsteps','maximum number of iterations (gradient computation)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'maxiter','maximum number of Function evaluation (forward run)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'dxmin','convergence criterion: two points less than dxmin from eachother (sup-norm) are considered identical'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'gttol','convergence criterion: ||g(X)||/||g(X0)|| (g(X0): gradient at initial guess X0)'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'cost_functions','indicate the type of response for each optimization step'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vx_obs','observed velocity x component [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vy_obs','observed velocity y component [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'thickness_obs','observed thickness [m]'))
++		string ="%s\n\%s"%(string, fielddisplay(self,'surface_obs','observed surface elevation [m]'))
++		string ="%s\n%s"%(string,'Available cost functions:');
++		string ="%s\n%s"%(string,'   101: SurfaceAbsVelMisfit');
++		string ="%s\n%s"%(string,'   102: SurfaceRelVelMisfit');
++		string ="%s\n%s"%(string,'   103: SurfaceLogVelMisfit');
++		string ="%s\n%s"%(string,'   104: SurfaceLogVxVyMisfit');
++		string ="%s\n%s"%(string,'   105: SurfaceAverageVelMisfit');
++		string ="%s\n%s"%(string,'   201: ThicknessAbsMisfit');
++		string ="%s\n%s"%(string,'   501: DragCoefficientAbsGradient');
++		string ="%s\n%s"%(string,'   502: RheologyBbarAbsGradient');
++		string ="%s\n%s"%(string,'   503: ThicknessAbsGradient');
++		
++		return string
++
++	def marshall(self):
++
++		yts=365.0*24.0*3600.0;
++
++		WriteData(fid,'object',self,'class','inversion','fieldname','iscontrol','format','Boolean');
++		WriteData(fid,'enum',InversionTypeEnum(),'data',4,'format','Integer');
++		if not self.iscontrol:
++			return
++		WriteData(fid,'object',self,'class','inversion','fieldname','control_scaling_factors','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxsteps','format','Integer');
++		WriteData(fid,'object',self,'class','inversion','fieldname','maxiter','format','Integer');
++		WriteData(fid,'object',self,'class','inversion','fieldname','dxmin','format','Double');
++		WriteData(fid,'object',self,'class','inversion','fieldname','gttol','format','Double');
++		WriteData(fid,'object',self,'class','inversion','fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','inversion','fieldname','min_parameters','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','max_parameters','format','DoubleMat','mattype',3);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		WriteData(fid,'object',self,'class','inversion','fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts);
++		if(numel(self.thickness_obs)==md.mesh.numberofelements):
++			mattype=2;
++		else:
++			mattype=1;
++		
++		WriteData(fid,'object',self,'class','inversion','fieldname','thickness_obs','format','DoubleMat','mattype',mattype);
++		WriteData(fid,'object',self,'class','inversion','fieldname','surface_obs','format','DoubleMat','mattype',mattype);
++
++		#process control parameters
++		num_control_parameters = numpy.numel(self.control_parameters);
++		data = numpy.array([StringToEnum(self.control_parameter[0]) for control_parameter in self.control_parameters]).reshape(1,-1)
++
++		WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3);
++		WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer');
++
++		#process cost functions
++		num_cost_functions=numpy.size(self.cost_functions,2);
++		data=copy.deepcopy(self.cost_functions)
++		data[numpy.nonzero(self.cost_functions==101)] =SurfaceAbsVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==102)]=SurfaceRelVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==103)]=SurfaceLogVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==104)]=SurfaceLogVxVyMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==105)]=SurfaceAverageVelMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==201)]=ThicknessAbsMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==501)]=DragCoefficientAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==502)]=RheologyBbarAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==503)]=ThicknessAbsGradientEnum();
++		data[numpy.nonzero(self.cost_functions==504)]=ThicknessAlongGradientEnum();
++		data[numpy.nonzero(self.cost_functions==505)]=ThicknessAcrossGradientEnum();
++		data[numpy.nonzero(self.cost_functions==506)]=BalancethicknessMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==601)]=SurfaceAbsMisfitEnum();
++		data[numpy.nonzero(self.cost_functions==1001)]=Outputdefinition1Enum();
++		data[numpy.nonzero(self.cost_functions==1002)]=Outputdefinition2Enum();
++		data[numpy.nonzero(self.cost_functions==1003)]=Outputdefinition3Enum();
++		data[numpy.nonzero(self.cost_functions==1004)]=Outputdefinition4Enum();
++		data[numpy.nonzero(self.cost_functions==1005)]=Outputdefinition5Enum();
++		data[numpy.nonzero(self.cost_functions==1006)]=Outputdefinition6Enum();
++		data[numpy.nonzero(self.cost_functions==1007)]=Outputdefinition7Enum();
++		data[numpy.nonzero(self.cost_functions==1008)]=Outputdefinition8Enum();
++		data[numpy.nonzero(self.cost_functions==1009)]=Outputdefinition8Enum();
++		data[numpy.nonzero(self.cost_functions==1010)]=Outputdefinition10Enum();
++		WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
++		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
++		
+Index: ../trunk-jpl/src/py3/classes/SMBgradients.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBgradients.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBgradients.py	(revision 19895)
+@@ -0,0 +1,77 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from project3d import project3d
++
++class SMBgradients(object):
++	"""
++	SMBgradients Class definition
++
++	   Usage:
++	      SMBgradients=SMBgradients();
++	"""
++
++	def __init__(self): # {{{
++		self.href    = float('NaN')
++		self.smbref  = float('NaN')
++		self.b_pos   = float('NaN')
++		self.b_neg   = float('NaN')
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)'))
++		string="%s\n%s"%(string,fielddisplay(self,'href',' reference elevation from which deviation is used to calculate SMB adjustment in smb gradients method'))
++		string="%s\n%s"%(string,fielddisplay(self,'smbref',' reference smb from which deviation is calculated in smb gradients method'))
++		string="%s\n%s"%(string,fielddisplay(self,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		#Nothing for now
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		#Nothing for now
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)
++
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBgradientsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','href','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calving.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/calving.py	(revision 19895)
+@@ -0,0 +1,71 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class calving(object):
++	"""
++	CALVING class definition
++
++	   Usage:
++	      calving=calving();
++	"""
++
++	def __init__(self): # {{{
++
++		self.stabilization = 0
++		self.spclevelset   = float('NaN')
++		self.calvingrate   = float('NaN')
++		self.meltingrate   = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   Calving parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
++		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
++		string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
++		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
++		self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
++		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#stabilization = 2 by default
++		self.stabilization = 2
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
++			return md
++
++		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
++		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1);
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.*24.*3600.
++
++		WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
++		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
++		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBcomponents.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBcomponents.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBcomponents.py	(revision 19895)
+@@ -0,0 +1,96 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import *
++from project3d import *
++from WriteData import *
++
++class SMBcomponents(object):
++	"""
++	SMBcomponents Class definition
++
++	   Usage:
++	      SMBcomponents=SMBcomponents();
++	"""
++
++	def __init__(self): # {{{
++		self.accumulation = float('NaN')
++		self.runoff = float('NaN')
++		self.evaporation = float('NaN')
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters (SMB=accumulation-runoff-evaporation) :"
++		string="%s\n%s"%(string,fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'runoff','amount of ice melt lost from the ice column [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		self.mass_balance=project3d(md,'vector',self.accumulation,'type','node');
++		self.mass_balance=project3d(md,'vector',self.runoff,'type','node');
++		self.mass_balance=project3d(md,'vector',self.evaporation,'type','node');
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.accumulation)):
++			self.accumulation=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.accumulation specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.runoff)):
++			self.runoff=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.runoff specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.evaporation)):
++			self.evaporation=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.evaporation specified: values set as zero")
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++		
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBcomponentsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','runoff','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/rifts.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/rifts.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/rifts.py	(revision 19895)
+@@ -0,0 +1,84 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++from isnans import isnans
++import MatlabFuncs as m
++
++class rifts(object):
++	"""
++	RIFTS class definition
++
++	   Usage:
++	      rifts=rifts();
++	"""
++
++	def __init__(self): # {{{
++		self.riftstruct     = []
++		self.riftproperties = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   rifts parameters:'
++
++		string="%s\n%s"%(string,fielddisplay(self,'riftstruct','structure containing all rift information (vertices coordinates, segments, type of melange, ...)'))
++		string="%s\n%s"%(string,fielddisplay(self,'riftproperties',''))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		if (not self.riftstruct) or numpy.any(isnans(self.riftstruct)):
++			numrifts=0
++		else:
++			numrifts=len(self.riftstruct)
++
++		if numrifts:
++			if not m.strcmp(md.mesh.domaintype(),'2Dhorizontal'):
++				md.checkmessage("models with rifts are only supported in 2d for now!")
++			if not isinstance(self.riftstruct,list):
++				md.checkmessage("rifts.riftstruct should be a structure!")
++			if numpy.any(md.mesh.segmentmarkers>=2):
++				#We have segments with rift markers, but no rift structure!
++				md.checkmessage("model should be processed for rifts (run meshprocessrifts)!")
++			for i,rift in enumerate(self.riftstruct):
++				md = checkfield(md,'fieldname',"rifts.riftstruct[%d]['fill']" % i,'values',[WaterEnum(),AirEnum(),IceEnum(),MelangeEnum()])
++		else:
++			if self.riftstruct and numpy.any(numpy.logical_not(isnans(self.riftstruct))):
++				md.checkmessage("riftstruct should be NaN since numrifts is 0!")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		#Process rift info
++		if (not self.riftstruct) or numpy.any(isnans(self.riftstruct)):
++			numrifts=0
++		else:
++			numrifts=len(self.riftstruct)
++
++		numpairs=0
++		for rift in self.riftstruct:
++			numpairs+=numpy.size(rift['penaltypairs'],axis=0)
++
++		# 2 for nodes + 2 for elements+ 2 for  normals + 1 for length + 1 for fill + 1 for friction + 1 for fraction + 1 for fractionincrement + 1 for state.
++		data=numpy.zeros((numpairs,12))
++		count=0
++		for rift in self.riftstruct:
++			numpairsforthisrift=numpy.size(rift['penaltypairs'],0)
++			data[count:count+numpairsforthisrift,0:7]=rift['penaltypairs']
++			data[count:count+numpairsforthisrift,7]=rift['fill']
++			data[count:count+numpairsforthisrift,8]=rift['friction']
++			data[count:count+numpairsforthisrift,9]=rift['fraction']
++			data[count:count+numpairsforthisrift,10]=rift['fractionincrement']
++			data[count:count+numpairsforthisrift,11]=rift['state'].reshape(-1)
++			count+=numpairsforthisrift
++
++		WriteData(fid,'data',numrifts,'enum',RiftsNumriftsEnum(),'format','Integer')
++		WriteData(fid,'data',data,'enum',RiftsRiftstructEnum(),'format','DoubleMat','mattype',3)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/flaim.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/flaim.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/flaim.py	(revision 19895)
+@@ -0,0 +1,72 @@
++import numpy
++from collections import OrderedDict
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class flaim(object):
++	"""
++	FLAIM class definition
++
++	   Usage:
++	      flaim=flaim();
++	"""
++
++	def __init__(self): # {{{
++		self.targets            = ''
++		self.tracks             = ''
++		self.flightreqs         = OrderedDict()
++		self.criterion          = float('NaN')
++		self.gridsatequator     = 200000
++		self.usevalueordering   = True
++		self.split_antimeridian = True
++		self.solution           = ''
++		self.quality            = 0
++		self.path_optimize      = False
++		self.opt_ndir           = 1
++		self.opt_dist           = 25
++		self.opt_niter          = 30000
++		#}}}
++	def __repr__(self): # {{{
++		string='   FLAIM - Flight Line Adaptation using Ice sheet Modeling:'
++
++		string="%s\n\n%s"%(string,'      Input:')
++		string="%s\n%s"%(string,fielddisplay(self,'targets'            ,'name of kml output targets file '))
++		string="%s\n%s"%(string,fielddisplay(self,'tracks'             ,'name of kml input tracks file '))
++		string="%s\n%s"%(string,fielddisplay(self,'flightreqs'         ,'structure of kml flight requirements (not used yet)'))
++		string="%s\n%s"%(string,fielddisplay(self,'criterion'          ,'element or nodal criterion for flight path evaluation (metric)'))
++
++		string="%s\n\n%s"%(string,'      Arguments:')
++		string="%s\n%s"%(string,fielddisplay(self,'gridsatequator'     ,'number of grids at equator (determines resolution)'))
++		string="%s\n%s"%(string,fielddisplay(self,'usevalueordering'   ,'flag to consider target values for flight path evaluation'))
++		string="%s\n%s"%(string,fielddisplay(self,'split_antimeridian' ,'flag to split polygons on the antimeridian'))
++		
++		string="%s\n\n%s"%(string,'      Optimization:')
++		string="%s\n%s"%(string,fielddisplay(self,'path_optimize'     ,'optimize? (default false)'))
++		string="%s\n%s"%(string,fielddisplay(self,'opt_ndir'     ,['number of directions to test when moving a point.  If this value = 1, a random direction is tested.',\
++										  'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.',\
++										  'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].']))
++		string="%s\n%s"%(string,fielddisplay(self,'opt_dist'     ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration'))
++		string="%s\n%s"%(string,fielddisplay(self,'opt_niter'     ,['number of iterations (default 30,000) to run for flightplan optimization',\
++										   'i.e. the number of times to randomly select a point and move it.']))
++
++		string="%s\n\n%s"%(string,'      Output:')
++		string="%s\n%s"%(string,fielddisplay(self,'solution'           ,'name of kml solution file'))
++		string="%s\n%s"%(string,fielddisplay(self,'quality'            ,'quality of kml solution'))
++		return string
++		#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not solution==FlaimSolutionEnum():
++			return md
++
++		md = checkfield(md,'fieldname','flaim.tracks','file',1)
++		if numpy.any(numpy.isnan(md.flaim.criterion)) or not md.flaim.criterion:
++			md = checkfield(md,'fieldname','flaim.targets','file',1)
++		else:
++			md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])
++
++		return md
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 19895)
+@@ -0,0 +1,208 @@
++import numpy
++import sys
++import copy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class stressbalance(object):
++	"""
++	STRESSBALANCE class definition
++
++	   Usage:
++	      stressbalance=stressbalance();
++	"""
++
++	def __init__(self): # {{{
++		self.spcvx                    = float('NaN')
++		self.spcvy                    = float('NaN')
++		self.spcvz                    = float('NaN')
++		self.restol                   = 0
++		self.reltol                   = 0
++		self.abstol                   = 0
++		self.isnewton                 = 0
++		self.FSreconditioning     = 0
++		self.viscosity_overshoot      = 0
++		self.icefront                 = float('NaN')
++		self.maxiter                  = 0
++		self.shelf_dampening          = 0
++		self.vertex_pairing           = float('NaN')
++		self.penalty_factor           = float('NaN')
++		self.rift_penalty_lock        = float('NaN')
++		self.rift_penalty_threshold   = 0
++		self.referential              = float('NaN')
++		self.loadingforce             = float('NaN')
++		self.requested_outputs        = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		
++		string='   StressBalance solution parameters:'
++		string="%s\n%s"%(string,'      Convergence criteria:')
++		string="%s\n%s"%(string,fielddisplay(self,'restol','mechanical equilibrium residual convergence criterion'))
++		string="%s\n%s"%(string,fielddisplay(self,'reltol','velocity relative convergence criterion, NaN: not applied'))
++		string="%s\n%s"%(string,fielddisplay(self,'abstol','velocity absolute convergence criterion, NaN: not applied'))
++		string="%s\n%s"%(string,fielddisplay(self,'isnewton',"0: Picard's fixed point, 1: Newton's method, 2: hybrid"))
++		string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations'))
++		string="%s\n%s"%(string,fielddisplay(self,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)'))
++
++		string="%s\n%s"%(string,'\n      boundary conditions:')
++		string="%s\n%s"%(string,fielddisplay(self,'spcvx','x-axis velocity constraint (NaN means no constraint) [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'spcvy','y-axis velocity constraint (NaN means no constraint) [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'spcvz','z-axis velocity constraint (NaN means no constraint) [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'icefront','segments on ice front list (last column 0: Air, 1: Water, 2: Ice'))
++
++		string="%s\n%s"%(string,'\n      Rift options:')
++		string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_threshold','threshold for instability of mechanical constraints'))
++		string="%s\n%s"%(string,fielddisplay(self,'rift_penalty_lock','number of iterations before rift penalties are locked'))
++
++		string="%s\n%s"%(string,'\n      Penalty options:')
++		string="%s\n%s"%(string,fielddisplay(self,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset'))
++		string="%s\n%s"%(string,fielddisplay(self,'vertex_pairing','pairs of vertices that are penalized'))
++
++		string="%s\n%s"%(string,'\n      Other:')
++		string="%s\n%s"%(string,fielddisplay(self,'shelf_dampening','use dampening for floating ice ? Only for FS model'))
++		string="%s\n%s"%(string,fielddisplay(self,'FSreconditioning','multiplier for incompressibility equation. Only for FS model'))
++		string="%s\n%s"%(string,fielddisplay(self,'referential','local referential'))
++		string="%s\n%s"%(string,fielddisplay(self,'loadingforce','loading force applied on each point [N/m^3]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spcvx=project3d(md,'vector',self.spcvx,'type','node')
++		self.spcvy=project3d(md,'vector',self.spcvy,'type','node')
++		self.spcvz=project3d(md,'vector',self.spcvz,'type','node')
++		self.referential=project3d(md,'vector',self.referential,'type','node')
++		self.loadingforce=project3d(md,'vector',self.loadingforce,'type','node')
++
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		#maximum of non-linear iterations.
++		self.maxiter=100
++
++		#Convergence criterion: absolute, relative and residual
++		self.restol=10**-4
++		self.reltol=0.01
++		self.abstol=10
++
++		self.FSreconditioning=10**13
++		self.shelf_dampening=0
++
++		#Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor
++		self.penalty_factor=3
++
++		#coefficient to update the viscosity between each iteration of
++		#a stressbalance according to the following formula
++		#viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))
++		self.viscosity_overshoot=0
++
++		#Stop the iterations of rift if below a threshold
++		self.rift_penalty_threshold=0
++
++		#in some solutions, it might be needed to stop a run when only
++		#a few constraints remain unstable. For thermal computation, this
++		#parameter is often used.
++		self.rift_penalty_lock=10
++
++		#output default:
++		self.requested_outputs=['default']
++
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++
++		if md.mesh.dimension()==3:
++			list = ['Vx','Vy','Vz','Vel','Pressure']
++		else:
++			list = ['Vx','Vy','Vel','Pressure']
++		return list
++
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if StressbalanceAnalysisEnum() not in analyses:
++			return md
++
++		md = checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1)
++		if m.strcmp(md.mesh.domaintype(),'3D'):
++			md = checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0)
++		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
++		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
++		md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2])
++		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1)
++		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1)
++		md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1)
++		md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6])
++		md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
++		md = checkfield(md,'fieldname','stressbalance.requested_outputs','stringrow',1);
++
++		#singular solution
++#		if ~any((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy))==2),
++		if not numpy.any(numpy.logical_and(numpy.logical_not(numpy.isnan(md.stressbalance.spcvx)),numpy.logical_not(numpy.isnan(md.stressbalance.spcvy)))):
++			print("\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n")
++		#CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
++#		if any(sum(isnan(md.stressbalance.referential),2)~=0 & sum(isnan(md.stressbalance.referential),2)~=6),
++		if numpy.any(numpy.logical_and(numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)!=0,numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)!=6)):
++			md.checkmessage("Each line of stressbalance.referential should contain either only NaN values or no NaN values")
++		#CHECK THAT THE TWO VECTORS PROVIDED ARE ORTHOGONAL
++#		if any(sum(isnan(md.stressbalance.referential),2)==0),
++		if numpy.any(numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)==0):
++			pos=[i for i,item in enumerate(numpy.sum(numpy.isnan(md.stressbalance.referential),axis=1)) if item==0]
++#			numpy.inner (and numpy.dot) calculate all the dot product permutations, resulting in a full matrix multiply
++#			if numpy.any(numpy.abs(numpy.inner(md.stressbalance.referential[pos,0:2],md.stressbalance.referential[pos,3:5]).diagonal())>sys.float_info.epsilon):
++#				md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal")
++			for item in md.stressbalance.referential[pos,:]:
++				if numpy.abs(numpy.inner(item[0:2],item[3:5]))>sys.float_info.epsilon:
++					md.checkmessage("Vectors in stressbalance.referential (columns 1 to 3 and 4 to 6) must be orthogonal")
++		#CHECK THAT NO rotation specified for FS Grounded ice at base
++		if m.strcmp(md.mesh.domaintype(),'3D') and md.flowequation.isFS:
++			pos=numpy.nonzero(numpy.logical_and(md.mask.groundedice_levelset,md.mesh.vertexonbase))
++			if numpy.any(numpy.logical_not(numpy.isnan(md.stressbalance.referential[pos,:]))):
++				md.checkmessage("no referential should be specified for basal vertices of grounded ice")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','spcvx','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','spcvy','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','spcvz','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','restol','format','Double')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','reltol','format','Double')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','abstol','format','Double','scale',1./yts)
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','isnewton','format','Integer')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','FSreconditioning','format','Double')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','viscosity_overshoot','format','Double')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','maxiter','format','Integer')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','shelf_dampening','format','Integer')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','vertex_pairing','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','penalty_factor','format','Double')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer')
++		WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1)
++
++		WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
++		WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
++		WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum())
++
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',StressbalanceRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/plotoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/plotoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/plotoptions.py	(revision 19895)
+@@ -0,0 +1,116 @@
++from collections import OrderedDict, Counter, defaultdict
++import pairoptions
++
++class plotoptions(object):
++	'''
++	PLOTOPTIONS class definition
++
++		Usage:
++			plotoptions=plotoptions(**kwargs)
++	'''
++
++	def __init__(self,**kwargs):# {{{
++		self.numberofplots = 0
++		self.figurenumber  = 1
++		self.list          = OrderedDict()
++
++		self.buildlist(**kwargs)
++		#}}}
++	def __repr__(self): #{{{
++		s="\n"
++		s+="	numberofplots: %i\n" % self.numberofplots
++		s+="	figurenumber: %i\n"  % self.figurenumber
++		if self.list:
++			s+="	list: (%ix%i)\n" % (len(self.list),2)
++			for item in list(self.list.items()):
++				#s+="	options of plot number %i\n" % item
++				if   isinstance(item[1],str):
++					s+="	field: %-10s value: '%s'\n" % (item[0],item[1])
++				elif isinstance(item[1],(bool,int,float)):
++					s+="	field: %-10s value: '%g'\n" % (item[0],item[1])
++				else:
++					s+="	field: %-10s value: '%s'\n" % (item[0],item[1])
++		else:
++			s+="	list: empty\n"
++		return s
++	#}}}
++	def buildlist(self,**kwargs): #{{{
++
++		for name,value in kwargs.items():
++			self.rawlist[name] = value
++
++		#get figure number 
++		self.figurenumber=rawoptions.getfieldvalue('figure',1)
++		rawoptions.removefield('figure',0)
++
++		#get number of subplots 
++		numberofplots=Counter(x for sublist in rawlist for x in sublist if isinstance(x,str))['data']
++		self.numberofplots=numberofplots
++
++		#figure out whether alloptions flag is on
++		if rawoptions.getfieldvalue('alloptions','off') is 'on':
++			allflag=1
++		else:
++			allflag=0
++
++		#initialize self.list (will need a list of dict's (or nested dict) for numberofplots>1)
++		#self.list=defaultdict(dict)
++		for i in range(numberofplots):
++			self.list[i]=pairoptions.pairoptions()
++
++		#process plot options
++		for i in range(len(rawlist)):
++
++			#if alloptions flag is on, apply to all plots
++			if (allflag and 'data' not in rawlist[i][0] and '#' not in rawlist[i][0]):
++				
++				for j in range(numberofplots):
++					self.list[j].addfield(rawlist[i][0],rawlist[i][1])
++
++			elif '#' in rawlist[i][0]:
++
++				#get subplots associated
++				string=rawlist[i][0].split('#')
++				plotnums=string[-1].split(',')
++				field=string[0]
++
++				#loop over plotnums
++				for k in range(len(plotnums)):
++					plotnum=plotnums[k]
++
++					#Empty
++					if not plotnum: continue
++
++					# '#all'
++					elif 'all' in plotnum:
++						for j in range(numberofplots):
++							self.list[j].addfield(field,rawlist[i][1])
++
++					# '#i-j'
++					elif '-' in plotnum:
++						nums=plotnum.split('-')
++						if len(nums)!=2: continue
++						if False in [x.isdigit() for x in nums]:
++							raise ValueError('error: in option i-j both i and j must be integers')
++						for j in range(int(nums[0])-1,int(nums[1])):
++							self.list[j].addfield(field,rawlist[i][1])	
++
++					# Deal with #i
++					else:
++						#assign to subplot
++						if int(plotnum)>numberofplots:
++							raise ValueError('error: %s cannot be assigned %d which exceeds the number of subplots' % (field,plotnum))
++						self.list[int(plotnum)-1].addfield(field,rawlist[i][1])
++			else:
++				
++				#go through all subplots and assign key-value pairs
++				j=0
++				while j <= numberofplots-1:
++					if not self.list[j].exist(rawlist[i][0]):
++						self.list[j].addfield(rawlist[i][0],rawlist[i][1])
++						break
++					else:
++						j=j+1
++				if j+1>numberofplots:
++					print(("WARNING: too many instances of '%s' in options" % rawlist[i][0]))
++	#}}}
+Index: ../trunk-jpl/src/py3/classes/steadystate.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/steadystate.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/steadystate.py	(revision 19895)
+@@ -0,0 +1,75 @@
++import numpy
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class steadystate(object):
++	"""
++	STEADYSTATE class definition
++
++	   Usage:
++	      steadystate=steadystate();
++	"""
++
++	def __init__(self): # {{{
++		self.reltol            = 0
++		self.maxiter           = 0
++		self.requested_outputs = []
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   steadystate solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'reltol','relative tolerance criterion'))
++		string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of iterations'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional requested outputs'))
++		return string
++		#}}}
++	def defaultoutputs(self,md): # {{{
++
++		return md.stressbalance.defaultoutputs(md)+md.thermal.defaultoutputs(md)
++
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#maximum of steady state iterations
++		self.maxiter=100
++
++		#Relative tolerance for the steadystate convertgence
++		self.reltol=0.01
++
++		#default output
++		self.requested_outputs=['default']
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not solution==SteadystateSolutionEnum():
++			return md
++
++		if not md.timestepping.time_step==0:
++			md.checkmessage("for a steadystate computation, timestepping.time_step must be zero.")
++
++		if numpy.isnan(md.stressbalance.reltol):
++			md.checkmessage("for a steadystate computation, stressbalance.reltol (relative convergence criterion) must be defined!")
++
++		md = checkfield(md,'fieldname','steadystate.requested_outputs','stringrow',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','reltol','format','Double')
++		WriteData(fid,'object',self,'fieldname','maxiter','format','Integer')
++
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SteadystateRequestedOutputsEnum(),'format','StringArray')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/geometry.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/geometry.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/geometry.py	(revision 19895)
+@@ -0,0 +1,64 @@
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class geometry(object):
++	"""
++	GEOMETRY class definition
++
++	   Usage:
++	      geometry=geometry();
++	"""
++
++	def __init__(self): # {{{
++		self.surface           = float('NaN')
++		self.thickness         = float('NaN')
++		self.base               = float('NaN')
++		self.bed        = float('NaN')
++		self.hydrostatic_ratio = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++
++		string="   geometry parameters:"
++		string="%s\n%s"%(string,fielddisplay(self,'surface','ice upper surface elevation [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'thickness','ice thickness [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'base','ice base elevation [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'bed','bed elevation [m]'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.surface=project3d(md,'vector',self.surface,'type','node')
++		self.thickness=project3d(md,'vector',self.thickness,'type','node')
++		self.hydrostatic_ratio=project3d(md,'vector',self.hydrostatic_ratio,'type','node')
++		self.base=project3d(md,'vector',self.base,'type','node')
++		self.bed=project3d(md,'vector',self.bed,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
++		if any(abs(self.thickness-self.surface+self.base)>10**-9):
++			md.checkmessage("equality thickness=surface-base violated")
++		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
++			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'data',self.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum())
++		WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'data',self.base,'format','DoubleMat','mattype',1,'enum',BaseEnum())
++		WriteData(fid,'data',self.bed,'format','DoubleMat','mattype',1,'enum',BedEnum())
++		WriteData(fid,'object',self,'fieldname','hydrostatic_ratio','format','DoubleMat','mattype',1)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mismipbasalforcings.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/mismipbasalforcings.py	(revision 19895)
+@@ -0,0 +1,98 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import numpy
++
++class mismipbasalforcings(object):
++    """
++    MISMIP Basal Forcings class definition
++
++        Usage:
++	    mismipbasalforcings=mismipbasalforcings()
++    """
++
++    def __init__(self,md): # {{{
++
++        self.groundedice_melting_rate = float('NaN')
++        self.meltrate_factor = float('NaN')
++        self.threshold_thickness = float('NaN')
++        self.upperdepth_melt = float('NaN')
++        self.geothermalflux = float('NaN')
++
++        if numpy.all(numpy.isnan(self.groundedice_melting_rate)):
++            self.groundedice_melting_rate=numpy.zeros(md.mesh.numberofvertices)
++            print(' no basalforcings.groundedice_melting_rate specified: values set as zero')
++
++	self.setdefaultparameters()
++
++    #}}}
++    def __repr__(self): # {{{
++        string=" MISMIP+ basal melt parameterization\n"
++        string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
++        string="%s\n%s"%(string,fielddisplay(self,"meltrate_factor","Melt-rate rate factor [1/yr] (sign is opposite to MISMIP+ benchmark to remain consistent with ISSM convention of positive values for melting)"))
++        string="%s\n%s"%(string,fielddisplay(self,"threshold_thickness","Threshold thickness for saturation of basal melting [m]"))
++        string="%s\n%s"%(string,fielddisplay(self,"upperdepth_melt","Depth above which melt rate is zero [m]"))
++        string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","Geothermal heat flux [W/m^2]"))
++
++	return string
++    #}}}
++    def extrude(self,md): # {{{
++	self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
++	self.p=project3d(md,'vector',self.p,'type','element')
++	self.q=project3d(md,'vector',self.q,'type','element')
++	return self
++    #}}}
++    def setdefaultparameters(self): # {{{
++
++        # default values for melting parameterization
++        self.meltrate_factor = 0.2
++        self.threshold_thickness = 75.
++        self.upperdepth_melt = -100.
++
++	return self
++    #}}}
++    def checkconsistency(self,md,solution,analyses):    # {{{
++
++	#Early return
++        if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.ismasstransport==0):
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++
++        if BalancethicknessAnalysisEnum() in analyses:
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++
++        if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.isthermal==0):
++
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++	return md
++    # }}}
++    def marshall(self,md,fid):    # {{{
++
++        yts=md.constants.yts
++        if yts!=365.2422*24.*3600.:
++            print('WARNING: value of yts for MISMIP+ runs different from ISSM default!')
++
++        floatingice_melting_rate = numpy.zeros((md.mesh.numberofvertices,1))
++        floatingice_melting_rate = md.basalforcings.meltrate_factor*numpy.tanh((md.geometry.base-md.geometry.bed)/md.basalforcings.threshold_thickness)*numpy.amax(md.basalforcings.upperdepth_melt-md.geometry.base,0)
++
++	WriteData(fid,'enum',BasalforcingsEnum(),'data',MismipFloatingMeltRateEnum(),'format','Integer')
++	WriteData(fid,'data',floatingice_melting_rate,'format','DoubleMat','enum',BasalforcingsFloatingiceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','enum',BasalforcingsGroundediceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','geothermalflux','enum',BasalforcingsGeothermalfluxEnum(),'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++	WriteData(fid,'object',self,'fieldname','meltrate_factor','format','Double','enum',BasalforcingsMeltrateFactorEnum(),'scale',1./yts)
++	WriteData(fid,'object',self,'fieldname','threshold_thickness','format','Double','enum',BasalforcingsThresholdThicknessEnum())
++	WriteData(fid,'object',self,'fieldname','upperdepth_melt','format','Double','enum',BasalforcingsUpperdepthMeltEnum())
++
++    # }}}
+Index: ../trunk-jpl/src/py3/classes/independent.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/independent.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/independent.py	(revision 19895)
+@@ -0,0 +1,70 @@
++import numpy
++from pairoptions import pairoptions
++from fielddisplay import fielddisplay
++import MatlabFuncs as m
++from EnumDefinitions import *
++
++class independent(object):
++	"""
++	INDEPENDENT class definition
++
++	   Usage:
++	      independent=independent();
++	"""
++
++	def __init__(self,**kwargs):    # {{{
++		self.name                 = ''
++		self.type                 = ''
++		self.fos_forward_index    = float('NaN')
++		self.fov_forward_indices  = numpy.array([])
++		self.nods                 = 0
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#use provided options to change fields
++		options=pairoptions(**kwargs)
++
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++	# }}}
++	def __repr__(self):    # {{{
++		s ="   independent variable:\n"
++
++		s+="%s\n" % fielddisplay(self,'name',"variable name (must match corresponding Enum)")
++		s+="%s\n" % fielddisplay(self,'type',"type of variable ('vertex' or 'scalar')")
++		if not numpy.isnan(self.fos_forward_index):
++			s+="%s\n" % fielddisplay(self,'fos_forward_index',"index for fos_foward driver of ADOLC")
++		if numpy.any(numpy.logical_not(numpy.isnan(self.fov_forward_indices))):
++			s+="%s\n" % fielddisplay(self,'fov_forward_indices',"indices for fov_foward driver of ADOLC")
++
++		return s
++	# }}}
++	def setdefaultparameters(self):    # {{{
++		#do nothing
++		return self
++	# }}}
++	def checkconsistency(self,md,i,solution,analyses,driver):    # {{{
++		if not numpy.isnan(self.fos_forward_index):
++			if not strcmpi(driver,'fos_forward'):
++				raise TypeError("cannot declare an independent with a fos_forward_index when the driver is not fos_forward!")
++			if self.nods==0:
++				raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable")
++
++		if self.fov_forward_indices:
++			if not strcmpi(driver,'fov_forward'):
++				raise TypeError("cannot declare an independent with fov_forward_indices when the driver is not fov_forward!")
++			if self.nods==0:
++				raise TypeError("independent checkconsistency error: nods should be set to the size of the independent variable")
++			md = checkfield(md,'fieldname',"autodiff.independents[%d].fov_forward_indices" % i,'>=',1,'<=',self.nods,'size',[float('NaN'),1])
++
++		return md
++	# }}}
++	def typetoscalar(self):    # {{{
++		if   strcmpi(self.type,'scalar'):
++			scalar=0
++		elif strcmpi(self.type,'vertex'):
++			scalar=1
++
++		return scalar
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/hydrologyshreve.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/hydrologyshreve.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/hydrologyshreve.py	(revision 19895)
+@@ -0,0 +1,54 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class hydrologyshreve(object):
++	"""
++	HYDROLOGYSHREVE class definition
++
++	   Usage:
++	      hydrologyshreve=hydrologyshreve();
++	"""
++
++	def __init__(self): # {{{
++		self.spcwatercolumn = float('NaN')
++		self.stabilization  = 0
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		
++		string='   hydrologyshreve solution parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'spcwatercolumn','water thickness constraints (NaN means no constraint) [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#Type of stabilization to use 0:nothing 1:artificial_diffusivity
++		self.stabilization=1
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		
++		#Early return
++		if HydrologyShreveAnalysisEnum() not in analyses:
++			return md
++
++		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
++		WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','stabilization','format','Double')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/organizer.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/organizer.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/organizer.py	(revision 19895)
+@@ -0,0 +1,179 @@
++import os.path
++from collections import OrderedDict
++import pairoptions
++from loadvars import loadvars
++from loadmodel import loadmodel
++from savevars import savevars
++from model import model
++from dbm.ndbm import whichdb
++import MatlabFuncs as m
++
++class organizer(object):
++	"""
++	ORGANIZER class definition
++
++	   Supported options:
++	      repository: directory where all models will be saved
++	      prefix:     prefix for saved model names
++	      steps:      requested steps
++	      trunkprefix:prefix of previous run with a different prefix. Used to branch.
++
++	   Usage:
++	      org = organizer(varargin)
++
++	   Examples:
++	      org = organizer('repository','Models/','prefix','AGU2015','steps',0);  %build an empty organizer object with a given repository
++	"""
++
++	def __init__(self,**kwargs):    # {{{
++		self._currentstep  =0
++		self.repository    ='./'
++		self.prefix        ='model.'
++		self.trunkprefix   =''
++		self.steps         =[]
++		self.requestedsteps=[0]
++
++		#process options
++		options=pairoptions.pairoptions(**kwargs)
++
++		#Get prefix
++		prefix=options.getfieldvalue('prefix','model.')
++		if not isinstance(prefix,str):
++			raise TypeError("prefix is not a string")
++		if not m.strcmp(prefix,prefix.strip()) or len(prefix.split()) > 1:
++			raise TypeError("prefix should not have any white space")
++		self.prefix=prefix
++
++		#Get repository
++		repository=options.getfieldvalue('repository','./')
++		if not isinstance(repository,str):
++			raise TypeError("repository is not a string")
++		if not os.path.isdir(repository):
++			raise IOError("Directory '%s' not found" % repository)
++		self.repository=repository
++
++		#Get steps
++		self.requestedsteps=options.getfieldvalue('steps',[0])
++		
++		#Get trunk prefix (only if provided by user)
++		if options.exist('trunkprefix'):
++			trunkprefix=options.getfieldvalue('trunkprefix','')
++			if not isinstance(trunkprefix,str):
++				raise TypeError("trunkprefix is not a string")
++			if not m.strcmp(trunkprefix,trunkprefix.strip()) or len(trunkprefix.split()) > 1:
++				raise TypeError("trunkprefix should not have any white space")
++			self.trunkprefix=trunkprefix
++	#}}}
++	def __repr__(self):    # {{{
++		s =""
++
++		s+="%s\n" % "   Repository: '%s'" % self.repository
++		s+="%s\n" % "   Prefix:     '%s'" % self.prefix
++		if not self.steps:
++			s+="%s\n" % "   no step"
++		else:
++			for step in self.steps:
++				s+="%s\n" % "   step #%2i: '%s'",step['id'],step['string']
++	#}}}
++	def load(self,string):    # {{{
++
++		#Get model path
++		if not isinstance(string,str):
++			raise TypeError("argument provided is not a string")
++		path=os.path.join(self.repository,self.prefix+string)
++
++		#figure out if the model is there
++		if os.path.exists(path):
++			struc=loadvars(path)
++			name=name=[key for key in list(struc.keys())]
++			md=struc.name[0]
++		else:
++			raise IOError("Could not find '%s'" % path)
++
++		return md
++	#}}}
++	def loadmodel(self,string):    # {{{
++
++		#Get model path
++		if not isinstance(string,str):
++			raise TypeError("argument provided is not a string")
++		path1=os.path.join(self.repository,self.prefix+'.step#'+string+'.python')
++		path2=os.path.join(self.repository,string)
++
++		#figure out if the model is there, otherwise, we have to use the default path supplied by user.
++		if whichdb(path1):
++			md=loadmodel(path1)
++			return md
++                elif whichdb(path2):
++                        md=loadmodel(path2)
++                        return md
++
++		#If we are here, the model has not been found. Try trunk prefix if provided
++		if self.trunkprefix:
++			path2=os.path.join(self.repository,self.trunkprefix+string)
++			if not os.path.exists(path2):
++				raise IOError("Could find neither '%s' nor '%s'" % (path,path2))
++			else:
++				print(("--> Branching '%s' from trunk '%s'" % (self.prefix,self.trunkprefix)))
++				md=loadmodel(path2)
++				return md
++		else:
++			raise IOError("Could not find '%s'" % path1)
++	#}}}
++	def perform(self,string):    # {{{
++
++		bool=False
++
++		#Some checks
++		if not isinstance(string,str):
++			raise TypeError("Step provided should be a string")
++		if not m.strcmp(string,string.strip()) or len(string.split()) > 1:
++			raise TypeError("Step provided should not have any white space")
++		if self._currentstep>0 and string in [step['string'] for step in self.steps]:
++			raise RuntimeError("Step '%s' already present. Change name" % string) 
++
++		#Add step
++		self.steps.append(OrderedDict())
++		self.steps[-1]['id']=len(self.steps)
++		self.steps[-1]['string']=string
++		self._currentstep+=1
++
++		#if requestedsteps = 0, print all steps in self 
++		if 0 in self.requestedsteps:
++			if self._currentstep==1:
++				print(("   prefix: %s" % self.prefix))
++			print(("   step #%i : %s" % (self.steps[self._currentstep-1]['id'],self.steps[self._currentstep-1]['string'])))
++
++		#Ok, now if _currentstep is a member of steps, return true
++		if self._currentstep in self.requestedsteps:
++			print(("\n   step #%i : %s\n" % (self.steps[self._currentstep-1]['id'],self.steps[self._currentstep-1]['string'])))
++			bool=True
++
++		#assign self back to calling workspace
++		# (no need, since Python modifies class instance directly)
++
++		return bool
++	#}}}
++	def savemodel(self,md, name='default'):    # {{{
++
++		#check
++		if self._currentstep==0:
++			raise RuntimeError("Cannot save model because organizer (org) is empty! Make sure you did not skip any perform call")
++		if self._currentstep>len(self.steps):
++			raise RuntimeError("Cannot save model because organizer (org) is not up to date!")
++
++		if (name=='default'):
++			name=os.path.join(self.repository,self.prefix+'step#'+self.steps[self._currentstep-1]['string']+'.python')
++                else:
++                    name=os.path.join(self.repository,name)
++		print(("saving model as: '%s'" % name))
++
++		#check that md is a model
++		if not isinstance(md,model):
++			print("second argument is not a model")
++		if self._currentstep>len(self.steps):
++			raise RuntimeError("organizer error message: element with id %d not found" % self._currentstep)
++
++		#save model
++		savevars(name,'md',md)
++	#}}}
+Index: ../trunk-jpl/src/py3/classes/results.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/results.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/results.py	(revision 19895)
+@@ -0,0 +1,52 @@
++import numpy
++from fielddisplay import fielddisplay
++import MatlabFuncs as m
++from EnumDefinitions import *
++
++class results(object):
++	"""
++	RESULTS class definition
++
++	   Usage:
++	      results=results();
++	"""
++
++	def __init__(self):    # {{{
++		pass
++	# }}}
++	def __repr__(self):    # {{{
++		s ="   Model results:\n"
++
++		if 'step' in self.__dict__:
++			s+="%s\n" % fielddisplay(self,'step',"step number")
++		if 'time' in self.__dict__:
++			s+="%s\n" % fielddisplay(self,'time',"time value")
++		if 'SolutionType' in self.__dict__:
++			s+="%s\n" % fielddisplay(self,'SolutionType',"solution type")
++
++		for name in list(self.__dict__.keys()):
++			if name not in ['step','time','SolutionType','errlog','outlog']:
++				if   isinstance(getattr(self,name),list):
++					s+="%s\n" % fielddisplay(self,name,"model results list")
++				elif isinstance(getattr(self,name),results):
++					s+="%s\n" % fielddisplay(self,name,"model results case")
++				else:
++					s+="%s\n" % fielddisplay(self,name,"")
++
++		if 'errlog' in self.__dict__:
++			s+="%s\n" % fielddisplay(self,'errlog',"error log file")
++		if 'outlog' in self.__dict__:
++			s+="%s\n" % fielddisplay(self,'outlog',"output log file")
++
++		return s
++	# }}}
++	def setdefaultparameters(self):    # {{{
++		#do nothing
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		pass
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/matice.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/matice.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/matice.py	(revision 19895)
+@@ -0,0 +1,157 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class matice(object):
++	"""
++	MATICE class definition
++
++	   Usage:
++	      matice=matice();
++	"""
++
++	def __init__(self): # {{{
++		self.rho_ice                   = 0.
++		self.rho_water                 = 0.
++		self.rho_freshwater            = 0.
++		self.mu_water                  = 0.
++		self.heatcapacity              = 0.
++		self.latentheat                = 0.
++		self.thermalconductivity       = 0.
++		self.temperateiceconductivity  = 0.
++		self.meltingpoint              = 0.
++		self.beta                      = 0.
++		self.mixed_layer_capacity      = 0.
++		self.thermal_exchange_velocity = 0.
++		self.rheology_B                = float('NaN')
++		self.rheology_n                = float('NaN')
++		self.rheology_law              = ''
++
++		#gia: 
++		self.lithosphere_shear_modulus  = 0.
++		self.lithosphere_density        = 0.
++		self.mantle_shear_modulus       = 0.
++		self.mantle_density             = 0.
++
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++		string="   Materials:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"rho_ice","ice density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rho_water","water density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rho_freshwater","fresh water density [kg/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mu_water","water viscosity [N s/m^2]"))
++		string="%s\n%s"%(string,fielddisplay(self,"heatcapacity","heat capacity [J/kg/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
++		string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"beta","rate of change of melting point with pressure [K/Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mixed_layer_capacity","mixed layer capacity [W/kg/K]"))
++		string="%s\n%s"%(string,fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_n","Glen's flow law exponent"))
++		string="%s\n%s"%(string,fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Cuffey', 'Paterson', 'Arrhenius' or 'LliboutryDuval'"))
++		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]"))
++		string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]"))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node')
++		self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		#ice density (kg/m^3)
++		self.rho_ice=917.
++
++		#ocean water density (kg/m^3)
++		self.rho_water=1023.
++
++		#fresh water density (kg/m^3)
++		self.rho_freshwater=1000.
++
++		#water viscosity (N.s/m^2)
++		self.mu_water=0.001787  
++
++		#ice heat capacity cp (J/kg/K)
++		self.heatcapacity=2093.
++
++		#ice latent heat of fusion L (J/kg)
++		self.latentheat=3.34*10**5
++
++		#ice thermal conductivity (W/m/K)
++		self.thermalconductivity=2.4
++
++		#temperate ice thermal conductivity (W/m/K)
++		self.temperateiceconductivity=0.24
++
++		#the melting point of ice at 1 atmosphere of pressure in K
++		self.meltingpoint=273.15
++
++		#rate of change of melting point with pressure (K/Pa)
++		self.beta=9.8*10**-8
++
++		#mixed layer (ice-water interface) heat capacity (J/kg/K)
++		self.mixed_layer_capacity=3974.
++
++		#thermal exchange velocity (ice-water interface) (m/s)
++		self.thermal_exchange_velocity=1.00*10**-4
++
++		#Rheology law: what is the temperature dependence of B with T
++		#available: none, paterson and arrhenius
++		self.rheology_law='Paterson'
++
++		# GIA:
++		self.lithosphere_shear_modulus  = 6.7*10**10  # (Pa)
++		self.lithosphere_density        = 3.32        # (g/cm^-3)
++		self.mantle_shear_modulus       = 1.45*10**11 # (Pa)
++		self.mantle_density             = 3.34        # (g/cm^-3)
++
++		return self
++		#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		md = checkfield(md,'fieldname','materials.rho_ice','>',0)
++		md = checkfield(md,'fieldname','materials.rho_water','>',0)
++		md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)
++		md = checkfield(md,'fieldname','materials.mu_water','>',0)
++		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1)
++		md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])
++		md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',MaterialsEnum(),'data',MaticeEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_ice','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_water','enum',MaterialsRhoSeawaterEnum(),'format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rho_freshwater','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','mu_water','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','heatcapacity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','latentheat','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','beta','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','mixed_layer_capacity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double')
++		WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2)
++		WriteData(fid,'data',StringToEnum(self.rheology_law)[0],'enum',MaterialsRheologyLawEnum(),'format','Integer')
++
++		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double');
++		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.);
++		WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
++		WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.);
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/qmu.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/qmu.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/qmu.py	(revision 19895)
+@@ -0,0 +1,157 @@
++import numpy
++from project3d import project3d
++from collections import OrderedDict
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class qmu(object):
++	"""
++	QMU class definition
++
++	   Usage:
++	      qmu=qmu();
++	"""
++
++	def __init__(self): # {{{
++		self.isdakota                    = 0
++		self.variables                   = OrderedDict()
++		self.responses                   = OrderedDict()
++		self.method                      = OrderedDict()
++		self.params                      = OrderedDict()
++		self.results                     = OrderedDict()
++		self.partition                   = float('NaN')
++		self.numberofpartitions          = 0
++		self.numberofresponses           = 0
++		self.variabledescriptors         = []
++		self.responsedescriptors         = []
++		self.mass_flux_profile_directory = float('NaN')
++		self.mass_flux_profiles          = float('NaN')
++		self.mass_flux_segments          = []
++		self.adjacency                   = float('NaN')
++		self.vertex_weight               = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self):    # {{{
++		s ='   qmu parameters:\n'
++
++		s+="%s\n" % fielddisplay(self,'isdakota','is qmu analysis activated?')
++		for i,variable in enumerate(self.variables.items()):
++			s+="         variables%s:  (arrays of each variable class)\n" % \
++					string_dim(self.variables,i)
++			fnames=vars(variable)
++			maxlen=0
++			for fname in fnames:
++				maxlen=max(maxlen,len(fname))
++
++			for fname in fnames:
++				s+="'            %-*s:    [%ix%i]    '%s'\n" % \
++						(maxlen+1,fname,size(getattr(variable,fname)),type(getattr(variable,fname)))
++
++		for i,response in enumerate(self.responses.items()):
++			s+="         responses%s:  (arrays of each response class)\n" % \
++					string_dim(self.responses,i)
++			fnames=vars(response)
++			maxlen=0
++			for fname in fnames:
++				maxlen=max(maxlen,len(fname))
++
++			for fname in fnames:
++				s+="            %-*s:    [%ix%i]    '%s'\n" % \
++						(maxlen+1,fname,size(getattr(response,fname)),type(getattr(response,fname)))
++
++		s+="%s\n" % fielddisplay(self,'numberofresponses','number of responses') 
++
++		for i,method in enumerate(self.method.items()):
++			if isinstance(method,'dakota_method'):
++				s+="            method%s :    '%s'\n" % \
++						(string_dim(method,i),method.method)
++
++		for i,param in enumerate(self.params.items()):
++			s+="         params%s:  (array of method-independent parameters)\n" % \
++					string_dim(self.params,i)
++			fnames=vars(param)
++			maxlen=0
++			for fname in fnames:
++				maxlen=max(maxlen,len(fname))
++
++			for fname in fnames:
++				s+="            %-*s: %s\n" % \
++						(maxlen+1,fname,any2str(getattr(param,fname)))
++
++		for i,result in enumerate(self.results.items()):
++			s+="         results%s:  (information from dakota files)\n" % \
++					string_dim(self.results,i)
++			fnames=vars(result)
++			maxlen=0
++			for fname in fnames:
++				maxlen=max(maxlen,len(fname))
++
++			for fname in fnames:
++				s+="            %-*s:    [%ix%i]    '%s'\n" % \
++						(maxlen+1,fname,size(getattr(result,fname)),type(getattr(result,fname)))
++
++		s+="%s\n" % fielddisplay(self,'partition','user provided mesh partitioning, defaults to metis if not specified') 
++		s+="%s\n" % fielddisplay(self,'numberofpartitions','number of partitions for semi-discrete qmu') 
++		s+="%s\n" % fielddisplay(self,'variabledescriptors','')
++		s+="%s\n" % fielddisplay(self,'responsedescriptors','')
++		s+="%s\n" % fielddisplay(self,'method','array of dakota_method class')
++		s+="%s\n" % fielddisplay(self,'mass_flux_profile_directory','directory for mass flux profiles')
++		s+="%s\n" % fielddisplay(self,'mass_flux_profiles','list of mass_flux profiles')
++		s+="%s\n" % fielddisplay(self,'mass_flux_segments','')
++		s+="%s\n" % fielddisplay(self,'adjacency','')
++		s+="%s\n" % fielddisplay(self,'vertex_weight','weight applied to each mesh vertex')
++
++		return s
++	# }}}
++	def extrude(self,md): # {{{
++		self.partition=project3d(md,'vector',numpy.transpose(self.partition),'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not md.qmu.isdakota:
++			return
++
++		if not md.qmu.params.evaluation_concurrency==1:
++			md.checkmessage("concurrency should be set to 1 when running dakota in library mode")
++		if md.qmu.partition:
++			if not numpy.size(md.qmu.partition)==md.mesh.numberofvertices:
++				md.checkmessage("user supplied partition for qmu analysis should have size md.mesh.numberofvertices x 1")
++			if not min(md.qmu.partition)==0:
++				md.checkmessage("partition vector not indexed from 0 on")
++			if max(md.qmu.partition)>=md.qmu.numberofpartitions:
++				md.checkmessage("for qmu analysis, partitioning vector cannot go over npart, number of partition areas")
++
++		if not m.strcmpi(md.cluster.name,'none'):
++			if not md.settings.waitonlock:
++				md.checkmessage("waitonlock should be activated when running qmu in parallel mode!")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','isdakota','format','Boolean')
++		if not self.isdakota:
++			WriteData(fid,'data',False,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
++			return
++		WriteData(fid,'object',self,'fieldname','partition','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'fieldname','numberofpartitions','format','Integer')
++		WriteData(fid,'object',self,'fieldname','numberofresponses','format','Integer')
++		WriteData(fid,'object',self,'fieldname','variabledescriptors','format','StringArray')
++		WriteData(fid,'object',self,'fieldname','responsedescriptors','format','StringArray')
++		if not self.mass_flux_segments:
++			WriteData(fid,'data',self.mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
++			flag=True; 
++		else:
++			flag=False; 
++		WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/miscellaneous.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/miscellaneous.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/miscellaneous.py	(revision 19895)
+@@ -0,0 +1,41 @@
++from collections import OrderedDict
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class miscellaneous(object):
++	"""
++	MISCELLANEOUS class definition
++
++	   Usage:
++	      miscellaneous=miscellaneous();
++	"""
++
++	def __init__(self): # {{{
++		self.notes = ''
++		self.name  = ''
++		self.dummy = OrderedDict()
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   miscellaneous parameters:'
++
++		string="%s\n%s"%(string,fielddisplay(self,'notes','notes in a cell of strings'))
++		string="%s\n%s"%(string,fielddisplay(self,'name','model name'))
++		string="%s\n%s"%(string,fielddisplay(self,'dummy','empty field to store some data'))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		md = checkfield(md,'fieldname','miscellaneous.name','empty',1)
++		return md
++	# }}}
++	def marshall(self,md,fid):    #  {{{
++		WriteData(fid,'object',self,'fieldname','name','format','String')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/dependent.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/dependent.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/dependent.py	(revision 19895)
+@@ -0,0 +1,88 @@
++import os.path
++import numpy
++from pairoptions import pairoptions
++from fielddisplay import fielddisplay
++import MatlabFuncs as m
++from EnumDefinitions import *
++from MeshProfileIntersection import MeshProfileIntersection
++
++class dependent(object):
++	"""
++	DEPENDENT class definition
++
++	   Usage:
++	      dependent=dependent();
++	"""
++
++	def __init__(self,*args):    # {{{
++		self.name                 = ''
++		self.type                 = ''
++		self.fos_reverse_index    = float('NaN')
++		self.exp                  = ''
++		self.segments             = []
++		self.index                = -1
++		self.nods                 = 0
++
++		#set defaults 
++		self.setdefaultparameters()
++
++		#use provided options to change fields
++		options=pairoptions(**kwargs)
++
++		self.name=options.getfieldvalue('name','')
++		self.type=options.getfieldvalue('type','')
++		self.exp=options.getfieldvalue('exp','')
++		self.segments=options.getfieldvalue('segments',[])
++		self.index=options.getfieldvalue('index',-1)
++		self.nods=options.getfieldvalue('nods',0)
++
++		#if name is mass flux: 
++		if strcmpi(self.name,'MassFlux'):
++			#make sure that we supplied a file and that it exists! 
++			if not os.path.exists(self.exp):
++				raise IOError("dependent checkconsistency: specified 'exp' file does not exist!")
++			#process the file and retrieve segments
++			mesh=options.getfieldvalue('mesh')
++			self.segments=MeshProfileIntersection(mesh.elements,mesh.x,mesh.y,self.exp)
++	# }}}
++	def __repr__(self):    # {{{
++		s ="   dependent variable:\n"
++
++		s+="%s\n" % fielddisplay(self,'name',"variable name (must match corresponding Enum)")
++		s+="%s\n" % fielddisplay(self,'type',"type of variable ('vertex' or 'scalar')")
++
++		if not numpy.isnan(self.fos_reverse_index):
++			s+="%s\n" % fielddisplay(self,'fos_reverse_index',"index for fos_reverse driver of ADOLC")
++		if self.exp:
++			s+="%s\n" % fielddisplay(self,'exp',"file needed to compute dependent variable")
++			s+="%s\n" % fielddisplay(self,'segments',"mass flux segments")
++
++		return s
++	# }}}
++	def setdefaultparameters(self):    # {{{
++		#do nothing
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		if strcmpi(self.name,'MassFlux'):
++			if not self.segments:
++				raise RuntimeError("dependent checkconsistency error: need segments to compute this dependent response")
++			if self.index<0:
++				raise RuntimeError("dependent checkconsistency error: index for segments should be >=0")
++
++		if not numpy.isnan(self.fos_reverse_index):
++			if not strcmpi(driver,'fos_reverse'):
++				raise TypeError("cannot declare a dependent with a fos_reverse_index when the driver is not fos_reverse!")
++			if self.nods==0:
++				raise TypeError("dependent checkconsistency error: nods should be set to the size of the independent variable")
++
++		return md
++	# }}}
++	def typetoscalar(self):    # {{{
++		if   strcmpi(self.type,'scalar'):
++			scalar=0
++		elif strcmpi(self.type,'vertex'):
++			scalar=1
++
++		return scalar
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/timestepping.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/timestepping.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/timestepping.py	(revision 19895)
+@@ -0,0 +1,76 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class timestepping(object):
++	"""
++	TIMESTEPPING Class definition
++
++	   Usage:
++	      timestepping=timestepping();
++	"""
++
++	def __init__(self): # {{{
++		self.start_time      = 0.
++		self.final_time      = 0.
++		self.time_step       = 0.
++		self.time_adapt      = 0
++		self.cfl_coefficient = 0.
++		self.interp_forcings = 1
++		
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   timestepping parameters:"
++		string="%s\n%s"%(string,fielddisplay(self,"start_time","simulation starting time [yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"final_time","final time to stop the simulation [yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"time_step","length of time steps [yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"time_adapt","use cfl condition to define time step ? (0 or 1) "))
++		string="%s\n%s"%(string,fielddisplay(self,"cfl_coefficient","coefficient applied to cfl condition"))
++		string="%s\n%s"%(string,fielddisplay(self,"interp_forcings","interpolate in time between requested forcing values ? (0 or 1)"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#time between 2 time steps
++		self.time_step=1./2.
++
++		#final time
++		self.final_time=10.*self.time_step
++
++		#time adaptation? 
++		self.time_adapt=0
++		self.cfl_coefficient=0.5
++		
++		#should we interpolate forcings between timesteps?
++		self.interp_forcings=1
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1)
++		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1)
++		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1)
++		md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)
++		if self.final_time-self.start_time<0:
++			md.checkmessage("timestepping.final_time should be larger than timestepping.start_time")
++		md = checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=md.constants.yts
++		
++		WriteData(fid,'object',self,'fieldname','start_time','format','Double','scale',yts)
++		WriteData(fid,'object',self,'fieldname','final_time','format','Double','scale',yts)
++		WriteData(fid,'object',self,'fieldname','time_step','format','Double','scale',yts)
++		WriteData(fid,'object',self,'fieldname','time_adapt','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','cfl_coefficient','format','Double')
++		WriteData(fid,'object',self,'fieldname','interp_forcings','format','Boolean')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/toolkits.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/toolkits.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/toolkits.py	(revision 19895)
+@@ -0,0 +1,113 @@
++from IssmConfig import IssmConfig
++from mumpsoptions import mumpsoptions
++from iluasmoptions import iluasmoptions
++from EnumToString import EnumToString
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++
++class toolkits(object):
++	"""
++	TOOLKITS class definition
++
++	   Usage:
++	      self=toolkits();
++	"""
++
++	def __init__(self):    # {{{
++		#default toolkits
++		if IssmConfig('_HAVE_PETSC_')[0]:
++			#MUMPS is the default toolkits
++			if IssmConfig('_HAVE_MUMPS_')[0]:
++				self.DefaultAnalysis           = mumpsoptions()
++			else:
++				self.DefaultAnalysis           = iluasmoptions()
++		else:
++			if IssmConfig('_HAVE_MUMPS_')[0]:
++				self.DefaultAnalysis           = issmmumpssolver()
++			elif IssmConfig('_HAVE_GSL_')[0]:
++				self.DefaultAnalysis           = issmgslsolver()
++			else:
++				raise IOError("ToolkitsFile error: need at least Mumps or Gsl to define issm solver type")
++		#The other properties are dynamic
++	# }}}
++	def __repr__(self):    # {{{
++		print('enter repr')
++		s ="List of toolkits options per analysis:\n\n"
++		for analysis in list(vars(self).keys()):
++			s+="%s\n" % fielddisplay(self,analysis,'')
++
++		return s
++	# }}}
++	def addoptions(self,analysis,*args):    # {{{
++		print('enter addoption')
++		# Usage example:
++		#    md.toolkits=addoptions(md.toolkits,StressbalanceAnalysisEnum(),FSoptions());
++		#    md.toolkits=addoptions(md.toolkits,StressbalanceAnalysisEnum());
++
++		#Convert analysis from enum to string
++		[analysis]=EnumToString(analysis)
++
++		#Create dynamic property if property does not exist yet
++		if not hasattr(self,analysis):
++#			exec("self.%s = None" % analysis)
++			setattr(self,analysis,None)
++
++		#Add toolkits options to analysis
++		if len(args)==1:
++			setattr(self,analysis,args[0])
++
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		print('enter check')
++		for analysis in list(vars(self).keys()):
++			if not getattr(self,analysis):
++				md.checkmessage("md.toolkits.%s is empty" % analysis)
++
++		return md
++	# }}}
++	def ToolkitsFile(self,filename):    # {{{
++		"""
++		TOOLKITSFILE- build toolkits file
++
++		   Build a Petsc compatible options file, from the toolkits model field  + return options string
++		   This file will also be used when the toolkit used is 'issm' instead of 'petsc'
++
++
++		   Usage:     ToolkitsFile(toolkits,filename);
++		"""
++
++		#open file for writing
++		try:
++			fid=open(filename,'w')
++		except IOError as e:
++			raise IOError("ToolkitsFile error: could not open '%s' for writing." % filename)
++
++		#write header
++		fid.write("%s%s%s\n" % ('%Petsc options file: ',filename,' written from Matlab toolkits array'))
++
++		#start writing options
++		for analysis in list(vars(self).keys()):
++			options=getattr(self,analysis)
++
++			#first write analysis:
++			fid.write("\n+%s\n" % analysis)    #append a + to recognize it's an analysis enum
++
++			#now, write options
++			for optionname,optionvalue in list(options.items()):
++
++				if not optionvalue:
++					#this option has only one argument
++					fid.write("-%s\n" % optionname)
++				else:
++					#option with value. value can be string or scalar
++					if   isinstance(optionvalue,(bool,int,float)):
++						fid.write("-%s %g\n" % (optionname,optionvalue))
++					elif isinstance(optionvalue,str):
++						fid.write("-%s %s\n" % (optionname,optionvalue))
++					else:
++						raise TypeError("ToolkitsFile error: option '%s' is not well formatted." % optionname)
++
++		fid.close()
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py	(revision 19895)
+@@ -0,0 +1,108 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import *
++from project3d import *
++from WriteData import *
++
++class SMBmeltcomponents(object):
++	"""
++	SMBmeltcomponents Class definition
++
++	   Usage:
++	      SMBmeltcomponents=SMBmeltcomponents();
++	"""
++
++	def __init__(self): # {{{
++		self.accumulation = float('NaN')
++		self.runoff = float('NaN')
++		self.evaporation = float('NaN')
++		self.requested_outputs      = []
++		#}}}
++	def __repr__(self): # {{{
++		string="   surface forcings parameters with melt (SMB=accumulation-evaporation-melt+refreeze) :"
++		string="%s\n%s"%(string,fielddisplay(self,'accumulation','accumulated snow [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'evaporation','mount of ice lost to evaporative processes [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'melt','amount of ice melt in the ice column [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'refreeze','amount of ice melt refrozen in the ice column [m/yr ice eq]'))
++		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++
++		self.mass_balance=project3d(md,'vector',self.accumulation,'type','node');
++		self.mass_balance=project3d(md,'vector',self.evaporation,'type','node');
++		self.mass_balance=project3d(md,'vector',self.melt,'type','node');
++		self.mass_balance=project3d(md,'vector',self.refreeze,'type','node');
++		return self
++	#}}}
++	def defaultoutputs(self,md): # {{{
++		return []
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.accumulation)):
++			self.accumulation=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.accumulation specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.evaporation)):
++			self.evaporation=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.evaporation specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.melt)):
++			self.melt=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.melt specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.refreeze)):
++			self.refreeze=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no SMB.refreeze specified: values set as zero")
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
++
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++
++		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',SmbEnum(),'data',SMBmeltcomponentsEnum(),'format','Integer');
++		WriteData(fid,'object',self,'class','smb','fieldname','accumulation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','evaporation','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','melt','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'class','smb','fieldname','refreeze','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum(),'format','StringArray')
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/private.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/private.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/private.py	(revision 19895)
+@@ -0,0 +1,37 @@
++from collections import OrderedDict
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++
++class private(object):
++	"""
++	PRIVATE class definition
++
++	   Usage:
++	      private=private();
++	"""
++
++	def __init__(self): # {{{
++		self.isconsistent = True
++		self.runtimename  = ''
++		self.bamg         = OrderedDict()
++		self.solution     = ''
++
++		#set defaults
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++		string='   private parameters: do not change'
++
++		string="%s\n%s"%(string,fielddisplay(self,'isconsistent','is model self consistent'))
++		string="%s\n%s"%(string,fielddisplay(self,'runtimename','name of the run launched'))
++		string="%s\n%s"%(string,fielddisplay(self,'bamg','structure with mesh properties constructed if bamg is used to mesh the domain'))
++		string="%s\n%s"%(string,fielddisplay(self,'solution','type of solution launched'))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		return md
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/inversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/inversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/inversion.py	(revision 19895)
+@@ -0,0 +1,194 @@
++import numpy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++from supportedcontrols import supportedcontrols
++from supportedcostfunctions import supportedcostfunctions
++from marshallcostfunctions import marshallcostfunctions
++
++class inversion(object):
++	"""
++	INVERSION class definition
++
++	   Usage:
++	      inversion=inversion()
++	"""
++
++	def __init__(self): # {{{
++		self.iscontrol                   = 0
++		self.incomplete_adjoint          = 0
++		self.control_parameters          = float('NaN')
++		self.nsteps                      = 0
++		self.maxiter_per_step            = float('NaN')
++		self.cost_functions              = float('NaN')
++		self.cost_functions_coefficients = float('NaN')
++		self.gradient_scaling            = float('NaN')
++		self.cost_function_threshold     = 0
++		self.min_parameters              = float('NaN')
++		self.max_parameters              = float('NaN')
++		self.step_threshold              = float('NaN')
++		self.vx_obs                      = float('NaN')
++		self.vy_obs                      = float('NaN')
++		self.vz_obs                      = float('NaN')
++		self.vel_obs                     = float('NaN')
++		self.thickness_obs               = float('NaN')
++		self.surface_obs                 = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   inversion parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'iscontrol','is inversion activated?'))
++		string="%s\n%s"%(string,fielddisplay(self,'incomplete_adjoint','1: linear viscosity, 0: non-linear viscosity'))
++		string="%s\n%s"%(string,fielddisplay(self,'control_parameters','ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''}'))
++		string="%s\n%s"%(string,fielddisplay(self,'nsteps','number of optimization searches'))
++		string="%s\n%s"%(string,fielddisplay(self,'cost_functions','indicate the type of response for each optimization step'))
++		string="%s\n%s"%(string,fielddisplay(self,'cost_functions_coefficients','cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter'))
++		string="%s\n%s"%(string,fielddisplay(self,'cost_function_threshold','misfit convergence criterion. Default is 1%, NaN if not applied'))
++		string="%s\n%s"%(string,fielddisplay(self,'maxiter_per_step','maximum iterations during each optimization step'))
++		string="%s\n%s"%(string,fielddisplay(self,'gradient_scaling','scaling factor on gradient direction during optimization, for each optimization step'))
++		string="%s\n%s"%(string,fielddisplay(self,'step_threshold','decrease threshold for misfit, default is 30%'))
++		string="%s\n%s"%(string,fielddisplay(self,'min_parameters','absolute minimum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fielddisplay(self,'max_parameters','absolute maximum acceptable value of the inversed parameter on each vertex'))
++		string="%s\n%s"%(string,fielddisplay(self,'vx_obs','observed velocity x component [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vy_obs','observed velocity y component [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vel_obs','observed velocity magnitude [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'thickness_obs','observed thickness [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'surface_obs','observed surface elevation [m]'))
++		string="%s\n%s"%(string,'Available cost functions:')
++		string="%s\n%s"%(string,'   101: SurfaceAbsVelMisfit')
++		string="%s\n%s"%(string,'   102: SurfaceRelVelMisfit')
++		string="%s\n%s"%(string,'   103: SurfaceLogVelMisfit')
++		string="%s\n%s"%(string,'   104: SurfaceLogVxVyMisfit')
++		string="%s\n%s"%(string,'   105: SurfaceAverageVelMisfit')
++		string="%s\n%s"%(string,'   201: ThicknessAbsMisfit')
++		string="%s\n%s"%(string,'   501: DragCoefficientAbsGradient')
++		string="%s\n%s"%(string,'   502: RheologyBbarAbsGradient')
++		string="%s\n%s"%(string,'   503: ThicknessAbsGradient')
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.vx_obs=project3d(md,'vector',self.vx_obs,'type','node')
++		self.vy_obs=project3d(md,'vector',self.vy_obs,'type','node')
++		self.vel_obs=project3d(md,'vector',self.vel_obs,'type','node')
++		self.thickness_obs=project3d(md,'vector',self.thickness_obs,'type','node')
++		if not numpy.any(numpy.isnan(self.cost_functions_coefficients)):
++			self.cost_functions_coefficients=project3d(md,'vector',self.cost_functions_coefficients,'type','node')
++		if not numpy.any(numpy.isnan(self.min_parameters)):
++			self.min_parameters=project3d(md,'vector',self.min_parameters,'type','node')
++		if not numpy.any(numpy.isnan(self.max_parameters)):
++			self.max_parameters=project3d(md,'vector',self.max_parameters,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#default is incomplete adjoint for now
++		self.incomplete_adjoint=1
++
++		#parameter to be inferred by control methods (only
++		#drag and B are supported yet)
++		self.control_parameters='FrictionCoefficient'
++
++		#number of steps in the control methods
++		self.nsteps=20
++
++		#maximum number of iteration in the optimization algorithm for
++		#each step
++		self.maxiter_per_step=20*numpy.ones(self.nsteps)
++
++		#the inversed parameter is updated as follows:
++		#new_par=old_par + gradient_scaling(n)*C*gradient with C in [0 1];
++		#usually the gradient_scaling must be of the order of magnitude of the 
++		#inversed parameter (10^8 for B, 50 for drag) and can be decreased
++		#after the first iterations
++		self.gradient_scaling=50*numpy.ones((self.nsteps,1))
++
++		#several responses can be used:
++		self.cost_functions=101
++
++		#step_threshold is used to speed up control method. When
++		#misfit(1)/misfit(0) < self.step_threshold, we go directly to
++		#the next step
++		self.step_threshold=.7*numpy.ones(self.nsteps) #30 per cent decrement
++
++		#cost_function_threshold is a criteria to stop the control methods.
++		#if J[n]-J[n-1]/J[n] < criteria, the control run stops
++		#NaN if not applied
++		self.cost_function_threshold=float('NaN')    #not activated 
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if not self.iscontrol:
++			return md
++
++		num_controls=numpy.size(md.inversion.control_parameters)
++		num_costfunc=numpy.size(md.inversion.cost_functions)
++
++		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1])
++		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
++		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
++		md = checkfield(md,'fieldname','inversion.nsteps','numel',[1],'>=',0)
++		md = checkfield(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)
++		md = checkfield(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps])
++		md = checkfield(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions())
++		md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)
++		md = checkfield(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])
++		md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])
++		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
++
++		#Only SSA, HO and FS are supported right now
++		if solution==StressbalanceSolutionEnum():
++			if not (md.flowequation.isSSA or md.flowequation.isHO or md.flowequation.isFS or md.flowequation.isL1L2):
++				md.checkmessage("'inversion can only be performed for SSA, HO or FS ice flow models");
++
++		if solution==BalancethicknessSolutionEnum():
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++		else:
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',InversionTypeEnum(),'data',0,'format','Integer')
++		WriteData(fid,'object',self,'fieldname','iscontrol','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','incomplete_adjoint','format','Boolean')
++		if not self.iscontrol:
++			return
++		WriteData(fid,'object',self,'fieldname','nsteps','format','Integer')
++		WriteData(fid,'object',self,'fieldname','maxiter_per_step','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','cost_functions_coefficients','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','gradient_scaling','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','cost_function_threshold','format','Double')
++		WriteData(fid,'object',self,'fieldname','min_parameters','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','max_parameters','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','step_threshold','format','DoubleMat','mattype',3)
++		WriteData(fid,'object',self,'fieldname','vx_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','vy_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','vz_obs','format','DoubleMat','mattype',1,'scale',1./yts)
++		WriteData(fid,'object',self,'fieldname','thickness_obs','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','surface_obs','format','DoubleMat','mattype',1)
++
++		#process control parameters
++		num_control_parameters=len(self.control_parameters)
++		data=numpy.array([StringToEnum(control_parameter)[0] for control_parameter in self.control_parameters]).reshape(1,-1)
++		WriteData(fid,'data',data,'enum',InversionControlParametersEnum(),'format','DoubleMat','mattype',3)
++		WriteData(fid,'data',num_control_parameters,'enum',InversionNumControlParametersEnum(),'format','Integer')
++
++		#process cost functions
++		num_cost_functions=numpy.size(self.cost_functions)
++		data=marshallcostfunctions(self.cost_functions)
++		WriteData(fid,'data',numpy.array(data).reshape(1,-1),'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
++		WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/constants.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/constants.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/constants.py	(revision 19895)
+@@ -0,0 +1,57 @@
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class constants(object):
++	"""
++	CONSTANTS class definition
++
++	   Usage:
++	      constants=constants();
++	"""
++
++	def __init__(self): # {{{
++		self.g                    = 0
++		self.yts                  = 0
++		self.referencetemperature = 0
++		
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   constants parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"g","gravitational acceleration [m/s^2]"))
++		string="%s\n%s"%(string,fielddisplay(self,"yts","number of seconds in a year [s/yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"referencetemperature","reference temperature used in the enthalpy model [K]"))
++
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#acceleration due to gravity (m/s^2)
++		self.g=9.81
++
++		#converstion from year to seconds
++		self.yts=365*24*3600
++
++		#the reference temperature for enthalpy model (cf Aschwanden)
++		self.referencetemperature=223.15
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','constants.g','>',0,'size',[1])
++		md = checkfield(md,'fieldname','constants.yts','>',0,'size',[1])
++		md = checkfield(md,'fieldname','constants.referencetemperature','size',[1])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','g','format','Double')
++		WriteData(fid,'object',self,'fieldname','yts','format','Double')
++		WriteData(fid,'object',self,'fieldname','referencetemperature','format','Double')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/friction.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/friction.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/friction.py	(revision 19895)
+@@ -0,0 +1,58 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class friction(object):
++	"""
++	FRICTION class definition
++
++	   Usage:
++	      friction=friction()
++	"""
++
++	def __init__(self): # {{{
++		self.coefficient = float('NaN')
++		self.p           = float('NaN')
++		self.q           = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b,\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)"
++
++		string="%s\n%s"%(string,fielddisplay(self,"coefficient","friction coefficient [SI]"))
++		string="%s\n%s"%(string,fielddisplay(self,"p","p exponent"))
++		string="%s\n%s"%(string,fielddisplay(self,"q","q exponent"))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
++		self.p=project3d(md,'vector',self.p,'type','element')
++		self.q=project3d(md,'vector',self.q,'type','element')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
++			return md
++
++		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
++		md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',FrictionLawEnum(),'data',1,'format','Integer')
++		WriteData(fid,'object',self,'fieldname','coefficient','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','p','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'fieldname','q','format','DoubleMat','mattype',2)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/flowequation.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/flowequation.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/flowequation.py	(revision 19895)
+@@ -0,0 +1,162 @@
++import numpy
++import copy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class flowequation(object):
++	"""
++	FLOWEQUATION class definition
++
++	   Usage:
++	      flowequation=flowequation();
++	"""
++
++	def __init__(self): # {{{
++		
++		self.isSIA                          = 0
++		self.isSSA                          = 0
++		self.isL1L2                         = 0
++		self.isHO                           = 0
++		self.isFS                           = 0
++		self.fe_SSA                         = ''
++		self.fe_HO                          = ''
++		self.fe_FS                          = ''
++		self.augmented_lagrangian_r         = 1.
++		self.augmented_lagrangian_rhop      = 1.
++		self.augmented_lagrangian_rlambda   = 1.
++		self.augmented_lagrangian_rholambda = 1.
++		self.XTH_theta                      = 0.
++		self.vertex_equation                = float('NaN')
++		self.element_equation               = float('NaN')
++		self.borderSSA                      = float('NaN')
++		self.borderHO                       = float('NaN')
++		self.borderFS                       = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   flow equation parameters:'
++
++		string="%s\n%s"%(string,fielddisplay(self,'isSIA',"is the Shallow Ice Approximation (SIA) used ?"))
++		string="%s\n%s"%(string,fielddisplay(self,'isSSA',"is the Shelfy-Stream Approximation (SSA) used ?"))
++		string="%s\n%s"%(string,fielddisplay(self,'isL1L2',"are L1L2 equations used ?"))
++		string="%s\n%s"%(string,fielddisplay(self,'isHO',"is the Higher-Order (HO) approximation used ?"))
++		string="%s\n%s"%(string,fielddisplay(self,'isFS',"are the Full-FS (FS) equations used ?"))
++		string="%s\n%s"%(string,fielddisplay(self,'fe_SSA',"Finite Element for SSA: 'P1', 'P1bubble' 'P1bubblecondensed' 'P2'"))
++		string="%s\n%s"%(string,fielddisplay(self,'fe_HO' ,"Finite Element for HO:  'P1' 'P1bubble' 'P1bubblecondensed' 'P1xP2' 'P2xP1' 'P2'"))
++		string="%s\n%s"%(string,fielddisplay(self,'fe_FS' ,"Finite Element for FS:  'P1P1' (debugging only) 'P1P1GLS' 'MINIcondensed' 'MINI' 'TaylorHood' 'LATaylorHood' 'XTaylorHood'"))
++		string="%s\n%s"%(string,fielddisplay(self,'vertex_equation',"flow equation for each vertex"))
++		string="%s\n%s"%(string,fielddisplay(self,'element_equation',"flow equation for each element"))
++		string="%s\n%s"%(string,fielddisplay(self,'borderSSA',"vertices on SSA's border (for tiling)"))
++		string="%s\n%s"%(string,fielddisplay(self,'borderHO',"vertices on HO's border (for tiling)"))
++		string="%s\n%s"%(string,fielddisplay(self,'borderFS',"vertices on FS' border (for tiling)"))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.element_equation=project3d(md,'vector',self.element_equation,'type','element')
++		self.vertex_equation=project3d(md,'vector',self.vertex_equation,'type','node')
++		self.borderSSA=project3d(md,'vector',self.borderSSA,'type','node')
++		self.borderHO=project3d(md,'vector',self.borderHO,'type','node')
++		self.borderFS=project3d(md,'vector',self.borderFS,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#P1 for SSA
++		self.fe_SSA= 'P1';
++
++		#P1 for HO
++		self.fe_HO= 'P1';
++
++		#MINI condensed element for FS by default
++		self.fe_FS = 'MINIcondensed';
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (StressbalanceAnalysisEnum() not in analyses and StressbalanceSIAAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.isstressbalance):
++			return md
++
++		md = checkfield(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.isHO','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2','P2bubble'])
++		md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'])
++		md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'])
++		md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])
++		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5)
++		if m.strcmp(md.mesh.domaintype(),'2Dhorizontal'):
++			md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])
++			md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2])
++		elif m.strcmp(md.mesh.domaintype(),'3D'):
++			md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',numpy.arange(0,8+1))
++			md = checkfield(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',numpy.arange(0,8+1))
++		else:
++			raise RuntimeError('mesh type not supported yet')
++		if not (self.isSIA or self.isSSA or self.isL1L2 or self.isHO or self.isFS):
++			md.checkmessage("no element types set for this model")
++
++		if StressbalanceSIAAnalysisEnum() in analyses:
++			if any(self.element_equation==1):
++				if numpy.any(numpy.logical_and(self.vertex_equation,md.mask.groundedice_levelset)):
++					print("\n !!! Warning: SIA's model is not consistent on ice shelves !!!\n")
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','isSIA','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isSSA','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isL1L2','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isHO','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isFS','format','Boolean')
++		WriteData(fid,'enum',FlowequationFeSSAEnum(),'data',StringToEnum(self.fe_SSA)[0],'format','Integer')
++		WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(self.fe_HO)[0] ,'format','Integer')
++		WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(self.fe_FS)[0] ,'format','Integer')
++		WriteData(fid,'enum',AugmentedLagrangianREnum(),'data',self.augmented_lagrangian_r ,'format','Double')
++		WriteData(fid,'enum',AugmentedLagrangianRhopEnum(),'data',self.augmented_lagrangian_rhop ,'format','Double')
++		WriteData(fid,'enum',AugmentedLagrangianRlambdaEnum(),'data',self.augmented_lagrangian_rlambda ,'format','Double')
++		WriteData(fid,'enum',AugmentedLagrangianRholambdaEnum(),'data',self.augmented_lagrangian_rholambda ,'format','Double')
++		WriteData(fid,'enum',AugmentedLagrangianThetaEnum() ,'data',self.XTH_theta ,'format','Double')
++		WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1)
++		#convert approximations to enums
++		data=copy.deepcopy(self.vertex_equation)
++		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
++		data[numpy.nonzero(data==1)]=SIAApproximationEnum()
++		data[numpy.nonzero(data==2)]=SSAApproximationEnum()
++		data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
++		data[numpy.nonzero(data==4)]=HOApproximationEnum()
++		data[numpy.nonzero(data==5)]=FSApproximationEnum()
++		data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
++		data[numpy.nonzero(data==7)]=HOFSApproximationEnum()
++		data[numpy.nonzero(data==8)]=SSAFSApproximationEnum()
++		WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
++		data=copy.deepcopy(self.element_equation)
++		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
++		data[numpy.nonzero(data==1)]=SIAApproximationEnum()
++		data[numpy.nonzero(data==2)]=SSAApproximationEnum()
++		data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
++		data[numpy.nonzero(data==4)]=HOApproximationEnum()
++		data[numpy.nonzero(data==5)]=FSApproximationEnum()
++		data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
++		data[numpy.nonzero(data==7)]=SSAFSApproximationEnum()
++		data[numpy.nonzero(data==8)]=HOFSApproximationEnum()
++		WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/basalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/basalforcings.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/basalforcings.py	(revision 19895)
+@@ -0,0 +1,79 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import numpy
++
++class basalforcings(object):
++	"""
++	BASAL FORCINGS class definition
++
++	   Usage:
++	      basalforcings=basalforcings();
++	"""
++
++	def __init__(self): # {{{
++		self.groundedice_melting_rate  = float('NaN')
++		self.floatingice_melting_rate  = float('NaN')
++		self.geothermalflux            = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   basal forcings parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"groundedice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"floatingice_melting_rate","basal melting rate (positive if melting) [m/yr]"))
++		string="%s\n%s"%(string,fielddisplay(self,"geothermalflux","geothermal heat flux [W/m^2]"))
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1)
++		self.floatingice_melting_rate=project3d(md,'vector',self.floatingice_melting_rate,'type','node','layer',1)
++		self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1)    #bedrock only gets geothermal flux
++		return self
++	#}}}
++	def initialize(self,md): # {{{
++
++		if numpy.all(numpy.isnan(self.groundedice_melting_rate)):
++			self.groundedice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no basalforcings.groundedice_melting_rate specified: values set as zero")
++
++		if numpy.all(numpy.isnan(self.floatingice_melting_rate)):
++			self.floatingice_melting_rate=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no basalforcings.floatingice_melting_rate specified: values set as zero")
++
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
++
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++
++		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'enum',BasalforcingsEnum(),'data',FloatingMeltRateEnum(),'format','Integer');
++		WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/clusters/pfe.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/clusters/pfe.py	(revision 19895)
+@@ -0,0 +1,199 @@
++# import socket
++# import os
++# import math
++import subprocess
++from fielddisplay import fielddisplay
++from EnumToString import EnumToString
++from pairoptions import pairoptions
++from issmssh import issmssh
++from issmscpin import issmscpin
++from issmscpout import issmscpout
++from QueueRequirements import QueueRequirements
++try:
++	from pfe_settings import pfe_settings
++except ImportError:
++	print('You need pfe_settings.py to proceed, check presence and sys.path')
++	
++class pfe(object):
++	"""
++	PFE cluster class definition
++ 
++	   Usage:
++	      cluster=pfe();
++	      cluster=pfe('np',3);
++	      cluster=pfe('np',3,'login','username');
++	"""
++
++	def __init__(self,**kwargs):
++		# {{{
++
++		self.name           = 'pfe'
++		self.login          = ''
++		self.numnodes       = 20
++		self.cpuspernode    = 8
++		self.port           = 1025
++		self.queue          = 'long'
++		self.time           = 12*60
++		self.processor      = 'wes'
++		self.codepath       = ''
++		self.executionpath  = ''
++		self.grouplist      = 's1010'
++		self.interactive    = 0
++		self.bbftp          = 0
++		self.numstreams     = 8
++		self.hyperthreading = 0
++
++		#use provided options to change fields
++		options=pairoptions(**kwargs)
++
++		#initialize cluster using user settings if provided
++		self=pfe_settings(self)
++		self.np=self.nprocs()
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++		
++		# }}}
++
++	def __repr__(self):
++		# {{{
++		#  display the object
++		s = "class pfe object:"
++		s	= "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster'))
++		s	= "%s\n%s"%(s,fielddisplay(self,'login','login'))
++		s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes'))
++		s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs'))
++		s = "%s\n%s"%(s,fielddisplay(self,'np','number of CPUs'))
++		s = "%s\n%s"%(s,fielddisplay(self,'port','machine access port'))
++		s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue'))
++		s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested'))
++		s = "%s\n%s"%(s,fielddisplay(self,'processor','type of processor'))
++		s = "%s\n%s"%(s,fielddisplay(self,'grouplist','name of the group'))
++		s = "%s\n%s"%(s,fielddisplay(self,'interactive',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'bbftp',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'numstreams',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'hyperthreading',''))
++		return s
++	# }}}
++
++	def nprocs(self):
++		# {{{
++		self.np=self.numnodes*self.cpuspernode
++		return self.np
++		# }}}
++	def checkconsistency(self,md,solution,analyses):
++		# {{{
++
++
++		queuedict = {'long': [5*24*60, 2048],
++								 'normal': [8*60, 2048],
++								 'debug':[2*60,150],
++								 'devel':[2*60,150]}
++		QueueRequirements(queuedict,self.queue,self.nprocs(),self.time)
++
++		#now, check cluster.cpuspernode according to processor type
++		if self.processor=='har' or self.processor=='neh':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<17:
++					md = md.checkmessage('cpuspernode should be between 1 and 16 for ''neh'' and ''har'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<9:
++					md = md.checkmessage('cpuspernode should be between 1 and 8 for ''neh'' and ''har'' processors')
++
++		elif self.processor=='wes':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<25:
++					md = md.checkmessage('cpuspernode should be between 1 and 24 for ''wes'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<13:
++					md = md.checkmessage('cpuspernode should be between 1 and 12 for ''wes'' processors')
++
++		elif self.processor=='ivy':
++			if self.hyperthreading:
++				if not 0<self.cpuspernode<41:
++					md = md.checkmessage('cpuspernode should be between 1 and 40 for ''ivy'' processors in hyperthreading mode')
++			else:
++				if not 0<self.cpuspernode<21:
++					md = md.checkmessage('cpuspernode should be between 1 and 20 for ''ivy'' processors')
++		else:
++			md = md.checkmessage('unknown processor type, should be ''neh'',''wes'' or ''har'' or ''ivy''')
++	
++		#Miscelaneous
++		if not self.login:
++			md = md.checkmessage('login empty')
++		if not self.codepath:
++			md = md.checkmessage('codepath empty')
++		if not self.executionpath:
++			md = md.checkmessage('executionpath empty')
++		if not self.grouplist:
++			md = md.checkmessage('grouplist empty')
++		if self.interactive==1:
++			md = md.checkmessage('interactive mode not implemented')
++			
++		return self
++	# }}}
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
++		# {{{
++
++		executable='issm.exe'
++		if isdakota:
++			version=IssmConfig('_DAKOTA_VERSION_')[0:2]
++			version=float(version)
++			if version>=6:
++				executable='issm_dakota.exe'
++
++		#write queuing script 
++		fid=open(modelname+'.queue','w')
++		fid.write('#PBS -S /bin/bash\n')
++		fid.write('#PBS -l select=%i:ncpus=%i:model=%s\n' % (self.numnodes,self.cpuspernode,self.processor))
++		fid.write('#PBS -l walltime=%i\n' % (self.time*60))
++		fid.write('#PBS -q %s \n' % self.queue)
++		fid.write('#PBS -W group_list=%s\n' % self.grouplist)
++		fid.write('#PBS -m e\n')
++		fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname))
++		fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname))
++		fid.write('. /usr/share/modules/init/bash\n\n')
++		fid.write('module load comp-intel/2015.0.090\n')
++		fid.write('module load mpi-sgi/mpt.2.11r13\n')
++		fid.write('export PATH="$PATH:."\n\n')
++		fid.write('export MPI_GROUP_MAX=64\n\n')
++		fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)
++		fid.write('source $ISSM_DIR/etc/environment.sh\n')
++		fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname))
++		fid.write('mpiexec -np %i %s/%s %s %s/%s %s\n' % (self.nprocs(),self.codepath,executable,str(EnumToString(solution)[0]),self.executionpath,dirname,modelname))
++		
++		fid.close()
++
++	# }}}
++	def UploadQueueJob(self,modelname,dirname,filelist):
++			# {{{
++
++		#compress the files into one zip.
++		compressstring='tar -zcf %s.tar.gz ' % dirname
++		for file in filelist:
++			compressstring += ' %s' % file
++		subprocess.call(compressstring,shell=True)
++
++		print('uploading input file and queueing script')
++		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
++
++		# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart):
++			# {{{
++
++		print('launching solution sequence on remote cluster')
++		if restart:
++			launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname)
++		else:
++			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
++		issmssh(self.name,self.login,self.port,launchcommand)
++
++		# }}}
++	def Download(self,dirname,filelist):
++		# {{{
++
++		#copy files from cluster to current directory
++		directory='%s/%s/' % (self.executionpath,dirname)
++		issmscpin(self.name,self.login,self.port,directory,filelist)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/clusters/generic.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/clusters/generic.py	(revision 19895)
+@@ -0,0 +1,204 @@
++import socket
++import os
++import math
++import subprocess
++from IssmConfig import IssmConfig
++from EnumToString import EnumToString
++from issmdir import issmdir
++from pairoptions import pairoptions
++from issmssh import issmssh
++from issmscpin import issmscpin
++from issmscpout import issmscpout
++import MatlabFuncs as m
++
++class generic(object):
++	"""
++	GENERIC cluster class definition
++ 
++	   Usage:
++	      cluster=generic('name','astrid','np',3);
++	      cluster=generic('name',oshostname(),'np',3,'login','username');
++	"""
++
++	def __init__(self,**kwargs):    # {{{
++
++		self.name=''
++		self.login=''
++		self.np=1
++		self.port=0
++		self.interactive=1
++		self.codepath=issmdir()+'/bin'
++		self.executionpath=issmdir()+'/execution'
++		self.valgrind=issmdir()+'/externalpackages/valgrind/install/bin/valgrind'
++		self.valgrindlib=issmdir()+'/externalpackages/valgrind/install/lib/libmpidebug.so'
++		self.valgrindsup=issmdir()+'/externalpackages/valgrind/issm.supp'
++
++		#use provided options to change fields
++		options=pairoptions(**kwargs)
++
++		#get name
++		self.name=socket.gethostname()
++
++		#initialize cluster using user settings if provided
++		if os.path.exists(self.name+'_settings.py'):
++			exec(compile(open(self.name+'_settings.py').read(), self.name+'_settings.py', 'exec'),globals())
++
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++	# }}}
++	def __repr__(self):    # {{{
++		#  display the object
++		s ="class '%s' object '%s' = \n" % (type(self),'self')
++		s+="    name: %s\n" % self.name
++		s+="    login: %s\n" % self.login
++		s+="    np: %i\n" % self.np
++		s+="    port: %i\n" % self.port
++		s+="    codepath: %s\n" % self.codepath
++		s+="    executionpath: %s\n" % self.executionpath
++		s+="    valgrind: %s\n" % self.valgrind
++		s+="    valgrindlib: %s\n" % self.valgrindlib
++		s+="    valgrindsup: %s\n" % self.valgrindsup
++		return s
++	# }}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		if self.np<1:
++			md = checkmessage(md,'number of processors should be at least 1')
++		if math.isnan(self.np):
++			md = checkmessage(md,'number of processors should not be NaN!')
++
++		return md
++	# }}}
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):    # {{{
++
++		executable='issm.exe';
++		if isdakota:
++			version=IssmConfig('_DAKOTA_VERSION_')[0:2]
++			version=float(version)
++			if version>=6:
++				executable='issm_dakota.exe'
++
++		#write queuing script 
++		if not m.ispc():
++
++			fid=open(modelname+'.queue','w')
++			fid.write('#!/bin/sh\n')
++			if not isvalgrind:
++				if self.interactive: 
++					if IssmConfig('_HAVE_MPI_')[0]:
++						fid.write('mpiexec -np %i %s/%s %s %s/%s %s ' % (self.np,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++					else:
++						fid.write('%s/%s %s %s/%s %s ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++				else:
++					if IssmConfig('_HAVE_MPI_')[0]:
++						fid.write('mpiexec -np %i %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++					else:
++						fid.write('%s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++			elif isgprof:
++				fid.write('\n gprof %s/%s gmon.out > %s.performance' % (self.codepath,executable,modelname))
++			else:
++				#Add --gen-suppressions=all to get suppression lines
++				fid.write('LD_PRELOAD=%s \\\n' % self.valgrindlib)
++				if IssmConfig('_HAVE_MPI_')[0]:
++					fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
++							(self.np,self.valgrind,self.valgrindsup,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++				else:	
++					fid.write('%s --leak-check=full --suppressions=%s %s/%s %s %s/%s %s 2> %s.errlog >%s.outlog ' % \
++							(self.valgrind,self.valgrindsup,self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++
++			if not io_gather:    #concatenate the output files:
++				fid.write('\ncat %s.outbin.* > %s.outbin' % (modelname,modelname))
++			fid.close()
++
++		else:    # Windows
++
++			fid=open(modelname+'.bat','w')
++			fid.write('@echo off\n')
++			if self.interactive:
++				fid.write('"%s/%s" %s "%s/%s" %s ' % (self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname))
++			else:
++				fid.write('"%s/%s" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \
++					(self.codepath,executable,EnumToString(solution)[0],self.executionpath,dirname,modelname,modelname,modelname))
++			fid.close()
++
++		#in interactive mode, create a run file, and errlog and outlog file
++		if self.interactive:
++			fid=open(modelname+'.errlog','w')
++			fid.close()
++			fid=open(modelname+'.outlog','w')
++			fid.close()
++	# }}}
++	def BuildKrigingQueueScript(self,modelname,solution,io_gather,isvalgrind,isgprof):    # {{{
++
++		#write queuing script 
++		if not m.ispc():
++
++			fid=open(modelname+'.queue','w')
++			fid.write('#!/bin/sh\n')
++			if not isvalgrind:
++				if self.interactive:
++					fid.write('mpiexec -np %i %s/kriging.exe %s/%s %s ' % (self.np,self.codepath,self.executionpath,modelname,modelname))
++				else:
++					fid.write('mpiexec -np %i %s/kriging.exe %s/%s %s 2> %s.errlog >%s.outlog ' % (self.np,self.codepath,self.executionpath,modelname,modelname,modelname,modelname))
++			elif isgprof:
++				fid.write('\n gprof %s/kriging.exe gmon.out > %s.performance' & (self.codepath,modelname))
++			else:
++				#Add --gen-suppressions=all to get suppression lines
++				fid.write('LD_PRELOAD=%s \\\n' % self.valgrindlib)
++				fid.write('mpiexec -np %i %s --leak-check=full --suppressions=%s %s/kriging.exe %s/%s %s 2> %s.errlog >%s.outlog ' % \
++					(self.np,self.valgrind,self.valgrindsup,self.codepath,self.executionpath,modelname,modelname,modelname,modelname))
++			if not io_gather:    #concatenate the output files:
++				fid.write('\ncat %s.outbin.* > %s.outbin' % (modelname,modelname))
++			fid.close()
++
++		else:    # Windows
++
++			fid=open(modelname+'.bat','w')
++			fid.write('@echo off\n')
++			if self.interactive:
++				fid.write('"%s/issm.exe" %s "%s/%s" %s ' % (self.codepath,EnumToString(solution)[0],self.executionpath,modelname,modelname))
++			else:
++				fid.write('"%s/issm.exe" %s "%s/%s" %s 2> %s.errlog >%s.outlog' % \
++					(self.codepath,EnumToString(solution)[0],self.executionpath,modelname,modelname,modelname,modelname))
++			fid.close()
++
++		#in interactive mode, create a run file, and errlog and outlog file
++		if self.interactive:
++			fid=open(modelname+'.errlog','w')
++			fid.close()
++			fid=open(modelname+'.outlog','w')
++			fid.close()
++	# }}}
++	def UploadQueueJob(self,modelname,dirname,filelist):    # {{{
++
++		#compress the files into one zip.
++		compressstring='tar -zcf %s.tar.gz ' % dirname
++		for file in filelist:
++			compressstring += ' %s' % file
++		if self.interactive:
++			compressstring += ' %s.errlog %s.outlog ' % (modelname,modelname)
++		subprocess.call(compressstring,shell=True)
++
++		print('uploading input file and queueing script')
++		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
++
++	# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart):    # {{{
++
++		print('launching solution sequence on remote cluster')
++		if restart:
++			launchcommand='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)
++		else:
++			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
++				(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
++		issmssh(self.name,self.login,self.port,launchcommand)
++	# }}}
++	def Download(self,dirname,filelist):     # {{{
++
++		if m.ispc():
++			#do nothing
++			return
++
++		#copy files from cluster to current directory
++		directory='%s/%s/' % (self.executionpath,dirname)
++		issmscpin(self.name,self.login,self.port,directory,filelist)
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/mesh2d.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mesh2d.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/mesh2d.py	(revision 19895)
+@@ -0,0 +1,122 @@
++import numpy
++from fielddisplay import fielddisplay
++from checkfield import checkfield
++from WriteData import WriteData
++from EnumDefinitions import *
++import MatlabFuncs as m
++
++class mesh2d(object):
++	"""
++	MESH2D class definition
++
++	   Usage:
++	      mesh2d=mesh2d();
++	"""
++
++	def __init__(self): # {{{
++		self.x                           = float('NaN');
++		self.y                           = float('NaN');
++		self.elements                    = float('NaN');
++		self.numberofelements            = 0;
++		self.numberofvertices            = 0;
++		self.numberofedges               = 0;
++		
++		self.lat                         = float('NaN');
++		self.long                        = float('NaN');
++		self.epsg                        = 0;
++
++		self.vertexonboundary            = float('NaN');
++		self.edges                       = float('NaN');
++		self.segments                    = float('NaN');
++		self.segmentmarkers              = float('NaN');
++		self.vertexconnectivity          = float('NaN');
++		self.elementconnectivity         = float('NaN');
++		self.average_vertex_connectivity = 0;
++
++		self.extractedvertices           = float('NaN');
++		self.extractedelements           = float('NaN');
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   2D tria Mesh (horizontal):" 
++
++		string="%s\n%s"%(string,"\n      Elements and vertices:")
++		string="%s\n%s"%(string,fielddisplay(self,"numberofelements","number of elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"numberofvertices","number of vertices"))
++		string="%s\n%s"%(string,fielddisplay(self,"elements","vertex indices of the mesh elements"))
++		string="%s\n%s"%(string,fielddisplay(self,"x","vertices x coordinate [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"y","vertices y coordinate [m]"))
++		string="%s\n%s"%(string,fielddisplay(self,"edges","edges of the 2d mesh (vertex1 vertex2 element1 element2)"))
++		string="%s\n%s"%(string,fielddisplay(self,"numberofedges","number of edges of the 2d mesh"))
++
++		string="%s%s"%(string,"\n\n      Properties:")
++		string="%s\n%s"%(string,fielddisplay(self,"vertexonboundary","vertices on the boundary of the domain flag list"))
++		string="%s\n%s"%(string,fielddisplay(self,"segments","edges on domain boundary (vertex1 vertex2 element)"))
++		string="%s\n%s"%(string,fielddisplay(self,"segmentmarkers","number associated to each segment"))
++		string="%s\n%s"%(string,fielddisplay(self,"vertexconnectivity","list of vertices connected to vertex_i"))
++		string="%s\n%s"%(string,fielddisplay(self,"elementconnectivity","list of vertices connected to element_i"))
++		string="%s\n%s"%(string,fielddisplay(self,"average_vertex_connectivity","average number of vertices connected to one vertex"))
++
++		string="%s%s"%(string,"\n\n      Extracted model:")
++		string="%s\n%s"%(string,fielddisplay(self,"extractedvertices","vertices extracted from the model"))
++		string="%s\n%s"%(string,fielddisplay(self,"extractedelements","elements extracted from the model"))
++
++		string="%s%s"%(string,"\n\n      Projection:")
++		string="%s\n%s"%(string,fielddisplay(self,"lat","vertices latitude [degrees]"))
++		string="%s\n%s"%(string,fielddisplay(self,"long","vertices longitude [degrees]"))
++		string="%s\n%s"%(string,fielddisplay(self,"epsg","EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)"))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		
++		#the connectivity is the averaged number of nodes linked to a
++		#given node through an edge. This connectivity is used to initially
++		#allocate memory to the stiffness matrix. A value of 16 seems to
++		#give a good memory/time ration. This value can be checked in
++		#trunk/test/Miscellaneous/runme.m
++		self.average_vertex_connectivity=25
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
++#		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
++		if any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
++			[x for x in A if not x in B]
++			md.checkmessage("orphan nodes have been found. Check the mesh outline")
++		md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
++		md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
++		md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")
++		if solution==ThermalSolutionEnum():
++			md.checkmessage("thermal not supported for 2d mesh")
++
++		return md
++	# }}}
++	def domaintype(self): # {{{
++		return "2Dhorizontal"
++	#}}}
++	def dimension(self): # {{{
++		return 2
++	#}}}
++	def elementtype(self): # {{{
++		return "Tria"
++	#}}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum("Domain"+self.domaintype())[0],'format','Integer');
++		WriteData(fid,'enum',DomainDimensionEnum(),'data',self.dimension(),'format','Integer');
++		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(self.elementtype())[0],'format','Integer');
++		WriteData(fid,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshZEnum(),'data',numpy.zeros(self.numberofvertices),'format','DoubleMat','mattype',1);
++		WriteData(fid,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/bamgmesh.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/bamgmesh.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/bamgmesh.py	(revision 19895)
+@@ -0,0 +1,61 @@
++import numpy
++
++class bamgmesh(object):
++	"""
++	BAMGMESH class definition
++
++	   Usage:
++	      bamgmesh(varargin)
++	"""
++
++	def __init__(self,*args):    # {{{
++		self.Vertices=numpy.empty((0,3))
++		self.Edges=numpy.empty((0,3))
++		self.Triangles=numpy.empty((0,0))
++		self.Quadrilaterals=numpy.empty((0,0))
++		self.IssmEdges=numpy.empty((0,0))
++		self.IssmSegments=numpy.empty((0,0))
++		self.VerticesOnGeomVertex=numpy.empty((0,0))
++		self.VerticesOnGeomEdge=numpy.empty((0,0))
++		self.EdgesOnGeomEdge=numpy.empty((0,0))
++		self.SubDomains=numpy.empty((0,4))
++		self.SubDomainsFromGeom=numpy.empty((0,0))
++		self.ElementConnectivity=numpy.empty((0,0))
++		self.NodalConnectivity=numpy.empty((0,0))
++		self.NodalElementConnectivity=numpy.empty((0,0))
++		self.CrackedVertices=numpy.empty((0,0))
++		self.CrackedEdges=numpy.empty((0,0))
++
++		if not len(args):
++			# if no input arguments, create a default object
++			pass
++
++		elif len(args) == 1:
++			object=args[0]
++			for field in list(object.keys()):
++				if field in vars(self):
++					setattr(self,field,object[field])
++
++		else:
++			raise TypeError("bamgmesh constructor error message: unknown type of constructor call")
++	# }}}
++	def __repr__(self):    # {{{
++		s ="class '%s' object '%s' = \n" % (type(self),'self')
++		s+="    Vertices: %s\n" % str(self.Vertices)
++		s+="    Edges: %s\n" % str(self.Edges)
++		s+="    Triangles: %s\n" % str(self.Triangles)
++		s+="    Quadrilaterals: %s\n" % str(self.Quadrilaterals)
++		s+="    IssmEdges: %s\n" % str(self.IssmEdges)
++		s+="    IssmSegments: %s\n" % str(self.IssmSegments)
++		s+="    VerticesOnGeomVertex: %s\n" % str(self.VerticesOnGeomVertex)
++		s+="    VerticesOnGeomEdge: %s\n" % str(self.VerticesOnGeomEdge)
++		s+="    EdgesOnGeomEdge: %s\n" % str(self.EdgesOnGeomEdge)
++		s+="    SubDomains: %s\n" % str(self.SubDomains)
++		s+="    SubDomainsFromGeom: %s\n" % str(self.SubDomainsFromGeom)
++		s+="    ElementConnectivity: %s\n" % str(self.ElementConnectivity)
++		s+="    NodalConnectivity: %s\n" % str(self.NodalConnectivity)
++		s+="    NodalElementConnectivity: %s\n" % str(self.NodalElementConnectivity)
++		s+="    CrackedVertices: %s\n" % str(self.CrackedVertices)
++		s+="    CrackedEdges: %s\n" % str(self.CrackedEdges)
++		return s
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/debug.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/debug.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/debug.py	(revision 19895)
+@@ -0,0 +1,34 @@
++from fielddisplay import fielddisplay
++from WriteData import *
++
++class debug(object):
++	"""
++	DEBUG class definition
++
++	   Usage:
++	      debug=debug();
++	"""
++
++	def __init__(self): # {{{
++		self.valgrind  = False
++		self.gprof     = False
++		self.profiling = False
++		
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string="   debug parameters:"
++
++		string="%s\n%s"%(string,fielddisplay(self,"valgrind","use Valgrind to debug (0 or 1)"))
++		string="%s\n%s"%(string,fielddisplay(self,"gprof","use gnu-profiler to find out where the time is spent"))
++		string="%s\n%s"%(string,fielddisplay(self,'profiling','enables profiling (memory, flops, time)'))
++		return string
++		#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def marshall(self,md,fid):    # {{{
++		WriteData(fid,'object',self,'fieldname','profiling','format','Boolean')
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/initialization.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/initialization.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/initialization.py	(revision 19895)
+@@ -0,0 +1,132 @@
++import numpy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++import MatlabFuncs as m
++
++class initialization(object):
++	"""
++	INITIALIZATION class definition
++	
++	Usage:
++	initialization=initialization();
++	"""
++
++	def __init__(self): # {{{
++					
++		self.vx            = float('NaN')
++		self.vy            = float('NaN')
++		self.vz            = float('NaN')
++		self.vel           = float('NaN')
++		self.pressure      = float('NaN')
++		self.temperature   = float('NaN')
++		self.waterfraction = float('NaN')
++		self.watercolumn   = float('NaN')
++		self.sediment_head = float('NaN')
++		self.epl_head      = float('NaN')
++		self.epl_thickness = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   initial field values:'
++		string="%s\n%s"%(string,fielddisplay(self,'vx','x component of velocity [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vy','y component of velocity [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vz','z component of velocity [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'vel','velocity norm [m/yr]'))
++		string="%s\n%s"%(string,fielddisplay(self,'pressure','pressure [Pa]'))
++		string="%s\n%s"%(string,fielddisplay(self,'temperature','temperature [K]'))
++		string="%s\n%s"%(string,fielddisplay(self,'waterfraction','fraction of water in the ice'))
++		string="%s\n%s"%(string,fielddisplay(self,'watercolumn','thickness of subglacial water [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sediment_head','sediment water head of subglacial system [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'epl_head','epl water head of subglacial system [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'epl_thickness','thickness of the epl [m]'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.vx=project3d(md,'vector',self.vx,'type','node')
++		self.vy=project3d(md,'vector',self.vy,'type','node')
++		self.vz=project3d(md,'vector',self.vz,'type','node')
++		self.vel=project3d(md,'vector',self.vel,'type','node')
++		self.temperature=project3d(md,'vector',self.temperature,'type','node')
++		self.waterfraction=project3d(md,'vector',self.waterfraction,'type','node')
++		self.watercolumn=project3d(md,'vector',self.watercolumn,'type','node')
++		self.sediment_head=project3d(md,'vector',self.sediment_head,'type','node','layer',1)
++		self.epl_head=project3d(md,'vector',self.epl_head,'type','node','layer',1)
++		self.epl_thickness=project3d(md,'vector',self.epl_thickness,'type','node','layer',1)
++
++		#Lithostatic pressure by default
++		self.pressure=md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.mesh.z.reshape(-1,1))
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++		if StressbalanceAnalysisEnum() in analyses:
++			if not numpy.any(numpy.logical_or(numpy.isnan(md.initialization.vx),numpy.isnan(md.initialization.vy))):
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++		if MasstransportAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++		if BalancethicknessAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			#Triangle with zero velocity
++			if numpy.any(numpy.logical_and(numpy.sum(numpy.abs(md.initialization.vx[md.mesh.elements-1]),axis=1)==0,\
++			                               numpy.sum(numpy.abs(md.initialization.vy[md.mesh.elements-1]),axis=1)==0)):
++				md.checkmessage("at least one triangle has all its vertices with a zero velocity")
++		if ThermalAnalysisEnum() in analyses:
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices])
++			if md.mesh.dimension()==3:
++				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
++			if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
++				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
++		if HydrologyShreveAnalysisEnum() in analyses:
++			if hasattr(md.hydrology,'hydrologyshreve'):
++				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
++		if HydrologyDCInefficientAnalysisEnum() in analyses:
++			if hasattr(md.hydrology,'hydrologydc'):
++				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices,1])
++		if HydrologyDCEfficientAnalysisEnum() in analyses:
++			if hasattr(md.hydrology,'hydrologydc'):
++				if md.hydrology.isefficientlayer==1:
++					md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices,1])
++					md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices,1])
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		yts=365.0*24.0*3600.0
++
++		WriteData(fid,'data',self.vx,'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts)
++		WriteData(fid,'data',self.vy,'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts)
++		WriteData(fid,'data',self.vz,'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts)
++		WriteData(fid,'data',self.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum())
++		WriteData(fid,'data',self.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum())
++		WriteData(fid,'data',self.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum())
++		WriteData(fid,'data',self.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum())
++		WriteData(fid,'data',self.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum())
++		WriteData(fid,'data',self.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum())
++		WriteData(fid,'data',self.epl_thickness,'format','DoubleMat','mattype',1,'enum',HydrologydcEplThicknessEnum())
++
++		
++		if md.thermal.isenthalpy:
++			tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
++			pos  = numpy.nonzero(md.initialization.temperature > tpmp)[0]
++			enthalpy      = md.materials.heatcapacity*(md.initialization.temperature-md.constants.referencetemperature);
++			enthalpy[pos] = md.materials.heatcapacity*tpmp[pos].reshape(-1,1) - md.constants.referencetemperature + md.materials.latentheat*md.initialization.waterfraction[pos].reshape(-1,1)
++			WriteData(fid,'data',enthalpy,'format','DoubleMat','mattype',1,'enum',EnthalpyEnum());
++
++	# }}}
+Index: ../trunk-jpl/src/py3/classes/hydrologydc.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 0)
++++ ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 19895)
+@@ -0,0 +1,219 @@
++import numpy
++from project3d import project3d
++from fielddisplay import fielddisplay
++from EnumDefinitions import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class hydrologydc(object):
++	"""
++	Hydrologydc class definition
++
++	Usage:
++		hydrologydc=hydrologydc();
++	"""
++
++	def __init__(self): # {{{
++		self.water_compressibility    = 0
++		self.isefficientlayer         = 0
++		self.penalty_factor           = 0
++		self.penalty_lock             = 0
++		self.rel_tol                  = 0
++		self.max_iter                 = 0
++		self.sedimentlimit_flag       = 0
++		self.sedimentlimit            = 0
++		self.transfer_flag            = 0
++		self.leakage_factor           = 0
++		self.basal_moulin_input       = float('NaN')
++
++		self.spcsediment_head         = float('NaN')
++		self.sediment_transmitivity   = float('NaN')
++		self.sediment_compressibility = 0
++		self.sediment_porosity        = 0
++		self.sediment_thickness       = 0
++
++
++		self.spcepl_head              = float('NaN')
++		self.mask_eplactive_node      = float('NaN')
++		self.epl_compressibility      = 0
++		self.epl_porosity             = 0
++		self.epl_initial_thickness    = 0
++		self.epl_colapse_thickness    = 0
++		self.epl_thick_comp           = 0
++		self.epl_max_thickness        = 0
++		self.epl_conductivity         = 0
++		self.eplflip_lock             = 0
++				 
++		#set defaults
++		self.setdefaultparameters()
++	#}}}
++	def __repr__(self): # {{{
++		string='   hydrology Dual Porous Continuum Equivalent parameters:'
++		string='   - general parameters'
++		string="%s\n%s"%(string,fielddisplay(self,'water_compressibility','compressibility of water [Pa^-1]'))
++		string="%s\n%s"%(string,fielddisplay(self,'isefficientlayer','do we use an efficient drainage system [1: true 0: false]'))
++		string="%s\n%s"%(string,fielddisplay(self,'penalty_factor','exponent of the value used in the penalisation method [dimensionless]'))
++		string="%s\n%s"%(string,fielddisplay(self,'penalty_lock','stabilize unstable constraints that keep zigzagging after n iteration (default is 0, no stabilization)'))
++		string="%s\n%s"%(string,fielddisplay(self,'rel_tol','tolerance of the nonlinear iteration for the transfer between layers [dimensionless]'))
++		string="%s\n%s"%(string,fielddisplay(self,'max_iter','maximum number of nonlinear iteration'))
++		string="%s\n%s"%(string,fielddisplay(self,'basal_moulin_input','water flux at a given point [m3 s-1]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit_flag','what kind of upper limit is applied for the inefficient layer'))
++		string="%s\n\t\t%s"%(string,'0: no limit')
++		string="%s\n\t\t%s"%(string,'1: user defined sedimentlimit')
++		string="%s\n\t\t%s"%(string,'2: hydrostatic pressure')
++		string="%s\n\t\t%s"%(string,'3: normal stress')
++	
++		if self.sedimentlimit_flag==1:
++			string="%s\n%s"%(string,fielddisplay(self,'sedimentlimit','user defined upper limit for the inefficient layer [m]'))
++
++		string="%s\n%s"%(string,fielddisplay(self,'transfer_flag','what kind of transfer method is applied between the layers'))
++		string="%s\n\t\t%s"%(string,'0: no transfer')
++		string="%s\n\t\t%s"%(string,'1: constant leakage factor: leakage_factor')
++			 
++		if self.transfer_flag is 1:
++			string="%s\n%s"%(string,fielddisplay(self,'leakage_factor','user defined leakage factor [m]'))
++
++		string="%s\n%s"%(string,'   - for the sediment layer')
++		string="%s\n%s"%(string,fielddisplay(self,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sediment_compressibility','sediment compressibility [Pa^-1]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sediment_porosity','sediment [dimensionless]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sediment_thickness','sediment thickness [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'sediment_transmitivity','sediment transmitivity [m^2/s]'))
++
++		if self.isefficientlayer==1:
++			string="%s\n%s"%(string,'   - for the epl layer')
++			string="%s\n%s"%(string,fielddisplay(self,'spcepl_head','epl water head constraints (NaN means no constraint) [m above MSL]'))
++			string="%s\n%s"%(string,fielddisplay(self,'mask_eplactive_node','active (1) or not (0) EPL'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_compressibility','epl compressibility [Pa^-1]'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_porosity','epl [dimensionless]'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_max_thickness','epl initial thickness [m]'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_initial_thickness','epl initial thickness [m]'))			
++			string="%s\n%s"%(string,fielddisplay(self,'epl_colapse_thickness','epl colapsing thickness [m]'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_thick_comp','epl thickness computation flag'))
++			string="%s\n%s"%(string,fielddisplay(self,'epl_conductivity','epl conductivity [m^2/s]'))
++			string="%s\n%s"%(string,fielddisplay(self,'eplflip_lock','lock epl activity to avoid flip-floping (default is 0, no stabilization)'))
++		return string
++#}}}
++	def extrude(self,md): # {{{
++		self.spcsediment_head=project3d(md,'vector',self.spcsediment_head,'type','node','layer',1)
++		self.spcepl_head=project3d(md,'vector',self.spcepl_head,'type','node','layer',1)
++		self.mask_eplactive_node=project3d(md,'vector',self.mask_eplactive_node,'type','node','layer',1)
++		self.sediment_transmitivity=project3d(md,'vector',self.sediment_transmitivity,'type','node','layer',1)
++		self.basal_moulin_input=project3d(md,'vector',self.basal_moulin_input,'type','node','layer',1)
++		if self.isefficientlayer==1 :
++			self.spcepl_head=project3d(md,'vector',self.spcepl_head,'type','node','layer',1)
++		return self
++	#}}}
++	def setdefaultparameters(self): #{{{ 
++
++		#Parameters from de Fleurian 2014
++		self.water_compressibility    = 5.04e-10
++		self.isefficientlayer         = 1
++		self.penalty_factor           = 3
++		self.penalty_lock             = 0
++		self.rel_tol                  = 1.0e-06
++		self.max_iter                 = 100
++		self.sedimentlimit_flag       = 0
++		self.sedimentlimit            = 0
++		self.transfer_flag            = 0
++		self.leakage_factor           = 10.0
++
++		self.sediment_compressibility = 1.0e-08
++		self.sediment_porosity        = 0.4
++		self.sediment_thickness       = 20.0
++		self.sediment_transmitivity   = 8.0e-04
++
++		self.epl_compressibility      = 1.0e-08
++		self.epl_porosity             = 0.4
++		self.epl_initial_thickness    = 1.0
++		self.epl_colapse_thickness    = 1.0e-3
++		self.epl_thick_comp           = 1
++		self.epl_max_thickness        = 5.0
++		self.epl_conductivity         = 8.0e-02
++		self.eplflip_lock             = 0
++		
++		return self
++	# }}}
++	def initialize(self,md): # {{{
++		if numpy.all(numpy.isnan(self.basal_moulin_input)):
++			self.basal_moulin_input=numpy.zeros((md.mesh.numberofvertices,1))
++			print("      no hydrology.basal_moulin_input specified: values set as zero")
++
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses): #{{{ 
++
++		#Early return
++		if HydrologyDCInefficientAnalysisEnum() not in analyses and HydrologyDCEfficientAnalysisEnum() not in analyses:
++			return md
++
++		md = checkfield(md,'fieldname','hydrology.water_compressibility','numel',[1],'>',0.)
++		md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.penalty_lock','>=',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.rel_tol','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.max_iter','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0,1,2,3])
++		md = checkfield(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1])
++
++		if self.sedimentlimit_flag==1:
++			md = checkfield(md,'fieldname','hydrology.sedimentlimit','>',0.,'numel',[1])
++
++		if self.transfer_flag==1:
++			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
++
++		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0.,'numel',[1])
++		md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1])
++		if self.isefficientlayer==1:
++			md = checkfield(md,'fieldname','hydrology.spcepl_head','timeseries',1)
++			md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1])
++			md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1])
++			md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1])
++			md = checkfield(md,'fieldname','hydrology.epl_max_thickness','numel',[1],'>',0.)
++			md = checkfield(md,'fieldname','hydrology.epl_initial_thickness','numel',[1],'>',0.)
++			md = checkfield(md,'fieldname','hydrology.epl_colapse_thickness','numel',[1],'>',0.)
++			md = checkfield(md,'fieldname','hydrology.epl_thick_comp','numel',[1],'values',[0,1])
++			md = checkfield(md,'fieldname','hydrology.eplflip_lock','>=',0.,'numel',[1])
++			if self.epl_colapse_thickness > self.epl_initial_thickness:
++				md.checkmessage('Colapsing thickness for EPL larger than initial thickness')
++			md = checkfield(md,'fieldname','hydrology.epl_conductivity','numel',[1],'>',0.)
++	# }}}
++	def marshall(self,md,fid): #{{{ 
++		WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologydcEnum(),'format','Integer')
++		WriteData(fid,'object',self,'fieldname','water_compressibility','format','Double')
++		WriteData(fid,'object',self,'fieldname','isefficientlayer','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','penalty_factor','format','Double')
++		WriteData(fid,'object',self,'fieldname','penalty_lock','format','Integer')
++		WriteData(fid,'object',self,'fieldname','rel_tol','format','Double')
++		WriteData(fid,'object',self,'fieldname','max_iter','format','Integer')
++		WriteData(fid,'object',self,'fieldname','sedimentlimit_flag','format','Integer')
++		WriteData(fid,'object',self,'fieldname','transfer_flag','format','Integer')
++		if self.sedimentlimit_flag==1:
++			WriteData(fid,'object',self,'fieldname','sedimentlimit','format','Double')
++
++		if self.transfer_flag==1:
++			WriteData(fid,'object',self,'fieldname','leakage_factor','format','Double')
++
++		WriteData(fid,'object',self,'fieldname','basal_moulin_input','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)
++		WriteData(fid,'object',self,'fieldname','sediment_compressibility','format','Double')
++		WriteData(fid,'object',self,'fieldname','sediment_porosity','format','Double')			
++		WriteData(fid,'object',self,'fieldname','sediment_thickness','format','Double')
++		WriteData(fid,'object',self,'fieldname','sediment_transmitivity','format','DoubleMat','mattype',1)		
++
++		if self.isefficientlayer==1:	
++			WriteData(fid,'object',self,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1)	
++			WriteData(fid,'object',self,'fieldname','mask_eplactive_node','format','DoubleMat','mattype',1)
++			WriteData(fid,'object',self,'fieldname','epl_compressibility','format','Double')			
++			WriteData(fid,'object',self,'fieldname','epl_porosity','format','Double')			
++			WriteData(fid,'object',self,'fieldname','epl_max_thickness','format','Double')
++			WriteData(fid,'object',self,'fieldname','epl_initial_thickness','format','Double')			
++			WriteData(fid,'object',self,'fieldname','epl_colapse_thickness','format','Double')
++			WriteData(fid,'object',self,'fieldname','epl_thick_comp','format','Integer')			
++			WriteData(fid,'object',self,'fieldname','epl_conductivity','format','Double')
++			WriteData(fid,'object',self,'fieldname','eplflip_lock','format','Integer')
++	# }}}
+Index: ../trunk-jpl/src/py3/coordsystems/ll2xy.py
+===================================================================
+--- ../trunk-jpl/src/py3/coordsystems/ll2xy.py	(revision 0)
++++ ../trunk-jpl/src/py3/coordsystems/ll2xy.py	(revision 19895)
+@@ -0,0 +1,62 @@
++import numpy as npy 
++
++def ll2xy(lat,lon,sgn=-1,central_meridian=0,standard_parallel=71):
++	'''
++	LL2XY - converts lat lon to polar stereographic
++
++   Converts from geodetic latitude and longitude to Polar 
++   Stereographic (X,Y) coordinates for the polar regions.
++   Author: Michael P. Schodlok, December 2003 (map2ll)
++
++   Usage:
++      x,y = ll2xy(lat,lon,sgn)
++      x,y = ll2xy(lat,lon,sgn,central_meridian,standard_parallel)
++
++      - sgn = Sign of latitude +1 : north latitude (default is mer=45 lat=70)
++                               -1 : south latitude (default is mer=0  lat=71)
++	'''
++
++	assert sgn==1 or sgn==-1, 'error: sgn should be either +1 or -1'
++
++	#Get central_meridian and standard_parallel depending on hemisphere
++	if sgn == 1:
++		delta = 45
++		slat = 70
++		print('		ll2xy: creating coordinates in north polar stereographic (Std Latitude: 70N Meridian: 45)')
++	else: 
++		delta = central_meridian
++		slat = standard_parallel
++		print('		ll2xy: creating coordinates in south polar stereographic (Std Latitude: 71S Meridian: 0)')
++	
++	# Conversion constant from degrees to radians
++	cde = 57.29577951
++	# Radius of the earth in meters
++	re = 6378.273*10**3
++	# Eccentricity of the Hughes ellipsoid squared
++	ex2 = .006693883
++	# Eccentricity of the Hughes ellipsoid
++	ex = npy.sqrt(ex2)
++	
++	latitude = npy.abs(lat) * npy.pi/180.
++	longitude = (lon + delta) * npy.pi/180.
++	
++	# compute X and Y in grid coordinates.
++	T = npy.tan(npy.pi/4-latitude/2) / ((1-ex*npy.sin(latitude))/(1+ex*npy.sin(latitude)))**(ex/2)
++	
++	if (90 - slat) <  1.e-5:
++		rho = 2.*re*T/npy.sqrt((1.+ex)**(1.+ex)*(1.-ex)**(1.-ex))
++	else:
++		sl  = slat*npy.pi/180.
++		tc  = npy.tan(npy.pi/4.-sl/2.)/((1.-ex*npy.sin(sl))/(1.+ex*npy.sin(sl)))**(ex/2.)
++		mc  = npy.cos(sl)/npy.sqrt(1.0-ex2*(npy.sin(sl)**2))
++		rho = re*mc*T/tc
++	
++	y = -rho * sgn * npy.cos(sgn*longitude)
++	x =  rho * sgn * npy.sin(sgn*longitude)
++
++	cnt1=npy.nonzero(latitude>= npy.pi/2.)[0]
++	
++	if cnt1:
++		x[cnt1,0] = 0.0
++		y[cnt1,0] = 0.0
++	return x,y
+Index: ../trunk-jpl/src/py3/coordsystems/xy2ll.py
+===================================================================
+--- ../trunk-jpl/src/py3/coordsystems/xy2ll.py	(revision 0)
++++ ../trunk-jpl/src/py3/coordsystems/xy2ll.py	(revision 19895)
+@@ -0,0 +1,82 @@
++import numpy as npy
++from math import pi
++
++def xy2ll(x, y, sgn, *args):
++	'''
++	XY2LL - converts xy to lat long
++	
++	Converts Polar  Stereographic (X, Y) coordinates for the polar regions to
++	latitude and longitude Stereographic (X, Y) coordinates for the polar
++	regions.
++	Author: Michael P. Schodlok, December 2003 (map2xy.m)
++	
++	Usage:
++	   [lat, lon] = xy2ll(x, y, sgn);
++	   [lat, lon] = xy2ll(x, y, sgn, central_meridian, standard_parallel);
++	
++	   - sgn = Sign of latitude +1 : north latitude (default is mer=45 lat=70)
++	                            -1 : south latitude (default is mer=0  lat=71)
++	'''
++
++	#Get central_meridian and standard_parallel depending on hemisphere
++	if len(args) == 2:
++		delta = args[0]
++		slat  = args[1]
++	elif len(args) == 0:
++		if sgn == 1:
++			delta = 45. 
++			slat = 70.
++			print('		xy2ll: creating coordinates in north polar stereographic (Std Latitude: 70degN Meridian: 45deg)')
++		elif sgn == -1:
++			delta = 0.  
++			slat = 71.
++			print('		xy2ll: creating coordinates in south polar stereographic (Std Latitude: 71degS Meridian: 0deg)')
++		else:
++			raise ValueError('sgn should be either +1 or -1')
++	else:
++		raise Exception('bad usage: type "help(xy2ll)" for details')
++
++	# if x,y passed as lists, convert to numpy arrays
++	if type(x) != "numpy.ndarray":
++		x=npy.array(x)
++	if type(y) != "numpy.ndarray":
++		y=npy.array(y)
++
++	## Conversion constant from degrees to radians
++	cde = 57.29577951
++	## Radius of the earth in meters
++	re = 6378.273*10**3
++	## Eccentricity of the Hughes ellipsoid squared
++	ex2 = .006693883
++	## Eccentricity of the Hughes ellipsoid
++	ex = npy.sqrt(ex2)
++	
++	sl = slat*pi/180.
++	rho = npy.sqrt(x**2 + y**2)
++	cm = npy.cos(sl) / npy.sqrt(1.0 - ex2 * (npy.sin(sl)**2))
++	T = npy.tan((pi/4.0) - (sl/2.0)) / ((1.0 - ex*npy.sin(sl)) / (1.0 + ex*npy.sin(sl)))**(ex / 2.0)
++	
++	if abs(slat-90.) < 1.e-5:
++		T = rho*npy.sqrt((1. + ex)**(1. + ex) * (1. - ex)**(1. - ex)) / 2. / re
++	else:
++		T = rho * T / (re * cm)
++	
++	chi = (pi / 2.0) - 2.0 * npy.arctan(T)
++	lat = chi + ((ex2 / 2.0) + (5.0 * ex2**2.0 / 24.0) + (ex2**3.0 / 12.0)) * \
++		npy.sin(2 * chi) + ((7.0 * ex2**2.0 / 48.0) + (29.0 * ex2**3 / 240.0)) * \
++		npy.sin(4.0 * chi) + (7.0 * ex2**3.0 / 120.0) * npy.sin(6.0 * chi) 
++	
++	lat = sgn * lat
++	lon = npy.arctan2(sgn * x,-sgn * y)
++	lon = sgn * lon
++	
++	res1 = npy.nonzero(rho <= 0.1)[0]
++	if len(res1) > 0:
++		lat[res1] = 90. * sgn
++		lon[res1] = 0.0
++	
++	lon = lon * 180. / pi
++	lat = lat * 180. / pi
++	lon = lon - delta 
++
++	return lat, lon
+Index: ../trunk-jpl/src/py3/inversions/supportedcontrols.py
+===================================================================
+--- ../trunk-jpl/src/py3/inversions/supportedcontrols.py	(revision 0)
++++ ../trunk-jpl/src/py3/inversions/supportedcontrols.py	(revision 19895)
+@@ -0,0 +1,2 @@
++def supportedcontrols():
++	return ['BalancethicknessThickeningRate','FrictionCoefficient','FrictionAs','MaterialsRheologyBbar','DamageDbar','Vx','Vy']
+Index: ../trunk-jpl/src/py3/inversions/parametercontroldrag.py
+===================================================================
+--- ../trunk-jpl/src/py3/inversions/parametercontroldrag.py	(revision 0)
++++ ../trunk-jpl/src/py3/inversions/parametercontroldrag.py	(revision 19895)
+@@ -0,0 +1,118 @@
++def parametercontroldrag(md,*args):
++	"""
++	PARAMETERCONTROLDRAG - parameterization for control method on drag
++
++	It is possible to specify the number of steps, values for the
++	minimum and maximum values of the drag, the 
++	kind of cm_responses to use or the the optscal.
++
++	Usage:
++	   md=parametercontroldrag(md,varargin)
++
++	Example:
++	  md=parametercontroldrag(md)
++	  md=parametercontroldrag(md,'nsteps',20,'cm_responses',0)
++	  md=parametercontroldrag(md,'cm_min',1,'cm_max',150,'cm_jump',0.99,'maxiter',20)
++	  md=parametercontroldrag(md,eps_cm',10^-4,'optscal',[10^7 10^8])
++
++	See also PARAMETERCONTROLB
++	"""
++
++	#process options
++	options=pairoptions(**kwargs)
++
++	#control type
++	md.inversion.control_parameters='FrictionCoefficient'
++
++	#weights
++	weights=options.getfieldvalue('weights',npy.ones(md.mesh.numberofvertices))
++	if npy.size(weights)!=md.mesh.numberofvertices:
++		md.inversion.cost_functions_coefficients=ones(md.mesh.numberofvertices)
++	else:
++		md.inversion.cost_functions_coefficients=weights
++
++	#nsteps
++	nsteps=options.getfieldvalue('nsteps',100);
++	if (npy.size(nsteps)!=1) | (nsteps<=0) | (floor(nsteps)!=nsteps):
++		md.inversion.nsteps=100
++	else:
++		md.inversion.nsteps=nsteps
++
++	#cm_min
++	cm_min=options.getfieldvalue('cm_min',ones(md.mesh.numberofvertices))
++	if (npy.size(cm_min)==1):
++		md.inversion.min_parameters=cm_min*ones(md.mesh.numberofvertices)
++	elif (npy.size(cm_min)==md.mesh.numberofvertices):
++		md.inversion.min_parameters=cm_min
++	else:
++		md.inversion.min_parameters=cm_min;
++
++	#cm_max
++	cm_max=options.getfieldvalue('cm_max',250*ones(md.mesh.numberofvertices))
++	if (npy.size(cm_max)==1):
++		md.inversion.max_parameters=cm_max*ones(md.mesh.numberofvertices)
++	elif (npy.size(cm_max)==md.mesh.numberofvertices):
++		md.inversion.max_parameters=cm_max
++	else:
++		md.inversion.max_parameters=cm_max
++
++	#eps_cm
++	eps_cm=optoins.getfieldvalue('eps_cm',float('nan'))
++	if (npy.size(eps_cm)~=1 | eps_cm<0 ):
++		md.inversion.cost_function_threshold=float('nan')
++	else:
++		md.inversion.cost_function_threshold=eps_cm
++
++	#maxiter
++	maxiter=options.getfieldvalue('maxiter',10*ones(md.inversion.nsteps))
++	if (npy.any(maxiter<0) | npy.any(floor(maxiter)~=maxiter)):
++		md.inversion.maxiter_per_step=10*ones(md.inversion.nsteps)
++	else:
++		raise RuntimeError("not implemented yet, see below matlab lines")
++		#md.inversion.maxiter_per_step=repmat(maxiter(:),md.inversion.nsteps,1);
++		#md.inversion.maxiter_per_step(md.inversion.nsteps+1:end)=[];
++
++	#cm_jump
++	cm_jump=options.getfieldvalue('cm_jump',0.8*ones(md.inversion.nsteps))
++	if !npy.isreal(cm_jump):
++		md.inversion.step_threshold=0.8*ones(md.inversion.nsteps)
++	else:
++		raise RuntimeError("not implemented yet, see below matlab lines")
++		#md.inversion.step_threshold=repmat(cm_jump(:),md.inversion.nsteps,1);
++		#md.inversion.step_threshold(md.inversion.nsteps+1:end)=[];
++
++	#cm_responses
++	found=0;
++	if options.exist('cm_responses'):
++		cm_responses=options.getfieldvalue('cm_responses')
++		if ~any(~ismember(cm_responses,[101 105])):
++			md.inversion.cost_functions=repmat(cm_responses(:),md.inversion.nsteps,1);
++			md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
++			found=1;
++	if ~found
++		third=ceil(md.inversion.nsteps/3);
++		md.inversion.cost_functions=[...
++			103*ones(third,1);...
++			101*ones(third,1);...
++			repmat([101;101;103;101],third,1)...
++			];
++		md.inversion.cost_functions(md.inversion.nsteps+1:end)=[];
++	end
++
++	%optscal
++	found=0;
++	if exist(options,'optscal'),
++		optscal=getfieldvalue(options,'optscal');
++		if ~any(optscal<0),
++			md.inversion.gradient_scaling=repmat(optscal(:),md.inversion.nsteps,1);
++			md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
++			found=1;
++		end
++	end
++	if ~found
++		third=ceil(md.inversion.nsteps/3);
++		md.inversion.gradient_scaling=[50*ones(3,1);15*ones(third-3,1);10*ones(third,1);repmat([10;10;20;10],third,1)];
++		md.inversion.gradient_scaling(md.inversion.nsteps+1:end)=[];
++	end
++
++	return md
+Index: ../trunk-jpl/src/py3/inversions/marshallcostfunctions.py
+===================================================================
+--- ../trunk-jpl/src/py3/inversions/marshallcostfunctions.py	(revision 0)
++++ ../trunk-jpl/src/py3/inversions/marshallcostfunctions.py	(revision 19895)
+@@ -0,0 +1,33 @@
++import copy
++from EnumDefinitions import *
++
++def marshallcostfunctions(cost_functions):
++
++	#copy list first
++	data=copy.deepcopy(cost_functions)
++
++	#convert to  Enums
++	pos=[i for i,x in enumerate(cost_functions) if x==101];
++	for i in pos: data[i]=SurfaceAbsVelMisfitEnum()        
++	pos=[i for i,x in enumerate(cost_functions) if x==102];
++	for i in pos: data[i]=SurfaceRelVelMisfitEnum()        
++	pos=[i for i,x in enumerate(cost_functions) if x==103];
++	for i in pos: data[i]=SurfaceLogVelMisfitEnum()        
++	pos=[i for i,x in enumerate(cost_functions) if x==104];
++	for i in pos: data[i]=SurfaceLogVxVyMisfitEnum()       
++	pos=[i for i,x in enumerate(cost_functions) if x==105];
++	for i in pos: data[i]=SurfaceAverageVelMisfitEnum()    
++	pos=[i for i,x in enumerate(cost_functions) if x==201];
++	for i in pos: data[i]=ThicknessAbsMisfitEnum()         
++	pos=[i for i,x in enumerate(cost_functions) if x==501];
++	for i in pos: data[i]=DragCoefficientAbsGradientEnum() 
++	pos=[i for i,x in enumerate(cost_functions) if x==502];
++	for i in pos: data[i]=RheologyBbarAbsGradientEnum()    
++	pos=[i for i,x in enumerate(cost_functions) if x==503];
++	for i in pos: data[i]=ThicknessAbsGradientEnum()       
++	pos=[i for i,x in enumerate(cost_functions) if x==504];
++	for i in pos: data[i]=ThicknessAlongGradientEnum()     
++	pos=[i for i,x in enumerate(cost_functions) if x==505];
++	for i in pos: data[i]=ThicknessAcrossGradientEnum()    
++
++	return data
+Index: ../trunk-jpl/src/py3/inversions/supportedcostfunctions.py
+===================================================================
+--- ../trunk-jpl/src/py3/inversions/supportedcostfunctions.py	(revision 0)
++++ ../trunk-jpl/src/py3/inversions/supportedcostfunctions.py	(revision 19895)
+@@ -0,0 +1,2 @@
++def supportedcostfunctions():
++	return [101,102,103,104,105,201,501,502,503,504,505]
+Index: ../trunk-jpl/src/py3/tmp
+===================================================================
+--- ../trunk-jpl/src/py3/tmp	(revision 0)
++++ ../trunk-jpl/src/py3/tmp	(revision 19895)
+@@ -0,0 +1,425 @@
++
++md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
++md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)
++md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
++md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
++    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++      md = checkfield(md,fieldname,options);
+Index: ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py.bak
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py.bak	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py.bak	(revision 19895)
+@@ -0,0 +1,25 @@
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++
++def netCDFRead(filename):
++	
++	def walktree(data):
++		keys = data.groups.keys()
++		yield keys
++		for key in keys:
++			for children in walktree(data.groups[str(key)]):
++				yield children
++				
++	if path.exists(filename):
++		print ('Opening {} for reading '.format(filename))
++		NCData=Dataset(filename, 'r')
++		class_dict={}
++		
++		for children in walktree(NCData):
++			for child in children:
++				class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype')+'()')
++
++		print class_dict
++				
+Index: ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/read_netCDF.py	(revision 19895)
+@@ -0,0 +1,25 @@
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++
++def netCDFRead(filename):
++	
++	def walktree(data):
++		keys = list(data.groups.keys())
++		yield keys
++		for key in keys:
++			for children in walktree(data.groups[str(key)]):
++				yield children
++				
++	if path.exists(filename):
++		print(('Opening {} for reading '.format(filename)))
++		NCData=Dataset(filename, 'r')
++		class_dict={}
++		
++		for children in walktree(NCData):
++			for child in children:
++				class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype')+'()')
++
++		print(class_dict)
++				
+Index: ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py.bak
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py.bak	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py.bak	(revision 19895)
+@@ -0,0 +1,122 @@
++#module imports {{{
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++#}}}
++
++				
++class truc(object):
++	#properties
++	def __init__(self,*filename):#{{{
++
++		def netCDFread(filename):
++			def walktree(data):
++				keys = data.groups.keys()
++				yield keys
++				for key in keys:
++					for children in walktree(data.groups[str(key)]):
++						yield children
++
++			if path.exists(filename):
++				print ('Opening {} for reading '.format(filename))
++				NCData=Dataset(filename, 'r')
++				class_dict={}
++				
++				for children in walktree(NCData):
++					for child in children:
++						class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype'))
++
++				return class_dict
++
++		if filename:		
++			classtype=netCDFread(filename[0])
++		else:
++			classtype=self.default_prop()
++			
++		module=map(__import__,dict.values(classtype))
++
++		for i,mod in enumerate(dict.keys(classtype)):
++			self.__dict__[mod] = getattr(module[i],str(classtype[str(mod)]))()
++			
++		#}}}
++	def default_prop(self):    # {{{
++		# ordered list of properties since vars(self) is random
++		return {'mesh':'mesh2d',\
++		        'mask':'mask',\
++		        'geometry':'geometry',\
++		        'constants':'constants',\
++		        'smb':'SMB',\
++		        'basalforcings':'basalforcings',\
++		        'materials':'matice',\
++		        'damage':'damage',\
++		        'friction':'friction',\
++		        'flowequation':'flowequation',\
++		        'timestepping':'timestepping',\
++		        'initialization':'initialization',\
++		        'rifts':'rifts',\
++		        'debug':'debug',\
++		        'verbose':'verbose',\
++		        'settings':'settings',\
++		        'toolkits':'toolkits',\
++		        'cluster':'generic',\
++		        'balancethickness':'balancethickness',\
++		        'stressbalance':'stressbalance',\
++		        'groundingline':'groundingline',\
++		        'hydrology':'hydrologyshreve',\
++		        'masstransport':'masstransport',\
++		        'thermal':'thermal',\
++		        'steadystate':'steadystate',\
++		        'transient':'transient',\
++		        'calving':'calving',\
++						'gia':'gia',\
++		        'autodiff':'autodiff',\
++		        'flaim':'flaim',\
++		        'inversion':'inversion',\
++		        'qmu':'qmu',\
++		        'outputdefinition':'outputdefinition',\
++		        'results':'results',\
++		        'radaroverlay':'radaroverlay',\
++		        'miscellaneous':'miscellaneous',\
++		        'private':'private'}
++	# }}}
++		
++	def __repr__(obj): #{{{
++		#print "Here %s the number: %d" % ("is", 37)
++		string="%19s: %-22s -- %s" % ("mesh","[%s,%s]" % ("1x1",obj.mesh.__class__.__name__),"mesh properties")
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("friction","[%s,%s]" % ("1x1",obj.friction.__class__.__name__),"basal friction/drag properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flowequation","[%s,%s]" % ("1x1",obj.flowequation.__class__.__name__),"flow equations"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("timestepping","[%s,%s]" % ("1x1",obj.timestepping.__class__.__name__),"time stepping for transient models"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("initialization","[%s,%s]" % ("1x1",obj.initialization.__class__.__name__),"initial guess/state"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("rifts","[%s,%s]" % ("1x1",obj.rifts.__class__.__name__),"rifts properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("debug","[%s,%s]" % ("1x1",obj.debug.__class__.__name__),"debugging tools (valgrind, gprof)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("verbose","[%s,%s]" % ("1x1",obj.verbose.__class__.__name__),"verbosity level in solve"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("settings","[%s,%s]" % ("1x1",obj.settings.__class__.__name__),"settings properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("toolkits","[%s,%s]" % ("1x1",obj.toolkits.__class__.__name__),"PETSc options for each solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("cluster","[%s,%s]" % ("1x1",obj.cluster.__class__.__name__),"cluster parameters (number of cpus...)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("balancethickness","[%s,%s]" % ("1x1",obj.balancethickness.__class__.__name__),"parameters for balancethickness solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("stressbalance","[%s,%s]" % ("1x1",obj.stressbalance.__class__.__name__),"parameters for stressbalance solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("groundingline","[%s,%s]" % ("1x1",obj.groundingline.__class__.__name__),"parameters for groundingline solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("hydrology","[%s,%s]" % ("1x1",obj.hydrology.__class__.__name__),"parameters for hydrology solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("masstransport","[%s,%s]" % ("1x1",obj.masstransport.__class__.__name__),"parameters for masstransport solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("thermal","[%s,%s]" % ("1x1",obj.thermal.__class__.__name__),"parameters for thermal solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("steadystate","[%s,%s]" % ("1x1",obj.steadystate.__class__.__name__),"parameters for steadystate solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("results","[%s,%s]" % ("1x1",obj.results.__class__.__name__),"model results"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
++		return string
++	# }}}
+Index: ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py.bak
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py.bak	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py.bak	(revision 19895)
+@@ -0,0 +1,218 @@
++from netCDF4 import Dataset, stringtochar
++import numpy
++import time
++import collections
++from mesh2d import *
++from mesh3dprisms import *
++from results import *
++from os import path, remove
++
++def export_netCDF(md,filename):
++	#Now going on Real treatment
++	if path.exists(filename):
++		print ('File {} allready exist'.format(filename))
++		newname=raw_input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			remove(filename)
++		else:
++			print ('New file name is {}'.format(newname))
++			filename=newname
++			
++	NCData=Dataset(filename, 'w', format='NETCDF4')
++	NCData.description = 'Results for run' + md.miscellaneous.name
++	NCData.history = 'Created ' + time.ctime(time.time())
++
++	#gather geometry and timestepping as dimensions
++	Duration=md.timestepping.final_time-md.timestepping.start_time
++	if Duration>0 and md.timestepping.time_step*md.settings.output_frequency>0:
++		StepNum=Duration/(md.timestepping.time_step*md.settings.output_frequency)
++	else:
++		StepNum=1
++		
++	Dimension1=NCData.createDimension('Dimension1',md.mesh.numberofelements)
++	Dimension2=NCData.createDimension('Dimension2',md.mesh.numberofvertices)
++	Dimension3=NCData.createDimension('Dimension3',numpy.shape(md.mesh.elements)[1])
++	Dimension4=NCData.createDimension('Dimension4',StepNum)
++	Dimension5=NCData.createDimension('Dimension5',40)
++	Dimension6=NCData.createDimension('Dimension6',2) 
++
++	DimDict = {len(Dimension1):'Dimension1',
++						 len(Dimension2):'Dimension2',
++						 len(Dimension3):'Dimension3',
++						 len(Dimension4):'Dimension4',
++						 len(Dimension5):'Dimension5',
++						 len(Dimension6):'Dimension6'}
++
++	#get all model classes and create respective groups
++	groups=dict.keys(md.__dict__)
++	for group in groups:
++		NCgroup=NCData.createGroup(str(group))
++		#In each group gather the fields of the class
++		fields=dict.keys(md.__dict__[group].__dict__)
++
++		#Special treatment for the results
++		if str(group)=='results':
++			for supfield in fields:#looping on the different solutions
++				NCgroup.__setattr__('classtype', "results")
++				Subgroup=NCgroup.createGroup(str(supfield))
++				Subgroup.__setattr__('classtype',str(supfield))
++				if type(md.results.__dict__[supfield])==list:#the solution have several timestep
++					#get last timesteps and output frequency
++					last_step = numpy.size(md.results.__dict__[supfield])
++					step_freq = md.settings.output_frequency
++					#grab first time step
++					subfields=dict.keys(md.results.__dict__[supfield].__getitem__(0).__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							Var=md.results.__dict__[supfield].__getitem__(0).__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,Subgroup,DimDict,True,last_step,step_freq,md,supfield)
++					
++				elif type(md.results.__dict__[supfield])==results:#only one timestep
++					subfields=dict.keys(md.results.__dict__[supfield].__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							print 'Treating '+str(group)+'.'+str(supfield)+'.'+str(field)
++							Var=md.results.__dict__[supfield].__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++				else:
++					print 'Result format not suported'
++		else:
++			
++			for field in fields:
++				print 'Treating ' +str(group)+'.'+str(field)
++				NCgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__)
++				Var=md.__dict__[group].__dict__[field]
++				DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++	NCData.close()
++
++#============================================================================
++#Define the variables
++def CreateVar(NCData,var,field,Group,DimDict,istime,*step_args):
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++		#grab dimension
++	try:
++		val_shape=dict.keys(var)
++	except TypeError:
++		val_shape=numpy.shape(var)
++
++
++	TypeDict = {float:'f8',
++							'float64':'f8',
++							int:'i8',
++							'int64':'i8'}
++		
++	val_dim=numpy.shape(val_shape)[0]
++	#Now define and fill up variable
++	#treating scalar string or bool as atribute
++	if val_type==str or val_type==bool:
++		Group.__setattr__(str(field), str(var))
++
++	#treating list as string table
++	#matlab does not recognise strings so we have to settle down with char arrays
++	elif val_type==list:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		charvar=stringtochar(numpy.array(var))
++		print charvar
++		print charvar.shape
++		for elt in range(0,val_dim):
++			try:
++				ncvar[elt] = charvar[elt]
++			except IndexError:
++				ncvar[0]= " "
++				#treating bool tables as string tables
++	elif val_type=='bool':
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_shape[0]):
++			ncvar[elt] = str(var[elt])
++			#treating dictionaries as string tables of dim 2
++	elif val_type==collections.OrderedDict:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_dim):
++			ncvar[elt,0]=dict.keys(var)[elt]
++			ncvar[elt,1]=str(dict.values(var)[elt]) #converting to str to avoid potential problems
++			#Now dealing with numeric variables
++	else:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),TypeDict[val_type],dimensions,zlib=True)
++		
++		if istime:
++			last=step_args[0]
++			freq=step_args[1]
++			md=step_args[2]
++			supfield=step_args[3]
++			vartab=var
++			for time in range(freq-1,last,freq):
++				if time!=0:
++					timevar=md.results.__dict__[supfield].__getitem__(time).__dict__[field]
++					print 'Treating results.'+str(supfield)+'.'+str(field)+' for time '+str(time)
++					vartab=numpy.column_stack((vartab,timevar))
++			print numpy.shape(vartab)
++			try:
++				ncvar[:,:]=vartab[:,:]
++			except ValueError:
++				ncvar[:]=vartab.T[:]
++		else:
++			try:
++				nan_val=numpy.isnan(var)
++				if nan_val.all():
++					ncvar [:] = 'NaN'
++				else:
++					ncvar[:] = var
++			except TypeError: #type does not accept nan, get vallue of the variable
++				ncvar[:] = var
++	return DimDict
++
++#============================================================================
++#retriev the dimension tuple from a dictionnary
++def GetDim(NCData,var,shape,DimDict,i,istime):
++	output=[]
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++	#grab dimension
++	for dim in range(0,i): #loop on the dimensions
++		if type(shape[0])==int: 
++			try:
++				output=output+[str(DimDict[shape[dim]])] #test if the dimension allready exist
++			except KeyError: #if not create it
++				if (shape[dim])>1:
++					index=len(DimDict)+1
++					NewDim=NCData.createDimension('Dimension'+str(index),(shape[dim]))
++					DimDict[len(NewDim)]='Dimension'+str(index)
++					output=output+[str(DimDict[shape[dim]])]
++					print 'Defining dimension ' +'Dimension'+str(index)
++		elif type(shape[0])==str:#dealling with a dictionnary
++			try:
++				output=[str(DimDict[numpy.shape(shape)[0]])]+['DictDim']
++			except KeyError:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),numpy.shape(shape)[0])
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=[str(DimDict[numpy.shape(dict.keys(var))[0]])]+['Dimension6']
++				print 'Defining dimension ' +'Dimension'+str(index)
++			break
++	if istime:
++		output=output+['Dimension4']
++	#dealing with char and not string as we should so we need to had a string length
++	if val_type=='bool' or val_type==collections.OrderedDict or val_type==list:
++		charvar=stringtochar(numpy.array(var))
++		stringlength=charvar.shape[charvar.ndim-1]
++		try:
++			output=output+[str(DimDict[stringlength])] #test if the dimension allready exist
++		except KeyError: #if not create it
++			if (shape[dim])>1:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),(stringlength))
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=output+[str(DimDict[stringlength])]
++				print 'Defining dimension ' +'Dimension'+str(index)
++	return tuple(output), DimDict
+
+Property changes on: ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py.bak
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/ClassTry.py	(revision 19895)
+@@ -0,0 +1,122 @@
++#module imports {{{
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++#}}}
++
++				
++class truc(object):
++	#properties
++	def __init__(self,*filename):#{{{
++
++		def netCDFread(filename):
++			def walktree(data):
++				keys = list(data.groups.keys())
++				yield keys
++				for key in keys:
++					for children in walktree(data.groups[str(key)]):
++						yield children
++
++			if path.exists(filename):
++				print(('Opening {} for reading '.format(filename)))
++				NCData=Dataset(filename, 'r')
++				class_dict={}
++				
++				for children in walktree(NCData):
++					for child in children:
++						class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype'))
++
++				return class_dict
++
++		if filename:		
++			classtype=netCDFread(filename[0])
++		else:
++			classtype=self.default_prop()
++			
++		module=list(map(__import__,dict.values(classtype)))
++
++		for i,mod in enumerate(dict.keys(classtype)):
++			self.__dict__[mod] = getattr(module[i],str(classtype[str(mod)]))()
++			
++		#}}}
++	def default_prop(self):    # {{{
++		# ordered list of properties since vars(self) is random
++		return {'mesh':'mesh2d',\
++		        'mask':'mask',\
++		        'geometry':'geometry',\
++		        'constants':'constants',\
++		        'smb':'SMB',\
++		        'basalforcings':'basalforcings',\
++		        'materials':'matice',\
++		        'damage':'damage',\
++		        'friction':'friction',\
++		        'flowequation':'flowequation',\
++		        'timestepping':'timestepping',\
++		        'initialization':'initialization',\
++		        'rifts':'rifts',\
++		        'debug':'debug',\
++		        'verbose':'verbose',\
++		        'settings':'settings',\
++		        'toolkits':'toolkits',\
++		        'cluster':'generic',\
++		        'balancethickness':'balancethickness',\
++		        'stressbalance':'stressbalance',\
++		        'groundingline':'groundingline',\
++		        'hydrology':'hydrologyshreve',\
++		        'masstransport':'masstransport',\
++		        'thermal':'thermal',\
++		        'steadystate':'steadystate',\
++		        'transient':'transient',\
++		        'calving':'calving',\
++						'gia':'gia',\
++		        'autodiff':'autodiff',\
++		        'flaim':'flaim',\
++		        'inversion':'inversion',\
++		        'qmu':'qmu',\
++		        'outputdefinition':'outputdefinition',\
++		        'results':'results',\
++		        'radaroverlay':'radaroverlay',\
++		        'miscellaneous':'miscellaneous',\
++		        'private':'private'}
++	# }}}
++		
++	def __repr__(obj): #{{{
++		#print "Here %s the number: %d" % ("is", 37)
++		string="%19s: %-22s -- %s" % ("mesh","[%s,%s]" % ("1x1",obj.mesh.__class__.__name__),"mesh properties")
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("friction","[%s,%s]" % ("1x1",obj.friction.__class__.__name__),"basal friction/drag properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flowequation","[%s,%s]" % ("1x1",obj.flowequation.__class__.__name__),"flow equations"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("timestepping","[%s,%s]" % ("1x1",obj.timestepping.__class__.__name__),"time stepping for transient models"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("initialization","[%s,%s]" % ("1x1",obj.initialization.__class__.__name__),"initial guess/state"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("rifts","[%s,%s]" % ("1x1",obj.rifts.__class__.__name__),"rifts properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("debug","[%s,%s]" % ("1x1",obj.debug.__class__.__name__),"debugging tools (valgrind, gprof)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("verbose","[%s,%s]" % ("1x1",obj.verbose.__class__.__name__),"verbosity level in solve"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("settings","[%s,%s]" % ("1x1",obj.settings.__class__.__name__),"settings properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("toolkits","[%s,%s]" % ("1x1",obj.toolkits.__class__.__name__),"PETSc options for each solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("cluster","[%s,%s]" % ("1x1",obj.cluster.__class__.__name__),"cluster parameters (number of cpus...)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("balancethickness","[%s,%s]" % ("1x1",obj.balancethickness.__class__.__name__),"parameters for balancethickness solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("stressbalance","[%s,%s]" % ("1x1",obj.stressbalance.__class__.__name__),"parameters for stressbalance solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("groundingline","[%s,%s]" % ("1x1",obj.groundingline.__class__.__name__),"parameters for groundingline solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("hydrology","[%s,%s]" % ("1x1",obj.hydrology.__class__.__name__),"parameters for hydrology solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("masstransport","[%s,%s]" % ("1x1",obj.masstransport.__class__.__name__),"parameters for masstransport solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("thermal","[%s,%s]" % ("1x1",obj.thermal.__class__.__name__),"parameters for thermal solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("steadystate","[%s,%s]" % ("1x1",obj.steadystate.__class__.__name__),"parameters for steadystate solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("results","[%s,%s]" % ("1x1",obj.results.__class__.__name__),"model results"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
++		return string
++	# }}}
+Index: ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py	(revision 19895)
+@@ -0,0 +1,218 @@
++from netCDF4 import Dataset, stringtochar
++import numpy
++import time
++import collections
++from mesh2d import *
++from mesh3dprisms import *
++from results import *
++from os import path, remove
++
++def export_netCDF(md,filename):
++	#Now going on Real treatment
++	if path.exists(filename):
++		print(('File {} allready exist'.format(filename)))
++		newname=input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			remove(filename)
++		else:
++			print(('New file name is {}'.format(newname)))
++			filename=newname
++			
++	NCData=Dataset(filename, 'w', format='NETCDF4')
++	NCData.description = 'Results for run' + md.miscellaneous.name
++	NCData.history = 'Created ' + time.ctime(time.time())
++
++	#gather geometry and timestepping as dimensions
++	Duration=md.timestepping.final_time-md.timestepping.start_time
++	if Duration>0 and md.timestepping.time_step*md.settings.output_frequency>0:
++		StepNum=Duration/(md.timestepping.time_step*md.settings.output_frequency)
++	else:
++		StepNum=1
++		
++	Dimension1=NCData.createDimension('Dimension1',md.mesh.numberofelements)
++	Dimension2=NCData.createDimension('Dimension2',md.mesh.numberofvertices)
++	Dimension3=NCData.createDimension('Dimension3',numpy.shape(md.mesh.elements)[1])
++	Dimension4=NCData.createDimension('Dimension4',StepNum)
++	Dimension5=NCData.createDimension('Dimension5',40)
++	Dimension6=NCData.createDimension('Dimension6',2) 
++
++	DimDict = {len(Dimension1):'Dimension1',
++						 len(Dimension2):'Dimension2',
++						 len(Dimension3):'Dimension3',
++						 len(Dimension4):'Dimension4',
++						 len(Dimension5):'Dimension5',
++						 len(Dimension6):'Dimension6'}
++
++	#get all model classes and create respective groups
++	groups=dict.keys(md.__dict__)
++	for group in groups:
++		NCgroup=NCData.createGroup(str(group))
++		#In each group gather the fields of the class
++		fields=dict.keys(md.__dict__[group].__dict__)
++
++		#Special treatment for the results
++		if str(group)=='results':
++			for supfield in fields:#looping on the different solutions
++				NCgroup.__setattr__('classtype', "results")
++				Subgroup=NCgroup.createGroup(str(supfield))
++				Subgroup.__setattr__('classtype',str(supfield))
++				if type(md.results.__dict__[supfield])==list:#the solution have several timestep
++					#get last timesteps and output frequency
++					last_step = numpy.size(md.results.__dict__[supfield])
++					step_freq = md.settings.output_frequency
++					#grab first time step
++					subfields=dict.keys(md.results.__dict__[supfield].__getitem__(0).__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							Var=md.results.__dict__[supfield].__getitem__(0).__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,Subgroup,DimDict,True,last_step,step_freq,md,supfield)
++					
++				elif type(md.results.__dict__[supfield])==results:#only one timestep
++					subfields=dict.keys(md.results.__dict__[supfield].__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							print('Treating '+str(group)+'.'+str(supfield)+'.'+str(field))
++							Var=md.results.__dict__[supfield].__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++				else:
++					print('Result format not suported')
++		else:
++			
++			for field in fields:
++				print('Treating ' +str(group)+'.'+str(field))
++				NCgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__)
++				Var=md.__dict__[group].__dict__[field]
++				DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++	NCData.close()
++
++#============================================================================
++#Define the variables
++def CreateVar(NCData,var,field,Group,DimDict,istime,*step_args):
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++		#grab dimension
++	try:
++		val_shape=dict.keys(var)
++	except TypeError:
++		val_shape=numpy.shape(var)
++
++
++	TypeDict = {float:'f8',
++							'float64':'f8',
++							int:'i8',
++							'int64':'i8'}
++		
++	val_dim=numpy.shape(val_shape)[0]
++	#Now define and fill up variable
++	#treating scalar string or bool as atribute
++	if val_type==str or val_type==bool:
++		Group.__setattr__(str(field), str(var))
++
++	#treating list as string table
++	#matlab does not recognise strings so we have to settle down with char arrays
++	elif val_type==list:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		charvar=stringtochar(numpy.array(var))
++		print(charvar)
++		print(charvar.shape)
++		for elt in range(0,val_dim):
++			try:
++				ncvar[elt] = charvar[elt]
++			except IndexError:
++				ncvar[0]= " "
++				#treating bool tables as string tables
++	elif val_type=='bool':
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_shape[0]):
++			ncvar[elt] = str(var[elt])
++			#treating dictionaries as string tables of dim 2
++	elif val_type==collections.OrderedDict:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_dim):
++			ncvar[elt,0]=dict.keys(var)[elt]
++			ncvar[elt,1]=str(dict.values(var)[elt]) #converting to str to avoid potential problems
++			#Now dealing with numeric variables
++	else:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),TypeDict[val_type],dimensions,zlib=True)
++		
++		if istime:
++			last=step_args[0]
++			freq=step_args[1]
++			md=step_args[2]
++			supfield=step_args[3]
++			vartab=var
++			for time in range(freq-1,last,freq):
++				if time!=0:
++					timevar=md.results.__dict__[supfield].__getitem__(time).__dict__[field]
++					print('Treating results.'+str(supfield)+'.'+str(field)+' for time '+str(time))
++					vartab=numpy.column_stack((vartab,timevar))
++			print(numpy.shape(vartab))
++			try:
++				ncvar[:,:]=vartab[:,:]
++			except ValueError:
++				ncvar[:]=vartab.T[:]
++		else:
++			try:
++				nan_val=numpy.isnan(var)
++				if nan_val.all():
++					ncvar [:] = 'NaN'
++				else:
++					ncvar[:] = var
++			except TypeError: #type does not accept nan, get vallue of the variable
++				ncvar[:] = var
++	return DimDict
++
++#============================================================================
++#retriev the dimension tuple from a dictionnary
++def GetDim(NCData,var,shape,DimDict,i,istime):
++	output=[]
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++	#grab dimension
++	for dim in range(0,i): #loop on the dimensions
++		if type(shape[0])==int: 
++			try:
++				output=output+[str(DimDict[shape[dim]])] #test if the dimension allready exist
++			except KeyError: #if not create it
++				if (shape[dim])>1:
++					index=len(DimDict)+1
++					NewDim=NCData.createDimension('Dimension'+str(index),(shape[dim]))
++					DimDict[len(NewDim)]='Dimension'+str(index)
++					output=output+[str(DimDict[shape[dim]])]
++					print('Defining dimension ' +'Dimension'+str(index))
++		elif type(shape[0])==str:#dealling with a dictionnary
++			try:
++				output=[str(DimDict[numpy.shape(shape)[0]])]+['DictDim']
++			except KeyError:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),numpy.shape(shape)[0])
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=[str(DimDict[numpy.shape(dict.keys(var))[0]])]+['Dimension6']
++				print('Defining dimension ' +'Dimension'+str(index))
++			break
++	if istime:
++		output=output+['Dimension4']
++	#dealing with char and not string as we should so we need to had a string length
++	if val_type=='bool' or val_type==collections.OrderedDict or val_type==list:
++		charvar=stringtochar(numpy.array(var))
++		stringlength=charvar.shape[charvar.ndim-1]
++		try:
++			output=output+[str(DimDict[stringlength])] #test if the dimension allready exist
++		except KeyError: #if not create it
++			if (shape[dim])>1:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),(stringlength))
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=output+[str(DimDict[stringlength])]
++				print('Defining dimension ' +'Dimension'+str(index))
++	return tuple(output), DimDict
+
+Property changes on: ../trunk-jpl/src/py3/contrib/netCDF/export_netCDF.py
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py.bak
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py.bak	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py.bak	(revision 19895)
+@@ -0,0 +1,123 @@
++import numpy
++import time
++import subprocess
++import os
++from ComputeHessian import ComputeHessian
++from ComputeMetric import ComputeMetric
++
++def YamsCall(md,field,hmin,hmax,gradation,epsilon):
++	"""
++	YAMSCALL - call yams
++
++	   build a metric using the Hessian of the given field
++	   call Yams and the output mesh is plugged onto the model
++	   -hmin = minimum edge length (m)
++	   -hmax = maximum edge length (m)
++	   -gradation = maximum edge length gradation between 2 elements
++	   -epsilon = average error on each element (m/yr)
++
++	   Usage:
++	      md=YamsCall(md,field,hmin,hmax,gradation,epsilon);
++
++	   Example:
++	      md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
++	"""
++
++	#2d geometric parameter (do not change)
++	scale=2./9.
++
++	#Compute Hessian
++	t1=time.time()
++	print "%s" % '      computing Hessian...'
++	hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node')
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#Compute metric
++	t1=time.time()
++	print "%s" % '      computing metric...'
++	metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,numpy.empty(0,int))
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#write files
++	t1=time.time()
++	print "%s" % '      writing initial mesh files...'
++	numpy.savetxt('carre0.met',metric)
++
++	f=open('carre0.mesh','w')
++
++	#initialiation
++	f.write("\n%s\n%i\n" % ('MeshVersionFormatted',1))
++
++	#dimension
++	f.write("\n%s\n%i\n" % ('Dimension',2))
++
++	#Vertices
++	f.write("\n%s\n%i\n\n" % ('Vertices',md.mesh.numberofvertices))
++	for i in xrange(0,md.mesh.numberofvertices):
++		f.write("%8g %8g %i\n" % (md.mesh.x[i],md.mesh.y[i],0))
++
++	#Triangles
++	f.write("\n\n%s\n%i\n\n" % ('Triangles',md.mesh.numberofelements))
++	for i in xrange(0,md.mesh.numberofelements):
++		f.write("%i %i %i %i\n" % (md.mesh.elements[i,0],md.mesh.elements[i,1],md.mesh.elements[i,2],0))
++	numberofelements1=md.mesh.numberofelements
++
++	#Deal with rifts
++	if numpy.any(not numpy.isnan(md.rifts.riftstruct)):
++
++		#we have the list of triangles that make up the rift. keep those triangles around during refinement.
++		triangles=numpy.empty(0,int)
++		for riftstruct in md.rifts.riftstruct:
++			triangles=numpy.concatenate((triangles,riftstruct.segments[:,2]))
++
++		f.write("\n\n%s\n%i\n\n" % ('RequiredTriangles',numpy.size(triangles)))
++		for triangle in triangles:
++			f.write("%i\n" % triangle)
++
++	#close
++	f.close()
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#call yams
++	print "%s\n" % '      call Yams...'
++	if   m.ispc():
++		#windows
++		subprocess.call('yams2-win -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	elif ismac():
++		#Macosx
++		subprocess.call('yams2-osx -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	else:
++		#Linux
++		subprocess.call('yams2-linux -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++
++	#plug new mesh
++	t1=time.time()
++	print "\n%s" % '      reading final mesh files...'
++	Tria=numpy.loadtxt('carre1.tria',int)
++	Coor=numpy.loadtxt('carre1.coor',float)
++	md.mesh.x=Coor[:,0]
++	md.mesh.y=Coor[:,1]
++	md.mesh.z=numpy.zeros((numpy.size(Coor,axis=0),1))
++	md.mesh.elements=Tria
++	md.mesh.numberofvertices=numpy.size(Coor,axis=0)
++	md.mesh.numberofelements=numpy.size(Tria,axis=0)
++	numberofelements2=md.mesh.numberofelements
++	t2=time.time()
++	print "%s%d%s\n\n" % (' done (',t2-t1,' seconds)')
++
++	#display number of elements
++	print "\n%s %i" % ('      inital number of elements:',numberofelements1)
++	print "\n%s %i\n\n" % ('      new    number of elements:',numberofelements2)
++
++	#clean up:
++	os.remove('carre0.mesh')
++	os.remove('carre0.met')
++	os.remove('carre1.tria')
++	os.remove('carre1.coor')
++	os.remove('carre1.meshb')
++
++	return md
++
+Index: ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/bamg/YamsCall.py	(revision 19895)
+@@ -0,0 +1,123 @@
++import numpy
++import time
++import subprocess
++import os
++from ComputeHessian import ComputeHessian
++from ComputeMetric import ComputeMetric
++
++def YamsCall(md,field,hmin,hmax,gradation,epsilon):
++	"""
++	YAMSCALL - call yams
++
++	   build a metric using the Hessian of the given field
++	   call Yams and the output mesh is plugged onto the model
++	   -hmin = minimum edge length (m)
++	   -hmax = maximum edge length (m)
++	   -gradation = maximum edge length gradation between 2 elements
++	   -epsilon = average error on each element (m/yr)
++
++	   Usage:
++	      md=YamsCall(md,field,hmin,hmax,gradation,epsilon);
++
++	   Example:
++	      md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
++	"""
++
++	#2d geometric parameter (do not change)
++	scale=2./9.
++
++	#Compute Hessian
++	t1=time.time()
++	print("%s" % '      computing Hessian...')
++	hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node')
++	t2=time.time()
++	print("%s%d%s\n" % (' done (',t2-t1,' seconds)'))
++
++	#Compute metric
++	t1=time.time()
++	print("%s" % '      computing metric...')
++	metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,numpy.empty(0,int))
++	t2=time.time()
++	print("%s%d%s\n" % (' done (',t2-t1,' seconds)'))
++
++	#write files
++	t1=time.time()
++	print("%s" % '      writing initial mesh files...')
++	numpy.savetxt('carre0.met',metric)
++
++	f=open('carre0.mesh','w')
++
++	#initialiation
++	f.write("\n%s\n%i\n" % ('MeshVersionFormatted',1))
++
++	#dimension
++	f.write("\n%s\n%i\n" % ('Dimension',2))
++
++	#Vertices
++	f.write("\n%s\n%i\n\n" % ('Vertices',md.mesh.numberofvertices))
++	for i in range(0,md.mesh.numberofvertices):
++		f.write("%8g %8g %i\n" % (md.mesh.x[i],md.mesh.y[i],0))
++
++	#Triangles
++	f.write("\n\n%s\n%i\n\n" % ('Triangles',md.mesh.numberofelements))
++	for i in range(0,md.mesh.numberofelements):
++		f.write("%i %i %i %i\n" % (md.mesh.elements[i,0],md.mesh.elements[i,1],md.mesh.elements[i,2],0))
++	numberofelements1=md.mesh.numberofelements
++
++	#Deal with rifts
++	if numpy.any(not numpy.isnan(md.rifts.riftstruct)):
++
++		#we have the list of triangles that make up the rift. keep those triangles around during refinement.
++		triangles=numpy.empty(0,int)
++		for riftstruct in md.rifts.riftstruct:
++			triangles=numpy.concatenate((triangles,riftstruct.segments[:,2]))
++
++		f.write("\n\n%s\n%i\n\n" % ('RequiredTriangles',numpy.size(triangles)))
++		for triangle in triangles:
++			f.write("%i\n" % triangle)
++
++	#close
++	f.close()
++	t2=time.time()
++	print("%s%d%s\n" % (' done (',t2-t1,' seconds)'))
++
++	#call yams
++	print("%s\n" % '      call Yams...')
++	if   m.ispc():
++		#windows
++		subprocess.call('yams2-win -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	elif ismac():
++		#Macosx
++		subprocess.call('yams2-osx -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	else:
++		#Linux
++		subprocess.call('yams2-linux -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++
++	#plug new mesh
++	t1=time.time()
++	print("\n%s" % '      reading final mesh files...')
++	Tria=numpy.loadtxt('carre1.tria',int)
++	Coor=numpy.loadtxt('carre1.coor',float)
++	md.mesh.x=Coor[:,0]
++	md.mesh.y=Coor[:,1]
++	md.mesh.z=numpy.zeros((numpy.size(Coor,axis=0),1))
++	md.mesh.elements=Tria
++	md.mesh.numberofvertices=numpy.size(Coor,axis=0)
++	md.mesh.numberofelements=numpy.size(Tria,axis=0)
++	numberofelements2=md.mesh.numberofelements
++	t2=time.time()
++	print("%s%d%s\n\n" % (' done (',t2-t1,' seconds)'))
++
++	#display number of elements
++	print("\n%s %i" % ('      inital number of elements:',numberofelements1))
++	print("\n%s %i\n\n" % ('      new    number of elements:',numberofelements2))
++
++	#clean up:
++	os.remove('carre0.mesh')
++	os.remove('carre0.met')
++	os.remove('carre1.tria')
++	os.remove('carre1.coor')
++	os.remove('carre1.meshb')
++
++	return md
++
+Index: ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py.bak
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py.bak	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py.bak	(revision 19895)
+@@ -0,0 +1,163 @@
++import numpy
++import os
++import model
++import glob
++def exportVTK(filename,model,*args):
++	'''
++	vtk export
++	function exportVTK(filename,model)
++	creates a directory with the vtk files for displays in paraview
++	(only work for triangle and wedges based on their number of nodes)
++	
++	Give only the results for nw but could be extended to geometry, mask... 
++	
++	input: filename   destination 
++	(string)
++	------------------------------------------------------------------
++model      this is md 
++	------------------------------------------------------------------
++	By default only the results are exported, you can add whichever
++	field you need as a string:
++	add 'geometry' to export md.geometry
++
++	Basile de Fleurian:
++	'''
++	Dir=os.path.basename(filename)
++	Path=filename[:-len(Dir)]
++
++	if os.path.exists(filename):
++		print ('File {} allready exist'.format(filename))
++		newname=raw_input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			filelist = glob.glob(filename+'/*')
++			for oldfile in filelist:
++				os.remove(oldfile)
++		else:
++			print ('New file name is {}'.format(newname))
++			filename=newname
++			os.mkdir(filename)
++	else:
++		os.mkdir(filename)
++
++	#get the element related variables
++	if 'z' in dict.keys(model.mesh.__dict__):
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,model.mesh.z))
++		dim=3
++	else:
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,numpy.zeros(numpy.shape(model.mesh.x))))
++		dim=2
++
++	num_of_points=numpy.size(model.mesh.x)
++	num_of_elt=numpy.shape(model.mesh.elements)[0]
++	point_per_elt=numpy.shape(model.mesh.elements)[1]
++		
++	#Select the type of element function of the number of nodes per elements
++	if point_per_elt==3:
++		celltype=5 #triangles
++	elif point_per_elt==6:
++		celltype=13 #wedges
++	else:
++		error('Your Element definition is not taken into account \n')
++
++	#this is the result structure
++	res_struct=model.results
++	if (len(res_struct.__dict__)>0):
++		#Getting all the solutions of the model
++		solnames=(dict.keys(res_struct.__dict__))
++		num_of_sols=len(solnames)
++		num_of_timesteps=1
++		out_freq=model.settings.output_frequency
++		#%building solutionstructure 
++		for solution in solnames:
++			#looking for multiple time steps
++			if (numpy.size(res_struct.__dict__[solution])>num_of_timesteps):
++				num_of_timesteps=numpy.size(res_struct.__dict__[solution])
++				num_of_timesteps=int(num_of_timesteps/out_freq)+1
++	else:
++		num_of_timesteps=1
++
++	for step in range(0,num_of_timesteps):
++		timestep=step
++		fid=open((filename +'/Timestep.vtk'+str(timestep)+'.vtk'),'w+')
++		fid.write('# vtk DataFile Version 2.0 \n')
++		fid.write('Data for run %s \n' % model.miscellaneous.name)
++		fid.write('ASCII \n')
++		fid.write('DATASET UNSTRUCTURED_GRID \n')
++		fid.write('POINTS %d float\n' % num_of_points)
++		if(dim==3):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++		elif(dim==2):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++			
++		fid.write('CELLS %d %d\n' %(num_of_elt, num_of_elt*(point_per_elt+1)))
++		
++		if point_per_elt==3:
++			for elt in range(0, num_of_elt):
++				fid.write('3 %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1))
++		elif point_per_elt==6:
++			for elt in range(0, num_of_elt):
++				fid.write('6 %d %d %d %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1,model.mesh.elements[elt,3]-1,model.mesh.elements[elt,4]-1,model.mesh.elements[elt,5]-1))
++		else:
++			print 'Number of nodes per element not supported'
++
++		fid.write('CELL_TYPES %d\n' %num_of_elt)
++		for elt in range(0, num_of_elt):
++			fid.write('%d\n' %celltype)
++
++		fid.write('POINT_DATA %s \n' %str(num_of_points))
++	
++		#loop over the different solution structures
++		if 'solnames' in locals():
++			for sol in solnames:
++				#dealing with results on different timesteps
++				if(numpy.size(res_struct.__dict__[sol])>timestep):
++					timestep = step
++				else:
++					timestep = numpy.size(res_struct.__dict__[sol])
++				
++				#getting the  fields in the solution
++				if(numpy.size(res_struct.__dict__[sol])>1):
++					fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__)
++				else:
++					fieldnames=dict.keys(res_struct.__dict__[sol].__dict__)
++				#check which field is a real result and print
++				for field in fieldnames:
++					if(numpy.size(res_struct.__dict__[sol])>1):
++						fieldstruct=res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__[field]
++					else:
++						fieldstruct=res_struct.__dict__[sol].__dict__[field]
++
++					if ((numpy.size(fieldstruct))==num_of_points):
++						fid.write('SCALARS %s float 1 \n' % field)
++						fid.write('LOOKUP_TABLE default\n')
++						for node in range(0,num_of_points):
++							#paraview does not like NaN, replacing
++							if numpy.isnan(fieldstruct[node]):
++								fid.write('%e\n' % -9999.9999)
++							#also checking for verry small value that mess up
++							elif (abs(fieldstruct[node])<1.0e-20):
++								fid.write('%e\n' % 0.0)
++							else:
++								fid.write('%e\n' % fieldstruct[node])
++					
++		#loop on arguments, if something other than result is asked, do
++		#it now
++		for other in args:
++			other_struct=model.__dict__[other]
++			othernames=(dict.keys(other_struct.__dict__))
++			for field in othernames:
++				if ((numpy.size(other_struct.__dict__[field]))==num_of_points):
++					fid.write('SCALARS %s float 1 \n' % field)
++					fid.write('LOOKUP_TABLE default\n')
++					for node in range(0,num_of_points):
++						#paraview does not like NaN, replacing
++						if numpy.isnan(other_struct.__dict__[field][node]):
++							fid.write('%e\n' % -9999.9999)
++						#also checking for verry small value that mess up
++						elif (abs(other_struct.__dict__[field][node])<1.0e-20):
++							fid.write('%e\n' % 0.0)
++						else:
++							fid.write('%e\n' % other_struct.__dict__[field][node])
++	fid.close();
+Index: ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py
+===================================================================
+--- ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py	(revision 0)
++++ ../trunk-jpl/src/py3/contrib/paraview/exportVTK.py	(revision 19895)
+@@ -0,0 +1,163 @@
++import numpy
++import os
++import model
++import glob
++def exportVTK(filename,model,*args):
++	'''
++	vtk export
++	function exportVTK(filename,model)
++	creates a directory with the vtk files for displays in paraview
++	(only work for triangle and wedges based on their number of nodes)
++	
++	Give only the results for nw but could be extended to geometry, mask... 
++	
++	input: filename   destination 
++	(string)
++	------------------------------------------------------------------
++model      this is md 
++	------------------------------------------------------------------
++	By default only the results are exported, you can add whichever
++	field you need as a string:
++	add 'geometry' to export md.geometry
++
++	Basile de Fleurian:
++	'''
++	Dir=os.path.basename(filename)
++	Path=filename[:-len(Dir)]
++
++	if os.path.exists(filename):
++		print(('File {} allready exist'.format(filename)))
++		newname=input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			filelist = glob.glob(filename+'/*')
++			for oldfile in filelist:
++				os.remove(oldfile)
++		else:
++			print(('New file name is {}'.format(newname)))
++			filename=newname
++			os.mkdir(filename)
++	else:
++		os.mkdir(filename)
++
++	#get the element related variables
++	if 'z' in dict.keys(model.mesh.__dict__):
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,model.mesh.z))
++		dim=3
++	else:
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,numpy.zeros(numpy.shape(model.mesh.x))))
++		dim=2
++
++	num_of_points=numpy.size(model.mesh.x)
++	num_of_elt=numpy.shape(model.mesh.elements)[0]
++	point_per_elt=numpy.shape(model.mesh.elements)[1]
++		
++	#Select the type of element function of the number of nodes per elements
++	if point_per_elt==3:
++		celltype=5 #triangles
++	elif point_per_elt==6:
++		celltype=13 #wedges
++	else:
++		error('Your Element definition is not taken into account \n')
++
++	#this is the result structure
++	res_struct=model.results
++	if (len(res_struct.__dict__)>0):
++		#Getting all the solutions of the model
++		solnames=(dict.keys(res_struct.__dict__))
++		num_of_sols=len(solnames)
++		num_of_timesteps=1
++		out_freq=model.settings.output_frequency
++		#%building solutionstructure 
++		for solution in solnames:
++			#looking for multiple time steps
++			if (numpy.size(res_struct.__dict__[solution])>num_of_timesteps):
++				num_of_timesteps=numpy.size(res_struct.__dict__[solution])
++				num_of_timesteps=int(num_of_timesteps/out_freq)+1
++	else:
++		num_of_timesteps=1
++
++	for step in range(0,num_of_timesteps):
++		timestep=step
++		fid=open((filename +'/Timestep.vtk'+str(timestep)+'.vtk'),'w+')
++		fid.write('# vtk DataFile Version 2.0 \n')
++		fid.write('Data for run %s \n' % model.miscellaneous.name)
++		fid.write('ASCII \n')
++		fid.write('DATASET UNSTRUCTURED_GRID \n')
++		fid.write('POINTS %d float\n' % num_of_points)
++		if(dim==3):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++		elif(dim==2):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++			
++		fid.write('CELLS %d %d\n' %(num_of_elt, num_of_elt*(point_per_elt+1)))
++		
++		if point_per_elt==3:
++			for elt in range(0, num_of_elt):
++				fid.write('3 %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1))
++		elif point_per_elt==6:
++			for elt in range(0, num_of_elt):
++				fid.write('6 %d %d %d %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1,model.mesh.elements[elt,3]-1,model.mesh.elements[elt,4]-1,model.mesh.elements[elt,5]-1))
++		else:
++			print('Number of nodes per element not supported')
++
++		fid.write('CELL_TYPES %d\n' %num_of_elt)
++		for elt in range(0, num_of_elt):
++			fid.write('%d\n' %celltype)
++
++		fid.write('POINT_DATA %s \n' %str(num_of_points))
++	
++		#loop over the different solution structures
++		if 'solnames' in locals():
++			for sol in solnames:
++				#dealing with results on different timesteps
++				if(numpy.size(res_struct.__dict__[sol])>timestep):
++					timestep = step
++				else:
++					timestep = numpy.size(res_struct.__dict__[sol])
++				
++				#getting the  fields in the solution
++				if(numpy.size(res_struct.__dict__[sol])>1):
++					fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__)
++				else:
++					fieldnames=dict.keys(res_struct.__dict__[sol].__dict__)
++				#check which field is a real result and print
++				for field in fieldnames:
++					if(numpy.size(res_struct.__dict__[sol])>1):
++						fieldstruct=res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__[field]
++					else:
++						fieldstruct=res_struct.__dict__[sol].__dict__[field]
++
++					if ((numpy.size(fieldstruct))==num_of_points):
++						fid.write('SCALARS %s float 1 \n' % field)
++						fid.write('LOOKUP_TABLE default\n')
++						for node in range(0,num_of_points):
++							#paraview does not like NaN, replacing
++							if numpy.isnan(fieldstruct[node]):
++								fid.write('%e\n' % -9999.9999)
++							#also checking for verry small value that mess up
++							elif (abs(fieldstruct[node])<1.0e-20):
++								fid.write('%e\n' % 0.0)
++							else:
++								fid.write('%e\n' % fieldstruct[node])
++					
++		#loop on arguments, if something other than result is asked, do
++		#it now
++		for other in args:
++			other_struct=model.__dict__[other]
++			othernames=(dict.keys(other_struct.__dict__))
++			for field in othernames:
++				if ((numpy.size(other_struct.__dict__[field]))==num_of_points):
++					fid.write('SCALARS %s float 1 \n' % field)
++					fid.write('LOOKUP_TABLE default\n')
++					for node in range(0,num_of_points):
++						#paraview does not like NaN, replacing
++						if numpy.isnan(other_struct.__dict__[field][node]):
++							fid.write('%e\n' % -9999.9999)
++						#also checking for verry small value that mess up
++						elif (abs(other_struct.__dict__[field][node])<1.0e-20):
++							fid.write('%e\n' % 0.0)
++						else:
++							fid.write('%e\n' % other_struct.__dict__[field][node])
++	fid.close();
+Index: ../trunk-jpl/src/py3/extrusion/project2d.py
+===================================================================
+--- ../trunk-jpl/src/py3/extrusion/project2d.py	(revision 0)
++++ ../trunk-jpl/src/py3/extrusion/project2d.py	(revision 19895)
+@@ -0,0 +1,49 @@
++import numpy as npy
++
++def project2d(md3d,value,layer):
++	'''
++	returns the value of a field for a given layer of the mesh
++	
++
++   returns the value of a vector for a given layer from extruded mesh onto the 2d mesh 
++   used to do the extrusion. This function is used to compare values between different
++   layers of a 3d mesh.
++
++   Usage:
++      projection_value=project2d(md3d,value,layer)
++
++   Example:
++      vel2=project2d(md3d,md3d.initialization.vel,2);
++      returns the velocity of the second layer (1 is the base)
++	'''
++
++	if md3d.mesh.domaintype().lower() != '3d':
++		raise Exception("model passed to project2d function should be 3D")
++
++	if layer<1 or layer>md3d.mesh.numberoflayers:
++		raise ValueError("layer must be between 0 and %i" % md3d.mesh.numberoflayers)
++	
++	# coerce to array in case float is passed
++	if type(value)!=npy.ndarray:
++		print('coercing array')
++		value=npy.array(value)
++
++	vec2d=False
++	if value.ndim==2 and value.shape[1]==1: 
++		value=value.reshape(-1,)
++		vec2d=True
++
++	if value.size==1:
++		projection_value=value[(layer-1)*md3d.mesh.numberofelements2d:layer*md3d.mesh.numberofelements2d]
++	elif value.shape[0]==md3d.mesh.numberofvertices:
++		#print 'indices: ', (layer-1)*md3d.mesh.numberofvertices2d, layer*md3d.mesh.numberofvertices2d
++		projection_value=value[(layer-1)*md3d.mesh.numberofvertices2d:layer*md3d.mesh.numberofvertices2d]
++	elif value.shape[0]==md3d.mesh.numberofvertices+1:
++		projection_value=[value[(layer-1)*md3d.mesh.numberofvertices2d:layer*md3d.mesh.numberofvertices2d], value[-1]]
++	else:
++		projection_value=value[(layer-1)*md3d.mesh.numberofelements2d:layer*md3d.mesh.numberofelements2d]
++
++	if vec2d:
++		projection_value=projection_value.reshape(-1,1)
++
++	return projection_value
+Index: ../trunk-jpl/src/py3/extrusion/project3d.py
+===================================================================
+--- ../trunk-jpl/src/py3/extrusion/project3d.py	(revision 0)
++++ ../trunk-jpl/src/py3/extrusion/project3d.py	(revision 19895)
+@@ -0,0 +1,90 @@
++import numpy
++from pairoptions import pairoptions
++
++def project3d(md,**kwargs):
++	"""
++	PROJECT3D - vertically project a vector from 2d mesh
++
++	   vertically project a vector from 2d mesh (split in noncoll and coll areas) into a 3d mesh.
++	   This vector can be a node vector of size (md.mesh.numberofvertices2d,N/A) or an 
++	   element vector of size (md.mesh.numberofelements2d,N/A). 
++	   arguments: 
++	      'vector': 2d vector
++	      'type': 'element' or 'node'. 
++	   options: 
++	      'layer' a layer number where vector should keep its values. If not specified, all layers adopt the 
++	             value of the 2d vector.
++	      'padding': default to 0 (value adopted by other 3d layers not being projected
++
++	   Examples:
++	      extruded_vector=project3d(md,'vector',vector2d,'type','node','layer',1,'padding',NaN)
++	      extruded_vector=project3d(md,'vector',vector2d,'type','element','padding',0)
++	      extruded_vector=project3d(md,'vector',vector2d,'type','node')
++	"""
++
++	#some regular checks
++	if not md:
++		raise TypeError("bad usage")
++	if md.mesh.domaintype().lower() != '3d':
++		raise TypeError("input model is not 3d")
++
++	#retrieve parameters from options.
++	options      = pairoptions(**kwargs)
++	vector2d     = options.getfieldvalue('vector')       #mandatory
++	vectype      = options.getfieldvalue('type')         #mandatory
++	layer        = options.getfieldvalue('layer',0)      #optional (do all layers otherwise)
++	paddingvalue = options.getfieldvalue('padding',0)    #0 by default
++
++	vector1d=False
++	if isinstance(vector2d,numpy.ndarray) and numpy.ndim(vector2d)==1:
++		vector1d=True
++		vector2d=vector2d.reshape(-1,1)
++
++	if isinstance(vector2d,(bool,int,float)) or numpy.size(vector2d)==1:
++		projected_vector=vector2d
++
++	elif vectype.lower()=='node':
++
++		#Initialize 3d vector
++		if vector2d.shape[0]==md.mesh.numberofvertices2d:
++			projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofvertices,  numpy.size(vector2d,axis=1)))).astype(vector2d.dtype)
++		elif vector2d.shape[0]==md.mesh.numberofvertices2d+1:
++			projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofvertices+1,numpy.size(vector2d,axis=1)))).astype(vector2d.dtype)
++			projected_vector[-1,:]=vector2d[-1,:]
++			vector2d=vector2d[:-1,:]
++		else:
++			raise TypeError("vector length not supported")
++
++		#Fill in
++		if layer==0:
++			for i in range(md.mesh.numberoflayers):
++				projected_vector[(i*md.mesh.numberofvertices2d):((i+1)*md.mesh.numberofvertices2d),:]=vector2d
++		else:
++			projected_vector[((layer-1)*md.mesh.numberofvertices2d):(layer*md.mesh.numberofvertices2d),:]=vector2d
++
++	elif vectype.lower()=='element':
++
++		#Initialize 3d vector
++		if vector2d.shape[0]==md.mesh.numberofelements2d:
++			projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofelements,  numpy.size(vector2d,axis=1)))).astype(vector2d.dtype)
++		elif vector2d.shape[0]==md.mesh.numberofelements2d+1:
++			projected_vector=(paddingvalue*numpy.ones((md.mesh.numberofelements+1,numpy.size(vector2d,axis=1)))).astype(vector2d.dtype)
++			projected_vector[-1,:]=vector2d[-1,:]
++			vector2d=vector2d[:-1,:]
++		else:
++			raise TypeError("vector length not supported")
++
++		#Fill in
++		if layer==0:
++			for i in range(md.mesh.numberoflayers-1):
++				projected_vector[(i*md.mesh.numberofelements2d):((i+1)*md.mesh.numberofelements2d),:]=vector2d
++		else:
++			projected_vector[((layer-1)*md.mesh.numberofelements2d):(layer*md.mesh.numberofelements2d),:]=vector2d
++
++	else:
++		raise TypeError("project3d error message: unknown projection type")
++
++	if vector1d:
++		projected_vector=projected_vector.reshape(-1,)
++
++	return projected_vector
+Index: ../trunk-jpl/src/py3/extrusion/DepthAverage.py
+===================================================================
+--- ../trunk-jpl/src/py3/extrusion/DepthAverage.py	(revision 0)
++++ ../trunk-jpl/src/py3/extrusion/DepthAverage.py	(revision 19895)
+@@ -0,0 +1,50 @@
++import numpy as npy
++from project2d import project2d
++
++def DepthAverage(md,vector):
++	'''
++	computes depth average of 3d vector using the trapezoidal rule, and returns
++	the value on the 2d mesh. 
++	
++	Usage:
++		vector_average=DepthAverage(md,vector)
++	
++	Example:
++		vel_bar=DepthAverage(md,md.initialization.vel)
++	'''
++
++	#check that the model given in input is 3d
++	if md.mesh.elementtype() != 'Penta':
++		raise TypeError('DepthAverage error message: the model given in input must be 3d')
++
++	# coerce to array in case float is passed
++	if type(vector)!=npy.ndarray:
++		print('coercing array')
++		vector=npy.array(value)
++
++	vec2d=False
++	if vector.ndim==2:
++		vec2d=True
++		vector=vector.reshape(-1,)
++
++	#nods data
++	if vector.shape[0]==md.mesh.numberofvertices:
++		vector_average=npy.zeros(md.mesh.numberofvertices2d)
++		for i in range(1,md.mesh.numberoflayers):
++			vector_average=vector_average+(project2d(md,vector,i)+project2d(md,vector,i+1))/2.*(project2d(md,md.mesh.z,i+1)-project2d(md,md.mesh.z,i))
++		vector_average=vector_average/project2d(md,md.geometry.thickness,1)
++	
++	#element data
++	elif vector.shape[0]==md.mesh.numberofelements:
++		vector_average=npy.zeros(md.mesh.numberofelements2d)
++		for i in range(1,md.mesh.numberoflayers):
++			vector_average=vector_average+project2d(md,vector,i)*(project2d(md,md.mesh.z,i+1)-project2d(md,md.mesh.z,i))
++		vector_average=vector_average/project2d(md,md.geometry.thickness,1)
++	
++	else:
++		raise ValueError('vector size not supported yet');
++
++	if vec2d:
++		vector_average=vector_average.reshape(-1,1)
++
++	return vector_average
+Index: ../trunk-jpl/src/py3/interp/interp.py
+===================================================================
+--- ../trunk-jpl/src/py3/interp/interp.py	(revision 0)
++++ ../trunk-jpl/src/py3/interp/interp.py	(revision 19895)
+@@ -0,0 +1,240 @@
++# module for inperpolating/smoothing data
++import numpy as npy
++from scipy.interpolate import CloughTocher2DInterpolator, Rbf
++from scipy.spatial import cKDTree
++try:
++	import matplotlib.pyplot as plt
++except ImportError:
++	print('could not import matplotlib, no plotting functions enabled.\
++			Set plotonly=False in function call')
++
++def MeshSplineToMesh2d(x,y,data,xi,yi,tol=1e-6,fill_nans=False,**kwargs):#{{{
++	'''
++	Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D.
++	The interpolant is guaranteed to be continuously differentiable,
++	and the gradients are chosen such that the curvature of the interpolant
++	is approximately minimized.
++
++	Uses scipy.interpolate.CloughTocher2DInterpolator
++
++	x,y:			data point coordinates
++	data:			data to be interpolated (same length as x,y)
++	xi,yi:		coordintes to interpolate data onto
++	tol:			tolerance for gradient estimation (default 1e-6)
++	fill_nans:	fill nan's (holes) in data using the spline fit? 
++	**kwargs:	optional keywork arguments:
++					maxiter: maximum iterations in gradient estimation
++	
++	Returns interpolated data at given x,y coordinates.
++
++	Usage:
++		interpdata=CloughToucher2d(x,y,data)
++
++	Examples:
++		interpdata=CloughToucher2d(md.mesh.x,md.mesh.y,data)
++		interpdata=CloughToucher2d(md.mesh.x,md.mesh.y,data,tol=1e-3,maxiter=100)
++	'''
++
++	# unpack kwargs
++	maxiter=kwargs.pop('maxiter',None)
++	if 'maxiter' in kwargs: del kwargs['maxiter']
++	if maxiter:
++		assert type(maxiter)==int, 'error, maxiter should be an integer'
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	# create sub-vectors that just cover the limits of xi and yi
++	# TODO x,y not necessarily a grid, so need a better definition of dx,dy (e.g. average element size)
++	dx=500
++	dy=500
++	#dx=x[1]-x[0]
++	#dy=y[1]-y[0]
++	xlim=[min(xi)-dx,max(xi)+dx]
++	ylim=[min(yi)-dy,max(yi)+dy]
++	xflag=npy.logical_and(x>xlim[0],x<xlim[1])
++	yflag=npy.logical_and(y>ylim[0],y<ylim[1])
++	bothind=npy.nonzero(npy.logical_and(xflag,yflag))
++	subdata=data[bothind]
++	subx=x[bothind]
++	suby=y[bothind]
++	points=npy.array([subx,suby]).T
++
++	# mask out any nan's in the data and corresponding coordinate points
++	mask=npy.isnan(subdata)
++	ind=npy.nonzero(mask)[0]
++	if len(ind) and fill_nans:
++		print("		WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.")
++	subdata=npy.delete(subdata,ind)
++	points=npy.delete(points,ind,axis=0)
++
++	if maxiter:
++		spline=CloughTocher2DInterpolator(points,subdata,tol,maxiter=maxiter)
++	else:
++		spline=CloughTocher2DInterpolator(points,subdata,tol)
++
++	interpdata=spline(xi,yi)
++	
++	if not fill_nans:
++		# identify nan's in xi,yi using nearest neighbors
++		xyinterp=npy.dstack([xi,yi])[0]
++		xg,yg=npy.meshgrid(subx,suby)
++		xydata=npy.dstack([subx,suby])[0]
++		tree=cKDTree(xydata)
++		nearest=tree.query(xyinterp)[1]
++		pos=npy.nonzero(npy.isnan(subdata[nearest]))
++		interpdata[pos]=subdata[nearest][pos]
++
++	return interpdata
++#}}}
++def GridSplineToMesh2d(x,y,data,xi,yi,default_value=npy.nan,plotonly=False,fill_nans=False):#{{{
++	'''
++	python analog to InterpFromGridToMesh.  This routine uses
++	scipy.interpolate.CloughTocher2dInterpolator to create a bivariate spline
++	interpolation of the input data and then return values of the spline
++	on the x,y coordinates of the model mesh.  The interpolant is piece-wise
++	cubic, C1 smooth (continuously differentiable) and has approximately 
++	minimized curvature.  See "help(scipy.interpolate.CloughTocher2dInterpolator)"
++	for more information on the routine.
++
++	NOTE: this routine will not be appropriate if there are large holes (nan's) in 
++	the input data.  A non-spline interpolation scheme should be used in that case.
++
++	x,y:				vectors defining the coordinates of the input data
++	data:				2D array of input data
++	xi,yi:			x and y coordinates to be interpolated onto
++	default_value:	default value if points lie outside the convex hull of input
++						points (defaults to nan if not specified)
++	plotonly:		plot the data to be interpolated using imshow (useful for
++	fill_nans:		fill nan's (holes) in data using the spline fit? 
++
++	Usage:
++		interpdata=GridToMesh(x,y,data,xi,yi,default_value=npy.nan,plotonly=False,fill_nans=False)
++
++	Examples:
++		interpdata=GridToMesh(x_m,y_m,data,md.mesh.x,md.mesh.y,0)
++	'''
++
++	if npy.ndim(x)==2:
++		x=x.reshape(-1,)
++	if npy.ndim(y)==2:
++		y=y.reshape(-1,)
++	if len(x) != data.shape[1]+1 and len(x) != data.shape[1]:
++		raise ValueError('x should have same length as ncols(data) or ncols(data)+1')
++	if len(y) != data.shape[0]+1 and len(y) != data.shape[0]:
++		raise ValueError('y should have same length as nrows(data) or nrows(data)+1')
++	
++	# create sub-grid that just covers the limits of xi and yi
++	dx=x[1]-x[0]
++	dy=y[1]-y[0]
++	xlim=[min(xi)-dx,max(xi)+dx]
++	ylim=[min(yi)-dy,max(yi)+dy]
++
++	# TODO create grid differently depending on whether data is defined at x,y
++	# or at the center of a grid cell with corner coordinates defined by xi,yi
++	# create points array and flattened data array
++	if len(x)==data.shape[1] and len(y)==data.shape[0]:
++		print('		x,y taken to define the center of data grid cells')
++		xind=npy.nonzero(npy.logical_and(x>xlim[0],x<xlim[1]))[0]
++		yind=npy.nonzero(npy.logical_and(y>ylim[0],y<ylim[1]))[0]
++		xg,yg=npy.meshgrid(x[xind],y[yind])
++		subdata=data[yind[0]:yind[-1]+1,xind[0]:xind[-1]+1]
++	elif len(x)==data.shape[1]+1 and len(y)==data.shape[0]+1:
++		print('		x,y taken to define the corners of data grid cells')
++		xcenter=npy.fromiter(((x[i]+x[i+1])/2 for i in range(len(x)-1)),npy.float)
++		ycenter=npy.fromiter(((y[i]+y[i+1])/2 for i in range(len(y)-1)),npy.float)
++		xind=npy.nonzero(npy.logical_and(xcenter>xlim[0],xcenter<xlim[1]))[0]
++		yind=npy.nonzero(npy.logical_and(ycenter>ylim[0],ycenter<ylim[1]))[0]
++		xg,yg=npy.meshgrid(xcenter[xind],ycenter[yind])
++		subdata=data[yind[0]:yind[-1]+1,xind[0]:xind[-1]+1]
++	else:
++		raise ValueError('x and y have inconsistent sizes: both should have length ncols(data)/nrows(data) or ncols(data)+1/nrows(data)+1')
++
++	points=npy.array([xg.ravel(),yg.ravel()]).T
++	flatsubdata=subdata.ravel()
++
++	if plotonly:
++		plt.imshow(npy.flipud(subdata),origin='upper')
++		plt.show()
++		return
++
++	# mask out any nan's in the data and corresponding coordinate points
++	mask=npy.isnan(flatsubdata)
++	ind=npy.nonzero(mask)[0]
++	if len(ind) and fill_nans:
++		print("		WARNING: filling nans using spline fit through good data points, which may or may not be appropriate. Check results carefully.")
++	goodsubdata=npy.delete(flatsubdata,ind)
++	goodpoints=npy.delete(points,ind,axis=0)
++
++	# create spline and index spline at mesh points
++	spline=CloughTocher2DInterpolator(goodpoints,goodsubdata)
++	interpdata=spline(xi,yi)
++
++	if not fill_nans:
++		# identify nan's in xi,yi using nearest neighbors
++		xyinterp=npy.dstack([xi,yi])[0]
++		xydata=npy.dstack([xg.ravel(),yg.ravel()])[0]
++		tree=cKDTree(xydata)
++		nearest=tree.query(xyinterp)[1]
++		pos=npy.nonzero(npy.isnan(flatsubdata[nearest]))
++		interpdata[pos]=flatsubdata[nearest][pos]
++
++	return interpdata
++#}}}
++def RadialInterp(x,y,data,xi,yi,**kwargs):#{{{
++	'''
++	Interpolation using a radial basis function in 2 or 3 dimensions.
++	Useful for smoothing input data after interpolation.
++
++	Uses scipy.interpolate.Rbf
++
++	x,y:			data point coordinates
++	data:			data to be interpolated (same length as x,y)
++	xi,yi:		coordinates to interpolate onto
++	function:	form of radial basis function for interpolation:
++					'multiquadric': sqrt((r/self.epsilon)**2 + 1) (default)
++					'inverse': 1.0/sqrt((r/self.epsilon)**2 + 1)
++					'gaussian': exp(-(r/self.epsilon)**2)
++					'linear': r
++					'cubic': r**3
++					'quintic': r**5
++					'thin_plate': r**2 * log(r)
++	epsilon:		adjustable constant for scaling radial distance.  Defaults to 
++					approximate average distance between nodes.
++	smooth:		float>0, adjusts the amount of smoothing applied.  Defaults to 0,
++					such that the function always passes through nodal points.
++	z:				coordinate array if interpolating in 3 dimensions
++	zi:			coordinate array if interpolating in 3 dimensions
++
++	Usage:
++		interpdata=RadialInterp(x,y,data,**kwargs)
++
++	Examples:
++		interpdata=RadialInterp(md.mesh.x,md.mesh.y,data)
++		interpdata=RadialInterp(md.mesh.x,md.mesh.y,data,function='gaussian',epsilon=100,smooth=1)
++	'''
++
++	# unpack kwargs
++	function=kwargs.pop('function','gaussian')
++	if 'function' in kwargs: del kwargs['function']
++	epsilon=kwargs.pop('epsilon',None)
++	if 'epsilon' in kwargs: del kwargs['epsilon']
++	smooth=kwargs.pop('smooth',0)
++	if 'smooth' in kwargs: del kwargs['smooth']
++	z=kwargs.pop('z',None)
++	if 'z' in kwargs: del kwargs['z']
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	if z:
++		if epsilon:
++			rbfi=Rbf(x,y,z,data,function=function,smooth=smooth,epsilon=epsilon)
++		else:
++			rbfi=Rbf(x,y,z,data,function=function,smooth=smooth)
++		interpdata=rbfi(xi,yi,zi)
++	else:
++		if epsilon:
++			rbfi=Rbf(x,y,data,function=function,smooth=smooth,epsilon=epsilon)
++		else:
++			rbfi=Rbf(x,y,data,function=function,smooth=smooth)
++		interpdata=rbfi(xi,yi)
++	
++	return interpdata
++#}}}
+Index: ../trunk-jpl/src/py3/interp/averaging.py
+===================================================================
+--- ../trunk-jpl/src/py3/interp/averaging.py	(revision 0)
++++ ../trunk-jpl/src/py3/interp/averaging.py	(revision 19895)
+@@ -0,0 +1,93 @@
++import numpy as npy
++from GetAreas import GetAreas
++from scipy.sparse import csc_matrix
++import MatlabFuncs as m
++
++def averaging(md,data,iterations,layer=0):
++	'''
++	AVERAGING - smooths the input over the mesh
++	
++	   This routine takes a list over the elements or the nodes in input
++	   and return a list over the nodes.
++	   For each iterations it computes the average over each element (average 
++	   of the vertices values) and then computes the average over each node
++	   by taking the average of the element around a node weighted by the
++	   elements volume
++	   For 3d mesh, a last argument can be added to specify the layer to be averaged on.
++	
++	   Usage:
++	      smoothdata=averaging(md,data,iterations)
++	      smoothdata=averaging(md,data,iterations,layer)
++	
++	   Examples:
++	      velsmoothed=averaging(md,md.initialization.vel,4)
++	      pressure=averaging(md,md.initialization.pressure,0)
++	      temperature=averaging(md,md.initialization.temperature,1,1)
++	'''
++
++	if len(data)!=md.mesh.numberofelements and len(data)!=md.mesh.numberofvertices:
++		raise Exception('averaging error message: data not supported yet')
++	if md.mesh.dimension()==3 and layer!=0:
++		if layer<=0 or layer>md.mesh.numberoflayers:
++			raise ValueError('layer should be between 1 and md.mesh.numberoflayers')
++	else:
++		layer=0
++	
++	#initialization
++	if layer==0:
++		weights=npy.zeros(md.mesh.numberofvertices,)
++		data=data.flatten(1)
++	else:
++		weights=npy.zeros(md.mesh.numberofvertices2d,)
++		data=data[(layer-1)*md.mesh.numberofvertices2d+1:layer*md.mesh.numberofvertices2d,:]
++	
++	#load some variables (it is much faster if the variabes are loaded from md once for all)
++	if layer==0:
++		index=md.mesh.elements
++		numberofnodes=md.mesh.numberofvertices
++		numberofelements=md.mesh.numberofelements
++	else:
++		index=md.mesh.elements2d
++		numberofnodes=md.mesh.numberofvertices2d
++		numberofelements=md.mesh.numberofelements2d
++
++	
++	#build some variables
++	if md.mesh.dimension()==3 and layer==0:
++		rep=6
++		areas=GetAreas(index,md.mesh.x,md.mesh.y,md.mesh.z)
++	elif md.mesh.dimension()==2:
++		rep=3
++		areas=GetAreas(index,md.mesh.x,md.mesh.y)
++	else:
++		rep=3
++		areas=GetAreas(index,md.mesh.x2d,md.mesh.y2d)
++
++	index=index-1 # since python indexes starting from zero
++	line=index.flatten(1)
++	areas=npy.vstack(areas).reshape(-1,)
++	summation=1./rep*npy.ones(rep,)
++	linesize=rep*numberofelements
++	
++	#update weights that holds the volume of all the element holding the node i
++	weights=csc_matrix( (npy.tile(areas,(rep,1)).reshape(-1,),(line,npy.zeros(linesize,))), shape=(numberofnodes,1))
++	
++	#initialization
++	if len(data)==numberofelements:
++		average_node=csc_matrix( (npy.tile(areas*data,(rep,1)).reshape(-1,),(line,npy.zeros(linesize,))), shape=(numberofnodes,1))
++		average_node=average_node/weights
++		average_node = csc_matrix(average_node)
++	else:
++		average_node=csc_matrix(data.reshape(-1,1))
++
++	#loop over iteration
++	for i in npy.arange(1,iterations+1):
++		average_el=npy.asarray(npy.dot(average_node.todense()[index].reshape(numberofelements,rep),npy.vstack(summation))).reshape(-1,)
++		average_node=csc_matrix( (npy.tile(areas*average_el.reshape(-1),(rep,1)).reshape(-1,),(line,npy.zeros(linesize,))), shape=(numberofnodes,1))
++		average_node=average_node/weights
++		average_node=csc_matrix(average_node)
++	
++	#return output as a full matrix (C code do not like sparse matrices)
++	average=npy.asarray(average_node.todense()).reshape(-1,)
++
++	return average
+Index: ../trunk-jpl/src/py3/interp/SectionValues.py
+===================================================================
+--- ../trunk-jpl/src/py3/interp/SectionValues.py	(revision 0)
++++ ../trunk-jpl/src/py3/interp/SectionValues.py	(revision 19895)
+@@ -0,0 +1,139 @@
++import os
++from expread import expread
++import numpy as npy
++from project2d import project2d
++#from InterpFromMesh2d import InterpFromMesh2d
++from InterpFromMeshToMesh2d import InterpFromMeshToMesh2d
++from InterpFromMeshToMesh3d import InterpFromMeshToMesh3d
++
++def SectionValues(md,data,infile,resolution):
++	'''
++	compute the value of a field on a section
++	
++	This routine gets the value of a given field of the model on points
++	given in the file infile (Argus type file). Resolution must be a list
++	[horizontal_resolution, vertical_resolution]
++	
++	Usage:
++	[elements,x,y,z,s,data]=SectionValues(md,data,filename,resolution)
++	[elements,x,y,z,s,data]=SectionValues(md,data,profile_structure,resolution)
++	'''
++
++	if os.path.isfile(infile):
++		profile=expread(infile)[0]
++		nods=profile['nods']
++		x=profile['x']
++		y=profile['y']
++	else:
++		raise IOError('file %s not found' % infile)
++
++	#get the specified resolution
++	if len(resolution)!=2:
++		raise ValueError('SectionValues error message: Resolution must be a list [horizontal_resolution, vertical_resolution]')
++	else:
++		res_h=resolution[0]
++
++	if md.mesh.domaintype().lower() == '3d':
++		if isinstance(resolution[1],int) or isinstance(resolution[1],float):
++			res_v=resolution[1]
++		else:
++			raise ValueError('SectionValues error: resolution must be a length-2 list of integers or floats')
++
++	#initialization
++	X=npy.array([]) #X-coordinate
++	Y=npy.array([]) #Y-coordinate
++	S=npy.array([0.])  #curvilinear coordinate
++	
++	for i in range(nods-1):
++	
++		x_start=x[i]
++		x_end=x[i+1]
++		y_start=y[i]
++		y_end=y[i+1]
++		s_start=S[-1]
++	
++		length_segment=npy.sqrt((x_end-x_start)**2+(y_end-y_start)**2)
++		portion=npy.ceil(length_segment/res_h)
++	
++		x_segment=npy.zeros(portion)
++		y_segment=npy.zeros(portion)
++		s_segment=npy.zeros(portion)
++
++		for j in range(int(portion)):
++			x_segment[j]=x_start+(j)*(x_end-x_start)/portion
++			y_segment[j]=y_start+(j)*(y_end-y_start)/portion
++			s_segment[j]=s_start+j*length_segment/portion
++	
++		#plug into X and Y
++		X=npy.append(X,x_segment)
++		Y=npy.append(Y,y_segment)
++		S=npy.append(S,s_segment)
++
++	X=npy.append(X,x[nods-1])
++	Y=npy.append(Y,y[nods-1])
++	
++	#Number of nodes:
++	numberofnodes=X.shape[0]
++	
++	#Compute Z
++	Z=npy.zeros(numberofnodes)
++	
++	#New mesh and Data interpolation
++	if '2d' in md.mesh.domaintype().lower():
++	
++		#Interpolation of data on specified points
++		#data_interp=InterpFromMesh2d(md.mesh.elements,md.mesh.x,md.mesh.y,data,X,Y)[0]
++		data_interp=InterpFromMeshToMesh2d(md.mesh.elements,md.mesh.x,md.mesh.y,data,X,Y)[0]
++		#data_interp=griddata(md.mesh.x,md.mesh.y,data,X,Y)
++	
++		#Compute index
++		index=npy.array([list(range(1,numberofnodes)),list(range(2,numberofnodes+1))]).T
++	
++	else:
++	
++		#vertically extrude mesh
++	
++		#Get base and surface for each 2d point, offset to make sure that it is inside the glacier system
++		offset=1.e-3
++		base=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.base,1),X,Y)[0]+offset
++		base=base.reshape(-1,)
++		surface=InterpFromMeshToMesh2d(md.mesh.elements2d,md.mesh.x2d,md.mesh.y2d,project2d(md,md.geometry.surface,1),X,Y)[0]-offset
++		surface=surface.reshape(-1,)
++	
++		#Some useful parameters
++		layers=int(npy.ceil(npy.mean(md.geometry.thickness)/res_v))
++		nodesperlayer=int(numberofnodes)
++		nodestot=int(nodesperlayer*layers)
++		elementsperlayer=int(nodesperlayer-1)
++		elementstot=int((nodesperlayer-1)*(layers-1))
++	
++		#initialization
++		X3=npy.zeros(nodesperlayer*layers) 
++		Y3=npy.zeros(nodesperlayer*layers) 
++		Z3=npy.zeros(nodesperlayer*layers) 
++		S3=npy.zeros(nodesperlayer*layers) 
++		index3=npy.zeros((elementstot,4))
++	
++		#Get new coordinates in 3d
++		for i in range(1,layers+1):
++			X3[i-1::layers]=X
++			Y3[i-1::layers]=Y
++			Z3[i-1::layers]=base+(i-1)*(surface-base)/(layers-1)
++			S3[i-1::layers]=S
++	
++			if i<layers-1:  #Build index3 with quads
++				ids=npy.vstack((npy.arange(i,nodestot-layers,layers),npy.arange(i+1,nodestot-layers,layers),npy.arange(i+layers+1,nodestot,layers),npy.arange(i+layers,nodestot,layers))).T
++				index3[(i-1)*elementsperlayer:i*elementsperlayer,:]=ids
++
++		#Interpolation of data on specified points
++		data_interp=InterpFromMeshToMesh3d(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.z,data,X3,Y3,Z3,npy.nan)
++	
++		#build outputs
++		X=X3 
++		Y=Y3 
++		Z=Z3  
++		S=S3 
++
++		index=index3
++
++	return index,X,Y,Z,S,data_interp
+Index: ../trunk-jpl/src/py3/interp/holefiller.py
+===================================================================
+--- ../trunk-jpl/src/py3/interp/holefiller.py	(revision 0)
++++ ../trunk-jpl/src/py3/interp/holefiller.py	(revision 19895)
+@@ -0,0 +1,46 @@
++import numpy as npy
++from scipy.spatial import cKDTree
++
++def nearestneighbors(x,y,data,goodids,badids,knn):
++	'''
++	fill holes using nearest neigbors.  Arguments include:
++
++
++	x,y:		the coordinates of data to be filled 
++	data:		the data field to be filled (full field, including holes)
++	goodids:	id's into the vertices that have good data
++	badids:	id's into the vertices with missing/bad data
++	knn:		integer representing the k nearest neighbors to use for filling
++				holes.  The average data value over the k nearest neighbors is 
++				then used to fill the hole.
++
++	Usage:
++		filleddata=nearestneighbors(x,y,data,goodids,badids,knn)
++
++	Example:
++		filledthickness=nearestneighbors(x,y,data,goodids,badids,5)
++	'''
++
++	if type(knn) != int or knn<1:
++		raise TypeError('nearestneighbors error: knn should be an integer>1')
++
++	if len(x) != len(data) or len(y) != len(data):
++		raise Exception('nearestneighbors error: x and y should have the same length as "data"')
++
++	filled=data
++	
++	XYGood=npy.dstack([x[goodids],y[goodids]])[0]
++	XYBad=npy.dstack([x[badids],y[badids]])[0]
++	tree=cKDTree(XYGood)
++	nearest=tree.query(XYBad,k=knn)[1]
++	
++	if knn==1:
++		filled[badids]=filled[goodids][nearest] # can add k=N to return the N nearest neighbors
++	else:
++		for i in range(len(badids)):
++			neardat=[]
++			for j in range(knn):
++				neardat.append(filled[goodids][nearest[i][j]])
++				filled[badids[i]]=npy.mean(neardat)
++				
++	return filled
+Index: ../trunk-jpl/src/py3/consistency/QueueRequirements.py
+===================================================================
+--- ../trunk-jpl/src/py3/consistency/QueueRequirements.py	(revision 0)
++++ ../trunk-jpl/src/py3/consistency/QueueRequirements.py	(revision 19895)
+@@ -0,0 +1,20 @@
++def QueueRequirements(queudict,queue,np,time):
++	#QUEUEREQUIREMENTS - queue requirements in time, number of cpus, by name of queue.
++	#
++	#   Usage: 
++	#      QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,np,time)
++
++	#Ok, go through requirements for current queue:
++	try:
++		rtime=queudict[queue][0]
++	except KeyError:
++		raise Exception('QueueRequirements error message: availables queues are '+ queuedict.keys)
++		
++	if time<=0:
++		raise Exception('QueueRequirements: time should be a positive number')
++	if time>rtime:
++		raise Exception('QueueRequirements: time should be < '+ str(rtime)+ ' for queue: '+ queue)
++
++	#check on np requirements
++	if np<=0:
++		raise Exception('QueueRequirements: np should be a positive number')
+Index: ../trunk-jpl/src/py3/consistency/ismodelselfconsistent.py
+===================================================================
+--- ../trunk-jpl/src/py3/consistency/ismodelselfconsistent.py	(revision 0)
++++ ../trunk-jpl/src/py3/consistency/ismodelselfconsistent.py	(revision 19895)
+@@ -0,0 +1,91 @@
++from EnumDefinitions import *
++from EnumToString import EnumToString
++
++def AnalysisConfiguration(solutiontype): #{{{
++	"""
++	ANALYSISCONFIGURATION - return type of analyses, number of analyses 
++
++		Usage:
++			[analyses]=AnalysisConfiguration(solutiontype);
++	"""
++
++	if   solutiontype == StressbalanceSolutionEnum():
++		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum()]
++
++	elif solutiontype == SteadystateSolutionEnum():
++		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()]
++
++	elif solutiontype == ThermalSolutionEnum():
++		analyses=[EnthalpyAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()]
++
++	elif solutiontype == MasstransportSolutionEnum():
++		analyses=[MasstransportAnalysisEnum()]
++
++	elif solutiontype == BalancethicknessSolutionEnum():
++		analyses=[BalancethicknessAnalysisEnum()]
++
++	elif solutiontype == SurfaceSlopeSolutionEnum():
++		analyses=[L2ProjectionBaseAnalysisEnum()]
++
++	elif solutiontype == BalancevelocitySolutionEnum():
++		analyses=[BalancevelocityAnalysisEnum()]
++
++	elif solutiontype == BedSlopeSolutionEnum():
++		analyses=[L2ProjectionBaseAnalysisEnum()]
++
++	elif solutiontype == GiaSolutionEnum():
++		analyses=[GiaAnalysisEnum()]
++
++	elif solutiontype == TransientSolutionEnum():
++		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum(),EnthalpyAnalysisEnum(),MasstransportAnalysisEnum()]
++
++	elif solutiontype == FlaimSolutionEnum():
++		analyses=[FlaimAnalysisEnum()]
++
++	elif solutiontype == HydrologySolutionEnum():
++		analyses=[L2ProjectionBaseAnalysisEnum(),HydrologyShreveAnalysisEnum(),HydrologyDCInefficientAnalysisEnum(),HydrologyDCEfficientAnalysisEnum()]
++
++	elif DamageEvolutionSolutionEnum():
++		analyses=[DamageEvolutionAnalysisEnum()]
++
++	else:
++		raise TypeError("solution type: '%s' not supported yet!" % EnumToString(solutiontype)[0])
++
++	return analyses
++#}}}
++
++def ismodelselfconsistent(md):
++	"""
++	ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
++
++	   Usage:
++	      ismodelselfconsistent(md),
++	"""
++
++	#initialize consistency as true
++	md.private.isconsistent=True
++
++	#Get solution and associated analyses
++	solution=md.private.solution
++	analyses=AnalysisConfiguration(solution)
++
++	#Go through a model fields, check that it is a class, and call checkconsistency
++	fields=vars(md)
++#	for field in fields.iterkeys():
++	for field in md.properties():
++
++		#Some properties do not need to be checked
++		if field in ['results','debug','radaroverlay']:
++			continue
++
++		#Check that current field is an object
++		if not hasattr(getattr(md,field),'checkconsistency'):
++			md.checkmessage("field '%s' is not an object." % field)
++
++		#Check consistency of the object
++		exec("md.%s.checkconsistency(md,solution,analyses)" % field)
++
++	#error message if mode is not consistent
++	if not md.private.isconsistent:
++		raise RuntimeError('Model not consistent, see messages above.')
++
+Index: ../trunk-jpl/src/py3/consistency/checkfield.py
+===================================================================
+--- ../trunk-jpl/src/py3/consistency/checkfield.py	(revision 0)
++++ ../trunk-jpl/src/py3/consistency/checkfield.py	(revision 19895)
+@@ -0,0 +1,183 @@
++import numpy
++import os
++from pairoptions import pairoptions
++import MatlabFuncs as m
++
++def checkfield(md,**kwargs):
++	"""
++	CHECKFIELD - check field consistency
++
++	   Used to check model consistency.,
++	   Requires: 
++	   'field' or 'fieldname' option. If 'fieldname' is provided, it will retrieve it from the model md. (md.(fieldname)) 
++             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
++
++	   Available options:
++	      - NaN: 1 if check that there is no NaN
++	      - size: [lines cols], NaN for non checked dimensions
++	      - >:  greater than provided value
++	      - >=: greater or equal to provided value
++	      - <:  smallerthan provided value
++	      - <=: smaller or equal to provided value
++	      - < vec:  smallerthan provided values on each vertex
++	      - timeseries: 1 if check time series consistency (size and time)
++	      - values: cell of strings or vector of acceptable values
++	      - numel: list of acceptable number of elements
++	      - cell: 1 if check that is cell
++	      - empty: 1 if check that non empty
++	      - message: overloaded error message
++
++	   Usage:
++	      md = checkfield(md,fieldname,options);
++	"""
++
++	#get options
++	options=pairoptions(**kwargs)
++
++	#get field from model
++	if options.exist('field'):
++		field=options.getfieldvalue('field')
++		fieldname=options.getfieldvalue('fieldname','no fieldname')
++	else:
++		fieldname=options.getfieldvalue('fieldname') 
++		exec("field=md.%s" % fieldname)
++
++	if isinstance(field,(bool,int,float)):
++		field=numpy.array([field])
++
++	#check empty
++	if options.exist('empty'):
++		if not field:
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' is empty" % fieldname))
++
++	#Check size
++	if options.exist('size'):
++		fieldsize=options.getfieldvalue('size')
++		if   len(fieldsize) == 1:
++			if   numpy.isnan(fieldsize[0]):
++				pass
++			elif not numpy.size(field,0)==fieldsize[0]:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' size should be %d" % (fieldname,fieldsize[0])))
++		elif len(fieldsize) == 2:
++			if   numpy.isnan(fieldsize[0]):
++				if not numpy.size(field,1)==fieldsize[1]:
++					md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' should have %d columns" % (fieldname,fieldsize[1])))
++			elif numpy.isnan(fieldsize[1]):
++				if not numpy.size(field,0)==fieldsize[0]:
++					md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' should have %d lines" % (fieldname,fieldsize[0])))
++			else:
++				if (not numpy.size(field,0)==fieldsize[0]) or (not numpy.size(field,1)==fieldsize[1]):
++					md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' size should be %d x %d" % (fieldname,fieldsize[0],fieldsize[1])))
++	
++	#Check numel
++	if options.exist('numel'):
++		fieldnumel=options.getfieldvalue('numel')
++		if numpy.size(field) not in fieldnumel:
++			if   len(fieldnumel)==1:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' size should be %d" % (fieldname,fieldnumel)))
++			elif len(fieldnumel)==2:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' size should be %d or %d" % (fieldname,fieldnumel[0],fieldnumel[1])))
++			else:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' size should be %s" % (fieldname,fieldnumel)))
++
++	#check NaN
++	if options.getfieldvalue('NaN',0):
++		if numpy.any(numpy.isnan(field)):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"NaN values found in field '%s'" % fieldname))
++
++	#check cell
++	if options.getfieldvalue('cell',0):
++		if not isinstance(field,(tuple,list,dict)):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should be a cell" % fieldname))
++
++	#check values
++	if options.exist('values'):
++		fieldvalues=options.getfieldvalue('values')
++		if False in m.ismember(field,fieldvalues):
++			if   len(fieldvalues)==1:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' value should be '%s'"  % (fieldname,fieldvalues[0])))
++			elif len(fieldvalues)==2:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' values should be '%s' or '%s'"  % (fieldname,fieldvalues[0],fieldvalues[1])))
++			else:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' should have values in %s" % (fieldname,fieldvalues)))
++
++	#check greater
++	if options.exist('>='):
++		lowerbound=options.getfieldvalue('>=')
++		if numpy.any(field<lowerbound):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have values above %d" % (fieldname,lowerbound)))
++	if options.exist('>'):
++		lowerbound=options.getfieldvalue('>')
++		if numpy.any(field<=lowerbound):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have values above %d" % (fieldname,lowerbound)))
++
++	#check smaller
++	if options.exist('<='):
++		upperbound=options.getfieldvalue('<=')
++		if numpy.any(field>upperbound):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have values below %d" % (fieldname,upperbound)))
++	if options.exist('<'):
++		upperbound=options.getfieldvalue('<')
++		if numpy.any(field>=upperbound):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have values below %d" % (fieldname,upperbound)))
++
++	#check file
++	if options.getfieldvalue('file',0):
++		if not os.path.exists(field):
++			md = md.checkmessage("file provided in '%s': '%s' does not exist" % (fieldname,field))
++
++	#Check row of strings
++	if options.exist('stringrow'):
++		if not isinstance(field,list):
++			md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' should be a list" %fieldname))
++
++	#Check forcings (size and times)
++	if options.getfieldvalue('timeseries',0):
++		if   numpy.size(field,0)==md.mesh.numberofvertices:
++			if numpy.ndim(field)>1 and not numpy.size(field,1)==1:
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' should have only one column as there are md.mesh.numberofvertices lines" % fieldname))
++		elif numpy.size(field,0)==md.mesh.numberofvertices+1 or numpy.size(field,0)==2:
++			if not all(field[-1,:]==numpy.sort(field[-1,:])):
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' columns should be sorted chronologically" % fieldname))
++			if any(field[-1,0:-1]==field[-1,1:]):
++				md = md.checkmessage(options.getfieldvalue('message',\
++					"field '%s' columns must not contain duplicate timesteps" % fieldname))
++		else:
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have md.mesh.numberofvertices or md.mesh.numberofvertices+1 lines" % fieldname))
++
++	#Check single value forcings (size and times)
++	if options.getfieldvalue('singletimeseries',0):
++		if numpy.size(field,0)==2:
++			if not all(field[-1,:]==numpy.sort(field[-1,:])):
++				md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' columns should be sorted chronologically" % fieldname))
++			if any(field[-1,0:-1]==field[-1,1:]):
++				md = md.checkmessage(options.getfieldvalue('message',\
++						"field '%s' columns must not contain duplicate timesteps" % fieldname))
++		else:
++				md = md.checkmessage(options.getfieldvalue('message',\
++				"field '%s' should have 2 lines" % fieldname))
++
++	return md
++
+Index: ../trunk-jpl/src/py3/miscellaneous/fielddisplay.py
+===================================================================
+--- ../trunk-jpl/src/py3/miscellaneous/fielddisplay.py	(revision 0)
++++ ../trunk-jpl/src/py3/miscellaneous/fielddisplay.py	(revision 19895)
+@@ -0,0 +1,140 @@
++#Module import 
++import numpy
++from math import isnan
++import MatlabFuncs as m
++
++def fielddisplay(md,name,comment):
++	"""
++	FIELDDISPLAY - display model field
++
++	   Usage:
++	      fielddisplay(md,name,comment)
++	"""
++
++	#get field
++	field=getattr(md,name)
++
++	#disp corresponding line as a function of field type (offset set as 9 spaces)
++	return parsedisplay("         ",name,field,comment);
++
++def parsedisplay(offset,name,field,comment):    # {{{ 
++
++	#string
++	if isinstance(field,str):
++
++		if len(field)>30:
++			string=displayunit(offset,name,"not displayed",comment)
++		else:
++			string=displayunit(offset,name,"'%s'" % field,comment)
++
++	#numeric
++	elif isinstance(field,(int,float)):
++		string=displayunit(offset,name,str(field),comment) 
++
++	#matrix
++	elif isinstance(field,numpy.ndarray):
++		string=displayunit(offset,name,str(field.shape),comment)
++
++	#logical
++	elif isinstance(field,bool):
++		if field:
++			string=displayunit(offset,name,"True",comment)
++		else:
++			string=displayunit(offset,name,"False",comment)
++	
++	#dictionary
++	elif isinstance(field,dict):
++		string=dict_display(offset,name,field,comment)
++
++	#list or tuple
++	elif isinstance(field,(list,tuple)):
++		string=list_display(offset,name,field,comment)
++
++	#None
++	elif field is None:
++		string=displayunit(offset,name,"None",comment)
++
++	else:
++		string=displayunit(offset,name,"not displayed",comment)
++		
++	return string
++	# }}}
++
++def dict_display(offset,name,field,comment):    # {{{
++
++	if field:
++		string =displayunit(offset,name,'{dictionary}',comment)+'\n'
++		offset+='   '
++
++		for structure_field,sfield in field.items():
++			string+=parsedisplay(offset,str(structure_field),sfield,'')+'\n'
++
++		if string and string[-1]=='\n':
++			string=string[:-1]
++
++	else:
++		string=displayunit(offset,name,'N/A',comment)
++
++	return string
++	# }}}
++
++def list_display(offset,name,field,comment):    # {{{
++
++	#initialization
++	if   isinstance(field,list):
++		sbeg='['
++		send=']'
++	elif isinstance(field,tuple):
++		sbeg='('
++		send=')'
++	string=sbeg
++
++	#go through the cell and fill string
++	if len(field)<5:
++		for fieldi in field:
++			if   isinstance(fieldi,str):
++				string+="'%s'," % fieldi
++			elif isinstance(fieldi,(bool,int,float)):
++				string+="%s," % str(fieldi)
++			else:
++				string=sbeg
++				break
++
++	if m.strcmp(string,sbeg):
++		string="%s%dx1%s" % (sbeg,len(field),send)
++	else:
++		string=string[:-1]+send
++
++	#call displayunit
++	return displayunit(offset,name,string,comment)
++	# }}}
++
++def displayunit(offset,name,characterization,comment):    # {{{
++
++	#take care of name
++	if len(name)>23:
++		name="%s..." % name[:20]
++	
++	#take care of characterization
++	if m.strcmp(characterization,"''") or m.strcmp(characterization,'""') or m.strcmpi(characterization,'nan'):
++		characterization="N/A"
++	
++	if len(characterization)>15:
++		characterization="%s..." % characterization[:12]
++	
++	#print
++	if not comment:
++		string="%s%-23s: %-15s" % (offset,name,characterization)
++	else:
++		if   isinstance(comment,str):
++			string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment)
++		elif isinstance(comment,list):
++			string="%s%-23s: %-15s -- %s" % (offset,name,characterization,comment[0])
++			for commenti in comment:
++				string+="\n%s%-23s  %-15s    %s" % (offset,'','',commenti)
++		else:
++			raise RuntimeError("fielddisplay error message: format for comment not supported yet")
++
++	return string
++	# }}}
++
+Index: ../trunk-jpl/src/py3/miscellaneous/parallelrange.py
+===================================================================
+--- ../trunk-jpl/src/py3/miscellaneous/parallelrange.py	(revision 0)
++++ ../trunk-jpl/src/py3/miscellaneous/parallelrange.py	(revision 19895)
+@@ -0,0 +1,25 @@
++#! /usr/bin/env python
++def parallelrange(rank,numprocs,globalsize):
++	"""
++	PARALLELRANGE - from a rank, and a number of processors, figure out a range, for parallel tasks.
++ 
++	   Usage: 
++	      i1,i2=parallelrange(rank,numprocs,globalsize)
++	"""
++
++	#We use floor. we under distribute rows. The rows left are then redistributed, therefore resulting in a more even distribution.
++	num_local_rows=[int(globalsize/numprocs) for i in range(numprocs)]
++
++	#There may be some rows left. Distribute evenly.
++	row_rest=globalsize - numprocs*int(globalsize/numprocs)
++
++	for i in range(row_rest):
++		num_local_rows[i]=num_local_rows[i]+1
++
++	i1=0
++	for i in range(rank-1):
++		i1+=num_local_rows[i]
++	i2=i1+num_local_rows[rank-1]-1
++
++	return i1,i2
++
+Index: ../trunk-jpl/src/py3/miscellaneous/isnans.py
+===================================================================
+--- ../trunk-jpl/src/py3/miscellaneous/isnans.py	(revision 0)
++++ ../trunk-jpl/src/py3/miscellaneous/isnans.py	(revision 19895)
+@@ -0,0 +1,18 @@
++import numpy
++
++def isnans(array):
++	"""
++	ISNANS: figure out if an array is nan. wrapper to isnan from matlab which stupidly does not allow this test  for structures!
++
++	   Usage:    isnans(array)
++
++	      See also : ISNAN 
++	"""
++
++	if   isinstance(array,(tuple,list,dict)): 
++		returnvalue=0
++	else:
++		returnvalue=numpy.isnan(array)
++
++	return returnvalue
++
+Index: ../trunk-jpl/src/py3/miscellaneous/MatlabFuncs.py
+===================================================================
+--- ../trunk-jpl/src/py3/miscellaneous/MatlabFuncs.py	(revision 0)
++++ ../trunk-jpl/src/py3/miscellaneous/MatlabFuncs.py	(revision 19895)
+@@ -0,0 +1,107 @@
++def oshostname():
++	import socket
++
++	return socket.gethostname()
++
++def ispc():
++	import platform
++
++	if 'Windows' in platform.system():
++		return True
++	else:
++		return False
++
++def ismac():
++	import platform
++
++	if 'Darwin' in platform.system():
++		return True
++	else:
++		return False
++
++def strcmp(s1,s2):
++
++	if s1 == s2:
++		return True
++	else:
++		return False
++
++def strncmp(s1,s2,n):
++
++	if s1[0:n] == s2[0:n]:
++		return True
++	else:
++		return False
++
++def strcmpi(s1,s2):
++
++	if s1.lower() == s2.lower():
++		return True
++	else:
++		return False
++
++def strncmpi(s1,s2,n):
++
++	if s1.lower()[0:n] == s2.lower()[0:n]:
++		return True
++	else:
++		return False
++
++def ismember(a,s):
++	import numpy
++
++	if not isinstance(s,(tuple,list,dict,numpy.ndarray)):
++		s=[s]
++
++	if not isinstance(a,(tuple,list,dict,numpy.ndarray)):
++		a=[a]
++
++	if not isinstance(a,numpy.ndarray):
++		b=[item in s for item in a]
++
++	else:
++		if not isinstance(s,numpy.ndarray):
++			b=numpy.empty_like(a)
++			for i,item in enumerate(a.flat):
++				b.flat[i]=item in s
++		else:
++			b=numpy.in1d(a.flat,s.flat).reshape(a.shape)
++
++	return b
++
++def det(a):
++	import numpy
++
++	if   a.shape==(1,):
++		return a[0]
++	elif a.shape==(1,1):
++		return a[0,0]
++	elif a.shape==(2,2):
++		return a[0,0]*a[1,1]-a[0,1]*a[1,0]
++	else:
++		raise TypeError("MatlabFunc.det only implemented for shape (2, 2), not for shape %s." % str(a.shape))
++
++def sparse(ivec,jvec,svec,m=0,n=0,nzmax=0):
++	import numpy
++
++	if not m:
++		m=numpy.max(ivec)
++	if not n:
++		n=numpy.max(jvec)
++
++	a=numpy.zeros((m,n))
++
++	for i,j,s in zip(ivec.reshape(-1,order='F'),jvec.reshape(-1,order='F'),svec.reshape(-1,order='F')):
++		a[i-1,j-1]+=s
++
++	return a
++
++def heaviside(x):
++	import numpy
++
++	y=numpy.zeros_like(x)
++	y[numpy.nonzero(x> 0.)]=1.
++	y[numpy.nonzero(x==0.)]=0.5
++
++	return y
++
+Index: ../trunk-jpl/src/py3/miscellaneous/PythonFuncs.py
+===================================================================
+--- ../trunk-jpl/src/py3/miscellaneous/PythonFuncs.py	(revision 0)
++++ ../trunk-jpl/src/py3/miscellaneous/PythonFuncs.py	(revision 19895)
+@@ -0,0 +1,24 @@
++def logical_and_n(*arg):
++	from numpy import logical_and
++
++	if len(arg):
++		result=arg[0]
++		for item in arg[1:]:
++			result=logical_and(result,item)
++		return result
++
++	else:
++		return None
++
++def logical_or_n(*arg):
++	from numpy import logical_or
++
++	if len(arg):
++		result=arg[0]
++		for item in arg[1:]:
++			result=logical_or(result,item)
++		return result
++
++	else:
++		return None
++
+Index: ../trunk-jpl/src/py3/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/py3/enum/EnumDefinitions.py	(revision 0)
++++ ../trunk-jpl/src/py3/enum/EnumDefinitions.py	(revision 19895)
+@@ -0,0 +1,962 @@
++from StringToEnum import StringToEnum
++
++"""
++
++WARNING: DO NOT MODIFY THIS FILE
++this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++Please read src/c/shared/Enum/README for more information
++
++"""
++
++def FemModelEnum(): return StringToEnum("FemModel")[0]
++def AutodiffIsautodiffEnum(): return StringToEnum("AutodiffIsautodiff")[0]
++def AutodiffNumDependentsEnum(): return StringToEnum("AutodiffNumDependents")[0]
++def AutodiffNumDependentObjectsEnum(): return StringToEnum("AutodiffNumDependentObjects")[0]
++def AutodiffDependentObjectNamesEnum(): return StringToEnum("AutodiffDependentObjectNames")[0]
++def AutodiffDependentObjectTypesEnum(): return StringToEnum("AutodiffDependentObjectTypes")[0]
++def AutodiffDependentObjectIndicesEnum(): return StringToEnum("AutodiffDependentObjectIndices")[0]
++def AutodiffDependentObjectsEnum(): return StringToEnum("AutodiffDependentObjects")[0]
++def AutodiffNumIndependentsEnum(): return StringToEnum("AutodiffNumIndependents")[0]
++def AutodiffNumIndependentObjectsEnum(): return StringToEnum("AutodiffNumIndependentObjects")[0]
++def AutodiffIndependentObjectNamesEnum(): return StringToEnum("AutodiffIndependentObjectNames")[0]
++def AutodiffIndependentObjectTypesEnum(): return StringToEnum("AutodiffIndependentObjectTypes")[0]
++def AutodiffIndependentObjectsEnum(): return StringToEnum("AutodiffIndependentObjects")[0]
++def AutodiffJacobianEnum(): return StringToEnum("AutodiffJacobian")[0]
++def AutodiffXpEnum(): return StringToEnum("AutodiffXp")[0]
++def AutodiffDriverEnum(): return StringToEnum("AutodiffDriver")[0]
++def AutodiffFosForwardIndexEnum(): return StringToEnum("AutodiffFosForwardIndex")[0]
++def AutodiffFovForwardIndicesEnum(): return StringToEnum("AutodiffFovForwardIndices")[0]
++def AutodiffFosReverseIndexEnum(): return StringToEnum("AutodiffFosReverseIndex")[0]
++def AutodiffMassFluxSegmentsPresentEnum(): return StringToEnum("AutodiffMassFluxSegmentsPresent")[0]
++def AutodiffKeepEnum(): return StringToEnum("AutodiffKeep")[0]
++def AutodiffObufsizeEnum(): return StringToEnum("AutodiffObufsize")[0]
++def AutodiffLbufsizeEnum(): return StringToEnum("AutodiffLbufsize")[0]
++def AutodiffCbufsizeEnum(): return StringToEnum("AutodiffCbufsize")[0]
++def AutodiffTbufsizeEnum(): return StringToEnum("AutodiffTbufsize")[0]
++def AutodiffGcTriggerRatioEnum(): return StringToEnum("AutodiffGcTriggerRatio")[0]
++def AutodiffGcTriggerMaxSizeEnum(): return StringToEnum("AutodiffGcTriggerMaxSize")[0]
++def BalancethicknessSpcthicknessEnum(): return StringToEnum("BalancethicknessSpcthickness")[0]
++def BalancethicknessStabilizationEnum(): return StringToEnum("BalancethicknessStabilization")[0]
++def BalancethicknessThickeningRateEnum(): return StringToEnum("BalancethicknessThickeningRate")[0]
++def BasalforcingsEnum(): return StringToEnum("Basalforcings")[0]
++def BasalforcingsGeothermalfluxEnum(): return StringToEnum("BasalforcingsGeothermalflux")[0]
++def BasalforcingsGroundediceMeltingRateEnum(): return StringToEnum("BasalforcingsGroundediceMeltingRate")[0]
++def BasalforcingsFloatingiceMeltingRateEnum(): return StringToEnum("BasalforcingsFloatingiceMeltingRate")[0]
++def BasalforcingsDeepwaterMeltingRateEnum(): return StringToEnum("BasalforcingsDeepwaterMeltingRate")[0]
++def BasalforcingsDeepwaterElevationEnum(): return StringToEnum("BasalforcingsDeepwaterElevation")[0]
++def BasalforcingsUpperwaterElevationEnum(): return StringToEnum("BasalforcingsUpperwaterElevation")[0]
++def BasalforcingsMeltrateFactorEnum(): return StringToEnum("BasalforcingsMeltrateFactor")[0]
++def BasalforcingsThresholdThicknessEnum(): return StringToEnum("BasalforcingsThresholdThickness")[0]
++def BasalforcingsUpperdepthMeltEnum(): return StringToEnum("BasalforcingsUpperdepthMelt")[0]
++def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0]
++def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0]
++def MismipFloatingMeltRateEnum(): return StringToEnum("MismipFloatingMeltRate")[0]
++def BedEnum(): return StringToEnum("Bed")[0]
++def BaseEnum(): return StringToEnum("Base")[0]
++def ConstantsGEnum(): return StringToEnum("ConstantsG")[0]
++def ConstantsReferencetemperatureEnum(): return StringToEnum("ConstantsReferencetemperature")[0]
++def ConstantsYtsEnum(): return StringToEnum("ConstantsYts")[0]
++def DependentObjectEnum(): return StringToEnum("DependentObject")[0]
++def StressbalanceAbstolEnum(): return StringToEnum("StressbalanceAbstol")[0]
++def StressbalanceIsnewtonEnum(): return StringToEnum("StressbalanceIsnewton")[0]
++def StressbalanceMaxiterEnum(): return StringToEnum("StressbalanceMaxiter")[0]
++def StressbalancePenaltyFactorEnum(): return StringToEnum("StressbalancePenaltyFactor")[0]
++def StressbalanceReferentialEnum(): return StringToEnum("StressbalanceReferential")[0]
++def StressbalanceReltolEnum(): return StringToEnum("StressbalanceReltol")[0]
++def StressbalanceNumRequestedOutputsEnum(): return StringToEnum("StressbalanceNumRequestedOutputs")[0]
++def StressbalanceRequestedOutputsEnum(): return StringToEnum("StressbalanceRequestedOutputs")[0]
++def StressbalanceRestolEnum(): return StringToEnum("StressbalanceRestol")[0]
++def StressbalanceRiftPenaltyLockEnum(): return StringToEnum("StressbalanceRiftPenaltyLock")[0]
++def StressbalanceRiftPenaltyThresholdEnum(): return StringToEnum("StressbalanceRiftPenaltyThreshold")[0]
++def StressbalanceShelfDampeningEnum(): return StringToEnum("StressbalanceShelfDampening")[0]
++def StressbalanceSpcvxEnum(): return StringToEnum("StressbalanceSpcvx")[0]
++def StressbalanceSpcvyEnum(): return StringToEnum("StressbalanceSpcvy")[0]
++def StressbalanceSpcvzEnum(): return StringToEnum("StressbalanceSpcvz")[0]
++def StressbalanceFSreconditioningEnum(): return StringToEnum("StressbalanceFSreconditioning")[0]
++def StressbalanceVertexPairingEnum(): return StringToEnum("StressbalanceVertexPairing")[0]
++def StressbalanceViscosityOvershootEnum(): return StringToEnum("StressbalanceViscosityOvershoot")[0]
++def LoadingforceXEnum(): return StringToEnum("LoadingforceX")[0]
++def LoadingforceYEnum(): return StringToEnum("LoadingforceY")[0]
++def LoadingforceZEnum(): return StringToEnum("LoadingforceZ")[0]
++def FlowequationBorderSSAEnum(): return StringToEnum("FlowequationBorderSSA")[0]
++def FlowequationBorderHOEnum(): return StringToEnum("FlowequationBorderHO")[0]
++def FlowequationBorderFSEnum(): return StringToEnum("FlowequationBorderFS")[0]
++def FlowequationElementEquationEnum(): return StringToEnum("FlowequationElementEquation")[0]
++def FlowequationIsSIAEnum(): return StringToEnum("FlowequationIsSIA")[0]
++def FlowequationIsSSAEnum(): return StringToEnum("FlowequationIsSSA")[0]
++def FlowequationIsL1L2Enum(): return StringToEnum("FlowequationIsL1L2")[0]
++def FlowequationIsHOEnum(): return StringToEnum("FlowequationIsHO")[0]
++def FlowequationIsFSEnum(): return StringToEnum("FlowequationIsFS")[0]
++def FlowequationFeSSAEnum(): return StringToEnum("FlowequationFeSSA")[0]
++def FlowequationFeHOEnum(): return StringToEnum("FlowequationFeHO")[0]
++def FlowequationFeFSEnum(): return StringToEnum("FlowequationFeFS")[0]
++def FlowequationVertexEquationEnum(): return StringToEnum("FlowequationVertexEquation")[0]
++def FrictionAsEnum(): return StringToEnum("FrictionAs")[0]
++def FrictionCoefficientEnum(): return StringToEnum("FrictionCoefficient")[0]
++def FrictionCoefficientcoulombEnum(): return StringToEnum("FrictionCoefficientcoulomb")[0]
++def FrictionPEnum(): return StringToEnum("FrictionP")[0]
++def FrictionQEnum(): return StringToEnum("FrictionQ")[0]
++def FrictionMEnum(): return StringToEnum("FrictionM")[0]
++def FrictionCEnum(): return StringToEnum("FrictionC")[0]
++def FrictionLawEnum(): return StringToEnum("FrictionLaw")[0]
++def FrictionGammaEnum(): return StringToEnum("FrictionGamma")[0]
++def FrictionFEnum(): return StringToEnum("FrictionF")[0]
++def FrictionWaterLayerEnum(): return StringToEnum("FrictionWaterLayer")[0]
++def FrictionEffectivePressureEnum(): return StringToEnum("FrictionEffectivePressure")[0]
++def FrictionCouplingEnum(): return StringToEnum("FrictionCoupling")[0]
++def GeometryHydrostaticRatioEnum(): return StringToEnum("GeometryHydrostaticRatio")[0]
++def HydrologyModelEnum(): return StringToEnum("HydrologyModel")[0]
++def HydrologyshreveEnum(): return StringToEnum("Hydrologyshreve")[0]
++def HydrologyshreveSpcwatercolumnEnum(): return StringToEnum("HydrologyshreveSpcwatercolumn")[0]
++def HydrologyshreveStabilizationEnum(): return StringToEnum("HydrologyshreveStabilization")[0]
++def HydrologydcEnum(): return StringToEnum("Hydrologydc")[0]
++def SedimentHeadEnum(): return StringToEnum("SedimentHead")[0]
++def SedimentHeadOldEnum(): return StringToEnum("SedimentHeadOld")[0]
++def SedimentHeadResidualEnum(): return StringToEnum("SedimentHeadResidual")[0]
++def EffectivePressureEnum(): return StringToEnum("EffectivePressure")[0]
++def EplHeadEnum(): return StringToEnum("EplHead")[0]
++def EplHeadOldEnum(): return StringToEnum("EplHeadOld")[0]
++def EplHeadSlopeXEnum(): return StringToEnum("EplHeadSlopeX")[0]
++def EplHeadSlopeYEnum(): return StringToEnum("EplHeadSlopeY")[0]
++def EplZigZagCounterEnum(): return StringToEnum("EplZigZagCounter")[0]
++def HydrologydcMaxIterEnum(): return StringToEnum("HydrologydcMaxIter")[0]
++def HydrologydcRelTolEnum(): return StringToEnum("HydrologydcRelTol")[0]
++def HydrologydcSpcsedimentHeadEnum(): return StringToEnum("HydrologydcSpcsedimentHead")[0]
++def HydrologydcSedimentCompressibilityEnum(): return StringToEnum("HydrologydcSedimentCompressibility")[0]
++def HydrologydcSedimentPorosityEnum(): return StringToEnum("HydrologydcSedimentPorosity")[0]
++def HydrologydcSedimentThicknessEnum(): return StringToEnum("HydrologydcSedimentThickness")[0]
++def HydrologydcSedimentTransmitivityEnum(): return StringToEnum("HydrologydcSedimentTransmitivity")[0]
++def HydrologydcWaterCompressibilityEnum(): return StringToEnum("HydrologydcWaterCompressibility")[0]
++def HydrologydcSpceplHeadEnum(): return StringToEnum("HydrologydcSpceplHead")[0]
++def HydrologydcMaskEplactiveNodeEnum(): return StringToEnum("HydrologydcMaskEplactiveNode")[0]
++def HydrologydcMaskEplactiveEltEnum(): return StringToEnum("HydrologydcMaskEplactiveElt")[0]
++def HydrologydcEplCompressibilityEnum(): return StringToEnum("HydrologydcEplCompressibility")[0]
++def HydrologydcEplPorosityEnum(): return StringToEnum("HydrologydcEplPorosity")[0]
++def HydrologydcEplInitialThicknessEnum(): return StringToEnum("HydrologydcEplInitialThickness")[0]
++def HydrologydcEplColapseThicknessEnum(): return StringToEnum("HydrologydcEplColapseThickness")[0]
++def HydrologydcEplMaxThicknessEnum(): return StringToEnum("HydrologydcEplMaxThickness")[0]
++def HydrologydcEplThicknessEnum(): return StringToEnum("HydrologydcEplThickness")[0]
++def HydrologydcEplThicknessOldEnum(): return StringToEnum("HydrologydcEplThicknessOld")[0]
++def HydrologydcEplThickCompEnum(): return StringToEnum("HydrologydcEplThickComp")[0]
++def HydrologydcEplConductivityEnum(): return StringToEnum("HydrologydcEplConductivity")[0]
++def HydrologydcIsefficientlayerEnum(): return StringToEnum("HydrologydcIsefficientlayer")[0]
++def HydrologydcSedimentlimitFlagEnum(): return StringToEnum("HydrologydcSedimentlimitFlag")[0]
++def HydrologydcSedimentlimitEnum(): return StringToEnum("HydrologydcSedimentlimit")[0]
++def HydrologydcTransferFlagEnum(): return StringToEnum("HydrologydcTransferFlag")[0]
++def HydrologydcLeakageFactorEnum(): return StringToEnum("HydrologydcLeakageFactor")[0]
++def HydrologydcPenaltyFactorEnum(): return StringToEnum("HydrologydcPenaltyFactor")[0]
++def HydrologydcPenaltyLockEnum(): return StringToEnum("HydrologydcPenaltyLock")[0]
++def HydrologydcEplflipLockEnum(): return StringToEnum("HydrologydcEplflipLock")[0]
++def HydrologydcBasalMoulinInputEnum(): return StringToEnum("HydrologydcBasalMoulinInput")[0]
++def HydrologyLayerEnum(): return StringToEnum("HydrologyLayer")[0]
++def HydrologySedimentEnum(): return StringToEnum("HydrologySediment")[0]
++def HydrologyEfficientEnum(): return StringToEnum("HydrologyEfficient")[0]
++def HydrologySedimentKmaxEnum(): return StringToEnum("HydrologySedimentKmax")[0]
++def HydrologysommersEnum(): return StringToEnum("Hydrologysommers")[0]
++def HydrologyHeadEnum(): return StringToEnum("HydrologyHead")[0]
++def HydrologyGapHeightEnum(): return StringToEnum("HydrologyGapHeight")[0]
++def HydrologyBumpSpacingEnum(): return StringToEnum("HydrologyBumpSpacing")[0]
++def HydrologyBumpHeightEnum(): return StringToEnum("HydrologyBumpHeight")[0]
++def HydrologyEnglacialInputEnum(): return StringToEnum("HydrologyEnglacialInput")[0]
++def HydrologyMoulinInputEnum(): return StringToEnum("HydrologyMoulinInput")[0]
++def HydrologyReynoldsEnum(): return StringToEnum("HydrologyReynolds")[0]
++def HydrologyNeumannfluxEnum(): return StringToEnum("HydrologyNeumannflux")[0]
++def HydrologySpcheadEnum(): return StringToEnum("HydrologySpchead")[0]
++def HydrologyConductivityEnum(): return StringToEnum("HydrologyConductivity")[0]
++def IndependentObjectEnum(): return StringToEnum("IndependentObject")[0]
++def InversionControlParametersEnum(): return StringToEnum("InversionControlParameters")[0]
++def InversionControlScalingFactorsEnum(): return StringToEnum("InversionControlScalingFactors")[0]
++def InversionCostFunctionThresholdEnum(): return StringToEnum("InversionCostFunctionThreshold")[0]
++def InversionCostFunctionsCoefficientsEnum(): return StringToEnum("InversionCostFunctionsCoefficients")[0]
++def InversionCostFunctionsEnum(): return StringToEnum("InversionCostFunctions")[0]
++def InversionGradientScalingEnum(): return StringToEnum("InversionGradientScaling")[0]
++def InversionIscontrolEnum(): return StringToEnum("InversionIscontrol")[0]
++def InversionTypeEnum(): return StringToEnum("InversionType")[0]
++def InversionIncompleteAdjointEnum(): return StringToEnum("InversionIncompleteAdjoint")[0]
++def InversionMaxParametersEnum(): return StringToEnum("InversionMaxParameters")[0]
++def InversionMaxiterPerStepEnum(): return StringToEnum("InversionMaxiterPerStep")[0]
++def InversionMaxiterEnum(): return StringToEnum("InversionMaxiter")[0]
++def InversionMaxstepsEnum(): return StringToEnum("InversionMaxsteps")[0]
++def InversionFatolEnum(): return StringToEnum("InversionFatol")[0]
++def InversionFrtolEnum(): return StringToEnum("InversionFrtol")[0]
++def InversionGatolEnum(): return StringToEnum("InversionGatol")[0]
++def InversionGrtolEnum(): return StringToEnum("InversionGrtol")[0]
++def InversionGttolEnum(): return StringToEnum("InversionGttol")[0]
++def InversionAlgorithmEnum(): return StringToEnum("InversionAlgorithm")[0]
++def InversionMinParametersEnum(): return StringToEnum("InversionMinParameters")[0]
++def InversionNstepsEnum(): return StringToEnum("InversionNsteps")[0]
++def InversionDxminEnum(): return StringToEnum("InversionDxmin")[0]
++def InversionNumControlParametersEnum(): return StringToEnum("InversionNumControlParameters")[0]
++def InversionNumCostFunctionsEnum(): return StringToEnum("InversionNumCostFunctions")[0]
++def InversionStepThresholdEnum(): return StringToEnum("InversionStepThreshold")[0]
++def InversionThicknessObsEnum(): return StringToEnum("InversionThicknessObs")[0]
++def InversionSurfaceObsEnum(): return StringToEnum("InversionSurfaceObs")[0]
++def InversionVxObsEnum(): return StringToEnum("InversionVxObs")[0]
++def InversionVyObsEnum(): return StringToEnum("InversionVyObs")[0]
++def InversionVzObsEnum(): return StringToEnum("InversionVzObs")[0]
++def MaskIceLevelsetEnum(): return StringToEnum("MaskIceLevelset")[0]
++def MaterialsBetaEnum(): return StringToEnum("MaterialsBeta")[0]
++def MaterialsHeatcapacityEnum(): return StringToEnum("MaterialsHeatcapacity")[0]
++def MaterialsLatentheatEnum(): return StringToEnum("MaterialsLatentheat")[0]
++def MaterialsMeltingpointEnum(): return StringToEnum("MaterialsMeltingpoint")[0]
++def MaterialsMixedLayerCapacityEnum(): return StringToEnum("MaterialsMixedLayerCapacity")[0]
++def MaterialsRheologyBEnum(): return StringToEnum("MaterialsRheologyB")[0]
++def MaterialsRheologyBbarEnum(): return StringToEnum("MaterialsRheologyBbar")[0]
++def MaterialsRheologyLawEnum(): return StringToEnum("MaterialsRheologyLaw")[0]
++def MaterialsRheologyNEnum(): return StringToEnum("MaterialsRheologyN")[0]
++def DamageIsdamageEnum(): return StringToEnum("DamageIsdamage")[0]
++def DamageDEnum(): return StringToEnum("DamageD")[0]
++def DamageFEnum(): return StringToEnum("DamageF")[0]
++def DamageDbarEnum(): return StringToEnum("DamageDbar")[0]
++def DamageLawEnum(): return StringToEnum("DamageLaw")[0]
++def DamageC1Enum(): return StringToEnum("DamageC1")[0]
++def DamageC2Enum(): return StringToEnum("DamageC2")[0]
++def DamageC3Enum(): return StringToEnum("DamageC3")[0]
++def DamageC4Enum(): return StringToEnum("DamageC4")[0]
++def DamageElementinterpEnum(): return StringToEnum("DamageElementinterp")[0]
++def DamageHealingEnum(): return StringToEnum("DamageHealing")[0]
++def DamageStressThresholdEnum(): return StringToEnum("DamageStressThreshold")[0]
++def DamageKappaEnum(): return StringToEnum("DamageKappa")[0]
++def DamageStabilizationEnum(): return StringToEnum("DamageStabilization")[0]
++def DamageMaxiterEnum(): return StringToEnum("DamageMaxiter")[0]
++def DamageSpcdamageEnum(): return StringToEnum("DamageSpcdamage")[0]
++def DamageMaxDamageEnum(): return StringToEnum("DamageMaxDamage")[0]
++def DamageEquivStressEnum(): return StringToEnum("DamageEquivStress")[0]
++def DamageEvolutionNumRequestedOutputsEnum(): return StringToEnum("DamageEvolutionNumRequestedOutputs")[0]
++def DamageEvolutionRequestedOutputsEnum(): return StringToEnum("DamageEvolutionRequestedOutputs")[0]
++def DamageEnum(): return StringToEnum("Damage")[0]
++def NewDamageEnum(): return StringToEnum("NewDamage")[0]
++def StressIntensityFactorEnum(): return StringToEnum("StressIntensityFactor")[0]
++def CalvingLawEnum(): return StringToEnum("CalvingLaw")[0]
++def CalvingCalvingrateEnum(): return StringToEnum("CalvingCalvingrate")[0]
++def CalvingMeltingrateEnum(): return StringToEnum("CalvingMeltingrate")[0]
++def CalvingLevermannEnum(): return StringToEnum("CalvingLevermann")[0]
++def CalvingPiEnum(): return StringToEnum("CalvingPi")[0]
++def CalvingDevEnum(): return StringToEnum("CalvingDev")[0]
++def DefaultCalvingEnum(): return StringToEnum("DefaultCalving")[0]
++def CalvingRequestedOutputsEnum(): return StringToEnum("CalvingRequestedOutputs")[0]
++def CalvinglevermannCoeffEnum(): return StringToEnum("CalvinglevermannCoeff")[0]
++def CalvinglevermannMeltingrateEnum(): return StringToEnum("CalvinglevermannMeltingrate")[0]
++def CalvingpiCoeffEnum(): return StringToEnum("CalvingpiCoeff")[0]
++def CalvingpiMeltingrateEnum(): return StringToEnum("CalvingpiMeltingrate")[0]
++def CalvingratexEnum(): return StringToEnum("Calvingratex")[0]
++def CalvingrateyEnum(): return StringToEnum("Calvingratey")[0]
++def CalvingratexAverageEnum(): return StringToEnum("CalvingratexAverage")[0]
++def CalvingrateyAverageEnum(): return StringToEnum("CalvingrateyAverage")[0]
++def StrainRateparallelEnum(): return StringToEnum("StrainRateparallel")[0]
++def StrainRateperpendicularEnum(): return StringToEnum("StrainRateperpendicular")[0]
++def StrainRateeffectiveEnum(): return StringToEnum("StrainRateeffective")[0]
++def MaterialsRhoIceEnum(): return StringToEnum("MaterialsRhoIce")[0]
++def MaterialsRhoSeawaterEnum(): return StringToEnum("MaterialsRhoSeawater")[0]
++def MaterialsRhoFreshwaterEnum(): return StringToEnum("MaterialsRhoFreshwater")[0]
++def MaterialsMuWaterEnum(): return StringToEnum("MaterialsMuWater")[0]
++def MaterialsThermalExchangeVelocityEnum(): return StringToEnum("MaterialsThermalExchangeVelocity")[0]
++def MaterialsThermalconductivityEnum(): return StringToEnum("MaterialsThermalconductivity")[0]
++def MaterialsTemperateiceconductivityEnum(): return StringToEnum("MaterialsTemperateiceconductivity")[0]
++def MaterialsLithosphereShearModulusEnum(): return StringToEnum("MaterialsLithosphereShearModulus")[0]
++def MaterialsLithosphereDensityEnum(): return StringToEnum("MaterialsLithosphereDensity")[0]
++def MaterialsMantleShearModulusEnum(): return StringToEnum("MaterialsMantleShearModulus")[0]
++def MaterialsMantleDensityEnum(): return StringToEnum("MaterialsMantleDensity")[0]
++def MeshAverageVertexConnectivityEnum(): return StringToEnum("MeshAverageVertexConnectivity")[0]
++def MeshElements2dEnum(): return StringToEnum("MeshElements2d")[0]
++def MeshElementsEnum(): return StringToEnum("MeshElements")[0]
++def MeshLowerelementsEnum(): return StringToEnum("MeshLowerelements")[0]
++def MeshNumberofelements2dEnum(): return StringToEnum("MeshNumberofelements2d")[0]
++def MeshNumberofelementsEnum(): return StringToEnum("MeshNumberofelements")[0]
++def MeshNumberoflayersEnum(): return StringToEnum("MeshNumberoflayers")[0]
++def MeshNumberofvertices2dEnum(): return StringToEnum("MeshNumberofvertices2d")[0]
++def MeshNumberofverticesEnum(): return StringToEnum("MeshNumberofvertices")[0]
++def MeshUpperelementsEnum(): return StringToEnum("MeshUpperelements")[0]
++def MeshVertexonbaseEnum(): return StringToEnum("MeshVertexonbase")[0]
++def MeshVertexonsurfaceEnum(): return StringToEnum("MeshVertexonsurface")[0]
++def MeshVertexonboundaryEnum(): return StringToEnum("MeshVertexonboundary")[0]
++def MeshXEnum(): return StringToEnum("MeshX")[0]
++def MeshYEnum(): return StringToEnum("MeshY")[0]
++def MeshZEnum(): return StringToEnum("MeshZ")[0]
++def MeshElementtypeEnum(): return StringToEnum("MeshElementtype")[0]
++def MeshSegmentsEnum(): return StringToEnum("MeshSegments")[0]
++def DomainTypeEnum(): return StringToEnum("DomainType")[0]
++def DomainDimensionEnum(): return StringToEnum("DomainDimension")[0]
++def Domain2DhorizontalEnum(): return StringToEnum("Domain2Dhorizontal")[0]
++def Domain2DverticalEnum(): return StringToEnum("Domain2Dvertical")[0]
++def Domain3DEnum(): return StringToEnum("Domain3D")[0]
++def MiscellaneousNameEnum(): return StringToEnum("MiscellaneousName")[0]
++def MasstransportHydrostaticAdjustmentEnum(): return StringToEnum("MasstransportHydrostaticAdjustment")[0]
++def MasstransportIsfreesurfaceEnum(): return StringToEnum("MasstransportIsfreesurface")[0]
++def MasstransportMinThicknessEnum(): return StringToEnum("MasstransportMinThickness")[0]
++def MasstransportPenaltyFactorEnum(): return StringToEnum("MasstransportPenaltyFactor")[0]
++def MasstransportSpcthicknessEnum(): return StringToEnum("MasstransportSpcthickness")[0]
++def MasstransportStabilizationEnum(): return StringToEnum("MasstransportStabilization")[0]
++def MasstransportVertexPairingEnum(): return StringToEnum("MasstransportVertexPairing")[0]
++def MasstransportNumRequestedOutputsEnum(): return StringToEnum("MasstransportNumRequestedOutputs")[0]
++def MasstransportRequestedOutputsEnum(): return StringToEnum("MasstransportRequestedOutputs")[0]
++def QmuIsdakotaEnum(): return StringToEnum("QmuIsdakota")[0]
++def MassFluxSegmentsEnum(): return StringToEnum("MassFluxSegments")[0]
++def MassFluxSegmentsPresentEnum(): return StringToEnum("MassFluxSegmentsPresent")[0]
++def QmuMassFluxSegmentsPresentEnum(): return StringToEnum("QmuMassFluxSegmentsPresent")[0]
++def QmuNumberofpartitionsEnum(): return StringToEnum("QmuNumberofpartitions")[0]
++def QmuNumberofresponsesEnum(): return StringToEnum("QmuNumberofresponses")[0]
++def QmuPartitionEnum(): return StringToEnum("QmuPartition")[0]
++def QmuResponsedescriptorsEnum(): return StringToEnum("QmuResponsedescriptors")[0]
++def QmuVariabledescriptorsEnum(): return StringToEnum("QmuVariabledescriptors")[0]
++def RiftsNumriftsEnum(): return StringToEnum("RiftsNumrifts")[0]
++def RiftsRiftstructEnum(): return StringToEnum("RiftsRiftstruct")[0]
++def SettingsResultsOnNodesEnum(): return StringToEnum("SettingsResultsOnNodes")[0]
++def SettingsIoGatherEnum(): return StringToEnum("SettingsIoGather")[0]
++def SettingsLowmemEnum(): return StringToEnum("SettingsLowmem")[0]
++def SettingsOutputFrequencyEnum(): return StringToEnum("SettingsOutputFrequency")[0]
++def SettingsRecordingFrequencyEnum(): return StringToEnum("SettingsRecordingFrequency")[0]
++def SettingsWaitonlockEnum(): return StringToEnum("SettingsWaitonlock")[0]
++def DebugProfilingEnum(): return StringToEnum("DebugProfiling")[0]
++def ProfilingCurrentMemEnum(): return StringToEnum("ProfilingCurrentMem")[0]
++def ProfilingCurrentFlopsEnum(): return StringToEnum("ProfilingCurrentFlops")[0]
++def ProfilingSolutionTimeEnum(): return StringToEnum("ProfilingSolutionTime")[0]
++def SteadystateMaxiterEnum(): return StringToEnum("SteadystateMaxiter")[0]
++def SteadystateNumRequestedOutputsEnum(): return StringToEnum("SteadystateNumRequestedOutputs")[0]
++def SteadystateReltolEnum(): return StringToEnum("SteadystateReltol")[0]
++def SteadystateRequestedOutputsEnum(): return StringToEnum("SteadystateRequestedOutputs")[0]
++def SurfaceEnum(): return StringToEnum("Surface")[0]
++def ThermalIsenthalpyEnum(): return StringToEnum("ThermalIsenthalpy")[0]
++def ThermalIsdynamicbasalspcEnum(): return StringToEnum("ThermalIsdynamicbasalspc")[0]
++def ThermalReltolEnum(): return StringToEnum("ThermalReltol")[0]
++def ThermalMaxiterEnum(): return StringToEnum("ThermalMaxiter")[0]
++def ThermalPenaltyFactorEnum(): return StringToEnum("ThermalPenaltyFactor")[0]
++def ThermalPenaltyLockEnum(): return StringToEnum("ThermalPenaltyLock")[0]
++def ThermalPenaltyThresholdEnum(): return StringToEnum("ThermalPenaltyThreshold")[0]
++def ThermalSpctemperatureEnum(): return StringToEnum("ThermalSpctemperature")[0]
++def ThermalStabilizationEnum(): return StringToEnum("ThermalStabilization")[0]
++def ThermalNumRequestedOutputsEnum(): return StringToEnum("ThermalNumRequestedOutputs")[0]
++def ThermalRequestedOutputsEnum(): return StringToEnum("ThermalRequestedOutputs")[0]
++def GiaMantleViscosityEnum(): return StringToEnum("GiaMantleViscosity")[0]
++def GiaLithosphereThicknessEnum(): return StringToEnum("GiaLithosphereThickness")[0]
++def ThicknessEnum(): return StringToEnum("Thickness")[0]
++def TimesteppingStartTimeEnum(): return StringToEnum("TimesteppingStartTime")[0]
++def TimesteppingFinalTimeEnum(): return StringToEnum("TimesteppingFinalTime")[0]
++def TimesteppingCflCoefficientEnum(): return StringToEnum("TimesteppingCflCoefficient")[0]
++def TimesteppingTimeAdaptEnum(): return StringToEnum("TimesteppingTimeAdapt")[0]
++def TimesteppingTimeStepEnum(): return StringToEnum("TimesteppingTimeStep")[0]
++def TimesteppingInterpForcingsEnum(): return StringToEnum("TimesteppingInterpForcings")[0]
++def TransientIssmbEnum(): return StringToEnum("TransientIssmb")[0]
++def TransientIsstressbalanceEnum(): return StringToEnum("TransientIsstressbalance")[0]
++def TransientIsgroundinglineEnum(): return StringToEnum("TransientIsgroundingline")[0]
++def TransientIsmasstransportEnum(): return StringToEnum("TransientIsmasstransport")[0]
++def TransientIsthermalEnum(): return StringToEnum("TransientIsthermal")[0]
++def TransientIsgiaEnum(): return StringToEnum("TransientIsgia")[0]
++def TransientIsdamageevolutionEnum(): return StringToEnum("TransientIsdamageevolution")[0]
++def TransientIshydrologyEnum(): return StringToEnum("TransientIshydrology")[0]
++def TransientIscalvingEnum(): return StringToEnum("TransientIscalving")[0]
++def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
++def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
++def PotentialEnum(): return StringToEnum("Potential")[0]
++def BalancethicknessSpcpotentialEnum(): return StringToEnum("BalancethicknessSpcpotential")[0]
++def BalancethicknessApparentMassbalanceEnum(): return StringToEnum("BalancethicknessApparentMassbalance")[0]
++def Balancethickness2MisfitEnum(): return StringToEnum("Balancethickness2Misfit")[0]
++def BalancethicknessDiffusionCoefficientEnum(): return StringToEnum("BalancethicknessDiffusionCoefficient")[0]
++def BalancethicknessCmuEnum(): return StringToEnum("BalancethicknessCmu")[0]
++def BalancethicknessOmegaEnum(): return StringToEnum("BalancethicknessOmega")[0]
++def BalancethicknessD0Enum(): return StringToEnum("BalancethicknessD0")[0]
++def SmbEnum(): return StringToEnum("Smb")[0]
++def SmbAnalysisEnum(): return StringToEnum("SmbAnalysis")[0]
++def SmbSolutionEnum(): return StringToEnum("SmbSolution")[0]
++def SmbNumRequestedOutputsEnum(): return StringToEnum("SmbNumRequestedOutputs")[0]
++def SmbRequestedOutputsEnum(): return StringToEnum("SmbRequestedOutputs")[0]
++def SmbIsInitializedEnum(): return StringToEnum("SmbIsInitialized")[0]
++def SMBforcingEnum(): return StringToEnum("SMBforcing")[0]
++def SmbMassBalanceEnum(): return StringToEnum("SmbMassBalance")[0]
++def SMBgembEnum(): return StringToEnum("SMBgemb")[0]
++def SmbInitDensityScalingEnum(): return StringToEnum("SmbInitDensityScaling")[0]
++def SmbTaEnum(): return StringToEnum("SmbTa")[0]
++def SmbVEnum(): return StringToEnum("SmbV")[0]
++def SmbDswrfEnum(): return StringToEnum("SmbDswrf")[0]
++def SmbDlwrfEnum(): return StringToEnum("SmbDlwrf")[0]
++def SmbPEnum(): return StringToEnum("SmbP")[0]
++def SmbSwfEnum(): return StringToEnum("SmbSwf")[0]
++def SmbEAirEnum(): return StringToEnum("SmbEAir")[0]
++def SmbPAirEnum(): return StringToEnum("SmbPAir")[0]
++def SmbTmeanEnum(): return StringToEnum("SmbTmean")[0]
++def SmbCEnum(): return StringToEnum("SmbC")[0]
++def SmbTzEnum(): return StringToEnum("SmbTz")[0]
++def SmbVzEnum(): return StringToEnum("SmbVz")[0]
++def SmbDtEnum(): return StringToEnum("SmbDt")[0]
++def SmbDzEnum(): return StringToEnum("SmbDz")[0]
++def SmbAIdxEnum(): return StringToEnum("SmbAIdx")[0]
++def SmbSwIdxEnum(): return StringToEnum("SmbSwIdx")[0]
++def SmbDenIdxEnum(): return StringToEnum("SmbDenIdx")[0]
++def SmbZTopEnum(): return StringToEnum("SmbZTop")[0]
++def SmbDzTopEnum(): return StringToEnum("SmbDzTop")[0]
++def SmbDzMinEnum(): return StringToEnum("SmbDzMin")[0]
++def SmbZYEnum(): return StringToEnum("SmbZY")[0]
++def SmbZMaxEnum(): return StringToEnum("SmbZMax")[0]
++def SmbZMinEnum(): return StringToEnum("SmbZMin")[0]
++def SmbOutputFreqEnum(): return StringToEnum("SmbOutputFreq")[0]
++def SmbASnowEnum(): return StringToEnum("SmbASnow")[0]
++def SmbAIceEnum(): return StringToEnum("SmbAIce")[0]
++def SmbCldFracEnum(): return StringToEnum("SmbCldFrac")[0]
++def SmbT0wetEnum(): return StringToEnum("SmbT0wet")[0]
++def SmbT0dryEnum(): return StringToEnum("SmbT0dry")[0]
++def SmbKEnum(): return StringToEnum("SmbK")[0]
++def SmbDEnum(): return StringToEnum("SmbD")[0]
++def SmbReEnum(): return StringToEnum("SmbRe")[0]
++def SmbGdnEnum(): return StringToEnum("SmbGdn")[0]
++def SmbGspEnum(): return StringToEnum("SmbGsp")[0]
++def SmbECEnum(): return StringToEnum("SmbEC")[0]
++def SmbCondensationEnum(): return StringToEnum("SmbCondensation")[0]
++def SmbWEnum(): return StringToEnum("SmbW")[0]
++def SmbAEnum(): return StringToEnum("SmbA")[0]
++def SmbTEnum(): return StringToEnum("SmbT")[0]
++def SmbIsgraingrowthEnum(): return StringToEnum("SmbIsgraingrowth")[0]
++def SmbIsalbedoEnum(): return StringToEnum("SmbIsalbedo")[0]
++def SmbIsshortwaveEnum(): return StringToEnum("SmbIsshortwave")[0]
++def SmbIsthermalEnum(): return StringToEnum("SmbIsthermal")[0]
++def SmbIsaccumulationEnum(): return StringToEnum("SmbIsaccumulation")[0]
++def SmbIsmeltEnum(): return StringToEnum("SmbIsmelt")[0]
++def SmbIsdensificationEnum(): return StringToEnum("SmbIsdensification")[0]
++def SmbIsturbulentfluxEnum(): return StringToEnum("SmbIsturbulentflux")[0]
++def SMBpddEnum(): return StringToEnum("SMBpdd")[0]
++def SmbDelta18oEnum(): return StringToEnum("SmbDelta18o")[0]
++def SmbDelta18oSurfaceEnum(): return StringToEnum("SmbDelta18oSurface")[0]
++def SmbIsdelta18oEnum(): return StringToEnum("SmbIsdelta18o")[0]
++def SmbIsmungsmEnum(): return StringToEnum("SmbIsmungsm")[0]
++def SmbIsd18opdEnum(): return StringToEnum("SmbIsd18opd")[0]
++def SmbPrecipitationsPresentdayEnum(): return StringToEnum("SmbPrecipitationsPresentday")[0]
++def SmbPrecipitationsLgmEnum(): return StringToEnum("SmbPrecipitationsLgm")[0]
++def SmbTemperaturesPresentdayEnum(): return StringToEnum("SmbTemperaturesPresentday")[0]
++def SmbTemperaturesLgmEnum(): return StringToEnum("SmbTemperaturesLgm")[0]
++def SmbPrecipitationEnum(): return StringToEnum("SmbPrecipitation")[0]
++def SmbDesfacEnum(): return StringToEnum("SmbDesfac")[0]
++def SmbS0pEnum(): return StringToEnum("SmbS0p")[0]
++def SmbS0tEnum(): return StringToEnum("SmbS0t")[0]
++def SmbRlapsEnum(): return StringToEnum("SmbRlaps")[0]
++def SmbRlapslgmEnum(): return StringToEnum("SmbRlapslgm")[0]
++def SmbPfacEnum(): return StringToEnum("SmbPfac")[0]
++def SmbTdiffEnum(): return StringToEnum("SmbTdiff")[0]
++def SmbSealevEnum(): return StringToEnum("SmbSealev")[0]
++def SMBd18opddEnum(): return StringToEnum("SMBd18opdd")[0]
++def SmbDpermilEnum(): return StringToEnum("SmbDpermil")[0]
++def SMBgradientsEnum(): return StringToEnum("SMBgradients")[0]
++def SmbMonthlytemperaturesEnum(): return StringToEnum("SmbMonthlytemperatures")[0]
++def SmbHrefEnum(): return StringToEnum("SmbHref")[0]
++def SmbSmbrefEnum(): return StringToEnum("SmbSmbref")[0]
++def SmbBPosEnum(): return StringToEnum("SmbBPos")[0]
++def SmbBNegEnum(): return StringToEnum("SmbBNeg")[0]
++def SMBhenningEnum(): return StringToEnum("SMBhenning")[0]
++def SMBcomponentsEnum(): return StringToEnum("SMBcomponents")[0]
++def SmbAccumulationEnum(): return StringToEnum("SmbAccumulation")[0]
++def SmbEvaporationEnum(): return StringToEnum("SmbEvaporation")[0]
++def SmbRunoffEnum(): return StringToEnum("SmbRunoff")[0]
++def SMBmeltcomponentsEnum(): return StringToEnum("SMBmeltcomponents")[0]
++def SmbMeltEnum(): return StringToEnum("SmbMelt")[0]
++def SmbRefreezeEnum(): return StringToEnum("SmbRefreeze")[0]
++def SMBgcmEnum(): return StringToEnum("SMBgcm")[0]
++def SmbIspddEnum(): return StringToEnum("SmbIspdd")[0]
++def SmbIssmbgradientsEnum(): return StringToEnum("SmbIssmbgradients")[0]
++def SolutionTypeEnum(): return StringToEnum("SolutionType")[0]
++def AnalysisTypeEnum(): return StringToEnum("AnalysisType")[0]
++def ConfigurationTypeEnum(): return StringToEnum("ConfigurationType")[0]
++def AdjointBalancethicknessAnalysisEnum(): return StringToEnum("AdjointBalancethicknessAnalysis")[0]
++def AdjointBalancethickness2AnalysisEnum(): return StringToEnum("AdjointBalancethickness2Analysis")[0]
++def AdjointHorizAnalysisEnum(): return StringToEnum("AdjointHorizAnalysis")[0]
++def AnalysisCounterEnum(): return StringToEnum("AnalysisCounter")[0]
++def DefaultAnalysisEnum(): return StringToEnum("DefaultAnalysis")[0]
++def BalancethicknessAnalysisEnum(): return StringToEnum("BalancethicknessAnalysis")[0]
++def BalancethicknessSolutionEnum(): return StringToEnum("BalancethicknessSolution")[0]
++def Balancethickness2AnalysisEnum(): return StringToEnum("Balancethickness2Analysis")[0]
++def Balancethickness2SolutionEnum(): return StringToEnum("Balancethickness2Solution")[0]
++def BalancethicknessSoftAnalysisEnum(): return StringToEnum("BalancethicknessSoftAnalysis")[0]
++def BalancethicknessSoftSolutionEnum(): return StringToEnum("BalancethicknessSoftSolution")[0]
++def BalancevelocityAnalysisEnum(): return StringToEnum("BalancevelocityAnalysis")[0]
++def BalancevelocitySolutionEnum(): return StringToEnum("BalancevelocitySolution")[0]
++def L2ProjectionEPLAnalysisEnum(): return StringToEnum("L2ProjectionEPLAnalysis")[0]
++def L2ProjectionBaseAnalysisEnum(): return StringToEnum("L2ProjectionBaseAnalysis")[0]
++def BedSlopeSolutionEnum(): return StringToEnum("BedSlopeSolution")[0]
++def DamageEvolutionSolutionEnum(): return StringToEnum("DamageEvolutionSolution")[0]
++def DamageEvolutionAnalysisEnum(): return StringToEnum("DamageEvolutionAnalysis")[0]
++def StressbalanceAnalysisEnum(): return StringToEnum("StressbalanceAnalysis")[0]
++def StressbalanceSIAAnalysisEnum(): return StringToEnum("StressbalanceSIAAnalysis")[0]
++def StressbalanceSolutionEnum(): return StringToEnum("StressbalanceSolution")[0]
++def StressbalanceVerticalAnalysisEnum(): return StringToEnum("StressbalanceVerticalAnalysis")[0]
++def EnthalpyAnalysisEnum(): return StringToEnum("EnthalpyAnalysis")[0]
++def FlaimAnalysisEnum(): return StringToEnum("FlaimAnalysis")[0]
++def FlaimSolutionEnum(): return StringToEnum("FlaimSolution")[0]
++def HydrologyShreveAnalysisEnum(): return StringToEnum("HydrologyShreveAnalysis")[0]
++def HydrologyDCInefficientAnalysisEnum(): return StringToEnum("HydrologyDCInefficientAnalysis")[0]
++def HydrologyDCEfficientAnalysisEnum(): return StringToEnum("HydrologyDCEfficientAnalysis")[0]
++def HydrologySommersAnalysisEnum(): return StringToEnum("HydrologySommersAnalysis")[0]
++def HydrologySolutionEnum(): return StringToEnum("HydrologySolution")[0]
++def MeltingAnalysisEnum(): return StringToEnum("MeltingAnalysis")[0]
++def MasstransportAnalysisEnum(): return StringToEnum("MasstransportAnalysis")[0]
++def MasstransportSolutionEnum(): return StringToEnum("MasstransportSolution")[0]
++def FreeSurfaceBaseAnalysisEnum(): return StringToEnum("FreeSurfaceBaseAnalysis")[0]
++def FreeSurfaceTopAnalysisEnum(): return StringToEnum("FreeSurfaceTopAnalysis")[0]
++def SurfaceNormalVelocityEnum(): return StringToEnum("SurfaceNormalVelocity")[0]
++def ExtrudeFromBaseAnalysisEnum(): return StringToEnum("ExtrudeFromBaseAnalysis")[0]
++def ExtrudeFromTopAnalysisEnum(): return StringToEnum("ExtrudeFromTopAnalysis")[0]
++def DepthAverageAnalysisEnum(): return StringToEnum("DepthAverageAnalysis")[0]
++def SteadystateSolutionEnum(): return StringToEnum("SteadystateSolution")[0]
++def SurfaceSlopeSolutionEnum(): return StringToEnum("SurfaceSlopeSolution")[0]
++def SmoothAnalysisEnum(): return StringToEnum("SmoothAnalysis")[0]
++def ThermalAnalysisEnum(): return StringToEnum("ThermalAnalysis")[0]
++def ThermalSolutionEnum(): return StringToEnum("ThermalSolution")[0]
++def TransientSolutionEnum(): return StringToEnum("TransientSolution")[0]
++def UzawaPressureAnalysisEnum(): return StringToEnum("UzawaPressureAnalysis")[0]
++def GiaSolutionEnum(): return StringToEnum("GiaSolution")[0]
++def GiaAnalysisEnum(): return StringToEnum("GiaAnalysis")[0]
++def MeshdeformationSolutionEnum(): return StringToEnum("MeshdeformationSolution")[0]
++def MeshdeformationAnalysisEnum(): return StringToEnum("MeshdeformationAnalysis")[0]
++def LevelsetAnalysisEnum(): return StringToEnum("LevelsetAnalysis")[0]
++def LevelsetStabilizationEnum(): return StringToEnum("LevelsetStabilization")[0]
++def ExtrapolationAnalysisEnum(): return StringToEnum("ExtrapolationAnalysis")[0]
++def LsfReinitializationAnalysisEnum(): return StringToEnum("LsfReinitializationAnalysis")[0]
++def ApproximationEnum(): return StringToEnum("Approximation")[0]
++def NoneApproximationEnum(): return StringToEnum("NoneApproximation")[0]
++def SIAApproximationEnum(): return StringToEnum("SIAApproximation")[0]
++def SSAApproximationEnum(): return StringToEnum("SSAApproximation")[0]
++def SSAHOApproximationEnum(): return StringToEnum("SSAHOApproximation")[0]
++def SSAFSApproximationEnum(): return StringToEnum("SSAFSApproximation")[0]
++def L1L2ApproximationEnum(): return StringToEnum("L1L2Approximation")[0]
++def HOApproximationEnum(): return StringToEnum("HOApproximation")[0]
++def HOFSApproximationEnum(): return StringToEnum("HOFSApproximation")[0]
++def FSApproximationEnum(): return StringToEnum("FSApproximation")[0]
++def FSvelocityEnum(): return StringToEnum("FSvelocity")[0]
++def FSpressureEnum(): return StringToEnum("FSpressure")[0]
++def DataSetEnum(): return StringToEnum("DataSet")[0]
++def ConstraintsEnum(): return StringToEnum("Constraints")[0]
++def LoadsEnum(): return StringToEnum("Loads")[0]
++def MaterialsEnum(): return StringToEnum("Materials")[0]
++def NodesEnum(): return StringToEnum("Nodes")[0]
++def ContoursEnum(): return StringToEnum("Contours")[0]
++def ParametersEnum(): return StringToEnum("Parameters")[0]
++def VerticesEnum(): return StringToEnum("Vertices")[0]
++def ResultsEnum(): return StringToEnum("Results")[0]
++def GenericParamEnum(): return StringToEnum("GenericParam")[0]
++def AdolcParamEnum(): return StringToEnum("AdolcParam")[0]
++def BoolInputEnum(): return StringToEnum("BoolInput")[0]
++def BoolParamEnum(): return StringToEnum("BoolParam")[0]
++def ContourEnum(): return StringToEnum("Contour")[0]
++def ControlInputEnum(): return StringToEnum("ControlInput")[0]
++def DatasetInputEnum(): return StringToEnum("DatasetInput")[0]
++def DoubleInputEnum(): return StringToEnum("DoubleInput")[0]
++def DoubleArrayInputEnum(): return StringToEnum("DoubleArrayInput")[0]
++def DataSetParamEnum(): return StringToEnum("DataSetParam")[0]
++def DoubleMatArrayParamEnum(): return StringToEnum("DoubleMatArrayParam")[0]
++def DoubleMatParamEnum(): return StringToEnum("DoubleMatParam")[0]
++def DoubleParamEnum(): return StringToEnum("DoubleParam")[0]
++def DoubleVecParamEnum(): return StringToEnum("DoubleVecParam")[0]
++def ElementEnum(): return StringToEnum("Element")[0]
++def ElementHookEnum(): return StringToEnum("ElementHook")[0]
++def HookEnum(): return StringToEnum("Hook")[0]
++def ExternalResultEnum(): return StringToEnum("ExternalResult")[0]
++def FileParamEnum(): return StringToEnum("FileParam")[0]
++def InputEnum(): return StringToEnum("Input")[0]
++def IntInputEnum(): return StringToEnum("IntInput")[0]
++def InputToExtrudeEnum(): return StringToEnum("InputToExtrude")[0]
++def InputToL2ProjectEnum(): return StringToEnum("InputToL2Project")[0]
++def InputToDepthaverageEnum(): return StringToEnum("InputToDepthaverage")[0]
++def InputToSmoothEnum(): return StringToEnum("InputToSmooth")[0]
++def SmoothThicknessMultiplierEnum(): return StringToEnum("SmoothThicknessMultiplier")[0]
++def IntParamEnum(): return StringToEnum("IntParam")[0]
++def IntVecParamEnum(): return StringToEnum("IntVecParam")[0]
++def TransientParamEnum(): return StringToEnum("TransientParam")[0]
++def MaticeEnum(): return StringToEnum("Matice")[0]
++def MatdamageiceEnum(): return StringToEnum("Matdamageice")[0]
++def MatparEnum(): return StringToEnum("Matpar")[0]
++def NodeEnum(): return StringToEnum("Node")[0]
++def NumericalfluxEnum(): return StringToEnum("Numericalflux")[0]
++def NumericalfluxTypeEnum(): return StringToEnum("NumericalfluxType")[0]
++def NeumannfluxEnum(): return StringToEnum("Neumannflux")[0]
++def ParamEnum(): return StringToEnum("Param")[0]
++def MoulinEnum(): return StringToEnum("Moulin")[0]
++def PengridEnum(): return StringToEnum("Pengrid")[0]
++def PenpairEnum(): return StringToEnum("Penpair")[0]
++def ProfilerEnum(): return StringToEnum("Profiler")[0]
++def MatrixParamEnum(): return StringToEnum("MatrixParam")[0]
++def MassconEnum(): return StringToEnum("Masscon")[0]
++def MassconNameEnum(): return StringToEnum("MassconName")[0]
++def MassconDefinitionenumEnum(): return StringToEnum("MassconDefinitionenum")[0]
++def MassconLevelsetEnum(): return StringToEnum("MassconLevelset")[0]
++def MassconaxpbyEnum(): return StringToEnum("Massconaxpby")[0]
++def MassconaxpbyNameEnum(): return StringToEnum("MassconaxpbyName")[0]
++def MassconaxpbyDefinitionenumEnum(): return StringToEnum("MassconaxpbyDefinitionenum")[0]
++def MassconaxpbyNamexEnum(): return StringToEnum("MassconaxpbyNamex")[0]
++def MassconaxpbyNameyEnum(): return StringToEnum("MassconaxpbyNamey")[0]
++def MassconaxpbyAlphaEnum(): return StringToEnum("MassconaxpbyAlpha")[0]
++def MassconaxpbyBetaEnum(): return StringToEnum("MassconaxpbyBeta")[0]
++def NodeSIdEnum(): return StringToEnum("NodeSId")[0]
++def VectorParamEnum(): return StringToEnum("VectorParam")[0]
++def RiftfrontEnum(): return StringToEnum("Riftfront")[0]
++def RiftfrontTypeEnum(): return StringToEnum("RiftfrontType")[0]
++def SegmentEnum(): return StringToEnum("Segment")[0]
++def SegmentRiftfrontEnum(): return StringToEnum("SegmentRiftfront")[0]
++def SpcDynamicEnum(): return StringToEnum("SpcDynamic")[0]
++def SpcStaticEnum(): return StringToEnum("SpcStatic")[0]
++def SpcTransientEnum(): return StringToEnum("SpcTransient")[0]
++def StringArrayParamEnum(): return StringToEnum("StringArrayParam")[0]
++def StringParamEnum(): return StringToEnum("StringParam")[0]
++def SegEnum(): return StringToEnum("Seg")[0]
++def SegInputEnum(): return StringToEnum("SegInput")[0]
++def TriaEnum(): return StringToEnum("Tria")[0]
++def TriaInputEnum(): return StringToEnum("TriaInput")[0]
++def TetraEnum(): return StringToEnum("Tetra")[0]
++def TetraInputEnum(): return StringToEnum("TetraInput")[0]
++def PentaEnum(): return StringToEnum("Penta")[0]
++def PentaInputEnum(): return StringToEnum("PentaInput")[0]
++def VertexEnum(): return StringToEnum("Vertex")[0]
++def VertexPIdEnum(): return StringToEnum("VertexPId")[0]
++def VertexSIdEnum(): return StringToEnum("VertexSId")[0]
++def AirEnum(): return StringToEnum("Air")[0]
++def IceEnum(): return StringToEnum("Ice")[0]
++def MelangeEnum(): return StringToEnum("Melange")[0]
++def WaterEnum(): return StringToEnum("Water")[0]
++def ClosedEnum(): return StringToEnum("Closed")[0]
++def FreeEnum(): return StringToEnum("Free")[0]
++def OpenEnum(): return StringToEnum("Open")[0]
++def AdjointpEnum(): return StringToEnum("Adjointp")[0]
++def AdjointxEnum(): return StringToEnum("Adjointx")[0]
++def AdjointyEnum(): return StringToEnum("Adjointy")[0]
++def AdjointzEnum(): return StringToEnum("Adjointz")[0]
++def BalancethicknessMisfitEnum(): return StringToEnum("BalancethicknessMisfit")[0]
++def BedSlopeXEnum(): return StringToEnum("BedSlopeX")[0]
++def BedSlopeYEnum(): return StringToEnum("BedSlopeY")[0]
++def BoundaryEnum(): return StringToEnum("Boundary")[0]
++def ConvergedEnum(): return StringToEnum("Converged")[0]
++def FillEnum(): return StringToEnum("Fill")[0]
++def FractionIncrementEnum(): return StringToEnum("FractionIncrement")[0]
++def FrictionEnum(): return StringToEnum("Friction")[0]
++def InternalEnum(): return StringToEnum("Internal")[0]
++def MassFluxEnum(): return StringToEnum("MassFlux")[0]
++def MeltingOffsetEnum(): return StringToEnum("MeltingOffset")[0]
++def MisfitEnum(): return StringToEnum("Misfit")[0]
++def PressureEnum(): return StringToEnum("Pressure")[0]
++def PressurePicardEnum(): return StringToEnum("PressurePicard")[0]
++def AndroidFrictionCoefficientEnum(): return StringToEnum("AndroidFrictionCoefficient")[0]
++def ResetPenaltiesEnum(): return StringToEnum("ResetPenalties")[0]
++def SegmentOnIceShelfEnum(): return StringToEnum("SegmentOnIceShelf")[0]
++def SurfaceAbsVelMisfitEnum(): return StringToEnum("SurfaceAbsVelMisfit")[0]
++def SurfaceAreaEnum(): return StringToEnum("SurfaceArea")[0]
++def SurfaceAverageVelMisfitEnum(): return StringToEnum("SurfaceAverageVelMisfit")[0]
++def SurfaceLogVelMisfitEnum(): return StringToEnum("SurfaceLogVelMisfit")[0]
++def SurfaceLogVxVyMisfitEnum(): return StringToEnum("SurfaceLogVxVyMisfit")[0]
++def SurfaceRelVelMisfitEnum(): return StringToEnum("SurfaceRelVelMisfit")[0]
++def SurfaceSlopeXEnum(): return StringToEnum("SurfaceSlopeX")[0]
++def SurfaceSlopeYEnum(): return StringToEnum("SurfaceSlopeY")[0]
++def TemperatureEnum(): return StringToEnum("Temperature")[0]
++def TemperaturePicardEnum(): return StringToEnum("TemperaturePicard")[0]
++def TemperaturePDDEnum(): return StringToEnum("TemperaturePDD")[0]
++def ThicknessAbsMisfitEnum(): return StringToEnum("ThicknessAbsMisfit")[0]
++def SurfaceAbsMisfitEnum(): return StringToEnum("SurfaceAbsMisfit")[0]
++def VelEnum(): return StringToEnum("Vel")[0]
++def VelocityEnum(): return StringToEnum("Velocity")[0]
++def VxAverageEnum(): return StringToEnum("VxAverage")[0]
++def VxEnum(): return StringToEnum("Vx")[0]
++def VxPicardEnum(): return StringToEnum("VxPicard")[0]
++def VyAverageEnum(): return StringToEnum("VyAverage")[0]
++def VyEnum(): return StringToEnum("Vy")[0]
++def VyPicardEnum(): return StringToEnum("VyPicard")[0]
++def VzEnum(): return StringToEnum("Vz")[0]
++def VzSSAEnum(): return StringToEnum("VzSSA")[0]
++def VzHOEnum(): return StringToEnum("VzHO")[0]
++def VzPicardEnum(): return StringToEnum("VzPicard")[0]
++def VzFSEnum(): return StringToEnum("VzFS")[0]
++def VxMeshEnum(): return StringToEnum("VxMesh")[0]
++def VyMeshEnum(): return StringToEnum("VyMesh")[0]
++def VzMeshEnum(): return StringToEnum("VzMesh")[0]
++def EnthalpyEnum(): return StringToEnum("Enthalpy")[0]
++def EnthalpyPicardEnum(): return StringToEnum("EnthalpyPicard")[0]
++def ThicknessAbsGradientEnum(): return StringToEnum("ThicknessAbsGradient")[0]
++def ThicknessAlongGradientEnum(): return StringToEnum("ThicknessAlongGradient")[0]
++def ThicknessAcrossGradientEnum(): return StringToEnum("ThicknessAcrossGradient")[0]
++def IntMatParamEnum(): return StringToEnum("IntMatParam")[0]
++def RheologyBbarAbsGradientEnum(): return StringToEnum("RheologyBbarAbsGradient")[0]
++def RheologyBAbsGradientEnum(): return StringToEnum("RheologyBAbsGradient")[0]
++def DragCoefficientAbsGradientEnum(): return StringToEnum("DragCoefficientAbsGradient")[0]
++def TransientInputEnum(): return StringToEnum("TransientInput")[0]
++def WaterfractionEnum(): return StringToEnum("Waterfraction")[0]
++def WatercolumnEnum(): return StringToEnum("Watercolumn")[0]
++def BasalFrictionEnum(): return StringToEnum("BasalFriction")[0]
++def ViscousHeatingEnum(): return StringToEnum("ViscousHeating")[0]
++def HydrologyWaterVxEnum(): return StringToEnum("HydrologyWaterVx")[0]
++def HydrologyWaterVyEnum(): return StringToEnum("HydrologyWaterVy")[0]
++def DrivingStressXEnum(): return StringToEnum("DrivingStressX")[0]
++def DrivingStressYEnum(): return StringToEnum("DrivingStressY")[0]
++def SigmaNNEnum(): return StringToEnum("SigmaNN")[0]
++def StressTensorEnum(): return StringToEnum("StressTensor")[0]
++def StressTensorxxEnum(): return StringToEnum("StressTensorxx")[0]
++def StressTensorxyEnum(): return StringToEnum("StressTensorxy")[0]
++def StressTensorxzEnum(): return StringToEnum("StressTensorxz")[0]
++def StressTensoryyEnum(): return StringToEnum("StressTensoryy")[0]
++def StressTensoryzEnum(): return StringToEnum("StressTensoryz")[0]
++def StressTensorzzEnum(): return StringToEnum("StressTensorzz")[0]
++def StressMaxPrincipalEnum(): return StringToEnum("StressMaxPrincipal")[0]
++def DeviatoricStressEnum(): return StringToEnum("DeviatoricStress")[0]
++def DeviatoricStressxxEnum(): return StringToEnum("DeviatoricStressxx")[0]
++def DeviatoricStressxyEnum(): return StringToEnum("DeviatoricStressxy")[0]
++def DeviatoricStressxzEnum(): return StringToEnum("DeviatoricStressxz")[0]
++def DeviatoricStressyyEnum(): return StringToEnum("DeviatoricStressyy")[0]
++def DeviatoricStressyzEnum(): return StringToEnum("DeviatoricStressyz")[0]
++def DeviatoricStresszzEnum(): return StringToEnum("DeviatoricStresszz")[0]
++def DeviatoricStresseffectiveEnum(): return StringToEnum("DeviatoricStresseffective")[0]
++def StrainRateEnum(): return StringToEnum("StrainRate")[0]
++def StrainRatexxEnum(): return StringToEnum("StrainRatexx")[0]
++def StrainRatexyEnum(): return StringToEnum("StrainRatexy")[0]
++def StrainRatexzEnum(): return StringToEnum("StrainRatexz")[0]
++def StrainRateyyEnum(): return StringToEnum("StrainRateyy")[0]
++def StrainRateyzEnum(): return StringToEnum("StrainRateyz")[0]
++def StrainRatezzEnum(): return StringToEnum("StrainRatezz")[0]
++def DivergenceEnum(): return StringToEnum("Divergence")[0]
++def MaxDivergenceEnum(): return StringToEnum("MaxDivergence")[0]
++def GiaCrossSectionShapeEnum(): return StringToEnum("GiaCrossSectionShape")[0]
++def GiadWdtEnum(): return StringToEnum("GiadWdt")[0]
++def GiaWEnum(): return StringToEnum("GiaW")[0]
++def P0Enum(): return StringToEnum("P0")[0]
++def P0ArrayEnum(): return StringToEnum("P0Array")[0]
++def P1Enum(): return StringToEnum("P1")[0]
++def P1DGEnum(): return StringToEnum("P1DG")[0]
++def P1bubbleEnum(): return StringToEnum("P1bubble")[0]
++def P1bubblecondensedEnum(): return StringToEnum("P1bubblecondensed")[0]
++def P2Enum(): return StringToEnum("P2")[0]
++def P2bubbleEnum(): return StringToEnum("P2bubble")[0]
++def P2bubblecondensedEnum(): return StringToEnum("P2bubblecondensed")[0]
++def P2xP1Enum(): return StringToEnum("P2xP1")[0]
++def P1xP2Enum(): return StringToEnum("P1xP2")[0]
++def P1xP3Enum(): return StringToEnum("P1xP3")[0]
++def P2xP4Enum(): return StringToEnum("P2xP4")[0]
++def P1P1Enum(): return StringToEnum("P1P1")[0]
++def P1P1GLSEnum(): return StringToEnum("P1P1GLS")[0]
++def MINIEnum(): return StringToEnum("MINI")[0]
++def MINIcondensedEnum(): return StringToEnum("MINIcondensed")[0]
++def TaylorHoodEnum(): return StringToEnum("TaylorHood")[0]
++def LATaylorHoodEnum(): return StringToEnum("LATaylorHood")[0]
++def XTaylorHoodEnum(): return StringToEnum("XTaylorHood")[0]
++def OneLayerP4zEnum(): return StringToEnum("OneLayerP4z")[0]
++def CrouzeixRaviartEnum(): return StringToEnum("CrouzeixRaviart")[0]
++def LACrouzeixRaviartEnum(): return StringToEnum("LACrouzeixRaviart")[0]
++def SaveResultsEnum(): return StringToEnum("SaveResults")[0]
++def BoolExternalResultEnum(): return StringToEnum("BoolExternalResult")[0]
++def DoubleExternalResultEnum(): return StringToEnum("DoubleExternalResult")[0]
++def DoubleMatExternalResultEnum(): return StringToEnum("DoubleMatExternalResult")[0]
++def IntExternalResultEnum(): return StringToEnum("IntExternalResult")[0]
++def JEnum(): return StringToEnum("J")[0]
++def StringExternalResultEnum(): return StringToEnum("StringExternalResult")[0]
++def StepEnum(): return StringToEnum("Step")[0]
++def TimeEnum(): return StringToEnum("Time")[0]
++def WaterColumnOldEnum(): return StringToEnum("WaterColumnOld")[0]
++def OutputdefinitionEnum(): return StringToEnum("Outputdefinition")[0]
++def Outputdefinition1Enum(): return StringToEnum("Outputdefinition1")[0]
++def Outputdefinition2Enum(): return StringToEnum("Outputdefinition2")[0]
++def Outputdefinition3Enum(): return StringToEnum("Outputdefinition3")[0]
++def Outputdefinition4Enum(): return StringToEnum("Outputdefinition4")[0]
++def Outputdefinition5Enum(): return StringToEnum("Outputdefinition5")[0]
++def Outputdefinition6Enum(): return StringToEnum("Outputdefinition6")[0]
++def Outputdefinition7Enum(): return StringToEnum("Outputdefinition7")[0]
++def Outputdefinition8Enum(): return StringToEnum("Outputdefinition8")[0]
++def Outputdefinition9Enum(): return StringToEnum("Outputdefinition9")[0]
++def Outputdefinition10Enum(): return StringToEnum("Outputdefinition10")[0]
++def Outputdefinition11Enum(): return StringToEnum("Outputdefinition11")[0]
++def Outputdefinition12Enum(): return StringToEnum("Outputdefinition12")[0]
++def Outputdefinition13Enum(): return StringToEnum("Outputdefinition13")[0]
++def Outputdefinition14Enum(): return StringToEnum("Outputdefinition14")[0]
++def Outputdefinition15Enum(): return StringToEnum("Outputdefinition15")[0]
++def Outputdefinition16Enum(): return StringToEnum("Outputdefinition16")[0]
++def Outputdefinition17Enum(): return StringToEnum("Outputdefinition17")[0]
++def Outputdefinition18Enum(): return StringToEnum("Outputdefinition18")[0]
++def Outputdefinition19Enum(): return StringToEnum("Outputdefinition19")[0]
++def Outputdefinition20Enum(): return StringToEnum("Outputdefinition20")[0]
++def Outputdefinition21Enum(): return StringToEnum("Outputdefinition21")[0]
++def Outputdefinition22Enum(): return StringToEnum("Outputdefinition22")[0]
++def Outputdefinition23Enum(): return StringToEnum("Outputdefinition23")[0]
++def Outputdefinition24Enum(): return StringToEnum("Outputdefinition24")[0]
++def Outputdefinition25Enum(): return StringToEnum("Outputdefinition25")[0]
++def Outputdefinition26Enum(): return StringToEnum("Outputdefinition26")[0]
++def Outputdefinition27Enum(): return StringToEnum("Outputdefinition27")[0]
++def Outputdefinition28Enum(): return StringToEnum("Outputdefinition28")[0]
++def Outputdefinition29Enum(): return StringToEnum("Outputdefinition29")[0]
++def Outputdefinition30Enum(): return StringToEnum("Outputdefinition30")[0]
++def Outputdefinition31Enum(): return StringToEnum("Outputdefinition31")[0]
++def Outputdefinition32Enum(): return StringToEnum("Outputdefinition32")[0]
++def Outputdefinition33Enum(): return StringToEnum("Outputdefinition33")[0]
++def Outputdefinition34Enum(): return StringToEnum("Outputdefinition34")[0]
++def Outputdefinition35Enum(): return StringToEnum("Outputdefinition35")[0]
++def Outputdefinition36Enum(): return StringToEnum("Outputdefinition36")[0]
++def Outputdefinition37Enum(): return StringToEnum("Outputdefinition37")[0]
++def Outputdefinition38Enum(): return StringToEnum("Outputdefinition38")[0]
++def Outputdefinition39Enum(): return StringToEnum("Outputdefinition39")[0]
++def Outputdefinition40Enum(): return StringToEnum("Outputdefinition40")[0]
++def Outputdefinition41Enum(): return StringToEnum("Outputdefinition41")[0]
++def Outputdefinition42Enum(): return StringToEnum("Outputdefinition42")[0]
++def Outputdefinition43Enum(): return StringToEnum("Outputdefinition43")[0]
++def Outputdefinition44Enum(): return StringToEnum("Outputdefinition44")[0]
++def Outputdefinition45Enum(): return StringToEnum("Outputdefinition45")[0]
++def Outputdefinition46Enum(): return StringToEnum("Outputdefinition46")[0]
++def Outputdefinition47Enum(): return StringToEnum("Outputdefinition47")[0]
++def Outputdefinition48Enum(): return StringToEnum("Outputdefinition48")[0]
++def Outputdefinition49Enum(): return StringToEnum("Outputdefinition49")[0]
++def Outputdefinition50Enum(): return StringToEnum("Outputdefinition50")[0]
++def Outputdefinition51Enum(): return StringToEnum("Outputdefinition51")[0]
++def Outputdefinition52Enum(): return StringToEnum("Outputdefinition52")[0]
++def Outputdefinition53Enum(): return StringToEnum("Outputdefinition53")[0]
++def Outputdefinition54Enum(): return StringToEnum("Outputdefinition54")[0]
++def Outputdefinition55Enum(): return StringToEnum("Outputdefinition55")[0]
++def Outputdefinition56Enum(): return StringToEnum("Outputdefinition56")[0]
++def Outputdefinition57Enum(): return StringToEnum("Outputdefinition57")[0]
++def Outputdefinition58Enum(): return StringToEnum("Outputdefinition58")[0]
++def Outputdefinition59Enum(): return StringToEnum("Outputdefinition59")[0]
++def Outputdefinition60Enum(): return StringToEnum("Outputdefinition60")[0]
++def Outputdefinition61Enum(): return StringToEnum("Outputdefinition61")[0]
++def Outputdefinition62Enum(): return StringToEnum("Outputdefinition62")[0]
++def Outputdefinition63Enum(): return StringToEnum("Outputdefinition63")[0]
++def Outputdefinition64Enum(): return StringToEnum("Outputdefinition64")[0]
++def Outputdefinition65Enum(): return StringToEnum("Outputdefinition65")[0]
++def Outputdefinition66Enum(): return StringToEnum("Outputdefinition66")[0]
++def Outputdefinition67Enum(): return StringToEnum("Outputdefinition67")[0]
++def Outputdefinition68Enum(): return StringToEnum("Outputdefinition68")[0]
++def Outputdefinition69Enum(): return StringToEnum("Outputdefinition69")[0]
++def Outputdefinition70Enum(): return StringToEnum("Outputdefinition70")[0]
++def Outputdefinition71Enum(): return StringToEnum("Outputdefinition71")[0]
++def Outputdefinition72Enum(): return StringToEnum("Outputdefinition72")[0]
++def Outputdefinition73Enum(): return StringToEnum("Outputdefinition73")[0]
++def Outputdefinition74Enum(): return StringToEnum("Outputdefinition74")[0]
++def Outputdefinition75Enum(): return StringToEnum("Outputdefinition75")[0]
++def Outputdefinition76Enum(): return StringToEnum("Outputdefinition76")[0]
++def Outputdefinition77Enum(): return StringToEnum("Outputdefinition77")[0]
++def Outputdefinition78Enum(): return StringToEnum("Outputdefinition78")[0]
++def Outputdefinition79Enum(): return StringToEnum("Outputdefinition79")[0]
++def Outputdefinition80Enum(): return StringToEnum("Outputdefinition80")[0]
++def Outputdefinition81Enum(): return StringToEnum("Outputdefinition81")[0]
++def Outputdefinition82Enum(): return StringToEnum("Outputdefinition82")[0]
++def Outputdefinition83Enum(): return StringToEnum("Outputdefinition83")[0]
++def Outputdefinition84Enum(): return StringToEnum("Outputdefinition84")[0]
++def Outputdefinition85Enum(): return StringToEnum("Outputdefinition85")[0]
++def Outputdefinition86Enum(): return StringToEnum("Outputdefinition86")[0]
++def Outputdefinition87Enum(): return StringToEnum("Outputdefinition87")[0]
++def Outputdefinition88Enum(): return StringToEnum("Outputdefinition88")[0]
++def Outputdefinition89Enum(): return StringToEnum("Outputdefinition89")[0]
++def Outputdefinition90Enum(): return StringToEnum("Outputdefinition90")[0]
++def Outputdefinition91Enum(): return StringToEnum("Outputdefinition91")[0]
++def Outputdefinition92Enum(): return StringToEnum("Outputdefinition92")[0]
++def Outputdefinition93Enum(): return StringToEnum("Outputdefinition93")[0]
++def Outputdefinition94Enum(): return StringToEnum("Outputdefinition94")[0]
++def Outputdefinition95Enum(): return StringToEnum("Outputdefinition95")[0]
++def Outputdefinition96Enum(): return StringToEnum("Outputdefinition96")[0]
++def Outputdefinition97Enum(): return StringToEnum("Outputdefinition97")[0]
++def Outputdefinition98Enum(): return StringToEnum("Outputdefinition98")[0]
++def Outputdefinition99Enum(): return StringToEnum("Outputdefinition99")[0]
++def Outputdefinition100Enum(): return StringToEnum("Outputdefinition100")[0]
++def OutputdefinitionListEnum(): return StringToEnum("OutputdefinitionList")[0]
++def MassfluxatgateEnum(): return StringToEnum("Massfluxatgate")[0]
++def MassfluxatgateNameEnum(): return StringToEnum("MassfluxatgateName")[0]
++def MassfluxatgateDefinitionenumEnum(): return StringToEnum("MassfluxatgateDefinitionenum")[0]
++def MassfluxatgateSegmentsEnum(): return StringToEnum("MassfluxatgateSegments")[0]
++def MisfitNameEnum(): return StringToEnum("MisfitName")[0]
++def MisfitDefinitionenumEnum(): return StringToEnum("MisfitDefinitionenum")[0]
++def MisfitModelEnumEnum(): return StringToEnum("MisfitModelEnum")[0]
++def MisfitObservationEnum(): return StringToEnum("MisfitObservation")[0]
++def MisfitObservationEnumEnum(): return StringToEnum("MisfitObservationEnum")[0]
++def MisfitLocalEnum(): return StringToEnum("MisfitLocal")[0]
++def MisfitTimeinterpolationEnum(): return StringToEnum("MisfitTimeinterpolation")[0]
++def MisfitWeightsEnum(): return StringToEnum("MisfitWeights")[0]
++def MisfitWeightsEnumEnum(): return StringToEnum("MisfitWeightsEnum")[0]
++def SurfaceObservationEnum(): return StringToEnum("SurfaceObservation")[0]
++def WeightsSurfaceObservationEnum(): return StringToEnum("WeightsSurfaceObservation")[0]
++def VxObsEnum(): return StringToEnum("VxObs")[0]
++def WeightsVxObsEnum(): return StringToEnum("WeightsVxObs")[0]
++def VyObsEnum(): return StringToEnum("VyObs")[0]
++def WeightsVyObsEnum(): return StringToEnum("WeightsVyObs")[0]
++def MinVelEnum(): return StringToEnum("MinVel")[0]
++def MaxVelEnum(): return StringToEnum("MaxVel")[0]
++def MinVxEnum(): return StringToEnum("MinVx")[0]
++def MaxVxEnum(): return StringToEnum("MaxVx")[0]
++def MaxAbsVxEnum(): return StringToEnum("MaxAbsVx")[0]
++def MinVyEnum(): return StringToEnum("MinVy")[0]
++def MaxVyEnum(): return StringToEnum("MaxVy")[0]
++def MaxAbsVyEnum(): return StringToEnum("MaxAbsVy")[0]
++def MinVzEnum(): return StringToEnum("MinVz")[0]
++def MaxVzEnum(): return StringToEnum("MaxVz")[0]
++def MaxAbsVzEnum(): return StringToEnum("MaxAbsVz")[0]
++def FloatingAreaEnum(): return StringToEnum("FloatingArea")[0]
++def GroundedAreaEnum(): return StringToEnum("GroundedArea")[0]
++def IceMassEnum(): return StringToEnum("IceMass")[0]
++def IceVolumeEnum(): return StringToEnum("IceVolume")[0]
++def IceVolumeAboveFloatationEnum(): return StringToEnum("IceVolumeAboveFloatation")[0]
++def TotalSmbEnum(): return StringToEnum("TotalSmb")[0]
++def AbsoluteEnum(): return StringToEnum("Absolute")[0]
++def IncrementalEnum(): return StringToEnum("Incremental")[0]
++def AugmentedLagrangianREnum(): return StringToEnum("AugmentedLagrangianR")[0]
++def AugmentedLagrangianRhopEnum(): return StringToEnum("AugmentedLagrangianRhop")[0]
++def AugmentedLagrangianRlambdaEnum(): return StringToEnum("AugmentedLagrangianRlambda")[0]
++def AugmentedLagrangianRholambdaEnum(): return StringToEnum("AugmentedLagrangianRholambda")[0]
++def AugmentedLagrangianThetaEnum(): return StringToEnum("AugmentedLagrangianTheta")[0]
++def NoneEnum(): return StringToEnum("None")[0]
++def AggressiveMigrationEnum(): return StringToEnum("AggressiveMigration")[0]
++def SoftMigrationEnum(): return StringToEnum("SoftMigration")[0]
++def SubelementMigrationEnum(): return StringToEnum("SubelementMigration")[0]
++def SubelementMigration2Enum(): return StringToEnum("SubelementMigration2")[0]
++def ContactEnum(): return StringToEnum("Contact")[0]
++def GroundingOnlyEnum(): return StringToEnum("GroundingOnly")[0]
++def MaskGroundediceLevelsetEnum(): return StringToEnum("MaskGroundediceLevelset")[0]
++def GaussSegEnum(): return StringToEnum("GaussSeg")[0]
++def GaussTriaEnum(): return StringToEnum("GaussTria")[0]
++def GaussTetraEnum(): return StringToEnum("GaussTetra")[0]
++def GaussPentaEnum(): return StringToEnum("GaussPenta")[0]
++def FSSolverEnum(): return StringToEnum("FSSolver")[0]
++def AdjointEnum(): return StringToEnum("Adjoint")[0]
++def ColinearEnum(): return StringToEnum("Colinear")[0]
++def ControlSteadyEnum(): return StringToEnum("ControlSteady")[0]
++def FsetEnum(): return StringToEnum("Fset")[0]
++def Gradient1Enum(): return StringToEnum("Gradient1")[0]
++def Gradient2Enum(): return StringToEnum("Gradient2")[0]
++def Gradient3Enum(): return StringToEnum("Gradient3")[0]
++def GradientEnum(): return StringToEnum("Gradient")[0]
++def GroundinglineMigrationEnum(): return StringToEnum("GroundinglineMigration")[0]
++def GsetEnum(): return StringToEnum("Gset")[0]
++def IndexEnum(): return StringToEnum("Index")[0]
++def IndexedEnum(): return StringToEnum("Indexed")[0]
++def IntersectEnum(): return StringToEnum("Intersect")[0]
++def NodalEnum(): return StringToEnum("Nodal")[0]
++def OldGradientEnum(): return StringToEnum("OldGradient")[0]
++def OutputBufferPointerEnum(): return StringToEnum("OutputBufferPointer")[0]
++def OutputBufferSizePointerEnum(): return StringToEnum("OutputBufferSizePointer")[0]
++def OutputFilePointerEnum(): return StringToEnum("OutputFilePointer")[0]
++def ToolkitsFileNameEnum(): return StringToEnum("ToolkitsFileName")[0]
++def RootPathEnum(): return StringToEnum("RootPath")[0]
++def OutputFileNameEnum(): return StringToEnum("OutputFileName")[0]
++def InputFileNameEnum(): return StringToEnum("InputFileName")[0]
++def LockFileNameEnum(): return StringToEnum("LockFileName")[0]
++def RestartFileNameEnum(): return StringToEnum("RestartFileName")[0]
++def ToolkitsOptionsAnalysesEnum(): return StringToEnum("ToolkitsOptionsAnalyses")[0]
++def ToolkitsOptionsStringsEnum(): return StringToEnum("ToolkitsOptionsStrings")[0]
++def QmuErrNameEnum(): return StringToEnum("QmuErrName")[0]
++def QmuInNameEnum(): return StringToEnum("QmuInName")[0]
++def QmuOutNameEnum(): return StringToEnum("QmuOutName")[0]
++def RegularEnum(): return StringToEnum("Regular")[0]
++def ScaledEnum(): return StringToEnum("Scaled")[0]
++def SeparateEnum(): return StringToEnum("Separate")[0]
++def SsetEnum(): return StringToEnum("Sset")[0]
++def VerboseEnum(): return StringToEnum("Verbose")[0]
++def TriangleInterpEnum(): return StringToEnum("TriangleInterp")[0]
++def BilinearInterpEnum(): return StringToEnum("BilinearInterp")[0]
++def NearestInterpEnum(): return StringToEnum("NearestInterp")[0]
++def XYEnum(): return StringToEnum("XY")[0]
++def XYZEnum(): return StringToEnum("XYZ")[0]
++def DenseEnum(): return StringToEnum("Dense")[0]
++def MpiDenseEnum(): return StringToEnum("MpiDense")[0]
++def MpiSparseEnum(): return StringToEnum("MpiSparse")[0]
++def SeqEnum(): return StringToEnum("Seq")[0]
++def MpiEnum(): return StringToEnum("Mpi")[0]
++def MumpsEnum(): return StringToEnum("Mumps")[0]
++def GslEnum(): return StringToEnum("Gsl")[0]
++def OptionEnum(): return StringToEnum("Option")[0]
++def GenericOptionEnum(): return StringToEnum("GenericOption")[0]
++def OptionCellEnum(): return StringToEnum("OptionCell")[0]
++def OptionStructEnum(): return StringToEnum("OptionStruct")[0]
++def CuffeyEnum(): return StringToEnum("Cuffey")[0]
++def PatersonEnum(): return StringToEnum("Paterson")[0]
++def ArrheniusEnum(): return StringToEnum("Arrhenius")[0]
++def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
++def TransientIslevelsetEnum(): return StringToEnum("TransientIslevelset")[0]
++def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
++def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
++def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
++def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
++def LevelsetfunctionSlopeYEnum(): return StringToEnum("LevelsetfunctionSlopeY")[0]
++def LevelsetfunctionPicardEnum(): return StringToEnum("LevelsetfunctionPicard")[0]
++def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
+Index: ../trunk-jpl/src/py3/io/savevars.py
+===================================================================
+--- ../trunk-jpl/src/py3/io/savevars.py	(revision 0)
++++ ../trunk-jpl/src/py3/io/savevars.py	(revision 19895)
+@@ -0,0 +1,62 @@
++import shelve
++import os.path
++
++def savevars(*args):
++	"""
++	SAVEVARS - function to save variables to a file.
++
++	This function saves one or more variables to a file.  The names of the variables
++	must be supplied.  If more than one variable is specified, it may be done with
++	lists of names and values or a dictionary of name:value pairs.  All the variables
++	in the workspace may be saved by specifying the globals() dictionary, but this
++	may include a lot of extraneous data.
++
++	Usage:
++	   savevars('shelve.dat','a',a)
++	   savevars('shelve.dat',['a','b'],[a,b])
++	   savevars('shelve.dat',{'a':a,'b':b})
++	   savevars('shelve.dat',globals())
++
++	"""
++
++	filename=''
++	nvdict={}
++
++	if len(args) >= 1 and isinstance(args[0],str):
++		filename=args[0]
++		if not filename:
++			filename='/tmp/shelve.dat'
++
++	else:
++		raise TypeError("Missing file name.")
++
++	if   len(args) >= 3 and isinstance(args[1],str):    # (filename,name,value)
++		for i in range(1,len(args),2):
++			nvdict[args[i]]=args[i+1]
++
++	elif len(args) == 3 and isinstance(args[1],list) and isinstance(args[2],list):    # (filename,[names],[values])
++		for name,value in zip(args[1],args[2]):
++			nvdict[name]=value
++
++	elif len(args) == 2 and isinstance(args[1],dict):    # (filename,{names:values})
++		nvdict=args[1]
++
++	else:
++		raise TypeError("Unrecognized input arguments.")
++
++	if os.path.exists(filename):
++		print("Shelving variables to existing file '%s'." % filename)
++	else:
++		print("Shelving variables to new file '%s'." % filename)
++
++	my_shelf = shelve.open(filename,'c') # 'c' for create if not exist, else 'n' for new
++
++	for name,value in nvdict.items():
++		try:
++			my_shelf[name] = value
++			print("Variable '%s' shelved." % name)
++		except TypeError:
++			print("Variable '%s' not shelved." % name)
++
++	my_shelf.close()
++
+Index: ../trunk-jpl/src/py3/io/loadvars.py
+===================================================================
+--- ../trunk-jpl/src/py3/io/loadvars.py	(revision 0)
++++ ../trunk-jpl/src/py3/io/loadvars.py	(revision 19895)
+@@ -0,0 +1,84 @@
++import shelve
++import os.path
++from dbm import whichdb
++
++def loadvars(*args):
++	"""
++	LOADVARS - function to load variables to a file.
++
++	This function loads one or more variables from a file.  The names of the variables
++	must be supplied.  If more than one variable is specified, it may be done with
++	a list of names or a dictionary of name as keys.  The output type will correspond
++	to the input type.  All the variables in the file may be loaded by specifying only
++	the file name.
++
++	Usage:
++	   a=loadvars('shelve.dat','a')
++	   [a,b]=loadvars('shelve.dat',['a','b'])
++	   nvdict=loadvars('shelve.dat',{'a':None,'b':None})
++	   nvdict=loadvars('shelve.dat')
++
++	"""
++
++	filename=''
++	nvdict={}
++
++	if len(args) >= 1 and isinstance(args[0],str):
++		filename=args[0]
++		if not filename:
++			filename='/tmp/shelve.dat'
++
++	else:
++		raise TypeError("Missing file name.")
++
++	if   len(args) >= 2 and isinstance(args[1],str):    # (filename,name)
++		for name in args[1:]:
++			nvdict[name]=None
++
++	elif len(args) == 2 and isinstance(args[1],list):    # (filename,[names])
++		for name in args[1]:
++			nvdict[name]=None
++
++	elif len(args) == 2 and isinstance(args[1],dict):    # (filename,{names:values})
++		nvdict=args[1]
++
++	elif len(args) == 1:    #  (filename)
++		pass
++
++	else:
++		raise TypeError("Unrecognized input arguments.")
++
++	if whichdb(filename):
++		print("Loading variables from file '%s'." % filename)
++	else:
++		raise IOError("File '%s' not found." % filename)
++
++	my_shelf = shelve.open(filename,'r') # 'r' for read-only
++
++	if nvdict:
++		for name in nvdict.keys():
++			try:
++				nvdict[name] = my_shelf[name]
++				print("Variable '%s' loaded." % name)
++			except KeyError:
++				value = None
++				print("Variable '%s' not found." % name)
++
++	else:
++		for name in my_shelf.keys():
++			nvdict[name] = my_shelf[name]
++			print("Variable '%s' loaded." % name)
++
++	my_shelf.close()
++
++	if   len(args) >= 2 and isinstance(args[1],str):    # (value)
++		value=[nvdict[name] for name in args[1:]]
++		return value
++
++	elif len(args) == 2 and isinstance(args[1],list):    # ([values])
++		value=[nvdict[name] for name in args[1]]
++		return value
++
++	elif (len(args) == 2 and isinstance(args[1],dict)) or (len(args) == 1):    # ({names:values})
++		return nvdict
++
+Index: ../trunk-jpl/src/py3/io/loadmodel.py
+===================================================================
+--- ../trunk-jpl/src/py3/io/loadmodel.py	(revision 0)
++++ ../trunk-jpl/src/py3/io/loadmodel.py	(revision 19895)
+@@ -0,0 +1,35 @@
++from loadvars import loadvars
++from dbm import whichdb
++
++def loadmodel(path):
++	"""
++	LOADMODEL - load a model using built-in load module
++
++	   check that model prototype has not changed. if so, adapt to new model prototype.
++	
++	   Usage:
++	      md=loadmodel(path)
++	"""
++
++	#check existence of database (independent of file extension!)
++	if whichdb(path):
++		#do nothing
++		pass
++	else:
++		raise IOError("loadmodel error message: file '%s' does not exist" % path)
++
++	try:
++		#recover model on file and name it md
++		struc=loadvars(path)
++
++		name=[key for key in struc.keys()]
++		if len(name)>1:
++			raise IOError("loadmodel error message: file '%s' contains several variables. Only one model should be present." % path)
++
++		md=struc[name[0]]
++		return md
++
++	except Exception as me:
++		print(me)
++		raise IOError("could not load model '%s'" % path)
++
+Index: ../trunk-jpl/src/py3/modifier.sh
+===================================================================
+--- ../trunk-jpl/src/py3/modifier.sh	(revision 0)
++++ ../trunk-jpl/src/py3/modifier.sh	(revision 19895)
+@@ -0,0 +1,419 @@
++sed -i 's/(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)/(md,fieldname='friction.coefficient',timeseries=1,NaN=1)/g' ./classes/frictioncoulomb.py	
++sed -i 's/(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)/(md,fieldname='friction.coefficientcoulomb',timeseries=1,NaN=1)/g' ./classes/frictioncoulomb.py
++sed -i 's/(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])/(md,fieldname='friction.q',NaN=1,size=[md.mesh.numberofelements])/g' ./classes/frictioncoulomb.py	
++sed -i 's/(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])/(md,fieldname='friction.p',NaN=1,size=[md.mesh.numberofelements])/g' ./classes/frictioncoulomb.py
++sed -i 's/(md,'fieldname','autodiff.obufsize','>=',524288)/(md,fieldname='autodiff.obufsize',ge=524288)/g' ./classes/autodiff.py
++sed -i 's/(md,'fieldname','autodiff.lbufsize','>=',524288)/(md,fieldname='autodiff.lbufsize',ge=524288)/g' ./classes/autodiff.py	
++sed -i 's/(md,'fieldname','autodiff.cbufsize','>=',524288)/(md,fieldname='autodiff.cbufsize',ge=524288)/g' ./classes/autodiff.py		
++sed -i 's/(md,'fieldname','autodiff.tbufsize','>=',524288)/(md,fieldname='autodiff.tbufsize',ge=524288)/g' ./classes/autodiff.py		
++sed -i 's/(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)/(md,fieldname='autodiff.gcTriggerRatio',ge=2.0)/g' ./classes/autodiff.py
++sed -i 's/(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)/(md,fieldname='autodiff.gcTriggerMaxSize',ge=2000000)/g' ./classes/autodiff.py
++sed -i 's/(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])/(md,fieldname='autodiff.driver',values=['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])/g' ./classes/autodiff.py
++sed -i 's/(md,'fieldname','materials.rho_ice','>',0)/(md,fieldname='materials.rho_ice',gt=0)/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.rho_water','>',0)/(md,fieldname='materials.rho_water',gt=0)/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.rho_freshwater','>',0)/(md,fieldname='materials.rho_freshwater',gt=0)/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.mu_water','>',0)/(md,fieldname='materials.mu_water',gt=0)/g' ./classes/matice.py		
++sed -i 's/(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1)/(md,fieldname='materials.rheology_B',gt=0,timeseries=1,NaN=1)/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])/(md,fieldname='materials.rheology_n',gt=0,size=[md.mesh.numberofelements])/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])/(md,fieldname='materials.rheology_law',values=['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])/g' ./classes/matice.py		
++sed -i 's/(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);/(md,fieldname='materials.lithosphere_shear_modulus',gt=0,numel=[1]);/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);/(md,fieldname='materials.lithosphere_density',gt=0,numel=[1]);/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);/(md,fieldname='materials.mantle_shear_modulus',gt=0,numel=[1]);/g' ./classes/matice.py
++sed -i 's/(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);/(md,fieldname='materials.mantle_density',gt=0,numel=[1]);/g' ./classes/matice.py:		
++sed -i 's/(md,'fieldname','smb.desfac','<=',1,'numel',[1])/(md,fieldname='smb.desfac',le=1,numel=[1])/g' ./classes/SMBd18opdd.py:			
++sed -i 's/(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='smb.s0p',ge=0,NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/SMBd18opdd.py:			
++sed -i 's/(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='smb.s0t',ge=0,NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/SMBd18opdd.py:			
++sed -i 's/(md,'fieldname','smb.rlaps','>=',0,'numel',[1])/(md,fieldname='smb.rlaps',ge=0,numel=[1])/g' ./classes/SMBd18opdd.py:			
++sed -i 's/(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])/(md,fieldname='smb.rlapslgm',ge=0,numel=[1])/g' ./classes/SMBd18opdd.py:			
++sed -i 's/(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.temperatures_presentday',size=[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBd18opdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.precipitations_presentday',size=[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBd18opdd.py:				
++sed -i 's/(md,'fieldname','smb.delta18o',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.delta18o',NaN=1,size=[2,numpy.nan],'singletimesed -i 's/(md,'fieldname','smb.dpermil','>=',0,'numel',[1])/(md,fieldname='smb.dpermil',ge=0,numel=[1])/g' ./classes/SMBd18opdd.py:				
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBd18opdd.py:		
++sed -i 's/(md,'fieldname','inversion.iscontrol','values',[0,1])/(md,fieldname='inversion.iscontrol',values=[0,1])/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])/(md,fieldname='inversion.incomplete_adjoint',values=[0,1])/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())/(md,fieldname='inversion.control_parameters','cell',1,values=supportedcontrols())/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1)/(md,fieldname='inversion.control_scaling_factors',size=[num_controls],gt=0,NaN=1)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0)/(md,fieldname='inversion.maxsteps',numel=[1],ge=0)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxiter','numel',[1],'>=',0)/(md,fieldname='inversion.maxiter',numel=[1],ge=0)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.dxmin','numel',[1],'>',0.)/(md,fieldname='inversion.dxmin',numel=[1],gt=0.)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.gttol','numel',[1],'>',0.)/(md,fieldname='inversion.gttol',numel=[1],gt=0.)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions())/(md,fieldname='inversion.cost_functions',size=[num_costfunc],values=supportedcostfunctions())/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)/(md,fieldname='inversion.cost_functions_coefficients',size=[md.mesh.numberofvertices,num_costfunc],ge=0)/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])/(md,fieldname='inversion.min_parameters',size=[md.mesh.numberofvertices,num_controls])/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])/(md,fieldname='inversion.max_parameters',size=[md.mesh.numberofvertices,num_controls])/g' ./classes/m1qn3inversion.py:		
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/m1qn3inversion.py:			
++sed -i 's/(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.vx_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/m1qn3inversion.py:			
++sed -i 's/(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.vy_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/m1qn3inversion.py:			
++sed -i 's///g' ./classes/masstransport.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','masstransport.spcthickness','timeseries',1)/(md,fieldname='masstransport.spcthickness',timeseries=1)/g' ./classes/masstransport.py:		
++sed -i 's/(md,'fieldname','masstransport.isfreesurface','values',[0,1])/(md,fieldname='masstransport.isfreesurface',values=[0,1])/g' ./classes/masstransport.py:		
++sed -i 's/(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])/(md,fieldname='masstransport.hydrostatic_adjustment',values=['Absolute','Incremental'])/g' ./classes/masstransport.py:		
++sed -i 's/(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4])/(md,fieldname='masstransport.stabilization',values=[0,1,2,3,4])/g' ./classes/masstransport.py:		
++sed -i 's/(md,'fieldname','masstransport.min_thickness','>',0)/(md,fieldname='masstransport.min_thickness',gt=0)/g' ./classes/masstransport.py:		
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/masstransport.py:		
++sed -i 's///g' ./classes/mismipbasalforcings.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])/(md,fieldname='basalforcings.meltrate_factor',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])/(md,fieldname='basalforcings.threshold_thickness',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])/(md,fieldname='basalforcings.upperdepth_melt',le=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])/(md,fieldname='basalforcings.meltrate_factor',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])/(md,fieldname='basalforcings.threshold_thickness',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])/(md,fieldname='basalforcings.upperdepth_melt',le=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])/(md,fieldname='basalforcings.meltrate_factor',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])/(md,fieldname='basalforcings.threshold_thickness',ge=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])/(md,fieldname='basalforcings.upperdepth_melt',le=0,numel=[1])/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's/(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)/(md,fieldname='basalforcings.geothermalflux',NaN=1,timeseries=1,ge=0)/g' ./classes/mismipbasalforcings.py:	    
++sed -i 's///g' ./classes/timestepping.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1)/(md,fieldname='timestepping.start_time',numel=[1],NaN=1)/g' ./classes/timestepping.py:		
++sed -i 's/(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1)/(md,fieldname='timestepping.final_time',numel=[1],NaN=1)/g' ./classes/timestepping.py:		
++sed -i 's/(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1)/(md,fieldname='timestepping.time_step',numel=[1],ge=0,NaN=1)/g' ./classes/timestepping.py:		
++sed -i 's/(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])/(md,fieldname='timestepping.time_adapt',numel=[1],values=[0,1])/g' ./classes/timestepping.py:		
++sed -i 's/(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)/(md,fieldname='timestepping.cfl_coefficient',numel=[1],gt=0,le=1)/g' ./classes/timestepping.py:		
++sed -i 's/(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1])/(md,fieldname='timestepping.interp_forcings',numel=[1],values=[0,1])/g' ./classes/timestepping.py:		
++sed -i 's///g' ./classes/calving.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','calving.spclevelset','timeseries',1)/(md,fieldname='calving.spclevelset',timeseries=1)/g' ./classes/calving.py:		
++sed -i 's/(md,'fieldname','calving.stabilization','values',[0,1,2]);/(md,fieldname='calving.stabilization',values=[0,1,2]);/g' ./classes/calving.py:		
++sed -i 's/(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);/(md,fieldname='calving.calvingrate',ge=0,timeseries=1,NaN=1);/g' ./classes/calving.py:		
++sed -i 's/(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1);/(md,fieldname='calving.meltingrate',ge=0,timeseries=1,NaN=1);/g' ./classes/calving.py:		
++sed -i 's///g' ./classes/SMBcomponents.py:from checkfield import *
++sed -i 's/(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)/(md,fieldname='smb.accumulation',timeseries=1,NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.accumulation',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)/(md,fieldname='smb.runoff',timeseries=1,NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.runoff',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)/(md,fieldname='smb.evaporation',timeseries=1,NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.evaporation',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBcomponents.py:			
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBcomponents.py:		
++sed -i 's///g' ./classes/flaim.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','flaim.tracks','file',1)/(md,fieldname='flaim.tracks','file',1)/g' ./classes/flaim.py:		
++sed -i 's/(md,'fieldname','flaim.targets','file',1)/(md,fieldname='flaim.targets','file',1)/g' ./classes/flaim.py:			
++sed -i 's/(md,'fieldname','flaim.criterion',numel=[md.mesh.numberofvertices,md.mesh.numberofelements])/(md,fieldname='flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])/g' ./classes/flaim.py:			
++sed -i 's/(md,'fieldname',"autodiff.independents[%d].fov_forward_indices" % i,'>=',1,'<=',self.nods,'size',[float('NaN'),1])/(md,fieldname="autodiff.independents[%d].fov_forward_indices" % i,ge=1,le=self.nods,size=[float('NaN'),1])/g' ./classes/independent.py:			
++sed -i 's///g' ./classes/calvinglevermann.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','calving.spclevelset','timeseries',1)/(md,fieldname='calving.spclevelset',timeseries=1)/g' ./classes/calvinglevermann.py:		
++sed -i 's/(md,'fieldname','calving.stabilization','values',[0,1,2]);/(md,fieldname='calving.stabilization',values=[0,1,2]);/g' ./classes/calvinglevermann.py:		
++sed -i 's/(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)/(md,fieldname='calving.coeff',size=[md.mesh.numberofvertices],gt=0)/g' ./classes/calvinglevermann.py:		
++sed -i 's/(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices],'>=',0)/(md,fieldname='calving.meltingrate',NaN=1,size=[md.mesh.numberofvertices],ge=0)/g' ./classes/calvinglevermann.py:		
++sed -i 's///g' ./classes/steadystate.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','steadystate.requested_outputs','stringrow',1)/(md,fieldname='steadystate.requested_outputs','stringrow',1)/g' ./classes/steadystate.py:		
++sed -i 's///g' ./classes/SMBmeltcomponents.py:from checkfield import *
++sed -i 's/(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)/(md,fieldname='smb.accumulation',timeseries=1,NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.accumulation',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.melt','timeseries',1,'NaN',1)/(md,fieldname='smb.melt',timeseries=1,NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.melt',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)/(md,fieldname='smb.refreeze',timeseries=1,NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.refreeze',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)/(md,fieldname='smb.evaporation',timeseries=1,NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.evaporation',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBmeltcomponents.py:			
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBmeltcomponents.py:		
++sed -i 's///g' ./classes/matdamageice.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','materials.rho_ice','>',0)/(md,fieldname='materials.rho_ice',gt=0)/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.rho_water','>',0)/(md,fieldname='materials.rho_water',gt=0)/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.rho_freshwater','>',0)/(md,fieldname='materials.rho_freshwater',gt=0)/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.mu_water','>',0)/(md,fieldname='materials.mu_water',gt=0)/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])/(md,fieldname='materials.rheology_B',gt=0,size=[md.mesh.numberofvertices])/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])/(md,fieldname='materials.rheology_n',gt=0,size=[md.mesh.numberofelements])/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])/(md,fieldname='materials.rheology_law',values=['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.lithosphere_shear_modulus','>',0,numel=[1]);/(md,fieldname='materials.lithosphere_shear_modulus',gt=0,'numel',[1]);/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.lithosphere_density','>',0,numel=[1]);/(md,fieldname='materials.lithosphere_density',gt=0,'numel',[1]);/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.mantle_shear_modulus','>',0,numel=[1]);/(md,fieldname='materials.mantle_shear_modulus',gt=0,'numel',[1]);/g' ./classes/matdamageice.py:		
++sed -i 's/(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);/(md,fieldname='materials.mantle_density',gt=0,numel=[1]);/g' ./classes/matdamageice.py:		
++sed -i 's///g' ./classes/massfluxatgate.py:from checkfield import checkfield
++sed -i 's/(md,'field',self.definitionenum,'values',[Outputdefinition1Enum(),Outputdefinition2Enum(),Outputdefinition3Enum(),Outputdefinition4Enum(),Outputdefinition5Enum(),Outputdefinition6Enum(),Outputdefinition7Enum(),Outputdefinition8Enum(),Outputdefinition9Enum(),Outputdefinition10Enum()])/(md,'field',self.definitionenum,values=[Outputdefinition1Enum(),Outputdefinition2Enum(),Outputdefinition3Enum(),Outputdefinition4Enum(),Outputdefinition5Enum(),Outputdefinition6Enum(),Outputdefinition7Enum(),Outputdefinition8Enum(),Outputdefinition9Enum(),Outputdefinition10Enum()])/g' ./classes/massfluxatgate.py:			
++sed -i 's///g' ./classes/gia.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)/(md,fieldname='gia.mantle_viscosity',NaN=1,size=[md.mesh.numberofvertices,1],gt=0)/g' ./classes/gia.py:		
++sed -i 's/(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)/(md,fieldname='gia.lithosphere_thickness',NaN=1,size=[md.mesh.numberofvertices,1],gt=0)/g' ./classes/gia.py:		
++sed -i 's/(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2])/(md,fieldname='gia.cross_section_shape',numel=[1],values=[1,2])/g' ./classes/gia.py:		
++sed -i 's///g' ./classes/balancethickness.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','balancethickness.spcthickness')/(md,fieldname='balancethickness.spcthickness')/g' ./classes/balancethickness.py:		
++sed -i 's/(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='balancethickness.thickening_rate',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/balancethickness.py:		
++sed -i 's/(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3])/(md,fieldname='balancethickness.stabilization',size=[1],values=[0,1,2,3])/g' ./classes/balancethickness.py:		
++sed -i 's///g' ./classes/SMBgradients.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','smb.href','timeseries',1,'NaN',1)/(md,fieldname='smb.href',timeseries=1,NaN=1)/g' ./classes/SMBgradients.py:			
++sed -i 's/(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)/(md,fieldname='smb.smbref',timeseries=1,NaN=1)/g' ./classes/SMBgradients.py:			
++sed -i 's/(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)/(md,fieldname='smb.b_pos',timeseries=1,NaN=1)/g' ./classes/SMBgradients.py:			
++sed -i 's/(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)/(md,fieldname='smb.b_neg',timeseries=1,NaN=1)/g' ./classes/SMBgradients.py:			
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBgradients.py:		
++sed -i 's///g' ./classes/mesh2d.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='mesh.x',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='mesh.y',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))/(md,fieldname='mesh.elements',NaN=1,gt=0,values=numpy.arange(1,md.mesh.numberofvertices+1))/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])/(md,fieldname='mesh.elements',size=[md.mesh.numberofelements,3])/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.numberofelements','>',0)/(md,fieldname='mesh.numberofelements',gt=0)/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.numberofvertices','>',0)/(md,fieldname='mesh.numberofvertices',gt=0)/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")/(md,fieldname='mesh.average_vertex_connectivity',ge=9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d")/g' ./classes/mesh2d.py:		
++sed -i 's/(md,'fieldname','inversion.iscontrol','values',[0, 1])/(md,fieldname='inversion.iscontrol',values=[0, 1])/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_parameters','cell',1,'values',\/(md,fieldname='inversion.control_parameters','cell',1,values=\/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_scaling_factors','size',[1, num_controls],'>',0,float('Nan'),1)/(md,fieldname='inversion.control_scaling_factors',size=[1, num_controls],gt=0,float('Nan'),1)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)/(md,fieldname='inversion.maxsteps',numel=1,ge=0)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxiter','numel',1,'>=',0)/(md,fieldname='inversion.maxiter',numel=1,ge=0)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.dxmin','numel',1,'>',0)/(md,fieldname='inversion.dxmin',numel=1,gt=0)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.gttol','numel',1,'>',0)/(md,fieldname='inversion.gttol',numel=1,gt=0)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values', [i for i in range(101,106)]+[201]+[i for i in range(501,507)]+[i for i in range(601,605)]+[i for i in range(1001, 1011)])/(md,fieldname='inversion.cost_functions',size=[1, num_costfunc],values= [i for i in range(101,106)]+[201]+[i for i in range(501,507)]+[i for i in range(601,605)]+[i for i in range(1001, 1011)])/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)/(md,fieldname='inversion.cost_functions_coefficients',size=[md.mesh.numberofvertices, num_costfunc],ge=0)/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])/(md,fieldname='inversion.min_parameters',size=[md.mesh.numberofvertices, num_controls])/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])/(md,fieldname='inversion.max_parameters',size=[md.mesh.numberofvertices, num_controls])/g' ./classes/adinversion.py:		
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices, 1],float('Nan'),1)/g' ./classes/adinversion.py:			
++sed -i 's/(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices, 1], float('Nan'),1)/(md,fieldname='inversion.surface_obs',size=[md.mesh.numberofvertices, 1], float('Nan'),1)/g' ./classes/adinversion.py:			
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices, 1],float('Nan'),1)/g' ./classes/adinversion.py:			
++sed -i 's/(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)/(md,fieldname='inversion.vx_obs',size=[md.mesh.numberofvertices, 1],float('Nan'),1)/g' ./classes/adinversion.py:			
++sed -i 's/(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],float('Nan'),1)/(md,fieldname='inversion.vy_obs',size=[md.mesh.numberofvertices, 1],float('Nan'),1)/g' ./classes/adinversion.py:				
++sed -i 's///g' ./classes/damage.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','damage.isdamage','numel',[1],'values',[0,1])/(md,fieldname='damage.isdamage',numel=[1],values=[0,1])/g' ./classes/damage.py:		
++sed -i 's/(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])/(md,fieldname='damage.D',ge=0,le=self.max_damage,size=[md.mesh.numberofvertices])/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.max_damage','<',1,'>=',0)/(md,fieldname='damage.max_damage','<',1,ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3])/(md,fieldname='damage.law',numel=[1],values=[0,1,2,3])/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.spcdamage','timeseries',1)/(md,fieldname='damage.spcdamage',timeseries=1)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4])/(md,fieldname='damage.stabilization',numel=[1],values=[0,1,2,4])/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.maxiter','>=0',0)/(md,fieldname='damage.maxiter','>=0',0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.elementinterp','values',['P1','P2'])/(md,fieldname='damage.elementinterp',values=['P1','P2'])/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.stress_threshold','>=',0)/(md,fieldname='damage.stress_threshold',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.kappa','>',1)/(md,fieldname='damage.kappa',gt=1)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.healing','>=',0)/(md,fieldname='damage.healing',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.c1','>=',0)/(md,fieldname='damage.c1',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.c2','>=',0)/(md,fieldname='damage.c2',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.c3','>=',0)/(md,fieldname='damage.c3',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.c4','>=',0)/(md,fieldname='damage.c4',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.healing','>=',0)/(md,fieldname='damage.healing',ge=0)/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.equiv_stress','numel',[1],'values',[0,1])/(md,fieldname='damage.equiv_stress',numel=[1],values=[0,1])/g' ./classes/damage.py:			
++sed -i 's/(md,'fieldname','damage.requested_outputs','stringrow',1)/(md,fieldname='damage.requested_outputs','stringrow',1)/g' ./classes/damage.py:			
++sed -i 's///g' ./classes/friction.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)/(md,fieldname='friction.coefficient',timeseries=1,NaN=1)/g' ./classes/friction.py:		
++sed -i 's/(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])/(md,fieldname='friction.q',NaN=1,size=[md.mesh.numberofelements])/g' ./classes/friction.py:		
++sed -i 's/(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])/(md,fieldname='friction.p',NaN=1,size=[md.mesh.numberofelements])/g' ./classes/friction.py:		
++sed -i 's///g' ./classes/thermal.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2])/(md,fieldname='thermal.stabilization',numel=[1],values=[0,1,2])/g' ./classes/thermal.py:		
++sed -i 's/(md,'fieldname','thermal.spctemperature','timeseries',1)/(md,fieldname='thermal.spctemperature',timeseries=1)/g' ./classes/thermal.py:		
++sed -i 's/(md,'fieldname','thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")/(md,fieldname='thermal.spctemperature[numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices,:])))]','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate[pos],'message',"spctemperature should be below the adjusted melting point")/g' ./classes/thermal.py:			
++sed -i 's/(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0,1])/(md,fieldname='thermal.isenthalpy',numel=[1],values=[0,1])/g' ./classes/thermal.py:			
++sed -i 's/(md,'fieldname','thermal.isdynamicbasalspc','numel',[1],'values',[0,1]);/(md,fieldname='thermal.isdynamicbasalspc',numel=[1],values=[0,1]);/g' ./classes/thermal.py:			
++sed -i 's/(md,'fieldname','thermal.reltol','>',0.,'message',"reltol must be larger than zero");/(md,fieldname='thermal.reltol',gt=0.,'message',"reltol must be larger than zero");/g' ./classes/thermal.py:				
++sed -i 's/(md,'fieldname','thermal.requested_outputs','stringrow',1)/(md,fieldname='thermal.requested_outputs','stringrow',1)/g' ./classes/thermal.py:		
++sed -i 's///g' ./classes/constants.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','constants.g','>',0,'size',[1])/(md,fieldname='constants.g',gt=0,size=[1])/g' ./classes/constants.py:		
++sed -i 's/(md,'fieldname','constants.yts','>',0,'size',[1])/(md,fieldname='constants.yts',gt=0,size=[1])/g' ./classes/constants.py:		
++sed -i 's/(md,'fieldname','constants.referencetemperature','size',[1])/(md,fieldname='constants.referencetemperature',size=[1])/g' ./classes/constants.py:		
++sed -i 's///g' ./classes/SMBforcing.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1)/(md,fieldname='smb.mass_balance',timeseries=1,NaN=1)/g' ./classes/SMBforcing.py:			
++sed -i 's/(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='smb.mass_balance',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/SMBforcing.py:			
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBforcing.py:		
++sed -i 's///g' ./classes/settings.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','settings.results_on_nodes','numel',[1],'values',[0,1])/(md,fieldname='settings.results_on_nodes',numel=[1],values=[0,1])/g' ./classes/settings.py:		
++sed -i 's/(md,'fieldname','settings.io_gather','numel',[1],'values',[0,1])/(md,fieldname='settings.io_gather',numel=[1],values=[0,1])/g' ./classes/settings.py:		
++sed -i 's/(md,'fieldname','settings.lowmem','numel',[1],'values',[0,1])/(md,fieldname='settings.lowmem',numel=[1],values=[0,1])/g' ./classes/settings.py:		
++sed -i 's/(md,'fieldname','settings.output_frequency','numel',[1],'>=',1)/(md,fieldname='settings.output_frequency',numel=[1],ge=1)/g' ./classes/settings.py:		
++sed -i 's/(md,'fieldname','settings.recording_frequency','numel',[1],'>=',0)/(md,fieldname='settings.recording_frequency',numel=[1],ge=0)/g' ./classes/settings.py:		
++sed -i 's/(md,'fieldname','settings.waitonlock','numel',[1])/(md,fieldname='settings.waitonlock',numel=[1])/g' ./classes/settings.py:		
++sed -i 's///g' ./classes/SMBpdd.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','smb.desfac','<=',1,'numel',[1])/(md,fieldname='smb.desfac',le=1,numel=[1])/g' ./classes/SMBpdd.py:			
++sed -i 's/(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='smb.s0p',ge=0,NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/SMBpdd.py:			
++sed -i 's/(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='smb.s0t',ge=0,NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/SMBpdd.py:			
++sed -i 's/(md,'fieldname','smb.rlaps','>=',0,'numel',[1])/(md,fieldname='smb.rlaps',ge=0,numel=[1])/g' ./classes/SMBpdd.py:			
++sed -i 's/(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])/(md,fieldname='smb.rlapslgm',ge=0,numel=[1])/g' ./classes/SMBpdd.py:			
++sed -i 's/(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)/(md,fieldname='smb.monthlytemperatures',NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)/(md,fieldname='smb.precipitation',NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.delta18o',NaN=1,size=[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.delta18o_surface',NaN=1,size=[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.temperatures_presentday',size=[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.temperatures_lgm',size=[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.precipitations_presentday',size=[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       /(md,fieldname='smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)                                       /g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.Tdiff','NaN',1,size=[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.Tdiff',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.sealev','NaN',1,size=[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.sealev',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.temperatures_presentday',size=[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)/(md,fieldname='smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],NaN=1,timeseries=1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.temperatures_lgm',size=[md.mesh.numberofvertices+1,12],'NaN',1,timeseries=1)/(md,fieldname='smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],NaN=1,'timeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitations_presentday',size=[md.mesh.numberofvertices+1,12],'NaN',1,timeseries=1)/(md,fieldname='smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],NaN=1,'timeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.precipitations_lgm',size=[md.mesh.numberofvertices+1,12],'NaN',1,timeseries=1)                                       /(md,fieldname='smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],NaN=1,'timeseries',1)                                       /g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.Pfac','NaN',1,size=[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.Pfac',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.Tdiff','NaN',1,size=[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.Tdiff',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','smb.sealev','NaN',1,size=[2,numpy.nan],'singletimeseries',1)/(md,fieldname='smb.sealev',NaN=1,'size',[2,numpy.nan],'singletimeseries',1)/g' ./classes/SMBpdd.py:				
++sed -i 's/(md,'fieldname','masstransport.requested_outputs','stringrow',1)/(md,fieldname='masstransport.requested_outputs','stringrow',1)/g' ./classes/SMBpdd.py:		
++sed -i 's///g' ./classes/toolkits.py:from checkfield import checkfield
++sed -i 's///g' ./classes/transient.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','transient.issmb','numel',[1],'values',[0,1])/(md,fieldname='transient.issmb',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.ismasstransport','numel',[1],'values',[0,1])/(md,fieldname='transient.ismasstransport',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.isstressbalance','numel',[1],'values',[0,1])/(md,fieldname='transient.isstressbalance',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.isthermal','numel',[1],'values',[0,1])/(md,fieldname='transient.isthermal',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])/(md,fieldname='transient.isgroundingline',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])/(md,fieldname='transient.isgia',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])/(md,fieldname='transient.isdamageevolution',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])/(md,fieldname='transient.islevelset',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])/(md,fieldname='transient.ishydrology',numel=[1],values=[0,1])/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);/(md,'fieldname','transient.iscalving',numel=[1],values=[0,1]);/g' ./classes/transient.py:		
++sed -i 's/(md,'fieldname','transient.requested_outputs','stringrow',1)/(md,fieldname='transient.requested_outputs','stringrow',1)/g' ./classes/transient.py:		
++sed -i 's///g' ./classes/basalforcings.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.floatingice_melting_rate',NaN=1,timeseries=1)/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='basalforcings.floatingice_melting_rate',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.floatingice_melting_rate',NaN=1,timeseries=1)/g' ./classes/basalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)/(md,fieldname='basalforcings.geothermalflux',NaN=1,timeseries=1,ge=0)/g' ./classes/basalforcings.py:			
++sed -i 's///g' ./classes/stressbalance.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','stressbalance.spcvx','timeseries',1)/(md,fieldname='stressbalance.spcvx',timeseries=1)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.spcvy','timeseries',1)/(md,fieldname='stressbalance.spcvy',timeseries=1)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.spcvz','timeseries',1)/(md,fieldname='stressbalance.spcvz',timeseries=1)/g' ./classes/stressbalance.py:			
++sed -i 's/(md,'fieldname','stressbalance.restol',size=[1],'>',0)/(md,fieldname='stressbalance.restol','size',[1],gt=0)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.reltol',size=[1])/(md,fieldname='stressbalance.reltol','size',[1])/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.abstol',size=[1])/(md,fieldname='stressbalance.abstol','size',[1])/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2])/(md,fieldname='stressbalance.isnewton',numel=[1],values=[0,1,2])/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.FSreconditioning',size=[1],'NaN',1)/(md,fieldname='stressbalance.FSreconditioning','size',[1],NaN=1)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.viscosity_overshoot',size=[1],'NaN',1)/(md,fieldname='stressbalance.viscosity_overshoot','size',[1],NaN=1)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.maxiter',size=[1],'>=',1)/(md,fieldname='stressbalance.maxiter','size',[1],ge=1)/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.referential',size=[md.mesh.numberofvertices,6])/(md,fieldname='stressbalance.referential','size',[md.mesh.numberofvertices,6])/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.loadingforce',size=[md.mesh.numberofvertices,3])/(md,fieldname='stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])/g' ./classes/stressbalance.py:		
++sed -i 's/(md,'fieldname','stressbalance.requested_outputs','stringrow',1);/(md,'fieldname','stressbalance.requested_outputs','stringrow',1);/g' ./classes/stressbalance.py:		
++sed -i 's///g' ./classes/initialization.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','initialization.vx','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vx',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.vy','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vy',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.vx','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vx',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vy','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vy',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vx','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vx',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vy','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vy',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vx','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vx',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vy','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vy',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.temperature','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.temperature',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.vz','NaN',1,size=[md.mesh.numberofvertices])/(md,fieldname='initialization.vz',NaN=1,'size',[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='initialization.pressure',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/initialization.py:			
++sed -i 's/(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])/(md,fieldname='initialization.waterfraction',ge=0,size=[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])/(md,fieldname='initialization.watercolumn'  ,ge=0,size=[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='initialization.watercolumn',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='initialization.sediment_head',NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/initialization.py:				
++sed -i 's/(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='initialization.epl_head',NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/initialization.py:					
++sed -i 's/(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices,1])/(md,fieldname='initialization.epl_thickness',NaN=1,size=[md.mesh.numberofvertices,1])/g' ./classes/initialization.py:					
++sed -i 's///g' ./classes/hydrologydc.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','hydrology.water_compressibility','numel',[1],'>',0.)/(md,fieldname='hydrology.water_compressibility',numel=[1],gt=0.)/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0,1])/(md,fieldname='hydrology.isefficientlayer',numel=[1],values=[0,1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.penalty_factor','>',0.,'numel',[1])/(md,fieldname='hydrology.penalty_factor',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.penalty_lock','>=',0.,'numel',[1])/(md,fieldname='hydrology.penalty_lock',ge=0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.rel_tol','>',0.,'numel',[1])/(md,fieldname='hydrology.rel_tol',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.max_iter','>',0.,'numel',[1])/(md,fieldname='hydrology.max_iter',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sedimentlimit_flag','numel',[1],'values',[0,1,2,3])/(md,fieldname='hydrology.sedimentlimit_flag',numel=[1],values=[0,1,2,3])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.transfer_flag','numel',[1],'values',[0,1])/(md,fieldname='hydrology.transfer_flag',numel=[1],values=[0,1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sedimentlimit','>',0.,'numel',[1])/(md,fieldname='hydrology.sedimentlimit',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])/(md,fieldname='hydrology.leakage_factor',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'timeseries',1)/(md,fieldname='hydrology.basal_moulin_input',NaN=1,timeseries=1)/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.spcsediment_head','timeseries',1)/(md,fieldname='hydrology.spcsediment_head',timeseries=1)/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])/(md,fieldname='hydrology.sediment_compressibility','>',0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sediment_porosity',gt=0.,'numel',[1])/(md,fieldname='hydrology.sediment_porosity','>',0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sediment_thickness',gt=0.,'numel',[1])/(md,fieldname='hydrology.sediment_thickness','>',0.,numel=[1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1])/(md,fieldname='hydrology.sediment_transmitivity',ge=0,size=[md.mesh.numberofvertices,1])/g' ./classes/hydrologydc.py:		
++sed -i 's/(md,'fieldname','hydrology.spcepl_head','timeseries',1)/(md,fieldname='hydrology.spcepl_head',timeseries=1)/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1])/(md,fieldname='hydrology.mask_eplactive_node',size=[md.mesh.numberofvertices,1],values=[0,1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1])/(md,fieldname='hydrology.epl_compressibility',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1])/(md,fieldname='hydrology.epl_porosity',gt=0.,numel=[1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_max_thickness','numel',[1],'>',0.)/(md,fieldname='hydrology.epl_max_thickness',numel=[1],gt=0.)/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_initial_thickness','numel',[1],'>',0.)/(md,fieldname='hydrology.epl_initial_thickness',numel=[1],gt=0.)/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_colapse_thickness','numel',[1],'>',0.)/(md,fieldname='hydrology.epl_colapse_thickness',numel=[1],gt=0.)/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_thick_comp','numel',[1],'values',[0,1])/(md,fieldname='hydrology.epl_thick_comp',numel=[1],values=[0,1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.eplflip_lock','>=',0.,'numel',[1])/(md,fieldname='hydrology.eplflip_lock',ge=0.,numel=[1])/g' ./classes/hydrologydc.py:			
++sed -i 's/(md,'fieldname','hydrology.epl_conductivity','numel',[1],'>',0.)/(md,fieldname='hydrology.epl_conductivity',numel=[1],gt=0.)/g' ./classes/hydrologydc.py:			
++sed -i 's///g' ./classes/linearbasalforcings.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);/(md,'fieldname','basalforcings.deepwater_melting_rate',ge=0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);/(md,'fieldname','basalforcings.deepwater_melting_rate',ge=0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)/(md,fieldname='basalforcings.groundedice_melting_rate',NaN=1,timeseries=1)/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);/(md,'fieldname','basalforcings.deepwater_melting_rate',ge=0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/(md,'fieldname','basalforcings.upperwater_elevation','<',0);/g' ./classes/linearbasalforcings.py:			
++sed -i 's/(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)/(md,fieldname='basalforcings.geothermalflux',NaN=1,timeseries=1,ge=0)/g' ./classes/linearbasalforcings.py:			
++sed -i 's///g' ./classes/outputdefinition.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','outputdefinition.definitions','cell',1)/(md,fieldname='outputdefinition.definitions','cell',1)/g' ./classes/outputdefinition.py:		
++sed -i 's///g' ./classes/frictionweertman.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','friction.C','timeseries',1,'NaN',1)/(md,fieldname='friction.C',timeseries=1,NaN=1)/g' ./classes/frictionweertman.py:		
++sed -i 's/(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements])/(md,fieldname='friction.m',NaN=1,size=[md.mesh.numberofelements])/g' ./classes/frictionweertman.py:		
++sed -i 's///g' ./classes/miscellaneous.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','miscellaneous.name','empty',1)/(md,fieldname='miscellaneous.name','empty',1)/g' ./classes/miscellaneous.py:		
++sed -i 's///g' ./classes/mask.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices])/(md,fieldname='mask.ice_levelset'        ,size=[md.mesh.numberofvertices])/g' ./classes/mask.py:		
++sed -i 's///g' ./classes/hydrologyshreve.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','hydrology.spcwatercolumn','timeseries',1)/(md,fieldname='hydrology.spcwatercolumn',timeseries=1)/g' ./classes/hydrologyshreve.py:		
++sed -i 's/(md,'fieldname','hydrology.stabilization','>=',0)/(md,fieldname='hydrology.stabilization',ge=0)/g' ./classes/hydrologyshreve.py:		
++sed -i 's///g' ./classes/private.py:from checkfield import checkfield
++sed -i 's///g' ./classes/rifts.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname',"rifts.riftstruct[%d]['fill']" % i,'values',[WaterEnum(),AirEnum(),IceEnum(),MelangeEnum()])/(md,fieldname="rifts.riftstruct[%d]['fill']" % i,values=[WaterEnum(),AirEnum(),IceEnum(),MelangeEnum()])/g' ./classes/rifts.py:				
++sed -i 's///g' ./classes/groundingline.py:from checkfield import checkfield
++sed -i 's/(md,fieldname='groundingline.migration',values=['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly'])/(md,fieldname='groundingline.migration',values=['None','AggressiveMigration','SoftMigration','SubelementMigration','SubelementMigration2','Contact','GroundingOnly'])/g' ./classes/groundingline.py:		
++sed -i 's///g' ./classes/taoinversion.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','inversion.iscontrol','values',[0, 1])/(md,fieldname='inversion.iscontrol',values=[0, 1])/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.incomplete_adjoint','values',[0, 1])/(md,fieldname='inversion.incomplete_adjoint',values=[0, 1])/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())/(md,fieldname='inversion.control_parameters','cell',1,values=supportedcontrols())/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxsteps','numel',1,'>=',0)/(md,fieldname='inversion.maxsteps',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxiter','numel',1,'>=',0)/(md,fieldname='inversion.maxiter',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.fatol','numel',1,'>=',0)/(md,fieldname='inversion.fatol',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.frtol','numel',1,'>=',0)/(md,fieldname='inversion.frtol',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.gatol','numel',1,'>=',0)/(md,fieldname='inversion.gatol',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.grtol','numel',1,'>=',0)/(md,fieldname='inversion.grtol',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.gttol','numel',1,'>=',0)/(md,fieldname='inversion.gttol',numel=1,ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.algorithm','values',{'blmvm','cg','lmvm'})/(md,fieldname='inversion.algorithm',values={'blmvm','cg','lmvm'})/g' ./classes/taoinversion.py:			
++sed -i 's/(md,'fieldname','inversion.algorithm','values',{'tao_blmvm','tao_cg','tao_lmvm'})/(md,fieldname='inversion.algorithm',values={'tao_blmvm','tao_cg','tao_lmvm'})/g' ./classes/taoinversion.py:			
++sed -i 's/(md,'fieldname','inversion.cost_functions','size',[1, num_costfunc],'values',supportedcostfunctions())/(md,fieldname='inversion.cost_functions',size=[1, num_costfunc],values=supportedcostfunctions())/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices, num_costfunc],'>=',0)/(md,fieldname='inversion.cost_functions_coefficients',size=[md.mesh.numberofvertices, num_costfunc],ge=0)/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices, num_controls])/(md,fieldname='inversion.min_parameters',size=[md.mesh.numberofvertices, num_controls])/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices, num_controls])/(md,fieldname='inversion.max_parameters',size=[md.mesh.numberofvertices, num_controls])/g' ./classes/taoinversion.py:		
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices, 1],NaN=1)/g' ./classes/taoinversion.py:			
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices, 1],NaN=1)/g' ./classes/taoinversion.py:			
++sed -i 's/(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)/(md,fieldname='inversion.vx_obs',size=[md.mesh.numberofvertices, 1],NaN=1)/g' ./classes/taoinversion.py:			
++sed -i 's/(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)/(md,fieldname='inversion.vy_obs',size=[md.mesh.numberofvertices, 1],NaN=1)/g' ./classes/taoinversion.py:			
++sed -i 's///g' ./classes/flowequation.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','flowequation.isSIA','numel',[1],'values',[0,1])/(md,fieldname='flowequation.isSIA',numel=[1],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.isSSA','numel',[1],'values',[0,1])/(md,fieldname='flowequation.isSSA',numel=[1],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.isL1L2','numel',[1],'values',[0,1])/(md,fieldname='flowequation.isL1L2',numel=[1],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.isHO','numel',[1],'values',[0,1])/(md,fieldname='flowequation.isHO',numel=[1],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.isFS','numel',[1],'values',[0,1])/(md,fieldname='flowequation.isFS',numel=[1],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2','P2bubble'])/(md,fieldname='flowequation.fe_SSA',values=['P1','P1bubble','P1bubblecondensed','P2','P2bubble'])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'])/(md,fieldname='flowequation.fe_HO' ,values=['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P2bubble','P1xP3','P2xP4'])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'])/(md,fieldname='flowequation.fe_FS' ,values=['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z','CrouzeixRaviart'])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1])/(md,fieldname='flowequation.borderSSA',size=[md.mesh.numberofvertices],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])/(md,fieldname='flowequation.borderHO',size=[md.mesh.numberofvertices],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])/(md,fieldname='flowequation.borderFS',size=[md.mesh.numberofvertices],values=[0,1])/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.augmented_lagrangian_r','numel',[1],'>',0.)/(md,fieldname='flowequation.augmented_lagrangian_r',numel=[1],gt=0.)/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.augmented_lagrangian_rhop','numel',[1],'>',0.)/(md,fieldname='flowequation.augmented_lagrangian_rhop',numel=[1],gt=0.)/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.augmented_lagrangian_rlambda','numel',[1],'>',0.)/(md,fieldname='flowequation.augmented_lagrangian_rlambda',numel=[1],gt=0.)/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.augmented_lagrangian_rholambda','numel',[1],'>',0.)/(md,fieldname='flowequation.augmented_lagrangian_rholambda',numel=[1],gt=0.)/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5)/(md,fieldname='flowequation.XTH_theta',numel=[1],ge=0.,'<',.5)/g' ./classes/flowequation.py:		
++sed -i 's/(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])/(md,fieldname='flowequation.vertex_equation',size=[md.mesh.numberofvertices],values=[1,2])/g' ./classes/flowequation.py:			
++sed -i 's/(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],'values',[1,2])/(md,fieldname='flowequation.element_equation',size=[md.mesh.numberofelements],'values',[1,2])/g' ./classes/flowequation.py:			
++sed -i 's/(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],values=numpy.arange(0,8+1))/(md,fieldname='flowequation.vertex_equation',size=[md.mesh.numberofvertices],'values',numpy.arange(0,8+1))/g' ./classes/flowequation.py:			
++sed -i 's/(md,'fieldname','flowequation.element_equation','size',[md.mesh.numberofelements],values=numpy.arange(0,8+1))/(md,fieldname='flowequation.element_equation',size=[md.mesh.numberofelements],'values',numpy.arange(0,8+1))/g' ./classes/flowequation.py:			
++sed -i 's///g' ./classes/geometry.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='geometry.surface'  ,NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/geometry.py:		
++sed -i 's/(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='geometry.base'      ,NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/geometry.py:		
++sed -i 's/(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)/(md,fieldname='geometry.thickness',NaN=1,size=[md.mesh.numberofvertices],gt=0,timeseries=1)/g' ./classes/geometry.py:		
++sed -i 's/(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='geometry.bed',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/geometry.py:			
++sed -i 's///g' ./classes/inversion.py:from checkfield import checkfield
++sed -i 's/(md,'fieldname','inversion.iscontrol','values',[0,1])/(md,fieldname='inversion.iscontrol',values=[0,1])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])/(md,fieldname='inversion.incomplete_adjoint',values=[0,1])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())/(md,fieldname='inversion.control_parameters','cell',1,values=supportedcontrols())/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.nsteps','numel',[1],'>=',0)/(md,fieldname='inversion.nsteps',numel=[1],ge=0)/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.maxiter_per_step','size',[md.inversion.nsteps],'>=',0)/(md,fieldname='inversion.maxiter_per_step',size=[md.inversion.nsteps],ge=0)/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.step_threshold','size',[md.inversion.nsteps])/(md,fieldname='inversion.step_threshold',size=[md.inversion.nsteps])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions','size',[num_costfunc],'values',supportedcostfunctions())/(md,fieldname='inversion.cost_functions',size=[num_costfunc],values=supportedcostfunctions())/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices,num_costfunc],'>=',0)/(md,fieldname='inversion.cost_functions_coefficients',size=[md.mesh.numberofvertices,num_costfunc],ge=0)/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.gradient_scaling','size',[md.inversion.nsteps,num_controls])/(md,fieldname='inversion.gradient_scaling',size=[md.inversion.nsteps,num_controls])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices,num_controls])/(md,fieldname='inversion.min_parameters',size=[md.mesh.numberofvertices,num_controls])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])/(md,fieldname='inversion.max_parameters',size=[md.mesh.numberofvertices,num_controls])/g' ./classes/inversion.py:		
++sed -i 's/(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.thickness_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/inversion.py:			
++sed -i 's/(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.vx_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/inversion.py:			
++sed -i 's/(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)/(md,fieldname='inversion.vy_obs',size=[md.mesh.numberofvertices],NaN=1)/g' ./classes/inversion.py:			
++sed -i 's///g' ./classes/qmu.py:from checkfield import checkfield
++sed -i 's///g' ./classes/mesh3dprisms.py:from checkfield import *
++sed -i 's/(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='mesh.x',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='mesh.y',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])/(md,fieldname='mesh.z',NaN=1,size=[md.mesh.numberofvertices])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))/(md,fieldname='mesh.elements',NaN=1,gt=0,values=numpy.arange(1,md.mesh.numberofvertices+1))/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6])/(md,fieldname='mesh.elements',size=[md.mesh.numberofelements,6])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.numberoflayers','>=',0)/(md,fieldname='mesh.numberoflayers',ge=0)/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.numberofelements','>',0)/(md,fieldname='mesh.numberofelements',gt=0)/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.numberofvertices','>',0)/(md,fieldname='mesh.numberofvertices',gt=0)/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.vertexonbase','size',[md.mesh.numberofvertices],'values',[0,1])/(md,fieldname='mesh.vertexonbase',size=[md.mesh.numberofvertices],values=[0,1])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.vertexonsurface','size',[md.mesh.numberofvertices],'values',[0,1])/(md,fieldname='mesh.vertexonsurface',size=[md.mesh.numberofvertices],values=[0,1])/g' ./classes/mesh3dprisms.py:		
++sed -i 's/(md,'fieldname','mesh.average_vertex_connectivity','>=',24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")/(md,fieldname='mesh.average_vertex_connectivity',ge=24,'message',"'mesh.average_vertex_connectivity' should be at least 24 in 3d")/g' ./classes/mesh3dprisms.py:		
++sed -i 's///g' ./consistency/checkfield.py:def checkfield(md,**kwargs):
++
+Index: ../trunk-jpl/src/py3/mech/damagefrominversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/damagefrominversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/damagefrominversion.py	(revision 19895)
+@@ -0,0 +1,44 @@
++import numpy as npy
++
++def damagefrominversion(md):
++	'''
++	compute ice shelf damage from inversion results
++
++	This routine computes damage based on the analytical formalism of Borstad et
++	al. (2013, The Cryosphere).  The model must contain inversion results for
++	ice rigidity.  Ice rigidity B is assumed to be parameterized by the ice
++	temperature in md.materials.rheology_B. 
++	
++	Usage:
++		damage=damagefrominversion(md)
++	
++	Example:
++		damage=damagefrominversion(md)
++	'''
++
++	# check inputs
++	if not hasattr(md.results,'strainrate'):
++		raise Exception('md.results.strainrate is not present.  Calculate using md=mechanicalproperties(md,vx,vy)')
++	if not '2d' in md.mesh.__doc__:
++		raise Exception('only 2d (planview) model supported currently')
++	if any(md.flowequation.element_equation!=2):
++		raise Exception('Warning: the model has some non-SSA elements.  These will be treated like SSA elements')
++	if npy.ndim(md.results.StressbalanceSolution.MaterialsRheologyBbar)==2:
++		Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(-1,)
++	else:
++		Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar
++	if npy.ndim(md.materials.rheology_B)==2:
++		BT=md.materials.rheology_B.reshape(-1,)
++	else:
++		BT=md.materials.rheology_B
++
++	damage=npy.zeros_like(Bi)
++
++	# Damage where Bi softer than B(T)
++	pos=npy.nonzero(Bi<BT)[0]
++	damage[pos]=1.-Bi[pos]/BT[pos]
++	
++	pos=npy.nonzero(damage<0)
++	damage[pos]=0
++
++	return damage
+Index: ../trunk-jpl/src/py3/mech/thomasparams.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/thomasparams.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/thomasparams.py	(revision 19895)
+@@ -0,0 +1,145 @@
++import numpy as npy
++from averaging import averaging
++
++def thomasparams(md,**kwargs):
++	'''
++	compute Thomas' geometric parameters for an ice shelf 
++
++	This routine computes geometric parameters representing ratios between
++	components of the horizontal strain rate tensor for an ice shelf, as
++	originally developed in Thomas (1973).  The model must contain computed
++	strain rates, either from observed or modeled ice velocities.
++
++   Available options:
++	 -eq			: analytical equation to use in the calculation.  Must be one of:
++				'Thomas' for a 2D ice shelf, taking into account full strain rate
++					tensor (default)
++				'Weertman1D' for a confined ice shelf free to flow in one direction
++				'Weertman2D' for an unconfined ice shelf free to spread in any direction
++
++	 -smoothing	: an integer smoothing parameter for the averaging function
++						(default 0) Type 'help averaging' for more information on its usage.
++
++	 -coordsys	: coordinate system for calculating the strain rate
++						components. Must be one of:
++				'longitudinal': x axis aligned along a flowline at every point (default)
++				'principal': x axis aligned along maximum principal strain rate
++					at every point
++				'xy': x and y axes same as in polar stereographic projection 
++
++   Return values: 
++
++		'alpha' which is the ratio e_yy/e_xx between components of the strain
++		rate tensor
++
++		'beta' which is the ratio e_xy/e_xx between components of the strain rate
++		tensor
++
++		'theta' which is a combination of alpha and beta arising from the form of
++		the equivalent stress
++
++		'exx' is the strain rate along a coordinate system defined by 'coordsys' 
++
++		'sigxx' is the deviatoric stress along a coordinate system defined by 'coordsys' 
++
++   Usage: 
++		alpha,beta,theta,exx,sigxx=thomasparams(md)
++
++   Example: 
++		alpha,beta,theta,exx,sigxx=thomasparams(md,eq='Thomas',smoothing=2,coordsys='longitudinal')
++	'''
++
++	#unpack kwargs
++	eq=kwargs.pop('eq','Thomas')
++	if 'eq' in kwargs: del kwargs['eq']
++	smoothing=kwargs.pop('smoothing',0)
++	if 'smoothing' in kwargs: del kwargs['smoothing']
++	coordsys=kwargs.pop('coordsys','longitudinal')
++	if 'coordsys' in kwargs: del kwargs['coordsys']
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	# some checks
++	if not hasattr(md.results,'strainrate'):
++		raise Exception('md.results.strainrate not present.  Calculate using md=mechanicalproperties(md,vx,vy)')
++	if not '2d' in md.mesh.__doc__:
++		raise Exception('only 2d (planview) model supported currently')
++	if any(md.flowequation.element_equation!=2):
++		raise Exception('Warning: the model has some non-SSA elements.  These will be treated like SSA elements')
++
++	# average element strain rates onto vertices
++	e1=averaging(md,md.results.strainrate.principalvalue1,smoothing)/md.constants.yts # convert to s^-1
++	e2=averaging(md,md.results.strainrate.principalvalue2,smoothing)/md.constants.yts
++	exx=averaging(md,md.results.strainrate.xx,smoothing)/md.constants.yts
++	eyy=averaging(md,md.results.strainrate.yy,smoothing)/md.constants.yts
++	exy=averaging(md,md.results.strainrate.xy,smoothing)/md.constants.yts
++	
++	# checks: any of e1 or e2 equal to zero?
++	pos=npy.nonzero(e1==0)
++	if npy.any(pos==1):
++		print('WARNING: first principal strain rate equal to zero.  Value set to 1e-13 s^-1')
++		e1[pos]=1.e-13
++	pos=npy.nonzero(e2==0)
++	if npy.any(pos==1):
++		print('WARNING: second principal strain rate equal to zero.  Value set to 1e-13 s^-1')
++		e2[pos]=1.e-13
++	
++	# rheology
++	n=averaging(md,md.materials.rheology_n,0)
++	B=md.materials.rheology_B
++	
++	if coordsys=='principal':
++		b=npy.zeros((md.mesh.numberofvertices,))
++		ex=e1
++		a=e2/e1
++		pos=npy.nonzero(npy.logical_and(e1<0,e2>0)) # longitudinal compression and lateral tension
++		a[pos]=e1[pos]/e2[pos]
++		ex[pos]=e2[pos]
++		pos2=npy.nonzero(e1<0 & e2<0 & npy.abs(e1)<npy.abs(e2)) # lateral and longitudinal compression
++		a[pos2]=e1[pos2]/e2[pos2]
++		ex[pos2]=e2[pos2]
++		pos3=npy.nonzero(e1>0 & e2>0 & npy.abs(e1)<npy.abs(e2)) # lateral and longitudinal tension
++		a[pos3]=e1[pos3]/e2[pos3]
++		ex[pos3]=e2[pos3]
++		ind=npy.nonzero(e1<0 & e2<0)
++		a[ind]=-a[ind] # where both strain rates are compressive, enforce negative alpha
++		sigxx=(npy.abs(ex)/((1.+a+a**2)**((n-1.)/2.)))**(1./n)*B
++	elif coordsys=='xy':
++		ex=exx
++		a=eyy/exx
++		b=exy/exx
++	elif coordsys=='longitudinal':
++		# using longitudinal strain rates defined by observed velocity vector
++		velangle=npy.arctan(md.initialization.vy/md.initialization.vx)
++		pos=npy.nonzero(md.initialization.vx==0)
++		velangle[pos]=npy.pi/2
++		ex=0.5*(exx+eyy)+0.5*(exx-eyy)*npy.cos(2.*velangle)+exy*npy.sin(2.*velangle)
++		ey=exx+eyy-ex # trace of strain rate tensor is invariant
++		exy=-0.5*(exx-eyy)*npy.sin(2.*velangle)+exy*npy.cos(2.*velangle)
++		a=ey/ex
++		b=exy/ex
++		sigxx=abs(ex)**(1./n-1.)*ex/((1.+a+a**2+b**2)**((n-1.)/(2.*n)))*B
++	else:
++		raise ValueError('argument passed to "coordsys" not valid')
++	
++	# a < -1 in areas of strong lateral compression or longitudinal compression and
++	# theta flips sign at a = -2
++	pos=npy.nonzero(npy.abs((npy.abs(a)-2.))<1.e-3)
++	if len(pos)>0:
++		print('Warning: ', len(pos), ' vertices have alpha within 1e-3 of -2')
++	a[pos]=-2+1e-3
++
++	if eq=='Weertman1D':
++		theta=1./8
++		a=npy.zeros((md.mesh.numberofvertices,))
++	elif eq=='Weertman2D':
++		theta=1./9
++		a=npy.ones((md.mesh.numberofvertices,))
++	elif eq=='Thomas':
++		theta=((1.+a+a**2+b**2)**((n-1.)/2.))/(npy.abs(2.+a)**n)
++	else:
++		raise ValueError('argument passed to "eq" not valid')
++
++	alpha=a
++	beta=b
++
++	return alpha,beta,theta,ex
+Index: ../trunk-jpl/src/py3/mech/analyticaldamage.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/analyticaldamage.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/analyticaldamage.py	(revision 19895)
+@@ -0,0 +1,106 @@
++import numpy as npy
++from averaging import averaging
++#from plotmodel import plotmodel
++from thomasparams import thomasparams
++
++def analyticaldamage(md,**kwargs):
++	'''
++	ANALYTICALDAMAGE - compute damage for an ice shelf 
++	
++		 This routine computes damage as a function of water/ice
++		 material properties, ice thickness, strain rate, and ice 
++		 rigidity.  The model must contain computed strain rates,
++		 either from observed or modeled ice velocities.
++	
++	   Available options:
++			-eq			: analytical equation to use in the calculation.  Must be one of:
++									'Weertman1D' for a confined ice shelf free to flow in one direction
++									'Weertman2D' for an unconfined ice shelf free to spread in any direction
++									'Thomas' for a 2D ice shelf, taking into account full strain rate tensor (default)
++			-smoothing	: the amount of smoothing to be applied to the strain rate data.
++									Type 'help averaging' for more information on its usage.
++			-coordsys	: coordinate system for calculating the strain rate
++						components. Must be one of:
++			-sigmab		: a compressive backstress term to be subtracted from the driving stress 
++									in the damage calculation
++	
++	   Return values:
++			'damage' which is truncated in the range [0,1-1e-9]
++	
++		   'B' is the rigidity, which is equal to md.materials.rheology_B in areas outside
++			those defined by 'mask.'  Within areas defined by 'mask,' where negative damage 
++			is inferred, 'B' is updated to make damage equal to zero.  
++	
++			'backstress' is the inferred backstress necessary to balance the analytical solution
++			(keeping damage within its appropriate limits, e.g. D in [0,1]).
++	
++	   Usage:
++	      damage,B,backstress=analyticaldamage(md,kwargs)
++	
++	   Example:
++	      damage,B,backstress=analyticaldamage(md,eq='Weertman2D',smoothing=2,sigmab=10e3)
++	'''
++
++	#unpack kwargs
++	eq=kwargs.pop('eq','Thomas')
++	if 'eq' in kwargs: del kwargs['eq']
++	smoothing=kwargs.pop('smoothing',0)
++	if 'smoothing' in kwargs: del kwargs['smoothing']
++	coordsys=kwargs.pop('coordsys','longitudinal')
++	if 'coordsys' in kwargs: del kwargs['coordsys']
++	sigmab=kwargs.pop('sigmab',0)
++	if 'sigmab' in kwargs: del kwargs['sigmab']
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	if isinstance(sigmab,(int,float)):
++		sigmab=sigmab*npy.ones((md.mesh.numberofvertices,))
++
++	# check inputs
++	if 'strainrate' not in md.results.__dict__:
++		raise Exception('md.results.strainrate not present.  Calculate using md=mechanicalproperties(md,vx,vy)')
++	if not '2d' in md.mesh.__doc__:
++		raise Exception('only 2d (planview) model supported currently')
++	if npy.any(md.flowequation.element_equation!=2):
++		print('Warning: the model has some non SSA elements. These will be treated like SSA elements')
++
++	a,b,theta,ex=thomasparams(md,eq=eq,smoothing=smoothing,coordsys=coordsys)
++	
++	# spreading stress
++	rhoi=md.materials.rho_ice
++	rhow=md.materials.rho_water
++	C=0.5*rhoi*md.constants.g*(1.-rhoi/rhow)
++	T=C*md.geometry.thickness
++	
++	# rheology
++	B=md.materials.rheology_B
++	n=averaging(md,md.materials.rheology_n,0)
++	
++	D=1.-(1.+a+a**2+b**2)**((n-1.)/(2.*n))/npy.abs(ex)**(1./n)*(T-sigmab)/B/(2.+a)/npy.sign(ex)
++	
++	# D>1 where (2+a).*sign(ex)<0, compressive regions where high backstress needed
++	pos=npy.nonzero(D>1)
++	D[pos]=0
++	
++	backstress=npy.zeros((md.mesh.numberofvertices,))
++
++	# backstress to bring D down to one 
++	backstress[pos]=T[pos]-(1.-D[pos])*B[pos]*npy.sign(ex[pos])*(2.+a[pos])*npy.abs(ex[pos])**(1./n[pos])/(1.+a[pos]+a[pos]**2)**((n[pos]-1.)/2./n[pos])
++	
++	pos=npy.nonzero(D<0)
++	#mask=ismember(1:md.mesh.numberofvertices,pos);
++	D[pos]=0
++	
++	# backstress to bring negative damage to zero
++	backstress[pos]=T[pos]-(1.-D[pos])*B[pos]*npy.sign(ex[pos])*(2.+a[pos])*npy.abs(ex[pos])**(1./n[pos])/(1.+a[pos]+a[pos]**2)**((n[pos]-1.)/2./n[pos])
++	
++	pos=npy.nonzero(backstress<0)
++	backstress[pos]=0
++	
++	# rigidity from Thomas relation for D=0 and backstress=0
++	B=npy.sign(ex)/(2.+a)*(1.+a+a**2)**((n-1.)/2./n)*T/(npy.abs(ex)**(1./n))
++	pos=npy.nonzero(B<0)
++	B[pos]=md.materials.rheology_B[pos]
++	
++	damage=D
++	
++	return damage, B, backstress
+Index: ../trunk-jpl/src/py3/mech/mechanicalproperties.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/mechanicalproperties.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/mechanicalproperties.py	(revision 19895)
+@@ -0,0 +1,160 @@
++import numpy as npy
++from GetNodalFunctionsCoeff import GetNodalFunctionsCoeff
++from results import results
++from averaging import averaging
++
++def mechanicalproperties(md,vx,vy,**kwargs):
++	"""
++	MECHANICALPROPERTIES - compute stress and strain rate for a goven velocity
++	
++   this routine computes the components of the stress tensor
++   strain rate tensor and their respective principal directions.
++   the results are in the model md: md.results
++	
++   Usage:
++      md=mechanicalproperties(md,vx,vy)
++	
++   Example:
++      md=mechanicalproperties(md,md.initialization.vx,md.initialization.vy)
++      md=mechanicalproperties(md,md.inversion.vx_obs,md.inversion.vy_obs)
++	"""
++
++	#some checks
++	if len(vx)!=md.mesh.numberofvertices or len(vy)!=md.mesh.numberofvertices:
++		raise ValueError('the input velocity should be of size ' + md.mesh.numberofvertices)
++	
++	#if md.mesh.dimension!=2:
++	#	raise StandardError('only 2D model supported currently')
++
++	if npy.any(md.flowequation.element_equation!=2):
++		print('Warning: the model has some non SSA elements. These will be treated like SSA elements')
++
++        #unpack kwargs
++	if 'damage' in kwargs: 
++	    damage=kwargs.pop('damage')
++            if len(damage)!=md.mesh.numberofvertices:
++		raise ValueError('if damage is supplied it should be of size ' + md.mesh.numberofvertices)
++            if npy.ndim(damage)==2:
++                damage=damage.reshape(-1,)
++        else: damage=None
++
++	if npy.ndim(vx)==2:
++		vx=vx.reshape(-1,)
++	if npy.ndim(vy)==2:
++		vy=vy.reshape(-1,)
++	
++	#initialization
++	numberofelements=md.mesh.numberofelements
++	numberofvertices=md.mesh.numberofvertices
++	index=md.mesh.elements
++	summation=npy.array([[1],[1],[1]])
++	directionsstress=npy.zeros((numberofelements,4))
++	directionsstrain=npy.zeros((numberofelements,4))
++	valuesstress=npy.zeros((numberofelements,2))
++	valuesstrain=npy.zeros((numberofelements,2))
++	
++	#compute nodal functions coefficients N(x,y)=alpha x + beta y +gamma
++	alpha,beta=GetNodalFunctionsCoeff(index,md.mesh.x,md.mesh.y)[0:2]
++	
++	#compute shear
++	vxlist=vx[index-1]/md.constants.yts
++	vylist=vy[index-1]/md.constants.yts
++	ux=npy.dot((vxlist*alpha),summation).reshape(-1,)
++	uy=npy.dot((vxlist*beta),summation).reshape(-1,)
++	vx=npy.dot((vylist*alpha),summation).reshape(-1,)
++	vy=npy.dot((vylist*beta),summation).reshape(-1,)
++	uyvx=(vx+uy)/2.
++	#clear vxlist vylist
++	
++	#compute viscosity
++	nu=npy.zeros((numberofelements,))
++	B_bar=npy.dot(md.materials.rheology_B[index-1],summation/3.).reshape(-1,)
++	power=((md.materials.rheology_n-1.)/(2.*md.materials.rheology_n)).reshape(-1,)
++	second_inv=(ux**2.+vy**2.+((uy+vx)**2.)/4.+ux*vy).reshape(-1,)
++	
++	#some corrections
++	location=npy.nonzero(npy.logical_and(second_inv==0,power!=0))
++	nu[location]=10^18 	#arbitrary maximum viscosity to apply where there is no effective shear
++	
++	if 'matice' in md.materials.__module__:
++		location=npy.nonzero(second_inv)
++		nu[location]=B_bar[location]/(second_inv[location]**power[location])
++		location=npy.nonzero(npy.logical_and(second_inv==0,power==0))
++		nu[location]=B_bar[location]
++		location=npy.nonzero(npy.logical_and(second_inv==0,power!=0))
++		nu[location]=10^18
++	elif 'matdamageice' in md.materials.__module__ and damage is not None:
++		print('computing damage-dependent properties!')
++		Zinv=npy.dot(1-damage[index-1],summation/3.).reshape(-1,)
++		location=npy.nonzero(second_inv)
++		nu[location]=Zinv[location]*B_bar[location]/npy.power(second_inv[location],power[location])
++		location=npy.nonzero(npy.logical_and(second_inv==0,power==0))
++		nu[location]=Zinv[location]*B_bar[location]
++		#clear Zinv
++	else:
++		raise Exception('class of md.materials (' + md.materials.__module__ + ') not recognized or not supported')
++	
++	#compute stress
++	tau_xx=nu*ux
++	tau_yy=nu*vy
++	tau_xy=nu*uyvx
++	
++	#compute principal properties of stress
++	for i in npy.arange(numberofelements):
++	
++		#compute stress and strainrate matrices
++		stress=npy.array([ [tau_xx[i], tau_xy[i]], [tau_xy[i], tau_yy[i]] ])
++		strain=npy.array([ [ux[i], uyvx[i]], [uyvx[i], vy[i]] ])
++	
++		#eigenvalues and vectors for stress
++		value,directions=npy.linalg.eig(stress);
++		idx=abs(value).argsort()[::-1] # sort in descending order
++		value=value[idx]
++		directions=directions[:,idx]
++		valuesstress[i,:]=[value[0],value[1]]
++		directionsstress[i,:]=directions.transpose().flatten()
++
++		#eigenvalues and vectors for strain
++		value,directions=npy.linalg.eig(strain);
++		idx=abs(value).argsort()[::-1] # sort in descending order
++		value=value[idx]
++		directions=directions[:,idx]
++		valuesstrain[i,:]=[value[0],value[1]]
++		directionsstrain[i,:]=directions.transpose().flatten()
++
++	##plug onto the model
++	##NB: Matlab sorts the eigen value in increasing order, we want the reverse
++	stress=results()
++	stress.xx=tau_xx
++	stress.yy=tau_yy
++	stress.xy=tau_xy
++	stress.principalvalue1=valuesstress[:,0]
++	stress.principalaxis1=directionsstress[:,0:2]
++	stress.principalvalue2=valuesstress[:,1]
++	stress.principalaxis2=directionsstress[:,2:4]
++	stress.effectivevalue=1./npy.sqrt(2.)*npy.sqrt(stress.xx**2+stress.yy**2+2.*stress.xy**2)
++	md.results.stress=stress
++	
++	strainrate=results()
++	strainrate.xx=ux*md.constants.yts #strain rate in 1/a instead of 1/s
++	strainrate.yy=vy*md.constants.yts 
++	strainrate.xy=uyvx*md.constants.yts 
++	strainrate.principalvalue1=valuesstrain[:,0]*md.constants.yts 
++	strainrate.principalaxis1=directionsstrain[:,0:2]
++	strainrate.principalvalue2=valuesstrain[:,1]*md.constants.yts 
++	strainrate.principalaxis2=directionsstrain[:,2:4]
++	strainrate.effectivevalue=1./npy.sqrt(2.)*npy.sqrt(strainrate.xx**2+strainrate.yy**2+2.*strainrate.xy**2)
++	md.results.strainrate=strainrate
++	
++	deviatoricstress=results()
++	deviatoricstress.xx=tau_xx
++	deviatoricstress.yy=tau_yy
++	deviatoricstress.xy=tau_xy
++	deviatoricstress.principalvalue1=valuesstress[:,0]
++	deviatoricstress.principalaxis1=directionsstress[:,1:2]
++	deviatoricstress.principalvalue2=valuesstress[:,1]
++	deviatoricstress.principalaxis2=directionsstress[:,2:4]
++	deviatoricstress.effectivevalue=1./npy.sqrt(2.)*npy.sqrt(stress.xx**2+stress.yy**2+2.*stress.xy**2)
++	md.results.deviatoricstress=deviatoricstress
++
++	return md
+Index: ../trunk-jpl/src/py3/mech/steadystateiceshelftemp.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/steadystateiceshelftemp.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/steadystateiceshelftemp.py	(revision 19895)
+@@ -0,0 +1,65 @@
++import numpy as npy
++
++def steadystateiceshelftemp(md,surfacetemp,basaltemp):
++	"""
++	Compute the depth-averaged steady-state temperature of an ice shelf 
++	This routine computes the depth-averaged temperature accounting for vertical advection 
++	and diffusion of heat into the base of the ice shelf as a function of surface and basal 
++	temperature and the basal melting rate.  Horizontal advection is ignored.
++   The solution is a depth-averaged version of Equation 25 in Holland and Jenkins (1999).
++
++	In addition to supplying md, the surface and basal temperatures of the ice shelf must be supplied in degrees Kelvin.
++
++	The model md must also contain the fields: 
++	md.geometry.thickness
++	md.basalforcings.floatingice_melting_rate (positive for melting, negative for freezing)
++
++   Usage:
++      temperature=steadystateiceshelftemp(md,surfacetemp,basaltemp)
++	"""
++
++	if len(md.geometry.thickness)!=md.mesh.numberofvertices:
++		raise ValueError('steadystateiceshelftemp error message: thickness should have a length of ' + md.mesh.numberofvertices)
++	
++	#surface and basal temperatures in degrees C
++	if len(surfacetemp)!=md.mesh.numberofvertices:
++		raise ValueError('steadystateiceshelftemp error message: surfacetemp should have a length of ' + md.mesh.numberofvertices)
++	
++	if len(basaltemp)!=md.mesh.numberofvertices:
++		raise ValueError('steadystateiceshelftemp error message: basaltemp should have a length of ' +md.mesh.numberofvertices)
++	
++	# Convert temps to Celsius for Holland and Jenkins (1999) equation
++	Ts=-273.15+surfacetemp
++	Tb=-273.15+basaltemp
++	
++	Hi=md.geometry.thickness
++	ki=1.14e-6*md.constants.yts # ice shelf thermal diffusivity from Holland and Jenkins (1999) converted to m^2/yr 
++	
++	#vertical velocity of ice shelf, calculated from melting rate 
++	wi=md.materials.rho_water/md.materials.rho_ice*md.basalforcings.floatingice_melting_rate 
++	
++	#temperature profile is linear if melting rate is zero, depth-averaged temp is simple average in this case
++	temperature=(Ts+Tb)/2  # where wi~=0
++	
++	pos=npy.nonzero(abs(wi)>=1e-4) # to avoid division by zero
++
++	npy.seterr(over='raise',divide='raise') # raise errors if floating point exceptions are encountered in following calculation
++	#calculate depth-averaged temperature (in Celsius)
++	try:
++		temperature[pos]=-( (Tb[pos]-Ts[pos])*ki/wi[pos] + Hi[pos]*Tb[pos] - (Hi[pos]*Ts[pos] + (Tb[pos]-Ts[pos])*ki/wi[pos])*npy.exp(Hi[pos]*wi[pos]/ki) )/( Hi[pos]*(npy.exp(Hi[pos]*wi[pos]/ki)-1))
++	except FloatingPointError:
++		print('steadystateiceshelf warning: overflow encountered in multipy/divide/exp, trying another formulation.') 
++		temperature[pos]=-( ((Tb[pos]-Ts[pos])*ki/wi[pos] + Hi[pos]*Tb[pos])/npy.exp(Hi[pos]*wi[pos]/ki) - Hi[pos]*Ts[pos] + (Tb[pos]-Ts[pos])*ki/wi[pos])/( Hi[pos]*(1-npy.exp(-Hi[pos]*wi[pos]/ki)))
++	
++	#temperature should not be less than surface temp
++	pos=npy.nonzero(temperature<Ts)
++	temperature[pos]=Ts[pos]
++	
++	# NaN where melt rates are too high (infinity/infinity in exponential)
++	pos=npy.nonzero(npy.isnan(temperature))
++	temperature[pos]=Ts[pos]
++	
++	#convert to Kelvin
++	temperature=temperature+273.15
++
++	return temperature
+Index: ../trunk-jpl/src/py3/mech/backstressfrominversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/backstressfrominversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/backstressfrominversion.py	(revision 19895)
+@@ -0,0 +1,74 @@
++import numpy as npy
++from averaging import averaging
++from thomasparams import thomasparams
++
++def backstressfrominversion(md,**kwargs):
++	'''
++	Compute ice shelf backstress from inversion results.
++
++	This routine computes backstress based on the analytical formalism of
++	Thomas (1973) and Borstad et al. (2013, The Cryosphere).  The model
++	must contain inversion results for ice rigidity.  Strain rates must
++	also be included, either from observed or modeled velocities.  Ice
++	rigidity B is assumed to be parameterized by the ice temperature in
++	md.materials.rheology_B.
++
++   Available options:
++		- 'tempmask'	: mask the inverted rigidity to be no more than
++							appropriate for the temperature of the ice?  
++							Boolean, defaults to false.
++		- 'smoothing'	: the amount of smoothing to be applied to the strain rate data.
++								Type 'help averaging' for more information on its
++								usage. Defaults to 0.
++		- 'coordsys'	: coordinate system for calculating the strain rate
++							components. Must be one of: 
++				'longitudinal': x axis aligned along a flowline at every point (default)
++				'principal': x axis aligned along maximum principal strain rate
++					at every point
++				'xy': x and y axes same as in polar stereographic projection 
++
++   Return values:
++		'backstress' is the inferred backstress based on the analytical
++		solution for ice shelf creep
++
++   Usage:
++      backstress=backstressfrominversion(md,options)
++
++   Example:
++      backstress=backstressfrominversion(md,'smoothing',2,'coordsys','longitudinal','tempmask',true);
++	'''
++
++	# unpack kwargs
++	tempmask=kwargs.pop('tempmask',False)
++	if 'tempmask' in kwargs: del kwargs['maxiter']
++	smoothing=kwargs.pop('smoothing',0)
++	if 'smoothing' in kwargs: del kwargs['smoothing']
++	coordsys=kwargs.pop('coordsys','longitudinal')
++	if 'coordsys' in kwargs: del kwargs['coordsys']
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	# some checks
++	if not hasattr(md.results,'strainrate'):
++		raise Exception('md.results.strainrate not present.  Calculate using md=mechanicalproperties(md,vx,vy)')
++	if not '2d' in md.mesh.__doc__:
++		raise Exception('only 2d (planview) model supported currently')
++	if any(md.flowequation.element_equation!=2):
++		raise Exception('Warning: the model has some non-SSA elements.  These will be treated like SSA elements')
++
++	T=0.5*md.materials.rho_ice*md.constants.g*(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness
++	n=averaging(md,md.materials.rheology_n,0)
++	B=md.materials.rheology_B
++	Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(-1,)
++	
++	a0,b0,theta0,ex0=thomasparams(md,eq='Thomas',smoothing=smoothing,coordsys=coordsys)
++	
++	if tempmask:
++		Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar
++		pos=npy.nonzero(Bi>md.materials.rheology_B)
++		Bi[pos]=md.materials.rheology_B[pos]
++	
++	# analytical backstress solution
++	backstress=T-Bi*npy.sign(ex0)*(2+a0)*npy.abs(ex0)**(1./n)/((1+a0+a0**2+b0**2)**((n-1.)/2./n))
++	backstress[npy.nonzero(backstress<0)]=0
++
++	return backstress
+Index: ../trunk-jpl/src/py3/mech/calcbackstress.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/calcbackstress.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/calcbackstress.py	(revision 19895)
+@@ -0,0 +1,66 @@
++import numpy as npy
++from averaging import averaging
++from thomasparams import thomasparams
++
++def calcbackstress(md,**kwargs):
++	'''
++	Compute ice shelf backstress.
++
++	This routine computes backstress based on the analytical formalism of
++	Thomas (1973) and Borstad et al. (2013, The Cryosphere) based on the
++	ice rigidity, thickness, the densities of ice and seawater, and
++	(optionally) damage.  Strain rates must also be included, either from
++	observed or modeled velocities. 
++	
++	Available options:
++		- 'smoothing'	: the amount of smoothing to be applied to the strain rate data.
++								Type 'help averaging' for more information on its
++								usage. Defaults to 0.
++		- 'coordsys'	: coordinate system for calculating the strain rate
++							components. Must be one of: 
++				'longitudinal': x axis aligned along a flowline at every point (default)
++				'principal': x axis aligned along maximum principal strain rate
++					at every point
++				'xy': x and y axes same as in polar stereographic projection 
++
++   Return values:
++		'backstress' is the inferred backstress based on the analytical
++		solution for ice shelf creep
++
++   Usage:
++      backstress=calcbackstress(md,options)
++
++   Example:
++      backstress=calcbackstress(md,'smoothing',2,'coordsys','longitudinal')
++	'''
++
++	# unpack kwargs
++	smoothing=kwargs.pop('smoothing',0)
++	if 'smoothing' in kwargs: del kwargs['smoothing']
++	coordsys=kwargs.pop('coordsys','longitudinal')
++	if 'coordsys' in kwargs: del kwargs['coordsys']
++	assert len(kwargs)==0, 'error, unexpected or misspelled kwargs'
++
++	# some checks
++	if not hasattr(md.results,'strainrate'):
++		raise Exception('md.results.strainrate not present.  Calculate using md=mechanicalproperties(md,vx,vy)')
++	if not '2d' in md.mesh.__doc__:
++		raise Exception('only 2d (planview) model supported currently')
++	if any(md.flowequation.element_equation!=2):
++		raise Exception('Warning: the model has some non-SSA elements.  These will be treated like SSA elements')
++
++	T=0.5*md.materials.rho_ice*md.constants.g*(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness
++	n=averaging(md,md.materials.rheology_n,0)
++	B=md.materials.rheology_B
++	if md.damage.isdamage:
++		D=md.damage.D
++	else:
++		D=0.
++	
++	a0,b0,theta0,ex0=thomasparams(md,eq='Thomas',smoothing=smoothing,coordsys=coordsys)
++	
++	# analytical backstress solution
++	backstress=T-(1.-D)*B*npy.sign(ex0)*(2+a0)*npy.abs(ex0)**(1./n)/((1+a0+a0**2+b0**2)**((n-1.)/2./n))
++	backstress[npy.nonzero(backstress<0)]=0
++
++	return backstress
+Index: ../trunk-jpl/src/py3/mech/robintemperature.py
+===================================================================
+--- ../trunk-jpl/src/py3/mech/robintemperature.py	(revision 0)
++++ ../trunk-jpl/src/py3/mech/robintemperature.py	(revision 19895)
+@@ -0,0 +1,42 @@
++import numpy as npy
++from scipy.special import erf
++
++def robintemperature(heatflux,accumrate,thickness,surftemp,z):
++	'''
++	Compute vertical temperature profile of an ice sheet (Robin, 1955)
++
++	This routine computes the vertical temperature profile of an ice sheet
++	according to the solution of Robin (1955), neglecting friction and
++	horizontal advection.  The solution is thus most appropriate at an ice
++	divide.
++
++	The coordinate system for the solution runs from z=0 at the base 
++	to z=H at the surface of the ice.
++
++	Parameters (SI units):
++		-heatflux	Geothermal heat flux (W m^-2)
++		-accumrate	Surface accumulation rate (m s^-1 ice equivalent)
++		-thickness	Ice thickness (m)
++		-surftemp	Surface temperature (K)
++		-z				Vertical position at which to calculate temperature
++						(z can be a scalar or a vector)
++
++	Returns a vector the same length as z containing the temperature in K
++
++	Usage:
++		tprofile=robintemperature(heatflux,accumrate,thickness,surftemp,z)
++	'''
++
++	# some constants (from Holland and Jenkins, 1999)
++	alphaT=1.14e-6 # thermal diffusivity (m^2 s^-1)
++	c=2009. # specific heat capacity (J kg^-1 K^-1)
++	rho=917.  # ice density (kg m^-3)
++	
++	#create vertical coordinate variable
++	zstar=npy.sqrt(2.*alphaT*thickness/accumrate)
++	
++	tprofile=surftemp+npy.sqrt(2.*thickness*npy.pi/accumrate/alphaT)*(-heatflux)/2./rho/c*(erf(z/zstar)-erf(thickness/zstar))
++
++	return tprofile	
++	# difference between surface and base temperature for check (Cuffey2010 p412):
++	# print tprofile-surftemp
+Index: ../trunk-jpl/src/py3/boundaryconditions/SetIceSheetBC.py
+===================================================================
+--- ../trunk-jpl/src/py3/boundaryconditions/SetIceSheetBC.py	(revision 0)
++++ ../trunk-jpl/src/py3/boundaryconditions/SetIceSheetBC.py	(revision 19895)
+@@ -0,0 +1,59 @@
++import os
++import numpy
++from ContourToMesh import ContourToMesh
++
++def SetIceSheetBC(md):
++	"""
++	SETICESHEETBC - Create the boundary conditions for stressbalance and thermal models for an IceSheet with no Ice Front
++
++	   Usage:
++	      md=SetIceSheetBC(md)
++
++	   See also: SETICESHELFBC, SETMARINEICESHEETBC
++	"""
++
++	#node on Dirichlet
++	pos=numpy.nonzero(md.mesh.vertexonboundary)
++	md.stressbalance.spcvx=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvy=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvz=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvx[pos]=0
++	md.stressbalance.spcvy[pos]=0
++	md.stressbalance.spcvz[pos]=0
++	md.stressbalance.referential=float('nan')*numpy.ones((md.mesh.numberofvertices,6))
++	md.stressbalance.loadingforce=0*numpy.ones((md.mesh.numberofvertices,3))
++
++	#Dirichlet Values
++	if isinstance(md.inversion.vx_obs,numpy.ndarray) and numpy.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,numpy.ndarray) and numpy.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices:
++		print("      boundary conditions for stressbalance model: spc set as observed velocities")
++		md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos]
++		md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos]
++	else:
++		print("      boundary conditions for stressbalance model: spc set as zero")
++
++	#No ice front -> do nothing
++
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
++	md.basalforcings.initialize(md)
++
++	#Deal with other boundary conditions
++	if numpy.all(numpy.isnan(md.balancethickness.thickening_rate)):
++		md.balancethickness.thickening_rate=numpy.zeros((md.mesh.numberofvertices,1))
++		print("      no balancethickness.thickening_rate specified: values set as zero")
++	md.masstransport.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.balancethickness.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.damage.spcdamage=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++
++	if isinstance(md.initialization.temperature,numpy.ndarray) and numpy.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:
++		md.thermal.spctemperature=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++		if hasattr(md.mesh,'vertexonsurface'):
++			pos=numpy.nonzero(md.mesh.vertexonsurface)[0]
++			md.thermal.spctemperature[pos]=md.initialization.temperature[pos]    #impose observed temperature on surface
++		if not isinstance(md.basalforcings.geothermalflux,numpy.ndarray) or not numpy.size(md.basalforcings.geothermalflux)==md.mesh.numberofvertices:
++			md.basalforcings.geothermalflux=50.*10**-3*numpy.ones((md.mesh.numberofvertices,1))    #50 mW/m^2
++	else:
++		print("      no thermal boundary conditions created: no observed temperature found")
++
++	return md
++
+Index: ../trunk-jpl/src/py3/boundaryconditions/PattynSMB.py
+===================================================================
+--- ../trunk-jpl/src/py3/boundaryconditions/PattynSMB.py	(revision 0)
++++ ../trunk-jpl/src/py3/boundaryconditions/PattynSMB.py	(revision 19895)
+@@ -0,0 +1,50 @@
++import os
++import numpy as npy
++def PattynSMB(md,Tf):
++	"""
++    PATTYNSMB- Compute SMB over Antarctica (from Pattyn 2006, pg. 18, "GRANTISM: An ExcelTM model for Greenland 
++	and Antarctic ice-sheet response to climate changes")
++
++    Usage:
++      md=PattynSMB(md,Tf)
++
++      where Tf is a background forcing temperature ("an anomalous temperature relative to the present conditions)
++
++
++    See also: SETICESHELFBC, SETMARINEICESHEETBC
++	"""
++ 
++	# Tma    : Mean annual surface temperature in [deg C]
++	# Tms    : Mean summer temperature in [deg C]
++	# h      : Surface/bedrock elevation (I assume in meters but paper does not specify)
++	# phi    : Latitude in degrees SOUTH
++	# lambda : Longitude in degrees WEST
++	# Tf     : Background forcing temperature ("an anomalous temperature relative to the present conditions)
++	# ACCdot : Accumulation rate in units of [m/a] ice equivalent
++	# ABLdot : Surface ablation rate in [m/a] ice equivalent
++
++	#Double check lat and long exist:
++	if npy.any(npy.isnan(md.mesh.lat)): 
++		raise IOError('PattynSMB error message: md.mesh.lat field required')
++
++	# Calculate mean annual surface temperature, Eqn (11)
++	# Here, -0.012 is the atmospheric Lapse rate from sea level in deg/m.
++	# It is multiplied by surface elevation from sea level
++	Tma = -15.15 - 0.012*md.geometry.surface
++	
++
++	# Calculate summer temperature, Eqn (12)
++	# No melting at PIG in mean conditions - need about 6 degress Tf to start having a negative yearly SMB
++	Tms = 16.81 - 0.00692*md.geometry.surface - 0.27937*npy.abs(md.mesh.lat) + Tf
++	Tms= Tms[0]
++
++	# Calculate Accumulation perturbation with Tf forcing, Eqn (9)
++	ACCdot = 2.5*2**((Tma+Tf)/10.) - 2.5*2**(Tma/10.)
++
++	# Calculate Ablation, Eqn (10) (use for both Antarctica & Greenland), max melt is 10m/a
++	ABLdot=0.*npy.ones(md.mesh.numberofvertices)
++	pos=npy.nonzero(Tms>=0)
++	ABLdot[pos]=npy.minimum(1.4*Tms[pos],10)
++
++	smb=ACCdot-ABLdot
++	return smb[0]
+Index: ../trunk-jpl/src/py3/boundaryconditions/SetIceShelfBC.py
+===================================================================
+--- ../trunk-jpl/src/py3/boundaryconditions/SetIceShelfBC.py	(revision 0)
++++ ../trunk-jpl/src/py3/boundaryconditions/SetIceShelfBC.py	(revision 19895)
+@@ -0,0 +1,101 @@
++import os
++import numpy
++from ContourToMesh import ContourToMesh
++import MatlabFuncs as m
++
++def SetIceShelfBC(md,icefrontfile=''):
++	"""
++	SETICESHELFBC - Create the boundary conditions for stressbalance and thermal models for a  Ice Shelf with Ice Front
++
++	   Neumann BC are used on the ice front (an ARGUS contour around the ice front
++	   must be given in input)
++	   Dirichlet BC are used elsewhere for stressbalance
++
++	   Usage:
++	      md=SetIceShelfBC(md,varargin)
++
++	   Example:
++	      md=SetIceShelfBC(md);
++	      md=SetIceShelfBC(md,'Front.exp');
++
++	   See also: SETICESHEETBC, SETMARINEICESHEETBC
++	"""
++
++	#node on Dirichlet (boundary and ~icefront)
++	if icefrontfile:
++		if not os.path.exists(icefrontfile):
++			raise IOError("SetIceShelfBC error message: ice front file '%s' not found." % icefrontfile)
++		[nodeinsideicefront,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2)
++		nodeonicefront=numpy.logical_and(md.mesh.vertexonboundary,nodeinsideicefront.reshape(-1))
++	else:
++		nodeonicefront=numpy.zeros((md.mesh.numberofvertices),bool)
++
++#	pos=find(md.mesh.vertexonboundary & ~nodeonicefront);
++	pos=numpy.nonzero(numpy.logical_and(md.mesh.vertexonboundary,numpy.logical_not(nodeonicefront)))[0]
++	md.stressbalance.spcvx=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvy=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvz=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.referential=float('nan')*numpy.ones((md.mesh.numberofvertices,6))
++	md.stressbalance.loadingforce=0*numpy.ones((md.mesh.numberofvertices,3))
++
++	#Icefront position
++	pos=numpy.nonzero(nodeonicefront)[0]
++	md.mask.ice_levelset[pos]=0
++
++	#First find segments that are not completely on the front
++	if m.strcmp(md.mesh.elementtype(),'Penta'):
++		numbernodesfront=4;
++	elif m.strcmp(md.mesh.elementtype(),'Tria'):
++		numbernodesfront=2;
++	else:
++		raise	error('mesh type not supported yet')
++	if any(md.mask.ice_levelset<=0):
++		values=md.mask.ice_levelset[md.mesh.segments[:,0:-1]-1]
++		segmentsfront=1-values
++		numpy.sum(segmentsfront,axis=1)!=numbernodesfront
++		segments=numpy.nonzero(numpy.sum(segmentsfront,axis=1)!=numbernodesfront)[0]
++		#Find all nodes for these segments and spc them
++		pos=md.mesh.segments[segments,0:-1]-1
++	else:
++		pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
++	md.stressbalance.spcvx[pos]=0
++	md.stressbalance.spcvy[pos]=0
++	md.stressbalance.spcvz[pos]=0
++																													   
++	#Dirichlet Values
++	if isinstance(md.inversion.vx_obs,numpy.ndarray) and numpy.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,numpy.ndarray) and numpy.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices:
++		#reshape to rank-2 if necessary to match spc arrays
++		if numpy.ndim(md.inversion.vx_obs)==1:
++			md.inversion.vx_obs=md.inversion.vx_obs.reshape(-1,1)
++		if numpy.ndim(md.inversion.vy_obs)==1:
++			md.inversion.vy_obs=md.inversion.vy_obs.reshape(-1,1)
++		print("      boundary conditions for stressbalance model: spc set as observed velocities")
++		md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos]
++		md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos]
++	else:
++		print("      boundary conditions for stressbalance model: spc set as zero")
++
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
++	md.basalforcings.initialize(md)
++
++	#Deal with other boundary conditions
++	if numpy.all(numpy.isnan(md.balancethickness.thickening_rate)):
++		md.balancethickness.thickening_rate=numpy.zeros((md.mesh.numberofvertices,1))
++		print("      no balancethickness.thickening_rate specified: values set as zero")
++	md.masstransport.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.balancethickness.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.damage.spcdamage=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++
++	if isinstance(md.initialization.temperature,numpy.ndarray) and numpy.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:
++		md.thermal.spctemperature=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++		if hasattr(md.mesh,'vertexonsurface'):
++			pos=numpy.nonzero(md.mesh.vertexonsurface)[0]
++			md.thermal.spctemperature[pos]=md.initialization.temperature[pos]    #impose observed temperature on surface
++		if not isinstance(md.basalforcings.geothermalflux,numpy.ndarray) or not numpy.size(md.basalforcings.geothermalflux,axis=0)==md.mesh.numberofvertices:
++			md.basalforcings.geothermalflux=numpy.zeros((md.mesh.numberofvertices,1))
++	else:
++		print("      no thermal boundary conditions created: no observed temperature found")
++
++	return md
++
+Index: ../trunk-jpl/src/py3/boundaryconditions/SetMarineIceSheetBC.py
+===================================================================
+--- ../trunk-jpl/src/py3/boundaryconditions/SetMarineIceSheetBC.py	(revision 0)
++++ ../trunk-jpl/src/py3/boundaryconditions/SetMarineIceSheetBC.py	(revision 19895)
+@@ -0,0 +1,111 @@
++import os
++import numpy
++from ContourToMesh import ContourToMesh
++import MatlabFuncs as m
++
++def SetMarineIceSheetBC(md,icefrontfile=''):
++	"""
++	SETICEMARINESHEETBC - Create the boundary conditions for stressbalance and thermal models for a  Marine Ice Sheet with Ice Front
++
++	   Neumann BC are used on the ice front (an ARGUS contour around the ice front
++	   can be given in input, or it will be deduced as onfloatingice & onboundary)
++	   Dirichlet BC are used elsewhere for stressbalance
++
++	   Usage:
++	      md=SetMarineIceSheetBC(md,icefrontfile)
++	      md=SetMarineIceSheetBC(md)
++
++	   Example:
++	      md=SetMarineIceSheetBC(md,'Front.exp')
++	      md=SetMarineIceSheetBC(md)
++
++	   See also: SETICESHELFBC, SETMARINEICESHEETBC
++	"""
++
++	#node on Dirichlet (boundary and ~icefront)
++	if icefrontfile:
++		#User provided Front.exp, use it
++		if not os.path.exists(icefrontfile):
++			raise IOError("SetMarineIceSheetBC error message: ice front file '%s' not found." % icefrontfile)
++		[incontour,dum]=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,icefrontfile,'node',2)
++		vertexonicefront=numpy.logical_and(md.mesh.vertexonboundary,incontour.reshape(-1))
++	else:
++		#Guess where the ice front is
++		vertexonfloatingice=numpy.zeros((md.mesh.numberofvertices,1))
++		pos=numpy.nonzero(numpy.sum(md.mask.groundedice_levelset[md.mesh.elements-1]<0.,axis=1) >0.)[0]
++		vertexonfloatingice[md.mesh.elements[pos].astype(int)-1]=1.
++		vertexonicefront=numpy.logical_and(numpy.reshape(md.mesh.vertexonboundary,(-1,1)),vertexonfloatingice>0.)
++
++#	pos=find(md.mesh.vertexonboundary & ~vertexonicefront);
++	pos=numpy.nonzero(numpy.logical_and(md.mesh.vertexonboundary,numpy.logical_not(vertexonicefront)))[0]
++	if not numpy.size(pos):
++		print("SetMarineIceSheetBC warning: ice front all around the glacier, no dirichlet found. Dirichlet must be added manually.")
++
++	md.stressbalance.spcvx=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvy=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.spcvz=float('nan')*numpy.ones(md.mesh.numberofvertices)
++	md.stressbalance.referential=float('nan')*numpy.ones((md.mesh.numberofvertices,6))
++	md.stressbalance.loadingforce=0*numpy.ones((md.mesh.numberofvertices,3))
++
++	#Position of ice front
++	pos=numpy.nonzero(vertexonicefront)[0]
++	md.mask.ice_levelset[pos]=0
++
++	#First find segments that are not completely on the front
++	if m.strcmp(md.mesh.elementtype(),'Penta'):
++		numbernodesfront=4
++	elif m.strcmp(md.mesh.elementtype(),'Tria'):
++		numbernodesfront=2
++	else:
++			raise Exception("Mesh type not supported")
++	if any(md.mask.ice_levelset<=0):
++		values=md.mask.ice_levelset[md.mesh.segments[:,0:-1]-1]
++		segmentsfront=1-values
++		numpy.sum(segmentsfront,axis=1)!=numbernodesfront
++		segments=numpy.nonzero(numpy.sum(segmentsfront,axis=1)!=numbernodesfront)[0]
++		#Find all nodes for these segments and spc them
++		pos=md.mesh.segments[segments,0:-1]-1
++	else:
++		pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
++	md.stressbalance.spcvx[pos]=0
++	md.stressbalance.spcvy[pos]=0
++	md.stressbalance.spcvz[pos]=0
++
++	#Dirichlet Values
++	if isinstance(md.inversion.vx_obs,numpy.ndarray) and numpy.size(md.inversion.vx_obs,axis=0)==md.mesh.numberofvertices and isinstance(md.inversion.vy_obs,numpy.ndarray) and numpy.size(md.inversion.vy_obs,axis=0)==md.mesh.numberofvertices:
++		print("      boundary conditions for stressbalance model: spc set as observed velocities")
++		md.stressbalance.spcvx[pos]=md.inversion.vx_obs[pos]
++		md.stressbalance.spcvy[pos]=md.inversion.vy_obs[pos]
++	else:
++		print("      boundary conditions for stressbalance model: spc set as zero")
++
++	md.hydrology.spcwatercolumn=numpy.zeros((md.mesh.numberofvertices,2))
++	pos=numpy.nonzero(md.mesh.vertexonboundary)[0]
++	md.hydrology.spcwatercolumn[pos,0]=1
++
++	#Create zeros basalforcings and smb
++	md.smb.initialize(md)
++	md.basalforcings.initialize(md)
++
++	#Deal with other boundary conditions
++	if numpy.all(numpy.isnan(md.balancethickness.thickening_rate)):
++		md.balancethickness.thickening_rate=numpy.zeros((md.mesh.numberofvertices,1))
++		print("      no balancethickness.thickening_rate specified: values set as zero")
++
++	md.masstransport.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.balancethickness.spcthickness=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++	md.damage.spcdamage=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++
++	if isinstance(md.initialization.temperature,numpy.ndarray) and numpy.size(md.initialization.temperature,axis=0)==md.mesh.numberofvertices:
++		md.thermal.spctemperature=float('nan')*numpy.ones((md.mesh.numberofvertices,1))
++		if hasattr(md.mesh,'vertexonsurface'):
++			pos=numpy.nonzero(md.mesh.vertexonsurface)[0]
++			md.thermal.spctemperature[pos]=md.initialization.temperature[pos]    #impose observed temperature on surface
++		if not isinstance(md.basalforcings.geothermalflux,numpy.ndarray) or not numpy.size(md.basalforcings.geothermalflux,axis=0)==md.mesh.numberofvertices:
++			md.basalforcings.geothermalflux=numpy.zeros((md.mesh.numberofvertices,1))
++			md.basalforcings.geothermalflux[numpy.nonzero(md.mask.groundedice_levelset>0.)]=50.*10.**-3    #50mW/m2
++	else:
++		print("      no thermal boundary conditions created: no observed temperature found")
++
++	return md
++
+Index: ../trunk-jpl/src/py3/dev/devpath.py
+===================================================================
+--- ../trunk-jpl/src/py3/dev/devpath.py	(revision 0)
++++ ../trunk-jpl/src/py3/dev/devpath.py	(revision 19895)
+@@ -0,0 +1,42 @@
++#!/usr/bin/env python
++import os,sys
++import warnings
++
++#Recover ISSM_DIR and USERNAME
++ISSM_DIR = os.getenv('ISSM_DIRPY3')
++USERNAME = os.getenv('USER')
++JPL_SVN  = os.getenv('JPL_SVN')
++if(ISSM_DIR==None):
++	raise NameError('"ISSM_DIR" environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!')
++if(JPL_SVN==None):
++	warnings.warn('"JPL_SVN" environment variable is empty! add it to your .cshrc or .bashrc if you want to do distant computing')
++
++#Go through src/m and append any directory that contains a *.py file to PATH 
++for root,dirs,files in os.walk(ISSM_DIR+ '/src/py3'):
++	if '.svn' in dirs:
++		dirs.remove('.svn')
++	for file in files:
++		if file.find(".py") != -1:
++			if file.find(".pyc") == -1:
++				if root not in sys.path:
++					sys.path.append(root)
++				
++sys.path.append(ISSM_DIR + '/lib')
++sys.path.append(ISSM_DIR + '/src/wrappers/python/.libs')
++# If using clusters, we need to have the path to the cluster settings directory
++if(JPL_SVN!=None):
++	if os.path.exists(JPL_SVN + '/usr/' + USERNAME):
++		sys.path.append(JPL_SVN + '/usr/' + USERNAME)
++	else:
++		raise NameError ('cluster settings should be in, '+ JPL_SVN +'/usr/' + USERNAME)
++
++#Manual imports for commonly used functions
++#from plotmodel import plotmodel
++
++#c = get_ipython().config
++#c.InteractiveShellApp.exec_lines = []
++#c.InteractiveShellApp.exec_lines.append('%load_ext autoreload')
++#c.InteractiveShellApp.exec_lines.append('%autoreload 2')
++#c.InteractiveShellApp.exec_lines.append('print "Warning: disable autoreload in startup.py to improve performance." ')
++
++print("\n  ISSM development path correctly loaded\n\n")
+Index: ../trunk-jpl/src/py3/dev/issmversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/dev/issmversion.py	(revision 0)
++++ ../trunk-jpl/src/py3/dev/issmversion.py	(revision 19895)
+@@ -0,0 +1,20 @@
++from IssmConfig import IssmConfig
++
++def issmversion():
++	"""
++	ISSMVERSION - display ISSM version
++
++		Usage:
++			issmversion()
++	"""
++
++
++print(' ')
++print(IssmConfig('PACKAGE_NAME')[0]+' Version '+IssmConfig('PACKAGE_VERSION')[0])
++print('(website: '+IssmConfig('PACKAGE_URL')[0]+' contact: '+IssmConfig('PACKAGE_BUGREPORT')[0]+')')
++print(' ')
++print('Build date: '+IssmConfig('PACKAGE_BUILD_DATE')[0])
++print('Copyright (c) 2009-2015 California Institute of Technology')
++print(' ')
++print('    to get started type: issmdoc')
++print(' ')
+Index: ../trunk-jpl/src/py3/parameterization/parameterize.py
+===================================================================
+--- ../trunk-jpl/src/py3/parameterization/parameterize.py	(revision 0)
++++ ../trunk-jpl/src/py3/parameterization/parameterize.py	(revision 19895)
+@@ -0,0 +1,33 @@
++import os
++import datetime
++
++def parameterize(md,parametername):
++	"""
++	PARAMETERIZE - parameterize a model
++
++	   from a parameter python file, start filling in all the model fields that were not 
++	   filled in by the mesh.py and mask.py model methods.
++	   Warning: the parameter file must be able to be run in Python
++
++	   Usage:
++	      md=parameterize(md,parametername)
++
++	   Example:
++	      md=parameterize(md,'Square.par');
++	"""
++
++	#some checks
++	if not os.path.exists(parametername):
++		raise IOError("parameterize error message: file '%s' not found!" % parametername)
++
++	#Try and run parameter file.
++	exec(compile(open(parametername).read(), parametername, 'exec'))
++
++	#Name and notes
++	if not md.miscellaneous.name:
++		md.miscellaneous.name=os.path.basename(parametername).split('.')[0]
++
++	md.miscellaneous.notes="Model created by using parameter file: '%s' on: %s." % (parametername,datetime.datetime.strftime(datetime.datetime.now(),'%c'))
++
++	return md
++
+Index: ../trunk-jpl/src/py3/parameterization/setflowequation.py
+===================================================================
+--- ../trunk-jpl/src/py3/parameterization/setflowequation.py	(revision 0)
++++ ../trunk-jpl/src/py3/parameterization/setflowequation.py	(revision 19895)
+@@ -0,0 +1,289 @@
++import numpy
++from model import model
++from pairoptions import pairoptions
++import MatlabFuncs as m
++import PythonFuncs as p
++from FlagElements import FlagElements
++
++def setflowequation(md,**kwargs):
++	"""
++	SETFLOWEQUATION - associate a solution type to each element
++
++	   This routine works like plotmodel: it works with an even number of inputs
++	   'SIA','SSA','HO','L1L2','FS' and 'fill' are the possible options
++	   that must be followed by the corresponding exp file or flags list
++	   It can either be a domain file (argus type, .exp extension), or an array of element flags. 
++	   If user wants every element outside the domain to be 
++	   setflowequationd, add '~' to the name of the domain file (ex: '~HO.exp');
++	   an empty string '' will be considered as an empty domain
++	   a string 'all' will be considered as the entire domain
++	   You can specify the type of coupling, 'penalties' or 'tiling', to use with the input 'coupling'
++
++	   Usage:
++	      md=setflowequation(md,varargin)
++
++	   Example:
++	      md=setflowequation(md,'HO','HO.exp',fill','SIA','coupling','tiling');
++	"""
++
++	#some checks on list of arguments
++	if not isinstance(md,model) or not len(kwargs):
++		raise TypeError("setflowequation error message")
++
++	#process options
++	options=pairoptions(**kwargs)
++	print(options)
++#	options=deleteduplicates(options,1);
++
++	#Find_out what kind of coupling to use
++	coupling_method=options.getfieldvalue('coupling','tiling')
++	if coupling_method is not 'tiling' or not 'penalties':
++		raise TypeError("coupling type can only be: tiling or penalties")
++
++	#recover elements distribution
++	SIAflag   = FlagElements(md,options.getfieldvalue('SIA',''))
++	SSAflag = FlagElements(md,options.getfieldvalue('SSA',''))
++	HOflag   = FlagElements(md,options.getfieldvalue('HO',''))
++	L1L2flag     = FlagElements(md,options.getfieldvalue('L1L2',''))
++	FSflag   = FlagElements(md,options.getfieldvalue('FS',''))
++	filltype     = options.getfieldvalue('fill','none')
++
++	#Flag the elements that have not been flagged as filltype
++	if filltype is 'SIA':
++		SIAflag[numpy.nonzero(numpy.logical_not(p.logical_or_n(SSAflag,HOflag)))]=True
++	elif filltype is 'SSA':
++		SSAflag[numpy.nonzero(numpy.logical_not(p.logical_or_n(SIAflag,HOflag,FSflag)))]=True
++	elif filltype is 'HO':
++		HOflag[numpy.nonzero(numpy.logical_not(p.logical_or_n(SIAflag,SSAflag,FSflag)))]=True
++
++	#check that each element has at least one flag
++	if not any(SIAflag+SSAflag+L1L2flag+HOflag+FSflag):
++		raise TypeError("elements type not assigned, supported models are 'SIA','SSA','HO' and 'FS'")
++
++	#check that each element has only one flag
++	if any(SIAflag+SSAflag+L1L2flag+HOflag+FSflag>1):
++		print("setflowequation warning message: some elements have several types, higher order type is used for them")
++		SIAflag[numpy.nonzero(numpy.logical_and(SIAflag,SSAflag))]=False
++		SIAflag[numpy.nonzero(numpy.logical_and(SIAflag,HOflag))]=False
++		SSAflag[numpy.nonzero(numpy.logical_and(SSAflag,HOflag))]=False
++
++	#FS can only be used alone for now:
++	if any(FSflag) and any(SIAflag):
++		raise TypeError("FS cannot be used with any other model for now, put FS everywhere")
++
++	#Initialize node fields
++	nodeonSIA=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonSIA[md.mesh.elements[numpy.nonzero(SIAflag),:]-1]=True
++	nodeonSSA=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonSSA[md.mesh.elements[numpy.nonzero(SSAflag),:]-1]=True
++	nodeonL1L2=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonL1L2[md.mesh.elements[numpy.nonzero(L1L2flag),:]-1]=True
++	nodeonHO=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonHO[md.mesh.elements[numpy.nonzero(HOflag),:]-1]=True
++	nodeonFS=numpy.zeros(md.mesh.numberofvertices,bool)
++	noneflag=numpy.zeros(md.mesh.numberofelements,bool)
++
++	#First modify FSflag to get rid of elements contrained everywhere (spc + border with HO or SSA)
++	if any(FSflag):
++#		fullspcnodes=double((~isnan(md.stressbalance.spcvx)+~isnan(md.stressbalance.spcvy)+~isnan(md.stressbalance.spcvz))==3 | (nodeonHO & nodeonFS));         %find all the nodes on the boundary of the domain without icefront
++		fullspcnodes=numpy.logical_or(numpy.logical_not(numpy.isnan(md.stressbalance.spcvx)).astype(int)+ \
++		                              numpy.logical_not(numpy.isnan(md.stressbalance.spcvy)).astype(int)+ \
++		                              numpy.logical_not(numpy.isnan(md.stressbalance.spcvz)).astype(int)==3, \
++		                              numpy.logical_and(nodeonHO,nodeonFS)).astype(int)    #find all the nodes on the boundary of the domain without icefront
++#		fullspcelems=double(sum(fullspcnodes(md.mesh.elements),2)==6);         %find all the nodes on the boundary of the domain without icefront
++		fullspcelems=(numpy.sum(fullspcnodes[md.mesh.elements-1],axis=1)==6).astype(int)    #find all the nodes on the boundary of the domain without icefront
++		FSflag[numpy.nonzero(fullspcelems.reshape(-1))]=False
++		nodeonFS[md.mesh.elements[numpy.nonzero(FSflag),:]-1]=True
++
++	#Then complete with NoneApproximation or the other model used if there is no FS
++	if any(FSflag): 
++		if   any(HOflag):    #fill with HO
++			HOflag[numpy.logical_not(FSflag)]=True
++			nodeonHO[md.mesh.elements[numpy.nonzero(HOflag),:]-1]=True
++		elif any(SSAflag):    #fill with SSA
++			SSAflag[numpy.logical_not(FSflag)]=True
++			nodeonSSA[md.mesh.elements[numpy.nonzero(SSAflag),:]-1]=True
++		else:    #fill with none 
++			noneflag[numpy.nonzero(numpy.logical_not(FSflag))]=True
++
++	#Now take care of the coupling between SSA and HO
++	md.stressbalance.vertex_pairing=numpy.array([])
++	nodeonSSAHO=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonHOFS=numpy.zeros(md.mesh.numberofvertices,bool)
++	nodeonSSAFS=numpy.zeros(md.mesh.numberofvertices,bool)
++	SSAHOflag=numpy.zeros(md.mesh.numberofelements,bool)
++	SSAFSflag=numpy.zeros(md.mesh.numberofelements,bool)
++	HOFSflag=numpy.zeros(md.mesh.numberofelements,bool)
++	if coupling_method is 'penalties':
++		#Create the border nodes between HO and SSA and extrude them
++		numnodes2d=md.mesh.numberofvertices2d
++		numlayers=md.mesh.numberoflayers
++		bordernodes2d=numpy.nonzero(numpy.logical_and(nodeonHO[0:numnodes2d],nodeonSSA[0:numnodes2d]))[0]+1    #Nodes connected to two different types of elements
++
++		#initialize and fill in penalties structure
++		if numpy.all(numpy.logical_not(numpy.isnan(bordernodes2d))):
++			penalties=numpy.zeros((0,2))
++			for	i in range(1,numlayers):
++				penalties=numpy.vstack((penalties,numpy.hstack((bordernodes2d.reshape(-1,1),bordernodes2d.reshape(-1,1)+md.mesh.numberofvertices2d*(i)))))
++			md.stressbalance.vertex_pairing=penalties
++
++	elif coupling_method is 'tiling':
++		if   any(SSAflag) and any(HOflag):    #coupling SSA HO
++			#Find node at the border
++			nodeonSSAHO[numpy.nonzero(numpy.logical_and(nodeonSSA,nodeonHO))]=True
++			#SSA elements in contact with this layer become SSAHO elements
++			matrixelements=m.ismember(md.mesh.elements-1,numpy.nonzero(nodeonSSAHO)[0])
++			commonelements=numpy.sum(matrixelements,axis=1)!=0
++			commonelements[numpy.nonzero(HOflag)]=False    #only one layer: the elements previously in SSA
++			SSAflag[numpy.nonzero(commonelements)]=False    #these elements are now SSAHOelements
++			SSAHOflag[numpy.nonzero(commonelements)]=True
++			nodeonSSA[:]=False
++			nodeonSSA[md.mesh.elements[numpy.nonzero(SSAflag),:]-1]=True
++
++			#rule out elements that don't touch the 2 boundaries
++			pos=numpy.nonzero(SSAHOflag)[0]
++			elist=numpy.zeros(numpy.size(pos),dtype=int)
++			elist = elist + numpy.sum(nodeonSSA[md.mesh.elements[pos,:]-1],axis=1).astype(bool)
++			elist = elist - numpy.sum(nodeonHO[md.mesh.elements[pos,:]-1]  ,axis=1).astype(bool)
++			pos1=numpy.nonzero(elist==1)[0]
++			SSAflag[pos[pos1]]=True
++			SSAHOflag[pos[pos1]]=False
++			pos2=numpy.nonzero(elist==-1)[0]
++			HOflag[pos[pos2]]=True
++			SSAHOflag[pos[pos2]]=False
++
++			#Recompute nodes associated to these elements
++			nodeonSSA[:]=False
++			nodeonSSA[md.mesh.elements[numpy.nonzero(SSAflag),:]-1]=True
++			nodeonHO[:]=False
++			nodeonHO[md.mesh.elements[numpy.nonzero(HOflag),:]-1]=True
++			nodeonSSAHO[:]=False
++			nodeonSSAHO[md.mesh.elements[numpy.nonzero(SSAHOflag),:]-1]=True
++
++		elif any(HOflag) and any(FSflag):    #coupling HO FS
++			#Find node at the border
++			nodeonHOFS[numpy.nonzero(numpy.logical_and(nodeonHO,nodeonFS))]=True
++			#FS elements in contact with this layer become HOFS elements
++			matrixelements=m.ismember(md.mesh.elements-1,numpy.nonzero(nodeonHOFS)[0])
++			commonelements=numpy.sum(matrixelements,axis=1)!=0
++			commonelements[numpy.nonzero(HOflag)]=False    #only one layer: the elements previously in SSA
++			FSflag[numpy.nonzero(commonelements)]=False    #these elements are now SSAHOelements
++			HOFSflag[numpy.nonzero(commonelements)]=True
++			nodeonFS=numpy.zeros(md.mesh.numberofvertices,bool)
++			nodeonFS[md.mesh.elements[numpy.nonzero(FSflag),:]-1]=True
++
++			#rule out elements that don't touch the 2 boundaries
++			pos=numpy.nonzero(HOFSflag)[0]
++			elist=numpy.zeros(numpy.size(pos),dtype=int)
++			elist = elist + numpy.sum(nodeonFS[md.mesh.elements[pos,:]-1],axis=1).astype(bool)
++			elist = elist - numpy.sum(nodeonHO[md.mesh.elements[pos,:]-1],axis=1).astype(bool)
++			pos1=numpy.nonzero(elist==1)[0]
++			FSflag[pos[pos1]]=True
++			HOFSflag[pos[pos1]]=False
++			pos2=numpy.nonzero(elist==-1)[0]
++			HOflag[pos[pos2]]=True
++			HOFSflag[pos[pos2]]=False
++
++			#Recompute nodes associated to these elements
++			nodeonFS[:]=False
++			nodeonFS[md.mesh.elements[numpy.nonzero(FSflag),:]-1]=True
++			nodeonHO[:]=False
++			nodeonHO[md.mesh.elements[numpy.nonzero(HOflag),:]-1]=True
++			nodeonHOFS[:]=False
++			nodeonHOFS[md.mesh.elements[numpy.nonzero(HOFSflag),:]-1]=True
++
++		elif any(FSflag) and any(SSAflag):
++			#Find node at the border
++			nodeonSSAFS[numpy.nonzero(numpy.logical_and(nodeonSSA,nodeonFS))]=True
++			#FS elements in contact with this layer become SSAFS elements
++			matrixelements=m.ismember(md.mesh.elements-1,numpy.nonzero(nodeonSSAFS)[0])
++			commonelements=numpy.sum(matrixelements,axis=1)!=0
++			commonelements[numpy.nonzero(SSAflag)]=False    #only one layer: the elements previously in SSA
++			FSflag[numpy.nonzero(commonelements)]=False    #these elements are now SSASSAelements
++			SSAFSflag[numpy.nonzero(commonelements)]=True
++			nodeonFS=numpy.zeros(md.mesh.numberofvertices,bool)
++			nodeonFS[md.mesh.elements[numpy.nonzero(FSflag),:]-1]=True
++
++			#rule out elements that don't touch the 2 boundaries
++			pos=numpy.nonzero(SSAFSflag)[0]
++			elist=numpy.zeros(numpy.size(pos),dtype=int)
++			elist = elist + numpy.sum(nodeonSSA[md.mesh.elements[pos,:]-1],axis=1).astype(bool)
++			elist = elist - numpy.sum(nodeonFS[md.mesh.elements[pos,:]-1]  ,axis=1).astype(bool)
++			pos1=numpy.nonzero(elist==1)[0]
++			SSAflag[pos[pos1]]=True
++			SSAFSflag[pos[pos1]]=False
++			pos2=numpy.nonzero(elist==-1)[0]
++			FSflag[pos[pos2]]=True
++			SSAFSflag[pos[pos2]]=False
++
++			#Recompute nodes associated to these elements
++			nodeonSSA[:]=False
++			nodeonSSA[md.mesh.elements[numpy.nonzero(SSAflag),:]-1]=True
++			nodeonFS[:]=False
++			nodeonFS[md.mesh.elements[numpy.nonzero(FSflag),:]-1]=True
++			nodeonSSAFS[:]=False
++			nodeonSSAFS[md.mesh.elements[numpy.nonzero(SSAFSflag),:]-1]=True
++
++		elif any(FSflag) and any(SIAflag):
++			raise TypeError("type of coupling not supported yet")
++
++	#Create SSAHOApproximation where needed
++	md.flowequation.element_equation=numpy.zeros(md.mesh.numberofelements,int)
++	md.flowequation.element_equation[numpy.nonzero(noneflag)]=0
++	md.flowequation.element_equation[numpy.nonzero(SIAflag)]=1
++	md.flowequation.element_equation[numpy.nonzero(SSAflag)]=2
++	md.flowequation.element_equation[numpy.nonzero(L1L2flag)]=3
++	md.flowequation.element_equation[numpy.nonzero(HOflag)]=4
++	md.flowequation.element_equation[numpy.nonzero(FSflag)]=5
++	md.flowequation.element_equation[numpy.nonzero(SSAHOflag)]=6
++	md.flowequation.element_equation[numpy.nonzero(SSAFSflag)]=7
++	md.flowequation.element_equation[numpy.nonzero(HOFSflag)]=8
++
++	#border
++	md.flowequation.borderHO=nodeonHO
++	md.flowequation.borderSSA=nodeonSSA
++	md.flowequation.borderFS=nodeonFS
++
++	#Create vertices_type
++	md.flowequation.vertex_equation=numpy.zeros(md.mesh.numberofvertices,int)
++	pos=numpy.nonzero(nodeonSSA)
++	md.flowequation.vertex_equation[pos]=2
++	pos=numpy.nonzero(nodeonL1L2)
++	md.flowequation.vertex_equation[pos]=3
++	pos=numpy.nonzero(nodeonHO)
++	md.flowequation.vertex_equation[pos]=4
++	pos=numpy.nonzero(nodeonFS)
++	md.flowequation.vertex_equation[pos]=5
++	#DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority)
++	pos=numpy.nonzero(nodeonSIA)
++	md.flowequation.vertex_equation[pos]=1
++	if any(FSflag):
++		pos=numpy.nonzero(numpy.logical_not(nodeonFS))
++		if not (any(HOflag) or any(SSAflag)):
++			md.flowequation.vertex_equation[pos]=0
++	pos=numpy.nonzero(nodeonSSAHO)
++	md.flowequation.vertex_equation[pos]=6
++	pos=numpy.nonzero(nodeonHOFS)
++	md.flowequation.vertex_equation[pos]=7
++	pos=numpy.nonzero(nodeonSSAFS)
++	md.flowequation.vertex_equation[pos]=8
++
++	#figure out solution types
++	md.flowequation.isSIA=any(md.flowequation.element_equation==1)
++	md.flowequation.isSSA=any(md.flowequation.element_equation==2)
++	md.flowequation.isL1L2=any(md.flowequation.element_equation==3)
++	md.flowequation.isHO=any(md.flowequation.element_equation==4)
++	md.flowequation.isFS=any(md.flowequation.element_equation==5)
++
++	return md
++
++	#Check that tiling can work:
++	if any(md.flowequation.borderSSA) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderSSA !=1):
++		raise TypeError("error coupling domain too irregular")
++	if any(md.flowequation.borderSSA) and any(md.flowequation.borderFS) and any(md.flowequation.borderFS + md.flowequation.borderSSA !=1):
++		raise TypeError("error coupling domain too irregular")
++	if any(md.flowequation.borderFS) and any(md.flowequation.borderHO) and any(md.flowequation.borderHO + md.flowequation.borderFS !=1):
++		raise TypeError("error coupling domain too irregular")
++
++	return md
++
+Index: ../trunk-jpl/src/py3/parameterization/sethydrostaticmask.py
+===================================================================
+--- ../trunk-jpl/src/py3/parameterization/sethydrostaticmask.py	(revision 0)
++++ ../trunk-jpl/src/py3/parameterization/sethydrostaticmask.py	(revision 19895)
+@@ -0,0 +1,34 @@
++import numpy
++import os
++from model import model
++from FlagElements import FlagElements
++from ContourToMesh import ContourToMesh
++
++def setmask(md)
++	"""
++	SETHYDROSTATICMASK - establish groundedice_levelset field
++
++   Determines grounded and floating ice position based on 
++   md.geometry.bed and md.geometry.thickness
++
++   Usage:
++      md=sethydrostaticmask(md)
++
++   Examples:
++      md=sethydrostaticmask(md);
++   """
++
++	if numpy.size(md.geometry.bed,axis=0)!=md.mesh.numberofvertices or numpy.size(md.geometry.base,axis=0)!=md.mesh.numberofvertices or numpy.size(md.geometry.thickness,axis=0)!=md.mesh.numberofvertices:
++		raise IOError("hydrostaticmask error message: fields in md.geometry do not have the right size.")
++
++   # grounded ice level set
++   md.mask.groundedice_levelset=md.geometry.thickness+md.geometry.bed*md.materials.rho_water/md.materials.rho_ice
++
++   #Check consistency of geometry
++	if any(md.geometry.base[numpy.nonzero(md.mask.groundedice_levelset>0.)]!=md.geometry.bed[numpy.nonzero(md.mask.groundedice_levelset>0.)]):
++	   print "WARNING: md.geometry.bed and md.geometry.base not equal on grounded ice"
++
++	if any(md.geometry.base[numpy.nonzero(md.mask.groundedice_levelset<=0.)]<md.geometry.bed[numpy.nonzero(md.mask.groundedice_levelset<=0.)]):
++		print "WARNING: md.geometry.base < md.geometry.bed on floating ice"
++
++	return md
+Index: ../trunk-jpl/src/py3/parameterization/contourenvelope.py
+===================================================================
+--- ../trunk-jpl/src/py3/parameterization/contourenvelope.py	(revision 0)
++++ ../trunk-jpl/src/py3/parameterization/contourenvelope.py	(revision 19895)
+@@ -0,0 +1,135 @@
++import os.path
++import numpy
++import copy
++from NodeConnectivity import NodeConnectivity
++from ElementConnectivity import ElementConnectivity
++from mesh2d import mesh2d
++from mesh3dprisms import mesh3dprisms
++import MatlabFuncs as m
++
++def contourenvelope(md,*args):
++	"""
++	CONTOURENVELOPE - build a set of segments enveloping a contour .exp
++
++	   Usage:
++	      segments=contourenvelope(md,varargin)
++
++	   Example:
++	      segments=contourenvelope(md,'Stream.exp');
++	      segments=contourenvelope(md);
++	"""
++
++	#some checks
++	if len(args)>1:
++		raise RuntimeError("contourenvelope error message: bad usage")
++
++	if len(args)==1:
++		flags=args[0]
++
++		if   isinstance(flags,str):
++			file=flags
++			if not os.path.exists(file):
++				raise IOError("contourenvelope error message: file '%s' not found" % file)
++			isfile=1
++		elif isinstance(flags,(bool,int,float)):
++			#do nothing for now
++			isfile=0
++		else:
++			raise TypeError("contourenvelope error message:  second argument should be a file or an elements flag")
++
++	#Now, build the connectivity tables for this mesh.
++	#Computing connectivity
++	if numpy.size(md.mesh.vertexconnectivity,axis=0)!=md.mesh.numberofvertices and numpy.size(md.mesh.vertexconnectivity,axis=0)!=md.mesh.numberofvertices2d:
++		[md.mesh.vertexconnectivity]=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices)
++	if numpy.size(md.mesh.elementconnectivity,axis=0)!=md.mesh.numberofelements and numpy.size(md.mesh.elementconnectivity,axis=0)!=md.mesh.numberofelements2d:
++		[md.mesh.elementconnectivity]=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity)
++
++	#get nodes inside profile
++	elementconnectivity=copy.deepcopy(md.mesh.elementconnectivity)
++	if md.mesh.dimension()==2:
++		elements=copy.deepcopy(md.mesh.elements)
++		x=copy.deepcopy(md.mesh.x)
++		y=copy.deepcopy(md.mesh.y)
++		numberofvertices=copy.deepcopy(md.mesh.numberofvertices)
++		numberofelements=copy.deepcopy(md.mesh.numberofelements)
++	else:
++		elements=copy.deepcopy(md.mesh.elements2d)
++		x=copy.deepcopy(md.mesh.x2d)
++		y=copy.deepcopy(md.mesh.y2d)
++		numberofvertices=copy.deepcopy(md.mesh.numberofvertices2d)
++		numberofelements=copy.deepcopy(md.mesh.numberofelements2d)
++
++	if len(args)==1:
++
++		if isfile:
++			#get flag list of elements and nodes inside the contour
++			nodein=ContourToMesh(elements,x,y,file,'node',1)
++			elemin=(numpy.sum(nodein(elements),axis=1)==numpy.size(elements,axis=1))
++			#modify element connectivity
++			elemout=numpy.nonzero(numpy.logical_not(elemin))[0]
++			elementconnectivity[elemout,:]=0
++			elementconnectivity[numpy.nonzero(m.ismember(elementconnectivity,elemout+1))]=0
++		else:
++			#get flag list of elements and nodes inside the contour
++			nodein=numpy.zeros(numberofvertices)
++			elemin=numpy.zeros(numberofelements)
++
++			pos=numpy.nonzero(flags)
++			elemin[pos]=1
++			nodein[elements[pos,:]-1]=1
++
++			#modify element connectivity
++			elemout=numpy.nonzero(numpy.logical_not(elemin))[0]
++			elementconnectivity[elemout,:]=0
++			elementconnectivity[numpy.nonzero(m.ismember(elementconnectivity,elemout+1))]=0
++
++	#Find element on boundary
++	#First: find elements on the boundary of the domain
++	flag=copy.deepcopy(elementconnectivity)
++	if len(args)==1:
++		flag[numpy.nonzero(flag)]=elemin[flag[numpy.nonzero(flag)]]
++	elementonboundary=numpy.logical_and(numpy.prod(flag,axis=1)==0,numpy.sum(flag,axis=1)>0)
++
++	#Find segments on boundary
++	pos=numpy.nonzero(elementonboundary)[0]
++	num_segments=numpy.size(pos)
++	segments=numpy.zeros((num_segments*3,3),int)
++	count=0
++
++	for el1 in pos:
++		els2=elementconnectivity[el1,numpy.nonzero(elementconnectivity[el1,:])[0]]-1
++		if numpy.size(els2)>1:
++			flag=numpy.intersect1d(numpy.intersect1d(elements[els2[0],:],elements[els2[1],:]),elements[el1,:])
++			nods1=elements[el1,:]
++			nods1=numpy.delete(nods1,numpy.nonzero(nods1==flag))
++			segments[count,:]=[nods1[0],nods1[1],el1+1]
++
++			ord1=numpy.nonzero(nods1[0]==elements[el1,:])[0][0]
++			ord2=numpy.nonzero(nods1[1]==elements[el1,:])[0][0]
++
++			#swap segment nodes if necessary
++			if ( (ord1==0 and ord2==1) or (ord1==1 and ord2==2) or (ord1==2 and ord2==0) ):
++				temp=segments[count,0]
++				segments[count,0]=segments[count,1]
++				segments[count,1]=temp
++			segments[count,0:2]=numpy.flipud(segments[count,0:2])
++			count+=1
++		else:
++			nods1=elements[el1,:]
++			flag=numpy.setdiff1d(nods1,elements[els2,:])
++			for j in range(0,3):
++				nods=numpy.delete(nods1,j)
++				if numpy.any(m.ismember(flag,nods)):
++					segments[count,:]=[nods[0],nods[1],el1+1]
++					ord1=numpy.nonzero(nods[0]==elements[el1,:])[0][0]
++					ord2=numpy.nonzero(nods[1]==elements[el1,:])[0][0]
++					if ( (ord1==0 and ord2==1) or (ord1==1 and ord2==2) or (ord1==2 and ord2==0) ):
++						temp=segments[count,0]
++						segments[count,0]=segments[count,1]
++						segments[count,1]=temp
++					segments[count,0:2]=numpy.flipud(segments[count,0:2])
++					count+=1
++	segments=segments[0:count,:]
++
++	return segments
++
+Index: ../trunk-jpl/src/py3/parameterization/setmask.py
+===================================================================
+--- ../trunk-jpl/src/py3/parameterization/setmask.py	(revision 0)
++++ ../trunk-jpl/src/py3/parameterization/setmask.py	(revision 19895)
+@@ -0,0 +1,68 @@
++import numpy
++import os
++from model import model
++from FlagElements import FlagElements
++from pairoptions import pairoptions
++from ContourToMesh import ContourToMesh
++
++def setmask(md, floatingicename, groundedicename, **kwargs):
++	"""
++	SETMASK - establish boundaries between grounded and floating ice.
++
++	   By default, ice is considered grounded. The contour floatingicename defines nodes 
++	   for which ice is floating. The contour groundedicename defines nodes inside an floatingice, 
++	   that are grounded (ie: ice rises, islands, etc ...)
++	   All input files are in the Argus format (extension .exp).
++
++	   Usage:
++	      md=setmask(md,floatingicename,groundedicename)
++
++	   Examples:
++	      md=setmask(md,'all','');
++	      md=setmask(md,'Iceshelves.exp','Islands.exp');
++	"""
++	#some checks on list of arguments
++	if not isinstance(md,model):
++		raise TypeError("setmask error message")
++
++	#process options
++	options=pairoptions(**kwargs)
++
++	#Get assigned fields
++	x = md.mesh.x
++	y = md.mesh.y
++	elements = md.mesh.elements
++
++	#Assign elementonfloatingice, elementongroundedice, vertexongroundedice and vertexonfloatingice. Only change at your own peril! This is synchronized heavily with the GroundingLineMigration module. {{{
++	elementonfloatingice = FlagElements(md, floatingicename)
++	elementongroundedice = FlagElements(md, groundedicename) 
++
++	#Because groundedice nodes and elements can be included into an floatingice, we need to update. Remember, all the previous 
++	#arrays come from domain outlines that can intersect one another: 
++
++	elementonfloatingice = numpy.logical_and(elementonfloatingice,numpy.logical_not(elementongroundedice))
++	elementongroundedice = numpy.logical_not(elementonfloatingice)
++
++	#the order here is important. we choose vertexongroundedice as default on the grounding line.
++	vertexonfloatingice = numpy.zeros(md.mesh.numberofvertices,'bool')
++	vertexongroundedice = numpy.zeros(md.mesh.numberofvertices,'bool')
++	vertexongroundedice[md.mesh.elements[numpy.nonzero(elementongroundedice),:]-1]=True
++	vertexonfloatingice[numpy.nonzero(numpy.logical_not(vertexongroundedice))]=True
++	#}}}
++
++	#level sets
++	md.mask.groundedice_levelset = -1.*numpy.ones(md.mesh.numberofvertices)
++	md.mask.groundedice_levelset[md.mesh.elements[numpy.nonzero(elementongroundedice),:]-1]=1.
++
++	if(len(kwargs)):
++		md.mask.ice_levelset = 1.*numpy.ones(md.mesh.numberofvertices)
++		icedomainfile = options.getfieldvalue('icedomain','none')
++		if not os.path.exists(icedomainfile):
++			raise IOError("setmask error message: ice domain file '%s' not found." % icedomainfile)
++		#use contourtomesh to set ice values inside ice domain
++		[vertexinsideicedomain,elementinsideicedomain]=ContourToMesh(elements,x,y,icedomainfile,'node',1)
++		md.mask.ice_levelset[numpy.nonzero(vertexinsideicedomain)[0]] = -1.
++	else:
++		md.mask.ice_levelset = -1.*numpy.ones(md.mesh.numberofvertices)
++
++	return md
+Index: ../trunk-jpl/src/py3/plot/checkplotoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/checkplotoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/checkplotoptions.py	(revision 19895)
+@@ -0,0 +1,168 @@
++import numpy as npy
++
++def checkplotoptions(md,options):
++	'''
++	CHECKPLOTOPTIONS - build a structure that holds all plot options
++
++		Usage:
++			options=checkplotoptions(md,options)
++
++		See also: PLOTMODEL
++
++		NOTE: not fully implemented yet
++	'''
++
++
++	#units
++	if options.exist('unit'):
++		if 'km' in options.getfieldvalue('unit','km'):
++			options.changefieldvalue('unit',10**-3)
++		elif '100km' in options.getfieldvalue('unit','100km'):
++			options.changefieldvalue('unit',10**-5)
++	
++	#density
++	if options.exist('density'):
++		density=options.getfieldvalue('density')
++		options.changefieldvalue('density',abs(ceil(density)))
++		
++	#show section
++	if options.exist('showsection'):
++		if 'on' in options.getfieldvalue('showsection','on'):
++			options.changefieldvalue('showsection',4)
++			
++	#smooth values
++	if options.exist('smooth'):
++		if 'on' in options.getfieldvalue('smooth','on'):
++			options.changefieldvalue('smooth',0)
++
++	#contouronly values
++	if options.exist('contouronly'):
++		if 'on' in options.getfieldvalue('contouronly','on'):
++			options.changefieldvalue('contouronly',1)
++
++	#colorbar
++	if options.exist('colorbar'):
++		if 'on' in options.getfieldvalue('colorbar','on'):
++			options.changefieldvalue('colorbar',1)
++		elif 'off' in options.getfieldvalue('colorbar','off'):
++			options.changefieldvalue('colorbar',0)
++
++	#text
++	if options.exist('text'):
++
++		# text values (coerce to list for consistent functionality)
++		textlist=[]
++		text=options.getfieldvalue('text','default text')
++		textlist.extend([text] if isinstance(text,str) else text)
++		numtext=len(textlist)
++
++		# text position	
++		textpos=options.getfieldvalue('textposition',[0.5,0.5])
++		if not isinstance(textpos,list):
++			raise Exception('textposition should be passed as a list')
++			if any(isinstance(i,list) for i in textpos):
++				textx=[item[0] for item in textpos]
++				texty=[item[1] for item in textpos]
++			else:
++				textx=[textpos[0]]
++				texty=[textpos[1]]
++		if len(textx)!=numtext or len(texty)!=numtext:
++			raise Exception('textposition should contain one list of x,y vertices for every text instance')
++
++		# font size
++	if options.exist('textfontsize'):
++		textfontsize=options.getfieldvalue('textfontsize',12)
++		sizelist=[]
++		sizelist.extend(textsize if isinstance(textfontsize,list) else [textfontsize])
++	else:
++		sizelist=[12]
++	if len(sizelist)==1:
++		sizelist=npy.tile(sizelist,numtext)
++
++		# font color
++		if options.exist('textcolor'):
++			textcolor=options.getfieldvalue('textcolor','k')
++			colorlist=[]
++			colorlist.extend(textcolor if isinstance(textcolor,list) else [textcolor])
++		else:
++			colorlist=['k']
++		if len(colorlist)==1:
++			colorlist=npy.tile(colorlist,numtext)
++
++		# textweight
++		if options.exist('textweight'):
++			textweight=options.getfieldvalue('textweight')
++			weightlist=[]
++			weightlist.extend(textweight if isinstance(textweight,list) else [textweight])
++		else:
++			weightlist=['normal']
++		if len(weightlist)==1:
++			weightlist=npy.tile(weightlist,numtext)
++
++		# text rotation
++		if options.exist('textrotation'):
++			textrotation=options.getfieldvalue('textrotation',0)
++			rotationlist=[]
++			rotationlist.extend(textrotation if isinstance(textrotation,list) else [textrotation])
++		else:
++			rotationlist=[0]
++		if len(rotationlist)==1:
++			rotationlist=npy.tile(rotationlist,numtext)
++
++		options.changefieldvalue('text',textlist)
++		options.addfield('textx',textx)
++		options.addfield('texty',texty)
++		options.changefieldvalue('textfontsize',sizelist)
++		options.changefieldvalue('textcolor',colorlist)
++		options.changefieldvalue('textweight',weightlist)
++		options.changefieldvalue('textrotation',rotationlist)
++
++	#expdisp
++	expdispvaluesarray=[]
++	expstylevaluesarray=[]
++	expstylevalues=[]
++	if options.exist('expstyle'):
++		expstylevalues=options.getfieldvalue('expstyle')
++		if type(expstylevalues)==str:
++			expstylevalues=[expstylevalues]
++	if options.exist('expdisp'):
++		expdispvalues=options.getfieldvalue('expdisp')
++		if type(expdispvalues)==str:
++			expdispvalues=[expdispvalues]
++		for i in npy.arange(len(expdispvalues)):
++			expdispvaluesarray.append(expdispvalues[i])
++			if len(expstylevalues)>i:
++				expstylevaluesarray.append(expstylevalues[i])
++			else:
++				expstylevaluesarray.append('-k')
++
++	options.changefieldvalue('expstyle',expstylevaluesarray)
++	options.changefieldvalue('expdisp',expdispvaluesarray)
++
++	#latlonnumbering
++	if options.exist('latlonclick'):
++		if 'on' in options.getfieldvalue('latlonclick','on'):
++			options.changefieldvalue('latlonclick',1)
++
++	#northarrow
++	if options.exist('northarrow'):
++		if 'on' in options.getfieldvalue('northarrow','on'):
++			#default values
++			Lx=max(md.mesh.x)-min(md.mesh.x)
++			Ly=max(md.mesh.y)-min(md.mesh.y)
++			options.changefieldvalue('northarrow',[min(md.mesh.x)+1./6.*Lx, min(md.mesh.y)+5./6.*Ly, 1./15.*Ly, 0.25, 1./250.*Ly])
++
++	#scale ruler
++	if options.exist('scaleruler'):
++		if 'on' in options.exist('scaleruler','on'):
++			Lx=max(md.mesh.x)-min(md.mesh.x)
++			Ly=max(md.mesh.y)-min(md.mesh.y)
++			options.changefieldvalue('scaleruler',[min(md.mesh.x)+6./8.*Lx, min(md.mesh.y)+1./10.*Ly, 10**(ceil(log10(Lx)))/5, floor(Lx/100), 5])
++
++	#log scale
++	if options.exist('log'):
++		if options.exist('clim'):
++			options.changefieldvalue('clim',log(options.getfieldvalue('clim'))/log(options.getfieldvalue('log')))
++			options.changefieldvalue('cutoff',log(options.getfieldvalue('cutoff',1.5))/log(options.getfieldvalue('log')))
++
++	return options
+Index: ../trunk-jpl/src/py3/plot/colormaps/cmaptools.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/colormaps/cmaptools.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/colormaps/cmaptools.py	(revision 19895)
+@@ -0,0 +1,25 @@
++import numpy as npy
++
++try:
++	import matplotlib as mpl
++except ImportError:
++	print('cannot import matplotlib, no plotting capabilities enabled')
++
++def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100):
++	'''
++	truncate a colormap within normalized limits [0,1]
++
++	cmap - a matplotlib colormap
++	minval - minimum value, normalized, of cmap to be returned.
++	maxval - maximum value, normalized, of cmap to be returned.
++	n - number of levels to use in constructing the new colormap
++
++	Example:
++		newcmap=truncate_colormap(oldcmap,minval=0.2,maxval=0.8,n=128)
++
++	'''
++
++	new_cmap = mpl.colors.LinearSegmentedColormap.from_list('trunc({n},{a:.2f},{b:.2f})'.format(n=cmap.name,
++		a=minval, b=maxval), cmap(npy.linspace(minval, maxval, n)))
++	
++	return new_cmap
+Index: ../trunk-jpl/src/py3/plot/plot_manager.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_manager.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_manager.py	(revision 19895)
+@@ -0,0 +1,102 @@
++try:
++	import pylab as p
++	import matplotlib.pyplot as plt
++except ImportError:
++	print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")
++
++from checkplotoptions import checkplotoptions
++from plot_mesh import plot_mesh
++from processmesh import processmesh
++from processdata import processdata
++from plot_unit import plot_unit
++from applyoptions import applyoptions
++
++try:
++	from osgeo import gdal
++	overlaysupport=True
++except ImportError:
++	print('osgeo/gdal for python not installed, overlay plots are not enabled')
++	overlaysupport=False
++
++if overlaysupport:
++	from plot_overlay import plot_overlay
++
++def plot_manager(md,options,fig,ax):
++	'''
++	PLOT_MANAGER - distribute the plots called by plotmodel
++
++	'fig' is a handle to the figure instance created by plotmodel.
++
++	'ax' is a handle to the axes instance created by plotmodel.  This is
++	currently generated using matplotlib's AxesGrid toolkit.
++
++	Usage:
++		plot_manager(md,options,fig,ax);
++
++	See also: PLOTMODEL, PLOT_UNIT
++	'''
++
++	#parse options and get a structure of options
++	options=checkplotoptions(md,options)
++
++	#get data to be plotted
++	data=options.getfieldvalue('data');
++
++	#initialize plot handle variable
++	#handle=None
++
++	# initialize subplot
++	#p.subplot(nrows,ncols,i,aspect='equal')
++
++	##basemap plot
++	#if options.exist('basemap'):
++	#	plot_basemap(md,data,options,nrows,ncols,i)
++
++	#overlay plot
++	if options.exist('overlay') and overlaysupport:
++		plot_overlay(md,data,options,ax)
++		options.addfielddefault('alpha',0.5)
++		options.addfielddefault('xlim',[min(md.mesh.x),max(md.mesh.x)])
++		options.addfielddefault('ylim',[min(md.mesh.y),max(md.mesh.y)])
++
++	#figure out if this is a special plot
++	if isinstance(data,str):
++
++		# convert string to lower case for a case-insensitive comparison
++		if data.lower()=='mesh': 
++			plot_mesh(md,options,ax)
++			applyoptions(md,[],options,fig,ax)
++			fig.delaxes(fig.axes[1]) # hack to remove colorbar after the fact
++			return
++		elif data.lower()=='none':
++			print('no data provided to plot (TODO: write plot_none.py)')
++			applyoptions(md,[],options,fig,ax)
++			return
++		else:
++			print(("WARNING: '%s' is not implemented or is not a valid string for option 'data'" % data))
++
++	#elif data in vars(md):
++	#else:
++		#print "'data' not a string, plotting model properties yet to be implemented..."
++
++	#Gridded plot
++
++	#Section plot
++
++	#Profile plot
++
++	#process data and model
++	x,y,z,elements,is2d,isplanet=processmesh(md,data,options)
++	data2,datatype=processdata(md,data,options)
++
++	#standard plot
++	#if not handle:
++	#	p.subplot(nrows,ncols,i,aspect='equal')
++
++	#plot unit
++	plot_unit(x,y,z,elements,data2,is2d,isplanet,datatype,options,ax)
++
++	#apply all options
++	applyoptions(md,data2,options,fig,ax)
++	
++	#ground overlay on kml plot_unit
+Index: ../trunk-jpl/src/py3/plot/processdata.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/processdata.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/processdata.py	(revision 19895)
+@@ -0,0 +1,108 @@
++from math import isnan
++import numpy as npy
++
++def processdata(md,data,options):
++    """
++    PROCESSDATA - process data to be plotted
++    
++    	datatype = 1 -> elements
++    	datatype = 2 -> nodes
++    	datatype = 3 -> node quivers
++    	datatype = 4 -> patch
++    
++    	Usage:
++    		data,datatype=processdata(md,data,options);
++    
++    	See also: PLOTMODEL, PROCESSMESH
++    """
++    
++    #check format
++    if (len(data)==0 or (len(data)==1 and not isinstance(data,dict) and isnan(data).all())):
++        raise ValueError("processdata error message: 'data' provided is empty")
++    
++    #needed later on
++    if 'numberofvertices2d' in dir(md.mesh):
++    	numberofvertices2d=md.mesh.numberofvertices2d
++    	numberofelements2d=md.mesh.numberofelements2d
++    else:
++    	numberofvertices2d=npy.nan
++    	numberofelements2d=npy.nan
++    
++    procdata=npy.copy(data)
++    
++    #process patch
++    
++    #initialize datatype
++    datatype=0
++    
++    #get datasize
++    if npy.ndim(procdata)==1:
++    	datasize=npy.array([len(procdata),1])
++    else:
++    	datasize=npy.shape(procdata)
++        if len(datasize)>2:
++            raise ValueError('data passed to plotmodel has more than 2 dimensions; check that column vectors are rank-1')
++    
++    #process NaN's if any
++    nanfill=options.getfieldvalue('nan',-9999)
++    if npy.any(npy.isnan(procdata)):
++    	lb=npy.min(data[~npy.isnan(data)])
++    	ub=npy.max(data[~npy.isnan(data)])
++    	if lb==ub:
++    	    lb=lb-0.5
++    	    ub=ub+0.5
++    	    nanfill=lb-1
++    	procdata[npy.isnan(procdata)]=nanfill
++    	options.addfielddefault('clim',[lb,ub])
++    	options.addfielddefault('cmap_set_under','1')
++    	print(("WARNING: nan's treated as", nanfill, "by default.  Change using pairoption 'nan',nan_fill_value in plotmodel call"))
++    
++    #quiver plot
++    if datasize[1]>1 and datasize[0]!= md.mesh.numberofvertices+1:
++        if datasize[0]==md.mesh.numberofvertices and datasize[1]==2:
++            datatype=3
++        else:
++            raise ValueError('plotmodel error message: data should have two columns of length md.mesh.numberofvertices for a quiver plot')
++    
++    #non-patch processing 
++    
++    #element data
++    if datasize[0]==md.mesh.numberofelements and datasize[1]==1:
++    	
++    	#initialize datatype if non patch
++    	if datatype!=4 and datatype!=5:
++    	    datatype=1
++    
++    	#mask?
++    
++    	#log?
++    
++    #node data
++    if datasize[0]==md.mesh.numberofvertices and datasize[1]==1:
++    	datatype=2
++    
++    #spc time series? 
++    if datasize[0]==md.mesh.numberofvertices+1:
++    	datatype=2
++        spccol=options.getfieldvalue('spccol',0)
++        print('multiple-column spc field; specify column to plot using option "spccol"')
++        print(('column ', spccol, ' plotted for time: ', procdata[-1,spccol]))
++        procdata=procdata[0:-1,spccol]
++    
++    	#mask?
++    
++    	#log?
++    
++    #layer projection?
++    
++    #control arrow density if quiver plot
++    
++    #convert rank-2 array to rank-1
++    if npy.ndim(procdata)==2 and npy.shape(procdata)[1]==1:
++    	procdata=procdata.reshape(-1,)
++    
++    #if datatype is still zero, error out
++    if datatype==0:
++    	raise ValueError("processdata error: data provided not recognized or not supported")
++    else:
++    	return procdata, datatype
+Index: ../trunk-jpl/src/py3/plot/plot_mesh.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_mesh.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_mesh.py	(revision 19895)
+@@ -0,0 +1,29 @@
++try:
++	import pylab as p
++except ImportError:
++	print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")
++
++from processmesh import processmesh
++from applyoptions import applyoptions
++
++def plot_mesh(md,options,ax):
++	'''
++	PLOT_MESH - plot model mesh
++
++		Usage:
++			plot_mesh(md,options,nlines,ncols,i)
++
++		See also: PLOTMODEL
++	'''
++
++	x,y,z,elements,is2d,isplanet=processmesh(md,[],options)
++
++	if is2d:
++		ax.triplot(x,y,elements)
++	else:
++		print('WARNING: only 2D mesh plot is currently implemented')
++	
++	#apply options
++	options.addfielddefault('title','Mesh')
++	options.addfielddefault('colorbar','off')
++	options.addfielddefault('ticklabels','on')
+Index: ../trunk-jpl/src/py3/plot/processmesh.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/processmesh.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/processmesh.py	(revision 19895)
+@@ -0,0 +1,83 @@
++from math import isnan
++import MatlabFuncs as m
++import numpy as npy
++
++def processmesh(md,data,options):
++	"""
++	PROCESSMESH - process the mesh for plotting
++
++	Usage:
++		x,y,z,elements,is2d=processmech(md,data,options)
++
++	See also: PLOTMODEL, PROCESSDATA
++	"""
++
++	#some checks
++	if md.mesh.numberofvertices==0:
++		raise ValueError('processmesh error: mesh is empty')
++	if md.mesh.numberofvertices==md.mesh.numberofelements:
++		raise ValueError('processmesh error: the number of elements is the same as the number of nodes')
++
++	if len(data)==0 or not isinstance(data,dict):
++		
++		if 'latlon' not in options.getfieldvalue('coord','xy').lower(): #convert to lower case for comparison
++			x=md.mesh.x
++			if 'x2d' in dir(md.mesh): x2d=md.mesh.x2d
++			y=md.mesh.y
++			if 'y2d' in dir(md.mesh): y2d=md.mesh.x2d
++		else:
++			x=md.mesh.long
++			y=md.mesh.lat
++
++		if 'z' in dir(md.mesh):
++			z=md.mesh.z
++		else:
++			z=npy.zeros_like(md.mesh.x)
++		
++		if 'elements2d' in dir(md.mesh): 
++			elements2d=md.mesh.elements2d
++			elements2d=elements2d-1  # subtract one since python indexes from zero
++		elements=md.mesh.elements
++		elements=elements-1
++
++		#is it a 2D plot?
++		if md.mesh.dimension()==2:
++			is2d=1
++		else:
++			if options.getfieldvalue('layer',0)>=1:
++				is2d=1
++			else:
++				is2d=0
++
++		#layer projection?
++		if options.getfieldvalue('layer',0)>=1:
++			 if 'latlon' in options.getfieldvalue('coord','xy').lower():
++				 raise ValueError('processmesh error: cannot work with 3D mesh in lat-lon coords')
++			#we modify the mesh temporarily to a 2D mesh from which the 3D mesh was extruded
++			 x=x2d
++			 y=y2d
++			 z=zeros(size(x2d))
++			 elements=elements2d
++	
++	else:
++		#Process mesh for plotting 
++		if md.mesh.dimension()==2:
++			is2d=1
++		else:
++			# process polycollection here for 3D plot
++			is2d=0
++	
++	#units
++	if options.exist('unit'):
++		unit=options.getfieldvalue('unit')
++		x=x*unit
++		y=y*unit
++		z=z*unit
++
++	#is model a member of planet class? (workaround until planet class defined)
++	if md.__class__.__name__!='model':
++		isplanet=1
++	else:
++		isplanet=0
++
++	return x,y,z,elements,is2d,isplanet
+Index: ../trunk-jpl/src/py3/plot/writejsfield.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/writejsfield.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/writejsfield.py	(revision 19895)
+@@ -0,0 +1,26 @@
++import numpy
++def writejsfield(fid,name,variable,nods):
++#WRITEJSFIELD - write variable to javascript file 
++#
++#   Usage:
++#      writejsfield(fid,name,variable)
++#
++	#write array:
++	#if not isinstance(variable, list):
++	if type(variable[0])==numpy.float64:
++		fid.write('<!-- {0}{{{{{{-->\n'.format(name))
++		fid.write('{0}=['.format(name))
++		for i in range(0, nods-1):
++			fid.write('{0},'.format(variable[i]))
++		fid.write('{0}];\n'.format(variable[-1]))
++		fid.write('<!--}}}}}}-->\n')
++	else:
++		#multi-sized array: 
++		fid.write('<!-- {0}{{{{{{-->\n'.format(name))
++		fid.write('{0}=[]\n'.format(name))
++		for i in range(0, len(variable[2])):
++			fid.write('{0}["{1}"]=['.format(name,i))
++			for j in range(1, nods-1):
++				fid.write('{0},'.format(variable[j][i]))
++			fid.write('{0}];\n'.format(variable[-1][i]))
++		fid.write('<!--}}}}}}-->\n')
+Index: ../trunk-jpl/src/py3/plot/plot_unit.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_unit.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_unit.py	(revision 19895)
+@@ -0,0 +1,92 @@
++from cmaptools import truncate_colormap
++try:
++    import pylab as p
++    import matplotlib as mpl
++    import matplotlib.pyplot as plt
++    import numpy as npy
++except ImportError:
++    print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")
++
++def plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options,ax):
++    """
++    PLOT_UNIT - unit plot, display data
++    
++    	Usage:
++    		plot_unit(x,y,z,elements,data,is2d,isplanet,datatype,options)
++    
++    	See also: PLOTMODEL, PLOT_MANAGER
++    """
++    
++    #edgecolor
++    edgecolor=options.getfieldvalue('edgecolor','None')
++    
++    #number of colorlevels for plots
++    colorlevels=options.getfieldvalue('colorlevels',128)
++    
++    alpha=options.getfieldvalue('alpha',1)
++    
++    #colormap
++    # default sequential colormap
++    defaultmap=truncate_colormap(mpl.cm.gnuplot2,0.1,0.9,128)
++    cmap=options.getfieldvalue('colormap',defaultmap)
++    if options.exist('cmap_set_over'):
++        over=options.getfieldvalue('cmap_set_over','0.5')
++        cmap.set_over(over)
++    if options.exist('cmap_set_under'):
++        under=options.getfieldvalue('cmap_set_under','0.5')
++        cmap.set_under(under)
++    
++    #normalize colormap if clim/caxis specified
++    if options.exist('clim'):
++        lims=options.getfieldvalue('clim',[npy.amin(data),npy.amax(data)])
++    elif options.exist('caxis'):
++        lims=options.getfieldvalue('caxis',[npy.amin(data),npy.amax(data)])
++    else:
++        if npy.amin(data)==npy.amax(data):
++            lims=[npy.amin(data)-0.5,npy.amax(data)+0.5]
++        else:
++    	    lims=[npy.amin(data),npy.amax(data)]
++    norm = mpl.colors.Normalize(vmin=lims[0], vmax=lims[1])
++    if datatype==1:
++       #element plot
++        if is2d:
++    	    tri=ax.tripcolor(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,edgecolors=edgecolor)
++    	else:
++    	    raise ValueError('plot_unit error: 3D element plot not supported yet')
++    	return 
++    
++    elif datatype==2:
++    	#node plot
++    	if is2d:
++    	    tri=ax.tricontourf(x,y,elements,data,colorlevels,cmap=cmap,norm=norm,alpha=alpha,extend='both')
++    	    if edgecolor != 'None':
++    	        ax.triplot(x,y,elements,color=edgecolor)
++    	else:
++    	    raise ValueError('plot_unit error: 3D node plot not supported yet')
++    	return
++    
++    elif datatype==3:
++        vx=data[:,0]
++        vy=data[:,1]
++        #TODO write plot_quiver.py to handle this here
++        color=npy.sqrt(vx**2+vy**2)
++        scale=options.getfieldvalue('scale',1000)
++        width=options.getfieldvalue('width',0.005*(npy.amax(x)-npy.amin(y)))
++        headwidth=options.getfieldvalue('headwidth',3)
++        headlength=options.getfieldvalue('headlength',5)
++        Q=ax.quiver(x,y,vx,vy,color,cmap=cmap,norm=norm,scale=scale,
++                width=width,headwidth=headwidth,headlength=headlength)
++    	return
++    
++    elif datatype==4:
++    	#P1 patch plot
++    	print('plot_unit message: P1 patch plot not implemented yet')
++    	return
++    
++    elif datatype==5:
++    	print('plot_unit message: P0 patch plot not implemented yet')
++    	return
++    
++    else:
++    	raise ValueError('datatype=%d not supported' % datatype)
++    
+Index: ../trunk-jpl/src/py3/plot/plot_overlay.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_overlay.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_overlay.py	(revision 19895)
+@@ -0,0 +1,132 @@
++import numpy as npy
++from processmesh import processmesh
++from processdata import processdata
++from xy2ll import xy2ll
++import matplotlib.pyplot as plt
++import matplotlib as mpl
++try:
++    from mpl_toolkits.basemap import Basemap
++except ImportError:
++    print('Basemap toolkit not installed')
++
++import os
++
++try:
++        from osgeo import gdal
++except ImportError:
++	print('osgeo/gdal for python not installed, plot_overlay is disabled')
++
++
++def plot_overlay(md,data,options,ax):
++	'''
++	Function for plotting a georeferenced image.  This function is called
++	from within the plotmodel code.
++	'''
++
++	x,y,z,elements,is2d,isplanet=processmesh(md,[],options)
++
++	if data=='none' or data==None:
++		imageonly=1
++		data=npy.float('nan')*npy.ones((md.mesh.numberofvertices,))
++		datatype=1
++	else:
++		imageonly=0
++		data,datatype=processdata(md,data,options)
++
++	if not is2d:
++		raise Exception('overlay plot not supported for 3D meshes, project on a 2D layer first')
++
++	if not options.exist('geotiff_name'):
++		raise Exception('overlay error: provide geotiff_name with path to geotiff file')
++	geotiff=options.getfieldvalue('geotiff_name')
++
++	xlim=options.getfieldvalue('xlim',[min(md.mesh.x),max(md.mesh.x)])
++	ylim=options.getfieldvalue('ylim',[min(md.mesh.y),max(md.mesh.y)])
++
++	gtif=gdal.Open(geotiff)
++	trans=gtif.GetGeoTransform()
++	xmin=trans[0]
++	xmax=trans[0]+gtif.RasterXSize*trans[1]
++	ymin=trans[3]+gtif.RasterYSize*trans[5]
++	ymax=trans[3]
++	
++	# allow supplied geotiff to have limits smaller than basemap or model limits
++	x0=max(min(xlim),xmin)
++	x1=min(max(xlim),xmax)
++	y0=max(min(ylim),ymin)
++	y1=min(max(ylim),ymax)
++	inputname='temp.tif'
++	os.system('gdal_translate -quiet -projwin ' + str(x0) + ' ' + str(y1) + ' ' + str(x1) + ' ' + str(y0) + ' ' + geotiff + ' ' + inputname)
++	
++	gtif=gdal.Open(inputname)
++	arr=gtif.ReadAsArray()
++	#os.system('rm -rf ./temp.tif')
++	
++	if gtif.RasterCount>=3:  # RGB array
++		r=gtif.GetRasterBand(1).ReadAsArray()
++		g=gtif.GetRasterBand(2).ReadAsArray()
++		b=gtif.GetRasterBand(3).ReadAsArray()
++		arr=0.299*r+0.587*g+0.114*b
++
++	# normalize array
++	arr=arr/npy.float(npy.max(arr.ravel()))
++        arr=1.-arr # somehow the values got flipped
++
++	if options.getfieldvalue('overlayhist',0)==1:
++		ax=plt.gca()
++		num=2
++		while True:
++			if not plt.fignum_exists(num):
++				break
++			else:
++				num+=1
++		plt.figure(num)
++		plt.hist(arr.flatten(),bins=256,range=(0.,1.))
++		plt.title('histogram of overlay image, use for setting overlaylims')
++                plt.show()
++		plt.sca(ax) # return to original axes/figure
++		
++	# get parameters from cropped geotiff
++	trans=gtif.GetGeoTransform()
++	xmin=trans[0]
++	xmax=trans[0]+gtif.RasterXSize*trans[1]
++	ymin=trans[3]+gtif.RasterYSize*trans[5]
++	ymax=trans[3]
++	dx=trans[1]
++	dy=trans[5]	
++	
++	xarr=npy.arange(xmin,xmax,dx)
++	yarr=npy.arange(ymin,ymax,-dy) # -dy since origin='upper' (not sure how robust this is)
++	xg,yg=npy.meshgrid(xarr,yarr)
++	overlaylims=options.getfieldvalue('overlaylims',[min(arr.ravel()),max(arr.ravel())])
++	norm=mpl.colors.Normalize(vmin=overlaylims[0],vmax=overlaylims[1])
++
++	if options.exist('basemap'):
++		# create coordinate grid in map projection units (for plotting)
++		lat,lon=xy2ll(xlim,ylim,-1,0,71)
++                #plt.sca(ax)
++                width=xmax-xmin
++                height=ymax-ymin
++                lat_0,lon_0=xy2ll(xmin+width/2.,ymin+height/2.,-1,0,71)
++	        m=Basemap(projection='spstere',
++                        llcrnrlon=lon[0],llcrnrlat=lat[0],urcrnrlon=lon[1],urcrnrlat=lat[1],
++                        epsg=3031,
++                        resolution='c')
++                        #width=width,height=height,lon_0=lon_0,lat_0=lat_0,
++                        #lat_0=-90,lon_0=0,lat_ts=-71,
++                        #llcrnrx=x0,llcrnry=y0,urcrnrx=x1,urcrnry=y1)
++                #test
++                #m.ax=ax
++	        meridians=npy.arange(-180.,181.,1.)
++	        parallels=npy.arange(-80.,80.,1.)
++	        m.drawparallels(parallels,labels=[0,0,1,1]) # labels=[left,right,top,bottom]
++	        m.drawmeridians(meridians,labels=[1,1,0,0])
++                m.drawcoastlines()
++	        pc=m.pcolormesh(xg, yg, npy.flipud(arr), cmap=mpl.cm.Greys, norm=norm, ax=ax)
++
++	else:
++	        pc=ax.pcolormesh(xg, yg, npy.flipud(arr), cmap=mpl.cm.Greys, norm=norm)
++        
++	#rasterization? 
++	if options.getfieldvalue('rasterized',0):
++		pc.set_rasterized(True)
+Index: ../trunk-jpl/src/py3/plot/plotmodel.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plotmodel.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plotmodel.py	(revision 19895)
+@@ -0,0 +1,99 @@
++import numpy as npy
++from plotoptions import plotoptions
++
++try:
++	import pylab as p
++	import matplotlib.pyplot as plt
++	from mpl_toolkits.axes_grid1 import ImageGrid, AxesGrid
++except ImportError:
++	print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")
++
++from plot_manager import plot_manager
++from math import ceil, sqrt
++
++def plotmodel(md,*args):
++	'''
++	at command prompt, type 'plotdoc' for additional documentation
++	'''
++
++	#First process options 
++	options=plotoptions(*args)
++
++	#get number of subplots
++	subplotwidth=ceil(sqrt(options.numberofplots))
++	
++	#Get figure number and number of plots
++	figurenumber=options.figurenumber
++	numberofplots=options.numberofplots
++
++	#get hold
++	hold=options.list[0].getfieldvalue('hold',False)
++
++	#if nrows and ncols specified, then bypass
++	if options.list[0].exist('nrows'):
++		nrows=options.list[0].getfieldvalue('nrows')
++		nr=True
++	else:
++		nrows=npy.ceil(numberofplots/subplotwidth)
++		nr=False
++	
++	if options.list[0].exist('ncols'):
++		ncols=options.list[0].getfieldvalue('ncols')
++		nc=True
++	else:
++		ncols=int(subplotwidth)
++		nc=False
++	ncols=int(ncols)
++	nrows=int(nrows)
++	
++	#check that nrows and ncols were given at the same time!
++	if not nr==nc:
++		raise Exception('error: nrows and ncols need to be specified together, or not at all')
++	
++	#Go through plots
++	if numberofplots:
++		
++		#if plt.fignum_exists(figurenumber): 
++		#	plt.cla()
++
++		#if figsize specified
++		if options.list[0].exist('figsize'):
++			figsize=options.list[0].getfieldvalue('figsize')
++			fig=plt.figure(figurenumber,figsize=(figsize[0],figsize[1]),tight_layout=True)
++		else:
++			fig=plt.figure(figurenumber,tight_layout=True)
++		fig.clf()
++
++		# options needed to define plot grid
++		direction=options.list[0].getfieldvalue('direction','row') # row,column
++		axes_pad=options.list[0].getfieldvalue('axes_pad',0.25)
++		add_all=options.list[0].getfieldvalue('add_all',True) # True,False
++		share_all=options.list[0].getfieldvalue('share_all',True) # True,False
++		label_mode=options.list[0].getfieldvalue('label_mode','1') # 1,L,all
++		cbar_mode=options.list[0].getfieldvalue('cbar_mode','each') # none,single,each
++		cbar_location=options.list[0].getfieldvalue('cbar_location','right') # right,top
++		cbar_size=options.list[0].getfieldvalue('cbar_size','5%')
++		cbar_pad=options.list[0].getfieldvalue('cbar_pad','2.5%') # None or %
++		
++		axgrid=ImageGrid(fig, 111,
++				nrows_ncols=(nrows,ncols),
++				direction=direction,
++				axes_pad=axes_pad,
++				add_all=add_all,
++				share_all=share_all,
++				label_mode=label_mode,
++				cbar_mode=cbar_mode,
++				cbar_location=cbar_location,
++				cbar_size=cbar_size,
++				cbar_pad=cbar_pad
++				)
++
++		if cbar_mode=='none':
++			for ax in axgrid.cbar_axes: fig._axstack.remove(ax)
++
++		for i in range(numberofplots):
++			plot_manager(options.list[i].getfieldvalue('model',md),options.list[i],fig,axgrid[i])
++
++		fig.show()
++	else:
++		raise Exception('plotmodel error message: no output data found.')
+Index: ../trunk-jpl/src/py3/plot/applyoptions.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/applyoptions.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/applyoptions.py	(revision 19895)
+@@ -0,0 +1,315 @@
++import numpy as npy
++from cmaptools import truncate_colormap
++from plot_contour import plot_contour
++from plot_streamlines import plot_streamlines
++from expdisp import expdisp
++
++try:
++	from matplotlib.ticker import MaxNLocator
++	from mpl_toolkits.axes_grid1 import make_axes_locatable
++	from mpl_toolkits.mplot3d import Axes3D
++	import matplotlib as mpl
++	import pylab as p
++	import matplotlib.pyplot as plt
++except ImportError:
++	print("could not import pylab, matplotlib has not been installed, no plotting capabilities enabled")
++
++def applyoptions(md,data,options,fig,ax):
++	'''
++	APPLYOPTIONS - apply options to current plot
++
++	'plotobj' is the object returned by the specific plot call used to
++	render the data.  This object is used for adding a colorbar.
++
++		Usage:
++			applyoptions(md,data,options)
++
++		See also: PLOTMODEL, PARSE_OPTIONS
++	'''
++
++	# get handle to current figure and axes instance
++	#fig = p.gcf()
++	#ax=p.gca()
++
++	#font {{{
++	fontsize=options.getfieldvalue('fontsize',8)
++	fontweight=options.getfieldvalue('fontweight','normal')
++	fontfamily=options.getfieldvalue('fontfamily','sans-serif')
++	font={'fontsize'		:fontsize,
++				'fontweight'	:fontweight,
++				'family'			:fontfamily}
++	#}}}
++
++	#title {{{
++	if options.exist('title'):
++		title=options.getfieldvalue('title')
++		if options.exist('titlefontsize'):
++			titlefontsize=options.getfieldvalue('titlefontsize')
++else:
++	titlefontsize=fontsize
++	if options.exist('titlefontweight'):
++		titlefontweight=options.getfieldvalue('titlefontweight')
++else:
++	titlefontweight=fontweight
++	#title font
++	titlefont=font.copy()
++	titlefont['size']=titlefontsize
++	titlefont['weight']=titlefontweight
++	ax.set_title(title,**titlefont)
++	#}}}
++		
++	#xlabel, ylabel, zlabel {{{
++	if options.exist('labelfontsize'):
++		labelfontsize=options.getfieldvalue('labelfontsize')
++else:
++	labelfontsize=fontsize
++	if options.exist('labelfontweight'):
++		labelfontweight=options.getfieldvalue('labelfontweight')
++else:
++	labelfontweight=fontweight
++
++	#font dict for labels
++	labelfont=font.copy()
++	labelfont['fontsize']=labelfontsize
++	labelfont['fontweight']=labelfontweight
++
++	if options.exist('xlabel'):
++		ax.set_xlabel(options.getfieldvalue('xlabel'),**labelfont)
++		if options.exist('ylabel'):
++			ax.set_ylabel(options.getfieldvalue('ylabel'),**labelfont)
++			if options.exist('zlabel'):
++				ax.set_zlabel(options.getfieldvalue('zlabel'),**labelfont)
++				#}}}
++
++	#xticks, yticks, zticks (tick locations) {{{
++	if options.exist('xticks'):
++		if options.exist('xticklabels'):
++			xticklabels=options.getfieldvalue('xticklabels')
++			ax.set_xticks(options.getfieldvalue('xticks'),xticklabels)
++else:
++	ax.set_xticks(options.getfieldvalue('xticks'))
++	if options.exist('yticks'):
++		if options.exist('yticklabels'):
++			yticklabels=options.getfieldvalue('yticklabels')
++			ax.set_yticks(options.getfieldvalue('yticks'),yticklabels)
++else:
++	ax.set_yticks(options.getfieldvalue('yticks'))
++	if options.exist('zticks'):
++		if options.exist('zticklabels'):
++			zticklabels=options.getfieldvalue('zticklabels')
++			ax.set_zticks(options.getfieldvalue('zticks'),zticklabels)
++else:
++	ax.set_zticks(options.getfieldvalue('zticks'))
++	#}}}
++
++	#xticklabels,yticklabels,zticklabels {{{
++	if options.getfieldvalue('ticklabels','off')=='off' or options.getfieldvalue('ticklabels',0)==0:
++		options.addfielddefault('xticklabels',[])
++		options.addfielddefault('yticklabels',[])
++		# TODO check if ax has a z-axis (e.g. is 3D)
++		if options.exist('xticklabels'):
++			xticklabels=options.getfieldvalue('xticklabels')
++			ax.set_xticklabels(xticklabels)
++			if options.exist('yticklabels'):
++				yticklabels=options.getfieldvalue('yticklabels')
++				ax.set_yticklabels(yticklabels)
++				if options.exist('zticklabels'):
++					zticklabels=options.getfieldvalue('zticklabels')
++					ax.set_zticklabels(zticklabels)
++					#}}}
++
++	#ticklabel notation {{{
++	#ax.ticklabel_format(style='sci',scilimits=(0,0))
++	#}}}
++
++	#ticklabelfontsize {{{
++	if options.exist('ticklabelfontsize'):
++		for label in ax.get_xticklabels() + ax.get_yticklabels():
++			label.set_fontsize(options.getfieldvalue('ticklabelfontsize'))
++			if int(md.mesh.dimension)==3: 
++				for label in ax.get_zticklabels():
++					label.set_fontsize(options.getfieldvalue('ticklabelfontsize'))
++					#}}}
++
++	#view
++	#if int(md.mesh.dimension) == 3 and options.exist('layer'):
++	#	#options.getfieldvalue('view') ?
++	#	ax=fig.gca(projection='3d')
++	#plt.show()
++
++	#axis {{{
++	if options.exist('axis'):
++		if options.getfieldvalue('axis',True)=='off':
++			ax.ticklabel_format(style='plain')
++			p.setp(ax.get_xticklabels(), visible=False)
++			p.setp(ax.get_yticklabels(), visible=False)
++			# }}}
++
++	#box
++	if options.exist('box'):
++		eval(options.getfieldvalue('box'))
++
++	#xlim, ylim, zlim {{{
++	if options.exist('xlim'):
++		ax.set_xlim(options.getfieldvalue('xlim'))
++		if options.exist('ylim'):
++			ax.set_ylim(options.getfieldvalue('ylim'))
++			if options.exist('zlim'):
++				ax.set_zlim(options.getfieldvalue('zlim'))
++				#}}}
++
++	#latlon
++
++	#Basinzoom
++
++	#ShowBasins
++
++	#clim {{{
++	if options.exist('clim'):
++		lims=options.getfieldvalue('clim')
++		assert len(lims)==2, 'error, clim should be passed as a list of length 2'
++elif options.exist('caxis'):
++	lims=options.getfieldvalue('caxis')
++	assert len(lims)==2, 'error, caxis should be passed as a list of length 2'
++	options.addfielddefault('clim',lims)
++else:
++	if len(data)>0: lims=[data.min(),data.max()]
++else: lims=[0,1]
++#}}}
++
++	#shading
++	#if options.exist('shading'):
++
++	#grid {{{
++	if options.exist('grid'):
++		if 'on' in options.getfieldvalue('grid','on'):
++			ax.grid()
++			#}}}
++
++	#colormap {{{
++	# default sequential colormap
++	defaultmap=truncate_colormap(mpl.cm.gnuplot2,0.1,0.9,128)
++	cmap=options.getfieldvalue('colormap',defaultmap)
++	norm = mpl.colors.Normalize(vmin=lims[0], vmax=lims[1])
++	options.addfield('colornorm',norm)
++	cbar_extend=0
++	if options.exist('cmap_set_over'):
++		over=options.getfieldvalue('cmap_set_over','0.5')
++		cmap.set_over(over)
++		cbar_extend+=1
++		if options.exist('cmap_set_under'):
++			under=options.getfieldvalue('cmap_set_under','0.5')
++			cmap.set_under(under)
++			cbar_extend+=2
++			options.addfield('colormap',cmap)
++			#}}}
++
++	#contours {{{
++	if options.exist('contourlevels'):
++		plot_contour(md,data,options,ax)
++		#}}}
++
++	#wrapping
++
++	#colorbar {{{
++	if options.getfieldvalue('colorbar',1)==1:
++		if cbar_extend==0:
++			extend='neither'
++elif cbar_extend==1:
++	extend='max'
++elif cbar_extend==2:
++	extend='min'
++elif cbar_extend==3:
++	extend='both'
++	cb = mpl.colorbar.ColorbarBase(ax.cax, cmap=cmap, norm=norm, extend=extend)
++	if options.exist('alpha'):
++		cb.set_alpha(options.getfieldvalue('alpha'))
++		if options.exist('colorbarnumticks'):
++			cb.locator=MaxNLocator(nbins=options.getfieldvalue('colorbarnumticks',5))
++else:
++	cb.locator=MaxNLocator(nbins=5) # default 5 ticks
++	if options.exist('colorbartickspacing'):
++		locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbartickspacing'))
++		cb.set_ticks(locs)
++		if options.exist('colorbarlines'):
++			locs=npy.arange(lims[0],lims[1]+1,options.getfieldvalue('colorbarlines'))
++			cb.add_lines(locs,['k' for i in range(len(locs))],npy.ones_like(locs))
++			if options.exist('colorbarlineatvalue'):
++				locs=options.getfieldvalue('colorbarlineatvalue')
++				colors=options.getfieldvalue('colorbarlineatvaluecolor',['k' for i in range (len(locs))])
++				widths=options.getfieldvalue('colorbarlineatvaluewidth',npy.ones_like(locs))
++				cb.add_lines(locs,colors,widths)
++				if options.exist('colorbartitle'):
++					if options.exist('colorbartitlepad'):
++						cb.set_label(options.getfieldvalue('colorbartitle'),labelpad=options.getfieldvalue('colorbartitlepad'),fontsize=fontsize)
++else:
++	cb.set_label(options.getfieldvalue('colorbartitle'),fontsize=fontsize)
++	cb.ax.tick_params(labelsize=fontsize)
++	cb.solids.set_rasterized(True)
++	cb.update_ticks()
++	cb.set_alpha(1)
++	cb.draw_all()
++	plt.sca(ax) # return to original axes control
++	#}}}
++
++        #expdisp {{{
++				if options.exist('expdisp'):
++					filename=options.getfieldvalue('expdisp')
++					style=options.getfieldvalue('expstyle','k')
++					linewidth=options.getfieldvalue('explinewidth',1)
++					for i in range(len(filename)):
++						filenamei=filename[i]
++						stylei=style[i]
++						if type(linewidth)==list:
++							linewidthi=linewidth[i]
++else:
++	linewidthi=linewidth
++	expdisp(filenamei,ax,linestyle=stylei,linewidth=linewidthi,unitmultiplier=options.getfieldvalue('unit',1))
++	#}}}
++
++	#area
++
++	#text {{{
++	if options.exist('text'):
++		text=options.getfieldvalue('text')
++		textx=options.getfieldvalue('textx')
++		texty=options.getfieldvalue('texty')
++		textcolor=options.getfieldvalue('textcolor')
++		textweight=options.getfieldvalue('textweight')
++		textrotation=options.getfieldvalue('textrotation')
++		textfontsize=options.getfieldvalue('textfontsize')
++		for label,x,y,size,color,weight,rotation in zip(text,textx,texty,textfontsize,textcolor,textweight,textrotation):
++			ax.text(x,y,label,transform=ax.transAxes,fontsize=size,color=color,weight=weight,rotation=rotation)
++			#}}}
++
++	#north arrow
++
++	#scale ruler
++
++	#streamlines
++	if options.exist('streamlines'):
++		plot_streamlines(md,options,ax)
++
++
++	#axis positions
++
++	#figure position
++
++	#axes position
++
++	#showregion
++
++	#flat edges of a partition
++
++	#scatter
++
++	#backgroundcolor
++
++	#figurebackgroundcolor
++
++	#lighting
++
++	#point cloud
++
++	#inset
++	
+Index: ../trunk-jpl/src/py3/plot/export_gl.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/export_gl.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/export_gl.py	(revision 19895)
+@@ -0,0 +1,124 @@
++from plotoptions import plotoptions
++from checkplotoptions import checkplotoptions
++from model import model
++import numpy as np
++import math
++from writejsfile import writejsfile
++
++def export_gl(md,*varargin):
++	class ResultObj(object):
++	    def __getattr__(self, attr):
++		return self.__dict__.get(attr)
++
++	print ('getting options')
++	templist=plotoptions(varargin); 
++	optionslist=templist.list;
++	options=optionslist[1];
++	options=checkplotoptions(md,options);
++	#print (templist,options)
++	#templist contains options 0-3. Use in the future to rework.
++	
++	#Setup unique directory in present dir: 
++	print ('setting directory')
++	directory=optionslist[0].getfieldvalue('directory');
++	databasename=optionslist[0].getfieldvalue('database');
++	
++	#scaling factor: 
++	print ('setting scaling factor')
++	scaling_factor=optionslist[0].getfieldvalue('scaling_factor');
++
++	#Deal with title: 
++	print ('setting title')
++	if optionslist[0].exist('title'):
++		title=optionslist[0].getfieldvalue('title');
++	else:
++		title='';
++
++	#initialize model: 
++	print ('initializing model')
++	model.title=title;
++	model.initialZoomFactor=options.getfieldvalue('zoom',-.25);
++
++	#Deal with contour {{{
++	print ('getting contour')
++	print((md.mesh.segments))
++	segmenets0 = [s - 1 for s in md.mesh.segments[:,0]];
++	segmenets1 = [s - 1 for s in md.mesh.segments[:,1]];
++	
++	contour_lat1=md.mesh.lat.take(segmenets0)
++	contour_lat2=md.mesh.lat.take(segmenets1);
++	contour_long1=md.mesh.long.take(segmenets0);
++	contour_long2=md.mesh.long.take(segmenets1);
++	contour_surface1=md.geometry.surface.take(segmenets0);
++	contour_surface2=md.geometry.surface.take(segmenets1);
++
++	R1=6371000*np.ones(len(contour_surface1))+scaling_factor*contour_surface1;
++	R2=6371000*np.ones(len(contour_surface2))+scaling_factor*contour_surface2;
++
++	model.contourx1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R1, contour_lat1, contour_long1));
++	model.contoury1 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R1, contour_lat1, contour_long1));
++	model.contourz1 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R1, contour_lat1));
++	
++	model.contourx2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R2, contour_lat2, contour_long2));
++	model.contoury2 = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R2, contour_lat2, contour_long2));
++	model.contourz2 = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R2, contour_lat2));
++
++	#}}}
++	#Deal with mesh and results {{{
++	print ('getting mesh')
++	surface=md.geometry.surface.flatten();
++	numberofelements=md.mesh.numberofelements;
++	numberofvertices=md.mesh.numberofvertices;
++	R=6371000*np.ones(len(md.mesh.lat))+scaling_factor*surface;
++	
++	x = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.cos(math.radians(int)), R, md.mesh.lat,md.mesh.long));
++	y = list(map(lambda r, lat, int: r * math.cos(math.radians(lat)) * math.sin(math.radians(int)), R, md.mesh.lat,md.mesh.long));
++	z = list(map(lambda r, lat: r * math.sin(math.radians(lat)), R, md.mesh.lat));
++	
++	#Deal with triangulation: 
++	print('getting triangulation')
++	model.index=md.mesh.elements;
++	model.x=x;
++	model.y=y;
++	model.z=z;
++	model.surface=surface;
++	
++	results = []
++	print(optionslist)	
++	#Deal with data: 
++	print('getting data')
++	for i in range(0,len(optionslist)):
++		options=optionslist[i]; 
++		options=checkplotoptions(md,options);
++		data=options.getfieldvalue('data').flatten();
++		results.append(ResultObj())
++		results[i].data=data;
++		results[i].caxis=options.getfieldvalue('caxis',[min(data), max(data)]);
++
++		label=options.getfieldvalue('label','');
++		if label=='':
++			#create generic label: 
++			label=['data', str(i)];
++		results[i].label=label;
++
++		shortlabel=options.getfieldvalue('shortlabel','');
++		if shortlabel=='':
++			#create generic short label: 
++			shortlabel=['data', str(i)];
++		results[i].shortlabel=shortlabel;
++
++		if type(data[2])!=np.float64:
++			time_range=options.getfieldvalue('time_range',[0, 100]);
++			results[i].time_range=time_range;
++
++		unit=options.getfieldvalue('unit','');
++		if unit=='':
++			#create generic unit: 
++			unit='SI';
++		results[i].unit=unit;
++	model.results=results;
++	
++	#Write model to javascript database file: 
++	print('writing to file')
++	writejsfile(directory + databasename + '.js',model,databasename);
++#}}}
+Index: ../trunk-jpl/src/py3/plot/plot_streamlines.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_streamlines.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_streamlines.py	(revision 19895)
+@@ -0,0 +1,64 @@
++import numpy as npy
++import matplotlib.pyplot as plt
++import matplotlib.tri as tri
++from processmesh import processmesh
++from processdata import processdata
++from scipy.interpolate import griddata
++from ContourToMesh import ContourToMesh
++
++def plot_streamlines(md,options,ax):
++    '''
++    plot streamlines on a figure, using by default vx and vy components in md.initialization. 
++
++    Usage:
++        plot_streamlines(md,options,ax)
++
++    available options, to be passed to plotmodel as a string-value pair:
++        streamlinesvx : vx component (default md.initialization.vx)
++        streamlinesvy : vy component (default md.initialization.vy)
++        streamlinescolor: color string
++        streamlinesdensity: density of plotted streamlines (default 1)
++        streamlineswidth: linewidth value or 'vel' to scale by velocity
++        streamlineswidthscale: scaling multiplier for linewidth scaled by velocity
++        streamlinesarrowsize: size of arrows on lines (default 1)
++        
++    '''
++
++    # retrieve options
++    vx=options.getfieldvalue('streamlinesvx',md.initialization.vx)
++    vy=options.getfieldvalue('streamlinesvy',md.initialization.vy)
++    color=options.getfieldvalue('streamlinescolor','k')
++    linewidth=options.getfieldvalue('streamlineswidth',1)
++    density=options.getfieldvalue('streamlinesdensity',1)
++    arrowsize=options.getfieldvalue('streamlinesarrowsize',1)
++
++    #process mesh and data 
++    x,y,z,elements,is2d,isplanet=processmesh(md,vx,options)
++    u,datatype=processdata(md,vx,options)
++    v,datatype=processdata(md,vy,options)
++
++    if not is2d:
++        raise Exception('plot_streamlines error: streamlines option not supported for 3D plots')
++
++    # format data for matplotlib streamplot function
++    yg,xg=npy.mgrid[min(md.mesh.y):max(md.mesh.y):100j,min(md.mesh.x):max(md.mesh.x):100j]
++    ug=griddata((x,y),u,(xg,yg),method='linear')
++    vg=griddata((x,y),v,(xg,yg),method='linear')
++
++    # create triangulation instance
++    triang=tri.Triangulation(md.mesh.x,md.mesh.y,md.mesh.elements-1)
++
++    # interpolate to regularly spaced quad grid
++    interp_lin_u=tri.LinearTriInterpolator(triang,u)
++    interp_lin_v=tri.LinearTriInterpolator(triang,v)
++    ug=interp_lin_u(xg,yg)
++    vg=interp_lin_v(xg,yg)
++
++    if linewidth=='vel':
++        scale=options.getfieldvalue('streamlineswidthscale',3)
++        vel=npy.sqrt(ug**2+vg**2)
++        linewidth=scale*vel/npy.amax(vel)
++        linewidth[linewidth<0.5]=0.5
++
++    # plot streamlines
++    ax.streamplot(xg,yg,ug,vg,color=color,linewidth=linewidth,density=density,arrowsize=arrowsize)
+Index: ../trunk-jpl/src/py3/plot/plot_contour.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/plot_contour.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/plot_contour.py	(revision 19895)
+@@ -0,0 +1,38 @@
++from averaging import averaging
++import matplotlib.pyplot as plt
++from processmesh import processmesh
++from processdata import processdata
++
++def plot_contour(md,datain,options,ax):
++	'''
++	plot contours of a given field (called within plotmodel)
++
++	Usage:
++		plot_contour(md,data,options)
++
++	See also: plotmodel
++	'''
++
++	x,y,z,elements,is2d,isplanet=processmesh(md,datain,options)
++	data,datatype=processdata(md,datain,options)
++
++	# process data: must be on nodes
++	if datatype==1: # element data
++		data=averaging(md,data,0)
++	elif datatype==2:
++		pass
++	elif datatype==3: # quiver (vector) data
++		data=npy.sqrt(datain**2)
++	else:
++		raise ValueError('datatype not supported in call to plot_contour')
++
++	# contouronly TODO (cla will also clear an overlay image)
++
++	# retrieve necessary options
++	levels=options.getfieldvalue('contourlevels')
++	colors=options.getfieldvalue('contourcolors')
++	norm=options.getfieldvalue('colornorm')
++	linestyles=options.getfieldvalue('contourlinestyles')
++	linewidths=options.getfieldvalue('contourlinewidths')
++
++	ax.tricontour(x,y,elements,data,levels,colors=colors,norm=norm,linestyles=linestyles,linewidths=linewidths)
+Index: ../trunk-jpl/src/py3/plot/writejsfile.py
+===================================================================
+--- ../trunk-jpl/src/py3/plot/writejsfile.py	(revision 0)
++++ ../trunk-jpl/src/py3/plot/writejsfile.py	(revision 19895)
+@@ -0,0 +1,57 @@
++import numpy
++from writejsfield import writejsfield
++def writejsfile(filename,model,keyname):
++#WRITEJSFILE - write model file to javascript database
++#
++#   Usage:
++#      writejsfile(filename,model,keyname)
++#
++
++	nods=len(model.x)
++	nel=len(model.index)
++	nx=len(model.contourx1)
++	print(filename)	
++	fid=open(filename,'w', 0)
++
++	fid.write('model = {};\n')
++	fid.write('model["title"]="{0}";\n'.format(model.title))
++	fid.write('model["initialZoomFactor"]={0};\n'.format(model.initialZoomFactor))
++	#write index:
++	fid.write('<!-- model["index"]{{{-->\n')
++	fid.write('model["index"]=[')
++	for i in range(0, nel-1):
++		fid.write('[{0}, {1}, {2}],'.format(model.index[i][0],model.index[i][1],model.index[i][2]))
++	fid.write('[{0}, {1}, {2}]];\n'.format(model.index[-1][0],model.index[-1][1],model.index[-1][2]))
++	fid.write('<!--}}}-->\n')
++	print('writing model coordinates')
++	writejsfield(fid,'model["x"]',model.x,nods)
++	writejsfield(fid,'model["y"]',model.y,nods)
++	writejsfield(fid,'model["z"]',model.z,nods)
++	writejsfield(fid,'model["surface"]',model.surface,nods)
++	writejsfield(fid,'model["contourx1"]',model.contourx1,nx)
++	writejsfield(fid,'model["contoury1"]',model.contoury1,nx)
++	writejsfield(fid,'model["contourz1"]',model.contourz1,nx)
++	writejsfield(fid,'model["contourx2"]',model.contourx2,nx)
++	writejsfield(fid,'model["contoury2"]',model.contoury2,nx)
++	writejsfield(fid,'model["contourz2"]',model.contourz2,nx)
++
++	print('writing results')
++	results=model.results
++	fid.write('results={};\n')
++
++	for i in range(0,len(results)):
++		fid.write('result={};\n')
++		writejsfield(fid,'result["data"]',results[i].data,nods)
++		fid.write('<!--{{{-->\n')
++		fid.write('result["caxis"]=[{0},{1}];\n'.format(results[i].caxis[0],results[i].caxis[1]))
++		fid.write('result["label"]="{0}";\n'.format(results[i].label))
++		fid.write('result["shortlabel"]="{0}";\n'.format(results[i].shortlabel))
++		fid.write('result["unit"]="{0}";\n'.format(results[i].unit))
++		if type(results[i].data)==numpy.float64:
++			fid.write('result["time_range"]=[{0},{1}];\n'.format(results[i].time_range[0],results[i].time_range[1]))
++		fid.write('results["{0}"]=result;\n'.format(i))
++		fid.write('<!--}}}-->\n')
++	fid.write('model.results=results;\n')
++	fid.write('models["{0}"]=model;\n'.format(keyname))
++
++	fid.close()
Index: /issm/oecreview/Archive/19101-20495/ISSM-19895-19896.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19895-19896.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19895-19896.diff	(revision 20498)
@@ -0,0 +1,153 @@
+Index: ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19895)
++++ ../trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp	(revision 19896)
+@@ -23,10 +23,15 @@
+ 	/*return internal value: */
+ 	if      (PyFloat_Check(py_float))
+ 		dscalar=PyFloat_AsDouble(py_float);
+-	else if (PyLong_Check(py_float))
++	else if (PyLong_Check(py_float)){
++		#if _PYTHON_MAJOR_ == 3
+ 		dscalar=(double)PyLong_AsLong(py_float);
+-	else if (PyLong_Check(py_float))
++		#else
+ 		dscalar=PyLong_AsDouble(py_float);
++		#endif
++	}
++	else if (PyInt_Check(py_float))
++	 dscalar=(double)PyInt_AsLong(py_float);
+ 	else if (PyBool_Check(py_float))
+ 		dscalar=(double)PyLong_AsLong(py_float);
+ 	else if (PyTuple_Check(py_float) && (int)PyTuple_Size(py_float)==1)
+@@ -48,8 +53,8 @@
+ 	/*return internal value: */
+ 	if      (PyLong_Check(py_long))
+ 		iscalar=(int)PyLong_AsLong(py_long);
+-	else if (PyLong_Check(py_long))
+-		iscalar=(int)PyLong_AsLong(py_long);
++	else if (PyInt_Check(py_long))
++		iscalar=(int)PyInt_AsLong(py_long);
+ 	else if (PyFloat_Check(py_long))
+ 		iscalar=(int)PyFloat_AsDouble(py_long);
+ 	else if (PyBool_Check(py_long))
+@@ -77,6 +82,8 @@
+ 		bscalar=(bool)PyLong_AsLong(py_boolean);
+ 	else if (PyLong_Check(py_boolean))
+ 		bscalar=(bool)PyLong_AsLong(py_boolean);
++	else if (PyInt_Check(py_boolean))
++		bscalar=(bool)PyInt_AsLong(py_boolean);
+ 	else if (PyTuple_Check(py_boolean) && (int)PyTuple_Size(py_boolean)==1)
+ 		FetchData(&bscalar,PyTuple_GetItem(py_boolean,(Py_ssize_t)0));
+ 	else if (PyList_Check(py_boolean) && (int)PyList_Size(py_boolean)==1)
+@@ -723,7 +730,11 @@
+ 
+ 	/*Fetch all options*/
+ 	for (int i=istart; i<nrhs; i=i+2){
++		#if _PYTHON_MAJOR_ >= 3
+ 		if (!PyUnicode_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
++		#else
++		if (!PyString_Check(PyTuple_GetItem(py_tuple,(Py_ssize_t)i))) _error_("Argument " << i+1 << " must be name of option");
++		#endif
+ 
+ 		FetchData(&name,PyTuple_GetItem(py_tuple,(Py_ssize_t)i));
+ 		if(i+1 == nrhs) _error_("Argument " << i+2 << " must exist and be value of option \"" << name << "\".");
+@@ -749,10 +760,17 @@
+ 	PyObject        *py_dicti    = NULL;
+ 	PyObject        *py_item     = NULL;
+ 
++	#if _PYTHON_MAJOR_ >= 3
+ 	if (PyUnicode_Check(py_list)){
+ 		FetchData(&contourname,py_list);
+ 		contours=ExpRead<double>(contourname);
+ 	}
++	#else
++	if (PyString_Check(py_list)){
++		FetchData(&contourname,py_list);
++		contours=ExpRead<double>(contourname);
++	}
++	#endif
+ 	else if(PyList_Check(py_list)){
+ 
+ 		contours=new Contours();
+Index: ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19895)
++++ ../trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 19896)
+@@ -19,7 +19,11 @@
+ /*FUNCTION WriteData(PyObject* py_tuple,int index,int integer){{{*/
+ void WriteData(PyObject* py_tuple, int index, int integer){
+ 
++	#if _PYTHON_MAJOR_ >= 3
+ 	PyTuple_SetItem(py_tuple, index, PyLong_FromSsize_t((Py_ssize_t)integer));
++	#else
++	PyTuple_SetItem(py_tuple, index, PyInt_FromSsize_t((Py_ssize_t)integer));
++	#endif
+ 
+ }/*}}}*/
+ /*FUNCTION WriteData(PyObject* py_tuple,int index,char* string){{{*/
+@@ -211,13 +215,23 @@
+ 	for (i=0; i<riftstruct->numrifts; i++) {
+ 		dict=PyDict_New();
+ 
++		#if _PYTHON_MAJOR_ >= 3
+ 		PyDict_SetItemString(dict,"numsegs"          ,PyLong_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
++		#else
++		PyDict_SetItemString(dict,"numsegs"          ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i]));
++		#endif
++
+ 		PyDict_SetItemString(dict,"segments"         ,PyArrayFromCopiedData(riftstruct->riftsnumsegments[i]    ,3,riftstruct->riftssegments[i]));
+ 		PyDict_SetItemString(dict,"pairs"            ,PyArrayFromCopiedData(riftstruct->riftsnumpairs[i]       ,2,riftstruct->riftspairs[i]));
+ 		PyDict_SetItemString(dict,"tips"             ,PyArrayFromCopiedData(1                                  ,2,&riftstruct->riftstips[2*i]));
+ 		PyDict_SetItemString(dict,"penaltypairs"     ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i]));
++		#if _PYTHON_MAJOR_ >= 3
+ 		PyDict_SetItemString(dict,"fill"             ,PyLong_FromSsize_t((Py_ssize_t)IceEnum));
+ 		PyDict_SetItemString(dict,"friction"         ,PyLong_FromSsize_t((Py_ssize_t)0));
++		#else
++		PyDict_SetItemString(dict,"fill"             ,PyInt_FromSsize_t((Py_ssize_t)IceEnum));
++		PyDict_SetItemString(dict,"friction"         ,PyInt_FromSsize_t((Py_ssize_t)0));
++		#endif
+ 		PyDict_SetItemString(dict,"fraction"         ,PyFloat_FromDouble(0.));
+ 		PyDict_SetItemString(dict,"fractionincrement",PyFloat_FromDouble(0.1));
+ 		PyDict_SetItemString(dict,"state"            ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],1,riftstruct->state[i]));
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19895)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp	(revision 19896)
+@@ -20,10 +20,9 @@
+ 	/*input/output*/
+ 	char       *name     = NULL;
+ 	bool        isstring = false;
+-	IssmDouble  value   = 0.;
++	IssmDouble  value    = 0.;
+ 	char       *svalue   = NULL;
+ 
+-
+ 	/*Boot module: */
+ 	MODULEBOOT();
+ 
+@@ -162,12 +161,10 @@
+ 	else
+ 	 WriteData(VALUE,value);
+ 
+-
+ 	/*Clean up*/
+ 	xDelete<char>(name);
+ 	xDelete<char>(svalue);
+ 
+ 	/*end module: */
+ 	MODULEEND();
+-
+ }
+Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19895)
++++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 19896)
+@@ -5,7 +5,6 @@
+ #ifndef _ISSMCONFIG_H
+ #define _ISSMCONFIG_H
+ 
+-
+ #ifdef HAVE_CONFIG_H
+ 	#include <config.h>
+ #else
Index: /issm/oecreview/Archive/19101-20495/ISSM-19896-19897.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19896-19897.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19896-19897.diff	(revision 20498)
@@ -0,0 +1,1764 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19896)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 19897)
+@@ -7,6 +7,7 @@
+ %             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
+ %   Available options:
+ %      - NaN: 1 if check that there is no NaN
++%      - Inf: 1 if check that there is no Inf
+ %      - size: [lines cols], NaN for non checked dimensions
+ %      - >:  greater than provided value
+ %      - >=: greater or equal to provided value
+@@ -91,6 +92,16 @@
+ 	end
+ end
+ 
++%check Inf
++if getfieldvalue(options,'Inf',0);
++	field2=reshape(field,prod(size(field)),1);
++	if any(isinf(field2)),
++		md = checkmessage(md,getfieldvalue(options,'message',...
++			['Inf values found in field ''' fieldname '''']));
++	end
++end
++
++
+ %check cell
+ if getfieldvalue(options,'cell',0);
+ 	if ~iscell(field),
+Index: ../trunk-jpl/src/m/classes/initialization.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/initialization.m	(revision 19897)
+@@ -64,30 +64,30 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			if ismember(StressbalanceAnalysisEnum(),analyses)
+ 				if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)),
+-					md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-					md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses) & solution==BalancethicknessSolutionEnum,
+-				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				%Triangle with zero velocity
+ 				if any(sum(abs(md.initialization.vx(md.mesh.elements)),2)==0 & sum(abs(md.initialization.vy(md.mesh.elements)),2)==0)
+ 					md = checkmessage(md,'at least one triangle has all its vertices with a zero velocity');
+ 				end
+ 			end
+ 			if ismember(ThermalAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				if dimension(md.mesh)==3
+-					md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','initialization.vz','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+-				md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			end
+ 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy)
+ 				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices 1]);
+@@ -95,19 +95,19 @@
+ 			end
+ 			if ismember(HydrologyShreveAnalysisEnum(),analyses),
+ 				if isa(md.hydrology,'hydrologyshreve'),
+-					md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+ 			end
+ 			if ismember(HydrologyDCInefficientAnalysisEnum(),analyses),
+ 				if isa(md.hydrology,'hydrologydc'),
+-					md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+ 			end
+ 			if ismember(HydrologyDCEfficientAnalysisEnum(),analyses),
+ 				if isa(md.hydrology,'hydrologydc'),
+ 					if md.hydrology.isefficientlayer==1,
+-						md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-						md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices 1]);
++						md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++						md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 					end
+ 				end
+ 			end
+Index: ../trunk-jpl/src/m/classes/m1qn3inversion.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/m1qn3inversion.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/m1qn3inversion.py	(revision 19897)
+@@ -144,7 +144,7 @@
+ 		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1])
+ 		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
+ 		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
+-		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1)
++		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','inversion.maxiter','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','inversion.dxmin','numel',[1],'>',0.)
+@@ -155,10 +155,10 @@
+ 		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/gia.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/gia.py	(revision 19897)
+@@ -47,8 +47,8 @@
+ 		if (GiaAnalysisEnum() not in  analyses):
+ 			return md 
+ 		
+-		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
+-		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0)
+ 		md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2])
+ 
+ 		#be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
+Index: ../trunk-jpl/src/m/classes/balancethickness.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/balancethickness.py	(revision 19897)
+@@ -42,7 +42,7 @@
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','balancethickness.spcthickness')
+-		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
++		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3])
+ 
+ 		return md
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.py	(revision 19897)
+@@ -90,15 +90,15 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if self.isd18opd:
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 				md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1])
+ 		
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+Index: ../trunk-jpl/src/m/classes/SMBd18opdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBd18opdd.m	(revision 19897)
+@@ -68,14 +68,14 @@
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+ 				md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
+ 				if(self.isd18opd==1) 
+-					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
+ 					md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',1);
+ 				end
+ 			end
+Index: ../trunk-jpl/src/m/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBpdd.py	(revision 19897)
+@@ -119,31 +119,31 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if (self.isdelta18o==0 and self.ismungsm==0):
+-				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'Inf',1,'timeseries',1)
+ 			elif self.isdelta18o:
+-				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 			elif self.ismungsm:
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/m/classes/frictionweertman.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionweertman.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionweertman.py	(revision 19897)
+@@ -36,8 +36,8 @@
+ 		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1)
+-		md = checkfield(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/frictionwaterlayer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19897)
+@@ -30,10 +30,10 @@
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+ 
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.f','size',[1 1],'NaN',1);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.f','size',[1 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1,'>=',0.);
+ 
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/mesh3dprisms.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dprisms.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh3dprisms.py	(revision 19897)
+@@ -105,10 +105,10 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+ 		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6])
+ 		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
+ 			md.checkmessage("orphan nodes have been found. Check the mesh3dprisms outline")
+Index: ../trunk-jpl/src/m/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calving.py	(revision 19897)
+@@ -54,8 +54,8 @@
+ 
+ 		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+-		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);
+-		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
++		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/hydrologysommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/hydrologysommers.m	(revision 19897)
+@@ -37,14 +37,14 @@
+ 				return;
+ 			end
+ 
+-			md = checkfield(md,'fieldname','hydrology.head','size',[md.mesh.numberofvertices 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.gap_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.bump_spacing','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.bump_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'NaN',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','hydrology.moulin_input','>=',0,'NaN',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements 1],'NaN',1);
+-			md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','hydrology.head','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','hydrology.gap_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','hydrology.bump_spacing','>',0,'size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','hydrology.bump_height','>=',0,'size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','hydrology.englacial_input','>=',0,'NaN',1,'Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.moulin_input','>=',0,'NaN',1,'Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.reynolds','>',0,'size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','hydrology.neumannflux','timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','hydrology.spchead','size',[md.mesh.numberofvertices 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19897)
+@@ -57,25 +57,25 @@
+ 	#Early return
+         if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.ismasstransport==0):
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if BalancethicknessAnalysisEnum() in analyses:
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.isthermal==0):
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+-	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 	return md
+     # }}}
+     def marshall(self,md,fid):    # {{{
+Index: ../trunk-jpl/src/m/classes/m1qn3inversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/m1qn3inversion.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/m1qn3inversion.m	(revision 19897)
+@@ -83,7 +83,7 @@
+ 			md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]);
+ 			md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
+ 			md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols());
+-			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1);
++			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0);
+ 			md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0);
+ 			md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0);
+@@ -94,14 +94,14 @@
+ 			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+ 
+ 			if solution==BalancethicknessSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+-				md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			elseif solution==BalancethicknessSoftSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			else
+-				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				if ~strcmp(domaintype(md.mesh),'2Dvertical'),
+-					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				end
+ 			end
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19897)
+@@ -41,10 +41,10 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('Basal shear stress parameters: Sigma_b = min( coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n, coefficientcoulomb^2 * rho_i * g * (h-h_f)) (effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p, floatation thickness h_f=max(0,-rho_sw / rho_i * bed))'));
+Index: ../trunk-jpl/src/m/classes/timestepping.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/timestepping.py	(revision 19897)
+@@ -52,9 +52,9 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1)
++		md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)
+ 		if self.final_time-self.start_time<0:
+Index: ../trunk-jpl/src/m/classes/SMBmeltcomponents.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBmeltcomponents.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBmeltcomponents.py	(revision 19897)
+@@ -61,28 +61,28 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/m/classes/mesh3dtetras.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 19897)
+@@ -143,10 +143,10 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
++			md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.mesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 4]);
+ 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+Index: ../trunk-jpl/src/m/classes/linearbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 19897)
+@@ -48,23 +48,23 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0,'numel',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0,'numel',1);
+ 			end
+ 			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<','basalforcings.upperwater_elevation','numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0,'numel',1);
+-				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/initialization.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/initialization.py	(revision 19897)
+@@ -70,39 +70,39 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 		if StressbalanceAnalysisEnum() in analyses:
+ 			if not numpy.any(numpy.logical_or(numpy.isnan(md.initialization.vx),numpy.isnan(md.initialization.vy))):
+-				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			#Triangle with zero velocity
+ 			if numpy.any(numpy.logical_and(numpy.sum(numpy.abs(md.initialization.vx[md.mesh.elements-1]),axis=1)==0,\
+ 			                               numpy.sum(numpy.abs(md.initialization.vy[md.mesh.elements-1]),axis=1)==0)):
+ 				md.checkmessage("at least one triangle has all its vertices with a zero velocity")
+ 		if ThermalAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			if md.mesh.dimension()==3:
+-				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
+ 				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
+ 				md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
+ 		if HydrologyShreveAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologyshreve'):
+-				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if HydrologyDCInefficientAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologydc'):
+-				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices,1])
++				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 		if HydrologyDCEfficientAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologydc'):
+ 				if md.hydrology.isefficientlayer==1:
+-					md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices,1])
+-					md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices,1])
++					md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++					md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBforcing.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBforcing.py	(revision 19897)
+@@ -42,10 +42,10 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19897)
+@@ -55,7 +55,7 @@
+ 		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+-		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices],'>=',0)
++		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.py	(revision 19897)
+@@ -47,10 +47,10 @@
+ 	if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 	    return md
+ 
+-	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
+-	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)
+-	md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
+-	md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)
++	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1,'Inf',1)
++	md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 	return md
+     # }}}
+Index: ../trunk-jpl/src/m/classes/misfit.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/misfit.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/misfit.m	(revision 19897)
+@@ -63,9 +63,9 @@
+ 			if ~ischar(self.timeinterpolation),
+ 				error('misfit error message: ''timeinterpolation'' field should be a string!');
+ 			end
+-			md = checkfield(md,'fieldname','self.observation','field',self.observation,'timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','self.observation','field',self.observation,'timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','self.timeinterpolation','field',self.timeinterpolation,'values',{'nearestneighbor'});
+-			md = checkfield(md,'fieldname','self.weights','field',self.weights,'timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','self.weights','field',self.weights,'timeseries',1,'NaN',1,'Inf',1);
+ 
+ 		end % }}}
+ 		function md = disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19897)
+@@ -48,23 +48,23 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
+ 			end
+ 			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',1);
+-				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+ 			end
+ 			if isnan(md.geometry.bed),
+ 				md = checkmessage(md,['requesting mismip basal melting parameterization, but bathymetry is absent!']);
+Index: ../trunk-jpl/src/m/classes/matice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/matice.m	(revision 19897)
+@@ -146,7 +146,7 @@
+ 			md = checkfield(md,'fieldname','materials.rho_water','>',0);
+ 			md = checkfield(md,'fieldname','materials.rho_freshwater','>',0);
+ 			md = checkfield(md,'fieldname','materials.mu_water','>',0);
+-			md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'Cuffey' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
+ 
+Index: ../trunk-jpl/src/m/classes/frictiontemp.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictiontemp.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictiontemp.m	(revision 19897)
+@@ -33,13 +33,13 @@
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+ 
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.gamma','NaN',1,'numel',1,'>',0.);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.gamma','NaN',1,'Inf',1,'numel',1,'>',0.);
+ 
+ 			%Check that temperature is provided
+-			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('Basal shear stress parameters: tau_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b * 1/f(T)\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)'));
+Index: ../trunk-jpl/src/m/classes/massconaxpby.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/massconaxpby.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/massconaxpby.m	(revision 19897)
+@@ -52,8 +52,8 @@
+ 			
+ 			md = checkfield(md,'fieldname','self.definitionenum','field',self.definitionenum,'values',[Outputdefinition1Enum:Outputdefinition100Enum]);
+ 
+-			md = checkfield(md,'fieldname','self.alpha','field',self.alpha,'NaN',1,'size',[1 1]);
+-			md = checkfield(md,'fieldname','self.betaa','field',self.beta,'NaN',1,'size',[1 1]);
++			md = checkfield(md,'fieldname','self.alpha','field',self.alpha,'NaN',1,'Inf',1,'size',[1 1]);
++			md = checkfield(md,'fieldname','self.betaa','field',self.beta,'NaN',1,'Inf',1,'size',[1 1]);
+ 
+ 		end % }}}
+ 		function md = disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/SMBgradients.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgradients.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBgradients.py	(revision 19897)
+@@ -48,10 +48,10 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/m/classes/adinversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/adinversion.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/adinversion.m	(revision 19897)
+@@ -72,7 +72,7 @@
+ 			md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',...
+ 				{'BalancethicknessThickeningRate' 'FrictionCoefficient' 'MaterialsRheologyBbar' 'DamageDbar',...
+ 				'Vx' 'Vy' 'Thickness' 'BalancethicknessOmega' 'BalancethicknessApparentMassbalance'});
+-			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1);
++			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','inversion.maxsteps','numel',1,'>=',0);
+ 			md = checkfield(md,'fieldname','inversion.maxiter','numel',1,'>=',0);
+ 			md = checkfield(md,'fieldname','inversion.dxmin','numel',1,'>',0);
+@@ -83,14 +83,14 @@
+ 			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+ 
+ 			if solution==BalancethicknessSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+-				md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','inversion.surface_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			elseif solution==BalancethicknessSoftSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			else
+-				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				if ~strcmp(domaintype(md.mesh),'2Dvertical'),
+-					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				end
+ 			end
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/mesh2d.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh2d.m	(revision 19897)
+@@ -80,9 +80,9 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
++			md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.mesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
+ 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+@@ -90,7 +90,7 @@
+ 			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
+ 			md = checkfield(md,'fieldname','mesh.numberofvertices','>',0);
+ 			md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
+-			md = checkfield(md,'fieldname','mesh.segments','NaN',1,'>',0,'size',[NaN 3]);
++			md = checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[NaN 3]);
+ 
+ 			switch(solution),
+ 				case ThermalSolutionEnum(),
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 19897)
+@@ -46,8 +46,8 @@
+ 
+ 			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+-			md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving parameters:'));
+Index: ../trunk-jpl/src/m/classes/SMBcomponents.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBcomponents.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBcomponents.m	(revision 19897)
+@@ -49,22 +49,22 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/geometry.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/geometry.py	(revision 19897)
+@@ -45,13 +45,13 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
++		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
+ 		if any(abs(self.thickness-self.surface+self.base)>10**-9):
+ 			md.checkmessage("equality thickness=surface-base violated")
+ 		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
+-			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/inversionvalidation.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversionvalidation.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/inversionvalidation.m	(revision 19897)
+@@ -66,20 +66,20 @@
+ 			md = checkfield(md,'fieldname','inversion.iscontrol','values',[0 1]);
+ 			md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0 1]);
+ 			md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols());
+-			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1);
++			md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[1 num_controls],'>',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','inversion.cost_functions','size',[1 num_costfunc],'values',supportedcostfunctions());
+ 			md = checkfield(md,'fieldname','inversion.cost_functions_coefficients','size',[md.mesh.numberofvertices num_costfunc],'>=',0);
+ 			md = checkfield(md,'fieldname','inversion.min_parameters','size',[md.mesh.numberofvertices num_controls]);
+ 			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+ 
+ 			if solution==BalancethicknessSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			elseif solution==BalancethicknessSoftSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			else
+-				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				if ~strcmp(domaintype(md.mesh),'2Dvertical'),
+-					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++					md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 				end
+ 			end
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19897)
+@@ -136,12 +136,12 @@
+ 			md = checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1);
+ 			md = checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1);
+ 			md = checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1);
+-			md = checkfield(md,'fieldname','stressbalance.restol','size',[1 1],'>',0,'NaN',1);
++			md = checkfield(md,'fieldname','stressbalance.restol','size',[1 1],'>',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','stressbalance.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','stressbalance.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0 1 2]);
+-			md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1 1],'NaN',1);
+-			md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1 1],'NaN',1);
++			md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1 1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1 1],'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1 1],'>=',1);
+ 			md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices 6]);
+ 			md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices 3]);
+Index: ../trunk-jpl/src/m/classes/inversion.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/inversion.py	(revision 19897)
+@@ -150,10 +150,10 @@
+ 				md.checkmessage("'inversion can only be performed for SSA, HO or FS ice flow models");
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/basalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/basalforcings.py	(revision 19897)
+@@ -54,17 +54,17 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 
+ 		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/calvingpi.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19897)
+@@ -49,7 +49,7 @@
+ 			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
++			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Pi parameters:'));
+Index: ../trunk-jpl/src/m/classes/basalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19897)
+@@ -49,17 +49,17 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+-				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			end
+ 			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
+-				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+-				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
+-				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/taoinversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/taoinversion.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/taoinversion.m	(revision 19897)
+@@ -117,12 +117,12 @@
+ 			md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices num_controls]);
+ 
+ 			if solution==BalancethicknessSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			elseif solution==BalancethicknessSoftSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			else
+-				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+-				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19897)
+@@ -49,7 +49,7 @@
+ 			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
++			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Pi parameters:'));
+Index: ../trunk-jpl/src/m/classes/hydrologydc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologydc.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/hydrologydc.m	(revision 19897)
+@@ -113,7 +113,7 @@
+ 			if self.transfer_flag==1,
+ 				md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0,'numel',1);
+ 			end
+-			md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1);
+ 
+ 			md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0,'numel',1);
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19897)
+@@ -49,7 +49,7 @@
+ 			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);
++			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Levermann parameters:'));
+Index: ../trunk-jpl/src/m/classes/balancethickness.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/balancethickness.m	(revision 19897)
+@@ -31,10 +31,10 @@
+ 			if solution~=BalancethicknessSolutionEnum(), return; end
+ 
+ 			md = checkfield(md,'fieldname','balancethickness.spcthickness');
+-			md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1);
++			md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1 1],'values',[0 1 2 3]);
+ 
+-			%md = checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices 1],'NaN',1,'>=',0);
++			%md = checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1,'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   balance thickness solution parameters:'));
+Index: ../trunk-jpl/src/m/classes/linearbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/linearbasalforcings.py	(revision 19897)
+@@ -68,23 +68,23 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+ 
+ 		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+-			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/SMBpdd.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBpdd.m	(revision 19897)
+@@ -77,30 +77,30 @@
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+ 				md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',1);
+-				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',1);
+ 				md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',1);
+ 				if(self.isdelta18o==0 & self.ismungsm==0)
+-					md = checkfield(md,'fieldname','smb.monthlytemperatures','timeseries',1,'NaN',1);
+-					md = checkfield(md,'fieldname','smb.precipitation','timeseries',1,'NaN',1);
++					md = checkfield(md,'fieldname','smb.monthlytemperatures','timeseries',1,'NaN',1,'Inf',1);
++					md = checkfield(md,'fieldname','smb.precipitation','timeseries',1,'NaN',1,'Inf',1);
+ 				elseif(self.isdelta18o==1) 
+-					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
+ 				elseif(self.ismungsm==1) 
+-					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);
+-					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'timeseries',1);                                       
+-					md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,NaN],'singletimeseries',1);
+-					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);
++					md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1,'Inf',1,'timeseries',1);                                       
++					md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
++					md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,NaN],'singletimeseries',1);
+ 				end
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+Index: ../trunk-jpl/src/m/classes/inversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/inversion.m	(revision 19897)
+@@ -158,12 +158,12 @@
+ 			end
+ 
+ 			if solution==BalancethicknessSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			elseif solution==BalancethicknessSoftSolutionEnum()
+-				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			else
+-				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
+-				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/mesh3dprisms.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 19897)
+@@ -143,10 +143,10 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
++			md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.mesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 6]);
+ 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+Index: ../trunk-jpl/src/m/classes/SMBcomponents.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBcomponents.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBcomponents.py	(revision 19897)
+@@ -55,22 +55,22 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 
+Index: ../trunk-jpl/src/m/classes/geometry.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/geometry.m	(revision 19897)
+@@ -64,16 +64,16 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if (solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum()),
+-				md = checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'>=',0);
++				md = checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+ 			else
+-				md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
++				md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>',0);
+ 				if any(abs(self.thickness-self.surface+self.base)>10^-9),
+ 					md = checkmessage(md,['equality thickness=surface-base violated']);
+ 				end 
+ 				if solution==TransientSolutionEnum() & md.transient.isgroundingline,
+-					md = checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices 1]);
++					md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+ 			end
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19897)
+@@ -80,13 +80,13 @@
+ 		end % }}}
+ 		function md = checkconsistency(obj,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.lat','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.long','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.r','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
++			md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.mesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
+ 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+Index: ../trunk-jpl/src/m/classes/gia.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/gia.m	(revision 19897)
+@@ -43,8 +43,8 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ~ismember(GiaAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
+-			md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices 1],'>',0);
++			md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>',0);
++			md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>',0);
+ 			md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]);
+ 
+ 			%be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
+Index: ../trunk-jpl/src/m/classes/SMBmeltcomponents.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBmeltcomponents.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBmeltcomponents.m	(revision 19897)
+@@ -53,28 +53,28 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/friction.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/friction.py	(revision 19897)
+@@ -44,9 +44,9 @@
+ 		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
+-		md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
+-		md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/mesh2dvertical.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 19897)
+@@ -112,9 +112,9 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',1:md.mesh.numberofvertices);
++			md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.mesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
+ 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+Index: ../trunk-jpl/src/m/classes/friction.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/friction.m	(revision 19897)
+@@ -39,9 +39,9 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('Basal shear stress parameters: Sigma_b = coefficient^2 * Neff ^r * |u_b|^(s-1) * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p)'));
+Index: ../trunk-jpl/src/m/classes/frictionweertman.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 19897)
+@@ -37,8 +37,8 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp('Weertman sliding law parameters:');
+Index: ../trunk-jpl/src/m/classes/SMBgradients.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgradients.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBgradients.m	(revision 19897)
+@@ -41,10 +41,10 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1);
+-				md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1,'Inf',1);
++				md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/hydrologydc.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 19897)
+@@ -162,7 +162,7 @@
+ 		if self.transfer_flag==1:
+ 			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
+ 
+-		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
+Index: ../trunk-jpl/src/m/classes/frictionhydro.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionhydro.m	(revision 19897)
+@@ -28,11 +28,11 @@
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+ 			md = checkfield(md,'fieldname','friction.Coupling','numel',[1],'values',[0 1]);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.C','NaN',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','friction.As','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.C','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.As','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 			if self.Coupling==0,
+-				md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','friction.effective_pressure','NaN',1,'Inf',1,'timeseries',1);
+ 	    end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19897)
+@@ -54,10 +54,10 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/frictionweertmantemp.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionweertmantemp.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionweertmantemp.m	(revision 19897)
+@@ -25,8 +25,8 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements 1]);
++			md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp('Weertman sliding law parameters:');
+Index: ../trunk-jpl/src/m/classes/timestepping.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/timestepping.m	(revision 19897)
+@@ -52,9 +52,9 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1);
+-			md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1);
+-			md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1);
++			md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1);
+ 			md = checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0 1]);
+Index: ../trunk-jpl/src/m/classes/taoinversion.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/taoinversion.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/taoinversion.py	(revision 19897)
+@@ -155,12 +155,12 @@
+ 
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 		elif solution==BalancethicknessSoftSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 
+ 		def marshall(self, md, fid):
+ 
+Index: ../trunk-jpl/src/m/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19897)
+@@ -140,8 +140,8 @@
+ 		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2])
+-		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1)
++		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1)
+ 		md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6])
+ 		md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
+Index: ../trunk-jpl/src/m/classes/SMBhenning.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBhenning.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBhenning.m	(revision 19897)
+@@ -35,10 +35,10 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1);
++				md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1,'Inf',1);
+ 			end
+ 			if ismember(BalancethicknessAnalysisEnum(),analyses),
+-				md = checkfield(md,'fieldname','smb.smbref','size',[md.mesh.numberofvertices 1],'NaN',1);
++				md = checkfield(md,'fieldname','smb.smbref','size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
+ 			end
+ 			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/matice.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/matice.py	(revision 19897)
+@@ -122,7 +122,7 @@
+ 		md = checkfield(md,'fieldname','materials.rho_water','>',0)
+ 		md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)
+ 		md = checkfield(md,'fieldname','materials.mu_water','>',0)
+-		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1)
++		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
+ 		md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])
+ 		md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);
+Index: ../trunk-jpl/src/m/classes/masscon.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/masscon.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/masscon.m	(revision 19897)
+@@ -42,7 +42,7 @@
+ 			
+ 			md = checkfield(md,'fieldname','self.definitionenum','field',self.definitionenum,'values',[Outputdefinition1Enum:Outputdefinition100Enum]);
+ 
+-			md = checkfield(md,'fieldname','self.levelset','field',self.levelset,'timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','self.levelset','field',self.levelset,'timeseries',1,'NaN',1,'Inf',1);
+ 
+ 		end % }}}
+ 		function md = disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/spheremesh.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/spheremesh.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/spheremesh.m	(revision 19897)
+@@ -40,13 +40,13 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+-			md = checkfield(md,'fieldname','spheremesh.x','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.y','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.z','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.r','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.theta','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.phi','NaN',1,'size',[md.spheremesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','spheremesh.elements','NaN',1,'>',0,'values',1:md.spheremesh.numberofvertices);
++			md = checkfield(md,'fieldname','spheremesh.x','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.y','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.z','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.r','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.theta','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.phi','NaN',1,'Inf',1,'size',[md.spheremesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','spheremesh.elements','NaN',1,'Inf',1,'>',0,'values',1:md.spheremesh.numberofvertices);
+ 			md = checkfield(md,'fieldname','spheremesh.elements','size',[md.spheremesh.numberofelements 3]);
+ 			if any(~ismember(1:md.spheremesh.numberofvertices,sort(unique(md.spheremesh.elements(:)))));
+ 				md = checkmessage(md,'orphan nodes have been found. Check the spheremesh outline');
+@@ -54,7 +54,7 @@
+ 			md = checkfield(md,'fieldname','spheremesh.numberoflayers','>=',0);
+ 			md = checkfield(md,'fieldname','spheremesh.numberofelements','>',0);
+ 			md = checkfield(md,'fieldname','spheremesh.numberofvertices','>',0);
+-			md = checkfield(md,'fieldname','spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1);
++			md = checkfield(md,'fieldname','spheremesh.elementconnectivity','size',[md.spheremesh.numberofelements 3],'NaN',1,'Inf',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Mesh:')); 
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 19897)
+@@ -152,39 +152,39 @@
+ 		md = checkfield(md,'fieldname','smb.isdensification','values',[0 1]);
+ 		md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]);
+ 		
+-		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'>=',0,'<',45); %max 500 km/h
+-		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'>=',0,'<=',1400);
+-		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'>=',0);
+-		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'>=',0,'<=',100);
+-		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<',45); %max 500 km/h
++		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1400);
++		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'Inf',1,'>=',0);
++		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',100);
++		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1,'Inf',1);
+ 		
+-		md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements 1],'NaN',1,'>',273-60,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0); 
+-		md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0,'<=',5000); 
+-		md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements 1],'NaN',1,'>=',0,'<=',5000); 
++		md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
++		md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0); 
++		md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
++		md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
+ 		
+-		md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'values',[1,2,3,4]);
+-		md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'values',[0,1]);
+-		md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'values',[1,2,3,4,5]);
++		md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[1,2,3,4]);
++		md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]);
++		md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5]);
+ 		
+-		md = checkfield(md,'fieldname','smb.zTop','NaN',1,'>=',0);
+-		md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'>',0);
+-		md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'>',0);
+-		md = checkfield(md,'fieldname','smb.zY','NaN',1,'>=',1);
+-		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'>',0,'<',10*365); %10 years max 
+-		md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'>=',0,'<=',1);
++		md = checkfield(md,'fieldname','smb.zTop','NaN',1,'Inf',1,'>=',0);
++		md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'Inf',1,'>',0);
++		md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'Inf',1,'>',0);
++		md = checkfield(md,'fieldname','smb.zY','NaN',1,'Inf',1,'>=',1);
++		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365); %10 years max 
++		md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'>=',0,'<=',1);
+ 		
+ 		switch self.aIdx,
+ 		case {1 2}
+-			md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'>=',.64,'<=',.89);
+-			md = checkfield(md,'fieldname','smb.aIce','NaN',1,'>=',.27,'<=',.58);
++			md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'Inf',1,'>=',.64,'<=',.89);
++			md = checkfield(md,'fieldname','smb.aIce','NaN',1,'Inf',1,'>=',.27,'<=',.58);
+ 		case 3
+-			md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'>=',0,'<=',1);
++			md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'Inf',1,'>=',0,'<=',1);
+ 		case 4
+-			md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'>=',15,'<=',21.9);
+-			md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'>=',30,'<=',30);
+-			md = checkfield(md,'fieldname','smb.K','NaN',1,'>=',7,'<=',7);
++			md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'Inf',1,'>=',15,'<=',21.9);
++			md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'Inf',1,'>=',30,'<=',30);
++			md = checkfield(md,'fieldname','smb.K','NaN',1,'Inf',1,'>=',7,'<=',7);
+ 		end
+ 		
+ 		%check zTop is < local thickness:
+Index: ../trunk-jpl/src/m/classes/mesh2d.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.py	(revision 19896)
++++ ../trunk-jpl/src/m/classes/mesh2d.py	(revision 19897)
+@@ -83,9 +83,9 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+ 		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
+ 		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
+ 			md.checkmessage("orphan nodes have been found. Check the mesh outline")
+Index: ../trunk-jpl/src/m/classes/frictionsommers.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionsommers.m	(revision 19896)
++++ ../trunk-jpl/src/m/classes/frictionsommers.m	(revision 19897)
+@@ -28,7 +28,7 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('Basal shear stress parameters: Sigma_b = coefficient^2 * Neff * u_b\n(effective stress Neff=rho_ice*g*thickness+rho_water*g*(head-b))'));
Index: /issm/oecreview/Archive/19101-20495/ISSM-19897-19898.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19897-19898.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19897-19898.diff	(revision 20498)
@@ -0,0 +1,633 @@
+Index: ../trunk-jpl/src/py3/classes/SMBforcing.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBforcing.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBforcing.py	(revision 19898)
+@@ -42,10 +42,10 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 19898)
+@@ -55,7 +55,7 @@
+ 		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+-		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'size',[md.mesh.numberofvertices],'>=',0)
++		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+Index: ../trunk-jpl/src/py3/classes/m1qn3inversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/m1qn3inversion.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/m1qn3inversion.py	(revision 19898)
+@@ -144,7 +144,7 @@
+ 		md = checkfield(md,'fieldname','inversion.iscontrol','values',[0,1])
+ 		md = checkfield(md,'fieldname','inversion.incomplete_adjoint','values',[0,1])
+ 		md = checkfield(md,'fieldname','inversion.control_parameters','cell',1,'values',supportedcontrols())
+-		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1)
++		md = checkfield(md,'fieldname','inversion.control_scaling_factors','size',[num_controls],'>',0,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','inversion.maxsteps','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','inversion.maxiter','numel',[1],'>=',0)
+ 		md = checkfield(md,'fieldname','inversion.dxmin','numel',[1],'>',0.)
+@@ -155,10 +155,10 @@
+ 		md = checkfield(md,'fieldname','inversion.max_parameters','size',[md.mesh.numberofvertices,num_controls])
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/frictioncoulomb.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/frictioncoulomb.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/frictioncoulomb.py	(revision 19898)
+@@ -47,10 +47,10 @@
+ 	if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 	    return md
+ 
+-	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
+-	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1)
+-	md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
+-	md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)
++	md = checkfield(md,'fieldname','friction.coefficientcoulomb','timeseries',1,'NaN',1,'Inf',1)
++	md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
++	md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 	return md
+     # }}}
+Index: ../trunk-jpl/src/py3/classes/gia.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/gia.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/gia.py	(revision 19898)
+@@ -47,8 +47,8 @@
+ 		if (GiaAnalysisEnum() not in  analyses):
+ 			return md 
+ 		
+-		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
+-		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0)
++		md = checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0)
+ 		md = checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2])
+ 
+ 		#be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
+Index: ../trunk-jpl/src/py3/classes/balancethickness.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/balancethickness.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/balancethickness.py	(revision 19898)
+@@ -42,7 +42,7 @@
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','balancethickness.spcthickness')
+-		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1)
++		md = checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','balancethickness.stabilization','size',[1],'values',[0,1,2,3])
+ 
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/SMBd18opdd.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBd18opdd.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBd18opdd.py	(revision 19898)
+@@ -90,15 +90,15 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if self.isd18opd:
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 				md = checkfield(md,'fieldname','smb.dpermil','>=',0,'numel',[1])
+ 		
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+Index: ../trunk-jpl/src/py3/classes/linearbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/linearbasalforcings.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/linearbasalforcings.py	(revision 19898)
+@@ -68,23 +68,23 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+ 
+ 		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_melting_rate','>=',0);
+ 			md = checkfield(md,'fieldname','basalforcings.deepwater_elevation','<',md.basalforcings.upperwater_elevation);
+ 			md = checkfield(md,'fieldname','basalforcings.upperwater_elevation','<',0);
+-			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBpdd.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBpdd.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBpdd.py	(revision 19898)
+@@ -119,31 +119,31 @@
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+ 			md = checkfield(md,'fieldname','smb.desfac','<=',1,'numel',[1])
+-			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
+-			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0p','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++			md = checkfield(md,'fieldname','smb.s0t','>=',0,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 			md = checkfield(md,'fieldname','smb.rlaps','>=',0,'numel',[1])
+ 			md = checkfield(md,'fieldname','smb.rlapslgm','>=',0,'numel',[1])
+ 
+ 			if (self.isdelta18o==0 and self.ismungsm==0):
+-				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.monthlytemperatures','NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitation','NaN',1,'Inf',1,'timeseries',1)
+ 			elif self.isdelta18o:
+-				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.delta18o_surface','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 			elif self.ismungsm:
+-				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)
+-				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'timeseries',1)                                       
+-				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
+-				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.temperatures_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_presentday','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)
++				md = checkfield(md,'fieldname','smb.precipitations_lgm','size',[md.mesh.numberofvertices+1,12],'NaN',1,'Inf',1,'timeseries',1)                                       
++				md = checkfield(md,'fieldname','smb.Pfac','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.Tdiff','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
++				md = checkfield(md,'fieldname','smb.sealev','NaN',1,'Inf',1,'size',[2,numpy.nan],'singletimeseries',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/taoinversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/taoinversion.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/taoinversion.py	(revision 19898)
+@@ -155,12 +155,12 @@
+ 
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 		elif solution==BalancethicknessSoftSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1)
+ 
+ 		def marshall(self, md, fid):
+ 
+Index: ../trunk-jpl/src/py3/classes/frictionweertman.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/frictionweertman.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/frictionweertman.py	(revision 19898)
+@@ -36,8 +36,8 @@
+ 		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1)
+-		md = checkfield(md,'fieldname','friction.m','NaN',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.C','timeseries',1,'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','friction.m','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/mesh3dprisms.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mesh3dprisms.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/mesh3dprisms.py	(revision 19898)
+@@ -105,10 +105,10 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.z','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+ 		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,6])
+ 		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
+ 			md.checkmessage("orphan nodes have been found. Check the mesh3dprisms outline")
+Index: ../trunk-jpl/src/py3/classes/SMBgradients.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBgradients.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBgradients.py	(revision 19898)
+@@ -48,10 +48,10 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1)
+-			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.href','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.smbref','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.b_pos','timeseries',1,'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','smb.b_neg','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calving.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/calving.py	(revision 19898)
+@@ -54,8 +54,8 @@
+ 
+ 		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+-		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);
+-		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1);
++		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
++		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/SMBcomponents.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBcomponents.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBcomponents.py	(revision 19898)
+@@ -55,22 +55,22 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.runoff','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 
+Index: ../trunk-jpl/src/py3/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 19898)
+@@ -140,8 +140,8 @@
+ 		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0,1,2])
+-		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1)
++		md = checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1],'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','stressbalance.maxiter','size',[1],'>=',1)
+ 		md = checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices,6])
+ 		md = checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices,3])
+Index: ../trunk-jpl/src/py3/classes/geometry.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/geometry.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/geometry.py	(revision 19898)
+@@ -45,13 +45,13 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
++		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
+ 		if any(abs(self.thickness-self.surface+self.base)>10**-9):
+ 			md.checkmessage("equality thickness=surface-base violated")
+ 		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
+-			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mismipbasalforcings.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/mismipbasalforcings.py	(revision 19898)
+@@ -57,25 +57,25 @@
+ 	#Early return
+         if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.ismasstransport==0):
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if BalancethicknessAnalysisEnum() in analyses:
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+ 
+         if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and md.transient.isthermal==0):
+ 
+-	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
++	    md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 	    md = checkfield(md,'fieldname','basalforcings.meltrate_factor','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.threshold_thickness','>=',0,'numel',[1])
+ 	    md = checkfield(md,'fieldname','basalforcings.upperdepth_melt','<=',0,'numel',[1])
+-	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++	    md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 	return md
+     # }}}
+     def marshall(self,md,fid):    # {{{
+Index: ../trunk-jpl/src/py3/classes/matice.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/matice.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/matice.py	(revision 19898)
+@@ -122,7 +122,7 @@
+ 		md = checkfield(md,'fieldname','materials.rho_water','>',0)
+ 		md = checkfield(md,'fieldname','materials.rho_freshwater','>',0)
+ 		md = checkfield(md,'fieldname','materials.mu_water','>',0)
+-		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1)
++		md = checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
+ 		md = checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval'])
+ 		md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',[1]);
+Index: ../trunk-jpl/src/py3/classes/timestepping.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/timestepping.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/timestepping.py	(revision 19898)
+@@ -52,9 +52,9 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1)
+-		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1)
++		md = checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1)
+ 		if self.final_time-self.start_time<0:
+Index: ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/SMBmeltcomponents.py	(revision 19898)
+@@ -61,28 +61,28 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.accumulation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.melt','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.refreeze','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','timeseries',1,'NaN',1,'Inf',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','smb.evaporation','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		md = checkfield(md,'fieldname','masstransport.requested_outputs','stringrow',1)
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/inversion.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/inversion.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/inversion.py	(revision 19898)
+@@ -150,10 +150,10 @@
+ 				md.checkmessage("'inversion can only be performed for SSA, HO or FS ice flow models");
+ 
+ 		if solution==BalancethicknessSolutionEnum():
+-			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 		else:
+-			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1)
+-			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1)
++			md = checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
++			md = checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/friction.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/friction.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/friction.py	(revision 19898)
+@@ -44,9 +44,9 @@
+ 		if StressbalanceAnalysisEnum() not in analyses and ThermalAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1)
+-		md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements])
+-		md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
++		md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/basalforcings.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/basalforcings.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/basalforcings.py	(revision 19898)
+@@ -54,17 +54,17 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		if MasstransportAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
+ 
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 
+ 		if ThermalAnalysisEnum() in analyses and not (solution==TransientSolutionEnum() and not md.transient.isthermal):
+-			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1)
+-			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0)
++			md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1)
++			md = checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0)
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/mesh2d.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/mesh2d.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/mesh2d.py	(revision 19898)
+@@ -83,9 +83,9 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',numpy.arange(1,md.mesh.numberofvertices+1))
+ 		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
+ #		if numpy.any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
+ 		if any(numpy.logical_not(m.ismember(numpy.arange(1,md.mesh.numberofvertices+1),md.mesh.elements))):
+Index: ../trunk-jpl/src/py3/classes/initialization.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/initialization.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/initialization.py	(revision 19898)
+@@ -70,39 +70,39 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 		if StressbalanceAnalysisEnum() in analyses:
+ 			if not numpy.any(numpy.logical_or(numpy.isnan(md.initialization.vx),numpy.isnan(md.initialization.vy))):
+-				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if MasstransportAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if BalancethicknessAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			#Triangle with zero velocity
+ 			if numpy.any(numpy.logical_and(numpy.sum(numpy.abs(md.initialization.vx[md.mesh.elements-1]),axis=1)==0,\
+ 			                               numpy.sum(numpy.abs(md.initialization.vy[md.mesh.elements-1]),axis=1)==0)):
+ 				md.checkmessage("at least one triangle has all its vertices with a zero velocity")
+ 		if ThermalAnalysisEnum() in analyses:
+-			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			if md.mesh.dimension()==3:
+-				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
+-			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.vz','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 			if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
+ 				md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
+ 				md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
+ 		if HydrologyShreveAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologyshreve'):
+-				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
++				md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 		if HydrologyDCInefficientAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologydc'):
+-				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices,1])
++				md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 		if HydrologyDCEfficientAnalysisEnum() in analyses:
+ 			if hasattr(md.hydrology,'hydrologydc'):
+ 				if md.hydrology.isefficientlayer==1:
+-					md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices,1])
+-					md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices,1])
++					md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++					md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 
+ 		return md
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/hydrologydc.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 19897)
++++ ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 19898)
+@@ -162,7 +162,7 @@
+ 		if self.transfer_flag==1:
+ 			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
+ 
+-		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19898-19899.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19898-19899.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19898-19899.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/py3/consistency/checkfield.py
+===================================================================
+--- ../trunk-jpl/src/py3/consistency/checkfield.py	(revision 19898)
++++ ../trunk-jpl/src/py3/consistency/checkfield.py	(revision 19899)
+@@ -94,6 +94,12 @@
+ 			md = md.checkmessage(options.getfieldvalue('message',\
+ 				"NaN values found in field '%s'" % fieldname))
+ 
++	#check Inf
++	if options.getfieldvalue('Inf',0):
++		if numpy.any(numpy.isinf(field)):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"Inf values found in field '%s'" % fieldname))
++
+ 	#check cell
+ 	if options.getfieldvalue('cell',0):
+ 		if not isinstance(field,(tuple,list,dict)):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19899-19900.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19899-19900.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19899-19900.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.py
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19899)
++++ ../trunk-jpl/src/m/consistency/checkfield.py	(revision 19900)
+@@ -94,6 +94,12 @@
+ 			md = md.checkmessage(options.getfieldvalue('message',\
+ 				"NaN values found in field '%s'" % fieldname))
+ 
++	#check Inf
++	if options.getfieldvalue('Inf',0):
++		if numpy.any(numpy.isinf(field)):
++			md = md.checkmessage(options.getfieldvalue('message',\
++				"Inf values found in field '%s'" % fieldname))
++
+ 	#check cell
+ 	if options.getfieldvalue('cell',0):
+ 		if not isinstance(field,(tuple,list,dict)):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19900-19901.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19900-19901.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19900-19901.diff	(revision 20498)
@@ -0,0 +1,312 @@
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19901)
+@@ -83,12 +83,12 @@
+ 			checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1);
+ 			checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1);
+ 			checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1);
+-			checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1);
++			checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','stressbalance.reltol','size',[1, 1]);
+ 			checkfield(md,'fieldname','stressbalance.abstol','size',[1, 1]);
+ 			checkfield(md,'fieldname','stressbalance.isnewton','numel',[1],'values',[0, 1, 2]);
+-			checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1, 1],'NaN',1);
+-			checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1, 1],'NaN',1);
++			checkfield(md,'fieldname','stressbalance.FSreconditioning','size',[1, 1],'NaN',1,'Inf',1);
++			checkfield(md,'fieldname','stressbalance.viscosity_overshoot','size',[1, 1],'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','stressbalance.maxiter','size',[1, 1],'>=',1);
+ 			checkfield(md,'fieldname','stressbalance.referential','size',[md.mesh.numberofvertices, 6]);
+ 			checkfield(md,'fieldname','stressbalance.loadingforce','size',[md.mesh.numberofvertices, 3]);
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19901)
+@@ -85,7 +85,7 @@
+ 			checkfield(md,'fieldname','materials.rho_water','>',0);
+ 			checkfield(md,'fieldname','materials.rho_freshwater','>',0);
+ 			checkfield(md,'fieldname','materials.mu_water','>',0);
+-			checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1);
++			checkfield(md,'fieldname','materials.rheology_B','>',0,'timeseries',1,'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements,1]);
+ 			checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','Paterson','Arrhenius','LliboutryDuval']);
+ 
+Index: ../trunk-jpl/src/m/classes/mesh2d.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/mesh2d.js	(revision 19901)
+@@ -58,9 +58,9 @@
+ 		} // }}}
+ 		this.checkconsistency = function(md,solution,analyses){ //{{{
+ 
+-			checkfield(md,'fieldname','mesh.x','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-			checkfield(md,'fieldname','mesh.y','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-			checkfield(md,'fieldname','mesh.elements','NaN',1,'>',0,'values',NewArrayFillIncrement(md.mesh.numberofvertices,1,1));
++			checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',NewArrayFillIncrement(md.mesh.numberofvertices,1,1));
+ 			checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements, 3]);
+ 			if(ArrayAnyEqual(ArrayIsMember(NewArrayFillIncrement(md.mesh.numberofvertices,1,1),ArraySort(ArrayUnique(MatrixToList(md.mesh.elements)))),0)){
+ 				md.checkmessage('orphan nodes have been found. Check the mesh outline');
+@@ -68,7 +68,7 @@
+ 			checkfield(md,'fieldname','mesh.numberofelements','>',0);
+ 			checkfield(md,'fieldname','mesh.numberofvertices','>',0);
+ 			checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d");
+-			checkfield(md,'fieldname','mesh.segments','NaN',1,'>',0,'size',[NaN, 3]);
++			checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[NaN, 3]);
+ 
+ 			switch(solution){
+ 			case ThermalSolutionEnum():
+Index: ../trunk-jpl/src/m/classes/gia.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/gia.js	(revision 19901)
+@@ -26,8 +26,8 @@
+ 
+ 		if(!ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1))return;
+ 
+-		checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0);
+-		checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'size',[md.mesh.numberofvertices,1],'>',0);
++		checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0);
++		checkfield(md,'fieldname','gia.lithosphere_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0);
+ 		checkfield(md,'fieldname','gia.cross_section_shape','numel',[1],'values',[1,2]);
+ 
+ 		//be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 
+Index: ../trunk-jpl/src/m/classes/balancethickness.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/balancethickness.js	(revision 19901)
+@@ -28,9 +28,9 @@
+ 			if (solution!=BalancethicknessSolutionEnum())return;
+ 
+ 			checkfield(md,'fieldname','balancethickness.spcthickness');
+-			checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices ,1],'NaN',1);
++			checkfield(md,'fieldname','balancethickness.thickening_rate','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','balancethickness.stabilization','size',[1, 1],'values',[0, 1, 2 ,3]);
+-			//checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices ,1],'NaN',1,'>=',0);
++			//checkfield(md,'fieldname','balancethickness.omega','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1,'>=',0);
+ 		} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+ 
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19901)
+@@ -29,8 +29,8 @@
+ 
+ 		checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
+ 		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+-		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
+-		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
++		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
++		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 	} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+ 			var yts=365.0*24.0*3600.0;
+Index: ../trunk-jpl/src/m/classes/timestepping.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/timestepping.js	(revision 19901)
+@@ -38,9 +38,9 @@
+ 	}// }}}
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 			
+-			checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1);
+-			checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1);
+-			checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1);
++			checkfield(md,'fieldname','timestepping.start_time','numel',[1],'NaN',1,'Inf',1);
++			checkfield(md,'fieldname','timestepping.final_time','numel',[1],'NaN',1,'Inf',1);
++			checkfield(md,'fieldname','timestepping.time_step','numel',[1],'>=',0,'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','timestepping.time_adapt','numel',[1],'values',[0,1]);
+ 			checkfield(md,'fieldname','timestepping.cfl_coefficient','numel',[1],'>',0,'<=',1);
+ 			checkfield(md,'fieldname','timestepping.interp_forcings','numel',[1],'values',[0,1]);
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 19901)
+@@ -26,17 +26,17 @@
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 			if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)){
+ 				if (!(isNaN(md.initialization.vx) | isNaN(md.initialization.vy))){
+-					checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-					checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++					checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++					checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 				}
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
+-				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum())){
+-				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 				//Triangle with zero velocity
+ 				for(var i=0;i<md.mesh.numberofelements;i++){
+ 					var sum=0;
+@@ -49,13 +49,13 @@
+ 				}
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
+-				checkfield(md,'fieldname','initialization.vx','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','initialization.vy','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 				if (md.mesh.dimension() == 3){
+-					checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++					checkfield(md,'fieldname','initialization.vz','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
+ 				}
+-				checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices ,1]);
+-				checkfield(md,'fieldname','initialization.temperature','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++				checkfield(md,'fieldname','initialization.pressure','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
++				checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
+ 			}
+ 			if( ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy){
+ 				checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices, 1]);
+@@ -63,19 +63,19 @@
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)){
+ 				if (md.hydrology.type() == 'hydrologyshreve'){
+-					checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++					checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
+ 				}
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(HydrologyDCInefficientAnalysisEnum(),analyses),1)){
+ 				if (md.hydrology.type() == 'hydrologydc'){
+-					checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++					checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 				}
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(HydrologyDCEfficientAnalysisEnum(),analyses),1)){
+ 				if (md.hydrology.type() == 'hydrologydc'){
+ 					if (md.hydrology.isefficientlayer==1){
+-						checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices ,1]);
+-						checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices ,1]);
++						checkfield(md,'fieldname','initialization.epl_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
++						checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
+ 					}
+ 				}
+ 			}
+Index: ../trunk-jpl/src/m/classes/SMBforcing.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/SMBforcing.js	(revision 19901)
+@@ -30,10 +30,10 @@
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
+-				checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1);
++				checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
+-				checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1);
++				checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1,'Inf',1);
+ 			}
+ 			checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
+ 
+Index: ../trunk-jpl/src/m/classes/geometry.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/geometry.js	(revision 19901)
+@@ -21,12 +21,12 @@
+ 		this.checkconsistency = function(md,solution,analyses) { //{{{
+ 
+ 			if ((solution==TransientSolutionEnum() & md.trans.isgia) | (solution==GiaSolutionEnum())){
+-				checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'>=',0);
++				checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+ 			}
+ 			else{
+-				checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','geometry.thickness','NaN',1,'size',[md.mesh.numberofvertices, 1],'>',0);
++				checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1],'>',0);
+ 				for(var i=0;i<md.mesh.numberofvertices;i++){
+ 					if (Math.abs(md.geometry.thickness.thickness-md.geometry.surface+md.geometry.base)>Math.pow(10,9)){
+ 						md = checkmessage(md,'equality thickness=surface-base violated');
+@@ -34,7 +34,7 @@
+ 					}
+ 				}
+ 				if (solution==TransientSolutionEnum() & md.trans.isgroundingline){
+-					checkfield(md,'fieldname','geometry.bed','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++					checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 				}
+ 			}
+ 		} // }}}
+Index: ../trunk-jpl/src/m/classes/inversion.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/inversion.js	(revision 19901)
+@@ -105,14 +105,14 @@
+ 			}
+ 
+ 			if (solution==BalancethicknessSolutionEnum()){
+-				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
++				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1);
+ 			}
+ 			else if (solution==BalancethicknessSoftSolutionEnum()){
+-				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1);
++				checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1);
+ 			}
+ 			else{
+-				checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
+-				checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices ,1],'NaN',1);
++				checkfield(md,'fieldname','inversion.vx_obs','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1);
++				checkfield(md,'fieldname','inversion.vy_obs','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1);
+ 			}
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+Index: ../trunk-jpl/src/m/classes/basalforcings.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/basalforcings.js	(revision 19901)
+@@ -36,20 +36,20 @@
+ 
+ 			if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
+ 				if (!(solution==TransientSolutionEnum() & md.trans.ismasstransport==0)){
+-					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+-					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
+ 				}
+ 			}
+ 
+ 			if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
+-				checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices, 1]);
+-				checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++				checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 			}
+ 			if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
+ 				if (!(solution==TransientSolutionEnum() & md.trans.isthermal==0)){
+-					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
+-					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
+-					checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'timeseries',1,'>=',0);
++					checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
++					checkfield(md,'fieldname','basalforcings.geothermalflux','NaN',1,'Inf',1,'timeseries',1,'>=',0);
+ 				}
+ 			}
+ 		} // }}}
+Index: ../trunk-jpl/src/m/classes/friction.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.js	(revision 19900)
++++ ../trunk-jpl/src/m/classes/friction.js	(revision 19901)
+@@ -23,9 +23,9 @@
+ 			if ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1))){
+ 				return; 
+ 			}
+-			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1);
+-			md = checkfield(md,'fieldname','friction.q','NaN',1,'size',[md.mesh.numberofelements ,1]);
+-			md = checkfield(md,'fieldname','friction.p','NaN',1,'size',[md.mesh.numberofelements ,1]);
++			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements ,1]);
++			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements ,1]);
+ 
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-19901-19902.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19901-19902.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19901-19902.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.js	(revision 19901)
++++ ../trunk-jpl/src/m/consistency/checkfield.js	(revision 19902)
+@@ -7,6 +7,7 @@
+ //             If 'field' is provided, it will assume the argument following 'field' is a numeric array.
+ //   Available options:
+ //      - NaN: 1 if check that there is no NaN
++//      - Inf: 1 if check that there is no Inf
+ //      - size: [lines cols], NaN for non checked dimensions
+ //      - >:  greater than provided value
+ //      - >=: greater or equal to provided value
+@@ -97,6 +98,14 @@
+ 		}
+ 	}
+ 
++	//check Inf
++	if (options.getfieldvalue('Inf',0)){
++		field2=MatrixToList(field);
++		if (ArrayAnyEqual(field2,Inf)){
++			md.checkmessage(options.getfieldvalue('message',sprintf("Inf values found in field %s",field)));
++		}
++	}
++
+ 	//check arry
+ 	if (options.getfieldvalue('array',0)){
+ 		if (!IsArray(field)){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19902-19903.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19902-19903.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19902-19903.diff	(revision 20498)
@@ -0,0 +1,469 @@
+Index: ../trunk-jpl/src/py3/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 19903)
+@@ -52,7 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+ 		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
+Index: ../trunk-jpl/src/py3/classes/thermal.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/thermal.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/thermal.py	(revision 19903)
+@@ -94,7 +94,7 @@
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2])
+-		md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1)
++		md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1)
+ 		if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension()==3:
+ 			pos=numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices])))
+ 			replicate=numpy.tile(md.geometry.surface-md.mesh.z,(1,numpy.size(md.thermal.spctemperature,axis=1)))
+Index: ../trunk-jpl/src/py3/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/damage.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/damage.py	(revision 19903)
+@@ -123,7 +123,7 @@
+ 			md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
+ 			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
+ 			md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3])
+-			md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1)
++			md = checkfield(md,'fieldname','damage.spcdamage','Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4])
+ 			md = checkfield(md,'fieldname','damage.maxiter','>=0',0)
+ 			md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2'])
+Index: ../trunk-jpl/src/py3/classes/masstransport.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/masstransport.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/masstransport.py	(revision 19903)
+@@ -71,7 +71,7 @@
+ 		if (MasstransportAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1)
++		md = checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1])
+ 		md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])
+ 		md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4])
+Index: ../trunk-jpl/src/py3/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calving.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/calving.py	(revision 19903)
+@@ -52,7 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+Index: ../trunk-jpl/src/py3/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/stressbalance.py	(revision 19903)
+@@ -132,10 +132,10 @@
+ 		if StressbalanceAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1)
+-		md = checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1)
+ 		if m.strcmp(md.mesh.domaintype(),'3D'):
+-			md = checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1)
++			md = checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0)
+ 		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
+Index: ../trunk-jpl/src/py3/classes/hydrologyshreve.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/hydrologyshreve.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/hydrologyshreve.py	(revision 19903)
+@@ -42,7 +42,7 @@
+ 		if HydrologyShreveAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
+ 
+ 		return md
+Index: ../trunk-jpl/src/py3/classes/hydrologydc.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 19902)
++++ ../trunk-jpl/src/py3/classes/hydrologydc.py	(revision 19903)
+@@ -163,13 +163,13 @@
+ 			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
+ 
+ 		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1)
+-		md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.spcsediment_head','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1])
+ 		if self.isefficientlayer==1:
+-			md = checkfield(md,'fieldname','hydrology.spcepl_head','timeseries',1)
++			md = checkfield(md,'fieldname','hydrology.spcepl_head','Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1])
+ 			md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1])
+ 			md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1])
+Index: ../trunk-jpl/src/m/classes/thermal.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/thermal.py	(revision 19903)
+@@ -94,7 +94,7 @@
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0,1,2])
+-		md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1)
++		md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1)
+ 		if EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy and md.mesh.dimension()==3:
+ 			pos=numpy.nonzero(numpy.logical_not(numpy.isnan(md.thermal.spctemperature[0:md.mesh.numberofvertices])))
+ 			replicate=numpy.tile(md.geometry.surface-md.mesh.z,(1,numpy.size(md.thermal.spctemperature,axis=1)))
+Index: ../trunk-jpl/src/m/classes/stressbalance.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/stressbalance.js	(revision 19903)
+@@ -80,9 +80,9 @@
+ 			//Early return
+ 			if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),0))return;
+ 
+-			checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1);
+-			checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1);
+-			checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1);
++			checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
++			checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1);
++			checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1);
+ 			checkfield(md,'fieldname','stressbalance.restol','size',[1, 1],'>',0,'NaN',1,'Inf',1);
+ 			checkfield(md,'fieldname','stressbalance.reltol','size',[1, 1]);
+ 			checkfield(md,'fieldname','stressbalance.abstol','size',[1, 1]);
+Index: ../trunk-jpl/src/m/classes/frictionwaterlayer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/frictionwaterlayer.m	(revision 19903)
+@@ -34,7 +34,7 @@
+ 			md = checkfield(md,'fieldname','friction.f','size',[1 1],'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+-			md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1,'>=',0.);
++			md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1,'>=',0.);
+ 
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+Index: ../trunk-jpl/src/m/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calving.py	(revision 19903)
+@@ -52,7 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+Index: ../trunk-jpl/src/m/classes/thermal.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/thermal.m	(revision 19903)
+@@ -98,7 +98,7 @@
+ 			if (~ismember(ThermalAnalysisEnum(),analyses) & ~ismember(EnthalpyAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isthermal==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 1 2]);
+-			md = checkfield(md,'fieldname','thermal.spctemperature','timeseries',1);
++			md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1);
+ 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & dimension(md.mesh)==3),
+ 				pos=find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN);
+ 				replicate=repmat(md.geometry.surface-md.mesh.z,1,size(md.thermal.spctemperature,2));
+Index: ../trunk-jpl/src/m/classes/thermal.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/thermal.js	(revision 19903)
+@@ -57,7 +57,7 @@
+ 		if(!ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1) & !ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1)  | (solution == TransientSolutionEnum() & md.trans.isthermal==0)) return;
+ 
+ 		checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]);
+-		checkfield(md,'fieldname','thermal.spctemperature','timeseries',1);
++		checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1);
+ 		if(ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy & md.mesh.dimension() == 3){
+ 			
+ 			for(var i=0;i<md.mesh.numberofvertices;i++){
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 19903)
+@@ -52,7 +52,7 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
++		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+ 		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 19903)
+@@ -27,7 +27,7 @@
+ 		//Early return
+ 		if (solution!=TransientSolutionEnum() | md.trans.iscalving==0) return;
+ 
+-		checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++		checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+Index: ../trunk-jpl/src/m/classes/masstransport.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/masstransport.py	(revision 19903)
+@@ -71,7 +71,7 @@
+ 		if (MasstransportAnalysisEnum() not in analyses) or (solution==TransientSolutionEnum() and not md.transient.ismasstransport):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1)
++		md = checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0,1])
+ 		md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute','Incremental'])
+ 		md = checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4])
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 19903)
+@@ -44,7 +44,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19903)
+@@ -133,9 +133,9 @@
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses), return; end
+ 
+-			md = checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1);
+-			md = checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1);
+-			md = checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1);
++			md = checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','stressbalance.restol','size',[1 1],'>',0,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','stressbalance.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','stressbalance.abstol','size',[1 1]);
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.py	(revision 19903)
+@@ -42,7 +42,7 @@
+ 		if HydrologyShreveAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.stabilization','>=',0)
+ 
+ 		return md
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19903)
+@@ -44,7 +44,7 @@
+ 				return;
+ 			end
+ 
+-			md = checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.stabilization','>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+Index: ../trunk-jpl/src/m/classes/calvingpi.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calvingpi.m	(revision 19903)
+@@ -46,7 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19903)
+@@ -139,7 +139,7 @@
+ 			if self.isdamage,
+ 				md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2]);
+ 				md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices 1]);
+-				md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1);
++				md = checkfield(md,'fieldname','damage.spcdamage','Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0);
+ 				md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0 1 2 4]);
+ 				md = checkfield(md,'fieldname','damage.maxiter','>=0',0);
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 19903)
+@@ -46,7 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+Index: ../trunk-jpl/src/m/classes/hydrologydc.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologydc.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/hydrologydc.m	(revision 19903)
+@@ -115,14 +115,14 @@
+ 			end
+ 			md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1);
+ 
+-			md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1);
++			md = checkfield(md,'fieldname','hydrology.spcsediment_head','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0,'numel',1);
+ 			md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0,'numel',1);
+ 			md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0,'numel',1);
+ 			md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices 1]);
+ 
+ 			if self.isefficientlayer==1,
+-				md = checkfield(md,'fieldname','hydrology.spcepl_head','timeseries',1);
++				md = checkfield(md,'fieldname','hydrology.spcepl_head','Inf',1,'timeseries',1);
+ 				md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices 1],'values',[0 1]);
+ 				md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0,'numel',1);
+ 				md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0,'numel',1);
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 19903)
+@@ -46,7 +46,7 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
++			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+Index: ../trunk-jpl/src/m/classes/masstransport.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/masstransport.js	(revision 19903)
+@@ -45,7 +45,7 @@
+ 			//Early return
+ 			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1) | (solution==TransientSolutionEnum() & md.trans.ismasstransport==0)) return; 
+ 
+-			checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1);
++			checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1);
+ 			checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 ,1]);
+ 			checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',['Absolute', 'Incremental']);
+ 			checkfield(md,'fieldname','masstransport.stabilization','values',[0,1,2,3,4]);
+Index: ../trunk-jpl/src/m/classes/damage.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/damage.py	(revision 19903)
+@@ -124,7 +124,7 @@
+ 			md = checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices])
+ 			md = checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0)
+ 			md = checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2,3])
+-			md = checkfield(md,'fieldname','damage.spcdamage','timeseries',1)
++			md = checkfield(md,'fieldname','damage.spcdamage','Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0,1,2,4])
+ 			md = checkfield(md,'fieldname','damage.maxiter','>=0',0)
+ 			md = checkfield(md,'fieldname','damage.elementinterp','values',['P1','P2'])
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.js	(revision 19903)
+@@ -31,7 +31,7 @@
+ 			//Early return
+ 			if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)) return;
+ 
+-			checkfield(md,'fieldname','hydrology.spcwatercolumn','timeseries',1);
++			checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1);
+ 			checkfield(md,'fieldname','hydrology.stabilization','>=',0);
+ 
+ 		} // }}}
+Index: ../trunk-jpl/src/m/classes/hydrologydc.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/hydrologydc.py	(revision 19903)
+@@ -163,13 +163,13 @@
+ 			md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0.,'numel',[1])
+ 
+ 		md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'Inf',1,'timeseries',1)
+-		md = checkfield(md,'fieldname','hydrology.spcsediment_head','timeseries',1)
++		md = checkfield(md,'fieldname','hydrology.spcsediment_head','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','hydrology.sediment_compressibility','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_porosity','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_thickness','>',0.,'numel',[1])
+ 		md = checkfield(md,'fieldname','hydrology.sediment_transmitivity','>=',0,'size',[md.mesh.numberofvertices,1])
+ 		if self.isefficientlayer==1:
+-			md = checkfield(md,'fieldname','hydrology.spcepl_head','timeseries',1)
++			md = checkfield(md,'fieldname','hydrology.spcepl_head','Inf',1,'timeseries',1)
+ 			md = checkfield(md,'fieldname','hydrology.mask_eplactive_node','size',[md.mesh.numberofvertices,1],'values',[0,1])
+ 			md = checkfield(md,'fieldname','hydrology.epl_compressibility','>',0.,'numel',[1])
+ 			md = checkfield(md,'fieldname','hydrology.epl_porosity','>',0.,'numel',[1])
+Index: ../trunk-jpl/src/m/classes/damage.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.js	(revision 19902)
++++ ../trunk-jpl/src/m/classes/damage.js	(revision 19903)
+@@ -70,7 +70,7 @@
+ 			if (this.isdamage){
+ 				checkfield(md,'fieldname','damage.law','numel',[1],'values',[0,1,2]);
+ 				checkfield(md,'fieldname','damage.D','>=',0,'<=',self.max_damage,'size',[md.mesh.numberofvertices ,1]);
+-				checkfield(md,'fieldname','damage.spcdamage','timeseries',1);
++				checkfield(md,'fieldname','damage.spcdamage','Inf',1,'timeseries',1);
+ 				checkfield(md,'fieldname','damage.max_damage','<',1,'>=',0);
+ 				checkfield(md,'fieldname','damage.stabilization','numel',[1],'values',[0, 1, 2, 4]);
+ 				checkfield(md,'fieldname','damage.maxiter','>=0',0);
+Index: ../trunk-jpl/src/m/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19902)
++++ ../trunk-jpl/src/m/classes/stressbalance.py	(revision 19903)
+@@ -132,10 +132,10 @@
+ 		if StressbalanceAnalysisEnum() not in analyses:
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','stressbalance.spcvx','timeseries',1)
+-		md = checkfield(md,'fieldname','stressbalance.spcvy','timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1)
++		md = checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1)
+ 		if m.strcmp(md.mesh.domaintype(),'3D'):
+-			md = checkfield(md,'fieldname','stressbalance.spcvz','timeseries',1)
++			md = checkfield(md,'fieldname','stressbalance.spcvz','Inf',1,'timeseries',1)
+ 		md = checkfield(md,'fieldname','stressbalance.restol','size',[1],'>',0)
+ 		md = checkfield(md,'fieldname','stressbalance.reltol','size',[1])
+ 		md = checkfield(md,'fieldname','stressbalance.abstol','size',[1])
+Index: ../trunk-jpl/src/m/classes/masstransport.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.m	(revision 19902)
++++ ../trunk-jpl/src/m/classes/masstransport.m	(revision 19903)
+@@ -88,7 +88,7 @@
+ 			%Early return
+ 			if ~ismember(MasstransportAnalysisEnum(),analyses) |  (solution==TransientSolutionEnum() & md.transient.ismasstransport==0), return; end
+ 
+-			md = checkfield(md,'fieldname','masstransport.spcthickness','timeseries',1);
++			md = checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 1]);
+ 			md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'});
+ 			md = checkfield(md,'fieldname','masstransport.stabilization','values',[0 1 2 3 4]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19903-19904.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19903-19904.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19903-19904.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19903)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19904)
+@@ -33,7 +33,7 @@
+ 
+ 	// Add context state variables
+ 	canvas.zoomFactor = options.getfieldvalue('zoomfactor',-.52);
+-	canvas.zoomFactorMax = options.getfieldvalue('zoomfactor',-.52);
++	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+ 	canvas.cameraMatrix = mat4.create();
+ 
+ 	// Add event listeners for canvas
+@@ -67,16 +67,6 @@
+ 	}	
+ 	return bufferArray;
+ } //}}}
+-function createSolidTexture(gl, r, g, b, a) {
+-    var data = new Uint8Array([r, g, b, a]);
+-    var texture = gl.createTexture();
+-    gl.bindTexture(gl.TEXTURE_2D, texture);
+-    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);
+-    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
+-    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
+-	gl.bindTexture(gl.TEXTURE_2D, null);
+-    return texture;
+-}
+ function initTexture(gl,imageSource) { //{{{
+ 	var texture = gl.createTexture();
+ 	texture.image = new Image();
+@@ -146,19 +136,6 @@
+ 
+ 	return modelMatrix;
+ } //}}}
+-function rgb(value, min, max,cmap) { //{{{
+-	
+-	var normalizedValue;
+-					
+-	var colorbar=colorbars[cmap];
+-
+-	value = clamp(value, min, max);
+-	if((max-min)!=0) normalizedValue = (value - min) / (max - min);
+-	else normalizedValue = value;
+-
+-	var index = clamp(Math.round(normalizedValue * colorbar.length), 0, colorbar.length - 1);
+-	return colorbar[index];
+-} //}}}
+ function clamp(value, min, max) { //{{{
+ 	return Math.max(min, Math.min(value, max));
+ } //}}}
+@@ -292,7 +269,7 @@
+ 	e.preventDefault();
+ 	var e = window.event || e; // old IE support
+ 	var delta = 1/10 * clamp((e.scale || e.wheelDelta || -e.detail), -1, 1);
+-	canvas.zoomFactor = clamp(canvas.zoomFactor + -delta * canvas.zoomFactor,canvas.zoomFactorMax,0);
++	canvas.zoomFactor = clamp(canvas.zoomFactor + delta * canvas.zoomFactor,canvas.zoomBounds[0],canvas.zoomBounds[1]);
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19904-19905.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19904-19905.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19904-19905.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19904)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19905)
+@@ -61,49 +61,20 @@
+ 
+ 		//element plot {{{
+ 		case 1:
+-
+ 			pos=ArrayFindNot(data,NaN); //needed for element on water
+ 			if (elements[0].length==6){ //prisms
+-
+-				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+-				  patch( 'Faces', [A B C],  'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces', [D E F],  'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces', [A B E D],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces', [B E F C],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces', [C A D F],'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  */
+ 			}
+ 			else if (elements[0].length==4){ //tetras
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+-				  patch( 'Faces',[A B C],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces',[A B D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces',[B C D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+-				  patch( 'Faces',[C A D],'Vertices', [x y z],'CData',data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+ 			else{ //2D triangular elements
+-				
+-				/*A=elements(pos,1); B=elements(pos,2); C=elements(pos,3);
+-				  patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);*/
+ 			}
+ 			break;
+ 		//}}}
+ 		//node plot {{{
+ 		case 2:
+-
+ 			if (elements[0].length==6){ //prisms
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+-				  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
+ 			}
+-			else if (elements[0].length==4){//tetras
+-				/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+-				  patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);
+-				  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',data(:),'FaceColor','interp','EdgeColor',edgecolor);*/
++			else if (elements[0].length==4){ //tetras
+ 			}
+ 			else{ //triangular elements	
+ 				caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19904)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19905)
+@@ -269,7 +269,8 @@
+ 	e.preventDefault();
+ 	var e = window.event || e; // old IE support
+ 	var delta = 1/10 * clamp((e.scale || e.wheelDelta || -e.detail), -1, 1);
+-	canvas.zoomFactor = clamp(canvas.zoomFactor + delta * canvas.zoomFactor,canvas.zoomBounds[0],canvas.zoomBounds[1]);
++	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1],canvas.zoomBounds[0]);
++	console.log(canvas.zoomFactor);
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19905-19906.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19905-19906.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19905-19906.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19905)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19906)
+@@ -136,9 +136,6 @@
+ 
+ 	return modelMatrix;
+ } //}}}
+-function clamp(value, min, max) { //{{{
+-	return Math.max(min, Math.min(value, max));
+-} //}}}
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+@@ -268,9 +265,8 @@
+ 	// prevent scrolling when over canvas
+ 	e.preventDefault();
+ 	var e = window.event || e; // old IE support
+-	var delta = 1/10 * clamp((e.scale || e.wheelDelta || -e.detail), -1, 1);
+-	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1],canvas.zoomBounds[0]);
+-	console.log(canvas.zoomFactor);
++	var delta = 1/10 * Math.max(-1, Math.min(e.scale || e.wheelDelta || -e.detail, 1));
++	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[0]));
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19906-19907.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19906-19907.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19906-19907.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19906)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19907)
+@@ -32,8 +32,8 @@
+ 	gl.shaders = loadShaders(gl);
+ 
+ 	// Add context state variables
+-	canvas.zoomFactor = options.getfieldvalue('zoomfactor',-.52);
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
++	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[0]));
+ 	canvas.cameraMatrix = mat4.create();
+ 
+ 	// Add event listeners for canvas
Index: /issm/oecreview/Archive/19101-20495/ISSM-19907-19908.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19907-19908.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19907-19908.diff	(revision 20498)
@@ -0,0 +1,130 @@
+Index: ../trunk-jpl/src/m/plot/plot_radaroverlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 19908)
+@@ -0,0 +1,89 @@
++function plot_radaroverlay(md,data,options,canvas,gl,node){
++	//PLOT_RADAROVERLAY - Function for plotting a georeferenced image.
++	//Differs from plot_overlay by plotting independent radaroverlay mesh.
++	//This function is called from within the plotmodel code.
++	//
++	//   Usage:
++	//      plot_radaroverlay(md,data,options,canvas,gl,node);
++	//
++	//   See also: PLOTMODEL, PLOT_MANAGER, PLOT_OVERLAY
++
++	//declare variables:  {{{
++	var vertices = [];
++	var indices = [];
++	var texcoords = [];
++	var xmin,xmax;
++	var ymin,ymax;
++	var zmin,zmax;
++	
++	//Process data and model
++	var meshresults = processmesh(md,data,options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
++	//}}}
++
++	//Compute coordinates and data range:
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
++	xmin = xlim[0];
++	xmax = xlim[1];
++	ymin = ylim[0];
++	ymax = ylim[1];
++	zmin = zlim[0];
++	zmax = zlim[1];
++	
++	//Compute scaling: 
++	var scale = 1 / (xmax - xmin);
++	node["shaderName"] = "unlit_textured";
++	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
++	node["scale"] = [scale, scale, scale];
++	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["modelMatrix"] = recalculateModelMatrix(node);
++	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
++	node["alpha"] = options.getfieldvalue('alpha',.5);
++	node["overlay"] = false;
++	node["drawOrder"] = 1;
++				
++	//some defaults:
++	texcoords.itemSize = 2;
++	vertices.itemSize = 3;
++	
++	x = md.radaroverlay.outerx;
++	y = md.radaroverlay.outery;
++	z = md.radaroverlay.outerheight;
++	elements = md.radaroverlay.outerindex;
++	
++	modelxlim = md.radaroverlay.xlim;
++	modelylim = md.radaroverlay.ylim;
++	
++	var xrange = modelxlim[1] - modelxlim[0];
++	var yrange = modelylim[1] - modelylim[0];
++	
++	//generate mesh:
++	for(var i = 0; i < x.length; i++){
++		vertices[vertices.length] = x[i];
++		vertices[vertices.length] = y[i];
++		vertices[vertices.length] = z[i];
++
++		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
++		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
++	}
++	
++	//linearize the elements array: 
++	indices = indices.concat.apply(indices, elements); 
++	indices.itemSize = 1;
++	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
++	
++	/*Initalize buffers: */
++	node["arrays"] = [vertices, texcoords, indices];
++	node["buffers"] = initBuffers(gl,node["arrays"]);
++}
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19907)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19908)
+@@ -215,6 +215,14 @@
+ 		plot_profile(md,data,options,nlines,ncols,i);
+ 		return;
+ 	}
++	
++	//Figure out if this is a semi-transparent plot.
++	if (options.getfieldvalue('radaroverlay','on')=='on'){
++		if (md.radaroverlay) {
++			nodes["radaroverlay"] = Node(gl,options);
++			plot_radaroverlay(md,data,options,canvas,gl,nodes["radaroverlay"]);
++		}
++	}
+ 
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19907)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19908)
+@@ -58,12 +58,6 @@
+ 	
+ 	var xrange = modelxlim[1] - modelxlim[0];
+ 	var yrange = modelylim[1] - modelylim[0];
+-
+-	//redefine overlay as square plane
+-	//x = [modelxlim[0], modelxlim[1], modelxlim[0], modelxlim[1]];
+-	//y = [modelylim[0], modelylim[0], modelylim[1], modelylim[1]];
+-	//z = [modelzlim[0], modelzlim[0], modelzlim[0], modelzlim[0]];
+-	//elements = [[1,2,3],[2,4,3]];
+ 	
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19908-19909.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19908-19909.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19908-19909.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 19908)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 19909)
+@@ -14,6 +14,7 @@
+ 	endmessage=options.getfieldvalue('endmessage',message);
+ 	color=options.getfieldvalue('color','#bbbbbb');
+ 	precision=options.getfieldvalue('precision',3);
++	step=options.getfieldvalue('step',1);
+ 
+ 	$('<div id="slider_'+slidername+'"></div>').appendTo('#sliders');
+ 	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#sliders');
+@@ -23,6 +24,7 @@
+ 		value:initialvalue,
+ 		min:min,
+ 		max:max,
++		step:step,
+ 		slide:function(event,ui){
+ 			moveSlide(event,ui,info,middlemessage);
+ 		},
Index: /issm/oecreview/Archive/19101-20495/ISSM-19909-19910.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19909-19910.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19909-19910.diff	(revision 20498)
@@ -0,0 +1,145 @@
+Index: ../trunk-jpl/src/m/plot/plot_radaroverlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 19909)
++++ ../trunk-jpl/src/m/plot/plot_radaroverlay.js	(revision 19910)
+@@ -1,89 +0,0 @@
+-function plot_radaroverlay(md,data,options,canvas,gl,node){
+-	//PLOT_RADAROVERLAY - Function for plotting a georeferenced image.
+-	//Differs from plot_overlay by plotting independent radaroverlay mesh.
+-	//This function is called from within the plotmodel code.
+-	//
+-	//   Usage:
+-	//      plot_radaroverlay(md,data,options,canvas,gl,node);
+-	//
+-	//   See also: PLOTMODEL, PLOT_MANAGER, PLOT_OVERLAY
+-
+-	//declare variables:  {{{
+-	var vertices = [];
+-	var indices = [];
+-	var texcoords = [];
+-	var xmin,xmax;
+-	var ymin,ymax;
+-	var zmin,zmax;
+-	
+-	//Process data and model
+-	var meshresults = processmesh(md,data,options);
+-	var x = meshresults[0]; 
+-	var y = meshresults[1]; 
+-	var z = meshresults[2]; 
+-	var elements = meshresults[3]; 
+-	var is2d = meshresults[4]; 
+-	var isplanet = meshresults[5];
+-	//}}}
+-
+-	//Compute coordinates and data range:
+-	var modelxlim = [ArrayMin(x),ArrayMax(x)];
+-	var modelylim = [ArrayMin(y),ArrayMax(y)];
+-	var modelzlim = [ArrayMin(z),ArrayMax(z)];
+-	var xlim = options.getfieldvalue('xlim',modelxlim);
+-	var ylim = options.getfieldvalue('ylim',modelylim);
+-	var zlim = options.getfieldvalue('zlim',modelzlim);
+-	xmin = xlim[0];
+-	xmax = xlim[1];
+-	ymin = ylim[0];
+-	ymax = ylim[1];
+-	zmin = zlim[0];
+-	zmax = zlim[1];
+-	
+-	//Compute scaling: 
+-	var scale = 1 / (xmax - xmin);
+-	node["shaderName"] = "unlit_textured";
+-	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale];
+-	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+-	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+-	node["alpha"] = options.getfieldvalue('alpha',.5);
+-	node["overlay"] = false;
+-	node["drawOrder"] = 1;
+-				
+-	//some defaults:
+-	texcoords.itemSize = 2;
+-	vertices.itemSize = 3;
+-	
+-	x = md.radaroverlay.outerx;
+-	y = md.radaroverlay.outery;
+-	z = md.radaroverlay.outerheight;
+-	elements = md.radaroverlay.outerindex;
+-	
+-	modelxlim = md.radaroverlay.xlim;
+-	modelylim = md.radaroverlay.ylim;
+-	
+-	var xrange = modelxlim[1] - modelxlim[0];
+-	var yrange = modelylim[1] - modelylim[0];
+-	
+-	//generate mesh:
+-	for(var i = 0; i < x.length; i++){
+-		vertices[vertices.length] = x[i];
+-		vertices[vertices.length] = y[i];
+-		vertices[vertices.length] = z[i];
+-
+-		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
+-		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
+-	}
+-	
+-	//linearize the elements array: 
+-	indices = indices.concat.apply(indices, elements); 
+-	indices.itemSize = 1;
+-	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+-	
+-	/*Initalize buffers: */
+-	node["arrays"] = [vertices, texcoords, indices];
+-	node["buffers"] = initBuffers(gl,node["arrays"]);
+-}
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19909)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19910)
+@@ -215,14 +215,6 @@
+ 		plot_profile(md,data,options,nlines,ncols,i);
+ 		return;
+ 	}
+-	
+-	//Figure out if this is a semi-transparent plot.
+-	if (options.getfieldvalue('radaroverlay','on')=='on'){
+-		if (md.radaroverlay) {
+-			nodes["radaroverlay"] = Node(gl,options);
+-			plot_radaroverlay(md,data,options,canvas,gl,nodes["radaroverlay"]);
+-		}
+-	}
+ 
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19909)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19910)
+@@ -24,7 +24,7 @@
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+ 	//}}}
+-
++		
+ 	//Compute coordinates and data range:
+ 	var modelxlim = [ArrayMin(x),ArrayMax(x)];
+ 	var modelylim = [ArrayMin(y),ArrayMax(y)];
+@@ -59,6 +59,18 @@
+ 	var xrange = modelxlim[1] - modelxlim[0];
+ 	var yrange = modelylim[1] - modelylim[0];
+ 	
++	//Handle outer radaroverlay
++	if (md.radaroverlay) {
++		var newelements = [];
++		for (var i = 0; i < md.radaroverlay.outerindex.length; i++) {
++			newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]);
++		}
++		x = [].concat(x, md.radaroverlay.outerx);
++		y = [].concat(y, md.radaroverlay.outery);
++		z = [].concat(z, md.radaroverlay.outerheight);
++		elements = [].concat(elements, newelements);
++	}
++	
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
+ 		vertices[vertices.length] = x[i];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19910-19911.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19910-19911.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19910-19911.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19910)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.py	(revision 19911)
+@@ -37,10 +37,9 @@
+ 
+ 	return string
+     #}}}
+-    def extrude(self,md): # {{{
+-	self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1)
+-	self.p=project3d(md,'vector',self.p,'type','element')
+-	self.q=project3d(md,'vector',self.q,'type','element')
++	 def extrude(self,md): # {{{
++		 self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1)
++		 self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1)    #bedrock only gets geothermal flux
+ 	return self
+     #}}}
+     def setdefaultparameters(self): # {{{
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19910)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19911)
+@@ -19,6 +19,10 @@
+              fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="geothermalflux" type="',          class(self.geothermalflux),'" default="',            num2str(self.geothermalflux),'">',            '     <section name="basalforcings" />','     <help> geothermal heat flux [W/m^2] </help>','</parameter>');
+              
+         end % }}}
++		function self = extrude(self,md) % {{{
++			self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1); 
++			self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1); %bedrock only gets geothermal flux
++		end % }}}
+ 		function self = mismipbasalforcings(varargin) % {{{
+ 			switch nargin
+ 				case 0
Index: /issm/oecreview/Archive/19101-20495/ISSM-19911-19912.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19911-19912.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19911-19912.diff	(revision 20498)
@@ -0,0 +1,313 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19911)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19912)
+@@ -29,6 +29,10 @@
+ 	var	dataresults = processdata(md,data,options);
+ 	var	data2 = dataresults[0]; 
+ 	var	datatype = dataresults[1];
++	
++	if (md.geometry.surface) {
++		z = md.geometry.surface;
++	}
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -52,13 +56,13 @@
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
++	
+ 	switch(datatype){
+-
+ 		//element plot {{{
+ 		case 1:
+ 			pos=ArrayFindNot(data,NaN); //needed for element on water
+@@ -106,7 +110,6 @@
+ 		//}}}
+ 		//quiver plot {{{
+ 		case 3:
+-
+ 			if (is2d){
+ 				//plot_quiver(x,y,data(:,1),data(:,2),options);
+ 			}
+@@ -114,7 +117,6 @@
+ 				//plot_quiver3(x,y,z,data(:,1),data(:,2),data(:,3),options);
+ 			}
+ 			break;
+-			
+ 		//}}}
+ 		//node transient plot {{{
+ 		case 5:
+@@ -181,7 +183,6 @@
+ 			node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][0],node["arrays"][2]]);
+ 			break;
+ 		//}}}
+-			
+ 		default:
+ 			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
+ 	}
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19911)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19912)
+@@ -94,7 +94,7 @@
+ 				plot_drivingstress(md,options,subplotwidth,i);
+ 				break;
+ 			case 'mesh':
+-				//plot_mesh(md,options,nlines,ncols,i);
++				console.log('hello');
+ 				plot_mesh(md,options,canvas,gl,nodes["main"]);
+ 				break;
+ 			case 'none':
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19911)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19912)
+@@ -23,6 +23,10 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
++	
++	if (md.geometry.surface) {
++		z = md.geometry.surface;
++	}
+ 	//}}}
+ 		
+ 	//Compute coordinates and data range:
+@@ -45,7 +49,7 @@
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+ 	node["alpha"] = options.getfieldvalue('alpha',.5);
+@@ -69,6 +73,8 @@
+ 		y = [].concat(y, md.radaroverlay.outery);
+ 		z = [].concat(z, md.radaroverlay.outerheight);
+ 		elements = [].concat(elements, newelements);
++		
++		node["translation"] = [node["translation"][0], node["translation"][1], (ArrayMax(z)) / (-1 / scale)];
+ 	}
+ 	
+ 	//generate mesh:
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19911)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19912)
+@@ -13,11 +13,16 @@
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+ 	var scale;
++	
+ 	//Process data and model
+ 	var x = md.mesh.x;
+ 	var y = md.mesh.y;
+-	var z = [0.0];
++	var z = [].fill(md.mesh.x.length);
+ 	var elements = md.mesh.elements;
++	
++	if (md.geometry.surface) {
++		z = md.geometry.surface;
++	}
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -42,7 +47,6 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
+-	//node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 0;
+ 				
+@@ -53,34 +57,18 @@
+ 	var linewidth=options.getfieldvalue('linewidth',1);
+ 	var edgecolor=options.getfieldvalue('edgecolor','black');
+ 
+-	// populate arrays 
+ 	//node plot {{{
+ 	if (elements[0].length==6){ //prisms
+-		/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+-		  patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  */
+ 	}
+ 	else if (elements[0].length==4){ //tetras
+-		/*A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+-		  patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+-		  */
+ 	}
+ 	else{ //2D triangular elements
+ 		vertices.itemSize = 3;
+ 		for(var i = 0; i < x.length; i++){
+ 			vertices[vertices.length] = x[i];
+ 			vertices[vertices.length] = y[i];
+-			//vertices[vertices.length] = z[i];
+-			vertices[vertices.length] = 0;
++			vertices[vertices.length] = z[i];
+ 
+-			//handle mesh/qinterest size mismatch
+ 			rgbcolor = [0.0, 0.0, 0.0];
+ 			colors[colors.length] = rgbcolor[0];
+ 			colors[colors.length] = rgbcolor[1];
+@@ -89,7 +77,6 @@
+ 		}
+ 
+ 		//linearize the elements array: 
+-
+ 		for(var i = 0; i < elements.length; i++){
+ 			//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity
+ 			//matlab indices from 1, so decrement indices.
+@@ -104,12 +91,6 @@
+ 	}
+ 	//}}}
+ 
+-	/*//apply options
+-	options=addfielddefault(options,'title','Mesh');
+-	options=addfielddefault(options,'colorbar',0);
+-	applyoptions(md,[],options);
+-	*/
+-
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, colors, indices];
+ 	node["buffers"] = initBuffers(gl, node["arrays"]);
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19911)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19912)
+@@ -35,15 +35,17 @@
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+ 	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[0]));
+ 	canvas.cameraMatrix = mat4.create();
++	canvas.translation = [0,0];
++	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+ 	if (canvas.addEventListener) {
+ 		// IE9, Chrome, Safari, Opera
+-		canvas.addEventListener("mousewheel", function (e) {MouseWheelHandler(e,canvas)}, false);
++		canvas.addEventListener("mousewheel", function (e) {handleZoom(e,canvas)}, false);
+ 		// Firefox
+-		canvas.addEventListener("DOMMouseScroll", function (e) {MouseWheelHandler(e,canvas)}, false);
++		canvas.addEventListener("DOMMouseScroll", function (e) {handleZoom(e,canvas)}, false);
+ 		// Mobile
+-		canvas.addEventListener("gesturechange", MouseWheelHandler, false);
++		canvas.addEventListener("gesturechange", handleZoom, false);
+ 	}
+ 
+ 	return gl;
+@@ -70,11 +72,11 @@
+ function initTexture(gl,imageSource) { //{{{
+ 	var texture = gl.createTexture();
+ 	texture.image = new Image();
++	texture.isLoaded = false;
+ 	texture.image.onload = function () {
+ 		handleLoadedTexture(gl,texture);
+ 	}
+ 	texture.image.src = imageSource;
+-	texture.isLoaded = true;
+ 	return texture;
+ } //}}}
+ function handleLoadedTexture(gl,texture) { //{{{
+@@ -88,6 +90,7 @@
+ 	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+ 	gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+ 	gl.bindTexture(gl.TEXTURE_2D, null);
++	texture.isLoaded = true;
+ } //}}}
+ function Node(gl,options) { //{{{
+ 	//Returns a Node object that contains default display states for webgl object
+@@ -261,13 +264,31 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function MouseWheelHandler(e,canvas) { //{{{
++function handleZoom(e,canvas) { //{{{
+ 	// prevent scrolling when over canvas
+ 	e.preventDefault();
+ 	var e = window.event || e; // old IE support
+ 	var delta = 1/10 * Math.max(-1, Math.min(e.scale || e.wheelDelta || -e.detail, 1));
+ 	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[0]));
+ } //}}}
++function handlePointerDown(e,canvas) { //{{{
++	canvas.lastX = e.clientX;
++	canvas.lastY = e.clientY;
++} //}}}	
++function handlePointerUp(e,canvas) { //{{{
++} //}}}
++function handlePointerMove(e,canvas) { //{{{
++	var deltaX = canvas.controlsensitivity * (e.clientX - canvas.lastX);
++	var deltaY = canvas.controlsensitivity * (e.clientY - canvas.lastY);
++
++	lastMouseX =  e.clientX;
++	lastMouseY =  e.clientY;
++
++	canvas.translation[0] -= deltaX;
++	canvas.translation[0] += deltaY;
++	
++	updateCameraMatrix(canvas);
++} //}}}
+ //}}}
+ //{{{ Drawing Functions
+ function updateCameraMatrix(canvas) { //{{{
+@@ -275,11 +296,10 @@
+ 	var vMatrix = mat4.create();
+ 	var pMatrix = mat4.create();
+ 
+-	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.width / canvas.height, 0.001, 10000.0);
+-
++	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+ 	//Apply screenspace relative translation
+ 	var translateMatrix = mat4.create();
+-	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]);
++	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], canvas.translation[1], canvas.zoomFactor]);
+ 	mat4.multiply(vMatrix, translateMatrix, vMatrix);
+ 
+ 	//Apply projection matrix to get camera matrix
+@@ -287,6 +307,11 @@
+ //	canvas.cameraMatrix = mat4.create();
+ }//}}}
+ function drawSceneGraphNode(gl,canvas,node) { //{{{
++	if (node["texture"]) {
++		if (!node["texture"]["isLoaded"]) {
++			return;
++		}
++	}
+ 	bindAttributes(gl, node["shader"], node["buffers"]);
+ 	var mvpMatrix = mat4.create();
+ 	if (node["useOrthographic"] == true) {
+@@ -337,10 +362,17 @@
+ 	}
+ 	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
+ 		
+-	// Clear the color as well as the depth buffer.
++	// Skip drawing of new frame if any texture is not yet loaded
++	for (var node in nodes) {
++		if (nodes[node]["texture"] && !nodes[node]["texture"]["isLoaded"]) {
++			window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
++			return;
++		}
++	}
++	// Else, clear the color as well as the depth buffer for new frame
+ 	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+-
+ 	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
++	
+ 	updateCameraMatrix(canvas);
+ 	
+ 	var drawPassNumber = 2;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19912-19913.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19912-19913.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19912-19913.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19912)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19913)
+@@ -95,4 +95,4 @@
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, texcoords, indices];
+ 	node["buffers"] = initBuffers(gl,node["arrays"]);
+-}
++}
+\ No newline at end of file
Index: /issm/oecreview/Archive/19101-20495/ISSM-19913-19914.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19913-19914.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19913-19914.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19913)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19914)
+@@ -60,9 +60,6 @@
+ 	texcoords.itemSize = 2;
+ 	vertices.itemSize = 3;
+ 	
+-	var xrange = modelxlim[1] - modelxlim[0];
+-	var yrange = modelylim[1] - modelylim[0];
+-	
+ 	//Handle outer radaroverlay
+ 	if (md.radaroverlay) {
+ 		var newelements = [];
+@@ -74,9 +71,23 @@
+ 		z = [].concat(z, md.radaroverlay.outerheight);
+ 		elements = [].concat(elements, newelements);
+ 		
+-		node["translation"] = [node["translation"][0], node["translation"][1], (ArrayMax(z)) / (-1 / scale)];
++		//Reclaculate bounds based on otuer radaroverlay
++		modelxlim = [ArrayMin(x),ArrayMax(x)];
++		modelylim = [ArrayMin(y),ArrayMax(y)];
++		modelzlim = [ArrayMin(z),ArrayMax(z)];
++		xmin = xlim[0];
++		xmax = xlim[1];
++		ymin = ylim[0];
++		ymax = ylim[1];
++		zmin = zlim[0];
++		zmax = zlim[1];
++		
++		node["translation"] = [node["translation"][0], node["translation"][1], (zmax) / (-1 / scale)];
+ 	}
+ 	
++	var xrange = modelxlim[1] - modelxlim[0];
++	var yrange = modelylim[1] - modelylim[0];
++	
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
+ 		vertices[vertices.length] = x[i];
Index: /issm/oecreview/Archive/19101-20495/ISSM-19914-19915.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19914-19915.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19914-19915.diff	(revision 20498)
@@ -0,0 +1,171 @@
+Index: ../trunk-jpl/externalpackages/javascript/src/hammer.min.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/hammer.min.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/hammer.min.js	(revision 19915)
+@@ -0,0 +1,7 @@
++/*! Hammer.JS - v2.0.4 - 2014-09-28
++ * http://hammerjs.github.io/
++ *
++ * Copyright (c) 2014 Jorik Tangelder;
++ * Licensed under the MIT license */
++!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");
++//# sourceMappingURL=hammer.min.map
+\ No newline at end of file
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19914)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19915)
+@@ -54,7 +54,7 @@
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale];
++	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19914)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19915)
+@@ -47,7 +47,7 @@
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale];
++	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+ 	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19914)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19915)
+@@ -43,7 +43,7 @@
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "colored";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale];
++	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19914)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19915)
+@@ -36,18 +36,22 @@
+ 	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[0]));
+ 	canvas.cameraMatrix = mat4.create();
+ 	canvas.translation = [0,0];
++	canvas.rotation = [0,0,0];
+ 	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+-	if (canvas.addEventListener) {
+-		// IE9, Chrome, Safari, Opera
+-		canvas.addEventListener("mousewheel", function (e) {handleZoom(e,canvas)}, false);
+-		// Firefox
+-		canvas.addEventListener("DOMMouseScroll", function (e) {handleZoom(e,canvas)}, false);
+-		// Mobile
+-		canvas.addEventListener("gesturechange", handleZoom, false);
+-	}
++	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas)}, false);
++	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas)}, false);
+ 
++	var mc = new Hammer.Manager(canvas);
++
++    mc.add(new Hammer.Pan({ threshold: 0, pointers: 0 }));
++    mc.add(new Hammer.Pinch({ threshold: 0})).recognizeWith(mc.get('pan'));
++
++    mc.on("panstart panmove", function (ev) {onPan(ev,canvas);});
++    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas);});
++	//mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas);});
++	
+ 	return gl;
+ } //}}}
+ function initBuffers(gl,arrays) { //{{{	
+@@ -264,39 +268,53 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function handleZoom(e,canvas) { //{{{
++function onPan(ev,canvas) {
++	if (ev.type == 'panstart') {
++		canvas.lastDeltaX = 0;
++		canvas.lastDeltaY = 0;
++	}
++	// if single finger/pan without modifier key, rotate around center
++	//canvas.translation[0] += (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
++	//canvas.translation[1] -= (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
++	// else if double finger/pan with modifier key, move camera center
++	canvas.rotation[0] += (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
++	canvas.rotation[1] += (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
++	canvas.lastDeltaX = ev.deltaX;
++	canvas.lastDeltaY = ev.deltaY;
++}
++function onPinch(ev,canvas) {
++	if (ev.type == 'pinchstart') {
++		canvas.lastScale = 1;
++	}
++	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(-ev.scale * canvas.lastScale, canvas.zoomBounds[0]));
++	canvas.lastScale = ev.scale;
++}
++function onZoom(ev,canvas) {
+ 	// prevent scrolling when over canvas
+-	e.preventDefault();
+-	var e = window.event || e; // old IE support
+-	var delta = 1/10 * Math.max(-1, Math.min(e.scale || e.wheelDelta || -e.detail, 1));
++	ev.preventDefault();
++	var delta = 1/10 * Math.max(-1, Math.min(ev.scale || ev.wheelDelta || -ev.detail, 1));
+ 	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[0]));
+-} //}}}
+-function handlePointerDown(e,canvas) { //{{{
+-	canvas.lastX = e.clientX;
+-	canvas.lastY = e.clientY;
+-} //}}}	
+-function handlePointerUp(e,canvas) { //{{{
+-} //}}}
+-function handlePointerMove(e,canvas) { //{{{
+-	var deltaX = canvas.controlsensitivity * (e.clientX - canvas.lastX);
+-	var deltaY = canvas.controlsensitivity * (e.clientY - canvas.lastY);
+-
+-	lastMouseX =  e.clientX;
+-	lastMouseY =  e.clientY;
+-
+-	canvas.translation[0] -= deltaX;
+-	canvas.translation[0] += deltaY;
+-	
+-	updateCameraMatrix(canvas);
+-} //}}}
++}
+ //}}}
+ //{{{ Drawing Functions
+ function updateCameraMatrix(canvas) { //{{{
+        	//Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix.
+ 	var vMatrix = mat4.create();
+ 	var pMatrix = mat4.create();
++	var rotationMatrix = mat4.create();
++	var traversalRotationMatrix = mat4.create();
++	var elevationRotationMatrix = mat4.create();
+ 
+ 	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
++	
++	//Calculate rotation around camera focal point about worldspace origin
++	mat4.rotate(traversalRotationMatrix, traversalRotationMatrix, canvas.rotation[0], [0, 1, 0]);
++	mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, canvas.rotation[1], [1, 0, 0]);
++	mat4.multiply(rotationMatrix, elevationRotationMatrix, traversalRotationMatrix);
++	
++	//Apply rotation and scaling transform
++	mat4.multiply(vMatrix, rotationMatrix, vMatrix);
++	
+ 	//Apply screenspace relative translation
+ 	var translateMatrix = mat4.create();
+ 	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], canvas.translation[1], canvas.zoomFactor]);
+@@ -384,4 +402,4 @@
+ 		}
+ 	}
+ } //}}}
+-//}}}
++//}}}
+\ No newline at end of file
Index: /issm/oecreview/Archive/19101-20495/ISSM-19915-19916.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19915-19916.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19915-19916.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19915)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19916)
+@@ -121,12 +121,17 @@
+ 	};
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
++	//TODO: move to 0,0,0, rotate,move back to normal space, then apply transform
+ 	var modelMatrix = mat4.create();
+ 
+ 	var scaleMatrix = mat4.create();
+ 	mat4.scale(scaleMatrix, scaleMatrix, node["scale"]);
+ 	mat4.multiply(modelMatrix, scaleMatrix, modelMatrix);
+ 
++	var translationMatrix = mat4.create();
++	mat4.translate(translationMatrix, translationMatrix, node["translation"]); //relative translation
++	mat4.multiply(modelMatrix, translationMatrix, modelMatrix);
++	
+ 	var zRotationMatrix = mat4.create();	
+ 	mat4.rotate(zRotationMatrix, zRotationMatrix, node["rotation"][2] * Math.PI/180.0, [0.0, 0.0, 1.0]);
+ 	mat4.multiply(modelMatrix, zRotationMatrix, modelMatrix);
+@@ -137,10 +142,6 @@
+ 	mat4.rotate(xRotationMatrix, xRotationMatrix, node["rotation"][0] * Math.PI/180.0, [1.0, 0.0, 0.0]);
+ 	mat4.multiply(modelMatrix, xRotationMatrix, modelMatrix);
+ 
+-	var translationMatrix = mat4.create();
+-	mat4.translate(translationMatrix, translationMatrix, node["translation"]); //relative translation
+-	mat4.multiply(modelMatrix, translationMatrix, modelMatrix);
+-
+ 	return modelMatrix;
+ } //}}}
+ //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19916-19917.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19916-19917.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19916-19917.diff	(revision 20498)
@@ -0,0 +1,160 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19916)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19917)
+@@ -55,7 +55,6 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19916)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19917)
+@@ -48,7 +48,6 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["rotation"] = options.getfieldvalue('view',[0,0,0]);
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19916)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19917)
+@@ -32,11 +32,16 @@
+ 	gl.shaders = loadShaders(gl);
+ 
+ 	// Add context state variables
++	//TODO:Group variables in objects for organization and naming
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+-	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[0]));
++	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[1], canvas.zoomBounds[0]);
++	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+ 	canvas.translation = [0,0];
+-	canvas.rotation = [0,0,0];
++	canvas.rotationAzimuthBounds = options.getfieldvalue('azimuthbounds',[0,360]);
++	canvas.rotationElevationBounds = options.getfieldvalue('elevationbounds',[-180,180]);
++	canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
++	canvas.rotation = canvas.rotationDefault;
+ 	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+@@ -112,7 +117,7 @@
+ 		drawMode:gl.TRIANGLES,
+ 		texture:null,
+ 		translation:vec3.create(),
+-		rotation:vec3.create(),
++		rotation:vec3.fromValues(-90, 0, 0),
+ 		scale:vec3.fromValues(1, 1, 1),
+ 		modelMatrix:mat4.create(),
+ 		shaderName:"colored",
+@@ -133,17 +138,26 @@
+ 	mat4.multiply(modelMatrix, translationMatrix, modelMatrix);
+ 	
+ 	var zRotationMatrix = mat4.create();	
+-	mat4.rotate(zRotationMatrix, zRotationMatrix, node["rotation"][2] * Math.PI/180.0, [0.0, 0.0, 1.0]);
++	mat4.rotate(zRotationMatrix, zRotationMatrix, radians(node["rotation"][2]), [0.0, 0.0, 1.0]);
+ 	mat4.multiply(modelMatrix, zRotationMatrix, modelMatrix);
+ 	var yRotationMatrix = mat4.create();	
+-	mat4.rotate(yRotationMatrix, yRotationMatrix, node["rotation"][1] * Math.PI/180.0, [0.0, 1.0, 0.0]);
++	mat4.rotate(yRotationMatrix, yRotationMatrix, radians(node["rotation"][1]), [0.0, 1.0, 0.0]);
+ 	mat4.multiply(modelMatrix, yRotationMatrix, modelMatrix);
+ 	var xRotationMatrix = mat4.create();	
+-	mat4.rotate(xRotationMatrix, xRotationMatrix, node["rotation"][0] * Math.PI/180.0, [1.0, 0.0, 0.0]);
++	mat4.rotate(xRotationMatrix, xRotationMatrix, radians(node["rotation"][0]), [1.0, 0.0, 0.0]);
+ 	mat4.multiply(modelMatrix, xRotationMatrix, modelMatrix);
+ 
+ 	return modelMatrix;
+ } //}}}
++function radians (degrees) { //{{{
++  return degrees * Math.PI / 180;
++} //}}}
++function degrees (radians) { //{{{
++  return radians * 180 / Math.PI;
++} //}}}
++function clamp(value, min, max) { //{{{
++	return Math.max(min, Math.min(value, max));
++} //}}}
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+@@ -270,6 +284,7 @@
+ //}}}
+ //{{{ Interface Functions
+ function onPan(ev,canvas) {
++	ev.preventDefault();
+ 	if (ev.type == 'panstart') {
+ 		canvas.lastDeltaX = 0;
+ 		canvas.lastDeltaY = 0;
+@@ -278,23 +293,37 @@
+ 	//canvas.translation[0] += (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
+ 	//canvas.translation[1] -= (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
+ 	// else if double finger/pan with modifier key, move camera center
+-	canvas.rotation[0] += (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
+-	canvas.rotation[1] += (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
++	canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2);
++	canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2);
++	
++	if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360};
++	if (canvas.rotation[0] < 0) {canvas.rotation[0] += 360};
++	if (canvas.rotation[1] > 180) {canvas.rotation[1] -= 360};
++	if (canvas.rotation[1] < -180) {canvas.rotation[1] += 360};
++	
++	canvas.rotation[0] = clamp(canvas.rotation[0], canvas.rotationAzimuthBounds[0], canvas.rotationAzimuthBounds[1]);
++	canvas.rotation[1] = clamp(canvas.rotation[1], canvas.rotationElevationBounds[0], canvas.rotationElevationBounds[1])
++	
+ 	canvas.lastDeltaX = ev.deltaX;
+ 	canvas.lastDeltaY = ev.deltaY;
++	
++	console.log(canvas.rotation);
+ }
+ function onPinch(ev,canvas) {
++	ev.preventDefault();
+ 	if (ev.type == 'pinchstart') {
+-		canvas.lastScale = 1;
++		canvas.zoomLast = canvas.zoomFactor;
+ 	}
+-	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(-ev.scale * canvas.lastScale, canvas.zoomBounds[0]));
+-	canvas.lastScale = ev.scale;
++	else {
++		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
++		console.log(canvas.zoomFactor);
++	}
+ }
+ function onZoom(ev,canvas) {
+-	// prevent scrolling when over canvas
+ 	ev.preventDefault();
+-	var delta = 1/10 * Math.max(-1, Math.min(ev.scale || ev.wheelDelta || -ev.detail, 1));
+-	canvas.zoomFactor = Math.max(canvas.zoomBounds[1], Math.min(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[0]));
++	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
++	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
++	console.log(canvas.zoomFactor);
+ }
+ //}}}
+ //{{{ Drawing Functions
+@@ -303,15 +332,15 @@
+ 	var vMatrix = mat4.create();
+ 	var pMatrix = mat4.create();
+ 	var rotationMatrix = mat4.create();
+-	var traversalRotationMatrix = mat4.create();
++	var azimuthRotationMatrix = mat4.create();
+ 	var elevationRotationMatrix = mat4.create();
+ 
+ 	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+ 	
+ 	//Calculate rotation around camera focal point about worldspace origin
+-	mat4.rotate(traversalRotationMatrix, traversalRotationMatrix, canvas.rotation[0], [0, 1, 0]);
+-	mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, canvas.rotation[1], [1, 0, 0]);
+-	mat4.multiply(rotationMatrix, elevationRotationMatrix, traversalRotationMatrix);
++	mat4.rotate(azimuthRotationMatrix, azimuthRotationMatrix, radians(canvas.rotation[0]), [0, 1, 0]);
++	mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, radians(canvas.rotation[1]), [1, 0, 0]);
++	mat4.multiply(rotationMatrix, elevationRotationMatrix, azimuthRotationMatrix);
+ 	
+ 	//Apply rotation and scaling transform
+ 	mat4.multiply(vMatrix, rotationMatrix, vMatrix);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19917-19918.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19917-19918.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19917-19918.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19917)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19918)
+@@ -404,7 +404,7 @@
+ } //}}}
+ function draw(gl,options,canvas,nodes) { //{{{
+ 	// Set clear color to black, fully opaque
+-	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','white'));
++	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','lightcyan'));
+ 	if(backgroundcolor.ok){
+ 		gl.clearColor(backgroundcolor.r/255.0, backgroundcolor.g/255.0, backgroundcolor.b/255.0, 1.0);
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19918-19919.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19918-19919.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19918-19919.diff	(revision 20498)
@@ -0,0 +1,188 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19918)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19919)
+@@ -60,6 +60,9 @@
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
++	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
++	node["maskHeight"] = options.getfieldvalue('innermaskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskColor"] = options.getfieldvalue('innermaskcolor',[0.0,0.0,1.0,1.0]);
+ 	
+ 	switch(datatype){
+ 		//element plot {{{
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19918)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19919)
+@@ -54,6 +54,9 @@
+ 	node["alpha"] = options.getfieldvalue('alpha',.5);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
++	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
++	node["maskHeight"] = options.getfieldvalue('outermaskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskColor"] = options.getfieldvalue('outermaskcolor',[0.0,0.0,1.0,1.0]);
+ 				
+ 	//some defaults:
+ 	texcoords.itemSize = 2;
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19918)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 19919)
+@@ -49,6 +49,9 @@
+ 	node["drawMode"] = gl.LINES;
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 0;
++	node["maskEnabled"] = options.exist('mask');
++	node["maskHeight"] = options.getfieldvalue('maskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskColor"] = options.getfieldvalue('maskcolor',[0.0,0.0,1.0,1.0]);
+ 				
+ 	//some defaults:
+ 	colors.itemSize = 4;
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19918)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19919)
+@@ -50,8 +50,8 @@
+ 
+ 	var mc = new Hammer.Manager(canvas);
+ 
+-    mc.add(new Hammer.Pan({ threshold: 0, pointers: 0 }));
+-    mc.add(new Hammer.Pinch({ threshold: 0})).recognizeWith(mc.get('pan'));
++    mc.add(new Hammer.Pan({threshold:0, pointers:0}));
++    mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
+ 
+     mc.on("panstart panmove", function (ev) {onPan(ev,canvas);});
+     mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas);});
+@@ -123,6 +123,9 @@
+ 		shaderName:"colored",
+ 		overlay:false,
+ 		drawOrder:0,
++		maskEnabled:false,
++		maskHeight:150.0,
++		maskColor:vec4.fromValues(0.0, 0.0, 1.0, 1.0),
+ 	};
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
+@@ -193,21 +196,32 @@
+ 		'uniform mat4 uMVPMatrix;',
+ 		'',
+ 		'varying vec2 vTextureCoord;',
++		'varying float vZCoord;',
+ 		'',
+ 		'void main(void) {',
+ 		'	gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);',
+ 		'	vTextureCoord = aTextureCoord;',
++		'	vZCoord = aVertexPosition.z;',
+ 		'}'].join('\n');
+ 	shaders["unlit_textured"]["fsh"]["string"] =
+ 		['precision mediump float;',
+ 		'',
+ 		'varying vec2 vTextureCoord;',
++		'varying float vZCoord;',
+ 		'',
+ 		'uniform sampler2D uColorSampler;',
+ 		'uniform float uAlpha;',
++		'uniform bool uMaskEnabled;',
++		'uniform float uMaskHeight;',
++		'uniform vec4 uMaskColor;',
+ 		'',
+ 		'void main(void) {',
+-		'	gl_FragColor = vec4(texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t)).rgb, uAlpha);',
++		'	if (uMaskEnabled && (vZCoord < uMaskHeight)) {',
++		'		gl_FragColor = uMaskColor;',
++		'	}',
++		'	else {',
++		'		gl_FragColor = vec4(texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t)).rgb, uAlpha);',
++		'	}',
+ 		'}'].join('\n');
+ 	shaderNames.forEach(function(shaderName){
+ 		shaders[shaderName]["vsh"]["shader"] = getShaderByString(gl, shaders[shaderName]["vsh"]["string"], "vsh");
+@@ -289,21 +303,26 @@
+ 		canvas.lastDeltaX = 0;
+ 		canvas.lastDeltaY = 0;
+ 	}
+-	// if single finger/pan without modifier key, rotate around center
+-	//canvas.translation[0] += (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
+-	//canvas.translation[1] -= (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
+-	// else if double finger/pan with modifier key, move camera center
+-	canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2);
+-	canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2);
+-	
+-	if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360};
+-	if (canvas.rotation[0] < 0) {canvas.rotation[0] += 360};
+-	if (canvas.rotation[1] > 180) {canvas.rotation[1] -= 360};
+-	if (canvas.rotation[1] < -180) {canvas.rotation[1] += 360};
+-	
+-	canvas.rotation[0] = clamp(canvas.rotation[0], canvas.rotationAzimuthBounds[0], canvas.rotationAzimuthBounds[1]);
+-	canvas.rotation[1] = clamp(canvas.rotation[1], canvas.rotationElevationBounds[0], canvas.rotationElevationBounds[1])
+-	
++	if (ev.srcEvent.shiftKey || ev.pointers.length == 2) {
++		var deltaX = (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
++		var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
++		
++		canvas.translation[0] += Math.cos(radians(canvas.rotation[0])) * deltaX - Math.sin(radians(canvas.rotation[0])) * deltaY;
++		//console.log(Math.cos(radians(canvas.rotation[0])) * deltaX, Math.sin(radians(canvas.rotation[0])) * deltaY);
++		canvas.translation[1] += Math.sin(radians(canvas.rotation[0])) * deltaX + Math.cos(radians(canvas.rotation[0])) * deltaY;
++	}
++	else {
++		canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2);
++		canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2);
++		
++		if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360};
++		if (canvas.rotation[0] < 0) {canvas.rotation[0] += 360};
++		if (canvas.rotation[1] > 180) {canvas.rotation[1] -= 360};
++		if (canvas.rotation[1] < -180) {canvas.rotation[1] += 360};
++		
++		canvas.rotation[0] = clamp(canvas.rotation[0], canvas.rotationAzimuthBounds[0], canvas.rotationAzimuthBounds[1]);
++		canvas.rotation[1] = clamp(canvas.rotation[1], canvas.rotationElevationBounds[0], canvas.rotationElevationBounds[1])
++	}
+ 	canvas.lastDeltaX = ev.deltaX;
+ 	canvas.lastDeltaY = ev.deltaY;
+ 	
+@@ -328,15 +347,20 @@
+ //}}}
+ //{{{ Drawing Functions
+ function updateCameraMatrix(canvas) { //{{{
+-       	//Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix.
++    //Update view matrix and multiply with projection matrix to get the view-projection (camera) matrix.
+ 	var vMatrix = mat4.create();
+ 	var pMatrix = mat4.create();
++	var translateMatrix = mat4.create();
+ 	var rotationMatrix = mat4.create();
+ 	var azimuthRotationMatrix = mat4.create();
+ 	var elevationRotationMatrix = mat4.create();
+ 
+ 	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+ 	
++	//Apply worldspace translation
++	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], 0.0, canvas.translation[1]]);
++	mat4.multiply(vMatrix, translateMatrix, vMatrix);
++	
+ 	//Calculate rotation around camera focal point about worldspace origin
+ 	mat4.rotate(azimuthRotationMatrix, azimuthRotationMatrix, radians(canvas.rotation[0]), [0, 1, 0]);
+ 	mat4.rotate(elevationRotationMatrix, elevationRotationMatrix, radians(canvas.rotation[1]), [1, 0, 0]);
+@@ -345,9 +369,9 @@
+ 	//Apply rotation and scaling transform
+ 	mat4.multiply(vMatrix, rotationMatrix, vMatrix);
+ 	
+-	//Apply screenspace relative translation
+-	var translateMatrix = mat4.create();
+-	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], canvas.translation[1], canvas.zoomFactor]);
++	//Apply screenspace translation
++	mat4.identity(translateMatrix);
++	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]);
+ 	mat4.multiply(vMatrix, translateMatrix, vMatrix);
+ 
+ 	//Apply projection matrix to get camera matrix
+@@ -370,6 +394,9 @@
+ 	}
+ 	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
+ 	gl.uniform1f(node["shader"]["uAlpha"], node["alpha"]);
++	gl.uniform1i(node["shader"]["uMaskEnabled"], node["maskEnabled"]);
++	gl.uniform1f(node["shader"]["uMaskHeight"], node["maskHeight"]);
++	gl.uniform4fv(node["shader"]["uMaskColor"], node["maskColor"]);
+ 	if (node["texture"]) {
+ 		gl.activeTexture(gl.TEXTURE0);
+ 		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19919-19920.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19919-19920.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19919-19920.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19919)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19920)
+@@ -63,6 +63,7 @@
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+ 	node["maskHeight"] = options.getfieldvalue('innermaskheight',150.0)*options.getfieldvalue('heightscale',1);
+ 	node["maskColor"] = options.getfieldvalue('innermaskcolor',[0.0,0.0,1.0,1.0]);
++	node["enabled"] = options.getfieldvalue('nodata','off') == 'off';
+ 	
+ 	switch(datatype){
+ 		//element plot {{{
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19919)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19920)
+@@ -126,6 +126,7 @@
+ 		maskEnabled:false,
+ 		maskHeight:150.0,
+ 		maskColor:vec4.fromValues(0.0, 0.0, 1.0, 1.0),
++		enabled:true,
+ 	};
+ } //}}}
+ function recalculateModelMatrix(node) { //{{{
+@@ -379,6 +380,9 @@
+ //	canvas.cameraMatrix = mat4.create();
+ }//}}}
+ function drawSceneGraphNode(gl,canvas,node) { //{{{
++	if (!node["enabled"]) {
++		return;
++	}
+ 	if (node["texture"]) {
+ 		if (!node["texture"]["isLoaded"]) {
+ 			return;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19920-19921.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19920-19921.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19920-19921.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19920)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19921)
+@@ -37,11 +37,11 @@
+ 	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[1], canvas.zoomBounds[0]);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+-	canvas.translation = [0,0];
++	canvas.translation = [0,0,options.getfieldvalue('centeroffset',0.25)];
+ 	canvas.rotationAzimuthBounds = options.getfieldvalue('azimuthbounds',[0,360]);
+ 	canvas.rotationElevationBounds = options.getfieldvalue('elevationbounds',[-180,180]);
+ 	canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
+-	canvas.rotation = canvas.rotationDefault;
++	canvas.rotation = queryView(canvas);
+ 	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+@@ -162,6 +162,12 @@
+ function clamp(value, min, max) { //{{{
+ 	return Math.max(min, Math.min(value, max));
+ } //}}}
++function queryView(canvas) { //{{{
++	if (canvas.rotation) {
++		return canvas.rotation;
++	}
++	return canvas.rotationDefault;
++} //}}}
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+@@ -359,7 +365,7 @@
+ 	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+ 	
+ 	//Apply worldspace translation
+-	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], 0.0, canvas.translation[1]]);
++	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], canvas.translation[2], canvas.translation[1]]);
+ 	mat4.multiply(vMatrix, translateMatrix, vMatrix);
+ 	
+ 	//Calculate rotation around camera focal point about worldspace origin
+@@ -455,7 +461,7 @@
+ 	updateCameraMatrix(canvas);
+ 	
+ 	var drawPassNumber = 2;
+-	for (var i = drawPassNumber - 1; i >= 0; i--) {
++	for (var i = drawPassNumber - 1; i > 0; i--) {
+ 		for (var node in nodes) {
+ 			if (nodes[node]["drawOrder"] == i) {
+ 				drawSceneGraphNode(gl, canvas, nodes[node]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19921-19922.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19921-19922.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19921-19922.diff	(revision 20498)
@@ -0,0 +1,84 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19921)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19922)
+@@ -14,7 +14,7 @@
+ 		alert("Unable to initialize WebGL. Your browser may not support it.");
+ 		gl = null;
+ 	}
+-
++		
+ 	// Enable depth testing
+ 	gl.enable(gl.DEPTH_TEST);
+ 	// Near things obscure far things
+@@ -30,18 +30,20 @@
+ 
+ 	// Load shaders and store them in gl object
+ 	gl.shaders = loadShaders(gl);
++	
+ 
++
+ 	// Add context state variables
+ 	//TODO:Group variables in objects for organization and naming
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+ 	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[1], canvas.zoomBounds[0]);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+-	canvas.translation = [0,0,options.getfieldvalue('centeroffset',0.25)];
++	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.25]);
+ 	canvas.rotationAzimuthBounds = options.getfieldvalue('azimuthbounds',[0,360]);
+ 	canvas.rotationElevationBounds = options.getfieldvalue('elevationbounds',[-180,180]);
+ 	canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
+-	canvas.rotation = queryView(canvas);
++	canvas.rotation = canvas.rotationDefault;
+ 	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+@@ -162,12 +164,20 @@
+ function clamp(value, min, max) { //{{{
+ 	return Math.max(min, Math.min(value, max));
+ } //}}}
+-function queryView(canvas) { //{{{
+-	if (canvas.rotation) {
++function recoverview(canvasid,defaultview) { //{{{
++	var canvas  = document.getElementById(canvasid);
++	if (canvas && canvas.hasOwnProperty("rotation")) {
+ 		return canvas.rotation;
+ 	}
+-	return canvas.rotationDefault;
++	return defaultview;
+ } //}}}
++function recovercenteroffset(canvasid,defaultcenter) { //{{{
++	var canvas  = document.getElementById(canvasid);
++	if (canvas && canvas.hasOwnProperty("translation")) {
++		return canvas.translation;
++	}
++	return defaultcenter;
++} //}}}
+ //}}}
+ //{{{ Shader Loading
+ function loadShaders(gl) { //{{{
+@@ -440,6 +450,15 @@
+ 	}
+ } //}}}
+ function draw(gl,options,canvas,nodes) { //{{{
++	// Ensure canvas and gl viewport sizes are the same
++	var displayWidth  = canvas.clientWidth;
++	var displayHeight = canvas.clientHeight;
++	if (canvas.width  != displayWidth || canvas.height != displayHeight) {
++		canvas.width  = displayWidth;
++		canvas.height = displayHeight;
++		gl.viewport(0, 0, canvas.width, canvas.height);
++	}
++	
+ 	// Set clear color to black, fully opaque
+ 	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','lightcyan'));
+ 	if(backgroundcolor.ok){
+@@ -456,6 +475,7 @@
+ 	}
+ 	// Else, clear the color as well as the depth buffer for new frame
+ 	gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
++
+ 	window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
+ 	
+ 	updateCameraMatrix(canvas);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19922-19923.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19922-19923.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19922-19923.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19922)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19923)
+@@ -314,7 +314,7 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function onPan(ev,canvas) {
++function onPan(ev,canvas) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'panstart') {
+ 		canvas.lastDeltaX = 0;
+@@ -344,8 +344,8 @@
+ 	canvas.lastDeltaY = ev.deltaY;
+ 	
+ 	console.log(canvas.rotation);
+-}
+-function onPinch(ev,canvas) {
++} //}}}
++function onPinch(ev,canvas) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'pinchstart') {
+ 		canvas.zoomLast = canvas.zoomFactor;
+@@ -354,13 +354,13 @@
+ 		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+ 		console.log(canvas.zoomFactor);
+ 	}
+-}
+-function onZoom(ev,canvas) {
++} //}}}
++function onZoom(ev,canvas) { //{{{
+ 	ev.preventDefault();
+ 	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
+ 	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+ 	console.log(canvas.zoomFactor);
+-}
++} //}}}
+ //}}}
+ //{{{ Drawing Functions
+ function updateCameraMatrix(canvas) { //{{{
+@@ -481,7 +481,7 @@
+ 	updateCameraMatrix(canvas);
+ 	
+ 	var drawPassNumber = 2;
+-	for (var i = drawPassNumber - 1; i > 0; i--) {
++	for (var i = drawPassNumber - 1; i >= 0; i--) {
+ 		for (var node in nodes) {
+ 			if (nodes[node]["drawOrder"] == i) {
+ 				drawSceneGraphNode(gl, canvas, nodes[node]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19923-19924.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19923-19924.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19923-19924.diff	(revision 20498)
@@ -0,0 +1,58 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19923)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19924)
+@@ -14,7 +14,7 @@
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+-	
++
+ 	//Process data and model
+ 	var meshresults = processmesh(md,data,options);
+ 	var x = meshresults[0]; 
+@@ -28,7 +28,7 @@
+ 		z = md.geometry.surface;
+ 	}
+ 	//}}}
+-		
++	
+ 	//Compute coordinates and data range:
+ 	var modelxlim = [ArrayMin(x),ArrayMax(x)];
+ 	var modelylim = [ArrayMin(y),ArrayMax(y)];
+@@ -42,7 +42,7 @@
+ 	ymax = ylim[1];
+ 	zmin = zlim[0];
+ 	zmax = zlim[1];
+-	
++		
+ 	//Compute scaling: 
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+@@ -63,7 +63,7 @@
+ 	vertices.itemSize = 3;
+ 	
+ 	//Handle outer radaroverlay
+-	if (md.radaroverlay) {
++	if (md.radaroverlay.x) {
+ 		var newelements = [];
+ 		for (var i = 0; i < md.radaroverlay.outerindex.length; i++) {
+ 			newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]);
+@@ -89,7 +89,7 @@
+ 	
+ 	var xrange = modelxlim[1] - modelxlim[0];
+ 	var yrange = modelylim[1] - modelylim[0];
+-	
++
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
+ 		vertices[vertices.length] = x[i];
+@@ -99,7 +99,7 @@
+ 		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
+ 		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
+ 	}
+-	
++
+ 	//linearize the elements array: 
+ 	indices = indices.concat.apply(indices, elements); 
+ 	indices.itemSize = 1;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19924-19925.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19924-19925.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19924-19925.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19924)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19925)
+@@ -63,7 +63,7 @@
+ 	vertices.itemSize = 3;
+ 	
+ 	//Handle outer radaroverlay
+-	if (md.radaroverlay.x) {
++	if (md.radaroverlay.outerx) {
+ 		var newelements = [];
+ 		for (var i = 0; i < md.radaroverlay.outerindex.length; i++) {
+ 			newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19925-19926.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19925-19926.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19925-19926.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19925)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19926)
+@@ -239,7 +239,7 @@
+ 	IssmDouble conductivity = GetConductivity(element);
+ 
+ 	/*Build friction element, needed later: */
+-	Friction* friction=new Friction(element,3);
++	Friction* friction=new Friction(element,2);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+ 	Gauss* gauss=element->NewGauss(2);
+@@ -338,6 +338,11 @@
+ 			values[i] = rho_ice*thickness[i]/rho_water+bed[i];
+ 		}
+ 
++		/*Make sure that negative pressure is not allowed*/
++      if(values[i]<bed[i]){
++			values[i] = bed[i];
++		}
++
+ 		if(xIsNan<IssmDouble>(values[i])) _error_("NaN found in solution vector");
+ 	}
+ 
+@@ -433,7 +438,7 @@
+ 	IssmDouble conductivity = GetConductivity(element);
+ 
+ 	/*Build friction element, needed later: */
+-	Friction* friction=new Friction(element,3);
++	Friction* friction=new Friction(element,2);
+ 
+ 	/*Keep track of weights*/
+ 	IssmDouble totalweights=0.;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19926-19927.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19926-19927.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19926-19927.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19926)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19927)
+@@ -61,7 +61,7 @@
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+-	node["maskHeight"] = options.getfieldvalue('innermaskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskHeight"] = options.getfieldvalue('innermaskheight',150.0);
+ 	node["maskColor"] = options.getfieldvalue('innermaskcolor',[0.0,0.0,1.0,1.0]);
+ 	node["enabled"] = options.getfieldvalue('nodata','off') == 'off';
+ 	
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19926)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19927)
+@@ -55,7 +55,7 @@
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
+-	node["maskHeight"] = options.getfieldvalue('outermaskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskHeight"] = options.getfieldvalue('outermaskheight',150.0);
+ 	node["maskColor"] = options.getfieldvalue('outermaskcolor',[0.0,0.0,1.0,1.0]);
+ 				
+ 	//some defaults:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19927-19928.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19927-19928.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19927-19928.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive350.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19928-19929.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19928-19929.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19928-19929.diff	(revision 20498)
@@ -0,0 +1,154 @@
+Index: ../trunk-jpl/src/m/plot/plotmodel.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19928)
++++ ../trunk-jpl/src/m/plot/plotmodel.js	(revision 19929)
+@@ -33,10 +33,15 @@
+ 
+ 	//go through subplots
+ 	if (numberofplots){
+-
++		//Clear all canvas nodes
++		for (var i=0;i<numberofplots;i++){
++			var canvas=document.getElementById(options.list[i].getfieldvalue('canvasid'));
++			if (canvas && canvas.nodes) {
++				delete canvas.nodes;
++			}
++		}
+ 		//Go through all data plottable and close window if an error occurs
+ 		for (var i=0;i<numberofplots;i++){
+-
+ 			plot_manager(options.list[i].getfieldvalue('model',md),options.list[i],subplotwidth,nlines,ncols,i);
+ 
+ 			//List all unused options
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19928)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 19929)
+@@ -57,7 +57,7 @@
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["alpha"] = options.getfieldvalue('alpha',1.0);
++	node["alpha"] = options.getfieldvalue('alpha',.6);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19928)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19929)
+@@ -6,31 +6,34 @@
+ //
+ //   See also: PLOTMODEL, PLOT_UNIT
+ 			
+-
+ 	//parse options and get a structure of options. 
+ 	checkplotoptions(md,options);
+-
+ 	//get data to be displayed
+ 	data=options.getfieldvalue('data');
+-
+-	//standard plot: initialize open Gl for each canvas: 
++	
++	//standard plot: initialize open Gl for each canvas, if needed: 
+ 	var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
+ 	canvas.css({'height':String(options.getfieldvalue('canvassize',480)+'px')});
+ 	if ($('#'+options.getfieldvalue('canvasid')).length == 0) {
+ 		canvas.appendTo('body');
+ 	}
+ 	canvas=document.getElementById(options.getfieldvalue('canvasid'));
++	//Initialize the buffer structure when first data is drawn to mesh:
++	var requestDrawing = false;
++	var gl = canvas.gl;
++	if (!canvas.hasOwnProperty("nodes")) {
++		canvas.nodes = {};
++		canvas.datalength = 0;
++		requestDrawing = true;
++		//Initialize the GL context: 
++		gl = initWebGL(canvas,options);
++		if (!gl) {
++			throw Error("plotmodel error message: could not initialize open Gl!");
++		}
++		canvas.gl = gl;
++	}
++	canvas.nodes["data"+String(++canvas.datalength)] = Node(gl,options);
+ 
+-	// Initialize the GL context: 
+-	var gl=initWebGL(canvas,options);
+-	if(!gl){
+-		throw Error("plotmodel error message: could not initialize open Gl!");
+-	}
+-	
+-	//Initialize the buffer structure: 
+-	var nodes = {};
+-	nodes["main"] = Node(gl,options);
+-	
+ 	//figure out if this is a special plot
+ 	if (typeof data === 'string'){
+ 
+@@ -188,8 +191,8 @@
+ 
+ 	//Figure out if this is a semi-transparent plot.
+ 	if (options.getfieldvalue('overlay','off')=='on'){
+-		nodes["overlay"] = Node(gl,options);
+-		plot_overlay(md,data,options,canvas,gl,nodes["overlay"]);
++		canvas.nodes["overlay"] = Node(gl,options);
++		plot_overlay(md,data,options,canvas,gl,canvas.nodes["overlay"]);
+ 	}
+ 
+ 	//Figure out if this is a semi-transparent plot.
+@@ -218,12 +221,12 @@
+ 
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+-		plot_unit(md,data,options,canvas,gl,nodes["main"]);
++		plot_unit(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+ 	}
+ 
+-	//applyoptions(md,data2,options); 
+-	applyoptions(md,data,options,canvas,gl,nodes["main"]);
++	applyoptions(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+ 	
+-	/*Draw into the canvas:*/
+-	draw(gl,options,canvas,nodes);
++	//Draw into the canvas if needed:
++	if (requestDrawing)	draw(gl,options,canvas,canvas.nodes);
++	console.log(canvas.nodes);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19928)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 19929)
+@@ -51,7 +51,7 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+-	node["alpha"] = options.getfieldvalue('alpha',.5);
++	node["alpha"] = options.getfieldvalue('outeralpha',.9);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19928)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19929)
+@@ -422,12 +422,13 @@
+ 		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
+ 		gl.uniform1i(node["shader"]["uColorSampler"], 0);	
+ 	}
+-	if (node["overlay"] == true) {
+-		gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
+-	}
+-	else {
+-		gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+-	}
++	//if (node["overlay"] == true) {
++	//	gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
++	//}
++	//else {
++	//	gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
++	//}
++	gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+ 	if  (node["useIndexBuffer"] == true) {
+ 		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
+ 		gl.drawElements(node["drawMode"], node["buffers"][node["buffers"].length - 1].numItems, gl.UNSIGNED_SHORT, 0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19929-19930.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19929-19930.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19929-19930.diff	(revision 20498)
@@ -0,0 +1,8 @@
+Index: ../trunk-jpl/test/Archives/Archive3008.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive3108.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-19930-19931.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19930-19931.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19930-19931.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19930)
++++ ../trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp	(revision 19931)
+@@ -483,6 +483,7 @@
+ 		IssmDouble pressure_ice   = rho_ice*g*thickness;    _assert_(pressure_ice>0.); 
+ 		IssmDouble pressure_water = rho_water*g*(head-bed);
+ 		if(pressure_water>pressure_ice) pressure_water = pressure_ice;
++      
+ 
+ 		meltrate = 1/latentheat*(G+frictionheat+rho_water*g*conductivity*(dh[0]*dh[0]+dh[1]*dh[1]));
+ 		_assert_(meltrate>0.);
+@@ -500,6 +501,11 @@
+ 	IssmDouble mingap = 0.00001;
+ 	if(newgap<mingap) newgap=mingap;
+ 
++	/*Limit gap height to grow to surface*/
++	if(newgap>thickness)
++	 newgap = thickness;
++	
++	 
+ 	/*Add new gap as an input*/
+ 	element->AddInput(HydrologyGapHeightEnum,&newgap,P0Enum);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19931-19932.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19931-19932.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19931-19932.diff	(revision 20498)
@@ -0,0 +1,150 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 19931)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 19932)
+@@ -20,7 +20,7 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	1e-09,3.2e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
++	1e-09,3.4e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+Index: ../trunk-jpl/test/NightlyRun/test211.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test211.py	(revision 19931)
++++ ../trunk-jpl/test/NightlyRun/test211.py	(revision 19932)
+@@ -29,7 +29,7 @@
+ field_tolerances=[\
+ 	2e-08,2e-08,1e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,\
+ 	5e-07,5e-07,5e-05,1e-07,1e-08,1e-08,1e-08,1e-08,5e-08,2e-06,\
+-	5e-06,5e-06,5e-05,5e-06,1e-07,5e-07,5e-07,5e-07,5e-06,5e-05]
++	5.4e-06,5e-06,5e-05,5e-06,1e-07,5e-07,5e-07,5e-07,5e-06,5e-05]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test211.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test211.m	(revision 19931)
++++ ../trunk-jpl/test/NightlyRun/test211.m	(revision 19932)
+@@ -16,7 +16,7 @@
+ field_tolerances={...
+ 	2e-08,2e-08,2e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,...
+ 	5e-07,5e-07,5e-05,2e-07,1e-08,1e-08,1e-08,1e-08,6e-08,2e-06,...
+-	5e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05};
++	5.4e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19931)
++++ ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19932)
+@@ -6,7 +6,7 @@
+ mkdir install src
+ 
+ #Download from ISSM server
+-#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+ tar -zxvf  petsc-3.5.3.tar.gz
+Index: ../trunk-jpl/jenkins/linux64_ross_test
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_test	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_test	(revision 19932)
+@@ -0,0 +1,93 @@
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++#MATLAB_TEST=1
++#PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++#ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-6.2-linux64.sh  
++						chaco         install.sh 
++						m1qn3         install.sh          
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++#ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=6
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=3
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 243 514 701 702 435"
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19932-19933.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19932-19933.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19932-19933.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 19932)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 19933)
+@@ -20,7 +20,7 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	1e-09,3.4e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
++	1e-09,3.2e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+Index: ../trunk-jpl/test/NightlyRun/test211.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test211.py	(revision 19932)
++++ ../trunk-jpl/test/NightlyRun/test211.py	(revision 19933)
+@@ -29,7 +29,7 @@
+ field_tolerances=[\
+ 	2e-08,2e-08,1e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,\
+ 	5e-07,5e-07,5e-05,1e-07,1e-08,1e-08,1e-08,1e-08,5e-08,2e-06,\
+-	5.4e-06,5e-06,5e-05,5e-06,1e-07,5e-07,5e-07,5e-07,5e-06,5e-05]
++	5e-06,5e-06,5e-05,5e-06,1e-07,5e-07,5e-07,5e-07,5e-06,5e-05]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test211.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test211.m	(revision 19932)
++++ ../trunk-jpl/test/NightlyRun/test211.m	(revision 19933)
+@@ -16,7 +16,7 @@
+ field_tolerances={...
+ 	2e-08,2e-08,2e-06,2e-08,1e-08,1e-08,1e-08,1e-08,1e-08,1e-08,...
+ 	5e-07,5e-07,5e-05,2e-07,1e-08,1e-08,1e-08,1e-08,6e-08,2e-06,...
+-	5.4e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05};
++	5e-06,5e-06,5e-05,5e-06,5e-07,5e-07,5e-07,5e-07,5e-06,5e-05};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19932)
++++ ../trunk-jpl/externalpackages/petsc/install-3.5-win7.sh	(revision 19933)
+@@ -6,7 +6,7 @@
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
++#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.5.3.tar.gz' 'petsc-3.5.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+ tar -zxvf  petsc-3.5.3.tar.gz
Index: /issm/oecreview/Archive/19101-20495/ISSM-19933-19934.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19933-19934.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19933-19934.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19933)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19934)
+@@ -97,7 +97,6 @@
+ 				plot_drivingstress(md,options,subplotwidth,i);
+ 				break;
+ 			case 'mesh':
+-				console.log('hello');
+ 				plot_mesh(md,options,canvas,gl,nodes["main"]);
+ 				break;
+ 			case 'none':
+@@ -228,5 +227,4 @@
+ 	
+ 	//Draw into the canvas if needed:
+ 	if (requestDrawing)	draw(gl,options,canvas,canvas.nodes);
+-	console.log(canvas.nodes);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19934-19935.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19934-19935.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19934-19935.diff	(revision 20498)
@@ -0,0 +1,101 @@
+Index: ../trunk-jpl/src/m/plot/radarpower.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/radarpower.m	(revision 19934)
++++ ../trunk-jpl/src/m/plot/radarpower.m	(revision 19935)
+@@ -35,7 +35,8 @@
+ 
+ %figure out if we should go look for Greenland or Antarctica geotiff, or if user provided one.
+ if ~exist(options,'overlay_image'),
+-	if md.mesh.epsg==3413,
++	if md.mesh.epsg==3413,   %Greenland 
++		%old code {{{ 
+ 		%if ~exist(['/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg']),
+ 		%	error(['radarpower error message: file ' '/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg not found.']);
+ 		%end
+@@ -67,7 +68,7 @@
+ 		%im=im(firstrow:firstrow+numrows-1,firstcol:firstcol+numcols-1);
+ 		%md.radaroverlay.pwr=double(flipud(im(1:pixelskip:end,1:pixelskip:end)));
+ 		%md.radaroverlay.x=(xmin:(xmax-xmin)/(size(md.radaroverlay.pwr,2)-1):xmax);
+-		%md.radaroverlay.y=(ymin:(ymax-ymin)/(size(md.radaroverlay.pwr,1)-1):ymax);
++		%md.radaroverlay.y=(ymin:(ymax-ymin)/(size(md.radaroverlay.pwr,1)-1):ymax); % }}}
+ 		if ~exist(options,'geotiff_name'),
+ 			if highres,
+ 				if ~exist(['/u/astrid-r1b/ModelData/MOG/mog100_r2_hp1.tif']),
+@@ -106,7 +107,7 @@
+ 		if ~getfieldvalue(options,'keep_image',0),
+ 			system('rm -rf ./temp.tif');
+ 		end
+-	elseif md.mesh.epsg==3031,
++	elseif md.mesh.epsg==3031, %Antarctica 
+ 		if ~exist(options,'geotiff_name'),
+ 			if highres,
+ 				if ~exist(['/u/astrid-r1b/ModelData/MosaicTiffRsat/amm125m_v2_200m.tif']),
+@@ -134,8 +135,6 @@
+ 		md.radaroverlay.x=(x0:(x1-x0)/(size(md.radaroverlay.pwr,2)-1):x1);
+ 		md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
+ 
+-		%Erase image
+-		system('rm -rf ./temp.tif');
+ 		%Erase image or keep it?
+ 		if ~getfieldvalue(options,'keep_image',0),
+ 			system('rm -rf ./temp.tif');
+@@ -173,7 +172,7 @@
+ end
+ 
+ %Was a triangulation requested for the area of the image that is not covered by the mesh?
+-if getfieldvalue(options,'outertriangulation','yes'),
++if strcmpi(getfieldvalue(options,'outertriangulation','no'),'yes'),
+ 
+ 	%create expfile that is a box controlled by xlim and ylim, with a hole defined by the mesh outer segments.
+ 	box.name='';
+@@ -189,15 +188,17 @@
+ 	box(2).y=[md.mesh.y(md.mesh.segments(:,1)); md.mesh.y(md.mesh.segments(end,2))];
+ 	box(2).y=[box(2).y; box(2).y(1)];
+ 
+-	box(2).x=flipud(box(2).x);
+-	box(2).y=flipud(box(2).y);
++	if strcmpi(getfieldvalue(options,'outertriangulationflip','no'),'yes'),
++		box(2).x=flipud(box(2).x);
++		box(2).y=flipud(box(2).y);
++	end
+ 
+ 	%write contour to file
+ 	expwrite(box,'./outertriangulation.exp');
+ 
+ 	%mesh: 
+ 	maxarea=max(GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y));
+-	outermd=triangle(model(),'./outertriangulation.exp',maxarea);
++	outermd=triangle(model(),'./outertriangulation.exp',sqrt(maxarea));
+ 	
+ 	%save the triangulation: 
+ 	md.radaroverlay.outerindex=outermd.mesh.elements;
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19934)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 19935)
+@@ -9,7 +9,7 @@
+ 	//parse options and get a structure of options. 
+ 	checkplotoptions(md,options);
+ 	//get data to be displayed
+-	data=options.getfieldvalue('data');
++	var data=options.getfieldvalue('data');
+ 	
+ 	//standard plot: initialize open Gl for each canvas, if needed: 
+ 	var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 19934)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 19935)
+@@ -15,9 +15,10 @@
+ 	color=options.getfieldvalue('color','#bbbbbb');
+ 	precision=options.getfieldvalue('precision',3);
+ 	step=options.getfieldvalue('step',1);
++	slidersdiv=options.getfieldvalue('slidersdiv','#sliders');
+ 
+-	$('<div id="slider_'+slidername+'"></div>').appendTo('#sliders');
+-	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#sliders');
++	$('<div id="slider_'+slidername+'"></div>').appendTo(slidersdiv);
++	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo(slidersdiv);
+ 	var info=$('#info_'+slidername);
+ 	$('#slider_'+slidername).slider({
+ 		range:'min',
Index: /issm/oecreview/Archive/19101-20495/ISSM-19935-19936.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19935-19936.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19935-19936.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 19935)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 19936)
+@@ -15,12 +15,12 @@
+ 	color=options.getfieldvalue('color','#bbbbbb');
+ 	precision=options.getfieldvalue('precision',3);
+ 	step=options.getfieldvalue('step',1);
+-	slidersdiv=options.getfieldvalue('slidersdiv','#sliders');
++	slidersdiv=options.getfieldvalue('slidersdiv','slidersdiv');
+ 
+-	$('<div id="slider_'+slidername+'"></div>').appendTo(slidersdiv);
+-	$('<div id="info_'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo(slidersdiv);
+-	var info=$('#info_'+slidername);
+-	$('#slider_'+slidername).slider({
++	$('<div id="slider'+slidername+'"></div>').appendTo('#'+slidersdiv);
++	$('<div id="info'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
++	var info=$('#info'+slidername);
++	$('#slider'+slidername).slider({
+ 		range:'min',
+ 		value:initialvalue,
+ 		min:min,
Index: /issm/oecreview/Archive/19101-20495/ISSM-19936-19937.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19936-19937.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19936-19937.diff	(revision 20498)
@@ -0,0 +1,96 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19936)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19937)
+@@ -47,17 +47,17 @@
+ 	canvas.controlsensitivity = 1;
+ 
+ 	// Add event listeners for canvas
+-	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas)}, false);
+-	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas)}, false);
++	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options)}, false);
++	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options)}, false);
+ 
+ 	var mc = new Hammer.Manager(canvas);
+ 
+     mc.add(new Hammer.Pan({threshold:0, pointers:0}));
+     mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
+ 
+-    mc.on("panstart panmove", function (ev) {onPan(ev,canvas);});
+-    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas);});
+-	//mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas);});
++    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options);});
++    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options);});
++	//mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas,options);});
+ 	
+ 	return gl;
+ } //}}}
+@@ -234,7 +234,7 @@
+ 		'',
+ 		'void main(void) {',
+ 		'	if (uMaskEnabled && (vZCoord < uMaskHeight)) {',
+-		'		gl_FragColor = uMaskColor;',
++		'		gl_FragColor = vec4(uMaskColor.xyz, uAlpha);',
+ 		'	}',
+ 		'	else {',
+ 		'		gl_FragColor = vec4(texture2D(uColorSampler, vec2(vTextureCoord.s, vTextureCoord.t)).rgb, uAlpha);',
+@@ -314,7 +314,7 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function onPan(ev,canvas) { //{{{
++function onPan(ev,canvas,options) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'panstart') {
+ 		canvas.lastDeltaX = 0;
+@@ -325,7 +325,6 @@
+ 		var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
+ 		
+ 		canvas.translation[0] += Math.cos(radians(canvas.rotation[0])) * deltaX - Math.sin(radians(canvas.rotation[0])) * deltaY;
+-		//console.log(Math.cos(radians(canvas.rotation[0])) * deltaX, Math.sin(radians(canvas.rotation[0])) * deltaY);
+ 		canvas.translation[1] += Math.sin(radians(canvas.rotation[0])) * deltaX + Math.cos(radians(canvas.rotation[0])) * deltaY;
+ 	}
+ 	else {
+@@ -343,23 +342,23 @@
+ 	canvas.lastDeltaX = ev.deltaX;
+ 	canvas.lastDeltaY = ev.deltaY;
+ 	
+-	console.log(canvas.rotation);
++	if (options.getfieldvalue('displayview','off') == 'on') console.log(canvas.rotation);
+ } //}}}
+-function onPinch(ev,canvas) { //{{{
++function onPinch(ev,canvas,options) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'pinchstart') {
+ 		canvas.zoomLast = canvas.zoomFactor;
+ 	}
+ 	else {
+ 		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+-		console.log(canvas.zoomFactor);
++		if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
+ 	}
+ } //}}}
+-function onZoom(ev,canvas) { //{{{
++function onZoom(ev,canvas,options) { //{{{
+ 	ev.preventDefault();
+ 	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
+ 	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+-	console.log(canvas.zoomFactor);
++	if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19936)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19937)
+@@ -148,9 +148,6 @@
+ 		 //check that there is no duplicates
+ 		 for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
+ 
+-		 //allocate canvasid automatically
+-		 for (var i=0;i<numberofplots;i++) list[i].addfield('canvasid',i);
+-
+ 		 //Get figure number (should be in options for subplot 1)
+ 		 this.figurenumber=list[0].getfieldvalue('figure',1);
+ 		 list[0].removefield('figure',0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19937-19938.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19937-19938.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19937-19938.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19937)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19938)
+@@ -53,7 +53,12 @@
+ then
+ 	#number of packages: 
+ 	NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
++	EXTERNAL_TEST_FILE="$ISSM_DIR/nightlylog/results/external.xml"
+ 
++	mkdir -p $ISSM_DIR/nightlylog/results
++
++	echo echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
++
+ 	for ((i=1;i<=$NUMPACKAGES;i++))
+ 	do
+ 		NUM1=$((2*$i-1))
+@@ -105,6 +110,11 @@
+ 				echo "======================================================";
+ 				#erase install directory, so that next time, we still try and compile this!
+ 				rm -rf install
++				echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE
++				echo '<failure message="failure">External packages did not install right. Check it.</failure>' >> $EXTERNAL_TEST_FILE
++				echo '</testcase>' >> $EXTERNAL_TEST_FILE
++			else
++				echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 			fi
+ 			source $ISSM_DIR/etc/environment.sh
+ 		else
+@@ -112,9 +122,12 @@
+ 			echo "       Skipping install of $PACKAGENAME               ";
+ 			echo "======================================================";
+ 			source $ISSM_DIR/etc/environment.sh #for good measure :)
++
++			echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
+ 		cd ..
+ 	done
++	echo echo '</testsuite>' >> $EXTERNAL_TEST_FILE
+ 
+ elif [ "$ISSM_EXTERNALPACKAGES" == "copy" ]
+ then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19938-19939.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19938-19939.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19938-19939.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19938)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19939)
+@@ -2,6 +2,11 @@
+ #This bash script calls the nightlyrun.m matlab file to run our nightly test decks. 
+ #It then processes the results and sends an email to the Ice developpers.
+ 
++echo "Cleaning up execution directory"
++rm -rf $ISSM_DIR/execution/*
++rm -rf $ISSM_DIR/nightlylog
++mkdir  $ISSM_DIR/nightlylog
++
+ #Get configuration
+ #Source config file{{{
+ if [ $# -ne 1 ];
+@@ -190,10 +195,6 @@
+ 	exit 1
+ fi
+ #}}}
+-echo "Cleaning up execution directory"
+-rm -rf $ISSM_DIR/execution/*
+-rm -rf $ISSM_DIR/nightlylog
+-mkdir  $ISSM_DIR/nightlylog
+ 
+ #matlab tests
+ if [ $MATLAB_TEST -eq 1 ]; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19939-19940.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19939-19940.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19939-19940.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19939)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19940)
+@@ -62,7 +62,7 @@
+ 
+ 	mkdir -p $ISSM_DIR/nightlylog/results
+ 
+-	echo echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
++	echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
+ 
+ 	for ((i=1;i<=$NUMPACKAGES;i++))
+ 	do
+@@ -132,7 +132,7 @@
+ 		fi
+ 		cd ..
+ 	done
+-	echo echo '</testsuite>' >> $EXTERNAL_TEST_FILE
++	echo '</testsuite>' >> $EXTERNAL_TEST_FILE
+ 
+ elif [ "$ISSM_EXTERNALPACKAGES" == "copy" ]
+ then
Index: /issm/oecreview/Archive/19101-20495/ISSM-19940-19941.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19940-19941.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19940-19941.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 19940)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 19941)
+@@ -115,11 +115,11 @@
+ 				echo "======================================================";
+ 				#erase install directory, so that next time, we still try and compile this!
+ 				rm -rf install
+-				echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE
++				echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE
+ 				echo '<failure message="failure">External packages did not install right. Check it.</failure>' >> $EXTERNAL_TEST_FILE
+ 				echo '</testcase>' >> $EXTERNAL_TEST_FILE
+ 			else
+-				echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
++				echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 			fi
+ 			source $ISSM_DIR/etc/environment.sh
+ 		else
+@@ -128,7 +128,7 @@
+ 			echo "======================================================";
+ 			source $ISSM_DIR/etc/environment.sh #for good measure :)
+ 
+-			echo "<testcase classname="externalpackages" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
++			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
+ 		cd ..
+ 	done
Index: /issm/oecreview/Archive/19101-20495/ISSM-19941-19942.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19941-19942.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19941-19942.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 19941)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 19942)
+@@ -88,6 +88,7 @@
+ <script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/jquery.min.js"></script>
+ <script type="text/javascript" src="../../externalpackages/javascript/src/gl-matrix-min.js"></script>
++<script type="text/javascript" src="../../externalpackages/javascript/src/hammer.min.js"></script>
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19941)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19942)
+@@ -148,6 +148,14 @@
+ 		 //check that there is no duplicates
+ 		 for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
+ 
++		 //allocate canvasid automatically
++		 console.log(list);
++		 for (var i=0;i<numberofplots;i++) {
++			if (!list[i].exist('canvasid')) {
++				list[i].addfield('canvasid',i);
++			}
++		}
++
+ 		 //Get figure number (should be in options for subplot 1)
+ 		 this.figurenumber=list[0].getfieldvalue('figure',1);
+ 		 list[0].removefield('figure',0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19942-19943.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19942-19943.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19942-19943.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19942)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19943)
+@@ -46,6 +46,13 @@
+ 	canvas.rotation = canvas.rotationDefault;
+ 	canvas.controlsensitivity = 1;
+ 
++	if (options.getfieldvalue('2d','off') == 'on') {
++		canvas.rotationAzimuthBounds = [0,0];
++		canvas.rotationElevationBounds = [90,90];
++		canvas.rotationDefault = [0,90];
++		canvas.rotation = canvas.rotationDefault;
++	}
++	
+ 	// Add event listeners for canvas
+ 	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options)}, false);
+ 	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options)}, false);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19943-19944.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19943-19944.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19943-19944.diff	(revision 20498)
@@ -0,0 +1,315 @@
+Index: ../trunk-jpl/src/m/classes/plotoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19943)
++++ ../trunk-jpl/src/m/classes/plotoptions.js	(revision 19944)
+@@ -5,170 +5,169 @@
+ 
+ function plotoptions(args) {
+ 	//methods
+-	 this.disp = function (){ // {{{
+-		 console.log(sprintf('\nplotoptions = \n'));
+-		 console.log(sprintf('   figurenumber: %i',this.figurenumber));
+-		 console.log(sprintf('   numberofplots: %i',this.numberofplots));
+-		 if (this.list.length){
+-			 for (var i=0;i<this.list.length;i++){
+-				 console.log(sprintf('\n   options of plot number %i',i+1));
+-				 this.list[i].disp();
+-			 }
+-		 }
+-		 else{
+-			 console.log(sprintf('   list: empty'));
+-		 }
+-	 }
+-	 //}}}
+-	 this.constructor = function (args){ // {{{
++	this.disp = function (){ // {{{
++		console.log(sprintf('\nplotoptions = \n'));
++		console.log(sprintf('   figurenumber: %i',this.figurenumber));
++		console.log(sprintf('   numberofplots: %i',this.numberofplots));
++		if (this.list.length){
++			for (var i=0;i<this.list.length;i++){
++				console.log(sprintf('\n   options of plot number %i',i+1));
++				this.list[i].disp();
++			}
++		}
++		else{
++			console.log(sprintf('   list: empty'));
++		}
++	}
++	//}}}
++	this.constructor = function (args){ // {{{
+ 
+-		 //check length of input
+-		 if (args.length % 2){
+-			 for (i=0;i<args.length;i+=2){
+-				 if (!(typeof args[i] === 'string')){
+-					 console.log('Last valid option: ' + args[i-2]);
+-					 break;
+-				 }
+-			 }
+-			 throw Error('plotoptions error message: invalid parameter/value pair arguments');
+-		 }
++		//check length of input
++		if (args.length % 2){
++			for (i=0;i<args.length;i+=2){
++				if (!(typeof args[i] === 'string')){
++					console.log('Last valid option: ' + args[i-2]);
++					break;
++				}
++			}
++			throw Error('plotoptions error message: invalid parameter/value pair arguments');
++		}
+ 
+-		 //go through varargin and build list (like pairoptions)
+-		 var rawoptions=new pairoptions(args);
+-		 numoptions=rawoptions.numoptions();
++		//go through varargin and build list (like pairoptions)
++		var rawoptions=new pairoptions(args);
++		numoptions=rawoptions.numoptions();
+ 
+-		 var counter=0;
+-		 for (i=0;i<numoptions;i++){
+-			 if(typeof args[2*i] === 'string')counter++;
+-		 }
+-		 rawlist=Create2DArray(counter,2);
+-		 var counter=0;
+-		 for (i=0;i<numoptions;i++){
+-			 optionname=args[2*i];
+-			 optionval=args[2*i+1];
+-			 if(typeof optionname === 'string'){
+-				 rawlist[counter][0]=optionname;
+-				 rawlist[counter][1]=optionval;
+-				 counter++;
+-			 }
+-			 else{
+-				 //option is not a string, ignore it
+-				 console.log(sprintf("%s%i%s\n",'WARNING: option number ',i,' is not a string, it will be ignored'));
+-				 rawlist[counter]=[];
+-				 continue
+-			 }
+-		 }
+-		 
+-			 
+-		 //get number of data to be plotted
+-		 numberofplots=rawoptions.fieldoccurrences('data');
+-		 this.numberofplots=numberofplots;
++		var counter=0;
++		for (i=0;i<numoptions;i++){
++			if(typeof args[2*i] === 'string')counter++;
++		}
++		rawlist=Create2DArray(counter,2);
++		var counter=0;
++		for (i=0;i<numoptions;i++){
++			optionname=args[2*i];
++			optionval=args[2*i+1];
++			if(typeof optionname === 'string'){
++				rawlist[counter][0]=optionname;
++				rawlist[counter][1]=optionval;
++				counter++;
++			}
++			else{
++				//option is not a string, ignore it
++				console.log(sprintf("%s%i%s\n",'WARNING: option number ',i,' is not a string, it will be ignored'));
++				rawlist[counter]=[];
++				continue
++			}
++		}
++		
++			
++		//get number of data to be plotted
++		numberofplots=rawoptions.fieldoccurrences('data');
++		this.numberofplots=numberofplots;
+ 
+-		 //figure out wether alloptions flog is on
+-		 if (rawoptions.getfieldvalue('alloptions','off') === 'on') allflag=1;
+-		 else allflag=0;
++		//figure out wether alloptions flog is on
++		if (rawoptions.getfieldvalue('alloptions','off') === 'on') allflag=1;
++		else allflag=0;
+ 
+-		 //initialize list
+-		 var list=new Array(numberofplots);
+-		 for (i=0;i<numberofplots;i++){
+-			 list[i]=new pairoptions([]);
+-		 }
+-		 		 
++		//initialize list
++		var list=new Array(numberofplots);
++		for (i=0;i<numberofplots;i++){
++			list[i]=new pairoptions([]);
++		}
++				
+ 		//process plot options
+-		 for(var i=0;i<rawlist.length;i++){
++		for(var i=0;i<rawlist.length;i++){
+ 
+-			 //If alloptions flag has is on, apply to all plots
+-			 if (allflag & !(rawlist[i][0] === 'data') & (rawlist[i][0].indexOf('#') == -1)){
+-				 for(var j=0;j<numberofplots;j++){
+-					 list[j].addfield(rawlist[i][0],rawlist[i][1]);
+-				 }
+-			 }
+-			 else if (rawlist[i][0].indexOf('#') != -1){ //option contains '#'
++			//If alloptions flag has is on, apply to all plots
++			if (allflag & !(rawlist[i][0] === 'data') & (rawlist[i][0].indexOf('#') == -1)){
++				for(var j=0;j<numberofplots;j++){
++					list[j].addfield(rawlist[i][0],rawlist[i][1]);
++				}
++			}
++			else if (rawlist[i][0].indexOf('#') != -1){ //option contains '#'
+ 
+-				 //get suplot(s) associated
+-				 string=rawlist[i][0].split('#');
+-				 plotnums=string[1];
+-				 field=string[0];
++				//get suplot(s) associated
++				string=rawlist[i][0].split('#');
++				plotnums=string[1];
++				field=string[0];
+ 
+-				 //divide plotnums if there is a comma ','
+-				 plotnums=plotnums.split(',');
++				//divide plotnums if there is a comma ','
++				plotnums=plotnums.split(',');
+ 
+-				 //loop over plotnums
+-				 for (k=0;k<plotnums.length;k++){
+-					 plotnum=plotnums[k];
++				//loop over plotnums
++				for (k=0;k<plotnums.length;k++){
++					plotnum=plotnums[k];
+ 
+-					 //Empty
+-					 if (plotnum === '') continue;
++					//Empty
++					if (plotnum === '') continue;
+ 
+-					 else if (plotnum === 'all'){ //pound all
+-						 for(var j=0;j<numberofplots;j++){
+-							 list[j].addfield(field,rawlist[i][1]);
+-						 }
+-					 }
+-					 else if (plotnum.indexOf('-')!=-1){  //pound i-j
+-						 nums=plotnum.split('-');
+-						 if (nums.length!=2) continue;
+-						 if ((nums[0] == '') | (nums[1] === '')){
+-							 throw Error(sprintf("%s%s\n",'the option #i-j is not set properly for ',field));
+-						 }
+-						 for (j=(Number(nums[0])-1);j<(Number(nums[1])); j++){
+-							 list[j].addfield(field,rawlist[i][1]);
+-						 }
+-					 }
+-					 else{ //pound i
+-						 //assign to subplot
+-						 if (Number(plotnum)>numberofplots){
++					else if (plotnum === 'all'){ //pound all
++						for(var j=0;j<numberofplots;j++){
++							list[j].addfield(field,rawlist[i][1]);
++						}
++					}
++					else if (plotnum.indexOf('-')!=-1){  //pound i-j
++						nums=plotnum.split('-');
++						if (nums.length!=2) continue;
++						if ((nums[0] == '') | (nums[1] === '')){
++							throw Error(sprintf("%s%s\n",'the option #i-j is not set properly for ',field));
++						}
++						for (j=(Number(nums[0])-1);j<(Number(nums[1])); j++){
++							list[j].addfield(field,rawlist[i][1]);
++						}
++					}
++					else{ //pound i
++						//assign to subplot
++						if (Number(plotnum)>numberofplots){
+ 							throw Error(sprintf("%s%s%s%i%s\n",'plotoptions error message: ',field,' cannot be assigned (',plotnum,' exceeds maximum number of plot)'));
+-						 }
+-						 list[Number(plotnum)-1].addfield(field,rawlist[i][1]);
+-					 }
+-				 }
+-			 }
+-			 else{ //assign option field to corresponding subplot
++						}
++						list[Number(plotnum)-1].addfield(field,rawlist[i][1]);
++					}
++				}
++			}
++			else{ //assign option field to corresponding subplot
+ 
+-				 
+-				 //go through all subplot and assign to the first one free
+-				 var inc=0;
+-				 
+-				 while (inc<numberofplots){
++				
++				//go through all subplot and assign to the first one free
++				var inc=0;
++				
++				while (inc<numberofplots){
+ 					
+-					 if (!list[inc].exist(rawlist[i][0])){
+-						 list[inc].addfield(rawlist[i][0],rawlist[i][1]);
+-						 break
+-					 }
+-					 else inc++;
+-				 }
++					if (!list[inc].exist(rawlist[i][0])){
++						list[inc].addfield(rawlist[i][0],rawlist[i][1]);
++						break
++					}
++					else inc++;
++				}
+ 
+-				 if (inc>numberofplots-1){
+-					 console.log(sprintf("%s%s%s\n",'plot info message: too many ',rawlist[i][0],' options'));
+-				 }
+-			 }
+-		 }
++				if (inc>numberofplots-1){
++					console.log(sprintf("%s%s%s\n",'plot info message: too many ',rawlist[i][0],' options'));
++				}
++			}
++		}
+ 
+-		 //check that there is no duplicates
+-		 for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
++		//check that there is no duplicates
++		for (var i=0;i<numberofplots;i++) list[i].deleteduplicates();
+ 
+-		 //allocate canvasid automatically
+-		 console.log(list);
+-		 for (var i=0;i<numberofplots;i++) {
++		//allocate canvasid automatically
++		for (var i=0;i<numberofplots;i++) {
+ 			if (!list[i].exist('canvasid')) {
+ 				list[i].addfield('canvasid',i);
+ 			}
+ 		}
+ 
+-		 //Get figure number (should be in options for subplot 1)
+-		 this.figurenumber=list[0].getfieldvalue('figure',1);
+-		 list[0].removefield('figure',0);
++		//Get figure number (should be in options for subplot 1)
++		this.figurenumber=list[0].getfieldvalue('figure',1);
++		list[0].removefield('figure',0);
+ 
+-		 //asign output
+-		 this.list=list;
++		//asign output
++		this.list=list;
+ 
+-	 } //}}}
+-    //properties 
+-	 // {{{
+-	 this.numberofplots = 0;
+-	 this.figurenumber  = 1;
+-	 this.list          = [];
+-	 this.constructor(args);
+-	 //}}}
++	} //}}}
++	//properties
++	// {{{
++	this.numberofplots = 0;
++	this.figurenumber  = 1;
++	this.list          = [];
++	this.constructor(args);
++	//}}}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19944-19945.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19944-19945.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19944-19945.diff	(revision 20498)
@@ -0,0 +1,97 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19944)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19945)
+@@ -31,8 +31,6 @@
+ 	// Load shaders and store them in gl object
+ 	gl.shaders = loadShaders(gl);
+ 	
+-
+-
+ 	// Add context state variables
+ 	//TODO:Group variables in objects for organization and naming
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+@@ -45,8 +43,9 @@
+ 	canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
+ 	canvas.rotation = canvas.rotationDefault;
+ 	canvas.controlsensitivity = 1;
++	canvas.twod = options.getfieldvalue('2d','off') == 'on';
+ 
+-	if (options.getfieldvalue('2d','off') == 'on') {
++	if (canvas.twod) {
+ 		canvas.rotationAzimuthBounds = [0,0];
+ 		canvas.rotationElevationBounds = [90,90];
+ 		canvas.rotationDefault = [0,90];
+@@ -54,16 +53,16 @@
+ 	}
+ 	
+ 	// Add event listeners for canvas
+-	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options)}, false);
+-	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options)}, false);
++	canvas.addEventListener("mousewheel", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
++	canvas.addEventListener("DOMMouseScroll", function (ev) {onZoom(ev,canvas,options.getfieldvalue('displayzoom','off') == 'on')}, false);
+ 
+ 	var mc = new Hammer.Manager(canvas);
+ 
+     mc.add(new Hammer.Pan({threshold:0, pointers:0}));
+     mc.add(new Hammer.Pinch({threshold:0})).recognizeWith(mc.get('pan'));
+ 
+-    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options);});
+-    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options);});
++    mc.on("panstart panmove", function (ev) {onPan(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
++    mc.on("pinchstart pinchmove", function (ev) {onPinch(ev,canvas,options.getfieldvalue('displayview','off') == 'on');});
+ 	//mc.on("mousewheel DOMMouseScroll", function (ev) {onZoom(ev,canvas,options);});
+ 	
+ 	return gl;
+@@ -321,7 +320,7 @@
+ } //}}}
+ //}}}
+ //{{{ Interface Functions
+-function onPan(ev,canvas,options) { //{{{
++function onPan(ev,canvas,displaylog) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'panstart') {
+ 		canvas.lastDeltaX = 0;
+@@ -349,23 +348,23 @@
+ 	canvas.lastDeltaX = ev.deltaX;
+ 	canvas.lastDeltaY = ev.deltaY;
+ 	
+-	if (options.getfieldvalue('displayview','off') == 'on') console.log(canvas.rotation);
++	if (displaylog) console.log(canvas.rotation);
+ } //}}}
+-function onPinch(ev,canvas,options) { //{{{
++function onPinch(ev,canvas,displaylog) { //{{{
+ 	ev.preventDefault();
+ 	if (ev.type == 'pinchstart') {
+ 		canvas.zoomLast = canvas.zoomFactor;
+ 	}
+ 	else {
+ 		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+-		if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
++		if (displaylog) console.log(canvas.zoomFactor);
+ 	}
+ } //}}}
+-function onZoom(ev,canvas,options) { //{{{
++function onZoom(ev,canvas,displaylog) { //{{{
+ 	ev.preventDefault();
+ 	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
+ 	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
+-	if (options.getfieldvalue('displayzoom','off') == 'on') console.log(canvas.zoomFactor);
++	if (displaylog) console.log(canvas.zoomFactor);
+ } //}}}
+ //}}}
+ //{{{ Drawing Functions
+@@ -378,7 +377,12 @@
+ 	var azimuthRotationMatrix = mat4.create();
+ 	var elevationRotationMatrix = mat4.create();
+ 
+-	mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
++	if (canvas.twod) {
++		mat4.ortho(pMatrix, 1*canvas.zoomFactor, -1*canvas.zoomFactor, 1*canvas.zoomFactor, -1*canvas.zoomFactor, -1, 1.0);
++	}
++	else {
++		mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
++	}
+ 	
+ 	//Apply worldspace translation
+ 	mat4.translate(translateMatrix, translateMatrix, [canvas.translation[0], canvas.translation[2], canvas.translation[1]]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19945-19946.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19945-19946.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19945-19946.diff	(revision 20498)
@@ -0,0 +1,114 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19945)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19946)
+@@ -33,8 +33,8 @@
+ 	
+ 	// Add context state variables
+ 	//TODO:Group variables in objects for organization and naming
+-	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,-.52]);
+-	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',canvas.zoomBounds[1]), canvas.zoomBounds[1], canvas.zoomBounds[0]);
++	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,100.0]);
++	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+ 	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.25]);
+@@ -117,7 +117,6 @@
+ 		hideOcean:false,
+ 		level:0,
+ 		useIndexBuffer:true,
+-		useOrthographic:false,
+ 		alpha:1.0,
+ 		disableDepthTest:false, 
+ 		enableCullFace:false,
+@@ -129,7 +128,6 @@
+ 		scale:vec3.fromValues(1, 1, 1),
+ 		modelMatrix:mat4.create(),
+ 		shaderName:"colored",
+-		overlay:false,
+ 		drawOrder:0,
+ 		maskEnabled:false,
+ 		maskHeight:150.0,
+@@ -327,15 +325,15 @@
+ 		canvas.lastDeltaY = 0;
+ 	}
+ 	if (ev.srcEvent.shiftKey || ev.pointers.length == 2) {
+-		var deltaX = (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2;
+-		var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2;
++		var deltaX = (canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth / canvas.zoomFactor * -2;
++		var deltaY = (canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight / canvas.zoomFactor * -2;
+ 		
+ 		canvas.translation[0] += Math.cos(radians(canvas.rotation[0])) * deltaX - Math.sin(radians(canvas.rotation[0])) * deltaY;
+ 		canvas.translation[1] += Math.sin(radians(canvas.rotation[0])) * deltaX + Math.cos(radians(canvas.rotation[0])) * deltaY;
+ 	}
+ 	else {
+-		canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth * canvas.zoomFactor * 2);
+-		canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight * canvas.zoomFactor * 2);
++		canvas.rotation[0] += degrees((canvas.lastDeltaX - ev.deltaX) / canvas.clientWidth / canvas.zoomFactor * -2);
++		canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight / canvas.zoomFactor * -2);
+ 		
+ 		if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360};
+ 		if (canvas.rotation[0] < 0) {canvas.rotation[0] += 360};
+@@ -356,14 +354,15 @@
+ 		canvas.zoomLast = canvas.zoomFactor;
+ 	}
+ 	else {
+-		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[1], canvas.zoomBounds[0]);
++		canvas.zoomFactor = clamp(ev.scale * canvas.zoomLast, canvas.zoomBounds[0], canvas.zoomBounds[1]);
+ 		if (displaylog) console.log(canvas.zoomFactor);
+ 	}
+ } //}}}
+ function onZoom(ev,canvas,displaylog) { //{{{
+ 	ev.preventDefault();
+ 	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
+-	canvas.zoomFactor = clamp(canvas.zoomFactor - delta * canvas.zoomFactor, canvas.zoomBounds[1], canvas.zoomBounds[0]);
++	canvas.zoomFactor = clamp(canvas.zoomFactor + delta / canvas.zoomFactor, canvas.zoomBounds[0], canvas.zoomBounds[1]);
++	
+ 	if (displaylog) console.log(canvas.zoomFactor);
+ } //}}}
+ //}}}
+@@ -378,7 +377,7 @@
+ 	var elevationRotationMatrix = mat4.create();
+ 
+ 	if (canvas.twod) {
+-		mat4.ortho(pMatrix, 1*canvas.zoomFactor, -1*canvas.zoomFactor, 1*canvas.zoomFactor, -1*canvas.zoomFactor, -1, 1.0);
++		mat4.ortho(pMatrix, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1/canvas.zoomFactor, 1/canvas.zoomFactor, -1.0, 10000.0);
+ 	}
+ 	else {
+ 		mat4.perspective(pMatrix, 90 * Math.PI / 180, canvas.clientWidth / canvas.clientHeight, 0.001, 10000.0);
+@@ -398,7 +397,7 @@
+ 	
+ 	//Apply screenspace translation
+ 	mat4.identity(translateMatrix);
+-	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, canvas.zoomFactor]);
++	mat4.translate(translateMatrix, translateMatrix, [0.0, 0.0, -1/canvas.zoomFactor]);
+ 	mat4.multiply(vMatrix, translateMatrix, vMatrix);
+ 
+ 	//Apply projection matrix to get camera matrix
+@@ -416,12 +415,7 @@
+ 	}
+ 	bindAttributes(gl, node["shader"], node["buffers"]);
+ 	var mvpMatrix = mat4.create();
+-	if (node["useOrthographic"] == true) {
+-		mat4.ortho(mvpMatrix, -1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
+-	}
+-	else {
+-		mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]);
+-	}
++	mat4.multiply(mvpMatrix, canvas.cameraMatrix, node["modelMatrix"]);
+ 	gl.uniformMatrix4fv(node["shader"]["uMVPMatrix"], false, mvpMatrix);
+ 	gl.uniform1f(node["shader"]["uAlpha"], node["alpha"]);
+ 	gl.uniform1i(node["shader"]["uMaskEnabled"], node["maskEnabled"]);
+@@ -432,12 +426,6 @@
+ 		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
+ 		gl.uniform1i(node["shader"]["uColorSampler"], 0);	
+ 	}
+-	//if (node["overlay"] == true) {
+-	//	gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+-	//}
+-	//else {
+-	//	gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+-	//}
+ 	gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+ 	if  (node["useIndexBuffer"] == true) {
+ 		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19946-19947.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19946-19947.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19946-19947.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/classes/inversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.m	(revision 19946)
++++ ../trunk-jpl/src/m/classes/inversion.m	(revision 19947)
+@@ -239,5 +239,23 @@
+ 			WriteData(fid,'data',data,'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3);
+ 			WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer');
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.inversion.iscontrol'],self.iscontrol);
++			writejsdouble(fid,[modelname '.inversion.incomplete_adjoint'],self.incomplete_adjoint);
++			writejscellstring(fid,[modelname '.inversion.control_parameters'],self.control_parameters);
++			writejsdouble(fid,[modelname '.inversion.nsteps'],self.nsteps);
++			writejs1Darray(fid,[modelname '.inversion.maxiter_per_step'],self.maxiter_per_step);
++			writejs2Darray(fid,[modelname '.inversion.cost_functions'],self.cost_functions);
++			writejs2Darray(fid,[modelname '.inversion.cost_functions_coefficients'],self.cost_functions_coefficients);
++			writejs1Darray(fid,[modelname '.inversion.min_parameters'],self.min_parameters);
++			writejs1Darray(fid,[modelname '.inversion.max_parameters'],self.max_parameters);
++			writejs1Darray(fid,[modelname '.inversion.vx_obs'],self.vx_obs);
++			writejs1Darray(fid,[modelname '.inversion.vy_obs'],self.vy_obs);
++			writejs1Darray(fid,[modelname '.inversion.vz_obs'],self.vz_obs);
++			writejs1Darray(fid,[modelname '.inversion.vel_obs'],self.vel_obs);
++			writejs1Darray(fid,[modelname '.inversion.thickness_obs'],self.thickness_obs);
++			writejs1Darray(fid,[modelname '.inversion.surface_obs'],self.surface_obs);
++		end % }}}
+ 	end
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19947-19948.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19947-19948.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19947-19948.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/classes/miscellaneous.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19947)
++++ ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19948)
+@@ -52,7 +52,9 @@
+ 		
+ 			writejsstring(fid,[modelname '.miscellaneous.notes'],self.notes);
+ 			writejsstring(fid,[modelname '.miscellaneous.name'],self.name);
+-			%do not save dummy data.
++			if class(self.dummy)=='double',
++				writejs1Darray(fid,[modelname '.miscellaneous.dummy'],self.dummy);
++			end
+ 
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19948-19949.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19948-19949.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19948-19949.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/src/m/mesh/triangle.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/triangle.m	(revision 19948)
++++ ../trunk-jpl/src/m/mesh/triangle.m	(revision 19949)
+@@ -40,21 +40,24 @@
+ [elements,x,y,segments,segmentmarkers]=TriMesh(domainname,riftname,area);
+ 
+ %check that all the created nodes belong to at least one element
+-orphan=find(~ismember([1:length(x)],sort(unique(elements(:)))));
+-for i=1:length(orphan),
+-	disp('WARNING: removing orphans');
+-	%get rid of the orphan node i
+-	%update x and y
+-	x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)];
+-	y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)];
+-	%update elements
+-	pos=find(elements>orphan(i)-(i-1));
+-	elements(pos)=elements(pos)-1;
+-	%update segments
+-	pos1=find(segments(:,1)>orphan(i)-(i-1));
+-	pos2=find(segments(:,2)>orphan(i)-(i-1));
+-	segments(pos1,1)=segments(pos1,1)-1;
+-	segments(pos2,2)=segments(pos2,2)-1;
++removeorphans=1;
++if removeorphans,
++	orphan=find(~ismember([1:length(x)],sort(unique(elements(:)))));
++	for i=1:length(orphan),
++		disp('WARNING: removing orphans');
++		%get rid of the orphan node i
++		%update x and y
++		x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)];
++		y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)];
++		%update elements
++		pos=find(elements>orphan(i)-(i-1));
++		elements(pos)=elements(pos)-1;
++		%update segments
++		pos1=find(segments(:,1)>orphan(i)-(i-1));
++		pos2=find(segments(:,2)>orphan(i)-(i-1));
++		segments(pos1,1)=segments(pos1,1)-1;
++		segments(pos2,2)=segments(pos2,2)-1;
++	end
+ end
+ 
+ %plug into md
Index: /issm/oecreview/Archive/19101-20495/ISSM-19949-19950.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19949-19950.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19949-19950.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m	(revision 19949)
++++ ../trunk-jpl/src/m/miscellaneous/converttopowerof2.m	(revision 19950)
+@@ -18,10 +18,14 @@
+ 	%Now, figure out the highest multiple of 2 for both width and length:
+ 	width=2^nextpow2(width); length=2^nextpow2(length);
+ 
++	%make sure the width and length are < 2000: 
++	if width>2^11, width=2^11; end
++	if length>2^11, length=2^11; end
++
+ 	%convert image to that size: 
+ 	setenv('DYLD_LIBRARY_PATH','/opt/local/lib:/usr/lib');
+ 	
+-	[status,result]=system(sprintf('convert %s -resize %ix%i %s',tiffname,width,length,pngname));
++	[status,result]=system(sprintf('convert %s -resize %ix%i! %s',tiffname,width,length,pngname));
+ 	system(sprintf('rm -rf %s',tiffname));
+ 
+ 	%reset DYLD_LIBRARY_PATH to what it was:
Index: /issm/oecreview/Archive/19101-20495/ISSM-19950-19951.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19950-19951.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19950-19951.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/miscellaneous.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19950)
++++ ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19951)
+@@ -52,7 +52,7 @@
+ 		
+ 			writejsstring(fid,[modelname '.miscellaneous.notes'],self.notes);
+ 			writejsstring(fid,[modelname '.miscellaneous.name'],self.name);
+-			if class(self.dummy)=='double',
++			if strcmpi(class(self.dummy),'double'),
+ 				writejs1Darray(fid,[modelname '.miscellaneous.dummy'],self.dummy);
+ 			end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19951-19952.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19951-19952.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19951-19952.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19951)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19952)
+@@ -19,8 +19,8 @@
+ 	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+ 	--with-blas-lapack-dir="$TACC_MKL_LIB" \
+-	--with-mpi-lib="/opt/apps/intel11_1/mvapich2/1.6/lib/libmpich.so" \
+-	--with-mpi-include="/opt/apps/intel11_1/mvapich2/1.6/include/" \
++	--with-mpi-lib="/opt/cray/mpt/default/gni/mpich-cray64/8.3/lib/libmpich.so" \
++	--with-mpi-include="/opt/cray/mpt/default/gni/mpich-cray64/8.3/include" \
+ 	--known-mpi-shared-libraries=1 \
+ 	--with-debugging=0 \
+ 	--with-valgrind=0 \
+@@ -36,17 +36,13 @@
+ #prepare script to reconfigure petsc
+ cat > script.queue << EOF
+ #!/bin/bash		 
+-#$ -V #Inherit the submission environment
+-#$ -cwd # Start job in submission directory
+-#$ -N petscinstall # Job Name
+-#$ -j y # Combine stderr and stdout
+-#$ -pe 12way 12 # Requests 12 tasks/node, 12 cores total
+-#$ -q normal # Queue name normal
+-#$ -l h_rt=00:01:00 # Run time (hh:mm:ss) - 1.5 hours
++#SBATCH -J petscinstall # Job Name
++#SBATCH -n 12 # Requests 12 tasks/node, 12 cores total
++#SBATCH -N 1 # Requests 12 tasks/node, 12 cores total
++#SBATCH -p normal # Queue name normal
++#SBATCH -t 00:01:00 # Run time (hh:mm:ss) - 1.5 hours
+ set -x # Echo commands, use set echo with csh
+ 
+-module load mkl/10.3
+-
+ mpiexec -np 1 ./conftest-arch-linux2-c-opt
+ EOF
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19952-19953.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19952-19953.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19952-19953.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19952)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19953)
+@@ -43,7 +43,7 @@
+ #SBATCH -t 00:01:00 # Run time (hh:mm:ss) - 1.5 hours
+ set -x # Echo commands, use set echo with csh
+ 
+-mpiexec -np 1 ./conftest-arch-linux2-c-opt
++ibrun -np 1 ./conftest-arch-linux2-c-opt
+ EOF
+ 
+ #print instructions
Index: /issm/oecreview/Archive/19101-20495/ISSM-19953-19954.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19953-19954.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19953-19954.diff	(revision 20498)
@@ -0,0 +1,249 @@
+Index: ../trunk-jpl/src/m/mesh/augment2dmesh.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/augment2dmesh.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/augment2dmesh.m	(revision 19954)
+@@ -0,0 +1,75 @@
++function mh=augment2dmesh(mh,mhband,varargin)
++%AUGMENT2DMESH - augment mh mesh with a band around it (provided by mhband)
++%
++%   Usage:
++%      mh=augment2dmesh(mh,mhband);
++%
++%   Example: 
++%      md.mesh=augment2dmesh(md.mesh,md2.mesh);
++%
++
++%First process options
++options=pairoptions(varargin{:});
++
++%Offset the mesh2 elements: 
++mhband.elements=mhband.elements+mh.numberofvertices;
++mhband.segments(:,1:2)=mhband.segments(:,1:2)+mh.numberofvertices;
++mhband.segments(:,3)=mhband.segments(:,3)+mh.numberofelements;
++
++%The innner segment of md2 and the outer segments of md1 are identical. Go into  the elements of 
++%md2 and set them to their md1 equivalent: 
++flag=0;
++if flag,
++	for i=1:length(mhband.segments),
++		node2=mhband.segments(i,1);
++		%this node2 has an equivalent on the segments  of md1: 
++		for j=1:length(mh.segments),
++			node1=mh.segments(j,1);
++			if mhband.x(node2-mh.numberofvertices) == mh.x(node1) &&  mhband.y(node2-mh.numberofvertices) == mh.y(node1),
++				%go into the mesh of md2, and replace by node1.
++				pos=find(mhband.elements==node2); mhband.elements(pos)=node1;
++				segs=mhband.segments(:,1:2); pos=find(segs==node2); segs(pos)=node1; mhband.segments(:,1:2)=segs;
++				break;
++			end
++		end
++	end
++end	
++
++%Do the merge: 
++mh.elements=[mh.elements;mhband.elements];
++mh.x=[mh.x;mhband.x];
++mh.y=[mh.y;mhband.y];
++mh.lat=[mh.lat;mhband.lat];
++mh.long=[mh.long;mhband.long];
++mh.segments=[mh.segments;mhband.segments];
++
++%Remove orphans:
++x=mh.x; y=mh.y; lat=mh.lat; long=mh.long; 
++elements=mh.elements; segments=mh.segments;
++orphan=find(~ismember([1:length(x)],sort(unique(elements(:)))));
++for i=1:length(orphan),
++	%disp('WARNING: removing orphans');
++	%get rid of the orphan node i
++	%update x and y
++	x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)];
++	y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)];
++	lat=[lat(1:orphan(i)-(i-1)-1); lat(orphan(i)-(i-1)+1:end)];
++	long=[long(1:orphan(i)-(i-1)-1); long(orphan(i)-(i-1)+1:end)];
++	%update elements
++	pos=find(elements>orphan(i)-(i-1));
++	elements(pos)=elements(pos)-1;
++	%update segments
++	pos1=find(segments(:,1)>orphan(i)-(i-1));
++	pos2=find(segments(:,2)>orphan(i)-(i-1));
++	segments(pos1,1)=segments(pos1,1)-1;
++	segments(pos2,2)=segments(pos2,2)-1;
++end
++
++mh.elements=elements;
++mh.x=x;
++mh.y=y;
++mh.lat=lat;
++mh.long=long;
++mh.segments=segments;
++mh.numberofelements=length(mh.elements);
++mh.numberofvertices=length(mh.x);
+Index: ../trunk-jpl/src/m/mesh/mesh3dsurfaceplug2d.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/mesh3dsurfaceplug2d.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/mesh3dsurfaceplug2d.m	(revision 19954)
+@@ -0,0 +1,77 @@
++function mh=mh3dsurfaceplug2d(mh,mh2,flags,segments,xsegs,ysegs,varargin)
++%MESH3DSURFACEPLUG2D - plug 2d mesh into a 3D surface mesh
++%
++%   Usage:
++%      mh=mesh3dsurfaceplug2d(mh,mh2);
++%
++
++	%First process options
++	options=pairoptions(varargin{:});
++
++	%Remove the elements that are flagged: 
++	pos=find(flags); 
++	mh.elements(pos,:)=[];
++	mh.numberofelements=size(mh.elements,1);
++
++	%Offset mh2.elements by number of vertices in the 3D structure: 
++	mh2.elements=mh2.elements+mh.numberofvertices;
++	mh2.segments(:,1:2)=mh2.segments(:,1:2)+mh.numberofvertices;
++	mh2.segments(:,3)=mh2.segments(:,3)+mh.numberofelements;
++
++	%The segments of md2 and the outer segments of md are identical. Go into  the elements of 
++	%dmd2 and set them to their md equivalent: 
++	for i=1:length(mh2.segments),
++		node2=mh2.segments(i,1);
++		%this node2 has an equivalent on the segments  of md: 
++		for j=1:length(segments),
++			node1=segments(j,1);
++			if mh2.x(node2-mh.numberofvertices) == xsegs(j) &&  mh2.y(node2-mh.numberofvertices) == ysegs(j),
++				%go into the mesh of md2, and replace by node1.
++				pos=find(mh2.elements==node2); mh2.elements(pos)=node1;
++				segs=mh2.segments(:,1:2); pos=find(segs==node2); segs(pos)=node1; mh2.segments(:,1:2)=segs;
++				break;
++			end
++		end
++	end
++
++	%Do the merge: 
++	mh.elements=[mh.elements;mh2.elements];
++	mh.lat=[mh.lat;mh2.lat];
++	mh.long=[mh.long;mh2.long];
++	mh.segments=[mh.segments;mh2.segments];
++	mh.numberofvertices=length(mh.lat);
++	mh.numberofelements=size(mh.elements,1);
++	
++	%Remove orphans:
++	lat=mh.lat; long=mh.long; 
++	elements=mh.elements; segments=mh.segments;
++	orphan=find(~ismember([1:length(lat)],sort(unique(elements(:)))));
++	for i=1:length(orphan),
++		%disp('WARNING: removing orphans');
++		%get rid of the orphan node i
++		%update lat and long
++		lat=[lat(1:orphan(i)-(i-1)-1); lat(orphan(i)-(i-1)+1:end)];
++		long=[long(1:orphan(i)-(i-1)-1); long(orphan(i)-(i-1)+1:end)];
++		%update elements
++		pos=find(elements>orphan(i)-(i-1));
++		elements(pos)=elements(pos)-1;
++		%update segments
++		pos1=find(segments(:,1)>orphan(i)-(i-1));
++		pos2=find(segments(:,2)>orphan(i)-(i-1));
++		segments(pos1,1)=segments(pos1,1)-1;
++		segments(pos2,2)=segments(pos2,2)-1;
++	end
++	
++	mh.elements=elements;
++	mh.lat=lat;
++	mh.long=long;
++	mh.segments=segments;
++	mh.numberofelements=length(mh.elements);
++	mh.numberofvertices=length(mh.lat);
++
++	%reconstruct x,y and z:
++	R=mh.r(1);
++	mh.x = R .* cosd(mh.lat) .* cosd(mh.long);
++	mh.y = R .* cosd(mh.lat) .* sind(mh.long);
++	mh.z = R .* sind(mh.lat);
++	mh.r=sqrt(mh.x.^2+mh.y.^2+mh.z.^2);
+Index: ../trunk-jpl/src/m/mesh/patchglobe.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/patchglobe.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/patchglobe.m	(revision 19954)
+@@ -0,0 +1,82 @@
++function mh=patchglobe(mh,mh2d,varargin)
++
++	%process options: 
++	options=pairoptions(varargin{:});
++
++	%recover basic options:
++	hem=getfieldvalue(options,'hem');
++	bandwidth=getfieldvalue(options,'bandwidth',100000);
++
++	%give ourselves a unique temporary directory: 
++	temproot=tempname; mkdir(temproot);
++
++	%figure out domain outline: 
++	meshtodomain(mh2d,[temproot '/Patch.exp']);
++
++	%broaden this domain outline: 
++	expcoarsen([temproot '/PatchBroad.exp'],[temproot '/Patch.exp'],200000);
++	expcontract([temproot '/PatchBroad.exp'],[temproot '/PatchBroad.exp'],-bandwidth);
++
++	%now flag vertices that are within the contour:
++	[x,y]=ll2xy(mh.lat,mh.long,hem);
++	if hem==1,
++		flagsnods=ContourToNodes(x,y,[temproot '/PatchBroad.exp'],1) & mh.lat>=0;
++	else
++		flagsnods=ContourToNodes(x,y,[temproot '/PatchBroad.exp'],1) & mh.lat<=0;
++	end
++
++	%expand flags to any element that touches the contour: 
++	pos=find(sum(flagsnods(mh.elements),2));
++	flags=zeros(mh.numberofelements,1); flags(pos)=1;
++
++	%need to find the segment enveloppe of these elements:
++	mh.segments=contourenvelope(mh,flags);
++
++	%segments need to be ordered in line: 
++	mh.segments=alignsegments(mh.segments);
++
++	%x,y for segments: 
++	[xsegs,ysegs]=ll2xy(mh.lat(mh.segments(:,1)),mh.long(mh.segments(:,1)),hem);
++
++	%create contour out of these segments:
++	meshtodomain(mh,[temproot '/PatchEnveloppe.exp'],'latlong','on');
++	expll2xy([temproot '/PatchEnveloppe.exp'],hem);
++
++	%now, create domain outine from broad enveloppe and initial mesh 
++	env=expread([temproot '/PatchEnveloppe.exp']); 
++	dom=expread([temproot '/Patch.exp']);
++	
++	%close the contours:
++	env(1).x=[env(1).x;env(1).x(1)];
++	env(1).y=[env(1).y;env(1).y(1)];
++	dom(1).x=[dom(1).x;dom(1).x(1)];
++	dom(1).y=[dom(1).y;dom(1).y(1)];
++
++	%flip inner hole: 
++	dom(1).x=flipud(dom(1).x);
++	dom(1).y=flipud(dom(1).y);
++
++	domain(1)=env; 
++	domain(2)=dom;
++	expwrite(domain,[temproot '/PatchBand.exp']);
++
++	%mesh: 
++	mdb=bamg(model(),'domain',[temproot '/PatchBand.exp'],'MaxCornerAngle',1e-15,'gradation',10000); 
++	mhb=mdb.mesh; clear mdb;
++
++	%double check: 
++	if length(mhb.segments) ~= (length(dom(1).x)+length(env(1).x)-2),
++		%error('band mesh not consistent');
++	end
++
++	%augment patch with band
++	[mhb.lat,mhb.long]=xy2ll(mhb.x,mhb.y,hem);
++	mh2db=augment2dmesh(mh2d,mhb);
++
++	%merge inner band and earth: 
++	mh=mesh3dsurfaceplug2d(mh,mh2db,flags,mh.segments,xsegs,ysegs);
++
++	%erase temporary directory: 
++	system(['rm -rf ' temproot]);
++
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19954-19955.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19954-19955.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19954-19955.diff	(revision 20498)
@@ -0,0 +1,146 @@
+Index: ../trunk-jpl/src/m/exp/meshtodomain.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/meshtodomain.m	(revision 0)
++++ ../trunk-jpl/src/m/exp/meshtodomain.m	(revision 19955)
+@@ -0,0 +1,39 @@
++function meshtodomain(mh,domainname,varargin)
++%MESHTODOMAIN - recover a domain outline  from a model's mesh's segments
++%
++%   Usage:
++%      meshtodomain(mh,domainname,varargin)
++%
++%   Example:
++%      meshtodomain(md.mesh,'domainoutline.exp','latlong','on');
++%
++%   See also EXPREAD
++
++	%handle options: 
++	options=pairoptions(varargin{:});
++
++	segments=mh.segments; nt=length(segments);
++
++	%build domain contour: 
++	x=[];  y=[]; 
++
++	if strcmpi(getfieldvalue(options,'latlong','off'),'on'),
++		if isnan(mh.lat) | isnan(mh.long), error('meshtodomain error message: requested domain be output in lat,long referential, but mesh does not contain this information!'); end
++		for i=1:nt,
++		   x=[x;mh.long(segments(i,1))];
++		   y=[y;mh.lat(segments(i,1))];
++		end
++	else
++		for i=1:nt,
++		   x=[x;mh.x(segments(i,1))];
++		   y=[y;mh.y(segments(i,1))];
++		end
++	end
++
++	domain.x=x; 
++	domain.y=y; 
++	domain.density=1; 
++	domain.name=domainname;
++
++	expwrite(domain,domainname);
++end
+Index: ../trunk-jpl/src/m/miscellaneous/alignsegments.m
+===================================================================
+--- ../trunk-jpl/src/m/miscellaneous/alignsegments.m	(revision 0)
++++ ../trunk-jpl/src/m/miscellaneous/alignsegments.m	(revision 19955)
+@@ -0,0 +1,19 @@
++function newsegments=alignsegments(segments)
++%ALIGNSEGMENTS: 
++% 
++%
++
++	nt=length(segments);
++	newsegments=zeros(nt,3);
++	newsegments(1,:)=segments(1,:);
++
++	for  i=2:nt, 
++		last=newsegments(i-1,2); %last vertex of the previous segment: 
++		for j=1:nt,
++			if last==segments(j,1),
++				%we found the next segment: 
++				newsegments(i,:)=segments(j,:);
++				break;
++			end
++		end
++	end
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19954)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19955)
+@@ -302,7 +302,7 @@
+ 			md.mesh=mesh;
+ 			md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
+ 			md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
+-			md.mesh.segments=contourenvelope(md);
++			md.mesh.segments=contourenvelope(md.mesh);
+ 
+ 		end % }}}
+ 		function md2 = extract(md,area) % {{{
+Index: ../trunk-jpl/src/m/parameterization/contourenvelope.m
+===================================================================
+--- ../trunk-jpl/src/m/parameterization/contourenvelope.m	(revision 19954)
++++ ../trunk-jpl/src/m/parameterization/contourenvelope.m	(revision 19955)
+@@ -1,12 +1,12 @@
+-function segments=contourenvelope(md,varargin)
++function segments=contourenvelope(mh,varargin)
+ %CONTOURENVELOPE - build a set of segments enveloping a contour .exp
+ %
+ %   Usage:
+-%      segments=contourenvelope(md,varargin)
++%      segments=contourenvelope(mh,varargin)
+ %
+ %   Example:
+-%      segments=contourenvelope(md,'Stream.exp');
+-%      segments=contourenvelope(md);
++%      segments=contourenvelope(mh,'Stream.exp');
++%      segments=contourenvelope(mh);
+ 
+ %some checks
+ if nargin>2,
+@@ -32,27 +32,27 @@
+ 
+ %Now, build the connectivity tables for this mesh.
+ %Computing connectivity
+-if (size(md.mesh.vertexconnectivity,1)~=md.mesh.numberofvertices & size(md.mesh.vertexconnectivity,1)~=md.mesh.numberofvertices2d),
+-	md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++if isnan(mh.vertexconnectivity),
++	mh.vertexconnectivity=NodeConnectivity(mh.elements,mh.numberofvertices);
+ end
+-if (size(md.mesh.elementconnectivity,1)~=md.mesh.numberofelements & size(md.mesh.elementconnectivity,1)~=md.mesh.numberofelements2d),
+-	md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++if isnan(mh.elementconnectivity),
++	mh.elementconnectivity=ElementConnectivity(mh.elements,mh.vertexconnectivity);
+ end
+ 
+ %get nodes inside profile
+-mesh.elementconnectivity=md.mesh.elementconnectivity;
+-if dimension(md.mesh)==2,
+-	mesh.elements=md.mesh.elements;
+-	mesh.x=md.mesh.x;
+-	mesh.y=md.mesh.y;
+-	mesh.numberofvertices=md.mesh.numberofvertices;
+-	mesh.numberofelements=md.mesh.numberofelements;
++mesh.elementconnectivity=mh.elementconnectivity;
++if dimension(mh)==2,
++	mesh.elements=mh.elements;
++	mesh.x=mh.x;
++	mesh.y=mh.y;
++	mesh.numberofvertices=mh.numberofvertices;
++	mesh.numberofelements=mh.numberofelements;
+ else
+-	mesh.elements=md.mesh.elements2d;
+-	mesh.x=md.mesh.x2d;
+-	mesh.y=md.mesh.y2d;
+-	mesh.numberofvertices=md.mesh.numberofvertices2d;
+-	mesh.numberofelements=md.mesh.numberofelements2d;
++	mesh.elements=mh.elements2d;
++	mesh.x=mh.x2d;
++	mesh.y=mh.y2d;
++	mesh.numberofvertices=mh.numberofvertices2d;
++	mesh.numberofelements=mh.numberofelements2d;
+ end
+ 
+ if nargin==2,
Index: /issm/oecreview/Archive/19101-20495/ISSM-19955-19956.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19955-19956.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19955-19956.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19955)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19956)
+@@ -110,15 +110,14 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 
+ 			 fprintf(fid,'#!/bin/bash\n');
+-			 fprintf(fid,'#$ -V #Inherit the submission environment \n');
+-			 fprintf(fid,'#$ -cwd ## Start job in submission directory \n');
+-			 fprintf(fid,'#$ -N %s\n',modelname);
+-			 fprintf(fid,'#$ -q %s \n',cluster.queue);
+-			 fprintf(fid,'#$ -R y\n');
+-			 fprintf(fid,'#$ -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#$ -e %s.errlog \n',modelname);
+-			 fprintf(fid,'#$ -pe 12way %i \n',cluster.numnodes*12);
+-			 fprintf(fid,'#$ -l h_rt=%02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
++			 fprintf(fid,'#SBATCH -J %s\n',modelname);
++			 fprintf(fid,'#SBATCH -p %s \n',cluster.queue);
++			 fprintf(fid,'#SBATCH -R y\n');
++			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
++			 fprintf(fid,'#SBATCH -e %s.errlog \n',modelname);
++			 fprintf(fid,'#SBATCH -n %i \n',cluster.numnodes*12);
++			 fprintf(fid,'#SBATCH -N %i \n',cluster.numnodes);
++			 fprintf(fid,'#SBATCH -t %02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
+ 			 for i=1:numel(cluster.modules),
+ 				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
+ 			 end
+@@ -126,7 +125,7 @@
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
+-			 fprintf(fid,'mpiexec -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 fprintf(fid,'ibrun -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 			 end
+@@ -135,7 +134,7 @@
+ 			 %in interactive mode, create a run file, and errlog and outlog file
+ 			 if cluster.interactive,
+ 				 fid=fopen([modelname '.run'],'w');
+-				 fprintf(fid,'mpiexec -np %i %s/%s %s %s %s\n',cluster.np,executable,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++				 fprintf(fid,'ibrun -np %i %s/%s %s %s %s\n',cluster.np,executable,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 				 if ~io_gather, %concatenate the output files:
+ 					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 				 end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19956-19957.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19956-19957.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19956-19957.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/src/m/mesh/rifts/meshaddrifts.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/rifts/meshaddrifts.m	(revision 19956)
++++ ../trunk-jpl/src/m/mesh/rifts/meshaddrifts.m	(revision 19957)
+@@ -33,7 +33,7 @@
+ 	md2=modelextract(md,'Meshaddrifts.Contour.exp');
+ 
+ 	%create domain of md2 model: 
+-	md2.mesh.segments=contourenvelope(md2,'Meshaddrifts.Contour.exp');
++	md2.mesh.segments=contourenvelope(md2.mesh,'Meshaddrifts.Contour.exp');
+ 	domain_index=md2.mesh.segments(1,1:2);
+ 	while (domain_index(end)~=domain_index(1)),
+ 		pos=find(md2.mesh.segments(:,1)==domain_index(end));
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19956)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19957)
+@@ -510,13 +510,13 @@
+ 			if isa(md1.mesh,'mesh2d'),
+ 				md2.mesh.vertexconnectivity=NodeConnectivity(md2.mesh.elements,md2.mesh.numberofvertices);
+ 				md2.mesh.elementconnectivity=ElementConnectivity(md2.mesh.elements,md2.mesh.vertexconnectivity);
+-				md2.mesh.segments=contourenvelope(md2);
++				md2.mesh.segments=contourenvelope(md2.mesh);
+ 				md2.mesh.vertexonboundary=zeros(numberofvertices2,1); md2.mesh.vertexonboundary(md2.mesh.segments(:,1:2))=1;
+ 			else
+ 				%First do the connectivity for the contourenvelope in 2d
+ 				md2.mesh.vertexconnectivity=NodeConnectivity(md2.mesh.elements2d,md2.mesh.numberofvertices2d);
+ 				md2.mesh.elementconnectivity=ElementConnectivity(md2.mesh.elements2d,md2.mesh.vertexconnectivity);
+-				segments=contourenvelope(md2);
++				segments=contourenvelope(md2.mesh);
+ 				md2.mesh.vertexonboundary=zeros(numberofvertices2/md2.mesh.numberoflayers,1); md2.mesh.vertexonboundary(segments(:,1:2))=1;
+ 				md2.mesh.vertexonboundary=repmat(md2.mesh.vertexonboundary,md2.mesh.numberoflayers,1);
+ 				%Then do it for 3d as usual
+Index: ../trunk-jpl/src/m/contrib/massbalance/contourmassbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/massbalance/contourmassbalance.m	(revision 19956)
++++ ../trunk-jpl/src/m/contrib/massbalance/contourmassbalance.m	(revision 19957)
+@@ -17,7 +17,7 @@
+ end
+ 
+ %Get segments enveloping contour
+-segments=contourenvelope(md,file);
++segments=contourenvelope(md.mesh,file);
+ %md.stressbalance.icefront=segments; plotmodel(md,'data','pressureload','expdisp',file);
+ 
+ %get flag list of elements and nodes inside the contour
Index: /issm/oecreview/Archive/19101-20495/ISSM-19957-19958.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19957-19958.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19957-19958.diff	(revision 20498)
@@ -0,0 +1,1257 @@
+Index: ../trunk-jpl/src/m/classes/initialization.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/initialization.m	(revision 19958)
+@@ -18,23 +18,6 @@
+ 		watercolumn   = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- initialization -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Initial field values">','<section name="initialization" />');                    
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vx" type="',class(self.vx),'" default="',self.vx,'">','     <section name="initialization" />','     <help> x component of velocity [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vy" type="',class(self.vy),'" default="',self.vy,'">','     <section name="initialization" />','     <help> y component of velocity [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vz" type="',class(self.vz),'" default="',self.vz,'">','     <section name="initialization" />','     <help> z component of velocity [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="vel" type="',class(self.vel),'" default="',self.vel,'">','     <section name="initialization" />','     <help> velocity norm [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="pressure" type="',class(self.pressure),'" default="',self.pressure,'">','     <section name="initialization" />','     <help> pressure field [Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="temperature" type="',class(self.temperature),'" default="',self.temperature,'">','     <section name="initialization" />','     <help> fraction of water in the ice </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="waterfraction" type="',class(self.waterfraction),'" default="',self.waterfraction,'">','     <section name="initialization" />','     <help> ice thickness [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="sediment_head" type="',class(self.sediment_head),'" default="',self.sediment_head,'">','     <section name="initialization" />','     <help> sediment water head of subglacial system [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="epl_head" type="',class(self.epl_head),'" default="',self.epl_head,'">','     <section name="initialization" />','     <help> epl water head of subglacial system [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="watercolumn" type="',class(self.watercolumn),'" default="',self.watercolumn,'">','     <section name="initialization" />','     <help> thickness of subglacial water [m] </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.vx=project3d(md,'vector',self.vx,'type','node');
+ 			self.vy=project3d(md,'vector',self.vy,'type','node');
+Index: ../trunk-jpl/src/m/classes/debug.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/debug.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/debug.m	(revision 19958)
+@@ -10,18 +10,6 @@
+ 		profiling = false;
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- Debug -->');
+-            
+-            %valgrind drop-down (0 or 1)
+-			fprintf(fid,'%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="valgrind" type="alternative" optional="false">','     <section name="debug" />','     <help> use Valgrind to debug (0 or 1) </help>');
+-            fprintf(fid,'%s\n','       <option value="0" type="string" default="true"> </option>');
+-            fprintf(fid,'%s\n%s\n','       <option value="1" type="string" default="false"> </option>','</parameter>');
+-          
+-            fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="gprof" type="',              class(self.gprof),'" optional="false">',              '     <section name="debug" />','        <option value="',convert2str(self.gprof),'" type="string" default="true"></option>','     <help> use gnu-profiler to find out where the time is spent </help>','</parameter>');
+-            fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n',    '<parameter key ="profiling" type="',              class(self.profiling),'" optional="false">',              '     <section name="debug" />','        <option value="',convert2str(self.profiling),'" type="string" default="true"></option>','     <help> enables profiling (memory, flops, time) </help>','</parameter>');
+-        end % }}}
+ 		function self = debug(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/thermal.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/thermal.m	(revision 19958)
+@@ -17,30 +17,6 @@
+ 		requested_outputs = {};
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- thermal -->\n');            
+-
+-			% thermal solution parameters
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Thermal solution parameters">','<section name="thermal" />');                    
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="spctemperature" type="',class(self.spctemperature),'" default="',convert2str(self.spctemperature),'">','     <section name="thermal" />','     <help> temperature constraints (NaN means no constraint) [K] </help>','  </parameter>');
+-
+-			% penalty_threshold drop-down (0, 1, or 2)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n','  <parameter key ="penalty_threshold" type="alternative"  optional="false">','     <section name="thermal" />','     <help> 0: no, 1: artificial_diffusivity, 2: SUPG </help>');
+-			fprintf(fid,'%s\n','       <option value="0" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="1" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="2" type="string" default="false"> </option>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="stabilization" type="',class(self.stabilization),'" default="',convert2str(self.stabilization),'">','     <section name="thermal" />','     <help> maximum number of non linear iterations </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="reltol" type="',class(self.reltol),'" default="',convert2str(self.reltol),'">','     <section name="steadystate" />','     <help> relative tolerance criterion [K] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="maxiter" type="',class(self.maxiter),'" default="',convert2str(self.maxiter),'">','     <section name="thermal" />','     <help> stabilize unstable thermal constraints that keep zigzagging after n iteration (default is 0, no stabilization) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="penalty_lock" type="',class(self.penalty_lock),'" default="',convert2str(self.penalty_lock),'">','     <section name="thermal" />','     <help> threshold to declare convergence of thermal solution (default is 0)  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="penalty_factor" type="',class(self.penalty_factor),'" default="',convert2str(self.penalty_factor),'">','     <section name="thermal" />','     <help> scaling exponent (default is 3) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isenthalpy" type="',class(self.isenthalpy),'" default="',convert2str(self.isenthalpy),'">','     <section name="thermal" />','     <help> use an enthalpy formulation to include temperate ice (default is 0) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isdynamicbasalspc" type="',class(self.isdynamicbasalspc),'" default="',convert2str(self.isdynamicbasalspc),'">','     <section name="thermal" />','     <help> enable dynamic setting of basal forcing. recommended for enthalpy formulation (default is 0)  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="requested_outputs" type="',class(self.requested_outputs),'" default="',convert2str(self.requested_outputs),'">','     <section name="thermal" />','     <help> additional outputs requested </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');    
+-
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.spctemperature=project3d(md,'vector',self.spctemperature,'type','node','layer',md.mesh.numberoflayers,'padding',NaN);
+ 			if (length(md.initialization.temperature)==md.mesh.numberofvertices),
+Index: ../trunk-jpl/src/m/classes/frictioncoulomb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/frictioncoulomb.m	(revision 19958)
+@@ -11,15 +11,6 @@
+ 		coefficientcoulomb = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p">','<section name="frictioncoulomb" />');   
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="coefficient" type="',   	class(self.coefficient),'" default="',     	convert2str(self.coefficient),'">',              '     <section name="frictioncoulomb" />','     <help> friction coefficient [SI] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="p" type="',               class(self.p),'" default="',                 convert2str(self.p),'">',   '     <section name="frictioncoulomb" />','     <help> p exponent </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="q" type="',               class(self.q),'" default="',                 convert2str(self.q),'">',            '     <section name="frictioncoulomb" />','     <help> q exponent </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
+ 			self.coefficientcoulomb=project3d(md,'vector',self.coefficientcoulomb,'type','node','layer',1);
+Index: ../trunk-jpl/src/m/classes/miscellaneous.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/miscellaneous.m	(revision 19958)
+@@ -10,17 +10,6 @@
+ 		dummy = struct();
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- miscellaneous -->\n');            
+-                    
+-            % miscellaneous solution parameters
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="miscellaneous parameters">','<section name="miscellaneous" />');                    
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="notes" type="',class(self.notes),'" default="',convert2str(self.notes),'">','     <section name="miscellaneous" />','     <help> notes in a cell of strings </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="name" type="',class(self.name),'" default="',convert2str(self.name),'">','     <section name="miscellaneous" />','     <help> model name </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="dummy" type="',class(self.dummy),'" default="',convert2str(self.dummy),'">','     <section name="miscellaneous" />','     <help> empty field to store some data </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');    
+-        
+-        end % }}}        
+ 		function self = miscellaneous(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/mesh3dtetras.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 19958)
+@@ -61,59 +61,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- 3D Tetra Mesh -->\n');
+-
+-			% Elements and verticies of the original 2d mesh
+-			fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(self.numberofelements2d),'" default="',convert2str(self.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(self.numberofvertices2d),'" default="',convert2str(self.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(self.elements2d),'" default="',convert2str(self.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(self.x2d),'" default="',convert2str(self.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(self.y2d),'" default="',convert2str(self.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','       </frame>');
+-
+-			% Elements and vertices of the extruded 3d mesh
+-			fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(self.numberofelements),'" default="',convert2str(self.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(self.numberofvertices),'" default="',convert2str(self.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(self.elements),'" default="',convert2str(self.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(self.x),'" default="',convert2str(self.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','       </frame>');
+-
+-			% properties
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(self.numberoflayers),'" default="',convert2str(self.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(self.vertexonbase),'" default="',convert2str(self.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(self.elementontbase),'" default="',convert2str(self.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(self.vertexonsurface),'" default="',convert2str(self.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(self.elementontsurface),'" default="',convert2str(self.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(self.uppervertex),'" default="',convert2str(self.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(self.upperelements),'" default="',convert2str(self.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(self.lowervertex),'" default="',convert2str(self.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(self.lowerelements),'" default="',convert2str(self.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(self.vertexonboundary),'" default="',convert2str(self.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(self.vertexconnectivity),'" default="',convert2str(self.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(self.elementconnectivity),'" default="',convert2str(self.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(self.average_vertex_connectivity),'" default="',convert2str(self.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% Extracted model
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(self.extractedvertices),'" default="',convert2str(self.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(self.extractedelements),'" default="',convert2str(self.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% Projection
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(self.lat),'" default="',convert2str(self.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(self.long),'" default="',convert2str(self.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(self.epsg),'" default="',convert2str(self.epsg),'">','     <section name="mesh3dprisms" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-		end % }}}cd
+ 		function self = mesh3dtetras(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/linearbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/linearbasalforcings.m	(revision 19958)
+@@ -12,13 +12,6 @@
+ 		geothermalflux            = NaN;
+ 	end
+ 	methods
+-     function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- basalforcings -->');
+-			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="melting_rate" type="',            class(self.melting_rate),'" default="',              num2str(self.melting_rate),'">',              '     <section name="basalforcings" />','     <help> basal melting rate (positive if melting) [m/yr] </help>','</parameter>');
+-             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="geothermalflux" type="',          class(self.geothermalflux),'" default="',            num2str(self.geothermalflux),'">',            '     <section name="basalforcings" />','     <help> geothermal heat flux [W/m^2] </help>','</parameter>');
+-             
+-        end % }}}
+ 		function self = linearbasalforcings(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/steadystate.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/steadystate.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/steadystate.m	(revision 19958)
+@@ -10,17 +10,6 @@
+ 		requested_outputs = {};
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- steadystate -->\n');            
+-                    
+-            % steadystate solution parameters
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="steadystate solution parameters">','<section name="steadystate" />');                    
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="reltol" type="',class(self.reltol),'" default="',convert2str(self.reltol),'">','     <section name="steadystate" />','     <help> relative tolerance criterion [K] </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="maxiter" type="',class(self.maxiter),'" default="',convert2str(self.maxiter),'">','     <section name="steadystate" />','     <help> maximum number of iterations </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="requested_outputs" type="',class(self.requested_outputs),'" default="',convert2str(self.requested_outputs),'">','     <section name="steadystate" />','     <help> additional requested outputs </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');    
+-        
+-        end % }}}
+ 		function self = steadystate(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/mismipbasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mismipbasalforcings.m	(revision 19958)
+@@ -12,13 +12,6 @@
+ 		geothermalflux            = NaN;
+ 	end
+ 	methods
+-     function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- basalforcings -->');
+-			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="melting_rate" type="',            class(self.melting_rate),'" default="',              num2str(self.melting_rate),'">',              '     <section name="basalforcings" />','     <help> basal melting rate (positive if melting) [m/yr] </help>','</parameter>');
+-             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="geothermalflux" type="',          class(self.geothermalflux),'" default="',            num2str(self.geothermalflux),'">',            '     <section name="basalforcings" />','     <help> geothermal heat flux [W/m^2] </help>','</parameter>');
+-             
+-        end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1); 
+ 			self.geothermalflux=project3d(md,'vector',self.geothermalflux,'type','node','layer',1); %bedrock only gets geothermal flux
+Index: ../trunk-jpl/src/m/classes/autodiff.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/autodiff.m	(revision 19958)
+@@ -19,26 +19,6 @@
+ 		end
+ 		%}}}
+ 	methods
+-     	function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- autodiff -->\n');            
+-                    
+-            % automatic differentiation parameters 
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="automatic differentiation parameters">','<section name="autodiff" />');                    
+-                fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n','  <parameter key ="isautodiff" type="',class(self.isautodiff),'" optional="false">','     <section name="autodiff" />','         <option value="',convert2str(self.isautodiff),'" type="string" default="true"></option>','     <help> indicates if the automatic differentiation is activated </help>','  </parameter>');
+-             
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="dependents" type="',class(self.dependents),'" default="',convert2str(self.dependents),'">','     <section name="autodiff" />','     <help> list of dependent variables </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="independents" type="',class(self.independents),'" default="',convert2str(self.independents),'">','     <section name="autodiff" />','     <help> list of independent variables </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="driver" type="',class(self.driver),'" default="',convert2str(self.driver),'">','     <section name="autodiff" />','     <help> ADOLC driver (''fos_forward'' or ''fov_forward'') </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="obufsize" type="',class(self.obufsize),'" default="',convert2str(self.obufsize),'">','     <section name="autodiff" />','     <help> Number of operations per buffer (==OBUFSIZE in usrparms.h)  </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lbufsize" type="',class(self.lbufsize),'" default="',convert2str(self.lbufsize),'">','     <section name="autodiff" />','     <help> Number of locations per buffer (==LBUFSIZE in usrparms.h) </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="cbufsize" type="',class(self.cbufsize),'" default="',convert2str(self.cbufsize),'">','     <section name="autodiff" />','     <help> Number of values per buffer (==CBUFSIZE in usrparms.h) </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="tbufsize" type="',class(self.tbufsize),'" default="',convert2str(self.tbufsize),'">','     <section name="autodiff" />','     <help> Number of taylors per buffer (&amp;lt;=TBUFSIZE in usrparms.h) </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="gcTriggerRatio" type="',class(self.gcTriggerRatio),'" default="',convert2str(self.gcTriggerRatio),'">','     <section name="autodiff" />','     <help> free location block sorting/consolidation triggered if the ratio between allocated and used locations exceeds gcTriggerRatio </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="gcTriggerRatio" type="',class(self.gcTriggerRatio),'" default="',convert2str(self.gcTriggerRatio),'">','     <section name="autodiff" />','     <help> free location block sorting/consolidation triggered if the allocated locations exceed gcTriggerMaxSize </help>','  </parameter>');
+-            
+-            fprintf(fid,'%s\n%s\n','</frame>');    
+-        
+-        end % }}}
+ 		function self = autodiff(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/matice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/matice.m	(revision 19958)
+@@ -29,47 +29,6 @@
+ 
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '<!-- materials -->\n');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_ice" type="',class(self.rho_ice),'" default="',convert2str(self.rho_ice),'">','     <section name="materials" />','     <help> ice density [kg/m^3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_water" type="',class(self.rho_water),'" default="',convert2str(self.rho_water),'">','     <section name="materials" />','     <help> ocean water density [kg/m^3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_freshwater" type="',class(self.rho_freshwater),'" default="',convert2str(self.rho_freshwater),'">','     <section name="materials" />','     <help> fresh water density [kg/m^3] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mu_water" type="',class(self.mu_water),'" default="',convert2str(self.mu_water),'">','     <section name="materials" />','     <help> water viscosity [N s/m^2] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="heatcapacity" type="',class(self.heatcapacity),'" default="',convert2str(self.heatcapacity),'">','     <section name="materials" />','     <help> heat capacity [J/kg/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="latentheat" type="',class(self.latentheat),'" default="',convert2str(self.latentheat),'">','     <section name="materials" />','     <help> latent heat of fusion [J/kg] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermalconductivity" type="',class(self.thermalconductivity),'" default="',convert2str(self.thermalconductivity),'">','     <section name="materials" />','     <help> ice thermal conductivity [W/m/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="temperateiceconductivity" type="',class(self.temperateiceconductivity),'" default="',convert2str(self.temperateiceconductivity),'">','     <section name="materials" />','     <help> temperate ice thermal conductivity [W/m/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="meltingpoint" type="',class(self.meltingpoint),'" default="',convert2str(self.meltingpoint),'">','     <section name="materials" />','     <help> melting point of ice at 1atm in K </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="beta" type="',class(self.beta),'" default="',convert2str(self.beta),'">','     <section name="materials" />','     <help> rate of change of melting point with pressure [K/Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mixed_layer_capacity" type="',class(self.mixed_layer_capacity),'" default="',convert2str(self.mixed_layer_capacity),'">','     <section name="materials" />','     <help> mixed layer capacity [W/kg/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermal_exchange_velocity" type="',class(self.thermal_exchange_velocity),'" default="',convert2str(self.thermal_exchange_velocity),'">','     <section name="materials" />','     <help> thermal exchange velocity [m/s] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_B" type="',class(self.rheology_B),'" default="',convert2str(self.rheology_B),'">','     <section name="materials" />','     <help> flow law parameter [Pa/s^(1/n)] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_n" type="',class(self.rheology_n),'" default="',convert2str(self.rheology_n),'">','     <section name="materials" />','     <help> Glens flow law exponent </help>','</parameter>');
+-
+-			% rheology_law drop-down
+-			fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="rheology_law" type="alternative" optional="false">','     <section name="materials" />','     <help> law for the temperature dependance of the rheology: "None", "Paterson",  "Arrhenius" or "LliboutryDuval" </help>');
+-			fprintf(fid,'%s\n','       <option value="None" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="Paterson" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="Arrhenius" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="LliboutryDuval" type="string" default="false"> </option>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_shear_modulus" type="',class(self.lithosphere_shear_modulus),'" default="',convert2str(self.lithosphere_shear_modulus),'">','     <section name="materials" />','     <help> Lithosphere shear modulus [Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_density" type="',class(self.lithosphere_density),'" default="',convert2str(self.lithosphere_density),'">','     <section name="materials" />','     <help> Lithosphere density [g/cm^-3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_shear_modulus" type="',class(self.mantle_shear_modulus),'" default="',convert2str(self.mantle_shear_modulus),'">','     <section name="materials" />','     <help> Mantle shear modulus [Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_density" type="',class(self.mantle_density),'" default="',convert2str(self.mantle_density),'">','     <section name="materials" />','     <help> Mantle density [g/cm^-3] </help>','</parameter>');
+-
+-
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node');
+ 			self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element');
+Index: ../trunk-jpl/src/m/classes/qmu.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/qmu.m	(revision 19958)
+@@ -23,35 +23,6 @@
+ 		vertex_weight               = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- qmu -->\n');            
+-
+-			% qmu solution parameters
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="qmu parameters">','<section name="qmu" />');                    
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isdakota" type="',class(self.isdakota),'" default="',convert2str(self.isdakota),'">','     <section name="qmu" />','     <help> is qmu analysis activated? </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="variables" type="',class(self.variables),'" default="',convert2str(self.variables),'">','     <section name="qmu" />','     <help> (arrays of each variable class) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="responses" type="',class(self.responses),'" default="',convert2str(self.responses),'">','     <section name="qmu" />','     <help> (arrays of each response class) </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofresponses" type="',class(self.numberofresponses),'" default="',convert2str(self.numberofresponses),'">','     <section name="qmu" />','     <help> number of responses </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="params" type="',class(self.params),'" default="',convert2str(self.params),'">','     <section name="qmu" />','     <help> (array of method-independent parameters)  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="results" type="',class(self.results),'" default="',convert2str(self.results),'">','     <section name="qmu" />','     <help> (information from dakota files) </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="partition" type="',class(self.partition),'" default="',convert2str(self.partition),'">','     <section name="qmu" />','     <help> user provided mesh partitioning, defaults to metis if not specified </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofpartitions" type="',class(self.numberofpartitions),'" default="',convert2str(self.numberofpartitions),'">','     <section name="qmu" />','     <help> number of partitions for semi-discrete qmu  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="variabledescriptors" type="',class(self.variabledescriptors),'" default="',convert2str(self.variabledescriptors),'">','     <section name="qmu" />','     <help>  </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="responsedescriptors" type="',class(self.responsedescriptors),'" default="',convert2str(self.responsedescriptors),'">','     <section name="qmu" />','     <help> use an enthalpy formulation to include temperate ice (default is 0) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="method" type="',class(self.method),'" default="',convert2str(self.method),'">','     <section name="qmu" />','     <help> array of dakota_method class </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="mass_flux_profile_directory" type="',class(self.mass_flux_profile_directory),'" default="',convert2str(self.mass_flux_profile_directory),'">','     <section name="qmu" />','     <help> directory for mass flux profiles </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="mass_flux_profiles" type="',class(self.mass_flux_profiles),'" default="',convert2str(self.mass_flux_profiles),'">','     <section name="qmu" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="mass_flux_segments" type="',class(self.mass_flux_segments),'" default="',convert2str(self.mass_flux_segments),'">','     <section name="qmu" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="adjacency" type="',class(self.adjacency),'" default="',convert2str(self.adjacency),'">','     <section name="qmu" />','     <help> additional outputs requested </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertex_weight" type="',class(self.vertex_weight),'" default="',convert2str(self.vertex_weight),'">','     <section name="qmu" />','     <help> weight applied to each mesh vertex </help>','  </parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');    
+-
+-		end % }}}        
+ 		function self = extrude(self,md) % {{{
+ 			self.partition=project3d(md,'vector',self.partition','type','node');
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/verbose.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/verbose.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/verbose.m	(revision 19958)
+@@ -39,21 +39,6 @@
+ 	end
+ 	%}}}
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- verbose -->');
+-
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="mprocessor" type="',              class(self.mprocessor),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.mprocessor),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="module" type="',              class(self.module),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.module),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="solution" type="',              class(self.solution),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.solution),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="solver" type="',              class(self.solver),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.solver),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="convergence" type="',              class(self.convergence),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.convergence),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="control" type="',              class(self.control),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.control),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n',    '<parameter key ="qmu" type="',              class(self.qmu),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.qmu),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-			fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n',    '<parameter key ="autodiff" type="',              class(self.autodiff),'" optional="false">',              '     <section name="verbose" />','        <option value="',convert2str(self.autodiff),'" type="string" default="true"></option>','     <help>  </help>','</parameter>');
+-
+-
+-		end % }}}
+ 		function verbose=verbose(varargin) % {{{
+ 
+ 			switch(nargin),
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 19958)
+@@ -18,24 +18,6 @@
+ 		requested_outputs = {};
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- transient -->\n');            
+-                    
+-            % transient solution parameters
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="transient solution parameters">','<section name="transient" />');                    
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="issmb" type="',class(self.issmb),'" default="',convert2str(self.issmb),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="ismasstransport" type="',class(self.ismasstransport),'" default="',convert2str(self.ismasstransport),'">','     <section name="transient" />','     <help> indicates whether a masstransport solution is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isstressbalance" type="',class(self.isstressbalance),'" default="',convert2str(self.isstressbalance),'">','     <section name="transient" />','     <help> indicates whether a stressbalance solution is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isthermal" type="',class(self.isthermal),'" default="',convert2str(self.isthermal),'">','     <section name="transient" />','     <help> indicates whether a thermal solution is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isgroundingline" type="',class(self.isgroundingline),'" default="',convert2str(self.isgroundingline),'">','     <section name="transient" />','     <help> indicates whether a groundingline migration is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isgia" type="',class(self.isgia),'" default="',convert2str(self.isgia),'">','     <section name="transient" />','     <help> indicates whether a postglacial rebound model is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="isdamageevolution" type="',class(self.isdamageevolution),'" default="',convert2str(self.isdamageevolution),'">','     <section name="transient" />','     <help> indicates whether damage evolution is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="islevelset" type="',class(self.islevelset),'" default="',convert2str(self.islevelset),'">','     <section name="transient" />','     <help> LEVEL SET DESCRIPTION...  </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="iscalving" type="',class(self.iscalving),'" default="',convert2str(self.iscalving),'">','     <section name="transient" />','     <help> indicates whether calving is used in the transient </help>','  </parameter>');
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="requested_outputs" type="',class(self.requested_outputs),'" default="',convert2str(self.requested_outputs),'">','     <section name="transient" />','     <help> list of additional outputs requested </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');    
+-        
+-        end % }}}
+ 		function self = transient(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/outputdefinition.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 19958)
+@@ -8,15 +8,6 @@
+ 		definitions                 = {};
+ 	end
+ 	methods
+-	   function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- outputdefinition -->\n');            
+-                    
+-            % outputdefinition solution parameters
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="outputdefinition">','<section name="outputdefinition" />');                    
+-                fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="definitions" type="',class(self.definitions),'" default="',convert2str(self.definitions),'">','     <section name="outputdefinition" />','     <help> list of potential outputs that can be requested, but which need additional data to be defined </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');    
+-        
+-        end % }}}
+ 		function self = outputdefinition(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/constants.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/constants.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/constants.m	(revision 19958)
+@@ -11,13 +11,6 @@
+ 		referencetemperature = 0.;
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- constants -->');
+-			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="g" type="',class(self.g),'" default="',num2str(self.g),'">','     <section name="constants" />','     <help> gravitational acceleration [m/s^2] </help>','</parameter>');
+-             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="yts" type="',class(self.yts),'" default="',num2str(self.yts),'">','     <section name="constants" />','     <help> number of seconds in a year [s/yr] </help>','</parameter>');
+-             fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="referencetemperature" type="',class(self.referencetemperature),'" default="',num2str(self.referencetemperature),'">','     <section name="constants" />','     <help> reference temperature used in the enthalpy model [K] </help>','</parameter>');
+-		end % }}}
+ 		function self = constants(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 19958)
+@@ -25,50 +25,6 @@
+ 		requested_outputs      = {};
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- StressBalance solution parameters: -->');
+-
+-			% Convergence criteria            
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Convergence criteria">','<section name="stressbalance" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="restol" type="',      class(self.restol),'" default="',        convert2str(self.restol),'">',	'     <section name="stressbalance" />','     <help> mechanical equilibrium residual convergence criterion </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="reltol" type="',          class(self.reltol),'" default="',            convert2str(self.reltol),'">',     '     <section name="stressbalance" />','     <help> velocity relative convergence criterion, NaN: not applied </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',	'<parameter key ="abstol" type="',        class(self.abstol),'" default="',          convert2str(self.abstol),'">',	'     <section name="stressbalance" />','     <help> velocity absolute convergence criterion, NaN: not applied </help>','</parameter>');
+-
+-			%is newton drop-down (0,1,or 2)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n',    '<parameter key ="isnewton" type="alternative" optional="false">',	'     <section name="stressbalance" />','     <help> 0: Picards fixed point, 1: Newtons method, 2: hybrid </help>');
+-			fprintf(fid,'%s\n','       <option value="0" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="1" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="2" type="string" default="false"> </option>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="maxiter" type="',  	class(self.maxiter),'" default="',       convert2str(self.maxiter),'">',     '     <section name="stressbalance" />','     <help> maximum number of nonlinear iterations </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="viscosity_overshoot" type="',         class(self.viscosity_overshoot),'" default="',           convert2str(self.viscosity_overshoot),'">',	'     <section name="stressbalance" />','     <help> over-shooting constant new=new+C*(new-old) </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% boundary conditions    
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Boundary conditions">','<section name="stressbalance" />'); 			 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="spcvx" type="',     	class(self.spcvx),'" default="',    	convert2str(self.spcvx),'">',     '     <section name="stressbalance" />','     <help> x-axis velocity constraint (NaN means no constraint) [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="spcvy" type="',     	class(self.spcvy),'" default="',    	convert2str(self.spcvy),'">',	'     <section name="stressbalance" />','     <help> y-axis velocity constraint (NaN means no constraint) [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="spcvz" type="',    	class(self.spcvz),'" default="',    	convert2str(self.spcvz),'">',     '     <section name="stressbalance" />','     <help> z-axis velocity constraint (NaN means no constraint) [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% Rift options   
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Rift options">','<section name="stressbalance" />'); 	
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="rift_penalty_threshold" type="',    	class(self.rift_penalty_threshold),'" default="',       convert2str(self.rift_penalty_threshold),'">',     '     <section name="stressbalance" />','     <help> threshold for instability of mechanical constraints </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    	'<parameter key ="rift_penalty_lock" type="',         class(self.rift_penalty_lock),'" default="',           convert2str(self.rift_penalty_lock),'">',	'     <section name="stressbalance" />','     <help> number of iterations before rift penalties are locked </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>'); 
+-
+-			%others
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Other">','<section name="stressbalance" />'); 	
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="shelf_dampening" type="',  	class(self.shelf_dampening),'" default="',       convert2str(self.shelf_dampening),'">',     '     <section name="stressbalance" />','     <help> use dampening for floating ice ? Only for FS model </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',  	'<parameter key ="FSreconditioning" type="', 	class(self.FSreconditioning),'" default="',           convert2str(self.FSreconditioning),'">',	'     <section name="stressbalance" />','     <help> multiplier for incompressibility equation. Only for FS model </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="referential" type="',  	class(self.referential),'" default="',       convert2str(self.referential),'">',     '     <section name="stressbalance" />','     <help> local referential </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',  	'<parameter key ="loadingforce" type="', 	class(self.loadingforce),'" default="',           convert2str(self.loadingforce),'">',	'     <section name="stressbalance" />','     <help> loading force applied on each point [N/m^3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="requested_outputs" type="',  	class(self.requested_outputs),'" default="',       convert2str(self.requested_outputs),'">',     '     <section name="stressbalance" />','     <help> additional outputs requested </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s\n%s\n','</frame>'); 
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.spcvx=project3d(md,'vector',self.spcvx,'type','node');
+ 			self.spcvy=project3d(md,'vector',self.spcvy,'type','node');
+Index: ../trunk-jpl/src/m/classes/hydrologyshreve.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/hydrologyshreve.m	(revision 19958)
+@@ -9,17 +9,6 @@
+ 		stabilization  = 0;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- Hydrology -->');
+-
+-			% Convergence criteria            
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Hydrologyshreve solution parameters">','<section name="hydrologyshreve" />');                    
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="spcwatercolumn" type="',      class(self.spcwatercolumn),'" default="',        convert2str(self.spcwatercolumn),'">',	'     <section name="hydrologyshreve" />','     <help> water thickness constraints (NaN means no constraint) [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="stabilization" type="',         class(self.stabilization),'" default="',           convert2str(self.stabilization),'">',	'     <section name="hydrologyshreve" />','     <help> artificial diffusivity (default is 1). can be more than 1 to increase diffusivity. </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 		end % }}}
+ 		function self = hydrologyshreve(varargin) % {{{
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19958)
+@@ -22,13 +22,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- mask -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="groundedice_levelset" type="',class(self.groundedice_levelset),'" default="',self.groundedice_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="ice_levelset" type="',class(self.ice_levelset),'" default="',self.ice_levelset,'">','     <section name="mask" />','     <help> presence of ice if > 0, icefront position if = 0, no ice if &amp;lt; 0 </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="ocean_levelset" type="',class(self.ocean_levelset),'" default="',self.ocean_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
+ 			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
+Index: ../trunk-jpl/src/m/classes/flowequation.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/flowequation.m	(revision 19958)
+@@ -61,51 +61,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- flowequation -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Flow equation parameters">','<section name="flowequation" />');                    
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="isSIA" type="',              class(self.isSIA),'" default="',                  convert2str(self.isSIA),'">',              '     <section name="flowequation" />','     <help> is the Shallow Ice Approximation (SIA) used ? </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="isSSA" type="',            class(self.isSSA),'" default="',                convert2str(self.isSSA),'">',   '     <section name="flowequation" />','     <help> is the Shelfy-Stream Approximation (SSA) used ? </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="isL1L2" type="',      class(self.isL1L2),'" default="',          convert2str(self.isL1L2),'">',            '     <section name="flowequation" />','     <help> is the L1L2 approximation used ? </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="isHO" type="',     class(self.isHO),'" default="',         convert2str(self.isHO),'">',            '     <section name="flowequation" />','     <help> is the Higher-Order (HO) approximation used ? </help>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="isFS" type="',       class(self.isFS),'" default="',              convert2str(self.isFS),'">',              '     <section name="flowequation" />','     <help> are the Full-FS (FS) equations used ? </help>','</parameter>');
+-
+-			% fe_SSA drop-down (P1, P1bubble, P1bubblecondensed, P2)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n',    '<parameter key ="fe_SSA" type="alternative" optional="false">','     <section name="flowequation" />','     <help> Finite Element for SSA  "P1", "P1bubble" "P1bubblecondensed" "P2" </help>');
+-			fprintf(fid,'%s\n','       <option value="P1" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1bubble" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1bubblecondensed" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="P2" type="string" default="false"> </option>','</parameter>');
+-
+-			%fe_HO drop-down (P1, P1bubble, P1bubblecondensed, P1xP2, P2xP1, P2)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n',        '<parameter key ="fe_HO" type="alternative" optional="false">','     <section name="flowequation" />','     <help> Finite Element for HO   "P1" "P1bubble" "P1bubblecondensed" "P1xP2" "P2xP1" "P2" </help>');
+-			fprintf(fid,'%s\n','       <option value="P1" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1bubble" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1bubblecondensed" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1xP2" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P2xP1" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="P2" type="string" default="false"> </option>','</parameter>');
+-
+-			% fe_FS drop-down (P1P1, P1P1GLS, MINIcondensed, MINI, TaylowHood)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n',        '<parameter key ="fe_FS" type="alternative" optional="false">','     <section name="flowequation" />','     <help> Finite Element for FS   "P1P1" (debugging only) "P1P1GLS" "MINIcondensed" "MINI" "TaylorHood" </help>');
+-			fprintf(fid,'%s\n','       <option value="P1P1" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="P1P1GLS" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="MINIcondensed" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','       <option value="MINI" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="TaylorHood" type="string" default="false"> </option>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="vertex_equation" type="',      class(self.vertex_equation),'" default="',            convert2str(self.vertex_equation),'">',            '     <section name="flowequation" />','     <help> flow equation for each vertex </help>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="element_equation" type="',            class(self.element_equation),'" default="',              convert2str(self.element_equation),'">',              '     <section name="flowequation" />','     <help> flow equation for each element </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="borderSSA" type="', class(self.borderSSA),'" default="',   convert2str(self.borderSSA),'">',   '     <section name="flowequation" />','     <help> vertices on SSAs border (for tiling) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="borderHO" type="',          class(self.borderHO),'" default="',            convert2str(self.borderHO),'">',            '     <section name="flowequation" />','     <help> vertices on HOs border (for tiling) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="borderFS" type="',          class(self.borderFS),'" default="',            convert2str(self.borderFS),'">',            '     <section name="flowequation" />','     <help> vertices on FS border (for tiling) </help>','</parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.element_equation=project3d(md,'vector',self.element_equation,'type','element');
+ 			self.vertex_equation=project3d(md,'vector',self.vertex_equation,'type','node');
+Index: ../trunk-jpl/src/m/classes/basalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/basalforcings.m	(revision 19958)
+@@ -10,13 +10,6 @@
+ 		geothermalflux            = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- basalforcings -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="melting_rate" type="',            class(self.melting_rate),'" default="',              num2str(self.melting_rate),'">',              '     <section name="basalforcings" />','     <help> basal melting rate (positive if melting) [m/yr] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="geothermalflux" type="',          class(self.geothermalflux),'" default="',            num2str(self.geothermalflux),'">',            '     <section name="basalforcings" />','     <help> geothermal heat flux [W/m^2] </help>','</parameter>');
+-
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1); 
+ 			self.floatingice_melting_rate=project3d(md,'vector',self.floatingice_melting_rate,'type','node','layer',1); 
+Index: ../trunk-jpl/src/m/classes/damage.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/damage.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/damage.m	(revision 19958)
+@@ -29,56 +29,6 @@
+ 		requested_outputs   = {};
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- damage -->');
+-			fprintf(fid, '%s\n', '<!-- Note: this class depends on different input of law -->');
+-
+-			%fprintf(fid,'%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="law" type="logical"',           '" default="',                num2str(self.law),'">',   '     <section name="damage" />','     <help> damage law (string) from {"undamaged","pralong"} </help>','</parameter>');
+-			% drop-down 
+-			fprintf(fid,'%s%s%s%s%s\n\t%s\n','<parameter key ="law" type="','alternative','" optional="','false','">','<section name="damage" />');
+-
+-			% law = 'undamage'
+-			fprintf(fid,'\t%s%s%s%s%s\n\t\t%s\n','<option value="undamage" type="','string','" default="','true','">','<help> law = undamage </help>');
+-			% footer for option
+-			fprintf(fid,'\t%s\n%s\n','</option>');
+-
+-			% law = 'pralong'
+-			fprintf(fid,'\t%s%s%s%s%s\n\t\t%s\n','<option value="pralong" type="','string','" default="','false','">','<help> law = pralong </help>');
+-
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',   '<parameter key ="stress_threshold" type="',class(self.stress_threshold),'" default="',num2str(self.stress_threshold),'">','<help> damage stress threshold [Pa] </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',	'<parameter key ="c1" type="', class(self.c1),'" default="',   num2str(self.c1),'">',   '<help> damage parameter 1 </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="c2" type="',          class(self.c2),'" default="',            num2str(self.c2),'">','<help> damage parameter 2 </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="c3" type="',          class(self.c3),'" default="',            num2str(self.c3),'">','<help> damage parameter 3 [W/m^2] </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="c4" type="',            class(self.c4),'" default="',              num2str(self.c4),'">','<help> damage parameter 4 </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="healing" type="', class(self.healing),'" default="',   num2str(self.healing),'">','<help> damage healing parameter 1 </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="equiv_stress" type="',          class(self.equiv_stress),'" default="',convert2str(self.equiv_stress),'">','<help> 0: von Mises </help>','</parameter>');
+-			fprintf(fid,'\t\t%s%s%s%s%s\n\t\t\t%s\n\t\t%s\n',  	'<parameter key ="requested_outputs" type="',          class(self.requested_outputs),'" default="',convert2str(self.requested_outputs),'">','<help> additional outputs requested </help>','</parameter>');
+-
+-
+-			% footer for option
+-			fprintf(fid,'\t%s\n%s\n','</option>');
+-
+-
+-			% footer for drop-down
+-			fprintf(fid,'\t%s\n%s\n%s','<help> damage law (string) from {"undamaged","pralong"} </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="D" type="',              class(self.D),'" default="',                  num2str(self.D),'">',              '     <section name="damage" />','     <help> damage tensor (scalar) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="law" type="',            class(self.law),'" default="',                num2str(self.law),'">',   '     <section name="damage" />','     <help> damage law (string) from {"undamaged","pralong"} </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="spcdamage" type="',      class(self.spcdamage),'" default="',          num2str(self.spcdamage),'">',            '     <section name="damage" />','     <help> damage constraints (NaN means no constraint) </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="max_damage" type="',     class(self.max_damage),'" default="',         num2str(self.max_damage),'">',            '     <section name="damage" />','     <help> maximum possible damage (0&amp;lt;=max_damage&amp;lt;1) </help>','</parameter>');
+-
+-			% stabilization (0,1, or 2) drop-down
+-			fprintf(fid,'%s\n%s\n%s\n%s\n',    '<parameter key ="stabilization" type="alternative" optional="false">','     <section name="damage" />','     <help> 0: no, 1: artificial_diffusivity, 2: SUPG </help>');
+-			fprintf(fid, '%s\n', '       <option value="0" type="string" default="true"></option>');
+-			fprintf(fid, '%s\n', '       <option value="1" type="string" default="false"></option>');
+-			fprintf(fid, '%s\n', '       <option value="2" type="string" default="false"></option>');
+-			fprintf(fid, '%s\n','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="maxiter" type="',             class(self.maxiter),'" default="',   num2str(self.maxiter),'">',   '     <section name="damage" />','     <help> maximum number of non linear iterations </help>','</parameter>');
+-
+-		end % }}}
+ 		function self = damage(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/flaim.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/flaim.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/flaim.m	(revision 19958)
+@@ -20,39 +20,6 @@
+ 		opt_niter          = 30000
+ 	end
+ 	methods
+-  	 	function createxml(self,fid) % {{{
+-            fprintf(fid, '<!-- flaim -->\n');            
+-                    
+-            % Input
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Input:">','<section name="flaim" />');                    
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="targets" type="',class(self.targets),'" default="',convert2str(self.targets),'">','     <section name="flaim" />','     <help> name of kml output targets file </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="tracks" type="',class(self.tracks),'" default="',convert2str(self.tracks),'">','     <section name="flaim" />','     <help> name of kml input tracks file </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="flightreqs" type="',class(self.flightreqs),'" default="',convert2str(self.flightreqs),'">','     <section name="flaim" />','     <help> structure of kml flight requirements (not used yet) </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="criterion" type="',class(self.criterion),'" default="',convert2str(self.criterion),'">','     <section name="flaim" />','     <help> element or nodal criterion for flight path evaluation (metric) </help>','  </parameter>');
+-        	fprintf(fid,'%s\n%s\n','</frame>');    
+-            
+-            % Arguments
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Arguments:">','<section name="flaim" />');                    
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="gridsatequator" type="',class(self.gridsatequator),'" default="',convert2str(self.gridsatequator),'">','     <section name="flaim" />','     <help> number of grids at equator (determines resolution) </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n','  <parameter key ="usevalueordering" type="',class(self.usevalueordering),'" optional="false">','     <section name="flaim" />','         <option value="',convert2str(self.usevalueordering),'" type="string" default="true"></option>','     <help> flag to consider target values for flight path evaluation </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n','  <parameter key ="split_antimeridian" type="',class(self.split_antimeridian),'" optional="false">','     <section name="flaim" />','         <option value="',convert2str(self.split_antimeridian),'" type="string" default="true"></option>','     <help> flag to split polygons on the antimeridian </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');   
+-            
+-            % Optimization
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Optimization:">','<section name="flaim" />');                    
+-            fprintf(fid,'%s%s%s\n%s\n%s%s%s\n%s\n%s\n','  <parameter key ="path_optimize" type="',class(self.path_optimize),'" optional="false">','     <section name="flaim" />','         <option value="',convert2str(self.path_optimize),'" type="string" default="true"></option>','     <help> optimize? (default false) </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="opt_ndir" type="',class(self.opt_ndir),'" default="',convert2str(self.opt_ndir),'">','     <section name="flaim" />','     <help> number of directions to test when moving a point.  If this value = 1, a random direction is tested. A value > 1 results in directions equally spaced from [0, 2*PI] being tested. For example, 4 would result in directions [0, PI/2, PI, 3PI/2] </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="opt_dist" type="',class(self.opt_dist),'" default="',convert2str(self.opt_dist),'">','     <section name="flaim" />','     <help> specifies the distance in km (default 25) to move a randomly selected path point on each iteration </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="opt_niter" type="',class(self.opt_niter),'" default="',convert2str(self.opt_niter),'">','     <section name="flaim" />','     <help> number of iterations (default 30,000) to run for flightplan optimization, i.e. the number of times to randomly select a point and move it. </help>','  </parameter>');
+-        	fprintf(fid,'%s\n%s\n','</frame>');     
+-            
+-            % Output
+-            fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Output:">','<section name="flaim" />');                    
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="solution" type="',class(self.solution),'" default="',convert2str(self.solution),'">','     <section name="flaim" />','     <help> name of kml solution file </help>','  </parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="quality" type="',class(self.quality),'" default="',convert2str(self.quality),'">','     <section name="flaim" />','     <help> quality of kml solution </help>','  </parameter>');
+-            fprintf(fid,'%s\n%s\n','</frame>');              
+-        
+-        end % }}}
+ 		function self = flaim(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 19958)
+@@ -21,12 +21,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- mask -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="groundedice_levelset" type="',class(self.groundedice_levelset),'" default="',self.groundedice_levelset,'">','     <section name="mask" />','     <help> is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if &amp;lt; 0 </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="ice_levelset" type="',class(self.ice_levelset),'" default="',self.ice_levelset,'">','     <section name="mask" />','     <help> presence of ice if > 0, icefront position if = 0, no ice if &amp;lt; 0 </help>','</parameter>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
+ 			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
+Index: ../trunk-jpl/src/m/classes/matdamageice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matdamageice.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/matdamageice.m	(revision 19958)
+@@ -29,40 +29,6 @@
+ 
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '<!-- materials -->\n');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_ice" type="',class(self.rho_ice),'" default="',convert2str(self.rho_ice),'">','     <section name="materials" />','     <help> ice density [kg/m^3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_water" type="',class(self.rho_water),'" default="',convert2str(self.rho_water),'">','     <section name="materials" />','     <help> ocean water density [kg/m^3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rho_freshwater" type="',class(self.rho_freshwater),'" default="',convert2str(self.rho_freshwater),'">','     <section name="materials" />','     <help> fresh water density [kg/m^3] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mu_water" type="',class(self.mu_water),'" default="',convert2str(self.mu_water),'">','     <section name="materials" />','     <help> water viscosity [N s/m^2] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="heatcapacity" type="',class(self.heatcapacity),'" default="',convert2str(self.heatcapacity),'">','     <section name="materials" />','     <help> heat capacity [J/kg/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="latentheat" type="',class(self.latentheat),'" default="',convert2str(self.latentheat),'">','     <section name="materials" />','     <help> latent heat of fusion [J/kg] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermalconductivity" type="',class(self.thermalconductivity),'" default="',convert2str(self.thermalconductivity),'">','     <section name="materials" />','     <help> ice thermal conductivity [W/m/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="temperateiceconductivity" type="',class(self.temperateiceconductivity),'" default="',convert2str(self.temperateiceconductivity),'">','     <section name="materials" />','     <help> temperate ice thermal conductivity [W/m/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="meltingpoint" type="',class(self.meltingpoint),'" default="',convert2str(self.meltingpoint),'">','     <section name="materials" />','     <help> melting point of ice at 1atm in K </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="beta" type="',class(self.beta),'" default="',convert2str(self.beta),'">','     <section name="materials" />','     <help> rate of change of melting point with pressure [K/Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mixed_layer_capacity" type="',class(self.mixed_layer_capacity),'" default="',convert2str(self.mixed_layer_capacity),'">','     <section name="materials" />','     <help> mixed layer capacity [W/kg/K] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thermal_exchange_velocity" type="',class(self.thermal_exchange_velocity),'" default="',convert2str(self.thermal_exchange_velocity),'">','     <section name="materials" />','     <help> thermal exchange velocity [m/s] </help>','</parameter>');
+-
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_B" type="',class(self.rheology_B),'" default="',convert2str(self.rheology_B),'">','     <section name="materials" />','     <help> flow law parameter [Pa/s^(1/n)] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_n" type="',class(self.rheology_n),'" default="',convert2str(self.rheology_n),'">','     <section name="materials" />','     <help> Glens flow law exponent </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="rheology_law" type="',class(self.rheology_law),'" default="',convert2str(self.rheology_law),'">','     <section name="materials" />','     <help> law for the temperature dependance of the rheology: "None", "Paterson",  "Arrhenius" or "LliboutryDuval" </help>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_shear_modulus" type="',class(self.lithosphere_shear_modulus),'" default="',convert2str(self.lithosphere_shear_modulus),'">','     <section name="materials" />','     <help> Lithosphere shear modulus [Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="lithosphere_density" type="',class(self.lithosphere_density),'" default="',convert2str(self.lithosphere_density),'">','     <section name="materials" />','     <help> Lithosphere density [g/cm^-3] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_shear_modulus" type="',class(self.mantle_shear_modulus),'" default="',convert2str(self.mantle_shear_modulus),'">','     <section name="materials" />','     <help> Mantle shear modulus [Pa] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="mantle_density" type="',class(self.mantle_density),'" default="',convert2str(self.mantle_density),'">','     <section name="materials" />','     <help> Mantle density [g/cm^-3] </help>','</parameter>');
+-
+-
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.rheology_B=project3d(md,'vector',self.rheology_B,'type','node');
+ 			self.rheology_n=project3d(md,'vector',self.rheology_n,'type','element');
+Index: ../trunk-jpl/src/m/classes/inversion.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/inversion.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/inversion.m	(revision 19958)
+@@ -25,55 +25,6 @@
+ 		surface_obs                 = NaN
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- inversion -->\n');            
+-
+-			% inversion parameters
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="inversion parameters">','<section name="inversion" />');                    
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="iscontrol" type="',class(self.iscontrol),'" default="',convert2str(self.iscontrol),'">','     <section name="inversion" />','     <help> is inversion activated? </help>','  </parameter>');
+-
+-			% incompleteadjoing drop-down (0 or 1)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n','  <parameter key ="incomplete_adjoint" type="alternative" optional="false">','     <section name="inversion" />','     <help> 1: linear viscosity, 0: non-linear viscosity </help>');
+-			fprintf(fid,'%s\n','       <option value="0" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="1" type="string" default="false"> </option>','</parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="control_parameters" type="',class(self.control_parameters),'" default="',convert2str(self.control_parameters),'">','     <section name="inversion" />','     <help> ex: {''FrictionCoefficient''}, or {''MaterialsRheologyBbar''} </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="nsteps" type="',class(self.nsteps),'" default="',convert2str(self.nsteps),'">','     <section name="inversion" />','     <help> number of optimization searches </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="cost_functions" type="',class(self.cost_functions),'" default="',convert2str(self.cost_functions),'">','     <section name="inversion" />','     <help> indicate the type of response for each optimization step  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="cost_functions_coefficients" type="',class(self.cost_functions_coefficients),'" default="',convert2str(self.cost_functions_coefficients),'">','     <section name="inversion" />','     <help> cost_functions_coefficients applied to the misfit of each vertex and for each control_parameter </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="cost_function_threshold" type="',class(self.cost_function_threshold),'" default="',convert2str(self.cost_function_threshold),'">','     <section name="inversion" />','     <help> misfit convergence criterion. Default is 1%, NaN if not applied </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="maxiter_per_step" type="',class(self.maxiter_per_step),'" default="',convert2str(self.maxiter_per_step),'">','     <section name="inversion" />','     <help> maximum iterations during each optimization step  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="gradient_scaling" type="',class(self.gradient_scaling),'" default="',convert2str(self.gradient_scaling),'">','     <section name="inversion" />','     <help> scaling factor on gradient direction during optimization, for each optimization step </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="step_threshold" type="',class(self.step_threshold),'" default="',convert2str(self.step_threshold),'">','     <section name="inversion" />','     <help> decrease threshold for misfit, default is 30% </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="min_parameters" type="',class(self.min_parameters),'" default="',convert2str(self.min_parameters),'">','     <section name="inversion" />','     <help> absolute minimum acceptable value of the inversed parameter on each vertex </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="max_parameters" type="',class(self.max_parameters),'" default="',convert2str(self.max_parameters),'">','     <section name="inversion" />','     <help> absolute maximum acceptable value of the inversed parameter on each vertex </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vx_obs" type="',class(self.vx_obs),'" default="',convert2str(self.vx_obs),'">','     <section name="inversion" />','     <help> observed velocity x component [m/yr] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vy_obs" type="',class(self.vy_obs),'" default="',convert2str(self.vy_obs),'">','     <section name="inversion" />','     <help> observed velocity y component [m/yr]  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vel_obs" type="',class(self.vel_obs),'" default="',convert2str(self.vel_obs),'">','     <section name="inversion" />','     <help> observed velocity magnitude [m/yr] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="thickness_obs" type="',class(self.thickness_obs),'" default="',convert2str(self.thickness_obs),'">','     <section name="inversion" />','     <help> observed thickness [m]) </help>','  </parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');    
+-
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Available cost functions">','<section name="inversion" />');                    
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="SurfaceAbsVelMisfit" type="','string','" default="','101','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="SurfaceRelVelMisfit" type="','string','" default="','102','">','     <section name="inversion" />','     <help>   </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="SurfaceLogVelMisfit" type="','string','" default="','103','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="SurfaceLogVxVyMisfit" type="','string','" default="','104','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="SurfaceAverageVelMisfit" type="','string','" default="','105','">','     <section name="inversion" />','     <help>   </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="ThicknessAbsMisfit" type="','string','" default="','106','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="DragCoefficientAbsGradient" type="','string','" default="','107','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="RheologyBbarAbsGradient" type="','string','" default="','108','">','     <section name="inversion" />','     <help>  </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="ThicknessAbsGradient" type="','string','" default="','109','">','     <section name="inversion" />','     <help> </help>','  </parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');    
+-
+-		end % }}}       
+ 		function self = inversion(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/mesh3dprisms.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 19958)
+@@ -61,59 +61,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- 3D prism Mesh -->\n');
+-
+-			% Elements and verticies of the original 2d mesh
+-			fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices of the orginal 2d mesh">','       <section name="mesh3dprisms" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements2d" type="',class(self.numberofelements2d),'" default="',convert2str(self.numberofelements2d),'">','              <help> number of elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices2d" type="',class(self.numberofvertices2d),'" default="',convert2str(self.numberofvertices2d),'">','              <help> number of vertices </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements2d" type="',class(self.elements2d),'" default="',convert2str(self.elements2d),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x2d" type="',class(self.x2d),'" default="',convert2str(self.x2d),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y2d" type="',class(self.y2d),'" default="',convert2str(self.y2d),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','       </frame>');
+-
+-			% Elements and vertices of the extruded 3d mesh
+-			fprintf(fid,'%s\n%s\n%s\n','       <frame key="2" label="Elements and vertices of the orginal 3d mesh">','       <section name="mesh3dprisms" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(self.numberofelements),'" default="',convert2str(self.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(self.numberofvertices),'" default="',convert2str(self.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(self.elements),'" default="',convert2str(self.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(self.x),'" default="',convert2str(self.x),'">','     <section name="mesh3dprisms" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh3dprisms" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="z" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh3dprisms" />','     <help> vertices z coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','       </frame>');
+-
+-			% properties
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Properties">','<section name="mesh3dprisms" />');             
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberoflayers" type="',class(self.numberoflayers),'" default="',convert2str(self.numberoflayers),'">','     <section name="mesh3dprisms" />','     <help> number of extrusion layers </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(self.vertexonbase),'" default="',convert2str(self.vertexonbase),'">','     <section name="mesh3dprisms" />','     <help> lower vertices flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontbase" type="',class(self.elementontbase),'" default="',convert2str(self.elementontbase),'">','     <section name="mesh3dprisms" />','     <help> lower elements flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonsurface" type="',class(self.vertexonsurface),'" default="',convert2str(self.vertexonsurface),'">','     <section name="mesh3dprisms" />','     <help> upper vertices flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementontsurface" type="',class(self.elementontsurface),'" default="',convert2str(self.elementontsurface),'">','     <section name="mesh3dprisms" />','     <help> upper elements flags list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="uppervertex" type="',class(self.uppervertex),'" default="',convert2str(self.uppervertex),'">','     <section name="mesh3dprisms" />','     <help> upper vertex list (NaN for vertex on the upper surface) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="upperelements" type="',class(self.upperelements),'" default="',convert2str(self.upperelements),'">','     <section name="mesh3dprisms" />','     <help> upper element list (NaN for element on the upper layer) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowervertex" type="',class(self.lowervertex),'" default="',convert2str(self.lowervertex),'">','     <section name="mesh3dprisms" />','     <help> lower vertex list (NaN for vertex on the lower surface) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lowerelements" type="',class(self.lowerelements),'" default="',convert2str(self.lowerelements),'">','     <section name="mesh3dprisms" />','     <help> element list (NaN for element on the lower layer) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(self.vertexonboundary),'" default="',convert2str(self.vertexonboundary),'">','     <section name="mesh3dprisms" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(self.vertexconnectivity),'" default="',convert2str(self.vertexconnectivity),'">','     <section name="mesh3dprisms" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(self.elementconnectivity),'" default="',convert2str(self.elementconnectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(self.average_vertex_connectivity),'" default="',convert2str(self.average_vertex_connectivity),'">','     <section name="mesh3dprisms" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% Extracted model
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Extracted Model">','<section name="mesh3dprisms" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(self.extractedvertices),'" default="',convert2str(self.extractedvertices),'">','     <section name="mesh3dprisms" />','     <help> vertices extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(self.extractedelements),'" default="',convert2str(self.extractedelements),'">','     <section name="mesh3dprisms" />','     <help> elements extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% Projection
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="5" label="Projection">','<section name="mesh3dprisms" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(self.lat),'" default="',convert2str(self.lat),'">','     <section name="mesh3dprisms" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(self.long),'" default="',convert2str(self.long),'">','     <section name="mesh3dprisms" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(self.epsg),'" default="',convert2str(self.epsg),'">','     <section name="mesh3dprisms" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-		end % }}}cd
+ 		function self = mesh3dprisms(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/geometry.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/geometry.m	(revision 19958)
+@@ -32,17 +32,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self, fid)% {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- geometry -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Geometry parameters">','<section name="geometry" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="surface" type="','path','" optional="','false','">','     <section name="geometry" />','     <help> surface elevation [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="thickness" type="','path','" optional="','false','">','     <section name="geometry" />','     <help> ice thickness [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="bed" type="','path','" optional="','false','">','     <section name="geometry" />','     <help> bed elevation [m] </help>','</parameter>');
+-			%fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','<parameter key ="bathymetry" type="',class(self.bathymetry),'" default="',convert2str(self.bathymetry),'">','     <section name="geometry" />','     <help> bathymetry elevation [m] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="hydrostatic_ratio" type="',class(self.hydrostatic_ratio),'" default="',convert2str(self.hydrostatic_ratio),'">','     <section name="geometry" />','     <help> coefficient for ice shelves; thickness correction: hydrostatic_ratio H_obs+ (1-hydrostatic_ratio) H_hydro </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.surface=project3d(md,'vector',self.surface,'type','node');
+ 			self.thickness=project3d(md,'vector',self.thickness,'type','node');
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19958)
+@@ -129,48 +129,6 @@
+ 			fielddisplay(obj,'extractedvertices','vertices extracted from the model');
+ 			fielddisplay(obj,'extractedelements','elements extracted from the model'); 
+ 		end % }}}
+-		function createxml(obj,fid) % {{{
+-			fprintf(fid, '<!-- #D surface Mesh -->\n');
+-
+-			%elements and vertices
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Elements and vertices">','<section name="mesh" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofelements" type="',class(obj.numberofelements),'" default="',convert2str(obj.numberofelements),'">','     <section name="mesh" />','     <help> number of elements </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="numberofvertices" type="',class(obj.numberofvertices),'" default="',convert2str(obj.numberofvertices),'">','     <section name="mesh" />','     <help> number of vertices </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="elements" type="',class(obj.elements),'" default="',convert2str(obj.elements),'">','     <section name="mesh" />','     <help> vertex indices of the mesh elements </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(obj.x),'" default="',convert2str(obj.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(obj.y),'" default="',convert2str(obj.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(obj.edges),'" default="',convert2str(obj.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(obj.numberofedges),'" default="',convert2str(obj.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			% properties
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(obj.vertexonboundary),'" default="',convert2str(obj.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(obj.segments),'" default="',convert2str(obj.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(obj.segmentmarkers),'" default="',convert2str(obj.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(obj.vertexconnectivity),'" default="',convert2str(obj.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(obj.elementconnectivity),'" default="',convert2str(obj.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(obj.average_vertex_connectivity),'" default="',convert2str(obj.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			%extracted model
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Extracted Model">','<section name="mesh" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedvertices" type="',class(obj.extractedvertices),'" default="',convert2str(obj.extractedvertices),'">','     <section name="mesh" />','     <help> vertices extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="extractedelements" type="',class(obj.extractedelements),'" default="',convert2str(obj.extractedelements),'">','     <section name="mesh" />','     <help> elements extracted from the model </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			%projection
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="4" label="Projection">','<section name="mesh" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(obj.lat),'" default="',convert2str(obj.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(obj.long),'" default="',convert2str(obj.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
+-			% choice (epsg) 'n' or 's'
+-			fprintf(fid,'%s\n%s\n%s\n','  <parameter key ="epsg" type="alternative" optional="false">','     <section name="mesh" />','     <help> Indicate epsg ''n'' or ''s'' </help>');
+-			fprintf(fid,'%s\n','       <option value="n" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="s" type="string" default="false"> </option>');
+-			fprintf(fid,'%s\n','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-		end % }}}
+ 		function marshall(obj,md,fid) % {{{
+ 			WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain' domaintype(obj)]),'format','Integer');
+ 			WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension(obj),'format','Integer');
+Index: ../trunk-jpl/src/m/classes/gia.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/gia.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/gia.m	(revision 19958)
+@@ -10,21 +10,6 @@
+ 		cross_section_shape           = 0;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- gia -->\n');            
+-
+-			% gia solution parameters
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="gia parameters">','<section name="gia" />');                    
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="mantle_viscosity" type="',class(self.mantle_viscosity),'" default="',convert2str(self.mantle_viscosity),'">','     <section name="gia" />','     <help> mantle viscosity[Pa s] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lithosphere_thickness" type="',class(self.lithosphere_thickness),'" default="',convert2str(self.lithosphere_thickness),'">','     <section name="gia" />','     <help> lithosphere thickness (km) </help>','  </parameter>');
+-			%cross_section_shape drop-down (1 o r 2)
+-			fprintf(fid,'%s\n%s\n%s\n%s\n','  <parameter key ="cross_section_shape" type="alternative" optional="false">','     <section name="gia" />','     <help> 1: square-edged (default). 2: elliptical.  See iedge in GiaDeflectionCore </help>');
+-			fprintf(fid,'%s\n','       <option value="1" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n%s\n','       <option value="2" type="string" default="false"> </option>','</parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');    
+-
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.mantle_viscosity=project3d(md,'vector',self.mantle_viscosity,'type','node');
+ 			self.lithosphere_thickness=project3d(md,'vector',self.lithosphere_thickness,'type','node');
+Index: ../trunk-jpl/src/m/classes/settings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/settings.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/settings.m	(revision 19958)
+@@ -19,26 +19,6 @@
+ 
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- settings -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="results_on_nodes" type="',      class(self.results_on_nodes),'" default="',        convert2str(self.results_on_nodes),'">',	'     <section name="settings" />','     <help> results are output for all the nodes of each element </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="io_gather" type="',          class(self.io_gather),'" default="',           convert2str(self.io_gather),'">',     '     <section name="settings" />','     <help> I/O gathering strategy for result outputs (default 1) </help>','</parameter>');
+-            
+-            % lowmen drop-down (0 or 1)
+-            fprintf(fid,'%s\n%s\n%s\n%s\n',	'<parameter key ="lowmem" type="alternative" optional="true">',	'     <section name="settings" />','     <help> is the memory limited ? (0 or 1) </help>');
+-            fprintf(fid,'%s\n','       <option value="0" type="string" default="true"> </option>');
+-            fprintf(fid,'%s\n%s\n','       <option value="1" type="string" default="false"> </option>','</parameter>');
+-
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="output_frequency" type="',          class(self.output_frequency),'" default="',           convert2str(self.output_frequency),'">',	'     <section name="settings" />','     <help> frequency at which results are saved in all solutions with multiple time_steps </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="waitonlock" type="',  	class(self.waitonlock),'" default="',      convert2str(self.waitonlock),'">',     '     <section name="settings" />','     <help> maximum number of minutes to wait for batch results (NaN to deactivate) </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="upload_server" type="',         class(self.upload_server),'" default="',          convert2str(self.upload_server),'">',	'     <section name="settings" />','     <help> server hostname where model should be uploaded </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="upload_path" type="',             class(self.upload_path),'" default="',              convert2str(self.upload_path),'">',     '     <section name="settings" />','     <help> path on server where model should be uploaded </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="upload_login" type="',        class(self.upload_login),'" default="',         convert2str(self.upload_login),'">',	'     <section name="settings" />','     <help> server login </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="upload_port" type="',    	class(self.upload_port),'" default="',      convert2str(self.upload_port),'">',     '     <section name="settings" />','     <help> port login (default is 0) </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',    	'<parameter key ="upload_filename" type="',         class(self.upload_filename),'" default="',          convert2str(self.upload_filename),'">',	'     <section name="settings" />','     <help> unique id generated when uploading the file to server </help>','</parameter>');
+-             
+-        end % }}}
+ 		function self = settings(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/groundingline.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/groundingline.m	(revision 19958)
+@@ -8,21 +8,6 @@
+ 		migration    = '';
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- groundingline -->');
+-
+-			% Convergence criteria          
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Grounding line migration parameters">','<section name="groundingline" />');  
+-
+-			% migration (SoftMigration, AggressiveMigration, or None)drop-down
+-			fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="migration" type="alternative" optional="false">','     <section name="groundingline" />','     <help> type of grounding line migration: "SoftMigration","AggressiveMigration" or "None" </help>');
+-			fprintf(fid,'%s\n','       <option value="SoftMigration" type="string" default="true"> </option>');
+-			fprintf(fid,'%s\n','       <option value="AggressiveMigration" type="string" default="false"> </option>');
+-			fprintf(fid, '%s\n%s\n','       <option value="None" type="string" default="false"></option>','</parameter>');
+-
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = groundingline(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 19958)
+@@ -23,24 +23,6 @@
+ 		%}}}
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- generic -->');
+-            
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="name" type="',class(self.name),'" default="',convert2str(self.name),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="login" type="',class(self.login),'" default="',convert2str(self.login),'">',     '     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',	'<parameter key ="np" type="',class(self.np),'" default="',convert2str(self.np),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="port" type="',class(self.port),'" default="',convert2str(self.port),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="codepath" type="',class(self.codepath),'" default="',convert2str(self.codepath),'">',     '     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-             
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="executionpath" type="',class(self.executionpath),'" default="',convert2str(self.executionpath),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="etcpath" type="',class(self.etcpath),'" default="',convert2str(self.etcpath),'">',     '     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="valgrind" type="',class(self.valgrind),'" default="',convert2str(self.valgrind),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="valgrindlib" type="',class(self.valgrindlib),'" default="',convert2str(self.valgrindlib),'">',     '     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="valgrindsup" type="',class(self.valgrindsup),'" default="',convert2str(self.valgrindsup),'">',     '     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',    	'<parameter key ="verbose" type="',class(self.verbose),'" default="',convert2str(self.verbose),'">',	'     <section name="cluster" />','     <help> N/A </help>','</parameter>');
+-             
+-        end % }}}
+ 		function cluster=generic(varargin) % {{{
+ 
+ 			%Change the defaults if ispc
+Index: ../trunk-jpl/src/m/classes/mesh2dvertical.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 19958)
+@@ -50,39 +50,6 @@
+ 		end% }}}
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '<!-- 2d Mesh (Vertical) -->\n');
+-
+-			%elements and vertices
+-			fprintf(fid,'%s\n%s\n%s\n','       <frame key="1" label="Elements and vertices">','       <section name="mesh" />');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofelements" type="',class(self.numberofelements),'" default="',convert2str(self.numberofelements),'">','              <help> number of elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="numberofvertices" type="',class(self.numberofvertices),'" default="',convert2str(self.numberofvertices),'">','              <help> number of vertices </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','          <parameter key ="elements" type="',class(self.elements),'" default="',convert2str(self.elements),'">','              <help> vertex indices of the mesh elements </help>','          </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="x" type="',class(self.x),'" default="',convert2str(self.x),'">','     <section name="mesh" />','     <help> vertices x coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="y" type="',class(self.y),'" default="',convert2str(self.y),'">','     <section name="mesh" />','     <help> vertices y coordinate [m] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="edges" type="',class(self.edges),'" default="',convert2str(self.edges),'">','     <section name="mesh" />','     <help> edges of the 2d mesh (vertex1 vertex2 element1 element2) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="numberofedges" type="',class(self.numberofedges),'" default="',convert2str(self.numberofedges),'">','     <section name="mesh" />','     <help> number of edges of the 2d mesh </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','       </frame>');
+-
+-			% properties
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Properties">','<section name="mesh" />');             
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonboundary" type="',class(self.vertexonboundary),'" default="',convert2str(self.vertexonboundary),'">','     <section name="mesh" />','     <help> vertices on the boundary of the domain flag list </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexonbase" type="',class(self.vertexonbase),'" default="',convert2str(self.vertexonbase),'">','     <section name="mesh" />','     <help> vertices on the bed of the domain flag list </help>','  </parameter>');            
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segments" type="',class(self.segments),'" default="',convert2str(self.segments),'">','     <section name="mesh" />','     <help> edges on domain boundary (vertex1 vertex2 element) </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="segmentmarkers" type="',class(self.segmentmarkers),'" default="',convert2str(self.segmentmarkers),'">','     <section name="mesh" />','     <help> number associated to each segment </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="vertexconnectivity" type="',class(self.vertexconnectivity),'" default="',convert2str(self.vertexconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to vertex_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="elementconnectivity" type="',class(self.elementconnectivity),'" default="',convert2str(self.elementconnectivity),'">','     <section name="mesh" />','     <help> list of vertices connected to element_i </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="average_vertex_connectivity" type="',class(self.average_vertex_connectivity),'" default="',convert2str(self.average_vertex_connectivity),'">','     <section name="mesh" />','     <help> average number of vertices connected to one vertex </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-			%projection
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="3" label="Projection">','<section name="mesh" />'); 
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="lat" type="',class(self.lat),'" default="',convert2str(self.lat),'">','     <section name="mesh" />','     <help> vertices latitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n','  <parameter key ="long" type="',class(self.long),'" default="',convert2str(self.long),'">','     <section name="mesh" />','     <help> verticies longitude [degrees] </help>','  </parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','  <parameter key ="epsg" type="',class(self.epsg),'" default="',convert2str(self.epsg),'">','     <section name="mesh" />','     <help> Indicate epsg ''n'' or ''s'' </help>','  </parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-
+-		end % }}}
+ 		function self = mesh2dvertical(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/friction.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/friction.m	(revision 19958)
+@@ -10,15 +10,6 @@
+ 		q           = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p">','<section name="friction" />');   
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="coefficient" type="',   	class(self.coefficient),'" default="',     	convert2str(self.coefficient),'">',              '     <section name="friction" />','     <help> friction coefficient [SI] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="p" type="',               class(self.p),'" default="',                 convert2str(self.p),'">',   '     <section name="friction" />','     <help> p exponent </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="q" type="',               class(self.q),'" default="',                 convert2str(self.q),'">',            '     <section name="friction" />','     <help> q exponent </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = extrude(self,md) % {{{
+ 			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
+ 			self.p=project3d(md,'vector',self.p,'type','element');
+Index: ../trunk-jpl/src/m/classes/frictionweertman.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/frictionweertman.m	(revision 19958)
+@@ -9,15 +9,6 @@
+ 		m = NaN;
+ 	end
+ 	methods
+-		function createxml(self,fid) % {{{
+-			fprintf(fid, '\n\n');
+-			fprintf(fid, '%s\n', '<!-- Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p -->');
+-			fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Friction: Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_water*g*bed, r=q/p and s=1/p">','<section name="frictionweertman" />');   
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="coefficient" type="',   	class(self.coefficient),'" default="',     	convert2str(self.coefficient),'">',              '     <section name="frictionweertman" />','     <help> frictionweertman coefficient [SI] </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="p" type="',               class(self.p),'" default="',                 convert2str(self.p),'">',   '     <section name="frictionweertman" />','     <help> p exponent </help>','</parameter>');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n',        '<parameter key ="q" type="',               class(self.q),'" default="',                 convert2str(self.q),'">',            '     <section name="frictionweertman" />','     <help> q exponent </help>','</parameter>');
+-			fprintf(fid,'%s\n%s\n','</frame>');
+-		end % }}}
+ 		function self = frictionweertman(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 19958)
+@@ -9,12 +9,6 @@
+ 		requested_outputs      = {};
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- smb(SMBforcing) -->');
+-			 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n','<parameter key ="mass_balance" type="',class(self.mass_balance),'" default="',self.mass_balance,'">','     <section name="smb(SMBforcing)" />','     <help> surface mass balance [m/yr ice eq] </help>','</parameter>');
+-           
+-        end % }}}
+ 		function self = SMBforcing(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/timestepping.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/timestepping.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/timestepping.m	(revision 19958)
+@@ -13,20 +13,6 @@
+ 		interp_forcings = 1;
+ 	end
+ 	methods
+-       function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- Timestepping -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="start_time" type="',              class(self.start_time),'" default="',                  convert2str(self.start_time),'">',              '     <section name="timestepping" />','     <help> simulation starting time [yr] </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="final_time" type="',            class(self.final_time),'" default="',                convert2str(self.final_time),'">',   '     <section name="timestepping" />','     <help> final time to stop the simulation [yr] </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',        '<parameter key ="time_step" type="',      class(self.time_step),'" default="',          convert2str(self.time_step),'">',            '     <section name="timestepping" />','     <help> length of time steps [yr] </help>','</parameter>');
+-            % time_adapt 0 or 1 drop down
+-            fprintf(fid,'%s\n%s\n%s\n%s\n','<parameter key ="time_adapt" type="alternative" optional="false">','     <section name="timestepping" />','     <help> use cfl condition to define time step ? (0 or 1)  </help>');
+-            fprintf(fid, '%s\n',   '       <option value="0" type="string" default="true"></option>');
+-            fprintf(fid, '%s\n%s\n',   '       <option value="1" type="string" default="false"></option>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="cfl_coefficient" type="',       class(self.cfl_coefficient),'" default="',              convert2str(self.cfl_coefficient),'">',              '     <section name="timestepping" />','     <help> coefficient applied to cfl condition </help>','</parameter>');
+-            
+-        end % }}}
+-        
+ 		function self = timestepping(varargin) % {{{
+ 			switch nargin
+ 				case 0
+Index: ../trunk-jpl/src/m/classes/rifts.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/rifts.m	(revision 19957)
++++ ../trunk-jpl/src/m/classes/rifts.m	(revision 19958)
+@@ -9,13 +9,6 @@
+ 		riftproperties = NaN;
+ 	end
+ 	methods
+-        function createxml(self,fid) % {{{
+-            fprintf(fid, '\n\n');
+-            fprintf(fid, '%s\n', '<!-- rifts -->');
+-			fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="riftstruct" type="',              class(self.riftstruct),'" default="',                  self.riftstruct,'">',              '     <section name="rifts" />','     <help> structure containing all rift information (vertices coordinates, segments, type of melange, ...) </help>','</parameter>');
+-            fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',    '<parameter key ="riftproperties" type="',            class(self.riftproperties),'" default="',                self.riftproperties,'">',   '     <section name="rifts" />','     <help> N/A </help>','</parameter>');
+-    
+-        end % }}}
+ 		function self = rifts(varargin) % {{{
+ 			switch nargin
+ 				case 0
Index: /issm/oecreview/Archive/19101-20495/ISSM-19958-19959.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19958-19959.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19958-19959.diff	(revision 20498)
@@ -0,0 +1,47 @@
+Index: ../trunk-jpl/src/m/solve/createxml.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/createxml.m	(revision 19958)
++++ ../trunk-jpl/src/m/solve/createxml.m	(revision 19959)
+@@ -1,42 +0,0 @@
+-function createxml(xmlfilename,md)
+-%EXTRUDEXML - output an XML file compatible with inishell for automatic gui generation
+-%
+-%   The routine creates an XML file that list fields from the underlying classes 
+-%   in model, and that can be use to render a GUI using the java code inishell
+-%
+-%   Usage:
+-%      createxml(md,xmlfilename)
+-
+-disp(['creating XML file ' xmlfilename]);
+-
+-%open file for binary writing
+-fid=fopen(xmlfilename,'w');
+-if fid==-1,
+-	error(['extrudexml error message: could not open ' xmlfilename,' file for ASCII writing']);
+-end
+-
+-%Go through all model fields: check that it is a class and call checkconsistency
+-fields=properties('model');
+-fprintf(fid, '<inishell_config application="ISSM prototype">\n\n'); % require header for xml file
+-for i=1:length(fields), 
+-	field=fields{i};
+-
+-	%Some properties do not need to XML rendered
+-	if ismember(field,{'results' 'radaroverlay' 'toolkits' 'private'}),
+-		continue;
+-	end
+-
+-	%Check that current field is an object
+-	if ~isobject(md.(field))
+-		error(['field ''' char(field) ''' is not an object']);
+-	end
+-
+-	%Create XML file for this subclass
+-	createxml(md.(field),fid);
+-end
+-fprintf(fid, '\n\n</inishell_config>'); % require footer for xml file
+-%close file
+-st=fclose(fid);
+-if st==-1,
+-	error(['createxml error message: could not close file ' xmlfilename]);
+-end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19959-19960.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19959-19960.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19959-19960.diff	(revision 20498)
@@ -0,0 +1,191 @@
+Index: ../trunk-jpl/src/m/contrib/morphological/nunataks.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/nunataks.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/nunataks.m	(revision 19960)
+@@ -0,0 +1,20 @@
++function [mask]=nunataks(mask)
++%NUNATAKS - bias mask towards increased 0 coverage
++% 
++%  mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background
++% 
++%  Usage:   mask=nunataks(mask)
++%           [mask]=aggregation(mask);
++%
++%  See also CLOSING, OPENING, DILATION, EROSION, AGGREGATION
++
++rocks=~mask;
++
++%matrices for convolution: 
++matrix=[0 1 0; 1 0 1; 0 1 0];
++
++%do not exist, i.e. locations that stand pretty much alone. 
++mask=filter2(matrix1,mask,'same');
++pos=find(~crocks & rocks);
++
++mask(pos)=0;
+Index: ../trunk-jpl/src/m/contrib/morphological/aggregation.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/aggregation.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/aggregation.m	(revision 19960)
+@@ -0,0 +1,64 @@
++function [mask,varargout]=aggregation(mask,windowsize,threshhold,varargin)
++%AGGREGATION - aggregation of an image to a lower sized image
++% 
++%  mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background
++%  mask is first convoluted with a square matrix of size windowsize (where windowsize is an even number), 
++%       it is then filtered according to the threshhold value, and finally subsampled using 1/windowsize as 
++%       sample scaling. 
++%  x,y can be provided as optional arguments, as coordinates of the center points of the mask. aggregation will 
++%       then return subsampled x,y arguments in output.
++% 
++%  Usage:   mask2=aggregation(mask,7,7^2/2);
++%           [mask2,x2,y2]=aggregation(mask,7,7^2,x,y];
++%
++%  See also CLOSING, OPENING, DILATION, EROSION
++
++%check input arguments  %{{{
++%even windowsize
++if mod(windowsize,2)==0,
++	error('windowsize should be an even number');
++end
++
++%check on presence of varargin: 
++optional=0;
++if nargin>3,
++	if nargin~=5,
++		help aggregation;
++		error('wrong number of optional arguments specified');
++	else
++		optional=1;
++		x=varargin{1};
++		y=varargin{2};
++	end
++end
++
++%check on presence of varargout: 
++if optional,
++	if nargout~=3,
++		help aggregation;
++		error('wrong number of optional output arguments specified');
++	end
++end
++%}}}
++
++%convolve mask
++matrix=ones(windowsize,windowsize); 
++mask=filter2(matrix,mask,'same');
++
++%apply threshhold
++pos=find(mask>threshhold); 
++pos2=find(mask<=threshhold); 
++mask(pos)=1;
++mask(pos2)=0;
++
++%mask has been transformed into double format from the filter2  operation. Bring back to binary. 
++mask=logical(mask);
++
++%subsample: 
++s=size(mask);
++mask=mask(1:windowsize:s(1),1:windowsize:s(2));
++
++if optional,
++	varargout{1}=x(1:windowsize:s(2));
++	varargout{2}=y(1:windowsize:s(1));
++end
+Index: ../trunk-jpl/src/m/contrib/morphological/closing.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/closing.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/closing.m	(revision 19960)
+@@ -0,0 +1,5 @@
++function mask=closing(mask,neighboorhood)
++%closing algorithm using neighboorhood pixel neighboors.
++
++mask=dilation(mask,neighboorhood);
++mask=erosion(mask,neighboorhood);
+Index: ../trunk-jpl/src/m/contrib/morphological/erosion.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/erosion.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/erosion.m	(revision 19960)
+@@ -0,0 +1,26 @@
++function mask=erosion(mask,neighboorhood)
++%erosion algorithm using neighboorhood pixel neighboors.
++
++%convolve: 
++
++matrix=ones(3,3); 
++
++%4 neighboorhood: 
++%corners
++if neighboorhood==4,
++	matrix(1,1)=0;
++	matrix(1,3)=0;
++	matrix(3,1)=0;
++	matrix(3,3)=0;
++end
++
++%center
++matrix(2,2)=0;
++
++%convolve mask: 
++convol=filter2(matrix,mask,'same');
++
++pos=find(mask==1);
++pos2=find(convol(pos)<neighboorhood);
++
++mask(pos(pos2))=0;
+Index: ../trunk-jpl/src/m/contrib/morphological/opening.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/opening.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/opening.m	(revision 19960)
+@@ -0,0 +1,5 @@
++function mask=opening(mask,neighboorhood)
++%opening algorithm using neighboorhood pixel neighboors.
++
++mask=erosion(mask,neighboorhood);
++mask=dilation(mask,neighboorhood);
+Index: ../trunk-jpl/src/m/contrib/morphological/vectorialize.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/vectorialize.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/vectorialize.m	(revision 19960)
+@@ -0,0 +1,11 @@
++function contours=vectorialize(mask,connectivity);
++
++	vec=bwboundaries(mask,connectivity);
++
++	contours=struct([]);
++	for i=1:length(vec),
++		contours(end+1).x=vec{i}(:,2);
++		contours(end).y=vec{i}(:,1);
++		contours(end).density=1;
++	end
++	contours(1).name='';
+Index: ../trunk-jpl/src/m/contrib/morphological/dilation.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morphological/dilation.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morphological/dilation.m	(revision 19960)
+@@ -0,0 +1,25 @@
++function mask=dilation(mask,neighboorhood)
++%deletion algorithm using 4 pixel neighboors.
++
++%convolve: 
++
++matrix=ones(3,3); 
++
++%4 neighboorhood: 
++%corners
++if neighboorhood==4,
++	matrix(1,1)=0;
++	matrix(1,3)=0;
++	matrix(3,1)=0;
++	matrix(3,3)=0;
++end
++%center
++matrix(2,2)=0;
++
++%convolve mask: 
++convol=filter2(matrix,mask,'same');
++
++pos=find(mask==0);
++pos2=find(convol(pos)~=0);
++
++mask(pos(pos2))=1;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19960-19961.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19960-19961.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19960-19961.diff	(revision 20498)
@@ -0,0 +1,184 @@
+Index: ../trunk-jpl/bin/vilje.m
+===================================================================
+--- ../trunk-jpl/bin/vilje.m	(revision 0)
++++ ../trunk-jpl/bin/vilje.m	(revision 19961)
+@@ -0,0 +1,173 @@
++%PFE class definition
++%
++%   Usage:
++%      cluster=greenplanet();
++%      cluster=greenplanet('np',3);
++%      cluster=greenplanet('np',3,'login','username');
++
++classdef greenplanet
++    properties (SetAccess=public)  
++		 % {{{
++		 name          = 'vilje'
++		 login         = '';
++                 accountname    ='';
++		 numnodes      = 20;
++		 cpuspernode   = 8;
++		 port          = 8000;
++		 queue         = '';
++		 codepath      = '';
++		 executionpath = '';
++		 interactive   = 0;
++		 time          = 24*60;
++		 memory        = 2;
++	 end
++	 properties (SetAccess=private) 
++		 np=20*8;
++		 % }}}
++	 end
++	 methods
++		 function cluster=vilje(varargin) % {{{
++
++			 %initialize cluster using default settings if provided
++			 if (exist('vilje_settings')==2), vilje_settings; end
++
++			 %use provided options to change fields
++			 cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
++		 end
++		 %}}}
++		 function disp(cluster) % {{{
++			 %  display the object
++			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
++			 disp(sprintf('    name: %s',cluster.name));
++			 disp(sprintf('    login: %s',cluster.login));
++                         disp(sprintf('    accountname: %s',cluster.accountname));
++			 disp(sprintf('    port: %i',cluster.port));
++			 disp(sprintf('    numnodes: %i',cluster.numnodes));
++			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
++			 disp(sprintf('    np: %i',cluster.cpuspernode*cluster.numnodes));
++			 disp(sprintf('    queue: %s',cluster.queue));
++			 disp(sprintf('    codepath: %s',cluster.codepath));
++			 disp(sprintf('    executionpath: %s',cluster.executionpath));
++			 disp(sprintf('    interactive: %i',cluster.interactive));
++			 disp(sprintf('    time: %i',cluster.time));
++			 disp(sprintf('    memory: %i',cluster.memory));
++		 end
++		 %}}}
++		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
++
++			 available_queues={'c6145','default'};
++			 queue_requirements_time=[Inf Inf];
++			 queue_requirements_np=[80 80];
++
++			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++
++			 %Miscelaneous
++			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
++                         if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
++			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
++			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
++
++		 end
++		 %}}}
++		 function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++			 fprintf(fid,'#PBS -S /bin/bash\n');
++			 fprintf(fid,'#PBS -N %s\n',modelname);
++                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++                         fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
++			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
++			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,modelname);
++			 fprintf(fid,'mpiexec -np %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++		 end
++		 %}}}
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++			 fprintf(fid,'#PBS -S /bin/bash\n');
++			 fprintf(fid,'#PBS -N %s\n',modelname);
++			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
++			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
++			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
++			 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++
++			 %in interactive mode, create a run file, and errlog and outlog file
++			 if cluster.interactive,
++				 fid=fopen([modelname '.run'],'w');
++				 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++				 if ~io_gather, %concatenate the output files:
++					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++				 end
++				 fclose(fid);
++				 fid=fopen([modelname '.errlog'],'w');
++				 fclose(fid);
++				 fid=fopen([modelname '.outlog'],'w');
++				 fclose(fid);
++			 end
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
++			 %compress the files into one zip.
++			 compressstring=['tar -zcf ' dirname '.tar.gz '];
++			 for i=1:numel(filelist),
++				 compressstring = [compressstring ' ' filelist{i}];
++			 end
++			 if cluster.interactive,
++				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
++			 end
++			 system(compressstring);
++
++			 disp('uploading input file and queueing script');
++			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
++
++			 disp('launching solution sequence on remote cluster');
++			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
++		 end %}}}
++		 function Download(cluster,dirname,filelist)% {{{
++
++			 %copy files from cluster to current directory
++			 directory=[cluster.executionpath '/' dirname '/'];
++			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
++
++		 end %}}}
++	end
++end
+
+Property changes on: ../trunk-jpl/bin/vilje.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19961-19962.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19961-19962.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19961-19962.diff	(revision 20498)
@@ -0,0 +1,184 @@
+Index: ../trunk-jpl/src/m/classes/clusters/vilje.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 19962)
+@@ -0,0 +1,173 @@
++%PFE class definition
++%
++%   Usage:
++%      cluster=greenplanet();
++%      cluster=greenplanet('np',3);
++%      cluster=greenplanet('np',3,'login','username');
++
++classdef greenplanet
++    properties (SetAccess=public)  
++		 % {{{
++		 name          = 'vilje'
++		 login         = '';
++                 accountname    ='';
++		 numnodes      = 20;
++		 cpuspernode   = 8;
++		 port          = 8000;
++		 queue         = '';
++		 codepath      = '';
++		 executionpath = '';
++		 interactive   = 0;
++		 time          = 24*60;
++		 memory        = 2;
++	 end
++	 properties (SetAccess=private) 
++		 np=20*8;
++		 % }}}
++	 end
++	 methods
++		 function cluster=vilje(varargin) % {{{
++
++			 %initialize cluster using default settings if provided
++			 if (exist('vilje_settings')==2), vilje_settings; end
++
++			 %use provided options to change fields
++			 cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
++		 end
++		 %}}}
++		 function disp(cluster) % {{{
++			 %  display the object
++			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
++			 disp(sprintf('    name: %s',cluster.name));
++			 disp(sprintf('    login: %s',cluster.login));
++                         disp(sprintf('    accountname: %s',cluster.accountname));
++			 disp(sprintf('    port: %i',cluster.port));
++			 disp(sprintf('    numnodes: %i',cluster.numnodes));
++			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
++			 disp(sprintf('    np: %i',cluster.cpuspernode*cluster.numnodes));
++			 disp(sprintf('    queue: %s',cluster.queue));
++			 disp(sprintf('    codepath: %s',cluster.codepath));
++			 disp(sprintf('    executionpath: %s',cluster.executionpath));
++			 disp(sprintf('    interactive: %i',cluster.interactive));
++			 disp(sprintf('    time: %i',cluster.time));
++			 disp(sprintf('    memory: %i',cluster.memory));
++		 end
++		 %}}}
++		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
++
++			 available_queues={'c6145','default'};
++			 queue_requirements_time=[Inf Inf];
++			 queue_requirements_np=[80 80];
++
++			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++
++			 %Miscelaneous
++			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
++                         if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
++			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
++			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
++
++		 end
++		 %}}}
++		 function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++			 fprintf(fid,'#PBS -S /bin/bash\n');
++			 fprintf(fid,'#PBS -N %s\n',modelname);
++                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++                         fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
++			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
++			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,modelname);
++			 fprintf(fid,'mpiexec -np %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++		 end
++		 %}}}
++		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
++
++			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
++			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
++
++			 %compute number of processors
++			 cluster.np=cluster.numnodes*cluster.cpuspernode;
++
++			 %write queuing script 
++			 fid=fopen([modelname '.queue'],'w');
++			 fprintf(fid,'#PBS -S /bin/bash\n');
++			 fprintf(fid,'#PBS -N %s\n',modelname);
++			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
++			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
++			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
++			 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 if ~io_gather, %concatenate the output files:
++				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++			 end
++			 fclose(fid);
++
++			 %in interactive mode, create a run file, and errlog and outlog file
++			 if cluster.interactive,
++				 fid=fopen([modelname '.run'],'w');
++				 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++				 if ~io_gather, %concatenate the output files:
++					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
++				 end
++				 fclose(fid);
++				 fid=fopen([modelname '.errlog'],'w');
++				 fclose(fid);
++				 fid=fopen([modelname '.outlog'],'w');
++				 fclose(fid);
++			 end
++		 end %}}}
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
++			 %compress the files into one zip.
++			 compressstring=['tar -zcf ' dirname '.tar.gz '];
++			 for i=1:numel(filelist),
++				 compressstring = [compressstring ' ' filelist{i}];
++			 end
++			 if cluster.interactive,
++				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
++			 end
++			 system(compressstring);
++
++			 disp('uploading input file and queueing script');
++			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
++
++			 disp('launching solution sequence on remote cluster');
++			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
++		 end %}}}
++		 function Download(cluster,dirname,filelist)% {{{
++
++			 %copy files from cluster to current directory
++			 directory=[cluster.executionpath '/' dirname '/'];
++			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
++
++		 end %}}}
++	end
++end
+
+Property changes on: ../trunk-jpl/src/m/classes/clusters/vilje.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-19962-19963.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19962-19963.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19962-19963.diff	(revision 20498)
@@ -0,0 +1,178 @@
+Index: ../trunk-jpl/bin/vilje.m
+===================================================================
+--- ../trunk-jpl/bin/vilje.m	(revision 19962)
++++ ../trunk-jpl/bin/vilje.m	(revision 19963)
+@@ -1,173 +0,0 @@
+-%PFE class definition
+-%
+-%   Usage:
+-%      cluster=greenplanet();
+-%      cluster=greenplanet('np',3);
+-%      cluster=greenplanet('np',3,'login','username');
+-
+-classdef greenplanet
+-    properties (SetAccess=public)  
+-		 % {{{
+-		 name          = 'vilje'
+-		 login         = '';
+-                 accountname    ='';
+-		 numnodes      = 20;
+-		 cpuspernode   = 8;
+-		 port          = 8000;
+-		 queue         = '';
+-		 codepath      = '';
+-		 executionpath = '';
+-		 interactive   = 0;
+-		 time          = 24*60;
+-		 memory        = 2;
+-	 end
+-	 properties (SetAccess=private) 
+-		 np=20*8;
+-		 % }}}
+-	 end
+-	 methods
+-		 function cluster=vilje(varargin) % {{{
+-
+-			 %initialize cluster using default settings if provided
+-			 if (exist('vilje_settings')==2), vilje_settings; end
+-
+-			 %use provided options to change fields
+-			 cluster=AssignObjectFields(pairoptions(varargin{:}),cluster);
+-		 end
+-		 %}}}
+-		 function disp(cluster) % {{{
+-			 %  display the object
+-			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+-			 disp(sprintf('    name: %s',cluster.name));
+-			 disp(sprintf('    login: %s',cluster.login));
+-                         disp(sprintf('    accountname: %s',cluster.accountname));
+-			 disp(sprintf('    port: %i',cluster.port));
+-			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+-			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+-			 disp(sprintf('    np: %i',cluster.cpuspernode*cluster.numnodes));
+-			 disp(sprintf('    queue: %s',cluster.queue));
+-			 disp(sprintf('    codepath: %s',cluster.codepath));
+-			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+-			 disp(sprintf('    interactive: %i',cluster.interactive));
+-			 disp(sprintf('    time: %i',cluster.time));
+-			 disp(sprintf('    memory: %i',cluster.memory));
+-		 end
+-		 %}}}
+-		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+-
+-			 available_queues={'c6145','default'};
+-			 queue_requirements_time=[Inf Inf];
+-			 queue_requirements_np=[80 80];
+-
+-			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
+-
+-			 %Miscelaneous
+-			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
+-                         if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
+-			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
+-			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
+-
+-		 end
+-		 %}}}
+-		 function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
+-
+-			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+-			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+-
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+-			 %write queuing script 
+-			 fid=fopen([modelname '.queue'],'w');
+-			 fprintf(fid,'#PBS -S /bin/bash\n');
+-			 fprintf(fid,'#PBS -N %s\n',modelname);
+-                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-                         fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+-			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+-%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+-			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+-			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+-			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+-			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,modelname);
+-			 fprintf(fid,'mpiexec -np %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
+-			 if ~io_gather, %concatenate the output files:
+-				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+-			 end
+-			 fclose(fid);
+-		 end
+-		 %}}}
+-		 function BuildQueueScript(cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
+-
+-			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+-			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+-
+-			 %compute number of processors
+-			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+-
+-			 %write queuing script 
+-			 fid=fopen([modelname '.queue'],'w');
+-			 fprintf(fid,'#PBS -S /bin/bash\n');
+-			 fprintf(fid,'#PBS -N %s\n',modelname);
+-			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+-			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+-%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+-			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+-			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+-			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+-			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
+-			 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+-			 if ~io_gather, %concatenate the output files:
+-				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+-			 end
+-			 fclose(fid);
+-
+-			 %in interactive mode, create a run file, and errlog and outlog file
+-			 if cluster.interactive,
+-				 fid=fopen([modelname '.run'],'w');
+-				 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+-				 if ~io_gather, %concatenate the output files:
+-					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+-				 end
+-				 fclose(fid);
+-				 fid=fopen([modelname '.errlog'],'w');
+-				 fclose(fid);
+-				 fid=fopen([modelname '.outlog'],'w');
+-				 fclose(fid);
+-			 end
+-		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+-
+-			 %compress the files into one zip.
+-			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+-			 for i=1:numel(filelist),
+-				 compressstring = [compressstring ' ' filelist{i}];
+-			 end
+-			 if cluster.interactive,
+-				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
+-			 end
+-			 system(compressstring);
+-
+-			 disp('uploading input file and queueing script');
+-			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+-
+-			 disp('launching solution sequence on remote cluster');
+-			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
+-			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+-		 end %}}}
+-		 function Download(cluster,dirname,filelist)% {{{
+-
+-			 %copy files from cluster to current directory
+-			 directory=[cluster.executionpath '/' dirname '/'];
+-			 issmscpin(cluster.name,cluster.login,cluster.port,directory,filelist);
+-
+-		 end %}}}
+-	end
+-end
Index: /issm/oecreview/Archive/19101-20495/ISSM-19963-19964.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19963-19964.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19963-19964.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/m/plot/gauge.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/gauge.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/gauge.js	(revision 19964)
+@@ -0,0 +1,43 @@
++function gauge(){
++	//Convert arguments to options
++	var args = Array.prototype.slice.call(arguments);
++	var  options = new pairoptions(args.slice(3,args.length));
++	
++	gaugecanvas=options.getfieldvalue('gaugecanvas','gauge');
++	gaugetext=options.getfieldvalue('gaugetext','gauge-text');
++	gaugediv=options.getfieldvalue('gaugediv','slr-controldiv');
++	value=options.getfieldvalue('value',0);
++	min=options.getfieldvalue('min',0);
++	max=options.getfieldvalue('max',22);
++	colors=options.getfieldvalue('colors',[[0.0, "#000000" ], [0.50, "#880000"], [1.0, "#ff0000"]]);
++	
++	$('<canvas id="'+gaugecanvas+'" width=80px height=50%></canvas>').appendTo('#'+gaugediv);
++	$('<div id="'+gaugetext+'" class="gaugetext"></div>').appendTo('#'+gaugediv);
++	
++	var opts = {
++		lines: 12, // The number of lines to draw
++		angle: 0, // The length of each line
++		lineWidth: 0.38, // The line thickness
++		pointer: {
++			length: 0, // The radius of the inner circle
++			strokeWidth: 0, // The rotation offset
++			color: '#000000' // Fill color
++		},
++		limitMax: 'false',   // If true, the pointer will not go past the end of the gauge
++		colorStart: '#6F6EA0',   // Colors
++		colorStop: '#C0C0DB',    // just experiment with them
++		strokeColor: '#EEEEEE',   // to see which ones work best for you
++		percentColors: colors,
++		generateGradient: true
++	};
++	var target = document.getElementById(gaugecanvas)
++	var gauge = new Gauge(target).setOptions(opts);
++	gauge.setTextField(document.getElementById(gaugetext));
++	gauge.minValue = min;
++	gauge.maxValue = max;
++	gauge.animationSpeed = 1;
++	gauge.set(1); // set once to initialize?
++	gauge.set(value); // set actual value
++	
++	return gauge;
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19964-19965.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19964-19965.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19964-19965.diff	(revision 20498)
@@ -0,0 +1,646 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19964)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19965)
+@@ -5,138 +5,11 @@
+ 	//      applyoptions(md,data,options)
+ 	//
+ 	//   See also: PLOTMODEL, PARSE_OPTIONS
+-	/* //{{{
+-	//fontsize
+-	fontsize=options.getfieldvalue('fontsize',14);
+-
+-	//fontweight
+-	fontweight=options.getfieldvalue('fontweight','normal');
+-
+-	//title
+-	if exist(options,'title')
+-		titlevalue=options.getfieldvalue('title');
+-		if iscell(titlevalue),
+-			title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
+-		else
+-			if ~isnan(titlevalue),
+-				title(titlevalue,'FontSize',fontsize,'FontWeight',fontweight);
+-			end
+-		end
+-	end
+-
+-	//xlabel, ylabel and zlabel
+-	if exist(options,'xlabel');
+-		xlabel(options.getfieldvalue('xlabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-	end
+-	if exist(options,'ylabel');
+-		ylabel(options.getfieldvalue('ylabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-	end
+-	if exist(options,'zlabel');
+-		zlabel(options.getfieldvalue('zlabel'),'FontSize',fontsize,'FontWeight',fontweight);
+-	end
+-
+-	//xticks, yticks and zticks
+-	if exist(options,'xtick'), set(gca,'XTick',options.getfieldvalue('xtick')); end
+-	if exist(options,'ytick'), set(gca,'YTick',options.getfieldvalue('ytick')); end
+-	if exist(options,'ztick'), set(gca,'ZTick',options.getfieldvalue('ztick')); end
+-
+-	//view 
+-	if dimension(md.mesh)==3 & ~exist(options,'layer'),
+-		view(options.getfieldvalue('view',3));
+-	else
+-		view(options.getfieldvalue('view',2));
+-	end
+-
+-	//axis
+-	set(gca,'FontSize',options.getfieldvalue('axisfontsize',fontsize));;
+-	if exist(options,'axis')
+-		eval(['axis ' options.getfieldvalue('axis')]);
+-	else
+-		if strcmp(domaintype(md.mesh),'3D'),
+-			if ~exist(options,'layer'),
+-				axis auto tight
+-			else
+-				axis tight equal
+-			end
+-		elseif strcmp(domaintype(md.mesh),'2Dvertical'),
+-			axis auto tight
+-		elseif strcmp(domaintype(md.mesh),'3Dsurface'),
+-			axis auto tight
+-
+-		elseif strcmp(domaintype(md.mesh),'2Dhorizontal'),
+-			axis tight equal;
+-		else
+-			error('type of domain not supported');
+-		end
+-	end
+-
+-	//box
+-	if exist(options,'box')
+-		eval(['box ' options.getfieldvalue('box')]);
+-	end
+-
+-	//xlim, ylim and zlim
+-	if exist(options,'xlim');
+-		xlim(options.getfieldvalue('xlim'));
+-	end
+-	if exist(options,'ylim');
+-		ylim(options.getfieldvalue('ylim'));
+-	end
+-	if exist(options,'zlim');
+-		zlim(options.getfieldvalue('zlim'));
+-	end
+-
+-	//latlon
+-	//Must be done here (before xlim and ylim??) so that it uses the same xlim and ylim as plot_overlay
+-	//these are changed by axis that follows
+-	if ~strcmpi(options.getfieldvalue('latlon','off'),'off')
+-		latlonoverlay(md,options);
+-	end
+-
+-	//Basinzoom
+-	if exist(options,'basin');
+-		basinzoom(options);
+-	end
+-
+-	//ShowBasins
+-	if strcmpi(options.getfieldvalue('showbasins','off'),'on')
+-		showbasins(options);
+-	end
+-	*/ //}}}
+-	/* ///{{{
+-	//shading
+-	if exist(options,'shading'),
+-		shading(options.getfieldvalue('shading'));
+-	end
+-
+-	//grid
+-	if exist(options,'grid'),
+-		if strcmpi(options.getfieldvalue('grid'),'on'),
+-			grid on;
+-		end
+-	end
+-
+-	//colormap
+-	c = getcolormap(options);
+-	h = colormap(c);
+-
+-	//wrapping
+-	if exist(options,'wrapping'),
+-		if ~exist(options,'colormap'),
+-			h=jet;
+-		end
+-		colormap(repmat(h,options.getfieldvalue('wrapping',1),1));
+-	end
+-	*/ //}}}
+-	//colorbar
++	
++	//colorbar {{{
+ 	if (options.exist('colorbar')) {
+ 		if (options.getfieldvalue('colorbar')==1) {
+-			if (options.exist('colorbarcornerposition')) {
+-				//c=colorbar(options.getfieldvalue('colorbarcornerposition'),'peer',gca);
+-			} else { 
+-			}
+-			
+-			//Handle movie data
++			//Handle movie data {{{
+ 			var	dataresults = processdata(md,data,options);
+ 			var	data2 = dataresults[0]; 
+ 			var	datatype = dataresults[1];
+@@ -149,8 +22,8 @@
+ 				});
+ 				data = data[node["movieFrame"]].slice(0,-1);
+ 				console.log(data);
+-			}
+-			
++			} //}}}
++			//Variable options initialization {{{
+ 			var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+ 			var canvassize = options.getfieldvalue('canvassize',480);
+ 			var cheight;
+@@ -159,11 +32,12 @@
+ 			var color;
+ 			var ccontext,ccanvas,ccanvasid,ccanvashtml;
+ 			var colorbarorientiation = options.getfieldvalue('colorbarorientation','vertical');
+-			//define offsets for correct font drawing on canvas
+ 			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+ 			var cwidthoffset = options.getfieldvalue('colorbarfontsize',16)*3;
+-			
+-			//Set colorbar lables
++			var y;
++			var x;
++			//}}}
++			//Set colorbar lables {{{
+ 			var labels = [];
+ 			var cdivisions = options.getfieldvalue('colorbarnticks',6);
+ 			var caxisdelta = caxis[1] - caxis[0];
+@@ -182,11 +56,9 @@
+ 				for (var i = cdivisions; i >= 0; i--) {
+ 					labels[i] = (caxisdelta*(cdivisions-i)/cdivisions+caxis[0]).toPrecision(precision);
+ 				}
+-			}
+-			var y;
+-			var x;
+-			
+-			if (colorbarorientiation=='vertical') {
++			} //}}}
++			//Handle orientation {{{
++			if (colorbarorientiation=='vertical') { //{{{
+ 				cheight = options.getfieldvalue('colorbarheight',0.95)*canvassize;
+ 				cwidth = options.getfieldvalue('colorbarwidth',canvassize/20);
+ 				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+@@ -258,8 +130,8 @@
+ 					ccontext.textBaseline='bottom';
+ 					ccontext.fillText(options.getfieldvalue('colorbartitle'),0,cheightoffset);
+ 				}
+-			}
+-			else { //colorbarorientiation=='horizontal'
++			} //}}}
++			else { //colorbarorientiation=='horizontal' {{{
+ 				cheight = options.getfieldvalue('colorbarheight',canvassize/20);
+ 				cwidth = options.getfieldvalue('colorbarwidth',0.95)*canvassize;
+ 				ccanvasid = options.getfieldvalue('colorbarcanvasid',options.getfieldvalue('canvasid')+'_colorbar');
+@@ -331,80 +203,12 @@
+ 					ccontext.textBaseline='bottom';
+ 					ccontext.fillText(options.getfieldvalue('colorbartitle'),cwidth/2+cwidthoffset,cheightoffset);
+ 				}
+-			}
+-			/* //{{{
+-			if exist(options,'wrapping')
+-				lim=get(c,'Ylim');
+-				lim=[lim(1) lim(1)+(lim(2)-lim(1))/options.getfieldvalue('wrapping')];
+-				set(c,'Ylim',lim);
+-			}
+-			if exist(options,'colorbarpos'),
+-				set(c,'Position',options.getfieldvalue('colorbarpos'));
+-			}
+-			if exist(options,'log'),
+-				nlab=length(get(c,'YTick'));
+-				logvalue=options.getfieldvalue('log');
+-
+-				scaleminmax=caxis;
+-				Min=min(scaleminmax);
+-				Max=max(scaleminmax);
+-				set(c,'YLim',[Min Max]); // set colorbar limits
+-				set(c,'YTick',linspace(Min,Max,nlab));     // set tick mark locations
+-
+-				labels = cell(1,nlab);
+-				tick_vals = linspace(Min,Max,nlab);
+-				tick_vals = exp(log(logvalue)*tick_vals);
+-				warning off MATLAB:log:logOfZero;
+-				for i = 1:nlab
+-					labels{i} = sprintf('//-3.4g',round_ice(tick_vals(i),2));
+-					//labels{i} = sprintf('//-.4g',round_ice(tick_vals(i),2));
+-				}
+-				warning on MATLAB:log:logOfZero;
+-				set(c,'YTickLabel',labels);
+-			} 
+-			if exist(options,'cbYLim'); 
+-				set(c,'YLim',options.getfieldvalue('cbYLim'));
+-			}
+-			if exist(options,'colorbartitle'),
+-				set(get(c,'title'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbartitle'),...
+-					'Color',options.getfieldvalue('FontColor','k'));
+-			}
+-			if exist(options,'colorbarYLabel'),
+-				set(get(c,'Ylabel'),'FontSize',options.getfieldvalue('colorbarfontsize',fontsize),'String',options.getfieldvalue('colorbarYLabel'),...
+-					'Color',options.getfieldvalue('FontColor','k'));
+-			}
+-			if exist(options,'colorbarwidth'),
+-				posaxes=get(gca,'Position');
+-				alpha=options.getfieldvalue('colorbarwidth',1);
+-				position=get(c,'Position');
+-				dx=position(3);
+-				newdx=dx*alpha;
+-				position(1)=position(1)+(dx-newdx)/2;
+-				position(3)=newdx;
+-				set(c,'Position',position);
+-				set(gca,'Position',posaxes);
+-			}
+-			if exist(options,'colorbarheight'),
+-				posaxes=get(gca,'Position');
+-				alpha=options.getfieldvalue('colorbarheight',1);
+-				position=get(c,'Position');
+-				dy=position(4);
+-				newdy=dy*alpha;
+-				position(2)=position(2)+(dy-newdy)/2;
+-				position(4)=newdy;
+-				set(c,'Position',position);
+-				set(gca,'Position',posaxes);
+-			}
+-			if (options.exist('cbYTickLabel')) {
+-			}
+-			*/ //}}}
+-		}
+-	} else {
+-		//do nothing
+-
++			} //}}}
++			//}}}
++		} 
+ 	}
+-	//Make texture canvas
+-	
++	//}}}
++	//Make texture canvas //{{{
+ 	var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL,tgradient;
+ 	tcanvasid = 'texturecanvas';
+ 	var tcanvashtml = document.getElementById(tcanvasid);
+@@ -431,267 +235,81 @@
+ 	tcontext.fillRect(0,0,256,256);
+ 	tURL = tcanvashtml.toDataURL();
+ 	node["texture"] = initTexture(gl,tURL);
+-	/* //{{{
+-	//area
+-	if exist(options,'area'),
+-		antzoom(options.getfieldvalue('area'));
+-	end
++	//}}}
++	//expdisp contours
++	if (options.exist('expdisp')) {
++		canvas.nodes["expdisp"] = Node(gl,options);
++		var node = canvas.nodes["expdisp"];
++		
++		//declare variables:  {{{
++		var vertices = [];
++		var indices = [];
++		var colors = [];
++		var rgbcolor = [];
++		var xmin,xmax;
++		var ymin,ymax;
++		var zmin,zmax;
++		var scale;
++		
++		//Process data and model
++		var x = options.getfieldvalue('expdisp')['x'];
++		var y = options.getfieldvalue('expdisp')['y'];
++		var z = Array.apply(null, Array(x.length)).map(Number.prototype.valueOf,0);
++		
++		if (options.getfieldvalue('expdisp')['z']) {
++			z = options.getfieldvalue('expdisp')['z'];
++		}
++		//}}}
+ 
+-	//expdisp
+-	if exist(options,'expdisp'),
+-		filename=(options.getfieldvalue('expdisp'));
+-		style=(options.getfieldvalue('expstyle'));
+-		linewidth=(options.getfieldvalue('linewidth',1));
+-		for i=1:length(options.getfieldvalue('expdisp')),
+-			filenamei=filename{i};
+-			stylei=style{i};
+-			if length(linewidth)==1,
+-				linewidthi=linewidth;
+-			else
+-				linewidthi=linewidth{i};
+-			end
+-			expdisp(filenamei,'linestyle',stylei,'linewidthi',linewidthi,'multiplier',options.getfieldvalue('unit',1));
+-		end
+-	end
++		//Compute coordinates and data range:
++		var modelxlim = [ArrayMin(x),ArrayMax(x)];
++		var modelylim = [ArrayMin(y),ArrayMax(y)];
++		var modelzlim = [ArrayMin(z),ArrayMax(z)];
++		var xlim = options.getfieldvalue('xlim',modelxlim);
++		var ylim = options.getfieldvalue('ylim',modelylim);
++		var zlim = options.getfieldvalue('zlim',modelzlim);
++		xmin = xlim[0];
++		xmax = xlim[1];
++		ymin = ylim[0];
++		ymax = ylim[1];
++		zmin = zlim[0];
++		zmax = zlim[1];
+ 
+-	//text (default value is empty, not NaN...)
+-	if exist(options,'text');
+-		textstring=options.getfieldvalue('text');
+-		textweight=options.getfieldvalue('textweight','b');
+-		textsize=options.getfieldvalue('textsize');
+-		textcolor=options.getfieldvalue('textcolor');
+-		textposition=options.getfieldvalue('textposition');
+-		textrotation=options.getfieldvalue('textrotation');
+-		for i=1:length(options.getfieldvalue('text'));
+-			textstringi=textstring{i};
+-			textweighti=textweight{i};
+-			textsizei=textsize{i};
+-			textcolori=textcolor{i};
+-			textpositioni=textposition{i};
+-			textrotationi=textrotation{i};
+-			h=text(textpositioni(1),textpositioni(2),10,textstringi,'FontSize',textsizei,'FontWeight',textweighti,'Color',textcolori,'Rotation',textrotationi);
+-			set(h,'Clipping','on'); //prevent text from appearing outside of the box
+-		end
+-	end
++		//Compute scaling: 
++		var scale = 1 / (xmax - xmin);
++		node["shaderName"] = "colored";
++		node["shader"] = gl["shaders"][node["shaderName"]]["program"];
++		node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++		node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++		node["modelMatrix"] = recalculateModelMatrix(node);
++		node["drawMode"] = gl.LINE_LOOP;
++		node["drawOrder"] = 0;
++		node["useIndexBuffer"] = false;
++		node["disableDepthTest"] = true;
++					
++		//some defaults:
++		colors.itemSize = 4;
+ 
+-	//north arrow
+-	if exist(options,'northarrow'),
+-		northarrow(options.getfieldvalue('northarrow'));
+-	end
++		//retrieve some options
++		var linewidth=options.getfieldvalue('linewidth',1);
++		var edgecolor=options.getfieldvalue('edgecolor','black'); //RGBCOLOR?
+ 
+-	//curved arrow
+-	if exist(options,'curvedarrow'),
+-		curvedoptions=options.getfieldvalue('curvedarrow');
+-		curvedarrow(curvedoptions{:});
+-	end
++		vertices.itemSize = 3;
++		for(var i = 0; i < x.length; i++){
++			vertices[vertices.length] = x[i];
++			vertices[vertices.length] = y[i];
++			vertices[vertices.length] = z[i];
+ 
+-	//Scale ruler
+-	if exist(options,'scaleruler'),
+-		scaleruler(options);
+-	end
++			//edgecolor
++			rgbcolor = [0.0, 0.0, 0.0];
++			colors[colors.length] = rgbcolor[0];
++			colors[colors.length] = rgbcolor[1];
++			colors[colors.length] = rgbcolor[2];
++			colors[colors.length] = 1.0;
++		}
+ 
+-	//streamliness
+-	if exist(options,'streamlines'),
+-		plot_streamlines(md,options);
+-	end
+-
+-	//contours
+-	if exist(options,'contourlevels'),
+-		plot_contour(md,data,options);
+-	end
+-
+-	//YTickLabel
+-	if exist(options,'yticklabel'),
+-		set(gca,'YTickLabel',options.getfieldvalue('YTickLabel'));
+-	end
+-
+-	//XTickLabel
+-	if exist(options,'xticklabel'),
+-		set(gca,'XTickLabel',options.getfieldvalue('XTickLabel'));
+-	end
+-
+-	//xtick
+-	if exist(options,'xtick'),
+-		set(gca,'xtick',options.getfieldvalue('xtick'));
+-	end
+-
+-	//ytick
+-	if exist(options,'ytick'),
+-		set(gca,'ytick',options.getfieldvalue('ytick'));
+-	end
+-
+-	//Axis positions
+-	if exist(options,'offsetaxispos'),
+-		offset=options.getfieldvalue('offsetaxispos');
+-		P=get(gca,'pos');
+-		P(1)=P(1)+offset(1);
+-		P(2)=P(2)+offset(2);
+-		P(3)=P(3)+offset(3);
+-		P(3)=P(4)+offset(4);
+-		set(gca,'pos',P);
+-	end
+-	if exist(options,'axispos'),
+-		Axis=options.getfieldvalue('axispos');
+-		hold on
+-		set(gca,'pos',Axis);
+-	end
+-
+-	//axes position
+-	if exist(options,'axesPosition')
+-		set(gca,'Position',options.getfieldvalue('axesPosition'));
+-	end
+-
+-	//showregion
+-	if strcmpi(options.getfieldvalue('showregion','off'),'on'),
+-		//Keep pointer of main axis
+-		maingca=gca;
+-		//get inset relative position (x,y,width,height)
+-		insetpos=options.getfieldvalue('insetpos',[0.02 0.70 0.18 0.18]);
+-		//get current plos position
+-		cplotpos=get(maingca,'pos');
+-		//compute inset position
+-		PosInset=[cplotpos(1)+insetpos(1)*cplotpos(3),cplotpos(2)+insetpos(2)*cplotpos(4), insetpos(3)*cplotpos(3), insetpos(4)*cplotpos(4)];
+-		axes('pos',PosInset);
+-		axis equal off
+-		//box off
+-		if md.mesh.epsg==3413,
+-			A=expread('/u/astrid-r1b/ModelData/Exp/GreenlandBoxFront.exp');
+-			[A.x A.y]=ll2xy(A.x,A.y,+1,45,70);
+-			A.x = A.x(1:30:end);
+-			A.y = A.y(1:30:end);
+-		elseif md.mesh.epsg==3031,
+-			A=expread('/u/astrid-r1b/ModelData/Exp/Antarctica.exp');
+-		else
+-			error('applyoptions error message: md.mesh.epsg not defined');
+-		end
+-		offset=3*10^4;
+-		Ax=[min(A.x)-offset max(A.x)+offset];
+-		Ay=[min(A.y)-offset max(A.y)+offset];
+-		//if we are zooming on a basin, don't take the mesh for the boundaries!
+-		if exist(options,'basin'),
+-			[mdx mdy]=basinzoom(options);
+-		else
+-			mdx=[min(md.mesh.x)-offset max(md.mesh.x)+offset];
+-			mdy=[min(md.mesh.y)-offset max(md.mesh.y)+offset];
+-		end
+-		line(A.x,A.y,ones(size(A.x)),'color','b');
+-		patch([Ax(1)  Ax(2)  Ax(2)  Ax(1) Ax(1)],[Ay(1)  Ay(1)  Ay(2)  Ay(2) Ay(1)],[1 1 1],'EdgeColor',[0 0 0],'LineWidth',1,'FaceLighting','none')
+-		patch([mdx(1) mdx(2) mdx(2) mdx(1)],[mdy(1) mdy(1) mdy(2) mdy(2)],ones(4,1),'EdgeColor',[0 0 0],'FaceColor','r','FaceAlpha',0.5)
+-		colorbar('off');
+-		//back to main gca
+-		set(gcf,'CurrentAxes',maingca)
+-	end
+-
+-	//flag edges of a partition
+-	if exist(options,'partitionedges')
+-		[xsegments ysegments]=flagedges(md.mesh.elements,md.mesh.x,md.mesh.y,md.qmu.partition);
+-		xsegments=xsegments*options.getfieldvalue('unit',1);
+-		ysegments=ysegments*options.getfieldvalue('unit',1);
+-		color=options.getfieldvalue('partitionedgescolor','r-');
+-		linewidth=options.getfieldvalue('linewidth',1);
+-		hold on;
+-		for i=1:length(xsegments),
+-			plot(xsegments(i,:),ysegments(i,:),color,'LineWidth',linewidth);
+-		end
+-	end
+-
+-	//Scatter
+-	if exist(options,'scatter')
+-		data=options.getfieldvalue('scatter');
+-		hold on
+-		plot_scatter(data(:,1),data(:,2),data(:,3),options);
+-	end
+-
+-	//backgroundcolor
+-	set(gca,'color',options.getfieldvalue('backgroundcolor','none'));
+-
+-	//lighting
+-	if strcmpi(options.getfieldvalue('light','off'),'on'),
+-		set(gca,'FaceLighting','gouraud','FaceColor','interp','AmbientStrength',0.5);
+-		light('Position',[0 0.1 0.1],'Style','infinite');
+-	end
+-
+-	//cloud of points: 
+-	if exist(options,'cloud'),
+-		field=options.getfieldvalue('cloud');
+-		x=field(:,1);
+-		y=field(:,2);
+-		//unit multiplier:
+-		if exist(options,'unit'),
+-			unit=options.getfieldvalue('unit');
+-			x=x*unit;
+-			y=y*unit;
+-		end
+-		hold on,p=plot(x,y,'k.');
+-		markersize=options.getfieldvalue('markersize',12);
+-		color=options.getfieldvalue('cloudcolor','k');
+-		set(p,'Color',color);
+-		set(p,'MarkerSize',markersize);
+-	end
+-
+-	//========================//
+-	//OK VERY LAST STEP: INSET|
+-	//========================//
+-	if exist(options,'inset'),
+-
+-		//Keep pointer of main axis
+-		maingca=gca;
+-		//get inset relative position (x,y,width,height)
+-		insetpos=options.getfieldvalue('insetpos',[0.56 0.55 0.35 0.35]);
+-		//get current plot position
+-		cplotpos=get(gca,'pos');
+-
+-		X1=options.getfieldvalue('insetx',xlim);
+-		Y1=options.getfieldvalue('insety',ylim);
+-
+-		for i=1:length(options.getfieldvalue('insetx')),
+-			if length(insetpos)==4,
+-				insetposi=insetpos;
+-			else
+-				insetposi=insetpos{i};
+-			end
+-			PosInseti=[cplotpos(1)+insetposi(1)*cplotpos(3),cplotpos(2)+insetposi(2)*cplotpos(4), insetposi(3)*cplotpos(3), insetposi(4)*cplotpos(4)];
+-			//show pos
+-			if iscell(X1),
+-				X1i=X1{i};
+-			else
+-				X1i=X1;
+-			end
+-			if iscell(Y1),
+-				Y1i=Y1{i};
+-			else
+-				Y1i=Y1;
+-			end
+-			if strcmpi(options.getfieldvalue('showinset','off'),'on')
+-				line(X1i([1 2 2 1 1]),Y1i([1 1 2 2 1]),zeros(1,5),'Color','k','LineWidth',2);
+-			end
+-
+-			//Get current figure
+-			ax1=gca;
+-
+-			//plot inset
+-			axes('pos',PosInseti);
+-			copyobj(get(ax1,'children'),gca);
+-			patch('Faces',[1 2 3 4 1],'Vertices',[X1i([1 2 2 1])' Y1i([1 1 2 2])'],'FaceColor','None','EdgeColor','k','LineWidth',2);
+-
+-			//apply options
+-			options=removefield(options,'text',0);
+-			options=removefield(options,'title',0);
+-			options=removefield(options,'xlabel',0);
+-			options=removefield(options,'ylabel',0);
+-			options=removefield(options,'inset',0);
+-			options=removefield(options,'offsetaxispos',0);
+-			options=removefield(options,'showregion',0);
+-			options=changefieldvalue(options,'colorbar',0);
+-			options=changefieldvalue(options,'latlon','off');
+-			options=changefieldvalue(options,'axis','equal off');
+-			options=changefieldvalue(options,'xlim',X1i);
+-			options=changefieldvalue(options,'ylim',Y1i);
+-			applyoptions(md,data,options);
+-
+-			//back to main gca
+-			set(gcf,'CurrentAxes',maingca)
+-		end
+-	end
+-	*/ //}}}
++		/*Initalize buffers: */
++		node["arrays"] = [vertices, colors];
++		node["buffers"] = initBuffers(gl, node["arrays"]);
++	}
+ }
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19964)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19965)
+@@ -426,6 +426,9 @@
+ 		gl.bindTexture(gl.TEXTURE_2D, node["texture"]);
+ 		gl.uniform1i(node["shader"]["uColorSampler"], 0);	
+ 	}
++	if (node["disableDepthTest"]) {
++		gl.disable(gl.DEPTH_TEST);
++	}
+ 	gl.blendFunc (gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+ 	if  (node["useIndexBuffer"] == true) {
+ 		gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, node["buffers"][node["buffers"].length - 1]);
+@@ -434,6 +437,7 @@
+ 	else {
+ 		gl.drawArrays(node["drawMode"], 0, node["buffers"][0].numItems);
+ 	}	
++	gl.enable(gl.DEPTH_TEST);
+ } //}}}
+ function bindAttributes(gl,shaderProgram,bufferArray) { //{{{
+ 	gl.useProgram(shaderProgram);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19965-19966.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19965-19966.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19965-19966.diff	(revision 20498)
@@ -0,0 +1,168 @@
+Index: ../trunk-jpl/test/NightlyRun/test3005.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3005.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3005.py	(revision 19966)
+@@ -13,7 +13,6 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3019.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3019.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3019.py	(revision 19966)
+@@ -17,7 +17,6 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ md.autodiff.isautodiff=True
+ md.verbose.autodiff=True
+Index: ../trunk-jpl/test/NightlyRun/test3006.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3006.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3006.py	(revision 19966)
+@@ -17,7 +17,6 @@
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.masstransport.stabilization=3
+ md.masstransport.spcthickness=md.geometry.thickness
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3001.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3001.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3001.py	(revision 19966)
+@@ -14,7 +14,6 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.stressbalance.requested_outputs=['default','DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy']
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 19966)
+@@ -24,7 +24,6 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.masstransport.requested_outputs=['IceVolume']
+ md.verbose=verbose('autodiff',True)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ #setup autodiff parameters
+ index=1 #this is the scalar component we are checking against
+Index: ../trunk-jpl/test/NightlyRun/test3010.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3010.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3010.py	(revision 19966)
+@@ -13,7 +13,6 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.transient.requested_outputs=['IceVolume']
+ 
+ md.autodiff.isautodiff=True
+Index: ../trunk-jpl/test/NightlyRun/test3119.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3119.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3119.py	(revision 19966)
+@@ -16,7 +16,6 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ md.autodiff.isautodiff=True
+ md.verbose.autodiff=True
+Index: ../trunk-jpl/test/NightlyRun/test3007.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3007.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3007.py	(revision 19966)
+@@ -14,7 +14,6 @@
+ md=setflowequation(md,'SSA','all')
+ md.extrude(5,3.)
+ md.cluster=generic('name',oshostname(),'np',1)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3002.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3002.py	(revision 19966)
+@@ -15,7 +15,6 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.autodiff.isautodiff=True
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test3020.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3020.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3020.py	(revision 19966)
+@@ -25,7 +25,6 @@
+ md.transient.requested_outputs=['IceVolume','MaxVel']
+ md.verbose=verbose('autodiff',True)
+ md.stressbalance.restol=0.000001
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ #setup autodiff parameters
+ index=1 #this is the scalar component we are checking against
+Index: ../trunk-jpl/test/NightlyRun/test3008.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3008.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3008.py	(revision 19966)
+@@ -15,7 +15,6 @@
+ md=setflowequation(md,'SSA','all')
+ md.timestepping.time_step=0
+ md.cluster=generic('name',oshostname(),'np',1)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,ThermalSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3003.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3003.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3003.py	(revision 19966)
+@@ -15,7 +15,6 @@
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.stressbalance.requested_outputs=['default','StressTensorxx','StressTensoryy','StressTensorzz','StressTensorxy','StressTensorxz','StressTensoryz']
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3009.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3009.py	(revision 19966)
+@@ -19,7 +19,6 @@
+ md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,TransientSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3004.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3004.py	(revision 19965)
++++ ../trunk-jpl/test/NightlyRun/test3004.py	(revision 19966)
+@@ -14,7 +14,6 @@
+ md.extrude(3,2.)
+ md=setflowequation(md,'FS','all')
+ md.cluster=generic('name',oshostname(),'np',1)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19966-19967.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19966-19967.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19966-19967.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/m/classes/toolkits.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.py	(revision 19966)
++++ ../trunk-jpl/src/m/classes/toolkits.py	(revision 19967)
+@@ -5,6 +5,8 @@
+ from fielddisplay import fielddisplay
+ from EnumDefinitions import *
+ from checkfield import checkfield
++from issmmumpssolver import issmmumpssolver
++from issmgslsolver import issmgslsolver
+ 
+ class toolkits(object):
+ 	"""
+@@ -93,7 +95,7 @@
+ 			fid.write("\n+%s\n" % analysis)    #append a + to recognize it's an analysis enum
+ 
+ 			#now, write options
+-			for optionname,optionvalue in options.iteritems():
++			for optionname,optionvalue in options:
+ 
+ 				if not optionvalue:
+ 					#this option has only one argument
+Index: ../trunk-jpl/src/m/classes/autodiff.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.py	(revision 19966)
++++ ../trunk-jpl/src/m/classes/autodiff.py	(revision 19967)
+@@ -5,6 +5,7 @@
+ from EnumDefinitions import *
+ from checkfield import checkfield
+ from WriteData import WriteData
++from MatlabFuncs import *
+ 
+ class autodiff(object):
+ 	"""
+@@ -66,7 +67,7 @@
+ 		md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)
+-		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)
++		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536)
+ 
+ 		#Driver value:
+ 		md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19967-19968.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19967-19968.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19967-19968.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19967)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19968)
+@@ -19,7 +19,7 @@
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+-PYTHON_TEST=0
++PYTHON_TEST=1
+ 
+ #execution path used for parallel runs
+ EXECUTION_PATH=$ISSM_DIR/execution
+@@ -77,4 +77,4 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
+-PYTHON_NROPTIONS=""
++PYTHON_NROPTIONS="--benchmark='adolc'"
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 19967)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 19968)
+@@ -28,7 +28,7 @@
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+-PYTHON_TEST=0
++PYTHON_TEST=1
+ 
+ #execution path used for parallel runs
+ EXECUTION_PATH=$ISSM_DIR/execution
+@@ -87,4 +87,4 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
+-PYTHON_NROPTIONS=""
++PYTHON_NROPTIONS="--benchmark='adolc' -i 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19968-19969.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19968-19969.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19968-19969.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/m/classes/toolkits.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.py	(revision 19968)
++++ ../trunk-jpl/src/m/classes/toolkits.py	(revision 19969)
+@@ -5,8 +5,6 @@
+ from fielddisplay import fielddisplay
+ from EnumDefinitions import *
+ from checkfield import checkfield
+-from issmmumpssolver import issmmumpssolver
+-from issmgslsolver import issmgslsolver
+ 
+ class toolkits(object):
+ 	"""
+@@ -95,7 +93,7 @@
+ 			fid.write("\n+%s\n" % analysis)    #append a + to recognize it's an analysis enum
+ 
+ 			#now, write options
+-			for optionname,optionvalue in options:
++			for optionname,optionvalue in options.iteritems():
+ 
+ 				if not optionvalue:
+ 					#this option has only one argument
Index: /issm/oecreview/Archive/19101-20495/ISSM-19969-19970.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19969-19970.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19969-19970.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/autodiff.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.py	(revision 19969)
++++ ../trunk-jpl/src/m/classes/autodiff.py	(revision 19970)
+@@ -5,7 +5,6 @@
+ from EnumDefinitions import *
+ from checkfield import checkfield
+ from WriteData import WriteData
+-from MatlabFuncs import *
+ 
+ class autodiff(object):
+ 	"""
+@@ -67,7 +66,7 @@
+ 		md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)
+-		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536)
++		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)
+ 
+ 		#Driver value:
+ 		md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19970-19971.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19970-19971.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19970-19971.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/autodiff.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.py	(revision 19970)
++++ ../trunk-jpl/src/m/classes/autodiff.py	(revision 19971)
+@@ -5,6 +5,7 @@
+ from EnumDefinitions import *
+ from checkfield import checkfield
+ from WriteData import WriteData
++from MatlabFuncs import *
+ 
+ class autodiff(object):
+ 	"""
+@@ -66,7 +67,7 @@
+ 		md = checkfield(md,'fieldname','autodiff.cbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.tbufsize','>=',524288)
+ 		md = checkfield(md,'fieldname','autodiff.gcTriggerRatio','>=',2.0)
+-		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',2000000)
++		md = checkfield(md,'fieldname','autodiff.gcTriggerMaxSize','>=',65536)
+ 
+ 		#Driver value:
+ 		md = checkfield(md,'fieldname','autodiff.driver','values',['fos_forward','fov_forward','fov_forward_all','fos_reverse','fov_reverse','fov_reverse_all'])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19971-19972.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19971-19972.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19971-19972.diff	(revision 20498)
@@ -0,0 +1,99 @@
+Index: ../trunk-jpl/externalpackages/javascript/src/hammer.min.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/hammer.min.js	(revision 19971)
++++ ../trunk-jpl/externalpackages/javascript/src/hammer.min.js	(revision 19972)
+@@ -4,4 +4,3 @@
+  * Copyright (c) 2014 Jorik Tangelder;
+  * Licensed under the MIT license */
+ !function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");
+-//# sourceMappingURL=hammer.min.map
+\ No newline at end of file
+Index: ../trunk-jpl/externalpackages/javascript/src/jsonfn.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/jsonfn.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/jsonfn.js	(revision 19972)
+@@ -0,0 +1,84 @@
++/**
++* JSONfn - javascript (both node.js and browser) plugin to stringify, 
++*          parse and clone objects with Functions, Regexp and Date.
++*  
++* Version - 0.60.00
++* Copyright (c) 2012 - 2015 Vadim Kiryukhin
++* vkiryukhin @ gmail.com
++* http://www.eslinstructor.net/jsonfn/
++* 
++* Licensed under the MIT license ( http://www.opensource.org/licenses/mit-license.php )
++*
++*   USAGE:
++*     browser:
++*         JSONfn.stringify(obj);
++*         JSONfn.parse(str[, date2obj]);
++*         JSONfn.clone(obj[, date2obj]);
++*
++*     nodejs:
++*       var JSONfn = require('path/to/json-fn');
++*       JSONfn.stringify(obj);
++*       JSONfn.parse(str[, date2obj]);
++*       JSONfn.clone(obj[, date2obj]);
++*
++*
++*     @obj      -  Object;
++*     @str      -  String, which is returned by JSONfn.stringify() function; 
++*     @date2obj - Boolean (optional); if true, date string in ISO8061 format
++*                 is converted into a Date object; otherwise, it is left as a String.
++*/
++
++"use strict";
++
++(function (exports) {
++
++  exports.stringify = function (obj) {
++
++    return JSON.stringify(obj, function (key, value) {
++      if (value instanceof Function || typeof value == 'function') {
++        return value.toString();
++      }
++      if (value instanceof RegExp) {
++        return '_PxEgEr_' + value;
++      }
++      return value;
++    });
++  };
++
++  exports.parse = function (str, date2obj) {
++
++    var iso8061 = date2obj ? /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/ : false;
++
++    return JSON.parse(str, function (key, value) {
++      var prefix;
++
++      if (typeof value != 'string') {
++        return value;
++      }
++      if (value.length < 8) {
++        return value;
++      }
++
++      prefix = value.substring(0, 8);
++
++      if (iso8061 && value.match(iso8061)) {
++        return new Date(value);
++      }
++      if (prefix === 'function') {
++        return eval('(' + value + ')');
++      }
++      if (prefix === '_PxEgEr_') {
++        return eval(value.slice(8));
++      }
++
++      return value;
++    });
++  };
++
++  exports.clone = function (obj, date2obj) {
++    return exports.parse(exports.stringify(obj), date2obj);
++  };
++
++}(typeof exports === 'undefined' ? (window.JSONfn = {}) : exports));
++
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-19972-19973.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19972-19973.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19972-19973.diff	(revision 20498)
@@ -0,0 +1,7 @@
+Index: ../trunk-jpl/externalpackages/javascript/src/gauge.min.js
+===================================================================
+--- ../trunk-jpl/externalpackages/javascript/src/gauge.min.js	(revision 0)
++++ ../trunk-jpl/externalpackages/javascript/src/gauge.min.js	(revision 19973)
+@@ -0,0 +1 @@
++(function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q={}.hasOwnProperty,r=function(a,b){function c(){this.constructor=a}for(var d in b)q.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};!function(){var a,b,c,d,e,f,g;for(g=["ms","moz","webkit","o"],c=0,e=g.length;e>c&&(f=g[c],!window.requestAnimationFrame);c++)window.requestAnimationFrame=window[f+"RequestAnimationFrame"],window.cancelAnimationFrame=window[f+"CancelAnimationFrame"]||window[f+"CancelRequestAnimationFrame"];return a=null,d=0,b={},requestAnimationFrame?window.cancelAnimationFrame?void 0:(a=window.requestAnimationFrame,window.requestAnimationFrame=function(c,e){var f;return f=++d,a(function(){return b[f]?void 0:c()},e),f},window.cancelAnimationFrame=function(a){return b[a]=!0}):(window.requestAnimationFrame=function(a,b){var c,d,e,f;return c=(new Date).getTime(),f=Math.max(0,16-(c-e)),d=window.setTimeout(function(){return a(c+f)},f),e=c+f,d},window.cancelAnimationFrame=function(a){return clearTimeout(a)})}(),String.prototype.hashCode=function(){var a,b,c,d,e;if(b=0,0===this.length)return b;for(c=d=0,e=this.length;e>=0?e>d:d>e;c=e>=0?++d:--d)a=this.charCodeAt(c),b=(b<<5)-b+a,b&=b;return b},o=function(a){var b,c;for(b=Math.floor(a/3600),c=Math.floor((a-3600*b)/60),a-=3600*b+60*c,a+="",c+="";c.length<2;)c="0"+c;for(;a.length<2;)a="0"+a;return b=b?b+":":"",b+c+":"+a},m=function(a){return k(a.toFixed(0))},p=function(a,b){var c,d;for(c in b)q.call(b,c)&&(d=b[c],a[c]=d);return a},n=function(a,b){var c,d,e;d={};for(c in a)q.call(a,c)&&(e=a[c],d[c]=e);for(c in b)q.call(b,c)&&(e=b[c],d[c]=e);return d},k=function(a){var b,c,d,e;for(a+="",c=a.split("."),d=c[0],e="",c.length>1&&(e="."+c[1]),b=/(\d+)(\d{3})/;b.test(d);)d=d.replace(b,"$1,$2");return d+e},l=function(a){return"#"===a.charAt(0)?a.substring(1,7):a},j=function(){function a(a,b){null==a&&(a=!0),this.clear=null!=b?b:!0,a&&AnimationUpdater.add(this)}return a.prototype.animationSpeed=32,a.prototype.update=function(a){var b;return null==a&&(a=!1),a||this.displayedValue!==this.value?(this.ctx&&this.clear&&this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),b=this.value-this.displayedValue,Math.abs(b/this.animationSpeed)<=.001?this.displayedValue=this.value:this.displayedValue=this.displayedValue+b/this.animationSpeed,this.render(),!0):!1},a}(),e=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return r(b,a),b.prototype.displayScale=1,b.prototype.setTextField=function(a){return this.textField=a instanceof i?a:new i(a)},b.prototype.setMinValue=function(a,b){var c,d,e,f,g;if(this.minValue=a,null==b&&(b=!0),b){for(this.displayedValue=this.minValue,f=this.gp||[],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.displayedValue=this.minValue);return g}},b.prototype.setOptions=function(a){return null==a&&(a=null),this.options=n(this.options,a),this.textField&&(this.textField.el.style.fontSize=a.fontSize+"px"),this.options.angle>.5&&(this.gauge.options.angle=.5),this.configDisplayScale(),this},b.prototype.configDisplayScale=function(){var a,b,c,d,e;return d=this.displayScale,this.options.highDpiSupport===!1?delete this.displayScale:(b=window.devicePixelRatio||1,a=this.ctx.webkitBackingStorePixelRatio||this.ctx.mozBackingStorePixelRatio||this.ctx.msBackingStorePixelRatio||this.ctx.oBackingStorePixelRatio||this.ctx.backingStorePixelRatio||1,this.displayScale=b/a),this.displayScale!==d&&(e=this.canvas.G__width||this.canvas.width,c=this.canvas.G__height||this.canvas.height,this.canvas.width=e*this.displayScale,this.canvas.height=c*this.displayScale,this.canvas.style.width=e+"px",this.canvas.style.height=c+"px",this.canvas.G__width=e,this.canvas.G__height=c),this},b}(j),i=function(){function a(a){this.el=a}return a.prototype.render=function(a){return this.el.innerHTML=m(a.displayedValue)},a}(),a=function(a){function b(a,b){this.elem=a,this.text=null!=b?b:!1,this.value=1*this.elem.innerHTML,this.text&&(this.value=0)}return r(b,a),b.prototype.displayedValue=0,b.prototype.value=0,b.prototype.setVal=function(a){return this.value=1*a},b.prototype.render=function(){var a;return a=this.text?o(this.displayedValue.toFixed(0)):k(m(this.displayedValue)),this.elem.innerHTML=a},b}(j),b={create:function(b){var c,d,e,f;for(f=[],d=0,e=b.length;e>d;d++)c=b[d],f.push(new a(c));return f}},h=function(a){function b(a){this.gauge=a,this.ctx=this.gauge.ctx,this.canvas=this.gauge.canvas,b.__super__.constructor.call(this,!1,!1),this.setOptions()}return r(b,a),b.prototype.displayedValue=0,b.prototype.value=0,b.prototype.options={strokeWidth:.035,length:.1,color:"#000000"},b.prototype.setOptions=function(a){return null==a&&(a=null),p(this.options,a),this.length=this.canvas.height*this.options.length,this.strokeWidth=this.canvas.height*this.options.strokeWidth,this.maxValue=this.gauge.maxValue,this.minValue=this.gauge.minValue,this.animationSpeed=this.gauge.animationSpeed,this.options.angle=this.gauge.options.angle},b.prototype.render=function(){var a,b,c,d,e,f,g,h,i;return a=this.gauge.getAngle.call(this,this.displayedValue),b=this.canvas.width/2,c=.9*this.canvas.height,h=Math.round(b+this.length*Math.cos(a)),i=Math.round(c+this.length*Math.sin(a)),f=Math.round(b+this.strokeWidth*Math.cos(a-Math.PI/2)),g=Math.round(c+this.strokeWidth*Math.sin(a-Math.PI/2)),d=Math.round(b+this.strokeWidth*Math.cos(a+Math.PI/2)),e=Math.round(c+this.strokeWidth*Math.sin(a+Math.PI/2)),this.ctx.fillStyle=this.options.color,this.ctx.beginPath(),this.ctx.arc(b,c,this.strokeWidth,0,2*Math.PI,!0),this.ctx.fill(),this.ctx.beginPath(),this.ctx.moveTo(f,g),this.ctx.lineTo(h,i),this.ctx.lineTo(d,e),this.ctx.fill()},b}(j),c=function(){function a(a){this.elem=a}return a.prototype.updateValues=function(a){return this.value=a[0],this.maxValue=a[1],this.avgValue=a[2],this.render()},a.prototype.render=function(){var a,b;return this.textField&&this.textField.text(m(this.value)),0===this.maxValue&&(this.maxValue=2*this.avgValue),b=this.value/this.maxValue*100,a=this.avgValue/this.maxValue*100,$(".bar-value",this.elem).css({width:b+"%"}),$(".typical-value",this.elem).css({width:a+"%"})},a}(),g=function(a){function b(a){this.canvas=a,b.__super__.constructor.call(this),this.percentColors=null,"undefined"!=typeof G_vmlCanvasManager&&(this.canvas=window.G_vmlCanvasManager.initElement(this.canvas)),this.ctx=this.canvas.getContext("2d"),this.gp=[new h(this)],this.setOptions(),this.render()}return r(b,a),b.prototype.elem=null,b.prototype.value=[20],b.prototype.maxValue=80,b.prototype.minValue=0,b.prototype.displayedAngle=0,b.prototype.displayedValue=0,b.prototype.lineWidth=40,b.prototype.paddingBottom=.1,b.prototype.percentColors=null,b.prototype.options={colorStart:"#6fadcf",colorStop:void 0,gradientType:0,strokeColor:"#e0e0e0",pointer:{length:.8,strokeWidth:.035},angle:.15,lineWidth:.44,fontSize:40,limitMax:!1},b.prototype.setOptions=function(a){var c,d,e,f;for(null==a&&(a=null),b.__super__.setOptions.call(this,a),this.configPercentColors(),this.lineWidth=this.canvas.height*(1-this.paddingBottom)*this.options.lineWidth,this.radius=this.canvas.height*(1-this.paddingBottom)-this.lineWidth,this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.render(),f=this.gp,d=0,e=f.length;e>d;d++)c=f[d],c.setOptions(this.options.pointer),c.render();return this},b.prototype.configPercentColors=function(){var a,b,c,d,e,f,g;if(this.percentColors=null,void 0!==this.options.percentColors){for(this.percentColors=new Array,f=[],c=d=0,e=this.options.percentColors.length-1;e>=0?e>=d:d>=e;c=e>=0?++d:--d)g=parseInt(l(this.options.percentColors[c][1]).substring(0,2),16),b=parseInt(l(this.options.percentColors[c][1]).substring(2,4),16),a=parseInt(l(this.options.percentColors[c][1]).substring(4,6),16),f.push(this.percentColors[c]={pct:this.options.percentColors[c][0],color:{r:g,g:b,b:a}});return f}},b.prototype.set=function(a){var b,c,d,e,f,g,i;if(a instanceof Array||(a=[a]),a.length>this.gp.length)for(b=c=0,g=a.length-this.gp.length;g>=0?g>c:c>g;b=g>=0?++c:--c)this.gp.push(new h(this));for(b=0,f=!1,d=0,e=a.length;e>d;d++)i=a[d],i>this.maxValue&&(this.maxValue=1.1*this.value,f=!0),this.gp[b].value=i,this.gp[b++].setOptions({maxValue:this.maxValue,angle:this.options.angle});return this.value=a[a.length-1],f&&this.options.limitMax?void 0:AnimationUpdater.run()},b.prototype.getAngle=function(a){return(1+this.options.angle)*Math.PI+(a-this.minValue)/(this.maxValue-this.minValue)*(1-2*this.options.angle)*Math.PI},b.prototype.getColorForPercentage=function(a,b){var c,d,e,f,g,h,i;if(0===a)c=this.percentColors[0].color;else for(c=this.percentColors[this.percentColors.length-1].color,e=f=0,h=this.percentColors.length-1;h>=0?h>=f:f>=h;e=h>=0?++f:--f)if(a<=this.percentColors[e].pct){b===!0?(i=this.percentColors[e-1],d=this.percentColors[e],g=(a-i.pct)/(d.pct-i.pct),c={r:Math.floor(i.color.r*(1-g)+d.color.r*g),g:Math.floor(i.color.g*(1-g)+d.color.g*g),b:Math.floor(i.color.b*(1-g)+d.color.b*g)}):c=this.percentColors[e].color;break}return"rgb("+[c.r,c.g,c.b].join(",")+")"},b.prototype.getColorForValue=function(a,b){var c;return c=(a-this.minValue)/(this.maxValue-this.minValue),this.getColorForPercentage(c,b)},b.prototype.render=function(){var a,b,c,d,e,f,g,h,i;for(i=this.canvas.width/2,d=this.canvas.height*(1-this.paddingBottom),a=this.getAngle(this.displayedValue),this.textField&&this.textField.render(this),this.ctx.lineCap="butt",void 0!==this.options.customFillStyle?b=this.options.customFillStyle(this):null!==this.percentColors?b=this.getColorForValue(this.displayedValue,!0):void 0!==this.options.colorStop?(b=0===this.options.gradientType?this.ctx.createRadialGradient(i,d,9,i,d,70):this.ctx.createLinearGradient(0,0,i,0),b.addColorStop(0,this.options.colorStart),b.addColorStop(1,this.options.colorStop)):b=this.options.colorStart,this.ctx.strokeStyle=b,this.ctx.beginPath(),this.ctx.arc(i,d,this.radius,(1+this.options.angle)*Math.PI,a,!1),this.ctx.lineWidth=this.lineWidth,this.ctx.stroke(),this.ctx.strokeStyle=this.options.strokeColor,this.ctx.beginPath(),this.ctx.arc(i,d,this.radius,a,(2-this.options.angle)*Math.PI,!1),this.ctx.stroke(),g=this.gp,h=[],e=0,f=g.length;f>e;e++)c=g[e],h.push(c.update(!0));return h},b}(e),d=function(a){function b(a){this.canvas=a,b.__super__.constructor.call(this),"undefined"!=typeof G_vmlCanvasManager&&(this.canvas=window.G_vmlCanvasManager.initElement(this.canvas)),this.ctx=this.canvas.getContext("2d"),this.setOptions(),this.render()}return r(b,a),b.prototype.lineWidth=15,b.prototype.displayedValue=0,b.prototype.value=33,b.prototype.maxValue=80,b.prototype.minValue=0,b.prototype.options={lineWidth:.1,colorStart:"#6f6ea0",colorStop:"#c0c0db",strokeColor:"#eeeeee",shadowColor:"#d5d5d5",angle:.35},b.prototype.getAngle=function(a){return(1-this.options.angle)*Math.PI+(a-this.minValue)/(this.maxValue-this.minValue)*(2+this.options.angle-(1-this.options.angle))*Math.PI},b.prototype.setOptions=function(a){return null==a&&(a=null),b.__super__.setOptions.call(this,a),this.lineWidth=this.canvas.height*this.options.lineWidth,this.radius=this.canvas.height/2-this.lineWidth/2,this},b.prototype.set=function(a){return this.value=a,this.value>this.maxValue&&(this.maxValue=1.1*this.value),AnimationUpdater.run()},b.prototype.render=function(){var a,b,c,d,e,f;return a=this.getAngle(this.displayedValue),f=this.canvas.width/2,c=this.canvas.height/2,this.textField&&this.textField.render(this),b=this.ctx.createRadialGradient(f,c,39,f,c,70),b.addColorStop(0,this.options.colorStart),b.addColorStop(1,this.options.colorStop),d=this.radius-this.lineWidth/2,e=this.radius+this.lineWidth/2,this.ctx.strokeStyle=this.options.strokeColor,this.ctx.beginPath(),this.ctx.arc(f,c,this.radius,(1-this.options.angle)*Math.PI,(2+this.options.angle)*Math.PI,!1),this.ctx.lineWidth=this.lineWidth,this.ctx.lineCap="round",this.ctx.stroke(),this.ctx.strokeStyle=b,this.ctx.beginPath(),this.ctx.arc(f,c,this.radius,(1-this.options.angle)*Math.PI,a,!1),this.ctx.stroke()},b}(e),f=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return r(b,a),b.prototype.strokeGradient=function(a,b,c,d){var e;return e=this.ctx.createRadialGradient(a,b,c,a,b,d),e.addColorStop(0,this.options.shadowColor),e.addColorStop(.12,this.options._orgStrokeColor),e.addColorStop(.88,this.options._orgStrokeColor),e.addColorStop(1,this.options.shadowColor),e},b.prototype.setOptions=function(a){var c,d,e,f;return null==a&&(a=null),b.__super__.setOptions.call(this,a),f=this.canvas.width/2,c=this.canvas.height/2,d=this.radius-this.lineWidth/2,e=this.radius+this.lineWidth/2,this.options._orgStrokeColor=this.options.strokeColor,this.options.strokeColor=this.strokeGradient(f,c,d,e),this},b}(d),window.AnimationUpdater={elements:[],animId:null,addAll:function(a){var b,c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(AnimationUpdater.elements.push(b));return e},add:function(a){return AnimationUpdater.elements.push(a)},run:function(){var a,b,c,d,e;for(a=!0,e=AnimationUpdater.elements,c=0,d=e.length;d>c;c++)b=e[c],b.update()&&(a=!1);return a?cancelAnimationFrame(AnimationUpdater.animId):AnimationUpdater.animId=requestAnimationFrame(AnimationUpdater.run)}},"function"==typeof window.define&&null!=window.define.amd?define(function(){return{Gauge:g,Donut:f,BaseDonut:d,TextRenderer:i}}):"undefined"!=typeof module&&null!=module.exports?module.exports={Gauge:g,Donut:f,BaseDonut:d,TextRenderer:i}:(window.Gauge=g,window.Donut=f,window.BaseDonut=d,window.TextRenderer=i)}).call(this);
+\ No newline at end of file
Index: /issm/oecreview/Archive/19101-20495/ISSM-19973-19974.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19973-19974.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19973-19974.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19973)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19974)
+@@ -13,6 +13,8 @@
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+ 				--with-matlab-dir=$MATLAB_DIR \
++				--with-python-dir=/usr\
++				--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+ 				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+ #MATLAB path
+ MATLAB_PATH="/usr/local/MATLAB/R2015a"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19974-19975.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19974-19975.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19974-19975.diff	(revision 20498)
@@ -0,0 +1,41 @@
+Index: ../trunk-jpl/src/m/plot/gauge.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/gauge.js	(revision 19974)
++++ ../trunk-jpl/src/m/plot/gauge.js	(revision 19975)
+@@ -1,15 +1,16 @@
+ function gauge(){
+ 	//Convert arguments to options
+ 	var args = Array.prototype.slice.call(arguments);
+-	var  options = new pairoptions(args.slice(3,args.length));
+-	
++	var options = new pairoptions(args);
++
+ 	gaugecanvas=options.getfieldvalue('gaugecanvas','gauge');
+ 	gaugetext=options.getfieldvalue('gaugetext','gauge-text');
+ 	gaugediv=options.getfieldvalue('gaugediv','slr-controldiv');
+-	value=options.getfieldvalue('value',0);
++	gaugevalue=options.getfieldvalue('value',0);
+ 	min=options.getfieldvalue('min',0);
+ 	max=options.getfieldvalue('max',22);
+ 	colors=options.getfieldvalue('colors',[[0.0, "#000000" ], [0.50, "#880000"], [1.0, "#ff0000"]]);
++	label=options.getfieldvalue('label','');
+ 	
+ 	$('<canvas id="'+gaugecanvas+'" width=80px height=50%></canvas>').appendTo('#'+gaugediv);
+ 	$('<div id="'+gaugetext+'" class="gaugetext"></div>').appendTo('#'+gaugediv);
+@@ -33,11 +34,15 @@
+ 	var target = document.getElementById(gaugecanvas)
+ 	var gauge = new Gauge(target).setOptions(opts);
+ 	gauge.setTextField(document.getElementById(gaugetext));
++	gauge.label = label;
++	gauge.textField.render = function(gauge) {
++      return this.el.innerHTML = gauge.displayedValue.toFixed(0) + ' ' + gauge.label;
++    };
+ 	gauge.minValue = min;
+ 	gauge.maxValue = max;
+ 	gauge.animationSpeed = 1;
+ 	gauge.set(1); // set once to initialize?
+-	gauge.set(value); // set actual value
++	gauge.set(gaugevalue); // set actual value
+ 	
+ 	return gauge;
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19975-19976.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19975-19976.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19975-19976.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19975)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 19976)
+@@ -79,4 +79,4 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
+-PYTHON_NROPTIONS="--benchmark='adolc'"
++PYTHON_NROPTIONS="--benchmark=adolc"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19976-19977.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19976-19977.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19976-19977.diff	(revision 20498)
@@ -0,0 +1,109 @@
+Index: ../trunk-jpl/src/c/toolkits/objects/Vector.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/objects/Vector.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/objects/Vector.h	(revision 19977)
+@@ -280,6 +280,16 @@
+ 
+ 		}
+ 		/*}}}*/
++		void Shift(doubletype shift){_assert_(this);/*{{{*/
++
++			if(type==PetscVecType){
++				#ifdef _HAVE_PETSC_
++				this->pvector->Shift(shift);
++				#endif
++			}
++			else this->ivector->Shift(shift);
++		}
++		/*}}}*/
+ 		void Copy(Vector* to){_assert_(this);/*{{{*/
+ 
+ 			if(type==PetscVecType){
+Index: ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h	(revision 19977)
+@@ -41,6 +41,7 @@
+ 		virtual void AXPY(IssmAbsVec* X, doubletype a)=0;
+ 		virtual void AYPX(IssmAbsVec* X, doubletype a)=0;
+ 		virtual doubletype* ToMPISerial(void)=0;
++		virtual void Shift(doubletype shift)=0;
+ 		virtual void Copy(IssmAbsVec* to)=0;
+ 		virtual doubletype Norm(NormMode mode)=0;
+ 		virtual void Scale(doubletype scale_factor)=0;
+Index: ../trunk-jpl/src/c/toolkits/issm/IssmVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/IssmVec.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/issm/IssmVec.h	(revision 19977)
+@@ -179,6 +179,10 @@
+ 			return vector->ToMPISerial();
+ 		}
+ 		/*}}}*/
++		void Shift(doubletype shift){/*{{{*/
++			vector->Shift(shift);
++		}
++		/*}}}*/
+ 		void Copy(IssmVec* to){/*{{{*/
+ 			vector->Copy(to->vector);
+ 		}
+Index: ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h	(revision 19977)
+@@ -395,6 +395,10 @@
+ 
+ 		}
+ 		/*}}}*/
++		void Shift(doubletype shift){/*{{{*/
++			for(int i=0;i<this->m;i++)this->vector[i]+=shift;
++		}
++		/*}}}*/
+ 		void Copy(IssmAbsVec<doubletype>* toin){/*{{{*/
+ 
+ 			int i;
+Index: ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h	(revision 19977)
+@@ -198,6 +198,12 @@
+ 
+ 		}
+ 		/*}}}*/
++		void Shift(doubletype shift){/*{{{*/
++
++			for(int i=0;i<this->M;i++)this->vector[i]+=shift;
++
++		}
++		/*}}}*/
+ 		void Copy(IssmAbsVec<doubletype>* toin){/*{{{*/
+ 
+ 			int i;
+Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h	(revision 19977)
+@@ -49,6 +49,7 @@
+ 		void        AXPY(PetscVec* X, IssmDouble a);
+ 		void        AYPX(PetscVec* X, IssmDouble a);
+ 		IssmDouble* ToMPISerial(void);
++		void        Shift(IssmDouble shift);
+ 		void        Copy(PetscVec* to);
+ 		IssmDouble  Norm(NormMode norm_type);
+ 		IssmDouble  Max(void);
+Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp	(revision 19976)
++++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp	(revision 19977)
+@@ -162,6 +162,12 @@
+ 
+ }
+ /*}}}*/
++void PetscVec::Shift(IssmDouble shift){/*{{{*/
++
++	if(this->vector) VecShift(this->vector,shift);
++
++}
++/*}}}*/
+ void PetscVec::Copy(PetscVec* to){/*{{{*/
+ 
+ 	if(this->vector) VecCopy(this->vector,to->vector);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19977-19978.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19977-19978.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19977-19978.diff	(revision 20498)
@@ -0,0 +1,2203 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19977)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19978)
+@@ -197,6 +197,7 @@
+ 	InversionVyObsEnum,
+ 	InversionVzObsEnum,
+ 	MaskIceLevelsetEnum,
++	MaskOceanLevelsetEnum,
+ 	MaterialsBetaEnum,
+ 	MaterialsHeatcapacityEnum,
+ 	MaterialsLatentheatEnum,
+@@ -259,6 +260,7 @@
+ 	MaterialsLithosphereDensityEnum,
+ 	MaterialsMantleShearModulusEnum,
+ 	MaterialsMantleDensityEnum,
++	MaterialsEarthDensityEnum,
+ 	MeshAverageVertexConnectivityEnum,
+ 	MeshElements2dEnum,
+ 	MeshElementsEnum,
+@@ -275,6 +277,9 @@
+ 	MeshXEnum,
+ 	MeshYEnum,
+ 	MeshZEnum,
++	MeshLatEnum,
++	MeshLongEnum,
++	MeshREnum,
+ 	MeshElementtypeEnum,
+ 	MeshSegmentsEnum,
+ 	DomainTypeEnum,
+@@ -282,6 +287,7 @@
+ 	Domain2DhorizontalEnum,
+ 	Domain2DverticalEnum,
+ 	Domain3DEnum,
++	Domain3DsurfaceEnum,
+ 	MiscellaneousNameEnum, //FIXME: only used by qmu, should not be marshalled (already in queueing script)
+ 	MasstransportHydrostaticAdjustmentEnum,
+ 	MasstransportIsfreesurfaceEnum,
+@@ -1012,6 +1018,20 @@
+ 	LevelsetfunctionSlopeYEnum,
+ 	LevelsetfunctionPicardEnum,
+ 	/*}}}*/
++	/*Sea Level Rise*/
++	SealevelriseSolutionEnum,
++	SealevelriseAnalysisEnum,
++	SealevelriseSEnum,
++	SealevelriseDeltathicknessEnum,
++	SealevelriseMaxiterEnum,
++	SealevelriseReltolEnum,
++	SealevelriseAbstolEnum,
++	SealevelriseLoveHEnum,
++	SealevelriseLoveKEnum,
++	SealevelriseRigidEnum,
++	SealevelriseElasticEnum,
++	SealevelriseEustaticEnum,
++	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19977)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19978)
+@@ -203,6 +203,7 @@
+ 		case InversionVyObsEnum : return "InversionVyObs";
+ 		case InversionVzObsEnum : return "InversionVzObs";
+ 		case MaskIceLevelsetEnum : return "MaskIceLevelset";
++		case MaskOceanLevelsetEnum : return "MaskOceanLevelset";
+ 		case MaterialsBetaEnum : return "MaterialsBeta";
+ 		case MaterialsHeatcapacityEnum : return "MaterialsHeatcapacity";
+ 		case MaterialsLatentheatEnum : return "MaterialsLatentheat";
+@@ -265,6 +266,7 @@
+ 		case MaterialsLithosphereDensityEnum : return "MaterialsLithosphereDensity";
+ 		case MaterialsMantleShearModulusEnum : return "MaterialsMantleShearModulus";
+ 		case MaterialsMantleDensityEnum : return "MaterialsMantleDensity";
++		case MaterialsEarthDensityEnum : return "MaterialsEarthDensity";
+ 		case MeshAverageVertexConnectivityEnum : return "MeshAverageVertexConnectivity";
+ 		case MeshElements2dEnum : return "MeshElements2d";
+ 		case MeshElementsEnum : return "MeshElements";
+@@ -281,6 +283,9 @@
+ 		case MeshXEnum : return "MeshX";
+ 		case MeshYEnum : return "MeshY";
+ 		case MeshZEnum : return "MeshZ";
++		case MeshLatEnum : return "MeshLat";
++		case MeshLongEnum : return "MeshLong";
++		case MeshREnum : return "MeshR";
+ 		case MeshElementtypeEnum : return "MeshElementtype";
+ 		case MeshSegmentsEnum : return "MeshSegments";
+ 		case DomainTypeEnum : return "DomainType";
+@@ -288,6 +293,7 @@
+ 		case Domain2DhorizontalEnum : return "Domain2Dhorizontal";
+ 		case Domain2DverticalEnum : return "Domain2Dvertical";
+ 		case Domain3DEnum : return "Domain3D";
++		case Domain3DsurfaceEnum : return "Domain3Dsurface";
+ 		case MiscellaneousNameEnum : return "MiscellaneousName";
+ 		case MasstransportHydrostaticAdjustmentEnum : return "MasstransportHydrostaticAdjustment";
+ 		case MasstransportIsfreesurfaceEnum : return "MasstransportIsfreesurface";
+@@ -967,6 +973,18 @@
+ 		case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX";
+ 		case LevelsetfunctionSlopeYEnum : return "LevelsetfunctionSlopeY";
+ 		case LevelsetfunctionPicardEnum : return "LevelsetfunctionPicard";
++		case SealevelriseSolutionEnum : return "SealevelriseSolution";
++		case SealevelriseAnalysisEnum : return "SealevelriseAnalysis";
++		case SealevelriseSEnum : return "SealevelriseS";
++		case SealevelriseDeltathicknessEnum : return "SealevelriseDeltathickness";
++		case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
++		case SealevelriseReltolEnum : return "SealevelriseReltol";
++		case SealevelriseAbstolEnum : return "SealevelriseAbstol";
++		case SealevelriseLoveHEnum : return "SealevelriseLoveH";
++		case SealevelriseLoveKEnum : return "SealevelriseLoveK";
++		case SealevelriseRigidEnum : return "SealevelriseRigid";
++		case SealevelriseElasticEnum : return "SealevelriseElastic";
++		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19977)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19978)
+@@ -206,6 +206,7 @@
+ 	      else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
+ 	      else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
+ 	      else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
++	      else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;
+ 	      else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
+ 	      else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
+ 	      else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"StrainRateperpendicular")==0) return StrainRateperpendicularEnum;
+ 	      else if (strcmp(name,"StrainRateeffective")==0) return StrainRateeffectiveEnum;
+ 	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+-	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
++	      if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
++	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+ 	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+ 	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
+ 	      else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
+@@ -271,6 +272,7 @@
+ 	      else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum;
+ 	      else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
+ 	      else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
++	      else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
+ 	      else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
+ 	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
+ 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
+@@ -287,6 +289,9 @@
+ 	      else if (strcmp(name,"MeshX")==0) return MeshXEnum;
+ 	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
+ 	      else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
++	      else if (strcmp(name,"MeshLat")==0) return MeshLatEnum;
++	      else if (strcmp(name,"MeshLong")==0) return MeshLongEnum;
++	      else if (strcmp(name,"MeshR")==0) return MeshREnum;
+ 	      else if (strcmp(name,"MeshElementtype")==0) return MeshElementtypeEnum;
+ 	      else if (strcmp(name,"MeshSegments")==0) return MeshSegmentsEnum;
+ 	      else if (strcmp(name,"DomainType")==0) return DomainTypeEnum;
+@@ -294,6 +299,7 @@
+ 	      else if (strcmp(name,"Domain2Dhorizontal")==0) return Domain2DhorizontalEnum;
+ 	      else if (strcmp(name,"Domain2Dvertical")==0) return Domain2DverticalEnum;
+ 	      else if (strcmp(name,"Domain3D")==0) return Domain3DEnum;
++	      else if (strcmp(name,"Domain3Dsurface")==0) return Domain3DsurfaceEnum;
+ 	      else if (strcmp(name,"MiscellaneousName")==0) return MiscellaneousNameEnum;
+ 	      else if (strcmp(name,"MasstransportHydrostaticAdjustment")==0) return MasstransportHydrostaticAdjustmentEnum;
+ 	      else if (strcmp(name,"MasstransportIsfreesurface")==0) return MasstransportIsfreesurfaceEnum;
+@@ -376,16 +382,16 @@
+ 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
+ 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+-	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
+ 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
+ 	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
+ 	      else if (strcmp(name,"SmbV")==0) return SmbVEnum;
+ 	      else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
++	      else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
+ 	      else if (strcmp(name,"SmbP")==0) return SmbPEnum;
+ 	      else if (strcmp(name,"SmbSwf")==0) return SmbSwfEnum;
+ 	      else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
+@@ -499,16 +505,16 @@
+ 	      else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
+-	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+ 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
+ 	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
+ 	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
++	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
+ 	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
+ 	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
+ 	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
+@@ -622,16 +628,16 @@
+ 	      else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
+ 	      else if (strcmp(name,"Vertex")==0) return VertexEnum;
+ 	      else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
+-	      else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
+ 	      else if (strcmp(name,"Air")==0) return AirEnum;
+ 	      else if (strcmp(name,"Ice")==0) return IceEnum;
+ 	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
+ 	      else if (strcmp(name,"Water")==0) return WaterEnum;
+ 	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"Free")==0) return FreeEnum;
++	      else if (strcmp(name,"Free")==0) return FreeEnum;
+ 	      else if (strcmp(name,"Open")==0) return OpenEnum;
+ 	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
+ 	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
+@@ -745,16 +751,16 @@
+ 	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
+ 	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
+ 	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
+-	      else if (strcmp(name,"MINI")==0) return MINIEnum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"MINI")==0) return MINIEnum;
+ 	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
+ 	      else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
+ 	      else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
+ 	      else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
+ 	      else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
++	      else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
+ 	      else if (strcmp(name,"LACrouzeixRaviart")==0) return LACrouzeixRaviartEnum;
+ 	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
+ 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+@@ -868,16 +874,16 @@
+ 	      else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
+ 	      else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
+ 	      else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
+-	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+ 	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+ 	      else if (strcmp(name,"MassfluxatgateDefinitionenum")==0) return MassfluxatgateDefinitionenumEnum;
+ 	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
+ 	      else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;
+ 	      else if (strcmp(name,"MisfitDefinitionenum")==0) return MisfitDefinitionenumEnum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
++	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
+ 	      else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
+ 	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
+ 	      else if (strcmp(name,"MisfitLocal")==0) return MisfitLocalEnum;
+@@ -988,9 +994,24 @@
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
+-	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
++	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
++	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
++	      else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
+          else stage=9;
+    }
++   if(stage==9){
++	      if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
++	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
++	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
++	      else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
++	      else if (strcmp(name,"SealevelriseLoveH")==0) return SealevelriseLoveHEnum;
++	      else if (strcmp(name,"SealevelriseLoveK")==0) return SealevelriseLoveKEnum;
++	      else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum;
++	      else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
++	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
++	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
++         else stage=10;
++   }
+ 	/*If we reach this point, the string provided has not been found*/
+ 	if(notfounderror)
+ 		_error_("Enum " << name << " not found");
+Index: ../trunk-jpl/src/m/enum/SealevelriseReltolEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseReltolEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseReltolEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseReltolEnum()
++%SEALEVELRISERELTOLENUM - Enum of SealevelriseReltol
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseReltolEnum()
++
++macro=StringToEnum('SealevelriseReltol');
+Index: ../trunk-jpl/src/m/enum/MeshREnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MeshREnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MeshREnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=MeshREnum()
++%MESHRENUM - Enum of MeshR
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MeshREnum()
++
++macro=StringToEnum('MeshR');
+Index: ../trunk-jpl/src/m/enum/SealevelriseLoveHEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLoveHEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseLoveHEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseLoveHEnum()
++%SEALEVELRISELOVEHENUM - Enum of SealevelriseLoveH
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseLoveHEnum()
++
++macro=StringToEnum('SealevelriseLoveH');
+Index: ../trunk-jpl/src/m/enum/SealevelriseAbstolEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseAbstolEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseAbstolEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseAbstolEnum()
++%SEALEVELRISEABSTOLENUM - Enum of SealevelriseAbstol
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseAbstolEnum()
++
++macro=StringToEnum('SealevelriseAbstol');
+Index: ../trunk-jpl/src/m/enum/SealevelriseMaxiterEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseMaxiterEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseMaxiterEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseMaxiterEnum()
++%SEALEVELRISEMAXITERENUM - Enum of SealevelriseMaxiter
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseMaxiterEnum()
++
++macro=StringToEnum('SealevelriseMaxiter');
+Index: ../trunk-jpl/src/m/enum/SealevelriseEustaticEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseEustaticEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseEustaticEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseEustaticEnum()
++%SEALEVELRISEEUSTATICENUM - Enum of SealevelriseEustatic
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseEustaticEnum()
++
++macro=StringToEnum('SealevelriseEustatic');
+Index: ../trunk-jpl/src/m/enum/Domain3DsurfaceEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/Domain3DsurfaceEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/Domain3DsurfaceEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=Domain3DsurfaceEnum()
++%DOMAIN3DSURFACEENUM - Enum of Domain3Dsurface
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=Domain3DsurfaceEnum()
++
++macro=StringToEnum('Domain3Dsurface');
+Index: ../trunk-jpl/src/m/enum/SealevelriseSolutionEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseSolutionEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseSolutionEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseSolutionEnum()
++%SEALEVELRISESOLUTIONENUM - Enum of SealevelriseSolution
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseSolutionEnum()
++
++macro=StringToEnum('SealevelriseSolution');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19977)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19978)
+@@ -188,768 +188,786 @@
+ function InversionVyObsEnum(){ return 184;}
+ function InversionVzObsEnum(){ return 185;}
+ function MaskIceLevelsetEnum(){ return 186;}
+-function MaterialsBetaEnum(){ return 187;}
+-function MaterialsHeatcapacityEnum(){ return 188;}
+-function MaterialsLatentheatEnum(){ return 189;}
+-function MaterialsMeltingpointEnum(){ return 190;}
+-function MaterialsMixedLayerCapacityEnum(){ return 191;}
+-function MaterialsRheologyBEnum(){ return 192;}
+-function MaterialsRheologyBbarEnum(){ return 193;}
+-function MaterialsRheologyLawEnum(){ return 194;}
+-function MaterialsRheologyNEnum(){ return 195;}
+-function DamageIsdamageEnum(){ return 196;}
+-function DamageDEnum(){ return 197;}
+-function DamageFEnum(){ return 198;}
+-function DamageDbarEnum(){ return 199;}
+-function DamageLawEnum(){ return 200;}
+-function DamageC1Enum(){ return 201;}
+-function DamageC2Enum(){ return 202;}
+-function DamageC3Enum(){ return 203;}
+-function DamageC4Enum(){ return 204;}
+-function DamageElementinterpEnum(){ return 205;}
+-function DamageHealingEnum(){ return 206;}
+-function DamageStressThresholdEnum(){ return 207;}
+-function DamageKappaEnum(){ return 208;}
+-function DamageStabilizationEnum(){ return 209;}
+-function DamageMaxiterEnum(){ return 210;}
+-function DamageSpcdamageEnum(){ return 211;}
+-function DamageMaxDamageEnum(){ return 212;}
+-function DamageEquivStressEnum(){ return 213;}
+-function DamageEvolutionNumRequestedOutputsEnum(){ return 214;}
+-function DamageEvolutionRequestedOutputsEnum(){ return 215;}
+-function DamageEnum(){ return 216;}
+-function NewDamageEnum(){ return 217;}
+-function StressIntensityFactorEnum(){ return 218;}
+-function CalvingLawEnum(){ return 219;}
+-function CalvingCalvingrateEnum(){ return 220;}
+-function CalvingMeltingrateEnum(){ return 221;}
+-function CalvingLevermannEnum(){ return 222;}
+-function CalvingPiEnum(){ return 223;}
+-function CalvingDevEnum(){ return 224;}
+-function DefaultCalvingEnum(){ return 225;}
+-function CalvingRequestedOutputsEnum(){ return 226;}
+-function CalvinglevermannCoeffEnum(){ return 227;}
+-function CalvinglevermannMeltingrateEnum(){ return 228;}
+-function CalvingpiCoeffEnum(){ return 229;}
+-function CalvingpiMeltingrateEnum(){ return 230;}
+-function CalvingratexEnum(){ return 231;}
+-function CalvingrateyEnum(){ return 232;}
+-function CalvingratexAverageEnum(){ return 233;}
+-function CalvingrateyAverageEnum(){ return 234;}
+-function StrainRateparallelEnum(){ return 235;}
+-function StrainRateperpendicularEnum(){ return 236;}
+-function StrainRateeffectiveEnum(){ return 237;}
+-function MaterialsRhoIceEnum(){ return 238;}
+-function MaterialsRhoSeawaterEnum(){ return 239;}
+-function MaterialsRhoFreshwaterEnum(){ return 240;}
+-function MaterialsMuWaterEnum(){ return 241;}
+-function MaterialsThermalExchangeVelocityEnum(){ return 242;}
+-function MaterialsThermalconductivityEnum(){ return 243;}
+-function MaterialsTemperateiceconductivityEnum(){ return 244;}
+-function MaterialsLithosphereShearModulusEnum(){ return 245;}
+-function MaterialsLithosphereDensityEnum(){ return 246;}
+-function MaterialsMantleShearModulusEnum(){ return 247;}
+-function MaterialsMantleDensityEnum(){ return 248;}
+-function MeshAverageVertexConnectivityEnum(){ return 249;}
+-function MeshElements2dEnum(){ return 250;}
+-function MeshElementsEnum(){ return 251;}
+-function MeshLowerelementsEnum(){ return 252;}
+-function MeshNumberofelements2dEnum(){ return 253;}
+-function MeshNumberofelementsEnum(){ return 254;}
+-function MeshNumberoflayersEnum(){ return 255;}
+-function MeshNumberofvertices2dEnum(){ return 256;}
+-function MeshNumberofverticesEnum(){ return 257;}
+-function MeshUpperelementsEnum(){ return 258;}
+-function MeshVertexonbaseEnum(){ return 259;}
+-function MeshVertexonsurfaceEnum(){ return 260;}
+-function MeshVertexonboundaryEnum(){ return 261;}
+-function MeshXEnum(){ return 262;}
+-function MeshYEnum(){ return 263;}
+-function MeshZEnum(){ return 264;}
+-function MeshElementtypeEnum(){ return 265;}
+-function MeshSegmentsEnum(){ return 266;}
+-function DomainTypeEnum(){ return 267;}
+-function DomainDimensionEnum(){ return 268;}
+-function Domain2DhorizontalEnum(){ return 269;}
+-function Domain2DverticalEnum(){ return 270;}
+-function Domain3DEnum(){ return 271;}
+-function MiscellaneousNameEnum(){ return 272;}
+-function MasstransportHydrostaticAdjustmentEnum(){ return 273;}
+-function MasstransportIsfreesurfaceEnum(){ return 274;}
+-function MasstransportMinThicknessEnum(){ return 275;}
+-function MasstransportPenaltyFactorEnum(){ return 276;}
+-function MasstransportSpcthicknessEnum(){ return 277;}
+-function MasstransportStabilizationEnum(){ return 278;}
+-function MasstransportVertexPairingEnum(){ return 279;}
+-function MasstransportNumRequestedOutputsEnum(){ return 280;}
+-function MasstransportRequestedOutputsEnum(){ return 281;}
+-function QmuIsdakotaEnum(){ return 282;}
+-function MassFluxSegmentsEnum(){ return 283;}
+-function MassFluxSegmentsPresentEnum(){ return 284;}
+-function QmuMassFluxSegmentsPresentEnum(){ return 285;}
+-function QmuNumberofpartitionsEnum(){ return 286;}
+-function QmuNumberofresponsesEnum(){ return 287;}
+-function QmuPartitionEnum(){ return 288;}
+-function QmuResponsedescriptorsEnum(){ return 289;}
+-function QmuVariabledescriptorsEnum(){ return 290;}
+-function RiftsNumriftsEnum(){ return 291;}
+-function RiftsRiftstructEnum(){ return 292;}
+-function SettingsResultsOnNodesEnum(){ return 293;}
+-function SettingsIoGatherEnum(){ return 294;}
+-function SettingsLowmemEnum(){ return 295;}
+-function SettingsOutputFrequencyEnum(){ return 296;}
+-function SettingsRecordingFrequencyEnum(){ return 297;}
+-function SettingsWaitonlockEnum(){ return 298;}
+-function DebugProfilingEnum(){ return 299;}
+-function ProfilingCurrentMemEnum(){ return 300;}
+-function ProfilingCurrentFlopsEnum(){ return 301;}
+-function ProfilingSolutionTimeEnum(){ return 302;}
+-function SteadystateMaxiterEnum(){ return 303;}
+-function SteadystateNumRequestedOutputsEnum(){ return 304;}
+-function SteadystateReltolEnum(){ return 305;}
+-function SteadystateRequestedOutputsEnum(){ return 306;}
+-function SurfaceEnum(){ return 307;}
+-function ThermalIsenthalpyEnum(){ return 308;}
+-function ThermalIsdynamicbasalspcEnum(){ return 309;}
+-function ThermalReltolEnum(){ return 310;}
+-function ThermalMaxiterEnum(){ return 311;}
+-function ThermalPenaltyFactorEnum(){ return 312;}
+-function ThermalPenaltyLockEnum(){ return 313;}
+-function ThermalPenaltyThresholdEnum(){ return 314;}
+-function ThermalSpctemperatureEnum(){ return 315;}
+-function ThermalStabilizationEnum(){ return 316;}
+-function ThermalNumRequestedOutputsEnum(){ return 317;}
+-function ThermalRequestedOutputsEnum(){ return 318;}
+-function GiaMantleViscosityEnum(){ return 319;}
+-function GiaLithosphereThicknessEnum(){ return 320;}
+-function ThicknessEnum(){ return 321;}
+-function TimesteppingStartTimeEnum(){ return 322;}
+-function TimesteppingFinalTimeEnum(){ return 323;}
+-function TimesteppingCflCoefficientEnum(){ return 324;}
+-function TimesteppingTimeAdaptEnum(){ return 325;}
+-function TimesteppingTimeStepEnum(){ return 326;}
+-function TimesteppingInterpForcingsEnum(){ return 327;}
+-function TransientIssmbEnum(){ return 328;}
+-function TransientIsstressbalanceEnum(){ return 329;}
+-function TransientIsgroundinglineEnum(){ return 330;}
+-function TransientIsmasstransportEnum(){ return 331;}
+-function TransientIsthermalEnum(){ return 332;}
+-function TransientIsgiaEnum(){ return 333;}
+-function TransientIsdamageevolutionEnum(){ return 334;}
+-function TransientIshydrologyEnum(){ return 335;}
+-function TransientIscalvingEnum(){ return 336;}
+-function TransientNumRequestedOutputsEnum(){ return 337;}
+-function TransientRequestedOutputsEnum(){ return 338;}
+-function PotentialEnum(){ return 339;}
+-function BalancethicknessSpcpotentialEnum(){ return 340;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 341;}
+-function Balancethickness2MisfitEnum(){ return 342;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 343;}
+-function BalancethicknessCmuEnum(){ return 344;}
+-function BalancethicknessOmegaEnum(){ return 345;}
+-function BalancethicknessD0Enum(){ return 346;}
+-function SmbEnum(){ return 347;}
+-function SmbAnalysisEnum(){ return 348;}
+-function SmbSolutionEnum(){ return 349;}
+-function SmbNumRequestedOutputsEnum(){ return 350;}
+-function SmbRequestedOutputsEnum(){ return 351;}
+-function SmbIsInitializedEnum(){ return 352;}
+-function SMBforcingEnum(){ return 353;}
+-function SmbMassBalanceEnum(){ return 354;}
+-function SMBgembEnum(){ return 355;}
+-function SmbInitDensityScalingEnum(){ return 356;}
+-function SmbTaEnum(){ return 357;}
+-function SmbVEnum(){ return 358;}
+-function SmbDswrfEnum(){ return 359;}
+-function SmbDlwrfEnum(){ return 360;}
+-function SmbPEnum(){ return 361;}
+-function SmbSwfEnum(){ return 362;}
+-function SmbEAirEnum(){ return 363;}
+-function SmbPAirEnum(){ return 364;}
+-function SmbTmeanEnum(){ return 365;}
+-function SmbCEnum(){ return 366;}
+-function SmbTzEnum(){ return 367;}
+-function SmbVzEnum(){ return 368;}
+-function SmbDtEnum(){ return 369;}
+-function SmbDzEnum(){ return 370;}
+-function SmbAIdxEnum(){ return 371;}
+-function SmbSwIdxEnum(){ return 372;}
+-function SmbDenIdxEnum(){ return 373;}
+-function SmbZTopEnum(){ return 374;}
+-function SmbDzTopEnum(){ return 375;}
+-function SmbDzMinEnum(){ return 376;}
+-function SmbZYEnum(){ return 377;}
+-function SmbZMaxEnum(){ return 378;}
+-function SmbZMinEnum(){ return 379;}
+-function SmbOutputFreqEnum(){ return 380;}
+-function SmbASnowEnum(){ return 381;}
+-function SmbAIceEnum(){ return 382;}
+-function SmbCldFracEnum(){ return 383;}
+-function SmbT0wetEnum(){ return 384;}
+-function SmbT0dryEnum(){ return 385;}
+-function SmbKEnum(){ return 386;}
+-function SmbDEnum(){ return 387;}
+-function SmbReEnum(){ return 388;}
+-function SmbGdnEnum(){ return 389;}
+-function SmbGspEnum(){ return 390;}
+-function SmbECEnum(){ return 391;}
+-function SmbCondensationEnum(){ return 392;}
+-function SmbWEnum(){ return 393;}
+-function SmbAEnum(){ return 394;}
+-function SmbTEnum(){ return 395;}
+-function SmbIsgraingrowthEnum(){ return 396;}
+-function SmbIsalbedoEnum(){ return 397;}
+-function SmbIsshortwaveEnum(){ return 398;}
+-function SmbIsthermalEnum(){ return 399;}
+-function SmbIsaccumulationEnum(){ return 400;}
+-function SmbIsmeltEnum(){ return 401;}
+-function SmbIsdensificationEnum(){ return 402;}
+-function SmbIsturbulentfluxEnum(){ return 403;}
+-function SMBpddEnum(){ return 404;}
+-function SmbDelta18oEnum(){ return 405;}
+-function SmbDelta18oSurfaceEnum(){ return 406;}
+-function SmbIsdelta18oEnum(){ return 407;}
+-function SmbIsmungsmEnum(){ return 408;}
+-function SmbIsd18opdEnum(){ return 409;}
+-function SmbPrecipitationsPresentdayEnum(){ return 410;}
+-function SmbPrecipitationsLgmEnum(){ return 411;}
+-function SmbTemperaturesPresentdayEnum(){ return 412;}
+-function SmbTemperaturesLgmEnum(){ return 413;}
+-function SmbPrecipitationEnum(){ return 414;}
+-function SmbDesfacEnum(){ return 415;}
+-function SmbS0pEnum(){ return 416;}
+-function SmbS0tEnum(){ return 417;}
+-function SmbRlapsEnum(){ return 418;}
+-function SmbRlapslgmEnum(){ return 419;}
+-function SmbPfacEnum(){ return 420;}
+-function SmbTdiffEnum(){ return 421;}
+-function SmbSealevEnum(){ return 422;}
+-function SMBd18opddEnum(){ return 423;}
+-function SmbDpermilEnum(){ return 424;}
+-function SMBgradientsEnum(){ return 425;}
+-function SmbMonthlytemperaturesEnum(){ return 426;}
+-function SmbHrefEnum(){ return 427;}
+-function SmbSmbrefEnum(){ return 428;}
+-function SmbBPosEnum(){ return 429;}
+-function SmbBNegEnum(){ return 430;}
+-function SMBhenningEnum(){ return 431;}
+-function SMBcomponentsEnum(){ return 432;}
+-function SmbAccumulationEnum(){ return 433;}
+-function SmbEvaporationEnum(){ return 434;}
+-function SmbRunoffEnum(){ return 435;}
+-function SMBmeltcomponentsEnum(){ return 436;}
+-function SmbMeltEnum(){ return 437;}
+-function SmbRefreezeEnum(){ return 438;}
+-function SMBgcmEnum(){ return 439;}
+-function SmbIspddEnum(){ return 440;}
+-function SmbIssmbgradientsEnum(){ return 441;}
+-function SolutionTypeEnum(){ return 442;}
+-function AnalysisTypeEnum(){ return 443;}
+-function ConfigurationTypeEnum(){ return 444;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 445;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 446;}
+-function AdjointHorizAnalysisEnum(){ return 447;}
+-function AnalysisCounterEnum(){ return 448;}
+-function DefaultAnalysisEnum(){ return 449;}
+-function BalancethicknessAnalysisEnum(){ return 450;}
+-function BalancethicknessSolutionEnum(){ return 451;}
+-function Balancethickness2AnalysisEnum(){ return 452;}
+-function Balancethickness2SolutionEnum(){ return 453;}
+-function BalancethicknessSoftAnalysisEnum(){ return 454;}
+-function BalancethicknessSoftSolutionEnum(){ return 455;}
+-function BalancevelocityAnalysisEnum(){ return 456;}
+-function BalancevelocitySolutionEnum(){ return 457;}
+-function L2ProjectionEPLAnalysisEnum(){ return 458;}
+-function L2ProjectionBaseAnalysisEnum(){ return 459;}
+-function BedSlopeSolutionEnum(){ return 460;}
+-function DamageEvolutionSolutionEnum(){ return 461;}
+-function DamageEvolutionAnalysisEnum(){ return 462;}
+-function StressbalanceAnalysisEnum(){ return 463;}
+-function StressbalanceSIAAnalysisEnum(){ return 464;}
+-function StressbalanceSolutionEnum(){ return 465;}
+-function StressbalanceVerticalAnalysisEnum(){ return 466;}
+-function EnthalpyAnalysisEnum(){ return 467;}
+-function FlaimAnalysisEnum(){ return 468;}
+-function FlaimSolutionEnum(){ return 469;}
+-function HydrologyShreveAnalysisEnum(){ return 470;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 471;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 472;}
+-function HydrologySommersAnalysisEnum(){ return 473;}
+-function HydrologySolutionEnum(){ return 474;}
+-function MeltingAnalysisEnum(){ return 475;}
+-function MasstransportAnalysisEnum(){ return 476;}
+-function MasstransportSolutionEnum(){ return 477;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 478;}
+-function FreeSurfaceTopAnalysisEnum(){ return 479;}
+-function SurfaceNormalVelocityEnum(){ return 480;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 481;}
+-function ExtrudeFromTopAnalysisEnum(){ return 482;}
+-function DepthAverageAnalysisEnum(){ return 483;}
+-function SteadystateSolutionEnum(){ return 484;}
+-function SurfaceSlopeSolutionEnum(){ return 485;}
+-function SmoothAnalysisEnum(){ return 486;}
+-function ThermalAnalysisEnum(){ return 487;}
+-function ThermalSolutionEnum(){ return 488;}
+-function TransientSolutionEnum(){ return 489;}
+-function UzawaPressureAnalysisEnum(){ return 490;}
+-function GiaSolutionEnum(){ return 491;}
+-function GiaAnalysisEnum(){ return 492;}
+-function MeshdeformationSolutionEnum(){ return 493;}
+-function MeshdeformationAnalysisEnum(){ return 494;}
+-function LevelsetAnalysisEnum(){ return 495;}
+-function LevelsetStabilizationEnum(){ return 496;}
+-function ExtrapolationAnalysisEnum(){ return 497;}
+-function LsfReinitializationAnalysisEnum(){ return 498;}
+-function ApproximationEnum(){ return 499;}
+-function NoneApproximationEnum(){ return 500;}
+-function SIAApproximationEnum(){ return 501;}
+-function SSAApproximationEnum(){ return 502;}
+-function SSAHOApproximationEnum(){ return 503;}
+-function SSAFSApproximationEnum(){ return 504;}
+-function L1L2ApproximationEnum(){ return 505;}
+-function HOApproximationEnum(){ return 506;}
+-function HOFSApproximationEnum(){ return 507;}
+-function FSApproximationEnum(){ return 508;}
+-function FSvelocityEnum(){ return 509;}
+-function FSpressureEnum(){ return 510;}
+-function DataSetEnum(){ return 511;}
+-function ConstraintsEnum(){ return 512;}
+-function LoadsEnum(){ return 513;}
+-function MaterialsEnum(){ return 514;}
+-function NodesEnum(){ return 515;}
+-function ContoursEnum(){ return 516;}
+-function ParametersEnum(){ return 517;}
+-function VerticesEnum(){ return 518;}
+-function ResultsEnum(){ return 519;}
+-function GenericParamEnum(){ return 520;}
+-function AdolcParamEnum(){ return 521;}
+-function BoolInputEnum(){ return 522;}
+-function BoolParamEnum(){ return 523;}
+-function ContourEnum(){ return 524;}
+-function ControlInputEnum(){ return 525;}
+-function DatasetInputEnum(){ return 526;}
+-function DoubleInputEnum(){ return 527;}
+-function DoubleArrayInputEnum(){ return 528;}
+-function DataSetParamEnum(){ return 529;}
+-function DoubleMatArrayParamEnum(){ return 530;}
+-function DoubleMatParamEnum(){ return 531;}
+-function DoubleParamEnum(){ return 532;}
+-function DoubleVecParamEnum(){ return 533;}
+-function ElementEnum(){ return 534;}
+-function ElementHookEnum(){ return 535;}
+-function HookEnum(){ return 536;}
+-function ExternalResultEnum(){ return 537;}
+-function FileParamEnum(){ return 538;}
+-function InputEnum(){ return 539;}
+-function IntInputEnum(){ return 540;}
+-function InputToExtrudeEnum(){ return 541;}
+-function InputToL2ProjectEnum(){ return 542;}
+-function InputToDepthaverageEnum(){ return 543;}
+-function InputToSmoothEnum(){ return 544;}
+-function SmoothThicknessMultiplierEnum(){ return 545;}
+-function IntParamEnum(){ return 546;}
+-function IntVecParamEnum(){ return 547;}
+-function TransientParamEnum(){ return 548;}
+-function MaticeEnum(){ return 549;}
+-function MatdamageiceEnum(){ return 550;}
+-function MatparEnum(){ return 551;}
+-function NodeEnum(){ return 552;}
+-function NumericalfluxEnum(){ return 553;}
+-function NumericalfluxTypeEnum(){ return 554;}
+-function NeumannfluxEnum(){ return 555;}
+-function ParamEnum(){ return 556;}
+-function MoulinEnum(){ return 557;}
+-function PengridEnum(){ return 558;}
+-function PenpairEnum(){ return 559;}
+-function ProfilerEnum(){ return 560;}
+-function MatrixParamEnum(){ return 561;}
+-function MassconEnum(){ return 562;}
+-function MassconNameEnum(){ return 563;}
+-function MassconDefinitionenumEnum(){ return 564;}
+-function MassconLevelsetEnum(){ return 565;}
+-function MassconaxpbyEnum(){ return 566;}
+-function MassconaxpbyNameEnum(){ return 567;}
+-function MassconaxpbyDefinitionenumEnum(){ return 568;}
+-function MassconaxpbyNamexEnum(){ return 569;}
+-function MassconaxpbyNameyEnum(){ return 570;}
+-function MassconaxpbyAlphaEnum(){ return 571;}
+-function MassconaxpbyBetaEnum(){ return 572;}
+-function NodeSIdEnum(){ return 573;}
+-function VectorParamEnum(){ return 574;}
+-function RiftfrontEnum(){ return 575;}
+-function RiftfrontTypeEnum(){ return 576;}
+-function SegmentEnum(){ return 577;}
+-function SegmentRiftfrontEnum(){ return 578;}
+-function SpcDynamicEnum(){ return 579;}
+-function SpcStaticEnum(){ return 580;}
+-function SpcTransientEnum(){ return 581;}
+-function StringArrayParamEnum(){ return 582;}
+-function StringParamEnum(){ return 583;}
+-function SegEnum(){ return 584;}
+-function SegInputEnum(){ return 585;}
+-function TriaEnum(){ return 586;}
+-function TriaInputEnum(){ return 587;}
+-function TetraEnum(){ return 588;}
+-function TetraInputEnum(){ return 589;}
+-function PentaEnum(){ return 590;}
+-function PentaInputEnum(){ return 591;}
+-function VertexEnum(){ return 592;}
+-function VertexPIdEnum(){ return 593;}
+-function VertexSIdEnum(){ return 594;}
+-function AirEnum(){ return 595;}
+-function IceEnum(){ return 596;}
+-function MelangeEnum(){ return 597;}
+-function WaterEnum(){ return 598;}
+-function ClosedEnum(){ return 599;}
+-function FreeEnum(){ return 600;}
+-function OpenEnum(){ return 601;}
+-function AdjointpEnum(){ return 602;}
+-function AdjointxEnum(){ return 603;}
+-function AdjointyEnum(){ return 604;}
+-function AdjointzEnum(){ return 605;}
+-function BalancethicknessMisfitEnum(){ return 606;}
+-function BedSlopeXEnum(){ return 607;}
+-function BedSlopeYEnum(){ return 608;}
+-function BoundaryEnum(){ return 609;}
+-function ConvergedEnum(){ return 610;}
+-function FillEnum(){ return 611;}
+-function FractionIncrementEnum(){ return 612;}
+-function FrictionEnum(){ return 613;}
+-function InternalEnum(){ return 614;}
+-function MassFluxEnum(){ return 615;}
+-function MeltingOffsetEnum(){ return 616;}
+-function MisfitEnum(){ return 617;}
+-function PressureEnum(){ return 618;}
+-function PressurePicardEnum(){ return 619;}
+-function AndroidFrictionCoefficientEnum(){ return 620;}
+-function ResetPenaltiesEnum(){ return 621;}
+-function SegmentOnIceShelfEnum(){ return 622;}
+-function SurfaceAbsVelMisfitEnum(){ return 623;}
+-function SurfaceAreaEnum(){ return 624;}
+-function SurfaceAverageVelMisfitEnum(){ return 625;}
+-function SurfaceLogVelMisfitEnum(){ return 626;}
+-function SurfaceLogVxVyMisfitEnum(){ return 627;}
+-function SurfaceRelVelMisfitEnum(){ return 628;}
+-function SurfaceSlopeXEnum(){ return 629;}
+-function SurfaceSlopeYEnum(){ return 630;}
+-function TemperatureEnum(){ return 631;}
+-function TemperaturePicardEnum(){ return 632;}
+-function TemperaturePDDEnum(){ return 633;}
+-function ThicknessAbsMisfitEnum(){ return 634;}
+-function SurfaceAbsMisfitEnum(){ return 635;}
+-function VelEnum(){ return 636;}
+-function VelocityEnum(){ return 637;}
+-function VxAverageEnum(){ return 638;}
+-function VxEnum(){ return 639;}
+-function VxPicardEnum(){ return 640;}
+-function VyAverageEnum(){ return 641;}
+-function VyEnum(){ return 642;}
+-function VyPicardEnum(){ return 643;}
+-function VzEnum(){ return 644;}
+-function VzSSAEnum(){ return 645;}
+-function VzHOEnum(){ return 646;}
+-function VzPicardEnum(){ return 647;}
+-function VzFSEnum(){ return 648;}
+-function VxMeshEnum(){ return 649;}
+-function VyMeshEnum(){ return 650;}
+-function VzMeshEnum(){ return 651;}
+-function EnthalpyEnum(){ return 652;}
+-function EnthalpyPicardEnum(){ return 653;}
+-function ThicknessAbsGradientEnum(){ return 654;}
+-function ThicknessAlongGradientEnum(){ return 655;}
+-function ThicknessAcrossGradientEnum(){ return 656;}
+-function IntMatParamEnum(){ return 657;}
+-function RheologyBbarAbsGradientEnum(){ return 658;}
+-function RheologyBAbsGradientEnum(){ return 659;}
+-function DragCoefficientAbsGradientEnum(){ return 660;}
+-function TransientInputEnum(){ return 661;}
+-function WaterfractionEnum(){ return 662;}
+-function WatercolumnEnum(){ return 663;}
+-function BasalFrictionEnum(){ return 664;}
+-function ViscousHeatingEnum(){ return 665;}
+-function HydrologyWaterVxEnum(){ return 666;}
+-function HydrologyWaterVyEnum(){ return 667;}
+-function DrivingStressXEnum(){ return 668;}
+-function DrivingStressYEnum(){ return 669;}
+-function SigmaNNEnum(){ return 670;}
+-function StressTensorEnum(){ return 671;}
+-function StressTensorxxEnum(){ return 672;}
+-function StressTensorxyEnum(){ return 673;}
+-function StressTensorxzEnum(){ return 674;}
+-function StressTensoryyEnum(){ return 675;}
+-function StressTensoryzEnum(){ return 676;}
+-function StressTensorzzEnum(){ return 677;}
+-function StressMaxPrincipalEnum(){ return 678;}
+-function DeviatoricStressEnum(){ return 679;}
+-function DeviatoricStressxxEnum(){ return 680;}
+-function DeviatoricStressxyEnum(){ return 681;}
+-function DeviatoricStressxzEnum(){ return 682;}
+-function DeviatoricStressyyEnum(){ return 683;}
+-function DeviatoricStressyzEnum(){ return 684;}
+-function DeviatoricStresszzEnum(){ return 685;}
+-function DeviatoricStresseffectiveEnum(){ return 686;}
+-function StrainRateEnum(){ return 687;}
+-function StrainRatexxEnum(){ return 688;}
+-function StrainRatexyEnum(){ return 689;}
+-function StrainRatexzEnum(){ return 690;}
+-function StrainRateyyEnum(){ return 691;}
+-function StrainRateyzEnum(){ return 692;}
+-function StrainRatezzEnum(){ return 693;}
+-function DivergenceEnum(){ return 694;}
+-function MaxDivergenceEnum(){ return 695;}
+-function GiaCrossSectionShapeEnum(){ return 696;}
+-function GiadWdtEnum(){ return 697;}
+-function GiaWEnum(){ return 698;}
+-function P0Enum(){ return 699;}
+-function P0ArrayEnum(){ return 700;}
+-function P1Enum(){ return 701;}
+-function P1DGEnum(){ return 702;}
+-function P1bubbleEnum(){ return 703;}
+-function P1bubblecondensedEnum(){ return 704;}
+-function P2Enum(){ return 705;}
+-function P2bubbleEnum(){ return 706;}
+-function P2bubblecondensedEnum(){ return 707;}
+-function P2xP1Enum(){ return 708;}
+-function P1xP2Enum(){ return 709;}
+-function P1xP3Enum(){ return 710;}
+-function P2xP4Enum(){ return 711;}
+-function P1P1Enum(){ return 712;}
+-function P1P1GLSEnum(){ return 713;}
+-function MINIEnum(){ return 714;}
+-function MINIcondensedEnum(){ return 715;}
+-function TaylorHoodEnum(){ return 716;}
+-function LATaylorHoodEnum(){ return 717;}
+-function XTaylorHoodEnum(){ return 718;}
+-function OneLayerP4zEnum(){ return 719;}
+-function CrouzeixRaviartEnum(){ return 720;}
+-function LACrouzeixRaviartEnum(){ return 721;}
+-function SaveResultsEnum(){ return 722;}
+-function BoolExternalResultEnum(){ return 723;}
+-function DoubleExternalResultEnum(){ return 724;}
+-function DoubleMatExternalResultEnum(){ return 725;}
+-function IntExternalResultEnum(){ return 726;}
+-function JEnum(){ return 727;}
+-function StringExternalResultEnum(){ return 728;}
+-function StepEnum(){ return 729;}
+-function TimeEnum(){ return 730;}
+-function WaterColumnOldEnum(){ return 731;}
+-function OutputdefinitionEnum(){ return 732;}
+-function Outputdefinition1Enum(){ return 733;}
+-function Outputdefinition2Enum(){ return 734;}
+-function Outputdefinition3Enum(){ return 735;}
+-function Outputdefinition4Enum(){ return 736;}
+-function Outputdefinition5Enum(){ return 737;}
+-function Outputdefinition6Enum(){ return 738;}
+-function Outputdefinition7Enum(){ return 739;}
+-function Outputdefinition8Enum(){ return 740;}
+-function Outputdefinition9Enum(){ return 741;}
+-function Outputdefinition10Enum(){ return 742;}
+-function Outputdefinition11Enum(){ return 743;}
+-function Outputdefinition12Enum(){ return 744;}
+-function Outputdefinition13Enum(){ return 745;}
+-function Outputdefinition14Enum(){ return 746;}
+-function Outputdefinition15Enum(){ return 747;}
+-function Outputdefinition16Enum(){ return 748;}
+-function Outputdefinition17Enum(){ return 749;}
+-function Outputdefinition18Enum(){ return 750;}
+-function Outputdefinition19Enum(){ return 751;}
+-function Outputdefinition20Enum(){ return 752;}
+-function Outputdefinition21Enum(){ return 753;}
+-function Outputdefinition22Enum(){ return 754;}
+-function Outputdefinition23Enum(){ return 755;}
+-function Outputdefinition24Enum(){ return 756;}
+-function Outputdefinition25Enum(){ return 757;}
+-function Outputdefinition26Enum(){ return 758;}
+-function Outputdefinition27Enum(){ return 759;}
+-function Outputdefinition28Enum(){ return 760;}
+-function Outputdefinition29Enum(){ return 761;}
+-function Outputdefinition30Enum(){ return 762;}
+-function Outputdefinition31Enum(){ return 763;}
+-function Outputdefinition32Enum(){ return 764;}
+-function Outputdefinition33Enum(){ return 765;}
+-function Outputdefinition34Enum(){ return 766;}
+-function Outputdefinition35Enum(){ return 767;}
+-function Outputdefinition36Enum(){ return 768;}
+-function Outputdefinition37Enum(){ return 769;}
+-function Outputdefinition38Enum(){ return 770;}
+-function Outputdefinition39Enum(){ return 771;}
+-function Outputdefinition40Enum(){ return 772;}
+-function Outputdefinition41Enum(){ return 773;}
+-function Outputdefinition42Enum(){ return 774;}
+-function Outputdefinition43Enum(){ return 775;}
+-function Outputdefinition44Enum(){ return 776;}
+-function Outputdefinition45Enum(){ return 777;}
+-function Outputdefinition46Enum(){ return 778;}
+-function Outputdefinition47Enum(){ return 779;}
+-function Outputdefinition48Enum(){ return 780;}
+-function Outputdefinition49Enum(){ return 781;}
+-function Outputdefinition50Enum(){ return 782;}
+-function Outputdefinition51Enum(){ return 783;}
+-function Outputdefinition52Enum(){ return 784;}
+-function Outputdefinition53Enum(){ return 785;}
+-function Outputdefinition54Enum(){ return 786;}
+-function Outputdefinition55Enum(){ return 787;}
+-function Outputdefinition56Enum(){ return 788;}
+-function Outputdefinition57Enum(){ return 789;}
+-function Outputdefinition58Enum(){ return 790;}
+-function Outputdefinition59Enum(){ return 791;}
+-function Outputdefinition60Enum(){ return 792;}
+-function Outputdefinition61Enum(){ return 793;}
+-function Outputdefinition62Enum(){ return 794;}
+-function Outputdefinition63Enum(){ return 795;}
+-function Outputdefinition64Enum(){ return 796;}
+-function Outputdefinition65Enum(){ return 797;}
+-function Outputdefinition66Enum(){ return 798;}
+-function Outputdefinition67Enum(){ return 799;}
+-function Outputdefinition68Enum(){ return 800;}
+-function Outputdefinition69Enum(){ return 801;}
+-function Outputdefinition70Enum(){ return 802;}
+-function Outputdefinition71Enum(){ return 803;}
+-function Outputdefinition72Enum(){ return 804;}
+-function Outputdefinition73Enum(){ return 805;}
+-function Outputdefinition74Enum(){ return 806;}
+-function Outputdefinition75Enum(){ return 807;}
+-function Outputdefinition76Enum(){ return 808;}
+-function Outputdefinition77Enum(){ return 809;}
+-function Outputdefinition78Enum(){ return 810;}
+-function Outputdefinition79Enum(){ return 811;}
+-function Outputdefinition80Enum(){ return 812;}
+-function Outputdefinition81Enum(){ return 813;}
+-function Outputdefinition82Enum(){ return 814;}
+-function Outputdefinition83Enum(){ return 815;}
+-function Outputdefinition84Enum(){ return 816;}
+-function Outputdefinition85Enum(){ return 817;}
+-function Outputdefinition86Enum(){ return 818;}
+-function Outputdefinition87Enum(){ return 819;}
+-function Outputdefinition88Enum(){ return 820;}
+-function Outputdefinition89Enum(){ return 821;}
+-function Outputdefinition90Enum(){ return 822;}
+-function Outputdefinition91Enum(){ return 823;}
+-function Outputdefinition92Enum(){ return 824;}
+-function Outputdefinition93Enum(){ return 825;}
+-function Outputdefinition94Enum(){ return 826;}
+-function Outputdefinition95Enum(){ return 827;}
+-function Outputdefinition96Enum(){ return 828;}
+-function Outputdefinition97Enum(){ return 829;}
+-function Outputdefinition98Enum(){ return 830;}
+-function Outputdefinition99Enum(){ return 831;}
+-function Outputdefinition100Enum(){ return 832;}
+-function OutputdefinitionListEnum(){ return 833;}
+-function MassfluxatgateEnum(){ return 834;}
+-function MassfluxatgateNameEnum(){ return 835;}
+-function MassfluxatgateDefinitionenumEnum(){ return 836;}
+-function MassfluxatgateSegmentsEnum(){ return 837;}
+-function MisfitNameEnum(){ return 838;}
+-function MisfitDefinitionenumEnum(){ return 839;}
+-function MisfitModelEnum(){ return 840;}
+-function MisfitObservationEnum(){ return 841;}
+-function MisfitObservationEnum(){ return 842;}
+-function MisfitLocalEnum(){ return 843;}
+-function MisfitTimeinterpolationEnum(){ return 844;}
+-function MisfitWeightsEnum(){ return 845;}
+-function MisfitWeightsEnum(){ return 846;}
+-function SurfaceObservationEnum(){ return 847;}
+-function WeightsSurfaceObservationEnum(){ return 848;}
+-function VxObsEnum(){ return 849;}
+-function WeightsVxObsEnum(){ return 850;}
+-function VyObsEnum(){ return 851;}
+-function WeightsVyObsEnum(){ return 852;}
+-function MinVelEnum(){ return 853;}
+-function MaxVelEnum(){ return 854;}
+-function MinVxEnum(){ return 855;}
+-function MaxVxEnum(){ return 856;}
+-function MaxAbsVxEnum(){ return 857;}
+-function MinVyEnum(){ return 858;}
+-function MaxVyEnum(){ return 859;}
+-function MaxAbsVyEnum(){ return 860;}
+-function MinVzEnum(){ return 861;}
+-function MaxVzEnum(){ return 862;}
+-function MaxAbsVzEnum(){ return 863;}
+-function FloatingAreaEnum(){ return 864;}
+-function GroundedAreaEnum(){ return 865;}
+-function IceMassEnum(){ return 866;}
+-function IceVolumeEnum(){ return 867;}
+-function IceVolumeAboveFloatationEnum(){ return 868;}
+-function TotalSmbEnum(){ return 869;}
+-function AbsoluteEnum(){ return 870;}
+-function IncrementalEnum(){ return 871;}
+-function AugmentedLagrangianREnum(){ return 872;}
+-function AugmentedLagrangianRhopEnum(){ return 873;}
+-function AugmentedLagrangianRlambdaEnum(){ return 874;}
+-function AugmentedLagrangianRholambdaEnum(){ return 875;}
+-function AugmentedLagrangianThetaEnum(){ return 876;}
+-function NoneEnum(){ return 877;}
+-function AggressiveMigrationEnum(){ return 878;}
+-function SoftMigrationEnum(){ return 879;}
+-function SubelementMigrationEnum(){ return 880;}
+-function SubelementMigration2Enum(){ return 881;}
+-function ContactEnum(){ return 882;}
+-function GroundingOnlyEnum(){ return 883;}
+-function MaskGroundediceLevelsetEnum(){ return 884;}
+-function GaussSegEnum(){ return 885;}
+-function GaussTriaEnum(){ return 886;}
+-function GaussTetraEnum(){ return 887;}
+-function GaussPentaEnum(){ return 888;}
+-function FSSolverEnum(){ return 889;}
+-function AdjointEnum(){ return 890;}
+-function ColinearEnum(){ return 891;}
+-function ControlSteadyEnum(){ return 892;}
+-function FsetEnum(){ return 893;}
+-function Gradient1Enum(){ return 894;}
+-function Gradient2Enum(){ return 895;}
+-function Gradient3Enum(){ return 896;}
+-function GradientEnum(){ return 897;}
+-function GroundinglineMigrationEnum(){ return 898;}
+-function GsetEnum(){ return 899;}
+-function IndexEnum(){ return 900;}
+-function IndexedEnum(){ return 901;}
+-function IntersectEnum(){ return 902;}
+-function NodalEnum(){ return 903;}
+-function OldGradientEnum(){ return 904;}
+-function OutputBufferPointerEnum(){ return 905;}
+-function OutputBufferSizePointerEnum(){ return 906;}
+-function OutputFilePointerEnum(){ return 907;}
+-function ToolkitsFileNameEnum(){ return 908;}
+-function RootPathEnum(){ return 909;}
+-function OutputFileNameEnum(){ return 910;}
+-function InputFileNameEnum(){ return 911;}
+-function LockFileNameEnum(){ return 912;}
+-function RestartFileNameEnum(){ return 913;}
+-function ToolkitsOptionsAnalysesEnum(){ return 914;}
+-function ToolkitsOptionsStringsEnum(){ return 915;}
+-function QmuErrNameEnum(){ return 916;}
+-function QmuInNameEnum(){ return 917;}
+-function QmuOutNameEnum(){ return 918;}
+-function RegularEnum(){ return 919;}
+-function ScaledEnum(){ return 920;}
+-function SeparateEnum(){ return 921;}
+-function SsetEnum(){ return 922;}
+-function VerboseEnum(){ return 923;}
+-function TriangleInterpEnum(){ return 924;}
+-function BilinearInterpEnum(){ return 925;}
+-function NearestInterpEnum(){ return 926;}
+-function XYEnum(){ return 927;}
+-function XYZEnum(){ return 928;}
+-function DenseEnum(){ return 929;}
+-function MpiDenseEnum(){ return 930;}
+-function MpiSparseEnum(){ return 931;}
+-function SeqEnum(){ return 932;}
+-function MpiEnum(){ return 933;}
+-function MumpsEnum(){ return 934;}
+-function GslEnum(){ return 935;}
+-function OptionEnum(){ return 936;}
+-function GenericOptionEnum(){ return 937;}
+-function OptionCellEnum(){ return 938;}
+-function OptionStructEnum(){ return 939;}
+-function CuffeyEnum(){ return 940;}
+-function PatersonEnum(){ return 941;}
+-function ArrheniusEnum(){ return 942;}
+-function LliboutryDuvalEnum(){ return 943;}
+-function TransientIslevelsetEnum(){ return 944;}
+-function SpcLevelsetEnum(){ return 945;}
+-function ExtrapolationVariableEnum(){ return 946;}
+-function IceMaskNodeActivationEnum(){ return 947;}
+-function LevelsetfunctionSlopeXEnum(){ return 948;}
+-function LevelsetfunctionSlopeYEnum(){ return 949;}
+-function LevelsetfunctionPicardEnum(){ return 950;}
+-function MaximumNumberOfDefinitionsEnum(){ return 951;}
++function MaskOceanLevelsetEnum(){ return 187;}
++function MaterialsBetaEnum(){ return 188;}
++function MaterialsHeatcapacityEnum(){ return 189;}
++function MaterialsLatentheatEnum(){ return 190;}
++function MaterialsMeltingpointEnum(){ return 191;}
++function MaterialsMixedLayerCapacityEnum(){ return 192;}
++function MaterialsRheologyBEnum(){ return 193;}
++function MaterialsRheologyBbarEnum(){ return 194;}
++function MaterialsRheologyLawEnum(){ return 195;}
++function MaterialsRheologyNEnum(){ return 196;}
++function DamageIsdamageEnum(){ return 197;}
++function DamageDEnum(){ return 198;}
++function DamageFEnum(){ return 199;}
++function DamageDbarEnum(){ return 200;}
++function DamageLawEnum(){ return 201;}
++function DamageC1Enum(){ return 202;}
++function DamageC2Enum(){ return 203;}
++function DamageC3Enum(){ return 204;}
++function DamageC4Enum(){ return 205;}
++function DamageElementinterpEnum(){ return 206;}
++function DamageHealingEnum(){ return 207;}
++function DamageStressThresholdEnum(){ return 208;}
++function DamageKappaEnum(){ return 209;}
++function DamageStabilizationEnum(){ return 210;}
++function DamageMaxiterEnum(){ return 211;}
++function DamageSpcdamageEnum(){ return 212;}
++function DamageMaxDamageEnum(){ return 213;}
++function DamageEquivStressEnum(){ return 214;}
++function DamageEvolutionNumRequestedOutputsEnum(){ return 215;}
++function DamageEvolutionRequestedOutputsEnum(){ return 216;}
++function DamageEnum(){ return 217;}
++function NewDamageEnum(){ return 218;}
++function StressIntensityFactorEnum(){ return 219;}
++function CalvingLawEnum(){ return 220;}
++function CalvingCalvingrateEnum(){ return 221;}
++function CalvingMeltingrateEnum(){ return 222;}
++function CalvingLevermannEnum(){ return 223;}
++function CalvingPiEnum(){ return 224;}
++function CalvingDevEnum(){ return 225;}
++function DefaultCalvingEnum(){ return 226;}
++function CalvingRequestedOutputsEnum(){ return 227;}
++function CalvinglevermannCoeffEnum(){ return 228;}
++function CalvinglevermannMeltingrateEnum(){ return 229;}
++function CalvingpiCoeffEnum(){ return 230;}
++function CalvingpiMeltingrateEnum(){ return 231;}
++function CalvingratexEnum(){ return 232;}
++function CalvingrateyEnum(){ return 233;}
++function CalvingratexAverageEnum(){ return 234;}
++function CalvingrateyAverageEnum(){ return 235;}
++function StrainRateparallelEnum(){ return 236;}
++function StrainRateperpendicularEnum(){ return 237;}
++function StrainRateeffectiveEnum(){ return 238;}
++function MaterialsRhoIceEnum(){ return 239;}
++function MaterialsRhoSeawaterEnum(){ return 240;}
++function MaterialsRhoFreshwaterEnum(){ return 241;}
++function MaterialsMuWaterEnum(){ return 242;}
++function MaterialsThermalExchangeVelocityEnum(){ return 243;}
++function MaterialsThermalconductivityEnum(){ return 244;}
++function MaterialsTemperateiceconductivityEnum(){ return 245;}
++function MaterialsLithosphereShearModulusEnum(){ return 246;}
++function MaterialsLithosphereDensityEnum(){ return 247;}
++function MaterialsMantleShearModulusEnum(){ return 248;}
++function MaterialsMantleDensityEnum(){ return 249;}
++function MaterialsEarthDensityEnum(){ return 250;}
++function MeshAverageVertexConnectivityEnum(){ return 251;}
++function MeshElements2dEnum(){ return 252;}
++function MeshElementsEnum(){ return 253;}
++function MeshLowerelementsEnum(){ return 254;}
++function MeshNumberofelements2dEnum(){ return 255;}
++function MeshNumberofelementsEnum(){ return 256;}
++function MeshNumberoflayersEnum(){ return 257;}
++function MeshNumberofvertices2dEnum(){ return 258;}
++function MeshNumberofverticesEnum(){ return 259;}
++function MeshUpperelementsEnum(){ return 260;}
++function MeshVertexonbaseEnum(){ return 261;}
++function MeshVertexonsurfaceEnum(){ return 262;}
++function MeshVertexonboundaryEnum(){ return 263;}
++function MeshXEnum(){ return 264;}
++function MeshYEnum(){ return 265;}
++function MeshZEnum(){ return 266;}
++function MeshLatEnum(){ return 267;}
++function MeshLongEnum(){ return 268;}
++function MeshREnum(){ return 269;}
++function MeshElementtypeEnum(){ return 270;}
++function MeshSegmentsEnum(){ return 271;}
++function DomainTypeEnum(){ return 272;}
++function DomainDimensionEnum(){ return 273;}
++function Domain2DhorizontalEnum(){ return 274;}
++function Domain2DverticalEnum(){ return 275;}
++function Domain3DEnum(){ return 276;}
++function Domain3DsurfaceEnum(){ return 277;}
++function MiscellaneousNameEnum(){ return 278;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 279;}
++function MasstransportIsfreesurfaceEnum(){ return 280;}
++function MasstransportMinThicknessEnum(){ return 281;}
++function MasstransportPenaltyFactorEnum(){ return 282;}
++function MasstransportSpcthicknessEnum(){ return 283;}
++function MasstransportStabilizationEnum(){ return 284;}
++function MasstransportVertexPairingEnum(){ return 285;}
++function MasstransportNumRequestedOutputsEnum(){ return 286;}
++function MasstransportRequestedOutputsEnum(){ return 287;}
++function QmuIsdakotaEnum(){ return 288;}
++function MassFluxSegmentsEnum(){ return 289;}
++function MassFluxSegmentsPresentEnum(){ return 290;}
++function QmuMassFluxSegmentsPresentEnum(){ return 291;}
++function QmuNumberofpartitionsEnum(){ return 292;}
++function QmuNumberofresponsesEnum(){ return 293;}
++function QmuPartitionEnum(){ return 294;}
++function QmuResponsedescriptorsEnum(){ return 295;}
++function QmuVariabledescriptorsEnum(){ return 296;}
++function RiftsNumriftsEnum(){ return 297;}
++function RiftsRiftstructEnum(){ return 298;}
++function SettingsResultsOnNodesEnum(){ return 299;}
++function SettingsIoGatherEnum(){ return 300;}
++function SettingsLowmemEnum(){ return 301;}
++function SettingsOutputFrequencyEnum(){ return 302;}
++function SettingsRecordingFrequencyEnum(){ return 303;}
++function SettingsWaitonlockEnum(){ return 304;}
++function DebugProfilingEnum(){ return 305;}
++function ProfilingCurrentMemEnum(){ return 306;}
++function ProfilingCurrentFlopsEnum(){ return 307;}
++function ProfilingSolutionTimeEnum(){ return 308;}
++function SteadystateMaxiterEnum(){ return 309;}
++function SteadystateNumRequestedOutputsEnum(){ return 310;}
++function SteadystateReltolEnum(){ return 311;}
++function SteadystateRequestedOutputsEnum(){ return 312;}
++function SurfaceEnum(){ return 313;}
++function ThermalIsenthalpyEnum(){ return 314;}
++function ThermalIsdynamicbasalspcEnum(){ return 315;}
++function ThermalReltolEnum(){ return 316;}
++function ThermalMaxiterEnum(){ return 317;}
++function ThermalPenaltyFactorEnum(){ return 318;}
++function ThermalPenaltyLockEnum(){ return 319;}
++function ThermalPenaltyThresholdEnum(){ return 320;}
++function ThermalSpctemperatureEnum(){ return 321;}
++function ThermalStabilizationEnum(){ return 322;}
++function ThermalNumRequestedOutputsEnum(){ return 323;}
++function ThermalRequestedOutputsEnum(){ return 324;}
++function GiaMantleViscosityEnum(){ return 325;}
++function GiaLithosphereThicknessEnum(){ return 326;}
++function ThicknessEnum(){ return 327;}
++function TimesteppingStartTimeEnum(){ return 328;}
++function TimesteppingFinalTimeEnum(){ return 329;}
++function TimesteppingCflCoefficientEnum(){ return 330;}
++function TimesteppingTimeAdaptEnum(){ return 331;}
++function TimesteppingTimeStepEnum(){ return 332;}
++function TimesteppingInterpForcingsEnum(){ return 333;}
++function TransientIssmbEnum(){ return 334;}
++function TransientIsstressbalanceEnum(){ return 335;}
++function TransientIsgroundinglineEnum(){ return 336;}
++function TransientIsmasstransportEnum(){ return 337;}
++function TransientIsthermalEnum(){ return 338;}
++function TransientIsgiaEnum(){ return 339;}
++function TransientIsdamageevolutionEnum(){ return 340;}
++function TransientIshydrologyEnum(){ return 341;}
++function TransientIscalvingEnum(){ return 342;}
++function TransientNumRequestedOutputsEnum(){ return 343;}
++function TransientRequestedOutputsEnum(){ return 344;}
++function PotentialEnum(){ return 345;}
++function BalancethicknessSpcpotentialEnum(){ return 346;}
++function BalancethicknessApparentMassbalanceEnum(){ return 347;}
++function Balancethickness2MisfitEnum(){ return 348;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 349;}
++function BalancethicknessCmuEnum(){ return 350;}
++function BalancethicknessOmegaEnum(){ return 351;}
++function BalancethicknessD0Enum(){ return 352;}
++function SmbEnum(){ return 353;}
++function SmbAnalysisEnum(){ return 354;}
++function SmbSolutionEnum(){ return 355;}
++function SmbNumRequestedOutputsEnum(){ return 356;}
++function SmbRequestedOutputsEnum(){ return 357;}
++function SmbIsInitializedEnum(){ return 358;}
++function SMBforcingEnum(){ return 359;}
++function SmbMassBalanceEnum(){ return 360;}
++function SMBgembEnum(){ return 361;}
++function SmbInitDensityScalingEnum(){ return 362;}
++function SmbTaEnum(){ return 363;}
++function SmbVEnum(){ return 364;}
++function SmbDswrfEnum(){ return 365;}
++function SmbDlwrfEnum(){ return 366;}
++function SmbPEnum(){ return 367;}
++function SmbSwfEnum(){ return 368;}
++function SmbEAirEnum(){ return 369;}
++function SmbPAirEnum(){ return 370;}
++function SmbTmeanEnum(){ return 371;}
++function SmbCEnum(){ return 372;}
++function SmbTzEnum(){ return 373;}
++function SmbVzEnum(){ return 374;}
++function SmbDtEnum(){ return 375;}
++function SmbDzEnum(){ return 376;}
++function SmbAIdxEnum(){ return 377;}
++function SmbSwIdxEnum(){ return 378;}
++function SmbDenIdxEnum(){ return 379;}
++function SmbZTopEnum(){ return 380;}
++function SmbDzTopEnum(){ return 381;}
++function SmbDzMinEnum(){ return 382;}
++function SmbZYEnum(){ return 383;}
++function SmbZMaxEnum(){ return 384;}
++function SmbZMinEnum(){ return 385;}
++function SmbOutputFreqEnum(){ return 386;}
++function SmbASnowEnum(){ return 387;}
++function SmbAIceEnum(){ return 388;}
++function SmbCldFracEnum(){ return 389;}
++function SmbT0wetEnum(){ return 390;}
++function SmbT0dryEnum(){ return 391;}
++function SmbKEnum(){ return 392;}
++function SmbDEnum(){ return 393;}
++function SmbReEnum(){ return 394;}
++function SmbGdnEnum(){ return 395;}
++function SmbGspEnum(){ return 396;}
++function SmbECEnum(){ return 397;}
++function SmbCondensationEnum(){ return 398;}
++function SmbWEnum(){ return 399;}
++function SmbAEnum(){ return 400;}
++function SmbTEnum(){ return 401;}
++function SmbIsgraingrowthEnum(){ return 402;}
++function SmbIsalbedoEnum(){ return 403;}
++function SmbIsshortwaveEnum(){ return 404;}
++function SmbIsthermalEnum(){ return 405;}
++function SmbIsaccumulationEnum(){ return 406;}
++function SmbIsmeltEnum(){ return 407;}
++function SmbIsdensificationEnum(){ return 408;}
++function SmbIsturbulentfluxEnum(){ return 409;}
++function SMBpddEnum(){ return 410;}
++function SmbDelta18oEnum(){ return 411;}
++function SmbDelta18oSurfaceEnum(){ return 412;}
++function SmbIsdelta18oEnum(){ return 413;}
++function SmbIsmungsmEnum(){ return 414;}
++function SmbIsd18opdEnum(){ return 415;}
++function SmbPrecipitationsPresentdayEnum(){ return 416;}
++function SmbPrecipitationsLgmEnum(){ return 417;}
++function SmbTemperaturesPresentdayEnum(){ return 418;}
++function SmbTemperaturesLgmEnum(){ return 419;}
++function SmbPrecipitationEnum(){ return 420;}
++function SmbDesfacEnum(){ return 421;}
++function SmbS0pEnum(){ return 422;}
++function SmbS0tEnum(){ return 423;}
++function SmbRlapsEnum(){ return 424;}
++function SmbRlapslgmEnum(){ return 425;}
++function SmbPfacEnum(){ return 426;}
++function SmbTdiffEnum(){ return 427;}
++function SmbSealevEnum(){ return 428;}
++function SMBd18opddEnum(){ return 429;}
++function SmbDpermilEnum(){ return 430;}
++function SMBgradientsEnum(){ return 431;}
++function SmbMonthlytemperaturesEnum(){ return 432;}
++function SmbHrefEnum(){ return 433;}
++function SmbSmbrefEnum(){ return 434;}
++function SmbBPosEnum(){ return 435;}
++function SmbBNegEnum(){ return 436;}
++function SMBhenningEnum(){ return 437;}
++function SMBcomponentsEnum(){ return 438;}
++function SmbAccumulationEnum(){ return 439;}
++function SmbEvaporationEnum(){ return 440;}
++function SmbRunoffEnum(){ return 441;}
++function SMBmeltcomponentsEnum(){ return 442;}
++function SmbMeltEnum(){ return 443;}
++function SmbRefreezeEnum(){ return 444;}
++function SMBgcmEnum(){ return 445;}
++function SmbIspddEnum(){ return 446;}
++function SmbIssmbgradientsEnum(){ return 447;}
++function SolutionTypeEnum(){ return 448;}
++function AnalysisTypeEnum(){ return 449;}
++function ConfigurationTypeEnum(){ return 450;}
++function AdjointBalancethicknessAnalysisEnum(){ return 451;}
++function AdjointBalancethickness2AnalysisEnum(){ return 452;}
++function AdjointHorizAnalysisEnum(){ return 453;}
++function AnalysisCounterEnum(){ return 454;}
++function DefaultAnalysisEnum(){ return 455;}
++function BalancethicknessAnalysisEnum(){ return 456;}
++function BalancethicknessSolutionEnum(){ return 457;}
++function Balancethickness2AnalysisEnum(){ return 458;}
++function Balancethickness2SolutionEnum(){ return 459;}
++function BalancethicknessSoftAnalysisEnum(){ return 460;}
++function BalancethicknessSoftSolutionEnum(){ return 461;}
++function BalancevelocityAnalysisEnum(){ return 462;}
++function BalancevelocitySolutionEnum(){ return 463;}
++function L2ProjectionEPLAnalysisEnum(){ return 464;}
++function L2ProjectionBaseAnalysisEnum(){ return 465;}
++function BedSlopeSolutionEnum(){ return 466;}
++function DamageEvolutionSolutionEnum(){ return 467;}
++function DamageEvolutionAnalysisEnum(){ return 468;}
++function StressbalanceAnalysisEnum(){ return 469;}
++function StressbalanceSIAAnalysisEnum(){ return 470;}
++function StressbalanceSolutionEnum(){ return 471;}
++function StressbalanceVerticalAnalysisEnum(){ return 472;}
++function EnthalpyAnalysisEnum(){ return 473;}
++function FlaimAnalysisEnum(){ return 474;}
++function FlaimSolutionEnum(){ return 475;}
++function HydrologyShreveAnalysisEnum(){ return 476;}
++function HydrologyDCInefficientAnalysisEnum(){ return 477;}
++function HydrologyDCEfficientAnalysisEnum(){ return 478;}
++function HydrologySommersAnalysisEnum(){ return 479;}
++function HydrologySolutionEnum(){ return 480;}
++function MeltingAnalysisEnum(){ return 481;}
++function MasstransportAnalysisEnum(){ return 482;}
++function MasstransportSolutionEnum(){ return 483;}
++function FreeSurfaceBaseAnalysisEnum(){ return 484;}
++function FreeSurfaceTopAnalysisEnum(){ return 485;}
++function SurfaceNormalVelocityEnum(){ return 486;}
++function ExtrudeFromBaseAnalysisEnum(){ return 487;}
++function ExtrudeFromTopAnalysisEnum(){ return 488;}
++function DepthAverageAnalysisEnum(){ return 489;}
++function SteadystateSolutionEnum(){ return 490;}
++function SurfaceSlopeSolutionEnum(){ return 491;}
++function SmoothAnalysisEnum(){ return 492;}
++function ThermalAnalysisEnum(){ return 493;}
++function ThermalSolutionEnum(){ return 494;}
++function TransientSolutionEnum(){ return 495;}
++function UzawaPressureAnalysisEnum(){ return 496;}
++function GiaSolutionEnum(){ return 497;}
++function GiaAnalysisEnum(){ return 498;}
++function MeshdeformationSolutionEnum(){ return 499;}
++function MeshdeformationAnalysisEnum(){ return 500;}
++function LevelsetAnalysisEnum(){ return 501;}
++function LevelsetStabilizationEnum(){ return 502;}
++function ExtrapolationAnalysisEnum(){ return 503;}
++function LsfReinitializationAnalysisEnum(){ return 504;}
++function ApproximationEnum(){ return 505;}
++function NoneApproximationEnum(){ return 506;}
++function SIAApproximationEnum(){ return 507;}
++function SSAApproximationEnum(){ return 508;}
++function SSAHOApproximationEnum(){ return 509;}
++function SSAFSApproximationEnum(){ return 510;}
++function L1L2ApproximationEnum(){ return 511;}
++function HOApproximationEnum(){ return 512;}
++function HOFSApproximationEnum(){ return 513;}
++function FSApproximationEnum(){ return 514;}
++function FSvelocityEnum(){ return 515;}
++function FSpressureEnum(){ return 516;}
++function DataSetEnum(){ return 517;}
++function ConstraintsEnum(){ return 518;}
++function LoadsEnum(){ return 519;}
++function MaterialsEnum(){ return 520;}
++function NodesEnum(){ return 521;}
++function ContoursEnum(){ return 522;}
++function ParametersEnum(){ return 523;}
++function VerticesEnum(){ return 524;}
++function ResultsEnum(){ return 525;}
++function GenericParamEnum(){ return 526;}
++function AdolcParamEnum(){ return 527;}
++function BoolInputEnum(){ return 528;}
++function BoolParamEnum(){ return 529;}
++function ContourEnum(){ return 530;}
++function ControlInputEnum(){ return 531;}
++function DatasetInputEnum(){ return 532;}
++function DoubleInputEnum(){ return 533;}
++function DoubleArrayInputEnum(){ return 534;}
++function DataSetParamEnum(){ return 535;}
++function DoubleMatArrayParamEnum(){ return 536;}
++function DoubleMatParamEnum(){ return 537;}
++function DoubleParamEnum(){ return 538;}
++function DoubleVecParamEnum(){ return 539;}
++function ElementEnum(){ return 540;}
++function ElementHookEnum(){ return 541;}
++function HookEnum(){ return 542;}
++function ExternalResultEnum(){ return 543;}
++function FileParamEnum(){ return 544;}
++function InputEnum(){ return 545;}
++function IntInputEnum(){ return 546;}
++function InputToExtrudeEnum(){ return 547;}
++function InputToL2ProjectEnum(){ return 548;}
++function InputToDepthaverageEnum(){ return 549;}
++function InputToSmoothEnum(){ return 550;}
++function SmoothThicknessMultiplierEnum(){ return 551;}
++function IntParamEnum(){ return 552;}
++function IntVecParamEnum(){ return 553;}
++function TransientParamEnum(){ return 554;}
++function MaticeEnum(){ return 555;}
++function MatdamageiceEnum(){ return 556;}
++function MatparEnum(){ return 557;}
++function NodeEnum(){ return 558;}
++function NumericalfluxEnum(){ return 559;}
++function NumericalfluxTypeEnum(){ return 560;}
++function NeumannfluxEnum(){ return 561;}
++function ParamEnum(){ return 562;}
++function MoulinEnum(){ return 563;}
++function PengridEnum(){ return 564;}
++function PenpairEnum(){ return 565;}
++function ProfilerEnum(){ return 566;}
++function MatrixParamEnum(){ return 567;}
++function MassconEnum(){ return 568;}
++function MassconNameEnum(){ return 569;}
++function MassconDefinitionenumEnum(){ return 570;}
++function MassconLevelsetEnum(){ return 571;}
++function MassconaxpbyEnum(){ return 572;}
++function MassconaxpbyNameEnum(){ return 573;}
++function MassconaxpbyDefinitionenumEnum(){ return 574;}
++function MassconaxpbyNamexEnum(){ return 575;}
++function MassconaxpbyNameyEnum(){ return 576;}
++function MassconaxpbyAlphaEnum(){ return 577;}
++function MassconaxpbyBetaEnum(){ return 578;}
++function NodeSIdEnum(){ return 579;}
++function VectorParamEnum(){ return 580;}
++function RiftfrontEnum(){ return 581;}
++function RiftfrontTypeEnum(){ return 582;}
++function SegmentEnum(){ return 583;}
++function SegmentRiftfrontEnum(){ return 584;}
++function SpcDynamicEnum(){ return 585;}
++function SpcStaticEnum(){ return 586;}
++function SpcTransientEnum(){ return 587;}
++function StringArrayParamEnum(){ return 588;}
++function StringParamEnum(){ return 589;}
++function SegEnum(){ return 590;}
++function SegInputEnum(){ return 591;}
++function TriaEnum(){ return 592;}
++function TriaInputEnum(){ return 593;}
++function TetraEnum(){ return 594;}
++function TetraInputEnum(){ return 595;}
++function PentaEnum(){ return 596;}
++function PentaInputEnum(){ return 597;}
++function VertexEnum(){ return 598;}
++function VertexPIdEnum(){ return 599;}
++function VertexSIdEnum(){ return 600;}
++function AirEnum(){ return 601;}
++function IceEnum(){ return 602;}
++function MelangeEnum(){ return 603;}
++function WaterEnum(){ return 604;}
++function ClosedEnum(){ return 605;}
++function FreeEnum(){ return 606;}
++function OpenEnum(){ return 607;}
++function AdjointpEnum(){ return 608;}
++function AdjointxEnum(){ return 609;}
++function AdjointyEnum(){ return 610;}
++function AdjointzEnum(){ return 611;}
++function BalancethicknessMisfitEnum(){ return 612;}
++function BedSlopeXEnum(){ return 613;}
++function BedSlopeYEnum(){ return 614;}
++function BoundaryEnum(){ return 615;}
++function ConvergedEnum(){ return 616;}
++function FillEnum(){ return 617;}
++function FractionIncrementEnum(){ return 618;}
++function FrictionEnum(){ return 619;}
++function InternalEnum(){ return 620;}
++function MassFluxEnum(){ return 621;}
++function MeltingOffsetEnum(){ return 622;}
++function MisfitEnum(){ return 623;}
++function PressureEnum(){ return 624;}
++function PressurePicardEnum(){ return 625;}
++function AndroidFrictionCoefficientEnum(){ return 626;}
++function ResetPenaltiesEnum(){ return 627;}
++function SegmentOnIceShelfEnum(){ return 628;}
++function SurfaceAbsVelMisfitEnum(){ return 629;}
++function SurfaceAreaEnum(){ return 630;}
++function SurfaceAverageVelMisfitEnum(){ return 631;}
++function SurfaceLogVelMisfitEnum(){ return 632;}
++function SurfaceLogVxVyMisfitEnum(){ return 633;}
++function SurfaceRelVelMisfitEnum(){ return 634;}
++function SurfaceSlopeXEnum(){ return 635;}
++function SurfaceSlopeYEnum(){ return 636;}
++function TemperatureEnum(){ return 637;}
++function TemperaturePicardEnum(){ return 638;}
++function TemperaturePDDEnum(){ return 639;}
++function ThicknessAbsMisfitEnum(){ return 640;}
++function SurfaceAbsMisfitEnum(){ return 641;}
++function VelEnum(){ return 642;}
++function VelocityEnum(){ return 643;}
++function VxAverageEnum(){ return 644;}
++function VxEnum(){ return 645;}
++function VxPicardEnum(){ return 646;}
++function VyAverageEnum(){ return 647;}
++function VyEnum(){ return 648;}
++function VyPicardEnum(){ return 649;}
++function VzEnum(){ return 650;}
++function VzSSAEnum(){ return 651;}
++function VzHOEnum(){ return 652;}
++function VzPicardEnum(){ return 653;}
++function VzFSEnum(){ return 654;}
++function VxMeshEnum(){ return 655;}
++function VyMeshEnum(){ return 656;}
++function VzMeshEnum(){ return 657;}
++function EnthalpyEnum(){ return 658;}
++function EnthalpyPicardEnum(){ return 659;}
++function ThicknessAbsGradientEnum(){ return 660;}
++function ThicknessAlongGradientEnum(){ return 661;}
++function ThicknessAcrossGradientEnum(){ return 662;}
++function IntMatParamEnum(){ return 663;}
++function RheologyBbarAbsGradientEnum(){ return 664;}
++function RheologyBAbsGradientEnum(){ return 665;}
++function DragCoefficientAbsGradientEnum(){ return 666;}
++function TransientInputEnum(){ return 667;}
++function WaterfractionEnum(){ return 668;}
++function WatercolumnEnum(){ return 669;}
++function BasalFrictionEnum(){ return 670;}
++function ViscousHeatingEnum(){ return 671;}
++function HydrologyWaterVxEnum(){ return 672;}
++function HydrologyWaterVyEnum(){ return 673;}
++function DrivingStressXEnum(){ return 674;}
++function DrivingStressYEnum(){ return 675;}
++function SigmaNNEnum(){ return 676;}
++function StressTensorEnum(){ return 677;}
++function StressTensorxxEnum(){ return 678;}
++function StressTensorxyEnum(){ return 679;}
++function StressTensorxzEnum(){ return 680;}
++function StressTensoryyEnum(){ return 681;}
++function StressTensoryzEnum(){ return 682;}
++function StressTensorzzEnum(){ return 683;}
++function StressMaxPrincipalEnum(){ return 684;}
++function DeviatoricStressEnum(){ return 685;}
++function DeviatoricStressxxEnum(){ return 686;}
++function DeviatoricStressxyEnum(){ return 687;}
++function DeviatoricStressxzEnum(){ return 688;}
++function DeviatoricStressyyEnum(){ return 689;}
++function DeviatoricStressyzEnum(){ return 690;}
++function DeviatoricStresszzEnum(){ return 691;}
++function DeviatoricStresseffectiveEnum(){ return 692;}
++function StrainRateEnum(){ return 693;}
++function StrainRatexxEnum(){ return 694;}
++function StrainRatexyEnum(){ return 695;}
++function StrainRatexzEnum(){ return 696;}
++function StrainRateyyEnum(){ return 697;}
++function StrainRateyzEnum(){ return 698;}
++function StrainRatezzEnum(){ return 699;}
++function DivergenceEnum(){ return 700;}
++function MaxDivergenceEnum(){ return 701;}
++function GiaCrossSectionShapeEnum(){ return 702;}
++function GiadWdtEnum(){ return 703;}
++function GiaWEnum(){ return 704;}
++function P0Enum(){ return 705;}
++function P0ArrayEnum(){ return 706;}
++function P1Enum(){ return 707;}
++function P1DGEnum(){ return 708;}
++function P1bubbleEnum(){ return 709;}
++function P1bubblecondensedEnum(){ return 710;}
++function P2Enum(){ return 711;}
++function P2bubbleEnum(){ return 712;}
++function P2bubblecondensedEnum(){ return 713;}
++function P2xP1Enum(){ return 714;}
++function P1xP2Enum(){ return 715;}
++function P1xP3Enum(){ return 716;}
++function P2xP4Enum(){ return 717;}
++function P1P1Enum(){ return 718;}
++function P1P1GLSEnum(){ return 719;}
++function MINIEnum(){ return 720;}
++function MINIcondensedEnum(){ return 721;}
++function TaylorHoodEnum(){ return 722;}
++function LATaylorHoodEnum(){ return 723;}
++function XTaylorHoodEnum(){ return 724;}
++function OneLayerP4zEnum(){ return 725;}
++function CrouzeixRaviartEnum(){ return 726;}
++function LACrouzeixRaviartEnum(){ return 727;}
++function SaveResultsEnum(){ return 728;}
++function BoolExternalResultEnum(){ return 729;}
++function DoubleExternalResultEnum(){ return 730;}
++function DoubleMatExternalResultEnum(){ return 731;}
++function IntExternalResultEnum(){ return 732;}
++function JEnum(){ return 733;}
++function StringExternalResultEnum(){ return 734;}
++function StepEnum(){ return 735;}
++function TimeEnum(){ return 736;}
++function WaterColumnOldEnum(){ return 737;}
++function OutputdefinitionEnum(){ return 738;}
++function Outputdefinition1Enum(){ return 739;}
++function Outputdefinition2Enum(){ return 740;}
++function Outputdefinition3Enum(){ return 741;}
++function Outputdefinition4Enum(){ return 742;}
++function Outputdefinition5Enum(){ return 743;}
++function Outputdefinition6Enum(){ return 744;}
++function Outputdefinition7Enum(){ return 745;}
++function Outputdefinition8Enum(){ return 746;}
++function Outputdefinition9Enum(){ return 747;}
++function Outputdefinition10Enum(){ return 748;}
++function Outputdefinition11Enum(){ return 749;}
++function Outputdefinition12Enum(){ return 750;}
++function Outputdefinition13Enum(){ return 751;}
++function Outputdefinition14Enum(){ return 752;}
++function Outputdefinition15Enum(){ return 753;}
++function Outputdefinition16Enum(){ return 754;}
++function Outputdefinition17Enum(){ return 755;}
++function Outputdefinition18Enum(){ return 756;}
++function Outputdefinition19Enum(){ return 757;}
++function Outputdefinition20Enum(){ return 758;}
++function Outputdefinition21Enum(){ return 759;}
++function Outputdefinition22Enum(){ return 760;}
++function Outputdefinition23Enum(){ return 761;}
++function Outputdefinition24Enum(){ return 762;}
++function Outputdefinition25Enum(){ return 763;}
++function Outputdefinition26Enum(){ return 764;}
++function Outputdefinition27Enum(){ return 765;}
++function Outputdefinition28Enum(){ return 766;}
++function Outputdefinition29Enum(){ return 767;}
++function Outputdefinition30Enum(){ return 768;}
++function Outputdefinition31Enum(){ return 769;}
++function Outputdefinition32Enum(){ return 770;}
++function Outputdefinition33Enum(){ return 771;}
++function Outputdefinition34Enum(){ return 772;}
++function Outputdefinition35Enum(){ return 773;}
++function Outputdefinition36Enum(){ return 774;}
++function Outputdefinition37Enum(){ return 775;}
++function Outputdefinition38Enum(){ return 776;}
++function Outputdefinition39Enum(){ return 777;}
++function Outputdefinition40Enum(){ return 778;}
++function Outputdefinition41Enum(){ return 779;}
++function Outputdefinition42Enum(){ return 780;}
++function Outputdefinition43Enum(){ return 781;}
++function Outputdefinition44Enum(){ return 782;}
++function Outputdefinition45Enum(){ return 783;}
++function Outputdefinition46Enum(){ return 784;}
++function Outputdefinition47Enum(){ return 785;}
++function Outputdefinition48Enum(){ return 786;}
++function Outputdefinition49Enum(){ return 787;}
++function Outputdefinition50Enum(){ return 788;}
++function Outputdefinition51Enum(){ return 789;}
++function Outputdefinition52Enum(){ return 790;}
++function Outputdefinition53Enum(){ return 791;}
++function Outputdefinition54Enum(){ return 792;}
++function Outputdefinition55Enum(){ return 793;}
++function Outputdefinition56Enum(){ return 794;}
++function Outputdefinition57Enum(){ return 795;}
++function Outputdefinition58Enum(){ return 796;}
++function Outputdefinition59Enum(){ return 797;}
++function Outputdefinition60Enum(){ return 798;}
++function Outputdefinition61Enum(){ return 799;}
++function Outputdefinition62Enum(){ return 800;}
++function Outputdefinition63Enum(){ return 801;}
++function Outputdefinition64Enum(){ return 802;}
++function Outputdefinition65Enum(){ return 803;}
++function Outputdefinition66Enum(){ return 804;}
++function Outputdefinition67Enum(){ return 805;}
++function Outputdefinition68Enum(){ return 806;}
++function Outputdefinition69Enum(){ return 807;}
++function Outputdefinition70Enum(){ return 808;}
++function Outputdefinition71Enum(){ return 809;}
++function Outputdefinition72Enum(){ return 810;}
++function Outputdefinition73Enum(){ return 811;}
++function Outputdefinition74Enum(){ return 812;}
++function Outputdefinition75Enum(){ return 813;}
++function Outputdefinition76Enum(){ return 814;}
++function Outputdefinition77Enum(){ return 815;}
++function Outputdefinition78Enum(){ return 816;}
++function Outputdefinition79Enum(){ return 817;}
++function Outputdefinition80Enum(){ return 818;}
++function Outputdefinition81Enum(){ return 819;}
++function Outputdefinition82Enum(){ return 820;}
++function Outputdefinition83Enum(){ return 821;}
++function Outputdefinition84Enum(){ return 822;}
++function Outputdefinition85Enum(){ return 823;}
++function Outputdefinition86Enum(){ return 824;}
++function Outputdefinition87Enum(){ return 825;}
++function Outputdefinition88Enum(){ return 826;}
++function Outputdefinition89Enum(){ return 827;}
++function Outputdefinition90Enum(){ return 828;}
++function Outputdefinition91Enum(){ return 829;}
++function Outputdefinition92Enum(){ return 830;}
++function Outputdefinition93Enum(){ return 831;}
++function Outputdefinition94Enum(){ return 832;}
++function Outputdefinition95Enum(){ return 833;}
++function Outputdefinition96Enum(){ return 834;}
++function Outputdefinition97Enum(){ return 835;}
++function Outputdefinition98Enum(){ return 836;}
++function Outputdefinition99Enum(){ return 837;}
++function Outputdefinition100Enum(){ return 838;}
++function OutputdefinitionListEnum(){ return 839;}
++function MassfluxatgateEnum(){ return 840;}
++function MassfluxatgateNameEnum(){ return 841;}
++function MassfluxatgateDefinitionenumEnum(){ return 842;}
++function MassfluxatgateSegmentsEnum(){ return 843;}
++function MisfitNameEnum(){ return 844;}
++function MisfitDefinitionenumEnum(){ return 845;}
++function MisfitModelEnum(){ return 846;}
++function MisfitObservationEnum(){ return 847;}
++function MisfitObservationEnum(){ return 848;}
++function MisfitLocalEnum(){ return 849;}
++function MisfitTimeinterpolationEnum(){ return 850;}
++function MisfitWeightsEnum(){ return 851;}
++function MisfitWeightsEnum(){ return 852;}
++function SurfaceObservationEnum(){ return 853;}
++function WeightsSurfaceObservationEnum(){ return 854;}
++function VxObsEnum(){ return 855;}
++function WeightsVxObsEnum(){ return 856;}
++function VyObsEnum(){ return 857;}
++function WeightsVyObsEnum(){ return 858;}
++function MinVelEnum(){ return 859;}
++function MaxVelEnum(){ return 860;}
++function MinVxEnum(){ return 861;}
++function MaxVxEnum(){ return 862;}
++function MaxAbsVxEnum(){ return 863;}
++function MinVyEnum(){ return 864;}
++function MaxVyEnum(){ return 865;}
++function MaxAbsVyEnum(){ return 866;}
++function MinVzEnum(){ return 867;}
++function MaxVzEnum(){ return 868;}
++function MaxAbsVzEnum(){ return 869;}
++function FloatingAreaEnum(){ return 870;}
++function GroundedAreaEnum(){ return 871;}
++function IceMassEnum(){ return 872;}
++function IceVolumeEnum(){ return 873;}
++function IceVolumeAboveFloatationEnum(){ return 874;}
++function TotalSmbEnum(){ return 875;}
++function AbsoluteEnum(){ return 876;}
++function IncrementalEnum(){ return 877;}
++function AugmentedLagrangianREnum(){ return 878;}
++function AugmentedLagrangianRhopEnum(){ return 879;}
++function AugmentedLagrangianRlambdaEnum(){ return 880;}
++function AugmentedLagrangianRholambdaEnum(){ return 881;}
++function AugmentedLagrangianThetaEnum(){ return 882;}
++function NoneEnum(){ return 883;}
++function AggressiveMigrationEnum(){ return 884;}
++function SoftMigrationEnum(){ return 885;}
++function SubelementMigrationEnum(){ return 886;}
++function SubelementMigration2Enum(){ return 887;}
++function ContactEnum(){ return 888;}
++function GroundingOnlyEnum(){ return 889;}
++function MaskGroundediceLevelsetEnum(){ return 890;}
++function GaussSegEnum(){ return 891;}
++function GaussTriaEnum(){ return 892;}
++function GaussTetraEnum(){ return 893;}
++function GaussPentaEnum(){ return 894;}
++function FSSolverEnum(){ return 895;}
++function AdjointEnum(){ return 896;}
++function ColinearEnum(){ return 897;}
++function ControlSteadyEnum(){ return 898;}
++function FsetEnum(){ return 899;}
++function Gradient1Enum(){ return 900;}
++function Gradient2Enum(){ return 901;}
++function Gradient3Enum(){ return 902;}
++function GradientEnum(){ return 903;}
++function GroundinglineMigrationEnum(){ return 904;}
++function GsetEnum(){ return 905;}
++function IndexEnum(){ return 906;}
++function IndexedEnum(){ return 907;}
++function IntersectEnum(){ return 908;}
++function NodalEnum(){ return 909;}
++function OldGradientEnum(){ return 910;}
++function OutputBufferPointerEnum(){ return 911;}
++function OutputBufferSizePointerEnum(){ return 912;}
++function OutputFilePointerEnum(){ return 913;}
++function ToolkitsFileNameEnum(){ return 914;}
++function RootPathEnum(){ return 915;}
++function OutputFileNameEnum(){ return 916;}
++function InputFileNameEnum(){ return 917;}
++function LockFileNameEnum(){ return 918;}
++function RestartFileNameEnum(){ return 919;}
++function ToolkitsOptionsAnalysesEnum(){ return 920;}
++function ToolkitsOptionsStringsEnum(){ return 921;}
++function QmuErrNameEnum(){ return 922;}
++function QmuInNameEnum(){ return 923;}
++function QmuOutNameEnum(){ return 924;}
++function RegularEnum(){ return 925;}
++function ScaledEnum(){ return 926;}
++function SeparateEnum(){ return 927;}
++function SsetEnum(){ return 928;}
++function VerboseEnum(){ return 929;}
++function TriangleInterpEnum(){ return 930;}
++function BilinearInterpEnum(){ return 931;}
++function NearestInterpEnum(){ return 932;}
++function XYEnum(){ return 933;}
++function XYZEnum(){ return 934;}
++function DenseEnum(){ return 935;}
++function MpiDenseEnum(){ return 936;}
++function MpiSparseEnum(){ return 937;}
++function SeqEnum(){ return 938;}
++function MpiEnum(){ return 939;}
++function MumpsEnum(){ return 940;}
++function GslEnum(){ return 941;}
++function OptionEnum(){ return 942;}
++function GenericOptionEnum(){ return 943;}
++function OptionCellEnum(){ return 944;}
++function OptionStructEnum(){ return 945;}
++function CuffeyEnum(){ return 946;}
++function PatersonEnum(){ return 947;}
++function ArrheniusEnum(){ return 948;}
++function LliboutryDuvalEnum(){ return 949;}
++function TransientIslevelsetEnum(){ return 950;}
++function SpcLevelsetEnum(){ return 951;}
++function ExtrapolationVariableEnum(){ return 952;}
++function IceMaskNodeActivationEnum(){ return 953;}
++function LevelsetfunctionSlopeXEnum(){ return 954;}
++function LevelsetfunctionSlopeYEnum(){ return 955;}
++function LevelsetfunctionPicardEnum(){ return 956;}
++function SealevelriseSolutionEnum(){ return 957;}
++function SealevelriseAnalysisEnum(){ return 958;}
++function SealevelriseSEnum(){ return 959;}
++function SealevelriseDeltathicknessEnum(){ return 960;}
++function SealevelriseMaxiterEnum(){ return 961;}
++function SealevelriseReltolEnum(){ return 962;}
++function SealevelriseAbstolEnum(){ return 963;}
++function SealevelriseLoveHEnum(){ return 964;}
++function SealevelriseLoveKEnum(){ return 965;}
++function SealevelriseRigidEnum(){ return 966;}
++function SealevelriseElasticEnum(){ return 967;}
++function SealevelriseEustaticEnum(){ return 968;}
++function MaximumNumberOfDefinitionsEnum(){ return 969;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseLoveKEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLoveKEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseLoveKEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseLoveKEnum()
++%SEALEVELRISELOVEKENUM - Enum of SealevelriseLoveK
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseLoveKEnum()
++
++macro=StringToEnum('SealevelriseLoveK');
+Index: ../trunk-jpl/src/m/enum/MeshLatEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MeshLatEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MeshLatEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=MeshLatEnum()
++%MESHLATENUM - Enum of MeshLat
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MeshLatEnum()
++
++macro=StringToEnum('MeshLat');
+Index: ../trunk-jpl/src/m/enum/SealevelriseRigidEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseRigidEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseRigidEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseRigidEnum()
++%SEALEVELRISERIGIDENUM - Enum of SealevelriseRigid
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseRigidEnum()
++
++macro=StringToEnum('SealevelriseRigid');
+Index: ../trunk-jpl/src/m/enum/SealevelriseElasticEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseElasticEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseElasticEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseElasticEnum()
++%SEALEVELRISEELASTICENUM - Enum of SealevelriseElastic
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseElasticEnum()
++
++macro=StringToEnum('SealevelriseElastic');
+Index: ../trunk-jpl/src/m/enum/SealevelriseSEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseSEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseSEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseSEnum()
++%SEALEVELRISESENUM - Enum of SealevelriseS
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseSEnum()
++
++macro=StringToEnum('SealevelriseS');
+Index: ../trunk-jpl/src/m/enum/MeshLongEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MeshLongEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MeshLongEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=MeshLongEnum()
++%MESHLONGENUM - Enum of MeshLong
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MeshLongEnum()
++
++macro=StringToEnum('MeshLong');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19977)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19978)
+@@ -195,6 +195,7 @@
+ def InversionVyObsEnum(): return StringToEnum("InversionVyObs")[0]
+ def InversionVzObsEnum(): return StringToEnum("InversionVzObs")[0]
+ def MaskIceLevelsetEnum(): return StringToEnum("MaskIceLevelset")[0]
++def MaskOceanLevelsetEnum(): return StringToEnum("MaskOceanLevelset")[0]
+ def MaterialsBetaEnum(): return StringToEnum("MaterialsBeta")[0]
+ def MaterialsHeatcapacityEnum(): return StringToEnum("MaterialsHeatcapacity")[0]
+ def MaterialsLatentheatEnum(): return StringToEnum("MaterialsLatentheat")[0]
+@@ -257,6 +258,7 @@
+ def MaterialsLithosphereDensityEnum(): return StringToEnum("MaterialsLithosphereDensity")[0]
+ def MaterialsMantleShearModulusEnum(): return StringToEnum("MaterialsMantleShearModulus")[0]
+ def MaterialsMantleDensityEnum(): return StringToEnum("MaterialsMantleDensity")[0]
++def MaterialsEarthDensityEnum(): return StringToEnum("MaterialsEarthDensity")[0]
+ def MeshAverageVertexConnectivityEnum(): return StringToEnum("MeshAverageVertexConnectivity")[0]
+ def MeshElements2dEnum(): return StringToEnum("MeshElements2d")[0]
+ def MeshElementsEnum(): return StringToEnum("MeshElements")[0]
+@@ -273,6 +275,9 @@
+ def MeshXEnum(): return StringToEnum("MeshX")[0]
+ def MeshYEnum(): return StringToEnum("MeshY")[0]
+ def MeshZEnum(): return StringToEnum("MeshZ")[0]
++def MeshLatEnum(): return StringToEnum("MeshLat")[0]
++def MeshLongEnum(): return StringToEnum("MeshLong")[0]
++def MeshREnum(): return StringToEnum("MeshR")[0]
+ def MeshElementtypeEnum(): return StringToEnum("MeshElementtype")[0]
+ def MeshSegmentsEnum(): return StringToEnum("MeshSegments")[0]
+ def DomainTypeEnum(): return StringToEnum("DomainType")[0]
+@@ -280,6 +285,7 @@
+ def Domain2DhorizontalEnum(): return StringToEnum("Domain2Dhorizontal")[0]
+ def Domain2DverticalEnum(): return StringToEnum("Domain2Dvertical")[0]
+ def Domain3DEnum(): return StringToEnum("Domain3D")[0]
++def Domain3DsurfaceEnum(): return StringToEnum("Domain3Dsurface")[0]
+ def MiscellaneousNameEnum(): return StringToEnum("MiscellaneousName")[0]
+ def MasstransportHydrostaticAdjustmentEnum(): return StringToEnum("MasstransportHydrostaticAdjustment")[0]
+ def MasstransportIsfreesurfaceEnum(): return StringToEnum("MasstransportIsfreesurface")[0]
+@@ -959,4 +965,16 @@
+ def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
+ def LevelsetfunctionSlopeYEnum(): return StringToEnum("LevelsetfunctionSlopeY")[0]
+ def LevelsetfunctionPicardEnum(): return StringToEnum("LevelsetfunctionPicard")[0]
++def SealevelriseSolutionEnum(): return StringToEnum("SealevelriseSolution")[0]
++def SealevelriseAnalysisEnum(): return StringToEnum("SealevelriseAnalysis")[0]
++def SealevelriseSEnum(): return StringToEnum("SealevelriseS")[0]
++def SealevelriseDeltathicknessEnum(): return StringToEnum("SealevelriseDeltathickness")[0]
++def SealevelriseMaxiterEnum(): return StringToEnum("SealevelriseMaxiter")[0]
++def SealevelriseReltolEnum(): return StringToEnum("SealevelriseReltol")[0]
++def SealevelriseAbstolEnum(): return StringToEnum("SealevelriseAbstol")[0]
++def SealevelriseLoveHEnum(): return StringToEnum("SealevelriseLoveH")[0]
++def SealevelriseLoveKEnum(): return StringToEnum("SealevelriseLoveK")[0]
++def SealevelriseRigidEnum(): return StringToEnum("SealevelriseRigid")[0]
++def SealevelriseElasticEnum(): return StringToEnum("SealevelriseElastic")[0]
++def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
+Index: ../trunk-jpl/src/m/enum/SealevelriseAnalysisEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseAnalysisEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseAnalysisEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseAnalysisEnum()
++%SEALEVELRISEANALYSISENUM - Enum of SealevelriseAnalysis
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseAnalysisEnum()
++
++macro=StringToEnum('SealevelriseAnalysis');
+Index: ../trunk-jpl/src/m/enum/MaterialsEarthDensityEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MaterialsEarthDensityEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MaterialsEarthDensityEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=MaterialsEarthDensityEnum()
++%MATERIALSEARTHDENSITYENUM - Enum of MaterialsEarthDensity
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MaterialsEarthDensityEnum()
++
++macro=StringToEnum('MaterialsEarthDensity');
+Index: ../trunk-jpl/src/m/enum/MaskOceanLevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MaskOceanLevelsetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MaskOceanLevelsetEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=MaskOceanLevelsetEnum()
++%MASKOCEANLEVELSETENUM - Enum of MaskOceanLevelset
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MaskOceanLevelsetEnum()
++
++macro=StringToEnum('MaskOceanLevelset');
+Index: ../trunk-jpl/src/m/enum/SealevelriseDeltathicknessEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseDeltathicknessEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseDeltathicknessEnum.m	(revision 19978)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseDeltathicknessEnum()
++%SEALEVELRISEDELTATHICKNESSENUM - Enum of SealevelriseDeltathickness
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseDeltathicknessEnum()
++
++macro=StringToEnum('SealevelriseDeltathickness');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19978-19979.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19978-19979.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19978-19979.diff	(revision 20498)
@@ -0,0 +1,167 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 0)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 19979)
+@@ -0,0 +1,150 @@
++/*!\file:  legendre.cpp
++ \brief compute legendre polynomial at specific x. 
++ This is inspired from the p_polynomial_value package, written by John Burkardt (see below 
++ for full documentation). 
++ Here, we apply the function differently: we assume previous two evaluations are provided, 
++ and we compute the level n evaluation: 
++
++*/
++
++/* function v = p_polynomial_value ( m, n, x ) {{{
++
++	%*****************************************************************************80
++	%
++	%% P_POLYNOMIAL_VALUE evaluates the Legendre polynomials P(n,x).
++	%
++	%  Discussion:
++	%
++	%    P(n,1) = 1.
++	%    P(n,-1) = (-1)^N.
++	%    | P(n,x) | <= 1 in [-1,1].
++	%
++	%    The N zeroes of P(n,x) are the abscissas used for Gauss-Legendre
++	%    quadrature of the integral of a function F(X) with weight function 1
++	%    over the interval [-1,1].
++	%
++	%    The Legendre polynomials are orthogonal under the inner product defined
++	%    as integration from -1 to 1:
++	%
++	%      Integral ( -1 <= X <= 1 ) P(I,X) * P(J,X) dX 
++	%        = 0 if I =/= J
++	%        = 2 / ( 2*I+1 ) if I = J.
++	%
++	%    Except for P(0,X), the integral of P(I,X) from -1 to 1 is 0.
++	%
++	%    A function F(X) defined on [-1,1] may be approximated by the series
++	%      C0*P(0,x) + C1*P(1,x) + ... + CN*P(n,x)
++	%    where
++	%      C(I) = (2*I+1)/(2) * Integral ( -1 <= X <= 1 ) F(X) P(I,x) dx.
++	%
++	%    The formula is:
++	%
++	%      P(n,x) = (1/2^N) * sum ( 0 <= M <= N/2 ) C(N,M) C(2N-2M,N) X^(N-2*M)
++	%
++	%  Differential equation:
++	%
++	%    (1-X*X) * P(n,x)'' - 2 * X * P(n,x)' + N * (N+1) = 0
++	%
++	%  First terms:
++	%
++	%    P( 0,x) =      1
++	%    P( 1,x) =      1 X
++	%    P( 2,x) = (    3 X^2 -       1)/2
++	%    P( 3,x) = (    5 X^3 -     3 X)/2
++	%    P( 4,x) = (   35 X^4 -    30 X^2 +     3)/8
++	%    P( 5,x) = (   63 X^5 -    70 X^3 +    15 X)/8
++	%    P( 6,x) = (  231 X^6 -   315 X^4 +   105 X^2 -     5)/16
++	%    P( 7,x) = (  429 X^7 -   693 X^5 +   315 X^3 -    35 X)/16
++	%    P( 8,x) = ( 6435 X^8 - 12012 X^6 +  6930 X^4 -  1260 X^2 +   35)/128
++	%    P( 9,x) = (12155 X^9 - 25740 X^7 + 18018 X^5 -  4620 X^3 +  315 X)/128
++	%    P(10,x) = (46189 X^10-109395 X^8 + 90090 X^6 - 30030 X^4 + 3465 X^2-63)/256
++	%
++	%  Recursion:
++	%
++	%    P(0,x) = 1
++	%    P(1,x) = x
++	%    P(n,x) = ( (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x) ) / n
++	%
++	%    P'(0,x) = 0
++	%    P'(1,x) = 1
++	%    P'(N,x) = ( (2*N-1)*(P(N-1,x)+X*P'(N-1,x)-(N-1)*P'(N-2,x) ) / N
++	%
++	%  Licensing:
++	%
++	%    This code is distributed under the GNU LGPL license. 
++	%
++	%  Modified:
++	%
++	%    10 March 2012
++	%
++	%  Author:
++	%
++	%    John Burkardt
++	%
++	%  Reference:
++	%
++	%    Milton Abramowitz, Irene Stegun,
++	%    Handbook of Mathematical Functions,
++	%    National Bureau of Standards, 1964,
++	%    ISBN: 0-486-61272-4,
++	%    LC: QA47.A34.
++	%
++	%    Daniel Zwillinger, editor,
++	%    CRC Standard Mathematical Tables and Formulae,
++	%    30th Edition,
++	%    CRC Press, 1996.
++	%
++	%  Parameters:
++	%
++	%    Input, integer M, the number of evaluation points.
++	%
++	%    Input, integer N, the highest order polynomial to evaluate.
++	%    Note that polynomials 0 through N will be evaluated.
++	%
++	%    Input, real X(M,1), the evaluation points.
++	%
++	%    Output, real V(M,1:N+1), the values of the Legendre polynomials 
++	%    of order 0 through N at the points X.
++	%
++	  if ( n < 0 )
++		v = [];
++		return
++	  end
++
++	  v = ones ( m, n + 1 );
++
++	  if ( n < 1 )
++		return
++	  end
++
++	  v(1:m,2) = x;
++
++	  for i = 2 : n
++	 
++		v(:,i+1) = ( ( 2 * i - 1 ) * x .* v(:,i)   ...
++					-  (     i - 1 ) *    v(:,i-1) ) ...
++					/  (     i     );
++	 
++	  end
++	  }}}  */ 
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./types.h"
++#include "../Exceptions/exceptions.h"
++#include "./recast.h"
++
++IssmDouble legendre(IssmDouble Pn1, IssmDouble Pn2, IssmDouble x, int n){
++
++	if (n<0)_error_("legendre error message: order required should be >0");
++
++	if(n==0)return 1;
++	if(n==1)return x;
++
++	return ( (2*n-1)*x*Pn1 - (n-1)*Pn2 ) /n;
++	
++}
+Index: ../trunk-jpl/src/c/shared/Numerics/numerics.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 19978)
++++ ../trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 19979)
+@@ -33,6 +33,7 @@
+ void        cross(IssmDouble *result,IssmDouble*vector1,IssmDouble*vector2);
+ void        XZvectorsToCoordinateSystem(IssmDouble *T,IssmDouble*xzvectors);
+ int         cubic(IssmDouble a, IssmDouble b, IssmDouble c, IssmDouble d,IssmDouble X[3], int *num);
++IssmDouble  legendre(IssmDouble Pn1, IssmDouble Pn2, IssmDouble x, int i);
+ 
+ int         NewtonSolveDnorm(IssmDouble* pdnorm,IssmDouble c1,IssmDouble c2,IssmDouble c3,IssmDouble n,IssmDouble dnorm);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-19979-19980.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19979-19980.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19979-19980.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 19979)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 19980)
+@@ -154,6 +154,7 @@
+ 				${ISSM_DIR}/src/m/plot/plotmodel.js \
+ 				${ISSM_DIR}/src/m/plot/processdata.js \
+ 				${ISSM_DIR}/src/m/plot/processmesh.js \
++				${ISSM_DIR}/src/m/plot/gauge.js \
+ 				${ISSM_DIR}/src/m/plot/webgl.js \
+ 				${ISSM_DIR}/src/m/solve/loadresultsfrombuffer.js \
+ 				${ISSM_DIR}/src/m/solve/marshall.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-19980-19981.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19980-19981.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19980-19981.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19980)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 19981)
+@@ -5,7 +5,18 @@
+ %      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
+ %
+ 
+-
++	%Check lat and long size is not more than 50,000; If so, recursively call gmtmask: 
++	if length(lat)>50000,
++		for i=1:50000:length(lat),
++			j=i+50000-1;
++			if j>length(lat),
++				j=length(lat);
++			end
++			mask(i:j)=gmtmask(lat(i:j),long(i:j));
++		end
++		return
++	end
++	
+ 	%First, write our lat,long file for gmt:
+ 	nv=length(lat);
+ 	dlmwrite('./all_vertices.txt',[long lat (1:nv)'],'delimiter','\t');
Index: /issm/oecreview/Archive/19101-20495/ISSM-19981-19982.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19981-19982.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19981-19982.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19981)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 19982)
+@@ -136,8 +136,8 @@
+ 			WriteData(fid,'object',obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',obj,'class','mesh','fieldname','z','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',obj,'class','mesh','fieldname','lat','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',obj,'class','mesh','fieldname','long','format','DoubleMat','mattype',1);
++			WriteData(fid,'enum',MeshLatEnum(),'data',obj.lat,'format','DoubleMat','mattype',1);
++			WriteData(fid,'enum',MeshLongEnum(),'data',obj.long,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',obj,'class','mesh','fieldname','r','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'enum',MeshZEnum(),'data',zeros(obj.numberofvertices,1),'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2);
Index: /issm/oecreview/Archive/19101-20495/ISSM-19982-19983.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19982-19983.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19982-19983.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/cores/gia_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/gia_core.cpp	(revision 19982)
++++ ../trunk-jpl/src/c/cores/gia_core.cpp	(revision 19983)
+@@ -52,5 +52,9 @@
+ 		int outputs[2] = {GiaWEnum,GiadWdtEnum};
+ 		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2);
+ 	}
++	
++	xDelete<IssmDouble>(x);
++	xDelete<IssmDouble>(y);
+ 
++
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-19983-19984.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19983-19984.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19983-19984.diff	(revision 20498)
@@ -0,0 +1,1254 @@
+Index: ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/analyses/EnumToAnalysis.cpp	(revision 19984)
+@@ -115,6 +115,9 @@
+ 		#ifdef _HAVE_LSFREINITIALIZATION_
+ 		case LsfReinitializationAnalysisEnum : return new LsfReinitializationAnalysis();
+ 		#endif
++		#ifdef _HAVE_SEALEVELRISE_
++		case SealevelriseAnalysisEnum : return new SealevelriseAnalysis();
++		#endif
+ 		default : _error_("enum provided not supported ("<<EnumToStringx(analysis_enum)<<")");
+ 	}
+ }
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.h	(revision 0)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.h	(revision 19984)
+@@ -0,0 +1,33 @@
++/*! \file SealevelriseAnalysis.h 
++ *  \brief: header file for generic external result object
++ */
++
++#ifndef _SealevelriseAnalysis_
++#define _SealevelriseAnalysis_
++
++/*Headers*/
++#include "./Analysis.h"
++
++class SealevelriseAnalysis: public Analysis{
++
++	public:
++		/*Model processing*/
++		void CreateConstraints(Constraints* constraints,IoModel* iomodel);
++		void CreateLoads(Loads* loads, IoModel* iomodel);
++		void CreateNodes(Nodes* nodes,IoModel* iomodel);
++		int  DofsPerNode(int** doflist,int domaintype,int approximation);
++		void UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type);
++		void UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum);
++
++		/*Finite element Analysis*/
++		void           Core(FemModel* femmodel);
++		ElementVector* CreateDVector(Element* element);
++		ElementMatrix* CreateJacobianMatrix(Element* element);
++		ElementMatrix* CreateKMatrix(Element* element);
++		ElementVector* CreatePVector(Element* element);
++		void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
++		void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
++		void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
++		void           UpdateConstraints(FemModel* femmodel);
++};
++#endif
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 0)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 19984)
+@@ -0,0 +1,92 @@
++#include "./SealevelriseAnalysis.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++
++/*Model processing*/
++void SealevelriseAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
++	/*No constraints*/
++}/*}}}*/
++void SealevelriseAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
++	/*No loads*/
++}/*}}}*/
++void SealevelriseAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
++	::CreateNodes(nodes,iomodel,SealevelriseAnalysisEnum,P1Enum);
++}/*}}}*/
++int  SealevelriseAnalysis::DofsPerNode(int** doflist,int domaintype,int approximation){/*{{{*/
++	return 1;
++}/*}}}*/
++void SealevelriseAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
++
++	/*Update elements: */
++	int counter=0;
++	for(int i=0;i<iomodel->numberofelements;i++){
++		if(iomodel->my_elements[i]){
++			Element* element=(Element*)elements->GetObjectByOffset(counter);
++			element->Update(i,iomodel,analysis_counter,analysis_type,P1Enum);
++			counter++;
++		}
++	}
++
++	/*Create inputs: */
++	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
++	iomodel->FetchDataToInput(elements,MaskOceanLevelsetEnum);
++	iomodel->FetchDataToInput(elements,SealevelriseDeltathicknessEnum);
++
++}/*}}}*/
++void SealevelriseAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
++
++	int nl;
++	IssmDouble* love_h=NULL;
++	IssmDouble* love_k=NULL;
++
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseAbstolEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseMaxiterEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseRigidEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
++	
++	iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
++	iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
++	
++	parameters->AddObject(new DoubleVecParam(SealevelriseLoveHEnum,love_h,nl));
++	parameters->AddObject(new DoubleVecParam(SealevelriseLoveKEnum,love_k,nl));
++
++	/*free ressources: */
++	xDelete<IssmDouble>(love_h);
++	xDelete<IssmDouble>(love_k);
++
++}/*}}}*/
++
++/*Finite Element Analysis*/
++void           SealevelriseAnalysis::Core(FemModel* femmodel){/*{{{*/
++	_error_("not implemented");
++}/*}}}*/
++ElementVector* SealevelriseAnalysis::CreateDVector(Element* element){/*{{{*/
++	/*Default, return NULL*/
++	return NULL;
++}/*}}}*/
++ElementMatrix* SealevelriseAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
++_error_("Not implemented");
++}/*}}}*/
++ElementMatrix* SealevelriseAnalysis::CreateKMatrix(Element* element){/*{{{*/
++	_error_("not implemented yet");
++}/*}}}*/
++ElementVector* SealevelriseAnalysis::CreatePVector(Element* element){/*{{{*/
++_error_("not implemented yet");
++}/*}}}*/
++void           SealevelriseAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
++	   _error_("not implemented yet");
++}/*}}}*/
++void           SealevelriseAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
++	_error_("Not implemented yet");
++}/*}}}*/
++void           SealevelriseAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
++	_error_("not implemented yet");
++}/*}}}*/
++void           SealevelriseAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
++	/*Default, do nothing*/
++	return;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/analyses.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/analyses.h	(revision 19983)
++++ ../trunk-jpl/src/c/analyses/analyses.h	(revision 19984)
+@@ -31,6 +31,7 @@
+ #include "./LsfReinitializationAnalysis.h"
+ #include "./MasstransportAnalysis.h"
+ #include "./SmbAnalysis.h"
++#include "./SealevelriseAnalysis.h"
+ #include "./MeltingAnalysis.h"
+ #include "./MeshdeformationAnalysis.h"
+ #include "./SmoothAnalysis.h"
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp	(revision 19984)
+@@ -94,6 +94,8 @@
+ 
+ 	/*Fetch data:*/
+ 	iomodel->FetchData(6,MeshXEnum,MeshYEnum,MeshZEnum,BaseEnum,ThicknessEnum,MaskIceLevelsetEnum);
++	if (iomodel->domaintype == Domain3DsurfaceEnum) iomodel->FetchData(3,MeshLatEnum,MeshLongEnum,MeshREnum);
++	
+ 	CreateNumberNodeToElementConnectivity(iomodel);
+ 
+ 	for(i=0;i<iomodel->numberofvertices;i++){
+@@ -102,4 +104,5 @@
+ 
+ 	/*Free data: */
+ 	iomodel->DeleteData(6,MeshXEnum,MeshYEnum,MeshZEnum,BaseEnum,ThicknessEnum,MaskIceLevelsetEnum);
++	if (iomodel->domaintype == Domain3DsurfaceEnum) iomodel->DeleteData(3,MeshLatEnum,MeshLongEnum,MeshREnum);
+ }
+Index: ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.cpp	(revision 19984)
+@@ -8,7 +8,7 @@
+ #include "../../shared/shared.h"
+ #include "../../toolkits/toolkits.h"
+ 
+-void VertexCoordinatesx( IssmDouble** px, IssmDouble** py, IssmDouble** pz, Vertices* vertices) {
++void VertexCoordinatesx( IssmDouble** px, IssmDouble** py, IssmDouble** pz, Vertices* vertices,bool spherical) {
+ 
+ 	/*output: */
+ 	IssmDouble* x=NULL;
+@@ -33,7 +33,7 @@
+ 	/*march through our vertices: */
+ 	for(i=0;i<vertices->Size();i++){
+ 		Vertex* vertex=(Vertex*)vertices->GetObjectByOffset(i);
+-		vertex->VertexCoordinates(vx,vy,vz);
++		vertex->VertexCoordinates(vx,vy,vz,spherical);
+ 	}
+ 
+ 	/*Assemble*/
+Index: ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.h	(revision 19983)
++++ ../trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.h	(revision 19984)
+@@ -7,6 +7,6 @@
+ #include "../../classes/classes.h"
+ 
+ /* local prototypes: */
+-void VertexCoordinatesx( IssmDouble** px, IssmDouble** py, IssmDouble** pz, Vertices* vertices);
++void VertexCoordinatesx( IssmDouble** px, IssmDouble** py, IssmDouble** pz, Vertices* vertices,bool spherical=false);
+ 
+ #endif  /* _VERTEX_COORDINATESX_H */
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 19983)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 19984)
+@@ -110,6 +110,7 @@
+ 					./shared/Numerics/cubic.cpp\
+ 					./shared/Numerics/NewtonSolveDnorm.cpp\
+ 					./shared/Numerics/extrema.cpp\
++					./shared/Numerics/legendre.cpp\
+ 					./shared/Numerics/XZvectorsToCoordinateSystem.cpp\
+ 					./shared/Exceptions/Exceptions.cpp\
+ 					./shared/Sorting/binary_search.cpp\
+@@ -463,6 +464,12 @@
+ 					./modules/GiaDeflectionCorex/what0.f
+ endif
+ #}}}
++#Slr sources  {{{
++if SEALEVELRISE
++issm_sources +=  ./cores/sealevelrise_core.cpp\
++					./analyses/SealevelriseAnalysis.cpp
++endif
++#}}}
+ #Metis sources  {{{
+ if METIS
+ issm_sources += ./toolkits/metis/patches/METIS_PartMeshNodalPatch.cpp
+Index: ../trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp	(revision 19984)
+@@ -58,6 +58,9 @@
+ 		case MasstransportSolutionEnum:
+ 			solutioncore=&masstransport_core;
+ 			break;
++		case SealevelriseSolutionEnum:
++			solutioncore=&sealevelrise_core;
++			break;
+ 		case GiaSolutionEnum:
+ 			#if _HAVE_GIA_
+ 			solutioncore=&gia_core;
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 19983)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 19984)
+@@ -45,6 +45,7 @@
+ void adgradient_core(FemModel* femmodel);
+ void dummy_core(FemModel* femmodel);
+ void gia_core(FemModel* femmodel);
++void sealevelrise_core(FemModel* femmodel);
+ void smb_core(FemModel* femmodel);
+ void damage_core(FemModel* femmodel);
+ IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 19984)
+@@ -0,0 +1,173 @@
++/*!\file: sealevelrise_core.cpp
++ * \brief: core of the SLR solution 
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++#include "../solutionsequences/solutionsequences.h"
++
++void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs);
++
++void sealevelrise_core(FemModel* femmodel){
++
++	Vector<IssmDouble> *Sg    = NULL;
++	Vector<IssmDouble> *Sg_old    = NULL;
++	Vector<IssmDouble> *Sgi    = NULL; //ice convolution
++	Vector<IssmDouble> *Sgi_old    = NULL; 
++	Vector<IssmDouble> *Sgo    = NULL; //ocean convolution
++	Vector<IssmDouble> *Sgo_old    = NULL; 
++
++	/*parameters: */
++	int count;
++	bool save_results;
++	int  gsize;
++	int  configuration_type;
++	bool spherical=true;
++	bool converged=true;
++	int max_nonlinear_iterations;
++	IssmDouble           eps_rel;
++	IssmDouble           eps_abs;
++	IssmDouble          *x    = NULL;
++	IssmDouble          *y    = NULL;
++	IssmDouble          *z    = NULL;
++	IssmDouble           eustatic;
++
++
++	/*Recover some parameters: */
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
++	femmodel->parameters->FindParam(&max_nonlinear_iterations,SealevelriseMaxiterEnum);
++	femmodel->parameters->FindParam(&eps_rel,SealevelriseReltolEnum);
++	femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
++
++	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
++
++	/*Call on core computations: */
++	femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
++
++	/*first, recover lat,long and radius vectors from vertices: */
++	VertexCoordinatesx(&x,&y,&z,femmodel->vertices); //no need for z coordinate
++
++	/*Figure out size of g-set deflection vector and allocate solution vector: */
++	gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
++	
++	/*Initialize:*/
++	Sg = new Vector<IssmDouble>(gsize);
++	Sg->Assemble();
++	Sg_old = new Vector<IssmDouble>(gsize);
++	Sg_old->Assemble();
++
++	Sgi = new Vector<IssmDouble>(gsize);
++	Sgi->Assemble();
++	Sgi_old = new Vector<IssmDouble>(gsize);
++	Sgi_old->Assemble();
++
++	Sgo = new Vector<IssmDouble>(gsize);
++	Sgo->Assemble();
++	Sgo_old = new Vector<IssmDouble>(gsize);
++	Sgo_old->Assemble();
++
++	count=1;
++	converged=false;
++	
++	/*Start loop: */
++	for(;;){
++
++		//save pointer to old sea level rise
++		delete Sgi_old; Sgi_old=Sgi; 
++		delete Sgo_old; Sgo_old=Sgo; 
++		delete Sg_old; Sg_old=Sg; 
++
++		/*Initialize solution vector: */
++		Sg = new Vector<IssmDouble>(gsize); Sg->Assemble();
++		Sgi = new Vector<IssmDouble>(gsize); Sgi->Assemble();
++		Sgo = new Vector<IssmDouble>(gsize); Sgo->Assemble();
++
++		/*call the main module: */
++        femmodel->Sealevelrise(Sgi,Sgo, &eustatic, Sg_old, Sgi_old, Sgo_old,x, y, z);
++		
++		/*assemble solution vectors: */
++		Sgi->Assemble();
++		Sgo->Assemble();
++		
++		/*Sg is the sum of the ice and ocean convolutions + eustatic component: (eq 4 in Farrel and Clark)*/
++		Sgi->Copy(Sg); Sg->AXPY(Sgo,1); 
++		Sg->Shift(eustatic);
++
++		/*convergence criterion:*/
++		slrconvergence(&converged,Sg,Sg_old,eps_rel,eps_abs);
++
++		/*Increase count: */
++		count++;
++		if(converged==true){
++			break;
++		}
++		if(count>=max_nonlinear_iterations){
++			_printf0_("   maximum number of nonlinear iterations (" << max_nonlinear_iterations << ") exceeded\n"); 
++			converged=true;
++			break;
++		}	
++		
++	}
++	if(VerboseConvergence()) _printf0_("\n   total number of iterations: " << count-1 << "\n");
++
++	InputUpdateFromVectorx(femmodel,Sg,SealevelriseSEnum,VertexSIdEnum);
++
++	if(save_results){
++		if(VerboseSolution()) _printf0_("   saving results\n");
++		int outputs[1] = {SealevelriseSEnum};
++		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
++	}
++	xDelete<IssmDouble>(x);
++	xDelete<IssmDouble>(y);
++	xDelete<IssmDouble>(z);
++	delete Sg_old;
++	delete Sg;
++}
++
++void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs){ /*{{{*/
++	
++	bool converged=true;
++	IssmDouble ndS,nS; 
++	Vector<IssmDouble> *dSg    = NULL;
++
++	//compute norm(du) and norm(u) if requested
++	dSg=Sg_old->Duplicate(); Sg_old->Copy(dSg); dSg->AYPX(Sg,-1.0);
++	ndS=dSg->Norm(NORM_TWO); 
++	
++	if(!xIsNan<IssmDouble>(eps_rel)){
++		nS=Sg_old->Norm(NORM_TWO);
++	}
++
++	if (xIsNan<IssmDouble>(ndS) || xIsNan<IssmDouble>(nS)) _error_("convergence criterion is NaN!");
++
++	//clean up
++	delete dSg;
++
++	//print
++	if(!xIsNan<IssmDouble>(eps_rel)){
++		if((ndS/nS)<eps_rel){
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " < " << eps_rel*100 << " %\n");
++		}
++		else{ 
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " > " << eps_rel*100 << " %\n");
++			converged=false;
++		}
++	}
++	if(!xIsNan<IssmDouble>(eps_abs)){
++		if(ndS<eps_abs){
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " < " << eps_abs << " \n");
++		}
++		else{ 
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " > " << eps_abs << " \n");
++			converged=false;
++		}
++	}
++
++	/*assign output*/
++	*pconverged=converged;
++
++} /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.cpp	(revision 19984)
+@@ -57,6 +57,8 @@
+ 	lithosphere_density=0;
+ 	mantle_shear_modulus=0;
+ 	mantle_density=0;
++	
++	earth_density=0;
+ 
+ 	poisson=0;
+ 	young_modulus=0;
+@@ -159,6 +161,10 @@
+ 			iomodel->Constant(&this->lithosphere_density,MaterialsLithosphereDensityEnum);
+ 			iomodel->Constant(&this->mantle_shear_modulus,MaterialsMantleShearModulusEnum);
+ 			iomodel->Constant(&this->mantle_density,MaterialsMantleDensityEnum);
++
++			/*slr:*/
++			iomodel->Constant(&this->earth_density,MaterialsEarthDensityEnum);
++
+ 			break;
+ 		default:
+ 			_error_("Material "<< EnumToStringx(materials_type) <<" not supported yet");
+@@ -254,6 +260,8 @@
+ 	matpar->lithosphere_density=this->lithosphere_density;
+ 	matpar->mantle_shear_modulus=this->mantle_shear_modulus;
+ 	matpar->mantle_density=this->mantle_density;
++	
++	matpar->earth_density=this->earth_density;
+ 
+ 	return matpar;
+ }
+@@ -301,6 +309,9 @@
+ 	MARSHALLING(lithosphere_density);
+ 	MARSHALLING(mantle_shear_modulus);
+ 	MARSHALLING(mantle_density);
++	
++	//slr:
++	MARSHALLING(earth_density);
+ 
+ 	//Sea ice:
+ 	MARSHALLING(poisson);
+@@ -515,6 +526,7 @@
+ 		case MaterialsLithosphereDensityEnum:        return this->lithosphere_density;
+ 		case MaterialsMantleDensityEnum:             return this->mantle_density;
+ 		case MaterialsMantleShearModulusEnum:        return this->mantle_shear_modulus;
++		case MaterialsEarthDensityEnum:              return this->earth_density;
+ 		default: _error_("Enum "<<EnumToStringx(enum_in)<<" not supported yet");
+ 	}
+ 
+Index: ../trunk-jpl/src/c/classes/Materials/Matpar.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Materials/Matpar.h	(revision 19984)
+@@ -58,6 +58,9 @@
+ 		IssmDouble mantle_shear_modulus;
+ 		IssmDouble mantle_density;
+ 
++		/*slr:*/
++		IssmDouble earth_density;
++
+ 		/*Sea ice*/
+ 		IssmDouble poisson;
+ 		IssmDouble young_modulus;
+Index: ../trunk-jpl/src/c/classes/Vertex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Vertex.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Vertex.cpp	(revision 19984)
+@@ -36,6 +36,11 @@
+ 			_assert_(iomodel->Data(BaseEnum) && iomodel->Data(ThicknessEnum));
+ 			this->sigma = (iomodel->Data(MeshZEnum)[i]-iomodel->Data(BaseEnum)[i])/(iomodel->Data(ThicknessEnum)[i]);
+ 			break;
++		case Domain3DsurfaceEnum:
++			this->latitute     = iomodel->Data(MeshLatEnum)[i];
++			this->longitude    = iomodel->Data(MeshLongEnum)[i];
++			this->R            = iomodel->Data(MeshREnum)[i];
++			break;
+ 		case Domain2DhorizontalEnum:
+ 			this->sigma = 0.;
+ 			break;
+@@ -122,6 +127,18 @@
+ 	return this->z;
+ }
+ /*}}}*/
++IssmDouble Vertex::GetLatitude(){/*{{{*/
++	return this->latitute;
++}
++/*}}}*/
++IssmDouble Vertex::GetLongitude(){/*{{{*/
++	return this->longitude;
++}
++/*}}}*/
++IssmDouble Vertex::GetRadius(){/*{{{*/
++	return this->R;
++}
++/*}}}*/
+ int        Vertex::Sid(void){ return sid; }/*{{{*/
+ /*}}}*/
+ int        Vertex::Pid(void){ return pid; }/*{{{*/
+@@ -238,27 +255,43 @@
+ 	matrix->SetValues(1,&sid,3,&indices[0],&xyz[0],INS_VAL);
+ }
+ /*}}}*/
+-void       Vertex::VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz){/*{{{*/
++void       Vertex::VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz, bool spherical){/*{{{*/
+ 
+ 	if (this->clone==true) return;
+ 
+-	vx->SetValue(this->sid,this->x,INS_VAL);
+-	vy->SetValue(this->sid,this->y,INS_VAL);
+-	vz->SetValue(this->sid,this->z,INS_VAL);
++	if(!spherical){
++		vx->SetValue(this->sid,this->x,INS_VAL);
++		vy->SetValue(this->sid,this->y,INS_VAL);
++		vz->SetValue(this->sid,this->z,INS_VAL);
++	}
++	else{
++		vx->SetValue(this->sid,this->latitute,INS_VAL);
++		vy->SetValue(this->sid,this->longitude,INS_VAL);
++		vz->SetValue(this->sid,this->R,INS_VAL);
++	}
+ 
+ 	return;
+ }
+ /*}}}*/
+ 
+ /*Methods relating to Vertex, but not internal methods: */
+-void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices){ /*{{{*/
++void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices,bool spherical){ /*{{{*/
+ 
+ 	_assert_(vertices);
+ 	_assert_(xyz);
+ 
+-	for(int i=0;i<numvertices;i++) {
+-		xyz[i*3+0]=vertices[i]->GetX();
+-		xyz[i*3+1]=vertices[i]->GetY();
+-		xyz[i*3+2]=vertices[i]->GetZ();
++	if(!spherical){
++		for(int i=0;i<numvertices;i++) {
++			xyz[i*3+0]=vertices[i]->GetX();
++			xyz[i*3+1]=vertices[i]->GetY();
++			xyz[i*3+2]=vertices[i]->GetZ();
++		}
+ 	}
++	else{
++		for(int i=0;i<numvertices;i++) {
++			xyz[i*3+0]=vertices[i]->GetLatitude();
++			xyz[i*3+1]=vertices[i]->GetLongitude();
++			xyz[i*3+2]=vertices[i]->GetRadius();
++		}
++	}
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 19984)
+@@ -533,6 +533,10 @@
+ 			analyses_temp[numanalyses++]=GiaAnalysisEnum;
+ 			break;
+ 		
++		case SealevelriseSolutionEnum:
++			analyses_temp[numanalyses++]=SealevelriseAnalysisEnum;
++			break;
++
+ 		case SmbSolutionEnum:
+ 			analyses_temp[numanalyses++]=SmbAnalysisEnum;
+ 			break;
+@@ -2200,6 +2204,63 @@
+ }
+ /*}}}*/
+ #endif
++#ifdef _HAVE_SEALEVELRISE_
++void FemModel::Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo, IssmDouble* peustatic, Vector<IssmDouble>* pSg_old, Vector<IssmDouble>* pSgi_old,Vector<IssmDouble>* pSgo_old,IssmDouble* x, IssmDouble* y, IssmDouble* z) { /*{{{*/
++
++	/*serialized vectors:*/
++	IssmDouble* Sg_old=NULL;
++	IssmDouble* Sgi_old=NULL;
++	IssmDouble* Sgo_old=NULL;
++	IssmDouble  eustatic=0;
++	IssmDouble  eustatic_cpu=0;
++	IssmDouble  eustatic_cpu_e=0;
++	IssmDouble  oceanarea=0;
++	IssmDouble  oceanarea_cpu=0;
++	int         ns;
++	
++	/*Serialize vectors from previous iteration:*/
++
++	Sg_old=pSg_old->ToMPISerial();
++	Sgi_old=pSgi_old->ToMPISerial();
++	Sgo_old=pSgo_old->ToMPISerial();
++
++	/*Go through elements, and add contribution from each element to the deflection vector wg:*/
++	ns = elements->Size();
++
++	/*First, figure out the area of the ocean, which is needed to compute the eustatic component: */
++	for(int i=0;i<ns;i++){
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++		oceanarea_cpu += element->OceanArea();
++	}
++	ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Call the sea level rise core: */
++	for(int i=0;i<ns;i++){
++		
++		if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++	
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++		element->Sealevelrise(pSgi,pSgo,&eustatic_cpu_e,Sg_old,Sgi_old,Sgo_old,x,y,z,oceanarea);
++		eustatic_cpu+=eustatic_cpu_e;
++	}
++	if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
++
++	/*Sum all eustatic components from all cpus:*/
++	ISSM_MPI_Reduce (&eustatic_cpu,&eustatic,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&eustatic,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Assign output pointers:*/
++	*peustatic=eustatic;
++
++	/*Free ressources:*/
++	xDelete<IssmDouble>(Sg_old);
++	xDelete<IssmDouble>(Sgi_old);
++	xDelete<IssmDouble>(Sgo_old);
++}
++/*}}}*/
++#endif
++
+ void FemModel::HydrologyEPLupdateDomainx(IssmDouble* pEplcount){ /*{{{*/
+ 
+ 	Vector<IssmDouble>* mask							= NULL;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19984)
+@@ -118,6 +118,7 @@
+ 		void               InputUpdateFromConstant(bool constant, int name);
+ 		bool               IsFloating(); 
+ 		bool               IsIceInElement();
++		bool               IsWaterInElement();
+ 		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+@@ -298,5 +299,10 @@
+ 		#ifdef _HAVE_GIA_
+ 		virtual void       GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y)=0;
+ 		#endif
++		#ifdef _HAVE_SEALEVELRISE_
++		virtual void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea)=0;
++		virtual IssmDouble    OceanArea(void)=0;
++		#endif
++
+ };
+ #endif
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19984)
+@@ -1035,6 +1035,25 @@
+ 	return (x2*y3 - y2*x3 + x1*y2 - y1*x2 + x3*y1 - y3*x1)/2;
+ }
+ /*}}}*/
++IssmDouble Tria::GetArea3D(void){/*{{{*/
++
++	IssmDouble xyz_list[NUMVERTICES][3];
++	IssmDouble x1,y1,z1,x2,y2,z2,x3,y3,z3;
++	IssmDouble detm1,detm2,detm3;
++
++	/*Get xyz list: */
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++	x1=xyz_list[0][0]; y1=xyz_list[0][1]; z1=xyz_list[0][2];
++	x2=xyz_list[1][0]; y2=xyz_list[1][1]; z2=xyz_list[1][2];
++	x3=xyz_list[2][0]; y3=xyz_list[2][1]; z3=xyz_list[2][2];
++
++	detm1=x1*y2 - x2*y1 - x1*y3 + x3*y1 + x2*y3 - x3*y2;
++	detm2=y1*z2 - y2*z1 - y1*z3 + y3*z1 + y2*z3 - y3*z2;
++	detm3=x2*z1 - x1*z2 + x1*z3 - x3*z1 - x2*z3 + x3*z2;
++
++	return sqrt(pow(detm1,2) + pow(detm2,2) + pow(detm3,2))/2;
++}
++/*}}}*/
+ IssmDouble Tria::GetAreaIce(void){/*{{{*/
+ 
+ 	/*return area of element covered by ice*/
+@@ -3482,6 +3501,163 @@
+ /*}}}*/
+ #endif
+ 
++#ifdef _HAVE_SEALEVELRISE_
++void    Tria::Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){ /*{{{*/
++
++	/*diverse:*/
++	int gsize;
++	bool spherical=true;
++	IssmDouble x0,y0,z0,a;
++	IssmDouble xyz_list[NUMVERTICES][3];
++	IssmDouble area;
++	IssmDouble I;  //change in ice thickness or water level(Farrel and Clarke, Equ. 4)
++	IssmDouble Me;
++	IssmDouble rho;
++	
++	/*love numbers:*/
++	IssmDouble* love_h=NULL;
++	IssmDouble* love_k=NULL; 
++	IssmDouble* deltalove=NULL;
++	int nl;
++
++	/*ice properties: */
++	IssmDouble rho_ice,rho_water,rho_earth;
++
++	/*other constants: */
++	//IssmDouble g; 
++
++	/*Solution outputs: */
++	Vector<IssmDouble>* pSolution=NULL;
++	
++	/*Initialize eustatic component: do not skip this step :):*/
++	IssmDouble eustatic = 0;
++
++	/*Computational flags:*/
++	bool computerigid = true;
++	bool computeelastic= true;
++	bool computeeustatic = true;
++	
++	/*recover material parameters: */
++	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
++
++	/*recover love numbers and computational flags: */
++	this->parameters->FindParam(&love_h,&nl,SealevelriseLoveHEnum);
++	this->parameters->FindParam(&love_k,&nl,SealevelriseLoveKEnum);
++	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
++	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
++	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
++
++	/*how many dofs are we working with here? */
++	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
++
++	/*retrieve coordinates: */
++	::GetVerticesCoordinates(&xyz_list[0][0],this->vertices,NUMVERTICES);
++
++	/* Where is the centroid of this element?. To avoid issues with lat,long
++	 * being between [0,180] and [0 360], and issues with jumps at the central
++	 * meridian and poles, we do everything in cartesian coordinate system: */
++	x0=(xyz_list[0][0]+xyz_list[1][0]+xyz_list[2][0])/3;
++	y0=(xyz_list[0][1]+xyz_list[1][1]+xyz_list[2][1])/3;
++	z0=(xyz_list[0][2]+xyz_list[1][2]+xyz_list[2][2])/3;
++
++	/*radius at this location?:*/
++	a=sqrt(pow(xyz_list[0][0],2)+pow(xyz_list[0][1],2)+pow(xyz_list[0][2],2)); //a from Farrel and Clark, Eq 4.
++
++	/*Compute mass of the earth:*/
++	Me= rho_earth*4/3*PI*pow(a,3);
++
++	/*Compute area of element:*/
++	area=GetArea3D();
++
++	/*Compute ice thickness or sea level change: */
++	if(IsWaterInElement()){
++
++		IssmDouble phi_I_I_O,phi_O_O_O;
++		
++		/*From Sg_old, recover water sea level rise:*/
++		I=0; for(int i=0;i<NUMVERTICES;i++) I+=Sg_old[this->vertices[i]->Sid()]/NUMVERTICES;
++		rho=rho_water;
++		pSolution=pSgo;
++
++		/*Compute eustatic component: */
++		if(computeeustatic){
++			phi_I_I_O=0; for(int i=0;i<NUMVERTICES;i++) phi_I_I_O+=area/oceanarea * Sgi_old[this->vertices[i]->Sid()]/NUMVERTICES;
++			phi_O_O_O=0; for(int i=0;i<NUMVERTICES;i++) phi_O_O_O+=area/oceanarea * Sgo_old[this->vertices[i]->Sid()]/NUMVERTICES;
++			eustatic -= (phi_I_I_O + phi_O_O_O); //Watch out the sign "-"!
++		}
++
++	}
++	else{
++		Input*	deltathickness_input=inputs->GetInput(SealevelriseDeltathicknessEnum); 
++		if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
++		deltathickness_input->GetInputAverage(&I);
++		rho=rho_ice;
++		pSolution=pSgi;
++
++		/*Compute eustatic compoent:*/
++		if(computeeustatic)eustatic -= rho_ice*area*I/(oceanarea*rho_water); //Watch out the sign "-"!
++	}
++
++				
++	/*Speed up of love number comutation: */
++	if(computeelastic){
++		deltalove=xNew<IssmDouble>(nl);
++		for (int n=0;n<nl;n++) deltalove[n] = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++	}
++
++	if(computeelastic | computerigid){
++		for(int i=0;i<gsize;i++){
++
++			IssmDouble alpha;
++			IssmDouble G_rigid=0;  //do not remove =0!
++			IssmDouble G_elastic=0;  //do not remove =0!
++			IssmDouble Pn1,Pn2; //first two legendre polynomials
++			IssmDouble cosalpha;
++
++			/*Compute alpha angle between centroid and current vertex and cosine of this angle: */
++			alpha = acos( 
++					(x[i]*x0+y[i]*y0+z[i]*z0)  //scalar product  of two position vectors
++					/ sqrt(pow(x0,2.0)+pow(y0,2.0)+pow(z0,2.0))  //norm of first position vector
++					/ sqrt(pow(x[i],2.0)+pow(y[i],2.0)+pow(z[i],2.0))  //norm of second position vector
++					);
++			cosalpha=cos(alpha); //compute this to speed up the elastic component.
++
++			//Rigid earth gravitational perturbation:
++			if(computerigid)G_rigid=1.0/2.0/sin(alpha/2.0);
++
++			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
++			if(computeelastic){
++				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++				for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre(Pn1,Pn2,n,cosalpha);
++			}
++
++			/*Add all components to the pSgi or pSgo solution vectors:*/
++			pSolution->SetValue(i,rho*a/Me*I*area*(G_rigid+G_elastic),ADD_VAL);
++		}
++	}
++	
++	/*Assign output pointer:*/
++	*peustatic=eustatic;
++
++	/*Free ressources:*/
++	xDelete<IssmDouble>(love_h);
++	xDelete<IssmDouble>(love_k);
++	xDelete<IssmDouble>(deltalove);
++	return;
++}
++/*}}}*/
++IssmDouble    Tria::OceanArea(void){ /*{{{*/
++
++	if(IsWaterInElement()) return GetArea3D();
++	else return 0;
++
++}
++/*}}}*/
++#endif
++
++
+ #ifdef _HAVE_DAKOTA_
+ void       Tria::InputUpdateFromMatrixDakota(IssmDouble* matrix, int nrows, int ncols, int name, int type){/*{{{*/
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 19984)
+@@ -142,12 +142,17 @@
+ 		#ifdef _HAVE_GIA_
+ 		void   GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
+ 		#endif
++		#ifdef _HAVE_SEALEVELRISE_
++		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea);
++		IssmDouble OceanArea(void);
++		#endif
+ 		/*}}}*/
+ 		/*Tria specific routines:{{{*/
+ 		void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
+ 		void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
+ 		IssmDouble     GetArea(void);
+-		IssmDouble 	GetAreaIce(void);
++		IssmDouble 	   GetArea3D(void);
++		IssmDouble 	   GetAreaIce(void);
+ 		void           GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints);
+ 		void		GetLevelsetIntersection(int** pindices, int* pnumiceverts, IssmDouble* fraction, int levelset_enum, IssmDouble level);
+ 		int            GetElementType(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 19984)
+@@ -179,6 +179,11 @@
+ 		#ifdef _HAVE_GIA_
+ 		void           GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
+ 		#endif
++		#ifdef _HAVE_SEALEVELRISE_
++		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z, IssmDouble oceanarea){_error_("not implemented yet!");};
++		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++		#endif
++
+ 		/*}}}*/
+ };
+ #endif  /* _PENTA_H */
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 19984)
+@@ -165,6 +165,11 @@
+ 		void        GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};
+ #endif
+ 
++#ifdef _HAVE_SEALEVELRISE_
++		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){_error_("not implemented yet!");};
++		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++#endif
++
+ #ifdef _HAVE_DAKOTA_
+ 		void        InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type){_error_("not implemented yet");};
+ 		void        InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 19984)
+@@ -171,6 +171,10 @@
+ #ifdef _HAVE_GIA_
+ 		void        GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};
+ #endif
++#ifdef _HAVE_SEALEVELRISE_
++		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){_error_("not implemented yet!");};
++		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++#endif
+ 
+ #ifdef _HAVE_DAKOTA_
+ 		void        InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19984)
+@@ -1465,6 +1465,10 @@
+ 	return (this->inputs->Min(MaskIceLevelsetEnum)<0.);
+ }
+ /*}}}*/
++bool       Element::IsWaterInElement(){/*{{{*/
++	return (this->inputs->Max(MaskOceanLevelsetEnum)>0.);
++}
++/*}}}*/
+ bool       Element::IsInput(int name){/*{{{*/
+ 	if (
+ 				name==ThicknessEnum ||
+@@ -1515,6 +1519,7 @@
+ 				name==MaterialsRheologyBEnum ||
+ 				name==MaterialsRheologyBbarEnum ||
+ 				name==MaterialsRheologyNEnum ||
++				name==SealevelriseSEnum || 
+ 				name==GiaWEnum || 
+ 				name==GiadWdtEnum ||
+ 				name==SedimentHeadEnum ||
+Index: ../trunk-jpl/src/c/classes/Vertex.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Vertex.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/Vertex.h	(revision 19984)
+@@ -27,6 +27,9 @@
+ 		IssmDouble x;
+ 		IssmDouble y;
+ 		IssmDouble z;
++		IssmDouble latitute;
++		IssmDouble longitude;
++		IssmDouble R;
+ 		IssmDouble sigma;        //sigma coordinate: (z-bed)/thickness
+ 		int        connectivity; //number of vertices connected to this vertex
+ 
+@@ -51,6 +54,9 @@
+ 		IssmDouble GetX(void); 
+ 		IssmDouble GetY(void); 
+ 		IssmDouble GetZ(void); 
++		IssmDouble GetLatitude(void); 
++		IssmDouble GetLongitude(void); 
++		IssmDouble GetRadius(void); 
+ 		void       UpdatePosition(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz,Parameters* parameters,IssmDouble* thickness,IssmDouble* bed);
+ 		void       DistributePids(int* ppidcount);
+ 		void       OffsetPids(int pidcount);
+@@ -58,10 +64,10 @@
+ 		void       UpdateClonePids(int* allborderpids);
+ 		void       SetClone(int* minranks);
+ 		void       ToXYZ(Matrix<IssmDouble>* matrix);
+-		void       VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz);
++		void       VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz,bool spherical=false);
+ };
+ 
+ /*Methods relating to Vertex object: */
+-void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices);
++void GetVerticesCoordinates(IssmDouble* xyz,Vertex** vertices, int numvertices,bool spherical=false);
+ 
+ #endif  /* _VERTEX_H */
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 19983)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 19984)
+@@ -111,6 +111,9 @@
+ 		#ifdef _HAVE_GIA_
+ 		void Deflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt, IssmDouble* x, IssmDouble* y);
+ 		#endif
++		#ifdef _HAVE_SEALEVELRISE_
++		void Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo, IssmDouble* peustatic, Vector<IssmDouble>* pSg_old, Vector<IssmDouble>* pSgi_old,Vector<IssmDouble>* pSgo_old,IssmDouble* x, IssmDouble* y, IssmDouble* z);
++		#endif
+ 		void TimeAdaptx(IssmDouble* pdt);
+ 		void UpdateConstraintsx(void);
+ 		int  UpdateVertexPositionsx(void);
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 19983)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 19984)
+@@ -84,6 +84,9 @@
+ 	case FlaimSolutionEnum(),
+ 		analyses=[FlaimAnalysisEnum()];
+ 
++	case SealevelriseSolutionEnum(),
++		analyses=[SealevelriseAnalysisEnum()];
++
+ 	case HydrologySolutionEnum(),
+ 		analyses=[L2ProjectionBaseAnalysisEnum();HydrologyShreveAnalysisEnum();HydrologyDCInefficientAnalysisEnum();HydrologyDCEfficientAnalysisEnum()];
+ 	
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 19984)
+@@ -0,0 +1,96 @@
++%SLR class definition
++%
++%   Usage:
++%      slr=slr();
++
++classdef slr
++	properties (SetAccess=public) 
++		deltathickness = NaN;
++		maxiter        = 0;
++		reltol         = 0;
++		abstol         = 0;
++		love_h         = 0; %provided by PREM model
++		love_k         = 0; %ideam
++		rigid         = 0;
++		elastic         = 0;
++		eustatic         = 0;
++	end
++	methods
++		function self = slr(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++		
++		%Convergence criterion: absolute, relative and residual
++		self.reltol=0.01; %1 percent
++		self.abstol=0.001; %1 mm of sea level rise
++
++		%maximum of non-linear iterations.
++		self.maxiter=5;
++
++		%computational flags: 
++		self.rigid=1;
++		self.elastic=1;
++		self.eustatic=1;
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ~ismember(SealevelriseAnalysisEnum(),analyses), return; end
++			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
++			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
++			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
++
++			%check that love numbers are provided at the same level of accuracy: 
++			if (size(self.love_h,1) ~= size(self.love_k,1)),
++				error('slr error message: love numbers should be provided at the same level of accuracy');
++			end
++
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   slr parameters:'));
++
++			fielddisplay(self,'deltathickness','thickness change (main loading of the slr solution core [m]');
++			fielddisplay(self,'reltol','sea level rise relative convergence criterion, NaN: not applied');
++			fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
++			fielddisplay(self,'maxiter','maximum number of nonlinear iterations');
++			fielddisplay(self,'love_h','love load number for radial displacement');
++			fielddisplay(self,'love_k','love load number for gravitational potential perturbation');
++			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
++			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
++			fielddisplay(self,'eustatic','eustatic sea level rise');
++
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.srl.deltathickness'],self.deltathickness);
++			writejsdouble(fid,[modelname '.slr.reltol'],self.reltol);
++			writejsdouble(fid,[modelname '.slr.abstol'],self.abstol);
++			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
++			writejs1Darray(fid,[modelname '.srl.love_h'],self.love_h);
++			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
++			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
++			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
++
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/classes/matice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.m	(revision 19983)
++++ ../trunk-jpl/src/m/classes/matice.m	(revision 19984)
+@@ -27,6 +27,9 @@
+ 		mantle_shear_modulus       = 0.;
+ 		mantle_density             = 0.;
+ 
++		%slr
++		earth_density              = 0;
++
+ 	end
+ 	methods
+ 		function self = extrude(self,md) % {{{
+@@ -99,6 +102,9 @@
+ 			self.mantle_shear_modulus       = 1.45*10^11; % (Pa)
+ 			self.mantle_density             = 3.34;       % (g/cm^-3)
+ 
++			%SLR
++			self.earth_density= 5512;  % average density of the Earth, (kg/m^3)
++
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			md = checkfield(md,'fieldname','materials.rho_ice','>',0);
+@@ -115,6 +121,9 @@
+ 				md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
+ 				md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
+ 			end
++			if ismember(SealevelriseAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
++			end
+ 
+ 		end % }}}
+ 		function disp(self) % {{{
+@@ -139,6 +148,7 @@
+ 			fielddisplay(self,'lithosphere_density','Lithosphere density [g/cm^-3]');
+ 			fielddisplay(self,'mantle_shear_modulus','Mantle shear modulus [Pa]');
+ 			fielddisplay(self,'mantle_density','Mantle density [g/cm^-3]');
++			fielddisplay(self,'earth_density','Mantle density [kg/m^-3]');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'enum',MaterialsEnum(),'data',MaticeEnum(),'format','Integer');
+@@ -162,6 +172,7 @@
+ 			WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3);
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
++			WriteData(fid,'object',self,'class','materials','fieldname','earth_density','format','Double');
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -185,6 +196,7 @@
+ 			writejsdouble(fid,[modelname '.materials.lithosphere_density'],self.lithosphere_density);
+ 			writejsdouble(fid,[modelname '.materials.mantle_shear_modulus'],self.mantle_shear_modulus);
+ 			writejsdouble(fid,[modelname '.materials.mantle_density'],self.mantle_density);
++			writejsdouble(fid,[modelname '.materials.earth_density'],self.earth_density);
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 19983)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 19984)
+@@ -21,6 +21,7 @@
+ 		timestepping     = 0;
+ 		initialization   = 0;
+ 		rifts            = 0;
++		slr              = 0;
+ 
+ 		debug            = 0;
+ 		verbose          = 0;
+@@ -1063,6 +1064,7 @@
+ 			md.basalforcings    = basalforcings();
+ 			md.friction         = friction();
+ 			md.rifts            = rifts();
++			md.slr              = slr();
+ 			md.timestepping     = timestepping();
+ 			md.groundingline    = groundingline();
+ 			md.materials        = matice();
+@@ -1237,6 +1239,7 @@
+ 			disp(sprintf('%19s: %-22s -- %s','timestepping'    ,['[1x1 ' class(self.timestepping) ']'],'time stepping for transient models'));
+ 			disp(sprintf('%19s: %-22s -- %s','initialization'  ,['[1x1 ' class(self.initialization) ']'],'initial guess/state'));
+ 			disp(sprintf('%19s: %-22s -- %s','rifts'           ,['[1x1 ' class(self.rifts) ']'],'rifts properties'));
++			disp(sprintf('%19s: %-22s -- %s','slr'             ,['[1x1 ' class(self.slr) ']'],'slr forcings'));
+ 			disp(sprintf('%19s: %-22s -- %s','debug'           ,['[1x1 ' class(self.debug) ']'],'debugging tools (valgrind, gprof)'));
+ 			disp(sprintf('%19s: %-22s -- %s','verbose'         ,['[1x1 ' class(self.verbose) ']'],'verbosity level in solve'));
+ 			disp(sprintf('%19s: %-22s -- %s','settings'        ,['[1x1 ' class(self.settings) ']'],'settings properties'));
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19983)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19984)
+@@ -63,9 +63,9 @@
+ 			fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+-			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'fieldname','ocean_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
+ 
+ 			% get mask of vertices of elements with ice
+ 			isice=md.mask.ice_levelset<=0.;
Index: /issm/oecreview/Archive/19101-20495/ISSM-19984-19985.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19984-19985.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19984-19985.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/m4/analyses.m4
+===================================================================
+--- ../trunk-jpl/m4/analyses.m4	(revision 19984)
++++ ../trunk-jpl/m4/analyses.m4	(revision 19985)
+@@ -893,5 +893,31 @@
+ AC_MSG_RESULT($HAVE_LSFREINITIALIZATION)
+ 
+ dnl }}}
++dnl with-Sealevelrise{{{
+ 
++AC_ARG_WITH([Sealevelrise],
++
++	AS_HELP_STRING([--with-Sealevelrise = YES], [compile with Sealevelrise capabilities (default is yes)]),
++
++	[SEALEVELRISE=$withval],[SEALEVELRISE=yes])
++
++AC_MSG_CHECKING(for Sealevelrise capability compilation)
++
++
++HAVE_SEALEVELRISE=no 
++
++if test "x$SEALEVELRISE" = "xyes"; then
++
++	HAVE_SEALEVELRISE=yes
++
++	AC_DEFINE([_HAVE_SEALEVELRISE_],[1],[with Sealevelrise capability])
++
++fi
++
++AM_CONDITIONAL([SEALEVELRISE], [test x$HAVE_SEALEVELRISE = xyes])
++
++AC_MSG_RESULT($HAVE_SEALEVELRISE)
++
++dnl }}}
++
+ ])
Index: /issm/oecreview/Archive/19101-20495/ISSM-19985-19986.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19985-19986.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19985-19986.diff	(revision 20498)
@@ -0,0 +1,238 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 19985)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 19986)
+@@ -37,26 +37,41 @@
+ }/*}}}*/
+ void SealevelriseAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ 
+-	int nl;
++	int         nl;
+ 	IssmDouble* love_h=NULL;
+ 	IssmDouble* love_k=NULL;
++	
++	bool        legendre_precompute=false;
++	IssmDouble* legendre_coefficients=NULL;
++	int         M;
+ 
++	/*some constant parameters: */
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseAbstolEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseMaxiterEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseRigidEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseLegendrePrecomputeEnum));
++
+ 	
++	/*love numbers: */
+ 	iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
+ 	iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+-	
+ 	parameters->AddObject(new DoubleVecParam(SealevelriseLoveHEnum,love_h,nl));
+ 	parameters->AddObject(new DoubleVecParam(SealevelriseLoveKEnum,love_k,nl));
+ 
++	/*legendre coefficients: */
++	iomodel->Constant(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
++	if(legendre_precompute){
++		iomodel->FetchData(&legendre_coefficients,&M,&nl,SealevelriseLoveKEnum);
++		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,M,nl));
++	}
++
+ 	/*free ressources: */
+ 	xDelete<IssmDouble>(love_h);
+ 	xDelete<IssmDouble>(love_k);
++	xDelete<IssmDouble>(legendre_coefficients);
+ 
+ }/*}}}*/
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19985)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19986)
+@@ -1031,6 +1031,8 @@
+ 	SealevelriseRigidEnum,
+ 	SealevelriseElasticEnum,
+ 	SealevelriseEustaticEnum,
++	SealevelriseLegendrePrecomputeEnum,
++	SealevelriseLegendreCoefficientsEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19985)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19986)
+@@ -985,6 +985,8 @@
+ 		case SealevelriseRigidEnum : return "SealevelriseRigid";
+ 		case SealevelriseElasticEnum : return "SealevelriseElastic";
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
++		case SealevelriseLegendrePrecomputeEnum : return "SealevelriseLegendrePrecompute";
++		case SealevelriseLegendreCoefficientsEnum : return "SealevelriseLegendreCoefficients";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19985)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19986)
+@@ -1009,6 +1009,8 @@
+ 	      else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum;
+ 	      else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
++	      else if (strcmp(name,"SealevelriseLegendrePrecompute")==0) return SealevelriseLegendrePrecomputeEnum;
++	      else if (strcmp(name,"SealevelriseLegendreCoefficients")==0) return SealevelriseLegendreCoefficientsEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19985)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19986)
+@@ -3520,12 +3520,14 @@
+ 	IssmDouble* deltalove=NULL;
+ 	int nl;
+ 
++	/*legendre coefficients:*/
++	bool        legendre_precompute=false;
++	IssmDouble* legendre_coefficients=NULL;
++	int         M;
++
+ 	/*ice properties: */
+ 	IssmDouble rho_ice,rho_water,rho_earth;
+ 
+-	/*other constants: */
+-	//IssmDouble g; 
+-
+ 	/*Solution outputs: */
+ 	Vector<IssmDouble>* pSolution=NULL;
+ 	
+@@ -3549,6 +3551,10 @@
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+ 	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
+ 
++	/*recover legendre coefficients if they have been precomputed:*/
++	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
++	this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendrePrecomputeEnum);
++
+ 	/*how many dofs are we working with here? */
+ 	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
+ 
+@@ -3613,7 +3619,7 @@
+ 			IssmDouble alpha;
+ 			IssmDouble G_rigid=0;  //do not remove =0!
+ 			IssmDouble G_elastic=0;  //do not remove =0!
+-			IssmDouble Pn1,Pn2; //first two legendre polynomials
++			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
+ 			IssmDouble cosalpha;
+ 
+ 			/*Compute alpha angle between centroid and current vertex and cosine of this angle: */
+@@ -3630,7 +3636,15 @@
+ 			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
+ 			if(computeelastic){
+ 				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-				for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre(Pn1,Pn2,n,cosalpha);
++				if(legendre_precompute){
++					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[(int)((M-1)*(cosalpha+1.0)/2.0)*nl+n];
++				}
++				else{
++					for(int n=0;n<nl;n++){
++						Pn=legendre(Pn1,Pn2,n,cosalpha); Pn1=Pn2; Pn2=Pn;
++						G_elastic += deltalove[n]*Pn;
++					}
++				}
+ 			}
+ 
+ 			/*Add all components to the pSgi or pSgo solution vectors:*/
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 19985)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 19986)
+@@ -14,6 +14,8 @@
+ 		rigid         = 0;
+ 		elastic         = 0;
+ 		eustatic         = 0;
++		legendre_precompute = 0;
++		legendre_coefficients = NaN;
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -37,6 +39,10 @@
+ 		self.rigid=1;
+ 		self.elastic=1;
+ 		self.eustatic=1;
++		
++		%legendre coefficients: 
++		legendre_precompute = 0;
++		legendre_coefficients = NaN;
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -54,6 +60,11 @@
+ 				error('slr error message: love numbers should be provided at the same level of accuracy');
+ 			end
+ 
++			%check that the legendre coefficients have indeed been computed if requested:
++			if self.legendre_precompute,
++				md = checkfield(md,'fieldname','slr.legendre_coefficients','NaN',1,'Inf',1,'size',[NaN length(self.love_h)]);
++			end
++
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   slr parameters:'));
+@@ -67,6 +78,10 @@
+ 			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
++			fielddisplay(self,'legendre_precompute','precompute legendre coefficients? (default is 0)');
++			if(self.legendre_precompute)
++				fielddisplay(self,'legendre_coefficients','precomputed legendre coefficients');
++			end
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -79,6 +94,10 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_precompute','format','Boolean');
++			if(self.legendre_precompute),
++				WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_coefficients','format','DoubleMat','mattype',1);
++			end
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -90,6 +109,10 @@
+ 			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
++			writejsdouble(fid,[modelname '.slr.legendre_precompute'],self.legendre_precompute);
++			if self.legendre_precompute,
++				writejs2Darray(fid,[modelname '.srl.legendre_coefficients'],self.legendre_coefficients);
++			end
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19985)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19986)
+@@ -970,4 +970,6 @@
+ function SealevelriseRigidEnum(){ return 966;}
+ function SealevelriseElasticEnum(){ return 967;}
+ function SealevelriseEustaticEnum(){ return 968;}
+-function MaximumNumberOfDefinitionsEnum(){ return 969;}
++function SealevelriseLegendrePrecomputeEnum(){ return 969;}
++function SealevelriseLegendreCoefficientsEnum(){ return 970;}
++function MaximumNumberOfDefinitionsEnum(){ return 971;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19985)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19986)
+@@ -977,4 +977,6 @@
+ def SealevelriseRigidEnum(): return StringToEnum("SealevelriseRigid")[0]
+ def SealevelriseElasticEnum(): return StringToEnum("SealevelriseElastic")[0]
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
++def SealevelriseLegendrePrecomputeEnum(): return StringToEnum("SealevelriseLegendrePrecompute")[0]
++def SealevelriseLegendreCoefficientsEnum(): return StringToEnum("SealevelriseLegendreCoefficients")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19986-19987.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19986-19987.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19986-19987.diff	(revision 20498)
@@ -0,0 +1,1887 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 19986)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 19987)
+@@ -32,6 +32,7 @@
+ 	/*Create inputs: */
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskOceanLevelsetEnum);
++	iomodel->FetchDataToInput(elements,MaskLandLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,SealevelriseDeltathicknessEnum);
+ 
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19986)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 19987)
+@@ -198,6 +198,7 @@
+ 	InversionVzObsEnum,
+ 	MaskIceLevelsetEnum,
+ 	MaskOceanLevelsetEnum,
++	MaskLandLevelsetEnum,
+ 	MaterialsBetaEnum,
+ 	MaterialsHeatcapacityEnum,
+ 	MaterialsLatentheatEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19986)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 19987)
+@@ -204,6 +204,7 @@
+ 		case InversionVzObsEnum : return "InversionVzObs";
+ 		case MaskIceLevelsetEnum : return "MaskIceLevelset";
+ 		case MaskOceanLevelsetEnum : return "MaskOceanLevelset";
++		case MaskLandLevelsetEnum : return "MaskLandLevelset";
+ 		case MaterialsBetaEnum : return "MaterialsBeta";
+ 		case MaterialsHeatcapacityEnum : return "MaterialsHeatcapacity";
+ 		case MaterialsLatentheatEnum : return "MaterialsLatentheat";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19986)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 19987)
+@@ -207,6 +207,7 @@
+ 	      else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
+ 	      else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
+ 	      else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;
++	      else if (strcmp(name,"MaskLandLevelset")==0) return MaskLandLevelsetEnum;
+ 	      else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
+ 	      else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
+ 	      else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
+@@ -258,11 +259,11 @@
+ 	      else if (strcmp(name,"StrainRateparallel")==0) return StrainRateparallelEnum;
+ 	      else if (strcmp(name,"StrainRateperpendicular")==0) return StrainRateperpendicularEnum;
+ 	      else if (strcmp(name,"StrainRateeffective")==0) return StrainRateeffectiveEnum;
+-	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+          else stage=3;
+    }
+    if(stage==3){
+-	      if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
++	      if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
++	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+ 	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+ 	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+ 	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
+@@ -381,11 +382,11 @@
+ 	      else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
+-	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
++	      if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
++	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
+ 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
+ 	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
+@@ -504,11 +505,11 @@
+ 	      else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
+-	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
++	      if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
++	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+ 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
+@@ -627,11 +628,11 @@
+ 	      else if (strcmp(name,"Penta")==0) return PentaEnum;
+ 	      else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
+ 	      else if (strcmp(name,"Vertex")==0) return VertexEnum;
+-	      else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
++	      if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
++	      else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
+ 	      else if (strcmp(name,"Air")==0) return AirEnum;
+ 	      else if (strcmp(name,"Ice")==0) return IceEnum;
+ 	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
+ 	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
+ 	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
+-	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"MINI")==0) return MINIEnum;
++	      if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
++	      else if (strcmp(name,"MINI")==0) return MINIEnum;
+ 	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
+ 	      else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
+ 	      else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
+ 	      else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
+ 	      else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
+-	      else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
++	      if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
++	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+ 	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+ 	      else if (strcmp(name,"MassfluxatgateDefinitionenum")==0) return MassfluxatgateDefinitionenumEnum;
+ 	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
+@@ -996,11 +997,11 @@
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+ 	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+-	      else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
+          else stage=9;
+    }
+    if(stage==9){
+-	      if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
++	      if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
++	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
+ 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+ 	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
+ 	      else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19986)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 19987)
+@@ -119,7 +119,8 @@
+ 		bool               IsFloating(); 
+ 		bool               IsIceInElement();
+ 		bool               IsWaterInElement();
+-		bool	             IsInput(int name);
++		bool               IsLandInElement();
++		bool	           IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
+ 		void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19986)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19987)
+@@ -3553,7 +3553,7 @@
+ 
+ 	/*recover legendre coefficients if they have been precomputed:*/
+ 	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-	this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendrePrecomputeEnum);
++	this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
+ 
+ 	/*how many dofs are we working with here? */
+ 	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
+@@ -3595,7 +3595,7 @@
+ 		}
+ 
+ 	}
+-	else{
++	else if(IsIceInElement()){
+ 		Input*	deltathickness_input=inputs->GetInput(SealevelriseDeltathicknessEnum); 
+ 		if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
+ 		deltathickness_input->GetInputAverage(&I);
+@@ -3605,8 +3605,11 @@
+ 		/*Compute eustatic compoent:*/
+ 		if(computeeustatic)eustatic -= rho_ice*area*I/(oceanarea*rho_water); //Watch out the sign "-"!
+ 	}
++	else if(IsLandInElement()){ 
++		//do nothing
++	}
++	else _error_("Tria::Sealevelrise error: partition of land, ice and ocean is not complete!");
+ 
+-				
+ 	/*Speed up of love number comutation: */
+ 	if(computeelastic){
+ 		deltalove=xNew<IssmDouble>(nl);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19986)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 19987)
+@@ -1469,6 +1469,10 @@
+ 	return (this->inputs->Max(MaskOceanLevelsetEnum)>0.);
+ }
+ /*}}}*/
++bool       Element::IsLandInElement(){/*{{{*/
++	return (this->inputs->Max(MaskLandLevelsetEnum)>0.);
++}
++/*}}}*/
+ bool       Element::IsInput(int name){/*{{{*/
+ 	if (
+ 				name==ThicknessEnum ||
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19986)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 19987)
+@@ -8,6 +8,7 @@
+ 		groundedice_levelset = NaN;
+ 		ice_levelset         = NaN;
+ 		ocean_levelset = NaN;
++		land_levelset = NaN;
+ 	end
+ 	methods (Static)
+ 		function self = loadobj(self) % {{{
+@@ -26,6 +27,7 @@
+ 			self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node');
+ 			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
+ 			self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node');
++			self.land_levelset=project3d(md,'vector',self.land_levelset,'type','node');
+ 		end % }}}
+ 		function self = mask(varargin) % {{{
+ 			switch nargin
+@@ -43,6 +45,7 @@
+ 			md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','mask.land_levelset','size',[md.mesh.numberofvertices 1]);
+ 			isice=(md.mask.ice_levelset<=0);
+ 			if sum(isice)==0,
+ 				warning('no ice present in the domain');
+@@ -61,11 +64,13 @@
+ 			fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0');
+ 			fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0');
+ 			fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0');
++			fielddisplay(self,'land_levelset','is the vertex on the land ? yes if = 1, no if = 0');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
+ 
+ 			% get mask of vertices of elements with ice
+ 			isice=md.mask.ice_levelset<=0.;
+Index: ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m	(revision 19987)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseLegendrePrecomputeEnum()
++%SEALEVELRISELEGENDREPRECOMPUTEENUM - Enum of SealevelriseLegendrePrecompute
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseLegendrePrecomputeEnum()
++
++macro=StringToEnum('SealevelriseLegendrePrecompute');
+Index: ../trunk-jpl/src/m/enum/MaskLandLevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MaskLandLevelsetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MaskLandLevelsetEnum.m	(revision 19987)
+@@ -0,0 +1,11 @@
++function macro=MaskLandLevelsetEnum()
++%MASKLANDLEVELSETENUM - Enum of MaskLandLevelset
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MaskLandLevelsetEnum()
++
++macro=StringToEnum('MaskLandLevelset');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19986)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 19987)
+@@ -189,787 +189,788 @@
+ function InversionVzObsEnum(){ return 185;}
+ function MaskIceLevelsetEnum(){ return 186;}
+ function MaskOceanLevelsetEnum(){ return 187;}
+-function MaterialsBetaEnum(){ return 188;}
+-function MaterialsHeatcapacityEnum(){ return 189;}
+-function MaterialsLatentheatEnum(){ return 190;}
+-function MaterialsMeltingpointEnum(){ return 191;}
+-function MaterialsMixedLayerCapacityEnum(){ return 192;}
+-function MaterialsRheologyBEnum(){ return 193;}
+-function MaterialsRheologyBbarEnum(){ return 194;}
+-function MaterialsRheologyLawEnum(){ return 195;}
+-function MaterialsRheologyNEnum(){ return 196;}
+-function DamageIsdamageEnum(){ return 197;}
+-function DamageDEnum(){ return 198;}
+-function DamageFEnum(){ return 199;}
+-function DamageDbarEnum(){ return 200;}
+-function DamageLawEnum(){ return 201;}
+-function DamageC1Enum(){ return 202;}
+-function DamageC2Enum(){ return 203;}
+-function DamageC3Enum(){ return 204;}
+-function DamageC4Enum(){ return 205;}
+-function DamageElementinterpEnum(){ return 206;}
+-function DamageHealingEnum(){ return 207;}
+-function DamageStressThresholdEnum(){ return 208;}
+-function DamageKappaEnum(){ return 209;}
+-function DamageStabilizationEnum(){ return 210;}
+-function DamageMaxiterEnum(){ return 211;}
+-function DamageSpcdamageEnum(){ return 212;}
+-function DamageMaxDamageEnum(){ return 213;}
+-function DamageEquivStressEnum(){ return 214;}
+-function DamageEvolutionNumRequestedOutputsEnum(){ return 215;}
+-function DamageEvolutionRequestedOutputsEnum(){ return 216;}
+-function DamageEnum(){ return 217;}
+-function NewDamageEnum(){ return 218;}
+-function StressIntensityFactorEnum(){ return 219;}
+-function CalvingLawEnum(){ return 220;}
+-function CalvingCalvingrateEnum(){ return 221;}
+-function CalvingMeltingrateEnum(){ return 222;}
+-function CalvingLevermannEnum(){ return 223;}
+-function CalvingPiEnum(){ return 224;}
+-function CalvingDevEnum(){ return 225;}
+-function DefaultCalvingEnum(){ return 226;}
+-function CalvingRequestedOutputsEnum(){ return 227;}
+-function CalvinglevermannCoeffEnum(){ return 228;}
+-function CalvinglevermannMeltingrateEnum(){ return 229;}
+-function CalvingpiCoeffEnum(){ return 230;}
+-function CalvingpiMeltingrateEnum(){ return 231;}
+-function CalvingratexEnum(){ return 232;}
+-function CalvingrateyEnum(){ return 233;}
+-function CalvingratexAverageEnum(){ return 234;}
+-function CalvingrateyAverageEnum(){ return 235;}
+-function StrainRateparallelEnum(){ return 236;}
+-function StrainRateperpendicularEnum(){ return 237;}
+-function StrainRateeffectiveEnum(){ return 238;}
+-function MaterialsRhoIceEnum(){ return 239;}
+-function MaterialsRhoSeawaterEnum(){ return 240;}
+-function MaterialsRhoFreshwaterEnum(){ return 241;}
+-function MaterialsMuWaterEnum(){ return 242;}
+-function MaterialsThermalExchangeVelocityEnum(){ return 243;}
+-function MaterialsThermalconductivityEnum(){ return 244;}
+-function MaterialsTemperateiceconductivityEnum(){ return 245;}
+-function MaterialsLithosphereShearModulusEnum(){ return 246;}
+-function MaterialsLithosphereDensityEnum(){ return 247;}
+-function MaterialsMantleShearModulusEnum(){ return 248;}
+-function MaterialsMantleDensityEnum(){ return 249;}
+-function MaterialsEarthDensityEnum(){ return 250;}
+-function MeshAverageVertexConnectivityEnum(){ return 251;}
+-function MeshElements2dEnum(){ return 252;}
+-function MeshElementsEnum(){ return 253;}
+-function MeshLowerelementsEnum(){ return 254;}
+-function MeshNumberofelements2dEnum(){ return 255;}
+-function MeshNumberofelementsEnum(){ return 256;}
+-function MeshNumberoflayersEnum(){ return 257;}
+-function MeshNumberofvertices2dEnum(){ return 258;}
+-function MeshNumberofverticesEnum(){ return 259;}
+-function MeshUpperelementsEnum(){ return 260;}
+-function MeshVertexonbaseEnum(){ return 261;}
+-function MeshVertexonsurfaceEnum(){ return 262;}
+-function MeshVertexonboundaryEnum(){ return 263;}
+-function MeshXEnum(){ return 264;}
+-function MeshYEnum(){ return 265;}
+-function MeshZEnum(){ return 266;}
+-function MeshLatEnum(){ return 267;}
+-function MeshLongEnum(){ return 268;}
+-function MeshREnum(){ return 269;}
+-function MeshElementtypeEnum(){ return 270;}
+-function MeshSegmentsEnum(){ return 271;}
+-function DomainTypeEnum(){ return 272;}
+-function DomainDimensionEnum(){ return 273;}
+-function Domain2DhorizontalEnum(){ return 274;}
+-function Domain2DverticalEnum(){ return 275;}
+-function Domain3DEnum(){ return 276;}
+-function Domain3DsurfaceEnum(){ return 277;}
+-function MiscellaneousNameEnum(){ return 278;}
+-function MasstransportHydrostaticAdjustmentEnum(){ return 279;}
+-function MasstransportIsfreesurfaceEnum(){ return 280;}
+-function MasstransportMinThicknessEnum(){ return 281;}
+-function MasstransportPenaltyFactorEnum(){ return 282;}
+-function MasstransportSpcthicknessEnum(){ return 283;}
+-function MasstransportStabilizationEnum(){ return 284;}
+-function MasstransportVertexPairingEnum(){ return 285;}
+-function MasstransportNumRequestedOutputsEnum(){ return 286;}
+-function MasstransportRequestedOutputsEnum(){ return 287;}
+-function QmuIsdakotaEnum(){ return 288;}
+-function MassFluxSegmentsEnum(){ return 289;}
+-function MassFluxSegmentsPresentEnum(){ return 290;}
+-function QmuMassFluxSegmentsPresentEnum(){ return 291;}
+-function QmuNumberofpartitionsEnum(){ return 292;}
+-function QmuNumberofresponsesEnum(){ return 293;}
+-function QmuPartitionEnum(){ return 294;}
+-function QmuResponsedescriptorsEnum(){ return 295;}
+-function QmuVariabledescriptorsEnum(){ return 296;}
+-function RiftsNumriftsEnum(){ return 297;}
+-function RiftsRiftstructEnum(){ return 298;}
+-function SettingsResultsOnNodesEnum(){ return 299;}
+-function SettingsIoGatherEnum(){ return 300;}
+-function SettingsLowmemEnum(){ return 301;}
+-function SettingsOutputFrequencyEnum(){ return 302;}
+-function SettingsRecordingFrequencyEnum(){ return 303;}
+-function SettingsWaitonlockEnum(){ return 304;}
+-function DebugProfilingEnum(){ return 305;}
+-function ProfilingCurrentMemEnum(){ return 306;}
+-function ProfilingCurrentFlopsEnum(){ return 307;}
+-function ProfilingSolutionTimeEnum(){ return 308;}
+-function SteadystateMaxiterEnum(){ return 309;}
+-function SteadystateNumRequestedOutputsEnum(){ return 310;}
+-function SteadystateReltolEnum(){ return 311;}
+-function SteadystateRequestedOutputsEnum(){ return 312;}
+-function SurfaceEnum(){ return 313;}
+-function ThermalIsenthalpyEnum(){ return 314;}
+-function ThermalIsdynamicbasalspcEnum(){ return 315;}
+-function ThermalReltolEnum(){ return 316;}
+-function ThermalMaxiterEnum(){ return 317;}
+-function ThermalPenaltyFactorEnum(){ return 318;}
+-function ThermalPenaltyLockEnum(){ return 319;}
+-function ThermalPenaltyThresholdEnum(){ return 320;}
+-function ThermalSpctemperatureEnum(){ return 321;}
+-function ThermalStabilizationEnum(){ return 322;}
+-function ThermalNumRequestedOutputsEnum(){ return 323;}
+-function ThermalRequestedOutputsEnum(){ return 324;}
+-function GiaMantleViscosityEnum(){ return 325;}
+-function GiaLithosphereThicknessEnum(){ return 326;}
+-function ThicknessEnum(){ return 327;}
+-function TimesteppingStartTimeEnum(){ return 328;}
+-function TimesteppingFinalTimeEnum(){ return 329;}
+-function TimesteppingCflCoefficientEnum(){ return 330;}
+-function TimesteppingTimeAdaptEnum(){ return 331;}
+-function TimesteppingTimeStepEnum(){ return 332;}
+-function TimesteppingInterpForcingsEnum(){ return 333;}
+-function TransientIssmbEnum(){ return 334;}
+-function TransientIsstressbalanceEnum(){ return 335;}
+-function TransientIsgroundinglineEnum(){ return 336;}
+-function TransientIsmasstransportEnum(){ return 337;}
+-function TransientIsthermalEnum(){ return 338;}
+-function TransientIsgiaEnum(){ return 339;}
+-function TransientIsdamageevolutionEnum(){ return 340;}
+-function TransientIshydrologyEnum(){ return 341;}
+-function TransientIscalvingEnum(){ return 342;}
+-function TransientNumRequestedOutputsEnum(){ return 343;}
+-function TransientRequestedOutputsEnum(){ return 344;}
+-function PotentialEnum(){ return 345;}
+-function BalancethicknessSpcpotentialEnum(){ return 346;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 347;}
+-function Balancethickness2MisfitEnum(){ return 348;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 349;}
+-function BalancethicknessCmuEnum(){ return 350;}
+-function BalancethicknessOmegaEnum(){ return 351;}
+-function BalancethicknessD0Enum(){ return 352;}
+-function SmbEnum(){ return 353;}
+-function SmbAnalysisEnum(){ return 354;}
+-function SmbSolutionEnum(){ return 355;}
+-function SmbNumRequestedOutputsEnum(){ return 356;}
+-function SmbRequestedOutputsEnum(){ return 357;}
+-function SmbIsInitializedEnum(){ return 358;}
+-function SMBforcingEnum(){ return 359;}
+-function SmbMassBalanceEnum(){ return 360;}
+-function SMBgembEnum(){ return 361;}
+-function SmbInitDensityScalingEnum(){ return 362;}
+-function SmbTaEnum(){ return 363;}
+-function SmbVEnum(){ return 364;}
+-function SmbDswrfEnum(){ return 365;}
+-function SmbDlwrfEnum(){ return 366;}
+-function SmbPEnum(){ return 367;}
+-function SmbSwfEnum(){ return 368;}
+-function SmbEAirEnum(){ return 369;}
+-function SmbPAirEnum(){ return 370;}
+-function SmbTmeanEnum(){ return 371;}
+-function SmbCEnum(){ return 372;}
+-function SmbTzEnum(){ return 373;}
+-function SmbVzEnum(){ return 374;}
+-function SmbDtEnum(){ return 375;}
+-function SmbDzEnum(){ return 376;}
+-function SmbAIdxEnum(){ return 377;}
+-function SmbSwIdxEnum(){ return 378;}
+-function SmbDenIdxEnum(){ return 379;}
+-function SmbZTopEnum(){ return 380;}
+-function SmbDzTopEnum(){ return 381;}
+-function SmbDzMinEnum(){ return 382;}
+-function SmbZYEnum(){ return 383;}
+-function SmbZMaxEnum(){ return 384;}
+-function SmbZMinEnum(){ return 385;}
+-function SmbOutputFreqEnum(){ return 386;}
+-function SmbASnowEnum(){ return 387;}
+-function SmbAIceEnum(){ return 388;}
+-function SmbCldFracEnum(){ return 389;}
+-function SmbT0wetEnum(){ return 390;}
+-function SmbT0dryEnum(){ return 391;}
+-function SmbKEnum(){ return 392;}
+-function SmbDEnum(){ return 393;}
+-function SmbReEnum(){ return 394;}
+-function SmbGdnEnum(){ return 395;}
+-function SmbGspEnum(){ return 396;}
+-function SmbECEnum(){ return 397;}
+-function SmbCondensationEnum(){ return 398;}
+-function SmbWEnum(){ return 399;}
+-function SmbAEnum(){ return 400;}
+-function SmbTEnum(){ return 401;}
+-function SmbIsgraingrowthEnum(){ return 402;}
+-function SmbIsalbedoEnum(){ return 403;}
+-function SmbIsshortwaveEnum(){ return 404;}
+-function SmbIsthermalEnum(){ return 405;}
+-function SmbIsaccumulationEnum(){ return 406;}
+-function SmbIsmeltEnum(){ return 407;}
+-function SmbIsdensificationEnum(){ return 408;}
+-function SmbIsturbulentfluxEnum(){ return 409;}
+-function SMBpddEnum(){ return 410;}
+-function SmbDelta18oEnum(){ return 411;}
+-function SmbDelta18oSurfaceEnum(){ return 412;}
+-function SmbIsdelta18oEnum(){ return 413;}
+-function SmbIsmungsmEnum(){ return 414;}
+-function SmbIsd18opdEnum(){ return 415;}
+-function SmbPrecipitationsPresentdayEnum(){ return 416;}
+-function SmbPrecipitationsLgmEnum(){ return 417;}
+-function SmbTemperaturesPresentdayEnum(){ return 418;}
+-function SmbTemperaturesLgmEnum(){ return 419;}
+-function SmbPrecipitationEnum(){ return 420;}
+-function SmbDesfacEnum(){ return 421;}
+-function SmbS0pEnum(){ return 422;}
+-function SmbS0tEnum(){ return 423;}
+-function SmbRlapsEnum(){ return 424;}
+-function SmbRlapslgmEnum(){ return 425;}
+-function SmbPfacEnum(){ return 426;}
+-function SmbTdiffEnum(){ return 427;}
+-function SmbSealevEnum(){ return 428;}
+-function SMBd18opddEnum(){ return 429;}
+-function SmbDpermilEnum(){ return 430;}
+-function SMBgradientsEnum(){ return 431;}
+-function SmbMonthlytemperaturesEnum(){ return 432;}
+-function SmbHrefEnum(){ return 433;}
+-function SmbSmbrefEnum(){ return 434;}
+-function SmbBPosEnum(){ return 435;}
+-function SmbBNegEnum(){ return 436;}
+-function SMBhenningEnum(){ return 437;}
+-function SMBcomponentsEnum(){ return 438;}
+-function SmbAccumulationEnum(){ return 439;}
+-function SmbEvaporationEnum(){ return 440;}
+-function SmbRunoffEnum(){ return 441;}
+-function SMBmeltcomponentsEnum(){ return 442;}
+-function SmbMeltEnum(){ return 443;}
+-function SmbRefreezeEnum(){ return 444;}
+-function SMBgcmEnum(){ return 445;}
+-function SmbIspddEnum(){ return 446;}
+-function SmbIssmbgradientsEnum(){ return 447;}
+-function SolutionTypeEnum(){ return 448;}
+-function AnalysisTypeEnum(){ return 449;}
+-function ConfigurationTypeEnum(){ return 450;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 451;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 452;}
+-function AdjointHorizAnalysisEnum(){ return 453;}
+-function AnalysisCounterEnum(){ return 454;}
+-function DefaultAnalysisEnum(){ return 455;}
+-function BalancethicknessAnalysisEnum(){ return 456;}
+-function BalancethicknessSolutionEnum(){ return 457;}
+-function Balancethickness2AnalysisEnum(){ return 458;}
+-function Balancethickness2SolutionEnum(){ return 459;}
+-function BalancethicknessSoftAnalysisEnum(){ return 460;}
+-function BalancethicknessSoftSolutionEnum(){ return 461;}
+-function BalancevelocityAnalysisEnum(){ return 462;}
+-function BalancevelocitySolutionEnum(){ return 463;}
+-function L2ProjectionEPLAnalysisEnum(){ return 464;}
+-function L2ProjectionBaseAnalysisEnum(){ return 465;}
+-function BedSlopeSolutionEnum(){ return 466;}
+-function DamageEvolutionSolutionEnum(){ return 467;}
+-function DamageEvolutionAnalysisEnum(){ return 468;}
+-function StressbalanceAnalysisEnum(){ return 469;}
+-function StressbalanceSIAAnalysisEnum(){ return 470;}
+-function StressbalanceSolutionEnum(){ return 471;}
+-function StressbalanceVerticalAnalysisEnum(){ return 472;}
+-function EnthalpyAnalysisEnum(){ return 473;}
+-function FlaimAnalysisEnum(){ return 474;}
+-function FlaimSolutionEnum(){ return 475;}
+-function HydrologyShreveAnalysisEnum(){ return 476;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 477;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 478;}
+-function HydrologySommersAnalysisEnum(){ return 479;}
+-function HydrologySolutionEnum(){ return 480;}
+-function MeltingAnalysisEnum(){ return 481;}
+-function MasstransportAnalysisEnum(){ return 482;}
+-function MasstransportSolutionEnum(){ return 483;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 484;}
+-function FreeSurfaceTopAnalysisEnum(){ return 485;}
+-function SurfaceNormalVelocityEnum(){ return 486;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 487;}
+-function ExtrudeFromTopAnalysisEnum(){ return 488;}
+-function DepthAverageAnalysisEnum(){ return 489;}
+-function SteadystateSolutionEnum(){ return 490;}
+-function SurfaceSlopeSolutionEnum(){ return 491;}
+-function SmoothAnalysisEnum(){ return 492;}
+-function ThermalAnalysisEnum(){ return 493;}
+-function ThermalSolutionEnum(){ return 494;}
+-function TransientSolutionEnum(){ return 495;}
+-function UzawaPressureAnalysisEnum(){ return 496;}
+-function GiaSolutionEnum(){ return 497;}
+-function GiaAnalysisEnum(){ return 498;}
+-function MeshdeformationSolutionEnum(){ return 499;}
+-function MeshdeformationAnalysisEnum(){ return 500;}
+-function LevelsetAnalysisEnum(){ return 501;}
+-function LevelsetStabilizationEnum(){ return 502;}
+-function ExtrapolationAnalysisEnum(){ return 503;}
+-function LsfReinitializationAnalysisEnum(){ return 504;}
+-function ApproximationEnum(){ return 505;}
+-function NoneApproximationEnum(){ return 506;}
+-function SIAApproximationEnum(){ return 507;}
+-function SSAApproximationEnum(){ return 508;}
+-function SSAHOApproximationEnum(){ return 509;}
+-function SSAFSApproximationEnum(){ return 510;}
+-function L1L2ApproximationEnum(){ return 511;}
+-function HOApproximationEnum(){ return 512;}
+-function HOFSApproximationEnum(){ return 513;}
+-function FSApproximationEnum(){ return 514;}
+-function FSvelocityEnum(){ return 515;}
+-function FSpressureEnum(){ return 516;}
+-function DataSetEnum(){ return 517;}
+-function ConstraintsEnum(){ return 518;}
+-function LoadsEnum(){ return 519;}
+-function MaterialsEnum(){ return 520;}
+-function NodesEnum(){ return 521;}
+-function ContoursEnum(){ return 522;}
+-function ParametersEnum(){ return 523;}
+-function VerticesEnum(){ return 524;}
+-function ResultsEnum(){ return 525;}
+-function GenericParamEnum(){ return 526;}
+-function AdolcParamEnum(){ return 527;}
+-function BoolInputEnum(){ return 528;}
+-function BoolParamEnum(){ return 529;}
+-function ContourEnum(){ return 530;}
+-function ControlInputEnum(){ return 531;}
+-function DatasetInputEnum(){ return 532;}
+-function DoubleInputEnum(){ return 533;}
+-function DoubleArrayInputEnum(){ return 534;}
+-function DataSetParamEnum(){ return 535;}
+-function DoubleMatArrayParamEnum(){ return 536;}
+-function DoubleMatParamEnum(){ return 537;}
+-function DoubleParamEnum(){ return 538;}
+-function DoubleVecParamEnum(){ return 539;}
+-function ElementEnum(){ return 540;}
+-function ElementHookEnum(){ return 541;}
+-function HookEnum(){ return 542;}
+-function ExternalResultEnum(){ return 543;}
+-function FileParamEnum(){ return 544;}
+-function InputEnum(){ return 545;}
+-function IntInputEnum(){ return 546;}
+-function InputToExtrudeEnum(){ return 547;}
+-function InputToL2ProjectEnum(){ return 548;}
+-function InputToDepthaverageEnum(){ return 549;}
+-function InputToSmoothEnum(){ return 550;}
+-function SmoothThicknessMultiplierEnum(){ return 551;}
+-function IntParamEnum(){ return 552;}
+-function IntVecParamEnum(){ return 553;}
+-function TransientParamEnum(){ return 554;}
+-function MaticeEnum(){ return 555;}
+-function MatdamageiceEnum(){ return 556;}
+-function MatparEnum(){ return 557;}
+-function NodeEnum(){ return 558;}
+-function NumericalfluxEnum(){ return 559;}
+-function NumericalfluxTypeEnum(){ return 560;}
+-function NeumannfluxEnum(){ return 561;}
+-function ParamEnum(){ return 562;}
+-function MoulinEnum(){ return 563;}
+-function PengridEnum(){ return 564;}
+-function PenpairEnum(){ return 565;}
+-function ProfilerEnum(){ return 566;}
+-function MatrixParamEnum(){ return 567;}
+-function MassconEnum(){ return 568;}
+-function MassconNameEnum(){ return 569;}
+-function MassconDefinitionenumEnum(){ return 570;}
+-function MassconLevelsetEnum(){ return 571;}
+-function MassconaxpbyEnum(){ return 572;}
+-function MassconaxpbyNameEnum(){ return 573;}
+-function MassconaxpbyDefinitionenumEnum(){ return 574;}
+-function MassconaxpbyNamexEnum(){ return 575;}
+-function MassconaxpbyNameyEnum(){ return 576;}
+-function MassconaxpbyAlphaEnum(){ return 577;}
+-function MassconaxpbyBetaEnum(){ return 578;}
+-function NodeSIdEnum(){ return 579;}
+-function VectorParamEnum(){ return 580;}
+-function RiftfrontEnum(){ return 581;}
+-function RiftfrontTypeEnum(){ return 582;}
+-function SegmentEnum(){ return 583;}
+-function SegmentRiftfrontEnum(){ return 584;}
+-function SpcDynamicEnum(){ return 585;}
+-function SpcStaticEnum(){ return 586;}
+-function SpcTransientEnum(){ return 587;}
+-function StringArrayParamEnum(){ return 588;}
+-function StringParamEnum(){ return 589;}
+-function SegEnum(){ return 590;}
+-function SegInputEnum(){ return 591;}
+-function TriaEnum(){ return 592;}
+-function TriaInputEnum(){ return 593;}
+-function TetraEnum(){ return 594;}
+-function TetraInputEnum(){ return 595;}
+-function PentaEnum(){ return 596;}
+-function PentaInputEnum(){ return 597;}
+-function VertexEnum(){ return 598;}
+-function VertexPIdEnum(){ return 599;}
+-function VertexSIdEnum(){ return 600;}
+-function AirEnum(){ return 601;}
+-function IceEnum(){ return 602;}
+-function MelangeEnum(){ return 603;}
+-function WaterEnum(){ return 604;}
+-function ClosedEnum(){ return 605;}
+-function FreeEnum(){ return 606;}
+-function OpenEnum(){ return 607;}
+-function AdjointpEnum(){ return 608;}
+-function AdjointxEnum(){ return 609;}
+-function AdjointyEnum(){ return 610;}
+-function AdjointzEnum(){ return 611;}
+-function BalancethicknessMisfitEnum(){ return 612;}
+-function BedSlopeXEnum(){ return 613;}
+-function BedSlopeYEnum(){ return 614;}
+-function BoundaryEnum(){ return 615;}
+-function ConvergedEnum(){ return 616;}
+-function FillEnum(){ return 617;}
+-function FractionIncrementEnum(){ return 618;}
+-function FrictionEnum(){ return 619;}
+-function InternalEnum(){ return 620;}
+-function MassFluxEnum(){ return 621;}
+-function MeltingOffsetEnum(){ return 622;}
+-function MisfitEnum(){ return 623;}
+-function PressureEnum(){ return 624;}
+-function PressurePicardEnum(){ return 625;}
+-function AndroidFrictionCoefficientEnum(){ return 626;}
+-function ResetPenaltiesEnum(){ return 627;}
+-function SegmentOnIceShelfEnum(){ return 628;}
+-function SurfaceAbsVelMisfitEnum(){ return 629;}
+-function SurfaceAreaEnum(){ return 630;}
+-function SurfaceAverageVelMisfitEnum(){ return 631;}
+-function SurfaceLogVelMisfitEnum(){ return 632;}
+-function SurfaceLogVxVyMisfitEnum(){ return 633;}
+-function SurfaceRelVelMisfitEnum(){ return 634;}
+-function SurfaceSlopeXEnum(){ return 635;}
+-function SurfaceSlopeYEnum(){ return 636;}
+-function TemperatureEnum(){ return 637;}
+-function TemperaturePicardEnum(){ return 638;}
+-function TemperaturePDDEnum(){ return 639;}
+-function ThicknessAbsMisfitEnum(){ return 640;}
+-function SurfaceAbsMisfitEnum(){ return 641;}
+-function VelEnum(){ return 642;}
+-function VelocityEnum(){ return 643;}
+-function VxAverageEnum(){ return 644;}
+-function VxEnum(){ return 645;}
+-function VxPicardEnum(){ return 646;}
+-function VyAverageEnum(){ return 647;}
+-function VyEnum(){ return 648;}
+-function VyPicardEnum(){ return 649;}
+-function VzEnum(){ return 650;}
+-function VzSSAEnum(){ return 651;}
+-function VzHOEnum(){ return 652;}
+-function VzPicardEnum(){ return 653;}
+-function VzFSEnum(){ return 654;}
+-function VxMeshEnum(){ return 655;}
+-function VyMeshEnum(){ return 656;}
+-function VzMeshEnum(){ return 657;}
+-function EnthalpyEnum(){ return 658;}
+-function EnthalpyPicardEnum(){ return 659;}
+-function ThicknessAbsGradientEnum(){ return 660;}
+-function ThicknessAlongGradientEnum(){ return 661;}
+-function ThicknessAcrossGradientEnum(){ return 662;}
+-function IntMatParamEnum(){ return 663;}
+-function RheologyBbarAbsGradientEnum(){ return 664;}
+-function RheologyBAbsGradientEnum(){ return 665;}
+-function DragCoefficientAbsGradientEnum(){ return 666;}
+-function TransientInputEnum(){ return 667;}
+-function WaterfractionEnum(){ return 668;}
+-function WatercolumnEnum(){ return 669;}
+-function BasalFrictionEnum(){ return 670;}
+-function ViscousHeatingEnum(){ return 671;}
+-function HydrologyWaterVxEnum(){ return 672;}
+-function HydrologyWaterVyEnum(){ return 673;}
+-function DrivingStressXEnum(){ return 674;}
+-function DrivingStressYEnum(){ return 675;}
+-function SigmaNNEnum(){ return 676;}
+-function StressTensorEnum(){ return 677;}
+-function StressTensorxxEnum(){ return 678;}
+-function StressTensorxyEnum(){ return 679;}
+-function StressTensorxzEnum(){ return 680;}
+-function StressTensoryyEnum(){ return 681;}
+-function StressTensoryzEnum(){ return 682;}
+-function StressTensorzzEnum(){ return 683;}
+-function StressMaxPrincipalEnum(){ return 684;}
+-function DeviatoricStressEnum(){ return 685;}
+-function DeviatoricStressxxEnum(){ return 686;}
+-function DeviatoricStressxyEnum(){ return 687;}
+-function DeviatoricStressxzEnum(){ return 688;}
+-function DeviatoricStressyyEnum(){ return 689;}
+-function DeviatoricStressyzEnum(){ return 690;}
+-function DeviatoricStresszzEnum(){ return 691;}
+-function DeviatoricStresseffectiveEnum(){ return 692;}
+-function StrainRateEnum(){ return 693;}
+-function StrainRatexxEnum(){ return 694;}
+-function StrainRatexyEnum(){ return 695;}
+-function StrainRatexzEnum(){ return 696;}
+-function StrainRateyyEnum(){ return 697;}
+-function StrainRateyzEnum(){ return 698;}
+-function StrainRatezzEnum(){ return 699;}
+-function DivergenceEnum(){ return 700;}
+-function MaxDivergenceEnum(){ return 701;}
+-function GiaCrossSectionShapeEnum(){ return 702;}
+-function GiadWdtEnum(){ return 703;}
+-function GiaWEnum(){ return 704;}
+-function P0Enum(){ return 705;}
+-function P0ArrayEnum(){ return 706;}
+-function P1Enum(){ return 707;}
+-function P1DGEnum(){ return 708;}
+-function P1bubbleEnum(){ return 709;}
+-function P1bubblecondensedEnum(){ return 710;}
+-function P2Enum(){ return 711;}
+-function P2bubbleEnum(){ return 712;}
+-function P2bubblecondensedEnum(){ return 713;}
+-function P2xP1Enum(){ return 714;}
+-function P1xP2Enum(){ return 715;}
+-function P1xP3Enum(){ return 716;}
+-function P2xP4Enum(){ return 717;}
+-function P1P1Enum(){ return 718;}
+-function P1P1GLSEnum(){ return 719;}
+-function MINIEnum(){ return 720;}
+-function MINIcondensedEnum(){ return 721;}
+-function TaylorHoodEnum(){ return 722;}
+-function LATaylorHoodEnum(){ return 723;}
+-function XTaylorHoodEnum(){ return 724;}
+-function OneLayerP4zEnum(){ return 725;}
+-function CrouzeixRaviartEnum(){ return 726;}
+-function LACrouzeixRaviartEnum(){ return 727;}
+-function SaveResultsEnum(){ return 728;}
+-function BoolExternalResultEnum(){ return 729;}
+-function DoubleExternalResultEnum(){ return 730;}
+-function DoubleMatExternalResultEnum(){ return 731;}
+-function IntExternalResultEnum(){ return 732;}
+-function JEnum(){ return 733;}
+-function StringExternalResultEnum(){ return 734;}
+-function StepEnum(){ return 735;}
+-function TimeEnum(){ return 736;}
+-function WaterColumnOldEnum(){ return 737;}
+-function OutputdefinitionEnum(){ return 738;}
+-function Outputdefinition1Enum(){ return 739;}
+-function Outputdefinition2Enum(){ return 740;}
+-function Outputdefinition3Enum(){ return 741;}
+-function Outputdefinition4Enum(){ return 742;}
+-function Outputdefinition5Enum(){ return 743;}
+-function Outputdefinition6Enum(){ return 744;}
+-function Outputdefinition7Enum(){ return 745;}
+-function Outputdefinition8Enum(){ return 746;}
+-function Outputdefinition9Enum(){ return 747;}
+-function Outputdefinition10Enum(){ return 748;}
+-function Outputdefinition11Enum(){ return 749;}
+-function Outputdefinition12Enum(){ return 750;}
+-function Outputdefinition13Enum(){ return 751;}
+-function Outputdefinition14Enum(){ return 752;}
+-function Outputdefinition15Enum(){ return 753;}
+-function Outputdefinition16Enum(){ return 754;}
+-function Outputdefinition17Enum(){ return 755;}
+-function Outputdefinition18Enum(){ return 756;}
+-function Outputdefinition19Enum(){ return 757;}
+-function Outputdefinition20Enum(){ return 758;}
+-function Outputdefinition21Enum(){ return 759;}
+-function Outputdefinition22Enum(){ return 760;}
+-function Outputdefinition23Enum(){ return 761;}
+-function Outputdefinition24Enum(){ return 762;}
+-function Outputdefinition25Enum(){ return 763;}
+-function Outputdefinition26Enum(){ return 764;}
+-function Outputdefinition27Enum(){ return 765;}
+-function Outputdefinition28Enum(){ return 766;}
+-function Outputdefinition29Enum(){ return 767;}
+-function Outputdefinition30Enum(){ return 768;}
+-function Outputdefinition31Enum(){ return 769;}
+-function Outputdefinition32Enum(){ return 770;}
+-function Outputdefinition33Enum(){ return 771;}
+-function Outputdefinition34Enum(){ return 772;}
+-function Outputdefinition35Enum(){ return 773;}
+-function Outputdefinition36Enum(){ return 774;}
+-function Outputdefinition37Enum(){ return 775;}
+-function Outputdefinition38Enum(){ return 776;}
+-function Outputdefinition39Enum(){ return 777;}
+-function Outputdefinition40Enum(){ return 778;}
+-function Outputdefinition41Enum(){ return 779;}
+-function Outputdefinition42Enum(){ return 780;}
+-function Outputdefinition43Enum(){ return 781;}
+-function Outputdefinition44Enum(){ return 782;}
+-function Outputdefinition45Enum(){ return 783;}
+-function Outputdefinition46Enum(){ return 784;}
+-function Outputdefinition47Enum(){ return 785;}
+-function Outputdefinition48Enum(){ return 786;}
+-function Outputdefinition49Enum(){ return 787;}
+-function Outputdefinition50Enum(){ return 788;}
+-function Outputdefinition51Enum(){ return 789;}
+-function Outputdefinition52Enum(){ return 790;}
+-function Outputdefinition53Enum(){ return 791;}
+-function Outputdefinition54Enum(){ return 792;}
+-function Outputdefinition55Enum(){ return 793;}
+-function Outputdefinition56Enum(){ return 794;}
+-function Outputdefinition57Enum(){ return 795;}
+-function Outputdefinition58Enum(){ return 796;}
+-function Outputdefinition59Enum(){ return 797;}
+-function Outputdefinition60Enum(){ return 798;}
+-function Outputdefinition61Enum(){ return 799;}
+-function Outputdefinition62Enum(){ return 800;}
+-function Outputdefinition63Enum(){ return 801;}
+-function Outputdefinition64Enum(){ return 802;}
+-function Outputdefinition65Enum(){ return 803;}
+-function Outputdefinition66Enum(){ return 804;}
+-function Outputdefinition67Enum(){ return 805;}
+-function Outputdefinition68Enum(){ return 806;}
+-function Outputdefinition69Enum(){ return 807;}
+-function Outputdefinition70Enum(){ return 808;}
+-function Outputdefinition71Enum(){ return 809;}
+-function Outputdefinition72Enum(){ return 810;}
+-function Outputdefinition73Enum(){ return 811;}
+-function Outputdefinition74Enum(){ return 812;}
+-function Outputdefinition75Enum(){ return 813;}
+-function Outputdefinition76Enum(){ return 814;}
+-function Outputdefinition77Enum(){ return 815;}
+-function Outputdefinition78Enum(){ return 816;}
+-function Outputdefinition79Enum(){ return 817;}
+-function Outputdefinition80Enum(){ return 818;}
+-function Outputdefinition81Enum(){ return 819;}
+-function Outputdefinition82Enum(){ return 820;}
+-function Outputdefinition83Enum(){ return 821;}
+-function Outputdefinition84Enum(){ return 822;}
+-function Outputdefinition85Enum(){ return 823;}
+-function Outputdefinition86Enum(){ return 824;}
+-function Outputdefinition87Enum(){ return 825;}
+-function Outputdefinition88Enum(){ return 826;}
+-function Outputdefinition89Enum(){ return 827;}
+-function Outputdefinition90Enum(){ return 828;}
+-function Outputdefinition91Enum(){ return 829;}
+-function Outputdefinition92Enum(){ return 830;}
+-function Outputdefinition93Enum(){ return 831;}
+-function Outputdefinition94Enum(){ return 832;}
+-function Outputdefinition95Enum(){ return 833;}
+-function Outputdefinition96Enum(){ return 834;}
+-function Outputdefinition97Enum(){ return 835;}
+-function Outputdefinition98Enum(){ return 836;}
+-function Outputdefinition99Enum(){ return 837;}
+-function Outputdefinition100Enum(){ return 838;}
+-function OutputdefinitionListEnum(){ return 839;}
+-function MassfluxatgateEnum(){ return 840;}
+-function MassfluxatgateNameEnum(){ return 841;}
+-function MassfluxatgateDefinitionenumEnum(){ return 842;}
+-function MassfluxatgateSegmentsEnum(){ return 843;}
+-function MisfitNameEnum(){ return 844;}
+-function MisfitDefinitionenumEnum(){ return 845;}
+-function MisfitModelEnum(){ return 846;}
+-function MisfitObservationEnum(){ return 847;}
++function MaskLandLevelsetEnum(){ return 188;}
++function MaterialsBetaEnum(){ return 189;}
++function MaterialsHeatcapacityEnum(){ return 190;}
++function MaterialsLatentheatEnum(){ return 191;}
++function MaterialsMeltingpointEnum(){ return 192;}
++function MaterialsMixedLayerCapacityEnum(){ return 193;}
++function MaterialsRheologyBEnum(){ return 194;}
++function MaterialsRheologyBbarEnum(){ return 195;}
++function MaterialsRheologyLawEnum(){ return 196;}
++function MaterialsRheologyNEnum(){ return 197;}
++function DamageIsdamageEnum(){ return 198;}
++function DamageDEnum(){ return 199;}
++function DamageFEnum(){ return 200;}
++function DamageDbarEnum(){ return 201;}
++function DamageLawEnum(){ return 202;}
++function DamageC1Enum(){ return 203;}
++function DamageC2Enum(){ return 204;}
++function DamageC3Enum(){ return 205;}
++function DamageC4Enum(){ return 206;}
++function DamageElementinterpEnum(){ return 207;}
++function DamageHealingEnum(){ return 208;}
++function DamageStressThresholdEnum(){ return 209;}
++function DamageKappaEnum(){ return 210;}
++function DamageStabilizationEnum(){ return 211;}
++function DamageMaxiterEnum(){ return 212;}
++function DamageSpcdamageEnum(){ return 213;}
++function DamageMaxDamageEnum(){ return 214;}
++function DamageEquivStressEnum(){ return 215;}
++function DamageEvolutionNumRequestedOutputsEnum(){ return 216;}
++function DamageEvolutionRequestedOutputsEnum(){ return 217;}
++function DamageEnum(){ return 218;}
++function NewDamageEnum(){ return 219;}
++function StressIntensityFactorEnum(){ return 220;}
++function CalvingLawEnum(){ return 221;}
++function CalvingCalvingrateEnum(){ return 222;}
++function CalvingMeltingrateEnum(){ return 223;}
++function CalvingLevermannEnum(){ return 224;}
++function CalvingPiEnum(){ return 225;}
++function CalvingDevEnum(){ return 226;}
++function DefaultCalvingEnum(){ return 227;}
++function CalvingRequestedOutputsEnum(){ return 228;}
++function CalvinglevermannCoeffEnum(){ return 229;}
++function CalvinglevermannMeltingrateEnum(){ return 230;}
++function CalvingpiCoeffEnum(){ return 231;}
++function CalvingpiMeltingrateEnum(){ return 232;}
++function CalvingratexEnum(){ return 233;}
++function CalvingrateyEnum(){ return 234;}
++function CalvingratexAverageEnum(){ return 235;}
++function CalvingrateyAverageEnum(){ return 236;}
++function StrainRateparallelEnum(){ return 237;}
++function StrainRateperpendicularEnum(){ return 238;}
++function StrainRateeffectiveEnum(){ return 239;}
++function MaterialsRhoIceEnum(){ return 240;}
++function MaterialsRhoSeawaterEnum(){ return 241;}
++function MaterialsRhoFreshwaterEnum(){ return 242;}
++function MaterialsMuWaterEnum(){ return 243;}
++function MaterialsThermalExchangeVelocityEnum(){ return 244;}
++function MaterialsThermalconductivityEnum(){ return 245;}
++function MaterialsTemperateiceconductivityEnum(){ return 246;}
++function MaterialsLithosphereShearModulusEnum(){ return 247;}
++function MaterialsLithosphereDensityEnum(){ return 248;}
++function MaterialsMantleShearModulusEnum(){ return 249;}
++function MaterialsMantleDensityEnum(){ return 250;}
++function MaterialsEarthDensityEnum(){ return 251;}
++function MeshAverageVertexConnectivityEnum(){ return 252;}
++function MeshElements2dEnum(){ return 253;}
++function MeshElementsEnum(){ return 254;}
++function MeshLowerelementsEnum(){ return 255;}
++function MeshNumberofelements2dEnum(){ return 256;}
++function MeshNumberofelementsEnum(){ return 257;}
++function MeshNumberoflayersEnum(){ return 258;}
++function MeshNumberofvertices2dEnum(){ return 259;}
++function MeshNumberofverticesEnum(){ return 260;}
++function MeshUpperelementsEnum(){ return 261;}
++function MeshVertexonbaseEnum(){ return 262;}
++function MeshVertexonsurfaceEnum(){ return 263;}
++function MeshVertexonboundaryEnum(){ return 264;}
++function MeshXEnum(){ return 265;}
++function MeshYEnum(){ return 266;}
++function MeshZEnum(){ return 267;}
++function MeshLatEnum(){ return 268;}
++function MeshLongEnum(){ return 269;}
++function MeshREnum(){ return 270;}
++function MeshElementtypeEnum(){ return 271;}
++function MeshSegmentsEnum(){ return 272;}
++function DomainTypeEnum(){ return 273;}
++function DomainDimensionEnum(){ return 274;}
++function Domain2DhorizontalEnum(){ return 275;}
++function Domain2DverticalEnum(){ return 276;}
++function Domain3DEnum(){ return 277;}
++function Domain3DsurfaceEnum(){ return 278;}
++function MiscellaneousNameEnum(){ return 279;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 280;}
++function MasstransportIsfreesurfaceEnum(){ return 281;}
++function MasstransportMinThicknessEnum(){ return 282;}
++function MasstransportPenaltyFactorEnum(){ return 283;}
++function MasstransportSpcthicknessEnum(){ return 284;}
++function MasstransportStabilizationEnum(){ return 285;}
++function MasstransportVertexPairingEnum(){ return 286;}
++function MasstransportNumRequestedOutputsEnum(){ return 287;}
++function MasstransportRequestedOutputsEnum(){ return 288;}
++function QmuIsdakotaEnum(){ return 289;}
++function MassFluxSegmentsEnum(){ return 290;}
++function MassFluxSegmentsPresentEnum(){ return 291;}
++function QmuMassFluxSegmentsPresentEnum(){ return 292;}
++function QmuNumberofpartitionsEnum(){ return 293;}
++function QmuNumberofresponsesEnum(){ return 294;}
++function QmuPartitionEnum(){ return 295;}
++function QmuResponsedescriptorsEnum(){ return 296;}
++function QmuVariabledescriptorsEnum(){ return 297;}
++function RiftsNumriftsEnum(){ return 298;}
++function RiftsRiftstructEnum(){ return 299;}
++function SettingsResultsOnNodesEnum(){ return 300;}
++function SettingsIoGatherEnum(){ return 301;}
++function SettingsLowmemEnum(){ return 302;}
++function SettingsOutputFrequencyEnum(){ return 303;}
++function SettingsRecordingFrequencyEnum(){ return 304;}
++function SettingsWaitonlockEnum(){ return 305;}
++function DebugProfilingEnum(){ return 306;}
++function ProfilingCurrentMemEnum(){ return 307;}
++function ProfilingCurrentFlopsEnum(){ return 308;}
++function ProfilingSolutionTimeEnum(){ return 309;}
++function SteadystateMaxiterEnum(){ return 310;}
++function SteadystateNumRequestedOutputsEnum(){ return 311;}
++function SteadystateReltolEnum(){ return 312;}
++function SteadystateRequestedOutputsEnum(){ return 313;}
++function SurfaceEnum(){ return 314;}
++function ThermalIsenthalpyEnum(){ return 315;}
++function ThermalIsdynamicbasalspcEnum(){ return 316;}
++function ThermalReltolEnum(){ return 317;}
++function ThermalMaxiterEnum(){ return 318;}
++function ThermalPenaltyFactorEnum(){ return 319;}
++function ThermalPenaltyLockEnum(){ return 320;}
++function ThermalPenaltyThresholdEnum(){ return 321;}
++function ThermalSpctemperatureEnum(){ return 322;}
++function ThermalStabilizationEnum(){ return 323;}
++function ThermalNumRequestedOutputsEnum(){ return 324;}
++function ThermalRequestedOutputsEnum(){ return 325;}
++function GiaMantleViscosityEnum(){ return 326;}
++function GiaLithosphereThicknessEnum(){ return 327;}
++function ThicknessEnum(){ return 328;}
++function TimesteppingStartTimeEnum(){ return 329;}
++function TimesteppingFinalTimeEnum(){ return 330;}
++function TimesteppingCflCoefficientEnum(){ return 331;}
++function TimesteppingTimeAdaptEnum(){ return 332;}
++function TimesteppingTimeStepEnum(){ return 333;}
++function TimesteppingInterpForcingsEnum(){ return 334;}
++function TransientIssmbEnum(){ return 335;}
++function TransientIsstressbalanceEnum(){ return 336;}
++function TransientIsgroundinglineEnum(){ return 337;}
++function TransientIsmasstransportEnum(){ return 338;}
++function TransientIsthermalEnum(){ return 339;}
++function TransientIsgiaEnum(){ return 340;}
++function TransientIsdamageevolutionEnum(){ return 341;}
++function TransientIshydrologyEnum(){ return 342;}
++function TransientIscalvingEnum(){ return 343;}
++function TransientNumRequestedOutputsEnum(){ return 344;}
++function TransientRequestedOutputsEnum(){ return 345;}
++function PotentialEnum(){ return 346;}
++function BalancethicknessSpcpotentialEnum(){ return 347;}
++function BalancethicknessApparentMassbalanceEnum(){ return 348;}
++function Balancethickness2MisfitEnum(){ return 349;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 350;}
++function BalancethicknessCmuEnum(){ return 351;}
++function BalancethicknessOmegaEnum(){ return 352;}
++function BalancethicknessD0Enum(){ return 353;}
++function SmbEnum(){ return 354;}
++function SmbAnalysisEnum(){ return 355;}
++function SmbSolutionEnum(){ return 356;}
++function SmbNumRequestedOutputsEnum(){ return 357;}
++function SmbRequestedOutputsEnum(){ return 358;}
++function SmbIsInitializedEnum(){ return 359;}
++function SMBforcingEnum(){ return 360;}
++function SmbMassBalanceEnum(){ return 361;}
++function SMBgembEnum(){ return 362;}
++function SmbInitDensityScalingEnum(){ return 363;}
++function SmbTaEnum(){ return 364;}
++function SmbVEnum(){ return 365;}
++function SmbDswrfEnum(){ return 366;}
++function SmbDlwrfEnum(){ return 367;}
++function SmbPEnum(){ return 368;}
++function SmbSwfEnum(){ return 369;}
++function SmbEAirEnum(){ return 370;}
++function SmbPAirEnum(){ return 371;}
++function SmbTmeanEnum(){ return 372;}
++function SmbCEnum(){ return 373;}
++function SmbTzEnum(){ return 374;}
++function SmbVzEnum(){ return 375;}
++function SmbDtEnum(){ return 376;}
++function SmbDzEnum(){ return 377;}
++function SmbAIdxEnum(){ return 378;}
++function SmbSwIdxEnum(){ return 379;}
++function SmbDenIdxEnum(){ return 380;}
++function SmbZTopEnum(){ return 381;}
++function SmbDzTopEnum(){ return 382;}
++function SmbDzMinEnum(){ return 383;}
++function SmbZYEnum(){ return 384;}
++function SmbZMaxEnum(){ return 385;}
++function SmbZMinEnum(){ return 386;}
++function SmbOutputFreqEnum(){ return 387;}
++function SmbASnowEnum(){ return 388;}
++function SmbAIceEnum(){ return 389;}
++function SmbCldFracEnum(){ return 390;}
++function SmbT0wetEnum(){ return 391;}
++function SmbT0dryEnum(){ return 392;}
++function SmbKEnum(){ return 393;}
++function SmbDEnum(){ return 394;}
++function SmbReEnum(){ return 395;}
++function SmbGdnEnum(){ return 396;}
++function SmbGspEnum(){ return 397;}
++function SmbECEnum(){ return 398;}
++function SmbCondensationEnum(){ return 399;}
++function SmbWEnum(){ return 400;}
++function SmbAEnum(){ return 401;}
++function SmbTEnum(){ return 402;}
++function SmbIsgraingrowthEnum(){ return 403;}
++function SmbIsalbedoEnum(){ return 404;}
++function SmbIsshortwaveEnum(){ return 405;}
++function SmbIsthermalEnum(){ return 406;}
++function SmbIsaccumulationEnum(){ return 407;}
++function SmbIsmeltEnum(){ return 408;}
++function SmbIsdensificationEnum(){ return 409;}
++function SmbIsturbulentfluxEnum(){ return 410;}
++function SMBpddEnum(){ return 411;}
++function SmbDelta18oEnum(){ return 412;}
++function SmbDelta18oSurfaceEnum(){ return 413;}
++function SmbIsdelta18oEnum(){ return 414;}
++function SmbIsmungsmEnum(){ return 415;}
++function SmbIsd18opdEnum(){ return 416;}
++function SmbPrecipitationsPresentdayEnum(){ return 417;}
++function SmbPrecipitationsLgmEnum(){ return 418;}
++function SmbTemperaturesPresentdayEnum(){ return 419;}
++function SmbTemperaturesLgmEnum(){ return 420;}
++function SmbPrecipitationEnum(){ return 421;}
++function SmbDesfacEnum(){ return 422;}
++function SmbS0pEnum(){ return 423;}
++function SmbS0tEnum(){ return 424;}
++function SmbRlapsEnum(){ return 425;}
++function SmbRlapslgmEnum(){ return 426;}
++function SmbPfacEnum(){ return 427;}
++function SmbTdiffEnum(){ return 428;}
++function SmbSealevEnum(){ return 429;}
++function SMBd18opddEnum(){ return 430;}
++function SmbDpermilEnum(){ return 431;}
++function SMBgradientsEnum(){ return 432;}
++function SmbMonthlytemperaturesEnum(){ return 433;}
++function SmbHrefEnum(){ return 434;}
++function SmbSmbrefEnum(){ return 435;}
++function SmbBPosEnum(){ return 436;}
++function SmbBNegEnum(){ return 437;}
++function SMBhenningEnum(){ return 438;}
++function SMBcomponentsEnum(){ return 439;}
++function SmbAccumulationEnum(){ return 440;}
++function SmbEvaporationEnum(){ return 441;}
++function SmbRunoffEnum(){ return 442;}
++function SMBmeltcomponentsEnum(){ return 443;}
++function SmbMeltEnum(){ return 444;}
++function SmbRefreezeEnum(){ return 445;}
++function SMBgcmEnum(){ return 446;}
++function SmbIspddEnum(){ return 447;}
++function SmbIssmbgradientsEnum(){ return 448;}
++function SolutionTypeEnum(){ return 449;}
++function AnalysisTypeEnum(){ return 450;}
++function ConfigurationTypeEnum(){ return 451;}
++function AdjointBalancethicknessAnalysisEnum(){ return 452;}
++function AdjointBalancethickness2AnalysisEnum(){ return 453;}
++function AdjointHorizAnalysisEnum(){ return 454;}
++function AnalysisCounterEnum(){ return 455;}
++function DefaultAnalysisEnum(){ return 456;}
++function BalancethicknessAnalysisEnum(){ return 457;}
++function BalancethicknessSolutionEnum(){ return 458;}
++function Balancethickness2AnalysisEnum(){ return 459;}
++function Balancethickness2SolutionEnum(){ return 460;}
++function BalancethicknessSoftAnalysisEnum(){ return 461;}
++function BalancethicknessSoftSolutionEnum(){ return 462;}
++function BalancevelocityAnalysisEnum(){ return 463;}
++function BalancevelocitySolutionEnum(){ return 464;}
++function L2ProjectionEPLAnalysisEnum(){ return 465;}
++function L2ProjectionBaseAnalysisEnum(){ return 466;}
++function BedSlopeSolutionEnum(){ return 467;}
++function DamageEvolutionSolutionEnum(){ return 468;}
++function DamageEvolutionAnalysisEnum(){ return 469;}
++function StressbalanceAnalysisEnum(){ return 470;}
++function StressbalanceSIAAnalysisEnum(){ return 471;}
++function StressbalanceSolutionEnum(){ return 472;}
++function StressbalanceVerticalAnalysisEnum(){ return 473;}
++function EnthalpyAnalysisEnum(){ return 474;}
++function FlaimAnalysisEnum(){ return 475;}
++function FlaimSolutionEnum(){ return 476;}
++function HydrologyShreveAnalysisEnum(){ return 477;}
++function HydrologyDCInefficientAnalysisEnum(){ return 478;}
++function HydrologyDCEfficientAnalysisEnum(){ return 479;}
++function HydrologySommersAnalysisEnum(){ return 480;}
++function HydrologySolutionEnum(){ return 481;}
++function MeltingAnalysisEnum(){ return 482;}
++function MasstransportAnalysisEnum(){ return 483;}
++function MasstransportSolutionEnum(){ return 484;}
++function FreeSurfaceBaseAnalysisEnum(){ return 485;}
++function FreeSurfaceTopAnalysisEnum(){ return 486;}
++function SurfaceNormalVelocityEnum(){ return 487;}
++function ExtrudeFromBaseAnalysisEnum(){ return 488;}
++function ExtrudeFromTopAnalysisEnum(){ return 489;}
++function DepthAverageAnalysisEnum(){ return 490;}
++function SteadystateSolutionEnum(){ return 491;}
++function SurfaceSlopeSolutionEnum(){ return 492;}
++function SmoothAnalysisEnum(){ return 493;}
++function ThermalAnalysisEnum(){ return 494;}
++function ThermalSolutionEnum(){ return 495;}
++function TransientSolutionEnum(){ return 496;}
++function UzawaPressureAnalysisEnum(){ return 497;}
++function GiaSolutionEnum(){ return 498;}
++function GiaAnalysisEnum(){ return 499;}
++function MeshdeformationSolutionEnum(){ return 500;}
++function MeshdeformationAnalysisEnum(){ return 501;}
++function LevelsetAnalysisEnum(){ return 502;}
++function LevelsetStabilizationEnum(){ return 503;}
++function ExtrapolationAnalysisEnum(){ return 504;}
++function LsfReinitializationAnalysisEnum(){ return 505;}
++function ApproximationEnum(){ return 506;}
++function NoneApproximationEnum(){ return 507;}
++function SIAApproximationEnum(){ return 508;}
++function SSAApproximationEnum(){ return 509;}
++function SSAHOApproximationEnum(){ return 510;}
++function SSAFSApproximationEnum(){ return 511;}
++function L1L2ApproximationEnum(){ return 512;}
++function HOApproximationEnum(){ return 513;}
++function HOFSApproximationEnum(){ return 514;}
++function FSApproximationEnum(){ return 515;}
++function FSvelocityEnum(){ return 516;}
++function FSpressureEnum(){ return 517;}
++function DataSetEnum(){ return 518;}
++function ConstraintsEnum(){ return 519;}
++function LoadsEnum(){ return 520;}
++function MaterialsEnum(){ return 521;}
++function NodesEnum(){ return 522;}
++function ContoursEnum(){ return 523;}
++function ParametersEnum(){ return 524;}
++function VerticesEnum(){ return 525;}
++function ResultsEnum(){ return 526;}
++function GenericParamEnum(){ return 527;}
++function AdolcParamEnum(){ return 528;}
++function BoolInputEnum(){ return 529;}
++function BoolParamEnum(){ return 530;}
++function ContourEnum(){ return 531;}
++function ControlInputEnum(){ return 532;}
++function DatasetInputEnum(){ return 533;}
++function DoubleInputEnum(){ return 534;}
++function DoubleArrayInputEnum(){ return 535;}
++function DataSetParamEnum(){ return 536;}
++function DoubleMatArrayParamEnum(){ return 537;}
++function DoubleMatParamEnum(){ return 538;}
++function DoubleParamEnum(){ return 539;}
++function DoubleVecParamEnum(){ return 540;}
++function ElementEnum(){ return 541;}
++function ElementHookEnum(){ return 542;}
++function HookEnum(){ return 543;}
++function ExternalResultEnum(){ return 544;}
++function FileParamEnum(){ return 545;}
++function InputEnum(){ return 546;}
++function IntInputEnum(){ return 547;}
++function InputToExtrudeEnum(){ return 548;}
++function InputToL2ProjectEnum(){ return 549;}
++function InputToDepthaverageEnum(){ return 550;}
++function InputToSmoothEnum(){ return 551;}
++function SmoothThicknessMultiplierEnum(){ return 552;}
++function IntParamEnum(){ return 553;}
++function IntVecParamEnum(){ return 554;}
++function TransientParamEnum(){ return 555;}
++function MaticeEnum(){ return 556;}
++function MatdamageiceEnum(){ return 557;}
++function MatparEnum(){ return 558;}
++function NodeEnum(){ return 559;}
++function NumericalfluxEnum(){ return 560;}
++function NumericalfluxTypeEnum(){ return 561;}
++function NeumannfluxEnum(){ return 562;}
++function ParamEnum(){ return 563;}
++function MoulinEnum(){ return 564;}
++function PengridEnum(){ return 565;}
++function PenpairEnum(){ return 566;}
++function ProfilerEnum(){ return 567;}
++function MatrixParamEnum(){ return 568;}
++function MassconEnum(){ return 569;}
++function MassconNameEnum(){ return 570;}
++function MassconDefinitionenumEnum(){ return 571;}
++function MassconLevelsetEnum(){ return 572;}
++function MassconaxpbyEnum(){ return 573;}
++function MassconaxpbyNameEnum(){ return 574;}
++function MassconaxpbyDefinitionenumEnum(){ return 575;}
++function MassconaxpbyNamexEnum(){ return 576;}
++function MassconaxpbyNameyEnum(){ return 577;}
++function MassconaxpbyAlphaEnum(){ return 578;}
++function MassconaxpbyBetaEnum(){ return 579;}
++function NodeSIdEnum(){ return 580;}
++function VectorParamEnum(){ return 581;}
++function RiftfrontEnum(){ return 582;}
++function RiftfrontTypeEnum(){ return 583;}
++function SegmentEnum(){ return 584;}
++function SegmentRiftfrontEnum(){ return 585;}
++function SpcDynamicEnum(){ return 586;}
++function SpcStaticEnum(){ return 587;}
++function SpcTransientEnum(){ return 588;}
++function StringArrayParamEnum(){ return 589;}
++function StringParamEnum(){ return 590;}
++function SegEnum(){ return 591;}
++function SegInputEnum(){ return 592;}
++function TriaEnum(){ return 593;}
++function TriaInputEnum(){ return 594;}
++function TetraEnum(){ return 595;}
++function TetraInputEnum(){ return 596;}
++function PentaEnum(){ return 597;}
++function PentaInputEnum(){ return 598;}
++function VertexEnum(){ return 599;}
++function VertexPIdEnum(){ return 600;}
++function VertexSIdEnum(){ return 601;}
++function AirEnum(){ return 602;}
++function IceEnum(){ return 603;}
++function MelangeEnum(){ return 604;}
++function WaterEnum(){ return 605;}
++function ClosedEnum(){ return 606;}
++function FreeEnum(){ return 607;}
++function OpenEnum(){ return 608;}
++function AdjointpEnum(){ return 609;}
++function AdjointxEnum(){ return 610;}
++function AdjointyEnum(){ return 611;}
++function AdjointzEnum(){ return 612;}
++function BalancethicknessMisfitEnum(){ return 613;}
++function BedSlopeXEnum(){ return 614;}
++function BedSlopeYEnum(){ return 615;}
++function BoundaryEnum(){ return 616;}
++function ConvergedEnum(){ return 617;}
++function FillEnum(){ return 618;}
++function FractionIncrementEnum(){ return 619;}
++function FrictionEnum(){ return 620;}
++function InternalEnum(){ return 621;}
++function MassFluxEnum(){ return 622;}
++function MeltingOffsetEnum(){ return 623;}
++function MisfitEnum(){ return 624;}
++function PressureEnum(){ return 625;}
++function PressurePicardEnum(){ return 626;}
++function AndroidFrictionCoefficientEnum(){ return 627;}
++function ResetPenaltiesEnum(){ return 628;}
++function SegmentOnIceShelfEnum(){ return 629;}
++function SurfaceAbsVelMisfitEnum(){ return 630;}
++function SurfaceAreaEnum(){ return 631;}
++function SurfaceAverageVelMisfitEnum(){ return 632;}
++function SurfaceLogVelMisfitEnum(){ return 633;}
++function SurfaceLogVxVyMisfitEnum(){ return 634;}
++function SurfaceRelVelMisfitEnum(){ return 635;}
++function SurfaceSlopeXEnum(){ return 636;}
++function SurfaceSlopeYEnum(){ return 637;}
++function TemperatureEnum(){ return 638;}
++function TemperaturePicardEnum(){ return 639;}
++function TemperaturePDDEnum(){ return 640;}
++function ThicknessAbsMisfitEnum(){ return 641;}
++function SurfaceAbsMisfitEnum(){ return 642;}
++function VelEnum(){ return 643;}
++function VelocityEnum(){ return 644;}
++function VxAverageEnum(){ return 645;}
++function VxEnum(){ return 646;}
++function VxPicardEnum(){ return 647;}
++function VyAverageEnum(){ return 648;}
++function VyEnum(){ return 649;}
++function VyPicardEnum(){ return 650;}
++function VzEnum(){ return 651;}
++function VzSSAEnum(){ return 652;}
++function VzHOEnum(){ return 653;}
++function VzPicardEnum(){ return 654;}
++function VzFSEnum(){ return 655;}
++function VxMeshEnum(){ return 656;}
++function VyMeshEnum(){ return 657;}
++function VzMeshEnum(){ return 658;}
++function EnthalpyEnum(){ return 659;}
++function EnthalpyPicardEnum(){ return 660;}
++function ThicknessAbsGradientEnum(){ return 661;}
++function ThicknessAlongGradientEnum(){ return 662;}
++function ThicknessAcrossGradientEnum(){ return 663;}
++function IntMatParamEnum(){ return 664;}
++function RheologyBbarAbsGradientEnum(){ return 665;}
++function RheologyBAbsGradientEnum(){ return 666;}
++function DragCoefficientAbsGradientEnum(){ return 667;}
++function TransientInputEnum(){ return 668;}
++function WaterfractionEnum(){ return 669;}
++function WatercolumnEnum(){ return 670;}
++function BasalFrictionEnum(){ return 671;}
++function ViscousHeatingEnum(){ return 672;}
++function HydrologyWaterVxEnum(){ return 673;}
++function HydrologyWaterVyEnum(){ return 674;}
++function DrivingStressXEnum(){ return 675;}
++function DrivingStressYEnum(){ return 676;}
++function SigmaNNEnum(){ return 677;}
++function StressTensorEnum(){ return 678;}
++function StressTensorxxEnum(){ return 679;}
++function StressTensorxyEnum(){ return 680;}
++function StressTensorxzEnum(){ return 681;}
++function StressTensoryyEnum(){ return 682;}
++function StressTensoryzEnum(){ return 683;}
++function StressTensorzzEnum(){ return 684;}
++function StressMaxPrincipalEnum(){ return 685;}
++function DeviatoricStressEnum(){ return 686;}
++function DeviatoricStressxxEnum(){ return 687;}
++function DeviatoricStressxyEnum(){ return 688;}
++function DeviatoricStressxzEnum(){ return 689;}
++function DeviatoricStressyyEnum(){ return 690;}
++function DeviatoricStressyzEnum(){ return 691;}
++function DeviatoricStresszzEnum(){ return 692;}
++function DeviatoricStresseffectiveEnum(){ return 693;}
++function StrainRateEnum(){ return 694;}
++function StrainRatexxEnum(){ return 695;}
++function StrainRatexyEnum(){ return 696;}
++function StrainRatexzEnum(){ return 697;}
++function StrainRateyyEnum(){ return 698;}
++function StrainRateyzEnum(){ return 699;}
++function StrainRatezzEnum(){ return 700;}
++function DivergenceEnum(){ return 701;}
++function MaxDivergenceEnum(){ return 702;}
++function GiaCrossSectionShapeEnum(){ return 703;}
++function GiadWdtEnum(){ return 704;}
++function GiaWEnum(){ return 705;}
++function P0Enum(){ return 706;}
++function P0ArrayEnum(){ return 707;}
++function P1Enum(){ return 708;}
++function P1DGEnum(){ return 709;}
++function P1bubbleEnum(){ return 710;}
++function P1bubblecondensedEnum(){ return 711;}
++function P2Enum(){ return 712;}
++function P2bubbleEnum(){ return 713;}
++function P2bubblecondensedEnum(){ return 714;}
++function P2xP1Enum(){ return 715;}
++function P1xP2Enum(){ return 716;}
++function P1xP3Enum(){ return 717;}
++function P2xP4Enum(){ return 718;}
++function P1P1Enum(){ return 719;}
++function P1P1GLSEnum(){ return 720;}
++function MINIEnum(){ return 721;}
++function MINIcondensedEnum(){ return 722;}
++function TaylorHoodEnum(){ return 723;}
++function LATaylorHoodEnum(){ return 724;}
++function XTaylorHoodEnum(){ return 725;}
++function OneLayerP4zEnum(){ return 726;}
++function CrouzeixRaviartEnum(){ return 727;}
++function LACrouzeixRaviartEnum(){ return 728;}
++function SaveResultsEnum(){ return 729;}
++function BoolExternalResultEnum(){ return 730;}
++function DoubleExternalResultEnum(){ return 731;}
++function DoubleMatExternalResultEnum(){ return 732;}
++function IntExternalResultEnum(){ return 733;}
++function JEnum(){ return 734;}
++function StringExternalResultEnum(){ return 735;}
++function StepEnum(){ return 736;}
++function TimeEnum(){ return 737;}
++function WaterColumnOldEnum(){ return 738;}
++function OutputdefinitionEnum(){ return 739;}
++function Outputdefinition1Enum(){ return 740;}
++function Outputdefinition2Enum(){ return 741;}
++function Outputdefinition3Enum(){ return 742;}
++function Outputdefinition4Enum(){ return 743;}
++function Outputdefinition5Enum(){ return 744;}
++function Outputdefinition6Enum(){ return 745;}
++function Outputdefinition7Enum(){ return 746;}
++function Outputdefinition8Enum(){ return 747;}
++function Outputdefinition9Enum(){ return 748;}
++function Outputdefinition10Enum(){ return 749;}
++function Outputdefinition11Enum(){ return 750;}
++function Outputdefinition12Enum(){ return 751;}
++function Outputdefinition13Enum(){ return 752;}
++function Outputdefinition14Enum(){ return 753;}
++function Outputdefinition15Enum(){ return 754;}
++function Outputdefinition16Enum(){ return 755;}
++function Outputdefinition17Enum(){ return 756;}
++function Outputdefinition18Enum(){ return 757;}
++function Outputdefinition19Enum(){ return 758;}
++function Outputdefinition20Enum(){ return 759;}
++function Outputdefinition21Enum(){ return 760;}
++function Outputdefinition22Enum(){ return 761;}
++function Outputdefinition23Enum(){ return 762;}
++function Outputdefinition24Enum(){ return 763;}
++function Outputdefinition25Enum(){ return 764;}
++function Outputdefinition26Enum(){ return 765;}
++function Outputdefinition27Enum(){ return 766;}
++function Outputdefinition28Enum(){ return 767;}
++function Outputdefinition29Enum(){ return 768;}
++function Outputdefinition30Enum(){ return 769;}
++function Outputdefinition31Enum(){ return 770;}
++function Outputdefinition32Enum(){ return 771;}
++function Outputdefinition33Enum(){ return 772;}
++function Outputdefinition34Enum(){ return 773;}
++function Outputdefinition35Enum(){ return 774;}
++function Outputdefinition36Enum(){ return 775;}
++function Outputdefinition37Enum(){ return 776;}
++function Outputdefinition38Enum(){ return 777;}
++function Outputdefinition39Enum(){ return 778;}
++function Outputdefinition40Enum(){ return 779;}
++function Outputdefinition41Enum(){ return 780;}
++function Outputdefinition42Enum(){ return 781;}
++function Outputdefinition43Enum(){ return 782;}
++function Outputdefinition44Enum(){ return 783;}
++function Outputdefinition45Enum(){ return 784;}
++function Outputdefinition46Enum(){ return 785;}
++function Outputdefinition47Enum(){ return 786;}
++function Outputdefinition48Enum(){ return 787;}
++function Outputdefinition49Enum(){ return 788;}
++function Outputdefinition50Enum(){ return 789;}
++function Outputdefinition51Enum(){ return 790;}
++function Outputdefinition52Enum(){ return 791;}
++function Outputdefinition53Enum(){ return 792;}
++function Outputdefinition54Enum(){ return 793;}
++function Outputdefinition55Enum(){ return 794;}
++function Outputdefinition56Enum(){ return 795;}
++function Outputdefinition57Enum(){ return 796;}
++function Outputdefinition58Enum(){ return 797;}
++function Outputdefinition59Enum(){ return 798;}
++function Outputdefinition60Enum(){ return 799;}
++function Outputdefinition61Enum(){ return 800;}
++function Outputdefinition62Enum(){ return 801;}
++function Outputdefinition63Enum(){ return 802;}
++function Outputdefinition64Enum(){ return 803;}
++function Outputdefinition65Enum(){ return 804;}
++function Outputdefinition66Enum(){ return 805;}
++function Outputdefinition67Enum(){ return 806;}
++function Outputdefinition68Enum(){ return 807;}
++function Outputdefinition69Enum(){ return 808;}
++function Outputdefinition70Enum(){ return 809;}
++function Outputdefinition71Enum(){ return 810;}
++function Outputdefinition72Enum(){ return 811;}
++function Outputdefinition73Enum(){ return 812;}
++function Outputdefinition74Enum(){ return 813;}
++function Outputdefinition75Enum(){ return 814;}
++function Outputdefinition76Enum(){ return 815;}
++function Outputdefinition77Enum(){ return 816;}
++function Outputdefinition78Enum(){ return 817;}
++function Outputdefinition79Enum(){ return 818;}
++function Outputdefinition80Enum(){ return 819;}
++function Outputdefinition81Enum(){ return 820;}
++function Outputdefinition82Enum(){ return 821;}
++function Outputdefinition83Enum(){ return 822;}
++function Outputdefinition84Enum(){ return 823;}
++function Outputdefinition85Enum(){ return 824;}
++function Outputdefinition86Enum(){ return 825;}
++function Outputdefinition87Enum(){ return 826;}
++function Outputdefinition88Enum(){ return 827;}
++function Outputdefinition89Enum(){ return 828;}
++function Outputdefinition90Enum(){ return 829;}
++function Outputdefinition91Enum(){ return 830;}
++function Outputdefinition92Enum(){ return 831;}
++function Outputdefinition93Enum(){ return 832;}
++function Outputdefinition94Enum(){ return 833;}
++function Outputdefinition95Enum(){ return 834;}
++function Outputdefinition96Enum(){ return 835;}
++function Outputdefinition97Enum(){ return 836;}
++function Outputdefinition98Enum(){ return 837;}
++function Outputdefinition99Enum(){ return 838;}
++function Outputdefinition100Enum(){ return 839;}
++function OutputdefinitionListEnum(){ return 840;}
++function MassfluxatgateEnum(){ return 841;}
++function MassfluxatgateNameEnum(){ return 842;}
++function MassfluxatgateDefinitionenumEnum(){ return 843;}
++function MassfluxatgateSegmentsEnum(){ return 844;}
++function MisfitNameEnum(){ return 845;}
++function MisfitDefinitionenumEnum(){ return 846;}
++function MisfitModelEnum(){ return 847;}
+ function MisfitObservationEnum(){ return 848;}
+-function MisfitLocalEnum(){ return 849;}
+-function MisfitTimeinterpolationEnum(){ return 850;}
+-function MisfitWeightsEnum(){ return 851;}
++function MisfitObservationEnum(){ return 849;}
++function MisfitLocalEnum(){ return 850;}
++function MisfitTimeinterpolationEnum(){ return 851;}
+ function MisfitWeightsEnum(){ return 852;}
+-function SurfaceObservationEnum(){ return 853;}
+-function WeightsSurfaceObservationEnum(){ return 854;}
+-function VxObsEnum(){ return 855;}
+-function WeightsVxObsEnum(){ return 856;}
+-function VyObsEnum(){ return 857;}
+-function WeightsVyObsEnum(){ return 858;}
+-function MinVelEnum(){ return 859;}
+-function MaxVelEnum(){ return 860;}
+-function MinVxEnum(){ return 861;}
+-function MaxVxEnum(){ return 862;}
+-function MaxAbsVxEnum(){ return 863;}
+-function MinVyEnum(){ return 864;}
+-function MaxVyEnum(){ return 865;}
+-function MaxAbsVyEnum(){ return 866;}
+-function MinVzEnum(){ return 867;}
+-function MaxVzEnum(){ return 868;}
+-function MaxAbsVzEnum(){ return 869;}
+-function FloatingAreaEnum(){ return 870;}
+-function GroundedAreaEnum(){ return 871;}
+-function IceMassEnum(){ return 872;}
+-function IceVolumeEnum(){ return 873;}
+-function IceVolumeAboveFloatationEnum(){ return 874;}
+-function TotalSmbEnum(){ return 875;}
+-function AbsoluteEnum(){ return 876;}
+-function IncrementalEnum(){ return 877;}
+-function AugmentedLagrangianREnum(){ return 878;}
+-function AugmentedLagrangianRhopEnum(){ return 879;}
+-function AugmentedLagrangianRlambdaEnum(){ return 880;}
+-function AugmentedLagrangianRholambdaEnum(){ return 881;}
+-function AugmentedLagrangianThetaEnum(){ return 882;}
+-function NoneEnum(){ return 883;}
+-function AggressiveMigrationEnum(){ return 884;}
+-function SoftMigrationEnum(){ return 885;}
+-function SubelementMigrationEnum(){ return 886;}
+-function SubelementMigration2Enum(){ return 887;}
+-function ContactEnum(){ return 888;}
+-function GroundingOnlyEnum(){ return 889;}
+-function MaskGroundediceLevelsetEnum(){ return 890;}
+-function GaussSegEnum(){ return 891;}
+-function GaussTriaEnum(){ return 892;}
+-function GaussTetraEnum(){ return 893;}
+-function GaussPentaEnum(){ return 894;}
+-function FSSolverEnum(){ return 895;}
+-function AdjointEnum(){ return 896;}
+-function ColinearEnum(){ return 897;}
+-function ControlSteadyEnum(){ return 898;}
+-function FsetEnum(){ return 899;}
+-function Gradient1Enum(){ return 900;}
+-function Gradient2Enum(){ return 901;}
+-function Gradient3Enum(){ return 902;}
+-function GradientEnum(){ return 903;}
+-function GroundinglineMigrationEnum(){ return 904;}
+-function GsetEnum(){ return 905;}
+-function IndexEnum(){ return 906;}
+-function IndexedEnum(){ return 907;}
+-function IntersectEnum(){ return 908;}
+-function NodalEnum(){ return 909;}
+-function OldGradientEnum(){ return 910;}
+-function OutputBufferPointerEnum(){ return 911;}
+-function OutputBufferSizePointerEnum(){ return 912;}
+-function OutputFilePointerEnum(){ return 913;}
+-function ToolkitsFileNameEnum(){ return 914;}
+-function RootPathEnum(){ return 915;}
+-function OutputFileNameEnum(){ return 916;}
+-function InputFileNameEnum(){ return 917;}
+-function LockFileNameEnum(){ return 918;}
+-function RestartFileNameEnum(){ return 919;}
+-function ToolkitsOptionsAnalysesEnum(){ return 920;}
+-function ToolkitsOptionsStringsEnum(){ return 921;}
+-function QmuErrNameEnum(){ return 922;}
+-function QmuInNameEnum(){ return 923;}
+-function QmuOutNameEnum(){ return 924;}
+-function RegularEnum(){ return 925;}
+-function ScaledEnum(){ return 926;}
+-function SeparateEnum(){ return 927;}
+-function SsetEnum(){ return 928;}
+-function VerboseEnum(){ return 929;}
+-function TriangleInterpEnum(){ return 930;}
+-function BilinearInterpEnum(){ return 931;}
+-function NearestInterpEnum(){ return 932;}
+-function XYEnum(){ return 933;}
+-function XYZEnum(){ return 934;}
+-function DenseEnum(){ return 935;}
+-function MpiDenseEnum(){ return 936;}
+-function MpiSparseEnum(){ return 937;}
+-function SeqEnum(){ return 938;}
+-function MpiEnum(){ return 939;}
+-function MumpsEnum(){ return 940;}
+-function GslEnum(){ return 941;}
+-function OptionEnum(){ return 942;}
+-function GenericOptionEnum(){ return 943;}
+-function OptionCellEnum(){ return 944;}
+-function OptionStructEnum(){ return 945;}
+-function CuffeyEnum(){ return 946;}
+-function PatersonEnum(){ return 947;}
+-function ArrheniusEnum(){ return 948;}
+-function LliboutryDuvalEnum(){ return 949;}
+-function TransientIslevelsetEnum(){ return 950;}
+-function SpcLevelsetEnum(){ return 951;}
+-function ExtrapolationVariableEnum(){ return 952;}
+-function IceMaskNodeActivationEnum(){ return 953;}
+-function LevelsetfunctionSlopeXEnum(){ return 954;}
+-function LevelsetfunctionSlopeYEnum(){ return 955;}
+-function LevelsetfunctionPicardEnum(){ return 956;}
+-function SealevelriseSolutionEnum(){ return 957;}
+-function SealevelriseAnalysisEnum(){ return 958;}
+-function SealevelriseSEnum(){ return 959;}
+-function SealevelriseDeltathicknessEnum(){ return 960;}
+-function SealevelriseMaxiterEnum(){ return 961;}
+-function SealevelriseReltolEnum(){ return 962;}
+-function SealevelriseAbstolEnum(){ return 963;}
+-function SealevelriseLoveHEnum(){ return 964;}
+-function SealevelriseLoveKEnum(){ return 965;}
+-function SealevelriseRigidEnum(){ return 966;}
+-function SealevelriseElasticEnum(){ return 967;}
+-function SealevelriseEustaticEnum(){ return 968;}
+-function SealevelriseLegendrePrecomputeEnum(){ return 969;}
+-function SealevelriseLegendreCoefficientsEnum(){ return 970;}
+-function MaximumNumberOfDefinitionsEnum(){ return 971;}
++function MisfitWeightsEnum(){ return 853;}
++function SurfaceObservationEnum(){ return 854;}
++function WeightsSurfaceObservationEnum(){ return 855;}
++function VxObsEnum(){ return 856;}
++function WeightsVxObsEnum(){ return 857;}
++function VyObsEnum(){ return 858;}
++function WeightsVyObsEnum(){ return 859;}
++function MinVelEnum(){ return 860;}
++function MaxVelEnum(){ return 861;}
++function MinVxEnum(){ return 862;}
++function MaxVxEnum(){ return 863;}
++function MaxAbsVxEnum(){ return 864;}
++function MinVyEnum(){ return 865;}
++function MaxVyEnum(){ return 866;}
++function MaxAbsVyEnum(){ return 867;}
++function MinVzEnum(){ return 868;}
++function MaxVzEnum(){ return 869;}
++function MaxAbsVzEnum(){ return 870;}
++function FloatingAreaEnum(){ return 871;}
++function GroundedAreaEnum(){ return 872;}
++function IceMassEnum(){ return 873;}
++function IceVolumeEnum(){ return 874;}
++function IceVolumeAboveFloatationEnum(){ return 875;}
++function TotalSmbEnum(){ return 876;}
++function AbsoluteEnum(){ return 877;}
++function IncrementalEnum(){ return 878;}
++function AugmentedLagrangianREnum(){ return 879;}
++function AugmentedLagrangianRhopEnum(){ return 880;}
++function AugmentedLagrangianRlambdaEnum(){ return 881;}
++function AugmentedLagrangianRholambdaEnum(){ return 882;}
++function AugmentedLagrangianThetaEnum(){ return 883;}
++function NoneEnum(){ return 884;}
++function AggressiveMigrationEnum(){ return 885;}
++function SoftMigrationEnum(){ return 886;}
++function SubelementMigrationEnum(){ return 887;}
++function SubelementMigration2Enum(){ return 888;}
++function ContactEnum(){ return 889;}
++function GroundingOnlyEnum(){ return 890;}
++function MaskGroundediceLevelsetEnum(){ return 891;}
++function GaussSegEnum(){ return 892;}
++function GaussTriaEnum(){ return 893;}
++function GaussTetraEnum(){ return 894;}
++function GaussPentaEnum(){ return 895;}
++function FSSolverEnum(){ return 896;}
++function AdjointEnum(){ return 897;}
++function ColinearEnum(){ return 898;}
++function ControlSteadyEnum(){ return 899;}
++function FsetEnum(){ return 900;}
++function Gradient1Enum(){ return 901;}
++function Gradient2Enum(){ return 902;}
++function Gradient3Enum(){ return 903;}
++function GradientEnum(){ return 904;}
++function GroundinglineMigrationEnum(){ return 905;}
++function GsetEnum(){ return 906;}
++function IndexEnum(){ return 907;}
++function IndexedEnum(){ return 908;}
++function IntersectEnum(){ return 909;}
++function NodalEnum(){ return 910;}
++function OldGradientEnum(){ return 911;}
++function OutputBufferPointerEnum(){ return 912;}
++function OutputBufferSizePointerEnum(){ return 913;}
++function OutputFilePointerEnum(){ return 914;}
++function ToolkitsFileNameEnum(){ return 915;}
++function RootPathEnum(){ return 916;}
++function OutputFileNameEnum(){ return 917;}
++function InputFileNameEnum(){ return 918;}
++function LockFileNameEnum(){ return 919;}
++function RestartFileNameEnum(){ return 920;}
++function ToolkitsOptionsAnalysesEnum(){ return 921;}
++function ToolkitsOptionsStringsEnum(){ return 922;}
++function QmuErrNameEnum(){ return 923;}
++function QmuInNameEnum(){ return 924;}
++function QmuOutNameEnum(){ return 925;}
++function RegularEnum(){ return 926;}
++function ScaledEnum(){ return 927;}
++function SeparateEnum(){ return 928;}
++function SsetEnum(){ return 929;}
++function VerboseEnum(){ return 930;}
++function TriangleInterpEnum(){ return 931;}
++function BilinearInterpEnum(){ return 932;}
++function NearestInterpEnum(){ return 933;}
++function XYEnum(){ return 934;}
++function XYZEnum(){ return 935;}
++function DenseEnum(){ return 936;}
++function MpiDenseEnum(){ return 937;}
++function MpiSparseEnum(){ return 938;}
++function SeqEnum(){ return 939;}
++function MpiEnum(){ return 940;}
++function MumpsEnum(){ return 941;}
++function GslEnum(){ return 942;}
++function OptionEnum(){ return 943;}
++function GenericOptionEnum(){ return 944;}
++function OptionCellEnum(){ return 945;}
++function OptionStructEnum(){ return 946;}
++function CuffeyEnum(){ return 947;}
++function PatersonEnum(){ return 948;}
++function ArrheniusEnum(){ return 949;}
++function LliboutryDuvalEnum(){ return 950;}
++function TransientIslevelsetEnum(){ return 951;}
++function SpcLevelsetEnum(){ return 952;}
++function ExtrapolationVariableEnum(){ return 953;}
++function IceMaskNodeActivationEnum(){ return 954;}
++function LevelsetfunctionSlopeXEnum(){ return 955;}
++function LevelsetfunctionSlopeYEnum(){ return 956;}
++function LevelsetfunctionPicardEnum(){ return 957;}
++function SealevelriseSolutionEnum(){ return 958;}
++function SealevelriseAnalysisEnum(){ return 959;}
++function SealevelriseSEnum(){ return 960;}
++function SealevelriseDeltathicknessEnum(){ return 961;}
++function SealevelriseMaxiterEnum(){ return 962;}
++function SealevelriseReltolEnum(){ return 963;}
++function SealevelriseAbstolEnum(){ return 964;}
++function SealevelriseLoveHEnum(){ return 965;}
++function SealevelriseLoveKEnum(){ return 966;}
++function SealevelriseRigidEnum(){ return 967;}
++function SealevelriseElasticEnum(){ return 968;}
++function SealevelriseEustaticEnum(){ return 969;}
++function SealevelriseLegendrePrecomputeEnum(){ return 970;}
++function SealevelriseLegendreCoefficientsEnum(){ return 971;}
++function MaximumNumberOfDefinitionsEnum(){ return 972;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m	(revision 19987)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseLegendreCoefficientsEnum()
++%SEALEVELRISELEGENDRECOEFFICIENTSENUM - Enum of SealevelriseLegendreCoefficients
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseLegendreCoefficientsEnum()
++
++macro=StringToEnum('SealevelriseLegendreCoefficients');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19986)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 19987)
+@@ -196,6 +196,7 @@
+ def InversionVzObsEnum(): return StringToEnum("InversionVzObs")[0]
+ def MaskIceLevelsetEnum(): return StringToEnum("MaskIceLevelset")[0]
+ def MaskOceanLevelsetEnum(): return StringToEnum("MaskOceanLevelset")[0]
++def MaskLandLevelsetEnum(): return StringToEnum("MaskLandLevelset")[0]
+ def MaterialsBetaEnum(): return StringToEnum("MaterialsBeta")[0]
+ def MaterialsHeatcapacityEnum(): return StringToEnum("MaterialsHeatcapacity")[0]
+ def MaterialsLatentheatEnum(): return StringToEnum("MaterialsLatentheat")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-19987-19988.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19987-19988.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19987-19988.diff	(revision 20498)
@@ -0,0 +1,221 @@
+Index: ../trunk-jpl/src/m/classes/matdamageice.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/matdamageice.py	(revision 19987)
++++ ../trunk-jpl/src/m/classes/matdamageice.py	(revision 19988)
+@@ -35,7 +35,11 @@
+ 		self.lithosphere_density        = 0.
+ 		self.mantle_shear_modulus       = 0.
+ 		self.mantle_density             = 0.
++		
++		#SLR
++		self.earth_density= 5512;  # average density of the Earth, (kg/m^3)
+ 
++
+ 		self.setdefaultparameters()
+ 		#}}}
+ 	def __repr__(self): # {{{
+@@ -60,7 +64,9 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"earth_density","Mantle density [kg/m^-3]"))
+ 
++
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+@@ -114,7 +120,11 @@
+ 		self.lithosphere_density        = 3.32        # (g/cm^-3)
+ 		self.mantle_shear_modulus       = 1.45*10**11 # (Pa)
+ 		self.mantle_density             = 3.34        # (g/cm^-3)
++		
++		#SLR
++		self.earth_density= 5512;  #average density of the Earth, (kg/m^3)
+ 
++
+ 		return self
+ 		#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+@@ -129,6 +139,8 @@
+ 		md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);
+ 		md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);
+ 		md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]);
++
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+@@ -153,4 +165,6 @@
+ 		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.);
+ 		WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 		WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.);
++		WriteData(fid,'object',self,'class','materials','fieldname','earth_density','format','Double');
++
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 19987)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 19988)
+@@ -52,7 +52,11 @@
+ 			this.lithosphere_density        = 3.32;       // (g/cm^-3)
+ 			this.mantle_shear_modulus       = 1.45*Math.pow(10,11); // (Pa)
+ 			this.mantle_density             = 3.34;       // (g/cm^-3)
++			
++			//SLR
++			this.earth_density= 5512;  // average density of the Earth, (kg/m^3)
+ 
++
+ 		} //}}}
+ 		this.disp = function() {// {{{
+ 			console.log(sprintf('   Materials:'));
+@@ -76,6 +80,8 @@
+ 			fielddisplay(this,'lithosphere_density','Lithosphere density [g/cm^-3]');
+ 			fielddisplay(this,'mantle_shear_modulus','Mantle shear modulus [Pa]');
+ 			fielddisplay(this,'mantle_density','Mantle density [g/cm^-3]');
++			fielddisplay(this,'earth_density','Mantle density [kg/m^-3]');
++
+ 		} // }}}
+ 		this.classname = function() {// {{{
+ 			return "matice";
+@@ -95,7 +101,11 @@
+ 				checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
+ 				checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
+ 			}
++			if ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),1)){
++				checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
++			}
+ 
++
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'enum',MaterialsEnum(),'data',MaticeEnum(),'format','Integer');
+@@ -118,6 +128,8 @@
+ 			WriteData(fid,'object',this,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3);
+ 			WriteData(fid,'object',this,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 			WriteData(fid,'object',this,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
++			WriteData(fid,'object',this,'class','materials','fieldname','earth_density','format','Double');
++
+ 		}//}}}
+ 		this.fix=function() { //{{{
+ 		}//}}}
+@@ -144,6 +156,10 @@
+ 		this.lithosphere_density        = 0.;
+ 		this.mantle_shear_modulus       = 0.;
+ 		this.mantle_density             = 0.;
++
++		//SLR
++		this.earth_density= 5512;  // average density of the Earth, (kg/m^3)
++
+ 		this.setdefaultparameters();
+ 		//}}}
+ }
+Index: ../trunk-jpl/src/m/classes/matdamageice.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/matdamageice.m	(revision 19987)
++++ ../trunk-jpl/src/m/classes/matdamageice.m	(revision 19988)
+@@ -27,6 +27,9 @@
+ 		mantle_shear_modulus       = 0.;
+ 		mantle_density             = 0.;
+ 
++		%slr
++		earth_density              = 0;
++
+ 	end
+ 	methods
+ 		function self = extrude(self,md) % {{{
+@@ -99,6 +102,9 @@
+ 			self.mantle_shear_modulus       = 1.45*10^11; % (Pa)
+ 			self.mantle_density             = 3.34;       % (g/cm^-3)
+ 
++			%SLR
++			self.earth_density= 5512;  % average density of the Earth, (kg/m^3)
++
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			md = checkfield(md,'fieldname','materials.rho_ice','>',0);
+@@ -115,7 +121,11 @@
+ 				md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
+ 				md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
+ 			end
++			if ismember(SealevelriseAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
++			end
+ 
++
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Materials:'));
+@@ -139,6 +149,7 @@
+ 			fielddisplay(self,'lithosphere_density','Lithosphere density [g/cm^-3]');
+ 			fielddisplay(self,'mantle_shear_modulus','Mantle shear modulus [Pa]');
+ 			fielddisplay(self,'mantle_density','Mantle density [g/cm^-3]');
++			fielddisplay(self,'earth_density','Mantle density [kg/m^-3]');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'enum',MaterialsEnum(),'data',MatdamageiceEnum(),'format','Integer');
+@@ -162,6 +173,8 @@
+ 			WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3);
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 			WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
++			WriteData(fid,'object',self,'class','materials','fieldname','earth_density','format','Double');
++
+ 		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/matice.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.py	(revision 19987)
++++ ../trunk-jpl/src/m/classes/matice.py	(revision 19988)
+@@ -34,8 +34,13 @@
+ 		self.lithosphere_shear_modulus  = 0.
+ 		self.lithosphere_density        = 0.
+ 		self.mantle_shear_modulus       = 0.
+-		self.mantle_density             = 0.
++		self.mantle_density             = 0.  
++		
++		#SLR
++		self.earth_density= 5512;  
+ 
++
++
+ 		self.setdefaultparameters()
+ 		#}}}
+ 	def __repr__(self): # {{{
+@@ -60,7 +65,9 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]"))
+ 		string="%s\n%s"%(string,fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]"))
++		string="%s\n%s"%(string,fielddisplay(self,"earth_density","Mantle density [kg/m^-3]"))
+ 
++
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+@@ -114,7 +121,11 @@
+ 		self.lithosphere_density        = 3.32        # (g/cm^-3)
+ 		self.mantle_shear_modulus       = 1.45*10**11 # (Pa)
+ 		self.mantle_density             = 3.34        # (g/cm^-3)
++		
++		#SLR
++		self.earth_density= 5512;  # average density of the Earth, (kg/m^3)
+ 
++
+ 		return self
+ 		#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+@@ -129,6 +140,8 @@
+ 		md = checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',[1]);
+ 		md = checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',[1]);
+ 		md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
++		md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]);
++
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid):    # {{{
+@@ -154,4 +167,6 @@
+ 		WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.);
+ 		WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
+ 		WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.);
++		WriteData(fid,'object',self,'class','materials','fieldname','earth_density','format','Double');
++
+ 	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19988-19989.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19988-19989.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19988-19989.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19988)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19989)
+@@ -3644,7 +3644,7 @@
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+-						Pn=legendre(Pn1,Pn2,n,cosalpha); Pn1=Pn2; Pn2=Pn;
++						Pn=legendre(Pn1,Pn2,cosalpha,n); Pn1=Pn2; Pn2=Pn;
+ 						G_elastic += deltalove[n]*Pn;
+ 					}
+ 				}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19989-19990.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19989-19990.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19989-19990.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19989)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19990)
+@@ -3644,7 +3644,7 @@
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+-						Pn=legendre(Pn1,Pn2,cosalpha,n); Pn1=Pn2; Pn2=Pn;
++						Pn=legendre(Pn1,Pn2,reCast<int,IssmDouble>(cosalpha),n); Pn1=Pn2; Pn2=Pn;
+ 						G_elastic += deltalove[n]*Pn;
+ 					}
+ 				}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19990-19991.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19990-19991.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19990-19991.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19990)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 19991)
+@@ -3640,7 +3640,7 @@
+ 			if(computeelastic){
+ 				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 				if(legendre_precompute){
+-					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[(int)((M-1)*(cosalpha+1.0)/2.0)*nl+n];
++					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[reCast<int,IssmDouble>((M-1)*(cosalpha+1.0)/2.0)*nl+n];
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
Index: /issm/oecreview/Archive/19101-20495/ISSM-19991-19992.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19991-19992.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19991-19992.diff	(revision 20498)
@@ -0,0 +1,199 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19991)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 19992)
+@@ -20,7 +20,7 @@
+ 						return row[i]
+ 					})
+ 				});
+-				data = data[node["movieFrame"]].slice(0,-1);
++				data = data[node['movieFrame']].slice(0,-1);
+ 				console.log(data);
+ 			} //}}}
+ 			//Variable options initialization {{{
+@@ -208,7 +208,7 @@
+ 		} 
+ 	}
+ 	//}}}
+-	//Make texture canvas //{{{
++	//texture canvas //{{{
+ 	var tcontext,tcanvas,tcanvasid,tcanvashtml,tURL,tgradient;
+ 	tcanvasid = 'texturecanvas';
+ 	var tcanvashtml = document.getElementById(tcanvasid);
+@@ -234,12 +234,12 @@
+ 	tcontext.fillStyle = tgradient;
+ 	tcontext.fillRect(0,0,256,256);
+ 	tURL = tcanvashtml.toDataURL();
+-	node["texture"] = initTexture(gl,tURL);
++	node['texture'] = initTexture(gl,tURL);
+ 	//}}}
+-	//expdisp contours
++	//expdisp contours {{{
+ 	if (options.exist('expdisp')) {
+-		canvas.nodes["expdisp"] = Node(gl,options);
+-		var node = canvas.nodes["expdisp"];
++		canvas.nodes['expdisp'] = Node(gl,options);
++		var node = canvas.nodes['expdisp'];
+ 		
+ 		//declare variables:  {{{
+ 		var vertices = [];
+@@ -261,7 +261,7 @@
+ 		}
+ 		//}}}
+ 
+-		//Compute coordinates and data range:
++		//Compute coordinates and data range: //{{{
+ 		var modelxlim = [ArrayMin(x),ArrayMax(x)];
+ 		var modelylim = [ArrayMin(y),ArrayMax(y)];
+ 		var modelzlim = [ArrayMin(z),ArrayMax(z)];
+@@ -274,19 +274,21 @@
+ 		ymax = ylim[1];
+ 		zmin = zlim[0];
+ 		zmax = zlim[1];
++		//}}}
+ 
+-		//Compute scaling: 
++		//Compute scaling: //{{{
+ 		var scale = 1 / (xmax - xmin);
+-		node["shaderName"] = "colored";
+-		node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-		node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-		node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+-		node["modelMatrix"] = recalculateModelMatrix(node);
+-		node["drawMode"] = gl.LINE_LOOP;
+-		node["drawOrder"] = 0;
+-		node["useIndexBuffer"] = false;
+-		node["disableDepthTest"] = true;
+-					
++		node['shaderName'] = 'colored';
++		node['shader'] = gl['shaders'][node['shaderName']]['program'];
++		node['scale'] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++		node['translation'] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++		node['modelMatrix'] = recalculateModelMatrix(node);
++		node['drawMode'] = gl.LINE_LOOP;
++		node['drawOrder'] = 0;
++		node['useIndexBuffer'] = false;
++		node['disableDepthTest'] = true;
++		//}}}
++
+ 		//some defaults:
+ 		colors.itemSize = 4;
+ 
+@@ -308,8 +310,86 @@
+ 			colors[colors.length] = 1.0;
+ 		}
+ 
+-		/*Initalize buffers: */
+-		node["arrays"] = [vertices, colors];
+-		node["buffers"] = initBuffers(gl, node["arrays"]);
+-	}
++		//Initalize buffers:
++		node['arrays'] = [vertices, colors];
++		node['buffers'] = initBuffers(gl, node['arrays']);
++	} //}}}
++	//cloud of points {{{
++	if (options.exist('cloud')) {
++		canvas.nodes['cloud'] = Node(gl,options);
++		var node = canvas.nodes['cloud'];
++
++		//declare variables:  {{{
++		var vertices = [];
++		var indices = [];
++		var colors = [];
++		var rgbcolor = [];
++		var xmin,xmax;
++		var ymin,ymax;
++		var zmin,zmax;
++		var scale;
++		
++		//Process data and model
++		var x = options.getfieldvalue('cloud')['x'];
++		var y = options.getfieldvalue('cloud')['y'];
++		var z = Array.apply(null, Array(x.length)).map(Number.prototype.valueOf,0);
++		
++		if (options.getfieldvalue('cloud')['z']) {
++			z = options.getfieldvalue('cloud')['z'];
++		}
++		//}}}
++
++		//Compute coordinates and data range: //{{{
++		var modelxlim = [ArrayMin(x),ArrayMax(x)];
++		var modelylim = [ArrayMin(y),ArrayMax(y)];
++		var modelzlim = [ArrayMin(z),ArrayMax(z)];
++		var xlim = options.getfieldvalue('xlim',modelxlim);
++		var ylim = options.getfieldvalue('ylim',modelylim);
++		var zlim = options.getfieldvalue('zlim',modelzlim);
++		xmin = xlim[0];
++		xmax = xlim[1];
++		ymin = ylim[0];
++		ymax = ylim[1];
++		zmin = zlim[0];
++		zmax = zlim[1];
++		//}}}
++
++		//Compute scaling: //{{{
++		var scale = 1 / (xmax - xmin);
++		node['shaderName'] = 'colored';
++		node['shader'] = gl['shaders'][node['shaderName']]['program'];
++		node['scale'] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++		node['translation'] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++		node['modelMatrix'] = recalculateModelMatrix(node);
++		node['drawMode'] = gl.POINTS;
++		node['drawOrder'] = 0;
++		node['useIndexBuffer'] = false;
++		node['disableDepthTest'] = true;
++		//}}}
++
++		//some defaults:
++		colors.itemSize = 4;
++
++		//retrieve some options
++		var linewidth=options.getfieldvalue('linewidth',1);
++		var edgecolor=options.getfieldvalue('edgecolor','black'); //RGBCOLOR?
++
++		vertices.itemSize = 3;
++		for(var i = 0; i < x.length; i++){
++			vertices[vertices.length] = x[i];
++			vertices[vertices.length] = y[i];
++			vertices[vertices.length] = z[i];
++
++			//edgecolor
++			rgbcolor = [0.0, 0.0, 0.0];
++			colors[colors.length] = rgbcolor[0];
++			colors[colors.length] = rgbcolor[1];
++			colors[colors.length] = rgbcolor[2];
++			colors[colors.length] = 1.0;
++		}
++
++		//Initalize buffers:
++		node['arrays'] = [vertices, colors];
++		node['buffers'] = initBuffers(gl, node['arrays']);
++	} //}}}
+ }
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 19991)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 19992)
+@@ -198,6 +198,7 @@
+ 		'varying vec4 vColor;',
+ 		'',
+ 		'void main(void) {',
++		'	gl_PointSize = 3.0;',
+ 		'	gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);',
+ 		'	vColor = vec4(aVertexColor.xyz, uAlpha);',
+ 		'}'].join('\n');
+@@ -220,6 +221,7 @@
+ 		'varying float vZCoord;',
+ 		'',
+ 		'void main(void) {',
++		'	gl_PointSize = 3.0;',
+ 		'	gl_Position = uMVPMatrix * vec4(aVertexPosition.xyz, 1.0);',
+ 		'	vTextureCoord = aTextureCoord;',
+ 		'	vZCoord = aVertexPosition.z;',
+@@ -492,4 +494,4 @@
+ 		}
+ 	}
+ } //}}}
+-//}}}
+\ No newline at end of file
++//}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19992-19993.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19992-19993.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19992-19993.diff	(revision 20498)
@@ -0,0 +1,4281 @@
+Index: ../trunk-jpl/externalpackages/export_fig/using_hg2.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/using_hg2.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/using_hg2.m	(revision 19993)
+@@ -1,4 +1,4 @@
+-%USING_HG2 Determine if the HG2 graphics engine is used
++%USING_HG2 Determine if the HG2 graphics pipeline is used
+ %
+ %   tf = using_hg2(fig)
+ %
+@@ -6,30 +6,13 @@
+ %   fig - handle to the figure in question.
+ %
+ %OUT:
+-%   tf - boolean indicating whether the HG2 graphics engine is being used
++%   tf - boolean indicating whether the HG2 graphics pipeline is being used
+ %        (true) or not (false).
+ 
+-% 19/06/2015 - Suppress warning in R2015b; cache result for improved performance
+-
+ function tf = using_hg2(fig)
+-    persistent tf_cached
+-    if isempty(tf_cached)
+-        try
+-            if nargin < 1,  fig = figure('visible','off');  end
+-            oldWarn = warning('off','MATLAB:graphicsversion:GraphicsVersionRemoval');
+-            try
+-                % This generates a [supressed] warning in R2015b:
+-                tf = ~graphicsversion(fig, 'handlegraphics');
+-            catch
+-                tf = verLessThan('matlab','8.4');  % =R2014b
+-            end
+-            warning(oldWarn);
+-        catch
+-            tf = false;
+-        end
+-        if nargin < 1,  delete(fig);  end
+-        tf_cached = tf;
+-    else
+-        tf = tf_cached;
+-    end
++try
++    tf = ~graphicsversion(fig, 'handlegraphics');
++catch
++    tf = false;
+ end
++end
+Index: ../trunk-jpl/externalpackages/export_fig/print2eps.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/print2eps.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/print2eps.m	(revision 19993)
+@@ -1,17 +1,17 @@
+-function print2eps(name, fig, export_options, varargin)
+ %PRINT2EPS  Prints figures to eps with improved line styles
+ %
+ % Examples:
+ %   print2eps filename
+ %   print2eps(filename, fig_handle)
+-%   print2eps(filename, fig_handle, export_options)
+-%   print2eps(filename, fig_handle, export_options, print_options)
++%   print2eps(filename, fig_handle, bb_padding)
++%   print2eps(filename, fig_handle, bb_padding, options)
+ %
+ % This function saves a figure as an eps file, with two improvements over
+ % MATLAB's print command. First, it improves the line style, making dashed
+-% lines more like those on screen and giving grid lines a dotted line style.
+-% Secondly, it substitutes original font names back into the eps file,
+-% where these have been changed by MATLAB, for up to 11 different fonts.
++% lines more like those on screen and giving grid lines their own dotted
++% style. Secondly, it substitutes original font names back into the eps
++% file, where these have been changed by MATLAB, for up to 11 different
++% fonts.
+ %
+ %IN:
+ %   filename - string containing the name (optionally including full or
+@@ -19,26 +19,21 @@
+ %              ".eps" extension is added if not there already. If a path is
+ %              not specified, the figure is saved in the current directory.
+ %   fig_handle - The handle of the figure to be saved. Default: gcf().
+-%   export_options - array of optional scalar values:
+-%       bb_padding - Scalar value of amount of padding to add to border around
+-%                    the cropped image, in points (if >1) or percent (if <1).
+-%                    Can be negative as well as positive; Default: 0
+-%       crop       - Crop amount. Deafult: 0
+-%       fontswap   - Whether to swap non-default fonts in figure. Default: true
+-%   print_options - Additional parameter strings to be passed to the print command
++%   bb_padding - Scalar value of amount of padding to add to border around
++%                the figure, in points. Can be negative as well as
++%                positive. Default: 0.
++%   options - Additional parameter strings to be passed to print.
+ 
+-%{
+-% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
++% Copyright (C) Oliver Woodford 2008-2014
+ 
+ % The idea of editing the EPS file to change line styles comes from Jiro
+ % Doke's FIXPSLINESTYLE (fex id: 17928)
+ % The idea of changing dash length with line width came from comments on
+ % fex id: 5743, but the implementation is mine :)
+-%}
+-%{
+-% 14/11/11: Fix a MATLAB bug rendering black or white text incorrectly.
+-%           Thanks to Mathieu Morlighem for reporting the issue and
+-%           obtaining a fix from TMW.
++
++% 14/11/2011: Fix a MATLAB bug rendering black or white text incorrectly.
++%             Thanks to Mathieu Morlighem for reporting the issue and
++%             obtaining a fix from TMW.
+ % 08/12/11: Added ability to correct fonts. Several people have requested
+ %           this at one time or another, and also pointed me to printeps
+ %           (fex id: 7501), so thank you to them. My implementation (which
+@@ -62,346 +57,157 @@
+ %           issue.
+ % 13/08/13: Fix MATLAB feature of not exporting white lines correctly.
+ %           Thanks to Sebastian Heßlinger for reporting it.
+-% 24/02/15: Fix for Matlab R2014b bug (issue #31): LineWidths<0.75 are not
+-%           set in the EPS (default line width is used)
+-% 25/02/15: Fixed issue #32: BoundingBox problem caused uncropped EPS/PDF files
+-% 05/03/15: Fixed issue #43: Inability to perform EPS file post-processing
+-% 06/03/15: Improved image padding & cropping thanks to Oscar Hartogensis
+-% 21/03/15: Fixed edge-case of missing handles having a 'FontName' property
+-% 26/03/15: Attempt to fix issue #45: white lines in subplots do not print correctly
+-% 27/03/15: Attempt to fix issue #44: white artifact lines appearing in patch exports
+-% 30/03/15: Fixed issue #52: improved performance on HG2 (R2014b+)
+-% 09/04/15: Comment blocks consolidation and minor code cleanup (no real code change)
+-% 12/04/15: Fixed issue #56: bad cropping
+-% 14/04/15: Workaround for issue #45: lines in image subplots are exported in invalid color
+-% 07/07/15: Added option to avoid font-swapping in EPS/PDF
+-% 07/07/15: Fixed issue #83: use numeric handles in HG1
+-% 22/07/15: Fixed issue #91 (thanks to Carlos Moffat)
+-%}
+ 
+-    options = {'-loose'};
+-    if nargin > 3
+-        options = [options varargin];
+-    elseif nargin < 3
+-        export_options = 0;
+-        if nargin < 2
+-            fig = gcf();
+-        end
++function print2eps(name, fig, bb_padding, varargin)
++options = {'-depsc2'};
++if nargin > 3
++    options = [options varargin];
++elseif nargin < 3
++    bb_padding = 0;
++    if nargin < 2
++        fig = gcf();
+     end
+-
+-    % Retrieve padding, crop & font-swap values
+-    if numel(export_options) > 2  % font-swapping
+-        fontswap = export_options(3);
+-    else
+-        fontswap = true;
++end
++% Construct the filename
++if numel(name) < 5 || ~strcmpi(name(end-3:end), '.eps')
++    name = [name '.eps']; % Add the missing extension
++end
++% Set paper size
++old_pos_mode = get(fig, 'PaperPositionMode');
++old_orientation = get(fig, 'PaperOrientation');
++set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
++% Find all the used fonts in the figure
++font_handles = findall(fig, '-property', 'FontName');
++fonts = get(font_handles, 'FontName');
++if ~iscell(fonts)
++    fonts = {fonts};
++end
++% Map supported font aliases onto the correct name
++fontsl = lower(fonts);
++for a = 1:numel(fonts)
++    f = fontsl{a};
++    f(f==' ') = [];
++    switch f
++        case {'times', 'timesnewroman', 'times-roman'}
++            fontsl{a} = 'times-roman';
++        case {'arial', 'helvetica'}
++            fontsl{a} = 'helvetica';
++        case {'newcenturyschoolbook', 'newcenturyschlbk'}
++            fontsl{a} = 'newcenturyschlbk';
++        otherwise
+     end
+-    if numel(export_options) > 1  % cropping
+-        bb_crop = export_options(2);
+-    else
+-        bb_crop = 0;  % scalar value, so use default bb_crop value of 0
++end
++fontslu = unique(fontsl);
++% Determine the font swap table
++matlab_fonts = {'Helvetica', 'Times-Roman', 'Palatino', 'Bookman', 'Helvetica-Narrow', 'Symbol', ...
++                'AvantGarde', 'NewCenturySchlbk', 'Courier', 'ZapfChancery', 'ZapfDingbats'};
++matlab_fontsl = lower(matlab_fonts);
++require_swap = find(~ismember(fontslu, matlab_fontsl));
++unused_fonts = find(~ismember(matlab_fontsl, fontslu));
++font_swap = cell(3, min(numel(require_swap), numel(unused_fonts)));
++fonts_new = fonts;
++for a = 1:size(font_swap, 2)
++    font_swap{1,a} = find(strcmp(fontslu{require_swap(a)}, fontsl));
++    font_swap{2,a} = matlab_fonts{unused_fonts(a)};
++    font_swap{3,a} = fonts{font_swap{1,a}(1)};
++    fonts_new(font_swap{1,a}) = {font_swap{2,a}};
++end
++% Swap the fonts
++if ~isempty(font_swap)
++    fonts_size = get(font_handles, 'FontSize');
++    if iscell(fonts_size)
++        fonts_size = cell2mat(fonts_size);
+     end
+-    if numel(export_options) > 0  % padding
+-        bb_padding = export_options(1);
+-    else
+-        bb_padding = 0;
+-    end
+-
+-    % Construct the filename
+-    if numel(name) < 5 || ~strcmpi(name(end-3:end), '.eps')
+-        name = [name '.eps']; % Add the missing extension
+-    end
+-
+-    % Set paper size
+-    old_pos_mode = get(fig, 'PaperPositionMode');
+-    old_orientation = get(fig, 'PaperOrientation');
+-    set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
+-
+-    % Find all the used fonts in the figure
+-    font_handles = findall(fig, '-property', 'FontName');
+-    fonts = get(font_handles, 'FontName');
+-    if isempty(fonts)
+-        fonts = {};
+-    elseif ~iscell(fonts)
+-        fonts = {fonts};
+-    end
+-
+-    % Map supported font aliases onto the correct name
+-    fontsl = lower(fonts);
+-    for a = 1:numel(fonts)
+-        f = fontsl{a};
+-        f(f==' ') = [];
+-        switch f
+-            case {'times', 'timesnewroman', 'times-roman'}
+-                fontsl{a} = 'times-roman';
+-            case {'arial', 'helvetica'}
+-                fontsl{a} = 'helvetica';
+-            case {'newcenturyschoolbook', 'newcenturyschlbk'}
+-                fontsl{a} = 'newcenturyschlbk';
+-            otherwise
+-        end
+-    end
+-    fontslu = unique(fontsl);
+-
+-    % Determine the font swap table
+-    if fontswap
+-        matlab_fonts = {'Helvetica', 'Times-Roman', 'Palatino', 'Bookman', 'Helvetica-Narrow', 'Symbol', ...
+-                        'AvantGarde', 'NewCenturySchlbk', 'Courier', 'ZapfChancery', 'ZapfDingbats'};
+-        matlab_fontsl = lower(matlab_fonts);
+-        require_swap = find(~ismember(fontslu, matlab_fontsl));
+-        unused_fonts = find(~ismember(matlab_fontsl, fontslu));
+-        font_swap = cell(3, min(numel(require_swap), numel(unused_fonts)));
+-        fonts_new = fonts;
+-        for a = 1:size(font_swap, 2)
+-            font_swap{1,a} = find(strcmp(fontslu{require_swap(a)}, fontsl));
+-            font_swap{2,a} = matlab_fonts{unused_fonts(a)};
+-            font_swap{3,a} = fonts{font_swap{1,a}(1)};
+-            fonts_new(font_swap{1,a}) = font_swap(2,a);
+-        end
+-    else
+-        font_swap = [];
+-    end
+-
+-    % Swap the fonts
+-    if ~isempty(font_swap)
+-        fonts_size = get(font_handles, 'FontSize');
+-        if iscell(fonts_size)
+-            fonts_size = cell2mat(fonts_size);
+-        end
+-        M = false(size(font_handles));
+-
+-        % Loop because some changes may not stick first time, due to listeners
+-        c = 0;
+-        update = zeros(1000, 1);
+-        for b = 1:10 % Limit number of loops to avoid infinite loop case
+-            for a = 1:numel(M)
+-                M(a) = ~isequal(get(font_handles(a), 'FontName'), fonts_new{a}) || ~isequal(get(font_handles(a), 'FontSize'), fonts_size(a));
+-                if M(a)
+-                    set(font_handles(a), 'FontName', fonts_new{a}, 'FontSize', fonts_size(a));
+-                    c = c + 1;
+-                    update(c) = a;
+-                end
++    M = false(size(font_handles));
++    % Loop because some changes may not stick first time, due to listeners
++    c = 0;
++    update = zeros(1000, 1);
++    for b = 1:10 % Limit number of loops to avoid infinite loop case
++        for a = 1:numel(M)
++            M(a) = ~isequal(get(font_handles(a), 'FontName'), fonts_new{a}) || ~isequal(get(font_handles(a), 'FontSize'), fonts_size(a));
++            if M(a)
++                set(font_handles(a), 'FontName', fonts_new{a}, 'FontSize', fonts_size(a));
++                c = c + 1;
++                update(c) = a;
+             end
+-            if ~any(M)
+-                break;
+-            end
+         end
+-
+-        % Compute the order to revert fonts later, without the need of a loop
+-        [update, M] = unique(update(1:c));
+-        [M, M] = sort(M);
+-        update = reshape(update(M), 1, []);
+-    end
+-
+-    % MATLAB bug fix - black and white text can come out inverted sometimes
+-    % Find the white and black text
+-    black_text_handles = findall(fig, 'Type', 'text', 'Color', [0 0 0]);
+-    white_text_handles = findall(fig, 'Type', 'text', 'Color', [1 1 1]);
+-    % Set the font colors slightly off their correct values
+-    set(black_text_handles, 'Color', [0 0 0] + eps);
+-    set(white_text_handles, 'Color', [1 1 1] - eps);
+-
+-    % MATLAB bug fix - white lines can come out funny sometimes
+-    % Find the white lines
+-    white_line_handles = findall(fig, 'Type', 'line', 'Color', [1 1 1]);
+-    % Set the line color slightly off white
+-    set(white_line_handles, 'Color', [1 1 1] - 0.00001);
+-
+-    % Workaround for issue #45: lines in image subplots are exported in invalid color
+-    % In this case the -depsc driver solves the problem, but then all the other workarounds
+-    % below (for all the other issues) will fail, so it's better to let the user decide by
+-    % just issuing a warning and accepting the '-depsc' input parameter
+-    epsLevel2 = ~any(strcmpi(options,'-depsc'));
+-    if epsLevel2
+-        % Use -depsc2 (EPS color level-2) if -depsc (EPS color level-3) was not specifically requested
+-        options{end+1} = '-depsc2';
+-        % Issue a warning if multiple images & lines were found in the figure, and HG1 with painters renderer is used
+-        isPainters = any(strcmpi(options,'-painters'));
+-        if isPainters && ~using_hg2 && numel(findall(fig,'Type','image'))>1 && ~isempty(findall(fig,'Type','line'))
+-            warning('YMA:export_fig:issue45', ...
+-                    ['Multiple images & lines detected. In such cases, the lines might \n' ...
+-                     'appear with an invalid color due to an internal MATLAB bug (fixed in R2014b). \n' ...
+-                     'Possible workaround: add a ''-depsc'' or ''-opengl'' parameter to the export_fig command.']);
++        if ~any(M)
++            break;
+         end
+     end
+-
+-    % Fix issue #83: use numeric handles in HG1
+-    if ~using_hg2(fig),  fig = double(fig);  end
+-
+-    % Print to eps file
+-    print(fig, options{:}, name);
+-
+-    % Do post-processing on the eps file
+-    try
+-        % Read the EPS file into memory
+-        fstrm = read_write_entire_textfile(name);
+-    catch
+-        fstrm = '';
++    % Compute the order to revert fonts later, without the need of a loop
++    [update, M] = unique(update(1:c));
++    [M, M] = sort(M);
++    update = reshape(update(M), 1, []);
++end
++% MATLAB bug fix - black and white text can come out inverted sometimes
++% Find the white and black text
++white_text_handles = findobj(fig, 'Type', 'text');
++M = get(white_text_handles, 'Color');
++if iscell(M)
++    M = cell2mat(M);
++end
++M = sum(M, 2);
++black_text_handles = white_text_handles(M == 0);
++white_text_handles = white_text_handles(M == 3);
++% Set the font colors slightly off their correct values
++set(black_text_handles, 'Color', [0 0 0] + eps);
++set(white_text_handles, 'Color', [1 1 1] - eps);
++% MATLAB bug fix - white lines can come out funny sometimes
++% Find the white lines
++white_line_handles = findobj(fig, 'Type', 'line');
++M = get(white_line_handles, 'Color');
++if iscell(M)
++    M = cell2mat(M);
++end
++white_line_handles = white_line_handles(sum(M, 2) == 3);
++% Set the line color slightly off white
++set(white_line_handles, 'Color', [1 1 1] - 0.00001);
++% Print to eps file
++print(fig, options{:}, name);
++% Reset the font and line colors
++set(black_text_handles, 'Color', [0 0 0]);
++set(white_text_handles, 'Color', [1 1 1]);
++set(white_line_handles, 'Color', [1 1 1]);
++% Reset paper size
++set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
++% Reset the font names in the figure
++if ~isempty(font_swap)
++    for a = update
++        set(font_handles(a), 'FontName', fonts{a}, 'FontSize', fonts_size(a));
+     end
+-
+-    % Fix for Matlab R2014b bug (issue #31): LineWidths<0.75 are not set in the EPS (default line width is used)
+-    try
+-        if ~isempty(fstrm) && using_hg2(fig)
+-            % Convert miter joins to line joins
+-            %fstrm = regexprep(fstrm, '\n10.0 ML\n', '\n1 LJ\n');
+-            % This is faster (the original regexprep could take many seconds when the axes contains many lines):
+-            fstrm = strrep(fstrm, sprintf('\n10.0 ML\n'), sprintf('\n1 LJ\n'));
+-
+-            % In HG2, grid lines and axes Ruler Axles have a default LineWidth of 0.5 => replace en-bulk (assume that 1.0 LineWidth = 1.333 LW)
+-            %   hAxes=gca; hAxes.YGridHandle.LineWidth, hAxes.YRuler.Axle.LineWidth
+-            %fstrm = regexprep(fstrm, '(GC\n2 setlinecap\n1 LJ)\nN', '$1\n0.667 LW\nN');
+-            % This is faster:
+-            fstrm = strrep(fstrm, sprintf('GC\n2 setlinecap\n1 LJ\nN'), sprintf('GC\n2 setlinecap\n1 LJ\n0.667 LW\nN'));
+-
+-            % This is more accurate but *MUCH* slower (issue #52)
+-            %{
+-            % Modify all thin lines in the figure to have 10x LineWidths
+-            hLines = findall(fig,'Type','line');
+-            hThinLines = [];
+-            for lineIdx = 1 : numel(hLines)
+-                thisLine = hLines(lineIdx);
+-                if thisLine.LineWidth < 0.75 && strcmpi(thisLine.Visible,'on')
+-                    hThinLines(end+1) = thisLine; %#ok<AGROW>
+-                    thisLine.LineWidth = thisLine.LineWidth * 10;
+-                end
+-            end
+-
+-            % If any thin lines were found
+-            if ~isempty(hThinLines)
+-                % Prepare an EPS with large-enough line widths
+-                print(fig, options{:}, name);
+-                % Restore the original LineWidths in the figure
+-                for lineIdx = 1 : numel(hThinLines)
+-                    thisLine = handle(hThinLines(lineIdx));
+-                    thisLine.LineWidth = thisLine.LineWidth / 10;
+-                end
+-
+-                % Compare the original and the new EPS files and correct the original stream's LineWidths
+-                fstrm_new = read_write_entire_textfile(name);
+-                idx = 500;  % skip heading with its possibly-different timestamp
+-                markerStr = sprintf('10.0 ML\nN');
+-                markerLen = length(markerStr);
+-                while ~isempty(idx) && idx < length(fstrm)
+-                    lastIdx = min(length(fstrm), length(fstrm_new));
+-                    delta = fstrm(idx+1:lastIdx) - fstrm_new(idx+1:lastIdx);
+-                    idx = idx + find(delta,1);
+-                    if ~isempty(idx) && ...
+-                            isequal(fstrm(idx-markerLen+1:idx), markerStr) && ...
+-                            ~isempty(regexp(fstrm_new(idx-markerLen+1:idx+12),'10.0 ML\n[\d\.]+ LW\nN')) %#ok<RGXP1>
+-                        value = str2double(regexprep(fstrm_new(idx:idx+12),' .*',''));
+-                        if isnan(value), break; end  % something's wrong... - bail out
+-                        newStr = sprintf('%0.3f LW\n',value/10);
+-                        fstrm = [fstrm(1:idx-1) newStr fstrm(idx:end)];
+-                        idx = idx + 12;
+-                    else
+-                        break;
+-                    end
+-                end
+-            end
+-            %}
+-
+-            % This is much faster although less accurate: fix all non-gray lines to have a LineWidth of 0.75 (=1 LW)
+-            % Note: This will give incorrect LineWidth of 075 for lines having LineWidth<0.75, as well as for non-gray grid-lines (if present)
+-            %       However, in practice these edge-cases are very rare indeed, and the difference in LineWidth should not be noticeable
+-            %fstrm = regexprep(fstrm, '([CR]C\n2 setlinecap\n1 LJ)\nN', '$1\n1 LW\nN');
+-            % This is faster (the original regexprep could take many seconds when the axes contains many lines):
+-            fstrm = strrep(fstrm, sprintf('\n2 setlinecap\n1 LJ\nN'), sprintf('\n2 setlinecap\n1 LJ\n1 LW\nN'));
+-        end
+-    catch err
+-        fprintf(2, 'Error fixing LineWidths in EPS file: %s\n at %s:%d\n', err.message, err.stack(1).file, err.stack(1).line);
++end
++% Do post-processing on the eps file
++try
++    fstrm = read_write_entire_textfile(name);
++catch
++    warning('Loading EPS file failed, so unable to perform post-processing. This is usually because the figure contains a large number of patch objects. Consider exporting to a bitmap format in this case.');
++    return
++end
++% Replace the font names
++if ~isempty(font_swap)
++    for a = 1:size(font_swap, 2)
++        %fstrm = regexprep(fstrm, [font_swap{1,a} '-?[a-zA-Z]*\>'], font_swap{3,a}(~isspace(font_swap{3,a})));
++        fstrm = regexprep(fstrm, font_swap{2,a}, font_swap{3,a}(~isspace(font_swap{3,a})));
+     end
+-
+-    % Reset the font and line colors
+-    set(black_text_handles, 'Color', [0 0 0]);
+-    set(white_text_handles, 'Color', [1 1 1]);
+-    set(white_line_handles, 'Color', [1 1 1]);
+-
+-    % Reset paper size
+-    set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
+-
+-    % Reset the font names in the figure
+-    if ~isempty(font_swap)
+-        for a = update
+-            set(font_handles(a), 'FontName', fonts{a}, 'FontSize', fonts_size(a));
+-        end
++end
++if using_hg2(fig)
++    % Convert miter joins to line joins
++    fstrm = regexprep(fstrm, '10.0 ML\n', '1 LJ\n');
++    % Move the bounding box to the top of the file
++    [s, e] = regexp(fstrm, '%%BoundingBox: [\w\s()]*%%');
++    if numel(s) == 2
++        fstrm = fstrm([1:s(1)-1 s(2):e(2)-2 e(1)-1:s(2)-1 e(2)-1:end]);
+     end
+-
+-    % Bail out if EPS post-processing is not possible
+-    if isempty(fstrm)
+-        warning('Loading EPS file failed, so unable to perform post-processing. This is usually because the figure contains a large number of patch objects. Consider exporting to a bitmap format in this case.');
+-        return
+-    end
+-
+-    % Replace the font names
+-    if ~isempty(font_swap)
+-        for a = 1:size(font_swap, 2)
+-            %fstrm = regexprep(fstrm, [font_swap{1,a} '-?[a-zA-Z]*\>'], font_swap{3,a}(~isspace(font_swap{3,a})));
+-            fstrm = regexprep(fstrm, font_swap{2,a}, font_swap{3,a}(~isspace(font_swap{3,a})));
+-        end
+-    end
+-
+-    % Move the bounding box to the top of the file (HG2 only), or fix the line styles (HG1 only)
+-    if using_hg2(fig)
+-        % Move the bounding box to the top of the file (HG2 only)
+-        [s, e] = regexp(fstrm, '%%BoundingBox: [^%]*%%');
+-        if numel(s) == 2
+-            fstrm = fstrm([1:s(1)-1 s(2):e(2)-2 e(1)-1:s(2)-1 e(2)-1:end]);
+-        end
+-    else
+-        % Fix the line styles (HG1 only)
+-        fstrm = fix_lines(fstrm);
+-    end
+-
+-    % Apply the bounding box padding & cropping, replacing Matlab's print()'s bounding box
+-    if bb_crop
+-        % Calculate a new bounding box based on a bitmap print using crop_border.m
+-        % 1. Determine the Matlab BoundingBox and PageBoundingBox
+-        [s,e] = regexp(fstrm, '%%BoundingBox: [^%]*%%'); % location BB in eps file
+-        if numel(s)==2, s=s(2); e=e(2); end
+-        aa = fstrm(s+15:e-3); % dimensions bb - STEP1
+-        bb_matlab = cell2mat(textscan(aa,'%f32%f32%f32%f32'));  % dimensions bb - STEP2
+-
+-        [s,e] = regexp(fstrm, '%%PageBoundingBox: [^%]*%%'); % location bb in eps file
+-        if numel(s)==2, s=s(2); e=e(2); end
+-        aa = fstrm(s+19:e-3); % dimensions bb - STEP1
+-        pagebb_matlab = cell2mat(textscan(aa,'%f32%f32%f32%f32'));  % dimensions bb - STEP2
+-
+-        % 2. Create a bitmap image and use crop_borders to create the relative
+-        %    bb with respect to the PageBoundingBox
+-        [A, bcol] = print2array(fig, 1, '-opengl');
+-        [aa, aa, aa, bb_rel] = crop_borders(A, bcol, bb_padding);
+-
+-        % 3. Calculate the new Bounding Box
+-        pagew = pagebb_matlab(3)-pagebb_matlab(1);
+-        pageh = pagebb_matlab(4)-pagebb_matlab(2);
+-        %bb_new = [pagebb_matlab(1)+pagew*bb_rel(1) pagebb_matlab(2)+pageh*bb_rel(2) ...
+-        %          pagebb_matlab(1)+pagew*bb_rel(3) pagebb_matlab(2)+pageh*bb_rel(4)];
+-        bb_new = pagebb_matlab([1,2,1,2]) + [pagew,pageh,pagew,pageh].*bb_rel;  % clearer
+-        bb_offset = (bb_new-bb_matlab) + [-1,-1,1,1];  % 1px margin so that cropping is not TOO tight
+-
+-        % Apply the bounding box padding
+-        if bb_padding
+-            if abs(bb_padding)<1
+-                bb_padding = round((mean([bb_new(3)-bb_new(1) bb_new(4)-bb_new(2)])*bb_padding)/0.5)*0.5; % ADJUST BB_PADDING
+-            end
+-            add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + [-bb_padding -bb_padding bb_padding bb_padding] + bb_offset);
+-        else
+-            add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + bb_offset); % fix small but noticeable bounding box shift
+-        end
+-        fstrm = regexprep(fstrm, '%%BoundingBox:[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)', '%%BoundingBox:${add_padding($1, $2, $3, $4)}');
+-    end
+-
+-    % Fix issue #44: white artifact lines appearing in patch exports
+-    % Note: the problem is due to the fact that Matlab's print() function exports patches
+-    %       as a combination of filled triangles, and a white line appears where the triangles touch
+-    % In the workaround below, we will modify such dual-triangles into a filled rectangle.
+-    % We are careful to only modify regexps that exactly match specific patterns - it's better to not
+-    % correct some white-line artifacts than to change the geometry of a patch, or to corrupt the EPS.
+-    %   e.g.: '0 -450 937 0 0 450 3 MP PP 937 0 0 -450 0 450 3 MP PP' => '0 -450 937 0 0 450 0 0 4 MP'
+-    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\2 \1 \3 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
+-    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\2 \3 \1 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
+-    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\3 \1 \2 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
+-    fstrm = regexprep(fstrm, '\n([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) ([-\d.]+ [-\d.]+) 3 MP\nPP\n\3 \2 \1 3 MP\nPP\n','\n$1 $2 $3 0 0 4 MP\nPP\n');
+-
+-    % Write out the fixed eps file
+-    read_write_entire_textfile(name, fstrm);
++else
++    % Fix the line styles
++    fstrm = fix_lines(fstrm);
+ end
++% Apply the bounding box padding
++if bb_padding
++    add_padding = @(n1, n2, n3, n4) sprintf(' %d', str2double({n1, n2, n3, n4}) + [-bb_padding -bb_padding bb_padding bb_padding]);
++    fstrm = regexprep(fstrm, '%%BoundingBox:[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)[ ]+([-]?\d+)', '%%BoundingBox:${add_padding($1, $2, $3, $4)}');
++end
++% Write out the fixed eps file
++read_write_entire_textfile(name, fstrm);
++end
+Index: ../trunk-jpl/externalpackages/export_fig/LICENSE
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/LICENSE	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/LICENSE	(revision 19993)
+@@ -1,4 +1,4 @@
+-Copyright (c) 2014, Oliver J. Woodford, Yair M. Altman
++Copyright (c) 2014, Oliver J. Woodford
+ All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+Index: ../trunk-jpl/externalpackages/export_fig/copyfig.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/copyfig.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/copyfig.m	(revision 19993)
+@@ -1,4 +1,3 @@
+-function fh = copyfig(fh)
+ %COPYFIG Create a copy of a figure, without changing the figure
+ %
+ % Examples:
+@@ -15,37 +14,20 @@
+ 
+ % Copyright (C) Oliver Woodford 2012
+ 
+-% 26/02/15: If temp dir is not writable, use the dest folder for temp
+-%           destination files (Javier Paredes)
+-% 15/04/15: Suppress warnings during copyobj (Dun Kirk comment on FEX page 2013-10-02)
+-
+-    % Set the default
+-    if nargin == 0
+-        fh = gcf;
+-    end
+-    % Is there a legend?
+-    if isempty(findall(fh, 'Type', 'axes', 'Tag', 'legend'))
+-        % Safe to copy using copyobj
+-        oldWarn = warning('off'); %#ok<WNOFF>  %Suppress warnings during copyobj (Dun Kirk comment on FEX page 2013-10-02)
+-        fh = copyobj(fh, 0);
+-        warning(oldWarn);
+-    else
+-        % copyobj will change the figure, so save and then load it instead
+-        tmp_nam = [tempname '.fig'];
+-        try
+-            % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
+-            fid = fopen(tmp_nam,'w');
+-            fwrite(fid,1);
+-            fclose(fid);
+-            delete(tmp_nam);  % cleanup
+-        catch
+-            % Temp dir is not writable, so use the current folder
+-            [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
+-            fpath = pwd;
+-            tmp_nam = fullfile(fpath,[fname fext]);
+-        end
+-        hgsave(fh, tmp_nam);
+-        fh = hgload(tmp_nam);
+-        delete(tmp_nam);
+-    end
++function fh = copyfig(fh)
++% Set the default
++if nargin == 0
++    fh = gcf;
+ end
++% Is there a legend?
++if isempty(findall(fh, 'Type', 'axes', 'Tag', 'legend'))
++    % Safe to copy using copyobj
++    fh = copyobj(fh, 0);
++else
++    % copyobj will change the figure, so save and then load it instead
++    tmp_nam = [tempname '.fig'];
++    hgsave(fh, tmp_nam);
++    fh = hgload(tmp_nam);
++    delete(tmp_nam);
++end
++end
+Index: ../trunk-jpl/externalpackages/export_fig/README.md
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/README.md	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/README.md	(revision 19993)
+@@ -24,7 +24,7 @@
+ |:-------:|:---------:|:----------:|
+ |![](https://farm6.staticflickr.com/5616/15589249291_16e485c29a_o_d.png)|![](https://farm4.staticflickr.com/3944/15406302850_4d2e1c7afa_o_d.png)|![](https://farm6.staticflickr.com/5607/15568225476_8ce9bd5f6b_o_d.png)|
+ 
+-Note that the size and background colour of test2.png (the output of export_fig) are the same as those of the on screen figure, in contrast to test.png. Of course, if you want the figure background to be white (or any other colour) in the exported file then you can set this prior to exporting using:
++Note that the size and background colour of test2.png (the output of export_fig) are the same as those of the on screen figure, in contrast to test.png. Of course, if you want want the figure background to be white (or any other colour) in the exported file then you can set this prior to exporting using:
+ ```Matlab
+ set(gcf, 'Color', 'w');
+ ```
+@@ -170,11 +170,11 @@
+ 
+ **Specifying the figure/axes** - if you have mutiple figures open you can specify which figure to export using its handle:  
+ ```Matlab
+-export_fig(figure_handle, filename);
++export_fig(figure_handle, 'filename.fmt');
+ ```
+ Equally, if your figure contains several subplots then you can export just one of them by giving export_fig the handle to the relevant axes:
+ ```Matlab
+-export_fig(axes_handle, filename);
++export_fig(axes_handle, 'filename.fmt');
+ ```
+ 
+ **Multiple formats** - save time by exporting to multiple formats simultaneously. E.g.: 
+@@ -194,14 +194,9 @@
+ 
+ **Appending to a file** - you can use the `-append` option to append the figure to the end of an image/document, if it already exists. This is supported for PDF and TIFF files only. Note that if you wish to append a lot of figures consecutively to a PDF, it can be more efficient to save all the figures to PDF separately then append them all in one go at the end (e.g. using [append_pdfs](http://www.mathworks.com/matlabcentral/fileexchange/31215-appendpdfs)).  
+   
+-**Output to clipboard** - you can use the `-clipboard` option to copy the specified figure or axes to the system clipboard, for easy paste into other documents (e.g., Word or PowerPoint). Note that the image is copied in bitmap (not vector) format.  
+-  
+ **Font size** - if you want to place an exported figure in a document with the font a particular size then you need to set the font to that size in the figure, and not resize the output of export_fig in the document. To avoid resizing, simply make sure that the on screen figure is the size you want the output to be in the document before exporting.  
+   
+-**Renderers** - MATLAB has three renderers for displaying and exporting figures: painters, OpenGL and ZBuffer. The different renderers have different [features](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410), so if you aren't happy with the result from one renderer try another. By default, vector formats (i.e. PDF and EPS outputs) use the painters renderer, while other formats use the OpenGL renderer. Non-default renderers can be selected by using one of these three export_fig input options: `-painters`, `-opengl`, `-zbuffer`:  
+-```Matlab
+-export_fig test.png -painters
+-```
++**Renderers** - MATLAB has three renderers for displaying and exporting figures: painters, OpenGL and ZBuffer. The different renderers have different [features](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410), so if you aren't happy with the result from one renderer try another. By default, vector formats (i.e. PDF and EPS outputs) use the painters renderer, while other formats use the OpenGL renderer. Non-default renderers can be selected by using one of these three export_fig input options: `-painters`, `-opengl`, `-zbuffer`.  
+   
+ **Artifacts** - sometimes the output that you get from export_fig is not what you expected. If an output file contains artifacts that aren't in the on screen figure then make sure that the renderer used for rendering the figure on screen is the same as that used for exporting. To set the renderer used to display the figure, use:  
+ ```Matlab
+@@ -219,33 +214,32 @@
+ to this location using the dialogue box.
+ 
+ **Undefined function errors** - If you download and run export_fig and get an error similar to this:  
+-```
++```Matlab
+ ??? Undefined function or method 'print2array' for input arguments of type 'double'.
+ ```
+ then you are missing one or more of the files that come in the export_fig package. Make sure that you click the "Get from GitHub" button at the top-right of the download [page](http://www.mathworks.co.uk/matlabcentral/fileexchange/23629-exportfig), then extract all the files in the zip file to the same directory. You should then have all the necessary files.
+   
+ ### Known issues
+-There are lots of problems with MATLAB's exporting functions, especially `print`. Export_fig is simply a glorified wrapper for MATLAB's `print` function, and doesn't solve all of its bugs (yet?). Some of the problems I know about are:
++There are lots of problems with MATLAB's exporting functions, and unfortunately export_fig, which is simply a glorified wrapper for MATLAB's print function, doesn't solve all of them (yet?). Some of the problems I know about are:
+   
+-**Fonts** - when using the painters renderer, MATLAB can only export a small number of fonts, details of which can be found [here](http://www.mathworks.com/help/releases/R2014a/matlab/creating_plots/choosing-a-printer-driver.html#f3-96545). Export_fig attempts to correct font names in the resulting EPS file (up to a maximum of 11 different fonts in one figure), but this is not always guaranteed to work. In particular, the text positions will be affected. It also does not work for text blocks where the 'Interpreter' property is set to 'latex'.
++**Fonts** - when using the painters renderer, MATLAB can only export a small number of fonts, details of which can be found [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-103191.html#f3-96545). Export_fig attempts to correct font names in the resulting EPS file (for upto a maximum of 11 different fonts in one figure), but this is not always guaranteed to work. In particular, the text positions will be affected. It also does not work for text blocks where the 'Interpreter' property is set to 'latex'.
+ 
+-Also, when using the painters renderer, ghostscript will sometimes throw an error such as `Error: /undefined in /findfont`. This suggests that ghostscript could not find a definition file for one of your fonts. One possible fix for this is to make sure the file `EXPORT_FIG_PATH/.ignore/gs_font_path.txt` exists and contains a list of paths to the folder(s) containing the necessary font definitions (make sure that they are TrueType definitions!), separated by a semicolon.
++Also, when using the painters renderer, ghostscript will sometimes throw an error such as `Error: /undefined in /findfont`. This suggests that ghostscript could not find a definition file for one of your fonts. One possible fix for this is to make sure the file `EXPORT_FIG_PATH/.ignore/gs_font_path.txt` exists and contains a list of paths to the folder(s) containing the necessary font definitions (make sure they're TrueType definitions), separated by a semicolon.
+ 
+-**RGB color data not yet supported in Painter's mode** - you will see this as a warning if you try to export a figure which contains patch objects whose face or vertex colors are specified as an RGB colour, rather than an index into the colormap, using the painters renderer (the default renderer for vector output). This problem can arise if you use `pcolor`, for example. This is a problem with MATLAB's painters renderer, which also affects `print`; there is currently no fix available in export_fig (other than to export to bitmap). The suggested workaround is to avoid colouring patches using RGB. First, try to use colours in the figure's colourmap (instructions [here](http://www.mathworks.co.uk/support/solutions/en/data/1-6OTPQE/)) - change the colourmap, if necessary. If you are using `pcolor`, try using [uimagesc](http://www.mathworks.com/matlabcentral/fileexchange/11368) (on the file exchange) instead.  
++**RGB color data not yet supported in Painter's mode** - you will see this as a warning if you try to export a figure which contains patch objects whose face or vertex colors are specified as a an RGB colour, rather than an index into the colormap, using the painters renderer (the default renderer for vector output). This problem can arise if you use `pcolor`, for example. This is a problem with MATLAB's painters renderer, which also affects `print`; there is currently no fix available in export_fig (other than to export to bitmap). The suggested workaround is to avoid colouring patches using RGB. First, try to use colours in the figure's colourmap (instructions [here](http://www.mathworks.co.uk/support/solutions/en/data/1-6OTPQE/)) - change the colourmap, if necessary. If you are using `pcolor`, try using [uimagesc](http://www.mathworks.com/matlabcentral/fileexchange/11368) (on the file exchange) instead.  
+ 
+ **Dashed contour lines appear solid** - when using the painters renderer, MATLAB cannot generate dashed lines using the `contour` function (either on screen or in exported PDF and EPS files). Details can be found [here](http://www.mathworks.com/support/solutions/en/data/1-14PPHB/?solution=1-14PPHB).  
+   
+ **Text size** - when using the OpenGL or ZBuffer renderers, large text can be resized relative to the figure when exporting at non-screen-resolution (including using anti-alising at screen resolution). This is a feature of MATLAB's `print `function. In this case, try using the `-painters` option.  
+   
+-**Lighting and transparency** - when using the painters renderer, transparency and lighting effects are not supported. Sorry, but this is an inherent feature of MATLAB's painters renderer. To find out more about the capabilities of each rendering method, see [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410). You can still export transparent objects to vector format (SVG) using the excellent [plot2svg](http://www.mathworks.com/matlabcentral/fileexchange/7401) package, then convert this to PDF, for example using [Inkscape](http://inkscape.org/). However, it can't handle lighting.  
++**Lighting and transparency** - when using the painters renderer, transparency and lighting effects are not supported. Sorry, but this is a feature of the renderer. To find out more about the capabilities of each rendering method, see [here](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f3-84337.html#f3-102410). You can still export transparent objects to vector format (SVG) using the excellent [plot2svg](http://www.mathworks.com/matlabcentral/fileexchange/7401) package, then convert this to PDF, for example using [Inkscape](http://inkscape.org/). However, it can't handle lighting.  
+   
+-**Lines in patch objects** - when exporting patch objects to PDF using the painters renderer (default), sometimes the output can appear to have lines across the middle of rectangular patches; these lines are the colour of the background, as if there is a crack in the patch, allowing you to see through. This issue is a feature of the software used to display the PDF, rather than the PDF itself. Sometimes disabling anti-aliasing in this software can get rid of the lines ([discussion](https://github.com/altmany/export_fig/issues/44)).  
++**Lines in patch objects** - when exporting patch objects to PDF using the painters renderer (default), sometimes the output can appear to have lines across the middle of rectangular patches; these lines are the colour of the background, as if there is a crack in the patch, allowing you to see through. This issue is a feature of the software used to display the PDF, rather than the PDF itself. Sometimes disabling anti-aliasing in this software can get rid of the lines.  
+   
+ **Out of memory** - if you run into memory issues when using export_fig, some ways to get round this are:  
+  1. Reduce the level of anti-aliasing.
+- 2. Reduce the size of the figure.
+- 3. Reduce the export resolution (dpi). 
+- 4. Change the renderer to painters or ZBuffer.  
++ 2. Reduce the size of the on screen figure.
++ 3. Reduce the resolution (dpi) the figure is exported at.  
+   
+ **Errors** - the other common type of errors people get with export_fig are OpenGL errors. This isn't a fault of export_fig, but either a bug in MATLAB's `print`, or your graphics driver getting itself into a state. Always make sure your graphics driver is up-to-date. If it still doesn't work, try using the ZBuffer renderer.  
+   
+@@ -254,17 +248,12 @@
+ 
+ Secondly, if exporting to bitmap, do try all the renderers (i.e. try the options `-opengl`, `-zbuffer` and `-painters` separately), to see if one of them does produce an acceptable output, and if so, use that.
+ 
+-If this still does not help, then ensure that you are using the latest version of export_fig, which is available [here](https://github.com/altmany/export_fig/archive/master.zip).  
+- 
+-If the figure looks correct on screen, but an error exists in the exported output (which cannot be solved using a different renderer) then please feel free to raise an [issue](https://github.com/ojwoodford/export_fig/issues). Please be sure to include the .fig file, the export_fig command you use, the output you get, and a description of what you expected. I can't promise anything, but if it's easy to fix I may indeed do it. Often I will find that the error is due to a bug in MATLAB's `print` function, in which case I will suggest you submit it as a bug to TheMathWorks, and inform me of any fix they suggest. Also, if there's a feature you'd like that isn't supported please tell me what it is and I'll consider implementing it.
++If the figure looks correct on screen, but an error exists in the exported output (which cannot be solved using a different renderer) then please feel free to raise an [issue](https://github.com/ojwoodford/export_fig/issues). Please be sure to include the .fig file, the export_fig command you use, the output you get, and a description of what you expected. I can't promise anything, but if it's easy to fix I probably will do it. Often I will find that the error is due to a bug in MATLAB's print function, in which case I will suggest you submit it as a bug to TheMathWorks, and inform me of any fix they suggest. Also, if there's a feature you'd like that isn't supported please tell me what it is and I'll consider implementing it.
+ 
+ ### And finally...
+ 
+ ![](https://farm4.staticflickr.com/3956/15591911455_b9008bd77e_o_d.jpg)
+ 
+-If you've ever wondered what's going on in the logo on the export_fig download page (reproduced here), then this explanantion is for you. The logo is designed to demonstrate as many of export_fig's features as possible: 
+- 
+-Given a figure containing a translucent mesh (top right), export_fig can export to pdf (bottom centre), which allows the figure to be zoomed-in without losing quality (because it's a vector graphic), but isn't able to reproduce the translucency. Also, depending on the PDF viewer program, small gaps appear between the patches, which are seen here as thin white lines. 
+- 
+-By contrast, when exporting to png (top left), translucency is preserved (see how the graphic below shows through), and the figure is anti-aliased. However, zooming-in does not reveal more detail since png is a bitmap format. Also, lines appear less sharp than in the pdf output.
++If you've ever wondered what's going on in the icon on the export_fig download page (reproduced on the left), then this explanantion is for you. The icon is designed to demonstrate as many of export_fig's features as possible. Given a
++figure containing a translucent mesh (top right), export_fig can export to pdf (bottom centre), which allows the figure to be zoomed in without losing quality (because it's a vector graphic), but isn't able to reproduce the translucency, and also, depending on the viewer, creates small gaps between the patches, which are seen here as thin white lines. By contrast, when exporting to png (top left), translucency is preserved (see how the graphic below shows through), the figure is anti-aliased, but zooming in does not reveal more detail.
+ 
+Index: ../trunk-jpl/externalpackages/export_fig/eps2pdf.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/eps2pdf.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/eps2pdf.m	(revision 19993)
+@@ -1,4 +1,3 @@
+-function eps2pdf(source, dest, crop, append, gray, quality, gs_options)
+ %EPS2PDF  Convert an eps file to pdf format using ghostscript
+ %
+ % Examples:
+@@ -7,7 +6,6 @@
+ %   eps2pdf(source, dest, crop, append)
+ %   eps2pdf(source, dest, crop, append, gray)
+ %   eps2pdf(source, dest, crop, append, gray, quality)
+-%   eps2pdf(source, dest, crop, append, gray, quality, gs_options)
+ %
+ % This function converts an eps file to pdf format. The output can be
+ % optionally cropped and also converted to grayscale. If the output pdf
+@@ -18,25 +16,23 @@
+ % This function requires that you have ghostscript installed on your
+ % system. Ghostscript can be downloaded from: http://www.ghostscript.com
+ %
+-% Inputs:
+-%   source  - filename of the source eps file to convert. The filename is
+-%             assumed to already have the extension ".eps".
+-%   dest    - filename of the destination pdf file. The filename is assumed
+-%             to already have the extension ".pdf".
+-%   crop    - boolean indicating whether to crop the borders off the pdf.
+-%             Default: true.
+-%   append  - boolean indicating whether the eps should be appended to the
+-%             end of the pdf as a new page (if the pdf exists already).
+-%             Default: false.
+-%   gray    - boolean indicating whether the output pdf should be grayscale
+-%             or not. Default: false.
++%IN:
++%   source - filename of the source eps file to convert. The filename is
++%            assumed to already have the extension ".eps".
++%   dest - filename of the destination pdf file. The filename is assumed to
++%          already have the extension ".pdf".
++%   crop - boolean indicating whether to crop the borders off the pdf.
++%          Default: true.
++%   append - boolean indicating whether the eps should be appended to the
++%            end of the pdf as a new page (if the pdf exists already).
++%            Default: false.
++%   gray - boolean indicating whether the output pdf should be grayscale or
++%          not. Default: false.
+ %   quality - scalar indicating the level of image bitmap quality to
+ %             output. A larger value gives a higher quality. quality > 100
+ %             gives lossless output. Default: ghostscript prepress default.
+-%   gs_options - optional ghostscript options (e.g.: '-dNoOutputFonts'). If
+-%                multiple options are needed, enclose in call array: {'-a','-b'}
+ 
+-% Copyright (C) Oliver Woodford 2009-2014, Yair Altman 2015-
++% Copyright (C) Oliver Woodford 2009-2011
+ 
+ % Suggestion of appending pdf files provided by Matt C at:
+ % http://www.mathworks.com/matlabcentral/fileexchange/23629
+@@ -47,133 +43,92 @@
+ % which was fixed for lossless compression settings.
+ 
+ % 9/12/2011 Pass font path to ghostscript.
+-% 26/02/15: If temp dir is not writable, use the dest folder for temp
+-%           destination files (Javier Paredes)
+-% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
+-% 01/03/15: Upon GS error, retry without the -sFONTPATH= option (this might solve
+-%           some /findfont errors according to James Rankin, FEX Comment 23/01/15)
+-% 23/06/15: Added extra debug info in case of ghostscript error; code indentation
+ 
+-    % Intialise the options string for ghostscript
+-    options = ['-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="' dest '"'];
+-    % Set crop option
+-    if nargin < 3 || crop
+-        options = [options ' -dEPSCrop'];
++function eps2pdf(source, dest, crop, append, gray, quality)
++% Intialise the options string for ghostscript
++options = ['-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="' dest '"'];
++% Set crop option
++if nargin < 3 || crop
++    options = [options ' -dEPSCrop'];
++end
++% Set the font path
++fp = font_path();
++if ~isempty(fp)
++    options = [options ' -sFONTPATH="' fp '"'];
++end
++% Set the grayscale option
++if nargin > 4 && gray
++    options = [options ' -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray'];
++end
++% Set the bitmap quality
++if nargin > 5 && ~isempty(quality)
++    options = [options ' -dAutoFilterColorImages=false -dAutoFilterGrayImages=false'];
++    if quality > 100
++        options = [options ' -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -c ".setpdfwrite << /ColorImageDownsampleThreshold 10 /GrayImageDownsampleThreshold 10 >> setdistillerparams"'];
++    else
++        options = [options ' -dColorImageFilter=/DCTEncode -dGrayImageFilter=/DCTEncode'];
++        v = 1 + (quality < 80);
++        quality = 1 - quality / 100;
++        s = sprintf('<< /QFactor %.2f /Blend 1 /HSample [%d 1 1 %d] /VSample [%d 1 1 %d] >>', quality, v, v, v, v);
++        options = sprintf('%s -c ".setpdfwrite << /ColorImageDict %s /GrayImageDict %s >> setdistillerparams"', options, s, s);
+     end
+-    % Set the font path
+-    fp = font_path();
+-    if ~isempty(fp)
+-        options = [options ' -sFONTPATH="' fp '"'];
+-    end
+-    % Set the grayscale option
+-    if nargin > 4 && gray
+-        options = [options ' -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray'];
+-    end
+-    % Set the bitmap quality
+-    if nargin > 5 && ~isempty(quality)
+-        options = [options ' -dAutoFilterColorImages=false -dAutoFilterGrayImages=false'];
+-        if quality > 100
+-            options = [options ' -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -c ".setpdfwrite << /ColorImageDownsampleThreshold 10 /GrayImageDownsampleThreshold 10 >> setdistillerparams"'];
+-        else
+-            options = [options ' -dColorImageFilter=/DCTEncode -dGrayImageFilter=/DCTEncode'];
+-            v = 1 + (quality < 80);
+-            quality = 1 - quality / 100;
+-            s = sprintf('<< /QFactor %.2f /Blend 1 /HSample [%d 1 1 %d] /VSample [%d 1 1 %d] >>', quality, v, v, v, v);
+-            options = sprintf('%s -c ".setpdfwrite << /ColorImageDict %s /GrayImageDict %s >> setdistillerparams"', options, s, s);
+-        end
+-    end
+-    % Enable users to specify optional ghostscript options (issue #36)
+-    if nargin > 6 && ~isempty(gs_options)
+-        if iscell(gs_options)
+-            gs_options = sprintf(' %s',gs_options{:});
+-        elseif ~ischar(gs_options)
+-            error('gs_options input argument must be a string or cell-array of strings');
+-        else
+-            gs_options = [' ' gs_options];
+-        end
+-        options = [options gs_options];
+-    end
+-    % Check if the output file exists
+-    if nargin > 3 && append && exist(dest, 'file') == 2
+-        % File exists - append current figure to the end
+-        tmp_nam = tempname;
+-        try
+-            % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
+-            fid = fopen(tmp_nam,'w');
+-            fwrite(fid,1);
+-            fclose(fid);
+-            delete(tmp_nam);
+-        catch
+-            % Temp dir is not writable, so use the dest folder
+-            [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
+-            fpath = fileparts(dest);
+-            tmp_nam = fullfile(fpath,[fname fext]);
+-        end
+-        % Copy the file
+-        copyfile(dest, tmp_nam);
+-        % Add the output file names
+-        options = [options ' -f "' tmp_nam '" "' source '"'];
+-        try
+-            % Convert to pdf using ghostscript
+-            [status, message] = ghostscript(options);
+-        catch me
+-            % Delete the intermediate file
+-            delete(tmp_nam);
+-            rethrow(me);
+-        end
++end
++% Check if the output file exists
++if nargin > 3 && append && exist(dest, 'file') == 2
++    % File exists - append current figure to the end
++    tmp_nam = tempname;
++    % Copy the file
++    copyfile(dest, tmp_nam);
++    % Add the output file names
++    options = [options ' -f "' tmp_nam '" "' source '"'];
++    try
++        % Convert to pdf using ghostscript
++        [status, message] = ghostscript(options);
++    catch me
+         % Delete the intermediate file
+         delete(tmp_nam);
++        rethrow(me);
++    end
++    % Delete the intermediate file
++    delete(tmp_nam);
++else
++    % File doesn't exist or should be over-written
++    % Add the output file names
++    options = [options ' -f "' source '"'];
++    % Convert to pdf using ghostscript
++    [status, message] = ghostscript(options);
++end
++% Check for error
++if status
++    % Report error
++    if isempty(message)
++        error('Unable to generate pdf. Check destination directory is writable.');
+     else
+-        % File doesn't exist or should be over-written
+-        % Add the output file names
+-        options = [options ' -f "' source '"'];
+-        % Convert to pdf using ghostscript
+-        [status, message] = ghostscript(options);
++        error(message);
+     end
+-    % Check for error
+-    if status
+-        % Retry without the -sFONTPATH= option (this might solve some GS
+-        % /findfont errors according to James Rankin, FEX Comment 23/01/15)
+-        orig_options = options;
+-        if ~isempty(fp)
+-            options = regexprep(options, ' -sFONTPATH=[^ ]+ ',' ');
+-            status = ghostscript(options);
+-            if ~status, return; end  % hurray! (no error)
+-        end
+-        % Report error
+-        if isempty(message)
+-            error('Unable to generate pdf. Check destination directory is writable.');
+-        else
+-            fprintf(2, 'Ghostscript error: perhaps %s is open by another application\n', dest);
+-            if ~isempty(gs_options)
+-                fprintf(2, '  or maybe the%s option(s) are not accepted by your GS version\n', gs_options);
+-            end
+-            fprintf(2, 'Ghostscript options: %s\n\n', orig_options);
+-            error(message);
+-        end
+-    end
+ end
++end
+ 
+ % Function to return (and create, where necessary) the font path
+ function fp = font_path()
+-    fp = user_string('gs_font_path');
++fp = user_string('gs_font_path');
++if ~isempty(fp)
++    return
++end
++% Create the path
++% Start with the default path
++fp = getenv('GS_FONTPATH');
++% Add on the typical directories for a given OS
++if ispc
+     if ~isempty(fp)
+-        return
++        fp = [fp ';'];
+     end
+-    % Create the path
+-    % Start with the default path
+-    fp = getenv('GS_FONTPATH');
+-    % Add on the typical directories for a given OS
+-    if ispc
+-        if ~isempty(fp)
+-            fp = [fp ';'];
+-        end
+-        fp = [fp getenv('WINDIR') filesep 'Fonts'];
+-    else
+-        if ~isempty(fp)
+-            fp = [fp ':'];
+-        end
+-        fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
++    fp = [fp getenv('WINDIR') filesep 'Fonts'];
++else
++    if ~isempty(fp)
++        fp = [fp ':'];
+     end
+-    user_string('gs_font_path', fp);
++    fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
+ end
++user_string('gs_font_path', fp);
++end
+Index: ../trunk-jpl/externalpackages/export_fig/user_string.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/user_string.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/user_string.m	(revision 19993)
+@@ -1,27 +1,24 @@
+-function string = user_string(string_name, string)
+ %USER_STRING  Get/set a user specific string
+ %
+ % Examples:
+-%   string  = user_string(string_name)
+-%   isSaved = user_string(string_name, new_string)
++%   string = user_string(string_name)
++%   saved = user_string(string_name, new_string)
+ %
+ % Function to get and set a string in a system or user specific file. This
+ % enables, for example, system specific paths to binaries to be saved.
+ %
+-% The specified string will be saved in a file named <string_name>.txt,
+-% either in a subfolder named .ignore under this file's folder, or in the
+-% user's prefdir folder (in case this file's folder is non-writable).
+-%
+ % IN:
+-%   string_name - String containing the name of the string required, which
+-%                 sets the filename storing the string: <string_name>.txt
+-%   new_string  - The new string to be saved in the <string_name>.txt file
++%   string_name - String containing the name of the string required. The
++%                 string is extracted from a file called (string_name).txt,
++%                 stored in the same directory as user_string.m.
++%   new_string - The new string to be saved under the name given by
++%                string_name.
+ %
+ % OUT:
+-%   string  - The currently saved string. Default: ''
+-%   isSaved - Boolean indicating whether the save was succesful
++%   string - The currently saved string. Default: ''.
++%   saved - Boolean indicating whether the save was succesful
+ 
+-% Copyright (C) Oliver Woodford 2011-2014, Yair Altman 2015-
++% Copyright (C) Oliver Woodford 2011-2013
+ 
+ % This method of saving paths avoids changing .m files which might be in a
+ % version control system. Instead it saves the user dependent paths in
+@@ -30,76 +27,61 @@
+ % approach.
+ 
+ % 10/01/2013 - Access files in text, not binary mode, as latter can cause
+-%              errors. Thanks to Christian for pointing this out.
+-% 29/05/2015 - Save file in prefdir if current folder is non-writable (issue #74)
++% errors. Thanks to Christian for pointing this out.
+ 
+-    if ~ischar(string_name)
+-        error('string_name must be a string.');
++function string = user_string(string_name, string)
++if ~ischar(string_name)
++    error('string_name must be a string.');
++end
++% Create the full filename
++string_name = fullfile(fileparts(mfilename('fullpath')), '.ignore', [string_name '.txt']);
++if nargin > 1
++    % Set string
++    if ~ischar(string)
++        error('new_string must be a string.');
+     end
+-    % Create the full filename
+-    fname = [string_name '.txt'];
+-    dname = fullfile(fileparts(mfilename('fullpath')), '.ignore');
+-    file_name = fullfile(dname, fname);
+-    if nargin > 1
+-        % Set string
+-        if ~ischar(string)
+-            error('new_string must be a string.');
+-        end
+-        % Make sure the save directory exists
+-        %dname = fileparts(file_name);
+-        if ~exist(dname, 'dir')
+-            % Create the directory
+-            try
+-                if ~mkdir(dname)
+-                    string = false;
+-                    return
+-                end
+-            catch
++    % Make sure the save directory exists
++    dname = fileparts(string_name);
++    if ~exist(dname, 'dir')
++        % Create the directory
++        try
++            if ~mkdir(dname)                
+                 string = false;
+                 return
+             end
+-            % Make it hidden
+-            try
+-                fileattrib(dname, '+h');
+-            catch
+-            end
+-        end
+-        % Write the file
+-        fid = fopen(file_name, 'wt');
+-        if fid == -1
+-            % file cannot be created/updated - use prefdir if file does not already exist
+-            % (if file exists but is simply not writable, don't create a duplicate in prefdir)
+-            if ~exist(file_name,'file')
+-                file_name = fullfile(prefdir, fname);
+-                fid = fopen(file_name, 'wt');
+-            end
+-            if fid == -1
+-                string = false;
+-                return;
+-            end
+-        end
+-        try
+-            fprintf(fid, '%s', string);
+         catch
+-            fclose(fid);
+             string = false;
+             return
+         end
+-        fclose(fid);
+-        string = true;
+-    else
+-        % Get string
+-        fid = fopen(file_name, 'rt');
+-        if fid == -1
+-            % file cannot be read, try to read the file in prefdir
+-            file_name = fullfile(prefdir, fname);
+-            fid = fopen(file_name, 'rt');
+-            if fid == -1
+-                string = '';
+-                return
+-            end
++        % Make it hidden
++        try
++            fileattrib(dname, '+h');
++        catch
+         end
+-        string = fgetl(fid);
++    end
++    % Write the file
++    fid = fopen(string_name, 'wt');
++    if fid == -1
++        string = false;
++        return
++    end
++    try
++        fprintf(fid, '%s', string);
++    catch
+         fclose(fid);
++        string = false;
++        return
+     end
++    fclose(fid);
++    string = true;
++else
++    % Get string
++    fid = fopen(string_name, 'rt');
++    if fid == -1
++        string = '';
++        return
++    end
++    string = fgetl(fid);
++    fclose(fid);
+ end
++end
+Index: ../trunk-jpl/externalpackages/export_fig/export_fig.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/export_fig.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/export_fig.m	(revision 19993)
+@@ -1,9 +1,8 @@
+-function [imageData, alpha] = export_fig(varargin)
+-%EXPORT_FIG  Exports figures in a publication-quality format
++%EXPORT_FIG  Exports figures suitable for publication
+ %
+ % Examples:
+-%   imageData = export_fig
+-%   [imageData, alpha] = export_fig
++%   im = export_fig
++%   [im alpha] = export_fig
+ %   export_fig filename
+ %   export_fig filename -format1 -format2
+ %   export_fig ... -nocrop
+@@ -14,20 +13,15 @@
+ %   export_fig ... -a<val>
+ %   export_fig ... -q<val>
+ %   export_fig ... -p<val>
+-%   export_fig ... -d<gs_option>
+-%   export_fig ... -depsc
+ %   export_fig ... -<renderer>
+ %   export_fig ... -<colorspace>
+ %   export_fig ... -append
+ %   export_fig ... -bookmark
+-%   export_fig ... -clipboard
+-%   export_fig ... -update
+-%   export_fig ... -nofontswap
+ %   export_fig(..., handle)
+ %
+ % This function saves a figure or single axes to one or more vector and/or
+-% bitmap file formats, and/or outputs a rasterized version to the workspace,
+-% with the following properties:
++% bitmap file formats, and/or outputs a rasterized version to the
++% workspace, with the following properties:
+ %   - Figure/axes reproduced as it appears on screen
+ %   - Cropped borders (optional)
+ %   - Embedded fonts (vector formats)
+@@ -40,8 +34,8 @@
+ %   - Variable image compression, including lossless (pdf, eps, jpg)
+ %   - Optionally append to file (pdf, tiff)
+ %   - Vector formats: pdf, eps
+-%   - Bitmap formats: png, tiff, jpg, bmp, export to workspace
+-%
++%   - Bitmap formats: png, tiff, jpg, bmp, export to workspace 
++%   
+ % This function is especially suited to exporting figures for use in
+ % publications and presentations, because of the high quality and
+ % portability of media produced.
+@@ -51,20 +45,21 @@
+ % output file. For transparent background (and semi-transparent patch
+ % objects), use the -transparent option or set the figure 'Color' property
+ % to 'none'. To make axes transparent set the axes 'Color' property to
+-% 'none'. PDF, EPS and PNG are the only formats that support a transparent
+-% background, while only PNG format supports transparency of patch objects.
++% 'none'. Pdf, eps and png are the only file formats to support a
++% transparent background, whilst the png format alone supports transparency
++% of patch objects.
+ %
+ % The choice of renderer (opengl, zbuffer or painters) has a large impact
+-% on the quality of output. The default value (opengl for bitmaps, painters
+-% for vector formats) generally gives good results, but if you aren't
+-% satisfied then try another renderer.  Notes: 1) For vector formats (EPS,
+-% PDF), only painters generates vector graphics. 2) For bitmaps, only
++% on the quality of output. Whilst the default value (opengl for bitmaps,
++% painters for vector formats) generally gives good results, if you aren't
++% satisfied then try another renderer.  Notes: 1) For vector formats (eps,
++% pdf), only painters generates vector graphics. 2) For bitmaps, only
+ % opengl can render transparent patch objects correctly. 3) For bitmaps,
+ % only painters will correctly scale line dash and dot lengths when
+ % magnifying or anti-aliasing. 4) Fonts may be substitued with Courier when
+ % using painters.
+ %
+-% When exporting to vector format (PDF & EPS) and bitmap format using the
++% When exporting to vector format (pdf & eps) and bitmap format using the
+ % painters renderer, this function requires that ghostscript is installed
+ % on your system. You can download this from:
+ %   http://www.ghostscript.com
+@@ -72,7 +67,7 @@
+ % suite of functions. You can download this from:
+ %   http://www.foolabs.com/xpdf
+ %
+-% Inputs:
++%IN:
+ %   filename - string containing the name (optionally including full or
+ %              relative path) of the file the figure is to be saved as. If
+ %              a path is not specified, the figure is saved in the current
+@@ -91,7 +86,7 @@
+ %                  made transparent (png, pdf and eps output only).
+ %   -m<val> - option where val indicates the factor to magnify the
+ %             on-screen figure pixel dimensions by when generating bitmap
+-%             outputs (does not affect vector formats). Default: '-m1'.
++%             outputs. Default: '-m1'.
+ %   -r<val> - option val indicates the resolution (in pixels per inch) to
+ %             export bitmap and vector outputs at, keeping the dimensions
+ %             of the on-screen figure. Default: '-r864' (for vector output
+@@ -110,10 +105,9 @@
+ %   -a1, -a2, -a3, -a4 - option indicating the amount of anti-aliasing to
+ %                        use for bitmap outputs. '-a1' means no anti-
+ %                        aliasing; '-a4' is the maximum amount (default).
+-%   -<renderer> - option to force a particular renderer (painters, opengl or
+-%                 zbuffer). Default value: opengl for bitmap formats or
+-%                 figures with patches and/or transparent annotations;
+-%                 painters for vector formats without patches/transparencies.
++%   -<renderer> - option to force a particular renderer (painters, opengl
++%                 or zbuffer) to be used over the default: opengl for
++%                 bitmaps; painters for vector formats.
+ %   -<colorspace> - option indicating which colorspace color figures should
+ %                   be saved in: RGB (default), CMYK or gray. CMYK is only
+ %                   supported in pdf, eps and tiff output.
+@@ -124,45 +118,29 @@
+ %             default for pdf & eps. Note: lossless compression can
+ %             sometimes give a smaller file size than the default lossy
+ %             compression, depending on the type of images.
+-%   -p<val> - option to pad a border of width val to exported files, where
+-%             val is either a relative size with respect to cropped image
+-%             size (i.e. p=0.01 adds a 1% border). For EPS & PDF formats,
+-%             val can also be integer in units of 1/72" points (abs(val)>1).
+-%             val can be positive (padding) or negative (extra cropping).
+-%             If used, the -nocrop flag will be ignored, i.e. the image will
+-%             always be cropped and then padded. Default: 0 (i.e. no padding).
++%   -p<val> - option to add a border of width val to eps and pdf files,
++%             where val is in units of the intermediate eps file. Default:
++%             0 (i.e. no padding).
+ %   -append - option indicating that if the file (pdfs only) already
+ %             exists, the figure is to be appended as a new page, instead
+ %             of being overwritten (default).
+ %   -bookmark - option to indicate that a bookmark with the name of the
+ %               figure is to be created in the output file (pdf only).
+-%   -clipboard - option to save output as an image on the system clipboard.
+-%                Note: background transparency is not preserved in clipboard
+-%   -d<gs_option> - option to indicate a ghostscript setting. For example,
+-%                   -dMaxBitmap=0 or -dNoOutputFonts (Ghostscript 9.15+).
+-%   -depsc -  option to use EPS level-3 rather than the default level-2 print
+-%             device. This solves some bugs with Matlab's default -depsc2 device
+-%             such as discolored subplot lines on images (vector formats only).
+-%   -update - option to download and install the latest version of export_fig
+-%   -nofontswap - option to avoid font swapping. Font swapping is automatically
+-%             done in vector formats (only): 11 standard Matlab fonts are
+-%             replaced by the original figure fonts. This option prevents this.
+-%   handle -  The handle of the figure, axes or uipanels (can be an array of
+-%             handles, but the objects must be in the same figure) to be
+-%             saved. Default: gcf.
++%   handle - The handle of the figure, axes or uipanels (can be an array of
++%            handles, but the objects must be in the same figure) to be
++%            saved. Default: gcf.
+ %
+-% Outputs:
+-%   imageData - MxNxC uint8 image array of the exported image.
+-%   alpha     - MxN single array of alphamatte values in the range [0,1],
+-%               for the case when the background is transparent.
++%OUT:
++%   im - MxNxC uint8 image array of the figure.
++%   alpha - MxN single array of alphamatte values in range [0,1], for the
++%           case when the background is transparent.
+ %
+ %   Some helpful examples and tips can be found at:
+-%      https://github.com/altmany/export_fig
++%      https://github.com/ojwoodford/export_fig
+ %
+-%   See also PRINT, SAVEAS, ScreenCapture (on the Matlab File Exchange)
++%   See also PRINT, SAVEAS.
+ 
+-%{
+-% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
++% Copyright (C) Oliver Woodford 2008-2014
+ 
+ % The idea of using ghostscript is inspired by Peder Axensten's SAVEFIG
+ % (fex id: 10889) which is itself inspired by EPS2PDF (fex id: 5782).
+@@ -183,1033 +161,639 @@
+ % fix anyway.
+ % Thanks to Tammy Threadgill for reporting a bug where an axes is not
+ % isolated from gui objects.
+-%}
+-%{
++
+ % 23/02/12: Ensure that axes limits don't change during printing
+-% 14/03/12: Fix bug in fixing the axes limits (thanks to Tobias Lamour for reporting it).
+-% 02/05/12: Incorporate patch of Petr Nechaev (many thanks), enabling bookmarking of figures in pdf files.
+-% 09/05/12: Incorporate patch of Arcelia Arrieta (many thanks), to keep tick marks fixed.
+-% 12/12/12: Add support for isolating uipanels. Thanks to michael for suggesting it.
+-% 25/09/13: Add support for changing resolution in vector formats. Thanks to Jan Jaap Meijer for suggesting it.
+-% 07/05/14: Add support for '~' at start of path. Thanks to Sally Warner for suggesting it.
+-% 24/02/15: Fix Matlab R2014b bug (issue #34): plot markers are not displayed when ZLimMode='manual'
+-% 25/02/15: Fix issue #4 (using HG2 on R2014a and earlier)
+-% 25/02/15: Fix issue #21 (bold TeX axes labels/titles in R2014b)
+-% 26/02/15: If temp dir is not writable, use the user-specified folder for temporary EPS/PDF files (Javier Paredes)
+-% 27/02/15: Modified repository URL from github.com/ojwoodford to /altmany
+-%           Indented main function
+-%           Added top-level try-catch block to display useful workarounds
+-% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
+-% 06/03/15: Improved image padding & cropping thanks to Oscar Hartogensis
+-% 26/03/15: Fixed issue #49 (bug with transparent grayscale images); fixed out-of-memory issue
+-% 26/03/15: Fixed issue #42: non-normalized annotations on HG1
+-% 26/03/15: Fixed issue #46: Ghostscript crash if figure units <> pixels
+-% 27/03/15: Fixed issue #39: bad export of transparent annotations/patches
+-% 28/03/15: Fixed issue #50: error on some Matlab versions with the fix for issue #42
+-% 29/03/15: Fixed issue #33: bugs in Matlab's print() function with -cmyk
+-% 29/03/15: Improved processing of input args (accept space between param name & value, related to issue #51)
+-% 30/03/15: When exporting *.fig files, then saveas *.fig if figure is open, otherwise export the specified fig file
+-% 30/03/15: Fixed edge case bug introduced yesterday (commit #ae1755bd2e11dc4e99b95a7681f6e211b3fa9358)
+-% 09/04/15: Consolidated header comment sections; initialize output vars only if requested (nargout>0)
+-% 14/04/15: Workaround for issue #45: lines in image subplots are exported in invalid color
+-% 15/04/15: Fixed edge-case in parsing input parameters; fixed help section to show the -depsc option (issue #45)
+-% 21/04/15: Bug fix: Ghostscript croaks on % chars in output PDF file (reported by Sven on FEX page, 15-Jul-2014)
+-% 22/04/15: Bug fix: Pdftops croaks on relative paths (reported by Tintin Milou on FEX page, 19-Jan-2015)
+-% 04/05/15: Merged fix #63 (Kevin Mattheus Moerman): prevent tick-label changes during export
+-% 07/05/15: Partial fix for issue #65: PDF export used painters rather than opengl renderer (thanks Nguyenr)
+-% 08/05/15: Fixed issue #65: bad PDF append since commit #e9f3cdf 21/04/15 (thanks Robert Nguyen)
+-% 12/05/15: Fixed issue #67: exponent labels cropped in export, since fix #63 (04/05/15)
+-% 28/05/15: Fixed issue #69: set non-bold label font only if the string contains symbols (\beta etc.), followup to issue #21
+-% 29/05/15: Added informative error message in case user requested SVG output (issue #72)
+-% 09/06/15: Fixed issue #58: -transparent removed anti-aliasing when exporting to PNG
+-% 19/06/15: Added -update option to download and install the latest version of export_fig
+-% 07/07/15: Added -nofontswap option to avoid font-swapping in EPS/PDF
+-% 16/07/15: Fixed problem with anti-aliasing on old Matlab releases
+-% 11/09/15: Fixed issue #103: magnification must never become negative; also fixed reported error msg in parsing input params
+-%}
++% 14/03/12: Fix bug in fixing the axes limits (thanks to Tobias Lamour for
++%           reporting it).
++% 02/05/12: Incorporate patch of Petr Nechaev (many thanks), enabling
++%           bookmarking of figures in pdf files.
++% 09/05/12: Incorporate patch of Arcelia Arrieta (many thanks), to keep
++%           tick marks fixed.
++% 12/12/12: Add support for isolating uipanels. Thanks to michael for
++%           suggesting it.
++% 25/09/13: Add support for changing resolution in vector formats. Thanks
++%           to Jan Jaap Meijer for suggesting it.
++% 07/05/14: Add support for '~' at start of path. Thanks to Sally Warner
++%           for suggesting it.
+ 
+-    if nargout
+-        [imageData, alpha] = deal([]);
++function [im, alpha] = export_fig(varargin)
++% Make sure the figure is rendered correctly _now_ so that properties like
++% axes limits are up-to-date.
++drawnow;
++% Parse the input arguments
++[fig, options] = parse_args(nargout, varargin{:});
++% Isolate the subplot, if it is one
++cls = all(ismember(get(fig, 'Type'), {'axes', 'uipanel'}));
++if cls
++    % Given handles of one or more axes, so isolate them from the rest
++    fig = isolate_axes(fig);
++else
++    % Check we have a figure
++    if ~isequal(get(fig, 'Type'), 'figure');
++        error('Handle must be that of a figure, axes or uipanel');
+     end
+-    hadError = false;
+-    displaySuggestedWorkarounds = true;
+-
+-    % Ensure the figure is rendered correctly _now_ so that properties like axes limits are up-to-date
+-    drawnow;
+-    pause(0.05);  % this solves timing issues with Java Swing's EDT (http://undocumentedmatlab.com/blog/solving-a-matlab-hang-problem)
+-
+-    % Parse the input arguments
+-    fig = get(0, 'CurrentFigure');
+-    [fig, options] = parse_args(nargout, fig, varargin{:});
+-
+-    % Ensure that we have a figure handle
+-    if isequal(fig,-1)
+-        return;  % silent bail-out
+-    elseif isempty(fig)
+-        error('No figure found');
+-    end
+-
+-    % Isolate the subplot, if it is one
+-    cls = all(ismember(get(fig, 'Type'), {'axes', 'uipanel'}));
+-    if cls
+-        % Given handles of one or more axes, so isolate them from the rest
+-        fig = isolate_axes(fig);
+-    else
+-        % Check we have a figure
+-        if ~isequal(get(fig, 'Type'), 'figure');
+-            error('Handle must be that of a figure, axes or uipanel');
++    % Get the old InvertHardcopy mode
++    old_mode = get(fig, 'InvertHardcopy');
++end
++% Hack the font units where necessary (due to a font rendering bug in
++% print?). This may not work perfectly in all cases. Also it can change the
++% figure layout if reverted, so use a copy.
++magnify = options.magnify * options.aa_factor;
++if isbitmap(options) && magnify ~= 1
++    fontu = findobj(fig, 'FontUnits', 'normalized');
++    if ~isempty(fontu)
++        % Some normalized font units found
++        if ~cls
++            fig = copyfig(fig);
++            set(fig, 'Visible', 'off');
++            fontu = findobj(fig, 'FontUnits', 'normalized');
++            cls = true;
+         end
+-        % Get the old InvertHardcopy mode
+-        old_mode = get(fig, 'InvertHardcopy');
++        set(fontu, 'FontUnits', 'points');
+     end
+-
+-    % Hack the font units where necessary (due to a font rendering bug in print?).
+-    % This may not work perfectly in all cases.
+-    % Also it can change the figure layout if reverted, so use a copy.
+-    magnify = options.magnify * options.aa_factor;
+-    if isbitmap(options) && magnify ~= 1
+-        fontu = findall(fig, 'FontUnits', 'normalized');
+-        if ~isempty(fontu)
+-            % Some normalized font units found
+-            if ~cls
+-                fig = copyfig(fig);
+-                set(fig, 'Visible', 'off');
+-                fontu = findall(fig, 'FontUnits', 'normalized');
+-                cls = true;
++end
++% MATLAB "feature": axes limits and tick marks can change when printing
++Hlims = findall(fig, 'Type', 'axes');
++if ~cls
++    % Record the old axes limit and tick modes
++    Xlims = make_cell(get(Hlims, 'XLimMode'));
++    Ylims = make_cell(get(Hlims, 'YLimMode'));
++    Zlims = make_cell(get(Hlims, 'ZLimMode'));
++    Xtick = make_cell(get(Hlims, 'XTickMode'));
++    Ytick = make_cell(get(Hlims, 'YTickMode'));
++    Ztick = make_cell(get(Hlims, 'ZTickMode'));
++end
++% Set all axes limit and tick modes to manual, so the limits and ticks can't change
++set(Hlims, 'XLimMode', 'manual', 'YLimMode', 'manual', 'ZLimMode', 'manual');
++set_tick_mode(Hlims, 'X');
++set_tick_mode(Hlims, 'Y');
++set_tick_mode(Hlims, 'Z');
++% Set to print exactly what is there
++set(fig, 'InvertHardcopy', 'off');
++% Set the renderer
++switch options.renderer
++    case 1
++        renderer = '-opengl';
++    case 2
++        renderer = '-zbuffer';
++    case 3
++        renderer = '-painters';
++    otherwise
++        renderer = '-opengl'; % Default for bitmaps
++end
++% Do the bitmap formats first
++if isbitmap(options)
++    % Get the background colour
++    if options.transparent && (options.png || options.alpha)
++        % Get out an alpha channel
++        % MATLAB "feature": black colorbar axes can change to white and vice versa!
++        hCB = findobj(fig, 'Type', 'axes', 'Tag', 'Colorbar');
++        if isempty(hCB)
++            yCol = [];
++            xCol = [];
++        else
++            yCol = get(hCB, 'YColor');
++            xCol = get(hCB, 'XColor');
++            if iscell(yCol)
++                yCol = cell2mat(yCol);
++                xCol = cell2mat(xCol);
+             end
+-            set(fontu, 'FontUnits', 'points');
++            yCol = sum(yCol, 2);
++            xCol = sum(xCol, 2);
+         end
+-    end
+-
+-    try
+-        % MATLAB "feature": axes limits and tick marks can change when printing
+-        Hlims = findall(fig, 'Type', 'axes');
+-        if ~cls
+-            % Record the old axes limit and tick modes
+-            Xlims = make_cell(get(Hlims, 'XLimMode'));
+-            Ylims = make_cell(get(Hlims, 'YLimMode'));
+-            Zlims = make_cell(get(Hlims, 'ZLimMode'));
+-            Xtick = make_cell(get(Hlims, 'XTickMode'));
+-            Ytick = make_cell(get(Hlims, 'YTickMode'));
+-            Ztick = make_cell(get(Hlims, 'ZTickMode'));
+-            Xlabel = make_cell(get(Hlims, 'XTickLabelMode')); 
+-            Ylabel = make_cell(get(Hlims, 'YTickLabelMode')); 
+-            Zlabel = make_cell(get(Hlims, 'ZTickLabelMode')); 
++        % MATLAB "feature": apparently figure size can change when changing
++        % colour in -nodisplay mode
++        pos = get(fig, 'Position');
++        % Set the background colour to black, and set size in case it was
++        % changed internally
++        tcol = get(fig, 'Color');
++        set(fig, 'Color', 'k', 'Position', pos);
++        % Correct the colorbar axes colours
++        set(hCB(yCol==0), 'YColor', [0 0 0]);
++        set(hCB(xCol==0), 'XColor', [0 0 0]);
++        % Print large version to array
++        B = print2array(fig, magnify, renderer);
++        % Downscale the image
++        B = downsize(single(B), options.aa_factor);
++        % Set background to white (and set size)
++        set(fig, 'Color', 'w', 'Position', pos);
++        % Correct the colorbar axes colours
++        set(hCB(yCol==3), 'YColor', [1 1 1]);
++        set(hCB(xCol==3), 'XColor', [1 1 1]);
++        % Print large version to array
++        A = print2array(fig, magnify, renderer);
++        % Downscale the image
++        A = downsize(single(A), options.aa_factor);
++        % Set the background colour (and size) back to normal
++        set(fig, 'Color', tcol, 'Position', pos);
++        % Compute the alpha map
++        alpha = round(sum(B - A, 3)) / (255 * 3) + 1;
++        A = alpha;
++        A(A==0) = 1;
++        A = B ./ A(:,:,[1 1 1]);
++        clear B
++        % Convert to greyscale
++        if options.colourspace == 2
++            A = rgb2grey(A);
+         end
+-
+-        % Set all axes limit and tick modes to manual, so the limits and ticks can't change
+-        % Fix Matlab R2014b bug (issue #34): plot markers are not displayed when ZLimMode='manual'
+-        set(Hlims, 'XLimMode', 'manual', 'YLimMode', 'manual');
+-        set_tick_mode(Hlims, 'X');
+-        set_tick_mode(Hlims, 'Y');
+-        if ~using_hg2(fig)
+-            set(Hlims,'ZLimMode', 'manual');
+-            set_tick_mode(Hlims, 'Z');
++        A = uint8(A);
++        % Crop the background
++        if options.crop
++            [alpha, v] = crop_borders(alpha, 0, 1);
++            A = A(v(1):v(2),v(3):v(4),:);
+         end
+-    catch
+-        % ignore - fix issue #4 (using HG2 on R2014a and earlier)
++        if options.png
++            % Compute the resolution
++            res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
++            % Save the png
++            imwrite(A, [options.name '.png'], 'Alpha', double(alpha), 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
++            % Clear the png bit
++            options.png = false;
++        end
++        % Return only one channel for greyscale
++        if isbitmap(options)
++            A = check_greyscale(A);
++        end
++        if options.alpha
++            % Store the image
++            im = A;
++            % Clear the alpha bit
++            options.alpha = false;
++        end
++        % Get the non-alpha image
++        if isbitmap(options)
++            alph = alpha(:,:,ones(1, size(A, 3)));
++            A = uint8(single(A) .* alph + 255 * (1 - alph));
++            clear alph
++        end
++        if options.im
++            % Store the new image
++            im = A;
++        end
++    else
++        % Print large version to array
++        if options.transparent
++            % MATLAB "feature": apparently figure size can change when changing
++            % colour in -nodisplay mode
++            pos = get(fig, 'Position');
++            tcol = get(fig, 'Color');
++            set(fig, 'Color', 'w', 'Position', pos);
++            A = print2array(fig, magnify, renderer);
++            set(fig, 'Color', tcol, 'Position', pos);
++            tcol = 255;
++        else
++            [A, tcol] = print2array(fig, magnify, renderer);
++        end
++        % Crop the background
++        if options.crop
++            A = crop_borders(A, tcol, 1);
++        end
++        % Downscale the image
++        A = downsize(A, options.aa_factor);
++        if options.colourspace == 2
++            % Convert to greyscale
++            A = rgb2grey(A);
++        else
++            % Return only one channel for greyscale
++            A = check_greyscale(A);
++        end
++        % Outputs
++        if options.im
++            im = A;
++        end
++        if options.alpha
++            im = A;
++            alpha = zeros(size(A, 1), size(A, 2), 'single');
++        end
+     end
+-
+-    % Fix issue #21 (bold TeX axes labels/titles in R2014b when exporting to EPS/PDF)
+-    try
+-        if using_hg2(fig) && isvector(options)
+-            % Set the FontWeight of axes labels/titles to 'normal'
+-            % Fix issue #69: set non-bold font only if the string contains symbols (\beta etc.)
+-            texLabels = findall(fig, 'type','text', 'FontWeight','bold');
+-            symbolIdx = ~cellfun('isempty',strfind({texLabels.String},'\'));
+-            set(texLabels(symbolIdx), 'FontWeight','normal');
++    % Save the images
++    if options.png
++        res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
++        imwrite(A, [options.name '.png'], 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
++    end
++    if options.bmp
++        imwrite(A, [options.name '.bmp']);
++    end
++    % Save jpeg with given quality
++    if options.jpg
++        quality = options.quality;
++        if isempty(quality)
++            quality = 95;
+         end
+-    catch
+-        % ignore
++        if quality > 100
++            imwrite(A, [options.name '.jpg'], 'Mode', 'lossless');
++        else
++            imwrite(A, [options.name '.jpg'], 'Quality', quality);
++        end
+     end
+-
+-    % Fix issue #42: non-normalized annotations on HG1 (internal Matlab bug)
+-    annotationHandles = [];
+-    try
+-        if ~using_hg2(fig)
+-            annotationHandles = findall(fig,'Type','hggroup','-and','-property','Units','-and','-not','Units','norm');
+-            originalUnits = get(annotationHandles,'Units');
+-            set(annotationHandles,'Units','norm');
++    % Save tif images in cmyk if wanted (and possible)
++    if options.tif
++        if options.colourspace == 1 && size(A, 3) == 3
++            A = double(255 - A);
++            K = min(A, [], 3);
++            K_ = 255 ./ max(255 - K, 1);
++            C = (A(:,:,1) - K) .* K_;
++            M = (A(:,:,2) - K) .* K_;
++            Y = (A(:,:,3) - K) .* K_;
++            A = uint8(cat(3, C, M, Y, K));
++            clear C M Y K K_
+         end
+-    catch
+-        % should never happen, but ignore in any case - issue #50
++        append_mode = {'overwrite', 'append'};
++        imwrite(A, [options.name '.tif'], 'Resolution', options.magnify*get(0, 'ScreenPixelsPerInch'), 'WriteMode', append_mode{options.append+1});
+     end
+-
+-    % Fix issue #46: Ghostscript crash if figure units <> pixels
+-    oldFigUnits = get(fig,'Units');
+-    set(fig,'Units','pixels');
+-
+-    % Set to print exactly what is there
+-    set(fig, 'InvertHardcopy', 'off');
+-    % Set the renderer
+-    switch options.renderer
+-        case 1
+-            renderer = '-opengl';
+-        case 2
+-            renderer = '-zbuffer';
+-        case 3
+-            renderer = '-painters';
+-        otherwise
+-            renderer = '-opengl'; % Default for bitmaps
++end
++% Now do the vector formats
++if isvector(options)
++    % Set the default renderer to painters
++    if ~options.renderer
++        renderer = '-painters';
+     end
+-
++    % Generate some filenames
++    tmp_nam = [tempname '.eps'];
++    if options.pdf
++        pdf_nam = [options.name '.pdf'];
++    else
++        pdf_nam = [tempname '.pdf'];
++    end
++    % Generate the options for print
++    p2eArgs = {renderer, sprintf('-r%d', options.resolution)};
++    if options.colourspace == 1
++        p2eArgs = [p2eArgs {'-cmyk'}];
++    end
++    if ~options.crop
++        p2eArgs = [p2eArgs {'-loose'}];
++    end
+     try
+-        % Do the bitmap formats first
+-        if isbitmap(options)
+-            if abs(options.bb_padding) > 1
+-                displaySuggestedWorkarounds = false;
+-                error('For bitmap output (png,jpg,tif,bmp) the padding value (-p) must be between -1<p<1')
++        % Generate an eps
++        print2eps(tmp_nam, fig, options.bb_padding, p2eArgs{:});
++        % Remove the background, if desired
++        if options.transparent && ~isequal(get(fig, 'Color'), 'none')
++            eps_remove_background(tmp_nam, 1 + using_hg2(fig));
++        end
++        % Add a bookmark to the PDF if desired
++        if options.bookmark
++            fig_nam = get(fig, 'Name');
++            if isempty(fig_nam)
++                warning('export_fig:EmptyBookmark', 'Bookmark requested for figure with no name. Bookmark will be empty.');
+             end
+-            % Get the background colour
+-            if options.transparent && (options.png || options.alpha)
+-                % Get out an alpha channel
+-                % MATLAB "feature": black colorbar axes can change to white and vice versa!
+-                hCB = findall(fig, 'Type','axes', 'Tag','Colorbar');
+-                if isempty(hCB)
+-                    yCol = [];
+-                    xCol = [];
+-                else
+-                    yCol = get(hCB, 'YColor');
+-                    xCol = get(hCB, 'XColor');
+-                    if iscell(yCol)
+-                        yCol = cell2mat(yCol);
+-                        xCol = cell2mat(xCol);
+-                    end
+-                    yCol = sum(yCol, 2);
+-                    xCol = sum(xCol, 2);
+-                end
+-                % MATLAB "feature": apparently figure size can change when changing
+-                % colour in -nodisplay mode
+-                pos = get(fig, 'Position');
+-                % Set the background colour to black, and set size in case it was
+-                % changed internally
+-                tcol = get(fig, 'Color');
+-                set(fig, 'Color', 'k', 'Position', pos);
+-                % Correct the colorbar axes colours
+-                set(hCB(yCol==0), 'YColor', [0 0 0]);
+-                set(hCB(xCol==0), 'XColor', [0 0 0]);
+-
+-                % The following code might cause out-of-memory errors
+-                try
+-                    % Print large version to array
+-                    B = print2array(fig, magnify, renderer);
+-                    % Downscale the image
+-                    B = downsize(single(B), options.aa_factor);
+-                catch
+-                    % This is more conservative in memory, but kills transparency (issue #58)
+-                    B = single(print2array(fig, magnify/options.aa_factor, renderer));
+-                end
+-
+-                % Set background to white (and set size)
+-                set(fig, 'Color', 'w', 'Position', pos);
+-                % Correct the colorbar axes colours
+-                set(hCB(yCol==3), 'YColor', [1 1 1]);
+-                set(hCB(xCol==3), 'XColor', [1 1 1]);
+-
+-                % The following code might cause out-of-memory errors
+-                try
+-                    % Print large version to array
+-                    A = print2array(fig, magnify, renderer);
+-                    % Downscale the image
+-                    A = downsize(single(A), options.aa_factor);
+-                catch
+-                    % This is more conservative in memory, but kills transparency (issue #58)
+-                    A = single(print2array(fig, magnify/options.aa_factor, renderer));
+-                end
+-
+-                % Set the background colour (and size) back to normal
+-                set(fig, 'Color', tcol, 'Position', pos);
+-                % Compute the alpha map
+-                alpha = round(sum(B - A, 3)) / (255 * 3) + 1;
+-                A = alpha;
+-                A(A==0) = 1;
+-                A = B ./ A(:,:,[1 1 1]);
+-                clear B
+-                % Convert to greyscale
+-                if options.colourspace == 2
+-                    A = rgb2grey(A);
+-                end
+-                A = uint8(A);
+-                % Crop the background
+-                if options.crop
+-                    %[alpha, v] = crop_borders(alpha, 0, 1);
+-                    %A = A(v(1):v(2),v(3):v(4),:);
+-                    [alpha, vA, vB] = crop_borders(alpha, 0, options.bb_padding);
+-                    if ~any(isnan(vB)) % positive padding
+-                        B = repmat(uint8(zeros(1,1,size(A,3))),size(alpha));
+-                        B(vB(1):vB(2), vB(3):vB(4), :) = A(vA(1):vA(2), vA(3):vA(4), :); % ADDED BY OH
+-                        A = B;
+-                    else  % negative padding
+-                        A = A(vA(1):vA(2), vA(3):vA(4), :);
+-                    end
+-                end
+-                if options.png
+-                    % Compute the resolution
+-                    res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
+-                    % Save the png
+-                    imwrite(A, [options.name '.png'], 'Alpha', double(alpha), 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
+-                    % Clear the png bit
+-                    options.png = false;
+-                end
+-                % Return only one channel for greyscale
+-                if isbitmap(options)
+-                    A = check_greyscale(A);
+-                end
+-                if options.alpha
+-                    % Store the image
+-                    imageData = A;
+-                    % Clear the alpha bit
+-                    options.alpha = false;
+-                end
+-                % Get the non-alpha image
+-                if isbitmap(options)
+-                    alph = alpha(:,:,ones(1, size(A, 3)));
+-                    A = uint8(single(A) .* alph + 255 * (1 - alph));
+-                    clear alph
+-                end
+-                if options.im
+-                    % Store the new image
+-                    imageData = A;
+-                end
+-            else
+-                % Print large version to array
+-                if options.transparent
+-                    % MATLAB "feature": apparently figure size can change when changing
+-                    % colour in -nodisplay mode
+-                    pos = get(fig, 'Position');
+-                    tcol = get(fig, 'Color');
+-                    set(fig, 'Color', 'w', 'Position', pos);
+-                    A = print2array(fig, magnify, renderer);
+-                    set(fig, 'Color', tcol, 'Position', pos);
+-                    tcol = 255;
+-                else
+-                    [A, tcol] = print2array(fig, magnify, renderer);
+-                end
+-                % Crop the background
+-                if options.crop
+-                    A = crop_borders(A, tcol, options.bb_padding);
+-                end
+-                % Downscale the image
+-                A = downsize(A, options.aa_factor);
+-                if options.colourspace == 2
+-                    % Convert to greyscale
+-                    A = rgb2grey(A);
+-                else
+-                    % Return only one channel for greyscale
+-                    A = check_greyscale(A);
+-                end
+-                % Outputs
+-                if options.im
+-                    imageData = A;
+-                end
+-                if options.alpha
+-                    imageData = A;
+-                    alpha = zeros(size(A, 1), size(A, 2), 'single');
+-                end
++            add_bookmark(tmp_nam, fig_nam);
++        end
++        % Generate a pdf
++        eps2pdf(tmp_nam, pdf_nam, 1, options.append, options.colourspace==2, options.quality);
++    catch ex
++        % Delete the eps
++        delete(tmp_nam);
++        rethrow(ex);
++    end
++    % Delete the eps
++    delete(tmp_nam);
++    if options.eps
++        try
++            % Generate an eps from the pdf
++            pdf2eps(pdf_nam, [options.name '.eps']);
++        catch ex
++            if ~options.pdf
++                % Delete the pdf
++                delete(pdf_nam);
+             end
+-            % Save the images
+-            if options.png
+-                res = options.magnify * get(0, 'ScreenPixelsPerInch') / 25.4e-3;
+-                imwrite(A, [options.name '.png'], 'ResolutionUnit', 'meter', 'XResolution', res, 'YResolution', res);
+-            end
+-            if options.bmp
+-                imwrite(A, [options.name '.bmp']);
+-            end
+-            % Save jpeg with given quality
+-            if options.jpg
+-                quality = options.quality;
+-                if isempty(quality)
+-                    quality = 95;
+-                end
+-                if quality > 100
+-                    imwrite(A, [options.name '.jpg'], 'Mode', 'lossless');
+-                else
+-                    imwrite(A, [options.name '.jpg'], 'Quality', quality);
+-                end
+-            end
+-            % Save tif images in cmyk if wanted (and possible)
+-            if options.tif
+-                if options.colourspace == 1 && size(A, 3) == 3
+-                    A = double(255 - A);
+-                    K = min(A, [], 3);
+-                    K_ = 255 ./ max(255 - K, 1);
+-                    C = (A(:,:,1) - K) .* K_;
+-                    M = (A(:,:,2) - K) .* K_;
+-                    Y = (A(:,:,3) - K) .* K_;
+-                    A = uint8(cat(3, C, M, Y, K));
+-                    clear C M Y K K_
+-                end
+-                append_mode = {'overwrite', 'append'};
+-                imwrite(A, [options.name '.tif'], 'Resolution', options.magnify*get(0, 'ScreenPixelsPerInch'), 'WriteMode', append_mode{options.append+1});
+-            end
++            rethrow(ex);
+         end
++        if ~options.pdf
++            % Delete the pdf
++            delete(pdf_nam);
++        end
++    end
++end
++if cls
++    % Close the created figure
++    close(fig);
++else
++    % Reset the hardcopy mode
++    set(fig, 'InvertHardcopy', old_mode);
++    % Reset the axes limit and tick modes
++    for a = 1:numel(Hlims)
++        set(Hlims(a), 'XLimMode', Xlims{a}, 'YLimMode', Ylims{a}, 'ZLimMode', Zlims{a}, 'XTickMode', Xtick{a}, 'YTickMode', Ytick{a}, 'ZTickMode', Ztick{a});
++    end
++end
++end
+ 
+-        % Now do the vector formats
+-        if isvector(options)
+-            % Set the default renderer to painters
+-            if ~options.renderer
+-                if isempty(findall(fig,'-property','FaceAlpha','-and','-not','FaceAlpha',1)) && ...
+-                        isempty(findall(fig,'type','patch'))
+-                    renderer = '-painters';
+-                else
+-                    % This is *MUCH* slower, but more accurate for patches and transparent annotations (issue #39)
+-                    renderer = '-opengl';
+-                end
+-            end
+-            % Generate some filenames
+-            tmp_nam = [tempname '.eps'];
+-            try
+-                % Ensure that the temp dir is writable (Javier Paredes 30/1/15)
+-                fid = fopen(tmp_nam,'w');
+-                fwrite(fid,1);
+-                fclose(fid);
+-                delete(tmp_nam);
+-                isTempDirOk = true;
+-            catch
+-                % Temp dir is not writable, so use the user-specified folder
+-                [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
+-                fpath = fileparts(options.name);
+-                tmp_nam = fullfile(fpath,[fname fext]);
+-                isTempDirOk = false;
+-            end
+-            if isTempDirOk
+-                pdf_nam_tmp = [tempname '.pdf'];
+-            else
+-                pdf_nam_tmp = fullfile(fpath,[fname '.pdf']);
+-            end
+-            if options.pdf
+-                pdf_nam = [options.name '.pdf'];
+-                try copyfile(pdf_nam, pdf_nam_tmp, 'f'); catch, end  % fix for issue #65
+-            else
+-                pdf_nam = pdf_nam_tmp;
+-            end
+-            % Generate the options for print
+-            p2eArgs = {renderer, sprintf('-r%d', options.resolution)};
+-            if options.colourspace == 1  % CMYK
+-                % Issue #33: due to internal bugs in Matlab's print() function, we can't use its -cmyk option
+-                %p2eArgs{end+1} = '-cmyk';
+-            end
+-            if ~options.crop
+-                % Issue #56: due to internal bugs in Matlab's print() function, we can't use its internal cropping mechanism,
+-                % therefore we always use '-loose' (in print2eps.m) and do our own cropping (in crop_borders)
+-                %p2eArgs{end+1} = '-loose';
+-            end
+-            if any(strcmpi(varargin,'-depsc'))
+-                % Issue #45: lines in image subplots are exported in invalid color.
+-                % The workaround is to use the -depsc parameter instead of the default -depsc2
+-                p2eArgs{end+1} = '-depsc';
+-            end
+-            try
+-                % Generate an eps
+-                print2eps(tmp_nam, fig, [options.bb_padding, options.crop, options.fontswap], p2eArgs{:});
+-                % Remove the background, if desired
+-                if options.transparent && ~isequal(get(fig, 'Color'), 'none')
+-                    eps_remove_background(tmp_nam, 1 + using_hg2(fig));
+-                end
+-                % Fix colorspace to CMYK, if requested (workaround for issue #33)
+-                if options.colourspace == 1  % CMYK
+-                    % Issue #33: due to internal bugs in Matlab's print() function, we can't use its -cmyk option
+-                    change_rgb_to_cmyk(tmp_nam);
+-                end
+-                % Add a bookmark to the PDF if desired
+-                if options.bookmark
+-                    fig_nam = get(fig, 'Name');
+-                    if isempty(fig_nam)
+-                        warning('export_fig:EmptyBookmark', 'Bookmark requested for figure with no name. Bookmark will be empty.');
++function [fig, options] = parse_args(nout, varargin)
++% Parse the input arguments
++% Set the defaults
++fig = get(0, 'CurrentFigure');
++options = struct('name', 'export_fig_out', ...
++                 'crop', true, ...
++                 'transparent', false, ...
++                 'renderer', 0, ... % 0: default, 1: OpenGL, 2: ZBuffer, 3: Painters
++                 'pdf', false, ...
++                 'eps', false, ...
++                 'png', false, ...
++                 'tif', false, ...
++                 'jpg', false, ...
++                 'bmp', false, ...
++                 'colourspace', 0, ... % 0: RGB/gray, 1: CMYK, 2: gray
++                 'append', false, ...
++                 'im', nout == 1, ...
++                 'alpha', nout == 2, ...
++                 'aa_factor', 0, ...
++                 'bb_padding', 0, ...
++                 'magnify', [], ...
++                 'resolution', [], ...
++                 'bookmark', false, ...
++                 'quality', []);
++native = false; % Set resolution to native of an image
++
++% Go through the other arguments
++for a = 1:nargin-1
++    if all(ishandle(varargin{a}))
++        fig = varargin{a};
++    elseif ischar(varargin{a}) && ~isempty(varargin{a})
++        if varargin{a}(1) == '-'
++            switch lower(varargin{a}(2:end))
++                case 'nocrop'
++                    options.crop = false;
++                case {'trans', 'transparent'}
++                    options.transparent = true;
++                case 'opengl'
++                    options.renderer = 1;
++                case 'zbuffer'
++                    options.renderer = 2;
++                case 'painters'
++                    options.renderer = 3;
++                case 'pdf'
++                    options.pdf = true;
++                case 'eps'
++                    options.eps = true;
++                case 'png'
++                    options.png = true;
++                case {'tif', 'tiff'}
++                    options.tif = true;
++                case {'jpg', 'jpeg'}
++                    options.jpg = true;
++                case 'bmp'
++                    options.bmp = true;
++                case 'rgb'
++                    options.colourspace = 0;
++                case 'cmyk'
++                    options.colourspace = 1;
++                case {'gray', 'grey'}
++                    options.colourspace = 2;
++                case {'a1', 'a2', 'a3', 'a4'}
++                    options.aa_factor = str2double(varargin{a}(3));
++                case 'append'
++                    options.append = true;
++                case 'bookmark'
++                    options.bookmark = true;
++                case 'native'
++                    native = true;
++                otherwise
++                    val = str2double(regexp(varargin{a}, '(?<=-(m|M|r|R|q|Q|p|P))-?\d*.?\d+', 'match'));
++                    if ~isscalar(val)
++                        error('option %s not recognised', varargin{a});
+                     end
+-                    add_bookmark(tmp_nam, fig_nam);
+-                end
+-                % Generate a pdf
+-                eps2pdf(tmp_nam, pdf_nam_tmp, 1, options.append, options.colourspace==2, options.quality, options.gs_options);
+-                % Ghostscript croaks on % chars in the output PDF file, so use tempname and then rename the file
+-                try movefile(pdf_nam_tmp, pdf_nam, 'f'); catch, end
+-            catch ex
+-                % Delete the eps
+-                delete(tmp_nam);
+-                rethrow(ex);
+-            end
+-            % Delete the eps
+-            delete(tmp_nam);
+-            if options.eps
+-                try
+-                    % Generate an eps from the pdf
+-                    % since pdftops can't handle relative paths (e.g., '..\'), use a temp file
+-                    eps_nam_tmp = strrep(pdf_nam_tmp,'.pdf','.eps');
+-                    pdf2eps(pdf_nam, eps_nam_tmp);
+-                    movefile(eps_nam_tmp,  [options.name '.eps'], 'f');
+-                catch ex
+-                    if ~options.pdf
+-                        % Delete the pdf
+-                        delete(pdf_nam);
++                    switch lower(varargin{a}(2))
++                        case 'm'
++                            options.magnify = val;
++                        case 'r'
++                            options.resolution = val;
++                        case 'q'
++                            options.quality = max(val, 0);
++                        case 'p'
++                            options.bb_padding = val;
+                     end
+-                    try delete(eps_nam_tmp); catch, end
+-                    rethrow(ex);
+-                end
+-                if ~options.pdf
+-                    % Delete the pdf
+-                    delete(pdf_nam);
+-                end
+             end
+-        end
+-
+-        % Revert the figure or close it (if requested)
+-        if cls || options.closeFig
+-            % Close the created figure
+-            close(fig);
+         else
+-            % Reset the hardcopy mode
+-            set(fig, 'InvertHardcopy', old_mode);
+-            % Reset the axes limit and tick modes
+-            for a = 1:numel(Hlims)
+-                try
+-                    set(Hlims(a), 'XLimMode', Xlims{a}, 'YLimMode', Ylims{a}, 'ZLimMode', Zlims{a},... 
+-                                  'XTickMode', Xtick{a}, 'YTickMode', Ytick{a}, 'ZTickMode', Ztick{a},...
+-                                  'XTickLabelMode', Xlabel{a}, 'YTickLabelMode', Ylabel{a}, 'ZTickLabelMode', Zlabel{a}); 
+-                catch
+-                    % ignore - fix issue #4 (using HG2 on R2014a and earlier)
+-                end
++            [p, options.name, ext] = fileparts(varargin{a});
++            if ~isempty(p)
++                options.name = [p filesep options.name];
+             end
+-            % Revert the tex-labels font weights
+-            try set(texLabels, 'FontWeight','bold'); catch, end
+-            % Revert annotation units
+-            for handleIdx = 1 : numel(annotationHandles)
+-                try
+-                    oldUnits = originalUnits{handleIdx};
+-                catch
+-                    oldUnits = originalUnits;
+-                end
+-                try set(annotationHandles(handleIdx),'Units',oldUnits); catch, end
++            switch lower(ext)
++                case {'.tif', '.tiff'}
++                    options.tif = true;
++                case {'.jpg', '.jpeg'}
++                    options.jpg = true;
++                case '.png'
++                    options.png = true;
++                case '.bmp'
++                    options.bmp = true;
++                case '.eps'
++                    options.eps = true;
++                case '.pdf'
++                    options.pdf = true;
++                otherwise
++                    options.name = varargin{a};
+             end
+-            % Revert figure units
+-            set(fig,'Units',oldFigUnits);
+         end
+-
+-        % Output to clipboard (if requested)
+-        if options.clipboard
+-            % Delete the output file if unchanged from the default name ('export_fig_out.png')
+-            if strcmpi(options.name,'export_fig_out')
+-                try
+-                    fileInfo = dir('export_fig_out.png');
+-                    if ~isempty(fileInfo)
+-                        timediff = now - fileInfo.datenum;
+-                        ONE_SEC = 1/24/60/60;
+-                        if timediff < ONE_SEC
+-                            delete('export_fig_out.png');
+-                        end
+-                    end
+-                catch
+-                    % never mind...
+-                end
+-            end
+-
+-            % Save the image in the system clipboard
+-            % credit: Jiro Doke's IMCLIPBOARD: http://www.mathworks.com/matlabcentral/fileexchange/28708-imclipboard
+-            try
+-                error(javachk('awt', 'export_fig -clipboard output'));
+-            catch
+-                warning('export_fig -clipboard output failed: requires Java to work');
+-                return;
+-            end
+-            try
+-                % Import necessary Java classes
+-                import java.awt.Toolkit.*
+-                import java.awt.image.BufferedImage
+-                import java.awt.datatransfer.DataFlavor
+-
+-                % Get System Clipboard object (java.awt.Toolkit)
+-                cb = getDefaultToolkit.getSystemClipboard();
+-
+-                % Add java class (ImageSelection) to the path
+-                if ~exist('ImageSelection', 'class')
+-                    javaaddpath(fileparts(which(mfilename)), '-end');
+-                end
+-
+-                % Get image size
+-                ht = size(imageData, 1);
+-                wd = size(imageData, 2);
+-
+-                % Convert to Blue-Green-Red format
+-                try
+-                    imageData2 = imageData(:, :, [3 2 1]);
+-                catch
+-                    % Probably gray-scaled image (2D, without the 3rd [RGB] dimension)
+-                    imageData2 = imageData(:, :, [1 1 1]);
+-                end
+-
+-                % Convert to 3xWxH format
+-                imageData2 = permute(imageData2, [3, 2, 1]);
+-
+-                % Append Alpha data (unused - transparency is not supported in clipboard copy)
+-                alphaData2 = uint8(permute(255*alpha,[3,2,1])); %=255*ones(1,wd,ht,'uint8')
+-                imageData2 = cat(1, imageData2, alphaData2);
+-
+-                % Create image buffer
+-                imBuffer = BufferedImage(wd, ht, BufferedImage.TYPE_INT_RGB);
+-                imBuffer.setRGB(0, 0, wd, ht, typecast(imageData2(:), 'int32'), 0, wd);
+-
+-                % Create ImageSelection object from the image buffer
+-                imSelection = ImageSelection(imBuffer);
+-
+-                % Set clipboard content to the image
+-                cb.setContents(imSelection, []);
+-            catch
+-                warning('export_fig -clipboard output failed: %s', lasterr); %#ok<LERR>
+-            end
+-        end
+-
+-        % Don't output the data to console unless requested
+-        if ~nargout
+-            clear imageData alpha
+-        end
+-    catch err
+-        % Display possible workarounds before the error message
+-        if displaySuggestedWorkarounds
+-            if ~hadError,  fprintf(2, 'export_fig error. ');  end
+-            fprintf(2, 'Please ensure:\n');
+-            fprintf(2, '  that you are using the <a href="https://github.com/altmany/export_fig/archive/master.zip">latest version</a> of export_fig\n');
+-            fprintf(2, '  and that you have <a href="http://www.ghostscript.com">Ghostscript</a> installed\n');
+-            try
+-                if options.eps
+-                    fprintf(2, '  and that you have <a href="http://www.foolabs.com/xpdf">pdftops</a> installed\n');
+-                end
+-            catch
+-                % ignore - probably an error in parse_args
+-            end
+-            fprintf(2, '  and that you do not have <a href="matlab:which export_fig -all">multiple versions</a> of export_fig installed by mistake\n');
+-            fprintf(2, '  and that you did not made a mistake in the <a href="matlab:help export_fig">expected input arguments</a>\n');
+-            fprintf(2, '\nIf the problem persists, then please <a href="https://github.com/altmany/export_fig/issues">report a new issue</a>.\n\n');
+-        end
+-        rethrow(err)
+     end
+ end
+ 
+-function [fig, options] = parse_args(nout, fig, varargin)
+-    % Parse the input arguments
+-    % Set the defaults
+-    options = struct(...
+-        'name', 'export_fig_out', ...
+-        'crop', true, ...
+-        'transparent', false, ...
+-        'renderer', 0, ... % 0: default, 1: OpenGL, 2: ZBuffer, 3: Painters
+-        'pdf', false, ...
+-        'eps', false, ...
+-        'png', false, ...
+-        'tif', false, ...
+-        'jpg', false, ...
+-        'bmp', false, ...
+-        'clipboard', false, ...
+-        'colourspace', 0, ... % 0: RGB/gray, 1: CMYK, 2: gray
+-        'append', false, ...
+-        'im',    nout == 1, ...
+-        'alpha', nout == 2, ...
+-        'aa_factor', 0, ...
+-        'bb_padding', 0, ...
+-        'magnify', [], ...
+-        'resolution', [], ...
+-        'bookmark', false, ...
+-        'closeFig', false, ...
+-        'quality', [], ...
+-        'update', false, ...
+-        'fontswap', true, ...
+-        'gs_options', {{}});
+-    native = false; % Set resolution to native of an image
++% Set default anti-aliasing now we know the renderer
++if options.aa_factor == 0
++    options.aa_factor = 1 + 2 * (~(using_hg2(fig) && strcmp(get(ancestor(fig, 'figure'), 'GraphicsSmoothing'), 'on')) | (options.renderer == 3));
++end
+ 
+-    % Go through the other arguments
+-    skipNext = false;
+-    for a = 1:nargin-2
+-        if skipNext
+-            skipNext = false;
+-            continue;
+-        end
+-        if all(ishandle(varargin{a}))
+-            fig = varargin{a};
+-        elseif ischar(varargin{a}) && ~isempty(varargin{a})
+-            if varargin{a}(1) == '-'
+-                switch lower(varargin{a}(2:end))
+-                    case 'nocrop'
+-                        options.crop = false;
+-                    case {'trans', 'transparent'}
+-                        options.transparent = true;
+-                    case 'opengl'
+-                        options.renderer = 1;
+-                    case 'zbuffer'
+-                        options.renderer = 2;
+-                    case 'painters'
+-                        options.renderer = 3;
+-                    case 'pdf'
+-                        options.pdf = true;
+-                    case 'eps'
+-                        options.eps = true;
+-                    case 'png'
+-                        options.png = true;
+-                    case {'tif', 'tiff'}
+-                        options.tif = true;
+-                    case {'jpg', 'jpeg'}
+-                        options.jpg = true;
+-                    case 'bmp'
+-                        options.bmp = true;
+-                    case 'rgb'
+-                        options.colourspace = 0;
+-                    case 'cmyk'
+-                        options.colourspace = 1;
+-                    case {'gray', 'grey'}
+-                        options.colourspace = 2;
+-                    case {'a1', 'a2', 'a3', 'a4'}
+-                        options.aa_factor = str2double(varargin{a}(3));
+-                    case 'append'
+-                        options.append = true;
+-                    case 'bookmark'
+-                        options.bookmark = true;
+-                    case 'native'
+-                        native = true;
+-                    case 'clipboard'
+-                        options.clipboard = true;
+-                        options.im = true;
+-                        options.alpha = true;
+-                    case 'svg'
+-                        msg = ['SVG output is not supported by export_fig. Use one of the following alternatives:\n' ...
+-                               '  1. saveas(gcf,''filename.svg'')\n' ...
+-                               '  2. plot2svg utility: http://github.com/jschwizer99/plot2svg\n' ...
+-                               '  3. export_fig to EPS/PDF, then convert to SVG using generic (non-Matlab) tools\n'];
+-                        error(sprintf(msg)); %#ok<SPERR>
+-                    case 'update'
+-                        % Download the latest version of export_fig into the export_fig folder
+-                        try
+-                            zipFileName = 'https://github.com/altmany/export_fig/archive/master.zip';
+-                            folderName = fileparts(which(mfilename('fullpath')));
+-                            targetFileName = fullfile(folderName, datestr(now,'yyyy-mm-dd.zip'));
+-                            urlwrite(zipFileName,targetFileName);
+-                        catch
+-                            error('Could not download %s into %s\n',zipFileName,targetFileName);
+-                        end
++% Convert user dir '~' to full path
++if numel(options.name) > 2 && options.name(1) == '~' && (options.name(2) == '/' || options.name(2) == '\')
++    options.name = fullfile(char(java.lang.System.getProperty('user.home')), options.name(2:end));
++end
+ 
+-                        % Unzip the downloaded zip file in the export_fig folder
+-                        try
+-                            unzip(targetFileName,folderName);
+-                        catch
+-                            error('Could not unzip %s\n',targetFileName);
+-                        end
+-                    case 'nofontswap'
+-                        options.fontswap = false;
+-                    otherwise
+-                        try
+-                            wasError = false;
+-                            if strcmpi(varargin{a}(1:2),'-d')
+-                                varargin{a}(2) = 'd';  % ensure lowercase 'd'
+-                                options.gs_options{end+1} = varargin{a};
+-                            else
+-                                val = str2double(regexp(varargin{a}, '(?<=-(m|M|r|R|q|Q|p|P))-?\d*.?\d+', 'match'));
+-                                if isempty(val) || isnan(val)
+-                                    % Issue #51: improved processing of input args (accept space between param name & value)
+-                                    val = str2double(varargin{a+1});
+-                                    if isscalar(val) && ~isnan(val)
+-                                        skipNext = true;
+-                                    end
+-                                end
+-                                if ~isscalar(val) || isnan(val)
+-                                    wasError = true;
+-                                    error('option %s is not recognised or cannot be parsed', varargin{a});
+-                                end
+-                                switch lower(varargin{a}(2))
+-                                    case 'm'
+-                                        % Magnification may never be negative
+-                                        if val <= 0
+-                                            wasError = true;
+-                                            error('Bad magnification value: %g (must be positive)', val);
+-                                        end
+-                                        options.magnify = val;
+-                                    case 'r'
+-                                        options.resolution = val;
+-                                    case 'q'
+-                                        options.quality = max(val, 0);
+-                                    case 'p'
+-                                        options.bb_padding = val;
+-                                end
+-                            end
+-                        catch err
+-                            % We might have reached here by raising an intentional error
+-                            if wasError  % intentional raise
+-                                rethrow(err)
+-                            else  % unintentional
+-                                error(['Unrecognized export_fig input option: ''' varargin{a} '''']);
+-                            end
+-                        end
+-                end
+-            else
+-                [p, options.name, ext] = fileparts(varargin{a});
+-                if ~isempty(p)
+-                    options.name = [p filesep options.name];
+-                end
+-                switch lower(ext)
+-                    case {'.tif', '.tiff'}
+-                        options.tif = true;
+-                    case {'.jpg', '.jpeg'}
+-                        options.jpg = true;
+-                    case '.png'
+-                        options.png = true;
+-                    case '.bmp'
+-                        options.bmp = true;
+-                    case '.eps'
+-                        options.eps = true;
+-                    case '.pdf'
+-                        options.pdf = true;
+-                    case '.fig'
+-                        % If no open figure, then load the specified .fig file and continue
+-                        if isempty(fig)
+-                            fig = openfig(varargin{a},'invisible');
+-                            varargin{a} = fig;
+-                            options.closeFig = true;
+-                        else
+-                            % save the current figure as the specified .fig file and exit
+-                            saveas(fig(1),varargin{a});
+-                            fig = -1;
+-                            return
+-                        end
+-                    case '.svg'
+-                        msg = ['SVG output is not supported by export_fig. Use one of the following alternatives:\n' ...
+-                               '  1. saveas(gcf,''filename.svg'')\n' ...
+-                               '  2. plot2svg utility: http://github.com/jschwizer99/plot2svg\n' ...
+-                               '  3. export_fig to EPS/PDF, then convert to SVG using generic (non-Matlab) tools\n'];
+-                        error(sprintf(msg)); %#ok<SPERR>
+-                    otherwise
+-                        options.name = varargin{a};
+-                end
+-            end
+-        end
++% Compute the magnification and resolution
++if isempty(options.magnify)
++    if isempty(options.resolution)
++        options.magnify = 1;
++        options.resolution = 864;
++    else
++        options.magnify = options.resolution ./ get(0, 'ScreenPixelsPerInch');
+     end
++elseif isempty(options.resolution)
++    options.resolution = 864;
++end  
+ 
+-    % Quick bail-out if no figure found
+-    if isempty(fig),  return;  end
++% Check we have a figure handle
++if isempty(fig)
++    error('No figure found');
++end
+ 
+-    % Do border padding with repsect to a cropped image
+-    if options.bb_padding
+-        options.crop = true;
+-    end
++% Set the default format
++if ~isvector(options) && ~isbitmap(options)
++    options.png = true;
++end
+ 
+-    % Set default anti-aliasing now we know the renderer
+-    if options.aa_factor == 0
+-        try isAA = strcmp(get(ancestor(fig, 'figure'), 'GraphicsSmoothing'), 'on'); catch, isAA = false; end
+-        options.aa_factor = 1 + 2 * (~(using_hg2(fig) && isAA) | (options.renderer == 3));
+-    end
++% Check whether transparent background is wanted (old way)
++if isequal(get(ancestor(fig(1), 'figure'), 'Color'), 'none')
++    options.transparent = true;
++end
+ 
+-    % Convert user dir '~' to full path
+-    if numel(options.name) > 2 && options.name(1) == '~' && (options.name(2) == '/' || options.name(2) == '\')
+-        options.name = fullfile(char(java.lang.System.getProperty('user.home')), options.name(2:end));
++% If requested, set the resolution to the native vertical resolution of the
++% first suitable image found
++if native && isbitmap(options)
++    % Find a suitable image
++    list = findobj(fig, 'Type', 'image', 'Tag', 'export_fig_native');
++    if isempty(list)
++        list = findobj(fig, 'Type', 'image', 'Visible', 'on');
+     end
+-
+-    % Compute the magnification and resolution
+-    if isempty(options.magnify)
+-        if isempty(options.resolution)
+-            options.magnify = 1;
+-            options.resolution = 864;
+-        else
+-            options.magnify = options.resolution ./ get(0, 'ScreenPixelsPerInch');
++    for hIm = list(:)'
++        % Check height is >= 2
++        height = size(get(hIm, 'CData'), 1);
++        if height < 2
++            continue
+         end
+-    elseif isempty(options.resolution)
+-        options.resolution = 864;
+-    end
+-
+-    % Set the default format
+-    if ~isvector(options) && ~isbitmap(options)
+-        options.png = true;
+-    end
+-
+-    % Check whether transparent background is wanted (old way)
+-    if isequal(get(ancestor(fig(1), 'figure'), 'Color'), 'none')
+-        options.transparent = true;
+-    end
+-
+-    % If requested, set the resolution to the native vertical resolution of the
+-    % first suitable image found
+-    if native && isbitmap(options)
+-        % Find a suitable image
+-        list = findall(fig, 'Type','image', 'Tag','export_fig_native');
+-        if isempty(list)
+-            list = findall(fig, 'Type','image', 'Visible','on');
+-        end
+-        for hIm = list(:)'
+-            % Check height is >= 2
+-            height = size(get(hIm, 'CData'), 1);
+-            if height < 2
++        % Account for the image filling only part of the axes, or vice
++        % versa
++        yl = get(hIm, 'YData');
++        if isscalar(yl)
++            yl = [yl(1)-0.5 yl(1)+height+0.5];
++        else
++            if ~diff(yl)
+                 continue
+             end
+-            % Account for the image filling only part of the axes, or vice
+-            % versa
+-            yl = get(hIm, 'YData');
+-            if isscalar(yl)
+-                yl = [yl(1)-0.5 yl(1)+height+0.5];
+-            else
+-                if ~diff(yl)
+-                    continue
+-                end
+-                yl = yl + [-0.5 0.5] * (diff(yl) / (height - 1));
+-            end
+-            hAx = get(hIm, 'Parent');
+-            yl2 = get(hAx, 'YLim');
+-            % Find the pixel height of the axes
+-            oldUnits = get(hAx, 'Units');
+-            set(hAx, 'Units', 'pixels');
+-            pos = get(hAx, 'Position');
+-            set(hAx, 'Units', oldUnits);
+-            if ~pos(4)
+-                continue
+-            end
+-            % Found a suitable image
+-            % Account for stretch-to-fill being disabled
+-            pbar = get(hAx, 'PlotBoxAspectRatio');
+-            pos = min(pos(4), pbar(2)*pos(3)/pbar(1));
+-            % Set the magnification to give native resolution
+-            options.magnify = abs((height * diff(yl2)) / (pos * diff(yl)));  % magnification must never be negative: issue #103
+-            break
++            yl = yl + [-0.5 0.5] * (diff(yl) / (height - 1));
+         end
++        hAx = get(hIm, 'Parent');
++        yl2 = get(hAx, 'YLim');
++        % Find the pixel height of the axes
++        oldUnits = get(hAx, 'Units');
++        set(hAx, 'Units', 'pixels');
++        pos = get(hAx, 'Position');
++        set(hAx, 'Units', oldUnits);
++        if ~pos(4)
++            continue
++        end
++        % Found a suitable image
++        % Account for stretch-to-fill being disabled
++        pbar = get(hAx, 'PlotBoxAspectRatio');
++        pos = min(pos(4), pbar(2)*pos(3)/pbar(1));
++        % Set the magnification to give native resolution
++        options.magnify = (height * diff(yl2)) / (pos * diff(yl));
++        break
+     end
+ end
++end
+ 
+ function A = downsize(A, factor)
+-    % Downsample an image
+-    if factor == 1
+-        % Nothing to do
+-        return
++% Downsample an image
++if factor == 1
++    % Nothing to do
++    return
++end
++try
++    % Faster, but requires image processing toolbox
++    A = imresize(A, 1/factor, 'bilinear');
++catch
++    % No image processing toolbox - resize manually
++    % Lowpass filter - use Gaussian as is separable, so faster
++    % Compute the 1d Gaussian filter
++    filt = (-factor-1:factor+1) / (factor * 0.6);
++    filt = exp(-filt .* filt);
++    % Normalize the filter
++    filt = single(filt / sum(filt));
++    % Filter the image
++    padding = floor(numel(filt) / 2);
++    for a = 1:size(A, 3)
++        A(:,:,a) = conv2(filt, filt', single(A([ones(1, padding) 1:end repmat(end, 1, padding)],[ones(1, padding) 1:end repmat(end, 1, padding)],a)), 'valid');
+     end
+-    try
+-        % Faster, but requires image processing toolbox
+-        A = imresize(A, 1/factor, 'bilinear');
+-    catch
+-        % No image processing toolbox - resize manually
+-        % Lowpass filter - use Gaussian as is separable, so faster
+-        % Compute the 1d Gaussian filter
+-        filt = (-factor-1:factor+1) / (factor * 0.6);
+-        filt = exp(-filt .* filt);
+-        % Normalize the filter
+-        filt = single(filt / sum(filt));
+-        % Filter the image
+-        padding = floor(numel(filt) / 2);
+-        for a = 1:size(A, 3)
+-            A(:,:,a) = conv2(filt, filt', single(A([ones(1, padding) 1:end repmat(end, 1, padding)],[ones(1, padding) 1:end repmat(end, 1, padding)],a)), 'valid');
+-        end
+-        % Subsample
+-        A = A(1+floor(mod(end-1, factor)/2):factor:end,1+floor(mod(end-1, factor)/2):factor:end,:);
+-    end
++    % Subsample
++    A = A(1+floor(mod(end-1, factor)/2):factor:end,1+floor(mod(end-1, factor)/2):factor:end,:);
+ end
++end
+ 
+ function A = rgb2grey(A)
+-    A = cast(reshape(reshape(single(A), [], 3) * single([0.299; 0.587; 0.114]), size(A, 1), size(A, 2)), class(A)); %#ok<ZEROLIKE>
++A = cast(reshape(reshape(single(A), [], 3) * single([0.299; 0.587; 0.114]), size(A, 1), size(A, 2)), class(A));
+ end
+ 
+ function A = check_greyscale(A)
+-    % Check if the image is greyscale
+-    if size(A, 3) == 3 && ...
+-            all(reshape(A(:,:,1) == A(:,:,2), [], 1)) && ...
+-            all(reshape(A(:,:,2) == A(:,:,3), [], 1))
+-        A = A(:,:,1); % Save only one channel for 8-bit output
+-    end
++% Check if the image is greyscale
++if size(A, 3) == 3 && ...
++        all(reshape(A(:,:,1) == A(:,:,2), [], 1)) && ...
++        all(reshape(A(:,:,2) == A(:,:,3), [], 1))
++    A = A(:,:,1); % Save only one channel for 8-bit output
+ end
++end
+ 
+ function eps_remove_background(fname, count)
+-    % Remove the background of an eps file
+-    % Open the file
+-    fh = fopen(fname, 'r+');
+-    if fh == -1
+-        error('Not able to open file %s.', fname);
++% Remove the background of an eps file
++% Open the file
++fh = fopen(fname, 'r+');
++if fh == -1
++    error('Not able to open file %s.', fname);
++end
++% Read the file line by line
++while count
++    % Get the next line
++    l = fgets(fh);
++    if isequal(l, -1)
++        break; % Quit, no rectangle found
+     end
+-    % Read the file line by line
+-    while count
+-        % Get the next line
+-        l = fgets(fh);
+-        if isequal(l, -1)
+-            break; % Quit, no rectangle found
+-        end
+-        % Check if the line contains the background rectangle
+-        if isequal(regexp(l, ' *0 +0 +\d+ +\d+ +r[fe] *[\n\r]+', 'start'), 1)
+-            % Set the line to whitespace and quit
+-            l(1:regexp(l, '[\n\r]', 'start', 'once')-1) = ' ';
+-            fseek(fh, -numel(l), 0);
+-            fprintf(fh, l);
+-            % Reduce the count
+-            count = count - 1;
+-        end
++    % Check if the line contains the background rectangle
++    if isequal(regexp(l, ' *0 +0 +\d+ +\d+ +r[fe] *[\n\r]+', 'start'), 1)
++        % Set the line to whitespace and quit
++        l(1:regexp(l, '[\n\r]', 'start', 'once')-1) = ' ';
++        fseek(fh, -numel(l), 0);
++        fprintf(fh, l);
++        % Reduce the count
++        count = count - 1;
+     end
+-    % Close the file
+-    fclose(fh);
+ end
++% Close the file
++fclose(fh);
++end
+ 
+ function b = isvector(options)
+-    b = options.pdf || options.eps;
++b = options.pdf || options.eps;
+ end
+ 
+ function b = isbitmap(options)
+-    b = options.png || options.tif || options.jpg || options.bmp || options.im || options.alpha;
++b = options.png || options.tif || options.jpg || options.bmp || options.im || options.alpha;
+ end
+ 
+ % Helper function
+ function A = make_cell(A)
+-    if ~iscell(A)
+-        A = {A};
+-    end
++if ~iscell(A)
++    A = {A};
+ end
++end
+ 
+ function add_bookmark(fname, bookmark_text)
+-    % Adds a bookmark to the temporary EPS file after %%EndPageSetup
+-    % Read in the file
+-    fh = fopen(fname, 'r');
+-    if fh == -1
+-        error('File %s not found.', fname);
+-    end
+-    try
+-        fstrm = fread(fh, '*char')';
+-    catch ex
+-        fclose(fh);
+-        rethrow(ex);
+-    end
++% Adds a bookmark to the temporary EPS file after %%EndPageSetup
++% Read in the file
++fh = fopen(fname, 'r');
++if fh == -1
++    error('File %s not found.', fname);
++end
++try
++    fstrm = fread(fh, '*char')';
++catch ex
+     fclose(fh);
++    rethrow(ex);
++end
++fclose(fh);
+ 
+-    % Include standard pdfmark prolog to maximize compatibility
+-    fstrm = strrep(fstrm, '%%BeginProlog', sprintf('%%%%BeginProlog\n/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse'));
+-    % Add page bookmark
+-    fstrm = strrep(fstrm, '%%EndPageSetup', sprintf('%%%%EndPageSetup\n[ /Title (%s) /OUT pdfmark',bookmark_text));
++% Include standard pdfmark prolog to maximize compatibility
++fstrm = strrep(fstrm, '%%BeginProlog', sprintf('%%%%BeginProlog\n/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse'));
++% Add page bookmark
++fstrm = strrep(fstrm, '%%EndPageSetup', sprintf('%%%%EndPageSetup\n[ /Title (%s) /OUT pdfmark',bookmark_text));
+ 
+-    % Write out the updated file
+-    fh = fopen(fname, 'w');
+-    if fh == -1
+-        error('Unable to open %s for writing.', fname);
+-    end
+-    try
+-        fwrite(fh, fstrm, 'char*1');
+-    catch ex
+-        fclose(fh);
+-        rethrow(ex);
+-    end
++% Write out the updated file
++fh = fopen(fname, 'w');
++if fh == -1
++    error('Unable to open %s for writing.', fname);
++end
++try
++    fwrite(fh, fstrm, 'char*1');
++catch ex
+     fclose(fh);
++    rethrow(ex);
+ end
++fclose(fh);
++end
+ 
+ function set_tick_mode(Hlims, ax)
+-    % Set the tick mode of linear axes to manual
+-    % Leave log axes alone as these are tricky
+-    M = get(Hlims, [ax 'Scale']);
+-    if ~iscell(M)
+-        M = {M};
+-    end
+-    M = cellfun(@(c) strcmp(c, 'linear'), M);
+-    set(Hlims(M), [ax 'TickMode'], 'manual');
+-    %set(Hlims(M), [ax 'TickLabelMode'], 'manual');  % this hides exponent label in HG2!
++% Set the tick mode of linear axes to manual
++% Leave log axes alone as these are tricky
++M = get(Hlims, [ax 'Scale']);
++if ~iscell(M)
++    M = {M};
+ end
+-
+-function change_rgb_to_cmyk(fname)  % convert RGB => CMYK within an EPS file
+-    % Do post-processing on the eps file
+-    try
+-        % Read the EPS file into memory
+-        fstrm = read_write_entire_textfile(fname);
+-
+-        % Replace all gray-scale colors
+-        fstrm = regexprep(fstrm, '\n([\d.]+) +GC\n', '\n0 0 0 ${num2str(1-str2num($1))} CC\n');
+-        
+-        % Replace all RGB colors
+-        fstrm = regexprep(fstrm, '\n[0.]+ +[0.]+ +[0.]+ +RC\n', '\n0 0 0 1 CC\n');  % pure black
+-        fstrm = regexprep(fstrm, '\n([\d.]+) +([\d.]+) +([\d.]+) +RC\n', '\n${sprintf(''%.4g '',[1-[str2num($1),str2num($2),str2num($3)]/max([str2num($1),str2num($2),str2num($3)]),1-max([str2num($1),str2num($2),str2num($3)])])} CC\n');
+-
+-        % Overwrite the file with the modified contents
+-        read_write_entire_textfile(fname, fstrm);
+-    catch
+-        % never mind - leave as is...
+-    end
++M = cellfun(@(c) strcmp(c, 'linear'), M);
++set(Hlims(M), [ax 'TickMode'], 'manual');
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/ghostscript.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/ghostscript.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/ghostscript.m	(revision 19993)
+@@ -1,4 +1,3 @@
+-function varargout = ghostscript(cmd)
+ %GHOSTSCRIPT  Calls a local GhostScript executable with the input command
+ %
+ % Example:
+@@ -20,172 +19,140 @@
+ %   status - 0 iff command ran without problem.
+ %   result - Output from ghostscript.
+ 
+-% Copyright: Oliver Woodford, 2009-2015, Yair Altman 2015-
+-%{
+-% Thanks to Jonas Dorn for the fix for the title of the uigetdir window on Mac OS.
+-% Thanks to Nathan Childress for the fix to default location on 64-bit Windows systems.
+-% 27/04/11 - Find 64-bit Ghostscript on Windows. Thanks to Paul Durack and
+-%            Shaun Kline for pointing out the issue
+-% 04/05/11 - Thanks to David Chorlian for pointing out an alternative
+-%            location for gs on linux.
++% Copyright: Oliver Woodford, 2009-2013
++
++% Thanks to Jonas Dorn for the fix for the title of the uigetdir window on
++% Mac OS.
++% Thanks to Nathan Childress for the fix to the default location on 64-bit
++% Windows systems.
++% 27/4/11 - Find 64-bit Ghostscript on Windows. Thanks to Paul Durack and
++% Shaun Kline for pointing out the issue
++% 4/5/11 - Thanks to David Chorlian for pointing out an alternative
++% location for gs on linux.
+ % 12/12/12 - Add extra executable name on Windows. Thanks to Ratish
+-%            Punnoose for highlighting the issue.
+-% 28/06/13 - Fix error using GS 9.07 in Linux. Many thanks to Jannick
+-%            Steinbring for proposing the fix.
+-% 24/10/13 - Fix error using GS 9.07 in Linux. Many thanks to Johannes 
+-%            for the fix.
+-% 23/01/14 - Add full path to ghostscript.txt in warning. Thanks to Koen
+-%            Vermeer for raising the issue.
+-% 27/02/15 - If Ghostscript croaks, display suggested workarounds
+-% 30/03/15 - Improved performance by caching status of GS path check, if ok
+-% 14/05/15 - Clarified warning message in case GS path could not be saved
+-% 29/05/15 - Avoid cryptic error in case the ghostscipt path cannot be saved (issue #74)
+-%}
++% Punnoose for highlighting the issue.
++% 28/6/13 - Fix error using GS 9.07 in Linux. Many thanks to Jannick
++% Steinbring for proposing the fix.
++% 24/10/13 - Fix error using GS 9.07 in Linux. Many thanks to Johannes
++% for the fix.
++% 23/01/2014 - Add full path to ghostscript.txt in warning. Thanks to Koen
++% Vermeer for raising the issue.
+ 
+-    try
+-        % Call ghostscript
+-        [varargout{1:nargout}] = system([gs_command(gs_path()) cmd]);
+-    catch err
+-        % Display possible workarounds for Ghostscript croaks
+-        url1 = 'https://github.com/altmany/export_fig/issues/12#issuecomment-61467998';  % issue #12
+-        url2 = 'https://github.com/altmany/export_fig/issues/20#issuecomment-63826270';  % issue #20
+-        hg2_str = ''; if using_hg2, hg2_str = ' or Matlab R2014a'; end
+-        fprintf(2, 'Ghostscript error. Rolling back to GS 9.10%s may possibly solve this:\n * <a href="%s">%s</a> ',hg2_str,url1,url1);
+-        if using_hg2
+-            fprintf(2, '(GS 9.10)\n * <a href="%s">%s</a> (R2014a)',url2,url2);
+-        end
+-        fprintf('\n\n');
+-        if ismac || isunix
+-            url3 = 'https://github.com/altmany/export_fig/issues/27';  % issue #27
+-            fprintf(2, 'Alternatively, this may possibly be due to a font path issue:\n * <a href="%s">%s</a>\n\n',url3,url3);
+-            % issue #20
+-            fpath = which(mfilename);
+-            if isempty(fpath), fpath = [mfilename('fullpath') '.m']; end
+-            fprintf(2, 'Alternatively, if you are using csh, modify shell_cmd from "export..." to "setenv ..."\nat the bottom of <a href="matlab:opentoline(''%s'',174)">%s</a>\n\n',fpath,fpath);
+-        end
+-        rethrow(err);
+-    end
++function varargout = ghostscript(cmd)
++% Initialize any required system calls before calling ghostscript
++shell_cmd = '';
++if isunix
++    shell_cmd = 'export LD_LIBRARY_PATH=""; '; % Avoids an error on Linux with GS 9.07
+ end
++if ismac
++    shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
++end
++% Call ghostscript
++[varargout{1:nargout}] = system(sprintf('%s"%s" %s', shell_cmd, gs_path, cmd));
++end
+ 
+ function path_ = gs_path
+-    % Return a valid path
+-    % Start with the currently set path
+-    path_ = user_string('ghostscript');
+-    % Check the path works
+-    if check_gs_path(path_)
++% Return a valid path
++% Start with the currently set path
++path_ = user_string('ghostscript');
++% Check the path works
++if check_gs_path(path_)
++    return
++end
++% Check whether the binary is on the path
++if ispc
++    bin = {'gswin32c.exe', 'gswin64c.exe', 'gs'};
++else
++    bin = {'gs'};
++end
++for a = 1:numel(bin)
++    path_ = bin{a};
++    if check_store_gs_path(path_)
+         return
+     end
+-    % Check whether the binary is on the path
+-    if ispc
+-        bin = {'gswin32c.exe', 'gswin64c.exe', 'gs'};
+-    else
+-        bin = {'gs'};
+-    end
+-    for a = 1:numel(bin)
+-        path_ = bin{a};
+-        if check_store_gs_path(path_)
+-            return
+-        end
+-    end
+-    % Search the obvious places
+-    if ispc
+-        default_location = 'C:\Program Files\gs\';
++end
++% Search the obvious places
++if ispc
++    default_location = 'C:\Program Files\gs\';
++    dir_list = dir(default_location);
++    if isempty(dir_list)
++        default_location = 'C:\Program Files (x86)\gs\'; % Possible location on 64-bit systems 
+         dir_list = dir(default_location);
+-        if isempty(dir_list)
+-            default_location = 'C:\Program Files (x86)\gs\'; % Possible location on 64-bit systems
+-            dir_list = dir(default_location);
+-        end
+-        executable = {'\bin\gswin32c.exe', '\bin\gswin64c.exe'};
+-        ver_num = 0;
+-        % If there are multiple versions, use the newest
+-        for a = 1:numel(dir_list)
+-            ver_num2 = sscanf(dir_list(a).name, 'gs%g');
+-            if ~isempty(ver_num2) && ver_num2 > ver_num
+-                for b = 1:numel(executable)
+-                    path2 = [default_location dir_list(a).name executable{b}];
+-                    if exist(path2, 'file') == 2
+-                        path_ = path2;
+-                        ver_num = ver_num2;
+-                    end
++    end
++    executable = {'\bin\gswin32c.exe', '\bin\gswin64c.exe'};
++    ver_num = 0;
++    % If there are multiple versions, use the newest
++    for a = 1:numel(dir_list)
++        ver_num2 = sscanf(dir_list(a).name, 'gs%g');
++        if ~isempty(ver_num2) && ver_num2 > ver_num
++            for b = 1:numel(executable)
++                path2 = [default_location dir_list(a).name executable{b}];
++                if exist(path2, 'file') == 2
++                    path_ = path2;
++                    ver_num = ver_num2;
+                 end
+             end
+         end
++    end
++    if check_store_gs_path(path_)
++        return
++    end
++else
++    executable = {'/usr/bin/gs', '/usr/local/bin/gs'};
++    for a = 1:numel(executable)
++        path_ = executable{a};
+         if check_store_gs_path(path_)
+             return
+         end
+-    else
+-        executable = {'/usr/bin/gs', '/usr/local/bin/gs'};
+-        for a = 1:numel(executable)
+-            path_ = executable{a};
+-            if check_store_gs_path(path_)
+-                return
+-            end
+-        end
+     end
+-    % Ask the user to enter the path
+-    while true
+-        if strncmp(computer, 'MAC', 3) % Is a Mac
+-            % Give separate warning as the uigetdir dialogue box doesn't have a
+-            % title
+-            uiwait(warndlg('Ghostscript not found. Please locate the program.'))
+-        end
+-        base = uigetdir('/', 'Ghostcript not found. Please locate the program.');
+-        if isequal(base, 0)
+-            % User hit cancel or closed window
+-            break;
+-        end
+-        base = [base filesep]; %#ok<AGROW>
+-        bin_dir = {'', ['bin' filesep], ['lib' filesep]};
+-        for a = 1:numel(bin_dir)
+-            for b = 1:numel(bin)
+-                path_ = [base bin_dir{a} bin{b}];
+-                if exist(path_, 'file') == 2
+-                    if check_store_gs_path(path_)
+-                        return
+-                    end
++end
++% Ask the user to enter the path
++while 1
++    if strncmp(computer, 'MAC', 3) % Is a Mac
++        % Give separate warning as the uigetdir dialogue box doesn't have a
++        % title
++        uiwait(warndlg('Ghostscript not found. Please locate the program.'))
++    end
++    base = uigetdir('/', 'Ghostcript not found. Please locate the program.');
++    if isequal(base, 0)
++        % User hit cancel or closed window
++        break;
++    end
++    base = [base filesep];
++    bin_dir = {'', ['bin' filesep], ['lib' filesep]};
++    for a = 1:numel(bin_dir)
++        for b = 1:numel(bin)
++            path_ = [base bin_dir{a} bin{b}];
++            if exist(path_, 'file') == 2
++                if check_store_gs_path(path_)
++                    return
+                 end
+             end
+         end
+     end
+-    error('Ghostscript not found. Have you installed it from www.ghostscript.com?');
+ end
++error('Ghostscript not found. Have you installed it from www.ghostscript.com?');
++end
+ 
+ function good = check_store_gs_path(path_)
+-    % Check the path is valid
+-    good = check_gs_path(path_);
+-    if ~good
+-        return
+-    end
+-    % Update the current default path to the path found
+-    if ~user_string('ghostscript', path_)
+-        filename = fullfile(fileparts(which('user_string.m')), '.ignore', 'ghostscript.txt');
+-        warning('Path to ghostscript installation could not be saved in %s (perhaps a permissions issue). You can manually create this file and set its contents to %s, to improve performance in future invocations (this warning is safe to ignore).', filename, path_);
+-        return
+-    end
++% Check the path is valid
++good = check_gs_path(path_);
++if ~good
++    return
+ end
++% Update the current default path to the path found
++if ~user_string('ghostscript', path_)
++    warning('Path to ghostscript installation could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'ghostscript.txt'));
++    return
++end
++end
+ 
+ function good = check_gs_path(path_)
+-    persistent isOk
+-    if isempty(path_)
+-        isOk = false;
+-    elseif ~isequal(isOk,true)
+-        % Check whether the path is valid
+-        [status, message] = system([gs_command(path_) '-h']); %#ok<ASGLU>
+-        isOk = status == 0;
+-    end
+-    good = isOk;
++% Check the path is valid
++shell_cmd = '';
++if ismac
++    shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
+ end
+-
+-function cmd = gs_command(path_)
+-    % Initialize any required system calls before calling ghostscript
+-    % TODO: in Unix/Mac, find a way to determine whether to use "export" (bash) or "setenv" (csh/tcsh)
+-    shell_cmd = '';
+-    if isunix
+-        shell_cmd = 'export LD_LIBRARY_PATH=""; '; % Avoids an error on Linux with GS 9.07
+-    end
+-    if ismac
+-        shell_cmd = 'export DYLD_LIBRARY_PATH=""; ';  % Avoids an error on Mac with GS 9.07
+-    end
+-    % Construct the command string
+-    cmd = sprintf('%s"%s" ', shell_cmd, path_);
++[good, message] = system(sprintf('%s"%s" -h', shell_cmd, path_));
++good = good == 0;
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/print2array.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/print2array.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/print2array.m	(revision 19993)
+@@ -1,4 +1,3 @@
+-function [A, bcol] = print2array(fig, res, renderer, gs_options)
+ %PRINT2ARRAY  Exports a figure to an image array
+ %
+ % Examples:
+@@ -6,7 +5,6 @@
+ %   A = print2array(figure_handle)
+ %   A = print2array(figure_handle, resolution)
+ %   A = print2array(figure_handle, resolution, renderer)
+-%   A = print2array(figure_handle, resolution, renderer, gs_options)
+ %   [A bcol] = print2array(...)
+ %
+ % This function outputs a bitmap image of the given figure, at the desired
+@@ -21,224 +19,180 @@
+ %                resolution. Default: 1.
+ %   renderer - string containing the renderer paramater to be passed to
+ %              print. Default: '-opengl'.
+-%   gs_options - optional ghostscript options (e.g.: '-dNoOutputFonts'). If
+-%                multiple options are needed, enclose in call array: {'-a','-b'}
+ %
+ % OUT:
+ %   A - MxNx3 uint8 image of the figure.
+ %   bcol - 1x3 uint8 vector of the background color
+ 
+-% Copyright (C) Oliver Woodford 2008-2014, Yair Altman 2015-
+-%{
++% Copyright (C) Oliver Woodford 2008-2012
++
+ % 05/09/11: Set EraseModes to normal when using opengl or zbuffer
+-%           renderers. Thanks to Pawel Kocieniewski for reporting the issue.
+-% 21/09/11: Bug fix: unit8 -> uint8! Thanks to Tobias Lamour for reporting it.
+-% 14/11/11: Bug fix: stop using hardcopy(), as it interfered with figure size
+-%           and erasemode settings. Makes it a bit slower, but more reliable.
+-%           Thanks to Phil Trinh and Meelis Lootus for reporting the issues.
++%           renderers. Thanks to Pawel Kocieniewski for reporting the
++%           issue.
++% 21/09/11: Bug fix: unit8 -> uint8! Thanks to Tobias Lamour for reporting
++%           the issue.
++% 14/11/11: Bug fix: stop using hardcopy(), as it interfered with figure
++%           size and erasemode settings. Makes it a bit slower, but more
++%           reliable. Thanks to Phil Trinh and Meelis Lootus for reporting
++%           the issues.
+ % 09/12/11: Pass font path to ghostscript.
+ % 27/01/12: Bug fix affecting painters rendering tall figures. Thanks to
+ %           Ken Campbell for reporting it.
+-% 03/04/12: Bug fix to median input. Thanks to Andy Matthews for reporting it.
++% 03/04/12: Bug fix to median input. Thanks to Andy Matthews for reporting
++%           it.
+ % 26/10/12: Set PaperOrientation to portrait. Thanks to Michael Watts for
+ %           reporting the issue.
+-% 26/02/15: If temp dir is not writable, use the current folder for temp
+-%           EPS/TIF files (Javier Paredes)
+-% 27/02/15: Display suggested workarounds to internal print() error (issue #16)
+-% 28/02/15: Enable users to specify optional ghostscript options (issue #36)
+-% 10/03/15: Fixed minor warning reported by Paul Soderlind; fixed code indentation
+-% 28/05/15: Fixed issue #69: patches with LineWidth==0.75 appear wide (internal bug in Matlab's print() func)
+-% 07/07/15: Fixed issue #83: use numeric handles in HG1
+-%}
+ 
+-    % Generate default input arguments, if needed
+-    if nargin < 2
+-        res = 1;
+-        if nargin < 1
+-            fig = gcf;
+-        end
++function [A, bcol] = print2array(fig, res, renderer)
++% Generate default input arguments, if needed
++if nargin < 2
++    res = 1;
++    if nargin < 1
++        fig = gcf;
+     end
+-    % Warn if output is large
+-    old_mode = get(fig, 'Units');
+-    set(fig, 'Units', 'pixels');
+-    px = get(fig, 'Position');
+-    set(fig, 'Units', old_mode);
+-    npx = prod(px(3:4)*res)/1e6;
+-    if npx > 30
+-        % 30M pixels or larger!
+-        warning('MATLAB:LargeImage', 'print2array generating a %.1fM pixel image. This could be slow and might also cause memory problems.', npx);
+-    end
+-    % Retrieve the background colour
+-    bcol = get(fig, 'Color');
+-    % Set the resolution parameter
+-    res_str = ['-r' num2str(ceil(get(0, 'ScreenPixelsPerInch')*res))];
+-    % Generate temporary file name
+-    tmp_nam = [tempname '.tif'];
++end
++% Warn if output is large
++old_mode = get(fig, 'Units');
++set(fig, 'Units', 'pixels');
++px = get(fig, 'Position');
++set(fig, 'Units', old_mode);
++npx = prod(px(3:4)*res)/1e6;
++if npx > 30
++    % 30M pixels or larger!
++    warning('MATLAB:LargeImage', 'print2array generating a %.1fM pixel image. This could be slow and might also cause memory problems.', npx);
++end
++% Retrieve the background colour
++bcol = get(fig, 'Color');
++% Set the resolution parameter
++res_str = ['-r' num2str(ceil(get(0, 'ScreenPixelsPerInch')*res))];
++% Generate temporary file name
++tmp_nam = [tempname '.tif'];
++if nargin > 2 && strcmp(renderer, '-painters')
++    % Print to eps file
++    tmp_eps = [tempname '.eps'];
++    print2eps(tmp_eps, fig, 0, renderer, '-loose');
+     try
+-        % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
+-        fid = fopen(tmp_nam,'w');
+-        fwrite(fid,1);
+-        fclose(fid);
+-        delete(tmp_nam);  % cleanup
+-        isTempDirOk = true;
+-    catch
+-        % Temp dir is not writable, so use the current folder
+-        [dummy,fname,fext] = fileparts(tmp_nam); %#ok<ASGLU>
+-        fpath = pwd;
+-        tmp_nam = fullfile(fpath,[fname fext]);
+-        isTempDirOk = false;
+-    end
+-    % Enable users to specify optional ghostscript options (issue #36)
+-    if nargin > 3 && ~isempty(gs_options)
+-        if iscell(gs_options)
+-            gs_options = sprintf(' %s',gs_options{:});
+-        elseif ~ischar(gs_options)
+-            error('gs_options input argument must be a string or cell-array of strings');
+-        else
+-            gs_options = [' ' gs_options];
++        % Initialize the command to export to tiff using ghostscript
++        cmd_str = ['-dEPSCrop -q -dNOPAUSE -dBATCH ' res_str ' -sDEVICE=tiff24nc'];
++        % Set the font path
++        fp = font_path();
++        if ~isempty(fp)
++            cmd_str = [cmd_str ' -sFONTPATH="' fp '"'];
+         end
+-    else
+-        gs_options = '';
++        % Add the filenames
++        cmd_str = [cmd_str ' -sOutputFile="' tmp_nam '" "' tmp_eps '"'];
++        % Execute the ghostscript command
++        ghostscript(cmd_str);
++    catch me
++        % Delete the intermediate file
++        delete(tmp_eps);
++        rethrow(me);
+     end
+-    if nargin > 2 && strcmp(renderer, '-painters')
+-        % Print to eps file
+-        if isTempDirOk
+-            tmp_eps = [tempname '.eps'];
+-        else
+-            tmp_eps = fullfile(fpath,[fname '.eps']);
++    % Delete the intermediate file
++    delete(tmp_eps);
++    % Read in the generated bitmap
++    A = imread(tmp_nam);
++    % Delete the temporary bitmap file
++    delete(tmp_nam);
++    % Set border pixels to the correct colour
++    if isequal(bcol, 'none')
++        bcol = [];
++    elseif isequal(bcol, [1 1 1])
++        bcol = uint8([255 255 255]);
++    else
++        for l = 1:size(A, 2)
++            if ~all(reshape(A(:,l,:) == 255, [], 1))
++                break;
++            end
+         end
+-        print2eps(tmp_eps, fig, 0, renderer, '-loose');
+-        try
+-            % Initialize the command to export to tiff using ghostscript
+-            cmd_str = ['-dEPSCrop -q -dNOPAUSE -dBATCH ' res_str ' -sDEVICE=tiff24nc'];
+-            % Set the font path
+-            fp = font_path();
+-            if ~isempty(fp)
+-                cmd_str = [cmd_str ' -sFONTPATH="' fp '"'];
++        for r = size(A, 2):-1:l
++            if ~all(reshape(A(:,r,:) == 255, [], 1))
++                break;
+             end
+-            % Add the filenames
+-            cmd_str = [cmd_str ' -sOutputFile="' tmp_nam '" "' tmp_eps '"' gs_options];
+-            % Execute the ghostscript command
+-            ghostscript(cmd_str);
+-        catch me
+-            % Delete the intermediate file
+-            delete(tmp_eps);
+-            rethrow(me);
+         end
+-        % Delete the intermediate file
+-        delete(tmp_eps);
+-        % Read in the generated bitmap
+-        A = imread(tmp_nam);
+-        % Delete the temporary bitmap file
+-        delete(tmp_nam);
+-        % Set border pixels to the correct colour
+-        if isequal(bcol, 'none')
+-            bcol = [];
+-        elseif isequal(bcol, [1 1 1])
+-            bcol = uint8([255 255 255]);
+-        else
+-            for l = 1:size(A, 2)
+-                if ~all(reshape(A(:,l,:) == 255, [], 1))
+-                    break;
+-                end
++        for t = 1:size(A, 1)
++            if ~all(reshape(A(t,:,:) == 255, [], 1))
++                break;
+             end
+-            for r = size(A, 2):-1:l
+-                if ~all(reshape(A(:,r,:) == 255, [], 1))
+-                    break;
+-                end
++        end
++        for b = size(A, 1):-1:t
++            if ~all(reshape(A(b,:,:) == 255, [], 1))
++                break;
+             end
+-            for t = 1:size(A, 1)
+-                if ~all(reshape(A(t,:,:) == 255, [], 1))
+-                    break;
+-                end
+-            end
+-            for b = size(A, 1):-1:t
+-                if ~all(reshape(A(b,:,:) == 255, [], 1))
+-                    break;
+-                end
+-            end
+-            bcol = uint8(median(single([reshape(A(:,[l r],:), [], size(A, 3)); reshape(A([t b],:,:), [], size(A, 3))]), 1));
+-            for c = 1:size(A, 3)
+-                A(:,[1:l-1, r+1:end],c) = bcol(c);
+-                A([1:t-1, b+1:end],:,c) = bcol(c);
+-            end
+         end
+-    else
+-        if nargin < 3
+-            renderer = '-opengl';
++        bcol = uint8(median(single([reshape(A(:,[l r],:), [], size(A, 3)); reshape(A([t b],:,:), [], size(A, 3))]), 1));
++        for c = 1:size(A, 3)
++            A(:,[1:l-1, r+1:end],c) = bcol(c);
++            A([1:t-1, b+1:end],:,c) = bcol(c);
+         end
+-        err = false;
+-        % Set paper size
+-        old_pos_mode = get(fig, 'PaperPositionMode');
+-        old_orientation = get(fig, 'PaperOrientation');
+-        set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
+-        try
+-            % Workaround for issue #69: patches with LineWidth==0.75 appear wide (internal bug in Matlab's print() function)
+-            fp = [];  % in case we get an error below
+-            fp = findall(fig, 'Type','patch', 'LineWidth',0.75);
+-            set(fp, 'LineWidth',0.5);
+-            % Fix issue #83: use numeric handles in HG1
+-            if ~using_hg2(fig),  fig = double(fig);  end
+-            % Print to tiff file
+-            print(fig, renderer, res_str, '-dtiff', tmp_nam);
+-            % Read in the printed file
+-            A = imread(tmp_nam);
+-            % Delete the temporary file
+-            delete(tmp_nam);
+-        catch ex
+-            err = true;
+-        end
+-        set(fp, 'LineWidth',0.75);  % restore original figure appearance
+-        % Reset paper size
+-        set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
+-        % Throw any error that occurred
+-        if err
+-            % Display suggested workarounds to internal print() error (issue #16)
+-            fprintf(2, 'An error occured with Matlab''s builtin print function.\nTry setting the figure Renderer to ''painters'' or use opengl(''software'').\n\n');
+-            rethrow(ex);
+-        end
+-        % Set the background color
+-        if isequal(bcol, 'none')
+-            bcol = [];
++    end
++else
++    if nargin < 3
++        renderer = '-opengl';
++    end
++    err = false;
++    % Set paper size
++    old_pos_mode = get(fig, 'PaperPositionMode');
++    old_orientation = get(fig, 'PaperOrientation');
++    set(fig, 'PaperPositionMode', 'auto', 'PaperOrientation', 'portrait');
++    try
++        % Print to tiff file
++        print(fig, renderer, res_str, '-dtiff', tmp_nam);
++        % Read in the printed file
++        A = imread(tmp_nam);
++        % Delete the temporary file
++        delete(tmp_nam);
++    catch ex
++        err = true;
++    end
++    % Reset paper size
++    set(fig, 'PaperPositionMode', old_pos_mode, 'PaperOrientation', old_orientation);
++    % Throw any error that occurred
++    if err
++        rethrow(ex);
++    end
++    % Set the background color
++    if isequal(bcol, 'none')
++        bcol = [];
++    else
++        bcol = bcol * 255;
++        if isequal(bcol, round(bcol))
++            bcol = uint8(bcol);
+         else
+-            bcol = bcol * 255;
+-            if isequal(bcol, round(bcol))
+-                bcol = uint8(bcol);
+-            else
+-                bcol = squeeze(A(1,1,:));
+-            end
++            bcol = squeeze(A(1,1,:));
+         end
+     end
+-    % Check the output size is correct
+-    if isequal(res, round(res))
+-        px = round([px([4 3])*res 3]);  % round() to avoid an indexing warning below
+-        if ~isequal(size(A), px)
+-            % Correct the output size
+-            A = A(1:min(end,px(1)),1:min(end,px(2)),:);
+-        end
++end
++% Check the output size is correct
++if isequal(res, round(res))
++    px = [px([4 3])*res 3];
++    if ~isequal(size(A), px)
++        % Correct the output size
++        A = A(1:min(end,px(1)),1:min(end,px(2)),:);
+     end
+ end
++end
+ 
+ % Function to return (and create, where necessary) the font path
+ function fp = font_path()
+-    fp = user_string('gs_font_path');
++fp = user_string('gs_font_path');
++if ~isempty(fp)
++    return
++end
++% Create the path
++% Start with the default path
++fp = getenv('GS_FONTPATH');
++% Add on the typical directories for a given OS
++if ispc
+     if ~isempty(fp)
+-        return
++        fp = [fp ';'];
+     end
+-    % Create the path
+-    % Start with the default path
+-    fp = getenv('GS_FONTPATH');
+-    % Add on the typical directories for a given OS
+-    if ispc
+-        if ~isempty(fp)
+-            fp = [fp ';'];
+-        end
+-        fp = [fp getenv('WINDIR') filesep 'Fonts'];
+-    else
+-        if ~isempty(fp)
+-            fp = [fp ':'];
+-        end
+-        fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
++    fp = [fp getenv('WINDIR') filesep 'Fonts'];
++else
++    if ~isempty(fp)
++        fp = [fp ':'];
+     end
+-    user_string('gs_font_path', fp);
++    fp = [fp '/usr/share/fonts:/usr/local/share/fonts:/usr/share/fonts/X11:/usr/local/share/fonts/X11:/usr/share/fonts/truetype:/usr/local/share/fonts/truetype'];
+ end
++user_string('gs_font_path', fp);
++end
+Index: ../trunk-jpl/externalpackages/export_fig/pdftops.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/pdftops.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/pdftops.m	(revision 19993)
+@@ -28,86 +28,82 @@
+ % Thanks to Christoph Hertel for pointing out a bug in check_xpdf_path
+ % under linux.
+ % 23/01/2014 - Add full path to pdftops.txt in warning.
+-% 27/05/2015 - Fixed alert in case of missing pdftops; fixed code indentation
+ 
+-    % Call pdftops
+-    [varargout{1:nargout}] = system(sprintf('"%s" %s', xpdf_path, cmd));
++% Call pdftops
++[varargout{1:nargout}] = system(sprintf('"%s" %s', xpdf_path, cmd));
+ end
+ 
+ function path_ = xpdf_path
+-    % Return a valid path
+-    % Start with the currently set path
+-    path_ = user_string('pdftops');
+-    % Check the path works
+-    if check_xpdf_path(path_)
+-        return
++% Return a valid path
++% Start with the currently set path
++path_ = user_string('pdftops');
++% Check the path works
++if check_xpdf_path(path_)
++    return
++end
++% Check whether the binary is on the path
++if ispc
++    bin = 'pdftops.exe';
++else
++    bin = 'pdftops';
++end
++if check_store_xpdf_path(bin)
++    path_ = bin;
++    return
++end
++% Search the obvious places
++if ispc
++    path_ = 'C:\Program Files\xpdf\pdftops.exe';
++else
++    path_ = '/usr/local/bin/pdftops';
++end
++if check_store_xpdf_path(path_)
++    return
++end
++% Ask the user to enter the path
++while 1
++    if strncmp(computer,'MAC',3) % Is a Mac
++        % Give separate warning as the uigetdir dialogue box doesn't have a
++        % title
++        uiwait(warndlg('Pdftops not found. Please locate the program, or install xpdf-tools from http://users.phg-online.de/tk/MOSXS/.'))
+     end
+-    % Check whether the binary is on the path
+-    if ispc
+-        bin = 'pdftops.exe';
+-    else
+-        bin = 'pdftops';
++    base = uigetdir('/', 'Pdftops not found. Please locate the program.');
++    if isequal(base, 0)
++        % User hit cancel or closed window
++        break;
+     end
+-    if check_store_xpdf_path(bin)
+-        path_ = bin;
+-        return
++    base = [base filesep];
++    bin_dir = {'', ['bin' filesep], ['lib' filesep]};
++    for a = 1:numel(bin_dir)
++        path_ = [base bin_dir{a} bin];
++        if exist(path_, 'file') == 2
++            break;
++        end
+     end
+-    % Search the obvious places
+-    if ispc
+-        path_ = 'C:\Program Files\xpdf\pdftops.exe';
+-    else
+-        path_ = '/usr/local/bin/pdftops';
+-    end
+     if check_store_xpdf_path(path_)
+         return
+     end
+-    % Ask the user to enter the path
+-    while 1
+-        errMsg = 'Pdftops not found. Please locate the program, or install xpdf-tools from ';
+-        url = 'http://foolabs.com/xpdf';
+-        fprintf(2, '%s\n', [errMsg '<a href="matlab:web(''-browser'',''' url ''');">' url '</a>']);
+-        errMsg = [errMsg url]; %#ok<AGROW>
+-        if strncmp(computer,'MAC',3) % Is a Mac
+-            % Give separate warning as the MacOS uigetdir dialogue box doesn't have a title
+-            uiwait(warndlg(errMsg))
+-        end
+-        base = uigetdir('/', errMsg);
+-        if isequal(base, 0)
+-            % User hit cancel or closed window
+-            break;
+-        end
+-        base = [base filesep]; %#ok<AGROW>
+-        bin_dir = {'', ['bin' filesep], ['lib' filesep]};
+-        for a = 1:numel(bin_dir)
+-            path_ = [base bin_dir{a} bin];
+-            if exist(path_, 'file') == 2
+-                break;
+-            end
+-        end
+-        if check_store_xpdf_path(path_)
+-            return
+-        end
+-    end
+-    error('pdftops executable not found.');
+ end
++error('pdftops executable not found.');
++end
+ 
+ function good = check_store_xpdf_path(path_)
+-    % Check the path is valid
+-    good = check_xpdf_path(path_);
+-    if ~good
+-        return
+-    end
+-    % Update the current default path to the path found
+-    if ~user_string('pdftops', path_)
+-        warning('Path to pdftops executable could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'pdftops.txt'));
+-        return
+-    end
++% Check the path is valid
++good = check_xpdf_path(path_);
++if ~good
++    return
+ end
++% Update the current default path to the path found
++if ~user_string('pdftops', path_)
++    warning('Path to pdftops executable could not be saved. Enter it manually in %s.', fullfile(fileparts(which('user_string.m')), '.ignore', 'pdftops.txt'));
++    return
++end
++end
+ 
+ function good = check_xpdf_path(path_)
+-    % Check the path is valid
+-    [good, message] = system(sprintf('"%s" -h', path_)); %#ok<ASGLU>
+-    % system returns good = 1 even when the command runs
+-    % Look for something distinct in the help text
+-    good = ~isempty(strfind(message, 'PostScript'));
++% Check the path is valid
++[good, message] = system(sprintf('"%s" -h', path_));
++% system returns good = 1 even when the command runs
++% Look for something distinct in the help text
++good = ~isempty(strfind(message, 'PostScript'));
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/isolate_axes.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/isolate_axes.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/isolate_axes.m	(revision 19993)
+@@ -1,4 +1,3 @@
+-function fh = isolate_axes(ah, vis)
+ %ISOLATE_AXES Isolate the specified axes in a figure on their own
+ %
+ % Examples:
+@@ -22,109 +21,99 @@
+ % Copyright (C) Oliver Woodford 2011-2013
+ 
+ % Thank you to Rosella Blatt for reporting a bug to do with axes in GUIs
+-% 16/03/12: Moved copyfig to its own function. Thanks to Bob Fratantonio
+-%           for pointing out that the function is also used in export_fig.m
+-% 12/12/12: Add support for isolating uipanels. Thanks to michael for suggesting it
+-% 08/10/13: Bug fix to allchildren suggested by Will Grant (many thanks!)
+-% 05/12/13: Bug fix to axes having different units. Thanks to Remington Reid for reporting
+-% 21/04/15: Bug fix for exporting uipanels with legend/colorbar on HG1 (reported by Alvaro
+-%           on FEX page as a comment on 24-Apr-2014); standardized indentation & help section
+-% 22/04/15: Bug fix: legends and colorbars were not exported when exporting axes handle in HG2
++% 16/3/2012 Moved copyfig to its own function. Thanks to Bob Fratantonio
++% for pointing out that the function is also used in export_fig.m.
++% 12/12/12 - Add support for isolating uipanels. Thanks to michael for
++% suggesting it.
++% 08/10/13 - Bug fix to allchildren suggested by Will Grant (many thanks!).
++% 05/12/13 - Bug fix to axes having different units. Thanks to Remington
++% Reid for reporting the issue.
+ 
+-    % Make sure we have an array of handles
+-    if ~all(ishandle(ah))
+-        error('ah must be an array of handles');
++function fh = isolate_axes(ah, vis)
++% Make sure we have an array of handles
++if ~all(ishandle(ah))
++    error('ah must be an array of handles');
++end
++% Check that the handles are all for axes or uipanels, and are all in the same figure
++fh = ancestor(ah(1), 'figure');
++nAx = numel(ah);
++for a = 1:nAx
++    if ~ismember(get(ah(a), 'Type'), {'axes', 'uipanel'})
++        error('All handles must be axes or uipanel handles.');
+     end
+-    % Check that the handles are all for axes or uipanels, and are all in the same figure
+-    fh = ancestor(ah(1), 'figure');
+-    nAx = numel(ah);
+-    for a = 1:nAx
+-        if ~ismember(get(ah(a), 'Type'), {'axes', 'uipanel'})
+-            error('All handles must be axes or uipanel handles.');
+-        end
+-        if ~isequal(ancestor(ah(a), 'figure'), fh)
+-            error('Axes must all come from the same figure.');
+-        end
++    if ~isequal(ancestor(ah(a), 'figure'), fh)
++        error('Axes must all come from the same figure.');
+     end
+-    % Tag the objects so we can find them in the copy
+-    old_tag = get(ah, 'Tag');
+-    if nAx == 1
+-        old_tag = {old_tag};
++end
++% Tag the objects so we can find them in the copy
++old_tag = get(ah, 'Tag');
++if nAx == 1
++    old_tag = {old_tag};
++end
++set(ah, 'Tag', 'ObjectToCopy');
++% Create a new figure exactly the same as the old one
++fh = copyfig(fh); %copyobj(fh, 0);
++if nargin < 2 || ~vis
++    set(fh, 'Visible', 'off');
++end
++% Reset the object tags
++for a = 1:nAx
++    set(ah(a), 'Tag', old_tag{a});
++end
++% Find the objects to save
++ah = findall(fh, 'Tag', 'ObjectToCopy');
++if numel(ah) ~= nAx
++    close(fh);
++    error('Incorrect number of objects found.');
++end
++% Set the axes tags to what they should be
++for a = 1:nAx
++    set(ah(a), 'Tag', old_tag{a});
++end
++% Keep any legends and colorbars which overlap the subplots
++lh = findall(fh, 'Type', 'axes', '-and', {'Tag', 'legend', '-or', 'Tag', 'Colorbar'});
++nLeg = numel(lh);
++if nLeg > 0
++    set([ah(:); lh(:)], 'Units', 'normalized');
++    ax_pos = get(ah, 'OuterPosition');
++    if nAx > 1
++        ax_pos = cell2mat(ax_pos(:));
+     end
+-    set(ah, 'Tag', 'ObjectToCopy');
+-    % Create a new figure exactly the same as the old one
+-    fh = copyfig(fh); %copyobj(fh, 0);
+-    if nargin < 2 || ~vis
+-        set(fh, 'Visible', 'off');
++    ax_pos(:,3:4) = ax_pos(:,3:4) + ax_pos(:,1:2);
++    leg_pos = get(lh, 'OuterPosition');
++    if nLeg > 1;
++        leg_pos = cell2mat(leg_pos);
+     end
+-    % Reset the object tags
+-    for a = 1:nAx
+-        set(ah(a), 'Tag', old_tag{a});
+-    end
+-    % Find the objects to save
+-    ah = findall(fh, 'Tag', 'ObjectToCopy');
+-    if numel(ah) ~= nAx
+-        close(fh);
+-        error('Incorrect number of objects found.');
+-    end
+-    % Set the axes tags to what they should be
+-    for a = 1:nAx
+-        set(ah(a), 'Tag', old_tag{a});
+-    end
+-    % Keep any legends and colorbars which overlap the subplots
+-    % Note: in HG1 these are axes objects; in HG2 they are separate objects, therefore we
+-    %       don't test for the type, only the tag (hopefully nobody but Matlab uses them!)
+-    lh = findall(fh, 'Tag', 'legend', '-or', 'Tag', 'Colorbar');
+-    nLeg = numel(lh);
+-    if nLeg > 0
+-        set([ah(:); lh(:)], 'Units', 'normalized');
+-        try
+-            ax_pos = get(ah, 'OuterPosition'); % axes and figures have the OuterPosition property
+-        catch
+-            ax_pos = get(ah, 'Position'); % uipanels only have Position, not OuterPosition
+-        end
+-        if nAx > 1
+-            ax_pos = cell2mat(ax_pos(:));
+-        end
+-        ax_pos(:,3:4) = ax_pos(:,3:4) + ax_pos(:,1:2);
+-        try
+-            leg_pos = get(lh, 'OuterPosition');
+-        catch
+-            leg_pos = get(lh, 'Position');  % No OuterPosition in HG2, only in HG1
+-        end
+-        if nLeg > 1;
+-            leg_pos = cell2mat(leg_pos);
+-        end
+-        leg_pos(:,3:4) = leg_pos(:,3:4) + leg_pos(:,1:2);
+-        ax_pos = shiftdim(ax_pos, -1);
+-        % Overlap test
+-        M = bsxfun(@lt, leg_pos(:,1), ax_pos(:,:,3)) & ...
+-            bsxfun(@lt, leg_pos(:,2), ax_pos(:,:,4)) & ...
+-            bsxfun(@gt, leg_pos(:,3), ax_pos(:,:,1)) & ...
+-            bsxfun(@gt, leg_pos(:,4), ax_pos(:,:,2));
+-        ah = [ah; lh(any(M, 2))];
+-    end
+-    % Get all the objects in the figure
+-    axs = findall(fh);
+-    % Delete everything except for the input objects and associated items
+-    delete(axs(~ismember(axs, [ah; allchildren(ah); allancestors(ah)])));
++    leg_pos(:,3:4) = leg_pos(:,3:4) + leg_pos(:,1:2);
++    ax_pos = shiftdim(ax_pos, -1);
++    % Overlap test
++    M = bsxfun(@lt, leg_pos(:,1), ax_pos(:,:,3)) & ...
++        bsxfun(@lt, leg_pos(:,2), ax_pos(:,:,4)) & ...
++        bsxfun(@gt, leg_pos(:,3), ax_pos(:,:,1)) & ...
++        bsxfun(@gt, leg_pos(:,4), ax_pos(:,:,2));
++    ah = [ah; lh(any(M, 2))];
+ end
++% Get all the objects in the figure
++axs = findall(fh);
++% Delete everything except for the input objects and associated items
++delete(axs(~ismember(axs, [ah; allchildren(ah); allancestors(ah)])));
++end
+ 
+ function ah = allchildren(ah)
+-    ah = findall(ah);
+-    if iscell(ah)
+-        ah = cell2mat(ah);
+-    end
+-    ah = ah(:);
++ah = findall(ah);
++if iscell(ah)
++    ah = cell2mat(ah);
+ end
++ah = ah(:);
++end
+ 
+ function ph = allancestors(ah)
+-    ph = [];
+-    for a = 1:numel(ah)
+-        h = get(ah(a), 'parent');
+-        while h ~= 0
+-            ph = [ph; h];
+-            h = get(h, 'parent');
+-        end
++ph = [];
++for a = 1:numel(ah)
++    h = get(ah(a), 'parent');
++    while h ~= 0
++        ph = [ph; h];
++        h = get(h, 'parent');
+     end
+ end
++end
+Index: ../trunk-jpl/externalpackages/export_fig/fix_lines.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/fix_lines.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/fix_lines.m	(revision 19993)
+@@ -37,16 +37,8 @@
+ % Thank you to Laurence K for suggesting the check to see if the file was
+ % opened.
+ 
+-% 01/03/15: Issue #20: warn users if using this function in HG2 (R2014b+)
+-% 27/03/15: Fixed out of memory issue with enormous EPS files (generated by print() with OpenGL renderer), related to issue #39
+-
+ function fstrm = fix_lines(fstrm, fname2)
+ 
+-% Issue #20: warn users if using this function in HG2 (R2014b+)
+-if using_hg2
+-    warning('export_fig:hg2','The fix_lines function should not be used in this Matlab version.');
+-end
+-    
+ if nargout == 0 || nargin > 1
+     if nargin < 2
+         % Overwrite the input file
+@@ -121,6 +113,11 @@
+     end
+ end
+ 
++% Isolate line style definition section
++first_sec = strfind(fstrm, '% line types:');
++[second_sec, remaining] = strtok(fstrm(first_sec+1:end), '/');
++[remaining, remaining] = strtok(remaining, '%');
++
+ % Define the new styles, including the new GR format
+ % Dot and dash lengths have two parts: a constant amount plus a line width
+ % variable amount. The constant amount comes after dpi2point, and the
+@@ -137,12 +134,7 @@
+              '/GR { [0 dpi2point mul 4 dpi2point mul] 0 setdash 1 setlinecap } bdef'}; % Grid lines - dot spacing remains constant
+ 
+ % Construct the output
+-% This is the original (memory-intensive) code:
+-%first_sec = strfind(fstrm, '% line types:'); % Isolate line style definition section
+-%[second_sec, remaining] = strtok(fstrm(first_sec+1:end), '/');
+-%[remaining, remaining] = strtok(remaining, '%');
+-%fstrm = [fstrm(1:first_sec) second_sec sprintf('%s\r', new_style{:}) remaining];
+-fstrm = regexprep(fstrm,'(% line types:.+?)/.+?%',['$1',sprintf('%s\r',new_style{:}),'%']);
++fstrm = [fstrm(1:first_sec) second_sec sprintf('%s\r', new_style{:}) remaining];
+ 
+ % Write the output file
+ if nargout == 0 || nargin > 1
+Index: ../trunk-jpl/externalpackages/export_fig/crop_borders.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/crop_borders.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/crop_borders.m	(revision 19993)
+@@ -1,125 +1,81 @@
+-function [A, vA, vB, bb_rel] = crop_borders(A, bcol, padding)
+ %CROP_BORDERS Crop the borders of an image or stack of images
+ %
+-%   [B, vA, vB, bb_rel] = crop_borders(A, bcol, [padding])
++%   [B, v] = crop_borders(A, bcol, [padding])
+ %
+ %IN:
+ %   A - HxWxCxN stack of images.
+ %   bcol - Cx1 background colour vector.
+-%   padding - scalar indicating how much padding to have in relation to
+-%             the cropped-image-size (0<=padding<=1). Default: 0
++%   padding - scalar indicating how many pixels padding to have. Default: 0.
+ %
+ %OUT:
+ %   B - JxKxCxN cropped stack of images.
+-%   vA     - coordinates in A that contain the cropped image
+-%   vB     - coordinates in B where the cropped version of A is placed
+-%   bb_rel - relative bounding box (used for eps-cropping)
++%   v - 1x4 vector of start and end indices for first two dimensions, s.t.
++%       B = A(v(1):v(2),v(3):v(4),:,:).
+ 
+-% 06/03/15: Improved image cropping thanks to Oscar Hartogensis
+-% 08/06/15: Fixed issue #76: case of transparent figure bgcolor
+-
+-    if nargin < 3
+-        padding = 0;
+-    end
+-    [h, w, c, n] = size(A);
+-    if isempty(bcol)  % case of transparent bgcolor
+-        bcol = A(ceil(end/2),1,:,1);
+-    end
+-    if isscalar(bcol)
+-        bcol = bcol(ones(c, 1));
+-    end
+-
+-    % Crop margin from left
+-    bail = false;
+-    for l = 1:w
+-        for a = 1:c
+-            if ~all(col(A(:,l,a,:)) == bcol(a))
+-                bail = true;
+-                break;
+-            end
+-        end
+-        if bail
++function [A, v] = crop_borders(A, bcol, padding)
++if nargin < 3
++    padding = 0;
++end
++[h, w, c, n] = size(A);
++if isscalar(bcol)
++    bcol = bcol(ones(c, 1));
++end
++bail = false;
++for l = 1:w
++    for a = 1:c
++        if ~all(col(A(:,l,a,:)) == bcol(a))
++            bail = true;
+             break;
+         end
+     end
+-
+-    % Crop margin from right
+-    bcol = A(ceil(end/2),w,:,1);
+-    bail = false;
+-    for r = w:-1:l
+-        for a = 1:c
+-            if ~all(col(A(:,r,a,:)) == bcol(a))
+-                bail = true;
+-                break;
+-            end
+-        end
+-        if bail
++    if bail
++        break;
++    end
++end
++bcol = A(ceil(end/2),w,:,1);
++bail = false;
++for r = w:-1:l
++    for a = 1:c
++        if ~all(col(A(:,r,a,:)) == bcol(a))
++            bail = true;
+             break;
+         end
+     end
+-
+-    % Crop margin from top
+-    bcol = A(1,ceil(end/2),:,1);
+-    bail = false;
+-    for t = 1:h
+-        for a = 1:c
+-            if ~all(col(A(t,:,a,:)) == bcol(a))
+-                bail = true;
+-                break;
+-            end
+-        end
+-        if bail
++    if bail
++        break;
++    end
++end
++bcol = A(1,ceil(end/2),:,1);
++bail = false;
++for t = 1:h
++    for a = 1:c
++        if ~all(col(A(t,:,a,:)) == bcol(a))
++            bail = true;
+             break;
+         end
+     end
+-
+-    % Crop margin from bottom
+-    bcol = A(h,ceil(end/2),:,1);
+-    bail = false;
+-    for b = h:-1:t
+-        for a = 1:c
+-            if ~all(col(A(b,:,a,:)) == bcol(a))
+-                bail = true;
+-                break;
+-            end
+-        end
+-        if bail
++    if bail
++        break;
++    end
++end
++bcol = A(h,ceil(end/2),:,1);
++bail = false;
++for b = h:-1:t
++    for a = 1:c
++        if ~all(col(A(b,:,a,:)) == bcol(a))
++            bail = true;
+             break;
+         end
+     end
+-
+-    % Crop the background, leaving one boundary pixel to avoid bleeding on resize
+-    %v = [max(t-padding, 1) min(b+padding, h) max(l-padding, 1) min(r+padding, w)];
+-    %A = A(v(1):v(2),v(3):v(4),:,:);
+-    if padding == 0  % no padding
+-        padding = 1;
+-    elseif abs(padding) < 1  % pad value is a relative fraction of image size
+-        padding = sign(padding)*round(mean([b-t r-l])*abs(padding)); % ADJUST PADDING
+-    else  % pad value is in units of 1/72" points
+-        padding = round(padding);  % fix cases of non-integer pad value
++    if bail
++        break;
+     end
+-
+-    if padding > 0  % extra padding
+-        % Create an empty image, containing the background color, that has the
+-        % cropped image size plus the padded border
+-        B = repmat(bcol,(b-t)+1+padding*2,(r-l)+1+padding*2);
+-        % vA - coordinates in A that contain the cropped image
+-        vA = [t b l r];
+-        % vB - coordinates in B where the cropped version of A will be placed
+-        vB = [padding+1, (b-t)+1+padding, padding+1, (r-l)+1+padding];
+-        % Place the original image in the empty image
+-        B(vB(1):vB(2), vB(3):vB(4), :) = A(vA(1):vA(2), vA(3):vA(4), :);
+-        A = B;
+-    else  % extra cropping
+-        vA = [t-padding b+padding l-padding r+padding];
+-        A = A(vA(1):vA(2), vA(3):vA(4), :);
+-        vB = [NaN NaN NaN NaN];
+-    end
+-
+-    % For EPS cropping, determine the relative BoundingBox - bb_rel
+-    bb_rel = [l-1 h-b-1 r+1 h-t+1]./[w h w h];
+ end
++% Crop the background, leaving one boundary pixel to avoid bleeding on resize
++v = [max(t-padding, 1) min(b+padding, h) max(l-padding, 1) min(r+padding, w)];
++A = A(v(1):v(2),v(3):v(4),:,:);
++end
+ 
+ function A = col(A)
+-    A = A(:);
++A = A(:);
+ end
+Index: ../trunk-jpl/externalpackages/export_fig/append_pdfs.m
+===================================================================
+--- ../trunk-jpl/externalpackages/export_fig/append_pdfs.m	(revision 19992)
++++ ../trunk-jpl/externalpackages/export_fig/append_pdfs.m	(revision 19993)
+@@ -32,40 +32,17 @@
+ % Issue resolved (to best of my ability) 1/6/2011, using the prepress
+ % setting
+ 
+-% 26/02/15: If temp dir is not writable, use the output folder for temp
+-%           files when appending (Javier Paredes); sanity check of inputs
+-
+ function append_pdfs(varargin)
+-
+-if nargin < 2,  return;  end  % sanity check
+-
+ % Are we appending or creating a new file
+ append = exist(varargin{1}, 'file') == 2;
+-output = [tempname '.pdf'];
+-try
+-    % Ensure that the temp dir is writable (Javier Paredes 26/2/15)
+-    fid = fopen(output,'w');
+-    fwrite(fid,1);
+-    fclose(fid);
+-    delete(output);
+-    isTempDirOk = true;
+-catch
+-    % Temp dir is not writable, so use the output folder
+-    [dummy,fname,fext] = fileparts(output); %#ok<ASGLU>
+-    fpath = fileparts(varargin{1});
+-    output = fullfile(fpath,[fname fext]);
+-    isTempDirOk = false;
+-end
+-if ~append
++if append
++    output = [tempname '.pdf'];
++else
+     output = varargin{1};
+     varargin = varargin(2:end);
+ end
+ % Create the command file
+-if isTempDirOk
+-    cmdfile = [tempname '.txt'];
+-else
+-    cmdfile = fullfile(fpath,[fname '.txt']);
+-end
++cmdfile = [tempname '.txt'];
+ fh = fopen(cmdfile, 'w');
+ fprintf(fh, '-q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile="%s" -f', output);
+ fprintf(fh, ' "%s"', varargin{:});
Index: /issm/oecreview/Archive/19101-20495/ISSM-19993-19994.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19993-19994.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19993-19994.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test513.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test513.m	(revision 19993)
++++ ../trunk-jpl/test/NightlyRun/test513.m	(revision 19994)
+@@ -25,7 +25,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Gradient','Misfits','FrictionCoefficient','Pressure','Vel','Vx','Vy','Vz','Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={5e-08,3e-10,1e-10,1e-10,3e-6,4e-6,4e-6,3e-6,2e-6,2e-06};
++field_tolerances={5e-08,4e-10,1e-10,1e-10,3e-6,4e-6,4e-6,3e-6,2e-6,2e-06};
+ field_values={...
+ 	(md.results.SteadystateSolution.Gradient1),...
+ 	md.results.SteadystateSolution.J,...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19994-19995.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19994-19995.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19994-19995.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19994)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 19995)
+@@ -48,5 +48,5 @@
+ 
+ #print instructions
+ echo "== Now: cd src/ "
+-echo "== qsub script.queue "
++echo "== sbatch script.queue "
+ echo "== Then run reconfigure script generated by PETSc and follow instructions"
Index: /issm/oecreview/Archive/19101-20495/ISSM-19995-19996.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19995-19996.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19995-19996.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19995)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19996)
+@@ -8,9 +8,9 @@
+ classdef lonestar
+     properties (SetAccess=public)  
+ 		 % {{{
+-		 name          = 'lonestar.tacc.utexas.edu'
++		 name          = 'ls5.tacc.utexas.edu'
+ 		 login         = '';
+-		 modules        = {'mkl/10.3'};
++		 modules        = {};
+ 		 numnodes      = 1;
+ 		 cpuspernode   = 12;
+ 		 port          = 0;
+@@ -112,7 +112,6 @@
+ 			 fprintf(fid,'#!/bin/bash\n');
+ 			 fprintf(fid,'#SBATCH -J %s\n',modelname);
+ 			 fprintf(fid,'#SBATCH -p %s \n',cluster.queue);
+-			 fprintf(fid,'#SBATCH -R y\n');
+ 			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#SBATCH -e %s.errlog \n',modelname);
+ 			 fprintf(fid,'#SBATCH -n %i \n',cluster.numnodes*12);
+@@ -165,10 +164,10 @@
+ 
+ 			 disp('launching solution sequence on remote cluster');
+ 			 if ~isempty(restart)
+-				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && qsub ' modelname '.queue '];
++				 launchcommand=['cd ' cluster.executionpath ' && cd ' dirname ' && hostname && sbatch ' modelname '.queue '];
+ 			 else
+ 				 launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+-					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
++					 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && sbatch ' modelname '.queue '];
+ 			 end
+ 			 issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 		 end %}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-19996-19997.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19996-19997.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19996-19997.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19996)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 19997)
+@@ -19,6 +19,7 @@
+ 		 executionpath = '';
+ 		 interactive   = 0;
+ 		 time          = 24*60*60;
++		 email         = '';
+ 	 end
+ 	 %}}}
+ 	 methods
+@@ -47,6 +48,7 @@
+ 			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+ 			 disp(sprintf('    interactive: %i',cluster.interactive));
+ 			 disp(sprintf('    time: %i',cluster.time));
++			 disp(sprintf('    email: %i',cluster.email));
+ 		 end
+ 		 %}}}
+ 		 function numprocs=np(cluster) % {{{
+@@ -120,6 +122,10 @@
+ 			 for i=1:numel(cluster.modules),
+ 				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
+ 			 end
++			 if length(find(cluster.email=='@'))>0
++				 fprintf(fid,'#SBATCH --mail-user=%s\n',cluster.email);
++				 fprintf(fid,'#SBATCH --mail-type=end\n');
++			 end
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
Index: /issm/oecreview/Archive/19101-20495/ISSM-19997-19998.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19997-19998.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19997-19998.diff	(revision 20498)
@@ -0,0 +1,51 @@
+Index: ../trunk-jpl/src/m/classes/toolkits.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.py	(revision 19997)
++++ ../trunk-jpl/src/m/classes/toolkits.py	(revision 19998)
+@@ -5,6 +5,7 @@
+ from fielddisplay import fielddisplay
+ from EnumDefinitions import *
+ from checkfield import checkfield
++from issmgslsolver import issmgslsolver
+ 
+ class toolkits(object):
+ 	"""
+Index: ../trunk-jpl/src/m/solvers/issmmumpssolver.py
+===================================================================
+--- ../trunk-jpl/src/m/solvers/issmmumpssolver.py	(revision 19997)
++++ ../trunk-jpl/src/m/solvers/issmmumpssolver.py	(revision 19998)
+@@ -9,7 +9,11 @@
+ 	#retrieve options provided in varargin
+ 	arguments=pairoptions.pairoptions(*args) 
+ 	
+-	options=[['toolkit','issm'],['mat_type','mpidense'],['vec_type','mpi'],['solver_type','mumps']];
++	options=OrderedDict()
++	options['toolkit'] = 'issm'
++	options['mat_type'] = 'mpidense'
++	options['vec_type'] = 'mpi'
++	options['solver_type'] = 'mumps'
+ 
+ 	#now, go through our arguments, and write over default options.
+ 	for i in range(len(arguments.list)):
+Index: ../trunk-jpl/src/m/solvers/issmgslsolver.py
+===================================================================
+--- ../trunk-jpl/src/m/solvers/issmgslsolver.py	(revision 19997)
++++ ../trunk-jpl/src/m/solvers/issmgslsolver.py	(revision 19998)
+@@ -1,3 +1,4 @@
++from collections import OrderedDict
+ import pairoptions
+ 
+ def issmgslsolver(*args):
+@@ -9,7 +10,11 @@
+ 	#retrieve options provided in varargin
+ 	arguments=pairoptions.pairoptions(*args) 
+ 	
+-	options=[['toolkit','issm'],['mat_type','dense'],['vec_type','seq'],['solver_type','gsl']];
++	options=OrderedDict()
++	options['toolkit'] = 'issm'
++	options['mat_type'] = 'dense'
++	options['vec_type'] = 'seq'
++	options['solver_type'] = 'gsl'
+ 
+ 	#now, go through our arguments, and write over default options.
+ 	for i in range(len(arguments.list)):
Index: /issm/oecreview/Archive/19101-20495/ISSM-19998-19999.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19998-19999.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19998-19999.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 19998)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 19999)
+@@ -20,7 +20,7 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	1e-09,3.2e-10,3.2e-10,1e-10,1e-13,1e-13,1e-13,...
++	1e-09,3.0e-9,3.0e-9,1e-10,1e-13,1e-13,1e-13,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
Index: /issm/oecreview/Archive/19101-20495/ISSM-19999-20000.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-19999-20000.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-19999-20000.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 19999)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20000)
+@@ -4,24 +4,26 @@
+ 
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+-				 --disable-static \
+-				 --without-kriging \
+-				 --without-kml \
+-				 --without-Gia \
+-				 --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+-				 --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				 --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
+-				 --with-matlab-dir=$MATLAB_DIR \
+-				 --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-				 --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-				 --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+-				 --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-				 --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-				 --with-numthreads=4  \
+-				 --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+-				 --enable-development '
++				--disable-static \
++				--without-kriging \
++				--without-kml \
++				--without-Gia \
++				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
++				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
++				--with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
++				--with-matlab-dir=$MATLAB_DIR \
++				--with-python-dir=/usr\
++				--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++				--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++				--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++				--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
++				--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++				--with-numthreads=4  \
++				--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++				--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++				--enable-development '
+ 
+ #MATLAB path
+ MATLAB_PATH="/usr/local/MATLAB/R2015a"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20000-20001.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20000-20001.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20000-20001.diff	(revision 20498)
@@ -0,0 +1,130 @@
+Index: ../trunk-jpl/test/NightlyRun/test3108.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3108.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3108.py	(revision 20001)
+@@ -15,7 +15,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.timestepping.time_step=0
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,ThermalSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3103.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3103.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3103.py	(revision 20001)
+@@ -15,7 +15,7 @@
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.stressbalance.requested_outputs=['default','StressTensorxx','StressTensoryy','StressTensorzz','StressTensorxy','StressTensorxz','StressTensoryz']
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3109.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3109.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3109.py	(revision 20001)
+@@ -19,7 +19,7 @@
+ md.transient.issmb=True
+ md.transient.isthermal=True
+ md.transient.isgroundingline=False
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,TransientSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3104.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3104.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3104.py	(revision 20001)
+@@ -14,7 +14,7 @@
+ md.extrude(3,2.)
+ md=setflowequation(md,'FS','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3105.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3105.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3105.py	(revision 20001)
+@@ -13,7 +13,7 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3106.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3106.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3106.py	(revision 20001)
+@@ -17,7 +17,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.masstransport.stabilization=3
+ md.masstransport.spcthickness=md.geometry.thickness
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3101.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3101.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3101.py	(revision 20001)
+@@ -14,7 +14,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.stressbalance.requested_outputs=['default','DeviatoricStressxx','DeviatoricStressyy','DeviatoricStressxy']
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3110.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3110.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3110.py	(revision 20001)
+@@ -13,7 +13,7 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.transient.requested_outputs=['IceVolume']
+ 
+ md.autodiff.isautodiff=True
+Index: ../trunk-jpl/test/NightlyRun/test3107.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3107.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3107.py	(revision 20001)
+@@ -14,7 +14,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.extrude(5,3.)
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md.autodiff.isautodiff=True
+ md=solve(md,MasstransportSolutionEnum())
+ 
+Index: ../trunk-jpl/test/NightlyRun/test3102.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3102.py	(revision 20000)
++++ ../trunk-jpl/test/NightlyRun/test3102.py	(revision 20001)
+@@ -15,7 +15,7 @@
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.autodiff.isautodiff=True
+-md.toolkits.DefaultAnalysis=issmmumpssolver()
++
+ md=solve(md,StressbalanceSolutionEnum())
+ 
+ #Fields and tolerances to track changes
Index: /issm/oecreview/Archive/19101-20495/ISSM-20001-20002.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20001-20002.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20001-20002.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20001)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20002)
+@@ -84,7 +84,7 @@
+ #retrieve directly
+ dVdh_ad=md.results.MasstransportSolution.AutodiffJacobian
+ 
+-print "dV/dh: analytical:  #16.16g\n       using adolc:  #16.16g\n" % (dVdh_an,dVdh_ad)
++print "dV/dh: analytical:  {0}\n       using adolc:  {1}\n".format(dVdh_an,dVdh_ad)
+ 
+ #Fields and tolerances to track changes
+ field_names     =['dV/dh-dV/dh0']
+Index: ../trunk-jpl/src/m/classes/independent.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/independent.py	(revision 20001)
++++ ../trunk-jpl/src/m/classes/independent.py	(revision 20002)
+@@ -1,7 +1,7 @@
+ import numpy
+ from pairoptions import pairoptions
+ from fielddisplay import fielddisplay
+-import MatlabFuncs as m
++from MatlabFuncs import *
+ from EnumDefinitions import *
+ 
+ class independent(object):
+Index: ../trunk-jpl/src/m/classes/autodiff.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/autodiff.py	(revision 20001)
++++ ../trunk-jpl/src/m/classes/autodiff.py	(revision 20002)
+@@ -108,7 +108,7 @@
+ 			indices=numpy.zeros(num_dependent_objects)
+ 
+ 			for i,dep in enumerate(self.dependents):
+-				names[i]=dep.name
++				names.append(dep.name)
+ 				types[i]=dep.typetoscalar()
+ 				indices[i]=dep.index
+ 
+Index: ../trunk-jpl/src/m/classes/dependent.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/dependent.py	(revision 20001)
++++ ../trunk-jpl/src/m/classes/dependent.py	(revision 20002)
+@@ -2,7 +2,7 @@
+ import numpy
+ from pairoptions import pairoptions
+ from fielddisplay import fielddisplay
+-import MatlabFuncs as m
++from MatlabFuncs import *
+ from EnumDefinitions import *
+ from MeshProfileIntersection import MeshProfileIntersection
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20002-20003.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20002-20003.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20002-20003.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20002)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20003)
+@@ -89,4 +89,4 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
+-PYTHON_NROPTIONS="--benchmark='adolc' -i 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119"
++PYTHON_NROPTIONS="--benchmark='adolc' -i 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3101 3102 3103 3104 3105 3106 3107 3108 3109 3119"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20003-20004.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20003-20004.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20003-20004.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/matice.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/matice.js	(revision 20003)
++++ ../trunk-jpl/src/m/classes/matice.js	(revision 20004)
+@@ -101,7 +101,7 @@
+ 				checkfield(md,'fieldname','materials.mantle_shear_modulus','>',0,'numel',1);
+ 				checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
+ 			}
+-			if ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),1)){
++			if (ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),1)){
+ 				checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
+ 			}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20004-20005.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20004-20005.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20004-20005.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20004)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20005)
+@@ -5,6 +5,8 @@
+ %      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
+ %
+ 
++	disp(sprintf('gmtmask: num vertices %i',length(lat)));
++	
+ 	%Check lat and long size is not more than 50,000; If so, recursively call gmtmask: 
+ 	if length(lat)>50000,
+ 		for i=1:50000:length(lat),
+@@ -50,3 +52,4 @@
+ 	mask(oce_vertices)=1;
+ 	
+ 	system('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history');
++	disp(sprintf('gmtmask: done'));
Index: /issm/oecreview/Archive/19101-20495/ISSM-20005-20006.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20005-20006.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20005-20006.diff	(revision 20498)
@@ -0,0 +1,94 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20005)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20006)
+@@ -1034,6 +1034,8 @@
+ 	SealevelriseEustaticEnum,
+ 	SealevelriseLegendrePrecomputeEnum,
+ 	SealevelriseLegendreCoefficientsEnum,
++	SealevelriseGRigidEnum,
++	SealevelriseGElasticEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20005)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20006)
+@@ -988,6 +988,8 @@
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+ 		case SealevelriseLegendrePrecomputeEnum : return "SealevelriseLegendrePrecompute";
+ 		case SealevelriseLegendreCoefficientsEnum : return "SealevelriseLegendreCoefficients";
++		case SealevelriseGRigidEnum : return "SealevelriseGRigid";
++		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20005)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20006)
+@@ -1012,6 +1012,8 @@
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
+ 	      else if (strcmp(name,"SealevelriseLegendrePrecompute")==0) return SealevelriseLegendrePrecomputeEnum;
+ 	      else if (strcmp(name,"SealevelriseLegendreCoefficients")==0) return SealevelriseLegendreCoefficientsEnum;
++	      else if (strcmp(name,"SealevelriseGRigid")==0) return SealevelriseGRigidEnum;
++	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m	(revision 20006)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseGRigidEnum()
++%SEALEVELRISEGRIGIDENUM - Enum of SealevelriseGRigid
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseGRigidEnum()
++
++macro=StringToEnum('SealevelriseGRigid');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20005)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20006)
+@@ -973,4 +973,6 @@
+ function SealevelriseEustaticEnum(){ return 969;}
+ function SealevelriseLegendrePrecomputeEnum(){ return 970;}
+ function SealevelriseLegendreCoefficientsEnum(){ return 971;}
+-function MaximumNumberOfDefinitionsEnum(){ return 972;}
++function SealevelriseGRigidEnum(){ return 972;}
++function SealevelriseGElasticEnum(){ return 973;}
++function MaximumNumberOfDefinitionsEnum(){ return 974;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseGElasticEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseGElasticEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseGElasticEnum.m	(revision 20006)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseGElasticEnum()
++%SEALEVELRISEGELASTICENUM - Enum of SealevelriseGElastic
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseGElasticEnum()
++
++macro=StringToEnum('SealevelriseGElastic');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20005)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20006)
+@@ -980,4 +980,6 @@
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+ def SealevelriseLegendrePrecomputeEnum(): return StringToEnum("SealevelriseLegendrePrecompute")[0]
+ def SealevelriseLegendreCoefficientsEnum(): return StringToEnum("SealevelriseLegendreCoefficients")[0]
++def SealevelriseGRigidEnum(): return StringToEnum("SealevelriseGRigid")[0]
++def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20006-20007.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20006-20007.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20006-20007.diff	(revision 20498)
@@ -0,0 +1,1113 @@
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20006)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20007)
+@@ -467,7 +467,9 @@
+ #Slr sources  {{{
+ if SEALEVELRISE
+ issm_sources +=  ./cores/sealevelrise_core.cpp\
+-					./analyses/SealevelriseAnalysis.cpp
++				 ./cores/sealevelrise_core_eustatic.cpp\
++				 ./cores/sealevelrise_core_noneustatic.cpp\
++				 ./analyses/SealevelriseAnalysis.cpp
+ endif
+ #}}}
+ #Metis sources  {{{
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core_noneustatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core_noneustatic.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core_noneustatic.cpp	(revision 20007)
+@@ -0,0 +1,158 @@
++/*!\file: sealevelrise_core_noneustatic.cpp //this computes the contributions from Eq.4 of Farrel and Clarke, rhs terms 2 and 5.
++ * \brief: non eustatic core of the SLR solution 
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++#include "../solutionsequences/solutionsequences.h"
++
++void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs);
++
++Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel,Vector<IssmDouble>* Sg_eustatic){
++
++	Vector<IssmDouble> *Sg    = NULL;
++	Vector<IssmDouble> *Sg_old    = NULL;
++
++	Vector<IssmDouble> *Sgo    = NULL; //ocean convolution of the perturbation to gravity potential.
++	IssmDouble          Sgo_oceanaverage = 0;  //average of Sgo over the ocean.
++
++	/*parameters: */
++	int count;
++	bool save_results;
++	int  gsize;
++	int  configuration_type;
++	bool spherical=true;
++	bool converged=true;
++	bool verboseconvolution=true;
++	int max_nonlinear_iterations;
++	IssmDouble           eps_rel;
++	IssmDouble           eps_abs;
++	IssmDouble          *latitude    = NULL;
++	IssmDouble          *longitude    = NULL;
++	IssmDouble          *radius    = NULL;
++	IssmDouble           eustatic;
++
++
++	/*Recover some parameters: */
++	femmodel->parameters->FindParam(&max_nonlinear_iterations,SealevelriseMaxiterEnum);
++	femmodel->parameters->FindParam(&eps_rel,SealevelriseReltolEnum);
++	femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
++	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
++
++	/*first, recover lat,long and radius vectors from vertices: */
++	VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); 
++
++	/*Figure out size of g-set deflection vector and allocate solution vector: */
++	gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
++	
++	/*Initialize:*/
++	Sg = new Vector<IssmDouble>(gsize);
++	Sg->Assemble();
++	Sg_eustatic->Copy(Sg);  //first initialize Sg with the eustatic component computed in sealevelrise_core_eustatic.
++
++	Sg_old = new Vector<IssmDouble>(gsize);
++	Sg_old->Assemble();
++
++	Sgo = new Vector<IssmDouble>(gsize);
++	Sgo->Assemble();
++
++	count=1;
++	converged=false;
++	
++	/*Start loop: */
++	for(;;){
++
++		//save pointer to old sea level rise
++		delete Sg_old; Sg_old=Sg; 
++
++		/*Initialize solution vector: */
++		Sg = new Vector<IssmDouble>(gsize); Sg->Assemble();
++		Sgo = new Vector<IssmDouble>(gsize); Sgo->Assemble();
++
++		/*call the non eustatic module: */
++        femmodel->SealevelriseNonEustatic(Sgo, Sg_old, latitude, longitude, radius,verboseconvolution);
++	
++		/*assemble solution vector: */
++		Sgo->Assemble(); 
++
++		/*we need to average Sgo over the ocean: RHS term  5 in Eq.4 of Farrel and clarke. Only the elements can do that: */
++		Sgo_oceanaverage=femmodel->SealevelriseOceanAverage(Sgo);
++	
++		/*Sg is the sum of the eustatic term, and the ocean terms: */
++		Sg_eustatic->Copy(Sg); Sg->AXPY(Sgo,1); 
++		Sg->Shift(-Sgo_oceanaverage);
++
++		/*convergence criterion:*/
++		slrconvergence(&converged,Sg,Sg_old,eps_rel,eps_abs);
++
++		/*Increase count: */
++		count++;
++		if(converged==true){
++			break;
++		}
++		if(count>=max_nonlinear_iterations){
++			_printf0_("   maximum number of nonlinear iterations (" << max_nonlinear_iterations << ") exceeded\n"); 
++			converged=true;
++			break;
++		}	
++		
++		/*some minor verbosing adjustment:*/
++		if(count>1)verboseconvolution=false;
++		
++	}
++	if(VerboseConvergence()) _printf0_("\n   total number of iterations: " << count-1 << "\n");
++
++	xDelete<IssmDouble>(latitude);
++	xDelete<IssmDouble>(longitude);
++	xDelete<IssmDouble>(radius);
++	delete Sg_old;
++
++	return Sg;
++}
++
++void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs){ /*{{{*/
++	
++	bool converged=true;
++	IssmDouble ndS,nS; 
++	Vector<IssmDouble> *dSg    = NULL;
++
++	//compute norm(du) and norm(u) if requested
++	dSg=Sg_old->Duplicate(); Sg_old->Copy(dSg); dSg->AYPX(Sg,-1.0);
++	ndS=dSg->Norm(NORM_TWO); 
++	
++	if(!xIsNan<IssmDouble>(eps_rel)){
++		nS=Sg_old->Norm(NORM_TWO);
++	}
++
++	if (xIsNan<IssmDouble>(ndS) || xIsNan<IssmDouble>(nS)) _error_("convergence criterion is NaN!");
++
++	//clean up
++	delete dSg;
++
++	//print
++	if(!xIsNan<IssmDouble>(eps_rel)){
++		if((ndS/nS)<eps_rel){
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " < " << eps_rel*100 << " %\n");
++		}
++		else{ 
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " > " << eps_rel*100 << " %\n");
++			converged=false;
++		}
++	}
++	if(!xIsNan<IssmDouble>(eps_abs)){
++		if(ndS<eps_abs){
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " < " << eps_abs << " \n");
++		}
++		else{ 
++			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " > " << eps_abs << " \n");
++			converged=false;
++		}
++	}
++
++	/*assign output*/
++	*pconverged=converged;
++
++} /*}}}*/
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 20006)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 20007)
+@@ -45,9 +45,11 @@
+ void adgradient_core(FemModel* femmodel);
+ void dummy_core(FemModel* femmodel);
+ void gia_core(FemModel* femmodel);
+-void sealevelrise_core(FemModel* femmodel);
+ void smb_core(FemModel* femmodel);
+ void damage_core(FemModel* femmodel);
++void sealevelrise_core(FemModel* femmodel);
++Vector<IssmDouble> * sealevelrise_core_eustatic(FemModel* femmodel);
++Vector<IssmDouble> * sealevelrise_core_noneustatic(FemModel* femmodel,Vector<IssmDouble>* Sg_eustatic);
+ IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
+ 
+ //optimization
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20006)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20007)
+@@ -9,111 +9,28 @@
+ #include "../modules/modules.h"
+ #include "../solutionsequences/solutionsequences.h"
+ 
+-void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs);
+-
+ void sealevelrise_core(FemModel* femmodel){
+ 
+ 	Vector<IssmDouble> *Sg    = NULL;
+-	Vector<IssmDouble> *Sg_old    = NULL;
+-	Vector<IssmDouble> *Sgi    = NULL; //ice convolution
+-	Vector<IssmDouble> *Sgi_old    = NULL; 
+-	Vector<IssmDouble> *Sgo    = NULL; //ocean convolution
+-	Vector<IssmDouble> *Sgo_old    = NULL; 
+-
+-	/*parameters: */
+-	int count;
++	Vector<IssmDouble> *Sg_eustatic    = NULL; 
+ 	bool save_results;
+-	int  gsize;
+-	int  configuration_type;
+-	bool spherical=true;
+-	bool converged=true;
+-	int max_nonlinear_iterations;
+-	IssmDouble           eps_rel;
+-	IssmDouble           eps_abs;
+-	IssmDouble          *x    = NULL;
+-	IssmDouble          *y    = NULL;
+-	IssmDouble          *z    = NULL;
+-	IssmDouble           eustatic;
++	int configuration_type;
+ 
++	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
+ 
+ 	/*Recover some parameters: */
+-	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+ 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+-	femmodel->parameters->FindParam(&max_nonlinear_iterations,SealevelriseMaxiterEnum);
+-	femmodel->parameters->FindParam(&eps_rel,SealevelriseReltolEnum);
+-	femmodel->parameters->FindParam(&eps_abs,SealevelriseAbstolEnum);
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+ 
+-	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
+-
+-	/*Call on core computations: */
++	/*set configuration: */
+ 	femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
+ 
+-	/*first, recover lat,long and radius vectors from vertices: */
+-	VertexCoordinatesx(&x,&y,&z,femmodel->vertices); //no need for z coordinate
++	/*call two sub cores:*/
++	Sg_eustatic=sealevelrise_core_eustatic(femmodel); //generalized eustatic (Farrel and Clark, Eq 4, 1st, 3rd and 4rd terms on the RHS.
+ 
+-	/*Figure out size of g-set deflection vector and allocate solution vector: */
+-	gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
+-	
+-	/*Initialize:*/
+-	Sg = new Vector<IssmDouble>(gsize);
+-	Sg->Assemble();
+-	Sg_old = new Vector<IssmDouble>(gsize);
+-	Sg_old->Assemble();
++	Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //sea-level rise dependent terms (2nd and 5th terms on the RHS)
+ 
+-	Sgi = new Vector<IssmDouble>(gsize);
+-	Sgi->Assemble();
+-	Sgi_old = new Vector<IssmDouble>(gsize);
+-	Sgi_old->Assemble();
+-
+-	Sgo = new Vector<IssmDouble>(gsize);
+-	Sgo->Assemble();
+-	Sgo_old = new Vector<IssmDouble>(gsize);
+-	Sgo_old->Assemble();
+-
+-	count=1;
+-	converged=false;
+-	
+-	/*Start loop: */
+-	for(;;){
+-
+-		//save pointer to old sea level rise
+-		delete Sgi_old; Sgi_old=Sgi; 
+-		delete Sgo_old; Sgo_old=Sgo; 
+-		delete Sg_old; Sg_old=Sg; 
+-
+-		/*Initialize solution vector: */
+-		Sg = new Vector<IssmDouble>(gsize); Sg->Assemble();
+-		Sgi = new Vector<IssmDouble>(gsize); Sgi->Assemble();
+-		Sgo = new Vector<IssmDouble>(gsize); Sgo->Assemble();
+-
+-		/*call the main module: */
+-        femmodel->Sealevelrise(Sgi,Sgo, &eustatic, Sg_old, Sgi_old, Sgo_old,x, y, z);
+-		
+-		/*assemble solution vectors: */
+-		Sgi->Assemble();
+-		Sgo->Assemble();
+-		
+-		/*Sg is the sum of the ice and ocean convolutions + eustatic component: (eq 4 in Farrel and Clark)*/
+-		Sgi->Copy(Sg); Sg->AXPY(Sgo,1); 
+-		Sg->Shift(eustatic);
+-
+-		/*convergence criterion:*/
+-		slrconvergence(&converged,Sg,Sg_old,eps_rel,eps_abs);
+-
+-		/*Increase count: */
+-		count++;
+-		if(converged==true){
+-			break;
+-		}
+-		if(count>=max_nonlinear_iterations){
+-			_printf0_("   maximum number of nonlinear iterations (" << max_nonlinear_iterations << ") exceeded\n"); 
+-			converged=true;
+-			break;
+-		}	
+-		
+-	}
+-	if(VerboseConvergence()) _printf0_("\n   total number of iterations: " << count-1 << "\n");
+-
++	/*get results out:*/
+ 	InputUpdateFromVectorx(femmodel,Sg,SealevelriseSEnum,VertexSIdEnum);
+ 
+ 	if(save_results){
+@@ -121,53 +38,6 @@
+ 		int outputs[1] = {SealevelriseSEnum};
+ 		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
+ 	}
+-	xDelete<IssmDouble>(x);
+-	xDelete<IssmDouble>(y);
+-	xDelete<IssmDouble>(z);
+-	delete Sg_old;
+ 	delete Sg;
++	delete Sg_eustatic;
+ }
+-
+-void slrconvergence(bool* pconverged, Vector<IssmDouble>* Sg,Vector<IssmDouble>* Sg_old,IssmDouble eps_rel,IssmDouble eps_abs){ /*{{{*/
+-	
+-	bool converged=true;
+-	IssmDouble ndS,nS; 
+-	Vector<IssmDouble> *dSg    = NULL;
+-
+-	//compute norm(du) and norm(u) if requested
+-	dSg=Sg_old->Duplicate(); Sg_old->Copy(dSg); dSg->AYPX(Sg,-1.0);
+-	ndS=dSg->Norm(NORM_TWO); 
+-	
+-	if(!xIsNan<IssmDouble>(eps_rel)){
+-		nS=Sg_old->Norm(NORM_TWO);
+-	}
+-
+-	if (xIsNan<IssmDouble>(ndS) || xIsNan<IssmDouble>(nS)) _error_("convergence criterion is NaN!");
+-
+-	//clean up
+-	delete dSg;
+-
+-	//print
+-	if(!xIsNan<IssmDouble>(eps_rel)){
+-		if((ndS/nS)<eps_rel){
+-			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " < " << eps_rel*100 << " %\n");
+-		}
+-		else{ 
+-			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)/norm(S)" << ndS/nS*100 << " > " << eps_rel*100 << " %\n");
+-			converged=false;
+-		}
+-	}
+-	if(!xIsNan<IssmDouble>(eps_abs)){
+-		if(ndS<eps_abs){
+-			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " < " << eps_abs << " \n");
+-		}
+-		else{ 
+-			if(VerboseConvergence()) _printf0_(setw(50) << left << "      convergence criterion: norm(dS)" << ndS << " > " << eps_abs << " \n");
+-			converged=false;
+-		}
+-	}
+-
+-	/*assign output*/
+-	*pconverged=converged;
+-
+-} /*}}}*/
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20007)
+@@ -0,0 +1,60 @@
++/*!\file: sealevelrise_core_eustatic.cpp
++ * \brief: eustatic core of the SLR solution (terms that are constant with respect to sea-level)
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../modules/modules.h"
++#include "../solutionsequences/solutionsequences.h"
++
++Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel){
++
++	Vector<IssmDouble> *Sgi    = NULL;
++	IssmDouble          Sgi_oceanaverage   = 0;
++
++	/*parameters: */
++	int  configuration_type;
++	int  gsize;
++	bool spherical=true;
++	IssmDouble          *latitude    = NULL;
++	IssmDouble          *longitude    = NULL;
++	IssmDouble          *radius    = NULL;
++
++	/*outputs:*/
++	IssmDouble eustatic=0;
++
++	/*recover parameters:*/
++	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
++
++	/*first, recover lat,long and radius vectors from vertices: */
++	VertexCoordinatesx(&latitude,&longitude,&radius,femmodel->vertices,spherical); 
++
++	/*Figure out size of g-set deflection vector and allocate solution vector: */
++	gsize      = femmodel->nodes->NumberOfDofs(configuration_type,GsetEnum);
++	
++	/*Initialize:*/
++	Sgi = new Vector<IssmDouble>(gsize);
++	Sgi->Assemble();
++
++	/*call the eustatic main module: */
++	femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius); //this computes 
++
++	/*assemble solution vector: */
++	Sgi->Assemble(); 
++
++	/*we need to average Sgi over the ocean: RHS term  4 in Eq.4 of Farrel and clarke. Only the elements can do that: */
++	Sgi_oceanaverage=femmodel->SealevelriseOceanAverage(Sgi);
++
++	/*Sg is the sum of the pure eustatic component (term 3) and the contribution from the perturbation to the graviation potential due to the 
++	 * presence of ice (terms 1 and 4 in Eq.4 of Farrel and Clarke):*/
++	Sgi->Shift(-eustatic-Sgi_oceanaverage);
++
++	xDelete<IssmDouble>(latitude);
++	xDelete<IssmDouble>(longitude);
++	xDelete<IssmDouble>(radius);
++
++	/*return:*/
++	return Sgi;
++}
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20006)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20007)
+@@ -2205,25 +2205,18 @@
+ /*}}}*/
+ #endif
+ #ifdef _HAVE_SEALEVELRISE_
+-void FemModel::Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo, IssmDouble* peustatic, Vector<IssmDouble>* pSg_old, Vector<IssmDouble>* pSgi_old,Vector<IssmDouble>* pSgo_old,IssmDouble* x, IssmDouble* y, IssmDouble* z) { /*{{{*/
++void FemModel::SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius) { /*{{{*/
+ 
+ 	/*serialized vectors:*/
+-	IssmDouble* Sg_old=NULL;
+-	IssmDouble* Sgi_old=NULL;
+-	IssmDouble* Sgo_old=NULL;
+ 	IssmDouble  eustatic=0;
+ 	IssmDouble  eustatic_cpu=0;
+ 	IssmDouble  eustatic_cpu_e=0;
+ 	IssmDouble  oceanarea=0;
+ 	IssmDouble  oceanarea_cpu=0;
++	IssmDouble  eartharea=0;
++	IssmDouble  eartharea_cpu=0;
+ 	int         ns;
+ 	
+-	/*Serialize vectors from previous iteration:*/
+-
+-	Sg_old=pSg_old->ToMPISerial();
+-	Sgi_old=pSgi_old->ToMPISerial();
+-	Sgo_old=pSgo_old->ToMPISerial();
+-
+ 	/*Go through elements, and add contribution from each element to the deflection vector wg:*/
+ 	ns = elements->Size();
+ 
+@@ -2231,9 +2224,13 @@
+ 	for(int i=0;i<ns;i++){
+ 		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+ 		oceanarea_cpu += element->OceanArea();
++		eartharea_cpu+= element->GetArea3D();
+ 	}
+ 	ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
+ 	ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++	
++	ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+ 
+ 	/*Call the sea level rise core: */
+ 	for(int i=0;i<ns;i++){
+@@ -2241,7 +2238,7 @@
+ 		if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
+ 	
+ 		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+-		element->Sealevelrise(pSgi,pSgo,&eustatic_cpu_e,Sg_old,Sgi_old,Sgo_old,x,y,z,oceanarea);
++		element->SealevelriseEustatic(pSgi,&eustatic_cpu_e,latitude,longitude,radius,oceanarea,eartharea);
+ 		eustatic_cpu+=eustatic_cpu_e;
+ 	}
+ 	if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
+@@ -2253,12 +2250,85 @@
+ 	/*Assign output pointers:*/
+ 	*peustatic=eustatic;
+ 
++}
++/*}}}*/
++void FemModel::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, bool verboseconvolution){/*{{{*/
++
++	/*serialized vectors:*/
++	IssmDouble* Sg_old=NULL;
++	
++	IssmDouble  oceanarea=0;
++	IssmDouble  oceanarea_cpu=0;
++	IssmDouble  eartharea=0;
++	IssmDouble  eartharea_cpu=0;
++
++	int         ns;
++	
++	/*Serialize vectors from previous iteration:*/
++	Sg_old=pSg_old->ToMPISerial();
++
++	/*Go through elements, and add contribution from each element to the deflection vector wg:*/
++	ns = elements->Size();
++
++	/*First, figure out the area of the ocean, which is needed to compute the eustatic component: */
++	for(int i=0;i<ns;i++){
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++		oceanarea_cpu += element->OceanArea();
++		eartharea_cpu+= element->GetArea3D();
++	}
++	ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++	
++	ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Call the sea level rise core: */
++	for(int i=0;i<ns;i++){
++
++		if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++		
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++		element->SealevelriseNonEustatic(pSgo, Sg_old,latitude,longitude,radius,oceanarea,eartharea);
++	}
++	if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
++
++
+ 	/*Free ressources:*/
+ 	xDelete<IssmDouble>(Sg_old);
+-	xDelete<IssmDouble>(Sgi_old);
+-	xDelete<IssmDouble>(Sgo_old);
+ }
+ /*}}}*/
++IssmDouble FemModel::SealevelriseOceanAverage(Vector<IssmDouble>* Sg) { /*{{{*/
++
++	IssmDouble* Sg_serial=NULL;
++	IssmDouble  oceanvalue,oceanvalue_cpu;
++	IssmDouble  oceanarea,oceanarea_cpu;
++
++	/*Serialize vectors from previous iteration:*/
++	Sg_serial=Sg->ToMPISerial();
++
++	/*Initialize:*/
++	oceanvalue_cpu=0;
++	oceanarea_cpu=0;
++
++	/*Go through elements, and add contribution from each element and divide by overall ocean area:*/
++	for(int i=0;i<elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++		oceanarea_cpu += element->OceanArea();
++		oceanvalue_cpu += element->OceanAverage(Sg_serial);
++	}
++	ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++	
++	ISSM_MPI_Reduce (&oceanvalue_cpu,&oceanvalue,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&oceanvalue,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++
++	/*Free ressources:*/
++	xDelete<IssmDouble>(Sg_serial);
++	
++	return oceanvalue/oceanarea;
++}
++/*}}}*/
+ #endif
+ 
+ void FemModel::HydrologyEPLupdateDomainx(IssmDouble* pEplcount){ /*{{{*/
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20007)
+@@ -301,8 +301,11 @@
+ 		virtual void       GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y)=0;
+ 		#endif
+ 		#ifdef _HAVE_SEALEVELRISE_
+-		virtual void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea)=0;
++		virtual void          SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea)=0;
++		virtual void          SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea)=0;
++		virtual IssmDouble    OceanAverage(IssmDouble* Sg)=0;
+ 		virtual IssmDouble    OceanArea(void)=0;
++		virtual IssmDouble    GetArea3D(void)=0;
+ 		#endif
+ 
+ };
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20007)
+@@ -3502,18 +3502,18 @@
+ #endif
+ 
+ #ifdef _HAVE_SEALEVELRISE_
+-void    Tria::Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){ /*{{{*/
++void    Tria::SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){ /*{{{*/
+ 
+ 	/*diverse:*/
+ 	int gsize;
+ 	bool spherical=true;
+-	IssmDouble x0,y0,z0,a;
+-	IssmDouble xyz_list[NUMVERTICES][3];
++	IssmDouble llr_list[NUMVERTICES][3];
+ 	IssmDouble area;
+ 	IssmDouble I;  //change in ice thickness or water level(Farrel and Clarke, Equ. 4)
+-	IssmDouble Me;
+ 	IssmDouble rho;
+-	
++	IssmDouble late,longe,re;
++	IssmDouble lati,longi,ri;
++
+ 	/*love numbers:*/
+ 	IssmDouble* love_h=NULL;
+ 	IssmDouble* love_k=NULL; 
+@@ -3528,9 +3528,6 @@
+ 	/*ice properties: */
+ 	IssmDouble rho_ice,rho_water,rho_earth;
+ 
+-	/*Solution outputs: */
+-	Vector<IssmDouble>* pSolution=NULL;
+-	
+ 	/*Initialize eustatic component: do not skip this step :):*/
+ 	IssmDouble eustatic = 0;
+ 
+@@ -3538,7 +3535,14 @@
+ 	bool computerigid = true;
+ 	bool computeelastic= true;
+ 	bool computeeustatic = true;
++
+ 	
++	/*early return if we are not on an ice cap:*/
++	if(IsWaterInElement() | !IsIceInElement()){
++		*peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
++		return;
++	}
++
+ 	/*recover material parameters: */
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+@@ -3553,63 +3557,59 @@
+ 
+ 	/*recover legendre coefficients if they have been precomputed:*/
+ 	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-	this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
++	if(legendre_precompute)this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
+ 
+ 	/*how many dofs are we working with here? */
+ 	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
+ 
+ 	/*retrieve coordinates: */
+-	::GetVerticesCoordinates(&xyz_list[0][0],this->vertices,NUMVERTICES);
++	::GetVerticesCoordinates(&llr_list[0][0],this->vertices,NUMVERTICES,spherical);
++	
++	/* Where is the centroid of this element?:*/
++	IssmDouble minlong=400;
++	IssmDouble maxlong=-20;
++	for (int i=0;i<NUMVERTICES;i++){
++		llr_list[i][0]=(90-llr_list[i][0]);
++		if(llr_list[i][1]<0)llr_list[i][1]=180+(180+llr_list[i][1]);
++		if(llr_list[i][1]>maxlong)maxlong=llr_list[i][1];
++		if(llr_list[i][1]<minlong)minlong=llr_list[i][1];
++	}
++	if(minlong==0 && maxlong>180){
++		if (llr_list[0][1]==0)llr_list[0][1]=360;
++		if (llr_list[1][1]==0)llr_list[1][1]=360;
++		if (llr_list[2][1]==0)llr_list[2][1]=360;
++	}
++	
++	// correction at the north pole
++	if(llr_list[0][0]==0)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0;
++	if(llr_list[1][0]==0)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0;
++	if(llr_list[2][0]==0)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0;
++			
++	//correction at the south pole
++	if(llr_list[0][0]==180)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0;
++	if(llr_list[1][0]==180)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0;
++	if(llr_list[2][0]==180)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0;
+ 
+-	/* Where is the centroid of this element?. To avoid issues with lat,long
+-	 * being between [0,180] and [0 360], and issues with jumps at the central
+-	 * meridian and poles, we do everything in cartesian coordinate system: */
+-	x0=(xyz_list[0][0]+xyz_list[1][0]+xyz_list[2][0])/3;
+-	y0=(xyz_list[0][1]+xyz_list[1][1]+xyz_list[2][1])/3;
+-	z0=(xyz_list[0][2]+xyz_list[1][2]+xyz_list[2][2])/3;
++	late=(llr_list[0][0]+llr_list[1][0]+llr_list[2][0])/3.0;
++	longe=(llr_list[0][1]+llr_list[1][1]+llr_list[2][1])/3.0;
+ 
+-	/*radius at this location?:*/
+-	a=sqrt(pow(xyz_list[0][0],2)+pow(xyz_list[0][1],2)+pow(xyz_list[0][2],2)); //a from Farrel and Clark, Eq 4.
++	late=90-late; 
++	if(longe>180)longe=(longe-180)-180;
+ 
+-	/*Compute mass of the earth:*/
+-	Me= rho_earth*4/3*PI*pow(a,3);
++	late=late/180*PI;
++	longe=longe/180*PI;
+ 
+ 	/*Compute area of element:*/
+ 	area=GetArea3D();
+ 
+-	/*Compute ice thickness or sea level change: */
+-	if(IsWaterInElement()){
++	/*Compute ice thickness change: */
++	Input*	deltathickness_input=inputs->GetInput(SealevelriseDeltathicknessEnum); 
++	if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
++	deltathickness_input->GetInputAverage(&I);
+ 
+-		IssmDouble phi_I_I_O,phi_O_O_O;
+-		
+-		/*From Sg_old, recover water sea level rise:*/
+-		I=0; for(int i=0;i<NUMVERTICES;i++) I+=Sg_old[this->vertices[i]->Sid()]/NUMVERTICES;
+-		rho=rho_water;
+-		pSolution=pSgo;
++	/*Compute eustatic compoent:*/
++	if(computeeustatic) eustatic += rho_ice*area*I/(oceanarea*rho_water); 
+ 
+-		/*Compute eustatic component: */
+-		if(computeeustatic){
+-			phi_I_I_O=0; for(int i=0;i<NUMVERTICES;i++) phi_I_I_O+=area/oceanarea * Sgi_old[this->vertices[i]->Sid()]/NUMVERTICES;
+-			phi_O_O_O=0; for(int i=0;i<NUMVERTICES;i++) phi_O_O_O+=area/oceanarea * Sgo_old[this->vertices[i]->Sid()]/NUMVERTICES;
+-			eustatic -= (phi_I_I_O + phi_O_O_O); //Watch out the sign "-"!
+-		}
+-
+-	}
+-	else if(IsIceInElement()){
+-		Input*	deltathickness_input=inputs->GetInput(SealevelriseDeltathicknessEnum); 
+-		if (!deltathickness_input)_error_("delta thickness input needed to compute sea level rise!");
+-		deltathickness_input->GetInputAverage(&I);
+-		rho=rho_ice;
+-		pSolution=pSgi;
+-
+-		/*Compute eustatic compoent:*/
+-		if(computeeustatic)eustatic -= rho_ice*area*I/(oceanarea*rho_water); //Watch out the sign "-"!
+-	}
+-	else if(IsLandInElement()){ 
+-		//do nothing
+-	}
+-	else _error_("Tria::Sealevelrise error: partition of land, ice and ocean is not complete!");
+-
+ 	/*Speed up of love number comutation: */
+ 	if(computeelastic){
+ 		deltalove=xNew<IssmDouble>(nl);
+@@ -3624,13 +3624,13 @@
+ 			IssmDouble G_elastic=0;  //do not remove =0!
+ 			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
+ 			IssmDouble cosalpha;
++			IssmDouble delPhi,delLambda;
+ 
+-			/*Compute alpha angle between centroid and current vertex and cosine of this angle: */
+-			alpha = acos( 
+-					(x[i]*x0+y[i]*y0+z[i]*z0)  //scalar product  of two position vectors
+-					/ sqrt(pow(x0,2.0)+pow(y0,2.0)+pow(z0,2.0))  //norm of first position vector
+-					/ sqrt(pow(x[i],2.0)+pow(y[i],2.0)+pow(z[i],2.0))  //norm of second position vector
+-					);
++			/*Compute alpha angle between centroid and current vertex : */
++			lati=latitude[i]/180*PI; longi=longitude[i]/180*PI;
++
++		    delPhi=fabs(lati-late); delLambda=fabs(longi-longe);
++			alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));
+ 			cosalpha=cos(alpha); //compute this to speed up the elastic component.
+ 
+ 			//Rigid earth gravitational perturbation:
+@@ -3651,7 +3651,8 @@
+ 			}
+ 
+ 			/*Add all components to the pSgi or pSgo solution vectors:*/
+-			pSolution->SetValue(i,rho*a/Me*I*area*(G_rigid+G_elastic),ADD_VAL);
++			pSgi->SetValue(i,3*rho_ice/rho_earth*area/eartharea*I*(G_rigid+G_elastic),ADD_VAL);
++			
+ 		}
+ 	}
+ 	
+@@ -3659,12 +3660,223 @@
+ 	*peustatic=eustatic;
+ 
+ 	/*Free ressources:*/
+-	xDelete<IssmDouble>(love_h);
+-	xDelete<IssmDouble>(love_k);
+-	xDelete<IssmDouble>(deltalove);
++	if(computeelastic){
++		xDelete<IssmDouble>(love_h);
++		xDelete<IssmDouble>(love_k);
++		xDelete<IssmDouble>(deltalove);
++	}
+ 	return;
+ }
+ /*}}}*/
++void    Tria::SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){ /*{{{*/
++
++	/*diverse:*/
++	int gsize;
++	bool spherical=true;
++	IssmDouble llr_list[NUMVERTICES][3];
++	IssmDouble area;
++	IssmDouble I;  //change in water water level(Farrel and Clarke, Equ. 4)
++	IssmDouble late,longe,re;
++	IssmDouble lati,longi,ri;
++	IssmDouble minlong=400;
++	IssmDouble maxlong=-20;
++
++	/*love numbers:*/
++	IssmDouble* love_h=NULL;
++	IssmDouble* love_k=NULL; 
++	IssmDouble* deltalove=NULL;
++	int nl;
++
++	/*legendre coefficients:*/
++	bool        legendre_precompute=false;
++	IssmDouble* legendre_coefficients=NULL;
++	int         M;
++
++	/*ice properties: */
++	IssmDouble rho_ice,rho_water,rho_earth;
++
++	/*Computational flags:*/
++	bool computerigid = true;
++	bool computeelastic= true;
++	bool computeeustatic = true;
++
++	/*G_rigid and G_elasti variables, to speed up the computations: */
++	DoubleArrayInput*      G_rigid_input=NULL;
++	IssmDouble* G_rigid = NULL; int G_rigid_M;
++	bool        compute_G_rigid=false;
++	DoubleArrayInput*      G_elastic_input=NULL;
++	IssmDouble* G_elastic = NULL; int G_elastic_M;
++	bool        compute_G_elastic=false;
++
++	/*early return if we are not on the ocean:*/
++	if (!IsWaterInElement())return;
++
++	/*recover computational flags: */
++	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
++	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
++	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
++	
++	/*early return if rigid or elastic not requested:*/
++	if(!computerigid && !computeelastic) return;
++
++	/*Try and recover, if it exists, G_rigid and G_elastic:*/
++	G_rigid_input=(DoubleArrayInput*)this->inputs->GetInput(SealevelriseGRigidEnum);
++	if(G_rigid_input){
++		compute_G_rigid=false;
++		G_rigid_input->GetValues(&G_rigid,&G_rigid_M);
++	}
++	else if(computerigid)compute_G_rigid=true;
++
++	G_elastic_input=(DoubleArrayInput*)this->inputs->GetInput(SealevelriseGElasticEnum);
++	if(G_elastic_input){
++		compute_G_elastic=false;
++		G_elastic_input->GetValues(&G_elastic,&G_elastic_M);
++	}
++	else if(computeelastic)compute_G_elastic=true;
++	
++	/*recover material parameters: */
++	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
++
++	/*how many dofs are we working with here? */
++	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
++
++	/*From Sg_old, recover water sea level rise:*/
++	I=0; for(int i=0;i<NUMVERTICES;i++) I+=Sg_old[this->vertices[i]->Sid()]/NUMVERTICES;
++
++	/*Compute area of element:*/
++	area=GetArea3D();
++
++	/* Where is the centroid of this element?:{{{*/
++	::GetVerticesCoordinates(&llr_list[0][0],this->vertices,NUMVERTICES,spherical);
++
++	minlong=400; maxlong=-20;
++	for (int i=0;i<NUMVERTICES;i++){
++		llr_list[i][0]=(90-llr_list[i][0]);
++		if(llr_list[i][1]<0)llr_list[i][1]=180+(180+llr_list[i][1]);
++		if(llr_list[i][1]>maxlong)maxlong=llr_list[i][1];
++		if(llr_list[i][1]<minlong)minlong=llr_list[i][1];
++	}
++	if(minlong==0 && maxlong>180){
++		if (llr_list[0][1]==0)llr_list[0][1]=360;
++		if (llr_list[1][1]==0)llr_list[1][1]=360;
++		if (llr_list[2][1]==0)llr_list[2][1]=360;
++	}
++
++	// correction at the north pole
++	if(llr_list[0][0]==0)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0;
++	if(llr_list[1][0]==0)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0;
++	if(llr_list[2][0]==0)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0;
++
++	//correction at the south pole
++	if(llr_list[0][0]==180)llr_list[0][1]=(llr_list[1][1]+llr_list[2][1])/2.0;
++	if(llr_list[1][0]==180)llr_list[1][1]=(llr_list[0][1]+llr_list[2][1])/2.0;
++	if(llr_list[2][0]==180)llr_list[2][1]=(llr_list[0][1]+llr_list[1][1])/2.0;
++
++	late=(llr_list[0][0]+llr_list[1][0]+llr_list[2][0])/3.0;
++	longe=(llr_list[0][1]+llr_list[1][1]+llr_list[2][1])/3.0;
++
++	late=90-late; 
++	if(longe>180)longe=(longe-180)-180;
++
++	late=late/180*PI;
++	longe=longe/180*PI;
++	/*}}}*/
++	if(compute_G_elastic){
++		/*recover love numbers and legendre_coefficients:{{{*/
++		this->parameters->FindParam(&love_h,&nl,SealevelriseLoveHEnum);
++		this->parameters->FindParam(&love_k,&nl,SealevelriseLoveKEnum);
++
++		/*recover legendre coefficients if they have been precomputed:*/
++		this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
++		if(legendre_precompute)this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
++
++		/*Speed up of love number comutation for elastic mode: */
++		deltalove=xNew<IssmDouble>(nl);
++		for (int n=0;n<nl;n++) deltalove[n] = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++		//}}}
++
++		/*initialize G_elastic:*/
++		G_elastic=xNew<IssmDouble>(gsize);
++	}
++	if(compute_G_rigid){
++		/*Initialize G_rigid and G_elastic:*/
++		G_rigid=xNew<IssmDouble>(gsize);
++	}
++
++	for(int i=0;i<gsize;i++){
++
++		if(compute_G_elastic | compute_G_rigid){
++			IssmDouble alpha;
++			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
++			IssmDouble cosalpha;
++			IssmDouble delPhi,delLambda;
++
++			/*Compute alpha angle between centroid and current vertex : */
++			lati=latitude[i]/180*PI; longi=longitude[i]/180*PI;
++
++			delPhi=fabs(lati-late); delLambda=fabs(longi-longe);
++			alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));
++			cosalpha=cos(alpha); //compute this to speed up the elastic component.
++
++			//Rigid earth gravitational perturbation:
++			if(compute_G_rigid)G_rigid[i]=1.0/2.0/sin(alpha/2.0);
++
++			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
++			if(compute_G_elastic){
++				G_elastic[i] = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++				if(legendre_precompute){
++					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[reCast<int,IssmDouble>((M-1)*(cosalpha+1.0)/2.0)*nl+n];
++				}
++				else{
++					for(int n=0;n<nl;n++){
++						Pn=legendre(Pn1,Pn2,reCast<int,IssmDouble>(cosalpha),n); Pn1=Pn2; Pn2=Pn;
++						G_elastic[i] += deltalove[n]*Pn;
++					}
++				}
++			}
++		}
++
++		/*Add all components to the pSgi or pSgo solution vectors:*/
++		if(computerigid)pSgo->SetValue(i,3*rho_water/rho_earth*area/eartharea*I*G_rigid[i],ADD_VAL);
++		if(computeelastic)pSgo->SetValue(i,3*rho_water/rho_earth*area/eartharea*I*G_elastic[i],ADD_VAL);
++	}
++
++	/*Save G_rigid and G_elastic if computed:*/
++	if(G_rigid)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGRigidEnum,G_rigid,gsize));
++	if(G_elastic)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGElasticEnum,G_elastic,gsize));
++
++	/*Free ressources:*/
++	if(compute_G_elastic){
++		xDelete<IssmDouble>(love_h);
++		xDelete<IssmDouble>(love_k);
++		xDelete<IssmDouble>(deltalove);
++		xDelete<IssmDouble>(G_elastic);
++	}
++	if(compute_G_rigid) xDelete<IssmDouble>(G_rigid);
++
++	return;
++}
++/*}}}*/
++IssmDouble Tria::OceanAverage(IssmDouble* Sg){ /*{{{*/
++
++	if(IsWaterInElement()){
++		
++		IssmDouble area;
++
++		/*Compute area of element:*/
++		area=GetArea3D();
++
++		/*Average Sg over vertices:*/
++		IssmDouble Sg_avg=0; for(int i=0;i<NUMVERTICES;i++) Sg_avg+=Sg[this->vertices[i]->Sid()]/NUMVERTICES;
++
++		/*return: */
++		return area*Sg_avg;
++	}
++	else return 0;
++
++}
++/*}}}*/
+ IssmDouble    Tria::OceanArea(void){ /*{{{*/
+ 
+ 	if(IsWaterInElement()) return GetArea3D();
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20007)
+@@ -143,7 +143,9 @@
+ 		void   GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
+ 		#endif
+ 		#ifdef _HAVE_SEALEVELRISE_
+-		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea);
++		void    SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea);
++		void    SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea);
++		IssmDouble OceanAverage(IssmDouble* Sg);
+ 		IssmDouble OceanArea(void);
+ 		#endif
+ 		/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20007)
+@@ -170,6 +170,7 @@
+ 		void           VerticalSegmentIndices(int** pindices,int* pnumseg);
+ 		void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void           ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
++		IssmDouble     GetArea3D(void){_error_("not implemented yet!");};
+ 
+ 		#ifdef _HAVE_DAKOTA_
+ 		void           InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
+@@ -180,8 +181,10 @@
+ 		void           GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
+ 		#endif
+ 		#ifdef _HAVE_SEALEVELRISE_
+-		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z, IssmDouble oceanarea){_error_("not implemented yet!");};
++		void    SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
++		void    SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
+ 		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++		IssmDouble    OceanAverage(IssmDouble* Sg){_error_("not implemented yet!");};
+ 		#endif
+ 
+ 		/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20007)
+@@ -160,14 +160,17 @@
+ 		void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
+ 		void        ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");};
+ 		void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented");};
++		IssmDouble     GetArea3D(void){_error_("not implemented yet!");};
+ 
+ #ifdef _HAVE_GIA_
+ 		void        GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};
+ #endif
+ 
+ #ifdef _HAVE_SEALEVELRISE_
+-		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){_error_("not implemented yet!");};
++		void    SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
++		void    SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
+ 		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++		IssmDouble    OceanAverage(IssmDouble* Sg){_error_("not implemented yet!");};
+ #endif
+ 
+ #ifdef _HAVE_DAKOTA_
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20007)
+@@ -167,13 +167,16 @@
+ 		void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
+ 		void        ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
+ 		void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
++		IssmDouble     GetArea3D(void){_error_("not implemented yet!");};
+ 
+ #ifdef _HAVE_GIA_
+ 		void        GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};
+ #endif
+ #ifdef _HAVE_SEALEVELRISE_
+-		void    Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo,IssmDouble* peustatic,IssmDouble* Sg_old,IssmDouble* Sgi_old,IssmDouble* Sgo_old,IssmDouble* x,IssmDouble* y,IssmDouble* z,IssmDouble oceanarea){_error_("not implemented yet!");};
++		void    SealevelriseEustatic(Vector<IssmDouble>* pSgi,IssmDouble* peustatic,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
++		void    SealevelriseNonEustatic(Vector<IssmDouble>* pSgo,IssmDouble* Sg_old,IssmDouble* latitude,IssmDouble* longitude,IssmDouble* radius,IssmDouble oceanarea,IssmDouble eartharea){_error_("not implemented yet!");};
+ 		IssmDouble    OceanArea(void){_error_("not implemented yet!");};
++		IssmDouble    OceanAverage(IssmDouble* Sg){_error_("not implemented yet!");};
+ #endif
+ 
+ #ifdef _HAVE_DAKOTA_
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 20006)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 20007)
+@@ -112,7 +112,9 @@
+ 		void Deflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt, IssmDouble* x, IssmDouble* y);
+ 		#endif
+ 		#ifdef _HAVE_SEALEVELRISE_
+-		void Sealevelrise(Vector<IssmDouble>* pSgi,Vector<IssmDouble>* pSgo, IssmDouble* peustatic, Vector<IssmDouble>* pSg_old, Vector<IssmDouble>* pSgi_old,Vector<IssmDouble>* pSgo_old,IssmDouble* x, IssmDouble* y, IssmDouble* z);
++		void SealevelriseEustatic(Vector<IssmDouble>* pSgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);
++		void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution);
++		IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg);
+ 		#endif
+ 		void TimeAdaptx(IssmDouble* pdt);
+ 		void UpdateConstraintsx(void);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20007-20008.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20007-20008.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20007-20008.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch	(revision 20007)
++++ ../trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch	(revision 20008)
+@@ -2,5 +2,5 @@
+ < # TODO: Can't this be integrated into the following logic?
+ ---
+ > # TODO: Can't this be integrated into the following logic?
+-> set(BLAS_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
+-> set(LAPACK_LIBS "-L/opt/apps/intel/11.1/mkl/lib/em64t/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
++> set(BLAS_LIBS "-L/opt/apps/intel/16.0.1.150/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
++> set(LAPACK_LIBS "-L/opt/apps/intel/16.0.1.150/compilers_and_libraries_2016.1.150/linux/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh	(revision 20007)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh	(revision 20008)
+@@ -21,7 +21,7 @@
+ #Set up Dakota cmake variables and config
+ export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+ export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++export MPIHOME=/opt/cray/mpt/default/gni/mpich-intel/14.0/
+ cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+ patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.patch
+ patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
+@@ -35,9 +35,9 @@
+ #Configure dakota
+ cd $DAK_BUILD
+ 
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++cmake -D CMAKE_C_COMPILER=/opt/apps/intel16/cray_mpich/7.3.0/bin/mpicc \
++	   -D CMAKE_CXX_COMPILER=/opt/apps/intel16/cray_mpich/7.3.0/bin/mpicxx \
++	   -D CMAKE_Fortran_COMPILER=/opt/apps/intel16/cray_mpich/7.3.0/bin/mpif77 \
+ 		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+ 		-C $DAK_SRC/cmake/DakotaDev.cmake \
+ 		$DAK_SRC
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 20007)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 20008)
+@@ -19,8 +19,8 @@
+ 	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+ 	--with-blas-lapack-dir="$TACC_MKL_LIB" \
+-	--with-mpi-lib="/opt/cray/mpt/default/gni/mpich-cray64/8.3/lib/libmpich.so" \
+-	--with-mpi-include="/opt/cray/mpt/default/gni/mpich-cray64/8.3/include" \
++	--with-mpi-lib="/opt/cray/mpt/default/gni/mpich-intel/14.0/lib/libmpich.so" \
++	--with-mpi-include="/opt/cray/mpt/default/gni/mpich-intel/14.0/include" \
+ 	--known-mpi-shared-libraries=1 \
+ 	--with-debugging=0 \
+ 	--with-valgrind=0 \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20008-20009.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20008-20009.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20008-20009.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20008)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20009)
+@@ -112,7 +112,7 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 
+ 			 fprintf(fid,'#!/bin/bash\n');
+-			 fprintf(fid,'#SBATCH -J %s\n',modelname);
++			 fprintf(fid,'#SBATCH -J %s \n',modelname);
+ 			 fprintf(fid,'#SBATCH -p %s \n',cluster.queue);
+ 			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#SBATCH -e %s.errlog \n',modelname);
+@@ -123,8 +123,8 @@
+ 				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
+ 			 end
+ 			 if length(find(cluster.email=='@'))>0
+-				 fprintf(fid,'#SBATCH --mail-user=%s\n',cluster.email);
+-				 fprintf(fid,'#SBATCH --mail-type=end\n');
++				 fprintf(fid,'#SBATCH --mail-user=%s \n',cluster.email);
++				 fprintf(fid,'#SBATCH --mail-type=end \n\n');
+ 			 end
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
Index: /issm/oecreview/Archive/19101-20495/ISSM-20009-20010.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20009-20010.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20009-20010.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20009)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20010)
+@@ -2215,7 +2215,7 @@
+ 	IssmDouble  oceanarea_cpu=0;
+ 	IssmDouble  eartharea=0;
+ 	IssmDouble  eartharea_cpu=0;
+-	int         ns;
++	int         ns,nsmax;
+ 	
+ 	/*Go through elements, and add contribution from each element to the deflection vector wg:*/
+ 	ns = elements->Size();
+@@ -2232,14 +2232,21 @@
+ 	ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
+ 	ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+ 
++	/*Figure out max of ns: */
++	ISSM_MPI_Reduce(&ns,&nsmax,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm());
++	ISSM_MPI_Bcast(&nsmax,1,ISSM_MPI_INT,0,IssmComm::GetComm());
++
+ 	/*Call the sea level rise core: */
+-	for(int i=0;i<ns;i++){
++	for(int i=0;i<nsmax;i++){
++		if(i<ns){
+ 		
+-		if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
+-	
+-		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+-		element->SealevelriseEustatic(pSgi,&eustatic_cpu_e,latitude,longitude,radius,oceanarea,eartharea);
+-		eustatic_cpu+=eustatic_cpu_e;
++			if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++		
++			Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++			element->SealevelriseEustatic(pSgi,&eustatic_cpu_e,latitude,longitude,radius,oceanarea,eartharea);
++			eustatic_cpu+=eustatic_cpu_e;
++		}
++		pSgi->Assemble();
+ 	}
+ 	if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
+ 
+@@ -2262,14 +2269,14 @@
+ 	IssmDouble  eartharea=0;
+ 	IssmDouble  eartharea_cpu=0;
+ 
+-	int         ns;
++	int         ns,nsmax;
+ 	
+ 	/*Serialize vectors from previous iteration:*/
+ 	Sg_old=pSg_old->ToMPISerial();
+ 
+ 	/*Go through elements, and add contribution from each element to the deflection vector wg:*/
+ 	ns = elements->Size();
+-
++	
+ 	/*First, figure out the area of the ocean, which is needed to compute the eustatic component: */
+ 	for(int i=0;i<ns;i++){
+ 		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+@@ -2282,17 +2289,23 @@
+ 	ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
+ 	ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+ 
++	/*Figure out max of ns: */
++	ISSM_MPI_Reduce(&ns,&nsmax,1,ISSM_MPI_INT,ISSM_MPI_MAX,0,IssmComm::GetComm());
++	ISSM_MPI_Bcast(&nsmax,1,ISSM_MPI_INT,0,IssmComm::GetComm());
++
+ 	/*Call the sea level rise core: */
+-	for(int i=0;i<ns;i++){
++	for(int i=0;i<nsmax;i++){
++		if(i<ns){
+ 
+-		if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
+-		
+-		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+-		element->SealevelriseNonEustatic(pSgo, Sg_old,latitude,longitude,radius,oceanarea,eartharea);
++			if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++
++			Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++			element->SealevelriseNonEustatic(pSgo, Sg_old,latitude,longitude,radius,oceanarea,eartharea);
++		}
++		pSgo->Assemble();
+ 	}
+ 	if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
+ 
+-
+ 	/*Free ressources:*/
+ 	xDelete<IssmDouble>(Sg_old);
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20010-20011.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20010-20011.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20010-20011.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20010)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20011)
+@@ -2240,13 +2240,13 @@
+ 	for(int i=0;i<nsmax;i++){
+ 		if(i<ns){
+ 		
+-			if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++			if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%100==0)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
+ 		
+ 			Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+ 			element->SealevelriseEustatic(pSgi,&eustatic_cpu_e,latitude,longitude,radius,oceanarea,eartharea);
+ 			eustatic_cpu+=eustatic_cpu_e;
+ 		}
+-		pSgi->Assemble();
++		if(i%100==0)pSgi->Assemble();
+ 	}
+ 	if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
+ 
+@@ -2297,12 +2297,12 @@
+ 	for(int i=0;i<nsmax;i++){
+ 		if(i<ns){
+ 
+-			if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%1000)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
++			if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())if(i%100==0)_printf_("\r" << "      convolution progress: " << (float)i/(float)ns*100 << "\%");
+ 
+ 			Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+ 			element->SealevelriseNonEustatic(pSgo, Sg_old,latitude,longitude,radius,oceanarea,eartharea);
+ 		}
+-		pSgo->Assemble();
++		if(i%100==0)pSgo->Assemble();
+ 	}
+ 	if(verboseconvolution)if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20011-20012.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20011-20012.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20011-20012.diff	(revision 20498)
@@ -0,0 +1,88 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20011)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20012)
+@@ -3617,7 +3617,10 @@
+ 	}
+ 
+ 	if(computeelastic | computerigid){
++		int* indices=xNew<int>(gsize);
++		IssmDouble* values=xNew<IssmDouble>(gsize);
+ 		for(int i=0;i<gsize;i++){
++			indices[i]=i;
+ 
+ 			IssmDouble alpha;
+ 			IssmDouble G_rigid=0;  //do not remove =0!
+@@ -3651,9 +3654,13 @@
+ 			}
+ 
+ 			/*Add all components to the pSgi or pSgo solution vectors:*/
+-			pSgi->SetValue(i,3*rho_ice/rho_earth*area/eartharea*I*(G_rigid+G_elastic),ADD_VAL);
+-			
++			values[i]=3*rho_ice/rho_earth*area/eartharea*I*(G_rigid+G_elastic);
+ 		}
++		pSgi->SetValues(gsize,indices,values,ADD_VAL);
++		
++		/*free ressources:*/
++		xDelete<IssmDouble>(values);
++		xDelete<int>(indices);
+ 	}
+ 	
+ 	/*Assign output pointer:*/
+@@ -3692,6 +3699,9 @@
+ 	IssmDouble* legendre_coefficients=NULL;
+ 	int         M;
+ 
++	/*optimization:*/
++	bool store_green_functions=false;
++
+ 	/*ice properties: */
+ 	IssmDouble rho_ice,rho_water,rho_earth;
+ 
+@@ -3715,6 +3725,7 @@
+ 	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+ 	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
++	this->parameters->FindParam(&store_green_functions,SealevelriseStoreGreenFunctionsEnum);
+ 	
+ 	/*early return if rigid or elastic not requested:*/
+ 	if(!computerigid && !computeelastic) return;
+@@ -3804,8 +3815,12 @@
+ 		G_rigid=xNew<IssmDouble>(gsize);
+ 	}
+ 
++	int* indices=xNew<int>(gsize);
++	IssmDouble* values=xNewZeroInit<IssmDouble>(gsize);
++
+ 	for(int i=0;i<gsize;i++){
+ 
++		indices[i]=i; 
+ 		if(compute_G_elastic | compute_G_rigid){
+ 			IssmDouble alpha;
+ 			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
+@@ -3838,13 +3853,21 @@
+ 		}
+ 
+ 		/*Add all components to the pSgi or pSgo solution vectors:*/
+-		if(computerigid)pSgo->SetValue(i,3*rho_water/rho_earth*area/eartharea*I*G_rigid[i],ADD_VAL);
+-		if(computeelastic)pSgo->SetValue(i,3*rho_water/rho_earth*area/eartharea*I*G_elastic[i],ADD_VAL);
++		if(computerigid)values[i]+=3*rho_water/rho_earth*area/eartharea*I*G_rigid[i];
++		if(computeelastic)values[i]+=3*rho_water/rho_earth*area/eartharea*I*G_elastic[i];
+ 	}
++	
++	pSgo->SetValues(gsize,indices,values,ADD_VAL);
+ 
++	/*free ressources:*/
++	xDelete<IssmDouble>(values);
++	xDelete<int>(indices);
++
+ 	/*Save G_rigid and G_elastic if computed:*/
+-	if(G_rigid)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGRigidEnum,G_rigid,gsize));
+-	if(G_elastic)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGElasticEnum,G_elastic,gsize));
++	if(store_green_functions){
++		if(G_rigid)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGRigidEnum,G_rigid,gsize));
++		if(G_elastic)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGElasticEnum,G_elastic,gsize));
++	}
+ 
+ 	/*Free ressources:*/
+ 	if(compute_G_elastic){
Index: /issm/oecreview/Archive/19101-20495/ISSM-20012-20013.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20012-20013.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20012-20013.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20012)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20013)
+@@ -1,12 +1,21 @@
+-function mask = gmtmask(lat,long)
++function mask = gmtmask(lat,long,varargin)
+ %GMTMASK - figure out which lat,long points are on the ocean
+ %
+ %   Usage:
+ %      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
+ %
+ 
+-	disp(sprintf('gmtmask: num vertices %i',length(lat)));
++	%are we doing a recursive call? 
++	if nargin==3,
++		recursive=1;
++	else 
++		recursive=0;
++	end
+ 	
++	if(recursive)disp(sprintf('             recursing: num vertices %i',length(lat)));
++	else disp(sprintf('gmtmask: num vertices %i',length(lat)));
++	end
++	
+ 	%Check lat and long size is not more than 50,000; If so, recursively call gmtmask: 
+ 	if length(lat)>50000,
+ 		for i=1:50000:length(lat),
+@@ -14,7 +23,7 @@
+ 			if j>length(lat),
+ 				j=length(lat);
+ 			end
+-			mask(i:j)=gmtmask(lat(i:j),long(i:j));
++			mask(i:j)=gmtmask(lat(i:j),long(i:j),1);
+ 		end
+ 		return
+ 	end
+@@ -30,7 +39,7 @@
+ 	end
+ 
+ 	%figure out which vertices are on the ocean, which one on the continent:
+-	system('gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/k/s/k > ./oce_vertices.txt');
++	system('gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices.txt');
+ 
+ 	%reset DYLD_LIBRARY_PATH to what it was: 
+ 	if ismac,
+@@ -52,4 +61,4 @@
+ 	mask(oce_vertices)=1;
+ 	
+ 	system('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history');
+-	disp(sprintf('gmtmask: done'));
++	if ~recursive, disp(sprintf('gmtmask: done')); end;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20013-20014.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20013-20014.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20013-20014.diff	(revision 20498)
@@ -0,0 +1,87 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20013)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20014)
+@@ -54,8 +54,8 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseLegendrePrecomputeEnum));
++	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseStoreGreenFunctionsEnum));
+ 
+-	
+ 	/*love numbers: */
+ 	iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
+ 	iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20013)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20014)
+@@ -1036,6 +1036,7 @@
+ 	SealevelriseLegendreCoefficientsEnum,
+ 	SealevelriseGRigidEnum,
+ 	SealevelriseGElasticEnum,
++	SealevelriseStoreGreenFunctionsEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20013)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20014)
+@@ -990,6 +990,7 @@
+ 		case SealevelriseLegendreCoefficientsEnum : return "SealevelriseLegendreCoefficients";
+ 		case SealevelriseGRigidEnum : return "SealevelriseGRigid";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
++		case SealevelriseStoreGreenFunctionsEnum : return "SealevelriseStoreGreenFunctions";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20013)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20014)
+@@ -1014,6 +1014,7 @@
+ 	      else if (strcmp(name,"SealevelriseLegendreCoefficients")==0) return SealevelriseLegendreCoefficientsEnum;
+ 	      else if (strcmp(name,"SealevelriseGRigid")==0) return SealevelriseGRigidEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
++	      else if (strcmp(name,"SealevelriseStoreGreenFunctions")==0) return SealevelriseStoreGreenFunctionsEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20013)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20014)
+@@ -975,4 +975,5 @@
+ function SealevelriseLegendreCoefficientsEnum(){ return 971;}
+ function SealevelriseGRigidEnum(){ return 972;}
+ function SealevelriseGElasticEnum(){ return 973;}
+-function MaximumNumberOfDefinitionsEnum(){ return 974;}
++function SealevelriseStoreGreenFunctionsEnum(){ return 974;}
++function MaximumNumberOfDefinitionsEnum(){ return 975;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m	(revision 20014)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseStoreGreenFunctionsEnum()
++%SEALEVELRISESTOREGREENFUNCTIONSENUM - Enum of SealevelriseStoreGreenFunctions
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseStoreGreenFunctionsEnum()
++
++macro=StringToEnum('SealevelriseStoreGreenFunctions');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20013)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20014)
+@@ -982,4 +982,5 @@
+ def SealevelriseLegendreCoefficientsEnum(): return StringToEnum("SealevelriseLegendreCoefficients")[0]
+ def SealevelriseGRigidEnum(): return StringToEnum("SealevelriseGRigid")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
++def SealevelriseStoreGreenFunctionsEnum(): return StringToEnum("SealevelriseStoreGreenFunctions")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20014-20015.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20014-20015.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20014-20015.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20014)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20015)
+@@ -16,6 +16,7 @@
+ 		eustatic         = 0;
+ 		legendre_precompute = 0;
+ 		legendre_coefficients = NaN;
++		store_green_functions = 0;
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -41,9 +42,12 @@
+ 		self.eustatic=1;
+ 		
+ 		%legendre coefficients: 
+-		legendre_precompute = 0;
+-		legendre_coefficients = NaN;
++		self.legendre_precompute = 0;
++		self.legendre_coefficients = NaN;
+ 
++		%optimization: 
++		self.store_green_functions=1;
++
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+@@ -54,6 +58,7 @@
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
++			md = checkfield(md,'fieldname','slr.store_green_functions','value',[0 1]);
+ 
+ 			%check that love numbers are provided at the same level of accuracy: 
+ 			if (size(self.love_h,1) ~= size(self.love_k,1)),
+@@ -78,6 +83,7 @@
+ 			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
++			fielddisplay(self,'store_green_functions','store green functions (default 1) to speed up solutoin (though memory intense)');
+ 			fielddisplay(self,'legendre_precompute','precompute legendre coefficients? (default is 0)');
+ 			if(self.legendre_precompute)
+ 				fielddisplay(self,'legendre_coefficients','precomputed legendre coefficients');
+@@ -94,6 +100,7 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','store_green_functions','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_precompute','format','Boolean');
+ 			if(self.legendre_precompute),
+ 				WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_coefficients','format','DoubleMat','mattype',1);
+@@ -107,6 +114,7 @@
+ 			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+ 			writejs1Darray(fid,[modelname '.srl.love_h'],self.love_h);
+ 			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
++			writejsdouble(fid,[modelname '.slr.store_green_functions'],self.store_green_functions);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
+ 			writejsdouble(fid,[modelname '.slr.legendre_precompute'],self.legendre_precompute);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20015-20016.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20015-20016.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20015-20016.diff	(revision 20498)
@@ -0,0 +1,884 @@
+Index: ../trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp	(revision 20015)
++++ ../trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp	(revision 20016)
+@@ -131,6 +131,11 @@
+ 					vy  = vy/(vel+1.e-9);
+ 					for(i=0;i<numnodes;i++) pe->values[i]+= - weight*(dH[0]*(-vy)+dH[1]*vx)*(dbasis[0*numnodes+i]*(-vy)+dbasis[1*numnodes+i]*vx)*Jdet*gauss->weight;
+ 					break;
++				case ThicknessPositiveEnum:
++					if(thickness<0){
++						for(i=0;i<numnodes;i++) pe->values[i]+= - weight*2*thickness*Jdet*gauss->weight*basis[i];
++					}
++					break;
+ 				default:
+ 					_error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+ 			}
+@@ -180,6 +185,7 @@
+ 		case ThicknessAbsGradientEnum:    /*Nothing, \partial J/\partial k = 0*/ break;
+ 		case ThicknessAlongGradientEnum:  /*Nothing, \partial J/\partial k = 0*/ break;
+ 		case ThicknessAcrossGradientEnum: /*Nothing, \partial J/\partial k = 0*/ break;
++		case ThicknessPositiveEnum:       /*Nothing, \partial J/\partial k = 0*/ break;
+ 		default: _error_("response " << EnumToStringx(responses[resp]) << " not supported yet");
+ 	}
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20015)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20016)
+@@ -694,6 +694,7 @@
+ 	ThicknessAbsGradientEnum,
+ 	ThicknessAlongGradientEnum,
+ 	ThicknessAcrossGradientEnum,
++	ThicknessPositiveEnum,
+ 	IntMatParamEnum,
+ 	RheologyBbarAbsGradientEnum,
+ 	RheologyBAbsGradientEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20015)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20016)
+@@ -680,6 +680,7 @@
+ 		case ThicknessAbsGradientEnum : return "ThicknessAbsGradient";
+ 		case ThicknessAlongGradientEnum : return "ThicknessAlongGradient";
+ 		case ThicknessAcrossGradientEnum : return "ThicknessAcrossGradient";
++		case ThicknessPositiveEnum : return "ThicknessPositive";
+ 		case IntMatParamEnum : return "IntMatParam";
+ 		case RheologyBbarAbsGradientEnum : return "RheologyBbarAbsGradient";
+ 		case RheologyBAbsGradientEnum : return "RheologyBAbsGradient";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20015)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20016)
+@@ -695,6 +695,7 @@
+ 	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
+ 	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
+ 	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
++	      else if (strcmp(name,"ThicknessPositive")==0) return ThicknessPositiveEnum;
+ 	      else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
+ 	      else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
+ 	      else if (strcmp(name,"RheologyBAbsGradient")==0) return RheologyBAbsGradientEnum;
+@@ -750,11 +751,11 @@
+ 	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
+ 	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
+ 	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
+-	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
++	      if (strcmp(name,"P1P1")==0) return P1P1Enum;
++	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
+ 	      else if (strcmp(name,"MINI")==0) return MINIEnum;
+ 	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
+ 	      else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
+@@ -873,11 +874,11 @@
+ 	      else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
+ 	      else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
+ 	      else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
+-	      else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
++	      if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
++	      else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
+ 	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+ 	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+ 	      else if (strcmp(name,"MassfluxatgateDefinitionenum")==0) return MassfluxatgateDefinitionenumEnum;
+@@ -996,11 +997,11 @@
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+-	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+          else stage=9;
+    }
+    if(stage==9){
+-	      if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
++	      if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
++	      else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
+ 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
+ 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+ 	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20015)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20016)
+@@ -31,6 +31,7 @@
+ 	iomodel->Constant(&domaintype,DomainTypeEnum);
+ 	for(int i=0;i<num_cost_functions;i++){
+ 		cost_function= reCast<int,IssmDouble>(iomodel->Data(InversionCostFunctionsEnum)[i]);
++		iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(elements,InversionSurfaceObsEnum);
+ 		else if(cost_function==SurfaceAbsVelMisfitEnum
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20015)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20016)
+@@ -1039,8 +1039,9 @@
+ 				case ThicknessAbsGradientEnum:      this->ThicknessAbsGradientx(&double_result);                                                    break;
+ 				case ThicknessAlongGradientEnum:    ThicknessAlongGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);     break;
+ 				case ThicknessAcrossGradientEnum:   ThicknessAcrossGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);    break;
++				case ThicknessPositiveEnum:         this->ThicknessPositivex(&double_result);                                                       break;
+ 				case RheologyBbarAbsGradientEnum:   RheologyBbarAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);    break;
+-				case RheologyBAbsGradientEnum:      RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);  break;
++				case RheologyBAbsGradientEnum:      RheologyBAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters);       break;
+ 				case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(&double_result,elements,nodes,vertices,loads,materials,parameters); break;
+ 				case BalancethicknessMisfitEnum:    BalancethicknessMisfitx(&double_result);                                                        break;
+ 				case SurfaceAbsMisfitEnum:          SurfaceAbsMisfitx(&double_result); break;
+@@ -1953,6 +1954,64 @@
+ 	*pJ=J;
+ }
+ /*}}}*/
++void FemModel::ThicknessPositivex(IssmDouble* pJ){/*{{{*/
++
++	/*output: */
++	IssmDouble J=0.;
++	IssmDouble J_sum;
++
++	IssmDouble  thickness,weight;
++	IssmDouble  Jdet;
++	IssmDouble* xyz_list = NULL;
++	IssmDouble  H;
++
++	/*Compute Misfit: */
++	for(int i=0;i<elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
++
++		/*If on water, return 0: */
++		if(!element->IsIceInElement()) continue;
++
++		/* Get node coordinates*/
++		element->GetVerticesCoordinates(&xyz_list);
++
++		/*Retrieve all inputs we will be needing: */
++		Input* weights_input   =element->GetInput(InversionCostFunctionsCoefficientsEnum); _assert_(weights_input);
++		Input* thickness_input =element->GetInput(ThicknessEnum);                          _assert_(thickness_input);
++
++		/* Start  looping on the number of gaussian points: */
++		Gauss* gauss=element->NewGauss(2);
++		for(int ig=gauss->begin();ig<gauss->end();ig++){
++
++			gauss->GaussPoint(ig);
++
++			/* Get Jacobian determinant: */
++			element->JacobianDeterminant(&Jdet,xyz_list,gauss);
++
++			/*Get all parameters at gaussian point*/
++			weights_input->GetInputValue(&weight,gauss,ThicknessPositiveEnum);
++			thickness_input->GetInputValue(&H,gauss);
++
++			/*int min(H,0)^2 */
++			if(H<=0){
++				J+=weight*H*H*Jdet*gauss->weight;
++			}
++		}
++
++		/*clean up and Return: */
++		xDelete<IssmDouble>(xyz_list);
++		delete gauss;
++	}
++
++	/*Sum all J from all cpus of the cluster:*/
++	ISSM_MPI_Reduce (&J,&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&J_sum,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++	J=J_sum;
++
++	/*Assign output pointers: */
++	*pJ=J;
++}
++/*}}}*/
+ void FemModel::CostFunctionx(IssmDouble* pJ,IssmDouble** pJlist,int* pn){/*{{{*/
+ 
+ 	/*Intermediary*/
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 20015)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 20016)
+@@ -107,6 +107,7 @@
+ 		void OutputControlsx(Results **presults);
+ 		void CostFunctionx(IssmDouble* pJ,IssmDouble** pJlist,int* pn);
+ 		void ThicknessAbsGradientx( IssmDouble* pJ);
++		void ThicknessPositivex(IssmDouble* pJ);
+ 		void SurfaceAbsMisfitx( IssmDouble* pJ);
+ 		#ifdef _HAVE_GIA_
+ 		void Deflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt, IssmDouble* x, IssmDouble* y);
+Index: ../trunk-jpl/src/m/inversions/marshallcostfunctions.m
+===================================================================
+--- ../trunk-jpl/src/m/inversions/marshallcostfunctions.m	(revision 20015)
++++ ../trunk-jpl/src/m/inversions/marshallcostfunctions.m	(revision 20016)
+@@ -12,4 +12,5 @@
+ 	pos=find(cost_functions==505); data(pos)=ThicknessAcrossGradientEnum();
+ 	pos=find(cost_functions==506); data(pos)=BalancethicknessMisfitEnum();
+ 	pos=find(cost_functions==507); data(pos)=RheologyBAbsGradientEnum();
++	pos=find(cost_functions==510); data(pos)=ThicknessPositiveEnum();
+ 	pos=find(cost_functions==601); data(pos)=SurfaceAbsMisfitEnum();
+Index: ../trunk-jpl/src/m/inversions/supportedcostfunctions.m
+===================================================================
+--- ../trunk-jpl/src/m/inversions/supportedcostfunctions.m	(revision 20015)
++++ ../trunk-jpl/src/m/inversions/supportedcostfunctions.m	(revision 20016)
+@@ -1,3 +1,3 @@
+ function list = supportedcostfunctions(),
+ 
+-	list = [101:105 201 501:507 601:604];
++	list = [101:105 201 501:507 510 601:604];
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20015)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20016)
+@@ -665,315 +665,316 @@
+ function ThicknessAbsGradientEnum(){ return 661;}
+ function ThicknessAlongGradientEnum(){ return 662;}
+ function ThicknessAcrossGradientEnum(){ return 663;}
+-function IntMatParamEnum(){ return 664;}
+-function RheologyBbarAbsGradientEnum(){ return 665;}
+-function RheologyBAbsGradientEnum(){ return 666;}
+-function DragCoefficientAbsGradientEnum(){ return 667;}
+-function TransientInputEnum(){ return 668;}
+-function WaterfractionEnum(){ return 669;}
+-function WatercolumnEnum(){ return 670;}
+-function BasalFrictionEnum(){ return 671;}
+-function ViscousHeatingEnum(){ return 672;}
+-function HydrologyWaterVxEnum(){ return 673;}
+-function HydrologyWaterVyEnum(){ return 674;}
+-function DrivingStressXEnum(){ return 675;}
+-function DrivingStressYEnum(){ return 676;}
+-function SigmaNNEnum(){ return 677;}
+-function StressTensorEnum(){ return 678;}
+-function StressTensorxxEnum(){ return 679;}
+-function StressTensorxyEnum(){ return 680;}
+-function StressTensorxzEnum(){ return 681;}
+-function StressTensoryyEnum(){ return 682;}
+-function StressTensoryzEnum(){ return 683;}
+-function StressTensorzzEnum(){ return 684;}
+-function StressMaxPrincipalEnum(){ return 685;}
+-function DeviatoricStressEnum(){ return 686;}
+-function DeviatoricStressxxEnum(){ return 687;}
+-function DeviatoricStressxyEnum(){ return 688;}
+-function DeviatoricStressxzEnum(){ return 689;}
+-function DeviatoricStressyyEnum(){ return 690;}
+-function DeviatoricStressyzEnum(){ return 691;}
+-function DeviatoricStresszzEnum(){ return 692;}
+-function DeviatoricStresseffectiveEnum(){ return 693;}
+-function StrainRateEnum(){ return 694;}
+-function StrainRatexxEnum(){ return 695;}
+-function StrainRatexyEnum(){ return 696;}
+-function StrainRatexzEnum(){ return 697;}
+-function StrainRateyyEnum(){ return 698;}
+-function StrainRateyzEnum(){ return 699;}
+-function StrainRatezzEnum(){ return 700;}
+-function DivergenceEnum(){ return 701;}
+-function MaxDivergenceEnum(){ return 702;}
+-function GiaCrossSectionShapeEnum(){ return 703;}
+-function GiadWdtEnum(){ return 704;}
+-function GiaWEnum(){ return 705;}
+-function P0Enum(){ return 706;}
+-function P0ArrayEnum(){ return 707;}
+-function P1Enum(){ return 708;}
+-function P1DGEnum(){ return 709;}
+-function P1bubbleEnum(){ return 710;}
+-function P1bubblecondensedEnum(){ return 711;}
+-function P2Enum(){ return 712;}
+-function P2bubbleEnum(){ return 713;}
+-function P2bubblecondensedEnum(){ return 714;}
+-function P2xP1Enum(){ return 715;}
+-function P1xP2Enum(){ return 716;}
+-function P1xP3Enum(){ return 717;}
+-function P2xP4Enum(){ return 718;}
+-function P1P1Enum(){ return 719;}
+-function P1P1GLSEnum(){ return 720;}
+-function MINIEnum(){ return 721;}
+-function MINIcondensedEnum(){ return 722;}
+-function TaylorHoodEnum(){ return 723;}
+-function LATaylorHoodEnum(){ return 724;}
+-function XTaylorHoodEnum(){ return 725;}
+-function OneLayerP4zEnum(){ return 726;}
+-function CrouzeixRaviartEnum(){ return 727;}
+-function LACrouzeixRaviartEnum(){ return 728;}
+-function SaveResultsEnum(){ return 729;}
+-function BoolExternalResultEnum(){ return 730;}
+-function DoubleExternalResultEnum(){ return 731;}
+-function DoubleMatExternalResultEnum(){ return 732;}
+-function IntExternalResultEnum(){ return 733;}
+-function JEnum(){ return 734;}
+-function StringExternalResultEnum(){ return 735;}
+-function StepEnum(){ return 736;}
+-function TimeEnum(){ return 737;}
+-function WaterColumnOldEnum(){ return 738;}
+-function OutputdefinitionEnum(){ return 739;}
+-function Outputdefinition1Enum(){ return 740;}
+-function Outputdefinition2Enum(){ return 741;}
+-function Outputdefinition3Enum(){ return 742;}
+-function Outputdefinition4Enum(){ return 743;}
+-function Outputdefinition5Enum(){ return 744;}
+-function Outputdefinition6Enum(){ return 745;}
+-function Outputdefinition7Enum(){ return 746;}
+-function Outputdefinition8Enum(){ return 747;}
+-function Outputdefinition9Enum(){ return 748;}
+-function Outputdefinition10Enum(){ return 749;}
+-function Outputdefinition11Enum(){ return 750;}
+-function Outputdefinition12Enum(){ return 751;}
+-function Outputdefinition13Enum(){ return 752;}
+-function Outputdefinition14Enum(){ return 753;}
+-function Outputdefinition15Enum(){ return 754;}
+-function Outputdefinition16Enum(){ return 755;}
+-function Outputdefinition17Enum(){ return 756;}
+-function Outputdefinition18Enum(){ return 757;}
+-function Outputdefinition19Enum(){ return 758;}
+-function Outputdefinition20Enum(){ return 759;}
+-function Outputdefinition21Enum(){ return 760;}
+-function Outputdefinition22Enum(){ return 761;}
+-function Outputdefinition23Enum(){ return 762;}
+-function Outputdefinition24Enum(){ return 763;}
+-function Outputdefinition25Enum(){ return 764;}
+-function Outputdefinition26Enum(){ return 765;}
+-function Outputdefinition27Enum(){ return 766;}
+-function Outputdefinition28Enum(){ return 767;}
+-function Outputdefinition29Enum(){ return 768;}
+-function Outputdefinition30Enum(){ return 769;}
+-function Outputdefinition31Enum(){ return 770;}
+-function Outputdefinition32Enum(){ return 771;}
+-function Outputdefinition33Enum(){ return 772;}
+-function Outputdefinition34Enum(){ return 773;}
+-function Outputdefinition35Enum(){ return 774;}
+-function Outputdefinition36Enum(){ return 775;}
+-function Outputdefinition37Enum(){ return 776;}
+-function Outputdefinition38Enum(){ return 777;}
+-function Outputdefinition39Enum(){ return 778;}
+-function Outputdefinition40Enum(){ return 779;}
+-function Outputdefinition41Enum(){ return 780;}
+-function Outputdefinition42Enum(){ return 781;}
+-function Outputdefinition43Enum(){ return 782;}
+-function Outputdefinition44Enum(){ return 783;}
+-function Outputdefinition45Enum(){ return 784;}
+-function Outputdefinition46Enum(){ return 785;}
+-function Outputdefinition47Enum(){ return 786;}
+-function Outputdefinition48Enum(){ return 787;}
+-function Outputdefinition49Enum(){ return 788;}
+-function Outputdefinition50Enum(){ return 789;}
+-function Outputdefinition51Enum(){ return 790;}
+-function Outputdefinition52Enum(){ return 791;}
+-function Outputdefinition53Enum(){ return 792;}
+-function Outputdefinition54Enum(){ return 793;}
+-function Outputdefinition55Enum(){ return 794;}
+-function Outputdefinition56Enum(){ return 795;}
+-function Outputdefinition57Enum(){ return 796;}
+-function Outputdefinition58Enum(){ return 797;}
+-function Outputdefinition59Enum(){ return 798;}
+-function Outputdefinition60Enum(){ return 799;}
+-function Outputdefinition61Enum(){ return 800;}
+-function Outputdefinition62Enum(){ return 801;}
+-function Outputdefinition63Enum(){ return 802;}
+-function Outputdefinition64Enum(){ return 803;}
+-function Outputdefinition65Enum(){ return 804;}
+-function Outputdefinition66Enum(){ return 805;}
+-function Outputdefinition67Enum(){ return 806;}
+-function Outputdefinition68Enum(){ return 807;}
+-function Outputdefinition69Enum(){ return 808;}
+-function Outputdefinition70Enum(){ return 809;}
+-function Outputdefinition71Enum(){ return 810;}
+-function Outputdefinition72Enum(){ return 811;}
+-function Outputdefinition73Enum(){ return 812;}
+-function Outputdefinition74Enum(){ return 813;}
+-function Outputdefinition75Enum(){ return 814;}
+-function Outputdefinition76Enum(){ return 815;}
+-function Outputdefinition77Enum(){ return 816;}
+-function Outputdefinition78Enum(){ return 817;}
+-function Outputdefinition79Enum(){ return 818;}
+-function Outputdefinition80Enum(){ return 819;}
+-function Outputdefinition81Enum(){ return 820;}
+-function Outputdefinition82Enum(){ return 821;}
+-function Outputdefinition83Enum(){ return 822;}
+-function Outputdefinition84Enum(){ return 823;}
+-function Outputdefinition85Enum(){ return 824;}
+-function Outputdefinition86Enum(){ return 825;}
+-function Outputdefinition87Enum(){ return 826;}
+-function Outputdefinition88Enum(){ return 827;}
+-function Outputdefinition89Enum(){ return 828;}
+-function Outputdefinition90Enum(){ return 829;}
+-function Outputdefinition91Enum(){ return 830;}
+-function Outputdefinition92Enum(){ return 831;}
+-function Outputdefinition93Enum(){ return 832;}
+-function Outputdefinition94Enum(){ return 833;}
+-function Outputdefinition95Enum(){ return 834;}
+-function Outputdefinition96Enum(){ return 835;}
+-function Outputdefinition97Enum(){ return 836;}
+-function Outputdefinition98Enum(){ return 837;}
+-function Outputdefinition99Enum(){ return 838;}
+-function Outputdefinition100Enum(){ return 839;}
+-function OutputdefinitionListEnum(){ return 840;}
+-function MassfluxatgateEnum(){ return 841;}
+-function MassfluxatgateNameEnum(){ return 842;}
+-function MassfluxatgateDefinitionenumEnum(){ return 843;}
+-function MassfluxatgateSegmentsEnum(){ return 844;}
+-function MisfitNameEnum(){ return 845;}
+-function MisfitDefinitionenumEnum(){ return 846;}
+-function MisfitModelEnum(){ return 847;}
+-function MisfitObservationEnum(){ return 848;}
++function ThicknessPositiveEnum(){ return 664;}
++function IntMatParamEnum(){ return 665;}
++function RheologyBbarAbsGradientEnum(){ return 666;}
++function RheologyBAbsGradientEnum(){ return 667;}
++function DragCoefficientAbsGradientEnum(){ return 668;}
++function TransientInputEnum(){ return 669;}
++function WaterfractionEnum(){ return 670;}
++function WatercolumnEnum(){ return 671;}
++function BasalFrictionEnum(){ return 672;}
++function ViscousHeatingEnum(){ return 673;}
++function HydrologyWaterVxEnum(){ return 674;}
++function HydrologyWaterVyEnum(){ return 675;}
++function DrivingStressXEnum(){ return 676;}
++function DrivingStressYEnum(){ return 677;}
++function SigmaNNEnum(){ return 678;}
++function StressTensorEnum(){ return 679;}
++function StressTensorxxEnum(){ return 680;}
++function StressTensorxyEnum(){ return 681;}
++function StressTensorxzEnum(){ return 682;}
++function StressTensoryyEnum(){ return 683;}
++function StressTensoryzEnum(){ return 684;}
++function StressTensorzzEnum(){ return 685;}
++function StressMaxPrincipalEnum(){ return 686;}
++function DeviatoricStressEnum(){ return 687;}
++function DeviatoricStressxxEnum(){ return 688;}
++function DeviatoricStressxyEnum(){ return 689;}
++function DeviatoricStressxzEnum(){ return 690;}
++function DeviatoricStressyyEnum(){ return 691;}
++function DeviatoricStressyzEnum(){ return 692;}
++function DeviatoricStresszzEnum(){ return 693;}
++function DeviatoricStresseffectiveEnum(){ return 694;}
++function StrainRateEnum(){ return 695;}
++function StrainRatexxEnum(){ return 696;}
++function StrainRatexyEnum(){ return 697;}
++function StrainRatexzEnum(){ return 698;}
++function StrainRateyyEnum(){ return 699;}
++function StrainRateyzEnum(){ return 700;}
++function StrainRatezzEnum(){ return 701;}
++function DivergenceEnum(){ return 702;}
++function MaxDivergenceEnum(){ return 703;}
++function GiaCrossSectionShapeEnum(){ return 704;}
++function GiadWdtEnum(){ return 705;}
++function GiaWEnum(){ return 706;}
++function P0Enum(){ return 707;}
++function P0ArrayEnum(){ return 708;}
++function P1Enum(){ return 709;}
++function P1DGEnum(){ return 710;}
++function P1bubbleEnum(){ return 711;}
++function P1bubblecondensedEnum(){ return 712;}
++function P2Enum(){ return 713;}
++function P2bubbleEnum(){ return 714;}
++function P2bubblecondensedEnum(){ return 715;}
++function P2xP1Enum(){ return 716;}
++function P1xP2Enum(){ return 717;}
++function P1xP3Enum(){ return 718;}
++function P2xP4Enum(){ return 719;}
++function P1P1Enum(){ return 720;}
++function P1P1GLSEnum(){ return 721;}
++function MINIEnum(){ return 722;}
++function MINIcondensedEnum(){ return 723;}
++function TaylorHoodEnum(){ return 724;}
++function LATaylorHoodEnum(){ return 725;}
++function XTaylorHoodEnum(){ return 726;}
++function OneLayerP4zEnum(){ return 727;}
++function CrouzeixRaviartEnum(){ return 728;}
++function LACrouzeixRaviartEnum(){ return 729;}
++function SaveResultsEnum(){ return 730;}
++function BoolExternalResultEnum(){ return 731;}
++function DoubleExternalResultEnum(){ return 732;}
++function DoubleMatExternalResultEnum(){ return 733;}
++function IntExternalResultEnum(){ return 734;}
++function JEnum(){ return 735;}
++function StringExternalResultEnum(){ return 736;}
++function StepEnum(){ return 737;}
++function TimeEnum(){ return 738;}
++function WaterColumnOldEnum(){ return 739;}
++function OutputdefinitionEnum(){ return 740;}
++function Outputdefinition1Enum(){ return 741;}
++function Outputdefinition2Enum(){ return 742;}
++function Outputdefinition3Enum(){ return 743;}
++function Outputdefinition4Enum(){ return 744;}
++function Outputdefinition5Enum(){ return 745;}
++function Outputdefinition6Enum(){ return 746;}
++function Outputdefinition7Enum(){ return 747;}
++function Outputdefinition8Enum(){ return 748;}
++function Outputdefinition9Enum(){ return 749;}
++function Outputdefinition10Enum(){ return 750;}
++function Outputdefinition11Enum(){ return 751;}
++function Outputdefinition12Enum(){ return 752;}
++function Outputdefinition13Enum(){ return 753;}
++function Outputdefinition14Enum(){ return 754;}
++function Outputdefinition15Enum(){ return 755;}
++function Outputdefinition16Enum(){ return 756;}
++function Outputdefinition17Enum(){ return 757;}
++function Outputdefinition18Enum(){ return 758;}
++function Outputdefinition19Enum(){ return 759;}
++function Outputdefinition20Enum(){ return 760;}
++function Outputdefinition21Enum(){ return 761;}
++function Outputdefinition22Enum(){ return 762;}
++function Outputdefinition23Enum(){ return 763;}
++function Outputdefinition24Enum(){ return 764;}
++function Outputdefinition25Enum(){ return 765;}
++function Outputdefinition26Enum(){ return 766;}
++function Outputdefinition27Enum(){ return 767;}
++function Outputdefinition28Enum(){ return 768;}
++function Outputdefinition29Enum(){ return 769;}
++function Outputdefinition30Enum(){ return 770;}
++function Outputdefinition31Enum(){ return 771;}
++function Outputdefinition32Enum(){ return 772;}
++function Outputdefinition33Enum(){ return 773;}
++function Outputdefinition34Enum(){ return 774;}
++function Outputdefinition35Enum(){ return 775;}
++function Outputdefinition36Enum(){ return 776;}
++function Outputdefinition37Enum(){ return 777;}
++function Outputdefinition38Enum(){ return 778;}
++function Outputdefinition39Enum(){ return 779;}
++function Outputdefinition40Enum(){ return 780;}
++function Outputdefinition41Enum(){ return 781;}
++function Outputdefinition42Enum(){ return 782;}
++function Outputdefinition43Enum(){ return 783;}
++function Outputdefinition44Enum(){ return 784;}
++function Outputdefinition45Enum(){ return 785;}
++function Outputdefinition46Enum(){ return 786;}
++function Outputdefinition47Enum(){ return 787;}
++function Outputdefinition48Enum(){ return 788;}
++function Outputdefinition49Enum(){ return 789;}
++function Outputdefinition50Enum(){ return 790;}
++function Outputdefinition51Enum(){ return 791;}
++function Outputdefinition52Enum(){ return 792;}
++function Outputdefinition53Enum(){ return 793;}
++function Outputdefinition54Enum(){ return 794;}
++function Outputdefinition55Enum(){ return 795;}
++function Outputdefinition56Enum(){ return 796;}
++function Outputdefinition57Enum(){ return 797;}
++function Outputdefinition58Enum(){ return 798;}
++function Outputdefinition59Enum(){ return 799;}
++function Outputdefinition60Enum(){ return 800;}
++function Outputdefinition61Enum(){ return 801;}
++function Outputdefinition62Enum(){ return 802;}
++function Outputdefinition63Enum(){ return 803;}
++function Outputdefinition64Enum(){ return 804;}
++function Outputdefinition65Enum(){ return 805;}
++function Outputdefinition66Enum(){ return 806;}
++function Outputdefinition67Enum(){ return 807;}
++function Outputdefinition68Enum(){ return 808;}
++function Outputdefinition69Enum(){ return 809;}
++function Outputdefinition70Enum(){ return 810;}
++function Outputdefinition71Enum(){ return 811;}
++function Outputdefinition72Enum(){ return 812;}
++function Outputdefinition73Enum(){ return 813;}
++function Outputdefinition74Enum(){ return 814;}
++function Outputdefinition75Enum(){ return 815;}
++function Outputdefinition76Enum(){ return 816;}
++function Outputdefinition77Enum(){ return 817;}
++function Outputdefinition78Enum(){ return 818;}
++function Outputdefinition79Enum(){ return 819;}
++function Outputdefinition80Enum(){ return 820;}
++function Outputdefinition81Enum(){ return 821;}
++function Outputdefinition82Enum(){ return 822;}
++function Outputdefinition83Enum(){ return 823;}
++function Outputdefinition84Enum(){ return 824;}
++function Outputdefinition85Enum(){ return 825;}
++function Outputdefinition86Enum(){ return 826;}
++function Outputdefinition87Enum(){ return 827;}
++function Outputdefinition88Enum(){ return 828;}
++function Outputdefinition89Enum(){ return 829;}
++function Outputdefinition90Enum(){ return 830;}
++function Outputdefinition91Enum(){ return 831;}
++function Outputdefinition92Enum(){ return 832;}
++function Outputdefinition93Enum(){ return 833;}
++function Outputdefinition94Enum(){ return 834;}
++function Outputdefinition95Enum(){ return 835;}
++function Outputdefinition96Enum(){ return 836;}
++function Outputdefinition97Enum(){ return 837;}
++function Outputdefinition98Enum(){ return 838;}
++function Outputdefinition99Enum(){ return 839;}
++function Outputdefinition100Enum(){ return 840;}
++function OutputdefinitionListEnum(){ return 841;}
++function MassfluxatgateEnum(){ return 842;}
++function MassfluxatgateNameEnum(){ return 843;}
++function MassfluxatgateDefinitionenumEnum(){ return 844;}
++function MassfluxatgateSegmentsEnum(){ return 845;}
++function MisfitNameEnum(){ return 846;}
++function MisfitDefinitionenumEnum(){ return 847;}
++function MisfitModelEnum(){ return 848;}
+ function MisfitObservationEnum(){ return 849;}
+-function MisfitLocalEnum(){ return 850;}
+-function MisfitTimeinterpolationEnum(){ return 851;}
+-function MisfitWeightsEnum(){ return 852;}
++function MisfitObservationEnum(){ return 850;}
++function MisfitLocalEnum(){ return 851;}
++function MisfitTimeinterpolationEnum(){ return 852;}
+ function MisfitWeightsEnum(){ return 853;}
+-function SurfaceObservationEnum(){ return 854;}
+-function WeightsSurfaceObservationEnum(){ return 855;}
+-function VxObsEnum(){ return 856;}
+-function WeightsVxObsEnum(){ return 857;}
+-function VyObsEnum(){ return 858;}
+-function WeightsVyObsEnum(){ return 859;}
+-function MinVelEnum(){ return 860;}
+-function MaxVelEnum(){ return 861;}
+-function MinVxEnum(){ return 862;}
+-function MaxVxEnum(){ return 863;}
+-function MaxAbsVxEnum(){ return 864;}
+-function MinVyEnum(){ return 865;}
+-function MaxVyEnum(){ return 866;}
+-function MaxAbsVyEnum(){ return 867;}
+-function MinVzEnum(){ return 868;}
+-function MaxVzEnum(){ return 869;}
+-function MaxAbsVzEnum(){ return 870;}
+-function FloatingAreaEnum(){ return 871;}
+-function GroundedAreaEnum(){ return 872;}
+-function IceMassEnum(){ return 873;}
+-function IceVolumeEnum(){ return 874;}
+-function IceVolumeAboveFloatationEnum(){ return 875;}
+-function TotalSmbEnum(){ return 876;}
+-function AbsoluteEnum(){ return 877;}
+-function IncrementalEnum(){ return 878;}
+-function AugmentedLagrangianREnum(){ return 879;}
+-function AugmentedLagrangianRhopEnum(){ return 880;}
+-function AugmentedLagrangianRlambdaEnum(){ return 881;}
+-function AugmentedLagrangianRholambdaEnum(){ return 882;}
+-function AugmentedLagrangianThetaEnum(){ return 883;}
+-function NoneEnum(){ return 884;}
+-function AggressiveMigrationEnum(){ return 885;}
+-function SoftMigrationEnum(){ return 886;}
+-function SubelementMigrationEnum(){ return 887;}
+-function SubelementMigration2Enum(){ return 888;}
+-function ContactEnum(){ return 889;}
+-function GroundingOnlyEnum(){ return 890;}
+-function MaskGroundediceLevelsetEnum(){ return 891;}
+-function GaussSegEnum(){ return 892;}
+-function GaussTriaEnum(){ return 893;}
+-function GaussTetraEnum(){ return 894;}
+-function GaussPentaEnum(){ return 895;}
+-function FSSolverEnum(){ return 896;}
+-function AdjointEnum(){ return 897;}
+-function ColinearEnum(){ return 898;}
+-function ControlSteadyEnum(){ return 899;}
+-function FsetEnum(){ return 900;}
+-function Gradient1Enum(){ return 901;}
+-function Gradient2Enum(){ return 902;}
+-function Gradient3Enum(){ return 903;}
+-function GradientEnum(){ return 904;}
+-function GroundinglineMigrationEnum(){ return 905;}
+-function GsetEnum(){ return 906;}
+-function IndexEnum(){ return 907;}
+-function IndexedEnum(){ return 908;}
+-function IntersectEnum(){ return 909;}
+-function NodalEnum(){ return 910;}
+-function OldGradientEnum(){ return 911;}
+-function OutputBufferPointerEnum(){ return 912;}
+-function OutputBufferSizePointerEnum(){ return 913;}
+-function OutputFilePointerEnum(){ return 914;}
+-function ToolkitsFileNameEnum(){ return 915;}
+-function RootPathEnum(){ return 916;}
+-function OutputFileNameEnum(){ return 917;}
+-function InputFileNameEnum(){ return 918;}
+-function LockFileNameEnum(){ return 919;}
+-function RestartFileNameEnum(){ return 920;}
+-function ToolkitsOptionsAnalysesEnum(){ return 921;}
+-function ToolkitsOptionsStringsEnum(){ return 922;}
+-function QmuErrNameEnum(){ return 923;}
+-function QmuInNameEnum(){ return 924;}
+-function QmuOutNameEnum(){ return 925;}
+-function RegularEnum(){ return 926;}
+-function ScaledEnum(){ return 927;}
+-function SeparateEnum(){ return 928;}
+-function SsetEnum(){ return 929;}
+-function VerboseEnum(){ return 930;}
+-function TriangleInterpEnum(){ return 931;}
+-function BilinearInterpEnum(){ return 932;}
+-function NearestInterpEnum(){ return 933;}
+-function XYEnum(){ return 934;}
+-function XYZEnum(){ return 935;}
+-function DenseEnum(){ return 936;}
+-function MpiDenseEnum(){ return 937;}
+-function MpiSparseEnum(){ return 938;}
+-function SeqEnum(){ return 939;}
+-function MpiEnum(){ return 940;}
+-function MumpsEnum(){ return 941;}
+-function GslEnum(){ return 942;}
+-function OptionEnum(){ return 943;}
+-function GenericOptionEnum(){ return 944;}
+-function OptionCellEnum(){ return 945;}
+-function OptionStructEnum(){ return 946;}
+-function CuffeyEnum(){ return 947;}
+-function PatersonEnum(){ return 948;}
+-function ArrheniusEnum(){ return 949;}
+-function LliboutryDuvalEnum(){ return 950;}
+-function TransientIslevelsetEnum(){ return 951;}
+-function SpcLevelsetEnum(){ return 952;}
+-function ExtrapolationVariableEnum(){ return 953;}
+-function IceMaskNodeActivationEnum(){ return 954;}
+-function LevelsetfunctionSlopeXEnum(){ return 955;}
+-function LevelsetfunctionSlopeYEnum(){ return 956;}
+-function LevelsetfunctionPicardEnum(){ return 957;}
+-function SealevelriseSolutionEnum(){ return 958;}
+-function SealevelriseAnalysisEnum(){ return 959;}
+-function SealevelriseSEnum(){ return 960;}
+-function SealevelriseDeltathicknessEnum(){ return 961;}
+-function SealevelriseMaxiterEnum(){ return 962;}
+-function SealevelriseReltolEnum(){ return 963;}
+-function SealevelriseAbstolEnum(){ return 964;}
+-function SealevelriseLoveHEnum(){ return 965;}
+-function SealevelriseLoveKEnum(){ return 966;}
+-function SealevelriseRigidEnum(){ return 967;}
+-function SealevelriseElasticEnum(){ return 968;}
+-function SealevelriseEustaticEnum(){ return 969;}
+-function SealevelriseLegendrePrecomputeEnum(){ return 970;}
+-function SealevelriseLegendreCoefficientsEnum(){ return 971;}
+-function SealevelriseGRigidEnum(){ return 972;}
+-function SealevelriseGElasticEnum(){ return 973;}
+-function SealevelriseStoreGreenFunctionsEnum(){ return 974;}
+-function MaximumNumberOfDefinitionsEnum(){ return 975;}
++function MisfitWeightsEnum(){ return 854;}
++function SurfaceObservationEnum(){ return 855;}
++function WeightsSurfaceObservationEnum(){ return 856;}
++function VxObsEnum(){ return 857;}
++function WeightsVxObsEnum(){ return 858;}
++function VyObsEnum(){ return 859;}
++function WeightsVyObsEnum(){ return 860;}
++function MinVelEnum(){ return 861;}
++function MaxVelEnum(){ return 862;}
++function MinVxEnum(){ return 863;}
++function MaxVxEnum(){ return 864;}
++function MaxAbsVxEnum(){ return 865;}
++function MinVyEnum(){ return 866;}
++function MaxVyEnum(){ return 867;}
++function MaxAbsVyEnum(){ return 868;}
++function MinVzEnum(){ return 869;}
++function MaxVzEnum(){ return 870;}
++function MaxAbsVzEnum(){ return 871;}
++function FloatingAreaEnum(){ return 872;}
++function GroundedAreaEnum(){ return 873;}
++function IceMassEnum(){ return 874;}
++function IceVolumeEnum(){ return 875;}
++function IceVolumeAboveFloatationEnum(){ return 876;}
++function TotalSmbEnum(){ return 877;}
++function AbsoluteEnum(){ return 878;}
++function IncrementalEnum(){ return 879;}
++function AugmentedLagrangianREnum(){ return 880;}
++function AugmentedLagrangianRhopEnum(){ return 881;}
++function AugmentedLagrangianRlambdaEnum(){ return 882;}
++function AugmentedLagrangianRholambdaEnum(){ return 883;}
++function AugmentedLagrangianThetaEnum(){ return 884;}
++function NoneEnum(){ return 885;}
++function AggressiveMigrationEnum(){ return 886;}
++function SoftMigrationEnum(){ return 887;}
++function SubelementMigrationEnum(){ return 888;}
++function SubelementMigration2Enum(){ return 889;}
++function ContactEnum(){ return 890;}
++function GroundingOnlyEnum(){ return 891;}
++function MaskGroundediceLevelsetEnum(){ return 892;}
++function GaussSegEnum(){ return 893;}
++function GaussTriaEnum(){ return 894;}
++function GaussTetraEnum(){ return 895;}
++function GaussPentaEnum(){ return 896;}
++function FSSolverEnum(){ return 897;}
++function AdjointEnum(){ return 898;}
++function ColinearEnum(){ return 899;}
++function ControlSteadyEnum(){ return 900;}
++function FsetEnum(){ return 901;}
++function Gradient1Enum(){ return 902;}
++function Gradient2Enum(){ return 903;}
++function Gradient3Enum(){ return 904;}
++function GradientEnum(){ return 905;}
++function GroundinglineMigrationEnum(){ return 906;}
++function GsetEnum(){ return 907;}
++function IndexEnum(){ return 908;}
++function IndexedEnum(){ return 909;}
++function IntersectEnum(){ return 910;}
++function NodalEnum(){ return 911;}
++function OldGradientEnum(){ return 912;}
++function OutputBufferPointerEnum(){ return 913;}
++function OutputBufferSizePointerEnum(){ return 914;}
++function OutputFilePointerEnum(){ return 915;}
++function ToolkitsFileNameEnum(){ return 916;}
++function RootPathEnum(){ return 917;}
++function OutputFileNameEnum(){ return 918;}
++function InputFileNameEnum(){ return 919;}
++function LockFileNameEnum(){ return 920;}
++function RestartFileNameEnum(){ return 921;}
++function ToolkitsOptionsAnalysesEnum(){ return 922;}
++function ToolkitsOptionsStringsEnum(){ return 923;}
++function QmuErrNameEnum(){ return 924;}
++function QmuInNameEnum(){ return 925;}
++function QmuOutNameEnum(){ return 926;}
++function RegularEnum(){ return 927;}
++function ScaledEnum(){ return 928;}
++function SeparateEnum(){ return 929;}
++function SsetEnum(){ return 930;}
++function VerboseEnum(){ return 931;}
++function TriangleInterpEnum(){ return 932;}
++function BilinearInterpEnum(){ return 933;}
++function NearestInterpEnum(){ return 934;}
++function XYEnum(){ return 935;}
++function XYZEnum(){ return 936;}
++function DenseEnum(){ return 937;}
++function MpiDenseEnum(){ return 938;}
++function MpiSparseEnum(){ return 939;}
++function SeqEnum(){ return 940;}
++function MpiEnum(){ return 941;}
++function MumpsEnum(){ return 942;}
++function GslEnum(){ return 943;}
++function OptionEnum(){ return 944;}
++function GenericOptionEnum(){ return 945;}
++function OptionCellEnum(){ return 946;}
++function OptionStructEnum(){ return 947;}
++function CuffeyEnum(){ return 948;}
++function PatersonEnum(){ return 949;}
++function ArrheniusEnum(){ return 950;}
++function LliboutryDuvalEnum(){ return 951;}
++function TransientIslevelsetEnum(){ return 952;}
++function SpcLevelsetEnum(){ return 953;}
++function ExtrapolationVariableEnum(){ return 954;}
++function IceMaskNodeActivationEnum(){ return 955;}
++function LevelsetfunctionSlopeXEnum(){ return 956;}
++function LevelsetfunctionSlopeYEnum(){ return 957;}
++function LevelsetfunctionPicardEnum(){ return 958;}
++function SealevelriseSolutionEnum(){ return 959;}
++function SealevelriseAnalysisEnum(){ return 960;}
++function SealevelriseSEnum(){ return 961;}
++function SealevelriseDeltathicknessEnum(){ return 962;}
++function SealevelriseMaxiterEnum(){ return 963;}
++function SealevelriseReltolEnum(){ return 964;}
++function SealevelriseAbstolEnum(){ return 965;}
++function SealevelriseLoveHEnum(){ return 966;}
++function SealevelriseLoveKEnum(){ return 967;}
++function SealevelriseRigidEnum(){ return 968;}
++function SealevelriseElasticEnum(){ return 969;}
++function SealevelriseEustaticEnum(){ return 970;}
++function SealevelriseLegendrePrecomputeEnum(){ return 971;}
++function SealevelriseLegendreCoefficientsEnum(){ return 972;}
++function SealevelriseGRigidEnum(){ return 973;}
++function SealevelriseGElasticEnum(){ return 974;}
++function SealevelriseStoreGreenFunctionsEnum(){ return 975;}
++function MaximumNumberOfDefinitionsEnum(){ return 976;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20015)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20016)
+@@ -672,6 +672,7 @@
+ def ThicknessAbsGradientEnum(): return StringToEnum("ThicknessAbsGradient")[0]
+ def ThicknessAlongGradientEnum(): return StringToEnum("ThicknessAlongGradient")[0]
+ def ThicknessAcrossGradientEnum(): return StringToEnum("ThicknessAcrossGradient")[0]
++def ThicknessPositiveEnum(): return StringToEnum("ThicknessPositive")[0]
+ def IntMatParamEnum(): return StringToEnum("IntMatParam")[0]
+ def RheologyBbarAbsGradientEnum(): return StringToEnum("RheologyBbarAbsGradient")[0]
+ def RheologyBAbsGradientEnum(): return StringToEnum("RheologyBAbsGradient")[0]
+Index: ../trunk-jpl/src/m/enum/ThicknessPositiveEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/ThicknessPositiveEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/ThicknessPositiveEnum.m	(revision 20016)
+@@ -0,0 +1,11 @@
++function macro=ThicknessPositiveEnum()
++%THICKNESSPOSITIVEENUM - Enum of ThicknessPositive
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=ThicknessPositiveEnum()
++
++macro=StringToEnum('ThicknessPositive');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20016-20017.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20016-20017.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20016-20017.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20016)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20017)
+@@ -31,7 +31,6 @@
+ 	iomodel->Constant(&domaintype,DomainTypeEnum);
+ 	for(int i=0;i<num_cost_functions;i++){
+ 		cost_function= reCast<int,IssmDouble>(iomodel->Data(InversionCostFunctionsEnum)[i]);
+-		iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(elements,InversionSurfaceObsEnum);
+ 		else if(cost_function==SurfaceAbsVelMisfitEnum
Index: /issm/oecreview/Archive/19101-20495/ISSM-20017-20018.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20017-20018.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20017-20018.diff	(revision 20498)
@@ -0,0 +1,42 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20017)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20018)
+@@ -3647,7 +3647,10 @@
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+-						Pn=legendre(Pn1,Pn2,reCast<int,IssmDouble>(cosalpha),n); Pn1=Pn2; Pn2=Pn;
++						if(n==0)Pn=1;
++						else if(n==1)Pn=cosalpha;
++						else Pn= ( (2*n-1)*cosalpha*Pn1 - (n-1)*Pn2 ) /n;
++						Pn2=Pn1; Pn1=Pn;
+ 						G_elastic += deltalove[n]*Pn;
+ 					}
+ 				}
+@@ -3808,11 +3811,11 @@
+ 		//}}}
+ 
+ 		/*initialize G_elastic:*/
+-		G_elastic=xNew<IssmDouble>(gsize);
++		G_elastic=xNewZeroInit<IssmDouble>(gsize);
+ 	}
+ 	if(compute_G_rigid){
+ 		/*Initialize G_rigid and G_elastic:*/
+-		G_rigid=xNew<IssmDouble>(gsize);
++		G_rigid=xNewZeroInit<IssmDouble>(gsize);
+ 	}
+ 
+ 	int* indices=xNew<int>(gsize);
+@@ -3845,7 +3848,10 @@
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+-						Pn=legendre(Pn1,Pn2,reCast<int,IssmDouble>(cosalpha),n); Pn1=Pn2; Pn2=Pn;
++						if(n==0)Pn=1;
++						else if(n==1)Pn=cosalpha;
++						else Pn= ( (2*n-1)*cosalpha*Pn1 - (n-1)*Pn2 ) /n;
++						Pn2=Pn1; Pn1=Pn;
+ 						G_elastic[i] += deltalove[n]*Pn;
+ 					}
+ 				}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20018-20019.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20018-20019.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20018-20019.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test233.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test233.m	(revision 20018)
++++ ../trunk-jpl/test/NightlyRun/test233.m	(revision 20019)
+@@ -17,7 +17,7 @@
+ 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','Temperature4','BasalforcingsGroundediceMeltingRate4'};
+ field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09, ...
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, ...
+-	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, ...
++	1e-08,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, ...
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+Index: ../trunk-jpl/test/NightlyRun/test233.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test233.py	(revision 20018)
++++ ../trunk-jpl/test/NightlyRun/test233.py	(revision 20019)
+@@ -27,7 +27,7 @@
+ 	'Vx4','Vy4','Vz4','Vel4','Pressure4','Bed4','Surface4','Thickness4','Temperature4','BasalforcingsGroundediceMeltingRate4']
+ field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09, \
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, \
+-	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, \
++	1e-08,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06, \
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20019-20020.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20019-20020.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20019-20020.diff	(revision 20498)
@@ -0,0 +1,2852 @@
+Index: ../trunk-jpl/test/NightlyRun/test342.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test342.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test342.m	(revision 20020)
+@@ -0,0 +1,22 @@
++%Test Name: SquareSheetTherSteaPlume
++md=triangle(model(),'../Exp/Square.exp',180000.);
++md=setmask(md,'','');
++md=parameterize(md,'../Par/SquareSheetConstrained.par');
++md.basalforcings=plumebasalforcings(md);
++md.basalforcings.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
++md.basalforcings.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
++md.basalforcings.plumex=500000;
++md.basalforcings.plumey=500000;
++md=extrude(md,3,1.);
++md=setflowequation(md,'SSA','all');
++md.timestepping.time_step=0.;
++md.cluster=generic('name',oshostname(),'np',3);
++md=solve(md,ThermalSolutionEnum());
++
++%Fields and tolerances to track changes
++field_names     ={'Temperature','BasalforcingsGroundediceMeltingRate'};
++field_tolerances={1e-13,1e-8};
++field_values={...
++	(md.results.ThermalSolution.Temperature),...
++	(md.results.ThermalSolution.BasalforcingsGroundediceMeltingRate),...
++	};
+Index: ../trunk-jpl/test/Archives/Archive342.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive342.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20020)
+@@ -72,7 +72,7 @@
+ }/*}}}*/
+ void ThermalAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+-	int frictionlaw;
++	int frictionlaw,basalforcing_model;
+ 	int FrictionCoupling;
+ 	/*Now, is the model 3d? otherwise, do nothing: */
+ 	if(iomodel->domaintype==Domain2DhorizontalEnum)return;
+@@ -108,7 +108,6 @@
+ 	iomodel->FetchDataToInput(elements,MaterialsRheologyNEnum);
+ 	iomodel->FetchDataToInput(elements,PressureEnum);
+ 	iomodel->FetchDataToInput(elements,TemperatureEnum);
+-	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 	iomodel->FetchDataToInput(elements,VzEnum);
+@@ -119,6 +118,15 @@
+ 		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
++	/*Basal forcings variables*/
++	iomodel->Constant(&basalforcing_model,BasalforcingsEnum);
++	switch(basalforcing_model){
++		case MantlePlumeGeothermalFluxEnum:
++			break;
++		default:
++			iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
++			break;
++	}
+ 	/*Friction law variables*/
+ 	switch(frictionlaw){
+ 		case 1:
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20020)
+@@ -107,7 +107,7 @@
+ void EnthalpyAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+ 	bool dakota_analysis,islevelset,isenthalpy;
+-	int frictionlaw;
++	int frictionlaw,basalforcing_model;
+ 	int FrictionCoupling;
+ 	
+ 	/*Now, is the model 3d? otherwise, do nothing: */
+@@ -149,7 +149,6 @@
+ 	iomodel->FetchDataToInput(elements,TemperatureEnum);
+ 	iomodel->FetchDataToInput(elements,WaterfractionEnum);
+ 	iomodel->FetchDataToInput(elements,EnthalpyEnum);
+-	iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
+ 	iomodel->FetchDataToInput(elements,WatercolumnEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+@@ -162,6 +161,16 @@
+ 		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
++
++	/*Basal forcings variables*/
++	iomodel->Constant(&basalforcing_model,BasalforcingsEnum);
++	switch(basalforcing_model){
++		case MantlePlumeGeothermalFluxEnum:
++			break;
++		default:
++			iomodel->FetchDataToInput(elements,BasalforcingsGeothermalfluxEnum);
++			break;
++	}
+ 	
+ 	/*Friction law variables*/
+ 	switch(frictionlaw){
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20019)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20020)
+@@ -50,9 +50,22 @@
+ 	BasalforcingsMeltrateFactorEnum,
+ 	BasalforcingsThresholdThicknessEnum,
+ 	BasalforcingsUpperdepthMeltEnum,
++	BasalforcingsMantleconductivityEnum,
++	BasalforcingsNusseltEnum,
++	BasalforcingsDtbgEnum,
++	BasalforcingsPlumeradiusEnum,
++	BasalforcingsTopplumedepthEnum,
++	BasalforcingsBottomplumedepthEnum,
++	BasalforcingsPlumexEnum,
++	BasalforcingsPlumeyEnum,
++	BasalforcingsCrustthicknessEnum,
++	BasalforcingsUppercrustthicknessEnum,
++	BasalforcingsUppercrustheatEnum,
++	BasalforcingsLowercrustheatEnum,
+ 	FloatingMeltRateEnum,
+ 	LinearFloatingMeltRateEnum,
+ 	MismipFloatingMeltRateEnum,
++	MantlePlumeGeothermalFluxEnum,
+ 	BedEnum,
+ 	BaseEnum,
+ 	ConstantsGEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20020)
+@@ -56,9 +56,22 @@
+ 		case BasalforcingsMeltrateFactorEnum : return "BasalforcingsMeltrateFactor";
+ 		case BasalforcingsThresholdThicknessEnum : return "BasalforcingsThresholdThickness";
+ 		case BasalforcingsUpperdepthMeltEnum : return "BasalforcingsUpperdepthMelt";
++		case BasalforcingsMantleconductivityEnum : return "BasalforcingsMantleconductivity";
++		case BasalforcingsNusseltEnum : return "BasalforcingsNusselt";
++		case BasalforcingsDtbgEnum : return "BasalforcingsDtbg";
++		case BasalforcingsPlumeradiusEnum : return "BasalforcingsPlumeradius";
++		case BasalforcingsTopplumedepthEnum : return "BasalforcingsTopplumedepth";
++		case BasalforcingsBottomplumedepthEnum : return "BasalforcingsBottomplumedepth";
++		case BasalforcingsPlumexEnum : return "BasalforcingsPlumex";
++		case BasalforcingsPlumeyEnum : return "BasalforcingsPlumey";
++		case BasalforcingsCrustthicknessEnum : return "BasalforcingsCrustthickness";
++		case BasalforcingsUppercrustthicknessEnum : return "BasalforcingsUppercrustthickness";
++		case BasalforcingsUppercrustheatEnum : return "BasalforcingsUppercrustheat";
++		case BasalforcingsLowercrustheatEnum : return "BasalforcingsLowercrustheat";
+ 		case FloatingMeltRateEnum : return "FloatingMeltRate";
+ 		case LinearFloatingMeltRateEnum : return "LinearFloatingMeltRate";
+ 		case MismipFloatingMeltRateEnum : return "MismipFloatingMeltRate";
++		case MantlePlumeGeothermalFluxEnum : return "MantlePlumeGeothermalFlux";
+ 		case BedEnum : return "Bed";
+ 		case BaseEnum : return "Base";
+ 		case ConstantsGEnum : return "ConstantsG";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20020)
+@@ -56,9 +56,22 @@
+ 	      else if (strcmp(name,"BasalforcingsMeltrateFactor")==0) return BasalforcingsMeltrateFactorEnum;
+ 	      else if (strcmp(name,"BasalforcingsThresholdThickness")==0) return BasalforcingsThresholdThicknessEnum;
+ 	      else if (strcmp(name,"BasalforcingsUpperdepthMelt")==0) return BasalforcingsUpperdepthMeltEnum;
++	      else if (strcmp(name,"BasalforcingsMantleconductivity")==0) return BasalforcingsMantleconductivityEnum;
++	      else if (strcmp(name,"BasalforcingsNusselt")==0) return BasalforcingsNusseltEnum;
++	      else if (strcmp(name,"BasalforcingsDtbg")==0) return BasalforcingsDtbgEnum;
++	      else if (strcmp(name,"BasalforcingsPlumeradius")==0) return BasalforcingsPlumeradiusEnum;
++	      else if (strcmp(name,"BasalforcingsTopplumedepth")==0) return BasalforcingsTopplumedepthEnum;
++	      else if (strcmp(name,"BasalforcingsBottomplumedepth")==0) return BasalforcingsBottomplumedepthEnum;
++	      else if (strcmp(name,"BasalforcingsPlumex")==0) return BasalforcingsPlumexEnum;
++	      else if (strcmp(name,"BasalforcingsPlumey")==0) return BasalforcingsPlumeyEnum;
++	      else if (strcmp(name,"BasalforcingsCrustthickness")==0) return BasalforcingsCrustthicknessEnum;
++	      else if (strcmp(name,"BasalforcingsUppercrustthickness")==0) return BasalforcingsUppercrustthicknessEnum;
++	      else if (strcmp(name,"BasalforcingsUppercrustheat")==0) return BasalforcingsUppercrustheatEnum;
++	      else if (strcmp(name,"BasalforcingsLowercrustheat")==0) return BasalforcingsLowercrustheatEnum;
+ 	      else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
+ 	      else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;
+ 	      else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
++	      else if (strcmp(name,"MantlePlumeGeothermalFlux")==0) return MantlePlumeGeothermalFluxEnum;
+ 	      else if (strcmp(name,"Bed")==0) return BedEnum;
+ 	      else if (strcmp(name,"Base")==0) return BaseEnum;
+ 	      else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
+@@ -123,7 +136,10 @@
+ 	      else if (strcmp(name,"SedimentHeadResidual")==0) return SedimentHeadResidualEnum;
+ 	      else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
+ 	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
+-	      else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
++         else stage=2;
++   }
++   if(stage==2){
++	      if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
+ 	      else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
+ 	      else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
+ 	      else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
+@@ -136,10 +152,7 @@
+ 	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
+ 	      else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
+-         else stage=2;
+-   }
+-   if(stage==2){
+-	      if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
++	      else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
+ 	      else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
+ 	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
+ 	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
+@@ -246,7 +259,10 @@
+ 	      else if (strcmp(name,"CalvingLevermann")==0) return CalvingLevermannEnum;
+ 	      else if (strcmp(name,"CalvingPi")==0) return CalvingPiEnum;
+ 	      else if (strcmp(name,"CalvingDev")==0) return CalvingDevEnum;
+-	      else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
++         else stage=3;
++   }
++   if(stage==3){
++	      if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
+ 	      else if (strcmp(name,"CalvingRequestedOutputs")==0) return CalvingRequestedOutputsEnum;
+ 	      else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
+ 	      else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
+@@ -259,10 +275,7 @@
+ 	      else if (strcmp(name,"StrainRateparallel")==0) return StrainRateparallelEnum;
+ 	      else if (strcmp(name,"StrainRateperpendicular")==0) return StrainRateperpendicularEnum;
+ 	      else if (strcmp(name,"StrainRateeffective")==0) return StrainRateeffectiveEnum;
+-         else stage=3;
+-   }
+-   if(stage==3){
+-	      if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
++	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
+ 	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
+ 	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
+ 	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
+@@ -369,7 +382,10 @@
+ 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+ 	      else if (strcmp(name,"Potential")==0) return PotentialEnum;
+-	      else if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
+ 	      else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum;
+ 	      else if (strcmp(name,"Balancethickness2Misfit")==0) return Balancethickness2MisfitEnum;
+ 	      else if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum;
+@@ -382,10 +398,7 @@
+ 	      else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
++	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
+ 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
+ 	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
+ 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
+@@ -492,7 +505,10 @@
+ 	      else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
+ 	      else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
+ 	      else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
+-	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
+ 	      else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
+ 	      else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;
+ 	      else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
+@@ -505,10 +521,7 @@
+ 	      else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
++	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
+ 	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+ 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
+ 	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
+@@ -615,7 +628,10 @@
+ 	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
+ 	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
+ 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
+-	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
+ 	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
+ 	      else if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum;
+ 	      else if (strcmp(name,"StringParam")==0) return StringParamEnum;
+@@ -628,10 +644,7 @@
+ 	      else if (strcmp(name,"Penta")==0) return PentaEnum;
+ 	      else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
+ 	      else if (strcmp(name,"Vertex")==0) return VertexEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
++	      else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
+ 	      else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
+ 	      else if (strcmp(name,"Air")==0) return AirEnum;
+ 	      else if (strcmp(name,"Ice")==0) return IceEnum;
+@@ -738,7 +751,10 @@
+ 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
+ 	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
+ 	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
+-	      else if (strcmp(name,"P0")==0) return P0Enum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"P0")==0) return P0Enum;
+ 	      else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
+ 	      else if (strcmp(name,"P1")==0) return P1Enum;
+ 	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
+@@ -751,10 +767,7 @@
+ 	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
+ 	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
+ 	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"P1P1")==0) return P1P1Enum;
++	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
+ 	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
+ 	      else if (strcmp(name,"MINI")==0) return MINIEnum;
+ 	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
+@@ -861,7 +874,10 @@
+ 	      else if (strcmp(name,"Outputdefinition84")==0) return Outputdefinition84Enum;
+ 	      else if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
+ 	      else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
+-	      else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
+ 	      else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
+ 	      else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
+ 	      else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
+@@ -874,10 +890,7 @@
+ 	      else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
+ 	      else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
+ 	      else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
++	      else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
+ 	      else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
+ 	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
+ 	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+@@ -984,7 +997,10 @@
+ 	      else if (strcmp(name,"Option")==0) return OptionEnum;
+ 	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
+ 	      else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
+-	      else if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
++         else stage=9;
++   }
++   if(stage==9){
++	      if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
+ 	      else if (strcmp(name,"Cuffey")==0) return CuffeyEnum;
+ 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
+ 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+@@ -997,10 +1013,7 @@
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+-         else stage=9;
+-   }
+-   if(stage==9){
+-	      if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
++	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+ 	      else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
+ 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
+ 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+Index: ../trunk-jpl/src/c/modules/modules.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/modules.h	(revision 20019)
++++ ../trunk-jpl/src/c/modules/modules.h	(revision 20020)
+@@ -23,6 +23,7 @@
+ #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
+ #include "./ExpToLevelSetx/ExpToLevelSetx.h"
+ #include "./ElementConnectivityx/ElementConnectivityx.h"
++#include "./GeothermalFluxx/GeothermalFluxx.h"
+ #include "./GetSolutionFromInputsx/GetSolutionFromInputsx.h"
+ #include "./GetVectorFromInputsx/GetVectorFromInputsx.h"
+ #include "./GetVectorFromControlInputsx/GetVectorFromControlInputsx.h"
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20020)
+@@ -115,6 +115,20 @@
+ 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsThresholdThicknessEnum));
+ 			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperdepthMeltEnum));
+ 			break;
++		case MantlePlumeGeothermalFluxEnum:
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsMantleconductivityEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsNusseltEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsDtbgEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsPlumeradiusEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsTopplumedepthEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsBottomplumedepthEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsPlumexEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsPlumeyEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsCrustthicknessEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUppercrustthicknessEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUppercrustheatEnum));
++			parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsLowercrustheatEnum));
++			break;
+ 		default:
+ 			_error_("Basal forcing model "<<EnumToStringx(smb_model)<<" not supported yet");
+ 	}
+Index: ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp	(revision 20020)
+@@ -17,6 +17,7 @@
+ 	/*branch to correct module*/
+ 	switch(basalforcing_model){
+ 		case FloatingMeltRateEnum:
++		case MantlePlumeGeothermalFluxEnum:
+ 			/*Nothing to be done*/
+ 			break;
+ 		case LinearFloatingMeltRateEnum:
+Index: ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.cpp	(revision 0)
++++ ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.cpp	(revision 20020)
+@@ -0,0 +1,41 @@
++/*!\file GeothermalFluxx
++ * \brief: calculates Geothermal heat flux 
++ */
++
++#include "./GeothermalFluxx.h"
++#include "../../shared/shared.h"
++#include "../../toolkits/toolkits.h"
++
++void GeothermalFluxx(FemModel* femmodel){/*{{{*/
++
++	/*Intermediaties*/
++	int  basalforcing_model;
++
++	/*First, get SMB model from parameters*/
++	femmodel->parameters->FindParam(&basalforcing_model,BasalforcingsEnum);
++
++	/*branch to correct module*/
++	switch(basalforcing_model){
++		case FloatingMeltRateEnum:
++		case MismipFloatingMeltRateEnum:
++		case LinearFloatingMeltRateEnum:
++			/*Nothing to be done*/
++			break;
++		case MantlePlumeGeothermalFluxEnum:
++			if(VerboseSolution())_printf0_("	call Mantle Plume Geothermal Flux module\n");
++			MantlePlumeGeothermalFluxx(femmodel);
++			break;
++		default:
++			_error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
++	}
++
++}/*}}}*/
++
++void MantlePlumeGeothermalFluxx(FemModel* femmodel){/*{{{*/
++
++	for(int i=0;i<femmodel->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
++		element->MantlePlumeGeothermalFlux();
++	}
++
++}/*}}}*/
+Index: ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.h	(revision 0)
++++ ../trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.h	(revision 20020)
+@@ -0,0 +1,14 @@
++/*!\file:  GeothermalFluxx.h
++ * \brief header file for Geothermal flux
++ */ 
++
++#ifndef _GeothermalFluxx_H
++#define _GeothermalFluxx_H
++
++#include "../../classes/classes.h"
++
++/* local prototypes: */
++void GeothermalFluxx(FemModel* femmodel);
++void MantlePlumeGeothermalFluxx(FemModel* femmodel);
++
++#endif  /* _GeothermalFluxx_H*/
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20019)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20020)
+@@ -167,6 +167,7 @@
+ 					./modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\
+ 					./modules/InputUpdateFromConstantx/InputUpdateFromConstantx.cpp\
+ 					./modules/InputUpdateFromSolutionx/InputUpdateFromSolutionx.cpp\
++					./modules/GeothermalFluxx/GeothermalFluxx.cpp\
+ 					./modules/GetSolutionFromInputsx/GetSolutionFromInputsx.cpp\
+ 					./modules/GetVectorFromInputsx/GetVectorFromInputsx.cpp\
+ 					./modules/InputUpdateFromVectorx/InputUpdateFromVectorx.cpp\
+Index: ../trunk-jpl/src/c/cores/thermal_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/thermal_core.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/cores/thermal_core.cpp	(revision 20020)
+@@ -26,6 +26,9 @@
+ 	femmodel->parameters->FindParam(&numoutputs,ThermalNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,ThermalRequestedOutputsEnum);
+ 
++	/*Calculate geothermalflux*/
++	GeothermalFluxx(femmodel);
++
+ 	if(isenthalpy){
+ 		enthalpy_analysis = new EnthalpyAnalysis();
+ 		enthalpy_analysis->Core(femmodel);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20019)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20020)
+@@ -120,8 +120,9 @@
+ 		bool               IsIceInElement();
+ 		bool               IsWaterInElement();
+ 		bool               IsLandInElement();
+-		bool	           IsInput(int name);
++		bool	             IsInput(int name);
+ 		void               LinearFloatingiceMeltingRate(); 
++		void               MantlePlumeGeothermalFlux(); 
+ 		void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
+ 		void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
+ 		void               MismipFloatingiceMeltingRate(); 
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20019)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20020)
+@@ -1568,6 +1568,40 @@
+ 	xDelete<IssmDouble>(values);
+ 
+ }/*}}}*/
++void       Element::MantlePlumeGeothermalFlux(){/*{{{*/
++
++	int numvertices      = this->GetNumberOfVertices();
++	IssmDouble  mantleconductivity,nusselt,dtbg,plumeradius,topplumedepth,bottomplumedepth,plumex,plumey;
++	IssmDouble  crustthickness,uppercrustthickness,uppercrustheat,lowercrustheat;
++	//IssmDouble* base     = xNew<IssmDouble>(numvertices);
++	//IssmDouble* bed      = xNew<IssmDouble>(numvertices);
++	IssmDouble* values   = xNew<IssmDouble>(numvertices);
++
++	parameters->FindParam(&mantleconductivity,BasalforcingsMantleconductivityEnum);
++	parameters->FindParam(&nusselt,BasalforcingsNusseltEnum);
++	parameters->FindParam(&dtbg,BasalforcingsDtbgEnum);
++	parameters->FindParam(&plumeradius,BasalforcingsPlumeradiusEnum);
++	parameters->FindParam(&topplumedepth,BasalforcingsTopplumedepthEnum);
++	parameters->FindParam(&bottomplumedepth,BasalforcingsBottomplumedepthEnum);
++	parameters->FindParam(&plumex,BasalforcingsPlumexEnum);
++	parameters->FindParam(&plumey,BasalforcingsPlumeyEnum);
++	parameters->FindParam(&crustthickness,BasalforcingsCrustthicknessEnum);
++	parameters->FindParam(&uppercrustthickness,BasalforcingsUppercrustthicknessEnum);
++	parameters->FindParam(&uppercrustheat,BasalforcingsUppercrustheatEnum);
++	parameters->FindParam(&lowercrustheat,BasalforcingsLowercrustheatEnum);
++
++	//this->GetInputListOnVertices(base,BaseEnum);
++	//this->GetInputListOnVertices(bed,BedEnum);
++	for(int i=0;i<numvertices;i++){
++		values[i]=uppercrustheat*uppercrustthickness+ lowercrustheat*(crustthickness-uppercrustthickness);
++	}
++
++	this->AddInput(BasalforcingsGeothermalfluxEnum,values,P1Enum);
++	//xDelete<IssmDouble>(base);
++	//xDelete<IssmDouble>(bed);
++	xDelete<IssmDouble>(values);
++
++}/*}}}*/
+ void       Element::MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses){/*{{{*/
+ 	
+ 	_assert_(this);
+Index: ../trunk-jpl/src/m/classes/plumebasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 20020)
+@@ -0,0 +1,132 @@
++%PLUME BASAL FORCINGS class definition
++%
++%   Usage:
++%      plumebasalforcings=plumebasalforcings();
++
++classdef plumebasalforcings
++	properties (SetAccess=public) 
++		floatingice_melting_rate  = NaN;
++		groundedice_melting_rate  = NaN;
++		mantleconductivity        = NaN;
++		nusselt                   = NaN;
++		dtbg                      = NaN;
++		plumeradius               = NaN;
++		topplumedepth             = NaN;
++		bottomplumedepth          = NaN;
++		plumex                    = NaN;
++		plumey                    = NaN;
++		crustthickness            = NaN;
++		uppercrustthickness       = NaN;
++		uppercrustheat            = NaN;
++		lowercrustheat            = NaN;
++
++	end
++	methods
++		function self = extrude(self,md) % {{{
++			self.groundedice_melting_rate=project3d(md,'vector',self.groundedice_melting_rate,'type','node','layer',1); 
++			self.floatingice_melting_rate=project3d(md,'vector',self.floatingice_melting_rate,'type','node','layer',1); 
++		end % }}}
++		function self = plumebasalforcings(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				case 1
++					self=structtoobj(plumebasalforcings(),varargin{1});
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = initialize(self,md) % {{{
++
++			if isnan(self.groundedice_melting_rate),
++				self.groundedice_melting_rate=zeros(md.mesh.numberofvertices,1);
++				disp('      no basalforcings.groundedice_melting_rate specified: values set as zero');
++			end
++			if isnan(self.floatingice_melting_rate),
++				self.floatingice_melting_rate=zeros(md.mesh.numberofvertices,1);
++				disp('      no basalforcings.floatingice_melting_rate specified: values set as zero');
++			end
++
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++			%default values for melting parameterization
++			self.mantleconductivity     = 2.2;
++			self.nusselt                = 300;
++			self.dtbg                   = 11/1000.;
++			self.plumeradius            = 100000;
++			self.topplumedepth          = 10000;
++			self.bottomplumedepth       = 105000;
++			self.crustthickness         = 30000;
++			self.uppercrustthickness    = 14000;
++			self.uppercrustheat         = 1.7*10^-6;
++			self.lowercrustheat         = 0.4*10^-6;
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport==0),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++			end
++			if ismember(BalancethicknessAnalysisEnum(),analyses),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
++			end
++			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal==0),
++				md = checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'timeseries',1);
++				md = checkfield(md,'fieldname','basalforcings.mantleconductivity','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.nusselt','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.dtbg','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.topplumedepth','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.bottomplumedepth','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.plumex','numel',1);
++				md = checkfield(md,'fieldname','basalforcings.plumey','numel',1);
++				md = checkfield(md,'fieldname','basalforcings.crustthickness','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.uppercrustthickness','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.uppercrustheat','>',0,'numel',1);
++				md = checkfield(md,'fieldname','basalforcings.lowercrustheat','>',0,'numel',1);
++			end
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   mantle plume basal melt parameterization:'));
++
++			fielddisplay(self,'groundedice_melting_rate','basal melting rate (positive if melting) [m/yr]');
++			fielddisplay(self,'floatingice_melting_rate','basal melting rate (positive if melting) [m/yr]');
++			fielddisplay(self,'mantleconductivity','mantle heat conductivity [W/m^3]');
++			fielddisplay(self,'nusselt','nusselt number, ratio of mantle to plume [1]');
++			fielddisplay(self,'dtbg','background temperature gradient [degree/m]');
++			fielddisplay(self,'plumeradius','radius of the mantle plume [m]');
++			fielddisplay(self,'topplumedepth','depth of the mantle plume top below the crust [m]');
++			fielddisplay(self,'bottomplumedepth','depth of the mantle plume base below the crust [m]');
++			fielddisplay(self,'plumex','x coordinate of the center of the plume [m]');
++			fielddisplay(self,'plumey','y coordinate of the center of the plume [m]');
++			fielddisplay(self,'crustthickness','thickness of the crust [m]');
++			fielddisplay(self,'uppercrustthickness','thickness of the upper crust [m]');
++			fielddisplay(self,'uppercrustheat','volumic heat of the upper crust [w/m^3]');
++			fielddisplay(self,'lowercrustheat','volumic heat of the lowercrust [w/m^3]');
++
++		end % }}}
++		function marshall(self,md,fid) % {{{
++
++			yts=365.2422*24.0*3600.0;
++
++			WriteData(fid,'enum',BasalforcingsEnum(),'data',MantlePlumeGeothermalFluxEnum(),'format','Integer');
++			WriteData(fid,'object',self,'fieldname','floatingice_melting_rate','format','DoubleMat','enum',BasalforcingsFloatingiceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'fieldname','groundedice_melting_rate','format','DoubleMat','enum',BasalforcingsGroundediceMeltingRateEnum(),'mattype',1,'scale',1./yts,'timeserieslength',md.mesh.numberofvertices+1)
++			WriteData(fid,'object',self,'fieldname','mantleconductivity','format','Double','enum',BasalforcingsMantleconductivityEnum())
++			WriteData(fid,'object',self,'fieldname','nusselt','format','Double','enum',BasalforcingsNusseltEnum())
++			WriteData(fid,'object',self,'fieldname','dtbg','format','Double','enum',BasalforcingsDtbgEnum())
++			WriteData(fid,'object',self,'fieldname','plumeradius','format','Double','enum',BasalforcingsPlumeradiusEnum())
++			WriteData(fid,'object',self,'fieldname','topplumedepth','format','Double','enum',BasalforcingsTopplumedepthEnum())
++			WriteData(fid,'object',self,'fieldname','bottomplumedepth','format','Double','enum',BasalforcingsBottomplumedepthEnum())
++			WriteData(fid,'object',self,'fieldname','plumex','format','Double','enum',BasalforcingsPlumexEnum())
++			WriteData(fid,'object',self,'fieldname','plumey','format','Double','enum',BasalforcingsPlumeyEnum())
++			WriteData(fid,'object',self,'fieldname','crustthickness','format','Double','enum',BasalforcingsCrustthicknessEnum())
++			WriteData(fid,'object',self,'fieldname','uppercrustthickness','format','Double','enum',BasalforcingsUppercrustthicknessEnum())
++			WriteData(fid,'object',self,'fieldname','uppercrustheat','format','Double','enum',BasalforcingsUppercrustheatEnum())
++			WriteData(fid,'object',self,'fieldname','lowercrustheat','format','Double','enum',BasalforcingsLowercrustheatEnum())
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/enum/BasalforcingsPlumexEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsPlumexEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsPlumexEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsPlumexEnum()
++%BASALFORCINGSPLUMEXENUM - Enum of BasalforcingsPlumex
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsPlumexEnum()
++
++macro=StringToEnum('BasalforcingsPlumex');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsUppercrustheatEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsUppercrustheatEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsUppercrustheatEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsUppercrustheatEnum()
++%BASALFORCINGSUPPERCRUSTHEATENUM - Enum of BasalforcingsUppercrustheat
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsUppercrustheatEnum()
++
++macro=StringToEnum('BasalforcingsUppercrustheat');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsCrustthicknessEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsCrustthicknessEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsCrustthicknessEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsCrustthicknessEnum()
++%BASALFORCINGSCRUSTTHICKNESSENUM - Enum of BasalforcingsCrustthickness
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsCrustthicknessEnum()
++
++macro=StringToEnum('BasalforcingsCrustthickness');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsUppercrustthicknessEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsUppercrustthicknessEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsUppercrustthicknessEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsUppercrustthicknessEnum()
++%BASALFORCINGSUPPERCRUSTTHICKNESSENUM - Enum of BasalforcingsUppercrustthickness
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsUppercrustthicknessEnum()
++
++macro=StringToEnum('BasalforcingsUppercrustthickness');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsBottomplumedepthEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsBottomplumedepthEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsBottomplumedepthEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsBottomplumedepthEnum()
++%BASALFORCINGSBOTTOMPLUMEDEPTHENUM - Enum of BasalforcingsBottomplumedepth
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsBottomplumedepthEnum()
++
++macro=StringToEnum('BasalforcingsBottomplumedepth');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsPlumeyEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsPlumeyEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsPlumeyEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsPlumeyEnum()
++%BASALFORCINGSPLUMEYENUM - Enum of BasalforcingsPlumey
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsPlumeyEnum()
++
++macro=StringToEnum('BasalforcingsPlumey');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsPlumeradiusEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsPlumeradiusEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsPlumeradiusEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsPlumeradiusEnum()
++%BASALFORCINGSPLUMERADIUSENUM - Enum of BasalforcingsPlumeradius
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsPlumeradiusEnum()
++
++macro=StringToEnum('BasalforcingsPlumeradius');
+Index: ../trunk-jpl/src/m/enum/MantlePlumeGeothermalFluxEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/MantlePlumeGeothermalFluxEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/MantlePlumeGeothermalFluxEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=MantlePlumeGeothermalFluxEnum()
++%MANTLEPLUMEGEOTHERMALFLUXENUM - Enum of MantlePlumeGeothermalFlux
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=MantlePlumeGeothermalFluxEnum()
++
++macro=StringToEnum('MantlePlumeGeothermalFlux');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsMantleconductivityEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsMantleconductivityEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsMantleconductivityEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsMantleconductivityEnum()
++%BASALFORCINGSMANTLECONDUCTIVITYENUM - Enum of BasalforcingsMantleconductivity
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsMantleconductivityEnum()
++
++macro=StringToEnum('BasalforcingsMantleconductivity');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsNusseltEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsNusseltEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsNusseltEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsNusseltEnum()
++%BASALFORCINGSNUSSELTENUM - Enum of BasalforcingsNusselt
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsNusseltEnum()
++
++macro=StringToEnum('BasalforcingsNusselt');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20019)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20020)
+@@ -41,940 +41,953 @@
+ function BasalforcingsMeltrateFactorEnum(){ return 37;}
+ function BasalforcingsThresholdThicknessEnum(){ return 38;}
+ function BasalforcingsUpperdepthMeltEnum(){ return 39;}
+-function FloatingMeltRateEnum(){ return 40;}
+-function LinearFloatingMeltRateEnum(){ return 41;}
+-function MismipFloatingMeltRateEnum(){ return 42;}
+-function BedEnum(){ return 43;}
+-function BaseEnum(){ return 44;}
+-function ConstantsGEnum(){ return 45;}
+-function ConstantsReferencetemperatureEnum(){ return 46;}
+-function ConstantsYtsEnum(){ return 47;}
+-function DependentObjectEnum(){ return 48;}
+-function StressbalanceAbstolEnum(){ return 49;}
+-function StressbalanceIsnewtonEnum(){ return 50;}
+-function StressbalanceMaxiterEnum(){ return 51;}
+-function StressbalancePenaltyFactorEnum(){ return 52;}
+-function StressbalanceReferentialEnum(){ return 53;}
+-function StressbalanceReltolEnum(){ return 54;}
+-function StressbalanceNumRequestedOutputsEnum(){ return 55;}
+-function StressbalanceRequestedOutputsEnum(){ return 56;}
+-function StressbalanceRestolEnum(){ return 57;}
+-function StressbalanceRiftPenaltyLockEnum(){ return 58;}
+-function StressbalanceRiftPenaltyThresholdEnum(){ return 59;}
+-function StressbalanceShelfDampeningEnum(){ return 60;}
+-function StressbalanceSpcvxEnum(){ return 61;}
+-function StressbalanceSpcvyEnum(){ return 62;}
+-function StressbalanceSpcvzEnum(){ return 63;}
+-function StressbalanceFSreconditioningEnum(){ return 64;}
+-function StressbalanceVertexPairingEnum(){ return 65;}
+-function StressbalanceViscosityOvershootEnum(){ return 66;}
+-function LoadingforceXEnum(){ return 67;}
+-function LoadingforceYEnum(){ return 68;}
+-function LoadingforceZEnum(){ return 69;}
+-function FlowequationBorderSSAEnum(){ return 70;}
+-function FlowequationBorderHOEnum(){ return 71;}
+-function FlowequationBorderFSEnum(){ return 72;}
+-function FlowequationElementEquationEnum(){ return 73;}
+-function FlowequationIsSIAEnum(){ return 74;}
+-function FlowequationIsSSAEnum(){ return 75;}
+-function FlowequationIsL1L2Enum(){ return 76;}
+-function FlowequationIsHOEnum(){ return 77;}
+-function FlowequationIsFSEnum(){ return 78;}
+-function FlowequationFeSSAEnum(){ return 79;}
+-function FlowequationFeHOEnum(){ return 80;}
+-function FlowequationFeFSEnum(){ return 81;}
+-function FlowequationVertexEquationEnum(){ return 82;}
+-function FrictionAsEnum(){ return 83;}
+-function FrictionCoefficientEnum(){ return 84;}
+-function FrictionCoefficientcoulombEnum(){ return 85;}
+-function FrictionPEnum(){ return 86;}
+-function FrictionQEnum(){ return 87;}
+-function FrictionMEnum(){ return 88;}
+-function FrictionCEnum(){ return 89;}
+-function FrictionLawEnum(){ return 90;}
+-function FrictionGammaEnum(){ return 91;}
+-function FrictionFEnum(){ return 92;}
+-function FrictionWaterLayerEnum(){ return 93;}
+-function FrictionEffectivePressureEnum(){ return 94;}
+-function FrictionCouplingEnum(){ return 95;}
+-function GeometryHydrostaticRatioEnum(){ return 96;}
+-function HydrologyModelEnum(){ return 97;}
+-function HydrologyshreveEnum(){ return 98;}
+-function HydrologyshreveSpcwatercolumnEnum(){ return 99;}
+-function HydrologyshreveStabilizationEnum(){ return 100;}
+-function HydrologydcEnum(){ return 101;}
+-function SedimentHeadEnum(){ return 102;}
+-function SedimentHeadOldEnum(){ return 103;}
+-function SedimentHeadResidualEnum(){ return 104;}
+-function EffectivePressureEnum(){ return 105;}
+-function EplHeadEnum(){ return 106;}
+-function EplHeadOldEnum(){ return 107;}
+-function EplHeadSlopeXEnum(){ return 108;}
+-function EplHeadSlopeYEnum(){ return 109;}
+-function EplZigZagCounterEnum(){ return 110;}
+-function HydrologydcMaxIterEnum(){ return 111;}
+-function HydrologydcRelTolEnum(){ return 112;}
+-function HydrologydcSpcsedimentHeadEnum(){ return 113;}
+-function HydrologydcSedimentCompressibilityEnum(){ return 114;}
+-function HydrologydcSedimentPorosityEnum(){ return 115;}
+-function HydrologydcSedimentThicknessEnum(){ return 116;}
+-function HydrologydcSedimentTransmitivityEnum(){ return 117;}
+-function HydrologydcWaterCompressibilityEnum(){ return 118;}
+-function HydrologydcSpceplHeadEnum(){ return 119;}
+-function HydrologydcMaskEplactiveNodeEnum(){ return 120;}
+-function HydrologydcMaskEplactiveEltEnum(){ return 121;}
+-function HydrologydcEplCompressibilityEnum(){ return 122;}
+-function HydrologydcEplPorosityEnum(){ return 123;}
+-function HydrologydcEplInitialThicknessEnum(){ return 124;}
+-function HydrologydcEplColapseThicknessEnum(){ return 125;}
+-function HydrologydcEplMaxThicknessEnum(){ return 126;}
+-function HydrologydcEplThicknessEnum(){ return 127;}
+-function HydrologydcEplThicknessOldEnum(){ return 128;}
+-function HydrologydcEplThickCompEnum(){ return 129;}
+-function HydrologydcEplConductivityEnum(){ return 130;}
+-function HydrologydcIsefficientlayerEnum(){ return 131;}
+-function HydrologydcSedimentlimitFlagEnum(){ return 132;}
+-function HydrologydcSedimentlimitEnum(){ return 133;}
+-function HydrologydcTransferFlagEnum(){ return 134;}
+-function HydrologydcLeakageFactorEnum(){ return 135;}
+-function HydrologydcPenaltyFactorEnum(){ return 136;}
+-function HydrologydcPenaltyLockEnum(){ return 137;}
+-function HydrologydcEplflipLockEnum(){ return 138;}
+-function HydrologydcBasalMoulinInputEnum(){ return 139;}
+-function HydrologyLayerEnum(){ return 140;}
+-function HydrologySedimentEnum(){ return 141;}
+-function HydrologyEfficientEnum(){ return 142;}
+-function HydrologySedimentKmaxEnum(){ return 143;}
+-function HydrologysommersEnum(){ return 144;}
+-function HydrologyHeadEnum(){ return 145;}
+-function HydrologyGapHeightEnum(){ return 146;}
+-function HydrologyBumpSpacingEnum(){ return 147;}
+-function HydrologyBumpHeightEnum(){ return 148;}
+-function HydrologyEnglacialInputEnum(){ return 149;}
+-function HydrologyMoulinInputEnum(){ return 150;}
+-function HydrologyReynoldsEnum(){ return 151;}
+-function HydrologyNeumannfluxEnum(){ return 152;}
+-function HydrologySpcheadEnum(){ return 153;}
+-function HydrologyConductivityEnum(){ return 154;}
+-function IndependentObjectEnum(){ return 155;}
+-function InversionControlParametersEnum(){ return 156;}
+-function InversionControlScalingFactorsEnum(){ return 157;}
+-function InversionCostFunctionThresholdEnum(){ return 158;}
+-function InversionCostFunctionsCoefficientsEnum(){ return 159;}
+-function InversionCostFunctionsEnum(){ return 160;}
+-function InversionGradientScalingEnum(){ return 161;}
+-function InversionIscontrolEnum(){ return 162;}
+-function InversionTypeEnum(){ return 163;}
+-function InversionIncompleteAdjointEnum(){ return 164;}
+-function InversionMaxParametersEnum(){ return 165;}
+-function InversionMaxiterPerStepEnum(){ return 166;}
+-function InversionMaxiterEnum(){ return 167;}
+-function InversionMaxstepsEnum(){ return 168;}
+-function InversionFatolEnum(){ return 169;}
+-function InversionFrtolEnum(){ return 170;}
+-function InversionGatolEnum(){ return 171;}
+-function InversionGrtolEnum(){ return 172;}
+-function InversionGttolEnum(){ return 173;}
+-function InversionAlgorithmEnum(){ return 174;}
+-function InversionMinParametersEnum(){ return 175;}
+-function InversionNstepsEnum(){ return 176;}
+-function InversionDxminEnum(){ return 177;}
+-function InversionNumControlParametersEnum(){ return 178;}
+-function InversionNumCostFunctionsEnum(){ return 179;}
+-function InversionStepThresholdEnum(){ return 180;}
+-function InversionThicknessObsEnum(){ return 181;}
+-function InversionSurfaceObsEnum(){ return 182;}
+-function InversionVxObsEnum(){ return 183;}
+-function InversionVyObsEnum(){ return 184;}
+-function InversionVzObsEnum(){ return 185;}
+-function MaskIceLevelsetEnum(){ return 186;}
+-function MaskOceanLevelsetEnum(){ return 187;}
+-function MaskLandLevelsetEnum(){ return 188;}
+-function MaterialsBetaEnum(){ return 189;}
+-function MaterialsHeatcapacityEnum(){ return 190;}
+-function MaterialsLatentheatEnum(){ return 191;}
+-function MaterialsMeltingpointEnum(){ return 192;}
+-function MaterialsMixedLayerCapacityEnum(){ return 193;}
+-function MaterialsRheologyBEnum(){ return 194;}
+-function MaterialsRheologyBbarEnum(){ return 195;}
+-function MaterialsRheologyLawEnum(){ return 196;}
+-function MaterialsRheologyNEnum(){ return 197;}
+-function DamageIsdamageEnum(){ return 198;}
+-function DamageDEnum(){ return 199;}
+-function DamageFEnum(){ return 200;}
+-function DamageDbarEnum(){ return 201;}
+-function DamageLawEnum(){ return 202;}
+-function DamageC1Enum(){ return 203;}
+-function DamageC2Enum(){ return 204;}
+-function DamageC3Enum(){ return 205;}
+-function DamageC4Enum(){ return 206;}
+-function DamageElementinterpEnum(){ return 207;}
+-function DamageHealingEnum(){ return 208;}
+-function DamageStressThresholdEnum(){ return 209;}
+-function DamageKappaEnum(){ return 210;}
+-function DamageStabilizationEnum(){ return 211;}
+-function DamageMaxiterEnum(){ return 212;}
+-function DamageSpcdamageEnum(){ return 213;}
+-function DamageMaxDamageEnum(){ return 214;}
+-function DamageEquivStressEnum(){ return 215;}
+-function DamageEvolutionNumRequestedOutputsEnum(){ return 216;}
+-function DamageEvolutionRequestedOutputsEnum(){ return 217;}
+-function DamageEnum(){ return 218;}
+-function NewDamageEnum(){ return 219;}
+-function StressIntensityFactorEnum(){ return 220;}
+-function CalvingLawEnum(){ return 221;}
+-function CalvingCalvingrateEnum(){ return 222;}
+-function CalvingMeltingrateEnum(){ return 223;}
+-function CalvingLevermannEnum(){ return 224;}
+-function CalvingPiEnum(){ return 225;}
+-function CalvingDevEnum(){ return 226;}
+-function DefaultCalvingEnum(){ return 227;}
+-function CalvingRequestedOutputsEnum(){ return 228;}
+-function CalvinglevermannCoeffEnum(){ return 229;}
+-function CalvinglevermannMeltingrateEnum(){ return 230;}
+-function CalvingpiCoeffEnum(){ return 231;}
+-function CalvingpiMeltingrateEnum(){ return 232;}
+-function CalvingratexEnum(){ return 233;}
+-function CalvingrateyEnum(){ return 234;}
+-function CalvingratexAverageEnum(){ return 235;}
+-function CalvingrateyAverageEnum(){ return 236;}
+-function StrainRateparallelEnum(){ return 237;}
+-function StrainRateperpendicularEnum(){ return 238;}
+-function StrainRateeffectiveEnum(){ return 239;}
+-function MaterialsRhoIceEnum(){ return 240;}
+-function MaterialsRhoSeawaterEnum(){ return 241;}
+-function MaterialsRhoFreshwaterEnum(){ return 242;}
+-function MaterialsMuWaterEnum(){ return 243;}
+-function MaterialsThermalExchangeVelocityEnum(){ return 244;}
+-function MaterialsThermalconductivityEnum(){ return 245;}
+-function MaterialsTemperateiceconductivityEnum(){ return 246;}
+-function MaterialsLithosphereShearModulusEnum(){ return 247;}
+-function MaterialsLithosphereDensityEnum(){ return 248;}
+-function MaterialsMantleShearModulusEnum(){ return 249;}
+-function MaterialsMantleDensityEnum(){ return 250;}
+-function MaterialsEarthDensityEnum(){ return 251;}
+-function MeshAverageVertexConnectivityEnum(){ return 252;}
+-function MeshElements2dEnum(){ return 253;}
+-function MeshElementsEnum(){ return 254;}
+-function MeshLowerelementsEnum(){ return 255;}
+-function MeshNumberofelements2dEnum(){ return 256;}
+-function MeshNumberofelementsEnum(){ return 257;}
+-function MeshNumberoflayersEnum(){ return 258;}
+-function MeshNumberofvertices2dEnum(){ return 259;}
+-function MeshNumberofverticesEnum(){ return 260;}
+-function MeshUpperelementsEnum(){ return 261;}
+-function MeshVertexonbaseEnum(){ return 262;}
+-function MeshVertexonsurfaceEnum(){ return 263;}
+-function MeshVertexonboundaryEnum(){ return 264;}
+-function MeshXEnum(){ return 265;}
+-function MeshYEnum(){ return 266;}
+-function MeshZEnum(){ return 267;}
+-function MeshLatEnum(){ return 268;}
+-function MeshLongEnum(){ return 269;}
+-function MeshREnum(){ return 270;}
+-function MeshElementtypeEnum(){ return 271;}
+-function MeshSegmentsEnum(){ return 272;}
+-function DomainTypeEnum(){ return 273;}
+-function DomainDimensionEnum(){ return 274;}
+-function Domain2DhorizontalEnum(){ return 275;}
+-function Domain2DverticalEnum(){ return 276;}
+-function Domain3DEnum(){ return 277;}
+-function Domain3DsurfaceEnum(){ return 278;}
+-function MiscellaneousNameEnum(){ return 279;}
+-function MasstransportHydrostaticAdjustmentEnum(){ return 280;}
+-function MasstransportIsfreesurfaceEnum(){ return 281;}
+-function MasstransportMinThicknessEnum(){ return 282;}
+-function MasstransportPenaltyFactorEnum(){ return 283;}
+-function MasstransportSpcthicknessEnum(){ return 284;}
+-function MasstransportStabilizationEnum(){ return 285;}
+-function MasstransportVertexPairingEnum(){ return 286;}
+-function MasstransportNumRequestedOutputsEnum(){ return 287;}
+-function MasstransportRequestedOutputsEnum(){ return 288;}
+-function QmuIsdakotaEnum(){ return 289;}
+-function MassFluxSegmentsEnum(){ return 290;}
+-function MassFluxSegmentsPresentEnum(){ return 291;}
+-function QmuMassFluxSegmentsPresentEnum(){ return 292;}
+-function QmuNumberofpartitionsEnum(){ return 293;}
+-function QmuNumberofresponsesEnum(){ return 294;}
+-function QmuPartitionEnum(){ return 295;}
+-function QmuResponsedescriptorsEnum(){ return 296;}
+-function QmuVariabledescriptorsEnum(){ return 297;}
+-function RiftsNumriftsEnum(){ return 298;}
+-function RiftsRiftstructEnum(){ return 299;}
+-function SettingsResultsOnNodesEnum(){ return 300;}
+-function SettingsIoGatherEnum(){ return 301;}
+-function SettingsLowmemEnum(){ return 302;}
+-function SettingsOutputFrequencyEnum(){ return 303;}
+-function SettingsRecordingFrequencyEnum(){ return 304;}
+-function SettingsWaitonlockEnum(){ return 305;}
+-function DebugProfilingEnum(){ return 306;}
+-function ProfilingCurrentMemEnum(){ return 307;}
+-function ProfilingCurrentFlopsEnum(){ return 308;}
+-function ProfilingSolutionTimeEnum(){ return 309;}
+-function SteadystateMaxiterEnum(){ return 310;}
+-function SteadystateNumRequestedOutputsEnum(){ return 311;}
+-function SteadystateReltolEnum(){ return 312;}
+-function SteadystateRequestedOutputsEnum(){ return 313;}
+-function SurfaceEnum(){ return 314;}
+-function ThermalIsenthalpyEnum(){ return 315;}
+-function ThermalIsdynamicbasalspcEnum(){ return 316;}
+-function ThermalReltolEnum(){ return 317;}
+-function ThermalMaxiterEnum(){ return 318;}
+-function ThermalPenaltyFactorEnum(){ return 319;}
+-function ThermalPenaltyLockEnum(){ return 320;}
+-function ThermalPenaltyThresholdEnum(){ return 321;}
+-function ThermalSpctemperatureEnum(){ return 322;}
+-function ThermalStabilizationEnum(){ return 323;}
+-function ThermalNumRequestedOutputsEnum(){ return 324;}
+-function ThermalRequestedOutputsEnum(){ return 325;}
+-function GiaMantleViscosityEnum(){ return 326;}
+-function GiaLithosphereThicknessEnum(){ return 327;}
+-function ThicknessEnum(){ return 328;}
+-function TimesteppingStartTimeEnum(){ return 329;}
+-function TimesteppingFinalTimeEnum(){ return 330;}
+-function TimesteppingCflCoefficientEnum(){ return 331;}
+-function TimesteppingTimeAdaptEnum(){ return 332;}
+-function TimesteppingTimeStepEnum(){ return 333;}
+-function TimesteppingInterpForcingsEnum(){ return 334;}
+-function TransientIssmbEnum(){ return 335;}
+-function TransientIsstressbalanceEnum(){ return 336;}
+-function TransientIsgroundinglineEnum(){ return 337;}
+-function TransientIsmasstransportEnum(){ return 338;}
+-function TransientIsthermalEnum(){ return 339;}
+-function TransientIsgiaEnum(){ return 340;}
+-function TransientIsdamageevolutionEnum(){ return 341;}
+-function TransientIshydrologyEnum(){ return 342;}
+-function TransientIscalvingEnum(){ return 343;}
+-function TransientNumRequestedOutputsEnum(){ return 344;}
+-function TransientRequestedOutputsEnum(){ return 345;}
+-function PotentialEnum(){ return 346;}
+-function BalancethicknessSpcpotentialEnum(){ return 347;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 348;}
+-function Balancethickness2MisfitEnum(){ return 349;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 350;}
+-function BalancethicknessCmuEnum(){ return 351;}
+-function BalancethicknessOmegaEnum(){ return 352;}
+-function BalancethicknessD0Enum(){ return 353;}
+-function SmbEnum(){ return 354;}
+-function SmbAnalysisEnum(){ return 355;}
+-function SmbSolutionEnum(){ return 356;}
+-function SmbNumRequestedOutputsEnum(){ return 357;}
+-function SmbRequestedOutputsEnum(){ return 358;}
+-function SmbIsInitializedEnum(){ return 359;}
+-function SMBforcingEnum(){ return 360;}
+-function SmbMassBalanceEnum(){ return 361;}
+-function SMBgembEnum(){ return 362;}
+-function SmbInitDensityScalingEnum(){ return 363;}
+-function SmbTaEnum(){ return 364;}
+-function SmbVEnum(){ return 365;}
+-function SmbDswrfEnum(){ return 366;}
+-function SmbDlwrfEnum(){ return 367;}
+-function SmbPEnum(){ return 368;}
+-function SmbSwfEnum(){ return 369;}
+-function SmbEAirEnum(){ return 370;}
+-function SmbPAirEnum(){ return 371;}
+-function SmbTmeanEnum(){ return 372;}
+-function SmbCEnum(){ return 373;}
+-function SmbTzEnum(){ return 374;}
+-function SmbVzEnum(){ return 375;}
+-function SmbDtEnum(){ return 376;}
+-function SmbDzEnum(){ return 377;}
+-function SmbAIdxEnum(){ return 378;}
+-function SmbSwIdxEnum(){ return 379;}
+-function SmbDenIdxEnum(){ return 380;}
+-function SmbZTopEnum(){ return 381;}
+-function SmbDzTopEnum(){ return 382;}
+-function SmbDzMinEnum(){ return 383;}
+-function SmbZYEnum(){ return 384;}
+-function SmbZMaxEnum(){ return 385;}
+-function SmbZMinEnum(){ return 386;}
+-function SmbOutputFreqEnum(){ return 387;}
+-function SmbASnowEnum(){ return 388;}
+-function SmbAIceEnum(){ return 389;}
+-function SmbCldFracEnum(){ return 390;}
+-function SmbT0wetEnum(){ return 391;}
+-function SmbT0dryEnum(){ return 392;}
+-function SmbKEnum(){ return 393;}
+-function SmbDEnum(){ return 394;}
+-function SmbReEnum(){ return 395;}
+-function SmbGdnEnum(){ return 396;}
+-function SmbGspEnum(){ return 397;}
+-function SmbECEnum(){ return 398;}
+-function SmbCondensationEnum(){ return 399;}
+-function SmbWEnum(){ return 400;}
+-function SmbAEnum(){ return 401;}
+-function SmbTEnum(){ return 402;}
+-function SmbIsgraingrowthEnum(){ return 403;}
+-function SmbIsalbedoEnum(){ return 404;}
+-function SmbIsshortwaveEnum(){ return 405;}
+-function SmbIsthermalEnum(){ return 406;}
+-function SmbIsaccumulationEnum(){ return 407;}
+-function SmbIsmeltEnum(){ return 408;}
+-function SmbIsdensificationEnum(){ return 409;}
+-function SmbIsturbulentfluxEnum(){ return 410;}
+-function SMBpddEnum(){ return 411;}
+-function SmbDelta18oEnum(){ return 412;}
+-function SmbDelta18oSurfaceEnum(){ return 413;}
+-function SmbIsdelta18oEnum(){ return 414;}
+-function SmbIsmungsmEnum(){ return 415;}
+-function SmbIsd18opdEnum(){ return 416;}
+-function SmbPrecipitationsPresentdayEnum(){ return 417;}
+-function SmbPrecipitationsLgmEnum(){ return 418;}
+-function SmbTemperaturesPresentdayEnum(){ return 419;}
+-function SmbTemperaturesLgmEnum(){ return 420;}
+-function SmbPrecipitationEnum(){ return 421;}
+-function SmbDesfacEnum(){ return 422;}
+-function SmbS0pEnum(){ return 423;}
+-function SmbS0tEnum(){ return 424;}
+-function SmbRlapsEnum(){ return 425;}
+-function SmbRlapslgmEnum(){ return 426;}
+-function SmbPfacEnum(){ return 427;}
+-function SmbTdiffEnum(){ return 428;}
+-function SmbSealevEnum(){ return 429;}
+-function SMBd18opddEnum(){ return 430;}
+-function SmbDpermilEnum(){ return 431;}
+-function SMBgradientsEnum(){ return 432;}
+-function SmbMonthlytemperaturesEnum(){ return 433;}
+-function SmbHrefEnum(){ return 434;}
+-function SmbSmbrefEnum(){ return 435;}
+-function SmbBPosEnum(){ return 436;}
+-function SmbBNegEnum(){ return 437;}
+-function SMBhenningEnum(){ return 438;}
+-function SMBcomponentsEnum(){ return 439;}
+-function SmbAccumulationEnum(){ return 440;}
+-function SmbEvaporationEnum(){ return 441;}
+-function SmbRunoffEnum(){ return 442;}
+-function SMBmeltcomponentsEnum(){ return 443;}
+-function SmbMeltEnum(){ return 444;}
+-function SmbRefreezeEnum(){ return 445;}
+-function SMBgcmEnum(){ return 446;}
+-function SmbIspddEnum(){ return 447;}
+-function SmbIssmbgradientsEnum(){ return 448;}
+-function SolutionTypeEnum(){ return 449;}
+-function AnalysisTypeEnum(){ return 450;}
+-function ConfigurationTypeEnum(){ return 451;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 452;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 453;}
+-function AdjointHorizAnalysisEnum(){ return 454;}
+-function AnalysisCounterEnum(){ return 455;}
+-function DefaultAnalysisEnum(){ return 456;}
+-function BalancethicknessAnalysisEnum(){ return 457;}
+-function BalancethicknessSolutionEnum(){ return 458;}
+-function Balancethickness2AnalysisEnum(){ return 459;}
+-function Balancethickness2SolutionEnum(){ return 460;}
+-function BalancethicknessSoftAnalysisEnum(){ return 461;}
+-function BalancethicknessSoftSolutionEnum(){ return 462;}
+-function BalancevelocityAnalysisEnum(){ return 463;}
+-function BalancevelocitySolutionEnum(){ return 464;}
+-function L2ProjectionEPLAnalysisEnum(){ return 465;}
+-function L2ProjectionBaseAnalysisEnum(){ return 466;}
+-function BedSlopeSolutionEnum(){ return 467;}
+-function DamageEvolutionSolutionEnum(){ return 468;}
+-function DamageEvolutionAnalysisEnum(){ return 469;}
+-function StressbalanceAnalysisEnum(){ return 470;}
+-function StressbalanceSIAAnalysisEnum(){ return 471;}
+-function StressbalanceSolutionEnum(){ return 472;}
+-function StressbalanceVerticalAnalysisEnum(){ return 473;}
+-function EnthalpyAnalysisEnum(){ return 474;}
+-function FlaimAnalysisEnum(){ return 475;}
+-function FlaimSolutionEnum(){ return 476;}
+-function HydrologyShreveAnalysisEnum(){ return 477;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 478;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 479;}
+-function HydrologySommersAnalysisEnum(){ return 480;}
+-function HydrologySolutionEnum(){ return 481;}
+-function MeltingAnalysisEnum(){ return 482;}
+-function MasstransportAnalysisEnum(){ return 483;}
+-function MasstransportSolutionEnum(){ return 484;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 485;}
+-function FreeSurfaceTopAnalysisEnum(){ return 486;}
+-function SurfaceNormalVelocityEnum(){ return 487;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 488;}
+-function ExtrudeFromTopAnalysisEnum(){ return 489;}
+-function DepthAverageAnalysisEnum(){ return 490;}
+-function SteadystateSolutionEnum(){ return 491;}
+-function SurfaceSlopeSolutionEnum(){ return 492;}
+-function SmoothAnalysisEnum(){ return 493;}
+-function ThermalAnalysisEnum(){ return 494;}
+-function ThermalSolutionEnum(){ return 495;}
+-function TransientSolutionEnum(){ return 496;}
+-function UzawaPressureAnalysisEnum(){ return 497;}
+-function GiaSolutionEnum(){ return 498;}
+-function GiaAnalysisEnum(){ return 499;}
+-function MeshdeformationSolutionEnum(){ return 500;}
+-function MeshdeformationAnalysisEnum(){ return 501;}
+-function LevelsetAnalysisEnum(){ return 502;}
+-function LevelsetStabilizationEnum(){ return 503;}
+-function ExtrapolationAnalysisEnum(){ return 504;}
+-function LsfReinitializationAnalysisEnum(){ return 505;}
+-function ApproximationEnum(){ return 506;}
+-function NoneApproximationEnum(){ return 507;}
+-function SIAApproximationEnum(){ return 508;}
+-function SSAApproximationEnum(){ return 509;}
+-function SSAHOApproximationEnum(){ return 510;}
+-function SSAFSApproximationEnum(){ return 511;}
+-function L1L2ApproximationEnum(){ return 512;}
+-function HOApproximationEnum(){ return 513;}
+-function HOFSApproximationEnum(){ return 514;}
+-function FSApproximationEnum(){ return 515;}
+-function FSvelocityEnum(){ return 516;}
+-function FSpressureEnum(){ return 517;}
+-function DataSetEnum(){ return 518;}
+-function ConstraintsEnum(){ return 519;}
+-function LoadsEnum(){ return 520;}
+-function MaterialsEnum(){ return 521;}
+-function NodesEnum(){ return 522;}
+-function ContoursEnum(){ return 523;}
+-function ParametersEnum(){ return 524;}
+-function VerticesEnum(){ return 525;}
+-function ResultsEnum(){ return 526;}
+-function GenericParamEnum(){ return 527;}
+-function AdolcParamEnum(){ return 528;}
+-function BoolInputEnum(){ return 529;}
+-function BoolParamEnum(){ return 530;}
+-function ContourEnum(){ return 531;}
+-function ControlInputEnum(){ return 532;}
+-function DatasetInputEnum(){ return 533;}
+-function DoubleInputEnum(){ return 534;}
+-function DoubleArrayInputEnum(){ return 535;}
+-function DataSetParamEnum(){ return 536;}
+-function DoubleMatArrayParamEnum(){ return 537;}
+-function DoubleMatParamEnum(){ return 538;}
+-function DoubleParamEnum(){ return 539;}
+-function DoubleVecParamEnum(){ return 540;}
+-function ElementEnum(){ return 541;}
+-function ElementHookEnum(){ return 542;}
+-function HookEnum(){ return 543;}
+-function ExternalResultEnum(){ return 544;}
+-function FileParamEnum(){ return 545;}
+-function InputEnum(){ return 546;}
+-function IntInputEnum(){ return 547;}
+-function InputToExtrudeEnum(){ return 548;}
+-function InputToL2ProjectEnum(){ return 549;}
+-function InputToDepthaverageEnum(){ return 550;}
+-function InputToSmoothEnum(){ return 551;}
+-function SmoothThicknessMultiplierEnum(){ return 552;}
+-function IntParamEnum(){ return 553;}
+-function IntVecParamEnum(){ return 554;}
+-function TransientParamEnum(){ return 555;}
+-function MaticeEnum(){ return 556;}
+-function MatdamageiceEnum(){ return 557;}
+-function MatparEnum(){ return 558;}
+-function NodeEnum(){ return 559;}
+-function NumericalfluxEnum(){ return 560;}
+-function NumericalfluxTypeEnum(){ return 561;}
+-function NeumannfluxEnum(){ return 562;}
+-function ParamEnum(){ return 563;}
+-function MoulinEnum(){ return 564;}
+-function PengridEnum(){ return 565;}
+-function PenpairEnum(){ return 566;}
+-function ProfilerEnum(){ return 567;}
+-function MatrixParamEnum(){ return 568;}
+-function MassconEnum(){ return 569;}
+-function MassconNameEnum(){ return 570;}
+-function MassconDefinitionenumEnum(){ return 571;}
+-function MassconLevelsetEnum(){ return 572;}
+-function MassconaxpbyEnum(){ return 573;}
+-function MassconaxpbyNameEnum(){ return 574;}
+-function MassconaxpbyDefinitionenumEnum(){ return 575;}
+-function MassconaxpbyNamexEnum(){ return 576;}
+-function MassconaxpbyNameyEnum(){ return 577;}
+-function MassconaxpbyAlphaEnum(){ return 578;}
+-function MassconaxpbyBetaEnum(){ return 579;}
+-function NodeSIdEnum(){ return 580;}
+-function VectorParamEnum(){ return 581;}
+-function RiftfrontEnum(){ return 582;}
+-function RiftfrontTypeEnum(){ return 583;}
+-function SegmentEnum(){ return 584;}
+-function SegmentRiftfrontEnum(){ return 585;}
+-function SpcDynamicEnum(){ return 586;}
+-function SpcStaticEnum(){ return 587;}
+-function SpcTransientEnum(){ return 588;}
+-function StringArrayParamEnum(){ return 589;}
+-function StringParamEnum(){ return 590;}
+-function SegEnum(){ return 591;}
+-function SegInputEnum(){ return 592;}
+-function TriaEnum(){ return 593;}
+-function TriaInputEnum(){ return 594;}
+-function TetraEnum(){ return 595;}
+-function TetraInputEnum(){ return 596;}
+-function PentaEnum(){ return 597;}
+-function PentaInputEnum(){ return 598;}
+-function VertexEnum(){ return 599;}
+-function VertexPIdEnum(){ return 600;}
+-function VertexSIdEnum(){ return 601;}
+-function AirEnum(){ return 602;}
+-function IceEnum(){ return 603;}
+-function MelangeEnum(){ return 604;}
+-function WaterEnum(){ return 605;}
+-function ClosedEnum(){ return 606;}
+-function FreeEnum(){ return 607;}
+-function OpenEnum(){ return 608;}
+-function AdjointpEnum(){ return 609;}
+-function AdjointxEnum(){ return 610;}
+-function AdjointyEnum(){ return 611;}
+-function AdjointzEnum(){ return 612;}
+-function BalancethicknessMisfitEnum(){ return 613;}
+-function BedSlopeXEnum(){ return 614;}
+-function BedSlopeYEnum(){ return 615;}
+-function BoundaryEnum(){ return 616;}
+-function ConvergedEnum(){ return 617;}
+-function FillEnum(){ return 618;}
+-function FractionIncrementEnum(){ return 619;}
+-function FrictionEnum(){ return 620;}
+-function InternalEnum(){ return 621;}
+-function MassFluxEnum(){ return 622;}
+-function MeltingOffsetEnum(){ return 623;}
+-function MisfitEnum(){ return 624;}
+-function PressureEnum(){ return 625;}
+-function PressurePicardEnum(){ return 626;}
+-function AndroidFrictionCoefficientEnum(){ return 627;}
+-function ResetPenaltiesEnum(){ return 628;}
+-function SegmentOnIceShelfEnum(){ return 629;}
+-function SurfaceAbsVelMisfitEnum(){ return 630;}
+-function SurfaceAreaEnum(){ return 631;}
+-function SurfaceAverageVelMisfitEnum(){ return 632;}
+-function SurfaceLogVelMisfitEnum(){ return 633;}
+-function SurfaceLogVxVyMisfitEnum(){ return 634;}
+-function SurfaceRelVelMisfitEnum(){ return 635;}
+-function SurfaceSlopeXEnum(){ return 636;}
+-function SurfaceSlopeYEnum(){ return 637;}
+-function TemperatureEnum(){ return 638;}
+-function TemperaturePicardEnum(){ return 639;}
+-function TemperaturePDDEnum(){ return 640;}
+-function ThicknessAbsMisfitEnum(){ return 641;}
+-function SurfaceAbsMisfitEnum(){ return 642;}
+-function VelEnum(){ return 643;}
+-function VelocityEnum(){ return 644;}
+-function VxAverageEnum(){ return 645;}
+-function VxEnum(){ return 646;}
+-function VxPicardEnum(){ return 647;}
+-function VyAverageEnum(){ return 648;}
+-function VyEnum(){ return 649;}
+-function VyPicardEnum(){ return 650;}
+-function VzEnum(){ return 651;}
+-function VzSSAEnum(){ return 652;}
+-function VzHOEnum(){ return 653;}
+-function VzPicardEnum(){ return 654;}
+-function VzFSEnum(){ return 655;}
+-function VxMeshEnum(){ return 656;}
+-function VyMeshEnum(){ return 657;}
+-function VzMeshEnum(){ return 658;}
+-function EnthalpyEnum(){ return 659;}
+-function EnthalpyPicardEnum(){ return 660;}
+-function ThicknessAbsGradientEnum(){ return 661;}
+-function ThicknessAlongGradientEnum(){ return 662;}
+-function ThicknessAcrossGradientEnum(){ return 663;}
+-function ThicknessPositiveEnum(){ return 664;}
+-function IntMatParamEnum(){ return 665;}
+-function RheologyBbarAbsGradientEnum(){ return 666;}
+-function RheologyBAbsGradientEnum(){ return 667;}
+-function DragCoefficientAbsGradientEnum(){ return 668;}
+-function TransientInputEnum(){ return 669;}
+-function WaterfractionEnum(){ return 670;}
+-function WatercolumnEnum(){ return 671;}
+-function BasalFrictionEnum(){ return 672;}
+-function ViscousHeatingEnum(){ return 673;}
+-function HydrologyWaterVxEnum(){ return 674;}
+-function HydrologyWaterVyEnum(){ return 675;}
+-function DrivingStressXEnum(){ return 676;}
+-function DrivingStressYEnum(){ return 677;}
+-function SigmaNNEnum(){ return 678;}
+-function StressTensorEnum(){ return 679;}
+-function StressTensorxxEnum(){ return 680;}
+-function StressTensorxyEnum(){ return 681;}
+-function StressTensorxzEnum(){ return 682;}
+-function StressTensoryyEnum(){ return 683;}
+-function StressTensoryzEnum(){ return 684;}
+-function StressTensorzzEnum(){ return 685;}
+-function StressMaxPrincipalEnum(){ return 686;}
+-function DeviatoricStressEnum(){ return 687;}
+-function DeviatoricStressxxEnum(){ return 688;}
+-function DeviatoricStressxyEnum(){ return 689;}
+-function DeviatoricStressxzEnum(){ return 690;}
+-function DeviatoricStressyyEnum(){ return 691;}
+-function DeviatoricStressyzEnum(){ return 692;}
+-function DeviatoricStresszzEnum(){ return 693;}
+-function DeviatoricStresseffectiveEnum(){ return 694;}
+-function StrainRateEnum(){ return 695;}
+-function StrainRatexxEnum(){ return 696;}
+-function StrainRatexyEnum(){ return 697;}
+-function StrainRatexzEnum(){ return 698;}
+-function StrainRateyyEnum(){ return 699;}
+-function StrainRateyzEnum(){ return 700;}
+-function StrainRatezzEnum(){ return 701;}
+-function DivergenceEnum(){ return 702;}
+-function MaxDivergenceEnum(){ return 703;}
+-function GiaCrossSectionShapeEnum(){ return 704;}
+-function GiadWdtEnum(){ return 705;}
+-function GiaWEnum(){ return 706;}
+-function P0Enum(){ return 707;}
+-function P0ArrayEnum(){ return 708;}
+-function P1Enum(){ return 709;}
+-function P1DGEnum(){ return 710;}
+-function P1bubbleEnum(){ return 711;}
+-function P1bubblecondensedEnum(){ return 712;}
+-function P2Enum(){ return 713;}
+-function P2bubbleEnum(){ return 714;}
+-function P2bubblecondensedEnum(){ return 715;}
+-function P2xP1Enum(){ return 716;}
+-function P1xP2Enum(){ return 717;}
+-function P1xP3Enum(){ return 718;}
+-function P2xP4Enum(){ return 719;}
+-function P1P1Enum(){ return 720;}
+-function P1P1GLSEnum(){ return 721;}
+-function MINIEnum(){ return 722;}
+-function MINIcondensedEnum(){ return 723;}
+-function TaylorHoodEnum(){ return 724;}
+-function LATaylorHoodEnum(){ return 725;}
+-function XTaylorHoodEnum(){ return 726;}
+-function OneLayerP4zEnum(){ return 727;}
+-function CrouzeixRaviartEnum(){ return 728;}
+-function LACrouzeixRaviartEnum(){ return 729;}
+-function SaveResultsEnum(){ return 730;}
+-function BoolExternalResultEnum(){ return 731;}
+-function DoubleExternalResultEnum(){ return 732;}
+-function DoubleMatExternalResultEnum(){ return 733;}
+-function IntExternalResultEnum(){ return 734;}
+-function JEnum(){ return 735;}
+-function StringExternalResultEnum(){ return 736;}
+-function StepEnum(){ return 737;}
+-function TimeEnum(){ return 738;}
+-function WaterColumnOldEnum(){ return 739;}
+-function OutputdefinitionEnum(){ return 740;}
+-function Outputdefinition1Enum(){ return 741;}
+-function Outputdefinition2Enum(){ return 742;}
+-function Outputdefinition3Enum(){ return 743;}
+-function Outputdefinition4Enum(){ return 744;}
+-function Outputdefinition5Enum(){ return 745;}
+-function Outputdefinition6Enum(){ return 746;}
+-function Outputdefinition7Enum(){ return 747;}
+-function Outputdefinition8Enum(){ return 748;}
+-function Outputdefinition9Enum(){ return 749;}
+-function Outputdefinition10Enum(){ return 750;}
+-function Outputdefinition11Enum(){ return 751;}
+-function Outputdefinition12Enum(){ return 752;}
+-function Outputdefinition13Enum(){ return 753;}
+-function Outputdefinition14Enum(){ return 754;}
+-function Outputdefinition15Enum(){ return 755;}
+-function Outputdefinition16Enum(){ return 756;}
+-function Outputdefinition17Enum(){ return 757;}
+-function Outputdefinition18Enum(){ return 758;}
+-function Outputdefinition19Enum(){ return 759;}
+-function Outputdefinition20Enum(){ return 760;}
+-function Outputdefinition21Enum(){ return 761;}
+-function Outputdefinition22Enum(){ return 762;}
+-function Outputdefinition23Enum(){ return 763;}
+-function Outputdefinition24Enum(){ return 764;}
+-function Outputdefinition25Enum(){ return 765;}
+-function Outputdefinition26Enum(){ return 766;}
+-function Outputdefinition27Enum(){ return 767;}
+-function Outputdefinition28Enum(){ return 768;}
+-function Outputdefinition29Enum(){ return 769;}
+-function Outputdefinition30Enum(){ return 770;}
+-function Outputdefinition31Enum(){ return 771;}
+-function Outputdefinition32Enum(){ return 772;}
+-function Outputdefinition33Enum(){ return 773;}
+-function Outputdefinition34Enum(){ return 774;}
+-function Outputdefinition35Enum(){ return 775;}
+-function Outputdefinition36Enum(){ return 776;}
+-function Outputdefinition37Enum(){ return 777;}
+-function Outputdefinition38Enum(){ return 778;}
+-function Outputdefinition39Enum(){ return 779;}
+-function Outputdefinition40Enum(){ return 780;}
+-function Outputdefinition41Enum(){ return 781;}
+-function Outputdefinition42Enum(){ return 782;}
+-function Outputdefinition43Enum(){ return 783;}
+-function Outputdefinition44Enum(){ return 784;}
+-function Outputdefinition45Enum(){ return 785;}
+-function Outputdefinition46Enum(){ return 786;}
+-function Outputdefinition47Enum(){ return 787;}
+-function Outputdefinition48Enum(){ return 788;}
+-function Outputdefinition49Enum(){ return 789;}
+-function Outputdefinition50Enum(){ return 790;}
+-function Outputdefinition51Enum(){ return 791;}
+-function Outputdefinition52Enum(){ return 792;}
+-function Outputdefinition53Enum(){ return 793;}
+-function Outputdefinition54Enum(){ return 794;}
+-function Outputdefinition55Enum(){ return 795;}
+-function Outputdefinition56Enum(){ return 796;}
+-function Outputdefinition57Enum(){ return 797;}
+-function Outputdefinition58Enum(){ return 798;}
+-function Outputdefinition59Enum(){ return 799;}
+-function Outputdefinition60Enum(){ return 800;}
+-function Outputdefinition61Enum(){ return 801;}
+-function Outputdefinition62Enum(){ return 802;}
+-function Outputdefinition63Enum(){ return 803;}
+-function Outputdefinition64Enum(){ return 804;}
+-function Outputdefinition65Enum(){ return 805;}
+-function Outputdefinition66Enum(){ return 806;}
+-function Outputdefinition67Enum(){ return 807;}
+-function Outputdefinition68Enum(){ return 808;}
+-function Outputdefinition69Enum(){ return 809;}
+-function Outputdefinition70Enum(){ return 810;}
+-function Outputdefinition71Enum(){ return 811;}
+-function Outputdefinition72Enum(){ return 812;}
+-function Outputdefinition73Enum(){ return 813;}
+-function Outputdefinition74Enum(){ return 814;}
+-function Outputdefinition75Enum(){ return 815;}
+-function Outputdefinition76Enum(){ return 816;}
+-function Outputdefinition77Enum(){ return 817;}
+-function Outputdefinition78Enum(){ return 818;}
+-function Outputdefinition79Enum(){ return 819;}
+-function Outputdefinition80Enum(){ return 820;}
+-function Outputdefinition81Enum(){ return 821;}
+-function Outputdefinition82Enum(){ return 822;}
+-function Outputdefinition83Enum(){ return 823;}
+-function Outputdefinition84Enum(){ return 824;}
+-function Outputdefinition85Enum(){ return 825;}
+-function Outputdefinition86Enum(){ return 826;}
+-function Outputdefinition87Enum(){ return 827;}
+-function Outputdefinition88Enum(){ return 828;}
+-function Outputdefinition89Enum(){ return 829;}
+-function Outputdefinition90Enum(){ return 830;}
+-function Outputdefinition91Enum(){ return 831;}
+-function Outputdefinition92Enum(){ return 832;}
+-function Outputdefinition93Enum(){ return 833;}
+-function Outputdefinition94Enum(){ return 834;}
+-function Outputdefinition95Enum(){ return 835;}
+-function Outputdefinition96Enum(){ return 836;}
+-function Outputdefinition97Enum(){ return 837;}
+-function Outputdefinition98Enum(){ return 838;}
+-function Outputdefinition99Enum(){ return 839;}
+-function Outputdefinition100Enum(){ return 840;}
+-function OutputdefinitionListEnum(){ return 841;}
+-function MassfluxatgateEnum(){ return 842;}
+-function MassfluxatgateNameEnum(){ return 843;}
+-function MassfluxatgateDefinitionenumEnum(){ return 844;}
+-function MassfluxatgateSegmentsEnum(){ return 845;}
+-function MisfitNameEnum(){ return 846;}
+-function MisfitDefinitionenumEnum(){ return 847;}
+-function MisfitModelEnum(){ return 848;}
+-function MisfitObservationEnum(){ return 849;}
+-function MisfitObservationEnum(){ return 850;}
+-function MisfitLocalEnum(){ return 851;}
+-function MisfitTimeinterpolationEnum(){ return 852;}
+-function MisfitWeightsEnum(){ return 853;}
+-function MisfitWeightsEnum(){ return 854;}
+-function SurfaceObservationEnum(){ return 855;}
+-function WeightsSurfaceObservationEnum(){ return 856;}
+-function VxObsEnum(){ return 857;}
+-function WeightsVxObsEnum(){ return 858;}
+-function VyObsEnum(){ return 859;}
+-function WeightsVyObsEnum(){ return 860;}
+-function MinVelEnum(){ return 861;}
+-function MaxVelEnum(){ return 862;}
+-function MinVxEnum(){ return 863;}
+-function MaxVxEnum(){ return 864;}
+-function MaxAbsVxEnum(){ return 865;}
+-function MinVyEnum(){ return 866;}
+-function MaxVyEnum(){ return 867;}
+-function MaxAbsVyEnum(){ return 868;}
+-function MinVzEnum(){ return 869;}
+-function MaxVzEnum(){ return 870;}
+-function MaxAbsVzEnum(){ return 871;}
+-function FloatingAreaEnum(){ return 872;}
+-function GroundedAreaEnum(){ return 873;}
+-function IceMassEnum(){ return 874;}
+-function IceVolumeEnum(){ return 875;}
+-function IceVolumeAboveFloatationEnum(){ return 876;}
+-function TotalSmbEnum(){ return 877;}
+-function AbsoluteEnum(){ return 878;}
+-function IncrementalEnum(){ return 879;}
+-function AugmentedLagrangianREnum(){ return 880;}
+-function AugmentedLagrangianRhopEnum(){ return 881;}
+-function AugmentedLagrangianRlambdaEnum(){ return 882;}
+-function AugmentedLagrangianRholambdaEnum(){ return 883;}
+-function AugmentedLagrangianThetaEnum(){ return 884;}
+-function NoneEnum(){ return 885;}
+-function AggressiveMigrationEnum(){ return 886;}
+-function SoftMigrationEnum(){ return 887;}
+-function SubelementMigrationEnum(){ return 888;}
+-function SubelementMigration2Enum(){ return 889;}
+-function ContactEnum(){ return 890;}
+-function GroundingOnlyEnum(){ return 891;}
+-function MaskGroundediceLevelsetEnum(){ return 892;}
+-function GaussSegEnum(){ return 893;}
+-function GaussTriaEnum(){ return 894;}
+-function GaussTetraEnum(){ return 895;}
+-function GaussPentaEnum(){ return 896;}
+-function FSSolverEnum(){ return 897;}
+-function AdjointEnum(){ return 898;}
+-function ColinearEnum(){ return 899;}
+-function ControlSteadyEnum(){ return 900;}
+-function FsetEnum(){ return 901;}
+-function Gradient1Enum(){ return 902;}
+-function Gradient2Enum(){ return 903;}
+-function Gradient3Enum(){ return 904;}
+-function GradientEnum(){ return 905;}
+-function GroundinglineMigrationEnum(){ return 906;}
+-function GsetEnum(){ return 907;}
+-function IndexEnum(){ return 908;}
+-function IndexedEnum(){ return 909;}
+-function IntersectEnum(){ return 910;}
+-function NodalEnum(){ return 911;}
+-function OldGradientEnum(){ return 912;}
+-function OutputBufferPointerEnum(){ return 913;}
+-function OutputBufferSizePointerEnum(){ return 914;}
+-function OutputFilePointerEnum(){ return 915;}
+-function ToolkitsFileNameEnum(){ return 916;}
+-function RootPathEnum(){ return 917;}
+-function OutputFileNameEnum(){ return 918;}
+-function InputFileNameEnum(){ return 919;}
+-function LockFileNameEnum(){ return 920;}
+-function RestartFileNameEnum(){ return 921;}
+-function ToolkitsOptionsAnalysesEnum(){ return 922;}
+-function ToolkitsOptionsStringsEnum(){ return 923;}
+-function QmuErrNameEnum(){ return 924;}
+-function QmuInNameEnum(){ return 925;}
+-function QmuOutNameEnum(){ return 926;}
+-function RegularEnum(){ return 927;}
+-function ScaledEnum(){ return 928;}
+-function SeparateEnum(){ return 929;}
+-function SsetEnum(){ return 930;}
+-function VerboseEnum(){ return 931;}
+-function TriangleInterpEnum(){ return 932;}
+-function BilinearInterpEnum(){ return 933;}
+-function NearestInterpEnum(){ return 934;}
+-function XYEnum(){ return 935;}
+-function XYZEnum(){ return 936;}
+-function DenseEnum(){ return 937;}
+-function MpiDenseEnum(){ return 938;}
+-function MpiSparseEnum(){ return 939;}
+-function SeqEnum(){ return 940;}
+-function MpiEnum(){ return 941;}
+-function MumpsEnum(){ return 942;}
+-function GslEnum(){ return 943;}
+-function OptionEnum(){ return 944;}
+-function GenericOptionEnum(){ return 945;}
+-function OptionCellEnum(){ return 946;}
+-function OptionStructEnum(){ return 947;}
+-function CuffeyEnum(){ return 948;}
+-function PatersonEnum(){ return 949;}
+-function ArrheniusEnum(){ return 950;}
+-function LliboutryDuvalEnum(){ return 951;}
+-function TransientIslevelsetEnum(){ return 952;}
+-function SpcLevelsetEnum(){ return 953;}
+-function ExtrapolationVariableEnum(){ return 954;}
+-function IceMaskNodeActivationEnum(){ return 955;}
+-function LevelsetfunctionSlopeXEnum(){ return 956;}
+-function LevelsetfunctionSlopeYEnum(){ return 957;}
+-function LevelsetfunctionPicardEnum(){ return 958;}
+-function SealevelriseSolutionEnum(){ return 959;}
+-function SealevelriseAnalysisEnum(){ return 960;}
+-function SealevelriseSEnum(){ return 961;}
+-function SealevelriseDeltathicknessEnum(){ return 962;}
+-function SealevelriseMaxiterEnum(){ return 963;}
+-function SealevelriseReltolEnum(){ return 964;}
+-function SealevelriseAbstolEnum(){ return 965;}
+-function SealevelriseLoveHEnum(){ return 966;}
+-function SealevelriseLoveKEnum(){ return 967;}
+-function SealevelriseRigidEnum(){ return 968;}
+-function SealevelriseElasticEnum(){ return 969;}
+-function SealevelriseEustaticEnum(){ return 970;}
+-function SealevelriseLegendrePrecomputeEnum(){ return 971;}
+-function SealevelriseLegendreCoefficientsEnum(){ return 972;}
+-function SealevelriseGRigidEnum(){ return 973;}
+-function SealevelriseGElasticEnum(){ return 974;}
+-function SealevelriseStoreGreenFunctionsEnum(){ return 975;}
+-function MaximumNumberOfDefinitionsEnum(){ return 976;}
++function BasalforcingsMantleconductivityEnum(){ return 40;}
++function BasalforcingsNusseltEnum(){ return 41;}
++function BasalforcingsDtbgEnum(){ return 42;}
++function BasalforcingsPlumeradiusEnum(){ return 43;}
++function BasalforcingsTopplumedepthEnum(){ return 44;}
++function BasalforcingsBottomplumedepthEnum(){ return 45;}
++function BasalforcingsPlumexEnum(){ return 46;}
++function BasalforcingsPlumeyEnum(){ return 47;}
++function BasalforcingsCrustthicknessEnum(){ return 48;}
++function BasalforcingsUppercrustthicknessEnum(){ return 49;}
++function BasalforcingsUppercrustheatEnum(){ return 50;}
++function BasalforcingsLowercrustheatEnum(){ return 51;}
++function FloatingMeltRateEnum(){ return 52;}
++function LinearFloatingMeltRateEnum(){ return 53;}
++function MismipFloatingMeltRateEnum(){ return 54;}
++function MantlePlumeGeothermalFluxEnum(){ return 55;}
++function BedEnum(){ return 56;}
++function BaseEnum(){ return 57;}
++function ConstantsGEnum(){ return 58;}
++function ConstantsReferencetemperatureEnum(){ return 59;}
++function ConstantsYtsEnum(){ return 60;}
++function DependentObjectEnum(){ return 61;}
++function StressbalanceAbstolEnum(){ return 62;}
++function StressbalanceIsnewtonEnum(){ return 63;}
++function StressbalanceMaxiterEnum(){ return 64;}
++function StressbalancePenaltyFactorEnum(){ return 65;}
++function StressbalanceReferentialEnum(){ return 66;}
++function StressbalanceReltolEnum(){ return 67;}
++function StressbalanceNumRequestedOutputsEnum(){ return 68;}
++function StressbalanceRequestedOutputsEnum(){ return 69;}
++function StressbalanceRestolEnum(){ return 70;}
++function StressbalanceRiftPenaltyLockEnum(){ return 71;}
++function StressbalanceRiftPenaltyThresholdEnum(){ return 72;}
++function StressbalanceShelfDampeningEnum(){ return 73;}
++function StressbalanceSpcvxEnum(){ return 74;}
++function StressbalanceSpcvyEnum(){ return 75;}
++function StressbalanceSpcvzEnum(){ return 76;}
++function StressbalanceFSreconditioningEnum(){ return 77;}
++function StressbalanceVertexPairingEnum(){ return 78;}
++function StressbalanceViscosityOvershootEnum(){ return 79;}
++function LoadingforceXEnum(){ return 80;}
++function LoadingforceYEnum(){ return 81;}
++function LoadingforceZEnum(){ return 82;}
++function FlowequationBorderSSAEnum(){ return 83;}
++function FlowequationBorderHOEnum(){ return 84;}
++function FlowequationBorderFSEnum(){ return 85;}
++function FlowequationElementEquationEnum(){ return 86;}
++function FlowequationIsSIAEnum(){ return 87;}
++function FlowequationIsSSAEnum(){ return 88;}
++function FlowequationIsL1L2Enum(){ return 89;}
++function FlowequationIsHOEnum(){ return 90;}
++function FlowequationIsFSEnum(){ return 91;}
++function FlowequationFeSSAEnum(){ return 92;}
++function FlowequationFeHOEnum(){ return 93;}
++function FlowequationFeFSEnum(){ return 94;}
++function FlowequationVertexEquationEnum(){ return 95;}
++function FrictionAsEnum(){ return 96;}
++function FrictionCoefficientEnum(){ return 97;}
++function FrictionCoefficientcoulombEnum(){ return 98;}
++function FrictionPEnum(){ return 99;}
++function FrictionQEnum(){ return 100;}
++function FrictionMEnum(){ return 101;}
++function FrictionCEnum(){ return 102;}
++function FrictionLawEnum(){ return 103;}
++function FrictionGammaEnum(){ return 104;}
++function FrictionFEnum(){ return 105;}
++function FrictionWaterLayerEnum(){ return 106;}
++function FrictionEffectivePressureEnum(){ return 107;}
++function FrictionCouplingEnum(){ return 108;}
++function GeometryHydrostaticRatioEnum(){ return 109;}
++function HydrologyModelEnum(){ return 110;}
++function HydrologyshreveEnum(){ return 111;}
++function HydrologyshreveSpcwatercolumnEnum(){ return 112;}
++function HydrologyshreveStabilizationEnum(){ return 113;}
++function HydrologydcEnum(){ return 114;}
++function SedimentHeadEnum(){ return 115;}
++function SedimentHeadOldEnum(){ return 116;}
++function SedimentHeadResidualEnum(){ return 117;}
++function EffectivePressureEnum(){ return 118;}
++function EplHeadEnum(){ return 119;}
++function EplHeadOldEnum(){ return 120;}
++function EplHeadSlopeXEnum(){ return 121;}
++function EplHeadSlopeYEnum(){ return 122;}
++function EplZigZagCounterEnum(){ return 123;}
++function HydrologydcMaxIterEnum(){ return 124;}
++function HydrologydcRelTolEnum(){ return 125;}
++function HydrologydcSpcsedimentHeadEnum(){ return 126;}
++function HydrologydcSedimentCompressibilityEnum(){ return 127;}
++function HydrologydcSedimentPorosityEnum(){ return 128;}
++function HydrologydcSedimentThicknessEnum(){ return 129;}
++function HydrologydcSedimentTransmitivityEnum(){ return 130;}
++function HydrologydcWaterCompressibilityEnum(){ return 131;}
++function HydrologydcSpceplHeadEnum(){ return 132;}
++function HydrologydcMaskEplactiveNodeEnum(){ return 133;}
++function HydrologydcMaskEplactiveEltEnum(){ return 134;}
++function HydrologydcEplCompressibilityEnum(){ return 135;}
++function HydrologydcEplPorosityEnum(){ return 136;}
++function HydrologydcEplInitialThicknessEnum(){ return 137;}
++function HydrologydcEplColapseThicknessEnum(){ return 138;}
++function HydrologydcEplMaxThicknessEnum(){ return 139;}
++function HydrologydcEplThicknessEnum(){ return 140;}
++function HydrologydcEplThicknessOldEnum(){ return 141;}
++function HydrologydcEplThickCompEnum(){ return 142;}
++function HydrologydcEplConductivityEnum(){ return 143;}
++function HydrologydcIsefficientlayerEnum(){ return 144;}
++function HydrologydcSedimentlimitFlagEnum(){ return 145;}
++function HydrologydcSedimentlimitEnum(){ return 146;}
++function HydrologydcTransferFlagEnum(){ return 147;}
++function HydrologydcLeakageFactorEnum(){ return 148;}
++function HydrologydcPenaltyFactorEnum(){ return 149;}
++function HydrologydcPenaltyLockEnum(){ return 150;}
++function HydrologydcEplflipLockEnum(){ return 151;}
++function HydrologydcBasalMoulinInputEnum(){ return 152;}
++function HydrologyLayerEnum(){ return 153;}
++function HydrologySedimentEnum(){ return 154;}
++function HydrologyEfficientEnum(){ return 155;}
++function HydrologySedimentKmaxEnum(){ return 156;}
++function HydrologysommersEnum(){ return 157;}
++function HydrologyHeadEnum(){ return 158;}
++function HydrologyGapHeightEnum(){ return 159;}
++function HydrologyBumpSpacingEnum(){ return 160;}
++function HydrologyBumpHeightEnum(){ return 161;}
++function HydrologyEnglacialInputEnum(){ return 162;}
++function HydrologyMoulinInputEnum(){ return 163;}
++function HydrologyReynoldsEnum(){ return 164;}
++function HydrologyNeumannfluxEnum(){ return 165;}
++function HydrologySpcheadEnum(){ return 166;}
++function HydrologyConductivityEnum(){ return 167;}
++function IndependentObjectEnum(){ return 168;}
++function InversionControlParametersEnum(){ return 169;}
++function InversionControlScalingFactorsEnum(){ return 170;}
++function InversionCostFunctionThresholdEnum(){ return 171;}
++function InversionCostFunctionsCoefficientsEnum(){ return 172;}
++function InversionCostFunctionsEnum(){ return 173;}
++function InversionGradientScalingEnum(){ return 174;}
++function InversionIscontrolEnum(){ return 175;}
++function InversionTypeEnum(){ return 176;}
++function InversionIncompleteAdjointEnum(){ return 177;}
++function InversionMaxParametersEnum(){ return 178;}
++function InversionMaxiterPerStepEnum(){ return 179;}
++function InversionMaxiterEnum(){ return 180;}
++function InversionMaxstepsEnum(){ return 181;}
++function InversionFatolEnum(){ return 182;}
++function InversionFrtolEnum(){ return 183;}
++function InversionGatolEnum(){ return 184;}
++function InversionGrtolEnum(){ return 185;}
++function InversionGttolEnum(){ return 186;}
++function InversionAlgorithmEnum(){ return 187;}
++function InversionMinParametersEnum(){ return 188;}
++function InversionNstepsEnum(){ return 189;}
++function InversionDxminEnum(){ return 190;}
++function InversionNumControlParametersEnum(){ return 191;}
++function InversionNumCostFunctionsEnum(){ return 192;}
++function InversionStepThresholdEnum(){ return 193;}
++function InversionThicknessObsEnum(){ return 194;}
++function InversionSurfaceObsEnum(){ return 195;}
++function InversionVxObsEnum(){ return 196;}
++function InversionVyObsEnum(){ return 197;}
++function InversionVzObsEnum(){ return 198;}
++function MaskIceLevelsetEnum(){ return 199;}
++function MaskOceanLevelsetEnum(){ return 200;}
++function MaskLandLevelsetEnum(){ return 201;}
++function MaterialsBetaEnum(){ return 202;}
++function MaterialsHeatcapacityEnum(){ return 203;}
++function MaterialsLatentheatEnum(){ return 204;}
++function MaterialsMeltingpointEnum(){ return 205;}
++function MaterialsMixedLayerCapacityEnum(){ return 206;}
++function MaterialsRheologyBEnum(){ return 207;}
++function MaterialsRheologyBbarEnum(){ return 208;}
++function MaterialsRheologyLawEnum(){ return 209;}
++function MaterialsRheologyNEnum(){ return 210;}
++function DamageIsdamageEnum(){ return 211;}
++function DamageDEnum(){ return 212;}
++function DamageFEnum(){ return 213;}
++function DamageDbarEnum(){ return 214;}
++function DamageLawEnum(){ return 215;}
++function DamageC1Enum(){ return 216;}
++function DamageC2Enum(){ return 217;}
++function DamageC3Enum(){ return 218;}
++function DamageC4Enum(){ return 219;}
++function DamageElementinterpEnum(){ return 220;}
++function DamageHealingEnum(){ return 221;}
++function DamageStressThresholdEnum(){ return 222;}
++function DamageKappaEnum(){ return 223;}
++function DamageStabilizationEnum(){ return 224;}
++function DamageMaxiterEnum(){ return 225;}
++function DamageSpcdamageEnum(){ return 226;}
++function DamageMaxDamageEnum(){ return 227;}
++function DamageEquivStressEnum(){ return 228;}
++function DamageEvolutionNumRequestedOutputsEnum(){ return 229;}
++function DamageEvolutionRequestedOutputsEnum(){ return 230;}
++function DamageEnum(){ return 231;}
++function NewDamageEnum(){ return 232;}
++function StressIntensityFactorEnum(){ return 233;}
++function CalvingLawEnum(){ return 234;}
++function CalvingCalvingrateEnum(){ return 235;}
++function CalvingMeltingrateEnum(){ return 236;}
++function CalvingLevermannEnum(){ return 237;}
++function CalvingPiEnum(){ return 238;}
++function CalvingDevEnum(){ return 239;}
++function DefaultCalvingEnum(){ return 240;}
++function CalvingRequestedOutputsEnum(){ return 241;}
++function CalvinglevermannCoeffEnum(){ return 242;}
++function CalvinglevermannMeltingrateEnum(){ return 243;}
++function CalvingpiCoeffEnum(){ return 244;}
++function CalvingpiMeltingrateEnum(){ return 245;}
++function CalvingratexEnum(){ return 246;}
++function CalvingrateyEnum(){ return 247;}
++function CalvingratexAverageEnum(){ return 248;}
++function CalvingrateyAverageEnum(){ return 249;}
++function StrainRateparallelEnum(){ return 250;}
++function StrainRateperpendicularEnum(){ return 251;}
++function StrainRateeffectiveEnum(){ return 252;}
++function MaterialsRhoIceEnum(){ return 253;}
++function MaterialsRhoSeawaterEnum(){ return 254;}
++function MaterialsRhoFreshwaterEnum(){ return 255;}
++function MaterialsMuWaterEnum(){ return 256;}
++function MaterialsThermalExchangeVelocityEnum(){ return 257;}
++function MaterialsThermalconductivityEnum(){ return 258;}
++function MaterialsTemperateiceconductivityEnum(){ return 259;}
++function MaterialsLithosphereShearModulusEnum(){ return 260;}
++function MaterialsLithosphereDensityEnum(){ return 261;}
++function MaterialsMantleShearModulusEnum(){ return 262;}
++function MaterialsMantleDensityEnum(){ return 263;}
++function MaterialsEarthDensityEnum(){ return 264;}
++function MeshAverageVertexConnectivityEnum(){ return 265;}
++function MeshElements2dEnum(){ return 266;}
++function MeshElementsEnum(){ return 267;}
++function MeshLowerelementsEnum(){ return 268;}
++function MeshNumberofelements2dEnum(){ return 269;}
++function MeshNumberofelementsEnum(){ return 270;}
++function MeshNumberoflayersEnum(){ return 271;}
++function MeshNumberofvertices2dEnum(){ return 272;}
++function MeshNumberofverticesEnum(){ return 273;}
++function MeshUpperelementsEnum(){ return 274;}
++function MeshVertexonbaseEnum(){ return 275;}
++function MeshVertexonsurfaceEnum(){ return 276;}
++function MeshVertexonboundaryEnum(){ return 277;}
++function MeshXEnum(){ return 278;}
++function MeshYEnum(){ return 279;}
++function MeshZEnum(){ return 280;}
++function MeshLatEnum(){ return 281;}
++function MeshLongEnum(){ return 282;}
++function MeshREnum(){ return 283;}
++function MeshElementtypeEnum(){ return 284;}
++function MeshSegmentsEnum(){ return 285;}
++function DomainTypeEnum(){ return 286;}
++function DomainDimensionEnum(){ return 287;}
++function Domain2DhorizontalEnum(){ return 288;}
++function Domain2DverticalEnum(){ return 289;}
++function Domain3DEnum(){ return 290;}
++function Domain3DsurfaceEnum(){ return 291;}
++function MiscellaneousNameEnum(){ return 292;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 293;}
++function MasstransportIsfreesurfaceEnum(){ return 294;}
++function MasstransportMinThicknessEnum(){ return 295;}
++function MasstransportPenaltyFactorEnum(){ return 296;}
++function MasstransportSpcthicknessEnum(){ return 297;}
++function MasstransportStabilizationEnum(){ return 298;}
++function MasstransportVertexPairingEnum(){ return 299;}
++function MasstransportNumRequestedOutputsEnum(){ return 300;}
++function MasstransportRequestedOutputsEnum(){ return 301;}
++function QmuIsdakotaEnum(){ return 302;}
++function MassFluxSegmentsEnum(){ return 303;}
++function MassFluxSegmentsPresentEnum(){ return 304;}
++function QmuMassFluxSegmentsPresentEnum(){ return 305;}
++function QmuNumberofpartitionsEnum(){ return 306;}
++function QmuNumberofresponsesEnum(){ return 307;}
++function QmuPartitionEnum(){ return 308;}
++function QmuResponsedescriptorsEnum(){ return 309;}
++function QmuVariabledescriptorsEnum(){ return 310;}
++function RiftsNumriftsEnum(){ return 311;}
++function RiftsRiftstructEnum(){ return 312;}
++function SettingsResultsOnNodesEnum(){ return 313;}
++function SettingsIoGatherEnum(){ return 314;}
++function SettingsLowmemEnum(){ return 315;}
++function SettingsOutputFrequencyEnum(){ return 316;}
++function SettingsRecordingFrequencyEnum(){ return 317;}
++function SettingsWaitonlockEnum(){ return 318;}
++function DebugProfilingEnum(){ return 319;}
++function ProfilingCurrentMemEnum(){ return 320;}
++function ProfilingCurrentFlopsEnum(){ return 321;}
++function ProfilingSolutionTimeEnum(){ return 322;}
++function SteadystateMaxiterEnum(){ return 323;}
++function SteadystateNumRequestedOutputsEnum(){ return 324;}
++function SteadystateReltolEnum(){ return 325;}
++function SteadystateRequestedOutputsEnum(){ return 326;}
++function SurfaceEnum(){ return 327;}
++function ThermalIsenthalpyEnum(){ return 328;}
++function ThermalIsdynamicbasalspcEnum(){ return 329;}
++function ThermalReltolEnum(){ return 330;}
++function ThermalMaxiterEnum(){ return 331;}
++function ThermalPenaltyFactorEnum(){ return 332;}
++function ThermalPenaltyLockEnum(){ return 333;}
++function ThermalPenaltyThresholdEnum(){ return 334;}
++function ThermalSpctemperatureEnum(){ return 335;}
++function ThermalStabilizationEnum(){ return 336;}
++function ThermalNumRequestedOutputsEnum(){ return 337;}
++function ThermalRequestedOutputsEnum(){ return 338;}
++function GiaMantleViscosityEnum(){ return 339;}
++function GiaLithosphereThicknessEnum(){ return 340;}
++function ThicknessEnum(){ return 341;}
++function TimesteppingStartTimeEnum(){ return 342;}
++function TimesteppingFinalTimeEnum(){ return 343;}
++function TimesteppingCflCoefficientEnum(){ return 344;}
++function TimesteppingTimeAdaptEnum(){ return 345;}
++function TimesteppingTimeStepEnum(){ return 346;}
++function TimesteppingInterpForcingsEnum(){ return 347;}
++function TransientIssmbEnum(){ return 348;}
++function TransientIsstressbalanceEnum(){ return 349;}
++function TransientIsgroundinglineEnum(){ return 350;}
++function TransientIsmasstransportEnum(){ return 351;}
++function TransientIsthermalEnum(){ return 352;}
++function TransientIsgiaEnum(){ return 353;}
++function TransientIsdamageevolutionEnum(){ return 354;}
++function TransientIshydrologyEnum(){ return 355;}
++function TransientIscalvingEnum(){ return 356;}
++function TransientNumRequestedOutputsEnum(){ return 357;}
++function TransientRequestedOutputsEnum(){ return 358;}
++function PotentialEnum(){ return 359;}
++function BalancethicknessSpcpotentialEnum(){ return 360;}
++function BalancethicknessApparentMassbalanceEnum(){ return 361;}
++function Balancethickness2MisfitEnum(){ return 362;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 363;}
++function BalancethicknessCmuEnum(){ return 364;}
++function BalancethicknessOmegaEnum(){ return 365;}
++function BalancethicknessD0Enum(){ return 366;}
++function SmbEnum(){ return 367;}
++function SmbAnalysisEnum(){ return 368;}
++function SmbSolutionEnum(){ return 369;}
++function SmbNumRequestedOutputsEnum(){ return 370;}
++function SmbRequestedOutputsEnum(){ return 371;}
++function SmbIsInitializedEnum(){ return 372;}
++function SMBforcingEnum(){ return 373;}
++function SmbMassBalanceEnum(){ return 374;}
++function SMBgembEnum(){ return 375;}
++function SmbInitDensityScalingEnum(){ return 376;}
++function SmbTaEnum(){ return 377;}
++function SmbVEnum(){ return 378;}
++function SmbDswrfEnum(){ return 379;}
++function SmbDlwrfEnum(){ return 380;}
++function SmbPEnum(){ return 381;}
++function SmbSwfEnum(){ return 382;}
++function SmbEAirEnum(){ return 383;}
++function SmbPAirEnum(){ return 384;}
++function SmbTmeanEnum(){ return 385;}
++function SmbCEnum(){ return 386;}
++function SmbTzEnum(){ return 387;}
++function SmbVzEnum(){ return 388;}
++function SmbDtEnum(){ return 389;}
++function SmbDzEnum(){ return 390;}
++function SmbAIdxEnum(){ return 391;}
++function SmbSwIdxEnum(){ return 392;}
++function SmbDenIdxEnum(){ return 393;}
++function SmbZTopEnum(){ return 394;}
++function SmbDzTopEnum(){ return 395;}
++function SmbDzMinEnum(){ return 396;}
++function SmbZYEnum(){ return 397;}
++function SmbZMaxEnum(){ return 398;}
++function SmbZMinEnum(){ return 399;}
++function SmbOutputFreqEnum(){ return 400;}
++function SmbASnowEnum(){ return 401;}
++function SmbAIceEnum(){ return 402;}
++function SmbCldFracEnum(){ return 403;}
++function SmbT0wetEnum(){ return 404;}
++function SmbT0dryEnum(){ return 405;}
++function SmbKEnum(){ return 406;}
++function SmbDEnum(){ return 407;}
++function SmbReEnum(){ return 408;}
++function SmbGdnEnum(){ return 409;}
++function SmbGspEnum(){ return 410;}
++function SmbECEnum(){ return 411;}
++function SmbCondensationEnum(){ return 412;}
++function SmbWEnum(){ return 413;}
++function SmbAEnum(){ return 414;}
++function SmbTEnum(){ return 415;}
++function SmbIsgraingrowthEnum(){ return 416;}
++function SmbIsalbedoEnum(){ return 417;}
++function SmbIsshortwaveEnum(){ return 418;}
++function SmbIsthermalEnum(){ return 419;}
++function SmbIsaccumulationEnum(){ return 420;}
++function SmbIsmeltEnum(){ return 421;}
++function SmbIsdensificationEnum(){ return 422;}
++function SmbIsturbulentfluxEnum(){ return 423;}
++function SMBpddEnum(){ return 424;}
++function SmbDelta18oEnum(){ return 425;}
++function SmbDelta18oSurfaceEnum(){ return 426;}
++function SmbIsdelta18oEnum(){ return 427;}
++function SmbIsmungsmEnum(){ return 428;}
++function SmbIsd18opdEnum(){ return 429;}
++function SmbPrecipitationsPresentdayEnum(){ return 430;}
++function SmbPrecipitationsLgmEnum(){ return 431;}
++function SmbTemperaturesPresentdayEnum(){ return 432;}
++function SmbTemperaturesLgmEnum(){ return 433;}
++function SmbPrecipitationEnum(){ return 434;}
++function SmbDesfacEnum(){ return 435;}
++function SmbS0pEnum(){ return 436;}
++function SmbS0tEnum(){ return 437;}
++function SmbRlapsEnum(){ return 438;}
++function SmbRlapslgmEnum(){ return 439;}
++function SmbPfacEnum(){ return 440;}
++function SmbTdiffEnum(){ return 441;}
++function SmbSealevEnum(){ return 442;}
++function SMBd18opddEnum(){ return 443;}
++function SmbDpermilEnum(){ return 444;}
++function SMBgradientsEnum(){ return 445;}
++function SmbMonthlytemperaturesEnum(){ return 446;}
++function SmbHrefEnum(){ return 447;}
++function SmbSmbrefEnum(){ return 448;}
++function SmbBPosEnum(){ return 449;}
++function SmbBNegEnum(){ return 450;}
++function SMBhenningEnum(){ return 451;}
++function SMBcomponentsEnum(){ return 452;}
++function SmbAccumulationEnum(){ return 453;}
++function SmbEvaporationEnum(){ return 454;}
++function SmbRunoffEnum(){ return 455;}
++function SMBmeltcomponentsEnum(){ return 456;}
++function SmbMeltEnum(){ return 457;}
++function SmbRefreezeEnum(){ return 458;}
++function SMBgcmEnum(){ return 459;}
++function SmbIspddEnum(){ return 460;}
++function SmbIssmbgradientsEnum(){ return 461;}
++function SolutionTypeEnum(){ return 462;}
++function AnalysisTypeEnum(){ return 463;}
++function ConfigurationTypeEnum(){ return 464;}
++function AdjointBalancethicknessAnalysisEnum(){ return 465;}
++function AdjointBalancethickness2AnalysisEnum(){ return 466;}
++function AdjointHorizAnalysisEnum(){ return 467;}
++function AnalysisCounterEnum(){ return 468;}
++function DefaultAnalysisEnum(){ return 469;}
++function BalancethicknessAnalysisEnum(){ return 470;}
++function BalancethicknessSolutionEnum(){ return 471;}
++function Balancethickness2AnalysisEnum(){ return 472;}
++function Balancethickness2SolutionEnum(){ return 473;}
++function BalancethicknessSoftAnalysisEnum(){ return 474;}
++function BalancethicknessSoftSolutionEnum(){ return 475;}
++function BalancevelocityAnalysisEnum(){ return 476;}
++function BalancevelocitySolutionEnum(){ return 477;}
++function L2ProjectionEPLAnalysisEnum(){ return 478;}
++function L2ProjectionBaseAnalysisEnum(){ return 479;}
++function BedSlopeSolutionEnum(){ return 480;}
++function DamageEvolutionSolutionEnum(){ return 481;}
++function DamageEvolutionAnalysisEnum(){ return 482;}
++function StressbalanceAnalysisEnum(){ return 483;}
++function StressbalanceSIAAnalysisEnum(){ return 484;}
++function StressbalanceSolutionEnum(){ return 485;}
++function StressbalanceVerticalAnalysisEnum(){ return 486;}
++function EnthalpyAnalysisEnum(){ return 487;}
++function FlaimAnalysisEnum(){ return 488;}
++function FlaimSolutionEnum(){ return 489;}
++function HydrologyShreveAnalysisEnum(){ return 490;}
++function HydrologyDCInefficientAnalysisEnum(){ return 491;}
++function HydrologyDCEfficientAnalysisEnum(){ return 492;}
++function HydrologySommersAnalysisEnum(){ return 493;}
++function HydrologySolutionEnum(){ return 494;}
++function MeltingAnalysisEnum(){ return 495;}
++function MasstransportAnalysisEnum(){ return 496;}
++function MasstransportSolutionEnum(){ return 497;}
++function FreeSurfaceBaseAnalysisEnum(){ return 498;}
++function FreeSurfaceTopAnalysisEnum(){ return 499;}
++function SurfaceNormalVelocityEnum(){ return 500;}
++function ExtrudeFromBaseAnalysisEnum(){ return 501;}
++function ExtrudeFromTopAnalysisEnum(){ return 502;}
++function DepthAverageAnalysisEnum(){ return 503;}
++function SteadystateSolutionEnum(){ return 504;}
++function SurfaceSlopeSolutionEnum(){ return 505;}
++function SmoothAnalysisEnum(){ return 506;}
++function ThermalAnalysisEnum(){ return 507;}
++function ThermalSolutionEnum(){ return 508;}
++function TransientSolutionEnum(){ return 509;}
++function UzawaPressureAnalysisEnum(){ return 510;}
++function GiaSolutionEnum(){ return 511;}
++function GiaAnalysisEnum(){ return 512;}
++function MeshdeformationSolutionEnum(){ return 513;}
++function MeshdeformationAnalysisEnum(){ return 514;}
++function LevelsetAnalysisEnum(){ return 515;}
++function LevelsetStabilizationEnum(){ return 516;}
++function ExtrapolationAnalysisEnum(){ return 517;}
++function LsfReinitializationAnalysisEnum(){ return 518;}
++function ApproximationEnum(){ return 519;}
++function NoneApproximationEnum(){ return 520;}
++function SIAApproximationEnum(){ return 521;}
++function SSAApproximationEnum(){ return 522;}
++function SSAHOApproximationEnum(){ return 523;}
++function SSAFSApproximationEnum(){ return 524;}
++function L1L2ApproximationEnum(){ return 525;}
++function HOApproximationEnum(){ return 526;}
++function HOFSApproximationEnum(){ return 527;}
++function FSApproximationEnum(){ return 528;}
++function FSvelocityEnum(){ return 529;}
++function FSpressureEnum(){ return 530;}
++function DataSetEnum(){ return 531;}
++function ConstraintsEnum(){ return 532;}
++function LoadsEnum(){ return 533;}
++function MaterialsEnum(){ return 534;}
++function NodesEnum(){ return 535;}
++function ContoursEnum(){ return 536;}
++function ParametersEnum(){ return 537;}
++function VerticesEnum(){ return 538;}
++function ResultsEnum(){ return 539;}
++function GenericParamEnum(){ return 540;}
++function AdolcParamEnum(){ return 541;}
++function BoolInputEnum(){ return 542;}
++function BoolParamEnum(){ return 543;}
++function ContourEnum(){ return 544;}
++function ControlInputEnum(){ return 545;}
++function DatasetInputEnum(){ return 546;}
++function DoubleInputEnum(){ return 547;}
++function DoubleArrayInputEnum(){ return 548;}
++function DataSetParamEnum(){ return 549;}
++function DoubleMatArrayParamEnum(){ return 550;}
++function DoubleMatParamEnum(){ return 551;}
++function DoubleParamEnum(){ return 552;}
++function DoubleVecParamEnum(){ return 553;}
++function ElementEnum(){ return 554;}
++function ElementHookEnum(){ return 555;}
++function HookEnum(){ return 556;}
++function ExternalResultEnum(){ return 557;}
++function FileParamEnum(){ return 558;}
++function InputEnum(){ return 559;}
++function IntInputEnum(){ return 560;}
++function InputToExtrudeEnum(){ return 561;}
++function InputToL2ProjectEnum(){ return 562;}
++function InputToDepthaverageEnum(){ return 563;}
++function InputToSmoothEnum(){ return 564;}
++function SmoothThicknessMultiplierEnum(){ return 565;}
++function IntParamEnum(){ return 566;}
++function IntVecParamEnum(){ return 567;}
++function TransientParamEnum(){ return 568;}
++function MaticeEnum(){ return 569;}
++function MatdamageiceEnum(){ return 570;}
++function MatparEnum(){ return 571;}
++function NodeEnum(){ return 572;}
++function NumericalfluxEnum(){ return 573;}
++function NumericalfluxTypeEnum(){ return 574;}
++function NeumannfluxEnum(){ return 575;}
++function ParamEnum(){ return 576;}
++function MoulinEnum(){ return 577;}
++function PengridEnum(){ return 578;}
++function PenpairEnum(){ return 579;}
++function ProfilerEnum(){ return 580;}
++function MatrixParamEnum(){ return 581;}
++function MassconEnum(){ return 582;}
++function MassconNameEnum(){ return 583;}
++function MassconDefinitionenumEnum(){ return 584;}
++function MassconLevelsetEnum(){ return 585;}
++function MassconaxpbyEnum(){ return 586;}
++function MassconaxpbyNameEnum(){ return 587;}
++function MassconaxpbyDefinitionenumEnum(){ return 588;}
++function MassconaxpbyNamexEnum(){ return 589;}
++function MassconaxpbyNameyEnum(){ return 590;}
++function MassconaxpbyAlphaEnum(){ return 591;}
++function MassconaxpbyBetaEnum(){ return 592;}
++function NodeSIdEnum(){ return 593;}
++function VectorParamEnum(){ return 594;}
++function RiftfrontEnum(){ return 595;}
++function RiftfrontTypeEnum(){ return 596;}
++function SegmentEnum(){ return 597;}
++function SegmentRiftfrontEnum(){ return 598;}
++function SpcDynamicEnum(){ return 599;}
++function SpcStaticEnum(){ return 600;}
++function SpcTransientEnum(){ return 601;}
++function StringArrayParamEnum(){ return 602;}
++function StringParamEnum(){ return 603;}
++function SegEnum(){ return 604;}
++function SegInputEnum(){ return 605;}
++function TriaEnum(){ return 606;}
++function TriaInputEnum(){ return 607;}
++function TetraEnum(){ return 608;}
++function TetraInputEnum(){ return 609;}
++function PentaEnum(){ return 610;}
++function PentaInputEnum(){ return 611;}
++function VertexEnum(){ return 612;}
++function VertexPIdEnum(){ return 613;}
++function VertexSIdEnum(){ return 614;}
++function AirEnum(){ return 615;}
++function IceEnum(){ return 616;}
++function MelangeEnum(){ return 617;}
++function WaterEnum(){ return 618;}
++function ClosedEnum(){ return 619;}
++function FreeEnum(){ return 620;}
++function OpenEnum(){ return 621;}
++function AdjointpEnum(){ return 622;}
++function AdjointxEnum(){ return 623;}
++function AdjointyEnum(){ return 624;}
++function AdjointzEnum(){ return 625;}
++function BalancethicknessMisfitEnum(){ return 626;}
++function BedSlopeXEnum(){ return 627;}
++function BedSlopeYEnum(){ return 628;}
++function BoundaryEnum(){ return 629;}
++function ConvergedEnum(){ return 630;}
++function FillEnum(){ return 631;}
++function FractionIncrementEnum(){ return 632;}
++function FrictionEnum(){ return 633;}
++function InternalEnum(){ return 634;}
++function MassFluxEnum(){ return 635;}
++function MeltingOffsetEnum(){ return 636;}
++function MisfitEnum(){ return 637;}
++function PressureEnum(){ return 638;}
++function PressurePicardEnum(){ return 639;}
++function AndroidFrictionCoefficientEnum(){ return 640;}
++function ResetPenaltiesEnum(){ return 641;}
++function SegmentOnIceShelfEnum(){ return 642;}
++function SurfaceAbsVelMisfitEnum(){ return 643;}
++function SurfaceAreaEnum(){ return 644;}
++function SurfaceAverageVelMisfitEnum(){ return 645;}
++function SurfaceLogVelMisfitEnum(){ return 646;}
++function SurfaceLogVxVyMisfitEnum(){ return 647;}
++function SurfaceRelVelMisfitEnum(){ return 648;}
++function SurfaceSlopeXEnum(){ return 649;}
++function SurfaceSlopeYEnum(){ return 650;}
++function TemperatureEnum(){ return 651;}
++function TemperaturePicardEnum(){ return 652;}
++function TemperaturePDDEnum(){ return 653;}
++function ThicknessAbsMisfitEnum(){ return 654;}
++function SurfaceAbsMisfitEnum(){ return 655;}
++function VelEnum(){ return 656;}
++function VelocityEnum(){ return 657;}
++function VxAverageEnum(){ return 658;}
++function VxEnum(){ return 659;}
++function VxPicardEnum(){ return 660;}
++function VyAverageEnum(){ return 661;}
++function VyEnum(){ return 662;}
++function VyPicardEnum(){ return 663;}
++function VzEnum(){ return 664;}
++function VzSSAEnum(){ return 665;}
++function VzHOEnum(){ return 666;}
++function VzPicardEnum(){ return 667;}
++function VzFSEnum(){ return 668;}
++function VxMeshEnum(){ return 669;}
++function VyMeshEnum(){ return 670;}
++function VzMeshEnum(){ return 671;}
++function EnthalpyEnum(){ return 672;}
++function EnthalpyPicardEnum(){ return 673;}
++function ThicknessAbsGradientEnum(){ return 674;}
++function ThicknessAlongGradientEnum(){ return 675;}
++function ThicknessAcrossGradientEnum(){ return 676;}
++function ThicknessPositiveEnum(){ return 677;}
++function IntMatParamEnum(){ return 678;}
++function RheologyBbarAbsGradientEnum(){ return 679;}
++function RheologyBAbsGradientEnum(){ return 680;}
++function DragCoefficientAbsGradientEnum(){ return 681;}
++function TransientInputEnum(){ return 682;}
++function WaterfractionEnum(){ return 683;}
++function WatercolumnEnum(){ return 684;}
++function BasalFrictionEnum(){ return 685;}
++function ViscousHeatingEnum(){ return 686;}
++function HydrologyWaterVxEnum(){ return 687;}
++function HydrologyWaterVyEnum(){ return 688;}
++function DrivingStressXEnum(){ return 689;}
++function DrivingStressYEnum(){ return 690;}
++function SigmaNNEnum(){ return 691;}
++function StressTensorEnum(){ return 692;}
++function StressTensorxxEnum(){ return 693;}
++function StressTensorxyEnum(){ return 694;}
++function StressTensorxzEnum(){ return 695;}
++function StressTensoryyEnum(){ return 696;}
++function StressTensoryzEnum(){ return 697;}
++function StressTensorzzEnum(){ return 698;}
++function StressMaxPrincipalEnum(){ return 699;}
++function DeviatoricStressEnum(){ return 700;}
++function DeviatoricStressxxEnum(){ return 701;}
++function DeviatoricStressxyEnum(){ return 702;}
++function DeviatoricStressxzEnum(){ return 703;}
++function DeviatoricStressyyEnum(){ return 704;}
++function DeviatoricStressyzEnum(){ return 705;}
++function DeviatoricStresszzEnum(){ return 706;}
++function DeviatoricStresseffectiveEnum(){ return 707;}
++function StrainRateEnum(){ return 708;}
++function StrainRatexxEnum(){ return 709;}
++function StrainRatexyEnum(){ return 710;}
++function StrainRatexzEnum(){ return 711;}
++function StrainRateyyEnum(){ return 712;}
++function StrainRateyzEnum(){ return 713;}
++function StrainRatezzEnum(){ return 714;}
++function DivergenceEnum(){ return 715;}
++function MaxDivergenceEnum(){ return 716;}
++function GiaCrossSectionShapeEnum(){ return 717;}
++function GiadWdtEnum(){ return 718;}
++function GiaWEnum(){ return 719;}
++function P0Enum(){ return 720;}
++function P0ArrayEnum(){ return 721;}
++function P1Enum(){ return 722;}
++function P1DGEnum(){ return 723;}
++function P1bubbleEnum(){ return 724;}
++function P1bubblecondensedEnum(){ return 725;}
++function P2Enum(){ return 726;}
++function P2bubbleEnum(){ return 727;}
++function P2bubblecondensedEnum(){ return 728;}
++function P2xP1Enum(){ return 729;}
++function P1xP2Enum(){ return 730;}
++function P1xP3Enum(){ return 731;}
++function P2xP4Enum(){ return 732;}
++function P1P1Enum(){ return 733;}
++function P1P1GLSEnum(){ return 734;}
++function MINIEnum(){ return 735;}
++function MINIcondensedEnum(){ return 736;}
++function TaylorHoodEnum(){ return 737;}
++function LATaylorHoodEnum(){ return 738;}
++function XTaylorHoodEnum(){ return 739;}
++function OneLayerP4zEnum(){ return 740;}
++function CrouzeixRaviartEnum(){ return 741;}
++function LACrouzeixRaviartEnum(){ return 742;}
++function SaveResultsEnum(){ return 743;}
++function BoolExternalResultEnum(){ return 744;}
++function DoubleExternalResultEnum(){ return 745;}
++function DoubleMatExternalResultEnum(){ return 746;}
++function IntExternalResultEnum(){ return 747;}
++function JEnum(){ return 748;}
++function StringExternalResultEnum(){ return 749;}
++function StepEnum(){ return 750;}
++function TimeEnum(){ return 751;}
++function WaterColumnOldEnum(){ return 752;}
++function OutputdefinitionEnum(){ return 753;}
++function Outputdefinition1Enum(){ return 754;}
++function Outputdefinition2Enum(){ return 755;}
++function Outputdefinition3Enum(){ return 756;}
++function Outputdefinition4Enum(){ return 757;}
++function Outputdefinition5Enum(){ return 758;}
++function Outputdefinition6Enum(){ return 759;}
++function Outputdefinition7Enum(){ return 760;}
++function Outputdefinition8Enum(){ return 761;}
++function Outputdefinition9Enum(){ return 762;}
++function Outputdefinition10Enum(){ return 763;}
++function Outputdefinition11Enum(){ return 764;}
++function Outputdefinition12Enum(){ return 765;}
++function Outputdefinition13Enum(){ return 766;}
++function Outputdefinition14Enum(){ return 767;}
++function Outputdefinition15Enum(){ return 768;}
++function Outputdefinition16Enum(){ return 769;}
++function Outputdefinition17Enum(){ return 770;}
++function Outputdefinition18Enum(){ return 771;}
++function Outputdefinition19Enum(){ return 772;}
++function Outputdefinition20Enum(){ return 773;}
++function Outputdefinition21Enum(){ return 774;}
++function Outputdefinition22Enum(){ return 775;}
++function Outputdefinition23Enum(){ return 776;}
++function Outputdefinition24Enum(){ return 777;}
++function Outputdefinition25Enum(){ return 778;}
++function Outputdefinition26Enum(){ return 779;}
++function Outputdefinition27Enum(){ return 780;}
++function Outputdefinition28Enum(){ return 781;}
++function Outputdefinition29Enum(){ return 782;}
++function Outputdefinition30Enum(){ return 783;}
++function Outputdefinition31Enum(){ return 784;}
++function Outputdefinition32Enum(){ return 785;}
++function Outputdefinition33Enum(){ return 786;}
++function Outputdefinition34Enum(){ return 787;}
++function Outputdefinition35Enum(){ return 788;}
++function Outputdefinition36Enum(){ return 789;}
++function Outputdefinition37Enum(){ return 790;}
++function Outputdefinition38Enum(){ return 791;}
++function Outputdefinition39Enum(){ return 792;}
++function Outputdefinition40Enum(){ return 793;}
++function Outputdefinition41Enum(){ return 794;}
++function Outputdefinition42Enum(){ return 795;}
++function Outputdefinition43Enum(){ return 796;}
++function Outputdefinition44Enum(){ return 797;}
++function Outputdefinition45Enum(){ return 798;}
++function Outputdefinition46Enum(){ return 799;}
++function Outputdefinition47Enum(){ return 800;}
++function Outputdefinition48Enum(){ return 801;}
++function Outputdefinition49Enum(){ return 802;}
++function Outputdefinition50Enum(){ return 803;}
++function Outputdefinition51Enum(){ return 804;}
++function Outputdefinition52Enum(){ return 805;}
++function Outputdefinition53Enum(){ return 806;}
++function Outputdefinition54Enum(){ return 807;}
++function Outputdefinition55Enum(){ return 808;}
++function Outputdefinition56Enum(){ return 809;}
++function Outputdefinition57Enum(){ return 810;}
++function Outputdefinition58Enum(){ return 811;}
++function Outputdefinition59Enum(){ return 812;}
++function Outputdefinition60Enum(){ return 813;}
++function Outputdefinition61Enum(){ return 814;}
++function Outputdefinition62Enum(){ return 815;}
++function Outputdefinition63Enum(){ return 816;}
++function Outputdefinition64Enum(){ return 817;}
++function Outputdefinition65Enum(){ return 818;}
++function Outputdefinition66Enum(){ return 819;}
++function Outputdefinition67Enum(){ return 820;}
++function Outputdefinition68Enum(){ return 821;}
++function Outputdefinition69Enum(){ return 822;}
++function Outputdefinition70Enum(){ return 823;}
++function Outputdefinition71Enum(){ return 824;}
++function Outputdefinition72Enum(){ return 825;}
++function Outputdefinition73Enum(){ return 826;}
++function Outputdefinition74Enum(){ return 827;}
++function Outputdefinition75Enum(){ return 828;}
++function Outputdefinition76Enum(){ return 829;}
++function Outputdefinition77Enum(){ return 830;}
++function Outputdefinition78Enum(){ return 831;}
++function Outputdefinition79Enum(){ return 832;}
++function Outputdefinition80Enum(){ return 833;}
++function Outputdefinition81Enum(){ return 834;}
++function Outputdefinition82Enum(){ return 835;}
++function Outputdefinition83Enum(){ return 836;}
++function Outputdefinition84Enum(){ return 837;}
++function Outputdefinition85Enum(){ return 838;}
++function Outputdefinition86Enum(){ return 839;}
++function Outputdefinition87Enum(){ return 840;}
++function Outputdefinition88Enum(){ return 841;}
++function Outputdefinition89Enum(){ return 842;}
++function Outputdefinition90Enum(){ return 843;}
++function Outputdefinition91Enum(){ return 844;}
++function Outputdefinition92Enum(){ return 845;}
++function Outputdefinition93Enum(){ return 846;}
++function Outputdefinition94Enum(){ return 847;}
++function Outputdefinition95Enum(){ return 848;}
++function Outputdefinition96Enum(){ return 849;}
++function Outputdefinition97Enum(){ return 850;}
++function Outputdefinition98Enum(){ return 851;}
++function Outputdefinition99Enum(){ return 852;}
++function Outputdefinition100Enum(){ return 853;}
++function OutputdefinitionListEnum(){ return 854;}
++function MassfluxatgateEnum(){ return 855;}
++function MassfluxatgateNameEnum(){ return 856;}
++function MassfluxatgateDefinitionenumEnum(){ return 857;}
++function MassfluxatgateSegmentsEnum(){ return 858;}
++function MisfitNameEnum(){ return 859;}
++function MisfitDefinitionenumEnum(){ return 860;}
++function MisfitModelEnum(){ return 861;}
++function MisfitObservationEnum(){ return 862;}
++function MisfitObservationEnum(){ return 863;}
++function MisfitLocalEnum(){ return 864;}
++function MisfitTimeinterpolationEnum(){ return 865;}
++function MisfitWeightsEnum(){ return 866;}
++function MisfitWeightsEnum(){ return 867;}
++function SurfaceObservationEnum(){ return 868;}
++function WeightsSurfaceObservationEnum(){ return 869;}
++function VxObsEnum(){ return 870;}
++function WeightsVxObsEnum(){ return 871;}
++function VyObsEnum(){ return 872;}
++function WeightsVyObsEnum(){ return 873;}
++function MinVelEnum(){ return 874;}
++function MaxVelEnum(){ return 875;}
++function MinVxEnum(){ return 876;}
++function MaxVxEnum(){ return 877;}
++function MaxAbsVxEnum(){ return 878;}
++function MinVyEnum(){ return 879;}
++function MaxVyEnum(){ return 880;}
++function MaxAbsVyEnum(){ return 881;}
++function MinVzEnum(){ return 882;}
++function MaxVzEnum(){ return 883;}
++function MaxAbsVzEnum(){ return 884;}
++function FloatingAreaEnum(){ return 885;}
++function GroundedAreaEnum(){ return 886;}
++function IceMassEnum(){ return 887;}
++function IceVolumeEnum(){ return 888;}
++function IceVolumeAboveFloatationEnum(){ return 889;}
++function TotalSmbEnum(){ return 890;}
++function AbsoluteEnum(){ return 891;}
++function IncrementalEnum(){ return 892;}
++function AugmentedLagrangianREnum(){ return 893;}
++function AugmentedLagrangianRhopEnum(){ return 894;}
++function AugmentedLagrangianRlambdaEnum(){ return 895;}
++function AugmentedLagrangianRholambdaEnum(){ return 896;}
++function AugmentedLagrangianThetaEnum(){ return 897;}
++function NoneEnum(){ return 898;}
++function AggressiveMigrationEnum(){ return 899;}
++function SoftMigrationEnum(){ return 900;}
++function SubelementMigrationEnum(){ return 901;}
++function SubelementMigration2Enum(){ return 902;}
++function ContactEnum(){ return 903;}
++function GroundingOnlyEnum(){ return 904;}
++function MaskGroundediceLevelsetEnum(){ return 905;}
++function GaussSegEnum(){ return 906;}
++function GaussTriaEnum(){ return 907;}
++function GaussTetraEnum(){ return 908;}
++function GaussPentaEnum(){ return 909;}
++function FSSolverEnum(){ return 910;}
++function AdjointEnum(){ return 911;}
++function ColinearEnum(){ return 912;}
++function ControlSteadyEnum(){ return 913;}
++function FsetEnum(){ return 914;}
++function Gradient1Enum(){ return 915;}
++function Gradient2Enum(){ return 916;}
++function Gradient3Enum(){ return 917;}
++function GradientEnum(){ return 918;}
++function GroundinglineMigrationEnum(){ return 919;}
++function GsetEnum(){ return 920;}
++function IndexEnum(){ return 921;}
++function IndexedEnum(){ return 922;}
++function IntersectEnum(){ return 923;}
++function NodalEnum(){ return 924;}
++function OldGradientEnum(){ return 925;}
++function OutputBufferPointerEnum(){ return 926;}
++function OutputBufferSizePointerEnum(){ return 927;}
++function OutputFilePointerEnum(){ return 928;}
++function ToolkitsFileNameEnum(){ return 929;}
++function RootPathEnum(){ return 930;}
++function OutputFileNameEnum(){ return 931;}
++function InputFileNameEnum(){ return 932;}
++function LockFileNameEnum(){ return 933;}
++function RestartFileNameEnum(){ return 934;}
++function ToolkitsOptionsAnalysesEnum(){ return 935;}
++function ToolkitsOptionsStringsEnum(){ return 936;}
++function QmuErrNameEnum(){ return 937;}
++function QmuInNameEnum(){ return 938;}
++function QmuOutNameEnum(){ return 939;}
++function RegularEnum(){ return 940;}
++function ScaledEnum(){ return 941;}
++function SeparateEnum(){ return 942;}
++function SsetEnum(){ return 943;}
++function VerboseEnum(){ return 944;}
++function TriangleInterpEnum(){ return 945;}
++function BilinearInterpEnum(){ return 946;}
++function NearestInterpEnum(){ return 947;}
++function XYEnum(){ return 948;}
++function XYZEnum(){ return 949;}
++function DenseEnum(){ return 950;}
++function MpiDenseEnum(){ return 951;}
++function MpiSparseEnum(){ return 952;}
++function SeqEnum(){ return 953;}
++function MpiEnum(){ return 954;}
++function MumpsEnum(){ return 955;}
++function GslEnum(){ return 956;}
++function OptionEnum(){ return 957;}
++function GenericOptionEnum(){ return 958;}
++function OptionCellEnum(){ return 959;}
++function OptionStructEnum(){ return 960;}
++function CuffeyEnum(){ return 961;}
++function PatersonEnum(){ return 962;}
++function ArrheniusEnum(){ return 963;}
++function LliboutryDuvalEnum(){ return 964;}
++function TransientIslevelsetEnum(){ return 965;}
++function SpcLevelsetEnum(){ return 966;}
++function ExtrapolationVariableEnum(){ return 967;}
++function IceMaskNodeActivationEnum(){ return 968;}
++function LevelsetfunctionSlopeXEnum(){ return 969;}
++function LevelsetfunctionSlopeYEnum(){ return 970;}
++function LevelsetfunctionPicardEnum(){ return 971;}
++function SealevelriseSolutionEnum(){ return 972;}
++function SealevelriseAnalysisEnum(){ return 973;}
++function SealevelriseSEnum(){ return 974;}
++function SealevelriseDeltathicknessEnum(){ return 975;}
++function SealevelriseMaxiterEnum(){ return 976;}
++function SealevelriseReltolEnum(){ return 977;}
++function SealevelriseAbstolEnum(){ return 978;}
++function SealevelriseLoveHEnum(){ return 979;}
++function SealevelriseLoveKEnum(){ return 980;}
++function SealevelriseRigidEnum(){ return 981;}
++function SealevelriseElasticEnum(){ return 982;}
++function SealevelriseEustaticEnum(){ return 983;}
++function SealevelriseLegendrePrecomputeEnum(){ return 984;}
++function SealevelriseLegendreCoefficientsEnum(){ return 985;}
++function SealevelriseGRigidEnum(){ return 986;}
++function SealevelriseGElasticEnum(){ return 987;}
++function SealevelriseStoreGreenFunctionsEnum(){ return 988;}
++function MaximumNumberOfDefinitionsEnum(){ return 989;}
+Index: ../trunk-jpl/src/m/enum/BasalforcingsDtbgEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsDtbgEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsDtbgEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsDtbgEnum()
++%BASALFORCINGSDTBGENUM - Enum of BasalforcingsDtbg
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsDtbgEnum()
++
++macro=StringToEnum('BasalforcingsDtbg');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20019)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20020)
+@@ -48,9 +48,22 @@
+ def BasalforcingsMeltrateFactorEnum(): return StringToEnum("BasalforcingsMeltrateFactor")[0]
+ def BasalforcingsThresholdThicknessEnum(): return StringToEnum("BasalforcingsThresholdThickness")[0]
+ def BasalforcingsUpperdepthMeltEnum(): return StringToEnum("BasalforcingsUpperdepthMelt")[0]
++def BasalforcingsMantleconductivityEnum(): return StringToEnum("BasalforcingsMantleconductivity")[0]
++def BasalforcingsNusseltEnum(): return StringToEnum("BasalforcingsNusselt")[0]
++def BasalforcingsDtbgEnum(): return StringToEnum("BasalforcingsDtbg")[0]
++def BasalforcingsPlumeradiusEnum(): return StringToEnum("BasalforcingsPlumeradius")[0]
++def BasalforcingsTopplumedepthEnum(): return StringToEnum("BasalforcingsTopplumedepth")[0]
++def BasalforcingsBottomplumedepthEnum(): return StringToEnum("BasalforcingsBottomplumedepth")[0]
++def BasalforcingsPlumexEnum(): return StringToEnum("BasalforcingsPlumex")[0]
++def BasalforcingsPlumeyEnum(): return StringToEnum("BasalforcingsPlumey")[0]
++def BasalforcingsCrustthicknessEnum(): return StringToEnum("BasalforcingsCrustthickness")[0]
++def BasalforcingsUppercrustthicknessEnum(): return StringToEnum("BasalforcingsUppercrustthickness")[0]
++def BasalforcingsUppercrustheatEnum(): return StringToEnum("BasalforcingsUppercrustheat")[0]
++def BasalforcingsLowercrustheatEnum(): return StringToEnum("BasalforcingsLowercrustheat")[0]
+ def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0]
+ def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0]
+ def MismipFloatingMeltRateEnum(): return StringToEnum("MismipFloatingMeltRate")[0]
++def MantlePlumeGeothermalFluxEnum(): return StringToEnum("MantlePlumeGeothermalFlux")[0]
+ def BedEnum(): return StringToEnum("Bed")[0]
+ def BaseEnum(): return StringToEnum("Base")[0]
+ def ConstantsGEnum(): return StringToEnum("ConstantsG")[0]
+Index: ../trunk-jpl/src/m/enum/BasalforcingsLowercrustheatEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsLowercrustheatEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsLowercrustheatEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsLowercrustheatEnum()
++%BASALFORCINGSLOWERCRUSTHEATENUM - Enum of BasalforcingsLowercrustheat
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsLowercrustheatEnum()
++
++macro=StringToEnum('BasalforcingsLowercrustheat');
+Index: ../trunk-jpl/src/m/enum/BasalforcingsTopplumedepthEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/BasalforcingsTopplumedepthEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/BasalforcingsTopplumedepthEnum.m	(revision 20020)
+@@ -0,0 +1,11 @@
++function macro=BasalforcingsTopplumedepthEnum()
++%BASALFORCINGSTOPPLUMEDEPTHENUM - Enum of BasalforcingsTopplumedepth
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=BasalforcingsTopplumedepthEnum()
++
++macro=StringToEnum('BasalforcingsTopplumedepth');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20020-20021.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20020-20021.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20020-20021.diff	(revision 20498)
@@ -0,0 +1,154 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20020)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20021)
+@@ -136,15 +136,130 @@
+ 
+ #include "./types.h"
+ #include "../Exceptions/exceptions.h"
++#include "../MemOps/MemOps.h"
+ #include "./recast.h"
+ 
+-IssmDouble legendre(IssmDouble Pn1, IssmDouble Pn2, IssmDouble x, int n){
++double *p_polynomial_value ( int m, int n, IssmDouble* x){
+ 
+-	if (n<0)_error_("legendre error message: order required should be >0");
++	/******************************************************************************{{{/
++	Purpose:
+ 
+-	if(n==0)return 1;
+-	if(n==1)return x;
++	P_POLYNOMIAL_VALUE evaluates the Legendre polynomials P(n,x).
+ 
+-	return ( (2*n-1)*x*Pn1 - (n-1)*Pn2 ) /n;
++	Discussion:
++
++	P(n,1) = 1.
++	P(n,-1) = (-1)^N.
++	| P(n,x) | <= 1 in [-1,1].
++
++	The N zeroes of P(n,x) are the abscissas used for Gauss-Legendre
++	quadrature of the integral of a function F(X) with weight function 1
++	over the interval [-1,1].
++
++	The Legendre polynomials are orthogonal under the inner product defined
++	as integration from -1 to 1:
++
++	Integral ( -1 <= X <= 1 ) P(I,X) * P(J,X) dX
++	= 0 if I =/= J
++	= 2 / ( 2*I+1 ) if I = J.
++
++	Except for P(0,X), the integral of P(I,X) from -1 to 1 is 0.
++
++	A function F(X) defined on [-1,1] may be approximated by the series
++	C0*P(0,x) + C1*P(1,x) + ... + CN*P(n,x)
++	where
++	C(I) = (2*I+1)/(2) * Integral ( -1 <= X <= 1 ) F(X) P(I,x) dx.
++
++	The formula is:
++
++	P(n,x) = (1/2^N) * sum ( 0 <= M <= N/2 ) C(N,M) C(2N-2M,N) X^(N-2*M)
++
++	Differential equation:
++
++	(1-X*X) * P(n,x)'' - 2 * X * P(n,x)' + N * (N+1) = 0
++
++	First terms:
++
++	P( 0,x) =      1
++	P( 1,x) =      1 X
++	P( 2,x) = (    3 X^2 -       1)/2
++	P( 3,x) = (    5 X^3 -     3 X)/2
++	P( 4,x) = (   35 X^4 -    30 X^2 +     3)/8
++	P( 5,x) = (   63 X^5 -    70 X^3 +    15 X)/8
++	P( 6,x) = (  231 X^6 -   315 X^4 +   105 X^2 -     5)/16
++	P( 7,x) = (  429 X^7 -   693 X^5 +   315 X^3 -    35 X)/16
++	P( 8,x) = ( 6435 X^8 - 12012 X^6 +  6930 X^4 -  1260 X^2 +   35)/128
++	P( 9,x) = (12155 X^9 - 25740 X^7 + 18018 X^5 -  4620 X^3 +  315 X)/128
++	P(10,x) = (46189 X^10-109395 X^8 + 90090 X^6 - 30030 X^4 + 3465 X^2-63)/256
++
++	Recursion:
++
++	P(0,x) = 1
++	P(1,x) = x
++	P(n,x) = ( (2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x) ) / n
++
++	P'(0,x) = 0
++	P'(1,x) = 1
++	P'(N,x) = ( (2*N-1)*(P(N-1,x)+X*P'(N-1,x)-(N-1)*P'(N-2,x) ) / N
++
++	Licensing:
++
++	This code is distributed under the GNU LGPL license.
++
++	Modified:
++
++	08 August 2013
++
++	Author:
++
++		John Burkardt
++
++			Reference:
++
++			Milton Abramowitz, Irene Stegun,
++				   Handbook of Mathematical Functions,
++				   National Bureau of Standards, 1964,
++				   ISBN: 0-486-61272-4,
++				   LC: QA47.A34.
++
++					   Daniel Zwillinger, editor,
++				   CRC Standard Mathematical Tables and Formulae,
++				   30th Edition,
++				   CRC Press, 1996.
++
++					   Parameters:
++
++					   Input, int M, the number of evaluation points.
++
++					   Input, int N, the highest order polynomial to evaluate.
++					   Note that polynomials 0 through N will be evaluated.
++
++					   Input, double X[M], the evaluation points.
++
++					   Output, double P_POLYNOMIAL_VALUE[M*(N+1)], the values of the Legendre
++					   polynomials of order 0 through N.
++	}}}*/
+ 	
++	int i;
++	int j;
++	IssmDouble* v=NULL;
++
++	if ( n < 0 ) return NULL;
++
++	v = xNew<IssmDouble>(m*(n+1));
++
++	for ( i = 0; i < m; i++ ) v[i+0*m] = 1.0;
++	if ( n < 1 ) return v;
++
++	for ( i = 0; i < m; i++ ) v[i+1*m] = x[i];
++
++	for ( j = 2; j <= n; j++ ) {
++		for ( i = 0; i < m; i++ ) {
++			v[i+j*m] = ( ( IssmDouble ) ( 2 * j - 1 ) * x[i] * v[i+(j-1)*m]
++					- ( IssmDouble ) (     j - 1 ) *        v[i+(j-2)*m] )
++				/ ( IssmDouble ) (     j     );
++		}
++	}
++
++	return v;
+ }
+Index: ../trunk-jpl/src/c/shared/Numerics/numerics.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 20020)
++++ ../trunk-jpl/src/c/shared/Numerics/numerics.h	(revision 20021)
+@@ -33,7 +33,8 @@
+ void        cross(IssmDouble *result,IssmDouble*vector1,IssmDouble*vector2);
+ void        XZvectorsToCoordinateSystem(IssmDouble *T,IssmDouble*xzvectors);
+ int         cubic(IssmDouble a, IssmDouble b, IssmDouble c, IssmDouble d,IssmDouble X[3], int *num);
+-IssmDouble  legendre(IssmDouble Pn1, IssmDouble Pn2, IssmDouble x, int i);
++IssmDouble  legendre(IssmDouble Pn1, IssmDouble Pn2, IssmDouble x, int n);
++IssmDouble*  p_polynomial_value ( int m, int n, IssmDouble* x);
+ 
+ int         NewtonSolveDnorm(IssmDouble* pdnorm,IssmDouble c1,IssmDouble c2,IssmDouble c3,IssmDouble n,IssmDouble dnorm);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20021-20022.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20021-20022.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20021-20022.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20021)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20022)
+@@ -65,8 +65,19 @@
+ 	/*legendre coefficients: */
+ 	iomodel->Constant(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+ 	if(legendre_precompute){
+-		iomodel->FetchData(&legendre_coefficients,&M,&nl,SealevelriseLoveKEnum);
+-		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,M,nl));
++
++		/*compute values at which to evaluate the legendre polynomical values:*/
++		const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
++		IssmDouble* x=xNew<IssmDouble>(M);
++		for(int i=0;i<=M;i++){ //watch out the <=
++			x[i]=-cos( (reCast<IssmDouble>(i)*degacc) * PI / 180.0);
++		}
++		/*compute legendre coefficient matrix:*/
++		legendre_coefficients=p_polynomial_value(M,nl-1,x);
++		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,nl,M));
++
++		/*free ressources:*/
++		xDelete<IssmDouble>(x);
+ 	}
+ 
+ 	/*free ressources: */
Index: /issm/oecreview/Archive/19101-20495/ISSM-20022-20023.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20022-20023.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20022-20023.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20022)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20023)
+@@ -3557,7 +3557,10 @@
+ 
+ 	/*recover legendre coefficients if they have been precomputed:*/
+ 	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-	if(legendre_precompute)this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
++	if(legendre_precompute){
++		DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
++		parameter->GetParameterValueByPointer(&legendre_coefficients,NULL,&M);
++	}
+ 
+ 	/*how many dofs are we working with here? */
+ 	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
+@@ -3643,7 +3646,8 @@
+ 			if(computeelastic){
+ 				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 				if(legendre_precompute){
+-					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[reCast<int,IssmDouble>((M-1)*(cosalpha+1.0)/2.0)*nl+n];
++					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
++					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[M*n + index];
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+@@ -3803,7 +3807,10 @@
+ 
+ 		/*recover legendre coefficients if they have been precomputed:*/
+ 		this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-		if(legendre_precompute)this->parameters->FindParam(&legendre_coefficients,&M,NULL,SealevelriseLegendreCoefficientsEnum);
++		if(legendre_precompute){
++			DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
++			parameter->GetParameterValueByPointer(&legendre_coefficients,NULL,&M);
++		}
+ 
+ 		/*Speed up of love number comutation for elastic mode: */
+ 		deltalove=xNew<IssmDouble>(nl);
+@@ -3844,7 +3851,8 @@
+ 			if(compute_G_elastic){
+ 				G_elastic[i] = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 				if(legendre_precompute){
+-					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[reCast<int,IssmDouble>((M-1)*(cosalpha+1.0)/2.0)*nl+n];
++					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
++					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[M*n + index];
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
Index: /issm/oecreview/Archive/19101-20495/ISSM-20023-20024.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20023-20024.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20023-20024.diff	(revision 20498)
@@ -0,0 +1,64 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20023)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20024)
+@@ -15,7 +15,6 @@
+ 		elastic         = 0;
+ 		eustatic         = 0;
+ 		legendre_precompute = 0;
+-		legendre_coefficients = NaN;
+ 		store_green_functions = 0;
+ 	end
+ 	methods
+@@ -42,8 +41,7 @@
+ 		self.eustatic=1;
+ 		
+ 		%legendre coefficients: 
+-		self.legendre_precompute = 0;
+-		self.legendre_coefficients = NaN;
++		self.legendre_precompute = 1;
+ 
+ 		%optimization: 
+ 		self.store_green_functions=1;
+@@ -65,11 +63,6 @@
+ 				error('slr error message: love numbers should be provided at the same level of accuracy');
+ 			end
+ 
+-			%check that the legendre coefficients have indeed been computed if requested:
+-			if self.legendre_precompute,
+-				md = checkfield(md,'fieldname','slr.legendre_coefficients','NaN',1,'Inf',1,'size',[NaN length(self.love_h)]);
+-			end
+-
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   slr parameters:'));
+@@ -85,9 +78,6 @@
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
+ 			fielddisplay(self,'store_green_functions','store green functions (default 1) to speed up solutoin (though memory intense)');
+ 			fielddisplay(self,'legendre_precompute','precompute legendre coefficients? (default is 0)');
+-			if(self.legendre_precompute)
+-				fielddisplay(self,'legendre_coefficients','precomputed legendre coefficients');
+-			end
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -102,9 +92,6 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','store_green_functions','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_precompute','format','Boolean');
+-			if(self.legendre_precompute),
+-				WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_coefficients','format','DoubleMat','mattype',1);
+-			end
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -118,9 +105,6 @@
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
+ 			writejsdouble(fid,[modelname '.slr.legendre_precompute'],self.legendre_precompute);
+-			if self.legendre_precompute,
+-				writejs2Darray(fid,[modelname '.srl.legendre_coefficients'],self.legendre_coefficients);
+-			end
+ 
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20024-20025.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20024-20025.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20024-20025.diff	(revision 20498)
@@ -0,0 +1,113 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20024)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20025)
+@@ -32,8 +32,8 @@
+ 			var color;
+ 			var ccontext,ccanvas,ccanvasid,ccanvashtml;
+ 			var colorbarorientiation = options.getfieldvalue('colorbarorientation','vertical');
+-			var cheightoffset = options.getfieldvalue('colorbarfontsize',16);
+-			var cwidthoffset = options.getfieldvalue('colorbarfontsize',16)*3;
++			var cheightoffset = options.getfieldvalue('colorbarfontsize',18);
++			var cwidthoffset = options.getfieldvalue('colorbarfontsize',18)*3;
+ 			var y;
+ 			var x;
+ 			//}}}
+@@ -118,13 +118,13 @@
+ 					ccontext.moveTo(cwidth-x,y+cheightoffset);
+ 					ccontext.lineTo(cwidth,y+cheightoffset);
+ 					ccontext.stroke();
+-					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',18))+'px "Lato",Helvetica,Arial,sans-serif';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='left';
+ 					ccontext.fillText(labels[i],cwidth+x,y+cheightoffset*3/2);
+ 				}
+ 				if (options.exist('colorbartitle')) {
+-					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',18))+'px "Lato",Helvetica,Arial,sans-serif';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='left';
+ 					ccontext.textBaseline='bottom';
+@@ -191,13 +191,13 @@
+ 					ccontext.moveTo(x+cwidthoffset,cheight-y+cheightoffset);
+ 					ccontext.lineTo(x+cwidthoffset,cheight+cheightoffset);
+ 					ccontext.stroke();
+-					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',18))+'px "Lato",Helvetica,Arial,sans-serif';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='center';
+ 					ccontext.fillText(labels[cdivisions-i],x+cwidthoffset,cheight+cheightoffset*2);
+ 				}
+ 				if (options.exist('colorbartitle')) {
+-					ccontext.font=String(options.getfieldvalue('colorbarfontsize',16))+'px Arial';
++					ccontext.font=String(options.getfieldvalue('colorbarfontsize',18))+'px "Lato",Helvetica,Arial,sans-serif';
+ 					ccontext.fillStyle='black';
+ 					ccontext.textAlign='center';
+ 					ccontext.textBaseline='bottom';
+@@ -392,4 +392,48 @@
+ 		node['arrays'] = [vertices, colors];
+ 		node['buffers'] = initBuffers(gl, node['arrays']);
+ 	} //}}}
+-}
++	
++	//text display //{{{
++	if (options.exist('textlabels')) {
++		var textcanvas,textcanvasid;	
++		textcanvasid = options.getfieldvalue('textcanvasid',options.getfieldvalue('canvasid')+'-text');
++		textcanvas = $('#'+textcanvasid);
++		textcanvas.textlabels = options.getfieldvalue('textlabels',[]);
++		
++		//setup drawing function for text canvas draw calls
++		textcanvas.draw = function(canvas) {
++			var textcontext,textlabels,textlabel,textcanvaswidth,textcanvasheight,textcoordinates;	
++			var textposition = vec3.create();
++			var mvpMatrix = mat4.create();
++			
++			//ensure correct canvas coordinate scaling
++			textcanvaswidth = this[0].clientWidth;
++			textcanvasheight = this[0].clientHeight;
++			this[0].width  = textcanvaswidth;
++			this[0].height = textcanvasheight;
++			
++			textcontext = this[0].getContext('2d');
++			textlabels = options.getfieldvalue('textlabels',[]);
++			textcontext.clearRect(0, 0, textcanvaswidth, textcanvasheight);
++			
++			//worldspace to screenspace transformation for text
++			for (text in textlabels) {
++				textlabel = textlabels[text];
++				mat4.multiply(mvpMatrix, canvas.cameraMatrix, canvas.nodes['overlay']['modelMatrix']);
++				textposition = vec3.transformMat4(textposition, textlabel['pos'], mvpMatrix);
++				if (textposition[2] > 1) { //clip coordinates with z > 1
++					continue;
++				}
++				textcoordinates = [(textposition[0]+1.0)/2.0*textcanvaswidth, (-textposition[1]+1.0)/2.0*textcanvasheight]; //NDC to screenspace
++				textcontext.font = String(options.getfieldvalue('colorbarfontsize',18))+'px "Lato",Helvetica,Arial,sans-serif';
++				textcontext.fillStyle = 'black';
++				textcontext.strokeStyle = 'black';
++				textcontext.textAlign = 'center';
++				textcontext.textBaseline = 'middle';
++				textcontext.fillText(textlabel['text'], textcoordinates[0], textcoordinates[1]);
++				textcontext.strokeText(textlabel['text'], textcoordinates[0], textcoordinates[1]);
++			}
++		}
++		canvas.textcanvas = textcanvas;
++	} //}}}
++}
+\ No newline at end of file
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20024)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20025)
+@@ -464,6 +464,10 @@
+ 		gl.viewport(0, 0, canvas.width, canvas.height);
+ 	}
+ 	
++	if (canvas.textcanvas) {
++		canvas.textcanvas.draw(canvas);
++	}
++
+ 	// Set clear color to black, fully opaque
+ 	var backgroundcolor=new RGBColor(options.getfieldvalue('backgroundcolor','lightcyan'));
+ 	if(backgroundcolor.ok){
Index: /issm/oecreview/Archive/19101-20495/ISSM-20025-20026.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20025-20026.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20025-20026.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 20025)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatParam.h	(revision 20026)
+@@ -71,5 +71,8 @@
+ 		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+ 		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+ 		/*}}}*/
++		/*DoubleMatParam specific routines:{{{*/
++		void  GetParameterValueByPointer(IssmDouble** pIssmDoublearray,int* pM,int* pN);
++		/*}}}*/
+ };
+ #endif  /* _DOUBLEMATPARAM_H */
+Index: ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 20025)
++++ ../trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp	(revision 20026)
+@@ -112,3 +112,13 @@
+ 	this->N=in_N;
+ }
+ /*}}}*/
++
++/*DoubleMatParam specific routines:*/
++void  DoubleMatParam::GetParameterValueByPointer(IssmDouble** pIssmDoublearray,int* pM,int* pN){/*{{{*/
++	
++	/*Assign output pointers:*/
++	if(pM) *pM=M;
++	if(pN) *pN=N;
++	*pIssmDoublearray=value;
++}
++/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20026-20027.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20026-20027.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20026-20027.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20026)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20027)
+@@ -74,7 +74,7 @@
+ 		}
+ 		/*compute legendre coefficient matrix:*/
+ 		legendre_coefficients=p_polynomial_value(M,nl-1,x);
+-		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,nl,M));
++		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,M,nl));
+ 
+ 		/*free ressources:*/
+ 		xDelete<IssmDouble>(x);
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20026)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20027)
+@@ -248,16 +248,18 @@
+ 
+ 	v = xNew<IssmDouble>(m*(n+1));
+ 
+-	for ( i = 0; i < m; i++ ) v[i+0*m] = 1.0;
++	for ( i = 0; i < m; i++ ) v[i*(n+1)+0] = 1.0;
+ 	if ( n < 1 ) return v;
+ 
+-	for ( i = 0; i < m; i++ ) v[i+1*m] = x[i];
++	for ( i = 0; i < m; i++ ) v[i*(n+1)+1] = x[i];
+ 
+-	for ( j = 2; j <= n; j++ ) {
+-		for ( i = 0; i < m; i++ ) {
+-			v[i+j*m] = ( ( IssmDouble ) ( 2 * j - 1 ) * x[i] * v[i+(j-1)*m]
+-					- ( IssmDouble ) (     j - 1 ) *        v[i+(j-2)*m] )
++	for ( i = 0; i < m; i++ ) {
++		for ( j = 2; j <= n; j++ ) {
++			
++			v[j+i*(n+1)] = ( ( IssmDouble ) ( 2 * j - 1 ) * x[i] * v[(j-1)+i*(n+1)]
++					- ( IssmDouble ) (     j - 1 ) *        v[(j-2)+i*(n+1)] )
+ 				/ ( IssmDouble ) (     j     );
++
+ 		}
+ 	}
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20026)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20027)
+@@ -3559,7 +3559,7 @@
+ 	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+ 	if(legendre_precompute){
+ 		DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
+-		parameter->GetParameterValueByPointer(&legendre_coefficients,NULL,&M);
++		parameter->GetParameterValueByPointer(&legendre_coefficients,&M,NULL);
+ 	}
+ 
+ 	/*how many dofs are we working with here? */
+@@ -3647,7 +3647,7 @@
+ 				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 				if(legendre_precompute){
+ 					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
+-					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[M*n + index];
++					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[index*nl+n];
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
+@@ -3809,7 +3809,7 @@
+ 		this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+ 		if(legendre_precompute){
+ 			DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
+-			parameter->GetParameterValueByPointer(&legendre_coefficients,NULL,&M);
++			parameter->GetParameterValueByPointer(&legendre_coefficients,&M,NULL);
+ 		}
+ 
+ 		/*Speed up of love number comutation for elastic mode: */
+@@ -3852,7 +3852,7 @@
+ 				G_elastic[i] = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 				if(legendre_precompute){
+ 					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
+-					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[M*n + index];
++					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[index*nl+n];
+ 				}
+ 				else{
+ 					for(int n=0;n<nl;n++){
Index: /issm/oecreview/Archive/19101-20495/ISSM-20027-20028.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20027-20028.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20027-20028.diff	(revision 20498)
@@ -0,0 +1,596 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20027)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20028)
+@@ -42,8 +42,7 @@
+ 	IssmDouble* love_h=NULL;
+ 	IssmDouble* love_k=NULL;
+ 	
+-	bool        legendre_precompute=false;
+-	IssmDouble* legendre_coefficients=NULL;
++	IssmDouble* G_elastic = NULL;
+ 	int         M;
+ 
+ 	/*some constant parameters: */
+@@ -53,37 +52,44 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseRigidEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseLegendrePrecomputeEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseStoreGreenFunctionsEnum));
+ 
+ 	/*love numbers: */
+ 	iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
+ 	iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+-	parameters->AddObject(new DoubleVecParam(SealevelriseLoveHEnum,love_h,nl));
+-	parameters->AddObject(new DoubleVecParam(SealevelriseLoveKEnum,love_k,nl));
+ 
+-	/*legendre coefficients: */
+-	iomodel->Constant(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-	if(legendre_precompute){
++	/*compute elastic green function for a range of angles*/
++	const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
++	G_elastic=xNew<IssmDouble>(M);
++	
++	/*compute combined legendre + love number (elastic green function:*/
++	for(int i=0;i<M;i++){ //watch out the <=
++		IssmDouble alpha,x;
++		alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
++		
++		G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++		for (int n=0;n<nl;n++) {
++			IssmDouble Pn,Pn1,Pn2;
++			IssmDouble deltalove;
++			
++			deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+ 
+-		/*compute values at which to evaluate the legendre polynomical values:*/
+-		const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
+-		IssmDouble* x=xNew<IssmDouble>(M);
+-		for(int i=0;i<=M;i++){ //watch out the <=
+-			x[i]=-cos( (reCast<IssmDouble>(i)*degacc) * PI / 180.0);
++			if(n==0)Pn=1;
++			else if(n==1)Pn=cos(alpha);
++			else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
++			Pn2=Pn1; Pn1=Pn;
++
++			G_elastic[i] += deltalove*Pn;
+ 		}
+-		/*compute legendre coefficient matrix:*/
+-		legendre_coefficients=p_polynomial_value(M,nl-1,x);
+-		parameters->AddObject(new DoubleMatParam(SealevelriseLegendreCoefficientsEnum,legendre_coefficients,M,nl));
+-
+-		/*free ressources:*/
+-		xDelete<IssmDouble>(x);
+ 	}
++	parameters->AddObject(new DoubleVecParam(SealevelriseGElasticEnum,G_elastic,M));
+ 
++	/*free ressources:*/
++	xDelete<IssmDouble>(G_elastic);
++
+ 	/*free ressources: */
+ 	xDelete<IssmDouble>(love_h);
+ 	xDelete<IssmDouble>(love_k);
+-	xDelete<IssmDouble>(legendre_coefficients);
++	xDelete<IssmDouble>(G_elastic);
+ 
+ }/*}}}*/
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20027)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20028)
+@@ -1046,11 +1046,7 @@
+ 	SealevelriseRigidEnum,
+ 	SealevelriseElasticEnum,
+ 	SealevelriseEustaticEnum,
+-	SealevelriseLegendrePrecomputeEnum,
+-	SealevelriseLegendreCoefficientsEnum,
+-	SealevelriseGRigidEnum,
+ 	SealevelriseGElasticEnum,
+-	SealevelriseStoreGreenFunctionsEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20027)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20028)
+@@ -1000,11 +1000,7 @@
+ 		case SealevelriseRigidEnum : return "SealevelriseRigid";
+ 		case SealevelriseElasticEnum : return "SealevelriseElastic";
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+-		case SealevelriseLegendrePrecomputeEnum : return "SealevelriseLegendrePrecompute";
+-		case SealevelriseLegendreCoefficientsEnum : return "SealevelriseLegendreCoefficients";
+-		case SealevelriseGRigidEnum : return "SealevelriseGRigid";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
+-		case SealevelriseStoreGreenFunctionsEnum : return "SealevelriseStoreGreenFunctions";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20027)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20028)
+@@ -1024,11 +1024,7 @@
+ 	      else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum;
+ 	      else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
+-	      else if (strcmp(name,"SealevelriseLegendrePrecompute")==0) return SealevelriseLegendrePrecomputeEnum;
+-	      else if (strcmp(name,"SealevelriseLegendreCoefficients")==0) return SealevelriseLegendreCoefficientsEnum;
+-	      else if (strcmp(name,"SealevelriseGRigid")==0) return SealevelriseGRigidEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
+-	      else if (strcmp(name,"SealevelriseStoreGreenFunctions")==0) return SealevelriseStoreGreenFunctionsEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 20027)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.h	(revision 20028)
+@@ -70,5 +70,9 @@
+ 		void  SetValue(FILE* fid){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold a FILE");}
+ 		void  SetValue(IssmDouble** array, int M, int* mdim_array, int* ndim_array){_error_("Param "<< EnumToStringx(enum_type) << " cannot hold an array of matrices");}
+ 		/*}}}*/
++		/*DoubleVecParam specific routines:{{{*/
++		void  GetParameterValueByPointer(IssmDouble** pIssmDoublearray,int* pM);
++		/*}}}*/
++
+ };
+ #endif  /* _DOUBLEVECPARAM_H */
+Index: ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 20027)
++++ ../trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp	(revision 20028)
+@@ -120,3 +120,12 @@
+ 	this->M=in_M;
+ }
+ /*}}}*/
++
++/*DoubleVecParam specific routines:*/
++void  DoubleVecParam::GetParameterValueByPointer(IssmDouble** pIssmDoublearray,int* pM){/*{{{*/
++	
++	/*Assign output pointers:*/
++	if(pM) *pM=M;
++	*pIssmDoublearray=values;
++}
++/*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20027)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20028)
+@@ -3514,15 +3514,8 @@
+ 	IssmDouble late,longe,re;
+ 	IssmDouble lati,longi,ri;
+ 
+-	/*love numbers:*/
+-	IssmDouble* love_h=NULL;
+-	IssmDouble* love_k=NULL; 
+-	IssmDouble* deltalove=NULL;
+-	int nl;
+-
+-	/*legendre coefficients:*/
+-	bool        legendre_precompute=false;
+-	IssmDouble* legendre_coefficients=NULL;
++	/*elastic green function:*/
++	IssmDouble* G_elastic_precomputed=NULL;
+ 	int         M;
+ 
+ 	/*ice properties: */
+@@ -3549,17 +3542,15 @@
+ 	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
+ 
+ 	/*recover love numbers and computational flags: */
+-	this->parameters->FindParam(&love_h,&nl,SealevelriseLoveHEnum);
+-	this->parameters->FindParam(&love_k,&nl,SealevelriseLoveKEnum);
+ 	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+ 	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
+ 
+-	/*recover legendre coefficients if they have been precomputed:*/
+-	this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-	if(legendre_precompute){
+-		DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
+-		parameter->GetParameterValueByPointer(&legendre_coefficients,&M,NULL);
++	/*recover elastic green function:*/
++	if(computeelastic){
++		DoubleVecParam* parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGElasticEnum)); 
++		_assert_(parameter);
++		parameter->GetParameterValueByPointer(&G_elastic_precomputed,&M);
+ 	}
+ 
+ 	/*how many dofs are we working with here? */
+@@ -3613,12 +3604,6 @@
+ 	/*Compute eustatic compoent:*/
+ 	if(computeeustatic) eustatic += rho_ice*area*I/(oceanarea*rho_water); 
+ 
+-	/*Speed up of love number comutation: */
+-	if(computeelastic){
+-		deltalove=xNew<IssmDouble>(nl);
+-		for (int n=0;n<nl;n++) deltalove[n] = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+-	}
+-
+ 	if(computeelastic | computerigid){
+ 		int* indices=xNew<int>(gsize);
+ 		IssmDouble* values=xNew<IssmDouble>(gsize);
+@@ -3628,8 +3613,6 @@
+ 			IssmDouble alpha;
+ 			IssmDouble G_rigid=0;  //do not remove =0!
+ 			IssmDouble G_elastic=0;  //do not remove =0!
+-			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
+-			IssmDouble cosalpha;
+ 			IssmDouble delPhi,delLambda;
+ 
+ 			/*Compute alpha angle between centroid and current vertex : */
+@@ -3637,27 +3620,14 @@
+ 
+ 		    delPhi=fabs(lati-late); delLambda=fabs(longi-longe);
+ 			alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));
+-			cosalpha=cos(alpha); //compute this to speed up the elastic component.
+ 
+ 			//Rigid earth gravitational perturbation:
+ 			if(computerigid)G_rigid=1.0/2.0/sin(alpha/2.0);
+ 
+ 			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
+ 			if(computeelastic){
+-				G_elastic = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-				if(legendre_precompute){
+-					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
+-					for(int n=0;n<nl;n++) G_elastic += deltalove[n]*legendre_coefficients[index*nl+n];
+-				}
+-				else{
+-					for(int n=0;n<nl;n++){
+-						if(n==0)Pn=1;
+-						else if(n==1)Pn=cosalpha;
+-						else Pn= ( (2*n-1)*cosalpha*Pn1 - (n-1)*Pn2 ) /n;
+-						Pn2=Pn1; Pn1=Pn;
+-						G_elastic += deltalove[n]*Pn;
+-					}
+-				}
++				int index=reCast<int,IssmDouble>(alpha/PI*(M-1));
++				G_elastic += G_elastic_precomputed[index];
+ 			}
+ 
+ 			/*Add all components to the pSgi or pSgo solution vectors:*/
+@@ -3672,13 +3642,6 @@
+ 	
+ 	/*Assign output pointer:*/
+ 	*peustatic=eustatic;
+-
+-	/*Free ressources:*/
+-	if(computeelastic){
+-		xDelete<IssmDouble>(love_h);
+-		xDelete<IssmDouble>(love_k);
+-		xDelete<IssmDouble>(deltalove);
+-	}
+ 	return;
+ }
+ /*}}}*/
+@@ -3695,16 +3658,13 @@
+ 	IssmDouble minlong=400;
+ 	IssmDouble maxlong=-20;
+ 
+-	/*love numbers:*/
+-	IssmDouble* love_h=NULL;
+-	IssmDouble* love_k=NULL; 
+-	IssmDouble* deltalove=NULL;
+-	int nl;
+-
+-	/*legendre coefficients:*/
+-	bool        legendre_precompute=false;
+-	IssmDouble* legendre_coefficients=NULL;
++	/*precomputed elastic green functions:*/
++	IssmDouble* G_elastic_precomputed = NULL;
+ 	int         M;
++	
++	/*computation of Green functions:*/
++	IssmDouble* G_elastic= NULL;
++	IssmDouble* G_rigid= NULL;
+ 
+ 	/*optimization:*/
+ 	bool store_green_functions=false;
+@@ -3717,14 +3677,6 @@
+ 	bool computeelastic= true;
+ 	bool computeeustatic = true;
+ 
+-	/*G_rigid and G_elasti variables, to speed up the computations: */
+-	DoubleArrayInput*      G_rigid_input=NULL;
+-	IssmDouble* G_rigid = NULL; int G_rigid_M;
+-	bool        compute_G_rigid=false;
+-	DoubleArrayInput*      G_elastic_input=NULL;
+-	IssmDouble* G_elastic = NULL; int G_elastic_M;
+-	bool        compute_G_elastic=false;
+-
+ 	/*early return if we are not on the ocean:*/
+ 	if (!IsWaterInElement())return;
+ 
+@@ -3732,26 +3684,10 @@
+ 	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+ 	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
+-	this->parameters->FindParam(&store_green_functions,SealevelriseStoreGreenFunctionsEnum);
+ 	
+ 	/*early return if rigid or elastic not requested:*/
+ 	if(!computerigid && !computeelastic) return;
+ 
+-	/*Try and recover, if it exists, G_rigid and G_elastic:*/
+-	G_rigid_input=(DoubleArrayInput*)this->inputs->GetInput(SealevelriseGRigidEnum);
+-	if(G_rigid_input){
+-		compute_G_rigid=false;
+-		G_rigid_input->GetValues(&G_rigid,&G_rigid_M);
+-	}
+-	else if(computerigid)compute_G_rigid=true;
+-
+-	G_elastic_input=(DoubleArrayInput*)this->inputs->GetInput(SealevelriseGElasticEnum);
+-	if(G_elastic_input){
+-		compute_G_elastic=false;
+-		G_elastic_input->GetValues(&G_elastic,&G_elastic_M);
+-	}
+-	else if(computeelastic)compute_G_elastic=true;
+-	
+ 	/*recover material parameters: */
+ 	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
+@@ -3800,30 +3736,17 @@
+ 	late=late/180*PI;
+ 	longe=longe/180*PI;
+ 	/*}}}*/
+-	if(compute_G_elastic){
+-		/*recover love numbers and legendre_coefficients:{{{*/
+-		this->parameters->FindParam(&love_h,&nl,SealevelriseLoveHEnum);
+-		this->parameters->FindParam(&love_k,&nl,SealevelriseLoveKEnum);
++	
++	if(computeelastic){
++	
++		/*recover elastic green function:*/
++		DoubleVecParam* parameter = static_cast<DoubleVecParam*>(this->parameters->FindParamObject(SealevelriseGElasticEnum)); _assert_(parameter);
++		parameter->GetParameterValueByPointer(&G_elastic_precomputed,&M);
+ 
+-		/*recover legendre coefficients if they have been precomputed:*/
+-		this->parameters->FindParam(&legendre_precompute,SealevelriseLegendrePrecomputeEnum);
+-		if(legendre_precompute){
+-			DoubleMatParam* parameter = static_cast<DoubleMatParam*>(this->parameters->FindParamObject(SealevelriseLegendreCoefficientsEnum)); _assert_(parameter);
+-			parameter->GetParameterValueByPointer(&legendre_coefficients,&M,NULL);
+-		}
+-
+-		/*Speed up of love number comutation for elastic mode: */
+-		deltalove=xNew<IssmDouble>(nl);
+-		for (int n=0;n<nl;n++) deltalove[n] = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+-		//}}}
+-
+ 		/*initialize G_elastic:*/
+ 		G_elastic=xNewZeroInit<IssmDouble>(gsize);
+ 	}
+-	if(compute_G_rigid){
+-		/*Initialize G_rigid and G_elastic:*/
+-		G_rigid=xNewZeroInit<IssmDouble>(gsize);
+-	}
++	if(computerigid) G_rigid=xNewZeroInit<IssmDouble>(gsize);
+ 
+ 	int* indices=xNew<int>(gsize);
+ 	IssmDouble* values=xNewZeroInit<IssmDouble>(gsize);
+@@ -3831,10 +3754,9 @@
+ 	for(int i=0;i<gsize;i++){
+ 
+ 		indices[i]=i; 
+-		if(compute_G_elastic | compute_G_rigid){
++		if(computeelastic | computerigid){
++	
+ 			IssmDouble alpha;
+-			IssmDouble Pn1,Pn2,Pn; //first two legendre polynomials
+-			IssmDouble cosalpha;
+ 			IssmDouble delPhi,delLambda;
+ 
+ 			/*Compute alpha angle between centroid and current vertex : */
+@@ -3842,27 +3764,14 @@
+ 
+ 			delPhi=fabs(lati-late); delLambda=fabs(longi-longe);
+ 			alpha=2.*asin(sqrt(pow(sin(delPhi/2),2.0)+cos(lati)*cos(late)*pow(sin(delLambda/2),2)));
+-			cosalpha=cos(alpha); //compute this to speed up the elastic component.
+ 
+ 			//Rigid earth gravitational perturbation:
+-			if(compute_G_rigid)G_rigid[i]=1.0/2.0/sin(alpha/2.0);
++			if(computerigid)G_rigid[i]=1.0/2.0/sin(alpha/2.0);
+ 
+ 			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
+-			if(compute_G_elastic){
+-				G_elastic[i] = (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-				if(legendre_precompute){
+-					int index=reCast<int,IssmDouble>((M-1)*(1-alpha/PI));
+-					for(int n=0;n<nl;n++) G_elastic[i] += deltalove[n]*legendre_coefficients[index*nl+n];
+-				}
+-				else{
+-					for(int n=0;n<nl;n++){
+-						if(n==0)Pn=1;
+-						else if(n==1)Pn=cosalpha;
+-						else Pn= ( (2*n-1)*cosalpha*Pn1 - (n-1)*Pn2 ) /n;
+-						Pn2=Pn1; Pn1=Pn;
+-						G_elastic[i] += deltalove[n]*Pn;
+-					}
+-				}
++			if(computeelastic){
++				int index=reCast<int,IssmDouble>(alpha/PI*(M-1));
++				G_elastic[i] += G_elastic_precomputed[index];
+ 			}
+ 		}
+ 
+@@ -3877,20 +3786,9 @@
+ 	xDelete<IssmDouble>(values);
+ 	xDelete<int>(indices);
+ 
+-	/*Save G_rigid and G_elastic if computed:*/
+-	if(store_green_functions){
+-		if(G_rigid)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGRigidEnum,G_rigid,gsize));
+-		if(G_elastic)this->inputs->AddInput(new DoubleArrayInput(SealevelriseGElasticEnum,G_elastic,gsize));
+-	}
+-
+ 	/*Free ressources:*/
+-	if(compute_G_elastic){
+-		xDelete<IssmDouble>(love_h);
+-		xDelete<IssmDouble>(love_k);
+-		xDelete<IssmDouble>(deltalove);
+-		xDelete<IssmDouble>(G_elastic);
+-	}
+-	if(compute_G_rigid) xDelete<IssmDouble>(G_rigid);
++	if(computeelastic) xDelete<IssmDouble>(G_elastic);
++	if(computerigid) xDelete<IssmDouble>(G_rigid);
+ 
+ 	return;
+ }
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20027)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20028)
+@@ -14,8 +14,6 @@
+ 		rigid         = 0;
+ 		elastic         = 0;
+ 		eustatic         = 0;
+-		legendre_precompute = 0;
+-		store_green_functions = 0;
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -40,12 +38,6 @@
+ 		self.elastic=1;
+ 		self.eustatic=1;
+ 		
+-		%legendre coefficients: 
+-		self.legendre_precompute = 1;
+-
+-		%optimization: 
+-		self.store_green_functions=1;
+-
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+@@ -56,7 +48,6 @@
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
+-			md = checkfield(md,'fieldname','slr.store_green_functions','value',[0 1]);
+ 
+ 			%check that love numbers are provided at the same level of accuracy: 
+ 			if (size(self.love_h,1) ~= size(self.love_k,1)),
+@@ -76,8 +67,6 @@
+ 			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
+-			fielddisplay(self,'store_green_functions','store green functions (default 1) to speed up solutoin (though memory intense)');
+-			fielddisplay(self,'legendre_precompute','precompute legendre coefficients? (default is 0)');
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -90,8 +79,6 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','store_green_functions','format','Boolean');
+-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','legendre_precompute','format','Boolean');
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -101,10 +88,8 @@
+ 			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+ 			writejs1Darray(fid,[modelname '.srl.love_h'],self.love_h);
+ 			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
+-			writejsdouble(fid,[modelname '.slr.store_green_functions'],self.store_green_functions);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
+-			writejsdouble(fid,[modelname '.slr.legendre_precompute'],self.legendre_precompute);
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m	(revision 20027)
++++ ../trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m	(revision 20028)
+@@ -1,11 +0,0 @@
+-function macro=SealevelriseLegendrePrecomputeEnum()
+-%SEALEVELRISELEGENDREPRECOMPUTEENUM - Enum of SealevelriseLegendrePrecompute
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SealevelriseLegendrePrecomputeEnum()
+-
+-macro=StringToEnum('SealevelriseLegendrePrecompute');
+Index: ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m	(revision 20027)
++++ ../trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m	(revision 20028)
+@@ -1,11 +0,0 @@
+-function macro=SealevelriseGRigidEnum()
+-%SEALEVELRISEGRIGIDENUM - Enum of SealevelriseGRigid
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SealevelriseGRigidEnum()
+-
+-macro=StringToEnum('SealevelriseGRigid');
+Index: ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m	(revision 20027)
++++ ../trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m	(revision 20028)
+@@ -1,11 +0,0 @@
+-function macro=SealevelriseStoreGreenFunctionsEnum()
+-%SEALEVELRISESTOREGREENFUNCTIONSENUM - Enum of SealevelriseStoreGreenFunctions
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SealevelriseStoreGreenFunctionsEnum()
+-
+-macro=StringToEnum('SealevelriseStoreGreenFunctions');
+Index: ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m	(revision 20027)
++++ ../trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m	(revision 20028)
+@@ -1,11 +0,0 @@
+-function macro=SealevelriseLegendreCoefficientsEnum()
+-%SEALEVELRISELEGENDRECOEFFICIENTSENUM - Enum of SealevelriseLegendreCoefficients
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SealevelriseLegendreCoefficientsEnum()
+-
+-macro=StringToEnum('SealevelriseLegendreCoefficients');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20027)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20028)
+@@ -985,9 +985,5 @@
+ function SealevelriseRigidEnum(){ return 981;}
+ function SealevelriseElasticEnum(){ return 982;}
+ function SealevelriseEustaticEnum(){ return 983;}
+-function SealevelriseLegendrePrecomputeEnum(){ return 984;}
+-function SealevelriseLegendreCoefficientsEnum(){ return 985;}
+-function SealevelriseGRigidEnum(){ return 986;}
+-function SealevelriseGElasticEnum(){ return 987;}
+-function SealevelriseStoreGreenFunctionsEnum(){ return 988;}
+-function MaximumNumberOfDefinitionsEnum(){ return 989;}
++function SealevelriseGElasticEnum(){ return 984;}
++function MaximumNumberOfDefinitionsEnum(){ return 985;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20027)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20028)
+@@ -992,9 +992,5 @@
+ def SealevelriseRigidEnum(): return StringToEnum("SealevelriseRigid")[0]
+ def SealevelriseElasticEnum(): return StringToEnum("SealevelriseElastic")[0]
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+-def SealevelriseLegendrePrecomputeEnum(): return StringToEnum("SealevelriseLegendrePrecompute")[0]
+-def SealevelriseLegendreCoefficientsEnum(): return StringToEnum("SealevelriseLegendreCoefficients")[0]
+-def SealevelriseGRigidEnum(): return StringToEnum("SealevelriseGRigid")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
+-def SealevelriseStoreGreenFunctionsEnum(): return StringToEnum("SealevelriseStoreGreenFunctions")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20028-20029.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20028-20029.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20028-20029.diff	(revision 20498)
@@ -0,0 +1,95 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20028)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20029)
+@@ -42,6 +42,7 @@
+ 	IssmDouble* love_h=NULL;
+ 	IssmDouble* love_k=NULL;
+ 	
++	bool elastic=false;
+ 	IssmDouble* G_elastic = NULL;
+ 	int         M;
+ 
+@@ -53,44 +54,51 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
+ 
+-	/*love numbers: */
+-	iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
+-	iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
++	iomodel->FetchData(&elastic,SealevelriseElasticEnum);
++	if(elastic){
+ 
+-	/*compute elastic green function for a range of angles*/
+-	const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
+-	G_elastic=xNew<IssmDouble>(M);
+-	
+-	/*compute combined legendre + love number (elastic green function:*/
+-	for(int i=0;i<M;i++){ //watch out the <=
+-		IssmDouble alpha,x;
+-		alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+-		
+-		G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-		for (int n=0;n<nl;n++) {
+-			IssmDouble Pn,Pn1,Pn2;
+-			IssmDouble deltalove;
+-			
+-			deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++		/*love numbers: */
++		iomodel->FetchData(&love_h,&nl,NULL,SealevelriseLoveHEnum);
++		iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+ 
+-			if(n==0)Pn=1;
+-			else if(n==1)Pn=cos(alpha);
+-			else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
+-			Pn2=Pn1; Pn1=Pn;
++		/*compute elastic green function for a range of angles*/
++		const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
++		G_elastic=xNew<IssmDouble>(M);
+ 
+-			G_elastic[i] += deltalove*Pn;
++		/*compute combined legendre + love number (elastic green function:*/
++		for(int i=0;i<M;i++){ //watch out the <=
++			IssmDouble alpha,x;
++			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
++
++			G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++			for (int n=0;n<nl;n++) {
++				IssmDouble Pn,Pn1,Pn2;
++				IssmDouble deltalove;
++
++				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++
++				if(n==0)Pn=1;
++				else if(n==1)Pn=cos(alpha);
++				else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
++				Pn2=Pn1; Pn1=Pn;
++
++				G_elastic[i] += deltalove*Pn;
++			}
+ 		}
+-	}
+-	parameters->AddObject(new DoubleVecParam(SealevelriseGElasticEnum,G_elastic,M));
+ 
+-	/*free ressources:*/
+-	xDelete<IssmDouble>(G_elastic);
++		/*Avoid singularity at 0: */
++		G_elastic[0]=G_elastic[1];
++		parameters->AddObject(new DoubleVecParam(SealevelriseGElasticEnum,G_elastic,M));
+ 
+-	/*free ressources: */
+-	xDelete<IssmDouble>(love_h);
+-	xDelete<IssmDouble>(love_k);
+-	xDelete<IssmDouble>(G_elastic);
++		/*free ressources:*/
++		xDelete<IssmDouble>(G_elastic);
+ 
++		/*free ressources: */
++		xDelete<IssmDouble>(love_h);
++		xDelete<IssmDouble>(love_k);
++		xDelete<IssmDouble>(G_elastic);
++	}
++
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20029-20030.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20029-20030.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20029-20030.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20029)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20030)
+@@ -62,7 +62,7 @@
+ 		iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+ 
+ 		/*compute elastic green function for a range of angles*/
+-		const IssmDouble degacc=.01; M=reCast<int>(180/degacc+1);
++		IssmDouble degacc=.01; M=reCast<int,IssmDouble>(180./degacc+1.);
+ 		G_elastic=xNew<IssmDouble>(M);
+ 
+ 		/*compute combined legendre + love number (elastic green function:*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20030-20031.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20030-20031.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20030-20031.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20030)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20031)
+@@ -139,7 +139,7 @@
+ #include "../MemOps/MemOps.h"
+ #include "./recast.h"
+ 
+-double *p_polynomial_value ( int m, int n, IssmDouble* x){
++IssmDouble* p_polynomial_value ( int m, int n, IssmDouble* x){
+ 
+ 	/******************************************************************************{{{/
+ 	Purpose:
+@@ -240,13 +240,12 @@
+ 					   polynomials of order 0 through N.
+ 	}}}*/
+ 	
+-	int i;
++	int i,j;
+ 	int j;
+-	IssmDouble* v=NULL;
+ 
+-	if ( n < 0 ) return NULL;
++	if(n<0) return NULL;
+ 
+-	v = xNew<IssmDouble>(m*(n+1));
++	IssmDouble* v = xNew<IssmDouble>(m*(n+1));
+ 
+ 	for ( i = 0; i < m; i++ ) v[i*(n+1)+0] = 1.0;
+ 	if ( n < 1 ) return v;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20031-20032.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20031-20032.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20031-20032.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20031)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20032)
+@@ -241,7 +241,6 @@
+ 	}}}*/
+ 	
+ 	int i,j;
+-	int j;
+ 
+ 	if(n<0) return NULL;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20032-20033.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20032-20033.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20032-20033.diff	(revision 20498)
@@ -0,0 +1,239 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20032)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20033)
+@@ -44,7 +44,9 @@
+ 	
+ 	bool elastic=false;
+ 	IssmDouble* G_elastic = NULL;
+-	int         M;
++	IssmDouble* G_elastic_local = NULL;
++	int         M,m,lower_row,upper_row;
++	IssmDouble  degacc=.01;
+ 
+ 	/*some constant parameters: */
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
+@@ -62,14 +64,58 @@
+ 		iomodel->FetchData(&love_k,&nl,NULL,SealevelriseLoveKEnum);
+ 
+ 		/*compute elastic green function for a range of angles*/
+-		IssmDouble degacc=.01; M=reCast<int,IssmDouble>(180./degacc+1.);
++		iomodel->FetchData(&degacc,SealevelriseDegaccEnum);
++		M=reCast<int>(180/degacc+1);
+ 		G_elastic=xNew<IssmDouble>(M);
+ 
+ 		/*compute combined legendre + love number (elastic green function:*/
+-		for(int i=0;i<M;i++){ //watch out the <=
++		m=DetermineLocalSize(M,IssmComm::GetComm());
++		GetOwnershipBoundariesFromRange(&lower_row,&upper_row,m,IssmComm::GetComm());
++		G_elastic_local=xNew<IssmDouble>(m);
++
++		for(int i=lower_row;i<upper_row;i++){
+ 			IssmDouble alpha,x;
+ 			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+ 
++			G_elastic_local[i-lower_row]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++			for (int n=0;n<nl;n++) {
++				IssmDouble Pn,Pn1,Pn2;
++				IssmDouble deltalove;
++
++				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++
++				if(n==0)Pn=1;
++				else if(n==1)Pn=cos(alpha);
++				else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
++				Pn2=Pn1; Pn1=Pn;
++
++				G_elastic_local[i-lower_row] += deltalove*Pn;
++			}
++		}
++
++		/*merge G_elastic_local into G_elastic:{{{*/
++		int* recvcounts=xNew<int>(IssmComm::GetSize());
++		int* displs=xNew<int>(IssmComm::GetSize());
++
++		//recvcounts:
++		ISSM_MPI_Allgather(&m,1,ISSM_MPI_INT,recvcounts,1,ISSM_MPI_INT,IssmComm::GetComm());
++
++		/*displs: */
++		ISSM_MPI_Allgather(&lower_row,1,ISSM_MPI_INT,displs,1,ISSM_MPI_INT,IssmComm::GetComm());
++
++		/*All gather:*/
++		ISSM_MPI_Allgatherv(G_elastic_local, m, ISSM_MPI_DOUBLE, G_elastic, recvcounts, displs, ISSM_MPI_DOUBLE,IssmComm::GetComm());
++		/*free ressources: */
++		xDelete<int>(recvcounts);
++		xDelete<int>(displs);
++
++		/*}}}*/
++
++		/*Old code: {{{*/
++		/*for(int i=0;i<M;i++){ 
++			IssmDouble alpha,x;
++			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
++
+ 			G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+ 			for (int n=0;n<nl;n++) {
+ 				IssmDouble Pn,Pn1,Pn2;
+@@ -84,19 +130,18 @@
+ 
+ 				G_elastic[i] += deltalove*Pn;
+ 			}
+-		}
++		}*/ 
++		/*}}}*/
+ 
+ 		/*Avoid singularity at 0: */
+ 		G_elastic[0]=G_elastic[1];
+ 		parameters->AddObject(new DoubleVecParam(SealevelriseGElasticEnum,G_elastic,M));
+ 
+-		/*free ressources:*/
+-		xDelete<IssmDouble>(G_elastic);
+-
+ 		/*free ressources: */
+ 		xDelete<IssmDouble>(love_h);
+ 		xDelete<IssmDouble>(love_k);
+ 		xDelete<IssmDouble>(G_elastic);
++		xDelete<IssmDouble>(G_elastic_local);
+ 	}
+ 
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Numerics/legendre.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20032)
++++ ../trunk-jpl/src/c/shared/Numerics/legendre.cpp	(revision 20033)
+@@ -139,7 +139,7 @@
+ #include "../MemOps/MemOps.h"
+ #include "./recast.h"
+ 
+-IssmDouble* p_polynomial_value ( int m, int n, IssmDouble* x){
++IssmDouble *p_polynomial_value ( int m, int n, IssmDouble* x){
+ 
+ 	/******************************************************************************{{{/
+ 	Purpose:
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20032)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20033)
+@@ -1047,6 +1047,7 @@
+ 	SealevelriseElasticEnum,
+ 	SealevelriseEustaticEnum,
+ 	SealevelriseGElasticEnum,
++	SealevelriseDegaccEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20032)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20033)
+@@ -1001,6 +1001,7 @@
+ 		case SealevelriseElasticEnum : return "SealevelriseElastic";
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
++		case SealevelriseDegaccEnum : return "SealevelriseDegacc";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20032)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20033)
+@@ -1025,6 +1025,7 @@
+ 	      else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
++	      else if (strcmp(name,"SealevelriseDegacc")==0) return SealevelriseDegaccEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20032)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20033)
+@@ -14,6 +14,7 @@
+ 		rigid         = 0;
+ 		elastic         = 0;
+ 		eustatic         = 0;
++		degacc         = 0;
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -37,6 +38,9 @@
+ 		self.rigid=1;
+ 		self.elastic=1;
+ 		self.eustatic=1;
++
++		%numerical discretization accuracy
++		self.degacc=.01;
+ 		
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -48,6 +52,7 @@
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
++			md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10);
+ 
+ 			%check that love numbers are provided at the same level of accuracy: 
+ 			if (size(self.love_h,1) ~= size(self.love_k,1)),
+@@ -67,6 +72,7 @@
+ 			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
++			fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -79,6 +85,7 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -90,6 +97,7 @@
+ 			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
++			writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20032)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20033)
+@@ -986,4 +986,5 @@
+ function SealevelriseElasticEnum(){ return 982;}
+ function SealevelriseEustaticEnum(){ return 983;}
+ function SealevelriseGElasticEnum(){ return 984;}
+-function MaximumNumberOfDefinitionsEnum(){ return 985;}
++function SealevelriseDegaccEnum(){ return 985;}
++function MaximumNumberOfDefinitionsEnum(){ return 986;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseDegaccEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseDegaccEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseDegaccEnum.m	(revision 20033)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseDegaccEnum()
++%SEALEVELRISEDEGACCENUM - Enum of SealevelriseDegacc
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseDegaccEnum()
++
++macro=StringToEnum('SealevelriseDegacc');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20032)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20033)
+@@ -993,4 +993,5 @@
+ def SealevelriseElasticEnum(): return StringToEnum("SealevelriseElastic")[0]
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
++def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20033-20034.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20033-20034.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20033-20034.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20033)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20034)
+@@ -65,7 +65,7 @@
+ 
+ 		/*compute elastic green function for a range of angles*/
+ 		iomodel->FetchData(&degacc,SealevelriseDegaccEnum);
+-		M=reCast<int>(180/degacc+1);
++		M=reCast<int,IssmDouble>(180./degacc+1.);
+ 		G_elastic=xNew<IssmDouble>(M);
+ 
+ 		/*compute combined legendre + love number (elastic green function:*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20034-20035.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20034-20035.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20034-20035.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20034)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20035)
+@@ -15,12 +15,16 @@
+ 	Vector<IssmDouble> *Sg_eustatic    = NULL; 
+ 	bool save_results;
+ 	int configuration_type;
++	int        numoutputs        = 0;
++	char     **requested_outputs = NULL;
+ 
+ 	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
+ 
+ 	/*Recover some parameters: */
+ 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&numoutputs,SealevelriseNumRequestedOutputsEnum);
++	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SealevelriseRequestedOutputsEnum);
+ 
+ 	/*set configuration: */
+ 	femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
+@@ -35,9 +39,13 @@
+ 
+ 	if(save_results){
+ 		if(VerboseSolution()) _printf0_("   saving results\n");
+-		int outputs[1] = {SealevelriseSEnum};
+-		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
++		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
+ 	}
++	
++	/*Free ressources:*/	
++	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
+ 	delete Sg;
+ 	delete Sg_eustatic;
++
++
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20035-20036.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20035-20036.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20035-20036.diff	(revision 20498)
@@ -0,0 +1,196 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20035)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20036)
+@@ -48,6 +48,9 @@
+ 	int         M,m,lower_row,upper_row;
+ 	IssmDouble  degacc=.01;
+ 
++	int     numoutputs;
++	char**  requestedoutputs = NULL;
++
+ 	/*some constant parameters: */
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseAbstolEnum));
+@@ -143,7 +146,14 @@
+ 		xDelete<IssmDouble>(G_elastic);
+ 		xDelete<IssmDouble>(G_elastic_local);
+ 	}
++	
++	/*Requested outputs*/
++	iomodel->FetchData(&requestedoutputs,&numoutputs,SealevelriseRequestedOutputsEnum);
++	parameters->AddObject(new IntParam(SealevelriseNumRequestedOutputsEnum,numoutputs));
++	if(numoutputs)parameters->AddObject(new StringArrayParam(SealevelriseRequestedOutputsEnum,requestedoutputs,numoutputs));
++	iomodel->DeleteData(&requestedoutputs,numoutputs,SealevelriseRequestedOutputsEnum);
+ 
++
+ }/*}}}*/
+ 
+ /*Finite Element Analysis*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20035)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20036)
+@@ -1048,6 +1048,8 @@
+ 	SealevelriseEustaticEnum,
+ 	SealevelriseGElasticEnum,
+ 	SealevelriseDegaccEnum,
++	SealevelriseRequestedOutputsEnum,
++	SealevelriseNumRequestedOutputsEnum,
+ 	/*}}}*/
+ 	MaximumNumberOfDefinitionsEnum
+ };
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20035)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20036)
+@@ -1002,6 +1002,8 @@
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
+ 		case SealevelriseDegaccEnum : return "SealevelriseDegacc";
++		case SealevelriseRequestedOutputsEnum : return "SealevelriseRequestedOutputs";
++		case SealevelriseNumRequestedOutputsEnum : return "SealevelriseNumRequestedOutputs";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+ 		default : return "unknown";
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20035)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20036)
+@@ -1026,6 +1026,8 @@
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseDegacc")==0) return SealevelriseDegaccEnum;
++	      else if (strcmp(name,"SealevelriseRequestedOutputs")==0) return SealevelriseRequestedOutputsEnum;
++	      else if (strcmp(name,"SealevelriseNumRequestedOutputs")==0) return SealevelriseNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+          else stage=10;
+    }
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20035)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20036)
+@@ -15,6 +15,7 @@
+ 		elastic         = 0;
+ 		eustatic         = 0;
+ 		degacc         = 0;
++		requested_outputs      = {};
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -42,6 +43,9 @@
+ 		%numerical discretization accuracy
+ 		self.degacc=.01;
+ 		
++		%output default:
++		self.requested_outputs={'default'};
++		
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+@@ -53,6 +57,7 @@
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
+ 			md = checkfield(md,'fieldname','slr.degacc','size',[1 1],'>=',1e-10);
++			md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1);
+ 
+ 			%check that love numbers are provided at the same level of accuracy: 
+ 			if (size(self.love_h,1) ~= size(self.love_k,1)),
+@@ -60,6 +65,9 @@
+ 			end
+ 
+ 		end % }}}
++		function list=defaultoutputs(self,md) % {{{
++			list = {'SealevelriseS'};
++		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   slr parameters:'));
+ 
+@@ -73,6 +81,7 @@
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
+ 			fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
++			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+@@ -86,6 +95,16 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
++			
++			%process requested outputs
++			outputs = self.requested_outputs;
++			pos  = find(ismember(outputs,'default'));
++			if ~isempty(pos),
++				outputs(pos) = [];                         %remove 'default' from outputs
++				outputs      = [outputs defaultoutputs(self,md)]; %add defaults
++			end
++			WriteData(fid,'data',outputs,'enum',SealevelriseRequestedOutputsEnum,'format','StringArray');
++
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+@@ -98,6 +117,7 @@
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
+ 			writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
++			writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
+ 
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/enum/SealevelriseRequestedOutputsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseRequestedOutputsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseRequestedOutputsEnum.m	(revision 20036)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseRequestedOutputsEnum()
++%SEALEVELRISEREQUESTEDOUTPUTSENUM - Enum of SealevelriseRequestedOutputs
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseRequestedOutputsEnum()
++
++macro=StringToEnum('SealevelriseRequestedOutputs');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20035)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20036)
+@@ -987,4 +987,6 @@
+ function SealevelriseEustaticEnum(){ return 983;}
+ function SealevelriseGElasticEnum(){ return 984;}
+ function SealevelriseDegaccEnum(){ return 985;}
+-function MaximumNumberOfDefinitionsEnum(){ return 986;}
++function SealevelriseRequestedOutputsEnum(){ return 986;}
++function SealevelriseNumRequestedOutputsEnum(){ return 987;}
++function MaximumNumberOfDefinitionsEnum(){ return 988;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseNumRequestedOutputsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseNumRequestedOutputsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseNumRequestedOutputsEnum.m	(revision 20036)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseNumRequestedOutputsEnum()
++%SEALEVELRISENUMREQUESTEDOUTPUTSENUM - Enum of SealevelriseNumRequestedOutputs
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseNumRequestedOutputsEnum()
++
++macro=StringToEnum('SealevelriseNumRequestedOutputs');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20035)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20036)
+@@ -994,4 +994,6 @@
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
+ def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
++def SealevelriseRequestedOutputsEnum(): return StringToEnum("SealevelriseRequestedOutputs")[0]
++def SealevelriseNumRequestedOutputsEnum(): return StringToEnum("SealevelriseNumRequestedOutputs")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20036-20037.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20036-20037.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20036-20037.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20036)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20037)
+@@ -2561,7 +2561,7 @@
+ 	/*figure out if we have the vertex id: */
+ 	found=0;
+ 	for(int i=0;i<NUMVERTICES;i++){
+-		if(index==vertices[i]->Id()){
++		if(index==vertices[i]->Sid()){
+ 			/*Do we have natureofdataenum in our inputs? :*/
+ 			if(data){
+ 				/*ok, we are good. retrieve value of input at vertex :*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20037-20038.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20037-20038.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20037-20038.diff	(revision 20498)
@@ -0,0 +1,753 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20037)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20038)
+@@ -895,6 +895,11 @@
+ 	MassfluxatgateNameEnum,
+ 	MassfluxatgateDefinitionenumEnum,
+ 	MassfluxatgateSegmentsEnum,
++	NodalvalueEnum,
++	NodalvalueNameEnum,
++	NodalvalueDefinitionenumEnum,
++	NodalvalueModelEnumEnum,
++	NodalvalueNodeEnum,
+ 	MisfitNameEnum,
+ 	MisfitDefinitionenumEnum,
+ 	MisfitModelEnumEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20037)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20038)
+@@ -875,6 +875,11 @@
+ 		case MassfluxatgateNameEnum : return "MassfluxatgateName";
+ 		case MassfluxatgateDefinitionenumEnum : return "MassfluxatgateDefinitionenum";
+ 		case MassfluxatgateSegmentsEnum : return "MassfluxatgateSegments";
++		case NodalvalueEnum : return "Nodalvalue";
++		case NodalvalueNameEnum : return "NodalvalueName";
++		case NodalvalueDefinitionenumEnum : return "NodalvalueDefinitionenum";
++		case NodalvalueModelEnumEnum : return "NodalvalueModelEnum";
++		case NodalvalueNodeEnum : return "NodalvalueNode";
+ 		case MisfitNameEnum : return "MisfitName";
+ 		case MisfitDefinitionenumEnum : return "MisfitDefinitionenum";
+ 		case MisfitModelEnumEnum : return "MisfitModelEnum";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20037)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20038)
+@@ -896,6 +896,11 @@
+ 	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
+ 	      else if (strcmp(name,"MassfluxatgateDefinitionenum")==0) return MassfluxatgateDefinitionenumEnum;
+ 	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
++	      else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
++	      else if (strcmp(name,"NodalvalueName")==0) return NodalvalueNameEnum;
++	      else if (strcmp(name,"NodalvalueDefinitionenum")==0) return NodalvalueDefinitionenumEnum;
++	      else if (strcmp(name,"NodalvalueModelEnum")==0) return NodalvalueModelEnumEnum;
++	      else if (strcmp(name,"NodalvalueNode")==0) return NodalvalueNodeEnum;
+ 	      else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;
+ 	      else if (strcmp(name,"MisfitDefinitionenum")==0) return MisfitDefinitionenumEnum;
+ 	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
+@@ -992,15 +997,15 @@
+ 	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
+ 	      else if (strcmp(name,"Seq")==0) return SeqEnum;
+ 	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
+-	      else if (strcmp(name,"Mumps")==0) return MumpsEnum;
++         else stage=9;
++   }
++   if(stage==9){
++	      if (strcmp(name,"Mumps")==0) return MumpsEnum;
+ 	      else if (strcmp(name,"Gsl")==0) return GslEnum;
+ 	      else if (strcmp(name,"Option")==0) return OptionEnum;
+ 	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
+ 	      else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
+-         else stage=9;
+-   }
+-   if(stage==9){
+-	      if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
++	      else if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
+ 	      else if (strcmp(name,"Cuffey")==0) return CuffeyEnum;
+ 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
+ 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+Index: ../trunk-jpl/src/c/modules/modules.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/modules.h	(revision 20037)
++++ ../trunk-jpl/src/c/modules/modules.h	(revision 20038)
+@@ -20,6 +20,7 @@
+ #include "./CreateNodalConstraintsx/CreateNodalConstraintsx.h"
+ #include "./CreateJacobianMatrixx/CreateJacobianMatrixx.h"
+ #include "./Damagex/Damagex.h"
++#include "./DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h"
+ #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
+ #include "./ExpToLevelSetx/ExpToLevelSetx.h"
+ #include "./ElementConnectivityx/ElementConnectivityx.h"
+Index: ../trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 20037)
++++ ../trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp	(revision 20038)
+@@ -11,13 +11,16 @@
+ 
+ 	IssmDouble value;
+ 	int        index;
+-	int        found,sumfound,cpu_found;
++	int        found,sumfound,cpu_found,cpu;
+ 
+ 	/*retrieve element we are interested in: */
+ 	parameters->FindParam(&index,IndexEnum);
+ 
+ 	/*This is the vertex id for which we want to collect the data. Go through elements, and for each 
+ 	 *element, figure out  if they hold the vertex, and the data. If so, return it: */
++	cpu_found=-1;
++	found=0;
++	
+ 	for(int i=0;i<elements->Size();i++){
+ 		Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
+ 		found=element->NodalValue(&value,index,natureofdataenum);
+@@ -29,11 +32,11 @@
+ 
+ 	/*Broadcast whether we found the element: */
+ 	ISSM_MPI_Allreduce(&found,&sumfound,1,ISSM_MPI_INT,ISSM_MPI_SUM,IssmComm::GetComm());
+-	if(!sumfound)_error_("could not find element with vertex with id" << index << " to compute nodal value " << EnumToStringx(natureofdataenum));
++	if(!sumfound)_error_("could not find element with vertex with id " << index << " to compute nodal value " << EnumToStringx(natureofdataenum));
+ 
+ 	/*Broadcast and plug into response: */
+-	ISSM_MPI_Allreduce ( &cpu_found,&cpu_found,1,ISSM_MPI_INT,ISSM_MPI_MAX,IssmComm::GetComm());
+-	ISSM_MPI_Bcast(&value,1,ISSM_MPI_DOUBLE,cpu_found,IssmComm::GetComm()); 
++	ISSM_MPI_Allreduce ( &cpu_found,&cpu,1,ISSM_MPI_INT,ISSM_MPI_MAX,IssmComm::GetComm());
++	ISSM_MPI_Bcast(&value,1,ISSM_MPI_DOUBLE,cpu,IssmComm::GetComm()); 
+ 
+ 	*pnodalvalue=value;
+ }
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp	(revision 20037)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp	(revision 20038)
+@@ -122,6 +122,40 @@
+ 				xDelete<int>(misfit_weights_enum_s);
+ 				/*}}}*/
+ 			}
++			else if (output_definition_enums[i]==NodalvalueEnum){
++				/*Deal with nodal values: {{{*/
++				
++				/*nodal value variables: */
++				int          numnodalvalues;
++				char**       nodalvalue_name_s             = NULL;    
++				int*         nodalvalue_definitionenums_s             = NULL;    
++				int*         nodalvalue_model_enum_s        = NULL;
++				int*         nodalvalue_node_s = NULL;
++
++				/*Fetch name, model_enum, etc ... (see src/m/classes/nodalvalue.m): */
++				iomodel->FetchMultipleData(&nodalvalue_name_s,&numnodalvalues,NodalvalueNameEnum);
++				iomodel->FetchMultipleData(&nodalvalue_definitionenums_s,&numnodalvalues,NodalvalueDefinitionenumEnum);
++				iomodel->FetchMultipleData(&nodalvalue_model_enum_s,&numnodalvalues,NodalvalueModelEnumEnum);
++				iomodel->FetchMultipleData(&nodalvalue_node_s,&numnodalvalues,NodalvalueNodeEnum);
++
++				for(j=0;j<numnodalvalues;j++){
++
++					/*First create a nodalvalue object for that specific enum (nodalvalue_model_enum_s[j]):*/
++					output_definitions->AddObject(new Nodalvalue(nodalvalue_name_s[j],nodalvalue_definitionenums_s[j],nodalvalue_model_enum_s[j],nodalvalue_node_s[j]-1)); //-1 because matlab to c indexing.
++				}
++					
++				/*Free ressources:*/
++				for(j=0;j<numnodalvalues;j++){
++					char* string=NULL;
++					IssmDouble* matrix = NULL;
++					string = nodalvalue_name_s[j];    xDelete<char>(string);
++				}
++				xDelete<char*>(nodalvalue_name_s);
++				xDelete<int>(nodalvalue_model_enum_s);
++				xDelete<int>(nodalvalue_definitionenums_s);
++				xDelete<int>(nodalvalue_node_s);
++				/*}}}*/
++			}
+ 			else if (output_definition_enums[i]==MassconEnum){
+ 				/*Deal with masscons: {{{*/
+ 				
+Index: ../trunk-jpl/src/c/classes/classes.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/classes.h	(revision 20037)
++++ ../trunk-jpl/src/c/classes/classes.h	(revision 20038)
+@@ -18,6 +18,7 @@
+ #include "./Segment.h"
+ #include "./Massfluxatgate.h"
+ #include "./Misfit.h"
++#include "./Nodalvalue.h"
+ #include "./Masscon.h"
+ #include "./Massconaxpby.h"
+ 
+Index: ../trunk-jpl/src/c/classes/Nodalvalue.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Nodalvalue.h	(revision 0)
++++ ../trunk-jpl/src/c/classes/Nodalvalue.h	(revision 20038)
+@@ -0,0 +1,117 @@
++/*!\file Nodalvalue.h
++ * \brief: header file for Nodalvalue object
++ */
++
++#ifndef _NODALVALUE_H_
++#define _NODALVALUE_H_
++
++/*Headers:*/
++/*{{{*/
++#include "./Definition.h"
++#include "../datastructures/datastructures.h"
++#include "./Elements/Element.h"
++#include "./Elements/Elements.h"
++#include "./FemModel.h"
++#include "../modules/SurfaceAreax/SurfaceAreax.h"
++#include "../classes/Params/Parameters.h"
++#include "../classes/Inputs/Input.h"
++#include "../classes/gauss/Gauss.h"
++/*}}}*/
++
++void NodalValuex( IssmDouble* pnodalvalue, int natureofdataenum,Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters);
++IssmDouble OutputDefinitionsResponsex(FemModel* femmodel,int output_enum);
++
++class Nodalvalue: public Object, public Definition{
++
++	public: 
++
++		int         definitionenum;
++		char*       name;
++		int         model_enum;
++		int         node;
++		
++		/*Nodalvalue constructors, destructors :*/
++		Nodalvalue(){/*{{{*/
++
++			this->definitionenum = -1;
++			this->name = NULL;
++			this->model_enum = UNDEF;
++			this->node = -1;
++
++		}
++		/*}}}*/
++		Nodalvalue(char* in_name, int in_definitionenum, int in_model_enum, int in_node){/*{{{*/
++
++			this->definitionenum=in_definitionenum;
++			this->name   = xNew<char>(strlen(in_name)+1);
++			xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
++
++			this->model_enum=in_model_enum;
++			this->node=in_node;
++		}
++		/*}}}*/
++		~Nodalvalue(){/*{{{*/
++			if(this->name)xDelete(this->name);
++		}
++		/*}}}*/
++		/*Object virtual function resolutoin: */
++		void Echo(void){/*{{{*/
++			_printf_(" Nodalvalue: " << name << " " << this->definitionenum << "\n");
++			_printf_("    model_enum: " << model_enum << " " << EnumToStringx(model_enum) << "\n");
++			_printf_("    node: " << node << "\n");
++		}
++		/*}}}*/
++		void DeepEcho(void){/*{{{*/
++			this->Echo();
++		}
++		/*}}}*/
++		int Id(void){/*{{{*/
++			return -1;
++		}
++		/*}}}*/
++		int ObjectEnum(void){/*{{{*/
++			return NodalvalueEnum;
++		}
++		/*}}}*/
++		Object* copy() {/*{{{*/
++			Nodalvalue* mf = new Nodalvalue(this->name,this->definitionenum, this->model_enum,this->node);
++			return (Object*) mf;
++		}
++		/*}}}*/
++		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){/*{{{*/
++			_error_("not implemented yet!"); 
++		} 
++		/*}}}*/
++		/*Definition virtual function resolutoin: */
++		char* Name(){/*{{{*/
++
++			char* name2=xNew<char>(strlen(this->name)+1);
++			xMemCpy(name2,this->name,strlen(this->name)+1);
++
++			return name2;
++		}
++		/*}}}*/
++		int DefinitionEnum(){/*{{{*/
++
++			return this->definitionenum;
++		}
++		/*}}}*/
++		 IssmDouble Response(FemModel* femmodel){/*{{{*/
++			
++			 /*output:*/
++			 IssmDouble value;
++
++			 /*set index, which will be used by the NodalValue module: */
++			 femmodel->parameters->SetParam(node,IndexEnum);
++
++			 /*call Nodalvalue:*/
++			 NodalValuex(&value, model_enum, femmodel->elements, femmodel->nodes, femmodel->vertices, femmodel->loads, 
++					 femmodel->materials, femmodel->parameters);
++
++			 /*done:*/
++			 return value;
++		 }
++		 /*}}}*/
++};
++
++#endif  /* _NODALVALUE_H_ */
+Index: ../trunk-jpl/src/m/plot/applyoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.m	(revision 20037)
++++ ../trunk-jpl/src/m/plot/applyoptions.m	(revision 20038)
+@@ -98,6 +98,11 @@
+ 	basinzoom(options);
+ end
+ 
++%Zoom
++if exist(options,'zoom');
++	zoom(getfieldvalue(options,'zoom',2));
++end
++
+ %ShowBasins
+ if strcmpi(getfieldvalue(options,'showbasins','off'),'on')
+ 	showbasins(options);
+Index: ../trunk-jpl/src/m/classes/nodalvalue.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/nodalvalue.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/nodalvalue.m	(revision 20038)
+@@ -0,0 +1,66 @@
++%NODALVALUE class definition
++%
++%   Usage:
++%      nodalvalue=nodalvalue();
++%      nodalvalue=nodalvalue('name','SealevelriseSNodalValue',...
++%                    'definitionenum',Outputdefinition1Enum, 
++%                    'model_enum',SealevelriseSEnum,...
++%                    'node',1);
++
++classdef nodalvalue
++	properties (SetAccess=public)
++		%nodalvalue
++		name              = '';
++		definitionenum   = NaN; %enum that identifies this output definition uniquely, from Outputdefinition[1-10]Enum
++		model_enum       = NaN; %enum for field that is being retrieved
++		node             = NaN; %for which node are we retrieving the value?
++	end
++	
++	methods
++		function self = nodalvalue(varargin) % {{{
++			if nargin==0,
++				self=setdefaultparameters(self);
++			else
++				%use provided options to change fields
++				options=pairoptions(varargin{:});
++
++				%get name
++				self.name=getfieldvalue(options,'name','');
++				self.definitionenum=getfieldvalue(options,'definitionenum');
++				self.model_enum=getfieldvalue(options,'model_enum');
++				self.node=getfieldvalue(options,'node',NaN);
++
++			end
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++
++			if ~ischar(self.name),
++				error('nodalvalue error message: ''name'' field should be a string!');
++			end
++			md = checkfield(md,'fieldname','self.definitionenum','field',self.definitionenum,'values',[Outputdefinition1Enum:Outputdefinition100Enum]);
++
++			md = checkfield(md,'fieldname','self.node','field',self.node,'values',[1:md.mesh.numberofvertices]);
++
++		end % }}}
++		function md = disp(self) % {{{
++		
++			disp(sprintf('   Nodalvalue:\n'));
++
++			fielddisplay(self,'name','identifier for this nodalvalue response');
++			fielddisplay(self,'definitionenum','enum that identifies this output definition uniquely, from Outputdefinition[1-10]Enum');
++			fielddisplay(self,'model_enum','enum for field that is being retrieved');
++			fielddisplay(self,'node','vertex index at which we retrieve the value');
++
++		end % }}}
++		function md = marshall(self,md,fid) % {{{
++
++		WriteData(fid,'object',self,'fieldname','name','format','String');
++		WriteData(fid,'object',self,'fieldname','definitionenum','format','Integer');
++		WriteData(fid,'object',self,'fieldname','model_enum','format','Integer');
++		WriteData(fid,'object',self,'fieldname','node','format','Integer');
++
++		end % }}}
++	end
++end
+Index: ../trunk-jpl/src/m/enum/NodalvalueEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NodalvalueEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NodalvalueEnum.m	(revision 20038)
+@@ -0,0 +1,11 @@
++function macro=NodalvalueEnum()
++%NODALVALUEENUM - Enum of Nodalvalue
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NodalvalueEnum()
++
++macro=StringToEnum('Nodalvalue');
+Index: ../trunk-jpl/src/m/enum/NodalvalueNodeEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NodalvalueNodeEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NodalvalueNodeEnum.m	(revision 20038)
+@@ -0,0 +1,11 @@
++function macro=NodalvalueNodeEnum()
++%NODALVALUENODEENUM - Enum of NodalvalueNode
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NodalvalueNodeEnum()
++
++macro=StringToEnum('NodalvalueNode');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20037)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20038)
+@@ -860,133 +860,138 @@
+ function MassfluxatgateNameEnum(){ return 856;}
+ function MassfluxatgateDefinitionenumEnum(){ return 857;}
+ function MassfluxatgateSegmentsEnum(){ return 858;}
+-function MisfitNameEnum(){ return 859;}
+-function MisfitDefinitionenumEnum(){ return 860;}
+-function MisfitModelEnum(){ return 861;}
+-function MisfitObservationEnum(){ return 862;}
+-function MisfitObservationEnum(){ return 863;}
+-function MisfitLocalEnum(){ return 864;}
+-function MisfitTimeinterpolationEnum(){ return 865;}
+-function MisfitWeightsEnum(){ return 866;}
+-function MisfitWeightsEnum(){ return 867;}
+-function SurfaceObservationEnum(){ return 868;}
+-function WeightsSurfaceObservationEnum(){ return 869;}
+-function VxObsEnum(){ return 870;}
+-function WeightsVxObsEnum(){ return 871;}
+-function VyObsEnum(){ return 872;}
+-function WeightsVyObsEnum(){ return 873;}
+-function MinVelEnum(){ return 874;}
+-function MaxVelEnum(){ return 875;}
+-function MinVxEnum(){ return 876;}
+-function MaxVxEnum(){ return 877;}
+-function MaxAbsVxEnum(){ return 878;}
+-function MinVyEnum(){ return 879;}
+-function MaxVyEnum(){ return 880;}
+-function MaxAbsVyEnum(){ return 881;}
+-function MinVzEnum(){ return 882;}
+-function MaxVzEnum(){ return 883;}
+-function MaxAbsVzEnum(){ return 884;}
+-function FloatingAreaEnum(){ return 885;}
+-function GroundedAreaEnum(){ return 886;}
+-function IceMassEnum(){ return 887;}
+-function IceVolumeEnum(){ return 888;}
+-function IceVolumeAboveFloatationEnum(){ return 889;}
+-function TotalSmbEnum(){ return 890;}
+-function AbsoluteEnum(){ return 891;}
+-function IncrementalEnum(){ return 892;}
+-function AugmentedLagrangianREnum(){ return 893;}
+-function AugmentedLagrangianRhopEnum(){ return 894;}
+-function AugmentedLagrangianRlambdaEnum(){ return 895;}
+-function AugmentedLagrangianRholambdaEnum(){ return 896;}
+-function AugmentedLagrangianThetaEnum(){ return 897;}
+-function NoneEnum(){ return 898;}
+-function AggressiveMigrationEnum(){ return 899;}
+-function SoftMigrationEnum(){ return 900;}
+-function SubelementMigrationEnum(){ return 901;}
+-function SubelementMigration2Enum(){ return 902;}
+-function ContactEnum(){ return 903;}
+-function GroundingOnlyEnum(){ return 904;}
+-function MaskGroundediceLevelsetEnum(){ return 905;}
+-function GaussSegEnum(){ return 906;}
+-function GaussTriaEnum(){ return 907;}
+-function GaussTetraEnum(){ return 908;}
+-function GaussPentaEnum(){ return 909;}
+-function FSSolverEnum(){ return 910;}
+-function AdjointEnum(){ return 911;}
+-function ColinearEnum(){ return 912;}
+-function ControlSteadyEnum(){ return 913;}
+-function FsetEnum(){ return 914;}
+-function Gradient1Enum(){ return 915;}
+-function Gradient2Enum(){ return 916;}
+-function Gradient3Enum(){ return 917;}
+-function GradientEnum(){ return 918;}
+-function GroundinglineMigrationEnum(){ return 919;}
+-function GsetEnum(){ return 920;}
+-function IndexEnum(){ return 921;}
+-function IndexedEnum(){ return 922;}
+-function IntersectEnum(){ return 923;}
+-function NodalEnum(){ return 924;}
+-function OldGradientEnum(){ return 925;}
+-function OutputBufferPointerEnum(){ return 926;}
+-function OutputBufferSizePointerEnum(){ return 927;}
+-function OutputFilePointerEnum(){ return 928;}
+-function ToolkitsFileNameEnum(){ return 929;}
+-function RootPathEnum(){ return 930;}
+-function OutputFileNameEnum(){ return 931;}
+-function InputFileNameEnum(){ return 932;}
+-function LockFileNameEnum(){ return 933;}
+-function RestartFileNameEnum(){ return 934;}
+-function ToolkitsOptionsAnalysesEnum(){ return 935;}
+-function ToolkitsOptionsStringsEnum(){ return 936;}
+-function QmuErrNameEnum(){ return 937;}
+-function QmuInNameEnum(){ return 938;}
+-function QmuOutNameEnum(){ return 939;}
+-function RegularEnum(){ return 940;}
+-function ScaledEnum(){ return 941;}
+-function SeparateEnum(){ return 942;}
+-function SsetEnum(){ return 943;}
+-function VerboseEnum(){ return 944;}
+-function TriangleInterpEnum(){ return 945;}
+-function BilinearInterpEnum(){ return 946;}
+-function NearestInterpEnum(){ return 947;}
+-function XYEnum(){ return 948;}
+-function XYZEnum(){ return 949;}
+-function DenseEnum(){ return 950;}
+-function MpiDenseEnum(){ return 951;}
+-function MpiSparseEnum(){ return 952;}
+-function SeqEnum(){ return 953;}
+-function MpiEnum(){ return 954;}
+-function MumpsEnum(){ return 955;}
+-function GslEnum(){ return 956;}
+-function OptionEnum(){ return 957;}
+-function GenericOptionEnum(){ return 958;}
+-function OptionCellEnum(){ return 959;}
+-function OptionStructEnum(){ return 960;}
+-function CuffeyEnum(){ return 961;}
+-function PatersonEnum(){ return 962;}
+-function ArrheniusEnum(){ return 963;}
+-function LliboutryDuvalEnum(){ return 964;}
+-function TransientIslevelsetEnum(){ return 965;}
+-function SpcLevelsetEnum(){ return 966;}
+-function ExtrapolationVariableEnum(){ return 967;}
+-function IceMaskNodeActivationEnum(){ return 968;}
+-function LevelsetfunctionSlopeXEnum(){ return 969;}
+-function LevelsetfunctionSlopeYEnum(){ return 970;}
+-function LevelsetfunctionPicardEnum(){ return 971;}
+-function SealevelriseSolutionEnum(){ return 972;}
+-function SealevelriseAnalysisEnum(){ return 973;}
+-function SealevelriseSEnum(){ return 974;}
+-function SealevelriseDeltathicknessEnum(){ return 975;}
+-function SealevelriseMaxiterEnum(){ return 976;}
+-function SealevelriseReltolEnum(){ return 977;}
+-function SealevelriseAbstolEnum(){ return 978;}
+-function SealevelriseLoveHEnum(){ return 979;}
+-function SealevelriseLoveKEnum(){ return 980;}
+-function SealevelriseRigidEnum(){ return 981;}
+-function SealevelriseElasticEnum(){ return 982;}
+-function SealevelriseEustaticEnum(){ return 983;}
+-function SealevelriseGElasticEnum(){ return 984;}
+-function SealevelriseDegaccEnum(){ return 985;}
+-function SealevelriseRequestedOutputsEnum(){ return 986;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 987;}
+-function MaximumNumberOfDefinitionsEnum(){ return 988;}
++function NodalvalueEnum(){ return 859;}
++function NodalvalueNameEnum(){ return 860;}
++function NodalvalueDefinitionenumEnum(){ return 861;}
++function NodalvalueModelEnum(){ return 862;}
++function NodalvalueNodeEnum(){ return 863;}
++function MisfitNameEnum(){ return 864;}
++function MisfitDefinitionenumEnum(){ return 865;}
++function MisfitModelEnum(){ return 866;}
++function MisfitObservationEnum(){ return 867;}
++function MisfitObservationEnum(){ return 868;}
++function MisfitLocalEnum(){ return 869;}
++function MisfitTimeinterpolationEnum(){ return 870;}
++function MisfitWeightsEnum(){ return 871;}
++function MisfitWeightsEnum(){ return 872;}
++function SurfaceObservationEnum(){ return 873;}
++function WeightsSurfaceObservationEnum(){ return 874;}
++function VxObsEnum(){ return 875;}
++function WeightsVxObsEnum(){ return 876;}
++function VyObsEnum(){ return 877;}
++function WeightsVyObsEnum(){ return 878;}
++function MinVelEnum(){ return 879;}
++function MaxVelEnum(){ return 880;}
++function MinVxEnum(){ return 881;}
++function MaxVxEnum(){ return 882;}
++function MaxAbsVxEnum(){ return 883;}
++function MinVyEnum(){ return 884;}
++function MaxVyEnum(){ return 885;}
++function MaxAbsVyEnum(){ return 886;}
++function MinVzEnum(){ return 887;}
++function MaxVzEnum(){ return 888;}
++function MaxAbsVzEnum(){ return 889;}
++function FloatingAreaEnum(){ return 890;}
++function GroundedAreaEnum(){ return 891;}
++function IceMassEnum(){ return 892;}
++function IceVolumeEnum(){ return 893;}
++function IceVolumeAboveFloatationEnum(){ return 894;}
++function TotalSmbEnum(){ return 895;}
++function AbsoluteEnum(){ return 896;}
++function IncrementalEnum(){ return 897;}
++function AugmentedLagrangianREnum(){ return 898;}
++function AugmentedLagrangianRhopEnum(){ return 899;}
++function AugmentedLagrangianRlambdaEnum(){ return 900;}
++function AugmentedLagrangianRholambdaEnum(){ return 901;}
++function AugmentedLagrangianThetaEnum(){ return 902;}
++function NoneEnum(){ return 903;}
++function AggressiveMigrationEnum(){ return 904;}
++function SoftMigrationEnum(){ return 905;}
++function SubelementMigrationEnum(){ return 906;}
++function SubelementMigration2Enum(){ return 907;}
++function ContactEnum(){ return 908;}
++function GroundingOnlyEnum(){ return 909;}
++function MaskGroundediceLevelsetEnum(){ return 910;}
++function GaussSegEnum(){ return 911;}
++function GaussTriaEnum(){ return 912;}
++function GaussTetraEnum(){ return 913;}
++function GaussPentaEnum(){ return 914;}
++function FSSolverEnum(){ return 915;}
++function AdjointEnum(){ return 916;}
++function ColinearEnum(){ return 917;}
++function ControlSteadyEnum(){ return 918;}
++function FsetEnum(){ return 919;}
++function Gradient1Enum(){ return 920;}
++function Gradient2Enum(){ return 921;}
++function Gradient3Enum(){ return 922;}
++function GradientEnum(){ return 923;}
++function GroundinglineMigrationEnum(){ return 924;}
++function GsetEnum(){ return 925;}
++function IndexEnum(){ return 926;}
++function IndexedEnum(){ return 927;}
++function IntersectEnum(){ return 928;}
++function NodalEnum(){ return 929;}
++function OldGradientEnum(){ return 930;}
++function OutputBufferPointerEnum(){ return 931;}
++function OutputBufferSizePointerEnum(){ return 932;}
++function OutputFilePointerEnum(){ return 933;}
++function ToolkitsFileNameEnum(){ return 934;}
++function RootPathEnum(){ return 935;}
++function OutputFileNameEnum(){ return 936;}
++function InputFileNameEnum(){ return 937;}
++function LockFileNameEnum(){ return 938;}
++function RestartFileNameEnum(){ return 939;}
++function ToolkitsOptionsAnalysesEnum(){ return 940;}
++function ToolkitsOptionsStringsEnum(){ return 941;}
++function QmuErrNameEnum(){ return 942;}
++function QmuInNameEnum(){ return 943;}
++function QmuOutNameEnum(){ return 944;}
++function RegularEnum(){ return 945;}
++function ScaledEnum(){ return 946;}
++function SeparateEnum(){ return 947;}
++function SsetEnum(){ return 948;}
++function VerboseEnum(){ return 949;}
++function TriangleInterpEnum(){ return 950;}
++function BilinearInterpEnum(){ return 951;}
++function NearestInterpEnum(){ return 952;}
++function XYEnum(){ return 953;}
++function XYZEnum(){ return 954;}
++function DenseEnum(){ return 955;}
++function MpiDenseEnum(){ return 956;}
++function MpiSparseEnum(){ return 957;}
++function SeqEnum(){ return 958;}
++function MpiEnum(){ return 959;}
++function MumpsEnum(){ return 960;}
++function GslEnum(){ return 961;}
++function OptionEnum(){ return 962;}
++function GenericOptionEnum(){ return 963;}
++function OptionCellEnum(){ return 964;}
++function OptionStructEnum(){ return 965;}
++function CuffeyEnum(){ return 966;}
++function PatersonEnum(){ return 967;}
++function ArrheniusEnum(){ return 968;}
++function LliboutryDuvalEnum(){ return 969;}
++function TransientIslevelsetEnum(){ return 970;}
++function SpcLevelsetEnum(){ return 971;}
++function ExtrapolationVariableEnum(){ return 972;}
++function IceMaskNodeActivationEnum(){ return 973;}
++function LevelsetfunctionSlopeXEnum(){ return 974;}
++function LevelsetfunctionSlopeYEnum(){ return 975;}
++function LevelsetfunctionPicardEnum(){ return 976;}
++function SealevelriseSolutionEnum(){ return 977;}
++function SealevelriseAnalysisEnum(){ return 978;}
++function SealevelriseSEnum(){ return 979;}
++function SealevelriseDeltathicknessEnum(){ return 980;}
++function SealevelriseMaxiterEnum(){ return 981;}
++function SealevelriseReltolEnum(){ return 982;}
++function SealevelriseAbstolEnum(){ return 983;}
++function SealevelriseLoveHEnum(){ return 984;}
++function SealevelriseLoveKEnum(){ return 985;}
++function SealevelriseRigidEnum(){ return 986;}
++function SealevelriseElasticEnum(){ return 987;}
++function SealevelriseEustaticEnum(){ return 988;}
++function SealevelriseGElasticEnum(){ return 989;}
++function SealevelriseDegaccEnum(){ return 990;}
++function SealevelriseRequestedOutputsEnum(){ return 991;}
++function SealevelriseNumRequestedOutputsEnum(){ return 992;}
++function MaximumNumberOfDefinitionsEnum(){ return 993;}
+Index: ../trunk-jpl/src/m/enum/NodalvalueDefinitionenumEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NodalvalueDefinitionenumEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NodalvalueDefinitionenumEnum.m	(revision 20038)
+@@ -0,0 +1,11 @@
++function macro=NodalvalueDefinitionenumEnum()
++%NODALVALUEDEFINITIONENUMENUM - Enum of NodalvalueDefinitionenum
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NodalvalueDefinitionenumEnum()
++
++macro=StringToEnum('NodalvalueDefinitionenum');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20037)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20038)
+@@ -867,6 +867,11 @@
+ def MassfluxatgateNameEnum(): return StringToEnum("MassfluxatgateName")[0]
+ def MassfluxatgateDefinitionenumEnum(): return StringToEnum("MassfluxatgateDefinitionenum")[0]
+ def MassfluxatgateSegmentsEnum(): return StringToEnum("MassfluxatgateSegments")[0]
++def NodalvalueEnum(): return StringToEnum("Nodalvalue")[0]
++def NodalvalueNameEnum(): return StringToEnum("NodalvalueName")[0]
++def NodalvalueDefinitionenumEnum(): return StringToEnum("NodalvalueDefinitionenum")[0]
++def NodalvalueModelEnumEnum(): return StringToEnum("NodalvalueModelEnum")[0]
++def NodalvalueNodeEnum(): return StringToEnum("NodalvalueNode")[0]
+ def MisfitNameEnum(): return StringToEnum("MisfitName")[0]
+ def MisfitDefinitionenumEnum(): return StringToEnum("MisfitDefinitionenum")[0]
+ def MisfitModelEnumEnum(): return StringToEnum("MisfitModelEnum")[0]
+Index: ../trunk-jpl/src/m/enum/NodalvalueModelEnumEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NodalvalueModelEnumEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NodalvalueModelEnumEnum.m	(revision 20038)
+@@ -0,0 +1,11 @@
++function macro=NodalvalueModelEnumEnum()
++%NODALVALUEMODELENUMENUM - Enum of NodalvalueModel
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NodalvalueModelEnumEnum()
++
++macro=StringToEnum('NodalvalueModel');
+Index: ../trunk-jpl/src/m/enum/NodalvalueNameEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NodalvalueNameEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NodalvalueNameEnum.m	(revision 20038)
+@@ -0,0 +1,11 @@
++function macro=NodalvalueNameEnum()
++%NODALVALUENAMEENUM - Enum of NodalvalueName
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NodalvalueNameEnum()
++
++macro=StringToEnum('NodalvalueName');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20038-20039.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20038-20039.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20038-20039.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/modules/modules.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/modules.h	(revision 20038)
++++ ../trunk-jpl/src/c/modules/modules.h	(revision 20039)
+@@ -20,7 +20,6 @@
+ #include "./CreateNodalConstraintsx/CreateNodalConstraintsx.h"
+ #include "./CreateJacobianMatrixx/CreateJacobianMatrixx.h"
+ #include "./Damagex/Damagex.h"
+-#include "./DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h"
+ #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
+ #include "./ExpToLevelSetx/ExpToLevelSetx.h"
+ #include "./ElementConnectivityx/ElementConnectivityx.h"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20039-20040.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20039-20040.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20039-20040.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h	(revision 20039)
++++ ../trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h	(revision 20040)
+@@ -249,8 +249,8 @@
+ 			xDelete<int>(numvalues_forcpu);
+ 
+ 			for(i=0;i<num_procs;i++){
+-				DataSet* buckets=bucketsforcpu[i];
+-				delete buckets;
++				DataSet* bucketsn=bucketsforcpu[i];
++				delete bucketsn;
+ 			}
+ 			xDelete<DataSet*>(bucketsforcpu);
+ 
+@@ -270,6 +270,10 @@
+ 
+ 			xDelete<int>(sendcnts);
+ 			xDelete<int>(displs);
++			
++			/*Get rid of all buckets, as we have already added them to the matrix!: */
++			delete this->buckets;
++			this->buckets=new DataSet();
+ 			/*}}}*/
+ 
+ 		}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20040-20041.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20040-20041.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20040-20041.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20040)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20041)
+@@ -36,14 +36,10 @@
+ 	
+ 	/*Initialize:*/
+ 	Sgi = new Vector<IssmDouble>(gsize);
+-	Sgi->Assemble();
+ 
+ 	/*call the eustatic main module: */
+ 	femmodel->SealevelriseEustatic(Sgi,&eustatic, latitude, longitude, radius); //this computes 
+ 
+-	/*assemble solution vector: */
+-	Sgi->Assemble(); 
+-
+ 	/*we need to average Sgi over the ocean: RHS term  4 in Eq.4 of Farrel and clarke. Only the elements can do that: */
+ 	Sgi_oceanaverage=femmodel->SealevelriseOceanAverage(Sgi);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20041-20042.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20041-20042.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20041-20042.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20041)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20042)
+@@ -70,18 +70,8 @@
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 
+ 			 %now, check cluster.cpuspernode according to processor type
+-			 if (strcmpi(cluster.processor,'har') | strcmpi(cluster.processor,'neh')),
++			 if strcmpi(cluster.processor,'wes'),
+ 				 if cluster.hyperthreading,
+-					 if ((cluster.cpuspernode>16 ) | (cluster.cpuspernode<1)),
+-						 md = checkmessage(md,'cpuspernode should be between 1 and 16 for ''neh'' and ''har'' processors in hyperthreading mode');
+-					 end
+-				 else
+-					 if ((cluster.cpuspernode>8 ) | (cluster.cpuspernode<1)),
+-						 md = checkmessage(md,'cpuspernode should be between 1 and 8 for ''neh'' and ''har'' processors');
+-					 end
+-				 end
+-			 elseif strcmpi(cluster.processor,'wes'),
+-				 if cluster.hyperthreading,
+ 					 if ((cluster.cpuspernode>24 ) | (cluster.cpuspernode<1)),
+ 						 md = checkmessage(md,'cpuspernode should be between 1 and 24 for ''wes'' processors in hyperthreading mode');
+ 					 end
+@@ -100,9 +90,31 @@
+ 						 md = checkmessage(md,'cpuspernode should be between 1 and 20 for ''ivy'' processors');
+ 					 end
+ 				 end
++			 
++			 elseif strcmpi(cluster.processor,'has'),
++				 if cluster.hyperthreading,
++					 if ((cluster.cpuspernode>48 ) | (cluster.cpuspernode<1)),
++						 md = checkmessage(md,'cpuspernode should be between 1 and 48 for ''has'' processors in hyperthreading mode');
++					 end
++				 else
++					 if ((cluster.cpuspernode>24 ) | (cluster.cpuspernode<1)),
++						 md = checkmessage(md,'cpuspernode should be between 1 and 24 for ''has'' processors');
++					 end
++				 end
++			 
++			 elseif strcmpi(cluster.processor,'san'),
++				 if cluster.hyperthreading,
++					 if ((cluster.cpuspernode>32 ) | (cluster.cpuspernode<1)),
++						 md = checkmessage(md,'cpuspernode should be between 1 and 32 for ''san'' processors in hyperthreading mode');
++					 end
++				 else
++					 if ((cluster.cpuspernode>16 ) | (cluster.cpuspernode<1)),
++						 md = checkmessage(md,'cpuspernode should be between 1 and 16 for ''san'' processors');
++					 end
++				 end
+ 
+ 			 else
+-				 md = checkmessage(md,'unknown processor type, should be ''neh'',''wes'' or ''har'' or ''ivy''');
++				 md = checkmessage(md,'unknown processor type, should be ''wes'' or ''has'' or ''ivy'' or ''san''');
+ 			 end
+ 
+ 			 %Miscelaneous
Index: /issm/oecreview/Archive/19101-20495/ISSM-20042-20043.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20042-20043.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20042-20043.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20042)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20043)
+@@ -2308,6 +2308,9 @@
+ 		if(i%100==0)pSgi->Assemble();
+ 	}
+ 	if(IssmComm::GetRank()==0)if(VerboseConvergence())_printf_("\n");
++		
++	/*One last time: */
++	pSgi->Assemble();
+ 
+ 	/*Sum all eustatic components from all cpus:*/
+ 	ISSM_MPI_Reduce (&eustatic_cpu,&eustatic,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
Index: /issm/oecreview/Archive/19101-20495/ISSM-20043-20044.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20043-20044.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20043-20044.diff	(revision 20498)
@@ -0,0 +1,66 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20043)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20044)
+@@ -70,8 +70,29 @@
+ 		iomodel->FetchData(&degacc,SealevelriseDegaccEnum);
+ 		M=reCast<int,IssmDouble>(180./degacc+1.);
+ 		G_elastic=xNew<IssmDouble>(M);
++		
++		/*compute combined legendre + love number (elastic green function:*/
++		#ifdef _HAVE_ADOLC_
++		for(int i=0;i<M;i++){ 
++			IssmDouble alpha,x;
++			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+ 
+-		/*compute combined legendre + love number (elastic green function:*/
++			G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++			for (int n=0;n<nl;n++) {
++				IssmDouble Pn,Pn1,Pn2;
++				IssmDouble deltalove;
++
++				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
++
++				if(n==0)Pn=1;
++				else if(n==1)Pn=cos(alpha);
++				else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
++				Pn2=Pn1; Pn1=Pn;
++
++				G_elastic[i] += deltalove*Pn;
++			}
++		}
++		#else
+ 		m=DetermineLocalSize(M,IssmComm::GetComm());
+ 		GetOwnershipBoundariesFromRange(&lower_row,&upper_row,m,IssmComm::GetComm());
+ 		G_elastic_local=xNew<IssmDouble>(m);
+@@ -113,29 +134,8 @@
+ 		xDelete<int>(displs);
+ 
+ 		/*}}}*/
++		#endif
+ 
+-		/*Old code: {{{*/
+-		/*for(int i=0;i<M;i++){ 
+-			IssmDouble alpha,x;
+-			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+-
+-			G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-			for (int n=0;n<nl;n++) {
+-				IssmDouble Pn,Pn1,Pn2;
+-				IssmDouble deltalove;
+-
+-				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+-
+-				if(n==0)Pn=1;
+-				else if(n==1)Pn=cos(alpha);
+-				else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
+-				Pn2=Pn1; Pn1=Pn;
+-
+-				G_elastic[i] += deltalove*Pn;
+-			}
+-		}*/ 
+-		/*}}}*/
+-
+ 		/*Avoid singularity at 0: */
+ 		G_elastic[0]=G_elastic[1];
+ 		parameters->AddObject(new DoubleVecParam(SealevelriseGElasticEnum,G_elastic,M));
Index: /issm/oecreview/Archive/19101-20495/ISSM-20044-20045.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20044-20045.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20044-20045.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/toolkits.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/toolkits.py	(revision 20044)
++++ ../trunk-jpl/src/m/classes/toolkits.py	(revision 20045)
+@@ -6,6 +6,7 @@
+ from EnumDefinitions import *
+ from checkfield import checkfield
+ from issmgslsolver import issmgslsolver
++from issmmumpssolver import issmmumpssolver
+ 
+ class toolkits(object):
+ 	"""
Index: /issm/oecreview/Archive/19101-20495/ISSM-20045-20046.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20045-20046.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20045-20046.diff	(revision 20498)
@@ -0,0 +1,9 @@
+Index: ../trunk-jpl/src/m/solvers/issmmumpssolver.py
+===================================================================
+--- ../trunk-jpl/src/m/solvers/issmmumpssolver.py	(revision 20045)
++++ ../trunk-jpl/src/m/solvers/issmmumpssolver.py	(revision 20046)
+@@ -1,3 +1,4 @@
++from collections import OrderedDict
+ import pairoptions
+ 
+ def issmmumpssolver(*args):
Index: /issm/oecreview/Archive/19101-20495/ISSM-20046-20047.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20046-20047.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20046-20047.diff	(revision 20498)
@@ -0,0 +1,75 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20046)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20047)
+@@ -375,6 +375,7 @@
+ 	}
+ 
+ 	/*Clean up and return*/
++	xDelete<IssmDouble>(xyz_list);
+ 	delete gauss;
+ 	return divergence;
+ }/*}}}*/
+@@ -1573,9 +1574,10 @@
+ 	int numvertices      = this->GetNumberOfVertices();
+ 	IssmDouble  mantleconductivity,nusselt,dtbg,plumeradius,topplumedepth,bottomplumedepth,plumex,plumey;
+ 	IssmDouble  crustthickness,uppercrustthickness,uppercrustheat,lowercrustheat;
+-	//IssmDouble* base     = xNew<IssmDouble>(numvertices);
+-	//IssmDouble* bed      = xNew<IssmDouble>(numvertices);
++	IssmDouble  crustheat,plumeheat,dt,middleplumedepth,a,e,eprime,A0,lambda,Alambda,dAlambda;
++	IssmDouble  x,y,z,c;
+ 	IssmDouble* values   = xNew<IssmDouble>(numvertices);
++	IssmDouble *xyz_list = NULL;
+ 
+ 	parameters->FindParam(&mantleconductivity,BasalforcingsMantleconductivityEnum);
+ 	parameters->FindParam(&nusselt,BasalforcingsNusseltEnum);
+@@ -1590,15 +1592,28 @@
+ 	parameters->FindParam(&uppercrustheat,BasalforcingsUppercrustheatEnum);
+ 	parameters->FindParam(&lowercrustheat,BasalforcingsLowercrustheatEnum);
+ 
+-	//this->GetInputListOnVertices(base,BaseEnum);
+-	//this->GetInputListOnVertices(bed,BedEnum);
++	this->GetVerticesCoordinates(&xyz_list);
++	c=plumeradius;
++	a=(bottomplumedepth-topplumedepth)/2.;
++	e=pow(a*a-c*c,1./2.)/a;
++	A0=(1-e*e)/(e*e*e)*(1/2*log((1+e)/(1-e))-e);
++	middleplumedepth=-topplumedepth-crustthickness-a;
+ 	for(int i=0;i<numvertices;i++){
+-		values[i]=uppercrustheat*uppercrustthickness+ lowercrustheat*(crustthickness-uppercrustthickness);
++		y=xyz_list[i*3+0]-plumex;
++		z=xyz_list[i*3+1]-plumey;
++		x=(a+topplumedepth+crustthickness);
++		lambda=(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))/2;
++		dAlambda=(-8*a*pow(c,2)*x*(-2*pow(a,2)+2*pow(c,2)+sqrt(2)*sqrt((a-c)*(a+c))*sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))*(pow(a,4)*(pow(y,2)+pow(z,2))+pow(c,4)*(pow(y,2)+pow(z,2))+pow(pow(x,2)+pow(y,2)+pow(z,2),2)*(pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))+pow(c,2)*(pow(x,4)-pow(x,2)*(pow(y,2)+pow(z,2))-(pow(y,2)+pow(z,2))*(2*pow(y,2)+2*pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))+pow(a,2)*(-pow(x,4)+pow(x,2)*(pow(y,2)+pow(z,2))+(pow(y,2)+pow(z,2))*(-2*pow(c,2)+2*(pow(y,2)+pow(z,2))+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))))/(sqrt((a-c)*(a+c))*sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))*pow(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))),3.5)*pow(-(sqrt(2)*sqrt((a-c)*(a+c)))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))),2)*(sqrt(2)*sqrt((a-c)*(a+c))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))));
++		eprime=pow((a*a-plumeradius*plumeradius)/(a*a+lambda),1./2.);
++		Alambda=(1.-e*e)/(e*e*e)*(1./2.*log((1.+eprime)/(1.-eprime))-eprime);
++		dt=dtbg-(nusselt-1.)/(1.+A0*(nusselt-1.))*(Alambda*dtbg+middleplumedepth*dtbg*dAlambda);
++		plumeheat=mantleconductivity*dt;
++		crustheat=uppercrustheat*uppercrustthickness+lowercrustheat*(crustthickness-uppercrustthickness);
++		values[i]=crustheat+plumeheat;
+ 	}
+ 
+ 	this->AddInput(BasalforcingsGeothermalfluxEnum,values,P1Enum);
+-	//xDelete<IssmDouble>(base);
+-	//xDelete<IssmDouble>(bed);
++	xDelete<IssmDouble>(xyz_list);
+ 	xDelete<IssmDouble>(values);
+ 
+ }/*}}}*/
+@@ -2668,6 +2683,7 @@
+ 
+ 	/*Clean up and return*/
+ 	xDelete<IssmDouble>(maxprincipal);
++	xDelete<IssmDouble>(xyz_list);
+ 	delete gauss;
+ }
+ /*}}}*/
+@@ -3097,6 +3113,7 @@
+ 
+ 	/*Clean up and return*/
+ 	xDelete<IssmDouble>(viscousheating);
++	xDelete<IssmDouble>(xyz_list);
+ 	delete gauss;
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20047-20048.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20047-20048.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20047-20048.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/plumebasalforcings.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 20047)
++++ ../trunk-jpl/src/m/classes/plumebasalforcings.m	(revision 20048)
+@@ -56,7 +56,7 @@
+ 			self.dtbg                   = 11/1000.;
+ 			self.plumeradius            = 100000;
+ 			self.topplumedepth          = 10000;
+-			self.bottomplumedepth       = 105000;
++			self.bottomplumedepth       = 1050000;
+ 			self.crustthickness         = 30000;
+ 			self.uppercrustthickness    = 14000;
+ 			self.uppercrustheat         = 1.7*10^-6;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20048-20049.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20048-20049.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20048-20049.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/test/NightlyRun/test342.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test342.m	(revision 20048)
++++ ../trunk-jpl/test/NightlyRun/test342.m	(revision 20049)
+@@ -10,13 +10,16 @@
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'SSA','all');
+ md.timestepping.time_step=0.;
+-md.cluster=generic('name',oshostname(),'np',3);
++md.thermal.requested_outputs={'default','BasalforcingsGeothermalflux'};
++md.cluster=generic('name',oshostname(),'np',1);
++%md.debug.valgrind='true';
+ md=solve(md,ThermalSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={1e-13,1e-8};
++field_names     ={'Temperature','BasalforcingsGroundediceMeltingRate','BasalforcingsGeothermalflux'};
++field_tolerances={1e-13,1e-8,1e-13};
+ field_values={...
+ 	(md.results.ThermalSolution.Temperature),...
+ 	(md.results.ThermalSolution.BasalforcingsGroundediceMeltingRate),...
++	(md.results.ThermalSolution.BasalforcingsGeothermalflux),...
+ 	};
+Index: ../trunk-jpl/test/Archives/Archive342.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20049-20050.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20049-20050.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20049-20050.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20049)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20050)
+@@ -81,10 +81,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=6
++NUMCPUS_INSTALL=10
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=3
++NUMCPUS_RUN=5
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20050-20051.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20050-20051.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20050-20051.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20050)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20051)
+@@ -81,10 +81,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=10
++NUMCPUS_INSTALL=8
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=5
++NUMCPUS_RUN=4
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20051-20052.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20051-20052.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20051-20052.diff	(revision 20498)
@@ -0,0 +1,51 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20051)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20052)
+@@ -81,10 +81,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
++NUMCPUS_INSTALL=10
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=4
++NUMCPUS_RUN=5
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20051)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20052)
+@@ -69,10 +69,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=3
++NUMCPUS_INSTALL=5
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=2
++NUMCPUS_RUN=4
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20051)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20052)
+@@ -79,10 +79,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=3
++NUMCPUS_INSTALL=5
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=2
++NUMCPUS_RUN=3
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20052-20053.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20052-20053.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20052-20053.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20052)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20053)
+@@ -3626,7 +3626,7 @@
+ 
+ 			//Elastic component  (from Eq 17 in Adhikari et al, GMD 2015)
+ 			if(computeelastic){
+-				int index=reCast<int,IssmDouble>(alpha/PI*(M-1));
++				int index=reCast<int,IssmDouble>(alpha/PI*reCast<IssmDouble,int>(M-1));
+ 				G_elastic += G_elastic_precomputed[index];
+ 			}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20053-20054.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20053-20054.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20053-20054.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20053)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20054)
+@@ -72,27 +72,6 @@
+ 		G_elastic=xNew<IssmDouble>(M);
+ 		
+ 		/*compute combined legendre + love number (elastic green function:*/
+-		#ifdef _HAVE_ADOLC_
+-		for(int i=0;i<M;i++){ 
+-			IssmDouble alpha,x;
+-			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+-
+-			G_elastic[i]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
+-			for (int n=0;n<nl;n++) {
+-				IssmDouble Pn,Pn1,Pn2;
+-				IssmDouble deltalove;
+-
+-				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+-
+-				if(n==0)Pn=1;
+-				else if(n==1)Pn=cos(alpha);
+-				else Pn= ( (2*n-1)*cos(alpha)*Pn1 - (n-1)*Pn2 ) /n;
+-				Pn2=Pn1; Pn1=Pn;
+-
+-				G_elastic[i] += deltalove*Pn;
+-			}
+-		}
+-		#else
+ 		m=DetermineLocalSize(M,IssmComm::GetComm());
+ 		GetOwnershipBoundariesFromRange(&lower_row,&upper_row,m,IssmComm::GetComm());
+ 		G_elastic_local=xNew<IssmDouble>(m);
+@@ -102,8 +81,8 @@
+ 			alpha= reCast<IssmDouble>(i)*degacc * PI / 180.0;
+ 
+ 			G_elastic_local[i-lower_row]= (love_k[nl-1]-love_h[nl-1])/2.0/sin(alpha/2.0);
++			IssmDouble Pn,Pn1,Pn2;
+ 			for (int n=0;n<nl;n++) {
+-				IssmDouble Pn,Pn1,Pn2;
+ 				IssmDouble deltalove;
+ 
+ 				deltalove = (love_k[n]-love_k[nl-1]-love_h[n]+love_h[nl-1]);
+@@ -134,7 +113,6 @@
+ 		xDelete<int>(displs);
+ 
+ 		/*}}}*/
+-		#endif
+ 
+ 		/*Avoid singularity at 0: */
+ 		G_elastic[0]=G_elastic[1];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20054-20055.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20054-20055.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20054-20055.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20054)
++++ ../trunk-jpl/jenkins/windows	(revision 20055)
+@@ -68,7 +68,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=4
++NUMCPUS_INSTALL=6
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-20055-20056.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20055-20056.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20055-20056.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20055)
++++ ../trunk-jpl/jenkins/windows	(revision 20056)
+@@ -68,7 +68,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=6
++NUMCPUS_INSTALL=5
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-20056-20057.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20056-20057.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20056-20057.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20056)
++++ ../trunk-jpl/jenkins/windows	(revision 20057)
+@@ -68,7 +68,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=5
++NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-20057-20058.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20057-20058.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20057-20058.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20057)
++++ ../trunk-jpl/jenkins/windows	(revision 20058)
+@@ -68,7 +68,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=4
++NUMCPUS_INSTALL=5
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20057)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20058)
+@@ -308,6 +308,11 @@
+ #}}}
+ fi
+ 
++# This test will allow us to check on the status of the examples.
++if [ $EXAMPLES_TEST -eq 1]; then
++	cd $ISSM_DIR/examples
++fi
++
+ #process logs to be junit compatible
+ #{{{
+ cd $ISSM_DIR/nightlylog/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20058-20059.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20058-20059.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20058-20059.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 20058)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 20059)
+@@ -122,6 +122,10 @@
+ 			if isa(md.calving,'double');
+ 				md.calving=calving();
+ 			end
++			%2016 February 3
++			if isa(md.slr,'double');
++				md.slr=slr();
++			end
+ 		end% }}}
+ 	end
+ 	methods
Index: /issm/oecreview/Archive/19101-20495/ISSM-20059-20060.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20059-20060.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20059-20060.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 0)
++++ ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 20060)
+@@ -0,0 +1,49 @@
++function mask = gmtmaskparallel(lat,long,ncores)
++%GMTMASKPARALLEL- parallel driver for the gmtmask utility
++%
++%   Usage:
++%      mask.ocean = gmtmaskparallel(md.mesh.lat,md.mesh.long,8);
++%
++
++	%First, write our lat,long file for gmt:
++	nv=length(lat);
++
++	%Split: 
++	nnv=1:floor(nv/ncores):nv;
++	nnv(end)=nv+1;
++
++	%For each segment, write all vertices file: 
++	for i=1:length(nnv)-1,
++		dlmwrite(['./all_vertices' num2str(i) '.txt'],[long(nnv(i):nnv(i+1)-1) lat(nnv(i):nnv(i+1)-1) (nnv(i):nnv(i+1)-1)'],'delimiter','\t');
++	end
++
++	if ismac,
++		dyld_library_path_old=getenv('DYLD_LIBRARY_PATH');
++		setenv('DYLD_LIBRARY_PATH',[ issmdir '/externalpackages/curl/install/lib:' issmdir '/externalpackages/hdf5/install/lib:' issmdir '/externalpackages/netcdf/install/lib' ]);
++	end
++
++	%Build xjobs script:
++	fid=fopen('xjobs.script','w');
++	for i=1:length(nnv)-1,
++		fprintf(fid,'gmt gmtselect ./all_vertices%i.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices%i.txt\n',i,i);
++	end
++	fclose(fid);
++
++	%Call xjobs: 
++	system(sprintf('xjobs -j %i -s ./xjobs.script',ncores));
++
++	%reset DYLD_LIBRARY_PATH to what it was: 
++	if ismac,
++		setenv('DYLD_LIBRARY_PATH',dyld_library_path_old);
++	end
++
++	%concatenate: 
++	system('cat oce_vertices*.txt | grep -v Command | awk ''{printf("%s\n",$3);}''> vertices.txt');
++
++	%read the vertices.txt file and flag our mesh vertices on the continent
++	flags=dlmread('./vertices.txt');
++
++	mask=zeros(nv,1);
++	mask(flags)=1;
++	
++	system('rm -rf ./all_vertices*.txt ./oce_vertices*.txt vertices.txt ./gmt.history');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20060-20061.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20060-20061.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20060-20061.diff	(revision 20498)
@@ -0,0 +1,311 @@
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp	(revision 0)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp	(revision 20061)
+@@ -0,0 +1,35 @@
++/*! \file  DistanceToMaskBoundaryx.c
++ */
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./DistanceToMaskBoundaryx.h"
++
++int DistanceToMaskBoundaryx(double** pdistance,double* x, double* y, double* mask, int nods) {
++
++	/*output: */
++	double*  distance;
++
++	/*initialize: */
++	distance=xNew<IssmDouble>(nods);
++
++	/*initialize thread parameters: */
++	DistanceToMaskBoundaryxThreadStruct gate;
++	gate.distance    = distance;
++	gate.x         = x;
++	gate.y         = y;
++	gate.mask         = mask;
++	gate.nods      = nods;
++
++	/*launch the thread manager with DistanceToMaskBoundaryxt as a core: */
++	LaunchThread(DistanceToMaskBoundaryxt,(void*)&gate,_NUMTHREADS_);
++
++	/*Assign output pointers: */
++	*pdistance=distance;
++
++	return 1;
++}
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 0)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20061)
+@@ -0,0 +1,80 @@
++/*!\file:  DistanceToMaskBoundaryxt.cpp
++ * \brief  "thread" core code 
++ */ 
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++#include "./DistanceToMaskBoundaryx.h"
++
++void* DistanceToMaskBoundaryxt(void* vpthread_handle){
++
++	/*gate variables :*/
++	DistanceToMaskBoundaryxThreadStruct *gate        = NULL;
++	pthread_handle             *handle      = NULL;
++	int  i,j,i0,i1;
++
++	/*recover handle and gate: */
++	handle          = (pthread_handle*)vpthread_handle;
++	gate            = (DistanceToMaskBoundaryxThreadStruct*)handle->gate;
++	int my_thread   = handle->id;
++	int num_threads = handle->num;
++
++	/*recover parameters :*/
++	int       nods      = gate->nods;
++	double   *distance    = gate->distance;
++	double   *x         = gate->x;
++	double   *y         = gate->y;
++	double   *mask         = gate->mask;
++
++	/*distribute indices across threads :*/
++	PartitionRange(&i0,&i1,nods,num_threads,my_thread);
++
++	/*Loop through vertices: */
++	for(i=i0;i<i1;i++){
++
++		IssmDouble d0=pow(10,10);
++
++		IssmDouble xi,yi;
++		
++		//recover vertex position: 
++		xi=x[i];  yi=y[i];
++
++		//figure out if we are inside the mask, or outside: 
++		if(mask[i]==1){
++			//we are inside, look for nearest vertex that is outside the mask: 
++			for(j=0;j<nods;j++){
++				if(j==i)continue;
++				if (mask[j]==0){
++					IssmDouble xj,yj,deltaphi,deltalambda,d;
++					xj=x[j]; yj=y[j];
++					/*figure  out the distance to xi,yi in lat,long mode, using the greatest circle distance:*/
++					deltaphi=fabs(xj-xi); deltalambda=fabs(yj-yi);
++					d=2*asin(sqrt(pow(sin(deltaphi/2),2)+cos(xi)*cos(xj)*pow(sin(deltalambda/2),2)));
++					if(d<d0)d0=d;
++				}
++			}
++			distance[i]=d0;
++		}
++		else{
++			//we are outside, look for nearest vertex that is inside the mask: 
++			for(j=0;j<nods;j++){
++				if(j==i)continue;
++				if (mask[j]==1){
++					IssmDouble xj,yj,deltaphi,deltalambda,d;
++					xj=x[j]; yj=y[j];
++					/*figure  out the distance to xi,yi in lat,long mode, using the greatest circle distance:*/
++					deltaphi=fabs(xj-xi); deltalambda=fabs(yj-yi);
++					d=2*asin(sqrt(pow(sin(deltaphi/2),2)+cos(xi)*cos(xj)*pow(sin(deltalambda/2),2)));
++					if(d<d0)d0=d;
++				}
++			}
++			distance[i]=d0;
++		}
++	}
++
++	return NULL;
++}
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h	(revision 0)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h	(revision 20061)
+@@ -0,0 +1,27 @@
++/*
++	DistanceToMaskBoundaryx.h
++*/
++
++#ifndef _DISTANCETOMASKBOUNDARYX_H
++#define _DISTANCETOMASKBOUNDARYX_H
++
++#include "../../shared/shared.h"
++#include "../../classes/classes.h"
++
++/*threading: */
++typedef struct{
++
++	int       nods;
++	double   *distance;
++	double   *x;
++	double   *y;
++	double   *mask;
++
++} DistanceToMaskBoundaryxThreadStruct;
++
++/* local prototypes: */
++int DistanceToMaskBoundaryx(double** pdistance,double* x, double* y, double* mask, int nods);
++
++void* DistanceToMaskBoundaryxt(void* vDistanceToMaskBoundaryxThreadStruct);
++
++#endif /* _DISTANCETOMASKBOUNDARYX_H */
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20060)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20061)
+@@ -549,6 +549,8 @@
+ 			./modules/ExpToLevelSetx/ExpToLevelSetx.cpp\
+ 			./modules/ExpToLevelSetx/ExpToLevelSetxt.cpp\
+ 			./modules/ContourToNodesx/ContourToNodesx.cpp\
++			./modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp\
++			./modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp\
+ 			./modules/NodeConnectivityx/NodeConnectivityx.cpp\
+ 			./modules/ElementConnectivityx/ElementConnectivityx.cpp\
+ 			./modules/PropagateFlagsFromConnectivityx/PropagateFlagsFromConnectivityx.cpp
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20060)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20061)
+@@ -41,6 +41,7 @@
+ 						 BamgTriangulate.la\
+ 						 ContourToMesh.la\
+ 						 ContourToNodes.la\
++						 DistanceToMaskBoundary.la\
+ 						 ElementConnectivity.la\
+ 						 EnumToString.la\
+ 						 ExpSimplify.la\
+@@ -160,6 +161,9 @@
+ ContourToNodes_la_SOURCES = ../ContourToNodes/ContourToNodes.cpp
+ ContourToNodes_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+ 
++DistanceToMaskBoundary_la_SOURCES = ../DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
++DistanceToMaskBoundary_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
++
+ ElementConnectivity_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
+ ElementConnectivity_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+ 
+Index: ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.h
+===================================================================
+--- ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.h	(revision 0)
++++ ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.h	(revision 20061)
+@@ -0,0 +1,54 @@
++/*
++	DistanceToMaskBoundary.h
++*/
++
++#ifndef _DISTANCETOMASKBOUNDARY_H
++#define _DISTANCETOMASKBOUNDARY_H
++
++#ifdef HAVE_CONFIG_H
++	#include <config.h>
++#else
++	#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
++#endif
++
++/*For python modules: needs to come before header files inclusion*/
++#ifdef _HAVE_PYTHON_
++#define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol
++#endif
++
++#include "../bindings.h"
++#include "../../c/main/globals.h"
++#include "../../c/toolkits/toolkits.h"
++#include "../../c/modules/modules.h"
++#include "../../c/shared/shared.h"
++#include "../../c/shared/io/io.h"
++#include "../../c/shared/Enum/Enum.h"
++
++#undef __FUNCT__ 
++#define __FUNCT__  "DistanceToMaskBoundary"
++
++#ifdef _HAVE_MATLAB_MODULES_
++/* serial input macros: */
++#define X            prhs[0]
++#define Y            prhs[1]
++#define MASK         prhs[2]
++/* serial output macros: */
++#define DISTANCE (mxArray**)&plhs[0]
++#endif
++
++#ifdef _HAVE_PYTHON_MODULES_
++/* serial input macros: */
++#define X            PyTuple_GetItem(args,0)
++#define Y            PyTuple_GetItem(args,1)
++#define MASK            PyTuple_GetItem(args,2)
++/* serial output macros: */
++#define DISTANCE output,0
++#endif
++
++/* serial arg counts: */
++#undef NLHS
++#define NLHS  1
++#undef NRHS
++#define NRHS  3
++
++#endif  /* _DISTANCETOMASKBOUNDARY_H*/
+Index: ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 0)
++++ ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20061)
+@@ -0,0 +1,55 @@
++/*\file DistanceToMaskBoundary.c
++ *\brief: compute distance from any point in a mesh to a mask boundary
++ */
++
++#include "./DistanceToMaskBoundary.h"
++
++void DistanceToMaskBoundaryUsage(void){/*{{{*/
++	_printf0_("DISTANCETOMASKBOUNDARYUSAGE - compute distance from any point in a mesh to a mask boundary\n");
++	_printf0_("\n");
++	_printf0_("   This function is a multi-threaded mex file\n");
++	_printf0_("\n");
++	_printf0_("   Usage:\n");
++	_printf0_("      [distance]=DistanceToMaskBoundary(x,y,mask)\n");
++	_printf0_("\n");
++	_printf0_("      x,y,mask: mesh vertices with corresponding mask values. \n");
++	_printf0_("      distance: distance from x,y to the mask transition between 0 and 1\n");
++	_printf0_("\n");
++}/*}}}*/
++
++WRAPPER(DistanceToMaskBoundary){
++
++	/*input datasets: */
++	double* x=NULL;
++	double* y=NULL;
++	double* mask=NULL;
++	int     nods;
++
++	/* output datasets: */
++	double* distance=NULL;
++
++	/*Boot module: */
++	MODULEBOOT();
++
++	/*checks on arguments on the matlab side: */
++	#ifdef _HAVE_MATLAB_MODULES_
++	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&DistanceToMaskBoundaryUsage);
++	#endif
++
++	/*Input datasets: */
++	FetchData(&x,&nods,NULL,X);
++	FetchData(&y,NULL,NULL,Y);
++	FetchData(&mask,NULL,NULL,MASK);
++
++	/*Call core of computation: */
++	DistanceToMaskBoundaryx(&distance,x,y,mask,nods);
++
++	/*Write results: */
++	WriteData(DISTANCE,distance,nods);
++
++	/*Free ressources: */
++	//let matlab do this.
++
++	/*end module: */
++	MODULEEND();
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20061-20062.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20061-20062.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20061-20062.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/modules/modules.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/modules.h	(revision 20061)
++++ ../trunk-jpl/src/c/modules/modules.h	(revision 20062)
+@@ -21,6 +21,7 @@
+ #include "./CreateJacobianMatrixx/CreateJacobianMatrixx.h"
+ #include "./Damagex/Damagex.h"
+ #include "./DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.h"
++#include "./DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h"
+ #include "./ExpToLevelSetx/ExpToLevelSetx.h"
+ #include "./ElementConnectivityx/ElementConnectivityx.h"
+ #include "./GeothermalFluxx/GeothermalFluxx.h"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20062-20063.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20062-20063.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20062-20063.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20062)
++++ ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20063)
+@@ -3,6 +3,7 @@
+  */
+ 
+ #include "./DistanceToMaskBoundary.h"
++#include "../../c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h"
+ 
+ void DistanceToMaskBoundaryUsage(void){/*{{{*/
+ 	_printf0_("DISTANCETOMASKBOUNDARYUSAGE - compute distance from any point in a mesh to a mask boundary\n");
Index: /issm/oecreview/Archive/19101-20495/ISSM-20063-20064.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20063-20064.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20063-20064.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20063)
++++ ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20064)
+@@ -3,7 +3,6 @@
+  */
+ 
+ #include "./DistanceToMaskBoundary.h"
+-#include "../../c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h"
+ 
+ void DistanceToMaskBoundaryUsage(void){/*{{{*/
+ 	_printf0_("DISTANCETOMASKBOUNDARYUSAGE - compute distance from any point in a mesh to a mask boundary\n");
Index: /issm/oecreview/Archive/19101-20495/ISSM-20064-20065.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20064-20065.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20064-20065.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/c/analyses/Analysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/Analysis.h	(revision 20064)
++++ ../trunk-jpl/src/c/analyses/Analysis.h	(revision 20065)
+@@ -6,6 +6,14 @@
+ #define _ANALYSIS_H_
+ 
+ #include "../toolkits/objects/toolkitobjects.h"
++
++// Looks like AD runs without AMPI are missing commmpi.h
++// Conditionally including the header
++
++#if !defined(_HAVE_MPI_) && !defined(_HAVE_PETSC_MPI_)
++#include "../toolkits/mpi/commops/commops.h"
++#endif
++
+ class Parameters;
+ class IoModel;
+ class Elements;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20065-20066.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20065-20066.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20065-20066.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp	(revision 20065)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp	(revision 20066)
+@@ -9,10 +9,10 @@
+ 
+ #include "./DistanceToMaskBoundaryx.h"
+ 
+-int DistanceToMaskBoundaryx(double** pdistance,double* x, double* y, double* mask, int nods) {
++int DistanceToMaskBoundaryx(IssmDouble** pdistance,IssmDouble* x, IssmDouble* y, IssmDouble* mask, int nods) {
+ 
+ 	/*output: */
+-	double*  distance;
++	IssmDouble*  distance;
+ 
+ 	/*initialize: */
+ 	distance=xNew<IssmDouble>(nods);
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20065)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20066)
+@@ -25,10 +25,10 @@
+ 
+ 	/*recover parameters :*/
+ 	int       nods      = gate->nods;
+-	double   *distance    = gate->distance;
+-	double   *x         = gate->x;
+-	double   *y         = gate->y;
+-	double   *mask         = gate->mask;
++	IssmDouble   *distance    = gate->distance;
++	IssmDouble   *x         = gate->x;
++	IssmDouble   *y         = gate->y;
++	IssmDouble   *mask         = gate->mask;
+ 
+ 	/*distribute indices across threads :*/
+ 	PartitionRange(&i0,&i1,nods,num_threads,my_thread);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20066-20067.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20066-20067.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20066-20067.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h	(revision 20066)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h	(revision 20067)
+@@ -12,15 +12,15 @@
+ typedef struct{
+ 
+ 	int       nods;
+-	double   *distance;
+-	double   *x;
+-	double   *y;
+-	double   *mask;
++	IssmDouble   *distance;
++	IssmDouble   *x;
++	IssmDouble   *y;
++	IssmDouble   *mask;
+ 
+ } DistanceToMaskBoundaryxThreadStruct;
+ 
+ /* local prototypes: */
+-int DistanceToMaskBoundaryx(double** pdistance,double* x, double* y, double* mask, int nods);
++int DistanceToMaskBoundaryx(IssmDouble** pdistance,IssmDouble* x, IssmDouble* y, IssmDouble* mask, int nods);
+ 
+ void* DistanceToMaskBoundaryxt(void* vDistanceToMaskBoundaryxThreadStruct);
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20067-20068.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20067-20068.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20067-20068.diff	(revision 20498)
@@ -0,0 +1,10101 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20068)
+@@ -0,0 +1,80 @@
++%Test Name: EarthSlr
++%Earth Sea Level Rise test. Uses the mesh3dsurface geometry.
++
++	%mesh earth: 
++	md=model; 
++	md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700); %500 km resolution mesh
++	
++	%parameterize slr solution:
++	%slr loading:  {{{
++	md.slr.deltathickness=zeros(md.mesh.numberofvertices,1);
++	%antarctica
++	pos=find(md.mesh.lat <-80);
++	md.slr.deltathickness(pos)=-100;
++	%greenlnd 
++	pos=find(md.mesh.lat > 70 &  md.mesh.lat < 80 & md.mesh.long>-60 & md.mesh.long<-30);
++	md.slr.deltathickness(pos)=-100;
++	
++	%elastic loading from love numbers: 
++	love = dlmread('../Data/love_numbers_10k.txt');
++	nlov=101;
++	md.slr.love_h = love(1:nlov,2);  % radial displacement (height) 
++	md.slr.love_k = love(1:nlov,4);  % gravitational potential (phi) 
++
++	%}}}
++	%mask:  {{{
++	md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 
++	mask=gmtmask(md.mesh.lat,md.mesh.long); 
++
++	icemask=ones(md.mesh.numberofvertices,1);
++	pos=find(mask==0);  icemask(pos)=-1;
++	pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos))=-1;
++	
++	md.mask.ice_levelset=icemask;
++	md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
++	pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
++
++	%make sure that the ice level set is all inclusive:
++	md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
++	md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1); 
++	% }}}
++	%geometry:  {{{
++	di=md.materials.rho_ice/md.materials.rho_water;
++	md.geometry.thickness=ones(md.mesh.numberofvertices,1);
++	md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1);
++	md.geometry.base=md.geometry.surface-md.geometry.thickness;
++	md.geometry.bed=md.geometry.base;
++	% }}}
++	%materials:  {{{
++	md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1);
++	md.materials.rheology_B=paterson(md.initialization.temperature);
++	md.materials.rheology_n=3*ones(md.mesh.numberofelements,1);
++	% }}}
++	%Miscellaneous: {{{
++	md.miscellaneous.name='slr';
++	% }}}
++	%Solution parameters:{{{
++	md.slr.reltol=NaN;
++	md.slr.abstol=1e-3;
++	%}}}
++
++	%eustatic run: 
++	md.slr.eustatic=1; md.slr.rigid=0; md.slr.elastic=0;
++	md=solve(md,SealevelriseSolutionEnum);
++	Seustatic=md.results.SealevelriseSolution.SealevelriseS;
++	
++	%eustatic + rigid run: 
++	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=0;
++	md=solve(md,SealevelriseSolutionEnum);
++	Srigid=md.results.SealevelriseSolution.SealevelriseS;
++	
++	%eustatic + rigid + elastic run: 
++	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1;
++	md=solve(md,SealevelriseSolutionEnum);
++	Selastic=md.results.SealevelriseSolution.SealevelriseS;
++
++
++	%Fields and tolerances to track changes
++	field_names     ={'Eustatic','Rigid','Elastic'};
++	field_tolerances={1e-13,1e-13,1e-13};
++	field_values={Seustatic,Srigid,Selastic};
+Index: ../trunk-jpl/test/Archives/Archive2002.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive2002.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
+Index: ../trunk-jpl/test/Data/love_numbers_10k.txt
+===================================================================
+--- ../trunk-jpl/test/Data/love_numbers_10k.txt	(revision 0)
++++ ../trunk-jpl/test/Data/love_numbers_10k.txt	(revision 20068)
+@@ -0,0 +1,10001 @@
++0 0 0 0 0 0 0 0 
++1	 -1.28740059	 -1.00000000	  -0.89858519	  1.28740059	  0.42519882	  0.89858519  0.00000000
++2	 -1.00025365	 -0.30922675	  0.02060926	  1.69102690	  0.46358648	  0.67016399  0.61829668
++3	 -1.06243501	 -0.19927948	  0.06801636	  1.86315553	  0.55741597	  0.73270416  0.56270589
++4	 -1.06779588	 -0.13649834	  0.05667027	  1.93129754	  0.63672498	  0.80683140  0.51132745
++5	 -1.10365923	 -0.10736896	  0.04401221	  1.99629027	  0.68737906	  0.84861883  0.48642259
++6	 -1.16440348	 -0.09295485	  0.03638747	  2.07144863	  0.72031283	  0.87065768  0.47898268
++7	 -1.23634156	 -0.08469861	  0.03202759	  2.15164295	  0.74355796	  0.88327380  0.47955214
++8	 -1.31140380	 -0.07921412	  0.02937593	  2.23218968	  0.76126493	  0.89140995  0.48323250
++9	 -1.38582399	 -0.07513541	  0.02762338	  2.31068858	  0.77552290	  0.89724121  0.48795424
++10	 -1.45807465	 -0.07187005	  0.02638627	  2.38620460	  0.78744212	  0.90174369  0.49291061
++11	 -1.52763314	 -0.06913154	  0.02547640	  2.45850160	  0.79766475	  0.90539206  0.49779422
++12	 -1.59437866	 -0.06676258	  0.02479080	  2.52761607	  0.80659635	  0.90844662  0.50248477
++13	 -1.65833071	 -0.06466619	  0.02426511	  2.59366452	  0.81451271	  0.91106870  0.50693175
++14	 -1.71954820	 -0.06277732	  0.02385464	  2.65677088	  0.82161167	  0.91336804  0.51111243
++15	 -1.77809640	 -0.06105001	  0.02352654	  2.71704639	  0.82804049	  0.91542346  0.51501712
++16	 -1.83403970	 -0.05945081	  0.02325609	  2.77458889	  0.83391153	  0.91729309  0.51864363
++17	 -1.88744242	 -0.05795502	  0.02302469	  2.82948740	  0.83931209	  0.91902029  0.52199490
++18	 -1.93837115	 -0.05654418	  0.02281843	  2.88182697	  0.84431095	  0.92063739  0.52507761
++19	 -1.98689666	 -0.05520447	  0.02262706	  2.93169219	  0.84896295	  0.92216847  0.52790108
++20	 -2.03309477	 -0.05392545	  0.02244322	  2.97916932	  0.85331225	  0.92363132  0.53047654
++21	 -2.07704643	 -0.05269926	  0.02226173	  3.02434717	  0.85739480	  0.92503902  0.53281639
++22	 -2.11883714	 -0.05151988	  0.02207909	  3.06731726	  0.86124014	  0.92640103  0.53493369
++23	 -2.15855611	 -0.05038274	  0.02189307	  3.10817337	  0.86487276	  0.92772419  0.53684176
++24	 -2.19629514	 -0.04928430	  0.02170238	  3.14701084	  0.86831322	  0.92901331  0.53855386
++25	 -2.23214747	 -0.04822179	  0.02150643	  3.18392568	  0.87157886	  0.93027178  0.54008294
++26	 -2.26620674	 -0.04719301	  0.02130509	  3.21901373	  0.87468453	  0.93150190  0.54144148
++27	 -2.29856595	 -0.04619619	  0.02109858	  3.25236976	  0.87764301	  0.93270523  0.54264140
++28	 -2.32931659	 -0.04522983	  0.02088735	  3.28408675	  0.88046543	  0.93388282  0.54369397
++29	 -2.35854794	 -0.04429270	  0.02067197	  3.31425524	  0.88316156	  0.93503533  0.54460979
++30	 -2.38634650	 -0.04338368	  0.02045310	  3.34296281	  0.88574004	  0.93616321  0.54539877
++31	 -2.41279547	 -0.04250179	  0.02023142	  3.37029367	  0.88820859	  0.93726678  0.54607015
++32	 -2.43797451	 -0.04164613	  0.02000761	  3.39632839	  0.89057416	  0.93834626  0.54663248
++33	 -2.46195951	 -0.04081583	  0.01978231	  3.42114367	  0.89284301	  0.93940185  0.54709369
++34	 -2.48482241	 -0.04001011	  0.01955614	  3.44481230	  0.89502085	  0.94043375  0.54746112
++35	 -2.50663126	 -0.03922817	  0.01932966	  3.46740309	  0.89711291	  0.94144217  0.54774153
++36	 -2.52745016	 -0.03846928	  0.01910337	  3.48898088	  0.89912397	  0.94242735  0.54794114
++37	 -2.54733938	 -0.03773269	  0.01887774	  3.50960670	  0.90105847	  0.94338957  0.54806571
++38	 -2.56635547	 -0.03701769	  0.01865317	  3.52933779	  0.90292050	  0.94432915  0.54812051
++39	 -2.58455138	 -0.03632358	  0.01843000	  3.54822780	  0.90471386	  0.94524642  0.54811044
++40	 -2.60197665	 -0.03564968	  0.01820854	  3.56632697	  0.90644209	  0.94614178  0.54803997
++41	 -2.61867756	 -0.03499532	  0.01798905	  3.58368224	  0.90810850	  0.94701563  0.54791326
++42	 -2.63469733	 -0.03435985	  0.01777176	  3.60033748	  0.90971616	  0.94786840  0.54773413
++43	 -2.65007629	 -0.03374263	  0.01755683	  3.61633367	  0.91126798	  0.94870054  0.54750610
++44	 -2.66485208	 -0.03314303	  0.01734443	  3.63170905	  0.91276665	  0.94951253  0.54723245
++45	 -2.67905981	 -0.03256047	  0.01713468	  3.64649934	  0.91421471	  0.95030485  0.54691620
++46	 -2.69273222	 -0.03199435	  0.01692767	  3.66073787	  0.91561457	  0.95107798  0.54656015
++47	 -2.70589990	 -0.03144411	  0.01672347	  3.67445580	  0.91696845	  0.95183242  0.54616691
++48	 -2.71859139	 -0.03090919	  0.01652215	  3.68768220	  0.91827849	  0.95256866  0.54573889
++49	 -2.73083334	 -0.03038907	  0.01632374	  3.70044427	  0.91954667	  0.95328719  0.54527835
++50	 -2.74265068	 -0.02988323	  0.01612826	  3.71276745	  0.92077487	  0.95398851  0.54478739
++51	 -2.75406669	 -0.02939118	  0.01593573	  3.72467551	  0.92196486	  0.95467309  0.54426797
++52	 -2.76510320	 -0.02891245	  0.01574615	  3.73619076	  0.92311833	  0.95534141  0.54372191
++53	 -2.77578063	 -0.02844656	  0.01555950	  3.74733406	  0.92423685	  0.95599393  0.54315095
++54	 -2.78611812	 -0.02799309	  0.01537578	  3.75812503	  0.92532192	  0.95663113  0.54255669
++55	 -2.79613364	 -0.02755161	  0.01519496	  3.76858203	  0.92637496	  0.95725343  0.54194065
++56	 -2.80584405	 -0.02712170	  0.01501701	  3.77872235	  0.92739730	  0.95786128  0.54130424
++57	 -2.81526521	 -0.02670298	  0.01484191	  3.78856223	  0.92839022	  0.95845511  0.54064880
++58	 -2.82441204	 -0.02629506	  0.01466961	  3.79811697	  0.92935491	  0.95903532  0.53997561
++59	 -2.83329857	 -0.02589759	  0.01450009	  3.80740098	  0.93029251	  0.95960232  0.53928586
++60	 -2.84193804	 -0.02551021	  0.01433329	  3.81642782	  0.93120412	  0.96015649  0.53858067
++61	 -2.85034293	 -0.02513260	  0.01416919	  3.82521033	  0.93209074	  0.96069821  0.53786112
++62	 -2.85852503	 -0.02476443	  0.01400773	  3.83376061	  0.93295337	  0.96122784  0.53712821
++63	 -2.86649548	 -0.02440538	  0.01384888	  3.84209010	  0.93379291	  0.96174574  0.53638291
++64	 -2.87426481	 -0.02405518	  0.01369258	  3.85020963	  0.93461026	  0.96225224  0.53562612
++65	 -2.88184299	 -0.02371352	  0.01353880	  3.85812947	  0.93540625	  0.96274768  0.53485873
++66	 -2.88923945	 -0.02338014	  0.01338749	  3.86585931	  0.93618168	  0.96323236  0.53408154
++67	 -2.89646316	 -0.02305478	  0.01323861	  3.87340838	  0.93693730	  0.96370661  0.53329534
++68	 -2.90352261	 -0.02273718	  0.01309211	  3.88078542	  0.93767383	  0.96417071  0.53250089
++69	 -2.91042585	 -0.02242710	  0.01294795	  3.88799874	  0.93839197	  0.96462494  0.53169888
++70	 -2.91718054	 -0.02212431	  0.01280609	  3.89505623	  0.93909236	  0.96506960  0.53089002
++71	 -2.92379397	 -0.02182859	  0.01266648	  3.90196538	  0.93977564	  0.96550493  0.53007493
++72	 -2.93027306	 -0.02153971	  0.01252908	  3.90873334	  0.94044240	  0.96593120  0.52925424
++73	 -2.93662439	 -0.02125748	  0.01239386	  3.91536691	  0.94109322	  0.96634866  0.52842854
++74	 -2.94285425	 -0.02098169	  0.01226077	  3.92187256	  0.94172863	  0.96675754  0.52759839
++75	 -2.94896860	 -0.02071215	  0.01212977	  3.92825645	  0.94234915	  0.96715808  0.52676434
++76	 -2.95497314	 -0.02044868	  0.01200082	  3.93452446	  0.94295529	  0.96755050  0.52592690
++77	 -2.96087331	 -0.02019110	  0.01187388	  3.94068220	  0.94354752	  0.96793501  0.52508656
++78	 -2.96667427	 -0.01993924	  0.01174893	  3.94673503	  0.94412630	  0.96831183  0.52424380
++79	 -2.97238097	 -0.01969293	  0.01162591	  3.95268804	  0.94469206	  0.96868116  0.52339906
++80	 -2.97799813	 -0.01945201	  0.01150481	  3.95854612	  0.94524521	  0.96904318  0.52255277
++81	 -2.98353025	 -0.01921634	  0.01138557	  3.96431391	  0.94578617	  0.96939809  0.52170535
++82	 -2.98898162	 -0.01898576	  0.01126817	  3.96999586	  0.94631531	  0.96974607  0.52085719
++83	 -2.99435636	 -0.01876014	  0.01115257	  3.97559622	  0.94683300	  0.97008729  0.52000868
++84	 -2.99965838	 -0.01853932	  0.01103875	  3.98111905	  0.94733959	  0.97042193  0.51916016
++85	 -3.00489143	 -0.01832319	  0.01092666	  3.98656824	  0.94783543	  0.97075015  0.51831198
++86	 -3.01005909	 -0.01811161	  0.01081628	  3.99194748	  0.94832084	  0.97107211  0.51746448
++87	 -3.01516479	 -0.01790446	  0.01070757	  3.99726033	  0.94879613	  0.97138796  0.51661796
++88	 -3.02021180	 -0.01770162	  0.01060052	  4.00251017	  0.94926160	  0.97169786  0.51577273
++89	 -3.02520323	 -0.01750298	  0.01049508	  4.00770025	  0.94971755	  0.97200194  0.51492908
++90	 -3.03014209	 -0.01730842	  0.01039123	  4.01283367	  0.95016424	  0.97230035  0.51408727
++91	 -3.03503122	 -0.01711783	  0.01028894	  4.01791339	  0.95060195	  0.97259323  0.51324758
++92	 -3.03987336	 -0.01693111	  0.01018819	  4.02294225	  0.95103094	  0.97288070  0.51241024
++93	 -3.04467112	 -0.01674816	  0.01008894	  4.02792295	  0.95145145	  0.97316290  0.51157550
++94	 -3.04942699	 -0.01656889	  0.00999117	  4.03285810	  0.95186373	  0.97343995  0.51074358
++95	 -3.05414335	 -0.01639319	  0.00989485	  4.03775017	  0.95226799	  0.97371196  0.50991471
++96	 -3.05882250	 -0.01622097	  0.00979997	  4.04260153	  0.95266447	  0.97397906  0.50908908
++97	 -3.06346660	 -0.01605215	  0.00970649	  4.04741445	  0.95305338	  0.97424136  0.50826689
++98	 -3.06807773	 -0.01588664	  0.00961439	  4.05219109	  0.95343492	  0.97449897  0.50744832
++99	 -3.07265789	 -0.01572436	  0.00952364	  4.05693353	  0.95380929	  0.97475200  0.50663356
++100	 -3.07720897	 -0.01556522	  0.00943423	  4.06164375	  0.95417670	  0.97500055  0.50582277
++101	 -3.08173279	 -0.01540916	  0.00934613	  4.06632364	  0.95453731	  0.97524472  0.50501611
++102	 -3.08623109	 -0.01525608	  0.00925931	  4.07097501	  0.95489131	  0.97548461  0.50421372
++103	 -3.09070551	 -0.01510592	  0.00917376	  4.07559959	  0.95523888	  0.97572032  0.50341576
++104	 -3.09515765	 -0.01495861	  0.00908946	  4.08019904	  0.95558018	  0.97595193  0.50262236
++105	 -3.09958899	 -0.01481408	  0.00900637	  4.08477492	  0.95591537	  0.97617955  0.50183364
++106	 -3.10400100	 -0.01467225	  0.00892449	  4.08932875	  0.95624461	  0.97640325  0.50104973
++107	 -3.10839504	 -0.01453308	  0.00884379	  4.09386196	  0.95656806	  0.97662313  0.50027073
++108	 -3.11277241	 -0.01439648	  0.00876425	  4.09837593	  0.95688585	  0.97683927  0.49949676
++109	 -3.11713438	 -0.01426240	  0.00868586	  4.10287198	  0.95719812	  0.97705174  0.49872791
++110	 -3.12148213	 -0.01413079	  0.00860858	  4.10735134	  0.95750503	  0.97726063  0.49796429
++111	 -3.12581680	 -0.01400157	  0.00853241	  4.11181522	  0.95780669	  0.97746601  0.49720597
++112	 -3.13013947	 -0.01387471	  0.00845733	  4.11626476	  0.95810324	  0.97766796  0.49645304
++113	 -3.13445117	 -0.01375013	  0.00838331	  4.12070104	  0.95839480	  0.97786656  0.49570558
++114	 -3.13875289	 -0.01362779	  0.00831034	  4.12512510	  0.95868150	  0.97806186  0.49496366
++115	 -3.14304556	 -0.01350764	  0.00823841	  4.12953792	  0.95896344	  0.97825395  0.49422734
++116	 -3.14733008	 -0.01338963	  0.00816748	  4.13394045	  0.95924075	  0.97844289  0.49349669
++117	 -3.15160728	 -0.01327370	  0.00809756	  4.13833358	  0.95951352	  0.97862874  0.49277177
++118	 -3.15587797	 -0.01315981	  0.00802862	  4.14271816	  0.95978188	  0.97881157  0.49205262
++119	 -3.16014293	 -0.01304792	  0.00796064	  4.14709501	  0.96004592	  0.97899144  0.49133930
++120	 -3.16440288	 -0.01293797	  0.00789361	  4.15146491	  0.96030574	  0.97916842  0.49063185
++121	 -3.16865852	 -0.01282993	  0.00782751	  4.15582858	  0.96056144	  0.97934256  0.48993030
++122	 -3.17291049	 -0.01272375	  0.00776233	  4.16018673	  0.96081312	  0.97951392  0.48923471
++123	 -3.17715942	 -0.01261940	  0.00769805	  4.16454003	  0.96106086	  0.97968255  0.48854509
++124	 -3.18140591	 -0.01251682	  0.00763466	  4.16888910	  0.96130476	  0.97984852  0.48786148
++125	 -3.18565052	 -0.01241598	  0.00757215	  4.17323454	  0.96154490	  0.98001187  0.48718390
++126	 -3.18989378	 -0.01231685	  0.00751049	  4.17757693	  0.96178137	  0.98017266  0.48651237
++127	 -3.19413619	 -0.01221938	  0.00744968	  4.18191681	  0.96201424	  0.98033094  0.48584692
++128	 -3.19837823	 -0.01212354	  0.00738970	  4.18625469	  0.96224360	  0.98048676  0.48518756
++129	 -3.20262035	 -0.01202930	  0.00733053	  4.19059105	  0.96246952	  0.98064017  0.48453431
++130	 -3.20686298	 -0.01193661	  0.00727217	  4.19492637	  0.96269208	  0.98079121  0.48388717
++131	 -3.21110653	 -0.01184546	  0.00721461	  4.19926107	  0.96291135	  0.98093994  0.48324615
++132	 -3.21535137	 -0.01175579	  0.00715782	  4.20359557	  0.96312741	  0.98108639  0.48261126
++133	 -3.21959786	 -0.01166759	  0.00710179	  4.20793027	  0.96334031	  0.98123062  0.48198250
++134	 -3.22384634	 -0.01158082	  0.00704652	  4.21226552	  0.96355014	  0.98137266  0.48135988
++135	 -3.22809714	 -0.01149545	  0.00699199	  4.21660169	  0.96375694	  0.98151256  0.48074338
++136	 -3.23235055	 -0.01141146	  0.00693819	  4.22093909	  0.96396080	  0.98165035  0.48013301
++137	 -3.23660685	 -0.01132880	  0.00688511	  4.22527805	  0.96416176	  0.98178609  0.47952876
++138	 -3.24086631	 -0.01124746	  0.00683273	  4.22961885	  0.96435989	  0.98191980  0.47893063
++139	 -3.24512918	 -0.01116741	  0.00678105	  4.23396177	  0.96455525	  0.98205153  0.47833860
++140	 -3.24939569	 -0.01108862	  0.00673005	  4.23830707	  0.96474789	  0.98218132  0.47775267
++141	 -3.25366606	 -0.01101107	  0.00667973	  4.24265499	  0.96493787	  0.98230920  0.47717282
++142	 -3.25794050	 -0.01093473	  0.00663007	  4.24700577	  0.96512525	  0.98243520  0.47659903
++143	 -3.26221918	 -0.01085957	  0.00658106	  4.25135961	  0.96531007	  0.98255937  0.47603130
++144	 -3.26650230	 -0.01078557	  0.00653269	  4.25571672	  0.96549239	  0.98268174  0.47546960
++145	 -3.27079000	 -0.01071272	  0.00648495	  4.26007729	  0.96567225	  0.98280233  0.47491391
++146	 -3.27508246	 -0.01064097	  0.00643784	  4.26444149	  0.96584971	  0.98292119  0.47436422
++147	 -3.27937980	 -0.01057032	  0.00639134	  4.26880948	  0.96602482	  0.98303834  0.47382051
++148	 -3.28368216	 -0.01050074	  0.00634544	  4.27318141	  0.96619761	  0.98315382  0.47328275
++149	 -3.28798965	 -0.01043222	  0.00630013	  4.27755743	  0.96636814	  0.98326765  0.47275091
++150	 -3.29230239	 -0.01036472	  0.00625541	  4.28193767	  0.96653645	  0.98337988  0.47222499
++151	 -3.29662047	 -0.01029823	  0.00621126	  4.28632224	  0.96670258	  0.98349051  0.47170494
++152	 -3.30094399	 -0.01023273	  0.00616768	  4.29071126	  0.96686657	  0.98359960  0.47119074
++153	 -3.30527303	 -0.01016819	  0.00612465	  4.29510483	  0.96702847	  0.98370715  0.47068237
++154	 -3.30960766	 -0.01010461	  0.00608218	  4.29950304	  0.96718831	  0.98381321  0.47017979
++155	 -3.31394795	 -0.01004197	  0.00604024	  4.30390598	  0.96734614	  0.98391779  0.46968299
++156	 -3.31829395	 -0.00998024	  0.00599883	  4.30831372	  0.96750198	  0.98402093  0.46919192
++157	 -3.32264573	 -0.00991940	  0.00595795	  4.31272633	  0.96765588	  0.98412265  0.46870656
++158	 -3.32700331	 -0.00985945	  0.00591759	  4.31714387	  0.96780788	  0.98422297  0.46822687
++159	 -3.33136675	 -0.00980035	  0.00587773	  4.32156640	  0.96795801	  0.98432191  0.46775284
++160	 -3.33573607	 -0.00974211	  0.00583838	  4.32599396	  0.96810630	  0.98441951  0.46728441
++161	 -3.34011130	 -0.00968470	  0.00579951	  4.33042660	  0.96825278	  0.98451579  0.46682157
++162	 -3.34449246	 -0.00962810	  0.00576113	  4.33486436	  0.96839750	  0.98461077  0.46636427
++163	 -3.34887956	 -0.00957230	  0.00572323	  4.33930726	  0.96854048	  0.98470447  0.46591248
++164	 -3.35327261	 -0.00951729	  0.00568581	  4.34375533	  0.96868175	  0.98479691  0.46546617
++165	 -3.35767163	 -0.00946304	  0.00564884	  4.34820858	  0.96882135	  0.98488812  0.46502531
++166	 -3.36207660	 -0.00940956	  0.00561233	  4.35266704	  0.96895930	  0.98497811  0.46458986
++167	 -3.36648753	 -0.00935681	  0.00557627	  4.35713071	  0.96909563	  0.98506691  0.46415977
++168	 -3.37090440	 -0.00930480	  0.00554066	  4.36159960	  0.96923037	  0.98515454  0.46373503
++169	 -3.37532721	 -0.00925350	  0.00550548	  4.36607371	  0.96936355	  0.98524102  0.46331559
++170	 -3.37975593	 -0.00920290	  0.00547073	  4.37055303	  0.96949520	  0.98532636  0.46290141
++171	 -3.38419056	 -0.00915300	  0.00543641	  4.37503756	  0.96962535	  0.98541059  0.46249246
++172	 -3.38863105	 -0.00910377	  0.00540251	  4.37952729	  0.96975401	  0.98549373  0.46208870
++173	 -3.39307740	 -0.00905520	  0.00536901	  4.38402220	  0.96988122	  0.98557578  0.46169009
++174	 -3.39752956	 -0.00900729	  0.00533593	  4.38852227	  0.97000699	  0.98565678  0.46129660
++175	 -3.40198751	 -0.00896002	  0.00530324	  4.39302749	  0.97013137	  0.98573674  0.46090819
++176	 -3.40645121	 -0.00891338	  0.00527095	  4.39753783	  0.97025435	  0.98581567  0.46052482
++177	 -3.41092063	 -0.00886736	  0.00523904	  4.40205326	  0.97037598	  0.98589360  0.46014645
++178	 -3.41539571	 -0.00882195	  0.00520752	  4.40657376	  0.97049628	  0.98597053  0.45977305
++179	 -3.41987643	 -0.00877713	  0.00517637	  4.41109929	  0.97061526	  0.98604649  0.45940458
++180	 -3.42436272	 -0.00873290	  0.00514560	  4.41562982	  0.97073295	  0.98612149  0.45904100
++181	 -3.42885456	 -0.00868925	  0.00511520	  4.42016531	  0.97084936	  0.98619555  0.45868227
++182	 -3.43335188	 -0.00864617	  0.00508515	  4.42470571	  0.97096453	  0.98626868  0.45832835
++183	 -3.43785464	 -0.00860364	  0.00505546	  4.42925100	  0.97107847	  0.98634090  0.45797921
++184	 -3.44236278	 -0.00856166	  0.00502613	  4.43380112	  0.97119120	  0.98641222  0.45763480
++185	 -3.44687625	 -0.00852021	  0.00499714	  4.43835604	  0.97130274	  0.98648265  0.45729509
++186	 -3.45139500	 -0.00847930	  0.00496849	  4.44291570	  0.97141311	  0.98655221  0.45696005
++187	 -3.45591895	 -0.00843890	  0.00494017	  4.44748005	  0.97152233	  0.98662092  0.45662962
++188	 -3.46044807	 -0.00839902	  0.00491219	  4.45204905	  0.97163042	  0.98668879  0.45630378
++189	 -3.46498227	 -0.00835964	  0.00488454	  4.45662264	  0.97173739	  0.98675583  0.45598249
++190	 -3.46952151	 -0.00832075	  0.00485721	  4.46120077	  0.97184326	  0.98682205  0.45566570
++191	 -3.47406572	 -0.00828234	  0.00483019	  4.46578338	  0.97194805	  0.98688746  0.45535338
++192	 -3.47861484	 -0.00824442	  0.00480349	  4.47037042	  0.97205179	  0.98695209  0.45504550
++193	 -3.48316880	 -0.00820696	  0.00477710	  4.47496184	  0.97215447	  0.98701594  0.45474201
++194	 -3.48772753	 -0.00816996	  0.00475102	  4.47955756	  0.97225612	  0.98707902  0.45444287
++195	 -3.49229097	 -0.00813342	  0.00472523	  4.48415755	  0.97235676	  0.98714134  0.45414806
++196	 -3.49685904	 -0.00809733	  0.00469975	  4.48876172	  0.97245640	  0.98720293  0.45385753
++197	 -3.50143169	 -0.00806167	  0.00467455	  4.49337002	  0.97255506	  0.98726378  0.45357123
++198	 -3.50600884	 -0.00802644	  0.00464964	  4.49798240	  0.97265275	  0.98732391  0.45328915
++199	 -3.51059042	 -0.00799164	  0.00462502	  4.50259878	  0.97274949	  0.98738333  0.45301123
++200	 -3.51517637	 -0.00795726	  0.00460068	  4.50721911	  0.97284528	  0.98744206  0.45273745
++201	 -3.51976660	 -0.00792329	  0.00457662	  4.51184331	  0.97294015	  0.98750009  0.45246776
++202	 -3.52436105	 -0.00788972	  0.00455283	  4.51647133	  0.97303411	  0.98755745  0.45220214
++203	 -3.52895964	 -0.00785655	  0.00452930	  4.52110309	  0.97312718	  0.98761414  0.45194053
++204	 -3.53356231	 -0.00782377	  0.00450605	  4.52573854	  0.97321936	  0.98767018  0.45168291
++205	 -3.53816898	 -0.00779138	  0.00448306	  4.53037760	  0.97331067	  0.98772556  0.45142923
++206	 -3.54277957	 -0.00775937	  0.00446032	  4.53502021	  0.97340111	  0.98778031  0.45117947
++207	 -3.54739402	 -0.00772773	  0.00443784	  4.53966629	  0.97349072	  0.98783443  0.45093359
++208	 -3.55201224	 -0.00769645	  0.00441562	  4.54431579	  0.97357949	  0.98788793  0.45069155
++209	 -3.55663417	 -0.00766554	  0.00439364	  4.54896864	  0.97366744	  0.98794082  0.45045331
++210	 -3.56125973	 -0.00763498	  0.00437190	  4.55362475	  0.97375458	  0.98799311  0.45021885
++211	 -3.56588885	 -0.00760478	  0.00435041	  4.55828407	  0.97384092	  0.98804481  0.44998812
++212	 -3.57052145	 -0.00757491	  0.00432916	  4.56294653	  0.97392648	  0.98809593  0.44976109
++213	 -3.57515745	 -0.00754539	  0.00430814	  4.56761206	  0.97401126	  0.98814646  0.44953772
++214	 -3.57979678	 -0.00751620	  0.00428736	  4.57228058	  0.97409528	  0.98819644  0.44931799
++215	 -3.58443937	 -0.00748734	  0.00426681	  4.57695203	  0.97417854	  0.98824585  0.44910185
++216	 -3.58908514	 -0.00745880	  0.00424648	  4.58162633	  0.97426107	  0.98829472  0.44888928
++217	 -3.59373401	 -0.00743059	  0.00422637	  4.58630343	  0.97434286	  0.98834304  0.44868023
++218	 -3.59838592	 -0.00740268	  0.00420649	  4.59098323	  0.97442393	  0.98839083  0.44847468
++219	 -3.60304078	 -0.00737509	  0.00418682	  4.59566569	  0.97450428	  0.98843809  0.44827259
++220	 -3.60769852	 -0.00734780	  0.00416737	  4.60035072	  0.97458394	  0.98848483  0.44807392
++221	 -3.61235907	 -0.00732081	  0.00414813	  4.60503826	  0.97466290	  0.98853106  0.44787865
++222	 -3.61702235	 -0.00729411	  0.00412910	  4.60972823	  0.97474118	  0.98857678  0.44768674
++223	 -3.62168828	 -0.00726771	  0.00411028	  4.61442057	  0.97481879	  0.98862201  0.44749816
++224	 -3.62635680	 -0.00724159	  0.00409166	  4.61911521	  0.97489573	  0.98866675  0.44731288
++225	 -3.63102782	 -0.00721575	  0.00407325	  4.62381207	  0.97497202	  0.98871100  0.44713086
++226	 -3.63570128	 -0.00719020	  0.00405503	  4.62851108	  0.97504766	  0.98875478  0.44695207
++227	 -3.64037709	 -0.00716491	  0.00403700	  4.63321218	  0.97512267	  0.98879808  0.44677649
++228	 -3.64505519	 -0.00713990	  0.00401918	  4.63791530	  0.97519704	  0.98884093  0.44660407
++229	 -3.64973550	 -0.00711515	  0.00400154	  4.64262036	  0.97527080	  0.98888331  0.44643478
++230	 -3.65441795	 -0.00709066	  0.00398409	  4.64732729	  0.97534394	  0.98892525  0.44626861
++231	 -3.65910247	 -0.00706643	  0.00396683	  4.65203604	  0.97541648	  0.98896674  0.44610551
++232	 -3.66378898	 -0.00704246	  0.00394975	  4.65674652	  0.97548842	  0.98900779  0.44594545
++233	 -3.66847740	 -0.00701873	  0.00393286	  4.66145867	  0.97555978	  0.98904841  0.44578841
++234	 -3.67316767	 -0.00699526	  0.00391614	  4.66617242	  0.97563055	  0.98908860  0.44563435
++235	 -3.67785972	 -0.00697202	  0.00389960	  4.67088770	  0.97570076	  0.98912838  0.44548324
++236	 -3.68255347	 -0.00694903	  0.00388324	  4.67560444	  0.97577039	  0.98916773  0.44533506
++237	 -3.68724885	 -0.00692627	  0.00386705	  4.68032258	  0.97583947	  0.98920668  0.44518977
++238	 -3.69194579	 -0.00690374	  0.00385103	  4.68504204	  0.97590800	  0.98924523  0.44504735
++239	 -3.69664421	 -0.00688145	  0.00383518	  4.68976277	  0.97597598	  0.98928338  0.44490776
++240	 -3.70134406	 -0.00685938	  0.00381949	  4.69448468	  0.97604342	  0.98932113  0.44477099
++241	 -3.70604525	 -0.00683753	  0.00380397	  4.69920772	  0.97611034	  0.98935850  0.44463698
++242	 -3.71074772	 -0.00681590	  0.00378861	  4.70393182	  0.97617673	  0.98939548  0.44450573
++243	 -3.71545140	 -0.00679449	  0.00377342	  4.70865691	  0.97624261	  0.98943209  0.44437720
++244	 -3.72015622	 -0.00677330	  0.00375838	  4.71338292	  0.97630797	  0.98946833  0.44425137
++245	 -3.72486211	 -0.00675231	  0.00374349	  4.71810980	  0.97637283	  0.98950420  0.44412820
++246	 -3.72956899	 -0.00673153	  0.00372877	  4.72283746	  0.97643720	  0.98953970  0.44400767
++247	 -3.73427682	 -0.00671096	  0.00371419	  4.72756585	  0.97650107	  0.98957485  0.44388975
++248	 -3.73898550	 -0.00669059	  0.00369976	  4.73229491	  0.97656446	  0.98960965  0.44377441
++249	 -3.74369498	 -0.00667042	  0.00368549	  4.73702457	  0.97662737	  0.98964409  0.44366163
++250	 -3.74840519	 -0.00665044	  0.00367136	  4.74175475	  0.97668980	  0.98967820  0.44355139
++251	 -3.75311607	 -0.00663066	  0.00365738	  4.74648541	  0.97675177	  0.98971196  0.44344364
++252	 -3.75782754	 -0.00661107	  0.00364354	  4.75121648	  0.97681327	  0.98974540  0.44333838
++253	 -3.76253955	 -0.00659167	  0.00362984	  4.75594788	  0.97687432	  0.98977850  0.44323557
++254	 -3.76725202	 -0.00657245	  0.00361628	  4.76067957	  0.97693492	  0.98981127  0.44313518
++255	 -3.77196489	 -0.00655341	  0.00360286	  4.76541147	  0.97699508	  0.98984372  0.44303720
++256	 -3.77667809	 -0.00653456	  0.00358958	  4.77014353	  0.97705479	  0.98987586  0.44294159
++257	 -3.78139156	 -0.00651589	  0.00357643	  4.77487568	  0.97711407	  0.98990768  0.44284833
++258	 -3.78610525	 -0.00649739	  0.00356342	  4.77960786	  0.97717292	  0.98993920  0.44275740
++259	 -3.79081907	 -0.00647906	  0.00355053	  4.78434001	  0.97723134	  0.98997040  0.44266877
++260	 -3.79553298	 -0.00646091	  0.00353778	  4.78907207	  0.97728935	  0.99000131  0.44258241
++261	 -3.80024690	 -0.00644292	  0.00352516	  4.79380398	  0.97734694	  0.99003192  0.44249831
++262	 -3.80496078	 -0.00642510	  0.00351266	  4.79853567	  0.97740413	  0.99006223  0.44241644
++263	 -3.80967455	 -0.00640745	  0.00350029	  4.80326710	  0.97746090	  0.99009226  0.44233677
++264	 -3.81438815	 -0.00638996	  0.00348804	  4.80799819	  0.97751728	  0.99012200  0.44225928
++265	 -3.81910152	 -0.00637262	  0.00347592	  4.81272889	  0.97757326	  0.99015145  0.44218395
++266	 -3.82381460	 -0.00635545	  0.00346392	  4.81745915	  0.97762886	  0.99018063  0.44211076
++267	 -3.82852732	 -0.00633843	  0.00345204	  4.82218889	  0.97768406	  0.99020953  0.44203968
++268	 -3.83323964	 -0.00632157	  0.00344027	  4.82691808	  0.97773889	  0.99023816  0.44197068
++269	 -3.83795149	 -0.00630485	  0.00342863	  4.83164664	  0.97779333	  0.99026652  0.44190376
++270	 -3.84266280	 -0.00628829	  0.00341709	  4.83637452	  0.97784741	  0.99029462  0.44183887
++271	 -3.84737353	 -0.00627187	  0.00340568	  4.84110166	  0.97790111	  0.99032245  0.44177601
++272	 -3.85208361	 -0.00625560	  0.00339437	  4.84582801	  0.97795446	  0.99035003  0.44171515
++273	 -3.85679299	 -0.00623948	  0.00338318	  4.85055351	  0.97800744	  0.99037735  0.44165627
++274	 -3.86150160	 -0.00622349	  0.00337210	  4.85527811	  0.97806006	  0.99040441  0.44159934
++275	 -3.86620939	 -0.00620765	  0.00336112	  4.86000175	  0.97811233	  0.99043123  0.44154435
++276	 -3.87091631	 -0.00619194	  0.00335026	  4.86472437	  0.97816426	  0.99045780  0.44149127
++277	 -3.87562229	 -0.00617637	  0.00333950	  4.86944592	  0.97821584	  0.99048413  0.44144009
++278	 -3.88032729	 -0.00616094	  0.00332885	  4.87416635	  0.97826708	  0.99051022  0.44139078
++279	 -3.88503124	 -0.00614564	  0.00331830	  4.87888561	  0.97831798	  0.99053607  0.44134332
++280	 -3.88973410	 -0.00613047	  0.00330785	  4.88360363	  0.97836855	  0.99056168  0.44129769
++281	 -3.89443580	 -0.00611543	  0.00329750	  4.88832037	  0.97841879	  0.99058707  0.44125387
++282	 -3.89913629	 -0.00610051	  0.00328726	  4.89303577	  0.97846870	  0.99061223  0.44121185
++283	 -3.90383552	 -0.00608573	  0.00327711	  4.89774979	  0.97851829	  0.99063716  0.44117159
++284	 -3.90853343	 -0.00607107	  0.00326707	  4.90246236	  0.97856756	  0.99066187  0.44113309
++285	 -3.91322998	 -0.00605653	  0.00325712	  4.90717345	  0.97861652	  0.99068635  0.44109632
++286	 -3.91792511	 -0.00604212	  0.00324726	  4.91188299	  0.97866516	  0.99071062  0.44106126
++287	 -3.92261876	 -0.00602782	  0.00323750	  4.91659094	  0.97871350	  0.99073468  0.44102790
++288	 -3.92731089	 -0.00601364	  0.00322784	  4.92129724	  0.97876153	  0.99075852  0.44099621
++289	 -3.93200144	 -0.00599958	  0.00321826	  4.92600186	  0.97880926	  0.99078215  0.44096618
++290	 -3.93669036	 -0.00598564	  0.00320878	  4.93070472	  0.97885669	  0.99080558  0.44093779
++291	 -3.94137761	 -0.00597181	  0.00319939	  4.93540580	  0.97890383	  0.99082880  0.44091101
++292	 -3.94606313	 -0.00595809	  0.00319009	  4.94010504	  0.97895067	  0.99085182  0.44088584
++293	 -3.95074687	 -0.00594449	  0.00318088	  4.94480238	  0.97899722	  0.99087463  0.44086225
++294	 -3.95542878	 -0.00593099	  0.00317175	  4.94949779	  0.97904349	  0.99089725  0.44084022
++295	 -3.96010882	 -0.00591761	  0.00316271	  4.95419121	  0.97908947	  0.99091968  0.44081975
++296	 -3.96478693	 -0.00590433	  0.00315376	  4.95888260	  0.97913517	  0.99094191  0.44080080
++297	 -3.96946306	 -0.00589116	  0.00314489	  4.96357191	  0.97918060	  0.99096395  0.44078336
++298	 -3.97413718	 -0.00587809	  0.00313611	  4.96825909	  0.97922575	  0.99098581  0.44076742
++299	 -3.97880922	 -0.00586512	  0.00312740	  4.97294410	  0.97927063	  0.99100747  0.44075296
++300	 -3.98347915	 -0.00585226	  0.00311878	  4.97762689	  0.97931524	  0.99102895  0.44073996
++301	 -3.98814692	 -0.00583950	  0.00311024	  4.98230742	  0.97935959	  0.99105026  0.44072841
++302	 -3.99281247	 -0.00582684	  0.00310178	  4.98698564	  0.97940367	  0.99107138  0.44071828
++303	 -3.99747577	 -0.00581428	  0.00309340	  4.99166150	  0.97944749	  0.99109232  0.44070956
++304	 -4.00213677	 -0.00580181	  0.00308510	  4.99633496	  0.97949105	  0.99111309  0.44070224
++305	 -4.00679542	 -0.00578944	  0.00307688	  5.00100598	  0.97953436	  0.99113368  0.44069630
++306	 -4.01145168	 -0.00577717	  0.00306873	  5.00567451	  0.97957741	  0.99115410  0.44069173
++307	 -4.01610551	 -0.00576499	  0.00306065	  5.01034052	  0.97962021	  0.99117436  0.44068850
++308	 -4.02075685	 -0.00575290	  0.00305266	  5.01500395	  0.97966277	  0.99119444  0.44068660
++309	 -4.02540567	 -0.00574091	  0.00304473	  5.01966476	  0.97970508	  0.99121436  0.44068602
++310	 -4.03005191	 -0.00572900	  0.00303688	  5.02432291	  0.97974715	  0.99123412  0.44068674
++311	 -4.03469555	 -0.00571719	  0.00302910	  5.02897837	  0.97978897	  0.99125371  0.44068875
++312	 -4.03933654	 -0.00570546	  0.00302139	  5.03363108	  0.97983056	  0.99127315  0.44069203
++313	 -4.04397482	 -0.00569382	  0.00301375	  5.03828100	  0.97987192	  0.99129242  0.44069657
++314	 -4.04861037	 -0.00568227	  0.00300619	  5.04292810	  0.97991304	  0.99131154  0.44070234
++315	 -4.05324314	 -0.00567080	  0.00299869	  5.04757234	  0.97995393	  0.99133051  0.44070935
++316	 -4.05787308	 -0.00565942	  0.00299126	  5.05221367	  0.97999459	  0.99134932  0.44071756
++317	 -4.06250017	 -0.00564812	  0.00298390	  5.05685205	  0.98003502	  0.99136799  0.44072698
++318	 -4.06712435	 -0.00563690	  0.00297660	  5.06148744	  0.98007523	  0.99138650  0.44073757
++319	 -4.07174558	 -0.00562577	  0.00296937	  5.06611981	  0.98011522	  0.99140486  0.44074934
++320	 -4.07636383	 -0.00561471	  0.00296221	  5.07074912	  0.98015498	  0.99142308  0.44076227
++321	 -4.08097906	 -0.00560374	  0.00295511	  5.07537532	  0.98019453	  0.99144116  0.44077633
++322	 -4.08559122	 -0.00559284	  0.00294807	  5.07999838	  0.98023386	  0.99145909  0.44079153
++323	 -4.09020028	 -0.00558202	  0.00294110	  5.08461826	  0.98027298	  0.99147688  0.44080784
++324	 -4.09480620	 -0.00557128	  0.00293419	  5.08923492	  0.98031189	  0.99149453  0.44082525
++325	 -4.09940894	 -0.00556061	  0.00292734	  5.09384833	  0.98035059	  0.99151204  0.44084375
++326	 -4.10400846	 -0.00555002	  0.00292056	  5.09845844	  0.98038908	  0.99152942  0.44086333
++327	 -4.10860473	 -0.00553950	  0.00291383	  5.10306522	  0.98042736	  0.99154666  0.44088396
++328	 -4.11319770	 -0.00552906	  0.00290717	  5.10766864	  0.98046544	  0.99156377  0.44090565
++329	 -4.11778734	 -0.00551869	  0.00290056	  5.11226865	  0.98050332	  0.99158075  0.44092838
++330	 -4.12237362	 -0.00550839	  0.00289401	  5.11686523	  0.98054100	  0.99159760  0.44095213
++331	 -4.12695649	 -0.00549816	  0.00288752	  5.12145833	  0.98057848	  0.99161431  0.44097689
++332	 -4.13153592	 -0.00548801	  0.00288109	  5.12604792	  0.98061577	  0.99163090  0.44100265
++333	 -4.13611188	 -0.00547792	  0.00287471	  5.13063396	  0.98065286	  0.99164737  0.44102940
++334	 -4.14068433	 -0.00546790	  0.00286839	  5.13521643	  0.98068975	  0.99166371  0.44105712
++335	 -4.14525323	 -0.00545795	  0.00286213	  5.13979528	  0.98072646	  0.99167992  0.44108581
++336	 -4.14981854	 -0.00544806	  0.00285592	  5.14437048	  0.98076298	  0.99169602  0.44111544
++337	 -4.15438025	 -0.00543824	  0.00284976	  5.14894200	  0.98079931	  0.99171199  0.44114602
++338	 -4.15893830	 -0.00542849	  0.00284366	  5.15350981	  0.98083545	  0.99172785  0.44117753
++339	 -4.16349267	 -0.00541880	  0.00283761	  5.15807386	  0.98087141	  0.99174358  0.44120995
++340	 -4.16804332	 -0.00540918	  0.00283162	  5.16263414	  0.98090719	  0.99175920  0.44124328
++341	 -4.17259021	 -0.00539962	  0.00282567	  5.16719060	  0.98094278	  0.99177471  0.44127750
++342	 -4.17713333	 -0.00539012	  0.00281978	  5.17174321	  0.98097820	  0.99179010  0.44131260
++343	 -4.18167262	 -0.00538069	  0.00281394	  5.17629194	  0.98101344	  0.99180537  0.44134857
++344	 -4.18620807	 -0.00537131	  0.00280815	  5.18083676	  0.98104851	  0.99182054  0.44138541
++345	 -4.19073963	 -0.00536200	  0.00280241	  5.18537763	  0.98108340	  0.99183560  0.44142309
++346	 -4.19526728	 -0.00535274	  0.00279671	  5.18991453	  0.98111811	  0.99185054  0.44146162
++347	 -4.19979098	 -0.00534355	  0.00279107	  5.19444743	  0.98115266	  0.99186538  0.44150097
++348	 -4.20431070	 -0.00533441	  0.00278548	  5.19897629	  0.98118704	  0.99188011  0.44154114
++349	 -4.20882641	 -0.00532534	  0.00277993	  5.20350108	  0.98122125	  0.99189474  0.44158211
++350	 -4.21333809	 -0.00531632	  0.00277443	  5.20802177	  0.98125529	  0.99190926  0.44162389
++351	 -4.21784569	 -0.00530735	  0.00276897	  5.21253834	  0.98128916	  0.99192367  0.44166645
++352	 -4.22234919	 -0.00529845	  0.00276357	  5.21705075	  0.98132288	  0.99193799  0.44170979
++353	 -4.22684856	 -0.00528959	  0.00275820	  5.22155897	  0.98135643	  0.99195220  0.44175389
++354	 -4.23134377	 -0.00528080	  0.00275289	  5.22606297	  0.98138982	  0.99196631  0.44179875
++355	 -4.23583479	 -0.00527206	  0.00274762	  5.23056273	  0.98142305	  0.99198033  0.44184436
++356	 -4.24032159	 -0.00526337	  0.00274239	  5.23505822	  0.98145612	  0.99199424  0.44189070
++357	 -4.24480413	 -0.00525473	  0.00273720	  5.23954940	  0.98148904	  0.99200806  0.44193777
++358	 -4.24928241	 -0.00524615	  0.00273206	  5.24403626	  0.98152180	  0.99202179  0.44198557
++359	 -4.25375637	 -0.00523762	  0.00272697	  5.24851875	  0.98155440	  0.99203541  0.44203406
++360	 -4.25822600	 -0.00522914	  0.00272191	  5.25299686	  0.98158685	  0.99204895  0.44208326
++361	 -4.26269127	 -0.00522071	  0.00271690	  5.25747055	  0.98161916	  0.99206239  0.44213315
++362	 -4.26715214	 -0.00521233	  0.00271193	  5.26193981	  0.98165131	  0.99207574  0.44218372
++363	 -4.27160860	 -0.00520401	  0.00270700	  5.26640459	  0.98168331	  0.99208900  0.44223496
++364	 -4.27606061	 -0.00519573	  0.00270211	  5.27086489	  0.98171516	  0.99210217  0.44228686
++365	 -4.28050816	 -0.00518750	  0.00269726	  5.27532066	  0.98174687	  0.99211524  0.44233942
++366	 -4.28495120	 -0.00517932	  0.00269245	  5.27977188	  0.98177844	  0.99212824  0.44239262
++367	 -4.28938971	 -0.00517119	  0.00268767	  5.28421853	  0.98180986	  0.99214114  0.44244646
++368	 -4.29382368	 -0.00516310	  0.00268294	  5.28866058	  0.98184113	  0.99215396  0.44250093
++369	 -4.29825306	 -0.00515506	  0.00267825	  5.29309800	  0.98187227	  0.99216669  0.44255601
++370	 -4.30267785	 -0.00514707	  0.00267359	  5.29753078	  0.98190326	  0.99217934  0.44261171
++371	 -4.30709800	 -0.00513912	  0.00266898	  5.30195888	  0.98193412	  0.99219190  0.44266801
++372	 -4.31151350	 -0.00513122	  0.00266440	  5.30638227	  0.98196483	  0.99220438  0.44272490
++373	 -4.31592431	 -0.00512337	  0.00265985	  5.31080095	  0.98199542	  0.99221678  0.44278238
++374	 -4.32033043	 -0.00511555	  0.00265535	  5.31521487	  0.98202586	  0.99222910  0.44284044
++375	 -4.32473181	 -0.00510779	  0.00265088	  5.31962403	  0.98205617	  0.99224134  0.44289907
++376	 -4.32912844	 -0.00510006	  0.00264644	  5.32402838	  0.98208635	  0.99225350  0.44295825
++377	 -4.33352030	 -0.00509238	  0.00264204	  5.32842792	  0.98211639	  0.99226558  0.44301800
++378	 -4.33790735	 -0.00508474	  0.00263768	  5.33282261	  0.98214630	  0.99227758  0.44307829
++379	 -4.34228957	 -0.00507715	  0.00263335	  5.33721243	  0.98217609	  0.99228950  0.44313911
++380	 -4.34666695	 -0.00506959	  0.00262906	  5.34159736	  0.98220574	  0.99230135  0.44320047
++381	 -4.35103946	 -0.00506208	  0.00262479	  5.34597738	  0.98223526	  0.99231313  0.44326235
++382	 -4.35540706	 -0.00505461	  0.00262057	  5.35035246	  0.98226466	  0.99232483  0.44332475
++383	 -4.35976976	 -0.00504718	  0.00261637	  5.35472258	  0.98229393	  0.99233645  0.44338766
++384	 -4.36412751	 -0.00503978	  0.00261221	  5.35908772	  0.98232308	  0.99234800  0.44345107
++385	 -4.36848029	 -0.00503243	  0.00260808	  5.36344786	  0.98235210	  0.99235949  0.44351497
++386	 -4.37282810	 -0.00502512	  0.00260399	  5.36780298	  0.98238100	  0.99237089  0.44357936
++387	 -4.37717089	 -0.00501785	  0.00259992	  5.37215304	  0.98240977	  0.99238223  0.44364422
++388	 -4.38150866	 -0.00501061	  0.00259589	  5.37649804	  0.98243843	  0.99239350  0.44370956
++389	 -4.38584137	 -0.00500341	  0.00259189	  5.38083796	  0.98246696	  0.99240470  0.44377537
++390	 -4.39016901	 -0.00499626	  0.00258792	  5.38517276	  0.98249538	  0.99241583  0.44384163
++391	 -4.39449156	 -0.00498913	  0.00258397	  5.38950243	  0.98252368	  0.99242689  0.44390835
++392	 -4.39880900	 -0.00498205	  0.00258006	  5.39382695	  0.98255186	  0.99243789  0.44397551
++393	 -4.40312130	 -0.00497500	  0.00257618	  5.39814630	  0.98257992	  0.99244881  0.44404311
++394	 -4.40742845	 -0.00496799	  0.00257233	  5.40246046	  0.98260787	  0.99245968  0.44411114
++395	 -4.41173042	 -0.00496101	  0.00256851	  5.40676940	  0.98263570	  0.99247047  0.44417960
++396	 -4.41602719	 -0.00495407	  0.00256472	  5.41107312	  0.98266342	  0.99248121  0.44424847
++397	 -4.42031875	 -0.00494717	  0.00256096	  5.41537158	  0.98269102	  0.99249187  0.44431776
++398	 -4.42460508	 -0.00494030	  0.00255722	  5.41966478	  0.98271852	  0.99250248  0.44438745
++399	 -4.42888615	 -0.00493346	  0.00255351	  5.42395268	  0.98274590	  0.99251302  0.44445755
++400	 -4.43316194	 -0.00492666	  0.00254984	  5.42823528	  0.98277317	  0.99252350  0.44452803
++401	 -4.43743244	 -0.00491989	  0.00254618	  5.43251255	  0.98280033	  0.99253392  0.44459891
++402	 -4.44169763	 -0.00491316	  0.00254256	  5.43678447	  0.98282738	  0.99254428  0.44467016
++403	 -4.44595749	 -0.00490646	  0.00253896	  5.44105103	  0.98285433	  0.99255458  0.44474179
++404	 -4.45021200	 -0.00489979	  0.00253539	  5.44531221	  0.98288117	  0.99256482  0.44481379
++405	 -4.45446115	 -0.00489316	  0.00253185	  5.44956799	  0.98290790	  0.99257500  0.44488616
++406	 -4.45870490	 -0.00488655	  0.00252833	  5.45381835	  0.98293452	  0.99258512  0.44495888
++407	 -4.46294326	 -0.00487998	  0.00252484	  5.45806327	  0.98296105	  0.99259518  0.44503195
++408	 -4.46717619	 -0.00487344	  0.00252137	  5.46230275	  0.98298746	  0.99260519  0.44510537
++409	 -4.47140368	 -0.00486693	  0.00251793	  5.46653675	  0.98301378	  0.99261514  0.44517912
++410	 -4.47562571	 -0.00486046	  0.00251451	  5.47076526	  0.98303999	  0.99262503  0.44525322
++411	 -4.47984227	 -0.00485401	  0.00251112	  5.47498827	  0.98306610	  0.99263487  0.44532764
++412	 -4.48405334	 -0.00484759	  0.00250775	  5.47920575	  0.98309211	  0.99264465  0.44540238
++413	 -4.48825891	 -0.00484121	  0.00250441	  5.48341770	  0.98311802	  0.99265438  0.44547744
++414	 -4.49245894	 -0.00483485	  0.00250109	  5.48762409	  0.98314383	  0.99266406  0.44555282
++415	 -4.49665344	 -0.00482852	  0.00249780	  5.49182492	  0.98316954	  0.99267368  0.44562850
++416	 -4.50084238	 -0.00482223	  0.00249453	  5.49602015	  0.98319515	  0.99268325  0.44570449
++417	 -4.50502575	 -0.00481596	  0.00249128	  5.50020979	  0.98322067	  0.99269277  0.44578077
++418	 -4.50920352	 -0.00480972	  0.00248805	  5.50439380	  0.98324609	  0.99270223  0.44585734
++419	 -4.51337569	 -0.00480350	  0.00248485	  5.50857219	  0.98327141	  0.99271164  0.44593420
++420	 -4.51754224	 -0.00479732	  0.00248167	  5.51274492	  0.98329664	  0.99272101  0.44601134
++421	 -4.52170315	 -0.00479117	  0.00247851	  5.51691199	  0.98332177	  0.99273032  0.44608876
++422	 -4.52585842	 -0.00478504	  0.00247538	  5.52107338	  0.98334681	  0.99273958  0.44616645
++423	 -4.53000801	 -0.00477894	  0.00247227	  5.52522907	  0.98337176	  0.99274880  0.44624440
++424	 -4.53415192	 -0.00477286	  0.00246917	  5.52937906	  0.98339661	  0.99275796  0.44632262
++425	 -4.53829014	 -0.00476682	  0.00246610	  5.53352332	  0.98342137	  0.99276708  0.44640109
++426	 -4.54242264	 -0.00476080	  0.00246306	  5.53766184	  0.98344605	  0.99277615  0.44647982
++427	 -4.54654942	 -0.00475480	  0.00246003	  5.54179461	  0.98347063	  0.99278517  0.44655879
++428	 -4.55067046	 -0.00474884	  0.00245702	  5.54592162	  0.98349512	  0.99279414  0.44663801
++429	 -4.55478574	 -0.00474290	  0.00245404	  5.55004285	  0.98351952	  0.99280307  0.44671746
++430	 -4.55889526	 -0.00473698	  0.00245107	  5.55415828	  0.98354383	  0.99281195  0.44679715
++431	 -4.56299899	 -0.00473109	  0.00244812	  5.55826790	  0.98356806	  0.99282079  0.44687706
++432	 -4.56709693	 -0.00472522	  0.00244520	  5.56237170	  0.98359219	  0.99282958  0.44695720
++433	 -4.57118906	 -0.00471938	  0.00244229	  5.56646967	  0.98361625	  0.99283832  0.44703756
++434	 -4.57527536	 -0.00471357	  0.00243940	  5.57056179	  0.98364021	  0.99284703  0.44711814
++435	 -4.57935583	 -0.00470778	  0.00243654	  5.57464806	  0.98366409	  0.99285569  0.44719893
++436	 -4.58343045	 -0.00470201	  0.00243369	  5.57872844	  0.98368788	  0.99286430  0.44727992
++437	 -4.58749921	 -0.00469627	  0.00243086	  5.58280295	  0.98371159	  0.99287287  0.44736112
++438	 -4.59156210	 -0.00469055	  0.00242805	  5.58687155	  0.98373522	  0.99288140  0.44744252
++439	 -4.59561910	 -0.00468485	  0.00242526	  5.59093424	  0.98375876	  0.99288989  0.44752411
++440	 -4.59967020	 -0.00467918	  0.00242248	  5.59499102	  0.98378222	  0.99289833  0.44760589
++441	 -4.60371538	 -0.00467353	  0.00241973	  5.59904185	  0.98380560	  0.99290674  0.44768785
++442	 -4.60775465	 -0.00466791	  0.00241699	  5.60308674	  0.98382890	  0.99291510  0.44777000
++443	 -4.61178797	 -0.00466230	  0.00241427	  5.60712567	  0.98385211	  0.99292343  0.44785233
++444	 -4.61581536	 -0.00465672	  0.00241157	  5.61115863	  0.98387525	  0.99293171  0.44793483
++445	 -4.61983678	 -0.00465116	  0.00240889	  5.61518561	  0.98389830	  0.99293995  0.44801750
++446	 -4.62385223	 -0.00464563	  0.00240622	  5.61920660	  0.98392128	  0.99294815  0.44810034
++447	 -4.62786170	 -0.00464011	  0.00240357	  5.62322158	  0.98394418	  0.99295632  0.44818334
++448	 -4.63186517	 -0.00463462	  0.00240093	  5.62723055	  0.98396700	  0.99296444  0.44826650
++449	 -4.63586264	 -0.00462915	  0.00239832	  5.63123349	  0.98398974	  0.99297253  0.44834982
++450	 -4.63985410	 -0.00462370	  0.00239572	  5.63523040	  0.98401240	  0.99298058  0.44843328
++451	 -4.64383953	 -0.00461827	  0.00239313	  5.63922126	  0.98403499	  0.99298859  0.44851690
++452	 -4.64781892	 -0.00461286	  0.00239057	  5.64320606	  0.98405750	  0.99299657  0.44860066
++453	 -4.65179227	 -0.00460748	  0.00238802	  5.64718479	  0.98407993	  0.99300451  0.44868455
++454	 -4.65575956	 -0.00460211	  0.00238548	  5.65115744	  0.98410229	  0.99301241  0.44876859
++455	 -4.65972078	 -0.00459677	  0.00238296	  5.65512401	  0.98412458	  0.99302027  0.44885276
++456	 -4.66367592	 -0.00459144	  0.00238046	  5.65908448	  0.98414679	  0.99302810  0.44893706
++457	 -4.66762497	 -0.00458614	  0.00237797	  5.66303884	  0.98416893	  0.99303590  0.44902148
++458	 -4.67156793	 -0.00458085	  0.00237549	  5.66698708	  0.98419099	  0.99304366  0.44910603
++459	 -4.67550478	 -0.00457558	  0.00237303	  5.67092920	  0.98421298	  0.99305138  0.44919070
++460	 -4.67943552	 -0.00457034	  0.00237059	  5.67486518	  0.98423490	  0.99305907  0.44927549
++461	 -4.68336012	 -0.00456511	  0.00236816	  5.67879501	  0.98425675	  0.99306673  0.44936038
++462	 -4.68727860	 -0.00455990	  0.00236575	  5.68271869	  0.98427852	  0.99307435  0.44944539
++463	 -4.69119092	 -0.00455472	  0.00236335	  5.68663621	  0.98430023	  0.99308194  0.44953051
++464	 -4.69509710	 -0.00454955	  0.00236096	  5.69054755	  0.98432186	  0.99308949  0.44961572
++465	 -4.69899711	 -0.00454440	  0.00235859	  5.69445271	  0.98434343	  0.99309701  0.44970104
++466	 -4.70289095	 -0.00453926	  0.00235623	  5.69835168	  0.98436492	  0.99310450  0.44978646
++467	 -4.70677861	 -0.00453415	  0.00235389	  5.70224446	  0.98438635	  0.99311196  0.44987197
++468	 -4.71066008	 -0.00452905	  0.00235156	  5.70613103	  0.98440771	  0.99311939  0.44995757
++469	 -4.71453535	 -0.00452398	  0.00234924	  5.71001138	  0.98442899	  0.99312678  0.45004326
++470	 -4.71840442	 -0.00451892	  0.00234694	  5.71388551	  0.98445021	  0.99313414  0.45012903
++471	 -4.72226728	 -0.00451387	  0.00234465	  5.71775341	  0.98447137	  0.99314147  0.45021488
++472	 -4.72612392	 -0.00450885	  0.00234237	  5.72161507	  0.98449245	  0.99314877  0.45030082
++473	 -4.72997433	 -0.00450384	  0.00234011	  5.72547048	  0.98451347	  0.99315604  0.45038683
++474	 -4.73381850	 -0.00449885	  0.00233786	  5.72931964	  0.98453443	  0.99316328  0.45047291
++475	 -4.73765643	 -0.00449388	  0.00233562	  5.73316254	  0.98455532	  0.99317049  0.45055907
++476	 -4.74148810	 -0.00448893	  0.00233340	  5.73699917	  0.98457614	  0.99317767  0.45064529
++477	 -4.74531352	 -0.00448399	  0.00233119	  5.74082953	  0.98459690	  0.99318483  0.45073158
++478	 -4.74913267	 -0.00447907	  0.00232899	  5.74465360	  0.98461759	  0.99319195  0.45081792
++479	 -4.75294555	 -0.00447416	  0.00232680	  5.74847138	  0.98463822	  0.99319904  0.45090433
++480	 -4.75675214	 -0.00446927	  0.00232462	  5.75228287	  0.98465878	  0.99320610  0.45099080
++481	 -4.76055246	 -0.00446440	  0.00232246	  5.75608805	  0.98467929	  0.99321314  0.45107732
++482	 -4.76434647	 -0.00445955	  0.00232031	  5.75988693	  0.98469973	  0.99322015  0.45116389
++483	 -4.76813419	 -0.00445471	  0.00231816	  5.76367948	  0.98472010	  0.99322713  0.45125051
++484	 -4.77191560	 -0.00444988	  0.00231604	  5.76746572	  0.98474042	  0.99323408  0.45133717
++485	 -4.77569070	 -0.00444507	  0.00231392	  5.77124562	  0.98476067	  0.99324101  0.45142388
++486	 -4.77945947	 -0.00444028	  0.00231181	  5.77501919	  0.98478086	  0.99324791  0.45151063
++487	 -4.78322192	 -0.00443550	  0.00230972	  5.77878642	  0.98480099	  0.99325478  0.45159742
++488	 -4.78697804	 -0.00443074	  0.00230763	  5.78254730	  0.98482106	  0.99326162  0.45168425
++489	 -4.79072783	 -0.00442600	  0.00230556	  5.78630183	  0.98484107	  0.99326844  0.45177111
++490	 -4.79447127	 -0.00442127	  0.00230350	  5.79005000	  0.98486102	  0.99327523  0.45185800
++491	 -4.79820836	 -0.00441655	  0.00230145	  5.79379181	  0.98488091	  0.99328200  0.45194492
++492	 -4.80193909	 -0.00441185	  0.00229941	  5.79752724	  0.98490074	  0.99328874  0.45203187
++493	 -4.80566347	 -0.00440716	  0.00229738	  5.80125630	  0.98492051	  0.99329546  0.45211884
++494	 -4.80938148	 -0.00440249	  0.00229536	  5.80497899	  0.98494022	  0.99330215  0.45220583
++495	 -4.81309312	 -0.00439783	  0.00229335	  5.80869528	  0.98495988	  0.99330881  0.45229285
++496	 -4.81679838	 -0.00439319	  0.00229135	  5.81240519	  0.98497947	  0.99331546  0.45237988
++497	 -4.82049726	 -0.00438856	  0.00228937	  5.81610870	  0.98499901	  0.99332207  0.45246692
++498	 -4.82418976	 -0.00438395	  0.00228739	  5.81980581	  0.98501850	  0.99332866  0.45255398
++499	 -4.82787587	 -0.00437935	  0.00228542	  5.82349652	  0.98503792	  0.99333523  0.45264105
++500	 -4.83155558	 -0.00437476	  0.00228346	  5.82718082	  0.98505729	  0.99334178  0.45272813
++501	 -4.83522889	 -0.00437019	  0.00228151	  5.83085870	  0.98507660	  0.99334830  0.45281521
++502	 -4.83889580	 -0.00436563	  0.00227957	  5.83453017	  0.98509586	  0.99335480  0.45290231
++503	 -4.84255630	 -0.00436109	  0.00227764	  5.83819521	  0.98511506	  0.99336127  0.45298940
++504	 -4.84621038	 -0.00435656	  0.00227572	  5.84185383	  0.98513421	  0.99336772  0.45307649
++505	 -4.84985805	 -0.00435204	  0.00227381	  5.84550601	  0.98515330	  0.99337415  0.45316358
++506	 -4.85349930	 -0.00434753	  0.00227191	  5.84915177	  0.98517233	  0.99338056  0.45325067
++507	 -4.85713412	 -0.00434304	  0.00227002	  5.85279108	  0.98519132	  0.99338694  0.45333775
++508	 -4.86076252	 -0.00433856	  0.00226813	  5.85642396	  0.98521024	  0.99339330  0.45342482
++509	 -4.86438448	 -0.00433410	  0.00226626	  5.86005038	  0.98522912	  0.99339964  0.45351189
++510	 -4.86800001	 -0.00432965	  0.00226439	  5.86367036	  0.98524794	  0.99340596  0.45359894
++511	 -4.87160909	 -0.00432521	  0.00226253	  5.86728389	  0.98526671	  0.99341226  0.45368598
++512	 -4.87521174	 -0.00432078	  0.00226069	  5.87089096	  0.98528542	  0.99341853  0.45377301
++513	 -4.87880793	 -0.00431637	  0.00225885	  5.87449157	  0.98530409	  0.99342479  0.45386001
++514	 -4.88239768	 -0.00431196	  0.00225701	  5.87808572	  0.98532270	  0.99343102  0.45394700
++515	 -4.88598098	 -0.00430758	  0.00225519	  5.88167340	  0.98534126	  0.99343723  0.45403397
++516	 -4.88955781	 -0.00430320	  0.00225338	  5.88525462	  0.98535976	  0.99344342  0.45412092
++517	 -4.89312819	 -0.00429883	  0.00225157	  5.88882936	  0.98537822	  0.99344960  0.45420784
++518	 -4.89669211	 -0.00429448	  0.00224977	  5.89239763	  0.98539662	  0.99345575  0.45429473
++519	 -4.90024957	 -0.00429014	  0.00224798	  5.89595942	  0.98541498	  0.99346188  0.45438160
++520	 -4.90380055	 -0.00428581	  0.00224620	  5.89951474	  0.98543328	  0.99346799  0.45446844
++521	 -4.90734507	 -0.00428150	  0.00224442	  5.90306357	  0.98545154	  0.99347408  0.45455524
++522	 -4.91088312	 -0.00427719	  0.00224266	  5.90660592	  0.98546974	  0.99348015  0.45464201
++523	 -4.91441469	 -0.00427290	  0.00224090	  5.91014179	  0.98548790	  0.99348620  0.45472875
++524	 -4.91793978	 -0.00426862	  0.00223915	  5.91367116	  0.98550600	  0.99349224  0.45481546
++525	 -4.92145840	 -0.00426435	  0.00223740	  5.91719405	  0.98552406	  0.99349825  0.45490212
++526	 -4.92497053	 -0.00426009	  0.00223566	  5.92071044	  0.98554206	  0.99350425  0.45498875
++527	 -4.92847618	 -0.00425584	  0.00223394	  5.92422034	  0.98556002	  0.99351022  0.45507533
++528	 -4.93197535	 -0.00425160	  0.00223221	  5.92772375	  0.98557793	  0.99351618  0.45516187
++529	 -4.93546803	 -0.00424738	  0.00223050	  5.93122065	  0.98559579	  0.99352212  0.45524837
++530	 -4.93895423	 -0.00424317	  0.00222879	  5.93471106	  0.98561361	  0.99352804  0.45533482
++531	 -4.94243393	 -0.00423896	  0.00222709	  5.93819497	  0.98563138	  0.99353395  0.45542123
++532	 -4.94590714	 -0.00423477	  0.00222540	  5.94167237	  0.98564910	  0.99353983  0.45550758
++533	 -4.94937386	 -0.00423059	  0.00222371	  5.94514327	  0.98566677	  0.99354570  0.45559389
++534	 -4.95283409	 -0.00422642	  0.00222203	  5.94860767	  0.98568439	  0.99355155  0.45568014
++535	 -4.95628782	 -0.00422226	  0.00222036	  5.95206556	  0.98570197	  0.99355738  0.45576634
++536	 -4.95973505	 -0.00421811	  0.00221869	  5.95551694	  0.98571951	  0.99356320  0.45585249
++537	 -4.96317579	 -0.00421397	  0.00221703	  5.95896181	  0.98573699	  0.99356900  0.45593858
++538	 -4.96661002	 -0.00420984	  0.00221538	  5.96240018	  0.98575444	  0.99357478  0.45602462
++539	 -4.97003776	 -0.00420573	  0.00221373	  5.96583204	  0.98577183	  0.99358054  0.45611059
++540	 -4.97345900	 -0.00420162	  0.00221209	  5.96925738	  0.98578918	  0.99358629  0.45619651
++541	 -4.97687374	 -0.00419752	  0.00221046	  5.97267622	  0.98580649	  0.99359202  0.45628236
++542	 -4.98028197	 -0.00419344	  0.00220883	  5.97608854	  0.98582375	  0.99359774  0.45636816
++543	 -4.98368371	 -0.00418936	  0.00220721	  5.97949435	  0.98584096	  0.99360343  0.45645388
++544	 -4.98707894	 -0.00418529	  0.00220559	  5.98289365	  0.98585814	  0.99360912  0.45653955
++545	 -4.99046767	 -0.00418123	  0.00220398	  5.98628643	  0.98587526	  0.99361478  0.45662514
++546	 -4.99384989	 -0.00417719	  0.00220238	  5.98967270	  0.98589235	  0.99362043  0.45671067
++547	 -4.99722561	 -0.00417315	  0.00220078	  5.99305246	  0.98590939	  0.99362607  0.45679613
++548	 -5.00059483	 -0.00416912	  0.00219919	  5.99642571	  0.98592638	  0.99363169  0.45688152
++549	 -5.00395754	 -0.00416511	  0.00219761	  5.99979244	  0.98594334	  0.99363729  0.45696684
++550	 -5.00731375	 -0.00416110	  0.00219603	  6.00315266	  0.98596025	  0.99364288  0.45705209
++551	 -5.01066346	 -0.00415710	  0.00219445	  6.00650636	  0.98597712	  0.99364845  0.45713726
++552	 -5.01400667	 -0.00415311	  0.00219288	  6.00985356	  0.98599394	  0.99365401  0.45722236
++553	 -5.01734337	 -0.00414913	  0.00219132	  6.01319424	  0.98601072	  0.99365955  0.45730738
++554	 -5.02067356	 -0.00414516	  0.00218976	  6.01652841	  0.98602746	  0.99366508  0.45739233
++555	 -5.02399726	 -0.00414120	  0.00218821	  6.01985606	  0.98604416	  0.99367059  0.45747719
++556	 -5.02731445	 -0.00413724	  0.00218666	  6.02317721	  0.98606082	  0.99367609  0.45756198
++557	 -5.03062515	 -0.00413330	  0.00218512	  6.02649184	  0.98607744	  0.99368157  0.45764669
++558	 -5.03392934	 -0.00412937	  0.00218359	  6.02979997	  0.98609401	  0.99368704  0.45773131
++559	 -5.03722703	 -0.00412544	  0.00218206	  6.03310159	  0.98611054	  0.99369250  0.45781585
++560	 -5.04051822	 -0.00412153	  0.00218053	  6.03639670	  0.98612704	  0.99369794  0.45790031
++561	 -5.04380292	 -0.00411762	  0.00217901	  6.03968530	  0.98614349	  0.99370337  0.45798469
++562	 -5.04708112	 -0.00411372	  0.00217750	  6.04296739	  0.98615990	  0.99370878  0.45806897
++563	 -5.05035282	 -0.00410983	  0.00217599	  6.04624299	  0.98617627	  0.99371418  0.45815318
++564	 -5.05361802	 -0.00410595	  0.00217448	  6.04951207	  0.98619260	  0.99371957  0.45823729
++565	 -5.05687674	 -0.00410208	  0.00217298	  6.05277466	  0.98620889	  0.99372494  0.45832131
++566	 -5.06012896	 -0.00409821	  0.00217148	  6.05603074	  0.98622514	  0.99373030  0.45840525
++567	 -5.06337469	 -0.00409436	  0.00216999	  6.05928033	  0.98624135	  0.99373565  0.45848909
++568	 -5.06661393	 -0.00409051	  0.00216851	  6.06252341	  0.98625753	  0.99374098  0.45857285
++569	 -5.06984668	 -0.00408668	  0.00216703	  6.06576000	  0.98627366	  0.99374630  0.45865651
++570	 -5.07307294	 -0.00408285	  0.00216555	  6.06899010	  0.98628975	  0.99375161  0.45874007
++571	 -5.07629272	 -0.00407902	  0.00216408	  6.07221370	  0.98630581	  0.99375690  0.45882355
++572	 -5.07950602	 -0.00407521	  0.00216261	  6.07543081	  0.98632182	  0.99376218  0.45890693
++573	 -5.08271283	 -0.00407141	  0.00216115	  6.07864143	  0.98633780	  0.99376745  0.45899021
++574	 -5.08591317	 -0.00406761	  0.00215969	  6.08184556	  0.98635374	  0.99377270  0.45907339
++575	 -5.08910703	 -0.00406382	  0.00215823	  6.08504321	  0.98636965	  0.99377795  0.45915648
++576	 -5.09229441	 -0.00406004	  0.00215678	  6.08823437	  0.98638551	  0.99378318  0.45923947
++577	 -5.09547532	 -0.00405627	  0.00215534	  6.09141905	  0.98640134	  0.99378840  0.45932235
++578	 -5.09864975	 -0.00405250	  0.00215390	  6.09459725	  0.98641713	  0.99379360  0.45940514
++579	 -5.10181772	 -0.00404874	  0.00215246	  6.09776897	  0.98643288	  0.99379880  0.45948783
++580	 -5.10497922	 -0.00404500	  0.00215102	  6.10093422	  0.98644859	  0.99380398  0.45957041
++581	 -5.10813425	 -0.00404125	  0.00214960	  6.10409300	  0.98646427	  0.99380915  0.45965289
++582	 -5.11128282	 -0.00403752	  0.00214817	  6.10724530	  0.98647991	  0.99381431  0.45973527
++583	 -5.11442494	 -0.00403379	  0.00214675	  6.11039114	  0.98649552	  0.99381946  0.45981755
++584	 -5.11756059	 -0.00403008	  0.00214533	  6.11353051	  0.98651108	  0.99382459  0.45989972
++585	 -5.12068979	 -0.00402637	  0.00214392	  6.11666343	  0.98652662	  0.99382971  0.45998178
++586	 -5.12381254	 -0.00402266	  0.00214251	  6.11978988	  0.98654211	  0.99383483  0.46006373
++587	 -5.12692884	 -0.00401897	  0.00214110	  6.12290987	  0.98655757	  0.99383993  0.46014558
++588	 -5.13003869	 -0.00401528	  0.00213970	  6.12602341	  0.98657300	  0.99384502  0.46022732
++589	 -5.13314210	 -0.00401160	  0.00213831	  6.12913050	  0.98658838	  0.99385010  0.46030896
++590	 -5.13623906	 -0.00400792	  0.00213691	  6.13223114	  0.98660374	  0.99385516  0.46039048
++591	 -5.13932959	 -0.00400426	  0.00213552	  6.13532533	  0.98661906	  0.99386022  0.46047189
++592	 -5.14241368	 -0.00400060	  0.00213413	  6.13841308	  0.98663434	  0.99386527  0.46055319
++593	 -5.14549135	 -0.00399695	  0.00213275	  6.14149440	  0.98664959	  0.99387030  0.46063438
++594	 -5.14856258	 -0.00399330	  0.00213137	  6.14456928	  0.98666480	  0.99387532  0.46071546
++595	 -5.15162739	 -0.00398967	  0.00213000	  6.14763772	  0.98667998	  0.99388034  0.46079643
++596	 -5.15468577	 -0.00398604	  0.00212862	  6.15069974	  0.98669512	  0.99388534  0.46087728
++597	 -5.15773774	 -0.00398241	  0.00212725	  6.15375533	  0.98671023	  0.99389033  0.46095802
++598	 -5.16078329	 -0.00397880	  0.00212589	  6.15680449	  0.98672531	  0.99389532  0.46103864
++599	 -5.16382243	 -0.00397519	  0.00212453	  6.15984724	  0.98674035	  0.99390029  0.46111915
++600	 -5.16685516	 -0.00397159	  0.00212317	  6.16288358	  0.98675535	  0.99390525  0.46119954
++601	 -5.16988149	 -0.00396799	  0.00212181	  6.16591350	  0.98677033	  0.99391020  0.46127982
++602	 -5.17290141	 -0.00396440	  0.00212046	  6.16893701	  0.98678527	  0.99391514  0.46135997
++603	 -5.17591494	 -0.00396082	  0.00211911	  6.17195412	  0.98680017	  0.99392007  0.46144001
++604	 -5.17892208	 -0.00395724	  0.00211776	  6.17496483	  0.98681505	  0.99392499  0.46151994
++605	 -5.18192282	 -0.00395368	  0.00211642	  6.17796914	  0.98682989	  0.99392990  0.46159974
++606	 -5.18491718	 -0.00395011	  0.00211508	  6.18096706	  0.98684470	  0.99393481  0.46167943
++607	 -5.18790516	 -0.00394656	  0.00211374	  6.18395860	  0.98685947	  0.99393970  0.46175899
++608	 -5.19088675	 -0.00394301	  0.00211241	  6.18694374	  0.98687421	  0.99394458  0.46183843
++609	 -5.19386198	 -0.00393947	  0.00211108	  6.18992251	  0.98688892	  0.99394945  0.46191776
++610	 -5.19683083	 -0.00393593	  0.00210975	  6.19289490	  0.98690360	  0.99395432  0.46199696
++611	 -5.19979332	 -0.00393241	  0.00210843	  6.19586092	  0.98691824	  0.99395917  0.46207604
++612	 -5.20274945	 -0.00392888	  0.00210710	  6.19882057	  0.98693285	  0.99396401  0.46215500
++613	 -5.20569922	 -0.00392537	  0.00210578	  6.20177385	  0.98694743	  0.99396885  0.46223383
++614	 -5.20864264	 -0.00392186	  0.00210447	  6.20472078	  0.98696198	  0.99397367  0.46231254
++615	 -5.21157971	 -0.00391835	  0.00210315	  6.20766135	  0.98697650	  0.99397849  0.46239113
++616	 -5.21451043	 -0.00391486	  0.00210184	  6.21059558	  0.98699098	  0.99398330  0.46246959
++617	 -5.21743482	 -0.00391137	  0.00210054	  6.21352345	  0.98700544	  0.99398810  0.46254793
++618	 -5.22035287	 -0.00390788	  0.00209923	  6.21644499	  0.98701986	  0.99399289  0.46262614
++619	 -5.22326459	 -0.00390440	  0.00209793	  6.21936019	  0.98703425	  0.99399767  0.46270423
++620	 -5.22616999	 -0.00390093	  0.00209663	  6.22226905	  0.98704861	  0.99400244  0.46278219
++621	 -5.22906906	 -0.00389747	  0.00209533	  6.22517159	  0.98706294	  0.99400720  0.46286003
++622	 -5.23196182	 -0.00389401	  0.00209404	  6.22806781	  0.98707724	  0.99401196  0.46293774
++623	 -5.23484826	 -0.00389055	  0.00209274	  6.23095771	  0.98709151	  0.99401670  0.46301532
++624	 -5.23772840	 -0.00388711	  0.00209145	  6.23384129	  0.98710574	  0.99402144  0.46309277
++625	 -5.24060224	 -0.00388366	  0.00209017	  6.23671857	  0.98711995	  0.99402617  0.46317009
++626	 -5.24346978	 -0.00388023	  0.00208888	  6.23958955	  0.98713413	  0.99403089  0.46324729
++627	 -5.24633103	 -0.00387680	  0.00208760	  6.24245423	  0.98714827	  0.99403560  0.46332436
++628	 -5.24918599	 -0.00387338	  0.00208632	  6.24531261	  0.98716239	  0.99404030  0.46340129
++629	 -5.25203467	 -0.00386996	  0.00208504	  6.24816471	  0.98717648	  0.99404500  0.46347810
++630	 -5.25487707	 -0.00386655	  0.00208377	  6.25101053	  0.98719053	  0.99404969  0.46355478
++631	 -5.25771320	 -0.00386314	  0.00208250	  6.25385007	  0.98720456	  0.99405436  0.46363133
++632	 -5.26054307	 -0.00385974	  0.00208123	  6.25668333	  0.98721856	  0.99405904  0.46370775
++633	 -5.26336668	 -0.00385634	  0.00207996	  6.25951033	  0.98723253	  0.99406370  0.46378403
++634	 -5.26618402	 -0.00385295	  0.00207869	  6.26233107	  0.98724646	  0.99406835  0.46386019
++635	 -5.26899512	 -0.00384957	  0.00207743	  6.26514555	  0.98726037	  0.99407300  0.46393621
++636	 -5.27179998	 -0.00384619	  0.00207617	  6.26795379	  0.98727425	  0.99407764  0.46401210
++637	 -5.27459860	 -0.00384282	  0.00207491	  6.27075577	  0.98728810	  0.99408227  0.46408786
++638	 -5.27739098	 -0.00383945	  0.00207365	  6.27355152	  0.98730193	  0.99408689  0.46416348
++639	 -5.28017713	 -0.00383609	  0.00207240	  6.27634104	  0.98731572	  0.99409151  0.46423898
++640	 -5.28295706	 -0.00383274	  0.00207115	  6.27912432	  0.98732949	  0.99409612  0.46431433
++641	 -5.28573078	 -0.00382939	  0.00206989	  6.28190139	  0.98734322	  0.99410072  0.46438956
++642	 -5.28849828	 -0.00382604	  0.00206865	  6.28467224	  0.98735693	  0.99410531  0.46446465
++643	 -5.29125958	 -0.00382271	  0.00206740	  6.28743687	  0.98737061	  0.99410989  0.46453961
++644	 -5.29401468	 -0.00381937	  0.00206616	  6.29019530	  0.98738426	  0.99411447  0.46461443
++645	 -5.29676358	 -0.00381604	  0.00206491	  6.29294754	  0.98739789	  0.99411904  0.46468912
++646	 -5.29950630	 -0.00381272	  0.00206367	  6.29569358	  0.98741148	  0.99412361  0.46476368
++647	 -5.30224283	 -0.00380940	  0.00206243	  6.29843343	  0.98742505	  0.99412816  0.46483809
++648	 -5.30497319	 -0.00380609	  0.00206120	  6.30116710	  0.98743859	  0.99413271  0.46491238
++649	 -5.30769738	 -0.00380279	  0.00205996	  6.30389459	  0.98745210	  0.99413725  0.46498652
++650	 -5.31041540	 -0.00379948	  0.00205873	  6.30661592	  0.98746559	  0.99414179  0.46506054
++651	 -5.31312727	 -0.00379619	  0.00205750	  6.30933108	  0.98747905	  0.99414631  0.46513441
++652	 -5.31583299	 -0.00379290	  0.00205627	  6.31204009	  0.98749248	  0.99415083  0.46520815
++653	 -5.31853255	 -0.00378961	  0.00205504	  6.31474294	  0.98750588	  0.99415535  0.46528175
++654	 -5.32122598	 -0.00378633	  0.00205382	  6.31743965	  0.98751926	  0.99415985  0.46535522
++655	 -5.32391328	 -0.00378306	  0.00205259	  6.32013023	  0.98753261	  0.99416435  0.46542855
++656	 -5.32659445	 -0.00377979	  0.00205137	  6.32281466	  0.98754593	  0.99416884  0.46550174
++657	 -5.32926950	 -0.00377652	  0.00205015	  6.32549298	  0.98755923	  0.99417333  0.46557479
++658	 -5.33193843	 -0.00377326	  0.00204893	  6.32816517	  0.98757249	  0.99417781  0.46564771
++659	 -5.33460126	 -0.00377000	  0.00204772	  6.33083125	  0.98758574	  0.99418228  0.46572049
++660	 -5.33725798	 -0.00376675	  0.00204650	  6.33349123	  0.98759895	  0.99418674  0.46579313
++661	 -5.33990861	 -0.00376351	  0.00204529	  6.33614511	  0.98761214	  0.99419120  0.46586563
++662	 -5.34255316	 -0.00376027	  0.00204408	  6.33879289	  0.98762531	  0.99419565  0.46593799
++663	 -5.34519162	 -0.00375703	  0.00204287	  6.34143458	  0.98763844	  0.99420010  0.46601022
++664	 -5.34782400	 -0.00375380	  0.00204166	  6.34407020	  0.98765155	  0.99420454  0.46608230
++665	 -5.35045032	 -0.00375058	  0.00204045	  6.34669974	  0.98766464	  0.99420897  0.46615425
++666	 -5.35307057	 -0.00374736	  0.00203925	  6.34932321	  0.98767770	  0.99421340  0.46622606
++667	 -5.35568477	 -0.00374414	  0.00203804	  6.35194063	  0.98769073	  0.99421781  0.46629773
++668	 -5.35829292	 -0.00374093	  0.00203684	  6.35455199	  0.98770374	  0.99422223  0.46636926
++669	 -5.36089503	 -0.00373773	  0.00203564	  6.35715730	  0.98771672	  0.99422663  0.46644065
++670	 -5.36349110	 -0.00373453	  0.00203444	  6.35975657	  0.98772968	  0.99423103  0.46651190
++671	 -5.36608114	 -0.00373133	  0.00203324	  6.36234981	  0.98774261	  0.99423543  0.46658301
++672	 -5.36866517	 -0.00372814	  0.00203205	  6.36493703	  0.98775552	  0.99423982  0.46665398
++673	 -5.37124318	 -0.00372495	  0.00203085	  6.36751823	  0.98776840	  0.99424420  0.46672482
++674	 -5.37381518	 -0.00372177	  0.00202966	  6.37009341	  0.98778125	  0.99424857  0.46679551
++675	 -5.37638118	 -0.00371859	  0.00202847	  6.37266259	  0.98779408	  0.99425294  0.46686606
++676	 -5.37894119	 -0.00371542	  0.00202728	  6.37522577	  0.98780689	  0.99425730  0.46693647
++677	 -5.38149521	 -0.00371225	  0.00202609	  6.37778296	  0.98781967	  0.99426166  0.46700674
++678	 -5.38404325	 -0.00370909	  0.00202490	  6.38033416	  0.98783243	  0.99426601  0.46707687
++679	 -5.38658532	 -0.00370593	  0.00202371	  6.38287939	  0.98784516	  0.99427036  0.46714686
++680	 -5.38912142	 -0.00370278	  0.00202253	  6.38541865	  0.98785786	  0.99427470  0.46721671
++681	 -5.39165157	 -0.00369963	  0.00202134	  6.38795194	  0.98787055	  0.99427903  0.46728642
++682	 -5.39417576	 -0.00369648	  0.00202016	  6.39047928	  0.98788320	  0.99428336  0.46735598
++683	 -5.39669401	 -0.00369334	  0.00201898	  6.39300067	  0.98789584	  0.99428768  0.46742541
++684	 -5.39920633	 -0.00369021	  0.00201780	  6.39551612	  0.98790845	  0.99429200  0.46749470
++685	 -5.40171272	 -0.00368707	  0.00201662	  6.39802564	  0.98792103	  0.99429631  0.46756384
++686	 -5.40421318	 -0.00368395	  0.00201544	  6.40052923	  0.98793359	  0.99430061  0.46763284
++687	 -5.40670773	 -0.00368082	  0.00201427	  6.40302690	  0.98794613	  0.99430491  0.46770170
++688	 -5.40919637	 -0.00367771	  0.00201309	  6.40551867	  0.98795864	  0.99430920  0.46777042
++689	 -5.41167912	 -0.00367459	  0.00201192	  6.40800452	  0.98797113	  0.99431349  0.46783900
++690	 -5.41415597	 -0.00367148	  0.00201075	  6.41048448	  0.98798360	  0.99431777  0.46790744
++691	 -5.41662693	 -0.00366838	  0.00200957	  6.41295855	  0.98799604	  0.99432205  0.46797574
++692	 -5.41909202	 -0.00366528	  0.00200840	  6.41542674	  0.98800846	  0.99432632  0.46804389
++693	 -5.42155124	 -0.00366218	  0.00200724	  6.41788906	  0.98802085	  0.99433058  0.46811190
++694	 -5.42400460	 -0.00365909	  0.00200607	  6.42034551	  0.98803323	  0.99433484  0.46817978
++695	 -5.42645210	 -0.00365600	  0.00200490	  6.42279610	  0.98804557	  0.99433910  0.46824751
++696	 -5.42889376	 -0.00365292	  0.00200374	  6.42524084	  0.98805790	  0.99434334  0.46831509
++697	 -5.43132958	 -0.00364984	  0.00200257	  6.42767973	  0.98807020	  0.99434759  0.46838254
++698	 -5.43375956	 -0.00364677	  0.00200141	  6.43011279	  0.98808248	  0.99435183  0.46844985
++699	 -5.43618372	 -0.00364370	  0.00200024	  6.43254002	  0.98809474	  0.99435606  0.46851701
++700	 -5.43860207	 -0.00364063	  0.00199908	  6.43496143	  0.98810697	  0.99436029  0.46858403
++701	 -5.44101460	 -0.00363757	  0.00199792	  6.43737703	  0.98811918	  0.99436451  0.46865091
++702	 -5.44342134	 -0.00363451	  0.00199676	  6.43978683	  0.98813137	  0.99436872  0.46871765
++703	 -5.44582228	 -0.00363146	  0.00199561	  6.44219082	  0.98814353	  0.99437294  0.46878424
++704	 -5.44821744	 -0.00362841	  0.00199445	  6.44458903	  0.98815567	  0.99437714  0.46885070
++705	 -5.45060682	 -0.00362536	  0.00199329	  6.44698145	  0.98816779	  0.99438134  0.46891701
++706	 -5.45299043	 -0.00362232	  0.00199214	  6.44936811	  0.98817989	  0.99438554  0.46898318
++707	 -5.45536828	 -0.00361929	  0.00199098	  6.45174899	  0.98819196	  0.99438973  0.46904921
++708	 -5.45774037	 -0.00361625	  0.00198983	  6.45412412	  0.98820402	  0.99439392  0.46911510
++709	 -5.46010672	 -0.00361323	  0.00198868	  6.45649350	  0.98821605	  0.99439810  0.46918084
++710	 -5.46246734	 -0.00361020	  0.00198753	  6.45885714	  0.98822805	  0.99440227  0.46924645
++711	 -5.46482222	 -0.00360718	  0.00198638	  6.46121504	  0.98824004	  0.99440644  0.46931191
++712	 -5.46717138	 -0.00360417	  0.00198523	  6.46356722	  0.98825200	  0.99441061  0.46937723
++713	 -5.46951483	 -0.00360115	  0.00198408	  6.46591367	  0.98826395	  0.99441477  0.46944241
++714	 -5.47185257	 -0.00359814	  0.00198293	  6.46825442	  0.98827587	  0.99441892  0.46950744
++715	 -5.47418461	 -0.00359514	  0.00198178	  6.47058947	  0.98828776	  0.99442308  0.46957234
++716	 -5.47651097	 -0.00359214	  0.00198064	  6.47291883	  0.98829964	  0.99442722  0.46963709
++717	 -5.47883164	 -0.00358914	  0.00197949	  6.47524250	  0.98831150	  0.99443136  0.46970170
++718	 -5.48114664	 -0.00358615	  0.00197835	  6.47756049	  0.98832333	  0.99443550  0.46976617
++719	 -5.48345598	 -0.00358316	  0.00197721	  6.47987281	  0.98833514	  0.99443963  0.46983050
++720	 -5.48575966	 -0.00358018	  0.00197606	  6.48217948	  0.98834693	  0.99444376  0.46989469
++721	 -5.48805769	 -0.00357720	  0.00197492	  6.48448049	  0.98835870	  0.99444788  0.46995873
++722	 -5.49035007	 -0.00357422	  0.00197378	  6.48677585	  0.98837045	  0.99445200  0.47002264
++723	 -5.49263683	 -0.00357125	  0.00197264	  6.48906558	  0.98838217	  0.99445611  0.47008640
++724	 -5.49491797	 -0.00356828	  0.00197150	  6.49134968	  0.98839388	  0.99446022  0.47015002
++725	 -5.49719348	 -0.00356532	  0.00197036	  6.49362817	  0.98840556	  0.99446432  0.47021350
++726	 -5.49946339	 -0.00356236	  0.00196923	  6.49590104	  0.98841723	  0.99446842  0.47027684
++727	 -5.50172771	 -0.00355940	  0.00196809	  6.49816831	  0.98842887	  0.99447251  0.47034004
++728	 -5.50398643	 -0.00355645	  0.00196695	  6.50042998	  0.98844049	  0.99447660  0.47040310
++729	 -5.50623957	 -0.00355350	  0.00196582	  6.50268607	  0.98845209	  0.99448068  0.47046602
++730	 -5.50848713	 -0.00355055	  0.00196468	  6.50493658	  0.98846367	  0.99448476  0.47052879
++731	 -5.51072913	 -0.00354761	  0.00196355	  6.50718152	  0.98847523	  0.99448884  0.47059143
++732	 -5.51296557	 -0.00354467	  0.00196242	  6.50942090	  0.98848677	  0.99449291  0.47065392
++733	 -5.51519647	 -0.00354174	  0.00196129	  6.51165473	  0.98849828	  0.99449698  0.47071627
++734	 -5.51742182	 -0.00353881	  0.00196016	  6.51388301	  0.98850978	  0.99450104  0.47077849
++735	 -5.51964164	 -0.00353588	  0.00195902	  6.51610576	  0.98852126	  0.99450510  0.47084056
++736	 -5.52185594	 -0.00353296	  0.00195789	  6.51832298	  0.98853271	  0.99450915  0.47090249
++737	 -5.52406473	 -0.00353004	  0.00195677	  6.52053469	  0.98854415	  0.99451320  0.47096428
++738	 -5.52626800	 -0.00352712	  0.00195564	  6.52274088	  0.98855556	  0.99451724  0.47102593
++739	 -5.52846578	 -0.00352421	  0.00195451	  6.52494157	  0.98856696	  0.99452128  0.47108744
++740	 -5.53065808	 -0.00352130	  0.00195338	  6.52713677	  0.98857834	  0.99452532  0.47114881
++741	 -5.53284489	 -0.00351840	  0.00195226	  6.52932649	  0.98858969	  0.99452935  0.47121004
++742	 -5.53502623	 -0.00351550	  0.00195113	  6.53151073	  0.98860103	  0.99453337  0.47127113
++743	 -5.53720210	 -0.00351260	  0.00195001	  6.53368950	  0.98861234	  0.99453740  0.47133208
++744	 -5.53937252	 -0.00350971	  0.00194888	  6.53586282	  0.98862364	  0.99454141  0.47139289
++745	 -5.54153750	 -0.00350682	  0.00194776	  6.53803068	  0.98863491	  0.99454543  0.47145356
++746	 -5.54369704	 -0.00350393	  0.00194663	  6.54019311	  0.98864617	  0.99454944  0.47151409
++747	 -5.54585115	 -0.00350105	  0.00194551	  6.54235010	  0.98865740	  0.99455344  0.47157449
++748	 -5.54799984	 -0.00349817	  0.00194439	  6.54450167	  0.98866862	  0.99455744  0.47163474
++749	 -5.55014311	 -0.00349529	  0.00194327	  6.54664782	  0.98867982	  0.99456144  0.47169485
++750	 -5.55228099	 -0.00349242	  0.00194215	  6.54878857	  0.98869099	  0.99456543  0.47175483
++751	 -5.55441347	 -0.00348955	  0.00194103	  6.55092392	  0.98870215	  0.99456942  0.47181466
++752	 -5.55654057	 -0.00348669	  0.00193991	  6.55305388	  0.98871329	  0.99457340  0.47187436
++753	 -5.55866229	 -0.00348383	  0.00193879	  6.55517846	  0.98872441	  0.99457738  0.47193391
++754	 -5.56077864	 -0.00348097	  0.00193767	  6.55729767	  0.98873551	  0.99458136  0.47199333
++755	 -5.56288964	 -0.00347811	  0.00193655	  6.55941152	  0.98874659	  0.99458533  0.47205261
++756	 -5.56499528	 -0.00347526	  0.00193544	  6.56152002	  0.98875765	  0.99458930  0.47211176
++757	 -5.56709558	 -0.00347242	  0.00193432	  6.56362317	  0.98876869	  0.99459326  0.47217076
++758	 -5.56919055	 -0.00346957	  0.00193321	  6.56572098	  0.98877972	  0.99459722  0.47222962
++759	 -5.57128020	 -0.00346673	  0.00193209	  6.56781347	  0.98879072	  0.99460118  0.47228835
++760	 -5.57336453	 -0.00346390	  0.00193098	  6.56990064	  0.98880171	  0.99460513  0.47234694
++761	 -5.57544356	 -0.00346106	  0.00192986	  6.57198250	  0.98881267	  0.99460907  0.47240539
++762	 -5.57751729	 -0.00345823	  0.00192875	  6.57405906	  0.98882362	  0.99461302  0.47246371
++763	 -5.57958573	 -0.00345541	  0.00192764	  6.57613032	  0.98883455	  0.99461696  0.47252188
++764	 -5.58164889	 -0.00345259	  0.00192652	  6.57819631	  0.98884546	  0.99462089  0.47257992
++765	 -5.58370679	 -0.00344977	  0.00192541	  6.58025702	  0.98885635	  0.99462482  0.47263782
++766	 -5.58575942	 -0.00344695	  0.00192430	  6.58231247	  0.98886722	  0.99462875  0.47269559
++767	 -5.58780679	 -0.00344414	  0.00192319	  6.58436266	  0.98887808	  0.99463267  0.47275321
++768	 -5.58984893	 -0.00344133	  0.00192208	  6.58640760	  0.98888891	  0.99463659  0.47281070
++769	 -5.59188583	 -0.00343852	  0.00192097	  6.58844731	  0.98889973	  0.99464051  0.47286806
++770	 -5.59391750	 -0.00343572	  0.00191986	  6.59048178	  0.98891053	  0.99464442  0.47292528
++771	 -5.59594396	 -0.00343292	  0.00191875	  6.59251104	  0.98892131	  0.99464833  0.47298236
++772	 -5.59796521	 -0.00343013	  0.00191764	  6.59453508	  0.98893207	  0.99465223  0.47303930
++773	 -5.59998126	 -0.00342733	  0.00191653	  6.59655393	  0.98894281	  0.99465613  0.47309611
++774	 -5.60199212	 -0.00342455	  0.00191543	  6.59856758	  0.98895354	  0.99466003  0.47315278
++775	 -5.60399781	 -0.00342176	  0.00191432	  6.60057605	  0.98896425	  0.99466392  0.47320932
++776	 -5.60599831	 -0.00341898	  0.00191321	  6.60257934	  0.98897493	  0.99466781  0.47326572
++777	 -5.60799366	 -0.00341620	  0.00191211	  6.60457746	  0.98898561	  0.99467169  0.47332198
++778	 -5.60998385	 -0.00341342	  0.00191100	  6.60657043	  0.98899626	  0.99467557  0.47337811
++779	 -5.61196890	 -0.00341065	  0.00190990	  6.60855825	  0.98900689	  0.99467945  0.47343411
++780	 -5.61394881	 -0.00340788	  0.00190879	  6.61054093	  0.98901751	  0.99468332  0.47348997
++781	 -5.61592360	 -0.00340512	  0.00190769	  6.61251848	  0.98902811	  0.99468719  0.47354569
++782	 -5.61789327	 -0.00340235	  0.00190659	  6.61449091	  0.98903869	  0.99469106  0.47360128
++783	 -5.61985783	 -0.00339960	  0.00190548	  6.61645823	  0.98904926	  0.99469492  0.47365674
++784	 -5.62181729	 -0.00339684	  0.00190438	  6.61842045	  0.98905980	  0.99469878  0.47371206
++785	 -5.62377166	 -0.00339409	  0.00190328	  6.62037757	  0.98907033	  0.99470263  0.47376724
++786	 -5.62572095	 -0.00339134	  0.00190218	  6.62232961	  0.98908084	  0.99470648  0.47382230
++787	 -5.62766517	 -0.00338859	  0.00190108	  6.62427658	  0.98909133	  0.99471033  0.47387721
++788	 -5.62960432	 -0.00338585	  0.00189998	  6.62621847	  0.98910181	  0.99471417  0.47393200
++789	 -5.63153842	 -0.00338311	  0.00189888	  6.62815531	  0.98911227	  0.99471801  0.47398665
++790	 -5.63346748	 -0.00338037	  0.00189778	  6.63008711	  0.98912271	  0.99472185  0.47404117
++791	 -5.63539150	 -0.00337764	  0.00189668	  6.63201386	  0.98913313	  0.99472568  0.47409555
++792	 -5.63731050	 -0.00337491	  0.00189558	  6.63393558	  0.98914354	  0.99472951  0.47414980
++793	 -5.63922447	 -0.00337218	  0.00189448	  6.63585229	  0.98915393	  0.99473333  0.47420392
++794	 -5.64113344	 -0.00336946	  0.00189338	  6.63776398	  0.98916430	  0.99473716  0.47425791
++795	 -5.64303741	 -0.00336674	  0.00189229	  6.63967067	  0.98917466	  0.99474097  0.47431176
++796	 -5.64493639	 -0.00336402	  0.00189119	  6.64157237	  0.98918499	  0.99474479  0.47436548
++797	 -5.64683039	 -0.00336131	  0.00189009	  6.64346908	  0.98919531	  0.99474860  0.47441907
++798	 -5.64871942	 -0.00335860	  0.00188899	  6.64536082	  0.98920562	  0.99475241  0.47447252
++799	 -5.65060348	 -0.00335589	  0.00188790	  6.64724759	  0.98921590	  0.99475621  0.47452585
++800	 -5.65248259	 -0.00335319	  0.00188680	  6.64912941	  0.98922617	  0.99476001  0.47457904
++801	 -5.65435676	 -0.00335049	  0.00188571	  6.65100628	  0.98923642	  0.99476381  0.47463210
++802	 -5.65622600	 -0.00334779	  0.00188461	  6.65287821	  0.98924666	  0.99476760  0.47468503
++803	 -5.65809030	 -0.00334509	  0.00188352	  6.65474521	  0.98925688	  0.99477139  0.47473783
++804	 -5.65994970	 -0.00334240	  0.00188243	  6.65660729	  0.98926708	  0.99477517  0.47479050
++805	 -5.66180418	 -0.00333971	  0.00188133	  6.65846447	  0.98927727	  0.99477896  0.47484303
++806	 -5.66365377	 -0.00333703	  0.00188024	  6.66031674	  0.98928744	  0.99478273  0.47489544
++807	 -5.66549846	 -0.00333434	  0.00187915	  6.66216412	  0.98929759	  0.99478651  0.47494772
++808	 -5.66733828	 -0.00333166	  0.00187805	  6.66400662	  0.98930772	  0.99479028  0.47499986
++809	 -5.66917323	 -0.00332899	  0.00187696	  6.66584424	  0.98931784	  0.99479405  0.47505187
++810	 -5.67100331	 -0.00332631	  0.00187587	  6.66767700	  0.98932794	  0.99479781  0.47510376
++811	 -5.67282855	 -0.00332364	  0.00187478	  6.66950490	  0.98933803	  0.99480158  0.47515552
++812	 -5.67464894	 -0.00332098	  0.00187369	  6.67132796	  0.98934810	  0.99480533  0.47520714
++813	 -5.67646450	 -0.00331831	  0.00187260	  6.67314618	  0.98935815	  0.99480909  0.47525864
++814	 -5.67827523	 -0.00331565	  0.00187151	  6.67495958	  0.98936819	  0.99481284  0.47531001
++815	 -5.68008115	 -0.00331299	  0.00187042	  6.67676816	  0.98937821	  0.99481659  0.47536125
++816	 -5.68188226	 -0.00331034	  0.00186933	  6.67857192	  0.98938821	  0.99482033  0.47541236
++817	 -5.68367858	 -0.00330769	  0.00186824	  6.68037089	  0.98939820	  0.99482407  0.47546334
++818	 -5.68547011	 -0.00330504	  0.00186715	  6.68216507	  0.98940817	  0.99482781  0.47551419
++819	 -5.68725686	 -0.00330239	  0.00186606	  6.68395447	  0.98941813	  0.99483154  0.47556492
++820	 -5.68903884	 -0.00329975	  0.00186498	  6.68573909	  0.98942807	  0.99483527  0.47561551
++821	 -5.69081606	 -0.00329711	  0.00186389	  6.68751895	  0.98943799	  0.99483900  0.47566598
++822	 -5.69258853	 -0.00329447	  0.00186280	  6.68929406	  0.98944790	  0.99484272  0.47571632
++823	 -5.69435627	 -0.00329184	  0.00186172	  6.69106443	  0.98945779	  0.99484644  0.47576654
++824	 -5.69611926	 -0.00328921	  0.00186063	  6.69283005	  0.98946767	  0.99485016  0.47581663
++825	 -5.69787754	 -0.00328658	  0.00185954	  6.69459096	  0.98947753	  0.99485388  0.47586659
++826	 -5.69963110	 -0.00328396	  0.00185846	  6.69634715	  0.98948737	  0.99485759  0.47591642
++827	 -5.70137996	 -0.00328133	  0.00185737	  6.69809863	  0.98949720	  0.99486129  0.47596613
++828	 -5.70312413	 -0.00327872	  0.00185629	  6.69984541	  0.98950701	  0.99486500  0.47601571
++829	 -5.70486360	 -0.00327610	  0.00185520	  6.70158750	  0.98951681	  0.99486870  0.47606516
++830	 -5.70659840	 -0.00327349	  0.00185412	  6.70332492	  0.98952659	  0.99487239  0.47611449
++831	 -5.70832854	 -0.00327088	  0.00185304	  6.70505766	  0.98953636	  0.99487609  0.47616370
++832	 -5.71005402	 -0.00326827	  0.00185195	  6.70678575	  0.98954611	  0.99487978  0.47621277
++833	 -5.71177484	 -0.00326567	  0.00185087	  6.70850918	  0.98955584	  0.99488347  0.47626172
++834	 -5.71349103	 -0.00326306	  0.00184979	  6.71022797	  0.98956556	  0.99488715  0.47631055
++835	 -5.71520259	 -0.00326047	  0.00184870	  6.71194212	  0.98957526	  0.99489083  0.47635925
++836	 -5.71690953	 -0.00325787	  0.00184762	  6.71365166	  0.98958495	  0.99489451  0.47640783
++837	 -5.71861185	 -0.00325528	  0.00184654	  6.71535658	  0.98959462	  0.99489818  0.47645628
++838	 -5.72030958	 -0.00325269	  0.00184546	  6.71705689	  0.98960428	  0.99490185  0.47650461
++839	 -5.72200271	 -0.00325010	  0.00184438	  6.71875261	  0.98961392	  0.99490552  0.47655282
++840	 -5.72369126	 -0.00324752	  0.00184330	  6.72044374	  0.98962355	  0.99490918  0.47660090
++841	 -5.72537523	 -0.00324494	  0.00184222	  6.72213029	  0.98963316	  0.99491284  0.47664886
++842	 -5.72705463	 -0.00324236	  0.00184114	  6.72381227	  0.98964276	  0.99491650  0.47669669
++843	 -5.72872948	 -0.00323979	  0.00184006	  6.72548970	  0.98965234	  0.99492016  0.47674440
++844	 -5.73039979	 -0.00323721	  0.00183898	  6.72716257	  0.98966190	  0.99492381  0.47679198
++845	 -5.73206555	 -0.00323464	  0.00183790	  6.72883091	  0.98967145	  0.99492746  0.47683945
++846	 -5.73372679	 -0.00323208	  0.00183682	  6.73049471	  0.98968099	  0.99493110  0.47688679
++847	 -5.73538351	 -0.00322952	  0.00183574	  6.73215399	  0.98969051	  0.99493474  0.47693401
++848	 -5.73703572	 -0.00322695	  0.00183466	  6.73380876	  0.98970002	  0.99493838  0.47698111
++849	 -5.73868343	 -0.00322440	  0.00183359	  6.73545903	  0.98970951	  0.99494202  0.47702808
++850	 -5.74032664	 -0.00322184	  0.00183251	  6.73710480	  0.98971898	  0.99494565  0.47707494
++851	 -5.74196538	 -0.00321929	  0.00183143	  6.73874609	  0.98972844	  0.99494928  0.47712167
++852	 -5.74359964	 -0.00321674	  0.00183036	  6.74038290	  0.98973789	  0.99495290  0.47716828
++853	 -5.74522943	 -0.00321419	  0.00182928	  6.74201524	  0.98974732	  0.99495653  0.47721477
++854	 -5.74685478	 -0.00321165	  0.00182820	  6.74364312	  0.98975674	  0.99496014  0.47726113
++855	 -5.74847567	 -0.00320911	  0.00182713	  6.74526656	  0.98976614	  0.99496376  0.47730738
++856	 -5.75009213	 -0.00320657	  0.00182605	  6.74688556	  0.98977552	  0.99496737  0.47735351
++857	 -5.75170417	 -0.00320404	  0.00182498	  6.74850013	  0.98978490	  0.99497098  0.47739952
++858	 -5.75331179	 -0.00320151	  0.00182390	  6.75011028	  0.98979425	  0.99497459  0.47744540
++859	 -5.75491499	 -0.00319898	  0.00182283	  6.75171602	  0.98980360	  0.99497819  0.47749117
++860	 -5.75651380	 -0.00319645	  0.00182176	  6.75331735	  0.98981293	  0.99498179  0.47753682
++861	 -5.75810822	 -0.00319393	  0.00182068	  6.75491429	  0.98982224	  0.99498539  0.47758234
++862	 -5.75969826	 -0.00319141	  0.00181961	  6.75650685	  0.98983154	  0.99498899  0.47762775
++863	 -5.76128392	 -0.00318889	  0.00181854	  6.75809504	  0.98984082	  0.99499258  0.47767304
++864	 -5.76286523	 -0.00318637	  0.00181746	  6.75967886	  0.98985009	  0.99499616  0.47771821
++865	 -5.76444218	 -0.00318386	  0.00181639	  6.76125832	  0.98985935	  0.99499975  0.47776327
++866	 -5.76601479	 -0.00318135	  0.00181532	  6.76283343	  0.98986859	  0.99500333  0.47780820
++867	 -5.76758306	 -0.00317884	  0.00181425	  6.76440421	  0.98987782	  0.99500691  0.47785302
++868	 -5.76914700	 -0.00317634	  0.00181318	  6.76597066	  0.98988703	  0.99501049  0.47789772
++869	 -5.77070663	 -0.00317384	  0.00181210	  6.76753279	  0.98989623	  0.99501406  0.47794230
++870	 -5.77226195	 -0.00317134	  0.00181103	  6.76909061	  0.98990542	  0.99501763  0.47798676
++871	 -5.77381298	 -0.00316884	  0.00180996	  6.77064413	  0.98991459	  0.99502119  0.47803110
++872	 -5.77535971	 -0.00316635	  0.00180889	  6.77219336	  0.98992374	  0.99502476  0.47807533
++873	 -5.77690216	 -0.00316386	  0.00180782	  6.77373830	  0.98993289	  0.99502832  0.47811945
++874	 -5.77844035	 -0.00316137	  0.00180675	  6.77527898	  0.98994201	  0.99503187  0.47816344
++875	 -5.77997427	 -0.00315889	  0.00180569	  6.77681538	  0.98995113	  0.99503543  0.47820732
++876	 -5.78150394	 -0.00315640	  0.00180462	  6.77834753	  0.98996023	  0.99503898  0.47825108
++877	 -5.78302936	 -0.00315393	  0.00180355	  6.77987544	  0.98996931	  0.99504253  0.47829473
++878	 -5.78455056	 -0.00315145	  0.00180248	  6.78139911	  0.98997839	  0.99504607  0.47833826
++879	 -5.78606752	 -0.00314897	  0.00180141	  6.78291855	  0.98998744	  0.99504961  0.47838168
++880	 -5.78758027	 -0.00314650	  0.00180035	  6.78443377	  0.98999649	  0.99505315  0.47842498
++881	 -5.78908882	 -0.00314403	  0.00179928	  6.78594478	  0.99000552	  0.99505669  0.47846816
++882	 -5.79059316	 -0.00314157	  0.00179821	  6.78745159	  0.99001453	  0.99506022  0.47851123
++883	 -5.79209332	 -0.00313911	  0.00179715	  6.78895421	  0.99002354	  0.99506375  0.47855419
++884	 -5.79358930	 -0.00313665	  0.00179608	  6.79045265	  0.99003253	  0.99506727  0.47859703
++885	 -5.79508110	 -0.00313419	  0.00179501	  6.79194692	  0.99004150	  0.99507080  0.47863976
++886	 -5.79656875	 -0.00313173	  0.00179395	  6.79343702	  0.99005046	  0.99507432  0.47868238
++887	 -5.79805224	 -0.00312928	  0.00179288	  6.79492296	  0.99005941	  0.99507784  0.47872487
++888	 -5.79953159	 -0.00312683	  0.00179182	  6.79640476	  0.99006834	  0.99508135  0.47876726
++889	 -5.80100681	 -0.00312438	  0.00179075	  6.79788243	  0.99007726	  0.99508486  0.47880954
++890	 -5.80247790	 -0.00312194	  0.00178969	  6.79935596	  0.99008617	  0.99508837  0.47885170
++891	 -5.80394487	 -0.00311950	  0.00178863	  6.80082538	  0.99009506	  0.99509187  0.47889374
++892	 -5.80540774	 -0.00311706	  0.00178756	  6.80229068	  0.99010394	  0.99509538  0.47893568
++893	 -5.80686651	 -0.00311462	  0.00178650	  6.80375189	  0.99011281	  0.99509888  0.47897750
++894	 -5.80832119	 -0.00311219	  0.00178544	  6.80520900	  0.99012166	  0.99510237  0.47901921
++895	 -5.80977179	 -0.00310976	  0.00178438	  6.80666204	  0.99013050	  0.99510587  0.47906081
++896	 -5.81121832	 -0.00310733	  0.00178331	  6.80811099	  0.99013933	  0.99510936  0.47910230
++897	 -5.81266079	 -0.00310490	  0.00178225	  6.80955589	  0.99014814	  0.99511284  0.47914367
++898	 -5.81409921	 -0.00310248	  0.00178119	  6.81099673	  0.99015694	  0.99511633  0.47918494
++899	 -5.81553358	 -0.00310006	  0.00178013	  6.81243352	  0.99016573	  0.99511981  0.47922609
++900	 -5.81696392	 -0.00309764	  0.00177907	  6.81386627	  0.99017450	  0.99512329  0.47926714
++901	 -5.81839023	 -0.00309523	  0.00177801	  6.81529500	  0.99018326	  0.99512676  0.47930807
++902	 -5.81981252	 -0.00309282	  0.00177695	  6.81671970	  0.99019200	  0.99513024  0.47934889
++903	 -5.82123081	 -0.00309041	  0.00177589	  6.81814040	  0.99020074	  0.99513370  0.47938960
++904	 -5.82264509	 -0.00308800	  0.00177483	  6.81955709	  0.99020946	  0.99513717  0.47943020
++905	 -5.82405539	 -0.00308560	  0.00177377	  6.82096980	  0.99021816	  0.99514063  0.47947070
++906	 -5.82546171	 -0.00308319	  0.00177271	  6.82237851	  0.99022686	  0.99514410  0.47951108
++907	 -5.82686405	 -0.00308079	  0.00177165	  6.82378326	  0.99023554	  0.99514755  0.47955135
++908	 -5.82826243	 -0.00307840	  0.00177059	  6.82518403	  0.99024421	  0.99515101  0.47959152
++909	 -5.82965686	 -0.00307600	  0.00176954	  6.82658086	  0.99025286	  0.99515446  0.47963157
++910	 -5.83104734	 -0.00307361	  0.00176848	  6.82797373	  0.99026150	  0.99515791  0.47967152
++911	 -5.83243389	 -0.00307122	  0.00176742	  6.82936266	  0.99027013	  0.99516135  0.47971136
++912	 -5.83381650	 -0.00306884	  0.00176637	  6.83074767	  0.99027875	  0.99516480  0.47975109
++913	 -5.83519520	 -0.00306645	  0.00176531	  6.83212875	  0.99028735	  0.99516824  0.47979072
++914	 -5.83656999	 -0.00306407	  0.00176425	  6.83350592	  0.99029594	  0.99517167  0.47983023
++915	 -5.83794088	 -0.00306169	  0.00176320	  6.83487918	  0.99030451	  0.99517511  0.47986964
++916	 -5.83930788	 -0.00305932	  0.00176214	  6.83624856	  0.99031308	  0.99517854  0.47990894
++917	 -5.84067099	 -0.00305695	  0.00176109	  6.83761404	  0.99032163	  0.99518197  0.47994814
++918	 -5.84203023	 -0.00305458	  0.00176003	  6.83897565	  0.99033017	  0.99518539  0.47998722
++919	 -5.84338560	 -0.00305221	  0.00175898	  6.84033340	  0.99033869	  0.99518881  0.48002620
++920	 -5.84473712	 -0.00304984	  0.00175793	  6.84168728	  0.99034721	  0.99519223  0.48006508
++921	 -5.84608479	 -0.00304748	  0.00175687	  6.84303731	  0.99035571	  0.99519565  0.48010385
++922	 -5.84742862	 -0.00304512	  0.00175582	  6.84438350	  0.99036419	  0.99519906  0.48014251
++923	 -5.84876862	 -0.00304276	  0.00175477	  6.84572586	  0.99037267	  0.99520247  0.48018107
++924	 -5.85010480	 -0.00304041	  0.00175371	  6.84706439	  0.99038113	  0.99520588  0.48021952
++925	 -5.85143717	 -0.00303805	  0.00175266	  6.84839911	  0.99038958	  0.99520929  0.48025787
++926	 -5.85276573	 -0.00303570	  0.00175161	  6.84973003	  0.99039802	  0.99521269  0.48029611
++927	 -5.85409050	 -0.00303336	  0.00175056	  6.85105714	  0.99040644	  0.99521609  0.48033425
++928	 -5.85541148	 -0.00303101	  0.00174951	  6.85238047	  0.99041485	  0.99521948  0.48037228
++929	 -5.85672868	 -0.00302867	  0.00174846	  6.85370002	  0.99042325	  0.99522288  0.48041021
++930	 -5.85804212	 -0.00302633	  0.00174741	  6.85501579	  0.99043164	  0.99522627  0.48044803
++931	 -5.85935180	 -0.00302399	  0.00174636	  6.85632781	  0.99044002	  0.99522965  0.48048575
++932	 -5.86065772	 -0.00302166	  0.00174531	  6.85763607	  0.99044838	  0.99523304  0.48052337
++933	 -5.86195991	 -0.00301932	  0.00174426	  6.85894058	  0.99045673	  0.99523642  0.48056088
++934	 -5.86325835	 -0.00301699	  0.00174321	  6.86024136	  0.99046507	  0.99523980  0.48059829
++935	 -5.86455308	 -0.00301467	  0.00174216	  6.86153841	  0.99047339	  0.99524317  0.48063560
++936	 -5.86584409	 -0.00301234	  0.00174111	  6.86283174	  0.99048171	  0.99524655  0.48067281
++937	 -5.86713139	 -0.00301002	  0.00174006	  6.86412137	  0.99049001	  0.99524992  0.48070991
++938	 -5.86841499	 -0.00300770	  0.00173902	  6.86540729	  0.99049829	  0.99525328  0.48074691
++939	 -5.86969490	 -0.00300538	  0.00173797	  6.86668952	  0.99050657	  0.99525665  0.48078381
++940	 -5.87097113	 -0.00300307	  0.00173692	  6.86796806	  0.99051483	  0.99526001  0.48082060
++941	 -5.87224368	 -0.00300076	  0.00173588	  6.86924293	  0.99052309	  0.99526337  0.48085730
++942	 -5.87351257	 -0.00299845	  0.00173483	  6.87051413	  0.99053133	  0.99526672  0.48089389
++943	 -5.87477781	 -0.00299614	  0.00173378	  6.87178167	  0.99053955	  0.99527008  0.48093038
++944	 -5.87603940	 -0.00299383	  0.00173274	  6.87304557	  0.99054777	  0.99527343  0.48096678
++945	 -5.87729735	 -0.00299153	  0.00173169	  6.87430582	  0.99055597	  0.99527677  0.48100307
++946	 -5.87855167	 -0.00298923	  0.00173065	  6.87556244	  0.99056416	  0.99528012  0.48103926
++947	 -5.87980237	 -0.00298694	  0.00172961	  6.87681543	  0.99057234	  0.99528346  0.48107535
++948	 -5.88104946	 -0.00298464	  0.00172856	  6.87806482	  0.99058051	  0.99528680  0.48111134
++949	 -5.88229294	 -0.00298235	  0.00172752	  6.87931059	  0.99058867	  0.99529013  0.48114723
++950	 -5.88353283	 -0.00298006	  0.00172648	  6.88055277	  0.99059681	  0.99529347  0.48118302
++951	 -5.88476913	 -0.00297777	  0.00172543	  6.88179135	  0.99060494	  0.99529680  0.48121871
++952	 -5.88600185	 -0.00297549	  0.00172439	  6.88302636	  0.99061306	  0.99530012  0.48125430
++953	 -5.88723100	 -0.00297320	  0.00172335	  6.88425779	  0.99062117	  0.99530345  0.48128980
++954	 -5.88845659	 -0.00297093	  0.00172231	  6.88548566	  0.99062927	  0.99530677  0.48132519
++955	 -5.88967862	 -0.00296865	  0.00172127	  6.88670998	  0.99063735	  0.99531009  0.48136049
++956	 -5.89089712	 -0.00296637	  0.00172022	  6.88793074	  0.99064542	  0.99531340  0.48139569
++957	 -5.89211207	 -0.00296410	  0.00171918	  6.88914797	  0.99065348	  0.99531671  0.48143079
++958	 -5.89332350	 -0.00296183	  0.00171814	  6.89036167	  0.99066153	  0.99532002  0.48146579
++959	 -5.89453141	 -0.00295956	  0.00171710	  6.89157185	  0.99066957	  0.99532333  0.48150069
++960	 -5.89573581	 -0.00295730	  0.00171607	  6.89277851	  0.99067760	  0.99532664  0.48153550
++961	 -5.89693670	 -0.00295504	  0.00171503	  6.89398167	  0.99068561	  0.99532994  0.48157021
++962	 -5.89813411	 -0.00295278	  0.00171399	  6.89518133	  0.99069361	  0.99533324  0.48160482
++963	 -5.89932802	 -0.00295052	  0.00171295	  6.89637751	  0.99070160	  0.99533653  0.48163934
++964	 -5.90051846	 -0.00294826	  0.00171191	  6.89757020	  0.99070958	  0.99533983  0.48167376
++965	 -5.90170544	 -0.00294601	  0.00171088	  6.89875943	  0.99071755	  0.99534312  0.48170809
++966	 -5.90288895	 -0.00294376	  0.00170984	  6.89994519	  0.99072550	  0.99534640  0.48174231
++967	 -5.90406901	 -0.00294151	  0.00170880	  6.90112750	  0.99073345	  0.99534969  0.48177645
++968	 -5.90524562	 -0.00293927	  0.00170777	  6.90230636	  0.99074138	  0.99535297  0.48181048
++969	 -5.90641881	 -0.00293702	  0.00170673	  6.90348178	  0.99074930	  0.99535625  0.48184443
++970	 -5.90758856	 -0.00293478	  0.00170569	  6.90465378	  0.99075721	  0.99535952  0.48187827
++971	 -5.90875490	 -0.00293254	  0.00170466	  6.90582235	  0.99076511	  0.99536280  0.48191202
++972	 -5.90991782	 -0.00293031	  0.00170363	  6.90698751	  0.99077300	  0.99536607  0.48194568
++973	 -5.91107735	 -0.00292807	  0.00170259	  6.90814927	  0.99078087	  0.99536933  0.48197924
++974	 -5.91223348	 -0.00292584	  0.00170156	  6.90930763	  0.99078874	  0.99537260  0.48201271
++975	 -5.91338622	 -0.00292362	  0.00170052	  6.91046261	  0.99079659	  0.99537586  0.48204608
++976	 -5.91453559	 -0.00292139	  0.00169949	  6.91161420	  0.99080443	  0.99537912  0.48207936
++977	 -5.91568159	 -0.00291917	  0.00169846	  6.91276243	  0.99081226	  0.99538238  0.48211255
++978	 -5.91682423	 -0.00291694	  0.00169743	  6.91390729	  0.99082008	  0.99538563  0.48214564
++979	 -5.91796352	 -0.00291472	  0.00169639	  6.91504879	  0.99082789	  0.99538888  0.48217864
++980	 -5.91909946	 -0.00291251	  0.00169536	  6.91618695	  0.99083569	  0.99539213  0.48221155
++981	 -5.92023207	 -0.00291029	  0.00169433	  6.91732177	  0.99084347	  0.99539537  0.48224436
++982	 -5.92136135	 -0.00290808	  0.00169330	  6.91845327	  0.99085124	  0.99539862  0.48227709
++983	 -5.92248731	 -0.00290587	  0.00169227	  6.91958144	  0.99085901	  0.99540186  0.48230971
++984	 -5.92360996	 -0.00290367	  0.00169124	  6.92070629	  0.99086676	  0.99540509  0.48234225
++985	 -5.92472930	 -0.00290146	  0.00169021	  6.92182784	  0.99087450	  0.99540833  0.48237470
++986	 -5.92584536	 -0.00289926	  0.00168918	  6.92294610	  0.99088223	  0.99541156  0.48240705
++987	 -5.92695812	 -0.00289706	  0.00168816	  6.92406106	  0.99088995	  0.99541479  0.48243931
++988	 -5.92806761	 -0.00289486	  0.00168713	  6.92517274	  0.99089766	  0.99541801  0.48247148
++989	 -5.92917382	 -0.00289267	  0.00168610	  6.92628115	  0.99090535	  0.99542123  0.48250356
++990	 -5.93027677	 -0.00289047	  0.00168507	  6.92738630	  0.99091304	  0.99542445  0.48253555
++991	 -5.93137647	 -0.00288828	  0.00168405	  6.92848819	  0.99092071	  0.99542767  0.48256745
++992	 -5.93247293	 -0.00288610	  0.00168302	  6.92958683	  0.99092837	  0.99543089  0.48259926
++993	 -5.93356614	 -0.00288391	  0.00168199	  6.93068223	  0.99093603	  0.99543410  0.48263098
++994	 -5.93465613	 -0.00288173	  0.00168097	  6.93177440	  0.99094367	  0.99543731  0.48266260
++995	 -5.93574289	 -0.00287955	  0.00167994	  6.93286334	  0.99095130	  0.99544051  0.48269414
++996	 -5.93682644	 -0.00287737	  0.00167892	  6.93394907	  0.99095892	  0.99544371  0.48272559
++997	 -5.93790678	 -0.00287519	  0.00167789	  6.93503159	  0.99096653	  0.99544692  0.48275695
++998	 -5.93898392	 -0.00287302	  0.00167687	  6.93611091	  0.99097412	  0.99545011  0.48278822
++999	 -5.94005788	 -0.00287085	  0.00167585	  6.93718703	  0.99098171	  0.99545331  0.48281940
++1000	 -5.94112865	 -0.00286868	  0.00167482	  6.93825997	  0.99098929	  0.99545650  0.48285049
++1001	 -5.94219625	 -0.00286651	  0.00167380	  6.93932974	  0.99099685	  0.99545969  0.48288150
++1002	 -5.94326068	 -0.00286435	  0.00167278	  6.94039634	  0.99100441	  0.99546288  0.48291241
++1003	 -5.94432196	 -0.00286218	  0.00167176	  6.94145977	  0.99101195	  0.99546606  0.48294324
++1004	 -5.94538008	 -0.00286002	  0.00167074	  6.94252006	  0.99101949	  0.99546924  0.48297398
++1005	 -5.94643506	 -0.00285787	  0.00166971	  6.94357720	  0.99102701	  0.99547242  0.48300463
++1006	 -5.94748691	 -0.00285571	  0.00166869	  6.94463120	  0.99103452	  0.99547559  0.48303520
++1007	 -5.94853563	 -0.00285356	  0.00166767	  6.94568207	  0.99104202	  0.99547877  0.48306568
++1008	 -5.94958124	 -0.00285141	  0.00166666	  6.94672983	  0.99104951	  0.99548194  0.48309607
++1009	 -5.95062373	 -0.00284926	  0.00166564	  6.94777447	  0.99105699	  0.99548510  0.48312637
++1010	 -5.95166312	 -0.00284711	  0.00166462	  6.94881600	  0.99106446	  0.99548827  0.48315659
++1011	 -5.95269941	 -0.00284497	  0.00166360	  6.94985444	  0.99107192	  0.99549143  0.48318672
++1012	 -5.95373262	 -0.00284283	  0.00166258	  6.95088979	  0.99107937	  0.99549459  0.48321676
++1013	 -5.95476275	 -0.00284069	  0.00166156	  6.95192206	  0.99108681	  0.99549775  0.48324672
++1014	 -5.95578980	 -0.00283855	  0.00166055	  6.95295125	  0.99109423	  0.99550090  0.48327660
++1015	 -5.95681380	 -0.00283642	  0.00165953	  6.95397738	  0.99110165	  0.99550405  0.48330638
++1016	 -5.95783474	 -0.00283429	  0.00165852	  6.95500045	  0.99110906	  0.99550720  0.48333609
++1017	 -5.95885262	 -0.00283216	  0.00165750	  6.95602047	  0.99111645	  0.99551034  0.48336571
++1018	 -5.95986747	 -0.00283003	  0.00165648	  6.95703744	  0.99112384	  0.99551348  0.48339524
++1019	 -5.96087929	 -0.00282791	  0.00165547	  6.95805138	  0.99113121	  0.99551662  0.48342469
++1020	 -5.96188808	 -0.00282578	  0.00165446	  6.95906230	  0.99113858	  0.99551976  0.48345405
++1021	 -5.96289385	 -0.00282366	  0.00165344	  6.96007019	  0.99114593	  0.99552290  0.48348333
++1022	 -5.96389662	 -0.00282154	  0.00165243	  6.96107507	  0.99115327	  0.99552603  0.48351252
++1023	 -5.96489638	 -0.00281943	  0.00165142	  6.96207695	  0.99116061	  0.99552916  0.48354163
++1024	 -5.96589315	 -0.00281732	  0.00165040	  6.96307584	  0.99116793	  0.99553228  0.48357066
++1025	 -5.96688693	 -0.00281520	  0.00164939	  6.96407173	  0.99117524	  0.99553540  0.48359961
++1026	 -5.96787774	 -0.00281310	  0.00164838	  6.96506464	  0.99118255	  0.99553852  0.48362846
++1027	 -5.96886557	 -0.00281099	  0.00164737	  6.96605458	  0.99118984	  0.99554164  0.48365724
++1028	 -5.96985044	 -0.00280888	  0.00164636	  6.96704156	  0.99119712	  0.99554476  0.48368594
++1029	 -5.97083235	 -0.00280678	  0.00164535	  6.96802557	  0.99120439	  0.99554787  0.48371455
++1030	 -5.97181132	 -0.00280468	  0.00164434	  6.96900664	  0.99121165	  0.99555098  0.48374308
++1031	 -5.97278734	 -0.00280258	  0.00164333	  6.96998476	  0.99121891	  0.99555409  0.48377153
++1032	 -5.97376044	 -0.00280049	  0.00164232	  6.97095995	  0.99122615	  0.99555719  0.48379989
++1033	 -5.97473060	 -0.00279840	  0.00164131	  6.97193221	  0.99123338	  0.99556029  0.48382818
++1034	 -5.97569785	 -0.00279631	  0.00164031	  6.97290155	  0.99124060	  0.99556339  0.48385638
++1035	 -5.97666219	 -0.00279422	  0.00163930	  6.97386797	  0.99124781	  0.99556648  0.48388450
++1036	 -5.97762362	 -0.00279213	  0.00163829	  6.97483149	  0.99125501	  0.99556958  0.48391254
++1037	 -5.97858216	 -0.00279005	  0.00163729	  6.97579212	  0.99126220	  0.99557267  0.48394050
++1038	 -5.97953782	 -0.00278796	  0.00163628	  6.97674985	  0.99126938	  0.99557576  0.48396837
++1039	 -5.98049059	 -0.00278589	  0.00163527	  6.97770470	  0.99127655	  0.99557884  0.48399617
++1040	 -5.98144049	 -0.00278381	  0.00163427	  6.97865668	  0.99128371	  0.99558192  0.48402389
++1041	 -5.98238752	 -0.00278173	  0.00163326	  6.97960579	  0.99129087	  0.99558500  0.48405152
++1042	 -5.98333170	 -0.00277966	  0.00163226	  6.98055204	  0.99129801	  0.99558808  0.48407908
++1043	 -5.98427302	 -0.00277759	  0.00163126	  6.98149543	  0.99130514	  0.99559115  0.48410655
++1044	 -5.98521150	 -0.00277552	  0.00163025	  6.98243598	  0.99131226	  0.99559422  0.48413395
++1045	 -5.98614715	 -0.00277346	  0.00162925	  6.98337369	  0.99131937	  0.99559729  0.48416127
++1046	 -5.98707997	 -0.00277139	  0.00162825	  6.98430858	  0.99132647	  0.99560036  0.48418851
++1047	 -5.98800996	 -0.00276933	  0.00162725	  6.98524063	  0.99133356	  0.99560342  0.48421567
++1048	 -5.98893715	 -0.00276727	  0.00162625	  6.98616988	  0.99134064	  0.99560648  0.48424275
++1049	 -5.98986153	 -0.00276521	  0.00162525	  6.98709631	  0.99134771	  0.99560954  0.48426975
++1050	 -5.99078310	 -0.00276316	  0.00162425	  6.98801995	  0.99135477	  0.99561259  0.48429667
++1051	 -5.99170189	 -0.00276111	  0.00162325	  6.98894079	  0.99136183	  0.99561565  0.48432352
++1052	 -5.99261789	 -0.00275906	  0.00162225	  6.98985884	  0.99136887	  0.99561870  0.48435028
++1053	 -5.99353112	 -0.00275701	  0.00162125	  6.99077411	  0.99137590	  0.99562174  0.48437697
++1054	 -5.99444158	 -0.00275496	  0.00162025	  6.99168662	  0.99138292	  0.99562479  0.48440358
++1055	 -5.99534927	 -0.00275292	  0.00161925	  6.99259635	  0.99138994	  0.99562783  0.48443012
++1056	 -5.99625421	 -0.00275088	  0.00161826	  6.99350334	  0.99139694	  0.99563087  0.48445657
++1057	 -5.99715640	 -0.00274884	  0.00161726	  6.99440757	  0.99140393	  0.99563390  0.48448295
++1058	 -5.99805585	 -0.00274680	  0.00161626	  6.99530906	  0.99141092	  0.99563694  0.48450926
++1059	 -5.99895257	 -0.00274476	  0.00161527	  6.99620781	  0.99141789	  0.99563997  0.48453548
++1060	 -5.99984656	 -0.00274273	  0.00161427	  6.99710383	  0.99142485	  0.99564299  0.48456163
++1061	 -6.00073784	 -0.00274070	  0.00161328	  6.99799714	  0.99143181	  0.99564602  0.48458771
++1062	 -6.00162640	 -0.00273867	  0.00161228	  6.99888773	  0.99143875	  0.99564904  0.48461370
++1063	 -6.00251225	 -0.00273665	  0.00161129	  6.99977561	  0.99144569	  0.99565206  0.48463962
++1064	 -6.00339541	 -0.00273462	  0.00161030	  7.00066079	  0.99145261	  0.99565508  0.48466547
++1065	 -6.00427588	 -0.00273260	  0.00160931	  7.00154328	  0.99145953	  0.99565809  0.48469124
++1066	 -6.00515367	 -0.00273058	  0.00160831	  7.00242309	  0.99146644	  0.99566111  0.48471693
++1067	 -6.00602878	 -0.00272856	  0.00160732	  7.00330021	  0.99147334	  0.99566411  0.48474255
++1068	 -6.00690122	 -0.00272655	  0.00160633	  7.00417467	  0.99148022	  0.99566712  0.48476810
++1069	 -6.00777100	 -0.00272454	  0.00160534	  7.00504646	  0.99148710	  0.99567012  0.48479357
++1070	 -6.00863812	 -0.00272252	  0.00160435	  7.00591560	  0.99149397	  0.99567313  0.48481896
++1071	 -6.00950260	 -0.00272052	  0.00160336	  7.00678208	  0.99150083	  0.99567612  0.48484429
++1072	 -6.01036444	 -0.00271851	  0.00160237	  7.00764593	  0.99150768	  0.99567912  0.48486953
++1073	 -6.01122364	 -0.00271651	  0.00160138	  7.00850713	  0.99151452	  0.99568211  0.48489471
++1074	 -6.01208022	 -0.00271450	  0.00160039	  7.00936571	  0.99152135	  0.99568510  0.48491980
++1075	 -6.01293417	 -0.00271250	  0.00159941	  7.01022167	  0.99152817	  0.99568809  0.48494483
++1076	 -6.01378552	 -0.00271051	  0.00159842	  7.01107501	  0.99153498	  0.99569107  0.48496978
++1077	 -6.01463426	 -0.00270851	  0.00159743	  7.01192575	  0.99154179	  0.99569406  0.48499466
++1078	 -6.01548040	 -0.00270652	  0.00159645	  7.01277388	  0.99154858	  0.99569704  0.48501947
++1079	 -6.01632394	 -0.00270453	  0.00159546	  7.01361942	  0.99155537	  0.99570001  0.48504420
++1080	 -6.01716491	 -0.00270254	  0.00159448	  7.01446237	  0.99156214	  0.99570299  0.48506886
++1081	 -6.01800329	 -0.00270055	  0.00159349	  7.01530274	  0.99156891	  0.99570596  0.48509345
++1082	 -6.01883911	 -0.00269856	  0.00159251	  7.01614055	  0.99157566	  0.99570893  0.48511797
++1083	 -6.01967236	 -0.00269658	  0.00159153	  7.01697578	  0.99158241	  0.99571189  0.48514241
++1084	 -6.02050306	 -0.00269460	  0.00159054	  7.01780845	  0.99158915	  0.99571486  0.48516678
++1085	 -6.02133120	 -0.00269262	  0.00158956	  7.01863858	  0.99159588	  0.99571782  0.48519108
++1086	 -6.02215680	 -0.00269065	  0.00158858	  7.01946615	  0.99160260	  0.99572077  0.48521531
++1087	 -6.02297987	 -0.00268867	  0.00158760	  7.02029119	  0.99160931	  0.99572373  0.48523947
++1088	 -6.02380040	 -0.00268670	  0.00158662	  7.02111370	  0.99161601	  0.99572668  0.48526355
++1089	 -6.02461841	 -0.00268473	  0.00158564	  7.02193368	  0.99162270	  0.99572963  0.48528757
++1090	 -6.02543391	 -0.00268276	  0.00158466	  7.02275115	  0.99162938	  0.99573258  0.48531151
++1091	 -6.02624690	 -0.00268080	  0.00158368	  7.02356610	  0.99163606	  0.99573552  0.48533539
++1092	 -6.02705738	 -0.00267883	  0.00158270	  7.02437855	  0.99164272	  0.99573847  0.48535919
++1093	 -6.02786537	 -0.00267687	  0.00158172	  7.02518850	  0.99164938	  0.99574141  0.48538292
++1094	 -6.02867087	 -0.00267491	  0.00158074	  7.02599596	  0.99165602	  0.99574434  0.48540659
++1095	 -6.02947389	 -0.00267296	  0.00157977	  7.02680093	  0.99166266	  0.99574728  0.48543018
++1096	 -6.03027443	 -0.00267100	  0.00157879	  7.02760343	  0.99166929	  0.99575021  0.48545370
++1097	 -6.03107251	 -0.00266905	  0.00157781	  7.02840346	  0.99167591	  0.99575314  0.48547716
++1098	 -6.03186812	 -0.00266710	  0.00157684	  7.02920102	  0.99168252	  0.99575606  0.48550054
++1099	 -6.03266127	 -0.00266515	  0.00157586	  7.02999612	  0.99168912	  0.99575899  0.48552386
++1100	 -6.03345198	 -0.00266320	  0.00157489	  7.03078878	  0.99169571	  0.99576191  0.48554710
++1101	 -6.03424025	 -0.00266126	  0.00157391	  7.03157899	  0.99170230	  0.99576483  0.48557028
++1102	 -6.03502608	 -0.00265932	  0.00157294	  7.03236676	  0.99170887	  0.99576774  0.48559339
++1103	 -6.03580948	 -0.00265738	  0.00157197	  7.03315210	  0.99171544	  0.99577065  0.48561643
++1104	 -6.03659046	 -0.00265544	  0.00157100	  7.03393502	  0.99172199	  0.99577356  0.48563940
++1105	 -6.03736903	 -0.00265350	  0.00157002	  7.03471552	  0.99172854	  0.99577647  0.48566231
++1106	 -6.03814518	 -0.00265157	  0.00156905	  7.03549361	  0.99173508	  0.99577938  0.48568514
++1107	 -6.03891894	 -0.00264964	  0.00156808	  7.03626930	  0.99174161	  0.99578228  0.48570791
++1108	 -6.03969029	 -0.00264771	  0.00156711	  7.03704258	  0.99174813	  0.99578518  0.48573061
++1109	 -6.04045926	 -0.00264578	  0.00156614	  7.03781348	  0.99175464	  0.99578807  0.48575324
++1110	 -6.04122585	 -0.00264386	  0.00156517	  7.03858199	  0.99176115	  0.99579097  0.48577581
++1111	 -6.04199006	 -0.00264193	  0.00156421	  7.03934813	  0.99176764	  0.99579386  0.48579831
++1112	 -6.04275190	 -0.00264001	  0.00156324	  7.04011189	  0.99177413	  0.99579675  0.48582075
++1113	 -6.04351138	 -0.00263809	  0.00156227	  7.04087328	  0.99178061	  0.99579964  0.48584311
++1114	 -6.04426850	 -0.00263618	  0.00156130	  7.04163232	  0.99178707	  0.99580252  0.48586541
++1115	 -6.04502327	 -0.00263426	  0.00156034	  7.04238901	  0.99179353	  0.99580540  0.48588765
++1116	 -6.04577570	 -0.00263235	  0.00155937	  7.04314335	  0.99179998	  0.99580828  0.48590981
++1117	 -6.04652579	 -0.00263044	  0.00155841	  7.04389535	  0.99180643	  0.99581115  0.48593191
++1118	 -6.04727354	 -0.00262853	  0.00155744	  7.04464502	  0.99181286	  0.99581403  0.48595395
++1119	 -6.04801898	 -0.00262662	  0.00155648	  7.04539236	  0.99181929	  0.99581690  0.48597592
++1120	 -6.04876210	 -0.00262472	  0.00155552	  7.04613738	  0.99182570	  0.99581977  0.48599782
++1121	 -6.04950290	 -0.00262282	  0.00155455	  7.04688009	  0.99183211	  0.99582263  0.48601966
++1122	 -6.05024140	 -0.00262092	  0.00155359	  7.04762049	  0.99183851	  0.99582549  0.48604144
++1123	 -6.05097760	 -0.00261902	  0.00155263	  7.04835858	  0.99184490	  0.99582835  0.48606315
++1124	 -6.05171151	 -0.00261712	  0.00155167	  7.04909439	  0.99185128	  0.99583121  0.48608479
++1125	 -6.05244313	 -0.00261523	  0.00155071	  7.04982791	  0.99185765	  0.99583407  0.48610637
++1126	 -6.05317248	 -0.00261334	  0.00154975	  7.05055914	  0.99186402	  0.99583692  0.48612789
++1127	 -6.05389955	 -0.00261145	  0.00154879	  7.05128810	  0.99187037	  0.99583977  0.48614934
++1128	 -6.05462435	 -0.00260956	  0.00154783	  7.05201479	  0.99187672	  0.99584261  0.48617073
++1129	 -6.05534689	 -0.00260767	  0.00154687	  7.05273922	  0.99188306	  0.99584546  0.48619205
++1130	 -6.05606718	 -0.00260579	  0.00154591	  7.05346139	  0.99188939	  0.99584830  0.48621331
++1131	 -6.05678521	 -0.00260391	  0.00154495	  7.05418131	  0.99189571	  0.99585114  0.48623450
++1132	 -6.05750101	 -0.00260203	  0.00154400	  7.05489898	  0.99190203	  0.99585398  0.48625564
++1133	 -6.05821457	 -0.00260015	  0.00154304	  7.05561442	  0.99190833	  0.99585681  0.48627671
++1134	 -6.05892590	 -0.00259827	  0.00154209	  7.05632763	  0.99191463	  0.99585964  0.48629772
++1135	 -6.05963501	 -0.00259640	  0.00154113	  7.05703861	  0.99192092	  0.99586247  0.48631866
++1136	 -6.06034190	 -0.00259453	  0.00154018	  7.05774737	  0.99192720	  0.99586529  0.48633954
++1137	 -6.06104657	 -0.00259266	  0.00153922	  7.05845392	  0.99193347	  0.99586812  0.48636036
++1138	 -6.06174905	 -0.00259079	  0.00153827	  7.05915826	  0.99193973	  0.99587094  0.48638112
++1139	 -6.06244932	 -0.00258893	  0.00153732	  7.05986040	  0.99194598	  0.99587376  0.48640181
++1140	 -6.06314740	 -0.00258706	  0.00153637	  7.06056034	  0.99195223	  0.99587657  0.48642244
++1141	 -6.06384330	 -0.00258520	  0.00153541	  7.06125810	  0.99195847	  0.99587938  0.48644301
++1142	 -6.06453701	 -0.00258334	  0.00153446	  7.06195367	  0.99196470	  0.99588220  0.48646352
++1143	 -6.06522855	 -0.00258148	  0.00153351	  7.06264707	  0.99197092	  0.99588500  0.48648397
++1144	 -6.06591793	 -0.00257963	  0.00153256	  7.06333830	  0.99197713	  0.99588781  0.48650436
++1145	 -6.06660514	 -0.00257778	  0.00153161	  7.06402736	  0.99198334	  0.99589061  0.48652468
++1146	 -6.06729019	 -0.00257592	  0.00153067	  7.06471427	  0.99198953	  0.99589341  0.48654494
++1147	 -6.06797309	 -0.00257408	  0.00152972	  7.06539902	  0.99199572	  0.99589621  0.48656515
++1148	 -6.06865385	 -0.00257223	  0.00152877	  7.06608163	  0.99200190	  0.99589900  0.48658529
++1149	 -6.06933248	 -0.00257038	  0.00152782	  7.06676209	  0.99200807	  0.99590179  0.48660537
++1150	 -6.07000896	 -0.00256854	  0.00152688	  7.06744043	  0.99201424	  0.99590458  0.48662539
++1151	 -6.07068333	 -0.00256670	  0.00152593	  7.06811663	  0.99202039	  0.99590737  0.48664535
++1152	 -6.07135557	 -0.00256486	  0.00152499	  7.06879071	  0.99202654	  0.99591015  0.48666525
++1153	 -6.07202570	 -0.00256302	  0.00152404	  7.06946268	  0.99203268	  0.99591294  0.48668509
++1154	 -6.07269372	 -0.00256119	  0.00152310	  7.07013254	  0.99203881	  0.99591572  0.48670487
++1155	 -6.07335964	 -0.00255935	  0.00152215	  7.07080029	  0.99204493	  0.99591849  0.48672460
++1156	 -6.07402346	 -0.00255752	  0.00152121	  7.07146594	  0.99205104	  0.99592127  0.48674426
++1157	 -6.07468520	 -0.00255569	  0.00152027	  7.07212950	  0.99205715	  0.99592404  0.48676386
++1158	 -6.07534484	 -0.00255387	  0.00151933	  7.07279098	  0.99206325	  0.99592681  0.48678341
++1159	 -6.07600241	 -0.00255204	  0.00151839	  7.07345037	  0.99206934	  0.99592957  0.48680289
++1160	 -6.07665791	 -0.00255022	  0.00151745	  7.07410769	  0.99207542	  0.99593234  0.48682232
++1161	 -6.07731134	 -0.00254840	  0.00151651	  7.07476294	  0.99208149	  0.99593510  0.48684169
++1162	 -6.07796271	 -0.00254658	  0.00151557	  7.07541613	  0.99208756	  0.99593786  0.48686100
++1163	 -6.07861202	 -0.00254476	  0.00151463	  7.07606726	  0.99209362	  0.99594061  0.48688025
++1164	 -6.07925928	 -0.00254294	  0.00151369	  7.07671634	  0.99209967	  0.99594336  0.48689944
++1165	 -6.07990450	 -0.00254113	  0.00151275	  7.07736337	  0.99210571	  0.99594612  0.48691858
++1166	 -6.08054769	 -0.00253932	  0.00151182	  7.07800837	  0.99211174	  0.99594886  0.48693766
++1167	 -6.08118884	 -0.00253751	  0.00151088	  7.07865133	  0.99211777	  0.99595161  0.48695668
++1168	 -6.08182796	 -0.00253570	  0.00150994	  7.07929226	  0.99212379	  0.99595435  0.48697564
++1169	 -6.08246507	 -0.00253390	  0.00150901	  7.07993117	  0.99212980	  0.99595709  0.48699454
++1170	 -6.08310016	 -0.00253210	  0.00150807	  7.08056806	  0.99213580	  0.99595983  0.48701339
++1171	 -6.08373324	 -0.00253029	  0.00150714	  7.08120294	  0.99214179	  0.99596257  0.48703218
++1172	 -6.08436431	 -0.00252849	  0.00150621	  7.08183582	  0.99214778	  0.99596530  0.48705092
++1173	 -6.08499339	 -0.00252670	  0.00150527	  7.08246669	  0.99215376	  0.99596803  0.48706960
++1174	 -6.08562048	 -0.00252490	  0.00150434	  7.08309558	  0.99215973	  0.99597076  0.48708821
++1175	 -6.08624558	 -0.00252311	  0.00150341	  7.08372247	  0.99216569	  0.99597348  0.48710678
++1176	 -6.08686870	 -0.00252132	  0.00150248	  7.08434738	  0.99217164	  0.99597620  0.48712529
++1177	 -6.08748985	 -0.00251953	  0.00150155	  7.08497032	  0.99217759	  0.99597892  0.48714374
++1178	 -6.08810902	 -0.00251774	  0.00150062	  7.08559128	  0.99218353	  0.99598164  0.48716214
++1179	 -6.08872624	 -0.00251595	  0.00149969	  7.08621028	  0.99218946	  0.99598436  0.48718048
++1180	 -6.08934149	 -0.00251417	  0.00149876	  7.08682732	  0.99219538	  0.99598707  0.48719876
++1181	 -6.08995479	 -0.00251239	  0.00149784	  7.08744241	  0.99220130	  0.99598978  0.48721699
++1182	 -6.09056615	 -0.00251061	  0.00149691	  7.08805554	  0.99220721	  0.99599248  0.48723517
++1183	 -6.09117556	 -0.00250883	  0.00149598	  7.08866673	  0.99221310	  0.99599519  0.48725329
++1184	 -6.09178304	 -0.00250705	  0.00149506	  7.08927599	  0.99221900	  0.99599789  0.48727135
++1185	 -6.09238859	 -0.00250528	  0.00149413	  7.08988331	  0.99222488	  0.99600059  0.48728936
++1186	 -6.09299221	 -0.00250351	  0.00149320	  7.09048871	  0.99223076	  0.99600329  0.48730732
++1187	 -6.09359392	 -0.00250174	  0.00149228	  7.09109218	  0.99223663	  0.99600598  0.48732522
++1188	 -6.09419371	 -0.00249997	  0.00149136	  7.09169374	  0.99224249	  0.99600867  0.48734306
++1189	 -6.09479159	 -0.00249820	  0.00149043	  7.09229339	  0.99224834	  0.99601136  0.48736085
++1190	 -6.09538757	 -0.00249644	  0.00148951	  7.09289113	  0.99225419	  0.99601405  0.48737859
++1191	 -6.09598165	 -0.00249468	  0.00148859	  7.09348698	  0.99226003	  0.99601673  0.48739628
++1192	 -6.09657385	 -0.00249292	  0.00148767	  7.09408093	  0.99226586	  0.99601942  0.48741390
++1193	 -6.09716415	 -0.00249116	  0.00148675	  7.09467299	  0.99227168	  0.99602210  0.48743148
++1194	 -6.09775257	 -0.00248940	  0.00148583	  7.09526317	  0.99227749	  0.99602477  0.48744900
++1195	 -6.09833912	 -0.00248765	  0.00148491	  7.09585148	  0.99228330	  0.99602745  0.48746647
++1196	 -6.09892380	 -0.00248589	  0.00148399	  7.09643791	  0.99228910	  0.99603012  0.48748389
++1197	 -6.09950662	 -0.00248414	  0.00148307	  7.09702248	  0.99229489	  0.99603279  0.48750125
++1198	 -6.10008757	 -0.00248239	  0.00148215	  7.09760518	  0.99230068	  0.99603545  0.48751856
++1199	 -6.10066667	 -0.00248065	  0.00148124	  7.09818603	  0.99230646	  0.99603812  0.48753582
++1200	 -6.10124393	 -0.00247890	  0.00148032	  7.09876503	  0.99231223	  0.99604078  0.48755302
++1201	 -6.10181934	 -0.00247716	  0.00147941	  7.09934218	  0.99231799	  0.99604344  0.48757018
++1202	 -6.10239291	 -0.00247542	  0.00147849	  7.09991749	  0.99232374	  0.99604609  0.48758728
++1203	 -6.10296465	 -0.00247368	  0.00147758	  7.10049097	  0.99232949	  0.99604875  0.48760432
++1204	 -6.10353456	 -0.00247194	  0.00147666	  7.10106262	  0.99233523	  0.99605140  0.48762132
++1205	 -6.10410265	 -0.00247020	  0.00147575	  7.10163245	  0.99234096	  0.99605405  0.48763826
++1206	 -6.10466892	 -0.00246847	  0.00147484	  7.10220045	  0.99234669	  0.99605669  0.48765516
++1207	 -6.10523338	 -0.00246674	  0.00147393	  7.10276665	  0.99235240	  0.99605934  0.48767200
++1208	 -6.10579604	 -0.00246501	  0.00147301	  7.10333103	  0.99235811	  0.99606198  0.48768879
++1209	 -6.10635689	 -0.00246328	  0.00147210	  7.10389362	  0.99236382	  0.99606462  0.48770552
++1210	 -6.10691595	 -0.00246155	  0.00147119	  7.10445440	  0.99236951	  0.99606725  0.48772221
++1211	 -6.10747322	 -0.00245983	  0.00147028	  7.10501339	  0.99237520	  0.99606989  0.48773885
++1212	 -6.10802871	 -0.00245811	  0.00146937	  7.10557060	  0.99238088	  0.99607252  0.48775543
++1213	 -6.10858241	 -0.00245639	  0.00146847	  7.10612603	  0.99238655	  0.99607515  0.48777197
++1214	 -6.10913434	 -0.00245467	  0.00146756	  7.10667967	  0.99239222	  0.99607777  0.48778845
++1215	 -6.10968450	 -0.00245295	  0.00146665	  7.10723155	  0.99239787	  0.99608040  0.48780488
++1216	 -6.11023289	 -0.00245123	  0.00146575	  7.10778166	  0.99240353	  0.99608302  0.48782127
++1217	 -6.11077953	 -0.00244952	  0.00146484	  7.10833001	  0.99240917	  0.99608564  0.48783760
++1218	 -6.11132441	 -0.00244781	  0.00146393	  7.10887660	  0.99241480	  0.99608825  0.48785388
++1219	 -6.11186754	 -0.00244610	  0.00146303	  7.10942144	  0.99242043	  0.99609087  0.48787012
++1220	 -6.11240893	 -0.00244439	  0.00146213	  7.10996454	  0.99242605	  0.99609348  0.48788630
++1221	 -6.11294858	 -0.00244269	  0.00146122	  7.11050589	  0.99243167	  0.99609609  0.48790243
++1222	 -6.11348649	 -0.00244098	  0.00146032	  7.11104551	  0.99243728	  0.99609869  0.48791852
++1223	 -6.11402268	 -0.00243928	  0.00145942	  7.11158340	  0.99244288	  0.99610130  0.48793455
++1224	 -6.11455714	 -0.00243758	  0.00145852	  7.11211956	  0.99244847	  0.99610390  0.48795053
++1225	 -6.11508989	 -0.00243588	  0.00145762	  7.11265400	  0.99245405	  0.99610650  0.48796647
++1226	 -6.11562092	 -0.00243419	  0.00145672	  7.11318673	  0.99245963	  0.99610909  0.48798236
++1227	 -6.11615024	 -0.00243249	  0.00145582	  7.11371775	  0.99246520	  0.99611169  0.48799820
++1228	 -6.11667786	 -0.00243080	  0.00145492	  7.11424706	  0.99247077	  0.99611428  0.48801399
++1229	 -6.11720378	 -0.00242911	  0.00145402	  7.11477467	  0.99247632	  0.99611687  0.48802973
++1230	 -6.11772800	 -0.00242742	  0.00145312	  7.11530058	  0.99248187	  0.99611945  0.48804543
++1231	 -6.11825054	 -0.00242574	  0.00145223	  7.11582481	  0.99248741	  0.99612204  0.48806107
++1232	 -6.11877140	 -0.00242405	  0.00145133	  7.11634735	  0.99249295	  0.99612462  0.48807667
++1233	 -6.11929057	 -0.00242237	  0.00145043	  7.11686820	  0.99249847	  0.99612720  0.48809222
++1234	 -6.11980807	 -0.00242069	  0.00144954	  7.11738739	  0.99250400	  0.99612978  0.48810772
++1235	 -6.12032390	 -0.00241901	  0.00144864	  7.11790490	  0.99250951	  0.99613235  0.48812317
++1236	 -6.12083807	 -0.00241733	  0.00144775	  7.11842074	  0.99251501	  0.99613492  0.48813858
++1237	 -6.12135058	 -0.00241565	  0.00144686	  7.11893493	  0.99252051	  0.99613749  0.48815394
++1238	 -6.12186144	 -0.00241398	  0.00144597	  7.11944746	  0.99252601	  0.99614006  0.48816925
++1239	 -6.12237064	 -0.00241231	  0.00144507	  7.11995834	  0.99253149	  0.99614262  0.48818451
++1240	 -6.12287820	 -0.00241064	  0.00144418	  7.12046757	  0.99253697	  0.99614518  0.48819973
++1241	 -6.12338412	 -0.00240897	  0.00144329	  7.12097516	  0.99254244	  0.99614774  0.48821490
++1242	 -6.12388841	 -0.00240730	  0.00144240	  7.12148111	  0.99254790	  0.99615030  0.48823002
++1243	 -6.12439107	 -0.00240563	  0.00144151	  7.12198543	  0.99255336	  0.99615285  0.48824510
++1244	 -6.12489210	 -0.00240397	  0.00144062	  7.12248813	  0.99255881	  0.99615540  0.48826013
++1245	 -6.12539151	 -0.00240231	  0.00143974	  7.12298920	  0.99256425	  0.99615795  0.48827512
++1246	 -6.12588931	 -0.00240065	  0.00143885	  7.12348866	  0.99256969	  0.99616050  0.48829005
++1247	 -6.12638549	 -0.00239899	  0.00143796	  7.12398650	  0.99257512	  0.99616304  0.48830495
++1248	 -6.12688007	 -0.00239734	  0.00143708	  7.12448273	  0.99258054	  0.99616559  0.48831979
++1249	 -6.12737305	 -0.00239568	  0.00143619	  7.12497736	  0.99258596	  0.99616813  0.48833460
++1250	 -6.12786443	 -0.00239403	  0.00143531	  7.12547040	  0.99259136	  0.99617066  0.48834935
++1251	 -6.12835422	 -0.00239238	  0.00143442	  7.12596184	  0.99259676	  0.99617320  0.48836406
++1252	 -6.12884242	 -0.00239073	  0.00143354	  7.12645169	  0.99260216	  0.99617573  0.48837872
++1253	 -6.12932904	 -0.00238908	  0.00143266	  7.12693996	  0.99260755	  0.99617826  0.48839334
++1254	 -6.12981408	 -0.00238744	  0.00143177	  7.12742664	  0.99261293	  0.99618079  0.48840792
++1255	 -6.13029755	 -0.00238580	  0.00143089	  7.12791176	  0.99261830	  0.99618331  0.48842244
++1256	 -6.13077945	 -0.00238416	  0.00143001	  7.12839530	  0.99262367	  0.99618583  0.48843693
++1257	 -6.13125979	 -0.00238252	  0.00142913	  7.12887728	  0.99262903	  0.99618835  0.48845136
++1258	 -6.13173857	 -0.00238088	  0.00142825	  7.12935769	  0.99263438	  0.99619087  0.48846576
++1259	 -6.13221579	 -0.00237924	  0.00142737	  7.12983655	  0.99263972	  0.99619339  0.48848011
++1260	 -6.13269147	 -0.00237761	  0.00142649	  7.13031386	  0.99264506	  0.99619590  0.48849441
++1261	 -6.13316560	 -0.00237598	  0.00142562	  7.13078962	  0.99265040	  0.99619841  0.48850867
++1262	 -6.13363819	 -0.00237434	  0.00142474	  7.13126384	  0.99265572	  0.99620092  0.48852289
++1263	 -6.13410924	 -0.00237272	  0.00142386	  7.13173652	  0.99266104	  0.99620342  0.48853706
++1264	 -6.13457876	 -0.00237109	  0.00142299	  7.13220767	  0.99266635	  0.99620593  0.48855119
++1265	 -6.13504676	 -0.00236946	  0.00142211	  7.13267729	  0.99267166	  0.99620843  0.48856528
++1266	 -6.13551323	 -0.00236784	  0.00142124	  7.13314539	  0.99267696	  0.99621092  0.48857932
++1267	 -6.13597818	 -0.00236622	  0.00142036	  7.13361197	  0.99268225	  0.99621342  0.48859332
++1268	 -6.13644163	 -0.00236460	  0.00141949	  7.13407703	  0.99268753	  0.99621591  0.48860727
++1269	 -6.13690356	 -0.00236298	  0.00141862	  7.13454058	  0.99269281	  0.99621840  0.48862118
++1270	 -6.13736399	 -0.00236136	  0.00141774	  7.13500263	  0.99269808	  0.99622089  0.48863505
++1271	 -6.13782292	 -0.00235975	  0.00141687	  7.13546317	  0.99270335	  0.99622338  0.48864888
++1272	 -6.13828035	 -0.00235814	  0.00141600	  7.13592222	  0.99270861	  0.99622586  0.48866266
++1273	 -6.13873630	 -0.00235652	  0.00141513	  7.13637977	  0.99271386	  0.99622834  0.48867640
++1274	 -6.13919076	 -0.00235492	  0.00141426	  7.13683584	  0.99271910	  0.99623082  0.48869010
++1275	 -6.13964373	 -0.00235331	  0.00141339	  7.13729042	  0.99272434	  0.99623330  0.48870375
++1276	 -6.14009523	 -0.00235170	  0.00141253	  7.13774353	  0.99272957	  0.99623577  0.48871736
++1277	 -6.14054526	 -0.00235010	  0.00141166	  7.13819516	  0.99273480	  0.99623824  0.48873093
++1278	 -6.14099381	 -0.00234850	  0.00141079	  7.13864532	  0.99274001	  0.99624071  0.48874446
++1279	 -6.14144091	 -0.00234689	  0.00140993	  7.13909401	  0.99274523	  0.99624318  0.48875794
++1280	 -6.14188654	 -0.00234530	  0.00140906	  7.13954125	  0.99275043	  0.99624564  0.48877139
++1281	 -6.14233072	 -0.00234370	  0.00140820	  7.13998702	  0.99275563	  0.99624811  0.48878479
++1282	 -6.14277345	 -0.00234210	  0.00140733	  7.14043134	  0.99276082	  0.99625057  0.48879815
++1283	 -6.14321473	 -0.00234051	  0.00140647	  7.14087422	  0.99276601	  0.99625302  0.48881147
++1284	 -6.14365457	 -0.00233892	  0.00140561	  7.14131565	  0.99277118	  0.99625548  0.48882475
++1285	 -6.14409297	 -0.00233733	  0.00140474	  7.14175564	  0.99277636	  0.99625793  0.48883798
++1286	 -6.14452994	 -0.00233574	  0.00140388	  7.14219420	  0.99278152	  0.99626038  0.48885118
++1287	 -6.14496548	 -0.00233415	  0.00140302	  7.14263132	  0.99278668	  0.99626283  0.48886433
++1288	 -6.14539959	 -0.00233257	  0.00140216	  7.14306702	  0.99279183	  0.99626527  0.48887745
++1289	 -6.14583228	 -0.00233098	  0.00140130	  7.14350130	  0.99279698	  0.99626772  0.48889052
++1290	 -6.14626356	 -0.00232940	  0.00140044	  7.14393416	  0.99280212	  0.99627016  0.48890355
++1291	 -6.14669342	 -0.00232782	  0.00139958	  7.14436560	  0.99280725	  0.99627259  0.48891654
++1292	 -6.14712188	 -0.00232625	  0.00139873	  7.14479564	  0.99281238	  0.99627503  0.48892949
++1293	 -6.14754894	 -0.00232467	  0.00139787	  7.14522427	  0.99281750	  0.99627746  0.48894240
++1294	 -6.14797459	 -0.00232309	  0.00139701	  7.14565150	  0.99282261	  0.99627989  0.48895527
++1295	 -6.14839885	 -0.00232152	  0.00139616	  7.14607733	  0.99282772	  0.99628232  0.48896810
++1296	 -6.14882172	 -0.00231995	  0.00139530	  7.14650177	  0.99283282	  0.99628475  0.48898089
++1297	 -6.14924320	 -0.00231838	  0.00139445	  7.14692482	  0.99283791	  0.99628717  0.48899364
++1298	 -6.14966330	 -0.00231681	  0.00139359	  7.14734649	  0.99284300	  0.99628959  0.48900634
++1299	 -6.15008202	 -0.00231525	  0.00139274	  7.14776677	  0.99284808	  0.99629201  0.48901902
++1300	 -6.15049937	 -0.00231368	  0.00139189	  7.14818569	  0.99285316	  0.99629443  0.48903165
++1301	 -6.15091535	 -0.00231212	  0.00139104	  7.14860323	  0.99285823	  0.99629684  0.48904424
++1302	 -6.15132996	 -0.00231056	  0.00139018	  7.14901940	  0.99286329	  0.99629926  0.48905679
++1303	 -6.15174321	 -0.00230900	  0.00138933	  7.14943421	  0.99286834	  0.99630166  0.48906930
++1304	 -6.15215510	 -0.00230744	  0.00138848	  7.14984766	  0.99287339	  0.99630407  0.48908178
++1305	 -6.15256564	 -0.00230589	  0.00138763	  7.15025975	  0.99287844	  0.99630648  0.48909421
++1306	 -6.15297483	 -0.00230433	  0.00138679	  7.15067050	  0.99288347	  0.99630888  0.48910661
++1307	 -6.15338268	 -0.00230278	  0.00138594	  7.15107989	  0.99288850	  0.99631128  0.48911897
++1308	 -6.15378918	 -0.00230123	  0.00138509	  7.15148795	  0.99289353	  0.99631368  0.48913128
++1309	 -6.15419435	 -0.00229968	  0.00138424	  7.15189467	  0.99289855	  0.99631607  0.48914356
++1310	 -6.15459818	 -0.00229814	  0.00138340	  7.15230005	  0.99290356	  0.99631847  0.48915581
++1311	 -6.15500069	 -0.00229659	  0.00138255	  7.15270410	  0.99290856	  0.99632086  0.48916801
++1312	 -6.15540187	 -0.00229505	  0.00138171	  7.15310682	  0.99291356	  0.99632324  0.48918017
++1313	 -6.15580173	 -0.00229350	  0.00138087	  7.15350822	  0.99291855	  0.99632563  0.48919230
++1314	 -6.15620027	 -0.00229196	  0.00138002	  7.15390831	  0.99292354	  0.99632801  0.48920439
++1315	 -6.15659750	 -0.00229042	  0.00137918	  7.15430708	  0.99292852	  0.99633040  0.48921644
++1316	 -6.15699342	 -0.00228889	  0.00137834	  7.15470454	  0.99293349	  0.99633278  0.48922846
++1317	 -6.15738804	 -0.00228735	  0.00137750	  7.15510069	  0.99293846	  0.99633515  0.48924043
++1318	 -6.15778136	 -0.00228582	  0.00137666	  7.15549554	  0.99294342	  0.99633753  0.48925237
++1319	 -6.15817338	 -0.00228429	  0.00137582	  7.15588909	  0.99294838	  0.99633990  0.48926427
++1320	 -6.15856410	 -0.00228276	  0.00137498	  7.15628135	  0.99295333	  0.99634227  0.48927613
++1321	 -6.15895354	 -0.00228123	  0.00137414	  7.15667231	  0.99295827	  0.99634464  0.48928796
++1322	 -6.15934170	 -0.00227970	  0.00137330	  7.15706199	  0.99296321	  0.99634700  0.48929975
++1323	 -6.15972857	 -0.00227818	  0.00137246	  7.15745039	  0.99296814	  0.99634936  0.48931151
++1324	 -6.16011416	 -0.00227665	  0.00137162	  7.15783751	  0.99297306	  0.99635172  0.48932322
++1325	 -6.16049848	 -0.00227513	  0.00137079	  7.15822335	  0.99297798	  0.99635408  0.48933490
++1326	 -6.16088154	 -0.00227361	  0.00136995	  7.15860793	  0.99298289	  0.99635644  0.48934654
++1327	 -6.16126332	 -0.00227209	  0.00136912	  7.15899123	  0.99298780	  0.99635879  0.48935815
++1328	 -6.16164385	 -0.00227057	  0.00136828	  7.15937328	  0.99299270	  0.99636114  0.48936972
++1329	 -6.16202312	 -0.00226906	  0.00136745	  7.15975406	  0.99299759	  0.99636349  0.48938125
++1330	 -6.16240113	 -0.00226754	  0.00136662	  7.16013359	  0.99300248	  0.99636584  0.48939275
++1331	 -6.16277790	 -0.00226603	  0.00136579	  7.16051186	  0.99300736	  0.99636818  0.48940421
++1332	 -6.16315341	 -0.00226452	  0.00136495	  7.16088889	  0.99301224	  0.99637052  0.48941563
++1333	 -6.16352769	 -0.00226301	  0.00136412	  7.16126468	  0.99301711	  0.99637286  0.48942702
++1334	 -6.16390073	 -0.00226151	  0.00136329	  7.16163922	  0.99302197	  0.99637520  0.48943837
++1335	 -6.16427253	 -0.00226000	  0.00136246	  7.16201253	  0.99302683	  0.99637753  0.48944969
++1336	 -6.16464310	 -0.00225850	  0.00136164	  7.16238461	  0.99303168	  0.99637987  0.48946098
++1337	 -6.16501245	 -0.00225700	  0.00136081	  7.16275545	  0.99303653	  0.99638220  0.48947222
++1338	 -6.16538057	 -0.00225549	  0.00135998	  7.16312507	  0.99304136	  0.99638453  0.48948343
++1339	 -6.16574747	 -0.00225400	  0.00135915	  7.16349348	  0.99304620	  0.99638685  0.48949461
++1340	 -6.16611316	 -0.00225250	  0.00135833	  7.16386066	  0.99305103	  0.99638918  0.48950575
++1341	 -6.16647763	 -0.00225100	  0.00135750	  7.16422663	  0.99305585	  0.99639150  0.48951685
++1342	 -6.16684090	 -0.00224951	  0.00135668	  7.16459139	  0.99306066	  0.99639382  0.48952792
++1343	 -6.16720296	 -0.00224802	  0.00135585	  7.16495494	  0.99306547	  0.99639613  0.48953896
++1344	 -6.16756382	 -0.00224653	  0.00135503	  7.16531729	  0.99307027	  0.99639845  0.48954996
++1345	 -6.16792348	 -0.00224504	  0.00135421	  7.16567845	  0.99307507	  0.99640076  0.48956093
++1346	 -6.16828195	 -0.00224355	  0.00135338	  7.16603840	  0.99307986	  0.99640307  0.48957186
++1347	 -6.16863923	 -0.00224206	  0.00135256	  7.16639717	  0.99308465	  0.99640538  0.48958276
++1348	 -6.16899533	 -0.00224058	  0.00135174	  7.16675475	  0.99308943	  0.99640768  0.48959363
++1349	 -6.16935024	 -0.00223910	  0.00135092	  7.16711114	  0.99309420	  0.99640998  0.48960445
++1350	 -6.16970397	 -0.00223762	  0.00135010	  7.16746636	  0.99309897	  0.99641228  0.48961525
++1351	 -6.17005653	 -0.00223614	  0.00134928	  7.16782039	  0.99310373	  0.99641458  0.48962601
++1352	 -6.17040791	 -0.00223466	  0.00134846	  7.16817326	  0.99310849	  0.99641688  0.48963673
++1353	 -6.17075813	 -0.00223318	  0.00134765	  7.16852495	  0.99311324	  0.99641917  0.48964743
++1354	 -6.17110719	 -0.00223171	  0.00134683	  7.16887548	  0.99311798	  0.99642146  0.48965809
++1355	 -6.17145508	 -0.00223024	  0.00134601	  7.16922484	  0.99312272	  0.99642375  0.48966871
++1356	 -6.17180182	 -0.00222876	  0.00134520	  7.16957305	  0.99312745	  0.99642604  0.48967931
++1357	 -6.17214740	 -0.00222729	  0.00134438	  7.16992010	  0.99313218	  0.99642832  0.48968987
++1358	 -6.17249183	 -0.00222583	  0.00134357	  7.17026601	  0.99313690	  0.99643061  0.48970039
++1359	 -6.17283512	 -0.00222436	  0.00134275	  7.17061076	  0.99314162	  0.99643289  0.48971088
++1360	 -6.17317726	 -0.00222289	  0.00134194	  7.17095437	  0.99314633	  0.99643517  0.48972134
++1361	 -6.17351827	 -0.00222143	  0.00134113	  7.17129683	  0.99315103	  0.99643744  0.48973177
++1362	 -6.17385813	 -0.00221997	  0.00134032	  7.17163816	  0.99315573	  0.99643971  0.48974217
++1363	 -6.17419687	 -0.00221851	  0.00133950	  7.17197836	  0.99316042	  0.99644199  0.48975252
++1364	 -6.17453448	 -0.00221705	  0.00133869	  7.17231743	  0.99316511	  0.99644425  0.48976285
++1365	 -6.17487096	 -0.00221559	  0.00133788	  7.17265537	  0.99316979	  0.99644652  0.48977314
++1366	 -6.17520632	 -0.00221414	  0.00133708	  7.17299218	  0.99317446	  0.99644879  0.48978341
++1367	 -6.17554056	 -0.00221269	  0.00133627	  7.17332788	  0.99317913	  0.99645105  0.48979364
++1368	 -6.17587369	 -0.00221123	  0.00133546	  7.17366246	  0.99318379	  0.99645331  0.48980384
++1369	 -6.17620571	 -0.00220978	  0.00133465	  7.17399593	  0.99318845	  0.99645557  0.48981400
++1370	 -6.17653662	 -0.00220833	  0.00133385	  7.17432829	  0.99319310	  0.99645782  0.48982414
++1371	 -6.17686642	 -0.00220689	  0.00133304	  7.17465954	  0.99319775	  0.99646007  0.48983424
++1372	 -6.17719513	 -0.00220544	  0.00133223	  7.17498969	  0.99320239	  0.99646233  0.48984431
++1373	 -6.17752273	 -0.00220400	  0.00133143	  7.17531874	  0.99320702	  0.99646457  0.48985434
++1374	 -6.17784925	 -0.00220255	  0.00133063	  7.17564669	  0.99321165	  0.99646682  0.48986435
++1375	 -6.17817467	 -0.00220111	  0.00132982	  7.17597356	  0.99321628	  0.99646906  0.48987432
++1376	 -6.17849900	 -0.00219967	  0.00132902	  7.17629933	  0.99322089	  0.99647131  0.48988427
++1377	 -6.17882225	 -0.00219823	  0.00132822	  7.17662402	  0.99322551	  0.99647355  0.48989418
++1378	 -6.17914442	 -0.00219680	  0.00132742	  7.17694762	  0.99323011	  0.99647578  0.48990406
++1379	 -6.17946552	 -0.00219536	  0.00132662	  7.17727015	  0.99323471	  0.99647802  0.48991391
++1380	 -6.17978554	 -0.00219393	  0.00132582	  7.17759161	  0.99323931	  0.99648025  0.48992373
++1381	 -6.18010448	 -0.00219250	  0.00132502	  7.17791199	  0.99324390	  0.99648248  0.48993351
++1382	 -6.18042237	 -0.00219107	  0.00132422	  7.17823130	  0.99324848	  0.99648471  0.48994327
++1383	 -6.18073919	 -0.00218964	  0.00132342	  7.17854955	  0.99325306	  0.99648694  0.48995299
++1384	 -6.18105494	 -0.00218821	  0.00132262	  7.17886673	  0.99325763	  0.99648916  0.48996269
++1385	 -6.18136964	 -0.00218679	  0.00132183	  7.17918286	  0.99326220	  0.99649139  0.48997235
++1386	 -6.18168329	 -0.00218536	  0.00132103	  7.17949793	  0.99326676	  0.99649361  0.48998198
++1387	 -6.18199589	 -0.00218394	  0.00132024	  7.17981195	  0.99327132	  0.99649582  0.48999158
++1388	 -6.18230744	 -0.00218252	  0.00131944	  7.18012492	  0.99327587	  0.99649804  0.49000115
++1389	 -6.18261795	 -0.00218110	  0.00131865	  7.18043684	  0.99328041	  0.99650025  0.49001070
++1390	 -6.18292741	 -0.00217968	  0.00131785	  7.18074773	  0.99328495	  0.99650246  0.49002020
++1391	 -6.18323584	 -0.00217827	  0.00131706	  7.18105757	  0.99328949	  0.99650467  0.49002969
++1392	 -6.18354323	 -0.00217685	  0.00131627	  7.18136638	  0.99329401	  0.99650688  0.49003913
++1393	 -6.18384960	 -0.00217544	  0.00131548	  7.18167416	  0.99329854	  0.99650908  0.49004855
++1394	 -6.18415493	 -0.00217403	  0.00131469	  7.18198091	  0.99330305	  0.99651129  0.49005794
++1395	 -6.18445924	 -0.00217262	  0.00131390	  7.18228663	  0.99330757	  0.99651349  0.49006730
++1396	 -6.18476253	 -0.00217121	  0.00131311	  7.18259133	  0.99331207	  0.99651568  0.49007664
++1397	 -6.18506481	 -0.00216980	  0.00131232	  7.18289501	  0.99331657	  0.99651788  0.49008594
++1398	 -6.18536606	 -0.00216840	  0.00131153	  7.18319767	  0.99332107	  0.99652007  0.49009521
++1399	 -6.18566631	 -0.00216699	  0.00131074	  7.18349932	  0.99332556	  0.99652226  0.49010445
++1400	 -6.18596555	 -0.00216559	  0.00130996	  7.18379996	  0.99333004	  0.99652445  0.49011367
++1401	 -6.18626378	 -0.00216419	  0.00130917	  7.18409959	  0.99333452	  0.99652664  0.49012285
++1402	 -6.18656101	 -0.00216279	  0.00130839	  7.18439822	  0.99333900	  0.99652882  0.49013200
++1403	 -6.18685724	 -0.00216139	  0.00130760	  7.18469585	  0.99334346	  0.99653101  0.49014113
++1404	 -6.18715248	 -0.00216000	  0.00130682	  7.18499249	  0.99334793	  0.99653319  0.49015022
++1405	 -6.18744673	 -0.00215860	  0.00130603	  7.18528812	  0.99335238	  0.99653537  0.49015929
++1406	 -6.18773998	 -0.00215721	  0.00130525	  7.18558277	  0.99335684	  0.99653754  0.49016833
++1407	 -6.18803225	 -0.00215582	  0.00130447	  7.18587643	  0.99336128	  0.99653972  0.49017734
++1408	 -6.18832353	 -0.00215443	  0.00130369	  7.18616911	  0.99336572	  0.99654189  0.49018632
++1409	 -6.18861384	 -0.00215304	  0.00130291	  7.18646080	  0.99337016	  0.99654406  0.49019527
++1410	 -6.18890316	 -0.00215165	  0.00130213	  7.18675152	  0.99337459	  0.99654622  0.49020420
++1411	 -6.18919152	 -0.00215026	  0.00130135	  7.18704125	  0.99337901	  0.99654839  0.49021309
++1412	 -6.18947890	 -0.00214888	  0.00130057	  7.18733002	  0.99338343	  0.99655055  0.49022196
++1413	 -6.18976532	 -0.00214750	  0.00129979	  7.18761782	  0.99338785	  0.99655271  0.49023080
++1414	 -6.19005077	 -0.00214612	  0.00129901	  7.18790465	  0.99339226	  0.99655487  0.49023961
++1415	 -6.19033526	 -0.00214474	  0.00129823	  7.18819052	  0.99339666	  0.99655703  0.49024839
++1416	 -6.19061879	 -0.00214336	  0.00129746	  7.18847543	  0.99340106	  0.99655918  0.49025714
++1417	 -6.19090136	 -0.00214198	  0.00129668	  7.18875938	  0.99340545	  0.99656134  0.49026588
++1418	 -6.19118298	 -0.00214061	  0.00129591	  7.18904238	  0.99340984	  0.99656349  0.49027457
++1419	 -6.19146366	 -0.00213923	  0.00129513	  7.18932442	  0.99341422	  0.99656563  0.49028324
++1420	 -6.19174338	 -0.00213786	  0.00129436	  7.18960552	  0.99341860	  0.99656778  0.49029189
++1421	 -6.19202217	 -0.00213649	  0.00129359	  7.18988568	  0.99342297	  0.99656992  0.49030051
++1422	 -6.19230001	 -0.00213512	  0.00129281	  7.19016489	  0.99342734	  0.99657207  0.49030909
++1423	 -6.19257691	 -0.00213375	  0.00129204	  7.19044316	  0.99343170	  0.99657421  0.49031766
++1424	 -6.19285288	 -0.00213239	  0.00129127	  7.19072050	  0.99343606	  0.99657634  0.49032619
++1425	 -6.19312792	 -0.00213102	  0.00129050	  7.19099690	  0.99344041	  0.99657848  0.49033470
++1426	 -6.19340203	 -0.00212966	  0.00128973	  7.19127237	  0.99344475	  0.99658061  0.49034317
++1427	 -6.19367521	 -0.00212830	  0.00128896	  7.19154692	  0.99344909	  0.99658274  0.49035163
++1428	 -6.19394748	 -0.00212694	  0.00128819	  7.19182054	  0.99345343	  0.99658487  0.49036006
++1429	 -6.19421882	 -0.00212558	  0.00128743	  7.19209324	  0.99345776	  0.99658700  0.49036845
++1430	 -6.19448924	 -0.00212422	  0.00128666	  7.19236502	  0.99346208	  0.99658912  0.49037683
++1431	 -6.19475875	 -0.00212286	  0.00128589	  7.19263589	  0.99346640	  0.99659124  0.49038517
++1432	 -6.19502735	 -0.00212151	  0.00128513	  7.19290584	  0.99347072	  0.99659336  0.49039349
++1433	 -6.19529504	 -0.00212016	  0.00128436	  7.19317489	  0.99347503	  0.99659548  0.49040178
++1434	 -6.19556183	 -0.00211880	  0.00128360	  7.19344302	  0.99347933	  0.99659760  0.49041005
++1435	 -6.19582771	 -0.00211745	  0.00128283	  7.19371026	  0.99348363	  0.99659971  0.49041829
++1436	 -6.19609270	 -0.00211611	  0.00128207	  7.19397659	  0.99348792	  0.99660182  0.49042650
++1437	 -6.19635678	 -0.00211476	  0.00128131	  7.19424203	  0.99349221	  0.99660393  0.49043469
++1438	 -6.19661998	 -0.00211341	  0.00128054	  7.19450656	  0.99349650	  0.99660604  0.49044285
++1439	 -6.19688228	 -0.00211207	  0.00127978	  7.19477021	  0.99350077	  0.99660815  0.49045099
++1440	 -6.19714369	 -0.00211073	  0.00127902	  7.19503297	  0.99350505	  0.99661025  0.49045909
++1441	 -6.19740422	 -0.00210938	  0.00127826	  7.19529484	  0.99350932	  0.99661235  0.49046717
++1442	 -6.19766387	 -0.00210804	  0.00127750	  7.19555583	  0.99351358	  0.99661445  0.49047523
++1443	 -6.19792264	 -0.00210671	  0.00127674	  7.19581593	  0.99351784	  0.99661655  0.49048326
++1444	 -6.19818053	 -0.00210537	  0.00127599	  7.19607516	  0.99352209	  0.99661864  0.49049127
++1445	 -6.19843754	 -0.00210403	  0.00127523	  7.19633351	  0.99352634	  0.99662074  0.49049925
++1446	 -6.19869369	 -0.00210270	  0.00127447	  7.19659099	  0.99353058	  0.99662283  0.49050720
++1447	 -6.19894896	 -0.00210137	  0.00127372	  7.19684760	  0.99353482	  0.99662492  0.49051513
++1448	 -6.19920337	 -0.00210004	  0.00127296	  7.19710334	  0.99353905	  0.99662700  0.49052303
++1449	 -6.19945692	 -0.00209871	  0.00127221	  7.19735822	  0.99354328	  0.99662909  0.49053091
++1450	 -6.19970961	 -0.00209738	  0.00127145	  7.19761223	  0.99354750	  0.99663117  0.49053876
++1451	 -6.19996144	 -0.00209605	  0.00127070	  7.19786539	  0.99355172	  0.99663325  0.49054659
++1452	 -6.20021242	 -0.00209473	  0.00126995	  7.19811769	  0.99355593	  0.99663533  0.49055439
++1453	 -6.20046254	 -0.00209340	  0.00126919	  7.19836914	  0.99356014	  0.99663741  0.49056217
++1454	 -6.20071181	 -0.00209208	  0.00126844	  7.19861973	  0.99356434	  0.99663948  0.49056992
++1455	 -6.20096024	 -0.00209076	  0.00126769	  7.19886948	  0.99356854	  0.99664155  0.49057765
++1456	 -6.20120782	 -0.00208944	  0.00126694	  7.19911839	  0.99357273	  0.99664362  0.49058536
++1457	 -6.20145457	 -0.00208812	  0.00126619	  7.19936645	  0.99357692	  0.99664569  0.49059304
++1458	 -6.20170047	 -0.00208680	  0.00126544	  7.19961367	  0.99358110	  0.99664776  0.49060069
++1459	 -6.20194554	 -0.00208549	  0.00126469	  7.19986005	  0.99358528	  0.99664982  0.49060832
++1460	 -6.20218978	 -0.00208417	  0.00126395	  7.20010560	  0.99358945	  0.99665188  0.49061593
++1461	 -6.20243318	 -0.00208286	  0.00126320	  7.20035032	  0.99359362	  0.99665394  0.49062351
++1462	 -6.20267576	 -0.00208155	  0.00126245	  7.20059421	  0.99359778	  0.99665600  0.49063106
++1463	 -6.20291751	 -0.00208024	  0.00126171	  7.20083727	  0.99360194	  0.99665805  0.49063859
++1464	 -6.20315844	 -0.00207893	  0.00126096	  7.20107951	  0.99360609	  0.99666011  0.49064611
++1465	 -6.20339855	 -0.00207762	  0.00126022	  7.20132093	  0.99361024	  0.99666216  0.49065358
++1466	 -6.20363785	 -0.00207632	  0.00125947	  7.20156153	  0.99361438	  0.99666421  0.49066104
++1467	 -6.20387633	 -0.00207501	  0.00125873	  7.20180131	  0.99361852	  0.99666626  0.49066848
++1468	 -6.20411399	 -0.00207371	  0.00125799	  7.20204028	  0.99362265	  0.99666830  0.49067589
++1469	 -6.20435085	 -0.00207241	  0.00125725	  7.20227844	  0.99362678	  0.99667034  0.49068328
++1470	 -6.20458690	 -0.00207111	  0.00125650	  7.20251579	  0.99363090	  0.99667238  0.49069064
++1471	 -6.20482215	 -0.00206981	  0.00125576	  7.20275234	  0.99363502	  0.99667442  0.49069799
++1472	 -6.20505660	 -0.00206852	  0.00125502	  7.20298808	  0.99363914	  0.99667646  0.49070530
++1473	 -6.20529024	 -0.00206722	  0.00125428	  7.20322302	  0.99364325	  0.99667850  0.49071260
++1474	 -6.20552310	 -0.00206593	  0.00125355	  7.20345717	  0.99364735	  0.99668053  0.49071987
++1475	 -6.20575515	 -0.00206463	  0.00125281	  7.20369052	  0.99365145	  0.99668256  0.49072711
++1476	 -6.20598642	 -0.00206334	  0.00125207	  7.20392308	  0.99365554	  0.99668459  0.49073434
++1477	 -6.20621690	 -0.00206205	  0.00125133	  7.20415485	  0.99365963	  0.99668662  0.49074154
++1478	 -6.20644659	 -0.00206076	  0.00125060	  7.20438583	  0.99366372	  0.99668864  0.49074872
++1479	 -6.20667550	 -0.00205947	  0.00124986	  7.20461602	  0.99366780	  0.99669066  0.49075587
++1480	 -6.20690362	 -0.00205819	  0.00124913	  7.20484543	  0.99367187	  0.99669268  0.49076300
++1481	 -6.20713097	 -0.00205690	  0.00124839	  7.20507407	  0.99367594	  0.99669470  0.49077011
++1482	 -6.20735754	 -0.00205562	  0.00124766	  7.20530192	  0.99368001	  0.99669672  0.49077720
++1483	 -6.20758334	 -0.00205434	  0.00124693	  7.20552900	  0.99368407	  0.99669873  0.49078426
++1484	 -6.20780837	 -0.00205306	  0.00124619	  7.20575531	  0.99368812	  0.99670075  0.49079130
++1485	 -6.20803263	 -0.00205178	  0.00124546	  7.20598085	  0.99369217	  0.99670276  0.49079832
++1486	 -6.20825612	 -0.00205050	  0.00124473	  7.20620562	  0.99369622	  0.99670477  0.49080531
++1487	 -6.20847885	 -0.00204923	  0.00124400	  7.20642963	  0.99370026	  0.99670677  0.49081228
++1488	 -6.20870082	 -0.00204795	  0.00124327	  7.20665287	  0.99370430	  0.99670878  0.49081924
++1489	 -6.20892203	 -0.00204668	  0.00124254	  7.20687536	  0.99370833	  0.99671078  0.49082617
++1490	 -6.20914249	 -0.00204540	  0.00124181	  7.20709708	  0.99371236	  0.99671278  0.49083307
++1491	 -6.20936219	 -0.00204413	  0.00124109	  7.20731805	  0.99371638	  0.99671478  0.49083996
++1492	 -6.20958114	 -0.00204286	  0.00124036	  7.20753827	  0.99372040	  0.99671678  0.49084681
++1493	 -6.20979934	 -0.00204160	  0.00123963	  7.20775774	  0.99372441	  0.99671877  0.49085365
++1494	 -6.21001679	 -0.00204033	  0.00123891	  7.20797646	  0.99372842	  0.99672076  0.49086047
++1495	 -6.21023350	 -0.00203906	  0.00123818	  7.20819444	  0.99373242	  0.99672275  0.49086727
++1496	 -6.21044947	 -0.00203780	  0.00123746	  7.20841167	  0.99373642	  0.99672474  0.49087404
++1497	 -6.21066470	 -0.00203654	  0.00123673	  7.20862816	  0.99374042	  0.99672673  0.49088079
++1498	 -6.21087920	 -0.00203528	  0.00123601	  7.20884392	  0.99374441	  0.99672871  0.49088752
++1499	 -6.21109295	 -0.00203402	  0.00123529	  7.20905894	  0.99374839	  0.99673070  0.49089423
++1500	 -6.21130598	 -0.00203276	  0.00123456	  7.20927322	  0.99375237	  0.99673268  0.49090092
++1501	 -6.21151828	 -0.00203150	  0.00123384	  7.20948678	  0.99375635	  0.99673466  0.49090759
++1502	 -6.21172985	 -0.00203024	  0.00123312	  7.20969960	  0.99376032	  0.99673663  0.49091423
++1503	 -6.21194069	 -0.00202899	  0.00123240	  7.20991170	  0.99376428	  0.99673861  0.49092085
++1504	 -6.21215082	 -0.00202774	  0.00123168	  7.21012308	  0.99376825	  0.99674058  0.49092745
++1505	 -6.21236022	 -0.00202648	  0.00123096	  7.21033373	  0.99377220	  0.99674255  0.49093403
++1506	 -6.21256890	 -0.00202523	  0.00123025	  7.21054367	  0.99377616	  0.99674452  0.49094059
++1507	 -6.21277687	 -0.00202398	  0.00122953	  7.21075289	  0.99378010	  0.99674649  0.49094712
++1508	 -6.21298413	 -0.00202274	  0.00122881	  7.21096139	  0.99378405	  0.99674845  0.49095364
++1509	 -6.21319067	 -0.00202149	  0.00122809	  7.21116918	  0.99378798	  0.99675042  0.49096013
++1510	 -6.21339651	 -0.00202025	  0.00122738	  7.21137627	  0.99379192	  0.99675238  0.49096661
++1511	 -6.21360164	 -0.00201900	  0.00122666	  7.21158264	  0.99379585	  0.99675434  0.49097306
++1512	 -6.21380607	 -0.00201776	  0.00122595	  7.21178831	  0.99379977	  0.99675629  0.49097950
++1513	 -6.21400979	 -0.00201652	  0.00122523	  7.21199328	  0.99380369	  0.99675825  0.49098591
++1514	 -6.21421282	 -0.00201528	  0.00122452	  7.21219754	  0.99380761	  0.99676020  0.49099230
++1515	 -6.21441515	 -0.00201404	  0.00122381	  7.21240111	  0.99381152	  0.99676215  0.49099867
++1516	 -6.21461678	 -0.00201280	  0.00122310	  7.21260398	  0.99381543	  0.99676410  0.49100502
++1517	 -6.21481773	 -0.00201157	  0.00122239	  7.21280616	  0.99381933	  0.99676605  0.49101135
++1518	 -6.21501798	 -0.00201033	  0.00122167	  7.21300765	  0.99382323	  0.99676799  0.49101767
++1519	 -6.21521754	 -0.00200910	  0.00122096	  7.21320844	  0.99382712	  0.99676994  0.49102395
++1520	 -6.21541642	 -0.00200787	  0.00122026	  7.21340855	  0.99383101	  0.99677188  0.49103022
++1521	 -6.21561461	 -0.00200664	  0.00121955	  7.21360798	  0.99383489	  0.99677382  0.49103647
++1522	 -6.21581213	 -0.00200541	  0.00121884	  7.21380672	  0.99383877	  0.99677575  0.49104269
++1523	 -6.21600896	 -0.00200418	  0.00121813	  7.21400478	  0.99384265	  0.99677769  0.49104891
++1524	 -6.21620512	 -0.00200295	  0.00121742	  7.21420217	  0.99384652	  0.99677962  0.49105509
++1525	 -6.21640060	 -0.00200173	  0.00121672	  7.21439887	  0.99385038	  0.99678156  0.49106126
++1526	 -6.21659541	 -0.00200050	  0.00121601	  7.21459491	  0.99385424	  0.99678349  0.49106741
++1527	 -6.21678955	 -0.00199928	  0.00121531	  7.21479027	  0.99385810	  0.99678541  0.49107353
++1528	 -6.21698302	 -0.00199806	  0.00121460	  7.21498497	  0.99386195	  0.99678734  0.49107964
++1529	 -6.21717583	 -0.00199684	  0.00121390	  7.21517899	  0.99386580	  0.99678926  0.49108574
++1530	 -6.21736797	 -0.00199562	  0.00121320	  7.21537235	  0.99386965	  0.99679119  0.49109180
++1531	 -6.21755945	 -0.00199440	  0.00121249	  7.21556505	  0.99387349	  0.99679311  0.49109786
++1532	 -6.21775028	 -0.00199319	  0.00121179	  7.21575709	  0.99387732	  0.99679502  0.49110388
++1533	 -6.21794044	 -0.00199197	  0.00121109	  7.21594847	  0.99388115	  0.99679694  0.49110989
++1534	 -6.21812995	 -0.00199076	  0.00121039	  7.21613919	  0.99388498	  0.99679885  0.49111588
++1535	 -6.21831881	 -0.00198955	  0.00120969	  7.21632926	  0.99388880	  0.99680077  0.49112186
++1536	 -6.21850702	 -0.00198833	  0.00120899	  7.21651868	  0.99389261	  0.99680268  0.49112781
++1537	 -6.21869457	 -0.00198712	  0.00120829	  7.21670745	  0.99389643	  0.99680459  0.49113374
++1538	 -6.21888149	 -0.00198592	  0.00120759	  7.21689557	  0.99390024	  0.99680649  0.49113965
++1539	 -6.21906775	 -0.00198471	  0.00120689	  7.21708304	  0.99390404	  0.99680840  0.49114555
++1540	 -6.21925338	 -0.00198350	  0.00120620	  7.21726987	  0.99390784	  0.99681030  0.49115142
++1541	 -6.21943836	 -0.00198230	  0.00120550	  7.21745606	  0.99391163	  0.99681220  0.49115728
++1542	 -6.21962271	 -0.00198110	  0.00120481	  7.21764161	  0.99391542	  0.99681410  0.49116312
++1543	 -6.21980642	 -0.00197989	  0.00120411	  7.21782653	  0.99391921	  0.99681600  0.49116895
++1544	 -6.21998950	 -0.00197869	  0.00120342	  7.21801081	  0.99392299	  0.99681789  0.49117474
++1545	 -6.22017194	 -0.00197749	  0.00120272	  7.21819445	  0.99392677	  0.99681979  0.49118052
++1546	 -6.22035376	 -0.00197630	  0.00120203	  7.21837746	  0.99393054	  0.99682168  0.49118629
++1547	 -6.22053495	 -0.00197510	  0.00120134	  7.21855985	  0.99393431	  0.99682357  0.49119203
++1548	 -6.22071551	 -0.00197390	  0.00120064	  7.21874161	  0.99393808	  0.99682545  0.49119776
++1549	 -6.22089545	 -0.00197271	  0.00119995	  7.21892274	  0.99394184	  0.99682734  0.49120347
++1550	 -6.22107477	 -0.00197152	  0.00119926	  7.21910325	  0.99394559	  0.99682922  0.49120916
++1551	 -6.22125347	 -0.00197032	  0.00119857	  7.21928314	  0.99394935	  0.99683111  0.49121482
++1552	 -6.22143155	 -0.00196913	  0.00119788	  7.21946242	  0.99395309	  0.99683299  0.49122047
++1553	 -6.22160902	 -0.00196794	  0.00119719	  7.21964107	  0.99395684	  0.99683486  0.49122611
++1554	 -6.22178587	 -0.00196676	  0.00119650	  7.21981911	  0.99396058	  0.99683674  0.49123173
++1555	 -6.22196211	 -0.00196557	  0.00119582	  7.21999654	  0.99396431	  0.99683861  0.49123732
++1556	 -6.22213774	 -0.00196438	  0.00119513	  7.22017336	  0.99396804	  0.99684049  0.49124290
++1557	 -6.22231277	 -0.00196320	  0.00119444	  7.22034957	  0.99397177	  0.99684236  0.49124846
++1558	 -6.22248719	 -0.00196202	  0.00119376	  7.22052517	  0.99397549	  0.99684423  0.49125400
++1559	 -6.22266101	 -0.00196083	  0.00119307	  7.22070017	  0.99397920	  0.99684609  0.49125953
++1560	 -6.22283422	 -0.00195965	  0.00119239	  7.22087457	  0.99398292	  0.99684796  0.49126504
++1561	 -6.22300684	 -0.00195848	  0.00119170	  7.22104836	  0.99398663	  0.99684982  0.49127053
++1562	 -6.22317886	 -0.00195730	  0.00119102	  7.22122156	  0.99399033	  0.99685168  0.49127600
++1563	 -6.22335028	 -0.00195612	  0.00119034	  7.22139416	  0.99399403	  0.99685354  0.49128145
++1564	 -6.22352111	 -0.00195495	  0.00118965	  7.22156617	  0.99399773	  0.99685540  0.49128689
++1565	 -6.22369135	 -0.00195377	  0.00118897	  7.22173758	  0.99400142	  0.99685726  0.49129231
++1566	 -6.22386100	 -0.00195260	  0.00118829	  7.22190841	  0.99400511	  0.99685911  0.49129771
++1567	 -6.22403007	 -0.00195143	  0.00118761	  7.22207864	  0.99400879	  0.99686096  0.49130310
++1568	 -6.22419854	 -0.00195026	  0.00118693	  7.22224829	  0.99401247	  0.99686281  0.49130846
++1569	 -6.22436644	 -0.00194909	  0.00118625	  7.22241735	  0.99401615	  0.99686466  0.49131381
++1570	 -6.22453375	 -0.00194792	  0.00118557	  7.22258583	  0.99401982	  0.99686651  0.49131914
++1571	 -6.22470048	 -0.00194675	  0.00118490	  7.22275373	  0.99402348	  0.99686835  0.49132446
++1572	 -6.22486664	 -0.00194559	  0.00118422	  7.22292105	  0.99402715	  0.99687019  0.49132975
++1573	 -6.22503222	 -0.00194442	  0.00118354	  7.22308780	  0.99403081	  0.99687204  0.49133503
++1574	 -6.22519722	 -0.00194326	  0.00118287	  7.22325396	  0.99403446	  0.99687387  0.49134030
++1575	 -6.22536166	 -0.00194210	  0.00118219	  7.22341956	  0.99403811	  0.99687571  0.49134554
++1576	 -6.22552552	 -0.00194094	  0.00118152	  7.22358458	  0.99404176	  0.99687755  0.49135077
++1577	 -6.22568881	 -0.00193978	  0.00118084	  7.22374904	  0.99404540	  0.99687938  0.49135598
++1578	 -6.22585154	 -0.00193862	  0.00118017	  7.22391292	  0.99404904	  0.99688121  0.49136117
++1579	 -6.22601370	 -0.00193746	  0.00117950	  7.22407624	  0.99405267	  0.99688304  0.49136635
++1580	 -6.22617531	 -0.00193631	  0.00117882	  7.22423900	  0.99405630	  0.99688487  0.49137152
++1581	 -6.22633635	 -0.00193515	  0.00117815	  7.22440119	  0.99405992	  0.99688670  0.49137666
++1582	 -6.22649683	 -0.00193400	  0.00117748	  7.22456283	  0.99406354	  0.99688852  0.49138179
++1583	 -6.22665675	 -0.00193285	  0.00117681	  7.22472390	  0.99406716	  0.99689034  0.49138690
++1584	 -6.22681612	 -0.00193170	  0.00117614	  7.22488442	  0.99407077	  0.99689216  0.49139199
++1585	 -6.22697494	 -0.00193055	  0.00117547	  7.22504439	  0.99407438	  0.99689398  0.49139707
++1586	 -6.22713320	 -0.00192940	  0.00117480	  7.22520380	  0.99407799	  0.99689580  0.49140214
++1587	 -6.22729092	 -0.00192825	  0.00117413	  7.22536266	  0.99408159	  0.99689762  0.49140718
++1588	 -6.22744808	 -0.00192711	  0.00117346	  7.22552098	  0.99408519	  0.99689943  0.49141221
++1589	 -6.22760470	 -0.00192596	  0.00117280	  7.22567874	  0.99408878	  0.99690124  0.49141723
++1590	 -6.22776078	 -0.00192482	  0.00117213	  7.22583596	  0.99409237	  0.99690305  0.49142222
++1591	 -6.22791631	 -0.00192368	  0.00117147	  7.22599264	  0.99409595	  0.99690486  0.49142719
++1592	 -6.22807131	 -0.00192253	  0.00117080	  7.22614877	  0.99409953	  0.99690667  0.49143216
++1593	 -6.22822576	 -0.00192139	  0.00117014	  7.22630437	  0.99410311	  0.99690847  0.49143711
++1594	 -6.22837968	 -0.00192026	  0.00116947	  7.22645942	  0.99410668	  0.99691027  0.49144204
++1595	 -6.22853306	 -0.00191912	  0.00116881	  7.22661394	  0.99411025	  0.99691207  0.49144696
++1596	 -6.22868591	 -0.00191798	  0.00116815	  7.22676793	  0.99411381	  0.99691387  0.49145186
++1597	 -6.22883823	 -0.00191685	  0.00116748	  7.22692138	  0.99411737	  0.99691567  0.49145674
++1598	 -6.22899002	 -0.00191571	  0.00116682	  7.22707430	  0.99412093	  0.99691747  0.49146161
++1599	 -6.22914128	 -0.00191458	  0.00116616	  7.22722670	  0.99412448	  0.99691926  0.49146647
++1600	 -6.22929201	 -0.00191345	  0.00116550	  7.22737856	  0.99412803	  0.99692105  0.49147130
++1601	 -6.22944222	 -0.00191232	  0.00116484	  7.22752990	  0.99413157	  0.99692284  0.49147613
++1602	 -6.22959190	 -0.00191119	  0.00116418	  7.22768071	  0.99413511	  0.99692463  0.49148093
++1603	 -6.22974107	 -0.00191006	  0.00116352	  7.22783101	  0.99413865	  0.99692642  0.49148571
++1604	 -6.22988971	 -0.00190893	  0.00116286	  7.22798078	  0.99414218	  0.99692820  0.49149049
++1605	 -6.23003784	 -0.00190781	  0.00116221	  7.22813003	  0.99414571	  0.99692998  0.49149525
++1606	 -6.23018545	 -0.00190669	  0.00116155	  7.22827877	  0.99414924	  0.99693176  0.49149999
++1607	 -6.23033255	 -0.00190556	  0.00116089	  7.22842699	  0.99415276	  0.99693354  0.49150472
++1608	 -6.23047913	 -0.00190444	  0.00116024	  7.22857469	  0.99415627	  0.99693532  0.49150944
++1609	 -6.23062521	 -0.00190332	  0.00115958	  7.22872189	  0.99415978	  0.99693710  0.49151413
++1610	 -6.23077077	 -0.00190220	  0.00115893	  7.22886857	  0.99416329	  0.99693887  0.49151881
++1611	 -6.23091583	 -0.00190108	  0.00115828	  7.22901475	  0.99416680	  0.99694064  0.49152348
++1612	 -6.23106038	 -0.00189996	  0.00115762	  7.22916042	  0.99417030	  0.99694241  0.49152813
++1613	 -6.23120443	 -0.00189885	  0.00115697	  7.22930558	  0.99417379	  0.99694418  0.49153277
++1614	 -6.23134798	 -0.00189773	  0.00115632	  7.22945024	  0.99417729	  0.99694595  0.49153739
++1615	 -6.23149102	 -0.00189662	  0.00115567	  7.22959440	  0.99418078	  0.99694772  0.49154200
++1616	 -6.23163357	 -0.00189551	  0.00115501	  7.22973806	  0.99418426	  0.99694948  0.49154659
++1617	 -6.23177562	 -0.00189439	  0.00115436	  7.22988122	  0.99418774	  0.99695124  0.49155116
++1618	 -6.23191717	 -0.00189328	  0.00115371	  7.23002389	  0.99419122	  0.99695300  0.49155572
++1619	 -6.23205823	 -0.00189218	  0.00115307	  7.23016606	  0.99419469	  0.99695476  0.49156028
++1620	 -6.23219880	 -0.00189107	  0.00115242	  7.23030773	  0.99419816	  0.99695652  0.49156481
++1621	 -6.23233888	 -0.00188996	  0.00115177	  7.23044891	  0.99420163	  0.99695827  0.49156932
++1622	 -6.23247846	 -0.00188886	  0.00115112	  7.23058961	  0.99420509	  0.99696002  0.49157383
++1623	 -6.23261756	 -0.00188775	  0.00115047	  7.23072981	  0.99420855	  0.99696177  0.49157832
++1624	 -6.23275618	 -0.00188665	  0.00114983	  7.23086953	  0.99421200	  0.99696352  0.49158279
++1625	 -6.23289431	 -0.00188555	  0.00114918	  7.23100876	  0.99421545	  0.99696527  0.49158725
++1626	 -6.23303196	 -0.00188444	  0.00114854	  7.23114751	  0.99421890	  0.99696702  0.49159170
++1627	 -6.23316912	 -0.00188334	  0.00114789	  7.23128578	  0.99422234	  0.99696876  0.49159612
++1628	 -6.23330581	 -0.00188225	  0.00114725	  7.23142357	  0.99422578	  0.99697050  0.49160053
++1629	 -6.23344202	 -0.00188115	  0.00114661	  7.23156087	  0.99422921	  0.99697225  0.49160494
++1630	 -6.23357776	 -0.00188005	  0.00114596	  7.23169771	  0.99423264	  0.99697398  0.49160932
++1631	 -6.23371302	 -0.00187896	  0.00114532	  7.23183406	  0.99423607	  0.99697572  0.49161370
++1632	 -6.23384781	 -0.00187786	  0.00114468	  7.23196994	  0.99423949	  0.99697746  0.49161806
++1633	 -6.23398212	 -0.00187677	  0.00114404	  7.23210535	  0.99424291	  0.99697919  0.49162241
++1634	 -6.23411597	 -0.00187568	  0.00114340	  7.23224029	  0.99424633	  0.99698092  0.49162674
++1635	 -6.23424935	 -0.00187459	  0.00114276	  7.23237476	  0.99424974	  0.99698265  0.49163105
++1636	 -6.23438226	 -0.00187350	  0.00114212	  7.23250876	  0.99425315	  0.99698438  0.49163535
++1637	 -6.23451471	 -0.00187241	  0.00114148	  7.23264230	  0.99425655	  0.99698611  0.49163964
++1638	 -6.23464669	 -0.00187132	  0.00114084	  7.23277537	  0.99425995	  0.99698783  0.49164392
++1639	 -6.23477821	 -0.00187024	  0.00114021	  7.23290797	  0.99426335	  0.99698956  0.49164818
++1640	 -6.23490927	 -0.00186915	  0.00113957	  7.23304012	  0.99426674	  0.99699128  0.49165242
++1641	 -6.23503988	 -0.00186807	  0.00113893	  7.23317181	  0.99427013	  0.99699300  0.49165666
++1642	 -6.23517002	 -0.00186698	  0.00113830	  7.23330304	  0.99427352	  0.99699472  0.49166087
++1643	 -6.23529971	 -0.00186590	  0.00113766	  7.23343381	  0.99427690	  0.99699644  0.49166508
++1644	 -6.23542895	 -0.00186482	  0.00113703	  7.23356413	  0.99428028	  0.99699815  0.49166927
++1645	 -6.23555773	 -0.00186374	  0.00113639	  7.23369399	  0.99428365	  0.99699986  0.49167345
++1646	 -6.23568606	 -0.00186267	  0.00113576	  7.23382340	  0.99428702	  0.99700157  0.49167762
++1647	 -6.23581395	 -0.00186159	  0.00113513	  7.23395236	  0.99429039	  0.99700328  0.49168176
++1648	 -6.23594138	 -0.00186051	  0.00113449	  7.23408087	  0.99429375	  0.99700499  0.49168591
++1649	 -6.23606837	 -0.00185944	  0.00113386	  7.23420893	  0.99429711	  0.99700670  0.49169003
++1650	 -6.23619491	 -0.00185836	  0.00113323	  7.23433655	  0.99430047	  0.99700840  0.49169415
++1651	 -6.23632102	 -0.00185729	  0.00113260	  7.23446372	  0.99430382	  0.99701011  0.49169823
++1652	 -6.23644667	 -0.00185622	  0.00113197	  7.23459045	  0.99430717	  0.99701181  0.49170232
++1653	 -6.23657189	 -0.00185515	  0.00113134	  7.23471674	  0.99431051	  0.99701351  0.49170640
++1654	 -6.23669667	 -0.00185408	  0.00113071	  7.23484259	  0.99431385	  0.99701521  0.49171044
++1655	 -6.23682101	 -0.00185301	  0.00113009	  7.23496800	  0.99431719	  0.99701690  0.49171449
++1656	 -6.23694492	 -0.00185195	  0.00112946	  7.23509297	  0.99432052	  0.99701860  0.49171853
++1657	 -6.23706839	 -0.00185088	  0.00112883	  7.23521751	  0.99432385	  0.99702029  0.49172254
++1658	 -6.23719143	 -0.00184981	  0.00112820	  7.23534161	  0.99432718	  0.99702198  0.49172655
++1659	 -6.23731403	 -0.00184875	  0.00112758	  7.23546528	  0.99433050	  0.99702367  0.49173054
++1660	 -6.23743621	 -0.00184769	  0.00112695	  7.23558852	  0.99433382	  0.99702536  0.49173452
++1661	 -6.23755795	 -0.00184663	  0.00112633	  7.23571133	  0.99433713	  0.99702705  0.49173848
++1662	 -6.23767927	 -0.00184557	  0.00112570	  7.23583371	  0.99434044	  0.99702873  0.49174243
++1663	 -6.23780017	 -0.00184451	  0.00112508	  7.23595566	  0.99434375	  0.99703041  0.49174639
++1664	 -6.23792064	 -0.00184345	  0.00112446	  7.23607719	  0.99434706	  0.99703209  0.49175031
++1665	 -6.23804068	 -0.00184239	  0.00112383	  7.23619829	  0.99435036	  0.99703377  0.49175422
++1666	 -6.23816031	 -0.00184134	  0.00112321	  7.23631897	  0.99435365	  0.99703545  0.49175813
++1667	 -6.23827952	 -0.00184028	  0.00112259	  7.23643923	  0.99435695	  0.99703713  0.49176201
++1668	 -6.23839830	 -0.00183923	  0.00112197	  7.23655907	  0.99436024	  0.99703880  0.49176589
++1669	 -6.23851667	 -0.00183817	  0.00112135	  7.23667850	  0.99436352	  0.99704048  0.49176975
++1670	 -6.23863462	 -0.00183712	  0.00112073	  7.23679750	  0.99436680	  0.99704215  0.49177361
++1671	 -6.23875216	 -0.00183607	  0.00112011	  7.23691609	  0.99437008	  0.99704382  0.49177744
++1672	 -6.23886929	 -0.00183502	  0.00111949	  7.23703427	  0.99437336	  0.99704548  0.49178127
++1673	 -6.23898600	 -0.00183398	  0.00111887	  7.23715203	  0.99437663	  0.99704715  0.49178508
++1674	 -6.23910231	 -0.00183293	  0.00111826	  7.23726938	  0.99437990	  0.99704881  0.49178889
++1675	 -6.23921820	 -0.00183188	  0.00111764	  7.23738632	  0.99438316	  0.99705048  0.49179268
++1676	 -6.23933369	 -0.00183084	  0.00111702	  7.23750286	  0.99438642	  0.99705214  0.49179645
++1677	 -6.23944877	 -0.00182979	  0.00111641	  7.23761898	  0.99438968	  0.99705380  0.49180022
++1678	 -6.23956345	 -0.00182875	  0.00111579	  7.23773470	  0.99439293	  0.99705546  0.49180397
++1679	 -6.23967773	 -0.00182771	  0.00111518	  7.23785002	  0.99439618	  0.99705711  0.49180771
++1680	 -6.23979160	 -0.00182667	  0.00111456	  7.23796493	  0.99439943	  0.99705877  0.49181144
++1681	 -6.23990507	 -0.00182563	  0.00111395	  7.23807944	  0.99440267	  0.99706042  0.49181516
++1682	 -6.24001814	 -0.00182459	  0.00111334	  7.23819355	  0.99440591	  0.99706207  0.49181886
++1683	 -6.24013082	 -0.00182355	  0.00111273	  7.23830726	  0.99440915	  0.99706372  0.49182255
++1684	 -6.24024309	 -0.00182251	  0.00111211	  7.23842058	  0.99441238	  0.99706537  0.49182623
++1685	 -6.24035498	 -0.00182148	  0.00111150	  7.23853350	  0.99441561	  0.99706702  0.49182990
++1686	 -6.24046647	 -0.00182045	  0.00111089	  7.23864602	  0.99441884	  0.99706866  0.49183355
++1687	 -6.24057756	 -0.00181941	  0.00111028	  7.23875815	  0.99442206	  0.99707031  0.49183719
++1688	 -6.24068827	 -0.00181838	  0.00110967	  7.23886989	  0.99442528	  0.99707195  0.49184083
++1689	 -6.24079858	 -0.00181735	  0.00110906	  7.23898123	  0.99442849	  0.99707359  0.49184446
++1690	 -6.24090851	 -0.00181632	  0.00110846	  7.23909219	  0.99443170	  0.99707523  0.49184806
++1691	 -6.24101805	 -0.00181529	  0.00110785	  7.23920276	  0.99443491	  0.99707686  0.49185165
++1692	 -6.24112720	 -0.00181426	  0.00110724	  7.23931294	  0.99443812	  0.99707850  0.49185524
++1693	 -6.24123597	 -0.00181324	  0.00110663	  7.23942274	  0.99444132	  0.99708013  0.49185881
++1694	 -6.24134436	 -0.00181221	  0.00110603	  7.23953215	  0.99444451	  0.99708176  0.49186237
++1695	 -6.24145237	 -0.00181118	  0.00110542	  7.23964118	  0.99444771	  0.99708339  0.49186593
++1696	 -6.24155999	 -0.00181016	  0.00110482	  7.23974983	  0.99445090	  0.99708502  0.49186947
++1697	 -6.24166723	 -0.00180914	  0.00110421	  7.23985810	  0.99445408	  0.99708665  0.49187299
++1698	 -6.24177410	 -0.00180812	  0.00110361	  7.23996598	  0.99445727	  0.99708828  0.49187651
++1699	 -6.24188059	 -0.00180710	  0.00110300	  7.24007349	  0.99446045	  0.99708990  0.49188001
++1700	 -6.24198671	 -0.00180608	  0.00110240	  7.24018063	  0.99446363	  0.99709152  0.49188351
++1701	 -6.24209245	 -0.00180506	  0.00110180	  7.24028739	  0.99446680	  0.99709314  0.49188699
++1702	 -6.24219781	 -0.00180404	  0.00110120	  7.24039377	  0.99446997	  0.99709476  0.49189046
++1703	 -6.24230281	 -0.00180302	  0.00110060	  7.24049978	  0.99447313	  0.99709638  0.49189392
++1704	 -6.24240743	 -0.00180201	  0.00110000	  7.24060543	  0.99447630	  0.99709800  0.49189737
++1705	 -6.24251169	 -0.00180100	  0.00109940	  7.24071070	  0.99447946	  0.99709961  0.49190081
++1706	 -6.24261558	 -0.00179998	  0.00109880	  7.24081560	  0.99448261	  0.99710122  0.49190424
++1707	 -6.24271910	 -0.00179897	  0.00109820	  7.24092013	  0.99448577	  0.99710283  0.49190765
++1708	 -6.24282226	 -0.00179796	  0.00109760	  7.24102430	  0.99448891	  0.99710444  0.49191105
++1709	 -6.24292505	 -0.00179695	  0.00109700	  7.24112810	  0.99449206	  0.99710605  0.49191444
++1710	 -6.24302748	 -0.00179594	  0.00109640	  7.24123154	  0.99449520	  0.99710766  0.49191782
++1711	 -6.24312955	 -0.00179493	  0.00109581	  7.24133462	  0.99449834	  0.99710926  0.49192119
++1712	 -6.24323126	 -0.00179392	  0.00109521	  7.24143733	  0.99450148	  0.99711087  0.49192455
++1713	 -6.24333261	 -0.00179292	  0.00109461	  7.24153969	  0.99450461	  0.99711247  0.49192789
++1714	 -6.24343360	 -0.00179191	  0.00109402	  7.24164168	  0.99450774	  0.99711407  0.49193123
++1715	 -6.24353423	 -0.00179091	  0.00109342	  7.24174332	  0.99451086	  0.99711567  0.49193456
++1716	 -6.24363451	 -0.00178991	  0.00109283	  7.24184460	  0.99451399	  0.99711726  0.49193787
++1717	 -6.24373444	 -0.00178891	  0.00109224	  7.24194553	  0.99451711	  0.99711886  0.49194119
++1718	 -6.24383401	 -0.00178790	  0.00109164	  7.24204610	  0.99452022	  0.99712045  0.49194448
++1719	 -6.24393323	 -0.00178690	  0.00109105	  7.24214632	  0.99452333	  0.99712204  0.49194776
++1720	 -6.24403210	 -0.00178591	  0.00109046	  7.24224619	  0.99452644	  0.99712364  0.49195103
++1721	 -6.24413062	 -0.00178491	  0.00108987	  7.24234571	  0.99452955	  0.99712522  0.49195429
++1722	 -6.24422879	 -0.00178391	  0.00108928	  7.24244488	  0.99453265	  0.99712681  0.49195755
++1723	 -6.24432661	 -0.00178292	  0.00108869	  7.24254370	  0.99453575	  0.99712840  0.49196079
++1724	 -6.24442409	 -0.00178192	  0.00108810	  7.24264217	  0.99453884	  0.99712998  0.49196402
++1725	 -6.24452123	 -0.00178093	  0.00108751	  7.24274030	  0.99454194	  0.99713157  0.49196723
++1726	 -6.24461802	 -0.00177993	  0.00108692	  7.24283808	  0.99454502	  0.99713315  0.49197045
++1727	 -6.24471446	 -0.00177894	  0.00108633	  7.24293552	  0.99454811	  0.99713473  0.49197365
++1728	 -6.24481057	 -0.00177795	  0.00108574	  7.24303262	  0.99455119	  0.99713630  0.49197684
++1729	 -6.24490634	 -0.00177696	  0.00108516	  7.24312938	  0.99455427	  0.99713788  0.49198002
++1730	 -6.24500177	 -0.00177597	  0.00108457	  7.24322579	  0.99455735	  0.99713946  0.49198318
++1731	 -6.24509686	 -0.00177499	  0.00108398	  7.24332187	  0.99456042	  0.99714103  0.49198634
++1732	 -6.24519161	 -0.00177400	  0.00108340	  7.24341761	  0.99456349	  0.99714260  0.49198949
++1733	 -6.24528603	 -0.00177301	  0.00108281	  7.24351302	  0.99456655	  0.99714417  0.49199263
++1734	 -6.24538012	 -0.00177203	  0.00108223	  7.24360809	  0.99456961	  0.99714574  0.49199575
++1735	 -6.24547387	 -0.00177105	  0.00108164	  7.24370283	  0.99457267	  0.99714731  0.49199887
++1736	 -6.24556729	 -0.00177006	  0.00108106	  7.24379723	  0.99457573	  0.99714887  0.49200198
++1737	 -6.24566038	 -0.00176908	  0.00108048	  7.24389130	  0.99457878	  0.99715044  0.49200507
++1738	 -6.24575314	 -0.00176810	  0.00107990	  7.24398504	  0.99458183	  0.99715200  0.49200817
++1739	 -6.24584557	 -0.00176712	  0.00107931	  7.24407845	  0.99458488	  0.99715356  0.49201123
++1740	 -6.24593768	 -0.00176614	  0.00107873	  7.24417153	  0.99458792	  0.99715512  0.49201431
++1741	 -6.24602946	 -0.00176517	  0.00107815	  7.24426429	  0.99459096	  0.99715668  0.49201737
++1742	 -6.24612091	 -0.00176419	  0.00107757	  7.24435672	  0.99459400	  0.99715824  0.49202041
++1743	 -6.24621204	 -0.00176321	  0.00107699	  7.24444883	  0.99459703	  0.99715979  0.49202344
++1744	 -6.24630285	 -0.00176224	  0.00107641	  7.24454061	  0.99460006	  0.99716135  0.49202647
++1745	 -6.24639333	 -0.00176127	  0.00107584	  7.24463206	  0.99460309	  0.99716290  0.49202949
++1746	 -6.24648350	 -0.00176029	  0.00107526	  7.24472320	  0.99460611	  0.99716445  0.49203250
++1747	 -6.24657334	 -0.00175932	  0.00107468	  7.24481402	  0.99460913	  0.99716600  0.49203550
++1748	 -6.24666287	 -0.00175835	  0.00107410	  7.24490451	  0.99461215	  0.99716755  0.49203848
++1749	 -6.24675208	 -0.00175738	  0.00107353	  7.24499469	  0.99461516	  0.99716909  0.49204146
++1750	 -6.24684097	 -0.00175641	  0.00107295	  7.24508455	  0.99461817	  0.99717064  0.49204443
++1751	 -6.24692955	 -0.00175545	  0.00107238	  7.24517410	  0.99462118	  0.99717218  0.49204739
++1752	 -6.24701781	 -0.00175448	  0.00107180	  7.24526333	  0.99462418	  0.99717372  0.49205033
++1753	 -6.24710576	 -0.00175351	  0.00107123	  7.24535225	  0.99462718	  0.99717526  0.49205328
++1754	 -6.24719340	 -0.00175255	  0.00107065	  7.24544085	  0.99463018	  0.99717680  0.49205621
++1755	 -6.24728073	 -0.00175158	  0.00107008	  7.24552914	  0.99463317	  0.99717834  0.49205913
++1756	 -6.24736775	 -0.00175062	  0.00106951	  7.24561712	  0.99463617	  0.99717987  0.49206204
++1757	 -6.24745446	 -0.00174966	  0.00106893	  7.24570479	  0.99463915	  0.99718141  0.49206494
++1758	 -6.24754086	 -0.00174870	  0.00106836	  7.24579216	  0.99464214	  0.99718294  0.49206783
++1759	 -6.24762695	 -0.00174774	  0.00106779	  7.24587921	  0.99464512	  0.99718447  0.49207072
++1760	 -6.24771274	 -0.00174678	  0.00106722	  7.24596596	  0.99464810	  0.99718600  0.49207359
++1761	 -6.24779823	 -0.00174582	  0.00106665	  7.24605241	  0.99465108	  0.99718753  0.49207645
++1762	 -6.24788341	 -0.00174487	  0.00106608	  7.24613854	  0.99465405	  0.99718905  0.49207931
++1763	 -6.24796829	 -0.00174391	  0.00106551	  7.24622438	  0.99465702	  0.99719058  0.49208216
++1764	 -6.24805287	 -0.00174296	  0.00106494	  7.24630991	  0.99465998	  0.99719210  0.49208499
++1765	 -6.24813715	 -0.00174200	  0.00106438	  7.24639515	  0.99466295	  0.99719362  0.49208783
++1766	 -6.24822113	 -0.00174105	  0.00106381	  7.24648008	  0.99466591	  0.99719514  0.49209064
++1767	 -6.24830481	 -0.00174010	  0.00106324	  7.24656471	  0.99466886	  0.99719666  0.49209345
++1768	 -6.24838819	 -0.00173915	  0.00106267	  7.24664905	  0.99467182	  0.99719818  0.49209625
++1769	 -6.24847128	 -0.00173819	  0.00106211	  7.24673309	  0.99467477	  0.99719970  0.49209904
++1770	 -6.24855407	 -0.00173725	  0.00106154	  7.24681683	  0.99467771	  0.99720121  0.49210182
++1771	 -6.24863657	 -0.00173630	  0.00106098	  7.24690027	  0.99468066	  0.99720272  0.49210459
++1772	 -6.24871878	 -0.00173535	  0.00106041	  7.24698343	  0.99468360	  0.99720424  0.49210735
++1773	 -6.24880069	 -0.00173440	  0.00105985	  7.24706629	  0.99468654	  0.99720575  0.49211010
++1774	 -6.24888231	 -0.00173346	  0.00105929	  7.24714886	  0.99468947	  0.99720725  0.49211286
++1775	 -6.24896365	 -0.00173251	  0.00105872	  7.24723113	  0.99469240	  0.99720876  0.49211559
++1776	 -6.24904469	 -0.00173157	  0.00105816	  7.24731312	  0.99469533	  0.99721027  0.49211832
++1777	 -6.24912545	 -0.00173063	  0.00105760	  7.24739482	  0.99469826	  0.99721177  0.49212104
++1778	 -6.24920591	 -0.00172969	  0.00105704	  7.24747623	  0.99470118	  0.99721327  0.49212375
++1779	 -6.24928610	 -0.00172875	  0.00105648	  7.24755735	  0.99470410	  0.99721478  0.49212645
++1780	 -6.24936599	 -0.00172781	  0.00105592	  7.24763819	  0.99470702	  0.99721628  0.49212915
++1781	 -6.24944561	 -0.00172687	  0.00105536	  7.24771874	  0.99470993	  0.99721777  0.49213183
++1782	 -6.24952494	 -0.00172593	  0.00105480	  7.24779901	  0.99471284	  0.99721927  0.49213451
++1783	 -6.24960399	 -0.00172499	  0.00105424	  7.24787899	  0.99471575	  0.99722077  0.49213717
++1784	 -6.24968275	 -0.00172406	  0.00105368	  7.24795870	  0.99471865	  0.99722226  0.49213983
++1785	 -6.24976124	 -0.00172312	  0.00105312	  7.24803812	  0.99472155	  0.99722375  0.49214248
++1786	 -6.24983945	 -0.00172219	  0.00105257	  7.24811726	  0.99472445	  0.99722524  0.49214512
++1787	 -6.24991738	 -0.00172126	  0.00105201	  7.24819612	  0.99472735	  0.99722673  0.49214776
++1788	 -6.24999503	 -0.00172032	  0.00105145	  7.24827471	  0.99473024	  0.99722822  0.49215038
++1789	 -6.25007241	 -0.00171939	  0.00105090	  7.24835302	  0.99473313	  0.99722971  0.49215299
++1790	 -6.25014951	 -0.00171846	  0.00105034	  7.24843105	  0.99473601	  0.99723119  0.49215561
++1791	 -6.25022634	 -0.00171753	  0.00104979	  7.24850880	  0.99473890	  0.99723268  0.49215820
++1792	 -6.25030289	 -0.00171660	  0.00104923	  7.24858628	  0.99474178	  0.99723416  0.49216079
++1793	 -6.25037917	 -0.00171568	  0.00104868	  7.24866349	  0.99474465	  0.99723564  0.49216338
++1794	 -6.25045518	 -0.00171475	  0.00104813	  7.24874043	  0.99474753	  0.99723712  0.49216595
++1795	 -6.25053092	 -0.00171382	  0.00104758	  7.24881709	  0.99475040	  0.99723860  0.49216851
++1796	 -6.25060639	 -0.00171290	  0.00104702	  7.24889349	  0.99475327	  0.99724008  0.49217106
++1797	 -6.25068159	 -0.00171198	  0.00104647	  7.24896961	  0.99475613	  0.99724155  0.49217362
++1798	 -6.25075652	 -0.00171105	  0.00104592	  7.24904547	  0.99475899	  0.99724303  0.49217616
++1799	 -6.25083119	 -0.00171013	  0.00104537	  7.24912106	  0.99476185	  0.99724450  0.49217869
++1800	 -6.25090559	 -0.00170921	  0.00104482	  7.24919638	  0.99476471	  0.99724597  0.49218121
++1801	 -6.25097972	 -0.00170829	  0.00104427	  7.24927143	  0.99476756	  0.99724744  0.49218373
++1802	 -6.25105359	 -0.00170737	  0.00104372	  7.24934622	  0.99477041	  0.99724891  0.49218624
++1803	 -6.25112720	 -0.00170645	  0.00104317	  7.24942075	  0.99477326	  0.99725037  0.49218873
++1804	 -6.25120055	 -0.00170554	  0.00104262	  7.24949501	  0.99477610	  0.99725184  0.49219122
++1805	 -6.25127363	 -0.00170462	  0.00104208	  7.24956901	  0.99477894	  0.99725330  0.49219371
++1806	 -6.25134646	 -0.00170370	  0.00104153	  7.24964275	  0.99478178	  0.99725477  0.49219618
++1807	 -6.25141902	 -0.00170279	  0.00104098	  7.24971623	  0.99478462	  0.99725623  0.49219865
++1808	 -6.25149133	 -0.00170188	  0.00104044	  7.24978945	  0.99478745	  0.99725769  0.49220112
++1809	 -6.25156338	 -0.00170096	  0.00103989	  7.24986241	  0.99479028	  0.99725915  0.49220356
++1810	 -6.25163517	 -0.00170005	  0.00103935	  7.24993512	  0.99479311	  0.99726060  0.49220600
++1811	 -6.25170670	 -0.00169914	  0.00103880	  7.25000756	  0.99479593	  0.99726206  0.49220844
++1812	 -6.25177798	 -0.00169823	  0.00103826	  7.25007975	  0.99479875	  0.99726351  0.49221087
++1813	 -6.25184901	 -0.00169732	  0.00103771	  7.25015169	  0.99480157	  0.99726496  0.49221329
++1814	 -6.25191978	 -0.00169641	  0.00103717	  7.25022337	  0.99480438	  0.99726642  0.49221570
++1815	 -6.25199031	 -0.00169551	  0.00103663	  7.25029480	  0.99480719	  0.99726787  0.49221811
++1816	 -6.25206057	 -0.00169460	  0.00103609	  7.25036598	  0.99481000	  0.99726931  0.49222050
++1817	 -6.25213059	 -0.00169369	  0.00103555	  7.25043690	  0.99481281	  0.99727076  0.49222289
++1818	 -6.25220036	 -0.00169279	  0.00103500	  7.25050757	  0.99481561	  0.99727221  0.49222527
++1819	 -6.25226988	 -0.00169189	  0.00103446	  7.25057800	  0.99481841	  0.99727365  0.49222765
++1820	 -6.25233916	 -0.00169098	  0.00103392	  7.25064817	  0.99482121	  0.99727509  0.49223001
++1821	 -6.25240818	 -0.00169008	  0.00103338	  7.25071810	  0.99482400	  0.99727653  0.49223237
++1822	 -6.25247696	 -0.00168918	  0.00103285	  7.25078778	  0.99482680	  0.99727797  0.49223472
++1823	 -6.25254550	 -0.00168828	  0.00103231	  7.25085722	  0.99482958	  0.99727941  0.49223706
++1824	 -6.25261379	 -0.00168738	  0.00103177	  7.25092640	  0.99483237	  0.99728085  0.49223939
++1825	 -6.25268183	 -0.00168648	  0.00103123	  7.25099535	  0.99483515	  0.99728229  0.49224172
++1826	 -6.25274963	 -0.00168559	  0.00103069	  7.25106405	  0.99483793	  0.99728372  0.49224404
++1827	 -6.25281720	 -0.00168469	  0.00103016	  7.25113251	  0.99484071	  0.99728515  0.49224636
++1828	 -6.25288452	 -0.00168379	  0.00102962	  7.25120072	  0.99484348	  0.99728659  0.49224866
++1829	 -6.25295160	 -0.00168290	  0.00102909	  7.25126870	  0.99484626	  0.99728802  0.49225097
++1830	 -6.25301844	 -0.00168200	  0.00102855	  7.25133643	  0.99484902	  0.99728945  0.49225325
++1831	 -6.25308504	 -0.00168111	  0.00102802	  7.25140393	  0.99485179	  0.99729087  0.49225553
++1832	 -6.25315140	 -0.00168022	  0.00102748	  7.25147118	  0.99485455	  0.99729230  0.49225780
++1833	 -6.25321753	 -0.00167933	  0.00102695	  7.25153820	  0.99485731	  0.99729372  0.49226008
++1834	 -6.25328342	 -0.00167844	  0.00102641	  7.25160498	  0.99486007	  0.99729515  0.49226233
++1835	 -6.25334907	 -0.00167755	  0.00102588	  7.25167153	  0.99486282	  0.99729657  0.49226459
++1836	 -6.25341450	 -0.00167666	  0.00102535	  7.25173784	  0.99486558	  0.99729799  0.49226684
++1837	 -6.25347968	 -0.00167577	  0.00102482	  7.25180391	  0.99486832	  0.99729941  0.49226907
++1838	 -6.25354464	 -0.00167489	  0.00102429	  7.25186975	  0.99487107	  0.99730083  0.49227131
++1839	 -6.25360936	 -0.00167400	  0.00102376	  7.25193536	  0.99487381	  0.99730224  0.49227354
++1840	 -6.25367385	 -0.00167312	  0.00102323	  7.25200074	  0.99487655	  0.99730366  0.49227575
++1841	 -6.25373811	 -0.00167223	  0.00102270	  7.25206588	  0.99487929	  0.99730507  0.49227796
++1842	 -6.25380215	 -0.00167135	  0.00102217	  7.25213080	  0.99488202	  0.99730649  0.49228016
++1843	 -6.25386595	 -0.00167047	  0.00102164	  7.25219548	  0.99488476	  0.99730790  0.49228236
++1844	 -6.25392952	 -0.00166958	  0.00102111	  7.25225994	  0.99488749	  0.99730931  0.49228455
++1845	 -6.25399287	 -0.00166870	  0.00102058	  7.25232417	  0.99489021	  0.99731072  0.49228673
++1846	 -6.25405599	 -0.00166782	  0.00102005	  7.25238817	  0.99489294	  0.99731212  0.49228892
++1847	 -6.25411889	 -0.00166694	  0.00101953	  7.25245194	  0.99489566	  0.99731353  0.49229108
++1848	 -6.25418156	 -0.00166607	  0.00101900	  7.25251549	  0.99489837	  0.99731493  0.49229324
++1849	 -6.25424401	 -0.00166519	  0.00101847	  7.25257882	  0.99490109	  0.99731634  0.49229539
++1850	 -6.25430623	 -0.00166431	  0.00101795	  7.25264192	  0.99490380	  0.99731774  0.49229754
++1851	 -6.25436823	 -0.00166344	  0.00101742	  7.25270479	  0.99490651	  0.99731914  0.49229968
++1852	 -6.25443001	 -0.00166256	  0.00101690	  7.25276745	  0.99490922	  0.99732054  0.49230182
++1853	 -6.25449157	 -0.00166169	  0.00101638	  7.25282988	  0.99491192	  0.99732194  0.49230394
++1854	 -6.25455291	 -0.00166082	  0.00101585	  7.25289209	  0.99491462	  0.99732333  0.49230606
++1855	 -6.25461403	 -0.00165994	  0.00101533	  7.25295408	  0.99491732	  0.99732473  0.49230817
++1856	 -6.25467493	 -0.00165907	  0.00101481	  7.25301586	  0.99492002	  0.99732612  0.49231027
++1857	 -6.25473561	 -0.00165820	  0.00101428	  7.25307741	  0.99492271	  0.99732751  0.49231238
++1858	 -6.25479608	 -0.00165733	  0.00101376	  7.25313874	  0.99492540	  0.99732890  0.49231446
++1859	 -6.25485633	 -0.00165647	  0.00101324	  7.25319986	  0.99492809	  0.99733029  0.49231656
++1860	 -6.25491636	 -0.00165560	  0.00101272	  7.25326076	  0.99493077	  0.99733168  0.49231863
++1861	 -6.25497618	 -0.00165473	  0.00101220	  7.25332145	  0.99493345	  0.99733307  0.49232070
++1862	 -6.25503579	 -0.00165386	  0.00101168	  7.25338192	  0.99493613	  0.99733445  0.49232277
++1863	 -6.25509518	 -0.00165300	  0.00101116	  7.25344218	  0.99493881	  0.99733584  0.49232483
++1864	 -6.25515436	 -0.00165214	  0.00101064	  7.25350222	  0.99494148	  0.99733722  0.49232688
++1865	 -6.25521333	 -0.00165127	  0.00101012	  7.25356206	  0.99494415	  0.99733860  0.49232894
++1866	 -6.25527209	 -0.00165041	  0.00100961	  7.25362168	  0.99494682	  0.99733998  0.49233097
++1867	 -6.25533063	 -0.00164955	  0.00100909	  7.25368108	  0.99494949	  0.99734136  0.49233301
++1868	 -6.25538897	 -0.00164869	  0.00100857	  7.25374028	  0.99495215	  0.99734274  0.49233504
++1869	 -6.25544710	 -0.00164783	  0.00100806	  7.25379927	  0.99495481	  0.99734412  0.49233704
++1870	 -6.25550502	 -0.00164697	  0.00100754	  7.25385805	  0.99495747	  0.99734549  0.49233906
++1871	 -6.25556273	 -0.00164611	  0.00100702	  7.25391662	  0.99496012	  0.99734687  0.49234107
++1872	 -6.25562024	 -0.00164525	  0.00100651	  7.25397499	  0.99496278	  0.99734824  0.49234308
++1873	 -6.25567754	 -0.00164440	  0.00100599	  7.25403314	  0.99496543	  0.99734961  0.49234506
++1874	 -6.25573464	 -0.00164354	  0.00100548	  7.25409110	  0.99496807	  0.99735098  0.49234706
++1875	 -6.25579153	 -0.00164268	  0.00100497	  7.25414884	  0.99497072	  0.99735235  0.49234904
++1876	 -6.25584821	 -0.00164183	  0.00100445	  7.25420638	  0.99497336	  0.99735372  0.49235101
++1877	 -6.25590470	 -0.00164098	  0.00100394	  7.25426372	  0.99497600	  0.99735508  0.49235297
++1878	 -6.25596098	 -0.00164012	  0.00100343	  7.25432086	  0.99497863	  0.99735645  0.49235495
++1879	 -6.25601706	 -0.00163927	  0.00100292	  7.25437779	  0.99498127	  0.99735781  0.49235690
++1880	 -6.25607294	 -0.00163842	  0.00100241	  7.25443452	  0.99498390	  0.99735917  0.49235884
++1881	 -6.25612862	 -0.00163757	  0.00100189	  7.25449105	  0.99498652	  0.99736053  0.49236079
++1882	 -6.25618410	 -0.00163672	  0.00100138	  7.25454738	  0.99498915	  0.99736189  0.49236272
++1883	 -6.25623938	 -0.00163587	  0.00100087	  7.25460351	  0.99499177	  0.99736325  0.49236466
++1884	 -6.25629447	 -0.00163503	  0.00100036	  7.25465944	  0.99499439	  0.99736461  0.49236658
++1885	 -6.25634936	 -0.00163418	  0.00099986	  7.25471518	  0.99499701	  0.99736596  0.49236850
++1886	 -6.25640405	 -0.00163333	  0.00099935	  7.25477071	  0.99499963	  0.99736732  0.49237042
++1887	 -6.25645854	 -0.00163249	  0.00099884	  7.25482605	  0.99500224	  0.99736867  0.49237232
++1888	 -6.25651284	 -0.00163164	  0.00099833	  7.25488119	  0.99500485	  0.99737002  0.49237422
++1889	 -6.25656694	 -0.00163080	  0.00099782	  7.25493614	  0.99500745	  0.99737137  0.49237612
++1890	 -6.25662085	 -0.00162996	  0.00099732	  7.25499089	  0.99501006	  0.99737272  0.49237800
++1891	 -6.25667457	 -0.00162912	  0.00099681	  7.25504545	  0.99501266	  0.99737407  0.49237989
++1892	 -6.25672809	 -0.00162828	  0.00099631	  7.25509982	  0.99501526	  0.99737542  0.49238176
++1893	 -6.25678143	 -0.00162744	  0.00099580	  7.25515399	  0.99501786	  0.99737676  0.49238364
++1894	 -6.25683457	 -0.00162660	  0.00099530	  7.25520797	  0.99502045	  0.99737811  0.49238550
++1895	 -6.25688752	 -0.00162576	  0.00099479	  7.25526176	  0.99502304	  0.99737945  0.49238736
++1896	 -6.25694028	 -0.00162492	  0.00099429	  7.25531536	  0.99502563	  0.99738079  0.49238921
++1897	 -6.25699285	 -0.00162408	  0.00099378	  7.25536877	  0.99502822	  0.99738213  0.49239105
++1898	 -6.25704524	 -0.00162325	  0.00099328	  7.25542199	  0.99503080	  0.99738347  0.49239289
++1899	 -6.25709743	 -0.00162241	  0.00099278	  7.25547502	  0.99503338	  0.99738481  0.49239473
++1900	 -6.25714944	 -0.00162158	  0.00099228	  7.25552786	  0.99503596	  0.99738615  0.49239656
++1901	 -6.25720127	 -0.00162074	  0.00099177	  7.25558052	  0.99503853	  0.99738748  0.49239838
++1902	 -6.25725290	 -0.00161991	  0.00099127	  7.25563299	  0.99504111	  0.99738881  0.49240020
++1903	 -6.25730435	 -0.00161908	  0.00099077	  7.25568527	  0.99504368	  0.99739015  0.49240201
++1904	 -6.25735562	 -0.00161825	  0.00099027	  7.25573737	  0.99504625	  0.99739148  0.49240381
++1905	 -6.25740670	 -0.00161742	  0.00098977	  7.25578929	  0.99504881	  0.99739281  0.49240561
++1906	 -6.25745761	 -0.00161659	  0.00098927	  7.25584102	  0.99505137	  0.99739414  0.49240741
++1907	 -6.25750832	 -0.00161576	  0.00098877	  7.25589256	  0.99505393	  0.99739547  0.49240919
++1908	 -6.25755886	 -0.00161493	  0.00098828	  7.25594393	  0.99505649	  0.99739679  0.49241098
++1909	 -6.25760921	 -0.00161411	  0.00098778	  7.25599511	  0.99505905	  0.99739812  0.49241276
++1910	 -6.25765939	 -0.00161328	  0.00098728	  7.25604611	  0.99506160	  0.99739944  0.49241453
++1911	 -6.25770938	 -0.00161245	  0.00098678	  7.25609693	  0.99506415	  0.99740076  0.49241630
++1912	 -6.25775920	 -0.00161163	  0.00098629	  7.25614757	  0.99506670	  0.99740209  0.49241806
++1913	 -6.25780883	 -0.00161080	  0.00098579	  7.25619803	  0.99506924	  0.99740341  0.49241981
++1914	 -6.25785829	 -0.00160998	  0.00098529	  7.25624831	  0.99507179	  0.99740472  0.49242156
++1915	 -6.25790757	 -0.00160916	  0.00098480	  7.25629841	  0.99507433	  0.99740604  0.49242330
++1916	 -6.25795667	 -0.00160834	  0.00098430	  7.25634834	  0.99507686	  0.99740736  0.49242504
++1917	 -6.25800560	 -0.00160752	  0.00098381	  7.25639808	  0.99507940	  0.99740867  0.49242678
++1918	 -6.25805435	 -0.00160670	  0.00098332	  7.25644766	  0.99508193	  0.99740999  0.49242849
++1919	 -6.25810293	 -0.00160588	  0.00098282	  7.25649705	  0.99508446	  0.99741130  0.49243022
++1920	 -6.25815133	 -0.00160506	  0.00098233	  7.25654627	  0.99508699	  0.99741261  0.49243193
++1921	 -6.25819956	 -0.00160424	  0.00098184	  7.25659532	  0.99508951	  0.99741392  0.49243365
++1922	 -6.25824762	 -0.00160342	  0.00098134	  7.25664419	  0.99509203	  0.99741523  0.49243535
++1923	 -6.25829550	 -0.00160261	  0.00098085	  7.25669289	  0.99509455	  0.99741654  0.49243704
++1924	 -6.25834321	 -0.00160179	  0.00098036	  7.25674142	  0.99509707	  0.99741784  0.49243875
++1925	 -6.25839075	 -0.00160098	  0.00097987	  7.25678978	  0.99509959	  0.99741915  0.49244043
++1926	 -6.25843812	 -0.00160017	  0.00097938	  7.25683796	  0.99510210	  0.99742045  0.49244213
++1927	 -6.25848532	 -0.00159935	  0.00097889	  7.25688597	  0.99510461	  0.99742176  0.49244379
++1928	 -6.25853235	 -0.00159854	  0.00097840	  7.25693381	  0.99510712	  0.99742306  0.49244547
++1929	 -6.25857922	 -0.00159773	  0.00097791	  7.25698149	  0.99510962	  0.99742436  0.49244714
++1930	 -6.25862591	 -0.00159692	  0.00097742	  7.25702899	  0.99511212	  0.99742566  0.49244880
++1931	 -6.25867244	 -0.00159611	  0.00097693	  7.25707633	  0.99511462	  0.99742696  0.49245046
++1932	 -6.25871879	 -0.00159530	  0.00097645	  7.25712350	  0.99511712	  0.99742825  0.49245210
++1933	 -6.25876499	 -0.00159449	  0.00097596	  7.25717050	  0.99511962	  0.99742955  0.49245376
++1934	 -6.25881101	 -0.00159368	  0.00097547	  7.25721733	  0.99512211	  0.99743084  0.49245539
++1935	 -6.25885688	 -0.00159288	  0.00097499	  7.25726400	  0.99512460	  0.99743214  0.49245702
++1936	 -6.25890257	 -0.00159207	  0.00097450	  7.25731050	  0.99512709	  0.99743343  0.49245866
++1937	 -6.25894810	 -0.00159127	  0.00097402	  7.25735684	  0.99512957	  0.99743472  0.49246028
++1938	 -6.25899347	 -0.00159046	  0.00097353	  7.25740301	  0.99513205	  0.99743601  0.49246190
++1939	 -6.25903868	 -0.00158966	  0.00097305	  7.25744902	  0.99513453	  0.99743730  0.49246352
++1940	 -6.25908372	 -0.00158886	  0.00097256	  7.25749487	  0.99513701	  0.99743858  0.49246513
++1941	 -6.25912861	 -0.00158805	  0.00097208	  7.25754055	  0.99513949	  0.99743987  0.49246673
++1942	 -6.25917333	 -0.00158725	  0.00097159	  7.25758607	  0.99514196	  0.99744115  0.49246833
++1943	 -6.25921789	 -0.00158645	  0.00097111	  7.25763144	  0.99514443	  0.99744244  0.49246993
++1944	 -6.25926229	 -0.00158565	  0.00097063	  7.25767664	  0.99514690	  0.99744372  0.49247152
++1945	 -6.25930653	 -0.00158485	  0.00097015	  7.25772168	  0.99514936	  0.99744500  0.49247309
++1946	 -6.25935061	 -0.00158406	  0.00096966	  7.25776656	  0.99515183	  0.99744628  0.49247468
++1947	 -6.25939453	 -0.00158326	  0.00096918	  7.25781128	  0.99515429	  0.99744756  0.49247625
++1948	 -6.25943830	 -0.00158246	  0.00096870	  7.25785584	  0.99515675	  0.99744884  0.49247782
++1949	 -6.25948191	 -0.00158167	  0.00096822	  7.25790024	  0.99515920	  0.99745011  0.49247939
++1950	 -6.25952536	 -0.00158087	  0.00096774	  7.25794449	  0.99516165	  0.99745139  0.49248095
++1951	 -6.25956866	 -0.00158008	  0.00096726	  7.25798858	  0.99516411	  0.99745266  0.49248251
++1952	 -6.25961180	 -0.00157928	  0.00096678	  7.25803252	  0.99516655	  0.99745393  0.49248405
++1953	 -6.25965478	 -0.00157849	  0.00096631	  7.25807629	  0.99516900	  0.99745521  0.49248560
++1954	 -6.25969761	 -0.00157770	  0.00096583	  7.25811992	  0.99517144	  0.99745648  0.49248715
++1955	 -6.25974029	 -0.00157691	  0.00096535	  7.25816339	  0.99517389	  0.99745774  0.49248867
++1956	 -6.25978282	 -0.00157612	  0.00096487	  7.25820670	  0.99517633	  0.99745901  0.49249021
++1957	 -6.25982519	 -0.00157533	  0.00096440	  7.25824986	  0.99517876	  0.99746028  0.49249174
++1958	 -6.25986741	 -0.00157454	  0.00096392	  7.25829287	  0.99518120	  0.99746154  0.49249325
++1959	 -6.25990947	 -0.00157375	  0.00096344	  7.25833572	  0.99518363	  0.99746281  0.49249477
++1960	 -6.25995139	 -0.00157296	  0.00096297	  7.25837843	  0.99518606	  0.99746407  0.49249628
++1961	 -6.25999315	 -0.00157217	  0.00096249	  7.25842098	  0.99518848	  0.99746533  0.49249779
++1962	 -6.26003477	 -0.00157139	  0.00096202	  7.25846338	  0.99519091	  0.99746659  0.49249929
++1963	 -6.26007624	 -0.00157060	  0.00096154	  7.25850563	  0.99519333	  0.99746785  0.49250079
++1964	 -6.26011755	 -0.00156982	  0.00096107	  7.25854773	  0.99519575	  0.99746911  0.49250228
++1965	 -6.26015872	 -0.00156903	  0.00096060	  7.25858969	  0.99519817	  0.99747037  0.49250377
++1966	 -6.26019974	 -0.00156825	  0.00096012	  7.25863149	  0.99520058	  0.99747163  0.49250524
++1967	 -6.26024061	 -0.00156747	  0.00095965	  7.25867315	  0.99520300	  0.99747288  0.49250672
++1968	 -6.26028134	 -0.00156669	  0.00095918	  7.25871465	  0.99520541	  0.99747414  0.49250819
++1969	 -6.26032192	 -0.00156591	  0.00095871	  7.25875601	  0.99520782	  0.99747539  0.49250967
++1970	 -6.26036235	 -0.00156513	  0.00095823	  7.25879723	  0.99521022	  0.99747664  0.49251114
++1971	 -6.26040264	 -0.00156435	  0.00095776	  7.25883830	  0.99521263	  0.99747789  0.49251259
++1972	 -6.26044279	 -0.00156357	  0.00095729	  7.25887922	  0.99521503	  0.99747914  0.49251404
++1973	 -6.26048279	 -0.00156279	  0.00095682	  7.25892000	  0.99521743	  0.99748039  0.49251549
++1974	 -6.26052264	 -0.00156201	  0.00095635	  7.25896063	  0.99521982	  0.99748163  0.49251694
++1975	 -6.26056235	 -0.00156124	  0.00095588	  7.25900112	  0.99522222	  0.99748288  0.49251838
++1976	 -6.26060192	 -0.00156046	  0.00095542	  7.25904146	  0.99522461	  0.99748412  0.49251982
++1977	 -6.26064135	 -0.00155969	  0.00095495	  7.25908167	  0.99522700	  0.99748537  0.49252125
++1978	 -6.26068064	 -0.00155891	  0.00095448	  7.25912173	  0.99522939	  0.99748661  0.49252269
++1979	 -6.26071978	 -0.00155814	  0.00095401	  7.25916164	  0.99523177	  0.99748785  0.49252410
++1980	 -6.26075879	 -0.00155737	  0.00095354	  7.25920142	  0.99523415	  0.99748909  0.49252552
++1981	 -6.26079765	 -0.00155659	  0.00095308	  7.25924106	  0.99523653	  0.99749033  0.49252694
++1982	 -6.26083637	 -0.00155582	  0.00095261	  7.25928055	  0.99523891	  0.99749157  0.49252834
++1983	 -6.26087496	 -0.00155505	  0.00095215	  7.25931991	  0.99524129	  0.99749280  0.49252975
++1984	 -6.26091341	 -0.00155428	  0.00095168	  7.25935912	  0.99524366	  0.99749404  0.49253116
++1985	 -6.26095171	 -0.00155351	  0.00095122	  7.25939820	  0.99524603	  0.99749527  0.49253255
++1986	 -6.26098988	 -0.00155274	  0.00095075	  7.25943714	  0.99524840	  0.99749651  0.49253394
++1987	 -6.26102792	 -0.00155198	  0.00095029	  7.25947594	  0.99525077	  0.99749774  0.49253533
++1988	 -6.26106581	 -0.00155121	  0.00094982	  7.25951460	  0.99525313	  0.99749897  0.49253672
++1989	 -6.26110357	 -0.00155044	  0.00094936	  7.25955313	  0.99525549	  0.99750020  0.49253810
++1990	 -6.26114120	 -0.00154968	  0.00094890	  7.25959152	  0.99525785	  0.99750143  0.49253947
++1991	 -6.26117869	 -0.00154891	  0.00094843	  7.25962977	  0.99526021	  0.99750265  0.49254085
++1992	 -6.26121604	 -0.00154815	  0.00094797	  7.25966789	  0.99526256	  0.99750388  0.49254220
++1993	 -6.26125326	 -0.00154739	  0.00094751	  7.25970587	  0.99526492	  0.99750510  0.49254357
++1994	 -6.26129035	 -0.00154662	  0.00094705	  7.25974372	  0.99526727	  0.99750633  0.49254493
++1995	 -6.26132730	 -0.00154586	  0.00094659	  7.25978144	  0.99526962	  0.99750755  0.49254628
++1996	 -6.26136412	 -0.00154510	  0.00094613	  7.25981902	  0.99527196	  0.99750877  0.49254763
++1997	 -6.26140081	 -0.00154434	  0.00094567	  7.25985647	  0.99527431	  0.99750999  0.49254897
++1998	 -6.26143736	 -0.00154358	  0.00094521	  7.25989378	  0.99527665	  0.99751121  0.49255032
++1999	 -6.26147379	 -0.00154282	  0.00094475	  7.25993097	  0.99527899	  0.99751243  0.49255166
++2000	 -6.26151008	 -0.00154206	  0.00094429	  7.25996802	  0.99528132	  0.99751365  0.49255299
++2001	 -6.26154624	 -0.00154131	  0.00094383	  7.26000494	  0.99528366	  0.99751486  0.49255432
++2002	 -6.26158228	 -0.00154055	  0.00094337	  7.26004173	  0.99528599	  0.99751608  0.49255564
++2003	 -6.26161818	 -0.00153979	  0.00094292	  7.26007839	  0.99528832	  0.99751729  0.49255696
++2004	 -6.26165395	 -0.00153904	  0.00094246	  7.26011492	  0.99529065	  0.99751851  0.49255828
++2005	 -6.26168960	 -0.00153828	  0.00094200	  7.26015132	  0.99529297	  0.99751972  0.49255958
++2006	 -6.26172512	 -0.00153753	  0.00094155	  7.26018759	  0.99529530	  0.99752093  0.49256090
++2007	 -6.26176051	 -0.00153677	  0.00094109	  7.26022373	  0.99529762	  0.99752214  0.49256219
++2008	 -6.26179577	 -0.00153602	  0.00094063	  7.26025975	  0.99529994	  0.99752334  0.49256349
++2009	 -6.26183090	 -0.00153527	  0.00094018	  7.26029563	  0.99530226	  0.99752455  0.49256478
++2010	 -6.26186591	 -0.00153452	  0.00093972	  7.26033139	  0.99530457	  0.99752576  0.49256609
++2011	 -6.26190080	 -0.00153377	  0.00093927	  7.26036703	  0.99530688	  0.99752696  0.49256738
++2012	 -6.26193555	 -0.00153302	  0.00093882	  7.26040254	  0.99530919	  0.99752817  0.49256866
++2013	 -6.26197019	 -0.00153227	  0.00093836	  7.26043792	  0.99531150	  0.99752937  0.49256993
++2014	 -6.26200470	 -0.00153152	  0.00093791	  7.26047317	  0.99531381	  0.99753057  0.49257121
++2015	 -6.26203908	 -0.00153077	  0.00093746	  7.26050831	  0.99531611	  0.99753177  0.49257249
++2016	 -6.26207334	 -0.00153003	  0.00093700	  7.26054331	  0.99531841	  0.99753297  0.49257375
++2017	 -6.26210748	 -0.00152928	  0.00093655	  7.26057820	  0.99532071	  0.99753417  0.49257501
++2018	 -6.26214149	 -0.00152853	  0.00093610	  7.26061296	  0.99532301	  0.99753537  0.49257629
++2019	 -6.26217539	 -0.00152779	  0.00093565	  7.26064760	  0.99532530	  0.99753656  0.49257754
++2020	 -6.26220916	 -0.00152705	  0.00093520	  7.26068211	  0.99532759	  0.99753776  0.49257879
++2021	 -6.26224280	 -0.00152630	  0.00093475	  7.26071650	  0.99532988	  0.99753895  0.49258003
++2022	 -6.26227633	 -0.00152556	  0.00093430	  7.26075077	  0.99533217	  0.99754014  0.49258128
++2023	 -6.26230974	 -0.00152482	  0.00093385	  7.26078492	  0.99533446	  0.99754133  0.49258252
++2024	 -6.26234303	 -0.00152408	  0.00093340	  7.26081895	  0.99533674	  0.99754253  0.49258376
++2025	 -6.26237620	 -0.00152333	  0.00093295	  7.26085286	  0.99533902	  0.99754372  0.49258498
++2026	 -6.26240924	 -0.00152259	  0.00093250	  7.26088665	  0.99534130	  0.99754490  0.49258622
++2027	 -6.26244217	 -0.00152186	  0.00093205	  7.26092032	  0.99534358	  0.99754609  0.49258745
++2028	 -6.26247499	 -0.00152112	  0.00093161	  7.26095387	  0.99534586	  0.99754728  0.49258868
++2029	 -6.26250768	 -0.00152038	  0.00093116	  7.26098730	  0.99534813	  0.99754846  0.49258989
++2030	 -6.26254025	 -0.00151964	  0.00093071	  7.26102061	  0.99535040	  0.99754965  0.49259110
++2031	 -6.26257271	 -0.00151890	  0.00093027	  7.26105381	  0.99535267	  0.99755083  0.49259230
++2032	 -6.26260505	 -0.00151817	  0.00092982	  7.26108689	  0.99535493	  0.99755201  0.49259351
++2033	 -6.26263728	 -0.00151743	  0.00092937	  7.26111985	  0.99535720	  0.99755319  0.49259471
++2034	 -6.26266939	 -0.00151670	  0.00092893	  7.26115269	  0.99535946	  0.99755437  0.49259592
++2035	 -6.26270138	 -0.00151596	  0.00092848	  7.26118542	  0.99536172	  0.99755555  0.49259711
++2036	 -6.26273326	 -0.00151523	  0.00092804	  7.26121803	  0.99536398	  0.99755673  0.49259829
++2037	 -6.26276503	 -0.00151450	  0.00092760	  7.26125053	  0.99536623	  0.99755790  0.49259950
++2038	 -6.26279668	 -0.00151377	  0.00092715	  7.26128291	  0.99536849	  0.99755908  0.49260067
++2039	 -6.26282822	 -0.00151304	  0.00092671	  7.26131518	  0.99537074	  0.99756025  0.49260186
++2040	 -6.26285964	 -0.00151231	  0.00092627	  7.26134733	  0.99537299	  0.99756143  0.49260303
++2041	 -6.26289095	 -0.00151158	  0.00092582	  7.26137937	  0.99537524	  0.99756260  0.49260421
++2042	 -6.26292215	 -0.00151085	  0.00092538	  7.26141130	  0.99537748	  0.99756377  0.49260538
++2043	 -6.26295323	 -0.00151012	  0.00092494	  7.26144311	  0.99537972	  0.99756494  0.49260653
++2044	 -6.26298421	 -0.00150939	  0.00092450	  7.26147481	  0.99538196	  0.99756611  0.49260770
++2045	 -6.26301507	 -0.00150866	  0.00092406	  7.26150640	  0.99538420	  0.99756728  0.49260887
++2046	 -6.26304582	 -0.00150794	  0.00092362	  7.26153788	  0.99538644	  0.99756844  0.49261002
++2047	 -6.26307646	 -0.00150721	  0.00092318	  7.26156925	  0.99538867	  0.99756961  0.49261117
++2048	 -6.26310699	 -0.00150649	  0.00092274	  7.26160050	  0.99539091	  0.99757078  0.49261231
++2049	 -6.26313741	 -0.00150576	  0.00092230	  7.26163165	  0.99539314	  0.99757194  0.49261347
++2050	 -6.26316772	 -0.00150504	  0.00092186	  7.26166269	  0.99539536	  0.99757310  0.49261461
++2051	 -6.26319793	 -0.00150431	  0.00092142	  7.26169361	  0.99539759	  0.99757426  0.49261575
++2052	 -6.26322802	 -0.00150359	  0.00092098	  7.26172443	  0.99539981	  0.99757542  0.49261688
++2053	 -6.26325801	 -0.00150287	  0.00092055	  7.26175513	  0.99540204	  0.99757658  0.49261801
++2054	 -6.26328788	 -0.00150215	  0.00092011	  7.26178573	  0.99540426	  0.99757774  0.49261913
++2055	 -6.26331765	 -0.00150143	  0.00091967	  7.26181623	  0.99540647	  0.99757890  0.49262025
++2056	 -6.26334732	 -0.00150071	  0.00091924	  7.26184661	  0.99540869	  0.99758006  0.49262138
++2057	 -6.26337687	 -0.00149999	  0.00091880	  7.26187688	  0.99541090	  0.99758121  0.49262250
++2058	 -6.26340633	 -0.00149927	  0.00091836	  7.26190705	  0.99541311	  0.99758236  0.49262361
++2059	 -6.26343567	 -0.00149855	  0.00091793	  7.26193712	  0.99541532	  0.99758352  0.49262472
++2060	 -6.26346491	 -0.00149784	  0.00091749	  7.26196707	  0.99541753	  0.99758467  0.49262583
++2061	 -6.26349404	 -0.00149712	  0.00091706	  7.26199692	  0.99541974	  0.99758582  0.49262693
++2062	 -6.26352307	 -0.00149640	  0.00091662	  7.26202667	  0.99542194	  0.99758697  0.49262803
++2063	 -6.26355200	 -0.00149569	  0.00091619	  7.26205631	  0.99542414	  0.99758812  0.49262913
++2064	 -6.26358082	 -0.00149498	  0.00091576	  7.26208585	  0.99542634	  0.99758927  0.49263021
++2065	 -6.26360954	 -0.00149426	  0.00091532	  7.26211528	  0.99542854	  0.99759042  0.49263131
++2066	 -6.26363815	 -0.00149355	  0.00091489	  7.26214460	  0.99543073	  0.99759156  0.49263239
++2067	 -6.26366666	 -0.00149284	  0.00091446	  7.26217383	  0.99543292	  0.99759271  0.49263348
++2068	 -6.26369507	 -0.00149212	  0.00091403	  7.26220295	  0.99543511	  0.99759385  0.49263456
++2069	 -6.26372338	 -0.00149141	  0.00091359	  7.26223197	  0.99543730	  0.99759499  0.49263563
++2070	 -6.26375159	 -0.00149070	  0.00091316	  7.26226088	  0.99543949	  0.99759613  0.49263671
++2071	 -6.26377969	 -0.00148999	  0.00091273	  7.26228970	  0.99544167	  0.99759728  0.49263778
++2072	 -6.26380769	 -0.00148928	  0.00091230	  7.26231841	  0.99544386	  0.99759841  0.49263884
++2073	 -6.26383560	 -0.00148857	  0.00091187	  7.26234702	  0.99544604	  0.99759955  0.49263991
++2074	 -6.26386340	 -0.00148787	  0.00091144	  7.26237553	  0.99544821	  0.99760069  0.49264097
++2075	 -6.26389110	 -0.00148716	  0.00091101	  7.26240394	  0.99545039	  0.99760183  0.49264203
++2076	 -6.26391870	 -0.00148645	  0.00091058	  7.26243225	  0.99545257	  0.99760296  0.49264308
++2077	 -6.26394621	 -0.00148575	  0.00091016	  7.26246046	  0.99545474	  0.99760410  0.49264413
++2078	 -6.26397361	 -0.00148504	  0.00090973	  7.26248857	  0.99545691	  0.99760523  0.49264518
++2079	 -6.26400092	 -0.00148434	  0.00090930	  7.26251658	  0.99545908	  0.99760636  0.49264622
++2080	 -6.26402813	 -0.00148363	  0.00090887	  7.26254449	  0.99546124	  0.99760750  0.49264726
++2081	 -6.26405524	 -0.00148293	  0.00090844	  7.26257231	  0.99546341	  0.99760863  0.49264830
++2082	 -6.26408225	 -0.00148223	  0.00090802	  7.26260002	  0.99546557	  0.99760976  0.49264934
++2083	 -6.26410916	 -0.00148152	  0.00090759	  7.26262764	  0.99546773	  0.99761088  0.49265036
++2084	 -6.26413598	 -0.00148082	  0.00090717	  7.26265516	  0.99546989	  0.99761201  0.49265140
++2085	 -6.26416271	 -0.00148012	  0.00090674	  7.26268258	  0.99547204	  0.99761314  0.49265242
++2086	 -6.26418933	 -0.00147942	  0.00090631	  7.26270991	  0.99547420	  0.99761426  0.49265345
++2087	 -6.26421586	 -0.00147872	  0.00090589	  7.26273714	  0.99547635	  0.99761539  0.49265447
++2088	 -6.26424230	 -0.00147802	  0.00090547	  7.26276428	  0.99547850	  0.99761651  0.49265547
++2089	 -6.26426864	 -0.00147733	  0.00090504	  7.26279132	  0.99548065	  0.99761763  0.49265649
++2090	 -6.26429489	 -0.00147663	  0.00090462	  7.26281826	  0.99548279	  0.99761875  0.49265751
++2091	 -6.26432104	 -0.00147593	  0.00090419	  7.26284511	  0.99548494	  0.99761987  0.49265851
++2092	 -6.26434710	 -0.00147523	  0.00090377	  7.26287186	  0.99548708	  0.99762099  0.49265951
++2093	 -6.26437306	 -0.00147454	  0.00090335	  7.26289852	  0.99548922	  0.99762211  0.49266051
++2094	 -6.26439893	 -0.00147384	  0.00090293	  7.26292509	  0.99549136	  0.99762323  0.49266151
++2095	 -6.26442471	 -0.00147315	  0.00090250	  7.26295156	  0.99549349	  0.99762435  0.49266249
++2096	 -6.26445040	 -0.00147246	  0.00090208	  7.26297794	  0.99549563	  0.99762546  0.49266350
++2097	 -6.26447599	 -0.00147176	  0.00090166	  7.26300423	  0.99549776	  0.99762658  0.49266448
++2098	 -6.26450150	 -0.00147107	  0.00090124	  7.26303043	  0.99549989	  0.99762769  0.49266547
++2099	 -6.26452691	 -0.00147038	  0.00090082	  7.26305653	  0.99550202	  0.99762880  0.49266646
++2100	 -6.26455222	 -0.00146969	  0.00090040	  7.26308254	  0.99550415	  0.99762991  0.49266744
++2101	 -6.26457745	 -0.00146900	  0.00089998	  7.26310846	  0.99550627	  0.99763102  0.49266841
++2102	 -6.26460259	 -0.00146831	  0.00089956	  7.26313428	  0.99550839	  0.99763213  0.49266939
++2103	 -6.26462764	 -0.00146762	  0.00089914	  7.26316002	  0.99551051	  0.99763324  0.49267035
++2104	 -6.26465259	 -0.00146693	  0.00089872	  7.26318567	  0.99551263	  0.99763435  0.49267132
++2105	 -6.26467746	 -0.00146624	  0.00089831	  7.26321122	  0.99551475	  0.99763545  0.49267230
++2106	 -6.26470224	 -0.00146555	  0.00089789	  7.26323669	  0.99551686	  0.99763656  0.49267325
++2107	 -6.26472693	 -0.00146486	  0.00089747	  7.26326207	  0.99551898	  0.99763766  0.49267421
++2108	 -6.26475153	 -0.00146418	  0.00089705	  7.26328735	  0.99552109	  0.99763877  0.49267517
++2109	 -6.26477604	 -0.00146349	  0.00089664	  7.26331255	  0.99552319	  0.99763987  0.49267611
++2110	 -6.26480047	 -0.00146281	  0.00089622	  7.26333766	  0.99552530	  0.99764097  0.49267707
++2111	 -6.26482481	 -0.00146212	  0.00089580	  7.26336268	  0.99552741	  0.99764207  0.49267802
++2112	 -6.26484906	 -0.00146144	  0.00089539	  7.26338762	  0.99552951	  0.99764317  0.49267897
++2113	 -6.26487322	 -0.00146076	  0.00089497	  7.26341246	  0.99553161	  0.99764427  0.49267991
++2114	 -6.26489730	 -0.00146007	  0.00089456	  7.26343722	  0.99553371	  0.99764537  0.49268085
++2115	 -6.26492129	 -0.00145939	  0.00089414	  7.26346189	  0.99553581	  0.99764646  0.49268179
++2116	 -6.26494519	 -0.00145871	  0.00089373	  7.26348648	  0.99553790	  0.99764756  0.49268272
++2117	 -6.26496901	 -0.00145803	  0.00089332	  7.26351098	  0.99553999	  0.99764865  0.49268365
++2118	 -6.26499274	 -0.00145735	  0.00089290	  7.26353539	  0.99554209	  0.99764975  0.49268458
++2119	 -6.26501639	 -0.00145667	  0.00089249	  7.26355972	  0.99554417	  0.99765084  0.49268549
++2120	 -6.26503995	 -0.00145599	  0.00089208	  7.26358396	  0.99554626	  0.99765193  0.49268643
++2121	 -6.26506343	 -0.00145531	  0.00089166	  7.26360811	  0.99554835	  0.99765302  0.49268735
++2122	 -6.26508682	 -0.00145463	  0.00089125	  7.26363219	  0.99555043	  0.99765411  0.49268826
++2123	 -6.26511013	 -0.00145396	  0.00089084	  7.26365617	  0.99555251	  0.99765520  0.49268918
++2124	 -6.26513336	 -0.00145328	  0.00089043	  7.26368008	  0.99555459	  0.99765629  0.49269008
++2125	 -6.26515650	 -0.00145261	  0.00089002	  7.26370389	  0.99555667	  0.99765738  0.49269099
++2126	 -6.26517956	 -0.00145193	  0.00088961	  7.26372763	  0.99555875	  0.99765846  0.49269190
++2127	 -6.26520254	 -0.00145126	  0.00088920	  7.26375128	  0.99556082	  0.99765955  0.49269281
++2128	 -6.26522543	 -0.00145058	  0.00088879	  7.26377485	  0.99556289	  0.99766063  0.49269370
++2129	 -6.26524824	 -0.00144991	  0.00088838	  7.26379834	  0.99556496	  0.99766171  0.49269460
++2130	 -6.26527098	 -0.00144924	  0.00088797	  7.26382174	  0.99556703	  0.99766280  0.49269550
++2131	 -6.26529363	 -0.00144856	  0.00088756	  7.26384506	  0.99556910	  0.99766388  0.49269640
++2132	 -6.26531619	 -0.00144789	  0.00088715	  7.26386830	  0.99557116	  0.99766496  0.49269728
++2133	 -6.26533868	 -0.00144722	  0.00088674	  7.26389146	  0.99557323	  0.99766604  0.49269817
++2134	 -6.26536109	 -0.00144655	  0.00088634	  7.26391454	  0.99557529	  0.99766711  0.49269905
++2135	 -6.26538341	 -0.00144588	  0.00088593	  7.26393753	  0.99557735	  0.99766819  0.49269994
++2136	 -6.26540566	 -0.00144521	  0.00088552	  7.26396045	  0.99557940	  0.99766927  0.49270083
++2137	 -6.26542783	 -0.00144454	  0.00088511	  7.26398329	  0.99558146	  0.99767034  0.49270168
++2138	 -6.26544992	 -0.00144387	  0.00088471	  7.26400604	  0.99558351	  0.99767142  0.49270256
++2139	 -6.26547192	 -0.00144321	  0.00088430	  7.26402872	  0.99558556	  0.99767249  0.49270344
++2140	 -6.26549385	 -0.00144254	  0.00088390	  7.26405131	  0.99558761	  0.99767356  0.49270431
++2141	 -6.26551570	 -0.00144187	  0.00088349	  7.26407383	  0.99558966	  0.99767463  0.49270518
++2142	 -6.26553748	 -0.00144121	  0.00088309	  7.26409627	  0.99559171	  0.99767571  0.49270604
++2143	 -6.26555917	 -0.00144054	  0.00088268	  7.26411863	  0.99559375	  0.99767678  0.49270690
++2144	 -6.26558079	 -0.00143988	  0.00088228	  7.26414091	  0.99559579	  0.99767784  0.49270776
++2145	 -6.26560233	 -0.00143922	  0.00088187	  7.26416311	  0.99559783	  0.99767891  0.49270862
++2146	 -6.26562379	 -0.00143855	  0.00088147	  7.26418524	  0.99559987	  0.99767998  0.49270947
++2147	 -6.26564518	 -0.00143789	  0.00088107	  7.26420729	  0.99560191	  0.99768104  0.49271032
++2148	 -6.26566648	 -0.00143723	  0.00088066	  7.26422926	  0.99560394	  0.99768211  0.49271118
++2149	 -6.26568772	 -0.00143657	  0.00088026	  7.26425115	  0.99560598	  0.99768317  0.49271202
++2150	 -6.26570887	 -0.00143590	  0.00087986	  7.26427297	  0.99560801	  0.99768424  0.49271286
++2151	 -6.26572995	 -0.00143524	  0.00087946	  7.26429471	  0.99561004	  0.99768530  0.49271371
++2152	 -6.26575096	 -0.00143458	  0.00087906	  7.26431637	  0.99561206	  0.99768636  0.49271455
++2153	 -6.26577189	 -0.00143393	  0.00087865	  7.26433796	  0.99561409	  0.99768742  0.49271537
++2154	 -6.26579274	 -0.00143327	  0.00087825	  7.26435948	  0.99561611	  0.99768848  0.49271621
++2155	 -6.26581352	 -0.00143261	  0.00087785	  7.26438092	  0.99561813	  0.99768954  0.49271704
++2156	 -6.26583423	 -0.00143195	  0.00087745	  7.26440228	  0.99562015	  0.99769059  0.49271787
++2157	 -6.26585486	 -0.00143130	  0.00087705	  7.26442357	  0.99562217	  0.99769165  0.49271871
++2158	 -6.26587542	 -0.00143064	  0.00087665	  7.26444478	  0.99562419	  0.99769271  0.49271954
++2159	 -6.26589591	 -0.00142998	  0.00087626	  7.26446592	  0.99562620	  0.99769376  0.49272035
++2160	 -6.26591632	 -0.00142933	  0.00087586	  7.26448699	  0.99562822	  0.99769482  0.49272117
++2161	 -6.26593666	 -0.00142867	  0.00087546	  7.26450798	  0.99563023	  0.99769587  0.49272198
++2162	 -6.26595692	 -0.00142802	  0.00087506	  7.26452890	  0.99563224	  0.99769692  0.49272279
++2163	 -6.26597711	 -0.00142737	  0.00087466	  7.26454975	  0.99563424	  0.99769797  0.49272362
++2164	 -6.26599724	 -0.00142671	  0.00087426	  7.26457052	  0.99563625	  0.99769902  0.49272441
++2165	 -6.26601728	 -0.00142606	  0.00087387	  7.26459122	  0.99563825	  0.99770007  0.49272522
++2166	 -6.26603726	 -0.00142541	  0.00087347	  7.26461185	  0.99564025	  0.99770112  0.49272604
++2167	 -6.26605717	 -0.00142476	  0.00087307	  7.26463241	  0.99564225	  0.99770217  0.49272683
++2168	 -6.26607700	 -0.00142411	  0.00087268	  7.26465289	  0.99564425	  0.99770321  0.49272764
++2169	 -6.26609676	 -0.00142346	  0.00087228	  7.26467331	  0.99564625	  0.99770426  0.49272843
++2170	 -6.26611646	 -0.00142281	  0.00087189	  7.26469365	  0.99564824	  0.99770530  0.49272921
++2171	 -6.26613608	 -0.00142216	  0.00087149	  7.26471392	  0.99565024	  0.99770635  0.49273003
++2172	 -6.26615563	 -0.00142151	  0.00087110	  7.26473412	  0.99565223	  0.99770739  0.49273081
++2173	 -6.26617512	 -0.00142087	  0.00087070	  7.26475425	  0.99565422	  0.99770843  0.49273160
++2174	 -6.26619453	 -0.00142022	  0.00087031	  7.26477431	  0.99565620	  0.99770947  0.49273238
++2175	 -6.26621387	 -0.00141957	  0.00086992	  7.26479430	  0.99565819	  0.99771051  0.49273317
++2176	 -6.26623315	 -0.00141893	  0.00086952	  7.26481422	  0.99566017	  0.99771155  0.49273396
++2177	 -6.26625235	 -0.00141828	  0.00086913	  7.26483407	  0.99566216	  0.99771259  0.49273473
++2178	 -6.26627149	 -0.00141764	  0.00086874	  7.26485385	  0.99566414	  0.99771362  0.49273551
++2179	 -6.26629056	 -0.00141699	  0.00086835	  7.26487356	  0.99566612	  0.99771466  0.49273628
++2180	 -6.26630956	 -0.00141635	  0.00086795	  7.26489321	  0.99566809	  0.99771570  0.49273706
++2181	 -6.26632849	 -0.00141571	  0.00086756	  7.26491278	  0.99567007	  0.99771673  0.49273783
++2182	 -6.26634735	 -0.00141506	  0.00086717	  7.26493229	  0.99567204	  0.99771776  0.49273859
++2183	 -6.26636615	 -0.00141442	  0.00086678	  7.26495173	  0.99567401	  0.99771880  0.49273935
++2184	 -6.26638488	 -0.00141378	  0.00086639	  7.26497110	  0.99567598	  0.99771983  0.49274013
++2185	 -6.26640355	 -0.00141314	  0.00086600	  7.26499041	  0.99567795	  0.99772086  0.49274089
++2186	 -6.26642214	 -0.00141250	  0.00086561	  7.26500964	  0.99567992	  0.99772189  0.49274164
++2187	 -6.26644067	 -0.00141186	  0.00086522	  7.26502881	  0.99568188	  0.99772292  0.49274241
++2188	 -6.26645914	 -0.00141122	  0.00086483	  7.26504792	  0.99568384	  0.99772395  0.49274316
++2189	 -6.26647754	 -0.00141058	  0.00086444	  7.26506695	  0.99568580	  0.99772497  0.49274392
++2190	 -6.26649587	 -0.00140995	  0.00086405	  7.26508592	  0.99568776	  0.99772600  0.49274466
++2191	 -6.26651414	 -0.00140931	  0.00086366	  7.26510483	  0.99568972	  0.99772703  0.49274542
++2192	 -6.26653234	 -0.00140867	  0.00086328	  7.26512367	  0.99569168	  0.99772805  0.49274618
++2193	 -6.26655048	 -0.00140804	  0.00086289	  7.26514244	  0.99569363	  0.99772908  0.49274690
++2194	 -6.26656855	 -0.00140740	  0.00086250	  7.26516115	  0.99569558	  0.99773010  0.49274765
++2195	 -6.26658656	 -0.00140677	  0.00086211	  7.26517979	  0.99569753	  0.99773112  0.49274839
++2196	 -6.26660450	 -0.00140613	  0.00086173	  7.26519837	  0.99569948	  0.99773214  0.49274912
++2197	 -6.26662238	 -0.00140550	  0.00086134	  7.26521688	  0.99570143	  0.99773316  0.49274986
++2198	 -6.26664020	 -0.00140486	  0.00086096	  7.26523533	  0.99570337	  0.99773418  0.49275059
++2199	 -6.26665795	 -0.00140423	  0.00086057	  7.26525372	  0.99570532	  0.99773520  0.49275132
++2200	 -6.26667564	 -0.00140360	  0.00086018	  7.26527204	  0.99570726	  0.99773622  0.49275206
++2201	 -6.26669326	 -0.00140297	  0.00085980	  7.26529030	  0.99570920	  0.99773723  0.49275276
++2202	 -6.26671083	 -0.00140234	  0.00085942	  7.26530849	  0.99571114	  0.99773825  0.49275350
++2203	 -6.26672833	 -0.00140171	  0.00085903	  7.26532662	  0.99571307	  0.99773926  0.49275423
++2204	 -6.26674577	 -0.00140108	  0.00085865	  7.26534469	  0.99571501	  0.99774028  0.49275495
++2205	 -6.26676314	 -0.00140045	  0.00085826	  7.26536270	  0.99571694	  0.99774129  0.49275567
++2206	 -6.26678046	 -0.00139982	  0.00085788	  7.26538064	  0.99571887	  0.99774230  0.49275639
++2207	 -6.26679771	 -0.00139919	  0.00085750	  7.26539852	  0.99572080	  0.99774331  0.49275711
++2208	 -6.26681490	 -0.00139856	  0.00085711	  7.26541634	  0.99572273	  0.99774433  0.49275782
++2209	 -6.26683203	 -0.00139793	  0.00085673	  7.26543410	  0.99572466	  0.99774533  0.49275852
++2210	 -6.26684910	 -0.00139731	  0.00085635	  7.26545179	  0.99572658	  0.99774634  0.49275924
++2211	 -6.26686611	 -0.00139668	  0.00085597	  7.26546943	  0.99572851	  0.99774735  0.49275995
++2212	 -6.26688306	 -0.00139605	  0.00085559	  7.26548700	  0.99573043	  0.99774836  0.49276065
++2213	 -6.26689994	 -0.00139543	  0.00085521	  7.26550451	  0.99573235	  0.99774936  0.49276134
++2214	 -6.26691677	 -0.00139481	  0.00085482	  7.26552196	  0.99573426	  0.99775037  0.49276204
++2215	 -6.26693354	 -0.00139418	  0.00085444	  7.26553936	  0.99573618	  0.99775137  0.49276274
++2216	 -6.26695024	 -0.00139356	  0.00085406	  7.26555669	  0.99573809	  0.99775238  0.49276344
++2217	 -6.26696689	 -0.00139293	  0.00085368	  7.26557396	  0.99574001	  0.99775338  0.49276413
++2218	 -6.26698348	 -0.00139231	  0.00085331	  7.26559117	  0.99574192	  0.99775438  0.49276484
++2219	 -6.26700001	 -0.00139169	  0.00085293	  7.26560832	  0.99574383	  0.99775538  0.49276553
++2220	 -6.26701648	 -0.00139107	  0.00085255	  7.26562541	  0.99574574	  0.99775638  0.49276621
++2221	 -6.26703289	 -0.00139045	  0.00085217	  7.26564245	  0.99574764	  0.99775738  0.49276691
++2222	 -6.26704925	 -0.00138983	  0.00085179	  7.26565942	  0.99574955	  0.99775838  0.49276759
++2223	 -6.26706554	 -0.00138921	  0.00085141	  7.26567633	  0.99575145	  0.99775938  0.49276826
++2224	 -6.26708178	 -0.00138859	  0.00085104	  7.26569319	  0.99575335	  0.99776038  0.49276895
++2225	 -6.26709796	 -0.00138797	  0.00085066	  7.26570999	  0.99575525	  0.99776137  0.49276963
++2226	 -6.26711408	 -0.00138735	  0.00085028	  7.26572673	  0.99575715	  0.99776237  0.49277030
++2227	 -6.26713015	 -0.00138674	  0.00084990	  7.26574341	  0.99575904	  0.99776336  0.49277097
++2228	 -6.26714616	 -0.00138612	  0.00084953	  7.26576004	  0.99576094	  0.99776435  0.49277165
++2229	 -6.26716211	 -0.00138550	  0.00084915	  7.26577661	  0.99576283	  0.99776535  0.49277232
++2230	 -6.26717800	 -0.00138489	  0.00084878	  7.26579312	  0.99576472	  0.99776634  0.49277298
++2231	 -6.26719384	 -0.00138427	  0.00084840	  7.26580957	  0.99576661	  0.99776733  0.49277366
++2232	 -6.26720962	 -0.00138366	  0.00084803	  7.26582597	  0.99576850	  0.99776832  0.49277432
++2233	 -6.26722535	 -0.00138304	  0.00084765	  7.26584231	  0.99577038	  0.99776931  0.49277499
++2234	 -6.26724102	 -0.00138243	  0.00084728	  7.26585859	  0.99577227	  0.99777029  0.49277565
++2235	 -6.26725663	 -0.00138181	  0.00084690	  7.26587482	  0.99577415	  0.99777128  0.49277630
++2236	 -6.26727219	 -0.00138120	  0.00084653	  7.26589099	  0.99577603	  0.99777227  0.49277698
++2237	 -6.26728769	 -0.00138059	  0.00084616	  7.26590710	  0.99577791	  0.99777325  0.49277763
++2238	 -6.26730314	 -0.00137998	  0.00084578	  7.26592316	  0.99577979	  0.99777424  0.49277828
++2239	 -6.26731854	 -0.00137937	  0.00084541	  7.26593917	  0.99578166	  0.99777522  0.49277893
++2240	 -6.26733388	 -0.00137876	  0.00084504	  7.26595512	  0.99578354	  0.99777621  0.49277959
++2241	 -6.26734916	 -0.00137815	  0.00084467	  7.26597101	  0.99578541	  0.99777719  0.49278024
++2242	 -6.26736439	 -0.00137754	  0.00084429	  7.26598685	  0.99578728	  0.99777817  0.49278088
++2243	 -6.26737957	 -0.00137693	  0.00084392	  7.26600264	  0.99578915	  0.99777915  0.49278153
++2244	 -6.26739469	 -0.00137632	  0.00084355	  7.26601837	  0.99579102	  0.99778013  0.49278219
++2245	 -6.26740976	 -0.00137571	  0.00084318	  7.26603405	  0.99579289	  0.99778111  0.49278281
++2246	 -6.26742477	 -0.00137510	  0.00084281	  7.26604967	  0.99579475	  0.99778209  0.49278347
++2247	 -6.26743974	 -0.00137450	  0.00084244	  7.26606524	  0.99579661	  0.99778306  0.49278410
++2248	 -6.26745464	 -0.00137389	  0.00084207	  7.26608075	  0.99579847	  0.99778404  0.49278472
++2249	 -6.26746950	 -0.00137328	  0.00084170	  7.26609622	  0.99580033	  0.99778502  0.49278536
++2250	 -6.26748430	 -0.00137268	  0.00084133	  7.26611162	  0.99580219	  0.99778599  0.49278600
++2251	 -6.26749906	 -0.00137207	  0.00084096	  7.26612698	  0.99580405	  0.99778696  0.49278663
++2252	 -6.26751375	 -0.00137147	  0.00084059	  7.26614228	  0.99580590	  0.99778794  0.49278724
++2253	 -6.26752840	 -0.00137087	  0.00084022	  7.26615753	  0.99580776	  0.99778891  0.49278789
++2254	 -6.26754300	 -0.00137026	  0.00083986	  7.26617273	  0.99580961	  0.99778988  0.49278852
++2255	 -6.26755754	 -0.00136966	  0.00083949	  7.26618788	  0.99581146	  0.99779085  0.49278914
++2256	 -6.26757203	 -0.00136906	  0.00083912	  7.26620297	  0.99581331	  0.99779182  0.49278975
++2257	 -6.26758647	 -0.00136846	  0.00083875	  7.26621801	  0.99581515	  0.99779279  0.49279037
++2258	 -6.26760086	 -0.00136786	  0.00083839	  7.26623300	  0.99581700	  0.99779376  0.49279099
++2259	 -6.26761520	 -0.00136725	  0.00083802	  7.26624794	  0.99581884	  0.99779472  0.49279161
++2260	 -6.26762949	 -0.00136665	  0.00083765	  7.26626283	  0.99582068	  0.99779569  0.49279223
++2261	 -6.26764372	 -0.00136605	  0.00083729	  7.26627767	  0.99582252	  0.99779666  0.49279284
++2262	 -6.26765791	 -0.00136546	  0.00083692	  7.26629245	  0.99582436	  0.99779762  0.49279345
++2263	 -6.26767205	 -0.00136486	  0.00083656	  7.26630719	  0.99582620	  0.99779859  0.49279407
++2264	 -6.26768613	 -0.00136426	  0.00083619	  7.26632187	  0.99582804	  0.99779955  0.49279468
++2265	 -6.26770017	 -0.00136366	  0.00083583	  7.26633651	  0.99582987	  0.99780051  0.49279528
++2266	 -6.26771416	 -0.00136306	  0.00083546	  7.26635109	  0.99583170	  0.99780147  0.49279588
++2267	 -6.26772809	 -0.00136247	  0.00083510	  7.26636562	  0.99583353	  0.99780243  0.49279649
++2268	 -6.26774198	 -0.00136187	  0.00083474	  7.26638011	  0.99583536	  0.99780339  0.49279710
++2269	 -6.26775582	 -0.00136128	  0.00083437	  7.26639454	  0.99583719	  0.99780435  0.49279770
++2270	 -6.26776961	 -0.00136068	  0.00083401	  7.26640893	  0.99583902	  0.99780531  0.49279829
++2271	 -6.26778335	 -0.00136009	  0.00083365	  7.26642326	  0.99584084	  0.99780627  0.49279888
++2272	 -6.26779704	 -0.00135949	  0.00083328	  7.26643755	  0.99584266	  0.99780722  0.49279946
++2273	 -6.26781069	 -0.00135890	  0.00083292	  7.26645179	  0.99584449	  0.99780818  0.49280008
++2274	 -6.26782428	 -0.00135831	  0.00083256	  7.26646598	  0.99584631	  0.99780913  0.49280067
++2275	 -6.26783783	 -0.00135771	  0.00083220	  7.26648012	  0.99584812	  0.99781009  0.49280125
++2276	 -6.26785133	 -0.00135712	  0.00083184	  7.26649421	  0.99584994	  0.99781104  0.49280185
++2277	 -6.26786479	 -0.00135653	  0.00083148	  7.26650826	  0.99585175	  0.99781199  0.49280244
++2278	 -6.26787819	 -0.00135594	  0.00083111	  7.26652225	  0.99585357	  0.99781295  0.49280301
++2279	 -6.26789155	 -0.00135535	  0.00083075	  7.26653620	  0.99585538	  0.99781390  0.49280360
++2280	 -6.26790486	 -0.00135476	  0.00083039	  7.26655010	  0.99585719	  0.99781485  0.49280419
++2281	 -6.26791812	 -0.00135417	  0.00083003	  7.26656395	  0.99585900	  0.99781580  0.49280476
++2282	 -6.26793134	 -0.00135358	  0.00082967	  7.26657776	  0.99586081	  0.99781675  0.49280534
++2283	 -6.26794451	 -0.00135299	  0.00082931	  7.26659152	  0.99586261	  0.99781769  0.49280594
++2284	 -6.26795764	 -0.00135240	  0.00082896	  7.26660523	  0.99586442	  0.99781864  0.49280650
++2285	 -6.26797071	 -0.00135182	  0.00082860	  7.26661890	  0.99586622	  0.99781959  0.49280708
++2286	 -6.26798374	 -0.00135123	  0.00082824	  7.26663252	  0.99586802	  0.99782053  0.49280764
++2287	 -6.26799673	 -0.00135064	  0.00082788	  7.26664609	  0.99586982	  0.99782148  0.49280822
++2288	 -6.26800967	 -0.00135006	  0.00082752	  7.26665961	  0.99587162	  0.99782242  0.49280878
++2289	 -6.26802256	 -0.00134947	  0.00082717	  7.26667309	  0.99587341	  0.99782336  0.49280935
++2290	 -6.26803541	 -0.00134889	  0.00082681	  7.26668653	  0.99587521	  0.99782431  0.49280992
++2291	 -6.26804822	 -0.00134830	  0.00082645	  7.26669991	  0.99587700	  0.99782525  0.49281048
++2292	 -6.26806098	 -0.00134772	  0.00082609	  7.26671326	  0.99587879	  0.99782619  0.49281107
++2293	 -6.26807369	 -0.00134713	  0.00082574	  7.26672655	  0.99588058	  0.99782713  0.49281162
++2294	 -6.26808636	 -0.00134655	  0.00082538	  7.26673981	  0.99588237	  0.99782807  0.49281218
++2295	 -6.26809898	 -0.00134597	  0.00082503	  7.26675301	  0.99588416	  0.99782900  0.49281274
++2296	 -6.26811156	 -0.00134539	  0.00082467	  7.26676617	  0.99588595	  0.99782994  0.49281329
++2297	 -6.26812410	 -0.00134481	  0.00082432	  7.26677929	  0.99588773	  0.99783088  0.49281384
++2298	 -6.26813659	 -0.00134422	  0.00082396	  7.26679236	  0.99588951	  0.99783181  0.49281439
++2299	 -6.26814904	 -0.00134364	  0.00082361	  7.26680539	  0.99589129	  0.99783275  0.49281496
++2300	 -6.26816144	 -0.00134306	  0.00082325	  7.26681838	  0.99589307	  0.99783368  0.49281552
++2301	 -6.26817380	 -0.00134248	  0.00082290	  7.26683132	  0.99589485	  0.99783462  0.49281605
++2302	 -6.26818612	 -0.00134191	  0.00082255	  7.26684421	  0.99589663	  0.99783555  0.49281661
++2303	 -6.26819839	 -0.00134133	  0.00082219	  7.26685706	  0.99589840	  0.99783648  0.49281716
++2304	 -6.26821062	 -0.00134075	  0.00082184	  7.26686987	  0.99590018	  0.99783741  0.49281769
++2305	 -6.26822281	 -0.00134017	  0.00082149	  7.26688264	  0.99590195	  0.99783834  0.49281824
++2306	 -6.26823495	 -0.00133959	  0.00082113	  7.26689536	  0.99590372	  0.99783927  0.49281878
++2307	 -6.26824705	 -0.00133902	  0.00082078	  7.26690804	  0.99590549	  0.99784020  0.49281933
++2308	 -6.26825911	 -0.00133844	  0.00082043	  7.26692067	  0.99590725	  0.99784113  0.49281987
++2309	 -6.26827113	 -0.00133787	  0.00082008	  7.26693326	  0.99590902	  0.99784206  0.49282040
++2310	 -6.26828310	 -0.00133729	  0.00081973	  7.26694581	  0.99591078	  0.99784298  0.49282094
++2311	 -6.26829504	 -0.00133672	  0.00081938	  7.26695832	  0.99591255	  0.99784391  0.49282147
++2312	 -6.26830693	 -0.00133614	  0.00081902	  7.26697079	  0.99591431	  0.99784483  0.49282201
++2313	 -6.26831878	 -0.00133557	  0.00081867	  7.26698321	  0.99591607	  0.99784576  0.49282254
++2314	 -6.26833058	 -0.00133499	  0.00081832	  7.26699559	  0.99591783	  0.99784668  0.49282308
++2315	 -6.26834235	 -0.00133442	  0.00081797	  7.26700793	  0.99591958	  0.99784760  0.49282360
++2316	 -6.26835407	 -0.00133385	  0.00081762	  7.26702023	  0.99592134	  0.99784853  0.49282414
++2317	 -6.26836576	 -0.00133328	  0.00081728	  7.26703248	  0.99592309	  0.99784945  0.49282465
++2318	 -6.26837740	 -0.00133271	  0.00081693	  7.26704469	  0.99592485	  0.99785037  0.49282520
++2319	 -6.26838900	 -0.00133214	  0.00081658	  7.26705687	  0.99592660	  0.99785129  0.49282572
++2320	 -6.26840056	 -0.00133157	  0.00081623	  7.26706900	  0.99592835	  0.99785221  0.49282624
++2321	 -6.26841209	 -0.00133100	  0.00081588	  7.26708109	  0.99593009	  0.99785312  0.49282676
++2322	 -6.26842357	 -0.00133043	  0.00081553	  7.26709314	  0.99593184	  0.99785404  0.49282728
++2323	 -6.26843501	 -0.00132986	  0.00081519	  7.26710515	  0.99593359	  0.99785496  0.49282780
++2324	 -6.26844641	 -0.00132929	  0.00081484	  7.26711712	  0.99593533	  0.99785587  0.49282829
++2325	 -6.26845777	 -0.00132872	  0.00081449	  7.26712905	  0.99593707	  0.99785679  0.49282883
++2326	 -6.26846909	 -0.00132815	  0.00081414	  7.26714093	  0.99593881	  0.99785770  0.49282934
++2327	 -6.26848037	 -0.00132759	  0.00081380	  7.26715278	  0.99594055	  0.99785862  0.49282986
++2328	 -6.26849161	 -0.00132702	  0.00081345	  7.26716459	  0.99594229	  0.99785953  0.49283037
++2329	 -6.26850281	 -0.00132645	  0.00081311	  7.26717636	  0.99594402	  0.99786044  0.49283087
++2330	 -6.26851397	 -0.00132589	  0.00081276	  7.26718809	  0.99594576	  0.99786135  0.49283138
++2331	 -6.26852510	 -0.00132532	  0.00081242	  7.26719977	  0.99594749	  0.99786226  0.49283189
++2332	 -6.26853618	 -0.00132476	  0.00081207	  7.26721142	  0.99594922	  0.99786317  0.49283239
++2333	 -6.26854723	 -0.00132419	  0.00081173	  7.26722303	  0.99595095	  0.99786408  0.49283291
++2334	 -6.26855824	 -0.00132363	  0.00081138	  7.26723461	  0.99595268	  0.99786499  0.49283341
++2335	 -6.26856921	 -0.00132307	  0.00081104	  7.26724614	  0.99595441	  0.99786590  0.49283391
++2336	 -6.26858014	 -0.00132251	  0.00081069	  7.26725763	  0.99595614	  0.99786680  0.49283441
++2337	 -6.26859103	 -0.00132194	  0.00081035	  7.26726909	  0.99595786	  0.99786771  0.49283490
++2338	 -6.26860188	 -0.00132138	  0.00081001	  7.26728050	  0.99595958	  0.99786861  0.49283543
++2339	 -6.26861270	 -0.00132082	  0.00080966	  7.26729188	  0.99596131	  0.99786952  0.49283590
++2340	 -6.26862348	 -0.00132026	  0.00080932	  7.26730322	  0.99596303	  0.99787042  0.49283641
++2341	 -6.26863422	 -0.00131970	  0.00080898	  7.26731452	  0.99596474	  0.99787132  0.49283690
++2342	 -6.26864493	 -0.00131914	  0.00080864	  7.26732579	  0.99596646	  0.99787223  0.49283740
++2343	 -6.26865559	 -0.00131858	  0.00080829	  7.26733701	  0.99596818	  0.99787313  0.49283789
++2344	 -6.26866622	 -0.00131802	  0.00080795	  7.26734820	  0.99596989	  0.99787403  0.49283838
++2345	 -6.26867681	 -0.00131746	  0.00080761	  7.26735935	  0.99597160	  0.99787493  0.49283886
++2346	 -6.26868737	 -0.00131690	  0.00080727	  7.26737047	  0.99597332	  0.99787583  0.49283935
++2347	 -6.26869789	 -0.00131635	  0.00080693	  7.26738154	  0.99597503	  0.99787673  0.49283983
++2348	 -6.26870837	 -0.00131579	  0.00080659	  7.26739258	  0.99597673	  0.99787762  0.49284032
++2349	 -6.26871882	 -0.00131523	  0.00080625	  7.26740358	  0.99597844	  0.99787852  0.49284083
++2350	 -6.26872923	 -0.00131468	  0.00080591	  7.26741455	  0.99598015	  0.99787942  0.49284129
++2351	 -6.26873960	 -0.00131412	  0.00080557	  7.26742548	  0.99598185	  0.99788031  0.49284178
++2352	 -6.26874993	 -0.00131357	  0.00080523	  7.26743637	  0.99598355	  0.99788121  0.49284226
++2353	 -6.26876024	 -0.00131301	  0.00080489	  7.26744723	  0.99598526	  0.99788210  0.49284273
++2354	 -6.26877050	 -0.00131246	  0.00080455	  7.26745804	  0.99598696	  0.99788299  0.49284320
++2355	 -6.26878073	 -0.00131190	  0.00080421	  7.26746883	  0.99598865	  0.99788389  0.49284369
++2356	 -6.26879092	 -0.00131135	  0.00080387	  7.26747958	  0.99599035	  0.99788478  0.49284417
++2357	 -6.26880108	 -0.00131080	  0.00080354	  7.26749029	  0.99599205	  0.99788567  0.49284465
++2358	 -6.26881120	 -0.00131024	  0.00080320	  7.26750096	  0.99599374	  0.99788656  0.49284510
++2359	 -6.26882129	 -0.00130969	  0.00080286	  7.26751160	  0.99599543	  0.99788745  0.49284559
++2360	 -6.26883135	 -0.00130914	  0.00080252	  7.26752221	  0.99599713	  0.99788834  0.49284606
++2361	 -6.26884136	 -0.00130859	  0.00080219	  7.26753278	  0.99599882	  0.99788923  0.49284653
++2362	 -6.26885135	 -0.00130804	  0.00080185	  7.26754331	  0.99600050	  0.99789011  0.49284699
++2363	 -6.26886129	 -0.00130749	  0.00080151	  7.26755381	  0.99600219	  0.99789100  0.49284746
++2364	 -6.26887121	 -0.00130694	  0.00080118	  7.26756427	  0.99600388	  0.99789189  0.49284793
++2365	 -6.26888109	 -0.00130639	  0.00080084	  7.26757470	  0.99600556	  0.99789277  0.49284838
++2366	 -6.26889093	 -0.00130584	  0.00080051	  7.26758509	  0.99600724	  0.99789365  0.49284885
++2367	 -6.26890074	 -0.00130529	  0.00080017	  7.26759545	  0.99600893	  0.99789454  0.49284932
++2368	 -6.26891052	 -0.00130474	  0.00079984	  7.26760578	  0.99601061	  0.99789542  0.49284977
++2369	 -6.26892026	 -0.00130420	  0.00079950	  7.26761607	  0.99601228	  0.99789630  0.49285024
++2370	 -6.26892997	 -0.00130365	  0.00079917	  7.26762633	  0.99601396	  0.99789719  0.49285069
++2371	 -6.26893965	 -0.00130310	  0.00079883	  7.26763655	  0.99601564	  0.99789807  0.49285114
++2372	 -6.26894929	 -0.00130256	  0.00079850	  7.26764674	  0.99601731	  0.99789895  0.49285162
++2373	 -6.26895890	 -0.00130201	  0.00079816	  7.26765689	  0.99601899	  0.99789983  0.49285206
++2374	 -6.26896848	 -0.00130146	  0.00079783	  7.26766701	  0.99602066	  0.99790070  0.49285251
++2375	 -6.26897802	 -0.00130092	  0.00079750	  7.26767710	  0.99602233	  0.99790158  0.49285297
++2376	 -6.26898753	 -0.00130038	  0.00079717	  7.26768715	  0.99602400	  0.99790246  0.49285344
++2377	 -6.26899700	 -0.00129983	  0.00079683	  7.26769717	  0.99602566	  0.99790334  0.49285388
++2378	 -6.26900645	 -0.00129929	  0.00079650	  7.26770716	  0.99602733	  0.99790421  0.49285432
++2379	 -6.26901586	 -0.00129875	  0.00079617	  7.26771711	  0.99602900	  0.99790509  0.49285477
++2380	 -6.26902524	 -0.00129820	  0.00079584	  7.26772703	  0.99603066	  0.99790596  0.49285523
++2381	 -6.26903458	 -0.00129766	  0.00079550	  7.26773692	  0.99603232	  0.99790683  0.49285566
++2382	 -6.26904390	 -0.00129712	  0.00079517	  7.26774678	  0.99603398	  0.99790771  0.49285611
++2383	 -6.26905318	 -0.00129658	  0.00079484	  7.26775660	  0.99603564	  0.99790858  0.49285655
++2384	 -6.26906243	 -0.00129604	  0.00079451	  7.26776639	  0.99603730	  0.99790945  0.49285701
++2385	 -6.26907164	 -0.00129550	  0.00079418	  7.26777615	  0.99603896	  0.99791032  0.49285743
++2386	 -6.26908083	 -0.00129496	  0.00079385	  7.26778587	  0.99604061	  0.99791119  0.49285787
++2387	 -6.26908998	 -0.00129442	  0.00079352	  7.26779557	  0.99604227	  0.99791206  0.49285833
++2388	 -6.26909911	 -0.00129388	  0.00079319	  7.26780523	  0.99604392	  0.99791293  0.49285876
++2389	 -6.26910820	 -0.00129334	  0.00079286	  7.26781486	  0.99604557	  0.99791380  0.49285921
++2390	 -6.26911726	 -0.00129280	  0.00079253	  7.26782446	  0.99604722	  0.99791467  0.49285963
++2391	 -6.26912629	 -0.00129226	  0.00079220	  7.26783402	  0.99604887	  0.99791553  0.49286007
++2392	 -6.26913528	 -0.00129173	  0.00079188	  7.26784356	  0.99605051	  0.99791640  0.49286049
++2393	 -6.26914425	 -0.00129119	  0.00079155	  7.26785306	  0.99605216	  0.99791726  0.49286093
++2394	 -6.26915318	 -0.00129065	  0.00079122	  7.26786253	  0.99605380	  0.99791813  0.49286138
++2395	 -6.26916209	 -0.00129012	  0.00079089	  7.26787197	  0.99605545	  0.99791899  0.49286178
++2396	 -6.26917096	 -0.00128958	  0.00079056	  7.26788138	  0.99605709	  0.99791985  0.49286223
++2397	 -6.26917981	 -0.00128905	  0.00079024	  7.26789076	  0.99605873	  0.99792072  0.49286266
++2398	 -6.26918862	 -0.00128851	  0.00078991	  7.26790011	  0.99606037	  0.99792158  0.49286308
++2399	 -6.26919740	 -0.00128798	  0.00078958	  7.26790942	  0.99606201	  0.99792244  0.49286350
++2400	 -6.26920615	 -0.00128744	  0.00078926	  7.26791871	  0.99606364	  0.99792330  0.49286392
++2401	 -6.26921488	 -0.00128691	  0.00078893	  7.26792797	  0.99606528	  0.99792416  0.49286436
++2402	 -6.26922357	 -0.00128638	  0.00078860	  7.26793719	  0.99606691	  0.99792502  0.49286478
++2403	 -6.26923223	 -0.00128585	  0.00078828	  7.26794639	  0.99606854	  0.99792588  0.49286521
++2404	 -6.26924086	 -0.00128531	  0.00078795	  7.26795555	  0.99607017	  0.99792673  0.49286564
++2405	 -6.26924947	 -0.00128478	  0.00078763	  7.26796468	  0.99607180	  0.99792759  0.49286605
++2406	 -6.26925804	 -0.00128425	  0.00078730	  7.26797379	  0.99607343	  0.99792845  0.49286646
++2407	 -6.26926658	 -0.00128372	  0.00078698	  7.26798286	  0.99607506	  0.99792930  0.49286689
++2408	 -6.26927510	 -0.00128319	  0.00078665	  7.26799191	  0.99607668	  0.99793016  0.49286730
++2409	 -6.26928358	 -0.00128266	  0.00078633	  7.26800092	  0.99607831	  0.99793101  0.49286770
++2410	 -6.26929204	 -0.00128213	  0.00078601	  7.26800991	  0.99607993	  0.99793186  0.49286812
++2411	 -6.26930047	 -0.00128160	  0.00078568	  7.26801887	  0.99608155	  0.99793272  0.49286854
++2412	 -6.26930887	 -0.00128107	  0.00078536	  7.26802779	  0.99608317	  0.99793357  0.49286895
++2413	 -6.26931724	 -0.00128054	  0.00078504	  7.26803669	  0.99608479	  0.99793442  0.49286937
++2414	 -6.26932558	 -0.00128002	  0.00078471	  7.26804556	  0.99608641	  0.99793527  0.49286977
++2415	 -6.26933389	 -0.00127949	  0.00078439	  7.26805440	  0.99608802	  0.99793612  0.49287019
++2416	 -6.26934217	 -0.00127896	  0.00078407	  7.26806321	  0.99608964	  0.99793697  0.49287058
++2417	 -6.26935043	 -0.00127844	  0.00078375	  7.26807199	  0.99609125	  0.99793782  0.49287100
++2418	 -6.26935866	 -0.00127791	  0.00078342	  7.26808075	  0.99609287	  0.99793867  0.49287142
++2419	 -6.26936686	 -0.00127738	  0.00078310	  7.26808947	  0.99609448	  0.99793951  0.49287182
++2420	 -6.26937503	 -0.00127686	  0.00078278	  7.26809817	  0.99609609	  0.99794036  0.49287224
++2421	 -6.26938317	 -0.00127634	  0.00078246	  7.26810683	  0.99609769	  0.99794120  0.49287263
++2422	 -6.26939129	 -0.00127581	  0.00078214	  7.26811547	  0.99609930	  0.99794205  0.49287302
++2423	 -6.26939937	 -0.00127529	  0.00078182	  7.26812409	  0.99610091	  0.99794289  0.49287345
++2424	 -6.26940743	 -0.00127476	  0.00078150	  7.26813267	  0.99610251	  0.99794374  0.49287384
++2425	 -6.26941547	 -0.00127424	  0.00078118	  7.26814123	  0.99610411	  0.99794458  0.49287423
++2426	 -6.26942347	 -0.00127372	  0.00078086	  7.26814975	  0.99610572	  0.99794542  0.49287464
++2427	 -6.26943145	 -0.00127320	  0.00078054	  7.26815825	  0.99610732	  0.99794626  0.49287504
++2428	 -6.26943940	 -0.00127267	  0.00078022	  7.26816673	  0.99610892	  0.99794711  0.49287543
++2429	 -6.26944732	 -0.00127215	  0.00077990	  7.26817517	  0.99611051	  0.99794795  0.49287581
++2430	 -6.26945522	 -0.00127163	  0.00077958	  7.26818359	  0.99611211	  0.99794879  0.49287621
++2431	 -6.26946309	 -0.00127111	  0.00077926	  7.26819198	  0.99611370	  0.99794962  0.49287661
++2432	 -6.26947093	 -0.00127059	  0.00077895	  7.26820034	  0.99611530	  0.99795046  0.49287701
++2433	 -6.26947875	 -0.00127007	  0.00077863	  7.26820868	  0.99611689	  0.99795130  0.49287739
++2434	 -6.26948654	 -0.00126955	  0.00077831	  7.26821698	  0.99611848	  0.99795214  0.49287779
++2435	 -6.26949430	 -0.00126903	  0.00077799	  7.26822527	  0.99612007	  0.99795297  0.49287817
++2436	 -6.26950204	 -0.00126852	  0.00077768	  7.26823352	  0.99612166	  0.99795381  0.49287857
++2437	 -6.26950975	 -0.00126800	  0.00077736	  7.26824175	  0.99612325	  0.99795464  0.49287896
++2438	 -6.26951743	 -0.00126748	  0.00077704	  7.26824995	  0.99612484	  0.99795548  0.49287934
++2439	 -6.26952509	 -0.00126696	  0.00077673	  7.26825813	  0.99612642	  0.99795631  0.49287973
++2440	 -6.26953272	 -0.00126645	  0.00077641	  7.26826627	  0.99612800	  0.99795714  0.49288012
++2441	 -6.26954033	 -0.00126593	  0.00077609	  7.26827440	  0.99612959	  0.99795798  0.49288050
++2442	 -6.26954791	 -0.00126541	  0.00077578	  7.26828249	  0.99613117	  0.99795881  0.49288087
++2443	 -6.26955546	 -0.00126490	  0.00077546	  7.26829056	  0.99613275	  0.99795964  0.49288126
++2444	 -6.26956299	 -0.00126438	  0.00077515	  7.26829860	  0.99613433	  0.99796047  0.49288164
++2445	 -6.26957049	 -0.00126387	  0.00077483	  7.26830662	  0.99613590	  0.99796130  0.49288203
++2446	 -6.26957797	 -0.00126335	  0.00077452	  7.26831461	  0.99613748	  0.99796213  0.49288240
++2447	 -6.26958542	 -0.00126284	  0.00077420	  7.26832258	  0.99613905	  0.99796296  0.49288278
++2448	 -6.26959285	 -0.00126233	  0.00077389	  7.26833052	  0.99614063	  0.99796378  0.49288317
++2449	 -6.26960025	 -0.00126181	  0.00077357	  7.26833844	  0.99614220	  0.99796461  0.49288354
++2450	 -6.26960763	 -0.00126130	  0.00077326	  7.26834632	  0.99614377	  0.99796544  0.49288392
++2451	 -6.26961498	 -0.00126079	  0.00077295	  7.26835419	  0.99614534	  0.99796626  0.49288432
++2452	 -6.26962230	 -0.00126028	  0.00077263	  7.26836203	  0.99614691	  0.99796709  0.49288467
++2453	 -6.26962961	 -0.00125977	  0.00077232	  7.26836984	  0.99614847	  0.99796791  0.49288504
++2454	 -6.26963688	 -0.00125926	  0.00077201	  7.26837763	  0.99615004	  0.99796874  0.49288540
++2455	 -6.26964414	 -0.00125874	  0.00077170	  7.26838539	  0.99615160	  0.99796956  0.49288580
++2456	 -6.26965137	 -0.00125823	  0.00077138	  7.26839313	  0.99615317	  0.99797038  0.49288618
++2457	 -6.26965857	 -0.00125772	  0.00077107	  7.26840084	  0.99615473	  0.99797120  0.49288651
++2458	 -6.26966575	 -0.00125722	  0.00077076	  7.26840853	  0.99615629	  0.99797202  0.49288691
++2459	 -6.26967290	 -0.00125671	  0.00077045	  7.26841620	  0.99615785	  0.99797284  0.49288729
++2460	 -6.26968003	 -0.00125620	  0.00077014	  7.26842384	  0.99615941	  0.99797366  0.49288765
++2461	 -6.26968714	 -0.00125569	  0.00076983	  7.26843145	  0.99616097	  0.99797448  0.49288801
++2462	 -6.26969422	 -0.00125518	  0.00076952	  7.26843904	  0.99616252	  0.99797530  0.49288835
++2463	 -6.26970128	 -0.00125468	  0.00076920	  7.26844661	  0.99616408	  0.99797612  0.49288872
++2464	 -6.26970832	 -0.00125417	  0.00076889	  7.26845415	  0.99616563	  0.99797694  0.49288910
++2465	 -6.26971533	 -0.00125366	  0.00076858	  7.26846167	  0.99616718	  0.99797775  0.49288946
++2466	 -6.26972232	 -0.00125316	  0.00076827	  7.26846916	  0.99616873	  0.99797857  0.49288983
++2467	 -6.26972928	 -0.00125265	  0.00076797	  7.26847663	  0.99617028	  0.99797938  0.49289019
++2468	 -6.26973622	 -0.00125214	  0.00076766	  7.26848408	  0.99617183	  0.99798020  0.49289056
++2469	 -6.26974314	 -0.00125164	  0.00076735	  7.26849150	  0.99617338	  0.99798101  0.49289092
++2470	 -6.26975003	 -0.00125114	  0.00076704	  7.26849890	  0.99617492	  0.99798183  0.49289126
++2471	 -6.26975691	 -0.00125063	  0.00076673	  7.26850627	  0.99617647	  0.99798264  0.49289162
++2472	 -6.26976375	 -0.00125013	  0.00076642	  7.26851363	  0.99617801	  0.99798345  0.49289199
++2473	 -6.26977058	 -0.00124962	  0.00076611	  7.26852095	  0.99617955	  0.99798426  0.49289234
++2474	 -6.26977738	 -0.00124912	  0.00076581	  7.26852826	  0.99618109	  0.99798507  0.49289269
++2475	 -6.26978416	 -0.00124862	  0.00076550	  7.26853554	  0.99618263	  0.99798588  0.49289304
++2476	 -6.26979092	 -0.00124812	  0.00076519	  7.26854280	  0.99618417	  0.99798669  0.49289341
++2477	 -6.26979765	 -0.00124762	  0.00076488	  7.26855003	  0.99618571	  0.99798750  0.49289376
++2478	 -6.26980436	 -0.00124711	  0.00076458	  7.26855725	  0.99618724	  0.99798831  0.49289409
++2479	 -6.26981105	 -0.00124661	  0.00076427	  7.26856444	  0.99618878	  0.99798912  0.49289444
++2480	 -6.26981772	 -0.00124611	  0.00076396	  7.26857160	  0.99619031	  0.99798992  0.49289482
++2481	 -6.26982436	 -0.00124561	  0.00076366	  7.26857875	  0.99619184	  0.99799073  0.49289516
++2482	 -6.26983098	 -0.00124511	  0.00076335	  7.26858587	  0.99619337	  0.99799154  0.49289554
++2483	 -6.26983758	 -0.00124461	  0.00076305	  7.26859297	  0.99619490	  0.99799234  0.49289586
++2484	 -6.26984416	 -0.00124412	  0.00076274	  7.26860004	  0.99619643	  0.99799314  0.49289620
++2485	 -6.26985071	 -0.00124362	  0.00076244	  7.26860710	  0.99619796	  0.99799395  0.49289657
++2486	 -6.26985725	 -0.00124312	  0.00076213	  7.26861413	  0.99619949	  0.99799475  0.49289690
++2487	 -6.26986376	 -0.00124262	  0.00076183	  7.26862114	  0.99620101	  0.99799555  0.49289724
++2488	 -6.26987025	 -0.00124212	  0.00076152	  7.26862812	  0.99620253	  0.99799636  0.49289757
++2489	 -6.26987672	 -0.00124163	  0.00076122	  7.26863509	  0.99620406	  0.99799716  0.49289792
++2490	 -6.26988316	 -0.00124113	  0.00076091	  7.26864203	  0.99620558	  0.99799796  0.49289828
++2491	 -6.26988959	 -0.00124063	  0.00076061	  7.26864895	  0.99620710	  0.99799876  0.49289862
++2492	 -6.26989599	 -0.00124014	  0.00076031	  7.26865585	  0.99620862	  0.99799956  0.49289895
++2493	 -6.26990237	 -0.00123964	  0.00076000	  7.26866273	  0.99621013	  0.99800035  0.49289931
++2494	 -6.26990873	 -0.00123915	  0.00075970	  7.26866958	  0.99621165	  0.99800115  0.49289965
++2495	 -6.26991507	 -0.00123865	  0.00075940	  7.26867642	  0.99621317	  0.99800195  0.49289998
++2496	 -6.26992139	 -0.00123816	  0.00075909	  7.26868323	  0.99621468	  0.99800275  0.49290032
++2497	 -6.26992769	 -0.00123767	  0.00075879	  7.26869002	  0.99621619	  0.99800354  0.49290066
++2498	 -6.26993396	 -0.00123717	  0.00075849	  7.26869679	  0.99621770	  0.99800434  0.49290100
++2499	 -6.26994022	 -0.00123668	  0.00075819	  7.26870354	  0.99621921	  0.99800513  0.49290132
++2500	 -6.26994645	 -0.00123619	  0.00075789	  7.26871027	  0.99622072	  0.99800593  0.49290166
++2501	 -6.26995267	 -0.00123569	  0.00075758	  7.26871697	  0.99622223	  0.99800672  0.49290199
++2502	 -6.26995886	 -0.00123520	  0.00075728	  7.26872366	  0.99622374	  0.99800751  0.49290231
++2503	 -6.26996503	 -0.00123471	  0.00075698	  7.26873032	  0.99622524	  0.99800831  0.49290268
++2504	 -6.26997119	 -0.00123422	  0.00075668	  7.26873697	  0.99622675	  0.99800910  0.49290298
++2505	 -6.26997732	 -0.00123373	  0.00075638	  7.26874359	  0.99622825	  0.99800989  0.49290333
++2506	 -6.26998343	 -0.00123324	  0.00075608	  7.26875019	  0.99622975	  0.99801068  0.49290366
++2507	 -6.26998952	 -0.00123275	  0.00075578	  7.26875677	  0.99623126	  0.99801147  0.49290397
++2508	 -6.26999559	 -0.00123226	  0.00075548	  7.26876333	  0.99623275	  0.99801226  0.49290432
++2509	 -6.27000164	 -0.00123177	  0.00075518	  7.26876987	  0.99623425	  0.99801305  0.49290464
++2510	 -6.27000767	 -0.00123128	  0.00075488	  7.26877639	  0.99623575	  0.99801384  0.49290499
++2511	 -6.27001368	 -0.00123079	  0.00075458	  7.26878289	  0.99623725	  0.99801462  0.49290530
++2512	 -6.27001968	 -0.00123031	  0.00075428	  7.26878937	  0.99623874	  0.99801541  0.49290562
++2513	 -6.27002565	 -0.00122982	  0.00075399	  7.26879583	  0.99624024	  0.99801620  0.49290596
++2514	 -6.27003160	 -0.00122933	  0.00075369	  7.26880227	  0.99624173	  0.99801698  0.49290628
++2515	 -6.27003753	 -0.00122884	  0.00075339	  7.26880869	  0.99624322	  0.99801777  0.49290660
++2516	 -6.27004344	 -0.00122836	  0.00075309	  7.26881508	  0.99624471	  0.99801855  0.49290693
++2517	 -6.27004933	 -0.00122787	  0.00075279	  7.26882146	  0.99624620	  0.99801934  0.49290725
++2518	 -6.27005521	 -0.00122739	  0.00075250	  7.26882782	  0.99624769	  0.99802012  0.49290756
++2519	 -6.27006106	 -0.00122690	  0.00075220	  7.26883416	  0.99624917	  0.99802090  0.49290790
++2520	 -6.27006690	 -0.00122642	  0.00075190	  7.26884048	  0.99625066	  0.99802168  0.49290821
++2521	 -6.27007271	 -0.00122593	  0.00075160	  7.26884678	  0.99625214	  0.99802246  0.49290851
++2522	 -6.27007851	 -0.00122545	  0.00075131	  7.26885306	  0.99625363	  0.99802324  0.49290885
++2523	 -6.27008428	 -0.00122496	  0.00075101	  7.26885932	  0.99625511	  0.99802402  0.49290916
++2524	 -6.27009004	 -0.00122448	  0.00075072	  7.26886556	  0.99625659	  0.99802480  0.49290948
++2525	 -6.27009578	 -0.00122400	  0.00075042	  7.26887178	  0.99625807	  0.99802558  0.49290980
++2526	 -6.27010150	 -0.00122351	  0.00075012	  7.26887799	  0.99625955	  0.99802636  0.49291012
++2527	 -6.27010720	 -0.00122303	  0.00074983	  7.26888417	  0.99626102	  0.99802714  0.49291045
++2528	 -6.27011288	 -0.00122255	  0.00074953	  7.26889033	  0.99626250	  0.99802792  0.49291075
++2529	 -6.27011855	 -0.00122207	  0.00074924	  7.26889648	  0.99626398	  0.99802869  0.49291108
++2530	 -6.27012419	 -0.00122159	  0.00074894	  7.26890260	  0.99626545	  0.99802947  0.49291137
++2531	 -6.27012982	 -0.00122111	  0.00074865	  7.26890871	  0.99626692	  0.99803024  0.49291169
++2532	 -6.27013543	 -0.00122063	  0.00074836	  7.26891480	  0.99626839	  0.99803102  0.49291199
++2533	 -6.27014102	 -0.00122015	  0.00074806	  7.26892087	  0.99626986	  0.99803179  0.49291232
++2534	 -6.27014659	 -0.00121967	  0.00074777	  7.26892692	  0.99627133	  0.99803257  0.49291262
++2535	 -6.27015214	 -0.00121919	  0.00074747	  7.26893295	  0.99627280	  0.99803334  0.49291295
++2536	 -6.27015767	 -0.00121871	  0.00074718	  7.26893897	  0.99627427	  0.99803411  0.49291325
++2537	 -6.27016319	 -0.00121823	  0.00074689	  7.26894496	  0.99627574	  0.99803488  0.49291356
++2538	 -6.27016869	 -0.00121775	  0.00074659	  7.26895094	  0.99627720	  0.99803565  0.49291386
++2539	 -6.27017417	 -0.00121727	  0.00074630	  7.26895690	  0.99627866	  0.99803642  0.49291418
++2540	 -6.27017963	 -0.00121680	  0.00074601	  7.26896284	  0.99628013	  0.99803719  0.49291448
++2541	 -6.27018508	 -0.00121632	  0.00074572	  7.26896876	  0.99628159	  0.99803796  0.49291478
++2542	 -6.27019050	 -0.00121584	  0.00074543	  7.26897466	  0.99628305	  0.99803873  0.49291509
++2543	 -6.27019591	 -0.00121537	  0.00074513	  7.26898055	  0.99628451	  0.99803950  0.49291539
++2544	 -6.27020130	 -0.00121489	  0.00074484	  7.26898641	  0.99628596	  0.99804027  0.49291571
++2545	 -6.27020668	 -0.00121441	  0.00074455	  7.26899226	  0.99628742	  0.99804103  0.49291599
++2546	 -6.27021203	 -0.00121394	  0.00074426	  7.26899810	  0.99628888	  0.99804180  0.49291629
++2547	 -6.27021737	 -0.00121346	  0.00074397	  7.26900391	  0.99629033	  0.99804257  0.49291660
++2548	 -6.27022270	 -0.00121299	  0.00074368	  7.26900971	  0.99629178	  0.99804333  0.49291688
++2549	 -6.27022800	 -0.00121252	  0.00074339	  7.26901548	  0.99629324	  0.99804410  0.49291722
++2550	 -6.27023329	 -0.00121204	  0.00074310	  7.26902124	  0.99629469	  0.99804486  0.49291750
++2551	 -6.27023856	 -0.00121157	  0.00074281	  7.26902699	  0.99629614	  0.99804562  0.49291781
++2552	 -6.27024381	 -0.00121110	  0.00074252	  7.26903271	  0.99629759	  0.99804639  0.49291812
++2553	 -6.27024904	 -0.00121062	  0.00074223	  7.26903842	  0.99629903	  0.99804715  0.49291840
++2554	 -6.27025426	 -0.00121015	  0.00074194	  7.26904411	  0.99630048	  0.99804791  0.49291870
++2555	 -6.27025946	 -0.00120968	  0.00074165	  7.26904979	  0.99630193	  0.99804867  0.49291902
++2556	 -6.27026465	 -0.00120921	  0.00074136	  7.26905544	  0.99630337	  0.99804943  0.49291932
++2557	 -6.27026982	 -0.00120874	  0.00074107	  7.26906108	  0.99630481	  0.99805019  0.49291960
++2558	 -6.27027497	 -0.00120827	  0.00074078	  7.26906670	  0.99630626	  0.99805095  0.49291988
++2559	 -6.27028010	 -0.00120780	  0.00074050	  7.26907231	  0.99630770	  0.99805171  0.49292018
++2560	 -6.27028522	 -0.00120732	  0.00074021	  7.26907789	  0.99630914	  0.99805247  0.49292047
++2561	 -6.27029032	 -0.00120686	  0.00073992	  7.26908347	  0.99631057	  0.99805322  0.49292077
++2562	 -6.27029541	 -0.00120639	  0.00073963	  7.26908902	  0.99631201	  0.99805398  0.49292106
++2563	 -6.27030047	 -0.00120592	  0.00073934	  7.26909456	  0.99631345	  0.99805474  0.49292137
++2564	 -6.27030552	 -0.00120545	  0.00073906	  7.26910008	  0.99631488	  0.99805549  0.49292164
++2565	 -6.27031056	 -0.00120498	  0.00073877	  7.26910558	  0.99631632	  0.99805625  0.49292193
++2566	 -6.27031558	 -0.00120451	  0.00073848	  7.26911107	  0.99631775	  0.99805700  0.49292223
++2567	 -6.27032058	 -0.00120404	  0.00073820	  7.26911654	  0.99631918	  0.99805776  0.49292252
++2568	 -6.27032557	 -0.00120358	  0.00073791	  7.26912199	  0.99632061	  0.99805851  0.49292278
++2569	 -6.27033054	 -0.00120311	  0.00073763	  7.26912743	  0.99632204	  0.99805926  0.49292312
++2570	 -6.27033549	 -0.00120264	  0.00073734	  7.26913285	  0.99632347	  0.99806002  0.49292338
++2571	 -6.27034043	 -0.00120218	  0.00073705	  7.26913825	  0.99632490	  0.99806077  0.49292367
++2572	 -6.27034536	 -0.00120171	  0.00073677	  7.26914364	  0.99632633	  0.99806152  0.49292394
++2573	 -6.27035026	 -0.00120125	  0.00073648	  7.26914902	  0.99632775	  0.99806227  0.49292425
++2574	 -6.27035515	 -0.00120078	  0.00073620	  7.26915437	  0.99632918	  0.99806302  0.49292452
++2575	 -6.27036003	 -0.00120032	  0.00073591	  7.26915971	  0.99633060	  0.99806377  0.49292480
++2576	 -6.27036489	 -0.00119985	  0.00073563	  7.26916504	  0.99633202	  0.99806452  0.49292511
++2577	 -6.27036973	 -0.00119939	  0.00073535	  7.26917034	  0.99633344	  0.99806527  0.49292536
++2578	 -6.27037456	 -0.00119892	  0.00073506	  7.26917564	  0.99633486	  0.99806601  0.49292567
++2579	 -6.27037937	 -0.00119846	  0.00073478	  7.26918091	  0.99633628	  0.99806676  0.49292595
++2580	 -6.27038417	 -0.00119800	  0.00073449	  7.26918617	  0.99633770	  0.99806751  0.49292622
++2581	 -6.27038895	 -0.00119754	  0.00073421	  7.26919142	  0.99633912	  0.99806825  0.49292651
++2582	 -6.27039372	 -0.00119707	  0.00073393	  7.26919664	  0.99634053	  0.99806900  0.49292678
++2583	 -6.27039847	 -0.00119661	  0.00073364	  7.26920186	  0.99634195	  0.99806974  0.49292707
++2584	 -6.27040321	 -0.00119615	  0.00073336	  7.26920706	  0.99634336	  0.99807049  0.49292736
++2585	 -6.27040793	 -0.00119569	  0.00073308	  7.26921224	  0.99634477	  0.99807123  0.49292762
++2586	 -6.27041263	 -0.00119523	  0.00073280	  7.26921740	  0.99634618	  0.99807198  0.49292790
++2587	 -6.27041732	 -0.00119477	  0.00073251	  7.26922256	  0.99634759	  0.99807272  0.49292816
++2588	 -6.27042200	 -0.00119431	  0.00073223	  7.26922769	  0.99634900	  0.99807346  0.49292845
++2589	 -6.27042666	 -0.00119385	  0.00073195	  7.26923281	  0.99635041	  0.99807420  0.49292873
++2590	 -6.27043131	 -0.00119339	  0.00073167	  7.26923792	  0.99635182	  0.99807494  0.49292902
++2591	 -6.27043594	 -0.00119293	  0.00073139	  7.26924301	  0.99635322	  0.99807568  0.49292929
++2592	 -6.27044055	 -0.00119247	  0.00073111	  7.26924808	  0.99635463	  0.99807642  0.49292955
++2593	 -6.27044516	 -0.00119201	  0.00073083	  7.26925314	  0.99635603	  0.99807716  0.49292983
++2594	 -6.27044974	 -0.00119155	  0.00073054	  7.26925819	  0.99635743	  0.99807790  0.49293011
++2595	 -6.27045432	 -0.00119110	  0.00073026	  7.26926322	  0.99635884	  0.99807864  0.49293037
++2596	 -6.27045887	 -0.00119064	  0.00072998	  7.26926823	  0.99636024	  0.99807938  0.49293066
++2597	 -6.27046342	 -0.00119018	  0.00072970	  7.26927323	  0.99636164	  0.99808011  0.49293095
++2598	 -6.27046795	 -0.00118973	  0.00072942	  7.26927822	  0.99636303	  0.99808085  0.49293118
++2599	 -6.27047246	 -0.00118927	  0.00072914	  7.26928319	  0.99636443	  0.99808158  0.49293146
++2600	 -6.27047696	 -0.00118881	  0.00072887	  7.26928815	  0.99636583	  0.99808232  0.49293175
++2601	 -6.27048145	 -0.00118836	  0.00072859	  7.26929309	  0.99636722	  0.99808305  0.49293201
++2602	 -6.27048592	 -0.00118790	  0.00072831	  7.26929802	  0.99636862	  0.99808379  0.49293228
++2603	 -6.27049038	 -0.00118745	  0.00072803	  7.26930293	  0.99637001	  0.99808452  0.49293255
++2604	 -6.27049482	 -0.00118699	  0.00072775	  7.26930783	  0.99637140	  0.99808526  0.49293281
++2605	 -6.27049925	 -0.00118654	  0.00072747	  7.26931271	  0.99637279	  0.99808599  0.49293309
++2606	 -6.27050366	 -0.00118609	  0.00072719	  7.26931758	  0.99637418	  0.99808672  0.49293334
++2607	 -6.27050807	 -0.00118563	  0.00072692	  7.26932243	  0.99637557	  0.99808745  0.49293360
++2608	 -6.27051245	 -0.00118518	  0.00072664	  7.26932727	  0.99637696	  0.99808818  0.49293390
++2609	 -6.27051683	 -0.00118473	  0.00072636	  7.26933210	  0.99637835	  0.99808891  0.49293415
++2610	 -6.27052119	 -0.00118427	  0.00072608	  7.26933691	  0.99637973	  0.99808964  0.49293444
++2611	 -6.27052553	 -0.00118382	  0.00072581	  7.26934171	  0.99638112	  0.99809037  0.49293467
++2612	 -6.27052986	 -0.00118337	  0.00072553	  7.26934649	  0.99638250	  0.99809110  0.49293494
++2613	 -6.27053418	 -0.00118292	  0.00072525	  7.26935126	  0.99638388	  0.99809183  0.49293521
++2614	 -6.27053849	 -0.00118247	  0.00072498	  7.26935602	  0.99638526	  0.99809256  0.49293547
++2615	 -6.27054278	 -0.00118202	  0.00072470	  7.26936076	  0.99638664	  0.99809328  0.49293575
++2616	 -6.27054706	 -0.00118157	  0.00072442	  7.26936549	  0.99638802	  0.99809401  0.49293600
++2617	 -6.27055132	 -0.00118112	  0.00072415	  7.26937020	  0.99638940	  0.99809474  0.49293625
++2618	 -6.27055557	 -0.00118067	  0.00072387	  7.26937491	  0.99639078	  0.99809546  0.49293651
++2619	 -6.27055981	 -0.00118022	  0.00072360	  7.26937959	  0.99639215	  0.99809619  0.49293677
++2620	 -6.27056403	 -0.00117977	  0.00072332	  7.26938427	  0.99639353	  0.99809691  0.49293703
++2621	 -6.27056825	 -0.00117932	  0.00072305	  7.26938893	  0.99639490	  0.99809763  0.49293729
++2622	 -6.27057244	 -0.00117887	  0.00072277	  7.26939357	  0.99639628	  0.99809836  0.49293754
++2623	 -6.27057663	 -0.00117842	  0.00072250	  7.26939820	  0.99639765	  0.99809908  0.49293783
++2624	 -6.27058080	 -0.00117798	  0.00072222	  7.26940282	  0.99639902	  0.99809980  0.49293807
++2625	 -6.27058496	 -0.00117753	  0.00072195	  7.26940743	  0.99640039	  0.99810052  0.49293833
++2626	 -6.27058910	 -0.00117708	  0.00072167	  7.26941202	  0.99640176	  0.99810124  0.49293858
++2627	 -6.27059324	 -0.00117663	  0.00072140	  7.26941660	  0.99640312	  0.99810196  0.49293885
++2628	 -6.27059736	 -0.00117619	  0.00072113	  7.26942117	  0.99640449	  0.99810268  0.49293910
++2629	 -6.27060146	 -0.00117574	  0.00072085	  7.26942572	  0.99640586	  0.99810340  0.49293936
++2630	 -6.27060556	 -0.00117530	  0.00072058	  7.26943026	  0.99640722	  0.99810412  0.49293961
++2631	 -6.27060964	 -0.00117485	  0.00072031	  7.26943479	  0.99640859	  0.99810484  0.49293988
++2632	 -6.27061371	 -0.00117441	  0.00072004	  7.26943930	  0.99640995	  0.99810556  0.49294014
++2633	 -6.27061776	 -0.00117396	  0.00071976	  7.26944380	  0.99641131	  0.99810628  0.49294037
++2634	 -6.27062180	 -0.00117352	  0.00071949	  7.26944829	  0.99641267	  0.99810699  0.49294061
++2635	 -6.27062583	 -0.00117307	  0.00071922	  7.26945276	  0.99641403	  0.99810771  0.49294091
++2636	 -6.27062985	 -0.00117263	  0.00071895	  7.26945722	  0.99641539	  0.99810842  0.49294113
++2637	 -6.27063386	 -0.00117219	  0.00071867	  7.26946167	  0.99641675	  0.99810914  0.49294137
++2638	 -6.27063785	 -0.00117174	  0.00071840	  7.26946611	  0.99641810	  0.99810985  0.49294161
++2639	 -6.27064183	 -0.00117130	  0.00071813	  7.26947053	  0.99641946	  0.99811057  0.49294187
++2640	 -6.27064580	 -0.00117086	  0.00071786	  7.26947494	  0.99642081	  0.99811128  0.49294216
++2641	 -6.27064976	 -0.00117042	  0.00071759	  7.26947934	  0.99642217	  0.99811199  0.49294239
++2642	 -6.27065370	 -0.00116997	  0.00071732	  7.26948372	  0.99642352	  0.99811271  0.49294263
++2643	 -6.27065763	 -0.00116953	  0.00071705	  7.26948810	  0.99642487	  0.99811342  0.49294289
++2644	 -6.27066155	 -0.00116909	  0.00071678	  7.26949246	  0.99642622	  0.99811413  0.49294314
++2645	 -6.27066546	 -0.00116865	  0.00071651	  7.26949680	  0.99642757	  0.99811484  0.49294338
++2646	 -6.27066935	 -0.00116821	  0.00071624	  7.26950114	  0.99642892	  0.99811555  0.49294362
++2647	 -6.27067323	 -0.00116777	  0.00071597	  7.26950546	  0.99643026	  0.99811626  0.49294387
++2648	 -6.27067711	 -0.00116733	  0.00071570	  7.26950977	  0.99643161	  0.99811697  0.49294414
++2649	 -6.27068096	 -0.00116689	  0.00071543	  7.26951407	  0.99643296	  0.99811768  0.49294435
++2650	 -6.27068481	 -0.00116645	  0.00071516	  7.26951836	  0.99643430	  0.99811839  0.49294462
++2651	 -6.27068865	 -0.00116601	  0.00071489	  7.26952263	  0.99643564	  0.99811909  0.49294486
++2652	 -6.27069247	 -0.00116558	  0.00071462	  7.26952689	  0.99643699	  0.99811980  0.49294512
++2653	 -6.27069628	 -0.00116514	  0.00071435	  7.26953114	  0.99643833	  0.99812051  0.49294533
++2654	 -6.27070008	 -0.00116470	  0.00071409	  7.26953538	  0.99643967	  0.99812121  0.49294559
++2655	 -6.27070387	 -0.00116426	  0.00071382	  7.26953961	  0.99644101	  0.99812192  0.49294582
++2656	 -6.27070765	 -0.00116383	  0.00071355	  7.26954382	  0.99644235	  0.99812262  0.49294607
++2657	 -6.27071141	 -0.00116339	  0.00071328	  7.26954802	  0.99644368	  0.99812333  0.49294633
++2658	 -6.27071516	 -0.00116295	  0.00071301	  7.26955221	  0.99644502	  0.99812403  0.49294657
++2659	 -6.27071891	 -0.00116252	  0.00071275	  7.26955639	  0.99644635	  0.99812474  0.49294678
++2660	 -6.27072264	 -0.00116208	  0.00071248	  7.26956056	  0.99644769	  0.99812544  0.49294701
++2661	 -6.27072636	 -0.00116165	  0.00071221	  7.26956471	  0.99644902	  0.99812614  0.49294726
++2662	 -6.27073006	 -0.00116121	  0.00071195	  7.26956885	  0.99645035	  0.99812684  0.49294753
++2663	 -6.27073376	 -0.00116078	  0.00071168	  7.26957298	  0.99645169	  0.99812755  0.49294774
++2664	 -6.27073744	 -0.00116034	  0.00071141	  7.26957710	  0.99645302	  0.99812825  0.49294799
++2665	 -6.27074112	 -0.00115991	  0.00071115	  7.26958121	  0.99645434	  0.99812895  0.49294824
++2666	 -6.27074478	 -0.00115947	  0.00071088	  7.26958531	  0.99645567	  0.99812965  0.49294849
++2667	 -6.27074843	 -0.00115904	  0.00071062	  7.26958939	  0.99645700	  0.99813035  0.49294867
++2668	 -6.27075207	 -0.00115861	  0.00071035	  7.26959347	  0.99645833	  0.99813104  0.49294894
++2669	 -6.27075570	 -0.00115817	  0.00071008	  7.26959753	  0.99645965	  0.99813174  0.49294918
++2670	 -6.27075932	 -0.00115774	  0.00070982	  7.26960158	  0.99646098	  0.99813244  0.49294940
++2671	 -6.27076293	 -0.00115731	  0.00070955	  7.26960562	  0.99646230	  0.99813314  0.49294966
++2672	 -6.27076652	 -0.00115688	  0.00070929	  7.26960965	  0.99646362	  0.99813383  0.49294988
++2673	 -6.27077011	 -0.00115644	  0.00070902	  7.26961366	  0.99646494	  0.99813453  0.49295014
++2674	 -6.27077368	 -0.00115601	  0.00070876	  7.26961767	  0.99646626	  0.99813523  0.49295035
++2675	 -6.27077724	 -0.00115558	  0.00070850	  7.26962166	  0.99646758	  0.99813592  0.49295058
++2676	 -6.27078080	 -0.00115515	  0.00070823	  7.26962565	  0.99646890	  0.99813662  0.49295081
++2677	 -6.27078434	 -0.00115472	  0.00070797	  7.26962962	  0.99647022	  0.99813731  0.49295107
++2678	 -6.27078787	 -0.00115429	  0.00070770	  7.26963358	  0.99647154	  0.99813800  0.49295129
++2679	 -6.27079139	 -0.00115386	  0.00070744	  7.26963753	  0.99647285	  0.99813870  0.49295151
++2680	 -6.27079490	 -0.00115343	  0.00070718	  7.26964147	  0.99647417	  0.99813939  0.49295175
++2681	 -6.27079840	 -0.00115300	  0.00070692	  7.26964540	  0.99647548	  0.99814008  0.49295200
++2682	 -6.27080189	 -0.00115257	  0.00070665	  7.26964931	  0.99647679	  0.99814077  0.49295221
++2683	 -6.27080537	 -0.00115215	  0.00070639	  7.26965322	  0.99647810	  0.99814146  0.49295246
++2684	 -6.27080883	 -0.00115172	  0.00070613	  7.26965711	  0.99647941	  0.99814215  0.49295267
++2685	 -6.27081229	 -0.00115129	  0.00070586	  7.26966100	  0.99648072	  0.99814284  0.49295289
++2686	 -6.27081574	 -0.00115086	  0.00070560	  7.26966487	  0.99648203	  0.99814353  0.49295314
++2687	 -6.27081917	 -0.00115044	  0.00070534	  7.26966874	  0.99648334	  0.99814422  0.49295337
++2688	 -6.27082260	 -0.00115001	  0.00070508	  7.26967259	  0.99648465	  0.99814491  0.49295357
++2689	 -6.27082601	 -0.00114958	  0.00070482	  7.26967643	  0.99648595	  0.99814560  0.49295381
++2690	 -6.27082942	 -0.00114916	  0.00070456	  7.26968026	  0.99648726	  0.99814629  0.49295404
++2691	 -6.27083281	 -0.00114873	  0.00070430	  7.26968408	  0.99648856	  0.99814697  0.49295428
++2692	 -6.27083620	 -0.00114830	  0.00070403	  7.26968789	  0.99648986	  0.99814766  0.49295451
++2693	 -6.27083957	 -0.00114788	  0.00070377	  7.26969169	  0.99649117	  0.99814835  0.49295473
++2694	 -6.27084294	 -0.00114745	  0.00070351	  7.26969548	  0.99649247	  0.99814903  0.49295497
++2695	 -6.27084629	 -0.00114703	  0.00070325	  7.26969926	  0.99649377	  0.99814972  0.49295518
++2696	 -6.27084964	 -0.00114661	  0.00070299	  7.26970303	  0.99649507	  0.99815040  0.49295540
++2697	 -6.27085297	 -0.00114618	  0.00070273	  7.26970679	  0.99649636	  0.99815109  0.49295563
++2698	 -6.27085630	 -0.00114576	  0.00070247	  7.26971054	  0.99649766	  0.99815177  0.49295584
++2699	 -6.27085961	 -0.00114533	  0.00070221	  7.26971428	  0.99649896	  0.99815245  0.49295609
++2700	 -6.27086292	 -0.00114491	  0.00070195	  7.26971800	  0.99650025	  0.99815313  0.49295629
++2701	 -6.27086621	 -0.00114449	  0.00070169	  7.26972172	  0.99650155	  0.99815382  0.49295653
++2702	 -6.27086950	 -0.00114407	  0.00070144	  7.26972543	  0.99650284	  0.99815450  0.49295673
++2703	 -6.27087277	 -0.00114364	  0.00070118	  7.26972913	  0.99650413	  0.99815518  0.49295696
++2704	 -6.27087604	 -0.00114322	  0.00070092	  7.26973281	  0.99650542	  0.99815586  0.49295720
++2705	 -6.27087929	 -0.00114280	  0.00070066	  7.26973649	  0.99650671	  0.99815654  0.49295739
++2706	 -6.27088254	 -0.00114238	  0.00070040	  7.26974016	  0.99650800	  0.99815722  0.49295764
++2707	 -6.27088577	 -0.00114196	  0.00070014	  7.26974382	  0.99650929	  0.99815790  0.49295785
++2708	 -6.27088900	 -0.00114154	  0.00069989	  7.26974746	  0.99651058	  0.99815858  0.49295811
++2709	 -6.27089222	 -0.00114112	  0.00069963	  7.26975110	  0.99651187	  0.99815925  0.49295829
++2710	 -6.27089543	 -0.00114070	  0.00069937	  7.26975473	  0.99651315	  0.99815993  0.49295850
++2711	 -6.27089862	 -0.00114028	  0.00069911	  7.26975835	  0.99651444	  0.99816061  0.49295875
++2712	 -6.27090181	 -0.00113986	  0.00069886	  7.26976195	  0.99651572	  0.99816129  0.49295895
++2713	 -6.27090499	 -0.00113944	  0.00069860	  7.26976555	  0.99651700	  0.99816196  0.49295918
++2714	 -6.27090816	 -0.00113902	  0.00069834	  7.26976914	  0.99651829	  0.99816264  0.49295938
++2715	 -6.27091132	 -0.00113860	  0.00069809	  7.26977272	  0.99651957	  0.99816331  0.49295963
++2716	 -6.27091447	 -0.00113818	  0.00069783	  7.26977629	  0.99652085	  0.99816399  0.49295982
++2717	 -6.27091762	 -0.00113777	  0.00069757	  7.26977985	  0.99652213	  0.99816466  0.49296003
++2718	 -6.27092075	 -0.00113735	  0.00069732	  7.26978340	  0.99652340	  0.99816533  0.49296028
++2719	 -6.27092387	 -0.00113693	  0.00069706	  7.26978694	  0.99652468	  0.99816601  0.49296049
++2720	 -6.27092699	 -0.00113651	  0.00069681	  7.26979047	  0.99652596	  0.99816668  0.49296071
++2721	 -6.27093009	 -0.00113610	  0.00069655	  7.26979399	  0.99652723	  0.99816735  0.49296091
++2722	 -6.27093319	 -0.00113568	  0.00069629	  7.26979751	  0.99652851	  0.99816802  0.49296112
++2723	 -6.27093627	 -0.00113527	  0.00069604	  7.26980101	  0.99652978	  0.99816869  0.49296137
++2724	 -6.27093935	 -0.00113485	  0.00069578	  7.26980450	  0.99653105	  0.99816937  0.49296155
++2725	 -6.27094242	 -0.00113443	  0.00069553	  7.26980799	  0.99653232	  0.99817004  0.49296176
++2726	 -6.27094548	 -0.00113402	  0.00069528	  7.26981146	  0.99653360	  0.99817070  0.49296198
++2727	 -6.27094853	 -0.00113360	  0.00069502	  7.26981493	  0.99653487	  0.99817137  0.49296221
++2728	 -6.27095157	 -0.00113319	  0.00069477	  7.26981838	  0.99653613	  0.99817204  0.49296241
++2729	 -6.27095461	 -0.00113278	  0.00069451	  7.26982183	  0.99653740	  0.99817271  0.49296261
++2730	 -6.27095763	 -0.00113236	  0.00069426	  7.26982527	  0.99653867	  0.99817338  0.49296284
++2731	 -6.27096065	 -0.00113195	  0.00069401	  7.26982870	  0.99653994	  0.99817405  0.49296306
++2732	 -6.27096365	 -0.00113154	  0.00069375	  7.26983212	  0.99654120	  0.99817471  0.49296324
++2733	 -6.27096665	 -0.00113112	  0.00069350	  7.26983553	  0.99654246	  0.99817538  0.49296349
++2734	 -6.27096964	 -0.00113071	  0.00069325	  7.26983893	  0.99654373	  0.99817604  0.49296367
++2735	 -6.27097262	 -0.00113030	  0.00069299	  7.26984232	  0.99654499	  0.99817671  0.49296390
++2736	 -6.27097559	 -0.00112989	  0.00069274	  7.26984571	  0.99654625	  0.99817737  0.49296411
++2737	 -6.27097856	 -0.00112947	  0.00069249	  7.26984908	  0.99654751	  0.99817804  0.49296432
++2738	 -6.27098151	 -0.00112906	  0.00069224	  7.26985245	  0.99654877	  0.99817870  0.49296451
++2739	 -6.27098446	 -0.00112865	  0.00069198	  7.26985581	  0.99655003	  0.99817937  0.49296475
++2740	 -6.27098739	 -0.00112824	  0.00069173	  7.26985915	  0.99655129	  0.99818003  0.49296493
++2741	 -6.27099032	 -0.00112783	  0.00069148	  7.26986249	  0.99655255	  0.99818069  0.49296516
++2742	 -6.27099324	 -0.00112742	  0.00069123	  7.26986583	  0.99655380	  0.99818135  0.49296535
++2743	 -6.27099616	 -0.00112701	  0.00069098	  7.26986915	  0.99655506	  0.99818202  0.49296556
++2744	 -6.27099906	 -0.00112660	  0.00069072	  7.26987246	  0.99655631	  0.99818268  0.49296577
++2745	 -6.27100196	 -0.00112619	  0.00069047	  7.26987577	  0.99655756	  0.99818334  0.49296597
++2746	 -6.27100484	 -0.00112578	  0.00069022	  7.26987906	  0.99655882	  0.99818400  0.49296619
++2747	 -6.27100772	 -0.00112537	  0.00068997	  7.26988235	  0.99656007	  0.99818466  0.49296639
++2748	 -6.27101059	 -0.00112496	  0.00068972	  7.26988563	  0.99656132	  0.99818532  0.49296663
++2749	 -6.27101345	 -0.00112455	  0.00068947	  7.26988890	  0.99656257	  0.99818597  0.49296681
++2750	 -6.27101631	 -0.00112415	  0.00068922	  7.26989216	  0.99656382	  0.99818663  0.49296699
++2751	 -6.27101915	 -0.00112374	  0.00068897	  7.26989541	  0.99656506	  0.99818729  0.49296722
++2752	 -6.27102199	 -0.00112333	  0.00068872	  7.26989866	  0.99656631	  0.99818795  0.49296743
++2753	 -6.27102482	 -0.00112292	  0.00068847	  7.26990189	  0.99656756	  0.99818860  0.49296764
++2754	 -6.27102764	 -0.00112252	  0.00068822	  7.26990512	  0.99656880	  0.99818926  0.49296783
++2755	 -6.27103045	 -0.00112211	  0.00068797	  7.26990834	  0.99657005	  0.99818992  0.49296802
++2756	 -6.27103326	 -0.00112171	  0.00068772	  7.26991155	  0.99657129	  0.99819057  0.49296822
++2757	 -6.27103606	 -0.00112130	  0.00068747	  7.26991476	  0.99657253	  0.99819123  0.49296843
++2758	 -6.27103885	 -0.00112089	  0.00068723	  7.26991795	  0.99657377	  0.99819188  0.49296863
++2759	 -6.27104163	 -0.00112049	  0.00068698	  7.26992114	  0.99657501	  0.99819253  0.49296882
++2760	 -6.27104440	 -0.00112008	  0.00068673	  7.26992432	  0.99657625	  0.99819319  0.49296903
++2761	 -6.27104717	 -0.00111968	  0.00068648	  7.26992749	  0.99657749	  0.99819384  0.49296925
++2762	 -6.27104992	 -0.00111927	  0.00068623	  7.26993065	  0.99657873	  0.99819449  0.49296948
++2763	 -6.27105267	 -0.00111887	  0.00068599	  7.26993380	  0.99657997	  0.99819514  0.49296966
++2764	 -6.27105541	 -0.00111847	  0.00068574	  7.26993695	  0.99658120	  0.99819580  0.49296986
++2765	 -6.27105815	 -0.00111806	  0.00068549	  7.26994009	  0.99658244	  0.99819645  0.49297006
++2766	 -6.27106088	 -0.00111766	  0.00068524	  7.26994322	  0.99658367	  0.99819710  0.49297025
++2767	 -6.27106359	 -0.00111726	  0.00068500	  7.26994634	  0.99658491	  0.99819775  0.49297043
++2768	 -6.27106630	 -0.00111685	  0.00068475	  7.26994945	  0.99658614	  0.99819840  0.49297064
++2769	 -6.27106901	 -0.00111645	  0.00068450	  7.26995256	  0.99658737	  0.99819905  0.49297085
++2770	 -6.27107170	 -0.00111605	  0.00068426	  7.26995565	  0.99658860	  0.99819970  0.49297106
++2771	 -6.27107439	 -0.00111565	  0.00068401	  7.26995874	  0.99658983	  0.99820034  0.49297123
++2772	 -6.27107707	 -0.00111525	  0.00068376	  7.26996183	  0.99659106	  0.99820099  0.49297145
++2773	 -6.27107974	 -0.00111484	  0.00068352	  7.26996490	  0.99659229	  0.99820164  0.49297165
++2774	 -6.27108241	 -0.00111444	  0.00068327	  7.26996797	  0.99659352	  0.99820229  0.49297182
++2775	 -6.27108507	 -0.00111404	  0.00068302	  7.26997103	  0.99659474	  0.99820293  0.49297202
++2776	 -6.27108772	 -0.00111364	  0.00068278	  7.26997408	  0.99659597	  0.99820358  0.49297222
++2777	 -6.27109036	 -0.00111324	  0.00068253	  7.26997712	  0.99659719	  0.99820422  0.49297241
++2778	 -6.27109300	 -0.00111284	  0.00068229	  7.26998015	  0.99659842	  0.99820487  0.49297262
++2779	 -6.27109562	 -0.00111244	  0.00068204	  7.26998318	  0.99659964	  0.99820551  0.49297281
++2780	 -6.27109825	 -0.00111204	  0.00068180	  7.26998620	  0.99660086	  0.99820616  0.49297301
++2781	 -6.27110086	 -0.00111164	  0.00068155	  7.26998921	  0.99660208	  0.99820680  0.49297320
++2782	 -6.27110347	 -0.00111125	  0.00068131	  7.26999222	  0.99660330	  0.99820744  0.49297339
++2783	 -6.27110606	 -0.00111085	  0.00068106	  7.26999522	  0.99660452	  0.99820809  0.49297359
++2784	 -6.27110866	 -0.00111045	  0.00068082	  7.26999821	  0.99660574	  0.99820873  0.49297380
++2785	 -6.27111124	 -0.00111005	  0.00068058	  7.27000119	  0.99660696	  0.99820937  0.49297397
++2786	 -6.27111382	 -0.00110965	  0.00068033	  7.27000416	  0.99660818	  0.99821001  0.49297417
++2787	 -6.27111639	 -0.00110926	  0.00068009	  7.27000713	  0.99660939	  0.99821065  0.49297437
++2788	 -6.27111895	 -0.00110886	  0.00067985	  7.27001009	  0.99661061	  0.99821129  0.49297456
++2789	 -6.27112151	 -0.00110846	  0.00067960	  7.27001304	  0.99661182	  0.99821193  0.49297477
++2790	 -6.27112405	 -0.00110807	  0.00067936	  7.27001599	  0.99661303	  0.99821257  0.49297493
++2791	 -6.27112660	 -0.00110767	  0.00067912	  7.27001892	  0.99661425	  0.99821321  0.49297516
++2792	 -6.27112913	 -0.00110728	  0.00067887	  7.27002185	  0.99661546	  0.99821385  0.49297533
++2793	 -6.27113166	 -0.00110688	  0.00067863	  7.27002478	  0.99661667	  0.99821449  0.49297550
++2794	 -6.27113418	 -0.00110648	  0.00067839	  7.27002769	  0.99661788	  0.99821513  0.49297572
++2795	 -6.27113669	 -0.00110609	  0.00067815	  7.27003060	  0.99661909	  0.99821576  0.49297589
++2796	 -6.27113920	 -0.00110569	  0.00067790	  7.27003350	  0.99662030	  0.99821640  0.49297607
++2797	 -6.27114170	 -0.00110530	  0.00067766	  7.27003640	  0.99662150	  0.99821704  0.49297628
++2798	 -6.27114419	 -0.00110491	  0.00067742	  7.27003928	  0.99662271	  0.99821767  0.49297646
++2799	 -6.27114668	 -0.00110451	  0.00067718	  7.27004216	  0.99662392	  0.99821831  0.49297664
++2800	 -6.27114915	 -0.00110412	  0.00067694	  7.27004504	  0.99662512	  0.99821894  0.49297684
++2801	 -6.27115163	 -0.00110372	  0.00067670	  7.27004790	  0.99662632	  0.99821958  0.49297702
++2802	 -6.27115409	 -0.00110333	  0.00067646	  7.27005076	  0.99662753	  0.99822021  0.49297723
++2803	 -6.27115655	 -0.00110294	  0.00067621	  7.27005361	  0.99662873	  0.99822085  0.49297742
++2804	 -6.27115900	 -0.00110255	  0.00067597	  7.27005646	  0.99662993	  0.99822148  0.49297759
++2805	 -6.27116145	 -0.00110215	  0.00067573	  7.27005929	  0.99663113	  0.99822211  0.49297781
++2806	 -6.27116389	 -0.00110176	  0.00067549	  7.27006212	  0.99663233	  0.99822274  0.49297799
++2807	 -6.27116632	 -0.00110137	  0.00067525	  7.27006495	  0.99663353	  0.99822338  0.49297818
++2808	 -6.27116874	 -0.00110098	  0.00067501	  7.27006776	  0.99663473	  0.99822401  0.49297837
++2809	 -6.27117116	 -0.00110059	  0.00067477	  7.27007057	  0.99663592	  0.99822464  0.49297853
++2810	 -6.27117357	 -0.00110020	  0.00067453	  7.27007338	  0.99663712	  0.99822527  0.49297873
++2811	 -6.27117598	 -0.00109981	  0.00067429	  7.27007617	  0.99663832	  0.99822590  0.49297890
++2812	 -6.27117838	 -0.00109942	  0.00067405	  7.27007896	  0.99663951	  0.99822653  0.49297910
++2813	 -6.27118077	 -0.00109903	  0.00067381	  7.27008174	  0.99664070	  0.99822716  0.49297929
++2814	 -6.27118315	 -0.00109864	  0.00067358	  7.27008452	  0.99664190	  0.99822779  0.49297945
++2815	 -6.27118553	 -0.00109825	  0.00067334	  7.27008729	  0.99664309	  0.99822842  0.49297965
++2816	 -6.27118791	 -0.00109786	  0.00067310	  7.27009005	  0.99664428	  0.99822904  0.49297987
++2817	 -6.27119027	 -0.00109747	  0.00067286	  7.27009280	  0.99664547	  0.99822967  0.49298005
++2818	 -6.27119263	 -0.00109708	  0.00067262	  7.27009555	  0.99664666	  0.99823030  0.49298023
++2819	 -6.27119499	 -0.00109669	  0.00067238	  7.27009829	  0.99664785	  0.99823092  0.49298041
++2820	 -6.27119733	 -0.00109630	  0.00067214	  7.27010103	  0.99664904	  0.99823155  0.49298056
++2821	 -6.27119968	 -0.00109592	  0.00067191	  7.27010376	  0.99665022	  0.99823218  0.49298074
++2822	 -6.27120201	 -0.00109553	  0.00067167	  7.27010648	  0.99665141	  0.99823280  0.49298095
++2823	 -6.27120434	 -0.00109514	  0.00067143	  7.27010920	  0.99665259	  0.99823343  0.49298115
++2824	 -6.27120666	 -0.00109475	  0.00067119	  7.27011190	  0.99665378	  0.99823405  0.49298131
++2825	 -6.27120898	 -0.00109437	  0.00067096	  7.27011461	  0.99665496	  0.99823467  0.49298149
++2826	 -6.27121129	 -0.00109398	  0.00067072	  7.27011730	  0.99665614	  0.99823530  0.49298166
++2827	 -6.27121359	 -0.00109360	  0.00067048	  7.27011999	  0.99665733	  0.99823592  0.49298185
++2828	 -6.27121589	 -0.00109321	  0.00067025	  7.27012268	  0.99665851	  0.99823654  0.49298202
++2829	 -6.27121818	 -0.00109282	  0.00067001	  7.27012535	  0.99665969	  0.99823717  0.49298224
++2830	 -6.27122046	 -0.00109244	  0.00066977	  7.27012802	  0.99666087	  0.99823779  0.49298236
++2831	 -6.27122274	 -0.00109205	  0.00066954	  7.27013069	  0.99666205	  0.99823841  0.49298260
++2832	 -6.27122501	 -0.00109167	  0.00066930	  7.27013334	  0.99666322	  0.99823903  0.49298275
++2833	 -6.27122728	 -0.00109128	  0.00066907	  7.27013600	  0.99666440	  0.99823965  0.49298294
++2834	 -6.27122954	 -0.00109090	  0.00066883	  7.27013864	  0.99666558	  0.99824027  0.49298313
++2835	 -6.27123179	 -0.00109052	  0.00066859	  7.27014128	  0.99666675	  0.99824089  0.49298330
++2836	 -6.27123404	 -0.00109013	  0.00066836	  7.27014391	  0.99666793	  0.99824151  0.49298351
++2837	 -6.27123629	 -0.00108975	  0.00066812	  7.27014654	  0.99666910	  0.99824213  0.49298363
++2838	 -6.27123852	 -0.00108937	  0.00066789	  7.27014916	  0.99667027	  0.99824275  0.49298382
++2839	 -6.27124075	 -0.00108898	  0.00066765	  7.27015177	  0.99667144	  0.99824336  0.49298401
++2840	 -6.27124298	 -0.00108860	  0.00066742	  7.27015438	  0.99667261	  0.99824398  0.49298420
++2841	 -6.27124520	 -0.00108822	  0.00066718	  7.27015698	  0.99667379	  0.99824460  0.49298438
++2842	 -6.27124741	 -0.00108784	  0.00066695	  7.27015957	  0.99667495	  0.99824521  0.49298453
++2843	 -6.27124962	 -0.00108745	  0.00066672	  7.27016216	  0.99667612	  0.99824583  0.49298471
++2844	 -6.27125182	 -0.00108707	  0.00066648	  7.27016475	  0.99667729	  0.99824645  0.49298491
++2845	 -6.27125401	 -0.00108669	  0.00066625	  7.27016732	  0.99667846	  0.99824706  0.49298510
++2846	 -6.27125620	 -0.00108631	  0.00066601	  7.27016989	  0.99667962	  0.99824768  0.49298524
++2847	 -6.27125839	 -0.00108593	  0.00066578	  7.27017246	  0.99668079	  0.99824829  0.49298544
++2848	 -6.27126057	 -0.00108555	  0.00066555	  7.27017502	  0.99668195	  0.99824890  0.49298562
++2849	 -6.27126274	 -0.00108517	  0.00066531	  7.27017757	  0.99668312	  0.99824952  0.49298575
++2850	 -6.27126490	 -0.00108479	  0.00066508	  7.27018012	  0.99668428	  0.99825013  0.49298596
++2851	 -6.27126707	 -0.00108441	  0.00066485	  7.27018266	  0.99668544	  0.99825074  0.49298614
++2852	 -6.27126922	 -0.00108403	  0.00066461	  7.27018519	  0.99668660	  0.99825136  0.49298629
++2853	 -6.27127137	 -0.00108365	  0.00066438	  7.27018772	  0.99668776	  0.99825197  0.49298647
++2854	 -6.27127351	 -0.00108327	  0.00066415	  7.27019024	  0.99668892	  0.99825258  0.49298665
++2855	 -6.27127565	 -0.00108289	  0.00066392	  7.27019276	  0.99669008	  0.99825319  0.49298685
++2856	 -6.27127779	 -0.00108251	  0.00066369	  7.27019527	  0.99669124	  0.99825380  0.49298701
++2857	 -6.27127991	 -0.00108214	  0.00066345	  7.27019778	  0.99669240	  0.99825441  0.49298719
++2858	 -6.27128204	 -0.00108176	  0.00066322	  7.27020028	  0.99669356	  0.99825502  0.49298735
++2859	 -6.27128415	 -0.00108138	  0.00066299	  7.27020277	  0.99669471	  0.99825563  0.49298754
++2860	 -6.27128626	 -0.00108100	  0.00066276	  7.27020526	  0.99669587	  0.99825624  0.49298772
++2861	 -6.27128837	 -0.00108063	  0.00066253	  7.27020774	  0.99669702	  0.99825685  0.49298787
++2862	 -6.27129047	 -0.00108025	  0.00066230	  7.27021022	  0.99669817	  0.99825746  0.49298806
++2863	 -6.27129256	 -0.00107987	  0.00066206	  7.27021269	  0.99669933	  0.99825806  0.49298822
++2864	 -6.27129465	 -0.00107950	  0.00066183	  7.27021516	  0.99670048	  0.99825867  0.49298838
++2865	 -6.27129674	 -0.00107912	  0.00066160	  7.27021762	  0.99670163	  0.99825928  0.49298857
++2866	 -6.27129881	 -0.00107874	  0.00066137	  7.27022007	  0.99670278	  0.99825988  0.49298872
++2867	 -6.27130089	 -0.00107837	  0.00066114	  7.27022252	  0.99670393	  0.99826049  0.49298890
++2868	 -6.27130295	 -0.00107799	  0.00066091	  7.27022496	  0.99670508	  0.99826109  0.49298906
++2869	 -6.27130502	 -0.00107762	  0.00066068	  7.27022740	  0.99670622	  0.99826170  0.49298921
++2870	 -6.27130707	 -0.00107724	  0.00066045	  7.27022983	  0.99670737	  0.99826230  0.49298942
++2871	 -6.27130913	 -0.00107687	  0.00066022	  7.27023226	  0.99670852	  0.99826291  0.49298958
++2872	 -6.27131117	 -0.00107649	  0.00065999	  7.27023468	  0.99670966	  0.99826351  0.49298977
++2873	 -6.27131321	 -0.00107612	  0.00065976	  7.27023709	  0.99671081	  0.99826412  0.49298992
++2874	 -6.27131525	 -0.00107575	  0.00065953	  7.27023950	  0.99671195	  0.99826472  0.49299011
++2875	 -6.27131728	 -0.00107537	  0.00065931	  7.27024191	  0.99671309	  0.99826532  0.49299028
++2876	 -6.27131930	 -0.00107500	  0.00065908	  7.27024430	  0.99671423	  0.99826592  0.49299042
++2877	 -6.27132133	 -0.00107463	  0.00065885	  7.27024670	  0.99671538	  0.99826653  0.49299058
++2878	 -6.27132334	 -0.00107425	  0.00065862	  7.27024909	  0.99671652	  0.99826713  0.49299077
++2879	 -6.27132535	 -0.00107388	  0.00065839	  7.27025147	  0.99671766	  0.99826773  0.49299096
++2880	 -6.27132736	 -0.00107351	  0.00065816	  7.27025385	  0.99671879	  0.99826833  0.49299111
++2881	 -6.27132936	 -0.00107314	  0.00065793	  7.27025622	  0.99671993	  0.99826893  0.49299126
++2882	 -6.27133135	 -0.00107277	  0.00065771	  7.27025858	  0.99672107	  0.99826953  0.49299144
++2883	 -6.27133334	 -0.00107239	  0.00065748	  7.27026094	  0.99672221	  0.99827013  0.49299160
++2884	 -6.27133532	 -0.00107202	  0.00065725	  7.27026330	  0.99672334	  0.99827073  0.49299180
++2885	 -6.27133730	 -0.00107165	  0.00065702	  7.27026565	  0.99672448	  0.99827132  0.49299193
++2886	 -6.27133928	 -0.00107128	  0.00065680	  7.27026800	  0.99672561	  0.99827192  0.49299212
++2887	 -6.27134125	 -0.00107091	  0.00065657	  7.27027034	  0.99672674	  0.99827252  0.49299227
++2888	 -6.27134321	 -0.00107054	  0.00065634	  7.27027267	  0.99672788	  0.99827312  0.49299243
++2889	 -6.27134517	 -0.00107017	  0.00065611	  7.27027500	  0.99672901	  0.99827371  0.49299259
++2890	 -6.27134713	 -0.00106980	  0.00065589	  7.27027733	  0.99673014	  0.99827431  0.49299280
++2891	 -6.27134908	 -0.00106943	  0.00065566	  7.27027964	  0.99673127	  0.99827491  0.49299296
++2892	 -6.27135102	 -0.00106906	  0.00065543	  7.27028196	  0.99673240	  0.99827550  0.49299309
++2893	 -6.27135296	 -0.00106870	  0.00065521	  7.27028427	  0.99673353	  0.99827610  0.49299327
++2894	 -6.27135490	 -0.00106833	  0.00065498	  7.27028657	  0.99673466	  0.99827669  0.49299344
++2895	 -6.27135683	 -0.00106796	  0.00065476	  7.27028887	  0.99673578	  0.99827729  0.49299361
++2896	 -6.27135875	 -0.00106759	  0.00065453	  7.27029116	  0.99673691	  0.99827788  0.49299378
++2897	 -6.27136067	 -0.00106722	  0.00065430	  7.27029345	  0.99673804	  0.99827847  0.49299395
++2898	 -6.27136259	 -0.00106685	  0.00065408	  7.27029574	  0.99673916	  0.99827907  0.49299413
++2899	 -6.27136450	 -0.00106649	  0.00065385	  7.27029801	  0.99674028	  0.99827966  0.49299427
++2900	 -6.27136641	 -0.00106612	  0.00065363	  7.27030029	  0.99674141	  0.99828025  0.49299442
++2901	 -6.27136831	 -0.00106575	  0.00065340	  7.27030256	  0.99674253	  0.99828084  0.49299460
++2902	 -6.27137021	 -0.00106539	  0.00065318	  7.27030482	  0.99674365	  0.99828143  0.49299474
++2903	 -6.27137210	 -0.00106502	  0.00065295	  7.27030708	  0.99674477	  0.99828203  0.49299490
++2904	 -6.27137399	 -0.00106465	  0.00065273	  7.27030933	  0.99674589	  0.99828262  0.49299509
++2905	 -6.27137587	 -0.00106429	  0.00065250	  7.27031158	  0.99674701	  0.99828321  0.49299525
++2906	 -6.27137775	 -0.00106392	  0.00065228	  7.27031382	  0.99674813	  0.99828380  0.49299541
++2907	 -6.27137962	 -0.00106356	  0.00065206	  7.27031606	  0.99674925	  0.99828439  0.49299561
++2908	 -6.27138149	 -0.00106319	  0.00065183	  7.27031830	  0.99675037	  0.99828497  0.49299573
++2909	 -6.27138335	 -0.00106283	  0.00065161	  7.27032053	  0.99675148	  0.99828556  0.49299589
++2910	 -6.27138521	 -0.00106246	  0.00065139	  7.27032275	  0.99675260	  0.99828615  0.49299603
++2911	 -6.27138707	 -0.00106210	  0.00065116	  7.27032497	  0.99675371	  0.99828674  0.49299621
++2912	 -6.27138892	 -0.00106173	  0.00065094	  7.27032719	  0.99675483	  0.99828733  0.49299635
++2913	 -6.27139077	 -0.00106137	  0.00065072	  7.27032940	  0.99675594	  0.99828791  0.49299653
++2914	 -6.27139261	 -0.00106101	  0.00065049	  7.27033160	  0.99675705	  0.99828850  0.49299670
++2915	 -6.27139445	 -0.00106064	  0.00065027	  7.27033380	  0.99675816	  0.99828909  0.49299687
++2916	 -6.27139628	 -0.00106028	  0.00065005	  7.27033600	  0.99675928	  0.99828967  0.49299705
++2917	 -6.27139811	 -0.00105992	  0.00064982	  7.27033819	  0.99676039	  0.99829026  0.49299718
++2918	 -6.27139993	 -0.00105956	  0.00064960	  7.27034037	  0.99676150	  0.99829084  0.49299736
++2919	 -6.27140175	 -0.00105919	  0.00064938	  7.27034256	  0.99676260	  0.99829143  0.49299751
++2920	 -6.27140356	 -0.00105883	  0.00064916	  7.27034473	  0.99676371	  0.99829201  0.49299765
++2921	 -6.27140537	 -0.00105847	  0.00064893	  7.27034690	  0.99676482	  0.99829260  0.49299782
++2922	 -6.27140718	 -0.00105811	  0.00064871	  7.27034907	  0.99676593	  0.99829318  0.49299800
++2923	 -6.27140898	 -0.00105775	  0.00064849	  7.27035123	  0.99676703	  0.99829376  0.49299816
++2924	 -6.27141078	 -0.00105739	  0.00064827	  7.27035339	  0.99676814	  0.99829434  0.49299833
++2925	 -6.27141257	 -0.00105702	  0.00064805	  7.27035555	  0.99676924	  0.99829493  0.49299845
++2926	 -6.27141436	 -0.00105666	  0.00064783	  7.27035770	  0.99677034	  0.99829551  0.49299862
++2927	 -6.27141614	 -0.00105630	  0.00064761	  7.27035984	  0.99677145	  0.99829609  0.49299878
++2928	 -6.27141792	 -0.00105594	  0.00064739	  7.27036198	  0.99677255	  0.99829667  0.49299891
++2929	 -6.27141970	 -0.00105558	  0.00064716	  7.27036412	  0.99677365	  0.99829725  0.49299912
++2930	 -6.27142147	 -0.00105522	  0.00064694	  7.27036625	  0.99677475	  0.99829783  0.49299926
++2931	 -6.27142324	 -0.00105486	  0.00064672	  7.27036837	  0.99677585	  0.99829841  0.49299943
++2932	 -6.27142500	 -0.00105451	  0.00064650	  7.27037050	  0.99677695	  0.99829899  0.49299955
++2933	 -6.27142676	 -0.00105415	  0.00064628	  7.27037261	  0.99677805	  0.99829957  0.49299971
++2934	 -6.27142851	 -0.00105379	  0.00064606	  7.27037473	  0.99677914	  0.99830015  0.49299984
++2935	 -6.27143026	 -0.00105343	  0.00064584	  7.27037683	  0.99678024	  0.99830073  0.49300001
++2936	 -6.27143201	 -0.00105307	  0.00064562	  7.27037894	  0.99678134	  0.99830131  0.49300017
++2937	 -6.27143375	 -0.00105271	  0.00064540	  7.27038104	  0.99678243	  0.99830188  0.49300033
++2938	 -6.27143549	 -0.00105236	  0.00064518	  7.27038313	  0.99678353	  0.99830246  0.49300050
++2939	 -6.27143722	 -0.00105200	  0.00064496	  7.27038522	  0.99678462	  0.99830304  0.49300065
++2940	 -6.27143895	 -0.00105164	  0.00064475	  7.27038731	  0.99678571	  0.99830361  0.49300081
++2941	 -6.27144068	 -0.00105128	  0.00064453	  7.27038939	  0.99678681	  0.99830419  0.49300096
++2942	 -6.27144240	 -0.00105093	  0.00064431	  7.27039147	  0.99678790	  0.99830477  0.49300112
++2943	 -6.27144412	 -0.00105057	  0.00064409	  7.27039355	  0.99678899	  0.99830534  0.49300126
++2944	 -6.27144583	 -0.00105021	  0.00064387	  7.27039561	  0.99679008	  0.99830592  0.49300141
++2945	 -6.27144754	 -0.00104986	  0.00064365	  7.27039768	  0.99679117	  0.99830649  0.49300158
++2946	 -6.27144924	 -0.00104950	  0.00064343	  7.27039974	  0.99679226	  0.99830706  0.49300174
++2947	 -6.27145094	 -0.00104915	  0.00064322	  7.27040180	  0.99679334	  0.99830764  0.49300191
++2948	 -6.27145264	 -0.00104879	  0.00064300	  7.27040385	  0.99679443	  0.99830821  0.49300203
++2949	 -6.27145433	 -0.00104844	  0.00064278	  7.27040590	  0.99679552	  0.99830878  0.49300220
++2950	 -6.27145602	 -0.00104808	  0.00064256	  7.27040794	  0.99679660	  0.99830936  0.49300234
++2951	 -6.27145771	 -0.00104773	  0.00064234	  7.27040998	  0.99679769	  0.99830993  0.49300248
++2952	 -6.27145939	 -0.00104737	  0.00064213	  7.27041202	  0.99679877	  0.99831050  0.49300264
++2953	 -6.27146107	 -0.00104702	  0.00064191	  7.27041405	  0.99679986	  0.99831107  0.49300280
++2954	 -6.27146274	 -0.00104667	  0.00064169	  7.27041607	  0.99680094	  0.99831164  0.49300294
++2955	 -6.27146441	 -0.00104631	  0.00064148	  7.27041810	  0.99680202	  0.99831221  0.49300310
++2956	 -6.27146607	 -0.00104596	  0.00064126	  7.27042012	  0.99680310	  0.99831278  0.49300325
++2957	 -6.27146774	 -0.00104561	  0.00064104	  7.27042213	  0.99680418	  0.99831335  0.49300340
++2958	 -6.27146939	 -0.00104525	  0.00064083	  7.27042414	  0.99680526	  0.99831392  0.49300357
++2959	 -6.27147105	 -0.00104490	  0.00064061	  7.27042615	  0.99680634	  0.99831449  0.49300370
++2960	 -6.27147270	 -0.00104455	  0.00064039	  7.27042815	  0.99680742	  0.99831506  0.49300390
++2961	 -6.27147434	 -0.00104420	  0.00064018	  7.27043015	  0.99680850	  0.99831563  0.49300402
++2962	 -6.27147599	 -0.00104384	  0.00063996	  7.27043214	  0.99680957	  0.99831620  0.49300417
++2963	 -6.27147762	 -0.00104349	  0.00063975	  7.27043413	  0.99681065	  0.99831676  0.49300431
++2964	 -6.27147926	 -0.00104314	  0.00063953	  7.27043612	  0.99681172	  0.99831733  0.49300449
++2965	 -6.27148089	 -0.00104279	  0.00063931	  7.27043810	  0.99681280	  0.99831790  0.49300460
++2966	 -6.27148252	 -0.00104244	  0.00063910	  7.27044008	  0.99681387	  0.99831846  0.49300478
++2967	 -6.27148414	 -0.00104209	  0.00063888	  7.27044205	  0.99681495	  0.99831903  0.49300494
++2968	 -6.27148576	 -0.00104174	  0.00063867	  7.27044402	  0.99681602	  0.99831959  0.49300507
++2969	 -6.27148738	 -0.00104139	  0.00063845	  7.27044599	  0.99681709	  0.99832016  0.49300523
++2970	 -6.27148899	 -0.00104104	  0.00063824	  7.27044795	  0.99681816	  0.99832072  0.49300537
++2971	 -6.27149060	 -0.00104069	  0.00063802	  7.27044991	  0.99681923	  0.99832129  0.49300552
++2972	 -6.27149220	 -0.00104034	  0.00063781	  7.27045186	  0.99682030	  0.99832185  0.49300567
++2973	 -6.27149380	 -0.00103999	  0.00063760	  7.27045382	  0.99682137	  0.99832242  0.49300583
++2974	 -6.27149540	 -0.00103964	  0.00063738	  7.27045576	  0.99682244	  0.99832298  0.49300595
++2975	 -6.27149699	 -0.00103929	  0.00063717	  7.27045771	  0.99682351	  0.99832354  0.49300609
++2976	 -6.27149859	 -0.00103894	  0.00063695	  7.27045964	  0.99682457	  0.99832411  0.49300627
++2977	 -6.27150017	 -0.00103859	  0.00063674	  7.27046158	  0.99682564	  0.99832467  0.49300642
++2978	 -6.27150175	 -0.00103824	  0.00063653	  7.27046351	  0.99682670	  0.99832523  0.49300653
++2979	 -6.27150333	 -0.00103790	  0.00063631	  7.27046544	  0.99682777	  0.99832579  0.49300671
++2980	 -6.27150491	 -0.00103755	  0.00063610	  7.27046736	  0.99682883	  0.99832635  0.49300686
++2981	 -6.27150648	 -0.00103720	  0.00063589	  7.27046928	  0.99682990	  0.99832691  0.49300700
++2982	 -6.27150805	 -0.00103685	  0.00063567	  7.27047120	  0.99683096	  0.99832747  0.49300717
++2983	 -6.27150962	 -0.00103651	  0.00063546	  7.27047311	  0.99683202	  0.99832803  0.49300731
++2984	 -6.27151118	 -0.00103616	  0.00063525	  7.27047502	  0.99683308	  0.99832859  0.49300742
++2985	 -6.27151274	 -0.00103581	  0.00063503	  7.27047692	  0.99683414	  0.99832915  0.49300759
++2986	 -6.27151429	 -0.00103547	  0.00063482	  7.27047882	  0.99683520	  0.99832971  0.49300775
++2987	 -6.27151584	 -0.00103512	  0.00063461	  7.27048072	  0.99683626	  0.99833027  0.49300787
++2988	 -6.27151739	 -0.00103478	  0.00063440	  7.27048262	  0.99683732	  0.99833083  0.49300803
++2989	 -6.27151893	 -0.00103443	  0.00063419	  7.27048451	  0.99683838	  0.99833138  0.49300818
++2990	 -6.27152048	 -0.00103408	  0.00063397	  7.27048639	  0.99683943	  0.99833194  0.49300831
++2991	 -6.27152201	 -0.00103374	  0.00063376	  7.27048827	  0.99684049	  0.99833250  0.49300846
++2992	 -6.27152355	 -0.00103339	  0.00063355	  7.27049015	  0.99684154	  0.99833306  0.49300863
++2993	 -6.27152508	 -0.00103305	  0.00063334	  7.27049203	  0.99684260	  0.99833361  0.49300877
++2994	 -6.27152660	 -0.00103270	  0.00063313	  7.27049390	  0.99684365	  0.99833417  0.49300891
++2995	 -6.27152813	 -0.00103236	  0.00063292	  7.27049577	  0.99684471	  0.99833472  0.49300907
++2996	 -6.27152965	 -0.00103202	  0.00063271	  7.27049763	  0.99684576	  0.99833528  0.49300922
++2997	 -6.27153117	 -0.00103167	  0.00063249	  7.27049949	  0.99684681	  0.99833583  0.49300935
++2998	 -6.27153268	 -0.00103133	  0.00063228	  7.27050135	  0.99684786	  0.99833639  0.49300949
++2999	 -6.27153419	 -0.00103099	  0.00063207	  7.27050320	  0.99684891	  0.99833694  0.49300966
++3000	 -6.27153570	 -0.00103064	  0.00063186	  7.27050505	  0.99684996	  0.99833749  0.49300980
++3001	 -6.27153720	 -0.00103030	  0.00063165	  7.27050690	  0.99685101	  0.99833805  0.49300992
++3002	 -6.27153870	 -0.00102996	  0.00063144	  7.27050874	  0.99685206	  0.99833860  0.49301003
++3003	 -6.27154020	 -0.00102961	  0.00063123	  7.27051058	  0.99685311	  0.99833915  0.49301024
++3004	 -6.27154169	 -0.00102927	  0.00063102	  7.27051242	  0.99685415	  0.99833971  0.49301036
++3005	 -6.27154318	 -0.00102893	  0.00063081	  7.27051425	  0.99685520	  0.99834026  0.49301051
++3006	 -6.27154467	 -0.00102859	  0.00063060	  7.27051608	  0.99685625	  0.99834081  0.49301064
++3007	 -6.27154615	 -0.00102825	  0.00063039	  7.27051791	  0.99685729	  0.99834136  0.49301076
++3008	 -6.27154763	 -0.00102791	  0.00063018	  7.27051973	  0.99685834	  0.99834191  0.49301089
++3009	 -6.27154911	 -0.00102756	  0.00062997	  7.27052155	  0.99685938	  0.99834246  0.49301105
++3010	 -6.27155059	 -0.00102722	  0.00062976	  7.27052336	  0.99686042	  0.99834301  0.49301119
++3011	 -6.27155206	 -0.00102688	  0.00062956	  7.27052517	  0.99686146	  0.99834356  0.49301134
++3012	 -6.27155352	 -0.00102654	  0.00062935	  7.27052698	  0.99686251	  0.99834411  0.49301148
++3013	 -6.27155499	 -0.00102620	  0.00062914	  7.27052879	  0.99686355	  0.99834466  0.49301163
++3014	 -6.27155645	 -0.00102586	  0.00062893	  7.27053059	  0.99686459	  0.99834521  0.49301176
++3015	 -6.27155791	 -0.00102552	  0.00062872	  7.27053239	  0.99686563	  0.99834576  0.49301188
++3016	 -6.27155936	 -0.00102518	  0.00062851	  7.27053418	  0.99686666	  0.99834630  0.49301206
++3017	 -6.27156082	 -0.00102484	  0.00062830	  7.27053597	  0.99686770	  0.99834685  0.49301220
++3018	 -6.27156226	 -0.00102451	  0.00062810	  7.27053776	  0.99686874	  0.99834740  0.49301233
++3019	 -6.27156371	 -0.00102417	  0.00062789	  7.27053954	  0.99686978	  0.99834794  0.49301246
++3020	 -6.27156515	 -0.00102383	  0.00062768	  7.27054132	  0.99687081	  0.99834849  0.49301262
++3021	 -6.27156659	 -0.00102349	  0.00062747	  7.27054310	  0.99687185	  0.99834904  0.49301280
++3022	 -6.27156803	 -0.00102315	  0.00062727	  7.27054488	  0.99687288	  0.99834958  0.49301294
++3023	 -6.27156946	 -0.00102281	  0.00062706	  7.27054665	  0.99687392	  0.99835013  0.49301309
++3024	 -6.27157089	 -0.00102248	  0.00062685	  7.27054842	  0.99687495	  0.99835067  0.49301319
++3025	 -6.27157232	 -0.00102214	  0.00062664	  7.27055018	  0.99687598	  0.99835122  0.49301335
++3026	 -6.27157374	 -0.00102180	  0.00062644	  7.27055194	  0.99687701	  0.99835176  0.49301345
++3027	 -6.27157517	 -0.00102146	  0.00062623	  7.27055370	  0.99687805	  0.99835231  0.49301362
++3028	 -6.27157658	 -0.00102113	  0.00062602	  7.27055546	  0.99687908	  0.99835285  0.49301372
++3029	 -6.27157800	 -0.00102079	  0.00062582	  7.27055721	  0.99688011	  0.99835339  0.49301383
++3030	 -6.27157941	 -0.00102045	  0.00062561	  7.27055896	  0.99688113	  0.99835393  0.49301405
++3031	 -6.27158082	 -0.00102012	  0.00062540	  7.27056070	  0.99688216	  0.99835448  0.49301418
++3032	 -6.27158223	 -0.00101978	  0.00062520	  7.27056244	  0.99688319	  0.99835502  0.49301433
++3033	 -6.27158363	 -0.00101945	  0.00062499	  7.27056418	  0.99688422	  0.99835556  0.49301444
++3034	 -6.27158503	 -0.00101911	  0.00062479	  7.27056592	  0.99688524	  0.99835610  0.49301454
++3035	 -6.27158643	 -0.00101878	  0.00062458	  7.27056765	  0.99688627	  0.99835664  0.49301468
++3036	 -6.27158782	 -0.00101844	  0.00062438	  7.27056938	  0.99688730	  0.99835718  0.49301483
++3037	 -6.27158921	 -0.00101811	  0.00062417	  7.27057111	  0.99688832	  0.99835772  0.49301499
++3038	 -6.27159060	 -0.00101777	  0.00062396	  7.27057283	  0.99688934	  0.99835826  0.49301513
++3039	 -6.27159199	 -0.00101744	  0.00062376	  7.27057455	  0.99689037	  0.99835880  0.49301528
++3040	 -6.27159337	 -0.00101710	  0.00062355	  7.27057627	  0.99689139	  0.99835934  0.49301541
++3041	 -6.27159475	 -0.00101677	  0.00062335	  7.27057798	  0.99689241	  0.99835988  0.49301553
++3042	 -6.27159613	 -0.00101644	  0.00062314	  7.27057969	  0.99689343	  0.99836042  0.49301569
++3043	 -6.27159750	 -0.00101610	  0.00062294	  7.27058140	  0.99689445	  0.99836096  0.49301584
++3044	 -6.27159887	 -0.00101577	  0.00062274	  7.27058310	  0.99689547	  0.99836150  0.49301593
++3045	 -6.27160024	 -0.00101544	  0.00062253	  7.27058480	  0.99689649	  0.99836203  0.49301608
++3046	 -6.27160160	 -0.00101510	  0.00062233	  7.27058650	  0.99689751	  0.99836257  0.49301621
++3047	 -6.27160297	 -0.00101477	  0.00062212	  7.27058820	  0.99689853	  0.99836311  0.49301634
++3048	 -6.27160433	 -0.00101444	  0.00062192	  7.27058989	  0.99689954	  0.99836364  0.49301647
++3049	 -6.27160568	 -0.00101410	  0.00062171	  7.27059158	  0.99690056	  0.99836418  0.49301663
++3050	 -6.27160704	 -0.00101377	  0.00062151	  7.27059327	  0.99690158	  0.99836472  0.49301679
++3051	 -6.27160839	 -0.00101344	  0.00062131	  7.27059495	  0.99690259	  0.99836525  0.49301693
++3052	 -6.27160974	 -0.00101311	  0.00062110	  7.27059663	  0.99690361	  0.99836579  0.49301706
++3053	 -6.27161108	 -0.00101278	  0.00062090	  7.27059831	  0.99690462	  0.99836632  0.49301722
++3054	 -6.27161243	 -0.00101245	  0.00062070	  7.27059998	  0.99690563	  0.99836686  0.49301730
++3055	 -6.27161377	 -0.00101212	  0.00062049	  7.27060165	  0.99690664	  0.99836739  0.49301748
++3056	 -6.27161511	 -0.00101179	  0.00062029	  7.27060332	  0.99690766	  0.99836792  0.49301757
++3057	 -6.27161644	 -0.00101146	  0.00062009	  7.27060499	  0.99690867	  0.99836846  0.49301772
++3058	 -6.27161777	 -0.00101112	  0.00061989	  7.27060665	  0.99690968	  0.99836899  0.49301787
++3059	 -6.27161910	 -0.00101079	  0.00061968	  7.27060831	  0.99691069	  0.99836952  0.49301798
++3060	 -6.27162043	 -0.00101046	  0.00061948	  7.27060996	  0.99691170	  0.99837005  0.49301811
++3061	 -6.27162175	 -0.00101014	  0.00061928	  7.27061162	  0.99691271	  0.99837059  0.49301825
++3062	 -6.27162307	 -0.00100981	  0.00061908	  7.27061327	  0.99691371	  0.99837112  0.49301840
++3063	 -6.27162439	 -0.00100948	  0.00061887	  7.27061492	  0.99691472	  0.99837165  0.49301855
++3064	 -6.27162571	 -0.00100915	  0.00061867	  7.27061656	  0.99691573	  0.99837218  0.49301866
++3065	 -6.27162702	 -0.00100882	  0.00061847	  7.27061820	  0.99691673	  0.99837271  0.49301881
++3066	 -6.27162833	 -0.00100849	  0.00061827	  7.27061984	  0.99691774	  0.99837324  0.49301892
++3067	 -6.27162964	 -0.00100816	  0.00061807	  7.27062148	  0.99691874	  0.99837377  0.49301906
++3068	 -6.27163095	 -0.00100783	  0.00061787	  7.27062311	  0.99691975	  0.99837430  0.49301923
++3069	 -6.27163225	 -0.00100751	  0.00061767	  7.27062474	  0.99692075	  0.99837483  0.49301935
++3070	 -6.27163355	 -0.00100718	  0.00061746	  7.27062637	  0.99692175	  0.99837536  0.49301944
++3071	 -6.27163485	 -0.00100685	  0.00061726	  7.27062800	  0.99692275	  0.99837589  0.49301961
++3072	 -6.27163614	 -0.00100652	  0.00061706	  7.27062962	  0.99692375	  0.99837641  0.49301974
++3073	 -6.27163743	 -0.00100620	  0.00061686	  7.27063124	  0.99692476	  0.99837694  0.49301990
++3074	 -6.27163872	 -0.00100587	  0.00061666	  7.27063285	  0.99692576	  0.99837747  0.49301996
++3075	 -6.27164001	 -0.00100554	  0.00061646	  7.27063447	  0.99692675	  0.99837800  0.49302013
++3076	 -6.27164130	 -0.00100522	  0.00061626	  7.27063608	  0.99692775	  0.99837852  0.49302024
++3077	 -6.27164258	 -0.00100489	  0.00061606	  7.27063769	  0.99692875	  0.99837905  0.49302039
++3078	 -6.27164386	 -0.00100456	  0.00061586	  7.27063929	  0.99692975	  0.99837957  0.49302050
++3079	 -6.27164513	 -0.00100424	  0.00061566	  7.27064090	  0.99693075	  0.99838010  0.49302064
++3080	 -6.27164641	 -0.00100391	  0.00061546	  7.27064250	  0.99693174	  0.99838063  0.49302080
++3081	 -6.27164768	 -0.00100359	  0.00061526	  7.27064409	  0.99693274	  0.99838115  0.49302092
++3082	 -6.27164895	 -0.00100326	  0.00061506	  7.27064569	  0.99693373	  0.99838168  0.49302106
++3083	 -6.27165022	 -0.00100294	  0.00061486	  7.27064728	  0.99693473	  0.99838220  0.49302117
++3084	 -6.27165148	 -0.00100261	  0.00061466	  7.27064887	  0.99693572	  0.99838272  0.49302135
++3085	 -6.27165274	 -0.00100229	  0.00061446	  7.27065045	  0.99693671	  0.99838325  0.49302147
++3086	 -6.27165400	 -0.00100196	  0.00061427	  7.27065204	  0.99693770	  0.99838377  0.49302161
++3087	 -6.27165526	 -0.00100164	  0.00061407	  7.27065362	  0.99693870	  0.99838429  0.49302174
++3088	 -6.27165651	 -0.00100132	  0.00061387	  7.27065520	  0.99693969	  0.99838482  0.49302182
++3089	 -6.27165777	 -0.00100099	  0.00061367	  7.27065677	  0.99694068	  0.99838534  0.49302200
++3090	 -6.27165902	 -0.00100067	  0.00061347	  7.27065835	  0.99694167	  0.99838586  0.49302214
++3091	 -6.27166026	 -0.00100035	  0.00061327	  7.27065992	  0.99694266	  0.99838638  0.49302227
++3092	 -6.27166151	 -0.00100002	  0.00061307	  7.27066149	  0.99694364	  0.99838690  0.49302237
++3093	 -6.27166275	 -0.00099970	  0.00061288	  7.27066305	  0.99694463	  0.99838742  0.49302253
++3094	 -6.27166399	 -0.00099938	  0.00061268	  7.27066461	  0.99694562	  0.99838795  0.49302264
++3095	 -6.27166523	 -0.00099905	  0.00061248	  7.27066617	  0.99694660	  0.99838847  0.49302277
++3096	 -6.27166646	 -0.00099873	  0.00061228	  7.27066773	  0.99694759	  0.99838899  0.49302290
++3097	 -6.27166770	 -0.00099841	  0.00061208	  7.27066928	  0.99694858	  0.99838951  0.49302301
++3098	 -6.27166893	 -0.00099809	  0.00061189	  7.27067084	  0.99694956	  0.99839002  0.49302315
++3099	 -6.27167015	 -0.00099777	  0.00061169	  7.27067239	  0.99695054	  0.99839054  0.49302331
++3100	 -6.27167138	 -0.00099745	  0.00061149	  7.27067393	  0.99695153	  0.99839106  0.49302343
++3101	 -6.27167260	 -0.00099712	  0.00061130	  7.27067548	  0.99695251	  0.99839158  0.49302354
++3102	 -6.27167382	 -0.00099680	  0.00061110	  7.27067702	  0.99695349	  0.99839210  0.49302367
++3103	 -6.27167504	 -0.00099648	  0.00061090	  7.27067856	  0.99695447	  0.99839262  0.49302378
++3104	 -6.27167626	 -0.00099616	  0.00061070	  7.27068010	  0.99695545	  0.99839313  0.49302391
++3105	 -6.27167747	 -0.00099584	  0.00061051	  7.27068163	  0.99695643	  0.99839365  0.49302405
++3106	 -6.27167868	 -0.00099552	  0.00061031	  7.27068316	  0.99695741	  0.99839417  0.49302418
++3107	 -6.27167989	 -0.00099520	  0.00061012	  7.27068469	  0.99695839	  0.99839468  0.49302428
++3108	 -6.27168110	 -0.00099488	  0.00060992	  7.27068622	  0.99695937	  0.99839520  0.49302442
++3109	 -6.27168231	 -0.00099456	  0.00060972	  7.27068774	  0.99696035	  0.99839571  0.49302457
++3110	 -6.27168351	 -0.00099424	  0.00060953	  7.27068927	  0.99696133	  0.99839623  0.49302469
++3111	 -6.27168471	 -0.00099392	  0.00060933	  7.27069078	  0.99696230	  0.99839674  0.49302483
++3112	 -6.27168591	 -0.00099360	  0.00060914	  7.27069230	  0.99696328	  0.99839726  0.49302493
++3113	 -6.27168710	 -0.00099329	  0.00060894	  7.27069382	  0.99696425	  0.99839777  0.49302510
++3114	 -6.27168829	 -0.00099297	  0.00060874	  7.27069533	  0.99696523	  0.99839829  0.49302519
++3115	 -6.27168949	 -0.00099265	  0.00060855	  7.27069684	  0.99696620	  0.99839880  0.49302531
++3116	 -6.27169067	 -0.00099233	  0.00060835	  7.27069834	  0.99696717	  0.99839931  0.49302546
++3117	 -6.27169186	 -0.00099201	  0.00060816	  7.27069985	  0.99696815	  0.99839983  0.49302559
++3118	 -6.27169305	 -0.00099170	  0.00060796	  7.27070135	  0.99696912	  0.99840034  0.49302572
++3119	 -6.27169423	 -0.00099138	  0.00060777	  7.27070285	  0.99697009	  0.99840085  0.49302581
++3120	 -6.27169541	 -0.00099106	  0.00060757	  7.27070435	  0.99697106	  0.99840137  0.49302594
++3121	 -6.27169659	 -0.00099074	  0.00060738	  7.27070584	  0.99697203	  0.99840188  0.49302606
++3122	 -6.27169776	 -0.00099043	  0.00060719	  7.27070734	  0.99697300	  0.99840239  0.49302620
++3123	 -6.27169893	 -0.00099011	  0.00060699	  7.27070883	  0.99697397	  0.99840290  0.49302635
++3124	 -6.27170011	 -0.00098979	  0.00060680	  7.27071031	  0.99697494	  0.99840341  0.49302644
++3125	 -6.27170128	 -0.00098948	  0.00060660	  7.27071180	  0.99697590	  0.99840392  0.49302662
++3126	 -6.27170244	 -0.00098916	  0.00060641	  7.27071328	  0.99697687	  0.99840443  0.49302676
++3127	 -6.27170361	 -0.00098884	  0.00060622	  7.27071476	  0.99697784	  0.99840494  0.49302682
++3128	 -6.27170477	 -0.00098853	  0.00060602	  7.27071624	  0.99697880	  0.99840545  0.49302696
++3129	 -6.27170593	 -0.00098821	  0.00060583	  7.27071772	  0.99697977	  0.99840596  0.49302711
++3130	 -6.27170709	 -0.00098790	  0.00060563	  7.27071919	  0.99698073	  0.99840647  0.49302721
++3131	 -6.27170825	 -0.00098758	  0.00060544	  7.27072066	  0.99698170	  0.99840698  0.49302733
++3132	 -6.27170940	 -0.00098727	  0.00060525	  7.27072213	  0.99698266	  0.99840748  0.49302748
++3133	 -6.27171055	 -0.00098695	  0.00060505	  7.27072360	  0.99698362	  0.99840799  0.49302765
++3134	 -6.27171170	 -0.00098664	  0.00060486	  7.27072506	  0.99698459	  0.99840850  0.49302773
++3135	 -6.27171285	 -0.00098633	  0.00060467	  7.27072652	  0.99698555	  0.99840901  0.49302786
++3136	 -6.27171399	 -0.00098601	  0.00060448	  7.27072798	  0.99698651	  0.99840951  0.49302797
++3137	 -6.27171514	 -0.00098570	  0.00060428	  7.27072944	  0.99698747	  0.99841002  0.49302811
++3138	 -6.27171628	 -0.00098538	  0.00060409	  7.27073090	  0.99698843	  0.99841053  0.49302824
++3139	 -6.27171742	 -0.00098507	  0.00060390	  7.27073235	  0.99698939	  0.99841103  0.49302835
++3140	 -6.27171856	 -0.00098476	  0.00060371	  7.27073380	  0.99699035	  0.99841154  0.49302848
++3141	 -6.27171969	 -0.00098444	  0.00060351	  7.27073525	  0.99699130	  0.99841204  0.49302858
++3142	 -6.27172082	 -0.00098413	  0.00060332	  7.27073669	  0.99699226	  0.99841255  0.49302871
++3143	 -6.27172196	 -0.00098382	  0.00060313	  7.27073814	  0.99699322	  0.99841305  0.49302887
++3144	 -6.27172309	 -0.00098351	  0.00060294	  7.27073958	  0.99699417	  0.99841356  0.49302895
++3145	 -6.27172421	 -0.00098319	  0.00060275	  7.27074102	  0.99699513	  0.99841406  0.49302912
++3146	 -6.27172534	 -0.00098288	  0.00060256	  7.27074246	  0.99699608	  0.99841456  0.49302925
++3147	 -6.27172646	 -0.00098257	  0.00060236	  7.27074389	  0.99699704	  0.99841507  0.49302935
++3148	 -6.27172758	 -0.00098226	  0.00060217	  7.27074532	  0.99699799	  0.99841557  0.49302945
++3149	 -6.27172870	 -0.00098195	  0.00060198	  7.27074676	  0.99699894	  0.99841607  0.49302959
++3150	 -6.27172982	 -0.00098163	  0.00060179	  7.27074818	  0.99699990	  0.99841657  0.49302970
++3151	 -6.27173093	 -0.00098132	  0.00060160	  7.27074961	  0.99700085	  0.99841708  0.49302981
++3152	 -6.27173205	 -0.00098101	  0.00060141	  7.27075103	  0.99700180	  0.99841758  0.49302992
++3153	 -6.27173316	 -0.00098070	  0.00060122	  7.27075246	  0.99700275	  0.99841808  0.49303009
++3154	 -6.27173427	 -0.00098039	  0.00060103	  7.27075388	  0.99700370	  0.99841858  0.49303019
++3155	 -6.27173537	 -0.00098008	  0.00060084	  7.27075529	  0.99700465	  0.99841908  0.49303031
++3156	 -6.27173648	 -0.00097977	  0.00060065	  7.27075671	  0.99700560	  0.99841958  0.49303044
++3157	 -6.27173758	 -0.00097946	  0.00060046	  7.27075812	  0.99700655	  0.99842008  0.49303056
++3158	 -6.27173868	 -0.00097915	  0.00060027	  7.27075953	  0.99700749	  0.99842058  0.49303069
++3159	 -6.27173978	 -0.00097884	  0.00060008	  7.27076094	  0.99700844	  0.99842108  0.49303080
++3160	 -6.27174088	 -0.00097853	  0.00059989	  7.27076235	  0.99700939	  0.99842158  0.49303094
++3161	 -6.27174198	 -0.00097822	  0.00059970	  7.27076375	  0.99701033	  0.99842208  0.49303107
++3162	 -6.27174307	 -0.00097791	  0.00059951	  7.27076516	  0.99701128	  0.99842258  0.49303120
++3163	 -6.27174416	 -0.00097761	  0.00059932	  7.27076656	  0.99701222	  0.99842308  0.49303132
++3164	 -6.27174525	 -0.00097730	  0.00059913	  7.27076795	  0.99701317	  0.99842357  0.49303142
++3165	 -6.27174634	 -0.00097699	  0.00059894	  7.27076935	  0.99701411	  0.99842407  0.49303154
++3166	 -6.27174743	 -0.00097668	  0.00059875	  7.27077075	  0.99701505	  0.99842457  0.49303168
++3167	 -6.27174851	 -0.00097637	  0.00059856	  7.27077214	  0.99701599	  0.99842507  0.49303176
++3168	 -6.27174959	 -0.00097606	  0.00059837	  7.27077353	  0.99701693	  0.99842556  0.49303192
++3169	 -6.27175067	 -0.00097576	  0.00059818	  7.27077491	  0.99701788	  0.99842606  0.49303205
++3170	 -6.27175175	 -0.00097545	  0.00059800	  7.27077630	  0.99701882	  0.99842656  0.49303212
++3171	 -6.27175283	 -0.00097514	  0.00059781	  7.27077769	  0.99701976	  0.99842705  0.49303223
++3172	 -6.27175390	 -0.00097484	  0.00059762	  7.27077907	  0.99702070	  0.99842755  0.49303239
++3173	 -6.27175497	 -0.00097453	  0.00059743	  7.27078045	  0.99702163	  0.99842804  0.49303247
++3174	 -6.27175605	 -0.00097422	  0.00059724	  7.27078182	  0.99702257	  0.99842854  0.49303263
++3175	 -6.27175712	 -0.00097392	  0.00059705	  7.27078320	  0.99702351	  0.99842903  0.49303277
++3176	 -6.27175818	 -0.00097361	  0.00059687	  7.27078457	  0.99702445	  0.99842952  0.49303287
++3177	 -6.27175925	 -0.00097330	  0.00059668	  7.27078595	  0.99702538	  0.99843002  0.49303298
++3178	 -6.27176031	 -0.00097300	  0.00059649	  7.27078731	  0.99702632	  0.99843051  0.49303309
++3179	 -6.27176137	 -0.00097269	  0.00059630	  7.27078868	  0.99702725	  0.99843101  0.49303324
++3180	 -6.27176243	 -0.00097239	  0.00059612	  7.27079005	  0.99702819	  0.99843150  0.49303337
++3181	 -6.27176349	 -0.00097208	  0.00059593	  7.27079141	  0.99702912	  0.99843199  0.49303342
++3182	 -6.27176455	 -0.00097178	  0.00059574	  7.27079277	  0.99703005	  0.99843248  0.49303355
++3183	 -6.27176560	 -0.00097147	  0.00059555	  7.27079413	  0.99703099	  0.99843298  0.49303367
++3184	 -6.27176666	 -0.00097117	  0.00059537	  7.27079549	  0.99703192	  0.99843347  0.49303384
++3185	 -6.27176771	 -0.00097086	  0.00059518	  7.27079685	  0.99703285	  0.99843396  0.49303391
++3186	 -6.27176876	 -0.00097056	  0.00059499	  7.27079820	  0.99703378	  0.99843445  0.49303404
++3187	 -6.27176980	 -0.00097025	  0.00059481	  7.27079955	  0.99703471	  0.99843494  0.49303417
++3188	 -6.27177085	 -0.00096995	  0.00059462	  7.27080090	  0.99703564	  0.99843543  0.49303426
++3189	 -6.27177189	 -0.00096965	  0.00059443	  7.27080225	  0.99703657	  0.99843592  0.49303442
++3190	 -6.27177294	 -0.00096934	  0.00059425	  7.27080359	  0.99703750	  0.99843641  0.49303454
++3191	 -6.27177398	 -0.00096904	  0.00059406	  7.27080494	  0.99703843	  0.99843690  0.49303464
++3192	 -6.27177502	 -0.00096874	  0.00059388	  7.27080628	  0.99703936	  0.99843739  0.49303476
++3193	 -6.27177605	 -0.00096843	  0.00059369	  7.27080762	  0.99704028	  0.99843788  0.49303487
++3194	 -6.27177709	 -0.00096813	  0.00059350	  7.27080896	  0.99704121	  0.99843837  0.49303501
++3195	 -6.27177812	 -0.00096783	  0.00059332	  7.27081030	  0.99704213	  0.99843886  0.49303512
++3196	 -6.27177915	 -0.00096752	  0.00059313	  7.27081163	  0.99704306	  0.99843934  0.49303521
++3197	 -6.27178018	 -0.00096722	  0.00059295	  7.27081296	  0.99704398	  0.99843983  0.49303537
++3198	 -6.27178121	 -0.00096692	  0.00059276	  7.27081429	  0.99704491	  0.99844032  0.49303546
++3199	 -6.27178224	 -0.00096662	  0.00059258	  7.27081562	  0.99704583	  0.99844081  0.49303558
++3200	 -6.27178326	 -0.00096632	  0.00059239	  7.27081695	  0.99704675	  0.99844129  0.49303575
++3201	 -6.27178429	 -0.00096602	  0.00059221	  7.27081827	  0.99704768	  0.99844178  0.49303581
++3202	 -6.27178531	 -0.00096571	  0.00059202	  7.27081960	  0.99704860	  0.99844227  0.49303591
++3203	 -6.27178633	 -0.00096541	  0.00059184	  7.27082092	  0.99704952	  0.99844275  0.49303609
++3204	 -6.27178735	 -0.00096511	  0.00059165	  7.27082224	  0.99705044	  0.99844324  0.49303618
++3205	 -6.27178836	 -0.00096481	  0.00059147	  7.27082355	  0.99705136	  0.99844372  0.49303628
++3206	 -6.27178938	 -0.00096451	  0.00059128	  7.27082487	  0.99705228	  0.99844421  0.49303641
++3207	 -6.27179039	 -0.00096421	  0.00059110	  7.27082618	  0.99705320	  0.99844469  0.49303652
++3208	 -6.27179140	 -0.00096391	  0.00059091	  7.27082749	  0.99705412	  0.99844518  0.49303666
++3209	 -6.27179242	 -0.00096361	  0.00059073	  7.27082881	  0.99705503	  0.99844566  0.49303673
++3210	 -6.27179342	 -0.00096331	  0.00059055	  7.27083011	  0.99705595	  0.99844614  0.49303690
++3211	 -6.27179443	 -0.00096301	  0.00059036	  7.27083142	  0.99705687	  0.99844663  0.49303700
++3212	 -6.27179544	 -0.00096271	  0.00059018	  7.27083272	  0.99705778	  0.99844711  0.49303712
++3213	 -6.27179644	 -0.00096241	  0.00058999	  7.27083403	  0.99705870	  0.99844759  0.49303722
++3214	 -6.27179744	 -0.00096211	  0.00058981	  7.27083533	  0.99705961	  0.99844808  0.49303732
++3215	 -6.27179844	 -0.00096181	  0.00058963	  7.27083663	  0.99706053	  0.99844856  0.49303745
++3216	 -6.27179944	 -0.00096152	  0.00058944	  7.27083792	  0.99706144	  0.99844904  0.49303757
++3217	 -6.27180044	 -0.00096122	  0.00058926	  7.27083922	  0.99706235	  0.99844952  0.49303771
++3218	 -6.27180143	 -0.00096092	  0.00058908	  7.27084051	  0.99706327	  0.99845000  0.49303777
++3219	 -6.27180243	 -0.00096062	  0.00058890	  7.27084181	  0.99706418	  0.99845048  0.49303795
++3220	 -6.27180342	 -0.00096032	  0.00058871	  7.27084310	  0.99706509	  0.99845097  0.49303802
++3221	 -6.27180441	 -0.00096002	  0.00058853	  7.27084438	  0.99706600	  0.99845145  0.49303815
++3222	 -6.27180540	 -0.00095973	  0.00058835	  7.27084567	  0.99706691	  0.99845193  0.49303827
++3223	 -6.27180639	 -0.00095943	  0.00058816	  7.27084696	  0.99706782	  0.99845241  0.49303836
++3224	 -6.27180737	 -0.00095913	  0.00058798	  7.27084824	  0.99706873	  0.99845289  0.49303844
++3225	 -6.27180836	 -0.00095884	  0.00058780	  7.27084952	  0.99706964	  0.99845336  0.49303861
++3226	 -6.27180934	 -0.00095854	  0.00058762	  7.27085080	  0.99707055	  0.99845384  0.49303868
++3227	 -6.27181032	 -0.00095824	  0.00058744	  7.27085208	  0.99707145	  0.99845432  0.49303884
++3228	 -6.27181130	 -0.00095795	  0.00058725	  7.27085335	  0.99707236	  0.99845480  0.49303895
++3229	 -6.27181228	 -0.00095765	  0.00058707	  7.27085463	  0.99707327	  0.99845528  0.49303908
++3230	 -6.27181325	 -0.00095735	  0.00058689	  7.27085590	  0.99707417	  0.99845576  0.49303915
++3231	 -6.27181423	 -0.00095706	  0.00058671	  7.27085717	  0.99707508	  0.99845623  0.49303928
++3232	 -6.27181520	 -0.00095676	  0.00058653	  7.27085844	  0.99707598	  0.99845671  0.49303940
++3233	 -6.27181618	 -0.00095647	  0.00058635	  7.27085971	  0.99707689	  0.99845719  0.49303950
++3234	 -6.27181715	 -0.00095617	  0.00058616	  7.27086098	  0.99707779	  0.99845766  0.49303965
++3235	 -6.27181811	 -0.00095588	  0.00058598	  7.27086224	  0.99707869	  0.99845814  0.49303979
++3236	 -6.27181908	 -0.00095558	  0.00058580	  7.27086350	  0.99707960	  0.99845862  0.49303989
++3237	 -6.27182005	 -0.00095529	  0.00058562	  7.27086476	  0.99708050	  0.99845909  0.49303994
++3238	 -6.27182101	 -0.00095499	  0.00058544	  7.27086602	  0.99708140	  0.99845957  0.49304006
++3239	 -6.27182198	 -0.00095470	  0.00058526	  7.27086728	  0.99708230	  0.99846004  0.49304023
++3240	 -6.27182294	 -0.00095440	  0.00058508	  7.27086854	  0.99708320	  0.99846052  0.49304031
++3241	 -6.27182390	 -0.00095411	  0.00058490	  7.27086979	  0.99708410	  0.99846099  0.49304040
++3242	 -6.27182486	 -0.00095381	  0.00058472	  7.27087104	  0.99708500	  0.99846147  0.49304052
++3243	 -6.27182581	 -0.00095352	  0.00058454	  7.27087229	  0.99708590	  0.99846194  0.49304066
++3244	 -6.27182677	 -0.00095323	  0.00058436	  7.27087354	  0.99708680	  0.99846242  0.49304078
++3245	 -6.27182772	 -0.00095293	  0.00058418	  7.27087479	  0.99708769	  0.99846289  0.49304090
++3246	 -6.27182867	 -0.00095264	  0.00058400	  7.27087603	  0.99708859	  0.99846336  0.49304102
++3247	 -6.27182963	 -0.00095235	  0.00058382	  7.27087728	  0.99708949	  0.99846383  0.49304112
++3248	 -6.27183058	 -0.00095205	  0.00058364	  7.27087852	  0.99709038	  0.99846431  0.49304120
++3249	 -6.27183152	 -0.00095176	  0.00058346	  7.27087976	  0.99709128	  0.99846478  0.49304129
++3250	 -6.27183247	 -0.00095147	  0.00058328	  7.27088100	  0.99709217	  0.99846525  0.49304145
++3251	 -6.27183342	 -0.00095118	  0.00058310	  7.27088224	  0.99709307	  0.99846572  0.49304157
++3252	 -6.27183436	 -0.00095088	  0.00058292	  7.27088348	  0.99709396	  0.99846619  0.49304165
++3253	 -6.27183530	 -0.00095059	  0.00058274	  7.27088471	  0.99709485	  0.99846667  0.49304175
++3254	 -6.27183624	 -0.00095030	  0.00058256	  7.27088594	  0.99709575	  0.99846714  0.49304190
++3255	 -6.27183718	 -0.00095001	  0.00058238	  7.27088717	  0.99709664	  0.99846761  0.49304204
++3256	 -6.27183812	 -0.00094972	  0.00058221	  7.27088840	  0.99709753	  0.99846808  0.49304212
++3257	 -6.27183906	 -0.00094943	  0.00058203	  7.27088963	  0.99709842	  0.99846855  0.49304222
++3258	 -6.27183999	 -0.00094914	  0.00058185	  7.27089086	  0.99709931	  0.99846902  0.49304233
++3259	 -6.27184093	 -0.00094884	  0.00058167	  7.27089208	  0.99710020	  0.99846949  0.49304245
++3260	 -6.27184186	 -0.00094855	  0.00058149	  7.27089331	  0.99710109	  0.99846996  0.49304255
++3261	 -6.27184279	 -0.00094826	  0.00058131	  7.27089453	  0.99710198	  0.99847042  0.49304263
++3262	 -6.27184372	 -0.00094797	  0.00058113	  7.27089575	  0.99710287	  0.99847089  0.49304277
++3263	 -6.27184465	 -0.00094768	  0.00058096	  7.27089697	  0.99710375	  0.99847136  0.49304288
++3264	 -6.27184558	 -0.00094739	  0.00058078	  7.27089818	  0.99710464	  0.99847183  0.49304302
++3265	 -6.27184650	 -0.00094710	  0.00058060	  7.27089940	  0.99710553	  0.99847230  0.49304309
++3266	 -6.27184743	 -0.00094681	  0.00058042	  7.27090061	  0.99710641	  0.99847276  0.49304322
++3267	 -6.27184835	 -0.00094652	  0.00058025	  7.27090182	  0.99710730	  0.99847323  0.49304332
++3268	 -6.27184927	 -0.00094623	  0.00058007	  7.27090304	  0.99710818	  0.99847370  0.49304348
++3269	 -6.27185019	 -0.00094595	  0.00057989	  7.27090424	  0.99710907	  0.99847416  0.49304351
++3270	 -6.27185111	 -0.00094566	  0.00057971	  7.27090545	  0.99710995	  0.99847463  0.49304363
++3271	 -6.27185203	 -0.00094537	  0.00057954	  7.27090666	  0.99711083	  0.99847510  0.49304378
++3272	 -6.27185294	 -0.00094508	  0.00057936	  7.27090786	  0.99711172	  0.99847556  0.49304390
++3273	 -6.27185386	 -0.00094479	  0.00057918	  7.27090907	  0.99711260	  0.99847603  0.49304399
++3274	 -6.27185477	 -0.00094450	  0.00057901	  7.27091027	  0.99711348	  0.99847649  0.49304412
++3275	 -6.27185568	 -0.00094421	  0.00057883	  7.27091147	  0.99711436	  0.99847696  0.49304419
++3276	 -6.27185659	 -0.00094393	  0.00057865	  7.27091267	  0.99711524	  0.99847742  0.49304433
++3277	 -6.27185750	 -0.00094364	  0.00057848	  7.27091386	  0.99711612	  0.99847789  0.49304445
++3278	 -6.27185841	 -0.00094335	  0.00057830	  7.27091506	  0.99711700	  0.99847835  0.49304453
++3279	 -6.27185932	 -0.00094306	  0.00057812	  7.27091625	  0.99711788	  0.99847881  0.49304463
++3280	 -6.27186022	 -0.00094278	  0.00057795	  7.27091745	  0.99711876	  0.99847928  0.49304471
++3281	 -6.27186113	 -0.00094249	  0.00057777	  7.27091864	  0.99711964	  0.99847974  0.49304488
++3282	 -6.27186203	 -0.00094220	  0.00057759	  7.27091983	  0.99712051	  0.99848020  0.49304496
++3283	 -6.27186293	 -0.00094192	  0.00057742	  7.27092101	  0.99712139	  0.99848067  0.49304509
++3284	 -6.27186383	 -0.00094163	  0.00057724	  7.27092220	  0.99712227	  0.99848113  0.49304521
++3285	 -6.27186473	 -0.00094134	  0.00057707	  7.27092339	  0.99712314	  0.99848159  0.49304528
++3286	 -6.27186563	 -0.00094106	  0.00057689	  7.27092457	  0.99712402	  0.99848205  0.49304542
++3287	 -6.27186652	 -0.00094077	  0.00057672	  7.27092575	  0.99712489	  0.99848251  0.49304552
++3288	 -6.27186742	 -0.00094049	  0.00057654	  7.27092693	  0.99712577	  0.99848297  0.49304562
++3289	 -6.27186831	 -0.00094020	  0.00057636	  7.27092811	  0.99712664	  0.99848344  0.49304571
++3290	 -6.27186920	 -0.00093991	  0.00057619	  7.27092929	  0.99712751	  0.99848390  0.49304585
++3291	 -6.27187010	 -0.00093963	  0.00057601	  7.27093047	  0.99712839	  0.99848436  0.49304595
++3292	 -6.27187098	 -0.00093934	  0.00057584	  7.27093164	  0.99712926	  0.99848482  0.49304606
++3293	 -6.27187187	 -0.00093906	  0.00057567	  7.27093281	  0.99713013	  0.99848528  0.49304619
++3294	 -6.27187276	 -0.00093877	  0.00057549	  7.27093399	  0.99713100	  0.99848574  0.49304625
++3295	 -6.27187365	 -0.00093849	  0.00057532	  7.27093516	  0.99713187	  0.99848619  0.49304638
++3296	 -6.27187453	 -0.00093821	  0.00057514	  7.27093633	  0.99713274	  0.99848665  0.49304650
++3297	 -6.27187541	 -0.00093792	  0.00057497	  7.27093749	  0.99713361	  0.99848711  0.49304662
++3298	 -6.27187630	 -0.00093764	  0.00057479	  7.27093866	  0.99713448	  0.99848757  0.49304675
++3299	 -6.27187718	 -0.00093735	  0.00057462	  7.27093983	  0.99713535	  0.99848803  0.49304680
++3300	 -6.27187806	 -0.00093707	  0.00057444	  7.27094099	  0.99713622	  0.99848849  0.49304696
++3301	 -6.27187894	 -0.00093679	  0.00057427	  7.27094215	  0.99713708	  0.99848894  0.49304701
++3302	 -6.27187981	 -0.00093650	  0.00057410	  7.27094331	  0.99713795	  0.99848940  0.49304717
++3303	 -6.27188069	 -0.00093622	  0.00057392	  7.27094447	  0.99713882	  0.99848986  0.49304726
++3304	 -6.27188156	 -0.00093594	  0.00057375	  7.27094563	  0.99713968	  0.99849031  0.49304734
++3305	 -6.27188244	 -0.00093565	  0.00057358	  7.27094678	  0.99714055	  0.99849077  0.49304749
++3306	 -6.27188331	 -0.00093537	  0.00057340	  7.27094794	  0.99714141	  0.99849123  0.49304756
++3307	 -6.27188418	 -0.00093509	  0.00057323	  7.27094909	  0.99714228	  0.99849168  0.49304769
++3308	 -6.27188505	 -0.00093481	  0.00057306	  7.27095025	  0.99714314	  0.99849214  0.49304781
++3309	 -6.27188592	 -0.00093452	  0.00057288	  7.27095140	  0.99714400	  0.99849259  0.49304789
++3310	 -6.27188679	 -0.00093424	  0.00057271	  7.27095255	  0.99714486	  0.99849305  0.49304797
++3311	 -6.27188765	 -0.00093396	  0.00057254	  7.27095369	  0.99714573	  0.99849350  0.49304811
++3312	 -6.27188852	 -0.00093368	  0.00057236	  7.27095484	  0.99714659	  0.99849396  0.49304819
++3313	 -6.27188938	 -0.00093340	  0.00057219	  7.27095599	  0.99714745	  0.99849441  0.49304832
++3314	 -6.27189025	 -0.00093312	  0.00057202	  7.27095713	  0.99714831	  0.99849487  0.49304841
++3315	 -6.27189111	 -0.00093283	  0.00057185	  7.27095827	  0.99714917	  0.99849532  0.49304852
++3316	 -6.27189197	 -0.00093255	  0.00057167	  7.27095942	  0.99715003	  0.99849577  0.49304861
++3317	 -6.27189283	 -0.00093227	  0.00057150	  7.27096056	  0.99715089	  0.99849623  0.49304875
++3318	 -6.27189369	 -0.00093199	  0.00057133	  7.27096169	  0.99715175	  0.99849668  0.49304884
++3319	 -6.27189454	 -0.00093171	  0.00057116	  7.27096283	  0.99715260	  0.99849713  0.49304894
++3320	 -6.27189540	 -0.00093143	  0.00057098	  7.27096397	  0.99715346	  0.99849758  0.49304909
++3321	 -6.27189625	 -0.00093115	  0.00057081	  7.27096510	  0.99715432	  0.99849804  0.49304918
++3322	 -6.27189711	 -0.00093087	  0.00057064	  7.27096624	  0.99715517	  0.99849849  0.49304926
++3323	 -6.27189796	 -0.00093059	  0.00057047	  7.27096737	  0.99715603	  0.99849894  0.49304941
++3324	 -6.27189881	 -0.00093031	  0.00057030	  7.27096850	  0.99715689	  0.99849939  0.49304950
++3325	 -6.27189966	 -0.00093003	  0.00057013	  7.27096963	  0.99715774	  0.99849984  0.49304958
++3326	 -6.27190051	 -0.00092975	  0.00056995	  7.27097076	  0.99715860	  0.99850029  0.49304964
++3327	 -6.27190136	 -0.00092947	  0.00056978	  7.27097188	  0.99715945	  0.99850074  0.49304982
++3328	 -6.27190220	 -0.00092919	  0.00056961	  7.27097301	  0.99716030	  0.99850119  0.49304989
++3329	 -6.27190305	 -0.00092892	  0.00056944	  7.27097413	  0.99716115	  0.99850164  0.49305004
++3330	 -6.27190389	 -0.00092864	  0.00056927	  7.27097525	  0.99716201	  0.99850209  0.49305011
++3331	 -6.27190474	 -0.00092836	  0.00056910	  7.27097638	  0.99716286	  0.99850254  0.49305025
++3332	 -6.27190558	 -0.00092808	  0.00056893	  7.27097750	  0.99716371	  0.99850299  0.49305033
++3333	 -6.27190642	 -0.00092780	  0.00056876	  7.27097862	  0.99716456	  0.99850344  0.49305045
++3334	 -6.27190726	 -0.00092752	  0.00056859	  7.27097973	  0.99716541	  0.99850389  0.49305056
++3335	 -6.27190810	 -0.00092725	  0.00056842	  7.27098085	  0.99716626	  0.99850434  0.49305065
++3336	 -6.27190893	 -0.00092697	  0.00056825	  7.27098197	  0.99716711	  0.99850478  0.49305076
++3337	 -6.27190977	 -0.00092669	  0.00056808	  7.27098308	  0.99716796	  0.99850523  0.49305085
++3338	 -6.27191061	 -0.00092641	  0.00056791	  7.27098419	  0.99716881	  0.99850568  0.49305094
++3339	 -6.27191144	 -0.00092614	  0.00056774	  7.27098530	  0.99716965	  0.99850613  0.49305108
++3340	 -6.27191227	 -0.00092586	  0.00056757	  7.27098641	  0.99717050	  0.99850657  0.49305115
++3341	 -6.27191311	 -0.00092558	  0.00056740	  7.27098752	  0.99717135	  0.99850702  0.49305125
++3342	 -6.27191394	 -0.00092531	  0.00056723	  7.27098863	  0.99717219	  0.99850747  0.49305139
++3343	 -6.27191477	 -0.00092503	  0.00056706	  7.27098974	  0.99717304	  0.99850791  0.49305148
++3344	 -6.27191559	 -0.00092475	  0.00056689	  7.27099084	  0.99717389	  0.99850836  0.49305158
++3345	 -6.27191642	 -0.00092448	  0.00056672	  7.27099194	  0.99717473	  0.99850880  0.49305167
++3346	 -6.27191725	 -0.00092420	  0.00056655	  7.27099305	  0.99717557	  0.99850925  0.49305181
++3347	 -6.27191807	 -0.00092393	  0.00056638	  7.27099415	  0.99717642	  0.99850969  0.49305190
++3348	 -6.27191890	 -0.00092365	  0.00056621	  7.27099525	  0.99717726	  0.99851014  0.49305201
++3349	 -6.27191972	 -0.00092338	  0.00056604	  7.27099635	  0.99717810	  0.99851058  0.49305208
++3350	 -6.27192054	 -0.00092310	  0.00056587	  7.27099744	  0.99717895	  0.99851103  0.49305223
++3351	 -6.27192136	 -0.00092282	  0.00056570	  7.27099854	  0.99717979	  0.99851147  0.49305232
++3352	 -6.27192218	 -0.00092255	  0.00056553	  7.27099964	  0.99718063	  0.99851192  0.49305243
++3353	 -6.27192300	 -0.00092227	  0.00056537	  7.27100073	  0.99718147	  0.99851236  0.49305250
++3354	 -6.27192382	 -0.00092200	  0.00056520	  7.27100182	  0.99718231	  0.99851280  0.49305258
++3355	 -6.27192464	 -0.00092173	  0.00056503	  7.27100291	  0.99718315	  0.99851325  0.49305275
++3356	 -6.27192545	 -0.00092145	  0.00056486	  7.27100400	  0.99718399	  0.99851369  0.49305278
++3357	 -6.27192627	 -0.00092118	  0.00056469	  7.27100509	  0.99718483	  0.99851413  0.49305295
++3358	 -6.27192708	 -0.00092090	  0.00056452	  7.27100618	  0.99718566	  0.99851457  0.49305299
++3359	 -6.27192790	 -0.00092063	  0.00056436	  7.27100727	  0.99718650	  0.99851502  0.49305314
++3360	 -6.27192871	 -0.00092036	  0.00056419	  7.27100835	  0.99718734	  0.99851546  0.49305323
++3361	 -6.27192952	 -0.00092008	  0.00056402	  7.27100944	  0.99718818	  0.99851590  0.49305333
++3362	 -6.27193033	 -0.00091981	  0.00056385	  7.27101052	  0.99718901	  0.99851634  0.49305345
++3363	 -6.27193114	 -0.00091954	  0.00056368	  7.27101160	  0.99718985	  0.99851678  0.49305349
++3364	 -6.27193194	 -0.00091926	  0.00056352	  7.27101268	  0.99719068	  0.99851722  0.49305365
++3365	 -6.27193275	 -0.00091899	  0.00056335	  7.27101376	  0.99719152	  0.99851766  0.49305371
++3366	 -6.27193356	 -0.00091872	  0.00056318	  7.27101484	  0.99719235	  0.99851810  0.49305382
++3367	 -6.27193436	 -0.00091844	  0.00056301	  7.27101592	  0.99719318	  0.99851854  0.49305392
++3368	 -6.27193516	 -0.00091817	  0.00056285	  7.27101699	  0.99719402	  0.99851898  0.49305400
++3369	 -6.27193597	 -0.00091790	  0.00056268	  7.27101807	  0.99719485	  0.99851942  0.49305415
++3370	 -6.27193677	 -0.00091763	  0.00056251	  7.27101914	  0.99719568	  0.99851986  0.49305427
++3371	 -6.27193757	 -0.00091736	  0.00056235	  7.27102021	  0.99719651	  0.99852030  0.49305437
++3372	 -6.27193837	 -0.00091708	  0.00056218	  7.27102128	  0.99719735	  0.99852074  0.49305443
++3373	 -6.27193917	 -0.00091681	  0.00056201	  7.27102235	  0.99719818	  0.99852117  0.49305458
++3374	 -6.27193996	 -0.00091654	  0.00056185	  7.27102342	  0.99719901	  0.99852161  0.49305464
++3375	 -6.27194076	 -0.00091627	  0.00056168	  7.27102449	  0.99719984	  0.99852205  0.49305472
++3376	 -6.27194155	 -0.00091600	  0.00056151	  7.27102556	  0.99720066	  0.99852249  0.49305485
++3377	 -6.27194235	 -0.00091573	  0.00056135	  7.27102662	  0.99720149	  0.99852292  0.49305488
++3378	 -6.27194314	 -0.00091546	  0.00056118	  7.27102769	  0.99720232	  0.99852336  0.49305501
++3379	 -6.27194394	 -0.00091519	  0.00056102	  7.27102875	  0.99720315	  0.99852380  0.49305520
++3380	 -6.27194473	 -0.00091492	  0.00056085	  7.27102981	  0.99720398	  0.99852423  0.49305527
++3381	 -6.27194552	 -0.00091465	  0.00056068	  7.27103087	  0.99720480	  0.99852467  0.49305537
++3382	 -6.27194631	 -0.00091438	  0.00056052	  7.27103193	  0.99720563	  0.99852511  0.49305541
++3383	 -6.27194710	 -0.00091411	  0.00056035	  7.27103299	  0.99720646	  0.99852554  0.49305558
++3384	 -6.27194788	 -0.00091384	  0.00056019	  7.27103405	  0.99720728	  0.99852598  0.49305568
++3385	 -6.27194867	 -0.00091357	  0.00056002	  7.27103510	  0.99720811	  0.99852641  0.49305582
++3386	 -6.27194946	 -0.00091330	  0.00055986	  7.27103616	  0.99720893	  0.99852685  0.49305585
++3387	 -6.27195024	 -0.00091303	  0.00055969	  7.27103721	  0.99720975	  0.99852728  0.49305599
++3388	 -6.27195102	 -0.00091276	  0.00055953	  7.27103827	  0.99721058	  0.99852772  0.49305606
++3389	 -6.27195181	 -0.00091249	  0.00055936	  7.27103932	  0.99721140	  0.99852815  0.49305614
++3390	 -6.27195259	 -0.00091222	  0.00055920	  7.27104037	  0.99721222	  0.99852858  0.49305629
++3391	 -6.27195337	 -0.00091195	  0.00055903	  7.27104142	  0.99721304	  0.99852902  0.49305636
++3392	 -6.27195415	 -0.00091168	  0.00055887	  7.27104247	  0.99721387	  0.99852945  0.49305643
++3393	 -6.27195493	 -0.00091141	  0.00055870	  7.27104351	  0.99721469	  0.99852988  0.49305655
++3394	 -6.27195571	 -0.00091115	  0.00055854	  7.27104456	  0.99721551	  0.99853032  0.49305663
++3395	 -6.27195648	 -0.00091088	  0.00055837	  7.27104561	  0.99721633	  0.99853075  0.49305679
++3396	 -6.27195726	 -0.00091061	  0.00055821	  7.27104665	  0.99721715	  0.99853118  0.49305682
++3397	 -6.27195803	 -0.00091034	  0.00055804	  7.27104769	  0.99721796	  0.99853161  0.49305696
++3398	 -6.27195881	 -0.00091007	  0.00055788	  7.27104873	  0.99721878	  0.99853205  0.49305711
++3399	 -6.27195958	 -0.00090981	  0.00055771	  7.27104978	  0.99721960	  0.99853248  0.49305719
++3400	 -6.27196035	 -0.00090954	  0.00055755	  7.27105081	  0.99722042	  0.99853291  0.49305721
++3401	 -6.27196113	 -0.00090927	  0.00055739	  7.27105185	  0.99722124	  0.99853334  0.49305736
++3402	 -6.27196190	 -0.00090901	  0.00055722	  7.27105289	  0.99722205	  0.99853377  0.49305741
++3403	 -6.27196267	 -0.00090874	  0.00055706	  7.27105393	  0.99722287	  0.99853420  0.49305756
++3404	 -6.27196344	 -0.00090847	  0.00055690	  7.27105496	  0.99722368	  0.99853463  0.49305766
++3405	 -6.27196420	 -0.00090821	  0.00055673	  7.27105600	  0.99722450	  0.99853506  0.49305779
++3406	 -6.27196497	 -0.00090794	  0.00055657	  7.27105703	  0.99722531	  0.99853549  0.49305788
++3407	 -6.27196574	 -0.00090767	  0.00055641	  7.27105806	  0.99722613	  0.99853592  0.49305797
++3408	 -6.27196650	 -0.00090741	  0.00055624	  7.27105909	  0.99722694	  0.99853635  0.49305806
++3409	 -6.27196726	 -0.00090714	  0.00055608	  7.27106012	  0.99722776	  0.99853678  0.49305817
++3410	 -6.27196803	 -0.00090688	  0.00055592	  7.27106115	  0.99722857	  0.99853721  0.49305825
++3411	 -6.27196879	 -0.00090661	  0.00055575	  7.27106218	  0.99722938	  0.99853764  0.49305840
++3412	 -6.27196955	 -0.00090634	  0.00055559	  7.27106321	  0.99723019	  0.99853807  0.49305847
++3413	 -6.27197031	 -0.00090608	  0.00055543	  7.27106423	  0.99723100	  0.99853849  0.49305859
++3414	 -6.27197107	 -0.00090581	  0.00055526	  7.27106526	  0.99723181	  0.99853892  0.49305865
++3415	 -6.27197183	 -0.00090555	  0.00055510	  7.27106628	  0.99723262	  0.99853935  0.49305875
++3416	 -6.27197259	 -0.00090528	  0.00055494	  7.27106730	  0.99723343	  0.99853978  0.49305889
++3417	 -6.27197335	 -0.00090502	  0.00055478	  7.27106833	  0.99723424	  0.99854020  0.49305896
++3418	 -6.27197410	 -0.00090476	  0.00055461	  7.27106935	  0.99723505	  0.99854063  0.49305906
++3419	 -6.27197486	 -0.00090449	  0.00055445	  7.27107037	  0.99723586	  0.99854106  0.49305911
++3420	 -6.27197561	 -0.00090423	  0.00055429	  7.27107138	  0.99723667	  0.99854148  0.49305929
++3421	 -6.27197637	 -0.00090396	  0.00055413	  7.27107240	  0.99723748	  0.99854191  0.49305933
++3422	 -6.27197712	 -0.00090370	  0.00055397	  7.27107342	  0.99723828	  0.99854233  0.49305943
++3423	 -6.27197787	 -0.00090344	  0.00055380	  7.27107443	  0.99723909	  0.99854276  0.49305954
++3424	 -6.27197862	 -0.00090317	  0.00055364	  7.27107545	  0.99723990	  0.99854319  0.49305965
++3425	 -6.27197937	 -0.00090291	  0.00055348	  7.27107646	  0.99724070	  0.99854361  0.49305972
++3426	 -6.27198012	 -0.00090264	  0.00055332	  7.27107748	  0.99724151	  0.99854404  0.49305986
++3427	 -6.27198087	 -0.00090238	  0.00055316	  7.27107849	  0.99724231	  0.99854446  0.49305996
++3428	 -6.27198162	 -0.00090212	  0.00055300	  7.27107950	  0.99724312	  0.99854488  0.49306003
++3429	 -6.27198236	 -0.00090186	  0.00055284	  7.27108051	  0.99724392	  0.99854531  0.49306014
++3430	 -6.27198311	 -0.00090159	  0.00055267	  7.27108151	  0.99724472	  0.99854573  0.49306027
++3431	 -6.27198385	 -0.00090133	  0.00055251	  7.27108252	  0.99724553	  0.99854616  0.49306036
++3432	 -6.27198460	 -0.00090107	  0.00055235	  7.27108353	  0.99724633	  0.99854658  0.49306043
++3433	 -6.27198534	 -0.00090081	  0.00055219	  7.27108453	  0.99724713	  0.99854700  0.49306047
++3434	 -6.27198608	 -0.00090054	  0.00055203	  7.27108554	  0.99724793	  0.99854742  0.49306066
++3435	 -6.27198682	 -0.00090028	  0.00055187	  7.27108654	  0.99724873	  0.99854785  0.49306072
++3436	 -6.27198756	 -0.00090002	  0.00055171	  7.27108754	  0.99724953	  0.99854827  0.49306079
++3437	 -6.27198830	 -0.00089976	  0.00055155	  7.27108855	  0.99725033	  0.99854869  0.49306090
++3438	 -6.27198904	 -0.00089950	  0.00055139	  7.27108955	  0.99725113	  0.99854911  0.49306100
++3439	 -6.27198978	 -0.00089924	  0.00055123	  7.27109054	  0.99725193	  0.99854954  0.49306107
++3440	 -6.27199052	 -0.00089898	  0.00055107	  7.27109154	  0.99725273	  0.99854996  0.49306122
++3441	 -6.27199126	 -0.00089871	  0.00055091	  7.27109254	  0.99725353	  0.99855038  0.49306129
++3442	 -6.27199199	 -0.00089845	  0.00055075	  7.27109354	  0.99725433	  0.99855080  0.49306135
++3443	 -6.27199273	 -0.00089819	  0.00055059	  7.27109453	  0.99725512	  0.99855122  0.49306146
++3444	 -6.27199346	 -0.00089793	  0.00055043	  7.27109553	  0.99725592	  0.99855164  0.49306163
++3445	 -6.27199419	 -0.00089767	  0.00055027	  7.27109652	  0.99725672	  0.99855206  0.49306163
++3446	 -6.27199493	 -0.00089741	  0.00055011	  7.27109751	  0.99725751	  0.99855248  0.49306178
++3447	 -6.27199566	 -0.00089715	  0.00054995	  7.27109851	  0.99725831	  0.99855290  0.49306188
++3448	 -6.27199639	 -0.00089689	  0.00054979	  7.27109950	  0.99725910	  0.99855332  0.49306196
++3449	 -6.27199712	 -0.00089663	  0.00054963	  7.27110049	  0.99725990	  0.99855374  0.49306206
++3450	 -6.27199785	 -0.00089637	  0.00054947	  7.27110147	  0.99726069	  0.99855416  0.49306218
++3451	 -6.27199857	 -0.00089611	  0.00054931	  7.27110246	  0.99726149	  0.99855458  0.49306227
++3452	 -6.27199930	 -0.00089585	  0.00054915	  7.27110345	  0.99726228	  0.99855499  0.49306238
++3453	 -6.27200003	 -0.00089559	  0.00054899	  7.27110443	  0.99726307	  0.99855541  0.49306244
++3454	 -6.27200076	 -0.00089534	  0.00054883	  7.27110542	  0.99726386	  0.99855583  0.49306254
++3455	 -6.27200148	 -0.00089508	  0.00054868	  7.27110640	  0.99726465	  0.99855625  0.49306260
++3456	 -6.27200220	 -0.00089482	  0.00054852	  7.27110739	  0.99726545	  0.99855667  0.49306270
++3457	 -6.27200293	 -0.00089456	  0.00054836	  7.27110837	  0.99726624	  0.99855708  0.49306284
++3458	 -6.27200365	 -0.00089430	  0.00054820	  7.27110935	  0.99726703	  0.99855750  0.49306289
++3459	 -6.27200437	 -0.00089404	  0.00054804	  7.27111033	  0.99726782	  0.99855792  0.49306299
++3460	 -6.27200509	 -0.00089378	  0.00054788	  7.27111131	  0.99726861	  0.99855833  0.49306315
++3461	 -6.27200581	 -0.00089353	  0.00054772	  7.27111229	  0.99726940	  0.99855875  0.49306325
++3462	 -6.27200653	 -0.00089327	  0.00054757	  7.27111326	  0.99727018	  0.99855916  0.49306334
++3463	 -6.27200725	 -0.00089301	  0.00054741	  7.27111424	  0.99727097	  0.99855958  0.49306342
++3464	 -6.27200797	 -0.00089275	  0.00054725	  7.27111522	  0.99727176	  0.99856000  0.49306348
++3465	 -6.27200869	 -0.00089250	  0.00054709	  7.27111619	  0.99727255	  0.99856041  0.49306360
++3466	 -6.27200940	 -0.00089224	  0.00054693	  7.27111717	  0.99727333	  0.99856083  0.49306368
++3467	 -6.27201012	 -0.00089198	  0.00054678	  7.27111814	  0.99727412	  0.99856124  0.49306382
++3468	 -6.27201083	 -0.00089172	  0.00054662	  7.27111911	  0.99727491	  0.99856166  0.49306389
++3469	 -6.27201155	 -0.00089147	  0.00054646	  7.27112008	  0.99727569	  0.99856207  0.49306395
++3470	 -6.27201226	 -0.00089121	  0.00054630	  7.27112105	  0.99727648	  0.99856248  0.49306405
++3471	 -6.27201297	 -0.00089095	  0.00054615	  7.27112202	  0.99727726	  0.99856290  0.49306415
++3472	 -6.27201369	 -0.00089070	  0.00054599	  7.27112299	  0.99727804	  0.99856331  0.49306425
++3473	 -6.27201440	 -0.00089044	  0.00054583	  7.27112395	  0.99727883	  0.99856373  0.49306438
++3474	 -6.27201511	 -0.00089019	  0.00054568	  7.27112492	  0.99727961	  0.99856414  0.49306445
++3475	 -6.27201582	 -0.00088993	  0.00054552	  7.27112589	  0.99728039	  0.99856455  0.49306454
++3476	 -6.27201653	 -0.00088967	  0.00054536	  7.27112685	  0.99728118	  0.99856496  0.49306460
++3477	 -6.27201723	 -0.00088942	  0.00054520	  7.27112782	  0.99728196	  0.99856538  0.49306473
++3478	 -6.27201794	 -0.00088916	  0.00054505	  7.27112878	  0.99728274	  0.99856579  0.49306481
++3479	 -6.27201865	 -0.00088891	  0.00054489	  7.27112974	  0.99728352	  0.99856620  0.49306490
++3480	 -6.27201935	 -0.00088865	  0.00054473	  7.27113070	  0.99728430	  0.99856661  0.49306499
++3481	 -6.27202006	 -0.00088840	  0.00054458	  7.27113166	  0.99728508	  0.99856702  0.49306507
++3482	 -6.27202076	 -0.00088814	  0.00054442	  7.27113262	  0.99728586	  0.99856744  0.49306519
++3483	 -6.27202147	 -0.00088789	  0.00054427	  7.27113358	  0.99728664	  0.99856785  0.49306522
++3484	 -6.27202217	 -0.00088763	  0.00054411	  7.27113454	  0.99728742	  0.99856826  0.49306541
++3485	 -6.27202287	 -0.00088738	  0.00054395	  7.27113549	  0.99728820	  0.99856867  0.49306548
++3486	 -6.27202357	 -0.00088713	  0.00054380	  7.27113645	  0.99728897	  0.99856908  0.49306558
++3487	 -6.27202427	 -0.00088687	  0.00054364	  7.27113740	  0.99728975	  0.99856949  0.49306563
++3488	 -6.27202497	 -0.00088662	  0.00054349	  7.27113836	  0.99729053	  0.99856990  0.49306575
++3489	 -6.27202567	 -0.00088636	  0.00054333	  7.27113931	  0.99729130	  0.99857031  0.49306582
++3490	 -6.27202637	 -0.00088611	  0.00054317	  7.27114026	  0.99729208	  0.99857072  0.49306593
++3491	 -6.27202707	 -0.00088586	  0.00054302	  7.27114121	  0.99729285	  0.99857113  0.49306602
++3492	 -6.27202777	 -0.00088560	  0.00054286	  7.27114216	  0.99729363	  0.99857153  0.49306615
++3493	 -6.27202846	 -0.00088535	  0.00054271	  7.27114311	  0.99729440	  0.99857194  0.49306620
++3494	 -6.27202916	 -0.00088510	  0.00054255	  7.27114406	  0.99729518	  0.99857235  0.49306631
++3495	 -6.27202985	 -0.00088484	  0.00054240	  7.27114501	  0.99729595	  0.99857276  0.49306638
++3496	 -6.27203055	 -0.00088459	  0.00054224	  7.27114596	  0.99729673	  0.99857317  0.49306650
++3497	 -6.27203124	 -0.00088434	  0.00054209	  7.27114690	  0.99729750	  0.99857358  0.49306661
++3498	 -6.27203193	 -0.00088409	  0.00054193	  7.27114785	  0.99729827	  0.99857398  0.49306664
++3499	 -6.27203262	 -0.00088383	  0.00054178	  7.27114879	  0.99729904	  0.99857439  0.49306674
++3500	 -6.27203332	 -0.00088358	  0.00054162	  7.27114973	  0.99729981	  0.99857480  0.49306687
++3501	 -6.27203401	 -0.00088333	  0.00054147	  7.27115068	  0.99730059	  0.99857520  0.49306699
++3502	 -6.27203470	 -0.00088308	  0.00054131	  7.27115162	  0.99730136	  0.99857561  0.49306701
++3503	 -6.27203539	 -0.00088282	  0.00054116	  7.27115256	  0.99730213	  0.99857602  0.49306713
++3504	 -6.27203607	 -0.00088257	  0.00054100	  7.27115350	  0.99730290	  0.99857642  0.49306721
++3505	 -6.27203676	 -0.00088232	  0.00054085	  7.27115444	  0.99730366	  0.99857683  0.49306728
++3506	 -6.27203745	 -0.00088207	  0.00054069	  7.27115538	  0.99730443	  0.99857724  0.49306742
++3507	 -6.27203813	 -0.00088182	  0.00054054	  7.27115632	  0.99730520	  0.99857764  0.49306753
++3508	 -6.27203882	 -0.00088157	  0.00054039	  7.27115725	  0.99730597	  0.99857805  0.49306761
++3509	 -6.27203950	 -0.00088132	  0.00054023	  7.27115819	  0.99730674	  0.99857845  0.49306769
++3510	 -6.27204019	 -0.00088107	  0.00054008	  7.27115912	  0.99730750	  0.99857886  0.49306776
++3511	 -6.27204087	 -0.00088082	  0.00053992	  7.27116006	  0.99730827	  0.99857926  0.49306785
++3512	 -6.27204156	 -0.00088056	  0.00053977	  7.27116099	  0.99730904	  0.99857966  0.49306801
++3513	 -6.27204224	 -0.00088031	  0.00053962	  7.27116192	  0.99730980	  0.99858007  0.49306813
++3514	 -6.27204292	 -0.00088006	  0.00053946	  7.27116286	  0.99731057	  0.99858047  0.49306816
++3515	 -6.27204360	 -0.00087981	  0.00053931	  7.27116379	  0.99731133	  0.99858088  0.49306827
++3516	 -6.27204428	 -0.00087956	  0.00053916	  7.27116472	  0.99731210	  0.99858128  0.49306833
++3517	 -6.27204496	 -0.00087931	  0.00053900	  7.27116565	  0.99731286	  0.99858168  0.49306842
++3518	 -6.27204564	 -0.00087906	  0.00053885	  7.27116657	  0.99731363	  0.99858209  0.49306852
++3519	 -6.27204632	 -0.00087881	  0.00053870	  7.27116750	  0.99731439	  0.99858249  0.49306865
++3520	 -6.27204699	 -0.00087857	  0.00053854	  7.27116843	  0.99731515	  0.99858289  0.49306872
++3521	 -6.27204767	 -0.00087832	  0.00053839	  7.27116935	  0.99731591	  0.99858329  0.49306875
++3522	 -6.27204835	 -0.00087807	  0.00053824	  7.27117028	  0.99731668	  0.99858369  0.49306889
++3523	 -6.27204902	 -0.00087782	  0.00053809	  7.27117120	  0.99731744	  0.99858410  0.49306899
++3524	 -6.27204970	 -0.00087757	  0.00053793	  7.27117213	  0.99731820	  0.99858450  0.49306909
++3525	 -6.27205037	 -0.00087732	  0.00053778	  7.27117305	  0.99731896	  0.99858490  0.49306915
++3526	 -6.27205104	 -0.00087707	  0.00053763	  7.27117397	  0.99731972	  0.99858530  0.49306931
++3527	 -6.27205172	 -0.00087682	  0.00053748	  7.27117489	  0.99732048	  0.99858570  0.49306931
++3528	 -6.27205239	 -0.00087658	  0.00053732	  7.27117581	  0.99732124	  0.99858610  0.49306947
++3529	 -6.27205306	 -0.00087633	  0.00053717	  7.27117673	  0.99732200	  0.99858650  0.49306949
++3530	 -6.27205373	 -0.00087608	  0.00053702	  7.27117765	  0.99732276	  0.99858690  0.49306961
++3531	 -6.27205440	 -0.00087583	  0.00053687	  7.27117857	  0.99732351	  0.99858730  0.49306974
++3532	 -6.27205507	 -0.00087558	  0.00053671	  7.27117949	  0.99732427	  0.99858770  0.49306982
++3533	 -6.27205574	 -0.00087534	  0.00053656	  7.27118040	  0.99732503	  0.99858810  0.49306986
++3534	 -6.27205641	 -0.00087509	  0.00053641	  7.27118132	  0.99732579	  0.99858850  0.49306997
++3535	 -6.27205707	 -0.00087484	  0.00053626	  7.27118223	  0.99732654	  0.99858890  0.49307002
++3536	 -6.27205774	 -0.00087459	  0.00053611	  7.27118315	  0.99732730	  0.99858930  0.49307020
++3537	 -6.27205841	 -0.00087435	  0.00053596	  7.27118406	  0.99732805	  0.99858970  0.49307021
++3538	 -6.27205907	 -0.00087410	  0.00053580	  7.27118497	  0.99732881	  0.99859010  0.49307035
++3539	 -6.27205974	 -0.00087385	  0.00053565	  7.27118588	  0.99732956	  0.99859049  0.49307047
++3540	 -6.27206040	 -0.00087361	  0.00053550	  7.27118679	  0.99733032	  0.99859089  0.49307051
++3541	 -6.27206106	 -0.00087336	  0.00053535	  7.27118770	  0.99733107	  0.99859129  0.49307062
++3542	 -6.27206173	 -0.00087311	  0.00053520	  7.27118861	  0.99733182	  0.99859169  0.49307069
++3543	 -6.27206239	 -0.00087287	  0.00053505	  7.27118952	  0.99733258	  0.99859208  0.49307080
++3544	 -6.27206305	 -0.00087262	  0.00053490	  7.27119043	  0.99733333	  0.99859248  0.49307089
++3545	 -6.27206371	 -0.00087238	  0.00053475	  7.27119134	  0.99733408	  0.99859288  0.49307096
++3546	 -6.27206437	 -0.00087213	  0.00053460	  7.27119224	  0.99733483	  0.99859327  0.49307103
++3547	 -6.27206503	 -0.00087188	  0.00053445	  7.27119315	  0.99733558	  0.99859367  0.49307121
++3548	 -6.27206569	 -0.00087164	  0.00053429	  7.27119405	  0.99733633	  0.99859407  0.49307121
++3549	 -6.27206635	 -0.00087139	  0.00053414	  7.27119496	  0.99733709	  0.99859446  0.49307131
++3550	 -6.27206701	 -0.00087115	  0.00053399	  7.27119586	  0.99733783	  0.99859486  0.49307143
++3551	 -6.27206767	 -0.00087090	  0.00053384	  7.27119676	  0.99733858	  0.99859525  0.49307152
++3552	 -6.27206832	 -0.00087066	  0.00053369	  7.27119766	  0.99733933	  0.99859565  0.49307163
++3553	 -6.27206898	 -0.00087041	  0.00053354	  7.27119856	  0.99734008	  0.99859604  0.49307170
++3554	 -6.27206963	 -0.00087017	  0.00053339	  7.27119946	  0.99734083	  0.99859644  0.49307178
++3555	 -6.27207029	 -0.00086992	  0.00053324	  7.27120036	  0.99734158	  0.99859683  0.49307182
++3556	 -6.27207094	 -0.00086968	  0.00053309	  7.27120126	  0.99734233	  0.99859723  0.49307196
++3557	 -6.27207160	 -0.00086944	  0.00053294	  7.27120216	  0.99734307	  0.99859762  0.49307197
++3558	 -6.27207225	 -0.00086919	  0.00053279	  7.27120306	  0.99734382	  0.99859802  0.49307220
++3559	 -6.27207290	 -0.00086895	  0.00053264	  7.27120395	  0.99734457	  0.99859841  0.49307226
++3560	 -6.27207355	 -0.00086870	  0.00053249	  7.27120485	  0.99734531	  0.99859880  0.49307233
++3561	 -6.27207420	 -0.00086846	  0.00053234	  7.27120574	  0.99734606	  0.99859920  0.49307241
++3562	 -6.27207485	 -0.00086822	  0.00053219	  7.27120664	  0.99734680	  0.99859959  0.49307252
++3563	 -6.27207550	 -0.00086797	  0.00053205	  7.27120753	  0.99734755	  0.99859998  0.49307258
++3564	 -6.27207615	 -0.00086773	  0.00053190	  7.27120842	  0.99734829	  0.99860037  0.49307271
++3565	 -6.27207680	 -0.00086749	  0.00053175	  7.27120931	  0.99734903	  0.99860077  0.49307274
++3566	 -6.27207745	 -0.00086724	  0.00053160	  7.27121021	  0.99734978	  0.99860116  0.49307287
++3567	 -6.27207810	 -0.00086700	  0.00053145	  7.27121110	  0.99735052	  0.99860155  0.49307293
++3568	 -6.27207874	 -0.00086676	  0.00053130	  7.27121199	  0.99735126	  0.99860194  0.49307303
++3569	 -6.27207939	 -0.00086652	  0.00053115	  7.27121287	  0.99735200	  0.99860233  0.49307313
++3570	 -6.27208004	 -0.00086627	  0.00053100	  7.27121376	  0.99735275	  0.99860273  0.49307325
++3571	 -6.27208068	 -0.00086603	  0.00053085	  7.27121465	  0.99735349	  0.99860312  0.49307329
++3572	 -6.27208132	 -0.00086579	  0.00053070	  7.27121554	  0.99735423	  0.99860351  0.49307333
++3573	 -6.27208197	 -0.00086555	  0.00053056	  7.27121642	  0.99735497	  0.99860390  0.49307349
++3574	 -6.27208261	 -0.00086530	  0.00053041	  7.27121731	  0.99735571	  0.99860429  0.49307355
++3575	 -6.27208325	 -0.00086506	  0.00053026	  7.27121819	  0.99735645	  0.99860468  0.49307366
++3576	 -6.27208390	 -0.00086482	  0.00053011	  7.27121907	  0.99735719	  0.99860507  0.49307376
++3577	 -6.27208454	 -0.00086458	  0.00052996	  7.27121996	  0.99735792	  0.99860546  0.49307384
++3578	 -6.27208518	 -0.00086434	  0.00052981	  7.27122084	  0.99735866	  0.99860585  0.49307389
++3579	 -6.27208582	 -0.00086410	  0.00052967	  7.27122172	  0.99735940	  0.99860624  0.49307398
++3580	 -6.27208646	 -0.00086386	  0.00052952	  7.27122260	  0.99736014	  0.99860663  0.49307410
++3581	 -6.27208710	 -0.00086361	  0.00052937	  7.27122348	  0.99736088	  0.99860701  0.49307418
++3582	 -6.27208774	 -0.00086337	  0.00052922	  7.27122436	  0.99736161	  0.99860740  0.49307431
++3583	 -6.27208837	 -0.00086313	  0.00052908	  7.27122524	  0.99736235	  0.99860779  0.49307430
++3584	 -6.27208901	 -0.00086289	  0.00052893	  7.27122612	  0.99736308	  0.99860818  0.49307450
++3585	 -6.27208965	 -0.00086265	  0.00052878	  7.27122700	  0.99736382	  0.99860857  0.49307452
++3586	 -6.27209028	 -0.00086241	  0.00052863	  7.27122787	  0.99736455	  0.99860896  0.49307461
++3587	 -6.27209092	 -0.00086217	  0.00052849	  7.27122875	  0.99736529	  0.99860934  0.49307473
++3588	 -6.27209155	 -0.00086193	  0.00052834	  7.27122962	  0.99736602	  0.99860973  0.49307476
++3589	 -6.27209219	 -0.00086169	  0.00052819	  7.27123050	  0.99736676	  0.99861012  0.49307493
++3590	 -6.27209282	 -0.00086145	  0.00052804	  7.27123137	  0.99736749	  0.99861050  0.49307491
++3591	 -6.27209346	 -0.00086121	  0.00052790	  7.27123224	  0.99736822	  0.99861089  0.49307506
++3592	 -6.27209409	 -0.00086097	  0.00052775	  7.27123312	  0.99736896	  0.99861128  0.49307515
++3593	 -6.27209472	 -0.00086073	  0.00052760	  7.27123399	  0.99736969	  0.99861166  0.49307527
++3594	 -6.27209535	 -0.00086049	  0.00052746	  7.27123486	  0.99737042	  0.99861205  0.49307528
++3595	 -6.27209598	 -0.00086025	  0.00052731	  7.27123573	  0.99737115	  0.99861244  0.49307544
++3596	 -6.27209661	 -0.00086002	  0.00052716	  7.27123660	  0.99737188	  0.99861282  0.49307551
++3597	 -6.27209724	 -0.00085978	  0.00052702	  7.27123747	  0.99737261	  0.99861321  0.49307555
++3598	 -6.27209787	 -0.00085954	  0.00052687	  7.27123833	  0.99737334	  0.99861359  0.49307566
++3599	 -6.27209850	 -0.00085930	  0.00052672	  7.27123920	  0.99737407	  0.99861398  0.49307570
++3600	 -6.27209913	 -0.00085906	  0.00052658	  7.27124007	  0.99737480	  0.99861436  0.49307581
++3601	 -6.27209976	 -0.00085882	  0.00052643	  7.27124094	  0.99737553	  0.99861475  0.49307599
++3602	 -6.27210038	 -0.00085858	  0.00052628	  7.27124180	  0.99737626	  0.99861513  0.49307598
++3603	 -6.27210101	 -0.00085835	  0.00052614	  7.27124266	  0.99737699	  0.99861551  0.49307614
++3604	 -6.27210164	 -0.00085811	  0.00052599	  7.27124353	  0.99737771	  0.99861590  0.49307614
++3605	 -6.27210226	 -0.00085787	  0.00052585	  7.27124439	  0.99737844	  0.99861628  0.49307625
++3606	 -6.27210289	 -0.00085763	  0.00052570	  7.27124525	  0.99737917	  0.99861667  0.49307637
++3607	 -6.27210351	 -0.00085740	  0.00052555	  7.27124612	  0.99737989	  0.99861705  0.49307645
++3608	 -6.27210414	 -0.00085716	  0.00052541	  7.27124698	  0.99738062	  0.99861743  0.49307653
++3609	 -6.27210476	 -0.00085692	  0.00052526	  7.27124784	  0.99738135	  0.99861782  0.49307663
++3610	 -6.27210538	 -0.00085668	  0.00052512	  7.27124870	  0.99738207	  0.99861820  0.49307669
++3611	 -6.27210600	 -0.00085645	  0.00052497	  7.27124956	  0.99738280	  0.99861858  0.49307677
++3612	 -6.27210663	 -0.00085621	  0.00052483	  7.27125042	  0.99738352	  0.99861896  0.49307688
++3613	 -6.27210725	 -0.00085597	  0.00052468	  7.27125127	  0.99738424	  0.99861934  0.49307699
++3614	 -6.27210787	 -0.00085574	  0.00052454	  7.27125213	  0.99738497	  0.99861973  0.49307706
++3615	 -6.27210849	 -0.00085550	  0.00052439	  7.27125299	  0.99738569	  0.99862011  0.49307704
++3616	 -6.27210911	 -0.00085526	  0.00052425	  7.27125384	  0.99738641	  0.99862049  0.49307723
++3617	 -6.27210973	 -0.00085503	  0.00052410	  7.27125470	  0.99738714	  0.99862087  0.49307731
++3618	 -6.27211034	 -0.00085479	  0.00052396	  7.27125555	  0.99738786	  0.99862125  0.49307742
++3619	 -6.27211096	 -0.00085456	  0.00052381	  7.27125641	  0.99738858	  0.99862163  0.49307753
++3620	 -6.27211158	 -0.00085432	  0.00052367	  7.27125726	  0.99738930	  0.99862201  0.49307753
++3621	 -6.27211220	 -0.00085408	  0.00052352	  7.27125811	  0.99739002	  0.99862239  0.49307764
++3622	 -6.27211281	 -0.00085385	  0.00052338	  7.27125896	  0.99739074	  0.99862277  0.49307770
++3623	 -6.27211343	 -0.00085361	  0.00052323	  7.27125981	  0.99739146	  0.99862315  0.49307780
++3624	 -6.27211404	 -0.00085338	  0.00052309	  7.27126067	  0.99739218	  0.99862353  0.49307792
++3625	 -6.27211466	 -0.00085314	  0.00052295	  7.27126152	  0.99739290	  0.99862391  0.49307794
++3626	 -6.27211527	 -0.00085291	  0.00052280	  7.27126236	  0.99739362	  0.99862429  0.49307803
++3627	 -6.27211589	 -0.00085267	  0.00052266	  7.27126321	  0.99739434	  0.99862467  0.49307820
++3628	 -6.27211650	 -0.00085244	  0.00052251	  7.27126406	  0.99739506	  0.99862505  0.49307827
++3629	 -6.27211711	 -0.00085220	  0.00052237	  7.27126491	  0.99739577	  0.99862543  0.49307830
++3630	 -6.27211772	 -0.00085197	  0.00052222	  7.27126575	  0.99739649	  0.99862581  0.49307839
++3631	 -6.27211833	 -0.00085173	  0.00052208	  7.27126660	  0.99739721	  0.99862618  0.49307851
++3632	 -6.27211895	 -0.00085150	  0.00052194	  7.27126745	  0.99739792	  0.99862656  0.49307861
++3633	 -6.27211956	 -0.00085127	  0.00052179	  7.27126829	  0.99739864	  0.99862694  0.49307868
++3634	 -6.27212017	 -0.00085103	  0.00052165	  7.27126913	  0.99739936	  0.99862732  0.49307878
++3635	 -6.27212078	 -0.00085080	  0.00052151	  7.27126998	  0.99740007	  0.99862770  0.49307884
++3636	 -6.27212138	 -0.00085056	  0.00052136	  7.27127082	  0.99740079	  0.99862807  0.49307888
++3637	 -6.27212199	 -0.00085033	  0.00052122	  7.27127166	  0.99740150	  0.99862845  0.49307902
++3638	 -6.27212260	 -0.00085010	  0.00052108	  7.27127250	  0.99740221	  0.99862883  0.49307911
++3639	 -6.27212321	 -0.00084986	  0.00052093	  7.27127334	  0.99740293	  0.99862920  0.49307920
++3640	 -6.27212381	 -0.00084963	  0.00052079	  7.27127418	  0.99740364	  0.99862958  0.49307926
++3641	 -6.27212442	 -0.00084940	  0.00052065	  7.27127502	  0.99740435	  0.99862996  0.49307935
++3642	 -6.27212503	 -0.00084916	  0.00052050	  7.27127586	  0.99740507	  0.99863033  0.49307944
++3643	 -6.27212563	 -0.00084893	  0.00052036	  7.27127670	  0.99740578	  0.99863071  0.49307944
++3644	 -6.27212624	 -0.00084870	  0.00052022	  7.27127754	  0.99740649	  0.99863108  0.49307954
++3645	 -6.27212684	 -0.00084847	  0.00052008	  7.27127837	  0.99740720	  0.99863146  0.49307961
++3646	 -6.27212744	 -0.00084823	  0.00051993	  7.27127921	  0.99740791	  0.99863183  0.49307978
++3647	 -6.27212805	 -0.00084800	  0.00051979	  7.27128005	  0.99740862	  0.99863221  0.49307983
++3648	 -6.27212865	 -0.00084777	  0.00051965	  7.27128088	  0.99740933	  0.99863258  0.49307996
++3649	 -6.27212925	 -0.00084754	  0.00051951	  7.27128172	  0.99741004	  0.99863296  0.49308005
++3650	 -6.27212986	 -0.00084730	  0.00051936	  7.27128255	  0.99741075	  0.99863333  0.49308014
++3651	 -6.27213046	 -0.00084707	  0.00051922	  7.27128338	  0.99741146	  0.99863371  0.49308018
++3652	 -6.27213106	 -0.00084684	  0.00051908	  7.27128422	  0.99741217	  0.99863408  0.49308030
++3653	 -6.27213166	 -0.00084661	  0.00051894	  7.27128505	  0.99741288	  0.99863445  0.49308040
++3654	 -6.27213226	 -0.00084638	  0.00051879	  7.27128588	  0.99741359	  0.99863483  0.49308040
++3655	 -6.27213286	 -0.00084615	  0.00051865	  7.27128671	  0.99741429	  0.99863520  0.49308050
++3656	 -6.27213345	 -0.00084592	  0.00051851	  7.27128754	  0.99741500	  0.99863557  0.49308061
++3657	 -6.27213405	 -0.00084568	  0.00051837	  7.27128837	  0.99741571	  0.99863595  0.49308064
++3658	 -6.27213465	 -0.00084545	  0.00051823	  7.27128920	  0.99741641	  0.99863632  0.49308083
++3659	 -6.27213525	 -0.00084522	  0.00051809	  7.27129003	  0.99741712	  0.99863669  0.49308089
++3660	 -6.27213585	 -0.00084499	  0.00051794	  7.27129085	  0.99741783	  0.99863706  0.49308103
++3661	 -6.27213644	 -0.00084476	  0.00051780	  7.27129168	  0.99741853	  0.99863744  0.49308104
++3662	 -6.27213704	 -0.00084453	  0.00051766	  7.27129251	  0.99741924	  0.99863781  0.49308114
++3663	 -6.27213763	 -0.00084430	  0.00051752	  7.27129333	  0.99741994	  0.99863818  0.49308122
++3664	 -6.27213823	 -0.00084407	  0.00051738	  7.27129416	  0.99742064	  0.99863855  0.49308125
++3665	 -6.27213882	 -0.00084384	  0.00051724	  7.27129498	  0.99742135	  0.99863892  0.49308128
++3666	 -6.27213942	 -0.00084361	  0.00051710	  7.27129581	  0.99742205	  0.99863929  0.49308149
++3667	 -6.27214001	 -0.00084338	  0.00051696	  7.27129663	  0.99742275	  0.99863966  0.49308153
++3668	 -6.27214060	 -0.00084315	  0.00051681	  7.27129745	  0.99742346	  0.99864003  0.49308160
++3669	 -6.27214120	 -0.00084292	  0.00051667	  7.27129827	  0.99742416	  0.99864041  0.49308174
++3670	 -6.27214179	 -0.00084269	  0.00051653	  7.27129910	  0.99742486	  0.99864078  0.49308171
++3671	 -6.27214238	 -0.00084246	  0.00051639	  7.27129992	  0.99742556	  0.99864115  0.49308189
++3672	 -6.27214297	 -0.00084223	  0.00051625	  7.27130074	  0.99742626	  0.99864152  0.49308189
++3673	 -6.27214356	 -0.00084200	  0.00051611	  7.27130156	  0.99742696	  0.99864188  0.49308208
++3674	 -6.27214415	 -0.00084178	  0.00051597	  7.27130237	  0.99742766	  0.99864225  0.49308218
++3675	 -6.27214474	 -0.00084155	  0.00051583	  7.27130319	  0.99742836	  0.99864262  0.49308217
++3676	 -6.27214533	 -0.00084132	  0.00051569	  7.27130401	  0.99742906	  0.99864299  0.49308225
++3677	 -6.27214592	 -0.00084109	  0.00051555	  7.27130483	  0.99742976	  0.99864336  0.49308239
++3678	 -6.27214651	 -0.00084086	  0.00051541	  7.27130564	  0.99743046	  0.99864373  0.49308247
++3679	 -6.27214709	 -0.00084063	  0.00051527	  7.27130646	  0.99743116	  0.99864410  0.49308255
++3680	 -6.27214768	 -0.00084040	  0.00051513	  7.27130728	  0.99743186	  0.99864447  0.49308258
++3681	 -6.27214827	 -0.00084018	  0.00051499	  7.27130809	  0.99743255	  0.99864483  0.49308266
++3682	 -6.27214885	 -0.00083995	  0.00051485	  7.27130891	  0.99743325	  0.99864520  0.49308274
++3683	 -6.27214944	 -0.00083972	  0.00051471	  7.27130972	  0.99743395	  0.99864557  0.49308290
++3684	 -6.27215002	 -0.00083949	  0.00051457	  7.27131053	  0.99743464	  0.99864594  0.49308290
++3685	 -6.27215061	 -0.00083926	  0.00051443	  7.27131134	  0.99743534	  0.99864631  0.49308300
++3686	 -6.27215119	 -0.00083904	  0.00051429	  7.27131216	  0.99743604	  0.99864667  0.49308315
++3687	 -6.27215178	 -0.00083881	  0.00051415	  7.27131297	  0.99743673	  0.99864704  0.49308314
++3688	 -6.27215236	 -0.00083858	  0.00051401	  7.27131378	  0.99743743	  0.99864741  0.49308324
++3689	 -6.27215294	 -0.00083836	  0.00051387	  7.27131459	  0.99743812	  0.99864777  0.49308338
++3690	 -6.27215353	 -0.00083813	  0.00051373	  7.27131540	  0.99743881	  0.99864814  0.49308338
++3691	 -6.27215411	 -0.00083790	  0.00051359	  7.27131621	  0.99743951	  0.99864850  0.49308350
++3692	 -6.27215469	 -0.00083768	  0.00051345	  7.27131702	  0.99744020	  0.99864887  0.49308357
++3693	 -6.27215527	 -0.00083745	  0.00051332	  7.27131782	  0.99744089	  0.99864924  0.49308374
++3694	 -6.27215585	 -0.00083722	  0.00051318	  7.27131863	  0.99744159	  0.99864960  0.49308379
++3695	 -6.27215643	 -0.00083700	  0.00051304	  7.27131944	  0.99744228	  0.99864997  0.49308384
++3696	 -6.27215701	 -0.00083677	  0.00051290	  7.27132024	  0.99744297	  0.99865033  0.49308393
++3697	 -6.27215759	 -0.00083654	  0.00051276	  7.27132105	  0.99744366	  0.99865070  0.49308399
++3698	 -6.27215817	 -0.00083632	  0.00051262	  7.27132185	  0.99744435	  0.99865106  0.49308412
++3699	 -6.27215875	 -0.00083609	  0.00051248	  7.27132266	  0.99744504	  0.99865143  0.49308421
++3700	 -6.27215933	 -0.00083587	  0.00051234	  7.27132346	  0.99744574	  0.99865179  0.49308425
++3701	 -6.27215990	 -0.00083564	  0.00051221	  7.27132426	  0.99744643	  0.99865215  0.49308434
++3702	 -6.27216048	 -0.00083541	  0.00051207	  7.27132507	  0.99744711	  0.99865252  0.49308442
++3703	 -6.27216106	 -0.00083519	  0.00051193	  7.27132587	  0.99744780	  0.99865288  0.49308450
++3704	 -6.27216164	 -0.00083496	  0.00051179	  7.27132667	  0.99744849	  0.99865324  0.49308461
++3705	 -6.27216221	 -0.00083474	  0.00051165	  7.27132747	  0.99744918	  0.99865361  0.49308467
++3706	 -6.27216279	 -0.00083451	  0.00051151	  7.27132827	  0.99744987	  0.99865397  0.49308473
++3707	 -6.27216336	 -0.00083429	  0.00051138	  7.27132907	  0.99745056	  0.99865433  0.49308483
++3708	 -6.27216394	 -0.00083406	  0.00051124	  7.27132987	  0.99745124	  0.99865470  0.49308489
++3709	 -6.27216451	 -0.00083384	  0.00051110	  7.27133067	  0.99745193	  0.99865506  0.49308501
++3710	 -6.27216508	 -0.00083361	  0.00051096	  7.27133147	  0.99745262	  0.99865542  0.49308509
++3711	 -6.27216566	 -0.00083339	  0.00051083	  7.27133227	  0.99745330	  0.99865578  0.49308519
++3712	 -6.27216623	 -0.00083317	  0.00051069	  7.27133306	  0.99745399	  0.99865615  0.49308520
++3713	 -6.27216680	 -0.00083294	  0.00051055	  7.27133386	  0.99745468	  0.99865651  0.49308532
++3714	 -6.27216737	 -0.00083272	  0.00051041	  7.27133465	  0.99745536	  0.99865687  0.49308537
++3715	 -6.27216794	 -0.00083249	  0.00051028	  7.27133545	  0.99745605	  0.99865723  0.49308548
++3716	 -6.27216851	 -0.00083227	  0.00051014	  7.27133624	  0.99745673	  0.99865759  0.49308555
++3717	 -6.27216909	 -0.00083205	  0.00051000	  7.27133704	  0.99745741	  0.99865795  0.49308568
++3718	 -6.27216966	 -0.00083182	  0.00050986	  7.27133783	  0.99745810	  0.99865831  0.49308575
++3719	 -6.27217022	 -0.00083160	  0.00050973	  7.27133863	  0.99745878	  0.99865867  0.49308580
++3720	 -6.27217079	 -0.00083138	  0.00050959	  7.27133942	  0.99745946	  0.99865903  0.49308589
++3721	 -6.27217136	 -0.00083115	  0.00050945	  7.27134021	  0.99746015	  0.99865939  0.49308593
++3722	 -6.27217193	 -0.00083093	  0.00050932	  7.27134100	  0.99746083	  0.99865975  0.49308603
++3723	 -6.27217250	 -0.00083071	  0.00050918	  7.27134179	  0.99746151	  0.99866011  0.49308603
++3724	 -6.27217307	 -0.00083048	  0.00050904	  7.27134258	  0.99746219	  0.99866047  0.49308626
++3725	 -6.27217363	 -0.00083026	  0.00050891	  7.27134337	  0.99746287	  0.99866083  0.49308628
++3726	 -6.27217420	 -0.00083004	  0.00050877	  7.27134416	  0.99746355	  0.99866119  0.49308633
++3727	 -6.27217477	 -0.00082982	  0.00050863	  7.27134495	  0.99746424	  0.99866155  0.49308648
++3728	 -6.27217533	 -0.00082959	  0.00050850	  7.27134574	  0.99746492	  0.99866191  0.49308650
++3729	 -6.27217590	 -0.00082937	  0.00050836	  7.27134653	  0.99746559	  0.99866227  0.49308659
++3730	 -6.27217646	 -0.00082915	  0.00050822	  7.27134731	  0.99746627	  0.99866263  0.49308664
++3731	 -6.27217703	 -0.00082893	  0.00050809	  7.27134810	  0.99746695	  0.99866299  0.49308674
++3732	 -6.27217759	 -0.00082871	  0.00050795	  7.27134888	  0.99746763	  0.99866334  0.49308688
++3733	 -6.27217815	 -0.00082848	  0.00050782	  7.27134967	  0.99746831	  0.99866370  0.49308691
++3734	 -6.27217872	 -0.00082826	  0.00050768	  7.27135045	  0.99746899	  0.99866406  0.49308700
++3735	 -6.27217928	 -0.00082804	  0.00050754	  7.27135124	  0.99746967	  0.99866442  0.49308706
++3736	 -6.27217984	 -0.00082782	  0.00050741	  7.27135202	  0.99747034	  0.99866477  0.49308711
++3737	 -6.27218040	 -0.00082760	  0.00050727	  7.27135281	  0.99747102	  0.99866513  0.49308731
++3738	 -6.27218097	 -0.00082738	  0.00050714	  7.27135359	  0.99747170	  0.99866549  0.49308733
++3739	 -6.27218153	 -0.00082716	  0.00050700	  7.27135437	  0.99747237	  0.99866584  0.49308746
++3740	 -6.27218209	 -0.00082693	  0.00050686	  7.27135515	  0.99747305	  0.99866620  0.49308753
++3741	 -6.27218265	 -0.00082671	  0.00050673	  7.27135593	  0.99747372	  0.99866656  0.49308759
++3742	 -6.27218321	 -0.00082649	  0.00050659	  7.27135671	  0.99747440	  0.99866691  0.49308757
++3743	 -6.27218377	 -0.00082627	  0.00050646	  7.27135749	  0.99747507	  0.99866727  0.49308770
++3744	 -6.27218433	 -0.00082605	  0.00050632	  7.27135827	  0.99747575	  0.99866763  0.49308772
++3745	 -6.27218488	 -0.00082583	  0.00050619	  7.27135905	  0.99747642	  0.99866798  0.49308784
++3746	 -6.27218544	 -0.00082561	  0.00050605	  7.27135983	  0.99747709	  0.99866834  0.49308794
++3747	 -6.27218600	 -0.00082539	  0.00050592	  7.27136061	  0.99747777	  0.99866869  0.49308810
++3748	 -6.27218656	 -0.00082517	  0.00050578	  7.27136139	  0.99747844	  0.99866905  0.49308812
++3749	 -6.27218711	 -0.00082495	  0.00050565	  7.27136216	  0.99747911	  0.99866940  0.49308821
++3750	 -6.27218767	 -0.00082473	  0.00050551	  7.27136294	  0.99747978	  0.99866976  0.49308825
++3751	 -6.27218823	 -0.00082451	  0.00050538	  7.27136371	  0.99748046	  0.99867011  0.49308833
++3752	 -6.27218878	 -0.00082429	  0.00050524	  7.27136449	  0.99748113	  0.99867046  0.49308847
++3753	 -6.27218934	 -0.00082407	  0.00050511	  7.27136526	  0.99748180	  0.99867082  0.49308860
++3754	 -6.27218989	 -0.00082385	  0.00050497	  7.27136604	  0.99748247	  0.99867117  0.49308859
++3755	 -6.27219045	 -0.00082363	  0.00050484	  7.27136681	  0.99748314	  0.99867153  0.49308869
++3756	 -6.27219100	 -0.00082341	  0.00050471	  7.27136759	  0.99748381	  0.99867188  0.49308873
++3757	 -6.27219155	 -0.00082320	  0.00050457	  7.27136836	  0.99748448	  0.99867223  0.49308878
++3758	 -6.27219211	 -0.00082298	  0.00050444	  7.27136913	  0.99748515	  0.99867259  0.49308888
++3759	 -6.27219266	 -0.00082276	  0.00050430	  7.27136990	  0.99748582	  0.99867294  0.49308897
++3760	 -6.27219321	 -0.00082254	  0.00050417	  7.27137067	  0.99748649	  0.99867329  0.49308901
++3761	 -6.27219376	 -0.00082232	  0.00050403	  7.27137144	  0.99748715	  0.99867364  0.49308913
++3762	 -6.27219432	 -0.00082210	  0.00050390	  7.27137221	  0.99748782	  0.99867400  0.49308916
++3763	 -6.27219487	 -0.00082188	  0.00050377	  7.27137298	  0.99748849	  0.99867435  0.49308935
++3764	 -6.27219542	 -0.00082167	  0.00050363	  7.27137375	  0.99748916	  0.99867470  0.49308938
++3765	 -6.27219597	 -0.00082145	  0.00050350	  7.27137452	  0.99748982	  0.99867505  0.49308944
++3766	 -6.27219652	 -0.00082123	  0.00050337	  7.27137529	  0.99749049	  0.99867540  0.49308959
++3767	 -6.27219707	 -0.00082101	  0.00050323	  7.27137606	  0.99749116	  0.99867576  0.49308961
++3768	 -6.27219762	 -0.00082080	  0.00050310	  7.27137682	  0.99749182	  0.99867611  0.49308966
++3769	 -6.27219817	 -0.00082058	  0.00050296	  7.27137759	  0.99749249	  0.99867646  0.49308979
++3770	 -6.27219872	 -0.00082036	  0.00050283	  7.27137836	  0.99749315	  0.99867681  0.49308985
++3771	 -6.27219926	 -0.00082014	  0.00050270	  7.27137912	  0.99749382	  0.99867716  0.49308989
++3772	 -6.27219981	 -0.00081993	  0.00050256	  7.27137989	  0.99749448	  0.99867751  0.49309002
++3773	 -6.27220036	 -0.00081971	  0.00050243	  7.27138065	  0.99749514	  0.99867786  0.49309006
++3774	 -6.27220091	 -0.00081949	  0.00050230	  7.27138141	  0.99749581	  0.99867821  0.49309016
++3775	 -6.27220145	 -0.00081927	  0.00050216	  7.27138218	  0.99749647	  0.99867856  0.49309022
++3776	 -6.27220200	 -0.00081906	  0.00050203	  7.27138294	  0.99749713	  0.99867891  0.49309028
++3777	 -6.27220254	 -0.00081884	  0.00050190	  7.27138370	  0.99749780	  0.99867926  0.49309037
++3778	 -6.27220309	 -0.00081862	  0.00050177	  7.27138446	  0.99749846	  0.99867961  0.49309053
++3779	 -6.27220363	 -0.00081841	  0.00050163	  7.27138523	  0.99749912	  0.99867996  0.49309055
++3780	 -6.27220418	 -0.00081819	  0.00050150	  7.27138599	  0.99749978	  0.99868031  0.49309069
++3781	 -6.27220472	 -0.00081798	  0.00050137	  7.27138675	  0.99750044	  0.99868066  0.49309070
++3782	 -6.27220527	 -0.00081776	  0.00050124	  7.27138751	  0.99750110	  0.99868100  0.49309083
++3783	 -6.27220581	 -0.00081754	  0.00050110	  7.27138827	  0.99750176	  0.99868135  0.49309090
++3784	 -6.27220635	 -0.00081733	  0.00050097	  7.27138902	  0.99750242	  0.99868170  0.49309098
++3785	 -6.27220690	 -0.00081711	  0.00050084	  7.27138978	  0.99750308	  0.99868205  0.49309101
++3786	 -6.27220744	 -0.00081690	  0.00050071	  7.27139054	  0.99750374	  0.99868240  0.49309113
++3787	 -6.27220798	 -0.00081668	  0.00050057	  7.27139130	  0.99750440	  0.99868275  0.49309116
++3788	 -6.27220852	 -0.00081647	  0.00050044	  7.27139205	  0.99750506	  0.99868309  0.49309123
++3789	 -6.27220906	 -0.00081625	  0.00050031	  7.27139281	  0.99750572	  0.99868344  0.49309142
++3790	 -6.27220960	 -0.00081604	  0.00050018	  7.27139357	  0.99750638	  0.99868379  0.49309142
++3791	 -6.27221014	 -0.00081582	  0.00050005	  7.27139432	  0.99750703	  0.99868413  0.49309146
++3792	 -6.27221068	 -0.00081561	  0.00049991	  7.27139508	  0.99750769	  0.99868448  0.49309158
++3793	 -6.27221122	 -0.00081539	  0.00049978	  7.27139583	  0.99750835	  0.99868483  0.49309166
++3794	 -6.27221176	 -0.00081518	  0.00049965	  7.27139659	  0.99750901	  0.99868517  0.49309171
++3795	 -6.27221230	 -0.00081496	  0.00049952	  7.27139734	  0.99750966	  0.99868552  0.49309183
++3796	 -6.27221284	 -0.00081475	  0.00049939	  7.27139809	  0.99751032	  0.99868587  0.49309186
++3797	 -6.27221338	 -0.00081453	  0.00049926	  7.27139884	  0.99751097	  0.99868621  0.49309196
++3798	 -6.27221391	 -0.00081432	  0.00049912	  7.27139960	  0.99751163	  0.99868656  0.49309197
++3799	 -6.27221445	 -0.00081410	  0.00049899	  7.27140035	  0.99751228	  0.99868690  0.49309212
++3800	 -6.27221499	 -0.00081389	  0.00049886	  7.27140110	  0.99751294	  0.99868725  0.49309226
++3801	 -6.27221552	 -0.00081368	  0.00049873	  7.27140185	  0.99751359	  0.99868759  0.49309233
++3802	 -6.27221606	 -0.00081346	  0.00049860	  7.27140260	  0.99751425	  0.99868794  0.49309240
++3803	 -6.27221660	 -0.00081325	  0.00049847	  7.27140335	  0.99751490	  0.99868828  0.49309241
++3804	 -6.27221713	 -0.00081303	  0.00049834	  7.27140410	  0.99751555	  0.99868863  0.49309250
++3805	 -6.27221767	 -0.00081282	  0.00049821	  7.27140485	  0.99751621	  0.99868897  0.49309252
++3806	 -6.27221820	 -0.00081261	  0.00049807	  7.27140559	  0.99751686	  0.99868932  0.49309262
++3807	 -6.27221874	 -0.00081239	  0.00049794	  7.27140634	  0.99751751	  0.99868966  0.49309274
++3808	 -6.27221927	 -0.00081218	  0.00049781	  7.27140709	  0.99751816	  0.99869001  0.49309277
++3809	 -6.27221980	 -0.00081197	  0.00049768	  7.27140784	  0.99751881	  0.99869035  0.49309287
++3810	 -6.27222034	 -0.00081176	  0.00049755	  7.27140858	  0.99751946	  0.99869069  0.49309295
++3811	 -6.27222087	 -0.00081154	  0.00049742	  7.27140933	  0.99752012	  0.99869104  0.49309305
++3812	 -6.27222140	 -0.00081133	  0.00049729	  7.27141007	  0.99752077	  0.99869138  0.49309311
++3813	 -6.27222193	 -0.00081112	  0.00049716	  7.27141082	  0.99752142	  0.99869172  0.49309317
++3814	 -6.27222247	 -0.00081090	  0.00049703	  7.27141156	  0.99752207	  0.99869207  0.49309328
++3815	 -6.27222300	 -0.00081069	  0.00049690	  7.27141230	  0.99752271	  0.99869241  0.49309332
++3816	 -6.27222353	 -0.00081048	  0.00049677	  7.27141305	  0.99752336	  0.99869275  0.49309344
++3817	 -6.27222406	 -0.00081027	  0.00049664	  7.27141379	  0.99752401	  0.99869309  0.49309341
++3818	 -6.27222459	 -0.00081006	  0.00049651	  7.27141453	  0.99752466	  0.99869344  0.49309354
++3819	 -6.27222512	 -0.00080984	  0.00049638	  7.27141527	  0.99752531	  0.99869378  0.49309361
++3820	 -6.27222565	 -0.00080963	  0.00049625	  7.27141602	  0.99752596	  0.99869412  0.49309375
++3821	 -6.27222618	 -0.00080942	  0.00049612	  7.27141676	  0.99752660	  0.99869446  0.49309380
++3822	 -6.27222671	 -0.00080921	  0.00049599	  7.27141750	  0.99752725	  0.99869480  0.49309382
++3823	 -6.27222723	 -0.00080900	  0.00049586	  7.27141824	  0.99752790	  0.99869514  0.49309395
++3824	 -6.27222776	 -0.00080879	  0.00049573	  7.27141898	  0.99752854	  0.99869548  0.49309403
++3825	 -6.27222829	 -0.00080857	  0.00049560	  7.27141972	  0.99752919	  0.99869582  0.49309409
++3826	 -6.27222882	 -0.00080836	  0.00049547	  7.27142045	  0.99752984	  0.99869617  0.49309410
++3827	 -6.27222934	 -0.00080815	  0.00049534	  7.27142119	  0.99753048	  0.99869651  0.49309425
++3828	 -6.27222987	 -0.00080794	  0.00049521	  7.27142193	  0.99753113	  0.99869685  0.49309434
++3829	 -6.27223040	 -0.00080773	  0.00049508	  7.27142267	  0.99753177	  0.99869719  0.49309443
++3830	 -6.27223092	 -0.00080752	  0.00049495	  7.27142340	  0.99753241	  0.99869753  0.49309447
++3831	 -6.27223145	 -0.00080731	  0.00049482	  7.27142414	  0.99753306	  0.99869787  0.49309457
++3832	 -6.27223197	 -0.00080710	  0.00049469	  7.27142488	  0.99753370	  0.99869821  0.49309459
++3833	 -6.27223250	 -0.00080689	  0.00049457	  7.27142561	  0.99753435	  0.99869855  0.49309463
++3834	 -6.27223302	 -0.00080668	  0.00049444	  7.27142635	  0.99753499	  0.99869888  0.49309473
++3835	 -6.27223355	 -0.00080647	  0.00049431	  7.27142708	  0.99753563	  0.99869922  0.49309486
++3836	 -6.27223407	 -0.00080626	  0.00049418	  7.27142781	  0.99753627	  0.99869956  0.49309496
++3837	 -6.27223460	 -0.00080605	  0.00049405	  7.27142855	  0.99753692	  0.99869990  0.49309501
++3838	 -6.27223512	 -0.00080584	  0.00049392	  7.27142928	  0.99753756	  0.99870024  0.49309506
++3839	 -6.27223564	 -0.00080563	  0.00049379	  7.27143001	  0.99753820	  0.99870058  0.49309510
++3840	 -6.27223616	 -0.00080542	  0.00049366	  7.27143074	  0.99753884	  0.99870092  0.49309524
++3841	 -6.27223669	 -0.00080521	  0.00049354	  7.27143148	  0.99753948	  0.99870125  0.49309538
++3842	 -6.27223721	 -0.00080500	  0.00049341	  7.27143221	  0.99754012	  0.99870159  0.49309541
++3843	 -6.27223773	 -0.00080479	  0.00049328	  7.27143294	  0.99754076	  0.99870193  0.49309547
++3844	 -6.27223825	 -0.00080458	  0.00049315	  7.27143367	  0.99754140	  0.99870227  0.49309552
++3845	 -6.27223877	 -0.00080437	  0.00049302	  7.27143440	  0.99754204	  0.99870260  0.49309562
++3846	 -6.27223929	 -0.00080416	  0.00049289	  7.27143513	  0.99754268	  0.99870294  0.49309564
++3847	 -6.27223981	 -0.00080395	  0.00049277	  7.27143586	  0.99754332	  0.99870328  0.49309575
++3848	 -6.27224033	 -0.00080375	  0.00049264	  7.27143658	  0.99754395	  0.99870362  0.49309585
++3849	 -6.27224085	 -0.00080354	  0.00049251	  7.27143731	  0.99754459	  0.99870395  0.49309591
++3850	 -6.27224137	 -0.00080333	  0.00049238	  7.27143804	  0.99754523	  0.99870429  0.49309595
++3851	 -6.27224189	 -0.00080312	  0.00049225	  7.27143877	  0.99754587	  0.99870463  0.49309610
++3852	 -6.27224241	 -0.00080291	  0.00049213	  7.27143949	  0.99754650	  0.99870496  0.49309609
++3853	 -6.27224292	 -0.00080270	  0.00049200	  7.27144022	  0.99754714	  0.99870530  0.49309625
++3854	 -6.27224344	 -0.00080250	  0.00049187	  7.27144094	  0.99754778	  0.99870563  0.49309625
++3855	 -6.27224396	 -0.00080229	  0.00049174	  7.27144167	  0.99754841	  0.99870597  0.49309632
++3856	 -6.27224447	 -0.00080208	  0.00049162	  7.27144239	  0.99754905	  0.99870630  0.49309639
++3857	 -6.27224499	 -0.00080187	  0.00049149	  7.27144312	  0.99754968	  0.99870664  0.49309648
++3858	 -6.27224551	 -0.00080166	  0.00049136	  7.27144384	  0.99755032	  0.99870697  0.49309655
++3859	 -6.27224602	 -0.00080146	  0.00049123	  7.27144457	  0.99755095	  0.99870731  0.49309667
++3860	 -6.27224654	 -0.00080125	  0.00049111	  7.27144529	  0.99755159	  0.99870764  0.49309666
++3861	 -6.27224705	 -0.00080104	  0.00049098	  7.27144601	  0.99755222	  0.99870798  0.49309679
++3862	 -6.27224757	 -0.00080084	  0.00049085	  7.27144673	  0.99755286	  0.99870831  0.49309687
++3863	 -6.27224808	 -0.00080063	  0.00049072	  7.27144746	  0.99755349	  0.99870865  0.49309695
++3864	 -6.27224860	 -0.00080042	  0.00049060	  7.27144818	  0.99755412	  0.99870898  0.49309704
++3865	 -6.27224911	 -0.00080021	  0.00049047	  7.27144890	  0.99755476	  0.99870932  0.49309706
++3866	 -6.27224962	 -0.00080001	  0.00049034	  7.27144962	  0.99755539	  0.99870965  0.49309713
++3867	 -6.27225014	 -0.00079980	  0.00049022	  7.27145034	  0.99755602	  0.99870998  0.49309722
++3868	 -6.27225065	 -0.00079959	  0.00049009	  7.27145106	  0.99755665	  0.99871032  0.49309728
++3869	 -6.27225116	 -0.00079939	  0.00048996	  7.27145178	  0.99755728	  0.99871065  0.49309738
++3870	 -6.27225168	 -0.00079918	  0.00048984	  7.27145249	  0.99755791	  0.99871098  0.49309747
++3871	 -6.27225219	 -0.00079897	  0.00048971	  7.27145321	  0.99755854	  0.99871131  0.49309753
++3872	 -6.27225270	 -0.00079877	  0.00048958	  7.27145393	  0.99755918	  0.99871165  0.49309771
++3873	 -6.27225321	 -0.00079856	  0.00048946	  7.27145465	  0.99755981	  0.99871198  0.49309765
++3874	 -6.27225372	 -0.00079836	  0.00048933	  7.27145536	  0.99756044	  0.99871231  0.49309782
++3875	 -6.27225423	 -0.00079815	  0.00048921	  7.27145608	  0.99756106	  0.99871264  0.49309784
++3876	 -6.27225474	 -0.00079795	  0.00048908	  7.27145680	  0.99756169	  0.99871298  0.49309793
++3877	 -6.27225525	 -0.00079774	  0.00048895	  7.27145751	  0.99756232	  0.99871331  0.49309799
++3878	 -6.27225576	 -0.00079753	  0.00048883	  7.27145823	  0.99756295	  0.99871364  0.49309812
++3879	 -6.27225627	 -0.00079733	  0.00048870	  7.27145894	  0.99756358	  0.99871397  0.49309805
++3880	 -6.27225678	 -0.00079712	  0.00048857	  7.27145966	  0.99756421	  0.99871430  0.49309821
++3881	 -6.27225729	 -0.00079692	  0.00048845	  7.27146037	  0.99756483	  0.99871463  0.49309831
++3882	 -6.27225780	 -0.00079671	  0.00048832	  7.27146108	  0.99756546	  0.99871496  0.49309836
++3883	 -6.27225830	 -0.00079651	  0.00048820	  7.27146180	  0.99756609	  0.99871529  0.49309842
++3884	 -6.27225881	 -0.00079630	  0.00048807	  7.27146251	  0.99756671	  0.99871563  0.49309856
++3885	 -6.27225932	 -0.00079610	  0.00048795	  7.27146322	  0.99756734	  0.99871596  0.49309861
++3886	 -6.27225983	 -0.00079589	  0.00048782	  7.27146393	  0.99756797	  0.99871629  0.49309861
++3887	 -6.27226033	 -0.00079569	  0.00048769	  7.27146464	  0.99756859	  0.99871662  0.49309873
++3888	 -6.27226084	 -0.00079548	  0.00048757	  7.27146535	  0.99756922	  0.99871695  0.49309877
++3889	 -6.27226134	 -0.00079528	  0.00048744	  7.27146606	  0.99756984	  0.99871728  0.49309886
++3890	 -6.27226185	 -0.00079508	  0.00048732	  7.27146677	  0.99757047	  0.99871761  0.49309893
++3891	 -6.27226235	 -0.00079487	  0.00048719	  7.27146748	  0.99757109	  0.99871793  0.49309902
++3892	 -6.27226286	 -0.00079467	  0.00048707	  7.27146819	  0.99757172	  0.99871826  0.49309912
++3893	 -6.27226336	 -0.00079446	  0.00048694	  7.27146890	  0.99757234	  0.99871859  0.49309921
++3894	 -6.27226387	 -0.00079426	  0.00048682	  7.27146961	  0.99757296	  0.99871892  0.49309921
++3895	 -6.27226437	 -0.00079406	  0.00048669	  7.27147032	  0.99757359	  0.99871925  0.49309928
++3896	 -6.27226488	 -0.00079385	  0.00048657	  7.27147102	  0.99757421	  0.99871958  0.49309939
++3897	 -6.27226538	 -0.00079365	  0.00048644	  7.27147173	  0.99757483	  0.99871991  0.49309945
++3898	 -6.27226588	 -0.00079345	  0.00048632	  7.27147244	  0.99757545	  0.99872024  0.49309958
++3899	 -6.27226639	 -0.00079324	  0.00048619	  7.27147314	  0.99757607	  0.99872056  0.49309958
++3900	 -6.27226689	 -0.00079304	  0.00048607	  7.27147385	  0.99757670	  0.99872089  0.49309961
++3901	 -6.27226739	 -0.00079284	  0.00048594	  7.27147455	  0.99757732	  0.99872122  0.49309967
++3902	 -6.27226789	 -0.00079263	  0.00048582	  7.27147526	  0.99757794	  0.99872155  0.49309986
++3903	 -6.27226839	 -0.00079243	  0.00048570	  7.27147596	  0.99757856	  0.99872187  0.49309996
++3904	 -6.27226889	 -0.00079223	  0.00048557	  7.27147667	  0.99757918	  0.99872220  0.49309999
++3905	 -6.27226939	 -0.00079202	  0.00048545	  7.27147737	  0.99757980	  0.99872253  0.49310010
++3906	 -6.27226990	 -0.00079182	  0.00048532	  7.27147807	  0.99758042	  0.99872286  0.49310015
++3907	 -6.27227040	 -0.00079162	  0.00048520	  7.27147878	  0.99758104	  0.99872318  0.49310022
++3908	 -6.27227090	 -0.00079142	  0.00048507	  7.27147948	  0.99758166	  0.99872351  0.49310023
++3909	 -6.27227139	 -0.00079121	  0.00048495	  7.27148018	  0.99758227	  0.99872384  0.49310029
++3910	 -6.27227189	 -0.00079101	  0.00048483	  7.27148088	  0.99758289	  0.99872416  0.49310038
++3911	 -6.27227239	 -0.00079081	  0.00048470	  7.27148158	  0.99758351	  0.99872449  0.49310046
++3912	 -6.27227289	 -0.00079061	  0.00048458	  7.27148228	  0.99758413	  0.99872481  0.49310052
++3913	 -6.27227339	 -0.00079041	  0.00048445	  7.27148298	  0.99758474	  0.99872514  0.49310058
++3914	 -6.27227389	 -0.00079020	  0.00048433	  7.27148368	  0.99758536	  0.99872546  0.49310064
++3915	 -6.27227439	 -0.00079000	  0.00048421	  7.27148438	  0.99758598	  0.99872579  0.49310077
++3916	 -6.27227488	 -0.00078980	  0.00048408	  7.27148508	  0.99758659	  0.99872612  0.49310085
++3917	 -6.27227538	 -0.00078960	  0.00048396	  7.27148578	  0.99758721	  0.99872644  0.49310092
++3918	 -6.27227588	 -0.00078940	  0.00048384	  7.27148648	  0.99758783	  0.99872677  0.49310100
++3919	 -6.27227637	 -0.00078920	  0.00048371	  7.27148717	  0.99758844	  0.99872709  0.49310112
++3920	 -6.27227687	 -0.00078900	  0.00048359	  7.27148787	  0.99758906	  0.99872741  0.49310113
++3921	 -6.27227736	 -0.00078880	  0.00048347	  7.27148857	  0.99758967	  0.99872774  0.49310122
++3922	 -6.27227786	 -0.00078859	  0.00048334	  7.27148927	  0.99759029	  0.99872806  0.49310127
++3923	 -6.27227836	 -0.00078839	  0.00048322	  7.27148996	  0.99759090	  0.99872839  0.49310130
++3924	 -6.27227885	 -0.00078819	  0.00048310	  7.27149066	  0.99759151	  0.99872871  0.49310141
++3925	 -6.27227934	 -0.00078799	  0.00048297	  7.27149135	  0.99759213	  0.99872903  0.49310152
++3926	 -6.27227984	 -0.00078779	  0.00048285	  7.27149205	  0.99759274	  0.99872936  0.49310152
++3927	 -6.27228033	 -0.00078759	  0.00048273	  7.27149274	  0.99759335	  0.99872968  0.49310163
++3928	 -6.27228083	 -0.00078739	  0.00048260	  7.27149344	  0.99759397	  0.99873001  0.49310168
++3929	 -6.27228132	 -0.00078719	  0.00048248	  7.27149413	  0.99759458	  0.99873033  0.49310178
++3930	 -6.27228181	 -0.00078699	  0.00048236	  7.27149482	  0.99759519	  0.99873065  0.49310189
++3931	 -6.27228231	 -0.00078679	  0.00048224	  7.27149552	  0.99759580	  0.99873097  0.49310191
++3932	 -6.27228280	 -0.00078659	  0.00048211	  7.27149621	  0.99759641	  0.99873130  0.49310203
++3933	 -6.27228329	 -0.00078639	  0.00048199	  7.27149690	  0.99759702	  0.99873162  0.49310202
++3934	 -6.27228378	 -0.00078619	  0.00048187	  7.27149759	  0.99759763	  0.99873194  0.49310216
++3935	 -6.27228427	 -0.00078599	  0.00048175	  7.27149828	  0.99759825	  0.99873226  0.49310220
++3936	 -6.27228476	 -0.00078579	  0.00048162	  7.27149897	  0.99759886	  0.99873259  0.49310228
++3937	 -6.27228526	 -0.00078559	  0.00048150	  7.27149966	  0.99759946	  0.99873291  0.49310231
++3938	 -6.27228575	 -0.00078539	  0.00048138	  7.27150035	  0.99760007	  0.99873323  0.49310245
++3939	 -6.27228624	 -0.00078519	  0.00048126	  7.27150104	  0.99760068	  0.99873355  0.49310250
++3940	 -6.27228673	 -0.00078500	  0.00048113	  7.27150173	  0.99760129	  0.99873387  0.49310256
++3941	 -6.27228722	 -0.00078480	  0.00048101	  7.27150242	  0.99760190	  0.99873419  0.49310269
++3942	 -6.27228771	 -0.00078460	  0.00048089	  7.27150311	  0.99760251	  0.99873451  0.49310278
++3943	 -6.27228819	 -0.00078440	  0.00048077	  7.27150380	  0.99760312	  0.99873483  0.49310277
++3944	 -6.27228868	 -0.00078420	  0.00048065	  7.27150448	  0.99760372	  0.99873515  0.49310291
++3945	 -6.27228917	 -0.00078400	  0.00048052	  7.27150517	  0.99760433	  0.99873548  0.49310291
++3946	 -6.27228966	 -0.00078380	  0.00048040	  7.27150586	  0.99760494	  0.99873580  0.49310301
++3947	 -6.27229015	 -0.00078360	  0.00048028	  7.27150654	  0.99760555	  0.99873612  0.49310307
++3948	 -6.27229064	 -0.00078341	  0.00048016	  7.27150723	  0.99760615	  0.99873644  0.49310321
++3949	 -6.27229112	 -0.00078321	  0.00048004	  7.27150792	  0.99760676	  0.99873676  0.49310322
++3950	 -6.27229161	 -0.00078301	  0.00047992	  7.27150860	  0.99760736	  0.99873707  0.49310330
++3951	 -6.27229210	 -0.00078281	  0.00047979	  7.27150929	  0.99760797	  0.99873739  0.49310330
++3952	 -6.27229258	 -0.00078261	  0.00047967	  7.27150997	  0.99760857	  0.99873771  0.49310340
++3953	 -6.27229307	 -0.00078242	  0.00047955	  7.27151065	  0.99760918	  0.99873803  0.49310344
++3954	 -6.27229356	 -0.00078222	  0.00047943	  7.27151134	  0.99760978	  0.99873835  0.49310362
++3955	 -6.27229404	 -0.00078202	  0.00047931	  7.27151202	  0.99761039	  0.99873867  0.49310362
++3956	 -6.27229453	 -0.00078182	  0.00047919	  7.27151270	  0.99761099	  0.99873899  0.49310369
++3957	 -6.27229501	 -0.00078163	  0.00047907	  7.27151339	  0.99761160	  0.99873931  0.49310382
++3958	 -6.27229550	 -0.00078143	  0.00047895	  7.27151407	  0.99761220	  0.99873963  0.49310378
++3959	 -6.27229598	 -0.00078123	  0.00047882	  7.27151475	  0.99761280	  0.99873994  0.49310395
++3960	 -6.27229646	 -0.00078103	  0.00047870	  7.27151543	  0.99761340	  0.99874026  0.49310398
++3961	 -6.27229695	 -0.00078084	  0.00047858	  7.27151611	  0.99761401	  0.99874058  0.49310409
++3962	 -6.27229743	 -0.00078064	  0.00047846	  7.27151679	  0.99761461	  0.99874090  0.49310410
++3963	 -6.27229791	 -0.00078044	  0.00047834	  7.27151747	  0.99761521	  0.99874122  0.49310419
++3964	 -6.27229840	 -0.00078025	  0.00047822	  7.27151815	  0.99761581	  0.99874153  0.49310426
++3965	 -6.27229888	 -0.00078005	  0.00047810	  7.27151883	  0.99761641	  0.99874185  0.49310431
++3966	 -6.27229936	 -0.00077985	  0.00047798	  7.27151951	  0.99761701	  0.99874217  0.49310439
++3967	 -6.27229984	 -0.00077966	  0.00047786	  7.27152019	  0.99761762	  0.99874248  0.49310456
++3968	 -6.27230033	 -0.00077946	  0.00047774	  7.27152087	  0.99761822	  0.99874280  0.49310453
++3969	 -6.27230081	 -0.00077926	  0.00047762	  7.27152154	  0.99761882	  0.99874312  0.49310456
++3970	 -6.27230129	 -0.00077907	  0.00047750	  7.27152222	  0.99761942	  0.99874343  0.49310472
++3971	 -6.27230177	 -0.00077887	  0.00047738	  7.27152290	  0.99762001	  0.99874375  0.49310478
++3972	 -6.27230225	 -0.00077868	  0.00047726	  7.27152357	  0.99762061	  0.99874407  0.49310482
++3973	 -6.27230273	 -0.00077848	  0.00047714	  7.27152425	  0.99762121	  0.99874438  0.49310485
++3974	 -6.27230321	 -0.00077828	  0.00047702	  7.27152493	  0.99762181	  0.99874470  0.49310496
++3975	 -6.27230369	 -0.00077809	  0.00047690	  7.27152560	  0.99762241	  0.99874501  0.49310508
++3976	 -6.27230417	 -0.00077789	  0.00047678	  7.27152628	  0.99762301	  0.99874533  0.49310514
++3977	 -6.27230465	 -0.00077770	  0.00047666	  7.27152695	  0.99762360	  0.99874564  0.49310512
++3978	 -6.27230513	 -0.00077750	  0.00047654	  7.27152763	  0.99762420	  0.99874596  0.49310522
++3979	 -6.27230561	 -0.00077731	  0.00047642	  7.27152830	  0.99762480	  0.99874627  0.49310530
++3980	 -6.27230609	 -0.00077711	  0.00047630	  7.27152897	  0.99762540	  0.99874659  0.49310543
++3981	 -6.27230656	 -0.00077692	  0.00047618	  7.27152965	  0.99762599	  0.99874690  0.49310543
++3982	 -6.27230704	 -0.00077672	  0.00047606	  7.27153032	  0.99762659	  0.99874722  0.49310556
++3983	 -6.27230752	 -0.00077653	  0.00047594	  7.27153099	  0.99762718	  0.99874753  0.49310555
++3984	 -6.27230800	 -0.00077633	  0.00047582	  7.27153166	  0.99762778	  0.99874785  0.49310570
++3985	 -6.27230847	 -0.00077614	  0.00047570	  7.27153233	  0.99762837	  0.99874816  0.49310570
++3986	 -6.27230895	 -0.00077594	  0.00047558	  7.27153301	  0.99762897	  0.99874848  0.49310582
++3987	 -6.27230943	 -0.00077575	  0.00047546	  7.27153368	  0.99762956	  0.99874879  0.49310585
++3988	 -6.27230990	 -0.00077556	  0.00047534	  7.27153435	  0.99763016	  0.99874910  0.49310599
++3989	 -6.27231038	 -0.00077536	  0.00047522	  7.27153502	  0.99763075	  0.99874942  0.49310605
++3990	 -6.27231085	 -0.00077517	  0.00047510	  7.27153569	  0.99763135	  0.99874973  0.49310608
++3991	 -6.27231133	 -0.00077497	  0.00047498	  7.27153636	  0.99763194	  0.99875004  0.49310612
++3992	 -6.27231180	 -0.00077478	  0.00047487	  7.27153702	  0.99763253	  0.99875036  0.49310624
++3993	 -6.27231228	 -0.00077458	  0.00047475	  7.27153769	  0.99763312	  0.99875067  0.49310622
++3994	 -6.27231275	 -0.00077439	  0.00047463	  7.27153836	  0.99763372	  0.99875098  0.49310639
++3995	 -6.27231323	 -0.00077420	  0.00047451	  7.27153903	  0.99763431	  0.99875129  0.49310643
++3996	 -6.27231370	 -0.00077400	  0.00047439	  7.27153970	  0.99763490	  0.99875161  0.49310644
++3997	 -6.27231417	 -0.00077381	  0.00047427	  7.27154036	  0.99763549	  0.99875192  0.49310654
++3998	 -6.27231465	 -0.00077362	  0.00047415	  7.27154103	  0.99763608	  0.99875223  0.49310665
++3999	 -6.27231512	 -0.00077342	  0.00047403	  7.27154170	  0.99763668	  0.99875254  0.49310674
++4000	 -6.27231559	 -0.00077323	  0.00047392	  7.27154236	  0.99763727	  0.99875285  0.49310670
++4001	 -6.27231607	 -0.00077304	  0.00047380	  7.27154303	  0.99763786	  0.99875317  0.49310684
++4002	 -6.27231654	 -0.00077284	  0.00047368	  7.27154369	  0.99763845	  0.99875348  0.49310692
++4003	 -6.27231701	 -0.00077265	  0.00047356	  7.27154436	  0.99763904	  0.99875379  0.49310699
++4004	 -6.27231748	 -0.00077246	  0.00047344	  7.27154502	  0.99763963	  0.99875410  0.49310700
++4005	 -6.27231795	 -0.00077227	  0.00047332	  7.27154569	  0.99764021	  0.99875441  0.49310703
++4006	 -6.27231842	 -0.00077207	  0.00047321	  7.27154635	  0.99764080	  0.99875472  0.49310722
++4007	 -6.27231889	 -0.00077188	  0.00047309	  7.27154701	  0.99764139	  0.99875503  0.49310725
++4008	 -6.27231936	 -0.00077169	  0.00047297	  7.27154768	  0.99764198	  0.99875534  0.49310729
++4009	 -6.27231984	 -0.00077150	  0.00047285	  7.27154834	  0.99764257	  0.99875565  0.49310745
++4010	 -6.27232031	 -0.00077130	  0.00047273	  7.27154900	  0.99764316	  0.99875596  0.49310751
++4011	 -6.27232077	 -0.00077111	  0.00047262	  7.27154966	  0.99764374	  0.99875627  0.49310749
++4012	 -6.27232124	 -0.00077092	  0.00047250	  7.27155032	  0.99764433	  0.99875658  0.49310765
++4013	 -6.27232171	 -0.00077073	  0.00047238	  7.27155099	  0.99764492	  0.99875689  0.49310767
++4014	 -6.27232218	 -0.00077054	  0.00047226	  7.27155165	  0.99764550	  0.99875720  0.49310775
++4015	 -6.27232265	 -0.00077034	  0.00047215	  7.27155231	  0.99764609	  0.99875751  0.49310781
++4016	 -6.27232312	 -0.00077015	  0.00047203	  7.27155297	  0.99764668	  0.99875782  0.49310787
++4017	 -6.27232359	 -0.00076996	  0.00047191	  7.27155363	  0.99764726	  0.99875813  0.49310796
++4018	 -6.27232406	 -0.00076977	  0.00047179	  7.27155429	  0.99764785	  0.99875844  0.49310787
++4019	 -6.27232452	 -0.00076958	  0.00047168	  7.27155494	  0.99764843	  0.99875875  0.49310807
++4020	 -6.27232499	 -0.00076939	  0.00047156	  7.27155560	  0.99764902	  0.99875906  0.49310819
++4021	 -6.27232546	 -0.00076920	  0.00047144	  7.27155626	  0.99764960	  0.99875936  0.49310824
++4022	 -6.27232592	 -0.00076900	  0.00047132	  7.27155692	  0.99765019	  0.99875967  0.49310831
++4023	 -6.27232639	 -0.00076881	  0.00047121	  7.27155758	  0.99765077	  0.99875998  0.49310826
++4024	 -6.27232686	 -0.00076862	  0.00047109	  7.27155823	  0.99765135	  0.99876029  0.49310841
++4025	 -6.27232732	 -0.00076843	  0.00047097	  7.27155889	  0.99765194	  0.99876060  0.49310851
++4026	 -6.27232779	 -0.00076824	  0.00047086	  7.27155955	  0.99765252	  0.99876090  0.49310855
++4027	 -6.27232825	 -0.00076805	  0.00047074	  7.27156020	  0.99765310	  0.99876121  0.49310862
++4028	 -6.27232872	 -0.00076786	  0.00047062	  7.27156086	  0.99765369	  0.99876152  0.49310868
++4029	 -6.27232918	 -0.00076767	  0.00047050	  7.27156151	  0.99765427	  0.99876183  0.49310870
++4030	 -6.27232965	 -0.00076748	  0.00047039	  7.27156217	  0.99765485	  0.99876213  0.49310885
++4031	 -6.27233011	 -0.00076729	  0.00047027	  7.27156282	  0.99765543	  0.99876244  0.49310881
++4032	 -6.27233058	 -0.00076710	  0.00047015	  7.27156348	  0.99765601	  0.99876275  0.49310901
++4033	 -6.27233104	 -0.00076691	  0.00047004	  7.27156413	  0.99765660	  0.99876305  0.49310905
++4034	 -6.27233150	 -0.00076672	  0.00046992	  7.27156478	  0.99765718	  0.99876336  0.49310906
++4035	 -6.27233197	 -0.00076653	  0.00046981	  7.27156544	  0.99765776	  0.99876367  0.49310915
++4036	 -6.27233243	 -0.00076634	  0.00046969	  7.27156609	  0.99765834	  0.99876397  0.49310926
++4037	 -6.27233289	 -0.00076615	  0.00046957	  7.27156674	  0.99765892	  0.99876428  0.49310922
++4038	 -6.27233336	 -0.00076596	  0.00046946	  7.27156740	  0.99765950	  0.99876458  0.49310945
++4039	 -6.27233382	 -0.00076577	  0.00046934	  7.27156805	  0.99766008	  0.99876489  0.49310949
++4040	 -6.27233428	 -0.00076558	  0.00046922	  7.27156870	  0.99766065	  0.99876520  0.49310955
++4041	 -6.27233474	 -0.00076539	  0.00046911	  7.27156935	  0.99766123	  0.99876550  0.49310960
++4042	 -6.27233520	 -0.00076520	  0.00046899	  7.27157000	  0.99766181	  0.99876581  0.49310966
++4043	 -6.27233566	 -0.00076501	  0.00046888	  7.27157065	  0.99766239	  0.99876611  0.49310976
++4044	 -6.27233612	 -0.00076482	  0.00046876	  7.27157130	  0.99766297	  0.99876642  0.49310982
++4045	 -6.27233658	 -0.00076464	  0.00046864	  7.27157195	  0.99766355	  0.99876672  0.49310988
++4046	 -6.27233705	 -0.00076445	  0.00046853	  7.27157260	  0.99766412	  0.99876703  0.49310995
++4047	 -6.27233751	 -0.00076426	  0.00046841	  7.27157325	  0.99766470	  0.99876733  0.49310998
++4048	 -6.27233797	 -0.00076407	  0.00046830	  7.27157390	  0.99766528	  0.99876763  0.49311004
++4049	 -6.27233843	 -0.00076388	  0.00046818	  7.27157454	  0.99766585	  0.99876794  0.49311017
++4050	 -6.27233888	 -0.00076369	  0.00046806	  7.27157519	  0.99766643	  0.99876824  0.49311019
++4051	 -6.27233934	 -0.00076350	  0.00046795	  7.27157584	  0.99766701	  0.99876855  0.49311023
++4052	 -6.27233980	 -0.00076332	  0.00046783	  7.27157649	  0.99766758	  0.99876885  0.49311028
++4053	 -6.27234026	 -0.00076313	  0.00046772	  7.27157713	  0.99766816	  0.99876915  0.49311042
++4054	 -6.27234072	 -0.00076294	  0.00046760	  7.27157778	  0.99766873	  0.99876946  0.49311047
++4055	 -6.27234118	 -0.00076275	  0.00046749	  7.27157843	  0.99766931	  0.99876976  0.49311045
++4056	 -6.27234163	 -0.00076256	  0.00046737	  7.27157907	  0.99766988	  0.99877006  0.49311061
++4057	 -6.27234209	 -0.00076238	  0.00046726	  7.27157972	  0.99767046	  0.99877037  0.49311059
++4058	 -6.27234255	 -0.00076219	  0.00046714	  7.27158036	  0.99767103	  0.99877067  0.49311072
++4059	 -6.27234301	 -0.00076200	  0.00046703	  7.27158101	  0.99767160	  0.99877097  0.49311081
++4060	 -6.27234346	 -0.00076181	  0.00046691	  7.27158165	  0.99767218	  0.99877128  0.49311088
++4061	 -6.27234392	 -0.00076163	  0.00046680	  7.27158229	  0.99767275	  0.99877158  0.49311099
++4062	 -6.27234438	 -0.00076144	  0.00046668	  7.27158294	  0.99767332	  0.99877188  0.49311100
++4063	 -6.27234483	 -0.00076125	  0.00046657	  7.27158358	  0.99767389	  0.99877218  0.49311108
++4064	 -6.27234529	 -0.00076106	  0.00046645	  7.27158422	  0.99767447	  0.99877248  0.49311114
++4065	 -6.27234574	 -0.00076088	  0.00046634	  7.27158487	  0.99767504	  0.99877279  0.49311126
++4066	 -6.27234620	 -0.00076069	  0.00046622	  7.27158551	  0.99767561	  0.99877309  0.49311118
++4067	 -6.27234665	 -0.00076050	  0.00046611	  7.27158615	  0.99767618	  0.99877339  0.49311132
++4068	 -6.27234711	 -0.00076032	  0.00046599	  7.27158679	  0.99767675	  0.99877369  0.49311134
++4069	 -6.27234756	 -0.00076013	  0.00046588	  7.27158743	  0.99767732	  0.99877399  0.49311138
++4070	 -6.27234802	 -0.00075994	  0.00046576	  7.27158807	  0.99767789	  0.99877429  0.49311158
++4071	 -6.27234847	 -0.00075976	  0.00046565	  7.27158872	  0.99767846	  0.99877459  0.49311152
++4072	 -6.27234892	 -0.00075957	  0.00046554	  7.27158935	  0.99767903	  0.99877489  0.49311170
++4073	 -6.27234938	 -0.00075938	  0.00046542	  7.27158999	  0.99767960	  0.99877519  0.49311176
++4074	 -6.27234983	 -0.00075920	  0.00046531	  7.27159063	  0.99768017	  0.99877550  0.49311184
++4075	 -6.27235028	 -0.00075901	  0.00046519	  7.27159127	  0.99768074	  0.99877580  0.49311180
++4076	 -6.27235074	 -0.00075882	  0.00046508	  7.27159191	  0.99768131	  0.99877610  0.49311187
++4077	 -6.27235119	 -0.00075864	  0.00046496	  7.27159255	  0.99768188	  0.99877640  0.49311206
++4078	 -6.27235164	 -0.00075845	  0.00046485	  7.27159319	  0.99768245	  0.99877670  0.49311212
++4079	 -6.27235209	 -0.00075827	  0.00046474	  7.27159383	  0.99768302	  0.99877700  0.49311212
++4080	 -6.27235255	 -0.00075808	  0.00046462	  7.27159446	  0.99768358	  0.99877730  0.49311214
++4081	 -6.27235300	 -0.00075790	  0.00046451	  7.27159510	  0.99768415	  0.99877759  0.49311223
++4082	 -6.27235345	 -0.00075771	  0.00046440	  7.27159574	  0.99768472	  0.99877789  0.49311231
++4083	 -6.27235390	 -0.00075753	  0.00046428	  7.27159637	  0.99768529	  0.99877819  0.49311242
++4084	 -6.27235435	 -0.00075734	  0.00046417	  7.27159701	  0.99768585	  0.99877849  0.49311242
++4085	 -6.27235480	 -0.00075715	  0.00046405	  7.27159765	  0.99768642	  0.99877879  0.49311257
++4086	 -6.27235525	 -0.00075697	  0.00046394	  7.27159828	  0.99768699	  0.99877909  0.49311263
++4087	 -6.27235570	 -0.00075678	  0.00046383	  7.27159892	  0.99768755	  0.99877939  0.49311265
++4088	 -6.27235615	 -0.00075660	  0.00046371	  7.27159955	  0.99768812	  0.99877969  0.49311271
++4089	 -6.27235660	 -0.00075641	  0.00046360	  7.27160019	  0.99768868	  0.99877999  0.49311273
++4090	 -6.27235705	 -0.00075623	  0.00046349	  7.27160082	  0.99768925	  0.99878028  0.49311292
++4091	 -6.27235750	 -0.00075605	  0.00046337	  7.27160145	  0.99768981	  0.99878058  0.49311290
++4092	 -6.27235795	 -0.00075586	  0.00046326	  7.27160209	  0.99769038	  0.99878088  0.49311294
++4093	 -6.27235840	 -0.00075568	  0.00046315	  7.27160272	  0.99769094	  0.99878118  0.49311305
++4094	 -6.27235884	 -0.00075549	  0.00046303	  7.27160335	  0.99769150	  0.99878147  0.49311309
++4095	 -6.27235929	 -0.00075531	  0.00046292	  7.27160398	  0.99769207	  0.99878177  0.49311327
++4096	 -6.27235974	 -0.00075512	  0.00046281	  7.27160462	  0.99769263	  0.99878207  0.49311324
++4097	 -6.27236019	 -0.00075494	  0.00046269	  7.27160525	  0.99769319	  0.99878237  0.49311327
++4098	 -6.27236063	 -0.00075475	  0.00046258	  7.27160588	  0.99769376	  0.99878266  0.49311333
++4099	 -6.27236108	 -0.00075457	  0.00046247	  7.27160651	  0.99769432	  0.99878296  0.49311348
++4100	 -6.27236153	 -0.00075439	  0.00046236	  7.27160714	  0.99769488	  0.99878326  0.49311361
++4101	 -6.27236197	 -0.00075420	  0.00046224	  7.27160777	  0.99769544	  0.99878355  0.49311357
++4102	 -6.27236242	 -0.00075402	  0.00046213	  7.27160840	  0.99769601	  0.99878385  0.49311362
++4103	 -6.27236287	 -0.00075384	  0.00046202	  7.27160903	  0.99769657	  0.99878415  0.49311367
++4104	 -6.27236331	 -0.00075365	  0.00046191	  7.27160966	  0.99769713	  0.99878444  0.49311366
++4105	 -6.27236376	 -0.00075347	  0.00046179	  7.27161029	  0.99769769	  0.99878474  0.49311384
++4106	 -6.27236420	 -0.00075329	  0.00046168	  7.27161092	  0.99769825	  0.99878503  0.49311393
++4107	 -6.27236465	 -0.00075310	  0.00046157	  7.27161155	  0.99769881	  0.99878533  0.49311405
++4108	 -6.27236509	 -0.00075292	  0.00046146	  7.27161217	  0.99769937	  0.99878563  0.49311410
++4109	 -6.27236554	 -0.00075274	  0.00046134	  7.27161280	  0.99769993	  0.99878592  0.49311401
++4110	 -6.27236598	 -0.00075255	  0.00046123	  7.27161343	  0.99770049	  0.99878622  0.49311424
++4111	 -6.27236643	 -0.00075237	  0.00046112	  7.27161406	  0.99770105	  0.99878651  0.49311425
++4112	 -6.27236687	 -0.00075219	  0.00046101	  7.27161468	  0.99770161	  0.99878681  0.49311423
++4113	 -6.27236731	 -0.00075200	  0.00046089	  7.27161531	  0.99770217	  0.99878710  0.49311442
++4114	 -6.27236776	 -0.00075182	  0.00046078	  7.27161594	  0.99770272	  0.99878740  0.49311431
++4115	 -6.27236820	 -0.00075164	  0.00046067	  7.27161656	  0.99770328	  0.99878769  0.49311449
++4116	 -6.27236864	 -0.00075146	  0.00046056	  7.27161719	  0.99770384	  0.99878798  0.49311451
++4117	 -6.27236909	 -0.00075127	  0.00046045	  7.27161781	  0.99770440	  0.99878828  0.49311462
++4118	 -6.27236953	 -0.00075109	  0.00046034	  7.27161844	  0.99770496	  0.99878857  0.49311465
++4119	 -6.27236997	 -0.00075091	  0.00046022	  7.27161906	  0.99770551	  0.99878887  0.49311479
++4120	 -6.27237041	 -0.00075073	  0.00046011	  7.27161968	  0.99770607	  0.99878916  0.49311488
++4121	 -6.27237085	 -0.00075055	  0.00046000	  7.27162031	  0.99770663	  0.99878945  0.49311489
++4122	 -6.27237130	 -0.00075036	  0.00045989	  7.27162093	  0.99770718	  0.99878975  0.49311496
++4123	 -6.27237174	 -0.00075018	  0.00045978	  7.27162155	  0.99770774	  0.99879004  0.49311494
++4124	 -6.27237218	 -0.00075000	  0.00045967	  7.27162218	  0.99770829	  0.99879033  0.49311510
++4125	 -6.27237262	 -0.00074982	  0.00045955	  7.27162280	  0.99770885	  0.99879063  0.49311504
++4126	 -6.27237306	 -0.00074964	  0.00045944	  7.27162342	  0.99770941	  0.99879092  0.49311523
++4127	 -6.27237350	 -0.00074946	  0.00045933	  7.27162404	  0.99770996	  0.99879121  0.49311526
++4128	 -6.27237394	 -0.00074927	  0.00045922	  7.27162466	  0.99771051	  0.99879151  0.49311531
++4129	 -6.27237438	 -0.00074909	  0.00045911	  7.27162529	  0.99771107	  0.99879180  0.49311549
++4130	 -6.27237482	 -0.00074891	  0.00045900	  7.27162591	  0.99771162	  0.99879209  0.49311546
++4131	 -6.27237526	 -0.00074873	  0.00045889	  7.27162653	  0.99771218	  0.99879238  0.49311554
++4132	 -6.27237570	 -0.00074855	  0.00045878	  7.27162715	  0.99771273	  0.99879268  0.49311557
++4133	 -6.27237614	 -0.00074837	  0.00045866	  7.27162777	  0.99771328	  0.99879297  0.49311573
++4134	 -6.27237657	 -0.00074819	  0.00045855	  7.27162839	  0.99771384	  0.99879326  0.49311571
++4135	 -6.27237701	 -0.00074801	  0.00045844	  7.27162901	  0.99771439	  0.99879355  0.49311580
++4136	 -6.27237745	 -0.00074783	  0.00045833	  7.27162962	  0.99771494	  0.99879384  0.49311585
++4137	 -6.27237789	 -0.00074765	  0.00045822	  7.27163024	  0.99771549	  0.99879413  0.49311592
++4138	 -6.27237833	 -0.00074747	  0.00045811	  7.27163086	  0.99771605	  0.99879442  0.49311607
++4139	 -6.27237876	 -0.00074728	  0.00045800	  7.27163148	  0.99771660	  0.99879472  0.49311608
++4140	 -6.27237920	 -0.00074710	  0.00045789	  7.27163210	  0.99771715	  0.99879501  0.49311612
++4141	 -6.27237964	 -0.00074692	  0.00045778	  7.27163271	  0.99771770	  0.99879530  0.49311622
++4142	 -6.27238007	 -0.00074674	  0.00045767	  7.27163333	  0.99771825	  0.99879559  0.49311623
++4143	 -6.27238051	 -0.00074656	  0.00045756	  7.27163395	  0.99771880	  0.99879588  0.49311629
++4144	 -6.27238095	 -0.00074638	  0.00045745	  7.27163456	  0.99771935	  0.99879617  0.49311629
++4145	 -6.27238138	 -0.00074620	  0.00045734	  7.27163518	  0.99771990	  0.99879646  0.49311644
++4146	 -6.27238182	 -0.00074602	  0.00045723	  7.27163580	  0.99772045	  0.99879675  0.49311641
++4147	 -6.27238225	 -0.00074584	  0.00045712	  7.27163641	  0.99772100	  0.99879704  0.49311653
++4148	 -6.27238269	 -0.00074566	  0.00045701	  7.27163703	  0.99772155	  0.99879733  0.49311671
++4149	 -6.27238312	 -0.00074548	  0.00045690	  7.27163764	  0.99772210	  0.99879762  0.49311673
++4150	 -6.27238356	 -0.00074531	  0.00045679	  7.27163825	  0.99772265	  0.99879791  0.49311683
++4151	 -6.27238399	 -0.00074513	  0.00045668	  7.27163887	  0.99772320	  0.99879820  0.49311676
++4152	 -6.27238443	 -0.00074495	  0.00045657	  7.27163948	  0.99772375	  0.99879849  0.49311684
++4153	 -6.27238486	 -0.00074477	  0.00045646	  7.27164010	  0.99772429	  0.99879878  0.49311690
++4154	 -6.27238530	 -0.00074459	  0.00045635	  7.27164071	  0.99772484	  0.99879907  0.49311703
++4155	 -6.27238573	 -0.00074441	  0.00045624	  7.27164132	  0.99772539	  0.99879936  0.49311710
++4156	 -6.27238616	 -0.00074423	  0.00045613	  7.27164193	  0.99772594	  0.99879964  0.49311708
++4157	 -6.27238660	 -0.00074405	  0.00045602	  7.27164255	  0.99772648	  0.99879993  0.49311725
++4158	 -6.27238703	 -0.00074387	  0.00045591	  7.27164316	  0.99772703	  0.99880022  0.49311732
++4159	 -6.27238746	 -0.00074369	  0.00045580	  7.27164377	  0.99772758	  0.99880051  0.49311738
++4160	 -6.27238790	 -0.00074352	  0.00045569	  7.27164438	  0.99772812	  0.99880080  0.49311739
++4161	 -6.27238833	 -0.00074334	  0.00045558	  7.27164499	  0.99772867	  0.99880109  0.49311746
++4162	 -6.27238876	 -0.00074316	  0.00045547	  7.27164560	  0.99772921	  0.99880137  0.49311752
++4163	 -6.27238919	 -0.00074298	  0.00045536	  7.27164621	  0.99772976	  0.99880166  0.49311758
++4164	 -6.27238962	 -0.00074280	  0.00045525	  7.27164682	  0.99773030	  0.99880195  0.49311766
++4165	 -6.27239006	 -0.00074262	  0.00045514	  7.27164743	  0.99773085	  0.99880224  0.49311772
++4166	 -6.27239049	 -0.00074245	  0.00045503	  7.27164804	  0.99773139	  0.99880252  0.49311777
++4167	 -6.27239092	 -0.00074227	  0.00045492	  7.27164865	  0.99773194	  0.99880281  0.49311785
++4168	 -6.27239135	 -0.00074209	  0.00045481	  7.27164926	  0.99773248	  0.99880310  0.49311791
++4169	 -6.27239178	 -0.00074191	  0.00045470	  7.27164987	  0.99773303	  0.99880339  0.49311797
++4170	 -6.27239221	 -0.00074173	  0.00045459	  7.27165048	  0.99773357	  0.99880367  0.49311806
++4171	 -6.27239264	 -0.00074156	  0.00045449	  7.27165108	  0.99773411	  0.99880396  0.49311809
++4172	 -6.27239307	 -0.00074138	  0.00045438	  7.27165169	  0.99773466	  0.99880425  0.49311816
++4173	 -6.27239350	 -0.00074120	  0.00045427	  7.27165230	  0.99773520	  0.99880453  0.49311824
++4174	 -6.27239393	 -0.00074102	  0.00045416	  7.27165291	  0.99773574	  0.99880482  0.49311829
++4175	 -6.27239436	 -0.00074085	  0.00045405	  7.27165351	  0.99773628	  0.99880510  0.49311835
++4176	 -6.27239479	 -0.00074067	  0.00045394	  7.27165412	  0.99773683	  0.99880539  0.49311839
++4177	 -6.27239522	 -0.00074049	  0.00045383	  7.27165472	  0.99773737	  0.99880568  0.49311849
++4178	 -6.27239564	 -0.00074031	  0.00045372	  7.27165533	  0.99773791	  0.99880596  0.49311853
++4179	 -6.27239607	 -0.00074014	  0.00045362	  7.27165593	  0.99773845	  0.99880625  0.49311862
++4180	 -6.27239650	 -0.00073996	  0.00045351	  7.27165654	  0.99773899	  0.99880653  0.49311867
++4181	 -6.27239693	 -0.00073978	  0.00045340	  7.27165714	  0.99773953	  0.99880682  0.49311873
++4182	 -6.27239736	 -0.00073961	  0.00045329	  7.27165775	  0.99774007	  0.99880710  0.49311878
++4183	 -6.27239778	 -0.00073943	  0.00045318	  7.27165835	  0.99774061	  0.99880739  0.49311885
++4184	 -6.27239821	 -0.00073925	  0.00045307	  7.27165896	  0.99774115	  0.99880767  0.49311891
++4185	 -6.27239864	 -0.00073908	  0.00045296	  7.27165956	  0.99774169	  0.99880796  0.49311897
++4186	 -6.27239906	 -0.00073890	  0.00045286	  7.27166016	  0.99774223	  0.99880824  0.49311905
++4187	 -6.27239949	 -0.00073872	  0.00045275	  7.27166077	  0.99774277	  0.99880853  0.49311912
++4188	 -6.27239992	 -0.00073855	  0.00045264	  7.27166137	  0.99774331	  0.99880881  0.49311918
++4189	 -6.27240034	 -0.00073837	  0.00045253	  7.27166197	  0.99774385	  0.99880910  0.49311924
++4190	 -6.27240077	 -0.00073820	  0.00045242	  7.27166257	  0.99774439	  0.99880938  0.49311929
++4191	 -6.27240119	 -0.00073802	  0.00045232	  7.27166317	  0.99774492	  0.99880966  0.49311935
++4192	 -6.27240162	 -0.00073784	  0.00045221	  7.27166378	  0.99774546	  0.99880995  0.49311941
++4193	 -6.27240205	 -0.00073767	  0.00045210	  7.27166438	  0.99774600	  0.99881023  0.49311949
++4194	 -6.27240247	 -0.00073749	  0.00045199	  7.27166498	  0.99774654	  0.99881051  0.49311956
++4195	 -6.27240289	 -0.00073732	  0.00045188	  7.27166558	  0.99774707	  0.99881080  0.49311961
++4196	 -6.27240332	 -0.00073714	  0.00045178	  7.27166618	  0.99774761	  0.99881108  0.49311968
++4197	 -6.27240374	 -0.00073697	  0.00045167	  7.27166678	  0.99774815	  0.99881136  0.49311975
++4198	 -6.27240417	 -0.00073679	  0.00045156	  7.27166738	  0.99774868	  0.99881165  0.49311980
++4199	 -6.27240459	 -0.00073662	  0.00045145	  7.27166798	  0.99774922	  0.99881193  0.49311987
++4200	 -6.27240502	 -0.00073644	  0.00045135	  7.27166858	  0.99774976	  0.99881221  0.49311992
++4201	 -6.27240544	 -0.00073626	  0.00045124	  7.27166917	  0.99775029	  0.99881250  0.49312000
++4202	 -6.27240586	 -0.00073609	  0.00045113	  7.27166977	  0.99775083	  0.99881278  0.49312006
++4203	 -6.27240628	 -0.00073591	  0.00045102	  7.27167037	  0.99775136	  0.99881306  0.49312011
++4204	 -6.27240671	 -0.00073574	  0.00045092	  7.27167097	  0.99775190	  0.99881334  0.49312017
++4205	 -6.27240713	 -0.00073556	  0.00045081	  7.27167157	  0.99775243	  0.99881362  0.49312022
++4206	 -6.27240755	 -0.00073539	  0.00045070	  7.27167216	  0.99775297	  0.99881391  0.49312031
++4207	 -6.27240797	 -0.00073522	  0.00045060	  7.27167276	  0.99775350	  0.99881419  0.49312033
++4208	 -6.27240840	 -0.00073504	  0.00045049	  7.27167336	  0.99775403	  0.99881447  0.49312043
++4209	 -6.27240882	 -0.00073487	  0.00045038	  7.27167395	  0.99775457	  0.99881475  0.49312049
++4210	 -6.27240924	 -0.00073469	  0.00045027	  7.27167455	  0.99775510	  0.99881503  0.49312054
++4211	 -6.27240966	 -0.00073452	  0.00045017	  7.27167514	  0.99775563	  0.99881531  0.49312061
++4212	 -6.27241008	 -0.00073434	  0.00045006	  7.27167574	  0.99775617	  0.99881560  0.49312068
++4213	 -6.27241050	 -0.00073417	  0.00044995	  7.27167633	  0.99775670	  0.99881588  0.49312074
++4214	 -6.27241092	 -0.00073400	  0.00044985	  7.27167693	  0.99775723	  0.99881616  0.49312080
++4215	 -6.27241134	 -0.00073382	  0.00044974	  7.27167752	  0.99775776	  0.99881644  0.49312087
++4216	 -6.27241176	 -0.00073365	  0.00044963	  7.27167812	  0.99775829	  0.99881672  0.49312093
++4217	 -6.27241218	 -0.00073347	  0.00044953	  7.27167871	  0.99775883	  0.99881700  0.49312099
++4218	 -6.27241260	 -0.00073330	  0.00044942	  7.27167930	  0.99775936	  0.99881728  0.49312106
++4219	 -6.27241302	 -0.00073313	  0.00044931	  7.27167990	  0.99775989	  0.99881756  0.49312110
++4220	 -6.27241344	 -0.00073295	  0.00044921	  7.27168049	  0.99776042	  0.99881784  0.49312117
++4221	 -6.27241386	 -0.00073278	  0.00044910	  7.27168108	  0.99776095	  0.99881812  0.49312124
++4222	 -6.27241428	 -0.00073261	  0.00044899	  7.27168167	  0.99776148	  0.99881840  0.49312129
++4223	 -6.27241470	 -0.00073243	  0.00044889	  7.27168227	  0.99776201	  0.99881868  0.49312137
++4224	 -6.27241512	 -0.00073226	  0.00044878	  7.27168286	  0.99776254	  0.99881896  0.49312141
++4225	 -6.27241554	 -0.00073209	  0.00044868	  7.27168345	  0.99776307	  0.99881924  0.49312147
++4226	 -6.27241595	 -0.00073191	  0.00044857	  7.27168404	  0.99776360	  0.99881952  0.49312156
++4227	 -6.27241637	 -0.00073174	  0.00044846	  7.27168463	  0.99776413	  0.99881980  0.49312161
++4228	 -6.27241679	 -0.00073157	  0.00044836	  7.27168522	  0.99776466	  0.99882008  0.49312166
++4229	 -6.27241721	 -0.00073139	  0.00044825	  7.27168581	  0.99776518	  0.99882035  0.49312172
++4230	 -6.27241762	 -0.00073122	  0.00044815	  7.27168640	  0.99776571	  0.99882063  0.49312178
++4231	 -6.27241804	 -0.00073105	  0.00044804	  7.27168699	  0.99776624	  0.99882091  0.49312185
++4232	 -6.27241846	 -0.00073088	  0.00044793	  7.27168758	  0.99776677	  0.99882119  0.49312193
++4233	 -6.27241887	 -0.00073070	  0.00044783	  7.27168817	  0.99776730	  0.99882147  0.49312197
++4234	 -6.27241929	 -0.00073053	  0.00044772	  7.27168876	  0.99776782	  0.99882175  0.49312203
++4235	 -6.27241971	 -0.00073036	  0.00044762	  7.27168935	  0.99776835	  0.99882202  0.49312211
++4236	 -6.27242012	 -0.00073019	  0.00044751	  7.27168994	  0.99776888	  0.99882230  0.49312215
++4237	 -6.27242054	 -0.00073001	  0.00044741	  7.27169052	  0.99776940	  0.99882258  0.49312222
++4238	 -6.27242095	 -0.00072984	  0.00044730	  7.27169111	  0.99776993	  0.99882286  0.49312230
++4239	 -6.27242137	 -0.00072967	  0.00044719	  7.27169170	  0.99777045	  0.99882314  0.49312233
++4240	 -6.27242178	 -0.00072950	  0.00044709	  7.27169229	  0.99777098	  0.99882341  0.49312241
++4241	 -6.27242220	 -0.00072933	  0.00044698	  7.27169287	  0.99777151	  0.99882369  0.49312246
++4242	 -6.27242261	 -0.00072915	  0.00044688	  7.27169346	  0.99777203	  0.99882397  0.49312253
++4243	 -6.27242303	 -0.00072898	  0.00044677	  7.27169405	  0.99777256	  0.99882424  0.49312260
++4244	 -6.27242344	 -0.00072881	  0.00044667	  7.27169463	  0.99777308	  0.99882452  0.49312265
++4245	 -6.27242386	 -0.00072864	  0.00044656	  7.27169522	  0.99777361	  0.99882480  0.49312272
++4246	 -6.27242427	 -0.00072847	  0.00044646	  7.27169580	  0.99777413	  0.99882508  0.49312276
++4247	 -6.27242468	 -0.00072830	  0.00044635	  7.27169639	  0.99777465	  0.99882535  0.49312285
++4248	 -6.27242510	 -0.00072813	  0.00044625	  7.27169697	  0.99777518	  0.99882563  0.49312291
++4249	 -6.27242551	 -0.00072795	  0.00044614	  7.27169756	  0.99777570	  0.99882590  0.49312295
++4250	 -6.27242592	 -0.00072778	  0.00044604	  7.27169814	  0.99777622	  0.99882618  0.49312303
++4251	 -6.27242634	 -0.00072761	  0.00044593	  7.27169872	  0.99777675	  0.99882646  0.49312307
++4252	 -6.27242675	 -0.00072744	  0.00044583	  7.27169931	  0.99777727	  0.99882673  0.49312312
++4253	 -6.27242716	 -0.00072727	  0.00044572	  7.27169989	  0.99777779	  0.99882701  0.49312319
++4254	 -6.27242757	 -0.00072710	  0.00044562	  7.27170047	  0.99777831	  0.99882728  0.49312326
++4255	 -6.27242798	 -0.00072693	  0.00044551	  7.27170106	  0.99777884	  0.99882756  0.49312335
++4256	 -6.27242840	 -0.00072676	  0.00044541	  7.27170164	  0.99777936	  0.99882783  0.49312338
++4257	 -6.27242881	 -0.00072659	  0.00044530	  7.27170222	  0.99777988	  0.99882811  0.49312345
++4258	 -6.27242922	 -0.00072642	  0.00044520	  7.27170280	  0.99778040	  0.99882838  0.49312349
++4259	 -6.27242963	 -0.00072625	  0.00044509	  7.27170338	  0.99778092	  0.99882866  0.49312358
++4260	 -6.27243004	 -0.00072608	  0.00044499	  7.27170397	  0.99778144	  0.99882893  0.49312364
++4261	 -6.27243045	 -0.00072591	  0.00044488	  7.27170455	  0.99778196	  0.99882921  0.49312368
++4262	 -6.27243086	 -0.00072574	  0.00044478	  7.27170513	  0.99778248	  0.99882948  0.49312376
++4263	 -6.27243127	 -0.00072557	  0.00044468	  7.27170571	  0.99778300	  0.99882976  0.49312381
++4264	 -6.27243168	 -0.00072540	  0.00044457	  7.27170629	  0.99778352	  0.99883003  0.49312388
++4265	 -6.27243209	 -0.00072523	  0.00044447	  7.27170687	  0.99778404	  0.99883031  0.49312394
++4266	 -6.27243250	 -0.00072506	  0.00044436	  7.27170745	  0.99778456	  0.99883058  0.49312397
++4267	 -6.27243291	 -0.00072489	  0.00044426	  7.27170803	  0.99778508	  0.99883086  0.49312405
++4268	 -6.27243332	 -0.00072472	  0.00044416	  7.27170860	  0.99778560	  0.99883113  0.49312410
++4269	 -6.27243373	 -0.00072455	  0.00044405	  7.27170918	  0.99778612	  0.99883140  0.49312419
++4270	 -6.27243414	 -0.00072438	  0.00044395	  7.27170976	  0.99778664	  0.99883168  0.49312424
++4271	 -6.27243455	 -0.00072421	  0.00044384	  7.27171034	  0.99778716	  0.99883195  0.49312429
++4272	 -6.27243496	 -0.00072404	  0.00044374	  7.27171092	  0.99778767	  0.99883222  0.49312436
++4273	 -6.27243536	 -0.00072387	  0.00044364	  7.27171150	  0.99778819	  0.99883250  0.49312441
++4274	 -6.27243577	 -0.00072370	  0.00044353	  7.27171207	  0.99778871	  0.99883277  0.49312447
++4275	 -6.27243618	 -0.00072353	  0.00044343	  7.27171265	  0.99778923	  0.99883304  0.49312454
++4276	 -6.27243659	 -0.00072336	  0.00044332	  7.27171323	  0.99778974	  0.99883331  0.49312460
++4277	 -6.27243700	 -0.00072319	  0.00044322	  7.27171380	  0.99779026	  0.99883359  0.49312464
++4278	 -6.27243740	 -0.00072302	  0.00044312	  7.27171438	  0.99779078	  0.99883386  0.49312471
++4279	 -6.27243781	 -0.00072285	  0.00044301	  7.27171495	  0.99779129	  0.99883413  0.49312476
++4280	 -6.27243822	 -0.00072269	  0.00044291	  7.27171553	  0.99779181	  0.99883440  0.49312483
++4281	 -6.27243862	 -0.00072252	  0.00044281	  7.27171611	  0.99779232	  0.99883468  0.49312489
++4282	 -6.27243903	 -0.00072235	  0.00044270	  7.27171668	  0.99779284	  0.99883495  0.49312495
++4283	 -6.27243944	 -0.00072218	  0.00044260	  7.27171726	  0.99779336	  0.99883522  0.49312500
++4284	 -6.27243984	 -0.00072201	  0.00044250	  7.27171783	  0.99779387	  0.99883549  0.49312508
++4285	 -6.27244025	 -0.00072184	  0.00044239	  7.27171840	  0.99779438	  0.99883576  0.49312514
++4286	 -6.27244065	 -0.00072167	  0.00044229	  7.27171898	  0.99779490	  0.99883604  0.49312518
++4287	 -6.27244106	 -0.00072151	  0.00044219	  7.27171955	  0.99779541	  0.99883631  0.49312525
++4288	 -6.27244146	 -0.00072134	  0.00044208	  7.27172012	  0.99779593	  0.99883658  0.49312531
++4289	 -6.27244187	 -0.00072117	  0.00044198	  7.27172070	  0.99779644	  0.99883685  0.49312537
++4290	 -6.27244227	 -0.00072100	  0.00044188	  7.27172127	  0.99779696	  0.99883712  0.49312544
++4291	 -6.27244268	 -0.00072083	  0.00044177	  7.27172184	  0.99779747	  0.99883739  0.49312550
++4292	 -6.27244308	 -0.00072067	  0.00044167	  7.27172242	  0.99779798	  0.99883766  0.49312555
++4293	 -6.27244349	 -0.00072050	  0.00044157	  7.27172299	  0.99779849	  0.99883793  0.49312563
++4294	 -6.27244389	 -0.00072033	  0.00044147	  7.27172356	  0.99779901	  0.99883820  0.49312567
++4295	 -6.27244429	 -0.00072016	  0.00044136	  7.27172413	  0.99779952	  0.99883847  0.49312573
++4296	 -6.27244470	 -0.00072000	  0.00044126	  7.27172470	  0.99780003	  0.99883874  0.49312578
++4297	 -6.27244510	 -0.00071983	  0.00044116	  7.27172527	  0.99780054	  0.99883901  0.49312585
++4298	 -6.27244550	 -0.00071966	  0.00044105	  7.27172584	  0.99780105	  0.99883928  0.49312592
++4299	 -6.27244591	 -0.00071949	  0.00044095	  7.27172641	  0.99780157	  0.99883955  0.49312598
++4300	 -6.27244631	 -0.00071933	  0.00044085	  7.27172698	  0.99780208	  0.99883982  0.49312604
++4301	 -6.27244671	 -0.00071916	  0.00044075	  7.27172755	  0.99780259	  0.99884009  0.49312608
++4302	 -6.27244712	 -0.00071899	  0.00044064	  7.27172812	  0.99780310	  0.99884036  0.49312614
++4303	 -6.27244752	 -0.00071883	  0.00044054	  7.27172869	  0.99780361	  0.99884063  0.49312622
++4304	 -6.27244792	 -0.00071866	  0.00044044	  7.27172926	  0.99780412	  0.99884090  0.49312626
++4305	 -6.27244832	 -0.00071849	  0.00044034	  7.27172983	  0.99780463	  0.99884117  0.49312632
++4306	 -6.27244872	 -0.00071833	  0.00044024	  7.27173040	  0.99780514	  0.99884144  0.49312638
++4307	 -6.27244912	 -0.00071816	  0.00044013	  7.27173097	  0.99780565	  0.99884171  0.49312645
++4308	 -6.27244953	 -0.00071799	  0.00044003	  7.27173153	  0.99780616	  0.99884198  0.49312649
++4309	 -6.27244993	 -0.00071783	  0.00043993	  7.27173210	  0.99780667	  0.99884225  0.49312657
++4310	 -6.27245033	 -0.00071766	  0.00043983	  7.27173267	  0.99780718	  0.99884251  0.49312664
++4311	 -6.27245073	 -0.00071749	  0.00043972	  7.27173323	  0.99780768	  0.99884278  0.49312669
++4312	 -6.27245113	 -0.00071733	  0.00043962	  7.27173380	  0.99780819	  0.99884305  0.49312674
++4313	 -6.27245153	 -0.00071716	  0.00043952	  7.27173437	  0.99780870	  0.99884332  0.49312680
++4314	 -6.27245193	 -0.00071699	  0.00043942	  7.27173493	  0.99780921	  0.99884359  0.49312685
++4315	 -6.27245233	 -0.00071683	  0.00043932	  7.27173550	  0.99780972	  0.99884385  0.49312691
++4316	 -6.27245273	 -0.00071666	  0.00043922	  7.27173607	  0.99781022	  0.99884412  0.49312701
++4317	 -6.27245313	 -0.00071650	  0.00043911	  7.27173663	  0.99781073	  0.99884439  0.49312703
++4318	 -6.27245353	 -0.00071633	  0.00043901	  7.27173720	  0.99781124	  0.99884466  0.49312710
++4319	 -6.27245393	 -0.00071617	  0.00043891	  7.27173776	  0.99781174	  0.99884492  0.49312716
++4320	 -6.27245432	 -0.00071600	  0.00043881	  7.27173833	  0.99781225	  0.99884519  0.49312722
++4321	 -6.27245472	 -0.00071583	  0.00043871	  7.27173889	  0.99781276	  0.99884546  0.49312728
++4322	 -6.27245512	 -0.00071567	  0.00043861	  7.27173945	  0.99781326	  0.99884573  0.49312736
++4323	 -6.27245552	 -0.00071550	  0.00043850	  7.27174002	  0.99781377	  0.99884599  0.49312741
++4324	 -6.27245592	 -0.00071534	  0.00043840	  7.27174058	  0.99781427	  0.99884626  0.49312745
++4325	 -6.27245632	 -0.00071517	  0.00043830	  7.27174114	  0.99781478	  0.99884653  0.49312752
++4326	 -6.27245671	 -0.00071501	  0.00043820	  7.27174171	  0.99781528	  0.99884679  0.49312756
++4327	 -6.27245711	 -0.00071484	  0.00043810	  7.27174227	  0.99781579	  0.99884706  0.49312763
++4328	 -6.27245751	 -0.00071468	  0.00043800	  7.27174283	  0.99781629	  0.99884733  0.49312770
++4329	 -6.27245791	 -0.00071451	  0.00043790	  7.27174339	  0.99781680	  0.99884759  0.49312773
++4330	 -6.27245830	 -0.00071435	  0.00043779	  7.27174396	  0.99781730	  0.99884786  0.49312781
++4331	 -6.27245870	 -0.00071418	  0.00043769	  7.27174452	  0.99781781	  0.99884812  0.49312788
++4332	 -6.27245910	 -0.00071402	  0.00043759	  7.27174508	  0.99781831	  0.99884839  0.49312794
++4333	 -6.27245949	 -0.00071385	  0.00043749	  7.27174564	  0.99781881	  0.99884866  0.49312798
++4334	 -6.27245989	 -0.00071369	  0.00043739	  7.27174620	  0.99781932	  0.99884892  0.49312802
++4335	 -6.27246028	 -0.00071352	  0.00043729	  7.27174676	  0.99781982	  0.99884919  0.49312810
++4336	 -6.27246068	 -0.00071336	  0.00043719	  7.27174732	  0.99782032	  0.99884945  0.49312816
++4337	 -6.27246108	 -0.00071320	  0.00043709	  7.27174788	  0.99782083	  0.99884972  0.49312820
++4338	 -6.27246147	 -0.00071303	  0.00043699	  7.27174844	  0.99782133	  0.99884998  0.49312828
++4339	 -6.27246187	 -0.00071287	  0.00043689	  7.27174900	  0.99782183	  0.99885025  0.49312834
++4340	 -6.27246226	 -0.00071270	  0.00043679	  7.27174956	  0.99782233	  0.99885051  0.49312839
++4341	 -6.27246266	 -0.00071254	  0.00043669	  7.27175012	  0.99782283	  0.99885078  0.49312847
++4342	 -6.27246305	 -0.00071237	  0.00043658	  7.27175068	  0.99782333	  0.99885104  0.49312849
++4343	 -6.27246345	 -0.00071221	  0.00043648	  7.27175123	  0.99782384	  0.99885131  0.49312857
++4344	 -6.27246384	 -0.00071205	  0.00043638	  7.27175179	  0.99782434	  0.99885157  0.49312862
++4345	 -6.27246423	 -0.00071188	  0.00043628	  7.27175235	  0.99782484	  0.99885183  0.49312870
++4346	 -6.27246463	 -0.00071172	  0.00043618	  7.27175291	  0.99782534	  0.99885210  0.49312875
++4347	 -6.27246502	 -0.00071156	  0.00043608	  7.27175347	  0.99782584	  0.99885236  0.49312878
++4348	 -6.27246541	 -0.00071139	  0.00043598	  7.27175402	  0.99782634	  0.99885263  0.49312886
++4349	 -6.27246581	 -0.00071123	  0.00043588	  7.27175458	  0.99782684	  0.99885289  0.49312892
++4350	 -6.27246620	 -0.00071107	  0.00043578	  7.27175514	  0.99782734	  0.99885315  0.49312899
++4351	 -6.27246659	 -0.00071090	  0.00043568	  7.27175569	  0.99782784	  0.99885342  0.49312906
++4352	 -6.27246699	 -0.00071074	  0.00043558	  7.27175625	  0.99782833	  0.99885368  0.49312908
++4353	 -6.27246738	 -0.00071058	  0.00043548	  7.27175680	  0.99782883	  0.99885394  0.49312914
++4354	 -6.27246777	 -0.00071041	  0.00043538	  7.27175736	  0.99782933	  0.99885421  0.49312922
++4355	 -6.27246816	 -0.00071025	  0.00043528	  7.27175791	  0.99782983	  0.99885447  0.49312926
++4356	 -6.27246856	 -0.00071009	  0.00043518	  7.27175847	  0.99783033	  0.99885473  0.49312934
++4357	 -6.27246895	 -0.00070992	  0.00043508	  7.27175902	  0.99783083	  0.99885499  0.49312938
++4358	 -6.27246934	 -0.00070976	  0.00043498	  7.27175958	  0.99783132	  0.99885526  0.49312944
++4359	 -6.27246973	 -0.00070960	  0.00043488	  7.27176013	  0.99783182	  0.99885552  0.49312948
++4360	 -6.27247012	 -0.00070944	  0.00043478	  7.27176069	  0.99783232	  0.99885578  0.49312957
++4361	 -6.27247051	 -0.00070927	  0.00043468	  7.27176124	  0.99783282	  0.99885604  0.49312962
++4362	 -6.27247090	 -0.00070911	  0.00043458	  7.27176179	  0.99783331	  0.99885631  0.49312968
++4363	 -6.27247129	 -0.00070895	  0.00043448	  7.27176235	  0.99783381	  0.99885657  0.49312972
++4364	 -6.27247168	 -0.00070879	  0.00043438	  7.27176290	  0.99783431	  0.99885683  0.49312980
++4365	 -6.27247207	 -0.00070862	  0.00043428	  7.27176345	  0.99783480	  0.99885709  0.49312985
++4366	 -6.27247246	 -0.00070846	  0.00043418	  7.27176400	  0.99783530	  0.99885735  0.49312992
++4367	 -6.27247285	 -0.00070830	  0.00043409	  7.27176456	  0.99783579	  0.99885762  0.49312999
++4368	 -6.27247324	 -0.00070814	  0.00043399	  7.27176511	  0.99783629	  0.99885788  0.49313003
++4369	 -6.27247363	 -0.00070798	  0.00043389	  7.27176566	  0.99783678	  0.99885814  0.49313009
++4370	 -6.27247402	 -0.00070781	  0.00043379	  7.27176621	  0.99783728	  0.99885840  0.49313014
++4371	 -6.27247441	 -0.00070765	  0.00043369	  7.27176676	  0.99783777	  0.99885866  0.49313021
++4372	 -6.27247480	 -0.00070749	  0.00043359	  7.27176731	  0.99783827	  0.99885892  0.49313025
++4373	 -6.27247519	 -0.00070733	  0.00043349	  7.27176786	  0.99783876	  0.99885918  0.49313031
++4374	 -6.27247558	 -0.00070717	  0.00043339	  7.27176841	  0.99783926	  0.99885944  0.49313036
++4375	 -6.27247597	 -0.00070701	  0.00043329	  7.27176896	  0.99783975	  0.99885970  0.49313043
++4376	 -6.27247636	 -0.00070684	  0.00043319	  7.27176951	  0.99784024	  0.99885996  0.49313047
++4377	 -6.27247674	 -0.00070668	  0.00043309	  7.27177006	  0.99784074	  0.99886022  0.49313056
++4378	 -6.27247713	 -0.00070652	  0.00043299	  7.27177061	  0.99784123	  0.99886048  0.49313062
++4379	 -6.27247752	 -0.00070636	  0.00043290	  7.27177116	  0.99784172	  0.99886074  0.49313067
++4380	 -6.27247791	 -0.00070620	  0.00043280	  7.27177171	  0.99784222	  0.99886100  0.49313072
++4381	 -6.27247829	 -0.00070604	  0.00043270	  7.27177226	  0.99784271	  0.99886126  0.49313077
++4382	 -6.27247868	 -0.00070588	  0.00043260	  7.27177280	  0.99784320	  0.99886152  0.49313084
++4383	 -6.27247907	 -0.00070572	  0.00043250	  7.27177335	  0.99784369	  0.99886178  0.49313089
++4384	 -6.27247945	 -0.00070556	  0.00043240	  7.27177390	  0.99784418	  0.99886204  0.49313094
++4385	 -6.27247984	 -0.00070539	  0.00043230	  7.27177445	  0.99784468	  0.99886230  0.49313101
++4386	 -6.27248023	 -0.00070523	  0.00043220	  7.27177499	  0.99784517	  0.99886256  0.49313105
++4387	 -6.27248061	 -0.00070507	  0.00043211	  7.27177554	  0.99784566	  0.99886282  0.49313111
++4388	 -6.27248100	 -0.00070491	  0.00043201	  7.27177609	  0.99784615	  0.99886308  0.49313117
++4389	 -6.27248139	 -0.00070475	  0.00043191	  7.27177663	  0.99784664	  0.99886334  0.49313123
++4390	 -6.27248177	 -0.00070459	  0.00043181	  7.27177718	  0.99784713	  0.99886360  0.49313129
++4391	 -6.27248216	 -0.00070443	  0.00043171	  7.27177773	  0.99784762	  0.99886386  0.49313133
++4392	 -6.27248254	 -0.00070427	  0.00043161	  7.27177827	  0.99784811	  0.99886411  0.49313142
++4393	 -6.27248293	 -0.00070411	  0.00043152	  7.27177882	  0.99784860	  0.99886437  0.49313147
++4394	 -6.27248331	 -0.00070395	  0.00043142	  7.27177936	  0.99784909	  0.99886463  0.49313152
++4395	 -6.27248370	 -0.00070379	  0.00043132	  7.27177991	  0.99784958	  0.99886489  0.49313157
++4396	 -6.27248408	 -0.00070363	  0.00043122	  7.27178045	  0.99785007	  0.99886515  0.49313161
++4397	 -6.27248447	 -0.00070347	  0.00043112	  7.27178099	  0.99785056	  0.99886541  0.49313168
++4398	 -6.27248485	 -0.00070331	  0.00043103	  7.27178154	  0.99785104	  0.99886566  0.49313174
++4399	 -6.27248523	 -0.00070315	  0.00043093	  7.27178208	  0.99785153	  0.99886592  0.49313183
++4400	 -6.27248562	 -0.00070299	  0.00043083	  7.27178263	  0.99785202	  0.99886618  0.49313186
++4401	 -6.27248600	 -0.00070283	  0.00043073	  7.27178317	  0.99785251	  0.99886644  0.49313191
++4402	 -6.27248638	 -0.00070267	  0.00043063	  7.27178371	  0.99785300	  0.99886669  0.49313198
++4403	 -6.27248677	 -0.00070251	  0.00043054	  7.27178425	  0.99785348	  0.99886695  0.49313204
++4404	 -6.27248715	 -0.00070235	  0.00043044	  7.27178480	  0.99785397	  0.99886721  0.49313208
++4405	 -6.27248753	 -0.00070219	  0.00043034	  7.27178534	  0.99785446	  0.99886747  0.49313214
++4406	 -6.27248792	 -0.00070203	  0.00043024	  7.27178588	  0.99785495	  0.99886772  0.49313220
++4407	 -6.27248830	 -0.00070188	  0.00043014	  7.27178642	  0.99785543	  0.99886798  0.49313224
++4408	 -6.27248868	 -0.00070172	  0.00043005	  7.27178696	  0.99785592	  0.99886824  0.49313233
++4409	 -6.27248906	 -0.00070156	  0.00042995	  7.27178751	  0.99785641	  0.99886849  0.49313235
++4410	 -6.27248945	 -0.00070140	  0.00042985	  7.27178805	  0.99785689	  0.99886875  0.49313243
++4411	 -6.27248983	 -0.00070124	  0.00042975	  7.27178859	  0.99785738	  0.99886901  0.49313250
++4412	 -6.27249021	 -0.00070108	  0.00042966	  7.27178913	  0.99785786	  0.99886926  0.49313254
++4413	 -6.27249059	 -0.00070092	  0.00042956	  7.27178967	  0.99785835	  0.99886952  0.49313259
++4414	 -6.27249097	 -0.00070076	  0.00042946	  7.27179021	  0.99785883	  0.99886977  0.49313265
++4415	 -6.27249135	 -0.00070060	  0.00042937	  7.27179075	  0.99785932	  0.99887003  0.49313270
++4416	 -6.27249173	 -0.00070045	  0.00042927	  7.27179129	  0.99785980	  0.99887029  0.49313277
++4417	 -6.27249211	 -0.00070029	  0.00042917	  7.27179183	  0.99786029	  0.99887054  0.49313282
++4418	 -6.27249250	 -0.00070013	  0.00042907	  7.27179237	  0.99786077	  0.99887080  0.49313289
++4419	 -6.27249288	 -0.00069997	  0.00042898	  7.27179290	  0.99786126	  0.99887105  0.49313291
++4420	 -6.27249326	 -0.00069981	  0.00042888	  7.27179344	  0.99786174	  0.99887131  0.49313301
++4421	 -6.27249364	 -0.00069965	  0.00042878	  7.27179398	  0.99786222	  0.99887156  0.49313305
++4422	 -6.27249402	 -0.00069950	  0.00042869	  7.27179452	  0.99786271	  0.99887182  0.49313311
++4423	 -6.27249440	 -0.00069934	  0.00042859	  7.27179506	  0.99786319	  0.99887207  0.49313316
++4424	 -6.27249477	 -0.00069918	  0.00042849	  7.27179559	  0.99786367	  0.99887233  0.49313322
++4425	 -6.27249515	 -0.00069902	  0.00042840	  7.27179613	  0.99786415	  0.99887258  0.49313329
++4426	 -6.27249553	 -0.00069887	  0.00042830	  7.27179667	  0.99786464	  0.99887284  0.49313333
++4427	 -6.27249591	 -0.00069871	  0.00042820	  7.27179720	  0.99786512	  0.99887309  0.49313340
++4428	 -6.27249629	 -0.00069855	  0.00042810	  7.27179774	  0.99786560	  0.99887335  0.49313343
++4429	 -6.27249667	 -0.00069839	  0.00042801	  7.27179828	  0.99786608	  0.99887360  0.49313349
++4430	 -6.27249705	 -0.00069823	  0.00042791	  7.27179881	  0.99786656	  0.99887385  0.49313355
++4431	 -6.27249743	 -0.00069808	  0.00042781	  7.27179935	  0.99786705	  0.99887411  0.49313361
++4432	 -6.27249780	 -0.00069792	  0.00042772	  7.27179988	  0.99786753	  0.99887436  0.49313365
++4433	 -6.27249818	 -0.00069776	  0.00042762	  7.27180042	  0.99786801	  0.99887462  0.49313373
++4434	 -6.27249856	 -0.00069761	  0.00042753	  7.27180095	  0.99786849	  0.99887487  0.49313378
++4435	 -6.27249894	 -0.00069745	  0.00042743	  7.27180149	  0.99786897	  0.99887512  0.49313382
++4436	 -6.27249931	 -0.00069729	  0.00042733	  7.27180202	  0.99786945	  0.99887538  0.49313387
++4437	 -6.27249969	 -0.00069713	  0.00042724	  7.27180256	  0.99786993	  0.99887563  0.49313395
++4438	 -6.27250007	 -0.00069698	  0.00042714	  7.27180309	  0.99787041	  0.99887588  0.49313401
++4439	 -6.27250045	 -0.00069682	  0.00042704	  7.27180363	  0.99787089	  0.99887614  0.49313405
++4440	 -6.27250082	 -0.00069666	  0.00042695	  7.27180416	  0.99787137	  0.99887639  0.49313411
++4441	 -6.27250120	 -0.00069651	  0.00042685	  7.27180469	  0.99787185	  0.99887664  0.49313417
++4442	 -6.27250158	 -0.00069635	  0.00042676	  7.27180523	  0.99787233	  0.99887689  0.49313425
++4443	 -6.27250195	 -0.00069619	  0.00042666	  7.27180576	  0.99787281	  0.99887715  0.49313428
++4444	 -6.27250233	 -0.00069604	  0.00042656	  7.27180629	  0.99787328	  0.99887740  0.49313433
++4445	 -6.27250270	 -0.00069588	  0.00042647	  7.27180682	  0.99787376	  0.99887765  0.49313436
++4446	 -6.27250308	 -0.00069572	  0.00042637	  7.27180736	  0.99787424	  0.99887790  0.49313447
++4447	 -6.27250345	 -0.00069557	  0.00042628	  7.27180789	  0.99787472	  0.99887816  0.49313453
++4448	 -6.27250383	 -0.00069541	  0.00042618	  7.27180842	  0.99787520	  0.99887841  0.49313456
++4449	 -6.27250420	 -0.00069525	  0.00042608	  7.27180895	  0.99787567	  0.99887866  0.49313463
++4450	 -6.27250458	 -0.00069510	  0.00042599	  7.27180948	  0.99787615	  0.99887891  0.49313466
++4451	 -6.27250495	 -0.00069494	  0.00042589	  7.27181001	  0.99787663	  0.99887916  0.49313471
++4452	 -6.27250533	 -0.00069479	  0.00042580	  7.27181054	  0.99787711	  0.99887942  0.49313478
++4453	 -6.27250570	 -0.00069463	  0.00042570	  7.27181107	  0.99787758	  0.99887967  0.49313484
++4454	 -6.27250608	 -0.00069447	  0.00042561	  7.27181160	  0.99787806	  0.99887992  0.49313489
++4455	 -6.27250645	 -0.00069432	  0.00042551	  7.27181213	  0.99787854	  0.99888017  0.49313499
++4456	 -6.27250683	 -0.00069416	  0.00042541	  7.27181266	  0.99787901	  0.99888042  0.49313500
++4457	 -6.27250720	 -0.00069401	  0.00042532	  7.27181319	  0.99787949	  0.99888067  0.49313506
++4458	 -6.27250757	 -0.00069385	  0.00042522	  7.27181372	  0.99787996	  0.99888092  0.49313510
++4459	 -6.27250795	 -0.00069370	  0.00042513	  7.27181425	  0.99788044	  0.99888117  0.49313518
++4460	 -6.27250832	 -0.00069354	  0.00042503	  7.27181478	  0.99788091	  0.99888143  0.49313523
++4461	 -6.27250869	 -0.00069339	  0.00042494	  7.27181531	  0.99788139	  0.99888168  0.49313528
++4462	 -6.27250906	 -0.00069323	  0.00042484	  7.27181583	  0.99788186	  0.99888193  0.49313532
++4463	 -6.27250944	 -0.00069308	  0.00042475	  7.27181636	  0.99788234	  0.99888218  0.49313537
++4464	 -6.27250981	 -0.00069292	  0.00042465	  7.27181689	  0.99788281	  0.99888243  0.49313545
++4465	 -6.27251018	 -0.00069277	  0.00042456	  7.27181742	  0.99788329	  0.99888268  0.49313551
++4466	 -6.27251055	 -0.00069261	  0.00042446	  7.27181794	  0.99788376	  0.99888293  0.49313557
++4467	 -6.27251093	 -0.00069246	  0.00042437	  7.27181847	  0.99788423	  0.99888318  0.49313560
++4468	 -6.27251130	 -0.00069230	  0.00042427	  7.27181900	  0.99788471	  0.99888343  0.49313566
++4469	 -6.27251167	 -0.00069215	  0.00042418	  7.27181952	  0.99788518	  0.99888368  0.49313574
++4470	 -6.27251204	 -0.00069199	  0.00042408	  7.27182005	  0.99788565	  0.99888393  0.49313579
++4471	 -6.27251241	 -0.00069184	  0.00042399	  7.27182058	  0.99788613	  0.99888418  0.49313583
++4472	 -6.27251278	 -0.00069168	  0.00042389	  7.27182110	  0.99788660	  0.99888443  0.49313587
++4473	 -6.27251315	 -0.00069153	  0.00042380	  7.27182163	  0.99788707	  0.99888468  0.49313593
++4474	 -6.27251353	 -0.00069137	  0.00042370	  7.27182215	  0.99788754	  0.99888492  0.49313600
++4475	 -6.27251390	 -0.00069122	  0.00042361	  7.27182268	  0.99788801	  0.99888517  0.49313604
++4476	 -6.27251427	 -0.00069106	  0.00042351	  7.27182320	  0.99788849	  0.99888542  0.49313613
++4477	 -6.27251464	 -0.00069091	  0.00042342	  7.27182373	  0.99788896	  0.99888567  0.49313616
++4478	 -6.27251501	 -0.00069076	  0.00042332	  7.27182425	  0.99788943	  0.99888592  0.49313621
++4479	 -6.27251538	 -0.00069060	  0.00042323	  7.27182478	  0.99788990	  0.99888617  0.49313628
++4480	 -6.27251575	 -0.00069045	  0.00042314	  7.27182530	  0.99789037	  0.99888642  0.49313634
++4481	 -6.27251612	 -0.00069029	  0.00042304	  7.27182582	  0.99789084	  0.99888667  0.49313637
++4482	 -6.27251649	 -0.00069014	  0.00042295	  7.27182635	  0.99789131	  0.99888691  0.49313644
++4483	 -6.27251685	 -0.00068999	  0.00042285	  7.27182687	  0.99789178	  0.99888716  0.49313651
++4484	 -6.27251722	 -0.00068983	  0.00042276	  7.27182739	  0.99789225	  0.99888741  0.49313656
++4485	 -6.27251759	 -0.00068968	  0.00042266	  7.27182791	  0.99789272	  0.99888766  0.49313664
++4486	 -6.27251796	 -0.00068952	  0.00042257	  7.27182844	  0.99789319	  0.99888791  0.49313666
++4487	 -6.27251833	 -0.00068937	  0.00042248	  7.27182896	  0.99789366	  0.99888815  0.49313670
++4488	 -6.27251870	 -0.00068922	  0.00042238	  7.27182948	  0.99789413	  0.99888840  0.49313677
++4489	 -6.27251907	 -0.00068906	  0.00042229	  7.27183000	  0.99789460	  0.99888865  0.49313683
++4490	 -6.27251943	 -0.00068891	  0.00042219	  7.27183052	  0.99789507	  0.99888890  0.49313687
++4491	 -6.27251980	 -0.00068876	  0.00042210	  7.27183104	  0.99789554	  0.99888914  0.49313691
++4492	 -6.27252017	 -0.00068860	  0.00042200	  7.27183157	  0.99789601	  0.99888939  0.49313700
++4493	 -6.27252054	 -0.00068845	  0.00042191	  7.27183209	  0.99789647	  0.99888964  0.49313706
++4494	 -6.27252091	 -0.00068830	  0.00042182	  7.27183261	  0.99789694	  0.99888988  0.49313707
++4495	 -6.27252127	 -0.00068815	  0.00042172	  7.27183313	  0.99789741	  0.99889013  0.49313711
++4496	 -6.27252164	 -0.00068799	  0.00042163	  7.27183365	  0.99789788	  0.99889038  0.49313720
++4497	 -6.27252201	 -0.00068784	  0.00042154	  7.27183417	  0.99789835	  0.99889062  0.49313727
++4498	 -6.27252237	 -0.00068769	  0.00042144	  7.27183469	  0.99789881	  0.99889087  0.49313733
++4499	 -6.27252274	 -0.00068753	  0.00042135	  7.27183521	  0.99789928	  0.99889112  0.49313737
++4500	 -6.27252311	 -0.00068738	  0.00042125	  7.27183572	  0.99789975	  0.99889136  0.49313744
++4501	 -6.27252347	 -0.00068723	  0.00042116	  7.27183624	  0.99790021	  0.99889161  0.49313749
++4502	 -6.27252384	 -0.00068708	  0.00042107	  7.27183676	  0.99790068	  0.99889186  0.49313754
++4503	 -6.27252420	 -0.00068692	  0.00042097	  7.27183728	  0.99790115	  0.99889210  0.49313760
++4504	 -6.27252457	 -0.00068677	  0.00042088	  7.27183780	  0.99790161	  0.99889235  0.49313767
++4505	 -6.27252494	 -0.00068662	  0.00042079	  7.27183832	  0.99790208	  0.99889259  0.49313771
++4506	 -6.27252530	 -0.00068647	  0.00042069	  7.27183883	  0.99790254	  0.99889284  0.49313775
++4507	 -6.27252567	 -0.00068631	  0.00042060	  7.27183935	  0.99790301	  0.99889309  0.49313782
++4508	 -6.27252603	 -0.00068616	  0.00042051	  7.27183987	  0.99790347	  0.99889333  0.49313786
++4509	 -6.27252640	 -0.00068601	  0.00042041	  7.27184039	  0.99790394	  0.99889358  0.49313791
++4510	 -6.27252676	 -0.00068586	  0.00042032	  7.27184090	  0.99790440	  0.99889382  0.49313797
++4511	 -6.27252712	 -0.00068571	  0.00042023	  7.27184142	  0.99790487	  0.99889407  0.49313801
++4512	 -6.27252749	 -0.00068555	  0.00042013	  7.27184193	  0.99790533	  0.99889431  0.49313810
++4513	 -6.27252785	 -0.00068540	  0.00042004	  7.27184245	  0.99790579	  0.99889456  0.49313815
++4514	 -6.27252822	 -0.00068525	  0.00041995	  7.27184297	  0.99790626	  0.99889480  0.49313818
++4515	 -6.27252858	 -0.00068510	  0.00041985	  7.27184348	  0.99790672	  0.99889505  0.49313824
++4516	 -6.27252895	 -0.00068495	  0.00041976	  7.27184400	  0.99790719	  0.99889529  0.49313828
++4517	 -6.27252931	 -0.00068480	  0.00041967	  7.27184451	  0.99790765	  0.99889553  0.49313835
++4518	 -6.27252967	 -0.00068464	  0.00041958	  7.27184503	  0.99790811	  0.99889578  0.49313842
++4519	 -6.27253004	 -0.00068449	  0.00041948	  7.27184554	  0.99790857	  0.99889602  0.49313845
++4520	 -6.27253040	 -0.00068434	  0.00041939	  7.27184606	  0.99790904	  0.99889627  0.49313853
++4521	 -6.27253076	 -0.00068419	  0.00041930	  7.27184657	  0.99790950	  0.99889651  0.49313854
++4522	 -6.27253112	 -0.00068404	  0.00041920	  7.27184708	  0.99790996	  0.99889676  0.49313861
++4523	 -6.27253149	 -0.00068389	  0.00041911	  7.27184760	  0.99791042	  0.99889700  0.49313867
++4524	 -6.27253185	 -0.00068374	  0.00041902	  7.27184811	  0.99791089	  0.99889724  0.49313874
++4525	 -6.27253221	 -0.00068359	  0.00041893	  7.27184862	  0.99791135	  0.99889749  0.49313876
++4526	 -6.27253257	 -0.00068344	  0.00041883	  7.27184914	  0.99791181	  0.99889773  0.49313881
++4527	 -6.27253293	 -0.00068328	  0.00041874	  7.27184965	  0.99791227	  0.99889797  0.49313886
++4528	 -6.27253330	 -0.00068313	  0.00041865	  7.27185016	  0.99791273	  0.99889822  0.49313893
++4529	 -6.27253366	 -0.00068298	  0.00041856	  7.27185068	  0.99791319	  0.99889846  0.49313897
++4530	 -6.27253402	 -0.00068283	  0.00041846	  7.27185119	  0.99791365	  0.99889870  0.49313904
++4531	 -6.27253438	 -0.00068268	  0.00041837	  7.27185170	  0.99791411	  0.99889895  0.49313909
++4532	 -6.27253474	 -0.00068253	  0.00041828	  7.27185221	  0.99791457	  0.99889919  0.49313915
++4533	 -6.27253510	 -0.00068238	  0.00041819	  7.27185272	  0.99791503	  0.99889943  0.49313920
++4534	 -6.27253546	 -0.00068223	  0.00041810	  7.27185323	  0.99791549	  0.99889967  0.49313924
++4535	 -6.27253582	 -0.00068208	  0.00041800	  7.27185374	  0.99791595	  0.99889992  0.49313932
++4536	 -6.27253618	 -0.00068193	  0.00041791	  7.27185425	  0.99791641	  0.99890016  0.49313937
++4537	 -6.27253654	 -0.00068178	  0.00041782	  7.27185477	  0.99791687	  0.99890040  0.49313944
++4538	 -6.27253690	 -0.00068163	  0.00041773	  7.27185528	  0.99791733	  0.99890064  0.49313947
++4539	 -6.27253726	 -0.00068148	  0.00041763	  7.27185579	  0.99791779	  0.99890089  0.49313953
++4540	 -6.27253762	 -0.00068133	  0.00041754	  7.27185630	  0.99791825	  0.99890113  0.49313960
++4541	 -6.27253798	 -0.00068118	  0.00041745	  7.27185680	  0.99791871	  0.99890137  0.49313964
++4542	 -6.27253834	 -0.00068103	  0.00041736	  7.27185731	  0.99791916	  0.99890161  0.49313969
++4543	 -6.27253870	 -0.00068088	  0.00041727	  7.27185782	  0.99791962	  0.99890185  0.49313973
++4544	 -6.27253906	 -0.00068073	  0.00041718	  7.27185833	  0.99792008	  0.99890209  0.49313978
++4545	 -6.27253942	 -0.00068058	  0.00041708	  7.27185884	  0.99792054	  0.99890234  0.49313983
++4546	 -6.27253978	 -0.00068043	  0.00041699	  7.27185935	  0.99792099	  0.99890258  0.49313991
++4547	 -6.27254014	 -0.00068028	  0.00041690	  7.27185986	  0.99792145	  0.99890282  0.49313998
++4548	 -6.27254050	 -0.00068013	  0.00041681	  7.27186036	  0.99792191	  0.99890306  0.49314002
++4549	 -6.27254086	 -0.00067998	  0.00041672	  7.27186087	  0.99792237	  0.99890330  0.49314008
++4550	 -6.27254121	 -0.00067983	  0.00041662	  7.27186138	  0.99792282	  0.99890354  0.49314012
++4551	 -6.27254157	 -0.00067968	  0.00041653	  7.27186189	  0.99792328	  0.99890378  0.49314018
++4552	 -6.27254193	 -0.00067953	  0.00041644	  7.27186239	  0.99792373	  0.99890402  0.49314019
++4553	 -6.27254229	 -0.00067939	  0.00041635	  7.27186290	  0.99792419	  0.99890426  0.49314025
++4554	 -6.27254264	 -0.00067924	  0.00041626	  7.27186341	  0.99792465	  0.99890450  0.49314034
++4555	 -6.27254300	 -0.00067909	  0.00041617	  7.27186391	  0.99792510	  0.99890474  0.49314040
++4556	 -6.27254336	 -0.00067894	  0.00041608	  7.27186442	  0.99792556	  0.99890499  0.49314044
++4557	 -6.27254372	 -0.00067879	  0.00041598	  7.27186493	  0.99792601	  0.99890523  0.49314049
++4558	 -6.27254407	 -0.00067864	  0.00041589	  7.27186543	  0.99792647	  0.99890547  0.49314054
++4559	 -6.27254443	 -0.00067849	  0.00041580	  7.27186594	  0.99792692	  0.99890571  0.49314058
++4560	 -6.27254479	 -0.00067834	  0.00041571	  7.27186644	  0.99792738	  0.99890595  0.49314062
++4561	 -6.27254514	 -0.00067819	  0.00041562	  7.27186695	  0.99792783	  0.99890618  0.49314070
++4562	 -6.27254550	 -0.00067805	  0.00041553	  7.27186745	  0.99792828	  0.99890642  0.49314075
++4563	 -6.27254585	 -0.00067790	  0.00041544	  7.27186796	  0.99792874	  0.99890666  0.49314079
++4564	 -6.27254621	 -0.00067775	  0.00041535	  7.27186846	  0.99792919	  0.99890690  0.49314085
++4565	 -6.27254657	 -0.00067760	  0.00041526	  7.27186897	  0.99792965	  0.99890714  0.49314090
++4566	 -6.27254692	 -0.00067745	  0.00041516	  7.27186947	  0.99793010	  0.99890738  0.49314094
++4567	 -6.27254728	 -0.00067730	  0.00041507	  7.27186997	  0.99793055	  0.99890762  0.49314100
++4568	 -6.27254763	 -0.00067716	  0.00041498	  7.27187048	  0.99793101	  0.99890786  0.49314106
++4569	 -6.27254799	 -0.00067701	  0.00041489	  7.27187098	  0.99793146	  0.99890810  0.49314111
++4570	 -6.27254834	 -0.00067686	  0.00041480	  7.27187148	  0.99793191	  0.99890834  0.49314118
++4571	 -6.27254870	 -0.00067671	  0.00041471	  7.27187199	  0.99793236	  0.99890858  0.49314123
++4572	 -6.27254905	 -0.00067656	  0.00041462	  7.27187249	  0.99793282	  0.99890882  0.49314127
++4573	 -6.27254941	 -0.00067642	  0.00041453	  7.27187299	  0.99793327	  0.99890905  0.49314132
++4574	 -6.27254976	 -0.00067627	  0.00041444	  7.27187349	  0.99793372	  0.99890929  0.49314138
++4575	 -6.27255012	 -0.00067612	  0.00041435	  7.27187399	  0.99793417	  0.99890953  0.49314144
++4576	 -6.27255047	 -0.00067597	  0.00041426	  7.27187450	  0.99793462	  0.99890977  0.49314149
++4577	 -6.27255082	 -0.00067583	  0.00041417	  7.27187500	  0.99793507	  0.99891001  0.49314155
++4578	 -6.27255118	 -0.00067568	  0.00041408	  7.27187550	  0.99793552	  0.99891025  0.49314159
++4579	 -6.27255153	 -0.00067553	  0.00041399	  7.27187600	  0.99793597	  0.99891048  0.49314164
++4580	 -6.27255188	 -0.00067538	  0.00041390	  7.27187650	  0.99793643	  0.99891072  0.49314169
++4581	 -6.27255224	 -0.00067524	  0.00041381	  7.27187700	  0.99793688	  0.99891096  0.49314176
++4582	 -6.27255259	 -0.00067509	  0.00041372	  7.27187750	  0.99793733	  0.99891120  0.49314181
++4583	 -6.27255294	 -0.00067494	  0.00041362	  7.27187800	  0.99793778	  0.99891143  0.49314185
++4584	 -6.27255330	 -0.00067479	  0.00041353	  7.27187850	  0.99793823	  0.99891167  0.49314190
++4585	 -6.27255365	 -0.00067465	  0.00041344	  7.27187900	  0.99793868	  0.99891191  0.49314197
++4586	 -6.27255400	 -0.00067450	  0.00041335	  7.27187950	  0.99793912	  0.99891215  0.49314200
++4587	 -6.27255435	 -0.00067435	  0.00041326	  7.27188000	  0.99793957	  0.99891238  0.49314208
++4588	 -6.27255470	 -0.00067421	  0.00041317	  7.27188050	  0.99794002	  0.99891262  0.49314213
++4589	 -6.27255506	 -0.00067406	  0.00041308	  7.27188100	  0.99794047	  0.99891286  0.49314217
++4590	 -6.27255541	 -0.00067391	  0.00041299	  7.27188150	  0.99794092	  0.99891309  0.49314220
++4591	 -6.27255576	 -0.00067377	  0.00041290	  7.27188199	  0.99794137	  0.99891333  0.49314225
++4592	 -6.27255611	 -0.00067362	  0.00041281	  7.27188249	  0.99794182	  0.99891357  0.49314232
++4593	 -6.27255646	 -0.00067347	  0.00041272	  7.27188299	  0.99794227	  0.99891380  0.49314238
++4594	 -6.27255681	 -0.00067333	  0.00041263	  7.27188349	  0.99794271	  0.99891404  0.49314241
++4595	 -6.27255717	 -0.00067318	  0.00041254	  7.27188398	  0.99794316	  0.99891428  0.49314247
++4596	 -6.27255752	 -0.00067303	  0.00041245	  7.27188448	  0.99794361	  0.99891451  0.49314253
++4597	 -6.27255787	 -0.00067289	  0.00041236	  7.27188498	  0.99794406	  0.99891475  0.49314258
++4598	 -6.27255822	 -0.00067274	  0.00041228	  7.27188548	  0.99794450	  0.99891498  0.49314263
++4599	 -6.27255857	 -0.00067260	  0.00041219	  7.27188597	  0.99794495	  0.99891522  0.49314268
++4600	 -6.27255892	 -0.00067245	  0.00041210	  7.27188647	  0.99794540	  0.99891545  0.49314274
++4601	 -6.27255927	 -0.00067230	  0.00041201	  7.27188696	  0.99794584	  0.99891569  0.49314280
++4602	 -6.27255962	 -0.00067216	  0.00041192	  7.27188746	  0.99794629	  0.99891593  0.49314284
++4603	 -6.27255997	 -0.00067201	  0.00041183	  7.27188796	  0.99794673	  0.99891616  0.49314287
++4604	 -6.27256032	 -0.00067187	  0.00041174	  7.27188845	  0.99794718	  0.99891640  0.49314297
++4605	 -6.27256067	 -0.00067172	  0.00041165	  7.27188895	  0.99794763	  0.99891663  0.49314303
++4606	 -6.27256102	 -0.00067157	  0.00041156	  7.27188944	  0.99794807	  0.99891687  0.49314307
++4607	 -6.27256137	 -0.00067143	  0.00041147	  7.27188994	  0.99794852	  0.99891710  0.49314312
++4608	 -6.27256171	 -0.00067128	  0.00041138	  7.27189043	  0.99794896	  0.99891734  0.49314315
++4609	 -6.27256206	 -0.00067114	  0.00041129	  7.27189093	  0.99794941	  0.99891757  0.49314322
++4610	 -6.27256241	 -0.00067099	  0.00041120	  7.27189142	  0.99794985	  0.99891781  0.49314325
++4611	 -6.27256276	 -0.00067085	  0.00041111	  7.27189191	  0.99795030	  0.99891804  0.49314333
++4612	 -6.27256311	 -0.00067070	  0.00041102	  7.27189241	  0.99795074	  0.99891828  0.49314337
++4613	 -6.27256346	 -0.00067056	  0.00041093	  7.27189290	  0.99795119	  0.99891851  0.49314340
++4614	 -6.27256381	 -0.00067041	  0.00041085	  7.27189339	  0.99795163	  0.99891874  0.49314348
++4615	 -6.27256415	 -0.00067027	  0.00041076	  7.27189389	  0.99795207	  0.99891898  0.49314353
++4616	 -6.27256450	 -0.00067012	  0.00041067	  7.27189438	  0.99795252	  0.99891921  0.49314358
++4617	 -6.27256485	 -0.00066998	  0.00041058	  7.27189487	  0.99795296	  0.99891945  0.49314365
++4618	 -6.27256520	 -0.00066983	  0.00041049	  7.27189537	  0.99795340	  0.99891968  0.49314368
++4619	 -6.27256554	 -0.00066969	  0.00041040	  7.27189586	  0.99795385	  0.99891991  0.49314376
++4620	 -6.27256589	 -0.00066954	  0.00041031	  7.27189635	  0.99795429	  0.99892015  0.49314379
++4621	 -6.27256624	 -0.00066940	  0.00041022	  7.27189684	  0.99795473	  0.99892038  0.49314383
++4622	 -6.27256658	 -0.00066925	  0.00041013	  7.27189733	  0.99795517	  0.99892061  0.49314389
++4623	 -6.27256693	 -0.00066911	  0.00041005	  7.27189782	  0.99795562	  0.99892085  0.49314395
++4624	 -6.27256728	 -0.00066896	  0.00040996	  7.27189832	  0.99795606	  0.99892108  0.49314398
++4625	 -6.27256762	 -0.00066882	  0.00040987	  7.27189881	  0.99795650	  0.99892131  0.49314403
++4626	 -6.27256797	 -0.00066867	  0.00040978	  7.27189930	  0.99795694	  0.99892155  0.49314409
++4627	 -6.27256832	 -0.00066853	  0.00040969	  7.27189979	  0.99795738	  0.99892178  0.49314415
++4628	 -6.27256866	 -0.00066838	  0.00040960	  7.27190028	  0.99795782	  0.99892201  0.49314419
++4629	 -6.27256901	 -0.00066824	  0.00040951	  7.27190077	  0.99795827	  0.99892225  0.49314425
++4630	 -6.27256935	 -0.00066810	  0.00040943	  7.27190126	  0.99795871	  0.99892248  0.49314428
++4631	 -6.27256970	 -0.00066795	  0.00040934	  7.27190175	  0.99795915	  0.99892271  0.49314436
++4632	 -6.27257004	 -0.00066781	  0.00040925	  7.27190224	  0.99795959	  0.99892294  0.49314439
++4633	 -6.27257039	 -0.00066766	  0.00040916	  7.27190273	  0.99796003	  0.99892318  0.49314446
++4634	 -6.27257073	 -0.00066752	  0.00040907	  7.27190322	  0.99796047	  0.99892341  0.49314452
++4635	 -6.27257108	 -0.00066738	  0.00040898	  7.27190370	  0.99796091	  0.99892364  0.49314453
++4636	 -6.27257142	 -0.00066723	  0.00040890	  7.27190419	  0.99796135	  0.99892387  0.49314460
++4637	 -6.27257177	 -0.00066709	  0.00040881	  7.27190468	  0.99796179	  0.99892410  0.49314466
++4638	 -6.27257211	 -0.00066694	  0.00040872	  7.27190517	  0.99796223	  0.99892434  0.49314470
++4639	 -6.27257246	 -0.00066680	  0.00040863	  7.27190566	  0.99796267	  0.99892457  0.49314476
++4640	 -6.27257280	 -0.00066666	  0.00040854	  7.27190615	  0.99796311	  0.99892480  0.49314482
++4641	 -6.27257315	 -0.00066651	  0.00040846	  7.27190663	  0.99796354	  0.99892503  0.49314486
++4642	 -6.27257349	 -0.00066637	  0.00040837	  7.27190712	  0.99796398	  0.99892526  0.49314490
++4643	 -6.27257383	 -0.00066623	  0.00040828	  7.27190761	  0.99796442	  0.99892549  0.49314498
++4644	 -6.27257418	 -0.00066608	  0.00040819	  7.27190809	  0.99796486	  0.99892573  0.49314501
++4645	 -6.27257452	 -0.00066594	  0.00040810	  7.27190858	  0.99796530	  0.99892596  0.49314505
++4646	 -6.27257486	 -0.00066580	  0.00040802	  7.27190907	  0.99796574	  0.99892619  0.49314512
++4647	 -6.27257521	 -0.00066565	  0.00040793	  7.27190955	  0.99796617	  0.99892642  0.49314515
++4648	 -6.27257555	 -0.00066551	  0.00040784	  7.27191004	  0.99796661	  0.99892665  0.49314521
++4649	 -6.27257589	 -0.00066537	  0.00040775	  7.27191053	  0.99796705	  0.99892688  0.49314528
++4650	 -6.27257623	 -0.00066522	  0.00040766	  7.27191101	  0.99796748	  0.99892711  0.49314532
++4651	 -6.27257658	 -0.00066508	  0.00040758	  7.27191150	  0.99796792	  0.99892734  0.49314537
++4652	 -6.27257692	 -0.00066494	  0.00040749	  7.27191198	  0.99796836	  0.99892757  0.49314541
++4653	 -6.27257726	 -0.00066480	  0.00040740	  7.27191247	  0.99796880	  0.99892780  0.49314547
++4654	 -6.27257760	 -0.00066465	  0.00040731	  7.27191295	  0.99796923	  0.99892803  0.49314555
++4655	 -6.27257795	 -0.00066451	  0.00040723	  7.27191344	  0.99796967	  0.99892826  0.49314558
++4656	 -6.27257829	 -0.00066437	  0.00040714	  7.27191392	  0.99797010	  0.99892849  0.49314564
++4657	 -6.27257863	 -0.00066422	  0.00040705	  7.27191440	  0.99797054	  0.99892872  0.49314568
++4658	 -6.27257897	 -0.00066408	  0.00040696	  7.27191489	  0.99797098	  0.99892895  0.49314573
++4659	 -6.27257931	 -0.00066394	  0.00040688	  7.27191537	  0.99797141	  0.99892918  0.49314579
++4660	 -6.27257965	 -0.00066380	  0.00040679	  7.27191586	  0.99797185	  0.99892941  0.49314582
++4661	 -6.27257999	 -0.00066366	  0.00040670	  7.27191634	  0.99797228	  0.99892964  0.49314588
++4662	 -6.27258033	 -0.00066351	  0.00040662	  7.27191682	  0.99797272	  0.99892987  0.49314593
++4663	 -6.27258068	 -0.00066337	  0.00040653	  7.27191730	  0.99797315	  0.99893010  0.49314598
++4664	 -6.27258102	 -0.00066323	  0.00040644	  7.27191779	  0.99797358	  0.99893033  0.49314603
++4665	 -6.27258136	 -0.00066309	  0.00040635	  7.27191827	  0.99797402	  0.99893056  0.49314608
++4666	 -6.27258170	 -0.00066294	  0.00040627	  7.27191875	  0.99797445	  0.99893079  0.49314611
++4667	 -6.27258204	 -0.00066280	  0.00040618	  7.27191923	  0.99797489	  0.99893102  0.49314621
++4668	 -6.27258238	 -0.00066266	  0.00040609	  7.27191972	  0.99797532	  0.99893125  0.49314623
++4669	 -6.27258272	 -0.00066252	  0.00040601	  7.27192020	  0.99797575	  0.99893148  0.49314626
++4670	 -6.27258306	 -0.00066238	  0.00040592	  7.27192068	  0.99797619	  0.99893170  0.49314635
++4671	 -6.27258340	 -0.00066224	  0.00040583	  7.27192116	  0.99797662	  0.99893193  0.49314639
++4672	 -6.27258373	 -0.00066209	  0.00040574	  7.27192164	  0.99797705	  0.99893216  0.49314644
++4673	 -6.27258407	 -0.00066195	  0.00040566	  7.27192212	  0.99797749	  0.99893239  0.49314649
++4674	 -6.27258441	 -0.00066181	  0.00040557	  7.27192260	  0.99797792	  0.99893262  0.49314651
++4675	 -6.27258475	 -0.00066167	  0.00040548	  7.27192308	  0.99797835	  0.99893285  0.49314660
++4676	 -6.27258509	 -0.00066153	  0.00040540	  7.27192356	  0.99797878	  0.99893307  0.49314663
++4677	 -6.27258543	 -0.00066139	  0.00040531	  7.27192404	  0.99797922	  0.99893330  0.49314669
++4678	 -6.27258577	 -0.00066125	  0.00040522	  7.27192452	  0.99797965	  0.99893353  0.49314673
++4679	 -6.27258611	 -0.00066110	  0.00040514	  7.27192500	  0.99798008	  0.99893376  0.49314679
++4680	 -6.27258644	 -0.00066096	  0.00040505	  7.27192548	  0.99798051	  0.99893399  0.49314686
++4681	 -6.27258678	 -0.00066082	  0.00040496	  7.27192596	  0.99798094	  0.99893421  0.49314689
++4682	 -6.27258712	 -0.00066068	  0.00040488	  7.27192644	  0.99798137	  0.99893444  0.49314694
++4683	 -6.27258746	 -0.00066054	  0.00040479	  7.27192692	  0.99798181	  0.99893467  0.49314700
++4684	 -6.27258780	 -0.00066040	  0.00040471	  7.27192740	  0.99798224	  0.99893490  0.49314705
++4685	 -6.27258813	 -0.00066026	  0.00040462	  7.27192788	  0.99798267	  0.99893512  0.49314708
++4686	 -6.27258847	 -0.00066012	  0.00040453	  7.27192835	  0.99798310	  0.99893535  0.49314712
++4687	 -6.27258881	 -0.00065998	  0.00040445	  7.27192883	  0.99798353	  0.99893558  0.49314719
++4688	 -6.27258914	 -0.00065984	  0.00040436	  7.27192931	  0.99798396	  0.99893580  0.49314727
++4689	 -6.27258948	 -0.00065970	  0.00040427	  7.27192979	  0.99798439	  0.99893603  0.49314727
++4690	 -6.27258982	 -0.00065955	  0.00040419	  7.27193026	  0.99798482	  0.99893626  0.49314731
++4691	 -6.27259015	 -0.00065941	  0.00040410	  7.27193074	  0.99798525	  0.99893648  0.49314740
++4692	 -6.27259049	 -0.00065927	  0.00040401	  7.27193122	  0.99798568	  0.99893671  0.49314745
++4693	 -6.27259083	 -0.00065913	  0.00040393	  7.27193169	  0.99798610	  0.99893694  0.49314746
++4694	 -6.27259116	 -0.00065899	  0.00040384	  7.27193217	  0.99798653	  0.99893716  0.49314754
++4695	 -6.27259150	 -0.00065885	  0.00040376	  7.27193265	  0.99798696	  0.99893739  0.49314761
++4696	 -6.27259184	 -0.00065871	  0.00040367	  7.27193312	  0.99798739	  0.99893762  0.49314766
++4697	 -6.27259217	 -0.00065857	  0.00040358	  7.27193360	  0.99798782	  0.99893784  0.49314769
++4698	 -6.27259251	 -0.00065843	  0.00040350	  7.27193407	  0.99798825	  0.99893807  0.49314775
++4699	 -6.27259284	 -0.00065829	  0.00040341	  7.27193455	  0.99798868	  0.99893829  0.49314778
++4700	 -6.27259318	 -0.00065815	  0.00040333	  7.27193502	  0.99798910	  0.99893852  0.49314784
++4701	 -6.27259351	 -0.00065801	  0.00040324	  7.27193550	  0.99798953	  0.99893875  0.49314788
++4702	 -6.27259385	 -0.00065787	  0.00040316	  7.27193597	  0.99798996	  0.99893897  0.49314794
++4703	 -6.27259418	 -0.00065773	  0.00040307	  7.27193645	  0.99799039	  0.99893920  0.49314799
++4704	 -6.27259452	 -0.00065759	  0.00040298	  7.27193692	  0.99799081	  0.99893942  0.49314805
++4705	 -6.27259485	 -0.00065745	  0.00040290	  7.27193740	  0.99799124	  0.99893965  0.49314807
++4706	 -6.27259519	 -0.00065731	  0.00040281	  7.27193787	  0.99799167	  0.99893987  0.49314813
++4707	 -6.27259552	 -0.00065717	  0.00040273	  7.27193835	  0.99799209	  0.99894010  0.49314822
++4708	 -6.27259585	 -0.00065703	  0.00040264	  7.27193882	  0.99799252	  0.99894032  0.49314825
++4709	 -6.27259619	 -0.00065690	  0.00040256	  7.27193929	  0.99799295	  0.99894055  0.49314830
++4710	 -6.27259652	 -0.00065676	  0.00040247	  7.27193977	  0.99799337	  0.99894077  0.49314836
++4711	 -6.27259686	 -0.00065662	  0.00040239	  7.27194024	  0.99799380	  0.99894100  0.49314839
++4712	 -6.27259719	 -0.00065648	  0.00040230	  7.27194071	  0.99799422	  0.99894122  0.49314844
++4713	 -6.27259752	 -0.00065634	  0.00040221	  7.27194118	  0.99799465	  0.99894145  0.49314848
++4714	 -6.27259786	 -0.00065620	  0.00040213	  7.27194166	  0.99799507	  0.99894167  0.49314852
++4715	 -6.27259819	 -0.00065606	  0.00040204	  7.27194213	  0.99799550	  0.99894190  0.49314858
++4716	 -6.27259852	 -0.00065592	  0.00040196	  7.27194260	  0.99799593	  0.99894212  0.49314864
++4717	 -6.27259885	 -0.00065578	  0.00040187	  7.27194307	  0.99799635	  0.99894234  0.49314867
++4718	 -6.27259919	 -0.00065564	  0.00040179	  7.27194354	  0.99799677	  0.99894257  0.49314872
++4719	 -6.27259952	 -0.00065550	  0.00040170	  7.27194402	  0.99799720	  0.99894279  0.49314880
++4720	 -6.27259985	 -0.00065537	  0.00040162	  7.27194449	  0.99799762	  0.99894302  0.49314880
++4721	 -6.27260018	 -0.00065523	  0.00040153	  7.27194496	  0.99799805	  0.99894324  0.49314888
++4722	 -6.27260052	 -0.00065509	  0.00040145	  7.27194543	  0.99799847	  0.99894346  0.49314897
++4723	 -6.27260085	 -0.00065495	  0.00040136	  7.27194590	  0.99799889	  0.99894369  0.49314899
++4724	 -6.27260118	 -0.00065481	  0.00040128	  7.27194637	  0.99799932	  0.99894391  0.49314902
++4725	 -6.27260151	 -0.00065467	  0.00040119	  7.27194684	  0.99799974	  0.99894413  0.49314908
++4726	 -6.27260184	 -0.00065453	  0.00040111	  7.27194731	  0.99800016	  0.99894436  0.49314911
++4727	 -6.27260217	 -0.00065440	  0.00040102	  7.27194778	  0.99800059	  0.99894458  0.49314920
++4728	 -6.27260251	 -0.00065426	  0.00040094	  7.27194825	  0.99800101	  0.99894480  0.49314922
++4729	 -6.27260284	 -0.00065412	  0.00040085	  7.27194872	  0.99800143	  0.99894503  0.49314928
++4730	 -6.27260317	 -0.00065398	  0.00040077	  7.27194919	  0.99800186	  0.99894525  0.49314931
++4731	 -6.27260350	 -0.00065384	  0.00040068	  7.27194966	  0.99800228	  0.99894547  0.49314937
++4732	 -6.27260383	 -0.00065370	  0.00040060	  7.27195013	  0.99800270	  0.99894570  0.49314942
++4733	 -6.27260416	 -0.00065357	  0.00040051	  7.27195059	  0.99800312	  0.99894592  0.49314947
++4734	 -6.27260449	 -0.00065343	  0.00040043	  7.27195106	  0.99800354	  0.99894614  0.49314952
++4735	 -6.27260482	 -0.00065329	  0.00040035	  7.27195153	  0.99800397	  0.99894636  0.49314960
++4736	 -6.27260515	 -0.00065315	  0.00040026	  7.27195200	  0.99800439	  0.99894659  0.49314963
++4737	 -6.27260548	 -0.00065302	  0.00040018	  7.27195247	  0.99800481	  0.99894681  0.49314965
++4738	 -6.27260581	 -0.00065288	  0.00040009	  7.27195293	  0.99800523	  0.99894703  0.49314972
++4739	 -6.27260614	 -0.00065274	  0.00040001	  7.27195340	  0.99800565	  0.99894725  0.49314975
++4740	 -6.27260647	 -0.00065260	  0.00039992	  7.27195387	  0.99800607	  0.99894747  0.49314983
++4741	 -6.27260680	 -0.00065246	  0.00039984	  7.27195434	  0.99800649	  0.99894770  0.49314987
++4742	 -6.27260713	 -0.00065233	  0.00039975	  7.27195480	  0.99800691	  0.99894792  0.49314994
++4743	 -6.27260746	 -0.00065219	  0.00039967	  7.27195527	  0.99800733	  0.99894814  0.49314996
++4744	 -6.27260779	 -0.00065205	  0.00039959	  7.27195573	  0.99800775	  0.99894836  0.49314998
++4745	 -6.27260812	 -0.00065192	  0.00039950	  7.27195620	  0.99800817	  0.99894858  0.49315004
++4746	 -6.27260844	 -0.00065178	  0.00039942	  7.27195667	  0.99800859	  0.99894880  0.49315011
++4747	 -6.27260877	 -0.00065164	  0.00039933	  7.27195713	  0.99800901	  0.99894903  0.49315016
++4748	 -6.27260910	 -0.00065150	  0.00039925	  7.27195760	  0.99800943	  0.99894925  0.49315020
++4749	 -6.27260943	 -0.00065137	  0.00039917	  7.27195806	  0.99800985	  0.99894947  0.49315028
++4750	 -6.27260976	 -0.00065123	  0.00039908	  7.27195853	  0.99801027	  0.99894969  0.49315027
++4751	 -6.27261009	 -0.00065109	  0.00039900	  7.27195899	  0.99801069	  0.99894991  0.49315035
++4752	 -6.27261041	 -0.00065096	  0.00039891	  7.27195946	  0.99801110	  0.99895013  0.49315041
++4753	 -6.27261074	 -0.00065082	  0.00039883	  7.27195992	  0.99801152	  0.99895035  0.49315047
++4754	 -6.27261107	 -0.00065068	  0.00039875	  7.27196039	  0.99801194	  0.99895057  0.49315053
++4755	 -6.27261140	 -0.00065055	  0.00039866	  7.27196085	  0.99801236	  0.99895079  0.49315055
++4756	 -6.27261172	 -0.00065041	  0.00039858	  7.27196132	  0.99801278	  0.99895101  0.49315059
++4757	 -6.27261205	 -0.00065027	  0.00039849	  7.27196178	  0.99801320	  0.99895123  0.49315063
++4758	 -6.27261238	 -0.00065014	  0.00039841	  7.27196224	  0.99801361	  0.99895145  0.49315070
++4759	 -6.27261271	 -0.00065000	  0.00039833	  7.27196271	  0.99801403	  0.99895167  0.49315074
++4760	 -6.27261303	 -0.00064986	  0.00039824	  7.27196317	  0.99801445	  0.99895189  0.49315081
++4761	 -6.27261336	 -0.00064973	  0.00039816	  7.27196363	  0.99801486	  0.99895212  0.49315083
++4762	 -6.27261369	 -0.00064959	  0.00039808	  7.27196410	  0.99801528	  0.99895233  0.49315088
++4763	 -6.27261401	 -0.00064945	  0.00039799	  7.27196456	  0.99801570	  0.99895255  0.49315095
++4764	 -6.27261434	 -0.00064932	  0.00039791	  7.27196502	  0.99801611	  0.99895277  0.49315102
++4765	 -6.27261466	 -0.00064918	  0.00039782	  7.27196548	  0.99801653	  0.99895299  0.49315101
++4766	 -6.27261499	 -0.00064904	  0.00039774	  7.27196595	  0.99801695	  0.99895321  0.49315109
++4767	 -6.27261532	 -0.00064891	  0.00039766	  7.27196641	  0.99801736	  0.99895343  0.49315112
++4768	 -6.27261564	 -0.00064877	  0.00039757	  7.27196687	  0.99801778	  0.99895365  0.49315120
++4769	 -6.27261597	 -0.00064864	  0.00039749	  7.27196733	  0.99801819	  0.99895387  0.49315122
++4770	 -6.27261629	 -0.00064850	  0.00039741	  7.27196779	  0.99801861	  0.99895409  0.49315129
++4771	 -6.27261662	 -0.00064836	  0.00039732	  7.27196825	  0.99801902	  0.99895431  0.49315134
++4772	 -6.27261694	 -0.00064823	  0.00039724	  7.27196871	  0.99801944	  0.99895453  0.49315136
++4773	 -6.27261727	 -0.00064809	  0.00039716	  7.27196917	  0.99801985	  0.99895475  0.49315141
++4774	 -6.27261759	 -0.00064796	  0.00039707	  7.27196963	  0.99802027	  0.99895497  0.49315149
++4775	 -6.27261792	 -0.00064782	  0.00039699	  7.27197009	  0.99802068	  0.99895519  0.49315153
++4776	 -6.27261824	 -0.00064769	  0.00039691	  7.27197056	  0.99802110	  0.99895540  0.49315156
++4777	 -6.27261857	 -0.00064755	  0.00039683	  7.27197101	  0.99802151	  0.99895562  0.49315162
++4778	 -6.27261889	 -0.00064742	  0.00039674	  7.27197147	  0.99802193	  0.99895584  0.49315167
++4779	 -6.27261921	 -0.00064728	  0.00039666	  7.27197193	  0.99802234	  0.99895606  0.49315173
++4780	 -6.27261954	 -0.00064715	  0.00039658	  7.27197239	  0.99802275	  0.99895628  0.49315176
++4781	 -6.27261986	 -0.00064701	  0.00039649	  7.27197285	  0.99802317	  0.99895650  0.49315180
++4782	 -6.27262019	 -0.00064687	  0.00039641	  7.27197331	  0.99802358	  0.99895671  0.49315186
++4783	 -6.27262051	 -0.00064674	  0.00039633	  7.27197377	  0.99802399	  0.99895693  0.49315191
++4784	 -6.27262083	 -0.00064660	  0.00039624	  7.27197423	  0.99802441	  0.99895715  0.49315198
++4785	 -6.27262116	 -0.00064647	  0.00039616	  7.27197469	  0.99802482	  0.99895737  0.49315200
++4786	 -6.27262148	 -0.00064633	  0.00039608	  7.27197515	  0.99802523	  0.99895759  0.49315204
++4787	 -6.27262180	 -0.00064620	  0.00039600	  7.27197560	  0.99802564	  0.99895780  0.49315211
++4788	 -6.27262213	 -0.00064606	  0.00039591	  7.27197606	  0.99802606	  0.99895802  0.49315216
++4789	 -6.27262245	 -0.00064593	  0.00039583	  7.27197652	  0.99802647	  0.99895824  0.49315219
++4790	 -6.27262277	 -0.00064579	  0.00039575	  7.27197698	  0.99802688	  0.99895846  0.49315225
++4791	 -6.27262309	 -0.00064566	  0.00039567	  7.27197743	  0.99802729	  0.99895867  0.49315226
++4792	 -6.27262342	 -0.00064553	  0.00039558	  7.27197789	  0.99802770	  0.99895889  0.49315233
++4793	 -6.27262374	 -0.00064539	  0.00039550	  7.27197835	  0.99802812	  0.99895911  0.49315238
++4794	 -6.27262406	 -0.00064526	  0.00039542	  7.27197880	  0.99802853	  0.99895933  0.49315244
++4795	 -6.27262438	 -0.00064512	  0.00039534	  7.27197926	  0.99802894	  0.99895954  0.49315248
++4796	 -6.27262470	 -0.00064499	  0.00039525	  7.27197972	  0.99802935	  0.99895976  0.49315254
++4797	 -6.27262503	 -0.00064485	  0.00039517	  7.27198017	  0.99802976	  0.99895998  0.49315255
++4798	 -6.27262535	 -0.00064472	  0.00039509	  7.27198063	  0.99803017	  0.99896019  0.49315260
++4799	 -6.27262567	 -0.00064458	  0.00039501	  7.27198108	  0.99803058	  0.99896041  0.49315266
++4800	 -6.27262599	 -0.00064445	  0.00039492	  7.27198154	  0.99803099	  0.99896063  0.49315272
++4801	 -6.27262631	 -0.00064432	  0.00039484	  7.27198199	  0.99803140	  0.99896084  0.49315276
++4802	 -6.27262663	 -0.00064418	  0.00039476	  7.27198245	  0.99803181	  0.99896106  0.49315283
++4803	 -6.27262695	 -0.00064405	  0.00039468	  7.27198290	  0.99803222	  0.99896127  0.49315287
++4804	 -6.27262727	 -0.00064391	  0.00039460	  7.27198336	  0.99803263	  0.99896149  0.49315291
++4805	 -6.27262759	 -0.00064378	  0.00039451	  7.27198381	  0.99803304	  0.99896171  0.49315298
++4806	 -6.27262792	 -0.00064365	  0.00039443	  7.27198427	  0.99803345	  0.99896192  0.49315301
++4807	 -6.27262824	 -0.00064351	  0.00039435	  7.27198472	  0.99803386	  0.99896214  0.49315305
++4808	 -6.27262856	 -0.00064338	  0.00039427	  7.27198518	  0.99803427	  0.99896235  0.49315310
++4809	 -6.27262888	 -0.00064325	  0.00039418	  7.27198563	  0.99803468	  0.99896257  0.49315315
++4810	 -6.27262920	 -0.00064311	  0.00039410	  7.27198608	  0.99803508	  0.99896279  0.49315320
++4811	 -6.27262952	 -0.00064298	  0.00039402	  7.27198654	  0.99803549	  0.99896300  0.49315324
++4812	 -6.27262984	 -0.00064284	  0.00039394	  7.27198699	  0.99803590	  0.99896322  0.49315329
++4813	 -6.27263015	 -0.00064271	  0.00039386	  7.27198744	  0.99803631	  0.99896343  0.49315335
++4814	 -6.27263047	 -0.00064258	  0.00039378	  7.27198790	  0.99803672	  0.99896365  0.49315341
++4815	 -6.27263079	 -0.00064244	  0.00039369	  7.27198835	  0.99803712	  0.99896386  0.49315341
++4816	 -6.27263111	 -0.00064231	  0.00039361	  7.27198880	  0.99803753	  0.99896408  0.49315348
++4817	 -6.27263143	 -0.00064218	  0.00039353	  7.27198925	  0.99803794	  0.99896429  0.49315355
++4818	 -6.27263175	 -0.00064204	  0.00039345	  7.27198971	  0.99803835	  0.99896451  0.49315360
++4819	 -6.27263207	 -0.00064191	  0.00039337	  7.27199016	  0.99803875	  0.99896472  0.49315362
++4820	 -6.27263239	 -0.00064178	  0.00039329	  7.27199061	  0.99803916	  0.99896494  0.49315366
++4821	 -6.27263271	 -0.00064165	  0.00039320	  7.27199106	  0.99803957	  0.99896515  0.49315370
++4822	 -6.27263302	 -0.00064151	  0.00039312	  7.27199151	  0.99803997	  0.99896537  0.49315378
++4823	 -6.27263334	 -0.00064138	  0.00039304	  7.27199196	  0.99804038	  0.99896558  0.49315382
++4824	 -6.27263366	 -0.00064125	  0.00039296	  7.27199241	  0.99804079	  0.99896579  0.49315384
++4825	 -6.27263398	 -0.00064111	  0.00039288	  7.27199287	  0.99804119	  0.99896601  0.49315390
++4826	 -6.27263430	 -0.00064098	  0.00039280	  7.27199332	  0.99804160	  0.99896622  0.49315398
++4827	 -6.27263461	 -0.00064085	  0.00039271	  7.27199377	  0.99804200	  0.99896644  0.49315398
++4828	 -6.27263493	 -0.00064072	  0.00039263	  7.27199422	  0.99804241	  0.99896665  0.49315402
++4829	 -6.27263525	 -0.00064058	  0.00039255	  7.27199467	  0.99804281	  0.99896686  0.49315410
++4830	 -6.27263557	 -0.00064045	  0.00039247	  7.27199512	  0.99804322	  0.99896708  0.49315415
++4831	 -6.27263588	 -0.00064032	  0.00039239	  7.27199557	  0.99804362	  0.99896729  0.49315420
++4832	 -6.27263620	 -0.00064019	  0.00039231	  7.27199602	  0.99804403	  0.99896751  0.49315423
++4833	 -6.27263652	 -0.00064005	  0.00039223	  7.27199646	  0.99804443	  0.99896772  0.49315429
++4834	 -6.27263683	 -0.00063992	  0.00039215	  7.27199691	  0.99804484	  0.99896793  0.49315433
++4835	 -6.27263715	 -0.00063979	  0.00039206	  7.27199736	  0.99804524	  0.99896815  0.49315438
++4836	 -6.27263747	 -0.00063966	  0.00039198	  7.27199781	  0.99804565	  0.99896836  0.49315441
++4837	 -6.27263778	 -0.00063952	  0.00039190	  7.27199826	  0.99804605	  0.99896857  0.49315445
++4838	 -6.27263810	 -0.00063939	  0.00039182	  7.27199871	  0.99804645	  0.99896879  0.49315452
++4839	 -6.27263842	 -0.00063926	  0.00039174	  7.27199916	  0.99804686	  0.99896900  0.49315453
++4840	 -6.27263873	 -0.00063913	  0.00039166	  7.27199960	  0.99804726	  0.99896921  0.49315461
++4841	 -6.27263905	 -0.00063900	  0.00039158	  7.27200005	  0.99804766	  0.99896942  0.49315465
++4842	 -6.27263936	 -0.00063886	  0.00039150	  7.27200050	  0.99804807	  0.99896964  0.49315471
++4843	 -6.27263968	 -0.00063873	  0.00039142	  7.27200095	  0.99804847	  0.99896985  0.49315476
++4844	 -6.27263999	 -0.00063860	  0.00039134	  7.27200139	  0.99804887	  0.99897006  0.49315480
++4845	 -6.27264031	 -0.00063847	  0.00039126	  7.27200184	  0.99804928	  0.99897028  0.49315486
++4846	 -6.27264063	 -0.00063834	  0.00039117	  7.27200229	  0.99804968	  0.99897049  0.49315489
++4847	 -6.27264094	 -0.00063821	  0.00039109	  7.27200273	  0.99805008	  0.99897070  0.49315491
++4848	 -6.27264126	 -0.00063807	  0.00039101	  7.27200318	  0.99805048	  0.99897091  0.49315503
++4849	 -6.27264157	 -0.00063794	  0.00039093	  7.27200363	  0.99805088	  0.99897112  0.49315504
++4850	 -6.27264188	 -0.00063781	  0.00039085	  7.27200407	  0.99805129	  0.99897134  0.49315507
++4851	 -6.27264220	 -0.00063768	  0.00039077	  7.27200452	  0.99805169	  0.99897155  0.49315512
++4852	 -6.27264251	 -0.00063755	  0.00039069	  7.27200496	  0.99805209	  0.99897176  0.49315517
++4853	 -6.27264283	 -0.00063742	  0.00039061	  7.27200541	  0.99805249	  0.99897197  0.49315521
++4854	 -6.27264314	 -0.00063729	  0.00039053	  7.27200586	  0.99805289	  0.99897218  0.49315529
++4855	 -6.27264346	 -0.00063716	  0.00039045	  7.27200630	  0.99805329	  0.99897240  0.49315533
++4856	 -6.27264377	 -0.00063702	  0.00039037	  7.27200675	  0.99805369	  0.99897261  0.49315538
++4857	 -6.27264408	 -0.00063689	  0.00039029	  7.27200719	  0.99805409	  0.99897282  0.49315540
++4858	 -6.27264440	 -0.00063676	  0.00039021	  7.27200764	  0.99805450	  0.99897303  0.49315545
++4859	 -6.27264471	 -0.00063663	  0.00039013	  7.27200808	  0.99805490	  0.99897324  0.49315550
++4860	 -6.27264502	 -0.00063650	  0.00039005	  7.27200852	  0.99805530	  0.99897345  0.49315556
++4861	 -6.27264534	 -0.00063637	  0.00038997	  7.27200897	  0.99805570	  0.99897366  0.49315563
++4862	 -6.27264565	 -0.00063624	  0.00038989	  7.27200941	  0.99805610	  0.99897387  0.49315563
++4863	 -6.27264596	 -0.00063611	  0.00038981	  7.27200986	  0.99805649	  0.99897409  0.49315568
++4864	 -6.27264628	 -0.00063598	  0.00038973	  7.27201030	  0.99805689	  0.99897430  0.49315572
++4865	 -6.27264659	 -0.00063585	  0.00038965	  7.27201074	  0.99805729	  0.99897451  0.49315579
++4866	 -6.27264690	 -0.00063572	  0.00038957	  7.27201119	  0.99805769	  0.99897472  0.49315582
++4867	 -6.27264721	 -0.00063559	  0.00038949	  7.27201163	  0.99805809	  0.99897493  0.49315589
++4868	 -6.27264753	 -0.00063545	  0.00038941	  7.27201207	  0.99805849	  0.99897514  0.49315595
++4869	 -6.27264784	 -0.00063532	  0.00038933	  7.27201251	  0.99805889	  0.99897535  0.49315600
++4870	 -6.27264815	 -0.00063519	  0.00038925	  7.27201296	  0.99805929	  0.99897556  0.49315603
++4871	 -6.27264846	 -0.00063506	  0.00038917	  7.27201340	  0.99805969	  0.99897577  0.49315606
++4872	 -6.27264877	 -0.00063493	  0.00038909	  7.27201384	  0.99806008	  0.99897598  0.49315609
++4873	 -6.27264909	 -0.00063480	  0.00038901	  7.27201428	  0.99806048	  0.99897619  0.49315614
++4874	 -6.27264940	 -0.00063467	  0.00038893	  7.27201472	  0.99806088	  0.99897640  0.49315621
++4875	 -6.27264971	 -0.00063454	  0.00038885	  7.27201517	  0.99806128	  0.99897661  0.49315622
++4876	 -6.27265002	 -0.00063441	  0.00038877	  7.27201561	  0.99806168	  0.99897682  0.49315632
++4877	 -6.27265033	 -0.00063428	  0.00038869	  7.27201605	  0.99806207	  0.99897703  0.49315636
++4878	 -6.27265064	 -0.00063415	  0.00038861	  7.27201649	  0.99806247	  0.99897724  0.49315639
++4879	 -6.27265095	 -0.00063402	  0.00038853	  7.27201693	  0.99806287	  0.99897745  0.49315644
++4880	 -6.27265126	 -0.00063389	  0.00038845	  7.27201737	  0.99806326	  0.99897766  0.49315648
++4881	 -6.27265157	 -0.00063376	  0.00038837	  7.27201781	  0.99806366	  0.99897787  0.49315654
++4882	 -6.27265189	 -0.00063363	  0.00038829	  7.27201825	  0.99806406	  0.99897808  0.49315656
++4883	 -6.27265220	 -0.00063350	  0.00038821	  7.27201869	  0.99806445	  0.99897829  0.49315663
++4884	 -6.27265251	 -0.00063337	  0.00038813	  7.27201913	  0.99806485	  0.99897849  0.49315664
++4885	 -6.27265282	 -0.00063324	  0.00038805	  7.27201957	  0.99806525	  0.99897870  0.49315672
++4886	 -6.27265313	 -0.00063312	  0.00038797	  7.27202001	  0.99806564	  0.99897891  0.49315678
++4887	 -6.27265344	 -0.00063299	  0.00038789	  7.27202045	  0.99806604	  0.99897912  0.49315679
++4888	 -6.27265375	 -0.00063286	  0.00038781	  7.27202089	  0.99806643	  0.99897933  0.49315682
++4889	 -6.27265406	 -0.00063273	  0.00038773	  7.27202133	  0.99806683	  0.99897954  0.49315688
++4890	 -6.27265436	 -0.00063260	  0.00038765	  7.27202177	  0.99806722	  0.99897975  0.49315697
++4891	 -6.27265467	 -0.00063247	  0.00038758	  7.27202221	  0.99806762	  0.99897996  0.49315698
++4892	 -6.27265498	 -0.00063234	  0.00038750	  7.27202264	  0.99806801	  0.99898016  0.49315705
++4893	 -6.27265529	 -0.00063221	  0.00038742	  7.27202308	  0.99806841	  0.99898037  0.49315710
++4894	 -6.27265560	 -0.00063208	  0.00038734	  7.27202352	  0.99806880	  0.99898058  0.49315714
++4895	 -6.27265591	 -0.00063195	  0.00038726	  7.27202396	  0.99806920	  0.99898079  0.49315716
++4896	 -6.27265622	 -0.00063182	  0.00038718	  7.27202440	  0.99806959	  0.99898100  0.49315722
++4897	 -6.27265653	 -0.00063169	  0.00038710	  7.27202483	  0.99806999	  0.99898121  0.49315726
++4898	 -6.27265684	 -0.00063157	  0.00038702	  7.27202527	  0.99807038	  0.99898141  0.49315731
++4899	 -6.27265714	 -0.00063144	  0.00038694	  7.27202571	  0.99807077	  0.99898162  0.49315737
++4900	 -6.27265745	 -0.00063131	  0.00038686	  7.27202614	  0.99807117	  0.99898183  0.49315740
++4901	 -6.27265776	 -0.00063118	  0.00038678	  7.27202658	  0.99807156	  0.99898204  0.49315744
++4902	 -6.27265807	 -0.00063105	  0.00038671	  7.27202702	  0.99807195	  0.99898224  0.49315747
++4903	 -6.27265838	 -0.00063092	  0.00038663	  7.27202745	  0.99807235	  0.99898245  0.49315751
++4904	 -6.27265868	 -0.00063079	  0.00038655	  7.27202789	  0.99807274	  0.99898266  0.49315758
++4905	 -6.27265899	 -0.00063066	  0.00038647	  7.27202833	  0.99807313	  0.99898287  0.49315760
++4906	 -6.27265930	 -0.00063054	  0.00038639	  7.27202876	  0.99807353	  0.99898307  0.49315770
++4907	 -6.27265961	 -0.00063041	  0.00038631	  7.27202920	  0.99807392	  0.99898328  0.49315771
++4908	 -6.27265991	 -0.00063028	  0.00038623	  7.27202963	  0.99807431	  0.99898349  0.49315780
++4909	 -6.27266022	 -0.00063015	  0.00038615	  7.27203007	  0.99807470	  0.99898369  0.49315780
++4910	 -6.27266053	 -0.00063002	  0.00038608	  7.27203051	  0.99807510	  0.99898390  0.49315786
++4911	 -6.27266083	 -0.00062989	  0.00038600	  7.27203094	  0.99807549	  0.99898411  0.49315792
++4912	 -6.27266114	 -0.00062977	  0.00038592	  7.27203138	  0.99807588	  0.99898432  0.49315794
++4913	 -6.27266145	 -0.00062964	  0.00038584	  7.27203181	  0.99807627	  0.99898452  0.49315802
++4914	 -6.27266175	 -0.00062951	  0.00038576	  7.27203224	  0.99807666	  0.99898473  0.49315805
++4915	 -6.27266206	 -0.00062938	  0.00038568	  7.27203268	  0.99807705	  0.99898493  0.49315808
++4916	 -6.27266237	 -0.00062925	  0.00038560	  7.27203311	  0.99807744	  0.99898514  0.49315812
++4917	 -6.27266267	 -0.00062913	  0.00038553	  7.27203355	  0.99807784	  0.99898535  0.49315818
++4918	 -6.27266298	 -0.00062900	  0.00038545	  7.27203398	  0.99807823	  0.99898555  0.49315821
++4919	 -6.27266329	 -0.00062887	  0.00038537	  7.27203441	  0.99807862	  0.99898576  0.49315828
++4920	 -6.27266359	 -0.00062874	  0.00038529	  7.27203485	  0.99807901	  0.99898597  0.49315830
++4921	 -6.27266390	 -0.00062862	  0.00038521	  7.27203528	  0.99807940	  0.99898617  0.49315836
++4922	 -6.27266420	 -0.00062849	  0.00038513	  7.27203571	  0.99807979	  0.99898638  0.49315841
++4923	 -6.27266451	 -0.00062836	  0.00038506	  7.27203615	  0.99808018	  0.99898658  0.49315847
++4924	 -6.27266481	 -0.00062823	  0.00038498	  7.27203658	  0.99808057	  0.99898679  0.49315850
++4925	 -6.27266512	 -0.00062811	  0.00038490	  7.27203701	  0.99808096	  0.99898700  0.49315856
++4926	 -6.27266542	 -0.00062798	  0.00038482	  7.27203744	  0.99808135	  0.99898720  0.49315859
++4927	 -6.27266573	 -0.00062785	  0.00038474	  7.27203788	  0.99808174	  0.99898741  0.49315862
++4928	 -6.27266603	 -0.00062772	  0.00038467	  7.27203831	  0.99808213	  0.99898761  0.49315867
++4929	 -6.27266634	 -0.00062760	  0.00038459	  7.27203874	  0.99808251	  0.99898782  0.49315875
++4930	 -6.27266664	 -0.00062747	  0.00038451	  7.27203917	  0.99808290	  0.99898802  0.49315880
++4931	 -6.27266695	 -0.00062734	  0.00038443	  7.27203960	  0.99808329	  0.99898823  0.49315883
++4932	 -6.27266725	 -0.00062721	  0.00038435	  7.27204004	  0.99808368	  0.99898843  0.49315887
++4933	 -6.27266755	 -0.00062709	  0.00038428	  7.27204047	  0.99808407	  0.99898864  0.49315892
++4934	 -6.27266786	 -0.00062696	  0.00038420	  7.27204090	  0.99808446	  0.99898884  0.49315895
++4935	 -6.27266816	 -0.00062683	  0.00038412	  7.27204133	  0.99808485	  0.99898905  0.49315899
++4936	 -6.27266847	 -0.00062671	  0.00038404	  7.27204176	  0.99808523	  0.99898925  0.49315906
++4937	 -6.27266877	 -0.00062658	  0.00038396	  7.27204219	  0.99808562	  0.99898946  0.49315910
++4938	 -6.27266907	 -0.00062645	  0.00038389	  7.27204262	  0.99808601	  0.99898966  0.49315911
++4939	 -6.27266938	 -0.00062633	  0.00038381	  7.27204305	  0.99808640	  0.99898987  0.49315917
++4940	 -6.27266968	 -0.00062620	  0.00038373	  7.27204348	  0.99808678	  0.99899007  0.49315922
++4941	 -6.27266998	 -0.00062607	  0.00038365	  7.27204391	  0.99808717	  0.99899027  0.49315926
++4942	 -6.27267028	 -0.00062595	  0.00038358	  7.27204434	  0.99808756	  0.99899048  0.49315930
++4943	 -6.27267059	 -0.00062582	  0.00038350	  7.27204477	  0.99808794	  0.99899068  0.49315934
++4944	 -6.27267089	 -0.00062569	  0.00038342	  7.27204520	  0.99808833	  0.99899089  0.49315940
++4945	 -6.27267119	 -0.00062557	  0.00038334	  7.27204563	  0.99808872	  0.99899109  0.49315945
++4946	 -6.27267150	 -0.00062544	  0.00038327	  7.27204606	  0.99808910	  0.99899129  0.49315950
++4947	 -6.27267180	 -0.00062531	  0.00038319	  7.27204648	  0.99808949	  0.99899150  0.49315953
++4948	 -6.27267210	 -0.00062519	  0.00038311	  7.27204691	  0.99808988	  0.99899170  0.49315956
++4949	 -6.27267240	 -0.00062506	  0.00038303	  7.27204734	  0.99809026	  0.99899191  0.49315961
++4950	 -6.27267270	 -0.00062494	  0.00038296	  7.27204777	  0.99809065	  0.99899211  0.49315968
++4951	 -6.27267301	 -0.00062481	  0.00038288	  7.27204820	  0.99809103	  0.99899231  0.49315973
++4952	 -6.27267331	 -0.00062468	  0.00038280	  7.27204863	  0.99809142	  0.99899252  0.49315977
++4953	 -6.27267361	 -0.00062456	  0.00038272	  7.27204905	  0.99809180	  0.99899272  0.49315980
++4954	 -6.27267391	 -0.00062443	  0.00038265	  7.27204948	  0.99809219	  0.99899292  0.49315984
++4955	 -6.27267421	 -0.00062431	  0.00038257	  7.27204991	  0.99809257	  0.99899313  0.49315989
++4956	 -6.27267451	 -0.00062418	  0.00038249	  7.27205033	  0.99809296	  0.99899333  0.49315993
++4957	 -6.27267481	 -0.00062405	  0.00038241	  7.27205076	  0.99809334	  0.99899353  0.49315999
++4958	 -6.27267512	 -0.00062393	  0.00038234	  7.27205119	  0.99809373	  0.99899373  0.49316004
++4959	 -6.27267542	 -0.00062380	  0.00038226	  7.27205162	  0.99809411	  0.99899394  0.49316007
++4960	 -6.27267572	 -0.00062368	  0.00038218	  7.27205204	  0.99809450	  0.99899414  0.49316011
++4961	 -6.27267602	 -0.00062355	  0.00038211	  7.27205247	  0.99809488	  0.99899434  0.49316016
++4962	 -6.27267632	 -0.00062342	  0.00038203	  7.27205289	  0.99809527	  0.99899455  0.49316020
++4963	 -6.27267662	 -0.00062330	  0.00038195	  7.27205332	  0.99809565	  0.99899475  0.49316023
++4964	 -6.27267692	 -0.00062317	  0.00038188	  7.27205375	  0.99809603	  0.99899495  0.49316033
++4965	 -6.27267722	 -0.00062305	  0.00038180	  7.27205417	  0.99809642	  0.99899515  0.49316032
++4966	 -6.27267752	 -0.00062292	  0.00038172	  7.27205460	  0.99809680	  0.99899536  0.49316037
++4967	 -6.27267782	 -0.00062280	  0.00038164	  7.27205502	  0.99809718	  0.99899556  0.49316043
++4968	 -6.27267812	 -0.00062267	  0.00038157	  7.27205545	  0.99809757	  0.99899576  0.49316049
++4969	 -6.27267842	 -0.00062255	  0.00038149	  7.27205587	  0.99809795	  0.99899596  0.49316053
++4970	 -6.27267872	 -0.00062242	  0.00038141	  7.27205630	  0.99809833	  0.99899616  0.49316060
++4971	 -6.27267902	 -0.00062230	  0.00038134	  7.27205672	  0.99809871	  0.99899637  0.49316061
++4972	 -6.27267932	 -0.00062217	  0.00038126	  7.27205715	  0.99809910	  0.99899657  0.49316068
++4973	 -6.27267962	 -0.00062205	  0.00038118	  7.27205757	  0.99809948	  0.99899677  0.49316072
++4974	 -6.27267992	 -0.00062192	  0.00038111	  7.27205799	  0.99809986	  0.99899697  0.49316074
++4975	 -6.27268021	 -0.00062180	  0.00038103	  7.27205842	  0.99810024	  0.99899717  0.49316079
++4976	 -6.27268051	 -0.00062167	  0.00038095	  7.27205884	  0.99810062	  0.99899737  0.49316083
++4977	 -6.27268081	 -0.00062155	  0.00038088	  7.27205927	  0.99810100	  0.99899757  0.49316088
++4978	 -6.27268111	 -0.00062142	  0.00038080	  7.27205969	  0.99810139	  0.99899778  0.49316090
++4979	 -6.27268141	 -0.00062130	  0.00038072	  7.27206011	  0.99810177	  0.99899798  0.49316099
++4980	 -6.27268171	 -0.00062117	  0.00038065	  7.27206053	  0.99810215	  0.99899818  0.49316102
++4981	 -6.27268201	 -0.00062105	  0.00038057	  7.27206096	  0.99810253	  0.99899838  0.49316107
++4982	 -6.27268230	 -0.00062092	  0.00038050	  7.27206138	  0.99810291	  0.99899858  0.49316107
++4983	 -6.27268260	 -0.00062080	  0.00038042	  7.27206180	  0.99810329	  0.99899878  0.49316112
++4984	 -6.27268290	 -0.00062067	  0.00038034	  7.27206223	  0.99810367	  0.99899898  0.49316121
++4985	 -6.27268320	 -0.00062055	  0.00038027	  7.27206265	  0.99810405	  0.99899918  0.49316122
++4986	 -6.27268350	 -0.00062043	  0.00038019	  7.27206307	  0.99810443	  0.99899938  0.49316127
++4987	 -6.27268379	 -0.00062030	  0.00038011	  7.27206349	  0.99810481	  0.99899958  0.49316133
++4988	 -6.27268409	 -0.00062018	  0.00038004	  7.27206391	  0.99810519	  0.99899978  0.49316137
++4989	 -6.27268439	 -0.00062005	  0.00037996	  7.27206433	  0.99810557	  0.99899999  0.49316141
++4990	 -6.27268468	 -0.00061993	  0.00037989	  7.27206476	  0.99810595	  0.99900019  0.49316145
++4991	 -6.27268498	 -0.00061980	  0.00037981	  7.27206518	  0.99810633	  0.99900039  0.49316150
++4992	 -6.27268528	 -0.00061968	  0.00037973	  7.27206560	  0.99810671	  0.99900059  0.49316152
++4993	 -6.27268558	 -0.00061956	  0.00037966	  7.27206602	  0.99810709	  0.99900079  0.49316158
++4994	 -6.27268587	 -0.00061943	  0.00037958	  7.27206644	  0.99810747	  0.99900099  0.49316160
++4995	 -6.27268617	 -0.00061931	  0.00037951	  7.27206686	  0.99810785	  0.99900119  0.49316174
++4996	 -6.27268647	 -0.00061919	  0.00037943	  7.27206728	  0.99810823	  0.99900139  0.49316174
++4997	 -6.27268676	 -0.00061906	  0.00037935	  7.27206770	  0.99810860	  0.99900159  0.49316173
++4998	 -6.27268706	 -0.00061894	  0.00037928	  7.27206812	  0.99810898	  0.99900179  0.49316182
++4999	 -6.27268735	 -0.00061881	  0.00037920	  7.27206854	  0.99810936	  0.99900198  0.49316185
++5000	 -6.27268765	 -0.00061869	  0.00037913	  7.27206896	  0.99810974	  0.99900218  0.49316190
++5001	 -6.27268795	 -0.00061857	  0.00037905	  7.27206938	  0.99811012	  0.99900238  0.49316194
++5002	 -6.27268824	 -0.00061844	  0.00037897	  7.27206980	  0.99811049	  0.99900258  0.49316199
++5003	 -6.27268854	 -0.00061832	  0.00037890	  7.27207022	  0.99811087	  0.99900278  0.49316201
++5004	 -6.27268883	 -0.00061820	  0.00037882	  7.27207064	  0.99811125	  0.99900298  0.49316207
++5005	 -6.27268913	 -0.00061807	  0.00037875	  7.27207106	  0.99811163	  0.99900318  0.49316215
++5006	 -6.27268942	 -0.00061795	  0.00037867	  7.27207147	  0.99811200	  0.99900338  0.49316215
++5007	 -6.27268972	 -0.00061783	  0.00037860	  7.27207189	  0.99811238	  0.99900358  0.49316222
++5008	 -6.27269001	 -0.00061770	  0.00037852	  7.27207231	  0.99811276	  0.99900378  0.49316225
++5009	 -6.27269031	 -0.00061758	  0.00037844	  7.27207273	  0.99811313	  0.99900398  0.49316226
++5010	 -6.27269060	 -0.00061746	  0.00037837	  7.27207315	  0.99811351	  0.99900418  0.49316232
++5011	 -6.27269090	 -0.00061733	  0.00037829	  7.27207356	  0.99811389	  0.99900437  0.49316241
++5012	 -6.27269119	 -0.00061721	  0.00037822	  7.27207398	  0.99811426	  0.99900457  0.49316240
++5013	 -6.27269149	 -0.00061709	  0.00037814	  7.27207440	  0.99811464	  0.99900477  0.49316244
++5014	 -6.27269178	 -0.00061696	  0.00037807	  7.27207482	  0.99811502	  0.99900497  0.49316250
++5015	 -6.27269208	 -0.00061684	  0.00037799	  7.27207523	  0.99811539	  0.99900517  0.49316255
++5016	 -6.27269237	 -0.00061672	  0.00037792	  7.27207565	  0.99811577	  0.99900537  0.49316260
++5017	 -6.27269266	 -0.00061660	  0.00037784	  7.27207607	  0.99811614	  0.99900556  0.49316268
++5018	 -6.27269296	 -0.00061647	  0.00037777	  7.27207648	  0.99811652	  0.99900576  0.49316264
++5019	 -6.27269325	 -0.00061635	  0.00037769	  7.27207690	  0.99811689	  0.99900596  0.49316274
++5020	 -6.27269354	 -0.00061623	  0.00037762	  7.27207732	  0.99811727	  0.99900616  0.49316275
++5021	 -6.27269384	 -0.00061610	  0.00037754	  7.27207773	  0.99811764	  0.99900636  0.49316280
++5022	 -6.27269413	 -0.00061598	  0.00037746	  7.27207815	  0.99811802	  0.99900655  0.49316280
++5023	 -6.27269442	 -0.00061586	  0.00037739	  7.27207857	  0.99811839	  0.99900675  0.49316288
++5024	 -6.27269472	 -0.00061574	  0.00037731	  7.27207898	  0.99811877	  0.99900695  0.49316293
++5025	 -6.27269501	 -0.00061561	  0.00037724	  7.27207940	  0.99811914	  0.99900715  0.49316299
++5026	 -6.27269530	 -0.00061549	  0.00037716	  7.27207981	  0.99811952	  0.99900734  0.49316305
++5027	 -6.27269560	 -0.00061537	  0.00037709	  7.27208023	  0.99811989	  0.99900754  0.49316305
++5028	 -6.27269589	 -0.00061525	  0.00037701	  7.27208064	  0.99812026	  0.99900774  0.49316309
++5029	 -6.27269618	 -0.00061512	  0.00037694	  7.27208106	  0.99812064	  0.99900794  0.49316319
++5030	 -6.27269647	 -0.00061500	  0.00037686	  7.27208147	  0.99812101	  0.99900813  0.49316320
++5031	 -6.27269677	 -0.00061488	  0.00037679	  7.27208189	  0.99812138	  0.99900833  0.49316326
++5032	 -6.27269706	 -0.00061476	  0.00037671	  7.27208230	  0.99812176	  0.99900853  0.49316331
++5033	 -6.27269735	 -0.00061464	  0.00037664	  7.27208271	  0.99812213	  0.99900872  0.49316334
++5034	 -6.27269764	 -0.00061451	  0.00037656	  7.27208313	  0.99812250	  0.99900892  0.49316337
++5035	 -6.27269793	 -0.00061439	  0.00037649	  7.27208354	  0.99812288	  0.99900912  0.49316343
++5036	 -6.27269823	 -0.00061427	  0.00037642	  7.27208396	  0.99812325	  0.99900931  0.49316350
++5037	 -6.27269852	 -0.00061415	  0.00037634	  7.27208437	  0.99812362	  0.99900951  0.49316348
++5038	 -6.27269881	 -0.00061403	  0.00037627	  7.27208478	  0.99812399	  0.99900971  0.49316356
++5039	 -6.27269910	 -0.00061390	  0.00037619	  7.27208520	  0.99812437	  0.99900990  0.49316359
++5040	 -6.27269939	 -0.00061378	  0.00037612	  7.27208561	  0.99812474	  0.99901010  0.49316364
++5041	 -6.27269968	 -0.00061366	  0.00037604	  7.27208602	  0.99812511	  0.99901030  0.49316368
++5042	 -6.27269997	 -0.00061354	  0.00037597	  7.27208643	  0.99812548	  0.99901049  0.49316372
++5043	 -6.27270027	 -0.00061342	  0.00037589	  7.27208685	  0.99812585	  0.99901069  0.49316379
++5044	 -6.27270056	 -0.00061330	  0.00037582	  7.27208726	  0.99812623	  0.99901089  0.49316380
++5045	 -6.27270085	 -0.00061318	  0.00037574	  7.27208767	  0.99812660	  0.99901108  0.49316383
++5046	 -6.27270114	 -0.00061305	  0.00037567	  7.27208808	  0.99812697	  0.99901128  0.49316392
++5047	 -6.27270143	 -0.00061293	  0.00037559	  7.27208850	  0.99812734	  0.99901147  0.49316393
++5048	 -6.27270172	 -0.00061281	  0.00037552	  7.27208891	  0.99812771	  0.99901167  0.49316398
++5049	 -6.27270201	 -0.00061269	  0.00037545	  7.27208932	  0.99812808	  0.99901186  0.49316403
++5050	 -6.27270230	 -0.00061257	  0.00037537	  7.27208973	  0.99812845	  0.99901206  0.49316407
++5051	 -6.27270259	 -0.00061245	  0.00037530	  7.27209014	  0.99812882	  0.99901226  0.49316411
++5052	 -6.27270288	 -0.00061233	  0.00037522	  7.27209055	  0.99812919	  0.99901245  0.49316419
++5053	 -6.27270317	 -0.00061221	  0.00037515	  7.27209096	  0.99812956	  0.99901265  0.49316420
++5054	 -6.27270346	 -0.00061208	  0.00037507	  7.27209137	  0.99812993	  0.99901284  0.49316424
++5055	 -6.27270375	 -0.00061196	  0.00037500	  7.27209178	  0.99813030	  0.99901304  0.49316431
++5056	 -6.27270404	 -0.00061184	  0.00037493	  7.27209219	  0.99813067	  0.99901323  0.49316432
++5057	 -6.27270433	 -0.00061172	  0.00037485	  7.27209260	  0.99813104	  0.99901343  0.49316435
++5058	 -6.27270462	 -0.00061160	  0.00037478	  7.27209301	  0.99813141	  0.99901362  0.49316437
++5059	 -6.27270490	 -0.00061148	  0.00037470	  7.27209342	  0.99813178	  0.99901382  0.49316447
++5060	 -6.27270519	 -0.00061136	  0.00037463	  7.27209383	  0.99813215	  0.99901401  0.49316452
++5061	 -6.27270548	 -0.00061124	  0.00037456	  7.27209424	  0.99813252	  0.99901421  0.49316453
++5062	 -6.27270577	 -0.00061112	  0.00037448	  7.27209465	  0.99813289	  0.99901440  0.49316460
++5063	 -6.27270606	 -0.00061100	  0.00037441	  7.27209506	  0.99813326	  0.99901460  0.49316462
++5064	 -6.27270635	 -0.00061088	  0.00037433	  7.27209547	  0.99813362	  0.99901479  0.49316468
++5065	 -6.27270664	 -0.00061076	  0.00037426	  7.27209588	  0.99813399	  0.99901498  0.49316472
++5066	 -6.27270692	 -0.00061064	  0.00037419	  7.27209629	  0.99813436	  0.99901518  0.49316476
++5067	 -6.27270721	 -0.00061051	  0.00037411	  7.27209670	  0.99813473	  0.99901537  0.49316483
++5068	 -6.27270750	 -0.00061039	  0.00037404	  7.27209711	  0.99813510	  0.99901557  0.49316482
++5069	 -6.27270779	 -0.00061027	  0.00037396	  7.27209751	  0.99813547	  0.99901576  0.49316493
++5070	 -6.27270808	 -0.00061015	  0.00037389	  7.27209792	  0.99813583	  0.99901596  0.49316495
++5071	 -6.27270836	 -0.00061003	  0.00037382	  7.27209833	  0.99813620	  0.99901615  0.49316498
++5072	 -6.27270865	 -0.00060991	  0.00037374	  7.27209874	  0.99813657	  0.99901634  0.49316501
++5073	 -6.27270894	 -0.00060979	  0.00037367	  7.27209915	  0.99813694	  0.99901654  0.49316504
++5074	 -6.27270923	 -0.00060967	  0.00037360	  7.27209955	  0.99813730	  0.99901673  0.49316509
++5075	 -6.27270951	 -0.00060955	  0.00037352	  7.27209996	  0.99813767	  0.99901692  0.49316516
++5076	 -6.27270980	 -0.00060943	  0.00037345	  7.27210037	  0.99813804	  0.99901712  0.49316521
++5077	 -6.27271009	 -0.00060931	  0.00037338	  7.27210078	  0.99813840	  0.99901731  0.49316522
++5078	 -6.27271038	 -0.00060919	  0.00037330	  7.27210118	  0.99813877	  0.99901751  0.49316529
++5079	 -6.27271066	 -0.00060907	  0.00037323	  7.27210159	  0.99813914	  0.99901770  0.49316533
++5080	 -6.27271095	 -0.00060895	  0.00037315	  7.27210200	  0.99813950	  0.99901789  0.49316538
++5081	 -6.27271124	 -0.00060883	  0.00037308	  7.27210240	  0.99813987	  0.99901808  0.49316545
++5082	 -6.27271152	 -0.00060871	  0.00037301	  7.27210281	  0.99814023	  0.99901828  0.49316550
++5083	 -6.27271181	 -0.00060859	  0.00037293	  7.27210321	  0.99814060	  0.99901847  0.49316550
++5084	 -6.27271209	 -0.00060847	  0.00037286	  7.27210362	  0.99814097	  0.99901866  0.49316554
++5085	 -6.27271238	 -0.00060836	  0.00037279	  7.27210403	  0.99814133	  0.99901886  0.49316555
++5086	 -6.27271267	 -0.00060824	  0.00037271	  7.27210443	  0.99814170	  0.99901905  0.49316564
++5087	 -6.27271295	 -0.00060812	  0.00037264	  7.27210484	  0.99814206	  0.99901924  0.49316569
++5088	 -6.27271324	 -0.00060800	  0.00037257	  7.27210524	  0.99814243	  0.99901944  0.49316569
++5089	 -6.27271352	 -0.00060788	  0.00037249	  7.27210565	  0.99814279	  0.99901963  0.49316572
++5090	 -6.27271381	 -0.00060776	  0.00037242	  7.27210605	  0.99814316	  0.99901982  0.49316582
++5091	 -6.27271410	 -0.00060764	  0.00037235	  7.27210646	  0.99814352	  0.99902001  0.49316585
++5092	 -6.27271438	 -0.00060752	  0.00037228	  7.27210686	  0.99814389	  0.99902021  0.49316587
++5093	 -6.27271467	 -0.00060740	  0.00037220	  7.27210727	  0.99814425	  0.99902040  0.49316592
++5094	 -6.27271495	 -0.00060728	  0.00037213	  7.27210767	  0.99814461	  0.99902059  0.49316598
++5095	 -6.27271524	 -0.00060716	  0.00037206	  7.27210807	  0.99814498	  0.99902078  0.49316599
++5096	 -6.27271552	 -0.00060704	  0.00037198	  7.27210848	  0.99814534	  0.99902097  0.49316604
++5097	 -6.27271581	 -0.00060692	  0.00037191	  7.27210888	  0.99814571	  0.99902117  0.49316608
++5098	 -6.27271609	 -0.00060680	  0.00037184	  7.27210929	  0.99814607	  0.99902136  0.49316611
++5099	 -6.27271637	 -0.00060669	  0.00037176	  7.27210969	  0.99814643	  0.99902155  0.49316616
++5100	 -6.27271666	 -0.00060657	  0.00037169	  7.27211009	  0.99814680	  0.99902174  0.49316618
++5101	 -6.27271694	 -0.00060645	  0.00037162	  7.27211050	  0.99814716	  0.99902193  0.49316624
++5102	 -6.27271723	 -0.00060633	  0.00037155	  7.27211090	  0.99814752	  0.99902213  0.49316630
++5103	 -6.27271751	 -0.00060621	  0.00037147	  7.27211130	  0.99814789	  0.99902232  0.49316633
++5104	 -6.27271780	 -0.00060609	  0.00037140	  7.27211170	  0.99814825	  0.99902251  0.49316640
++5105	 -6.27271808	 -0.00060597	  0.00037133	  7.27211211	  0.99814861	  0.99902270  0.49316642
++5106	 -6.27271836	 -0.00060585	  0.00037125	  7.27211251	  0.99814897	  0.99902289  0.49316649
++5107	 -6.27271865	 -0.00060574	  0.00037118	  7.27211291	  0.99814934	  0.99902308  0.49316653
++5108	 -6.27271893	 -0.00060562	  0.00037111	  7.27211331	  0.99814970	  0.99902327  0.49316657
++5109	 -6.27271921	 -0.00060550	  0.00037104	  7.27211371	  0.99815006	  0.99902346  0.49316659
++5110	 -6.27271950	 -0.00060538	  0.00037096	  7.27211412	  0.99815042	  0.99902366  0.49316664
++5111	 -6.27271978	 -0.00060526	  0.00037089	  7.27211452	  0.99815079	  0.99902385  0.49316670
++5112	 -6.27272006	 -0.00060514	  0.00037082	  7.27211492	  0.99815115	  0.99902404  0.49316670
++5113	 -6.27272035	 -0.00060503	  0.00037075	  7.27211532	  0.99815151	  0.99902423  0.49316673
++5114	 -6.27272063	 -0.00060491	  0.00037067	  7.27211572	  0.99815187	  0.99902442  0.49316679
++5115	 -6.27272091	 -0.00060479	  0.00037060	  7.27211612	  0.99815223	  0.99902461  0.49316685
++5116	 -6.27272120	 -0.00060467	  0.00037053	  7.27211652	  0.99815259	  0.99902480  0.49316688
++5117	 -6.27272148	 -0.00060455	  0.00037046	  7.27211692	  0.99815295	  0.99902499  0.49316692
++5118	 -6.27272176	 -0.00060444	  0.00037038	  7.27211732	  0.99815331	  0.99902518  0.49316699
++5119	 -6.27272204	 -0.00060432	  0.00037031	  7.27211773	  0.99815367	  0.99902537  0.49316698
++5120	 -6.27272232	 -0.00060420	  0.00037024	  7.27211813	  0.99815404	  0.99902556  0.49316707
++5121	 -6.27272261	 -0.00060408	  0.00037017	  7.27211853	  0.99815440	  0.99902575  0.49316710
++5122	 -6.27272289	 -0.00060396	  0.00037009	  7.27211893	  0.99815476	  0.99902594  0.49316715
++5123	 -6.27272317	 -0.00060385	  0.00037002	  7.27211933	  0.99815512	  0.99902613  0.49316718
++5124	 -6.27272345	 -0.00060373	  0.00036995	  7.27211972	  0.99815548	  0.99902632  0.49316722
++5125	 -6.27272373	 -0.00060361	  0.00036988	  7.27212012	  0.99815584	  0.99902651  0.49316726
++5126	 -6.27272402	 -0.00060349	  0.00036981	  7.27212052	  0.99815620	  0.99902670  0.49316729
++5127	 -6.27272430	 -0.00060337	  0.00036973	  7.27212092	  0.99815656	  0.99902689  0.49316735
++5128	 -6.27272458	 -0.00060326	  0.00036966	  7.27212132	  0.99815691	  0.99902708  0.49316741
++5129	 -6.27272486	 -0.00060314	  0.00036959	  7.27212172	  0.99815727	  0.99902727  0.49316741
++5130	 -6.27272514	 -0.00060302	  0.00036952	  7.27212212	  0.99815763	  0.99902746  0.49316748
++5131	 -6.27272542	 -0.00060290	  0.00036945	  7.27212252	  0.99815799	  0.99902765  0.49316753
++5132	 -6.27272570	 -0.00060279	  0.00036937	  7.27212292	  0.99815835	  0.99902784  0.49316756
++5133	 -6.27272598	 -0.00060267	  0.00036930	  7.27212331	  0.99815871	  0.99902803  0.49316761
++5134	 -6.27272626	 -0.00060255	  0.00036923	  7.27212371	  0.99815907	  0.99902822  0.49316767
++5135	 -6.27272654	 -0.00060244	  0.00036916	  7.27212411	  0.99815943	  0.99902841  0.49316768
++5136	 -6.27272683	 -0.00060232	  0.00036909	  7.27212451	  0.99815978	  0.99902860  0.49316772
++5137	 -6.27272711	 -0.00060220	  0.00036901	  7.27212490	  0.99816014	  0.99902879  0.49316778
++5138	 -6.27272739	 -0.00060208	  0.00036894	  7.27212530	  0.99816050	  0.99902897  0.49316778
++5139	 -6.27272767	 -0.00060197	  0.00036887	  7.27212570	  0.99816086	  0.99902916  0.49316783
++5140	 -6.27272795	 -0.00060185	  0.00036880	  7.27212610	  0.99816122	  0.99902935  0.49316788
++5141	 -6.27272823	 -0.00060173	  0.00036873	  7.27212649	  0.99816157	  0.99902954  0.49316787
++5142	 -6.27272851	 -0.00060162	  0.00036865	  7.27212689	  0.99816193	  0.99902973  0.49316799
++5143	 -6.27272879	 -0.00060150	  0.00036858	  7.27212729	  0.99816229	  0.99902992  0.49316801
++5144	 -6.27272907	 -0.00060138	  0.00036851	  7.27212768	  0.99816265	  0.99903011  0.49316805
++5145	 -6.27272934	 -0.00060127	  0.00036844	  7.27212808	  0.99816300	  0.99903029  0.49316810
++5146	 -6.27272962	 -0.00060115	  0.00036837	  7.27212848	  0.99816336	  0.99903048  0.49316812
++5147	 -6.27272990	 -0.00060103	  0.00036830	  7.27212887	  0.99816372	  0.99903067  0.49316815
++5148	 -6.27273018	 -0.00060092	  0.00036823	  7.27212927	  0.99816407	  0.99903086  0.49316824
++5149	 -6.27273046	 -0.00060080	  0.00036815	  7.27212966	  0.99816443	  0.99903105  0.49316825
++5150	 -6.27273074	 -0.00060068	  0.00036808	  7.27213006	  0.99816479	  0.99903124  0.49316832
++5151	 -6.27273102	 -0.00060057	  0.00036801	  7.27213045	  0.99816514	  0.99903142  0.49316835
++5152	 -6.27273130	 -0.00060045	  0.00036794	  7.27213085	  0.99816550	  0.99903161  0.49316839
++5153	 -6.27273158	 -0.00060033	  0.00036787	  7.27213124	  0.99816585	  0.99903180  0.49316844
++5154	 -6.27273186	 -0.00060022	  0.00036780	  7.27213164	  0.99816621	  0.99903199  0.49316848
++5155	 -6.27273213	 -0.00060010	  0.00036773	  7.27213203	  0.99816657	  0.99903218  0.49316850
++5156	 -6.27273241	 -0.00059998	  0.00036765	  7.27213243	  0.99816692	  0.99903236  0.49316856
++5157	 -6.27273269	 -0.00059987	  0.00036758	  7.27213282	  0.99816728	  0.99903255  0.49316861
++5158	 -6.27273297	 -0.00059975	  0.00036751	  7.27213322	  0.99816763	  0.99903274  0.49316864
++5159	 -6.27273325	 -0.00059963	  0.00036744	  7.27213361	  0.99816799	  0.99903293  0.49316869
++5160	 -6.27273352	 -0.00059952	  0.00036737	  7.27213401	  0.99816834	  0.99903311  0.49316872
++5161	 -6.27273380	 -0.00059940	  0.00036730	  7.27213440	  0.99816870	  0.99903330  0.49316876
++5162	 -6.27273408	 -0.00059929	  0.00036723	  7.27213479	  0.99816905	  0.99903349  0.49316877
++5163	 -6.27273436	 -0.00059917	  0.00036716	  7.27213519	  0.99816941	  0.99903367  0.49316887
++5164	 -6.27273463	 -0.00059905	  0.00036708	  7.27213558	  0.99816976	  0.99903386  0.49316888
++5165	 -6.27273491	 -0.00059894	  0.00036701	  7.27213597	  0.99817012	  0.99903405  0.49316895
++5166	 -6.27273519	 -0.00059882	  0.00036694	  7.27213637	  0.99817047	  0.99903424  0.49316897
++5167	 -6.27273547	 -0.00059871	  0.00036687	  7.27213676	  0.99817082	  0.99903442  0.49316901
++5168	 -6.27273574	 -0.00059859	  0.00036680	  7.27213715	  0.99817118	  0.99903461  0.49316906
++5169	 -6.27273602	 -0.00059848	  0.00036673	  7.27213754	  0.99817153	  0.99903480  0.49316911
++5170	 -6.27273630	 -0.00059836	  0.00036666	  7.27213794	  0.99817189	  0.99903498  0.49316913
++5171	 -6.27273657	 -0.00059824	  0.00036659	  7.27213833	  0.99817224	  0.99903517  0.49316914
++5172	 -6.27273685	 -0.00059813	  0.00036652	  7.27213872	  0.99817259	  0.99903535  0.49316924
++5173	 -6.27273713	 -0.00059801	  0.00036645	  7.27213911	  0.99817295	  0.99903554  0.49316926
++5174	 -6.27273740	 -0.00059790	  0.00036637	  7.27213951	  0.99817330	  0.99903573  0.49316930
++5175	 -6.27273768	 -0.00059778	  0.00036630	  7.27213990	  0.99817365	  0.99903591  0.49316938
++5176	 -6.27273796	 -0.00059767	  0.00036623	  7.27214029	  0.99817400	  0.99903610  0.49316938
++5177	 -6.27273823	 -0.00059755	  0.00036616	  7.27214068	  0.99817436	  0.99903629  0.49316938
++5178	 -6.27273851	 -0.00059744	  0.00036609	  7.27214107	  0.99817471	  0.99903647  0.49316946
++5179	 -6.27273878	 -0.00059732	  0.00036602	  7.27214146	  0.99817506	  0.99903666  0.49316948
++5180	 -6.27273906	 -0.00059721	  0.00036595	  7.27214185	  0.99817541	  0.99903684  0.49316954
++5181	 -6.27273933	 -0.00059709	  0.00036588	  7.27214224	  0.99817577	  0.99903703  0.49316961
++5182	 -6.27273961	 -0.00059698	  0.00036581	  7.27214263	  0.99817612	  0.99903722  0.49316964
++5183	 -6.27273989	 -0.00059686	  0.00036574	  7.27214303	  0.99817647	  0.99903740  0.49316966
++5184	 -6.27274016	 -0.00059674	  0.00036567	  7.27214342	  0.99817682	  0.99903759  0.49316973
++5185	 -6.27274044	 -0.00059663	  0.00036560	  7.27214381	  0.99817717	  0.99903777  0.49316976
++5186	 -6.27274071	 -0.00059651	  0.00036553	  7.27214420	  0.99817752	  0.99903796  0.49316978
++5187	 -6.27274099	 -0.00059640	  0.00036546	  7.27214459	  0.99817788	  0.99903814  0.49316985
++5188	 -6.27274126	 -0.00059629	  0.00036539	  7.27214498	  0.99817823	  0.99903833  0.49316985
++5189	 -6.27274154	 -0.00059617	  0.00036532	  7.27214537	  0.99817858	  0.99903851  0.49316990
++5190	 -6.27274181	 -0.00059606	  0.00036525	  7.27214575	  0.99817893	  0.99903870  0.49316996
++5191	 -6.27274208	 -0.00059594	  0.00036517	  7.27214614	  0.99817928	  0.99903888  0.49317001
++5192	 -6.27274236	 -0.00059583	  0.00036510	  7.27214653	  0.99817963	  0.99903907  0.49317000
++5193	 -6.27274263	 -0.00059571	  0.00036503	  7.27214692	  0.99817998	  0.99903925  0.49317004
++5194	 -6.27274291	 -0.00059560	  0.00036496	  7.27214731	  0.99818033	  0.99903944  0.49317008
++5195	 -6.27274318	 -0.00059548	  0.00036489	  7.27214770	  0.99818068	  0.99903962  0.49317014
++5196	 -6.27274346	 -0.00059537	  0.00036482	  7.27214809	  0.99818103	  0.99903981  0.49317022
++5197	 -6.27274373	 -0.00059525	  0.00036475	  7.27214848	  0.99818138	  0.99903999  0.49317024
++5198	 -6.27274400	 -0.00059514	  0.00036468	  7.27214886	  0.99818173	  0.99904018  0.49317029
++5199	 -6.27274428	 -0.00059502	  0.00036461	  7.27214925	  0.99818208	  0.99904036  0.49317032
++5200	 -6.27274455	 -0.00059491	  0.00036454	  7.27214964	  0.99818243	  0.99904055  0.49317037
++5201	 -6.27274482	 -0.00059480	  0.00036447	  7.27215003	  0.99818278	  0.99904073  0.49317042
++5202	 -6.27274510	 -0.00059468	  0.00036440	  7.27215042	  0.99818313	  0.99904092  0.49317048
++5203	 -6.27274537	 -0.00059457	  0.00036433	  7.27215080	  0.99818348	  0.99904110  0.49317047
++5204	 -6.27274564	 -0.00059445	  0.00036426	  7.27215119	  0.99818383	  0.99904128  0.49317056
++5205	 -6.27274592	 -0.00059434	  0.00036419	  7.27215158	  0.99818418	  0.99904147  0.49317055
++5206	 -6.27274619	 -0.00059422	  0.00036412	  7.27215197	  0.99818452	  0.99904165  0.49317062
++5207	 -6.27274646	 -0.00059411	  0.00036405	  7.27215235	  0.99818487	  0.99904184  0.49317064
++5208	 -6.27274674	 -0.00059400	  0.00036398	  7.27215274	  0.99818522	  0.99904202  0.49317066
++5209	 -6.27274701	 -0.00059388	  0.00036391	  7.27215313	  0.99818557	  0.99904220  0.49317073
++5210	 -6.27274728	 -0.00059377	  0.00036384	  7.27215351	  0.99818592	  0.99904239  0.49317076
++5211	 -6.27274755	 -0.00059365	  0.00036377	  7.27215390	  0.99818627	  0.99904257  0.49317082
++5212	 -6.27274783	 -0.00059354	  0.00036370	  7.27215428	  0.99818661	  0.99904276  0.49317086
++5213	 -6.27274810	 -0.00059343	  0.00036363	  7.27215467	  0.99818696	  0.99904294  0.49317091
++5214	 -6.27274837	 -0.00059331	  0.00036356	  7.27215506	  0.99818731	  0.99904312  0.49317096
++5215	 -6.27274864	 -0.00059320	  0.00036349	  7.27215544	  0.99818766	  0.99904331  0.49317092
++5216	 -6.27274891	 -0.00059309	  0.00036342	  7.27215583	  0.99818800	  0.99904349  0.49317097
++5217	 -6.27274919	 -0.00059297	  0.00036335	  7.27215621	  0.99818835	  0.99904367  0.49317108
++5218	 -6.27274946	 -0.00059286	  0.00036329	  7.27215660	  0.99818870	  0.99904386  0.49317108
++5219	 -6.27274973	 -0.00059275	  0.00036322	  7.27215698	  0.99818905	  0.99904404  0.49317113
++5220	 -6.27275000	 -0.00059263	  0.00036315	  7.27215737	  0.99818939	  0.99904422  0.49317119
++5221	 -6.27275027	 -0.00059252	  0.00036308	  7.27215775	  0.99818974	  0.99904440  0.49317125
++5222	 -6.27275054	 -0.00059241	  0.00036301	  7.27215814	  0.99819009	  0.99904459  0.49317124
++5223	 -6.27275081	 -0.00059229	  0.00036294	  7.27215852	  0.99819043	  0.99904477  0.49317130
++5224	 -6.27275109	 -0.00059218	  0.00036287	  7.27215891	  0.99819078	  0.99904495  0.49317131
++5225	 -6.27275136	 -0.00059207	  0.00036280	  7.27215929	  0.99819113	  0.99904514  0.49317136
++5226	 -6.27275163	 -0.00059195	  0.00036273	  7.27215968	  0.99819147	  0.99904532  0.49317137
++5227	 -6.27275190	 -0.00059184	  0.00036266	  7.27216006	  0.99819182	  0.99904550  0.49317148
++5228	 -6.27275217	 -0.00059173	  0.00036259	  7.27216044	  0.99819216	  0.99904568  0.49317152
++5229	 -6.27275244	 -0.00059161	  0.00036252	  7.27216083	  0.99819251	  0.99904587  0.49317157
++5230	 -6.27275271	 -0.00059150	  0.00036245	  7.27216121	  0.99819285	  0.99904605  0.49317157
++5231	 -6.27275298	 -0.00059139	  0.00036238	  7.27216159	  0.99819320	  0.99904623  0.49317163
++5232	 -6.27275325	 -0.00059127	  0.00036231	  7.27216198	  0.99819355	  0.99904641  0.49317168
++5233	 -6.27275352	 -0.00059116	  0.00036224	  7.27216236	  0.99819389	  0.99904660  0.49317166
++5234	 -6.27275379	 -0.00059105	  0.00036217	  7.27216274	  0.99819424	  0.99904678  0.49317177
++5235	 -6.27275406	 -0.00059094	  0.00036211	  7.27216313	  0.99819458	  0.99904696  0.49317179
++5236	 -6.27275433	 -0.00059082	  0.00036204	  7.27216351	  0.99819493	  0.99904714  0.49317185
++5237	 -6.27275460	 -0.00059071	  0.00036197	  7.27216389	  0.99819527	  0.99904732  0.49317189
++5238	 -6.27275487	 -0.00059060	  0.00036190	  7.27216427	  0.99819561	  0.99904751  0.49317188
++5239	 -6.27275514	 -0.00059048	  0.00036183	  7.27216466	  0.99819596	  0.99904769  0.49317197
++5240	 -6.27275541	 -0.00059037	  0.00036176	  7.27216504	  0.99819630	  0.99904787  0.49317199
++5241	 -6.27275568	 -0.00059026	  0.00036169	  7.27216542	  0.99819665	  0.99904805  0.49317206
++5242	 -6.27275595	 -0.00059015	  0.00036162	  7.27216580	  0.99819699	  0.99904823  0.49317206
++5243	 -6.27275622	 -0.00059003	  0.00036155	  7.27216618	  0.99819733	  0.99904841  0.49317210
++5244	 -6.27275649	 -0.00058992	  0.00036148	  7.27216656	  0.99819768	  0.99904859  0.49317215
++5245	 -6.27275675	 -0.00058981	  0.00036141	  7.27216695	  0.99819802	  0.99904878  0.49317218
++5246	 -6.27275702	 -0.00058970	  0.00036135	  7.27216733	  0.99819837	  0.99904896  0.49317220
++5247	 -6.27275729	 -0.00058958	  0.00036128	  7.27216771	  0.99819871	  0.99904914  0.49317224
++5248	 -6.27275756	 -0.00058947	  0.00036121	  7.27216809	  0.99819905	  0.99904932  0.49317231
++5249	 -6.27275783	 -0.00058936	  0.00036114	  7.27216847	  0.99819939	  0.99904950  0.49317228
++5250	 -6.27275810	 -0.00058925	  0.00036107	  7.27216885	  0.99819974	  0.99904968  0.49317238
++5251	 -6.27275837	 -0.00058914	  0.00036100	  7.27216923	  0.99820008	  0.99904986  0.49317241
++5252	 -6.27275863	 -0.00058902	  0.00036093	  7.27216961	  0.99820042	  0.99905004  0.49317245
++5253	 -6.27275890	 -0.00058891	  0.00036086	  7.27216999	  0.99820077	  0.99905022  0.49317253
++5254	 -6.27275917	 -0.00058880	  0.00036080	  7.27217037	  0.99820111	  0.99905040  0.49317256
++5255	 -6.27275944	 -0.00058869	  0.00036073	  7.27217075	  0.99820145	  0.99905059  0.49317260
++5256	 -6.27275971	 -0.00058858	  0.00036066	  7.27217113	  0.99820179	  0.99905077  0.49317263
++5257	 -6.27275997	 -0.00058846	  0.00036059	  7.27217151	  0.99820213	  0.99905095  0.49317270
++5258	 -6.27276024	 -0.00058835	  0.00036052	  7.27217189	  0.99820248	  0.99905113  0.49317272
++5259	 -6.27276051	 -0.00058824	  0.00036045	  7.27217227	  0.99820282	  0.99905131  0.49317275
++5260	 -6.27276078	 -0.00058813	  0.00036038	  7.27217265	  0.99820316	  0.99905149  0.49317277
++5261	 -6.27276104	 -0.00058802	  0.00036032	  7.27217303	  0.99820350	  0.99905167  0.49317281
++5262	 -6.27276131	 -0.00058790	  0.00036025	  7.27217341	  0.99820384	  0.99905185  0.49317287
++5263	 -6.27276158	 -0.00058779	  0.00036018	  7.27217378	  0.99820418	  0.99905203  0.49317289
++5264	 -6.27276184	 -0.00058768	  0.00036011	  7.27217416	  0.99820453	  0.99905221  0.49317299
++5265	 -6.27276211	 -0.00058757	  0.00036004	  7.27217454	  0.99820487	  0.99905239  0.49317296
++5266	 -6.27276238	 -0.00058746	  0.00035997	  7.27217492	  0.99820521	  0.99905257  0.49317302
++5267	 -6.27276265	 -0.00058735	  0.00035991	  7.27217530	  0.99820555	  0.99905275  0.49317307
++5268	 -6.27276291	 -0.00058724	  0.00035984	  7.27217568	  0.99820589	  0.99905293  0.49317310
++5269	 -6.27276318	 -0.00058712	  0.00035977	  7.27217605	  0.99820623	  0.99905311  0.49317316
++5270	 -6.27276344	 -0.00058701	  0.00035970	  7.27217643	  0.99820657	  0.99905329  0.49317319
++5271	 -6.27276371	 -0.00058690	  0.00035963	  7.27217681	  0.99820691	  0.99905347  0.49317321
++5272	 -6.27276398	 -0.00058679	  0.00035956	  7.27217719	  0.99820725	  0.99905365  0.49317328
++5273	 -6.27276424	 -0.00058668	  0.00035950	  7.27217756	  0.99820759	  0.99905383  0.49317329
++5274	 -6.27276451	 -0.00058657	  0.00035943	  7.27217794	  0.99820793	  0.99905400  0.49317335
++5275	 -6.27276478	 -0.00058646	  0.00035936	  7.27217832	  0.99820827	  0.99905418  0.49317337
++5276	 -6.27276504	 -0.00058635	  0.00035929	  7.27217870	  0.99820861	  0.99905436  0.49317339
++5277	 -6.27276531	 -0.00058623	  0.00035922	  7.27217907	  0.99820895	  0.99905454  0.49317346
++5278	 -6.27276557	 -0.00058612	  0.00035916	  7.27217945	  0.99820929	  0.99905472  0.49317350
++5279	 -6.27276584	 -0.00058601	  0.00035909	  7.27217982	  0.99820963	  0.99905490  0.49317354
++5280	 -6.27276610	 -0.00058590	  0.00035902	  7.27218020	  0.99820997	  0.99905508  0.49317358
++5281	 -6.27276637	 -0.00058579	  0.00035895	  7.27218058	  0.99821030	  0.99905526  0.49317361
++5282	 -6.27276663	 -0.00058568	  0.00035888	  7.27218095	  0.99821064	  0.99905544  0.49317361
++5283	 -6.27276690	 -0.00058557	  0.00035882	  7.27218133	  0.99821098	  0.99905562  0.49317370
++5284	 -6.27276716	 -0.00058546	  0.00035875	  7.27218170	  0.99821132	  0.99905579  0.49317372
++5285	 -6.27276743	 -0.00058535	  0.00035868	  7.27218208	  0.99821166	  0.99905597  0.49317378
++5286	 -6.27276769	 -0.00058524	  0.00035861	  7.27218246	  0.99821200	  0.99905615  0.49317376
++5287	 -6.27276796	 -0.00058513	  0.00035854	  7.27218283	  0.99821233	  0.99905633  0.49317387
++5288	 -6.27276822	 -0.00058502	  0.00035848	  7.27218321	  0.99821267	  0.99905651  0.49317387
++5289	 -6.27276849	 -0.00058491	  0.00035841	  7.27218358	  0.99821301	  0.99905669  0.49317394
++5290	 -6.27276875	 -0.00058480	  0.00035834	  7.27218396	  0.99821335	  0.99905686  0.49317397
++5291	 -6.27276902	 -0.00058468	  0.00035827	  7.27218433	  0.99821369	  0.99905704  0.49317398
++5292	 -6.27276928	 -0.00058457	  0.00035820	  7.27218471	  0.99821402	  0.99905722  0.49317402
++5293	 -6.27276954	 -0.00058446	  0.00035814	  7.27218508	  0.99821436	  0.99905740  0.49317408
++5294	 -6.27276981	 -0.00058435	  0.00035807	  7.27218545	  0.99821470	  0.99905758  0.49317410
++5295	 -6.27277007	 -0.00058424	  0.00035800	  7.27218583	  0.99821504	  0.99905775  0.49317417
++5296	 -6.27277034	 -0.00058413	  0.00035793	  7.27218620	  0.99821537	  0.99905793  0.49317422
++5297	 -6.27277060	 -0.00058402	  0.00035787	  7.27218658	  0.99821571	  0.99905811  0.49317425
++5298	 -6.27277086	 -0.00058391	  0.00035780	  7.27218695	  0.99821605	  0.99905829  0.49317429
++5299	 -6.27277113	 -0.00058380	  0.00035773	  7.27218732	  0.99821638	  0.99905847  0.49317428
++5300	 -6.27277139	 -0.00058369	  0.00035766	  7.27218770	  0.99821672	  0.99905864  0.49317437
++5301	 -6.27277165	 -0.00058358	  0.00035760	  7.27218807	  0.99821706	  0.99905882  0.49317446
++5302	 -6.27277192	 -0.00058347	  0.00035753	  7.27218844	  0.99821739	  0.99905900  0.49317445
++5303	 -6.27277218	 -0.00058336	  0.00035746	  7.27218882	  0.99821773	  0.99905918  0.49317449
++5304	 -6.27277244	 -0.00058325	  0.00035739	  7.27218919	  0.99821806	  0.99905935  0.49317453
++5305	 -6.27277270	 -0.00058314	  0.00035733	  7.27218956	  0.99821840	  0.99905953  0.49317457
++5306	 -6.27277297	 -0.00058303	  0.00035726	  7.27218993	  0.99821874	  0.99905971  0.49317458
++5307	 -6.27277323	 -0.00058292	  0.00035719	  7.27219031	  0.99821907	  0.99905988  0.49317467
++5308	 -6.27277349	 -0.00058281	  0.00035712	  7.27219068	  0.99821941	  0.99906006  0.49317464
++5309	 -6.27277376	 -0.00058270	  0.00035706	  7.27219105	  0.99821974	  0.99906024  0.49317472
++5310	 -6.27277402	 -0.00058259	  0.00035699	  7.27219142	  0.99822008	  0.99906042  0.49317476
++5311	 -6.27277428	 -0.00058248	  0.00035692	  7.27219180	  0.99822041	  0.99906059  0.49317478
++5312	 -6.27277454	 -0.00058237	  0.00035686	  7.27219217	  0.99822075	  0.99906077  0.49317481
++5313	 -6.27277480	 -0.00058227	  0.00035679	  7.27219254	  0.99822108	  0.99906095  0.49317486
++5314	 -6.27277507	 -0.00058216	  0.00035672	  7.27219291	  0.99822142	  0.99906112  0.49317492
++5315	 -6.27277533	 -0.00058205	  0.00035665	  7.27219328	  0.99822175	  0.99906130  0.49317497
++5316	 -6.27277559	 -0.00058194	  0.00035659	  7.27219365	  0.99822209	  0.99906148  0.49317500
++5317	 -6.27277585	 -0.00058183	  0.00035652	  7.27219402	  0.99822242	  0.99906165  0.49317504
++5318	 -6.27277611	 -0.00058172	  0.00035645	  7.27219440	  0.99822275	  0.99906183  0.49317502
++5319	 -6.27277637	 -0.00058161	  0.00035639	  7.27219477	  0.99822309	  0.99906200  0.49317510
++5320	 -6.27277664	 -0.00058150	  0.00035632	  7.27219514	  0.99822342	  0.99906218  0.49317515
++5321	 -6.27277690	 -0.00058139	  0.00035625	  7.27219551	  0.99822376	  0.99906236  0.49317515
++5322	 -6.27277716	 -0.00058128	  0.00035619	  7.27219588	  0.99822409	  0.99906253  0.49317527
++5323	 -6.27277742	 -0.00058117	  0.00035612	  7.27219625	  0.99822442	  0.99906271  0.49317521
++5324	 -6.27277768	 -0.00058106	  0.00035605	  7.27219662	  0.99822476	  0.99906289  0.49317533
++5325	 -6.27277794	 -0.00058095	  0.00035598	  7.27219699	  0.99822509	  0.99906306  0.49317536
++5326	 -6.27277820	 -0.00058084	  0.00035592	  7.27219736	  0.99822542	  0.99906324  0.49317532
++5327	 -6.27277846	 -0.00058074	  0.00035585	  7.27219773	  0.99822576	  0.99906341  0.49317542
++5328	 -6.27277872	 -0.00058063	  0.00035578	  7.27219810	  0.99822609	  0.99906359  0.49317544
++5329	 -6.27277898	 -0.00058052	  0.00035572	  7.27219847	  0.99822642	  0.99906376  0.49317549
++5330	 -6.27277924	 -0.00058041	  0.00035565	  7.27219884	  0.99822675	  0.99906394  0.49317552
++5331	 -6.27277950	 -0.00058030	  0.00035558	  7.27219920	  0.99822709	  0.99906412  0.49317558
++5332	 -6.27277977	 -0.00058019	  0.00035552	  7.27219957	  0.99822742	  0.99906429  0.49317562
++5333	 -6.27278003	 -0.00058008	  0.00035545	  7.27219994	  0.99822775	  0.99906447  0.49317566
++5334	 -6.27278029	 -0.00057997	  0.00035538	  7.27220031	  0.99822808	  0.99906464  0.49317568
++5335	 -6.27278055	 -0.00057987	  0.00035532	  7.27220068	  0.99822842	  0.99906482  0.49317573
++5336	 -6.27278080	 -0.00057976	  0.00035525	  7.27220105	  0.99822875	  0.99906499  0.49317574
++5337	 -6.27278106	 -0.00057965	  0.00035518	  7.27220142	  0.99822908	  0.99906517  0.49317581
++5338	 -6.27278132	 -0.00057954	  0.00035512	  7.27220178	  0.99822941	  0.99906534  0.49317584
++5339	 -6.27278158	 -0.00057943	  0.00035505	  7.27220215	  0.99822974	  0.99906552  0.49317591
++5340	 -6.27278184	 -0.00057932	  0.00035498	  7.27220252	  0.99823008	  0.99906569  0.49317591
++5341	 -6.27278210	 -0.00057921	  0.00035492	  7.27220289	  0.99823041	  0.99906587  0.49317595
++5342	 -6.27278236	 -0.00057911	  0.00035485	  7.27220326	  0.99823074	  0.99906604  0.49317597
++5343	 -6.27278262	 -0.00057900	  0.00035479	  7.27220362	  0.99823107	  0.99906622  0.49317601
++5344	 -6.27278288	 -0.00057889	  0.00035472	  7.27220399	  0.99823140	  0.99906639  0.49317609
++5345	 -6.27278314	 -0.00057878	  0.00035465	  7.27220436	  0.99823173	  0.99906657  0.49317610
++5346	 -6.27278340	 -0.00057867	  0.00035459	  7.27220472	  0.99823206	  0.99906674  0.49317615
++5347	 -6.27278366	 -0.00057857	  0.00035452	  7.27220509	  0.99823239	  0.99906691  0.49317621
++5348	 -6.27278392	 -0.00057846	  0.00035445	  7.27220546	  0.99823272	  0.99906709  0.49317622
++5349	 -6.27278417	 -0.00057835	  0.00035439	  7.27220582	  0.99823305	  0.99906726  0.49317632
++5350	 -6.27278443	 -0.00057824	  0.00035432	  7.27220619	  0.99823338	  0.99906744  0.49317629
++5351	 -6.27278469	 -0.00057813	  0.00035425	  7.27220656	  0.99823371	  0.99906761  0.49317636
++5352	 -6.27278495	 -0.00057802	  0.00035419	  7.27220692	  0.99823404	  0.99906779  0.49317638
++5353	 -6.27278521	 -0.00057792	  0.00035412	  7.27220729	  0.99823437	  0.99906796  0.49317641
++5354	 -6.27278547	 -0.00057781	  0.00035406	  7.27220766	  0.99823470	  0.99906813  0.49317644
++5355	 -6.27278572	 -0.00057770	  0.00035399	  7.27220802	  0.99823503	  0.99906831  0.49317646
++5356	 -6.27278598	 -0.00057759	  0.00035392	  7.27220839	  0.99823536	  0.99906848  0.49317651
++5357	 -6.27278624	 -0.00057749	  0.00035386	  7.27220875	  0.99823569	  0.99906866  0.49317654
++5358	 -6.27278650	 -0.00057738	  0.00035379	  7.27220912	  0.99823602	  0.99906883  0.49317660
++5359	 -6.27278675	 -0.00057727	  0.00035373	  7.27220948	  0.99823635	  0.99906900  0.49317666
++5360	 -6.27278701	 -0.00057716	  0.00035366	  7.27220985	  0.99823668	  0.99906918  0.49317668
++5361	 -6.27278727	 -0.00057706	  0.00035359	  7.27221021	  0.99823701	  0.99906935  0.49317676
++5362	 -6.27278753	 -0.00057695	  0.00035353	  7.27221058	  0.99823734	  0.99906952  0.49317676
++5363	 -6.27278778	 -0.00057684	  0.00035346	  7.27221094	  0.99823766	  0.99906970  0.49317678
++5364	 -6.27278804	 -0.00057673	  0.00035340	  7.27221131	  0.99823799	  0.99906987  0.49317683
++5365	 -6.27278830	 -0.00057663	  0.00035333	  7.27221167	  0.99823832	  0.99907004  0.49317687
++5366	 -6.27278855	 -0.00057652	  0.00035326	  7.27221204	  0.99823865	  0.99907022  0.49317691
++5367	 -6.27278881	 -0.00057641	  0.00035320	  7.27221240	  0.99823898	  0.99907039  0.49317697
++5368	 -6.27278907	 -0.00057630	  0.00035313	  7.27221277	  0.99823931	  0.99907056  0.49317699
++5369	 -6.27278933	 -0.00057620	  0.00035307	  7.27221313	  0.99823963	  0.99907074  0.49317702
++5370	 -6.27278958	 -0.00057609	  0.00035300	  7.27221349	  0.99823996	  0.99907091  0.49317708
++5371	 -6.27278984	 -0.00057598	  0.00035294	  7.27221386	  0.99824029	  0.99907108  0.49317710
++5372	 -6.27279009	 -0.00057587	  0.00035287	  7.27221422	  0.99824062	  0.99907126  0.49317717
++5373	 -6.27279035	 -0.00057577	  0.00035280	  7.27221458	  0.99824094	  0.99907143  0.49317720
++5374	 -6.27279061	 -0.00057566	  0.00035274	  7.27221495	  0.99824127	  0.99907160  0.49317720
++5375	 -6.27279086	 -0.00057555	  0.00035267	  7.27221531	  0.99824160	  0.99907177  0.49317727
++5376	 -6.27279112	 -0.00057545	  0.00035261	  7.27221567	  0.99824193	  0.99907195  0.49317735
++5377	 -6.27279137	 -0.00057534	  0.00035254	  7.27221604	  0.99824225	  0.99907212  0.49317732
++5378	 -6.27279163	 -0.00057523	  0.00035248	  7.27221640	  0.99824258	  0.99907229  0.49317739
++5379	 -6.27279189	 -0.00057513	  0.00035241	  7.27221676	  0.99824291	  0.99907246  0.49317738
++5380	 -6.27279214	 -0.00057502	  0.00035235	  7.27221712	  0.99824323	  0.99907264  0.49317745
++5381	 -6.27279240	 -0.00057491	  0.00035228	  7.27221749	  0.99824356	  0.99907281  0.49317748
++5382	 -6.27279265	 -0.00057480	  0.00035221	  7.27221785	  0.99824389	  0.99907298  0.49317752
++5383	 -6.27279291	 -0.00057470	  0.00035215	  7.27221821	  0.99824421	  0.99907315  0.49317757
++5384	 -6.27279316	 -0.00057459	  0.00035208	  7.27221857	  0.99824454	  0.99907332  0.49317760
++5385	 -6.27279342	 -0.00057448	  0.00035202	  7.27221893	  0.99824486	  0.99907350  0.49317764
++5386	 -6.27279367	 -0.00057438	  0.00035195	  7.27221930	  0.99824519	  0.99907367  0.49317766
++5387	 -6.27279393	 -0.00057427	  0.00035189	  7.27221966	  0.99824551	  0.99907384  0.49317770
++5388	 -6.27279418	 -0.00057417	  0.00035182	  7.27222002	  0.99824584	  0.99907401  0.49317777
++5389	 -6.27279444	 -0.00057406	  0.00035176	  7.27222038	  0.99824617	  0.99907418  0.49317774
++5390	 -6.27279469	 -0.00057395	  0.00035169	  7.27222074	  0.99824649	  0.99907436  0.49317781
++5391	 -6.27279495	 -0.00057385	  0.00035163	  7.27222110	  0.99824682	  0.99907453  0.49317792
++5392	 -6.27279520	 -0.00057374	  0.00035156	  7.27222146	  0.99824714	  0.99907470  0.49317788
++5393	 -6.27279546	 -0.00057363	  0.00035150	  7.27222182	  0.99824747	  0.99907487  0.49317793
++5394	 -6.27279571	 -0.00057353	  0.00035143	  7.27222218	  0.99824779	  0.99907504  0.49317800
++5395	 -6.27279596	 -0.00057342	  0.00035137	  7.27222254	  0.99824812	  0.99907521  0.49317798
++5396	 -6.27279622	 -0.00057331	  0.00035130	  7.27222290	  0.99824844	  0.99907538  0.49317810
++5397	 -6.27279647	 -0.00057321	  0.00035124	  7.27222326	  0.99824877	  0.99907556  0.49317811
++5398	 -6.27279673	 -0.00057310	  0.00035117	  7.27222362	  0.99824909	  0.99907573  0.49317808
++5399	 -6.27279698	 -0.00057300	  0.00035111	  7.27222398	  0.99824941	  0.99907590  0.49317818
++5400	 -6.27279723	 -0.00057289	  0.00035104	  7.27222434	  0.99824974	  0.99907607  0.49317820
++5401	 -6.27279749	 -0.00057278	  0.00035098	  7.27222470	  0.99825006	  0.99907624  0.49317824
++5402	 -6.27279774	 -0.00057268	  0.00035091	  7.27222506	  0.99825039	  0.99907641  0.49317828
++5403	 -6.27279799	 -0.00057257	  0.00035085	  7.27222542	  0.99825071	  0.99907658  0.49317828
++5404	 -6.27279825	 -0.00057247	  0.00035078	  7.27222578	  0.99825103	  0.99907675  0.49317836
++5405	 -6.27279850	 -0.00057236	  0.00035072	  7.27222614	  0.99825136	  0.99907692  0.49317841
++5406	 -6.27279875	 -0.00057225	  0.00035065	  7.27222650	  0.99825168	  0.99907709  0.49317844
++5407	 -6.27279901	 -0.00057215	  0.00035059	  7.27222686	  0.99825200	  0.99907727  0.49317846
++5408	 -6.27279926	 -0.00057204	  0.00035052	  7.27222722	  0.99825233	  0.99907744  0.49317853
++5409	 -6.27279951	 -0.00057194	  0.00035046	  7.27222758	  0.99825265	  0.99907761  0.49317855
++5410	 -6.27279977	 -0.00057183	  0.00035039	  7.27222793	  0.99825297	  0.99907778  0.49317862
++5411	 -6.27280002	 -0.00057173	  0.00035033	  7.27222829	  0.99825330	  0.99907795  0.49317862
++5412	 -6.27280027	 -0.00057162	  0.00035026	  7.27222865	  0.99825362	  0.99907812  0.49317865
++5413	 -6.27280052	 -0.00057152	  0.00035020	  7.27222901	  0.99825394	  0.99907829  0.49317872
++5414	 -6.27280078	 -0.00057141	  0.00035013	  7.27222937	  0.99825426	  0.99907846  0.49317874
++5415	 -6.27280103	 -0.00057130	  0.00035007	  7.27222972	  0.99825459	  0.99907863  0.49317875
++5416	 -6.27280128	 -0.00057120	  0.00035000	  7.27223008	  0.99825491	  0.99907880  0.49317879
++5417	 -6.27280153	 -0.00057109	  0.00034994	  7.27223044	  0.99825523	  0.99907897  0.49317885
++5418	 -6.27280178	 -0.00057099	  0.00034987	  7.27223080	  0.99825555	  0.99907914  0.49317886
++5419	 -6.27280204	 -0.00057088	  0.00034981	  7.27223115	  0.99825587	  0.99907931  0.49317891
++5420	 -6.27280229	 -0.00057078	  0.00034974	  7.27223151	  0.99825620	  0.99907948  0.49317896
++5421	 -6.27280254	 -0.00057067	  0.00034968	  7.27223187	  0.99825652	  0.99907965  0.49317901
++5422	 -6.27280279	 -0.00057057	  0.00034962	  7.27223222	  0.99825684	  0.99907982  0.49317904
++5423	 -6.27280304	 -0.00057046	  0.00034955	  7.27223258	  0.99825716	  0.99907999  0.49317904
++5424	 -6.27280329	 -0.00057036	  0.00034949	  7.27223294	  0.99825748	  0.99908016  0.49317910
++5425	 -6.27280355	 -0.00057025	  0.00034942	  7.27223329	  0.99825780	  0.99908033  0.49317919
++5426	 -6.27280380	 -0.00057015	  0.00034936	  7.27223365	  0.99825812	  0.99908050  0.49317919
++5427	 -6.27280405	 -0.00057004	  0.00034929	  7.27223401	  0.99825844	  0.99908066  0.49317919
++5428	 -6.27280430	 -0.00056994	  0.00034923	  7.27223436	  0.99825877	  0.99908083  0.49317929
++5429	 -6.27280455	 -0.00056983	  0.00034916	  7.27223472	  0.99825909	  0.99908100  0.49317932
++5430	 -6.27280480	 -0.00056973	  0.00034910	  7.27223507	  0.99825941	  0.99908117  0.49317933
++5431	 -6.27280505	 -0.00056962	  0.00034904	  7.27223543	  0.99825973	  0.99908134  0.49317936
++5432	 -6.27280530	 -0.00056952	  0.00034897	  7.27223579	  0.99826005	  0.99908151  0.49317942
++5433	 -6.27280555	 -0.00056941	  0.00034891	  7.27223614	  0.99826037	  0.99908168  0.49317941
++5434	 -6.27280580	 -0.00056931	  0.00034884	  7.27223650	  0.99826069	  0.99908185  0.49317944
++5435	 -6.27280606	 -0.00056920	  0.00034878	  7.27223685	  0.99826101	  0.99908202  0.49317951
++5436	 -6.27280631	 -0.00056910	  0.00034872	  7.27223721	  0.99826133	  0.99908219  0.49317958
++5437	 -6.27280656	 -0.00056899	  0.00034865	  7.27223756	  0.99826165	  0.99908235  0.49317962
++5438	 -6.27280681	 -0.00056889	  0.00034859	  7.27223792	  0.99826197	  0.99908252  0.49317961
++5439	 -6.27280706	 -0.00056878	  0.00034852	  7.27223827	  0.99826229	  0.99908269  0.49317963
++5440	 -6.27280731	 -0.00056868	  0.00034846	  7.27223863	  0.99826261	  0.99908286  0.49317970
++5441	 -6.27280756	 -0.00056858	  0.00034839	  7.27223898	  0.99826293	  0.99908303  0.49317974
++5442	 -6.27280781	 -0.00056847	  0.00034833	  7.27223933	  0.99826324	  0.99908320  0.49317978
++5443	 -6.27280806	 -0.00056837	  0.00034827	  7.27223969	  0.99826356	  0.99908337  0.49317977
++5444	 -6.27280830	 -0.00056826	  0.00034820	  7.27224004	  0.99826388	  0.99908353  0.49317984
++5445	 -6.27280855	 -0.00056816	  0.00034814	  7.27224040	  0.99826420	  0.99908370  0.49317991
++5446	 -6.27280880	 -0.00056805	  0.00034807	  7.27224075	  0.99826452	  0.99908387  0.49317993
++5447	 -6.27280905	 -0.00056795	  0.00034801	  7.27224110	  0.99826484	  0.99908404  0.49317997
++5448	 -6.27280930	 -0.00056785	  0.00034795	  7.27224146	  0.99826516	  0.99908421  0.49317999
++5449	 -6.27280955	 -0.00056774	  0.00034788	  7.27224181	  0.99826547	  0.99908438  0.49318004
++5450	 -6.27280980	 -0.00056764	  0.00034782	  7.27224216	  0.99826579	  0.99908454  0.49318009
++5451	 -6.27281005	 -0.00056753	  0.00034776	  7.27224252	  0.99826611	  0.99908471  0.49318013
++5452	 -6.27281030	 -0.00056743	  0.00034769	  7.27224287	  0.99826643	  0.99908488  0.49318014
++5453	 -6.27281055	 -0.00056733	  0.00034763	  7.27224322	  0.99826675	  0.99908505  0.49318020
++5454	 -6.27281080	 -0.00056722	  0.00034756	  7.27224357	  0.99826706	  0.99908521  0.49318023
++5455	 -6.27281104	 -0.00056712	  0.00034750	  7.27224393	  0.99826738	  0.99908538  0.49318021
++5456	 -6.27281129	 -0.00056701	  0.00034744	  7.27224428	  0.99826770	  0.99908555  0.49318033
++5457	 -6.27281154	 -0.00056691	  0.00034737	  7.27224463	  0.99826802	  0.99908572  0.49318033
++5458	 -6.27281179	 -0.00056681	  0.00034731	  7.27224498	  0.99826833	  0.99908588  0.49318036
++5459	 -6.27281204	 -0.00056670	  0.00034725	  7.27224534	  0.99826865	  0.99908605  0.49318042
++5460	 -6.27281229	 -0.00056660	  0.00034718	  7.27224569	  0.99826897	  0.99908622  0.49318046
++5461	 -6.27281253	 -0.00056649	  0.00034712	  7.27224604	  0.99826929	  0.99908639  0.49318048
++5462	 -6.27281278	 -0.00056639	  0.00034706	  7.27224639	  0.99826960	  0.99908655  0.49318053
++5463	 -6.27281303	 -0.00056629	  0.00034699	  7.27224674	  0.99826992	  0.99908672  0.49318056
++5464	 -6.27281328	 -0.00056618	  0.00034693	  7.27224709	  0.99827024	  0.99908689  0.49318059
++5465	 -6.27281353	 -0.00056608	  0.00034686	  7.27224745	  0.99827055	  0.99908705  0.49318066
++5466	 -6.27281377	 -0.00056598	  0.00034680	  7.27224780	  0.99827087	  0.99908722  0.49318067
++5467	 -6.27281402	 -0.00056587	  0.00034674	  7.27224815	  0.99827119	  0.99908739  0.49318073
++5468	 -6.27281427	 -0.00056577	  0.00034667	  7.27224850	  0.99827150	  0.99908756  0.49318072
++5469	 -6.27281452	 -0.00056567	  0.00034661	  7.27224885	  0.99827182	  0.99908772  0.49318077
++5470	 -6.27281476	 -0.00056556	  0.00034655	  7.27224920	  0.99827213	  0.99908789  0.49318079
++5471	 -6.27281501	 -0.00056546	  0.00034648	  7.27224955	  0.99827245	  0.99908806  0.49318086
++5472	 -6.27281526	 -0.00056536	  0.00034642	  7.27224990	  0.99827276	  0.99908822  0.49318086
++5473	 -6.27281550	 -0.00056525	  0.00034636	  7.27225025	  0.99827308	  0.99908839  0.49318091
++5474	 -6.27281575	 -0.00056515	  0.00034629	  7.27225060	  0.99827340	  0.99908856  0.49318093
++5475	 -6.27281600	 -0.00056505	  0.00034623	  7.27225095	  0.99827371	  0.99908872  0.49318097
++5476	 -6.27281624	 -0.00056494	  0.00034617	  7.27225130	  0.99827403	  0.99908889  0.49318102
++5477	 -6.27281649	 -0.00056484	  0.00034610	  7.27225165	  0.99827434	  0.99908905  0.49318109
++5478	 -6.27281674	 -0.00056474	  0.00034604	  7.27225200	  0.99827466	  0.99908922  0.49318111
++5479	 -6.27281698	 -0.00056463	  0.00034598	  7.27225235	  0.99827497	  0.99908939  0.49318114
++5480	 -6.27281723	 -0.00056453	  0.00034592	  7.27225270	  0.99827529	  0.99908955  0.49318118
++5481	 -6.27281748	 -0.00056443	  0.00034585	  7.27225305	  0.99827560	  0.99908972  0.49318122
++5482	 -6.27281772	 -0.00056433	  0.00034579	  7.27225340	  0.99827591	  0.99908988  0.49318124
++5483	 -6.27281797	 -0.00056422	  0.00034573	  7.27225375	  0.99827623	  0.99909005  0.49318128
++5484	 -6.27281822	 -0.00056412	  0.00034566	  7.27225409	  0.99827654	  0.99909022  0.49318131
++5485	 -6.27281846	 -0.00056402	  0.00034560	  7.27225444	  0.99827686	  0.99909038  0.49318135
++5486	 -6.27281871	 -0.00056391	  0.00034554	  7.27225479	  0.99827717	  0.99909055  0.49318140
++5487	 -6.27281895	 -0.00056381	  0.00034547	  7.27225514	  0.99827749	  0.99909071  0.49318139
++5488	 -6.27281920	 -0.00056371	  0.00034541	  7.27225549	  0.99827780	  0.99909088  0.49318148
++5489	 -6.27281944	 -0.00056361	  0.00034535	  7.27225584	  0.99827811	  0.99909105  0.49318152
++5490	 -6.27281969	 -0.00056350	  0.00034528	  7.27225619	  0.99827843	  0.99909121  0.49318156
++5491	 -6.27281993	 -0.00056340	  0.00034522	  7.27225653	  0.99827874	  0.99909138  0.49318159
++5492	 -6.27282018	 -0.00056330	  0.00034516	  7.27225688	  0.99827905	  0.99909154  0.49318163
++5493	 -6.27282043	 -0.00056320	  0.00034510	  7.27225723	  0.99827937	  0.99909171  0.49318166
++5494	 -6.27282067	 -0.00056309	  0.00034503	  7.27225758	  0.99827968	  0.99909187  0.49318168
++5495	 -6.27282092	 -0.00056299	  0.00034497	  7.27225792	  0.99827999	  0.99909204  0.49318179
++5496	 -6.27282116	 -0.00056289	  0.00034491	  7.27225827	  0.99828031	  0.99909220  0.49318171
++5497	 -6.27282141	 -0.00056279	  0.00034485	  7.27225862	  0.99828062	  0.99909237  0.49318177
++5498	 -6.27282165	 -0.00056268	  0.00034478	  7.27225897	  0.99828093	  0.99909253  0.49318188
++5499	 -6.27282189	 -0.00056258	  0.00034472	  7.27225931	  0.99828124	  0.99909270  0.49318185
++5500	 -6.27282214	 -0.00056248	  0.00034466	  7.27225966	  0.99828156	  0.99909286  0.49318190
++5501	 -6.27282238	 -0.00056238	  0.00034459	  7.27226001	  0.99828187	  0.99909303  0.49318196
++5502	 -6.27282263	 -0.00056228	  0.00034453	  7.27226035	  0.99828218	  0.99909319  0.49318197
++5503	 -6.27282287	 -0.00056217	  0.00034447	  7.27226070	  0.99828249	  0.99909336  0.49318203
++5504	 -6.27282312	 -0.00056207	  0.00034441	  7.27226104	  0.99828281	  0.99909352  0.49318204
++5505	 -6.27282336	 -0.00056197	  0.00034434	  7.27226139	  0.99828312	  0.99909369  0.49318210
++5506	 -6.27282360	 -0.00056187	  0.00034428	  7.27226174	  0.99828343	  0.99909385  0.49318213
++5507	 -6.27282385	 -0.00056177	  0.00034422	  7.27226208	  0.99828374	  0.99909402  0.49318217
++5508	 -6.27282409	 -0.00056166	  0.00034416	  7.27226243	  0.99828405	  0.99909418  0.49318219
++5509	 -6.27282434	 -0.00056156	  0.00034409	  7.27226277	  0.99828436	  0.99909434  0.49318217
++5510	 -6.27282458	 -0.00056146	  0.00034403	  7.27226312	  0.99828467	  0.99909451  0.49318229
++5511	 -6.27282482	 -0.00056136	  0.00034397	  7.27226347	  0.99828499	  0.99909467  0.49318235
++5512	 -6.27282507	 -0.00056126	  0.00034391	  7.27226381	  0.99828530	  0.99909484  0.49318234
++5513	 -6.27282531	 -0.00056115	  0.00034384	  7.27226416	  0.99828561	  0.99909500  0.49318238
++5514	 -6.27282555	 -0.00056105	  0.00034378	  7.27226450	  0.99828592	  0.99909516  0.49318244
++5515	 -6.27282580	 -0.00056095	  0.00034372	  7.27226485	  0.99828623	  0.99909533  0.49318245
++5516	 -6.27282604	 -0.00056085	  0.00034366	  7.27226519	  0.99828654	  0.99909549  0.49318251
++5517	 -6.27282628	 -0.00056075	  0.00034360	  7.27226554	  0.99828685	  0.99909566  0.49318249
++5518	 -6.27282653	 -0.00056065	  0.00034353	  7.27226588	  0.99828716	  0.99909582  0.49318260
++5519	 -6.27282677	 -0.00056055	  0.00034347	  7.27226622	  0.99828747	  0.99909598  0.49318256
++5520	 -6.27282701	 -0.00056044	  0.00034341	  7.27226657	  0.99828778	  0.99909615  0.49318268
++5521	 -6.27282725	 -0.00056034	  0.00034335	  7.27226691	  0.99828809	  0.99909631  0.49318269
++5522	 -6.27282750	 -0.00056024	  0.00034328	  7.27226726	  0.99828840	  0.99909648  0.49318273
++5523	 -6.27282774	 -0.00056014	  0.00034322	  7.27226760	  0.99828871	  0.99909664  0.49318276
++5524	 -6.27282798	 -0.00056004	  0.00034316	  7.27226794	  0.99828902	  0.99909680  0.49318278
++5525	 -6.27282822	 -0.00055994	  0.00034310	  7.27226829	  0.99828933	  0.99909697  0.49318281
++5526	 -6.27282847	 -0.00055984	  0.00034304	  7.27226863	  0.99828964	  0.99909713  0.49318285
++5527	 -6.27282871	 -0.00055973	  0.00034297	  7.27226898	  0.99828995	  0.99909729  0.49318289
++5528	 -6.27282895	 -0.00055963	  0.00034291	  7.27226932	  0.99829026	  0.99909746  0.49318294
++5529	 -6.27282919	 -0.00055953	  0.00034285	  7.27226966	  0.99829057	  0.99909762  0.49318296
++5530	 -6.27282944	 -0.00055943	  0.00034279	  7.27227000	  0.99829088	  0.99909778  0.49318295
++5531	 -6.27282968	 -0.00055933	  0.00034273	  7.27227035	  0.99829119	  0.99909794  0.49318302
++5532	 -6.27282992	 -0.00055923	  0.00034266	  7.27227069	  0.99829150	  0.99909811  0.49318310
++5533	 -6.27283016	 -0.00055913	  0.00034260	  7.27227103	  0.99829180	  0.99909827  0.49318311
++5534	 -6.27283040	 -0.00055903	  0.00034254	  7.27227138	  0.99829211	  0.99909843  0.49318314
++5535	 -6.27283064	 -0.00055893	  0.00034248	  7.27227172	  0.99829242	  0.99909860  0.49318318
++5536	 -6.27283089	 -0.00055882	  0.00034242	  7.27227206	  0.99829273	  0.99909876  0.49318320
++5537	 -6.27283113	 -0.00055872	  0.00034235	  7.27227240	  0.99829304	  0.99909892  0.49318320
++5538	 -6.27283137	 -0.00055862	  0.00034229	  7.27227274	  0.99829335	  0.99909908  0.49318327
++5539	 -6.27283161	 -0.00055852	  0.00034223	  7.27227309	  0.99829365	  0.99909925  0.49318333
++5540	 -6.27283185	 -0.00055842	  0.00034217	  7.27227343	  0.99829396	  0.99909941  0.49318333
++5541	 -6.27283209	 -0.00055832	  0.00034211	  7.27227377	  0.99829427	  0.99909957  0.49318336
++5542	 -6.27283233	 -0.00055822	  0.00034204	  7.27227411	  0.99829458	  0.99909973  0.49318343
++5543	 -6.27283257	 -0.00055812	  0.00034198	  7.27227445	  0.99829489	  0.99909990  0.49318344
++5544	 -6.27283281	 -0.00055802	  0.00034192	  7.27227479	  0.99829519	  0.99910006  0.49318351
++5545	 -6.27283305	 -0.00055792	  0.00034186	  7.27227514	  0.99829550	  0.99910022  0.49318353
++5546	 -6.27283329	 -0.00055782	  0.00034180	  7.27227548	  0.99829581	  0.99910038  0.49318358
++5547	 -6.27283353	 -0.00055772	  0.00034174	  7.27227582	  0.99829611	  0.99910055  0.49318362
++5548	 -6.27283378	 -0.00055762	  0.00034168	  7.27227616	  0.99829642	  0.99910071  0.49318360
++5549	 -6.27283402	 -0.00055752	  0.00034161	  7.27227650	  0.99829673	  0.99910087  0.49318367
++5550	 -6.27283426	 -0.00055742	  0.00034155	  7.27227684	  0.99829704	  0.99910103  0.49318371
++5551	 -6.27283450	 -0.00055732	  0.00034149	  7.27227718	  0.99829734	  0.99910119  0.49318374
++5552	 -6.27283474	 -0.00055722	  0.00034143	  7.27227752	  0.99829765	  0.99910136  0.49318380
++5553	 -6.27283498	 -0.00055712	  0.00034137	  7.27227786	  0.99829796	  0.99910152  0.49318376
++5554	 -6.27283522	 -0.00055701	  0.00034131	  7.27227820	  0.99829826	  0.99910168  0.49318386
++5555	 -6.27283546	 -0.00055691	  0.00034124	  7.27227854	  0.99829857	  0.99910184  0.49318389
++5556	 -6.27283570	 -0.00055681	  0.00034118	  7.27227888	  0.99829887	  0.99910200  0.49318390
++5557	 -6.27283593	 -0.00055671	  0.00034112	  7.27227922	  0.99829918	  0.99910216  0.49318396
++5558	 -6.27283617	 -0.00055661	  0.00034106	  7.27227956	  0.99829949	  0.99910233  0.49318401
++5559	 -6.27283641	 -0.00055651	  0.00034100	  7.27227990	  0.99829979	  0.99910249  0.49318410
++5560	 -6.27283665	 -0.00055641	  0.00034094	  7.27228024	  0.99830010	  0.99910265  0.49318407
++5561	 -6.27283689	 -0.00055631	  0.00034088	  7.27228058	  0.99830040	  0.99910281  0.49318407
++5562	 -6.27283713	 -0.00055621	  0.00034081	  7.27228092	  0.99830071	  0.99910297  0.49318414
++5563	 -6.27283737	 -0.00055611	  0.00034075	  7.27228126	  0.99830101	  0.99910313  0.49318415
++5564	 -6.27283761	 -0.00055601	  0.00034069	  7.27228159	  0.99830132	  0.99910329  0.49318423
++5565	 -6.27283785	 -0.00055591	  0.00034063	  7.27228193	  0.99830163	  0.99910345  0.49318423
++5566	 -6.27283809	 -0.00055581	  0.00034057	  7.27228227	  0.99830193	  0.99910362  0.49318427
++5567	 -6.27283833	 -0.00055571	  0.00034051	  7.27228261	  0.99830224	  0.99910378  0.49318428
++5568	 -6.27283856	 -0.00055562	  0.00034045	  7.27228295	  0.99830254	  0.99910394  0.49318433
++5569	 -6.27283880	 -0.00055552	  0.00034039	  7.27228329	  0.99830285	  0.99910410  0.49318443
++5570	 -6.27283904	 -0.00055542	  0.00034033	  7.27228363	  0.99830315	  0.99910426  0.49318443
++5571	 -6.27283928	 -0.00055532	  0.00034026	  7.27228396	  0.99830345	  0.99910442  0.49318449
++5572	 -6.27283952	 -0.00055522	  0.00034020	  7.27228430	  0.99830376	  0.99910458  0.49318449
++5573	 -6.27283976	 -0.00055512	  0.00034014	  7.27228464	  0.99830406	  0.99910474  0.49318454
++5574	 -6.27283999	 -0.00055502	  0.00034008	  7.27228498	  0.99830437	  0.99910490  0.49318457
++5575	 -6.27284023	 -0.00055492	  0.00034002	  7.27228531	  0.99830467	  0.99910506  0.49318459
++5576	 -6.27284047	 -0.00055482	  0.00033996	  7.27228565	  0.99830498	  0.99910522  0.49318460
++5577	 -6.27284071	 -0.00055472	  0.00033990	  7.27228599	  0.99830528	  0.99910538  0.49318465
++5578	 -6.27284095	 -0.00055462	  0.00033984	  7.27228633	  0.99830558	  0.99910554  0.49318472
++5579	 -6.27284118	 -0.00055452	  0.00033978	  7.27228666	  0.99830589	  0.99910570  0.49318477
++5580	 -6.27284142	 -0.00055442	  0.00033972	  7.27228700	  0.99830619	  0.99910586  0.49318479
++5581	 -6.27284166	 -0.00055432	  0.00033965	  7.27228734	  0.99830649	  0.99910602  0.49318483
++5582	 -6.27284190	 -0.00055422	  0.00033959	  7.27228767	  0.99830680	  0.99910618  0.49318487
++5583	 -6.27284213	 -0.00055412	  0.00033953	  7.27228801	  0.99830710	  0.99910634  0.49318489
++5584	 -6.27284237	 -0.00055402	  0.00033947	  7.27228835	  0.99830740	  0.99910650  0.49318490
++5585	 -6.27284261	 -0.00055393	  0.00033941	  7.27228868	  0.99830771	  0.99910666  0.49318496
++5586	 -6.27284285	 -0.00055383	  0.00033935	  7.27228902	  0.99830801	  0.99910682  0.49318499
++5587	 -6.27284308	 -0.00055373	  0.00033929	  7.27228936	  0.99830831	  0.99910698  0.49318499
++5588	 -6.27284332	 -0.00055363	  0.00033923	  7.27228969	  0.99830861	  0.99910714  0.49318509
++5589	 -6.27284356	 -0.00055353	  0.00033917	  7.27229003	  0.99830892	  0.99910730  0.49318511
++5590	 -6.27284379	 -0.00055343	  0.00033911	  7.27229036	  0.99830922	  0.99910746  0.49318515
++5591	 -6.27284403	 -0.00055333	  0.00033905	  7.27229070	  0.99830952	  0.99910762  0.49318516
++5592	 -6.27284427	 -0.00055323	  0.00033899	  7.27229103	  0.99830982	  0.99910778  0.49318524
++5593	 -6.27284450	 -0.00055313	  0.00033893	  7.27229137	  0.99831013	  0.99910794  0.49318524
++5594	 -6.27284474	 -0.00055303	  0.00033887	  7.27229170	  0.99831043	  0.99910810  0.49318528
++5595	 -6.27284498	 -0.00055294	  0.00033880	  7.27229204	  0.99831073	  0.99910826  0.49318529
++5596	 -6.27284521	 -0.00055284	  0.00033874	  7.27229237	  0.99831103	  0.99910842  0.49318533
++5597	 -6.27284545	 -0.00055274	  0.00033868	  7.27229271	  0.99831133	  0.99910858  0.49318539
++5598	 -6.27284568	 -0.00055264	  0.00033862	  7.27229304	  0.99831164	  0.99910874  0.49318542
++5599	 -6.27284592	 -0.00055254	  0.00033856	  7.27229338	  0.99831194	  0.99910890  0.49318543
++5600	 -6.27284616	 -0.00055244	  0.00033850	  7.27229371	  0.99831224	  0.99910906  0.49318547
++5601	 -6.27284639	 -0.00055234	  0.00033844	  7.27229405	  0.99831254	  0.99910921  0.49318555
++5602	 -6.27284663	 -0.00055225	  0.00033838	  7.27229438	  0.99831284	  0.99910937  0.49318557
++5603	 -6.27284686	 -0.00055215	  0.00033832	  7.27229472	  0.99831314	  0.99910953  0.49318561
++5604	 -6.27284710	 -0.00055205	  0.00033826	  7.27229505	  0.99831344	  0.99910969  0.49318565
++5605	 -6.27284733	 -0.00055195	  0.00033820	  7.27229538	  0.99831374	  0.99910985  0.49318570
++5606	 -6.27284757	 -0.00055185	  0.00033814	  7.27229572	  0.99831404	  0.99911001  0.49318569
++5607	 -6.27284781	 -0.00055175	  0.00033808	  7.27229605	  0.99831435	  0.99911017  0.49318574
++5608	 -6.27284804	 -0.00055165	  0.00033802	  7.27229639	  0.99831465	  0.99911033  0.49318575
++5609	 -6.27284828	 -0.00055156	  0.00033796	  7.27229672	  0.99831495	  0.99911048  0.49318581
++5610	 -6.27284851	 -0.00055146	  0.00033790	  7.27229705	  0.99831525	  0.99911064  0.49318582
++5611	 -6.27284875	 -0.00055136	  0.00033784	  7.27229739	  0.99831555	  0.99911080  0.49318586
++5612	 -6.27284898	 -0.00055126	  0.00033778	  7.27229772	  0.99831585	  0.99911096  0.49318588
++5613	 -6.27284922	 -0.00055116	  0.00033772	  7.27229805	  0.99831615	  0.99911112  0.49318595
++5614	 -6.27284945	 -0.00055107	  0.00033766	  7.27229838	  0.99831645	  0.99911128  0.49318599
++5615	 -6.27284968	 -0.00055097	  0.00033760	  7.27229872	  0.99831675	  0.99911143  0.49318604
++5616	 -6.27284992	 -0.00055087	  0.00033754	  7.27229905	  0.99831705	  0.99911159  0.49318604
++5617	 -6.27285015	 -0.00055077	  0.00033748	  7.27229938	  0.99831735	  0.99911175  0.49318612
++5618	 -6.27285039	 -0.00055067	  0.00033742	  7.27229971	  0.99831765	  0.99911191  0.49318613
++5619	 -6.27285062	 -0.00055058	  0.00033736	  7.27230005	  0.99831794	  0.99911207  0.49318622
++5620	 -6.27285086	 -0.00055048	  0.00033730	  7.27230038	  0.99831824	  0.99911223  0.49318623
++5621	 -6.27285109	 -0.00055038	  0.00033724	  7.27230071	  0.99831854	  0.99911238  0.49318626
++5622	 -6.27285133	 -0.00055028	  0.00033718	  7.27230104	  0.99831884	  0.99911254  0.49318626
++5623	 -6.27285156	 -0.00055018	  0.00033712	  7.27230138	  0.99831914	  0.99911270  0.49318628
++5624	 -6.27285179	 -0.00055009	  0.00033706	  7.27230171	  0.99831944	  0.99911286  0.49318633
++5625	 -6.27285203	 -0.00054999	  0.00033700	  7.27230204	  0.99831974	  0.99911301  0.49318637
++5626	 -6.27285226	 -0.00054989	  0.00033694	  7.27230237	  0.99832004	  0.99911317  0.49318637
++5627	 -6.27285249	 -0.00054979	  0.00033688	  7.27230270	  0.99832034	  0.99911333  0.49318644
++5628	 -6.27285273	 -0.00054970	  0.00033682	  7.27230303	  0.99832063	  0.99911349  0.49318645
++5629	 -6.27285296	 -0.00054960	  0.00033676	  7.27230336	  0.99832093	  0.99911364  0.49318646
++5630	 -6.27285319	 -0.00054950	  0.00033670	  7.27230369	  0.99832123	  0.99911380  0.49318651
++5631	 -6.27285343	 -0.00054940	  0.00033664	  7.27230403	  0.99832153	  0.99911396  0.49318650
++5632	 -6.27285366	 -0.00054931	  0.00033658	  7.27230436	  0.99832183	  0.99911412  0.49318659
++5633	 -6.27285389	 -0.00054921	  0.00033652	  7.27230469	  0.99832212	  0.99911427  0.49318666
++5634	 -6.27285413	 -0.00054911	  0.00033646	  7.27230502	  0.99832242	  0.99911443  0.49318665
++5635	 -6.27285436	 -0.00054901	  0.00033640	  7.27230535	  0.99832272	  0.99911459  0.49318670
++5636	 -6.27285459	 -0.00054892	  0.00033634	  7.27230568	  0.99832302	  0.99911474  0.49318673
++5637	 -6.27285483	 -0.00054882	  0.00033628	  7.27230601	  0.99832332	  0.99911490  0.49318677
++5638	 -6.27285506	 -0.00054872	  0.00033622	  7.27230634	  0.99832361	  0.99911506  0.49318685
++5639	 -6.27285529	 -0.00054862	  0.00033616	  7.27230667	  0.99832391	  0.99911522  0.49318683
++5640	 -6.27285552	 -0.00054853	  0.00033610	  7.27230700	  0.99832421	  0.99911537  0.49318692
++5641	 -6.27285576	 -0.00054843	  0.00033604	  7.27230733	  0.99832450	  0.99911553  0.49318690
++5642	 -6.27285599	 -0.00054833	  0.00033598	  7.27230766	  0.99832480	  0.99911569  0.49318694
++5643	 -6.27285622	 -0.00054824	  0.00033592	  7.27230799	  0.99832510	  0.99911584  0.49318700
++5644	 -6.27285645	 -0.00054814	  0.00033586	  7.27230832	  0.99832539	  0.99911600  0.49318701
++5645	 -6.27285669	 -0.00054804	  0.00033580	  7.27230865	  0.99832569	  0.99911616  0.49318705
++5646	 -6.27285692	 -0.00054794	  0.00033574	  7.27230897	  0.99832599	  0.99911631  0.49318711
++5647	 -6.27285715	 -0.00054785	  0.00033568	  7.27230930	  0.99832628	  0.99911647  0.49318708
++5648	 -6.27285738	 -0.00054775	  0.00033563	  7.27230963	  0.99832658	  0.99911662  0.49318719
++5649	 -6.27285761	 -0.00054765	  0.00033557	  7.27230996	  0.99832688	  0.99911678  0.49318717
++5650	 -6.27285785	 -0.00054756	  0.00033551	  7.27231029	  0.99832717	  0.99911694  0.49318724
++5651	 -6.27285808	 -0.00054746	  0.00033545	  7.27231062	  0.99832747	  0.99911709  0.49318723
++5652	 -6.27285831	 -0.00054736	  0.00033539	  7.27231095	  0.99832776	  0.99911725  0.49318729
++5653	 -6.27285854	 -0.00054727	  0.00033533	  7.27231127	  0.99832806	  0.99911741  0.49318737
++5654	 -6.27285877	 -0.00054717	  0.00033527	  7.27231160	  0.99832836	  0.99911756  0.49318736
++5655	 -6.27285900	 -0.00054707	  0.00033521	  7.27231193	  0.99832865	  0.99911772  0.49318737
++5656	 -6.27285923	 -0.00054698	  0.00033515	  7.27231226	  0.99832895	  0.99911787  0.49318744
++5657	 -6.27285947	 -0.00054688	  0.00033509	  7.27231259	  0.99832924	  0.99911803  0.49318747
++5658	 -6.27285970	 -0.00054678	  0.00033503	  7.27231291	  0.99832954	  0.99911819  0.49318750
++5659	 -6.27285993	 -0.00054669	  0.00033497	  7.27231324	  0.99832983	  0.99911834  0.49318752
++5660	 -6.27286016	 -0.00054659	  0.00033491	  7.27231357	  0.99833013	  0.99911850  0.49318756
++5661	 -6.27286039	 -0.00054649	  0.00033485	  7.27231390	  0.99833042	  0.99911865  0.49318760
++5662	 -6.27286062	 -0.00054640	  0.00033480	  7.27231422	  0.99833072	  0.99911881  0.49318765
++5663	 -6.27286085	 -0.00054630	  0.00033474	  7.27231455	  0.99833101	  0.99911896  0.49318766
++5664	 -6.27286108	 -0.00054620	  0.00033468	  7.27231488	  0.99833131	  0.99911912  0.49318767
++5665	 -6.27286131	 -0.00054611	  0.00033462	  7.27231521	  0.99833160	  0.99911927  0.49318769
++5666	 -6.27286154	 -0.00054601	  0.00033456	  7.27231553	  0.99833190	  0.99911943  0.49318777
++5667	 -6.27286177	 -0.00054591	  0.00033450	  7.27231586	  0.99833219	  0.99911959  0.49318778
++5668	 -6.27286200	 -0.00054582	  0.00033444	  7.27231619	  0.99833248	  0.99911974  0.49318783
++5669	 -6.27286223	 -0.00054572	  0.00033438	  7.27231651	  0.99833278	  0.99911990  0.49318785
++5670	 -6.27286246	 -0.00054563	  0.00033432	  7.27231684	  0.99833307	  0.99912005  0.49318790
++5671	 -6.27286269	 -0.00054553	  0.00033426	  7.27231716	  0.99833337	  0.99912021  0.49318796
++5672	 -6.27286292	 -0.00054543	  0.00033420	  7.27231749	  0.99833366	  0.99912036  0.49318798
++5673	 -6.27286315	 -0.00054534	  0.00033415	  7.27231782	  0.99833395	  0.99912052  0.49318802
++5674	 -6.27286338	 -0.00054524	  0.00033409	  7.27231814	  0.99833425	  0.99912067  0.49318801
++5675	 -6.27286361	 -0.00054515	  0.00033403	  7.27231847	  0.99833454	  0.99912083  0.49318810
++5676	 -6.27286384	 -0.00054505	  0.00033397	  7.27231879	  0.99833483	  0.99912098  0.49318815
++5677	 -6.27286407	 -0.00054495	  0.00033391	  7.27231912	  0.99833513	  0.99912114  0.49318815
++5678	 -6.27286430	 -0.00054486	  0.00033385	  7.27231944	  0.99833542	  0.99912129  0.49318821
++5679	 -6.27286453	 -0.00054476	  0.00033379	  7.27231977	  0.99833571	  0.99912145  0.49318820
++5680	 -6.27286476	 -0.00054467	  0.00033373	  7.27232010	  0.99833601	  0.99912160  0.49318828
++5681	 -6.27286499	 -0.00054457	  0.00033368	  7.27232042	  0.99833630	  0.99912175  0.49318827
++5682	 -6.27286522	 -0.00054447	  0.00033362	  7.27232075	  0.99833659	  0.99912191  0.49318830
++5683	 -6.27286545	 -0.00054438	  0.00033356	  7.27232107	  0.99833689	  0.99912206  0.49318834
++5684	 -6.27286568	 -0.00054428	  0.00033350	  7.27232139	  0.99833718	  0.99912222  0.49318840
++5685	 -6.27286591	 -0.00054419	  0.00033344	  7.27232172	  0.99833747	  0.99912237  0.49318849
++5686	 -6.27286614	 -0.00054409	  0.00033338	  7.27232204	  0.99833776	  0.99912253  0.49318845
++5687	 -6.27286636	 -0.00054400	  0.00033332	  7.27232237	  0.99833805	  0.99912268  0.49318852
++5688	 -6.27286659	 -0.00054390	  0.00033326	  7.27232269	  0.99833835	  0.99912283  0.49318851
++5689	 -6.27286682	 -0.00054380	  0.00033321	  7.27232302	  0.99833864	  0.99912299  0.49318855
++5690	 -6.27286705	 -0.00054371	  0.00033315	  7.27232334	  0.99833893	  0.99912314  0.49318857
++5691	 -6.27286728	 -0.00054361	  0.00033309	  7.27232366	  0.99833922	  0.99912330  0.49318863
++5692	 -6.27286751	 -0.00054352	  0.00033303	  7.27232399	  0.99833951	  0.99912345  0.49318865
++5693	 -6.27286774	 -0.00054342	  0.00033297	  7.27232431	  0.99833981	  0.99912360  0.49318871
++5694	 -6.27286796	 -0.00054333	  0.00033291	  7.27232464	  0.99834010	  0.99912376  0.49318871
++5695	 -6.27286819	 -0.00054323	  0.00033286	  7.27232496	  0.99834039	  0.99912391  0.49318882
++5696	 -6.27286842	 -0.00054314	  0.00033280	  7.27232528	  0.99834068	  0.99912407  0.49318885
++5697	 -6.27286865	 -0.00054304	  0.00033274	  7.27232561	  0.99834097	  0.99912422  0.49318882
++5698	 -6.27286888	 -0.00054295	  0.00033268	  7.27232593	  0.99834126	  0.99912437  0.49318888
++5699	 -6.27286910	 -0.00054285	  0.00033262	  7.27232625	  0.99834155	  0.99912453  0.49318890
++5700	 -6.27286933	 -0.00054276	  0.00033256	  7.27232657	  0.99834184	  0.99912468  0.49318892
++5701	 -6.27286956	 -0.00054266	  0.00033250	  7.27232690	  0.99834214	  0.99912483  0.49318896
++5702	 -6.27286979	 -0.00054257	  0.00033245	  7.27232722	  0.99834243	  0.99912499  0.49318900
++5703	 -6.27287001	 -0.00054247	  0.00033239	  7.27232754	  0.99834272	  0.99912514  0.49318899
++5704	 -6.27287024	 -0.00054238	  0.00033233	  7.27232787	  0.99834301	  0.99912529  0.49318908
++5705	 -6.27287047	 -0.00054228	  0.00033227	  7.27232819	  0.99834330	  0.99912545  0.49318910
++5706	 -6.27287070	 -0.00054219	  0.00033221	  7.27232851	  0.99834359	  0.99912560  0.49318913
++5707	 -6.27287092	 -0.00054209	  0.00033216	  7.27232883	  0.99834388	  0.99912575  0.49318913
++5708	 -6.27287115	 -0.00054200	  0.00033210	  7.27232915	  0.99834417	  0.99912591  0.49318919
++5709	 -6.27287138	 -0.00054190	  0.00033204	  7.27232948	  0.99834446	  0.99912606  0.49318918
++5710	 -6.27287160	 -0.00054181	  0.00033198	  7.27232980	  0.99834475	  0.99912621  0.49318924
++5711	 -6.27287183	 -0.00054171	  0.00033192	  7.27233012	  0.99834504	  0.99912637  0.49318928
++5712	 -6.27287206	 -0.00054162	  0.00033186	  7.27233044	  0.99834533	  0.99912652  0.49318937
++5713	 -6.27287228	 -0.00054152	  0.00033181	  7.27233076	  0.99834562	  0.99912667  0.49318939
++5714	 -6.27287251	 -0.00054143	  0.00033175	  7.27233108	  0.99834591	  0.99912682  0.49318942
++5715	 -6.27287274	 -0.00054133	  0.00033169	  7.27233140	  0.99834620	  0.99912698  0.49318944
++5716	 -6.27287296	 -0.00054124	  0.00033163	  7.27233173	  0.99834649	  0.99912713  0.49318945
++5717	 -6.27287319	 -0.00054114	  0.00033157	  7.27233205	  0.99834677	  0.99912728  0.49318948
++5718	 -6.27287342	 -0.00054105	  0.00033152	  7.27233237	  0.99834706	  0.99912744  0.49318948
++5719	 -6.27287364	 -0.00054095	  0.00033146	  7.27233269	  0.99834735	  0.99912759  0.49318960
++5720	 -6.27287387	 -0.00054086	  0.00033140	  7.27233301	  0.99834764	  0.99912774  0.49318965
++5721	 -6.27287409	 -0.00054076	  0.00033134	  7.27233333	  0.99834793	  0.99912789  0.49318963
++5722	 -6.27287432	 -0.00054067	  0.00033128	  7.27233365	  0.99834822	  0.99912805  0.49318967
++5723	 -6.27287455	 -0.00054058	  0.00033123	  7.27233397	  0.99834851	  0.99912820  0.49318974
++5724	 -6.27287477	 -0.00054048	  0.00033117	  7.27233429	  0.99834880	  0.99912835  0.49318975
++5725	 -6.27287500	 -0.00054039	  0.00033111	  7.27233461	  0.99834908	  0.99912850  0.49318982
++5726	 -6.27287522	 -0.00054029	  0.00033105	  7.27233493	  0.99834937	  0.99912865  0.49318976
++5727	 -6.27287545	 -0.00054020	  0.00033100	  7.27233525	  0.99834966	  0.99912881  0.49318982
++5728	 -6.27287568	 -0.00054010	  0.00033094	  7.27233557	  0.99834995	  0.99912896  0.49318990
++5729	 -6.27287590	 -0.00054001	  0.00033088	  7.27233589	  0.99835024	  0.99912911  0.49318991
++5730	 -6.27287613	 -0.00053992	  0.00033082	  7.27233621	  0.99835052	  0.99912926  0.49318988
++5731	 -6.27287635	 -0.00053982	  0.00033076	  7.27233653	  0.99835081	  0.99912941  0.49319001
++5732	 -6.27287658	 -0.00053973	  0.00033071	  7.27233685	  0.99835110	  0.99912957  0.49318998
++5733	 -6.27287680	 -0.00053963	  0.00033065	  7.27233717	  0.99835139	  0.99912972  0.49319007
++5734	 -6.27287703	 -0.00053954	  0.00033059	  7.27233749	  0.99835168	  0.99912987  0.49319009
++5735	 -6.27287725	 -0.00053945	  0.00033053	  7.27233781	  0.99835196	  0.99913002  0.49319013
++5736	 -6.27287748	 -0.00053935	  0.00033048	  7.27233812	  0.99835225	  0.99913017  0.49319012
++5737	 -6.27287770	 -0.00053926	  0.00033042	  7.27233844	  0.99835254	  0.99913032  0.49319022
++5738	 -6.27287793	 -0.00053916	  0.00033036	  7.27233876	  0.99835282	  0.99913048  0.49319019
++5739	 -6.27287815	 -0.00053907	  0.00033030	  7.27233908	  0.99835311	  0.99913063  0.49319021
++5740	 -6.27287838	 -0.00053898	  0.00033025	  7.27233940	  0.99835340	  0.99913078  0.49319029
++5741	 -6.27287860	 -0.00053888	  0.00033019	  7.27233972	  0.99835368	  0.99913093  0.49319029
++5742	 -6.27287882	 -0.00053879	  0.00033013	  7.27234004	  0.99835397	  0.99913108  0.49319033
++5743	 -6.27287905	 -0.00053869	  0.00033007	  7.27234035	  0.99835426	  0.99913123  0.49319038
++5744	 -6.27287927	 -0.00053860	  0.00033002	  7.27234067	  0.99835454	  0.99913138  0.49319044
++5745	 -6.27287950	 -0.00053851	  0.00032996	  7.27234099	  0.99835483	  0.99913153  0.49319044
++5746	 -6.27287972	 -0.00053841	  0.00032990	  7.27234131	  0.99835512	  0.99913169  0.49319052
++5747	 -6.27287994	 -0.00053832	  0.00032984	  7.27234162	  0.99835540	  0.99913184  0.49319053
++5748	 -6.27288017	 -0.00053823	  0.00032979	  7.27234194	  0.99835569	  0.99913199  0.49319055
++5749	 -6.27288039	 -0.00053813	  0.00032973	  7.27234226	  0.99835598	  0.99913214  0.49319059
++5750	 -6.27288062	 -0.00053804	  0.00032967	  7.27234258	  0.99835626	  0.99913229  0.49319064
++5751	 -6.27288084	 -0.00053795	  0.00032961	  7.27234289	  0.99835655	  0.99913244  0.49319065
++5752	 -6.27288106	 -0.00053785	  0.00032956	  7.27234321	  0.99835683	  0.99913259  0.49319063
++5753	 -6.27288129	 -0.00053776	  0.00032950	  7.27234353	  0.99835712	  0.99913274  0.49319073
++5754	 -6.27288151	 -0.00053767	  0.00032944	  7.27234385	  0.99835740	  0.99913289  0.49319071
++5755	 -6.27288173	 -0.00053757	  0.00032938	  7.27234416	  0.99835769	  0.99913304  0.49319080
++5756	 -6.27288196	 -0.00053748	  0.00032933	  7.27234448	  0.99835797	  0.99913319  0.49319079
++5757	 -6.27288218	 -0.00053739	  0.00032927	  7.27234480	  0.99835826	  0.99913334  0.49319084
++5758	 -6.27288240	 -0.00053729	  0.00032921	  7.27234511	  0.99835854	  0.99913349  0.49319094
++5759	 -6.27288263	 -0.00053720	  0.00032916	  7.27234543	  0.99835883	  0.99913365  0.49319090
++5760	 -6.27288285	 -0.00053711	  0.00032910	  7.27234574	  0.99835911	  0.99913380  0.49319093
++5761	 -6.27288307	 -0.00053701	  0.00032904	  7.27234606	  0.99835940	  0.99913395  0.49319095
++5762	 -6.27288330	 -0.00053692	  0.00032898	  7.27234638	  0.99835968	  0.99913410  0.49319102
++5763	 -6.27288352	 -0.00053683	  0.00032893	  7.27234669	  0.99835997	  0.99913425  0.49319110
++5764	 -6.27288374	 -0.00053673	  0.00032887	  7.27234701	  0.99836025	  0.99913440  0.49319107
++5765	 -6.27288396	 -0.00053664	  0.00032881	  7.27234732	  0.99836054	  0.99913455  0.49319115
++5766	 -6.27288419	 -0.00053655	  0.00032876	  7.27234764	  0.99836082	  0.99913470  0.49319113
++5767	 -6.27288441	 -0.00053645	  0.00032870	  7.27234795	  0.99836111	  0.99913485  0.49319119
++5768	 -6.27288463	 -0.00053636	  0.00032864	  7.27234827	  0.99836139	  0.99913500  0.49319119
++5769	 -6.27288485	 -0.00053627	  0.00032859	  7.27234859	  0.99836167	  0.99913515  0.49319124
++5770	 -6.27288508	 -0.00053618	  0.00032853	  7.27234890	  0.99836196	  0.99913530  0.49319131
++5771	 -6.27288530	 -0.00053608	  0.00032847	  7.27234922	  0.99836224	  0.99913545  0.49319132
++5772	 -6.27288552	 -0.00053599	  0.00032841	  7.27234953	  0.99836253	  0.99913560  0.49319134
++5773	 -6.27288574	 -0.00053590	  0.00032836	  7.27234985	  0.99836281	  0.99913575  0.49319141
++5774	 -6.27288596	 -0.00053580	  0.00032830	  7.27235016	  0.99836309	  0.99913590  0.49319142
++5775	 -6.27288619	 -0.00053571	  0.00032824	  7.27235047	  0.99836338	  0.99913604  0.49319138
++5776	 -6.27288641	 -0.00053562	  0.00032819	  7.27235079	  0.99836366	  0.99913619  0.49319145
++5777	 -6.27288663	 -0.00053553	  0.00032813	  7.27235110	  0.99836394	  0.99913634  0.49319149
++5778	 -6.27288685	 -0.00053543	  0.00032807	  7.27235142	  0.99836423	  0.99913649  0.49319155
++5779	 -6.27288707	 -0.00053534	  0.00032802	  7.27235173	  0.99836451	  0.99913664  0.49319156
++5780	 -6.27288729	 -0.00053525	  0.00032796	  7.27235205	  0.99836479	  0.99913679  0.49319156
++5781	 -6.27288752	 -0.00053516	  0.00032790	  7.27235236	  0.99836507	  0.99913694  0.49319162
++5782	 -6.27288774	 -0.00053506	  0.00032785	  7.27235267	  0.99836536	  0.99913709  0.49319169
++5783	 -6.27288796	 -0.00053497	  0.00032779	  7.27235299	  0.99836564	  0.99913724  0.49319169
++5784	 -6.27288818	 -0.00053488	  0.00032773	  7.27235330	  0.99836592	  0.99913739  0.49319176
++5785	 -6.27288840	 -0.00053479	  0.00032768	  7.27235361	  0.99836620	  0.99913754  0.49319177
++5786	 -6.27288862	 -0.00053469	  0.00032762	  7.27235393	  0.99836649	  0.99913769  0.49319182
++5787	 -6.27288884	 -0.00053460	  0.00032756	  7.27235424	  0.99836677	  0.99913784  0.49319183
++5788	 -6.27288906	 -0.00053451	  0.00032751	  7.27235455	  0.99836705	  0.99913798  0.49319186
++5789	 -6.27288928	 -0.00053442	  0.00032745	  7.27235487	  0.99836733	  0.99913813  0.49319195
++5790	 -6.27288950	 -0.00053432	  0.00032739	  7.27235518	  0.99836762	  0.99913828  0.49319191
++5791	 -6.27288973	 -0.00053423	  0.00032734	  7.27235549	  0.99836790	  0.99913843  0.49319195
++5792	 -6.27288995	 -0.00053414	  0.00032728	  7.27235581	  0.99836818	  0.99913858  0.49319198
++5793	 -6.27289017	 -0.00053405	  0.00032722	  7.27235612	  0.99836846	  0.99913873  0.49319204
++5794	 -6.27289039	 -0.00053396	  0.00032717	  7.27235643	  0.99836874	  0.99913888  0.49319208
++5795	 -6.27289061	 -0.00053386	  0.00032711	  7.27235674	  0.99836902	  0.99913903  0.49319213
++5796	 -6.27289083	 -0.00053377	  0.00032705	  7.27235706	  0.99836931	  0.99913917  0.49319212
++5797	 -6.27289105	 -0.00053368	  0.00032700	  7.27235737	  0.99836959	  0.99913932  0.49319218
++5798	 -6.27289127	 -0.00053359	  0.00032694	  7.27235768	  0.99836987	  0.99913947  0.49319222
++5799	 -6.27289149	 -0.00053350	  0.00032689	  7.27235799	  0.99837015	  0.99913962  0.49319223
++5800	 -6.27289171	 -0.00053340	  0.00032683	  7.27235830	  0.99837043	  0.99913977  0.49319229
++5801	 -6.27289193	 -0.00053331	  0.00032677	  7.27235862	  0.99837071	  0.99913992  0.49319228
++5802	 -6.27289215	 -0.00053322	  0.00032672	  7.27235893	  0.99837099	  0.99914006  0.49319230
++5803	 -6.27289237	 -0.00053313	  0.00032666	  7.27235924	  0.99837127	  0.99914021  0.49319236
++5804	 -6.27289259	 -0.00053304	  0.00032660	  7.27235955	  0.99837155	  0.99914036  0.49319240
++5805	 -6.27289281	 -0.00053294	  0.00032655	  7.27235986	  0.99837183	  0.99914051  0.49319244
++5806	 -6.27289303	 -0.00053285	  0.00032649	  7.27236017	  0.99837211	  0.99914066  0.49319243
++5807	 -6.27289325	 -0.00053276	  0.00032643	  7.27236048	  0.99837239	  0.99914080  0.49319249
++5808	 -6.27289346	 -0.00053267	  0.00032638	  7.27236080	  0.99837267	  0.99914095  0.49319257
++5809	 -6.27289368	 -0.00053258	  0.00032632	  7.27236111	  0.99837295	  0.99914110  0.49319253
++5810	 -6.27289390	 -0.00053249	  0.00032627	  7.27236142	  0.99837323	  0.99914125  0.49319261
++5811	 -6.27289412	 -0.00053239	  0.00032621	  7.27236173	  0.99837351	  0.99914140  0.49319263
++5812	 -6.27289434	 -0.00053230	  0.00032615	  7.27236204	  0.99837379	  0.99914154  0.49319267
++5813	 -6.27289456	 -0.00053221	  0.00032610	  7.27236235	  0.99837407	  0.99914169  0.49319271
++5814	 -6.27289478	 -0.00053212	  0.00032604	  7.27236266	  0.99837435	  0.99914184  0.49319271
++5815	 -6.27289500	 -0.00053203	  0.00032599	  7.27236297	  0.99837463	  0.99914199  0.49319270
++5816	 -6.27289522	 -0.00053194	  0.00032593	  7.27236328	  0.99837491	  0.99914213  0.49319278
++5817	 -6.27289544	 -0.00053185	  0.00032587	  7.27236359	  0.99837519	  0.99914228  0.49319281
++5818	 -6.27289565	 -0.00053175	  0.00032582	  7.27236390	  0.99837547	  0.99914243  0.49319284
++5819	 -6.27289587	 -0.00053166	  0.00032576	  7.27236421	  0.99837575	  0.99914258  0.49319286
++5820	 -6.27289609	 -0.00053157	  0.00032571	  7.27236452	  0.99837603	  0.99914272  0.49319287
++5821	 -6.27289631	 -0.00053148	  0.00032565	  7.27236483	  0.99837631	  0.99914287  0.49319297
++5822	 -6.27289653	 -0.00053139	  0.00032559	  7.27236514	  0.99837659	  0.99914302  0.49319300
++5823	 -6.27289675	 -0.00053130	  0.00032554	  7.27236545	  0.99837687	  0.99914316  0.49319302
++5824	 -6.27289696	 -0.00053121	  0.00032548	  7.27236576	  0.99837714	  0.99914331  0.49319305
++5825	 -6.27289718	 -0.00053112	  0.00032543	  7.27236607	  0.99837742	  0.99914346  0.49319306
++5826	 -6.27289740	 -0.00053102	  0.00032537	  7.27236638	  0.99837770	  0.99914361  0.49319318
++5827	 -6.27289762	 -0.00053093	  0.00032531	  7.27236668	  0.99837798	  0.99914375  0.49319313
++5828	 -6.27289784	 -0.00053084	  0.00032526	  7.27236699	  0.99837826	  0.99914390  0.49319318
++5829	 -6.27289805	 -0.00053075	  0.00032520	  7.27236730	  0.99837854	  0.99914405  0.49319320
++5830	 -6.27289827	 -0.00053066	  0.00032515	  7.27236761	  0.99837881	  0.99914419  0.49319315
++5831	 -6.27289849	 -0.00053057	  0.00032509	  7.27236792	  0.99837909	  0.99914434  0.49319329
++5832	 -6.27289871	 -0.00053048	  0.00032504	  7.27236823	  0.99837937	  0.99914449  0.49319329
++5833	 -6.27289892	 -0.00053039	  0.00032498	  7.27236854	  0.99837965	  0.99914463  0.49319336
++5834	 -6.27289914	 -0.00053030	  0.00032492	  7.27236884	  0.99837993	  0.99914478  0.49319338
++5835	 -6.27289936	 -0.00053021	  0.00032487	  7.27236915	  0.99838020	  0.99914493  0.49319340
++5836	 -6.27289958	 -0.00053012	  0.00032481	  7.27236946	  0.99838048	  0.99914507  0.49319339
++5837	 -6.27289979	 -0.00053002	  0.00032476	  7.27236977	  0.99838076	  0.99914522  0.49319350
++5838	 -6.27290001	 -0.00052993	  0.00032470	  7.27237008	  0.99838104	  0.99914536  0.49319352
++5839	 -6.27290023	 -0.00052984	  0.00032465	  7.27237038	  0.99838131	  0.99914551  0.49319359
++5840	 -6.27290044	 -0.00052975	  0.00032459	  7.27237069	  0.99838159	  0.99914566  0.49319354
++5841	 -6.27290066	 -0.00052966	  0.00032453	  7.27237100	  0.99838187	  0.99914580  0.49319355
++5842	 -6.27290088	 -0.00052957	  0.00032448	  7.27237131	  0.99838214	  0.99914595  0.49319365
++5843	 -6.27290109	 -0.00052948	  0.00032442	  7.27237161	  0.99838242	  0.99914610  0.49319372
++5844	 -6.27290131	 -0.00052939	  0.00032437	  7.27237192	  0.99838270	  0.99914624  0.49319371
++5845	 -6.27290153	 -0.00052930	  0.00032431	  7.27237223	  0.99838297	  0.99914639  0.49319369
++5846	 -6.27290174	 -0.00052921	  0.00032426	  7.27237254	  0.99838325	  0.99914653  0.49319379
++5847	 -6.27290196	 -0.00052912	  0.00032420	  7.27237284	  0.99838353	  0.99914668  0.49319379
++5848	 -6.27290218	 -0.00052903	  0.00032415	  7.27237315	  0.99838380	  0.99914683  0.49319387
++5849	 -6.27290239	 -0.00052894	  0.00032409	  7.27237346	  0.99838408	  0.99914697  0.49319384
++5850	 -6.27290261	 -0.00052885	  0.00032404	  7.27237376	  0.99838436	  0.99914712  0.49319390
++5851	 -6.27290283	 -0.00052876	  0.00032398	  7.27237407	  0.99838463	  0.99914726  0.49319391
++5852	 -6.27290304	 -0.00052867	  0.00032392	  7.27237438	  0.99838491	  0.99914741  0.49319397
++5853	 -6.27290326	 -0.00052858	  0.00032387	  7.27237468	  0.99838518	  0.99914755  0.49319399
++5854	 -6.27290347	 -0.00052849	  0.00032381	  7.27237499	  0.99838546	  0.99914770  0.49319399
++5855	 -6.27290369	 -0.00052840	  0.00032376	  7.27237529	  0.99838574	  0.99914785  0.49319402
++5856	 -6.27290391	 -0.00052831	  0.00032370	  7.27237560	  0.99838601	  0.99914799  0.49319410
++5857	 -6.27290412	 -0.00052822	  0.00032365	  7.27237591	  0.99838629	  0.99914814  0.49319411
++5858	 -6.27290434	 -0.00052813	  0.00032359	  7.27237621	  0.99838656	  0.99914828  0.49319417
++5859	 -6.27290455	 -0.00052804	  0.00032354	  7.27237652	  0.99838684	  0.99914843  0.49319421
++5860	 -6.27290477	 -0.00052795	  0.00032348	  7.27237682	  0.99838711	  0.99914857  0.49319423
++5861	 -6.27290498	 -0.00052786	  0.00032343	  7.27237713	  0.99838739	  0.99914872  0.49319424
++5862	 -6.27290520	 -0.00052777	  0.00032337	  7.27237743	  0.99838766	  0.99914886  0.49319429
++5863	 -6.27290541	 -0.00052768	  0.00032332	  7.27237774	  0.99838794	  0.99914901  0.49319426
++5864	 -6.27290563	 -0.00052759	  0.00032326	  7.27237804	  0.99838821	  0.99914915  0.49319434
++5865	 -6.27290584	 -0.00052750	  0.00032321	  7.27237835	  0.99838849	  0.99914930  0.49319436
++5866	 -6.27290606	 -0.00052741	  0.00032315	  7.27237865	  0.99838876	  0.99914944  0.49319441
++5867	 -6.27290627	 -0.00052732	  0.00032310	  7.27237896	  0.99838904	  0.99914959  0.49319443
++5868	 -6.27290649	 -0.00052723	  0.00032304	  7.27237926	  0.99838931	  0.99914973  0.49319450
++5869	 -6.27290670	 -0.00052714	  0.00032299	  7.27237957	  0.99838959	  0.99914988  0.49319447
++5870	 -6.27290692	 -0.00052705	  0.00032293	  7.27237987	  0.99838986	  0.99915002  0.49319454
++5871	 -6.27290713	 -0.00052696	  0.00032288	  7.27238018	  0.99839013	  0.99915017  0.49319453
++5872	 -6.27290735	 -0.00052687	  0.00032282	  7.27238048	  0.99839041	  0.99915031  0.49319457
++5873	 -6.27290756	 -0.00052678	  0.00032277	  7.27238078	  0.99839068	  0.99915046  0.49319463
++5874	 -6.27290778	 -0.00052669	  0.00032271	  7.27238109	  0.99839096	  0.99915060  0.49319468
++5875	 -6.27290799	 -0.00052660	  0.00032266	  7.27238139	  0.99839123	  0.99915075  0.49319471
++5876	 -6.27290821	 -0.00052651	  0.00032260	  7.27238170	  0.99839150	  0.99915089  0.49319472
++5877	 -6.27290842	 -0.00052642	  0.00032255	  7.27238200	  0.99839178	  0.99915103  0.49319477
++5878	 -6.27290863	 -0.00052633	  0.00032249	  7.27238230	  0.99839205	  0.99915118  0.49319479
++5879	 -6.27290885	 -0.00052624	  0.00032244	  7.27238261	  0.99839232	  0.99915132  0.49319479
++5880	 -6.27290906	 -0.00052615	  0.00032238	  7.27238291	  0.99839260	  0.99915147  0.49319486
++5881	 -6.27290928	 -0.00052606	  0.00032233	  7.27238321	  0.99839287	  0.99915161  0.49319496
++5882	 -6.27290949	 -0.00052597	  0.00032227	  7.27238352	  0.99839314	  0.99915176  0.49319494
++5883	 -6.27290970	 -0.00052588	  0.00032222	  7.27238382	  0.99839342	  0.99915190  0.49319490
++5884	 -6.27290992	 -0.00052579	  0.00032216	  7.27238412	  0.99839369	  0.99915204  0.49319495
++5885	 -6.27291013	 -0.00052570	  0.00032211	  7.27238443	  0.99839396	  0.99915219  0.49319503
++5886	 -6.27291034	 -0.00052561	  0.00032205	  7.27238473	  0.99839424	  0.99915233  0.49319499
++5887	 -6.27291056	 -0.00052553	  0.00032200	  7.27238503	  0.99839451	  0.99915248  0.49319506
++5888	 -6.27291077	 -0.00052544	  0.00032194	  7.27238534	  0.99839478	  0.99915262  0.49319516
++5889	 -6.27291098	 -0.00052535	  0.00032189	  7.27238564	  0.99839505	  0.99915276  0.49319515
++5890	 -6.27291120	 -0.00052526	  0.00032183	  7.27238594	  0.99839533	  0.99915291  0.49319519
++5891	 -6.27291141	 -0.00052517	  0.00032178	  7.27238624	  0.99839560	  0.99915305  0.49319519
++5892	 -6.27291162	 -0.00052508	  0.00032173	  7.27238654	  0.99839587	  0.99915320  0.49319522
++5893	 -6.27291184	 -0.00052499	  0.00032167	  7.27238685	  0.99839614	  0.99915334  0.49319528
++5894	 -6.27291205	 -0.00052490	  0.00032162	  7.27238715	  0.99839642	  0.99915348  0.49319533
++5895	 -6.27291226	 -0.00052481	  0.00032156	  7.27238745	  0.99839669	  0.99915363  0.49319536
++5896	 -6.27291248	 -0.00052472	  0.00032151	  7.27238775	  0.99839696	  0.99915377  0.49319537
++5897	 -6.27291269	 -0.00052463	  0.00032145	  7.27238805	  0.99839723	  0.99915391  0.49319544
++5898	 -6.27291290	 -0.00052455	  0.00032140	  7.27238836	  0.99839750	  0.99915406  0.49319545
++5899	 -6.27291311	 -0.00052446	  0.00032134	  7.27238866	  0.99839777	  0.99915420  0.49319547
++5900	 -6.27291333	 -0.00052437	  0.00032129	  7.27238896	  0.99839805	  0.99915434  0.49319547
++5901	 -6.27291354	 -0.00052428	  0.00032123	  7.27238926	  0.99839832	  0.99915449  0.49319552
++5902	 -6.27291375	 -0.00052419	  0.00032118	  7.27238956	  0.99839859	  0.99915463  0.49319555
++5903	 -6.27291396	 -0.00052410	  0.00032113	  7.27238986	  0.99839886	  0.99915477  0.49319555
++5904	 -6.27291418	 -0.00052401	  0.00032107	  7.27239016	  0.99839913	  0.99915492  0.49319565
++5905	 -6.27291439	 -0.00052392	  0.00032102	  7.27239046	  0.99839940	  0.99915506  0.49319563
++5906	 -6.27291460	 -0.00052384	  0.00032096	  7.27239077	  0.99839967	  0.99915520  0.49319565
++5907	 -6.27291481	 -0.00052375	  0.00032091	  7.27239107	  0.99839994	  0.99915534  0.49319571
++5908	 -6.27291503	 -0.00052366	  0.00032085	  7.27239137	  0.99840021	  0.99915549  0.49319576
++5909	 -6.27291524	 -0.00052357	  0.00032080	  7.27239167	  0.99840049	  0.99915563  0.49319577
++5910	 -6.27291545	 -0.00052348	  0.00032075	  7.27239197	  0.99840076	  0.99915577  0.49319579
++5911	 -6.27291566	 -0.00052339	  0.00032069	  7.27239227	  0.99840103	  0.99915592  0.49319582
++5912	 -6.27291587	 -0.00052330	  0.00032064	  7.27239257	  0.99840130	  0.99915606  0.49319587
++5913	 -6.27291608	 -0.00052322	  0.00032058	  7.27239287	  0.99840157	  0.99915620  0.49319592
++5914	 -6.27291630	 -0.00052313	  0.00032053	  7.27239317	  0.99840184	  0.99915634  0.49319593
++5915	 -6.27291651	 -0.00052304	  0.00032047	  7.27239347	  0.99840211	  0.99915649  0.49319594
++5916	 -6.27291672	 -0.00052295	  0.00032042	  7.27239377	  0.99840238	  0.99915663  0.49319596
++5917	 -6.27291693	 -0.00052286	  0.00032037	  7.27239407	  0.99840265	  0.99915677  0.49319602
++5918	 -6.27291714	 -0.00052277	  0.00032031	  7.27239437	  0.99840292	  0.99915691  0.49319607
++5919	 -6.27291735	 -0.00052269	  0.00032026	  7.27239467	  0.99840319	  0.99915706  0.49319609
++5920	 -6.27291756	 -0.00052260	  0.00032020	  7.27239497	  0.99840346	  0.99915720  0.49319609
++5921	 -6.27291777	 -0.00052251	  0.00032015	  7.27239526	  0.99840373	  0.99915734  0.49319619
++5922	 -6.27291799	 -0.00052242	  0.00032010	  7.27239556	  0.99840400	  0.99915748  0.49319624
++5923	 -6.27291820	 -0.00052233	  0.00032004	  7.27239586	  0.99840427	  0.99915763  0.49319616
++5924	 -6.27291841	 -0.00052225	  0.00031999	  7.27239616	  0.99840453	  0.99915777  0.49319625
++5925	 -6.27291862	 -0.00052216	  0.00031993	  7.27239646	  0.99840480	  0.99915791  0.49319632
++5926	 -6.27291883	 -0.00052207	  0.00031988	  7.27239676	  0.99840507	  0.99915805  0.49319625
++5927	 -6.27291904	 -0.00052198	  0.00031983	  7.27239706	  0.99840534	  0.99915819  0.49319634
++5928	 -6.27291925	 -0.00052189	  0.00031977	  7.27239736	  0.99840561	  0.99915834  0.49319638
++5929	 -6.27291946	 -0.00052180	  0.00031972	  7.27239766	  0.99840588	  0.99915848  0.49319640
++5930	 -6.27291967	 -0.00052172	  0.00031966	  7.27239795	  0.99840615	  0.99915862  0.49319643
++5931	 -6.27291988	 -0.00052163	  0.00031961	  7.27239825	  0.99840642	  0.99915876  0.49319646
++5932	 -6.27292009	 -0.00052154	  0.00031956	  7.27239855	  0.99840669	  0.99915890  0.49319643
++5933	 -6.27292030	 -0.00052145	  0.00031950	  7.27239885	  0.99840695	  0.99915904  0.49319651
++5934	 -6.27292051	 -0.00052137	  0.00031945	  7.27239915	  0.99840722	  0.99915919  0.49319652
++5935	 -6.27292072	 -0.00052128	  0.00031939	  7.27239944	  0.99840749	  0.99915933  0.49319657
++5936	 -6.27292093	 -0.00052119	  0.00031934	  7.27239974	  0.99840776	  0.99915947  0.49319663
++5937	 -6.27292114	 -0.00052110	  0.00031929	  7.27240004	  0.99840803	  0.99915961  0.49319665
++5938	 -6.27292135	 -0.00052101	  0.00031923	  7.27240034	  0.99840830	  0.99915975  0.49319671
++5939	 -6.27292156	 -0.00052093	  0.00031918	  7.27240063	  0.99840856	  0.99915989  0.49319676
++5940	 -6.27292177	 -0.00052084	  0.00031913	  7.27240093	  0.99840883	  0.99916004  0.49319677
++5941	 -6.27292198	 -0.00052075	  0.00031907	  7.27240123	  0.99840910	  0.99916018  0.49319672
++5942	 -6.27292219	 -0.00052066	  0.00031902	  7.27240153	  0.99840937	  0.99916032  0.49319676
++5943	 -6.27292240	 -0.00052058	  0.00031896	  7.27240182	  0.99840964	  0.99916046  0.49319684
++5944	 -6.27292261	 -0.00052049	  0.00031891	  7.27240212	  0.99840990	  0.99916060  0.49319683
++5945	 -6.27292282	 -0.00052040	  0.00031886	  7.27240242	  0.99841017	  0.99916074  0.49319688
++5946	 -6.27292303	 -0.00052031	  0.00031880	  7.27240271	  0.99841044	  0.99916088  0.49319696
++5947	 -6.27292324	 -0.00052023	  0.00031875	  7.27240301	  0.99841070	  0.99916102  0.49319696
++5948	 -6.27292345	 -0.00052014	  0.00031870	  7.27240331	  0.99841097	  0.99916117  0.49319698
++5949	 -6.27292366	 -0.00052005	  0.00031864	  7.27240360	  0.99841124	  0.99916131  0.49319702
++5950	 -6.27292386	 -0.00051996	  0.00031859	  7.27240390	  0.99841151	  0.99916145  0.49319705
++5951	 -6.27292407	 -0.00051988	  0.00031854	  7.27240420	  0.99841177	  0.99916159  0.49319708
++5952	 -6.27292428	 -0.00051979	  0.00031848	  7.27240449	  0.99841204	  0.99916173  0.49319705
++5953	 -6.27292449	 -0.00051970	  0.00031843	  7.27240479	  0.99841231	  0.99916187  0.49319715
++5954	 -6.27292470	 -0.00051962	  0.00031837	  7.27240508	  0.99841257	  0.99916201  0.49319716
++5955	 -6.27292491	 -0.00051953	  0.00031832	  7.27240538	  0.99841284	  0.99916215  0.49319722
++5956	 -6.27292512	 -0.00051944	  0.00031827	  7.27240568	  0.99841311	  0.99916229  0.49319725
++5957	 -6.27292533	 -0.00051935	  0.00031821	  7.27240597	  0.99841337	  0.99916243  0.49319725
++5958	 -6.27292553	 -0.00051927	  0.00031816	  7.27240627	  0.99841364	  0.99916257  0.49319734
++5959	 -6.27292574	 -0.00051918	  0.00031811	  7.27240656	  0.99841390	  0.99916271  0.49319744
++5960	 -6.27292595	 -0.00051909	  0.00031805	  7.27240686	  0.99841417	  0.99916285  0.49319739
++5961	 -6.27292616	 -0.00051901	  0.00031800	  7.27240715	  0.99841444	  0.99916299  0.49319736
++5962	 -6.27292637	 -0.00051892	  0.00031795	  7.27240745	  0.99841470	  0.99916313  0.49319748
++5963	 -6.27292658	 -0.00051883	  0.00031789	  7.27240774	  0.99841497	  0.99916327  0.49319747
++5964	 -6.27292678	 -0.00051874	  0.00031784	  7.27240804	  0.99841523	  0.99916341  0.49319748
++5965	 -6.27292699	 -0.00051866	  0.00031779	  7.27240833	  0.99841550	  0.99916355  0.49319753
++5966	 -6.27292720	 -0.00051857	  0.00031773	  7.27240863	  0.99841577	  0.99916369  0.49319759
++5967	 -6.27292741	 -0.00051848	  0.00031768	  7.27240892	  0.99841603	  0.99916384  0.49319759
++5968	 -6.27292762	 -0.00051840	  0.00031763	  7.27240922	  0.99841630	  0.99916398  0.49319759
++5969	 -6.27292782	 -0.00051831	  0.00031757	  7.27240951	  0.99841656	  0.99916412  0.49319764
++5970	 -6.27292803	 -0.00051822	  0.00031752	  7.27240981	  0.99841683	  0.99916426  0.49319769
++5971	 -6.27292824	 -0.00051814	  0.00031747	  7.27241010	  0.99841709	  0.99916440  0.49319768
++5972	 -6.27292845	 -0.00051805	  0.00031742	  7.27241040	  0.99841736	  0.99916453  0.49319773
++5973	 -6.27292865	 -0.00051796	  0.00031736	  7.27241069	  0.99841762	  0.99916467  0.49319777
++5974	 -6.27292886	 -0.00051788	  0.00031731	  7.27241098	  0.99841789	  0.99916481  0.49319789
++5975	 -6.27292907	 -0.00051779	  0.00031726	  7.27241128	  0.99841815	  0.99916495  0.49319781
++5976	 -6.27292927	 -0.00051770	  0.00031720	  7.27241157	  0.99841842	  0.99916509  0.49319785
++5977	 -6.27292948	 -0.00051762	  0.00031715	  7.27241186	  0.99841868	  0.99916523  0.49319784
++5978	 -6.27292969	 -0.00051753	  0.00031710	  7.27241216	  0.99841895	  0.99916537  0.49319795
++5979	 -6.27292990	 -0.00051744	  0.00031704	  7.27241245	  0.99841921	  0.99916551  0.49319794
++5980	 -6.27293010	 -0.00051736	  0.00031699	  7.27241275	  0.99841947	  0.99916565  0.49319797
++5981	 -6.27293031	 -0.00051727	  0.00031694	  7.27241304	  0.99841974	  0.99916579  0.49319807
++5982	 -6.27293052	 -0.00051718	  0.00031688	  7.27241333	  0.99842000	  0.99916593  0.49319800
++5983	 -6.27293072	 -0.00051710	  0.00031683	  7.27241363	  0.99842027	  0.99916607  0.49319809
++5984	 -6.27293093	 -0.00051701	  0.00031678	  7.27241392	  0.99842053	  0.99916621  0.49319811
++5985	 -6.27293114	 -0.00051693	  0.00031673	  7.27241421	  0.99842079	  0.99916635  0.49319811
++5986	 -6.27293134	 -0.00051684	  0.00031667	  7.27241450	  0.99842106	  0.99916649  0.49319817
++5987	 -6.27293155	 -0.00051675	  0.00031662	  7.27241480	  0.99842132	  0.99916663  0.49319820
++5988	 -6.27293176	 -0.00051667	  0.00031657	  7.27241509	  0.99842159	  0.99916677  0.49319821
++5989	 -6.27293196	 -0.00051658	  0.00031651	  7.27241538	  0.99842185	  0.99916691  0.49319833
++5990	 -6.27293217	 -0.00051649	  0.00031646	  7.27241567	  0.99842211	  0.99916704  0.49319829
++5991	 -6.27293237	 -0.00051641	  0.00031641	  7.27241597	  0.99842238	  0.99916718  0.49319831
++5992	 -6.27293258	 -0.00051632	  0.00031636	  7.27241626	  0.99842264	  0.99916732  0.49319838
++5993	 -6.27293279	 -0.00051624	  0.00031630	  7.27241655	  0.99842290	  0.99916746  0.49319843
++5994	 -6.27293299	 -0.00051615	  0.00031625	  7.27241684	  0.99842316	  0.99916760  0.49319840
++5995	 -6.27293320	 -0.00051606	  0.00031620	  7.27241713	  0.99842343	  0.99916774  0.49319841
++5996	 -6.27293340	 -0.00051598	  0.00031614	  7.27241743	  0.99842369	  0.99916788  0.49319849
++5997	 -6.27293361	 -0.00051589	  0.00031609	  7.27241772	  0.99842395	  0.99916802  0.49319850
++5998	 -6.27293382	 -0.00051581	  0.00031604	  7.27241801	  0.99842422	  0.99916816  0.49319856
++5999	 -6.27293402	 -0.00051572	  0.00031599	  7.27241830	  0.99842448	  0.99916829  0.49319860
++6000	 -6.27293423	 -0.00051563	  0.00031593	  7.27241859	  0.99842474	  0.99916843  0.49319855
++6001	 -6.27293443	 -0.00051555	  0.00031588	  7.27241888	  0.99842500	  0.99916857  0.49319861
++6002	 -6.27293464	 -0.00051546	  0.00031583	  7.27241918	  0.99842527	  0.99916871  0.49319870
++6003	 -6.27293484	 -0.00051538	  0.00031578	  7.27241947	  0.99842553	  0.99916885  0.49319866
++6004	 -6.27293505	 -0.00051529	  0.00031572	  7.27241976	  0.99842579	  0.99916899  0.49319873
++6005	 -6.27293525	 -0.00051520	  0.00031567	  7.27242005	  0.99842605	  0.99916912  0.49319872
++6006	 -6.27293546	 -0.00051512	  0.00031562	  7.27242034	  0.99842632	  0.99916926  0.49319875
++6007	 -6.27293566	 -0.00051503	  0.00031557	  7.27242063	  0.99842658	  0.99916940  0.49319885
++6008	 -6.27293587	 -0.00051495	  0.00031551	  7.27242092	  0.99842684	  0.99916954  0.49319881
++6009	 -6.27293607	 -0.00051486	  0.00031546	  7.27242121	  0.99842710	  0.99916968  0.49319885
++6010	 -6.27293628	 -0.00051478	  0.00031541	  7.27242150	  0.99842736	  0.99916982  0.49319897
++6011	 -6.27293648	 -0.00051469	  0.00031536	  7.27242179	  0.99842762	  0.99916995  0.49319898
++6012	 -6.27293669	 -0.00051461	  0.00031530	  7.27242208	  0.99842789	  0.99917009  0.49319895
++6013	 -6.27293689	 -0.00051452	  0.00031525	  7.27242237	  0.99842815	  0.99917023  0.49319902
++6014	 -6.27293710	 -0.00051443	  0.00031520	  7.27242266	  0.99842841	  0.99917037  0.49319899
++6015	 -6.27293730	 -0.00051435	  0.00031515	  7.27242295	  0.99842867	  0.99917051  0.49319907
++6016	 -6.27293751	 -0.00051426	  0.00031509	  7.27242324	  0.99842893	  0.99917064  0.49319910
++6017	 -6.27293771	 -0.00051418	  0.00031504	  7.27242353	  0.99842919	  0.99917078  0.49319911
++6018	 -6.27293792	 -0.00051409	  0.00031499	  7.27242382	  0.99842945	  0.99917092  0.49319911
++6019	 -6.27293812	 -0.00051401	  0.00031494	  7.27242411	  0.99842971	  0.99917106  0.49319918
++6020	 -6.27293832	 -0.00051392	  0.00031488	  7.27242440	  0.99842997	  0.99917119  0.49319923
++6021	 -6.27293853	 -0.00051384	  0.00031483	  7.27242469	  0.99843024	  0.99917133  0.49319919
++6022	 -6.27293873	 -0.00051375	  0.00031478	  7.27242498	  0.99843050	  0.99917147  0.49319924
++6023	 -6.27293894	 -0.00051367	  0.00031473	  7.27242527	  0.99843076	  0.99917161  0.49319925
++6024	 -6.27293914	 -0.00051358	  0.00031467	  7.27242556	  0.99843102	  0.99917174  0.49319934
++6025	 -6.27293934	 -0.00051350	  0.00031462	  7.27242585	  0.99843128	  0.99917188  0.49319932
++6026	 -6.27293955	 -0.00051341	  0.00031457	  7.27242614	  0.99843154	  0.99917202  0.49319938
++6027	 -6.27293975	 -0.00051333	  0.00031452	  7.27242643	  0.99843180	  0.99917216  0.49319942
++6028	 -6.27293995	 -0.00051324	  0.00031447	  7.27242671	  0.99843206	  0.99917229  0.49319947
++6029	 -6.27294016	 -0.00051315	  0.00031441	  7.27242700	  0.99843232	  0.99917243  0.49319948
++6030	 -6.27294036	 -0.00051307	  0.00031436	  7.27242729	  0.99843258	  0.99917257  0.49319954
++6031	 -6.27294057	 -0.00051298	  0.00031431	  7.27242758	  0.99843284	  0.99917271  0.49319956
++6032	 -6.27294077	 -0.00051290	  0.00031426	  7.27242787	  0.99843310	  0.99917284  0.49319957
++6033	 -6.27294097	 -0.00051281	  0.00031421	  7.27242816	  0.99843336	  0.99917298  0.49319962
++6034	 -6.27294118	 -0.00051273	  0.00031415	  7.27242845	  0.99843362	  0.99917312  0.49319969
++6035	 -6.27294138	 -0.00051265	  0.00031410	  7.27242873	  0.99843388	  0.99917325  0.49319972
++6036	 -6.27294158	 -0.00051256	  0.00031405	  7.27242902	  0.99843414	  0.99917339  0.49319967
++6037	 -6.27294178	 -0.00051248	  0.00031400	  7.27242931	  0.99843439	  0.99917353  0.49319971
++6038	 -6.27294199	 -0.00051239	  0.00031395	  7.27242960	  0.99843465	  0.99917366  0.49319975
++6039	 -6.27294219	 -0.00051231	  0.00031389	  7.27242988	  0.99843491	  0.99917380  0.49319976
++6040	 -6.27294239	 -0.00051222	  0.00031384	  7.27243017	  0.99843517	  0.99917394  0.49319985
++6041	 -6.27294260	 -0.00051214	  0.00031379	  7.27243046	  0.99843543	  0.99917407  0.49319980
++6042	 -6.27294280	 -0.00051205	  0.00031374	  7.27243075	  0.99843569	  0.99917421  0.49319987
++6043	 -6.27294300	 -0.00051197	  0.00031369	  7.27243103	  0.99843595	  0.99917435  0.49319991
++6044	 -6.27294320	 -0.00051188	  0.00031363	  7.27243132	  0.99843621	  0.99917448  0.49319996
++6045	 -6.27294341	 -0.00051180	  0.00031358	  7.27243161	  0.99843647	  0.99917462  0.49320001
++6046	 -6.27294361	 -0.00051171	  0.00031353	  7.27243190	  0.99843673	  0.99917476  0.49319998
++6047	 -6.27294381	 -0.00051163	  0.00031348	  7.27243218	  0.99843698	  0.99917489  0.49320000
++6048	 -6.27294401	 -0.00051154	  0.00031343	  7.27243247	  0.99843724	  0.99917503  0.49320003
++6049	 -6.27294422	 -0.00051146	  0.00031337	  7.27243276	  0.99843750	  0.99917517  0.49320007
++6050	 -6.27294442	 -0.00051137	  0.00031332	  7.27243304	  0.99843776	  0.99917530  0.49320006
++6051	 -6.27294462	 -0.00051129	  0.00031327	  7.27243333	  0.99843802	  0.99917544  0.49320012
++6052	 -6.27294482	 -0.00051121	  0.00031322	  7.27243362	  0.99843827	  0.99917558  0.49320018
++6053	 -6.27294502	 -0.00051112	  0.00031317	  7.27243390	  0.99843853	  0.99917571  0.49320018
++6054	 -6.27294523	 -0.00051104	  0.00031312	  7.27243419	  0.99843879	  0.99917585  0.49320017
++6055	 -6.27294543	 -0.00051095	  0.00031306	  7.27243448	  0.99843905	  0.99917598  0.49320022
++6056	 -6.27294563	 -0.00051087	  0.00031301	  7.27243476	  0.99843931	  0.99917612  0.49320033
++6057	 -6.27294583	 -0.00051078	  0.00031296	  7.27243505	  0.99843956	  0.99917626  0.49320035
++6058	 -6.27294603	 -0.00051070	  0.00031291	  7.27243533	  0.99843982	  0.99917639  0.49320035
++6059	 -6.27294623	 -0.00051062	  0.00031286	  7.27243562	  0.99844008	  0.99917653  0.49320037
++6060	 -6.27294644	 -0.00051053	  0.00031281	  7.27243590	  0.99844034	  0.99917666  0.49320040
++6061	 -6.27294664	 -0.00051045	  0.00031275	  7.27243619	  0.99844059	  0.99917680  0.49320046
++6062	 -6.27294684	 -0.00051036	  0.00031270	  7.27243648	  0.99844085	  0.99917693  0.49320050
++6063	 -6.27294704	 -0.00051028	  0.00031265	  7.27243676	  0.99844111	  0.99917707  0.49320049
++6064	 -6.27294724	 -0.00051019	  0.00031260	  7.27243705	  0.99844136	  0.99917721  0.49320054
++6065	 -6.27294744	 -0.00051011	  0.00031255	  7.27243733	  0.99844162	  0.99917734  0.49320055
++6066	 -6.27294764	 -0.00051003	  0.00031250	  7.27243762	  0.99844188	  0.99917748  0.49320064
++6067	 -6.27294784	 -0.00050994	  0.00031244	  7.27243790	  0.99844214	  0.99917761  0.49320065
++6068	 -6.27294805	 -0.00050986	  0.00031239	  7.27243819	  0.99844239	  0.99917775  0.49320067
++6069	 -6.27294825	 -0.00050977	  0.00031234	  7.27243847	  0.99844265	  0.99917788  0.49320073
++6070	 -6.27294845	 -0.00050969	  0.00031229	  7.27243876	  0.99844291	  0.99917802  0.49320072
++6071	 -6.27294865	 -0.00050961	  0.00031224	  7.27243904	  0.99844316	  0.99917815  0.49320076
++6072	 -6.27294885	 -0.00050952	  0.00031219	  7.27243933	  0.99844342	  0.99917829  0.49320077
++6073	 -6.27294905	 -0.00050944	  0.00031214	  7.27243961	  0.99844367	  0.99917843  0.49320076
++6074	 -6.27294925	 -0.00050936	  0.00031208	  7.27243989	  0.99844393	  0.99917856  0.49320084
++6075	 -6.27294945	 -0.00050927	  0.00031203	  7.27244018	  0.99844419	  0.99917870  0.49320087
++6076	 -6.27294965	 -0.00050919	  0.00031198	  7.27244046	  0.99844444	  0.99917883  0.49320088
++6077	 -6.27294985	 -0.00050910	  0.00031193	  7.27244075	  0.99844470	  0.99917897  0.49320097
++6078	 -6.27295005	 -0.00050902	  0.00031188	  7.27244103	  0.99844495	  0.99917910  0.49320091
++6079	 -6.27295025	 -0.00050894	  0.00031183	  7.27244132	  0.99844521	  0.99917924  0.49320097
++6080	 -6.27295045	 -0.00050885	  0.00031178	  7.27244160	  0.99844547	  0.99917937  0.49320101
++6081	 -6.27295065	 -0.00050877	  0.00031173	  7.27244188	  0.99844572	  0.99917951  0.49320102
++6082	 -6.27295085	 -0.00050869	  0.00031167	  7.27244217	  0.99844598	  0.99917964  0.49320101
++6083	 -6.27295105	 -0.00050860	  0.00031162	  7.27244245	  0.99844623	  0.99917978  0.49320112
++6084	 -6.27295125	 -0.00050852	  0.00031157	  7.27244273	  0.99844649	  0.99917991  0.49320117
++6085	 -6.27295145	 -0.00050844	  0.00031152	  7.27244302	  0.99844674	  0.99918004  0.49320117
++6086	 -6.27295165	 -0.00050835	  0.00031147	  7.27244330	  0.99844700	  0.99918018  0.49320119
++6087	 -6.27295185	 -0.00050827	  0.00031142	  7.27244358	  0.99844725	  0.99918031  0.49320122
++6088	 -6.27295205	 -0.00050818	  0.00031137	  7.27244387	  0.99844751	  0.99918045  0.49320128
++6089	 -6.27295225	 -0.00050810	  0.00031132	  7.27244415	  0.99844776	  0.99918058  0.49320130
++6090	 -6.27295245	 -0.00050802	  0.00031126	  7.27244443	  0.99844802	  0.99918072  0.49320132
++6091	 -6.27295265	 -0.00050793	  0.00031121	  7.27244472	  0.99844827	  0.99918085  0.49320130
++6092	 -6.27295285	 -0.00050785	  0.00031116	  7.27244500	  0.99844853	  0.99918099  0.49320137
++6093	 -6.27295305	 -0.00050777	  0.00031111	  7.27244528	  0.99844878	  0.99918112  0.49320141
++6094	 -6.27295325	 -0.00050768	  0.00031106	  7.27244556	  0.99844904	  0.99918126  0.49320145
++6095	 -6.27295345	 -0.00050760	  0.00031101	  7.27244585	  0.99844929	  0.99918139  0.49320144
++6096	 -6.27295365	 -0.00050752	  0.00031096	  7.27244613	  0.99844955	  0.99918152  0.49320149
++6097	 -6.27295385	 -0.00050743	  0.00031091	  7.27244641	  0.99844980	  0.99918166  0.49320154
++6098	 -6.27295404	 -0.00050735	  0.00031086	  7.27244669	  0.99845005	  0.99918179  0.49320156
++6099	 -6.27295424	 -0.00050727	  0.00031081	  7.27244697	  0.99845031	  0.99918193  0.49320161
++6100	 -6.27295444	 -0.00050719	  0.00031075	  7.27244726	  0.99845056	  0.99918206  0.49320163
++6101	 -6.27295464	 -0.00050710	  0.00031070	  7.27244754	  0.99845082	  0.99918219  0.49320168
++6102	 -6.27295484	 -0.00050702	  0.00031065	  7.27244782	  0.99845107	  0.99918233  0.49320163
++6103	 -6.27295504	 -0.00050694	  0.00031060	  7.27244810	  0.99845132	  0.99918246  0.49320171
++6104	 -6.27295524	 -0.00050685	  0.00031055	  7.27244838	  0.99845158	  0.99918260  0.49320174
++6105	 -6.27295544	 -0.00050677	  0.00031050	  7.27244867	  0.99845183	  0.99918273  0.49320177
++6106	 -6.27295563	 -0.00050669	  0.00031045	  7.27244895	  0.99845208	  0.99918286  0.49320176
++6107	 -6.27295583	 -0.00050660	  0.00031040	  7.27244923	  0.99845234	  0.99918300  0.49320182
++6108	 -6.27295603	 -0.00050652	  0.00031035	  7.27244951	  0.99845259	  0.99918313  0.49320186
++6109	 -6.27295623	 -0.00050644	  0.00031030	  7.27244979	  0.99845284	  0.99918327  0.49320185
++6110	 -6.27295643	 -0.00050636	  0.00031025	  7.27245007	  0.99845310	  0.99918340  0.49320186
++6111	 -6.27295663	 -0.00050627	  0.00031019	  7.27245035	  0.99845335	  0.99918353  0.49320197
++6112	 -6.27295682	 -0.00050619	  0.00031014	  7.27245063	  0.99845360	  0.99918367  0.49320197
++6113	 -6.27295702	 -0.00050611	  0.00031009	  7.27245091	  0.99845386	  0.99918380  0.49320194
++6114	 -6.27295722	 -0.00050602	  0.00031004	  7.27245120	  0.99845411	  0.99918393  0.49320202
++6115	 -6.27295742	 -0.00050594	  0.00030999	  7.27245148	  0.99845436	  0.99918407  0.49320205
++6116	 -6.27295762	 -0.00050586	  0.00030994	  7.27245176	  0.99845462	  0.99918420  0.49320207
++6117	 -6.27295781	 -0.00050578	  0.00030989	  7.27245204	  0.99845487	  0.99918433  0.49320207
++6118	 -6.27295801	 -0.00050569	  0.00030984	  7.27245232	  0.99845512	  0.99918447  0.49320217
++6119	 -6.27295821	 -0.00050561	  0.00030979	  7.27245260	  0.99845537	  0.99918460  0.49320221
++6120	 -6.27295841	 -0.00050553	  0.00030974	  7.27245288	  0.99845563	  0.99918473  0.49320219
++6121	 -6.27295860	 -0.00050545	  0.00030969	  7.27245316	  0.99845588	  0.99918487  0.49320222
++6122	 -6.27295880	 -0.00050536	  0.00030964	  7.27245344	  0.99845613	  0.99918500  0.49320228
++6123	 -6.27295900	 -0.00050528	  0.00030959	  7.27245372	  0.99845638	  0.99918513  0.49320230
++6124	 -6.27295920	 -0.00050520	  0.00030954	  7.27245400	  0.99845663	  0.99918526  0.49320235
++6125	 -6.27295939	 -0.00050512	  0.00030949	  7.27245428	  0.99845689	  0.99918540  0.49320231
++6126	 -6.27295959	 -0.00050503	  0.00030944	  7.27245456	  0.99845714	  0.99918553  0.49320239
++6127	 -6.27295979	 -0.00050495	  0.00030938	  7.27245484	  0.99845739	  0.99918566  0.49320239
++6128	 -6.27295998	 -0.00050487	  0.00030933	  7.27245512	  0.99845764	  0.99918580  0.49320243
++6129	 -6.27296018	 -0.00050479	  0.00030928	  7.27245539	  0.99845789	  0.99918593  0.49320240
++6130	 -6.27296038	 -0.00050470	  0.00030923	  7.27245567	  0.99845814	  0.99918606  0.49320248
++6131	 -6.27296058	 -0.00050462	  0.00030918	  7.27245595	  0.99845840	  0.99918619  0.49320254
++6132	 -6.27296077	 -0.00050454	  0.00030913	  7.27245623	  0.99845865	  0.99918633  0.49320254
++6133	 -6.27296097	 -0.00050446	  0.00030908	  7.27245651	  0.99845890	  0.99918646  0.49320257
++6134	 -6.27296117	 -0.00050438	  0.00030903	  7.27245679	  0.99845915	  0.99918659  0.49320260
++6135	 -6.27296136	 -0.00050429	  0.00030898	  7.27245707	  0.99845940	  0.99918673  0.49320260
++6136	 -6.27296156	 -0.00050421	  0.00030893	  7.27245735	  0.99845965	  0.99918686  0.49320264
++6137	 -6.27296176	 -0.00050413	  0.00030888	  7.27245763	  0.99845990	  0.99918699  0.49320270
++6138	 -6.27296195	 -0.00050405	  0.00030883	  7.27245790	  0.99846015	  0.99918712  0.49320271
++6139	 -6.27296215	 -0.00050397	  0.00030878	  7.27245818	  0.99846040	  0.99918726  0.49320271
++6140	 -6.27296234	 -0.00050388	  0.00030873	  7.27245846	  0.99846066	  0.99918739  0.49320279
++6141	 -6.27296254	 -0.00050380	  0.00030868	  7.27245874	  0.99846091	  0.99918752  0.49320285
++6142	 -6.27296274	 -0.00050372	  0.00030863	  7.27245902	  0.99846116	  0.99918765  0.49320278
++6143	 -6.27296293	 -0.00050364	  0.00030858	  7.27245930	  0.99846141	  0.99918778  0.49320286
++6144	 -6.27296313	 -0.00050356	  0.00030853	  7.27245957	  0.99846166	  0.99918792  0.49320284
++6145	 -6.27296332	 -0.00050347	  0.00030848	  7.27245985	  0.99846191	  0.99918805  0.49320294
++6146	 -6.27296352	 -0.00050339	  0.00030843	  7.27246013	  0.99846216	  0.99918818  0.49320297
++6147	 -6.27296372	 -0.00050331	  0.00030838	  7.27246041	  0.99846241	  0.99918831  0.49320295
++6148	 -6.27296391	 -0.00050323	  0.00030833	  7.27246068	  0.99846266	  0.99918844  0.49320301
++6149	 -6.27296411	 -0.00050315	  0.00030828	  7.27246096	  0.99846291	  0.99918858  0.49320303
++6150	 -6.27296430	 -0.00050306	  0.00030823	  7.27246124	  0.99846316	  0.99918871  0.49320305
++6151	 -6.27296450	 -0.00050298	  0.00030818	  7.27246152	  0.99846341	  0.99918884  0.49320310
++6152	 -6.27296469	 -0.00050290	  0.00030813	  7.27246179	  0.99846366	  0.99918897  0.49320314
++6153	 -6.27296489	 -0.00050282	  0.00030808	  7.27246207	  0.99846391	  0.99918910  0.49320318
++6154	 -6.27296509	 -0.00050274	  0.00030803	  7.27246235	  0.99846416	  0.99918924  0.49320319
++6155	 -6.27296528	 -0.00050266	  0.00030798	  7.27246263	  0.99846441	  0.99918937  0.49320326
++6156	 -6.27296548	 -0.00050257	  0.00030793	  7.27246290	  0.99846466	  0.99918950  0.49320325
++6157	 -6.27296567	 -0.00050249	  0.00030788	  7.27246318	  0.99846490	  0.99918963  0.49320329
++6158	 -6.27296587	 -0.00050241	  0.00030783	  7.27246346	  0.99846515	  0.99918976  0.49320330
++6159	 -6.27296606	 -0.00050233	  0.00030778	  7.27246373	  0.99846540	  0.99918989  0.49320333
++6160	 -6.27296626	 -0.00050225	  0.00030773	  7.27246401	  0.99846565	  0.99919002  0.49320339
++6161	 -6.27296645	 -0.00050217	  0.00030768	  7.27246429	  0.99846590	  0.99919016  0.49320339
++6162	 -6.27296665	 -0.00050209	  0.00030763	  7.27246456	  0.99846615	  0.99919029  0.49320338
++6163	 -6.27296684	 -0.00050200	  0.00030758	  7.27246484	  0.99846640	  0.99919042  0.49320344
++6164	 -6.27296704	 -0.00050192	  0.00030753	  7.27246511	  0.99846665	  0.99919055  0.49320353
++6165	 -6.27296723	 -0.00050184	  0.00030748	  7.27246539	  0.99846690	  0.99919068  0.49320349
++6166	 -6.27296743	 -0.00050176	  0.00030743	  7.27246567	  0.99846715	  0.99919081  0.49320357
++6167	 -6.27296762	 -0.00050168	  0.00030738	  7.27246594	  0.99846739	  0.99919094  0.49320354
++6168	 -6.27296781	 -0.00050160	  0.00030733	  7.27246622	  0.99846764	  0.99919108  0.49320360
++6169	 -6.27296801	 -0.00050152	  0.00030728	  7.27246649	  0.99846789	  0.99919121  0.49320366
++6170	 -6.27296820	 -0.00050143	  0.00030723	  7.27246677	  0.99846814	  0.99919134  0.49320363
++6171	 -6.27296840	 -0.00050135	  0.00030718	  7.27246704	  0.99846839	  0.99919147  0.49320369
++6172	 -6.27296859	 -0.00050127	  0.00030713	  7.27246732	  0.99846864	  0.99919160  0.49320376
++6173	 -6.27296879	 -0.00050119	  0.00030708	  7.27246760	  0.99846888	  0.99919173  0.49320377
++6174	 -6.27296898	 -0.00050111	  0.00030703	  7.27246787	  0.99846913	  0.99919186  0.49320381
++6175	 -6.27296917	 -0.00050103	  0.00030698	  7.27246815	  0.99846938	  0.99919199  0.49320377
++6176	 -6.27296937	 -0.00050095	  0.00030693	  7.27246842	  0.99846963	  0.99919212  0.49320384
++6177	 -6.27296956	 -0.00050087	  0.00030688	  7.27246870	  0.99846987	  0.99919225  0.49320380
++6178	 -6.27296976	 -0.00050079	  0.00030683	  7.27246897	  0.99847012	  0.99919238  0.49320387
++6179	 -6.27296995	 -0.00050070	  0.00030678	  7.27246925	  0.99847037	  0.99919251  0.49320387
++6180	 -6.27297014	 -0.00050062	  0.00030673	  7.27246952	  0.99847062	  0.99919265  0.49320397
++6181	 -6.27297034	 -0.00050054	  0.00030668	  7.27246980	  0.99847086	  0.99919278  0.49320397
++6182	 -6.27297053	 -0.00050046	  0.00030663	  7.27247007	  0.99847111	  0.99919291  0.49320399
++6183	 -6.27297073	 -0.00050038	  0.00030658	  7.27247034	  0.99847136	  0.99919304  0.49320405
++6184	 -6.27297092	 -0.00050030	  0.00030653	  7.27247062	  0.99847161	  0.99919317  0.49320409
++6185	 -6.27297111	 -0.00050022	  0.00030648	  7.27247089	  0.99847185	  0.99919330  0.49320412
++6186	 -6.27297131	 -0.00050014	  0.00030643	  7.27247117	  0.99847210	  0.99919343  0.49320414
++6187	 -6.27297150	 -0.00050006	  0.00030638	  7.27247144	  0.99847235	  0.99919356  0.49320414
++6188	 -6.27297169	 -0.00049998	  0.00030633	  7.27247172	  0.99847259	  0.99919369  0.49320417
++6189	 -6.27297189	 -0.00049990	  0.00030629	  7.27247199	  0.99847284	  0.99919382  0.49320418
++6190	 -6.27297208	 -0.00049982	  0.00030624	  7.27247226	  0.99847309	  0.99919395  0.49320420
++6191	 -6.27297227	 -0.00049973	  0.00030619	  7.27247254	  0.99847333	  0.99919408  0.49320426
++6192	 -6.27297246	 -0.00049965	  0.00030614	  7.27247281	  0.99847358	  0.99919421  0.49320420
++6193	 -6.27297266	 -0.00049957	  0.00030609	  7.27247308	  0.99847383	  0.99919434  0.49320435
++6194	 -6.27297285	 -0.00049949	  0.00030604	  7.27247336	  0.99847407	  0.99919447  0.49320431
++6195	 -6.27297304	 -0.00049941	  0.00030599	  7.27247363	  0.99847432	  0.99919460  0.49320437
++6196	 -6.27297324	 -0.00049933	  0.00030594	  7.27247390	  0.99847457	  0.99919473  0.49320437
++6197	 -6.27297343	 -0.00049925	  0.00030589	  7.27247418	  0.99847481	  0.99919486  0.49320443
++6198	 -6.27297362	 -0.00049917	  0.00030584	  7.27247445	  0.99847506	  0.99919499  0.49320448
++6199	 -6.27297381	 -0.00049909	  0.00030579	  7.27247472	  0.99847530	  0.99919512  0.49320448
++6200	 -6.27297401	 -0.00049901	  0.00030574	  7.27247500	  0.99847555	  0.99919525  0.49320449
++6201	 -6.27297420	 -0.00049893	  0.00030569	  7.27247527	  0.99847580	  0.99919538  0.49320451
++6202	 -6.27297439	 -0.00049885	  0.00030564	  7.27247554	  0.99847604	  0.99919551  0.49320453
++6203	 -6.27297458	 -0.00049877	  0.00030559	  7.27247582	  0.99847629	  0.99919564  0.49320461
++6204	 -6.27297478	 -0.00049869	  0.00030554	  7.27247609	  0.99847653	  0.99919577  0.49320461
++6205	 -6.27297497	 -0.00049861	  0.00030550	  7.27247636	  0.99847678	  0.99919590  0.49320465
++6206	 -6.27297516	 -0.00049853	  0.00030545	  7.27247663	  0.99847702	  0.99919603  0.49320475
++6207	 -6.27297535	 -0.00049845	  0.00030540	  7.27247691	  0.99847727	  0.99919616  0.49320473
++6208	 -6.27297554	 -0.00049837	  0.00030535	  7.27247718	  0.99847751	  0.99919629  0.49320474
++6209	 -6.27297574	 -0.00049829	  0.00030530	  7.27247745	  0.99847776	  0.99919641  0.49320475
++6210	 -6.27297593	 -0.00049821	  0.00030525	  7.27247772	  0.99847800	  0.99919654  0.49320486
++6211	 -6.27297612	 -0.00049813	  0.00030520	  7.27247799	  0.99847825	  0.99919667  0.49320483
++6212	 -6.27297631	 -0.00049805	  0.00030515	  7.27247827	  0.99847849	  0.99919680  0.49320494
++6213	 -6.27297650	 -0.00049797	  0.00030510	  7.27247854	  0.99847874	  0.99919693  0.49320494
++6214	 -6.27297670	 -0.00049789	  0.00030505	  7.27247881	  0.99847898	  0.99919706  0.49320488
++6215	 -6.27297689	 -0.00049781	  0.00030500	  7.27247908	  0.99847923	  0.99919719  0.49320497
++6216	 -6.27297708	 -0.00049773	  0.00030495	  7.27247935	  0.99847947	  0.99919732  0.49320498
++6217	 -6.27297727	 -0.00049765	  0.00030491	  7.27247962	  0.99847972	  0.99919745  0.49320504
++6218	 -6.27297746	 -0.00049757	  0.00030486	  7.27247990	  0.99847996	  0.99919758  0.49320498
++6219	 -6.27297765	 -0.00049749	  0.00030481	  7.27248017	  0.99848021	  0.99919771  0.49320508
++6220	 -6.27297784	 -0.00049741	  0.00030476	  7.27248044	  0.99848045	  0.99919784  0.49320506
++6221	 -6.27297804	 -0.00049733	  0.00030471	  7.27248071	  0.99848070	  0.99919796  0.49320512
++6222	 -6.27297823	 -0.00049725	  0.00030466	  7.27248098	  0.99848094	  0.99919809  0.49320520
++6223	 -6.27297842	 -0.00049717	  0.00030461	  7.27248125	  0.99848118	  0.99919822  0.49320518
++6224	 -6.27297861	 -0.00049709	  0.00030456	  7.27248152	  0.99848143	  0.99919835  0.49320519
++6225	 -6.27297880	 -0.00049701	  0.00030451	  7.27248179	  0.99848167	  0.99919848  0.49320524
++6226	 -6.27297899	 -0.00049693	  0.00030446	  7.27248206	  0.99848192	  0.99919861  0.49320527
++6227	 -6.27297918	 -0.00049685	  0.00030442	  7.27248233	  0.99848216	  0.99919874  0.49320529
++6228	 -6.27297937	 -0.00049677	  0.00030437	  7.27248260	  0.99848240	  0.99919887  0.49320530
++6229	 -6.27297956	 -0.00049669	  0.00030432	  7.27248288	  0.99848265	  0.99919899  0.49320533
++6230	 -6.27297975	 -0.00049661	  0.00030427	  7.27248315	  0.99848289	  0.99919912  0.49320533
++6231	 -6.27297994	 -0.00049653	  0.00030422	  7.27248342	  0.99848313	  0.99919925  0.49320545
++6232	 -6.27298013	 -0.00049645	  0.00030417	  7.27248369	  0.99848338	  0.99919938  0.49320550
++6233	 -6.27298033	 -0.00049637	  0.00030412	  7.27248396	  0.99848362	  0.99919951  0.49320544
++6234	 -6.27298052	 -0.00049629	  0.00030407	  7.27248423	  0.99848386	  0.99919964  0.49320542
++6235	 -6.27298071	 -0.00049621	  0.00030403	  7.27248450	  0.99848411	  0.99919976  0.49320549
++6236	 -6.27298090	 -0.00049613	  0.00030398	  7.27248477	  0.99848435	  0.99919989  0.49320553
++6237	 -6.27298109	 -0.00049605	  0.00030393	  7.27248504	  0.99848459	  0.99920002  0.49320549
++6238	 -6.27298128	 -0.00049597	  0.00030388	  7.27248531	  0.99848484	  0.99920015  0.49320559
++6239	 -6.27298147	 -0.00049589	  0.00030383	  7.27248557	  0.99848508	  0.99920028  0.49320560
++6240	 -6.27298166	 -0.00049581	  0.00030378	  7.27248584	  0.99848532	  0.99920041  0.49320562
++6241	 -6.27298185	 -0.00049573	  0.00030373	  7.27248611	  0.99848556	  0.99920053  0.49320572
++6242	 -6.27298204	 -0.00049565	  0.00030368	  7.27248638	  0.99848581	  0.99920066  0.49320570
++6243	 -6.27298223	 -0.00049557	  0.00030364	  7.27248665	  0.99848605	  0.99920079  0.49320571
++6244	 -6.27298242	 -0.00049550	  0.00030359	  7.27248692	  0.99848629	  0.99920092  0.49320573
++6245	 -6.27298261	 -0.00049542	  0.00030354	  7.27248719	  0.99848653	  0.99920105  0.49320576
++6246	 -6.27298280	 -0.00049534	  0.00030349	  7.27248746	  0.99848678	  0.99920117  0.49320585
++6247	 -6.27298299	 -0.00049526	  0.00030344	  7.27248773	  0.99848702	  0.99920130  0.49320584
++6248	 -6.27298318	 -0.00049518	  0.00030339	  7.27248800	  0.99848726	  0.99920143  0.49320590
++6249	 -6.27298336	 -0.00049510	  0.00030334	  7.27248827	  0.99848750	  0.99920156  0.49320592
++6250	 -6.27298355	 -0.00049502	  0.00030330	  7.27248853	  0.99848774	  0.99920168  0.49320594
++6251	 -6.27298374	 -0.00049494	  0.00030325	  7.27248880	  0.99848799	  0.99920181  0.49320595
++6252	 -6.27298393	 -0.00049486	  0.00030320	  7.27248907	  0.99848823	  0.99920194  0.49320597
++6253	 -6.27298412	 -0.00049478	  0.00030315	  7.27248934	  0.99848847	  0.99920207  0.49320596
++6254	 -6.27298431	 -0.00049470	  0.00030310	  7.27248961	  0.99848871	  0.99920220  0.49320603
++6255	 -6.27298450	 -0.00049462	  0.00030305	  7.27248988	  0.99848895	  0.99920232  0.49320613
++6256	 -6.27298469	 -0.00049455	  0.00030300	  7.27249014	  0.99848919	  0.99920245  0.49320607
++6257	 -6.27298488	 -0.00049447	  0.00030296	  7.27249041	  0.99848944	  0.99920258  0.49320616
++6258	 -6.27298507	 -0.00049439	  0.00030291	  7.27249068	  0.99848968	  0.99920270  0.49320618
++6259	 -6.27298526	 -0.00049431	  0.00030286	  7.27249095	  0.99848992	  0.99920283  0.49320613
++6260	 -6.27298545	 -0.00049423	  0.00030281	  7.27249122	  0.99849016	  0.99920296  0.49320620
++6261	 -6.27298563	 -0.00049415	  0.00030276	  7.27249148	  0.99849040	  0.99920309  0.49320622
++6262	 -6.27298582	 -0.00049407	  0.00030271	  7.27249175	  0.99849064	  0.99920321  0.49320626
++6263	 -6.27298601	 -0.00049399	  0.00030267	  7.27249202	  0.99849088	  0.99920334  0.49320625
++6264	 -6.27298620	 -0.00049391	  0.00030262	  7.27249229	  0.99849112	  0.99920347  0.49320640
++6265	 -6.27298639	 -0.00049384	  0.00030257	  7.27249255	  0.99849136	  0.99920360  0.49320640
++6266	 -6.27298658	 -0.00049376	  0.00030252	  7.27249282	  0.99849161	  0.99920372  0.49320636
++6267	 -6.27298677	 -0.00049368	  0.00030247	  7.27249309	  0.99849185	  0.99920385  0.49320641
++6268	 -6.27298695	 -0.00049360	  0.00030242	  7.27249336	  0.99849209	  0.99920398  0.49320644
++6269	 -6.27298714	 -0.00049352	  0.00030238	  7.27249362	  0.99849233	  0.99920410  0.49320643
++6270	 -6.27298733	 -0.00049344	  0.00030233	  7.27249389	  0.99849257	  0.99920423  0.49320647
++6271	 -6.27298752	 -0.00049336	  0.00030228	  7.27249416	  0.99849281	  0.99920436  0.49320649
++6272	 -6.27298771	 -0.00049328	  0.00030223	  7.27249442	  0.99849305	  0.99920448  0.49320659
++6273	 -6.27298790	 -0.00049321	  0.00030218	  7.27249469	  0.99849329	  0.99920461  0.49320657
++6274	 -6.27298808	 -0.00049313	  0.00030214	  7.27249496	  0.99849353	  0.99920474  0.49320661
++6275	 -6.27298827	 -0.00049305	  0.00030209	  7.27249522	  0.99849377	  0.99920486  0.49320660
++6276	 -6.27298846	 -0.00049297	  0.00030204	  7.27249549	  0.99849401	  0.99920499  0.49320663
++6277	 -6.27298865	 -0.00049289	  0.00030199	  7.27249576	  0.99849425	  0.99920512  0.49320673
++6278	 -6.27298883	 -0.00049281	  0.00030194	  7.27249602	  0.99849449	  0.99920524  0.49320673
++6279	 -6.27298902	 -0.00049273	  0.00030189	  7.27249629	  0.99849473	  0.99920537  0.49320669
++6280	 -6.27298921	 -0.00049266	  0.00030185	  7.27249655	  0.99849497	  0.99920550  0.49320677
++6281	 -6.27298940	 -0.00049258	  0.00030180	  7.27249682	  0.99849521	  0.99920562  0.49320680
++6282	 -6.27298959	 -0.00049250	  0.00030175	  7.27249709	  0.99849545	  0.99920575  0.49320687
++6283	 -6.27298977	 -0.00049242	  0.00030170	  7.27249735	  0.99849569	  0.99920588  0.49320693
++6284	 -6.27298996	 -0.00049234	  0.00030165	  7.27249762	  0.99849593	  0.99920600  0.49320681
++6285	 -6.27299015	 -0.00049226	  0.00030161	  7.27249788	  0.99849616	  0.99920613  0.49320699
++6286	 -6.27299033	 -0.00049219	  0.00030156	  7.27249815	  0.99849640	  0.99920626  0.49320687
++6287	 -6.27299052	 -0.00049211	  0.00030151	  7.27249841	  0.99849664	  0.99920638  0.49320699
++6288	 -6.27299071	 -0.00049203	  0.00030146	  7.27249868	  0.99849688	  0.99920651  0.49320705
++6289	 -6.27299090	 -0.00049195	  0.00030141	  7.27249894	  0.99849712	  0.99920663  0.49320709
++6290	 -6.27299108	 -0.00049187	  0.00030137	  7.27249921	  0.99849736	  0.99920676  0.49320704
++6291	 -6.27299127	 -0.00049180	  0.00030132	  7.27249948	  0.99849760	  0.99920689  0.49320700
++6292	 -6.27299146	 -0.00049172	  0.00030127	  7.27249974	  0.99849784	  0.99920701  0.49320709
++6293	 -6.27299164	 -0.00049164	  0.00030122	  7.27250001	  0.99849808	  0.99920714  0.49320722
++6294	 -6.27299183	 -0.00049156	  0.00030118	  7.27250027	  0.99849831	  0.99920726  0.49320713
++6295	 -6.27299202	 -0.00049148	  0.00030113	  7.27250053	  0.99849855	  0.99920739  0.49320717
++6296	 -6.27299220	 -0.00049140	  0.00030108	  7.27250080	  0.99849879	  0.99920752  0.49320720
++6297	 -6.27299239	 -0.00049133	  0.00030103	  7.27250106	  0.99849903	  0.99920764  0.49320724
++6298	 -6.27299258	 -0.00049125	  0.00030098	  7.27250133	  0.99849927	  0.99920777  0.49320731
++6299	 -6.27299276	 -0.00049117	  0.00030094	  7.27250159	  0.99849951	  0.99920789  0.49320733
++6300	 -6.27299295	 -0.00049109	  0.00030089	  7.27250186	  0.99849974	  0.99920802  0.49320736
++6301	 -6.27299314	 -0.00049102	  0.00030084	  7.27250212	  0.99849998	  0.99920814  0.49320742
++6302	 -6.27299332	 -0.00049094	  0.00030079	  7.27250239	  0.99850022	  0.99920827  0.49320737
++6303	 -6.27299351	 -0.00049086	  0.00030075	  7.27250265	  0.99850046	  0.99920840  0.49320741
++6304	 -6.27299370	 -0.00049078	  0.00030070	  7.27250291	  0.99850070	  0.99920852  0.49320747
++6305	 -6.27299388	 -0.00049070	  0.00030065	  7.27250318	  0.99850093	  0.99920865  0.49320746
++6306	 -6.27299407	 -0.00049063	  0.00030060	  7.27250344	  0.99850117	  0.99920877  0.49320747
++6307	 -6.27299425	 -0.00049055	  0.00030055	  7.27250371	  0.99850141	  0.99920890  0.49320753
++6308	 -6.27299444	 -0.00049047	  0.00030051	  7.27250397	  0.99850165	  0.99920902  0.49320754
++6309	 -6.27299463	 -0.00049039	  0.00030046	  7.27250423	  0.99850188	  0.99920915  0.49320761
++6310	 -6.27299481	 -0.00049032	  0.00030041	  7.27250450	  0.99850212	  0.99920927  0.49320761
++6311	 -6.27299500	 -0.00049024	  0.00030036	  7.27250476	  0.99850236	  0.99920940  0.49320763
++6312	 -6.27299518	 -0.00049016	  0.00030032	  7.27250502	  0.99850260	  0.99920952  0.49320763
++6313	 -6.27299537	 -0.00049008	  0.00030027	  7.27250529	  0.99850283	  0.99920965  0.49320764
++6314	 -6.27299556	 -0.00049000	  0.00030022	  7.27250555	  0.99850307	  0.99920977  0.49320768
++6315	 -6.27299574	 -0.00048993	  0.00030017	  7.27250581	  0.99850331	  0.99920990  0.49320774
++6316	 -6.27299593	 -0.00048985	  0.00030013	  7.27250608	  0.99850354	  0.99921002  0.49320770
++6317	 -6.27299611	 -0.00048977	  0.00030008	  7.27250634	  0.99850378	  0.99921015  0.49320782
++6318	 -6.27299630	 -0.00048969	  0.00030003	  7.27250660	  0.99850402	  0.99921027  0.49320781
++6319	 -6.27299648	 -0.00048962	  0.00029998	  7.27250687	  0.99850426	  0.99921040  0.49320784
++6320	 -6.27299667	 -0.00048954	  0.00029994	  7.27250713	  0.99850449	  0.99921052  0.49320787
++6321	 -6.27299685	 -0.00048946	  0.00029989	  7.27250739	  0.99850473	  0.99921065  0.49320791
++6322	 -6.27299704	 -0.00048938	  0.00029984	  7.27250765	  0.99850496	  0.99921077  0.49320794
++6323	 -6.27299722	 -0.00048931	  0.00029979	  7.27250792	  0.99850520	  0.99921090  0.49320795
++6324	 -6.27299741	 -0.00048923	  0.00029975	  7.27250818	  0.99850544	  0.99921102  0.49320801
++6325	 -6.27299759	 -0.00048915	  0.00029970	  7.27250844	  0.99850567	  0.99921115  0.49320802
++6326	 -6.27299778	 -0.00048908	  0.00029965	  7.27250870	  0.99850591	  0.99921127  0.49320805
++6327	 -6.27299796	 -0.00048900	  0.00029960	  7.27250896	  0.99850615	  0.99921140  0.49320810
++6328	 -6.27299815	 -0.00048892	  0.00029956	  7.27250923	  0.99850638	  0.99921152  0.49320806
++6329	 -6.27299833	 -0.00048884	  0.00029951	  7.27250949	  0.99850662	  0.99921165  0.49320815
++6330	 -6.27299852	 -0.00048877	  0.00029946	  7.27250975	  0.99850685	  0.99921177  0.49320816
++6331	 -6.27299870	 -0.00048869	  0.00029941	  7.27251001	  0.99850709	  0.99921190  0.49320817
++6332	 -6.27299889	 -0.00048861	  0.00029937	  7.27251027	  0.99850733	  0.99921202  0.49320820
++6333	 -6.27299907	 -0.00048854	  0.00029932	  7.27251054	  0.99850756	  0.99921214  0.49320826
++6334	 -6.27299926	 -0.00048846	  0.00029927	  7.27251080	  0.99850780	  0.99921227  0.49320827
++6335	 -6.27299944	 -0.00048838	  0.00029923	  7.27251106	  0.99850803	  0.99921239  0.49320823
++6336	 -6.27299962	 -0.00048830	  0.00029918	  7.27251132	  0.99850827	  0.99921252  0.49320833
++6337	 -6.27299981	 -0.00048823	  0.00029913	  7.27251158	  0.99850850	  0.99921264  0.49320833
++6338	 -6.27299999	 -0.00048815	  0.00029908	  7.27251184	  0.99850874	  0.99921277  0.49320839
++6339	 -6.27300018	 -0.00048807	  0.00029904	  7.27251210	  0.99850897	  0.99921289  0.49320841
++6340	 -6.27300036	 -0.00048800	  0.00029899	  7.27251236	  0.99850921	  0.99921301  0.49320850
++6341	 -6.27300055	 -0.00048792	  0.00029894	  7.27251263	  0.99850944	  0.99921314  0.49320846
++6342	 -6.27300073	 -0.00048784	  0.00029890	  7.27251289	  0.99850968	  0.99921326  0.49320848
++6343	 -6.27300091	 -0.00048777	  0.00029885	  7.27251315	  0.99850991	  0.99921339  0.49320847
++6344	 -6.27300110	 -0.00048769	  0.00029880	  7.27251341	  0.99851015	  0.99921351  0.49320858
++6345	 -6.27300128	 -0.00048761	  0.00029875	  7.27251367	  0.99851038	  0.99921363  0.49320864
++6346	 -6.27300146	 -0.00048754	  0.00029871	  7.27251393	  0.99851062	  0.99921376  0.49320855
++6347	 -6.27300165	 -0.00048746	  0.00029866	  7.27251419	  0.99851085	  0.99921388  0.49320856
++6348	 -6.27300183	 -0.00048738	  0.00029861	  7.27251445	  0.99851109	  0.99921401  0.49320863
++6349	 -6.27300202	 -0.00048730	  0.00029857	  7.27251471	  0.99851132	  0.99921413  0.49320867
++6350	 -6.27300220	 -0.00048723	  0.00029852	  7.27251497	  0.99851156	  0.99921425  0.49320861
++6351	 -6.27300238	 -0.00048715	  0.00029847	  7.27251523	  0.99851179	  0.99921438  0.49320874
++6352	 -6.27300257	 -0.00048707	  0.00029842	  7.27251549	  0.99851202	  0.99921450  0.49320874
++6353	 -6.27300275	 -0.00048700	  0.00029838	  7.27251575	  0.99851226	  0.99921462  0.49320881
++6354	 -6.27300293	 -0.00048692	  0.00029833	  7.27251601	  0.99851249	  0.99921475  0.49320880
++6355	 -6.27300312	 -0.00048685	  0.00029828	  7.27251627	  0.99851273	  0.99921487  0.49320887
++6356	 -6.27300330	 -0.00048677	  0.00029824	  7.27251653	  0.99851296	  0.99921499  0.49320886
++6357	 -6.27300348	 -0.00048669	  0.00029819	  7.27251679	  0.99851320	  0.99921512  0.49320893
++6358	 -6.27300367	 -0.00048662	  0.00029814	  7.27251705	  0.99851343	  0.99921524  0.49320893
++6359	 -6.27300385	 -0.00048654	  0.00029810	  7.27251731	  0.99851366	  0.99921536  0.49320895
++6360	 -6.27300403	 -0.00048646	  0.00029805	  7.27251757	  0.99851390	  0.99921549  0.49320892
++6361	 -6.27300421	 -0.00048639	  0.00029800	  7.27251783	  0.99851413	  0.99921561  0.49320898
++6362	 -6.27300440	 -0.00048631	  0.00029796	  7.27251809	  0.99851436	  0.99921573  0.49320901
++6363	 -6.27300458	 -0.00048623	  0.00029791	  7.27251835	  0.99851460	  0.99921586  0.49320901
++6364	 -6.27300476	 -0.00048616	  0.00029786	  7.27251861	  0.99851483	  0.99921598  0.49320912
++6365	 -6.27300495	 -0.00048608	  0.00029782	  7.27251886	  0.99851506	  0.99921610  0.49320910
++6366	 -6.27300513	 -0.00048600	  0.00029777	  7.27251912	  0.99851530	  0.99921623  0.49320913
++6367	 -6.27300531	 -0.00048593	  0.00029772	  7.27251938	  0.99851553	  0.99921635  0.49320917
++6368	 -6.27300549	 -0.00048585	  0.00029768	  7.27251964	  0.99851576	  0.99921647  0.49320916
++6369	 -6.27300568	 -0.00048578	  0.00029763	  7.27251990	  0.99851600	  0.99921660  0.49320920
++6370	 -6.27300586	 -0.00048570	  0.00029758	  7.27252016	  0.99851623	  0.99921672  0.49320924
++6371	 -6.27300604	 -0.00048562	  0.00029753	  7.27252042	  0.99851646	  0.99921684  0.49320926
++6372	 -6.27300622	 -0.00048555	  0.00029749	  7.27252068	  0.99851669	  0.99921696  0.49320930
++6373	 -6.27300640	 -0.00048547	  0.00029744	  7.27252093	  0.99851693	  0.99921709  0.49320931
++6374	 -6.27300659	 -0.00048539	  0.00029739	  7.27252119	  0.99851716	  0.99921721  0.49320938
++6375	 -6.27300677	 -0.00048532	  0.00029735	  7.27252145	  0.99851739	  0.99921733  0.49320939
++6376	 -6.27300695	 -0.00048524	  0.00029730	  7.27252171	  0.99851763	  0.99921746  0.49320948
++6377	 -6.27300713	 -0.00048517	  0.00029725	  7.27252197	  0.99851786	  0.99921758  0.49320954
++6378	 -6.27300732	 -0.00048509	  0.00029721	  7.27252222	  0.99851809	  0.99921770  0.49320950
++6379	 -6.27300750	 -0.00048501	  0.00029716	  7.27252248	  0.99851832	  0.99921782  0.49320952
++6380	 -6.27300768	 -0.00048494	  0.00029712	  7.27252274	  0.99851855	  0.99921795  0.49320954
++6381	 -6.27300786	 -0.00048486	  0.00029707	  7.27252300	  0.99851879	  0.99921807  0.49320960
++6382	 -6.27300804	 -0.00048479	  0.00029702	  7.27252326	  0.99851902	  0.99921819  0.49320959
++6383	 -6.27300822	 -0.00048471	  0.00029698	  7.27252351	  0.99851925	  0.99921831  0.49320958
++6384	 -6.27300841	 -0.00048463	  0.00029693	  7.27252377	  0.99851948	  0.99921844  0.49320965
++6385	 -6.27300859	 -0.00048456	  0.00029688	  7.27252403	  0.99851971	  0.99921856  0.49320967
++6386	 -6.27300877	 -0.00048448	  0.00029684	  7.27252429	  0.99851995	  0.99921868  0.49320972
++6387	 -6.27300895	 -0.00048441	  0.00029679	  7.27252454	  0.99852018	  0.99921880  0.49320973
++6388	 -6.27300913	 -0.00048433	  0.00029674	  7.27252480	  0.99852041	  0.99921893  0.49320972
++6389	 -6.27300931	 -0.00048426	  0.00029670	  7.27252506	  0.99852064	  0.99921905  0.49320980
++6390	 -6.27300949	 -0.00048418	  0.00029665	  7.27252531	  0.99852087	  0.99921917  0.49320981
++6391	 -6.27300968	 -0.00048410	  0.00029660	  7.27252557	  0.99852110	  0.99921929  0.49320974
++6392	 -6.27300986	 -0.00048403	  0.00029656	  7.27252583	  0.99852134	  0.99921941  0.49320985
++6393	 -6.27301004	 -0.00048395	  0.00029651	  7.27252608	  0.99852157	  0.99921954  0.49320992
++6394	 -6.27301022	 -0.00048388	  0.00029646	  7.27252634	  0.99852180	  0.99921966  0.49320992
++6395	 -6.27301040	 -0.00048380	  0.00029642	  7.27252660	  0.99852203	  0.99921978  0.49320993
++6396	 -6.27301058	 -0.00048373	  0.00029637	  7.27252685	  0.99852226	  0.99921990  0.49320993
++6397	 -6.27301076	 -0.00048365	  0.00029633	  7.27252711	  0.99852249	  0.99922002  0.49321001
++6398	 -6.27301094	 -0.00048357	  0.00029628	  7.27252737	  0.99852272	  0.99922015  0.49321003
++6399	 -6.27301112	 -0.00048350	  0.00029623	  7.27252762	  0.99852295	  0.99922027  0.49321005
++6400	 -6.27301130	 -0.00048342	  0.00029619	  7.27252788	  0.99852318	  0.99922039  0.49321008
++6401	 -6.27301148	 -0.00048335	  0.00029614	  7.27252814	  0.99852341	  0.99922051  0.49321008
++6402	 -6.27301166	 -0.00048327	  0.00029609	  7.27252839	  0.99852364	  0.99922063  0.49321010
++6403	 -6.27301185	 -0.00048320	  0.00029605	  7.27252865	  0.99852388	  0.99922075  0.49321017
++6404	 -6.27301203	 -0.00048312	  0.00029600	  7.27252890	  0.99852411	  0.99922088  0.49321023
++6405	 -6.27301221	 -0.00048305	  0.00029596	  7.27252916	  0.99852434	  0.99922100  0.49321020
++6406	 -6.27301239	 -0.00048297	  0.00029591	  7.27252942	  0.99852457	  0.99922112  0.49321023
++6407	 -6.27301257	 -0.00048290	  0.00029586	  7.27252967	  0.99852480	  0.99922124  0.49321024
++6408	 -6.27301275	 -0.00048282	  0.00029582	  7.27252993	  0.99852503	  0.99922136  0.49321030
++6409	 -6.27301293	 -0.00048275	  0.00029577	  7.27253018	  0.99852526	  0.99922148  0.49321031
++6410	 -6.27301311	 -0.00048267	  0.00029572	  7.27253044	  0.99852549	  0.99922161  0.49321030
++6411	 -6.27301329	 -0.00048259	  0.00029568	  7.27253069	  0.99852572	  0.99922173  0.49321030
++6412	 -6.27301347	 -0.00048252	  0.00029563	  7.27253095	  0.99852595	  0.99922185  0.49321039
++6413	 -6.27301365	 -0.00048244	  0.00029559	  7.27253120	  0.99852618	  0.99922197  0.49321037
++6414	 -6.27301383	 -0.00048237	  0.00029554	  7.27253146	  0.99852641	  0.99922209  0.49321046
++6415	 -6.27301401	 -0.00048229	  0.00029549	  7.27253171	  0.99852664	  0.99922221  0.49321048
++6416	 -6.27301419	 -0.00048222	  0.00029545	  7.27253197	  0.99852687	  0.99922233  0.49321049
++6417	 -6.27301437	 -0.00048214	  0.00029540	  7.27253222	  0.99852710	  0.99922245  0.49321046
++6418	 -6.27301455	 -0.00048207	  0.00029536	  7.27253248	  0.99852732	  0.99922258  0.49321053
++6419	 -6.27301473	 -0.00048199	  0.00029531	  7.27253273	  0.99852755	  0.99922270  0.49321060
++6420	 -6.27301491	 -0.00048192	  0.00029526	  7.27253299	  0.99852778	  0.99922282  0.49321066
++6421	 -6.27301509	 -0.00048184	  0.00029522	  7.27253324	  0.99852801	  0.99922294  0.49321062
++6422	 -6.27301526	 -0.00048177	  0.00029517	  7.27253350	  0.99852824	  0.99922306  0.49321065
++6423	 -6.27301544	 -0.00048169	  0.00029513	  7.27253375	  0.99852847	  0.99922318  0.49321069
++6424	 -6.27301562	 -0.00048162	  0.00029508	  7.27253400	  0.99852870	  0.99922330  0.49321066
++6425	 -6.27301580	 -0.00048154	  0.00029503	  7.27253426	  0.99852893	  0.99922342  0.49321075
++6426	 -6.27301598	 -0.00048147	  0.00029499	  7.27253451	  0.99852916	  0.99922354  0.49321074
++6427	 -6.27301616	 -0.00048139	  0.00029494	  7.27253477	  0.99852939	  0.99922366  0.49321082
++6428	 -6.27301634	 -0.00048132	  0.00029490	  7.27253502	  0.99852962	  0.99922378  0.49321081
++6429	 -6.27301652	 -0.00048124	  0.00029485	  7.27253528	  0.99852984	  0.99922391  0.49321083
++6430	 -6.27301670	 -0.00048117	  0.00029480	  7.27253553	  0.99853007	  0.99922403  0.49321094
++6431	 -6.27301688	 -0.00048109	  0.00029476	  7.27253578	  0.99853030	  0.99922415  0.49321096
++6432	 -6.27301706	 -0.00048102	  0.00029471	  7.27253604	  0.99853053	  0.99922427  0.49321093
++6433	 -6.27301724	 -0.00048095	  0.00029467	  7.27253629	  0.99853076	  0.99922439  0.49321094
++6434	 -6.27301741	 -0.00048087	  0.00029462	  7.27253654	  0.99853099	  0.99922451  0.49321098
++6435	 -6.27301759	 -0.00048080	  0.00029458	  7.27253680	  0.99853121	  0.99922463  0.49321102
++6436	 -6.27301777	 -0.00048072	  0.00029453	  7.27253705	  0.99853144	  0.99922475  0.49321101
++6437	 -6.27301795	 -0.00048065	  0.00029448	  7.27253730	  0.99853167	  0.99922487  0.49321109
++6438	 -6.27301813	 -0.00048057	  0.00029444	  7.27253756	  0.99853190	  0.99922499  0.49321107
++6439	 -6.27301831	 -0.00048050	  0.00029439	  7.27253781	  0.99853213	  0.99922511  0.49321107
++6440	 -6.27301849	 -0.00048042	  0.00029435	  7.27253806	  0.99853235	  0.99922523  0.49321110
++6441	 -6.27301866	 -0.00048035	  0.00029430	  7.27253832	  0.99853258	  0.99922535  0.49321118
++6442	 -6.27301884	 -0.00048027	  0.00029426	  7.27253857	  0.99853281	  0.99922547  0.49321119
++6443	 -6.27301902	 -0.00048020	  0.00029421	  7.27253882	  0.99853304	  0.99922559  0.49321116
++6444	 -6.27301920	 -0.00048012	  0.00029416	  7.27253907	  0.99853327	  0.99922571  0.49321127
++6445	 -6.27301938	 -0.00048005	  0.00029412	  7.27253933	  0.99853349	  0.99922583  0.49321123
++6446	 -6.27301956	 -0.00047998	  0.00029407	  7.27253958	  0.99853372	  0.99922595  0.49321129
++6447	 -6.27301973	 -0.00047990	  0.00029403	  7.27253983	  0.99853395	  0.99922607  0.49321135
++6448	 -6.27301991	 -0.00047983	  0.00029398	  7.27254008	  0.99853418	  0.99922619  0.49321135
++6449	 -6.27302009	 -0.00047975	  0.00029394	  7.27254034	  0.99853440	  0.99922631  0.49321139
++6450	 -6.27302027	 -0.00047968	  0.00029389	  7.27254059	  0.99853463	  0.99922643  0.49321146
++6451	 -6.27302044	 -0.00047960	  0.00029384	  7.27254084	  0.99853486	  0.99922655  0.49321142
++6452	 -6.27302062	 -0.00047953	  0.00029380	  7.27254109	  0.99853508	  0.99922667  0.49321144
++6453	 -6.27302080	 -0.00047946	  0.00029375	  7.27254135	  0.99853531	  0.99922679  0.49321144
++6454	 -6.27302098	 -0.00047938	  0.00029371	  7.27254160	  0.99853554	  0.99922691  0.49321157
++6455	 -6.27302116	 -0.00047931	  0.00029366	  7.27254185	  0.99853577	  0.99922703  0.49321152
++6456	 -6.27302133	 -0.00047923	  0.00029362	  7.27254210	  0.99853599	  0.99922715  0.49321153
++6457	 -6.27302151	 -0.00047916	  0.00029357	  7.27254235	  0.99853622	  0.99922727  0.49321157
++6458	 -6.27302169	 -0.00047908	  0.00029353	  7.27254260	  0.99853645	  0.99922739  0.49321160
++6459	 -6.27302187	 -0.00047901	  0.00029348	  7.27254286	  0.99853667	  0.99922751  0.49321170
++6460	 -6.27302204	 -0.00047894	  0.00029344	  7.27254311	  0.99853690	  0.99922763  0.49321172
++6461	 -6.27302222	 -0.00047886	  0.00029339	  7.27254336	  0.99853712	  0.99922775  0.49321163
++6462	 -6.27302240	 -0.00047879	  0.00029334	  7.27254361	  0.99853735	  0.99922787  0.49321166
++6463	 -6.27302257	 -0.00047871	  0.00029330	  7.27254386	  0.99853758	  0.99922799  0.49321175
++6464	 -6.27302275	 -0.00047864	  0.00029325	  7.27254411	  0.99853780	  0.99922811  0.49321177
++6465	 -6.27302293	 -0.00047857	  0.00029321	  7.27254436	  0.99853803	  0.99922823  0.49321185
++6466	 -6.27302311	 -0.00047849	  0.00029316	  7.27254461	  0.99853826	  0.99922834  0.49321182
++6467	 -6.27302328	 -0.00047842	  0.00029312	  7.27254486	  0.99853848	  0.99922846  0.49321190
++6468	 -6.27302346	 -0.00047834	  0.00029307	  7.27254512	  0.99853871	  0.99922858  0.49321191
++6469	 -6.27302364	 -0.00047827	  0.00029303	  7.27254537	  0.99853893	  0.99922870  0.49321187
++6470	 -6.27302381	 -0.00047820	  0.00029298	  7.27254562	  0.99853916	  0.99922882  0.49321186
++6471	 -6.27302399	 -0.00047812	  0.00029294	  7.27254587	  0.99853939	  0.99922894  0.49321193
++6472	 -6.27302417	 -0.00047805	  0.00029289	  7.27254612	  0.99853961	  0.99922906  0.49321201
++6473	 -6.27302434	 -0.00047797	  0.00029285	  7.27254637	  0.99853984	  0.99922918  0.49321205
++6474	 -6.27302452	 -0.00047790	  0.00029280	  7.27254662	  0.99854006	  0.99922930  0.49321210
++6475	 -6.27302470	 -0.00047783	  0.00029276	  7.27254687	  0.99854029	  0.99922942  0.49321211
++6476	 -6.27302487	 -0.00047775	  0.00029271	  7.27254712	  0.99854051	  0.99922954  0.49321206
++6477	 -6.27302505	 -0.00047768	  0.00029267	  7.27254737	  0.99854074	  0.99922965  0.49321212
++6478	 -6.27302523	 -0.00047761	  0.00029262	  7.27254762	  0.99854096	  0.99922977  0.49321212
++6479	 -6.27302540	 -0.00047753	  0.00029257	  7.27254787	  0.99854119	  0.99922989  0.49321221
++6480	 -6.27302558	 -0.00047746	  0.00029253	  7.27254812	  0.99854141	  0.99923001  0.49321218
++6481	 -6.27302575	 -0.00047739	  0.00029248	  7.27254837	  0.99854164	  0.99923013  0.49321223
++6482	 -6.27302593	 -0.00047731	  0.00029244	  7.27254862	  0.99854186	  0.99923025  0.49321227
++6483	 -6.27302611	 -0.00047724	  0.00029239	  7.27254887	  0.99854209	  0.99923037  0.49321227
++6484	 -6.27302628	 -0.00047716	  0.00029235	  7.27254912	  0.99854231	  0.99923049  0.49321226
++6485	 -6.27302646	 -0.00047709	  0.00029230	  7.27254937	  0.99854254	  0.99923060  0.49321229
++6486	 -6.27302664	 -0.00047702	  0.00029226	  7.27254962	  0.99854276	  0.99923072  0.49321232
++6487	 -6.27302681	 -0.00047694	  0.00029221	  7.27254987	  0.99854299	  0.99923084  0.49321239
++6488	 -6.27302699	 -0.00047687	  0.00029217	  7.27255012	  0.99854321	  0.99923096  0.49321240
++6489	 -6.27302716	 -0.00047680	  0.00029212	  7.27255037	  0.99854344	  0.99923108  0.49321246
++6490	 -6.27302734	 -0.00047672	  0.00029208	  7.27255061	  0.99854366	  0.99923120  0.49321244
++6491	 -6.27302751	 -0.00047665	  0.00029203	  7.27255086	  0.99854388	  0.99923132  0.49321242
++6492	 -6.27302769	 -0.00047658	  0.00029199	  7.27255111	  0.99854411	  0.99923143  0.49321242
++6493	 -6.27302787	 -0.00047650	  0.00029194	  7.27255136	  0.99854433	  0.99923155  0.49321258
++6494	 -6.27302804	 -0.00047643	  0.00029190	  7.27255161	  0.99854456	  0.99923167  0.49321251
++6495	 -6.27302822	 -0.00047636	  0.00029185	  7.27255186	  0.99854478	  0.99923179  0.49321261
++6496	 -6.27302839	 -0.00047628	  0.00029181	  7.27255211	  0.99854501	  0.99923191  0.49321264
++6497	 -6.27302857	 -0.00047621	  0.00029176	  7.27255236	  0.99854523	  0.99923203  0.49321265
++6498	 -6.27302874	 -0.00047614	  0.00029172	  7.27255261	  0.99854545	  0.99923214  0.49321268
++6499	 -6.27302892	 -0.00047606	  0.00029167	  7.27255285	  0.99854568	  0.99923226  0.49321269
++6500	 -6.27302909	 -0.00047599	  0.00029163	  7.27255310	  0.99854590	  0.99923238  0.49321277
++6501	 -6.27302927	 -0.00047592	  0.00029158	  7.27255335	  0.99854612	  0.99923250  0.49321272
++6502	 -6.27302944	 -0.00047584	  0.00029154	  7.27255360	  0.99854635	  0.99923262  0.49321278
++6503	 -6.27302962	 -0.00047577	  0.00029150	  7.27255385	  0.99854657	  0.99923273  0.49321287
++6504	 -6.27302979	 -0.00047570	  0.00029145	  7.27255410	  0.99854679	  0.99923285  0.49321280
++6505	 -6.27302997	 -0.00047562	  0.00029141	  7.27255434	  0.99854702	  0.99923297  0.49321291
++6506	 -6.27303014	 -0.00047555	  0.00029136	  7.27255459	  0.99854724	  0.99923309  0.49321279
++6507	 -6.27303032	 -0.00047548	  0.00029132	  7.27255484	  0.99854746	  0.99923321  0.49321284
++6508	 -6.27303049	 -0.00047541	  0.00029127	  7.27255509	  0.99854769	  0.99923332  0.49321288
++6509	 -6.27303067	 -0.00047533	  0.00029123	  7.27255533	  0.99854791	  0.99923344  0.49321294
++6510	 -6.27303084	 -0.00047526	  0.00029118	  7.27255558	  0.99854813	  0.99923356  0.49321292
++6511	 -6.27303102	 -0.00047519	  0.00029114	  7.27255583	  0.99854836	  0.99923368  0.49321300
++6512	 -6.27303119	 -0.00047511	  0.00029109	  7.27255608	  0.99854858	  0.99923379  0.49321302
++6513	 -6.27303137	 -0.00047504	  0.00029105	  7.27255632	  0.99854880	  0.99923391  0.49321303
++6514	 -6.27303154	 -0.00047497	  0.00029100	  7.27255657	  0.99854903	  0.99923403  0.49321311
++6515	 -6.27303171	 -0.00047490	  0.00029096	  7.27255682	  0.99854925	  0.99923415  0.49321311
++6516	 -6.27303189	 -0.00047482	  0.00029091	  7.27255707	  0.99854947	  0.99923426  0.49321315
++6517	 -6.27303206	 -0.00047475	  0.00029087	  7.27255731	  0.99854969	  0.99923438  0.49321319
++6518	 -6.27303224	 -0.00047468	  0.00029082	  7.27255756	  0.99854992	  0.99923450  0.49321317
++6519	 -6.27303241	 -0.00047460	  0.00029078	  7.27255781	  0.99855014	  0.99923462  0.49321321
++6520	 -6.27303259	 -0.00047453	  0.00029073	  7.27255805	  0.99855036	  0.99923473  0.49321326
++6521	 -6.27303276	 -0.00047446	  0.00029069	  7.27255830	  0.99855058	  0.99923485  0.49321318
++6522	 -6.27303293	 -0.00047439	  0.00029065	  7.27255855	  0.99855081	  0.99923497  0.49321326
++6523	 -6.27303311	 -0.00047431	  0.00029060	  7.27255879	  0.99855103	  0.99923509  0.49321333
++6524	 -6.27303328	 -0.00047424	  0.00029056	  7.27255904	  0.99855125	  0.99923520  0.49321333
++6525	 -6.27303345	 -0.00047417	  0.00029051	  7.27255929	  0.99855147	  0.99923532  0.49321344
++6526	 -6.27303363	 -0.00047410	  0.00029047	  7.27255953	  0.99855169	  0.99923544  0.49321337
++6527	 -6.27303380	 -0.00047402	  0.00029042	  7.27255978	  0.99855192	  0.99923555  0.49321345
++6528	 -6.27303398	 -0.00047395	  0.00029038	  7.27256003	  0.99855214	  0.99923567  0.49321337
++6529	 -6.27303415	 -0.00047388	  0.00029033	  7.27256027	  0.99855236	  0.99923579  0.49321344
++6530	 -6.27303432	 -0.00047380	  0.00029029	  7.27256052	  0.99855258	  0.99923591  0.49321346
++6531	 -6.27303450	 -0.00047373	  0.00029025	  7.27256076	  0.99855280	  0.99923602  0.49321354
++6532	 -6.27303467	 -0.00047366	  0.00029020	  7.27256101	  0.99855302	  0.99923614  0.49321353
++6533	 -6.27303484	 -0.00047359	  0.00029016	  7.27256126	  0.99855325	  0.99923626  0.49321361
++6534	 -6.27303502	 -0.00047351	  0.00029011	  7.27256150	  0.99855347	  0.99923637  0.49321358
++6535	 -6.27303519	 -0.00047344	  0.00029007	  7.27256175	  0.99855369	  0.99923649  0.49321363
++6536	 -6.27303536	 -0.00047337	  0.00029002	  7.27256199	  0.99855391	  0.99923661  0.49321367
++6537	 -6.27303554	 -0.00047330	  0.00028998	  7.27256224	  0.99855413	  0.99923672  0.49321364
++6538	 -6.27303571	 -0.00047323	  0.00028993	  7.27256248	  0.99855435	  0.99923684  0.49321377
++6539	 -6.27303588	 -0.00047315	  0.00028989	  7.27256273	  0.99855457	  0.99923696  0.49321375
++6540	 -6.27303606	 -0.00047308	  0.00028985	  7.27256298	  0.99855479	  0.99923707  0.49321379
++6541	 -6.27303623	 -0.00047301	  0.00028980	  7.27256322	  0.99855501	  0.99923719  0.49321377
++6542	 -6.27303640	 -0.00047294	  0.00028976	  7.27256347	  0.99855524	  0.99923731  0.49321372
++6543	 -6.27303658	 -0.00047286	  0.00028971	  7.27256371	  0.99855546	  0.99923742  0.49321383
++6544	 -6.27303675	 -0.00047279	  0.00028967	  7.27256396	  0.99855568	  0.99923754  0.49321384
++6545	 -6.27303692	 -0.00047272	  0.00028962	  7.27256420	  0.99855590	  0.99923766  0.49321394
++6546	 -6.27303709	 -0.00047265	  0.00028958	  7.27256445	  0.99855612	  0.99923777  0.49321386
++6547	 -6.27303727	 -0.00047258	  0.00028954	  7.27256469	  0.99855634	  0.99923789  0.49321390
++6548	 -6.27303744	 -0.00047250	  0.00028949	  7.27256494	  0.99855656	  0.99923801  0.49321401
++6549	 -6.27303761	 -0.00047243	  0.00028945	  7.27256518	  0.99855678	  0.99923812  0.49321394
++6550	 -6.27303778	 -0.00047236	  0.00028940	  7.27256543	  0.99855700	  0.99923824  0.49321395
++6551	 -6.27303796	 -0.00047229	  0.00028936	  7.27256567	  0.99855722	  0.99923835  0.49321400
++6552	 -6.27303813	 -0.00047221	  0.00028931	  7.27256591	  0.99855744	  0.99923847  0.49321392
++6553	 -6.27303830	 -0.00047214	  0.00028927	  7.27256616	  0.99855766	  0.99923859  0.49321409
++6554	 -6.27303847	 -0.00047207	  0.00028923	  7.27256640	  0.99855788	  0.99923870  0.49321404
++6555	 -6.27303865	 -0.00047200	  0.00028918	  7.27256665	  0.99855810	  0.99923882  0.49321416
++6556	 -6.27303882	 -0.00047193	  0.00028914	  7.27256689	  0.99855832	  0.99923893  0.49321409
++6557	 -6.27303899	 -0.00047185	  0.00028909	  7.27256714	  0.99855854	  0.99923905  0.49321418
++6558	 -6.27303916	 -0.00047178	  0.00028905	  7.27256738	  0.99855876	  0.99923917  0.49321418
++6559	 -6.27303933	 -0.00047171	  0.00028901	  7.27256762	  0.99855898	  0.99923928  0.49321424
++6560	 -6.27303951	 -0.00047164	  0.00028896	  7.27256787	  0.99855920	  0.99923940  0.49321434
++6561	 -6.27303968	 -0.00047157	  0.00028892	  7.27256811	  0.99855942	  0.99923951  0.49321431
++6562	 -6.27303985	 -0.00047150	  0.00028887	  7.27256835	  0.99855964	  0.99923963  0.49321429
++6563	 -6.27304002	 -0.00047142	  0.00028883	  7.27256860	  0.99855986	  0.99923975  0.49321428
++6564	 -6.27304019	 -0.00047135	  0.00028879	  7.27256884	  0.99856008	  0.99923986  0.49321434
++6565	 -6.27304037	 -0.00047128	  0.00028874	  7.27256909	  0.99856030	  0.99923998  0.49321435
++6566	 -6.27304054	 -0.00047121	  0.00028870	  7.27256933	  0.99856052	  0.99924009  0.49321437
++6567	 -6.27304071	 -0.00047114	  0.00028865	  7.27256957	  0.99856073	  0.99924021  0.49321446
++6568	 -6.27304088	 -0.00047106	  0.00028861	  7.27256982	  0.99856095	  0.99924032  0.49321442
++6569	 -6.27304105	 -0.00047099	  0.00028857	  7.27257006	  0.99856117	  0.99924044  0.49321442
++6570	 -6.27304122	 -0.00047092	  0.00028852	  7.27257030	  0.99856139	  0.99924056  0.49321451
++6571	 -6.27304139	 -0.00047085	  0.00028848	  7.27257054	  0.99856161	  0.99924067  0.49321455
++6572	 -6.27304157	 -0.00047078	  0.00028843	  7.27257079	  0.99856183	  0.99924079  0.49321455
++6573	 -6.27304174	 -0.00047071	  0.00028839	  7.27257103	  0.99856205	  0.99924090  0.49321459
++6574	 -6.27304191	 -0.00047064	  0.00028835	  7.27257127	  0.99856227	  0.99924102  0.49321464
++6575	 -6.27304208	 -0.00047056	  0.00028830	  7.27257152	  0.99856249	  0.99924113  0.49321460
++6576	 -6.27304225	 -0.00047049	  0.00028826	  7.27257176	  0.99856270	  0.99924125  0.49321463
++6577	 -6.27304242	 -0.00047042	  0.00028822	  7.27257200	  0.99856292	  0.99924136  0.49321476
++6578	 -6.27304259	 -0.00047035	  0.00028817	  7.27257224	  0.99856314	  0.99924148  0.49321475
++6579	 -6.27304276	 -0.00047028	  0.00028813	  7.27257249	  0.99856336	  0.99924159  0.49321471
++6580	 -6.27304294	 -0.00047021	  0.00028808	  7.27257273	  0.99856358	  0.99924171  0.49321475
++6581	 -6.27304311	 -0.00047013	  0.00028804	  7.27257297	  0.99856380	  0.99924183  0.49321476
++6582	 -6.27304328	 -0.00047006	  0.00028800	  7.27257321	  0.99856401	  0.99924194  0.49321484
++6583	 -6.27304345	 -0.00046999	  0.00028795	  7.27257346	  0.99856423	  0.99924206  0.49321477
++6584	 -6.27304362	 -0.00046992	  0.00028791	  7.27257370	  0.99856445	  0.99924217  0.49321483
++6585	 -6.27304379	 -0.00046985	  0.00028787	  7.27257394	  0.99856467	  0.99924229  0.49321495
++6586	 -6.27304396	 -0.00046978	  0.00028782	  7.27257418	  0.99856489	  0.99924240  0.49321491
++6587	 -6.27304413	 -0.00046971	  0.00028778	  7.27257442	  0.99856510	  0.99924252  0.49321493
++6588	 -6.27304430	 -0.00046964	  0.00028773	  7.27257467	  0.99856532	  0.99924263  0.49321498
++6589	 -6.27304447	 -0.00046956	  0.00028769	  7.27257491	  0.99856554	  0.99924275  0.49321496
++6590	 -6.27304464	 -0.00046949	  0.00028765	  7.27257515	  0.99856576	  0.99924286  0.49321502
++6591	 -6.27304481	 -0.00046942	  0.00028760	  7.27257539	  0.99856597	  0.99924298  0.49321503
++6592	 -6.27304498	 -0.00046935	  0.00028756	  7.27257563	  0.99856619	  0.99924309  0.49321507
++6593	 -6.27304515	 -0.00046928	  0.00028752	  7.27257587	  0.99856641	  0.99924320  0.49321515
++6594	 -6.27304532	 -0.00046921	  0.00028747	  7.27257611	  0.99856663	  0.99924332  0.49321508
++6595	 -6.27304549	 -0.00046914	  0.00028743	  7.27257636	  0.99856684	  0.99924343  0.49321514
++6596	 -6.27304566	 -0.00046907	  0.00028738	  7.27257660	  0.99856706	  0.99924355  0.49321526
++6597	 -6.27304583	 -0.00046900	  0.00028734	  7.27257684	  0.99856728	  0.99924366  0.49321521
++6598	 -6.27304600	 -0.00046892	  0.00028730	  7.27257708	  0.99856750	  0.99924378  0.49321521
++6599	 -6.27304617	 -0.00046885	  0.00028725	  7.27257732	  0.99856771	  0.99924389  0.49321523
++6600	 -6.27304634	 -0.00046878	  0.00028721	  7.27257756	  0.99856793	  0.99924401  0.49321526
++6601	 -6.27304651	 -0.00046871	  0.00028717	  7.27257780	  0.99856815	  0.99924412  0.49321530
++6602	 -6.27304668	 -0.00046864	  0.00028712	  7.27257804	  0.99856836	  0.99924424  0.49321535
++6603	 -6.27304685	 -0.00046857	  0.00028708	  7.27257828	  0.99856858	  0.99924435  0.49321541
++6604	 -6.27304702	 -0.00046850	  0.00028704	  7.27257852	  0.99856880	  0.99924446  0.49321529
++6605	 -6.27304719	 -0.00046843	  0.00028699	  7.27257876	  0.99856901	  0.99924458  0.49321541
++6606	 -6.27304736	 -0.00046836	  0.00028695	  7.27257901	  0.99856923	  0.99924469  0.49321535
++6607	 -6.27304753	 -0.00046829	  0.00028691	  7.27257925	  0.99856945	  0.99924481  0.49321543
++6608	 -6.27304770	 -0.00046821	  0.00028686	  7.27257949	  0.99856966	  0.99924492  0.49321548
++6609	 -6.27304787	 -0.00046814	  0.00028682	  7.27257973	  0.99856988	  0.99924504  0.49321551
++6610	 -6.27304804	 -0.00046807	  0.00028678	  7.27257997	  0.99857010	  0.99924515  0.49321545
++6611	 -6.27304821	 -0.00046800	  0.00028673	  7.27258021	  0.99857031	  0.99924526  0.49321554
++6612	 -6.27304838	 -0.00046793	  0.00028669	  7.27258045	  0.99857053	  0.99924538  0.49321557
++6613	 -6.27304855	 -0.00046786	  0.00028665	  7.27258069	  0.99857074	  0.99924549  0.49321561
++6614	 -6.27304872	 -0.00046779	  0.00028660	  7.27258093	  0.99857096	  0.99924561  0.49321567
++6615	 -6.27304889	 -0.00046772	  0.00028656	  7.27258117	  0.99857118	  0.99924572  0.49321567
++6616	 -6.27304906	 -0.00046765	  0.00028652	  7.27258141	  0.99857139	  0.99924583  0.49321571
++6617	 -6.27304922	 -0.00046758	  0.00028647	  7.27258165	  0.99857161	  0.99924595  0.49321566
++6618	 -6.27304939	 -0.00046751	  0.00028643	  7.27258189	  0.99857182	  0.99924606  0.49321576
++6619	 -6.27304956	 -0.00046744	  0.00028639	  7.27258213	  0.99857204	  0.99924618  0.49321567
++6620	 -6.27304973	 -0.00046737	  0.00028634	  7.27258236	  0.99857226	  0.99924629  0.49321585
++6621	 -6.27304990	 -0.00046730	  0.00028630	  7.27258260	  0.99857247	  0.99924640  0.49321576
++6622	 -6.27305007	 -0.00046723	  0.00028626	  7.27258284	  0.99857269	  0.99924652  0.49321581
++6623	 -6.27305024	 -0.00046715	  0.00028621	  7.27258308	  0.99857290	  0.99924663  0.49321580
++6624	 -6.27305041	 -0.00046708	  0.00028617	  7.27258332	  0.99857312	  0.99924675  0.49321590
++6625	 -6.27305057	 -0.00046701	  0.00028613	  7.27258356	  0.99857333	  0.99924686  0.49321582
++6626	 -6.27305074	 -0.00046694	  0.00028608	  7.27258380	  0.99857355	  0.99924697  0.49321587
++6627	 -6.27305091	 -0.00046687	  0.00028604	  7.27258404	  0.99857376	  0.99924709  0.49321595
++6628	 -6.27305108	 -0.00046680	  0.00028600	  7.27258428	  0.99857398	  0.99924720  0.49321595
++6629	 -6.27305125	 -0.00046673	  0.00028595	  7.27258452	  0.99857419	  0.99924731  0.49321600
++6630	 -6.27305142	 -0.00046666	  0.00028591	  7.27258476	  0.99857441	  0.99924743  0.49321598
++6631	 -6.27305159	 -0.00046659	  0.00028587	  7.27258499	  0.99857462	  0.99924754  0.49321613
++6632	 -6.27305175	 -0.00046652	  0.00028582	  7.27258523	  0.99857484	  0.99924765  0.49321611
++6633	 -6.27305192	 -0.00046645	  0.00028578	  7.27258547	  0.99857505	  0.99924777  0.49321600
++6634	 -6.27305209	 -0.00046638	  0.00028574	  7.27258571	  0.99857527	  0.99924788  0.49321621
++6635	 -6.27305226	 -0.00046631	  0.00028570	  7.27258595	  0.99857548	  0.99924799  0.49321615
++6636	 -6.27305243	 -0.00046624	  0.00028565	  7.27258619	  0.99857570	  0.99924811  0.49321620
++6637	 -6.27305259	 -0.00046617	  0.00028561	  7.27258642	  0.99857591	  0.99924822  0.49321625
++6638	 -6.27305276	 -0.00046610	  0.00028557	  7.27258666	  0.99857613	  0.99924833  0.49321621
++6639	 -6.27305293	 -0.00046603	  0.00028552	  7.27258690	  0.99857634	  0.99924845  0.49321630
++6640	 -6.27305310	 -0.00046596	  0.00028548	  7.27258714	  0.99857656	  0.99924856  0.49321623
++6641	 -6.27305327	 -0.00046589	  0.00028544	  7.27258738	  0.99857677	  0.99924867  0.49321633
++6642	 -6.27305343	 -0.00046582	  0.00028539	  7.27258761	  0.99857698	  0.99924879  0.49321637
++6643	 -6.27305360	 -0.00046575	  0.00028535	  7.27258785	  0.99857720	  0.99924890  0.49321640
++6644	 -6.27305377	 -0.00046568	  0.00028531	  7.27258809	  0.99857741	  0.99924901  0.49321641
++6645	 -6.27305394	 -0.00046561	  0.00028527	  7.27258833	  0.99857763	  0.99924913  0.49321644
++6646	 -6.27305410	 -0.00046554	  0.00028522	  7.27258857	  0.99857784	  0.99924924  0.49321640
++6647	 -6.27305427	 -0.00046547	  0.00028518	  7.27258880	  0.99857805	  0.99924935  0.49321644
++6648	 -6.27305444	 -0.00046540	  0.00028514	  7.27258904	  0.99857827	  0.99924946  0.49321647
++6649	 -6.27305461	 -0.00046533	  0.00028509	  7.27258928	  0.99857848	  0.99924958  0.49321655
++6650	 -6.27305477	 -0.00046526	  0.00028505	  7.27258952	  0.99857870	  0.99924969  0.49321652
++6651	 -6.27305494	 -0.00046519	  0.00028501	  7.27258975	  0.99857891	  0.99924980  0.49321651
++6652	 -6.27305511	 -0.00046512	  0.00028497	  7.27258999	  0.99857912	  0.99924992  0.49321656
++6653	 -6.27305528	 -0.00046505	  0.00028492	  7.27259023	  0.99857934	  0.99925003  0.49321656
++6654	 -6.27305544	 -0.00046498	  0.00028488	  7.27259046	  0.99857955	  0.99925014  0.49321665
++6655	 -6.27305561	 -0.00046491	  0.00028484	  7.27259070	  0.99857976	  0.99925025  0.49321668
++6656	 -6.27305578	 -0.00046484	  0.00028479	  7.27259094	  0.99857998	  0.99925037  0.49321665
++6657	 -6.27305594	 -0.00046477	  0.00028475	  7.27259117	  0.99858019	  0.99925048  0.49321672
++6658	 -6.27305611	 -0.00046470	  0.00028471	  7.27259141	  0.99858040	  0.99925059  0.49321675
++6659	 -6.27305628	 -0.00046463	  0.00028467	  7.27259165	  0.99858062	  0.99925070  0.49321677
++6660	 -6.27305645	 -0.00046456	  0.00028462	  7.27259188	  0.99858083	  0.99925082  0.49321675
++6661	 -6.27305661	 -0.00046449	  0.00028458	  7.27259212	  0.99858104	  0.99925093  0.49321677
++6662	 -6.27305678	 -0.00046442	  0.00028454	  7.27259236	  0.99858126	  0.99925104  0.49321687
++6663	 -6.27305695	 -0.00046435	  0.00028449	  7.27259259	  0.99858147	  0.99925115  0.49321692
++6664	 -6.27305711	 -0.00046428	  0.00028445	  7.27259283	  0.99858168	  0.99925127  0.49321690
++6665	 -6.27305728	 -0.00046421	  0.00028441	  7.27259307	  0.99858189	  0.99925138  0.49321690
++6666	 -6.27305745	 -0.00046414	  0.00028437	  7.27259330	  0.99858211	  0.99925149  0.49321703
++6667	 -6.27305761	 -0.00046407	  0.00028432	  7.27259354	  0.99858232	  0.99925160  0.49321695
++6668	 -6.27305778	 -0.00046400	  0.00028428	  7.27259377	  0.99858253	  0.99925171  0.49321702
++6669	 -6.27305795	 -0.00046393	  0.00028424	  7.27259401	  0.99858275	  0.99925183  0.49321702
++6670	 -6.27305811	 -0.00046386	  0.00028420	  7.27259425	  0.99858296	  0.99925194  0.49321707
++6671	 -6.27305828	 -0.00046380	  0.00028415	  7.27259448	  0.99858317	  0.99925205  0.49321711
++6672	 -6.27305844	 -0.00046373	  0.00028411	  7.27259472	  0.99858338	  0.99925216  0.49321702
++6673	 -6.27305861	 -0.00046366	  0.00028407	  7.27259495	  0.99858359	  0.99925227  0.49321714
++6674	 -6.27305878	 -0.00046359	  0.00028403	  7.27259519	  0.99858381	  0.99925239  0.49321714
++6675	 -6.27305894	 -0.00046352	  0.00028398	  7.27259543	  0.99858402	  0.99925250  0.49321712
++6676	 -6.27305911	 -0.00046345	  0.00028394	  7.27259566	  0.99858423	  0.99925261  0.49321724
++6677	 -6.27305927	 -0.00046338	  0.00028390	  7.27259590	  0.99858444	  0.99925272  0.49321723
++6678	 -6.27305944	 -0.00046331	  0.00028386	  7.27259613	  0.99858465	  0.99925283  0.49321718
++6679	 -6.27305961	 -0.00046324	  0.00028381	  7.27259637	  0.99858487	  0.99925295  0.49321725
++6680	 -6.27305977	 -0.00046317	  0.00028377	  7.27259660	  0.99858508	  0.99925306  0.49321729
++6681	 -6.27305994	 -0.00046310	  0.00028373	  7.27259684	  0.99858529	  0.99925317  0.49321728
++6682	 -6.27306010	 -0.00046303	  0.00028369	  7.27259707	  0.99858550	  0.99925328  0.49321728
++6683	 -6.27306027	 -0.00046296	  0.00028364	  7.27259731	  0.99858571	  0.99925339  0.49321738
++6684	 -6.27306044	 -0.00046289	  0.00028360	  7.27259754	  0.99858593	  0.99925351  0.49321730
++6685	 -6.27306060	 -0.00046282	  0.00028356	  7.27259778	  0.99858614	  0.99925362  0.49321736
++6686	 -6.27306077	 -0.00046276	  0.00028352	  7.27259801	  0.99858635	  0.99925373  0.49321743
++6687	 -6.27306093	 -0.00046269	  0.00028347	  7.27259825	  0.99858656	  0.99925384  0.49321740
++6688	 -6.27306110	 -0.00046262	  0.00028343	  7.27259848	  0.99858677	  0.99925395  0.49321757
++6689	 -6.27306126	 -0.00046255	  0.00028339	  7.27259872	  0.99858698	  0.99925406  0.49321754
++6690	 -6.27306143	 -0.00046248	  0.00028335	  7.27259895	  0.99858719	  0.99925417  0.49321760
++6691	 -6.27306159	 -0.00046241	  0.00028330	  7.27259918	  0.99858740	  0.99925429  0.49321757
++6692	 -6.27306176	 -0.00046234	  0.00028326	  7.27259942	  0.99858762	  0.99925440  0.49321761
++6693	 -6.27306192	 -0.00046227	  0.00028322	  7.27259965	  0.99858783	  0.99925451  0.49321757
++6694	 -6.27306209	 -0.00046220	  0.00028318	  7.27259989	  0.99858804	  0.99925462  0.49321764
++6695	 -6.27306225	 -0.00046213	  0.00028314	  7.27260012	  0.99858825	  0.99925473  0.49321769
++6696	 -6.27306242	 -0.00046206	  0.00028309	  7.27260036	  0.99858846	  0.99925484  0.49321767
++6697	 -6.27306259	 -0.00046200	  0.00028305	  7.27260059	  0.99858867	  0.99925495  0.49321773
++6698	 -6.27306275	 -0.00046193	  0.00028301	  7.27260082	  0.99858888	  0.99925506  0.49321772
++6699	 -6.27306292	 -0.00046186	  0.00028297	  7.27260106	  0.99858909	  0.99925518  0.49321771
++6700	 -6.27306308	 -0.00046179	  0.00028292	  7.27260129	  0.99858930	  0.99925529  0.49321779
++6701	 -6.27306324	 -0.00046172	  0.00028288	  7.27260152	  0.99858951	  0.99925540  0.49321779
++6702	 -6.27306341	 -0.00046165	  0.00028284	  7.27260176	  0.99858972	  0.99925551  0.49321780
++6703	 -6.27306357	 -0.00046158	  0.00028280	  7.27260199	  0.99858993	  0.99925562  0.49321791
++6704	 -6.27306374	 -0.00046151	  0.00028275	  7.27260223	  0.99859014	  0.99925573  0.49321791
++6705	 -6.27306390	 -0.00046144	  0.00028271	  7.27260246	  0.99859035	  0.99925584  0.49321788
++6706	 -6.27306407	 -0.00046138	  0.00028267	  7.27260269	  0.99859056	  0.99925595  0.49321791
++6707	 -6.27306423	 -0.00046131	  0.00028263	  7.27260293	  0.99859077	  0.99925606  0.49321799
++6708	 -6.27306440	 -0.00046124	  0.00028259	  7.27260316	  0.99859098	  0.99925618  0.49321795
++6709	 -6.27306456	 -0.00046117	  0.00028254	  7.27260339	  0.99859119	  0.99925629  0.49321797
++6710	 -6.27306473	 -0.00046110	  0.00028250	  7.27260363	  0.99859140	  0.99925640  0.49321800
++6711	 -6.27306489	 -0.00046103	  0.00028246	  7.27260386	  0.99859161	  0.99925651  0.49321804
++6712	 -6.27306505	 -0.00046096	  0.00028242	  7.27260409	  0.99859182	  0.99925662  0.49321800
++6713	 -6.27306522	 -0.00046090	  0.00028238	  7.27260432	  0.99859203	  0.99925673  0.49321804
++6714	 -6.27306538	 -0.00046083	  0.00028233	  7.27260456	  0.99859224	  0.99925684  0.49321806
++6715	 -6.27306555	 -0.00046076	  0.00028229	  7.27260479	  0.99859245	  0.99925695  0.49321814
++6716	 -6.27306571	 -0.00046069	  0.00028225	  7.27260502	  0.99859266	  0.99925706  0.49321818
++6717	 -6.27306588	 -0.00046062	  0.00028221	  7.27260525	  0.99859287	  0.99925717  0.49321811
++6718	 -6.27306604	 -0.00046055	  0.00028217	  7.27260549	  0.99859308	  0.99925728  0.49321821
++6719	 -6.27306620	 -0.00046048	  0.00028212	  7.27260572	  0.99859329	  0.99925739  0.49321828
++6720	 -6.27306637	 -0.00046042	  0.00028208	  7.27260595	  0.99859350	  0.99925750  0.49321829
++6721	 -6.27306653	 -0.00046035	  0.00028204	  7.27260618	  0.99859371	  0.99925761  0.49321826
++6722	 -6.27306670	 -0.00046028	  0.00028200	  7.27260642	  0.99859392	  0.99925772  0.49321833
++6723	 -6.27306686	 -0.00046021	  0.00028196	  7.27260665	  0.99859413	  0.99925783  0.49321833
++6724	 -6.27306702	 -0.00046014	  0.00028191	  7.27260688	  0.99859434	  0.99925794  0.49321830
++6725	 -6.27306719	 -0.00046007	  0.00028187	  7.27260711	  0.99859455	  0.99925805  0.49321842
++6726	 -6.27306735	 -0.00046000	  0.00028183	  7.27260735	  0.99859475	  0.99925817  0.49321838
++6727	 -6.27306751	 -0.00045994	  0.00028179	  7.27260758	  0.99859496	  0.99925828  0.49321849
++6728	 -6.27306768	 -0.00045987	  0.00028175	  7.27260781	  0.99859517	  0.99925839  0.49321848
++6729	 -6.27306784	 -0.00045980	  0.00028170	  7.27260804	  0.99859538	  0.99925850  0.49321848
++6730	 -6.27306800	 -0.00045973	  0.00028166	  7.27260827	  0.99859559	  0.99925861  0.49321852
++6731	 -6.27306817	 -0.00045966	  0.00028162	  7.27260850	  0.99859580	  0.99925872  0.49321855
++6732	 -6.27306833	 -0.00045959	  0.00028158	  7.27260874	  0.99859601	  0.99925883  0.49321849
++6733	 -6.27306849	 -0.00045953	  0.00028154	  7.27260897	  0.99859622	  0.99925894  0.49321861
++6734	 -6.27306866	 -0.00045946	  0.00028150	  7.27260920	  0.99859642	  0.99925905  0.49321858
++6735	 -6.27306882	 -0.00045939	  0.00028145	  7.27260943	  0.99859663	  0.99925916  0.49321869
++6736	 -6.27306898	 -0.00045932	  0.00028141	  7.27260966	  0.99859684	  0.99925927  0.49321873
++6737	 -6.27306915	 -0.00045925	  0.00028137	  7.27260989	  0.99859705	  0.99925938  0.49321868
++6738	 -6.27306931	 -0.00045919	  0.00028133	  7.27261012	  0.99859726	  0.99925949  0.49321872
++6739	 -6.27306947	 -0.00045912	  0.00028129	  7.27261035	  0.99859746	  0.99925960  0.49321879
++6740	 -6.27306964	 -0.00045905	  0.00028124	  7.27261059	  0.99859767	  0.99925971  0.49321873
++6741	 -6.27306980	 -0.00045898	  0.00028120	  7.27261082	  0.99859788	  0.99925982  0.49321881
++6742	 -6.27306996	 -0.00045891	  0.00028116	  7.27261105	  0.99859809	  0.99925993  0.49321869
++6743	 -6.27307012	 -0.00045885	  0.00028112	  7.27261128	  0.99859830	  0.99926003  0.49321889
++6744	 -6.27307029	 -0.00045878	  0.00028108	  7.27261151	  0.99859850	  0.99926014  0.49321883
++6745	 -6.27307045	 -0.00045871	  0.00028104	  7.27261174	  0.99859871	  0.99926025  0.49321889
++6746	 -6.27307061	 -0.00045864	  0.00028099	  7.27261197	  0.99859892	  0.99926036  0.49321886
++6747	 -6.27307078	 -0.00045857	  0.00028095	  7.27261220	  0.99859913	  0.99926047  0.49321894
++6748	 -6.27307094	 -0.00045851	  0.00028091	  7.27261243	  0.99859934	  0.99926058  0.49321894
++6749	 -6.27307110	 -0.00045844	  0.00028087	  7.27261266	  0.99859954	  0.99926069  0.49321891
++6750	 -6.27307126	 -0.00045837	  0.00028083	  7.27261289	  0.99859975	  0.99926080  0.49321907
++6751	 -6.27307142	 -0.00045830	  0.00028079	  7.27261312	  0.99859996	  0.99926091  0.49321892
++6752	 -6.27307159	 -0.00045823	  0.00028074	  7.27261335	  0.99860016	  0.99926102  0.49321904
++6753	 -6.27307175	 -0.00045817	  0.00028070	  7.27261358	  0.99860037	  0.99926113  0.49321907
++6754	 -6.27307191	 -0.00045810	  0.00028066	  7.27261381	  0.99860058	  0.99926124  0.49321903
++6755	 -6.27307207	 -0.00045803	  0.00028062	  7.27261404	  0.99860079	  0.99926135  0.49321912
++6756	 -6.27307224	 -0.00045796	  0.00028058	  7.27261427	  0.99860099	  0.99926146  0.49321912
++6757	 -6.27307240	 -0.00045790	  0.00028054	  7.27261450	  0.99860120	  0.99926157  0.49321912
++6758	 -6.27307256	 -0.00045783	  0.00028050	  7.27261473	  0.99860141	  0.99926168  0.49321924
++6759	 -6.27307272	 -0.00045776	  0.00028045	  7.27261496	  0.99860161	  0.99926179  0.49321924
++6760	 -6.27307288	 -0.00045769	  0.00028041	  7.27261519	  0.99860182	  0.99926190  0.49321921
++6761	 -6.27307305	 -0.00045762	  0.00028037	  7.27261542	  0.99860203	  0.99926200  0.49321927
++6762	 -6.27307321	 -0.00045756	  0.00028033	  7.27261565	  0.99860223	  0.99926211  0.49321925
++6763	 -6.27307337	 -0.00045749	  0.00028029	  7.27261588	  0.99860244	  0.99926222  0.49321926
++6764	 -6.27307353	 -0.00045742	  0.00028025	  7.27261611	  0.99860265	  0.99926233  0.49321932
++6765	 -6.27307369	 -0.00045735	  0.00028021	  7.27261634	  0.99860285	  0.99926244  0.49321935
++6766	 -6.27307386	 -0.00045729	  0.00028016	  7.27261657	  0.99860306	  0.99926255  0.49321931
++6767	 -6.27307402	 -0.00045722	  0.00028012	  7.27261680	  0.99860327	  0.99926266  0.49321940
++6768	 -6.27307418	 -0.00045715	  0.00028008	  7.27261703	  0.99860347	  0.99926277  0.49321940
++6769	 -6.27307434	 -0.00045708	  0.00028004	  7.27261726	  0.99860368	  0.99926288  0.49321938
++6770	 -6.27307450	 -0.00045702	  0.00028000	  7.27261749	  0.99860389	  0.99926299  0.49321955
++6771	 -6.27307466	 -0.00045695	  0.00027996	  7.27261771	  0.99860409	  0.99926309  0.49321946
++6772	 -6.27307482	 -0.00045688	  0.00027992	  7.27261794	  0.99860430	  0.99926320  0.49321952
++6773	 -6.27307499	 -0.00045681	  0.00027987	  7.27261817	  0.99860450	  0.99926331  0.49321956
++6774	 -6.27307515	 -0.00045675	  0.00027983	  7.27261840	  0.99860471	  0.99926342  0.49321950
++6775	 -6.27307531	 -0.00045668	  0.00027979	  7.27261863	  0.99860492	  0.99926353  0.49321959
++6776	 -6.27307547	 -0.00045661	  0.00027975	  7.27261886	  0.99860512	  0.99926364  0.49321954
++6777	 -6.27307563	 -0.00045654	  0.00027971	  7.27261909	  0.99860533	  0.99926375  0.49321964
++6778	 -6.27307579	 -0.00045648	  0.00027967	  7.27261931	  0.99860553	  0.99926385  0.49321960
++6779	 -6.27307595	 -0.00045641	  0.00027963	  7.27261954	  0.99860574	  0.99926396  0.49321972
++6780	 -6.27307611	 -0.00045634	  0.00027959	  7.27261977	  0.99860595	  0.99926407  0.49321973
++6781	 -6.27307628	 -0.00045628	  0.00027954	  7.27262000	  0.99860615	  0.99926418  0.49321968
++6782	 -6.27307644	 -0.00045621	  0.00027950	  7.27262023	  0.99860636	  0.99926429  0.49321967
++6783	 -6.27307660	 -0.00045614	  0.00027946	  7.27262046	  0.99860656	  0.99926440  0.49321972
++6784	 -6.27307676	 -0.00045607	  0.00027942	  7.27262068	  0.99860677	  0.99926451  0.49321981
++6785	 -6.27307692	 -0.00045601	  0.00027938	  7.27262091	  0.99860697	  0.99926461  0.49321979
++6786	 -6.27307708	 -0.00045594	  0.00027934	  7.27262114	  0.99860718	  0.99926472  0.49321986
++6787	 -6.27307724	 -0.00045587	  0.00027930	  7.27262137	  0.99860738	  0.99926483  0.49321988
++6788	 -6.27307740	 -0.00045581	  0.00027926	  7.27262160	  0.99860759	  0.99926494  0.49321990
++6789	 -6.27307756	 -0.00045574	  0.00027921	  7.27262182	  0.99860779	  0.99926505  0.49321998
++6790	 -6.27307772	 -0.00045567	  0.00027917	  7.27262205	  0.99860800	  0.99926516  0.49322003
++6791	 -6.27307788	 -0.00045560	  0.00027913	  7.27262228	  0.99860820	  0.99926526  0.49321994
++6792	 -6.27307804	 -0.00045554	  0.00027909	  7.27262251	  0.99860841	  0.99926537  0.49322002
++6793	 -6.27307820	 -0.00045547	  0.00027905	  7.27262273	  0.99860861	  0.99926548  0.49321999
++6794	 -6.27307836	 -0.00045540	  0.00027901	  7.27262296	  0.99860882	  0.99926559  0.49322005
++6795	 -6.27307852	 -0.00045534	  0.00027897	  7.27262319	  0.99860902	  0.99926570  0.49322007
++6796	 -6.27307868	 -0.00045527	  0.00027893	  7.27262342	  0.99860923	  0.99926580  0.49322002
++6797	 -6.27307884	 -0.00045520	  0.00027889	  7.27262364	  0.99860943	  0.99926591  0.49322013
++6798	 -6.27307900	 -0.00045514	  0.00027884	  7.27262387	  0.99860964	  0.99926602  0.49322009
++6799	 -6.27307916	 -0.00045507	  0.00027880	  7.27262410	  0.99860984	  0.99926613  0.49322010
++6800	 -6.27307932	 -0.00045500	  0.00027876	  7.27262432	  0.99861004	  0.99926624  0.49322020
++6801	 -6.27307949	 -0.00045493	  0.00027872	  7.27262455	  0.99861025	  0.99926634  0.49322020
++6802	 -6.27307964	 -0.00045487	  0.00027868	  7.27262478	  0.99861045	  0.99926645  0.49322021
++6803	 -6.27307980	 -0.00045480	  0.00027864	  7.27262500	  0.99861066	  0.99926656  0.49322031
++6804	 -6.27307996	 -0.00045473	  0.00027860	  7.27262523	  0.99861086	  0.99926667  0.49322031
++6805	 -6.27308012	 -0.00045467	  0.00027856	  7.27262546	  0.99861107	  0.99926677  0.49322033
++6806	 -6.27308028	 -0.00045460	  0.00027852	  7.27262568	  0.99861127	  0.99926688  0.49322029
++6807	 -6.27308044	 -0.00045453	  0.00027848	  7.27262591	  0.99861147	  0.99926699  0.49322034
++6808	 -6.27308060	 -0.00045447	  0.00027844	  7.27262614	  0.99861168	  0.99926710  0.49322033
++6809	 -6.27308076	 -0.00045440	  0.00027839	  7.27262636	  0.99861188	  0.99926721  0.49322036
++6810	 -6.27308092	 -0.00045433	  0.00027835	  7.27262659	  0.99861209	  0.99926731  0.49322047
++6811	 -6.27308108	 -0.00045427	  0.00027831	  7.27262682	  0.99861229	  0.99926742  0.49322045
++6812	 -6.27308124	 -0.00045420	  0.00027827	  7.27262704	  0.99861249	  0.99926753  0.49322049
++6813	 -6.27308140	 -0.00045413	  0.00027823	  7.27262727	  0.99861270	  0.99926764  0.49322055
++6814	 -6.27308156	 -0.00045407	  0.00027819	  7.27262749	  0.99861290	  0.99926774  0.49322054
++6815	 -6.27308172	 -0.00045400	  0.00027815	  7.27262772	  0.99861310	  0.99926785  0.49322056
++6816	 -6.27308188	 -0.00045393	  0.00027811	  7.27262795	  0.99861331	  0.99926796  0.49322059
++6817	 -6.27308204	 -0.00045387	  0.00027807	  7.27262817	  0.99861351	  0.99926807  0.49322050
++6818	 -6.27308220	 -0.00045380	  0.00027803	  7.27262840	  0.99861371	  0.99926817  0.49322063
++6819	 -6.27308236	 -0.00045373	  0.00027799	  7.27262862	  0.99861392	  0.99926828  0.49322066
++6820	 -6.27308252	 -0.00045367	  0.00027795	  7.27262885	  0.99861412	  0.99926839  0.49322063
++6821	 -6.27308268	 -0.00045360	  0.00027790	  7.27262907	  0.99861432	  0.99926849  0.49322070
++6822	 -6.27308284	 -0.00045353	  0.00027786	  7.27262930	  0.99861453	  0.99926860  0.49322066
++6823	 -6.27308299	 -0.00045347	  0.00027782	  7.27262953	  0.99861473	  0.99926871  0.49322073
++6824	 -6.27308315	 -0.00045340	  0.00027778	  7.27262975	  0.99861493	  0.99926882  0.49322074
++6825	 -6.27308331	 -0.00045334	  0.00027774	  7.27262998	  0.99861514	  0.99926892  0.49322073
++6826	 -6.27308347	 -0.00045327	  0.00027770	  7.27263020	  0.99861534	  0.99926903  0.49322080
++6827	 -6.27308363	 -0.00045320	  0.00027766	  7.27263043	  0.99861554	  0.99926914  0.49322087
++6828	 -6.27308379	 -0.00045314	  0.00027762	  7.27263065	  0.99861574	  0.99926924  0.49322079
++6829	 -6.27308395	 -0.00045307	  0.00027758	  7.27263088	  0.99861595	  0.99926935  0.49322088
++6830	 -6.27308411	 -0.00045300	  0.00027754	  7.27263110	  0.99861615	  0.99926946  0.49322089
++6831	 -6.27308426	 -0.00045294	  0.00027750	  7.27263133	  0.99861635	  0.99926956  0.49322091
++6832	 -6.27308442	 -0.00045287	  0.00027746	  7.27263155	  0.99861655	  0.99926967  0.49322099
++6833	 -6.27308458	 -0.00045281	  0.00027742	  7.27263178	  0.99861676	  0.99926978  0.49322093
++6834	 -6.27308474	 -0.00045274	  0.00027738	  7.27263200	  0.99861696	  0.99926989  0.49322094
++6835	 -6.27308490	 -0.00045267	  0.00027734	  7.27263223	  0.99861716	  0.99926999  0.49322104
++6836	 -6.27308506	 -0.00045261	  0.00027729	  7.27263245	  0.99861736	  0.99927010  0.49322101
++6837	 -6.27308522	 -0.00045254	  0.00027725	  7.27263268	  0.99861757	  0.99927021  0.49322100
++6838	 -6.27308537	 -0.00045247	  0.00027721	  7.27263290	  0.99861777	  0.99927031  0.49322109
++6839	 -6.27308553	 -0.00045241	  0.00027717	  7.27263312	  0.99861797	  0.99927042  0.49322112
++6840	 -6.27308569	 -0.00045234	  0.00027713	  7.27263335	  0.99861817	  0.99927053  0.49322118
++6841	 -6.27308585	 -0.00045228	  0.00027709	  7.27263357	  0.99861837	  0.99927063  0.49322108
++6842	 -6.27308601	 -0.00045221	  0.00027705	  7.27263380	  0.99861858	  0.99927074  0.49322119
++6843	 -6.27308616	 -0.00045214	  0.00027701	  7.27263402	  0.99861878	  0.99927085  0.49322124
++6844	 -6.27308632	 -0.00045208	  0.00027697	  7.27263424	  0.99861898	  0.99927095  0.49322120
++6845	 -6.27308648	 -0.00045201	  0.00027693	  7.27263447	  0.99861918	  0.99927106  0.49322125
++6846	 -6.27308664	 -0.00045195	  0.00027689	  7.27263469	  0.99861938	  0.99927116  0.49322131
++6847	 -6.27308680	 -0.00045188	  0.00027685	  7.27263492	  0.99861959	  0.99927127  0.49322139
++6848	 -6.27308695	 -0.00045181	  0.00027681	  7.27263514	  0.99861979	  0.99927138  0.49322128
++6849	 -6.27308711	 -0.00045175	  0.00027677	  7.27263536	  0.99861999	  0.99927148  0.49322133
++6850	 -6.27308727	 -0.00045168	  0.00027673	  7.27263559	  0.99862019	  0.99927159  0.49322134
++6851	 -6.27308743	 -0.00045162	  0.00027669	  7.27263581	  0.99862039	  0.99927170  0.49322141
++6852	 -6.27308759	 -0.00045155	  0.00027665	  7.27263604	  0.99862059	  0.99927180  0.49322137
++6853	 -6.27308774	 -0.00045148	  0.00027661	  7.27263626	  0.99862079	  0.99927191  0.49322148
++6854	 -6.27308790	 -0.00045142	  0.00027657	  7.27263648	  0.99862099	  0.99927202  0.49322145
++6855	 -6.27308806	 -0.00045135	  0.00027653	  7.27263671	  0.99862120	  0.99927212  0.49322138
++6856	 -6.27308822	 -0.00045129	  0.00027649	  7.27263693	  0.99862140	  0.99927223  0.49322155
++6857	 -6.27308837	 -0.00045122	  0.00027645	  7.27263715	  0.99862160	  0.99927233  0.49322147
++6858	 -6.27308853	 -0.00045116	  0.00027641	  7.27263737	  0.99862180	  0.99927244  0.49322164
++6859	 -6.27308869	 -0.00045109	  0.00027636	  7.27263760	  0.99862200	  0.99927255  0.49322155
++6860	 -6.27308884	 -0.00045102	  0.00027632	  7.27263782	  0.99862220	  0.99927265  0.49322156
++6861	 -6.27308900	 -0.00045096	  0.00027628	  7.27263804	  0.99862240	  0.99927276  0.49322154
++6862	 -6.27308916	 -0.00045089	  0.00027624	  7.27263827	  0.99862260	  0.99927286  0.49322167
++6863	 -6.27308932	 -0.00045083	  0.00027620	  7.27263849	  0.99862280	  0.99927297  0.49322165
++6864	 -6.27308947	 -0.00045076	  0.00027616	  7.27263871	  0.99862300	  0.99927308  0.49322177
++6865	 -6.27308963	 -0.00045070	  0.00027612	  7.27263894	  0.99862320	  0.99927318  0.49322172
++6866	 -6.27308979	 -0.00045063	  0.00027608	  7.27263916	  0.99862340	  0.99927329  0.49322177
++6867	 -6.27308994	 -0.00045056	  0.00027604	  7.27263938	  0.99862360	  0.99927339  0.49322171
++6868	 -6.27309010	 -0.00045050	  0.00027600	  7.27263960	  0.99862381	  0.99927350  0.49322172
++6869	 -6.27309026	 -0.00045043	  0.00027596	  7.27263983	  0.99862401	  0.99927360  0.49322182
++6870	 -6.27309042	 -0.00045037	  0.00027592	  7.27264005	  0.99862421	  0.99927371  0.49322183
++6871	 -6.27309057	 -0.00045030	  0.00027588	  7.27264027	  0.99862441	  0.99927382  0.49322187
++6872	 -6.27309073	 -0.00045024	  0.00027584	  7.27264049	  0.99862461	  0.99927392  0.49322184
++6873	 -6.27309089	 -0.00045017	  0.00027580	  7.27264071	  0.99862481	  0.99927403  0.49322189
++6874	 -6.27309104	 -0.00045011	  0.00027576	  7.27264094	  0.99862501	  0.99927413  0.49322190
++6875	 -6.27309120	 -0.00045004	  0.00027572	  7.27264116	  0.99862521	  0.99927424  0.49322188
++6876	 -6.27309136	 -0.00044997	  0.00027568	  7.27264138	  0.99862541	  0.99927434  0.49322197
++6877	 -6.27309151	 -0.00044991	  0.00027564	  7.27264160	  0.99862561	  0.99927445  0.49322195
++6878	 -6.27309167	 -0.00044984	  0.00027560	  7.27264182	  0.99862581	  0.99927455  0.49322198
++6879	 -6.27309183	 -0.00044978	  0.00027556	  7.27264205	  0.99862601	  0.99927466  0.49322195
++6880	 -6.27309198	 -0.00044971	  0.00027552	  7.27264227	  0.99862621	  0.99927477  0.49322211
++6881	 -6.27309214	 -0.00044965	  0.00027548	  7.27264249	  0.99862641	  0.99927487  0.49322215
++6882	 -6.27309229	 -0.00044958	  0.00027544	  7.27264271	  0.99862660	  0.99927498  0.49322209
++6883	 -6.27309245	 -0.00044952	  0.00027540	  7.27264293	  0.99862680	  0.99927508  0.49322211
++6884	 -6.27309261	 -0.00044945	  0.00027536	  7.27264315	  0.99862700	  0.99927519  0.49322213
++6885	 -6.27309276	 -0.00044939	  0.00027532	  7.27264338	  0.99862720	  0.99927529  0.49322220
++6886	 -6.27309292	 -0.00044932	  0.00027528	  7.27264360	  0.99862740	  0.99927540  0.49322206
++6887	 -6.27309307	 -0.00044926	  0.00027524	  7.27264382	  0.99862760	  0.99927550  0.49322222
++6888	 -6.27309323	 -0.00044919	  0.00027520	  7.27264404	  0.99862780	  0.99927561  0.49322230
++6889	 -6.27309339	 -0.00044913	  0.00027516	  7.27264426	  0.99862800	  0.99927571  0.49322233
++6890	 -6.27309354	 -0.00044906	  0.00027512	  7.27264448	  0.99862820	  0.99927582  0.49322226
++6891	 -6.27309370	 -0.00044900	  0.00027508	  7.27264470	  0.99862840	  0.99927592  0.49322237
++6892	 -6.27309385	 -0.00044893	  0.00027504	  7.27264492	  0.99862860	  0.99927603  0.49322238
++6893	 -6.27309401	 -0.00044887	  0.00027500	  7.27264514	  0.99862880	  0.99927613  0.49322229
++6894	 -6.27309417	 -0.00044880	  0.00027496	  7.27264537	  0.99862899	  0.99927624  0.49322245
++6895	 -6.27309432	 -0.00044874	  0.00027492	  7.27264559	  0.99862919	  0.99927634  0.49322245
++6896	 -6.27309448	 -0.00044867	  0.00027488	  7.27264581	  0.99862939	  0.99927645  0.49322246
++6897	 -6.27309463	 -0.00044861	  0.00027484	  7.27264603	  0.99862959	  0.99927655  0.49322247
++6898	 -6.27309479	 -0.00044854	  0.00027480	  7.27264625	  0.99862979	  0.99927666  0.49322254
++6899	 -6.27309494	 -0.00044848	  0.00027476	  7.27264647	  0.99862999	  0.99927676  0.49322253
++6900	 -6.27309510	 -0.00044841	  0.00027472	  7.27264669	  0.99863019	  0.99927687  0.49322258
++6901	 -6.27309526	 -0.00044835	  0.00027468	  7.27264691	  0.99863039	  0.99927697  0.49322250
++6902	 -6.27309541	 -0.00044828	  0.00027464	  7.27264713	  0.99863058	  0.99927708  0.49322253
++6903	 -6.27309557	 -0.00044822	  0.00027460	  7.27264735	  0.99863078	  0.99927718  0.49322260
++6904	 -6.27309572	 -0.00044815	  0.00027456	  7.27264757	  0.99863098	  0.99927729  0.49322265
++6905	 -6.27309588	 -0.00044809	  0.00027452	  7.27264779	  0.99863118	  0.99927739  0.49322261
++6906	 -6.27309603	 -0.00044802	  0.00027448	  7.27264801	  0.99863138	  0.99927750  0.49322265
++6907	 -6.27309619	 -0.00044796	  0.00027444	  7.27264823	  0.99863158	  0.99927760  0.49322274
++6908	 -6.27309634	 -0.00044789	  0.00027440	  7.27264845	  0.99863177	  0.99927770  0.49322271
++6909	 -6.27309650	 -0.00044783	  0.00027436	  7.27264867	  0.99863197	  0.99927781  0.49322271
++6910	 -6.27309665	 -0.00044776	  0.00027432	  7.27264889	  0.99863217	  0.99927791  0.49322277
++6911	 -6.27309681	 -0.00044770	  0.00027429	  7.27264911	  0.99863237	  0.99927802  0.49322282
++6912	 -6.27309696	 -0.00044763	  0.00027425	  7.27264933	  0.99863256	  0.99927812  0.49322277
++6913	 -6.27309712	 -0.00044757	  0.00027421	  7.27264955	  0.99863276	  0.99927823  0.49322279
++6914	 -6.27309727	 -0.00044750	  0.00027417	  7.27264977	  0.99863296	  0.99927833  0.49322290
++6915	 -6.27309743	 -0.00044744	  0.00027413	  7.27264999	  0.99863316	  0.99927844  0.49322286
++6916	 -6.27309758	 -0.00044737	  0.00027409	  7.27265021	  0.99863336	  0.99927854  0.49322289
++6917	 -6.27309774	 -0.00044731	  0.00027405	  7.27265043	  0.99863355	  0.99927864  0.49322292
++6918	 -6.27309789	 -0.00044724	  0.00027401	  7.27265065	  0.99863375	  0.99927875  0.49322303
++6919	 -6.27309805	 -0.00044718	  0.00027397	  7.27265087	  0.99863395	  0.99927885  0.49322297
++6920	 -6.27309820	 -0.00044712	  0.00027393	  7.27265108	  0.99863415	  0.99927896  0.49322299
++6921	 -6.27309835	 -0.00044705	  0.00027389	  7.27265130	  0.99863434	  0.99927906  0.49322300
++6922	 -6.27309851	 -0.00044699	  0.00027385	  7.27265152	  0.99863454	  0.99927916  0.49322302
++6923	 -6.27309866	 -0.00044692	  0.00027381	  7.27265174	  0.99863474	  0.99927927  0.49322302
++6924	 -6.27309882	 -0.00044686	  0.00027377	  7.27265196	  0.99863493	  0.99927937  0.49322309
++6925	 -6.27309897	 -0.00044679	  0.00027373	  7.27265218	  0.99863513	  0.99927948  0.49322304
++6926	 -6.27309913	 -0.00044673	  0.00027369	  7.27265240	  0.99863533	  0.99927958  0.49322317
++6927	 -6.27309928	 -0.00044666	  0.00027365	  7.27265262	  0.99863553	  0.99927968  0.49322317
++6928	 -6.27309944	 -0.00044660	  0.00027361	  7.27265284	  0.99863572	  0.99927979  0.49322320
++6929	 -6.27309959	 -0.00044653	  0.00027357	  7.27265305	  0.99863592	  0.99927989  0.49322325
++6930	 -6.27309974	 -0.00044647	  0.00027353	  7.27265327	  0.99863612	  0.99928000  0.49322322
++6931	 -6.27309990	 -0.00044641	  0.00027349	  7.27265349	  0.99863631	  0.99928010  0.49322331
++6932	 -6.27310005	 -0.00044634	  0.00027345	  7.27265371	  0.99863651	  0.99928020  0.49322327
++6933	 -6.27310021	 -0.00044628	  0.00027341	  7.27265393	  0.99863671	  0.99928031  0.49322319
++6934	 -6.27310036	 -0.00044621	  0.00027338	  7.27265415	  0.99863690	  0.99928041  0.49322336
++6935	 -6.27310051	 -0.00044615	  0.00027334	  7.27265436	  0.99863710	  0.99928052  0.49322341
++6936	 -6.27310067	 -0.00044608	  0.00027330	  7.27265458	  0.99863730	  0.99928062  0.49322335
++6937	 -6.27310082	 -0.00044602	  0.00027326	  7.27265480	  0.99863749	  0.99928072  0.49322336
++6938	 -6.27310097	 -0.00044596	  0.00027322	  7.27265502	  0.99863769	  0.99928083  0.49322343
++6939	 -6.27310113	 -0.00044589	  0.00027318	  7.27265524	  0.99863789	  0.99928093  0.49322345
++6940	 -6.27310128	 -0.00044583	  0.00027314	  7.27265546	  0.99863808	  0.99928103  0.49322341
++6941	 -6.27310144	 -0.00044576	  0.00027310	  7.27265567	  0.99863828	  0.99928114  0.49322343
++6942	 -6.27310159	 -0.00044570	  0.00027306	  7.27265589	  0.99863847	  0.99928124  0.49322353
++6943	 -6.27310174	 -0.00044563	  0.00027302	  7.27265611	  0.99863867	  0.99928134  0.49322355
++6944	 -6.27310190	 -0.00044557	  0.00027298	  7.27265633	  0.99863887	  0.99928145  0.49322359
++6945	 -6.27310205	 -0.00044551	  0.00027294	  7.27265654	  0.99863906	  0.99928155  0.49322357
++6946	 -6.27310220	 -0.00044544	  0.00027290	  7.27265676	  0.99863926	  0.99928165  0.49322365
++6947	 -6.27310236	 -0.00044538	  0.00027286	  7.27265698	  0.99863945	  0.99928176  0.49322365
++6948	 -6.27310251	 -0.00044531	  0.00027282	  7.27265720	  0.99863965	  0.99928186  0.49322366
++6949	 -6.27310266	 -0.00044525	  0.00027279	  7.27265741	  0.99863984	  0.99928196  0.49322350
++6950	 -6.27310282	 -0.00044519	  0.00027275	  7.27265763	  0.99864004	  0.99928207  0.49322363
++6951	 -6.27310297	 -0.00044512	  0.00027271	  7.27265785	  0.99864024	  0.99928217  0.49322376
++6952	 -6.27310312	 -0.00044506	  0.00027267	  7.27265807	  0.99864043	  0.99928227  0.49322376
++6953	 -6.27310328	 -0.00044499	  0.00027263	  7.27265828	  0.99864063	  0.99928238  0.49322386
++6954	 -6.27310343	 -0.00044493	  0.00027259	  7.27265850	  0.99864082	  0.99928248  0.49322387
++6955	 -6.27310358	 -0.00044487	  0.00027255	  7.27265872	  0.99864102	  0.99928258  0.49322377
++6956	 -6.27310374	 -0.00044480	  0.00027251	  7.27265893	  0.99864121	  0.99928269  0.49322371
++6957	 -6.27310389	 -0.00044474	  0.00027247	  7.27265915	  0.99864141	  0.99928279  0.49322385
++6958	 -6.27310404	 -0.00044467	  0.00027243	  7.27265937	  0.99864160	  0.99928289  0.49322391
++6959	 -6.27310419	 -0.00044461	  0.00027239	  7.27265958	  0.99864180	  0.99928300  0.49322388
++6960	 -6.27310435	 -0.00044455	  0.00027235	  7.27265980	  0.99864199	  0.99928310  0.49322387
++6961	 -6.27310450	 -0.00044448	  0.00027231	  7.27266002	  0.99864219	  0.99928320  0.49322394
++6962	 -6.27310465	 -0.00044442	  0.00027228	  7.27266023	  0.99864238	  0.99928330  0.49322403
++6963	 -6.27310481	 -0.00044436	  0.00027224	  7.27266045	  0.99864258	  0.99928341  0.49322393
++6964	 -6.27310496	 -0.00044429	  0.00027220	  7.27266067	  0.99864277	  0.99928351  0.49322396
++6965	 -6.27310511	 -0.00044423	  0.00027216	  7.27266088	  0.99864297	  0.99928361  0.49322397
++6966	 -6.27310526	 -0.00044416	  0.00027212	  7.27266110	  0.99864316	  0.99928372  0.49322408
++6967	 -6.27310542	 -0.00044410	  0.00027208	  7.27266132	  0.99864336	  0.99928382  0.49322399
++6968	 -6.27310557	 -0.00044404	  0.00027204	  7.27266153	  0.99864355	  0.99928392  0.49322405
++6969	 -6.27310572	 -0.00044397	  0.00027200	  7.27266175	  0.99864375	  0.99928402  0.49322411
++6970	 -6.27310587	 -0.00044391	  0.00027196	  7.27266196	  0.99864394	  0.99928413  0.49322415
++6971	 -6.27310603	 -0.00044385	  0.00027192	  7.27266218	  0.99864414	  0.99928423  0.49322414
++6972	 -6.27310618	 -0.00044378	  0.00027189	  7.27266240	  0.99864433	  0.99928433  0.49322429
++6973	 -6.27310633	 -0.00044372	  0.00027185	  7.27266261	  0.99864453	  0.99928444  0.49322422
++6974	 -6.27310648	 -0.00044365	  0.00027181	  7.27266283	  0.99864472	  0.99928454  0.49322422
++6975	 -6.27310663	 -0.00044359	  0.00027177	  7.27266304	  0.99864491	  0.99928464  0.49322418
++6976	 -6.27310679	 -0.00044353	  0.00027173	  7.27266326	  0.99864511	  0.99928474  0.49322426
++6977	 -6.27310694	 -0.00044346	  0.00027169	  7.27266347	  0.99864530	  0.99928485  0.49322432
++6978	 -6.27310709	 -0.00044340	  0.00027165	  7.27266369	  0.99864550	  0.99928495  0.49322429
++6979	 -6.27310724	 -0.00044334	  0.00027161	  7.27266391	  0.99864569	  0.99928505  0.49322440
++6980	 -6.27310739	 -0.00044327	  0.00027157	  7.27266412	  0.99864589	  0.99928515  0.49322431
++6981	 -6.27310755	 -0.00044321	  0.00027153	  7.27266434	  0.99864608	  0.99928526  0.49322435
++6982	 -6.27310770	 -0.00044315	  0.00027150	  7.27266455	  0.99864627	  0.99928536  0.49322446
++6983	 -6.27310785	 -0.00044308	  0.00027146	  7.27266477	  0.99864647	  0.99928546  0.49322440
++6984	 -6.27310800	 -0.00044302	  0.00027142	  7.27266498	  0.99864666	  0.99928556  0.49322441
++6985	 -6.27310815	 -0.00044296	  0.00027138	  7.27266520	  0.99864685	  0.99928566  0.49322447
++6986	 -6.27310831	 -0.00044289	  0.00027134	  7.27266541	  0.99864705	  0.99928577  0.49322449
++6987	 -6.27310846	 -0.00044283	  0.00027130	  7.27266563	  0.99864724	  0.99928587  0.49322455
++6988	 -6.27310861	 -0.00044277	  0.00027126	  7.27266584	  0.99864744	  0.99928597  0.49322455
++6989	 -6.27310876	 -0.00044270	  0.00027122	  7.27266606	  0.99864763	  0.99928607  0.49322448
++6990	 -6.27310891	 -0.00044264	  0.00027119	  7.27266627	  0.99864782	  0.99928618  0.49322460
++6991	 -6.27310906	 -0.00044258	  0.00027115	  7.27266649	  0.99864802	  0.99928628  0.49322463
++6992	 -6.27310921	 -0.00044251	  0.00027111	  7.27266670	  0.99864821	  0.99928638  0.49322466
++6993	 -6.27310937	 -0.00044245	  0.00027107	  7.27266692	  0.99864840	  0.99928648  0.49322476
++6994	 -6.27310952	 -0.00044239	  0.00027103	  7.27266713	  0.99864860	  0.99928658  0.49322465
++6995	 -6.27310967	 -0.00044232	  0.00027099	  7.27266735	  0.99864879	  0.99928669  0.49322471
++6996	 -6.27310982	 -0.00044226	  0.00027095	  7.27266756	  0.99864898	  0.99928679  0.49322475
++6997	 -6.27310997	 -0.00044220	  0.00027091	  7.27266777	  0.99864917	  0.99928689  0.49322474
++6998	 -6.27311012	 -0.00044213	  0.00027088	  7.27266799	  0.99864937	  0.99928699  0.49322474
++6999	 -6.27311027	 -0.00044207	  0.00027084	  7.27266820	  0.99864956	  0.99928709  0.49322480
++7000	 -6.27311042	 -0.00044201	  0.00027080	  7.27266842	  0.99864975	  0.99928719  0.49322485
++7001	 -6.27311058	 -0.00044194	  0.00027076	  7.27266863	  0.99864995	  0.99928730  0.49322481
++7002	 -6.27311073	 -0.00044188	  0.00027072	  7.27266884	  0.99865014	  0.99928740  0.49322488
++7003	 -6.27311088	 -0.00044182	  0.00027068	  7.27266906	  0.99865033	  0.99928750  0.49322485
++7004	 -6.27311103	 -0.00044176	  0.00027064	  7.27266927	  0.99865052	  0.99928760  0.49322488
++7005	 -6.27311118	 -0.00044169	  0.00027060	  7.27266949	  0.99865072	  0.99928770  0.49322494
++7006	 -6.27311133	 -0.00044163	  0.00027057	  7.27266970	  0.99865091	  0.99928780  0.49322492
++7007	 -6.27311148	 -0.00044157	  0.00027053	  7.27266991	  0.99865110	  0.99928791  0.49322499
++7008	 -6.27311163	 -0.00044150	  0.00027049	  7.27267013	  0.99865129	  0.99928801  0.49322490
++7009	 -6.27311178	 -0.00044144	  0.00027045	  7.27267034	  0.99865149	  0.99928811  0.49322494
++7010	 -6.27311193	 -0.00044138	  0.00027041	  7.27267056	  0.99865168	  0.99928821  0.49322503
++7011	 -6.27311208	 -0.00044131	  0.00027037	  7.27267077	  0.99865187	  0.99928831  0.49322507
++7012	 -6.27311223	 -0.00044125	  0.00027033	  7.27267098	  0.99865206	  0.99928841  0.49322506
++7013	 -6.27311238	 -0.00044119	  0.00027030	  7.27267120	  0.99865226	  0.99928852  0.49322507
++7014	 -6.27311253	 -0.00044113	  0.00027026	  7.27267141	  0.99865245	  0.99928862  0.49322511
++7015	 -6.27311269	 -0.00044106	  0.00027022	  7.27267162	  0.99865264	  0.99928872  0.49322515
++7016	 -6.27311284	 -0.00044100	  0.00027018	  7.27267184	  0.99865283	  0.99928882  0.49322525
++7017	 -6.27311299	 -0.00044094	  0.00027014	  7.27267205	  0.99865302	  0.99928892  0.49322511
++7018	 -6.27311314	 -0.00044087	  0.00027010	  7.27267226	  0.99865322	  0.99928902  0.49322518
++7019	 -6.27311329	 -0.00044081	  0.00027006	  7.27267247	  0.99865341	  0.99928912  0.49322526
++7020	 -6.27311344	 -0.00044075	  0.00027003	  7.27267269	  0.99865360	  0.99928922  0.49322521
++7021	 -6.27311359	 -0.00044069	  0.00026999	  7.27267290	  0.99865379	  0.99928933  0.49322528
++7022	 -6.27311374	 -0.00044062	  0.00026995	  7.27267311	  0.99865398	  0.99928943  0.49322529
++7023	 -6.27311389	 -0.00044056	  0.00026991	  7.27267333	  0.99865418	  0.99928953  0.49322527
++7024	 -6.27311404	 -0.00044050	  0.00026987	  7.27267354	  0.99865437	  0.99928963  0.49322539
++7025	 -6.27311419	 -0.00044044	  0.00026983	  7.27267375	  0.99865456	  0.99928973  0.49322538
++7026	 -6.27311434	 -0.00044037	  0.00026980	  7.27267396	  0.99865475	  0.99928983  0.49322547
++7027	 -6.27311449	 -0.00044031	  0.00026976	  7.27267418	  0.99865494	  0.99928993  0.49322544
++7028	 -6.27311464	 -0.00044025	  0.00026972	  7.27267439	  0.99865513	  0.99929003  0.49322545
++7029	 -6.27311479	 -0.00044018	  0.00026968	  7.27267460	  0.99865532	  0.99929013  0.49322545
++7030	 -6.27311494	 -0.00044012	  0.00026964	  7.27267481	  0.99865551	  0.99929024  0.49322537
++7031	 -6.27311509	 -0.00044006	  0.00026960	  7.27267503	  0.99865571	  0.99929034  0.49322549
++7032	 -6.27311524	 -0.00044000	  0.00026957	  7.27267524	  0.99865590	  0.99929044  0.49322552
++7033	 -6.27311539	 -0.00043993	  0.00026953	  7.27267545	  0.99865609	  0.99929054  0.49322561
++7034	 -6.27311554	 -0.00043987	  0.00026949	  7.27267566	  0.99865628	  0.99929064  0.49322551
++7035	 -6.27311569	 -0.00043981	  0.00026945	  7.27267588	  0.99865647	  0.99929074  0.49322559
++7036	 -6.27311583	 -0.00043975	  0.00026941	  7.27267609	  0.99865666	  0.99929084  0.49322564
++7037	 -6.27311598	 -0.00043968	  0.00026937	  7.27267630	  0.99865685	  0.99929094  0.49322558
++7038	 -6.27311613	 -0.00043962	  0.00026934	  7.27267651	  0.99865704	  0.99929104  0.49322567
++7039	 -6.27311628	 -0.00043956	  0.00026930	  7.27267672	  0.99865723	  0.99929114  0.49322564
++7040	 -6.27311643	 -0.00043950	  0.00026926	  7.27267693	  0.99865742	  0.99929124  0.49322573
++7041	 -6.27311658	 -0.00043944	  0.00026922	  7.27267715	  0.99865762	  0.99929134  0.49322571
++7042	 -6.27311673	 -0.00043937	  0.00026918	  7.27267736	  0.99865781	  0.99929144  0.49322569
++7043	 -6.27311688	 -0.00043931	  0.00026914	  7.27267757	  0.99865800	  0.99929155  0.49322578
++7044	 -6.27311703	 -0.00043925	  0.00026911	  7.27267778	  0.99865819	  0.99929165  0.49322578
++7045	 -6.27311718	 -0.00043919	  0.00026907	  7.27267799	  0.99865838	  0.99929175  0.49322584
++7046	 -6.27311733	 -0.00043912	  0.00026903	  7.27267820	  0.99865857	  0.99929185  0.49322586
++7047	 -6.27311748	 -0.00043906	  0.00026899	  7.27267842	  0.99865876	  0.99929195  0.49322590
++7048	 -6.27311763	 -0.00043900	  0.00026895	  7.27267863	  0.99865895	  0.99929205  0.49322588
++7049	 -6.27311777	 -0.00043894	  0.00026892	  7.27267884	  0.99865914	  0.99929215  0.49322594
++7050	 -6.27311792	 -0.00043887	  0.00026888	  7.27267905	  0.99865933	  0.99929225  0.49322584
++7051	 -6.27311807	 -0.00043881	  0.00026884	  7.27267926	  0.99865952	  0.99929235  0.49322593
++7052	 -6.27311822	 -0.00043875	  0.00026880	  7.27267947	  0.99865971	  0.99929245  0.49322593
++7053	 -6.27311837	 -0.00043869	  0.00026876	  7.27267968	  0.99865990	  0.99929255  0.49322599
++7054	 -6.27311852	 -0.00043863	  0.00026872	  7.27267989	  0.99866009	  0.99929265  0.49322601
++7055	 -6.27311867	 -0.00043856	  0.00026869	  7.27268010	  0.99866028	  0.99929275  0.49322609
++7056	 -6.27311882	 -0.00043850	  0.00026865	  7.27268032	  0.99866047	  0.99929285  0.49322605
++7057	 -6.27311897	 -0.00043844	  0.00026861	  7.27268053	  0.99866066	  0.99929295  0.49322609
++7058	 -6.27311911	 -0.00043838	  0.00026857	  7.27268074	  0.99866085	  0.99929305  0.49322609
++7059	 -6.27311926	 -0.00043832	  0.00026853	  7.27268095	  0.99866104	  0.99929315  0.49322617
++7060	 -6.27311941	 -0.00043825	  0.00026850	  7.27268116	  0.99866123	  0.99929325  0.49322622
++7061	 -6.27311956	 -0.00043819	  0.00026846	  7.27268137	  0.99866142	  0.99929335  0.49322614
++7062	 -6.27311971	 -0.00043813	  0.00026842	  7.27268158	  0.99866161	  0.99929345  0.49322631
++7063	 -6.27311986	 -0.00043807	  0.00026838	  7.27268179	  0.99866180	  0.99929355  0.49322620
++7064	 -6.27312000	 -0.00043800	  0.00026834	  7.27268200	  0.99866199	  0.99929365  0.49322616
++7065	 -6.27312015	 -0.00043794	  0.00026831	  7.27268221	  0.99866217	  0.99929375  0.49322624
++7066	 -6.27312030	 -0.00043788	  0.00026827	  7.27268242	  0.99866236	  0.99929385  0.49322623
++7067	 -6.27312045	 -0.00043782	  0.00026823	  7.27268263	  0.99866255	  0.99929395  0.49322635
++7068	 -6.27312060	 -0.00043776	  0.00026819	  7.27268284	  0.99866274	  0.99929405  0.49322632
++7069	 -6.27312075	 -0.00043770	  0.00026815	  7.27268305	  0.99866293	  0.99929415  0.49322635
++7070	 -6.27312089	 -0.00043763	  0.00026812	  7.27268326	  0.99866312	  0.99929425  0.49322639
++7071	 -6.27312104	 -0.00043757	  0.00026808	  7.27268347	  0.99866331	  0.99929435  0.49322639
++7072	 -6.27312119	 -0.00043751	  0.00026804	  7.27268368	  0.99866350	  0.99929445  0.49322638
++7073	 -6.27312134	 -0.00043745	  0.00026800	  7.27268389	  0.99866369	  0.99929455  0.49322647
++7074	 -6.27312149	 -0.00043739	  0.00026796	  7.27268410	  0.99866388	  0.99929465  0.49322642
++7075	 -6.27312163	 -0.00043732	  0.00026793	  7.27268431	  0.99866407	  0.99929475  0.49322644
++7076	 -6.27312178	 -0.00043726	  0.00026789	  7.27268452	  0.99866425	  0.99929485  0.49322646
++7077	 -6.27312193	 -0.00043720	  0.00026785	  7.27268473	  0.99866444	  0.99929495  0.49322653
++7078	 -6.27312208	 -0.00043714	  0.00026781	  7.27268494	  0.99866463	  0.99929505  0.49322663
++7079	 -6.27312223	 -0.00043708	  0.00026778	  7.27268515	  0.99866482	  0.99929515  0.49322655
++7080	 -6.27312237	 -0.00043702	  0.00026774	  7.27268536	  0.99866501	  0.99929525  0.49322658
++7081	 -6.27312252	 -0.00043695	  0.00026770	  7.27268557	  0.99866520	  0.99929535  0.49322660
++7082	 -6.27312267	 -0.00043689	  0.00026766	  7.27268578	  0.99866539	  0.99929545  0.49322666
++7083	 -6.27312282	 -0.00043683	  0.00026762	  7.27268599	  0.99866557	  0.99929555  0.49322663
++7084	 -6.27312296	 -0.00043677	  0.00026759	  7.27268619	  0.99866576	  0.99929564  0.49322672
++7085	 -6.27312311	 -0.00043671	  0.00026755	  7.27268640	  0.99866595	  0.99929574  0.49322669
++7086	 -6.27312326	 -0.00043665	  0.00026751	  7.27268661	  0.99866614	  0.99929584  0.49322667
++7087	 -6.27312341	 -0.00043658	  0.00026747	  7.27268682	  0.99866633	  0.99929594  0.49322665
++7088	 -6.27312355	 -0.00043652	  0.00026744	  7.27268703	  0.99866652	  0.99929604  0.49322678
++7089	 -6.27312370	 -0.00043646	  0.00026740	  7.27268724	  0.99866670	  0.99929614  0.49322680
++7090	 -6.27312385	 -0.00043640	  0.00026736	  7.27268745	  0.99866689	  0.99929624  0.49322677
++7091	 -6.27312399	 -0.00043634	  0.00026732	  7.27268766	  0.99866708	  0.99929634  0.49322687
++7092	 -6.27312414	 -0.00043628	  0.00026728	  7.27268787	  0.99866727	  0.99929644  0.49322695
++7093	 -6.27312429	 -0.00043622	  0.00026725	  7.27268807	  0.99866746	  0.99929654  0.49322684
++7094	 -6.27312444	 -0.00043615	  0.00026721	  7.27268828	  0.99866764	  0.99929664  0.49322695
++7095	 -6.27312458	 -0.00043609	  0.00026717	  7.27268849	  0.99866783	  0.99929674  0.49322694
++7096	 -6.27312473	 -0.00043603	  0.00026713	  7.27268870	  0.99866802	  0.99929684  0.49322694
++7097	 -6.27312488	 -0.00043597	  0.00026710	  7.27268891	  0.99866821	  0.99929693  0.49322692
++7098	 -6.27312502	 -0.00043591	  0.00026706	  7.27268912	  0.99866839	  0.99929703  0.49322694
++7099	 -6.27312517	 -0.00043585	  0.00026702	  7.27268932	  0.99866858	  0.99929713  0.49322699
++7100	 -6.27312532	 -0.00043579	  0.00026698	  7.27268953	  0.99866877	  0.99929723  0.49322697
++7101	 -6.27312546	 -0.00043572	  0.00026695	  7.27268974	  0.99866896	  0.99929733  0.49322709
++7102	 -6.27312561	 -0.00043566	  0.00026691	  7.27268995	  0.99866914	  0.99929743  0.49322698
++7103	 -6.27312576	 -0.00043560	  0.00026687	  7.27269016	  0.99866933	  0.99929753  0.49322713
++7104	 -6.27312590	 -0.00043554	  0.00026683	  7.27269037	  0.99866952	  0.99929763  0.49322708
++7105	 -6.27312605	 -0.00043548	  0.00026680	  7.27269057	  0.99866971	  0.99929773  0.49322723
++7106	 -6.27312620	 -0.00043542	  0.00026676	  7.27269078	  0.99866989	  0.99929782  0.49322717
++7107	 -6.27312634	 -0.00043536	  0.00026672	  7.27269099	  0.99867008	  0.99929792  0.49322722
++7108	 -6.27312649	 -0.00043529	  0.00026668	  7.27269120	  0.99867027	  0.99929802  0.49322714
++7109	 -6.27312664	 -0.00043523	  0.00026665	  7.27269140	  0.99867045	  0.99929812  0.49322725
++7110	 -6.27312678	 -0.00043517	  0.00026661	  7.27269161	  0.99867064	  0.99929822  0.49322739
++7111	 -6.27312693	 -0.00043511	  0.00026657	  7.27269182	  0.99867083	  0.99929832  0.49322721
++7112	 -6.27312708	 -0.00043505	  0.00026653	  7.27269203	  0.99867101	  0.99929842  0.49322728
++7113	 -6.27312722	 -0.00043499	  0.00026650	  7.27269223	  0.99867120	  0.99929852  0.49322731
++7114	 -6.27312737	 -0.00043493	  0.00026646	  7.27269244	  0.99867139	  0.99929861  0.49322735
++7115	 -6.27312752	 -0.00043487	  0.00026642	  7.27269265	  0.99867158	  0.99929871  0.49322737
++7116	 -6.27312766	 -0.00043481	  0.00026638	  7.27269286	  0.99867176	  0.99929881  0.49322735
++7117	 -6.27312781	 -0.00043474	  0.00026635	  7.27269306	  0.99867195	  0.99929891  0.49322744
++7118	 -6.27312795	 -0.00043468	  0.00026631	  7.27269327	  0.99867214	  0.99929901  0.49322745
++7119	 -6.27312810	 -0.00043462	  0.00026627	  7.27269348	  0.99867232	  0.99929911  0.49322747
++7120	 -6.27312825	 -0.00043456	  0.00026623	  7.27269368	  0.99867251	  0.99929920  0.49322750
++7121	 -6.27312839	 -0.00043450	  0.00026620	  7.27269389	  0.99867269	  0.99929930  0.49322745
++7122	 -6.27312854	 -0.00043444	  0.00026616	  7.27269410	  0.99867288	  0.99929940  0.49322761
++7123	 -6.27312868	 -0.00043438	  0.00026612	  7.27269431	  0.99867307	  0.99929950  0.49322746
++7124	 -6.27312883	 -0.00043432	  0.00026608	  7.27269451	  0.99867325	  0.99929960  0.49322757
++7125	 -6.27312898	 -0.00043426	  0.00026605	  7.27269472	  0.99867344	  0.99929970  0.49322765
++7126	 -6.27312912	 -0.00043420	  0.00026601	  7.27269493	  0.99867363	  0.99929979  0.49322763
++7127	 -6.27312927	 -0.00043413	  0.00026597	  7.27269513	  0.99867381	  0.99929989  0.49322751
++7128	 -6.27312941	 -0.00043407	  0.00026593	  7.27269534	  0.99867400	  0.99929999  0.49322758
++7129	 -6.27312956	 -0.00043401	  0.00026590	  7.27269555	  0.99867418	  0.99930009  0.49322771
++7130	 -6.27312970	 -0.00043395	  0.00026586	  7.27269575	  0.99867437	  0.99930019  0.49322770
++7131	 -6.27312985	 -0.00043389	  0.00026582	  7.27269596	  0.99867456	  0.99930029  0.49322772
++7132	 -6.27313000	 -0.00043383	  0.00026579	  7.27269616	  0.99867474	  0.99930038  0.49322775
++7133	 -6.27313014	 -0.00043377	  0.00026575	  7.27269637	  0.99867493	  0.99930048  0.49322776
++7134	 -6.27313029	 -0.00043371	  0.00026571	  7.27269658	  0.99867511	  0.99930058  0.49322779
++7135	 -6.27313043	 -0.00043365	  0.00026567	  7.27269678	  0.99867530	  0.99930068  0.49322775
++7136	 -6.27313058	 -0.00043359	  0.00026564	  7.27269699	  0.99867548	  0.99930078  0.49322782
++7137	 -6.27313072	 -0.00043353	  0.00026560	  7.27269720	  0.99867567	  0.99930087  0.49322777
++7138	 -6.27313087	 -0.00043347	  0.00026556	  7.27269740	  0.99867586	  0.99930097  0.49322785
++7139	 -6.27313101	 -0.00043341	  0.00026552	  7.27269761	  0.99867604	  0.99930107  0.49322785
++7140	 -6.27313116	 -0.00043335	  0.00026549	  7.27269781	  0.99867623	  0.99930117  0.49322792
++7141	 -6.27313130	 -0.00043328	  0.00026545	  7.27269802	  0.99867641	  0.99930127  0.49322802
++7142	 -6.27313145	 -0.00043322	  0.00026541	  7.27269823	  0.99867660	  0.99930136  0.49322800
++7143	 -6.27313159	 -0.00043316	  0.00026538	  7.27269843	  0.99867678	  0.99930146  0.49322801
++7144	 -6.27313174	 -0.00043310	  0.00026534	  7.27269864	  0.99867697	  0.99930156  0.49322793
++7145	 -6.27313188	 -0.00043304	  0.00026530	  7.27269884	  0.99867715	  0.99930166  0.49322797
++7146	 -6.27313203	 -0.00043298	  0.00026526	  7.27269905	  0.99867734	  0.99930175  0.49322808
++7147	 -6.27313217	 -0.00043292	  0.00026523	  7.27269925	  0.99867752	  0.99930185  0.49322805
++7148	 -6.27313232	 -0.00043286	  0.00026519	  7.27269946	  0.99867771	  0.99930195  0.49322811
++7149	 -6.27313246	 -0.00043280	  0.00026515	  7.27269966	  0.99867789	  0.99930205  0.49322809
++7150	 -6.27313261	 -0.00043274	  0.00026512	  7.27269987	  0.99867808	  0.99930214  0.49322806
++7151	 -6.27313275	 -0.00043268	  0.00026508	  7.27270007	  0.99867826	  0.99930224  0.49322819
++7152	 -6.27313290	 -0.00043262	  0.00026504	  7.27270028	  0.99867845	  0.99930234  0.49322820
++7153	 -6.27313304	 -0.00043256	  0.00026501	  7.27270049	  0.99867863	  0.99930244  0.49322821
++7154	 -6.27313319	 -0.00043250	  0.00026497	  7.27270069	  0.99867882	  0.99930253  0.49322826
++7155	 -6.27313333	 -0.00043244	  0.00026493	  7.27270090	  0.99867900	  0.99930263  0.49322825
++7156	 -6.27313348	 -0.00043238	  0.00026489	  7.27270110	  0.99867919	  0.99930273  0.49322828
++7157	 -6.27313362	 -0.00043232	  0.00026486	  7.27270131	  0.99867937	  0.99930283  0.49322824
++7158	 -6.27313377	 -0.00043226	  0.00026482	  7.27270151	  0.99867955	  0.99930292  0.49322829
++7159	 -6.27313391	 -0.00043220	  0.00026478	  7.27270171	  0.99867974	  0.99930302  0.49322833
++7160	 -6.27313405	 -0.00043214	  0.00026475	  7.27270192	  0.99867992	  0.99930312  0.49322832
++7161	 -6.27313420	 -0.00043207	  0.00026471	  7.27270212	  0.99868011	  0.99930322  0.49322832
++7162	 -6.27313434	 -0.00043201	  0.00026467	  7.27270233	  0.99868029	  0.99930331  0.49322841
++7163	 -6.27313449	 -0.00043195	  0.00026464	  7.27270253	  0.99868048	  0.99930341  0.49322842
++7164	 -6.27313463	 -0.00043189	  0.00026460	  7.27270274	  0.99868066	  0.99930351  0.49322850
++7165	 -6.27313478	 -0.00043183	  0.00026456	  7.27270294	  0.99868084	  0.99930360  0.49322849
++7166	 -6.27313492	 -0.00043177	  0.00026452	  7.27270315	  0.99868103	  0.99930370  0.49322832
++7167	 -6.27313506	 -0.00043171	  0.00026449	  7.27270335	  0.99868121	  0.99930380  0.49322850
++7168	 -6.27313521	 -0.00043165	  0.00026445	  7.27270356	  0.99868140	  0.99930390  0.49322849
++7169	 -6.27313535	 -0.00043159	  0.00026441	  7.27270376	  0.99868158	  0.99930399  0.49322851
++7170	 -6.27313550	 -0.00043153	  0.00026438	  7.27270396	  0.99868176	  0.99930409  0.49322842
++7171	 -6.27313564	 -0.00043147	  0.00026434	  7.27270417	  0.99868195	  0.99930419  0.49322856
++7172	 -6.27313578	 -0.00043141	  0.00026430	  7.27270437	  0.99868213	  0.99930428  0.49322852
++7173	 -6.27313593	 -0.00043135	  0.00026427	  7.27270458	  0.99868232	  0.99930438  0.49322857
++7174	 -6.27313607	 -0.00043129	  0.00026423	  7.27270478	  0.99868250	  0.99930448  0.49322857
++7175	 -6.27313622	 -0.00043123	  0.00026419	  7.27270498	  0.99868268	  0.99930458  0.49322862
++7176	 -6.27313636	 -0.00043117	  0.00026416	  7.27270519	  0.99868287	  0.99930467  0.49322867
++7177	 -6.27313650	 -0.00043111	  0.00026412	  7.27270539	  0.99868305	  0.99930477  0.49322876
++7178	 -6.27313665	 -0.00043105	  0.00026408	  7.27270560	  0.99868323	  0.99930487  0.49322877
++7179	 -6.27313679	 -0.00043099	  0.00026405	  7.27270580	  0.99868342	  0.99930496  0.49322873
++7180	 -6.27313693	 -0.00043093	  0.00026401	  7.27270600	  0.99868360	  0.99930506  0.49322870
++7181	 -6.27313708	 -0.00043087	  0.00026397	  7.27270621	  0.99868378	  0.99930516  0.49322877
++7182	 -6.27313722	 -0.00043081	  0.00026394	  7.27270641	  0.99868397	  0.99930525  0.49322879
++7183	 -6.27313737	 -0.00043075	  0.00026390	  7.27270661	  0.99868415	  0.99930535  0.49322891
++7184	 -6.27313751	 -0.00043069	  0.00026386	  7.27270682	  0.99868433	  0.99930545  0.49322887
++7185	 -6.27313765	 -0.00043063	  0.00026382	  7.27270702	  0.99868452	  0.99930554  0.49322881
++7186	 -6.27313780	 -0.00043057	  0.00026379	  7.27270722	  0.99868470	  0.99930564  0.49322892
++7187	 -6.27313794	 -0.00043051	  0.00026375	  7.27270743	  0.99868488	  0.99930574  0.49322891
++7188	 -6.27313808	 -0.00043045	  0.00026371	  7.27270763	  0.99868507	  0.99930583  0.49322891
++7189	 -6.27313823	 -0.00043039	  0.00026368	  7.27270783	  0.99868525	  0.99930593  0.49322893
++7190	 -6.27313837	 -0.00043033	  0.00026364	  7.27270804	  0.99868543	  0.99930603  0.49322886
++7191	 -6.27313851	 -0.00043027	  0.00026360	  7.27270824	  0.99868561	  0.99930612  0.49322902
++7192	 -6.27313865	 -0.00043021	  0.00026357	  7.27270844	  0.99868580	  0.99930622  0.49322900
++7193	 -6.27313880	 -0.00043015	  0.00026353	  7.27270864	  0.99868598	  0.99930632  0.49322904
++7194	 -6.27313894	 -0.00043009	  0.00026349	  7.27270885	  0.99868616	  0.99930641  0.49322903
++7195	 -6.27313908	 -0.00043003	  0.00026346	  7.27270905	  0.99868634	  0.99930651  0.49322900
++7196	 -6.27313923	 -0.00042997	  0.00026342	  7.27270925	  0.99868653	  0.99930660  0.49322904
++7197	 -6.27313937	 -0.00042991	  0.00026338	  7.27270946	  0.99868671	  0.99930670  0.49322912
++7198	 -6.27313951	 -0.00042985	  0.00026335	  7.27270966	  0.99868689	  0.99930680  0.49322917
++7199	 -6.27313966	 -0.00042980	  0.00026331	  7.27270986	  0.99868707	  0.99930689  0.49322903
++7200	 -6.27313980	 -0.00042974	  0.00026328	  7.27271006	  0.99868726	  0.99930699  0.49322919
++7201	 -6.27313994	 -0.00042968	  0.00026324	  7.27271027	  0.99868744	  0.99930709  0.49322915
++7202	 -6.27314008	 -0.00042962	  0.00026320	  7.27271047	  0.99868762	  0.99930718  0.49322921
++7203	 -6.27314023	 -0.00042956	  0.00026317	  7.27271067	  0.99868780	  0.99930728  0.49322918
++7204	 -6.27314037	 -0.00042950	  0.00026313	  7.27271087	  0.99868799	  0.99930737  0.49322930
++7205	 -6.27314051	 -0.00042944	  0.00026309	  7.27271107	  0.99868817	  0.99930747  0.49322927
++7206	 -6.27314065	 -0.00042938	  0.00026306	  7.27271128	  0.99868835	  0.99930757  0.49322931
++7207	 -6.27314080	 -0.00042932	  0.00026302	  7.27271148	  0.99868853	  0.99930766  0.49322934
++7208	 -6.27314094	 -0.00042926	  0.00026298	  7.27271168	  0.99868871	  0.99930776  0.49322928
++7209	 -6.27314108	 -0.00042920	  0.00026295	  7.27271188	  0.99868890	  0.99930785  0.49322942
++7210	 -6.27314122	 -0.00042914	  0.00026291	  7.27271208	  0.99868908	  0.99930795  0.49322942
++7211	 -6.27314137	 -0.00042908	  0.00026287	  7.27271229	  0.99868926	  0.99930805  0.49322944
++7212	 -6.27314151	 -0.00042902	  0.00026284	  7.27271249	  0.99868944	  0.99930814  0.49322951
++7213	 -6.27314165	 -0.00042896	  0.00026280	  7.27271269	  0.99868962	  0.99930824  0.49322944
++7214	 -6.27314179	 -0.00042890	  0.00026276	  7.27271289	  0.99868980	  0.99930833  0.49322951
++7215	 -6.27314194	 -0.00042884	  0.00026273	  7.27271309	  0.99868999	  0.99930843  0.49322954
++7216	 -6.27314208	 -0.00042878	  0.00026269	  7.27271329	  0.99869017	  0.99930853  0.49322961
++7217	 -6.27314222	 -0.00042872	  0.00026265	  7.27271350	  0.99869035	  0.99930862  0.49322958
++7218	 -6.27314236	 -0.00042866	  0.00026262	  7.27271370	  0.99869053	  0.99930872  0.49322958
++7219	 -6.27314250	 -0.00042861	  0.00026258	  7.27271390	  0.99869071	  0.99930881  0.49322960
++7220	 -6.27314265	 -0.00042855	  0.00026255	  7.27271410	  0.99869089	  0.99930891  0.49322954
++7221	 -6.27314279	 -0.00042849	  0.00026251	  7.27271430	  0.99869107	  0.99930900  0.49322960
++7222	 -6.27314293	 -0.00042843	  0.00026247	  7.27271450	  0.99869125	  0.99930910  0.49322964
++7223	 -6.27314307	 -0.00042837	  0.00026244	  7.27271470	  0.99869144	  0.99930920  0.49322967
++7224	 -6.27314321	 -0.00042831	  0.00026240	  7.27271491	  0.99869162	  0.99930929  0.49322963
++7225	 -6.27314336	 -0.00042825	  0.00026236	  7.27271511	  0.99869180	  0.99930939  0.49322972
++7226	 -6.27314350	 -0.00042819	  0.00026233	  7.27271531	  0.99869198	  0.99930948  0.49322962
++7227	 -6.27314364	 -0.00042813	  0.00026229	  7.27271551	  0.99869216	  0.99930958  0.49322977
++7228	 -6.27314378	 -0.00042807	  0.00026226	  7.27271571	  0.99869234	  0.99930967  0.49322982
++7229	 -6.27314392	 -0.00042801	  0.00026222	  7.27271591	  0.99869252	  0.99930977  0.49322974
++7230	 -6.27314406	 -0.00042795	  0.00026218	  7.27271611	  0.99869270	  0.99930986  0.49322983
++7231	 -6.27314421	 -0.00042789	  0.00026215	  7.27271631	  0.99869288	  0.99930996  0.49322981
++7232	 -6.27314435	 -0.00042783	  0.00026211	  7.27271651	  0.99869306	  0.99931005  0.49322987
++7233	 -6.27314449	 -0.00042778	  0.00026207	  7.27271671	  0.99869325	  0.99931015  0.49322991
++7234	 -6.27314463	 -0.00042772	  0.00026204	  7.27271691	  0.99869343	  0.99931025  0.49322985
++7235	 -6.27314477	 -0.00042766	  0.00026200	  7.27271711	  0.99869361	  0.99931034  0.49322989
++7236	 -6.27314491	 -0.00042760	  0.00026197	  7.27271731	  0.99869379	  0.99931044  0.49322995
++7237	 -6.27314505	 -0.00042754	  0.00026193	  7.27271752	  0.99869397	  0.99931053  0.49322998
++7238	 -6.27314520	 -0.00042748	  0.00026189	  7.27271772	  0.99869415	  0.99931063  0.49322992
++7239	 -6.27314534	 -0.00042742	  0.00026186	  7.27271792	  0.99869433	  0.99931072  0.49322999
++7240	 -6.27314548	 -0.00042736	  0.00026182	  7.27271812	  0.99869451	  0.99931082  0.49323014
++7241	 -6.27314562	 -0.00042730	  0.00026178	  7.27271832	  0.99869469	  0.99931091  0.49323001
++7242	 -6.27314576	 -0.00042724	  0.00026175	  7.27271852	  0.99869487	  0.99931101  0.49323007
++7243	 -6.27314590	 -0.00042719	  0.00026171	  7.27271872	  0.99869505	  0.99931110  0.49323010
++7244	 -6.27314604	 -0.00042713	  0.00026168	  7.27271892	  0.99869523	  0.99931120  0.49323018
++7245	 -6.27314618	 -0.00042707	  0.00026164	  7.27271912	  0.99869541	  0.99931129  0.49323018
++7246	 -6.27314633	 -0.00042701	  0.00026160	  7.27271932	  0.99869559	  0.99931139  0.49323016
++7247	 -6.27314647	 -0.00042695	  0.00026157	  7.27271952	  0.99869577	  0.99931148  0.49323007
++7248	 -6.27314661	 -0.00042689	  0.00026153	  7.27271972	  0.99869595	  0.99931158  0.49323022
++7249	 -6.27314675	 -0.00042683	  0.00026150	  7.27271992	  0.99869613	  0.99931167  0.49323025
++7250	 -6.27314689	 -0.00042677	  0.00026146	  7.27272012	  0.99869631	  0.99931177  0.49323030
++7251	 -6.27314703	 -0.00042671	  0.00026142	  7.27272032	  0.99869649	  0.99931186  0.49323027
++7252	 -6.27314717	 -0.00042666	  0.00026139	  7.27272051	  0.99869667	  0.99931196  0.49323031
++7253	 -6.27314731	 -0.00042660	  0.00026135	  7.27272071	  0.99869685	  0.99931205  0.49323029
++7254	 -6.27314745	 -0.00042654	  0.00026132	  7.27272091	  0.99869703	  0.99931215  0.49323033
++7255	 -6.27314759	 -0.00042648	  0.00026128	  7.27272111	  0.99869721	  0.99931224  0.49323043
++7256	 -6.27314773	 -0.00042642	  0.00026124	  7.27272131	  0.99869739	  0.99931234  0.49323035
++7257	 -6.27314787	 -0.00042636	  0.00026121	  7.27272151	  0.99869757	  0.99931243  0.49323032
++7258	 -6.27314801	 -0.00042630	  0.00026117	  7.27272171	  0.99869775	  0.99931253  0.49323043
++7259	 -6.27314815	 -0.00042624	  0.00026114	  7.27272191	  0.99869792	  0.99931262  0.49323038
++7260	 -6.27314830	 -0.00042619	  0.00026110	  7.27272211	  0.99869810	  0.99931272  0.49323055
++7261	 -6.27314844	 -0.00042613	  0.00026106	  7.27272231	  0.99869828	  0.99931281  0.49323047
++7262	 -6.27314858	 -0.00042607	  0.00026103	  7.27272251	  0.99869846	  0.99931290  0.49323039
++7263	 -6.27314872	 -0.00042601	  0.00026099	  7.27272271	  0.99869864	  0.99931300  0.49323039
++7264	 -6.27314886	 -0.00042595	  0.00026096	  7.27272291	  0.99869882	  0.99931309  0.49323057
++7265	 -6.27314900	 -0.00042589	  0.00026092	  7.27272310	  0.99869900	  0.99931319  0.49323051
++7266	 -6.27314914	 -0.00042583	  0.00026088	  7.27272330	  0.99869918	  0.99931328  0.49323056
++7267	 -6.27314928	 -0.00042578	  0.00026085	  7.27272350	  0.99869936	  0.99931338  0.49323064
++7268	 -6.27314942	 -0.00042572	  0.00026081	  7.27272370	  0.99869954	  0.99931347  0.49323065
++7269	 -6.27314956	 -0.00042566	  0.00026078	  7.27272390	  0.99869972	  0.99931357  0.49323065
++7270	 -6.27314970	 -0.00042560	  0.00026074	  7.27272410	  0.99869989	  0.99931366  0.49323070
++7271	 -6.27314984	 -0.00042554	  0.00026070	  7.27272430	  0.99870007	  0.99931375  0.49323062
++7272	 -6.27314998	 -0.00042548	  0.00026067	  7.27272450	  0.99870025	  0.99931385  0.49323063
++7273	 -6.27315012	 -0.00042542	  0.00026063	  7.27272469	  0.99870043	  0.99931394  0.49323075
++7274	 -6.27315026	 -0.00042537	  0.00026060	  7.27272489	  0.99870061	  0.99931404  0.49323074
++7275	 -6.27315040	 -0.00042531	  0.00026056	  7.27272509	  0.99870079	  0.99931413  0.49323081
++7276	 -6.27315054	 -0.00042525	  0.00026052	  7.27272529	  0.99870097	  0.99931423  0.49323082
++7277	 -6.27315068	 -0.00042519	  0.00026049	  7.27272549	  0.99870115	  0.99931432  0.49323079
++7278	 -6.27315082	 -0.00042513	  0.00026045	  7.27272569	  0.99870132	  0.99931441  0.49323072
++7279	 -6.27315096	 -0.00042507	  0.00026042	  7.27272588	  0.99870150	  0.99931451  0.49323088
++7280	 -6.27315110	 -0.00042502	  0.00026038	  7.27272608	  0.99870168	  0.99931460  0.49323096
++7281	 -6.27315124	 -0.00042496	  0.00026035	  7.27272628	  0.99870186	  0.99931470  0.49323088
++7282	 -6.27315138	 -0.00042490	  0.00026031	  7.27272648	  0.99870204	  0.99931479  0.49323085
++7283	 -6.27315152	 -0.00042484	  0.00026027	  7.27272668	  0.99870222	  0.99931489  0.49323089
++7284	 -6.27315165	 -0.00042478	  0.00026024	  7.27272687	  0.99870239	  0.99931498  0.49323085
++7285	 -6.27315179	 -0.00042472	  0.00026020	  7.27272707	  0.99870257	  0.99931507  0.49323101
++7286	 -6.27315193	 -0.00042467	  0.00026017	  7.27272727	  0.99870275	  0.99931517  0.49323094
++7287	 -6.27315207	 -0.00042461	  0.00026013	  7.27272747	  0.99870293	  0.99931526  0.49323104
++7288	 -6.27315221	 -0.00042455	  0.00026010	  7.27272766	  0.99870311	  0.99931535  0.49323100
++7289	 -6.27315235	 -0.00042449	  0.00026006	  7.27272786	  0.99870328	  0.99931545  0.49323105
++7290	 -6.27315249	 -0.00042443	  0.00026002	  7.27272806	  0.99870346	  0.99931554  0.49323112
++7291	 -6.27315263	 -0.00042437	  0.00025999	  7.27272826	  0.99870364	  0.99931564  0.49323100
++7292	 -6.27315277	 -0.00042432	  0.00025995	  7.27272845	  0.99870382	  0.99931573  0.49323104
++7293	 -6.27315291	 -0.00042426	  0.00025992	  7.27272865	  0.99870399	  0.99931582  0.49323113
++7294	 -6.27315305	 -0.00042420	  0.00025988	  7.27272885	  0.99870417	  0.99931592  0.49323100
++7295	 -6.27315319	 -0.00042414	  0.00025985	  7.27272905	  0.99870435	  0.99931601  0.49323118
++7296	 -6.27315333	 -0.00042408	  0.00025981	  7.27272924	  0.99870453	  0.99931611  0.49323122
++7297	 -6.27315347	 -0.00042403	  0.00025978	  7.27272944	  0.99870470	  0.99931620  0.49323123
++7298	 -6.27315360	 -0.00042397	  0.00025974	  7.27272964	  0.99870488	  0.99931629  0.49323124
++7299	 -6.27315374	 -0.00042391	  0.00025970	  7.27272983	  0.99870506	  0.99931639  0.49323127
++7300	 -6.27315388	 -0.00042385	  0.00025967	  7.27273003	  0.99870524	  0.99931648  0.49323133
++7301	 -6.27315402	 -0.00042379	  0.00025963	  7.27273023	  0.99870541	  0.99931657  0.49323140
++7302	 -6.27315416	 -0.00042374	  0.00025960	  7.27273042	  0.99870559	  0.99931667  0.49323133
++7303	 -6.27315430	 -0.00042368	  0.00025956	  7.27273062	  0.99870577	  0.99931676  0.49323138
++7304	 -6.27315444	 -0.00042362	  0.00025953	  7.27273082	  0.99870595	  0.99931685  0.49323140
++7305	 -6.27315458	 -0.00042356	  0.00025949	  7.27273101	  0.99870612	  0.99931695  0.49323145
++7306	 -6.27315472	 -0.00042350	  0.00025946	  7.27273121	  0.99870630	  0.99931704  0.49323139
++7307	 -6.27315485	 -0.00042345	  0.00025942	  7.27273141	  0.99870648	  0.99931713  0.49323136
++7308	 -6.27315499	 -0.00042339	  0.00025938	  7.27273160	  0.99870665	  0.99931723  0.49323144
++7309	 -6.27315513	 -0.00042333	  0.00025935	  7.27273180	  0.99870683	  0.99931732  0.49323141
++7310	 -6.27315527	 -0.00042327	  0.00025931	  7.27273200	  0.99870701	  0.99931741  0.49323140
++7311	 -6.27315541	 -0.00042321	  0.00025928	  7.27273219	  0.99870719	  0.99931751  0.49323155
++7312	 -6.27315555	 -0.00042316	  0.00025924	  7.27273239	  0.99870736	  0.99931760  0.49323157
++7313	 -6.27315569	 -0.00042310	  0.00025921	  7.27273259	  0.99870754	  0.99931769  0.49323161
++7314	 -6.27315582	 -0.00042304	  0.00025917	  7.27273278	  0.99870772	  0.99931779  0.49323157
++7315	 -6.27315596	 -0.00042298	  0.00025914	  7.27273298	  0.99870789	  0.99931788  0.49323162
++7316	 -6.27315610	 -0.00042292	  0.00025910	  7.27273318	  0.99870807	  0.99931797  0.49323164
++7317	 -6.27315624	 -0.00042287	  0.00025907	  7.27273337	  0.99870825	  0.99931807  0.49323172
++7318	 -6.27315638	 -0.00042281	  0.00025903	  7.27273357	  0.99870842	  0.99931816  0.49323163
++7319	 -6.27315652	 -0.00042275	  0.00025899	  7.27273376	  0.99870860	  0.99931825  0.49323158
++7320	 -6.27315665	 -0.00042269	  0.00025896	  7.27273396	  0.99870877	  0.99931835  0.49323168
++7321	 -6.27315679	 -0.00042264	  0.00025892	  7.27273416	  0.99870895	  0.99931844  0.49323175
++7322	 -6.27315693	 -0.00042258	  0.00025889	  7.27273435	  0.99870913	  0.99931853  0.49323172
++7323	 -6.27315707	 -0.00042252	  0.00025885	  7.27273455	  0.99870930	  0.99931863  0.49323175
++7324	 -6.27315721	 -0.00042246	  0.00025882	  7.27273474	  0.99870948	  0.99931872  0.49323179
++7325	 -6.27315734	 -0.00042241	  0.00025878	  7.27273494	  0.99870966	  0.99931881  0.49323178
++7326	 -6.27315748	 -0.00042235	  0.00025875	  7.27273513	  0.99870983	  0.99931891  0.49323183
++7327	 -6.27315762	 -0.00042229	  0.00025871	  7.27273533	  0.99871001	  0.99931900  0.49323180
++7328	 -6.27315776	 -0.00042223	  0.00025868	  7.27273552	  0.99871018	  0.99931909  0.49323181
++7329	 -6.27315790	 -0.00042218	  0.00025864	  7.27273572	  0.99871036	  0.99931918  0.49323188
++7330	 -6.27315803	 -0.00042212	  0.00025861	  7.27273592	  0.99871054	  0.99931928  0.49323197
++7331	 -6.27315817	 -0.00042206	  0.00025857	  7.27273611	  0.99871071	  0.99931937  0.49323190
++7332	 -6.27315831	 -0.00042200	  0.00025854	  7.27273631	  0.99871089	  0.99931946  0.49323185
++7333	 -6.27315845	 -0.00042194	  0.00025850	  7.27273650	  0.99871106	  0.99931956  0.49323199
++7334	 -6.27315858	 -0.00042189	  0.00025846	  7.27273670	  0.99871124	  0.99931965  0.49323204
++7335	 -6.27315872	 -0.00042183	  0.00025843	  7.27273689	  0.99871141	  0.99931974  0.49323191
++7336	 -6.27315886	 -0.00042177	  0.00025839	  7.27273709	  0.99871159	  0.99931983  0.49323202
++7337	 -6.27315900	 -0.00042171	  0.00025836	  7.27273728	  0.99871177	  0.99931993  0.49323199
++7338	 -6.27315913	 -0.00042166	  0.00025832	  7.27273748	  0.99871194	  0.99932002  0.49323200
++7339	 -6.27315927	 -0.00042160	  0.00025829	  7.27273767	  0.99871212	  0.99932011  0.49323212
++7340	 -6.27315941	 -0.00042154	  0.00025825	  7.27273787	  0.99871229	  0.99932020  0.49323215
++7341	 -6.27315955	 -0.00042149	  0.00025822	  7.27273806	  0.99871247	  0.99932030  0.49323211
++7342	 -6.27315968	 -0.00042143	  0.00025818	  7.27273826	  0.99871264	  0.99932039  0.49323217
++7343	 -6.27315982	 -0.00042137	  0.00025815	  7.27273845	  0.99871282	  0.99932048  0.49323219
++7344	 -6.27315996	 -0.00042131	  0.00025811	  7.27273864	  0.99871299	  0.99932057  0.49323223
++7345	 -6.27316010	 -0.00042126	  0.00025808	  7.27273884	  0.99871317	  0.99932067  0.49323224
++7346	 -6.27316023	 -0.00042120	  0.00025804	  7.27273903	  0.99871334	  0.99932076  0.49323221
++7347	 -6.27316037	 -0.00042114	  0.00025801	  7.27273923	  0.99871352	  0.99932085  0.49323224
++7348	 -6.27316051	 -0.00042108	  0.00025797	  7.27273942	  0.99871369	  0.99932094  0.49323220
++7349	 -6.27316064	 -0.00042103	  0.00025794	  7.27273962	  0.99871387	  0.99932104  0.49323229
++7350	 -6.27316078	 -0.00042097	  0.00025790	  7.27273981	  0.99871404	  0.99932113  0.49323228
++7351	 -6.27316092	 -0.00042091	  0.00025787	  7.27274001	  0.99871422	  0.99932122  0.49323228
++7352	 -6.27316105	 -0.00042085	  0.00025783	  7.27274020	  0.99871439	  0.99932131  0.49323234
++7353	 -6.27316119	 -0.00042080	  0.00025780	  7.27274039	  0.99871457	  0.99932141  0.49323243
++7354	 -6.27316133	 -0.00042074	  0.00025776	  7.27274059	  0.99871474	  0.99932150  0.49323241
++7355	 -6.27316147	 -0.00042068	  0.00025773	  7.27274078	  0.99871492	  0.99932159  0.49323242
++7356	 -6.27316160	 -0.00042063	  0.00025769	  7.27274098	  0.99871509	  0.99932168  0.49323234
++7357	 -6.27316174	 -0.00042057	  0.00025766	  7.27274117	  0.99871527	  0.99932177  0.49323243
++7358	 -6.27316188	 -0.00042051	  0.00025762	  7.27274136	  0.99871544	  0.99932187  0.49323249
++7359	 -6.27316201	 -0.00042045	  0.00025759	  7.27274156	  0.99871562	  0.99932196  0.49323249
++7360	 -6.27316215	 -0.00042040	  0.00025755	  7.27274175	  0.99871579	  0.99932205  0.49323255
++7361	 -6.27316229	 -0.00042034	  0.00025752	  7.27274195	  0.99871597	  0.99932214  0.49323261
++7362	 -6.27316242	 -0.00042028	  0.00025748	  7.27274214	  0.99871614	  0.99932223  0.49323266
++7363	 -6.27316256	 -0.00042023	  0.00025745	  7.27274233	  0.99871631	  0.99932233  0.49323261
++7364	 -6.27316270	 -0.00042017	  0.00025741	  7.27274253	  0.99871649	  0.99932242  0.49323265
++7365	 -6.27316283	 -0.00042011	  0.00025738	  7.27274272	  0.99871666	  0.99932251  0.49323261
++7366	 -6.27316297	 -0.00042006	  0.00025734	  7.27274291	  0.99871684	  0.99932260  0.49323268
++7367	 -6.27316311	 -0.00042000	  0.00025731	  7.27274311	  0.99871701	  0.99932269  0.49323261
++7368	 -6.27316324	 -0.00041994	  0.00025727	  7.27274330	  0.99871719	  0.99932279  0.49323277
++7369	 -6.27316338	 -0.00041988	  0.00025724	  7.27274349	  0.99871736	  0.99932288  0.49323278
++7370	 -6.27316351	 -0.00041983	  0.00025720	  7.27274369	  0.99871753	  0.99932297  0.49323270
++7371	 -6.27316365	 -0.00041977	  0.00025717	  7.27274388	  0.99871771	  0.99932306  0.49323262
++7372	 -6.27316379	 -0.00041971	  0.00025713	  7.27274407	  0.99871788	  0.99932315  0.49323267
++7373	 -6.27316392	 -0.00041966	  0.00025710	  7.27274427	  0.99871806	  0.99932325  0.49323282
++7374	 -6.27316406	 -0.00041960	  0.00025706	  7.27274446	  0.99871823	  0.99932334  0.49323274
++7375	 -6.27316420	 -0.00041954	  0.00025703	  7.27274465	  0.99871840	  0.99932343  0.49323276
++7376	 -6.27316433	 -0.00041949	  0.00025699	  7.27274485	  0.99871858	  0.99932352  0.49323279
++7377	 -6.27316447	 -0.00041943	  0.00025696	  7.27274504	  0.99871875	  0.99932361  0.49323285
++7378	 -6.27316460	 -0.00041937	  0.00025692	  7.27274523	  0.99871892	  0.99932370  0.49323286
++7379	 -6.27316474	 -0.00041932	  0.00025689	  7.27274542	  0.99871910	  0.99932380  0.49323296
++7380	 -6.27316488	 -0.00041926	  0.00025685	  7.27274562	  0.99871927	  0.99932389  0.49323294
++7381	 -6.27316501	 -0.00041920	  0.00025682	  7.27274581	  0.99871944	  0.99932398  0.49323292
++7382	 -6.27316515	 -0.00041915	  0.00025678	  7.27274600	  0.99871962	  0.99932407  0.49323285
++7383	 -6.27316528	 -0.00041909	  0.00025675	  7.27274619	  0.99871979	  0.99932416  0.49323292
++7384	 -6.27316542	 -0.00041903	  0.00025671	  7.27274639	  0.99871996	  0.99932425  0.49323303
++7385	 -6.27316555	 -0.00041898	  0.00025668	  7.27274658	  0.99872014	  0.99932435  0.49323312
++7386	 -6.27316569	 -0.00041892	  0.00025664	  7.27274677	  0.99872031	  0.99932444  0.49323326
++7387	 -6.27316583	 -0.00041886	  0.00025661	  7.27274696	  0.99872048	  0.99932453  0.49323308
++7388	 -6.27316596	 -0.00041881	  0.00025658	  7.27274716	  0.99872066	  0.99932462  0.49323307
++7389	 -6.27316610	 -0.00041875	  0.00025654	  7.27274735	  0.99872083	  0.99932471  0.49323314
++7390	 -6.27316623	 -0.00041869	  0.00025651	  7.27274754	  0.99872100	  0.99932480  0.49323312
++7391	 -6.27316637	 -0.00041864	  0.00025647	  7.27274773	  0.99872118	  0.99932489  0.49323320
++7392	 -6.27316650	 -0.00041858	  0.00025644	  7.27274793	  0.99872135	  0.99932498  0.49323311
++7393	 -6.27316664	 -0.00041852	  0.00025640	  7.27274812	  0.99872152	  0.99932508  0.49323311
++7394	 -6.27316677	 -0.00041847	  0.00025637	  7.27274831	  0.99872170	  0.99932517  0.49323317
++7395	 -6.27316691	 -0.00041841	  0.00025633	  7.27274850	  0.99872187	  0.99932526  0.49323323
++7396	 -6.27316705	 -0.00041835	  0.00025630	  7.27274869	  0.99872204	  0.99932535  0.49323325
++7397	 -6.27316718	 -0.00041830	  0.00025626	  7.27274888	  0.99872221	  0.99932544  0.49323334
++7398	 -6.27316732	 -0.00041824	  0.00025623	  7.27274908	  0.99872239	  0.99932553  0.49323332
++7399	 -6.27316745	 -0.00041818	  0.00025619	  7.27274927	  0.99872256	  0.99932562  0.49323331
++7400	 -6.27316759	 -0.00041813	  0.00025616	  7.27274946	  0.99872273	  0.99932571  0.49323331
++7401	 -6.27316772	 -0.00041807	  0.00025612	  7.27274965	  0.99872290	  0.99932581  0.49323346
++7402	 -6.27316786	 -0.00041801	  0.00025609	  7.27274984	  0.99872308	  0.99932590  0.49323331
++7403	 -6.27316799	 -0.00041796	  0.00025606	  7.27275003	  0.99872325	  0.99932599  0.49323339
++7404	 -6.27316813	 -0.00041790	  0.00025602	  7.27275023	  0.99872342	  0.99932608  0.49323343
++7405	 -6.27316826	 -0.00041784	  0.00025599	  7.27275042	  0.99872359	  0.99932617  0.49323337
++7406	 -6.27316840	 -0.00041779	  0.00025595	  7.27275061	  0.99872377	  0.99932626  0.49323342
++7407	 -6.27316853	 -0.00041773	  0.00025592	  7.27275080	  0.99872394	  0.99932635  0.49323347
++7408	 -6.27316867	 -0.00041768	  0.00025588	  7.27275099	  0.99872411	  0.99932644  0.49323353
++7409	 -6.27316880	 -0.00041762	  0.00025585	  7.27275118	  0.99872428	  0.99932653  0.49323349
++7410	 -6.27316894	 -0.00041756	  0.00025581	  7.27275137	  0.99872446	  0.99932662  0.49323358
++7411	 -6.27316907	 -0.00041751	  0.00025578	  7.27275157	  0.99872463	  0.99932671  0.49323354
++7412	 -6.27316921	 -0.00041745	  0.00025574	  7.27275176	  0.99872480	  0.99932681  0.49323350
++7413	 -6.27316934	 -0.00041739	  0.00025571	  7.27275195	  0.99872497	  0.99932690  0.49323356
++7414	 -6.27316948	 -0.00041734	  0.00025568	  7.27275214	  0.99872514	  0.99932699  0.49323355
++7415	 -6.27316961	 -0.00041728	  0.00025564	  7.27275233	  0.99872532	  0.99932708  0.49323359
++7416	 -6.27316974	 -0.00041722	  0.00025561	  7.27275252	  0.99872549	  0.99932717  0.49323360
++7417	 -6.27316988	 -0.00041717	  0.00025557	  7.27275271	  0.99872566	  0.99932726  0.49323362
++7418	 -6.27317001	 -0.00041711	  0.00025554	  7.27275290	  0.99872583	  0.99932735  0.49323369
++7419	 -6.27317015	 -0.00041706	  0.00025550	  7.27275309	  0.99872600	  0.99932744  0.49323369
++7420	 -6.27317028	 -0.00041700	  0.00025547	  7.27275328	  0.99872617	  0.99932753  0.49323368
++7421	 -6.27317042	 -0.00041694	  0.00025543	  7.27275347	  0.99872635	  0.99932762  0.49323375
++7422	 -6.27317055	 -0.00041689	  0.00025540	  7.27275366	  0.99872652	  0.99932771  0.49323378
++7423	 -6.27317069	 -0.00041683	  0.00025537	  7.27275385	  0.99872669	  0.99932780  0.49323373
++7424	 -6.27317082	 -0.00041678	  0.00025533	  7.27275405	  0.99872686	  0.99932789  0.49323370
++7425	 -6.27317095	 -0.00041672	  0.00025530	  7.27275424	  0.99872703	  0.99932798  0.49323379
++7426	 -6.27317109	 -0.00041666	  0.00025526	  7.27275443	  0.99872720	  0.99932807  0.49323375
++7427	 -6.27317122	 -0.00041661	  0.00025523	  7.27275462	  0.99872738	  0.99932816  0.49323392
++7428	 -6.27317136	 -0.00041655	  0.00025519	  7.27275481	  0.99872755	  0.99932826  0.49323391
++7429	 -6.27317149	 -0.00041649	  0.00025516	  7.27275500	  0.99872772	  0.99932835  0.49323391
++7430	 -6.27317163	 -0.00041644	  0.00025512	  7.27275519	  0.99872789	  0.99932844  0.49323388
++7431	 -6.27317176	 -0.00041638	  0.00025509	  7.27275538	  0.99872806	  0.99932853  0.49323395
++7432	 -6.27317189	 -0.00041633	  0.00025506	  7.27275557	  0.99872823	  0.99932862  0.49323385
++7433	 -6.27317203	 -0.00041627	  0.00025502	  7.27275576	  0.99872840	  0.99932871  0.49323392
++7434	 -6.27317216	 -0.00041621	  0.00025499	  7.27275595	  0.99872857	  0.99932880  0.49323402
++7435	 -6.27317230	 -0.00041616	  0.00025495	  7.27275614	  0.99872874	  0.99932889  0.49323405
++7436	 -6.27317243	 -0.00041610	  0.00025492	  7.27275633	  0.99872892	  0.99932898  0.49323405
++7437	 -6.27317256	 -0.00041605	  0.00025488	  7.27275652	  0.99872909	  0.99932907  0.49323408
++7438	 -6.27317270	 -0.00041599	  0.00025485	  7.27275671	  0.99872926	  0.99932916  0.49323410
++7439	 -6.27317283	 -0.00041594	  0.00025482	  7.27275690	  0.99872943	  0.99932925  0.49323410
++7440	 -6.27317297	 -0.00041588	  0.00025478	  7.27275709	  0.99872960	  0.99932934  0.49323416
++7441	 -6.27317310	 -0.00041582	  0.00025475	  7.27275728	  0.99872977	  0.99932943  0.49323413
++7442	 -6.27317323	 -0.00041577	  0.00025471	  7.27275746	  0.99872994	  0.99932952  0.49323409
++7443	 -6.27317337	 -0.00041571	  0.00025468	  7.27275765	  0.99873011	  0.99932961  0.49323425
++7444	 -6.27317350	 -0.00041566	  0.00025465	  7.27275784	  0.99873028	  0.99932970  0.49323426
++7445	 -6.27317363	 -0.00041560	  0.00025461	  7.27275803	  0.99873045	  0.99932979  0.49323421
++7446	 -6.27317377	 -0.00041554	  0.00025458	  7.27275822	  0.99873062	  0.99932988  0.49323430
++7447	 -6.27317390	 -0.00041549	  0.00025454	  7.27275841	  0.99873079	  0.99932997  0.49323422
++7448	 -6.27317403	 -0.00041543	  0.00025451	  7.27275860	  0.99873096	  0.99933006  0.49323429
++7449	 -6.27317417	 -0.00041538	  0.00025447	  7.27275879	  0.99873113	  0.99933015  0.49323420
++7450	 -6.27317430	 -0.00041532	  0.00025444	  7.27275898	  0.99873130	  0.99933024  0.49323427
++7451	 -6.27317443	 -0.00041527	  0.00025441	  7.27275917	  0.99873147	  0.99933033  0.49323431
++7452	 -6.27317457	 -0.00041521	  0.00025437	  7.27275936	  0.99873164	  0.99933042  0.49323443
++7453	 -6.27317470	 -0.00041515	  0.00025434	  7.27275955	  0.99873181	  0.99933051  0.49323428
++7454	 -6.27317483	 -0.00041510	  0.00025430	  7.27275974	  0.99873198	  0.99933060  0.49323443
++7455	 -6.27317497	 -0.00041504	  0.00025427	  7.27275992	  0.99873215	  0.99933069  0.49323437
++7456	 -6.27317510	 -0.00041499	  0.00025424	  7.27276011	  0.99873232	  0.99933078  0.49323454
++7457	 -6.27317523	 -0.00041493	  0.00025420	  7.27276030	  0.99873249	  0.99933087  0.49323446
++7458	 -6.27317537	 -0.00041488	  0.00025417	  7.27276049	  0.99873266	  0.99933096  0.49323436
++7459	 -6.27317550	 -0.00041482	  0.00025413	  7.27276068	  0.99873283	  0.99933105  0.49323455
++7460	 -6.27317563	 -0.00041476	  0.00025410	  7.27276087	  0.99873300	  0.99933114  0.49323443
++7461	 -6.27317577	 -0.00041471	  0.00025406	  7.27276106	  0.99873317	  0.99933123  0.49323444
++7462	 -6.27317590	 -0.00041465	  0.00025403	  7.27276124	  0.99873334	  0.99933132  0.49323452
++7463	 -6.27317603	 -0.00041460	  0.00025400	  7.27276143	  0.99873351	  0.99933140  0.49323465
++7464	 -6.27317616	 -0.00041454	  0.00025396	  7.27276162	  0.99873368	  0.99933149  0.49323452
++7465	 -6.27317630	 -0.00041449	  0.00025393	  7.27276181	  0.99873385	  0.99933158  0.49323459
++7466	 -6.27317643	 -0.00041443	  0.00025389	  7.27276200	  0.99873402	  0.99933167  0.49323462
++7467	 -6.27317656	 -0.00041438	  0.00025386	  7.27276219	  0.99873419	  0.99933176  0.49323457
++7468	 -6.27317670	 -0.00041432	  0.00025383	  7.27276237	  0.99873436	  0.99933185  0.49323468
++7469	 -6.27317683	 -0.00041427	  0.00025379	  7.27276256	  0.99873453	  0.99933194  0.49323479
++7470	 -6.27317696	 -0.00041421	  0.00025376	  7.27276275	  0.99873470	  0.99933203  0.49323481
++7471	 -6.27317709	 -0.00041415	  0.00025372	  7.27276294	  0.99873487	  0.99933212  0.49323465
++7472	 -6.27317723	 -0.00041410	  0.00025369	  7.27276313	  0.99873504	  0.99933221  0.49323467
++7473	 -6.27317736	 -0.00041404	  0.00025366	  7.27276332	  0.99873521	  0.99933230  0.49323474
++7474	 -6.27317749	 -0.00041399	  0.00025362	  7.27276350	  0.99873538	  0.99933239  0.49323475
++7475	 -6.27317762	 -0.00041393	  0.00025359	  7.27276369	  0.99873555	  0.99933248  0.49323489
++7476	 -6.27317776	 -0.00041388	  0.00025355	  7.27276388	  0.99873572	  0.99933257  0.49323478
++7477	 -6.27317789	 -0.00041382	  0.00025352	  7.27276407	  0.99873588	  0.99933266  0.49323490
++7478	 -6.27317802	 -0.00041377	  0.00025349	  7.27276425	  0.99873605	  0.99933275  0.49323500
++7479	 -6.27317815	 -0.00041371	  0.00025345	  7.27276444	  0.99873622	  0.99933283  0.49323486
++7480	 -6.27317829	 -0.00041366	  0.00025342	  7.27276463	  0.99873639	  0.99933292  0.49323491
++7481	 -6.27317842	 -0.00041360	  0.00025339	  7.27276482	  0.99873656	  0.99933301  0.49323473
++7482	 -6.27317855	 -0.00041355	  0.00025335	  7.27276500	  0.99873673	  0.99933310  0.49323495
++7483	 -6.27317868	 -0.00041349	  0.00025332	  7.27276519	  0.99873690	  0.99933319  0.49323495
++7484	 -6.27317882	 -0.00041344	  0.00025328	  7.27276538	  0.99873707	  0.99933328  0.49323487
++7485	 -6.27317895	 -0.00041338	  0.00025325	  7.27276557	  0.99873724	  0.99933337  0.49323500
++7486	 -6.27317908	 -0.00041333	  0.00025322	  7.27276575	  0.99873740	  0.99933346  0.49323493
++7487	 -6.27317921	 -0.00041327	  0.00025318	  7.27276594	  0.99873757	  0.99933355  0.49323497
++7488	 -6.27317934	 -0.00041321	  0.00025315	  7.27276613	  0.99873774	  0.99933364  0.49323507
++7489	 -6.27317948	 -0.00041316	  0.00025311	  7.27276632	  0.99873791	  0.99933373  0.49323512
++7490	 -6.27317961	 -0.00041310	  0.00025308	  7.27276650	  0.99873808	  0.99933381  0.49323500
++7491	 -6.27317974	 -0.00041305	  0.00025305	  7.27276669	  0.99873825	  0.99933390  0.49323510
++7492	 -6.27317987	 -0.00041299	  0.00025301	  7.27276688	  0.99873842	  0.99933399  0.49323520
++7493	 -6.27318000	 -0.00041294	  0.00025298	  7.27276706	  0.99873858	  0.99933408  0.49323515
++7494	 -6.27318014	 -0.00041288	  0.00025295	  7.27276725	  0.99873875	  0.99933417  0.49323523
++7495	 -6.27318027	 -0.00041283	  0.00025291	  7.27276744	  0.99873892	  0.99933426  0.49323516
++7496	 -6.27318040	 -0.00041277	  0.00025288	  7.27276762	  0.99873909	  0.99933435  0.49323517
++7497	 -6.27318053	 -0.00041272	  0.00025284	  7.27276781	  0.99873926	  0.99933444  0.49323519
++7498	 -6.27318066	 -0.00041266	  0.00025281	  7.27276800	  0.99873942	  0.99933453  0.49323515
++7499	 -6.27318079	 -0.00041261	  0.00025278	  7.27276818	  0.99873959	  0.99933461  0.49323538
++7500	 -6.27318093	 -0.00041255	  0.00025274	  7.27276837	  0.99873976	  0.99933470  0.49323529
++7501	 -6.27318106	 -0.00041250	  0.00025271	  7.27276856	  0.99873993	  0.99933479  0.49323537
++7502	 -6.27318119	 -0.00041244	  0.00025268	  7.27276874	  0.99874010	  0.99933488  0.49323534
++7503	 -6.27318132	 -0.00041239	  0.00025264	  7.27276893	  0.99874026	  0.99933497  0.49323537
++7504	 -6.27318145	 -0.00041233	  0.00025261	  7.27276912	  0.99874043	  0.99933506  0.49323540
++7505	 -6.27318158	 -0.00041228	  0.00025258	  7.27276930	  0.99874060	  0.99933515  0.49323539
++7506	 -6.27318171	 -0.00041222	  0.00025254	  7.27276949	  0.99874077	  0.99933523  0.49323536
++7507	 -6.27318185	 -0.00041217	  0.00025251	  7.27276968	  0.99874094	  0.99933532  0.49323541
++7508	 -6.27318198	 -0.00041211	  0.00025247	  7.27276986	  0.99874110	  0.99933541  0.49323529
++7509	 -6.27318211	 -0.00041206	  0.00025244	  7.27277005	  0.99874127	  0.99933550  0.49323554
++7510	 -6.27318224	 -0.00041200	  0.00025241	  7.27277023	  0.99874144	  0.99933559  0.49323556
++7511	 -6.27318237	 -0.00041195	  0.00025237	  7.27277042	  0.99874161	  0.99933568  0.49323548
++7512	 -6.27318250	 -0.00041190	  0.00025234	  7.27277061	  0.99874177	  0.99933577  0.49323555
++7513	 -6.27318263	 -0.00041184	  0.00025231	  7.27277079	  0.99874194	  0.99933585  0.49323555
++7514	 -6.27318276	 -0.00041179	  0.00025227	  7.27277098	  0.99874211	  0.99933594  0.49323566
++7515	 -6.27318290	 -0.00041173	  0.00025224	  7.27277117	  0.99874228	  0.99933603  0.49323552
++7516	 -6.27318303	 -0.00041168	  0.00025221	  7.27277135	  0.99874244	  0.99933612  0.49323561
++7517	 -6.27318316	 -0.00041162	  0.00025217	  7.27277154	  0.99874261	  0.99933621  0.49323566
++7518	 -6.27318329	 -0.00041157	  0.00025214	  7.27277172	  0.99874278	  0.99933630  0.49323555
++7519	 -6.27318342	 -0.00041151	  0.00025210	  7.27277191	  0.99874294	  0.99933638  0.49323560
++7520	 -6.27318355	 -0.00041146	  0.00025207	  7.27277209	  0.99874311	  0.99933647  0.49323570
++7521	 -6.27318368	 -0.00041140	  0.00025204	  7.27277228	  0.99874328	  0.99933656  0.49323566
++7522	 -6.27318381	 -0.00041135	  0.00025200	  7.27277246	  0.99874345	  0.99933665  0.49323580
++7523	 -6.27318394	 -0.00041129	  0.00025197	  7.27277265	  0.99874361	  0.99933674  0.49323573
++7524	 -6.27318407	 -0.00041124	  0.00025194	  7.27277284	  0.99874378	  0.99933682  0.49323588
++7525	 -6.27318420	 -0.00041118	  0.00025190	  7.27277302	  0.99874395	  0.99933691  0.49323574
++7526	 -6.27318434	 -0.00041113	  0.00025187	  7.27277321	  0.99874411	  0.99933700  0.49323584
++7527	 -6.27318447	 -0.00041107	  0.00025184	  7.27277339	  0.99874428	  0.99933709  0.49323574
++7528	 -6.27318460	 -0.00041102	  0.00025180	  7.27277358	  0.99874445	  0.99933718  0.49323586
++7529	 -6.27318473	 -0.00041097	  0.00025177	  7.27277376	  0.99874461	  0.99933726  0.49323593
++7530	 -6.27318486	 -0.00041091	  0.00025174	  7.27277395	  0.99874478	  0.99933735  0.49323592
++7531	 -6.27318499	 -0.00041086	  0.00025170	  7.27277413	  0.99874495	  0.99933744  0.49323598
++7532	 -6.27318512	 -0.00041080	  0.00025167	  7.27277432	  0.99874511	  0.99933753  0.49323589
++7533	 -6.27318525	 -0.00041075	  0.00025164	  7.27277450	  0.99874528	  0.99933762  0.49323587
++7534	 -6.27318538	 -0.00041069	  0.00025160	  7.27277469	  0.99874545	  0.99933770  0.49323605
++7535	 -6.27318551	 -0.00041064	  0.00025157	  7.27277487	  0.99874561	  0.99933779  0.49323594
++7536	 -6.27318564	 -0.00041058	  0.00025154	  7.27277506	  0.99874578	  0.99933788  0.49323599
++7537	 -6.27318577	 -0.00041053	  0.00025150	  7.27277524	  0.99874595	  0.99933797  0.49323604
++7538	 -6.27318590	 -0.00041048	  0.00025147	  7.27277543	  0.99874611	  0.99933806  0.49323602
++7539	 -6.27318603	 -0.00041042	  0.00025144	  7.27277561	  0.99874628	  0.99933814  0.49323601
++7540	 -6.27318616	 -0.00041037	  0.00025140	  7.27277580	  0.99874645	  0.99933823  0.49323601
++7541	 -6.27318629	 -0.00041031	  0.00025137	  7.27277598	  0.99874661	  0.99933832  0.49323608
++7542	 -6.27318642	 -0.00041026	  0.00025134	  7.27277616	  0.99874678	  0.99933841  0.49323616
++7543	 -6.27318655	 -0.00041020	  0.00025130	  7.27277635	  0.99874694	  0.99933849  0.49323617
++7544	 -6.27318668	 -0.00041015	  0.00025127	  7.27277653	  0.99874711	  0.99933858  0.49323615
++7545	 -6.27318681	 -0.00041009	  0.00025124	  7.27277672	  0.99874728	  0.99933867  0.49323614
++7546	 -6.27318694	 -0.00041004	  0.00025120	  7.27277690	  0.99874744	  0.99933876  0.49323615
++7547	 -6.27318707	 -0.00040999	  0.00025117	  7.27277709	  0.99874761	  0.99933884  0.49323610
++7548	 -6.27318720	 -0.00040993	  0.00025114	  7.27277727	  0.99874777	  0.99933893  0.49323628
++7549	 -6.27318733	 -0.00040988	  0.00025110	  7.27277746	  0.99874794	  0.99933902  0.49323634
++7550	 -6.27318746	 -0.00040982	  0.00025107	  7.27277764	  0.99874811	  0.99933911  0.49323627
++7551	 -6.27318759	 -0.00040977	  0.00025104	  7.27277782	  0.99874827	  0.99933919  0.49323622
++7552	 -6.27318772	 -0.00040971	  0.00025100	  7.27277801	  0.99874844	  0.99933928  0.49323631
++7553	 -6.27318785	 -0.00040966	  0.00025097	  7.27277819	  0.99874860	  0.99933937  0.49323628
++7554	 -6.27318798	 -0.00040961	  0.00025094	  7.27277838	  0.99874877	  0.99933946  0.49323627
++7555	 -6.27318811	 -0.00040955	  0.00025090	  7.27277856	  0.99874893	  0.99933954  0.49323637
++7556	 -6.27318824	 -0.00040950	  0.00025087	  7.27277874	  0.99874910	  0.99933963  0.49323632
++7557	 -6.27318837	 -0.00040944	  0.00025084	  7.27277893	  0.99874927	  0.99933972  0.49323640
++7558	 -6.27318850	 -0.00040939	  0.00025080	  7.27277911	  0.99874943	  0.99933981  0.49323651
++7559	 -6.27318863	 -0.00040934	  0.00025077	  7.27277929	  0.99874960	  0.99933989  0.49323644
++7560	 -6.27318876	 -0.00040928	  0.00025074	  7.27277948	  0.99874976	  0.99933998  0.49323637
++7561	 -6.27318889	 -0.00040923	  0.00025070	  7.27277966	  0.99874993	  0.99934007  0.49323647
++7562	 -6.27318902	 -0.00040917	  0.00025067	  7.27277985	  0.99875009	  0.99934016  0.49323644
++7563	 -6.27318915	 -0.00040912	  0.00025064	  7.27278003	  0.99875026	  0.99934024  0.49323643
++7564	 -6.27318928	 -0.00040906	  0.00025060	  7.27278021	  0.99875042	  0.99934033  0.49323648
++7565	 -6.27318941	 -0.00040901	  0.00025057	  7.27278040	  0.99875059	  0.99934042  0.49323655
++7566	 -6.27318954	 -0.00040896	  0.00025054	  7.27278058	  0.99875075	  0.99934050  0.49323657
++7567	 -6.27318967	 -0.00040890	  0.00025051	  7.27278076	  0.99875092	  0.99934059  0.49323664
++7568	 -6.27318979	 -0.00040885	  0.00025047	  7.27278095	  0.99875108	  0.99934068  0.49323657
++7569	 -6.27318992	 -0.00040879	  0.00025044	  7.27278113	  0.99875125	  0.99934077  0.49323666
++7570	 -6.27319005	 -0.00040874	  0.00025041	  7.27278131	  0.99875141	  0.99934085  0.49323663
++7571	 -6.27319018	 -0.00040869	  0.00025037	  7.27278150	  0.99875158	  0.99934094  0.49323672
++7572	 -6.27319031	 -0.00040863	  0.00025034	  7.27278168	  0.99875174	  0.99934103  0.49323665
++7573	 -6.27319044	 -0.00040858	  0.00025031	  7.27278186	  0.99875191	  0.99934111  0.49323670
++7574	 -6.27319057	 -0.00040852	  0.00025027	  7.27278204	  0.99875207	  0.99934120  0.49323671
++7575	 -6.27319070	 -0.00040847	  0.00025024	  7.27278223	  0.99875224	  0.99934129  0.49323673
++7576	 -6.27319083	 -0.00040842	  0.00025021	  7.27278241	  0.99875240	  0.99934137  0.49323684
++7577	 -6.27319096	 -0.00040836	  0.00025017	  7.27278259	  0.99875257	  0.99934146  0.49323687
++7578	 -6.27319109	 -0.00040831	  0.00025014	  7.27278278	  0.99875273	  0.99934155  0.49323685
++7579	 -6.27319121	 -0.00040826	  0.00025011	  7.27278296	  0.99875290	  0.99934164  0.49323688
++7580	 -6.27319134	 -0.00040820	  0.00025008	  7.27278314	  0.99875306	  0.99934172  0.49323675
++7581	 -6.27319147	 -0.00040815	  0.00025004	  7.27278332	  0.99875322	  0.99934181  0.49323678
++7582	 -6.27319160	 -0.00040809	  0.00025001	  7.27278351	  0.99875339	  0.99934190  0.49323687
++7583	 -6.27319173	 -0.00040804	  0.00024998	  7.27278369	  0.99875355	  0.99934198  0.49323686
++7584	 -6.27319186	 -0.00040799	  0.00024994	  7.27278387	  0.99875372	  0.99934207  0.49323698
++7585	 -6.27319199	 -0.00040793	  0.00024991	  7.27278405	  0.99875388	  0.99934216  0.49323692
++7586	 -6.27319212	 -0.00040788	  0.00024988	  7.27278424	  0.99875405	  0.99934224  0.49323708
++7587	 -6.27319224	 -0.00040783	  0.00024985	  7.27278442	  0.99875421	  0.99934233  0.49323704
++7588	 -6.27319237	 -0.00040777	  0.00024981	  7.27278460	  0.99875437	  0.99934242  0.49323700
++7589	 -6.27319250	 -0.00040772	  0.00024978	  7.27278478	  0.99875454	  0.99934250  0.49323693
++7590	 -6.27319263	 -0.00040766	  0.00024975	  7.27278497	  0.99875470	  0.99934259  0.49323702
++7591	 -6.27319276	 -0.00040761	  0.00024971	  7.27278515	  0.99875487	  0.99934268  0.49323716
++7592	 -6.27319289	 -0.00040756	  0.00024968	  7.27278533	  0.99875503	  0.99934276  0.49323703
++7593	 -6.27319302	 -0.00040750	  0.00024965	  7.27278551	  0.99875519	  0.99934285  0.49323706
++7594	 -6.27319314	 -0.00040745	  0.00024961	  7.27278569	  0.99875536	  0.99934294  0.49323706
++7595	 -6.27319327	 -0.00040740	  0.00024958	  7.27278588	  0.99875552	  0.99934302  0.49323714
++7596	 -6.27319340	 -0.00040734	  0.00024955	  7.27278606	  0.99875569	  0.99934311  0.49323706
++7597	 -6.27319353	 -0.00040729	  0.00024952	  7.27278624	  0.99875585	  0.99934320  0.49323708
++7598	 -6.27319366	 -0.00040724	  0.00024948	  7.27278642	  0.99875601	  0.99934328  0.49323729
++7599	 -6.27319379	 -0.00040718	  0.00024945	  7.27278660	  0.99875618	  0.99934337  0.49323724
++7600	 -6.27319391	 -0.00040713	  0.00024942	  7.27278679	  0.99875634	  0.99934345  0.49323721
++7601	 -6.27319404	 -0.00040707	  0.00024938	  7.27278697	  0.99875650	  0.99934354  0.49323728
++7602	 -6.27319417	 -0.00040702	  0.00024935	  7.27278715	  0.99875667	  0.99934363  0.49323732
++7603	 -6.27319430	 -0.00040697	  0.00024932	  7.27278733	  0.99875683	  0.99934371  0.49323735
++7604	 -6.27319443	 -0.00040691	  0.00024929	  7.27278751	  0.99875700	  0.99934380  0.49323736
++7605	 -6.27319455	 -0.00040686	  0.00024925	  7.27278769	  0.99875716	  0.99934389  0.49323725
++7606	 -6.27319468	 -0.00040681	  0.00024922	  7.27278788	  0.99875732	  0.99934397  0.49323738
++7607	 -6.27319481	 -0.00040675	  0.00024919	  7.27278806	  0.99875749	  0.99934406  0.49323735
++7608	 -6.27319494	 -0.00040670	  0.00024916	  7.27278824	  0.99875765	  0.99934414  0.49323731
++7609	 -6.27319507	 -0.00040665	  0.00024912	  7.27278842	  0.99875781	  0.99934423  0.49323743
++7610	 -6.27319519	 -0.00040659	  0.00024909	  7.27278860	  0.99875798	  0.99934432  0.49323750
++7611	 -6.27319532	 -0.00040654	  0.00024906	  7.27278878	  0.99875814	  0.99934440  0.49323738
++7612	 -6.27319545	 -0.00040649	  0.00024902	  7.27278896	  0.99875830	  0.99934449  0.49323751
++7613	 -6.27319558	 -0.00040643	  0.00024899	  7.27278914	  0.99875846	  0.99934457  0.49323752
++7614	 -6.27319571	 -0.00040638	  0.00024896	  7.27278933	  0.99875863	  0.99934466  0.49323741
++7615	 -6.27319583	 -0.00040633	  0.00024893	  7.27278951	  0.99875879	  0.99934475  0.49323749
++7616	 -6.27319596	 -0.00040627	  0.00024889	  7.27278969	  0.99875895	  0.99934483  0.49323755
++7617	 -6.27319609	 -0.00040622	  0.00024886	  7.27278987	  0.99875912	  0.99934492  0.49323762
++7618	 -6.27319622	 -0.00040617	  0.00024883	  7.27279005	  0.99875928	  0.99934501  0.49323759
++7619	 -6.27319634	 -0.00040611	  0.00024880	  7.27279023	  0.99875944	  0.99934509  0.49323760
++7620	 -6.27319647	 -0.00040606	  0.00024876	  7.27279041	  0.99875960	  0.99934518  0.49323757
++7621	 -6.27319660	 -0.00040601	  0.00024873	  7.27279059	  0.99875977	  0.99934526  0.49323761
++7622	 -6.27319673	 -0.00040595	  0.00024870	  7.27279077	  0.99875993	  0.99934535  0.49323762
++7623	 -6.27319685	 -0.00040590	  0.00024867	  7.27279095	  0.99876009	  0.99934543  0.49323771
++7624	 -6.27319698	 -0.00040585	  0.00024863	  7.27279113	  0.99876026	  0.99934552  0.49323775
++7625	 -6.27319711	 -0.00040579	  0.00024860	  7.27279131	  0.99876042	  0.99934561  0.49323777
++7626	 -6.27319724	 -0.00040574	  0.00024857	  7.27279149	  0.99876058	  0.99934569  0.49323761
++7627	 -6.27319736	 -0.00040569	  0.00024853	  7.27279168	  0.99876074	  0.99934578  0.49323772
++7628	 -6.27319749	 -0.00040563	  0.00024850	  7.27279186	  0.99876091	  0.99934586  0.49323767
++7629	 -6.27319762	 -0.00040558	  0.00024847	  7.27279204	  0.99876107	  0.99934595  0.49323779
++7630	 -6.27319774	 -0.00040553	  0.00024844	  7.27279222	  0.99876123	  0.99934603  0.49323782
++7631	 -6.27319787	 -0.00040547	  0.00024840	  7.27279240	  0.99876139	  0.99934612  0.49323776
++7632	 -6.27319800	 -0.00040542	  0.00024837	  7.27279258	  0.99876156	  0.99934621  0.49323782
++7633	 -6.27319813	 -0.00040537	  0.00024834	  7.27279276	  0.99876172	  0.99934629  0.49323787
++7634	 -6.27319825	 -0.00040532	  0.00024831	  7.27279294	  0.99876188	  0.99934638  0.49323783
++7635	 -6.27319838	 -0.00040526	  0.00024827	  7.27279312	  0.99876204	  0.99934646  0.49323795
++7636	 -6.27319851	 -0.00040521	  0.00024824	  7.27279330	  0.99876220	  0.99934655  0.49323788
++7637	 -6.27319863	 -0.00040516	  0.00024821	  7.27279348	  0.99876237	  0.99934663  0.49323798
++7638	 -6.27319876	 -0.00040510	  0.00024818	  7.27279366	  0.99876253	  0.99934672  0.49323799
++7639	 -6.27319889	 -0.00040505	  0.00024814	  7.27279384	  0.99876269	  0.99934681  0.49323794
++7640	 -6.27319901	 -0.00040500	  0.00024811	  7.27279402	  0.99876285	  0.99934689  0.49323812
++7641	 -6.27319914	 -0.00040494	  0.00024808	  7.27279420	  0.99876301	  0.99934698  0.49323800
++7642	 -6.27319927	 -0.00040489	  0.00024805	  7.27279438	  0.99876318	  0.99934706  0.49323799
++7643	 -6.27319939	 -0.00040484	  0.00024801	  7.27279456	  0.99876334	  0.99934715  0.49323807
++7644	 -6.27319952	 -0.00040479	  0.00024798	  7.27279474	  0.99876350	  0.99934723  0.49323804
++7645	 -6.27319965	 -0.00040473	  0.00024795	  7.27279492	  0.99876366	  0.99934732  0.49323807
++7646	 -6.27319977	 -0.00040468	  0.00024792	  7.27279510	  0.99876382	  0.99934740  0.49323796
++7647	 -6.27319990	 -0.00040463	  0.00024788	  7.27279527	  0.99876398	  0.99934749  0.49323820
++7648	 -6.27320003	 -0.00040457	  0.00024785	  7.27279545	  0.99876415	  0.99934757  0.49323815
++7649	 -6.27320015	 -0.00040452	  0.00024782	  7.27279563	  0.99876431	  0.99934766  0.49323813
++7650	 -6.27320028	 -0.00040447	  0.00024779	  7.27279581	  0.99876447	  0.99934774  0.49323819
++7651	 -6.27320041	 -0.00040442	  0.00024776	  7.27279599	  0.99876463	  0.99934783  0.49323817
++7652	 -6.27320053	 -0.00040436	  0.00024772	  7.27279617	  0.99876479	  0.99934791  0.49323809
++7653	 -6.27320066	 -0.00040431	  0.00024769	  7.27279635	  0.99876495	  0.99934800  0.49323823
++7654	 -6.27320079	 -0.00040426	  0.00024766	  7.27279653	  0.99876511	  0.99934809  0.49323818
++7655	 -6.27320091	 -0.00040420	  0.00024763	  7.27279671	  0.99876528	  0.99934817  0.49323822
++7656	 -6.27320104	 -0.00040415	  0.00024759	  7.27279689	  0.99876544	  0.99934826  0.49323828
++7657	 -6.27320117	 -0.00040410	  0.00024756	  7.27279707	  0.99876560	  0.99934834  0.49323852
++7658	 -6.27320129	 -0.00040405	  0.00024753	  7.27279725	  0.99876576	  0.99934843  0.49323826
++7659	 -6.27320142	 -0.00040399	  0.00024750	  7.27279743	  0.99876592	  0.99934851  0.49323833
++7660	 -6.27320154	 -0.00040394	  0.00024746	  7.27279760	  0.99876608	  0.99934860  0.49323832
++7661	 -6.27320167	 -0.00040389	  0.00024743	  7.27279778	  0.99876624	  0.99934868  0.49323839
++7662	 -6.27320180	 -0.00040383	  0.00024740	  7.27279796	  0.99876640	  0.99934877  0.49323831
++7663	 -6.27320192	 -0.00040378	  0.00024737	  7.27279814	  0.99876656	  0.99934885  0.49323847
++7664	 -6.27320205	 -0.00040373	  0.00024733	  7.27279832	  0.99876673	  0.99934894  0.49323846
++7665	 -6.27320217	 -0.00040368	  0.00024730	  7.27279850	  0.99876689	  0.99934902  0.49323853
++7666	 -6.27320230	 -0.00040362	  0.00024727	  7.27279868	  0.99876705	  0.99934911  0.49323849
++7667	 -6.27320243	 -0.00040357	  0.00024724	  7.27279886	  0.99876721	  0.99934919  0.49323847
++7668	 -6.27320255	 -0.00040352	  0.00024721	  7.27279903	  0.99876737	  0.99934928  0.49323843
++7669	 -6.27320268	 -0.00040347	  0.00024717	  7.27279921	  0.99876753	  0.99934936  0.49323854
++7670	 -6.27320280	 -0.00040341	  0.00024714	  7.27279939	  0.99876769	  0.99934944  0.49323862
++7671	 -6.27320293	 -0.00040336	  0.00024711	  7.27279957	  0.99876785	  0.99934953  0.49323861
++7672	 -6.27320306	 -0.00040331	  0.00024708	  7.27279975	  0.99876801	  0.99934961  0.49323862
++7673	 -6.27320318	 -0.00040326	  0.00024704	  7.27279993	  0.99876817	  0.99934970  0.49323859
++7674	 -6.27320331	 -0.00040320	  0.00024701	  7.27280010	  0.99876833	  0.99934978  0.49323864
++7675	 -6.27320343	 -0.00040315	  0.00024698	  7.27280028	  0.99876849	  0.99934987  0.49323872
++7676	 -6.27320356	 -0.00040310	  0.00024695	  7.27280046	  0.99876865	  0.99934995  0.49323853
++7677	 -6.27320368	 -0.00040305	  0.00024692	  7.27280064	  0.99876881	  0.99935004  0.49323874
++7678	 -6.27320381	 -0.00040299	  0.00024688	  7.27280082	  0.99876897	  0.99935012  0.49323866
++7679	 -6.27320394	 -0.00040294	  0.00024685	  7.27280099	  0.99876913	  0.99935021  0.49323878
++7680	 -6.27320406	 -0.00040289	  0.00024682	  7.27280117	  0.99876929	  0.99935029  0.49323872
++7681	 -6.27320419	 -0.00040284	  0.00024679	  7.27280135	  0.99876945	  0.99935038  0.49323872
++7682	 -6.27320431	 -0.00040278	  0.00024676	  7.27280153	  0.99876961	  0.99935046  0.49323876
++7683	 -6.27320444	 -0.00040273	  0.00024672	  7.27280171	  0.99876978	  0.99935055  0.49323884
++7684	 -6.27320456	 -0.00040268	  0.00024669	  7.27280188	  0.99876994	  0.99935063  0.49323875
++7685	 -6.27320469	 -0.00040263	  0.00024666	  7.27280206	  0.99877010	  0.99935071  0.49323881
++7686	 -6.27320481	 -0.00040257	  0.00024663	  7.27280224	  0.99877026	  0.99935080  0.49323883
++7687	 -6.27320494	 -0.00040252	  0.00024659	  7.27280242	  0.99877042	  0.99935088  0.49323893
++7688	 -6.27320506	 -0.00040247	  0.00024656	  7.27280259	  0.99877058	  0.99935097  0.49323897
++7689	 -6.27320519	 -0.00040242	  0.00024653	  7.27280277	  0.99877073	  0.99935105  0.49323888
++7690	 -6.27320532	 -0.00040237	  0.00024650	  7.27280295	  0.99877089	  0.99935114  0.49323894
++7691	 -6.27320544	 -0.00040231	  0.00024647	  7.27280313	  0.99877105	  0.99935122  0.49323891
++7692	 -6.27320557	 -0.00040226	  0.00024643	  7.27280330	  0.99877121	  0.99935130  0.49323883
++7693	 -6.27320569	 -0.00040221	  0.00024640	  7.27280348	  0.99877137	  0.99935139  0.49323900
++7694	 -6.27320582	 -0.00040216	  0.00024637	  7.27280366	  0.99877153	  0.99935147  0.49323894
++7695	 -6.27320594	 -0.00040210	  0.00024634	  7.27280384	  0.99877169	  0.99935156  0.49323913
++7696	 -6.27320607	 -0.00040205	  0.00024631	  7.27280401	  0.99877185	  0.99935164  0.49323892
++7697	 -6.27320619	 -0.00040200	  0.00024627	  7.27280419	  0.99877201	  0.99935173  0.49323905
++7698	 -6.27320632	 -0.00040195	  0.00024624	  7.27280437	  0.99877217	  0.99935181  0.49323908
++7699	 -6.27320644	 -0.00040190	  0.00024621	  7.27280455	  0.99877233	  0.99935189  0.49323912
++7700	 -6.27320657	 -0.00040184	  0.00024618	  7.27280472	  0.99877249	  0.99935198  0.49323907
++7701	 -6.27320669	 -0.00040179	  0.00024615	  7.27280490	  0.99877265	  0.99935206  0.49323901
++7702	 -6.27320682	 -0.00040174	  0.00024611	  7.27280508	  0.99877281	  0.99935215  0.49323923
++7703	 -6.27320694	 -0.00040169	  0.00024608	  7.27280525	  0.99877297	  0.99935223  0.49323914
++7704	 -6.27320706	 -0.00040163	  0.00024605	  7.27280543	  0.99877313	  0.99935231  0.49323921
++7705	 -6.27320719	 -0.00040158	  0.00024602	  7.27280561	  0.99877329	  0.99935240  0.49323926
++7706	 -6.27320731	 -0.00040153	  0.00024599	  7.27280578	  0.99877345	  0.99935248  0.49323926
++7707	 -6.27320744	 -0.00040148	  0.00024595	  7.27280596	  0.99877361	  0.99935257  0.49323918
++7708	 -6.27320756	 -0.00040143	  0.00024592	  7.27280614	  0.99877376	  0.99935265  0.49323936
++7709	 -6.27320769	 -0.00040137	  0.00024589	  7.27280631	  0.99877392	  0.99935273  0.49323929
++7710	 -6.27320781	 -0.00040132	  0.00024586	  7.27280649	  0.99877408	  0.99935282  0.49323934
++7711	 -6.27320794	 -0.00040127	  0.00024583	  7.27280667	  0.99877424	  0.99935290  0.49323932
++7712	 -6.27320806	 -0.00040122	  0.00024580	  7.27280684	  0.99877440	  0.99935299  0.49323931
++7713	 -6.27320819	 -0.00040117	  0.00024576	  7.27280702	  0.99877456	  0.99935307  0.49323926
++7714	 -6.27320831	 -0.00040111	  0.00024573	  7.27280720	  0.99877472	  0.99935315  0.49323938
++7715	 -6.27320843	 -0.00040106	  0.00024570	  7.27280737	  0.99877488	  0.99935324  0.49323939
++7716	 -6.27320856	 -0.00040101	  0.00024567	  7.27280755	  0.99877504	  0.99935332  0.49323934
++7717	 -6.27320868	 -0.00040096	  0.00024564	  7.27280773	  0.99877519	  0.99935341  0.49323939
++7718	 -6.27320881	 -0.00040091	  0.00024560	  7.27280790	  0.99877535	  0.99935349  0.49323943
++7719	 -6.27320893	 -0.00040085	  0.00024557	  7.27280808	  0.99877551	  0.99935357  0.49323942
++7720	 -6.27320906	 -0.00040080	  0.00024554	  7.27280825	  0.99877567	  0.99935366  0.49323947
++7721	 -6.27320918	 -0.00040075	  0.00024551	  7.27280843	  0.99877583	  0.99935374  0.49323951
++7722	 -6.27320930	 -0.00040070	  0.00024548	  7.27280861	  0.99877599	  0.99935382  0.49323953
++7723	 -6.27320943	 -0.00040065	  0.00024545	  7.27280878	  0.99877615	  0.99935391  0.49323955
++7724	 -6.27320955	 -0.00040059	  0.00024541	  7.27280896	  0.99877630	  0.99935399  0.49323962
++7725	 -6.27320968	 -0.00040054	  0.00024538	  7.27280913	  0.99877646	  0.99935408  0.49323956
++7726	 -6.27320980	 -0.00040049	  0.00024535	  7.27280931	  0.99877662	  0.99935416  0.49323962
++7727	 -6.27320993	 -0.00040044	  0.00024532	  7.27280949	  0.99877678	  0.99935424  0.49323958
++7728	 -6.27321005	 -0.00040039	  0.00024529	  7.27280966	  0.99877694	  0.99935433  0.49323965
++7729	 -6.27321017	 -0.00040034	  0.00024525	  7.27280984	  0.99877710	  0.99935441  0.49323969
++7730	 -6.27321030	 -0.00040028	  0.00024522	  7.27281001	  0.99877725	  0.99935449  0.49323976
++7731	 -6.27321042	 -0.00040023	  0.00024519	  7.27281019	  0.99877741	  0.99935458  0.49323970
++7732	 -6.27321054	 -0.00040018	  0.00024516	  7.27281036	  0.99877757	  0.99935466  0.49323974
++7733	 -6.27321067	 -0.00040013	  0.00024513	  7.27281054	  0.99877773	  0.99935474  0.49323974
++7734	 -6.27321079	 -0.00040008	  0.00024510	  7.27281072	  0.99877789	  0.99935483  0.49323966
++7735	 -6.27321092	 -0.00040003	  0.00024506	  7.27281089	  0.99877804	  0.99935491  0.49323980
++7736	 -6.27321104	 -0.00039997	  0.00024503	  7.27281107	  0.99877820	  0.99935499  0.49323982
++7737	 -6.27321116	 -0.00039992	  0.00024500	  7.27281124	  0.99877836	  0.99935508  0.49323984
++7738	 -6.27321129	 -0.00039987	  0.00024497	  7.27281142	  0.99877852	  0.99935516  0.49323979
++7739	 -6.27321141	 -0.00039982	  0.00024494	  7.27281159	  0.99877868	  0.99935524  0.49323984
++7740	 -6.27321153	 -0.00039977	  0.00024491	  7.27281177	  0.99877883	  0.99935533  0.49323987
++7741	 -6.27321166	 -0.00039972	  0.00024487	  7.27281194	  0.99877899	  0.99935541  0.49323994
++7742	 -6.27321178	 -0.00039966	  0.00024484	  7.27281212	  0.99877915	  0.99935549  0.49323989
++7743	 -6.27321191	 -0.00039961	  0.00024481	  7.27281229	  0.99877931	  0.99935558  0.49323986
++7744	 -6.27321203	 -0.00039956	  0.00024478	  7.27281247	  0.99877946	  0.99935566  0.49323995
++7745	 -6.27321215	 -0.00039951	  0.00024475	  7.27281264	  0.99877962	  0.99935574  0.49323997
++7746	 -6.27321228	 -0.00039946	  0.00024472	  7.27281282	  0.99877978	  0.99935583  0.49323996
++7747	 -6.27321240	 -0.00039941	  0.00024468	  7.27281299	  0.99877994	  0.99935591  0.49323998
++7748	 -6.27321252	 -0.00039935	  0.00024465	  7.27281317	  0.99878009	  0.99935599  0.49323996
++7749	 -6.27321265	 -0.00039930	  0.00024462	  7.27281334	  0.99878025	  0.99935608  0.49324002
++7750	 -6.27321277	 -0.00039925	  0.00024459	  7.27281352	  0.99878041	  0.99935616  0.49323998
++7751	 -6.27321289	 -0.00039920	  0.00024456	  7.27281369	  0.99878057	  0.99935624  0.49324001
++7752	 -6.27321302	 -0.00039915	  0.00024453	  7.27281387	  0.99878072	  0.99935632  0.49324014
++7753	 -6.27321314	 -0.00039910	  0.00024450	  7.27281404	  0.99878088	  0.99935641  0.49324019
++7754	 -6.27321326	 -0.00039905	  0.00024446	  7.27281422	  0.99878104	  0.99935649  0.49324012
++7755	 -6.27321338	 -0.00039899	  0.00024443	  7.27281439	  0.99878120	  0.99935657  0.49324003
++7756	 -6.27321351	 -0.00039894	  0.00024440	  7.27281457	  0.99878135	  0.99935666  0.49324013
++7757	 -6.27321363	 -0.00039889	  0.00024437	  7.27281474	  0.99878151	  0.99935674  0.49324013
++7758	 -6.27321375	 -0.00039884	  0.00024434	  7.27281491	  0.99878167	  0.99935682  0.49324017
++7759	 -6.27321388	 -0.00039879	  0.00024431	  7.27281509	  0.99878182	  0.99935690  0.49324022
++7760	 -6.27321400	 -0.00039874	  0.00024427	  7.27281526	  0.99878198	  0.99935699  0.49324015
++7761	 -6.27321412	 -0.00039869	  0.00024424	  7.27281544	  0.99878214	  0.99935707  0.49324036
++7762	 -6.27321425	 -0.00039863	  0.00024421	  7.27281561	  0.99878229	  0.99935715  0.49324026
++7763	 -6.27321437	 -0.00039858	  0.00024418	  7.27281579	  0.99878245	  0.99935724  0.49324022
++7764	 -6.27321449	 -0.00039853	  0.00024415	  7.27281596	  0.99878261	  0.99935732  0.49324031
++7765	 -6.27321461	 -0.00039848	  0.00024412	  7.27281613	  0.99878277	  0.99935740  0.49324028
++7766	 -6.27321474	 -0.00039843	  0.00024409	  7.27281631	  0.99878292	  0.99935748  0.49324030
++7767	 -6.27321486	 -0.00039838	  0.00024405	  7.27281648	  0.99878308	  0.99935757  0.49324023
++7768	 -6.27321498	 -0.00039833	  0.00024402	  7.27281666	  0.99878324	  0.99935765  0.49324037
++7769	 -6.27321511	 -0.00039828	  0.00024399	  7.27281683	  0.99878339	  0.99935773  0.49324036
++7770	 -6.27321523	 -0.00039822	  0.00024396	  7.27281700	  0.99878355	  0.99935782  0.49324044
++7771	 -6.27321535	 -0.00039817	  0.00024393	  7.27281718	  0.99878370	  0.99935790  0.49324039
++7772	 -6.27321547	 -0.00039812	  0.00024390	  7.27281735	  0.99878386	  0.99935798  0.49324042
++7773	 -6.27321560	 -0.00039807	  0.00024387	  7.27281752	  0.99878402	  0.99935806  0.49324055
++7774	 -6.27321572	 -0.00039802	  0.00024383	  7.27281770	  0.99878417	  0.99935815  0.49324042
++7775	 -6.27321584	 -0.00039797	  0.00024380	  7.27281787	  0.99878433	  0.99935823  0.49324044
++7776	 -6.27321596	 -0.00039792	  0.00024377	  7.27281805	  0.99878449	  0.99935831  0.49324041
++7777	 -6.27321609	 -0.00039787	  0.00024374	  7.27281822	  0.99878464	  0.99935839  0.49324060
++7778	 -6.27321621	 -0.00039781	  0.00024371	  7.27281839	  0.99878480	  0.99935848  0.49324044
++7779	 -6.27321633	 -0.00039776	  0.00024368	  7.27281857	  0.99878496	  0.99935856  0.49324054
++7780	 -6.27321645	 -0.00039771	  0.00024365	  7.27281874	  0.99878511	  0.99935864  0.49324046
++7781	 -6.27321658	 -0.00039766	  0.00024362	  7.27281891	  0.99878527	  0.99935872  0.49324052
++7782	 -6.27321670	 -0.00039761	  0.00024358	  7.27281909	  0.99878542	  0.99935881  0.49324063
++7783	 -6.27321682	 -0.00039756	  0.00024355	  7.27281926	  0.99878558	  0.99935889  0.49324081
++7784	 -6.27321694	 -0.00039751	  0.00024352	  7.27281943	  0.99878574	  0.99935897  0.49324067
++7785	 -6.27321706	 -0.00039746	  0.00024349	  7.27281961	  0.99878589	  0.99935905  0.49324080
++7786	 -6.27321719	 -0.00039741	  0.00024346	  7.27281978	  0.99878605	  0.99935913  0.49324070
++7787	 -6.27321731	 -0.00039736	  0.00024343	  7.27281995	  0.99878620	  0.99935922  0.49324061
++7788	 -6.27321743	 -0.00039730	  0.00024340	  7.27282013	  0.99878636	  0.99935930  0.49324072
++7789	 -6.27321755	 -0.00039725	  0.00024337	  7.27282030	  0.99878652	  0.99935938  0.49324071
++7790	 -6.27321767	 -0.00039720	  0.00024333	  7.27282047	  0.99878667	  0.99935946  0.49324076
++7791	 -6.27321780	 -0.00039715	  0.00024330	  7.27282064	  0.99878683	  0.99935955  0.49324084
++7792	 -6.27321792	 -0.00039710	  0.00024327	  7.27282082	  0.99878698	  0.99935963  0.49324086
++7793	 -6.27321804	 -0.00039705	  0.00024324	  7.27282099	  0.99878714	  0.99935971  0.49324068
++7794	 -6.27321816	 -0.00039700	  0.00024321	  7.27282116	  0.99878729	  0.99935979  0.49324078
++7795	 -6.27321828	 -0.00039695	  0.00024318	  7.27282134	  0.99878745	  0.99935987  0.49324088
++7796	 -6.27321841	 -0.00039690	  0.00024315	  7.27282151	  0.99878760	  0.99935996  0.49324077
++7797	 -6.27321853	 -0.00039685	  0.00024312	  7.27282168	  0.99878776	  0.99936004  0.49324091
++7798	 -6.27321865	 -0.00039680	  0.00024308	  7.27282185	  0.99878792	  0.99936012  0.49324089
++7799	 -6.27321877	 -0.00039674	  0.00024305	  7.27282203	  0.99878807	  0.99936020  0.49324098
++7800	 -6.27321889	 -0.00039669	  0.00024302	  7.27282220	  0.99878823	  0.99936028  0.49324089
++7801	 -6.27321901	 -0.00039664	  0.00024299	  7.27282237	  0.99878838	  0.99936037  0.49324096
++7802	 -6.27321914	 -0.00039659	  0.00024296	  7.27282254	  0.99878854	  0.99936045  0.49324110
++7803	 -6.27321926	 -0.00039654	  0.00024293	  7.27282272	  0.99878869	  0.99936053  0.49324104
++7804	 -6.27321938	 -0.00039649	  0.00024290	  7.27282289	  0.99878885	  0.99936061  0.49324115
++7805	 -6.27321950	 -0.00039644	  0.00024287	  7.27282306	  0.99878900	  0.99936069  0.49324105
++7806	 -6.27321962	 -0.00039639	  0.00024284	  7.27282323	  0.99878916	  0.99936078  0.49324108
++7807	 -6.27321974	 -0.00039634	  0.00024280	  7.27282341	  0.99878931	  0.99936086  0.49324101
++7808	 -6.27321987	 -0.00039629	  0.00024277	  7.27282358	  0.99878947	  0.99936094  0.49324102
++7809	 -6.27321999	 -0.00039624	  0.00024274	  7.27282375	  0.99878962	  0.99936102  0.49324113
++7810	 -6.27322011	 -0.00039619	  0.00024271	  7.27282392	  0.99878978	  0.99936110  0.49324108
++7811	 -6.27322023	 -0.00039613	  0.00024268	  7.27282409	  0.99878993	  0.99936119  0.49324117
++7812	 -6.27322035	 -0.00039608	  0.00024265	  7.27282427	  0.99879009	  0.99936127  0.49324125
++7813	 -6.27322047	 -0.00039603	  0.00024262	  7.27282444	  0.99879024	  0.99936135  0.49324106
++7814	 -6.27322059	 -0.00039598	  0.00024259	  7.27282461	  0.99879040	  0.99936143  0.49324119
++7815	 -6.27322071	 -0.00039593	  0.00024256	  7.27282478	  0.99879055	  0.99936151  0.49324110
++7816	 -6.27322084	 -0.00039588	  0.00024252	  7.27282495	  0.99879071	  0.99936159  0.49324126
++7817	 -6.27322096	 -0.00039583	  0.00024249	  7.27282513	  0.99879086	  0.99936168  0.49324122
++7818	 -6.27322108	 -0.00039578	  0.00024246	  7.27282530	  0.99879102	  0.99936176  0.49324129
++7819	 -6.27322120	 -0.00039573	  0.00024243	  7.27282547	  0.99879117	  0.99936184  0.49324129
++7820	 -6.27322132	 -0.00039568	  0.00024240	  7.27282564	  0.99879133	  0.99936192  0.49324124
++7821	 -6.27322144	 -0.00039563	  0.00024237	  7.27282581	  0.99879148	  0.99936200  0.49324135
++7822	 -6.27322156	 -0.00039558	  0.00024234	  7.27282598	  0.99879163	  0.99936208  0.49324138
++7823	 -6.27322168	 -0.00039553	  0.00024231	  7.27282616	  0.99879179	  0.99936216  0.49324133
++7824	 -6.27322180	 -0.00039548	  0.00024228	  7.27282633	  0.99879194	  0.99936225  0.49324140
++7825	 -6.27322193	 -0.00039543	  0.00024225	  7.27282650	  0.99879210	  0.99936233  0.49324130
++7826	 -6.27322205	 -0.00039538	  0.00024221	  7.27282667	  0.99879225	  0.99936241  0.49324149
++7827	 -6.27322217	 -0.00039533	  0.00024218	  7.27282684	  0.99879241	  0.99936249  0.49324143
++7828	 -6.27322229	 -0.00039528	  0.00024215	  7.27282701	  0.99879256	  0.99936257  0.49324140
++7829	 -6.27322241	 -0.00039522	  0.00024212	  7.27282718	  0.99879271	  0.99936265  0.49324158
++7830	 -6.27322253	 -0.00039517	  0.00024209	  7.27282736	  0.99879287	  0.99936273  0.49324147
++7831	 -6.27322265	 -0.00039512	  0.00024206	  7.27282753	  0.99879302	  0.99936282  0.49324156
++7832	 -6.27322277	 -0.00039507	  0.00024203	  7.27282770	  0.99879318	  0.99936290  0.49324153
++7833	 -6.27322289	 -0.00039502	  0.00024200	  7.27282787	  0.99879333	  0.99936298  0.49324143
++7834	 -6.27322301	 -0.00039497	  0.00024197	  7.27282804	  0.99879349	  0.99936306  0.49324134
++7835	 -6.27322313	 -0.00039492	  0.00024194	  7.27282821	  0.99879364	  0.99936314  0.49324161
++7836	 -6.27322325	 -0.00039487	  0.00024191	  7.27282838	  0.99879379	  0.99936322  0.49324161
++7837	 -6.27322337	 -0.00039482	  0.00024187	  7.27282855	  0.99879395	  0.99936330  0.49324164
++7838	 -6.27322349	 -0.00039477	  0.00024184	  7.27282872	  0.99879410	  0.99936339  0.49324176
++7839	 -6.27322362	 -0.00039472	  0.00024181	  7.27282889	  0.99879425	  0.99936347  0.49324160
++7840	 -6.27322374	 -0.00039467	  0.00024178	  7.27282907	  0.99879441	  0.99936355  0.49324157
++7841	 -6.27322386	 -0.00039462	  0.00024175	  7.27282924	  0.99879456	  0.99936363  0.49324158
++7842	 -6.27322398	 -0.00039457	  0.00024172	  7.27282941	  0.99879472	  0.99936371  0.49324166
++7843	 -6.27322410	 -0.00039452	  0.00024169	  7.27282958	  0.99879487	  0.99936379  0.49324172
++7844	 -6.27322422	 -0.00039447	  0.00024166	  7.27282975	  0.99879502	  0.99936387  0.49324177
++7845	 -6.27322434	 -0.00039442	  0.00024163	  7.27282992	  0.99879518	  0.99936395  0.49324175
++7846	 -6.27322446	 -0.00039437	  0.00024160	  7.27283009	  0.99879533	  0.99936403  0.49324173
++7847	 -6.27322458	 -0.00039432	  0.00024157	  7.27283026	  0.99879548	  0.99936412  0.49324183
++7848	 -6.27322470	 -0.00039427	  0.00024154	  7.27283043	  0.99879564	  0.99936420  0.49324189
++7849	 -6.27322482	 -0.00039422	  0.00024150	  7.27283060	  0.99879579	  0.99936428  0.49324183
++7850	 -6.27322494	 -0.00039417	  0.00024147	  7.27283077	  0.99879594	  0.99936436  0.49324176
++7851	 -6.27322506	 -0.00039412	  0.00024144	  7.27283094	  0.99879610	  0.99936444  0.49324183
++7852	 -6.27322518	 -0.00039407	  0.00024141	  7.27283111	  0.99879625	  0.99936452  0.49324186
++7853	 -6.27322530	 -0.00039402	  0.00024138	  7.27283128	  0.99879640	  0.99936460  0.49324198
++7854	 -6.27322542	 -0.00039397	  0.00024135	  7.27283145	  0.99879656	  0.99936468  0.49324210
++7855	 -6.27322554	 -0.00039392	  0.00024132	  7.27283162	  0.99879671	  0.99936476  0.49324198
++7856	 -6.27322566	 -0.00039387	  0.00024129	  7.27283179	  0.99879686	  0.99936484  0.49324205
++7857	 -6.27322578	 -0.00039382	  0.00024126	  7.27283196	  0.99879702	  0.99936492  0.49324207
++7858	 -6.27322590	 -0.00039377	  0.00024123	  7.27283213	  0.99879717	  0.99936501  0.49324191
++7859	 -6.27322602	 -0.00039372	  0.00024120	  7.27283230	  0.99879732	  0.99936509  0.49324201
++7860	 -6.27322614	 -0.00039367	  0.00024117	  7.27283247	  0.99879748	  0.99936517  0.49324194
++7861	 -6.27322626	 -0.00039362	  0.00024114	  7.27283264	  0.99879763	  0.99936525  0.49324211
++7862	 -6.27322638	 -0.00039357	  0.00024111	  7.27283281	  0.99879778	  0.99936533  0.49324210
++7863	 -6.27322650	 -0.00039352	  0.00024107	  7.27283298	  0.99879793	  0.99936541  0.49324195
++7864	 -6.27322662	 -0.00039347	  0.00024104	  7.27283315	  0.99879809	  0.99936549  0.49324205
++7865	 -6.27322674	 -0.00039342	  0.00024101	  7.27283332	  0.99879824	  0.99936557  0.49324210
++7866	 -6.27322686	 -0.00039337	  0.00024098	  7.27283349	  0.99879839	  0.99936565  0.49324214
++7867	 -6.27322698	 -0.00039332	  0.00024095	  7.27283366	  0.99879855	  0.99936573  0.49324202
++7868	 -6.27322710	 -0.00039327	  0.00024092	  7.27283383	  0.99879870	  0.99936581  0.49324209
++7869	 -6.27322722	 -0.00039322	  0.00024089	  7.27283400	  0.99879885	  0.99936589  0.49324208
++7870	 -6.27322734	 -0.00039317	  0.00024086	  7.27283417	  0.99879900	  0.99936597  0.49324207
++7871	 -6.27322746	 -0.00039312	  0.00024083	  7.27283434	  0.99879916	  0.99936605  0.49324215
++7872	 -6.27322757	 -0.00039307	  0.00024080	  7.27283451	  0.99879931	  0.99936613  0.49324220
++7873	 -6.27322769	 -0.00039302	  0.00024077	  7.27283468	  0.99879946	  0.99936621  0.49324229
++7874	 -6.27322781	 -0.00039297	  0.00024074	  7.27283485	  0.99879961	  0.99936630  0.49324226
++7875	 -6.27322793	 -0.00039292	  0.00024071	  7.27283502	  0.99879977	  0.99936638  0.49324230
++7876	 -6.27322805	 -0.00039287	  0.00024068	  7.27283519	  0.99879992	  0.99936646  0.49324236
++7877	 -6.27322817	 -0.00039282	  0.00024065	  7.27283535	  0.99880007	  0.99936654  0.49324229
++7878	 -6.27322829	 -0.00039277	  0.00024062	  7.27283552	  0.99880022	  0.99936662  0.49324245
++7879	 -6.27322841	 -0.00039272	  0.00024059	  7.27283569	  0.99880038	  0.99936670  0.49324230
++7880	 -6.27322853	 -0.00039267	  0.00024055	  7.27283586	  0.99880053	  0.99936678  0.49324241
++7881	 -6.27322865	 -0.00039262	  0.00024052	  7.27283603	  0.99880068	  0.99936686  0.49324234
++7882	 -6.27322877	 -0.00039257	  0.00024049	  7.27283620	  0.99880083	  0.99936694  0.49324231
++7883	 -6.27322889	 -0.00039252	  0.00024046	  7.27283637	  0.99880098	  0.99936702  0.49324244
++7884	 -6.27322901	 -0.00039247	  0.00024043	  7.27283654	  0.99880114	  0.99936710  0.49324243
++7885	 -6.27322913	 -0.00039242	  0.00024040	  7.27283671	  0.99880129	  0.99936718  0.49324251
++7886	 -6.27322924	 -0.00039237	  0.00024037	  7.27283688	  0.99880144	  0.99936726  0.49324242
++7887	 -6.27322936	 -0.00039232	  0.00024034	  7.27283704	  0.99880159	  0.99936734  0.49324245
++7888	 -6.27322948	 -0.00039227	  0.00024031	  7.27283721	  0.99880174	  0.99936742  0.49324248
++7889	 -6.27322960	 -0.00039222	  0.00024028	  7.27283738	  0.99880190	  0.99936750  0.49324240
++7890	 -6.27322972	 -0.00039217	  0.00024025	  7.27283755	  0.99880205	  0.99936758  0.49324256
++7891	 -6.27322984	 -0.00039212	  0.00024022	  7.27283772	  0.99880220	  0.99936766  0.49324270
++7892	 -6.27322996	 -0.00039207	  0.00024019	  7.27283789	  0.99880235	  0.99936774  0.49324265
++7893	 -6.27323008	 -0.00039202	  0.00024016	  7.27283806	  0.99880250	  0.99936782  0.49324254
++7894	 -6.27323020	 -0.00039197	  0.00024013	  7.27283822	  0.99880265	  0.99936790  0.49324268
++7895	 -6.27323032	 -0.00039192	  0.00024010	  7.27283839	  0.99880281	  0.99936798  0.49324263
++7896	 -6.27323043	 -0.00039187	  0.00024007	  7.27283856	  0.99880296	  0.99936806  0.49324257
++7897	 -6.27323055	 -0.00039182	  0.00024004	  7.27283873	  0.99880311	  0.99936814  0.49324271
++7898	 -6.27323067	 -0.00039177	  0.00024001	  7.27283890	  0.99880326	  0.99936822  0.49324263
++7899	 -6.27323079	 -0.00039172	  0.00023998	  7.27283907	  0.99880341	  0.99936830  0.49324259
++7900	 -6.27323091	 -0.00039167	  0.00023995	  7.27283923	  0.99880356	  0.99936838  0.49324272
++7901	 -6.27323103	 -0.00039162	  0.00023992	  7.27283940	  0.99880372	  0.99936846  0.49324266
++7902	 -6.27323115	 -0.00039158	  0.00023989	  7.27283957	  0.99880387	  0.99936854  0.49324277
++7903	 -6.27323126	 -0.00039153	  0.00023985	  7.27283974	  0.99880402	  0.99936862  0.49324283
++7904	 -6.27323138	 -0.00039148	  0.00023982	  7.27283991	  0.99880417	  0.99936870  0.49324288
++7905	 -6.27323150	 -0.00039143	  0.00023979	  7.27284008	  0.99880432	  0.99936878  0.49324274
++7906	 -6.27323162	 -0.00039138	  0.00023976	  7.27284024	  0.99880447	  0.99936886  0.49324289
++7907	 -6.27323174	 -0.00039133	  0.00023973	  7.27284041	  0.99880462	  0.99936894  0.49324287
++7908	 -6.27323186	 -0.00039128	  0.00023970	  7.27284058	  0.99880477	  0.99936902  0.49324285
++7909	 -6.27323198	 -0.00039123	  0.00023967	  7.27284075	  0.99880493	  0.99936910  0.49324283
++7910	 -6.27323209	 -0.00039118	  0.00023964	  7.27284091	  0.99880508	  0.99936918  0.49324290
++7911	 -6.27323221	 -0.00039113	  0.00023961	  7.27284108	  0.99880523	  0.99936926  0.49324280
++7912	 -6.27323233	 -0.00039108	  0.00023958	  7.27284125	  0.99880538	  0.99936934  0.49324296
++7913	 -6.27323245	 -0.00039103	  0.00023955	  7.27284142	  0.99880553	  0.99936942  0.49324284
++7914	 -6.27323257	 -0.00039098	  0.00023952	  7.27284159	  0.99880568	  0.99936950  0.49324285
++7915	 -6.27323268	 -0.00039093	  0.00023949	  7.27284175	  0.99880583	  0.99936958  0.49324302
++7916	 -6.27323280	 -0.00039088	  0.00023946	  7.27284192	  0.99880598	  0.99936966  0.49324295
++7917	 -6.27323292	 -0.00039083	  0.00023943	  7.27284209	  0.99880613	  0.99936974  0.49324320
++7918	 -6.27323304	 -0.00039078	  0.00023940	  7.27284226	  0.99880628	  0.99936982  0.49324315
++7919	 -6.27323316	 -0.00039073	  0.00023937	  7.27284242	  0.99880643	  0.99936990  0.49324296
++7920	 -6.27323328	 -0.00039069	  0.00023934	  7.27284259	  0.99880658	  0.99936997  0.49324298
++7921	 -6.27323339	 -0.00039064	  0.00023931	  7.27284276	  0.99880674	  0.99937005  0.49324310
++7922	 -6.27323351	 -0.00039059	  0.00023928	  7.27284292	  0.99880689	  0.99937013  0.49324316
++7923	 -6.27323363	 -0.00039054	  0.00023925	  7.27284309	  0.99880704	  0.99937021  0.49324305
++7924	 -6.27323375	 -0.00039049	  0.00023922	  7.27284326	  0.99880719	  0.99937029  0.49324317
++7925	 -6.27323387	 -0.00039044	  0.00023919	  7.27284343	  0.99880734	  0.99937037  0.49324316
++7926	 -6.27323398	 -0.00039039	  0.00023916	  7.27284359	  0.99880749	  0.99937045  0.49324322
++7927	 -6.27323410	 -0.00039034	  0.00023913	  7.27284376	  0.99880764	  0.99937053  0.49324310
++7928	 -6.27323422	 -0.00039029	  0.00023910	  7.27284393	  0.99880779	  0.99937061  0.49324325
++7929	 -6.27323434	 -0.00039024	  0.00023907	  7.27284409	  0.99880794	  0.99937069  0.49324319
++7930	 -6.27323445	 -0.00039019	  0.00023904	  7.27284426	  0.99880809	  0.99937077  0.49324326
++7931	 -6.27323457	 -0.00039014	  0.00023901	  7.27284443	  0.99880824	  0.99937085  0.49324329
++7932	 -6.27323469	 -0.00039009	  0.00023898	  7.27284460	  0.99880839	  0.99937093  0.49324333
++7933	 -6.27323481	 -0.00039005	  0.00023895	  7.27284476	  0.99880854	  0.99937101  0.49324318
++7934	 -6.27323493	 -0.00039000	  0.00023892	  7.27284493	  0.99880869	  0.99937109  0.49324318
++7935	 -6.27323504	 -0.00038995	  0.00023889	  7.27284510	  0.99880884	  0.99937117  0.49324337
++7936	 -6.27323516	 -0.00038990	  0.00023886	  7.27284526	  0.99880899	  0.99937124  0.49324337
++7937	 -6.27323528	 -0.00038985	  0.00023883	  7.27284543	  0.99880914	  0.99937132  0.49324350
++7938	 -6.27323540	 -0.00038980	  0.00023880	  7.27284560	  0.99880929	  0.99937140  0.49324334
++7939	 -6.27323551	 -0.00038975	  0.00023877	  7.27284576	  0.99880944	  0.99937148  0.49324341
++7940	 -6.27323563	 -0.00038970	  0.00023874	  7.27284593	  0.99880959	  0.99937156  0.49324338
++7941	 -6.27323575	 -0.00038965	  0.00023871	  7.27284609	  0.99880974	  0.99937164  0.49324344
++7942	 -6.27323587	 -0.00038960	  0.00023868	  7.27284626	  0.99880989	  0.99937172  0.49324362
++7943	 -6.27323598	 -0.00038955	  0.00023865	  7.27284643	  0.99881004	  0.99937180  0.49324347
++7944	 -6.27323610	 -0.00038951	  0.00023862	  7.27284659	  0.99881019	  0.99937188  0.49324345
++7945	 -6.27323622	 -0.00038946	  0.00023859	  7.27284676	  0.99881034	  0.99937196  0.49324353
++7946	 -6.27323633	 -0.00038941	  0.00023856	  7.27284693	  0.99881049	  0.99937204  0.49324361
++7947	 -6.27323645	 -0.00038936	  0.00023853	  7.27284709	  0.99881064	  0.99937211  0.49324364
++7948	 -6.27323657	 -0.00038931	  0.00023850	  7.27284726	  0.99881079	  0.99937219  0.49324360
++7949	 -6.27323669	 -0.00038926	  0.00023847	  7.27284743	  0.99881094	  0.99937227  0.49324354
++7950	 -6.27323680	 -0.00038921	  0.00023844	  7.27284759	  0.99881109	  0.99937235  0.49324359
++7951	 -6.27323692	 -0.00038916	  0.00023841	  7.27284776	  0.99881124	  0.99937243  0.49324355
++7952	 -6.27323704	 -0.00038911	  0.00023838	  7.27284792	  0.99881139	  0.99937251  0.49324369
++7953	 -6.27323715	 -0.00038907	  0.00023835	  7.27284809	  0.99881154	  0.99937259  0.49324366
++7954	 -6.27323727	 -0.00038902	  0.00023832	  7.27284826	  0.99881169	  0.99937267  0.49324363
++7955	 -6.27323739	 -0.00038897	  0.00023829	  7.27284842	  0.99881184	  0.99937275  0.49324368
++7956	 -6.27323751	 -0.00038892	  0.00023826	  7.27284859	  0.99881198	  0.99937282  0.49324385
++7957	 -6.27323762	 -0.00038887	  0.00023823	  7.27284875	  0.99881213	  0.99937290  0.49324375
++7958	 -6.27323774	 -0.00038882	  0.00023820	  7.27284892	  0.99881228	  0.99937298  0.49324381
++7959	 -6.27323786	 -0.00038877	  0.00023817	  7.27284908	  0.99881243	  0.99937306  0.49324383
++7960	 -6.27323797	 -0.00038872	  0.00023814	  7.27284925	  0.99881258	  0.99937314  0.49324389
++7961	 -6.27323809	 -0.00038867	  0.00023811	  7.27284942	  0.99881273	  0.99937322  0.49324387
++7962	 -6.27323821	 -0.00038863	  0.00023808	  7.27284958	  0.99881288	  0.99937330  0.49324385
++7963	 -6.27323832	 -0.00038858	  0.00023805	  7.27284975	  0.99881303	  0.99937338  0.49324378
++7964	 -6.27323844	 -0.00038853	  0.00023802	  7.27284991	  0.99881318	  0.99937345  0.49324377
++7965	 -6.27323856	 -0.00038848	  0.00023799	  7.27285008	  0.99881333	  0.99937353  0.49324388
++7966	 -6.27323867	 -0.00038843	  0.00023796	  7.27285024	  0.99881348	  0.99937361  0.49324392
++7967	 -6.27323879	 -0.00038838	  0.00023793	  7.27285041	  0.99881362	  0.99937369  0.49324396
++7968	 -6.27323891	 -0.00038833	  0.00023790	  7.27285057	  0.99881377	  0.99937377  0.49324387
++7969	 -6.27323902	 -0.00038828	  0.00023787	  7.27285074	  0.99881392	  0.99937385  0.49324395
++7970	 -6.27323914	 -0.00038824	  0.00023784	  7.27285090	  0.99881407	  0.99937393  0.49324401
++7971	 -6.27323926	 -0.00038819	  0.00023781	  7.27285107	  0.99881422	  0.99937400  0.49324397
++7972	 -6.27323937	 -0.00038814	  0.00023778	  7.27285124	  0.99881437	  0.99937408  0.49324409
++7973	 -6.27323949	 -0.00038809	  0.00023775	  7.27285140	  0.99881452	  0.99937416  0.49324390
++7974	 -6.27323961	 -0.00038804	  0.00023772	  7.27285157	  0.99881467	  0.99937424  0.49324412
++7975	 -6.27323972	 -0.00038799	  0.00023769	  7.27285173	  0.99881481	  0.99937432  0.49324405
++7976	 -6.27323984	 -0.00038794	  0.00023766	  7.27285190	  0.99881496	  0.99937440  0.49324413
++7977	 -6.27323996	 -0.00038789	  0.00023763	  7.27285206	  0.99881511	  0.99937448  0.49324398
++7978	 -6.27324007	 -0.00038785	  0.00023760	  7.27285223	  0.99881526	  0.99937455  0.49324408
++7979	 -6.27324019	 -0.00038780	  0.00023757	  7.27285239	  0.99881541	  0.99937463  0.49324411
++7980	 -6.27324030	 -0.00038775	  0.00023754	  7.27285256	  0.99881556	  0.99937471  0.49324404
++7981	 -6.27324042	 -0.00038770	  0.00023751	  7.27285272	  0.99881571	  0.99937479  0.49324417
++7982	 -6.27324054	 -0.00038765	  0.00023748	  7.27285289	  0.99881585	  0.99937487  0.49324417
++7983	 -6.27324065	 -0.00038760	  0.00023745	  7.27285305	  0.99881600	  0.99937495  0.49324417
++7984	 -6.27324077	 -0.00038755	  0.00023742	  7.27285321	  0.99881615	  0.99937502  0.49324410
++7985	 -6.27324089	 -0.00038751	  0.00023739	  7.27285338	  0.99881630	  0.99937510  0.49324415
++7986	 -6.27324100	 -0.00038746	  0.00023736	  7.27285354	  0.99881645	  0.99937518  0.49324415
++7987	 -6.27324112	 -0.00038741	  0.00023733	  7.27285371	  0.99881660	  0.99937526  0.49324428
++7988	 -6.27324123	 -0.00038736	  0.00023730	  7.27285387	  0.99881674	  0.99937534  0.49324427
++7989	 -6.27324135	 -0.00038731	  0.00023727	  7.27285404	  0.99881689	  0.99937541  0.49324429
++7990	 -6.27324147	 -0.00038726	  0.00023724	  7.27285420	  0.99881704	  0.99937549  0.49324429
++7991	 -6.27324158	 -0.00038722	  0.00023721	  7.27285437	  0.99881719	  0.99937557  0.49324431
++7992	 -6.27324170	 -0.00038717	  0.00023718	  7.27285453	  0.99881734	  0.99937565  0.49324418
++7993	 -6.27324181	 -0.00038712	  0.00023715	  7.27285469	  0.99881748	  0.99937573  0.49324436
++7994	 -6.27324193	 -0.00038707	  0.00023712	  7.27285486	  0.99881763	  0.99937581  0.49324427
++7995	 -6.27324205	 -0.00038702	  0.00023709	  7.27285502	  0.99881778	  0.99937588  0.49324438
++7996	 -6.27324216	 -0.00038697	  0.00023706	  7.27285519	  0.99881793	  0.99937596  0.49324441
++7997	 -6.27324228	 -0.00038693	  0.00023704	  7.27285535	  0.99881807	  0.99937604  0.49324425
++7998	 -6.27324239	 -0.00038688	  0.00023701	  7.27285552	  0.99881822	  0.99937612  0.49324444
++7999	 -6.27324251	 -0.00038683	  0.00023698	  7.27285568	  0.99881837	  0.99937620  0.49324437
++8000	 -6.27324262	 -0.00038678	  0.00023695	  7.27285584	  0.99881852	  0.99937627  0.49324451
++8001	 -6.27324274	 -0.00038673	  0.00023692	  7.27285601	  0.99881867	  0.99937635  0.49324443
++8002	 -6.27324286	 -0.00038668	  0.00023689	  7.27285617	  0.99881881	  0.99937643  0.49324463
++8003	 -6.27324297	 -0.00038664	  0.00023686	  7.27285634	  0.99881896	  0.99937651  0.49324464
++8004	 -6.27324309	 -0.00038659	  0.00023683	  7.27285650	  0.99881911	  0.99937659  0.49324460
++8005	 -6.27324320	 -0.00038654	  0.00023680	  7.27285666	  0.99881926	  0.99937666  0.49324474
++8006	 -6.27324332	 -0.00038649	  0.00023677	  7.27285683	  0.99881940	  0.99937674  0.49324457
++8007	 -6.27324343	 -0.00038644	  0.00023674	  7.27285699	  0.99881955	  0.99937682  0.49324464
++8008	 -6.27324355	 -0.00038639	  0.00023671	  7.27285716	  0.99881970	  0.99937690  0.49324452
++8009	 -6.27324366	 -0.00038635	  0.00023668	  7.27285732	  0.99881985	  0.99937697  0.49324451
++8010	 -6.27324378	 -0.00038630	  0.00023665	  7.27285748	  0.99881999	  0.99937705  0.49324463
++8011	 -6.27324390	 -0.00038625	  0.00023662	  7.27285765	  0.99882014	  0.99937713  0.49324460
++8012	 -6.27324401	 -0.00038620	  0.00023659	  7.27285781	  0.99882029	  0.99937721  0.49324461
++8013	 -6.27324413	 -0.00038615	  0.00023656	  7.27285797	  0.99882043	  0.99937729  0.49324473
++8014	 -6.27324424	 -0.00038610	  0.00023653	  7.27285814	  0.99882058	  0.99937736  0.49324474
++8015	 -6.27324436	 -0.00038606	  0.00023650	  7.27285830	  0.99882073	  0.99937744  0.49324465
++8016	 -6.27324447	 -0.00038601	  0.00023647	  7.27285846	  0.99882088	  0.99937752  0.49324475
++8017	 -6.27324459	 -0.00038596	  0.00023644	  7.27285863	  0.99882102	  0.99937760  0.49324482
++8018	 -6.27324470	 -0.00038591	  0.00023641	  7.27285879	  0.99882117	  0.99937767  0.49324468
++8019	 -6.27324482	 -0.00038586	  0.00023638	  7.27285895	  0.99882132	  0.99937775  0.49324472
++8020	 -6.27324493	 -0.00038582	  0.00023636	  7.27285912	  0.99882146	  0.99937783  0.49324478
++8021	 -6.27324505	 -0.00038577	  0.00023633	  7.27285928	  0.99882161	  0.99937791  0.49324486
++8022	 -6.27324516	 -0.00038572	  0.00023630	  7.27285944	  0.99882176	  0.99937798  0.49324500
++8023	 -6.27324528	 -0.00038567	  0.00023627	  7.27285961	  0.99882190	  0.99937806  0.49324482
++8024	 -6.27324539	 -0.00038562	  0.00023624	  7.27285977	  0.99882205	  0.99937814  0.49324496
++8025	 -6.27324551	 -0.00038558	  0.00023621	  7.27285993	  0.99882220	  0.99937822  0.49324495
++8026	 -6.27324562	 -0.00038553	  0.00023618	  7.27286009	  0.99882234	  0.99937829  0.49324492
++8027	 -6.27324574	 -0.00038548	  0.00023615	  7.27286026	  0.99882249	  0.99937837  0.49324476
++8028	 -6.27324585	 -0.00038543	  0.00023612	  7.27286042	  0.99882264	  0.99937845  0.49324499
++8029	 -6.27324597	 -0.00038538	  0.00023609	  7.27286058	  0.99882278	  0.99937853  0.49324495
++8030	 -6.27324608	 -0.00038534	  0.00023606	  7.27286075	  0.99882293	  0.99937860  0.49324497
++8031	 -6.27324620	 -0.00038529	  0.00023603	  7.27286091	  0.99882308	  0.99937868  0.49324499
++8032	 -6.27324631	 -0.00038524	  0.00023600	  7.27286107	  0.99882322	  0.99937876  0.49324496
++8033	 -6.27324643	 -0.00038519	  0.00023597	  7.27286123	  0.99882337	  0.99937884  0.49324507
++8034	 -6.27324654	 -0.00038514	  0.00023594	  7.27286140	  0.99882352	  0.99937891  0.49324506
++8035	 -6.27324666	 -0.00038510	  0.00023591	  7.27286156	  0.99882366	  0.99937899  0.49324519
++8036	 -6.27324677	 -0.00038505	  0.00023588	  7.27286172	  0.99882381	  0.99937907  0.49324510
++8037	 -6.27324689	 -0.00038500	  0.00023586	  7.27286188	  0.99882396	  0.99937914  0.49324509
++8038	 -6.27324700	 -0.00038495	  0.00023583	  7.27286205	  0.99882410	  0.99937922  0.49324510
++8039	 -6.27324711	 -0.00038490	  0.00023580	  7.27286221	  0.99882425	  0.99937930  0.49324517
++8040	 -6.27324723	 -0.00038486	  0.00023577	  7.27286237	  0.99882440	  0.99937938  0.49324527
++8041	 -6.27324734	 -0.00038481	  0.00023574	  7.27286253	  0.99882454	  0.99937945  0.49324519
++8042	 -6.27324746	 -0.00038476	  0.00023571	  7.27286270	  0.99882469	  0.99937953  0.49324516
++8043	 -6.27324757	 -0.00038471	  0.00023568	  7.27286286	  0.99882483	  0.99937961  0.49324513
++8044	 -6.27324769	 -0.00038467	  0.00023565	  7.27286302	  0.99882498	  0.99937968  0.49324519
++8045	 -6.27324780	 -0.00038462	  0.00023562	  7.27286318	  0.99882513	  0.99937976  0.49324509
++8046	 -6.27324792	 -0.00038457	  0.00023559	  7.27286335	  0.99882527	  0.99937984  0.49324532
++8047	 -6.27324803	 -0.00038452	  0.00023556	  7.27286351	  0.99882542	  0.99937992  0.49324518
++8048	 -6.27324814	 -0.00038447	  0.00023553	  7.27286367	  0.99882556	  0.99937999  0.49324537
++8049	 -6.27324826	 -0.00038443	  0.00023550	  7.27286383	  0.99882571	  0.99938007  0.49324536
++8050	 -6.27324837	 -0.00038438	  0.00023547	  7.27286399	  0.99882586	  0.99938015  0.49324540
++8051	 -6.27324849	 -0.00038433	  0.00023545	  7.27286416	  0.99882600	  0.99938022  0.49324531
++8052	 -6.27324860	 -0.00038428	  0.00023542	  7.27286432	  0.99882615	  0.99938030  0.49324544
++8053	 -6.27324872	 -0.00038424	  0.00023539	  7.27286448	  0.99882629	  0.99938038  0.49324534
++8054	 -6.27324883	 -0.00038419	  0.00023536	  7.27286464	  0.99882644	  0.99938045  0.49324551
++8055	 -6.27324894	 -0.00038414	  0.00023533	  7.27286480	  0.99882658	  0.99938053  0.49324541
++8056	 -6.27324906	 -0.00038409	  0.00023530	  7.27286497	  0.99882673	  0.99938061  0.49324551
++8057	 -6.27324917	 -0.00038405	  0.00023527	  7.27286513	  0.99882688	  0.99938068  0.49324541
++8058	 -6.27324929	 -0.00038400	  0.00023524	  7.27286529	  0.99882702	  0.99938076  0.49324543
++8059	 -6.27324940	 -0.00038395	  0.00023521	  7.27286545	  0.99882717	  0.99938084  0.49324548
++8060	 -6.27324951	 -0.00038390	  0.00023518	  7.27286561	  0.99882731	  0.99938092  0.49324547
++8061	 -6.27324963	 -0.00038385	  0.00023515	  7.27286577	  0.99882746	  0.99938099  0.49324552
++8062	 -6.27324974	 -0.00038381	  0.00023512	  7.27286594	  0.99882760	  0.99938107  0.49324561
++8063	 -6.27324986	 -0.00038376	  0.00023509	  7.27286610	  0.99882775	  0.99938115  0.49324575
++8064	 -6.27324997	 -0.00038371	  0.00023507	  7.27286626	  0.99882789	  0.99938122  0.49324555
++8065	 -6.27325008	 -0.00038366	  0.00023504	  7.27286642	  0.99882804	  0.99938130  0.49324561
++8066	 -6.27325020	 -0.00038362	  0.00023501	  7.27286658	  0.99882818	  0.99938138  0.49324560
++8067	 -6.27325031	 -0.00038357	  0.00023498	  7.27286674	  0.99882833	  0.99938145  0.49324567
++8068	 -6.27325043	 -0.00038352	  0.00023495	  7.27286690	  0.99882847	  0.99938153  0.49324557
++8069	 -6.27325054	 -0.00038347	  0.00023492	  7.27286706	  0.99882862	  0.99938161  0.49324572
++8070	 -6.27325065	 -0.00038343	  0.00023489	  7.27286723	  0.99882877	  0.99938168  0.49324570
++8071	 -6.27325077	 -0.00038338	  0.00023486	  7.27286739	  0.99882891	  0.99938176  0.49324576
++8072	 -6.27325088	 -0.00038333	  0.00023483	  7.27286755	  0.99882906	  0.99938184  0.49324591
++8073	 -6.27325099	 -0.00038328	  0.00023480	  7.27286771	  0.99882920	  0.99938191  0.49324569
++8074	 -6.27325111	 -0.00038324	  0.00023477	  7.27286787	  0.99882935	  0.99938199  0.49324559
++8075	 -6.27325122	 -0.00038319	  0.00023475	  7.27286803	  0.99882949	  0.99938207  0.49324564
++8076	 -6.27325133	 -0.00038314	  0.00023472	  7.27286819	  0.99882964	  0.99938214  0.49324576
++8077	 -6.27325145	 -0.00038309	  0.00023469	  7.27286835	  0.99882978	  0.99938222  0.49324581
++8078	 -6.27325156	 -0.00038305	  0.00023466	  7.27286851	  0.99882993	  0.99938229  0.49324590
++8079	 -6.27325168	 -0.00038300	  0.00023463	  7.27286868	  0.99883007	  0.99938237  0.49324573
++8080	 -6.27325179	 -0.00038295	  0.00023460	  7.27286884	  0.99883021	  0.99938245  0.49324578
++8081	 -6.27325190	 -0.00038291	  0.00023457	  7.27286900	  0.99883036	  0.99938252  0.49324585
++8082	 -6.27325202	 -0.00038286	  0.00023454	  7.27286916	  0.99883050	  0.99938260  0.49324579
++8083	 -6.27325213	 -0.00038281	  0.00023451	  7.27286932	  0.99883065	  0.99938268  0.49324589
++8084	 -6.27325224	 -0.00038276	  0.00023448	  7.27286948	  0.99883079	  0.99938275  0.49324588
++8085	 -6.27325236	 -0.00038272	  0.00023446	  7.27286964	  0.99883094	  0.99938283  0.49324586
++8086	 -6.27325247	 -0.00038267	  0.00023443	  7.27286980	  0.99883108	  0.99938291  0.49324588
++8087	 -6.27325258	 -0.00038262	  0.00023440	  7.27286996	  0.99883123	  0.99938298  0.49324600
++8088	 -6.27325269	 -0.00038257	  0.00023437	  7.27287012	  0.99883137	  0.99938306  0.49324602
++8089	 -6.27325281	 -0.00038253	  0.00023434	  7.27287028	  0.99883152	  0.99938313  0.49324593
++8090	 -6.27325292	 -0.00038248	  0.00023431	  7.27287044	  0.99883166	  0.99938321  0.49324600
++8091	 -6.27325303	 -0.00038243	  0.00023428	  7.27287060	  0.99883180	  0.99938329  0.49324594
++8092	 -6.27325315	 -0.00038238	  0.00023425	  7.27287076	  0.99883195	  0.99938336  0.49324594
++8093	 -6.27325326	 -0.00038234	  0.00023422	  7.27287092	  0.99883209	  0.99938344  0.49324616
++8094	 -6.27325337	 -0.00038229	  0.00023419	  7.27287108	  0.99883224	  0.99938352  0.49324609
++8095	 -6.27325349	 -0.00038224	  0.00023417	  7.27287124	  0.99883238	  0.99938359  0.49324615
++8096	 -6.27325360	 -0.00038220	  0.00023414	  7.27287140	  0.99883253	  0.99938367  0.49324616
++8097	 -6.27325371	 -0.00038215	  0.00023411	  7.27287156	  0.99883267	  0.99938374  0.49324616
++8098	 -6.27325383	 -0.00038210	  0.00023408	  7.27287172	  0.99883281	  0.99938382  0.49324603
++8099	 -6.27325394	 -0.00038205	  0.00023405	  7.27287188	  0.99883296	  0.99938390  0.49324614
++8100	 -6.27325405	 -0.00038201	  0.00023402	  7.27287204	  0.99883310	  0.99938397  0.49324629
++8101	 -6.27325416	 -0.00038196	  0.00023399	  7.27287220	  0.99883325	  0.99938405  0.49324628
++8102	 -6.27325428	 -0.00038191	  0.00023396	  7.27287236	  0.99883339	  0.99938412  0.49324634
++8103	 -6.27325439	 -0.00038187	  0.00023393	  7.27287252	  0.99883353	  0.99938420  0.49324618
++8104	 -6.27325450	 -0.00038182	  0.00023391	  7.27287268	  0.99883368	  0.99938428  0.49324620
++8105	 -6.27325462	 -0.00038177	  0.00023388	  7.27287284	  0.99883382	  0.99938435  0.49324621
++8106	 -6.27325473	 -0.00038172	  0.00023385	  7.27287300	  0.99883397	  0.99938443  0.49324620
++8107	 -6.27325484	 -0.00038168	  0.00023382	  7.27287316	  0.99883411	  0.99938450  0.49324631
++8108	 -6.27325495	 -0.00038163	  0.00023379	  7.27287332	  0.99883425	  0.99938458  0.49324616
++8109	 -6.27325507	 -0.00038158	  0.00023376	  7.27287348	  0.99883440	  0.99938466  0.49324629
++8110	 -6.27325518	 -0.00038154	  0.00023373	  7.27287364	  0.99883454	  0.99938473  0.49324635
++8111	 -6.27325529	 -0.00038149	  0.00023370	  7.27287380	  0.99883469	  0.99938481  0.49324648
++8112	 -6.27325540	 -0.00038144	  0.00023367	  7.27287396	  0.99883483	  0.99938488  0.49324638
++8113	 -6.27325552	 -0.00038140	  0.00023365	  7.27287412	  0.99883497	  0.99938496  0.49324637
++8114	 -6.27325563	 -0.00038135	  0.00023362	  7.27287428	  0.99883512	  0.99938503  0.49324641
++8115	 -6.27325574	 -0.00038130	  0.00023359	  7.27287444	  0.99883526	  0.99938511  0.49324645
++8116	 -6.27325585	 -0.00038125	  0.00023356	  7.27287460	  0.99883540	  0.99938519  0.49324647
++8117	 -6.27325597	 -0.00038121	  0.00023353	  7.27287476	  0.99883555	  0.99938526  0.49324642
++8118	 -6.27325608	 -0.00038116	  0.00023350	  7.27287492	  0.99883569	  0.99938534  0.49324651
++8119	 -6.27325619	 -0.00038111	  0.00023347	  7.27287508	  0.99883583	  0.99938541  0.49324649
++8120	 -6.27325630	 -0.00038107	  0.00023344	  7.27287524	  0.99883598	  0.99938549  0.49324647
++8121	 -6.27325642	 -0.00038102	  0.00023342	  7.27287540	  0.99883612	  0.99938556  0.49324658
++8122	 -6.27325653	 -0.00038097	  0.00023339	  7.27287555	  0.99883626	  0.99938564  0.49324664
++8123	 -6.27325664	 -0.00038093	  0.00023336	  7.27287571	  0.99883641	  0.99938572  0.49324649
++8124	 -6.27325675	 -0.00038088	  0.00023333	  7.27287587	  0.99883655	  0.99938579  0.49324658
++8125	 -6.27325686	 -0.00038083	  0.00023330	  7.27287603	  0.99883669	  0.99938587  0.49324653
++8126	 -6.27325698	 -0.00038079	  0.00023327	  7.27287619	  0.99883684	  0.99938594  0.49324658
++8127	 -6.27325709	 -0.00038074	  0.00023324	  7.27287635	  0.99883698	  0.99938602  0.49324649
++8128	 -6.27325720	 -0.00038069	  0.00023321	  7.27287651	  0.99883712	  0.99938609  0.49324663
++8129	 -6.27325731	 -0.00038065	  0.00023319	  7.27287667	  0.99883727	  0.99938617  0.49324670
++8130	 -6.27325742	 -0.00038060	  0.00023316	  7.27287683	  0.99883741	  0.99938624  0.49324665
++8131	 -6.27325754	 -0.00038055	  0.00023313	  7.27287699	  0.99883755	  0.99938632  0.49324681
++8132	 -6.27325765	 -0.00038050	  0.00023310	  7.27287714	  0.99883769	  0.99938640  0.49324678
++8133	 -6.27325776	 -0.00038046	  0.00023307	  7.27287730	  0.99883784	  0.99938647  0.49324668
++8134	 -6.27325787	 -0.00038041	  0.00023304	  7.27287746	  0.99883798	  0.99938655  0.49324676
++8135	 -6.27325798	 -0.00038036	  0.00023301	  7.27287762	  0.99883812	  0.99938662  0.49324679
++8136	 -6.27325810	 -0.00038032	  0.00023299	  7.27287778	  0.99883827	  0.99938670  0.49324680
++8137	 -6.27325821	 -0.00038027	  0.00023296	  7.27287794	  0.99883841	  0.99938677  0.49324686
++8138	 -6.27325832	 -0.00038022	  0.00023293	  7.27287810	  0.99883855	  0.99938685  0.49324703
++8139	 -6.27325843	 -0.00038018	  0.00023290	  7.27287825	  0.99883869	  0.99938692  0.49324683
++8140	 -6.27325854	 -0.00038013	  0.00023287	  7.27287841	  0.99883884	  0.99938700  0.49324688
++8141	 -6.27325866	 -0.00038008	  0.00023284	  7.27287857	  0.99883898	  0.99938707  0.49324687
++8142	 -6.27325877	 -0.00038004	  0.00023281	  7.27287873	  0.99883912	  0.99938715  0.49324692
++8143	 -6.27325888	 -0.00037999	  0.00023279	  7.27287889	  0.99883926	  0.99938722  0.49324678
++8144	 -6.27325899	 -0.00037994	  0.00023276	  7.27287905	  0.99883941	  0.99938730  0.49324693
++8145	 -6.27325910	 -0.00037990	  0.00023273	  7.27287920	  0.99883955	  0.99938737  0.49324693
++8146	 -6.27325921	 -0.00037985	  0.00023270	  7.27287936	  0.99883969	  0.99938745  0.49324695
++8147	 -6.27325932	 -0.00037980	  0.00023267	  7.27287952	  0.99883983	  0.99938752  0.49324704
++8148	 -6.27325944	 -0.00037976	  0.00023264	  7.27287968	  0.99883998	  0.99938760  0.49324699
++8149	 -6.27325955	 -0.00037971	  0.00023261	  7.27287984	  0.99884012	  0.99938768  0.49324702
++8150	 -6.27325966	 -0.00037966	  0.00023259	  7.27287999	  0.99884026	  0.99938775  0.49324694
++8151	 -6.27325977	 -0.00037962	  0.00023256	  7.27288015	  0.99884040	  0.99938783  0.49324708
++8152	 -6.27325988	 -0.00037957	  0.00023253	  7.27288031	  0.99884055	  0.99938790  0.49324716
++8153	 -6.27325999	 -0.00037953	  0.00023250	  7.27288047	  0.99884069	  0.99938798  0.49324712
++8154	 -6.27326011	 -0.00037948	  0.00023247	  7.27288063	  0.99884083	  0.99938805  0.49324715
++8155	 -6.27326022	 -0.00037943	  0.00023244	  7.27288078	  0.99884097	  0.99938813  0.49324707
++8156	 -6.27326033	 -0.00037939	  0.00023241	  7.27288094	  0.99884111	  0.99938820  0.49324704
++8157	 -6.27326044	 -0.00037934	  0.00023239	  7.27288110	  0.99884126	  0.99938828  0.49324718
++8158	 -6.27326055	 -0.00037929	  0.00023236	  7.27288126	  0.99884140	  0.99938835  0.49324714
++8159	 -6.27326066	 -0.00037925	  0.00023233	  7.27288142	  0.99884154	  0.99938843  0.49324726
++8160	 -6.27326077	 -0.00037920	  0.00023230	  7.27288157	  0.99884168	  0.99938850  0.49324702
++8161	 -6.27326088	 -0.00037915	  0.00023227	  7.27288173	  0.99884182	  0.99938858  0.49324721
++8162	 -6.27326100	 -0.00037911	  0.00023224	  7.27288189	  0.99884197	  0.99938865  0.49324723
++8163	 -6.27326111	 -0.00037906	  0.00023221	  7.27288205	  0.99884211	  0.99938873  0.49324718
++8164	 -6.27326122	 -0.00037901	  0.00023219	  7.27288220	  0.99884225	  0.99938880  0.49324712
++8165	 -6.27326133	 -0.00037897	  0.00023216	  7.27288236	  0.99884239	  0.99938887  0.49324742
++8166	 -6.27326144	 -0.00037892	  0.00023213	  7.27288252	  0.99884253	  0.99938895  0.49324731
++8167	 -6.27326155	 -0.00037887	  0.00023210	  7.27288268	  0.99884267	  0.99938902  0.49324731
++8168	 -6.27326166	 -0.00037883	  0.00023207	  7.27288283	  0.99884282	  0.99938910  0.49324735
++8169	 -6.27326177	 -0.00037878	  0.00023204	  7.27288299	  0.99884296	  0.99938917  0.49324724
++8170	 -6.27326188	 -0.00037874	  0.00023202	  7.27288315	  0.99884310	  0.99938925  0.49324733
++8171	 -6.27326199	 -0.00037869	  0.00023199	  7.27288331	  0.99884324	  0.99938932  0.49324726
++8172	 -6.27326211	 -0.00037864	  0.00023196	  7.27288346	  0.99884338	  0.99938940  0.49324734
++8173	 -6.27326222	 -0.00037860	  0.00023193	  7.27288362	  0.99884352	  0.99938947  0.49324737
++8174	 -6.27326233	 -0.00037855	  0.00023190	  7.27288378	  0.99884367	  0.99938955  0.49324746
++8175	 -6.27326244	 -0.00037850	  0.00023187	  7.27288393	  0.99884381	  0.99938962  0.49324742
++8176	 -6.27326255	 -0.00037846	  0.00023185	  7.27288409	  0.99884395	  0.99938970  0.49324750
++8177	 -6.27326266	 -0.00037841	  0.00023182	  7.27288425	  0.99884409	  0.99938977  0.49324754
++8178	 -6.27326277	 -0.00037837	  0.00023179	  7.27288441	  0.99884423	  0.99938985  0.49324741
++8179	 -6.27326288	 -0.00037832	  0.00023176	  7.27288456	  0.99884437	  0.99938992  0.49324760
++8180	 -6.27326299	 -0.00037827	  0.00023173	  7.27288472	  0.99884451	  0.99939000  0.49324751
++8181	 -6.27326310	 -0.00037823	  0.00023170	  7.27288488	  0.99884466	  0.99939007  0.49324747
++8182	 -6.27326321	 -0.00037818	  0.00023168	  7.27288503	  0.99884480	  0.99939014  0.49324756
++8183	 -6.27326332	 -0.00037813	  0.00023165	  7.27288519	  0.99884494	  0.99939022  0.49324744
++8184	 -6.27326343	 -0.00037809	  0.00023162	  7.27288535	  0.99884508	  0.99939029  0.49324765
++8185	 -6.27326354	 -0.00037804	  0.00023159	  7.27288550	  0.99884522	  0.99939037  0.49324755
++8186	 -6.27326366	 -0.00037800	  0.00023156	  7.27288566	  0.99884536	  0.99939044  0.49324760
++8187	 -6.27326377	 -0.00037795	  0.00023153	  7.27288582	  0.99884550	  0.99939052  0.49324764
++8188	 -6.27326388	 -0.00037790	  0.00023151	  7.27288597	  0.99884564	  0.99939059  0.49324764
++8189	 -6.27326399	 -0.00037786	  0.00023148	  7.27288613	  0.99884578	  0.99939067  0.49324768
++8190	 -6.27326410	 -0.00037781	  0.00023145	  7.27288629	  0.99884592	  0.99939074  0.49324772
++8191	 -6.27326421	 -0.00037777	  0.00023142	  7.27288644	  0.99884607	  0.99939081  0.49324775
++8192	 -6.27326432	 -0.00037772	  0.00023139	  7.27288660	  0.99884621	  0.99939089  0.49324763
++8193	 -6.27326443	 -0.00037767	  0.00023136	  7.27288676	  0.99884635	  0.99939096  0.49324773
++8194	 -6.27326454	 -0.00037763	  0.00023134	  7.27288691	  0.99884649	  0.99939104  0.49324770
++8195	 -6.27326465	 -0.00037758	  0.00023131	  7.27288707	  0.99884663	  0.99939111  0.49324772
++8196	 -6.27326476	 -0.00037753	  0.00023128	  7.27288722	  0.99884677	  0.99939119  0.49324778
++8197	 -6.27326487	 -0.00037749	  0.00023125	  7.27288738	  0.99884691	  0.99939126  0.49324783
++8198	 -6.27326498	 -0.00037744	  0.00023122	  7.27288754	  0.99884705	  0.99939133  0.49324780
++8199	 -6.27326509	 -0.00037740	  0.00023120	  7.27288769	  0.99884719	  0.99939141  0.49324776
++8200	 -6.27326520	 -0.00037735	  0.00023117	  7.27288785	  0.99884733	  0.99939148  0.49324786
++8201	 -6.27326531	 -0.00037730	  0.00023114	  7.27288801	  0.99884747	  0.99939156  0.49324788
++8202	 -6.27326542	 -0.00037726	  0.00023111	  7.27288816	  0.99884761	  0.99939163  0.49324776
++8203	 -6.27326553	 -0.00037721	  0.00023108	  7.27288832	  0.99884775	  0.99939171  0.49324788
++8204	 -6.27326564	 -0.00037717	  0.00023105	  7.27288847	  0.99884789	  0.99939178  0.49324801
++8205	 -6.27326575	 -0.00037712	  0.00023103	  7.27288863	  0.99884803	  0.99939185  0.49324790
++8206	 -6.27326586	 -0.00037707	  0.00023100	  7.27288879	  0.99884817	  0.99939193  0.49324783
++8207	 -6.27326597	 -0.00037703	  0.00023097	  7.27288894	  0.99884831	  0.99939200  0.49324795
++8208	 -6.27326608	 -0.00037698	  0.00023094	  7.27288910	  0.99884846	  0.99939208  0.49324808
++8209	 -6.27326619	 -0.00037694	  0.00023091	  7.27288925	  0.99884860	  0.99939215  0.49324796
++8210	 -6.27326630	 -0.00037689	  0.00023089	  7.27288941	  0.99884874	  0.99939222  0.49324802
++8211	 -6.27326641	 -0.00037685	  0.00023086	  7.27288956	  0.99884888	  0.99939230  0.49324786
++8212	 -6.27326652	 -0.00037680	  0.00023083	  7.27288972	  0.99884902	  0.99939237  0.49324795
++8213	 -6.27326663	 -0.00037675	  0.00023080	  7.27288988	  0.99884916	  0.99939245  0.49324822
++8214	 -6.27326674	 -0.00037671	  0.00023077	  7.27289003	  0.99884930	  0.99939252  0.49324803
++8215	 -6.27326685	 -0.00037666	  0.00023074	  7.27289019	  0.99884944	  0.99939259  0.49324799
++8216	 -6.27326696	 -0.00037662	  0.00023072	  7.27289034	  0.99884958	  0.99939267  0.49324798
++8217	 -6.27326707	 -0.00037657	  0.00023069	  7.27289050	  0.99884972	  0.99939274  0.49324802
++8218	 -6.27326718	 -0.00037652	  0.00023066	  7.27289065	  0.99884986	  0.99939282  0.49324803
++8219	 -6.27326729	 -0.00037648	  0.00023063	  7.27289081	  0.99885000	  0.99939289  0.49324811
++8220	 -6.27326740	 -0.00037643	  0.00023060	  7.27289096	  0.99885014	  0.99939296  0.49324817
++8221	 -6.27326751	 -0.00037639	  0.00023058	  7.27289112	  0.99885028	  0.99939304  0.49324821
++8222	 -6.27326762	 -0.00037634	  0.00023055	  7.27289127	  0.99885042	  0.99939311  0.49324821
++8223	 -6.27326773	 -0.00037630	  0.00023052	  7.27289143	  0.99885056	  0.99939318  0.49324827
++8224	 -6.27326783	 -0.00037625	  0.00023049	  7.27289159	  0.99885070	  0.99939326  0.49324820
++8225	 -6.27326794	 -0.00037620	  0.00023046	  7.27289174	  0.99885084	  0.99939333  0.49324832
++8226	 -6.27326805	 -0.00037616	  0.00023044	  7.27289190	  0.99885097	  0.99939341  0.49324834
++8227	 -6.27326816	 -0.00037611	  0.00023041	  7.27289205	  0.99885111	  0.99939348  0.49324841
++8228	 -6.27326827	 -0.00037607	  0.00023038	  7.27289221	  0.99885125	  0.99939355  0.49324834
++8229	 -6.27326838	 -0.00037602	  0.00023035	  7.27289236	  0.99885139	  0.99939363  0.49324834
++8230	 -6.27326849	 -0.00037598	  0.00023032	  7.27289252	  0.99885153	  0.99939370  0.49324836
++8231	 -6.27326860	 -0.00037593	  0.00023030	  7.27289267	  0.99885167	  0.99939377  0.49324838
++8232	 -6.27326871	 -0.00037588	  0.00023027	  7.27289283	  0.99885181	  0.99939385  0.49324843
++8233	 -6.27326882	 -0.00037584	  0.00023024	  7.27289298	  0.99885195	  0.99939392  0.49324818
++8234	 -6.27326893	 -0.00037579	  0.00023021	  7.27289314	  0.99885209	  0.99939399  0.49324852
++8235	 -6.27326904	 -0.00037575	  0.00023018	  7.27289329	  0.99885223	  0.99939407  0.49324850
++8236	 -6.27326915	 -0.00037570	  0.00023016	  7.27289345	  0.99885237	  0.99939414  0.49324851
++8237	 -6.27326926	 -0.00037566	  0.00023013	  7.27289360	  0.99885251	  0.99939422  0.49324838
++8238	 -6.27326937	 -0.00037561	  0.00023010	  7.27289375	  0.99885265	  0.99939429  0.49324847
++8239	 -6.27326947	 -0.00037557	  0.00023007	  7.27289391	  0.99885279	  0.99939436  0.49324849
++8240	 -6.27326958	 -0.00037552	  0.00023004	  7.27289406	  0.99885293	  0.99939444  0.49324851
++8241	 -6.27326969	 -0.00037547	  0.00023002	  7.27289422	  0.99885307	  0.99939451  0.49324844
++8242	 -6.27326980	 -0.00037543	  0.00022999	  7.27289437	  0.99885321	  0.99939458  0.49324862
++8243	 -6.27326991	 -0.00037538	  0.00022996	  7.27289453	  0.99885334	  0.99939466  0.49324845
++8244	 -6.27327002	 -0.00037534	  0.00022993	  7.27289468	  0.99885348	  0.99939473  0.49324866
++8245	 -6.27327013	 -0.00037529	  0.00022991	  7.27289484	  0.99885362	  0.99939480  0.49324850
++8246	 -6.27327024	 -0.00037525	  0.00022988	  7.27289499	  0.99885376	  0.99939488  0.49324874
++8247	 -6.27327035	 -0.00037520	  0.00022985	  7.27289514	  0.99885390	  0.99939495  0.49324863
++8248	 -6.27327045	 -0.00037516	  0.00022982	  7.27289530	  0.99885404	  0.99939502  0.49324861
++8249	 -6.27327056	 -0.00037511	  0.00022979	  7.27289545	  0.99885418	  0.99939510  0.49324863
++8250	 -6.27327067	 -0.00037506	  0.00022977	  7.27289561	  0.99885432	  0.99939517  0.49324878
++8251	 -6.27327078	 -0.00037502	  0.00022974	  7.27289576	  0.99885446	  0.99939524  0.49324852
++8252	 -6.27327089	 -0.00037497	  0.00022971	  7.27289592	  0.99885459	  0.99939532  0.49324868
++8253	 -6.27327100	 -0.00037493	  0.00022968	  7.27289607	  0.99885473	  0.99939539  0.49324870
++8254	 -6.27327111	 -0.00037488	  0.00022965	  7.27289622	  0.99885487	  0.99939546  0.49324867
++8255	 -6.27327122	 -0.00037484	  0.00022963	  7.27289638	  0.99885501	  0.99939554  0.49324861
++8256	 -6.27327132	 -0.00037479	  0.00022960	  7.27289653	  0.99885515	  0.99939561  0.49324879
++8257	 -6.27327143	 -0.00037475	  0.00022957	  7.27289669	  0.99885529	  0.99939568  0.49324878
++8258	 -6.27327154	 -0.00037470	  0.00022954	  7.27289684	  0.99885543	  0.99939576  0.49324873
++8259	 -6.27327165	 -0.00037466	  0.00022952	  7.27289699	  0.99885557	  0.99939583  0.49324877
++8260	 -6.27327176	 -0.00037461	  0.00022949	  7.27289715	  0.99885570	  0.99939590  0.49324893
++8261	 -6.27327187	 -0.00037457	  0.00022946	  7.27289730	  0.99885584	  0.99939597  0.49324876
++8262	 -6.27327198	 -0.00037452	  0.00022943	  7.27289746	  0.99885598	  0.99939605  0.49324876
++8263	 -6.27327208	 -0.00037447	  0.00022940	  7.27289761	  0.99885612	  0.99939612  0.49324883
++8264	 -6.27327219	 -0.00037443	  0.00022938	  7.27289776	  0.99885626	  0.99939619  0.49324897
++8265	 -6.27327230	 -0.00037438	  0.00022935	  7.27289792	  0.99885640	  0.99939627  0.49324903
++8266	 -6.27327241	 -0.00037434	  0.00022932	  7.27289807	  0.99885653	  0.99939634  0.49324897
++8267	 -6.27327252	 -0.00037429	  0.00022929	  7.27289822	  0.99885667	  0.99939641  0.49324915
++8268	 -6.27327263	 -0.00037425	  0.00022927	  7.27289838	  0.99885681	  0.99939649  0.49324899
++8269	 -6.27327273	 -0.00037420	  0.00022924	  7.27289853	  0.99885695	  0.99939656  0.49324895
++8270	 -6.27327284	 -0.00037416	  0.00022921	  7.27289869	  0.99885709	  0.99939663  0.49324901
++8271	 -6.27327295	 -0.00037411	  0.00022918	  7.27289884	  0.99885723	  0.99939671  0.49324899
++8272	 -6.27327306	 -0.00037407	  0.00022915	  7.27289899	  0.99885736	  0.99939678  0.49324910
++8273	 -6.27327317	 -0.00037402	  0.00022913	  7.27289915	  0.99885750	  0.99939685  0.49324893
++8274	 -6.27327328	 -0.00037398	  0.00022910	  7.27289930	  0.99885764	  0.99939692  0.49324897
++8275	 -6.27327338	 -0.00037393	  0.00022907	  7.27289945	  0.99885778	  0.99939700  0.49324903
++8276	 -6.27327349	 -0.00037389	  0.00022904	  7.27289961	  0.99885792	  0.99939707  0.49324907
++8277	 -6.27327360	 -0.00037384	  0.00022902	  7.27289976	  0.99885805	  0.99939714  0.49324912
++8278	 -6.27327371	 -0.00037380	  0.00022899	  7.27289991	  0.99885819	  0.99939722  0.49324911
++8279	 -6.27327382	 -0.00037375	  0.00022896	  7.27290007	  0.99885833	  0.99939729  0.49324918
++8280	 -6.27327392	 -0.00037371	  0.00022893	  7.27290022	  0.99885847	  0.99939736  0.49324911
++8281	 -6.27327403	 -0.00037366	  0.00022891	  7.27290037	  0.99885861	  0.99939743  0.49324922
++8282	 -6.27327414	 -0.00037362	  0.00022888	  7.27290052	  0.99885874	  0.99939751  0.49324912
++8283	 -6.27327425	 -0.00037357	  0.00022885	  7.27290068	  0.99885888	  0.99939758  0.49324914
++8284	 -6.27327436	 -0.00037353	  0.00022882	  7.27290083	  0.99885902	  0.99939765  0.49324919
++8285	 -6.27327446	 -0.00037348	  0.00022880	  7.27290098	  0.99885916	  0.99939772  0.49324915
++8286	 -6.27327457	 -0.00037344	  0.00022877	  7.27290114	  0.99885929	  0.99939780  0.49324920
++8287	 -6.27327468	 -0.00037339	  0.00022874	  7.27290129	  0.99885943	  0.99939787  0.49324914
++8288	 -6.27327479	 -0.00037335	  0.00022871	  7.27290144	  0.99885957	  0.99939794  0.49324927
++8289	 -6.27327490	 -0.00037330	  0.00022868	  7.27290160	  0.99885971	  0.99939801  0.49324924
++8290	 -6.27327500	 -0.00037326	  0.00022866	  7.27290175	  0.99885984	  0.99939809  0.49324926
++8291	 -6.27327511	 -0.00037321	  0.00022863	  7.27290190	  0.99885998	  0.99939816  0.49324920
++8292	 -6.27327522	 -0.00037317	  0.00022860	  7.27290205	  0.99886012	  0.99939823  0.49324932
++8293	 -6.27327533	 -0.00037312	  0.00022857	  7.27290221	  0.99886026	  0.99939831  0.49324939
++8294	 -6.27327543	 -0.00037308	  0.00022855	  7.27290236	  0.99886039	  0.99939838  0.49324946
++8295	 -6.27327554	 -0.00037303	  0.00022852	  7.27290251	  0.99886053	  0.99939845  0.49324935
++8296	 -6.27327565	 -0.00037299	  0.00022849	  7.27290266	  0.99886067	  0.99939852  0.49324930
++8297	 -6.27327576	 -0.00037294	  0.00022846	  7.27290282	  0.99886081	  0.99939860  0.49324950
++8298	 -6.27327586	 -0.00037290	  0.00022844	  7.27290297	  0.99886094	  0.99939867  0.49324938
++8299	 -6.27327597	 -0.00037285	  0.00022841	  7.27290312	  0.99886108	  0.99939874  0.49324942
++8300	 -6.27327608	 -0.00037281	  0.00022838	  7.27290327	  0.99886122	  0.99939881  0.49324944
++8301	 -6.27327619	 -0.00037276	  0.00022835	  7.27290343	  0.99886136	  0.99939888  0.49324942
++8302	 -6.27327629	 -0.00037272	  0.00022833	  7.27290358	  0.99886149	  0.99939896  0.49324940
++8303	 -6.27327640	 -0.00037267	  0.00022830	  7.27290373	  0.99886163	  0.99939903  0.49324954
++8304	 -6.27327651	 -0.00037263	  0.00022827	  7.27290388	  0.99886177	  0.99939910  0.49324936
++8305	 -6.27327662	 -0.00037258	  0.00022824	  7.27290404	  0.99886190	  0.99939917  0.49324945
++8306	 -6.27327672	 -0.00037254	  0.00022822	  7.27290419	  0.99886204	  0.99939925  0.49324953
++8307	 -6.27327683	 -0.00037249	  0.00022819	  7.27290434	  0.99886218	  0.99939932  0.49324957
++8308	 -6.27327694	 -0.00037245	  0.00022816	  7.27290449	  0.99886231	  0.99939939  0.49324952
++8309	 -6.27327705	 -0.00037240	  0.00022813	  7.27290464	  0.99886245	  0.99939946  0.49324959
++8310	 -6.27327715	 -0.00037236	  0.00022811	  7.27290480	  0.99886259	  0.99939954  0.49324957
++8311	 -6.27327726	 -0.00037231	  0.00022808	  7.27290495	  0.99886273	  0.99939961  0.49324964
++8312	 -6.27327737	 -0.00037227	  0.00022805	  7.27290510	  0.99886286	  0.99939968  0.49324963
++8313	 -6.27327747	 -0.00037222	  0.00022802	  7.27290525	  0.99886300	  0.99939975  0.49324974
++8314	 -6.27327758	 -0.00037218	  0.00022800	  7.27290540	  0.99886314	  0.99939982  0.49324966
++8315	 -6.27327769	 -0.00037213	  0.00022797	  7.27290556	  0.99886327	  0.99939990  0.49324952
++8316	 -6.27327780	 -0.00037209	  0.00022794	  7.27290571	  0.99886341	  0.99939997  0.49324969
++8317	 -6.27327790	 -0.00037204	  0.00022791	  7.27290586	  0.99886355	  0.99940004  0.49324970
++8318	 -6.27327801	 -0.00037200	  0.00022789	  7.27290601	  0.99886368	  0.99940011  0.49324976
++8319	 -6.27327812	 -0.00037195	  0.00022786	  7.27290616	  0.99886382	  0.99940019  0.49324984
++8320	 -6.27327822	 -0.00037191	  0.00022783	  7.27290631	  0.99886396	  0.99940026  0.49324963
++8321	 -6.27327833	 -0.00037187	  0.00022781	  7.27290647	  0.99886409	  0.99940033  0.49324968
++8322	 -6.27327844	 -0.00037182	  0.00022778	  7.27290662	  0.99886423	  0.99940040  0.49324978
++8323	 -6.27327855	 -0.00037178	  0.00022775	  7.27290677	  0.99886436	  0.99940047  0.49324985
++8324	 -6.27327865	 -0.00037173	  0.00022772	  7.27290692	  0.99886450	  0.99940055  0.49325000
++8325	 -6.27327876	 -0.00037169	  0.00022770	  7.27290707	  0.99886464	  0.99940062  0.49324984
++8326	 -6.27327887	 -0.00037164	  0.00022767	  7.27290722	  0.99886477	  0.99940069  0.49324982
++8327	 -6.27327897	 -0.00037160	  0.00022764	  7.27290737	  0.99886491	  0.99940076  0.49324988
++8328	 -6.27327908	 -0.00037155	  0.00022761	  7.27290753	  0.99886505	  0.99940083  0.49325015
++8329	 -6.27327919	 -0.00037151	  0.00022759	  7.27290768	  0.99886518	  0.99940091  0.49324977
++8330	 -6.27327929	 -0.00037146	  0.00022756	  7.27290783	  0.99886532	  0.99940098  0.49324993
++8331	 -6.27327940	 -0.00037142	  0.00022753	  7.27290798	  0.99886546	  0.99940105  0.49325002
++8332	 -6.27327951	 -0.00037137	  0.00022750	  7.27290813	  0.99886559	  0.99940112  0.49324999
++8333	 -6.27327961	 -0.00037133	  0.00022748	  7.27290828	  0.99886573	  0.99940119  0.49325000
++8334	 -6.27327972	 -0.00037129	  0.00022745	  7.27290843	  0.99886586	  0.99940126  0.49325006
++8335	 -6.27327983	 -0.00037124	  0.00022742	  7.27290858	  0.99886600	  0.99940134  0.49324994
++8336	 -6.27327993	 -0.00037120	  0.00022740	  7.27290874	  0.99886614	  0.99940141  0.49324986
++8337	 -6.27328004	 -0.00037115	  0.00022737	  7.27290889	  0.99886627	  0.99940148  0.49325009
++8338	 -6.27328015	 -0.00037111	  0.00022734	  7.27290904	  0.99886641	  0.99940155  0.49325012
++8339	 -6.27328025	 -0.00037106	  0.00022731	  7.27290919	  0.99886654	  0.99940162  0.49325015
++8340	 -6.27328036	 -0.00037102	  0.00022729	  7.27290934	  0.99886668	  0.99940170  0.49325010
++8341	 -6.27328047	 -0.00037097	  0.00022726	  7.27290949	  0.99886682	  0.99940177  0.49325020
++8342	 -6.27328057	 -0.00037093	  0.00022723	  7.27290964	  0.99886695	  0.99940184  0.49325004
++8343	 -6.27328068	 -0.00037089	  0.00022720	  7.27290979	  0.99886709	  0.99940191  0.49325014
++8344	 -6.27328078	 -0.00037084	  0.00022718	  7.27290994	  0.99886722	  0.99940198  0.49325025
++8345	 -6.27328089	 -0.00037080	  0.00022715	  7.27291009	  0.99886736	  0.99940205  0.49325008
++8346	 -6.27328100	 -0.00037075	  0.00022712	  7.27291024	  0.99886749	  0.99940213  0.49325032
++8347	 -6.27328110	 -0.00037071	  0.00022710	  7.27291040	  0.99886763	  0.99940220  0.49325016
++8348	 -6.27328121	 -0.00037066	  0.00022707	  7.27291055	  0.99886777	  0.99940227  0.49325010
++8349	 -6.27328132	 -0.00037062	  0.00022704	  7.27291070	  0.99886790	  0.99940234  0.49325006
++8350	 -6.27328142	 -0.00037057	  0.00022701	  7.27291085	  0.99886804	  0.99940241  0.49325022
++8351	 -6.27328153	 -0.00037053	  0.00022699	  7.27291100	  0.99886817	  0.99940248  0.49325031
++8352	 -6.27328163	 -0.00037049	  0.00022696	  7.27291115	  0.99886831	  0.99940255  0.49325037
++8353	 -6.27328174	 -0.00037044	  0.00022693	  7.27291130	  0.99886844	  0.99940263  0.49325027
++8354	 -6.27328185	 -0.00037040	  0.00022691	  7.27291145	  0.99886858	  0.99940270  0.49325034
++8355	 -6.27328195	 -0.00037035	  0.00022688	  7.27291160	  0.99886871	  0.99940277  0.49325020
++8356	 -6.27328206	 -0.00037031	  0.00022685	  7.27291175	  0.99886885	  0.99940284  0.49325035
++8357	 -6.27328217	 -0.00037026	  0.00022682	  7.27291190	  0.99886898	  0.99940291  0.49325022
++8358	 -6.27328227	 -0.00037022	  0.00022680	  7.27291205	  0.99886912	  0.99940298  0.49325038
++8359	 -6.27328238	 -0.00037018	  0.00022677	  7.27291220	  0.99886926	  0.99940305  0.49325045
++8360	 -6.27328248	 -0.00037013	  0.00022674	  7.27291235	  0.99886939	  0.99940313  0.49325055
++8361	 -6.27328259	 -0.00037009	  0.00022672	  7.27291250	  0.99886953	  0.99940320  0.49325042
++8362	 -6.27328269	 -0.00037004	  0.00022669	  7.27291265	  0.99886966	  0.99940327  0.49325036
++8363	 -6.27328280	 -0.00037000	  0.00022666	  7.27291280	  0.99886980	  0.99940334  0.49325057
++8364	 -6.27328291	 -0.00036995	  0.00022663	  7.27291295	  0.99886993	  0.99940341  0.49325047
++8365	 -6.27328301	 -0.00036991	  0.00022661	  7.27291310	  0.99887007	  0.99940348  0.49325050
++8366	 -6.27328312	 -0.00036987	  0.00022658	  7.27291325	  0.99887020	  0.99940355  0.49325044
++8367	 -6.27328322	 -0.00036982	  0.00022655	  7.27291340	  0.99887034	  0.99940363  0.49325060
++8368	 -6.27328333	 -0.00036978	  0.00022653	  7.27291355	  0.99887047	  0.99940370  0.49325046
++8369	 -6.27328344	 -0.00036973	  0.00022650	  7.27291370	  0.99887061	  0.99940377  0.49325049
++8370	 -6.27328354	 -0.00036969	  0.00022647	  7.27291385	  0.99887074	  0.99940384  0.49325054
++8371	 -6.27328365	 -0.00036965	  0.00022644	  7.27291400	  0.99887088	  0.99940391  0.49325051
++8372	 -6.27328375	 -0.00036960	  0.00022642	  7.27291415	  0.99887101	  0.99940398  0.49325068
++8373	 -6.27328386	 -0.00036956	  0.00022639	  7.27291430	  0.99887115	  0.99940405  0.49325059
++8374	 -6.27328396	 -0.00036951	  0.00022636	  7.27291445	  0.99887128	  0.99940412  0.49325082
++8375	 -6.27328407	 -0.00036947	  0.00022634	  7.27291460	  0.99887142	  0.99940419  0.49325077
++8376	 -6.27328418	 -0.00036942	  0.00022631	  7.27291475	  0.99887155	  0.99940427  0.49325076
++8377	 -6.27328428	 -0.00036938	  0.00022628	  7.27291490	  0.99887168	  0.99940434  0.49325073
++8378	 -6.27328439	 -0.00036934	  0.00022626	  7.27291505	  0.99887182	  0.99940441  0.49325073
++8379	 -6.27328449	 -0.00036929	  0.00022623	  7.27291520	  0.99887195	  0.99940448  0.49325059
++8380	 -6.27328460	 -0.00036925	  0.00022620	  7.27291535	  0.99887209	  0.99940455  0.49325071
++8381	 -6.27328470	 -0.00036920	  0.00022617	  7.27291550	  0.99887222	  0.99940462  0.49325075
++8382	 -6.27328481	 -0.00036916	  0.00022615	  7.27291565	  0.99887236	  0.99940469  0.49325074
++8383	 -6.27328491	 -0.00036912	  0.00022612	  7.27291580	  0.99887249	  0.99940476  0.49325076
++8384	 -6.27328502	 -0.00036907	  0.00022609	  7.27291595	  0.99887263	  0.99940483  0.49325069
++8385	 -6.27328512	 -0.00036903	  0.00022607	  7.27291610	  0.99887276	  0.99940491  0.49325089
++8386	 -6.27328523	 -0.00036898	  0.00022604	  7.27291624	  0.99887290	  0.99940498  0.49325087
++8387	 -6.27328533	 -0.00036894	  0.00022601	  7.27291639	  0.99887303	  0.99940505  0.49325089
++8388	 -6.27328544	 -0.00036890	  0.00022599	  7.27291654	  0.99887316	  0.99940512  0.49325087
++8389	 -6.27328555	 -0.00036885	  0.00022596	  7.27291669	  0.99887330	  0.99940519  0.49325085
++8390	 -6.27328565	 -0.00036881	  0.00022593	  7.27291684	  0.99887343	  0.99940526  0.49325080
++8391	 -6.27328576	 -0.00036876	  0.00022590	  7.27291699	  0.99887357	  0.99940533  0.49325071
++8392	 -6.27328586	 -0.00036872	  0.00022588	  7.27291714	  0.99887370	  0.99940540  0.49325095
++8393	 -6.27328597	 -0.00036868	  0.00022585	  7.27291729	  0.99887384	  0.99940547  0.49325080
++8394	 -6.27328607	 -0.00036863	  0.00022582	  7.27291744	  0.99887397	  0.99940554  0.49325088
++8395	 -6.27328618	 -0.00036859	  0.00022580	  7.27291759	  0.99887410	  0.99940561  0.49325100
++8396	 -6.27328628	 -0.00036855	  0.00022577	  7.27291774	  0.99887424	  0.99940568  0.49325106
++8397	 -6.27328639	 -0.00036850	  0.00022574	  7.27291789	  0.99887437	  0.99940576  0.49325085
++8398	 -6.27328649	 -0.00036846	  0.00022572	  7.27291803	  0.99887451	  0.99940583  0.49325087
++8399	 -6.27328660	 -0.00036841	  0.00022569	  7.27291818	  0.99887464	  0.99940590  0.49325084
++8400	 -6.27328670	 -0.00036837	  0.00022566	  7.27291833	  0.99887477	  0.99940597  0.49325118
++8401	 -6.27328681	 -0.00036833	  0.00022564	  7.27291848	  0.99887491	  0.99940604  0.49325112
++8402	 -6.27328691	 -0.00036828	  0.00022561	  7.27291863	  0.99887504	  0.99940611  0.49325104
++8403	 -6.27328702	 -0.00036824	  0.00022558	  7.27291878	  0.99887518	  0.99940618  0.49325104
++8404	 -6.27328712	 -0.00036819	  0.00022556	  7.27291893	  0.99887531	  0.99940625  0.49325116
++8405	 -6.27328723	 -0.00036815	  0.00022553	  7.27291907	  0.99887544	  0.99940632  0.49325111
++8406	 -6.27328733	 -0.00036811	  0.00022550	  7.27291922	  0.99887558	  0.99940639  0.49325116
++8407	 -6.27328744	 -0.00036806	  0.00022547	  7.27291937	  0.99887571	  0.99940646  0.49325108
++8408	 -6.27328754	 -0.00036802	  0.00022545	  7.27291952	  0.99887584	  0.99940653  0.49325111
++8409	 -6.27328764	 -0.00036798	  0.00022542	  7.27291967	  0.99887598	  0.99940660  0.49325113
++8410	 -6.27328775	 -0.00036793	  0.00022539	  7.27291982	  0.99887611	  0.99940667  0.49325130
++8411	 -6.27328785	 -0.00036789	  0.00022537	  7.27291997	  0.99887625	  0.99940674  0.49325114
++8412	 -6.27328796	 -0.00036784	  0.00022534	  7.27292011	  0.99887638	  0.99940681  0.49325125
++8413	 -6.27328806	 -0.00036780	  0.00022531	  7.27292026	  0.99887651	  0.99940689  0.49325120
++8414	 -6.27328817	 -0.00036776	  0.00022529	  7.27292041	  0.99887665	  0.99940696  0.49325118
++8415	 -6.27328827	 -0.00036771	  0.00022526	  7.27292056	  0.99887678	  0.99940703  0.49325120
++8416	 -6.27328838	 -0.00036767	  0.00022523	  7.27292071	  0.99887691	  0.99940710  0.49325135
++8417	 -6.27328848	 -0.00036763	  0.00022521	  7.27292086	  0.99887705	  0.99940717  0.49325134
++8418	 -6.27328859	 -0.00036758	  0.00022518	  7.27292100	  0.99887718	  0.99940724  0.49325139
++8419	 -6.27328869	 -0.00036754	  0.00022515	  7.27292115	  0.99887731	  0.99940731  0.49325135
++8420	 -6.27328880	 -0.00036749	  0.00022513	  7.27292130	  0.99887745	  0.99940738  0.49325126
++8421	 -6.27328890	 -0.00036745	  0.00022510	  7.27292145	  0.99887758	  0.99940745  0.49325131
++8422	 -6.27328900	 -0.00036741	  0.00022507	  7.27292160	  0.99887771	  0.99940752  0.49325136
++8423	 -6.27328911	 -0.00036736	  0.00022505	  7.27292174	  0.99887785	  0.99940759  0.49325152
++8424	 -6.27328921	 -0.00036732	  0.00022502	  7.27292189	  0.99887798	  0.99940766  0.49325159
++8425	 -6.27328932	 -0.00036728	  0.00022499	  7.27292204	  0.99887811	  0.99940773  0.49325140
++8426	 -6.27328942	 -0.00036723	  0.00022497	  7.27292219	  0.99887825	  0.99940780  0.49325141
++8427	 -6.27328953	 -0.00036719	  0.00022494	  7.27292234	  0.99887838	  0.99940787  0.49325131
++8428	 -6.27328963	 -0.00036715	  0.00022491	  7.27292248	  0.99887851	  0.99940794  0.49325145
++8429	 -6.27328973	 -0.00036710	  0.00022489	  7.27292263	  0.99887864	  0.99940801  0.49325145
++8430	 -6.27328984	 -0.00036706	  0.00022486	  7.27292278	  0.99887878	  0.99940808  0.49325157
++8431	 -6.27328994	 -0.00036702	  0.00022483	  7.27292293	  0.99887891	  0.99940815  0.49325149
++8432	 -6.27329005	 -0.00036697	  0.00022481	  7.27292307	  0.99887904	  0.99940822  0.49325164
++8433	 -6.27329015	 -0.00036693	  0.00022478	  7.27292322	  0.99887918	  0.99940829  0.49325155
++8434	 -6.27329025	 -0.00036689	  0.00022475	  7.27292337	  0.99887931	  0.99940836  0.49325164
++8435	 -6.27329036	 -0.00036684	  0.00022473	  7.27292352	  0.99887944	  0.99940843  0.49325151
++8436	 -6.27329046	 -0.00036680	  0.00022470	  7.27292366	  0.99887958	  0.99940850  0.49325168
++8437	 -6.27329057	 -0.00036675	  0.00022467	  7.27292381	  0.99887971	  0.99940857  0.49325138
++8438	 -6.27329067	 -0.00036671	  0.00022465	  7.27292396	  0.99887984	  0.99940864  0.49325171
++8439	 -6.27329078	 -0.00036667	  0.00022462	  7.27292411	  0.99887997	  0.99940871  0.49325159
++8440	 -6.27329088	 -0.00036662	  0.00022459	  7.27292425	  0.99888011	  0.99940878  0.49325160
++8441	 -6.27329098	 -0.00036658	  0.00022457	  7.27292440	  0.99888024	  0.99940885  0.49325177
++8442	 -6.27329109	 -0.00036654	  0.00022454	  7.27292455	  0.99888037	  0.99940892  0.49325177
++8443	 -6.27329119	 -0.00036649	  0.00022451	  7.27292470	  0.99888050	  0.99940899  0.49325164
++8444	 -6.27329129	 -0.00036645	  0.00022449	  7.27292484	  0.99888064	  0.99940906  0.49325172
++8445	 -6.27329140	 -0.00036641	  0.00022446	  7.27292499	  0.99888077	  0.99940913  0.49325179
++8446	 -6.27329150	 -0.00036636	  0.00022443	  7.27292514	  0.99888090	  0.99940920  0.49325181
++8447	 -6.27329161	 -0.00036632	  0.00022441	  7.27292529	  0.99888103	  0.99940927  0.49325178
++8448	 -6.27329171	 -0.00036628	  0.00022438	  7.27292543	  0.99888117	  0.99940934  0.49325178
++8449	 -6.27329181	 -0.00036623	  0.00022435	  7.27292558	  0.99888130	  0.99940941  0.49325183
++8450	 -6.27329192	 -0.00036619	  0.00022433	  7.27292573	  0.99888143	  0.99940948  0.49325179
++8451	 -6.27329202	 -0.00036615	  0.00022430	  7.27292587	  0.99888156	  0.99940955  0.49325183
++8452	 -6.27329212	 -0.00036610	  0.00022427	  7.27292602	  0.99888170	  0.99940962  0.49325178
++8453	 -6.27329223	 -0.00036606	  0.00022425	  7.27292617	  0.99888183	  0.99940969  0.49325167
++8454	 -6.27329233	 -0.00036602	  0.00022422	  7.27292631	  0.99888196	  0.99940976  0.49325180
++8455	 -6.27329244	 -0.00036597	  0.00022419	  7.27292646	  0.99888209	  0.99940983  0.49325201
++8456	 -6.27329254	 -0.00036593	  0.00022417	  7.27292661	  0.99888222	  0.99940990  0.49325190
++8457	 -6.27329264	 -0.00036589	  0.00022414	  7.27292675	  0.99888236	  0.99940997  0.49325201
++8458	 -6.27329275	 -0.00036584	  0.00022412	  7.27292690	  0.99888249	  0.99941004  0.49325203
++8459	 -6.27329285	 -0.00036580	  0.00022409	  7.27292705	  0.99888262	  0.99941011  0.49325195
++8460	 -6.27329295	 -0.00036576	  0.00022406	  7.27292720	  0.99888275	  0.99941018  0.49325194
++8461	 -6.27329306	 -0.00036571	  0.00022404	  7.27292734	  0.99888289	  0.99941025  0.49325187
++8462	 -6.27329316	 -0.00036567	  0.00022401	  7.27292749	  0.99888302	  0.99941032  0.49325203
++8463	 -6.27329326	 -0.00036563	  0.00022398	  7.27292764	  0.99888315	  0.99941039  0.49325193
++8464	 -6.27329337	 -0.00036559	  0.00022396	  7.27292778	  0.99888328	  0.99941046  0.49325192
++8465	 -6.27329347	 -0.00036554	  0.00022393	  7.27292793	  0.99888341	  0.99941053  0.49325212
++8466	 -6.27329357	 -0.00036550	  0.00022390	  7.27292807	  0.99888355	  0.99941060  0.49325192
++8467	 -6.27329368	 -0.00036546	  0.00022388	  7.27292822	  0.99888368	  0.99941067  0.49325204
++8468	 -6.27329378	 -0.00036541	  0.00022385	  7.27292837	  0.99888381	  0.99941074  0.49325210
++8469	 -6.27329388	 -0.00036537	  0.00022382	  7.27292851	  0.99888394	  0.99941081  0.49325200
++8470	 -6.27329399	 -0.00036533	  0.00022380	  7.27292866	  0.99888407	  0.99941088  0.49325216
++8471	 -6.27329409	 -0.00036528	  0.00022377	  7.27292881	  0.99888420	  0.99941095  0.49325212
++8472	 -6.27329419	 -0.00036524	  0.00022374	  7.27292895	  0.99888434	  0.99941102  0.49325214
++8473	 -6.27329430	 -0.00036520	  0.00022372	  7.27292910	  0.99888447	  0.99941108  0.49325208
++8474	 -6.27329440	 -0.00036515	  0.00022369	  7.27292925	  0.99888460	  0.99941115  0.49325230
++8475	 -6.27329450	 -0.00036511	  0.00022367	  7.27292939	  0.99888473	  0.99941122  0.49325225
++8476	 -6.27329461	 -0.00036507	  0.00022364	  7.27292954	  0.99888486	  0.99941129  0.49325212
++8477	 -6.27329471	 -0.00036502	  0.00022361	  7.27292968	  0.99888499	  0.99941136  0.49325221
++8478	 -6.27329481	 -0.00036498	  0.00022359	  7.27292983	  0.99888513	  0.99941143  0.49325215
++8479	 -6.27329491	 -0.00036494	  0.00022356	  7.27292998	  0.99888526	  0.99941150  0.49325228
++8480	 -6.27329502	 -0.00036490	  0.00022353	  7.27293012	  0.99888539	  0.99941157  0.49325236
++8481	 -6.27329512	 -0.00036485	  0.00022351	  7.27293027	  0.99888552	  0.99941164  0.49325238
++8482	 -6.27329522	 -0.00036481	  0.00022348	  7.27293041	  0.99888565	  0.99941171  0.49325230
++8483	 -6.27329533	 -0.00036477	  0.00022345	  7.27293056	  0.99888578	  0.99941178  0.49325233
++8484	 -6.27329543	 -0.00036472	  0.00022343	  7.27293071	  0.99888591	  0.99941185  0.49325243
++8485	 -6.27329553	 -0.00036468	  0.00022340	  7.27293085	  0.99888605	  0.99941192  0.49325248
++8486	 -6.27329564	 -0.00036464	  0.00022338	  7.27293100	  0.99888618	  0.99941199  0.49325226
++8487	 -6.27329574	 -0.00036460	  0.00022335	  7.27293114	  0.99888631	  0.99941206  0.49325247
++8488	 -6.27329584	 -0.00036455	  0.00022332	  7.27293129	  0.99888644	  0.99941213  0.49325235
++8489	 -6.27329594	 -0.00036451	  0.00022330	  7.27293143	  0.99888657	  0.99941219  0.49325238
++8490	 -6.27329605	 -0.00036447	  0.00022327	  7.27293158	  0.99888670	  0.99941226  0.49325236
++8491	 -6.27329615	 -0.00036442	  0.00022324	  7.27293173	  0.99888683	  0.99941233  0.49325251
++8492	 -6.27329625	 -0.00036438	  0.00022322	  7.27293187	  0.99888696	  0.99941240  0.49325244
++8493	 -6.27329635	 -0.00036434	  0.00022319	  7.27293202	  0.99888709	  0.99941247  0.49325243
++8494	 -6.27329646	 -0.00036429	  0.00022317	  7.27293216	  0.99888723	  0.99941254  0.49325235
++8495	 -6.27329656	 -0.00036425	  0.00022314	  7.27293231	  0.99888736	  0.99941261  0.49325265
++8496	 -6.27329666	 -0.00036421	  0.00022311	  7.27293245	  0.99888749	  0.99941268  0.49325266
++8497	 -6.27329677	 -0.00036417	  0.00022309	  7.27293260	  0.99888762	  0.99941275  0.49325241
++8498	 -6.27329687	 -0.00036412	  0.00022306	  7.27293274	  0.99888775	  0.99941282  0.49325251
++8499	 -6.27329697	 -0.00036408	  0.00022303	  7.27293289	  0.99888788	  0.99941289  0.49325244
++8500	 -6.27329707	 -0.00036404	  0.00022301	  7.27293304	  0.99888801	  0.99941295  0.49325256
++8501	 -6.27329718	 -0.00036399	  0.00022298	  7.27293318	  0.99888814	  0.99941302  0.49325261
++8502	 -6.27329728	 -0.00036395	  0.00022296	  7.27293333	  0.99888827	  0.99941309  0.49325262
++8503	 -6.27329738	 -0.00036391	  0.00022293	  7.27293347	  0.99888840	  0.99941316  0.49325272
++8504	 -6.27329748	 -0.00036387	  0.00022290	  7.27293362	  0.99888853	  0.99941323  0.49325264
++8505	 -6.27329758	 -0.00036382	  0.00022288	  7.27293376	  0.99888866	  0.99941330  0.49325271
++8506	 -6.27329769	 -0.00036378	  0.00022285	  7.27293391	  0.99888879	  0.99941337  0.49325250
++8507	 -6.27329779	 -0.00036374	  0.00022282	  7.27293405	  0.99888893	  0.99941344  0.49325276
++8508	 -6.27329789	 -0.00036370	  0.00022280	  7.27293420	  0.99888906	  0.99941351  0.49325279
++8509	 -6.27329799	 -0.00036365	  0.00022277	  7.27293434	  0.99888919	  0.99941358  0.49325256
++8510	 -6.27329810	 -0.00036361	  0.00022275	  7.27293449	  0.99888932	  0.99941364  0.49325269
++8511	 -6.27329820	 -0.00036357	  0.00022272	  7.27293463	  0.99888945	  0.99941371  0.49325274
++8512	 -6.27329830	 -0.00036352	  0.00022269	  7.27293478	  0.99888958	  0.99941378  0.49325276
++8513	 -6.27329840	 -0.00036348	  0.00022267	  7.27293492	  0.99888971	  0.99941385  0.49325275
++8514	 -6.27329851	 -0.00036344	  0.00022264	  7.27293507	  0.99888984	  0.99941392  0.49325266
++8515	 -6.27329861	 -0.00036340	  0.00022261	  7.27293521	  0.99888997	  0.99941399  0.49325274
++8516	 -6.27329871	 -0.00036335	  0.00022259	  7.27293536	  0.99889010	  0.99941406  0.49325275
++8517	 -6.27329881	 -0.00036331	  0.00022256	  7.27293550	  0.99889023	  0.99941413  0.49325279
++8518	 -6.27329891	 -0.00036327	  0.00022254	  7.27293565	  0.99889036	  0.99941420  0.49325277
++8519	 -6.27329902	 -0.00036323	  0.00022251	  7.27293579	  0.99889049	  0.99941426  0.49325299
++8520	 -6.27329912	 -0.00036318	  0.00022248	  7.27293593	  0.99889062	  0.99941433  0.49325298
++8521	 -6.27329922	 -0.00036314	  0.00022246	  7.27293608	  0.99889075	  0.99941440  0.49325274
++8522	 -6.27329932	 -0.00036310	  0.00022243	  7.27293622	  0.99889088	  0.99941447  0.49325294
++8523	 -6.27329942	 -0.00036306	  0.00022241	  7.27293637	  0.99889101	  0.99941454  0.49325297
++8524	 -6.27329953	 -0.00036301	  0.00022238	  7.27293651	  0.99889114	  0.99941461  0.49325278
++8525	 -6.27329963	 -0.00036297	  0.00022235	  7.27293666	  0.99889127	  0.99941468  0.49325281
++8526	 -6.27329973	 -0.00036293	  0.00022233	  7.27293680	  0.99889140	  0.99941474  0.49325304
++8527	 -6.27329983	 -0.00036289	  0.00022230	  7.27293695	  0.99889153	  0.99941481  0.49325295
++8528	 -6.27329993	 -0.00036284	  0.00022228	  7.27293709	  0.99889166	  0.99941488  0.49325311
++8529	 -6.27330004	 -0.00036280	  0.00022225	  7.27293723	  0.99889179	  0.99941495  0.49325291
++8530	 -6.27330014	 -0.00036276	  0.00022222	  7.27293738	  0.99889192	  0.99941502  0.49325317
++8531	 -6.27330024	 -0.00036272	  0.00022220	  7.27293752	  0.99889205	  0.99941509  0.49325298
++8532	 -6.27330034	 -0.00036267	  0.00022217	  7.27293767	  0.99889218	  0.99941516  0.49325316
++8533	 -6.27330044	 -0.00036263	  0.00022215	  7.27293781	  0.99889231	  0.99941522  0.49325310
++8534	 -6.27330054	 -0.00036259	  0.00022212	  7.27293796	  0.99889244	  0.99941529  0.49325314
++8535	 -6.27330065	 -0.00036255	  0.00022209	  7.27293810	  0.99889257	  0.99941536  0.49325310
++8536	 -6.27330075	 -0.00036250	  0.00022207	  7.27293824	  0.99889270	  0.99941543  0.49325300
++8537	 -6.27330085	 -0.00036246	  0.00022204	  7.27293839	  0.99889283	  0.99941550  0.49325323
++8538	 -6.27330095	 -0.00036242	  0.00022202	  7.27293853	  0.99889296	  0.99941557  0.49325313
++8539	 -6.27330105	 -0.00036238	  0.00022199	  7.27293868	  0.99889309	  0.99941564  0.49325318
++8540	 -6.27330115	 -0.00036233	  0.00022196	  7.27293882	  0.99889322	  0.99941570  0.49325325
++8541	 -6.27330126	 -0.00036229	  0.00022194	  7.27293896	  0.99889335	  0.99941577  0.49325315
++8542	 -6.27330136	 -0.00036225	  0.00022191	  7.27293911	  0.99889348	  0.99941584  0.49325312
++8543	 -6.27330146	 -0.00036221	  0.00022189	  7.27293925	  0.99889361	  0.99941591  0.49325327
++8544	 -6.27330156	 -0.00036216	  0.00022186	  7.27293940	  0.99889374	  0.99941598  0.49325334
++8545	 -6.27330166	 -0.00036212	  0.00022183	  7.27293954	  0.99889387	  0.99941605  0.49325318
++8546	 -6.27330176	 -0.00036208	  0.00022181	  7.27293968	  0.99889400	  0.99941611  0.49325339
++8547	 -6.27330186	 -0.00036204	  0.00022178	  7.27293983	  0.99889412	  0.99941618  0.49325320
++8548	 -6.27330197	 -0.00036199	  0.00022176	  7.27293997	  0.99889425	  0.99941625  0.49325327
++8549	 -6.27330207	 -0.00036195	  0.00022173	  7.27294011	  0.99889438	  0.99941632  0.49325329
++8550	 -6.27330217	 -0.00036191	  0.00022170	  7.27294026	  0.99889451	  0.99941639  0.49325333
++8551	 -6.27330227	 -0.00036187	  0.00022168	  7.27294040	  0.99889464	  0.99941646  0.49325330
++8552	 -6.27330237	 -0.00036182	  0.00022165	  7.27294055	  0.99889477	  0.99941652  0.49325321
++8553	 -6.27330247	 -0.00036178	  0.00022163	  7.27294069	  0.99889490	  0.99941659  0.49325343
++8554	 -6.27330257	 -0.00036174	  0.00022160	  7.27294083	  0.99889503	  0.99941666  0.49325334
++8555	 -6.27330267	 -0.00036170	  0.00022157	  7.27294098	  0.99889516	  0.99941673  0.49325333
++8556	 -6.27330278	 -0.00036166	  0.00022155	  7.27294112	  0.99889529	  0.99941680  0.49325328
++8557	 -6.27330288	 -0.00036161	  0.00022152	  7.27294126	  0.99889542	  0.99941686  0.49325344
++8558	 -6.27330298	 -0.00036157	  0.00022150	  7.27294141	  0.99889555	  0.99941693  0.49325340
++8559	 -6.27330308	 -0.00036153	  0.00022147	  7.27294155	  0.99889568	  0.99941700  0.49325337
++8560	 -6.27330318	 -0.00036149	  0.00022144	  7.27294169	  0.99889580	  0.99941707  0.49325346
++8561	 -6.27330328	 -0.00036144	  0.00022142	  7.27294184	  0.99889593	  0.99941714  0.49325350
++8562	 -6.27330338	 -0.00036140	  0.00022139	  7.27294198	  0.99889606	  0.99941720  0.49325355
++8563	 -6.27330348	 -0.00036136	  0.00022137	  7.27294212	  0.99889619	  0.99941727  0.49325362
++8564	 -6.27330358	 -0.00036132	  0.00022134	  7.27294227	  0.99889632	  0.99941734  0.49325356
++8565	 -6.27330368	 -0.00036128	  0.00022132	  7.27294241	  0.99889645	  0.99941741  0.49325360
++8566	 -6.27330379	 -0.00036123	  0.00022129	  7.27294255	  0.99889658	  0.99941748  0.49325348
++8567	 -6.27330389	 -0.00036119	  0.00022126	  7.27294269	  0.99889671	  0.99941754  0.49325378
++8568	 -6.27330399	 -0.00036115	  0.00022124	  7.27294284	  0.99889684	  0.99941761  0.49325364
++8569	 -6.27330409	 -0.00036111	  0.00022121	  7.27294298	  0.99889696	  0.99941768  0.49325361
++8570	 -6.27330419	 -0.00036107	  0.00022119	  7.27294312	  0.99889709	  0.99941775  0.49325386
++8571	 -6.27330429	 -0.00036102	  0.00022116	  7.27294327	  0.99889722	  0.99941782  0.49325359
++8572	 -6.27330439	 -0.00036098	  0.00022113	  7.27294341	  0.99889735	  0.99941788  0.49325371
++8573	 -6.27330449	 -0.00036094	  0.00022111	  7.27294355	  0.99889748	  0.99941795  0.49325375
++8574	 -6.27330459	 -0.00036090	  0.00022108	  7.27294370	  0.99889761	  0.99941802  0.49325371
++8575	 -6.27330469	 -0.00036085	  0.00022106	  7.27294384	  0.99889774	  0.99941809  0.49325378
++8576	 -6.27330479	 -0.00036081	  0.00022103	  7.27294398	  0.99889786	  0.99941816  0.49325370
++8577	 -6.27330489	 -0.00036077	  0.00022101	  7.27294412	  0.99889799	  0.99941822  0.49325364
++8578	 -6.27330499	 -0.00036073	  0.00022098	  7.27294427	  0.99889812	  0.99941829  0.49325373
++8579	 -6.27330510	 -0.00036069	  0.00022095	  7.27294441	  0.99889825	  0.99941836  0.49325372
++8580	 -6.27330520	 -0.00036064	  0.00022093	  7.27294455	  0.99889838	  0.99941843  0.49325391
++8581	 -6.27330530	 -0.00036060	  0.00022090	  7.27294469	  0.99889851	  0.99941849  0.49325378
++8582	 -6.27330540	 -0.00036056	  0.00022088	  7.27294484	  0.99889863	  0.99941856  0.49325387
++8583	 -6.27330550	 -0.00036052	  0.00022085	  7.27294498	  0.99889876	  0.99941863  0.49325370
++8584	 -6.27330560	 -0.00036048	  0.00022083	  7.27294512	  0.99889889	  0.99941870  0.49325386
++8585	 -6.27330570	 -0.00036043	  0.00022080	  7.27294526	  0.99889902	  0.99941877  0.49325387
++8586	 -6.27330580	 -0.00036039	  0.00022077	  7.27294541	  0.99889915	  0.99941883  0.49325384
++8587	 -6.27330590	 -0.00036035	  0.00022075	  7.27294555	  0.99889928	  0.99941890  0.49325392
++8588	 -6.27330600	 -0.00036031	  0.00022072	  7.27294569	  0.99889940	  0.99941897  0.49325387
++8589	 -6.27330610	 -0.00036027	  0.00022070	  7.27294583	  0.99889953	  0.99941904  0.49325390
++8590	 -6.27330620	 -0.00036023	  0.00022067	  7.27294598	  0.99889966	  0.99941910  0.49325400
++8591	 -6.27330630	 -0.00036018	  0.00022065	  7.27294612	  0.99889979	  0.99941917  0.49325409
++8592	 -6.27330640	 -0.00036014	  0.00022062	  7.27294626	  0.99889992	  0.99941924  0.49325386
++8593	 -6.27330650	 -0.00036010	  0.00022059	  7.27294640	  0.99890004	  0.99941931  0.49325408
++8594	 -6.27330660	 -0.00036006	  0.00022057	  7.27294654	  0.99890017	  0.99941937  0.49325391
++8595	 -6.27330670	 -0.00036002	  0.00022054	  7.27294669	  0.99890030	  0.99941944  0.49325389
++8596	 -6.27330680	 -0.00035997	  0.00022052	  7.27294683	  0.99890043	  0.99941951  0.49325379
++8597	 -6.27330690	 -0.00035993	  0.00022049	  7.27294697	  0.99890056	  0.99941958  0.49325409
++8598	 -6.27330700	 -0.00035989	  0.00022047	  7.27294711	  0.99890068	  0.99941964  0.49325388
++8599	 -6.27330710	 -0.00035985	  0.00022044	  7.27294726	  0.99890081	  0.99941971  0.49325402
++8600	 -6.27330720	 -0.00035981	  0.00022041	  7.27294740	  0.99890094	  0.99941978  0.49325423
++8601	 -6.27330730	 -0.00035976	  0.00022039	  7.27294754	  0.99890107	  0.99941985  0.49325405
++8602	 -6.27330740	 -0.00035972	  0.00022036	  7.27294768	  0.99890119	  0.99941991  0.49325402
++8603	 -6.27330750	 -0.00035968	  0.00022034	  7.27294782	  0.99890132	  0.99941998  0.49325409
++8604	 -6.27330760	 -0.00035964	  0.00022031	  7.27294796	  0.99890145	  0.99942005  0.49325408
++8605	 -6.27330770	 -0.00035960	  0.00022029	  7.27294811	  0.99890158	  0.99942012  0.49325430
++8606	 -6.27330780	 -0.00035956	  0.00022026	  7.27294825	  0.99890171	  0.99942018  0.49325412
++8607	 -6.27330790	 -0.00035951	  0.00022024	  7.27294839	  0.99890183	  0.99942025  0.49325410
++8608	 -6.27330800	 -0.00035947	  0.00022021	  7.27294853	  0.99890196	  0.99942032  0.49325444
++8609	 -6.27330810	 -0.00035943	  0.00022018	  7.27294867	  0.99890209	  0.99942039  0.49325431
++8610	 -6.27330820	 -0.00035939	  0.00022016	  7.27294882	  0.99890222	  0.99942045  0.49325422
++8611	 -6.27330830	 -0.00035935	  0.00022013	  7.27294896	  0.99890234	  0.99942052  0.49325435
++8612	 -6.27330840	 -0.00035931	  0.00022011	  7.27294910	  0.99890247	  0.99942059  0.49325426
++8613	 -6.27330850	 -0.00035926	  0.00022008	  7.27294924	  0.99890260	  0.99942065  0.49325433
++8614	 -6.27330860	 -0.00035922	  0.00022006	  7.27294938	  0.99890273	  0.99942072  0.49325432
++8615	 -6.27330870	 -0.00035918	  0.00022003	  7.27294952	  0.99890285	  0.99942079  0.49325444
++8616	 -6.27330880	 -0.00035914	  0.00022001	  7.27294966	  0.99890298	  0.99942086  0.49325435
++8617	 -6.27330890	 -0.00035910	  0.00021998	  7.27294981	  0.99890311	  0.99942092  0.49325422
++8618	 -6.27330900	 -0.00035906	  0.00021995	  7.27294995	  0.99890323	  0.99942099  0.49325439
++8619	 -6.27330910	 -0.00035901	  0.00021993	  7.27295009	  0.99890336	  0.99942106  0.49325438
++8620	 -6.27330920	 -0.00035897	  0.00021990	  7.27295023	  0.99890349	  0.99942113  0.49325454
++8621	 -6.27330930	 -0.00035893	  0.00021988	  7.27295037	  0.99890362	  0.99942119  0.49325448
++8622	 -6.27330940	 -0.00035889	  0.00021985	  7.27295051	  0.99890374	  0.99942126  0.49325441
++8623	 -6.27330950	 -0.00035885	  0.00021983	  7.27295065	  0.99890387	  0.99942133  0.49325438
++8624	 -6.27330960	 -0.00035881	  0.00021980	  7.27295079	  0.99890400	  0.99942139  0.49325444
++8625	 -6.27330970	 -0.00035876	  0.00021978	  7.27295094	  0.99890412	  0.99942146  0.49325455
++8626	 -6.27330980	 -0.00035872	  0.00021975	  7.27295108	  0.99890425	  0.99942153  0.49325435
++8627	 -6.27330990	 -0.00035868	  0.00021972	  7.27295122	  0.99890438	  0.99942159  0.49325446
++8628	 -6.27331000	 -0.00035864	  0.00021970	  7.27295136	  0.99890451	  0.99942166  0.49325463
++8629	 -6.27331010	 -0.00035860	  0.00021967	  7.27295150	  0.99890463	  0.99942173  0.49325459
++8630	 -6.27331020	 -0.00035856	  0.00021965	  7.27295164	  0.99890476	  0.99942180  0.49325444
++8631	 -6.27331030	 -0.00035851	  0.00021962	  7.27295178	  0.99890489	  0.99942186  0.49325446
++8632	 -6.27331040	 -0.00035847	  0.00021960	  7.27295192	  0.99890501	  0.99942193  0.49325470
++8633	 -6.27331050	 -0.00035843	  0.00021957	  7.27295206	  0.99890514	  0.99942200  0.49325447
++8634	 -6.27331059	 -0.00035839	  0.00021955	  7.27295220	  0.99890527	  0.99942206  0.49325451
++8635	 -6.27331069	 -0.00035835	  0.00021952	  7.27295235	  0.99890539	  0.99942213  0.49325471
++8636	 -6.27331079	 -0.00035831	  0.00021950	  7.27295249	  0.99890552	  0.99942220  0.49325479
++8637	 -6.27331089	 -0.00035827	  0.00021947	  7.27295263	  0.99890565	  0.99942226  0.49325465
++8638	 -6.27331099	 -0.00035822	  0.00021944	  7.27295277	  0.99890577	  0.99942233  0.49325460
++8639	 -6.27331109	 -0.00035818	  0.00021942	  7.27295291	  0.99890590	  0.99942240  0.49325463
++8640	 -6.27331119	 -0.00035814	  0.00021939	  7.27295305	  0.99890603	  0.99942246  0.49325475
++8641	 -6.27331129	 -0.00035810	  0.00021937	  7.27295319	  0.99890615	  0.99942253  0.49325484
++8642	 -6.27331139	 -0.00035806	  0.00021934	  7.27295333	  0.99890628	  0.99942260  0.49325478
++8643	 -6.27331149	 -0.00035802	  0.00021932	  7.27295347	  0.99890641	  0.99942267  0.49325476
++8644	 -6.27331159	 -0.00035798	  0.00021929	  7.27295361	  0.99890653	  0.99942273  0.49325474
++8645	 -6.27331169	 -0.00035793	  0.00021927	  7.27295375	  0.99890666	  0.99942280  0.49325471
++8646	 -6.27331179	 -0.00035789	  0.00021924	  7.27295389	  0.99890679	  0.99942287  0.49325479
++8647	 -6.27331188	 -0.00035785	  0.00021922	  7.27295403	  0.99890691	  0.99942293  0.49325475
++8648	 -6.27331198	 -0.00035781	  0.00021919	  7.27295417	  0.99890704	  0.99942300  0.49325483
++8649	 -6.27331208	 -0.00035777	  0.00021917	  7.27295431	  0.99890717	  0.99942307  0.49325488
++8650	 -6.27331218	 -0.00035773	  0.00021914	  7.27295445	  0.99890729	  0.99942313  0.49325468
++8651	 -6.27331228	 -0.00035769	  0.00021911	  7.27295459	  0.99890742	  0.99942320  0.49325487
++8652	 -6.27331238	 -0.00035764	  0.00021909	  7.27295473	  0.99890754	  0.99942327  0.49325491
++8653	 -6.27331248	 -0.00035760	  0.00021906	  7.27295487	  0.99890767	  0.99942333  0.49325485
++8654	 -6.27331258	 -0.00035756	  0.00021904	  7.27295501	  0.99890780	  0.99942340  0.49325494
++8655	 -6.27331268	 -0.00035752	  0.00021901	  7.27295515	  0.99890792	  0.99942347  0.49325489
++8656	 -6.27331277	 -0.00035748	  0.00021899	  7.27295529	  0.99890805	  0.99942353  0.49325507
++8657	 -6.27331287	 -0.00035744	  0.00021896	  7.27295544	  0.99890818	  0.99942360  0.49325487
++8658	 -6.27331297	 -0.00035740	  0.00021894	  7.27295558	  0.99890830	  0.99942367  0.49325485
++8659	 -6.27331307	 -0.00035736	  0.00021891	  7.27295572	  0.99890843	  0.99942373  0.49325494
++8660	 -6.27331317	 -0.00035731	  0.00021889	  7.27295586	  0.99890855	  0.99942380  0.49325502
++8661	 -6.27331327	 -0.00035727	  0.00021886	  7.27295600	  0.99890868	  0.99942386  0.49325506
++8662	 -6.27331337	 -0.00035723	  0.00021884	  7.27295614	  0.99890881	  0.99942393  0.49325501
++8663	 -6.27331347	 -0.00035719	  0.00021881	  7.27295628	  0.99890893	  0.99942400  0.49325503
++8664	 -6.27331356	 -0.00035715	  0.00021879	  7.27295642	  0.99890906	  0.99942406  0.49325490
++8665	 -6.27331366	 -0.00035711	  0.00021876	  7.27295655	  0.99890918	  0.99942413  0.49325500
++8666	 -6.27331376	 -0.00035707	  0.00021874	  7.27295669	  0.99890931	  0.99942420  0.49325510
++8667	 -6.27331386	 -0.00035703	  0.00021871	  7.27295683	  0.99890943	  0.99942426  0.49325499
++8668	 -6.27331396	 -0.00035698	  0.00021869	  7.27295697	  0.99890956	  0.99942433  0.49325505
++8669	 -6.27331406	 -0.00035694	  0.00021866	  7.27295711	  0.99890969	  0.99942440  0.49325506
++8670	 -6.27331416	 -0.00035690	  0.00021863	  7.27295725	  0.99890981	  0.99942446  0.49325523
++8671	 -6.27331425	 -0.00035686	  0.00021861	  7.27295739	  0.99890994	  0.99942453  0.49325511
++8672	 -6.27331435	 -0.00035682	  0.00021858	  7.27295753	  0.99891006	  0.99942460  0.49325502
++8673	 -6.27331445	 -0.00035678	  0.00021856	  7.27295767	  0.99891019	  0.99942466  0.49325512
++8674	 -6.27331455	 -0.00035674	  0.00021853	  7.27295781	  0.99891032	  0.99942473  0.49325535
++8675	 -6.27331465	 -0.00035670	  0.00021851	  7.27295795	  0.99891044	  0.99942479  0.49325526
++8676	 -6.27331475	 -0.00035666	  0.00021848	  7.27295809	  0.99891057	  0.99942486  0.49325504
++8677	 -6.27331485	 -0.00035661	  0.00021846	  7.27295823	  0.99891069	  0.99942493  0.49325512
++8678	 -6.27331494	 -0.00035657	  0.00021843	  7.27295837	  0.99891082	  0.99942499  0.49325533
++8679	 -6.27331504	 -0.00035653	  0.00021841	  7.27295851	  0.99891094	  0.99942506  0.49325523
++8680	 -6.27331514	 -0.00035649	  0.00021838	  7.27295865	  0.99891107	  0.99942513  0.49325528
++8681	 -6.27331524	 -0.00035645	  0.00021836	  7.27295879	  0.99891119	  0.99942519  0.49325526
++8682	 -6.27331534	 -0.00035641	  0.00021833	  7.27295893	  0.99891132	  0.99942526  0.49325527
++8683	 -6.27331543	 -0.00035637	  0.00021831	  7.27295907	  0.99891144	  0.99942532  0.49325541
++8684	 -6.27331553	 -0.00035633	  0.00021828	  7.27295921	  0.99891157	  0.99942539  0.49325526
++8685	 -6.27331563	 -0.00035629	  0.00021826	  7.27295935	  0.99891169	  0.99942546  0.49325518
++8686	 -6.27331573	 -0.00035625	  0.00021823	  7.27295948	  0.99891182	  0.99942552  0.49325527
++8687	 -6.27331583	 -0.00035620	  0.00021821	  7.27295962	  0.99891195	  0.99942559  0.49325543
++8688	 -6.27331593	 -0.00035616	  0.00021818	  7.27295976	  0.99891207	  0.99942566  0.49325535
++8689	 -6.27331602	 -0.00035612	  0.00021816	  7.27295990	  0.99891220	  0.99942572  0.49325531
++8690	 -6.27331612	 -0.00035608	  0.00021813	  7.27296004	  0.99891232	  0.99942579  0.49325537
++8691	 -6.27331622	 -0.00035604	  0.00021811	  7.27296018	  0.99891245	  0.99942585  0.49325536
++8692	 -6.27331632	 -0.00035600	  0.00021808	  7.27296032	  0.99891257	  0.99942592  0.49325546
++8693	 -6.27331642	 -0.00035596	  0.00021806	  7.27296046	  0.99891270	  0.99942599  0.49325549
++8694	 -6.27331651	 -0.00035592	  0.00021803	  7.27296060	  0.99891282	  0.99942605  0.49325546
++8695	 -6.27331661	 -0.00035588	  0.00021801	  7.27296074	  0.99891295	  0.99942612  0.49325542
++8696	 -6.27331671	 -0.00035584	  0.00021798	  7.27296087	  0.99891307	  0.99942618  0.49325537
++8697	 -6.27331681	 -0.00035579	  0.00021796	  7.27296101	  0.99891320	  0.99942625  0.49325535
++8698	 -6.27331691	 -0.00035575	  0.00021793	  7.27296115	  0.99891332	  0.99942632  0.49325540
++8699	 -6.27331700	 -0.00035571	  0.00021791	  7.27296129	  0.99891345	  0.99942638  0.49325546
++8700	 -6.27331710	 -0.00035567	  0.00021788	  7.27296143	  0.99891357	  0.99942645  0.49325545
++8701	 -6.27331720	 -0.00035563	  0.00021786	  7.27296157	  0.99891370	  0.99942651  0.49325569
++8702	 -6.27331730	 -0.00035559	  0.00021783	  7.27296171	  0.99891382	  0.99942658  0.49325550
++8703	 -6.27331740	 -0.00035555	  0.00021781	  7.27296185	  0.99891395	  0.99942664  0.49325563
++8704	 -6.27331749	 -0.00035551	  0.00021778	  7.27296198	  0.99891407	  0.99942671  0.49325568
++8705	 -6.27331759	 -0.00035547	  0.00021776	  7.27296212	  0.99891420	  0.99942678  0.49325547
++8706	 -6.27331769	 -0.00035543	  0.00021773	  7.27296226	  0.99891432	  0.99942684  0.49325550
++8707	 -6.27331779	 -0.00035539	  0.00021771	  7.27296240	  0.99891444	  0.99942691  0.49325571
++8708	 -6.27331788	 -0.00035535	  0.00021768	  7.27296254	  0.99891457	  0.99942697  0.49325568
++8709	 -6.27331798	 -0.00035530	  0.00021766	  7.27296268	  0.99891469	  0.99942704  0.49325562
++8710	 -6.27331808	 -0.00035526	  0.00021763	  7.27296281	  0.99891482	  0.99942711  0.49325569
++8711	 -6.27331818	 -0.00035522	  0.00021761	  7.27296295	  0.99891494	  0.99942717  0.49325576
++8712	 -6.27331827	 -0.00035518	  0.00021758	  7.27296309	  0.99891507	  0.99942724  0.49325584
++8713	 -6.27331837	 -0.00035514	  0.00021756	  7.27296323	  0.99891519	  0.99942730  0.49325572
++8714	 -6.27331847	 -0.00035510	  0.00021753	  7.27296337	  0.99891532	  0.99942737  0.49325557
++8715	 -6.27331857	 -0.00035506	  0.00021751	  7.27296351	  0.99891544	  0.99942743  0.49325555
++8716	 -6.27331866	 -0.00035502	  0.00021748	  7.27296364	  0.99891557	  0.99942750  0.49325590
++8717	 -6.27331876	 -0.00035498	  0.00021746	  7.27296378	  0.99891569	  0.99942757  0.49325582
++8718	 -6.27331886	 -0.00035494	  0.00021743	  7.27296392	  0.99891581	  0.99942763  0.49325599
++8719	 -6.27331896	 -0.00035490	  0.00021741	  7.27296406	  0.99891594	  0.99942770  0.49325596
++8720	 -6.27331905	 -0.00035486	  0.00021738	  7.27296420	  0.99891606	  0.99942776  0.49325600
++8721	 -6.27331915	 -0.00035482	  0.00021736	  7.27296434	  0.99891619	  0.99942783  0.49325578
++8722	 -6.27331925	 -0.00035478	  0.00021733	  7.27296447	  0.99891631	  0.99942789  0.49325597
++8723	 -6.27331935	 -0.00035473	  0.00021731	  7.27296461	  0.99891644	  0.99942796  0.49325578
++8724	 -6.27331944	 -0.00035469	  0.00021728	  7.27296475	  0.99891656	  0.99942802  0.49325601
++8725	 -6.27331954	 -0.00035465	  0.00021726	  7.27296489	  0.99891668	  0.99942809  0.49325574
++8726	 -6.27331964	 -0.00035461	  0.00021723	  7.27296503	  0.99891681	  0.99942816  0.49325598
++8727	 -6.27331974	 -0.00035457	  0.00021721	  7.27296516	  0.99891693	  0.99942822  0.49325602
++8728	 -6.27331983	 -0.00035453	  0.00021718	  7.27296530	  0.99891706	  0.99942829  0.49325595
++8729	 -6.27331993	 -0.00035449	  0.00021716	  7.27296544	  0.99891718	  0.99942835  0.49325608
++8730	 -6.27332003	 -0.00035445	  0.00021713	  7.27296558	  0.99891730	  0.99942842  0.49325597
++8731	 -6.27332012	 -0.00035441	  0.00021711	  7.27296571	  0.99891743	  0.99942848  0.49325598
++8732	 -6.27332022	 -0.00035437	  0.00021708	  7.27296585	  0.99891755	  0.99942855  0.49325613
++8733	 -6.27332032	 -0.00035433	  0.00021706	  7.27296599	  0.99891768	  0.99942861  0.49325588
++8734	 -6.27332042	 -0.00035429	  0.00021703	  7.27296613	  0.99891780	  0.99942868  0.49325598
++8735	 -6.27332051	 -0.00035425	  0.00021701	  7.27296626	  0.99891792	  0.99942874  0.49325592
++8736	 -6.27332061	 -0.00035421	  0.00021698	  7.27296640	  0.99891805	  0.99942881  0.49325612
++8737	 -6.27332071	 -0.00035417	  0.00021696	  7.27296654	  0.99891817	  0.99942888  0.49325620
++8738	 -6.27332080	 -0.00035413	  0.00021693	  7.27296668	  0.99891830	  0.99942894  0.49325610
++8739	 -6.27332090	 -0.00035409	  0.00021691	  7.27296681	  0.99891842	  0.99942901  0.49325614
++8740	 -6.27332100	 -0.00035405	  0.00021688	  7.27296695	  0.99891854	  0.99942907  0.49325612
++8741	 -6.27332109	 -0.00035400	  0.00021686	  7.27296709	  0.99891867	  0.99942914  0.49325613
++8742	 -6.27332119	 -0.00035396	  0.00021683	  7.27296723	  0.99891879	  0.99942920  0.49325604
++8743	 -6.27332129	 -0.00035392	  0.00021681	  7.27296736	  0.99891891	  0.99942927  0.49325626
++8744	 -6.27332139	 -0.00035388	  0.00021678	  7.27296750	  0.99891904	  0.99942933  0.49325625
++8745	 -6.27332148	 -0.00035384	  0.00021676	  7.27296764	  0.99891916	  0.99942940  0.49325605
++8746	 -6.27332158	 -0.00035380	  0.00021673	  7.27296778	  0.99891928	  0.99942946  0.49325626
++8747	 -6.27332168	 -0.00035376	  0.00021671	  7.27296791	  0.99891941	  0.99942953  0.49325629
++8748	 -6.27332177	 -0.00035372	  0.00021669	  7.27296805	  0.99891953	  0.99942959  0.49325630
++8749	 -6.27332187	 -0.00035368	  0.00021666	  7.27296819	  0.99891966	  0.99942966  0.49325628
++8750	 -6.27332197	 -0.00035364	  0.00021664	  7.27296833	  0.99891978	  0.99942972  0.49325635
++8751	 -6.27332206	 -0.00035360	  0.00021661	  7.27296846	  0.99891990	  0.99942979  0.49325625
++8752	 -6.27332216	 -0.00035356	  0.00021659	  7.27296860	  0.99892003	  0.99942985  0.49325617
++8753	 -6.27332226	 -0.00035352	  0.00021656	  7.27296874	  0.99892015	  0.99942992  0.49325641
++8754	 -6.27332235	 -0.00035348	  0.00021654	  7.27296887	  0.99892027	  0.99942998  0.49325636
++8755	 -6.27332245	 -0.00035344	  0.00021651	  7.27296901	  0.99892040	  0.99943005  0.49325630
++8756	 -6.27332255	 -0.00035340	  0.00021649	  7.27296915	  0.99892052	  0.99943011  0.49325637
++8757	 -6.27332264	 -0.00035336	  0.00021646	  7.27296928	  0.99892064	  0.99943018  0.49325631
++8758	 -6.27332274	 -0.00035332	  0.00021644	  7.27296942	  0.99892077	  0.99943024  0.49325656
++8759	 -6.27332284	 -0.00035328	  0.00021641	  7.27296956	  0.99892089	  0.99943031  0.49325631
++8760	 -6.27332293	 -0.00035324	  0.00021639	  7.27296970	  0.99892101	  0.99943037  0.49325638
++8761	 -6.27332303	 -0.00035320	  0.00021636	  7.27296983	  0.99892114	  0.99943044  0.49325647
++8762	 -6.27332313	 -0.00035316	  0.00021634	  7.27296997	  0.99892126	  0.99943050  0.49325639
++8763	 -6.27332322	 -0.00035312	  0.00021631	  7.27297011	  0.99892138	  0.99943057  0.49325638
++8764	 -6.27332332	 -0.00035308	  0.00021629	  7.27297024	  0.99892150	  0.99943063  0.49325638
++8765	 -6.27332341	 -0.00035304	  0.00021626	  7.27297038	  0.99892163	  0.99943070  0.49325643
++8766	 -6.27332351	 -0.00035300	  0.00021624	  7.27297052	  0.99892175	  0.99943076  0.49325659
++8767	 -6.27332361	 -0.00035296	  0.00021622	  7.27297065	  0.99892187	  0.99943083  0.49325672
++8768	 -6.27332370	 -0.00035291	  0.00021619	  7.27297079	  0.99892200	  0.99943089  0.49325654
++8769	 -6.27332380	 -0.00035287	  0.00021617	  7.27297093	  0.99892212	  0.99943096  0.49325642
++8770	 -6.27332390	 -0.00035283	  0.00021614	  7.27297106	  0.99892224	  0.99943102  0.49325660
++8771	 -6.27332399	 -0.00035279	  0.00021612	  7.27297120	  0.99892237	  0.99943109  0.49325667
++8772	 -6.27332409	 -0.00035275	  0.00021609	  7.27297133	  0.99892249	  0.99943115  0.49325649
++8773	 -6.27332418	 -0.00035271	  0.00021607	  7.27297147	  0.99892261	  0.99943122  0.49325655
++8774	 -6.27332428	 -0.00035267	  0.00021604	  7.27297161	  0.99892273	  0.99943128  0.49325662
++8775	 -6.27332438	 -0.00035263	  0.00021602	  7.27297174	  0.99892286	  0.99943135  0.49325664
++8776	 -6.27332447	 -0.00035259	  0.00021599	  7.27297188	  0.99892298	  0.99943141  0.49325657
++8777	 -6.27332457	 -0.00035255	  0.00021597	  7.27297202	  0.99892310	  0.99943148  0.49325670
++8778	 -6.27332467	 -0.00035251	  0.00021594	  7.27297215	  0.99892322	  0.99943154  0.49325664
++8779	 -6.27332476	 -0.00035247	  0.00021592	  7.27297229	  0.99892335	  0.99943161  0.49325680
++8780	 -6.27332486	 -0.00035243	  0.00021590	  7.27297243	  0.99892347	  0.99943167  0.49325677
++8781	 -6.27332495	 -0.00035239	  0.00021587	  7.27297256	  0.99892359	  0.99943174  0.49325674
++8782	 -6.27332505	 -0.00035235	  0.00021585	  7.27297270	  0.99892371	  0.99943180  0.49325673
++8783	 -6.27332515	 -0.00035231	  0.00021582	  7.27297283	  0.99892384	  0.99943187  0.49325687
++8784	 -6.27332524	 -0.00035227	  0.00021580	  7.27297297	  0.99892396	  0.99943193  0.49325676
++8785	 -6.27332534	 -0.00035223	  0.00021577	  7.27297311	  0.99892408	  0.99943200  0.49325694
++8786	 -6.27332543	 -0.00035219	  0.00021575	  7.27297324	  0.99892420	  0.99943206  0.49325684
++8787	 -6.27332553	 -0.00035215	  0.00021572	  7.27297338	  0.99892433	  0.99943212  0.49325673
++8788	 -6.27332563	 -0.00035211	  0.00021570	  7.27297351	  0.99892445	  0.99943219  0.49325679
++8789	 -6.27332572	 -0.00035207	  0.00021567	  7.27297365	  0.99892457	  0.99943225  0.49325687
++8790	 -6.27332582	 -0.00035203	  0.00021565	  7.27297379	  0.99892469	  0.99943232  0.49325682
++8791	 -6.27332591	 -0.00035199	  0.00021563	  7.27297392	  0.99892482	  0.99943238  0.49325693
++8792	 -6.27332601	 -0.00035195	  0.00021560	  7.27297406	  0.99892494	  0.99943245  0.49325706
++8793	 -6.27332611	 -0.00035191	  0.00021558	  7.27297419	  0.99892506	  0.99943251  0.49325679
++8794	 -6.27332620	 -0.00035187	  0.00021555	  7.27297433	  0.99892518	  0.99943258  0.49325693
++8795	 -6.27332630	 -0.00035183	  0.00021553	  7.27297446	  0.99892531	  0.99943264  0.49325690
++8796	 -6.27332639	 -0.00035179	  0.00021550	  7.27297460	  0.99892543	  0.99943271  0.49325679
++8797	 -6.27332649	 -0.00035175	  0.00021548	  7.27297474	  0.99892555	  0.99943277  0.49325703
++8798	 -6.27332658	 -0.00035171	  0.00021545	  7.27297487	  0.99892567	  0.99943283  0.49325709
++8799	 -6.27332668	 -0.00035167	  0.00021543	  7.27297501	  0.99892579	  0.99943290  0.49325716
++8800	 -6.27332678	 -0.00035163	  0.00021540	  7.27297514	  0.99892592	  0.99943296  0.49325688
++8801	 -6.27332687	 -0.00035159	  0.00021538	  7.27297528	  0.99892604	  0.99943303  0.49325701
++8802	 -6.27332697	 -0.00035155	  0.00021536	  7.27297541	  0.99892616	  0.99943309  0.49325699
++8803	 -6.27332706	 -0.00035151	  0.00021533	  7.27297555	  0.99892628	  0.99943316  0.49325716
++8804	 -6.27332716	 -0.00035147	  0.00021531	  7.27297569	  0.99892640	  0.99943322  0.49325705
++8805	 -6.27332725	 -0.00035143	  0.00021528	  7.27297582	  0.99892653	  0.99943329  0.49325714
++8806	 -6.27332735	 -0.00035139	  0.00021526	  7.27297596	  0.99892665	  0.99943335  0.49325697
++8807	 -6.27332744	 -0.00035135	  0.00021523	  7.27297609	  0.99892677	  0.99943341  0.49325706
++8808	 -6.27332754	 -0.00035131	  0.00021521	  7.27297623	  0.99892689	  0.99943348  0.49325710
++8809	 -6.27332763	 -0.00035127	  0.00021518	  7.27297636	  0.99892701	  0.99943354  0.49325718
++8810	 -6.27332773	 -0.00035123	  0.00021516	  7.27297650	  0.99892714	  0.99943361  0.49325714
++8811	 -6.27332783	 -0.00035119	  0.00021514	  7.27297663	  0.99892726	  0.99943367  0.49325704
++8812	 -6.27332792	 -0.00035115	  0.00021511	  7.27297677	  0.99892738	  0.99943374  0.49325724
++8813	 -6.27332802	 -0.00035111	  0.00021509	  7.27297690	  0.99892750	  0.99943380  0.49325727
++8814	 -6.27332811	 -0.00035107	  0.00021506	  7.27297704	  0.99892762	  0.99943386  0.49325718
++8815	 -6.27332821	 -0.00035103	  0.00021504	  7.27297717	  0.99892774	  0.99943393  0.49325715
++8816	 -6.27332830	 -0.00035099	  0.00021501	  7.27297731	  0.99892787	  0.99943399  0.49325736
++8817	 -6.27332840	 -0.00035095	  0.00021499	  7.27297744	  0.99892799	  0.99943406  0.49325725
++8818	 -6.27332849	 -0.00035091	  0.00021496	  7.27297758	  0.99892811	  0.99943412  0.49325737
++8819	 -6.27332859	 -0.00035087	  0.00021494	  7.27297771	  0.99892823	  0.99943418  0.49325733
++8820	 -6.27332868	 -0.00035084	  0.00021492	  7.27297785	  0.99892835	  0.99943425  0.49325727
++8821	 -6.27332878	 -0.00035080	  0.00021489	  7.27297798	  0.99892847	  0.99943431  0.49325722
++8822	 -6.27332887	 -0.00035076	  0.00021487	  7.27297812	  0.99892859	  0.99943438  0.49325726
++8823	 -6.27332897	 -0.00035072	  0.00021484	  7.27297825	  0.99892872	  0.99943444  0.49325746
++8824	 -6.27332906	 -0.00035068	  0.00021482	  7.27297839	  0.99892884	  0.99943451  0.49325735
++8825	 -6.27332916	 -0.00035064	  0.00021479	  7.27297852	  0.99892896	  0.99943457  0.49325729
++8826	 -6.27332925	 -0.00035060	  0.00021477	  7.27297866	  0.99892908	  0.99943463  0.49325733
++8827	 -6.27332935	 -0.00035056	  0.00021475	  7.27297879	  0.99892920	  0.99943470  0.49325743
++8828	 -6.27332944	 -0.00035052	  0.00021472	  7.27297893	  0.99892932	  0.99943476  0.49325745
++8829	 -6.27332954	 -0.00035048	  0.00021470	  7.27297906	  0.99892944	  0.99943483  0.49325763
++8830	 -6.27332963	 -0.00035044	  0.00021467	  7.27297920	  0.99892956	  0.99943489  0.49325734
++8831	 -6.27332973	 -0.00035040	  0.00021465	  7.27297933	  0.99892969	  0.99943495  0.49325743
++8832	 -6.27332982	 -0.00035036	  0.00021462	  7.27297947	  0.99892981	  0.99943502  0.49325746
++8833	 -6.27332992	 -0.00035032	  0.00021460	  7.27297960	  0.99892993	  0.99943508  0.49325750
++8834	 -6.27333001	 -0.00035028	  0.00021458	  7.27297973	  0.99893005	  0.99943515  0.49325754
++8835	 -6.27333011	 -0.00035024	  0.00021455	  7.27297987	  0.99893017	  0.99943521  0.49325751
++8836	 -6.27333020	 -0.00035020	  0.00021453	  7.27298000	  0.99893029	  0.99943527  0.49325761
++8837	 -6.27333030	 -0.00035016	  0.00021450	  7.27298014	  0.99893041	  0.99943534  0.49325752
++8838	 -6.27333039	 -0.00035012	  0.00021448	  7.27298027	  0.99893053	  0.99943540  0.49325748
++8839	 -6.27333049	 -0.00035008	  0.00021445	  7.27298041	  0.99893065	  0.99943546  0.49325770
++8840	 -6.27333058	 -0.00035004	  0.00021443	  7.27298054	  0.99893078	  0.99943553  0.49325749
++8841	 -6.27333068	 -0.00035000	  0.00021441	  7.27298068	  0.99893090	  0.99943559  0.49325754
++8842	 -6.27333077	 -0.00034996	  0.00021438	  7.27298081	  0.99893102	  0.99943566  0.49325757
++8843	 -6.27333087	 -0.00034992	  0.00021436	  7.27298094	  0.99893114	  0.99943572  0.49325772
++8844	 -6.27333096	 -0.00034988	  0.00021433	  7.27298108	  0.99893126	  0.99943578  0.49325749
++8845	 -6.27333106	 -0.00034984	  0.00021431	  7.27298121	  0.99893138	  0.99943585  0.49325746
++8846	 -6.27333115	 -0.00034980	  0.00021428	  7.27298135	  0.99893150	  0.99943591  0.49325763
++8847	 -6.27333125	 -0.00034976	  0.00021426	  7.27298148	  0.99893162	  0.99943597  0.49325780
++8848	 -6.27333134	 -0.00034973	  0.00021424	  7.27298162	  0.99893174	  0.99943604  0.49325773
++8849	 -6.27333144	 -0.00034969	  0.00021421	  7.27298175	  0.99893186	  0.99943610  0.49325774
++8850	 -6.27333153	 -0.00034965	  0.00021419	  7.27298188	  0.99893198	  0.99943617  0.49325768
++8851	 -6.27333162	 -0.00034961	  0.00021416	  7.27298202	  0.99893210	  0.99943623  0.49325772
++8852	 -6.27333172	 -0.00034957	  0.00021414	  7.27298215	  0.99893223	  0.99943629  0.49325780
++8853	 -6.27333181	 -0.00034953	  0.00021412	  7.27298229	  0.99893235	  0.99943636  0.49325790
++8854	 -6.27333191	 -0.00034949	  0.00021409	  7.27298242	  0.99893247	  0.99943642  0.49325769
++8855	 -6.27333200	 -0.00034945	  0.00021407	  7.27298255	  0.99893259	  0.99943648  0.49325784
++8856	 -6.27333210	 -0.00034941	  0.00021404	  7.27298269	  0.99893271	  0.99943655  0.49325781
++8857	 -6.27333219	 -0.00034937	  0.00021402	  7.27298282	  0.99893283	  0.99943661  0.49325781
++8858	 -6.27333229	 -0.00034933	  0.00021399	  7.27298296	  0.99893295	  0.99943668  0.49325775
++8859	 -6.27333238	 -0.00034929	  0.00021397	  7.27298309	  0.99893307	  0.99943674  0.49325777
++8860	 -6.27333247	 -0.00034925	  0.00021395	  7.27298322	  0.99893319	  0.99943680  0.49325794
++8861	 -6.27333257	 -0.00034921	  0.00021392	  7.27298336	  0.99893331	  0.99943687  0.49325786
++8862	 -6.27333266	 -0.00034917	  0.00021390	  7.27298349	  0.99893343	  0.99943693  0.49325783
++8863	 -6.27333276	 -0.00034913	  0.00021387	  7.27298362	  0.99893355	  0.99943699  0.49325777
++8864	 -6.27333285	 -0.00034909	  0.00021385	  7.27298376	  0.99893367	  0.99943706  0.49325800
++8865	 -6.27333295	 -0.00034905	  0.00021383	  7.27298389	  0.99893379	  0.99943712  0.49325788
++8866	 -6.27333304	 -0.00034902	  0.00021380	  7.27298402	  0.99893391	  0.99943718  0.49325796
++8867	 -6.27333313	 -0.00034898	  0.00021378	  7.27298416	  0.99893403	  0.99943725  0.49325777
++8868	 -6.27333323	 -0.00034894	  0.00021375	  7.27298429	  0.99893415	  0.99943731  0.49325803
++8869	 -6.27333332	 -0.00034890	  0.00021373	  7.27298443	  0.99893427	  0.99943737  0.49325799
++8870	 -6.27333342	 -0.00034886	  0.00021370	  7.27298456	  0.99893439	  0.99943744  0.49325815
++8871	 -6.27333351	 -0.00034882	  0.00021368	  7.27298469	  0.99893451	  0.99943750  0.49325810
++8872	 -6.27333360	 -0.00034878	  0.00021366	  7.27298483	  0.99893463	  0.99943756  0.49325805
++8873	 -6.27333370	 -0.00034874	  0.00021363	  7.27298496	  0.99893475	  0.99943763  0.49325805
++8874	 -6.27333379	 -0.00034870	  0.00021361	  7.27298509	  0.99893487	  0.99943769  0.49325810
++8875	 -6.27333389	 -0.00034866	  0.00021358	  7.27298523	  0.99893499	  0.99943775  0.49325812
++8876	 -6.27333398	 -0.00034862	  0.00021356	  7.27298536	  0.99893511	  0.99943782  0.49325800
++8877	 -6.27333408	 -0.00034858	  0.00021354	  7.27298549	  0.99893523	  0.99943788  0.49325798
++8878	 -6.27333417	 -0.00034854	  0.00021351	  7.27298563	  0.99893535	  0.99943794  0.49325819
++8879	 -6.27333426	 -0.00034850	  0.00021349	  7.27298576	  0.99893547	  0.99943801  0.49325809
++8880	 -6.27333436	 -0.00034847	  0.00021346	  7.27298589	  0.99893559	  0.99943807  0.49325811
++8881	 -6.27333445	 -0.00034843	  0.00021344	  7.27298602	  0.99893571	  0.99943813  0.49325804
++8882	 -6.27333454	 -0.00034839	  0.00021342	  7.27298616	  0.99893583	  0.99943820  0.49325814
++8883	 -6.27333464	 -0.00034835	  0.00021339	  7.27298629	  0.99893595	  0.99943826  0.49325817
++8884	 -6.27333473	 -0.00034831	  0.00021337	  7.27298642	  0.99893607	  0.99943832  0.49325810
++8885	 -6.27333483	 -0.00034827	  0.00021334	  7.27298656	  0.99893619	  0.99943839  0.49325810
++8886	 -6.27333492	 -0.00034823	  0.00021332	  7.27298669	  0.99893631	  0.99943845  0.49325813
++8887	 -6.27333501	 -0.00034819	  0.00021330	  7.27298682	  0.99893643	  0.99943851  0.49325821
++8888	 -6.27333511	 -0.00034815	  0.00021327	  7.27298696	  0.99893655	  0.99943858  0.49325825
++8889	 -6.27333520	 -0.00034811	  0.00021325	  7.27298709	  0.99893667	  0.99943864  0.49325802
++8890	 -6.27333530	 -0.00034807	  0.00021322	  7.27298722	  0.99893679	  0.99943870  0.49325839
++8891	 -6.27333539	 -0.00034803	  0.00021320	  7.27298735	  0.99893691	  0.99943877  0.49325824
++8892	 -6.27333548	 -0.00034800	  0.00021318	  7.27298749	  0.99893703	  0.99943883  0.49325827
++8893	 -6.27333558	 -0.00034796	  0.00021315	  7.27298762	  0.99893715	  0.99943889  0.49325830
++8894	 -6.27333567	 -0.00034792	  0.00021313	  7.27298775	  0.99893727	  0.99943895  0.49325817
++8895	 -6.27333576	 -0.00034788	  0.00021310	  7.27298789	  0.99893739	  0.99943902  0.49325841
++8896	 -6.27333586	 -0.00034784	  0.00021308	  7.27298802	  0.99893751	  0.99943908  0.49325836
++8897	 -6.27333595	 -0.00034780	  0.00021306	  7.27298815	  0.99893763	  0.99943914  0.49325836
++8898	 -6.27333604	 -0.00034776	  0.00021303	  7.27298828	  0.99893774	  0.99943921  0.49325838
++8899	 -6.27333614	 -0.00034772	  0.00021301	  7.27298842	  0.99893786	  0.99943927  0.49325845
++8900	 -6.27333623	 -0.00034768	  0.00021298	  7.27298855	  0.99893798	  0.99943933  0.49325848
++8901	 -6.27333632	 -0.00034764	  0.00021296	  7.27298868	  0.99893810	  0.99943940  0.49325833
++8902	 -6.27333642	 -0.00034760	  0.00021294	  7.27298881	  0.99893822	  0.99943946  0.49325843
++8903	 -6.27333651	 -0.00034757	  0.00021291	  7.27298895	  0.99893834	  0.99943952  0.49325849
++8904	 -6.27333661	 -0.00034753	  0.00021289	  7.27298908	  0.99893846	  0.99943958  0.49325841
++8905	 -6.27333670	 -0.00034749	  0.00021286	  7.27298921	  0.99893858	  0.99943965  0.49325856
++8906	 -6.27333679	 -0.00034745	  0.00021284	  7.27298934	  0.99893870	  0.99943971  0.49325841
++8907	 -6.27333689	 -0.00034741	  0.00021282	  7.27298948	  0.99893882	  0.99943977  0.49325845
++8908	 -6.27333698	 -0.00034737	  0.00021279	  7.27298961	  0.99893894	  0.99943984  0.49325852
++8909	 -6.27333707	 -0.00034733	  0.00021277	  7.27298974	  0.99893906	  0.99943990  0.49325863
++8910	 -6.27333717	 -0.00034729	  0.00021275	  7.27298987	  0.99893918	  0.99943996  0.49325866
++8911	 -6.27333726	 -0.00034725	  0.00021272	  7.27299000	  0.99893929	  0.99944002  0.49325856
++8912	 -6.27333735	 -0.00034721	  0.00021270	  7.27299014	  0.99893941	  0.99944009  0.49325854
++8913	 -6.27333745	 -0.00034718	  0.00021267	  7.27299027	  0.99893953	  0.99944015  0.49325858
++8914	 -6.27333754	 -0.00034714	  0.00021265	  7.27299040	  0.99893965	  0.99944021  0.49325856
++8915	 -6.27333763	 -0.00034710	  0.00021263	  7.27299053	  0.99893977	  0.99944028  0.49325873
++8916	 -6.27333772	 -0.00034706	  0.00021260	  7.27299067	  0.99893989	  0.99944034  0.49325877
++8917	 -6.27333782	 -0.00034702	  0.00021258	  7.27299080	  0.99894001	  0.99944040  0.49325864
++8918	 -6.27333791	 -0.00034698	  0.00021255	  7.27299093	  0.99894013	  0.99944046  0.49325857
++8919	 -6.27333800	 -0.00034694	  0.00021253	  7.27299106	  0.99894025	  0.99944053  0.49325852
++8920	 -6.27333810	 -0.00034690	  0.00021251	  7.27299119	  0.99894036	  0.99944059  0.49325872
++8921	 -6.27333819	 -0.00034686	  0.00021248	  7.27299133	  0.99894048	  0.99944065  0.49325865
++8922	 -6.27333828	 -0.00034683	  0.00021246	  7.27299146	  0.99894060	  0.99944072  0.49325884
++8923	 -6.27333838	 -0.00034679	  0.00021244	  7.27299159	  0.99894072	  0.99944078  0.49325864
++8924	 -6.27333847	 -0.00034675	  0.00021241	  7.27299172	  0.99894084	  0.99944084  0.49325865
++8925	 -6.27333856	 -0.00034671	  0.00021239	  7.27299185	  0.99894096	  0.99944090  0.49325871
++8926	 -6.27333866	 -0.00034667	  0.00021236	  7.27299199	  0.99894108	  0.99944097  0.49325862
++8927	 -6.27333875	 -0.00034663	  0.00021234	  7.27299212	  0.99894120	  0.99944103  0.49325892
++8928	 -6.27333884	 -0.00034659	  0.00021232	  7.27299225	  0.99894131	  0.99944109  0.49325886
++8929	 -6.27333893	 -0.00034655	  0.00021229	  7.27299238	  0.99894143	  0.99944115  0.49325892
++8930	 -6.27333903	 -0.00034652	  0.00021227	  7.27299251	  0.99894155	  0.99944122  0.49325878
++8931	 -6.27333912	 -0.00034648	  0.00021225	  7.27299264	  0.99894167	  0.99944128  0.49325893
++8932	 -6.27333921	 -0.00034644	  0.00021222	  7.27299278	  0.99894179	  0.99944134  0.49325882
++8933	 -6.27333931	 -0.00034640	  0.00021220	  7.27299291	  0.99894191	  0.99944140  0.49325880
++8934	 -6.27333940	 -0.00034636	  0.00021217	  7.27299304	  0.99894202	  0.99944147  0.49325884
++8935	 -6.27333949	 -0.00034632	  0.00021215	  7.27299317	  0.99894214	  0.99944153  0.49325871
++8936	 -6.27333958	 -0.00034628	  0.00021213	  7.27299330	  0.99894226	  0.99944159  0.49325888
++8937	 -6.27333968	 -0.00034624	  0.00021210	  7.27299343	  0.99894238	  0.99944165  0.49325907
++8938	 -6.27333977	 -0.00034620	  0.00021208	  7.27299356	  0.99894250	  0.99944172  0.49325884
++8939	 -6.27333986	 -0.00034617	  0.00021206	  7.27299370	  0.99894262	  0.99944178  0.49325906
++8940	 -6.27333995	 -0.00034613	  0.00021203	  7.27299383	  0.99894273	  0.99944184  0.49325903
++8941	 -6.27334005	 -0.00034609	  0.00021201	  7.27299396	  0.99894285	  0.99944190  0.49325895
++8942	 -6.27334014	 -0.00034605	  0.00021198	  7.27299409	  0.99894297	  0.99944197  0.49325883
++8943	 -6.27334023	 -0.00034601	  0.00021196	  7.27299422	  0.99894309	  0.99944203  0.49325893
++8944	 -6.27334033	 -0.00034597	  0.00021194	  7.27299435	  0.99894321	  0.99944209  0.49325903
++8945	 -6.27334042	 -0.00034593	  0.00021191	  7.27299448	  0.99894333	  0.99944215  0.49325919
++8946	 -6.27334051	 -0.00034590	  0.00021189	  7.27299461	  0.99894344	  0.99944222  0.49325911
++8947	 -6.27334060	 -0.00034586	  0.00021187	  7.27299475	  0.99894356	  0.99944228  0.49325916
++8948	 -6.27334070	 -0.00034582	  0.00021184	  7.27299488	  0.99894368	  0.99944234  0.49325910
++8949	 -6.27334079	 -0.00034578	  0.00021182	  7.27299501	  0.99894380	  0.99944240  0.49325905
++8950	 -6.27334088	 -0.00034574	  0.00021179	  7.27299514	  0.99894392	  0.99944246  0.49325907
++8951	 -6.27334097	 -0.00034570	  0.00021177	  7.27299527	  0.99894403	  0.99944253  0.49325918
++8952	 -6.27334107	 -0.00034566	  0.00021175	  7.27299540	  0.99894415	  0.99944259  0.49325910
++8953	 -6.27334116	 -0.00034563	  0.00021172	  7.27299553	  0.99894427	  0.99944265  0.49325909
++8954	 -6.27334125	 -0.00034559	  0.00021170	  7.27299566	  0.99894439	  0.99944271  0.49325903
++8955	 -6.27334134	 -0.00034555	  0.00021168	  7.27299579	  0.99894451	  0.99944278  0.49325934
++8956	 -6.27334143	 -0.00034551	  0.00021165	  7.27299593	  0.99894462	  0.99944284  0.49325921
++8957	 -6.27334153	 -0.00034547	  0.00021163	  7.27299606	  0.99894474	  0.99944290  0.49325916
++8958	 -6.27334162	 -0.00034543	  0.00021161	  7.27299619	  0.99894486	  0.99944296  0.49325905
++8959	 -6.27334171	 -0.00034539	  0.00021158	  7.27299632	  0.99894498	  0.99944302  0.49325932
++8960	 -6.27334180	 -0.00034536	  0.00021156	  7.27299645	  0.99894509	  0.99944309  0.49325918
++8961	 -6.27334190	 -0.00034532	  0.00021153	  7.27299658	  0.99894521	  0.99944315  0.49325928
++8962	 -6.27334199	 -0.00034528	  0.00021151	  7.27299671	  0.99894533	  0.99944321  0.49325927
++8963	 -6.27334208	 -0.00034524	  0.00021149	  7.27299684	  0.99894545	  0.99944327  0.49325910
++8964	 -6.27334217	 -0.00034520	  0.00021146	  7.27299697	  0.99894557	  0.99944334  0.49325933
++8965	 -6.27334226	 -0.00034516	  0.00021144	  7.27299710	  0.99894568	  0.99944340  0.49325931
++8966	 -6.27334236	 -0.00034512	  0.00021142	  7.27299723	  0.99894580	  0.99944346  0.49325913
++8967	 -6.27334245	 -0.00034509	  0.00021139	  7.27299736	  0.99894592	  0.99944352  0.49325935
++8968	 -6.27334254	 -0.00034505	  0.00021137	  7.27299749	  0.99894604	  0.99944358  0.49325926
++8969	 -6.27334263	 -0.00034501	  0.00021135	  7.27299762	  0.99894615	  0.99944365  0.49325931
++8970	 -6.27334273	 -0.00034497	  0.00021132	  7.27299776	  0.99894627	  0.99944371  0.49325923
++8971	 -6.27334282	 -0.00034493	  0.00021130	  7.27299789	  0.99894639	  0.99944377  0.49325932
++8972	 -6.27334291	 -0.00034489	  0.00021128	  7.27299802	  0.99894651	  0.99944383  0.49325937
++8973	 -6.27334300	 -0.00034486	  0.00021125	  7.27299815	  0.99894662	  0.99944389  0.49325925
++8974	 -6.27334309	 -0.00034482	  0.00021123	  7.27299828	  0.99894674	  0.99944396  0.49325938
++8975	 -6.27334319	 -0.00034478	  0.00021120	  7.27299841	  0.99894686	  0.99944402  0.49325937
++8976	 -6.27334328	 -0.00034474	  0.00021118	  7.27299854	  0.99894697	  0.99944408  0.49325933
++8977	 -6.27334337	 -0.00034470	  0.00021116	  7.27299867	  0.99894709	  0.99944414  0.49325964
++8978	 -6.27334346	 -0.00034466	  0.00021113	  7.27299880	  0.99894721	  0.99944420  0.49325932
++8979	 -6.27334355	 -0.00034462	  0.00021111	  7.27299893	  0.99894733	  0.99944426  0.49325939
++8980	 -6.27334364	 -0.00034459	  0.00021109	  7.27299906	  0.99894744	  0.99944433  0.49325953
++8981	 -6.27334374	 -0.00034455	  0.00021106	  7.27299919	  0.99894756	  0.99944439  0.49325955
++8982	 -6.27334383	 -0.00034451	  0.00021104	  7.27299932	  0.99894768	  0.99944445  0.49325952
++8983	 -6.27334392	 -0.00034447	  0.00021102	  7.27299945	  0.99894780	  0.99944451  0.49325957
++8984	 -6.27334401	 -0.00034443	  0.00021099	  7.27299958	  0.99894791	  0.99944457  0.49325952
++8985	 -6.27334410	 -0.00034439	  0.00021097	  7.27299971	  0.99894803	  0.99944464  0.49325948
++8986	 -6.27334420	 -0.00034436	  0.00021095	  7.27299984	  0.99894815	  0.99944470  0.49325953
++8987	 -6.27334429	 -0.00034432	  0.00021092	  7.27299997	  0.99894826	  0.99944476  0.49325969
++8988	 -6.27334438	 -0.00034428	  0.00021090	  7.27300010	  0.99894838	  0.99944482  0.49325951
++8989	 -6.27334447	 -0.00034424	  0.00021088	  7.27300023	  0.99894850	  0.99944488  0.49325964
++8990	 -6.27334456	 -0.00034420	  0.00021085	  7.27300036	  0.99894861	  0.99944494  0.49325959
++8991	 -6.27334465	 -0.00034417	  0.00021083	  7.27300049	  0.99894873	  0.99944501  0.49325984
++8992	 -6.27334475	 -0.00034413	  0.00021081	  7.27300062	  0.99894885	  0.99944507  0.49325961
++8993	 -6.27334484	 -0.00034409	  0.00021078	  7.27300075	  0.99894897	  0.99944513  0.49325970
++8994	 -6.27334493	 -0.00034405	  0.00021076	  7.27300088	  0.99894908	  0.99944519  0.49325973
++8995	 -6.27334502	 -0.00034401	  0.00021073	  7.27300101	  0.99894920	  0.99944525  0.49325965
++8996	 -6.27334511	 -0.00034397	  0.00021071	  7.27300114	  0.99894932	  0.99944531  0.49325961
++8997	 -6.27334520	 -0.00034394	  0.00021069	  7.27300127	  0.99894943	  0.99944538  0.49325970
++8998	 -6.27334529	 -0.00034390	  0.00021066	  7.27300140	  0.99894955	  0.99944544  0.49325947
++8999	 -6.27334539	 -0.00034386	  0.00021064	  7.27300153	  0.99894967	  0.99944550  0.49325970
++9000	 -6.27334548	 -0.00034382	  0.00021062	  7.27300166	  0.99894978	  0.99944556  0.49325986
++9001	 -6.27334557	 -0.00034378	  0.00021059	  7.27300179	  0.99894990	  0.99944562  0.49325975
++9002	 -6.27334566	 -0.00034374	  0.00021057	  7.27300192	  0.99895002	  0.99944568  0.49325973
++9003	 -6.27334575	 -0.00034371	  0.00021055	  7.27300205	  0.99895013	  0.99944575  0.49325990
++9004	 -6.27334584	 -0.00034367	  0.00021052	  7.27300217	  0.99895025	  0.99944581  0.49325987
++9005	 -6.27334593	 -0.00034363	  0.00021050	  7.27300230	  0.99895037	  0.99944587  0.49325975
++9006	 -6.27334603	 -0.00034359	  0.00021048	  7.27300243	  0.99895048	  0.99944593  0.49325986
++9007	 -6.27334612	 -0.00034355	  0.00021045	  7.27300256	  0.99895060	  0.99944599  0.49325980
++9008	 -6.27334621	 -0.00034352	  0.00021043	  7.27300269	  0.99895072	  0.99944605  0.49325999
++9009	 -6.27334630	 -0.00034348	  0.00021041	  7.27300282	  0.99895083	  0.99944611  0.49326005
++9010	 -6.27334639	 -0.00034344	  0.00021038	  7.27300295	  0.99895095	  0.99944618  0.49325989
++9011	 -6.27334648	 -0.00034340	  0.00021036	  7.27300308	  0.99895106	  0.99944624  0.49325982
++9012	 -6.27334657	 -0.00034336	  0.00021034	  7.27300321	  0.99895118	  0.99944630  0.49326004
++9013	 -6.27334666	 -0.00034333	  0.00021031	  7.27300334	  0.99895130	  0.99944636  0.49325987
++9014	 -6.27334676	 -0.00034329	  0.00021029	  7.27300347	  0.99895141	  0.99944642  0.49326003
++9015	 -6.27334685	 -0.00034325	  0.00021027	  7.27300360	  0.99895153	  0.99944648  0.49325986
++9016	 -6.27334694	 -0.00034321	  0.00021024	  7.27300373	  0.99895165	  0.99944654  0.49326013
++9017	 -6.27334703	 -0.00034317	  0.00021022	  7.27300386	  0.99895176	  0.99944661  0.49326001
++9018	 -6.27334712	 -0.00034313	  0.00021020	  7.27300399	  0.99895188	  0.99944667  0.49325997
++9019	 -6.27334721	 -0.00034310	  0.00021017	  7.27300411	  0.99895199	  0.99944673  0.49325982
++9020	 -6.27334730	 -0.00034306	  0.00021015	  7.27300424	  0.99895211	  0.99944679  0.49326004
++9021	 -6.27334739	 -0.00034302	  0.00021013	  7.27300437	  0.99895223	  0.99944685  0.49326000
++9022	 -6.27334748	 -0.00034298	  0.00021010	  7.27300450	  0.99895234	  0.99944691  0.49326002
++9023	 -6.27334758	 -0.00034294	  0.00021008	  7.27300463	  0.99895246	  0.99944697  0.49326019
++9024	 -6.27334767	 -0.00034291	  0.00021006	  7.27300476	  0.99895258	  0.99944704  0.49326022
++9025	 -6.27334776	 -0.00034287	  0.00021003	  7.27300489	  0.99895269	  0.99944710  0.49325991
++9026	 -6.27334785	 -0.00034283	  0.00021001	  7.27300502	  0.99895281	  0.99944716  0.49326017
++9027	 -6.27334794	 -0.00034279	  0.00020999	  7.27300515	  0.99895292	  0.99944722  0.49326012
++9028	 -6.27334803	 -0.00034276	  0.00020996	  7.27300527	  0.99895304	  0.99944728  0.49326022
++9029	 -6.27334812	 -0.00034272	  0.00020994	  7.27300540	  0.99895316	  0.99944734  0.49326001
++9030	 -6.27334821	 -0.00034268	  0.00020992	  7.27300553	  0.99895327	  0.99944740  0.49326024
++9031	 -6.27334830	 -0.00034264	  0.00020989	  7.27300566	  0.99895339	  0.99944746  0.49326021
++9032	 -6.27334839	 -0.00034260	  0.00020987	  7.27300579	  0.99895350	  0.99944753  0.49326029
++9033	 -6.27334848	 -0.00034257	  0.00020985	  7.27300592	  0.99895362	  0.99944759  0.49326016
++9034	 -6.27334857	 -0.00034253	  0.00020983	  7.27300605	  0.99895373	  0.99944765  0.49326016
++9035	 -6.27334867	 -0.00034249	  0.00020980	  7.27300618	  0.99895385	  0.99944771  0.49326045
++9036	 -6.27334876	 -0.00034245	  0.00020978	  7.27300630	  0.99895397	  0.99944777  0.49326011
++9037	 -6.27334885	 -0.00034241	  0.00020976	  7.27300643	  0.99895408	  0.99944783  0.49326023
++9038	 -6.27334894	 -0.00034238	  0.00020973	  7.27300656	  0.99895420	  0.99944789  0.49326007
++9039	 -6.27334903	 -0.00034234	  0.00020971	  7.27300669	  0.99895431	  0.99944795  0.49326021
++9040	 -6.27334912	 -0.00034230	  0.00020969	  7.27300682	  0.99895443	  0.99944801  0.49326027
++9041	 -6.27334921	 -0.00034226	  0.00020966	  7.27300695	  0.99895454	  0.99944807  0.49326040
++9042	 -6.27334930	 -0.00034222	  0.00020964	  7.27300708	  0.99895466	  0.99944814  0.49326032
++9043	 -6.27334939	 -0.00034219	  0.00020962	  7.27300720	  0.99895478	  0.99944820  0.49326028
++9044	 -6.27334948	 -0.00034215	  0.00020959	  7.27300733	  0.99895489	  0.99944826  0.49326022
++9045	 -6.27334957	 -0.00034211	  0.00020957	  7.27300746	  0.99895501	  0.99944832  0.49326044
++9046	 -6.27334966	 -0.00034207	  0.00020955	  7.27300759	  0.99895512	  0.99944838  0.49326036
++9047	 -6.27334975	 -0.00034204	  0.00020952	  7.27300772	  0.99895524	  0.99944844  0.49326052
++9048	 -6.27334984	 -0.00034200	  0.00020950	  7.27300785	  0.99895535	  0.99944850  0.49326050
++9049	 -6.27334993	 -0.00034196	  0.00020948	  7.27300797	  0.99895547	  0.99944856  0.49326047
++9050	 -6.27335002	 -0.00034192	  0.00020945	  7.27300810	  0.99895558	  0.99944862  0.49326049
++9051	 -6.27335011	 -0.00034188	  0.00020943	  7.27300823	  0.99895570	  0.99944868  0.49326038
++9052	 -6.27335021	 -0.00034185	  0.00020941	  7.27300836	  0.99895582	  0.99944875  0.49326054
++9053	 -6.27335030	 -0.00034181	  0.00020938	  7.27300849	  0.99895593	  0.99944881  0.49326041
++9054	 -6.27335039	 -0.00034177	  0.00020936	  7.27300861	  0.99895605	  0.99944887  0.49326059
++9055	 -6.27335048	 -0.00034173	  0.00020934	  7.27300874	  0.99895616	  0.99944893  0.49326058
++9056	 -6.27335057	 -0.00034170	  0.00020932	  7.27300887	  0.99895628	  0.99944899  0.49326043
++9057	 -6.27335066	 -0.00034166	  0.00020929	  7.27300900	  0.99895639	  0.99944905  0.49326062
++9058	 -6.27335075	 -0.00034162	  0.00020927	  7.27300913	  0.99895651	  0.99944911  0.49326067
++9059	 -6.27335084	 -0.00034158	  0.00020925	  7.27300925	  0.99895662	  0.99944917  0.49326078
++9060	 -6.27335093	 -0.00034154	  0.00020922	  7.27300938	  0.99895674	  0.99944923  0.49326065
++9061	 -6.27335102	 -0.00034151	  0.00020920	  7.27300951	  0.99895685	  0.99944929  0.49326059
++9062	 -6.27335111	 -0.00034147	  0.00020918	  7.27300964	  0.99895697	  0.99944935  0.49326055
++9063	 -6.27335120	 -0.00034143	  0.00020915	  7.27300977	  0.99895708	  0.99944941  0.49326066
++9064	 -6.27335129	 -0.00034139	  0.00020913	  7.27300989	  0.99895720	  0.99944948  0.49326077
++9065	 -6.27335138	 -0.00034136	  0.00020911	  7.27301002	  0.99895731	  0.99944954  0.49326066
++9066	 -6.27335147	 -0.00034132	  0.00020908	  7.27301015	  0.99895743	  0.99944960  0.49326075
++9067	 -6.27335156	 -0.00034128	  0.00020906	  7.27301028	  0.99895754	  0.99944966  0.49326055
++9068	 -6.27335165	 -0.00034124	  0.00020904	  7.27301040	  0.99895766	  0.99944972  0.49326086
++9069	 -6.27335174	 -0.00034121	  0.00020902	  7.27301053	  0.99895777	  0.99944978  0.49326055
++9070	 -6.27335183	 -0.00034117	  0.00020899	  7.27301066	  0.99895789	  0.99944984  0.49326069
++9071	 -6.27335192	 -0.00034113	  0.00020897	  7.27301079	  0.99895800	  0.99944990  0.49326076
++9072	 -6.27335201	 -0.00034109	  0.00020895	  7.27301092	  0.99895812	  0.99944996  0.49326064
++9073	 -6.27335210	 -0.00034106	  0.00020892	  7.27301104	  0.99895823	  0.99945002  0.49326064
++9074	 -6.27335219	 -0.00034102	  0.00020890	  7.27301117	  0.99895835	  0.99945008  0.49326079
++9075	 -6.27335228	 -0.00034098	  0.00020888	  7.27301130	  0.99895846	  0.99945014  0.49326094
++9076	 -6.27335237	 -0.00034094	  0.00020885	  7.27301143	  0.99895858	  0.99945020  0.49326073
++9077	 -6.27335246	 -0.00034091	  0.00020883	  7.27301155	  0.99895869	  0.99945026  0.49326067
++9078	 -6.27335255	 -0.00034087	  0.00020881	  7.27301168	  0.99895881	  0.99945032  0.49326096
++9079	 -6.27335264	 -0.00034083	  0.00020878	  7.27301181	  0.99895892	  0.99945038  0.49326074
++9080	 -6.27335273	 -0.00034079	  0.00020876	  7.27301194	  0.99895903	  0.99945045  0.49326072
++9081	 -6.27335282	 -0.00034076	  0.00020874	  7.27301206	  0.99895915	  0.99945051  0.49326097
++9082	 -6.27335291	 -0.00034072	  0.00020872	  7.27301219	  0.99895926	  0.99945057  0.49326095
++9083	 -6.27335300	 -0.00034068	  0.00020869	  7.27301232	  0.99895938	  0.99945063  0.49326083
++9084	 -6.27335309	 -0.00034064	  0.00020867	  7.27301244	  0.99895949	  0.99945069  0.49326094
++9085	 -6.27335318	 -0.00034061	  0.00020865	  7.27301257	  0.99895961	  0.99945075  0.49326071
++9086	 -6.27335327	 -0.00034057	  0.00020862	  7.27301270	  0.99895972	  0.99945081  0.49326094
++9087	 -6.27335336	 -0.00034053	  0.00020860	  7.27301283	  0.99895984	  0.99945087  0.49326119
++9088	 -6.27335345	 -0.00034049	  0.00020858	  7.27301295	  0.99895995	  0.99945093  0.49326102
++9089	 -6.27335354	 -0.00034046	  0.00020856	  7.27301308	  0.99896007	  0.99945099  0.49326095
++9090	 -6.27335363	 -0.00034042	  0.00020853	  7.27301321	  0.99896018	  0.99945105  0.49326111
++9091	 -6.27335372	 -0.00034038	  0.00020851	  7.27301333	  0.99896029	  0.99945111  0.49326093
++9092	 -6.27335380	 -0.00034034	  0.00020849	  7.27301346	  0.99896041	  0.99945117  0.49326092
++9093	 -6.27335389	 -0.00034031	  0.00020846	  7.27301359	  0.99896052	  0.99945123  0.49326086
++9094	 -6.27335398	 -0.00034027	  0.00020844	  7.27301372	  0.99896064	  0.99945129  0.49326111
++9095	 -6.27335407	 -0.00034023	  0.00020842	  7.27301384	  0.99896075	  0.99945135  0.49326085
++9096	 -6.27335416	 -0.00034019	  0.00020839	  7.27301397	  0.99896087	  0.99945141  0.49326107
++9097	 -6.27335425	 -0.00034016	  0.00020837	  7.27301410	  0.99896098	  0.99945147  0.49326138
++9098	 -6.27335434	 -0.00034012	  0.00020835	  7.27301422	  0.99896109	  0.99945153  0.49326107
++9099	 -6.27335443	 -0.00034008	  0.00020833	  7.27301435	  0.99896121	  0.99945159  0.49326110
++9100	 -6.27335452	 -0.00034004	  0.00020830	  7.27301448	  0.99896132	  0.99945165  0.49326107
++9101	 -6.27335461	 -0.00034001	  0.00020828	  7.27301460	  0.99896144	  0.99945171  0.49326111
++9102	 -6.27335470	 -0.00033997	  0.00020826	  7.27301473	  0.99896155	  0.99945177  0.49326094
++9103	 -6.27335479	 -0.00033993	  0.00020823	  7.27301486	  0.99896166	  0.99945183  0.49326116
++9104	 -6.27335488	 -0.00033989	  0.00020821	  7.27301498	  0.99896178	  0.99945189  0.49326119
++9105	 -6.27335497	 -0.00033986	  0.00020819	  7.27301511	  0.99896189	  0.99945195  0.49326130
++9106	 -6.27335506	 -0.00033982	  0.00020817	  7.27301524	  0.99896201	  0.99945201  0.49326119
++9107	 -6.27335515	 -0.00033978	  0.00020814	  7.27301536	  0.99896212	  0.99945207  0.49326105
++9108	 -6.27335524	 -0.00033975	  0.00020812	  7.27301549	  0.99896223	  0.99945213  0.49326119
++9109	 -6.27335533	 -0.00033971	  0.00020810	  7.27301562	  0.99896235	  0.99945219  0.49326118
++9110	 -6.27335541	 -0.00033967	  0.00020807	  7.27301574	  0.99896246	  0.99945225  0.49326126
++9111	 -6.27335550	 -0.00033963	  0.00020805	  7.27301587	  0.99896258	  0.99945231  0.49326104
++9112	 -6.27335559	 -0.00033960	  0.00020803	  7.27301600	  0.99896269	  0.99945237  0.49326124
++9113	 -6.27335568	 -0.00033956	  0.00020801	  7.27301612	  0.99896280	  0.99945243  0.49326121
++9114	 -6.27335577	 -0.00033952	  0.00020798	  7.27301625	  0.99896292	  0.99945249  0.49326126
++9115	 -6.27335586	 -0.00033948	  0.00020796	  7.27301638	  0.99896303	  0.99945255  0.49326146
++9116	 -6.27335595	 -0.00033945	  0.00020794	  7.27301650	  0.99896315	  0.99945261  0.49326123
++9117	 -6.27335604	 -0.00033941	  0.00020791	  7.27301663	  0.99896326	  0.99945267  0.49326137
++9118	 -6.27335613	 -0.00033937	  0.00020789	  7.27301675	  0.99896337	  0.99945274  0.49326124
++9119	 -6.27335622	 -0.00033934	  0.00020787	  7.27301688	  0.99896349	  0.99945279  0.49326144
++9120	 -6.27335631	 -0.00033930	  0.00020785	  7.27301701	  0.99896360	  0.99945286  0.49326118
++9121	 -6.27335639	 -0.00033926	  0.00020782	  7.27301713	  0.99896371	  0.99945291  0.49326131
++9122	 -6.27335648	 -0.00033922	  0.00020780	  7.27301726	  0.99896383	  0.99945297  0.49326131
++9123	 -6.27335657	 -0.00033919	  0.00020778	  7.27301739	  0.99896394	  0.99945303  0.49326137
++9124	 -6.27335666	 -0.00033915	  0.00020776	  7.27301751	  0.99896405	  0.99945309  0.49326160
++9125	 -6.27335675	 -0.00033911	  0.00020773	  7.27301764	  0.99896417	  0.99945315  0.49326160
++9126	 -6.27335684	 -0.00033908	  0.00020771	  7.27301776	  0.99896428	  0.99945321  0.49326123
++9127	 -6.27335693	 -0.00033904	  0.00020769	  7.27301789	  0.99896439	  0.99945327  0.49326161
++9128	 -6.27335702	 -0.00033900	  0.00020766	  7.27301802	  0.99896451	  0.99945333  0.49326152
++9129	 -6.27335711	 -0.00033896	  0.00020764	  7.27301814	  0.99896462	  0.99945339  0.49326143
++9130	 -6.27335720	 -0.00033893	  0.00020762	  7.27301827	  0.99896473	  0.99945345  0.49326145
++9131	 -6.27335728	 -0.00033889	  0.00020760	  7.27301839	  0.99896485	  0.99945351  0.49326173
++9132	 -6.27335737	 -0.00033885	  0.00020757	  7.27301852	  0.99896496	  0.99945357  0.49326144
++9133	 -6.27335746	 -0.00033882	  0.00020755	  7.27301865	  0.99896507	  0.99945363  0.49326151
++9134	 -6.27335755	 -0.00033878	  0.00020753	  7.27301877	  0.99896519	  0.99945369  0.49326137
++9135	 -6.27335764	 -0.00033874	  0.00020751	  7.27301890	  0.99896530	  0.99945375  0.49326159
++9136	 -6.27335773	 -0.00033870	  0.00020748	  7.27301902	  0.99896541	  0.99945381  0.49326170
++9137	 -6.27335782	 -0.00033867	  0.00020746	  7.27301915	  0.99896553	  0.99945387  0.49326167
++9138	 -6.27335791	 -0.00033863	  0.00020744	  7.27301927	  0.99896564	  0.99945393  0.49326166
++9139	 -6.27335799	 -0.00033859	  0.00020741	  7.27301940	  0.99896575	  0.99945399  0.49326169
++9140	 -6.27335808	 -0.00033856	  0.00020739	  7.27301953	  0.99896587	  0.99945405  0.49326162
++9141	 -6.27335817	 -0.00033852	  0.00020737	  7.27301965	  0.99896598	  0.99945411  0.49326183
++9142	 -6.27335826	 -0.00033848	  0.00020735	  7.27301978	  0.99896609	  0.99945417  0.49326173
++9143	 -6.27335835	 -0.00033845	  0.00020732	  7.27301990	  0.99896621	  0.99945423  0.49326171
++9144	 -6.27335844	 -0.00033841	  0.00020730	  7.27302003	  0.99896632	  0.99945429  0.49326166
++9145	 -6.27335853	 -0.00033837	  0.00020728	  7.27302015	  0.99896643	  0.99945435  0.49326165
++9146	 -6.27335861	 -0.00033833	  0.00020726	  7.27302028	  0.99896655	  0.99945441  0.49326181
++9147	 -6.27335870	 -0.00033830	  0.00020723	  7.27302041	  0.99896666	  0.99945447  0.49326156
++9148	 -6.27335879	 -0.00033826	  0.00020721	  7.27302053	  0.99896677	  0.99945453  0.49326193
++9149	 -6.27335888	 -0.00033822	  0.00020719	  7.27302066	  0.99896688	  0.99945459  0.49326181
++9150	 -6.27335897	 -0.00033819	  0.00020716	  7.27302078	  0.99896700	  0.99945465  0.49326163
++9151	 -6.27335906	 -0.00033815	  0.00020714	  7.27302091	  0.99896711	  0.99945471  0.49326173
++9152	 -6.27335915	 -0.00033811	  0.00020712	  7.27302103	  0.99896722	  0.99945477  0.49326188
++9153	 -6.27335923	 -0.00033808	  0.00020710	  7.27302116	  0.99896734	  0.99945483  0.49326193
++9154	 -6.27335932	 -0.00033804	  0.00020707	  7.27302128	  0.99896745	  0.99945489  0.49326203
++9155	 -6.27335941	 -0.00033800	  0.00020705	  7.27302141	  0.99896756	  0.99945495  0.49326181
++9156	 -6.27335950	 -0.00033797	  0.00020703	  7.27302153	  0.99896767	  0.99945501  0.49326178
++9157	 -6.27335959	 -0.00033793	  0.00020701	  7.27302166	  0.99896779	  0.99945507  0.49326183
++9158	 -6.27335968	 -0.00033789	  0.00020698	  7.27302178	  0.99896790	  0.99945512  0.49326183
++9159	 -6.27335976	 -0.00033785	  0.00020696	  7.27302191	  0.99896801	  0.99945518  0.49326190
++9160	 -6.27335985	 -0.00033782	  0.00020694	  7.27302203	  0.99896813	  0.99945524  0.49326204
++9161	 -6.27335994	 -0.00033778	  0.00020692	  7.27302216	  0.99896824	  0.99945530  0.49326197
++9162	 -6.27336003	 -0.00033774	  0.00020689	  7.27302228	  0.99896835	  0.99945536  0.49326200
++9163	 -6.27336012	 -0.00033771	  0.00020687	  7.27302241	  0.99896846	  0.99945542  0.49326187
++9164	 -6.27336021	 -0.00033767	  0.00020685	  7.27302253	  0.99896858	  0.99945548  0.49326214
++9165	 -6.27336029	 -0.00033763	  0.00020683	  7.27302266	  0.99896869	  0.99945554  0.49326210
++9166	 -6.27336038	 -0.00033760	  0.00020680	  7.27302278	  0.99896880	  0.99945560  0.49326210
++9167	 -6.27336047	 -0.00033756	  0.00020678	  7.27302291	  0.99896891	  0.99945566  0.49326201
++9168	 -6.27336056	 -0.00033752	  0.00020676	  7.27302303	  0.99896903	  0.99945572  0.49326223
++9169	 -6.27336065	 -0.00033749	  0.00020674	  7.27302316	  0.99896914	  0.99945578  0.49326214
++9170	 -6.27336073	 -0.00033745	  0.00020671	  7.27302328	  0.99896925	  0.99945584  0.49326184
++9171	 -6.27336082	 -0.00033741	  0.00020669	  7.27302341	  0.99896936	  0.99945590  0.49326190
++9172	 -6.27336091	 -0.00033738	  0.00020667	  7.27302353	  0.99896948	  0.99945596  0.49326192
++9173	 -6.27336100	 -0.00033734	  0.00020665	  7.27302366	  0.99896959	  0.99945602  0.49326215
++9174	 -6.27336109	 -0.00033730	  0.00020662	  7.27302378	  0.99896970	  0.99945607  0.49326198
++9175	 -6.27336117	 -0.00033727	  0.00020660	  7.27302391	  0.99896981	  0.99945613  0.49326211
++9176	 -6.27336126	 -0.00033723	  0.00020658	  7.27302403	  0.99896992	  0.99945619  0.49326202
++9177	 -6.27336135	 -0.00033719	  0.00020656	  7.27302416	  0.99897004	  0.99945625  0.49326208
++9178	 -6.27336144	 -0.00033716	  0.00020653	  7.27302428	  0.99897015	  0.99945631  0.49326216
++9179	 -6.27336153	 -0.00033712	  0.00020651	  7.27302441	  0.99897026	  0.99945637  0.49326199
++9180	 -6.27336161	 -0.00033708	  0.00020649	  7.27302453	  0.99897037	  0.99945643  0.49326218
++9181	 -6.27336170	 -0.00033705	  0.00020647	  7.27302466	  0.99897049	  0.99945649  0.49326214
++9182	 -6.27336179	 -0.00033701	  0.00020644	  7.27302478	  0.99897060	  0.99945655  0.49326240
++9183	 -6.27336188	 -0.00033697	  0.00020642	  7.27302491	  0.99897071	  0.99945661  0.49326199
++9184	 -6.27336197	 -0.00033694	  0.00020640	  7.27302503	  0.99897082	  0.99945667  0.49326203
++9185	 -6.27336205	 -0.00033690	  0.00020638	  7.27302515	  0.99897093	  0.99945673  0.49326224
++9186	 -6.27336214	 -0.00033686	  0.00020635	  7.27302528	  0.99897105	  0.99945679  0.49326220
++9187	 -6.27336223	 -0.00033683	  0.00020633	  7.27302540	  0.99897116	  0.99945684  0.49326222
++9188	 -6.27336232	 -0.00033679	  0.00020631	  7.27302553	  0.99897127	  0.99945690  0.49326242
++9189	 -6.27336240	 -0.00033675	  0.00020629	  7.27302565	  0.99897138	  0.99945696  0.49326213
++9190	 -6.27336249	 -0.00033672	  0.00020626	  7.27302578	  0.99897149	  0.99945702  0.49326219
++9191	 -6.27336258	 -0.00033668	  0.00020624	  7.27302590	  0.99897161	  0.99945708  0.49326219
++9192	 -6.27336267	 -0.00033664	  0.00020622	  7.27302603	  0.99897172	  0.99945714  0.49326250
++9193	 -6.27336275	 -0.00033661	  0.00020620	  7.27302615	  0.99897183	  0.99945720  0.49326244
++9194	 -6.27336284	 -0.00033657	  0.00020617	  7.27302627	  0.99897194	  0.99945726  0.49326221
++9195	 -6.27336293	 -0.00033653	  0.00020615	  7.27302640	  0.99897205	  0.99945732  0.49326264
++9196	 -6.27336302	 -0.00033650	  0.00020613	  7.27302652	  0.99897216	  0.99945738  0.49326232
++9197	 -6.27336311	 -0.00033646	  0.00020611	  7.27302665	  0.99897228	  0.99945743  0.49326230
++9198	 -6.27336319	 -0.00033642	  0.00020608	  7.27302677	  0.99897239	  0.99945749  0.49326227
++9199	 -6.27336328	 -0.00033639	  0.00020606	  7.27302689	  0.99897250	  0.99945755  0.49326245
++9200	 -6.27336337	 -0.00033635	  0.00020604	  7.27302702	  0.99897261	  0.99945761  0.49326242
++9201	 -6.27336346	 -0.00033631	  0.00020602	  7.27302714	  0.99897272	  0.99945767  0.49326246
++9202	 -6.27336354	 -0.00033628	  0.00020599	  7.27302727	  0.99897283	  0.99945773  0.49326241
++9203	 -6.27336363	 -0.00033624	  0.00020597	  7.27302739	  0.99897295	  0.99945779  0.49326240
++9204	 -6.27336372	 -0.00033620	  0.00020595	  7.27302751	  0.99897306	  0.99945785  0.49326249
++9205	 -6.27336381	 -0.00033617	  0.00020593	  7.27302764	  0.99897317	  0.99945791  0.49326270
++9206	 -6.27336389	 -0.00033613	  0.00020590	  7.27302776	  0.99897328	  0.99945797  0.49326235
++9207	 -6.27336398	 -0.00033609	  0.00020588	  7.27302789	  0.99897339	  0.99945802  0.49326239
++9208	 -6.27336407	 -0.00033606	  0.00020586	  7.27302801	  0.99897350	  0.99945808  0.49326248
++9209	 -6.27336415	 -0.00033602	  0.00020584	  7.27302813	  0.99897362	  0.99945814  0.49326264
++9210	 -6.27336424	 -0.00033598	  0.00020582	  7.27302826	  0.99897373	  0.99945820  0.49326263
++9211	 -6.27336433	 -0.00033595	  0.00020579	  7.27302838	  0.99897384	  0.99945826  0.49326243
++9212	 -6.27336442	 -0.00033591	  0.00020577	  7.27302851	  0.99897395	  0.99945832  0.49326267
++9213	 -6.27336450	 -0.00033587	  0.00020575	  7.27302863	  0.99897406	  0.99945838  0.49326234
++9214	 -6.27336459	 -0.00033584	  0.00020573	  7.27302875	  0.99897417	  0.99945844  0.49326251
++9215	 -6.27336468	 -0.00033580	  0.00020570	  7.27302888	  0.99897428	  0.99945849  0.49326259
++9216	 -6.27336477	 -0.00033577	  0.00020568	  7.27302900	  0.99897439	  0.99945855  0.49326266
++9217	 -6.27336485	 -0.00033573	  0.00020566	  7.27302912	  0.99897451	  0.99945861  0.49326257
++9218	 -6.27336494	 -0.00033569	  0.00020564	  7.27302925	  0.99897462	  0.99945867  0.49326257
++9219	 -6.27336503	 -0.00033566	  0.00020561	  7.27302937	  0.99897473	  0.99945873  0.49326264
++9220	 -6.27336511	 -0.00033562	  0.00020559	  7.27302949	  0.99897484	  0.99945879  0.49326274
++9221	 -6.27336520	 -0.00033558	  0.00020557	  7.27302962	  0.99897495	  0.99945885  0.49326286
++9222	 -6.27336529	 -0.00033555	  0.00020555	  7.27302974	  0.99897506	  0.99945891  0.49326289
++9223	 -6.27336538	 -0.00033551	  0.00020553	  7.27302986	  0.99897517	  0.99945896  0.49326274
++9224	 -6.27336546	 -0.00033547	  0.00020550	  7.27302999	  0.99897528	  0.99945902  0.49326267
++9225	 -6.27336555	 -0.00033544	  0.00020548	  7.27303011	  0.99897540	  0.99945908  0.49326282
++9226	 -6.27336564	 -0.00033540	  0.00020546	  7.27303023	  0.99897551	  0.99945914  0.49326268
++9227	 -6.27336572	 -0.00033537	  0.00020544	  7.27303036	  0.99897562	  0.99945920  0.49326305
++9228	 -6.27336581	 -0.00033533	  0.00020541	  7.27303048	  0.99897573	  0.99945926  0.49326276
++9229	 -6.27336590	 -0.00033529	  0.00020539	  7.27303060	  0.99897584	  0.99945932  0.49326281
++9230	 -6.27336598	 -0.00033526	  0.00020537	  7.27303073	  0.99897595	  0.99945937  0.49326294
++9231	 -6.27336607	 -0.00033522	  0.00020535	  7.27303085	  0.99897606	  0.99945943  0.49326286
++9232	 -6.27336616	 -0.00033518	  0.00020532	  7.27303097	  0.99897617	  0.99945949  0.49326281
++9233	 -6.27336625	 -0.00033515	  0.00020530	  7.27303110	  0.99897628	  0.99945955  0.49326286
++9234	 -6.27336633	 -0.00033511	  0.00020528	  7.27303122	  0.99897639	  0.99945961  0.49326297
++9235	 -6.27336642	 -0.00033508	  0.00020526	  7.27303134	  0.99897650	  0.99945967  0.49326279
++9236	 -6.27336651	 -0.00033504	  0.00020524	  7.27303147	  0.99897662	  0.99945973  0.49326311
++9237	 -6.27336659	 -0.00033500	  0.00020521	  7.27303159	  0.99897673	  0.99945978  0.49326289
++9238	 -6.27336668	 -0.00033497	  0.00020519	  7.27303171	  0.99897684	  0.99945984  0.49326305
++9239	 -6.27336677	 -0.00033493	  0.00020517	  7.27303184	  0.99897695	  0.99945990  0.49326297
++9240	 -6.27336685	 -0.00033489	  0.00020515	  7.27303196	  0.99897706	  0.99945996  0.49326277
++9241	 -6.27336694	 -0.00033486	  0.00020512	  7.27303208	  0.99897717	  0.99946002  0.49326308
++9242	 -6.27336703	 -0.00033482	  0.00020510	  7.27303221	  0.99897728	  0.99946008  0.49326289
++9243	 -6.27336711	 -0.00033479	  0.00020508	  7.27303233	  0.99897739	  0.99946013  0.49326298
++9244	 -6.27336720	 -0.00033475	  0.00020506	  7.27303245	  0.99897750	  0.99946019  0.49326300
++9245	 -6.27336729	 -0.00033471	  0.00020504	  7.27303257	  0.99897761	  0.99946025  0.49326304
++9246	 -6.27336737	 -0.00033468	  0.00020501	  7.27303270	  0.99897772	  0.99946031  0.49326311
++9247	 -6.27336746	 -0.00033464	  0.00020499	  7.27303282	  0.99897783	  0.99946037  0.49326309
++9248	 -6.27336755	 -0.00033460	  0.00020497	  7.27303294	  0.99897794	  0.99946043  0.49326303
++9249	 -6.27336763	 -0.00033457	  0.00020495	  7.27303306	  0.99897805	  0.99946048  0.49326308
++9250	 -6.27336772	 -0.00033453	  0.00020493	  7.27303319	  0.99897816	  0.99946054  0.49326287
++9251	 -6.27336781	 -0.00033450	  0.00020490	  7.27303331	  0.99897827	  0.99946060  0.49326314
++9252	 -6.27336789	 -0.00033446	  0.00020488	  7.27303343	  0.99897839	  0.99946066  0.49326307
++9253	 -6.27336798	 -0.00033442	  0.00020486	  7.27303356	  0.99897850	  0.99946072  0.49326307
++9254	 -6.27336807	 -0.00033439	  0.00020484	  7.27303368	  0.99897861	  0.99946078  0.49326322
++9255	 -6.27336815	 -0.00033435	  0.00020481	  7.27303380	  0.99897872	  0.99946083  0.49326311
++9256	 -6.27336824	 -0.00033432	  0.00020479	  7.27303392	  0.99897883	  0.99946089  0.49326322
++9257	 -6.27336833	 -0.00033428	  0.00020477	  7.27303405	  0.99897894	  0.99946095  0.49326339
++9258	 -6.27336841	 -0.00033424	  0.00020475	  7.27303417	  0.99897905	  0.99946101  0.49326319
++9259	 -6.27336850	 -0.00033421	  0.00020473	  7.27303429	  0.99897916	  0.99946107  0.49326315
++9260	 -6.27336858	 -0.00033417	  0.00020470	  7.27303441	  0.99897927	  0.99946113  0.49326326
++9261	 -6.27336867	 -0.00033413	  0.00020468	  7.27303454	  0.99897938	  0.99946118  0.49326320
++9262	 -6.27336876	 -0.00033410	  0.00020466	  7.27303466	  0.99897949	  0.99946124  0.49326335
++9263	 -6.27336884	 -0.00033406	  0.00020464	  7.27303478	  0.99897960	  0.99946130  0.49326321
++9264	 -6.27336893	 -0.00033403	  0.00020462	  7.27303490	  0.99897971	  0.99946136  0.49326341
++9265	 -6.27336902	 -0.00033399	  0.00020459	  7.27303503	  0.99897982	  0.99946142  0.49326319
++9266	 -6.27336910	 -0.00033395	  0.00020457	  7.27303515	  0.99897993	  0.99946147  0.49326349
++9267	 -6.27336919	 -0.00033392	  0.00020455	  7.27303527	  0.99898004	  0.99946153  0.49326330
++9268	 -6.27336927	 -0.00033388	  0.00020453	  7.27303539	  0.99898015	  0.99946159  0.49326316
++9269	 -6.27336936	 -0.00033385	  0.00020451	  7.27303551	  0.99898026	  0.99946165  0.49326319
++9270	 -6.27336945	 -0.00033381	  0.00020448	  7.27303564	  0.99898037	  0.99946171  0.49326337
++9271	 -6.27336953	 -0.00033377	  0.00020446	  7.27303576	  0.99898048	  0.99946176  0.49326350
++9272	 -6.27336962	 -0.00033374	  0.00020444	  7.27303588	  0.99898059	  0.99946182  0.49326333
++9273	 -6.27336971	 -0.00033370	  0.00020442	  7.27303600	  0.99898070	  0.99946188  0.49326343
++9274	 -6.27336979	 -0.00033367	  0.00020439	  7.27303613	  0.99898081	  0.99946194  0.49326342
++9275	 -6.27336988	 -0.00033363	  0.00020437	  7.27303625	  0.99898092	  0.99946200  0.49326348
++9276	 -6.27336996	 -0.00033359	  0.00020435	  7.27303637	  0.99898103	  0.99946205  0.49326358
++9277	 -6.27337005	 -0.00033356	  0.00020433	  7.27303649	  0.99898114	  0.99946211  0.49326344
++9278	 -6.27337014	 -0.00033352	  0.00020431	  7.27303661	  0.99898125	  0.99946217  0.49326333
++9279	 -6.27337022	 -0.00033349	  0.00020428	  7.27303674	  0.99898136	  0.99946223  0.49326344
++9280	 -6.27337031	 -0.00033345	  0.00020426	  7.27303686	  0.99898147	  0.99946229  0.49326346
++9281	 -6.27337039	 -0.00033342	  0.00020424	  7.27303698	  0.99898158	  0.99946234  0.49326354
++9282	 -6.27337048	 -0.00033338	  0.00020422	  7.27303710	  0.99898169	  0.99946240  0.49326336
++9283	 -6.27337057	 -0.00033334	  0.00020420	  7.27303722	  0.99898180	  0.99946246  0.49326349
++9284	 -6.27337065	 -0.00033331	  0.00020417	  7.27303734	  0.99898191	  0.99946252  0.49326348
++9285	 -6.27337074	 -0.00033327	  0.00020415	  7.27303747	  0.99898202	  0.99946258  0.49326342
++9286	 -6.27337082	 -0.00033324	  0.00020413	  7.27303759	  0.99898213	  0.99946263  0.49326343
++9287	 -6.27337091	 -0.00033320	  0.00020411	  7.27303771	  0.99898224	  0.99946269  0.49326362
++9288	 -6.27337100	 -0.00033316	  0.00020409	  7.27303783	  0.99898234	  0.99946275  0.49326356
++9289	 -6.27337108	 -0.00033313	  0.00020406	  7.27303795	  0.99898245	  0.99946281  0.49326362
++9290	 -6.27337117	 -0.00033309	  0.00020404	  7.27303808	  0.99898256	  0.99946287  0.49326353
++9291	 -6.27337125	 -0.00033306	  0.00020402	  7.27303820	  0.99898267	  0.99946292  0.49326384
++9292	 -6.27337134	 -0.00033302	  0.00020400	  7.27303832	  0.99898278	  0.99946298  0.49326355
++9293	 -6.27337142	 -0.00033298	  0.00020398	  7.27303844	  0.99898289	  0.99946304  0.49326361
++9294	 -6.27337151	 -0.00033295	  0.00020395	  7.27303856	  0.99898300	  0.99946310  0.49326362
++9295	 -6.27337160	 -0.00033291	  0.00020393	  7.27303868	  0.99898311	  0.99946315  0.49326349
++9296	 -6.27337168	 -0.00033288	  0.00020391	  7.27303880	  0.99898322	  0.99946321  0.49326369
++9297	 -6.27337177	 -0.00033284	  0.00020389	  7.27303893	  0.99898333	  0.99946327  0.49326369
++9298	 -6.27337185	 -0.00033281	  0.00020387	  7.27303905	  0.99898344	  0.99946333  0.49326369
++9299	 -6.27337194	 -0.00033277	  0.00020385	  7.27303917	  0.99898355	  0.99946338  0.49326367
++9300	 -6.27337202	 -0.00033273	  0.00020382	  7.27303929	  0.99898366	  0.99946344  0.49326359
++9301	 -6.27337211	 -0.00033270	  0.00020380	  7.27303941	  0.99898377	  0.99946350  0.49326376
++9302	 -6.27337220	 -0.00033266	  0.00020378	  7.27303953	  0.99898388	  0.99946356  0.49326382
++9303	 -6.27337228	 -0.00033263	  0.00020376	  7.27303965	  0.99898399	  0.99946362  0.49326384
++9304	 -6.27337237	 -0.00033259	  0.00020374	  7.27303978	  0.99898409	  0.99946367  0.49326379
++9305	 -6.27337245	 -0.00033256	  0.00020371	  7.27303990	  0.99898420	  0.99946373  0.49326389
++9306	 -6.27337254	 -0.00033252	  0.00020369	  7.27304002	  0.99898431	  0.99946379  0.49326390
++9307	 -6.27337262	 -0.00033248	  0.00020367	  7.27304014	  0.99898442	  0.99946385  0.49326379
++9308	 -6.27337271	 -0.00033245	  0.00020365	  7.27304026	  0.99898453	  0.99946390  0.49326384
++9309	 -6.27337279	 -0.00033241	  0.00020363	  7.27304038	  0.99898464	  0.99946396  0.49326381
++9310	 -6.27337288	 -0.00033238	  0.00020360	  7.27304050	  0.99898475	  0.99946402  0.49326372
++9311	 -6.27337297	 -0.00033234	  0.00020358	  7.27304062	  0.99898486	  0.99946408  0.49326377
++9312	 -6.27337305	 -0.00033231	  0.00020356	  7.27304075	  0.99898497	  0.99946413  0.49326406
++9313	 -6.27337314	 -0.00033227	  0.00020354	  7.27304087	  0.99898508	  0.99946419  0.49326380
++9314	 -6.27337322	 -0.00033223	  0.00020352	  7.27304099	  0.99898519	  0.99946425  0.49326407
++9315	 -6.27337331	 -0.00033220	  0.00020350	  7.27304111	  0.99898529	  0.99946431  0.49326377
++9316	 -6.27337339	 -0.00033216	  0.00020347	  7.27304123	  0.99898540	  0.99946436  0.49326399
++9317	 -6.27337348	 -0.00033213	  0.00020345	  7.27304135	  0.99898551	  0.99946442  0.49326392
++9318	 -6.27337356	 -0.00033209	  0.00020343	  7.27304147	  0.99898562	  0.99946448  0.49326402
++9319	 -6.27337365	 -0.00033206	  0.00020341	  7.27304159	  0.99898573	  0.99946454  0.49326407
++9320	 -6.27337373	 -0.00033202	  0.00020339	  7.27304171	  0.99898584	  0.99946459  0.49326397
++9321	 -6.27337382	 -0.00033198	  0.00020336	  7.27304183	  0.99898595	  0.99946465  0.49326388
++9322	 -6.27337390	 -0.00033195	  0.00020334	  7.27304196	  0.99898606	  0.99946471  0.49326400
++9323	 -6.27337399	 -0.00033191	  0.00020332	  7.27304208	  0.99898616	  0.99946477  0.49326405
++9324	 -6.27337407	 -0.00033188	  0.00020330	  7.27304220	  0.99898627	  0.99946482  0.49326405
++9325	 -6.27337416	 -0.00033184	  0.00020328	  7.27304232	  0.99898638	  0.99946488  0.49326395
++9326	 -6.27337425	 -0.00033181	  0.00020326	  7.27304244	  0.99898649	  0.99946494  0.49326406
++9327	 -6.27337433	 -0.00033177	  0.00020323	  7.27304256	  0.99898660	  0.99946500  0.49326412
++9328	 -6.27337442	 -0.00033174	  0.00020321	  7.27304268	  0.99898671	  0.99946505  0.49326418
++9329	 -6.27337450	 -0.00033170	  0.00020319	  7.27304280	  0.99898682	  0.99946511  0.49326405
++9330	 -6.27337459	 -0.00033166	  0.00020317	  7.27304292	  0.99898693	  0.99946517  0.49326394
++9331	 -6.27337467	 -0.00033163	  0.00020315	  7.27304304	  0.99898703	  0.99946522  0.49326407
++9332	 -6.27337476	 -0.00033159	  0.00020312	  7.27304316	  0.99898714	  0.99946528  0.49326381
++9333	 -6.27337484	 -0.00033156	  0.00020310	  7.27304328	  0.99898725	  0.99946534  0.49326400
++9334	 -6.27337493	 -0.00033152	  0.00020308	  7.27304340	  0.99898736	  0.99946540  0.49326414
++9335	 -6.27337501	 -0.00033149	  0.00020306	  7.27304352	  0.99898747	  0.99946545  0.49326426
++9336	 -6.27337510	 -0.00033145	  0.00020304	  7.27304364	  0.99898758	  0.99946551  0.49326422
++9337	 -6.27337518	 -0.00033142	  0.00020302	  7.27304376	  0.99898768	  0.99946557  0.49326412
++9338	 -6.27337527	 -0.00033138	  0.00020299	  7.27304389	  0.99898779	  0.99946563  0.49326410
++9339	 -6.27337535	 -0.00033135	  0.00020297	  7.27304401	  0.99898790	  0.99946568  0.49326415
++9340	 -6.27337544	 -0.00033131	  0.00020295	  7.27304413	  0.99898801	  0.99946574  0.49326422
++9341	 -6.27337552	 -0.00033127	  0.00020293	  7.27304425	  0.99898812	  0.99946580  0.49326416
++9342	 -6.27337561	 -0.00033124	  0.00020291	  7.27304437	  0.99898823	  0.99946585  0.49326449
++9343	 -6.27337569	 -0.00033120	  0.00020289	  7.27304449	  0.99898833	  0.99946591  0.49326425
++9344	 -6.27337578	 -0.00033117	  0.00020286	  7.27304461	  0.99898844	  0.99946597  0.49326435
++9345	 -6.27337586	 -0.00033113	  0.00020284	  7.27304473	  0.99898855	  0.99946603  0.49326445
++9346	 -6.27337594	 -0.00033110	  0.00020282	  7.27304485	  0.99898866	  0.99946608  0.49326455
++9347	 -6.27337603	 -0.00033106	  0.00020280	  7.27304497	  0.99898877	  0.99946614  0.49326433
++9348	 -6.27337611	 -0.00033103	  0.00020278	  7.27304509	  0.99898888	  0.99946620  0.49326418
++9349	 -6.27337620	 -0.00033099	  0.00020275	  7.27304521	  0.99898898	  0.99946625  0.49326429
++9350	 -6.27337628	 -0.00033096	  0.00020273	  7.27304533	  0.99898909	  0.99946631  0.49326433
++9351	 -6.27337637	 -0.00033092	  0.00020271	  7.27304545	  0.99898920	  0.99946637  0.49326438
++9352	 -6.27337645	 -0.00033088	  0.00020269	  7.27304557	  0.99898931	  0.99946643  0.49326440
++9353	 -6.27337654	 -0.00033085	  0.00020267	  7.27304569	  0.99898942	  0.99946648  0.49326448
++9354	 -6.27337662	 -0.00033081	  0.00020265	  7.27304581	  0.99898952	  0.99946654  0.49326440
++9355	 -6.27337671	 -0.00033078	  0.00020262	  7.27304593	  0.99898963	  0.99946660  0.49326441
++9356	 -6.27337679	 -0.00033074	  0.00020260	  7.27304605	  0.99898974	  0.99946665  0.49326439
++9357	 -6.27337688	 -0.00033071	  0.00020258	  7.27304617	  0.99898985	  0.99946671  0.49326444
++9358	 -6.27337696	 -0.00033067	  0.00020256	  7.27304629	  0.99898996	  0.99946677  0.49326437
++9359	 -6.27337705	 -0.00033064	  0.00020254	  7.27304641	  0.99899006	  0.99946682  0.49326463
++9360	 -6.27337713	 -0.00033060	  0.00020252	  7.27304653	  0.99899017	  0.99946688  0.49326433
++9361	 -6.27337721	 -0.00033057	  0.00020250	  7.27304665	  0.99899028	  0.99946694  0.49326452
++9362	 -6.27337730	 -0.00033053	  0.00020247	  7.27304677	  0.99899039	  0.99946700  0.49326464
++9363	 -6.27337738	 -0.00033050	  0.00020245	  7.27304689	  0.99899050	  0.99946705  0.49326462
++9364	 -6.27337747	 -0.00033046	  0.00020243	  7.27304701	  0.99899060	  0.99946711  0.49326446
++9365	 -6.27337755	 -0.00033043	  0.00020241	  7.27304713	  0.99899071	  0.99946717  0.49326448
++9366	 -6.27337764	 -0.00033039	  0.00020239	  7.27304725	  0.99899082	  0.99946722  0.49326479
++9367	 -6.27337772	 -0.00033035	  0.00020237	  7.27304737	  0.99899093	  0.99946728  0.49326445
++9368	 -6.27337781	 -0.00033032	  0.00020234	  7.27304749	  0.99899103	  0.99946734  0.49326446
++9369	 -6.27337789	 -0.00033028	  0.00020232	  7.27304761	  0.99899114	  0.99946739  0.49326446
++9370	 -6.27337797	 -0.00033025	  0.00020230	  7.27304773	  0.99899125	  0.99946745  0.49326456
++9371	 -6.27337806	 -0.00033021	  0.00020228	  7.27304785	  0.99899136	  0.99946751  0.49326462
++9372	 -6.27337814	 -0.00033018	  0.00020226	  7.27304796	  0.99899146	  0.99946756  0.49326466
++9373	 -6.27337823	 -0.00033014	  0.00020224	  7.27304808	  0.99899157	  0.99946762  0.49326469
++9374	 -6.27337831	 -0.00033011	  0.00020221	  7.27304820	  0.99899168	  0.99946768  0.49326455
++9375	 -6.27337840	 -0.00033007	  0.00020219	  7.27304832	  0.99899179	  0.99946773  0.49326445
++9376	 -6.27337848	 -0.00033004	  0.00020217	  7.27304844	  0.99899190	  0.99946779  0.49326466
++9377	 -6.27337856	 -0.00033000	  0.00020215	  7.27304856	  0.99899200	  0.99946785  0.49326467
++9378	 -6.27337865	 -0.00032997	  0.00020213	  7.27304868	  0.99899211	  0.99946790  0.49326472
++9379	 -6.27337873	 -0.00032993	  0.00020211	  7.27304880	  0.99899222	  0.99946796  0.49326465
++9380	 -6.27337882	 -0.00032990	  0.00020208	  7.27304892	  0.99899233	  0.99946802  0.49326487
++9381	 -6.27337890	 -0.00032986	  0.00020206	  7.27304904	  0.99899243	  0.99946807  0.49326453
++9382	 -6.27337899	 -0.00032983	  0.00020204	  7.27304916	  0.99899254	  0.99946813  0.49326462
++9383	 -6.27337907	 -0.00032979	  0.00020202	  7.27304928	  0.99899265	  0.99946819  0.49326466
++9384	 -6.27337915	 -0.00032976	  0.00020200	  7.27304940	  0.99899275	  0.99946824  0.49326470
++9385	 -6.27337924	 -0.00032972	  0.00020198	  7.27304952	  0.99899286	  0.99946830  0.49326485
++9386	 -6.27337932	 -0.00032969	  0.00020196	  7.27304964	  0.99899297	  0.99946836  0.49326493
++9387	 -6.27337941	 -0.00032965	  0.00020193	  7.27304976	  0.99899308	  0.99946841  0.49326472
++9388	 -6.27337949	 -0.00032962	  0.00020191	  7.27304987	  0.99899318	  0.99946847  0.49326466
++9389	 -6.27337957	 -0.00032958	  0.00020189	  7.27304999	  0.99899329	  0.99946853  0.49326475
++9390	 -6.27337966	 -0.00032955	  0.00020187	  7.27305011	  0.99899340	  0.99946858  0.49326474
++9391	 -6.27337974	 -0.00032951	  0.00020185	  7.27305023	  0.99899351	  0.99946864  0.49326494
++9392	 -6.27337983	 -0.00032948	  0.00020183	  7.27305035	  0.99899361	  0.99946870  0.49326475
++9393	 -6.27337991	 -0.00032944	  0.00020181	  7.27305047	  0.99899372	  0.99946875  0.49326504
++9394	 -6.27337999	 -0.00032941	  0.00020178	  7.27305059	  0.99899383	  0.99946881  0.49326510
++9395	 -6.27338008	 -0.00032937	  0.00020176	  7.27305071	  0.99899393	  0.99946887  0.49326506
++9396	 -6.27338016	 -0.00032934	  0.00020174	  7.27305083	  0.99899404	  0.99946892  0.49326491
++9397	 -6.27338025	 -0.00032930	  0.00020172	  7.27305095	  0.99899415	  0.99946898  0.49326495
++9398	 -6.27338033	 -0.00032927	  0.00020170	  7.27305106	  0.99899425	  0.99946904  0.49326488
++9399	 -6.27338041	 -0.00032923	  0.00020168	  7.27305118	  0.99899436	  0.99946909  0.49326492
++9400	 -6.27338050	 -0.00032920	  0.00020165	  7.27305130	  0.99899447	  0.99946915  0.49326492
++9401	 -6.27338058	 -0.00032916	  0.00020163	  7.27305142	  0.99899458	  0.99946921  0.49326493
++9402	 -6.27338067	 -0.00032913	  0.00020161	  7.27305154	  0.99899468	  0.99946926  0.49326498
++9403	 -6.27338075	 -0.00032909	  0.00020159	  7.27305166	  0.99899479	  0.99946932  0.49326509
++9404	 -6.27338083	 -0.00032906	  0.00020157	  7.27305178	  0.99899490	  0.99946938  0.49326511
++9405	 -6.27338092	 -0.00032902	  0.00020155	  7.27305190	  0.99899500	  0.99946943  0.49326491
++9406	 -6.27338100	 -0.00032899	  0.00020153	  7.27305201	  0.99899511	  0.99946949  0.49326497
++9407	 -6.27338108	 -0.00032895	  0.00020150	  7.27305213	  0.99899522	  0.99946954  0.49326517
++9408	 -6.27338117	 -0.00032892	  0.00020148	  7.27305225	  0.99899532	  0.99946960  0.49326501
++9409	 -6.27338125	 -0.00032888	  0.00020146	  7.27305237	  0.99899543	  0.99946966  0.49326506
++9410	 -6.27338134	 -0.00032885	  0.00020144	  7.27305249	  0.99899554	  0.99946971  0.49326507
++9411	 -6.27338142	 -0.00032881	  0.00020142	  7.27305261	  0.99899564	  0.99946977  0.49326497
++9412	 -6.27338150	 -0.00032878	  0.00020140	  7.27305273	  0.99899575	  0.99946983  0.49326508
++9413	 -6.27338159	 -0.00032874	  0.00020138	  7.27305284	  0.99899586	  0.99946988  0.49326522
++9414	 -6.27338167	 -0.00032871	  0.00020135	  7.27305296	  0.99899596	  0.99946994  0.49326525
++9415	 -6.27338175	 -0.00032867	  0.00020133	  7.27305308	  0.99899607	  0.99946999  0.49326527
++9416	 -6.27338184	 -0.00032864	  0.00020131	  7.27305320	  0.99899618	  0.99947005  0.49326512
++9417	 -6.27338192	 -0.00032860	  0.00020129	  7.27305332	  0.99899628	  0.99947011  0.49326544
++9418	 -6.27338200	 -0.00032857	  0.00020127	  7.27305344	  0.99899639	  0.99947016  0.49326511
++9419	 -6.27338209	 -0.00032853	  0.00020125	  7.27305356	  0.99899650	  0.99947022  0.49326525
++9420	 -6.27338217	 -0.00032850	  0.00020123	  7.27305367	  0.99899660	  0.99947028  0.49326517
++9421	 -6.27338225	 -0.00032846	  0.00020121	  7.27305379	  0.99899671	  0.99947033  0.49326515
++9422	 -6.27338234	 -0.00032843	  0.00020118	  7.27305391	  0.99899682	  0.99947039  0.49326512
++9423	 -6.27338242	 -0.00032839	  0.00020116	  7.27305403	  0.99899692	  0.99947045  0.49326510
++9424	 -6.27338250	 -0.00032836	  0.00020114	  7.27305415	  0.99899703	  0.99947050  0.49326538
++9425	 -6.27338259	 -0.00032832	  0.00020112	  7.27305427	  0.99899714	  0.99947056  0.49326526
++9426	 -6.27338267	 -0.00032829	  0.00020110	  7.27305438	  0.99899724	  0.99947061  0.49326555
++9427	 -6.27338275	 -0.00032825	  0.00020108	  7.27305450	  0.99899735	  0.99947067  0.49326559
++9428	 -6.27338284	 -0.00032822	  0.00020106	  7.27305462	  0.99899745	  0.99947073  0.49326528
++9429	 -6.27338292	 -0.00032818	  0.00020103	  7.27305474	  0.99899756	  0.99947078  0.49326542
++9430	 -6.27338300	 -0.00032815	  0.00020101	  7.27305486	  0.99899767	  0.99947084  0.49326519
++9431	 -6.27338309	 -0.00032811	  0.00020099	  7.27305497	  0.99899777	  0.99947089  0.49326536
++9432	 -6.27338317	 -0.00032808	  0.00020097	  7.27305509	  0.99899788	  0.99947095  0.49326533
++9433	 -6.27338325	 -0.00032804	  0.00020095	  7.27305521	  0.99899799	  0.99947101  0.49326540
++9434	 -6.27338334	 -0.00032801	  0.00020093	  7.27305533	  0.99899809	  0.99947106  0.49326552
++9435	 -6.27338342	 -0.00032797	  0.00020091	  7.27305545	  0.99899820	  0.99947112  0.49326543
++9436	 -6.27338350	 -0.00032794	  0.00020089	  7.27305556	  0.99899830	  0.99947117  0.49326548
++9437	 -6.27338359	 -0.00032791	  0.00020086	  7.27305568	  0.99899841	  0.99947123  0.49326555
++9438	 -6.27338367	 -0.00032787	  0.00020084	  7.27305580	  0.99899852	  0.99947129  0.49326550
++9439	 -6.27338375	 -0.00032784	  0.00020082	  7.27305592	  0.99899862	  0.99947134  0.49326539
++9440	 -6.27338384	 -0.00032780	  0.00020080	  7.27305604	  0.99899873	  0.99947140  0.49326537
++9441	 -6.27338392	 -0.00032777	  0.00020078	  7.27305615	  0.99899884	  0.99947145  0.49326540
++9442	 -6.27338400	 -0.00032773	  0.00020076	  7.27305627	  0.99899894	  0.99947151  0.49326552
++9443	 -6.27338409	 -0.00032770	  0.00020074	  7.27305639	  0.99899905	  0.99947157  0.49326544
++9444	 -6.27338417	 -0.00032766	  0.00020072	  7.27305651	  0.99899915	  0.99947162  0.49326541
++9445	 -6.27338425	 -0.00032763	  0.00020069	  7.27305662	  0.99899926	  0.99947168  0.49326544
++9446	 -6.27338433	 -0.00032759	  0.00020067	  7.27305674	  0.99899937	  0.99947173  0.49326555
++9447	 -6.27338442	 -0.00032756	  0.00020065	  7.27305686	  0.99899947	  0.99947179  0.49326592
++9448	 -6.27338450	 -0.00032752	  0.00020063	  7.27305698	  0.99899958	  0.99947185  0.49326555
++9449	 -6.27338458	 -0.00032749	  0.00020061	  7.27305709	  0.99899968	  0.99947190  0.49326556
++9450	 -6.27338467	 -0.00032745	  0.00020059	  7.27305721	  0.99899979	  0.99947196  0.49326577
++9451	 -6.27338475	 -0.00032742	  0.00020057	  7.27305733	  0.99899989	  0.99947201  0.49326572
++9452	 -6.27338483	 -0.00032739	  0.00020055	  7.27305745	  0.99900000	  0.99947207  0.49326564
++9453	 -6.27338492	 -0.00032735	  0.00020052	  7.27305756	  0.99900011	  0.99947213  0.49326574
++9454	 -6.27338500	 -0.00032732	  0.00020050	  7.27305768	  0.99900021	  0.99947218  0.49326570
++9455	 -6.27338508	 -0.00032728	  0.00020048	  7.27305780	  0.99900032	  0.99947224  0.49326585
++9456	 -6.27338516	 -0.00032725	  0.00020046	  7.27305792	  0.99900042	  0.99947229  0.49326561
++9457	 -6.27338525	 -0.00032721	  0.00020044	  7.27305804	  0.99900053	  0.99947235  0.49326554
++9458	 -6.27338533	 -0.00032718	  0.00020042	  7.27305815	  0.99900063	  0.99947240  0.49326565
++9459	 -6.27338541	 -0.00032714	  0.00020040	  7.27305827	  0.99900074	  0.99947246  0.49326560
++9460	 -6.27338550	 -0.00032711	  0.00020038	  7.27305839	  0.99900085	  0.99947252  0.49326561
++9461	 -6.27338558	 -0.00032707	  0.00020035	  7.27305850	  0.99900095	  0.99947257  0.49326588
++9462	 -6.27338566	 -0.00032704	  0.00020033	  7.27305862	  0.99900106	  0.99947263  0.49326567
++9463	 -6.27338574	 -0.00032700	  0.00020031	  7.27305874	  0.99900116	  0.99947268  0.49326573
++9464	 -6.27338583	 -0.00032697	  0.00020029	  7.27305886	  0.99900127	  0.99947274  0.49326588
++9465	 -6.27338591	 -0.00032694	  0.00020027	  7.27305897	  0.99900137	  0.99947279  0.49326587
++9466	 -6.27338599	 -0.00032690	  0.00020025	  7.27305909	  0.99900148	  0.99947285  0.49326591
++9467	 -6.27338607	 -0.00032687	  0.00020023	  7.27305921	  0.99900158	  0.99947291  0.49326568
++9468	 -6.27338616	 -0.00032683	  0.00020021	  7.27305932	  0.99900169	  0.99947296  0.49326586
++9469	 -6.27338624	 -0.00032680	  0.00020019	  7.27305944	  0.99900180	  0.99947302  0.49326595
++9470	 -6.27338632	 -0.00032676	  0.00020016	  7.27305956	  0.99900190	  0.99947307  0.49326594
++9471	 -6.27338640	 -0.00032673	  0.00020014	  7.27305968	  0.99900201	  0.99947313  0.49326576
++9472	 -6.27338649	 -0.00032669	  0.00020012	  7.27305979	  0.99900211	  0.99947318  0.49326600
++9473	 -6.27338657	 -0.00032666	  0.00020010	  7.27305991	  0.99900222	  0.99947324  0.49326567
++9474	 -6.27338665	 -0.00032663	  0.00020008	  7.27306003	  0.99900232	  0.99947330  0.49326591
++9475	 -6.27338674	 -0.00032659	  0.00020006	  7.27306014	  0.99900243	  0.99947335  0.49326584
++9476	 -6.27338682	 -0.00032656	  0.00020004	  7.27306026	  0.99900253	  0.99947341  0.49326591
++9477	 -6.27338690	 -0.00032652	  0.00020002	  7.27306038	  0.99900264	  0.99947346  0.49326598
++9478	 -6.27338698	 -0.00032649	  0.00020000	  7.27306050	  0.99900274	  0.99947352  0.49326605
++9479	 -6.27338706	 -0.00032645	  0.00019997	  7.27306061	  0.99900285	  0.99947357  0.49326584
++9480	 -6.27338715	 -0.00032642	  0.00019995	  7.27306073	  0.99900295	  0.99947363  0.49326610
++9481	 -6.27338723	 -0.00032638	  0.00019993	  7.27306085	  0.99900306	  0.99947368  0.49326584
++9482	 -6.27338731	 -0.00032635	  0.00019991	  7.27306096	  0.99900316	  0.99947374  0.49326595
++9483	 -6.27338739	 -0.00032632	  0.00019989	  7.27306108	  0.99900327	  0.99947379  0.49326574
++9484	 -6.27338748	 -0.00032628	  0.00019987	  7.27306120	  0.99900337	  0.99947385  0.49326593
++9485	 -6.27338756	 -0.00032625	  0.00019985	  7.27306131	  0.99900348	  0.99947391  0.49326617
++9486	 -6.27338764	 -0.00032621	  0.00019983	  7.27306143	  0.99900358	  0.99947396  0.49326608
++9487	 -6.27338772	 -0.00032618	  0.00019981	  7.27306155	  0.99900369	  0.99947402  0.49326601
++9488	 -6.27338781	 -0.00032614	  0.00019978	  7.27306166	  0.99900379	  0.99947407  0.49326595
++9489	 -6.27338789	 -0.00032611	  0.00019976	  7.27306178	  0.99900390	  0.99947413  0.49326615
++9490	 -6.27338797	 -0.00032607	  0.00019974	  7.27306190	  0.99900400	  0.99947418  0.49326594
++9491	 -6.27338805	 -0.00032604	  0.00019972	  7.27306201	  0.99900411	  0.99947424  0.49326623
++9492	 -6.27338814	 -0.00032601	  0.00019970	  7.27306213	  0.99900421	  0.99947429  0.49326628
++9493	 -6.27338822	 -0.00032597	  0.00019968	  7.27306225	  0.99900432	  0.99947435  0.49326618
++9494	 -6.27338830	 -0.00032594	  0.00019966	  7.27306236	  0.99900442	  0.99947440  0.49326621
++9495	 -6.27338838	 -0.00032590	  0.00019964	  7.27306248	  0.99900453	  0.99947446  0.49326598
++9496	 -6.27338846	 -0.00032587	  0.00019962	  7.27306260	  0.99900463	  0.99947452  0.49326615
++9497	 -6.27338855	 -0.00032583	  0.00019960	  7.27306271	  0.99900474	  0.99947457  0.49326647
++9498	 -6.27338863	 -0.00032580	  0.00019957	  7.27306283	  0.99900484	  0.99947463  0.49326621
++9499	 -6.27338871	 -0.00032577	  0.00019955	  7.27306294	  0.99900495	  0.99947468  0.49326643
++9500	 -6.27338879	 -0.00032573	  0.00019953	  7.27306306	  0.99900505	  0.99947474  0.49326629
++9501	 -6.27338887	 -0.00032570	  0.00019951	  7.27306318	  0.99900516	  0.99947479  0.49326635
++9502	 -6.27338896	 -0.00032566	  0.00019949	  7.27306329	  0.99900526	  0.99947485  0.49326632
++9503	 -6.27338904	 -0.00032563	  0.00019947	  7.27306341	  0.99900537	  0.99947490  0.49326626
++9504	 -6.27338912	 -0.00032559	  0.00019945	  7.27306353	  0.99900547	  0.99947496  0.49326639
++9505	 -6.27338920	 -0.00032556	  0.00019943	  7.27306364	  0.99900558	  0.99947501  0.49326627
++9506	 -6.27338928	 -0.00032553	  0.00019941	  7.27306376	  0.99900568	  0.99947507  0.49326645
++9507	 -6.27338937	 -0.00032549	  0.00019939	  7.27306387	  0.99900578	  0.99947512  0.49326623
++9508	 -6.27338945	 -0.00032546	  0.00019936	  7.27306399	  0.99900589	  0.99947518  0.49326607
++9509	 -6.27338953	 -0.00032542	  0.00019934	  7.27306411	  0.99900599	  0.99947523  0.49326641
++9510	 -6.27338961	 -0.00032539	  0.00019932	  7.27306422	  0.99900610	  0.99947529  0.49326644
++9511	 -6.27338969	 -0.00032536	  0.00019930	  7.27306434	  0.99900620	  0.99947534  0.49326635
++9512	 -6.27338978	 -0.00032532	  0.00019928	  7.27306446	  0.99900631	  0.99947540  0.49326617
++9513	 -6.27338986	 -0.00032529	  0.00019926	  7.27306457	  0.99900641	  0.99947545  0.49326647
++9514	 -6.27338994	 -0.00032525	  0.00019924	  7.27306469	  0.99900652	  0.99947551  0.49326638
++9515	 -6.27339002	 -0.00032522	  0.00019922	  7.27306480	  0.99900662	  0.99947556  0.49326625
++9516	 -6.27339010	 -0.00032518	  0.00019920	  7.27306492	  0.99900673	  0.99947562  0.49326654
++9517	 -6.27339019	 -0.00032515	  0.00019918	  7.27306504	  0.99900683	  0.99947567  0.49326643
++9518	 -6.27339027	 -0.00032512	  0.00019915	  7.27306515	  0.99900693	  0.99947573  0.49326639
++9519	 -6.27339035	 -0.00032508	  0.00019913	  7.27306527	  0.99900704	  0.99947578  0.49326643
++9520	 -6.27339043	 -0.00032505	  0.00019911	  7.27306538	  0.99900714	  0.99947584  0.49326613
++9521	 -6.27339051	 -0.00032501	  0.00019909	  7.27306550	  0.99900725	  0.99947589  0.49326635
++9522	 -6.27339059	 -0.00032498	  0.00019907	  7.27306561	  0.99900735	  0.99947595  0.49326654
++9523	 -6.27339068	 -0.00032495	  0.00019905	  7.27306573	  0.99900746	  0.99947600  0.49326649
++9524	 -6.27339076	 -0.00032491	  0.00019903	  7.27306585	  0.99900756	  0.99947606  0.49326645
++9525	 -6.27339084	 -0.00032488	  0.00019901	  7.27306596	  0.99900766	  0.99947611  0.49326635
++9526	 -6.27339092	 -0.00032484	  0.00019899	  7.27306608	  0.99900777	  0.99947617  0.49326646
++9527	 -6.27339100	 -0.00032481	  0.00019897	  7.27306619	  0.99900787	  0.99947622  0.49326660
++9528	 -6.27339108	 -0.00032477	  0.00019895	  7.27306631	  0.99900798	  0.99947628  0.49326653
++9529	 -6.27339117	 -0.00032474	  0.00019892	  7.27306642	  0.99900808	  0.99947633  0.49326655
++9530	 -6.27339125	 -0.00032471	  0.00019890	  7.27306654	  0.99900818	  0.99947639  0.49326642
++9531	 -6.27339133	 -0.00032467	  0.00019888	  7.27306666	  0.99900829	  0.99947644  0.49326648
++9532	 -6.27339141	 -0.00032464	  0.00019886	  7.27306677	  0.99900839	  0.99947650  0.49326679
++9533	 -6.27339149	 -0.00032460	  0.00019884	  7.27306689	  0.99900850	  0.99947655  0.49326686
++9534	 -6.27339157	 -0.00032457	  0.00019882	  7.27306700	  0.99900860	  0.99947661  0.49326656
++9535	 -6.27339165	 -0.00032454	  0.00019880	  7.27306712	  0.99900870	  0.99947666  0.49326662
++9536	 -6.27339174	 -0.00032450	  0.00019878	  7.27306723	  0.99900881	  0.99947672  0.49326679
++9537	 -6.27339182	 -0.00032447	  0.00019876	  7.27306735	  0.99900891	  0.99947677  0.49326673
++9538	 -6.27339190	 -0.00032443	  0.00019874	  7.27306746	  0.99900902	  0.99947683  0.49326675
++9539	 -6.27339198	 -0.00032440	  0.00019872	  7.27306758	  0.99900912	  0.99947688  0.49326682
++9540	 -6.27339206	 -0.00032437	  0.00019870	  7.27306770	  0.99900922	  0.99947694  0.49326647
++9541	 -6.27339214	 -0.00032433	  0.00019867	  7.27306781	  0.99900933	  0.99947699  0.49326653
++9542	 -6.27339222	 -0.00032430	  0.00019865	  7.27306793	  0.99900943	  0.99947705  0.49326669
++9543	 -6.27339231	 -0.00032426	  0.00019863	  7.27306804	  0.99900954	  0.99947710  0.49326657
++9544	 -6.27339239	 -0.00032423	  0.00019861	  7.27306816	  0.99900964	  0.99947716  0.49326679
++9545	 -6.27339247	 -0.00032420	  0.00019859	  7.27306827	  0.99900974	  0.99947721  0.49326690
++9546	 -6.27339255	 -0.00032416	  0.00019857	  7.27306839	  0.99900985	  0.99947727  0.49326680
++9547	 -6.27339263	 -0.00032413	  0.00019855	  7.27306850	  0.99900995	  0.99947732  0.49326670
++9548	 -6.27339271	 -0.00032409	  0.00019853	  7.27306862	  0.99901005	  0.99947738  0.49326690
++9549	 -6.27339279	 -0.00032406	  0.00019851	  7.27306873	  0.99901016	  0.99947743  0.49326682
++9550	 -6.27339287	 -0.00032403	  0.00019849	  7.27306885	  0.99901026	  0.99947749  0.49326670
++9551	 -6.27339296	 -0.00032399	  0.00019847	  7.27306896	  0.99901036	  0.99947754  0.49326689
++9552	 -6.27339304	 -0.00032396	  0.00019845	  7.27306908	  0.99901047	  0.99947760  0.49326683
++9553	 -6.27339312	 -0.00032393	  0.00019843	  7.27306919	  0.99901057	  0.99947765  0.49326682
++9554	 -6.27339320	 -0.00032389	  0.00019840	  7.27306931	  0.99901068	  0.99947770  0.49326694
++9555	 -6.27339328	 -0.00032386	  0.00019838	  7.27306942	  0.99901078	  0.99947776  0.49326682
++9556	 -6.27339336	 -0.00032382	  0.00019836	  7.27306954	  0.99901088	  0.99947781  0.49326696
++9557	 -6.27339344	 -0.00032379	  0.00019834	  7.27306965	  0.99901099	  0.99947787  0.49326703
++9558	 -6.27339352	 -0.00032376	  0.00019832	  7.27306977	  0.99901109	  0.99947792  0.49326705
++9559	 -6.27339360	 -0.00032372	  0.00019830	  7.27306988	  0.99901119	  0.99947798  0.49326683
++9560	 -6.27339369	 -0.00032369	  0.00019828	  7.27307000	  0.99901130	  0.99947803  0.49326692
++9561	 -6.27339377	 -0.00032365	  0.00019826	  7.27307011	  0.99901140	  0.99947809  0.49326694
++9562	 -6.27339385	 -0.00032362	  0.00019824	  7.27307023	  0.99901150	  0.99947814  0.49326688
++9563	 -6.27339393	 -0.00032359	  0.00019822	  7.27307034	  0.99901161	  0.99947820  0.49326687
++9564	 -6.27339401	 -0.00032355	  0.00019820	  7.27307046	  0.99901171	  0.99947825  0.49326697
++9565	 -6.27339409	 -0.00032352	  0.00019818	  7.27307057	  0.99901181	  0.99947830  0.49326717
++9566	 -6.27339417	 -0.00032349	  0.00019816	  7.27307069	  0.99901192	  0.99947836  0.49326712
++9567	 -6.27339425	 -0.00032345	  0.00019813	  7.27307080	  0.99901202	  0.99947841  0.49326703
++9568	 -6.27339433	 -0.00032342	  0.00019811	  7.27307092	  0.99901212	  0.99947847  0.49326706
++9569	 -6.27339441	 -0.00032338	  0.00019809	  7.27307103	  0.99901223	  0.99947852  0.49326716
++9570	 -6.27339450	 -0.00032335	  0.00019807	  7.27307115	  0.99901233	  0.99947858  0.49326689
++9571	 -6.27339458	 -0.00032332	  0.00019805	  7.27307126	  0.99901243	  0.99947863  0.49326699
++9572	 -6.27339466	 -0.00032328	  0.00019803	  7.27307137	  0.99901254	  0.99947869  0.49326696
++9573	 -6.27339474	 -0.00032325	  0.00019801	  7.27307149	  0.99901264	  0.99947874  0.49326718
++9574	 -6.27339482	 -0.00032321	  0.00019799	  7.27307160	  0.99901274	  0.99947880  0.49326717
++9575	 -6.27339490	 -0.00032318	  0.00019797	  7.27307172	  0.99901285	  0.99947885  0.49326705
++9576	 -6.27339498	 -0.00032315	  0.00019795	  7.27307183	  0.99901295	  0.99947890  0.49326716
++9577	 -6.27339506	 -0.00032311	  0.00019793	  7.27307195	  0.99901305	  0.99947896  0.49326730
++9578	 -6.27339514	 -0.00032308	  0.00019791	  7.27307206	  0.99901315	  0.99947901  0.49326718
++9579	 -6.27339522	 -0.00032305	  0.00019789	  7.27307218	  0.99901326	  0.99947907  0.49326722
++9580	 -6.27339530	 -0.00032301	  0.00019787	  7.27307229	  0.99901336	  0.99947912  0.49326715
++9581	 -6.27339538	 -0.00032298	  0.00019785	  7.27307241	  0.99901346	  0.99947918  0.49326728
++9582	 -6.27339546	 -0.00032295	  0.00019782	  7.27307252	  0.99901357	  0.99947923  0.49326724
++9583	 -6.27339555	 -0.00032291	  0.00019780	  7.27307263	  0.99901367	  0.99947928  0.49326701
++9584	 -6.27339563	 -0.00032288	  0.00019778	  7.27307275	  0.99901377	  0.99947934  0.49326708
++9585	 -6.27339571	 -0.00032284	  0.00019776	  7.27307286	  0.99901388	  0.99947939  0.49326726
++9586	 -6.27339579	 -0.00032281	  0.00019774	  7.27307298	  0.99901398	  0.99947945  0.49326720
++9587	 -6.27339587	 -0.00032278	  0.00019772	  7.27307309	  0.99901408	  0.99947950  0.49326714
++9588	 -6.27339595	 -0.00032274	  0.00019770	  7.27307321	  0.99901418	  0.99947956  0.49326729
++9589	 -6.27339603	 -0.00032271	  0.00019768	  7.27307332	  0.99901429	  0.99947961  0.49326744
++9590	 -6.27339611	 -0.00032268	  0.00019766	  7.27307343	  0.99901439	  0.99947966  0.49326726
++9591	 -6.27339619	 -0.00032264	  0.00019764	  7.27307355	  0.99901449	  0.99947972  0.49326746
++9592	 -6.27339627	 -0.00032261	  0.00019762	  7.27307366	  0.99901459	  0.99947977  0.49326747
++9593	 -6.27339635	 -0.00032258	  0.00019760	  7.27307378	  0.99901470	  0.99947983  0.49326746
++9594	 -6.27339643	 -0.00032254	  0.00019758	  7.27307389	  0.99901480	  0.99947988  0.49326737
++9595	 -6.27339651	 -0.00032251	  0.00019756	  7.27307400	  0.99901490	  0.99947994  0.49326725
++9596	 -6.27339659	 -0.00032247	  0.00019754	  7.27307412	  0.99901501	  0.99947999  0.49326744
++9597	 -6.27339667	 -0.00032244	  0.00019752	  7.27307423	  0.99901511	  0.99948004  0.49326734
++9598	 -6.27339675	 -0.00032241	  0.00019749	  7.27307435	  0.99901521	  0.99948010  0.49326748
++9599	 -6.27339683	 -0.00032237	  0.00019747	  7.27307446	  0.99901531	  0.99948015  0.49326735
++9600	 -6.27339691	 -0.00032234	  0.00019745	  7.27307457	  0.99901542	  0.99948021  0.49326718
++9601	 -6.27339699	 -0.00032231	  0.00019743	  7.27307469	  0.99901552	  0.99948026  0.49326726
++9602	 -6.27339708	 -0.00032227	  0.00019741	  7.27307480	  0.99901562	  0.99948031  0.49326739
++9603	 -6.27339716	 -0.00032224	  0.00019739	  7.27307492	  0.99901572	  0.99948037  0.49326736
++9604	 -6.27339724	 -0.00032221	  0.00019737	  7.27307503	  0.99901583	  0.99948042  0.49326751
++9605	 -6.27339732	 -0.00032217	  0.00019735	  7.27307514	  0.99901593	  0.99948048  0.49326746
++9606	 -6.27339740	 -0.00032214	  0.00019733	  7.27307526	  0.99901603	  0.99948053  0.49326750
++9607	 -6.27339748	 -0.00032210	  0.00019731	  7.27307537	  0.99901613	  0.99948059  0.49326720
++9608	 -6.27339756	 -0.00032207	  0.00019729	  7.27307549	  0.99901624	  0.99948064  0.49326742
++9609	 -6.27339764	 -0.00032204	  0.00019727	  7.27307560	  0.99901634	  0.99948069  0.49326770
++9610	 -6.27339772	 -0.00032200	  0.00019725	  7.27307571	  0.99901644	  0.99948075  0.49326757
++9611	 -6.27339780	 -0.00032197	  0.00019723	  7.27307583	  0.99901654	  0.99948080  0.49326750
++9612	 -6.27339788	 -0.00032194	  0.00019721	  7.27307594	  0.99901664	  0.99948086  0.49326781
++9613	 -6.27339796	 -0.00032190	  0.00019719	  7.27307605	  0.99901675	  0.99948091  0.49326776
++9614	 -6.27339804	 -0.00032187	  0.00019717	  7.27307617	  0.99901685	  0.99948096  0.49326747
++9615	 -6.27339812	 -0.00032184	  0.00019715	  7.27307628	  0.99901695	  0.99948102  0.49326778
++9616	 -6.27339820	 -0.00032180	  0.00019713	  7.27307639	  0.99901705	  0.99948107  0.49326749
++9617	 -6.27339828	 -0.00032177	  0.00019710	  7.27307651	  0.99901716	  0.99948113  0.49326751
++9618	 -6.27339836	 -0.00032174	  0.00019708	  7.27307662	  0.99901726	  0.99948118  0.49326780
++9619	 -6.27339844	 -0.00032170	  0.00019706	  7.27307674	  0.99901736	  0.99948123  0.49326747
++9620	 -6.27339852	 -0.00032167	  0.00019704	  7.27307685	  0.99901746	  0.99948129  0.49326772
++9621	 -6.27339860	 -0.00032164	  0.00019702	  7.27307696	  0.99901756	  0.99948134  0.49326768
++9622	 -6.27339868	 -0.00032160	  0.00019700	  7.27307708	  0.99901767	  0.99948139  0.49326756
++9623	 -6.27339876	 -0.00032157	  0.00019698	  7.27307719	  0.99901777	  0.99948145  0.49326753
++9624	 -6.27339884	 -0.00032154	  0.00019696	  7.27307730	  0.99901787	  0.99948150  0.49326754
++9625	 -6.27339892	 -0.00032150	  0.00019694	  7.27307742	  0.99901797	  0.99948156  0.49326763
++9626	 -6.27339900	 -0.00032147	  0.00019692	  7.27307753	  0.99901807	  0.99948161  0.49326773
++9627	 -6.27339908	 -0.00032144	  0.00019690	  7.27307764	  0.99901818	  0.99948166  0.49326760
++9628	 -6.27339916	 -0.00032140	  0.00019688	  7.27307776	  0.99901828	  0.99948172  0.49326795
++9629	 -6.27339924	 -0.00032137	  0.00019686	  7.27307787	  0.99901838	  0.99948177  0.49326781
++9630	 -6.27339932	 -0.00032134	  0.00019684	  7.27307798	  0.99901848	  0.99948183  0.49326791
++9631	 -6.27339940	 -0.00032130	  0.00019682	  7.27307810	  0.99901858	  0.99948188  0.49326782
++9632	 -6.27339948	 -0.00032127	  0.00019680	  7.27307821	  0.99901869	  0.99948193  0.49326774
++9633	 -6.27339956	 -0.00032124	  0.00019678	  7.27307832	  0.99901879	  0.99948199  0.49326801
++9634	 -6.27339964	 -0.00032120	  0.00019676	  7.27307843	  0.99901889	  0.99948204  0.49326796
++9635	 -6.27339972	 -0.00032117	  0.00019674	  7.27307855	  0.99901899	  0.99948209  0.49326796
++9636	 -6.27339980	 -0.00032114	  0.00019672	  7.27307866	  0.99901909	  0.99948215  0.49326764
++9637	 -6.27339988	 -0.00032110	  0.00019670	  7.27307877	  0.99901920	  0.99948220  0.49326786
++9638	 -6.27339996	 -0.00032107	  0.00019668	  7.27307889	  0.99901930	  0.99948226  0.49326797
++9639	 -6.27340004	 -0.00032104	  0.00019665	  7.27307900	  0.99901940	  0.99948231  0.49326772
++9640	 -6.27340012	 -0.00032100	  0.00019663	  7.27307911	  0.99901950	  0.99948236  0.49326808
++9641	 -6.27340020	 -0.00032097	  0.00019661	  7.27307923	  0.99901960	  0.99948242  0.49326793
++9642	 -6.27340028	 -0.00032094	  0.00019659	  7.27307934	  0.99901970	  0.99948247  0.49326800
++9643	 -6.27340036	 -0.00032090	  0.00019657	  7.27307945	  0.99901981	  0.99948252  0.49326818
++9644	 -6.27340043	 -0.00032087	  0.00019655	  7.27307956	  0.99901991	  0.99948258  0.49326800
++9645	 -6.27340051	 -0.00032084	  0.00019653	  7.27307968	  0.99902001	  0.99948263  0.49326833
++9646	 -6.27340059	 -0.00032080	  0.00019651	  7.27307979	  0.99902011	  0.99948268  0.49326799
++9647	 -6.27340067	 -0.00032077	  0.00019649	  7.27307990	  0.99902021	  0.99948274  0.49326805
++9648	 -6.27340075	 -0.00032074	  0.00019647	  7.27308002	  0.99902031	  0.99948279  0.49326790
++9649	 -6.27340083	 -0.00032070	  0.00019645	  7.27308013	  0.99902042	  0.99948285  0.49326822
++9650	 -6.27340091	 -0.00032067	  0.00019643	  7.27308024	  0.99902052	  0.99948290  0.49326817
++9651	 -6.27340099	 -0.00032064	  0.00019641	  7.27308035	  0.99902062	  0.99948295  0.49326820
++9652	 -6.27340107	 -0.00032060	  0.00019639	  7.27308047	  0.99902072	  0.99948301  0.49326814
++9653	 -6.27340115	 -0.00032057	  0.00019637	  7.27308058	  0.99902082	  0.99948306  0.49326794
++9654	 -6.27340123	 -0.00032054	  0.00019635	  7.27308069	  0.99902092	  0.99948311  0.49326788
++9655	 -6.27340131	 -0.00032050	  0.00019633	  7.27308081	  0.99902102	  0.99948317  0.49326824
++9656	 -6.27340139	 -0.00032047	  0.00019631	  7.27308092	  0.99902113	  0.99948322  0.49326821
++9657	 -6.27340147	 -0.00032044	  0.00019629	  7.27308103	  0.99902123	  0.99948327  0.49326804
++9658	 -6.27340155	 -0.00032040	  0.00019627	  7.27308114	  0.99902133	  0.99948333  0.49326826
++9659	 -6.27340163	 -0.00032037	  0.00019625	  7.27308126	  0.99902143	  0.99948338  0.49326837
++9660	 -6.27340171	 -0.00032034	  0.00019623	  7.27308137	  0.99902153	  0.99948343  0.49326808
++9661	 -6.27340179	 -0.00032031	  0.00019621	  7.27308148	  0.99902163	  0.99948349  0.49326814
++9662	 -6.27340187	 -0.00032027	  0.00019619	  7.27308159	  0.99902173	  0.99948354  0.49326823
++9663	 -6.27340194	 -0.00032024	  0.00019617	  7.27308171	  0.99902183	  0.99948359  0.49326820
++9664	 -6.27340202	 -0.00032021	  0.00019615	  7.27308182	  0.99902194	  0.99948365  0.49326819
++9665	 -6.27340210	 -0.00032017	  0.00019613	  7.27308193	  0.99902204	  0.99948370  0.49326828
++9666	 -6.27340218	 -0.00032014	  0.00019611	  7.27308204	  0.99902214	  0.99948376  0.49326815
++9667	 -6.27340226	 -0.00032011	  0.00019608	  7.27308216	  0.99902224	  0.99948381  0.49326833
++9668	 -6.27340234	 -0.00032007	  0.00019606	  7.27308227	  0.99902234	  0.99948386  0.49326820
++9669	 -6.27340242	 -0.00032004	  0.00019604	  7.27308238	  0.99902244	  0.99948392  0.49326839
++9670	 -6.27340250	 -0.00032001	  0.00019602	  7.27308249	  0.99902254	  0.99948397  0.49326825
++9671	 -6.27340258	 -0.00031997	  0.00019600	  7.27308261	  0.99902264	  0.99948402  0.49326820
++9672	 -6.27340266	 -0.00031994	  0.00019598	  7.27308272	  0.99902274	  0.99948408  0.49326829
++9673	 -6.27340274	 -0.00031991	  0.00019596	  7.27308283	  0.99902285	  0.99948413  0.49326838
++9674	 -6.27340282	 -0.00031987	  0.00019594	  7.27308294	  0.99902295	  0.99948418  0.49326829
++9675	 -6.27340290	 -0.00031984	  0.00019592	  7.27308305	  0.99902305	  0.99948424  0.49326812
++9676	 -6.27340297	 -0.00031981	  0.00019590	  7.27308317	  0.99902315	  0.99948429  0.49326825
++9677	 -6.27340305	 -0.00031978	  0.00019588	  7.27308328	  0.99902325	  0.99948434  0.49326844
++9678	 -6.27340313	 -0.00031974	  0.00019586	  7.27308339	  0.99902335	  0.99948440  0.49326822
++9679	 -6.27340321	 -0.00031971	  0.00019584	  7.27308350	  0.99902345	  0.99948445  0.49326848
++9680	 -6.27340329	 -0.00031968	  0.00019582	  7.27308361	  0.99902355	  0.99948450  0.49326823
++9681	 -6.27340337	 -0.00031964	  0.00019580	  7.27308373	  0.99902365	  0.99948455  0.49326831
++9682	 -6.27340345	 -0.00031961	  0.00019578	  7.27308384	  0.99902375	  0.99948461  0.49326842
++9683	 -6.27340353	 -0.00031958	  0.00019576	  7.27308395	  0.99902385	  0.99948466  0.49326833
++9684	 -6.27340361	 -0.00031954	  0.00019574	  7.27308406	  0.99902396	  0.99948471  0.49326844
++9685	 -6.27340369	 -0.00031951	  0.00019572	  7.27308417	  0.99902406	  0.99948477  0.49326841
++9686	 -6.27340377	 -0.00031948	  0.00019570	  7.27308429	  0.99902416	  0.99948482  0.49326813
++9687	 -6.27340384	 -0.00031945	  0.00019568	  7.27308440	  0.99902426	  0.99948487  0.49326861
++9688	 -6.27340392	 -0.00031941	  0.00019566	  7.27308451	  0.99902436	  0.99948493  0.49326836
++9689	 -6.27340400	 -0.00031938	  0.00019564	  7.27308462	  0.99902446	  0.99948498  0.49326869
++9690	 -6.27340408	 -0.00031935	  0.00019562	  7.27308473	  0.99902456	  0.99948503  0.49326883
++9691	 -6.27340416	 -0.00031931	  0.00019560	  7.27308485	  0.99902466	  0.99948509  0.49326857
++9692	 -6.27340424	 -0.00031928	  0.00019558	  7.27308496	  0.99902476	  0.99948514  0.49326861
++9693	 -6.27340432	 -0.00031925	  0.00019556	  7.27308507	  0.99902486	  0.99948519  0.49326841
++9694	 -6.27340440	 -0.00031922	  0.00019554	  7.27308518	  0.99902496	  0.99948525  0.49326856
++9695	 -6.27340448	 -0.00031918	  0.00019552	  7.27308529	  0.99902506	  0.99948530  0.49326867
++9696	 -6.27340455	 -0.00031915	  0.00019550	  7.27308540	  0.99902516	  0.99948535  0.49326859
++9697	 -6.27340463	 -0.00031912	  0.00019548	  7.27308552	  0.99902526	  0.99948541  0.49326854
++9698	 -6.27340471	 -0.00031908	  0.00019546	  7.27308563	  0.99902536	  0.99948546  0.49326869
++9699	 -6.27340479	 -0.00031905	  0.00019544	  7.27308574	  0.99902546	  0.99948551  0.49326853
++9700	 -6.27340487	 -0.00031902	  0.00019542	  7.27308585	  0.99902557	  0.99948556  0.49326880
++9701	 -6.27340495	 -0.00031899	  0.00019540	  7.27308596	  0.99902567	  0.99948562  0.49326872
++9702	 -6.27340503	 -0.00031895	  0.00019538	  7.27308607	  0.99902577	  0.99948567  0.49326861
++9703	 -6.27340511	 -0.00031892	  0.00019536	  7.27308619	  0.99902587	  0.99948572  0.49326878
++9704	 -6.27340518	 -0.00031889	  0.00019534	  7.27308630	  0.99902597	  0.99948578  0.49326876
++9705	 -6.27340526	 -0.00031885	  0.00019532	  7.27308641	  0.99902607	  0.99948583  0.49326873
++9706	 -6.27340534	 -0.00031882	  0.00019530	  7.27308652	  0.99902617	  0.99948588  0.49326869
++9707	 -6.27340542	 -0.00031879	  0.00019528	  7.27308663	  0.99902627	  0.99948594  0.49326868
++9708	 -6.27340550	 -0.00031876	  0.00019526	  7.27308674	  0.99902637	  0.99948599  0.49326886
++9709	 -6.27340558	 -0.00031872	  0.00019524	  7.27308685	  0.99902647	  0.99948604  0.49326868
++9710	 -6.27340566	 -0.00031869	  0.00019522	  7.27308697	  0.99902657	  0.99948609  0.49326883
++9711	 -6.27340573	 -0.00031866	  0.00019520	  7.27308708	  0.99902667	  0.99948615  0.49326876
++9712	 -6.27340581	 -0.00031862	  0.00019518	  7.27308719	  0.99902677	  0.99948620  0.49326874
++9713	 -6.27340589	 -0.00031859	  0.00019516	  7.27308730	  0.99902687	  0.99948625  0.49326882
++9714	 -6.27340597	 -0.00031856	  0.00019514	  7.27308741	  0.99902697	  0.99948631  0.49326866
++9715	 -6.27340605	 -0.00031853	  0.00019512	  7.27308752	  0.99902707	  0.99948636  0.49326860
++9716	 -6.27340613	 -0.00031849	  0.00019510	  7.27308763	  0.99902717	  0.99948641  0.49326865
++9717	 -6.27340621	 -0.00031846	  0.00019508	  7.27308775	  0.99902727	  0.99948646  0.49326872
++9718	 -6.27340628	 -0.00031843	  0.00019506	  7.27308786	  0.99902737	  0.99948652  0.49326863
++9719	 -6.27340636	 -0.00031839	  0.00019504	  7.27308797	  0.99902747	  0.99948657  0.49326869
++9720	 -6.27340644	 -0.00031836	  0.00019502	  7.27308808	  0.99902757	  0.99948662  0.49326888
++9721	 -6.27340652	 -0.00031833	  0.00019500	  7.27308819	  0.99902767	  0.99948668  0.49326895
++9722	 -6.27340660	 -0.00031830	  0.00019498	  7.27308830	  0.99902777	  0.99948673  0.49326876
++9723	 -6.27340668	 -0.00031826	  0.00019496	  7.27308841	  0.99902787	  0.99948678  0.49326889
++9724	 -6.27340675	 -0.00031823	  0.00019494	  7.27308852	  0.99902797	  0.99948683  0.49326878
++9725	 -6.27340683	 -0.00031820	  0.00019492	  7.27308863	  0.99902807	  0.99948689  0.49326887
++9726	 -6.27340691	 -0.00031817	  0.00019490	  7.27308875	  0.99902817	  0.99948694  0.49326916
++9727	 -6.27340699	 -0.00031813	  0.00019488	  7.27308886	  0.99902827	  0.99948699  0.49326908
++9728	 -6.27340707	 -0.00031810	  0.00019486	  7.27308897	  0.99902837	  0.99948704  0.49326893
++9729	 -6.27340715	 -0.00031807	  0.00019484	  7.27308908	  0.99902847	  0.99948710  0.49326890
++9730	 -6.27340722	 -0.00031803	  0.00019482	  7.27308919	  0.99902857	  0.99948715  0.49326887
++9731	 -6.27340730	 -0.00031800	  0.00019480	  7.27308930	  0.99902867	  0.99948720  0.49326878
++9732	 -6.27340738	 -0.00031797	  0.00019478	  7.27308941	  0.99902877	  0.99948726  0.49326894
++9733	 -6.27340746	 -0.00031794	  0.00019476	  7.27308952	  0.99902887	  0.99948731  0.49326894
++9734	 -6.27340754	 -0.00031790	  0.00019474	  7.27308963	  0.99902897	  0.99948736  0.49326908
++9735	 -6.27340761	 -0.00031787	  0.00019472	  7.27308974	  0.99902907	  0.99948741  0.49326876
++9736	 -6.27340769	 -0.00031784	  0.00019470	  7.27308985	  0.99902917	  0.99948747  0.49326912
++9737	 -6.27340777	 -0.00031781	  0.00019468	  7.27308996	  0.99902927	  0.99948752  0.49326904
++9738	 -6.27340785	 -0.00031777	  0.00019466	  7.27309008	  0.99902937	  0.99948757  0.49326901
++9739	 -6.27340793	 -0.00031774	  0.00019464	  7.27309019	  0.99902947	  0.99948762  0.49326930
++9740	 -6.27340801	 -0.00031771	  0.00019462	  7.27309030	  0.99902957	  0.99948768  0.49326907
++9741	 -6.27340808	 -0.00031768	  0.00019460	  7.27309041	  0.99902967	  0.99948773  0.49326924
++9742	 -6.27340816	 -0.00031764	  0.00019458	  7.27309052	  0.99902977	  0.99948778  0.49326904
++9743	 -6.27340824	 -0.00031761	  0.00019456	  7.27309063	  0.99902987	  0.99948783  0.49326893
++9744	 -6.27340832	 -0.00031758	  0.00019454	  7.27309074	  0.99902997	  0.99948789  0.49326909
++9745	 -6.27340840	 -0.00031755	  0.00019452	  7.27309085	  0.99903006	  0.99948794  0.49326930
++9746	 -6.27340847	 -0.00031751	  0.00019450	  7.27309096	  0.99903016	  0.99948799  0.49326922
++9747	 -6.27340855	 -0.00031748	  0.00019448	  7.27309107	  0.99903026	  0.99948804  0.49326913
++9748	 -6.27340863	 -0.00031745	  0.00019446	  7.27309118	  0.99903036	  0.99948810  0.49326905
++9749	 -6.27340871	 -0.00031742	  0.00019444	  7.27309129	  0.99903046	  0.99948815  0.49326923
++9750	 -6.27340879	 -0.00031738	  0.00019442	  7.27309140	  0.99903056	  0.99948820  0.49326938
++9751	 -6.27340886	 -0.00031735	  0.00019440	  7.27309151	  0.99903066	  0.99948825  0.49326909
++9752	 -6.27340894	 -0.00031732	  0.00019438	  7.27309162	  0.99903076	  0.99948831  0.49326912
++9753	 -6.27340902	 -0.00031728	  0.00019436	  7.27309173	  0.99903086	  0.99948836  0.49326920
++9754	 -6.27340910	 -0.00031725	  0.00019434	  7.27309184	  0.99903096	  0.99948841  0.49326917
++9755	 -6.27340917	 -0.00031722	  0.00019432	  7.27309196	  0.99903106	  0.99948846  0.49326921
++9756	 -6.27340925	 -0.00031719	  0.00019430	  7.27309207	  0.99903116	  0.99948852  0.49326919
++9757	 -6.27340933	 -0.00031715	  0.00019428	  7.27309218	  0.99903126	  0.99948857  0.49326928
++9758	 -6.27340941	 -0.00031712	  0.00019426	  7.27309229	  0.99903136	  0.99948862  0.49326918
++9759	 -6.27340949	 -0.00031709	  0.00019424	  7.27309240	  0.99903146	  0.99948867  0.49326958
++9760	 -6.27340956	 -0.00031706	  0.00019422	  7.27309251	  0.99903156	  0.99948873  0.49326936
++9761	 -6.27340964	 -0.00031702	  0.00019420	  7.27309262	  0.99903165	  0.99948878  0.49326927
++9762	 -6.27340972	 -0.00031699	  0.00019418	  7.27309273	  0.99903175	  0.99948883  0.49326942
++9763	 -6.27340980	 -0.00031696	  0.00019416	  7.27309284	  0.99903185	  0.99948888  0.49326912
++9764	 -6.27340987	 -0.00031693	  0.00019414	  7.27309295	  0.99903195	  0.99948894  0.49326924
++9765	 -6.27340995	 -0.00031690	  0.00019412	  7.27309306	  0.99903205	  0.99948899  0.49326951
++9766	 -6.27341003	 -0.00031686	  0.00019410	  7.27309317	  0.99903215	  0.99948904  0.49326942
++9767	 -6.27341011	 -0.00031683	  0.00019408	  7.27309328	  0.99903225	  0.99948909  0.49326925
++9768	 -6.27341019	 -0.00031680	  0.00019406	  7.27309339	  0.99903235	  0.99948914  0.49326927
++9769	 -6.27341026	 -0.00031677	  0.00019404	  7.27309350	  0.99903245	  0.99948920  0.49326936
++9770	 -6.27341034	 -0.00031673	  0.00019402	  7.27309361	  0.99903255	  0.99948925  0.49326944
++9771	 -6.27341042	 -0.00031670	  0.00019400	  7.27309372	  0.99903265	  0.99948930  0.49326949
++9772	 -6.27341050	 -0.00031667	  0.00019398	  7.27309383	  0.99903274	  0.99948935  0.49326915
++9773	 -6.27341057	 -0.00031664	  0.00019396	  7.27309394	  0.99903284	  0.99948941  0.49326929
++9774	 -6.27341065	 -0.00031660	  0.00019394	  7.27309405	  0.99903294	  0.99948946  0.49326955
++9775	 -6.27341073	 -0.00031657	  0.00019392	  7.27309416	  0.99903304	  0.99948951  0.49326921
++9776	 -6.27341081	 -0.00031654	  0.00019390	  7.27309427	  0.99903314	  0.99948956  0.49326941
++9777	 -6.27341088	 -0.00031651	  0.00019388	  7.27309438	  0.99903324	  0.99948961  0.49326954
++9778	 -6.27341096	 -0.00031647	  0.00019386	  7.27309449	  0.99903334	  0.99948967  0.49326935
++9779	 -6.27341104	 -0.00031644	  0.00019384	  7.27309460	  0.99903344	  0.99948972  0.49326969
++9780	 -6.27341112	 -0.00031641	  0.00019382	  7.27309471	  0.99903354	  0.99948977  0.49326971
++9781	 -6.27341119	 -0.00031638	  0.00019380	  7.27309482	  0.99903363	  0.99948982  0.49326945
++9782	 -6.27341127	 -0.00031634	  0.00019378	  7.27309493	  0.99903373	  0.99948988  0.49326964
++9783	 -6.27341135	 -0.00031631	  0.00019376	  7.27309504	  0.99903383	  0.99948993  0.49326955
++9784	 -6.27341143	 -0.00031628	  0.00019374	  7.27309515	  0.99903393	  0.99948998  0.49326931
++9785	 -6.27341150	 -0.00031625	  0.00019372	  7.27309526	  0.99903403	  0.99949003  0.49326939
++9786	 -6.27341158	 -0.00031622	  0.00019370	  7.27309537	  0.99903413	  0.99949008  0.49326953
++9787	 -6.27341166	 -0.00031618	  0.00019368	  7.27309547	  0.99903423	  0.99949014  0.49326974
++9788	 -6.27341173	 -0.00031615	  0.00019366	  7.27309558	  0.99903433	  0.99949019  0.49326980
++9789	 -6.27341181	 -0.00031612	  0.00019364	  7.27309569	  0.99903442	  0.99949024  0.49326965
++9790	 -6.27341189	 -0.00031609	  0.00019362	  7.27309580	  0.99903452	  0.99949029  0.49326969
++9791	 -6.27341197	 -0.00031605	  0.00019360	  7.27309591	  0.99903462	  0.99949034  0.49326954
++9792	 -6.27341204	 -0.00031602	  0.00019358	  7.27309602	  0.99903472	  0.99949040  0.49326953
++9793	 -6.27341212	 -0.00031599	  0.00019356	  7.27309613	  0.99903482	  0.99949045  0.49326986
++9794	 -6.27341220	 -0.00031596	  0.00019354	  7.27309624	  0.99903492	  0.99949050  0.49326990
++9795	 -6.27341228	 -0.00031592	  0.00019352	  7.27309635	  0.99903502	  0.99949055  0.49326950
++9796	 -6.27341235	 -0.00031589	  0.00019350	  7.27309646	  0.99903511	  0.99949060  0.49326968
++9797	 -6.27341243	 -0.00031586	  0.00019348	  7.27309657	  0.99903521	  0.99949066  0.49326946
++9798	 -6.27341251	 -0.00031583	  0.00019346	  7.27309668	  0.99903531	  0.99949071  0.49326958
++9799	 -6.27341258	 -0.00031580	  0.00019344	  7.27309679	  0.99903541	  0.99949076  0.49326990
++9800	 -6.27341266	 -0.00031576	  0.00019342	  7.27309690	  0.99903551	  0.99949081  0.49326972
++9801	 -6.27341274	 -0.00031573	  0.00019340	  7.27309701	  0.99903561	  0.99949086  0.49326980
++9802	 -6.27341282	 -0.00031570	  0.00019338	  7.27309712	  0.99903570	  0.99949092  0.49327001
++9803	 -6.27341289	 -0.00031567	  0.00019336	  7.27309723	  0.99903580	  0.99949097  0.49326985
++9804	 -6.27341297	 -0.00031563	  0.00019334	  7.27309734	  0.99903590	  0.99949102  0.49326983
++9805	 -6.27341305	 -0.00031560	  0.00019333	  7.27309744	  0.99903600	  0.99949107  0.49326985
++9806	 -6.27341312	 -0.00031557	  0.00019331	  7.27309755	  0.99903610	  0.99949112  0.49327005
++9807	 -6.27341320	 -0.00031554	  0.00019329	  7.27309766	  0.99903620	  0.99949118  0.49326985
++9808	 -6.27341328	 -0.00031551	  0.00019327	  7.27309777	  0.99903629	  0.99949123  0.49326980
++9809	 -6.27341336	 -0.00031547	  0.00019325	  7.27309788	  0.99903639	  0.99949128  0.49326990
++9810	 -6.27341343	 -0.00031544	  0.00019323	  7.27309799	  0.99903649	  0.99949133  0.49326985
++9811	 -6.27341351	 -0.00031541	  0.00019321	  7.27309810	  0.99903659	  0.99949138  0.49326999
++9812	 -6.27341359	 -0.00031538	  0.00019319	  7.27309821	  0.99903669	  0.99949144  0.49326989
++9813	 -6.27341366	 -0.00031535	  0.00019317	  7.27309832	  0.99903679	  0.99949149  0.49326987
++9814	 -6.27341374	 -0.00031531	  0.00019315	  7.27309843	  0.99903688	  0.99949154  0.49327012
++9815	 -6.27341382	 -0.00031528	  0.00019313	  7.27309854	  0.99903698	  0.99949159  0.49326994
++9816	 -6.27341389	 -0.00031525	  0.00019311	  7.27309864	  0.99903708	  0.99949164  0.49327001
++9817	 -6.27341397	 -0.00031522	  0.00019309	  7.27309875	  0.99903718	  0.99949169  0.49327008
++9818	 -6.27341405	 -0.00031519	  0.00019307	  7.27309886	  0.99903728	  0.99949175  0.49327008
++9819	 -6.27341412	 -0.00031515	  0.00019305	  7.27309897	  0.99903737	  0.99949180  0.49326970
++9820	 -6.27341420	 -0.00031512	  0.00019303	  7.27309908	  0.99903747	  0.99949185  0.49326989
++9821	 -6.27341428	 -0.00031509	  0.00019301	  7.27309919	  0.99903757	  0.99949190  0.49326992
++9822	 -6.27341435	 -0.00031506	  0.00019299	  7.27309930	  0.99903767	  0.99949195  0.49327000
++9823	 -6.27341443	 -0.00031502	  0.00019297	  7.27309941	  0.99903777	  0.99949200  0.49327006
++9824	 -6.27341451	 -0.00031499	  0.00019295	  7.27309952	  0.99903786	  0.99949206  0.49327023
++9825	 -6.27341459	 -0.00031496	  0.00019293	  7.27309962	  0.99903796	  0.99949211  0.49327002
++9826	 -6.27341466	 -0.00031493	  0.00019291	  7.27309973	  0.99903806	  0.99949216  0.49327004
++9827	 -6.27341474	 -0.00031490	  0.00019289	  7.27309984	  0.99903816	  0.99949221  0.49327010
++9828	 -6.27341482	 -0.00031486	  0.00019287	  7.27309995	  0.99903826	  0.99949226  0.49327000
++9829	 -6.27341489	 -0.00031483	  0.00019285	  7.27310006	  0.99903835	  0.99949231  0.49326994
++9830	 -6.27341497	 -0.00031480	  0.00019283	  7.27310017	  0.99903845	  0.99949237  0.49327008
++9831	 -6.27341505	 -0.00031477	  0.00019281	  7.27310028	  0.99903855	  0.99949242  0.49327002
++9832	 -6.27341512	 -0.00031474	  0.00019279	  7.27310039	  0.99903865	  0.99949247  0.49327015
++9833	 -6.27341520	 -0.00031470	  0.00019277	  7.27310049	  0.99903874	  0.99949252  0.49326998
++9834	 -6.27341528	 -0.00031467	  0.00019275	  7.27310060	  0.99903884	  0.99949257  0.49327030
++9835	 -6.27341535	 -0.00031464	  0.00019274	  7.27310071	  0.99903894	  0.99949262  0.49326995
++9836	 -6.27341543	 -0.00031461	  0.00019272	  7.27310082	  0.99903904	  0.99949268  0.49327013
++9837	 -6.27341550	 -0.00031458	  0.00019270	  7.27310093	  0.99903914	  0.99949273  0.49327030
++9838	 -6.27341558	 -0.00031454	  0.00019268	  7.27310104	  0.99903923	  0.99949278  0.49327016
++9839	 -6.27341566	 -0.00031451	  0.00019266	  7.27310115	  0.99903933	  0.99949283  0.49327003
++9840	 -6.27341573	 -0.00031448	  0.00019264	  7.27310125	  0.99903943	  0.99949288  0.49327020
++9841	 -6.27341581	 -0.00031445	  0.00019262	  7.27310136	  0.99903953	  0.99949293  0.49327016
++9842	 -6.27341589	 -0.00031442	  0.00019260	  7.27310147	  0.99903962	  0.99949298  0.49327038
++9843	 -6.27341596	 -0.00031438	  0.00019258	  7.27310158	  0.99903972	  0.99949304  0.49327020
++9844	 -6.27341604	 -0.00031435	  0.00019256	  7.27310169	  0.99903982	  0.99949309  0.49326989
++9845	 -6.27341612	 -0.00031432	  0.00019254	  7.27310180	  0.99903992	  0.99949314  0.49327033
++9846	 -6.27341619	 -0.00031429	  0.00019252	  7.27310190	  0.99904001	  0.99949319  0.49327021
++9847	 -6.27341627	 -0.00031426	  0.00019250	  7.27310201	  0.99904011	  0.99949324  0.49327047
++9848	 -6.27341635	 -0.00031423	  0.00019248	  7.27310212	  0.99904021	  0.99949329  0.49327024
++9849	 -6.27341642	 -0.00031419	  0.00019246	  7.27310223	  0.99904031	  0.99949335  0.49327034
++9850	 -6.27341650	 -0.00031416	  0.00019244	  7.27310234	  0.99904040	  0.99949340  0.49327024
++9851	 -6.27341658	 -0.00031413	  0.00019242	  7.27310245	  0.99904050	  0.99949345  0.49327049
++9852	 -6.27341665	 -0.00031410	  0.00019240	  7.27310255	  0.99904060	  0.99949350  0.49327029
++9853	 -6.27341673	 -0.00031407	  0.00019238	  7.27310266	  0.99904070	  0.99949355  0.49327027
++9854	 -6.27341680	 -0.00031403	  0.00019236	  7.27310277	  0.99904079	  0.99949360  0.49327052
++9855	 -6.27341688	 -0.00031400	  0.00019234	  7.27310288	  0.99904089	  0.99949365  0.49327062
++9856	 -6.27341696	 -0.00031397	  0.00019232	  7.27310299	  0.99904099	  0.99949370  0.49327051
++9857	 -6.27341703	 -0.00031394	  0.00019231	  7.27310309	  0.99904108	  0.99949376  0.49327035
++9858	 -6.27341711	 -0.00031391	  0.00019229	  7.27310320	  0.99904118	  0.99949381  0.49327029
++9859	 -6.27341719	 -0.00031387	  0.00019227	  7.27310331	  0.99904128	  0.99949386  0.49327040
++9860	 -6.27341726	 -0.00031384	  0.00019225	  7.27310342	  0.99904138	  0.99949391  0.49327054
++9861	 -6.27341734	 -0.00031381	  0.00019223	  7.27310353	  0.99904147	  0.99949396  0.49327057
++9862	 -6.27341741	 -0.00031378	  0.00019221	  7.27310363	  0.99904157	  0.99949401  0.49327065
++9863	 -6.27341749	 -0.00031375	  0.00019219	  7.27310374	  0.99904167	  0.99949406  0.49327055
++9864	 -6.27341757	 -0.00031372	  0.00019217	  7.27310385	  0.99904177	  0.99949412  0.49327044
++9865	 -6.27341764	 -0.00031368	  0.00019215	  7.27310396	  0.99904186	  0.99949417  0.49327060
++9866	 -6.27341772	 -0.00031365	  0.00019213	  7.27310407	  0.99904196	  0.99949422  0.49327062
++9867	 -6.27341779	 -0.00031362	  0.00019211	  7.27310417	  0.99904206	  0.99949427  0.49327057
++9868	 -6.27341787	 -0.00031359	  0.00019209	  7.27310428	  0.99904215	  0.99949432  0.49327068
++9869	 -6.27341795	 -0.00031356	  0.00019207	  7.27310439	  0.99904225	  0.99949437  0.49327087
++9870	 -6.27341802	 -0.00031353	  0.00019205	  7.27310450	  0.99904235	  0.99949442  0.49327065
++9871	 -6.27341810	 -0.00031349	  0.00019203	  7.27310461	  0.99904244	  0.99949447  0.49327040
++9872	 -6.27341817	 -0.00031346	  0.00019201	  7.27310471	  0.99904254	  0.99949453  0.49327056
++9873	 -6.27341825	 -0.00031343	  0.00019199	  7.27310482	  0.99904264	  0.99949458  0.49327057
++9874	 -6.27341833	 -0.00031340	  0.00019197	  7.27310493	  0.99904274	  0.99949463  0.49327059
++9875	 -6.27341840	 -0.00031337	  0.00019195	  7.27310504	  0.99904283	  0.99949468  0.49327075
++9876	 -6.27341848	 -0.00031333	  0.00019194	  7.27310514	  0.99904293	  0.99949473  0.49327058
++9877	 -6.27341855	 -0.00031330	  0.00019192	  7.27310525	  0.99904303	  0.99949478  0.49327073
++9878	 -6.27341863	 -0.00031327	  0.00019190	  7.27310536	  0.99904312	  0.99949483  0.49327054
++9879	 -6.27341871	 -0.00031324	  0.00019188	  7.27310547	  0.99904322	  0.99949488  0.49327048
++9880	 -6.27341878	 -0.00031321	  0.00019186	  7.27310557	  0.99904332	  0.99949493  0.49327086
++9881	 -6.27341886	 -0.00031318	  0.00019184	  7.27310568	  0.99904341	  0.99949499  0.49327056
++9882	 -6.27341893	 -0.00031314	  0.00019182	  7.27310579	  0.99904351	  0.99949504  0.49327071
++9883	 -6.27341901	 -0.00031311	  0.00019180	  7.27310590	  0.99904361	  0.99949509  0.49327045
++9884	 -6.27341909	 -0.00031308	  0.00019178	  7.27310600	  0.99904370	  0.99949514  0.49327067
++9885	 -6.27341916	 -0.00031305	  0.00019176	  7.27310611	  0.99904380	  0.99949519  0.49327067
++9886	 -6.27341924	 -0.00031302	  0.00019174	  7.27310622	  0.99904390	  0.99949524  0.49327074
++9887	 -6.27341931	 -0.00031299	  0.00019172	  7.27310633	  0.99904399	  0.99949529  0.49327107
++9888	 -6.27341939	 -0.00031295	  0.00019170	  7.27310643	  0.99904409	  0.99949534  0.49327064
++9889	 -6.27341946	 -0.00031292	  0.00019168	  7.27310654	  0.99904419	  0.99949539  0.49327063
++9890	 -6.27341954	 -0.00031289	  0.00019166	  7.27310665	  0.99904428	  0.99949545  0.49327050
++9891	 -6.27341962	 -0.00031286	  0.00019164	  7.27310676	  0.99904438	  0.99949550  0.49327069
++9892	 -6.27341969	 -0.00031283	  0.00019162	  7.27310686	  0.99904448	  0.99949555  0.49327081
++9893	 -6.27341977	 -0.00031280	  0.00019161	  7.27310697	  0.99904457	  0.99949560  0.49327077
++9894	 -6.27341984	 -0.00031276	  0.00019159	  7.27310708	  0.99904467	  0.99949565  0.49327081
++9895	 -6.27341992	 -0.00031273	  0.00019157	  7.27310719	  0.99904477	  0.99949570  0.49327088
++9896	 -6.27341999	 -0.00031270	  0.00019155	  7.27310729	  0.99904486	  0.99949575  0.49327082
++9897	 -6.27342007	 -0.00031267	  0.00019153	  7.27310740	  0.99904496	  0.99949580  0.49327067
++9898	 -6.27342015	 -0.00031264	  0.00019151	  7.27310751	  0.99904506	  0.99949585  0.49327061
++9899	 -6.27342022	 -0.00031261	  0.00019149	  7.27310761	  0.99904515	  0.99949590  0.49327079
++9900	 -6.27342030	 -0.00031258	  0.00019147	  7.27310772	  0.99904525	  0.99949595  0.49327103
++9901	 -6.27342037	 -0.00031254	  0.00019145	  7.27310783	  0.99904535	  0.99949601  0.49327107
++9902	 -6.27342045	 -0.00031251	  0.00019143	  7.27310794	  0.99904544	  0.99949606  0.49327084
++9903	 -6.27342052	 -0.00031248	  0.00019141	  7.27310804	  0.99904554	  0.99949611  0.49327096
++9904	 -6.27342060	 -0.00031245	  0.00019139	  7.27310815	  0.99904563	  0.99949616  0.49327062
++9905	 -6.27342067	 -0.00031242	  0.00019137	  7.27310826	  0.99904573	  0.99949621  0.49327088
++9906	 -6.27342075	 -0.00031239	  0.00019135	  7.27310836	  0.99904583	  0.99949626  0.49327094
++9907	 -6.27342083	 -0.00031235	  0.00019133	  7.27310847	  0.99904592	  0.99949631  0.49327095
++9908	 -6.27342090	 -0.00031232	  0.00019132	  7.27310858	  0.99904602	  0.99949636  0.49327111
++9909	 -6.27342098	 -0.00031229	  0.00019130	  7.27310869	  0.99904612	  0.99949641  0.49327066
++9910	 -6.27342105	 -0.00031226	  0.00019128	  7.27310879	  0.99904621	  0.99949646  0.49327112
++9911	 -6.27342113	 -0.00031223	  0.00019126	  7.27310890	  0.99904631	  0.99949651  0.49327094
++9912	 -6.27342120	 -0.00031220	  0.00019124	  7.27310901	  0.99904641	  0.99949656  0.49327097
++9913	 -6.27342128	 -0.00031217	  0.00019122	  7.27310911	  0.99904650	  0.99949662  0.49327094
++9914	 -6.27342135	 -0.00031213	  0.00019120	  7.27310922	  0.99904660	  0.99949667  0.49327120
++9915	 -6.27342143	 -0.00031210	  0.00019118	  7.27310933	  0.99904669	  0.99949672  0.49327123
++9916	 -6.27342150	 -0.00031207	  0.00019116	  7.27310943	  0.99904679	  0.99949677  0.49327124
++9917	 -6.27342158	 -0.00031204	  0.00019114	  7.27310954	  0.99904689	  0.99949682  0.49327089
++9918	 -6.27342166	 -0.00031201	  0.00019112	  7.27310965	  0.99904698	  0.99949687  0.49327096
++9919	 -6.27342173	 -0.00031198	  0.00019110	  7.27310975	  0.99904708	  0.99949692  0.49327093
++9920	 -6.27342181	 -0.00031195	  0.00019108	  7.27310986	  0.99904717	  0.99949697  0.49327128
++9921	 -6.27342188	 -0.00031191	  0.00019106	  7.27310997	  0.99904727	  0.99949702  0.49327122
++9922	 -6.27342196	 -0.00031188	  0.00019105	  7.27311007	  0.99904737	  0.99949707  0.49327128
++9923	 -6.27342203	 -0.00031185	  0.00019103	  7.27311018	  0.99904746	  0.99949712  0.49327113
++9924	 -6.27342211	 -0.00031182	  0.00019101	  7.27311029	  0.99904756	  0.99949717  0.49327121
++9925	 -6.27342218	 -0.00031179	  0.00019099	  7.27311039	  0.99904765	  0.99949722  0.49327115
++9926	 -6.27342226	 -0.00031176	  0.00019097	  7.27311050	  0.99904775	  0.99949727  0.49327114
++9927	 -6.27342233	 -0.00031173	  0.00019095	  7.27311061	  0.99904785	  0.99949733  0.49327102
++9928	 -6.27342241	 -0.00031169	  0.00019093	  7.27311071	  0.99904794	  0.99949738  0.49327120
++9929	 -6.27342248	 -0.00031166	  0.00019091	  7.27311082	  0.99904804	  0.99949743  0.49327130
++9930	 -6.27342256	 -0.00031163	  0.00019089	  7.27311093	  0.99904813	  0.99949748  0.49327109
++9931	 -6.27342263	 -0.00031160	  0.00019087	  7.27311103	  0.99904823	  0.99949753  0.49327132
++9932	 -6.27342271	 -0.00031157	  0.00019085	  7.27311114	  0.99904833	  0.99949758  0.49327146
++9933	 -6.27342278	 -0.00031154	  0.00019083	  7.27311125	  0.99904842	  0.99949763  0.49327090
++9934	 -6.27342286	 -0.00031151	  0.00019081	  7.27311135	  0.99904852	  0.99949768  0.49327123
++9935	 -6.27342293	 -0.00031147	  0.00019080	  7.27311146	  0.99904861	  0.99949773  0.49327134
++9936	 -6.27342301	 -0.00031144	  0.00019078	  7.27311156	  0.99904871	  0.99949778  0.49327133
++9937	 -6.27342308	 -0.00031141	  0.00019076	  7.27311167	  0.99904880	  0.99949783  0.49327117
++9938	 -6.27342316	 -0.00031138	  0.00019074	  7.27311178	  0.99904890	  0.99949788  0.49327124
++9939	 -6.27342323	 -0.00031135	  0.00019072	  7.27311188	  0.99904900	  0.99949793  0.49327116
++9940	 -6.27342331	 -0.00031132	  0.00019070	  7.27311199	  0.99904909	  0.99949798  0.49327125
++9941	 -6.27342338	 -0.00031129	  0.00019068	  7.27311210	  0.99904919	  0.99949803  0.49327132
++9942	 -6.27342346	 -0.00031126	  0.00019066	  7.27311220	  0.99904928	  0.99949808  0.49327161
++9943	 -6.27342353	 -0.00031122	  0.00019064	  7.27311231	  0.99904938	  0.99949813  0.49327137
++9944	 -6.27342361	 -0.00031119	  0.00019062	  7.27311242	  0.99904947	  0.99949818  0.49327141
++9945	 -6.27342368	 -0.00031116	  0.00019060	  7.27311252	  0.99904957	  0.99949824  0.49327151
++9946	 -6.27342376	 -0.00031113	  0.00019058	  7.27311263	  0.99904966	  0.99949829  0.49327147
++9947	 -6.27342383	 -0.00031110	  0.00019057	  7.27311273	  0.99904976	  0.99949834  0.49327157
++9948	 -6.27342391	 -0.00031107	  0.00019055	  7.27311284	  0.99904986	  0.99949839  0.49327158
++9949	 -6.27342398	 -0.00031104	  0.00019053	  7.27311295	  0.99904995	  0.99949844  0.49327140
++9950	 -6.27342406	 -0.00031101	  0.00019051	  7.27311305	  0.99905005	  0.99949849  0.49327149
++9951	 -6.27342413	 -0.00031097	  0.00019049	  7.27311316	  0.99905014	  0.99949854  0.49327130
++9952	 -6.27342421	 -0.00031094	  0.00019047	  7.27311326	  0.99905024	  0.99949859  0.49327138
++9953	 -6.27342428	 -0.00031091	  0.00019045	  7.27311337	  0.99905033	  0.99949864  0.49327154
++9954	 -6.27342436	 -0.00031088	  0.00019043	  7.27311348	  0.99905043	  0.99949869  0.49327144
++9955	 -6.27342443	 -0.00031085	  0.00019041	  7.27311358	  0.99905052	  0.99949874  0.49327149
++9956	 -6.27342451	 -0.00031082	  0.00019039	  7.27311369	  0.99905062	  0.99949879  0.49327160
++9957	 -6.27342458	 -0.00031079	  0.00019037	  7.27311379	  0.99905071	  0.99949884  0.49327162
++9958	 -6.27342466	 -0.00031076	  0.00019035	  7.27311390	  0.99905081	  0.99949889  0.49327146
++9959	 -6.27342473	 -0.00031072	  0.00019034	  7.27311401	  0.99905091	  0.99949894  0.49327178
++9960	 -6.27342480	 -0.00031069	  0.00019032	  7.27311411	  0.99905100	  0.99949899  0.49327156
++9961	 -6.27342488	 -0.00031066	  0.00019030	  7.27311422	  0.99905110	  0.99949904  0.49327151
++9962	 -6.27342495	 -0.00031063	  0.00019028	  7.27311432	  0.99905119	  0.99949909  0.49327157
++9963	 -6.27342503	 -0.00031060	  0.00019026	  7.27311443	  0.99905129	  0.99949914  0.49327162
++9964	 -6.27342510	 -0.00031057	  0.00019024	  7.27311453	  0.99905138	  0.99949919  0.49327180
++9965	 -6.27342518	 -0.00031054	  0.00019022	  7.27311464	  0.99905148	  0.99949924  0.49327153
++9966	 -6.27342525	 -0.00031051	  0.00019020	  7.27311475	  0.99905157	  0.99949929  0.49327170
++9967	 -6.27342533	 -0.00031047	  0.00019018	  7.27311485	  0.99905167	  0.99949934  0.49327164
++9968	 -6.27342540	 -0.00031044	  0.00019016	  7.27311496	  0.99905176	  0.99949939  0.49327177
++9969	 -6.27342548	 -0.00031041	  0.00019014	  7.27311506	  0.99905186	  0.99949944  0.49327171
++9970	 -6.27342555	 -0.00031038	  0.00019013	  7.27311517	  0.99905195	  0.99949949  0.49327163
++9971	 -6.27342563	 -0.00031035	  0.00019011	  7.27311527	  0.99905205	  0.99949954  0.49327148
++9972	 -6.27342570	 -0.00031032	  0.00019009	  7.27311538	  0.99905214	  0.99949959  0.49327177
++9973	 -6.27342577	 -0.00031029	  0.00019007	  7.27311549	  0.99905224	  0.99949964  0.49327190
++9974	 -6.27342585	 -0.00031026	  0.00019005	  7.27311559	  0.99905233	  0.99949969  0.49327174
++9975	 -6.27342592	 -0.00031023	  0.00019003	  7.27311570	  0.99905243	  0.99949974  0.49327179
++9976	 -6.27342600	 -0.00031019	  0.00019001	  7.27311580	  0.99905252	  0.99949979  0.49327165
++9977	 -6.27342607	 -0.00031016	  0.00018999	  7.27311591	  0.99905262	  0.99949984  0.49327180
++9978	 -6.27342615	 -0.00031013	  0.00018997	  7.27311601	  0.99905271	  0.99949989  0.49327176
++9979	 -6.27342622	 -0.00031010	  0.00018995	  7.27311612	  0.99905281	  0.99949994  0.49327155
++9980	 -6.27342630	 -0.00031007	  0.00018993	  7.27311622	  0.99905290	  0.99949999  0.49327169
++9981	 -6.27342637	 -0.00031004	  0.00018992	  7.27311633	  0.99905300	  0.99950004  0.49327184
++9982	 -6.27342644	 -0.00031001	  0.00018990	  7.27311644	  0.99905309	  0.99950009  0.49327184
++9983	 -6.27342652	 -0.00030998	  0.00018988	  7.27311654	  0.99905319	  0.99950014  0.49327176
++9984	 -6.27342659	 -0.00030995	  0.00018986	  7.27311665	  0.99905328	  0.99950019  0.49327184
++9985	 -6.27342667	 -0.00030992	  0.00018984	  7.27311675	  0.99905338	  0.99950024  0.49327166
++9986	 -6.27342674	 -0.00030988	  0.00018982	  7.27311686	  0.99905347	  0.99950029  0.49327222
++9987	 -6.27342682	 -0.00030985	  0.00018980	  7.27311696	  0.99905357	  0.99950034  0.49327211
++9988	 -6.27342689	 -0.00030982	  0.00018978	  7.27311707	  0.99905366	  0.99950039  0.49327202
++9989	 -6.27342696	 -0.00030979	  0.00018976	  7.27311717	  0.99905376	  0.99950044  0.49327179
++9990	 -6.27342704	 -0.00030976	  0.00018974	  7.27311728	  0.99905385	  0.99950049  0.49327176
++9991	 -6.27342711	 -0.00030973	  0.00018973	  7.27311738	  0.99905394	  0.99950054  0.49327202
++9992	 -6.27342719	 -0.00030970	  0.00018971	  7.27311749	  0.99905404	  0.99950059  0.49327184
++9993	 -6.27342726	 -0.00030967	  0.00018969	  7.27311759	  0.99905413	  0.99950064  0.49327198
++9994	 -6.27342733	 -0.00030964	  0.00018967	  7.27311770	  0.99905423	  0.99950069  0.49327205
++9995	 -6.27342741	 -0.00030961	  0.00018965	  7.27311780	  0.99905432	  0.99950074  0.49327200
++9996	 -6.27342748	 -0.00030957	  0.00018963	  7.27311791	  0.99905442	  0.99950079  0.49327197
++9997	 -6.27342756	 -0.00030954	  0.00018961	  7.27311801	  0.99905451	  0.99950084  0.49327183
++9998	 -6.27342763	 -0.00030951	  0.00018959	  7.27311812	  0.99905461	  0.99950089  0.49327208
++9999	 -6.27342771	 -0.00030948	  0.00018957	  7.27311822	  0.99905470	  0.99950094  0.49327205
++10000	 -6.27342778	 -0.00030945	  0.00018956	  7.27311833	  0.99905480	  0.99950099  0.49327194
Index: /issm/oecreview/Archive/19101-20495/ISSM-20068-20069.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20068-20069.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20068-20069.diff	(revision 20498)
@@ -0,0 +1,105 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20069)
+@@ -0,0 +1,94 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=1
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						boost         install.sh                
++						dakota        install-6.2-linux64.sh  
++						chaco         install.sh 
++						m1qn3         install.sh          
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=10
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=5
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++PYTHON_NROPTIONS="--exclude 119 243 514 701 702 435"
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross_se
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20069-20070.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20069-20070.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20069-20070.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/src/m/plot/plot_googlemaps.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_googlemaps.m	(revision 20069)
++++ ../trunk-jpl/src/m/plot/plot_googlemaps.m	(revision 20070)
+@@ -24,20 +24,26 @@
+ 	%Get xlim and ylim (used to extract radar image)
+ 	xlim=getfieldvalue(options,'xlim',[min(x) max(x)]);
+ 	ylim=getfieldvalue(options,'ylim',[min(y) max(y)]);
+-	if md.mesh.epsg==3413,
++	if md.mesh.epsg==3413, %UPS Greenland
+ 		[latlist lonlist]= xy2ll(...
+ 			[linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
+ 			[linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
+ 			+1,45,70);
+-	elseif md.mesh.epsg==3031,
++	elseif md.mesh.epsg==3031, %UPS Antarctica
+ 		[latlist lonlist]= xy2ll(...
+ 			[linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
+ 			[linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
+ 			-1,0,71);
+-	else
++	elseif md.mesh.epsg==26906, %UTM 6V Columbia Glacier Alaska
++		[latlist lonlist]= utm2ll(...
++			[linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
++			[linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
++			6);
++	elseif numel(md.mesh.lat)==numel(md.mesh.x),
+ 		latlist = md.mesh.lat; %That might work?
+ 		lonlist = md.mesh.long;
+-		error('EPSG code not supported yet');
++	else
++		error('EPSG code not supported yet, and no lat long found in md.mesh');
+ 	end
+ 
+ 	%Image corners in lat/long
+Index: ../trunk-jpl/src/m/plot/googlemaps.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/googlemaps.m	(revision 20069)
++++ ../trunk-jpl/src/m/plot/googlemaps.m	(revision 20070)
+@@ -39,8 +39,16 @@
+ 			[linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
+ 			[linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
+ 			-1,0,71);
++	elseif md.mesh.epsg==26906, %UTM 6V Columbia Glacier Alaska
++		[latlist lonlist]= utm2ll(...
++			[linspace(xlim(1),xlim(2),100) linspace(xlim(2),xlim(2),100) linspace(xlim(2),xlim(1),100) linspace(xlim(1),xlim(1),100)],...
++			[linspace(ylim(1),ylim(1),100) linspace(ylim(1),ylim(2),100) linspace(ylim(2),ylim(2),100) linspace(ylim(2),ylim(1),100)],...
++			6);
++	elseif numel(md.mesh.lat)==numel(md.mesh.x),
++		latlist = md.mesh.lat; %That might work?
++		lonlist = md.mesh.long;
+ 	else
+-		error('EPSG code not supported yet');
++		error('EPSG code not supported yet, and no lat long found in md.mesh');
+ 	end
+ 
+ 	%Image corners in lat/long
Index: /issm/oecreview/Archive/19101-20495/ISSM-20070-20071.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20070-20071.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20070-20071.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/externalpackages/gshhg/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gshhg/install.sh	(revision 20070)
++++ ../trunk-jpl/externalpackages/gshhg/install.sh	(revision 20071)
+@@ -1,16 +1,16 @@
+ #!/bin/bash
+ set -eu
+ 
+-rm -rf gssh-gmt-2.3.3.tar.gz  src install
++rm -rf gssh-gmt-2.3.4.tar.gz  src install
+ 
+ #get gssh database from noaa's website:  http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html
+-curl http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/gshhg-gmt-2.3.3.tar.gz > gshhg-gmt-2.3.3.tar.gz
++#curl http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/gshhg-gmt-2.3.4.tar.gz > gshhg-gmt-2.3.4.tar.gz
+ 
+ #Download from ISSM server
+-#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/gshhg-gmt-2.3.3.tar.gz' 'gshhg-gmt-2.3.3.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/gshhg-gmt-2.3.4.tar.gz' 'gshhg-gmt-2.3.4.tar.gz'
+ 
+ #untar: 
+-tar -zxvf gshhg-gmt-2.3.3.tar.gz 
++tar -zxvf gshhg-gmt-2.3.4.tar.gz 
+ 
+ #move: 
+-mv gshhg-gmt-2.3.3 install
++mv gshhg-gmt-2.3.4 install
Index: /issm/oecreview/Archive/19101-20495/ISSM-20071-20072.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20071-20072.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20071-20072.diff	(revision 20498)
@@ -0,0 +1,62 @@
+Index: ../trunk-jpl/test/NightlyRun/runme.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.m	(revision 20071)
++++ ../trunk-jpl/test/NightlyRun/runme.m	(revision 20072)
+@@ -18,7 +18,7 @@
+ %                      'thermal': validation of thermal tests
+ %                      'mesh'   : validation of mesh tests
+ %                      'adolc'   : validation of adolc tests
+-%                      'gia'   : validation of gia tests
++%                      'slr'   : validation of slr tests
+ %                      'qmu'   : validation of dakota tests
+ %                      ...
+ %      'procedure'     'check' :   run the test (default)
+@@ -48,7 +48,7 @@
+ %Process options
+ %GET benchmark {{{
+ benchmark=getfieldvalue(options,'benchmark','nightly');
+-if ~ismember(benchmark,{'all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','gia','qmu'})
++if ~ismember(benchmark,{'all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','slr','qmu'})
+ 	disp('runme warning: benchmark not supported, defaulting to test ''nightly''')
+ 	benchmark='nightly';
+ end
+@@ -116,7 +116,7 @@
+ 	test_ids=intersect(test_ids,[1501:1502]);
+ elseif strcmpi(benchmark,'referential'),
+ 	test_ids=intersect(test_ids,[1601:1602]);
+-elseif strcmpi(benchmark,'gia'),
++elseif strcmpi(benchmark,'slr'),
+ 	test_ids=intersect(test_ids,[2001:2100]);
+ elseif strcmpi(benchmark,'adolc'),
+ 	test_ids=intersect(test_ids,[3001:3200]);
+Index: ../trunk-jpl/test/NightlyRun/runme.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.py	(revision 20071)
++++ ../trunk-jpl/test/NightlyRun/runme.py	(revision 20072)
+@@ -27,7 +27,7 @@
+ 	                       'thermal': validation of thermal tests
+ 	                       'mesh'   : validation of mesh tests
+ 						   'adolc'   : validation of adolc tests
+-                           'gia'   : validation of gia tests
++                           'slr'   : validation of slr tests
+ 
+ 	                       ...
+ 	       'procedure'     'check' : run the test (default)
+@@ -52,7 +52,7 @@
+ 
+ 	#Process options
+ 	#GET benchmark {{{
+-	if not ismember(benchmark,['all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','gia']):
++	if not ismember(benchmark,['all','nightly','ismip','eismint','thermal','mesh','validation','tranforcing','adolc','slr']):
+ 		print "runme warning: benchmark '%s' not supported, defaulting to test 'nightly'." % benchmark
+ 		benchmark='nightly'
+ 	# }}}
+@@ -115,7 +115,7 @@
+ 		test_ids=test_ids.intersection(set(range(1501,1503)))
+ 	elif strcmpi(benchmark,'referential'):
+ 		test_ids=test_ids.intersection(set(range(1601,1603)))
+-	elif strcmpi(benchmark,'gia'):
++	elif strcmpi(benchmark,'slr'):
+ 		test_ids=test_ids.intersection(set(range(2001,2100)))
+ 	elif strcmpi(benchmark,'adolc'):
+ 		test_ids=test_ids.intersection(set(range(3001,3200)))
Index: /issm/oecreview/Archive/19101-20495/ISSM-20072-20073.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20072-20073.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20072-20073.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20072)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20073)
+@@ -14,13 +14,8 @@
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=/usr\
+-	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+ 	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-numthreads=4 \
+ 	--enable-development \
+ 	--enable-debugging '
+@@ -30,7 +25,7 @@
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+-PYTHON_TEST=1
++PYTHON_TEST=0
+ 
+ #execution path used for parallel runs
+ EXECUTION_PATH=$ISSM_DIR/execution
+@@ -59,13 +54,12 @@
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+-						boost         install.sh                
+-						dakota        install-6.2-linux64.sh  
+-						chaco         install.sh 
+-						m1qn3         install.sh          
++						gmt           install.sh
++						gshhg         install.sh
++						netcdf        install.sh
++						gdal          install-1.10-linux64.sh
+ 						shell2junit   install.sh"
+ 
+-
+ #---------------------#
+ # 4: ISSM Compilation #
+ #---------------------#
+@@ -90,5 +84,5 @@
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-PYTHON_NROPTIONS="--exclude 119 243 514 701 702 435"
+-MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
++PYTHON_NROPTIONS=""
++MATLAB_NROPTIONS="'benchmark','slr'"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20073-20074.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20073-20074.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20073-20074.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20073)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20074)
+@@ -29,11 +29,11 @@
+ 		function self = setdefaultparameters(self) % {{{
+ 		
+ 		%Convergence criterion: absolute, relative and residual
+-		self.reltol=0.01; %1 percent
++		self.reltol=NaN; %default
+ 		self.abstol=0.001; %1 mm of sea level rise
+ 
+ 		%maximum of non-linear iterations.
+-		self.maxiter=5;
++		self.maxiter=10;
+ 
+ 		%computational flags: 
+ 		self.rigid=1;
+@@ -72,7 +72,7 @@
+ 			disp(sprintf('   slr parameters:'));
+ 
+ 			fielddisplay(self,'deltathickness','thickness change (main loading of the slr solution core [m]');
+-			fielddisplay(self,'reltol','sea level rise relative convergence criterion, NaN: not applied');
++			fielddisplay(self,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)');
+ 			fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
+ 			fielddisplay(self,'maxiter','maximum number of nonlinear iterations');
+ 			fielddisplay(self,'love_h','love load number for radial displacement');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20074-20075.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20074-20075.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20074-20075.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/externalpackages/geocode/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/geocode/install.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/geocode/install.sh	(revision 20075)
+@@ -0,0 +1,2 @@
++#/bin/bash
++unzip geoCode.zip
+Index: ../trunk-jpl/externalpackages/geocode/geoCode.zip
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/externalpackages/geocode/geoCode.zip
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20075-20076.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20075-20076.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20075-20076.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/geometry/locationtonode.m
+===================================================================
+--- ../trunk-jpl/src/m/geometry/locationtonode.m	(revision 0)
++++ ../trunk-jpl/src/m/geometry/locationtonode.m	(revision 20076)
+@@ -0,0 +1,11 @@
++function node=locationtonode(md,location)
++%LOCATIONTONODE - find, given a string location (ex: 'LA', 'new york', the nearest node on a mesh3dsurface.
++%
++%   Usage:
++%      node=locationnode(md,'LA');
++%
++%   See also: geoCode (in externalpackages), find_point
++
++coords=geoCode(location,'osm');  
++latny=coords(1); longny=coords(2);
++node=find_point(md.mesh.lat,md.mesh.long,latny,longny);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20076-20077.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20076-20077.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20076-20077.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20076)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20077)
+@@ -75,10 +75,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=10
++NUMCPUS_INSTALL=5
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=5
++NUMCPUS_RUN=4
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20077-20078.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20077-20078.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20077-20078.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20077)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20078)
+@@ -1601,7 +1601,7 @@
+ 	for(int i=0;i<numvertices;i++){
+ 		y=xyz_list[i*3+0]-plumex;
+ 		z=xyz_list[i*3+1]-plumey;
+-		x=(a+topplumedepth+crustthickness);
++		x=-(a+topplumedepth+crustthickness);
+ 		lambda=(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))/2;
+ 		dAlambda=(-8*a*pow(c,2)*x*(-2*pow(a,2)+2*pow(c,2)+sqrt(2)*sqrt((a-c)*(a+c))*sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))*(pow(a,4)*(pow(y,2)+pow(z,2))+pow(c,4)*(pow(y,2)+pow(z,2))+pow(pow(x,2)+pow(y,2)+pow(z,2),2)*(pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))+pow(c,2)*(pow(x,4)-pow(x,2)*(pow(y,2)+pow(z,2))-(pow(y,2)+pow(z,2))*(2*pow(y,2)+2*pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))+pow(a,2)*(-pow(x,4)+pow(x,2)*(pow(y,2)+pow(z,2))+(pow(y,2)+pow(z,2))*(-2*pow(c,2)+2*(pow(y,2)+pow(z,2))+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))))/(sqrt((a-c)*(a+c))*sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))*pow(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))),3.5)*pow(-(sqrt(2)*sqrt((a-c)*(a+c)))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))),2)*(sqrt(2)*sqrt((a-c)*(a+c))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))));
+ 		eprime=pow((a*a-plumeradius*plumeradius)/(a*a+lambda),1./2.);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20078-20079.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20078-20079.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20078-20079.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive342.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20079-20080.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20079-20080.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20079-20080.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/organizer.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.py	(revision 20079)
++++ ../trunk-jpl/src/m/classes/organizer.py	(revision 20080)
+@@ -163,7 +163,7 @@
+ 			raise RuntimeError("Cannot save model because organizer (org) is not up to date!")
+ 
+ 		if (name=='default'):
+-			name=os.path.join(self.repository,self.prefix+'step#'+self.steps[self._currentstep-1]['string']+'.python')
++			name=os.path.join(self.repository,self.prefix+'.step#'+self.steps[self._currentstep-1]['string']+'.python')
+                 else:
+                     name=os.path.join(self.repository,name)
+ 		print "saving model as: '%s'" % name
Index: /issm/oecreview/Archive/19101-20495/ISSM-20080-20081.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20080-20081.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20080-20081.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20080)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20081)
+@@ -1596,8 +1596,7 @@
+ 	c=plumeradius;
+ 	a=(bottomplumedepth-topplumedepth)/2.;
+ 	e=pow(a*a-c*c,1./2.)/a;
+-	A0=(1-e*e)/(e*e*e)*(1/2*log((1+e)/(1-e))-e);
+-	middleplumedepth=-topplumedepth-crustthickness-a;
++	A0=(1-pow(e,2.))/pow(e,3.)*(1./2.*log((1+e)/(1-e))-e);
+ 	for(int i=0;i<numvertices;i++){
+ 		y=xyz_list[i*3+0]-plumex;
+ 		z=xyz_list[i*3+1]-plumey;
+@@ -1606,7 +1605,7 @@
+ 		dAlambda=(-8*a*pow(c,2)*x*(-2*pow(a,2)+2*pow(c,2)+sqrt(2)*sqrt((a-c)*(a+c))*sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))*(pow(a,4)*(pow(y,2)+pow(z,2))+pow(c,4)*(pow(y,2)+pow(z,2))+pow(pow(x,2)+pow(y,2)+pow(z,2),2)*(pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))+pow(c,2)*(pow(x,4)-pow(x,2)*(pow(y,2)+pow(z,2))-(pow(y,2)+pow(z,2))*(2*pow(y,2)+2*pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))+pow(a,2)*(-pow(x,4)+pow(x,2)*(pow(y,2)+pow(z,2))+(pow(y,2)+pow(z,2))*(-2*pow(c,2)+2*(pow(y,2)+pow(z,2))+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))))))/(sqrt((a-c)*(a+c))*sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))*pow(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))),3.5)*pow(-(sqrt(2)*sqrt((a-c)*(a+c)))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2))))),2)*(sqrt(2)*sqrt((a-c)*(a+c))+sqrt(pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2)+sqrt(pow(-pow(a,2)-pow(c,2)+pow(x,2)+pow(y,2)+pow(z,2),2)+4*(pow(c,2)*pow(x,2)+pow(a,2)*(-pow(c,2)+pow(y,2)+pow(z,2)))))));
+ 		eprime=pow((a*a-plumeradius*plumeradius)/(a*a+lambda),1./2.);
+ 		Alambda=(1.-e*e)/(e*e*e)*(1./2.*log((1.+eprime)/(1.-eprime))-eprime);
+-		dt=dtbg-(nusselt-1.)/(1.+A0*(nusselt-1.))*(Alambda*dtbg+middleplumedepth*dtbg*dAlambda);
++		dt=dtbg-(nusselt-1.)/(1.+A0*(nusselt-1.))*(Alambda*dtbg+x*dtbg*dAlambda);
+ 		plumeheat=mantleconductivity*dt;
+ 		crustheat=uppercrustheat*uppercrustthickness+lowercrustheat*(crustthickness-uppercrustthickness);
+ 		values[i]=crustheat+plumeheat;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20081-20082.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20081-20082.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20081-20082.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/test/NightlyRun/test342.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test342.m	(revision 20081)
++++ ../trunk-jpl/test/NightlyRun/test342.m	(revision 20082)
+@@ -11,8 +11,7 @@
+ md=setflowequation(md,'SSA','all');
+ md.timestepping.time_step=0.;
+ md.thermal.requested_outputs={'default','BasalforcingsGeothermalflux'};
+-md.cluster=generic('name',oshostname(),'np',1);
+-%md.debug.valgrind='true';
++md.cluster=generic('name',oshostname(),'np',3);
+ md=solve(md,ThermalSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/Archives/Archive342.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20082-20083.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20082-20083.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20082-20083.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/plot/plot_quiver.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_quiver.m	(revision 20082)
++++ ../trunk-jpl/src/m/plot/plot_quiver.m	(revision 20083)
+@@ -17,9 +17,11 @@
+ h=[];
+ for i=1:quivers.numcolors
+ 	pos=find(quivers.colorind==i);
+-	hprime=quiver(quivers.x(pos),quivers.y(pos),quivers.u(pos),quivers.v(pos),...
+-		'Color',palette(i,:),'ShowArrowHead','on','AutoScale','off');
+-	h=[h;hprime];
++	if ~isempty(pos),
++		hprime=quiver(quivers.x(pos),quivers.y(pos),quivers.u(pos),quivers.v(pos),...
++			'Color',palette(i,:),'ShowArrowHead','on','AutoScale','off');
++		h=[h;hprime];
++	end
+ end
+ 
+ %take care of colorbar
Index: /issm/oecreview/Archive/19101-20495/ISSM-20083-20084.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20083-20084.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20083-20084.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/externalpackages/gdal/install-1.10-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gdal/install-1.10-linux64.sh	(revision 20083)
++++ ../trunk-jpl/externalpackages/gdal/install-1.10-linux64.sh	(revision 20084)
+@@ -19,6 +19,9 @@
+ mv gdal-1.10.0/* src
+ rm -rf gdal-1.10.0
+ 
++export CFLAGS=-D_HAVE_STRNDUP
++export CXXFLAGS=-D_HAVE_STRNDUP
++
+ #Configure gdal
+ cd src
+ ./configure \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20084-20085.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20084-20085.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20084-20085.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20084)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20085)
+@@ -56,7 +56,6 @@
+ 						triangle      install-linux64.sh        
+ 						gmt           install.sh
+ 						gshhg         install.sh
+-						netcdf        install.sh
+ 						gdal          install-1.10-linux64.sh
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20085-20086.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20085-20086.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20085-20086.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20085)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20086)
+@@ -57,6 +57,7 @@
+ 						gmt           install.sh
+ 						gshhg         install.sh
+ 						gdal          install-1.10-linux64.sh
++						gmsh          install.sh
+ 						shell2junit   install.sh"
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20086-20087.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20086-20087.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20086-20087.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/gmsh/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20086)
++++ ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20087)
+@@ -6,7 +6,7 @@
+ mkdir install
+ 
+ #Download latest version
+-svn --username gmsh --password gmsh co https://geuz.org/svn/gmsh/trunk src
++svn --username gmsh --password gmsh co http://geuz.org/svn/gmsh/trunk src
+ 
+ #Configure
+ cd install
Index: /issm/oecreview/Archive/19101-20495/ISSM-20087-20088.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20087-20088.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20087-20088.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/gmsh/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20087)
++++ ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20088)
+@@ -6,7 +6,7 @@
+ mkdir install
+ 
+ #Download latest version
+-svn --username gmsh --password gmsh co http://geuz.org/svn/gmsh/trunk src
++svn co https://geuz.org/svn/gmsh/trunk src
+ 
+ #Configure
+ cd install
Index: /issm/oecreview/Archive/19101-20495/ISSM-20088-20089.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20088-20089.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20088-20089.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/gmsh/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20088)
++++ ../trunk-jpl/externalpackages/gmsh/install.sh	(revision 20089)
+@@ -6,7 +6,7 @@
+ mkdir install
+ 
+ #Download latest version
+-svn co https://geuz.org/svn/gmsh/trunk src
++svn co --username gmsh --password gmsh https://geuz.org/svn/gmsh/trunk src
+ 
+ #Configure
+ cd install
Index: /issm/oecreview/Archive/19101-20495/ISSM-20089-20090.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20089-20090.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20089-20090.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20089)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20090)
+@@ -54,8 +54,8 @@
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
++						gshhg         install.sh
+ 						gmt           install.sh
+-						gshhg         install.sh
+ 						gdal          install-1.10-linux64.sh
+ 						gmsh          install.sh
+ 						shell2junit   install.sh"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20090-20091.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20090-20091.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20090-20091.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 20090)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 20091)
+@@ -88,6 +88,7 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses), return; end
++			if (solution==TransientSolutionEnum & md.transient.isstressbalance == 0), return; end
+ 
+ 			md = checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','stressbalance.spcvy','Inf',1,'timeseries',1);
+@@ -194,9 +195,11 @@
+ 			WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer');
+ 			WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1);
+ 
+-			WriteData(fid,'data',self.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
+-			WriteData(fid,'data',self.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
+-			WriteData(fid,'data',self.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
++			if size(self.loadingforce,2)==3,
++				WriteData(fid,'data',self.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);
++				WriteData(fid,'data',self.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);
++				WriteData(fid,'data',self.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);
++			end
+ 
+ 			%process requested outputs
+ 			outputs = self.requested_outputs;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20091-20092.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20091-20092.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20091-20092.diff	(revision 20498)
@@ -0,0 +1,94 @@
+Index: ../trunk-jpl/test/Archives/Archive436.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/shared/Elements/LliboutryDuval.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Elements/LliboutryDuval.cpp	(revision 20091)
++++ ../trunk-jpl/src/c/shared/Elements/LliboutryDuval.cpp	(revision 20092)
+@@ -8,7 +8,10 @@
+ 
+ /* get ice stiffness B from enthalpy, pressure and flow law exponent*/
+ IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat){
+-  /*Use parameterization for the rheology: Grewe/Blatter 2009, Aschwanden 2012
++  /*Use Lliboutry & Duval's 1985 parameterization for the rheology: 
++	* see also: Grewe/Blatter 2009, Aschwanden et al. 2012
++	*
++	* ISSM uses enthalpy/temperature values that are not corrected for pressure.
+    *
+    *  A(H,p) = A0 exp(-Q/RT(H,p)), if H < H_s(p)
+    *         = A0 exp(-Q/RTpmp) (1+181.25w(H,p)), if H_s(p) \le H < H_l(p)
+@@ -33,45 +36,38 @@
+    *     = 8.314
+    *  
+    *  Convert A to B :  B = A^(-1/n) */
+-
+ 	/*check feasibility*/
+-  _assert_(pressure>=0);
+-  _assert_(n>0);
+-  _assert_(betaCC>=0);
+-  _assert_(referencetemperature>=0);
+-  _assert_(heatcapacity>0);
+-  _assert_(latentheat>0);
++	_assert_(pressure+1.e-4>=0); // deal with pressure instability at ice surface
++	_assert_(n>0);
++	_assert_(betaCC>=0);
++	_assert_(referencetemperature>=0);
++	_assert_(heatcapacity>0);
++	_assert_(latentheat>0);
+ 
+-  /*Some physical constants*/
+-  IssmDouble R=8.314; 
++	/*Some physical constants*/
++	IssmDouble R=8.314; 
+ 
+-  /*Intermediaries*/
+-  IssmDouble A,B,Tstar,Tpmp,H_sp,waterfraction;
++	/*Intermediaries*/
++	IssmDouble A,B,Tstar,Tpmp,H_sp,waterfraction;
+ 
+-  Tpmp=273.15-betaCC*pressure; 
+-  H_sp=heatcapacity*(Tpmp - referencetemperature);
+-  if (enthalpy < H_sp){
+-    Tstar = referencetemperature + enthalpy/heatcapacity - betaCC*pressure;	
+-    waterfraction = 0.;
+-  }
+-  else{
+-    Tstar=Tpmp;
+-    waterfraction=(enthalpy - H_sp)/latentheat;
+-		if (waterfraction > 0.01)
+-			waterfraction = 0.01;
+-  }
++	Tpmp=273.15-betaCC*pressure; //pressure melting point temperature
++	H_sp=heatcapacity*(Tpmp-referencetemperature); //pressure melting point enthalpy
++	if (enthalpy<H_sp){ //compute homologous temperature and water fraction
++		Tstar=referencetemperature+enthalpy/heatcapacity+betaCC*pressure; 
++		waterfraction=0.;
++	}
++	else{
++		Tstar=273.15;
++		waterfraction=(enthalpy-H_sp)/latentheat;
++		if (waterfraction>0.01) waterfraction=0.01; // limit softness of ice
++	}
+ 
+-  /*Get A*/
+-  if(Tstar<=263.15){
+-    A=3.61e-13 * exp(  -6.e+4/(R*Tstar));
+-  }
+-  else{
+-    A=1.73e3   * exp(-13.9e+4/(R*Tstar));
+-  }
+-  A*=(1. + 181.25*waterfraction);
++	/*Get A*/
++	if(Tstar<=263.15){A=3.61e-13*exp(-6.e+4/(R*Tstar));}
++	else{A=1.73e3*exp(-13.9e+4/(R*Tstar));}
++	A*=(1.+181.25*waterfraction);
+ 
+-  /*Convert to B*/
+-  B=pow(A,-1./n);
+-
+-  return B;
++	/*Convert to B*/
++	B=pow(A,-1./n);
++	return B;
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20092-20093.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20092-20093.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20092-20093.diff	(revision 20498)
@@ -0,0 +1,74 @@
+Index: ../trunk-jpl/test/Archives/Archive510.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive508.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive436.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive431.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive509.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive432.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive513.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive415.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive410.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive416.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive411.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive318.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/cores/steadystate_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20092)
++++ ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20093)
+@@ -47,15 +47,17 @@
+ 
+ 	for(;;){
+ 
+-		if(VerboseSolution()) _printf0_("   computing temperature and velocity for step: " << step << "\n");
+-		thermal_core(femmodel);
+-		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
+-		GetSolutionFromInputsx(&tg,femmodel);
++		/* Compute first velocity, then temperature due to high sensitivity of temperature to velocity. */
++		if(VerboseSolution()) _printf0_("   computing velocity and temperature for step: " << step << "\n");
+ 
+ 		if(VerboseSolution()) _printf0_("   computing new velocity\n");
+ 		stressbalance_core(femmodel);
+ 		GetSolutionFromInputsx(&ug,femmodel);
+ 
++		thermal_core(femmodel);
++		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
++		GetSolutionFromInputsx(&tg,femmodel);
++
+ 		if(step>1){
+ 			if(VerboseSolution()) _printf0_("   checking steadystate convergence\n");
+ 			if(steadystateconvergence(tg,tg_old,ug,ug_old,reltol)) break;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20093-20094.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20093-20094.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20093-20094.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test410.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test410.m	(revision 20093)
++++ ../trunk-jpl/test/NightlyRun/test410.m	(revision 20094)
+@@ -10,7 +10,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsGroundediceMeltingRate'};
+-field_tolerances={1e-09,1e-09,1e-08,3e-10,1e-13,3e-10,1e-06};
++field_tolerances={1e-09,1e-09,1e-08,3e-10,1e-13,5e-10,1e-06};
+ field_values={...
+ 	(md.results.SteadystateSolution.Vx),...
+ 	(md.results.SteadystateSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20094-20095.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20094-20095.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20094-20095.diff	(revision 20498)
@@ -0,0 +1,1502 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20094)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20095)
+@@ -359,6 +359,7 @@
+ 	TimesteppingTimeStepEnum,
+ 	TimesteppingInterpForcingsEnum,
+ 	TransientIssmbEnum,
++	TransientIscouplerEnum,
+ 	TransientIsstressbalanceEnum,
+ 	TransientIsgroundinglineEnum,
+ 	TransientIsmasstransportEnum,
+@@ -367,6 +368,7 @@
+ 	TransientIsdamageevolutionEnum,
+ 	TransientIshydrologyEnum,
+ 	TransientIscalvingEnum,
++	TransientIsslrEnum,
+ 	TransientNumRequestedOutputsEnum,
+ 	TransientRequestedOutputsEnum,
+ 	PotentialEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20094)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20095)
+@@ -365,6 +365,7 @@
+ 		case TimesteppingTimeStepEnum : return "TimesteppingTimeStep";
+ 		case TimesteppingInterpForcingsEnum : return "TimesteppingInterpForcings";
+ 		case TransientIssmbEnum : return "TransientIssmb";
++		case TransientIscouplerEnum : return "TransientIscoupler";
+ 		case TransientIsstressbalanceEnum : return "TransientIsstressbalance";
+ 		case TransientIsgroundinglineEnum : return "TransientIsgroundingline";
+ 		case TransientIsmasstransportEnum : return "TransientIsmasstransport";
+@@ -373,6 +374,7 @@
+ 		case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
+ 		case TransientIshydrologyEnum : return "TransientIshydrology";
+ 		case TransientIscalvingEnum : return "TransientIscalving";
++		case TransientIsslrEnum : return "TransientIsslr";
+ 		case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
+ 		case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
+ 		case PotentialEnum : return "Potential";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20094)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20095)
+@@ -371,6 +371,7 @@
+ 	      else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
+ 	      else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
+ 	      else if (strcmp(name,"TransientIssmb")==0) return TransientIssmbEnum;
++	      else if (strcmp(name,"TransientIscoupler")==0) return TransientIscouplerEnum;
+ 	      else if (strcmp(name,"TransientIsstressbalance")==0) return TransientIsstressbalanceEnum;
+ 	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
+ 	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
+@@ -379,13 +380,14 @@
+ 	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
+ 	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
+ 	      else if (strcmp(name,"TransientIscalving")==0) return TransientIscalvingEnum;
++	      else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
+ 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+-	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+-	      else if (strcmp(name,"Potential")==0) return PotentialEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
++	      if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
++	      else if (strcmp(name,"Potential")==0) return PotentialEnum;
++	      else if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
+ 	      else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum;
+ 	      else if (strcmp(name,"Balancethickness2Misfit")==0) return Balancethickness2MisfitEnum;
+ 	      else if (strcmp(name,"BalancethicknessDiffusionCoefficient")==0) return BalancethicknessDiffusionCoefficientEnum;
+@@ -503,12 +505,12 @@
+ 	      else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
+ 	      else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
+ 	      else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
+-	      else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
+-	      else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
++	      if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
++	      else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
++	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
+ 	      else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
+ 	      else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;
+ 	      else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
+@@ -626,12 +628,12 @@
+ 	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
+ 	      else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
+ 	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
+-	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
+-	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
++	      if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
++	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
++	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
+ 	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
+ 	      else if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum;
+ 	      else if (strcmp(name,"StringParam")==0) return StringParamEnum;
+@@ -749,12 +751,12 @@
+ 	      else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
+ 	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
+ 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
+-	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
+-	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"P0")==0) return P0Enum;
++	      if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
++	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
++	      else if (strcmp(name,"P0")==0) return P0Enum;
+ 	      else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
+ 	      else if (strcmp(name,"P1")==0) return P1Enum;
+ 	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
+@@ -872,12 +874,12 @@
+ 	      else if (strcmp(name,"Outputdefinition82")==0) return Outputdefinition82Enum;
+ 	      else if (strcmp(name,"Outputdefinition83")==0) return Outputdefinition83Enum;
+ 	      else if (strcmp(name,"Outputdefinition84")==0) return Outputdefinition84Enum;
+-	      else if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
+-	      else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
++	      if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
++	      else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
++	      else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
+ 	      else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
+ 	      else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
+ 	      else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
+@@ -995,12 +997,12 @@
+ 	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+ 	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
+ 	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
+-	      else if (strcmp(name,"Seq")==0) return SeqEnum;
+-	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
+          else stage=9;
+    }
+    if(stage==9){
+-	      if (strcmp(name,"Mumps")==0) return MumpsEnum;
++	      if (strcmp(name,"Seq")==0) return SeqEnum;
++	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
++	      else if (strcmp(name,"Mumps")==0) return MumpsEnum;
+ 	      else if (strcmp(name,"Gsl")==0) return GslEnum;
+ 	      else if (strcmp(name,"Option")==0) return OptionEnum;
+ 	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
+Index: ../trunk-jpl/src/m/enum/TransientIscouplerEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIscouplerEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TransientIscouplerEnum.m	(revision 20095)
+@@ -0,0 +1,11 @@
++function macro=TransientIscouplerEnum()
++%TRANSIENTISCOUPLERENUM - Enum of TransientIscoupler
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TransientIscouplerEnum()
++
++macro=StringToEnum('TransientIscoupler');
+Index: ../trunk-jpl/src/m/enum/TransientIsslrEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIsslrEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TransientIsslrEnum.m	(revision 20095)
+@@ -0,0 +1,11 @@
++function macro=TransientIsslrEnum()
++%TRANSIENTISSLRENUM - Enum of TransientIsslr
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TransientIsslrEnum()
++
++macro=StringToEnum('TransientIsslr');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20094)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20095)
+@@ -350,648 +350,650 @@
+ function TimesteppingTimeStepEnum(){ return 346;}
+ function TimesteppingInterpForcingsEnum(){ return 347;}
+ function TransientIssmbEnum(){ return 348;}
+-function TransientIsstressbalanceEnum(){ return 349;}
+-function TransientIsgroundinglineEnum(){ return 350;}
+-function TransientIsmasstransportEnum(){ return 351;}
+-function TransientIsthermalEnum(){ return 352;}
+-function TransientIsgiaEnum(){ return 353;}
+-function TransientIsdamageevolutionEnum(){ return 354;}
+-function TransientIshydrologyEnum(){ return 355;}
+-function TransientIscalvingEnum(){ return 356;}
+-function TransientNumRequestedOutputsEnum(){ return 357;}
+-function TransientRequestedOutputsEnum(){ return 358;}
+-function PotentialEnum(){ return 359;}
+-function BalancethicknessSpcpotentialEnum(){ return 360;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 361;}
+-function Balancethickness2MisfitEnum(){ return 362;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 363;}
+-function BalancethicknessCmuEnum(){ return 364;}
+-function BalancethicknessOmegaEnum(){ return 365;}
+-function BalancethicknessD0Enum(){ return 366;}
+-function SmbEnum(){ return 367;}
+-function SmbAnalysisEnum(){ return 368;}
+-function SmbSolutionEnum(){ return 369;}
+-function SmbNumRequestedOutputsEnum(){ return 370;}
+-function SmbRequestedOutputsEnum(){ return 371;}
+-function SmbIsInitializedEnum(){ return 372;}
+-function SMBforcingEnum(){ return 373;}
+-function SmbMassBalanceEnum(){ return 374;}
+-function SMBgembEnum(){ return 375;}
+-function SmbInitDensityScalingEnum(){ return 376;}
+-function SmbTaEnum(){ return 377;}
+-function SmbVEnum(){ return 378;}
+-function SmbDswrfEnum(){ return 379;}
+-function SmbDlwrfEnum(){ return 380;}
+-function SmbPEnum(){ return 381;}
+-function SmbSwfEnum(){ return 382;}
+-function SmbEAirEnum(){ return 383;}
+-function SmbPAirEnum(){ return 384;}
+-function SmbTmeanEnum(){ return 385;}
+-function SmbCEnum(){ return 386;}
+-function SmbTzEnum(){ return 387;}
+-function SmbVzEnum(){ return 388;}
+-function SmbDtEnum(){ return 389;}
+-function SmbDzEnum(){ return 390;}
+-function SmbAIdxEnum(){ return 391;}
+-function SmbSwIdxEnum(){ return 392;}
+-function SmbDenIdxEnum(){ return 393;}
+-function SmbZTopEnum(){ return 394;}
+-function SmbDzTopEnum(){ return 395;}
+-function SmbDzMinEnum(){ return 396;}
+-function SmbZYEnum(){ return 397;}
+-function SmbZMaxEnum(){ return 398;}
+-function SmbZMinEnum(){ return 399;}
+-function SmbOutputFreqEnum(){ return 400;}
+-function SmbASnowEnum(){ return 401;}
+-function SmbAIceEnum(){ return 402;}
+-function SmbCldFracEnum(){ return 403;}
+-function SmbT0wetEnum(){ return 404;}
+-function SmbT0dryEnum(){ return 405;}
+-function SmbKEnum(){ return 406;}
+-function SmbDEnum(){ return 407;}
+-function SmbReEnum(){ return 408;}
+-function SmbGdnEnum(){ return 409;}
+-function SmbGspEnum(){ return 410;}
+-function SmbECEnum(){ return 411;}
+-function SmbCondensationEnum(){ return 412;}
+-function SmbWEnum(){ return 413;}
+-function SmbAEnum(){ return 414;}
+-function SmbTEnum(){ return 415;}
+-function SmbIsgraingrowthEnum(){ return 416;}
+-function SmbIsalbedoEnum(){ return 417;}
+-function SmbIsshortwaveEnum(){ return 418;}
+-function SmbIsthermalEnum(){ return 419;}
+-function SmbIsaccumulationEnum(){ return 420;}
+-function SmbIsmeltEnum(){ return 421;}
+-function SmbIsdensificationEnum(){ return 422;}
+-function SmbIsturbulentfluxEnum(){ return 423;}
+-function SMBpddEnum(){ return 424;}
+-function SmbDelta18oEnum(){ return 425;}
+-function SmbDelta18oSurfaceEnum(){ return 426;}
+-function SmbIsdelta18oEnum(){ return 427;}
+-function SmbIsmungsmEnum(){ return 428;}
+-function SmbIsd18opdEnum(){ return 429;}
+-function SmbPrecipitationsPresentdayEnum(){ return 430;}
+-function SmbPrecipitationsLgmEnum(){ return 431;}
+-function SmbTemperaturesPresentdayEnum(){ return 432;}
+-function SmbTemperaturesLgmEnum(){ return 433;}
+-function SmbPrecipitationEnum(){ return 434;}
+-function SmbDesfacEnum(){ return 435;}
+-function SmbS0pEnum(){ return 436;}
+-function SmbS0tEnum(){ return 437;}
+-function SmbRlapsEnum(){ return 438;}
+-function SmbRlapslgmEnum(){ return 439;}
+-function SmbPfacEnum(){ return 440;}
+-function SmbTdiffEnum(){ return 441;}
+-function SmbSealevEnum(){ return 442;}
+-function SMBd18opddEnum(){ return 443;}
+-function SmbDpermilEnum(){ return 444;}
+-function SMBgradientsEnum(){ return 445;}
+-function SmbMonthlytemperaturesEnum(){ return 446;}
+-function SmbHrefEnum(){ return 447;}
+-function SmbSmbrefEnum(){ return 448;}
+-function SmbBPosEnum(){ return 449;}
+-function SmbBNegEnum(){ return 450;}
+-function SMBhenningEnum(){ return 451;}
+-function SMBcomponentsEnum(){ return 452;}
+-function SmbAccumulationEnum(){ return 453;}
+-function SmbEvaporationEnum(){ return 454;}
+-function SmbRunoffEnum(){ return 455;}
+-function SMBmeltcomponentsEnum(){ return 456;}
+-function SmbMeltEnum(){ return 457;}
+-function SmbRefreezeEnum(){ return 458;}
+-function SMBgcmEnum(){ return 459;}
+-function SmbIspddEnum(){ return 460;}
+-function SmbIssmbgradientsEnum(){ return 461;}
+-function SolutionTypeEnum(){ return 462;}
+-function AnalysisTypeEnum(){ return 463;}
+-function ConfigurationTypeEnum(){ return 464;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 465;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 466;}
+-function AdjointHorizAnalysisEnum(){ return 467;}
+-function AnalysisCounterEnum(){ return 468;}
+-function DefaultAnalysisEnum(){ return 469;}
+-function BalancethicknessAnalysisEnum(){ return 470;}
+-function BalancethicknessSolutionEnum(){ return 471;}
+-function Balancethickness2AnalysisEnum(){ return 472;}
+-function Balancethickness2SolutionEnum(){ return 473;}
+-function BalancethicknessSoftAnalysisEnum(){ return 474;}
+-function BalancethicknessSoftSolutionEnum(){ return 475;}
+-function BalancevelocityAnalysisEnum(){ return 476;}
+-function BalancevelocitySolutionEnum(){ return 477;}
+-function L2ProjectionEPLAnalysisEnum(){ return 478;}
+-function L2ProjectionBaseAnalysisEnum(){ return 479;}
+-function BedSlopeSolutionEnum(){ return 480;}
+-function DamageEvolutionSolutionEnum(){ return 481;}
+-function DamageEvolutionAnalysisEnum(){ return 482;}
+-function StressbalanceAnalysisEnum(){ return 483;}
+-function StressbalanceSIAAnalysisEnum(){ return 484;}
+-function StressbalanceSolutionEnum(){ return 485;}
+-function StressbalanceVerticalAnalysisEnum(){ return 486;}
+-function EnthalpyAnalysisEnum(){ return 487;}
+-function FlaimAnalysisEnum(){ return 488;}
+-function FlaimSolutionEnum(){ return 489;}
+-function HydrologyShreveAnalysisEnum(){ return 490;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 491;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 492;}
+-function HydrologySommersAnalysisEnum(){ return 493;}
+-function HydrologySolutionEnum(){ return 494;}
+-function MeltingAnalysisEnum(){ return 495;}
+-function MasstransportAnalysisEnum(){ return 496;}
+-function MasstransportSolutionEnum(){ return 497;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 498;}
+-function FreeSurfaceTopAnalysisEnum(){ return 499;}
+-function SurfaceNormalVelocityEnum(){ return 500;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 501;}
+-function ExtrudeFromTopAnalysisEnum(){ return 502;}
+-function DepthAverageAnalysisEnum(){ return 503;}
+-function SteadystateSolutionEnum(){ return 504;}
+-function SurfaceSlopeSolutionEnum(){ return 505;}
+-function SmoothAnalysisEnum(){ return 506;}
+-function ThermalAnalysisEnum(){ return 507;}
+-function ThermalSolutionEnum(){ return 508;}
+-function TransientSolutionEnum(){ return 509;}
+-function UzawaPressureAnalysisEnum(){ return 510;}
+-function GiaSolutionEnum(){ return 511;}
+-function GiaAnalysisEnum(){ return 512;}
+-function MeshdeformationSolutionEnum(){ return 513;}
+-function MeshdeformationAnalysisEnum(){ return 514;}
+-function LevelsetAnalysisEnum(){ return 515;}
+-function LevelsetStabilizationEnum(){ return 516;}
+-function ExtrapolationAnalysisEnum(){ return 517;}
+-function LsfReinitializationAnalysisEnum(){ return 518;}
+-function ApproximationEnum(){ return 519;}
+-function NoneApproximationEnum(){ return 520;}
+-function SIAApproximationEnum(){ return 521;}
+-function SSAApproximationEnum(){ return 522;}
+-function SSAHOApproximationEnum(){ return 523;}
+-function SSAFSApproximationEnum(){ return 524;}
+-function L1L2ApproximationEnum(){ return 525;}
+-function HOApproximationEnum(){ return 526;}
+-function HOFSApproximationEnum(){ return 527;}
+-function FSApproximationEnum(){ return 528;}
+-function FSvelocityEnum(){ return 529;}
+-function FSpressureEnum(){ return 530;}
+-function DataSetEnum(){ return 531;}
+-function ConstraintsEnum(){ return 532;}
+-function LoadsEnum(){ return 533;}
+-function MaterialsEnum(){ return 534;}
+-function NodesEnum(){ return 535;}
+-function ContoursEnum(){ return 536;}
+-function ParametersEnum(){ return 537;}
+-function VerticesEnum(){ return 538;}
+-function ResultsEnum(){ return 539;}
+-function GenericParamEnum(){ return 540;}
+-function AdolcParamEnum(){ return 541;}
+-function BoolInputEnum(){ return 542;}
+-function BoolParamEnum(){ return 543;}
+-function ContourEnum(){ return 544;}
+-function ControlInputEnum(){ return 545;}
+-function DatasetInputEnum(){ return 546;}
+-function DoubleInputEnum(){ return 547;}
+-function DoubleArrayInputEnum(){ return 548;}
+-function DataSetParamEnum(){ return 549;}
+-function DoubleMatArrayParamEnum(){ return 550;}
+-function DoubleMatParamEnum(){ return 551;}
+-function DoubleParamEnum(){ return 552;}
+-function DoubleVecParamEnum(){ return 553;}
+-function ElementEnum(){ return 554;}
+-function ElementHookEnum(){ return 555;}
+-function HookEnum(){ return 556;}
+-function ExternalResultEnum(){ return 557;}
+-function FileParamEnum(){ return 558;}
+-function InputEnum(){ return 559;}
+-function IntInputEnum(){ return 560;}
+-function InputToExtrudeEnum(){ return 561;}
+-function InputToL2ProjectEnum(){ return 562;}
+-function InputToDepthaverageEnum(){ return 563;}
+-function InputToSmoothEnum(){ return 564;}
+-function SmoothThicknessMultiplierEnum(){ return 565;}
+-function IntParamEnum(){ return 566;}
+-function IntVecParamEnum(){ return 567;}
+-function TransientParamEnum(){ return 568;}
+-function MaticeEnum(){ return 569;}
+-function MatdamageiceEnum(){ return 570;}
+-function MatparEnum(){ return 571;}
+-function NodeEnum(){ return 572;}
+-function NumericalfluxEnum(){ return 573;}
+-function NumericalfluxTypeEnum(){ return 574;}
+-function NeumannfluxEnum(){ return 575;}
+-function ParamEnum(){ return 576;}
+-function MoulinEnum(){ return 577;}
+-function PengridEnum(){ return 578;}
+-function PenpairEnum(){ return 579;}
+-function ProfilerEnum(){ return 580;}
+-function MatrixParamEnum(){ return 581;}
+-function MassconEnum(){ return 582;}
+-function MassconNameEnum(){ return 583;}
+-function MassconDefinitionenumEnum(){ return 584;}
+-function MassconLevelsetEnum(){ return 585;}
+-function MassconaxpbyEnum(){ return 586;}
+-function MassconaxpbyNameEnum(){ return 587;}
+-function MassconaxpbyDefinitionenumEnum(){ return 588;}
+-function MassconaxpbyNamexEnum(){ return 589;}
+-function MassconaxpbyNameyEnum(){ return 590;}
+-function MassconaxpbyAlphaEnum(){ return 591;}
+-function MassconaxpbyBetaEnum(){ return 592;}
+-function NodeSIdEnum(){ return 593;}
+-function VectorParamEnum(){ return 594;}
+-function RiftfrontEnum(){ return 595;}
+-function RiftfrontTypeEnum(){ return 596;}
+-function SegmentEnum(){ return 597;}
+-function SegmentRiftfrontEnum(){ return 598;}
+-function SpcDynamicEnum(){ return 599;}
+-function SpcStaticEnum(){ return 600;}
+-function SpcTransientEnum(){ return 601;}
+-function StringArrayParamEnum(){ return 602;}
+-function StringParamEnum(){ return 603;}
+-function SegEnum(){ return 604;}
+-function SegInputEnum(){ return 605;}
+-function TriaEnum(){ return 606;}
+-function TriaInputEnum(){ return 607;}
+-function TetraEnum(){ return 608;}
+-function TetraInputEnum(){ return 609;}
+-function PentaEnum(){ return 610;}
+-function PentaInputEnum(){ return 611;}
+-function VertexEnum(){ return 612;}
+-function VertexPIdEnum(){ return 613;}
+-function VertexSIdEnum(){ return 614;}
+-function AirEnum(){ return 615;}
+-function IceEnum(){ return 616;}
+-function MelangeEnum(){ return 617;}
+-function WaterEnum(){ return 618;}
+-function ClosedEnum(){ return 619;}
+-function FreeEnum(){ return 620;}
+-function OpenEnum(){ return 621;}
+-function AdjointpEnum(){ return 622;}
+-function AdjointxEnum(){ return 623;}
+-function AdjointyEnum(){ return 624;}
+-function AdjointzEnum(){ return 625;}
+-function BalancethicknessMisfitEnum(){ return 626;}
+-function BedSlopeXEnum(){ return 627;}
+-function BedSlopeYEnum(){ return 628;}
+-function BoundaryEnum(){ return 629;}
+-function ConvergedEnum(){ return 630;}
+-function FillEnum(){ return 631;}
+-function FractionIncrementEnum(){ return 632;}
+-function FrictionEnum(){ return 633;}
+-function InternalEnum(){ return 634;}
+-function MassFluxEnum(){ return 635;}
+-function MeltingOffsetEnum(){ return 636;}
+-function MisfitEnum(){ return 637;}
+-function PressureEnum(){ return 638;}
+-function PressurePicardEnum(){ return 639;}
+-function AndroidFrictionCoefficientEnum(){ return 640;}
+-function ResetPenaltiesEnum(){ return 641;}
+-function SegmentOnIceShelfEnum(){ return 642;}
+-function SurfaceAbsVelMisfitEnum(){ return 643;}
+-function SurfaceAreaEnum(){ return 644;}
+-function SurfaceAverageVelMisfitEnum(){ return 645;}
+-function SurfaceLogVelMisfitEnum(){ return 646;}
+-function SurfaceLogVxVyMisfitEnum(){ return 647;}
+-function SurfaceRelVelMisfitEnum(){ return 648;}
+-function SurfaceSlopeXEnum(){ return 649;}
+-function SurfaceSlopeYEnum(){ return 650;}
+-function TemperatureEnum(){ return 651;}
+-function TemperaturePicardEnum(){ return 652;}
+-function TemperaturePDDEnum(){ return 653;}
+-function ThicknessAbsMisfitEnum(){ return 654;}
+-function SurfaceAbsMisfitEnum(){ return 655;}
+-function VelEnum(){ return 656;}
+-function VelocityEnum(){ return 657;}
+-function VxAverageEnum(){ return 658;}
+-function VxEnum(){ return 659;}
+-function VxPicardEnum(){ return 660;}
+-function VyAverageEnum(){ return 661;}
+-function VyEnum(){ return 662;}
+-function VyPicardEnum(){ return 663;}
+-function VzEnum(){ return 664;}
+-function VzSSAEnum(){ return 665;}
+-function VzHOEnum(){ return 666;}
+-function VzPicardEnum(){ return 667;}
+-function VzFSEnum(){ return 668;}
+-function VxMeshEnum(){ return 669;}
+-function VyMeshEnum(){ return 670;}
+-function VzMeshEnum(){ return 671;}
+-function EnthalpyEnum(){ return 672;}
+-function EnthalpyPicardEnum(){ return 673;}
+-function ThicknessAbsGradientEnum(){ return 674;}
+-function ThicknessAlongGradientEnum(){ return 675;}
+-function ThicknessAcrossGradientEnum(){ return 676;}
+-function ThicknessPositiveEnum(){ return 677;}
+-function IntMatParamEnum(){ return 678;}
+-function RheologyBbarAbsGradientEnum(){ return 679;}
+-function RheologyBAbsGradientEnum(){ return 680;}
+-function DragCoefficientAbsGradientEnum(){ return 681;}
+-function TransientInputEnum(){ return 682;}
+-function WaterfractionEnum(){ return 683;}
+-function WatercolumnEnum(){ return 684;}
+-function BasalFrictionEnum(){ return 685;}
+-function ViscousHeatingEnum(){ return 686;}
+-function HydrologyWaterVxEnum(){ return 687;}
+-function HydrologyWaterVyEnum(){ return 688;}
+-function DrivingStressXEnum(){ return 689;}
+-function DrivingStressYEnum(){ return 690;}
+-function SigmaNNEnum(){ return 691;}
+-function StressTensorEnum(){ return 692;}
+-function StressTensorxxEnum(){ return 693;}
+-function StressTensorxyEnum(){ return 694;}
+-function StressTensorxzEnum(){ return 695;}
+-function StressTensoryyEnum(){ return 696;}
+-function StressTensoryzEnum(){ return 697;}
+-function StressTensorzzEnum(){ return 698;}
+-function StressMaxPrincipalEnum(){ return 699;}
+-function DeviatoricStressEnum(){ return 700;}
+-function DeviatoricStressxxEnum(){ return 701;}
+-function DeviatoricStressxyEnum(){ return 702;}
+-function DeviatoricStressxzEnum(){ return 703;}
+-function DeviatoricStressyyEnum(){ return 704;}
+-function DeviatoricStressyzEnum(){ return 705;}
+-function DeviatoricStresszzEnum(){ return 706;}
+-function DeviatoricStresseffectiveEnum(){ return 707;}
+-function StrainRateEnum(){ return 708;}
+-function StrainRatexxEnum(){ return 709;}
+-function StrainRatexyEnum(){ return 710;}
+-function StrainRatexzEnum(){ return 711;}
+-function StrainRateyyEnum(){ return 712;}
+-function StrainRateyzEnum(){ return 713;}
+-function StrainRatezzEnum(){ return 714;}
+-function DivergenceEnum(){ return 715;}
+-function MaxDivergenceEnum(){ return 716;}
+-function GiaCrossSectionShapeEnum(){ return 717;}
+-function GiadWdtEnum(){ return 718;}
+-function GiaWEnum(){ return 719;}
+-function P0Enum(){ return 720;}
+-function P0ArrayEnum(){ return 721;}
+-function P1Enum(){ return 722;}
+-function P1DGEnum(){ return 723;}
+-function P1bubbleEnum(){ return 724;}
+-function P1bubblecondensedEnum(){ return 725;}
+-function P2Enum(){ return 726;}
+-function P2bubbleEnum(){ return 727;}
+-function P2bubblecondensedEnum(){ return 728;}
+-function P2xP1Enum(){ return 729;}
+-function P1xP2Enum(){ return 730;}
+-function P1xP3Enum(){ return 731;}
+-function P2xP4Enum(){ return 732;}
+-function P1P1Enum(){ return 733;}
+-function P1P1GLSEnum(){ return 734;}
+-function MINIEnum(){ return 735;}
+-function MINIcondensedEnum(){ return 736;}
+-function TaylorHoodEnum(){ return 737;}
+-function LATaylorHoodEnum(){ return 738;}
+-function XTaylorHoodEnum(){ return 739;}
+-function OneLayerP4zEnum(){ return 740;}
+-function CrouzeixRaviartEnum(){ return 741;}
+-function LACrouzeixRaviartEnum(){ return 742;}
+-function SaveResultsEnum(){ return 743;}
+-function BoolExternalResultEnum(){ return 744;}
+-function DoubleExternalResultEnum(){ return 745;}
+-function DoubleMatExternalResultEnum(){ return 746;}
+-function IntExternalResultEnum(){ return 747;}
+-function JEnum(){ return 748;}
+-function StringExternalResultEnum(){ return 749;}
+-function StepEnum(){ return 750;}
+-function TimeEnum(){ return 751;}
+-function WaterColumnOldEnum(){ return 752;}
+-function OutputdefinitionEnum(){ return 753;}
+-function Outputdefinition1Enum(){ return 754;}
+-function Outputdefinition2Enum(){ return 755;}
+-function Outputdefinition3Enum(){ return 756;}
+-function Outputdefinition4Enum(){ return 757;}
+-function Outputdefinition5Enum(){ return 758;}
+-function Outputdefinition6Enum(){ return 759;}
+-function Outputdefinition7Enum(){ return 760;}
+-function Outputdefinition8Enum(){ return 761;}
+-function Outputdefinition9Enum(){ return 762;}
+-function Outputdefinition10Enum(){ return 763;}
+-function Outputdefinition11Enum(){ return 764;}
+-function Outputdefinition12Enum(){ return 765;}
+-function Outputdefinition13Enum(){ return 766;}
+-function Outputdefinition14Enum(){ return 767;}
+-function Outputdefinition15Enum(){ return 768;}
+-function Outputdefinition16Enum(){ return 769;}
+-function Outputdefinition17Enum(){ return 770;}
+-function Outputdefinition18Enum(){ return 771;}
+-function Outputdefinition19Enum(){ return 772;}
+-function Outputdefinition20Enum(){ return 773;}
+-function Outputdefinition21Enum(){ return 774;}
+-function Outputdefinition22Enum(){ return 775;}
+-function Outputdefinition23Enum(){ return 776;}
+-function Outputdefinition24Enum(){ return 777;}
+-function Outputdefinition25Enum(){ return 778;}
+-function Outputdefinition26Enum(){ return 779;}
+-function Outputdefinition27Enum(){ return 780;}
+-function Outputdefinition28Enum(){ return 781;}
+-function Outputdefinition29Enum(){ return 782;}
+-function Outputdefinition30Enum(){ return 783;}
+-function Outputdefinition31Enum(){ return 784;}
+-function Outputdefinition32Enum(){ return 785;}
+-function Outputdefinition33Enum(){ return 786;}
+-function Outputdefinition34Enum(){ return 787;}
+-function Outputdefinition35Enum(){ return 788;}
+-function Outputdefinition36Enum(){ return 789;}
+-function Outputdefinition37Enum(){ return 790;}
+-function Outputdefinition38Enum(){ return 791;}
+-function Outputdefinition39Enum(){ return 792;}
+-function Outputdefinition40Enum(){ return 793;}
+-function Outputdefinition41Enum(){ return 794;}
+-function Outputdefinition42Enum(){ return 795;}
+-function Outputdefinition43Enum(){ return 796;}
+-function Outputdefinition44Enum(){ return 797;}
+-function Outputdefinition45Enum(){ return 798;}
+-function Outputdefinition46Enum(){ return 799;}
+-function Outputdefinition47Enum(){ return 800;}
+-function Outputdefinition48Enum(){ return 801;}
+-function Outputdefinition49Enum(){ return 802;}
+-function Outputdefinition50Enum(){ return 803;}
+-function Outputdefinition51Enum(){ return 804;}
+-function Outputdefinition52Enum(){ return 805;}
+-function Outputdefinition53Enum(){ return 806;}
+-function Outputdefinition54Enum(){ return 807;}
+-function Outputdefinition55Enum(){ return 808;}
+-function Outputdefinition56Enum(){ return 809;}
+-function Outputdefinition57Enum(){ return 810;}
+-function Outputdefinition58Enum(){ return 811;}
+-function Outputdefinition59Enum(){ return 812;}
+-function Outputdefinition60Enum(){ return 813;}
+-function Outputdefinition61Enum(){ return 814;}
+-function Outputdefinition62Enum(){ return 815;}
+-function Outputdefinition63Enum(){ return 816;}
+-function Outputdefinition64Enum(){ return 817;}
+-function Outputdefinition65Enum(){ return 818;}
+-function Outputdefinition66Enum(){ return 819;}
+-function Outputdefinition67Enum(){ return 820;}
+-function Outputdefinition68Enum(){ return 821;}
+-function Outputdefinition69Enum(){ return 822;}
+-function Outputdefinition70Enum(){ return 823;}
+-function Outputdefinition71Enum(){ return 824;}
+-function Outputdefinition72Enum(){ return 825;}
+-function Outputdefinition73Enum(){ return 826;}
+-function Outputdefinition74Enum(){ return 827;}
+-function Outputdefinition75Enum(){ return 828;}
+-function Outputdefinition76Enum(){ return 829;}
+-function Outputdefinition77Enum(){ return 830;}
+-function Outputdefinition78Enum(){ return 831;}
+-function Outputdefinition79Enum(){ return 832;}
+-function Outputdefinition80Enum(){ return 833;}
+-function Outputdefinition81Enum(){ return 834;}
+-function Outputdefinition82Enum(){ return 835;}
+-function Outputdefinition83Enum(){ return 836;}
+-function Outputdefinition84Enum(){ return 837;}
+-function Outputdefinition85Enum(){ return 838;}
+-function Outputdefinition86Enum(){ return 839;}
+-function Outputdefinition87Enum(){ return 840;}
+-function Outputdefinition88Enum(){ return 841;}
+-function Outputdefinition89Enum(){ return 842;}
+-function Outputdefinition90Enum(){ return 843;}
+-function Outputdefinition91Enum(){ return 844;}
+-function Outputdefinition92Enum(){ return 845;}
+-function Outputdefinition93Enum(){ return 846;}
+-function Outputdefinition94Enum(){ return 847;}
+-function Outputdefinition95Enum(){ return 848;}
+-function Outputdefinition96Enum(){ return 849;}
+-function Outputdefinition97Enum(){ return 850;}
+-function Outputdefinition98Enum(){ return 851;}
+-function Outputdefinition99Enum(){ return 852;}
+-function Outputdefinition100Enum(){ return 853;}
+-function OutputdefinitionListEnum(){ return 854;}
+-function MassfluxatgateEnum(){ return 855;}
+-function MassfluxatgateNameEnum(){ return 856;}
+-function MassfluxatgateDefinitionenumEnum(){ return 857;}
+-function MassfluxatgateSegmentsEnum(){ return 858;}
+-function NodalvalueEnum(){ return 859;}
+-function NodalvalueNameEnum(){ return 860;}
+-function NodalvalueDefinitionenumEnum(){ return 861;}
+-function NodalvalueModelEnum(){ return 862;}
+-function NodalvalueNodeEnum(){ return 863;}
+-function MisfitNameEnum(){ return 864;}
+-function MisfitDefinitionenumEnum(){ return 865;}
+-function MisfitModelEnum(){ return 866;}
+-function MisfitObservationEnum(){ return 867;}
+-function MisfitObservationEnum(){ return 868;}
+-function MisfitLocalEnum(){ return 869;}
+-function MisfitTimeinterpolationEnum(){ return 870;}
+-function MisfitWeightsEnum(){ return 871;}
+-function MisfitWeightsEnum(){ return 872;}
+-function SurfaceObservationEnum(){ return 873;}
+-function WeightsSurfaceObservationEnum(){ return 874;}
+-function VxObsEnum(){ return 875;}
+-function WeightsVxObsEnum(){ return 876;}
+-function VyObsEnum(){ return 877;}
+-function WeightsVyObsEnum(){ return 878;}
+-function MinVelEnum(){ return 879;}
+-function MaxVelEnum(){ return 880;}
+-function MinVxEnum(){ return 881;}
+-function MaxVxEnum(){ return 882;}
+-function MaxAbsVxEnum(){ return 883;}
+-function MinVyEnum(){ return 884;}
+-function MaxVyEnum(){ return 885;}
+-function MaxAbsVyEnum(){ return 886;}
+-function MinVzEnum(){ return 887;}
+-function MaxVzEnum(){ return 888;}
+-function MaxAbsVzEnum(){ return 889;}
+-function FloatingAreaEnum(){ return 890;}
+-function GroundedAreaEnum(){ return 891;}
+-function IceMassEnum(){ return 892;}
+-function IceVolumeEnum(){ return 893;}
+-function IceVolumeAboveFloatationEnum(){ return 894;}
+-function TotalSmbEnum(){ return 895;}
+-function AbsoluteEnum(){ return 896;}
+-function IncrementalEnum(){ return 897;}
+-function AugmentedLagrangianREnum(){ return 898;}
+-function AugmentedLagrangianRhopEnum(){ return 899;}
+-function AugmentedLagrangianRlambdaEnum(){ return 900;}
+-function AugmentedLagrangianRholambdaEnum(){ return 901;}
+-function AugmentedLagrangianThetaEnum(){ return 902;}
+-function NoneEnum(){ return 903;}
+-function AggressiveMigrationEnum(){ return 904;}
+-function SoftMigrationEnum(){ return 905;}
+-function SubelementMigrationEnum(){ return 906;}
+-function SubelementMigration2Enum(){ return 907;}
+-function ContactEnum(){ return 908;}
+-function GroundingOnlyEnum(){ return 909;}
+-function MaskGroundediceLevelsetEnum(){ return 910;}
+-function GaussSegEnum(){ return 911;}
+-function GaussTriaEnum(){ return 912;}
+-function GaussTetraEnum(){ return 913;}
+-function GaussPentaEnum(){ return 914;}
+-function FSSolverEnum(){ return 915;}
+-function AdjointEnum(){ return 916;}
+-function ColinearEnum(){ return 917;}
+-function ControlSteadyEnum(){ return 918;}
+-function FsetEnum(){ return 919;}
+-function Gradient1Enum(){ return 920;}
+-function Gradient2Enum(){ return 921;}
+-function Gradient3Enum(){ return 922;}
+-function GradientEnum(){ return 923;}
+-function GroundinglineMigrationEnum(){ return 924;}
+-function GsetEnum(){ return 925;}
+-function IndexEnum(){ return 926;}
+-function IndexedEnum(){ return 927;}
+-function IntersectEnum(){ return 928;}
+-function NodalEnum(){ return 929;}
+-function OldGradientEnum(){ return 930;}
+-function OutputBufferPointerEnum(){ return 931;}
+-function OutputBufferSizePointerEnum(){ return 932;}
+-function OutputFilePointerEnum(){ return 933;}
+-function ToolkitsFileNameEnum(){ return 934;}
+-function RootPathEnum(){ return 935;}
+-function OutputFileNameEnum(){ return 936;}
+-function InputFileNameEnum(){ return 937;}
+-function LockFileNameEnum(){ return 938;}
+-function RestartFileNameEnum(){ return 939;}
+-function ToolkitsOptionsAnalysesEnum(){ return 940;}
+-function ToolkitsOptionsStringsEnum(){ return 941;}
+-function QmuErrNameEnum(){ return 942;}
+-function QmuInNameEnum(){ return 943;}
+-function QmuOutNameEnum(){ return 944;}
+-function RegularEnum(){ return 945;}
+-function ScaledEnum(){ return 946;}
+-function SeparateEnum(){ return 947;}
+-function SsetEnum(){ return 948;}
+-function VerboseEnum(){ return 949;}
+-function TriangleInterpEnum(){ return 950;}
+-function BilinearInterpEnum(){ return 951;}
+-function NearestInterpEnum(){ return 952;}
+-function XYEnum(){ return 953;}
+-function XYZEnum(){ return 954;}
+-function DenseEnum(){ return 955;}
+-function MpiDenseEnum(){ return 956;}
+-function MpiSparseEnum(){ return 957;}
+-function SeqEnum(){ return 958;}
+-function MpiEnum(){ return 959;}
+-function MumpsEnum(){ return 960;}
+-function GslEnum(){ return 961;}
+-function OptionEnum(){ return 962;}
+-function GenericOptionEnum(){ return 963;}
+-function OptionCellEnum(){ return 964;}
+-function OptionStructEnum(){ return 965;}
+-function CuffeyEnum(){ return 966;}
+-function PatersonEnum(){ return 967;}
+-function ArrheniusEnum(){ return 968;}
+-function LliboutryDuvalEnum(){ return 969;}
+-function TransientIslevelsetEnum(){ return 970;}
+-function SpcLevelsetEnum(){ return 971;}
+-function ExtrapolationVariableEnum(){ return 972;}
+-function IceMaskNodeActivationEnum(){ return 973;}
+-function LevelsetfunctionSlopeXEnum(){ return 974;}
+-function LevelsetfunctionSlopeYEnum(){ return 975;}
+-function LevelsetfunctionPicardEnum(){ return 976;}
+-function SealevelriseSolutionEnum(){ return 977;}
+-function SealevelriseAnalysisEnum(){ return 978;}
+-function SealevelriseSEnum(){ return 979;}
+-function SealevelriseDeltathicknessEnum(){ return 980;}
+-function SealevelriseMaxiterEnum(){ return 981;}
+-function SealevelriseReltolEnum(){ return 982;}
+-function SealevelriseAbstolEnum(){ return 983;}
+-function SealevelriseLoveHEnum(){ return 984;}
+-function SealevelriseLoveKEnum(){ return 985;}
+-function SealevelriseRigidEnum(){ return 986;}
+-function SealevelriseElasticEnum(){ return 987;}
+-function SealevelriseEustaticEnum(){ return 988;}
+-function SealevelriseGElasticEnum(){ return 989;}
+-function SealevelriseDegaccEnum(){ return 990;}
+-function SealevelriseRequestedOutputsEnum(){ return 991;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 992;}
+-function MaximumNumberOfDefinitionsEnum(){ return 993;}
++function TransientIscouplerEnum(){ return 349;}
++function TransientIsstressbalanceEnum(){ return 350;}
++function TransientIsgroundinglineEnum(){ return 351;}
++function TransientIsmasstransportEnum(){ return 352;}
++function TransientIsthermalEnum(){ return 353;}
++function TransientIsgiaEnum(){ return 354;}
++function TransientIsdamageevolutionEnum(){ return 355;}
++function TransientIshydrologyEnum(){ return 356;}
++function TransientIscalvingEnum(){ return 357;}
++function TransientIsslrEnum(){ return 358;}
++function TransientNumRequestedOutputsEnum(){ return 359;}
++function TransientRequestedOutputsEnum(){ return 360;}
++function PotentialEnum(){ return 361;}
++function BalancethicknessSpcpotentialEnum(){ return 362;}
++function BalancethicknessApparentMassbalanceEnum(){ return 363;}
++function Balancethickness2MisfitEnum(){ return 364;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 365;}
++function BalancethicknessCmuEnum(){ return 366;}
++function BalancethicknessOmegaEnum(){ return 367;}
++function BalancethicknessD0Enum(){ return 368;}
++function SmbEnum(){ return 369;}
++function SmbAnalysisEnum(){ return 370;}
++function SmbSolutionEnum(){ return 371;}
++function SmbNumRequestedOutputsEnum(){ return 372;}
++function SmbRequestedOutputsEnum(){ return 373;}
++function SmbIsInitializedEnum(){ return 374;}
++function SMBforcingEnum(){ return 375;}
++function SmbMassBalanceEnum(){ return 376;}
++function SMBgembEnum(){ return 377;}
++function SmbInitDensityScalingEnum(){ return 378;}
++function SmbTaEnum(){ return 379;}
++function SmbVEnum(){ return 380;}
++function SmbDswrfEnum(){ return 381;}
++function SmbDlwrfEnum(){ return 382;}
++function SmbPEnum(){ return 383;}
++function SmbSwfEnum(){ return 384;}
++function SmbEAirEnum(){ return 385;}
++function SmbPAirEnum(){ return 386;}
++function SmbTmeanEnum(){ return 387;}
++function SmbCEnum(){ return 388;}
++function SmbTzEnum(){ return 389;}
++function SmbVzEnum(){ return 390;}
++function SmbDtEnum(){ return 391;}
++function SmbDzEnum(){ return 392;}
++function SmbAIdxEnum(){ return 393;}
++function SmbSwIdxEnum(){ return 394;}
++function SmbDenIdxEnum(){ return 395;}
++function SmbZTopEnum(){ return 396;}
++function SmbDzTopEnum(){ return 397;}
++function SmbDzMinEnum(){ return 398;}
++function SmbZYEnum(){ return 399;}
++function SmbZMaxEnum(){ return 400;}
++function SmbZMinEnum(){ return 401;}
++function SmbOutputFreqEnum(){ return 402;}
++function SmbASnowEnum(){ return 403;}
++function SmbAIceEnum(){ return 404;}
++function SmbCldFracEnum(){ return 405;}
++function SmbT0wetEnum(){ return 406;}
++function SmbT0dryEnum(){ return 407;}
++function SmbKEnum(){ return 408;}
++function SmbDEnum(){ return 409;}
++function SmbReEnum(){ return 410;}
++function SmbGdnEnum(){ return 411;}
++function SmbGspEnum(){ return 412;}
++function SmbECEnum(){ return 413;}
++function SmbCondensationEnum(){ return 414;}
++function SmbWEnum(){ return 415;}
++function SmbAEnum(){ return 416;}
++function SmbTEnum(){ return 417;}
++function SmbIsgraingrowthEnum(){ return 418;}
++function SmbIsalbedoEnum(){ return 419;}
++function SmbIsshortwaveEnum(){ return 420;}
++function SmbIsthermalEnum(){ return 421;}
++function SmbIsaccumulationEnum(){ return 422;}
++function SmbIsmeltEnum(){ return 423;}
++function SmbIsdensificationEnum(){ return 424;}
++function SmbIsturbulentfluxEnum(){ return 425;}
++function SMBpddEnum(){ return 426;}
++function SmbDelta18oEnum(){ return 427;}
++function SmbDelta18oSurfaceEnum(){ return 428;}
++function SmbIsdelta18oEnum(){ return 429;}
++function SmbIsmungsmEnum(){ return 430;}
++function SmbIsd18opdEnum(){ return 431;}
++function SmbPrecipitationsPresentdayEnum(){ return 432;}
++function SmbPrecipitationsLgmEnum(){ return 433;}
++function SmbTemperaturesPresentdayEnum(){ return 434;}
++function SmbTemperaturesLgmEnum(){ return 435;}
++function SmbPrecipitationEnum(){ return 436;}
++function SmbDesfacEnum(){ return 437;}
++function SmbS0pEnum(){ return 438;}
++function SmbS0tEnum(){ return 439;}
++function SmbRlapsEnum(){ return 440;}
++function SmbRlapslgmEnum(){ return 441;}
++function SmbPfacEnum(){ return 442;}
++function SmbTdiffEnum(){ return 443;}
++function SmbSealevEnum(){ return 444;}
++function SMBd18opddEnum(){ return 445;}
++function SmbDpermilEnum(){ return 446;}
++function SMBgradientsEnum(){ return 447;}
++function SmbMonthlytemperaturesEnum(){ return 448;}
++function SmbHrefEnum(){ return 449;}
++function SmbSmbrefEnum(){ return 450;}
++function SmbBPosEnum(){ return 451;}
++function SmbBNegEnum(){ return 452;}
++function SMBhenningEnum(){ return 453;}
++function SMBcomponentsEnum(){ return 454;}
++function SmbAccumulationEnum(){ return 455;}
++function SmbEvaporationEnum(){ return 456;}
++function SmbRunoffEnum(){ return 457;}
++function SMBmeltcomponentsEnum(){ return 458;}
++function SmbMeltEnum(){ return 459;}
++function SmbRefreezeEnum(){ return 460;}
++function SMBgcmEnum(){ return 461;}
++function SmbIspddEnum(){ return 462;}
++function SmbIssmbgradientsEnum(){ return 463;}
++function SolutionTypeEnum(){ return 464;}
++function AnalysisTypeEnum(){ return 465;}
++function ConfigurationTypeEnum(){ return 466;}
++function AdjointBalancethicknessAnalysisEnum(){ return 467;}
++function AdjointBalancethickness2AnalysisEnum(){ return 468;}
++function AdjointHorizAnalysisEnum(){ return 469;}
++function AnalysisCounterEnum(){ return 470;}
++function DefaultAnalysisEnum(){ return 471;}
++function BalancethicknessAnalysisEnum(){ return 472;}
++function BalancethicknessSolutionEnum(){ return 473;}
++function Balancethickness2AnalysisEnum(){ return 474;}
++function Balancethickness2SolutionEnum(){ return 475;}
++function BalancethicknessSoftAnalysisEnum(){ return 476;}
++function BalancethicknessSoftSolutionEnum(){ return 477;}
++function BalancevelocityAnalysisEnum(){ return 478;}
++function BalancevelocitySolutionEnum(){ return 479;}
++function L2ProjectionEPLAnalysisEnum(){ return 480;}
++function L2ProjectionBaseAnalysisEnum(){ return 481;}
++function BedSlopeSolutionEnum(){ return 482;}
++function DamageEvolutionSolutionEnum(){ return 483;}
++function DamageEvolutionAnalysisEnum(){ return 484;}
++function StressbalanceAnalysisEnum(){ return 485;}
++function StressbalanceSIAAnalysisEnum(){ return 486;}
++function StressbalanceSolutionEnum(){ return 487;}
++function StressbalanceVerticalAnalysisEnum(){ return 488;}
++function EnthalpyAnalysisEnum(){ return 489;}
++function FlaimAnalysisEnum(){ return 490;}
++function FlaimSolutionEnum(){ return 491;}
++function HydrologyShreveAnalysisEnum(){ return 492;}
++function HydrologyDCInefficientAnalysisEnum(){ return 493;}
++function HydrologyDCEfficientAnalysisEnum(){ return 494;}
++function HydrologySommersAnalysisEnum(){ return 495;}
++function HydrologySolutionEnum(){ return 496;}
++function MeltingAnalysisEnum(){ return 497;}
++function MasstransportAnalysisEnum(){ return 498;}
++function MasstransportSolutionEnum(){ return 499;}
++function FreeSurfaceBaseAnalysisEnum(){ return 500;}
++function FreeSurfaceTopAnalysisEnum(){ return 501;}
++function SurfaceNormalVelocityEnum(){ return 502;}
++function ExtrudeFromBaseAnalysisEnum(){ return 503;}
++function ExtrudeFromTopAnalysisEnum(){ return 504;}
++function DepthAverageAnalysisEnum(){ return 505;}
++function SteadystateSolutionEnum(){ return 506;}
++function SurfaceSlopeSolutionEnum(){ return 507;}
++function SmoothAnalysisEnum(){ return 508;}
++function ThermalAnalysisEnum(){ return 509;}
++function ThermalSolutionEnum(){ return 510;}
++function TransientSolutionEnum(){ return 511;}
++function UzawaPressureAnalysisEnum(){ return 512;}
++function GiaSolutionEnum(){ return 513;}
++function GiaAnalysisEnum(){ return 514;}
++function MeshdeformationSolutionEnum(){ return 515;}
++function MeshdeformationAnalysisEnum(){ return 516;}
++function LevelsetAnalysisEnum(){ return 517;}
++function LevelsetStabilizationEnum(){ return 518;}
++function ExtrapolationAnalysisEnum(){ return 519;}
++function LsfReinitializationAnalysisEnum(){ return 520;}
++function ApproximationEnum(){ return 521;}
++function NoneApproximationEnum(){ return 522;}
++function SIAApproximationEnum(){ return 523;}
++function SSAApproximationEnum(){ return 524;}
++function SSAHOApproximationEnum(){ return 525;}
++function SSAFSApproximationEnum(){ return 526;}
++function L1L2ApproximationEnum(){ return 527;}
++function HOApproximationEnum(){ return 528;}
++function HOFSApproximationEnum(){ return 529;}
++function FSApproximationEnum(){ return 530;}
++function FSvelocityEnum(){ return 531;}
++function FSpressureEnum(){ return 532;}
++function DataSetEnum(){ return 533;}
++function ConstraintsEnum(){ return 534;}
++function LoadsEnum(){ return 535;}
++function MaterialsEnum(){ return 536;}
++function NodesEnum(){ return 537;}
++function ContoursEnum(){ return 538;}
++function ParametersEnum(){ return 539;}
++function VerticesEnum(){ return 540;}
++function ResultsEnum(){ return 541;}
++function GenericParamEnum(){ return 542;}
++function AdolcParamEnum(){ return 543;}
++function BoolInputEnum(){ return 544;}
++function BoolParamEnum(){ return 545;}
++function ContourEnum(){ return 546;}
++function ControlInputEnum(){ return 547;}
++function DatasetInputEnum(){ return 548;}
++function DoubleInputEnum(){ return 549;}
++function DoubleArrayInputEnum(){ return 550;}
++function DataSetParamEnum(){ return 551;}
++function DoubleMatArrayParamEnum(){ return 552;}
++function DoubleMatParamEnum(){ return 553;}
++function DoubleParamEnum(){ return 554;}
++function DoubleVecParamEnum(){ return 555;}
++function ElementEnum(){ return 556;}
++function ElementHookEnum(){ return 557;}
++function HookEnum(){ return 558;}
++function ExternalResultEnum(){ return 559;}
++function FileParamEnum(){ return 560;}
++function InputEnum(){ return 561;}
++function IntInputEnum(){ return 562;}
++function InputToExtrudeEnum(){ return 563;}
++function InputToL2ProjectEnum(){ return 564;}
++function InputToDepthaverageEnum(){ return 565;}
++function InputToSmoothEnum(){ return 566;}
++function SmoothThicknessMultiplierEnum(){ return 567;}
++function IntParamEnum(){ return 568;}
++function IntVecParamEnum(){ return 569;}
++function TransientParamEnum(){ return 570;}
++function MaticeEnum(){ return 571;}
++function MatdamageiceEnum(){ return 572;}
++function MatparEnum(){ return 573;}
++function NodeEnum(){ return 574;}
++function NumericalfluxEnum(){ return 575;}
++function NumericalfluxTypeEnum(){ return 576;}
++function NeumannfluxEnum(){ return 577;}
++function ParamEnum(){ return 578;}
++function MoulinEnum(){ return 579;}
++function PengridEnum(){ return 580;}
++function PenpairEnum(){ return 581;}
++function ProfilerEnum(){ return 582;}
++function MatrixParamEnum(){ return 583;}
++function MassconEnum(){ return 584;}
++function MassconNameEnum(){ return 585;}
++function MassconDefinitionenumEnum(){ return 586;}
++function MassconLevelsetEnum(){ return 587;}
++function MassconaxpbyEnum(){ return 588;}
++function MassconaxpbyNameEnum(){ return 589;}
++function MassconaxpbyDefinitionenumEnum(){ return 590;}
++function MassconaxpbyNamexEnum(){ return 591;}
++function MassconaxpbyNameyEnum(){ return 592;}
++function MassconaxpbyAlphaEnum(){ return 593;}
++function MassconaxpbyBetaEnum(){ return 594;}
++function NodeSIdEnum(){ return 595;}
++function VectorParamEnum(){ return 596;}
++function RiftfrontEnum(){ return 597;}
++function RiftfrontTypeEnum(){ return 598;}
++function SegmentEnum(){ return 599;}
++function SegmentRiftfrontEnum(){ return 600;}
++function SpcDynamicEnum(){ return 601;}
++function SpcStaticEnum(){ return 602;}
++function SpcTransientEnum(){ return 603;}
++function StringArrayParamEnum(){ return 604;}
++function StringParamEnum(){ return 605;}
++function SegEnum(){ return 606;}
++function SegInputEnum(){ return 607;}
++function TriaEnum(){ return 608;}
++function TriaInputEnum(){ return 609;}
++function TetraEnum(){ return 610;}
++function TetraInputEnum(){ return 611;}
++function PentaEnum(){ return 612;}
++function PentaInputEnum(){ return 613;}
++function VertexEnum(){ return 614;}
++function VertexPIdEnum(){ return 615;}
++function VertexSIdEnum(){ return 616;}
++function AirEnum(){ return 617;}
++function IceEnum(){ return 618;}
++function MelangeEnum(){ return 619;}
++function WaterEnum(){ return 620;}
++function ClosedEnum(){ return 621;}
++function FreeEnum(){ return 622;}
++function OpenEnum(){ return 623;}
++function AdjointpEnum(){ return 624;}
++function AdjointxEnum(){ return 625;}
++function AdjointyEnum(){ return 626;}
++function AdjointzEnum(){ return 627;}
++function BalancethicknessMisfitEnum(){ return 628;}
++function BedSlopeXEnum(){ return 629;}
++function BedSlopeYEnum(){ return 630;}
++function BoundaryEnum(){ return 631;}
++function ConvergedEnum(){ return 632;}
++function FillEnum(){ return 633;}
++function FractionIncrementEnum(){ return 634;}
++function FrictionEnum(){ return 635;}
++function InternalEnum(){ return 636;}
++function MassFluxEnum(){ return 637;}
++function MeltingOffsetEnum(){ return 638;}
++function MisfitEnum(){ return 639;}
++function PressureEnum(){ return 640;}
++function PressurePicardEnum(){ return 641;}
++function AndroidFrictionCoefficientEnum(){ return 642;}
++function ResetPenaltiesEnum(){ return 643;}
++function SegmentOnIceShelfEnum(){ return 644;}
++function SurfaceAbsVelMisfitEnum(){ return 645;}
++function SurfaceAreaEnum(){ return 646;}
++function SurfaceAverageVelMisfitEnum(){ return 647;}
++function SurfaceLogVelMisfitEnum(){ return 648;}
++function SurfaceLogVxVyMisfitEnum(){ return 649;}
++function SurfaceRelVelMisfitEnum(){ return 650;}
++function SurfaceSlopeXEnum(){ return 651;}
++function SurfaceSlopeYEnum(){ return 652;}
++function TemperatureEnum(){ return 653;}
++function TemperaturePicardEnum(){ return 654;}
++function TemperaturePDDEnum(){ return 655;}
++function ThicknessAbsMisfitEnum(){ return 656;}
++function SurfaceAbsMisfitEnum(){ return 657;}
++function VelEnum(){ return 658;}
++function VelocityEnum(){ return 659;}
++function VxAverageEnum(){ return 660;}
++function VxEnum(){ return 661;}
++function VxPicardEnum(){ return 662;}
++function VyAverageEnum(){ return 663;}
++function VyEnum(){ return 664;}
++function VyPicardEnum(){ return 665;}
++function VzEnum(){ return 666;}
++function VzSSAEnum(){ return 667;}
++function VzHOEnum(){ return 668;}
++function VzPicardEnum(){ return 669;}
++function VzFSEnum(){ return 670;}
++function VxMeshEnum(){ return 671;}
++function VyMeshEnum(){ return 672;}
++function VzMeshEnum(){ return 673;}
++function EnthalpyEnum(){ return 674;}
++function EnthalpyPicardEnum(){ return 675;}
++function ThicknessAbsGradientEnum(){ return 676;}
++function ThicknessAlongGradientEnum(){ return 677;}
++function ThicknessAcrossGradientEnum(){ return 678;}
++function ThicknessPositiveEnum(){ return 679;}
++function IntMatParamEnum(){ return 680;}
++function RheologyBbarAbsGradientEnum(){ return 681;}
++function RheologyBAbsGradientEnum(){ return 682;}
++function DragCoefficientAbsGradientEnum(){ return 683;}
++function TransientInputEnum(){ return 684;}
++function WaterfractionEnum(){ return 685;}
++function WatercolumnEnum(){ return 686;}
++function BasalFrictionEnum(){ return 687;}
++function ViscousHeatingEnum(){ return 688;}
++function HydrologyWaterVxEnum(){ return 689;}
++function HydrologyWaterVyEnum(){ return 690;}
++function DrivingStressXEnum(){ return 691;}
++function DrivingStressYEnum(){ return 692;}
++function SigmaNNEnum(){ return 693;}
++function StressTensorEnum(){ return 694;}
++function StressTensorxxEnum(){ return 695;}
++function StressTensorxyEnum(){ return 696;}
++function StressTensorxzEnum(){ return 697;}
++function StressTensoryyEnum(){ return 698;}
++function StressTensoryzEnum(){ return 699;}
++function StressTensorzzEnum(){ return 700;}
++function StressMaxPrincipalEnum(){ return 701;}
++function DeviatoricStressEnum(){ return 702;}
++function DeviatoricStressxxEnum(){ return 703;}
++function DeviatoricStressxyEnum(){ return 704;}
++function DeviatoricStressxzEnum(){ return 705;}
++function DeviatoricStressyyEnum(){ return 706;}
++function DeviatoricStressyzEnum(){ return 707;}
++function DeviatoricStresszzEnum(){ return 708;}
++function DeviatoricStresseffectiveEnum(){ return 709;}
++function StrainRateEnum(){ return 710;}
++function StrainRatexxEnum(){ return 711;}
++function StrainRatexyEnum(){ return 712;}
++function StrainRatexzEnum(){ return 713;}
++function StrainRateyyEnum(){ return 714;}
++function StrainRateyzEnum(){ return 715;}
++function StrainRatezzEnum(){ return 716;}
++function DivergenceEnum(){ return 717;}
++function MaxDivergenceEnum(){ return 718;}
++function GiaCrossSectionShapeEnum(){ return 719;}
++function GiadWdtEnum(){ return 720;}
++function GiaWEnum(){ return 721;}
++function P0Enum(){ return 722;}
++function P0ArrayEnum(){ return 723;}
++function P1Enum(){ return 724;}
++function P1DGEnum(){ return 725;}
++function P1bubbleEnum(){ return 726;}
++function P1bubblecondensedEnum(){ return 727;}
++function P2Enum(){ return 728;}
++function P2bubbleEnum(){ return 729;}
++function P2bubblecondensedEnum(){ return 730;}
++function P2xP1Enum(){ return 731;}
++function P1xP2Enum(){ return 732;}
++function P1xP3Enum(){ return 733;}
++function P2xP4Enum(){ return 734;}
++function P1P1Enum(){ return 735;}
++function P1P1GLSEnum(){ return 736;}
++function MINIEnum(){ return 737;}
++function MINIcondensedEnum(){ return 738;}
++function TaylorHoodEnum(){ return 739;}
++function LATaylorHoodEnum(){ return 740;}
++function XTaylorHoodEnum(){ return 741;}
++function OneLayerP4zEnum(){ return 742;}
++function CrouzeixRaviartEnum(){ return 743;}
++function LACrouzeixRaviartEnum(){ return 744;}
++function SaveResultsEnum(){ return 745;}
++function BoolExternalResultEnum(){ return 746;}
++function DoubleExternalResultEnum(){ return 747;}
++function DoubleMatExternalResultEnum(){ return 748;}
++function IntExternalResultEnum(){ return 749;}
++function JEnum(){ return 750;}
++function StringExternalResultEnum(){ return 751;}
++function StepEnum(){ return 752;}
++function TimeEnum(){ return 753;}
++function WaterColumnOldEnum(){ return 754;}
++function OutputdefinitionEnum(){ return 755;}
++function Outputdefinition1Enum(){ return 756;}
++function Outputdefinition2Enum(){ return 757;}
++function Outputdefinition3Enum(){ return 758;}
++function Outputdefinition4Enum(){ return 759;}
++function Outputdefinition5Enum(){ return 760;}
++function Outputdefinition6Enum(){ return 761;}
++function Outputdefinition7Enum(){ return 762;}
++function Outputdefinition8Enum(){ return 763;}
++function Outputdefinition9Enum(){ return 764;}
++function Outputdefinition10Enum(){ return 765;}
++function Outputdefinition11Enum(){ return 766;}
++function Outputdefinition12Enum(){ return 767;}
++function Outputdefinition13Enum(){ return 768;}
++function Outputdefinition14Enum(){ return 769;}
++function Outputdefinition15Enum(){ return 770;}
++function Outputdefinition16Enum(){ return 771;}
++function Outputdefinition17Enum(){ return 772;}
++function Outputdefinition18Enum(){ return 773;}
++function Outputdefinition19Enum(){ return 774;}
++function Outputdefinition20Enum(){ return 775;}
++function Outputdefinition21Enum(){ return 776;}
++function Outputdefinition22Enum(){ return 777;}
++function Outputdefinition23Enum(){ return 778;}
++function Outputdefinition24Enum(){ return 779;}
++function Outputdefinition25Enum(){ return 780;}
++function Outputdefinition26Enum(){ return 781;}
++function Outputdefinition27Enum(){ return 782;}
++function Outputdefinition28Enum(){ return 783;}
++function Outputdefinition29Enum(){ return 784;}
++function Outputdefinition30Enum(){ return 785;}
++function Outputdefinition31Enum(){ return 786;}
++function Outputdefinition32Enum(){ return 787;}
++function Outputdefinition33Enum(){ return 788;}
++function Outputdefinition34Enum(){ return 789;}
++function Outputdefinition35Enum(){ return 790;}
++function Outputdefinition36Enum(){ return 791;}
++function Outputdefinition37Enum(){ return 792;}
++function Outputdefinition38Enum(){ return 793;}
++function Outputdefinition39Enum(){ return 794;}
++function Outputdefinition40Enum(){ return 795;}
++function Outputdefinition41Enum(){ return 796;}
++function Outputdefinition42Enum(){ return 797;}
++function Outputdefinition43Enum(){ return 798;}
++function Outputdefinition44Enum(){ return 799;}
++function Outputdefinition45Enum(){ return 800;}
++function Outputdefinition46Enum(){ return 801;}
++function Outputdefinition47Enum(){ return 802;}
++function Outputdefinition48Enum(){ return 803;}
++function Outputdefinition49Enum(){ return 804;}
++function Outputdefinition50Enum(){ return 805;}
++function Outputdefinition51Enum(){ return 806;}
++function Outputdefinition52Enum(){ return 807;}
++function Outputdefinition53Enum(){ return 808;}
++function Outputdefinition54Enum(){ return 809;}
++function Outputdefinition55Enum(){ return 810;}
++function Outputdefinition56Enum(){ return 811;}
++function Outputdefinition57Enum(){ return 812;}
++function Outputdefinition58Enum(){ return 813;}
++function Outputdefinition59Enum(){ return 814;}
++function Outputdefinition60Enum(){ return 815;}
++function Outputdefinition61Enum(){ return 816;}
++function Outputdefinition62Enum(){ return 817;}
++function Outputdefinition63Enum(){ return 818;}
++function Outputdefinition64Enum(){ return 819;}
++function Outputdefinition65Enum(){ return 820;}
++function Outputdefinition66Enum(){ return 821;}
++function Outputdefinition67Enum(){ return 822;}
++function Outputdefinition68Enum(){ return 823;}
++function Outputdefinition69Enum(){ return 824;}
++function Outputdefinition70Enum(){ return 825;}
++function Outputdefinition71Enum(){ return 826;}
++function Outputdefinition72Enum(){ return 827;}
++function Outputdefinition73Enum(){ return 828;}
++function Outputdefinition74Enum(){ return 829;}
++function Outputdefinition75Enum(){ return 830;}
++function Outputdefinition76Enum(){ return 831;}
++function Outputdefinition77Enum(){ return 832;}
++function Outputdefinition78Enum(){ return 833;}
++function Outputdefinition79Enum(){ return 834;}
++function Outputdefinition80Enum(){ return 835;}
++function Outputdefinition81Enum(){ return 836;}
++function Outputdefinition82Enum(){ return 837;}
++function Outputdefinition83Enum(){ return 838;}
++function Outputdefinition84Enum(){ return 839;}
++function Outputdefinition85Enum(){ return 840;}
++function Outputdefinition86Enum(){ return 841;}
++function Outputdefinition87Enum(){ return 842;}
++function Outputdefinition88Enum(){ return 843;}
++function Outputdefinition89Enum(){ return 844;}
++function Outputdefinition90Enum(){ return 845;}
++function Outputdefinition91Enum(){ return 846;}
++function Outputdefinition92Enum(){ return 847;}
++function Outputdefinition93Enum(){ return 848;}
++function Outputdefinition94Enum(){ return 849;}
++function Outputdefinition95Enum(){ return 850;}
++function Outputdefinition96Enum(){ return 851;}
++function Outputdefinition97Enum(){ return 852;}
++function Outputdefinition98Enum(){ return 853;}
++function Outputdefinition99Enum(){ return 854;}
++function Outputdefinition100Enum(){ return 855;}
++function OutputdefinitionListEnum(){ return 856;}
++function MassfluxatgateEnum(){ return 857;}
++function MassfluxatgateNameEnum(){ return 858;}
++function MassfluxatgateDefinitionenumEnum(){ return 859;}
++function MassfluxatgateSegmentsEnum(){ return 860;}
++function NodalvalueEnum(){ return 861;}
++function NodalvalueNameEnum(){ return 862;}
++function NodalvalueDefinitionenumEnum(){ return 863;}
++function NodalvalueModelEnum(){ return 864;}
++function NodalvalueNodeEnum(){ return 865;}
++function MisfitNameEnum(){ return 866;}
++function MisfitDefinitionenumEnum(){ return 867;}
++function MisfitModelEnum(){ return 868;}
++function MisfitObservationEnum(){ return 869;}
++function MisfitObservationEnum(){ return 870;}
++function MisfitLocalEnum(){ return 871;}
++function MisfitTimeinterpolationEnum(){ return 872;}
++function MisfitWeightsEnum(){ return 873;}
++function MisfitWeightsEnum(){ return 874;}
++function SurfaceObservationEnum(){ return 875;}
++function WeightsSurfaceObservationEnum(){ return 876;}
++function VxObsEnum(){ return 877;}
++function WeightsVxObsEnum(){ return 878;}
++function VyObsEnum(){ return 879;}
++function WeightsVyObsEnum(){ return 880;}
++function MinVelEnum(){ return 881;}
++function MaxVelEnum(){ return 882;}
++function MinVxEnum(){ return 883;}
++function MaxVxEnum(){ return 884;}
++function MaxAbsVxEnum(){ return 885;}
++function MinVyEnum(){ return 886;}
++function MaxVyEnum(){ return 887;}
++function MaxAbsVyEnum(){ return 888;}
++function MinVzEnum(){ return 889;}
++function MaxVzEnum(){ return 890;}
++function MaxAbsVzEnum(){ return 891;}
++function FloatingAreaEnum(){ return 892;}
++function GroundedAreaEnum(){ return 893;}
++function IceMassEnum(){ return 894;}
++function IceVolumeEnum(){ return 895;}
++function IceVolumeAboveFloatationEnum(){ return 896;}
++function TotalSmbEnum(){ return 897;}
++function AbsoluteEnum(){ return 898;}
++function IncrementalEnum(){ return 899;}
++function AugmentedLagrangianREnum(){ return 900;}
++function AugmentedLagrangianRhopEnum(){ return 901;}
++function AugmentedLagrangianRlambdaEnum(){ return 902;}
++function AugmentedLagrangianRholambdaEnum(){ return 903;}
++function AugmentedLagrangianThetaEnum(){ return 904;}
++function NoneEnum(){ return 905;}
++function AggressiveMigrationEnum(){ return 906;}
++function SoftMigrationEnum(){ return 907;}
++function SubelementMigrationEnum(){ return 908;}
++function SubelementMigration2Enum(){ return 909;}
++function ContactEnum(){ return 910;}
++function GroundingOnlyEnum(){ return 911;}
++function MaskGroundediceLevelsetEnum(){ return 912;}
++function GaussSegEnum(){ return 913;}
++function GaussTriaEnum(){ return 914;}
++function GaussTetraEnum(){ return 915;}
++function GaussPentaEnum(){ return 916;}
++function FSSolverEnum(){ return 917;}
++function AdjointEnum(){ return 918;}
++function ColinearEnum(){ return 919;}
++function ControlSteadyEnum(){ return 920;}
++function FsetEnum(){ return 921;}
++function Gradient1Enum(){ return 922;}
++function Gradient2Enum(){ return 923;}
++function Gradient3Enum(){ return 924;}
++function GradientEnum(){ return 925;}
++function GroundinglineMigrationEnum(){ return 926;}
++function GsetEnum(){ return 927;}
++function IndexEnum(){ return 928;}
++function IndexedEnum(){ return 929;}
++function IntersectEnum(){ return 930;}
++function NodalEnum(){ return 931;}
++function OldGradientEnum(){ return 932;}
++function OutputBufferPointerEnum(){ return 933;}
++function OutputBufferSizePointerEnum(){ return 934;}
++function OutputFilePointerEnum(){ return 935;}
++function ToolkitsFileNameEnum(){ return 936;}
++function RootPathEnum(){ return 937;}
++function OutputFileNameEnum(){ return 938;}
++function InputFileNameEnum(){ return 939;}
++function LockFileNameEnum(){ return 940;}
++function RestartFileNameEnum(){ return 941;}
++function ToolkitsOptionsAnalysesEnum(){ return 942;}
++function ToolkitsOptionsStringsEnum(){ return 943;}
++function QmuErrNameEnum(){ return 944;}
++function QmuInNameEnum(){ return 945;}
++function QmuOutNameEnum(){ return 946;}
++function RegularEnum(){ return 947;}
++function ScaledEnum(){ return 948;}
++function SeparateEnum(){ return 949;}
++function SsetEnum(){ return 950;}
++function VerboseEnum(){ return 951;}
++function TriangleInterpEnum(){ return 952;}
++function BilinearInterpEnum(){ return 953;}
++function NearestInterpEnum(){ return 954;}
++function XYEnum(){ return 955;}
++function XYZEnum(){ return 956;}
++function DenseEnum(){ return 957;}
++function MpiDenseEnum(){ return 958;}
++function MpiSparseEnum(){ return 959;}
++function SeqEnum(){ return 960;}
++function MpiEnum(){ return 961;}
++function MumpsEnum(){ return 962;}
++function GslEnum(){ return 963;}
++function OptionEnum(){ return 964;}
++function GenericOptionEnum(){ return 965;}
++function OptionCellEnum(){ return 966;}
++function OptionStructEnum(){ return 967;}
++function CuffeyEnum(){ return 968;}
++function PatersonEnum(){ return 969;}
++function ArrheniusEnum(){ return 970;}
++function LliboutryDuvalEnum(){ return 971;}
++function TransientIslevelsetEnum(){ return 972;}
++function SpcLevelsetEnum(){ return 973;}
++function ExtrapolationVariableEnum(){ return 974;}
++function IceMaskNodeActivationEnum(){ return 975;}
++function LevelsetfunctionSlopeXEnum(){ return 976;}
++function LevelsetfunctionSlopeYEnum(){ return 977;}
++function LevelsetfunctionPicardEnum(){ return 978;}
++function SealevelriseSolutionEnum(){ return 979;}
++function SealevelriseAnalysisEnum(){ return 980;}
++function SealevelriseSEnum(){ return 981;}
++function SealevelriseDeltathicknessEnum(){ return 982;}
++function SealevelriseMaxiterEnum(){ return 983;}
++function SealevelriseReltolEnum(){ return 984;}
++function SealevelriseAbstolEnum(){ return 985;}
++function SealevelriseLoveHEnum(){ return 986;}
++function SealevelriseLoveKEnum(){ return 987;}
++function SealevelriseRigidEnum(){ return 988;}
++function SealevelriseElasticEnum(){ return 989;}
++function SealevelriseEustaticEnum(){ return 990;}
++function SealevelriseGElasticEnum(){ return 991;}
++function SealevelriseDegaccEnum(){ return 992;}
++function SealevelriseRequestedOutputsEnum(){ return 993;}
++function SealevelriseNumRequestedOutputsEnum(){ return 994;}
++function MaximumNumberOfDefinitionsEnum(){ return 995;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20094)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20095)
+@@ -357,6 +357,7 @@
+ def TimesteppingTimeStepEnum(): return StringToEnum("TimesteppingTimeStep")[0]
+ def TimesteppingInterpForcingsEnum(): return StringToEnum("TimesteppingInterpForcings")[0]
+ def TransientIssmbEnum(): return StringToEnum("TransientIssmb")[0]
++def TransientIscouplerEnum(): return StringToEnum("TransientIscoupler")[0]
+ def TransientIsstressbalanceEnum(): return StringToEnum("TransientIsstressbalance")[0]
+ def TransientIsgroundinglineEnum(): return StringToEnum("TransientIsgroundingline")[0]
+ def TransientIsmasstransportEnum(): return StringToEnum("TransientIsmasstransport")[0]
+@@ -365,6 +366,7 @@
+ def TransientIsdamageevolutionEnum(): return StringToEnum("TransientIsdamageevolution")[0]
+ def TransientIshydrologyEnum(): return StringToEnum("TransientIshydrology")[0]
+ def TransientIscalvingEnum(): return StringToEnum("TransientIscalving")[0]
++def TransientIsslrEnum(): return StringToEnum("TransientIsslr")[0]
+ def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
+ def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
+ def PotentialEnum(): return StringToEnum("Potential")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20095-20096.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20095-20096.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20095-20096.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test410.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test410.py	(revision 20095)
++++ ../trunk-jpl/test/NightlyRun/test410.py	(revision 20096)
+@@ -20,7 +20,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure','Temperature','BasalforcingsGroundediceMeltingRate']
+-field_tolerances=[1e-09,1e-09,1e-08,1e-09,1e-13,3e-10,1e-06]
++field_tolerances=[1e-09,1e-09,1e-08,1e-09,1e-13,5e-10,1e-06]
+ field_values=[\
+ 	md.results.SteadystateSolution.Vx,\
+ 	md.results.SteadystateSolution.Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20096-20097.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20096-20097.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20096-20097.diff	(revision 20498)
@@ -0,0 +1,76 @@
+Index: ../trunk-jpl/scripts/BinRead.py
+===================================================================
+--- ../trunk-jpl/scripts/BinRead.py	(revision 20096)
++++ ../trunk-jpl/scripts/BinRead.py	(revision 20097)
+@@ -5,13 +5,13 @@
+ import numpy
+ import math
+ import struct
++import argparse
++from MatlabFuncs import *
++from EnumDefinitions import *
++from EnumToString import EnumToString
+ 
+-def BinRead(filin,filout=''):
++def BinRead(filin,filout=''): #{{{
+ 
+-	from MatlabFuncs import *
+-	from EnumDefinitions import *
+-	from EnumToString import EnumToString
+-
+ 	print "reading binary file."
+ 	f=open(filin,'rb')
+ 
+@@ -104,25 +104,24 @@
+ 					print "data[%d,%d] = %f" % (i,j,data[i][j])
+ 
+ 		elif code == FormatToCode('MatArray'):
+-			fid.seek(reclen-4,1)
++			f.seek(reclen-4,1)
+ 			print "skipping %d bytes for code %d." % (code, reclen-4)
+ 
+ 		elif code == FormatToCode('StringArray'):
+-			fid.seek(reclen-4,1)
++			f.seek(reclen-4,1)
+ 			print "skipping %d bytes for code %d." % (code, reclen-4)
+ 
+ 		else:
+ 			raise TypeError('BinRead error message: data type: %d not supported yet! (%s)' % (code,EnumToString(enum)[0]))
+ 
+ 	f.close()
+-
++#}}}
+ def FormatToCode(format): # {{{
+ 	"""
+ 	This routine takes the format string, and hardcodes it into an integer, which 
+ 	is passed along the record, in order to identify the nature of the dataset being 
+ 	sent.
+ 	"""
+-	from MatlabFuncs import *
+ 
+ 	if   strcmpi(format,'Boolean'):
+ 		code=1
+@@ -148,7 +147,7 @@
+ 	return code
+ # }}}
+ 
+-if __name__ == '__main__':
++if __name__ == '__main__': #{{{
+ 	if 'PYTHONSTARTUP' in os.environ:
+ 		PYTHONSTARTUP=os.environ['PYTHONSTARTUP']
+ 		print 'PYTHONSTARTUP =',PYTHONSTARTUP
+@@ -160,10 +159,10 @@
+ 		else:
+ 			print "PYTHONSTARTUP file '%s' does not exist." % PYTHONSTARTUP
+ 
+-	import argparse
+ 	parser = argparse.ArgumentParser(description='BinRead - function to read binary input file.')
+ 	parser.add_argument('-f','--filin', help='name of binary input file', default='')
++	parser.add_argument('-o','--filout', help='optional name of text output file', default='')
+ 	args = parser.parse_args()
+ 
+-	BinRead(args.filin)
+-
++	BinRead(args.filin, args.filout)
++#}}}
+\ No newline at end of file
Index: /issm/oecreview/Archive/19101-20495/ISSM-20097-20098.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20097-20098.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20097-20098.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20097)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20098)
+@@ -1276,15 +1276,15 @@
+ 				vec_spc->SetValue(element->nodes[i]->Sid(),1.,INS_VAL);
+ 				break;
+ 			case 2:
+-				// temperate, thin refreezing base: release spc
+-				vec_spc->SetValue(element->nodes[i]->Sid(),0.,INS_VAL);
++				// temperate, thin refreezing base: 
++				vec_spc->SetValue(element->nodes[i]->Sid(),1.,INS_VAL);
+ 				break;
+ 			case 3:
+ 				// temperate, thin melting base: set spc
+ 				vec_spc->SetValue(element->nodes[i]->Sid(),1.,INS_VAL);
+ 				break;
+ 			case 4:
+-				// temperate, thick melting base: s
++				// temperate, thick melting base:
+ 				vec_spc->SetValue(element->nodes[i]->Sid(),1.,INS_VAL);
+ 				break;
+ 			default:
Index: /issm/oecreview/Archive/19101-20495/ISSM-20098-20099.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20098-20099.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20098-20099.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive325.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20099-20100.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20099-20100.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20099-20100.diff	(revision 20498)
@@ -0,0 +1,93 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 0)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20100)
+@@ -0,0 +1,82 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
++	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=8 \
++	--enable-debugging \
++	--enable-development'
++
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2011b.app/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools install.sh                
++						matlab    install.sh                
++						mpich     install-3.0-macosx64.sh    
++						cmake     install.sh                
++						m1qn3     install.sh    
++						petsc     install-3.5-macosx64.sh
++						triangle  install-macosx64.sh 
++						shell2junit  install.sh "
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=1
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++##                                                                   bamg mesh   FS                     
++MATLAB_NROPTIONS="'exclude',[218 234 235 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/macosx_pine-island
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20100-20101.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20100-20101.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20100-20101.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20100)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20101)
+@@ -19,7 +19,7 @@
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2011b.app/"
++MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -68,7 +68,7 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
++NUMCPUS_INSTALL=3
+ 
+ #number of cpus used in the nightly runs.
+ NUMCPUS_RUN=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-20101-20102.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20101-20102.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20101-20102.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20101)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20102)
+@@ -30,6 +30,8 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/local/bin/svn'
++SVNVERSION='/usr/local/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
Index: /issm/oecreview/Archive/19101-20495/ISSM-20102-20103.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20102-20103.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20102-20103.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20102)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20103)
+@@ -314,7 +314,7 @@
+ 					 MEXLINK=$(cat conftest.tmp | grep LDFLAGS  | sed -e "s/LDFLAGS ://g")
+ 					 MEXLIB=$( cat conftest.tmp | grep LINKLIBS | sed -e "s/LINKLIBS ://g")
+ 					 MEXEXT=$( cat conftest.tmp | grep LDEXT    | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
+-					 rm -f conftest.tmp
++					 dnl rm -f conftest.tmp
+ 				fi
+ 
+ 				dnl Make sure mexFunction.map is not in MEXLIB to avoid problems with global variables
+@@ -572,6 +572,8 @@
+ 		AC_SUBST([DAKOTAINCL])
+ 		AC_SUBST([DAKOTAFLAGS])
+ 		AC_SUBST([DAKOTALIB])
++	else
++		AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 	fi
+ 	AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
+ 	dnl }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20103-20104.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20103-20104.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20103-20104.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20103)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20104)
+@@ -314,7 +314,7 @@
+ 					 MEXLINK=$(cat conftest.tmp | grep LDFLAGS  | sed -e "s/LDFLAGS ://g")
+ 					 MEXLIB=$( cat conftest.tmp | grep LINKLIBS | sed -e "s/LINKLIBS ://g")
+ 					 MEXEXT=$( cat conftest.tmp | grep LDEXT    | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
+-					 dnl rm -f conftest.tmp
++					 rm -f conftest.tmp
+ 				fi
+ 
+ 				dnl Make sure mexFunction.map is not in MEXLIB to avoid problems with global variables
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20103)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20104)
+@@ -70,10 +70,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=3
++NUMCPUS_INSTALL=4
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
++NUMCPUS_RUN=2
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20104-20105.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20104-20105.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20104-20105.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20104)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20105)
+@@ -80,5 +80,5 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ ##                                                                   bamg mesh   FS                     
+-MATLAB_NROPTIONS="'exclude',[218 234 235 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
++MATLAB_NROPTIONS="'exclude',[218 234 235 234 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-20105-20106.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20105-20106.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20105-20106.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20105)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20106)
+@@ -80,5 +80,5 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ ##                                                                   bamg mesh   FS                     
+-MATLAB_NROPTIONS="'exclude',[218 234 235 234 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
++MATLAB_NROPTIONS="'exclude',[218 235 234 243 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
+ PYTHON_NROPTIONS=""
Index: /issm/oecreview/Archive/19101-20495/ISSM-20106-20107.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20106-20107.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20106-20107.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test455.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test455.py	(revision 20106)
++++ ../trunk-jpl/test/NightlyRun/test455.py	(revision 20107)
+@@ -23,7 +23,7 @@
+ 	md.flowequation.fe_HO=i
+ 	md=solve(md,StressbalanceSolutionEnum())
+ 	field_names     =field_names+['Vx'+i,'Vy'+i,'Vz'+i,'Vel'+i,'Pressure'+i]
+-	field_tolerances=field_tolerances+[5e-08,4e-08,1e-08,4e-08,3e-13]
++	field_tolerances=field_tolerances+[5e-08,4e-08,5e-08,5e-08,3e-13]
+ 	field_values=field_values+[\
+ 			md.results.StressbalanceSolution.Vx,\
+ 			md.results.StressbalanceSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test455.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test455.m	(revision 20106)
++++ ../trunk-jpl/test/NightlyRun/test455.m	(revision 20107)
+@@ -13,7 +13,7 @@
+ 	md.flowequation.fe_HO=i{1};
+ 	md=solve(md,StressbalanceSolutionEnum());
+ 	field_names     ={field_names{:},['Vx' i{1}],['Vy' i{1}],['Vz' i{1}],['Vel' i{1}],['Pressure' i{1}]};
+-	field_tolerances={field_tolerances{:},5e-08,4e-08,1e-08,4e-08,3e-13};
++	field_tolerances={field_tolerances{:},5e-08,4e-08,5e-08,5e-08,3e-13};
+ 	field_values={field_values{:},...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20107-20108.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20107-20108.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20107-20108.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/src/m/materials/DepthAvgTempCond.py
+===================================================================
+--- ../trunk-jpl/src/m/materials/DepthAvgTempCond.py	(revision 20107)
++++ ../trunk-jpl/src/m/materials/DepthAvgTempCond.py	(revision 20108)
+@@ -1,34 +0,0 @@
+-import numpy as npy
+-from TMeltingPoint  import TMeltingPoint
+-
+-def DepthAvgTempCond(md):
+-   ''' compute conduction dependent temperature profile for an ice sheet. 
+-   Usage:
+-   Tbar=DepthAvgTempCond(md)
+-   '''
+-
+-   Tpmp=TMeltingPoint(md.materials.meltingpoint,0) #pressure melting point at 0 pressure.
+-
+-   k=md.materials.thermalconductivity
+-   G=md.basalforcings.geothermalflux
+-   H=md.geometry.thickness
+-   Ts=md.initialization.temperature
+-   alpha=G*H/k
+-
+-   Tbar=npy.zeros(md.mesh.numberofvertices,)
+-
+-   #find temperature average when we are below melting point: 
+-   pos=npy.nonzero( Ts+alpha < Tpmp)
+-   if pos:
+-	   Tbar[pos]=Ts[pos]+alpha[pos]/2 
+-
+-   pos=npy.nonzero( Ts+alpha>= Tpmp)
+-   if pos:
+-	   Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2/alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)/alpha[pos]
+-   
+-   #on ice shelf, easier: 
+-   pos=npy.nonzero(md.mask.groundedice_levelset[0]<=0)
+-   if pos:
+-	   Tbar[pos]=(Ts[pos]+Tpmp)/2
+-
+-   return Tbar
+Index: ../trunk-jpl/src/m/materials/DepthAvgTempCond.m
+===================================================================
+--- ../trunk-jpl/src/m/materials/DepthAvgTempCond.m	(revision 20107)
++++ ../trunk-jpl/src/m/materials/DepthAvgTempCond.m	(revision 20108)
+@@ -1,25 +0,0 @@
+-function Tbar=DepthAvgTempCond(md)
+-%DEPTHAVGTEMPCOND- compute conduction dependent temperature profile for an ice sheet. 
+-%
+-%   Usage:
+-%   Tbar=DepthAvgTempCond(md)
+-
+-Tpmp=TMeltingPoint(md.materials.meltingpoint,0); %pressure melting point at 0 pressure.
+-k=md.materials.thermalconductivity;
+-G=md.basalforcings.geothermalflux; 
+-H=md.geometry.thickness;
+-Ts=md.initialization.temperature;
+-alpha=G.*H/k;
+-
+-Tbar=zeros(md.mesh.numberofvertices,1);
+-
+-%find temperature average when we are below melting point: 
+-pos=find( (Ts+alpha) <Tpmp);
+-Tbar(pos)=Ts(pos)+alpha(pos)/2;
+-
+-pos=find( (Ts+alpha) >=Tpmp);
+-Tbar(pos)=Tpmp+(Tpmp^2-Ts(pos).^2)/2./alpha(pos)+ Tpmp*(Ts(pos)-Tpmp)./alpha(pos);
+-
+-%on ice shelf, easier: 
+-pos=find(md.mask.groundedice_levelset<=0);
+-Tbar(pos)=(Ts(pos)+Tpmp)/2;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20108-20109.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20108-20109.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20108-20109.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/mesh/augment2dmesh.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/augment2dmesh.m	(revision 20108)
++++ ../trunk-jpl/src/m/mesh/augment2dmesh.m	(revision 20109)
+@@ -11,29 +11,28 @@
+ %First process options
+ options=pairoptions(varargin{:});
+ 
+-%Offset the mesh2 elements: 
++%Offset the mesh band elements: 
+ mhband.elements=mhband.elements+mh.numberofvertices;
+ mhband.segments(:,1:2)=mhband.segments(:,1:2)+mh.numberofvertices;
+ mhband.segments(:,3)=mhband.segments(:,3)+mh.numberofelements;
+ 
+-%The innner segment of md2 and the outer segments of md1 are identical. Go into  the elements of 
+-%md2 and set them to their md1 equivalent: 
+-flag=0;
+-if flag,
+-	for i=1:length(mhband.segments),
+-		node2=mhband.segments(i,1);
+-		%this node2 has an equivalent on the segments  of md1: 
+-		for j=1:length(mh.segments),
+-			node1=mh.segments(j,1);
+-			if mhband.x(node2-mh.numberofvertices) == mh.x(node1) &&  mhband.y(node2-mh.numberofvertices) == mh.y(node1),
+-				%go into the mesh of md2, and replace by node1.
+-				pos=find(mhband.elements==node2); mhband.elements(pos)=node1;
+-				segs=mhband.segments(:,1:2); pos=find(segs==node2); segs(pos)=node1; mhband.segments(:,1:2)=segs;
+-				break;
+-			end
++%The innner segments of mhband and the outer segments of mh are identical. Go into  the elements of 
++%mhband and set them to their md1 equivalent: 
++tol=1; %1 meter 
++for i=1:length(mhband.segments),
++	node2=mhband.segments(i,1);
++	%this node2 has an equivalent on the segments  of mdh: 
++	for j=1:length(mh.segments),
++		node1=mh.segments(j,1);
++		%if mhband.x(node2-mh.numberofvertices) == mh.x(node1) &&  mhband.y(node2-mh.numberofvertices) == mh.y(node1),
++		if sqrt((mhband.x(node2-mh.numberofvertices) - mh.x(node1))^2 + (mhband.y(node2-mh.numberofvertices) - mh.y(node1))^2)<tol,
++			%go into the mesh of mhband, and replace by node1.
++			pos=find(mhband.elements==node2); mhband.elements(pos)=node1;
++			segs=mhband.segments(:,1:2); pos=find(segs==node2); segs(pos)=node1; mhband.segments(:,1:2)=segs;
++			break;
+ 		end
+ 	end
+-end	
++end
+ 
+ %Do the merge: 
+ mh.elements=[mh.elements;mhband.elements];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20109-20110.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20109-20110.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20109-20110.diff	(revision 20498)
@@ -0,0 +1,99 @@
+Index: ../trunk-jpl/src/m/classes/sealevelmodel.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 20110)
+@@ -0,0 +1,94 @@
++%SEALEVELMODEL class definition
++%
++%   Usage:
++%      slm = sealevelmodel(varargin)
++%
++%      where varargin is a variable list of options: 
++%
++%   Example: 
++%      slm = sealevel('icecap',md_greenland,'icecap',md_antarctica,'earth',md_earth);
++
++classdef sealevelmodel
++	properties (SetAccess=public) %Model fields
++		% {{{
++		icecaps          = {}; % list of ice cap models
++		earth            = 0;  % model for the whole earth
++		cluster          = 0;
++		miscellaneous    = 0;
++		settings         = 0;
++		private          = 0;
++		%}}}
++	end
++	methods
++		function slm = sealevelmodel(varargin) % {{{
++
++			if nargin==0, 
++				slm=setdefaultparameters(slm);
++			else 
++				slm=setdefaultparameters(slm);
++
++				options=pairoptions(varargin{:}); 
++			
++				%recover all the icecap models: 
++				slm.icecaps=getfieldvalues(options,'ice_cap',{}); 
++				bandwidths=getfieldvalues(options,'bandwidth',{200000});
++				
++				%recover the earth model:
++				slm.earth = getfieldvalue(options,'earth');
++
++				%start plugging the ice caps into the earth model: 
++				earth=slm.earth;
++				for i=1:length(slm.icecaps),
++					icecap=slm.icecaps{i};
++					icecap.mesh.segments=alignsegments(icecap.mesh.segments);
++
++					%call patch routine:
++					if icecap.mesh.epsg==3413, hem=1; else hem=-1; end
++					earth.mesh=patchglobe(earth.mesh,icecap.mesh,'hem',hem,'bandwidth',bandwidths{i},'plot',1);
++				end
++
++				
++				%build transition matrices: 
++				%disp('sealevelmodel: building  icecap transition tables');
++				%[C,ia,ib]=intersect([slm.earth.mesh.lat slm.earth.mesh.long],[slm.icecaps{i}.mesh.lat slm.icecaps{i}.mesh.long],'rows');
++
++				
++			end
++		end
++		%}}}
++		function checkconsistency(slm,solutiontype) % {{{
++
++			%is the coupler turned on? 
++			for i=1:length(slm.icecaps),
++				if slm.icecaps{i}.transient.iscoupler==0,
++					error(sprintf('sealevelmodel checkconsistenty error:  icecap model %s should have the transient coupler option turned on!',slm.icecaps{i}.miscellaneous.name));
++				end
++			end
++				
++			if slm.earth.transient.iscoupler==0,
++				error('sealevelmodel checkconsistenty error:  earth model should have the transient coupler option turned on!');
++			end
++
++
++		end
++		%}}}
++		function slm = setdefaultparameters(slm) % {{{
++
++			%initialize subclasses
++			slm.icecaps           = {};
++			slm.earth             = {};
++			slm.miscellaneous     = miscellaneous();
++			slm.settings          = settings();
++			slm.private           = private();
++			slm.cluster           = generic();
++		end
++		%}}}
++		function disp(self) % {{{
++			disp(sprintf('%19s: %-22s -- %s','icecaps'         ,['[' num2str(length(self.icecaps)) 'x1 ' class(self.icecaps) ']'],'ice caps'));
++			disp(sprintf('%19s: %-22s -- %s','earth'           ,['[1x1 ' class(self.earth) ']'],'earth'));
++			disp(sprintf('%19s: %-22s -- %s','settings'        ,['[1x1 ' class(self.settings) ']'],'settings properties'));
++			disp(sprintf('%19s: %-22s -- %s','cluster'         ,['[1x1 ' class(self.cluster) ']'],'cluster parameters (number of cpus...)'));
++			disp(sprintf('%19s: %-22s -- %s','miscellaneous'   ,['[1x1 ' class(self.miscellaneous) ']'],'miscellaneous fields'));
++		end % }}}
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20110-20111.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20110-20111.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20110-20111.diff	(revision 20498)
@@ -0,0 +1,77 @@
+Index: ../trunk-jpl/src/m/mesh/patchglobe.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/patchglobe.m	(revision 20110)
++++ ../trunk-jpl/src/m/mesh/patchglobe.m	(revision 20111)
+@@ -4,12 +4,14 @@
+ 	options=pairoptions(varargin{:});
+ 
+ 	%recover basic options:
+-	hem=getfieldvalue(options,'hem');
+ 	bandwidth=getfieldvalue(options,'bandwidth',100000);
+ 
+ 	%give ourselves a unique temporary directory: 
+ 	temproot=tempname; mkdir(temproot);
+ 
++	%align external segments on 2d model: 
++	mh2d.segments=alignsegments(mh2d.segments);
++
+ 	%figure out domain outline: 
+ 	meshtodomain(mh2d,[temproot '/Patch.exp']);
+ 
+@@ -17,13 +19,9 @@
+ 	expcoarsen([temproot '/PatchBroad.exp'],[temproot '/Patch.exp'],200000);
+ 	expcontract([temproot '/PatchBroad.exp'],[temproot '/PatchBroad.exp'],-bandwidth);
+ 
+-	%now flag vertices that are within the contour:
+-	[x,y]=ll2xy(mh.lat,mh.long,hem);
+-	if hem==1,
+-		flagsnods=ContourToNodes(x,y,[temproot '/PatchBroad.exp'],1) & mh.lat>=0;
+-	else
+-		flagsnods=ContourToNodes(x,y,[temproot '/PatchBroad.exp'],1) & mh.lat<=0;
+-	end
++	%now flag vertices (from mh2d's broad contour that are on the global mesh: do this in the local 2d mesh reference system. 
++	[x,y]=gdaltransform(mh.long,mh.lat,'EPSG:4326',['EPSG:' num2str(mh2d.epsg)]);
++	flagsnods=ContourToNodes(x,y,[temproot '/PatchBroad.exp'],1);
+ 
+ 	%expand flags to any element that touches the contour: 
+ 	pos=find(sum(flagsnods(mh.elements),2));
+@@ -36,14 +34,16 @@
+ 	mh.segments=alignsegments(mh.segments);
+ 
+ 	%x,y for segments: 
+-	[xsegs,ysegs]=ll2xy(mh.lat(mh.segments(:,1)),mh.long(mh.segments(:,1)),hem);
++	[xsegs,ysegs]=gdaltransform(mh.long(mh.segments(:,1)),mh.lat(mh.segments(:,1)),'EPSG:4326',['EPSG:' num2str(mh2d.epsg)]);
+ 
+-	%create contour out of these segments:
++	%create lat,long contour out of these segments:
+ 	meshtodomain(mh,[temproot '/PatchEnveloppe.exp'],'latlong','on');
+-	expll2xy([temproot '/PatchEnveloppe.exp'],hem);
++		
++	%get these lat,long transformed to local mesh referencial:
++	env=expread([temproot '/PatchEnveloppe.exp']); 
++	[env.x,env.y]=gdaltransform(env.x,env.y,'EPSG:4326',['EPSG:' num2str(mh2d.epsg)]);
+ 
+ 	%now, create domain outine from broad enveloppe and initial mesh 
+-	env=expread([temproot '/PatchEnveloppe.exp']); 
+ 	dom=expread([temproot '/Patch.exp']);
+ 	
+ 	%close the contours:
+@@ -60,6 +60,9 @@
+ 	domain(2)=dom;
+ 	expwrite(domain,[temproot '/PatchBand.exp']);
+ 
++	%plot mesh: 
++	if  getfieldvalue(options,'plot',0), expdisp([temproot '/PatchBand.exp']); end
++
+ 	%mesh: 
+ 	mdb=bamg(model(),'domain',[temproot '/PatchBand.exp'],'MaxCornerAngle',1e-15,'gradation',10000); 
+ 	mhb=mdb.mesh; clear mdb;
+@@ -70,7 +73,7 @@
+ 	end
+ 
+ 	%augment patch with band
+-	[mhb.lat,mhb.long]=xy2ll(mhb.x,mhb.y,hem);
++	[mhb.long,mhb.lat]=gdaltransform(mhb.x,mhb.y,['EPSG:' num2str(mh2d.epsg)],'EPSG:4326');
+ 	mh2db=augment2dmesh(mh2d,mhb);
+ 
+ 	%merge inner band and earth: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20111-20112.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20111-20112.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20111-20112.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh	(revision 20111)
++++ ../trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh	(revision 20112)
+@@ -3,15 +3,23 @@
+ 
+ rm -rf install
+ 
+-# On OSX 10.6, gfortran gets installed in /usr/local/gfortran 
+-#export CC="/usr/local/gfortran/bin/gcc"
+-#export CXX="/usr/local/gfortran/bin/g++"
++export F77="/usr/local/gfortran/bin/x86_64-apple-darwin10-gfortran"
++export CC="/usr/bin/gcc"
++export CXX="/usr/bin/g++"
++export FFLAGS=-ff2c
+ 
++#clean up
++rm -rf numpy
++rm -rf numpy-1.7.0b2
++
+ #download numpy first
+-git clone https://github.com/numpy/numpy.git
++#export GIT_SSL_NO_VERIFY=true 
++#git clone https://github.com/numpy/numpy.git
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/numpy-1.7.0b2.tar.gz' 'numpy-1.7.0b2.tar.gz'
+ 
+ #install numpy
+-cd numpy
++tar -zxvf numpy-1.7.0b2.tar.gz
++cd numpy-1.7.0b2
+ python setup.py build
+ python setup.py install
+ cd ..
Index: /issm/oecreview/Archive/19101-20495/ISSM-20112-20113.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20112-20113.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20112-20113.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20112)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20113)
+@@ -36,7 +36,7 @@
+ 	/*Loop through vertices: */
+ 	for(i=i0;i<i1;i++){
+ 
+-		IssmDouble d0=pow(10,10);
++		IssmDouble d0=pow(10.,10.);
+ 
+ 		IssmDouble xi,yi;
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20113-20114.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20113-20114.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20113-20114.diff	(revision 20498)
@@ -0,0 +1,142 @@
+Index: ../trunk-jpl/externalpackages/boost/install-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-macosx-snowleopard.sh	(revision 20113)
++++ ../trunk-jpl/externalpackages/boost/install-macosx-snowleopard.sh	(revision 20114)
+@@ -1,35 +0,0 @@
+-#!/bin/bash
+-
+-#Note of caution:  stop after boostrap phase, and run 
+-#bjam --debug-configuration, to figure out which paths boost is using to include 
+-#python. make sure everyone of these paths is covered by python. If not, just make 
+-#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
+-#to get the boost library to include python support without doing that. 
+-
+-#Some cleanup
+-rm -rf install boost_1_49_0 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_49_0.tar.gz' 'boost_1_49_0.tar.gz'
+-
+-#Untar 
+-tar -zxvf  boost_1_49_0.tar.gz
+-
+-#Move boost into install directory
+-mv boost_1_49_0/* src
+-rm -rf boost_1_49_0
+-#Configure and compile
+-cd src 
+-./bootstrap.sh \
+-	--prefix="$ISSM_DIR/externalpackages/boost/install" \
+-	--with-python=python2.7 \
+-	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
+-
+-#Compile boost
+-#./b2 address-model=32 architecture=x86 cxxflags="-arch i386" variant=release threading=multi install
+-./b2 toolset=darwin address-model=32 architecture=x86 variant=release threading=multi install
+-
+-#put bjam into install also: 
+-mkdir ../install/bin
+-cp bjam ../install/bin
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-macosx-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-macosx-snowleopard.sh	(revision 20114)
+@@ -0,0 +1,45 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++#patch src/boost/atomic/detail/cas128strong.hpp ./configs/1.55/cas128strong.hpp.patch
++#patch src/boost/atomic/detail/gcc-atomic.hpp ./configs/1.55/gcc-atomic.hpp.patch
++patch src/tools/build/v2/user-config.jam ./configs/1.55/user-config.jam.patch
++patch src/tools/build/v2/tools/darwin.jam ./configs/1.55/darwin.jam.patch
++patch src/tools/build/v2/tools/darwin.py ./configs/1.55/darwin.py.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python2.7 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++# Need gcc with iconv installed in a location that has been added to your path
++./bjam toolset=darwin-std0x link=static install
++
++#./b2 toolset=clang cxxflags=-stdlib=libstdc++ linkflags=-stdlib=libstdc++ -j2 variant=release link=static threading=multi instal
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/boost/install-1.49-macosx-snowleopard.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.49-macosx-snowleopard.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.49-macosx-snowleopard.sh	(revision 20114)
+@@ -0,0 +1,35 @@
++#!/bin/bash
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_49_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_49_0.tar.gz' 'boost_1_49_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_49_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_49_0/* src
++rm -rf boost_1_49_0
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python2.7 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++#./b2 address-model=32 architecture=x86 cxxflags="-arch i386" variant=release threading=multi install
++./b2 toolset=darwin address-model=32 architecture=x86 variant=release threading=multi install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.49-macosx-snowleopard.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20114-20115.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20114-20115.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20114-20115.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20114)
++++ ../trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp	(revision 20115)
+@@ -36,7 +36,7 @@
+ 	/*Loop through vertices: */
+ 	for(i=i0;i<i1;i++){
+ 
+-		IssmDouble d0=pow(10.,10.);
++		IssmDouble d0=pow(10.,10);
+ 
+ 		IssmDouble xi,yi;
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20115-20116.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20115-20116.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20115-20116.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20115)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20116)
+@@ -1486,6 +1486,11 @@
+ 				name==SurfaceSlopeXEnum ||
+ 				name==SurfaceSlopeYEnum ||
+ 				name==SmbMassBalanceEnum ||
++				name==SmbAccumulationEnum ||
++				name==SmbRunoffEnum ||
++				name==SmbMeltEnum ||
++				name==SmbRefreezeEnum ||
++				name==SmbEvaporationEnum ||
+ 				name==BasalforcingsGroundediceMeltingRateEnum ||
+ 				name==BasalforcingsFloatingiceMeltingRateEnum ||
+ 				name==BasalforcingsGeothermalfluxEnum ||
Index: /issm/oecreview/Archive/19101-20495/ISSM-20116-20117.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20116-20117.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20116-20117.diff	(revision 20498)
@@ -0,0 +1,507 @@
+Index: ../trunk-jpl/test/Archives/Archive802.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive803.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive805.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h	(revision 20116)
++++ ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h	(revision 20117)
+@@ -25,11 +25,12 @@
+ 	ElementMatrix* CreateJacobianMatrix(Element* element);
+ 	ElementMatrix* CreateKMatrix(Element* element);
+ 	ElementVector* CreatePVector(Element* element);
+-	void           GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
+-	void           GetBprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss);
++	void           GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss, int dim);
++	void           GetBprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss, int dim);
+ 	void           GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
+ 	void           GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index);
+ 	void           InputUpdateFromSolution(IssmDouble* solution,Element* element);
++	int				GetExtrapolationCase(Element* element);
+ 	void           SetConstraintsOnIce(Element* element);
+ 	void           UpdateConstraints(FemModel* femmodel);
+ };
+Index: ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp	(revision 20116)
++++ ../trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp	(revision 20117)
+@@ -58,7 +58,8 @@
+ 	/* Intermediaries */
+ 	bool save_results;
+ 	int extvar_enum; 
+-   femmodel->parameters->FindParam(&extvar_enum, ExtrapolationVariableEnum);
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&extvar_enum, ExtrapolationVariableEnum);
+ 
+ 	/*activate formulation: */
+ 	femmodel->SetCurrentConfiguration(ExtrapolationAnalysisEnum);
+@@ -66,11 +67,9 @@
+ 	if(VerboseSolution()) _printf0_("extrapolation of " << EnumToStringx(extvar_enum) << ": call computational core:\n");
+ 	solutionsequence_linear(femmodel);
+ 
+-	save_results=true;
+ 	if(save_results){
+ 		if(VerboseSolution()) _printf0_("   saving results\n");
+-		int outputs[2] = {VxEnum,VyEnum};
+-		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],2);
++		femmodel->RequestedOutputsx(&femmodel->results,&extvar_enum,1);
+ 	}
+ }/*}}}*/
+ ElementVector* ExtrapolationAnalysis::CreateDVector(Element* element){/*{{{*/
+@@ -83,32 +82,38 @@
+ }/*}}}*/
+ ElementMatrix* ExtrapolationAnalysis::CreateKMatrix(Element* element){/*{{{*/
+ 
+-	if(!element->IsOnBase()) return NULL;
+-	Element* basalelement = element->SpawnBasalElement();
+-
+ 	/*Intermediaries */
+-	int		   domaintype,dim;
+-	int        i,row,col,stabilization;
+-	bool	   extrapolatebydiffusion = true;
++	int	dim, domaintype, extrapolationcase;
++	int	i,row,col,stabilization;
++	bool	extrapolatebydiffusion;
+ 	IssmDouble Jdet,D_scalar,h;
+ 	IssmDouble norm_dlsf;
+ 	IssmDouble hx,hy,hz,kappa;
+-	IssmDouble* xyz_list = NULL;
++	IssmDouble*	xyz_list = NULL;
++	Element*		workelement=NULL;
+ 
+-	/*Get problem dimension*/
+-	basalelement->FindParam(&domaintype,DomainTypeEnum);
++	/*Get problem case*/
++	extrapolationcase=GetExtrapolationCase(element);
++	switch(extrapolationcase){
++		case 0:
++			if(!element->IsOnBase()) return NULL; 
++			workelement = element->SpawnBasalElement(); 
++			break;
++		case 1: case 2: case 3: workelement=element; break;
++	}
++	/* get extrapolation dimension */
++	workelement->FindParam(&domaintype,DomainTypeEnum);
+ 	switch(domaintype){
+-		case Domain2DverticalEnum:   dim = 1; break;
+-		case Domain2DhorizontalEnum: dim = 2; break;
+-		case Domain3DEnum:           dim = 2; break;
+-		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++		case Domain2DverticalEnum: dim=1; break;
++		case Domain2DhorizontalEnum: dim=2; break;
++		case Domain3DEnum: dim=3; break;
+ 	}
+ 
+ 	/*Fetch number of nodes and dof for this finite element*/
+-	int numnodes = basalelement->GetNumberOfNodes();
++	int numnodes = workelement->GetNumberOfNodes();
+ 
+ 	/*Initialize Element vector and other vectors*/
+-	ElementMatrix* Ke     = basalelement->NewElementMatrix();
++	ElementMatrix* Ke     = workelement->NewElementMatrix();
+ 	IssmDouble*    B      = xNew<IssmDouble>(dim*numnodes);
+ 	IssmDouble*    Bprime = xNew<IssmDouble>(dim*numnodes);
+ 	IssmDouble*		D	  = xNew<IssmDouble>(dim*dim);
+@@ -116,27 +121,27 @@
+ 	IssmDouble*		normal= xNew<IssmDouble>(dim);
+ 
+ 	/*Retrieve all inputs and parameters*/
+-	Input* lsf_slopex_input=basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
+-	Input* lsf_slopey_input=basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
+-	basalelement->GetVerticesCoordinates(&xyz_list);
+-	h = basalelement->CharacteristicLength();
++	Input* lsf_slopex_input=workelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
++	Input* lsf_slopey_input=workelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
++	workelement->GetVerticesCoordinates(&xyz_list);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+-	Gauss* gauss=basalelement->NewGauss(2);
++	Gauss* gauss=workelement->NewGauss(2);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){/*{{{*/
+ 		gauss->GaussPoint(ig);
+ 
+-		basalelement->JacobianDeterminant(&Jdet,xyz_list,gauss);
+-		GetB(B,basalelement,xyz_list,gauss);
+-		GetBprime(Bprime,basalelement,xyz_list,gauss);
++		workelement->JacobianDeterminant(&Jdet,xyz_list,gauss);
++		GetB(B,workelement,xyz_list,gauss,dim);
++		GetBprime(Bprime,workelement,xyz_list,gauss,dim);
+ 		
+ 		D_scalar=gauss->weight*Jdet;
+ 
++		extrapolatebydiffusion=true;
+ 		if(extrapolatebydiffusion){
+ 			/* diffuse values outward */
+ 			for(row=0;row<dim;row++)
+ 				for(col=0;col<dim;col++)
+-					if(row==col)
++					if(row==col && row<2) //extrapolate only in xy-plane
+ 						D[row*dim+col] = D_scalar;
+ 					else
+ 						D[row*dim+col] = 0.;
+@@ -150,7 +155,10 @@
+ 			/* extrapolate values along normal */
+ 			/* Get normal on ice boundary */
+ 			lsf_slopex_input->GetInputValue(&dlsf[0],gauss);
+-			lsf_slopey_input->GetInputValue(&dlsf[1],gauss);
++			if(dim>1)
++				lsf_slopey_input->GetInputValue(&dlsf[1],gauss);
++			if(dim>2)
++				dlsf[2]=0.;
+ 			norm_dlsf=0.;
+ 			for(i=0;i<dim;i++)	norm_dlsf+=dlsf[i]*dlsf[i]; 
+ 			norm_dlsf=sqrt(norm_dlsf); _assert_(norm_dlsf>0.);
+@@ -171,13 +179,14 @@
+ 						Bprime,dim,numnodes,0,
+ 						&Ke->values[0],1);
+ 
+-			/* Stabilization *//*{{{*/
++			/* stabilization *//*{{{*/
++			/* do not use streamline upwinding for extrapolation: it yields oscillating results due to diffusion along normal direction, but none across */
+ 			stabilization=1;
+ 			if (stabilization==0){/* no stabilization, do nothing*/}
+ 			else if(stabilization==1){
+ 				/* Artificial Diffusion */
+-				basalelement->ElementSizes(&hx,&hy,&hz);
+-				h=sqrt( pow(hx*normal[0],2) + pow(hy*normal[1],2));
++				workelement->ElementSizes(&hx,&hy,&hz);
++				h=sqrt(pow(hx*normal[0],2) + pow(hy*normal[1],2));
+ 				kappa=h/2.+1.e-14; 
+ 				for(row=0;row<dim;row++)
+ 					for(col=0;col<dim;col++)
+@@ -190,17 +199,7 @@
+ 							Bprime,dim,numnodes,0,
+ 							&Ke->values[0],1);
+ 			}
+-			else if(stabilization==2){
+-				/*Streamline upwinding - do not use this for extrapolation: yields oscillating results due to smoothing along normal, not across */
+-				for(row=0;row<dim;row++)
+-					for(col=0;col<dim;col++)
+-						D[row*dim+col]=h/(2.*1.)*normal[row]*normal[col];
+-
+-				TripleMultiply(Bprime,dim,numnodes,1,
+-							D,dim,dim,0,
+-							Bprime,dim,numnodes,0,
+-							&Ke->values[0],1);
+-			}/*}}}*/
++			/*}}}*/
+ 		}
+ 	}/*}}}*/
+ 
+@@ -212,31 +211,37 @@
+ 	xDelete<IssmDouble>(dlsf);
+ 	xDelete<IssmDouble>(normal);
+ 	delete gauss;
+-	if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
++	if(extrapolationcase==0){workelement->DeleteMaterials(); delete workelement;};
+ 	return Ke;
+ 
+ }/*}}}*/
+ ElementVector* ExtrapolationAnalysis::CreatePVector(Element* element){/*{{{*/
+ 
+-	if(!element->IsOnBase()) return NULL;
+-	Element* basalelement = element->SpawnBasalElement();
++	/*Intermediaries */
++	Element* workelement=NULL;
+ 
+-	/*Intermediaries */
+-	int i, domaintype;
+-	
++	/*Get problem dimension*/
++	int extrapolationcase=GetExtrapolationCase(element);
++	switch(extrapolationcase){
++		case 0: 
++			if(!element->IsOnBase()) return NULL; 
++			workelement = element->SpawnBasalElement(); 
++			break;
++		case 1: case 2: case 3: workelement=element; break;
++	}
++
+ 	/*Fetch number of nodes */
+-	int numnodes = basalelement->GetNumberOfNodes();
++	int numnodes = workelement->GetNumberOfNodes();
+ 
+ 	/*Initialize Element vector*/
+-	ElementVector* pe = basalelement->NewElementVector();
+-	for(i=0;i<numnodes;i++) 
++	ElementVector* pe = workelement->NewElementVector();
++	for(int i=0;i<numnodes;i++) 
+ 		pe->values[i]=0.; 
+ 
+-	basalelement->FindParam(&domaintype,DomainTypeEnum);
+-	if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
++	if(extrapolationcase==0){workelement->DeleteMaterials(); delete workelement;};
+ 	return pe;
+ }/*}}}*/
+-void           ExtrapolationAnalysis::GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
++void           ExtrapolationAnalysis::GetB(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss, int dim){/*{{{*/
+ 	/*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2. 
+ 	 * For node i, Bi can be expressed in the actual coordinate system
+ 	 * by: 
+@@ -255,15 +260,14 @@
+ 	element->NodalFunctions(basis,gauss);
+ 
+ 	/*Build B: */
+-	for(int i=0;i<numnodes;i++){
+-		B[numnodes*0+i] = basis[i];
+-		B[numnodes*1+i] = basis[i];
+-	}
++	for(int i=0;i<numnodes;i++)
++		for(int d=0;d<dim;d++)
++			B[numnodes*d+i] = basis[i];
+ 
+ 	/*Clean-up*/
+ 	xDelete<IssmDouble>(basis);
+ }/*}}}*/
+-void           ExtrapolationAnalysis::GetBprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
++void           ExtrapolationAnalysis::GetBprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss, int dim){/*{{{*/
+ 	/*Compute B'  matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2. 
+ 	 * For node i, Bi' can be expressed in the actual coordinate system
+ 	 * by: 
+@@ -278,14 +282,13 @@
+ 	int numnodes = element->GetNumberOfNodes();
+ 
+ 	/*Get nodal functions derivatives*/
+-	IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
++	IssmDouble* dbasis=xNew<IssmDouble>(dim*numnodes);
+ 	element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
+ 
+ 	/*Build B': */
+-	for(int i=0;i<numnodes;i++){
+-		Bprime[numnodes*0+i] = dbasis[0*numnodes+i];
+-		Bprime[numnodes*1+i] = dbasis[1*numnodes+i];
+-	}
++	for(int i=0;i<numnodes;i++)
++		for(int d=0;d<dim;d++)
++			Bprime[numnodes*d+i] = dbasis[d*numnodes+i];
+ 
+ 	/*Clean-up*/
+ 	xDelete<IssmDouble>(dbasis);
+@@ -299,19 +302,41 @@
+ }/*}}}*/
+ void           ExtrapolationAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
+ 
+-	int domaintype, extrapolationvariable;
+-	element->FindParam(&domaintype,DomainTypeEnum);
++	int extrapolationvariable, extrapolationcase;
++	extrapolationcase=GetExtrapolationCase(element);
+ 	element->FindParam(&extrapolationvariable, ExtrapolationVariableEnum);
+-	switch(domaintype){
+-		case Domain2DhorizontalEnum:
++	switch(extrapolationcase){
++		case 0:
+ 			element->InputUpdateFromSolutionOneDof(solution,extrapolationvariable);
+ 			break;
+-		case Domain3DEnum:
++		case 1:
++			element->InputUpdateFromSolutionOneDof(solution,extrapolationvariable);
++			break;
++		case 2:
+ 			element->InputUpdateFromSolutionOneDofCollapsed(solution,extrapolationvariable);
+ 			break;
+-		default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++		case 3:
++			element->InputUpdateFromSolutionOneDof(solution,extrapolationvariable);
++			break;
+ 	}
+ }/*}}}*/
++int				ExtrapolationAnalysis::GetExtrapolationCase(Element* element){/*{{{*/
++
++	/* Get case of extrapolation, depending on domain quality, and extrapolation variable */
++	int domaintype, extrapolationvariable;
++	int extrapolationcase;
++	element->FindParam(&domaintype,DomainTypeEnum);
++	switch(domaintype){
++		case Domain2DverticalEnum: extrapolationcase=0; break;
++		case Domain2DhorizontalEnum: extrapolationcase=1;break;
++		case Domain3DEnum:  
++			element->FindParam(&extrapolationvariable, ExtrapolationVariableEnum);
++			if(extrapolationvariable==ThicknessEnum) extrapolationcase=2; // scalar fields that are constant along z-axis
++			else extrapolationcase=3; // scalar fields that vary along z-axis
++			break;
++	}
++	return extrapolationcase;
++}/*}}}*/
+ void           ExtrapolationAnalysis::SetConstraintsOnIce(Element* element){/*{{{*/
+ 
+ 	int numnodes=element->GetNumberOfNodes();	
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20116)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20117)
+@@ -256,6 +256,7 @@
+ 					./cores/meshdeformation_core.cpp\
+ 					./cores/damage_core.cpp\
+ 					./cores/levelsetfunctionslope_core.cpp\
++					./cores/levelset_core.cpp\
+ 					./modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp\
+ 					./classes/Loads/Riftfront.cpp\
+ 					./modules/ConstraintsStatex/RiftConstraintsState.cpp\
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20116)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20117)
+@@ -101,35 +101,9 @@
+ 
+ 		if(isdamageevolution) damage_core(femmodel);
+ 
+-		if(islevelset){
+-			if(iscalving) Calvingx(femmodel);
+-			if(VerboseSolution()) _printf0_("   computing levelset transport\n");
+-			/* smoothen slope of lsf for computation of normal on ice domain*/
+-			levelsetfunctionslope_core(femmodel);
++		if(islevelset)	levelset_core(femmodel);
+ 
+-			/* extrapolate velocities onto domain with no ice */
+-			Analysis* extanalysis = new ExtrapolationAnalysis();
+-			const int nvars=3;
+-			int vars[nvars] = {VxEnum, VyEnum, ThicknessEnum};
+-			for(int iv=0;iv<nvars;iv++){
+-				femmodel->parameters->SetParam(vars[iv],ExtrapolationVariableEnum); 
+-				extanalysis->Core(femmodel);
+-			}
+-			delete extanalysis;	
+-
+-			/* solve level set equation */
+-			analysis = new LevelsetAnalysis();
+-			analysis->Core(femmodel);
+-			delete analysis;
+-
+-			/* update vertices included for next calculation */
+-			GetMaskOfIceVerticesLSMx(femmodel);
+-
+-			/* add computation domain mask to outputs */
+-			int outputs[1] = {IceMaskNodeActivationEnum};
+-			femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
+-		}
+-
++		/* from here on, prepare geometry for next time step*/
+ 		if(issmb)smb_core(femmodel);
+ 
+ 		if(ismasstransport){
+@@ -154,7 +128,7 @@
+ 			}
+ 		}
+ 
+-		/*Calculate new Basal melting on Floating ice*/
++		/*Calculate new basal melting on floating ice*/
+ 		FloatingiceMeltingRatex(femmodel);
+ 		
+ 		if(isgia){
+Index: ../trunk-jpl/src/c/cores/levelset_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 20117)
+@@ -0,0 +1,78 @@
++/*!\file: levelset_core.cpp
++ * \brief: levelset-module to update the ice domain
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../solutionsequences/solutionsequences.h"
++#include "../modules/modules.h"
++
++void levelset_core(FemModel* femmodel){
++
++	/* intermediaries */
++	bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,iscalving;
++	int domaintype, num_extrapol_vars, index;
++	int* extrapol_vars=NULL;
++	Analysis  *analysis=NULL;
++
++	/* recover parameters */
++	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
++	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
++	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
++	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
++	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
++	if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
++
++	if(!islevelset) return;
++
++	/* start the work from here */
++	if(iscalving) Calvingx(femmodel);
++	if(VerboseSolution()) _printf0_("   computing levelset transport\n");
++	/* smoothen slope of lsf for computation of normal on ice domain*/
++	levelsetfunctionslope_core(femmodel);
++
++	/* determine variables for extrapolation */
++	num_extrapol_vars=0;
++	if(isstressbalance) num_extrapol_vars+=2;
++	if(ismasstransport) num_extrapol_vars+=1;
++	if(isthermal && domaintype==Domain3DEnum) num_extrapol_vars+=1;
++	extrapol_vars=xNew<int>(num_extrapol_vars);
++	index=0;
++	if(isstressbalance){
++		extrapol_vars[index]=VxEnum; index++;
++		extrapol_vars[index]=VyEnum; index++;
++	}
++	if(ismasstransport){extrapol_vars[index]=ThicknessEnum; index++;}
++	if(isthermal && domaintype==Domain3DEnum){
++		if(isenthalpy){extrapol_vars[index]=EnthalpyEnum;}
++		else{extrapol_vars[index]=TemperatureEnum;}
++		index++;
++	}
++
++	/* extrapolate */
++	analysis = new ExtrapolationAnalysis();
++	for(int iv=0;iv<num_extrapol_vars;iv++){
++		femmodel->parameters->SetParam(extrapol_vars[iv],ExtrapolationVariableEnum); 
++		analysis->Core(femmodel);
++	}
++	xDelete<int>(extrapol_vars);
++	delete analysis;	
++
++	/* solve level set equation */
++	analysis = new LevelsetAnalysis();
++	analysis->Core(femmodel);
++	delete analysis;
++
++	/* update vertices included for next calculation */
++	GetMaskOfIceVerticesLSMx(femmodel);
++
++	/* add computation domain mask to outputs */
++	if(save_results){
++		int outputs[1] = {IceMaskNodeActivationEnum};
++		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
++	}
++}
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 20116)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 20117)
+@@ -23,6 +23,7 @@
+ void thermal_core(FemModel* femmodel);
+ void surfaceslope_core(FemModel* femmodel);
+ void levelsetfunctionslope_core(FemModel* femmodel);
++void levelset_core(FemModel* femmodel);
+ void bedslope_core(FemModel* femmodel);
+ void meshdeformation_core(FemModel* femmodel);
+ void control_core(FemModel* femmodel);
+Index: ../trunk-jpl/src/c/classes/Node.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.cpp	(revision 20116)
++++ ../trunk-jpl/src/c/classes/Node.cpp	(revision 20117)
+@@ -94,8 +94,7 @@
+ 				analysis_enum==BalancethicknessAnalysisEnum ||
+ 				analysis_enum==HydrologyDCInefficientAnalysisEnum ||
+ 				analysis_enum==HydrologyDCEfficientAnalysisEnum ||
+-				analysis_enum==LevelsetAnalysisEnum ||
+-				analysis_enum==ExtrapolationAnalysisEnum
++				analysis_enum==LevelsetAnalysisEnum
+ 				){
+ 		if(iomodel->domaintype!=Domain2DhorizontalEnum){
+ 			/*On a 3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
Index: /issm/oecreview/Archive/19101-20495/ISSM-20117-20118.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20117-20118.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20117-20118.diff	(revision 20498)
@@ -0,0 +1,78 @@
+Index: ../trunk-jpl/test/NightlyRun/test803.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.py	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test803.py	(revision 20118)
+@@ -39,7 +39,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3']
+ field_tolerances=[1e-10,1e-10,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 20118)
+@@ -27,7 +27,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3'};
+ field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,...
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
+ 		1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test803.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.m	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test803.m	(revision 20118)
+@@ -29,7 +29,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3'};
+ field_tolerances={1e-10,1e-10,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,...
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test805.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.py	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test805.py	(revision 20118)
+@@ -42,7 +42,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3']
+ field_tolerances=[1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,\
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+Index: ../trunk-jpl/test/NightlyRun/test805.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.m	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test805.m	(revision 20118)
+@@ -32,7 +32,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3'};
+ field_tolerances={1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,...
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 20117)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 20118)
+@@ -37,7 +37,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3']
+ field_tolerances=[1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,\
+-		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20118-20119.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20118-20119.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20118-20119.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test803.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.py	(revision 20118)
++++ ../trunk-jpl/test/NightlyRun/test803.py	(revision 20119)
+@@ -39,7 +39,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3']
+ field_tolerances=[1e-10,1e-10,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,\
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 20118)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 20119)
+@@ -27,7 +27,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3'};
+ field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,...
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,...
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,...
+ 		1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test803.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.m	(revision 20118)
++++ ../trunk-jpl/test/NightlyRun/test803.m	(revision 20119)
+@@ -29,7 +29,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Enthalpy2','Watercolumn2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Enthalpy3','Watercolumn3'};
+ field_tolerances={1e-10,1e-10,1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,...
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,1e-10,...
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 20118)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 20119)
+@@ -37,7 +37,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3']
+ field_tolerances=[1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,\
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,\
++		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20119-20120.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20119-20120.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20119-20120.diff	(revision 20498)
@@ -0,0 +1,209 @@
+Index: ../trunk-jpl/src/m/solve/solve.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.py	(revision 20119)
++++ ../trunk-jpl/src/m/solve/solve.py	(revision 20120)
+@@ -46,7 +46,11 @@
+ 
+ 	#recover some fields
+ 	md.private.solution=solutionenum
+-	cluster=md.cluster
++	cluster=md.cluster 
++	if m.strcmpi(options.getfieldvalue('batch','no'),'yes'):
++		batch=1
++	else:
++		batch=0;
+ 
+ 	#check model consistency
+ 	if m.strcmpi(options.getfieldvalue('checkconsistency','yes'),'yes'):
+@@ -112,7 +116,7 @@
+ 		cluster.UploadQueueJob(md.miscellaneous.name,md.private.runtimename,filelist)
+ 	
+ 	#Launch job
+-	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart)
++	cluster.LaunchQueueJob(md.miscellaneous.name,md.private.runtimename,filelist,restart,batch)
+ 
+ 	#wait on lock
+ 	if md.settings.waitonlock>0:
+Index: ../trunk-jpl/src/m/solve/solve.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.m	(revision 20119)
++++ ../trunk-jpl/src/m/solve/solve.m	(revision 20120)
+@@ -35,6 +35,7 @@
+ %recover some fields
+ md.private.solution=solutionenum;
+ cluster=md.cluster;
++if strcmpi(getfieldvalue(options,'batch','no'),'yes') batch=1; else batch=0; end
+ 
+ %check model consistency
+ if strcmpi(getfieldvalue(options,'checkconsistency','yes'),'yes'),
+@@ -98,15 +99,6 @@
+ ToolkitsFile(md.toolkits,[md.miscellaneous.name '.toolkits']); % toolkits file
+ BuildQueueScript(cluster,md.private.runtimename,md.miscellaneous.name,md.private.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); % queue file
+ 
+-%Stop here if batch mode
+-if strcmpi(getfieldvalue(options,'batch','no'),'yes')
+-	if md.verbose.solution,
+-		disp('batch mode requested: not launching job interactively');
+-		disp('launch solution sequence on remote cluster by hand');
+-	end
+-	return;
+-end
+-
+ %Upload all required files
+ modelname = md.miscellaneous.name;
+ filelist  = {[modelname '.bin '] [modelname '.toolkits ']};
+@@ -125,8 +117,16 @@
+ end
+ 
+ %launch queue job: 
+-LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist,restart);
++LaunchQueueJob(cluster,md.miscellaneous.name,md.private.runtimename,filelist,restart,batch);
+ 
++%return if batch: 
++if batch,
++	if md.verbose.solution,
++		disp('batch mode requested: not launching job interactively');
++		disp('launch solution sequence on remote cluster by hand');
++	end
++	return;
++end
+ %wait on lock
+ if isnan(md.settings.waitonlock),
+ 	%load when user enters 'y'
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 20119)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.py	(revision 20120)
+@@ -179,7 +179,7 @@
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
+ 		# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist,restart):
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch):
+ 			# {{{
+ 
+ 		print 'launching solution sequence on remote cluster'
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 20119)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 20120)
+@@ -182,14 +182,19 @@
+ 		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
+ 
+ 	# }}}
+-	def LaunchQueueJob(self,modelname,dirname,filelist,restart):    # {{{
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch):    # {{{
+ 
+ 		print 'launching solution sequence on remote cluster'
+ 		if restart:
+ 			launchcommand='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)
+ 		else:
+-			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
++			if batch:
++				launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
+ 				(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
++			else:
++				launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz' % \
++				(self.executionpath,dirname,dirname,dirname,dirname,dirname)
++
+ 		issmssh(self.name,self.login,self.port,launchcommand)
+ 	# }}}
+ 	def Download(self,dirname,filelist):     # {{{
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20119)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20120)
+@@ -307,7 +307,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart,batch)% {{{
+ 
+ 			 %lauch command, to be executed via ssh
+ 			 if ~cluster.interactive, 
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 20119)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 20120)
+@@ -154,6 +154,57 @@
+ 			end
+ 		end
+ 		%}}}
++		function BuildQueueScriptMultipleModels(cluster,dirname,modelname,solution,dirnames,modelnames,nps) % {{{
++		
++			%some checks: 
++			if isempty(modelname), error('BuildQueueScriptMultipleModels error message: need a non empty model name!');end
++
++			%what is the executable being called? 
++			executable='issm_slr.exe';
++
++			if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
++			
++			%write queuing script 
++			fid=fopen([modelname '.queue'],'w');
++			
++			fprintf(fid,'#!%s\n',cluster.shell);
++
++			%number of cpus: 
++			mpistring=sprintf('mpiexec -np %i ',cluster.np);
++
++			%executable: 
++			mpistring=[mpistring sprintf('%s/%s ',cluster.codepath,executable)];
++			
++			%solution name: 
++			mpistring=[mpistring sprintf('%s ',EnumToString(solution))];
++
++			%execution directory and model name: 
++			mpistring=[mpistring sprintf('%s/%s %s',cluster.executionpath,dirname,modelname)];
++
++			%inform main executable of how many icecaps, glaciers and earth models are being run: 
++			mpistring=[mpistring sprintf(' %i ',length(dirnames))];
++			
++			%icecaps, glaciers and earth location, names and number of processors associated:
++			for i=1:length(dirnames),
++			mpistring=[mpistring sprintf(' %s/%s %s %i ',cluster.executionpath,dirnames{i},modelnames{i},nps{i})];
++			end
++
++			%log files: 
++			if ~cluster.interactive,
++				mpistring=[mpistring sprintf('2> %s.errlog> %s.outlog',modelname,modelname)];
++			end
++
++			%write this long string to disk: 
++			fprintf(fid,mpistring);
++			fclose(fid);
++
++			%in interactive mode, create a run file, and errlog and outlog file
++			if cluster.interactive,
++				fid=fopen([modelname '.errlog'],'w'); fclose(fid);
++				fid=fopen([modelname '.outlog'],'w'); fclose(fid);
++			end
++		end
++		%}}}
+ 		function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
+ 
+ 			%write queuing script 
+@@ -218,7 +269,7 @@
+ 				issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 			end
+ 		end %}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart,batch)% {{{
+ 
+ 			if ~ispc,
+ 
+@@ -234,8 +285,13 @@
+ 				if ~isempty(restart)
+ 					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && cd ' dirname ' && source ' modelname '.queue '];
+ 				else
++					if ~batch,
+ 					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && source  ' modelname '.queue '];
++					else
++					launchcommand=['source ' cluster.etcpath '/environment.' shellext ' && cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
++						' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz '];
++					end
+ 				end
+ 				issmssh(cluster.name,cluster.login,cluster.port,launchcommand);
+ 			else
Index: /issm/oecreview/Archive/19101-20495/ISSM-20120-20121.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20120-20121.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20120-20121.diff	(revision 20498)
@@ -0,0 +1,2404 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20120)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20121)
+@@ -10,6 +10,14 @@
+ 	/*General: {{{*/
+ 	FemModelEnum,
+ 	/*}}}*/
++	/*Communicators:{{{*/
++	FemModelCommEnum,
++	WorldCommEnum,
++	IcecapToEarthCommEnum,
++	NumModelsEnum,
++	ModelIdEnum,
++	EarthIdEnum,
++	/*}}}*/
+ 	/*Model fields {{{*/
+ 	AutodiffIsautodiffEnum, 
+ 	AutodiffNumDependentsEnum,
+@@ -1040,7 +1048,7 @@
+ 	LevelsetfunctionSlopeYEnum,
+ 	LevelsetfunctionPicardEnum,
+ 	/*}}}*/
+-	/*Sea Level Rise*/
++	/*Sea Level Rise{{{*/
+ 	SealevelriseSolutionEnum,
+ 	SealevelriseAnalysisEnum,
+ 	SealevelriseSEnum,
+@@ -1055,6 +1063,7 @@
+ 	SealevelriseEustaticEnum,
+ 	SealevelriseGElasticEnum,
+ 	SealevelriseDegaccEnum,
++	SealevelriseTransitionsEnum,
+ 	SealevelriseRequestedOutputsEnum,
+ 	SealevelriseNumRequestedOutputsEnum,
+ 	/*}}}*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20120)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20121)
+@@ -17,6 +17,12 @@
+ 	switch(en){
+ 
+ 		case FemModelEnum : return "FemModel";
++		case FemModelCommEnum : return "FemModelComm";
++		case WorldCommEnum : return "WorldComm";
++		case IcecapToEarthCommEnum : return "IcecapToEarthComm";
++		case NumModelsEnum : return "NumModels";
++		case ModelIdEnum : return "ModelId";
++		case EarthIdEnum : return "EarthId";
+ 		case AutodiffIsautodiffEnum : return "AutodiffIsautodiff";
+ 		case AutodiffNumDependentsEnum : return "AutodiffNumDependents";
+ 		case AutodiffNumDependentObjectsEnum : return "AutodiffNumDependentObjects";
+@@ -1009,6 +1015,7 @@
+ 		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
+ 		case SealevelriseDegaccEnum : return "SealevelriseDegacc";
++		case SealevelriseTransitionsEnum : return "SealevelriseTransitions";
+ 		case SealevelriseRequestedOutputsEnum : return "SealevelriseRequestedOutputs";
+ 		case SealevelriseNumRequestedOutputsEnum : return "SealevelriseNumRequestedOutputs";
+ 		case MaximumNumberOfDefinitionsEnum : return "MaximumNumberOfDefinitions";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20120)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20121)
+@@ -17,6 +17,12 @@
+ 
+    if(stage==1){
+ 	      if (strcmp(name,"FemModel")==0) return FemModelEnum;
++	      else if (strcmp(name,"FemModelComm")==0) return FemModelCommEnum;
++	      else if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
++	      else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
++	      else if (strcmp(name,"NumModels")==0) return NumModelsEnum;
++	      else if (strcmp(name,"ModelId")==0) return ModelIdEnum;
++	      else if (strcmp(name,"EarthId")==0) return EarthIdEnum;
+ 	      else if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum;
+ 	      else if (strcmp(name,"AutodiffNumDependents")==0) return AutodiffNumDependentsEnum;
+ 	      else if (strcmp(name,"AutodiffNumDependentObjects")==0) return AutodiffNumDependentObjectsEnum;
+@@ -130,16 +136,16 @@
+ 	      else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
+ 	      else if (strcmp(name,"HydrologyshreveSpcwatercolumn")==0) return HydrologyshreveSpcwatercolumnEnum;
+ 	      else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
+-	      else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
++         else stage=2;
++   }
++   if(stage==2){
++	      if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
+ 	      else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum;
+ 	      else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum;
+ 	      else if (strcmp(name,"SedimentHeadResidual")==0) return SedimentHeadResidualEnum;
+ 	      else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
+ 	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
+-         else stage=2;
+-   }
+-   if(stage==2){
+-	      if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
++	      else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
+ 	      else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
+ 	      else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
+ 	      else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
+@@ -253,16 +259,16 @@
+ 	      else if (strcmp(name,"Damage")==0) return DamageEnum;
+ 	      else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
+ 	      else if (strcmp(name,"StressIntensityFactor")==0) return StressIntensityFactorEnum;
+-	      else if (strcmp(name,"CalvingLaw")==0) return CalvingLawEnum;
++         else stage=3;
++   }
++   if(stage==3){
++	      if (strcmp(name,"CalvingLaw")==0) return CalvingLawEnum;
+ 	      else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
+ 	      else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
+ 	      else if (strcmp(name,"CalvingLevermann")==0) return CalvingLevermannEnum;
+ 	      else if (strcmp(name,"CalvingPi")==0) return CalvingPiEnum;
+ 	      else if (strcmp(name,"CalvingDev")==0) return CalvingDevEnum;
+-         else stage=3;
+-   }
+-   if(stage==3){
+-	      if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
++	      else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
+ 	      else if (strcmp(name,"CalvingRequestedOutputs")==0) return CalvingRequestedOutputsEnum;
+ 	      else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
+ 	      else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
+@@ -376,16 +382,16 @@
+ 	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
+ 	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
+ 	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
+-	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
++         else stage=4;
++   }
++   if(stage==4){
++	      if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
+ 	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
+ 	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
+ 	      else if (strcmp(name,"TransientIscalving")==0) return TransientIscalvingEnum;
+ 	      else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
+ 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+-         else stage=4;
+-   }
+-   if(stage==4){
+-	      if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
++	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+ 	      else if (strcmp(name,"Potential")==0) return PotentialEnum;
+ 	      else if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
+ 	      else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum;
+@@ -499,16 +505,16 @@
+ 	      else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
+-	      else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
++         else stage=5;
++   }
++   if(stage==5){
++	      if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
+ 	      else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
+ 	      else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
+ 	      else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
+ 	      else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
+-         else stage=5;
+-   }
+-   if(stage==5){
+-	      if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
++	      else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
+ 	      else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
+ 	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
+ 	      else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
+@@ -622,16 +628,16 @@
+ 	      else if (strcmp(name,"MassconaxpbyNamex")==0) return MassconaxpbyNamexEnum;
+ 	      else if (strcmp(name,"MassconaxpbyNamey")==0) return MassconaxpbyNameyEnum;
+ 	      else if (strcmp(name,"MassconaxpbyAlpha")==0) return MassconaxpbyAlphaEnum;
+-	      else if (strcmp(name,"MassconaxpbyBeta")==0) return MassconaxpbyBetaEnum;
++         else stage=6;
++   }
++   if(stage==6){
++	      if (strcmp(name,"MassconaxpbyBeta")==0) return MassconaxpbyBetaEnum;
+ 	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+ 	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
+ 	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
+ 	      else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
+ 	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
+-         else stage=6;
+-   }
+-   if(stage==6){
+-	      if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
++	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
+ 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
+ 	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
+ 	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
+@@ -745,16 +751,16 @@
+ 	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
+ 	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
+ 	      else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
+-	      else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
++         else stage=7;
++   }
++   if(stage==7){
++	      if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
+ 	      else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
+ 	      else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
+ 	      else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
+ 	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
+ 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
+-         else stage=7;
+-   }
+-   if(stage==7){
+-	      if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
++	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
+ 	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
+ 	      else if (strcmp(name,"P0")==0) return P0Enum;
+ 	      else if (strcmp(name,"P0Array")==0) return P0ArrayEnum;
+@@ -868,16 +874,16 @@
+ 	      else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
+ 	      else if (strcmp(name,"Outputdefinition77")==0) return Outputdefinition77Enum;
+ 	      else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;
+-	      else if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum;
++         else stage=8;
++   }
++   if(stage==8){
++	      if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum;
+ 	      else if (strcmp(name,"Outputdefinition80")==0) return Outputdefinition80Enum;
+ 	      else if (strcmp(name,"Outputdefinition81")==0) return Outputdefinition81Enum;
+ 	      else if (strcmp(name,"Outputdefinition82")==0) return Outputdefinition82Enum;
+ 	      else if (strcmp(name,"Outputdefinition83")==0) return Outputdefinition83Enum;
+ 	      else if (strcmp(name,"Outputdefinition84")==0) return Outputdefinition84Enum;
+-         else stage=8;
+-   }
+-   if(stage==8){
+-	      if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
++	      else if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
+ 	      else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
+ 	      else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
+ 	      else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
+@@ -991,16 +997,16 @@
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+ 	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+ 	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+-	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
++         else stage=9;
++   }
++   if(stage==9){
++	      if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+ 	      else if (strcmp(name,"XY")==0) return XYEnum;
+ 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+ 	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+ 	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
+ 	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
+-         else stage=9;
+-   }
+-   if(stage==9){
+-	      if (strcmp(name,"Seq")==0) return SeqEnum;
++	      else if (strcmp(name,"Seq")==0) return SeqEnum;
+ 	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
+ 	      else if (strcmp(name,"Mumps")==0) return MumpsEnum;
+ 	      else if (strcmp(name,"Gsl")==0) return GslEnum;
+@@ -1033,6 +1039,7 @@
+ 	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseDegacc")==0) return SealevelriseDegaccEnum;
++	      else if (strcmp(name,"SealevelriseTransitions")==0) return SealevelriseTransitionsEnum;
+ 	      else if (strcmp(name,"SealevelriseRequestedOutputs")==0) return SealevelriseRequestedOutputsEnum;
+ 	      else if (strcmp(name,"SealevelriseNumRequestedOutputs")==0) return SealevelriseNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
+Index: ../trunk-jpl/src/m/enum/EarthIdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/EarthIdEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/EarthIdEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=EarthIdEnum()
++%EARTHIDENUM - Enum of EarthId
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=EarthIdEnum()
++
++macro=StringToEnum('EarthId');
+Index: ../trunk-jpl/src/m/enum/WorldCommEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/WorldCommEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/WorldCommEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=WorldCommEnum()
++%WORLDCOMMENUM - Enum of WorldComm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=WorldCommEnum()
++
++macro=StringToEnum('WorldComm');
+Index: ../trunk-jpl/src/m/enum/ModelIdEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/ModelIdEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/ModelIdEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=ModelIdEnum()
++%MODELIDENUM - Enum of ModelId
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=ModelIdEnum()
++
++macro=StringToEnum('ModelId');
+Index: ../trunk-jpl/src/m/enum/NumModelsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/NumModelsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/NumModelsEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=NumModelsEnum()
++%NUMMODELSENUM - Enum of NumModels
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=NumModelsEnum()
++
++macro=StringToEnum('NumModels');
+Index: ../trunk-jpl/src/m/enum/SealevelriseTransitionsEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseTransitionsEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseTransitionsEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseTransitionsEnum()
++%SEALEVELRISETRANSITIONSENUM - Enum of SealevelriseTransitions
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseTransitionsEnum()
++
++macro=StringToEnum('SealevelriseTransitions');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20120)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20121)
+@@ -2,998 +2,1005 @@
+ //this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+ //Please read src/c/shared/Enum/README for more information
+ function FemModelEnum(){ return 0;}
+-function AutodiffIsautodiffEnum(){ return 1;}
+-function AutodiffNumDependentsEnum(){ return 2;}
+-function AutodiffNumDependentObjectsEnum(){ return 3;}
+-function AutodiffDependentObjectNamesEnum(){ return 4;}
+-function AutodiffDependentObjectTypesEnum(){ return 5;}
+-function AutodiffDependentObjectIndicesEnum(){ return 6;}
+-function AutodiffDependentObjectsEnum(){ return 7;}
+-function AutodiffNumIndependentsEnum(){ return 8;}
+-function AutodiffNumIndependentObjectsEnum(){ return 9;}
+-function AutodiffIndependentObjectNamesEnum(){ return 10;}
+-function AutodiffIndependentObjectTypesEnum(){ return 11;}
+-function AutodiffIndependentObjectsEnum(){ return 12;}
+-function AutodiffJacobianEnum(){ return 13;}
+-function AutodiffXpEnum(){ return 14;}
+-function AutodiffDriverEnum(){ return 15;}
+-function AutodiffFosForwardIndexEnum(){ return 16;}
+-function AutodiffFovForwardIndicesEnum(){ return 17;}
+-function AutodiffFosReverseIndexEnum(){ return 18;}
+-function AutodiffMassFluxSegmentsPresentEnum(){ return 19;}
+-function AutodiffKeepEnum(){ return 20;}
+-function AutodiffObufsizeEnum(){ return 21;}
+-function AutodiffLbufsizeEnum(){ return 22;}
+-function AutodiffCbufsizeEnum(){ return 23;}
+-function AutodiffTbufsizeEnum(){ return 24;}
+-function AutodiffGcTriggerRatioEnum(){ return 25;}
+-function AutodiffGcTriggerMaxSizeEnum(){ return 26;}
+-function BalancethicknessSpcthicknessEnum(){ return 27;}
+-function BalancethicknessStabilizationEnum(){ return 28;}
+-function BalancethicknessThickeningRateEnum(){ return 29;}
+-function BasalforcingsEnum(){ return 30;}
+-function BasalforcingsGeothermalfluxEnum(){ return 31;}
+-function BasalforcingsGroundediceMeltingRateEnum(){ return 32;}
+-function BasalforcingsFloatingiceMeltingRateEnum(){ return 33;}
+-function BasalforcingsDeepwaterMeltingRateEnum(){ return 34;}
+-function BasalforcingsDeepwaterElevationEnum(){ return 35;}
+-function BasalforcingsUpperwaterElevationEnum(){ return 36;}
+-function BasalforcingsMeltrateFactorEnum(){ return 37;}
+-function BasalforcingsThresholdThicknessEnum(){ return 38;}
+-function BasalforcingsUpperdepthMeltEnum(){ return 39;}
+-function BasalforcingsMantleconductivityEnum(){ return 40;}
+-function BasalforcingsNusseltEnum(){ return 41;}
+-function BasalforcingsDtbgEnum(){ return 42;}
+-function BasalforcingsPlumeradiusEnum(){ return 43;}
+-function BasalforcingsTopplumedepthEnum(){ return 44;}
+-function BasalforcingsBottomplumedepthEnum(){ return 45;}
+-function BasalforcingsPlumexEnum(){ return 46;}
+-function BasalforcingsPlumeyEnum(){ return 47;}
+-function BasalforcingsCrustthicknessEnum(){ return 48;}
+-function BasalforcingsUppercrustthicknessEnum(){ return 49;}
+-function BasalforcingsUppercrustheatEnum(){ return 50;}
+-function BasalforcingsLowercrustheatEnum(){ return 51;}
+-function FloatingMeltRateEnum(){ return 52;}
+-function LinearFloatingMeltRateEnum(){ return 53;}
+-function MismipFloatingMeltRateEnum(){ return 54;}
+-function MantlePlumeGeothermalFluxEnum(){ return 55;}
+-function BedEnum(){ return 56;}
+-function BaseEnum(){ return 57;}
+-function ConstantsGEnum(){ return 58;}
+-function ConstantsReferencetemperatureEnum(){ return 59;}
+-function ConstantsYtsEnum(){ return 60;}
+-function DependentObjectEnum(){ return 61;}
+-function StressbalanceAbstolEnum(){ return 62;}
+-function StressbalanceIsnewtonEnum(){ return 63;}
+-function StressbalanceMaxiterEnum(){ return 64;}
+-function StressbalancePenaltyFactorEnum(){ return 65;}
+-function StressbalanceReferentialEnum(){ return 66;}
+-function StressbalanceReltolEnum(){ return 67;}
+-function StressbalanceNumRequestedOutputsEnum(){ return 68;}
+-function StressbalanceRequestedOutputsEnum(){ return 69;}
+-function StressbalanceRestolEnum(){ return 70;}
+-function StressbalanceRiftPenaltyLockEnum(){ return 71;}
+-function StressbalanceRiftPenaltyThresholdEnum(){ return 72;}
+-function StressbalanceShelfDampeningEnum(){ return 73;}
+-function StressbalanceSpcvxEnum(){ return 74;}
+-function StressbalanceSpcvyEnum(){ return 75;}
+-function StressbalanceSpcvzEnum(){ return 76;}
+-function StressbalanceFSreconditioningEnum(){ return 77;}
+-function StressbalanceVertexPairingEnum(){ return 78;}
+-function StressbalanceViscosityOvershootEnum(){ return 79;}
+-function LoadingforceXEnum(){ return 80;}
+-function LoadingforceYEnum(){ return 81;}
+-function LoadingforceZEnum(){ return 82;}
+-function FlowequationBorderSSAEnum(){ return 83;}
+-function FlowequationBorderHOEnum(){ return 84;}
+-function FlowequationBorderFSEnum(){ return 85;}
+-function FlowequationElementEquationEnum(){ return 86;}
+-function FlowequationIsSIAEnum(){ return 87;}
+-function FlowequationIsSSAEnum(){ return 88;}
+-function FlowequationIsL1L2Enum(){ return 89;}
+-function FlowequationIsHOEnum(){ return 90;}
+-function FlowequationIsFSEnum(){ return 91;}
+-function FlowequationFeSSAEnum(){ return 92;}
+-function FlowequationFeHOEnum(){ return 93;}
+-function FlowequationFeFSEnum(){ return 94;}
+-function FlowequationVertexEquationEnum(){ return 95;}
+-function FrictionAsEnum(){ return 96;}
+-function FrictionCoefficientEnum(){ return 97;}
+-function FrictionCoefficientcoulombEnum(){ return 98;}
+-function FrictionPEnum(){ return 99;}
+-function FrictionQEnum(){ return 100;}
+-function FrictionMEnum(){ return 101;}
+-function FrictionCEnum(){ return 102;}
+-function FrictionLawEnum(){ return 103;}
+-function FrictionGammaEnum(){ return 104;}
+-function FrictionFEnum(){ return 105;}
+-function FrictionWaterLayerEnum(){ return 106;}
+-function FrictionEffectivePressureEnum(){ return 107;}
+-function FrictionCouplingEnum(){ return 108;}
+-function GeometryHydrostaticRatioEnum(){ return 109;}
+-function HydrologyModelEnum(){ return 110;}
+-function HydrologyshreveEnum(){ return 111;}
+-function HydrologyshreveSpcwatercolumnEnum(){ return 112;}
+-function HydrologyshreveStabilizationEnum(){ return 113;}
+-function HydrologydcEnum(){ return 114;}
+-function SedimentHeadEnum(){ return 115;}
+-function SedimentHeadOldEnum(){ return 116;}
+-function SedimentHeadResidualEnum(){ return 117;}
+-function EffectivePressureEnum(){ return 118;}
+-function EplHeadEnum(){ return 119;}
+-function EplHeadOldEnum(){ return 120;}
+-function EplHeadSlopeXEnum(){ return 121;}
+-function EplHeadSlopeYEnum(){ return 122;}
+-function EplZigZagCounterEnum(){ return 123;}
+-function HydrologydcMaxIterEnum(){ return 124;}
+-function HydrologydcRelTolEnum(){ return 125;}
+-function HydrologydcSpcsedimentHeadEnum(){ return 126;}
+-function HydrologydcSedimentCompressibilityEnum(){ return 127;}
+-function HydrologydcSedimentPorosityEnum(){ return 128;}
+-function HydrologydcSedimentThicknessEnum(){ return 129;}
+-function HydrologydcSedimentTransmitivityEnum(){ return 130;}
+-function HydrologydcWaterCompressibilityEnum(){ return 131;}
+-function HydrologydcSpceplHeadEnum(){ return 132;}
+-function HydrologydcMaskEplactiveNodeEnum(){ return 133;}
+-function HydrologydcMaskEplactiveEltEnum(){ return 134;}
+-function HydrologydcEplCompressibilityEnum(){ return 135;}
+-function HydrologydcEplPorosityEnum(){ return 136;}
+-function HydrologydcEplInitialThicknessEnum(){ return 137;}
+-function HydrologydcEplColapseThicknessEnum(){ return 138;}
+-function HydrologydcEplMaxThicknessEnum(){ return 139;}
+-function HydrologydcEplThicknessEnum(){ return 140;}
+-function HydrologydcEplThicknessOldEnum(){ return 141;}
+-function HydrologydcEplThickCompEnum(){ return 142;}
+-function HydrologydcEplConductivityEnum(){ return 143;}
+-function HydrologydcIsefficientlayerEnum(){ return 144;}
+-function HydrologydcSedimentlimitFlagEnum(){ return 145;}
+-function HydrologydcSedimentlimitEnum(){ return 146;}
+-function HydrologydcTransferFlagEnum(){ return 147;}
+-function HydrologydcLeakageFactorEnum(){ return 148;}
+-function HydrologydcPenaltyFactorEnum(){ return 149;}
+-function HydrologydcPenaltyLockEnum(){ return 150;}
+-function HydrologydcEplflipLockEnum(){ return 151;}
+-function HydrologydcBasalMoulinInputEnum(){ return 152;}
+-function HydrologyLayerEnum(){ return 153;}
+-function HydrologySedimentEnum(){ return 154;}
+-function HydrologyEfficientEnum(){ return 155;}
+-function HydrologySedimentKmaxEnum(){ return 156;}
+-function HydrologysommersEnum(){ return 157;}
+-function HydrologyHeadEnum(){ return 158;}
+-function HydrologyGapHeightEnum(){ return 159;}
+-function HydrologyBumpSpacingEnum(){ return 160;}
+-function HydrologyBumpHeightEnum(){ return 161;}
+-function HydrologyEnglacialInputEnum(){ return 162;}
+-function HydrologyMoulinInputEnum(){ return 163;}
+-function HydrologyReynoldsEnum(){ return 164;}
+-function HydrologyNeumannfluxEnum(){ return 165;}
+-function HydrologySpcheadEnum(){ return 166;}
+-function HydrologyConductivityEnum(){ return 167;}
+-function IndependentObjectEnum(){ return 168;}
+-function InversionControlParametersEnum(){ return 169;}
+-function InversionControlScalingFactorsEnum(){ return 170;}
+-function InversionCostFunctionThresholdEnum(){ return 171;}
+-function InversionCostFunctionsCoefficientsEnum(){ return 172;}
+-function InversionCostFunctionsEnum(){ return 173;}
+-function InversionGradientScalingEnum(){ return 174;}
+-function InversionIscontrolEnum(){ return 175;}
+-function InversionTypeEnum(){ return 176;}
+-function InversionIncompleteAdjointEnum(){ return 177;}
+-function InversionMaxParametersEnum(){ return 178;}
+-function InversionMaxiterPerStepEnum(){ return 179;}
+-function InversionMaxiterEnum(){ return 180;}
+-function InversionMaxstepsEnum(){ return 181;}
+-function InversionFatolEnum(){ return 182;}
+-function InversionFrtolEnum(){ return 183;}
+-function InversionGatolEnum(){ return 184;}
+-function InversionGrtolEnum(){ return 185;}
+-function InversionGttolEnum(){ return 186;}
+-function InversionAlgorithmEnum(){ return 187;}
+-function InversionMinParametersEnum(){ return 188;}
+-function InversionNstepsEnum(){ return 189;}
+-function InversionDxminEnum(){ return 190;}
+-function InversionNumControlParametersEnum(){ return 191;}
+-function InversionNumCostFunctionsEnum(){ return 192;}
+-function InversionStepThresholdEnum(){ return 193;}
+-function InversionThicknessObsEnum(){ return 194;}
+-function InversionSurfaceObsEnum(){ return 195;}
+-function InversionVxObsEnum(){ return 196;}
+-function InversionVyObsEnum(){ return 197;}
+-function InversionVzObsEnum(){ return 198;}
+-function MaskIceLevelsetEnum(){ return 199;}
+-function MaskOceanLevelsetEnum(){ return 200;}
+-function MaskLandLevelsetEnum(){ return 201;}
+-function MaterialsBetaEnum(){ return 202;}
+-function MaterialsHeatcapacityEnum(){ return 203;}
+-function MaterialsLatentheatEnum(){ return 204;}
+-function MaterialsMeltingpointEnum(){ return 205;}
+-function MaterialsMixedLayerCapacityEnum(){ return 206;}
+-function MaterialsRheologyBEnum(){ return 207;}
+-function MaterialsRheologyBbarEnum(){ return 208;}
+-function MaterialsRheologyLawEnum(){ return 209;}
+-function MaterialsRheologyNEnum(){ return 210;}
+-function DamageIsdamageEnum(){ return 211;}
+-function DamageDEnum(){ return 212;}
+-function DamageFEnum(){ return 213;}
+-function DamageDbarEnum(){ return 214;}
+-function DamageLawEnum(){ return 215;}
+-function DamageC1Enum(){ return 216;}
+-function DamageC2Enum(){ return 217;}
+-function DamageC3Enum(){ return 218;}
+-function DamageC4Enum(){ return 219;}
+-function DamageElementinterpEnum(){ return 220;}
+-function DamageHealingEnum(){ return 221;}
+-function DamageStressThresholdEnum(){ return 222;}
+-function DamageKappaEnum(){ return 223;}
+-function DamageStabilizationEnum(){ return 224;}
+-function DamageMaxiterEnum(){ return 225;}
+-function DamageSpcdamageEnum(){ return 226;}
+-function DamageMaxDamageEnum(){ return 227;}
+-function DamageEquivStressEnum(){ return 228;}
+-function DamageEvolutionNumRequestedOutputsEnum(){ return 229;}
+-function DamageEvolutionRequestedOutputsEnum(){ return 230;}
+-function DamageEnum(){ return 231;}
+-function NewDamageEnum(){ return 232;}
+-function StressIntensityFactorEnum(){ return 233;}
+-function CalvingLawEnum(){ return 234;}
+-function CalvingCalvingrateEnum(){ return 235;}
+-function CalvingMeltingrateEnum(){ return 236;}
+-function CalvingLevermannEnum(){ return 237;}
+-function CalvingPiEnum(){ return 238;}
+-function CalvingDevEnum(){ return 239;}
+-function DefaultCalvingEnum(){ return 240;}
+-function CalvingRequestedOutputsEnum(){ return 241;}
+-function CalvinglevermannCoeffEnum(){ return 242;}
+-function CalvinglevermannMeltingrateEnum(){ return 243;}
+-function CalvingpiCoeffEnum(){ return 244;}
+-function CalvingpiMeltingrateEnum(){ return 245;}
+-function CalvingratexEnum(){ return 246;}
+-function CalvingrateyEnum(){ return 247;}
+-function CalvingratexAverageEnum(){ return 248;}
+-function CalvingrateyAverageEnum(){ return 249;}
+-function StrainRateparallelEnum(){ return 250;}
+-function StrainRateperpendicularEnum(){ return 251;}
+-function StrainRateeffectiveEnum(){ return 252;}
+-function MaterialsRhoIceEnum(){ return 253;}
+-function MaterialsRhoSeawaterEnum(){ return 254;}
+-function MaterialsRhoFreshwaterEnum(){ return 255;}
+-function MaterialsMuWaterEnum(){ return 256;}
+-function MaterialsThermalExchangeVelocityEnum(){ return 257;}
+-function MaterialsThermalconductivityEnum(){ return 258;}
+-function MaterialsTemperateiceconductivityEnum(){ return 259;}
+-function MaterialsLithosphereShearModulusEnum(){ return 260;}
+-function MaterialsLithosphereDensityEnum(){ return 261;}
+-function MaterialsMantleShearModulusEnum(){ return 262;}
+-function MaterialsMantleDensityEnum(){ return 263;}
+-function MaterialsEarthDensityEnum(){ return 264;}
+-function MeshAverageVertexConnectivityEnum(){ return 265;}
+-function MeshElements2dEnum(){ return 266;}
+-function MeshElementsEnum(){ return 267;}
+-function MeshLowerelementsEnum(){ return 268;}
+-function MeshNumberofelements2dEnum(){ return 269;}
+-function MeshNumberofelementsEnum(){ return 270;}
+-function MeshNumberoflayersEnum(){ return 271;}
+-function MeshNumberofvertices2dEnum(){ return 272;}
+-function MeshNumberofverticesEnum(){ return 273;}
+-function MeshUpperelementsEnum(){ return 274;}
+-function MeshVertexonbaseEnum(){ return 275;}
+-function MeshVertexonsurfaceEnum(){ return 276;}
+-function MeshVertexonboundaryEnum(){ return 277;}
+-function MeshXEnum(){ return 278;}
+-function MeshYEnum(){ return 279;}
+-function MeshZEnum(){ return 280;}
+-function MeshLatEnum(){ return 281;}
+-function MeshLongEnum(){ return 282;}
+-function MeshREnum(){ return 283;}
+-function MeshElementtypeEnum(){ return 284;}
+-function MeshSegmentsEnum(){ return 285;}
+-function DomainTypeEnum(){ return 286;}
+-function DomainDimensionEnum(){ return 287;}
+-function Domain2DhorizontalEnum(){ return 288;}
+-function Domain2DverticalEnum(){ return 289;}
+-function Domain3DEnum(){ return 290;}
+-function Domain3DsurfaceEnum(){ return 291;}
+-function MiscellaneousNameEnum(){ return 292;}
+-function MasstransportHydrostaticAdjustmentEnum(){ return 293;}
+-function MasstransportIsfreesurfaceEnum(){ return 294;}
+-function MasstransportMinThicknessEnum(){ return 295;}
+-function MasstransportPenaltyFactorEnum(){ return 296;}
+-function MasstransportSpcthicknessEnum(){ return 297;}
+-function MasstransportStabilizationEnum(){ return 298;}
+-function MasstransportVertexPairingEnum(){ return 299;}
+-function MasstransportNumRequestedOutputsEnum(){ return 300;}
+-function MasstransportRequestedOutputsEnum(){ return 301;}
+-function QmuIsdakotaEnum(){ return 302;}
+-function MassFluxSegmentsEnum(){ return 303;}
+-function MassFluxSegmentsPresentEnum(){ return 304;}
+-function QmuMassFluxSegmentsPresentEnum(){ return 305;}
+-function QmuNumberofpartitionsEnum(){ return 306;}
+-function QmuNumberofresponsesEnum(){ return 307;}
+-function QmuPartitionEnum(){ return 308;}
+-function QmuResponsedescriptorsEnum(){ return 309;}
+-function QmuVariabledescriptorsEnum(){ return 310;}
+-function RiftsNumriftsEnum(){ return 311;}
+-function RiftsRiftstructEnum(){ return 312;}
+-function SettingsResultsOnNodesEnum(){ return 313;}
+-function SettingsIoGatherEnum(){ return 314;}
+-function SettingsLowmemEnum(){ return 315;}
+-function SettingsOutputFrequencyEnum(){ return 316;}
+-function SettingsRecordingFrequencyEnum(){ return 317;}
+-function SettingsWaitonlockEnum(){ return 318;}
+-function DebugProfilingEnum(){ return 319;}
+-function ProfilingCurrentMemEnum(){ return 320;}
+-function ProfilingCurrentFlopsEnum(){ return 321;}
+-function ProfilingSolutionTimeEnum(){ return 322;}
+-function SteadystateMaxiterEnum(){ return 323;}
+-function SteadystateNumRequestedOutputsEnum(){ return 324;}
+-function SteadystateReltolEnum(){ return 325;}
+-function SteadystateRequestedOutputsEnum(){ return 326;}
+-function SurfaceEnum(){ return 327;}
+-function ThermalIsenthalpyEnum(){ return 328;}
+-function ThermalIsdynamicbasalspcEnum(){ return 329;}
+-function ThermalReltolEnum(){ return 330;}
+-function ThermalMaxiterEnum(){ return 331;}
+-function ThermalPenaltyFactorEnum(){ return 332;}
+-function ThermalPenaltyLockEnum(){ return 333;}
+-function ThermalPenaltyThresholdEnum(){ return 334;}
+-function ThermalSpctemperatureEnum(){ return 335;}
+-function ThermalStabilizationEnum(){ return 336;}
+-function ThermalNumRequestedOutputsEnum(){ return 337;}
+-function ThermalRequestedOutputsEnum(){ return 338;}
+-function GiaMantleViscosityEnum(){ return 339;}
+-function GiaLithosphereThicknessEnum(){ return 340;}
+-function ThicknessEnum(){ return 341;}
+-function TimesteppingStartTimeEnum(){ return 342;}
+-function TimesteppingFinalTimeEnum(){ return 343;}
+-function TimesteppingCflCoefficientEnum(){ return 344;}
+-function TimesteppingTimeAdaptEnum(){ return 345;}
+-function TimesteppingTimeStepEnum(){ return 346;}
+-function TimesteppingInterpForcingsEnum(){ return 347;}
+-function TransientIssmbEnum(){ return 348;}
+-function TransientIscouplerEnum(){ return 349;}
+-function TransientIsstressbalanceEnum(){ return 350;}
+-function TransientIsgroundinglineEnum(){ return 351;}
+-function TransientIsmasstransportEnum(){ return 352;}
+-function TransientIsthermalEnum(){ return 353;}
+-function TransientIsgiaEnum(){ return 354;}
+-function TransientIsdamageevolutionEnum(){ return 355;}
+-function TransientIshydrologyEnum(){ return 356;}
+-function TransientIscalvingEnum(){ return 357;}
+-function TransientIsslrEnum(){ return 358;}
+-function TransientNumRequestedOutputsEnum(){ return 359;}
+-function TransientRequestedOutputsEnum(){ return 360;}
+-function PotentialEnum(){ return 361;}
+-function BalancethicknessSpcpotentialEnum(){ return 362;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 363;}
+-function Balancethickness2MisfitEnum(){ return 364;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 365;}
+-function BalancethicknessCmuEnum(){ return 366;}
+-function BalancethicknessOmegaEnum(){ return 367;}
+-function BalancethicknessD0Enum(){ return 368;}
+-function SmbEnum(){ return 369;}
+-function SmbAnalysisEnum(){ return 370;}
+-function SmbSolutionEnum(){ return 371;}
+-function SmbNumRequestedOutputsEnum(){ return 372;}
+-function SmbRequestedOutputsEnum(){ return 373;}
+-function SmbIsInitializedEnum(){ return 374;}
+-function SMBforcingEnum(){ return 375;}
+-function SmbMassBalanceEnum(){ return 376;}
+-function SMBgembEnum(){ return 377;}
+-function SmbInitDensityScalingEnum(){ return 378;}
+-function SmbTaEnum(){ return 379;}
+-function SmbVEnum(){ return 380;}
+-function SmbDswrfEnum(){ return 381;}
+-function SmbDlwrfEnum(){ return 382;}
+-function SmbPEnum(){ return 383;}
+-function SmbSwfEnum(){ return 384;}
+-function SmbEAirEnum(){ return 385;}
+-function SmbPAirEnum(){ return 386;}
+-function SmbTmeanEnum(){ return 387;}
+-function SmbCEnum(){ return 388;}
+-function SmbTzEnum(){ return 389;}
+-function SmbVzEnum(){ return 390;}
+-function SmbDtEnum(){ return 391;}
+-function SmbDzEnum(){ return 392;}
+-function SmbAIdxEnum(){ return 393;}
+-function SmbSwIdxEnum(){ return 394;}
+-function SmbDenIdxEnum(){ return 395;}
+-function SmbZTopEnum(){ return 396;}
+-function SmbDzTopEnum(){ return 397;}
+-function SmbDzMinEnum(){ return 398;}
+-function SmbZYEnum(){ return 399;}
+-function SmbZMaxEnum(){ return 400;}
+-function SmbZMinEnum(){ return 401;}
+-function SmbOutputFreqEnum(){ return 402;}
+-function SmbASnowEnum(){ return 403;}
+-function SmbAIceEnum(){ return 404;}
+-function SmbCldFracEnum(){ return 405;}
+-function SmbT0wetEnum(){ return 406;}
+-function SmbT0dryEnum(){ return 407;}
+-function SmbKEnum(){ return 408;}
+-function SmbDEnum(){ return 409;}
+-function SmbReEnum(){ return 410;}
+-function SmbGdnEnum(){ return 411;}
+-function SmbGspEnum(){ return 412;}
+-function SmbECEnum(){ return 413;}
+-function SmbCondensationEnum(){ return 414;}
+-function SmbWEnum(){ return 415;}
+-function SmbAEnum(){ return 416;}
+-function SmbTEnum(){ return 417;}
+-function SmbIsgraingrowthEnum(){ return 418;}
+-function SmbIsalbedoEnum(){ return 419;}
+-function SmbIsshortwaveEnum(){ return 420;}
+-function SmbIsthermalEnum(){ return 421;}
+-function SmbIsaccumulationEnum(){ return 422;}
+-function SmbIsmeltEnum(){ return 423;}
+-function SmbIsdensificationEnum(){ return 424;}
+-function SmbIsturbulentfluxEnum(){ return 425;}
+-function SMBpddEnum(){ return 426;}
+-function SmbDelta18oEnum(){ return 427;}
+-function SmbDelta18oSurfaceEnum(){ return 428;}
+-function SmbIsdelta18oEnum(){ return 429;}
+-function SmbIsmungsmEnum(){ return 430;}
+-function SmbIsd18opdEnum(){ return 431;}
+-function SmbPrecipitationsPresentdayEnum(){ return 432;}
+-function SmbPrecipitationsLgmEnum(){ return 433;}
+-function SmbTemperaturesPresentdayEnum(){ return 434;}
+-function SmbTemperaturesLgmEnum(){ return 435;}
+-function SmbPrecipitationEnum(){ return 436;}
+-function SmbDesfacEnum(){ return 437;}
+-function SmbS0pEnum(){ return 438;}
+-function SmbS0tEnum(){ return 439;}
+-function SmbRlapsEnum(){ return 440;}
+-function SmbRlapslgmEnum(){ return 441;}
+-function SmbPfacEnum(){ return 442;}
+-function SmbTdiffEnum(){ return 443;}
+-function SmbSealevEnum(){ return 444;}
+-function SMBd18opddEnum(){ return 445;}
+-function SmbDpermilEnum(){ return 446;}
+-function SMBgradientsEnum(){ return 447;}
+-function SmbMonthlytemperaturesEnum(){ return 448;}
+-function SmbHrefEnum(){ return 449;}
+-function SmbSmbrefEnum(){ return 450;}
+-function SmbBPosEnum(){ return 451;}
+-function SmbBNegEnum(){ return 452;}
+-function SMBhenningEnum(){ return 453;}
+-function SMBcomponentsEnum(){ return 454;}
+-function SmbAccumulationEnum(){ return 455;}
+-function SmbEvaporationEnum(){ return 456;}
+-function SmbRunoffEnum(){ return 457;}
+-function SMBmeltcomponentsEnum(){ return 458;}
+-function SmbMeltEnum(){ return 459;}
+-function SmbRefreezeEnum(){ return 460;}
+-function SMBgcmEnum(){ return 461;}
+-function SmbIspddEnum(){ return 462;}
+-function SmbIssmbgradientsEnum(){ return 463;}
+-function SolutionTypeEnum(){ return 464;}
+-function AnalysisTypeEnum(){ return 465;}
+-function ConfigurationTypeEnum(){ return 466;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 467;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 468;}
+-function AdjointHorizAnalysisEnum(){ return 469;}
+-function AnalysisCounterEnum(){ return 470;}
+-function DefaultAnalysisEnum(){ return 471;}
+-function BalancethicknessAnalysisEnum(){ return 472;}
+-function BalancethicknessSolutionEnum(){ return 473;}
+-function Balancethickness2AnalysisEnum(){ return 474;}
+-function Balancethickness2SolutionEnum(){ return 475;}
+-function BalancethicknessSoftAnalysisEnum(){ return 476;}
+-function BalancethicknessSoftSolutionEnum(){ return 477;}
+-function BalancevelocityAnalysisEnum(){ return 478;}
+-function BalancevelocitySolutionEnum(){ return 479;}
+-function L2ProjectionEPLAnalysisEnum(){ return 480;}
+-function L2ProjectionBaseAnalysisEnum(){ return 481;}
+-function BedSlopeSolutionEnum(){ return 482;}
+-function DamageEvolutionSolutionEnum(){ return 483;}
+-function DamageEvolutionAnalysisEnum(){ return 484;}
+-function StressbalanceAnalysisEnum(){ return 485;}
+-function StressbalanceSIAAnalysisEnum(){ return 486;}
+-function StressbalanceSolutionEnum(){ return 487;}
+-function StressbalanceVerticalAnalysisEnum(){ return 488;}
+-function EnthalpyAnalysisEnum(){ return 489;}
+-function FlaimAnalysisEnum(){ return 490;}
+-function FlaimSolutionEnum(){ return 491;}
+-function HydrologyShreveAnalysisEnum(){ return 492;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 493;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 494;}
+-function HydrologySommersAnalysisEnum(){ return 495;}
+-function HydrologySolutionEnum(){ return 496;}
+-function MeltingAnalysisEnum(){ return 497;}
+-function MasstransportAnalysisEnum(){ return 498;}
+-function MasstransportSolutionEnum(){ return 499;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 500;}
+-function FreeSurfaceTopAnalysisEnum(){ return 501;}
+-function SurfaceNormalVelocityEnum(){ return 502;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 503;}
+-function ExtrudeFromTopAnalysisEnum(){ return 504;}
+-function DepthAverageAnalysisEnum(){ return 505;}
+-function SteadystateSolutionEnum(){ return 506;}
+-function SurfaceSlopeSolutionEnum(){ return 507;}
+-function SmoothAnalysisEnum(){ return 508;}
+-function ThermalAnalysisEnum(){ return 509;}
+-function ThermalSolutionEnum(){ return 510;}
+-function TransientSolutionEnum(){ return 511;}
+-function UzawaPressureAnalysisEnum(){ return 512;}
+-function GiaSolutionEnum(){ return 513;}
+-function GiaAnalysisEnum(){ return 514;}
+-function MeshdeformationSolutionEnum(){ return 515;}
+-function MeshdeformationAnalysisEnum(){ return 516;}
+-function LevelsetAnalysisEnum(){ return 517;}
+-function LevelsetStabilizationEnum(){ return 518;}
+-function ExtrapolationAnalysisEnum(){ return 519;}
+-function LsfReinitializationAnalysisEnum(){ return 520;}
+-function ApproximationEnum(){ return 521;}
+-function NoneApproximationEnum(){ return 522;}
+-function SIAApproximationEnum(){ return 523;}
+-function SSAApproximationEnum(){ return 524;}
+-function SSAHOApproximationEnum(){ return 525;}
+-function SSAFSApproximationEnum(){ return 526;}
+-function L1L2ApproximationEnum(){ return 527;}
+-function HOApproximationEnum(){ return 528;}
+-function HOFSApproximationEnum(){ return 529;}
+-function FSApproximationEnum(){ return 530;}
+-function FSvelocityEnum(){ return 531;}
+-function FSpressureEnum(){ return 532;}
+-function DataSetEnum(){ return 533;}
+-function ConstraintsEnum(){ return 534;}
+-function LoadsEnum(){ return 535;}
+-function MaterialsEnum(){ return 536;}
+-function NodesEnum(){ return 537;}
+-function ContoursEnum(){ return 538;}
+-function ParametersEnum(){ return 539;}
+-function VerticesEnum(){ return 540;}
+-function ResultsEnum(){ return 541;}
+-function GenericParamEnum(){ return 542;}
+-function AdolcParamEnum(){ return 543;}
+-function BoolInputEnum(){ return 544;}
+-function BoolParamEnum(){ return 545;}
+-function ContourEnum(){ return 546;}
+-function ControlInputEnum(){ return 547;}
+-function DatasetInputEnum(){ return 548;}
+-function DoubleInputEnum(){ return 549;}
+-function DoubleArrayInputEnum(){ return 550;}
+-function DataSetParamEnum(){ return 551;}
+-function DoubleMatArrayParamEnum(){ return 552;}
+-function DoubleMatParamEnum(){ return 553;}
+-function DoubleParamEnum(){ return 554;}
+-function DoubleVecParamEnum(){ return 555;}
+-function ElementEnum(){ return 556;}
+-function ElementHookEnum(){ return 557;}
+-function HookEnum(){ return 558;}
+-function ExternalResultEnum(){ return 559;}
+-function FileParamEnum(){ return 560;}
+-function InputEnum(){ return 561;}
+-function IntInputEnum(){ return 562;}
+-function InputToExtrudeEnum(){ return 563;}
+-function InputToL2ProjectEnum(){ return 564;}
+-function InputToDepthaverageEnum(){ return 565;}
+-function InputToSmoothEnum(){ return 566;}
+-function SmoothThicknessMultiplierEnum(){ return 567;}
+-function IntParamEnum(){ return 568;}
+-function IntVecParamEnum(){ return 569;}
+-function TransientParamEnum(){ return 570;}
+-function MaticeEnum(){ return 571;}
+-function MatdamageiceEnum(){ return 572;}
+-function MatparEnum(){ return 573;}
+-function NodeEnum(){ return 574;}
+-function NumericalfluxEnum(){ return 575;}
+-function NumericalfluxTypeEnum(){ return 576;}
+-function NeumannfluxEnum(){ return 577;}
+-function ParamEnum(){ return 578;}
+-function MoulinEnum(){ return 579;}
+-function PengridEnum(){ return 580;}
+-function PenpairEnum(){ return 581;}
+-function ProfilerEnum(){ return 582;}
+-function MatrixParamEnum(){ return 583;}
+-function MassconEnum(){ return 584;}
+-function MassconNameEnum(){ return 585;}
+-function MassconDefinitionenumEnum(){ return 586;}
+-function MassconLevelsetEnum(){ return 587;}
+-function MassconaxpbyEnum(){ return 588;}
+-function MassconaxpbyNameEnum(){ return 589;}
+-function MassconaxpbyDefinitionenumEnum(){ return 590;}
+-function MassconaxpbyNamexEnum(){ return 591;}
+-function MassconaxpbyNameyEnum(){ return 592;}
+-function MassconaxpbyAlphaEnum(){ return 593;}
+-function MassconaxpbyBetaEnum(){ return 594;}
+-function NodeSIdEnum(){ return 595;}
+-function VectorParamEnum(){ return 596;}
+-function RiftfrontEnum(){ return 597;}
+-function RiftfrontTypeEnum(){ return 598;}
+-function SegmentEnum(){ return 599;}
+-function SegmentRiftfrontEnum(){ return 600;}
+-function SpcDynamicEnum(){ return 601;}
+-function SpcStaticEnum(){ return 602;}
+-function SpcTransientEnum(){ return 603;}
+-function StringArrayParamEnum(){ return 604;}
+-function StringParamEnum(){ return 605;}
+-function SegEnum(){ return 606;}
+-function SegInputEnum(){ return 607;}
+-function TriaEnum(){ return 608;}
+-function TriaInputEnum(){ return 609;}
+-function TetraEnum(){ return 610;}
+-function TetraInputEnum(){ return 611;}
+-function PentaEnum(){ return 612;}
+-function PentaInputEnum(){ return 613;}
+-function VertexEnum(){ return 614;}
+-function VertexPIdEnum(){ return 615;}
+-function VertexSIdEnum(){ return 616;}
+-function AirEnum(){ return 617;}
+-function IceEnum(){ return 618;}
+-function MelangeEnum(){ return 619;}
+-function WaterEnum(){ return 620;}
+-function ClosedEnum(){ return 621;}
+-function FreeEnum(){ return 622;}
+-function OpenEnum(){ return 623;}
+-function AdjointpEnum(){ return 624;}
+-function AdjointxEnum(){ return 625;}
+-function AdjointyEnum(){ return 626;}
+-function AdjointzEnum(){ return 627;}
+-function BalancethicknessMisfitEnum(){ return 628;}
+-function BedSlopeXEnum(){ return 629;}
+-function BedSlopeYEnum(){ return 630;}
+-function BoundaryEnum(){ return 631;}
+-function ConvergedEnum(){ return 632;}
+-function FillEnum(){ return 633;}
+-function FractionIncrementEnum(){ return 634;}
+-function FrictionEnum(){ return 635;}
+-function InternalEnum(){ return 636;}
+-function MassFluxEnum(){ return 637;}
+-function MeltingOffsetEnum(){ return 638;}
+-function MisfitEnum(){ return 639;}
+-function PressureEnum(){ return 640;}
+-function PressurePicardEnum(){ return 641;}
+-function AndroidFrictionCoefficientEnum(){ return 642;}
+-function ResetPenaltiesEnum(){ return 643;}
+-function SegmentOnIceShelfEnum(){ return 644;}
+-function SurfaceAbsVelMisfitEnum(){ return 645;}
+-function SurfaceAreaEnum(){ return 646;}
+-function SurfaceAverageVelMisfitEnum(){ return 647;}
+-function SurfaceLogVelMisfitEnum(){ return 648;}
+-function SurfaceLogVxVyMisfitEnum(){ return 649;}
+-function SurfaceRelVelMisfitEnum(){ return 650;}
+-function SurfaceSlopeXEnum(){ return 651;}
+-function SurfaceSlopeYEnum(){ return 652;}
+-function TemperatureEnum(){ return 653;}
+-function TemperaturePicardEnum(){ return 654;}
+-function TemperaturePDDEnum(){ return 655;}
+-function ThicknessAbsMisfitEnum(){ return 656;}
+-function SurfaceAbsMisfitEnum(){ return 657;}
+-function VelEnum(){ return 658;}
+-function VelocityEnum(){ return 659;}
+-function VxAverageEnum(){ return 660;}
+-function VxEnum(){ return 661;}
+-function VxPicardEnum(){ return 662;}
+-function VyAverageEnum(){ return 663;}
+-function VyEnum(){ return 664;}
+-function VyPicardEnum(){ return 665;}
+-function VzEnum(){ return 666;}
+-function VzSSAEnum(){ return 667;}
+-function VzHOEnum(){ return 668;}
+-function VzPicardEnum(){ return 669;}
+-function VzFSEnum(){ return 670;}
+-function VxMeshEnum(){ return 671;}
+-function VyMeshEnum(){ return 672;}
+-function VzMeshEnum(){ return 673;}
+-function EnthalpyEnum(){ return 674;}
+-function EnthalpyPicardEnum(){ return 675;}
+-function ThicknessAbsGradientEnum(){ return 676;}
+-function ThicknessAlongGradientEnum(){ return 677;}
+-function ThicknessAcrossGradientEnum(){ return 678;}
+-function ThicknessPositiveEnum(){ return 679;}
+-function IntMatParamEnum(){ return 680;}
+-function RheologyBbarAbsGradientEnum(){ return 681;}
+-function RheologyBAbsGradientEnum(){ return 682;}
+-function DragCoefficientAbsGradientEnum(){ return 683;}
+-function TransientInputEnum(){ return 684;}
+-function WaterfractionEnum(){ return 685;}
+-function WatercolumnEnum(){ return 686;}
+-function BasalFrictionEnum(){ return 687;}
+-function ViscousHeatingEnum(){ return 688;}
+-function HydrologyWaterVxEnum(){ return 689;}
+-function HydrologyWaterVyEnum(){ return 690;}
+-function DrivingStressXEnum(){ return 691;}
+-function DrivingStressYEnum(){ return 692;}
+-function SigmaNNEnum(){ return 693;}
+-function StressTensorEnum(){ return 694;}
+-function StressTensorxxEnum(){ return 695;}
+-function StressTensorxyEnum(){ return 696;}
+-function StressTensorxzEnum(){ return 697;}
+-function StressTensoryyEnum(){ return 698;}
+-function StressTensoryzEnum(){ return 699;}
+-function StressTensorzzEnum(){ return 700;}
+-function StressMaxPrincipalEnum(){ return 701;}
+-function DeviatoricStressEnum(){ return 702;}
+-function DeviatoricStressxxEnum(){ return 703;}
+-function DeviatoricStressxyEnum(){ return 704;}
+-function DeviatoricStressxzEnum(){ return 705;}
+-function DeviatoricStressyyEnum(){ return 706;}
+-function DeviatoricStressyzEnum(){ return 707;}
+-function DeviatoricStresszzEnum(){ return 708;}
+-function DeviatoricStresseffectiveEnum(){ return 709;}
+-function StrainRateEnum(){ return 710;}
+-function StrainRatexxEnum(){ return 711;}
+-function StrainRatexyEnum(){ return 712;}
+-function StrainRatexzEnum(){ return 713;}
+-function StrainRateyyEnum(){ return 714;}
+-function StrainRateyzEnum(){ return 715;}
+-function StrainRatezzEnum(){ return 716;}
+-function DivergenceEnum(){ return 717;}
+-function MaxDivergenceEnum(){ return 718;}
+-function GiaCrossSectionShapeEnum(){ return 719;}
+-function GiadWdtEnum(){ return 720;}
+-function GiaWEnum(){ return 721;}
+-function P0Enum(){ return 722;}
+-function P0ArrayEnum(){ return 723;}
+-function P1Enum(){ return 724;}
+-function P1DGEnum(){ return 725;}
+-function P1bubbleEnum(){ return 726;}
+-function P1bubblecondensedEnum(){ return 727;}
+-function P2Enum(){ return 728;}
+-function P2bubbleEnum(){ return 729;}
+-function P2bubblecondensedEnum(){ return 730;}
+-function P2xP1Enum(){ return 731;}
+-function P1xP2Enum(){ return 732;}
+-function P1xP3Enum(){ return 733;}
+-function P2xP4Enum(){ return 734;}
+-function P1P1Enum(){ return 735;}
+-function P1P1GLSEnum(){ return 736;}
+-function MINIEnum(){ return 737;}
+-function MINIcondensedEnum(){ return 738;}
+-function TaylorHoodEnum(){ return 739;}
+-function LATaylorHoodEnum(){ return 740;}
+-function XTaylorHoodEnum(){ return 741;}
+-function OneLayerP4zEnum(){ return 742;}
+-function CrouzeixRaviartEnum(){ return 743;}
+-function LACrouzeixRaviartEnum(){ return 744;}
+-function SaveResultsEnum(){ return 745;}
+-function BoolExternalResultEnum(){ return 746;}
+-function DoubleExternalResultEnum(){ return 747;}
+-function DoubleMatExternalResultEnum(){ return 748;}
+-function IntExternalResultEnum(){ return 749;}
+-function JEnum(){ return 750;}
+-function StringExternalResultEnum(){ return 751;}
+-function StepEnum(){ return 752;}
+-function TimeEnum(){ return 753;}
+-function WaterColumnOldEnum(){ return 754;}
+-function OutputdefinitionEnum(){ return 755;}
+-function Outputdefinition1Enum(){ return 756;}
+-function Outputdefinition2Enum(){ return 757;}
+-function Outputdefinition3Enum(){ return 758;}
+-function Outputdefinition4Enum(){ return 759;}
+-function Outputdefinition5Enum(){ return 760;}
+-function Outputdefinition6Enum(){ return 761;}
+-function Outputdefinition7Enum(){ return 762;}
+-function Outputdefinition8Enum(){ return 763;}
+-function Outputdefinition9Enum(){ return 764;}
+-function Outputdefinition10Enum(){ return 765;}
+-function Outputdefinition11Enum(){ return 766;}
+-function Outputdefinition12Enum(){ return 767;}
+-function Outputdefinition13Enum(){ return 768;}
+-function Outputdefinition14Enum(){ return 769;}
+-function Outputdefinition15Enum(){ return 770;}
+-function Outputdefinition16Enum(){ return 771;}
+-function Outputdefinition17Enum(){ return 772;}
+-function Outputdefinition18Enum(){ return 773;}
+-function Outputdefinition19Enum(){ return 774;}
+-function Outputdefinition20Enum(){ return 775;}
+-function Outputdefinition21Enum(){ return 776;}
+-function Outputdefinition22Enum(){ return 777;}
+-function Outputdefinition23Enum(){ return 778;}
+-function Outputdefinition24Enum(){ return 779;}
+-function Outputdefinition25Enum(){ return 780;}
+-function Outputdefinition26Enum(){ return 781;}
+-function Outputdefinition27Enum(){ return 782;}
+-function Outputdefinition28Enum(){ return 783;}
+-function Outputdefinition29Enum(){ return 784;}
+-function Outputdefinition30Enum(){ return 785;}
+-function Outputdefinition31Enum(){ return 786;}
+-function Outputdefinition32Enum(){ return 787;}
+-function Outputdefinition33Enum(){ return 788;}
+-function Outputdefinition34Enum(){ return 789;}
+-function Outputdefinition35Enum(){ return 790;}
+-function Outputdefinition36Enum(){ return 791;}
+-function Outputdefinition37Enum(){ return 792;}
+-function Outputdefinition38Enum(){ return 793;}
+-function Outputdefinition39Enum(){ return 794;}
+-function Outputdefinition40Enum(){ return 795;}
+-function Outputdefinition41Enum(){ return 796;}
+-function Outputdefinition42Enum(){ return 797;}
+-function Outputdefinition43Enum(){ return 798;}
+-function Outputdefinition44Enum(){ return 799;}
+-function Outputdefinition45Enum(){ return 800;}
+-function Outputdefinition46Enum(){ return 801;}
+-function Outputdefinition47Enum(){ return 802;}
+-function Outputdefinition48Enum(){ return 803;}
+-function Outputdefinition49Enum(){ return 804;}
+-function Outputdefinition50Enum(){ return 805;}
+-function Outputdefinition51Enum(){ return 806;}
+-function Outputdefinition52Enum(){ return 807;}
+-function Outputdefinition53Enum(){ return 808;}
+-function Outputdefinition54Enum(){ return 809;}
+-function Outputdefinition55Enum(){ return 810;}
+-function Outputdefinition56Enum(){ return 811;}
+-function Outputdefinition57Enum(){ return 812;}
+-function Outputdefinition58Enum(){ return 813;}
+-function Outputdefinition59Enum(){ return 814;}
+-function Outputdefinition60Enum(){ return 815;}
+-function Outputdefinition61Enum(){ return 816;}
+-function Outputdefinition62Enum(){ return 817;}
+-function Outputdefinition63Enum(){ return 818;}
+-function Outputdefinition64Enum(){ return 819;}
+-function Outputdefinition65Enum(){ return 820;}
+-function Outputdefinition66Enum(){ return 821;}
+-function Outputdefinition67Enum(){ return 822;}
+-function Outputdefinition68Enum(){ return 823;}
+-function Outputdefinition69Enum(){ return 824;}
+-function Outputdefinition70Enum(){ return 825;}
+-function Outputdefinition71Enum(){ return 826;}
+-function Outputdefinition72Enum(){ return 827;}
+-function Outputdefinition73Enum(){ return 828;}
+-function Outputdefinition74Enum(){ return 829;}
+-function Outputdefinition75Enum(){ return 830;}
+-function Outputdefinition76Enum(){ return 831;}
+-function Outputdefinition77Enum(){ return 832;}
+-function Outputdefinition78Enum(){ return 833;}
+-function Outputdefinition79Enum(){ return 834;}
+-function Outputdefinition80Enum(){ return 835;}
+-function Outputdefinition81Enum(){ return 836;}
+-function Outputdefinition82Enum(){ return 837;}
+-function Outputdefinition83Enum(){ return 838;}
+-function Outputdefinition84Enum(){ return 839;}
+-function Outputdefinition85Enum(){ return 840;}
+-function Outputdefinition86Enum(){ return 841;}
+-function Outputdefinition87Enum(){ return 842;}
+-function Outputdefinition88Enum(){ return 843;}
+-function Outputdefinition89Enum(){ return 844;}
+-function Outputdefinition90Enum(){ return 845;}
+-function Outputdefinition91Enum(){ return 846;}
+-function Outputdefinition92Enum(){ return 847;}
+-function Outputdefinition93Enum(){ return 848;}
+-function Outputdefinition94Enum(){ return 849;}
+-function Outputdefinition95Enum(){ return 850;}
+-function Outputdefinition96Enum(){ return 851;}
+-function Outputdefinition97Enum(){ return 852;}
+-function Outputdefinition98Enum(){ return 853;}
+-function Outputdefinition99Enum(){ return 854;}
+-function Outputdefinition100Enum(){ return 855;}
+-function OutputdefinitionListEnum(){ return 856;}
+-function MassfluxatgateEnum(){ return 857;}
+-function MassfluxatgateNameEnum(){ return 858;}
+-function MassfluxatgateDefinitionenumEnum(){ return 859;}
+-function MassfluxatgateSegmentsEnum(){ return 860;}
+-function NodalvalueEnum(){ return 861;}
+-function NodalvalueNameEnum(){ return 862;}
+-function NodalvalueDefinitionenumEnum(){ return 863;}
+-function NodalvalueModelEnum(){ return 864;}
+-function NodalvalueNodeEnum(){ return 865;}
+-function MisfitNameEnum(){ return 866;}
+-function MisfitDefinitionenumEnum(){ return 867;}
+-function MisfitModelEnum(){ return 868;}
+-function MisfitObservationEnum(){ return 869;}
+-function MisfitObservationEnum(){ return 870;}
+-function MisfitLocalEnum(){ return 871;}
+-function MisfitTimeinterpolationEnum(){ return 872;}
+-function MisfitWeightsEnum(){ return 873;}
+-function MisfitWeightsEnum(){ return 874;}
+-function SurfaceObservationEnum(){ return 875;}
+-function WeightsSurfaceObservationEnum(){ return 876;}
+-function VxObsEnum(){ return 877;}
+-function WeightsVxObsEnum(){ return 878;}
+-function VyObsEnum(){ return 879;}
+-function WeightsVyObsEnum(){ return 880;}
+-function MinVelEnum(){ return 881;}
+-function MaxVelEnum(){ return 882;}
+-function MinVxEnum(){ return 883;}
+-function MaxVxEnum(){ return 884;}
+-function MaxAbsVxEnum(){ return 885;}
+-function MinVyEnum(){ return 886;}
+-function MaxVyEnum(){ return 887;}
+-function MaxAbsVyEnum(){ return 888;}
+-function MinVzEnum(){ return 889;}
+-function MaxVzEnum(){ return 890;}
+-function MaxAbsVzEnum(){ return 891;}
+-function FloatingAreaEnum(){ return 892;}
+-function GroundedAreaEnum(){ return 893;}
+-function IceMassEnum(){ return 894;}
+-function IceVolumeEnum(){ return 895;}
+-function IceVolumeAboveFloatationEnum(){ return 896;}
+-function TotalSmbEnum(){ return 897;}
+-function AbsoluteEnum(){ return 898;}
+-function IncrementalEnum(){ return 899;}
+-function AugmentedLagrangianREnum(){ return 900;}
+-function AugmentedLagrangianRhopEnum(){ return 901;}
+-function AugmentedLagrangianRlambdaEnum(){ return 902;}
+-function AugmentedLagrangianRholambdaEnum(){ return 903;}
+-function AugmentedLagrangianThetaEnum(){ return 904;}
+-function NoneEnum(){ return 905;}
+-function AggressiveMigrationEnum(){ return 906;}
+-function SoftMigrationEnum(){ return 907;}
+-function SubelementMigrationEnum(){ return 908;}
+-function SubelementMigration2Enum(){ return 909;}
+-function ContactEnum(){ return 910;}
+-function GroundingOnlyEnum(){ return 911;}
+-function MaskGroundediceLevelsetEnum(){ return 912;}
+-function GaussSegEnum(){ return 913;}
+-function GaussTriaEnum(){ return 914;}
+-function GaussTetraEnum(){ return 915;}
+-function GaussPentaEnum(){ return 916;}
+-function FSSolverEnum(){ return 917;}
+-function AdjointEnum(){ return 918;}
+-function ColinearEnum(){ return 919;}
+-function ControlSteadyEnum(){ return 920;}
+-function FsetEnum(){ return 921;}
+-function Gradient1Enum(){ return 922;}
+-function Gradient2Enum(){ return 923;}
+-function Gradient3Enum(){ return 924;}
+-function GradientEnum(){ return 925;}
+-function GroundinglineMigrationEnum(){ return 926;}
+-function GsetEnum(){ return 927;}
+-function IndexEnum(){ return 928;}
+-function IndexedEnum(){ return 929;}
+-function IntersectEnum(){ return 930;}
+-function NodalEnum(){ return 931;}
+-function OldGradientEnum(){ return 932;}
+-function OutputBufferPointerEnum(){ return 933;}
+-function OutputBufferSizePointerEnum(){ return 934;}
+-function OutputFilePointerEnum(){ return 935;}
+-function ToolkitsFileNameEnum(){ return 936;}
+-function RootPathEnum(){ return 937;}
+-function OutputFileNameEnum(){ return 938;}
+-function InputFileNameEnum(){ return 939;}
+-function LockFileNameEnum(){ return 940;}
+-function RestartFileNameEnum(){ return 941;}
+-function ToolkitsOptionsAnalysesEnum(){ return 942;}
+-function ToolkitsOptionsStringsEnum(){ return 943;}
+-function QmuErrNameEnum(){ return 944;}
+-function QmuInNameEnum(){ return 945;}
+-function QmuOutNameEnum(){ return 946;}
+-function RegularEnum(){ return 947;}
+-function ScaledEnum(){ return 948;}
+-function SeparateEnum(){ return 949;}
+-function SsetEnum(){ return 950;}
+-function VerboseEnum(){ return 951;}
+-function TriangleInterpEnum(){ return 952;}
+-function BilinearInterpEnum(){ return 953;}
+-function NearestInterpEnum(){ return 954;}
+-function XYEnum(){ return 955;}
+-function XYZEnum(){ return 956;}
+-function DenseEnum(){ return 957;}
+-function MpiDenseEnum(){ return 958;}
+-function MpiSparseEnum(){ return 959;}
+-function SeqEnum(){ return 960;}
+-function MpiEnum(){ return 961;}
+-function MumpsEnum(){ return 962;}
+-function GslEnum(){ return 963;}
+-function OptionEnum(){ return 964;}
+-function GenericOptionEnum(){ return 965;}
+-function OptionCellEnum(){ return 966;}
+-function OptionStructEnum(){ return 967;}
+-function CuffeyEnum(){ return 968;}
+-function PatersonEnum(){ return 969;}
+-function ArrheniusEnum(){ return 970;}
+-function LliboutryDuvalEnum(){ return 971;}
+-function TransientIslevelsetEnum(){ return 972;}
+-function SpcLevelsetEnum(){ return 973;}
+-function ExtrapolationVariableEnum(){ return 974;}
+-function IceMaskNodeActivationEnum(){ return 975;}
+-function LevelsetfunctionSlopeXEnum(){ return 976;}
+-function LevelsetfunctionSlopeYEnum(){ return 977;}
+-function LevelsetfunctionPicardEnum(){ return 978;}
+-function SealevelriseSolutionEnum(){ return 979;}
+-function SealevelriseAnalysisEnum(){ return 980;}
+-function SealevelriseSEnum(){ return 981;}
+-function SealevelriseDeltathicknessEnum(){ return 982;}
+-function SealevelriseMaxiterEnum(){ return 983;}
+-function SealevelriseReltolEnum(){ return 984;}
+-function SealevelriseAbstolEnum(){ return 985;}
+-function SealevelriseLoveHEnum(){ return 986;}
+-function SealevelriseLoveKEnum(){ return 987;}
+-function SealevelriseRigidEnum(){ return 988;}
+-function SealevelriseElasticEnum(){ return 989;}
+-function SealevelriseEustaticEnum(){ return 990;}
+-function SealevelriseGElasticEnum(){ return 991;}
+-function SealevelriseDegaccEnum(){ return 992;}
+-function SealevelriseRequestedOutputsEnum(){ return 993;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 994;}
+-function MaximumNumberOfDefinitionsEnum(){ return 995;}
++function FemModelCommEnum(){ return 1;}
++function WorldCommEnum(){ return 2;}
++function IcecapToEarthCommEnum(){ return 3;}
++function NumModelsEnum(){ return 4;}
++function ModelIdEnum(){ return 5;}
++function EarthIdEnum(){ return 6;}
++function AutodiffIsautodiffEnum(){ return 7;}
++function AutodiffNumDependentsEnum(){ return 8;}
++function AutodiffNumDependentObjectsEnum(){ return 9;}
++function AutodiffDependentObjectNamesEnum(){ return 10;}
++function AutodiffDependentObjectTypesEnum(){ return 11;}
++function AutodiffDependentObjectIndicesEnum(){ return 12;}
++function AutodiffDependentObjectsEnum(){ return 13;}
++function AutodiffNumIndependentsEnum(){ return 14;}
++function AutodiffNumIndependentObjectsEnum(){ return 15;}
++function AutodiffIndependentObjectNamesEnum(){ return 16;}
++function AutodiffIndependentObjectTypesEnum(){ return 17;}
++function AutodiffIndependentObjectsEnum(){ return 18;}
++function AutodiffJacobianEnum(){ return 19;}
++function AutodiffXpEnum(){ return 20;}
++function AutodiffDriverEnum(){ return 21;}
++function AutodiffFosForwardIndexEnum(){ return 22;}
++function AutodiffFovForwardIndicesEnum(){ return 23;}
++function AutodiffFosReverseIndexEnum(){ return 24;}
++function AutodiffMassFluxSegmentsPresentEnum(){ return 25;}
++function AutodiffKeepEnum(){ return 26;}
++function AutodiffObufsizeEnum(){ return 27;}
++function AutodiffLbufsizeEnum(){ return 28;}
++function AutodiffCbufsizeEnum(){ return 29;}
++function AutodiffTbufsizeEnum(){ return 30;}
++function AutodiffGcTriggerRatioEnum(){ return 31;}
++function AutodiffGcTriggerMaxSizeEnum(){ return 32;}
++function BalancethicknessSpcthicknessEnum(){ return 33;}
++function BalancethicknessStabilizationEnum(){ return 34;}
++function BalancethicknessThickeningRateEnum(){ return 35;}
++function BasalforcingsEnum(){ return 36;}
++function BasalforcingsGeothermalfluxEnum(){ return 37;}
++function BasalforcingsGroundediceMeltingRateEnum(){ return 38;}
++function BasalforcingsFloatingiceMeltingRateEnum(){ return 39;}
++function BasalforcingsDeepwaterMeltingRateEnum(){ return 40;}
++function BasalforcingsDeepwaterElevationEnum(){ return 41;}
++function BasalforcingsUpperwaterElevationEnum(){ return 42;}
++function BasalforcingsMeltrateFactorEnum(){ return 43;}
++function BasalforcingsThresholdThicknessEnum(){ return 44;}
++function BasalforcingsUpperdepthMeltEnum(){ return 45;}
++function BasalforcingsMantleconductivityEnum(){ return 46;}
++function BasalforcingsNusseltEnum(){ return 47;}
++function BasalforcingsDtbgEnum(){ return 48;}
++function BasalforcingsPlumeradiusEnum(){ return 49;}
++function BasalforcingsTopplumedepthEnum(){ return 50;}
++function BasalforcingsBottomplumedepthEnum(){ return 51;}
++function BasalforcingsPlumexEnum(){ return 52;}
++function BasalforcingsPlumeyEnum(){ return 53;}
++function BasalforcingsCrustthicknessEnum(){ return 54;}
++function BasalforcingsUppercrustthicknessEnum(){ return 55;}
++function BasalforcingsUppercrustheatEnum(){ return 56;}
++function BasalforcingsLowercrustheatEnum(){ return 57;}
++function FloatingMeltRateEnum(){ return 58;}
++function LinearFloatingMeltRateEnum(){ return 59;}
++function MismipFloatingMeltRateEnum(){ return 60;}
++function MantlePlumeGeothermalFluxEnum(){ return 61;}
++function BedEnum(){ return 62;}
++function BaseEnum(){ return 63;}
++function ConstantsGEnum(){ return 64;}
++function ConstantsReferencetemperatureEnum(){ return 65;}
++function ConstantsYtsEnum(){ return 66;}
++function DependentObjectEnum(){ return 67;}
++function StressbalanceAbstolEnum(){ return 68;}
++function StressbalanceIsnewtonEnum(){ return 69;}
++function StressbalanceMaxiterEnum(){ return 70;}
++function StressbalancePenaltyFactorEnum(){ return 71;}
++function StressbalanceReferentialEnum(){ return 72;}
++function StressbalanceReltolEnum(){ return 73;}
++function StressbalanceNumRequestedOutputsEnum(){ return 74;}
++function StressbalanceRequestedOutputsEnum(){ return 75;}
++function StressbalanceRestolEnum(){ return 76;}
++function StressbalanceRiftPenaltyLockEnum(){ return 77;}
++function StressbalanceRiftPenaltyThresholdEnum(){ return 78;}
++function StressbalanceShelfDampeningEnum(){ return 79;}
++function StressbalanceSpcvxEnum(){ return 80;}
++function StressbalanceSpcvyEnum(){ return 81;}
++function StressbalanceSpcvzEnum(){ return 82;}
++function StressbalanceFSreconditioningEnum(){ return 83;}
++function StressbalanceVertexPairingEnum(){ return 84;}
++function StressbalanceViscosityOvershootEnum(){ return 85;}
++function LoadingforceXEnum(){ return 86;}
++function LoadingforceYEnum(){ return 87;}
++function LoadingforceZEnum(){ return 88;}
++function FlowequationBorderSSAEnum(){ return 89;}
++function FlowequationBorderHOEnum(){ return 90;}
++function FlowequationBorderFSEnum(){ return 91;}
++function FlowequationElementEquationEnum(){ return 92;}
++function FlowequationIsSIAEnum(){ return 93;}
++function FlowequationIsSSAEnum(){ return 94;}
++function FlowequationIsL1L2Enum(){ return 95;}
++function FlowequationIsHOEnum(){ return 96;}
++function FlowequationIsFSEnum(){ return 97;}
++function FlowequationFeSSAEnum(){ return 98;}
++function FlowequationFeHOEnum(){ return 99;}
++function FlowequationFeFSEnum(){ return 100;}
++function FlowequationVertexEquationEnum(){ return 101;}
++function FrictionAsEnum(){ return 102;}
++function FrictionCoefficientEnum(){ return 103;}
++function FrictionCoefficientcoulombEnum(){ return 104;}
++function FrictionPEnum(){ return 105;}
++function FrictionQEnum(){ return 106;}
++function FrictionMEnum(){ return 107;}
++function FrictionCEnum(){ return 108;}
++function FrictionLawEnum(){ return 109;}
++function FrictionGammaEnum(){ return 110;}
++function FrictionFEnum(){ return 111;}
++function FrictionWaterLayerEnum(){ return 112;}
++function FrictionEffectivePressureEnum(){ return 113;}
++function FrictionCouplingEnum(){ return 114;}
++function GeometryHydrostaticRatioEnum(){ return 115;}
++function HydrologyModelEnum(){ return 116;}
++function HydrologyshreveEnum(){ return 117;}
++function HydrologyshreveSpcwatercolumnEnum(){ return 118;}
++function HydrologyshreveStabilizationEnum(){ return 119;}
++function HydrologydcEnum(){ return 120;}
++function SedimentHeadEnum(){ return 121;}
++function SedimentHeadOldEnum(){ return 122;}
++function SedimentHeadResidualEnum(){ return 123;}
++function EffectivePressureEnum(){ return 124;}
++function EplHeadEnum(){ return 125;}
++function EplHeadOldEnum(){ return 126;}
++function EplHeadSlopeXEnum(){ return 127;}
++function EplHeadSlopeYEnum(){ return 128;}
++function EplZigZagCounterEnum(){ return 129;}
++function HydrologydcMaxIterEnum(){ return 130;}
++function HydrologydcRelTolEnum(){ return 131;}
++function HydrologydcSpcsedimentHeadEnum(){ return 132;}
++function HydrologydcSedimentCompressibilityEnum(){ return 133;}
++function HydrologydcSedimentPorosityEnum(){ return 134;}
++function HydrologydcSedimentThicknessEnum(){ return 135;}
++function HydrologydcSedimentTransmitivityEnum(){ return 136;}
++function HydrologydcWaterCompressibilityEnum(){ return 137;}
++function HydrologydcSpceplHeadEnum(){ return 138;}
++function HydrologydcMaskEplactiveNodeEnum(){ return 139;}
++function HydrologydcMaskEplactiveEltEnum(){ return 140;}
++function HydrologydcEplCompressibilityEnum(){ return 141;}
++function HydrologydcEplPorosityEnum(){ return 142;}
++function HydrologydcEplInitialThicknessEnum(){ return 143;}
++function HydrologydcEplColapseThicknessEnum(){ return 144;}
++function HydrologydcEplMaxThicknessEnum(){ return 145;}
++function HydrologydcEplThicknessEnum(){ return 146;}
++function HydrologydcEplThicknessOldEnum(){ return 147;}
++function HydrologydcEplThickCompEnum(){ return 148;}
++function HydrologydcEplConductivityEnum(){ return 149;}
++function HydrologydcIsefficientlayerEnum(){ return 150;}
++function HydrologydcSedimentlimitFlagEnum(){ return 151;}
++function HydrologydcSedimentlimitEnum(){ return 152;}
++function HydrologydcTransferFlagEnum(){ return 153;}
++function HydrologydcLeakageFactorEnum(){ return 154;}
++function HydrologydcPenaltyFactorEnum(){ return 155;}
++function HydrologydcPenaltyLockEnum(){ return 156;}
++function HydrologydcEplflipLockEnum(){ return 157;}
++function HydrologydcBasalMoulinInputEnum(){ return 158;}
++function HydrologyLayerEnum(){ return 159;}
++function HydrologySedimentEnum(){ return 160;}
++function HydrologyEfficientEnum(){ return 161;}
++function HydrologySedimentKmaxEnum(){ return 162;}
++function HydrologysommersEnum(){ return 163;}
++function HydrologyHeadEnum(){ return 164;}
++function HydrologyGapHeightEnum(){ return 165;}
++function HydrologyBumpSpacingEnum(){ return 166;}
++function HydrologyBumpHeightEnum(){ return 167;}
++function HydrologyEnglacialInputEnum(){ return 168;}
++function HydrologyMoulinInputEnum(){ return 169;}
++function HydrologyReynoldsEnum(){ return 170;}
++function HydrologyNeumannfluxEnum(){ return 171;}
++function HydrologySpcheadEnum(){ return 172;}
++function HydrologyConductivityEnum(){ return 173;}
++function IndependentObjectEnum(){ return 174;}
++function InversionControlParametersEnum(){ return 175;}
++function InversionControlScalingFactorsEnum(){ return 176;}
++function InversionCostFunctionThresholdEnum(){ return 177;}
++function InversionCostFunctionsCoefficientsEnum(){ return 178;}
++function InversionCostFunctionsEnum(){ return 179;}
++function InversionGradientScalingEnum(){ return 180;}
++function InversionIscontrolEnum(){ return 181;}
++function InversionTypeEnum(){ return 182;}
++function InversionIncompleteAdjointEnum(){ return 183;}
++function InversionMaxParametersEnum(){ return 184;}
++function InversionMaxiterPerStepEnum(){ return 185;}
++function InversionMaxiterEnum(){ return 186;}
++function InversionMaxstepsEnum(){ return 187;}
++function InversionFatolEnum(){ return 188;}
++function InversionFrtolEnum(){ return 189;}
++function InversionGatolEnum(){ return 190;}
++function InversionGrtolEnum(){ return 191;}
++function InversionGttolEnum(){ return 192;}
++function InversionAlgorithmEnum(){ return 193;}
++function InversionMinParametersEnum(){ return 194;}
++function InversionNstepsEnum(){ return 195;}
++function InversionDxminEnum(){ return 196;}
++function InversionNumControlParametersEnum(){ return 197;}
++function InversionNumCostFunctionsEnum(){ return 198;}
++function InversionStepThresholdEnum(){ return 199;}
++function InversionThicknessObsEnum(){ return 200;}
++function InversionSurfaceObsEnum(){ return 201;}
++function InversionVxObsEnum(){ return 202;}
++function InversionVyObsEnum(){ return 203;}
++function InversionVzObsEnum(){ return 204;}
++function MaskIceLevelsetEnum(){ return 205;}
++function MaskOceanLevelsetEnum(){ return 206;}
++function MaskLandLevelsetEnum(){ return 207;}
++function MaterialsBetaEnum(){ return 208;}
++function MaterialsHeatcapacityEnum(){ return 209;}
++function MaterialsLatentheatEnum(){ return 210;}
++function MaterialsMeltingpointEnum(){ return 211;}
++function MaterialsMixedLayerCapacityEnum(){ return 212;}
++function MaterialsRheologyBEnum(){ return 213;}
++function MaterialsRheologyBbarEnum(){ return 214;}
++function MaterialsRheologyLawEnum(){ return 215;}
++function MaterialsRheologyNEnum(){ return 216;}
++function DamageIsdamageEnum(){ return 217;}
++function DamageDEnum(){ return 218;}
++function DamageFEnum(){ return 219;}
++function DamageDbarEnum(){ return 220;}
++function DamageLawEnum(){ return 221;}
++function DamageC1Enum(){ return 222;}
++function DamageC2Enum(){ return 223;}
++function DamageC3Enum(){ return 224;}
++function DamageC4Enum(){ return 225;}
++function DamageElementinterpEnum(){ return 226;}
++function DamageHealingEnum(){ return 227;}
++function DamageStressThresholdEnum(){ return 228;}
++function DamageKappaEnum(){ return 229;}
++function DamageStabilizationEnum(){ return 230;}
++function DamageMaxiterEnum(){ return 231;}
++function DamageSpcdamageEnum(){ return 232;}
++function DamageMaxDamageEnum(){ return 233;}
++function DamageEquivStressEnum(){ return 234;}
++function DamageEvolutionNumRequestedOutputsEnum(){ return 235;}
++function DamageEvolutionRequestedOutputsEnum(){ return 236;}
++function DamageEnum(){ return 237;}
++function NewDamageEnum(){ return 238;}
++function StressIntensityFactorEnum(){ return 239;}
++function CalvingLawEnum(){ return 240;}
++function CalvingCalvingrateEnum(){ return 241;}
++function CalvingMeltingrateEnum(){ return 242;}
++function CalvingLevermannEnum(){ return 243;}
++function CalvingPiEnum(){ return 244;}
++function CalvingDevEnum(){ return 245;}
++function DefaultCalvingEnum(){ return 246;}
++function CalvingRequestedOutputsEnum(){ return 247;}
++function CalvinglevermannCoeffEnum(){ return 248;}
++function CalvinglevermannMeltingrateEnum(){ return 249;}
++function CalvingpiCoeffEnum(){ return 250;}
++function CalvingpiMeltingrateEnum(){ return 251;}
++function CalvingratexEnum(){ return 252;}
++function CalvingrateyEnum(){ return 253;}
++function CalvingratexAverageEnum(){ return 254;}
++function CalvingrateyAverageEnum(){ return 255;}
++function StrainRateparallelEnum(){ return 256;}
++function StrainRateperpendicularEnum(){ return 257;}
++function StrainRateeffectiveEnum(){ return 258;}
++function MaterialsRhoIceEnum(){ return 259;}
++function MaterialsRhoSeawaterEnum(){ return 260;}
++function MaterialsRhoFreshwaterEnum(){ return 261;}
++function MaterialsMuWaterEnum(){ return 262;}
++function MaterialsThermalExchangeVelocityEnum(){ return 263;}
++function MaterialsThermalconductivityEnum(){ return 264;}
++function MaterialsTemperateiceconductivityEnum(){ return 265;}
++function MaterialsLithosphereShearModulusEnum(){ return 266;}
++function MaterialsLithosphereDensityEnum(){ return 267;}
++function MaterialsMantleShearModulusEnum(){ return 268;}
++function MaterialsMantleDensityEnum(){ return 269;}
++function MaterialsEarthDensityEnum(){ return 270;}
++function MeshAverageVertexConnectivityEnum(){ return 271;}
++function MeshElements2dEnum(){ return 272;}
++function MeshElementsEnum(){ return 273;}
++function MeshLowerelementsEnum(){ return 274;}
++function MeshNumberofelements2dEnum(){ return 275;}
++function MeshNumberofelementsEnum(){ return 276;}
++function MeshNumberoflayersEnum(){ return 277;}
++function MeshNumberofvertices2dEnum(){ return 278;}
++function MeshNumberofverticesEnum(){ return 279;}
++function MeshUpperelementsEnum(){ return 280;}
++function MeshVertexonbaseEnum(){ return 281;}
++function MeshVertexonsurfaceEnum(){ return 282;}
++function MeshVertexonboundaryEnum(){ return 283;}
++function MeshXEnum(){ return 284;}
++function MeshYEnum(){ return 285;}
++function MeshZEnum(){ return 286;}
++function MeshLatEnum(){ return 287;}
++function MeshLongEnum(){ return 288;}
++function MeshREnum(){ return 289;}
++function MeshElementtypeEnum(){ return 290;}
++function MeshSegmentsEnum(){ return 291;}
++function DomainTypeEnum(){ return 292;}
++function DomainDimensionEnum(){ return 293;}
++function Domain2DhorizontalEnum(){ return 294;}
++function Domain2DverticalEnum(){ return 295;}
++function Domain3DEnum(){ return 296;}
++function Domain3DsurfaceEnum(){ return 297;}
++function MiscellaneousNameEnum(){ return 298;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 299;}
++function MasstransportIsfreesurfaceEnum(){ return 300;}
++function MasstransportMinThicknessEnum(){ return 301;}
++function MasstransportPenaltyFactorEnum(){ return 302;}
++function MasstransportSpcthicknessEnum(){ return 303;}
++function MasstransportStabilizationEnum(){ return 304;}
++function MasstransportVertexPairingEnum(){ return 305;}
++function MasstransportNumRequestedOutputsEnum(){ return 306;}
++function MasstransportRequestedOutputsEnum(){ return 307;}
++function QmuIsdakotaEnum(){ return 308;}
++function MassFluxSegmentsEnum(){ return 309;}
++function MassFluxSegmentsPresentEnum(){ return 310;}
++function QmuMassFluxSegmentsPresentEnum(){ return 311;}
++function QmuNumberofpartitionsEnum(){ return 312;}
++function QmuNumberofresponsesEnum(){ return 313;}
++function QmuPartitionEnum(){ return 314;}
++function QmuResponsedescriptorsEnum(){ return 315;}
++function QmuVariabledescriptorsEnum(){ return 316;}
++function RiftsNumriftsEnum(){ return 317;}
++function RiftsRiftstructEnum(){ return 318;}
++function SettingsResultsOnNodesEnum(){ return 319;}
++function SettingsIoGatherEnum(){ return 320;}
++function SettingsLowmemEnum(){ return 321;}
++function SettingsOutputFrequencyEnum(){ return 322;}
++function SettingsRecordingFrequencyEnum(){ return 323;}
++function SettingsWaitonlockEnum(){ return 324;}
++function DebugProfilingEnum(){ return 325;}
++function ProfilingCurrentMemEnum(){ return 326;}
++function ProfilingCurrentFlopsEnum(){ return 327;}
++function ProfilingSolutionTimeEnum(){ return 328;}
++function SteadystateMaxiterEnum(){ return 329;}
++function SteadystateNumRequestedOutputsEnum(){ return 330;}
++function SteadystateReltolEnum(){ return 331;}
++function SteadystateRequestedOutputsEnum(){ return 332;}
++function SurfaceEnum(){ return 333;}
++function ThermalIsenthalpyEnum(){ return 334;}
++function ThermalIsdynamicbasalspcEnum(){ return 335;}
++function ThermalReltolEnum(){ return 336;}
++function ThermalMaxiterEnum(){ return 337;}
++function ThermalPenaltyFactorEnum(){ return 338;}
++function ThermalPenaltyLockEnum(){ return 339;}
++function ThermalPenaltyThresholdEnum(){ return 340;}
++function ThermalSpctemperatureEnum(){ return 341;}
++function ThermalStabilizationEnum(){ return 342;}
++function ThermalNumRequestedOutputsEnum(){ return 343;}
++function ThermalRequestedOutputsEnum(){ return 344;}
++function GiaMantleViscosityEnum(){ return 345;}
++function GiaLithosphereThicknessEnum(){ return 346;}
++function ThicknessEnum(){ return 347;}
++function TimesteppingStartTimeEnum(){ return 348;}
++function TimesteppingFinalTimeEnum(){ return 349;}
++function TimesteppingCflCoefficientEnum(){ return 350;}
++function TimesteppingTimeAdaptEnum(){ return 351;}
++function TimesteppingTimeStepEnum(){ return 352;}
++function TimesteppingInterpForcingsEnum(){ return 353;}
++function TransientIssmbEnum(){ return 354;}
++function TransientIscouplerEnum(){ return 355;}
++function TransientIsstressbalanceEnum(){ return 356;}
++function TransientIsgroundinglineEnum(){ return 357;}
++function TransientIsmasstransportEnum(){ return 358;}
++function TransientIsthermalEnum(){ return 359;}
++function TransientIsgiaEnum(){ return 360;}
++function TransientIsdamageevolutionEnum(){ return 361;}
++function TransientIshydrologyEnum(){ return 362;}
++function TransientIscalvingEnum(){ return 363;}
++function TransientIsslrEnum(){ return 364;}
++function TransientNumRequestedOutputsEnum(){ return 365;}
++function TransientRequestedOutputsEnum(){ return 366;}
++function PotentialEnum(){ return 367;}
++function BalancethicknessSpcpotentialEnum(){ return 368;}
++function BalancethicknessApparentMassbalanceEnum(){ return 369;}
++function Balancethickness2MisfitEnum(){ return 370;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 371;}
++function BalancethicknessCmuEnum(){ return 372;}
++function BalancethicknessOmegaEnum(){ return 373;}
++function BalancethicknessD0Enum(){ return 374;}
++function SmbEnum(){ return 375;}
++function SmbAnalysisEnum(){ return 376;}
++function SmbSolutionEnum(){ return 377;}
++function SmbNumRequestedOutputsEnum(){ return 378;}
++function SmbRequestedOutputsEnum(){ return 379;}
++function SmbIsInitializedEnum(){ return 380;}
++function SMBforcingEnum(){ return 381;}
++function SmbMassBalanceEnum(){ return 382;}
++function SMBgembEnum(){ return 383;}
++function SmbInitDensityScalingEnum(){ return 384;}
++function SmbTaEnum(){ return 385;}
++function SmbVEnum(){ return 386;}
++function SmbDswrfEnum(){ return 387;}
++function SmbDlwrfEnum(){ return 388;}
++function SmbPEnum(){ return 389;}
++function SmbSwfEnum(){ return 390;}
++function SmbEAirEnum(){ return 391;}
++function SmbPAirEnum(){ return 392;}
++function SmbTmeanEnum(){ return 393;}
++function SmbCEnum(){ return 394;}
++function SmbTzEnum(){ return 395;}
++function SmbVzEnum(){ return 396;}
++function SmbDtEnum(){ return 397;}
++function SmbDzEnum(){ return 398;}
++function SmbAIdxEnum(){ return 399;}
++function SmbSwIdxEnum(){ return 400;}
++function SmbDenIdxEnum(){ return 401;}
++function SmbZTopEnum(){ return 402;}
++function SmbDzTopEnum(){ return 403;}
++function SmbDzMinEnum(){ return 404;}
++function SmbZYEnum(){ return 405;}
++function SmbZMaxEnum(){ return 406;}
++function SmbZMinEnum(){ return 407;}
++function SmbOutputFreqEnum(){ return 408;}
++function SmbASnowEnum(){ return 409;}
++function SmbAIceEnum(){ return 410;}
++function SmbCldFracEnum(){ return 411;}
++function SmbT0wetEnum(){ return 412;}
++function SmbT0dryEnum(){ return 413;}
++function SmbKEnum(){ return 414;}
++function SmbDEnum(){ return 415;}
++function SmbReEnum(){ return 416;}
++function SmbGdnEnum(){ return 417;}
++function SmbGspEnum(){ return 418;}
++function SmbECEnum(){ return 419;}
++function SmbCondensationEnum(){ return 420;}
++function SmbWEnum(){ return 421;}
++function SmbAEnum(){ return 422;}
++function SmbTEnum(){ return 423;}
++function SmbIsgraingrowthEnum(){ return 424;}
++function SmbIsalbedoEnum(){ return 425;}
++function SmbIsshortwaveEnum(){ return 426;}
++function SmbIsthermalEnum(){ return 427;}
++function SmbIsaccumulationEnum(){ return 428;}
++function SmbIsmeltEnum(){ return 429;}
++function SmbIsdensificationEnum(){ return 430;}
++function SmbIsturbulentfluxEnum(){ return 431;}
++function SMBpddEnum(){ return 432;}
++function SmbDelta18oEnum(){ return 433;}
++function SmbDelta18oSurfaceEnum(){ return 434;}
++function SmbIsdelta18oEnum(){ return 435;}
++function SmbIsmungsmEnum(){ return 436;}
++function SmbIsd18opdEnum(){ return 437;}
++function SmbPrecipitationsPresentdayEnum(){ return 438;}
++function SmbPrecipitationsLgmEnum(){ return 439;}
++function SmbTemperaturesPresentdayEnum(){ return 440;}
++function SmbTemperaturesLgmEnum(){ return 441;}
++function SmbPrecipitationEnum(){ return 442;}
++function SmbDesfacEnum(){ return 443;}
++function SmbS0pEnum(){ return 444;}
++function SmbS0tEnum(){ return 445;}
++function SmbRlapsEnum(){ return 446;}
++function SmbRlapslgmEnum(){ return 447;}
++function SmbPfacEnum(){ return 448;}
++function SmbTdiffEnum(){ return 449;}
++function SmbSealevEnum(){ return 450;}
++function SMBd18opddEnum(){ return 451;}
++function SmbDpermilEnum(){ return 452;}
++function SMBgradientsEnum(){ return 453;}
++function SmbMonthlytemperaturesEnum(){ return 454;}
++function SmbHrefEnum(){ return 455;}
++function SmbSmbrefEnum(){ return 456;}
++function SmbBPosEnum(){ return 457;}
++function SmbBNegEnum(){ return 458;}
++function SMBhenningEnum(){ return 459;}
++function SMBcomponentsEnum(){ return 460;}
++function SmbAccumulationEnum(){ return 461;}
++function SmbEvaporationEnum(){ return 462;}
++function SmbRunoffEnum(){ return 463;}
++function SMBmeltcomponentsEnum(){ return 464;}
++function SmbMeltEnum(){ return 465;}
++function SmbRefreezeEnum(){ return 466;}
++function SMBgcmEnum(){ return 467;}
++function SmbIspddEnum(){ return 468;}
++function SmbIssmbgradientsEnum(){ return 469;}
++function SolutionTypeEnum(){ return 470;}
++function AnalysisTypeEnum(){ return 471;}
++function ConfigurationTypeEnum(){ return 472;}
++function AdjointBalancethicknessAnalysisEnum(){ return 473;}
++function AdjointBalancethickness2AnalysisEnum(){ return 474;}
++function AdjointHorizAnalysisEnum(){ return 475;}
++function AnalysisCounterEnum(){ return 476;}
++function DefaultAnalysisEnum(){ return 477;}
++function BalancethicknessAnalysisEnum(){ return 478;}
++function BalancethicknessSolutionEnum(){ return 479;}
++function Balancethickness2AnalysisEnum(){ return 480;}
++function Balancethickness2SolutionEnum(){ return 481;}
++function BalancethicknessSoftAnalysisEnum(){ return 482;}
++function BalancethicknessSoftSolutionEnum(){ return 483;}
++function BalancevelocityAnalysisEnum(){ return 484;}
++function BalancevelocitySolutionEnum(){ return 485;}
++function L2ProjectionEPLAnalysisEnum(){ return 486;}
++function L2ProjectionBaseAnalysisEnum(){ return 487;}
++function BedSlopeSolutionEnum(){ return 488;}
++function DamageEvolutionSolutionEnum(){ return 489;}
++function DamageEvolutionAnalysisEnum(){ return 490;}
++function StressbalanceAnalysisEnum(){ return 491;}
++function StressbalanceSIAAnalysisEnum(){ return 492;}
++function StressbalanceSolutionEnum(){ return 493;}
++function StressbalanceVerticalAnalysisEnum(){ return 494;}
++function EnthalpyAnalysisEnum(){ return 495;}
++function FlaimAnalysisEnum(){ return 496;}
++function FlaimSolutionEnum(){ return 497;}
++function HydrologyShreveAnalysisEnum(){ return 498;}
++function HydrologyDCInefficientAnalysisEnum(){ return 499;}
++function HydrologyDCEfficientAnalysisEnum(){ return 500;}
++function HydrologySommersAnalysisEnum(){ return 501;}
++function HydrologySolutionEnum(){ return 502;}
++function MeltingAnalysisEnum(){ return 503;}
++function MasstransportAnalysisEnum(){ return 504;}
++function MasstransportSolutionEnum(){ return 505;}
++function FreeSurfaceBaseAnalysisEnum(){ return 506;}
++function FreeSurfaceTopAnalysisEnum(){ return 507;}
++function SurfaceNormalVelocityEnum(){ return 508;}
++function ExtrudeFromBaseAnalysisEnum(){ return 509;}
++function ExtrudeFromTopAnalysisEnum(){ return 510;}
++function DepthAverageAnalysisEnum(){ return 511;}
++function SteadystateSolutionEnum(){ return 512;}
++function SurfaceSlopeSolutionEnum(){ return 513;}
++function SmoothAnalysisEnum(){ return 514;}
++function ThermalAnalysisEnum(){ return 515;}
++function ThermalSolutionEnum(){ return 516;}
++function TransientSolutionEnum(){ return 517;}
++function UzawaPressureAnalysisEnum(){ return 518;}
++function GiaSolutionEnum(){ return 519;}
++function GiaAnalysisEnum(){ return 520;}
++function MeshdeformationSolutionEnum(){ return 521;}
++function MeshdeformationAnalysisEnum(){ return 522;}
++function LevelsetAnalysisEnum(){ return 523;}
++function LevelsetStabilizationEnum(){ return 524;}
++function ExtrapolationAnalysisEnum(){ return 525;}
++function LsfReinitializationAnalysisEnum(){ return 526;}
++function ApproximationEnum(){ return 527;}
++function NoneApproximationEnum(){ return 528;}
++function SIAApproximationEnum(){ return 529;}
++function SSAApproximationEnum(){ return 530;}
++function SSAHOApproximationEnum(){ return 531;}
++function SSAFSApproximationEnum(){ return 532;}
++function L1L2ApproximationEnum(){ return 533;}
++function HOApproximationEnum(){ return 534;}
++function HOFSApproximationEnum(){ return 535;}
++function FSApproximationEnum(){ return 536;}
++function FSvelocityEnum(){ return 537;}
++function FSpressureEnum(){ return 538;}
++function DataSetEnum(){ return 539;}
++function ConstraintsEnum(){ return 540;}
++function LoadsEnum(){ return 541;}
++function MaterialsEnum(){ return 542;}
++function NodesEnum(){ return 543;}
++function ContoursEnum(){ return 544;}
++function ParametersEnum(){ return 545;}
++function VerticesEnum(){ return 546;}
++function ResultsEnum(){ return 547;}
++function GenericParamEnum(){ return 548;}
++function AdolcParamEnum(){ return 549;}
++function BoolInputEnum(){ return 550;}
++function BoolParamEnum(){ return 551;}
++function ContourEnum(){ return 552;}
++function ControlInputEnum(){ return 553;}
++function DatasetInputEnum(){ return 554;}
++function DoubleInputEnum(){ return 555;}
++function DoubleArrayInputEnum(){ return 556;}
++function DataSetParamEnum(){ return 557;}
++function DoubleMatArrayParamEnum(){ return 558;}
++function DoubleMatParamEnum(){ return 559;}
++function DoubleParamEnum(){ return 560;}
++function DoubleVecParamEnum(){ return 561;}
++function ElementEnum(){ return 562;}
++function ElementHookEnum(){ return 563;}
++function HookEnum(){ return 564;}
++function ExternalResultEnum(){ return 565;}
++function FileParamEnum(){ return 566;}
++function InputEnum(){ return 567;}
++function IntInputEnum(){ return 568;}
++function InputToExtrudeEnum(){ return 569;}
++function InputToL2ProjectEnum(){ return 570;}
++function InputToDepthaverageEnum(){ return 571;}
++function InputToSmoothEnum(){ return 572;}
++function SmoothThicknessMultiplierEnum(){ return 573;}
++function IntParamEnum(){ return 574;}
++function IntVecParamEnum(){ return 575;}
++function TransientParamEnum(){ return 576;}
++function MaticeEnum(){ return 577;}
++function MatdamageiceEnum(){ return 578;}
++function MatparEnum(){ return 579;}
++function NodeEnum(){ return 580;}
++function NumericalfluxEnum(){ return 581;}
++function NumericalfluxTypeEnum(){ return 582;}
++function NeumannfluxEnum(){ return 583;}
++function ParamEnum(){ return 584;}
++function MoulinEnum(){ return 585;}
++function PengridEnum(){ return 586;}
++function PenpairEnum(){ return 587;}
++function ProfilerEnum(){ return 588;}
++function MatrixParamEnum(){ return 589;}
++function MassconEnum(){ return 590;}
++function MassconNameEnum(){ return 591;}
++function MassconDefinitionenumEnum(){ return 592;}
++function MassconLevelsetEnum(){ return 593;}
++function MassconaxpbyEnum(){ return 594;}
++function MassconaxpbyNameEnum(){ return 595;}
++function MassconaxpbyDefinitionenumEnum(){ return 596;}
++function MassconaxpbyNamexEnum(){ return 597;}
++function MassconaxpbyNameyEnum(){ return 598;}
++function MassconaxpbyAlphaEnum(){ return 599;}
++function MassconaxpbyBetaEnum(){ return 600;}
++function NodeSIdEnum(){ return 601;}
++function VectorParamEnum(){ return 602;}
++function RiftfrontEnum(){ return 603;}
++function RiftfrontTypeEnum(){ return 604;}
++function SegmentEnum(){ return 605;}
++function SegmentRiftfrontEnum(){ return 606;}
++function SpcDynamicEnum(){ return 607;}
++function SpcStaticEnum(){ return 608;}
++function SpcTransientEnum(){ return 609;}
++function StringArrayParamEnum(){ return 610;}
++function StringParamEnum(){ return 611;}
++function SegEnum(){ return 612;}
++function SegInputEnum(){ return 613;}
++function TriaEnum(){ return 614;}
++function TriaInputEnum(){ return 615;}
++function TetraEnum(){ return 616;}
++function TetraInputEnum(){ return 617;}
++function PentaEnum(){ return 618;}
++function PentaInputEnum(){ return 619;}
++function VertexEnum(){ return 620;}
++function VertexPIdEnum(){ return 621;}
++function VertexSIdEnum(){ return 622;}
++function AirEnum(){ return 623;}
++function IceEnum(){ return 624;}
++function MelangeEnum(){ return 625;}
++function WaterEnum(){ return 626;}
++function ClosedEnum(){ return 627;}
++function FreeEnum(){ return 628;}
++function OpenEnum(){ return 629;}
++function AdjointpEnum(){ return 630;}
++function AdjointxEnum(){ return 631;}
++function AdjointyEnum(){ return 632;}
++function AdjointzEnum(){ return 633;}
++function BalancethicknessMisfitEnum(){ return 634;}
++function BedSlopeXEnum(){ return 635;}
++function BedSlopeYEnum(){ return 636;}
++function BoundaryEnum(){ return 637;}
++function ConvergedEnum(){ return 638;}
++function FillEnum(){ return 639;}
++function FractionIncrementEnum(){ return 640;}
++function FrictionEnum(){ return 641;}
++function InternalEnum(){ return 642;}
++function MassFluxEnum(){ return 643;}
++function MeltingOffsetEnum(){ return 644;}
++function MisfitEnum(){ return 645;}
++function PressureEnum(){ return 646;}
++function PressurePicardEnum(){ return 647;}
++function AndroidFrictionCoefficientEnum(){ return 648;}
++function ResetPenaltiesEnum(){ return 649;}
++function SegmentOnIceShelfEnum(){ return 650;}
++function SurfaceAbsVelMisfitEnum(){ return 651;}
++function SurfaceAreaEnum(){ return 652;}
++function SurfaceAverageVelMisfitEnum(){ return 653;}
++function SurfaceLogVelMisfitEnum(){ return 654;}
++function SurfaceLogVxVyMisfitEnum(){ return 655;}
++function SurfaceRelVelMisfitEnum(){ return 656;}
++function SurfaceSlopeXEnum(){ return 657;}
++function SurfaceSlopeYEnum(){ return 658;}
++function TemperatureEnum(){ return 659;}
++function TemperaturePicardEnum(){ return 660;}
++function TemperaturePDDEnum(){ return 661;}
++function ThicknessAbsMisfitEnum(){ return 662;}
++function SurfaceAbsMisfitEnum(){ return 663;}
++function VelEnum(){ return 664;}
++function VelocityEnum(){ return 665;}
++function VxAverageEnum(){ return 666;}
++function VxEnum(){ return 667;}
++function VxPicardEnum(){ return 668;}
++function VyAverageEnum(){ return 669;}
++function VyEnum(){ return 670;}
++function VyPicardEnum(){ return 671;}
++function VzEnum(){ return 672;}
++function VzSSAEnum(){ return 673;}
++function VzHOEnum(){ return 674;}
++function VzPicardEnum(){ return 675;}
++function VzFSEnum(){ return 676;}
++function VxMeshEnum(){ return 677;}
++function VyMeshEnum(){ return 678;}
++function VzMeshEnum(){ return 679;}
++function EnthalpyEnum(){ return 680;}
++function EnthalpyPicardEnum(){ return 681;}
++function ThicknessAbsGradientEnum(){ return 682;}
++function ThicknessAlongGradientEnum(){ return 683;}
++function ThicknessAcrossGradientEnum(){ return 684;}
++function ThicknessPositiveEnum(){ return 685;}
++function IntMatParamEnum(){ return 686;}
++function RheologyBbarAbsGradientEnum(){ return 687;}
++function RheologyBAbsGradientEnum(){ return 688;}
++function DragCoefficientAbsGradientEnum(){ return 689;}
++function TransientInputEnum(){ return 690;}
++function WaterfractionEnum(){ return 691;}
++function WatercolumnEnum(){ return 692;}
++function BasalFrictionEnum(){ return 693;}
++function ViscousHeatingEnum(){ return 694;}
++function HydrologyWaterVxEnum(){ return 695;}
++function HydrologyWaterVyEnum(){ return 696;}
++function DrivingStressXEnum(){ return 697;}
++function DrivingStressYEnum(){ return 698;}
++function SigmaNNEnum(){ return 699;}
++function StressTensorEnum(){ return 700;}
++function StressTensorxxEnum(){ return 701;}
++function StressTensorxyEnum(){ return 702;}
++function StressTensorxzEnum(){ return 703;}
++function StressTensoryyEnum(){ return 704;}
++function StressTensoryzEnum(){ return 705;}
++function StressTensorzzEnum(){ return 706;}
++function StressMaxPrincipalEnum(){ return 707;}
++function DeviatoricStressEnum(){ return 708;}
++function DeviatoricStressxxEnum(){ return 709;}
++function DeviatoricStressxyEnum(){ return 710;}
++function DeviatoricStressxzEnum(){ return 711;}
++function DeviatoricStressyyEnum(){ return 712;}
++function DeviatoricStressyzEnum(){ return 713;}
++function DeviatoricStresszzEnum(){ return 714;}
++function DeviatoricStresseffectiveEnum(){ return 715;}
++function StrainRateEnum(){ return 716;}
++function StrainRatexxEnum(){ return 717;}
++function StrainRatexyEnum(){ return 718;}
++function StrainRatexzEnum(){ return 719;}
++function StrainRateyyEnum(){ return 720;}
++function StrainRateyzEnum(){ return 721;}
++function StrainRatezzEnum(){ return 722;}
++function DivergenceEnum(){ return 723;}
++function MaxDivergenceEnum(){ return 724;}
++function GiaCrossSectionShapeEnum(){ return 725;}
++function GiadWdtEnum(){ return 726;}
++function GiaWEnum(){ return 727;}
++function P0Enum(){ return 728;}
++function P0ArrayEnum(){ return 729;}
++function P1Enum(){ return 730;}
++function P1DGEnum(){ return 731;}
++function P1bubbleEnum(){ return 732;}
++function P1bubblecondensedEnum(){ return 733;}
++function P2Enum(){ return 734;}
++function P2bubbleEnum(){ return 735;}
++function P2bubblecondensedEnum(){ return 736;}
++function P2xP1Enum(){ return 737;}
++function P1xP2Enum(){ return 738;}
++function P1xP3Enum(){ return 739;}
++function P2xP4Enum(){ return 740;}
++function P1P1Enum(){ return 741;}
++function P1P1GLSEnum(){ return 742;}
++function MINIEnum(){ return 743;}
++function MINIcondensedEnum(){ return 744;}
++function TaylorHoodEnum(){ return 745;}
++function LATaylorHoodEnum(){ return 746;}
++function XTaylorHoodEnum(){ return 747;}
++function OneLayerP4zEnum(){ return 748;}
++function CrouzeixRaviartEnum(){ return 749;}
++function LACrouzeixRaviartEnum(){ return 750;}
++function SaveResultsEnum(){ return 751;}
++function BoolExternalResultEnum(){ return 752;}
++function DoubleExternalResultEnum(){ return 753;}
++function DoubleMatExternalResultEnum(){ return 754;}
++function IntExternalResultEnum(){ return 755;}
++function JEnum(){ return 756;}
++function StringExternalResultEnum(){ return 757;}
++function StepEnum(){ return 758;}
++function TimeEnum(){ return 759;}
++function WaterColumnOldEnum(){ return 760;}
++function OutputdefinitionEnum(){ return 761;}
++function Outputdefinition1Enum(){ return 762;}
++function Outputdefinition2Enum(){ return 763;}
++function Outputdefinition3Enum(){ return 764;}
++function Outputdefinition4Enum(){ return 765;}
++function Outputdefinition5Enum(){ return 766;}
++function Outputdefinition6Enum(){ return 767;}
++function Outputdefinition7Enum(){ return 768;}
++function Outputdefinition8Enum(){ return 769;}
++function Outputdefinition9Enum(){ return 770;}
++function Outputdefinition10Enum(){ return 771;}
++function Outputdefinition11Enum(){ return 772;}
++function Outputdefinition12Enum(){ return 773;}
++function Outputdefinition13Enum(){ return 774;}
++function Outputdefinition14Enum(){ return 775;}
++function Outputdefinition15Enum(){ return 776;}
++function Outputdefinition16Enum(){ return 777;}
++function Outputdefinition17Enum(){ return 778;}
++function Outputdefinition18Enum(){ return 779;}
++function Outputdefinition19Enum(){ return 780;}
++function Outputdefinition20Enum(){ return 781;}
++function Outputdefinition21Enum(){ return 782;}
++function Outputdefinition22Enum(){ return 783;}
++function Outputdefinition23Enum(){ return 784;}
++function Outputdefinition24Enum(){ return 785;}
++function Outputdefinition25Enum(){ return 786;}
++function Outputdefinition26Enum(){ return 787;}
++function Outputdefinition27Enum(){ return 788;}
++function Outputdefinition28Enum(){ return 789;}
++function Outputdefinition29Enum(){ return 790;}
++function Outputdefinition30Enum(){ return 791;}
++function Outputdefinition31Enum(){ return 792;}
++function Outputdefinition32Enum(){ return 793;}
++function Outputdefinition33Enum(){ return 794;}
++function Outputdefinition34Enum(){ return 795;}
++function Outputdefinition35Enum(){ return 796;}
++function Outputdefinition36Enum(){ return 797;}
++function Outputdefinition37Enum(){ return 798;}
++function Outputdefinition38Enum(){ return 799;}
++function Outputdefinition39Enum(){ return 800;}
++function Outputdefinition40Enum(){ return 801;}
++function Outputdefinition41Enum(){ return 802;}
++function Outputdefinition42Enum(){ return 803;}
++function Outputdefinition43Enum(){ return 804;}
++function Outputdefinition44Enum(){ return 805;}
++function Outputdefinition45Enum(){ return 806;}
++function Outputdefinition46Enum(){ return 807;}
++function Outputdefinition47Enum(){ return 808;}
++function Outputdefinition48Enum(){ return 809;}
++function Outputdefinition49Enum(){ return 810;}
++function Outputdefinition50Enum(){ return 811;}
++function Outputdefinition51Enum(){ return 812;}
++function Outputdefinition52Enum(){ return 813;}
++function Outputdefinition53Enum(){ return 814;}
++function Outputdefinition54Enum(){ return 815;}
++function Outputdefinition55Enum(){ return 816;}
++function Outputdefinition56Enum(){ return 817;}
++function Outputdefinition57Enum(){ return 818;}
++function Outputdefinition58Enum(){ return 819;}
++function Outputdefinition59Enum(){ return 820;}
++function Outputdefinition60Enum(){ return 821;}
++function Outputdefinition61Enum(){ return 822;}
++function Outputdefinition62Enum(){ return 823;}
++function Outputdefinition63Enum(){ return 824;}
++function Outputdefinition64Enum(){ return 825;}
++function Outputdefinition65Enum(){ return 826;}
++function Outputdefinition66Enum(){ return 827;}
++function Outputdefinition67Enum(){ return 828;}
++function Outputdefinition68Enum(){ return 829;}
++function Outputdefinition69Enum(){ return 830;}
++function Outputdefinition70Enum(){ return 831;}
++function Outputdefinition71Enum(){ return 832;}
++function Outputdefinition72Enum(){ return 833;}
++function Outputdefinition73Enum(){ return 834;}
++function Outputdefinition74Enum(){ return 835;}
++function Outputdefinition75Enum(){ return 836;}
++function Outputdefinition76Enum(){ return 837;}
++function Outputdefinition77Enum(){ return 838;}
++function Outputdefinition78Enum(){ return 839;}
++function Outputdefinition79Enum(){ return 840;}
++function Outputdefinition80Enum(){ return 841;}
++function Outputdefinition81Enum(){ return 842;}
++function Outputdefinition82Enum(){ return 843;}
++function Outputdefinition83Enum(){ return 844;}
++function Outputdefinition84Enum(){ return 845;}
++function Outputdefinition85Enum(){ return 846;}
++function Outputdefinition86Enum(){ return 847;}
++function Outputdefinition87Enum(){ return 848;}
++function Outputdefinition88Enum(){ return 849;}
++function Outputdefinition89Enum(){ return 850;}
++function Outputdefinition90Enum(){ return 851;}
++function Outputdefinition91Enum(){ return 852;}
++function Outputdefinition92Enum(){ return 853;}
++function Outputdefinition93Enum(){ return 854;}
++function Outputdefinition94Enum(){ return 855;}
++function Outputdefinition95Enum(){ return 856;}
++function Outputdefinition96Enum(){ return 857;}
++function Outputdefinition97Enum(){ return 858;}
++function Outputdefinition98Enum(){ return 859;}
++function Outputdefinition99Enum(){ return 860;}
++function Outputdefinition100Enum(){ return 861;}
++function OutputdefinitionListEnum(){ return 862;}
++function MassfluxatgateEnum(){ return 863;}
++function MassfluxatgateNameEnum(){ return 864;}
++function MassfluxatgateDefinitionenumEnum(){ return 865;}
++function MassfluxatgateSegmentsEnum(){ return 866;}
++function NodalvalueEnum(){ return 867;}
++function NodalvalueNameEnum(){ return 868;}
++function NodalvalueDefinitionenumEnum(){ return 869;}
++function NodalvalueModelEnum(){ return 870;}
++function NodalvalueNodeEnum(){ return 871;}
++function MisfitNameEnum(){ return 872;}
++function MisfitDefinitionenumEnum(){ return 873;}
++function MisfitModelEnum(){ return 874;}
++function MisfitObservationEnum(){ return 875;}
++function MisfitObservationEnum(){ return 876;}
++function MisfitLocalEnum(){ return 877;}
++function MisfitTimeinterpolationEnum(){ return 878;}
++function MisfitWeightsEnum(){ return 879;}
++function MisfitWeightsEnum(){ return 880;}
++function SurfaceObservationEnum(){ return 881;}
++function WeightsSurfaceObservationEnum(){ return 882;}
++function VxObsEnum(){ return 883;}
++function WeightsVxObsEnum(){ return 884;}
++function VyObsEnum(){ return 885;}
++function WeightsVyObsEnum(){ return 886;}
++function MinVelEnum(){ return 887;}
++function MaxVelEnum(){ return 888;}
++function MinVxEnum(){ return 889;}
++function MaxVxEnum(){ return 890;}
++function MaxAbsVxEnum(){ return 891;}
++function MinVyEnum(){ return 892;}
++function MaxVyEnum(){ return 893;}
++function MaxAbsVyEnum(){ return 894;}
++function MinVzEnum(){ return 895;}
++function MaxVzEnum(){ return 896;}
++function MaxAbsVzEnum(){ return 897;}
++function FloatingAreaEnum(){ return 898;}
++function GroundedAreaEnum(){ return 899;}
++function IceMassEnum(){ return 900;}
++function IceVolumeEnum(){ return 901;}
++function IceVolumeAboveFloatationEnum(){ return 902;}
++function TotalSmbEnum(){ return 903;}
++function AbsoluteEnum(){ return 904;}
++function IncrementalEnum(){ return 905;}
++function AugmentedLagrangianREnum(){ return 906;}
++function AugmentedLagrangianRhopEnum(){ return 907;}
++function AugmentedLagrangianRlambdaEnum(){ return 908;}
++function AugmentedLagrangianRholambdaEnum(){ return 909;}
++function AugmentedLagrangianThetaEnum(){ return 910;}
++function NoneEnum(){ return 911;}
++function AggressiveMigrationEnum(){ return 912;}
++function SoftMigrationEnum(){ return 913;}
++function SubelementMigrationEnum(){ return 914;}
++function SubelementMigration2Enum(){ return 915;}
++function ContactEnum(){ return 916;}
++function GroundingOnlyEnum(){ return 917;}
++function MaskGroundediceLevelsetEnum(){ return 918;}
++function GaussSegEnum(){ return 919;}
++function GaussTriaEnum(){ return 920;}
++function GaussTetraEnum(){ return 921;}
++function GaussPentaEnum(){ return 922;}
++function FSSolverEnum(){ return 923;}
++function AdjointEnum(){ return 924;}
++function ColinearEnum(){ return 925;}
++function ControlSteadyEnum(){ return 926;}
++function FsetEnum(){ return 927;}
++function Gradient1Enum(){ return 928;}
++function Gradient2Enum(){ return 929;}
++function Gradient3Enum(){ return 930;}
++function GradientEnum(){ return 931;}
++function GroundinglineMigrationEnum(){ return 932;}
++function GsetEnum(){ return 933;}
++function IndexEnum(){ return 934;}
++function IndexedEnum(){ return 935;}
++function IntersectEnum(){ return 936;}
++function NodalEnum(){ return 937;}
++function OldGradientEnum(){ return 938;}
++function OutputBufferPointerEnum(){ return 939;}
++function OutputBufferSizePointerEnum(){ return 940;}
++function OutputFilePointerEnum(){ return 941;}
++function ToolkitsFileNameEnum(){ return 942;}
++function RootPathEnum(){ return 943;}
++function OutputFileNameEnum(){ return 944;}
++function InputFileNameEnum(){ return 945;}
++function LockFileNameEnum(){ return 946;}
++function RestartFileNameEnum(){ return 947;}
++function ToolkitsOptionsAnalysesEnum(){ return 948;}
++function ToolkitsOptionsStringsEnum(){ return 949;}
++function QmuErrNameEnum(){ return 950;}
++function QmuInNameEnum(){ return 951;}
++function QmuOutNameEnum(){ return 952;}
++function RegularEnum(){ return 953;}
++function ScaledEnum(){ return 954;}
++function SeparateEnum(){ return 955;}
++function SsetEnum(){ return 956;}
++function VerboseEnum(){ return 957;}
++function TriangleInterpEnum(){ return 958;}
++function BilinearInterpEnum(){ return 959;}
++function NearestInterpEnum(){ return 960;}
++function XYEnum(){ return 961;}
++function XYZEnum(){ return 962;}
++function DenseEnum(){ return 963;}
++function MpiDenseEnum(){ return 964;}
++function MpiSparseEnum(){ return 965;}
++function SeqEnum(){ return 966;}
++function MpiEnum(){ return 967;}
++function MumpsEnum(){ return 968;}
++function GslEnum(){ return 969;}
++function OptionEnum(){ return 970;}
++function GenericOptionEnum(){ return 971;}
++function OptionCellEnum(){ return 972;}
++function OptionStructEnum(){ return 973;}
++function CuffeyEnum(){ return 974;}
++function PatersonEnum(){ return 975;}
++function ArrheniusEnum(){ return 976;}
++function LliboutryDuvalEnum(){ return 977;}
++function TransientIslevelsetEnum(){ return 978;}
++function SpcLevelsetEnum(){ return 979;}
++function ExtrapolationVariableEnum(){ return 980;}
++function IceMaskNodeActivationEnum(){ return 981;}
++function LevelsetfunctionSlopeXEnum(){ return 982;}
++function LevelsetfunctionSlopeYEnum(){ return 983;}
++function LevelsetfunctionPicardEnum(){ return 984;}
++function SealevelriseSolutionEnum(){ return 985;}
++function SealevelriseAnalysisEnum(){ return 986;}
++function SealevelriseSEnum(){ return 987;}
++function SealevelriseDeltathicknessEnum(){ return 988;}
++function SealevelriseMaxiterEnum(){ return 989;}
++function SealevelriseReltolEnum(){ return 990;}
++function SealevelriseAbstolEnum(){ return 991;}
++function SealevelriseLoveHEnum(){ return 992;}
++function SealevelriseLoveKEnum(){ return 993;}
++function SealevelriseRigidEnum(){ return 994;}
++function SealevelriseElasticEnum(){ return 995;}
++function SealevelriseEustaticEnum(){ return 996;}
++function SealevelriseGElasticEnum(){ return 997;}
++function SealevelriseDegaccEnum(){ return 998;}
++function SealevelriseTransitionsEnum(){ return 999;}
++function SealevelriseRequestedOutputsEnum(){ return 1000;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1001;}
++function MaximumNumberOfDefinitionsEnum(){ return 1002;}
+Index: ../trunk-jpl/src/m/enum/IcecapToEarthCommEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/IcecapToEarthCommEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/IcecapToEarthCommEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=IcecapToEarthCommEnum()
++%ICECAPTOEARTHCOMMENUM - Enum of IcecapToEarthComm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=IcecapToEarthCommEnum()
++
++macro=StringToEnum('IcecapToEarthComm');
+Index: ../trunk-jpl/src/m/enum/FemModelCommEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/FemModelCommEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/FemModelCommEnum.m	(revision 20121)
+@@ -0,0 +1,11 @@
++function macro=FemModelCommEnum()
++%FEMMODELCOMMENUM - Enum of FemModelComm
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=FemModelCommEnum()
++
++macro=StringToEnum('FemModelComm');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20120)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20121)
+@@ -9,6 +9,12 @@
+ """
+ 
+ def FemModelEnum(): return StringToEnum("FemModel")[0]
++def FemModelCommEnum(): return StringToEnum("FemModelComm")[0]
++def WorldCommEnum(): return StringToEnum("WorldComm")[0]
++def IcecapToEarthCommEnum(): return StringToEnum("IcecapToEarthComm")[0]
++def NumModelsEnum(): return StringToEnum("NumModels")[0]
++def ModelIdEnum(): return StringToEnum("ModelId")[0]
++def EarthIdEnum(): return StringToEnum("EarthId")[0]
+ def AutodiffIsautodiffEnum(): return StringToEnum("AutodiffIsautodiff")[0]
+ def AutodiffNumDependentsEnum(): return StringToEnum("AutodiffNumDependents")[0]
+ def AutodiffNumDependentObjectsEnum(): return StringToEnum("AutodiffNumDependentObjects")[0]
+@@ -1001,6 +1007,7 @@
+ def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
+ def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
++def SealevelriseTransitionsEnum(): return StringToEnum("SealevelriseTransitions")[0]
+ def SealevelriseRequestedOutputsEnum(): return StringToEnum("SealevelriseRequestedOutputs")[0]
+ def SealevelriseNumRequestedOutputsEnum(): return StringToEnum("SealevelriseNumRequestedOutputs")[0]
+ def MaximumNumberOfDefinitionsEnum(): return StringToEnum("MaximumNumberOfDefinitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20121-20122.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20121-20122.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20121-20122.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/geometry/locationtonode.m
+===================================================================
+--- ../trunk-jpl/src/m/geometry/locationtonode.m	(revision 20121)
++++ ../trunk-jpl/src/m/geometry/locationtonode.m	(revision 20122)
+@@ -1,11 +1,26 @@
+-function node=locationtonode(md,location)
++function nodes=locationtonode(md,location,varargin)
+ %LOCATIONTONODE - find, given a string location (ex: 'LA', 'new york', the nearest node on a mesh3dsurface.
+ %
+ %   Usage:
+ %      node=locationnode(md,'LA');
++%      nodes=locationnode(md,'LA',100); %option, specify a distance (km) around the location that will return nodes
+ %
+ %   See also: geoCode (in externalpackages), find_point
+ 
+-coords=geoCode(location,'osm');  
+-latny=coords(1); longny=coords(2);
+-node=find_point(md.mesh.lat,md.mesh.long,latny,longny);
++	if nargin==3,
++		radius=varargin{1};
++	else
++		radius=0;
++	end
++
++	coords=geoCode(location,'osm');  
++	latny=coords(1); longny=coords(2);
++	node=find_point(md.mesh.lat,md.mesh.long,latny,longny);
++
++	if radius>0,
++		distance=sqrt( (md.mesh.x-md.mesh.x(node)).^2 + (md.mesh.y-md.mesh.y(node)).^2 + (md.mesh.z-md.mesh.z(node)).^2);
++		nodes=find(distance<radius*1000);
++	else
++		nodes=node;
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20122-20123.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20122-20123.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20122-20123.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20122)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20123)
+@@ -669,13 +669,14 @@
+ 
+ 	/*Fetch dof list and allocate solution vector*/
+ 	basalelement->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
+-	IssmDouble* newthickness = xNew<IssmDouble>(numnodes);
+-	IssmDouble* newbed       = xNew<IssmDouble>(numnodes);
+-	IssmDouble* newsurface   = xNew<IssmDouble>(numnodes);
+-	IssmDouble* oldthickness = xNew<IssmDouble>(numnodes);
+-	IssmDouble* oldbed       = xNew<IssmDouble>(numnodes);
+-	IssmDouble* oldsurface   = xNew<IssmDouble>(numnodes);
+-	IssmDouble* phi          = xNew<IssmDouble>(numnodes);
++	IssmDouble* newthickness   = xNew<IssmDouble>(numnodes);
++	IssmDouble* deltathickness = xNew<IssmDouble>(numnodes);
++	IssmDouble* newbed         = xNew<IssmDouble>(numnodes);
++	IssmDouble* newsurface     = xNew<IssmDouble>(numnodes);
++	IssmDouble* oldthickness   = xNew<IssmDouble>(numnodes);
++	IssmDouble* oldbed         = xNew<IssmDouble>(numnodes);
++	IssmDouble* oldsurface     = xNew<IssmDouble>(numnodes);
++	IssmDouble* phi            = xNew<IssmDouble>(numnodes);
+ 
+ 	/*Use the dof list to index into the solution vector: */
+ 	basalelement->FindParam(&minthickness,MasstransportMinThicknessEnum);
+@@ -692,6 +693,10 @@
+ 	basalelement->GetInputListOnNodes(&oldthickness[0],ThicknessEnum);
+ 	basalelement->GetInputListOnNodes(&phi[0],MaskGroundediceLevelsetEnum);
+ 
++	
++	/*What is the delta thickness, useful for Sea-level rise:*/
++	for(i=0;i<numnodes;i++) deltathickness[i]=newthickness[i]-oldthickness[i];
++
+ 	/*Find MasstransportHydrostaticAdjustment to figure out how to update the geometry:*/
+ 	basalelement->FindParam(&hydroadjustment,MasstransportHydrostaticAdjustmentEnum);
+ 	rho_ice   = basalelement->GetMaterialParameter(MaterialsRhoIceEnum);
+@@ -718,6 +723,7 @@
+ 
+ 	/*Add input to the element: */
+ 	element->AddBasalInput(ThicknessEnum,newthickness,P1Enum);
++	element->AddBasalInput(SealevelriseDeltathicknessEnum,deltathickness,P1Enum);
+ 	element->AddBasalInput(SurfaceEnum,newsurface,P1Enum);
+ 	element->AddBasalInput(BaseEnum,newbed,P1Enum);
+ 
+@@ -726,6 +732,7 @@
+ 	xDelete<IssmDouble>(newbed);
+ 	xDelete<IssmDouble>(newsurface);
+ 	xDelete<IssmDouble>(oldthickness);
++	xDelete<IssmDouble>(deltathickness);
+ 	xDelete<IssmDouble>(oldbed);
+ 	xDelete<IssmDouble>(oldsurface);
+ 	xDelete<IssmDouble>(phi);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20123-20124.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20123-20124.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20123-20124.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 20123)
++++ ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 20124)
+@@ -42,7 +42,7 @@
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+-	if(iomodel->domaintype!=Domain2DhorizontalEnum){
++	if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20124-20125.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20124-20125.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20124-20125.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20124)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20125)
+@@ -83,6 +83,8 @@
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsdamageevolutionEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIshydrologyEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIscalvingEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(TransientIsslrEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(TransientIscouplerEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(MaterialsRheologyLawEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(GiaCrossSectionShapeEnum));
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20125-20126.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20125-20126.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20125-20126.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/mesh/meshintersect.m
+===================================================================
+--- ../trunk-jpl/src/m/mesh/meshintersect.m	(revision 0)
++++ ../trunk-jpl/src/m/mesh/meshintersect.m	(revision 20126)
+@@ -0,0 +1,22 @@
++function indices=meshintersect(lat,long,lats,longs,varargin)
++%MESHINTERSECT - return indices (into lat and long) of common values between (lat,long) and (lats,longs). 
++%  i.e: lat(index)=lats; long(index)=longs;
++%
++%   Usage:
++%      index=meshintersect(md.mesh.lat,md.mesh.long,mdsmaller.mesh.lat,mdsmaller.mesh.long);
++%      index=meshintersect(md.mesh.lat,md.mesh.long,mdsmaller.mesh.lat,mdsmaller.mesh.long,'tolerance',1e-10); %within a certain tolerance.
++
++
++	%process options: 
++	options=pairoptions(varargin{:});
++
++	%retrieve tolerance: 
++	tolerance=getfieldvalue(options,'tolerance',1e-10);
++
++	%go through lats,longs and find within tolerance, the index of the corresponding value in lat,long: 
++	indices=zeros(length(lats),1);
++	
++	for i=1:length(lats),
++		distance=sqrt((lat-lats(i)).^2+(long-longs(i)).^2);
++		indices(i)=find(distance<tolerance);
++	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20126-20127.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20126-20127.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20126-20127.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/src/m/solve/solveslm.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/solveslm.m	(revision 0)
++++ ../trunk-jpl/src/m/solve/solveslm.m	(revision 20127)
+@@ -0,0 +1,87 @@
++function slm=solveslm(slm,solutionenum,varargin)
++%SOLVESLR - apply solution sequence for this sealevel model
++%
++%   Usage:
++%      slm=solve(slm,solutionenum,varargin)
++%      where varargin is a lit of paired arguments of string OR enums
++%
++%   solution types available comprise:
++%		 - SealevelriseSolutionEnum
++%		 - TransientSolutionEnum
++%
++%  extra options:
++%
++%   Examples:
++%      slm=solve(slm,TransientSolutionEnum);
++
++%first check consistency: 
++slm.checkconsistency(solutionenum);
++
++%process options:: 
++options=pairoptions(varargin{:},'solutionenum',solutionenum);
++
++%figure out if the sum of cluster processors requested sums up correctly: 
++totalnp=0;
++for i=1:length(slm.icecaps), totalnp=totalnp+slm.icecaps{i}.cluster.np; end
++totalnp=totalnp+slm.earth.cluster.np;
++if totalnp~=slm.cluster.np,
++	error('sum of all icecaps and earch cluster processors requestes should be equal to slm.cluster.np');
++end
++
++%recover some fields
++slm.private.solution=solutionenum;
++cluster=slm.cluster;
++batch=0;
++
++%now, go through icecaps, glacies and earth, and upload all the data independently: 
++for i=1:length(slm.icecaps),
++	slm.icecaps{i}=solve(slm.icecaps{i},solutionenum,'batch','yes');
++end
++slm.earth=solve(slm.earth,solutionenum,'batch','yes');
++
++%Firs, build a runtime name that is unique
++c=clock;
++slm.private.runtimename=sprintf('%s-%02i-%02i-%04i-%02i-%02i-%02i-%i',slm.miscellaneous.name,c(2),c(3),c(1),c(4),c(5),floor(c(6)),feature('GetPid'));
++
++%Write all input files:
++privateruntimenames={}; 
++miscellaneousnames={}; 
++nps={};
++for i=1:length(slm.icecaps),
++	privateruntimenames{end+1}=slm.icecaps{i}.private.runtimename;
++	miscellaneousnames{end+1}=slm.icecaps{i}.miscellaneous.name;
++	nps{end+1}=slm.icecaps{i}.cluster.np;
++end
++privateruntimenames{end+1}=slm.earth.private.runtimename;
++miscellaneousnames{end+1}=slm.earth.miscellaneous.name;
++nps{end+1}=slm.earth.cluster.np;
++
++BuildQueueScriptMultipleModels(cluster,slm.private.runtimename,slm.miscellaneous.name,slm.private.solution,privateruntimenames,miscellaneousnames,nps);
++
++%Upload all required files, given that each individual solution for icecaps and earth model already did:
++filelist={[slm.miscellaneous.name '.queue']};
++UploadQueueJob(cluster,slm.miscellaneous.name,slm.private.runtimename,filelist);
++
++%launch queue job: 
++LaunchQueueJob(cluster,slm.miscellaneous.name,slm.private.runtimename,filelist,'',batch);
++
++%wait on lock
++if isnan(slm.settings.waitonlock),
++	%load when user enters 'y'
++	disp('solution launched on remote cluster. log in to detect job completion.');
++	choice=input('Is the job successfully completed? (y/n)','s');
++	if ~strcmp(choice,'y'), 
++		disp('Results not loaded... exiting'); 
++	else
++		for i=1:length(slm.icecaps), slm.icecaps{i}=loadresultsfromcluster(slm.icecaps{i});end;
++		slm.earth=loadresultsfromcluster(slm.earth);
++	end
++elseif slm.settings.waitonlock>0,
++	%we wait for the done file
++	done=waitonlock(slm);
++	disp('loading results from cluster');
++	for i=1:length(slm.icecaps), slm.icecaps{i}=loadresultsfromcluster(slm.icecaps{i});end;
++	slm.earth=loadresultsfromcluster(slm.earth);
++elseif slm.settings.waitonlock==0,
++	 disp('Model results must be loaded manually with slm=loadresultsfromcluster(slm);');
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20127-20128.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20127-20128.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20127-20128.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/m/coordsystems/gdaltransform.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gdaltransform.m	(revision 20127)
++++ ../trunk-jpl/src/m/coordsystems/gdaltransform.m	(revision 20128)
+@@ -2,18 +2,26 @@
+ %GDALTRANSFORM - switch from one projection system to another 
+ %
+ %   Usage:
+-%      [x,y] = gdaltransform(x1,y1,'EPSG:3184','EPSG:3411')
++%      [x,y] = gdaltransform(x1,y1,epsg_in, epsg_out);
+ %
++%   Example: 
++%      [x,y] = gdaltransform(md.mesh.lat,md.mesh.long,'EPSG:3184','EPSG:3411'); 
+ %
++%   For reference: 
++%       EPSG: 4326 (lat,long)
++%       EPSG: 3411  (greenland, +proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +a=6378273 +b=6356889.449 +units=m +no_defs)
++%       EPSG: 3031 (antarctica, +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs)
+ 
+-	fid=fopen('.rand1234.txt','w');
++	%give ourselves a unique temporary directory: 
++	temproot=tempname; mkdir(temproot);
++
++	fid=fopen([temproot '/.rand1234.txt'],'w');
+ 	for i=1:length(x),
+ 		fprintf(fid,'%g %g\n',x(i),y(i));
+ 	end
+ 	fclose(fid);
+ 
+-	[s,r]=system(['gdaltransform -s_srs ',proj_in,' -t_srs ',proj_out,'  < .rand1234.txt > .rand1235.txt']);
+-
+-	A=textread('.rand1235.txt');
++	[s,r]=system(['gdaltransform -s_srs ',proj_in,' -t_srs ',proj_out,'  < ' temproot '/.rand1234.txt > ' temproot '/.rand1235.txt']);
++	A=textread([temproot '/.rand1235.txt']);
+ 	xout=A(:,1);
+ 	yout=A(:,2);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20128-20129.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20128-20129.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20128-20129.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 20128)
++++ ../trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 20129)
+@@ -46,4 +46,4 @@
+ 	mask=zeros(nv,1);
+ 	mask(flags)=1;
+ 	
+-	system('rm -rf ./all_vertices*.txt ./oce_vertices*.txt vertices.txt ./gmt.history');
++	system('rm -rf ./all_vertices*.txt ./oce_vertices*.txt vertices.txt ./gmt.history ./xjobs.script');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20129-20130.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20129-20130.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20129-20130.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/organizer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.m	(revision 20129)
++++ ../trunk-jpl/src/m/classes/organizer.m	(revision 20130)
+@@ -222,7 +222,7 @@
+ 			disp(['saving model as: ' name]);
+ 
+ 			%check that md is a model
+-			if ~isa(md,'model'), warning('second argument is not a model'); end
++			if ~isa(md,'model') & ~isa(md,'sealevelmodel'), warning('second argument is not a model'); end
+ 			if (org.currentstep>length(org.steps)), error(['organizer error message: element with id ' num2str(org.currentstep) ' not found']); end
+ 
+ 			%save model
Index: /issm/oecreview/Archive/19101-20495/ISSM-20130-20131.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20130-20131.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20130-20131.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/src/m/classes/sealevelmodel.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 20130)
++++ ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 20131)
+@@ -35,24 +35,6 @@
+ 				
+ 				%recover the earth model:
+ 				slm.earth = getfieldvalue(options,'earth');
+-
+-				%start plugging the ice caps into the earth model: 
+-				earth=slm.earth;
+-				for i=1:length(slm.icecaps),
+-					icecap=slm.icecaps{i};
+-					icecap.mesh.segments=alignsegments(icecap.mesh.segments);
+-
+-					%call patch routine:
+-					if icecap.mesh.epsg==3413, hem=1; else hem=-1; end
+-					earth.mesh=patchglobe(earth.mesh,icecap.mesh,'hem',hem,'bandwidth',bandwidths{i},'plot',1);
+-				end
+-
+-				
+-				%build transition matrices: 
+-				%disp('sealevelmodel: building  icecap transition tables');
+-				%[C,ia,ib]=intersect([slm.earth.mesh.lat slm.earth.mesh.long],[slm.icecaps{i}.mesh.lat slm.icecaps{i}.mesh.long],'rows');
+-
+-				
+ 			end
+ 		end
+ 		%}}}
+@@ -69,7 +51,14 @@
+ 				error('sealevelmodel checkconsistenty error:  earth model should have the transient coupler option turned on!');
+ 			end
+ 
++			%check that the transition vectors have the right size: 
++			for i=1:length(slm.icecaps),
++				if slm.icecaps{i}.mesh.numberofvertices ~= length(slm.earth.slr.transitions{i}),
++					error('sealevelmodel checkconsistenty issue with size of transition vectors!');
++				end
++			end
+ 
++
+ 		end
+ 		%}}}
+ 		function slm = setdefaultparameters(slm) % {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-20131-20132.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20131-20132.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20131-20132.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/classes/pairoptions.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/pairoptions.m	(revision 20131)
++++ ../trunk-jpl/src/m/classes/pairoptions.m	(revision 20132)
+@@ -218,6 +218,47 @@
+ 				error(['error message: field ' field ' has not been provided by user (and no default value has been specified)'])
+ 			end
+ 		end % }}}
++		function values = getfieldvalues(self,field,varargin), % {{{
++		%GETOPTION - get the value of an option (if the option is repeated, return multiple values)
++		%
++		%   Usage:
++		%      values=getfieldvalues(self,field,varargin)
++		%
++		%   Find all option values from a field. Default options
++		%   can be given in input if the field does not exist
++		%
++		%   Examples:
++		%      values=getfieldvalue(options,'caxis');
++		%      values=getfieldvalue(options,'caxis',{[0 2],[3 4]});
++
++			%some argument checking: 
++			if nargin~=2 && nargin~=3,
++				help getfieldvalues
++				error('getfieldvalues error message: bad usage');
++			end
++
++			if ~ischar(field),
++				error('getfieldvalues error message: field should be a string');
++			end
++
++			%Recover options
++			pos=find(strcmpi(self.list(:,1),field));
++			if ~isempty(pos),
++				values={};
++				for i=1:length(pos),
++					values{i}=self.list{pos(i),2};
++					self.list{pos(i),3}=true;  % option used
++				end
++				return;
++			end
++
++			%The option has not been found, output default if provided
++			if nargin==3,
++				values=varargin{1};
++			else
++				error(['error message: field ' field ' has not been provided by user (and no default value has been specified)'])
++			end
++		end % }}}
+ 		function self = removefield(self,field,warn)% {{{
+ 		%REMOVEFIELD - delete a field in an option list
+ 		%
Index: /issm/oecreview/Archive/19101-20495/ISSM-20132-20133.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20132-20133.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20132-20133.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20132)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20133)
+@@ -1530,6 +1530,7 @@
+ 				name==MaterialsRheologyBbarEnum ||
+ 				name==MaterialsRheologyNEnum ||
+ 				name==SealevelriseSEnum || 
++				name==SealevelriseDeltathicknessEnum || 
+ 				name==GiaWEnum || 
+ 				name==GiadWdtEnum ||
+ 				name==SedimentHeadEnum ||
Index: /issm/oecreview/Archive/19101-20495/ISSM-20133-20134.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20133-20134.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20133-20134.diff	(revision 20498)
@@ -0,0 +1,145 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20133)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20134)
+@@ -57,12 +57,11 @@
+ 	char *rootpath       = NULL;
+ 
+ 	/*First things first, store the communicator, and set it as a global variable: */
+-	this->comm=incomm;
+-	this->SetStaticComm();
++	IssmComm::SetComm(incomm);
+ 
+ 	/*Now, initialize PETSC: */
+ 	#ifdef _HAVE_PETSC_
+-	PETSC_COMM_WORLD=this->comm;
++	PETSC_COMM_WORLD=incomm;
+ 	ierr=PetscInitialize(&argc,&argv,(char*)0,"");  if(ierr) _error_("Could not initialize Petsc");
+ 	#endif
+ 
+@@ -78,6 +77,8 @@
+ 	this->InitFromFiles(rootpath,binfilename,outbinfilename,petscfilename,lockfilename,restartfilename, solution_type,trace,NULL);
+ 	profiler->Tag(FinishInit);
+ 
++	/*Save communicator in the parameters dataset: */
++	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
+ 
+ 	/*Free resources */
+ 	xDelete<char>(lockfilename);
+@@ -96,11 +97,13 @@
+ 	
+ 	/*Store the communicator, but do not set it as a global variable, as this has already 
+ 	 * been done by the FemModel that called this copy constructor: */
+-	this->comm=incomm;
+-	this->SetStaticComm();
++	IssmComm::SetComm(incomm);
+ 
+ 	/*Create femmodel from input files, with trace activated: */
+ 	this->InitFromFiles(rootpath,inputfilename,outputfilename,toolkitsfilename,lockfilename,restartfilename, solution_type,traceon,X);
++	
++	/*Save communicator in the parameters dataset: */
++	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
+ 
+ }
+ /*}}}*/
+@@ -265,14 +268,6 @@
+ 
+ }
+ /*}}}*/
+-void FemModel::SetStaticComm(void){/*{{{*/
+-
+-	/*This routine sets the global communicator variable hidden inside the IssmComm 
+-	 *class: */
+-	IssmComm::SetComm(this->comm);
+-
+-}
+-/*}}}*/
+ void FemModel::SetCurrentConfiguration(int configuration_type,int analysis_type){/*{{{*/
+ 
+ 	/*Use configuration_type to setup the analysis counter, the configurations of objects etc ... but use 
+@@ -380,7 +375,6 @@
+ 
+ 	output=new FemModel(*this); //Use default copy constructor.
+ 
+-	output->comm = this->comm;
+ 	output->nummodels = this->nummodels;
+ 	output->solution_type = this->solution_type;
+ 	output->analysis_counter = this->analysis_counter;
+@@ -546,7 +540,7 @@
+ 			break;
+ 
+ 		case TransientSolutionEnum:{
+-			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,islevelset,ishydrology,isdamage,issmb;
++			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,islevelset,ishydrology,isdamage,issmb,isslr;
+ 			iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+ 			iomodel->Constant(&isFS,FlowequationIsFSEnum);
+ 			iomodel->Constant(&isthermal,TransientIsthermalEnum);
+@@ -558,6 +552,7 @@
+ 			iomodel->Constant(&isdamage,TransientIsdamageevolutionEnum);
+ 			iomodel->Constant(&ishydrology,TransientIshydrologyEnum);
+ 			iomodel->Constant(&issmb,TransientIssmbEnum);
++			iomodel->Constant(&isslr,TransientIsslrEnum);
+ 			if(isstressbalance){
+ 				int  fe_FS;
+ 				iomodel->Constant(&fe_FS,FlowequationFeFSEnum);
+@@ -599,6 +594,9 @@
+ 			if(isdamage){
+ 				analyses_temp[numanalyses++]=DamageEvolutionAnalysisEnum;
+ 			}
++			if(isslr){
++				analyses_temp[numanalyses++]=SealevelriseAnalysisEnum;
++			}
+ 
+ 			if(iomodel->domaintype==Domain2DverticalEnum || iomodel->domaintype==Domain3DEnum){
+ 				analyses_temp[numanalyses++]=ExtrudeFromBaseAnalysisEnum;
+@@ -2551,7 +2549,7 @@
+ 
+ 	/*First things first, store the communicator, and set it as a global variable: */
+ 	this->comm=incomm;
+-	this->SetStaticComm();
++	IssmComm::SetComm(this->comm);
+ 
+ 	/*Start profiler: */
+ 	this->profiler=new Profiler();
+Index: ../trunk-jpl/src/c/classes/Node.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.cpp	(revision 20133)
++++ ../trunk-jpl/src/c/classes/Node.cpp	(revision 20134)
+@@ -58,7 +58,7 @@
+ 		XZvectorsToCoordinateSystem(&this->coord_system[0][0],&iomodel->Data(StressbalanceReferentialEnum)[io_index*6]);
+ 		_assert_(sqrt( coord_system[0][0]*coord_system[0][0] + coord_system[1][0]*coord_system[1][0]) >1.e-4);
+ 
+-		if(iomodel->domaintype!=Domain2DhorizontalEnum){
++		if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum){
+ 			/*We have a  3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
+ 			_assert_(iomodel->Data(MeshVertexonbaseEnum)); 
+ 			_assert_(iomodel->Data(FlowequationVertexEquationEnum));
+@@ -96,7 +96,7 @@
+ 				analysis_enum==HydrologyDCEfficientAnalysisEnum ||
+ 				analysis_enum==LevelsetAnalysisEnum
+ 				){
+-		if(iomodel->domaintype!=Domain2DhorizontalEnum){
++		if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum & iomodel->domaintype!=Domain3DsurfaceEnum){
+ 			/*On a 3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
+ 			_assert_(iomodel->Data(MeshVertexonbaseEnum));
+ 			if(!(reCast<bool>(iomodel->Data(MeshVertexonbaseEnum)[io_index]))){
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 20133)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 20134)
+@@ -42,7 +42,6 @@
+ 		Materials   *materials;            //one set of materials, for each element
+ 		Parameters  *parameters;           //one set of parameters, independent of the analysis_type
+ 		Results     *results;              //results that cannot be fit into the elements 
+-		ISSM_MPI_Comm        comm;                  //communicator for this particular model
+ 
+ 		/*constructors, destructors: */
+ 		FemModel(int argc,char** argv,ISSM_MPI_Comm comm_init,bool trace=false);
+@@ -56,7 +55,6 @@
+ 		void SolutionAnalysesList(int** panalyses,int* pnumanalyses,IoModel* iomodel,int solutiontype);
+ 		void CleanUp(void);
+ 		void Solve(void);
+-		void SetStaticComm();
+ 		void SetCurrentConfiguration(int configuration_type);
+ 		void SetCurrentConfiguration(int configuration_type,int analysis_type);
+ 		void CheckPoint(void);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20134-20135.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20134-20135.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20134-20135.diff	(revision 20498)
@@ -0,0 +1,172 @@
+Index: ../trunk-jpl/src/c/main/issm_slr.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 0)
++++ ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20135)
+@@ -0,0 +1,134 @@
++/*!\file:  issm_slr.cpp
++ * \brief: ISSM SLR main program. 
++ */ 
++
++#include "./issm.h"
++
++int main(int argc,char **argv){
++
++	/*diverse:*/
++	int    nummodels;
++	int*   commsizes=NULL;
++	int*   rankzeros=NULL;
++	char** dirnames=NULL;
++	char** modelnames=NULL;
++	int    modelid; 
++	int    earthid; 
++	int    my_rank;
++	int    count=0;
++	ISSM_MPI_Comm worldcomm;
++	ISSM_MPI_Comm modelcomm;
++	ISSM_MPI_Comm toearthcomm;
++	ISSM_MPI_Comm* fromicecomms=NULL;
++
++	/*Initialize exception trapping: */
++	ExceptionTrapBegin();
++
++	/*Initialize environment (MPI, PETSC, MUMPS, etc ...)*/
++	worldcomm=EnvironmentInit(argc,argv);
++	
++	/*What is my rank?:*/
++	ISSM_MPI_Comm_rank(worldcomm,&my_rank);
++
++	/*How many models are we going to run (along with description and number of dedicated cores):{{{*/
++	nummodels=(int) strtol(argv[4], (char **)NULL, 10);
++	commsizes=xNew<int>(nummodels);
++	dirnames=xNew<char*>(nummodels);
++	modelnames=xNew<char*>(nummodels);
++	rankzeros=xNew<int>(nummodels);
++	for(int i=0;i<nummodels;i++){
++		char* string=NULL;
++		
++		string=xNew<char>(strlen(argv[5+3*i])+1);
++		xMemCpy<char>(string,argv[5+3*i],strlen(argv[5+3*i])+1);
++		dirnames[i]=string;
++		
++		string=xNew<char>(strlen(argv[5+3*i+1])+1);
++		xMemCpy<char>(string,argv[5+3*i+1],strlen(argv[5+3*i+1])+1);
++		modelnames[i]=string;
++
++		commsizes[i]=(int) strtol(argv[5+3*i+2], (char **)NULL, 10);
++	}
++
++	/*Figure out which model each cpu will belong to: */
++	count=0;
++	for(int i=0;i<nummodels;i++){
++		if(my_rank>=count && my_rank<(count+commsizes[i])){
++			modelid=i;
++			break;
++		}
++		count+=commsizes[i];
++	} 
++	/*Buil array of who is rank 0 of their own group:*/
++	count=0;
++	for(int i=0;i<nummodels;i++){
++		rankzeros[i]=count;
++		count+=commsizes[i];
++	}
++	/*}}}*/
++
++	/*Split world into sub-communicators for each and every model:*/
++	MPI_Comm_split(worldcomm,modelid, my_rank, &modelcomm);
++
++	/*Build inter communicators:*/
++	earthid=nummodels-1; //last model to be provided in the argument list if the earth model.
++	if(modelid==earthid){
++		fromicecomms=xNew<ISSM_MPI_Comm>(nummodels-1);
++		for(int i=0;i<earthid;i++){
++			MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[i], i, fromicecomms+i); //communicate from local erth comm 9rank 0) to ice comm (rank 0) using modelid tag.
++		}
++	}
++	else{
++		MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[earthid], modelid, &toearthcomm); //communicate from local ice comm (rank 0) to earth comm (rank 0) using modelid tag.
++	}
++
++	/*Supply specific argc and argv for each sub-communicator (corresponding to each  model specificatiions):{{{*/
++	char** arguments=xNew<char*>(4);
++	arguments[0]=xNew<char>(strlen(argv[0])+1); xMemCpy<char>(arguments[0],argv[0],strlen(argv[0])+1); //executable name
++	arguments[1]=xNew<char>(strlen(argv[1])+1); xMemCpy<char>(arguments[1],argv[1],strlen(argv[1])+1); //solution name
++	arguments[2]=xNew<char>(strlen(argv[5+3*modelid])+1); xMemCpy<char>(arguments[2],argv[5+3*modelid],strlen(argv[5+3*modelid])+1); //directory name
++	arguments[3]=xNew<char>(strlen(argv[5+3*modelid+1])+1); xMemCpy<char>(arguments[3],argv[5+3*modelid+1],strlen(argv[5+3*modelid+1])+1); //model name
++	/*}}}*/
++
++	/*Initialize femmodel from arguments provided command line: */
++	FemModel *femmodel = new FemModel(4,arguments,modelcomm);
++	
++	/*Now that the models are initialized, keep communicator information in the parameters datasets of each model: */
++	femmodel->parameters->AddObject(new IntParam(WorldCommEnum,worldcomm));
++	femmodel->parameters->AddObject(new IntParam(NumModelsEnum,nummodels));
++	femmodel->parameters->AddObject(new IntParam(ModelIdEnum,modelid));
++	femmodel->parameters->AddObject(new IntParam(EarthIdEnum,earthid));
++	if(modelid==earthid)femmodel->parameters->AddObject(new IntVecParam(IcecapToEarthCommEnum,fromicecomms,nummodels-1));
++	else femmodel->parameters->AddObject(new IntParam(IcecapToEarthCommEnum,toearthcomm));
++
++	/*Solve: */
++	femmodel->Solve();
++
++	/*Output results: */
++	OutputResultsx(femmodel);
++
++	/*Wrap up: */
++	femmodel->CleanUp();
++
++	/*Delete Model: */
++	delete femmodel;
++
++	/*Finalize environment:*/
++	EnvironmentFinalize();
++
++	/*Finalize exception trapping: */
++	ExceptionTrapEnd();
++
++	/*Free ressources:*/
++	xDelete<int>(commsizes);
++	for(int i=0;i<nummodels;i++){
++		char* string=NULL;
++		string=dirnames[i]; xDelete<char>(string);
++		string=modelnames[i]; xDelete<char>(string);
++	}
++	xDelete<char*>(dirnames);
++	xDelete<char*>(modelnames);
++
++	/*Return unix success: */
++	return 0; 
++}
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20134)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20135)
+@@ -648,7 +648,7 @@
+ #Executable {{{
+ if ANDROID
+ if ANDROIDEXE
+-bin_PROGRAMS = issm 
++bin_PROGRAMS = issm  issm_slr
+ else
+ bin_PROGRAMS = 
+ endif
+@@ -656,7 +656,7 @@
+ if JAVASCRIPT
+ bin_PROGRAMS =
+ else
+-bin_PROGRAMS = issm 
++bin_PROGRAMS = issm  issm_slr
+ endif
+ endif
+ 
+@@ -676,6 +676,10 @@
+ issm_SOURCES = main/issm.cpp
+ issm_CXXFLAGS= -fPIC
+ 
++issm_slr_SOURCES = main/issm_slr.cpp
++issm_slr_CXXFLAGS= -fPIC
++
++
+ if KRIGING
+ bin_PROGRAMS += kriging
+ kriging_SOURCES = main/kriging.cpp
Index: /issm/oecreview/Archive/19101-20495/ISSM-20135-20136.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20135-20136.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20135-20136.diff	(revision 20498)
@@ -0,0 +1,401 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20135)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20136)
+@@ -51,6 +51,12 @@
+ 	int     numoutputs;
+ 	char**  requestedoutputs = NULL;
+ 
++	/*transition vectors: */
++	IssmDouble **transitions    = NULL;
++	int         *transitions_M    = NULL;
++	int         *transitions_N    = NULL;
++	int          ntransitions;
++
+ 	/*some constant parameters: */
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseReltolEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseAbstolEnum));
+@@ -125,6 +131,20 @@
+ 		xDelete<IssmDouble>(G_elastic_local);
+ 	}
+ 	
++	/*Transitions: */
++	iomodel->FetchData(&transitions,&transitions_M,&transitions_N,&ntransitions,SealevelriseTransitionsEnum);
++	if(transitions){
++		parameters->AddObject(new DoubleMatArrayParam(SealevelriseTransitionsEnum,transitions,ntransitions,transitions_M,transitions_N));
++
++		for(int i=0;i<ntransitions;i++){
++			IssmDouble* transition=transitions[i];
++			xDelete<IssmDouble>(transition);
++		}
++		xDelete<IssmDouble*>(transitions);
++		xDelete<IssmDouble*>(transitions_M);
++		xDelete<IssmDouble*>(transitions_N);
++	}
++
+ 	/*Requested outputs*/
+ 	iomodel->FetchData(&requestedoutputs,&numoutputs,SealevelriseRequestedOutputsEnum);
+ 	parameters->AddObject(new IntParam(SealevelriseNumRequestedOutputsEnum,numoutputs));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20135)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20136)
+@@ -20,7 +20,7 @@
+ 
+ 	/*parameters: */
+ 	IssmDouble starttime,finaltime,dt,yts;
+-	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution,ishydrology,iscalving;
++	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isslr,iscoupler,islevelset,isdamageevolution,ishydrology,iscalving;
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
+@@ -50,6 +50,8 @@
+ 	femmodel->parameters->FindParam(&issmb,TransientIssmbEnum);
+ 	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
+ 	femmodel->parameters->FindParam(&isgia,TransientIsgiaEnum);
++	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
++	femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
+ 	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
+ 	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+ 	femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
+@@ -140,6 +142,9 @@
+ 			#endif
+ 		}
+ 
++		/*Sea level rise: */
++		if(isslr | iscoupler) sealevelrise_core(femmodel);
++
+ 		/*unload results*/
+ 		if(VerboseSolution()) _printf0_("   computing requested outputs\n");
+ 		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs,save_results);
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 20135)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 20136)
+@@ -49,8 +49,8 @@
+ void smb_core(FemModel* femmodel);
+ void damage_core(FemModel* femmodel);
+ void sealevelrise_core(FemModel* femmodel);
+-Vector<IssmDouble> * sealevelrise_core_eustatic(FemModel* femmodel);
+-Vector<IssmDouble> * sealevelrise_core_noneustatic(FemModel* femmodel,Vector<IssmDouble>* Sg_eustatic);
++Vector<IssmDouble>* sealevelrise_core_eustatic(FemModel* femmodel);
++Vector<IssmDouble>* sealevelrise_core_noneustatic(FemModel* femmodel,Vector<IssmDouble>* Sg_eustatic);
+ IssmDouble objectivefunction(IssmDouble search_scalar,FemModel* femmodel);
+ 
+ //optimization
+@@ -61,6 +61,8 @@
+ void WriteLockFile(char* filename);
+ void ResetBoundaryConditions(FemModel* femmodel, int analysis_type);
+ void PrintBanner(void);
++void TransferForcing(FemModel* femmodel,int forcingenum);
++void TransferSealevel(FemModel* femmodel,int forcingenum);
+ 
+ //solution configuration
+ void CorePointerFromSolutionEnum(void (**psolutioncore)(FemModel*),Parameters* parameters,int solutiontype);
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20135)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20136)
+@@ -9,43 +9,281 @@
+ #include "../modules/modules.h"
+ #include "../solutionsequences/solutionsequences.h"
+ 
+-void sealevelrise_core(FemModel* femmodel){
++void sealevelrise_core(FemModel* femmodel){ /*{{{*/
+ 
+ 	Vector<IssmDouble> *Sg    = NULL;
+ 	Vector<IssmDouble> *Sg_eustatic    = NULL; 
+-	bool save_results;
++	bool save_results,isslr,iscoupler;
+ 	int configuration_type;
++	int solution_type;
+ 	int        numoutputs        = 0;
+ 	char     **requested_outputs = NULL;
+-
+-	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
+-
++	
+ 	/*Recover some parameters: */
+ 	femmodel->parameters->FindParam(&configuration_type,ConfigurationTypeEnum);
++	femmodel->parameters->FindParam(&solution_type,SolutionTypeEnum);
+ 	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+-	femmodel->parameters->FindParam(&numoutputs,SealevelriseNumRequestedOutputsEnum);
+-	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SealevelriseRequestedOutputsEnum);
++	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
++	femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
+ 
++	/*several cases here, depending on value of iscoupler and isslr: 
++	( !iscoupler & !isslr)       we are not interested in being here :) 
++	( !iscoupler & isslr)        we are running in uncoupled mode
++	( iscoupler & isslr)         we are running in coupled mode, and better be earth
++	( iscoupler & !isslr)        we are running in coupled mode, and better be an ice cap
++	*/
++
++	/*early return: */
++	if( !iscoupler & !isslr) return;  //we are not interested in being here :) 
++
++	/*In what follows we assume we are all running slr, either in coupled, or uncoupled mode:*/
++	if(VerboseSolution()) _printf0_("   computing sea level rise\n");
++
+ 	/*set configuration: */
+-	femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
++	if(isslr)femmodel->SetCurrentConfiguration(SealevelriseAnalysisEnum);
+ 
+-	/*call two sub cores:*/
+-	Sg_eustatic=sealevelrise_core_eustatic(femmodel); //generalized eustatic (Farrel and Clark, Eq 4, 1st, 3rd and 4rd terms on the RHS.
++	/*transfer deltathickness forcing from ice caps to earth model: */
++	if(iscoupler) TransferForcing(femmodel,SealevelriseDeltathicknessEnum);
+ 
+-	Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //sea-level rise dependent terms (2nd and 5th terms on the RHS)
++	/*call sea-level rise sub cores:*/
++	if(isslr){
++		Sg_eustatic=sealevelrise_core_eustatic(femmodel); //generalized eustatic (Farrel and Clark, Eq 4, 1st, 3rd and 4rd terms on the RHS.
+ 
+-	/*get results out:*/
+-	InputUpdateFromVectorx(femmodel,Sg,SealevelriseSEnum,VertexSIdEnum);
++		Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //sea-level rise dependent terms (2nd and 5th terms on the RHS)
+ 
+-	if(save_results){
+-		if(VerboseSolution()) _printf0_("   saving results\n");
+-		femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
++		/*get results into elements:*/
++		InputUpdateFromVectorx(femmodel,Sg,SealevelriseSEnum,VertexSIdEnum);
++
++		if(save_results){
++			if(VerboseSolution()) _printf0_("   saving results\n");
++			femmodel->parameters->FindParam(&requested_outputs,&numoutputs,SealevelriseRequestedOutputsEnum);
++			femmodel->RequestedOutputsx(&femmodel->results,requested_outputs,numoutputs);
++		}
++
++		if(solution_type==SealevelriseSolutionEnum)femmodel->RequestedDependentsx();
++
++		/*Free ressources:*/	
++		delete Sg;
++		delete Sg_eustatic;
++		if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
+ 	}
++
++	/*transfer sea-level back to ice caps: */
++	if(iscoupler)TransferSealevel(femmodel,SealevelriseSEnum);
++} 
++/*}}}*/
++void TransferForcing(FemModel* femmodel,int forcingenum){ /*{{{*/
++
++	/*forcing being transferred from models to earth: */
++	IssmDouble** forcings=NULL;
++	IssmDouble*  forcing=NULL; 
++	Vector<IssmDouble>* forcingglobal=NULL; 
++	int*         nvs=NULL;
+ 	
+-	/*Free ressources:*/	
+-	if(numoutputs){for(int i=0;i<numoutputs;i++){xDelete<char>(requested_outputs[i]);} xDelete<char*>(requested_outputs);}
+-	delete Sg;
+-	delete Sg_eustatic;
++	/*transition vectors:*/
++	IssmDouble** transitions=NULL;
++	int          ntransitions; 
++	int*         transitions_m=NULL;
++	int*         transitions_n=NULL;
++	int          nv;
++	
++	/*communicators:*/
++	ISSM_MPI_Comm tocomm;
++	ISSM_MPI_Comm* fromcomms=NULL;
++	ISSM_MPI_Status status;
++	int         my_rank;
++	int         modelid,earthid;
++	int         nummodels;
+ 
++	/*Recover some parameters: */
++	femmodel->parameters->FindParam(&modelid,ModelIdEnum);
++	femmodel->parameters->FindParam(&earthid,EarthIdEnum);
++	femmodel->parameters->FindParam(&nummodels,NumModelsEnum);
++	my_rank=IssmComm::GetRank();
++	
++	/*retrieve the inter communicators that will be used to send data from each ice cap to the earth: */
++	if(modelid==earthid)femmodel->parameters->FindParam(&fromcomms,&nv,IcecapToEarthCommEnum);
++	else femmodel->parameters->FindParam(&tocomm, IcecapToEarthCommEnum);
+ 
+-}
++	/*For each icecap, retrieve the forcing vector that will be sent to the earth model: */
++	if(modelid!=earthid){
++		nv=femmodel->vertices->NumberOfVertices();
++		GetVectorFromInputsx(&forcing,femmodel,forcingenum,VertexSIdEnum);
++	}
++
++	/*Send the forcing to the earth model:{{{*/
++	if(my_rank==0){
++		if(modelid==earthid){
++			forcings=xNew<IssmDouble*>(nummodels-1);
++			nvs=xNew<int>(nummodels-1);
++			for(int i=0;i<earthid;i++){
++				MPI_Recv(nvs+i, 1, ISSM_MPI_INT, 0,i, fromcomms[i], &status);
++				forcings[i]=xNew<IssmDouble>(nvs[i]);
++				MPI_Recv(forcings[i], nvs[i], ISSM_MPI_DOUBLE, 0,i, fromcomms[i], &status);
++			}
++			
++		}
++		else{
++			ISSM_MPI_Send(&nv, 1, ISSM_MPI_INT, 0, modelid, tocomm);
++			ISSM_MPI_Send(forcing, nv, ISSM_MPI_DOUBLE, 0, modelid, tocomm);
++		}
++	}
++	/*}}}*/
++
++	/*On the earth model, consolidate all the forcings into one, and update the elements dataset accordingly: {{{*/
++	if(modelid==earthid){
++		
++		/*Out of all the delta thicknesses, build one delta thickness vector made of all the ice cap contributions. 
++		 *First, build the global delta thickness vector in the earth model: */
++		nv=femmodel->vertices->NumberOfVertices();
++		forcingglobal= new Vector<IssmDouble>(nv);
++
++		/*Retrieve transition vectors, used to plug from each ice cap into the global forcing:*/
++		femmodel->parameters->FindParam(&transitions,&ntransitions,&transitions_m,&transitions_n,SealevelriseTransitionsEnum);
++
++		if(ntransitions!=earthid)_error_("TransferForcing error message: number of transition vectors is not equal to the number of icecaps!");
++
++		/*Go through all the delta thicknesses coming from each ice cap: */
++		if(my_rank==0){
++			for(int i=0;i<earthid;i++){
++
++				IssmDouble* forcingfromcap= forcings[i]; //careful, this only exists on rank 0 of the earth model!
++				IssmDouble* transition=transitions[i];
++				int         M=transitions_m[i];
++
++				/*build index to plug values: */
++				int*        index=xNew<int>(M); for(int i=0;i<M;i++)index[i]=reCast<int>(transition[i])-1; //matlab indexing!
++
++
++				/*We are going to plug this vector into the earth model, at the right vertices corresponding to this particular 
++				 * ice cap: */
++				forcingglobal->SetValues(M,index,forcingfromcap,INS_VAL);
++				xDelete<int>(index);
++			}
++		}
++
++		/*Assemble vector:*/
++		forcingglobal->Assemble();
++		
++		/*Plug into elements:*/
++		InputUpdateFromVectorx(femmodel,forcingglobal,forcingenum,VertexSIdEnum);
++	} 
++	/*}}}*/
++
++	/*Free ressources:{{{*/
++	if(forcings){
++		for(int i=0;i<nummodels-1;i++){
++			IssmDouble* temp=forcings[i]; xDelete<IssmDouble>(temp);
++		}
++		xDelete<IssmDouble*>(forcings);
++	}
++	if(forcing)xDelete<IssmDouble>(forcing);
++	if(forcingglobal)delete forcingglobal;
++	if(transitions){
++		for(int i=0;i<earthid;i++){
++			IssmDouble* temp=transitions[i];
++			xDelete<IssmDouble>(temp);
++		}
++		xDelete<IssmDouble*>(transitions);
++		xDelete<int>(transitions_m);
++		xDelete<int>(transitions_n);
++	}
++	if(nvs)xDelete<int>(nvs);
++	/*}}}*/
++
++} /*}}}*/
++void TransferSealevel(FemModel* femmodel,int forcingenum){ /*{{{*/
++
++	/*forcing being transferred from earth to ice caps: */
++	IssmDouble*  forcing=NULL; 
++	IssmDouble*  forcingglobal=NULL; 
++	
++	/*transition vectors:*/
++	IssmDouble** transitions=NULL;
++	int          ntransitions; 
++	int*         transitions_m=NULL;
++	int*         transitions_n=NULL;
++	int          nv;
++	
++	/*communicators:*/
++	ISSM_MPI_Comm fromcomm;
++	ISSM_MPI_Comm* tocomms=NULL;
++	ISSM_MPI_Status status;
++	int         my_rank;
++	int         modelid,earthid;
++	int         nummodels;
++	int         numcoms;
++
++	/*Recover some parameters: */
++	femmodel->parameters->FindParam(&modelid,ModelIdEnum);
++	femmodel->parameters->FindParam(&earthid,EarthIdEnum);
++	femmodel->parameters->FindParam(&nummodels,NumModelsEnum);
++	my_rank=IssmComm::GetRank();
++	
++	/*retrieve the inter communicators that will be used to send data from earth to ice caps:*/
++	if(modelid==earthid)femmodel->parameters->FindParam(&tocomms,&numcoms,IcecapToEarthCommEnum);
++	else femmodel->parameters->FindParam(&fromcomm, IcecapToEarthCommEnum);
++
++
++	/*Retrieve sea-level on earth model: */
++	if(modelid==earthid){
++		nv=femmodel->vertices->NumberOfVertices();
++		GetVectorFromInputsx(&forcingglobal,femmodel,forcingenum,VertexSIdEnum);
++	}
++
++	/*Send the forcing to the ice caps:{{{*/
++	if(my_rank==0){
++		
++		if(modelid==earthid){
++			
++			/*Retrieve transition vectors, used to figure out global forcing contribution to each ice cap's own elements: */
++			femmodel->parameters->FindParam(&transitions,&ntransitions,&transitions_m,&transitions_n,SealevelriseTransitionsEnum);
++			
++			if(ntransitions!=earthid)_error_("TransferSeaLevel error message: number of transition vectors is not equal to the number of icecaps!");
++
++			for(int i=0;i<earthid;i++){
++				nv=transitions_m[i];
++				forcing=xNew<IssmDouble>(nv);
++				IssmDouble* transition=transitions[i];
++				for(int j=0;j<nv;j++){
++					forcing[j]=forcingglobal[reCast<int>(transition[j])-1];
++				}
++				ISSM_MPI_Send(&nv, 1, ISSM_MPI_INT, 0, i, tocomms[i]);
++				ISSM_MPI_Send(forcing, nv, ISSM_MPI_DOUBLE, 0, i, tocomms[i]);
++			}
++		}
++		else{
++			ISSM_MPI_Recv(&nv, 1, ISSM_MPI_INT, 0, modelid, fromcomm, &status);
++			forcing=xNew<IssmDouble>(nv);
++			ISSM_MPI_Recv(forcing, nv, ISSM_MPI_DOUBLE, 0, modelid, fromcomm, &status);
++		}
++	}
++	/*}}}*/
++
++	/*On each ice cap, spread the forcing across cpus, and update the elements dataset accordingly: {{{*/
++	if(modelid!=earthid){
++
++		ISSM_MPI_Bcast(&nv,1,ISSM_MPI_INT,0,IssmComm::GetComm());
++		if(my_rank!=0)forcing=xNew<IssmDouble>(nv);
++		ISSM_MPI_Bcast(forcing,nv,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++		/*Plug into elements:*/
++		InputUpdateFromVectorx(femmodel,forcing,forcingenum,VertexSIdEnum);
++	} 
++	/*}}}*/
++
++	/*Free ressources:{{{*/
++	if(forcingglobal)xDelete<IssmDouble>(forcingglobal);
++	if(forcing)xDelete<IssmDouble>(forcing);
++	if(transitions){
++		for(int i=0;i<ntransitions;i++){
++			IssmDouble* temp=transitions[i];
++			xDelete<IssmDouble>(temp);
++		}
++		xDelete<IssmDouble*>(transitions);
++		xDelete<int>(transitions_m);
++		xDelete<int>(transitions_n);
++	}
++	/*}}}*/
++
++} /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20136-20137.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20136-20137.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20136-20137.diff	(revision 20498)
@@ -0,0 +1,213 @@
+Index: ../trunk-jpl/src/m/classes/initialization.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.m	(revision 20136)
++++ ../trunk-jpl/src/m/classes/initialization.m	(revision 20137)
+@@ -45,13 +45,13 @@
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+-			if ismember(StressbalanceAnalysisEnum(),analyses)
++			if ismember(StressbalanceAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isstressbalance == 0),
+ 				if ~(isnan(md.initialization.vx) | isnan(md.initialization.vy)),
+ 					md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 					md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				end
+ 			end
+-			if ismember(MasstransportAnalysisEnum(),analyses),
++			if ismember(MasstransportAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.ismasstransport == 0),
+ 				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			end
+@@ -63,7 +63,7 @@
+ 					md = checkmessage(md,'at least one triangle has all its vertices with a zero velocity');
+ 				end
+ 			end
+-			if ismember(ThermalAnalysisEnum(),analyses),
++			if ismember(ThermalAnalysisEnum(),analyses) & ~(solution==TransientSolutionEnum() & md.transient.isthermal == 0),
+ 				md = checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				md = checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 				if dimension(md.mesh)==3
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20136)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20137)
+@@ -16,6 +16,7 @@
+ 		eustatic         = 0;
+ 		degacc         = 0;
+ 		requested_outputs      = {};
++		transitions    = {};
+ 	end
+ 	methods
+ 		function self = slr(varargin) % {{{
+@@ -45,6 +46,9 @@
+ 		
+ 		%output default:
+ 		self.requested_outputs={'default'};
++
++		%transitions should be a cell array of vectors: 
++		self.transitions={};
+ 		
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -81,6 +85,7 @@
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+ 			fielddisplay(self,'eustatic','eustatic sea level rise');
+ 			fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
++			fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps');
+ 			fielddisplay(self,'requested_outputs','additional outputs requested');
+ 
+ 		end % }}}
+@@ -95,6 +100,8 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray');
+ 			
+ 			%process requested outputs
+ 			outputs = self.requested_outputs;
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 20136)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 20137)
+@@ -15,6 +15,8 @@
+ 		islevelset        = 0;
+ 		iscalving         = 0;
+ 		ishydrology       = 0;
++		isslr             = 0;
++		iscoupler             = 0;
+ 		requested_outputs = {};
+ 	end
+ 	methods
+@@ -39,6 +41,8 @@
+ 			self.islevelset      = 0;
+ 			self.iscalving       =0;
+ 			self.ishydrology     = 0;
++			self.isslr           = 0;
++			self.iscoupler           = 0;
+ 
+ 			%default output
+ 			self.requested_outputs={};
+@@ -56,6 +60,8 @@
+ 			self.islevelset      = 0;
+ 			self.iscalving       = 0;
+ 			self.ishydrology     = 0;
++			self.isslr           = 0;
++			self.iscoupler           = 0;
+ 
+ 			%default output
+ 			self.requested_outputs={'default'};
+@@ -83,6 +89,8 @@
+ 			md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
++			md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0 1]);
++			md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0 1]);
+ 
+ 		end % }}}
+ 		function disp(self) % {{{
+@@ -98,6 +106,8 @@
+ 			fielddisplay(self,'islevelset','LEVEL SET DESCRIPTION...');
+ 			fielddisplay(self,'iscalving','indicates whether calving is used in the transient');
+ 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
++			fielddisplay(self,'isslr','indicates whether a thermal solution is used in the transient');
++			fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling');
+ 			fielddisplay(self,'requested_outputs','list of additional outputs requested');
+ 
+ 		end % }}}
+@@ -112,6 +122,8 @@
+ 			WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean');
++			WriteData(fid,'object',self,'fieldname','isslr','format','Boolean');
++			WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean');
+ 
+ 			%process requested outputs
+ 			outputs = self.requested_outputs;
+@@ -134,6 +146,8 @@
+ 			writejsdouble(fid,[modelname '.trans.islevelset'],self.islevelset);
+ 			writejsdouble(fid,[modelname '.trans.iscalving'],self.iscalving);
+ 			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
++			writejsdouble(fid,[modelname '.trans.isslr'],self.isslr);
++			writejsdouble(fid,[modelname '.trans.iscoupler'],self.iscoupler);
+ 			writejscellstring(fid,[modelname '.trans.requested_outputs'],self.requested_outputs);
+ 
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.py	(revision 20136)
++++ ../trunk-jpl/src/m/classes/transient.py	(revision 20137)
+@@ -22,6 +22,7 @@
+ 		self.islevelset        = False
+ 		self.iscalving         = False
+ 		self.ishydrology       = False
++		self.isslr             = False
+ 		self.requested_outputs = []
+ 
+ 		#set defaults
+@@ -40,6 +41,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'iscalving','indicates whether calving is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
++		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
+ 		return string
+ 		#}}}
+@@ -64,6 +66,7 @@
+ 		self.islevelset        = False
+ 		self.iscalving         = False
+ 		self.ishydrology       = False
++		self.isslr             = False
+ 
+ 		#default output
+ 		self.requested_outputs=[]
+@@ -82,6 +85,7 @@
+ 		self.islevelset      = False
+ 		self.iscalving       = False
+ 		self.ishydrology     = False
++		self.isslr           = False
+ 
+ 		#default output
+ 		self.requested_outputs=['default']
+@@ -103,6 +107,7 @@
+ 		md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);
++		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
+ 
+ 		return md
+@@ -118,6 +123,7 @@
+ 		WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','isslr','format','Boolean')
+ 
+ 		#process requested outputs
+ 		outputs = self.requested_outputs
+Index: ../trunk-jpl/src/m/classes/friction.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/friction.m	(revision 20136)
++++ ../trunk-jpl/src/m/classes/friction.m	(revision 20137)
+@@ -30,6 +30,8 @@
+ 
+ 			%Early return
+ 			if ~ismember(StressbalanceAnalysisEnum(),analyses) & ~ismember(ThermalAnalysisEnum(),analyses), return; end
++			if (solution==TransientSolutionEnum() &  md.transient.isstressbalance ==0 & md.transient.isthermal == 0), return; end
++
+ 			md = checkfield(md,'fieldname','friction.coefficient','timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','friction.q','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+ 			md = checkfield(md,'fieldname','friction.p','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+Index: ../trunk-jpl/src/m/classes/SMBforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 20136)
++++ ../trunk-jpl/src/m/classes/SMBforcing.m	(revision 20137)
+@@ -47,6 +47,8 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
++			if (solution==TransientSolutionEnum & md.transient.issmb == 0), return; end
++			
+ 			if ismember(MasstransportAnalysisEnum(),analyses),
+ 				md = checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
+ 			end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20137-20138.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20137-20138.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20137-20138.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20137)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20138)
+@@ -141,8 +141,8 @@
+ 			xDelete<IssmDouble>(transition);
+ 		}
+ 		xDelete<IssmDouble*>(transitions);
+-		xDelete<IssmDouble*>(transitions_M);
+-		xDelete<IssmDouble*>(transitions_N);
++		xDelete<int>(transitions_M);
++		xDelete<int>(transitions_N);
+ 	}
+ 
+ 	/*Requested outputs*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20138-20139.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20138-20139.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20138-20139.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.py	(revision 20138)
++++ ../trunk-jpl/src/m/classes/transient.py	(revision 20139)
+@@ -23,6 +23,7 @@
+ 		self.iscalving         = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
++		self.iscoupler         = False
+ 		self.requested_outputs = []
+ 
+ 		#set defaults
+@@ -42,6 +43,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'iscalving','indicates whether calving is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
+ 		return string
+ 		#}}}
+@@ -67,6 +69,7 @@
+ 		self.iscalving         = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
++		self.iscoupler         = False
+ 
+ 		#default output
+ 		self.requested_outputs=[]
+@@ -86,6 +89,7 @@
+ 		self.iscalving       = False
+ 		self.ishydrology     = False
+ 		self.isslr           = False
++		self.iscoupler       = False
+ 
+ 		#default output
+ 		self.requested_outputs=['default']
+@@ -108,6 +112,7 @@
+ 		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);
+ 		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
++		md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
+ 
+ 		return md
+@@ -124,6 +129,7 @@
+ 		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isslr','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean')
+ 
+ 		#process requested outputs
+ 		outputs = self.requested_outputs
Index: /issm/oecreview/Archive/19101-20495/ISSM-20139-20140.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20139-20140.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20139-20140.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/test/NightlyRun/test109.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test109.m	(revision 20139)
++++ ../trunk-jpl/test/NightlyRun/test109.m	(revision 20140)
+@@ -10,7 +10,6 @@
+ md.transient.issmb=1;
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=0;
+-md.verbose=verbose('11111111');
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/NightlyRun/test334.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test334.m	(revision 20139)
++++ ../trunk-jpl/test/NightlyRun/test334.m	(revision 20140)
+@@ -20,7 +20,6 @@
+ md.hydrology.sediment_transmitivity= 3.0*ones(md.mesh.numberofvertices,1);
+ md.timestepping.time_step=0;
+ md.timestepping.final_time=1.0;
+-%md.verbose=verbose('1111111');
+ md=extrude(md,3,1.1);
+ md=solve(md,HydrologySolutionEnum());
+ 
+Index: ../trunk-jpl/test/NightlyRun/test105.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test105.m	(revision 20139)
++++ ../trunk-jpl/test/NightlyRun/test105.m	(revision 20140)
+@@ -4,7 +4,6 @@
+ md=parameterize(md,'../Par/SquareShelfConstrained.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.verbose=verbose('11111111');
+ md=solve(md,MasstransportSolutionEnum());
+ 
+ %Fields and tolerances to track changes
Index: /issm/oecreview/Archive/19101-20495/ISSM-20140-20141.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20140-20141.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20140-20141.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/test/NightlyRun/IdFromString.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/IdFromString.m	(revision 20140)
++++ ../trunk-jpl/test/NightlyRun/IdFromString.m	(revision 20141)
+@@ -7,6 +7,7 @@
+ %   Examples:
+ %      ids=IdFromString('Parallel');
+ %      ids=IdFromString('79North');
++%      ids=IdFromString('*');          %Print all tests
+ 
+ %Check input
+ if ~ischar(string)
+@@ -17,7 +18,11 @@
+ ids=[];
+ 
+ %Grep string
+-[dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | grep ' string ' | sed -e "s/test/ /g" -e "s/\.m:/ /g" | awk {''print $2''}']);
++if strcmp(string,'*'),
++	[dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | sed -e "s/test/ /g" -e "s/\.m:/ /g" | awk {''print $2''}']);
++else
++	[dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | grep ' string ' | sed -e "s/test/ /g" -e "s/\.m:/ /g" | awk {''print $2''}']);
++end
+ 
+ %return if no test found
+ if isempty(ids_raw),
+@@ -31,6 +36,7 @@
+ for i=1:length(ids_raw),
+ 	eval(['ids=[ids ' ids_raw{i} '];']); 
+ end
++ids=sort(ids);
+ 
+ %Display names
+ disp([ num2str(length(ids)) ' tests match ''' string '''']);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20141-20142.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20141-20142.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20141-20142.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/dev/devpath.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/devpath.py	(revision 20141)
++++ ../trunk-jpl/src/m/dev/devpath.py	(revision 20142)
+@@ -28,7 +28,7 @@
+ 	if os.path.exists(JPL_SVN + '/usr/' + USERNAME):
+ 		sys.path.append(JPL_SVN + '/usr/' + USERNAME)
+ 	else:
+-		raise NameError ('cluster settings should be in, '+ JPL_SVN +'/usr/' + USERNAME)
++		warnings.warn('cluster settings should be in, '+ JPL_SVN +'/usr/' + USERNAME)
+ 
+ #Manual imports for commonly used functions
+ from plotmodel import plotmodel
Index: /issm/oecreview/Archive/19101-20495/ISSM-20142-20143.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20142-20143.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20142-20143.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 20142)
++++ ../trunk-jpl/src/m/classes/clusters/generic.py	(revision 20143)
+@@ -189,12 +189,11 @@
+ 			launchcommand='cd %s && cd %s chmod 777 %s.queue && ./%s.queue' % (self.executionpath,dirname,modelname,modelname)
+ 		else:
+ 			if batch:
+-				launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
+-				(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
+-			else:
+ 				launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz' % \
+-				(self.executionpath,dirname,dirname,dirname,dirname,dirname)
+-
++						(self.executionpath,dirname,dirname,dirname,dirname,dirname)
++			else:
++				launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && chmod 777 %s.queue && ./%s.queue' % \
++					(self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname,modelname)
+ 		issmssh(self.name,self.login,self.port,launchcommand)
+ 	# }}}
+ 	def Download(self,dirname,filelist):     # {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-20143-20144.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20143-20144.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20143-20144.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/m/plot/plot_streamlines.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 20143)
++++ ../trunk-jpl/src/m/plot/plot_streamlines.py	(revision 20144)
+@@ -1,10 +1,13 @@
+ import numpy as npy
+-import matplotlib.pyplot as plt
+-import matplotlib.tri as tri
+ from processmesh import processmesh
+ from processdata import processdata
+-from scipy.interpolate import griddata
+ from ContourToMesh import ContourToMesh
++try:
++	import matplotlib.pyplot as plt
++	import matplotlib.tri as tri
++	from scipy.interpolate import griddata
++except ImportError:
++	print "could not import pylab, matplotlib has not been installed, no plotting capabilities enabled"
+ 
+ def plot_streamlines(md,options,ax):
+     '''
+Index: ../trunk-jpl/src/m/plot/plot_contour.py
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_contour.py	(revision 20143)
++++ ../trunk-jpl/src/m/plot/plot_contour.py	(revision 20144)
+@@ -1,7 +1,10 @@
+ from averaging import averaging
+-import matplotlib.pyplot as plt
+ from processmesh import processmesh
+ from processdata import processdata
++try:
++	import matplotlib.pyplot as plt
++except ImportError:
++	print "could not import pylab, matplotlib has not been installed, no plotting capabilities enabled"
+ 
+ def plot_contour(md,datain,options,ax):
+ 	'''
+Index: ../trunk-jpl/src/m/interp/averaging.py
+===================================================================
+--- ../trunk-jpl/src/m/interp/averaging.py	(revision 20143)
++++ ../trunk-jpl/src/m/interp/averaging.py	(revision 20144)
+@@ -1,7 +1,10 @@
+ import numpy as npy
+ from GetAreas import GetAreas
+-from scipy.sparse import csc_matrix
+ import MatlabFuncs as m
++try:
++	from scipy.sparse import csc_matrix
++except ImportError:
++	print "could not import scipy, no averaging capabilities enabled"
+ 
+ def averaging(md,data,iterations,layer=0):
+ 	'''
Index: /issm/oecreview/Archive/19101-20495/ISSM-20144-20145.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20144-20145.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20144-20145.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh	(revision 20144)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh	(revision 20145)
+@@ -1,38 +0,0 @@
+-# One way to avoid firewall and host-name issues on El Capitan is
+-# to use gforker, instead of default hydra, process manager.
+-# Note that gforker will only work with a single-node configuration.
+-# https://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-installguide.pdf
+-
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf src install mpich-3.0.4
+-mkdir src install
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
+-
+-#Untar 
+-tar -zxvf  mpich-3.0.4.tar.gz
+-
+-#Move mpich into src directory
+-mv mpich-3.0.4/* src
+-rm -rf mpich-3.0.4
+-
+-#Configure mpich
+-cd src
+-./configure \
+-	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
+-	--enable-shared \
+-        --with-pm=gforker
+-
+-	#CC=llvm-gcc \
+-
+-#Compile mpich (this new version supports parallel make)
+-if [ $# -eq 0 ]; then
+-	make
+-else
+-	make -j $1
+-fi
+-make install 
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-gforker.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-gforker.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-gforker.sh	(revision 20145)
+@@ -0,0 +1,38 @@
++# One way to avoid firewall and host-name issues on El Capitan is
++# to use gforker, instead of default hydra, process manager.
++# Note that gforker will only work with a single-node configuration.
++# https://www.mpich.org/static/downloads/3.0.4/mpich-3.0.4-installguide.pdf
++
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src install mpich-3.0.4
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
++
++#Untar 
++tar -zxvf  mpich-3.0.4.tar.gz
++
++#Move mpich into src directory
++mv mpich-3.0.4/* src
++rm -rf mpich-3.0.4
++
++#Configure mpich
++cd src
++./configure \
++	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
++	--enable-shared \
++        --with-pm=gforker
++
++	#CC=llvm-gcc \
++
++#Compile mpich (this new version supports parallel make)
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install 
+
+Property changes on: ../trunk-jpl/externalpackages/mpich/install-3.0-macosx64-gforker.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20145-20146.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20145-20146.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20145-20146.diff	(revision 20498)
@@ -0,0 +1,302 @@
+Index: ../trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-jenkins
+===================================================================
+--- ../trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-jenkins	(revision 0)
++++ ../trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-jenkins	(revision 20146)
+@@ -0,0 +1,240 @@
++#
++# $Id: ConfigUserTemplate.cmake 12904 2014-02-17 20:52:35Z fwobbe $
++#
++# Copyright (c) 1991-2014 by P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis and F. Wobbe
++# See LICENSE.TXT file for copying and redistribution conditions.
++#
++# This program is free software; you can redistribute it and/or modify it
++# under the terms of the GNU Lesser General Public License as published by the
++# Free Software Foundation; version 3 or any later version.
++#
++# This program is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
++# for more details.
++#
++# Contact info: gmt.soest.hawaii.edu
++# ----------------------------------------------------------------------------
++
++# Use this file to override variables in 'ConfigDefault.cmake' on a per-user
++# basis.  First copy 'ConfigUserTemplate.cmake' to 'ConfigUser.cmake', then
++# edit 'ConfigUser.cmake'.  'ConfigUser.cmake' is not version controlled
++# (currently listed in svn:ignore property)
++#
++# Note: CMake considers an empty string, "FALSE", "OFF", "NO", or any string
++# ending in "-NOTFOUND" to be false (this happens to be case-insensitive, so
++# "False", "off", "no", and "something-NotFound" are all false).  Other values
++# are true.  Thus it does not matter whether you use TRUE and FALSE, ON and
++# OFF, or YES and NO for your booleans.
++
++##
++## Section 1: Installation paths
++##
++
++# ============================================================================
++# Basic setup begins here.  All settings are optional.  In most cases, setting
++# CMAKE_INSTALL_PREFIX should be all you need to do in order to build GMT with
++# reasonable defaults enabled.
++# ============================================================================
++
++# Installation path (usually defaults to /usr/local) [auto]:
++set (CMAKE_INSTALL_PREFIX "$ENV{ISSM_DIR}/externalpackages/gmt/install")
++
++# Set install name suffix used for directories and gmt executables
++# [undefined]:
++#set (GMT_INSTALL_NAME_SUFFIX "suffix")
++
++# Install into traditional directory structure. Disable to install a
++# distribution type directory structure (doc and share separated) [on]:
++#set (GMT_INSTALL_TRADITIONAL_FOLDERNAMES OFF)
++
++# Install convenience links for GMT modules. Disable to install only the main
++# gmt program and access modules as "gmt modulename options" [TRUE]:
++#set (GMT_INSTALL_MODULE_LINKS FALSE)
++
++# Make executables relocatable on supported platforms (relative RPATH) [TRUE]:
++#set (GMT_INSTALL_RELOCATABLE FALSE)
++
++# ============================================================================
++# Advanced configuration begins here.  Usually it is not necessary to edit any
++# settings below.  You should know what you are doing if you do though.  Note:
++# installation paths are relative to ${CMAKE_INSTALL_PREFIX} unless absolute
++# path is given.
++# ============================================================================
++
++# Set binary installation path [bin]:
++#set (GMT_BINDIR "bin")
++
++# Set library installation path [lib or lib64]:
++#set (GMT_LIBDIR "lib")
++
++# Set include installation path [include/gmt${GMT_INSTALL_NAME_SUFFIX}]:
++#set (GMT_INCLUDEDIR "include/gmt")
++
++# Set share installation path [share or share/gmt${GMT_INSTALL_NAME_SUFFIX}]:
++#set (GMT_DATADIR "share/gmt")
++
++# Set doc installation path [share/doc or
++# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}]:
++#set (GMT_DOCDIR "share/doc/gmt")
++
++# Set manpage installation path [share/man or
++# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}/man]:
++#set (GMT_MANDIR "share/doc/gmt/man")
++
++# Install documentation files from this external location instead of creating
++# new PDF and HTML documents from scratch [${GMT_SOURCE_DIR}/doc_release]:
++#set (GMT_INSTALL_EXTERNAL_DOC OFF)
++
++# Install manual pages from this external location instead of creating the
++# manpages from scratch [${GMT_SOURCE_DIR}/man_release]:
++#set (GMT_INSTALL_EXTERNAL_MAN OFF)
++
++##
++## Section 2: Build dependencies (should only be needed if CMake cannot
++## automatically detect the rights version or path.)
++##
++
++# Set path to GSHHG Shoreline Database [auto]:
++set (GSHHG_ROOT "$ENV{ISSM_DIR}/externalpackages/gshhg/install")
++
++# Copy GSHHG files to $/coast [FALSE]:
++#set (COPY_GSHHG TRUE)
++
++# Set path to DCW Digital Chart of the World for GMT [auto]:
++#set (DCW_ROOT "dcw-gmt_path")
++
++# Copy DCW files to $/dcw [FALSE]:
++#set (COPY_DCW TRUE)
++
++# Set location of NetCDF (can be root directory, path to header file or path
++# to nc-config) [auto]:
++set (NETCDF_ROOT "/")
++
++# Set location of GDAL (can be root directory, path to header file or path to
++# gdal-config) [auto]:
++set (GDAL_ROOT "$ENV{ISSM_DIR}/externalpackages/gdal/install")
++
++# Set location of PCRE (can be root directory, path to header file or path to
++# pcre-config) [auto]:
++#set (PCRE_ROOT "pcre_install_prefix")
++
++# Set location of single precision FFTW (can be root directory or path to
++# header file) [auto]:
++#set (FFTW3_ROOT "fftw_install_prefix")
++
++# Set location of ZLIB (can be root directory or path to header file) [auto]:
++#set (ZLIB_ROOT "zlib_install_prefix")
++
++##
++## Section 3: GMT features
++##
++
++# Enforce GPL or LGPL conformity. Use this to disable routines that cannot be
++# redistributed under the terms of the GPL or LGPL such as Shewchuk's
++# triangulation (valid values are GPL, LGPL and off) [off]:
++#set (LICENSE_RESTRICTED GPL)
++
++# Configure default units (possible values are SI and US) [SI]:
++#set (UNITS "US")
++
++# Enable building of shared libraries [TRUE] (disable to use static libraries;
++# not recommended):
++#set (BUILD_SHARED_LIBS FALSE)
++
++# Build GMT shared lib with supplemental modules [TRUE]:
++#set (BUILD_SUPPLEMENTS FALSE)
++
++##
++## Section 4: Advanced tweaking
++##
++
++#
++# Testing and development
++#
++
++# Enable running examples/tests with "ctest" or "make check" (out-of-source).
++# Need to set either DO_EXAMPLES, DO_TESTS or both and uncomment the following
++# line.
++#enable_testing()
++#set (DO_EXAMPLES TRUE)
++#set (DO_TESTS TRUE)
++# Number of parallel test jobs with "make check":
++#set (N_TEST_JOBS 4)
++
++# Enable this option to run GMT programs from within ${GMT_BINARY_DIR} without
++# installing or setting GMT_SHAREDIR and GMT_USERDIR first. This is required
++# for testing [OFF]:
++#set (SUPPORT_EXEC_IN_BINARY_DIR ON)
++
++# List extra sub-dirs of 'src' with a CMakeList.txt to build non-module codes
++# that link against the full gmt libs (not just the API; for building codes
++# that only need the GMT API, see the gmtextension project).
++#set (EXTRA_BUILD_DIRS apidemo)
++
++# Directory in which to install the release sources per default
++# [${GMT_BINARY_DIR}/gmt-${GMT_PACKAGE_VERSION}]:
++#set (GMT_RELEASE_PREFIX "release-src-prefix")
++
++# If set to false, image conversion from PS images to PNG and PDF does
++# not depend on the gmt binary target. Note: "make gmt" is then required
++# before docs_depends [TRUE].
++#set (GMT_DOCS_DEPEND_ON_GMT FALSE)
++
++#
++# Debugging
++#
++
++# Set build type can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel
++# [Release]:
++#set (CMAKE_BUILD_TYPE Debug)
++
++# Extra debugging for developers:
++#add_definitions(-DDEBUG)
++#add_definitions(-DMEMDEBUG) # Turn on memory tracking see gmt_support.c for extra info
++#set (CMAKE_C_FLAGS "-Wall -Wdeclaration-after-statement") # recommended even for release build
++#set (CMAKE_C_FLAGS "-Wextra ${CMAKE_C_FLAGS}")            # extra warnings
++#set (CMAKE_C_FLAGS_DEBUG -ggdb3)                          # gdb debugging symbols
++#set (CMAKE_C_FLAGS_RELEASE "-ggdb3 -O2 -Wuninitialized")  # check uninitialized variables
++#set (CMAKE_LINK_DEPENDS_DEBUG_MODE TRUE)                  # debug link dependencies
++
++#
++# System specific tweaks
++#
++
++# This is for GCC on Solaris to avoid "relocations remain against allocatable
++# but non-writable sections" problems:
++#set (USER_GMTLIB_LINK_FLAGS -mimpure-text)
++
++# This may be needed to enable strdup and extended math functions with GCC and
++# Suncc on Solaris:
++#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
++
++# Do not warn when building with Windows SDK or Visual Studio Express:
++#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
++
++# Manually select runtime library when compiling with Windows SDK or Visual
++# Studio Express:
++#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS c:/Windows/System32/msvcr100.dll)
++
++# If your NetCDF library is static (not recommended, applies to Windows only)
++#set (NETCDF_STATIC TRUE)
++
++# If want to rename the DLLs to something else than the default (e.g. to
++# append the bitness - Windows only)
++#if (WIN32)
++# set (BITAGE 32)
++# # Detect if we are building a 32 or 64 bits version
++# if (CMAKE_SIZEOF_VOID_P EQUAL 8)
++#   set (BITAGE 64)
++# endif ()
++# set (GMT_DLL_RENAME gmt_w${BITAGE})
++# set (PSL_DLL_RENAME psl_w${BITAGE})
++#endif(WIN32)
++
++# On Windows Visual C 2012 needs _ALLOW_KEYWORD_MACROS to build
++#if(MSVC11)
++#  add_definitions(/D_ALLOW_KEYWORD_MACROS)
++#endif(MSVC11)
++
++# vim: textwidth=78 noexpandtab tabstop=2 softtabstop=2 shiftwidth=2
+Index: ../trunk-jpl/externalpackages/gmt/install-jenkins.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/gmt/install-jenkins.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/gmt/install-jenkins.sh	(revision 20146)
+@@ -0,0 +1,32 @@
++#!/bin/bash
++set -eu
++
++#Erase install
++rm -rf install  src gmt
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/gmt-5.1.1.tar.gz' 'gmt-5.1.1.tar.gz'
++
++#install directory
++mkdir src
++tar -zxvf gmt-5.1.1.tar.gz 
++mv gmt-5.1.1/* src
++rm -rf gmt-5.1.1
++
++#configure: 
++cp configs/ConfigUser.cmake-jenkins ./src/cmake/ConfigUser.cmake
++
++cd src
++mkdir build
++cd build
++cmake ../
++
++#compile
++if [ $# -eq 0 ]; then
++	make install
++else
++	make -j $1 install
++fi
++
++#come back: 
++cd ../../
+
+Property changes on: ../trunk-jpl/externalpackages/gmt/install-jenkins.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20145)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20146)
+@@ -55,8 +55,8 @@
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						gshhg         install.sh
++						gdal          install-1.10-linux64.sh
+ 						gmt           install.sh
+-						gdal          install-1.10-linux64.sh
+ 						gmsh          install.sh
+ 						shell2junit   install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20146-20147.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20146-20147.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20146-20147.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20146)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20147)
+@@ -54,6 +54,7 @@
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
++						boost         install.sh                
+ 						gshhg         install.sh
+ 						gdal          install-1.10-linux64.sh
+ 						gmt           install.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-20147-20148.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20147-20148.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20147-20148.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20147)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20148)
+@@ -27,12 +27,18 @@
+ 	femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
+ 
+ 	/*several cases here, depending on value of iscoupler and isslr: 
++	solution_type == SealevelriseSolutionEnum)       we are running sea level rise core (no coupler)
+ 	( !iscoupler & !isslr)       we are not interested in being here :) 
+ 	( !iscoupler & isslr)        we are running in uncoupled mode
+ 	( iscoupler & isslr)         we are running in coupled mode, and better be earth
+ 	( iscoupler & !isslr)        we are running in coupled mode, and better be an ice cap
+ 	*/
+ 
++	if(solution_type==SealevelriseSolutionEnum){
++		isslr=1;
++		iscoupler=0;
++	}
++
+ 	/*early return: */
+ 	if( !iscoupler & !isslr) return;  //we are not interested in being here :) 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20148-20149.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20148-20149.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20148-20149.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20148)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20149)
+@@ -493,3 +493,42 @@
+   ensureContiguousLocations(aSize);
+ #endif
+ }/*}}}*/
++int ISSM_MPI_Send(void *buf, int count, ISSM_MPI_Datatype datatype, int dest, int tag, ISSM_MPI_Comm comm){ /*{{{*/
++
++  int rc=0;
++#ifdef _HAVE_MPI_
++# ifdef _HAVE_AMPI_
++  rc=AMPI_Send(buf, 
++	       count,
++	       datatype,
++	       dest,
++	       tag,
++	       AMPI_TO_RECV, // as long as there are no other variants
++	       comm);
++# else
++  rc=MPI_Send(buf, 
++	      count,
++	      datatype,
++	      dest,
++	      tag,
++	      comm);
++# endif
++#else 
++// nothing to be done here 
++#endif
++  return rc;
++}/*}}}*/
++int ISSM_MPI_Comm_split(ISSM_MPI_Comm comm, int color, int key, ISSM_MPI_Comm *newcomm){ /*{{{*/
++
++int rc=0;
++#ifdef _HAVE_MPI_
++# ifdef _HAVE_AMPI_
++rc MPI_Comm_split(comm, color, key, newcomm);
++# else
++rc MPI_Comm_split(comm, color, key, newcomm);
++# endif
++#else 
++// nothing to be done here 
++#endif
++  return rc;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 20148)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 20149)
+@@ -136,6 +136,7 @@
+ int ISSM_MPI_Scatterv(void *sendbuf, int *sendcnts, int *displs, ISSM_MPI_Datatype sendtype, void *recvbuf, int recvcnt, ISSM_MPI_Datatype recvtype, int root, ISSM_MPI_Comm comm); 
+ int ISSM_MPI_Send(void *buf, int count, ISSM_MPI_Datatype datatype, int dest, int tag, ISSM_MPI_Comm comm);
+ double ISSM_MPI_Wtime(void);
++int ISSM_MPI_Comm_split(ISSM_MPI_Comm comm, int color, int key, ISSM_MPI_Comm *newcomm);
+ 
+ // special for Adol-C locations when buffers are allocated with new
+ // this could end up in the xNew template specialized for adoubles 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20149-20150.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20149-20150.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20149-20150.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20149)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20150)
+@@ -493,31 +493,6 @@
+   ensureContiguousLocations(aSize);
+ #endif
+ }/*}}}*/
+-int ISSM_MPI_Send(void *buf, int count, ISSM_MPI_Datatype datatype, int dest, int tag, ISSM_MPI_Comm comm){ /*{{{*/
+-
+-  int rc=0;
+-#ifdef _HAVE_MPI_
+-# ifdef _HAVE_AMPI_
+-  rc=AMPI_Send(buf, 
+-	       count,
+-	       datatype,
+-	       dest,
+-	       tag,
+-	       AMPI_TO_RECV, // as long as there are no other variants
+-	       comm);
+-# else
+-  rc=MPI_Send(buf, 
+-	      count,
+-	      datatype,
+-	      dest,
+-	      tag,
+-	      comm);
+-# endif
+-#else 
+-// nothing to be done here 
+-#endif
+-  return rc;
+-}/*}}}*/
+ int ISSM_MPI_Comm_split(ISSM_MPI_Comm comm, int color, int key, ISSM_MPI_Comm *newcomm){ /*{{{*/
+ 
+ int rc=0;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20150-20151.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20150-20151.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20150-20151.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20150)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20151)
+@@ -497,11 +497,11 @@
+ 
+ int rc=0;
+ #ifdef _HAVE_MPI_
+-# ifdef _HAVE_AMPI_
+-rc MPI_Comm_split(comm, color, key, newcomm);
+-# else
+-rc MPI_Comm_split(comm, color, key, newcomm);
+-# endif
++#ifdef _HAVE_AMPI_
++rc=MPI_Comm_split(comm, color, key, newcomm);
++#else
++rc=MPI_Comm_split(comm, color, key, newcomm);
++#endif
+ #else 
+ // nothing to be done here 
+ #endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-20151-20152.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20151-20152.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20151-20152.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/plot/processdata.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/processdata.m	(revision 20151)
++++ ../trunk-jpl/src/m/plot/processdata.m	(revision 20152)
+@@ -126,12 +126,13 @@
+ 	%Mask?
+ 	if exist(options,'mask'),
+ 		flags=getfieldvalue(options,'mask');
++		maskvalue=getfieldvalue(options,'maskvalue',NaN);
+ 		pos=find(~flags);
+ 		if length(flags)==md.mesh.numberofvertices,
+ 			[pos2 dummy]=find(ismember(md.mesh.elements,pos));
+-			data(pos2,:)=NaN;
++			data(pos2,:)=maskvalue;
+ 		elseif length(flags)==md.mesh.numberofelements
+-			data(pos,:)=NaN;
++			data(pos,:)=maskvalue;
+ 		else
+ 			disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
+ 		end
+@@ -156,11 +157,12 @@
+ 	%Mask?
+ 	if exist(options,'mask'),
+ 		flags=getfieldvalue(options,'mask');
++		maskvalue=getfieldvalue(options,'maskvalue',NaN);
+ 		pos=find(~flags);
+ 		if length(flags)==md.mesh.numberofvertices,
+-			data(pos,:)=NaN;
++			data(pos,:)=maskvalue;
+ 		elseif length(flags)==md.mesh.numberofelements
+-			data(md.mesh.elements(pos,:),:)=NaN;
++			data(md.mesh.elements(pos,:),:)=maskvalue;
+ 		else
+ 			disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
+ 		end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20152-20153.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20152-20153.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20152-20153.diff	(revision 20498)
@@ -0,0 +1,55 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20152)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20153)
+@@ -178,7 +178,36 @@
+ 	_error_("Not implemented yet");
+ }/*}}}*/
+ void           SealevelriseAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
+-	_error_("not implemented yet");
++	
++	IssmDouble *deltaS  = NULL;
++	IssmDouble *S  = NULL;
++	int*        sidlist = NULL;
++	int         numvertices;
++	
++	numvertices= element->GetNumberOfVertices();
++	sidlist=xNew<int>(numvertices);
++	
++	element->GetVerticesSidList(sidlist);
++
++	deltaS = xNew<IssmDouble>(numvertices);
++	for(int i=0;i<numvertices;i++){
++		deltaS[i]=solution[sidlist[i]];
++	}
++
++	S = xNew<IssmDouble>(numvertices);
++	element->GetInputListOnVertices(S,SealevelriseSEnum,0);
++
++	/*Add deltaS to S:*/
++	for (int i=0;i<numvertices;i++)S[i]+=deltaS[i];
++
++	/*Add S back into inputs: */
++	element->AddInput(SealevelriseSEnum,S,P1Enum);
++
++	/*Free ressources:*/
++	xDelete<int>(sidlist);
++	xDelete<IssmDouble>(deltaS);
++	xDelete<IssmDouble>(S);
++
+ }/*}}}*/
+ void           SealevelriseAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+ 	/*Default, do nothing*/
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20152)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20153)
+@@ -58,7 +58,7 @@
+ 		Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //sea-level rise dependent terms (2nd and 5th terms on the RHS)
+ 
+ 		/*get results into elements:*/
+-		InputUpdateFromVectorx(femmodel,Sg,SealevelriseSEnum,VertexSIdEnum);
++		InputUpdateFromSolutionx(femmodel,Sg);
+ 
+ 		if(save_results){
+ 			if(VerboseSolution()) _printf0_("   saving results\n");
Index: /issm/oecreview/Archive/19101-20495/ISSM-20153-20154.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20153-20154.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20153-20154.diff	(revision 20498)
@@ -0,0 +1,194 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20153)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20154)
+@@ -195,13 +195,13 @@
+ 	}
+ 
+ 	S = xNew<IssmDouble>(numvertices);
+-	element->GetInputListOnVertices(S,SealevelriseSEnum,0);
++	element->GetInputListOnVertices(S,SealevelEnum,0);
+ 
+ 	/*Add deltaS to S:*/
+ 	for (int i=0;i<numvertices;i++)S[i]+=deltaS[i];
+ 
+ 	/*Add S back into inputs: */
+-	element->AddInput(SealevelriseSEnum,S,P1Enum);
++	element->AddInput(SealevelEnum,S,P1Enum);
+ 
+ 	/*Free ressources:*/
+ 	xDelete<int>(sidlist);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20153)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20154)
+@@ -1051,7 +1051,7 @@
+ 	/*Sea Level Rise{{{*/
+ 	SealevelriseSolutionEnum,
+ 	SealevelriseAnalysisEnum,
+-	SealevelriseSEnum,
++	SealevelEnum,
+ 	SealevelriseDeltathicknessEnum,
+ 	SealevelriseMaxiterEnum,
+ 	SealevelriseReltolEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20153)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20154)
+@@ -1003,7 +1003,7 @@
+ 		case LevelsetfunctionPicardEnum : return "LevelsetfunctionPicard";
+ 		case SealevelriseSolutionEnum : return "SealevelriseSolution";
+ 		case SealevelriseAnalysisEnum : return "SealevelriseAnalysis";
+-		case SealevelriseSEnum : return "SealevelriseS";
++		case SealevelEnum : return "Sealevel";
+ 		case SealevelriseDeltathicknessEnum : return "SealevelriseDeltathickness";
+ 		case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
+ 		case SealevelriseReltolEnum : return "SealevelriseReltol";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20153)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20154)
+@@ -1027,7 +1027,7 @@
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+ 	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+-	      else if (strcmp(name,"SealevelriseS")==0) return SealevelriseSEnum;
++	      else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
+ 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
+ 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+ 	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20153)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20154)
+@@ -75,7 +75,7 @@
+ 	}
+ 
+ 	/*transfer sea-level back to ice caps: */
+-	if(iscoupler)TransferSealevel(femmodel,SealevelriseSEnum);
++	if(iscoupler)TransferSealevel(femmodel,SealevelEnum);
+ } 
+ /*}}}*/
+ void TransferForcing(FemModel* femmodel,int forcingenum){ /*{{{*/
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20153)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20154)
+@@ -1529,7 +1529,7 @@
+ 				name==MaterialsRheologyBEnum ||
+ 				name==MaterialsRheologyBbarEnum ||
+ 				name==MaterialsRheologyNEnum ||
+-				name==SealevelriseSEnum || 
++				name==SealevelEnum || 
+ 				name==SealevelriseDeltathicknessEnum || 
+ 				name==GiaWEnum || 
+ 				name==GiadWdtEnum ||
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20153)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20154)
+@@ -6,6 +6,7 @@
+ classdef slr
+ 	properties (SetAccess=public) 
+ 		deltathickness = NaN;
++		sealevel       = NaN; 
+ 		maxiter        = 0;
+ 		reltol         = 0;
+ 		abstol         = 0;
+@@ -55,6 +56,7 @@
+ 
+ 			if ~ismember(SealevelriseAnalysisEnum(),analyses), return; end
+ 			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
+@@ -70,12 +72,13 @@
+ 
+ 		end % }}}
+ 		function list=defaultoutputs(self,md) % {{{
+-			list = {'SealevelriseS'};
++			list = {'Sealevel'};
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   slr parameters:'));
+ 
+ 			fielddisplay(self,'deltathickness','thickness change (main loading of the slr solution core [m]');
++			fielddisplay(self,'sealevel','current sea level (prior to computation) [m]');
+ 			fielddisplay(self,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)');
+ 			fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
+ 			fielddisplay(self,'maxiter','maximum number of nonlinear iterations');
+@@ -91,6 +94,7 @@
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
++			WriteData(fid,'data',self.sealevel,'enum',SealevelEnum(),'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer');
+@@ -116,6 +120,7 @@
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+ 			writejs1Darray(fid,[modelname '.srl.deltathickness'],self.deltathickness);
++			writejs1Darray(fid,[modelname '.srl.sealevel'],self.sealevel);
+ 			writejsdouble(fid,[modelname '.slr.reltol'],self.reltol);
+ 			writejsdouble(fid,[modelname '.slr.abstol'],self.abstol);
+ 			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+Index: ../trunk-jpl/src/m/enum/SealevelriseSEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseSEnum.m	(revision 20153)
++++ ../trunk-jpl/src/m/enum/SealevelriseSEnum.m	(revision 20154)
+@@ -1,11 +0,0 @@
+-function macro=SealevelriseSEnum()
+-%SEALEVELRISESENUM - Enum of SealevelriseS
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SealevelriseSEnum()
+-
+-macro=StringToEnum('SealevelriseS');
+Index: ../trunk-jpl/src/m/enum/SealevelEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelEnum.m	(revision 20154)
+@@ -0,0 +1,11 @@
++function macro=SealevelEnum()
++%SEALEVELENUM - Enum of Sealevel
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelEnum()
++
++macro=StringToEnum('Sealevel');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20153)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20154)
+@@ -988,7 +988,7 @@
+ function LevelsetfunctionPicardEnum(){ return 984;}
+ function SealevelriseSolutionEnum(){ return 985;}
+ function SealevelriseAnalysisEnum(){ return 986;}
+-function SealevelriseSEnum(){ return 987;}
++function SealevelEnum(){ return 987;}
+ function SealevelriseDeltathicknessEnum(){ return 988;}
+ function SealevelriseMaxiterEnum(){ return 989;}
+ function SealevelriseReltolEnum(){ return 990;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20153)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20154)
+@@ -995,7 +995,7 @@
+ def LevelsetfunctionPicardEnum(): return StringToEnum("LevelsetfunctionPicard")[0]
+ def SealevelriseSolutionEnum(): return StringToEnum("SealevelriseSolution")[0]
+ def SealevelriseAnalysisEnum(): return StringToEnum("SealevelriseAnalysis")[0]
+-def SealevelriseSEnum(): return StringToEnum("SealevelriseS")[0]
++def SealevelEnum(): return StringToEnum("Sealevel")[0]
+ def SealevelriseDeltathicknessEnum(): return StringToEnum("SealevelriseDeltathickness")[0]
+ def SealevelriseMaxiterEnum(): return StringToEnum("SealevelriseMaxiter")[0]
+ def SealevelriseReltolEnum(): return StringToEnum("SealevelriseReltol")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20154-20155.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20154-20155.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20154-20155.diff	(revision 20498)
@@ -0,0 +1,201 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20154)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20155)
+@@ -8,6 +8,7 @@
+ 	%parameterize slr solution:
+ 	%slr loading:  {{{
+ 	md.slr.deltathickness=zeros(md.mesh.numberofvertices,1);
++	md.slr.sealevel=zeros(md.mesh.numberofvertices,1);
+ 	%antarctica
+ 	pos=find(md.mesh.lat <-80);
+ 	md.slr.deltathickness(pos)=-100;
+@@ -61,17 +62,17 @@
+ 	%eustatic run: 
+ 	md.slr.eustatic=1; md.slr.rigid=0; md.slr.elastic=0;
+ 	md=solve(md,SealevelriseSolutionEnum);
+-	Seustatic=md.results.SealevelriseSolution.SealevelriseS;
++	Seustatic=md.results.SealevelriseSolution.Sealevel;
+ 	
+ 	%eustatic + rigid run: 
+ 	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=0;
+ 	md=solve(md,SealevelriseSolutionEnum);
+-	Srigid=md.results.SealevelriseSolution.SealevelriseS;
++	Srigid=md.results.SealevelriseSolution.Sealevel;
+ 	
+ 	%eustatic + rigid + elastic run: 
+ 	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1;
+ 	md=solve(md,SealevelriseSolutionEnum);
+-	Selastic=md.results.SealevelriseSolution.SealevelriseS;
++	Selastic=md.results.SealevelriseSolution.Sealevel;
+ 
+ 
+ 	%Fields and tolerances to track changes
+Index: ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp	(revision 20155)
+@@ -97,6 +97,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+Index: ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp	(revision 20155)
+@@ -104,6 +104,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+Index: ../trunk-jpl/src/c/analyses/MeltingAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MeltingAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/MeltingAnalysis.cpp	(revision 20155)
+@@ -57,6 +57,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20155)
+@@ -147,6 +147,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20155)
+@@ -34,6 +34,7 @@
+ 	iomodel->FetchDataToInput(elements,MaskOceanLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskLandLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,SealevelriseDeltathicknessEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 
+ }/*}}}*/
+ void SealevelriseAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+Index: ../trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp	(revision 20155)
+@@ -57,6 +57,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
+Index: ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp	(revision 20155)
+@@ -40,6 +40,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+Index: ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp	(revision 20155)
+@@ -41,6 +41,7 @@
+ 
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum & iomodel->domaintype!=Domain3DsurfaceEnum){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+Index: ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp	(revision 20155)
+@@ -79,6 +79,7 @@
+ 	}
+ 
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20155)
+@@ -753,6 +753,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20155)
+@@ -96,6 +96,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	if(iomodel->domaintype!=Domain2DhorizontalEnum){
+Index: ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp	(revision 20155)
+@@ -32,6 +32,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,SmbMassBalanceEnum);
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20155)
+@@ -136,6 +136,7 @@
+ 
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,BaseEnum);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+Index: ../trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 20154)
++++ ../trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp	(revision 20155)
+@@ -76,6 +76,7 @@
+ 	}
+ 
+ 	iomodel->FetchDataToInput(elements,SurfaceEnum);
++	iomodel->FetchDataToInput(elements,SealevelEnum,0);
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsGroundediceMeltingRateEnum);
+ 	iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20155-20156.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20155-20156.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20155-20156.diff	(revision 20498)
@@ -0,0 +1,420 @@
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20155)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20156)
+@@ -672,12 +672,13 @@
+ 	basalelement->GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
+ 	IssmDouble* newthickness   = xNew<IssmDouble>(numnodes);
+ 	IssmDouble* deltathickness = xNew<IssmDouble>(numnodes);
+-	IssmDouble* newbed         = xNew<IssmDouble>(numnodes);
++	IssmDouble* newbase        = xNew<IssmDouble>(numnodes);
+ 	IssmDouble* newsurface     = xNew<IssmDouble>(numnodes);
+ 	IssmDouble* oldthickness   = xNew<IssmDouble>(numnodes);
+-	IssmDouble* oldbed         = xNew<IssmDouble>(numnodes);
++	IssmDouble* oldbase        = xNew<IssmDouble>(numnodes);
+ 	IssmDouble* oldsurface     = xNew<IssmDouble>(numnodes);
+ 	IssmDouble* phi            = xNew<IssmDouble>(numnodes);
++	IssmDouble* sealevel       = xNew<IssmDouble>(numnodes);
+ 
+ 	/*Use the dof list to index into the solution vector: */
+ 	basalelement->FindParam(&minthickness,MasstransportMinThicknessEnum);
+@@ -688,14 +689,14 @@
+ 		if(newthickness[i]<minthickness) newthickness[i]=minthickness;
+ 	}
+ 
+-	/*Get previous bed, thickness and surface*/
+-	basalelement->GetInputListOnNodes(&oldbed[0],BaseEnum);
++	/*Get previous base, thickness, surfac and current sealevel:*/
++	basalelement->GetInputListOnNodes(&oldbase[0],BaseEnum);
+ 	basalelement->GetInputListOnNodes(&oldsurface[0],SurfaceEnum);
+ 	basalelement->GetInputListOnNodes(&oldthickness[0],ThicknessEnum);
+ 	basalelement->GetInputListOnNodes(&phi[0],MaskGroundediceLevelsetEnum);
++	basalelement->GetInputListOnNodes(&sealevel[0],SealevelEnum);
+ 
+-	
+-	/*What is the delta thickness, useful for Sea-level rise:*/
++	/*What is the delta thickness forcing the sea-level rise core: */
+ 	for(i=0;i<numnodes;i++) deltathickness[i]=newthickness[i]-oldthickness[i];
+ 
+ 	/*Find MasstransportHydrostaticAdjustment to figure out how to update the geometry:*/
+@@ -704,19 +705,18 @@
+ 	rho_water = basalelement->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 
+ 	for(i=0;i<numnodes;i++) {
+-		/*If shelf: hydrostatic equilibrium*/
+-		if (phi[i]>0.){
+-			newsurface[i] = oldbed[i]+newthickness[i]; //surface = oldbed + newthickness
+-			newbed[i]     = oldbed[i];                 //same bed: do nothing
++		if (phi[i]>0.){ //this is an ice sheet: just add thickness to base.
++			newsurface[i] = oldbase[i]+newthickness[i]; //surface = oldbase + newthickness
++			newbase[i]     = oldbase[i];                 //same base: do nothing
+ 		}
+-		else{ //this is an ice shelf
++		else{ //this is an ice shelf: hydrostatic equilibrium*/
+ 			if(hydroadjustment==AbsoluteEnum){
+-				newsurface[i] = newthickness[i]*(1-rho_ice/rho_water);
+-				newbed[i]     = newthickness[i]*(-rho_ice/rho_water);
++				newsurface[i] = newthickness[i]*(1-rho_ice/rho_water)+sealevel[i];
++				newbase[i]     = newthickness[i]*(-rho_ice/rho_water)+sealevel[i];
+ 			}
+ 			else if(hydroadjustment==IncrementalEnum){
+-				newsurface[i] = oldsurface[i]+(1.0-rho_ice/rho_water)*(newthickness[i]-oldthickness[i]); //surface = oldsurface + (1-di) * dH
+-				newbed[i]     = oldbed[i]-rho_ice/rho_water*(newthickness[i]-oldthickness[i]); //bed               = oldbed + di * dH
++				newsurface[i] = oldsurface[i]+(1.0-rho_ice/rho_water)*(newthickness[i]-oldthickness[i])+sealevel[i]; //surface = oldsurface + (1-di) * dH
++				newbase[i]     = oldbase[i]-rho_ice/rho_water*(newthickness[i]-oldthickness[i])+sealevel[i]; //base               = oldbed + di * dH
+ 			}
+ 			else _error_("Hydrostatic adjustment " << hydroadjustment << " (" << EnumToStringx(hydroadjustment) << ") not supported yet");
+ 		}
+@@ -726,15 +726,15 @@
+ 	element->AddBasalInput(ThicknessEnum,newthickness,P1Enum);
+ 	element->AddBasalInput(SealevelriseDeltathicknessEnum,deltathickness,P1Enum);
+ 	element->AddBasalInput(SurfaceEnum,newsurface,P1Enum);
+-	element->AddBasalInput(BaseEnum,newbed,P1Enum);
++	element->AddBasalInput(BaseEnum,newbase,P1Enum);
+ 
+ 	/*Free ressources:*/
+ 	xDelete<IssmDouble>(newthickness);
+-	xDelete<IssmDouble>(newbed);
++	xDelete<IssmDouble>(newbase);
+ 	xDelete<IssmDouble>(newsurface);
+ 	xDelete<IssmDouble>(oldthickness);
+ 	xDelete<IssmDouble>(deltathickness);
+-	xDelete<IssmDouble>(oldbed);
++	xDelete<IssmDouble>(oldbase);
+ 	xDelete<IssmDouble>(oldsurface);
+ 	xDelete<IssmDouble>(phi);
+ 	xDelete<int>(doflist);
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20155)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20156)
+@@ -1609,7 +1609,7 @@
+ 
+ 	/*Intermediaries*/
+ 	int         dim,domaintype;
+-	IssmDouble  Jdet,thickness,bed,water_pressure,ice_pressure;
++	IssmDouble  Jdet,thickness,base,sealevel,water_pressure,ice_pressure;
+ 	IssmDouble  surface_under_water,base_under_water,pressure;
+ 	IssmDouble *xyz_list = NULL;
+ 	IssmDouble *xyz_list_front = NULL;
+@@ -1634,6 +1634,7 @@
+ 	/*Retrieve all inputs and parameters*/
+ 	Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);
+ 	Input* base_input       = element->GetInput(BaseEnum);       _assert_(base_input);
++	Input* sealevel_input       = element->GetInput(SealevelEnum);       _assert_(sealevel_input);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	IssmDouble gravity     = element->GetMaterialParameter(ConstantsGEnum);
+@@ -1647,12 +1648,13 @@
+ 
+ 		gauss->GaussPoint(ig);
+ 		thickness_input->GetInputValue(&thickness,gauss);
+-		base_input->GetInputValue(&bed,gauss);
++		sealevel_input->GetInputValue(&sealevel,gauss);
++		base_input->GetInputValue(&base,gauss);
+ 		element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss);
+ 		element->NodalFunctions(basis,gauss);
+ 
+-		surface_under_water = min(0.,thickness+bed); // 0 if the top of the glacier is above water level
+-		base_under_water    = min(0.,bed);           // 0 if the bottom of the glacier is above water level
++		surface_under_water = min(0.,thickness+base-sealevel); // 0 if the top of the glacier is above water level
++		base_under_water    = min(0.,base-sealevel);           // 0 if the bottom of the glacier is above water level
+ 		water_pressure = 1.0/2.0*gravity*rho_water*(surface_under_water*surface_under_water - base_under_water*base_under_water);
+ 		ice_pressure   = 1.0/2.0*gravity*rho_ice*thickness*thickness;
+ 		pressure = ice_pressure + water_pressure;
+@@ -2069,7 +2071,7 @@
+ 	if(!element->IsIcefront()) return NULL;
+ 
+ 	/*Intermediaries*/
+-	IssmDouble  Jdet,thickness,bed,water_pressure,ice_pressure;
++	IssmDouble  Jdet,thickness,bed,sealevel,water_pressure,ice_pressure;
+ 	IssmDouble  surface_under_water,base_under_water,pressure;
+ 	IssmDouble *xyz_list = NULL;
+ 	IssmDouble *xyz_list_front = NULL;
+@@ -2085,6 +2087,7 @@
+ 	/*Retrieve all inputs and parameters*/
+ 	Input* thickness_input = element->GetInput(ThicknessEnum); _assert_(thickness_input);
+ 	Input* base_input       = element->GetInput(BaseEnum);       _assert_(base_input);
++	Input* sealevel_input       = element->GetInput(SealevelEnum);       _assert_(sealevel_input);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	IssmDouble gravity     = element->GetMaterialParameter(ConstantsGEnum);
+@@ -2099,11 +2102,12 @@
+ 		gauss->GaussPoint(ig);
+ 		thickness_input->GetInputValue(&thickness,gauss);
+ 		base_input->GetInputValue(&bed,gauss);
++		sealevel_input->GetInputValue(&sealevel,gauss);
+ 		element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss);
+ 		element->NodalFunctions(basis,gauss);
+ 
+-		surface_under_water = min(0.,thickness+bed); // 0 if the top of the glacier is above water level
+-		base_under_water    = min(0.,bed);           // 0 if the bottom of the glacier is above water level
++		surface_under_water = min(0.,thickness+bed-sealevel); // 0 if the top of the glacier is above water level
++		base_under_water    = min(0.,bed-sealevel);           // 0 if the bottom of the glacier is above water level
+ 		water_pressure = 1.0/2.0*gravity*rho_water*(surface_under_water*surface_under_water - base_under_water*base_under_water);
+ 		ice_pressure   = 1.0/2.0*gravity*rho_ice*thickness*thickness;
+ 		pressure = ice_pressure + water_pressure;
+@@ -2583,7 +2587,7 @@
+ 
+ 	/*Intermediaries*/
+ 	int         dim;
+-	IssmDouble  Jdet,surface,z,water_pressure,ice_pressure;
++	IssmDouble  Jdet,surface,sealevel,z,water_pressure,ice_pressure;
+ 	IssmDouble  surface_under_water,base_under_water,pressure;
+ 	IssmDouble* xyz_list       = NULL;
+ 	IssmDouble* xyz_list_front = NULL;
+@@ -2603,6 +2607,7 @@
+ 
+ 	/*Retrieve all inputs and parameters*/
+ 	Input* surface_input = element->GetInput(SurfaceEnum); _assert_(surface_input);
++	Input* sealevel_input       = element->GetInput(SealevelEnum);       _assert_(sealevel_input);
+ 	IssmDouble rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice   = element->GetMaterialParameter(MaterialsRhoIceEnum);
+ 	IssmDouble gravity   = element->GetMaterialParameter(ConstantsGEnum);
+@@ -2621,12 +2626,13 @@
+ 
+ 		gauss->GaussPoint(ig);
+ 		surface_input->GetInputValue(&surface,gauss);
++		sealevel_input->GetInputValue(&sealevel,gauss);
+ 		if(dim==3) z=element->GetZcoord(xyz_list,gauss);
+ 		else       z=element->GetYcoord(xyz_list,gauss);
+ 		element->NodalFunctions(basis,gauss);
+ 		element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss);
+ 
+-		water_pressure = rho_water*gravity*min(0.,z);//0 if the gaussian point is above water level
++		water_pressure = rho_water*gravity*min(0.,z-sealevel);//0 if the gaussian point is above water level
+ 		ice_pressure   = rho_ice*gravity*(surface-z);
+ 		pressure       = ice_pressure + water_pressure;
+ 
+@@ -3810,7 +3816,7 @@
+ 
+ 	/*Intermediaries*/
+ 	int         i,dim;
+-	IssmDouble  Jdet,pressure,surface,z;
++	IssmDouble  Jdet,pressure,surface,sealevel,z;
+ 	IssmDouble	normal[3];
+ 	IssmDouble *xyz_list       = NULL;
+ 	IssmDouble *xyz_list_front = NULL;
+@@ -3842,6 +3848,7 @@
+ 	element->GetIcefrontCoordinates(&xyz_list_front,xyz_list,MaskIceLevelsetEnum);
+ 	element->NormalSection(&normal[0],xyz_list_front);
+ 	Input* surface_input  = element->GetInput(SurfaceEnum); _assert_(surface_input);
++	Input* sealevel_input       = element->GetInput(SealevelEnum);       _assert_(sealevel_input);
+ 	IssmDouble  rho_water = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble  gravity   = element->GetMaterialParameter(ConstantsGEnum);
+ 
+@@ -3858,9 +3865,10 @@
+ 		element->JacobianDeterminantSurface(&Jdet,xyz_list_front,gauss);
+ 		element->NodalFunctionsVelocity(vbasis,gauss);
+ 		surface_input->GetInputValue(&surface,gauss);
++		sealevel_input->GetInputValue(&sealevel,gauss);
+ 		if(dim==3) z=element->GetZcoord(xyz_list,gauss);
+ 		else       z=element->GetYcoord(xyz_list,gauss);
+-		pressure = rho_water*gravity*min(0.,z);//0 if the gaussian point is above water level
++		pressure = rho_water*gravity*min(0.,z-sealevel);//0 if the gaussian point is above water level
+ 
+ 		for (int i=0;i<vnumnodes;i++){
+ 			pe->values[dim*i+0]+= pressure*Jdet*gauss->weight*normal[0]*vbasis[i];
+Index: ../trunk-jpl/src/c/classes/Loads/Friction.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 20155)
++++ ../trunk-jpl/src/c/classes/Loads/Friction.cpp	(revision 20156)
+@@ -66,7 +66,7 @@
+ 	IssmDouble  drag_p,drag_q;
+ 	IssmDouble  Neff;
+ 	IssmDouble  drag_coefficient;
+-	IssmDouble  bed,thickness;
++	IssmDouble  bed,thickness,sealevel;
+ 	IssmDouble  alpha_complement;
+ 
+ 	/*Recover parameters: */
+@@ -74,6 +74,7 @@
+ 	element->GetInputValue(&drag_q,FrictionQEnum);
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+ 	element->GetInputValue(&bed, gauss,BaseEnum);
++	element->GetInputValue(&sealevel, gauss,SealevelEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
+@@ -84,7 +85,7 @@
+ 	s=1./drag_p;
+ 
+ 	//From bed and thickness, compute effective pressure when drag is viscous:
+-	Neff=gravity*(rho_ice*thickness+rho_water*bed);
++	Neff=gravity*(rho_ice*thickness+rho_water*(bed-sealevel));
+ 	if(Neff<0)Neff=0;
+ 
+ 	//We need the velocity magnitude to evaluate the basal stress:
+@@ -230,7 +231,7 @@
+ 	IssmDouble  r,s;
+ 	IssmDouble  drag_p, drag_q;
+ 	IssmDouble  Neff;
+-	IssmDouble  thickness,base,bed,floatation_thickness;
++	IssmDouble  thickness,base,bed,floatation_thickness,sealevel;
+ 	IssmDouble  vx,vy,vz,vmag;
+ 	IssmDouble  drag_coefficient,drag_coefficient_coulomb;
+ 	IssmDouble  alpha2,alpha2_coulomb;
+@@ -240,6 +241,7 @@
+ 	element->GetInputValue(&drag_q,FrictionQEnum);
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+ 	element->GetInputValue(&base, gauss,BaseEnum);
++	element->GetInputValue(&sealevel, gauss,SealevelEnum);
+ 	element->GetInputValue(&bed, gauss,BedEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum);
+@@ -252,7 +254,7 @@
+ 	s=1./drag_p;
+ 
+ 	//From base and thickness, compute effective pressure when drag is viscous:
+-	Neff=gravity*(rho_ice*thickness+rho_water*base);
++	Neff=gravity*(rho_ice*thickness+rho_water*(base-sealevel));
+ 	if(Neff<0)Neff=0;
+ 
+ 	switch(dim){
+@@ -406,7 +408,7 @@
+ 	IssmDouble  r,s;
+ 	IssmDouble  drag_p, drag_q;
+ 	IssmDouble  Neff;
+-	IssmDouble  thickness,bed;
++	IssmDouble  thickness,base,sealevel;
+ 	IssmDouble  vx,vy,vz,vmag;
+ 	IssmDouble  drag_coefficient;
+ 	IssmDouble  alpha2;
+@@ -415,7 +417,8 @@
+ 	element->GetInputValue(&drag_p,FrictionPEnum);
+ 	element->GetInputValue(&drag_q,FrictionQEnum);
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+-	element->GetInputValue(&bed, gauss,BaseEnum);
++	element->GetInputValue(&base, gauss,BaseEnum);
++	element->GetInputValue(&sealevel, gauss,SealevelEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
+@@ -425,8 +428,8 @@
+ 	r=drag_q/drag_p;
+ 	s=1./drag_p;
+ 
+-	//From bed and thickness, compute effective pressure when drag is viscous:
+-	Neff=gravity*(rho_ice*thickness+rho_water*bed);
++	//From base and thickness, compute effective pressure when drag is viscous:
++	Neff=gravity*(rho_ice*thickness+rho_water*(base-sealevel));
+ 	if(Neff<0)Neff=0;
+ 
+ 	switch(dim){
+@@ -466,7 +469,7 @@
+ 	IssmDouble  r,s;
+ 	IssmDouble  drag_p, drag_q;
+ 	IssmDouble  Neff,F;
+-	IssmDouble  thickness,bed;
++	IssmDouble  thickness,bed,sealevel;
+ 	IssmDouble  vx,vy,vz,vmag;
+ 	IssmDouble  drag_coefficient,water_layer;
+ 	IssmDouble  alpha2;
+@@ -477,6 +480,7 @@
+ 	element->GetInputValue(&drag_q,FrictionQEnum);
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+ 	element->GetInputValue(&bed, gauss,BaseEnum);
++	element->GetInputValue(&sealevel, gauss,SealevelEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	element->GetInputValue(&water_layer, gauss,FrictionWaterLayerEnum);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+@@ -489,7 +493,7 @@
+ 
+ 	//From bed and thickness, compute effective pressure when drag is viscous:
+ 	if(bed>0) bed=0;
+-	if(water_layer==0) Neff=gravity*rho_ice*thickness+gravity*rho_water*bed;
++	if(water_layer==0) Neff=gravity*rho_ice*thickness+gravity*rho_water*(bed-sealevel);
+ 	else if(water_layer>0) Neff=gravity*rho_ice*thickness*F;
+ 	else _error_("negative water layer thickness");
+ 	if(Neff<0) Neff=0;
+@@ -598,13 +602,14 @@
+ 	IssmDouble  pressure_ice,pressure_water;
+ 	IssmDouble  Neff;
+ 	IssmDouble  drag_coefficient;
+-	IssmDouble  bed,thickness,head;
++	IssmDouble  bed,thickness,head,sealevel;
+ 	IssmDouble  alpha2;
+ 
+ 	/*Recover parameters: */
+ 	element->GetInputValue(&thickness, gauss,ThicknessEnum);
+ 	element->GetInputValue(&bed, gauss,BaseEnum);
+ 	element->GetInputValue(&head, gauss,HydrologyHeadEnum);
++	element->GetInputValue(&sealevel, gauss,SealevelEnum);
+ 	element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
+ 	IssmDouble rho_water   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
+ 	IssmDouble rho_ice     = element->GetMaterialParameter(MaterialsRhoIceEnum);
+@@ -612,7 +617,7 @@
+ 
+ 	//From bed and thickness, compute effective pressure when drag is viscous:
+ 	pressure_ice   = rho_ice*gravity*thickness;
+-	pressure_water = rho_water*gravity*(head-bed);
++	pressure_water = rho_water*gravity*(head-bed+sealevel);
+ 	Neff=pressure_ice-pressure_water;
+ 	if(Neff<0.) Neff=0.;
+ 
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20155)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20156)
+@@ -1652,6 +1652,7 @@
+ 	IssmDouble* s       = xNew<IssmDouble>(numvertices);
+ 	IssmDouble* b       = xNew<IssmDouble>(numvertices);
+ 	IssmDouble* r       = xNew<IssmDouble>(numvertices);
++	IssmDouble* sl      = xNew<IssmDouble>(numvertices);
+ 
+ 	/*Recover info at the vertices: */
+ 	parameters->FindParam(&migration_style,GroundinglineMigrationEnum);
+@@ -1660,6 +1661,7 @@
+ 	GetInputListOnVertices(&s[0],SurfaceEnum);
+ 	GetInputListOnVertices(&b[0],BaseEnum);
+ 	GetInputListOnVertices(&r[0],BedEnum);
++	GetInputListOnVertices(&sl[0],SealevelEnum);
+ 	GetInputListOnVertices(&phi[0],MaskGroundediceLevelsetEnum);
+ 	rho_water   = matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
+ 	rho_ice     = matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+@@ -1683,16 +1685,16 @@
+ 		/*Ice sheet: if hydrostatic bed above bathymetry, ice sheet starts to unground, elso do nothing */
+ 		/*Change only if AggressiveMigration or if the ice sheet is in contact with the ocean*/
+ 		else{ // phi>0
+-			bed_hydro=-density*h[i];
++			bed_hydro=-density*h[i]+sl[i];
+ 			if (bed_hydro>r[i]){
+ 				/*Unground only if the element is connected to the ice shelf*/
+ 				if(migration_style==AggressiveMigrationEnum || migration_style==SubelementMigrationEnum || migration_style==SubelementMigration2Enum){
+-					s[i]        = (1-density)*h[i];
+-					b[i]        = -density*h[i];
++					s[i]        = (1-density)*h[i]+sl[i];
++					b[i]        = -density*h[i]+sl[i];
+ 				}
+ 				else if(migration_style==SoftMigrationEnum && phi_ungrounding[vertices[i]->Pid()]<0.){
+-					s[i]        = (1-density)*h[i];
+-					b[i]        = -density*h[i];
++					s[i]        = (1-density)*h[i]+sl[i];
++					b[i]        = -density*h[i]+sl[i];
+ 				}
+ 				else{
+ 					if(migration_style!=SoftMigrationEnum && migration_style!=ContactEnum && migration_style!=GroundingOnlyEnum) _error_("Error: migration should be Aggressive, Soft, Subelement, Contact or GroundingOnly");
+@@ -1704,12 +1706,12 @@
+ 	/*Recalculate phi*/
+ 	for(i=0;i<numvertices;i++){
+ 		if(migration_style==SoftMigrationEnum){
+-			bed_hydro=-density*h[i];
++			bed_hydro=-density*h[i]+sl[i];
+ 			if(phi[i]<0. || bed_hydro<=r[i] || phi_ungrounding[vertices[i]->Pid()]<0.){
+-				phi[i]=h[i]+r[i]/density;
++				phi[i]=h[i]+(r[i]-sl[i])/density;
+ 			}
+ 		}
+-		else if(migration_style!=ContactEnum) phi[i]=h[i]+r[i]/density;
++		else if(migration_style!=ContactEnum) phi[i]=h[i]+(r[i]-sl[i])/density;
+ 		else{
+ 			/*do nothing*/
+ 		}
+@@ -1726,6 +1728,7 @@
+ 	xDelete<IssmDouble>(r);
+ 	xDelete<IssmDouble>(b);
+ 	xDelete<IssmDouble>(s);
++	xDelete<IssmDouble>(sl);
+ 	xDelete<IssmDouble>(h);
+ 
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20156-20157.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20156-20157.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20156-20157.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20156)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20157)
+@@ -20,7 +20,7 @@
+ 	love = dlmread('../Data/love_numbers_10k.txt');
+ 	nlov=101;
+ 	md.slr.love_h = love(1:nlov,2);  % radial displacement (height) 
+-	md.slr.love_k = love(1:nlov,4);  % gravitational potential (phi) 
++	md.slr.love_k = love(1:nlov,3);  % gravitational potential (phi) 
+ 
+ 	%}}}
+ 	%mask:  {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-20157-20158.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20157-20158.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20157-20158.diff	(revision 20498)
@@ -0,0 +1,229 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20158)
+@@ -0,0 +1,94 @@
++#Test Name: EarthSlr
++#Earth Sea Level Rise test. Uses the mesh3dsurface geometry.
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++from parameterize import *
++from solve import *
++
++#mesh earth: 
++md=model() 
++md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700) #500 km resolution mesh
++
++#parameterize slr solution:
++#slr loading:  {{{
++md.slr.deltathickness=zeros(md.mesh.numberofvertices,1)
++#antarctica
++pos=numpy.nonzero(md.mesh.lat <-80)
++md.slr.deltathickness[pos]=-100
++#greenlnd 
++pos=numpy.nonzero(md.mesh.lat > 70 &  md.mesh.lat < 80 & md.mesh.long>-60 & md.mesh.long<-30)
++md.slr.deltathickness[pos]=-100
++
++#elastic loading from love numbers: 
++love = dlmread('../Data/love_numbers_10k.txt')
++nlov=101
++md.slr.love_h = love(1:nlov,2)  # radial displacement (height) 
++md.slr.love_k = love(1:nlov,4)  # gravitational potential (phi) 
++
++#}}}
++#mask:  {{{
++md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 
++mask=gmtmask(md.mesh.lat,md.mesh.long) 
++
++icemask=ones(md.mesh.numberofvertices,1)
++pos=find(mask==0)
++icemask(pos)=-1
++pos=find(sum(mask(md.mesh.elements),2)<3)
++icemask(md.mesh.elements(pos))=-1
++
++md.mask.ice_levelset=icemask
++md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1)
++pos=numpy.nonzero(md.mask.ice_levelset==1)
++md.mask.ocean_levelset(pos)=1
++
++#make sure that the ice level set is all inclusive:
++md.mask.land_levelset=zeros(md.mesh.numberofvertices,1)
++md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1) 
++# }}}
++#geometry:  {{{
++di=md.materials.rho_ice/md.materials.rho_water
++md.geometry.thickness=ones(md.mesh.numberofvertices,1)
++md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1)
++md.geometry.base=md.geometry.surface-md.geometry.thickness
++md.geometry.bed=md.geometry.base
++# }}}
++#materials:  {{{
++md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1)
++md.materials.rheology_B=paterson(md.initialization.temperature)
++md.materials.rheology_n=3*ones(md.mesh.numberofelements,1)
++# }}}
++#Miscellaneous: {{{
++md.miscellaneous.name='slr'
++# }}}
++#Solution parameters:{{{
++md.slr.reltol=NaN
++md.slr.abstol=1e-3
++#}}}
++
++#eustatic run: 
++md.slr.eustatic=1
++md.slr.rigid=0
++md.slr.elastic=0
++md=solve(md,SealevelriseSolutionEnum())
++Seustatic=md.results.SealevelriseSolution.SealevelriseS
++
++#eustatic + rigid run: 
++md.slr.eustatic=1
++md.slr.rigid=1
++md.slr.elastic=0
++md=solve(md,SealevelriseSolutionEnum())
++Srigid=md.results.SealevelriseSolution.SealevelriseS
++
++#eustatic + rigid + elastic run: 
++md.slr.eustatic=1
++md.slr.rigid=1
++md.slr.elastic=1
++md=solve(md,SealevelriseSolutionEnum())
++Selastic=md.results.SealevelriseSolution.SealevelriseS
++
++#Fields and tolerances to track changes
++field_names     =['Eustatic','Rigid','Elastic']
++field_tolerances=[1e-13,1e-13,1e-13]
++field_values=[Seustatic,Srigid,Selastic]
+Index: ../trunk-jpl/src/m/classes/slr.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/slr.py	(revision 20158)
+@@ -0,0 +1,125 @@
++from fielddisplay import fielddisplay
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++from checkfield import checkfield
++from WriteData import WriteData
++
++class slr(object):
++	"""
++	SLR class definition
++	
++		Usage:
++		  slr=slr();
++	"""
++	
++	def __init__(self): # {{{
++		self.deltathickness 	= NaN
++		self.maxiter			= 0
++		self.reltol       		= 0
++		self.bstol         		= 0
++		self.love_h         	= 0 #provided by PREM model()
++		self.love_k         	= 0 #ideam
++		self.rigid         		= 0
++		self.elastic         	= 0
++		self.eustatic         	= 0
++		self.degacc         	= 0
++		self.requested_outputs 	= []
++		self.transitions    	= []
++		
++		#set defaults
++		self.setdefaultparameters()
++		#}}}
++	def __repr__(self): # {{{
++			string='   slr parameters:'
++			string="%s\n%s"%(string,fielddisplay(self,'deltathickness','thickness change (main loading of the slr solution core [m]'))
++			string="%s\n%s"%(string,fielddisplay(self,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)'))
++			string="%s\n%s"%(string,fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied'))
++			string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations'))
++			string="%s\n%s"%(string,fielddisplay(self,'love_h','love load number for radial displacement'))
++			string="%s\n%s"%(string,fielddisplay(self,'love_k','love load number for gravitational potential perturbation'))
++			string="%s\n%s"%(string,fielddisplay(self,'rigid','rigid earth graviational potential perturbation'))
++			string="%s\n%s"%(string,fielddisplay(self,'elastic','elastic earth graviational potential perturbation'))
++			string="%s\n%s"%(string,fielddisplay(self,'eustatic','eustatic sea level rise'))
++			string="%s\n%s"%(string,fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions'))
++			string="%s\n%s"%(string,fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps'))
++			string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
++
++			return string
++		# }}}
++	def setdefaultparameters(self): # {{{
++		
++		#Convergence criterion: absolute, relative and residual
++		self.reltol=NaN #default
++		self.abstol=0.001 #1 mm of sea level rise
++
++		#maximum of non-linear iterations.
++		self.maxiter=10
++
++		#computational flags: 
++		self.rigid=1
++		self.elastic=1
++		self.eustatic=1
++
++		#numerical discretization accuracy
++		self.degacc=.01
++		
++		#output default:
++		self.requested_outputs=['default']
++
++		#transitions should be a cell array of vectors: 
++		self.transitions=[]
++
++		#default output
++		self.requested_outputs=['default']
++		return self
++		#}}}
++		
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (solution!=SealevelriseAnalysisEnum()):
++			return md
++
++		md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1])
++		md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','slr.reltol','size',[1,1])
++		md = checkfield(md,'fieldname','slr.abstol','size',[1,1])
++		md = checkfield(md,'fieldname','slr.maxiter','size',[1,1],'>=',1)
++		md = checkfield(md,'fieldname','slr.degacc','size',[1,1],'>=',1e-10)
++		md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1)
++
++		#check that love numbers are provided at the same level of accuracy: 
++		if (size(self.love_h,1) != size(self.love_k,1)),
++			error('slr error message: love numbers should be provided at the same level of accuracy')
++		
++		return md
++	# }}}
++	def defaultoutputs(self,md) # {{{
++		return ['SealevelriseS']
++	# }}}
++	def marshall(self,md,fid) # {{{
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray')
++		
++		#process requested outputs
++		outputs = self.requested_outputs
++		pos = find(ismember(outputs,'default'))
++		if (!isempty(pos))
++			outputs(pos) = []                         #remove 'default' from outputs
++			outputs      = [outputs defaultoutputs(self,md)] #add defaults
++		WriteData(fid,'data',outputs,'enum',SealevelriseRequestedOutputsEnum,'format','StringArray')
++
++	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20158-20159.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20158-20159.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20158-20159.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20158)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20159)
+@@ -94,7 +94,7 @@
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
+-			WriteData(fid,'data',self.sealevel,'enum',SealevelEnum(),'format','DoubleMat','mattype',1);
++			WriteData(fid,'data',self.sealevel,'mattype',1,'format','DoubleMat','enum',SealevelEnum(),'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20159-20160.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20159-20160.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20159-20160.diff	(revision 20498)
@@ -0,0 +1,111 @@
+Index: ../trunk-jpl/src/m/classes/slr.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.py	(revision 20159)
++++ ../trunk-jpl/src/m/classes/slr.py	(revision 20160)
+@@ -16,9 +16,10 @@
+ 	
+ 	def __init__(self): # {{{
+ 		self.deltathickness 	= NaN
++		self.sealevel			= NaN
+ 		self.maxiter			= 0
+ 		self.reltol       		= 0
+-		self.bstol         		= 0
++		self.abstol         		= 0
+ 		self.love_h         	= 0 #provided by PREM model()
+ 		self.love_k         	= 0 #ideam
+ 		self.rigid         		= 0
+@@ -75,14 +76,14 @@
+ 		self.requested_outputs=['default']
+ 		return self
+ 		#}}}
+-		
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		#Early return
+ 		if (solution!=SealevelriseAnalysisEnum()):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1])
++		md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 		md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','slr.reltol','size',[1,1])
+@@ -92,16 +93,17 @@
+ 		md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1)
+ 
+ 		#check that love numbers are provided at the same level of accuracy: 
+-		if (size(self.love_h,1) != size(self.love_k,1)),
++		if (size(self.love_h,0) != size(self.love_k,0)):
+ 			error('slr error message: love numbers should be provided at the same level of accuracy')
+ 		
+ 		return md
+ 	# }}}
+-	def defaultoutputs(self,md) # {{{
+-		return ['SealevelriseS']
++	def defaultoutputs(self,md): # {{{
++		return ['Sealevel']
+ 	# }}}
+-	def marshall(self,md,fid) # {{{
++	def marshall(self,md,fid): # {{{
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1)
++		WriteData(fid,'data',self.sealevel,'mattype',1,'format','DoubleMat','enum',SealevelEnum(),'timeserieslength',md.mesh.numberofvertices+1)
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer')
+@@ -113,13 +115,12 @@
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray')
+-		
++	
+ 		#process requested outputs
+ 		outputs = self.requested_outputs
+-		pos = find(ismember(outputs,'default'))
+-		if (!isempty(pos))
+-			outputs(pos) = []                         #remove 'default' from outputs
+-			outputs      = [outputs defaultoutputs(self,md)] #add defaults
+-		WriteData(fid,'data',outputs,'enum',SealevelriseRequestedOutputsEnum,'format','StringArray')
+-
++		indices = [i for i, x in enumerate(outputs) if x == 'default']
++		if len(indices) > 0:
++			outputscopy=outputs[0:max(0,indices[0]-1)]+self.defaultoutputs(md)+outputs[indices[0]+1:]
++			outputs    =outputscopy
++		WriteData(fid,'data',outputs,'enum',SealevelriseRequestedOutputsEnum(),'format','StringArray')
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 20159)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 20160)
+@@ -24,6 +24,7 @@
+ from timestepping import timestepping
+ from initialization import initialization
+ from rifts import rifts
++from slr import slr
+ from debug import debug
+ from verbose import verbose
+ from settings import settings
+@@ -84,6 +85,7 @@
+ 		self.timestepping     = timestepping()
+ 		self.initialization   = initialization()
+ 		self.rifts            = rifts()
++		self.slr              = slr()
+ 
+ 		self.debug            = debug()
+ 		self.verbose          = verbose()
+@@ -128,6 +130,7 @@
+ 		        'timestepping',\
+ 		        'initialization',\
+ 		        'rifts',\
++		        'slr',\
+ 		        'debug',\
+ 		        'verbose',\
+ 		        'settings',\
+@@ -168,6 +171,7 @@
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("timestepping","[%s,%s]" % ("1x1",obj.timestepping.__class__.__name__),"time stepping for transient models"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("initialization","[%s,%s]" % ("1x1",obj.initialization.__class__.__name__),"initial guess/state"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("rifts","[%s,%s]" % ("1x1",obj.rifts.__class__.__name__),"rifts properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("slr","[%s,%s]" % ("1x1",obj.slr.__class__.__name__),"slr forcings"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("debug","[%s,%s]" % ("1x1",obj.debug.__class__.__name__),"debugging tools (valgrind, gprof)"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("verbose","[%s,%s]" % ("1x1",obj.verbose.__class__.__name__),"verbosity level in solve"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("settings","[%s,%s]" % ("1x1",obj.settings.__class__.__name__),"settings properties"))
Index: /issm/oecreview/Archive/19101-20495/ISSM-20160-20161.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20160-20161.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20160-20161.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20160)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20161)
+@@ -14,6 +14,7 @@
+ #parameterize slr solution:
+ #slr loading:  {{{
+ md.slr.deltathickness=zeros(md.mesh.numberofvertices,1)
++md.slr.sealevel=zeros(md.mesh.numberofvertices,1);
+ #antarctica
+ pos=numpy.nonzero(md.mesh.lat <-80)
+ md.slr.deltathickness[pos]=-100
Index: /issm/oecreview/Archive/19101-20495/ISSM-20161-20162.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20161-20162.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20161-20162.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20161)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20162)
+@@ -26,7 +26,7 @@
+ love = dlmread('../Data/love_numbers_10k.txt')
+ nlov=101
+ md.slr.love_h = love(1:nlov,2)  # radial displacement (height) 
+-md.slr.love_k = love(1:nlov,4)  # gravitational potential (phi) 
++md.slr.love_k = love(1:nlov,3)  # gravitational potential (phi) 
+ 
+ #}}}
+ #mask:  {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-20162-20163.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20162-20163.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20162-20163.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20162)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20163)
+@@ -25,9 +25,9 @@
+ #elastic loading from love numbers: 
+ love = dlmread('../Data/love_numbers_10k.txt')
+ nlov=101
+-md.slr.love_h = love(1:nlov,2)  # radial displacement (height) 
+-md.slr.love_k = love(1:nlov,3)  # gravitational potential (phi) 
+-
++print love
++md.slr.love_h = love[1][1:nlov]  # radial displacement (height) 
++md.slr.love_k = love[2][1:nlov]  # gravitational potential (phi) 
+ #}}}
+ #mask:  {{{
+ md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 
+@@ -35,14 +35,14 @@
+ 
+ icemask=ones(md.mesh.numberofvertices,1)
+ pos=find(mask==0)
+-icemask(pos)=-1
++icemask[pos]=-1
+ pos=find(sum(mask(md.mesh.elements),2)<3)
+-icemask(md.mesh.elements(pos))=-1
++icemask[md.mesh.elements[pos]]=-1
+ 
+ md.mask.ice_levelset=icemask
+ md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1)
+ pos=numpy.nonzero(md.mask.ice_levelset==1)
+-md.mask.ocean_levelset(pos)=1
++md.mask.ocean_levelset[pos]=1
+ 
+ #make sure that the ice level set is all inclusive:
+ md.mask.land_levelset=zeros(md.mesh.numberofvertices,1)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20163-20164.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20163-20164.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20163-20164.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 20163)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 20164)
+@@ -20,7 +20,7 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	1e-09,3.0e-9,3.0e-9,1e-10,1e-13,1e-13,1e-13,...
++	2e-09,3.0e-9,3.0e-9,1e-10,1e-13,1e-13,1e-13,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+ 	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20164-20165.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20164-20165.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20164-20165.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20164)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20165)
+@@ -80,5 +80,5 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ ##                                                                   bamg mesh   FS                     
+-MATLAB_NROPTIONS="'exclude',[218 235 234 243 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
+ PYTHON_NROPTIONS=""
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20165-20166.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20165-20166.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20165-20166.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20165)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20166)
+@@ -14,6 +14,9 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+ 	--with-numthreads=8 \
+ 	--enable-debugging \
+ 	--enable-development'
+@@ -46,13 +49,16 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools install.sh                
+-						matlab    install.sh                
+-						mpich     install-3.0-macosx64.sh    
+-						cmake     install.sh                
+-						m1qn3     install.sh    
+-						petsc     install-3.5-macosx64.sh
+-						triangle  install-macosx64.sh 
++EXTERNALPACKAGES="autotools    install.sh                
++						matlab       install.sh                
++						mpich        install-3.0-macosx64.sh    
++						cmake        install.sh                
++						m1qn3        install.sh    
++						petsc        install-3.5-macosx64.sh
++						triangle     install-macosx64.sh 
++						boost        install.sh                
++						dakota       install-6.2-macosx64.sh  
++						chaco        install.sh 
+ 						shell2junit  install.sh "
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20166-20167.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20166-20167.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20166-20167.diff	(revision 20498)
@@ -0,0 +1,10036 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/love_numbers.m
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/love_numbers.m	(revision 0)
++++ ../trunk-jpl/src/m/boundaryconditions/love_numbers.m	(revision 20167)
+@@ -0,0 +1,10031 @@
++function series=love_numbers(type)
++%LOVE_NUMBERS: provide love numbers (type 'h','k','l','gamma' and 'lambda'
++%			   retrieved from: http://www.srosat.com/iag-jsg/loveNb.php
++%    Usage:   series=love_numbers(type) 
++%             where type is one of 'h','k','l','gamma' and 'lambda'. 
++%
++%    Example:  
++%          love_k=love_numbers('k');
++% 
++
++	%some checks:
++	if nargin~=1, error('love_numbers error message: wrong usage'); end
++
++	if ~( strcmpi(type,'h') | strcmpi(type,'k') | strcmpi(type,'l') | strcmpi(type,'gamma') | strcmpi(type,'lambda') ), 
++		error('type should be one of ''h'',''k'',''l'',''gamma'' and ''lambda''');
++	end
++
++	love_numbers=[...
++	-0.28740059 -0.00000000 0.10141481 1.28740059 0.42519882 0.89858519 0.00000000;
++	-1.00025365 -0.30922675 0.02060926 1.69102690 0.46358648 0.67016399 0.61829668;
++	-1.06243501 -0.19927948 0.06801636 1.86315553 0.55741597 0.73270416 0.56270589;
++	-1.06779588 -0.13649834 0.05667027 1.93129754 0.63672498 0.80683140 0.51132745;
++	-1.10365923 -0.10736896 0.04401221 1.99629027 0.68737906 0.84861883 0.48642259;
++	-1.16440348 -0.09295485 0.03638747 2.07144863 0.72031283 0.87065768 0.47898268;
++	-1.23634156 -0.08469861 0.03202759 2.15164295 0.74355796 0.88327380 0.47955214;
++	-1.31140380 -0.07921412 0.02937593 2.23218968 0.76126493 0.89140995 0.48323250;
++	-1.38582399 -0.07513541 0.02762338 2.31068858 0.77552290 0.89724121 0.48795424;
++	-1.45807465 -0.07187005 0.02638627 2.38620460 0.78744212 0.90174369 0.49291061;
++	-1.52763314 -0.06913154 0.02547640 2.45850160 0.79766475 0.90539206 0.49779422;
++	-1.59437866 -0.06676258 0.02479080 2.52761607 0.80659635 0.90844662 0.50248477;
++	-1.65833071 -0.06466619 0.02426511 2.59366452 0.81451271 0.91106870 0.50693175;
++	-1.71954820 -0.06277732 0.02385464 2.65677088 0.82161167 0.91336804 0.51111243;
++	-1.77809640 -0.06105001 0.02352654 2.71704639 0.82804049 0.91542346 0.51501712;
++	-1.83403970 -0.05945081 0.02325609 2.77458889 0.83391153 0.91729309 0.51864363;
++	-1.88744242 -0.05795502 0.02302469 2.82948740 0.83931209 0.91902029 0.52199490;
++	-1.93837115 -0.05654418 0.02281843 2.88182697 0.84431095 0.92063739 0.52507761;
++	-1.98689666 -0.05520447 0.02262706 2.93169219 0.84896295 0.92216847 0.52790108;
++	-2.03309477 -0.05392545 0.02244322 2.97916932 0.85331225 0.92363132 0.53047654;
++	-2.07704643 -0.05269926 0.02226173 3.02434717 0.85739480 0.92503902 0.53281639;
++	-2.11883714 -0.05151988 0.02207909 3.06731726 0.86124014 0.92640103 0.53493369;
++	-2.15855611 -0.05038274 0.02189307 3.10817337 0.86487276 0.92772419 0.53684176;
++	-2.19629514 -0.04928430 0.02170238 3.14701084 0.86831322 0.92901331 0.53855386;
++	-2.23214747 -0.04822179 0.02150643 3.18392568 0.87157886 0.93027178 0.54008294;
++	-2.26620674 -0.04719301 0.02130509 3.21901373 0.87468453 0.93150190 0.54144148;
++	-2.29856595 -0.04619619 0.02109858 3.25236976 0.87764301 0.93270523 0.54264140;
++	-2.32931659 -0.04522983 0.02088735 3.28408675 0.88046543 0.93388282 0.54369397;
++	-2.35854794 -0.04429270 0.02067197 3.31425524 0.88316156 0.93503533 0.54460979;
++	-2.38634650 -0.04338368 0.02045310 3.34296281 0.88574004 0.93616321 0.54539877;
++	-2.41279547 -0.04250179 0.02023142 3.37029367 0.88820859 0.93726678 0.54607015;
++	-2.43797451 -0.04164613 0.02000761 3.39632839 0.89057416 0.93834626 0.54663248;
++	-2.46195951 -0.04081583 0.01978231 3.42114367 0.89284301 0.93940185 0.54709369;
++	-2.48482241 -0.04001011 0.01955614 3.44481230 0.89502085 0.94043375 0.54746112;
++	-2.50663126 -0.03922817 0.01932966 3.46740309 0.89711291 0.94144217 0.54774153;
++	-2.52745016 -0.03846928 0.01910337 3.48898088 0.89912397 0.94242735 0.54794114;
++	-2.54733938 -0.03773269 0.01887774 3.50960670 0.90105847 0.94338957 0.54806571;
++	-2.56635547 -0.03701769 0.01865317 3.52933779 0.90292050 0.94432915 0.54812051;
++	-2.58455138 -0.03632358 0.01843000 3.54822780 0.90471386 0.94524642 0.54811044;
++	-2.60197665 -0.03564968 0.01820854 3.56632697 0.90644209 0.94614178 0.54803997;
++	-2.61867756 -0.03499532 0.01798905 3.58368224 0.90810850 0.94701563 0.54791326;
++	-2.63469733 -0.03435985 0.01777176 3.60033748 0.90971616 0.94786840 0.54773413;
++	-2.65007629 -0.03374263 0.01755683 3.61633367 0.91126798 0.94870054 0.54750610;
++	-2.66485208 -0.03314303 0.01734443 3.63170905 0.91276665 0.94951253 0.54723245;
++	-2.67905981 -0.03256047 0.01713468 3.64649934 0.91421471 0.95030485 0.54691620;
++	-2.69273222 -0.03199435 0.01692767 3.66073787 0.91561457 0.95107798 0.54656015;
++	-2.70589990 -0.03144411 0.01672347 3.67445580 0.91696845 0.95183242 0.54616691;
++	-2.71859139 -0.03090919 0.01652215 3.68768220 0.91827849 0.95256866 0.54573889;
++	-2.73083334 -0.03038907 0.01632374 3.70044427 0.91954667 0.95328719 0.54527835;
++	-2.74265068 -0.02988323 0.01612826 3.71276745 0.92077487 0.95398851 0.54478739;
++	-2.75406669 -0.02939118 0.01593573 3.72467551 0.92196486 0.95467309 0.54426797;
++	-2.76510320 -0.02891245 0.01574615 3.73619076 0.92311833 0.95534141 0.54372191;
++	-2.77578063 -0.02844656 0.01555950 3.74733406 0.92423685 0.95599393 0.54315095;
++	-2.78611812 -0.02799309 0.01537578 3.75812503 0.92532192 0.95663113 0.54255669;
++	-2.79613364 -0.02755161 0.01519496 3.76858203 0.92637496 0.95725343 0.54194065;
++	-2.80584405 -0.02712170 0.01501701 3.77872235 0.92739730 0.95786128 0.54130424;
++	-2.81526521 -0.02670298 0.01484191 3.78856223 0.92839022 0.95845511 0.54064880;
++	-2.82441204 -0.02629506 0.01466961 3.79811697 0.92935491 0.95903532 0.53997561;
++	-2.83329857 -0.02589759 0.01450009 3.80740098 0.93029251 0.95960232 0.53928586;
++	-2.84193804 -0.02551021 0.01433329 3.81642782 0.93120412 0.96015649 0.53858067;
++	-2.85034293 -0.02513260 0.01416919 3.82521033 0.93209074 0.96069821 0.53786112;
++	-2.85852503 -0.02476443 0.01400773 3.83376061 0.93295337 0.96122784 0.53712821;
++	-2.86649548 -0.02440538 0.01384888 3.84209010 0.93379291 0.96174574 0.53638291;
++	-2.87426481 -0.02405518 0.01369258 3.85020963 0.93461026 0.96225224 0.53562612;
++	-2.88184299 -0.02371352 0.01353880 3.85812947 0.93540625 0.96274768 0.53485873;
++	-2.88923945 -0.02338014 0.01338749 3.86585931 0.93618168 0.96323236 0.53408154;
++	-2.89646316 -0.02305478 0.01323861 3.87340838 0.93693730 0.96370661 0.53329534;
++	-2.90352261 -0.02273718 0.01309211 3.88078542 0.93767383 0.96417071 0.53250089;
++	-2.91042585 -0.02242710 0.01294795 3.88799874 0.93839197 0.96462494 0.53169888;
++	-2.91718054 -0.02212431 0.01280609 3.89505623 0.93909236 0.96506960 0.53089002;
++	-2.92379397 -0.02182859 0.01266648 3.90196538 0.93977564 0.96550493 0.53007493;
++	-2.93027306 -0.02153971 0.01252908 3.90873334 0.94044240 0.96593120 0.52925424;
++	-2.93662439 -0.02125748 0.01239386 3.91536691 0.94109322 0.96634866 0.52842854;
++	-2.94285425 -0.02098169 0.01226077 3.92187256 0.94172863 0.96675754 0.52759839;
++	-2.94896860 -0.02071215 0.01212977 3.92825645 0.94234915 0.96715808 0.52676434;
++	-2.95497314 -0.02044868 0.01200082 3.93452446 0.94295529 0.96755050 0.52592690;
++	-2.96087331 -0.02019110 0.01187388 3.94068220 0.94354752 0.96793501 0.52508656;
++	-2.96667427 -0.01993924 0.01174893 3.94673503 0.94412630 0.96831183 0.52424380;
++	-2.97238097 -0.01969293 0.01162591 3.95268804 0.94469206 0.96868116 0.52339906;
++	-2.97799813 -0.01945201 0.01150481 3.95854612 0.94524521 0.96904318 0.52255277;
++	-2.98353025 -0.01921634 0.01138557 3.96431391 0.94578617 0.96939809 0.52170535;
++	-2.98898162 -0.01898576 0.01126817 3.96999586 0.94631531 0.96974607 0.52085719;
++	-2.99435636 -0.01876014 0.01115257 3.97559622 0.94683300 0.97008729 0.52000868;
++	-2.99965838 -0.01853932 0.01103875 3.98111905 0.94733959 0.97042193 0.51916016;
++	-3.00489143 -0.01832319 0.01092666 3.98656824 0.94783543 0.97075015 0.51831198;
++	-3.01005909 -0.01811161 0.01081628 3.99194748 0.94832084 0.97107211 0.51746448;
++	-3.01516479 -0.01790446 0.01070757 3.99726033 0.94879613 0.97138796 0.51661796;
++	-3.02021180 -0.01770162 0.01060052 4.00251017 0.94926160 0.97169786 0.51577273;
++	-3.02520323 -0.01750298 0.01049508 4.00770025 0.94971755 0.97200194 0.51492908;
++	-3.03014209 -0.01730842 0.01039123 4.01283367 0.95016424 0.97230035 0.51408727;
++	-3.03503122 -0.01711783 0.01028894 4.01791339 0.95060195 0.97259323 0.51324758;
++	-3.03987336 -0.01693111 0.01018819 4.02294225 0.95103094 0.97288070 0.51241024;
++	-3.04467112 -0.01674816 0.01008894 4.02792295 0.95145145 0.97316290 0.51157550;
++	-3.04942699 -0.01656889 0.00999117 4.03285810 0.95186373 0.97343995 0.51074358;
++	-3.05414335 -0.01639319 0.00989485 4.03775017 0.95226799 0.97371196 0.50991471;
++	-3.05882250 -0.01622097 0.00979997 4.04260153 0.95266447 0.97397906 0.50908908;
++	-3.06346660 -0.01605215 0.00970649 4.04741445 0.95305338 0.97424136 0.50826689;
++	-3.06807773 -0.01588664 0.00961439 4.05219109 0.95343492 0.97449897 0.50744832;
++	-3.07265789 -0.01572436 0.00952364 4.05693353 0.95380929 0.97475200 0.50663356;
++	-3.07720897 -0.01556522 0.00943423 4.06164375 0.95417670 0.97500055 0.50582277;
++	-3.08173279 -0.01540916 0.00934613 4.06632364 0.95453731 0.97524472 0.50501611;
++	-3.08623109 -0.01525608 0.00925931 4.07097501 0.95489131 0.97548461 0.50421372;
++	-3.09070551 -0.01510592 0.00917376 4.07559959 0.95523888 0.97572032 0.50341576;
++	-3.09515765 -0.01495861 0.00908946 4.08019904 0.95558018 0.97595193 0.50262236;
++	-3.09958899 -0.01481408 0.00900637 4.08477492 0.95591537 0.97617955 0.50183364;
++	-3.10400100 -0.01467225 0.00892449 4.08932875 0.95624461 0.97640325 0.50104973;
++	-3.10839504 -0.01453308 0.00884379 4.09386196 0.95656806 0.97662313 0.50027073;
++	-3.11277241 -0.01439648 0.00876425 4.09837593 0.95688585 0.97683927 0.49949676;
++	-3.11713438 -0.01426240 0.00868586 4.10287198 0.95719812 0.97705174 0.49872791;
++	-3.12148213 -0.01413079 0.00860858 4.10735134 0.95750503 0.97726063 0.49796429;
++	-3.12581680 -0.01400157 0.00853241 4.11181522 0.95780669 0.97746601 0.49720597;
++	-3.13013947 -0.01387471 0.00845733 4.11626476 0.95810324 0.97766796 0.49645304;
++	-3.13445117 -0.01375013 0.00838331 4.12070104 0.95839480 0.97786656 0.49570558;
++	-3.13875289 -0.01362779 0.00831034 4.12512510 0.95868150 0.97806186 0.49496366;
++	-3.14304556 -0.01350764 0.00823841 4.12953792 0.95896344 0.97825395 0.49422734;
++	-3.14733008 -0.01338963 0.00816748 4.13394045 0.95924075 0.97844289 0.49349669;
++	-3.15160728 -0.01327370 0.00809756 4.13833358 0.95951352 0.97862874 0.49277177;
++	-3.15587797 -0.01315981 0.00802862 4.14271816 0.95978188 0.97881157 0.49205262;
++	-3.16014293 -0.01304792 0.00796064 4.14709501 0.96004592 0.97899144 0.49133930;
++	-3.16440288 -0.01293797 0.00789361 4.15146491 0.96030574 0.97916842 0.49063185;
++	-3.16865852 -0.01282993 0.00782751 4.15582858 0.96056144 0.97934256 0.48993030;
++	-3.17291049 -0.01272375 0.00776233 4.16018673 0.96081312 0.97951392 0.48923471;
++	-3.17715942 -0.01261940 0.00769805 4.16454003 0.96106086 0.97968255 0.48854509;
++	-3.18140591 -0.01251682 0.00763466 4.16888910 0.96130476 0.97984852 0.48786148;
++	-3.18565052 -0.01241598 0.00757215 4.17323454 0.96154490 0.98001187 0.48718390;
++	-3.18989378 -0.01231685 0.00751049 4.17757693 0.96178137 0.98017266 0.48651237;
++	-3.19413619 -0.01221938 0.00744968 4.18191681 0.96201424 0.98033094 0.48584692;
++	-3.19837823 -0.01212354 0.00738970 4.18625469 0.96224360 0.98048676 0.48518756;
++	-3.20262035 -0.01202930 0.00733053 4.19059105 0.96246952 0.98064017 0.48453431;
++	-3.20686298 -0.01193661 0.00727217 4.19492637 0.96269208 0.98079121 0.48388717;
++	-3.21110653 -0.01184546 0.00721461 4.19926107 0.96291135 0.98093994 0.48324615;
++	-3.21535137 -0.01175579 0.00715782 4.20359557 0.96312741 0.98108639 0.48261126;
++	-3.21959786 -0.01166759 0.00710179 4.20793027 0.96334031 0.98123062 0.48198250;
++	-3.22384634 -0.01158082 0.00704652 4.21226552 0.96355014 0.98137266 0.48135988;
++	-3.22809714 -0.01149545 0.00699199 4.21660169 0.96375694 0.98151256 0.48074338;
++	-3.23235055 -0.01141146 0.00693819 4.22093909 0.96396080 0.98165035 0.48013301;
++	-3.23660685 -0.01132880 0.00688511 4.22527805 0.96416176 0.98178609 0.47952876;
++	-3.24086631 -0.01124746 0.00683273 4.22961885 0.96435989 0.98191980 0.47893063;
++	-3.24512918 -0.01116741 0.00678105 4.23396177 0.96455525 0.98205153 0.47833860;
++	-3.24939569 -0.01108862 0.00673005 4.23830707 0.96474789 0.98218132 0.47775267;
++	-3.25366606 -0.01101107 0.00667973 4.24265499 0.96493787 0.98230920 0.47717282;
++	-3.25794050 -0.01093473 0.00663007 4.24700577 0.96512525 0.98243520 0.47659903;
++	-3.26221918 -0.01085957 0.00658106 4.25135961 0.96531007 0.98255937 0.47603130;
++	-3.26650230 -0.01078557 0.00653269 4.25571672 0.96549239 0.98268174 0.47546960;
++	-3.27079000 -0.01071272 0.00648495 4.26007729 0.96567225 0.98280233 0.47491391;
++	-3.27508246 -0.01064097 0.00643784 4.26444149 0.96584971 0.98292119 0.47436422;
++	-3.27937980 -0.01057032 0.00639134 4.26880948 0.96602482 0.98303834 0.47382051;
++	-3.28368216 -0.01050074 0.00634544 4.27318141 0.96619761 0.98315382 0.47328275;
++	-3.28798965 -0.01043222 0.00630013 4.27755743 0.96636814 0.98326765 0.47275091;
++	-3.29230239 -0.01036472 0.00625541 4.28193767 0.96653645 0.98337988 0.47222499;
++	-3.29662047 -0.01029823 0.00621126 4.28632224 0.96670258 0.98349051 0.47170494;
++	-3.30094399 -0.01023273 0.00616768 4.29071126 0.96686657 0.98359960 0.47119074;
++	-3.30527303 -0.01016819 0.00612465 4.29510483 0.96702847 0.98370715 0.47068237;
++	-3.30960766 -0.01010461 0.00608218 4.29950304 0.96718831 0.98381321 0.47017979;
++	-3.31394795 -0.01004197 0.00604024 4.30390598 0.96734614 0.98391779 0.46968299;
++	-3.31829395 -0.00998024 0.00599883 4.30831372 0.96750198 0.98402093 0.46919192;
++	-3.32264573 -0.00991940 0.00595795 4.31272633 0.96765588 0.98412265 0.46870656;
++	-3.32700331 -0.00985945 0.00591759 4.31714387 0.96780788 0.98422297 0.46822687;
++	-3.33136675 -0.00980035 0.00587773 4.32156640 0.96795801 0.98432191 0.46775284;
++	-3.33573607 -0.00974211 0.00583838 4.32599396 0.96810630 0.98441951 0.46728441;
++	-3.34011130 -0.00968470 0.00579951 4.33042660 0.96825278 0.98451579 0.46682157;
++	-3.34449246 -0.00962810 0.00576113 4.33486436 0.96839750 0.98461077 0.46636427;
++	-3.34887956 -0.00957230 0.00572323 4.33930726 0.96854048 0.98470447 0.46591248;
++	-3.35327261 -0.00951729 0.00568581 4.34375533 0.96868175 0.98479691 0.46546617;
++	-3.35767163 -0.00946304 0.00564884 4.34820858 0.96882135 0.98488812 0.46502531;
++	-3.36207660 -0.00940956 0.00561233 4.35266704 0.96895930 0.98497811 0.46458986;
++	-3.36648753 -0.00935681 0.00557627 4.35713071 0.96909563 0.98506691 0.46415977;
++	-3.37090440 -0.00930480 0.00554066 4.36159960 0.96923037 0.98515454 0.46373503;
++	-3.37532721 -0.00925350 0.00550548 4.36607371 0.96936355 0.98524102 0.46331559;
++	-3.37975593 -0.00920290 0.00547073 4.37055303 0.96949520 0.98532636 0.46290141;
++	-3.38419056 -0.00915300 0.00543641 4.37503756 0.96962535 0.98541059 0.46249246;
++	-3.38863105 -0.00910377 0.00540251 4.37952729 0.96975401 0.98549373 0.46208870;
++	-3.39307740 -0.00905520 0.00536901 4.38402220 0.96988122 0.98557578 0.46169009;
++	-3.39752956 -0.00900729 0.00533593 4.38852227 0.97000699 0.98565678 0.46129660;
++	-3.40198751 -0.00896002 0.00530324 4.39302749 0.97013137 0.98573674 0.46090819;
++	-3.40645121 -0.00891338 0.00527095 4.39753783 0.97025435 0.98581567 0.46052482;
++	-3.41092063 -0.00886736 0.00523904 4.40205326 0.97037598 0.98589360 0.46014645;
++	-3.41539571 -0.00882195 0.00520752 4.40657376 0.97049628 0.98597053 0.45977305;
++	-3.41987643 -0.00877713 0.00517637 4.41109929 0.97061526 0.98604649 0.45940458;
++	-3.42436272 -0.00873290 0.00514560 4.41562982 0.97073295 0.98612149 0.45904100;
++	-3.42885456 -0.00868925 0.00511520 4.42016531 0.97084936 0.98619555 0.45868227;
++	-3.43335188 -0.00864617 0.00508515 4.42470571 0.97096453 0.98626868 0.45832835;
++	-3.43785464 -0.00860364 0.00505546 4.42925100 0.97107847 0.98634090 0.45797921;
++	-3.44236278 -0.00856166 0.00502613 4.43380112 0.97119120 0.98641222 0.45763480;
++	-3.44687625 -0.00852021 0.00499714 4.43835604 0.97130274 0.98648265 0.45729509;
++	-3.45139500 -0.00847930 0.00496849 4.44291570 0.97141311 0.98655221 0.45696005;
++	-3.45591895 -0.00843890 0.00494017 4.44748005 0.97152233 0.98662092 0.45662962;
++	-3.46044807 -0.00839902 0.00491219 4.45204905 0.97163042 0.98668879 0.45630378;
++	-3.46498227 -0.00835964 0.00488454 4.45662264 0.97173739 0.98675583 0.45598249;
++	-3.46952151 -0.00832075 0.00485721 4.46120077 0.97184326 0.98682205 0.45566570;
++	-3.47406572 -0.00828234 0.00483019 4.46578338 0.97194805 0.98688746 0.45535338;
++	-3.47861484 -0.00824442 0.00480349 4.47037042 0.97205179 0.98695209 0.45504550;
++	-3.48316880 -0.00820696 0.00477710 4.47496184 0.97215447 0.98701594 0.45474201;
++	-3.48772753 -0.00816996 0.00475102 4.47955756 0.97225612 0.98707902 0.45444287;
++	-3.49229097 -0.00813342 0.00472523 4.48415755 0.97235676 0.98714134 0.45414806;
++	-3.49685904 -0.00809733 0.00469975 4.48876172 0.97245640 0.98720293 0.45385753;
++	-3.50143169 -0.00806167 0.00467455 4.49337002 0.97255506 0.98726378 0.45357123;
++	-3.50600884 -0.00802644 0.00464964 4.49798240 0.97265275 0.98732391 0.45328915;
++	-3.51059042 -0.00799164 0.00462502 4.50259878 0.97274949 0.98738333 0.45301123;
++	-3.51517637 -0.00795726 0.00460068 4.50721911 0.97284528 0.98744206 0.45273745;
++	-3.51976660 -0.00792329 0.00457662 4.51184331 0.97294015 0.98750009 0.45246776;
++	-3.52436105 -0.00788972 0.00455283 4.51647133 0.97303411 0.98755745 0.45220214;
++	-3.52895964 -0.00785655 0.00452930 4.52110309 0.97312718 0.98761414 0.45194053;
++	-3.53356231 -0.00782377 0.00450605 4.52573854 0.97321936 0.98767018 0.45168291;
++	-3.53816898 -0.00779138 0.00448306 4.53037760 0.97331067 0.98772556 0.45142923;
++	-3.54277957 -0.00775937 0.00446032 4.53502021 0.97340111 0.98778031 0.45117947;
++	-3.54739402 -0.00772773 0.00443784 4.53966629 0.97349072 0.98783443 0.45093359;
++	-3.55201224 -0.00769645 0.00441562 4.54431579 0.97357949 0.98788793 0.45069155;
++	-3.55663417 -0.00766554 0.00439364 4.54896864 0.97366744 0.98794082 0.45045331;
++	-3.56125973 -0.00763498 0.00437190 4.55362475 0.97375458 0.98799311 0.45021885;
++	-3.56588885 -0.00760478 0.00435041 4.55828407 0.97384092 0.98804481 0.44998812;
++	-3.57052145 -0.00757491 0.00432916 4.56294653 0.97392648 0.98809593 0.44976109;
++	-3.57515745 -0.00754539 0.00430814 4.56761206 0.97401126 0.98814646 0.44953772;
++	-3.57979678 -0.00751620 0.00428736 4.57228058 0.97409528 0.98819644 0.44931799;
++	-3.58443937 -0.00748734 0.00426681 4.57695203 0.97417854 0.98824585 0.44910185;
++	-3.58908514 -0.00745880 0.00424648 4.58162633 0.97426107 0.98829472 0.44888928;
++	-3.59373401 -0.00743059 0.00422637 4.58630343 0.97434286 0.98834304 0.44868023;
++	-3.59838592 -0.00740268 0.00420649 4.59098323 0.97442393 0.98839083 0.44847468;
++	-3.60304078 -0.00737509 0.00418682 4.59566569 0.97450428 0.98843809 0.44827259;
++	-3.60769852 -0.00734780 0.00416737 4.60035072 0.97458394 0.98848483 0.44807392;
++	-3.61235907 -0.00732081 0.00414813 4.60503826 0.97466290 0.98853106 0.44787865;
++	-3.61702235 -0.00729411 0.00412910 4.60972823 0.97474118 0.98857678 0.44768674;
++	-3.62168828 -0.00726771 0.00411028 4.61442057 0.97481879 0.98862201 0.44749816;
++	-3.62635680 -0.00724159 0.00409166 4.61911521 0.97489573 0.98866675 0.44731288;
++	-3.63102782 -0.00721575 0.00407325 4.62381207 0.97497202 0.98871100 0.44713086;
++	-3.63570128 -0.00719020 0.00405503 4.62851108 0.97504766 0.98875478 0.44695207;
++	-3.64037709 -0.00716491 0.00403700 4.63321218 0.97512267 0.98879808 0.44677649;
++	-3.64505519 -0.00713990 0.00401918 4.63791530 0.97519704 0.98884093 0.44660407;
++	-3.64973550 -0.00711515 0.00400154 4.64262036 0.97527080 0.98888331 0.44643478;
++	-3.65441795 -0.00709066 0.00398409 4.64732729 0.97534394 0.98892525 0.44626861;
++	-3.65910247 -0.00706643 0.00396683 4.65203604 0.97541648 0.98896674 0.44610551;
++	-3.66378898 -0.00704246 0.00394975 4.65674652 0.97548842 0.98900779 0.44594545;
++	-3.66847740 -0.00701873 0.00393286 4.66145867 0.97555978 0.98904841 0.44578841;
++	-3.67316767 -0.00699526 0.00391614 4.66617242 0.97563055 0.98908860 0.44563435;
++	-3.67785972 -0.00697202 0.00389960 4.67088770 0.97570076 0.98912838 0.44548324;
++	-3.68255347 -0.00694903 0.00388324 4.67560444 0.97577039 0.98916773 0.44533506;
++	-3.68724885 -0.00692627 0.00386705 4.68032258 0.97583947 0.98920668 0.44518977;
++	-3.69194579 -0.00690374 0.00385103 4.68504204 0.97590800 0.98924523 0.44504735;
++	-3.69664421 -0.00688145 0.00383518 4.68976277 0.97597598 0.98928338 0.44490776;
++	-3.70134406 -0.00685938 0.00381949 4.69448468 0.97604342 0.98932113 0.44477099;
++	-3.70604525 -0.00683753 0.00380397 4.69920772 0.97611034 0.98935850 0.44463698;
++	-3.71074772 -0.00681590 0.00378861 4.70393182 0.97617673 0.98939548 0.44450573;
++	-3.71545140 -0.00679449 0.00377342 4.70865691 0.97624261 0.98943209 0.44437720;
++	-3.72015622 -0.00677330 0.00375838 4.71338292 0.97630797 0.98946833 0.44425137;
++	-3.72486211 -0.00675231 0.00374349 4.71810980 0.97637283 0.98950420 0.44412820;
++	-3.72956899 -0.00673153 0.00372877 4.72283746 0.97643720 0.98953970 0.44400767;
++	-3.73427682 -0.00671096 0.00371419 4.72756585 0.97650107 0.98957485 0.44388975;
++	-3.73898550 -0.00669059 0.00369976 4.73229491 0.97656446 0.98960965 0.44377441;
++	-3.74369498 -0.00667042 0.00368549 4.73702457 0.97662737 0.98964409 0.44366163;
++	-3.74840519 -0.00665044 0.00367136 4.74175475 0.97668980 0.98967820 0.44355139;
++	-3.75311607 -0.00663066 0.00365738 4.74648541 0.97675177 0.98971196 0.44344364;
++	-3.75782754 -0.00661107 0.00364354 4.75121648 0.97681327 0.98974540 0.44333838;
++	-3.76253955 -0.00659167 0.00362984 4.75594788 0.97687432 0.98977850 0.44323557;
++	-3.76725202 -0.00657245 0.00361628 4.76067957 0.97693492 0.98981127 0.44313518;
++	-3.77196489 -0.00655341 0.00360286 4.76541147 0.97699508 0.98984372 0.44303720;
++	-3.77667809 -0.00653456 0.00358958 4.77014353 0.97705479 0.98987586 0.44294159;
++	-3.78139156 -0.00651589 0.00357643 4.77487568 0.97711407 0.98990768 0.44284833;
++	-3.78610525 -0.00649739 0.00356342 4.77960786 0.97717292 0.98993920 0.44275740;
++	-3.79081907 -0.00647906 0.00355053 4.78434001 0.97723134 0.98997040 0.44266877;
++	-3.79553298 -0.00646091 0.00353778 4.78907207 0.97728935 0.99000131 0.44258241;
++	-3.80024690 -0.00644292 0.00352516 4.79380398 0.97734694 0.99003192 0.44249831;
++	-3.80496078 -0.00642510 0.00351266 4.79853567 0.97740413 0.99006223 0.44241644;
++	-3.80967455 -0.00640745 0.00350029 4.80326710 0.97746090 0.99009226 0.44233677;
++	-3.81438815 -0.00638996 0.00348804 4.80799819 0.97751728 0.99012200 0.44225928;
++	-3.81910152 -0.00637262 0.00347592 4.81272889 0.97757326 0.99015145 0.44218395;
++	-3.82381460 -0.00635545 0.00346392 4.81745915 0.97762886 0.99018063 0.44211076;
++	-3.82852732 -0.00633843 0.00345204 4.82218889 0.97768406 0.99020953 0.44203968;
++	-3.83323964 -0.00632157 0.00344027 4.82691808 0.97773889 0.99023816 0.44197068;
++	-3.83795149 -0.00630485 0.00342863 4.83164664 0.97779333 0.99026652 0.44190376;
++	-3.84266280 -0.00628829 0.00341709 4.83637452 0.97784741 0.99029462 0.44183887;
++	-3.84737353 -0.00627187 0.00340568 4.84110166 0.97790111 0.99032245 0.44177601;
++	-3.85208361 -0.00625560 0.00339437 4.84582801 0.97795446 0.99035003 0.44171515;
++	-3.85679299 -0.00623948 0.00338318 4.85055351 0.97800744 0.99037735 0.44165627;
++	-3.86150160 -0.00622349 0.00337210 4.85527811 0.97806006 0.99040441 0.44159934;
++	-3.86620939 -0.00620765 0.00336112 4.86000175 0.97811233 0.99043123 0.44154435;
++	-3.87091631 -0.00619194 0.00335026 4.86472437 0.97816426 0.99045780 0.44149127;
++	-3.87562229 -0.00617637 0.00333950 4.86944592 0.97821584 0.99048413 0.44144009;
++	-3.88032729 -0.00616094 0.00332885 4.87416635 0.97826708 0.99051022 0.44139078;
++	-3.88503124 -0.00614564 0.00331830 4.87888561 0.97831798 0.99053607 0.44134332;
++	-3.88973410 -0.00613047 0.00330785 4.88360363 0.97836855 0.99056168 0.44129769;
++	-3.89443580 -0.00611543 0.00329750 4.88832037 0.97841879 0.99058707 0.44125387;
++	-3.89913629 -0.00610051 0.00328726 4.89303577 0.97846870 0.99061223 0.44121185;
++	-3.90383552 -0.00608573 0.00327711 4.89774979 0.97851829 0.99063716 0.44117159;
++	-3.90853343 -0.00607107 0.00326707 4.90246236 0.97856756 0.99066187 0.44113309;
++	-3.91322998 -0.00605653 0.00325712 4.90717345 0.97861652 0.99068635 0.44109632;
++	-3.91792511 -0.00604212 0.00324726 4.91188299 0.97866516 0.99071062 0.44106126;
++	-3.92261876 -0.00602782 0.00323750 4.91659094 0.97871350 0.99073468 0.44102790;
++	-3.92731089 -0.00601364 0.00322784 4.92129724 0.97876153 0.99075852 0.44099621;
++	-3.93200144 -0.00599958 0.00321826 4.92600186 0.97880926 0.99078215 0.44096618;
++	-3.93669036 -0.00598564 0.00320878 4.93070472 0.97885669 0.99080558 0.44093779;
++	-3.94137761 -0.00597181 0.00319939 4.93540580 0.97890383 0.99082880 0.44091101;
++	-3.94606313 -0.00595809 0.00319009 4.94010504 0.97895067 0.99085182 0.44088584;
++	-3.95074687 -0.00594449 0.00318088 4.94480238 0.97899722 0.99087463 0.44086225;
++	-3.95542878 -0.00593099 0.00317175 4.94949779 0.97904349 0.99089725 0.44084022;
++	-3.96010882 -0.00591761 0.00316271 4.95419121 0.97908947 0.99091968 0.44081975;
++	-3.96478693 -0.00590433 0.00315376 4.95888260 0.97913517 0.99094191 0.44080080;
++	-3.96946306 -0.00589116 0.00314489 4.96357191 0.97918060 0.99096395 0.44078336;
++	-3.97413718 -0.00587809 0.00313611 4.96825909 0.97922575 0.99098581 0.44076742;
++	-3.97880922 -0.00586512 0.00312740 4.97294410 0.97927063 0.99100747 0.44075296;
++	-3.98347915 -0.00585226 0.00311878 4.97762689 0.97931524 0.99102895 0.44073996;
++	-3.98814692 -0.00583950 0.00311024 4.98230742 0.97935959 0.99105026 0.44072841;
++	-3.99281247 -0.00582684 0.00310178 4.98698564 0.97940367 0.99107138 0.44071828;
++	-3.99747577 -0.00581428 0.00309340 4.99166150 0.97944749 0.99109232 0.44070956;
++	-4.00213677 -0.00580181 0.00308510 4.99633496 0.97949105 0.99111309 0.44070224;
++	-4.00679542 -0.00578944 0.00307688 5.00100598 0.97953436 0.99113368 0.44069630;
++	-4.01145168 -0.00577717 0.00306873 5.00567451 0.97957741 0.99115410 0.44069173;
++	-4.01610551 -0.00576499 0.00306065 5.01034052 0.97962021 0.99117436 0.44068850;
++	-4.02075685 -0.00575290 0.00305266 5.01500395 0.97966277 0.99119444 0.44068660;
++	-4.02540567 -0.00574091 0.00304473 5.01966476 0.97970508 0.99121436 0.44068602;
++	-4.03005191 -0.00572900 0.00303688 5.02432291 0.97974715 0.99123412 0.44068674;
++	-4.03469555 -0.00571719 0.00302910 5.02897837 0.97978897 0.99125371 0.44068875;
++	-4.03933654 -0.00570546 0.00302139 5.03363108 0.97983056 0.99127315 0.44069203;
++	-4.04397482 -0.00569382 0.00301375 5.03828100 0.97987192 0.99129242 0.44069657;
++	-4.04861037 -0.00568227 0.00300619 5.04292810 0.97991304 0.99131154 0.44070234;
++	-4.05324314 -0.00567080 0.00299869 5.04757234 0.97995393 0.99133051 0.44070935;
++	-4.05787308 -0.00565942 0.00299126 5.05221367 0.97999459 0.99134932 0.44071756;
++	-4.06250017 -0.00564812 0.00298390 5.05685205 0.98003502 0.99136799 0.44072698;
++	-4.06712435 -0.00563690 0.00297660 5.06148744 0.98007523 0.99138650 0.44073757;
++	-4.07174558 -0.00562577 0.00296937 5.06611981 0.98011522 0.99140486 0.44074934;
++	-4.07636383 -0.00561471 0.00296221 5.07074912 0.98015498 0.99142308 0.44076227;
++	-4.08097906 -0.00560374 0.00295511 5.07537532 0.98019453 0.99144116 0.44077633;
++	-4.08559122 -0.00559284 0.00294807 5.07999838 0.98023386 0.99145909 0.44079153;
++	-4.09020028 -0.00558202 0.00294110 5.08461826 0.98027298 0.99147688 0.44080784;
++	-4.09480620 -0.00557128 0.00293419 5.08923492 0.98031189 0.99149453 0.44082525;
++	-4.09940894 -0.00556061 0.00292734 5.09384833 0.98035059 0.99151204 0.44084375;
++	-4.10400846 -0.00555002 0.00292056 5.09845844 0.98038908 0.99152942 0.44086333;
++	-4.10860473 -0.00553950 0.00291383 5.10306522 0.98042736 0.99154666 0.44088396;
++	-4.11319770 -0.00552906 0.00290717 5.10766864 0.98046544 0.99156377 0.44090565;
++	-4.11778734 -0.00551869 0.00290056 5.11226865 0.98050332 0.99158075 0.44092838;
++	-4.12237362 -0.00550839 0.00289401 5.11686523 0.98054100 0.99159760 0.44095213;
++	-4.12695649 -0.00549816 0.00288752 5.12145833 0.98057848 0.99161431 0.44097689;
++	-4.13153592 -0.00548801 0.00288109 5.12604792 0.98061577 0.99163090 0.44100265;
++	-4.13611188 -0.00547792 0.00287471 5.13063396 0.98065286 0.99164737 0.44102940;
++	-4.14068433 -0.00546790 0.00286839 5.13521643 0.98068975 0.99166371 0.44105712;
++	-4.14525323 -0.00545795 0.00286213 5.13979528 0.98072646 0.99167992 0.44108581;
++	-4.14981854 -0.00544806 0.00285592 5.14437048 0.98076298 0.99169602 0.44111544;
++	-4.15438025 -0.00543824 0.00284976 5.14894200 0.98079931 0.99171199 0.44114602;
++	-4.15893830 -0.00542849 0.00284366 5.15350981 0.98083545 0.99172785 0.44117753;
++	-4.16349267 -0.00541880 0.00283761 5.15807386 0.98087141 0.99174358 0.44120995;
++	-4.16804332 -0.00540918 0.00283162 5.16263414 0.98090719 0.99175920 0.44124328;
++	-4.17259021 -0.00539962 0.00282567 5.16719060 0.98094278 0.99177471 0.44127750;
++	-4.17713333 -0.00539012 0.00281978 5.17174321 0.98097820 0.99179010 0.44131260;
++	-4.18167262 -0.00538069 0.00281394 5.17629194 0.98101344 0.99180537 0.44134857;
++	-4.18620807 -0.00537131 0.00280815 5.18083676 0.98104851 0.99182054 0.44138541;
++	-4.19073963 -0.00536200 0.00280241 5.18537763 0.98108340 0.99183560 0.44142309;
++	-4.19526728 -0.00535274 0.00279671 5.18991453 0.98111811 0.99185054 0.44146162;
++	-4.19979098 -0.00534355 0.00279107 5.19444743 0.98115266 0.99186538 0.44150097;
++	-4.20431070 -0.00533441 0.00278548 5.19897629 0.98118704 0.99188011 0.44154114;
++	-4.20882641 -0.00532534 0.00277993 5.20350108 0.98122125 0.99189474 0.44158211;
++	-4.21333809 -0.00531632 0.00277443 5.20802177 0.98125529 0.99190926 0.44162389;
++	-4.21784569 -0.00530735 0.00276897 5.21253834 0.98128916 0.99192367 0.44166645;
++	-4.22234919 -0.00529845 0.00276357 5.21705075 0.98132288 0.99193799 0.44170979;
++	-4.22684856 -0.00528959 0.00275820 5.22155897 0.98135643 0.99195220 0.44175389;
++	-4.23134377 -0.00528080 0.00275289 5.22606297 0.98138982 0.99196631 0.44179875;
++	-4.23583479 -0.00527206 0.00274762 5.23056273 0.98142305 0.99198033 0.44184436;
++	-4.24032159 -0.00526337 0.00274239 5.23505822 0.98145612 0.99199424 0.44189070;
++	-4.24480413 -0.00525473 0.00273720 5.23954940 0.98148904 0.99200806 0.44193777;
++	-4.24928241 -0.00524615 0.00273206 5.24403626 0.98152180 0.99202179 0.44198557;
++	-4.25375637 -0.00523762 0.00272697 5.24851875 0.98155440 0.99203541 0.44203406;
++	-4.25822600 -0.00522914 0.00272191 5.25299686 0.98158685 0.99204895 0.44208326;
++	-4.26269127 -0.00522071 0.00271690 5.25747055 0.98161916 0.99206239 0.44213315;
++	-4.26715214 -0.00521233 0.00271193 5.26193981 0.98165131 0.99207574 0.44218372;
++	-4.27160860 -0.00520401 0.00270700 5.26640459 0.98168331 0.99208900 0.44223496;
++	-4.27606061 -0.00519573 0.00270211 5.27086489 0.98171516 0.99210217 0.44228686;
++	-4.28050816 -0.00518750 0.00269726 5.27532066 0.98174687 0.99211524 0.44233942;
++	-4.28495120 -0.00517932 0.00269245 5.27977188 0.98177844 0.99212824 0.44239262;
++	-4.28938971 -0.00517119 0.00268767 5.28421853 0.98180986 0.99214114 0.44244646;
++	-4.29382368 -0.00516310 0.00268294 5.28866058 0.98184113 0.99215396 0.44250093;
++	-4.29825306 -0.00515506 0.00267825 5.29309800 0.98187227 0.99216669 0.44255601;
++	-4.30267785 -0.00514707 0.00267359 5.29753078 0.98190326 0.99217934 0.44261171;
++	-4.30709800 -0.00513912 0.00266898 5.30195888 0.98193412 0.99219190 0.44266801;
++	-4.31151350 -0.00513122 0.00266440 5.30638227 0.98196483 0.99220438 0.44272490;
++	-4.31592431 -0.00512337 0.00265985 5.31080095 0.98199542 0.99221678 0.44278238;
++	-4.32033043 -0.00511555 0.00265535 5.31521487 0.98202586 0.99222910 0.44284044;
++	-4.32473181 -0.00510779 0.00265088 5.31962403 0.98205617 0.99224134 0.44289907;
++	-4.32912844 -0.00510006 0.00264644 5.32402838 0.98208635 0.99225350 0.44295825;
++	-4.33352030 -0.00509238 0.00264204 5.32842792 0.98211639 0.99226558 0.44301800;
++	-4.33790735 -0.00508474 0.00263768 5.33282261 0.98214630 0.99227758 0.44307829;
++	-4.34228957 -0.00507715 0.00263335 5.33721243 0.98217609 0.99228950 0.44313911;
++	-4.34666695 -0.00506959 0.00262906 5.34159736 0.98220574 0.99230135 0.44320047;
++	-4.35103946 -0.00506208 0.00262479 5.34597738 0.98223526 0.99231313 0.44326235;
++	-4.35540706 -0.00505461 0.00262057 5.35035246 0.98226466 0.99232483 0.44332475;
++	-4.35976976 -0.00504718 0.00261637 5.35472258 0.98229393 0.99233645 0.44338766;
++	-4.36412751 -0.00503978 0.00261221 5.35908772 0.98232308 0.99234800 0.44345107;
++	-4.36848029 -0.00503243 0.00260808 5.36344786 0.98235210 0.99235949 0.44351497;
++	-4.37282810 -0.00502512 0.00260399 5.36780298 0.98238100 0.99237089 0.44357936;
++	-4.37717089 -0.00501785 0.00259992 5.37215304 0.98240977 0.99238223 0.44364422;
++	-4.38150866 -0.00501061 0.00259589 5.37649804 0.98243843 0.99239350 0.44370956;
++	-4.38584137 -0.00500341 0.00259189 5.38083796 0.98246696 0.99240470 0.44377537;
++	-4.39016901 -0.00499626 0.00258792 5.38517276 0.98249538 0.99241583 0.44384163;
++	-4.39449156 -0.00498913 0.00258397 5.38950243 0.98252368 0.99242689 0.44390835;
++	-4.39880900 -0.00498205 0.00258006 5.39382695 0.98255186 0.99243789 0.44397551;
++	-4.40312130 -0.00497500 0.00257618 5.39814630 0.98257992 0.99244881 0.44404311;
++	-4.40742845 -0.00496799 0.00257233 5.40246046 0.98260787 0.99245968 0.44411114;
++	-4.41173042 -0.00496101 0.00256851 5.40676940 0.98263570 0.99247047 0.44417960;
++	-4.41602719 -0.00495407 0.00256472 5.41107312 0.98266342 0.99248121 0.44424847;
++	-4.42031875 -0.00494717 0.00256096 5.41537158 0.98269102 0.99249187 0.44431776;
++	-4.42460508 -0.00494030 0.00255722 5.41966478 0.98271852 0.99250248 0.44438745;
++	-4.42888615 -0.00493346 0.00255351 5.42395268 0.98274590 0.99251302 0.44445755;
++	-4.43316194 -0.00492666 0.00254984 5.42823528 0.98277317 0.99252350 0.44452803;
++	-4.43743244 -0.00491989 0.00254618 5.43251255 0.98280033 0.99253392 0.44459891;
++	-4.44169763 -0.00491316 0.00254256 5.43678447 0.98282738 0.99254428 0.44467016;
++	-4.44595749 -0.00490646 0.00253896 5.44105103 0.98285433 0.99255458 0.44474179;
++	-4.45021200 -0.00489979 0.00253539 5.44531221 0.98288117 0.99256482 0.44481379;
++	-4.45446115 -0.00489316 0.00253185 5.44956799 0.98290790 0.99257500 0.44488616;
++	-4.45870490 -0.00488655 0.00252833 5.45381835 0.98293452 0.99258512 0.44495888;
++	-4.46294326 -0.00487998 0.00252484 5.45806327 0.98296105 0.99259518 0.44503195;
++	-4.46717619 -0.00487344 0.00252137 5.46230275 0.98298746 0.99260519 0.44510537;
++	-4.47140368 -0.00486693 0.00251793 5.46653675 0.98301378 0.99261514 0.44517912;
++	-4.47562571 -0.00486046 0.00251451 5.47076526 0.98303999 0.99262503 0.44525322;
++	-4.47984227 -0.00485401 0.00251112 5.47498827 0.98306610 0.99263487 0.44532764;
++	-4.48405334 -0.00484759 0.00250775 5.47920575 0.98309211 0.99264465 0.44540238;
++	-4.48825891 -0.00484121 0.00250441 5.48341770 0.98311802 0.99265438 0.44547744;
++	-4.49245894 -0.00483485 0.00250109 5.48762409 0.98314383 0.99266406 0.44555282;
++	-4.49665344 -0.00482852 0.00249780 5.49182492 0.98316954 0.99267368 0.44562850;
++	-4.50084238 -0.00482223 0.00249453 5.49602015 0.98319515 0.99268325 0.44570449;
++	-4.50502575 -0.00481596 0.00249128 5.50020979 0.98322067 0.99269277 0.44578077;
++	-4.50920352 -0.00480972 0.00248805 5.50439380 0.98324609 0.99270223 0.44585734;
++	-4.51337569 -0.00480350 0.00248485 5.50857219 0.98327141 0.99271164 0.44593420;
++	-4.51754224 -0.00479732 0.00248167 5.51274492 0.98329664 0.99272101 0.44601134;
++	-4.52170315 -0.00479117 0.00247851 5.51691199 0.98332177 0.99273032 0.44608876;
++	-4.52585842 -0.00478504 0.00247538 5.52107338 0.98334681 0.99273958 0.44616645;
++	-4.53000801 -0.00477894 0.00247227 5.52522907 0.98337176 0.99274880 0.44624440;
++	-4.53415192 -0.00477286 0.00246917 5.52937906 0.98339661 0.99275796 0.44632262;
++	-4.53829014 -0.00476682 0.00246610 5.53352332 0.98342137 0.99276708 0.44640109;
++	-4.54242264 -0.00476080 0.00246306 5.53766184 0.98344605 0.99277615 0.44647982;
++	-4.54654942 -0.00475480 0.00246003 5.54179461 0.98347063 0.99278517 0.44655879;
++	-4.55067046 -0.00474884 0.00245702 5.54592162 0.98349512 0.99279414 0.44663801;
++	-4.55478574 -0.00474290 0.00245404 5.55004285 0.98351952 0.99280307 0.44671746;
++	-4.55889526 -0.00473698 0.00245107 5.55415828 0.98354383 0.99281195 0.44679715;
++	-4.56299899 -0.00473109 0.00244812 5.55826790 0.98356806 0.99282079 0.44687706;
++	-4.56709693 -0.00472522 0.00244520 5.56237170 0.98359219 0.99282958 0.44695720;
++	-4.57118906 -0.00471938 0.00244229 5.56646967 0.98361625 0.99283832 0.44703756;
++	-4.57527536 -0.00471357 0.00243940 5.57056179 0.98364021 0.99284703 0.44711814;
++	-4.57935583 -0.00470778 0.00243654 5.57464806 0.98366409 0.99285569 0.44719893;
++	-4.58343045 -0.00470201 0.00243369 5.57872844 0.98368788 0.99286430 0.44727992;
++	-4.58749921 -0.00469627 0.00243086 5.58280295 0.98371159 0.99287287 0.44736112;
++	-4.59156210 -0.00469055 0.00242805 5.58687155 0.98373522 0.99288140 0.44744252;
++	-4.59561910 -0.00468485 0.00242526 5.59093424 0.98375876 0.99288989 0.44752411;
++	-4.59967020 -0.00467918 0.00242248 5.59499102 0.98378222 0.99289833 0.44760589;
++	-4.60371538 -0.00467353 0.00241973 5.59904185 0.98380560 0.99290674 0.44768785;
++	-4.60775465 -0.00466791 0.00241699 5.60308674 0.98382890 0.99291510 0.44777000;
++	-4.61178797 -0.00466230 0.00241427 5.60712567 0.98385211 0.99292343 0.44785233;
++	-4.61581536 -0.00465672 0.00241157 5.61115863 0.98387525 0.99293171 0.44793483;
++	-4.61983678 -0.00465116 0.00240889 5.61518561 0.98389830 0.99293995 0.44801750;
++	-4.62385223 -0.00464563 0.00240622 5.61920660 0.98392128 0.99294815 0.44810034;
++	-4.62786170 -0.00464011 0.00240357 5.62322158 0.98394418 0.99295632 0.44818334;
++	-4.63186517 -0.00463462 0.00240093 5.62723055 0.98396700 0.99296444 0.44826650;
++	-4.63586264 -0.00462915 0.00239832 5.63123349 0.98398974 0.99297253 0.44834982;
++	-4.63985410 -0.00462370 0.00239572 5.63523040 0.98401240 0.99298058 0.44843328;
++	-4.64383953 -0.00461827 0.00239313 5.63922126 0.98403499 0.99298859 0.44851690;
++	-4.64781892 -0.00461286 0.00239057 5.64320606 0.98405750 0.99299657 0.44860066;
++	-4.65179227 -0.00460748 0.00238802 5.64718479 0.98407993 0.99300451 0.44868455;
++	-4.65575956 -0.00460211 0.00238548 5.65115744 0.98410229 0.99301241 0.44876859;
++	-4.65972078 -0.00459677 0.00238296 5.65512401 0.98412458 0.99302027 0.44885276;
++	-4.66367592 -0.00459144 0.00238046 5.65908448 0.98414679 0.99302810 0.44893706;
++	-4.66762497 -0.00458614 0.00237797 5.66303884 0.98416893 0.99303590 0.44902148;
++	-4.67156793 -0.00458085 0.00237549 5.66698708 0.98419099 0.99304366 0.44910603;
++	-4.67550478 -0.00457558 0.00237303 5.67092920 0.98421298 0.99305138 0.44919070;
++	-4.67943552 -0.00457034 0.00237059 5.67486518 0.98423490 0.99305907 0.44927549;
++	-4.68336012 -0.00456511 0.00236816 5.67879501 0.98425675 0.99306673 0.44936038;
++	-4.68727860 -0.00455990 0.00236575 5.68271869 0.98427852 0.99307435 0.44944539;
++	-4.69119092 -0.00455472 0.00236335 5.68663621 0.98430023 0.99308194 0.44953051;
++	-4.69509710 -0.00454955 0.00236096 5.69054755 0.98432186 0.99308949 0.44961572;
++	-4.69899711 -0.00454440 0.00235859 5.69445271 0.98434343 0.99309701 0.44970104;
++	-4.70289095 -0.00453926 0.00235623 5.69835168 0.98436492 0.99310450 0.44978646;
++	-4.70677861 -0.00453415 0.00235389 5.70224446 0.98438635 0.99311196 0.44987197;
++	-4.71066008 -0.00452905 0.00235156 5.70613103 0.98440771 0.99311939 0.44995757;
++	-4.71453535 -0.00452398 0.00234924 5.71001138 0.98442899 0.99312678 0.45004326;
++	-4.71840442 -0.00451892 0.00234694 5.71388551 0.98445021 0.99313414 0.45012903;
++	-4.72226728 -0.00451387 0.00234465 5.71775341 0.98447137 0.99314147 0.45021488;
++	-4.72612392 -0.00450885 0.00234237 5.72161507 0.98449245 0.99314877 0.45030082;
++	-4.72997433 -0.00450384 0.00234011 5.72547048 0.98451347 0.99315604 0.45038683;
++	-4.73381850 -0.00449885 0.00233786 5.72931964 0.98453443 0.99316328 0.45047291;
++	-4.73765643 -0.00449388 0.00233562 5.73316254 0.98455532 0.99317049 0.45055907;
++	-4.74148810 -0.00448893 0.00233340 5.73699917 0.98457614 0.99317767 0.45064529;
++	-4.74531352 -0.00448399 0.00233119 5.74082953 0.98459690 0.99318483 0.45073158;
++	-4.74913267 -0.00447907 0.00232899 5.74465360 0.98461759 0.99319195 0.45081792;
++	-4.75294555 -0.00447416 0.00232680 5.74847138 0.98463822 0.99319904 0.45090433;
++	-4.75675214 -0.00446927 0.00232462 5.75228287 0.98465878 0.99320610 0.45099080;
++	-4.76055246 -0.00446440 0.00232246 5.75608805 0.98467929 0.99321314 0.45107732;
++	-4.76434647 -0.00445955 0.00232031 5.75988693 0.98469973 0.99322015 0.45116389;
++	-4.76813419 -0.00445471 0.00231816 5.76367948 0.98472010 0.99322713 0.45125051;
++	-4.77191560 -0.00444988 0.00231604 5.76746572 0.98474042 0.99323408 0.45133717;
++	-4.77569070 -0.00444507 0.00231392 5.77124562 0.98476067 0.99324101 0.45142388;
++	-4.77945947 -0.00444028 0.00231181 5.77501919 0.98478086 0.99324791 0.45151063;
++	-4.78322192 -0.00443550 0.00230972 5.77878642 0.98480099 0.99325478 0.45159742;
++	-4.78697804 -0.00443074 0.00230763 5.78254730 0.98482106 0.99326162 0.45168425;
++	-4.79072783 -0.00442600 0.00230556 5.78630183 0.98484107 0.99326844 0.45177111;
++	-4.79447127 -0.00442127 0.00230350 5.79005000 0.98486102 0.99327523 0.45185800;
++	-4.79820836 -0.00441655 0.00230145 5.79379181 0.98488091 0.99328200 0.45194492;
++	-4.80193909 -0.00441185 0.00229941 5.79752724 0.98490074 0.99328874 0.45203187;
++	-4.80566347 -0.00440716 0.00229738 5.80125630 0.98492051 0.99329546 0.45211884;
++	-4.80938148 -0.00440249 0.00229536 5.80497899 0.98494022 0.99330215 0.45220583;
++	-4.81309312 -0.00439783 0.00229335 5.80869528 0.98495988 0.99330881 0.45229285;
++	-4.81679838 -0.00439319 0.00229135 5.81240519 0.98497947 0.99331546 0.45237988;
++	-4.82049726 -0.00438856 0.00228937 5.81610870 0.98499901 0.99332207 0.45246692;
++	-4.82418976 -0.00438395 0.00228739 5.81980581 0.98501850 0.99332866 0.45255398;
++	-4.82787587 -0.00437935 0.00228542 5.82349652 0.98503792 0.99333523 0.45264105;
++	-4.83155558 -0.00437476 0.00228346 5.82718082 0.98505729 0.99334178 0.45272813;
++	-4.83522889 -0.00437019 0.00228151 5.83085870 0.98507660 0.99334830 0.45281521;
++	-4.83889580 -0.00436563 0.00227957 5.83453017 0.98509586 0.99335480 0.45290231;
++	-4.84255630 -0.00436109 0.00227764 5.83819521 0.98511506 0.99336127 0.45298940;
++	-4.84621038 -0.00435656 0.00227572 5.84185383 0.98513421 0.99336772 0.45307649;
++	-4.84985805 -0.00435204 0.00227381 5.84550601 0.98515330 0.99337415 0.45316358;
++	-4.85349930 -0.00434753 0.00227191 5.84915177 0.98517233 0.99338056 0.45325067;
++	-4.85713412 -0.00434304 0.00227002 5.85279108 0.98519132 0.99338694 0.45333775;
++	-4.86076252 -0.00433856 0.00226813 5.85642396 0.98521024 0.99339330 0.45342482;
++	-4.86438448 -0.00433410 0.00226626 5.86005038 0.98522912 0.99339964 0.45351189;
++	-4.86800001 -0.00432965 0.00226439 5.86367036 0.98524794 0.99340596 0.45359894;
++	-4.87160909 -0.00432521 0.00226253 5.86728389 0.98526671 0.99341226 0.45368598;
++	-4.87521174 -0.00432078 0.00226069 5.87089096 0.98528542 0.99341853 0.45377301;
++	-4.87880793 -0.00431637 0.00225885 5.87449157 0.98530409 0.99342479 0.45386001;
++	-4.88239768 -0.00431196 0.00225701 5.87808572 0.98532270 0.99343102 0.45394700;
++	-4.88598098 -0.00430758 0.00225519 5.88167340 0.98534126 0.99343723 0.45403397;
++	-4.88955781 -0.00430320 0.00225338 5.88525462 0.98535976 0.99344342 0.45412092;
++	-4.89312819 -0.00429883 0.00225157 5.88882936 0.98537822 0.99344960 0.45420784;
++	-4.89669211 -0.00429448 0.00224977 5.89239763 0.98539662 0.99345575 0.45429473;
++	-4.90024957 -0.00429014 0.00224798 5.89595942 0.98541498 0.99346188 0.45438160;
++	-4.90380055 -0.00428581 0.00224620 5.89951474 0.98543328 0.99346799 0.45446844;
++	-4.90734507 -0.00428150 0.00224442 5.90306357 0.98545154 0.99347408 0.45455524;
++	-4.91088312 -0.00427719 0.00224266 5.90660592 0.98546974 0.99348015 0.45464201;
++	-4.91441469 -0.00427290 0.00224090 5.91014179 0.98548790 0.99348620 0.45472875;
++	-4.91793978 -0.00426862 0.00223915 5.91367116 0.98550600 0.99349224 0.45481546;
++	-4.92145840 -0.00426435 0.00223740 5.91719405 0.98552406 0.99349825 0.45490212;
++	-4.92497053 -0.00426009 0.00223566 5.92071044 0.98554206 0.99350425 0.45498875;
++	-4.92847618 -0.00425584 0.00223394 5.92422034 0.98556002 0.99351022 0.45507533;
++	-4.93197535 -0.00425160 0.00223221 5.92772375 0.98557793 0.99351618 0.45516187;
++	-4.93546803 -0.00424738 0.00223050 5.93122065 0.98559579 0.99352212 0.45524837;
++	-4.93895423 -0.00424317 0.00222879 5.93471106 0.98561361 0.99352804 0.45533482;
++	-4.94243393 -0.00423896 0.00222709 5.93819497 0.98563138 0.99353395 0.45542123;
++	-4.94590714 -0.00423477 0.00222540 5.94167237 0.98564910 0.99353983 0.45550758;
++	-4.94937386 -0.00423059 0.00222371 5.94514327 0.98566677 0.99354570 0.45559389;
++	-4.95283409 -0.00422642 0.00222203 5.94860767 0.98568439 0.99355155 0.45568014;
++	-4.95628782 -0.00422226 0.00222036 5.95206556 0.98570197 0.99355738 0.45576634;
++	-4.95973505 -0.00421811 0.00221869 5.95551694 0.98571951 0.99356320 0.45585249;
++	-4.96317579 -0.00421397 0.00221703 5.95896181 0.98573699 0.99356900 0.45593858;
++	-4.96661002 -0.00420984 0.00221538 5.96240018 0.98575444 0.99357478 0.45602462;
++	-4.97003776 -0.00420573 0.00221373 5.96583204 0.98577183 0.99358054 0.45611059;
++	-4.97345900 -0.00420162 0.00221209 5.96925738 0.98578918 0.99358629 0.45619651;
++	-4.97687374 -0.00419752 0.00221046 5.97267622 0.98580649 0.99359202 0.45628236;
++	-4.98028197 -0.00419344 0.00220883 5.97608854 0.98582375 0.99359774 0.45636816;
++	-4.98368371 -0.00418936 0.00220721 5.97949435 0.98584096 0.99360343 0.45645388;
++	-4.98707894 -0.00418529 0.00220559 5.98289365 0.98585814 0.99360912 0.45653955;
++	-4.99046767 -0.00418123 0.00220398 5.98628643 0.98587526 0.99361478 0.45662514;
++	-4.99384989 -0.00417719 0.00220238 5.98967270 0.98589235 0.99362043 0.45671067;
++	-4.99722561 -0.00417315 0.00220078 5.99305246 0.98590939 0.99362607 0.45679613;
++	-5.00059483 -0.00416912 0.00219919 5.99642571 0.98592638 0.99363169 0.45688152;
++	-5.00395754 -0.00416511 0.00219761 5.99979244 0.98594334 0.99363729 0.45696684;
++	-5.00731375 -0.00416110 0.00219603 6.00315266 0.98596025 0.99364288 0.45705209;
++	-5.01066346 -0.00415710 0.00219445 6.00650636 0.98597712 0.99364845 0.45713726;
++	-5.01400667 -0.00415311 0.00219288 6.00985356 0.98599394 0.99365401 0.45722236;
++	-5.01734337 -0.00414913 0.00219132 6.01319424 0.98601072 0.99365955 0.45730738;
++	-5.02067356 -0.00414516 0.00218976 6.01652841 0.98602746 0.99366508 0.45739233;
++	-5.02399726 -0.00414120 0.00218821 6.01985606 0.98604416 0.99367059 0.45747719;
++	-5.02731445 -0.00413724 0.00218666 6.02317721 0.98606082 0.99367609 0.45756198;
++	-5.03062515 -0.00413330 0.00218512 6.02649184 0.98607744 0.99368157 0.45764669;
++	-5.03392934 -0.00412937 0.00218359 6.02979997 0.98609401 0.99368704 0.45773131;
++	-5.03722703 -0.00412544 0.00218206 6.03310159 0.98611054 0.99369250 0.45781585;
++	-5.04051822 -0.00412153 0.00218053 6.03639670 0.98612704 0.99369794 0.45790031;
++	-5.04380292 -0.00411762 0.00217901 6.03968530 0.98614349 0.99370337 0.45798469;
++	-5.04708112 -0.00411372 0.00217750 6.04296739 0.98615990 0.99370878 0.45806897;
++	-5.05035282 -0.00410983 0.00217599 6.04624299 0.98617627 0.99371418 0.45815318;
++	-5.05361802 -0.00410595 0.00217448 6.04951207 0.98619260 0.99371957 0.45823729;
++	-5.05687674 -0.00410208 0.00217298 6.05277466 0.98620889 0.99372494 0.45832131;
++	-5.06012896 -0.00409821 0.00217148 6.05603074 0.98622514 0.99373030 0.45840525;
++	-5.06337469 -0.00409436 0.00216999 6.05928033 0.98624135 0.99373565 0.45848909;
++	-5.06661393 -0.00409051 0.00216851 6.06252341 0.98625753 0.99374098 0.45857285;
++	-5.06984668 -0.00408668 0.00216703 6.06576000 0.98627366 0.99374630 0.45865651;
++	-5.07307294 -0.00408285 0.00216555 6.06899010 0.98628975 0.99375161 0.45874007;
++	-5.07629272 -0.00407902 0.00216408 6.07221370 0.98630581 0.99375690 0.45882355;
++	-5.07950602 -0.00407521 0.00216261 6.07543081 0.98632182 0.99376218 0.45890693;
++	-5.08271283 -0.00407141 0.00216115 6.07864143 0.98633780 0.99376745 0.45899021;
++	-5.08591317 -0.00406761 0.00215969 6.08184556 0.98635374 0.99377270 0.45907339;
++	-5.08910703 -0.00406382 0.00215823 6.08504321 0.98636965 0.99377795 0.45915648;
++	-5.09229441 -0.00406004 0.00215678 6.08823437 0.98638551 0.99378318 0.45923947;
++	-5.09547532 -0.00405627 0.00215534 6.09141905 0.98640134 0.99378840 0.45932235;
++	-5.09864975 -0.00405250 0.00215390 6.09459725 0.98641713 0.99379360 0.45940514;
++	-5.10181772 -0.00404874 0.00215246 6.09776897 0.98643288 0.99379880 0.45948783;
++	-5.10497922 -0.00404500 0.00215102 6.10093422 0.98644859 0.99380398 0.45957041;
++	-5.10813425 -0.00404125 0.00214960 6.10409300 0.98646427 0.99380915 0.45965289;
++	-5.11128282 -0.00403752 0.00214817 6.10724530 0.98647991 0.99381431 0.45973527;
++	-5.11442494 -0.00403379 0.00214675 6.11039114 0.98649552 0.99381946 0.45981755;
++	-5.11756059 -0.00403008 0.00214533 6.11353051 0.98651108 0.99382459 0.45989972;
++	-5.12068979 -0.00402637 0.00214392 6.11666343 0.98652662 0.99382971 0.45998178;
++	-5.12381254 -0.00402266 0.00214251 6.11978988 0.98654211 0.99383483 0.46006373;
++	-5.12692884 -0.00401897 0.00214110 6.12290987 0.98655757 0.99383993 0.46014558;
++	-5.13003869 -0.00401528 0.00213970 6.12602341 0.98657300 0.99384502 0.46022732;
++	-5.13314210 -0.00401160 0.00213831 6.12913050 0.98658838 0.99385010 0.46030896;
++	-5.13623906 -0.00400792 0.00213691 6.13223114 0.98660374 0.99385516 0.46039048;
++	-5.13932959 -0.00400426 0.00213552 6.13532533 0.98661906 0.99386022 0.46047189;
++	-5.14241368 -0.00400060 0.00213413 6.13841308 0.98663434 0.99386527 0.46055319;
++	-5.14549135 -0.00399695 0.00213275 6.14149440 0.98664959 0.99387030 0.46063438;
++	-5.14856258 -0.00399330 0.00213137 6.14456928 0.98666480 0.99387532 0.46071546;
++	-5.15162739 -0.00398967 0.00213000 6.14763772 0.98667998 0.99388034 0.46079643;
++	-5.15468577 -0.00398604 0.00212862 6.15069974 0.98669512 0.99388534 0.46087728;
++	-5.15773774 -0.00398241 0.00212725 6.15375533 0.98671023 0.99389033 0.46095802;
++	-5.16078329 -0.00397880 0.00212589 6.15680449 0.98672531 0.99389532 0.46103864;
++	-5.16382243 -0.00397519 0.00212453 6.15984724 0.98674035 0.99390029 0.46111915;
++	-5.16685516 -0.00397159 0.00212317 6.16288358 0.98675535 0.99390525 0.46119954;
++	-5.16988149 -0.00396799 0.00212181 6.16591350 0.98677033 0.99391020 0.46127982;
++	-5.17290141 -0.00396440 0.00212046 6.16893701 0.98678527 0.99391514 0.46135997;
++	-5.17591494 -0.00396082 0.00211911 6.17195412 0.98680017 0.99392007 0.46144001;
++	-5.17892208 -0.00395724 0.00211776 6.17496483 0.98681505 0.99392499 0.46151994;
++	-5.18192282 -0.00395368 0.00211642 6.17796914 0.98682989 0.99392990 0.46159974;
++	-5.18491718 -0.00395011 0.00211508 6.18096706 0.98684470 0.99393481 0.46167943;
++	-5.18790516 -0.00394656 0.00211374 6.18395860 0.98685947 0.99393970 0.46175899;
++	-5.19088675 -0.00394301 0.00211241 6.18694374 0.98687421 0.99394458 0.46183843;
++	-5.19386198 -0.00393947 0.00211108 6.18992251 0.98688892 0.99394945 0.46191776;
++	-5.19683083 -0.00393593 0.00210975 6.19289490 0.98690360 0.99395432 0.46199696;
++	-5.19979332 -0.00393241 0.00210843 6.19586092 0.98691824 0.99395917 0.46207604;
++	-5.20274945 -0.00392888 0.00210710 6.19882057 0.98693285 0.99396401 0.46215500;
++	-5.20569922 -0.00392537 0.00210578 6.20177385 0.98694743 0.99396885 0.46223383;
++	-5.20864264 -0.00392186 0.00210447 6.20472078 0.98696198 0.99397367 0.46231254;
++	-5.21157971 -0.00391835 0.00210315 6.20766135 0.98697650 0.99397849 0.46239113;
++	-5.21451043 -0.00391486 0.00210184 6.21059558 0.98699098 0.99398330 0.46246959;
++	-5.21743482 -0.00391137 0.00210054 6.21352345 0.98700544 0.99398810 0.46254793;
++	-5.22035287 -0.00390788 0.00209923 6.21644499 0.98701986 0.99399289 0.46262614;
++	-5.22326459 -0.00390440 0.00209793 6.21936019 0.98703425 0.99399767 0.46270423;
++	-5.22616999 -0.00390093 0.00209663 6.22226905 0.98704861 0.99400244 0.46278219;
++	-5.22906906 -0.00389747 0.00209533 6.22517159 0.98706294 0.99400720 0.46286003;
++	-5.23196182 -0.00389401 0.00209404 6.22806781 0.98707724 0.99401196 0.46293774;
++	-5.23484826 -0.00389055 0.00209274 6.23095771 0.98709151 0.99401670 0.46301532;
++	-5.23772840 -0.00388711 0.00209145 6.23384129 0.98710574 0.99402144 0.46309277;
++	-5.24060224 -0.00388366 0.00209017 6.23671857 0.98711995 0.99402617 0.46317009;
++	-5.24346978 -0.00388023 0.00208888 6.23958955 0.98713413 0.99403089 0.46324729;
++	-5.24633103 -0.00387680 0.00208760 6.24245423 0.98714827 0.99403560 0.46332436;
++	-5.24918599 -0.00387338 0.00208632 6.24531261 0.98716239 0.99404030 0.46340129;
++	-5.25203467 -0.00386996 0.00208504 6.24816471 0.98717648 0.99404500 0.46347810;
++	-5.25487707 -0.00386655 0.00208377 6.25101053 0.98719053 0.99404969 0.46355478;
++	-5.25771320 -0.00386314 0.00208250 6.25385007 0.98720456 0.99405436 0.46363133;
++	-5.26054307 -0.00385974 0.00208123 6.25668333 0.98721856 0.99405904 0.46370775;
++	-5.26336668 -0.00385634 0.00207996 6.25951033 0.98723253 0.99406370 0.46378403;
++	-5.26618402 -0.00385295 0.00207869 6.26233107 0.98724646 0.99406835 0.46386019;
++	-5.26899512 -0.00384957 0.00207743 6.26514555 0.98726037 0.99407300 0.46393621;
++	-5.27179998 -0.00384619 0.00207617 6.26795379 0.98727425 0.99407764 0.46401210;
++	-5.27459860 -0.00384282 0.00207491 6.27075577 0.98728810 0.99408227 0.46408786;
++	-5.27739098 -0.00383945 0.00207365 6.27355152 0.98730193 0.99408689 0.46416348;
++	-5.28017713 -0.00383609 0.00207240 6.27634104 0.98731572 0.99409151 0.46423898;
++	-5.28295706 -0.00383274 0.00207115 6.27912432 0.98732949 0.99409612 0.46431433;
++	-5.28573078 -0.00382939 0.00206989 6.28190139 0.98734322 0.99410072 0.46438956;
++	-5.28849828 -0.00382604 0.00206865 6.28467224 0.98735693 0.99410531 0.46446465;
++	-5.29125958 -0.00382271 0.00206740 6.28743687 0.98737061 0.99410989 0.46453961;
++	-5.29401468 -0.00381937 0.00206616 6.29019530 0.98738426 0.99411447 0.46461443;
++	-5.29676358 -0.00381604 0.00206491 6.29294754 0.98739789 0.99411904 0.46468912;
++	-5.29950630 -0.00381272 0.00206367 6.29569358 0.98741148 0.99412361 0.46476368;
++	-5.30224283 -0.00380940 0.00206243 6.29843343 0.98742505 0.99412816 0.46483809;
++	-5.30497319 -0.00380609 0.00206120 6.30116710 0.98743859 0.99413271 0.46491238;
++	-5.30769738 -0.00380279 0.00205996 6.30389459 0.98745210 0.99413725 0.46498652;
++	-5.31041540 -0.00379948 0.00205873 6.30661592 0.98746559 0.99414179 0.46506054;
++	-5.31312727 -0.00379619 0.00205750 6.30933108 0.98747905 0.99414631 0.46513441;
++	-5.31583299 -0.00379290 0.00205627 6.31204009 0.98749248 0.99415083 0.46520815;
++	-5.31853255 -0.00378961 0.00205504 6.31474294 0.98750588 0.99415535 0.46528175;
++	-5.32122598 -0.00378633 0.00205382 6.31743965 0.98751926 0.99415985 0.46535522;
++	-5.32391328 -0.00378306 0.00205259 6.32013023 0.98753261 0.99416435 0.46542855;
++	-5.32659445 -0.00377979 0.00205137 6.32281466 0.98754593 0.99416884 0.46550174;
++	-5.32926950 -0.00377652 0.00205015 6.32549298 0.98755923 0.99417333 0.46557479;
++	-5.33193843 -0.00377326 0.00204893 6.32816517 0.98757249 0.99417781 0.46564771;
++	-5.33460126 -0.00377000 0.00204772 6.33083125 0.98758574 0.99418228 0.46572049;
++	-5.33725798 -0.00376675 0.00204650 6.33349123 0.98759895 0.99418674 0.46579313;
++	-5.33990861 -0.00376351 0.00204529 6.33614511 0.98761214 0.99419120 0.46586563;
++	-5.34255316 -0.00376027 0.00204408 6.33879289 0.98762531 0.99419565 0.46593799;
++	-5.34519162 -0.00375703 0.00204287 6.34143458 0.98763844 0.99420010 0.46601022;
++	-5.34782400 -0.00375380 0.00204166 6.34407020 0.98765155 0.99420454 0.46608230;
++	-5.35045032 -0.00375058 0.00204045 6.34669974 0.98766464 0.99420897 0.46615425;
++	-5.35307057 -0.00374736 0.00203925 6.34932321 0.98767770 0.99421340 0.46622606;
++	-5.35568477 -0.00374414 0.00203804 6.35194063 0.98769073 0.99421781 0.46629773;
++	-5.35829292 -0.00374093 0.00203684 6.35455199 0.98770374 0.99422223 0.46636926;
++	-5.36089503 -0.00373773 0.00203564 6.35715730 0.98771672 0.99422663 0.46644065;
++	-5.36349110 -0.00373453 0.00203444 6.35975657 0.98772968 0.99423103 0.46651190;
++	-5.36608114 -0.00373133 0.00203324 6.36234981 0.98774261 0.99423543 0.46658301;
++	-5.36866517 -0.00372814 0.00203205 6.36493703 0.98775552 0.99423982 0.46665398;
++	-5.37124318 -0.00372495 0.00203085 6.36751823 0.98776840 0.99424420 0.46672482;
++	-5.37381518 -0.00372177 0.00202966 6.37009341 0.98778125 0.99424857 0.46679551;
++	-5.37638118 -0.00371859 0.00202847 6.37266259 0.98779408 0.99425294 0.46686606;
++	-5.37894119 -0.00371542 0.00202728 6.37522577 0.98780689 0.99425730 0.46693647;
++	-5.38149521 -0.00371225 0.00202609 6.37778296 0.98781967 0.99426166 0.46700674;
++	-5.38404325 -0.00370909 0.00202490 6.38033416 0.98783243 0.99426601 0.46707687;
++	-5.38658532 -0.00370593 0.00202371 6.38287939 0.98784516 0.99427036 0.46714686;
++	-5.38912142 -0.00370278 0.00202253 6.38541865 0.98785786 0.99427470 0.46721671;
++	-5.39165157 -0.00369963 0.00202134 6.38795194 0.98787055 0.99427903 0.46728642;
++	-5.39417576 -0.00369648 0.00202016 6.39047928 0.98788320 0.99428336 0.46735598;
++	-5.39669401 -0.00369334 0.00201898 6.39300067 0.98789584 0.99428768 0.46742541;
++	-5.39920633 -0.00369021 0.00201780 6.39551612 0.98790845 0.99429200 0.46749470;
++	-5.40171272 -0.00368707 0.00201662 6.39802564 0.98792103 0.99429631 0.46756384;
++	-5.40421318 -0.00368395 0.00201544 6.40052923 0.98793359 0.99430061 0.46763284;
++	-5.40670773 -0.00368082 0.00201427 6.40302690 0.98794613 0.99430491 0.46770170;
++	-5.40919637 -0.00367771 0.00201309 6.40551867 0.98795864 0.99430920 0.46777042;
++	-5.41167912 -0.00367459 0.00201192 6.40800452 0.98797113 0.99431349 0.46783900;
++	-5.41415597 -0.00367148 0.00201075 6.41048448 0.98798360 0.99431777 0.46790744;
++	-5.41662693 -0.00366838 0.00200957 6.41295855 0.98799604 0.99432205 0.46797574;
++	-5.41909202 -0.00366528 0.00200840 6.41542674 0.98800846 0.99432632 0.46804389;
++	-5.42155124 -0.00366218 0.00200724 6.41788906 0.98802085 0.99433058 0.46811190;
++	-5.42400460 -0.00365909 0.00200607 6.42034551 0.98803323 0.99433484 0.46817978;
++	-5.42645210 -0.00365600 0.00200490 6.42279610 0.98804557 0.99433910 0.46824751;
++	-5.42889376 -0.00365292 0.00200374 6.42524084 0.98805790 0.99434334 0.46831509;
++	-5.43132958 -0.00364984 0.00200257 6.42767973 0.98807020 0.99434759 0.46838254;
++	-5.43375956 -0.00364677 0.00200141 6.43011279 0.98808248 0.99435183 0.46844985;
++	-5.43618372 -0.00364370 0.00200024 6.43254002 0.98809474 0.99435606 0.46851701;
++	-5.43860207 -0.00364063 0.00199908 6.43496143 0.98810697 0.99436029 0.46858403;
++	-5.44101460 -0.00363757 0.00199792 6.43737703 0.98811918 0.99436451 0.46865091;
++	-5.44342134 -0.00363451 0.00199676 6.43978683 0.98813137 0.99436872 0.46871765;
++	-5.44582228 -0.00363146 0.00199561 6.44219082 0.98814353 0.99437294 0.46878424;
++	-5.44821744 -0.00362841 0.00199445 6.44458903 0.98815567 0.99437714 0.46885070;
++	-5.45060682 -0.00362536 0.00199329 6.44698145 0.98816779 0.99438134 0.46891701;
++	-5.45299043 -0.00362232 0.00199214 6.44936811 0.98817989 0.99438554 0.46898318;
++	-5.45536828 -0.00361929 0.00199098 6.45174899 0.98819196 0.99438973 0.46904921;
++	-5.45774037 -0.00361625 0.00198983 6.45412412 0.98820402 0.99439392 0.46911510;
++	-5.46010672 -0.00361323 0.00198868 6.45649350 0.98821605 0.99439810 0.46918084;
++	-5.46246734 -0.00361020 0.00198753 6.45885714 0.98822805 0.99440227 0.46924645;
++	-5.46482222 -0.00360718 0.00198638 6.46121504 0.98824004 0.99440644 0.46931191;
++	-5.46717138 -0.00360417 0.00198523 6.46356722 0.98825200 0.99441061 0.46937723;
++	-5.46951483 -0.00360115 0.00198408 6.46591367 0.98826395 0.99441477 0.46944241;
++	-5.47185257 -0.00359814 0.00198293 6.46825442 0.98827587 0.99441892 0.46950744;
++	-5.47418461 -0.00359514 0.00198178 6.47058947 0.98828776 0.99442308 0.46957234;
++	-5.47651097 -0.00359214 0.00198064 6.47291883 0.98829964 0.99442722 0.46963709;
++	-5.47883164 -0.00358914 0.00197949 6.47524250 0.98831150 0.99443136 0.46970170;
++	-5.48114664 -0.00358615 0.00197835 6.47756049 0.98832333 0.99443550 0.46976617;
++	-5.48345598 -0.00358316 0.00197721 6.47987281 0.98833514 0.99443963 0.46983050;
++	-5.48575966 -0.00358018 0.00197606 6.48217948 0.98834693 0.99444376 0.46989469;
++	-5.48805769 -0.00357720 0.00197492 6.48448049 0.98835870 0.99444788 0.46995873;
++	-5.49035007 -0.00357422 0.00197378 6.48677585 0.98837045 0.99445200 0.47002264;
++	-5.49263683 -0.00357125 0.00197264 6.48906558 0.98838217 0.99445611 0.47008640;
++	-5.49491797 -0.00356828 0.00197150 6.49134968 0.98839388 0.99446022 0.47015002;
++	-5.49719348 -0.00356532 0.00197036 6.49362817 0.98840556 0.99446432 0.47021350;
++	-5.49946339 -0.00356236 0.00196923 6.49590104 0.98841723 0.99446842 0.47027684;
++	-5.50172771 -0.00355940 0.00196809 6.49816831 0.98842887 0.99447251 0.47034004;
++	-5.50398643 -0.00355645 0.00196695 6.50042998 0.98844049 0.99447660 0.47040310;
++	-5.50623957 -0.00355350 0.00196582 6.50268607 0.98845209 0.99448068 0.47046602;
++	-5.50848713 -0.00355055 0.00196468 6.50493658 0.98846367 0.99448476 0.47052879;
++	-5.51072913 -0.00354761 0.00196355 6.50718152 0.98847523 0.99448884 0.47059143;
++	-5.51296557 -0.00354467 0.00196242 6.50942090 0.98848677 0.99449291 0.47065392;
++	-5.51519647 -0.00354174 0.00196129 6.51165473 0.98849828 0.99449698 0.47071627;
++	-5.51742182 -0.00353881 0.00196016 6.51388301 0.98850978 0.99450104 0.47077849;
++	-5.51964164 -0.00353588 0.00195902 6.51610576 0.98852126 0.99450510 0.47084056;
++	-5.52185594 -0.00353296 0.00195789 6.51832298 0.98853271 0.99450915 0.47090249;
++	-5.52406473 -0.00353004 0.00195677 6.52053469 0.98854415 0.99451320 0.47096428;
++	-5.52626800 -0.00352712 0.00195564 6.52274088 0.98855556 0.99451724 0.47102593;
++	-5.52846578 -0.00352421 0.00195451 6.52494157 0.98856696 0.99452128 0.47108744;
++	-5.53065808 -0.00352130 0.00195338 6.52713677 0.98857834 0.99452532 0.47114881;
++	-5.53284489 -0.00351840 0.00195226 6.52932649 0.98858969 0.99452935 0.47121004;
++	-5.53502623 -0.00351550 0.00195113 6.53151073 0.98860103 0.99453337 0.47127113;
++	-5.53720210 -0.00351260 0.00195001 6.53368950 0.98861234 0.99453740 0.47133208;
++	-5.53937252 -0.00350971 0.00194888 6.53586282 0.98862364 0.99454141 0.47139289;
++	-5.54153750 -0.00350682 0.00194776 6.53803068 0.98863491 0.99454543 0.47145356;
++	-5.54369704 -0.00350393 0.00194663 6.54019311 0.98864617 0.99454944 0.47151409;
++	-5.54585115 -0.00350105 0.00194551 6.54235010 0.98865740 0.99455344 0.47157449;
++	-5.54799984 -0.00349817 0.00194439 6.54450167 0.98866862 0.99455744 0.47163474;
++	-5.55014311 -0.00349529 0.00194327 6.54664782 0.98867982 0.99456144 0.47169485;
++	-5.55228099 -0.00349242 0.00194215 6.54878857 0.98869099 0.99456543 0.47175483;
++	-5.55441347 -0.00348955 0.00194103 6.55092392 0.98870215 0.99456942 0.47181466;
++	-5.55654057 -0.00348669 0.00193991 6.55305388 0.98871329 0.99457340 0.47187436;
++	-5.55866229 -0.00348383 0.00193879 6.55517846 0.98872441 0.99457738 0.47193391;
++	-5.56077864 -0.00348097 0.00193767 6.55729767 0.98873551 0.99458136 0.47199333;
++	-5.56288964 -0.00347811 0.00193655 6.55941152 0.98874659 0.99458533 0.47205261;
++	-5.56499528 -0.00347526 0.00193544 6.56152002 0.98875765 0.99458930 0.47211176;
++	-5.56709558 -0.00347242 0.00193432 6.56362317 0.98876869 0.99459326 0.47217076;
++	-5.56919055 -0.00346957 0.00193321 6.56572098 0.98877972 0.99459722 0.47222962;
++	-5.57128020 -0.00346673 0.00193209 6.56781347 0.98879072 0.99460118 0.47228835;
++	-5.57336453 -0.00346390 0.00193098 6.56990064 0.98880171 0.99460513 0.47234694;
++	-5.57544356 -0.00346106 0.00192986 6.57198250 0.98881267 0.99460907 0.47240539;
++	-5.57751729 -0.00345823 0.00192875 6.57405906 0.98882362 0.99461302 0.47246371;
++	-5.57958573 -0.00345541 0.00192764 6.57613032 0.98883455 0.99461696 0.47252188;
++	-5.58164889 -0.00345259 0.00192652 6.57819631 0.98884546 0.99462089 0.47257992;
++	-5.58370679 -0.00344977 0.00192541 6.58025702 0.98885635 0.99462482 0.47263782;
++	-5.58575942 -0.00344695 0.00192430 6.58231247 0.98886722 0.99462875 0.47269559;
++	-5.58780679 -0.00344414 0.00192319 6.58436266 0.98887808 0.99463267 0.47275321;
++	-5.58984893 -0.00344133 0.00192208 6.58640760 0.98888891 0.99463659 0.47281070;
++	-5.59188583 -0.00343852 0.00192097 6.58844731 0.98889973 0.99464051 0.47286806;
++	-5.59391750 -0.00343572 0.00191986 6.59048178 0.98891053 0.99464442 0.47292528;
++	-5.59594396 -0.00343292 0.00191875 6.59251104 0.98892131 0.99464833 0.47298236;
++	-5.59796521 -0.00343013 0.00191764 6.59453508 0.98893207 0.99465223 0.47303930;
++	-5.59998126 -0.00342733 0.00191653 6.59655393 0.98894281 0.99465613 0.47309611;
++	-5.60199212 -0.00342455 0.00191543 6.59856758 0.98895354 0.99466003 0.47315278;
++	-5.60399781 -0.00342176 0.00191432 6.60057605 0.98896425 0.99466392 0.47320932;
++	-5.60599831 -0.00341898 0.00191321 6.60257934 0.98897493 0.99466781 0.47326572;
++	-5.60799366 -0.00341620 0.00191211 6.60457746 0.98898561 0.99467169 0.47332198;
++	-5.60998385 -0.00341342 0.00191100 6.60657043 0.98899626 0.99467557 0.47337811;
++	-5.61196890 -0.00341065 0.00190990 6.60855825 0.98900689 0.99467945 0.47343411;
++	-5.61394881 -0.00340788 0.00190879 6.61054093 0.98901751 0.99468332 0.47348997;
++	-5.61592360 -0.00340512 0.00190769 6.61251848 0.98902811 0.99468719 0.47354569;
++	-5.61789327 -0.00340235 0.00190659 6.61449091 0.98903869 0.99469106 0.47360128;
++	-5.61985783 -0.00339960 0.00190548 6.61645823 0.98904926 0.99469492 0.47365674;
++	-5.62181729 -0.00339684 0.00190438 6.61842045 0.98905980 0.99469878 0.47371206;
++	-5.62377166 -0.00339409 0.00190328 6.62037757 0.98907033 0.99470263 0.47376724;
++	-5.62572095 -0.00339134 0.00190218 6.62232961 0.98908084 0.99470648 0.47382230;
++	-5.62766517 -0.00338859 0.00190108 6.62427658 0.98909133 0.99471033 0.47387721;
++	-5.62960432 -0.00338585 0.00189998 6.62621847 0.98910181 0.99471417 0.47393200;
++	-5.63153842 -0.00338311 0.00189888 6.62815531 0.98911227 0.99471801 0.47398665;
++	-5.63346748 -0.00338037 0.00189778 6.63008711 0.98912271 0.99472185 0.47404117;
++	-5.63539150 -0.00337764 0.00189668 6.63201386 0.98913313 0.99472568 0.47409555;
++	-5.63731050 -0.00337491 0.00189558 6.63393558 0.98914354 0.99472951 0.47414980;
++	-5.63922447 -0.00337218 0.00189448 6.63585229 0.98915393 0.99473333 0.47420392;
++	-5.64113344 -0.00336946 0.00189338 6.63776398 0.98916430 0.99473716 0.47425791;
++	-5.64303741 -0.00336674 0.00189229 6.63967067 0.98917466 0.99474097 0.47431176;
++	-5.64493639 -0.00336402 0.00189119 6.64157237 0.98918499 0.99474479 0.47436548;
++	-5.64683039 -0.00336131 0.00189009 6.64346908 0.98919531 0.99474860 0.47441907;
++	-5.64871942 -0.00335860 0.00188899 6.64536082 0.98920562 0.99475241 0.47447252;
++	-5.65060348 -0.00335589 0.00188790 6.64724759 0.98921590 0.99475621 0.47452585;
++	-5.65248259 -0.00335319 0.00188680 6.64912941 0.98922617 0.99476001 0.47457904;
++	-5.65435676 -0.00335049 0.00188571 6.65100628 0.98923642 0.99476381 0.47463210;
++	-5.65622600 -0.00334779 0.00188461 6.65287821 0.98924666 0.99476760 0.47468503;
++	-5.65809030 -0.00334509 0.00188352 6.65474521 0.98925688 0.99477139 0.47473783;
++	-5.65994970 -0.00334240 0.00188243 6.65660729 0.98926708 0.99477517 0.47479050;
++	-5.66180418 -0.00333971 0.00188133 6.65846447 0.98927727 0.99477896 0.47484303;
++	-5.66365377 -0.00333703 0.00188024 6.66031674 0.98928744 0.99478273 0.47489544;
++	-5.66549846 -0.00333434 0.00187915 6.66216412 0.98929759 0.99478651 0.47494772;
++	-5.66733828 -0.00333166 0.00187805 6.66400662 0.98930772 0.99479028 0.47499986;
++	-5.66917323 -0.00332899 0.00187696 6.66584424 0.98931784 0.99479405 0.47505187;
++	-5.67100331 -0.00332631 0.00187587 6.66767700 0.98932794 0.99479781 0.47510376;
++	-5.67282855 -0.00332364 0.00187478 6.66950490 0.98933803 0.99480158 0.47515552;
++	-5.67464894 -0.00332098 0.00187369 6.67132796 0.98934810 0.99480533 0.47520714;
++	-5.67646450 -0.00331831 0.00187260 6.67314618 0.98935815 0.99480909 0.47525864;
++	-5.67827523 -0.00331565 0.00187151 6.67495958 0.98936819 0.99481284 0.47531001;
++	-5.68008115 -0.00331299 0.00187042 6.67676816 0.98937821 0.99481659 0.47536125;
++	-5.68188226 -0.00331034 0.00186933 6.67857192 0.98938821 0.99482033 0.47541236;
++	-5.68367858 -0.00330769 0.00186824 6.68037089 0.98939820 0.99482407 0.47546334;
++	-5.68547011 -0.00330504 0.00186715 6.68216507 0.98940817 0.99482781 0.47551419;
++	-5.68725686 -0.00330239 0.00186606 6.68395447 0.98941813 0.99483154 0.47556492;
++	-5.68903884 -0.00329975 0.00186498 6.68573909 0.98942807 0.99483527 0.47561551;
++	-5.69081606 -0.00329711 0.00186389 6.68751895 0.98943799 0.99483900 0.47566598;
++	-5.69258853 -0.00329447 0.00186280 6.68929406 0.98944790 0.99484272 0.47571632;
++	-5.69435627 -0.00329184 0.00186172 6.69106443 0.98945779 0.99484644 0.47576654;
++	-5.69611926 -0.00328921 0.00186063 6.69283005 0.98946767 0.99485016 0.47581663;
++	-5.69787754 -0.00328658 0.00185954 6.69459096 0.98947753 0.99485388 0.47586659;
++	-5.69963110 -0.00328396 0.00185846 6.69634715 0.98948737 0.99485759 0.47591642;
++	-5.70137996 -0.00328133 0.00185737 6.69809863 0.98949720 0.99486129 0.47596613;
++	-5.70312413 -0.00327872 0.00185629 6.69984541 0.98950701 0.99486500 0.47601571;
++	-5.70486360 -0.00327610 0.00185520 6.70158750 0.98951681 0.99486870 0.47606516;
++	-5.70659840 -0.00327349 0.00185412 6.70332492 0.98952659 0.99487239 0.47611449;
++	-5.70832854 -0.00327088 0.00185304 6.70505766 0.98953636 0.99487609 0.47616370;
++	-5.71005402 -0.00326827 0.00185195 6.70678575 0.98954611 0.99487978 0.47621277;
++	-5.71177484 -0.00326567 0.00185087 6.70850918 0.98955584 0.99488347 0.47626172;
++	-5.71349103 -0.00326306 0.00184979 6.71022797 0.98956556 0.99488715 0.47631055;
++	-5.71520259 -0.00326047 0.00184870 6.71194212 0.98957526 0.99489083 0.47635925;
++	-5.71690953 -0.00325787 0.00184762 6.71365166 0.98958495 0.99489451 0.47640783;
++	-5.71861185 -0.00325528 0.00184654 6.71535658 0.98959462 0.99489818 0.47645628;
++	-5.72030958 -0.00325269 0.00184546 6.71705689 0.98960428 0.99490185 0.47650461;
++	-5.72200271 -0.00325010 0.00184438 6.71875261 0.98961392 0.99490552 0.47655282;
++	-5.72369126 -0.00324752 0.00184330 6.72044374 0.98962355 0.99490918 0.47660090;
++	-5.72537523 -0.00324494 0.00184222 6.72213029 0.98963316 0.99491284 0.47664886;
++	-5.72705463 -0.00324236 0.00184114 6.72381227 0.98964276 0.99491650 0.47669669;
++	-5.72872948 -0.00323979 0.00184006 6.72548970 0.98965234 0.99492016 0.47674440;
++	-5.73039979 -0.00323721 0.00183898 6.72716257 0.98966190 0.99492381 0.47679198;
++	-5.73206555 -0.00323464 0.00183790 6.72883091 0.98967145 0.99492746 0.47683945;
++	-5.73372679 -0.00323208 0.00183682 6.73049471 0.98968099 0.99493110 0.47688679;
++	-5.73538351 -0.00322952 0.00183574 6.73215399 0.98969051 0.99493474 0.47693401;
++	-5.73703572 -0.00322695 0.00183466 6.73380876 0.98970002 0.99493838 0.47698111;
++	-5.73868343 -0.00322440 0.00183359 6.73545903 0.98970951 0.99494202 0.47702808;
++	-5.74032664 -0.00322184 0.00183251 6.73710480 0.98971898 0.99494565 0.47707494;
++	-5.74196538 -0.00321929 0.00183143 6.73874609 0.98972844 0.99494928 0.47712167;
++	-5.74359964 -0.00321674 0.00183036 6.74038290 0.98973789 0.99495290 0.47716828;
++	-5.74522943 -0.00321419 0.00182928 6.74201524 0.98974732 0.99495653 0.47721477;
++	-5.74685478 -0.00321165 0.00182820 6.74364312 0.98975674 0.99496014 0.47726113;
++	-5.74847567 -0.00320911 0.00182713 6.74526656 0.98976614 0.99496376 0.47730738;
++	-5.75009213 -0.00320657 0.00182605 6.74688556 0.98977552 0.99496737 0.47735351;
++	-5.75170417 -0.00320404 0.00182498 6.74850013 0.98978490 0.99497098 0.47739952;
++	-5.75331179 -0.00320151 0.00182390 6.75011028 0.98979425 0.99497459 0.47744540;
++	-5.75491499 -0.00319898 0.00182283 6.75171602 0.98980360 0.99497819 0.47749117;
++	-5.75651380 -0.00319645 0.00182176 6.75331735 0.98981293 0.99498179 0.47753682;
++	-5.75810822 -0.00319393 0.00182068 6.75491429 0.98982224 0.99498539 0.47758234;
++	-5.75969826 -0.00319141 0.00181961 6.75650685 0.98983154 0.99498899 0.47762775;
++	-5.76128392 -0.00318889 0.00181854 6.75809504 0.98984082 0.99499258 0.47767304;
++	-5.76286523 -0.00318637 0.00181746 6.75967886 0.98985009 0.99499616 0.47771821;
++	-5.76444218 -0.00318386 0.00181639 6.76125832 0.98985935 0.99499975 0.47776327;
++	-5.76601479 -0.00318135 0.00181532 6.76283343 0.98986859 0.99500333 0.47780820;
++	-5.76758306 -0.00317884 0.00181425 6.76440421 0.98987782 0.99500691 0.47785302;
++	-5.76914700 -0.00317634 0.00181318 6.76597066 0.98988703 0.99501049 0.47789772;
++	-5.77070663 -0.00317384 0.00181210 6.76753279 0.98989623 0.99501406 0.47794230;
++	-5.77226195 -0.00317134 0.00181103 6.76909061 0.98990542 0.99501763 0.47798676;
++	-5.77381298 -0.00316884 0.00180996 6.77064413 0.98991459 0.99502119 0.47803110;
++	-5.77535971 -0.00316635 0.00180889 6.77219336 0.98992374 0.99502476 0.47807533;
++	-5.77690216 -0.00316386 0.00180782 6.77373830 0.98993289 0.99502832 0.47811945;
++	-5.77844035 -0.00316137 0.00180675 6.77527898 0.98994201 0.99503187 0.47816344;
++	-5.77997427 -0.00315889 0.00180569 6.77681538 0.98995113 0.99503543 0.47820732;
++	-5.78150394 -0.00315640 0.00180462 6.77834753 0.98996023 0.99503898 0.47825108;
++	-5.78302936 -0.00315393 0.00180355 6.77987544 0.98996931 0.99504253 0.47829473;
++	-5.78455056 -0.00315145 0.00180248 6.78139911 0.98997839 0.99504607 0.47833826;
++	-5.78606752 -0.00314897 0.00180141 6.78291855 0.98998744 0.99504961 0.47838168;
++	-5.78758027 -0.00314650 0.00180035 6.78443377 0.98999649 0.99505315 0.47842498;
++	-5.78908882 -0.00314403 0.00179928 6.78594478 0.99000552 0.99505669 0.47846816;
++	-5.79059316 -0.00314157 0.00179821 6.78745159 0.99001453 0.99506022 0.47851123;
++	-5.79209332 -0.00313911 0.00179715 6.78895421 0.99002354 0.99506375 0.47855419;
++	-5.79358930 -0.00313665 0.00179608 6.79045265 0.99003253 0.99506727 0.47859703;
++	-5.79508110 -0.00313419 0.00179501 6.79194692 0.99004150 0.99507080 0.47863976;
++	-5.79656875 -0.00313173 0.00179395 6.79343702 0.99005046 0.99507432 0.47868238;
++	-5.79805224 -0.00312928 0.00179288 6.79492296 0.99005941 0.99507784 0.47872487;
++	-5.79953159 -0.00312683 0.00179182 6.79640476 0.99006834 0.99508135 0.47876726;
++	-5.80100681 -0.00312438 0.00179075 6.79788243 0.99007726 0.99508486 0.47880954;
++	-5.80247790 -0.00312194 0.00178969 6.79935596 0.99008617 0.99508837 0.47885170;
++	-5.80394487 -0.00311950 0.00178863 6.80082538 0.99009506 0.99509187 0.47889374;
++	-5.80540774 -0.00311706 0.00178756 6.80229068 0.99010394 0.99509538 0.47893568;
++	-5.80686651 -0.00311462 0.00178650 6.80375189 0.99011281 0.99509888 0.47897750;
++	-5.80832119 -0.00311219 0.00178544 6.80520900 0.99012166 0.99510237 0.47901921;
++	-5.80977179 -0.00310976 0.00178438 6.80666204 0.99013050 0.99510587 0.47906081;
++	-5.81121832 -0.00310733 0.00178331 6.80811099 0.99013933 0.99510936 0.47910230;
++	-5.81266079 -0.00310490 0.00178225 6.80955589 0.99014814 0.99511284 0.47914367;
++	-5.81409921 -0.00310248 0.00178119 6.81099673 0.99015694 0.99511633 0.47918494;
++	-5.81553358 -0.00310006 0.00178013 6.81243352 0.99016573 0.99511981 0.47922609;
++	-5.81696392 -0.00309764 0.00177907 6.81386627 0.99017450 0.99512329 0.47926714;
++	-5.81839023 -0.00309523 0.00177801 6.81529500 0.99018326 0.99512676 0.47930807;
++	-5.81981252 -0.00309282 0.00177695 6.81671970 0.99019200 0.99513024 0.47934889;
++	-5.82123081 -0.00309041 0.00177589 6.81814040 0.99020074 0.99513370 0.47938960;
++	-5.82264509 -0.00308800 0.00177483 6.81955709 0.99020946 0.99513717 0.47943020;
++	-5.82405539 -0.00308560 0.00177377 6.82096980 0.99021816 0.99514063 0.47947070;
++	-5.82546171 -0.00308319 0.00177271 6.82237851 0.99022686 0.99514410 0.47951108;
++	-5.82686405 -0.00308079 0.00177165 6.82378326 0.99023554 0.99514755 0.47955135;
++	-5.82826243 -0.00307840 0.00177059 6.82518403 0.99024421 0.99515101 0.47959152;
++	-5.82965686 -0.00307600 0.00176954 6.82658086 0.99025286 0.99515446 0.47963157;
++	-5.83104734 -0.00307361 0.00176848 6.82797373 0.99026150 0.99515791 0.47967152;
++	-5.83243389 -0.00307122 0.00176742 6.82936266 0.99027013 0.99516135 0.47971136;
++	-5.83381650 -0.00306884 0.00176637 6.83074767 0.99027875 0.99516480 0.47975109;
++	-5.83519520 -0.00306645 0.00176531 6.83212875 0.99028735 0.99516824 0.47979072;
++	-5.83656999 -0.00306407 0.00176425 6.83350592 0.99029594 0.99517167 0.47983023;
++	-5.83794088 -0.00306169 0.00176320 6.83487918 0.99030451 0.99517511 0.47986964;
++	-5.83930788 -0.00305932 0.00176214 6.83624856 0.99031308 0.99517854 0.47990894;
++	-5.84067099 -0.00305695 0.00176109 6.83761404 0.99032163 0.99518197 0.47994814;
++	-5.84203023 -0.00305458 0.00176003 6.83897565 0.99033017 0.99518539 0.47998722;
++	-5.84338560 -0.00305221 0.00175898 6.84033340 0.99033869 0.99518881 0.48002620;
++	-5.84473712 -0.00304984 0.00175793 6.84168728 0.99034721 0.99519223 0.48006508;
++	-5.84608479 -0.00304748 0.00175687 6.84303731 0.99035571 0.99519565 0.48010385;
++	-5.84742862 -0.00304512 0.00175582 6.84438350 0.99036419 0.99519906 0.48014251;
++	-5.84876862 -0.00304276 0.00175477 6.84572586 0.99037267 0.99520247 0.48018107;
++	-5.85010480 -0.00304041 0.00175371 6.84706439 0.99038113 0.99520588 0.48021952;
++	-5.85143717 -0.00303805 0.00175266 6.84839911 0.99038958 0.99520929 0.48025787;
++	-5.85276573 -0.00303570 0.00175161 6.84973003 0.99039802 0.99521269 0.48029611;
++	-5.85409050 -0.00303336 0.00175056 6.85105714 0.99040644 0.99521609 0.48033425;
++	-5.85541148 -0.00303101 0.00174951 6.85238047 0.99041485 0.99521948 0.48037228;
++	-5.85672868 -0.00302867 0.00174846 6.85370002 0.99042325 0.99522288 0.48041021;
++	-5.85804212 -0.00302633 0.00174741 6.85501579 0.99043164 0.99522627 0.48044803;
++	-5.85935180 -0.00302399 0.00174636 6.85632781 0.99044002 0.99522965 0.48048575;
++	-5.86065772 -0.00302166 0.00174531 6.85763607 0.99044838 0.99523304 0.48052337;
++	-5.86195991 -0.00301932 0.00174426 6.85894058 0.99045673 0.99523642 0.48056088;
++	-5.86325835 -0.00301699 0.00174321 6.86024136 0.99046507 0.99523980 0.48059829;
++	-5.86455308 -0.00301467 0.00174216 6.86153841 0.99047339 0.99524317 0.48063560;
++	-5.86584409 -0.00301234 0.00174111 6.86283174 0.99048171 0.99524655 0.48067281;
++	-5.86713139 -0.00301002 0.00174006 6.86412137 0.99049001 0.99524992 0.48070991;
++	-5.86841499 -0.00300770 0.00173902 6.86540729 0.99049829 0.99525328 0.48074691;
++	-5.86969490 -0.00300538 0.00173797 6.86668952 0.99050657 0.99525665 0.48078381;
++	-5.87097113 -0.00300307 0.00173692 6.86796806 0.99051483 0.99526001 0.48082060;
++	-5.87224368 -0.00300076 0.00173588 6.86924293 0.99052309 0.99526337 0.48085730;
++	-5.87351257 -0.00299845 0.00173483 6.87051413 0.99053133 0.99526672 0.48089389;
++	-5.87477781 -0.00299614 0.00173378 6.87178167 0.99053955 0.99527008 0.48093038;
++	-5.87603940 -0.00299383 0.00173274 6.87304557 0.99054777 0.99527343 0.48096678;
++	-5.87729735 -0.00299153 0.00173169 6.87430582 0.99055597 0.99527677 0.48100307;
++	-5.87855167 -0.00298923 0.00173065 6.87556244 0.99056416 0.99528012 0.48103926;
++	-5.87980237 -0.00298694 0.00172961 6.87681543 0.99057234 0.99528346 0.48107535;
++	-5.88104946 -0.00298464 0.00172856 6.87806482 0.99058051 0.99528680 0.48111134;
++	-5.88229294 -0.00298235 0.00172752 6.87931059 0.99058867 0.99529013 0.48114723;
++	-5.88353283 -0.00298006 0.00172648 6.88055277 0.99059681 0.99529347 0.48118302;
++	-5.88476913 -0.00297777 0.00172543 6.88179135 0.99060494 0.99529680 0.48121871;
++	-5.88600185 -0.00297549 0.00172439 6.88302636 0.99061306 0.99530012 0.48125430;
++	-5.88723100 -0.00297320 0.00172335 6.88425779 0.99062117 0.99530345 0.48128980;
++	-5.88845659 -0.00297093 0.00172231 6.88548566 0.99062927 0.99530677 0.48132519;
++	-5.88967862 -0.00296865 0.00172127 6.88670998 0.99063735 0.99531009 0.48136049;
++	-5.89089712 -0.00296637 0.00172022 6.88793074 0.99064542 0.99531340 0.48139569;
++	-5.89211207 -0.00296410 0.00171918 6.88914797 0.99065348 0.99531671 0.48143079;
++	-5.89332350 -0.00296183 0.00171814 6.89036167 0.99066153 0.99532002 0.48146579;
++	-5.89453141 -0.00295956 0.00171710 6.89157185 0.99066957 0.99532333 0.48150069;
++	-5.89573581 -0.00295730 0.00171607 6.89277851 0.99067760 0.99532664 0.48153550;
++	-5.89693670 -0.00295504 0.00171503 6.89398167 0.99068561 0.99532994 0.48157021;
++	-5.89813411 -0.00295278 0.00171399 6.89518133 0.99069361 0.99533324 0.48160482;
++	-5.89932802 -0.00295052 0.00171295 6.89637751 0.99070160 0.99533653 0.48163934;
++	-5.90051846 -0.00294826 0.00171191 6.89757020 0.99070958 0.99533983 0.48167376;
++	-5.90170544 -0.00294601 0.00171088 6.89875943 0.99071755 0.99534312 0.48170809;
++	-5.90288895 -0.00294376 0.00170984 6.89994519 0.99072550 0.99534640 0.48174231;
++	-5.90406901 -0.00294151 0.00170880 6.90112750 0.99073345 0.99534969 0.48177645;
++	-5.90524562 -0.00293927 0.00170777 6.90230636 0.99074138 0.99535297 0.48181048;
++	-5.90641881 -0.00293702 0.00170673 6.90348178 0.99074930 0.99535625 0.48184443;
++	-5.90758856 -0.00293478 0.00170569 6.90465378 0.99075721 0.99535952 0.48187827;
++	-5.90875490 -0.00293254 0.00170466 6.90582235 0.99076511 0.99536280 0.48191202;
++	-5.90991782 -0.00293031 0.00170363 6.90698751 0.99077300 0.99536607 0.48194568;
++	-5.91107735 -0.00292807 0.00170259 6.90814927 0.99078087 0.99536933 0.48197924;
++	-5.91223348 -0.00292584 0.00170156 6.90930763 0.99078874 0.99537260 0.48201271;
++	-5.91338622 -0.00292362 0.00170052 6.91046261 0.99079659 0.99537586 0.48204608;
++	-5.91453559 -0.00292139 0.00169949 6.91161420 0.99080443 0.99537912 0.48207936;
++	-5.91568159 -0.00291917 0.00169846 6.91276243 0.99081226 0.99538238 0.48211255;
++	-5.91682423 -0.00291694 0.00169743 6.91390729 0.99082008 0.99538563 0.48214564;
++	-5.91796352 -0.00291472 0.00169639 6.91504879 0.99082789 0.99538888 0.48217864;
++	-5.91909946 -0.00291251 0.00169536 6.91618695 0.99083569 0.99539213 0.48221155;
++	-5.92023207 -0.00291029 0.00169433 6.91732177 0.99084347 0.99539537 0.48224436;
++	-5.92136135 -0.00290808 0.00169330 6.91845327 0.99085124 0.99539862 0.48227709;
++	-5.92248731 -0.00290587 0.00169227 6.91958144 0.99085901 0.99540186 0.48230971;
++	-5.92360996 -0.00290367 0.00169124 6.92070629 0.99086676 0.99540509 0.48234225;
++	-5.92472930 -0.00290146 0.00169021 6.92182784 0.99087450 0.99540833 0.48237470;
++	-5.92584536 -0.00289926 0.00168918 6.92294610 0.99088223 0.99541156 0.48240705;
++	-5.92695812 -0.00289706 0.00168816 6.92406106 0.99088995 0.99541479 0.48243931;
++	-5.92806761 -0.00289486 0.00168713 6.92517274 0.99089766 0.99541801 0.48247148;
++	-5.92917382 -0.00289267 0.00168610 6.92628115 0.99090535 0.99542123 0.48250356;
++	-5.93027677 -0.00289047 0.00168507 6.92738630 0.99091304 0.99542445 0.48253555;
++	-5.93137647 -0.00288828 0.00168405 6.92848819 0.99092071 0.99542767 0.48256745;
++	-5.93247293 -0.00288610 0.00168302 6.92958683 0.99092837 0.99543089 0.48259926;
++	-5.93356614 -0.00288391 0.00168199 6.93068223 0.99093603 0.99543410 0.48263098;
++	-5.93465613 -0.00288173 0.00168097 6.93177440 0.99094367 0.99543731 0.48266260;
++	-5.93574289 -0.00287955 0.00167994 6.93286334 0.99095130 0.99544051 0.48269414;
++	-5.93682644 -0.00287737 0.00167892 6.93394907 0.99095892 0.99544371 0.48272559;
++	-5.93790678 -0.00287519 0.00167789 6.93503159 0.99096653 0.99544692 0.48275695;
++	-5.93898392 -0.00287302 0.00167687 6.93611091 0.99097412 0.99545011 0.48278822;
++	-5.94005788 -0.00287085 0.00167585 6.93718703 0.99098171 0.99545331 0.48281940;
++	-5.94112865 -0.00286868 0.00167482 6.93825997 0.99098929 0.99545650 0.48285049;
++	-5.94219625 -0.00286651 0.00167380 6.93932974 0.99099685 0.99545969 0.48288150;
++	-5.94326068 -0.00286435 0.00167278 6.94039634 0.99100441 0.99546288 0.48291241;
++	-5.94432196 -0.00286218 0.00167176 6.94145977 0.99101195 0.99546606 0.48294324;
++	-5.94538008 -0.00286002 0.00167074 6.94252006 0.99101949 0.99546924 0.48297398;
++	-5.94643506 -0.00285787 0.00166971 6.94357720 0.99102701 0.99547242 0.48300463;
++	-5.94748691 -0.00285571 0.00166869 6.94463120 0.99103452 0.99547559 0.48303520;
++	-5.94853563 -0.00285356 0.00166767 6.94568207 0.99104202 0.99547877 0.48306568;
++	-5.94958124 -0.00285141 0.00166666 6.94672983 0.99104951 0.99548194 0.48309607;
++	-5.95062373 -0.00284926 0.00166564 6.94777447 0.99105699 0.99548510 0.48312637;
++	-5.95166312 -0.00284711 0.00166462 6.94881600 0.99106446 0.99548827 0.48315659;
++	-5.95269941 -0.00284497 0.00166360 6.94985444 0.99107192 0.99549143 0.48318672;
++	-5.95373262 -0.00284283 0.00166258 6.95088979 0.99107937 0.99549459 0.48321676;
++	-5.95476275 -0.00284069 0.00166156 6.95192206 0.99108681 0.99549775 0.48324672;
++	-5.95578980 -0.00283855 0.00166055 6.95295125 0.99109423 0.99550090 0.48327660;
++	-5.95681380 -0.00283642 0.00165953 6.95397738 0.99110165 0.99550405 0.48330638;
++	-5.95783474 -0.00283429 0.00165852 6.95500045 0.99110906 0.99550720 0.48333609;
++	-5.95885262 -0.00283216 0.00165750 6.95602047 0.99111645 0.99551034 0.48336571;
++	-5.95986747 -0.00283003 0.00165648 6.95703744 0.99112384 0.99551348 0.48339524;
++	-5.96087929 -0.00282791 0.00165547 6.95805138 0.99113121 0.99551662 0.48342469;
++	-5.96188808 -0.00282578 0.00165446 6.95906230 0.99113858 0.99551976 0.48345405;
++	-5.96289385 -0.00282366 0.00165344 6.96007019 0.99114593 0.99552290 0.48348333;
++	-5.96389662 -0.00282154 0.00165243 6.96107507 0.99115327 0.99552603 0.48351252;
++	-5.96489638 -0.00281943 0.00165142 6.96207695 0.99116061 0.99552916 0.48354163;
++	-5.96589315 -0.00281732 0.00165040 6.96307584 0.99116793 0.99553228 0.48357066;
++	-5.96688693 -0.00281520 0.00164939 6.96407173 0.99117524 0.99553540 0.48359961;
++	-5.96787774 -0.00281310 0.00164838 6.96506464 0.99118255 0.99553852 0.48362846;
++	-5.96886557 -0.00281099 0.00164737 6.96605458 0.99118984 0.99554164 0.48365724;
++	-5.96985044 -0.00280888 0.00164636 6.96704156 0.99119712 0.99554476 0.48368594;
++	-5.97083235 -0.00280678 0.00164535 6.96802557 0.99120439 0.99554787 0.48371455;
++	-5.97181132 -0.00280468 0.00164434 6.96900664 0.99121165 0.99555098 0.48374308;
++	-5.97278734 -0.00280258 0.00164333 6.96998476 0.99121891 0.99555409 0.48377153;
++	-5.97376044 -0.00280049 0.00164232 6.97095995 0.99122615 0.99555719 0.48379989;
++	-5.97473060 -0.00279840 0.00164131 6.97193221 0.99123338 0.99556029 0.48382818;
++	-5.97569785 -0.00279631 0.00164031 6.97290155 0.99124060 0.99556339 0.48385638;
++	-5.97666219 -0.00279422 0.00163930 6.97386797 0.99124781 0.99556648 0.48388450;
++	-5.97762362 -0.00279213 0.00163829 6.97483149 0.99125501 0.99556958 0.48391254;
++	-5.97858216 -0.00279005 0.00163729 6.97579212 0.99126220 0.99557267 0.48394050;
++	-5.97953782 -0.00278796 0.00163628 6.97674985 0.99126938 0.99557576 0.48396837;
++	-5.98049059 -0.00278589 0.00163527 6.97770470 0.99127655 0.99557884 0.48399617;
++	-5.98144049 -0.00278381 0.00163427 6.97865668 0.99128371 0.99558192 0.48402389;
++	-5.98238752 -0.00278173 0.00163326 6.97960579 0.99129087 0.99558500 0.48405152;
++	-5.98333170 -0.00277966 0.00163226 6.98055204 0.99129801 0.99558808 0.48407908;
++	-5.98427302 -0.00277759 0.00163126 6.98149543 0.99130514 0.99559115 0.48410655;
++	-5.98521150 -0.00277552 0.00163025 6.98243598 0.99131226 0.99559422 0.48413395;
++	-5.98614715 -0.00277346 0.00162925 6.98337369 0.99131937 0.99559729 0.48416127;
++	-5.98707997 -0.00277139 0.00162825 6.98430858 0.99132647 0.99560036 0.48418851;
++	-5.98800996 -0.00276933 0.00162725 6.98524063 0.99133356 0.99560342 0.48421567;
++	-5.98893715 -0.00276727 0.00162625 6.98616988 0.99134064 0.99560648 0.48424275;
++	-5.98986153 -0.00276521 0.00162525 6.98709631 0.99134771 0.99560954 0.48426975;
++	-5.99078310 -0.00276316 0.00162425 6.98801995 0.99135477 0.99561259 0.48429667;
++	-5.99170189 -0.00276111 0.00162325 6.98894079 0.99136183 0.99561565 0.48432352;
++	-5.99261789 -0.00275906 0.00162225 6.98985884 0.99136887 0.99561870 0.48435028;
++	-5.99353112 -0.00275701 0.00162125 6.99077411 0.99137590 0.99562174 0.48437697;
++	-5.99444158 -0.00275496 0.00162025 6.99168662 0.99138292 0.99562479 0.48440358;
++	-5.99534927 -0.00275292 0.00161925 6.99259635 0.99138994 0.99562783 0.48443012;
++	-5.99625421 -0.00275088 0.00161826 6.99350334 0.99139694 0.99563087 0.48445657;
++	-5.99715640 -0.00274884 0.00161726 6.99440757 0.99140393 0.99563390 0.48448295;
++	-5.99805585 -0.00274680 0.00161626 6.99530906 0.99141092 0.99563694 0.48450926;
++	-5.99895257 -0.00274476 0.00161527 6.99620781 0.99141789 0.99563997 0.48453548;
++	-5.99984656 -0.00274273 0.00161427 6.99710383 0.99142485 0.99564299 0.48456163;
++	-6.00073784 -0.00274070 0.00161328 6.99799714 0.99143181 0.99564602 0.48458771;
++	-6.00162640 -0.00273867 0.00161228 6.99888773 0.99143875 0.99564904 0.48461370;
++	-6.00251225 -0.00273665 0.00161129 6.99977561 0.99144569 0.99565206 0.48463962;
++	-6.00339541 -0.00273462 0.00161030 7.00066079 0.99145261 0.99565508 0.48466547;
++	-6.00427588 -0.00273260 0.00160931 7.00154328 0.99145953 0.99565809 0.48469124;
++	-6.00515367 -0.00273058 0.00160831 7.00242309 0.99146644 0.99566111 0.48471693;
++	-6.00602878 -0.00272856 0.00160732 7.00330021 0.99147334 0.99566411 0.48474255;
++	-6.00690122 -0.00272655 0.00160633 7.00417467 0.99148022 0.99566712 0.48476810;
++	-6.00777100 -0.00272454 0.00160534 7.00504646 0.99148710 0.99567012 0.48479357;
++	-6.00863812 -0.00272252 0.00160435 7.00591560 0.99149397 0.99567313 0.48481896;
++	-6.00950260 -0.00272052 0.00160336 7.00678208 0.99150083 0.99567612 0.48484429;
++	-6.01036444 -0.00271851 0.00160237 7.00764593 0.99150768 0.99567912 0.48486953;
++	-6.01122364 -0.00271651 0.00160138 7.00850713 0.99151452 0.99568211 0.48489471;
++	-6.01208022 -0.00271450 0.00160039 7.00936571 0.99152135 0.99568510 0.48491980;
++	-6.01293417 -0.00271250 0.00159941 7.01022167 0.99152817 0.99568809 0.48494483;
++	-6.01378552 -0.00271051 0.00159842 7.01107501 0.99153498 0.99569107 0.48496978;
++	-6.01463426 -0.00270851 0.00159743 7.01192575 0.99154179 0.99569406 0.48499466;
++	-6.01548040 -0.00270652 0.00159645 7.01277388 0.99154858 0.99569704 0.48501947;
++	-6.01632394 -0.00270453 0.00159546 7.01361942 0.99155537 0.99570001 0.48504420;
++	-6.01716491 -0.00270254 0.00159448 7.01446237 0.99156214 0.99570299 0.48506886;
++	-6.01800329 -0.00270055 0.00159349 7.01530274 0.99156891 0.99570596 0.48509345;
++	-6.01883911 -0.00269856 0.00159251 7.01614055 0.99157566 0.99570893 0.48511797;
++	-6.01967236 -0.00269658 0.00159153 7.01697578 0.99158241 0.99571189 0.48514241;
++	-6.02050306 -0.00269460 0.00159054 7.01780845 0.99158915 0.99571486 0.48516678;
++	-6.02133120 -0.00269262 0.00158956 7.01863858 0.99159588 0.99571782 0.48519108;
++	-6.02215680 -0.00269065 0.00158858 7.01946615 0.99160260 0.99572077 0.48521531;
++	-6.02297987 -0.00268867 0.00158760 7.02029119 0.99160931 0.99572373 0.48523947;
++	-6.02380040 -0.00268670 0.00158662 7.02111370 0.99161601 0.99572668 0.48526355;
++	-6.02461841 -0.00268473 0.00158564 7.02193368 0.99162270 0.99572963 0.48528757;
++	-6.02543391 -0.00268276 0.00158466 7.02275115 0.99162938 0.99573258 0.48531151;
++	-6.02624690 -0.00268080 0.00158368 7.02356610 0.99163606 0.99573552 0.48533539;
++	-6.02705738 -0.00267883 0.00158270 7.02437855 0.99164272 0.99573847 0.48535919;
++	-6.02786537 -0.00267687 0.00158172 7.02518850 0.99164938 0.99574141 0.48538292;
++	-6.02867087 -0.00267491 0.00158074 7.02599596 0.99165602 0.99574434 0.48540659;
++	-6.02947389 -0.00267296 0.00157977 7.02680093 0.99166266 0.99574728 0.48543018;
++	-6.03027443 -0.00267100 0.00157879 7.02760343 0.99166929 0.99575021 0.48545370;
++	-6.03107251 -0.00266905 0.00157781 7.02840346 0.99167591 0.99575314 0.48547716;
++	-6.03186812 -0.00266710 0.00157684 7.02920102 0.99168252 0.99575606 0.48550054;
++	-6.03266127 -0.00266515 0.00157586 7.02999612 0.99168912 0.99575899 0.48552386;
++	-6.03345198 -0.00266320 0.00157489 7.03078878 0.99169571 0.99576191 0.48554710;
++	-6.03424025 -0.00266126 0.00157391 7.03157899 0.99170230 0.99576483 0.48557028;
++	-6.03502608 -0.00265932 0.00157294 7.03236676 0.99170887 0.99576774 0.48559339;
++	-6.03580948 -0.00265738 0.00157197 7.03315210 0.99171544 0.99577065 0.48561643;
++	-6.03659046 -0.00265544 0.00157100 7.03393502 0.99172199 0.99577356 0.48563940;
++	-6.03736903 -0.00265350 0.00157002 7.03471552 0.99172854 0.99577647 0.48566231;
++	-6.03814518 -0.00265157 0.00156905 7.03549361 0.99173508 0.99577938 0.48568514;
++	-6.03891894 -0.00264964 0.00156808 7.03626930 0.99174161 0.99578228 0.48570791;
++	-6.03969029 -0.00264771 0.00156711 7.03704258 0.99174813 0.99578518 0.48573061;
++	-6.04045926 -0.00264578 0.00156614 7.03781348 0.99175464 0.99578807 0.48575324;
++	-6.04122585 -0.00264386 0.00156517 7.03858199 0.99176115 0.99579097 0.48577581;
++	-6.04199006 -0.00264193 0.00156421 7.03934813 0.99176764 0.99579386 0.48579831;
++	-6.04275190 -0.00264001 0.00156324 7.04011189 0.99177413 0.99579675 0.48582075;
++	-6.04351138 -0.00263809 0.00156227 7.04087328 0.99178061 0.99579964 0.48584311;
++	-6.04426850 -0.00263618 0.00156130 7.04163232 0.99178707 0.99580252 0.48586541;
++	-6.04502327 -0.00263426 0.00156034 7.04238901 0.99179353 0.99580540 0.48588765;
++	-6.04577570 -0.00263235 0.00155937 7.04314335 0.99179998 0.99580828 0.48590981;
++	-6.04652579 -0.00263044 0.00155841 7.04389535 0.99180643 0.99581115 0.48593191;
++	-6.04727354 -0.00262853 0.00155744 7.04464502 0.99181286 0.99581403 0.48595395;
++	-6.04801898 -0.00262662 0.00155648 7.04539236 0.99181929 0.99581690 0.48597592;
++	-6.04876210 -0.00262472 0.00155552 7.04613738 0.99182570 0.99581977 0.48599782;
++	-6.04950290 -0.00262282 0.00155455 7.04688009 0.99183211 0.99582263 0.48601966;
++	-6.05024140 -0.00262092 0.00155359 7.04762049 0.99183851 0.99582549 0.48604144;
++	-6.05097760 -0.00261902 0.00155263 7.04835858 0.99184490 0.99582835 0.48606315;
++	-6.05171151 -0.00261712 0.00155167 7.04909439 0.99185128 0.99583121 0.48608479;
++	-6.05244313 -0.00261523 0.00155071 7.04982791 0.99185765 0.99583407 0.48610637;
++	-6.05317248 -0.00261334 0.00154975 7.05055914 0.99186402 0.99583692 0.48612789;
++	-6.05389955 -0.00261145 0.00154879 7.05128810 0.99187037 0.99583977 0.48614934;
++	-6.05462435 -0.00260956 0.00154783 7.05201479 0.99187672 0.99584261 0.48617073;
++	-6.05534689 -0.00260767 0.00154687 7.05273922 0.99188306 0.99584546 0.48619205;
++	-6.05606718 -0.00260579 0.00154591 7.05346139 0.99188939 0.99584830 0.48621331;
++	-6.05678521 -0.00260391 0.00154495 7.05418131 0.99189571 0.99585114 0.48623450;
++	-6.05750101 -0.00260203 0.00154400 7.05489898 0.99190203 0.99585398 0.48625564;
++	-6.05821457 -0.00260015 0.00154304 7.05561442 0.99190833 0.99585681 0.48627671;
++	-6.05892590 -0.00259827 0.00154209 7.05632763 0.99191463 0.99585964 0.48629772;
++	-6.05963501 -0.00259640 0.00154113 7.05703861 0.99192092 0.99586247 0.48631866;
++	-6.06034190 -0.00259453 0.00154018 7.05774737 0.99192720 0.99586529 0.48633954;
++	-6.06104657 -0.00259266 0.00153922 7.05845392 0.99193347 0.99586812 0.48636036;
++	-6.06174905 -0.00259079 0.00153827 7.05915826 0.99193973 0.99587094 0.48638112;
++	-6.06244932 -0.00258893 0.00153732 7.05986040 0.99194598 0.99587376 0.48640181;
++	-6.06314740 -0.00258706 0.00153637 7.06056034 0.99195223 0.99587657 0.48642244;
++	-6.06384330 -0.00258520 0.00153541 7.06125810 0.99195847 0.99587938 0.48644301;
++	-6.06453701 -0.00258334 0.00153446 7.06195367 0.99196470 0.99588220 0.48646352;
++	-6.06522855 -0.00258148 0.00153351 7.06264707 0.99197092 0.99588500 0.48648397;
++	-6.06591793 -0.00257963 0.00153256 7.06333830 0.99197713 0.99588781 0.48650436;
++	-6.06660514 -0.00257778 0.00153161 7.06402736 0.99198334 0.99589061 0.48652468;
++	-6.06729019 -0.00257592 0.00153067 7.06471427 0.99198953 0.99589341 0.48654494;
++	-6.06797309 -0.00257408 0.00152972 7.06539902 0.99199572 0.99589621 0.48656515;
++	-6.06865385 -0.00257223 0.00152877 7.06608163 0.99200190 0.99589900 0.48658529;
++	-6.06933248 -0.00257038 0.00152782 7.06676209 0.99200807 0.99590179 0.48660537;
++	-6.07000896 -0.00256854 0.00152688 7.06744043 0.99201424 0.99590458 0.48662539;
++	-6.07068333 -0.00256670 0.00152593 7.06811663 0.99202039 0.99590737 0.48664535;
++	-6.07135557 -0.00256486 0.00152499 7.06879071 0.99202654 0.99591015 0.48666525;
++	-6.07202570 -0.00256302 0.00152404 7.06946268 0.99203268 0.99591294 0.48668509;
++	-6.07269372 -0.00256119 0.00152310 7.07013254 0.99203881 0.99591572 0.48670487;
++	-6.07335964 -0.00255935 0.00152215 7.07080029 0.99204493 0.99591849 0.48672460;
++	-6.07402346 -0.00255752 0.00152121 7.07146594 0.99205104 0.99592127 0.48674426;
++	-6.07468520 -0.00255569 0.00152027 7.07212950 0.99205715 0.99592404 0.48676386;
++	-6.07534484 -0.00255387 0.00151933 7.07279098 0.99206325 0.99592681 0.48678341;
++	-6.07600241 -0.00255204 0.00151839 7.07345037 0.99206934 0.99592957 0.48680289;
++	-6.07665791 -0.00255022 0.00151745 7.07410769 0.99207542 0.99593234 0.48682232;
++	-6.07731134 -0.00254840 0.00151651 7.07476294 0.99208149 0.99593510 0.48684169;
++	-6.07796271 -0.00254658 0.00151557 7.07541613 0.99208756 0.99593786 0.48686100;
++	-6.07861202 -0.00254476 0.00151463 7.07606726 0.99209362 0.99594061 0.48688025;
++	-6.07925928 -0.00254294 0.00151369 7.07671634 0.99209967 0.99594336 0.48689944;
++	-6.07990450 -0.00254113 0.00151275 7.07736337 0.99210571 0.99594612 0.48691858;
++	-6.08054769 -0.00253932 0.00151182 7.07800837 0.99211174 0.99594886 0.48693766;
++	-6.08118884 -0.00253751 0.00151088 7.07865133 0.99211777 0.99595161 0.48695668;
++	-6.08182796 -0.00253570 0.00150994 7.07929226 0.99212379 0.99595435 0.48697564;
++	-6.08246507 -0.00253390 0.00150901 7.07993117 0.99212980 0.99595709 0.48699454;
++	-6.08310016 -0.00253210 0.00150807 7.08056806 0.99213580 0.99595983 0.48701339;
++	-6.08373324 -0.00253029 0.00150714 7.08120294 0.99214179 0.99596257 0.48703218;
++	-6.08436431 -0.00252849 0.00150621 7.08183582 0.99214778 0.99596530 0.48705092;
++	-6.08499339 -0.00252670 0.00150527 7.08246669 0.99215376 0.99596803 0.48706960;
++	-6.08562048 -0.00252490 0.00150434 7.08309558 0.99215973 0.99597076 0.48708821;
++	-6.08624558 -0.00252311 0.00150341 7.08372247 0.99216569 0.99597348 0.48710678;
++	-6.08686870 -0.00252132 0.00150248 7.08434738 0.99217164 0.99597620 0.48712529;
++	-6.08748985 -0.00251953 0.00150155 7.08497032 0.99217759 0.99597892 0.48714374;
++	-6.08810902 -0.00251774 0.00150062 7.08559128 0.99218353 0.99598164 0.48716214;
++	-6.08872624 -0.00251595 0.00149969 7.08621028 0.99218946 0.99598436 0.48718048;
++	-6.08934149 -0.00251417 0.00149876 7.08682732 0.99219538 0.99598707 0.48719876;
++	-6.08995479 -0.00251239 0.00149784 7.08744241 0.99220130 0.99598978 0.48721699;
++	-6.09056615 -0.00251061 0.00149691 7.08805554 0.99220721 0.99599248 0.48723517;
++	-6.09117556 -0.00250883 0.00149598 7.08866673 0.99221310 0.99599519 0.48725329;
++	-6.09178304 -0.00250705 0.00149506 7.08927599 0.99221900 0.99599789 0.48727135;
++	-6.09238859 -0.00250528 0.00149413 7.08988331 0.99222488 0.99600059 0.48728936;
++	-6.09299221 -0.00250351 0.00149320 7.09048871 0.99223076 0.99600329 0.48730732;
++	-6.09359392 -0.00250174 0.00149228 7.09109218 0.99223663 0.99600598 0.48732522;
++	-6.09419371 -0.00249997 0.00149136 7.09169374 0.99224249 0.99600867 0.48734306;
++	-6.09479159 -0.00249820 0.00149043 7.09229339 0.99224834 0.99601136 0.48736085;
++	-6.09538757 -0.00249644 0.00148951 7.09289113 0.99225419 0.99601405 0.48737859;
++	-6.09598165 -0.00249468 0.00148859 7.09348698 0.99226003 0.99601673 0.48739628;
++	-6.09657385 -0.00249292 0.00148767 7.09408093 0.99226586 0.99601942 0.48741390;
++	-6.09716415 -0.00249116 0.00148675 7.09467299 0.99227168 0.99602210 0.48743148;
++	-6.09775257 -0.00248940 0.00148583 7.09526317 0.99227749 0.99602477 0.48744900;
++	-6.09833912 -0.00248765 0.00148491 7.09585148 0.99228330 0.99602745 0.48746647;
++	-6.09892380 -0.00248589 0.00148399 7.09643791 0.99228910 0.99603012 0.48748389;
++	-6.09950662 -0.00248414 0.00148307 7.09702248 0.99229489 0.99603279 0.48750125;
++	-6.10008757 -0.00248239 0.00148215 7.09760518 0.99230068 0.99603545 0.48751856;
++	-6.10066667 -0.00248065 0.00148124 7.09818603 0.99230646 0.99603812 0.48753582;
++	-6.10124393 -0.00247890 0.00148032 7.09876503 0.99231223 0.99604078 0.48755302;
++	-6.10181934 -0.00247716 0.00147941 7.09934218 0.99231799 0.99604344 0.48757018;
++	-6.10239291 -0.00247542 0.00147849 7.09991749 0.99232374 0.99604609 0.48758728;
++	-6.10296465 -0.00247368 0.00147758 7.10049097 0.99232949 0.99604875 0.48760432;
++	-6.10353456 -0.00247194 0.00147666 7.10106262 0.99233523 0.99605140 0.48762132;
++	-6.10410265 -0.00247020 0.00147575 7.10163245 0.99234096 0.99605405 0.48763826;
++	-6.10466892 -0.00246847 0.00147484 7.10220045 0.99234669 0.99605669 0.48765516;
++	-6.10523338 -0.00246674 0.00147393 7.10276665 0.99235240 0.99605934 0.48767200;
++	-6.10579604 -0.00246501 0.00147301 7.10333103 0.99235811 0.99606198 0.48768879;
++	-6.10635689 -0.00246328 0.00147210 7.10389362 0.99236382 0.99606462 0.48770552;
++	-6.10691595 -0.00246155 0.00147119 7.10445440 0.99236951 0.99606725 0.48772221;
++	-6.10747322 -0.00245983 0.00147028 7.10501339 0.99237520 0.99606989 0.48773885;
++	-6.10802871 -0.00245811 0.00146937 7.10557060 0.99238088 0.99607252 0.48775543;
++	-6.10858241 -0.00245639 0.00146847 7.10612603 0.99238655 0.99607515 0.48777197;
++	-6.10913434 -0.00245467 0.00146756 7.10667967 0.99239222 0.99607777 0.48778845;
++	-6.10968450 -0.00245295 0.00146665 7.10723155 0.99239787 0.99608040 0.48780488;
++	-6.11023289 -0.00245123 0.00146575 7.10778166 0.99240353 0.99608302 0.48782127;
++	-6.11077953 -0.00244952 0.00146484 7.10833001 0.99240917 0.99608564 0.48783760;
++	-6.11132441 -0.00244781 0.00146393 7.10887660 0.99241480 0.99608825 0.48785388;
++	-6.11186754 -0.00244610 0.00146303 7.10942144 0.99242043 0.99609087 0.48787012;
++	-6.11240893 -0.00244439 0.00146213 7.10996454 0.99242605 0.99609348 0.48788630;
++	-6.11294858 -0.00244269 0.00146122 7.11050589 0.99243167 0.99609609 0.48790243;
++	-6.11348649 -0.00244098 0.00146032 7.11104551 0.99243728 0.99609869 0.48791852;
++	-6.11402268 -0.00243928 0.00145942 7.11158340 0.99244288 0.99610130 0.48793455;
++	-6.11455714 -0.00243758 0.00145852 7.11211956 0.99244847 0.99610390 0.48795053;
++	-6.11508989 -0.00243588 0.00145762 7.11265400 0.99245405 0.99610650 0.48796647;
++	-6.11562092 -0.00243419 0.00145672 7.11318673 0.99245963 0.99610909 0.48798236;
++	-6.11615024 -0.00243249 0.00145582 7.11371775 0.99246520 0.99611169 0.48799820;
++	-6.11667786 -0.00243080 0.00145492 7.11424706 0.99247077 0.99611428 0.48801399;
++	-6.11720378 -0.00242911 0.00145402 7.11477467 0.99247632 0.99611687 0.48802973;
++	-6.11772800 -0.00242742 0.00145312 7.11530058 0.99248187 0.99611945 0.48804543;
++	-6.11825054 -0.00242574 0.00145223 7.11582481 0.99248741 0.99612204 0.48806107;
++	-6.11877140 -0.00242405 0.00145133 7.11634735 0.99249295 0.99612462 0.48807667;
++	-6.11929057 -0.00242237 0.00145043 7.11686820 0.99249847 0.99612720 0.48809222;
++	-6.11980807 -0.00242069 0.00144954 7.11738739 0.99250400 0.99612978 0.48810772;
++	-6.12032390 -0.00241901 0.00144864 7.11790490 0.99250951 0.99613235 0.48812317;
++	-6.12083807 -0.00241733 0.00144775 7.11842074 0.99251501 0.99613492 0.48813858;
++	-6.12135058 -0.00241565 0.00144686 7.11893493 0.99252051 0.99613749 0.48815394;
++	-6.12186144 -0.00241398 0.00144597 7.11944746 0.99252601 0.99614006 0.48816925;
++	-6.12237064 -0.00241231 0.00144507 7.11995834 0.99253149 0.99614262 0.48818451;
++	-6.12287820 -0.00241064 0.00144418 7.12046757 0.99253697 0.99614518 0.48819973;
++	-6.12338412 -0.00240897 0.00144329 7.12097516 0.99254244 0.99614774 0.48821490;
++	-6.12388841 -0.00240730 0.00144240 7.12148111 0.99254790 0.99615030 0.48823002;
++	-6.12439107 -0.00240563 0.00144151 7.12198543 0.99255336 0.99615285 0.48824510;
++	-6.12489210 -0.00240397 0.00144062 7.12248813 0.99255881 0.99615540 0.48826013;
++	-6.12539151 -0.00240231 0.00143974 7.12298920 0.99256425 0.99615795 0.48827512;
++	-6.12588931 -0.00240065 0.00143885 7.12348866 0.99256969 0.99616050 0.48829005;
++	-6.12638549 -0.00239899 0.00143796 7.12398650 0.99257512 0.99616304 0.48830495;
++	-6.12688007 -0.00239734 0.00143708 7.12448273 0.99258054 0.99616559 0.48831979;
++	-6.12737305 -0.00239568 0.00143619 7.12497736 0.99258596 0.99616813 0.48833460;
++	-6.12786443 -0.00239403 0.00143531 7.12547040 0.99259136 0.99617066 0.48834935;
++	-6.12835422 -0.00239238 0.00143442 7.12596184 0.99259676 0.99617320 0.48836406;
++	-6.12884242 -0.00239073 0.00143354 7.12645169 0.99260216 0.99617573 0.48837872;
++	-6.12932904 -0.00238908 0.00143266 7.12693996 0.99260755 0.99617826 0.48839334;
++	-6.12981408 -0.00238744 0.00143177 7.12742664 0.99261293 0.99618079 0.48840792;
++	-6.13029755 -0.00238580 0.00143089 7.12791176 0.99261830 0.99618331 0.48842244;
++	-6.13077945 -0.00238416 0.00143001 7.12839530 0.99262367 0.99618583 0.48843693;
++	-6.13125979 -0.00238252 0.00142913 7.12887728 0.99262903 0.99618835 0.48845136;
++	-6.13173857 -0.00238088 0.00142825 7.12935769 0.99263438 0.99619087 0.48846576;
++	-6.13221579 -0.00237924 0.00142737 7.12983655 0.99263972 0.99619339 0.48848011;
++	-6.13269147 -0.00237761 0.00142649 7.13031386 0.99264506 0.99619590 0.48849441;
++	-6.13316560 -0.00237598 0.00142562 7.13078962 0.99265040 0.99619841 0.48850867;
++	-6.13363819 -0.00237434 0.00142474 7.13126384 0.99265572 0.99620092 0.48852289;
++	-6.13410924 -0.00237272 0.00142386 7.13173652 0.99266104 0.99620342 0.48853706;
++	-6.13457876 -0.00237109 0.00142299 7.13220767 0.99266635 0.99620593 0.48855119;
++	-6.13504676 -0.00236946 0.00142211 7.13267729 0.99267166 0.99620843 0.48856528;
++	-6.13551323 -0.00236784 0.00142124 7.13314539 0.99267696 0.99621092 0.48857932;
++	-6.13597818 -0.00236622 0.00142036 7.13361197 0.99268225 0.99621342 0.48859332;
++	-6.13644163 -0.00236460 0.00141949 7.13407703 0.99268753 0.99621591 0.48860727;
++	-6.13690356 -0.00236298 0.00141862 7.13454058 0.99269281 0.99621840 0.48862118;
++	-6.13736399 -0.00236136 0.00141774 7.13500263 0.99269808 0.99622089 0.48863505;
++	-6.13782292 -0.00235975 0.00141687 7.13546317 0.99270335 0.99622338 0.48864888;
++	-6.13828035 -0.00235814 0.00141600 7.13592222 0.99270861 0.99622586 0.48866266;
++	-6.13873630 -0.00235652 0.00141513 7.13637977 0.99271386 0.99622834 0.48867640;
++	-6.13919076 -0.00235492 0.00141426 7.13683584 0.99271910 0.99623082 0.48869010;
++	-6.13964373 -0.00235331 0.00141339 7.13729042 0.99272434 0.99623330 0.48870375;
++	-6.14009523 -0.00235170 0.00141253 7.13774353 0.99272957 0.99623577 0.48871736;
++	-6.14054526 -0.00235010 0.00141166 7.13819516 0.99273480 0.99623824 0.48873093;
++	-6.14099381 -0.00234850 0.00141079 7.13864532 0.99274001 0.99624071 0.48874446;
++	-6.14144091 -0.00234689 0.00140993 7.13909401 0.99274523 0.99624318 0.48875794;
++	-6.14188654 -0.00234530 0.00140906 7.13954125 0.99275043 0.99624564 0.48877139;
++	-6.14233072 -0.00234370 0.00140820 7.13998702 0.99275563 0.99624811 0.48878479;
++	-6.14277345 -0.00234210 0.00140733 7.14043134 0.99276082 0.99625057 0.48879815;
++	-6.14321473 -0.00234051 0.00140647 7.14087422 0.99276601 0.99625302 0.48881147;
++	-6.14365457 -0.00233892 0.00140561 7.14131565 0.99277118 0.99625548 0.48882475;
++	-6.14409297 -0.00233733 0.00140474 7.14175564 0.99277636 0.99625793 0.48883798;
++	-6.14452994 -0.00233574 0.00140388 7.14219420 0.99278152 0.99626038 0.48885118;
++	-6.14496548 -0.00233415 0.00140302 7.14263132 0.99278668 0.99626283 0.48886433;
++	-6.14539959 -0.00233257 0.00140216 7.14306702 0.99279183 0.99626527 0.48887745;
++	-6.14583228 -0.00233098 0.00140130 7.14350130 0.99279698 0.99626772 0.48889052;
++	-6.14626356 -0.00232940 0.00140044 7.14393416 0.99280212 0.99627016 0.48890355;
++	-6.14669342 -0.00232782 0.00139958 7.14436560 0.99280725 0.99627259 0.48891654;
++	-6.14712188 -0.00232625 0.00139873 7.14479564 0.99281238 0.99627503 0.48892949;
++	-6.14754894 -0.00232467 0.00139787 7.14522427 0.99281750 0.99627746 0.48894240;
++	-6.14797459 -0.00232309 0.00139701 7.14565150 0.99282261 0.99627989 0.48895527;
++	-6.14839885 -0.00232152 0.00139616 7.14607733 0.99282772 0.99628232 0.48896810;
++	-6.14882172 -0.00231995 0.00139530 7.14650177 0.99283282 0.99628475 0.48898089;
++	-6.14924320 -0.00231838 0.00139445 7.14692482 0.99283791 0.99628717 0.48899364;
++	-6.14966330 -0.00231681 0.00139359 7.14734649 0.99284300 0.99628959 0.48900634;
++	-6.15008202 -0.00231525 0.00139274 7.14776677 0.99284808 0.99629201 0.48901902;
++	-6.15049937 -0.00231368 0.00139189 7.14818569 0.99285316 0.99629443 0.48903165;
++	-6.15091535 -0.00231212 0.00139104 7.14860323 0.99285823 0.99629684 0.48904424;
++	-6.15132996 -0.00231056 0.00139018 7.14901940 0.99286329 0.99629926 0.48905679;
++	-6.15174321 -0.00230900 0.00138933 7.14943421 0.99286834 0.99630166 0.48906930;
++	-6.15215510 -0.00230744 0.00138848 7.14984766 0.99287339 0.99630407 0.48908178;
++	-6.15256564 -0.00230589 0.00138763 7.15025975 0.99287844 0.99630648 0.48909421;
++	-6.15297483 -0.00230433 0.00138679 7.15067050 0.99288347 0.99630888 0.48910661;
++	-6.15338268 -0.00230278 0.00138594 7.15107989 0.99288850 0.99631128 0.48911897;
++	-6.15378918 -0.00230123 0.00138509 7.15148795 0.99289353 0.99631368 0.48913128;
++	-6.15419435 -0.00229968 0.00138424 7.15189467 0.99289855 0.99631607 0.48914356;
++	-6.15459818 -0.00229814 0.00138340 7.15230005 0.99290356 0.99631847 0.48915581;
++	-6.15500069 -0.00229659 0.00138255 7.15270410 0.99290856 0.99632086 0.48916801;
++	-6.15540187 -0.00229505 0.00138171 7.15310682 0.99291356 0.99632324 0.48918017;
++	-6.15580173 -0.00229350 0.00138087 7.15350822 0.99291855 0.99632563 0.48919230;
++	-6.15620027 -0.00229196 0.00138002 7.15390831 0.99292354 0.99632801 0.48920439;
++	-6.15659750 -0.00229042 0.00137918 7.15430708 0.99292852 0.99633040 0.48921644;
++	-6.15699342 -0.00228889 0.00137834 7.15470454 0.99293349 0.99633278 0.48922846;
++	-6.15738804 -0.00228735 0.00137750 7.15510069 0.99293846 0.99633515 0.48924043;
++	-6.15778136 -0.00228582 0.00137666 7.15549554 0.99294342 0.99633753 0.48925237;
++	-6.15817338 -0.00228429 0.00137582 7.15588909 0.99294838 0.99633990 0.48926427;
++	-6.15856410 -0.00228276 0.00137498 7.15628135 0.99295333 0.99634227 0.48927613;
++	-6.15895354 -0.00228123 0.00137414 7.15667231 0.99295827 0.99634464 0.48928796;
++	-6.15934170 -0.00227970 0.00137330 7.15706199 0.99296321 0.99634700 0.48929975;
++	-6.15972857 -0.00227818 0.00137246 7.15745039 0.99296814 0.99634936 0.48931151;
++	-6.16011416 -0.00227665 0.00137162 7.15783751 0.99297306 0.99635172 0.48932322;
++	-6.16049848 -0.00227513 0.00137079 7.15822335 0.99297798 0.99635408 0.48933490;
++	-6.16088154 -0.00227361 0.00136995 7.15860793 0.99298289 0.99635644 0.48934654;
++	-6.16126332 -0.00227209 0.00136912 7.15899123 0.99298780 0.99635879 0.48935815;
++	-6.16164385 -0.00227057 0.00136828 7.15937328 0.99299270 0.99636114 0.48936972;
++	-6.16202312 -0.00226906 0.00136745 7.15975406 0.99299759 0.99636349 0.48938125;
++	-6.16240113 -0.00226754 0.00136662 7.16013359 0.99300248 0.99636584 0.48939275;
++	-6.16277790 -0.00226603 0.00136579 7.16051186 0.99300736 0.99636818 0.48940421;
++	-6.16315341 -0.00226452 0.00136495 7.16088889 0.99301224 0.99637052 0.48941563;
++	-6.16352769 -0.00226301 0.00136412 7.16126468 0.99301711 0.99637286 0.48942702;
++	-6.16390073 -0.00226151 0.00136329 7.16163922 0.99302197 0.99637520 0.48943837;
++	-6.16427253 -0.00226000 0.00136246 7.16201253 0.99302683 0.99637753 0.48944969;
++	-6.16464310 -0.00225850 0.00136164 7.16238461 0.99303168 0.99637987 0.48946098;
++	-6.16501245 -0.00225700 0.00136081 7.16275545 0.99303653 0.99638220 0.48947222;
++	-6.16538057 -0.00225549 0.00135998 7.16312507 0.99304136 0.99638453 0.48948343;
++	-6.16574747 -0.00225400 0.00135915 7.16349348 0.99304620 0.99638685 0.48949461;
++	-6.16611316 -0.00225250 0.00135833 7.16386066 0.99305103 0.99638918 0.48950575;
++	-6.16647763 -0.00225100 0.00135750 7.16422663 0.99305585 0.99639150 0.48951685;
++	-6.16684090 -0.00224951 0.00135668 7.16459139 0.99306066 0.99639382 0.48952792;
++	-6.16720296 -0.00224802 0.00135585 7.16495494 0.99306547 0.99639613 0.48953896;
++	-6.16756382 -0.00224653 0.00135503 7.16531729 0.99307027 0.99639845 0.48954996;
++	-6.16792348 -0.00224504 0.00135421 7.16567845 0.99307507 0.99640076 0.48956093;
++	-6.16828195 -0.00224355 0.00135338 7.16603840 0.99307986 0.99640307 0.48957186;
++	-6.16863923 -0.00224206 0.00135256 7.16639717 0.99308465 0.99640538 0.48958276;
++	-6.16899533 -0.00224058 0.00135174 7.16675475 0.99308943 0.99640768 0.48959363;
++	-6.16935024 -0.00223910 0.00135092 7.16711114 0.99309420 0.99640998 0.48960445;
++	-6.16970397 -0.00223762 0.00135010 7.16746636 0.99309897 0.99641228 0.48961525;
++	-6.17005653 -0.00223614 0.00134928 7.16782039 0.99310373 0.99641458 0.48962601;
++	-6.17040791 -0.00223466 0.00134846 7.16817326 0.99310849 0.99641688 0.48963673;
++	-6.17075813 -0.00223318 0.00134765 7.16852495 0.99311324 0.99641917 0.48964743;
++	-6.17110719 -0.00223171 0.00134683 7.16887548 0.99311798 0.99642146 0.48965809;
++	-6.17145508 -0.00223024 0.00134601 7.16922484 0.99312272 0.99642375 0.48966871;
++	-6.17180182 -0.00222876 0.00134520 7.16957305 0.99312745 0.99642604 0.48967931;
++	-6.17214740 -0.00222729 0.00134438 7.16992010 0.99313218 0.99642832 0.48968987;
++	-6.17249183 -0.00222583 0.00134357 7.17026601 0.99313690 0.99643061 0.48970039;
++	-6.17283512 -0.00222436 0.00134275 7.17061076 0.99314162 0.99643289 0.48971088;
++	-6.17317726 -0.00222289 0.00134194 7.17095437 0.99314633 0.99643517 0.48972134;
++	-6.17351827 -0.00222143 0.00134113 7.17129683 0.99315103 0.99643744 0.48973177;
++	-6.17385813 -0.00221997 0.00134032 7.17163816 0.99315573 0.99643971 0.48974217;
++	-6.17419687 -0.00221851 0.00133950 7.17197836 0.99316042 0.99644199 0.48975252;
++	-6.17453448 -0.00221705 0.00133869 7.17231743 0.99316511 0.99644425 0.48976285;
++	-6.17487096 -0.00221559 0.00133788 7.17265537 0.99316979 0.99644652 0.48977314;
++	-6.17520632 -0.00221414 0.00133708 7.17299218 0.99317446 0.99644879 0.48978341;
++	-6.17554056 -0.00221269 0.00133627 7.17332788 0.99317913 0.99645105 0.48979364;
++	-6.17587369 -0.00221123 0.00133546 7.17366246 0.99318379 0.99645331 0.48980384;
++	-6.17620571 -0.00220978 0.00133465 7.17399593 0.99318845 0.99645557 0.48981400;
++	-6.17653662 -0.00220833 0.00133385 7.17432829 0.99319310 0.99645782 0.48982414;
++	-6.17686642 -0.00220689 0.00133304 7.17465954 0.99319775 0.99646007 0.48983424;
++	-6.17719513 -0.00220544 0.00133223 7.17498969 0.99320239 0.99646233 0.48984431;
++	-6.17752273 -0.00220400 0.00133143 7.17531874 0.99320702 0.99646457 0.48985434;
++	-6.17784925 -0.00220255 0.00133063 7.17564669 0.99321165 0.99646682 0.48986435;
++	-6.17817467 -0.00220111 0.00132982 7.17597356 0.99321628 0.99646906 0.48987432;
++	-6.17849900 -0.00219967 0.00132902 7.17629933 0.99322089 0.99647131 0.48988427;
++	-6.17882225 -0.00219823 0.00132822 7.17662402 0.99322551 0.99647355 0.48989418;
++	-6.17914442 -0.00219680 0.00132742 7.17694762 0.99323011 0.99647578 0.48990406;
++	-6.17946552 -0.00219536 0.00132662 7.17727015 0.99323471 0.99647802 0.48991391;
++	-6.17978554 -0.00219393 0.00132582 7.17759161 0.99323931 0.99648025 0.48992373;
++	-6.18010448 -0.00219250 0.00132502 7.17791199 0.99324390 0.99648248 0.48993351;
++	-6.18042237 -0.00219107 0.00132422 7.17823130 0.99324848 0.99648471 0.48994327;
++	-6.18073919 -0.00218964 0.00132342 7.17854955 0.99325306 0.99648694 0.48995299;
++	-6.18105494 -0.00218821 0.00132262 7.17886673 0.99325763 0.99648916 0.48996269;
++	-6.18136964 -0.00218679 0.00132183 7.17918286 0.99326220 0.99649139 0.48997235;
++	-6.18168329 -0.00218536 0.00132103 7.17949793 0.99326676 0.99649361 0.48998198;
++	-6.18199589 -0.00218394 0.00132024 7.17981195 0.99327132 0.99649582 0.48999158;
++	-6.18230744 -0.00218252 0.00131944 7.18012492 0.99327587 0.99649804 0.49000115;
++	-6.18261795 -0.00218110 0.00131865 7.18043684 0.99328041 0.99650025 0.49001070;
++	-6.18292741 -0.00217968 0.00131785 7.18074773 0.99328495 0.99650246 0.49002020;
++	-6.18323584 -0.00217827 0.00131706 7.18105757 0.99328949 0.99650467 0.49002969;
++	-6.18354323 -0.00217685 0.00131627 7.18136638 0.99329401 0.99650688 0.49003913;
++	-6.18384960 -0.00217544 0.00131548 7.18167416 0.99329854 0.99650908 0.49004855;
++	-6.18415493 -0.00217403 0.00131469 7.18198091 0.99330305 0.99651129 0.49005794;
++	-6.18445924 -0.00217262 0.00131390 7.18228663 0.99330757 0.99651349 0.49006730;
++	-6.18476253 -0.00217121 0.00131311 7.18259133 0.99331207 0.99651568 0.49007664;
++	-6.18506481 -0.00216980 0.00131232 7.18289501 0.99331657 0.99651788 0.49008594;
++	-6.18536606 -0.00216840 0.00131153 7.18319767 0.99332107 0.99652007 0.49009521;
++	-6.18566631 -0.00216699 0.00131074 7.18349932 0.99332556 0.99652226 0.49010445;
++	-6.18596555 -0.00216559 0.00130996 7.18379996 0.99333004 0.99652445 0.49011367;
++	-6.18626378 -0.00216419 0.00130917 7.18409959 0.99333452 0.99652664 0.49012285;
++	-6.18656101 -0.00216279 0.00130839 7.18439822 0.99333900 0.99652882 0.49013200;
++	-6.18685724 -0.00216139 0.00130760 7.18469585 0.99334346 0.99653101 0.49014113;
++	-6.18715248 -0.00216000 0.00130682 7.18499249 0.99334793 0.99653319 0.49015022;
++	-6.18744673 -0.00215860 0.00130603 7.18528812 0.99335238 0.99653537 0.49015929;
++	-6.18773998 -0.00215721 0.00130525 7.18558277 0.99335684 0.99653754 0.49016833;
++	-6.18803225 -0.00215582 0.00130447 7.18587643 0.99336128 0.99653972 0.49017734;
++	-6.18832353 -0.00215443 0.00130369 7.18616911 0.99336572 0.99654189 0.49018632;
++	-6.18861384 -0.00215304 0.00130291 7.18646080 0.99337016 0.99654406 0.49019527;
++	-6.18890316 -0.00215165 0.00130213 7.18675152 0.99337459 0.99654622 0.49020420;
++	-6.18919152 -0.00215026 0.00130135 7.18704125 0.99337901 0.99654839 0.49021309;
++	-6.18947890 -0.00214888 0.00130057 7.18733002 0.99338343 0.99655055 0.49022196;
++	-6.18976532 -0.00214750 0.00129979 7.18761782 0.99338785 0.99655271 0.49023080;
++	-6.19005077 -0.00214612 0.00129901 7.18790465 0.99339226 0.99655487 0.49023961;
++	-6.19033526 -0.00214474 0.00129823 7.18819052 0.99339666 0.99655703 0.49024839;
++	-6.19061879 -0.00214336 0.00129746 7.18847543 0.99340106 0.99655918 0.49025714;
++	-6.19090136 -0.00214198 0.00129668 7.18875938 0.99340545 0.99656134 0.49026588;
++	-6.19118298 -0.00214061 0.00129591 7.18904238 0.99340984 0.99656349 0.49027457;
++	-6.19146366 -0.00213923 0.00129513 7.18932442 0.99341422 0.99656563 0.49028324;
++	-6.19174338 -0.00213786 0.00129436 7.18960552 0.99341860 0.99656778 0.49029189;
++	-6.19202217 -0.00213649 0.00129359 7.18988568 0.99342297 0.99656992 0.49030051;
++	-6.19230001 -0.00213512 0.00129281 7.19016489 0.99342734 0.99657207 0.49030909;
++	-6.19257691 -0.00213375 0.00129204 7.19044316 0.99343170 0.99657421 0.49031766;
++	-6.19285288 -0.00213239 0.00129127 7.19072050 0.99343606 0.99657634 0.49032619;
++	-6.19312792 -0.00213102 0.00129050 7.19099690 0.99344041 0.99657848 0.49033470;
++	-6.19340203 -0.00212966 0.00128973 7.19127237 0.99344475 0.99658061 0.49034317;
++	-6.19367521 -0.00212830 0.00128896 7.19154692 0.99344909 0.99658274 0.49035163;
++	-6.19394748 -0.00212694 0.00128819 7.19182054 0.99345343 0.99658487 0.49036006;
++	-6.19421882 -0.00212558 0.00128743 7.19209324 0.99345776 0.99658700 0.49036845;
++	-6.19448924 -0.00212422 0.00128666 7.19236502 0.99346208 0.99658912 0.49037683;
++	-6.19475875 -0.00212286 0.00128589 7.19263589 0.99346640 0.99659124 0.49038517;
++	-6.19502735 -0.00212151 0.00128513 7.19290584 0.99347072 0.99659336 0.49039349;
++	-6.19529504 -0.00212016 0.00128436 7.19317489 0.99347503 0.99659548 0.49040178;
++	-6.19556183 -0.00211880 0.00128360 7.19344302 0.99347933 0.99659760 0.49041005;
++	-6.19582771 -0.00211745 0.00128283 7.19371026 0.99348363 0.99659971 0.49041829;
++	-6.19609270 -0.00211611 0.00128207 7.19397659 0.99348792 0.99660182 0.49042650;
++	-6.19635678 -0.00211476 0.00128131 7.19424203 0.99349221 0.99660393 0.49043469;
++	-6.19661998 -0.00211341 0.00128054 7.19450656 0.99349650 0.99660604 0.49044285;
++	-6.19688228 -0.00211207 0.00127978 7.19477021 0.99350077 0.99660815 0.49045099;
++	-6.19714369 -0.00211073 0.00127902 7.19503297 0.99350505 0.99661025 0.49045909;
++	-6.19740422 -0.00210938 0.00127826 7.19529484 0.99350932 0.99661235 0.49046717;
++	-6.19766387 -0.00210804 0.00127750 7.19555583 0.99351358 0.99661445 0.49047523;
++	-6.19792264 -0.00210671 0.00127674 7.19581593 0.99351784 0.99661655 0.49048326;
++	-6.19818053 -0.00210537 0.00127599 7.19607516 0.99352209 0.99661864 0.49049127;
++	-6.19843754 -0.00210403 0.00127523 7.19633351 0.99352634 0.99662074 0.49049925;
++	-6.19869369 -0.00210270 0.00127447 7.19659099 0.99353058 0.99662283 0.49050720;
++	-6.19894896 -0.00210137 0.00127372 7.19684760 0.99353482 0.99662492 0.49051513;
++	-6.19920337 -0.00210004 0.00127296 7.19710334 0.99353905 0.99662700 0.49052303;
++	-6.19945692 -0.00209871 0.00127221 7.19735822 0.99354328 0.99662909 0.49053091;
++	-6.19970961 -0.00209738 0.00127145 7.19761223 0.99354750 0.99663117 0.49053876;
++	-6.19996144 -0.00209605 0.00127070 7.19786539 0.99355172 0.99663325 0.49054659;
++	-6.20021242 -0.00209473 0.00126995 7.19811769 0.99355593 0.99663533 0.49055439;
++	-6.20046254 -0.00209340 0.00126919 7.19836914 0.99356014 0.99663741 0.49056217;
++	-6.20071181 -0.00209208 0.00126844 7.19861973 0.99356434 0.99663948 0.49056992;
++	-6.20096024 -0.00209076 0.00126769 7.19886948 0.99356854 0.99664155 0.49057765;
++	-6.20120782 -0.00208944 0.00126694 7.19911839 0.99357273 0.99664362 0.49058536;
++	-6.20145457 -0.00208812 0.00126619 7.19936645 0.99357692 0.99664569 0.49059304;
++	-6.20170047 -0.00208680 0.00126544 7.19961367 0.99358110 0.99664776 0.49060069;
++	-6.20194554 -0.00208549 0.00126469 7.19986005 0.99358528 0.99664982 0.49060832;
++	-6.20218978 -0.00208417 0.00126395 7.20010560 0.99358945 0.99665188 0.49061593;
++	-6.20243318 -0.00208286 0.00126320 7.20035032 0.99359362 0.99665394 0.49062351;
++	-6.20267576 -0.00208155 0.00126245 7.20059421 0.99359778 0.99665600 0.49063106;
++	-6.20291751 -0.00208024 0.00126171 7.20083727 0.99360194 0.99665805 0.49063859;
++	-6.20315844 -0.00207893 0.00126096 7.20107951 0.99360609 0.99666011 0.49064611;
++	-6.20339855 -0.00207762 0.00126022 7.20132093 0.99361024 0.99666216 0.49065358;
++	-6.20363785 -0.00207632 0.00125947 7.20156153 0.99361438 0.99666421 0.49066104;
++	-6.20387633 -0.00207501 0.00125873 7.20180131 0.99361852 0.99666626 0.49066848;
++	-6.20411399 -0.00207371 0.00125799 7.20204028 0.99362265 0.99666830 0.49067589;
++	-6.20435085 -0.00207241 0.00125725 7.20227844 0.99362678 0.99667034 0.49068328;
++	-6.20458690 -0.00207111 0.00125650 7.20251579 0.99363090 0.99667238 0.49069064;
++	-6.20482215 -0.00206981 0.00125576 7.20275234 0.99363502 0.99667442 0.49069799;
++	-6.20505660 -0.00206852 0.00125502 7.20298808 0.99363914 0.99667646 0.49070530;
++	-6.20529024 -0.00206722 0.00125428 7.20322302 0.99364325 0.99667850 0.49071260;
++	-6.20552310 -0.00206593 0.00125355 7.20345717 0.99364735 0.99668053 0.49071987;
++	-6.20575515 -0.00206463 0.00125281 7.20369052 0.99365145 0.99668256 0.49072711;
++	-6.20598642 -0.00206334 0.00125207 7.20392308 0.99365554 0.99668459 0.49073434;
++	-6.20621690 -0.00206205 0.00125133 7.20415485 0.99365963 0.99668662 0.49074154;
++	-6.20644659 -0.00206076 0.00125060 7.20438583 0.99366372 0.99668864 0.49074872;
++	-6.20667550 -0.00205947 0.00124986 7.20461602 0.99366780 0.99669066 0.49075587;
++	-6.20690362 -0.00205819 0.00124913 7.20484543 0.99367187 0.99669268 0.49076300;
++	-6.20713097 -0.00205690 0.00124839 7.20507407 0.99367594 0.99669470 0.49077011;
++	-6.20735754 -0.00205562 0.00124766 7.20530192 0.99368001 0.99669672 0.49077720;
++	-6.20758334 -0.00205434 0.00124693 7.20552900 0.99368407 0.99669873 0.49078426;
++	-6.20780837 -0.00205306 0.00124619 7.20575531 0.99368812 0.99670075 0.49079130;
++	-6.20803263 -0.00205178 0.00124546 7.20598085 0.99369217 0.99670276 0.49079832;
++	-6.20825612 -0.00205050 0.00124473 7.20620562 0.99369622 0.99670477 0.49080531;
++	-6.20847885 -0.00204923 0.00124400 7.20642963 0.99370026 0.99670677 0.49081228;
++	-6.20870082 -0.00204795 0.00124327 7.20665287 0.99370430 0.99670878 0.49081924;
++	-6.20892203 -0.00204668 0.00124254 7.20687536 0.99370833 0.99671078 0.49082617;
++	-6.20914249 -0.00204540 0.00124181 7.20709708 0.99371236 0.99671278 0.49083307;
++	-6.20936219 -0.00204413 0.00124109 7.20731805 0.99371638 0.99671478 0.49083996;
++	-6.20958114 -0.00204286 0.00124036 7.20753827 0.99372040 0.99671678 0.49084681;
++	-6.20979934 -0.00204160 0.00123963 7.20775774 0.99372441 0.99671877 0.49085365;
++	-6.21001679 -0.00204033 0.00123891 7.20797646 0.99372842 0.99672076 0.49086047;
++	-6.21023350 -0.00203906 0.00123818 7.20819444 0.99373242 0.99672275 0.49086727;
++	-6.21044947 -0.00203780 0.00123746 7.20841167 0.99373642 0.99672474 0.49087404;
++	-6.21066470 -0.00203654 0.00123673 7.20862816 0.99374042 0.99672673 0.49088079;
++	-6.21087920 -0.00203528 0.00123601 7.20884392 0.99374441 0.99672871 0.49088752;
++	-6.21109295 -0.00203402 0.00123529 7.20905894 0.99374839 0.99673070 0.49089423;
++	-6.21130598 -0.00203276 0.00123456 7.20927322 0.99375237 0.99673268 0.49090092;
++	-6.21151828 -0.00203150 0.00123384 7.20948678 0.99375635 0.99673466 0.49090759;
++	-6.21172985 -0.00203024 0.00123312 7.20969960 0.99376032 0.99673663 0.49091423;
++	-6.21194069 -0.00202899 0.00123240 7.20991170 0.99376428 0.99673861 0.49092085;
++	-6.21215082 -0.00202774 0.00123168 7.21012308 0.99376825 0.99674058 0.49092745;
++	-6.21236022 -0.00202648 0.00123096 7.21033373 0.99377220 0.99674255 0.49093403;
++	-6.21256890 -0.00202523 0.00123025 7.21054367 0.99377616 0.99674452 0.49094059;
++	-6.21277687 -0.00202398 0.00122953 7.21075289 0.99378010 0.99674649 0.49094712;
++	-6.21298413 -0.00202274 0.00122881 7.21096139 0.99378405 0.99674845 0.49095364;
++	-6.21319067 -0.00202149 0.00122809 7.21116918 0.99378798 0.99675042 0.49096013;
++	-6.21339651 -0.00202025 0.00122738 7.21137627 0.99379192 0.99675238 0.49096661;
++	-6.21360164 -0.00201900 0.00122666 7.21158264 0.99379585 0.99675434 0.49097306;
++	-6.21380607 -0.00201776 0.00122595 7.21178831 0.99379977 0.99675629 0.49097950;
++	-6.21400979 -0.00201652 0.00122523 7.21199328 0.99380369 0.99675825 0.49098591;
++	-6.21421282 -0.00201528 0.00122452 7.21219754 0.99380761 0.99676020 0.49099230;
++	-6.21441515 -0.00201404 0.00122381 7.21240111 0.99381152 0.99676215 0.49099867;
++	-6.21461678 -0.00201280 0.00122310 7.21260398 0.99381543 0.99676410 0.49100502;
++	-6.21481773 -0.00201157 0.00122239 7.21280616 0.99381933 0.99676605 0.49101135;
++	-6.21501798 -0.00201033 0.00122167 7.21300765 0.99382323 0.99676799 0.49101767;
++	-6.21521754 -0.00200910 0.00122096 7.21320844 0.99382712 0.99676994 0.49102395;
++	-6.21541642 -0.00200787 0.00122026 7.21340855 0.99383101 0.99677188 0.49103022;
++	-6.21561461 -0.00200664 0.00121955 7.21360798 0.99383489 0.99677382 0.49103647;
++	-6.21581213 -0.00200541 0.00121884 7.21380672 0.99383877 0.99677575 0.49104269;
++	-6.21600896 -0.00200418 0.00121813 7.21400478 0.99384265 0.99677769 0.49104891;
++	-6.21620512 -0.00200295 0.00121742 7.21420217 0.99384652 0.99677962 0.49105509;
++	-6.21640060 -0.00200173 0.00121672 7.21439887 0.99385038 0.99678156 0.49106126;
++	-6.21659541 -0.00200050 0.00121601 7.21459491 0.99385424 0.99678349 0.49106741;
++	-6.21678955 -0.00199928 0.00121531 7.21479027 0.99385810 0.99678541 0.49107353;
++	-6.21698302 -0.00199806 0.00121460 7.21498497 0.99386195 0.99678734 0.49107964;
++	-6.21717583 -0.00199684 0.00121390 7.21517899 0.99386580 0.99678926 0.49108574;
++	-6.21736797 -0.00199562 0.00121320 7.21537235 0.99386965 0.99679119 0.49109180;
++	-6.21755945 -0.00199440 0.00121249 7.21556505 0.99387349 0.99679311 0.49109786;
++	-6.21775028 -0.00199319 0.00121179 7.21575709 0.99387732 0.99679502 0.49110388;
++	-6.21794044 -0.00199197 0.00121109 7.21594847 0.99388115 0.99679694 0.49110989;
++	-6.21812995 -0.00199076 0.00121039 7.21613919 0.99388498 0.99679885 0.49111588;
++	-6.21831881 -0.00198955 0.00120969 7.21632926 0.99388880 0.99680077 0.49112186;
++	-6.21850702 -0.00198833 0.00120899 7.21651868 0.99389261 0.99680268 0.49112781;
++	-6.21869457 -0.00198712 0.00120829 7.21670745 0.99389643 0.99680459 0.49113374;
++	-6.21888149 -0.00198592 0.00120759 7.21689557 0.99390024 0.99680649 0.49113965;
++	-6.21906775 -0.00198471 0.00120689 7.21708304 0.99390404 0.99680840 0.49114555;
++	-6.21925338 -0.00198350 0.00120620 7.21726987 0.99390784 0.99681030 0.49115142;
++	-6.21943836 -0.00198230 0.00120550 7.21745606 0.99391163 0.99681220 0.49115728;
++	-6.21962271 -0.00198110 0.00120481 7.21764161 0.99391542 0.99681410 0.49116312;
++	-6.21980642 -0.00197989 0.00120411 7.21782653 0.99391921 0.99681600 0.49116895;
++	-6.21998950 -0.00197869 0.00120342 7.21801081 0.99392299 0.99681789 0.49117474;
++	-6.22017194 -0.00197749 0.00120272 7.21819445 0.99392677 0.99681979 0.49118052;
++	-6.22035376 -0.00197630 0.00120203 7.21837746 0.99393054 0.99682168 0.49118629;
++	-6.22053495 -0.00197510 0.00120134 7.21855985 0.99393431 0.99682357 0.49119203;
++	-6.22071551 -0.00197390 0.00120064 7.21874161 0.99393808 0.99682545 0.49119776;
++	-6.22089545 -0.00197271 0.00119995 7.21892274 0.99394184 0.99682734 0.49120347;
++	-6.22107477 -0.00197152 0.00119926 7.21910325 0.99394559 0.99682922 0.49120916;
++	-6.22125347 -0.00197032 0.00119857 7.21928314 0.99394935 0.99683111 0.49121482;
++	-6.22143155 -0.00196913 0.00119788 7.21946242 0.99395309 0.99683299 0.49122047;
++	-6.22160902 -0.00196794 0.00119719 7.21964107 0.99395684 0.99683486 0.49122611;
++	-6.22178587 -0.00196676 0.00119650 7.21981911 0.99396058 0.99683674 0.49123173;
++	-6.22196211 -0.00196557 0.00119582 7.21999654 0.99396431 0.99683861 0.49123732;
++	-6.22213774 -0.00196438 0.00119513 7.22017336 0.99396804 0.99684049 0.49124290;
++	-6.22231277 -0.00196320 0.00119444 7.22034957 0.99397177 0.99684236 0.49124846;
++	-6.22248719 -0.00196202 0.00119376 7.22052517 0.99397549 0.99684423 0.49125400;
++	-6.22266101 -0.00196083 0.00119307 7.22070017 0.99397920 0.99684609 0.49125953;
++	-6.22283422 -0.00195965 0.00119239 7.22087457 0.99398292 0.99684796 0.49126504;
++	-6.22300684 -0.00195848 0.00119170 7.22104836 0.99398663 0.99684982 0.49127053;
++	-6.22317886 -0.00195730 0.00119102 7.22122156 0.99399033 0.99685168 0.49127600;
++	-6.22335028 -0.00195612 0.00119034 7.22139416 0.99399403 0.99685354 0.49128145;
++	-6.22352111 -0.00195495 0.00118965 7.22156617 0.99399773 0.99685540 0.49128689;
++	-6.22369135 -0.00195377 0.00118897 7.22173758 0.99400142 0.99685726 0.49129231;
++	-6.22386100 -0.00195260 0.00118829 7.22190841 0.99400511 0.99685911 0.49129771;
++	-6.22403007 -0.00195143 0.00118761 7.22207864 0.99400879 0.99686096 0.49130310;
++	-6.22419854 -0.00195026 0.00118693 7.22224829 0.99401247 0.99686281 0.49130846;
++	-6.22436644 -0.00194909 0.00118625 7.22241735 0.99401615 0.99686466 0.49131381;
++	-6.22453375 -0.00194792 0.00118557 7.22258583 0.99401982 0.99686651 0.49131914;
++	-6.22470048 -0.00194675 0.00118490 7.22275373 0.99402348 0.99686835 0.49132446;
++	-6.22486664 -0.00194559 0.00118422 7.22292105 0.99402715 0.99687019 0.49132975;
++	-6.22503222 -0.00194442 0.00118354 7.22308780 0.99403081 0.99687204 0.49133503;
++	-6.22519722 -0.00194326 0.00118287 7.22325396 0.99403446 0.99687387 0.49134030;
++	-6.22536166 -0.00194210 0.00118219 7.22341956 0.99403811 0.99687571 0.49134554;
++	-6.22552552 -0.00194094 0.00118152 7.22358458 0.99404176 0.99687755 0.49135077;
++	-6.22568881 -0.00193978 0.00118084 7.22374904 0.99404540 0.99687938 0.49135598;
++	-6.22585154 -0.00193862 0.00118017 7.22391292 0.99404904 0.99688121 0.49136117;
++	-6.22601370 -0.00193746 0.00117950 7.22407624 0.99405267 0.99688304 0.49136635;
++	-6.22617531 -0.00193631 0.00117882 7.22423900 0.99405630 0.99688487 0.49137152;
++	-6.22633635 -0.00193515 0.00117815 7.22440119 0.99405992 0.99688670 0.49137666;
++	-6.22649683 -0.00193400 0.00117748 7.22456283 0.99406354 0.99688852 0.49138179;
++	-6.22665675 -0.00193285 0.00117681 7.22472390 0.99406716 0.99689034 0.49138690;
++	-6.22681612 -0.00193170 0.00117614 7.22488442 0.99407077 0.99689216 0.49139199;
++	-6.22697494 -0.00193055 0.00117547 7.22504439 0.99407438 0.99689398 0.49139707;
++	-6.22713320 -0.00192940 0.00117480 7.22520380 0.99407799 0.99689580 0.49140214;
++	-6.22729092 -0.00192825 0.00117413 7.22536266 0.99408159 0.99689762 0.49140718;
++	-6.22744808 -0.00192711 0.00117346 7.22552098 0.99408519 0.99689943 0.49141221;
++	-6.22760470 -0.00192596 0.00117280 7.22567874 0.99408878 0.99690124 0.49141723;
++	-6.22776078 -0.00192482 0.00117213 7.22583596 0.99409237 0.99690305 0.49142222;
++	-6.22791631 -0.00192368 0.00117147 7.22599264 0.99409595 0.99690486 0.49142719;
++	-6.22807131 -0.00192253 0.00117080 7.22614877 0.99409953 0.99690667 0.49143216;
++	-6.22822576 -0.00192139 0.00117014 7.22630437 0.99410311 0.99690847 0.49143711;
++	-6.22837968 -0.00192026 0.00116947 7.22645942 0.99410668 0.99691027 0.49144204;
++	-6.22853306 -0.00191912 0.00116881 7.22661394 0.99411025 0.99691207 0.49144696;
++	-6.22868591 -0.00191798 0.00116815 7.22676793 0.99411381 0.99691387 0.49145186;
++	-6.22883823 -0.00191685 0.00116748 7.22692138 0.99411737 0.99691567 0.49145674;
++	-6.22899002 -0.00191571 0.00116682 7.22707430 0.99412093 0.99691747 0.49146161;
++	-6.22914128 -0.00191458 0.00116616 7.22722670 0.99412448 0.99691926 0.49146647;
++	-6.22929201 -0.00191345 0.00116550 7.22737856 0.99412803 0.99692105 0.49147130;
++	-6.22944222 -0.00191232 0.00116484 7.22752990 0.99413157 0.99692284 0.49147613;
++	-6.22959190 -0.00191119 0.00116418 7.22768071 0.99413511 0.99692463 0.49148093;
++	-6.22974107 -0.00191006 0.00116352 7.22783101 0.99413865 0.99692642 0.49148571;
++	-6.22988971 -0.00190893 0.00116286 7.22798078 0.99414218 0.99692820 0.49149049;
++	-6.23003784 -0.00190781 0.00116221 7.22813003 0.99414571 0.99692998 0.49149525;
++	-6.23018545 -0.00190669 0.00116155 7.22827877 0.99414924 0.99693176 0.49149999;
++	-6.23033255 -0.00190556 0.00116089 7.22842699 0.99415276 0.99693354 0.49150472;
++	-6.23047913 -0.00190444 0.00116024 7.22857469 0.99415627 0.99693532 0.49150944;
++	-6.23062521 -0.00190332 0.00115958 7.22872189 0.99415978 0.99693710 0.49151413;
++	-6.23077077 -0.00190220 0.00115893 7.22886857 0.99416329 0.99693887 0.49151881;
++	-6.23091583 -0.00190108 0.00115828 7.22901475 0.99416680 0.99694064 0.49152348;
++	-6.23106038 -0.00189996 0.00115762 7.22916042 0.99417030 0.99694241 0.49152813;
++	-6.23120443 -0.00189885 0.00115697 7.22930558 0.99417379 0.99694418 0.49153277;
++	-6.23134798 -0.00189773 0.00115632 7.22945024 0.99417729 0.99694595 0.49153739;
++	-6.23149102 -0.00189662 0.00115567 7.22959440 0.99418078 0.99694772 0.49154200;
++	-6.23163357 -0.00189551 0.00115501 7.22973806 0.99418426 0.99694948 0.49154659;
++	-6.23177562 -0.00189439 0.00115436 7.22988122 0.99418774 0.99695124 0.49155116;
++	-6.23191717 -0.00189328 0.00115371 7.23002389 0.99419122 0.99695300 0.49155572;
++	-6.23205823 -0.00189218 0.00115307 7.23016606 0.99419469 0.99695476 0.49156028;
++	-6.23219880 -0.00189107 0.00115242 7.23030773 0.99419816 0.99695652 0.49156481;
++	-6.23233888 -0.00188996 0.00115177 7.23044891 0.99420163 0.99695827 0.49156932;
++	-6.23247846 -0.00188886 0.00115112 7.23058961 0.99420509 0.99696002 0.49157383;
++	-6.23261756 -0.00188775 0.00115047 7.23072981 0.99420855 0.99696177 0.49157832;
++	-6.23275618 -0.00188665 0.00114983 7.23086953 0.99421200 0.99696352 0.49158279;
++	-6.23289431 -0.00188555 0.00114918 7.23100876 0.99421545 0.99696527 0.49158725;
++	-6.23303196 -0.00188444 0.00114854 7.23114751 0.99421890 0.99696702 0.49159170;
++	-6.23316912 -0.00188334 0.00114789 7.23128578 0.99422234 0.99696876 0.49159612;
++	-6.23330581 -0.00188225 0.00114725 7.23142357 0.99422578 0.99697050 0.49160053;
++	-6.23344202 -0.00188115 0.00114661 7.23156087 0.99422921 0.99697225 0.49160494;
++	-6.23357776 -0.00188005 0.00114596 7.23169771 0.99423264 0.99697398 0.49160932;
++	-6.23371302 -0.00187896 0.00114532 7.23183406 0.99423607 0.99697572 0.49161370;
++	-6.23384781 -0.00187786 0.00114468 7.23196994 0.99423949 0.99697746 0.49161806;
++	-6.23398212 -0.00187677 0.00114404 7.23210535 0.99424291 0.99697919 0.49162241;
++	-6.23411597 -0.00187568 0.00114340 7.23224029 0.99424633 0.99698092 0.49162674;
++	-6.23424935 -0.00187459 0.00114276 7.23237476 0.99424974 0.99698265 0.49163105;
++	-6.23438226 -0.00187350 0.00114212 7.23250876 0.99425315 0.99698438 0.49163535;
++	-6.23451471 -0.00187241 0.00114148 7.23264230 0.99425655 0.99698611 0.49163964;
++	-6.23464669 -0.00187132 0.00114084 7.23277537 0.99425995 0.99698783 0.49164392;
++	-6.23477821 -0.00187024 0.00114021 7.23290797 0.99426335 0.99698956 0.49164818;
++	-6.23490927 -0.00186915 0.00113957 7.23304012 0.99426674 0.99699128 0.49165242;
++	-6.23503988 -0.00186807 0.00113893 7.23317181 0.99427013 0.99699300 0.49165666;
++	-6.23517002 -0.00186698 0.00113830 7.23330304 0.99427352 0.99699472 0.49166087;
++	-6.23529971 -0.00186590 0.00113766 7.23343381 0.99427690 0.99699644 0.49166508;
++	-6.23542895 -0.00186482 0.00113703 7.23356413 0.99428028 0.99699815 0.49166927;
++	-6.23555773 -0.00186374 0.00113639 7.23369399 0.99428365 0.99699986 0.49167345;
++	-6.23568606 -0.00186267 0.00113576 7.23382340 0.99428702 0.99700157 0.49167762;
++	-6.23581395 -0.00186159 0.00113513 7.23395236 0.99429039 0.99700328 0.49168176;
++	-6.23594138 -0.00186051 0.00113449 7.23408087 0.99429375 0.99700499 0.49168591;
++	-6.23606837 -0.00185944 0.00113386 7.23420893 0.99429711 0.99700670 0.49169003;
++	-6.23619491 -0.00185836 0.00113323 7.23433655 0.99430047 0.99700840 0.49169415;
++	-6.23632102 -0.00185729 0.00113260 7.23446372 0.99430382 0.99701011 0.49169823;
++	-6.23644667 -0.00185622 0.00113197 7.23459045 0.99430717 0.99701181 0.49170232;
++	-6.23657189 -0.00185515 0.00113134 7.23471674 0.99431051 0.99701351 0.49170640;
++	-6.23669667 -0.00185408 0.00113071 7.23484259 0.99431385 0.99701521 0.49171044;
++	-6.23682101 -0.00185301 0.00113009 7.23496800 0.99431719 0.99701690 0.49171449;
++	-6.23694492 -0.00185195 0.00112946 7.23509297 0.99432052 0.99701860 0.49171853;
++	-6.23706839 -0.00185088 0.00112883 7.23521751 0.99432385 0.99702029 0.49172254;
++	-6.23719143 -0.00184981 0.00112820 7.23534161 0.99432718 0.99702198 0.49172655;
++	-6.23731403 -0.00184875 0.00112758 7.23546528 0.99433050 0.99702367 0.49173054;
++	-6.23743621 -0.00184769 0.00112695 7.23558852 0.99433382 0.99702536 0.49173452;
++	-6.23755795 -0.00184663 0.00112633 7.23571133 0.99433713 0.99702705 0.49173848;
++	-6.23767927 -0.00184557 0.00112570 7.23583371 0.99434044 0.99702873 0.49174243;
++	-6.23780017 -0.00184451 0.00112508 7.23595566 0.99434375 0.99703041 0.49174639;
++	-6.23792064 -0.00184345 0.00112446 7.23607719 0.99434706 0.99703209 0.49175031;
++	-6.23804068 -0.00184239 0.00112383 7.23619829 0.99435036 0.99703377 0.49175422;
++	-6.23816031 -0.00184134 0.00112321 7.23631897 0.99435365 0.99703545 0.49175813;
++	-6.23827952 -0.00184028 0.00112259 7.23643923 0.99435695 0.99703713 0.49176201;
++	-6.23839830 -0.00183923 0.00112197 7.23655907 0.99436024 0.99703880 0.49176589;
++	-6.23851667 -0.00183817 0.00112135 7.23667850 0.99436352 0.99704048 0.49176975;
++	-6.23863462 -0.00183712 0.00112073 7.23679750 0.99436680 0.99704215 0.49177361;
++	-6.23875216 -0.00183607 0.00112011 7.23691609 0.99437008 0.99704382 0.49177744;
++	-6.23886929 -0.00183502 0.00111949 7.23703427 0.99437336 0.99704548 0.49178127;
++	-6.23898600 -0.00183398 0.00111887 7.23715203 0.99437663 0.99704715 0.49178508;
++	-6.23910231 -0.00183293 0.00111826 7.23726938 0.99437990 0.99704881 0.49178889;
++	-6.23921820 -0.00183188 0.00111764 7.23738632 0.99438316 0.99705048 0.49179268;
++	-6.23933369 -0.00183084 0.00111702 7.23750286 0.99438642 0.99705214 0.49179645;
++	-6.23944877 -0.00182979 0.00111641 7.23761898 0.99438968 0.99705380 0.49180022;
++	-6.23956345 -0.00182875 0.00111579 7.23773470 0.99439293 0.99705546 0.49180397;
++	-6.23967773 -0.00182771 0.00111518 7.23785002 0.99439618 0.99705711 0.49180771;
++	-6.23979160 -0.00182667 0.00111456 7.23796493 0.99439943 0.99705877 0.49181144;
++	-6.23990507 -0.00182563 0.00111395 7.23807944 0.99440267 0.99706042 0.49181516;
++	-6.24001814 -0.00182459 0.00111334 7.23819355 0.99440591 0.99706207 0.49181886;
++	-6.24013082 -0.00182355 0.00111273 7.23830726 0.99440915 0.99706372 0.49182255;
++	-6.24024309 -0.00182251 0.00111211 7.23842058 0.99441238 0.99706537 0.49182623;
++	-6.24035498 -0.00182148 0.00111150 7.23853350 0.99441561 0.99706702 0.49182990;
++	-6.24046647 -0.00182045 0.00111089 7.23864602 0.99441884 0.99706866 0.49183355;
++	-6.24057756 -0.00181941 0.00111028 7.23875815 0.99442206 0.99707031 0.49183719;
++	-6.24068827 -0.00181838 0.00110967 7.23886989 0.99442528 0.99707195 0.49184083;
++	-6.24079858 -0.00181735 0.00110906 7.23898123 0.99442849 0.99707359 0.49184446;
++	-6.24090851 -0.00181632 0.00110846 7.23909219 0.99443170 0.99707523 0.49184806;
++	-6.24101805 -0.00181529 0.00110785 7.23920276 0.99443491 0.99707686 0.49185165;
++	-6.24112720 -0.00181426 0.00110724 7.23931294 0.99443812 0.99707850 0.49185524;
++	-6.24123597 -0.00181324 0.00110663 7.23942274 0.99444132 0.99708013 0.49185881;
++	-6.24134436 -0.00181221 0.00110603 7.23953215 0.99444451 0.99708176 0.49186237;
++	-6.24145237 -0.00181118 0.00110542 7.23964118 0.99444771 0.99708339 0.49186593;
++	-6.24155999 -0.00181016 0.00110482 7.23974983 0.99445090 0.99708502 0.49186947;
++	-6.24166723 -0.00180914 0.00110421 7.23985810 0.99445408 0.99708665 0.49187299;
++	-6.24177410 -0.00180812 0.00110361 7.23996598 0.99445727 0.99708828 0.49187651;
++	-6.24188059 -0.00180710 0.00110300 7.24007349 0.99446045 0.99708990 0.49188001;
++	-6.24198671 -0.00180608 0.00110240 7.24018063 0.99446363 0.99709152 0.49188351;
++	-6.24209245 -0.00180506 0.00110180 7.24028739 0.99446680 0.99709314 0.49188699;
++	-6.24219781 -0.00180404 0.00110120 7.24039377 0.99446997 0.99709476 0.49189046;
++	-6.24230281 -0.00180302 0.00110060 7.24049978 0.99447313 0.99709638 0.49189392;
++	-6.24240743 -0.00180201 0.00110000 7.24060543 0.99447630 0.99709800 0.49189737;
++	-6.24251169 -0.00180100 0.00109940 7.24071070 0.99447946 0.99709961 0.49190081;
++	-6.24261558 -0.00179998 0.00109880 7.24081560 0.99448261 0.99710122 0.49190424;
++	-6.24271910 -0.00179897 0.00109820 7.24092013 0.99448577 0.99710283 0.49190765;
++	-6.24282226 -0.00179796 0.00109760 7.24102430 0.99448891 0.99710444 0.49191105;
++	-6.24292505 -0.00179695 0.00109700 7.24112810 0.99449206 0.99710605 0.49191444;
++	-6.24302748 -0.00179594 0.00109640 7.24123154 0.99449520 0.99710766 0.49191782;
++	-6.24312955 -0.00179493 0.00109581 7.24133462 0.99449834 0.99710926 0.49192119;
++	-6.24323126 -0.00179392 0.00109521 7.24143733 0.99450148 0.99711087 0.49192455;
++	-6.24333261 -0.00179292 0.00109461 7.24153969 0.99450461 0.99711247 0.49192789;
++	-6.24343360 -0.00179191 0.00109402 7.24164168 0.99450774 0.99711407 0.49193123;
++	-6.24353423 -0.00179091 0.00109342 7.24174332 0.99451086 0.99711567 0.49193456;
++	-6.24363451 -0.00178991 0.00109283 7.24184460 0.99451399 0.99711726 0.49193787;
++	-6.24373444 -0.00178891 0.00109224 7.24194553 0.99451711 0.99711886 0.49194119;
++	-6.24383401 -0.00178790 0.00109164 7.24204610 0.99452022 0.99712045 0.49194448;
++	-6.24393323 -0.00178690 0.00109105 7.24214632 0.99452333 0.99712204 0.49194776;
++	-6.24403210 -0.00178591 0.00109046 7.24224619 0.99452644 0.99712364 0.49195103;
++	-6.24413062 -0.00178491 0.00108987 7.24234571 0.99452955 0.99712522 0.49195429;
++	-6.24422879 -0.00178391 0.00108928 7.24244488 0.99453265 0.99712681 0.49195755;
++	-6.24432661 -0.00178292 0.00108869 7.24254370 0.99453575 0.99712840 0.49196079;
++	-6.24442409 -0.00178192 0.00108810 7.24264217 0.99453884 0.99712998 0.49196402;
++	-6.24452123 -0.00178093 0.00108751 7.24274030 0.99454194 0.99713157 0.49196723;
++	-6.24461802 -0.00177993 0.00108692 7.24283808 0.99454502 0.99713315 0.49197045;
++	-6.24471446 -0.00177894 0.00108633 7.24293552 0.99454811 0.99713473 0.49197365;
++	-6.24481057 -0.00177795 0.00108574 7.24303262 0.99455119 0.99713630 0.49197684;
++	-6.24490634 -0.00177696 0.00108516 7.24312938 0.99455427 0.99713788 0.49198002;
++	-6.24500177 -0.00177597 0.00108457 7.24322579 0.99455735 0.99713946 0.49198318;
++	-6.24509686 -0.00177499 0.00108398 7.24332187 0.99456042 0.99714103 0.49198634;
++	-6.24519161 -0.00177400 0.00108340 7.24341761 0.99456349 0.99714260 0.49198949;
++	-6.24528603 -0.00177301 0.00108281 7.24351302 0.99456655 0.99714417 0.49199263;
++	-6.24538012 -0.00177203 0.00108223 7.24360809 0.99456961 0.99714574 0.49199575;
++	-6.24547387 -0.00177105 0.00108164 7.24370283 0.99457267 0.99714731 0.49199887;
++	-6.24556729 -0.00177006 0.00108106 7.24379723 0.99457573 0.99714887 0.49200198;
++	-6.24566038 -0.00176908 0.00108048 7.24389130 0.99457878 0.99715044 0.49200507;
++	-6.24575314 -0.00176810 0.00107990 7.24398504 0.99458183 0.99715200 0.49200817;
++	-6.24584557 -0.00176712 0.00107931 7.24407845 0.99458488 0.99715356 0.49201123;
++	-6.24593768 -0.00176614 0.00107873 7.24417153 0.99458792 0.99715512 0.49201431;
++	-6.24602946 -0.00176517 0.00107815 7.24426429 0.99459096 0.99715668 0.49201737;
++	-6.24612091 -0.00176419 0.00107757 7.24435672 0.99459400 0.99715824 0.49202041;
++	-6.24621204 -0.00176321 0.00107699 7.24444883 0.99459703 0.99715979 0.49202344;
++	-6.24630285 -0.00176224 0.00107641 7.24454061 0.99460006 0.99716135 0.49202647;
++	-6.24639333 -0.00176127 0.00107584 7.24463206 0.99460309 0.99716290 0.49202949;
++	-6.24648350 -0.00176029 0.00107526 7.24472320 0.99460611 0.99716445 0.49203250;
++	-6.24657334 -0.00175932 0.00107468 7.24481402 0.99460913 0.99716600 0.49203550;
++	-6.24666287 -0.00175835 0.00107410 7.24490451 0.99461215 0.99716755 0.49203848;
++	-6.24675208 -0.00175738 0.00107353 7.24499469 0.99461516 0.99716909 0.49204146;
++	-6.24684097 -0.00175641 0.00107295 7.24508455 0.99461817 0.99717064 0.49204443;
++	-6.24692955 -0.00175545 0.00107238 7.24517410 0.99462118 0.99717218 0.49204739;
++	-6.24701781 -0.00175448 0.00107180 7.24526333 0.99462418 0.99717372 0.49205033;
++	-6.24710576 -0.00175351 0.00107123 7.24535225 0.99462718 0.99717526 0.49205328;
++	-6.24719340 -0.00175255 0.00107065 7.24544085 0.99463018 0.99717680 0.49205621;
++	-6.24728073 -0.00175158 0.00107008 7.24552914 0.99463317 0.99717834 0.49205913;
++	-6.24736775 -0.00175062 0.00106951 7.24561712 0.99463617 0.99717987 0.49206204;
++	-6.24745446 -0.00174966 0.00106893 7.24570479 0.99463915 0.99718141 0.49206494;
++	-6.24754086 -0.00174870 0.00106836 7.24579216 0.99464214 0.99718294 0.49206783;
++	-6.24762695 -0.00174774 0.00106779 7.24587921 0.99464512 0.99718447 0.49207072;
++	-6.24771274 -0.00174678 0.00106722 7.24596596 0.99464810 0.99718600 0.49207359;
++	-6.24779823 -0.00174582 0.00106665 7.24605241 0.99465108 0.99718753 0.49207645;
++	-6.24788341 -0.00174487 0.00106608 7.24613854 0.99465405 0.99718905 0.49207931;
++	-6.24796829 -0.00174391 0.00106551 7.24622438 0.99465702 0.99719058 0.49208216;
++	-6.24805287 -0.00174296 0.00106494 7.24630991 0.99465998 0.99719210 0.49208499;
++	-6.24813715 -0.00174200 0.00106438 7.24639515 0.99466295 0.99719362 0.49208783;
++	-6.24822113 -0.00174105 0.00106381 7.24648008 0.99466591 0.99719514 0.49209064;
++	-6.24830481 -0.00174010 0.00106324 7.24656471 0.99466886 0.99719666 0.49209345;
++	-6.24838819 -0.00173915 0.00106267 7.24664905 0.99467182 0.99719818 0.49209625;
++	-6.24847128 -0.00173819 0.00106211 7.24673309 0.99467477 0.99719970 0.49209904;
++	-6.24855407 -0.00173725 0.00106154 7.24681683 0.99467771 0.99720121 0.49210182;
++	-6.24863657 -0.00173630 0.00106098 7.24690027 0.99468066 0.99720272 0.49210459;
++	-6.24871878 -0.00173535 0.00106041 7.24698343 0.99468360 0.99720424 0.49210735;
++	-6.24880069 -0.00173440 0.00105985 7.24706629 0.99468654 0.99720575 0.49211010;
++	-6.24888231 -0.00173346 0.00105929 7.24714886 0.99468947 0.99720725 0.49211286;
++	-6.24896365 -0.00173251 0.00105872 7.24723113 0.99469240 0.99720876 0.49211559;
++	-6.24904469 -0.00173157 0.00105816 7.24731312 0.99469533 0.99721027 0.49211832;
++	-6.24912545 -0.00173063 0.00105760 7.24739482 0.99469826 0.99721177 0.49212104;
++	-6.24920591 -0.00172969 0.00105704 7.24747623 0.99470118 0.99721327 0.49212375;
++	-6.24928610 -0.00172875 0.00105648 7.24755735 0.99470410 0.99721478 0.49212645;
++	-6.24936599 -0.00172781 0.00105592 7.24763819 0.99470702 0.99721628 0.49212915;
++	-6.24944561 -0.00172687 0.00105536 7.24771874 0.99470993 0.99721777 0.49213183;
++	-6.24952494 -0.00172593 0.00105480 7.24779901 0.99471284 0.99721927 0.49213451;
++	-6.24960399 -0.00172499 0.00105424 7.24787899 0.99471575 0.99722077 0.49213717;
++	-6.24968275 -0.00172406 0.00105368 7.24795870 0.99471865 0.99722226 0.49213983;
++	-6.24976124 -0.00172312 0.00105312 7.24803812 0.99472155 0.99722375 0.49214248;
++	-6.24983945 -0.00172219 0.00105257 7.24811726 0.99472445 0.99722524 0.49214512;
++	-6.24991738 -0.00172126 0.00105201 7.24819612 0.99472735 0.99722673 0.49214776;
++	-6.24999503 -0.00172032 0.00105145 7.24827471 0.99473024 0.99722822 0.49215038;
++	-6.25007241 -0.00171939 0.00105090 7.24835302 0.99473313 0.99722971 0.49215299;
++	-6.25014951 -0.00171846 0.00105034 7.24843105 0.99473601 0.99723119 0.49215561;
++	-6.25022634 -0.00171753 0.00104979 7.24850880 0.99473890 0.99723268 0.49215820;
++	-6.25030289 -0.00171660 0.00104923 7.24858628 0.99474178 0.99723416 0.49216079;
++	-6.25037917 -0.00171568 0.00104868 7.24866349 0.99474465 0.99723564 0.49216338;
++	-6.25045518 -0.00171475 0.00104813 7.24874043 0.99474753 0.99723712 0.49216595;
++	-6.25053092 -0.00171382 0.00104758 7.24881709 0.99475040 0.99723860 0.49216851;
++	-6.25060639 -0.00171290 0.00104702 7.24889349 0.99475327 0.99724008 0.49217106;
++	-6.25068159 -0.00171198 0.00104647 7.24896961 0.99475613 0.99724155 0.49217362;
++	-6.25075652 -0.00171105 0.00104592 7.24904547 0.99475899 0.99724303 0.49217616;
++	-6.25083119 -0.00171013 0.00104537 7.24912106 0.99476185 0.99724450 0.49217869;
++	-6.25090559 -0.00170921 0.00104482 7.24919638 0.99476471 0.99724597 0.49218121;
++	-6.25097972 -0.00170829 0.00104427 7.24927143 0.99476756 0.99724744 0.49218373;
++	-6.25105359 -0.00170737 0.00104372 7.24934622 0.99477041 0.99724891 0.49218624;
++	-6.25112720 -0.00170645 0.00104317 7.24942075 0.99477326 0.99725037 0.49218873;
++	-6.25120055 -0.00170554 0.00104262 7.24949501 0.99477610 0.99725184 0.49219122;
++	-6.25127363 -0.00170462 0.00104208 7.24956901 0.99477894 0.99725330 0.49219371;
++	-6.25134646 -0.00170370 0.00104153 7.24964275 0.99478178 0.99725477 0.49219618;
++	-6.25141902 -0.00170279 0.00104098 7.24971623 0.99478462 0.99725623 0.49219865;
++	-6.25149133 -0.00170188 0.00104044 7.24978945 0.99478745 0.99725769 0.49220112;
++	-6.25156338 -0.00170096 0.00103989 7.24986241 0.99479028 0.99725915 0.49220356;
++	-6.25163517 -0.00170005 0.00103935 7.24993512 0.99479311 0.99726060 0.49220600;
++	-6.25170670 -0.00169914 0.00103880 7.25000756 0.99479593 0.99726206 0.49220844;
++	-6.25177798 -0.00169823 0.00103826 7.25007975 0.99479875 0.99726351 0.49221087;
++	-6.25184901 -0.00169732 0.00103771 7.25015169 0.99480157 0.99726496 0.49221329;
++	-6.25191978 -0.00169641 0.00103717 7.25022337 0.99480438 0.99726642 0.49221570;
++	-6.25199031 -0.00169551 0.00103663 7.25029480 0.99480719 0.99726787 0.49221811;
++	-6.25206057 -0.00169460 0.00103609 7.25036598 0.99481000 0.99726931 0.49222050;
++	-6.25213059 -0.00169369 0.00103555 7.25043690 0.99481281 0.99727076 0.49222289;
++	-6.25220036 -0.00169279 0.00103500 7.25050757 0.99481561 0.99727221 0.49222527;
++	-6.25226988 -0.00169189 0.00103446 7.25057800 0.99481841 0.99727365 0.49222765;
++	-6.25233916 -0.00169098 0.00103392 7.25064817 0.99482121 0.99727509 0.49223001;
++	-6.25240818 -0.00169008 0.00103338 7.25071810 0.99482400 0.99727653 0.49223237;
++	-6.25247696 -0.00168918 0.00103285 7.25078778 0.99482680 0.99727797 0.49223472;
++	-6.25254550 -0.00168828 0.00103231 7.25085722 0.99482958 0.99727941 0.49223706;
++	-6.25261379 -0.00168738 0.00103177 7.25092640 0.99483237 0.99728085 0.49223939;
++	-6.25268183 -0.00168648 0.00103123 7.25099535 0.99483515 0.99728229 0.49224172;
++	-6.25274963 -0.00168559 0.00103069 7.25106405 0.99483793 0.99728372 0.49224404;
++	-6.25281720 -0.00168469 0.00103016 7.25113251 0.99484071 0.99728515 0.49224636;
++	-6.25288452 -0.00168379 0.00102962 7.25120072 0.99484348 0.99728659 0.49224866;
++	-6.25295160 -0.00168290 0.00102909 7.25126870 0.99484626 0.99728802 0.49225097;
++	-6.25301844 -0.00168200 0.00102855 7.25133643 0.99484902 0.99728945 0.49225325;
++	-6.25308504 -0.00168111 0.00102802 7.25140393 0.99485179 0.99729087 0.49225553;
++	-6.25315140 -0.00168022 0.00102748 7.25147118 0.99485455 0.99729230 0.49225780;
++	-6.25321753 -0.00167933 0.00102695 7.25153820 0.99485731 0.99729372 0.49226008;
++	-6.25328342 -0.00167844 0.00102641 7.25160498 0.99486007 0.99729515 0.49226233;
++	-6.25334907 -0.00167755 0.00102588 7.25167153 0.99486282 0.99729657 0.49226459;
++	-6.25341450 -0.00167666 0.00102535 7.25173784 0.99486558 0.99729799 0.49226684;
++	-6.25347968 -0.00167577 0.00102482 7.25180391 0.99486832 0.99729941 0.49226907;
++	-6.25354464 -0.00167489 0.00102429 7.25186975 0.99487107 0.99730083 0.49227131;
++	-6.25360936 -0.00167400 0.00102376 7.25193536 0.99487381 0.99730224 0.49227354;
++	-6.25367385 -0.00167312 0.00102323 7.25200074 0.99487655 0.99730366 0.49227575;
++	-6.25373811 -0.00167223 0.00102270 7.25206588 0.99487929 0.99730507 0.49227796;
++	-6.25380215 -0.00167135 0.00102217 7.25213080 0.99488202 0.99730649 0.49228016;
++	-6.25386595 -0.00167047 0.00102164 7.25219548 0.99488476 0.99730790 0.49228236;
++	-6.25392952 -0.00166958 0.00102111 7.25225994 0.99488749 0.99730931 0.49228455;
++	-6.25399287 -0.00166870 0.00102058 7.25232417 0.99489021 0.99731072 0.49228673;
++	-6.25405599 -0.00166782 0.00102005 7.25238817 0.99489294 0.99731212 0.49228892;
++	-6.25411889 -0.00166694 0.00101953 7.25245194 0.99489566 0.99731353 0.49229108;
++	-6.25418156 -0.00166607 0.00101900 7.25251549 0.99489837 0.99731493 0.49229324;
++	-6.25424401 -0.00166519 0.00101847 7.25257882 0.99490109 0.99731634 0.49229539;
++	-6.25430623 -0.00166431 0.00101795 7.25264192 0.99490380 0.99731774 0.49229754;
++	-6.25436823 -0.00166344 0.00101742 7.25270479 0.99490651 0.99731914 0.49229968;
++	-6.25443001 -0.00166256 0.00101690 7.25276745 0.99490922 0.99732054 0.49230182;
++	-6.25449157 -0.00166169 0.00101638 7.25282988 0.99491192 0.99732194 0.49230394;
++	-6.25455291 -0.00166082 0.00101585 7.25289209 0.99491462 0.99732333 0.49230606;
++	-6.25461403 -0.00165994 0.00101533 7.25295408 0.99491732 0.99732473 0.49230817;
++	-6.25467493 -0.00165907 0.00101481 7.25301586 0.99492002 0.99732612 0.49231027;
++	-6.25473561 -0.00165820 0.00101428 7.25307741 0.99492271 0.99732751 0.49231238;
++	-6.25479608 -0.00165733 0.00101376 7.25313874 0.99492540 0.99732890 0.49231446;
++	-6.25485633 -0.00165647 0.00101324 7.25319986 0.99492809 0.99733029 0.49231656;
++	-6.25491636 -0.00165560 0.00101272 7.25326076 0.99493077 0.99733168 0.49231863;
++	-6.25497618 -0.00165473 0.00101220 7.25332145 0.99493345 0.99733307 0.49232070;
++	-6.25503579 -0.00165386 0.00101168 7.25338192 0.99493613 0.99733445 0.49232277;
++	-6.25509518 -0.00165300 0.00101116 7.25344218 0.99493881 0.99733584 0.49232483;
++	-6.25515436 -0.00165214 0.00101064 7.25350222 0.99494148 0.99733722 0.49232688;
++	-6.25521333 -0.00165127 0.00101012 7.25356206 0.99494415 0.99733860 0.49232894;
++	-6.25527209 -0.00165041 0.00100961 7.25362168 0.99494682 0.99733998 0.49233097;
++	-6.25533063 -0.00164955 0.00100909 7.25368108 0.99494949 0.99734136 0.49233301;
++	-6.25538897 -0.00164869 0.00100857 7.25374028 0.99495215 0.99734274 0.49233504;
++	-6.25544710 -0.00164783 0.00100806 7.25379927 0.99495481 0.99734412 0.49233704;
++	-6.25550502 -0.00164697 0.00100754 7.25385805 0.99495747 0.99734549 0.49233906;
++	-6.25556273 -0.00164611 0.00100702 7.25391662 0.99496012 0.99734687 0.49234107;
++	-6.25562024 -0.00164525 0.00100651 7.25397499 0.99496278 0.99734824 0.49234308;
++	-6.25567754 -0.00164440 0.00100599 7.25403314 0.99496543 0.99734961 0.49234506;
++	-6.25573464 -0.00164354 0.00100548 7.25409110 0.99496807 0.99735098 0.49234706;
++	-6.25579153 -0.00164268 0.00100497 7.25414884 0.99497072 0.99735235 0.49234904;
++	-6.25584821 -0.00164183 0.00100445 7.25420638 0.99497336 0.99735372 0.49235101;
++	-6.25590470 -0.00164098 0.00100394 7.25426372 0.99497600 0.99735508 0.49235297;
++	-6.25596098 -0.00164012 0.00100343 7.25432086 0.99497863 0.99735645 0.49235495;
++	-6.25601706 -0.00163927 0.00100292 7.25437779 0.99498127 0.99735781 0.49235690;
++	-6.25607294 -0.00163842 0.00100241 7.25443452 0.99498390 0.99735917 0.49235884;
++	-6.25612862 -0.00163757 0.00100189 7.25449105 0.99498652 0.99736053 0.49236079;
++	-6.25618410 -0.00163672 0.00100138 7.25454738 0.99498915 0.99736189 0.49236272;
++	-6.25623938 -0.00163587 0.00100087 7.25460351 0.99499177 0.99736325 0.49236466;
++	-6.25629447 -0.00163503 0.00100036 7.25465944 0.99499439 0.99736461 0.49236658;
++	-6.25634936 -0.00163418 0.00099986 7.25471518 0.99499701 0.99736596 0.49236850;
++	-6.25640405 -0.00163333 0.00099935 7.25477071 0.99499963 0.99736732 0.49237042;
++	-6.25645854 -0.00163249 0.00099884 7.25482605 0.99500224 0.99736867 0.49237232;
++	-6.25651284 -0.00163164 0.00099833 7.25488119 0.99500485 0.99737002 0.49237422;
++	-6.25656694 -0.00163080 0.00099782 7.25493614 0.99500745 0.99737137 0.49237612;
++	-6.25662085 -0.00162996 0.00099732 7.25499089 0.99501006 0.99737272 0.49237800;
++	-6.25667457 -0.00162912 0.00099681 7.25504545 0.99501266 0.99737407 0.49237989;
++	-6.25672809 -0.00162828 0.00099631 7.25509982 0.99501526 0.99737542 0.49238176;
++	-6.25678143 -0.00162744 0.00099580 7.25515399 0.99501786 0.99737676 0.49238364;
++	-6.25683457 -0.00162660 0.00099530 7.25520797 0.99502045 0.99737811 0.49238550;
++	-6.25688752 -0.00162576 0.00099479 7.25526176 0.99502304 0.99737945 0.49238736;
++	-6.25694028 -0.00162492 0.00099429 7.25531536 0.99502563 0.99738079 0.49238921;
++	-6.25699285 -0.00162408 0.00099378 7.25536877 0.99502822 0.99738213 0.49239105;
++	-6.25704524 -0.00162325 0.00099328 7.25542199 0.99503080 0.99738347 0.49239289;
++	-6.25709743 -0.00162241 0.00099278 7.25547502 0.99503338 0.99738481 0.49239473;
++	-6.25714944 -0.00162158 0.00099228 7.25552786 0.99503596 0.99738615 0.49239656;
++	-6.25720127 -0.00162074 0.00099177 7.25558052 0.99503853 0.99738748 0.49239838;
++	-6.25725290 -0.00161991 0.00099127 7.25563299 0.99504111 0.99738881 0.49240020;
++	-6.25730435 -0.00161908 0.00099077 7.25568527 0.99504368 0.99739015 0.49240201;
++	-6.25735562 -0.00161825 0.00099027 7.25573737 0.99504625 0.99739148 0.49240381;
++	-6.25740670 -0.00161742 0.00098977 7.25578929 0.99504881 0.99739281 0.49240561;
++	-6.25745761 -0.00161659 0.00098927 7.25584102 0.99505137 0.99739414 0.49240741;
++	-6.25750832 -0.00161576 0.00098877 7.25589256 0.99505393 0.99739547 0.49240919;
++	-6.25755886 -0.00161493 0.00098828 7.25594393 0.99505649 0.99739679 0.49241098;
++	-6.25760921 -0.00161411 0.00098778 7.25599511 0.99505905 0.99739812 0.49241276;
++	-6.25765939 -0.00161328 0.00098728 7.25604611 0.99506160 0.99739944 0.49241453;
++	-6.25770938 -0.00161245 0.00098678 7.25609693 0.99506415 0.99740076 0.49241630;
++	-6.25775920 -0.00161163 0.00098629 7.25614757 0.99506670 0.99740209 0.49241806;
++	-6.25780883 -0.00161080 0.00098579 7.25619803 0.99506924 0.99740341 0.49241981;
++	-6.25785829 -0.00160998 0.00098529 7.25624831 0.99507179 0.99740472 0.49242156;
++	-6.25790757 -0.00160916 0.00098480 7.25629841 0.99507433 0.99740604 0.49242330;
++	-6.25795667 -0.00160834 0.00098430 7.25634834 0.99507686 0.99740736 0.49242504;
++	-6.25800560 -0.00160752 0.00098381 7.25639808 0.99507940 0.99740867 0.49242678;
++	-6.25805435 -0.00160670 0.00098332 7.25644766 0.99508193 0.99740999 0.49242849;
++	-6.25810293 -0.00160588 0.00098282 7.25649705 0.99508446 0.99741130 0.49243022;
++	-6.25815133 -0.00160506 0.00098233 7.25654627 0.99508699 0.99741261 0.49243193;
++	-6.25819956 -0.00160424 0.00098184 7.25659532 0.99508951 0.99741392 0.49243365;
++	-6.25824762 -0.00160342 0.00098134 7.25664419 0.99509203 0.99741523 0.49243535;
++	-6.25829550 -0.00160261 0.00098085 7.25669289 0.99509455 0.99741654 0.49243704;
++	-6.25834321 -0.00160179 0.00098036 7.25674142 0.99509707 0.99741784 0.49243875;
++	-6.25839075 -0.00160098 0.00097987 7.25678978 0.99509959 0.99741915 0.49244043;
++	-6.25843812 -0.00160017 0.00097938 7.25683796 0.99510210 0.99742045 0.49244213;
++	-6.25848532 -0.00159935 0.00097889 7.25688597 0.99510461 0.99742176 0.49244379;
++	-6.25853235 -0.00159854 0.00097840 7.25693381 0.99510712 0.99742306 0.49244547;
++	-6.25857922 -0.00159773 0.00097791 7.25698149 0.99510962 0.99742436 0.49244714;
++	-6.25862591 -0.00159692 0.00097742 7.25702899 0.99511212 0.99742566 0.49244880;
++	-6.25867244 -0.00159611 0.00097693 7.25707633 0.99511462 0.99742696 0.49245046;
++	-6.25871879 -0.00159530 0.00097645 7.25712350 0.99511712 0.99742825 0.49245210;
++	-6.25876499 -0.00159449 0.00097596 7.25717050 0.99511962 0.99742955 0.49245376;
++	-6.25881101 -0.00159368 0.00097547 7.25721733 0.99512211 0.99743084 0.49245539;
++	-6.25885688 -0.00159288 0.00097499 7.25726400 0.99512460 0.99743214 0.49245702;
++	-6.25890257 -0.00159207 0.00097450 7.25731050 0.99512709 0.99743343 0.49245866;
++	-6.25894810 -0.00159127 0.00097402 7.25735684 0.99512957 0.99743472 0.49246028;
++	-6.25899347 -0.00159046 0.00097353 7.25740301 0.99513205 0.99743601 0.49246190;
++	-6.25903868 -0.00158966 0.00097305 7.25744902 0.99513453 0.99743730 0.49246352;
++	-6.25908372 -0.00158886 0.00097256 7.25749487 0.99513701 0.99743858 0.49246513;
++	-6.25912861 -0.00158805 0.00097208 7.25754055 0.99513949 0.99743987 0.49246673;
++	-6.25917333 -0.00158725 0.00097159 7.25758607 0.99514196 0.99744115 0.49246833;
++	-6.25921789 -0.00158645 0.00097111 7.25763144 0.99514443 0.99744244 0.49246993;
++	-6.25926229 -0.00158565 0.00097063 7.25767664 0.99514690 0.99744372 0.49247152;
++	-6.25930653 -0.00158485 0.00097015 7.25772168 0.99514936 0.99744500 0.49247309;
++	-6.25935061 -0.00158406 0.00096966 7.25776656 0.99515183 0.99744628 0.49247468;
++	-6.25939453 -0.00158326 0.00096918 7.25781128 0.99515429 0.99744756 0.49247625;
++	-6.25943830 -0.00158246 0.00096870 7.25785584 0.99515675 0.99744884 0.49247782;
++	-6.25948191 -0.00158167 0.00096822 7.25790024 0.99515920 0.99745011 0.49247939;
++	-6.25952536 -0.00158087 0.00096774 7.25794449 0.99516165 0.99745139 0.49248095;
++	-6.25956866 -0.00158008 0.00096726 7.25798858 0.99516411 0.99745266 0.49248251;
++	-6.25961180 -0.00157928 0.00096678 7.25803252 0.99516655 0.99745393 0.49248405;
++	-6.25965478 -0.00157849 0.00096631 7.25807629 0.99516900 0.99745521 0.49248560;
++	-6.25969761 -0.00157770 0.00096583 7.25811992 0.99517144 0.99745648 0.49248715;
++	-6.25974029 -0.00157691 0.00096535 7.25816339 0.99517389 0.99745774 0.49248867;
++	-6.25978282 -0.00157612 0.00096487 7.25820670 0.99517633 0.99745901 0.49249021;
++	-6.25982519 -0.00157533 0.00096440 7.25824986 0.99517876 0.99746028 0.49249174;
++	-6.25986741 -0.00157454 0.00096392 7.25829287 0.99518120 0.99746154 0.49249325;
++	-6.25990947 -0.00157375 0.00096344 7.25833572 0.99518363 0.99746281 0.49249477;
++	-6.25995139 -0.00157296 0.00096297 7.25837843 0.99518606 0.99746407 0.49249628;
++	-6.25999315 -0.00157217 0.00096249 7.25842098 0.99518848 0.99746533 0.49249779;
++	-6.26003477 -0.00157139 0.00096202 7.25846338 0.99519091 0.99746659 0.49249929;
++	-6.26007624 -0.00157060 0.00096154 7.25850563 0.99519333 0.99746785 0.49250079;
++	-6.26011755 -0.00156982 0.00096107 7.25854773 0.99519575 0.99746911 0.49250228;
++	-6.26015872 -0.00156903 0.00096060 7.25858969 0.99519817 0.99747037 0.49250377;
++	-6.26019974 -0.00156825 0.00096012 7.25863149 0.99520058 0.99747163 0.49250524;
++	-6.26024061 -0.00156747 0.00095965 7.25867315 0.99520300 0.99747288 0.49250672;
++	-6.26028134 -0.00156669 0.00095918 7.25871465 0.99520541 0.99747414 0.49250819;
++	-6.26032192 -0.00156591 0.00095871 7.25875601 0.99520782 0.99747539 0.49250967;
++	-6.26036235 -0.00156513 0.00095823 7.25879723 0.99521022 0.99747664 0.49251114;
++	-6.26040264 -0.00156435 0.00095776 7.25883830 0.99521263 0.99747789 0.49251259;
++	-6.26044279 -0.00156357 0.00095729 7.25887922 0.99521503 0.99747914 0.49251404;
++	-6.26048279 -0.00156279 0.00095682 7.25892000 0.99521743 0.99748039 0.49251549;
++	-6.26052264 -0.00156201 0.00095635 7.25896063 0.99521982 0.99748163 0.49251694;
++	-6.26056235 -0.00156124 0.00095588 7.25900112 0.99522222 0.99748288 0.49251838;
++	-6.26060192 -0.00156046 0.00095542 7.25904146 0.99522461 0.99748412 0.49251982;
++	-6.26064135 -0.00155969 0.00095495 7.25908167 0.99522700 0.99748537 0.49252125;
++	-6.26068064 -0.00155891 0.00095448 7.25912173 0.99522939 0.99748661 0.49252269;
++	-6.26071978 -0.00155814 0.00095401 7.25916164 0.99523177 0.99748785 0.49252410;
++	-6.26075879 -0.00155737 0.00095354 7.25920142 0.99523415 0.99748909 0.49252552;
++	-6.26079765 -0.00155659 0.00095308 7.25924106 0.99523653 0.99749033 0.49252694;
++	-6.26083637 -0.00155582 0.00095261 7.25928055 0.99523891 0.99749157 0.49252834;
++	-6.26087496 -0.00155505 0.00095215 7.25931991 0.99524129 0.99749280 0.49252975;
++	-6.26091341 -0.00155428 0.00095168 7.25935912 0.99524366 0.99749404 0.49253116;
++	-6.26095171 -0.00155351 0.00095122 7.25939820 0.99524603 0.99749527 0.49253255;
++	-6.26098988 -0.00155274 0.00095075 7.25943714 0.99524840 0.99749651 0.49253394;
++	-6.26102792 -0.00155198 0.00095029 7.25947594 0.99525077 0.99749774 0.49253533;
++	-6.26106581 -0.00155121 0.00094982 7.25951460 0.99525313 0.99749897 0.49253672;
++	-6.26110357 -0.00155044 0.00094936 7.25955313 0.99525549 0.99750020 0.49253810;
++	-6.26114120 -0.00154968 0.00094890 7.25959152 0.99525785 0.99750143 0.49253947;
++	-6.26117869 -0.00154891 0.00094843 7.25962977 0.99526021 0.99750265 0.49254085;
++	-6.26121604 -0.00154815 0.00094797 7.25966789 0.99526256 0.99750388 0.49254220;
++	-6.26125326 -0.00154739 0.00094751 7.25970587 0.99526492 0.99750510 0.49254357;
++	-6.26129035 -0.00154662 0.00094705 7.25974372 0.99526727 0.99750633 0.49254493;
++	-6.26132730 -0.00154586 0.00094659 7.25978144 0.99526962 0.99750755 0.49254628;
++	-6.26136412 -0.00154510 0.00094613 7.25981902 0.99527196 0.99750877 0.49254763;
++	-6.26140081 -0.00154434 0.00094567 7.25985647 0.99527431 0.99750999 0.49254897;
++	-6.26143736 -0.00154358 0.00094521 7.25989378 0.99527665 0.99751121 0.49255032;
++	-6.26147379 -0.00154282 0.00094475 7.25993097 0.99527899 0.99751243 0.49255166;
++	-6.26151008 -0.00154206 0.00094429 7.25996802 0.99528132 0.99751365 0.49255299;
++	-6.26154624 -0.00154131 0.00094383 7.26000494 0.99528366 0.99751486 0.49255432;
++	-6.26158228 -0.00154055 0.00094337 7.26004173 0.99528599 0.99751608 0.49255564;
++	-6.26161818 -0.00153979 0.00094292 7.26007839 0.99528832 0.99751729 0.49255696;
++	-6.26165395 -0.00153904 0.00094246 7.26011492 0.99529065 0.99751851 0.49255828;
++	-6.26168960 -0.00153828 0.00094200 7.26015132 0.99529297 0.99751972 0.49255958;
++	-6.26172512 -0.00153753 0.00094155 7.26018759 0.99529530 0.99752093 0.49256090;
++	-6.26176051 -0.00153677 0.00094109 7.26022373 0.99529762 0.99752214 0.49256219;
++	-6.26179577 -0.00153602 0.00094063 7.26025975 0.99529994 0.99752334 0.49256349;
++	-6.26183090 -0.00153527 0.00094018 7.26029563 0.99530226 0.99752455 0.49256478;
++	-6.26186591 -0.00153452 0.00093972 7.26033139 0.99530457 0.99752576 0.49256609;
++	-6.26190080 -0.00153377 0.00093927 7.26036703 0.99530688 0.99752696 0.49256738;
++	-6.26193555 -0.00153302 0.00093882 7.26040254 0.99530919 0.99752817 0.49256866;
++	-6.26197019 -0.00153227 0.00093836 7.26043792 0.99531150 0.99752937 0.49256993;
++	-6.26200470 -0.00153152 0.00093791 7.26047317 0.99531381 0.99753057 0.49257121;
++	-6.26203908 -0.00153077 0.00093746 7.26050831 0.99531611 0.99753177 0.49257249;
++	-6.26207334 -0.00153003 0.00093700 7.26054331 0.99531841 0.99753297 0.49257375;
++	-6.26210748 -0.00152928 0.00093655 7.26057820 0.99532071 0.99753417 0.49257501;
++	-6.26214149 -0.00152853 0.00093610 7.26061296 0.99532301 0.99753537 0.49257629;
++	-6.26217539 -0.00152779 0.00093565 7.26064760 0.99532530 0.99753656 0.49257754;
++	-6.26220916 -0.00152705 0.00093520 7.26068211 0.99532759 0.99753776 0.49257879;
++	-6.26224280 -0.00152630 0.00093475 7.26071650 0.99532988 0.99753895 0.49258003;
++	-6.26227633 -0.00152556 0.00093430 7.26075077 0.99533217 0.99754014 0.49258128;
++	-6.26230974 -0.00152482 0.00093385 7.26078492 0.99533446 0.99754133 0.49258252;
++	-6.26234303 -0.00152408 0.00093340 7.26081895 0.99533674 0.99754253 0.49258376;
++	-6.26237620 -0.00152333 0.00093295 7.26085286 0.99533902 0.99754372 0.49258498;
++	-6.26240924 -0.00152259 0.00093250 7.26088665 0.99534130 0.99754490 0.49258622;
++	-6.26244217 -0.00152186 0.00093205 7.26092032 0.99534358 0.99754609 0.49258745;
++	-6.26247499 -0.00152112 0.00093161 7.26095387 0.99534586 0.99754728 0.49258868;
++	-6.26250768 -0.00152038 0.00093116 7.26098730 0.99534813 0.99754846 0.49258989;
++	-6.26254025 -0.00151964 0.00093071 7.26102061 0.99535040 0.99754965 0.49259110;
++	-6.26257271 -0.00151890 0.00093027 7.26105381 0.99535267 0.99755083 0.49259230;
++	-6.26260505 -0.00151817 0.00092982 7.26108689 0.99535493 0.99755201 0.49259351;
++	-6.26263728 -0.00151743 0.00092937 7.26111985 0.99535720 0.99755319 0.49259471;
++	-6.26266939 -0.00151670 0.00092893 7.26115269 0.99535946 0.99755437 0.49259592;
++	-6.26270138 -0.00151596 0.00092848 7.26118542 0.99536172 0.99755555 0.49259711;
++	-6.26273326 -0.00151523 0.00092804 7.26121803 0.99536398 0.99755673 0.49259829;
++	-6.26276503 -0.00151450 0.00092760 7.26125053 0.99536623 0.99755790 0.49259950;
++	-6.26279668 -0.00151377 0.00092715 7.26128291 0.99536849 0.99755908 0.49260067;
++	-6.26282822 -0.00151304 0.00092671 7.26131518 0.99537074 0.99756025 0.49260186;
++	-6.26285964 -0.00151231 0.00092627 7.26134733 0.99537299 0.99756143 0.49260303;
++	-6.26289095 -0.00151158 0.00092582 7.26137937 0.99537524 0.99756260 0.49260421;
++	-6.26292215 -0.00151085 0.00092538 7.26141130 0.99537748 0.99756377 0.49260538;
++	-6.26295323 -0.00151012 0.00092494 7.26144311 0.99537972 0.99756494 0.49260653;
++	-6.26298421 -0.00150939 0.00092450 7.26147481 0.99538196 0.99756611 0.49260770;
++	-6.26301507 -0.00150866 0.00092406 7.26150640 0.99538420 0.99756728 0.49260887;
++	-6.26304582 -0.00150794 0.00092362 7.26153788 0.99538644 0.99756844 0.49261002;
++	-6.26307646 -0.00150721 0.00092318 7.26156925 0.99538867 0.99756961 0.49261117;
++	-6.26310699 -0.00150649 0.00092274 7.26160050 0.99539091 0.99757078 0.49261231;
++	-6.26313741 -0.00150576 0.00092230 7.26163165 0.99539314 0.99757194 0.49261347;
++	-6.26316772 -0.00150504 0.00092186 7.26166269 0.99539536 0.99757310 0.49261461;
++	-6.26319793 -0.00150431 0.00092142 7.26169361 0.99539759 0.99757426 0.49261575;
++	-6.26322802 -0.00150359 0.00092098 7.26172443 0.99539981 0.99757542 0.49261688;
++	-6.26325801 -0.00150287 0.00092055 7.26175513 0.99540204 0.99757658 0.49261801;
++	-6.26328788 -0.00150215 0.00092011 7.26178573 0.99540426 0.99757774 0.49261913;
++	-6.26331765 -0.00150143 0.00091967 7.26181623 0.99540647 0.99757890 0.49262025;
++	-6.26334732 -0.00150071 0.00091924 7.26184661 0.99540869 0.99758006 0.49262138;
++	-6.26337687 -0.00149999 0.00091880 7.26187688 0.99541090 0.99758121 0.49262250;
++	-6.26340633 -0.00149927 0.00091836 7.26190705 0.99541311 0.99758236 0.49262361;
++	-6.26343567 -0.00149855 0.00091793 7.26193712 0.99541532 0.99758352 0.49262472;
++	-6.26346491 -0.00149784 0.00091749 7.26196707 0.99541753 0.99758467 0.49262583;
++	-6.26349404 -0.00149712 0.00091706 7.26199692 0.99541974 0.99758582 0.49262693;
++	-6.26352307 -0.00149640 0.00091662 7.26202667 0.99542194 0.99758697 0.49262803;
++	-6.26355200 -0.00149569 0.00091619 7.26205631 0.99542414 0.99758812 0.49262913;
++	-6.26358082 -0.00149498 0.00091576 7.26208585 0.99542634 0.99758927 0.49263021;
++	-6.26360954 -0.00149426 0.00091532 7.26211528 0.99542854 0.99759042 0.49263131;
++	-6.26363815 -0.00149355 0.00091489 7.26214460 0.99543073 0.99759156 0.49263239;
++	-6.26366666 -0.00149284 0.00091446 7.26217383 0.99543292 0.99759271 0.49263348;
++	-6.26369507 -0.00149212 0.00091403 7.26220295 0.99543511 0.99759385 0.49263456;
++	-6.26372338 -0.00149141 0.00091359 7.26223197 0.99543730 0.99759499 0.49263563;
++	-6.26375159 -0.00149070 0.00091316 7.26226088 0.99543949 0.99759613 0.49263671;
++	-6.26377969 -0.00148999 0.00091273 7.26228970 0.99544167 0.99759728 0.49263778;
++	-6.26380769 -0.00148928 0.00091230 7.26231841 0.99544386 0.99759841 0.49263884;
++	-6.26383560 -0.00148857 0.00091187 7.26234702 0.99544604 0.99759955 0.49263991;
++	-6.26386340 -0.00148787 0.00091144 7.26237553 0.99544821 0.99760069 0.49264097;
++	-6.26389110 -0.00148716 0.00091101 7.26240394 0.99545039 0.99760183 0.49264203;
++	-6.26391870 -0.00148645 0.00091058 7.26243225 0.99545257 0.99760296 0.49264308;
++	-6.26394621 -0.00148575 0.00091016 7.26246046 0.99545474 0.99760410 0.49264413;
++	-6.26397361 -0.00148504 0.00090973 7.26248857 0.99545691 0.99760523 0.49264518;
++	-6.26400092 -0.00148434 0.00090930 7.26251658 0.99545908 0.99760636 0.49264622;
++	-6.26402813 -0.00148363 0.00090887 7.26254449 0.99546124 0.99760750 0.49264726;
++	-6.26405524 -0.00148293 0.00090844 7.26257231 0.99546341 0.99760863 0.49264830;
++	-6.26408225 -0.00148223 0.00090802 7.26260002 0.99546557 0.99760976 0.49264934;
++	-6.26410916 -0.00148152 0.00090759 7.26262764 0.99546773 0.99761088 0.49265036;
++	-6.26413598 -0.00148082 0.00090717 7.26265516 0.99546989 0.99761201 0.49265140;
++	-6.26416271 -0.00148012 0.00090674 7.26268258 0.99547204 0.99761314 0.49265242;
++	-6.26418933 -0.00147942 0.00090631 7.26270991 0.99547420 0.99761426 0.49265345;
++	-6.26421586 -0.00147872 0.00090589 7.26273714 0.99547635 0.99761539 0.49265447;
++	-6.26424230 -0.00147802 0.00090547 7.26276428 0.99547850 0.99761651 0.49265547;
++	-6.26426864 -0.00147733 0.00090504 7.26279132 0.99548065 0.99761763 0.49265649;
++	-6.26429489 -0.00147663 0.00090462 7.26281826 0.99548279 0.99761875 0.49265751;
++	-6.26432104 -0.00147593 0.00090419 7.26284511 0.99548494 0.99761987 0.49265851;
++	-6.26434710 -0.00147523 0.00090377 7.26287186 0.99548708 0.99762099 0.49265951;
++	-6.26437306 -0.00147454 0.00090335 7.26289852 0.99548922 0.99762211 0.49266051;
++	-6.26439893 -0.00147384 0.00090293 7.26292509 0.99549136 0.99762323 0.49266151;
++	-6.26442471 -0.00147315 0.00090250 7.26295156 0.99549349 0.99762435 0.49266249;
++	-6.26445040 -0.00147246 0.00090208 7.26297794 0.99549563 0.99762546 0.49266350;
++	-6.26447599 -0.00147176 0.00090166 7.26300423 0.99549776 0.99762658 0.49266448;
++	-6.26450150 -0.00147107 0.00090124 7.26303043 0.99549989 0.99762769 0.49266547;
++	-6.26452691 -0.00147038 0.00090082 7.26305653 0.99550202 0.99762880 0.49266646;
++	-6.26455222 -0.00146969 0.00090040 7.26308254 0.99550415 0.99762991 0.49266744;
++	-6.26457745 -0.00146900 0.00089998 7.26310846 0.99550627 0.99763102 0.49266841;
++	-6.26460259 -0.00146831 0.00089956 7.26313428 0.99550839 0.99763213 0.49266939;
++	-6.26462764 -0.00146762 0.00089914 7.26316002 0.99551051 0.99763324 0.49267035;
++	-6.26465259 -0.00146693 0.00089872 7.26318567 0.99551263 0.99763435 0.49267132;
++	-6.26467746 -0.00146624 0.00089831 7.26321122 0.99551475 0.99763545 0.49267230;
++	-6.26470224 -0.00146555 0.00089789 7.26323669 0.99551686 0.99763656 0.49267325;
++	-6.26472693 -0.00146486 0.00089747 7.26326207 0.99551898 0.99763766 0.49267421;
++	-6.26475153 -0.00146418 0.00089705 7.26328735 0.99552109 0.99763877 0.49267517;
++	-6.26477604 -0.00146349 0.00089664 7.26331255 0.99552319 0.99763987 0.49267611;
++	-6.26480047 -0.00146281 0.00089622 7.26333766 0.99552530 0.99764097 0.49267707;
++	-6.26482481 -0.00146212 0.00089580 7.26336268 0.99552741 0.99764207 0.49267802;
++	-6.26484906 -0.00146144 0.00089539 7.26338762 0.99552951 0.99764317 0.49267897;
++	-6.26487322 -0.00146076 0.00089497 7.26341246 0.99553161 0.99764427 0.49267991;
++	-6.26489730 -0.00146007 0.00089456 7.26343722 0.99553371 0.99764537 0.49268085;
++	-6.26492129 -0.00145939 0.00089414 7.26346189 0.99553581 0.99764646 0.49268179;
++	-6.26494519 -0.00145871 0.00089373 7.26348648 0.99553790 0.99764756 0.49268272;
++	-6.26496901 -0.00145803 0.00089332 7.26351098 0.99553999 0.99764865 0.49268365;
++	-6.26499274 -0.00145735 0.00089290 7.26353539 0.99554209 0.99764975 0.49268458;
++	-6.26501639 -0.00145667 0.00089249 7.26355972 0.99554417 0.99765084 0.49268549;
++	-6.26503995 -0.00145599 0.00089208 7.26358396 0.99554626 0.99765193 0.49268643;
++	-6.26506343 -0.00145531 0.00089166 7.26360811 0.99554835 0.99765302 0.49268735;
++	-6.26508682 -0.00145463 0.00089125 7.26363219 0.99555043 0.99765411 0.49268826;
++	-6.26511013 -0.00145396 0.00089084 7.26365617 0.99555251 0.99765520 0.49268918;
++	-6.26513336 -0.00145328 0.00089043 7.26368008 0.99555459 0.99765629 0.49269008;
++	-6.26515650 -0.00145261 0.00089002 7.26370389 0.99555667 0.99765738 0.49269099;
++	-6.26517956 -0.00145193 0.00088961 7.26372763 0.99555875 0.99765846 0.49269190;
++	-6.26520254 -0.00145126 0.00088920 7.26375128 0.99556082 0.99765955 0.49269281;
++	-6.26522543 -0.00145058 0.00088879 7.26377485 0.99556289 0.99766063 0.49269370;
++	-6.26524824 -0.00144991 0.00088838 7.26379834 0.99556496 0.99766171 0.49269460;
++	-6.26527098 -0.00144924 0.00088797 7.26382174 0.99556703 0.99766280 0.49269550;
++	-6.26529363 -0.00144856 0.00088756 7.26384506 0.99556910 0.99766388 0.49269640;
++	-6.26531619 -0.00144789 0.00088715 7.26386830 0.99557116 0.99766496 0.49269728;
++	-6.26533868 -0.00144722 0.00088674 7.26389146 0.99557323 0.99766604 0.49269817;
++	-6.26536109 -0.00144655 0.00088634 7.26391454 0.99557529 0.99766711 0.49269905;
++	-6.26538341 -0.00144588 0.00088593 7.26393753 0.99557735 0.99766819 0.49269994;
++	-6.26540566 -0.00144521 0.00088552 7.26396045 0.99557940 0.99766927 0.49270083;
++	-6.26542783 -0.00144454 0.00088511 7.26398329 0.99558146 0.99767034 0.49270168;
++	-6.26544992 -0.00144387 0.00088471 7.26400604 0.99558351 0.99767142 0.49270256;
++	-6.26547192 -0.00144321 0.00088430 7.26402872 0.99558556 0.99767249 0.49270344;
++	-6.26549385 -0.00144254 0.00088390 7.26405131 0.99558761 0.99767356 0.49270431;
++	-6.26551570 -0.00144187 0.00088349 7.26407383 0.99558966 0.99767463 0.49270518;
++	-6.26553748 -0.00144121 0.00088309 7.26409627 0.99559171 0.99767571 0.49270604;
++	-6.26555917 -0.00144054 0.00088268 7.26411863 0.99559375 0.99767678 0.49270690;
++	-6.26558079 -0.00143988 0.00088228 7.26414091 0.99559579 0.99767784 0.49270776;
++	-6.26560233 -0.00143922 0.00088187 7.26416311 0.99559783 0.99767891 0.49270862;
++	-6.26562379 -0.00143855 0.00088147 7.26418524 0.99559987 0.99767998 0.49270947;
++	-6.26564518 -0.00143789 0.00088107 7.26420729 0.99560191 0.99768104 0.49271032;
++	-6.26566648 -0.00143723 0.00088066 7.26422926 0.99560394 0.99768211 0.49271118;
++	-6.26568772 -0.00143657 0.00088026 7.26425115 0.99560598 0.99768317 0.49271202;
++	-6.26570887 -0.00143590 0.00087986 7.26427297 0.99560801 0.99768424 0.49271286;
++	-6.26572995 -0.00143524 0.00087946 7.26429471 0.99561004 0.99768530 0.49271371;
++	-6.26575096 -0.00143458 0.00087906 7.26431637 0.99561206 0.99768636 0.49271455;
++	-6.26577189 -0.00143393 0.00087865 7.26433796 0.99561409 0.99768742 0.49271537;
++	-6.26579274 -0.00143327 0.00087825 7.26435948 0.99561611 0.99768848 0.49271621;
++	-6.26581352 -0.00143261 0.00087785 7.26438092 0.99561813 0.99768954 0.49271704;
++	-6.26583423 -0.00143195 0.00087745 7.26440228 0.99562015 0.99769059 0.49271787;
++	-6.26585486 -0.00143130 0.00087705 7.26442357 0.99562217 0.99769165 0.49271871;
++	-6.26587542 -0.00143064 0.00087665 7.26444478 0.99562419 0.99769271 0.49271954;
++	-6.26589591 -0.00142998 0.00087626 7.26446592 0.99562620 0.99769376 0.49272035;
++	-6.26591632 -0.00142933 0.00087586 7.26448699 0.99562822 0.99769482 0.49272117;
++	-6.26593666 -0.00142867 0.00087546 7.26450798 0.99563023 0.99769587 0.49272198;
++	-6.26595692 -0.00142802 0.00087506 7.26452890 0.99563224 0.99769692 0.49272279;
++	-6.26597711 -0.00142737 0.00087466 7.26454975 0.99563424 0.99769797 0.49272362;
++	-6.26599724 -0.00142671 0.00087426 7.26457052 0.99563625 0.99769902 0.49272441;
++	-6.26601728 -0.00142606 0.00087387 7.26459122 0.99563825 0.99770007 0.49272522;
++	-6.26603726 -0.00142541 0.00087347 7.26461185 0.99564025 0.99770112 0.49272604;
++	-6.26605717 -0.00142476 0.00087307 7.26463241 0.99564225 0.99770217 0.49272683;
++	-6.26607700 -0.00142411 0.00087268 7.26465289 0.99564425 0.99770321 0.49272764;
++	-6.26609676 -0.00142346 0.00087228 7.26467331 0.99564625 0.99770426 0.49272843;
++	-6.26611646 -0.00142281 0.00087189 7.26469365 0.99564824 0.99770530 0.49272921;
++	-6.26613608 -0.00142216 0.00087149 7.26471392 0.99565024 0.99770635 0.49273003;
++	-6.26615563 -0.00142151 0.00087110 7.26473412 0.99565223 0.99770739 0.49273081;
++	-6.26617512 -0.00142087 0.00087070 7.26475425 0.99565422 0.99770843 0.49273160;
++	-6.26619453 -0.00142022 0.00087031 7.26477431 0.99565620 0.99770947 0.49273238;
++	-6.26621387 -0.00141957 0.00086992 7.26479430 0.99565819 0.99771051 0.49273317;
++	-6.26623315 -0.00141893 0.00086952 7.26481422 0.99566017 0.99771155 0.49273396;
++	-6.26625235 -0.00141828 0.00086913 7.26483407 0.99566216 0.99771259 0.49273473;
++	-6.26627149 -0.00141764 0.00086874 7.26485385 0.99566414 0.99771362 0.49273551;
++	-6.26629056 -0.00141699 0.00086835 7.26487356 0.99566612 0.99771466 0.49273628;
++	-6.26630956 -0.00141635 0.00086795 7.26489321 0.99566809 0.99771570 0.49273706;
++	-6.26632849 -0.00141571 0.00086756 7.26491278 0.99567007 0.99771673 0.49273783;
++	-6.26634735 -0.00141506 0.00086717 7.26493229 0.99567204 0.99771776 0.49273859;
++	-6.26636615 -0.00141442 0.00086678 7.26495173 0.99567401 0.99771880 0.49273935;
++	-6.26638488 -0.00141378 0.00086639 7.26497110 0.99567598 0.99771983 0.49274013;
++	-6.26640355 -0.00141314 0.00086600 7.26499041 0.99567795 0.99772086 0.49274089;
++	-6.26642214 -0.00141250 0.00086561 7.26500964 0.99567992 0.99772189 0.49274164;
++	-6.26644067 -0.00141186 0.00086522 7.26502881 0.99568188 0.99772292 0.49274241;
++	-6.26645914 -0.00141122 0.00086483 7.26504792 0.99568384 0.99772395 0.49274316;
++	-6.26647754 -0.00141058 0.00086444 7.26506695 0.99568580 0.99772497 0.49274392;
++	-6.26649587 -0.00140995 0.00086405 7.26508592 0.99568776 0.99772600 0.49274466;
++	-6.26651414 -0.00140931 0.00086366 7.26510483 0.99568972 0.99772703 0.49274542;
++	-6.26653234 -0.00140867 0.00086328 7.26512367 0.99569168 0.99772805 0.49274618;
++	-6.26655048 -0.00140804 0.00086289 7.26514244 0.99569363 0.99772908 0.49274690;
++	-6.26656855 -0.00140740 0.00086250 7.26516115 0.99569558 0.99773010 0.49274765;
++	-6.26658656 -0.00140677 0.00086211 7.26517979 0.99569753 0.99773112 0.49274839;
++	-6.26660450 -0.00140613 0.00086173 7.26519837 0.99569948 0.99773214 0.49274912;
++	-6.26662238 -0.00140550 0.00086134 7.26521688 0.99570143 0.99773316 0.49274986;
++	-6.26664020 -0.00140486 0.00086096 7.26523533 0.99570337 0.99773418 0.49275059;
++	-6.26665795 -0.00140423 0.00086057 7.26525372 0.99570532 0.99773520 0.49275132;
++	-6.26667564 -0.00140360 0.00086018 7.26527204 0.99570726 0.99773622 0.49275206;
++	-6.26669326 -0.00140297 0.00085980 7.26529030 0.99570920 0.99773723 0.49275276;
++	-6.26671083 -0.00140234 0.00085942 7.26530849 0.99571114 0.99773825 0.49275350;
++	-6.26672833 -0.00140171 0.00085903 7.26532662 0.99571307 0.99773926 0.49275423;
++	-6.26674577 -0.00140108 0.00085865 7.26534469 0.99571501 0.99774028 0.49275495;
++	-6.26676314 -0.00140045 0.00085826 7.26536270 0.99571694 0.99774129 0.49275567;
++	-6.26678046 -0.00139982 0.00085788 7.26538064 0.99571887 0.99774230 0.49275639;
++	-6.26679771 -0.00139919 0.00085750 7.26539852 0.99572080 0.99774331 0.49275711;
++	-6.26681490 -0.00139856 0.00085711 7.26541634 0.99572273 0.99774433 0.49275782;
++	-6.26683203 -0.00139793 0.00085673 7.26543410 0.99572466 0.99774533 0.49275852;
++	-6.26684910 -0.00139731 0.00085635 7.26545179 0.99572658 0.99774634 0.49275924;
++	-6.26686611 -0.00139668 0.00085597 7.26546943 0.99572851 0.99774735 0.49275995;
++	-6.26688306 -0.00139605 0.00085559 7.26548700 0.99573043 0.99774836 0.49276065;
++	-6.26689994 -0.00139543 0.00085521 7.26550451 0.99573235 0.99774936 0.49276134;
++	-6.26691677 -0.00139481 0.00085482 7.26552196 0.99573426 0.99775037 0.49276204;
++	-6.26693354 -0.00139418 0.00085444 7.26553936 0.99573618 0.99775137 0.49276274;
++	-6.26695024 -0.00139356 0.00085406 7.26555669 0.99573809 0.99775238 0.49276344;
++	-6.26696689 -0.00139293 0.00085368 7.26557396 0.99574001 0.99775338 0.49276413;
++	-6.26698348 -0.00139231 0.00085331 7.26559117 0.99574192 0.99775438 0.49276484;
++	-6.26700001 -0.00139169 0.00085293 7.26560832 0.99574383 0.99775538 0.49276553;
++	-6.26701648 -0.00139107 0.00085255 7.26562541 0.99574574 0.99775638 0.49276621;
++	-6.26703289 -0.00139045 0.00085217 7.26564245 0.99574764 0.99775738 0.49276691;
++	-6.26704925 -0.00138983 0.00085179 7.26565942 0.99574955 0.99775838 0.49276759;
++	-6.26706554 -0.00138921 0.00085141 7.26567633 0.99575145 0.99775938 0.49276826;
++	-6.26708178 -0.00138859 0.00085104 7.26569319 0.99575335 0.99776038 0.49276895;
++	-6.26709796 -0.00138797 0.00085066 7.26570999 0.99575525 0.99776137 0.49276963;
++	-6.26711408 -0.00138735 0.00085028 7.26572673 0.99575715 0.99776237 0.49277030;
++	-6.26713015 -0.00138674 0.00084990 7.26574341 0.99575904 0.99776336 0.49277097;
++	-6.26714616 -0.00138612 0.00084953 7.26576004 0.99576094 0.99776435 0.49277165;
++	-6.26716211 -0.00138550 0.00084915 7.26577661 0.99576283 0.99776535 0.49277232;
++	-6.26717800 -0.00138489 0.00084878 7.26579312 0.99576472 0.99776634 0.49277298;
++	-6.26719384 -0.00138427 0.00084840 7.26580957 0.99576661 0.99776733 0.49277366;
++	-6.26720962 -0.00138366 0.00084803 7.26582597 0.99576850 0.99776832 0.49277432;
++	-6.26722535 -0.00138304 0.00084765 7.26584231 0.99577038 0.99776931 0.49277499;
++	-6.26724102 -0.00138243 0.00084728 7.26585859 0.99577227 0.99777029 0.49277565;
++	-6.26725663 -0.00138181 0.00084690 7.26587482 0.99577415 0.99777128 0.49277630;
++	-6.26727219 -0.00138120 0.00084653 7.26589099 0.99577603 0.99777227 0.49277698;
++	-6.26728769 -0.00138059 0.00084616 7.26590710 0.99577791 0.99777325 0.49277763;
++	-6.26730314 -0.00137998 0.00084578 7.26592316 0.99577979 0.99777424 0.49277828;
++	-6.26731854 -0.00137937 0.00084541 7.26593917 0.99578166 0.99777522 0.49277893;
++	-6.26733388 -0.00137876 0.00084504 7.26595512 0.99578354 0.99777621 0.49277959;
++	-6.26734916 -0.00137815 0.00084467 7.26597101 0.99578541 0.99777719 0.49278024;
++	-6.26736439 -0.00137754 0.00084429 7.26598685 0.99578728 0.99777817 0.49278088;
++	-6.26737957 -0.00137693 0.00084392 7.26600264 0.99578915 0.99777915 0.49278153;
++	-6.26739469 -0.00137632 0.00084355 7.26601837 0.99579102 0.99778013 0.49278219;
++	-6.26740976 -0.00137571 0.00084318 7.26603405 0.99579289 0.99778111 0.49278281;
++	-6.26742477 -0.00137510 0.00084281 7.26604967 0.99579475 0.99778209 0.49278347;
++	-6.26743974 -0.00137450 0.00084244 7.26606524 0.99579661 0.99778306 0.49278410;
++	-6.26745464 -0.00137389 0.00084207 7.26608075 0.99579847 0.99778404 0.49278472;
++	-6.26746950 -0.00137328 0.00084170 7.26609622 0.99580033 0.99778502 0.49278536;
++	-6.26748430 -0.00137268 0.00084133 7.26611162 0.99580219 0.99778599 0.49278600;
++	-6.26749906 -0.00137207 0.00084096 7.26612698 0.99580405 0.99778696 0.49278663;
++	-6.26751375 -0.00137147 0.00084059 7.26614228 0.99580590 0.99778794 0.49278724;
++	-6.26752840 -0.00137087 0.00084022 7.26615753 0.99580776 0.99778891 0.49278789;
++	-6.26754300 -0.00137026 0.00083986 7.26617273 0.99580961 0.99778988 0.49278852;
++	-6.26755754 -0.00136966 0.00083949 7.26618788 0.99581146 0.99779085 0.49278914;
++	-6.26757203 -0.00136906 0.00083912 7.26620297 0.99581331 0.99779182 0.49278975;
++	-6.26758647 -0.00136846 0.00083875 7.26621801 0.99581515 0.99779279 0.49279037;
++	-6.26760086 -0.00136786 0.00083839 7.26623300 0.99581700 0.99779376 0.49279099;
++	-6.26761520 -0.00136725 0.00083802 7.26624794 0.99581884 0.99779472 0.49279161;
++	-6.26762949 -0.00136665 0.00083765 7.26626283 0.99582068 0.99779569 0.49279223;
++	-6.26764372 -0.00136605 0.00083729 7.26627767 0.99582252 0.99779666 0.49279284;
++	-6.26765791 -0.00136546 0.00083692 7.26629245 0.99582436 0.99779762 0.49279345;
++	-6.26767205 -0.00136486 0.00083656 7.26630719 0.99582620 0.99779859 0.49279407;
++	-6.26768613 -0.00136426 0.00083619 7.26632187 0.99582804 0.99779955 0.49279468;
++	-6.26770017 -0.00136366 0.00083583 7.26633651 0.99582987 0.99780051 0.49279528;
++	-6.26771416 -0.00136306 0.00083546 7.26635109 0.99583170 0.99780147 0.49279588;
++	-6.26772809 -0.00136247 0.00083510 7.26636562 0.99583353 0.99780243 0.49279649;
++	-6.26774198 -0.00136187 0.00083474 7.26638011 0.99583536 0.99780339 0.49279710;
++	-6.26775582 -0.00136128 0.00083437 7.26639454 0.99583719 0.99780435 0.49279770;
++	-6.26776961 -0.00136068 0.00083401 7.26640893 0.99583902 0.99780531 0.49279829;
++	-6.26778335 -0.00136009 0.00083365 7.26642326 0.99584084 0.99780627 0.49279888;
++	-6.26779704 -0.00135949 0.00083328 7.26643755 0.99584266 0.99780722 0.49279946;
++	-6.26781069 -0.00135890 0.00083292 7.26645179 0.99584449 0.99780818 0.49280008;
++	-6.26782428 -0.00135831 0.00083256 7.26646598 0.99584631 0.99780913 0.49280067;
++	-6.26783783 -0.00135771 0.00083220 7.26648012 0.99584812 0.99781009 0.49280125;
++	-6.26785133 -0.00135712 0.00083184 7.26649421 0.99584994 0.99781104 0.49280185;
++	-6.26786479 -0.00135653 0.00083148 7.26650826 0.99585175 0.99781199 0.49280244;
++	-6.26787819 -0.00135594 0.00083111 7.26652225 0.99585357 0.99781295 0.49280301;
++	-6.26789155 -0.00135535 0.00083075 7.26653620 0.99585538 0.99781390 0.49280360;
++	-6.26790486 -0.00135476 0.00083039 7.26655010 0.99585719 0.99781485 0.49280419;
++	-6.26791812 -0.00135417 0.00083003 7.26656395 0.99585900 0.99781580 0.49280476;
++	-6.26793134 -0.00135358 0.00082967 7.26657776 0.99586081 0.99781675 0.49280534;
++	-6.26794451 -0.00135299 0.00082931 7.26659152 0.99586261 0.99781769 0.49280594;
++	-6.26795764 -0.00135240 0.00082896 7.26660523 0.99586442 0.99781864 0.49280650;
++	-6.26797071 -0.00135182 0.00082860 7.26661890 0.99586622 0.99781959 0.49280708;
++	-6.26798374 -0.00135123 0.00082824 7.26663252 0.99586802 0.99782053 0.49280764;
++	-6.26799673 -0.00135064 0.00082788 7.26664609 0.99586982 0.99782148 0.49280822;
++	-6.26800967 -0.00135006 0.00082752 7.26665961 0.99587162 0.99782242 0.49280878;
++	-6.26802256 -0.00134947 0.00082717 7.26667309 0.99587341 0.99782336 0.49280935;
++	-6.26803541 -0.00134889 0.00082681 7.26668653 0.99587521 0.99782431 0.49280992;
++	-6.26804822 -0.00134830 0.00082645 7.26669991 0.99587700 0.99782525 0.49281048;
++	-6.26806098 -0.00134772 0.00082609 7.26671326 0.99587879 0.99782619 0.49281107;
++	-6.26807369 -0.00134713 0.00082574 7.26672655 0.99588058 0.99782713 0.49281162;
++	-6.26808636 -0.00134655 0.00082538 7.26673981 0.99588237 0.99782807 0.49281218;
++	-6.26809898 -0.00134597 0.00082503 7.26675301 0.99588416 0.99782900 0.49281274;
++	-6.26811156 -0.00134539 0.00082467 7.26676617 0.99588595 0.99782994 0.49281329;
++	-6.26812410 -0.00134481 0.00082432 7.26677929 0.99588773 0.99783088 0.49281384;
++	-6.26813659 -0.00134422 0.00082396 7.26679236 0.99588951 0.99783181 0.49281439;
++	-6.26814904 -0.00134364 0.00082361 7.26680539 0.99589129 0.99783275 0.49281496;
++	-6.26816144 -0.00134306 0.00082325 7.26681838 0.99589307 0.99783368 0.49281552;
++	-6.26817380 -0.00134248 0.00082290 7.26683132 0.99589485 0.99783462 0.49281605;
++	-6.26818612 -0.00134191 0.00082255 7.26684421 0.99589663 0.99783555 0.49281661;
++	-6.26819839 -0.00134133 0.00082219 7.26685706 0.99589840 0.99783648 0.49281716;
++	-6.26821062 -0.00134075 0.00082184 7.26686987 0.99590018 0.99783741 0.49281769;
++	-6.26822281 -0.00134017 0.00082149 7.26688264 0.99590195 0.99783834 0.49281824;
++	-6.26823495 -0.00133959 0.00082113 7.26689536 0.99590372 0.99783927 0.49281878;
++	-6.26824705 -0.00133902 0.00082078 7.26690804 0.99590549 0.99784020 0.49281933;
++	-6.26825911 -0.00133844 0.00082043 7.26692067 0.99590725 0.99784113 0.49281987;
++	-6.26827113 -0.00133787 0.00082008 7.26693326 0.99590902 0.99784206 0.49282040;
++	-6.26828310 -0.00133729 0.00081973 7.26694581 0.99591078 0.99784298 0.49282094;
++	-6.26829504 -0.00133672 0.00081938 7.26695832 0.99591255 0.99784391 0.49282147;
++	-6.26830693 -0.00133614 0.00081902 7.26697079 0.99591431 0.99784483 0.49282201;
++	-6.26831878 -0.00133557 0.00081867 7.26698321 0.99591607 0.99784576 0.49282254;
++	-6.26833058 -0.00133499 0.00081832 7.26699559 0.99591783 0.99784668 0.49282308;
++	-6.26834235 -0.00133442 0.00081797 7.26700793 0.99591958 0.99784760 0.49282360;
++	-6.26835407 -0.00133385 0.00081762 7.26702023 0.99592134 0.99784853 0.49282414;
++	-6.26836576 -0.00133328 0.00081728 7.26703248 0.99592309 0.99784945 0.49282465;
++	-6.26837740 -0.00133271 0.00081693 7.26704469 0.99592485 0.99785037 0.49282520;
++	-6.26838900 -0.00133214 0.00081658 7.26705687 0.99592660 0.99785129 0.49282572;
++	-6.26840056 -0.00133157 0.00081623 7.26706900 0.99592835 0.99785221 0.49282624;
++	-6.26841209 -0.00133100 0.00081588 7.26708109 0.99593009 0.99785312 0.49282676;
++	-6.26842357 -0.00133043 0.00081553 7.26709314 0.99593184 0.99785404 0.49282728;
++	-6.26843501 -0.00132986 0.00081519 7.26710515 0.99593359 0.99785496 0.49282780;
++	-6.26844641 -0.00132929 0.00081484 7.26711712 0.99593533 0.99785587 0.49282829;
++	-6.26845777 -0.00132872 0.00081449 7.26712905 0.99593707 0.99785679 0.49282883;
++	-6.26846909 -0.00132815 0.00081414 7.26714093 0.99593881 0.99785770 0.49282934;
++	-6.26848037 -0.00132759 0.00081380 7.26715278 0.99594055 0.99785862 0.49282986;
++	-6.26849161 -0.00132702 0.00081345 7.26716459 0.99594229 0.99785953 0.49283037;
++	-6.26850281 -0.00132645 0.00081311 7.26717636 0.99594402 0.99786044 0.49283087;
++	-6.26851397 -0.00132589 0.00081276 7.26718809 0.99594576 0.99786135 0.49283138;
++	-6.26852510 -0.00132532 0.00081242 7.26719977 0.99594749 0.99786226 0.49283189;
++	-6.26853618 -0.00132476 0.00081207 7.26721142 0.99594922 0.99786317 0.49283239;
++	-6.26854723 -0.00132419 0.00081173 7.26722303 0.99595095 0.99786408 0.49283291;
++	-6.26855824 -0.00132363 0.00081138 7.26723461 0.99595268 0.99786499 0.49283341;
++	-6.26856921 -0.00132307 0.00081104 7.26724614 0.99595441 0.99786590 0.49283391;
++	-6.26858014 -0.00132251 0.00081069 7.26725763 0.99595614 0.99786680 0.49283441;
++	-6.26859103 -0.00132194 0.00081035 7.26726909 0.99595786 0.99786771 0.49283490;
++	-6.26860188 -0.00132138 0.00081001 7.26728050 0.99595958 0.99786861 0.49283543;
++	-6.26861270 -0.00132082 0.00080966 7.26729188 0.99596131 0.99786952 0.49283590;
++	-6.26862348 -0.00132026 0.00080932 7.26730322 0.99596303 0.99787042 0.49283641;
++	-6.26863422 -0.00131970 0.00080898 7.26731452 0.99596474 0.99787132 0.49283690;
++	-6.26864493 -0.00131914 0.00080864 7.26732579 0.99596646 0.99787223 0.49283740;
++	-6.26865559 -0.00131858 0.00080829 7.26733701 0.99596818 0.99787313 0.49283789;
++	-6.26866622 -0.00131802 0.00080795 7.26734820 0.99596989 0.99787403 0.49283838;
++	-6.26867681 -0.00131746 0.00080761 7.26735935 0.99597160 0.99787493 0.49283886;
++	-6.26868737 -0.00131690 0.00080727 7.26737047 0.99597332 0.99787583 0.49283935;
++	-6.26869789 -0.00131635 0.00080693 7.26738154 0.99597503 0.99787673 0.49283983;
++	-6.26870837 -0.00131579 0.00080659 7.26739258 0.99597673 0.99787762 0.49284032;
++	-6.26871882 -0.00131523 0.00080625 7.26740358 0.99597844 0.99787852 0.49284083;
++	-6.26872923 -0.00131468 0.00080591 7.26741455 0.99598015 0.99787942 0.49284129;
++	-6.26873960 -0.00131412 0.00080557 7.26742548 0.99598185 0.99788031 0.49284178;
++	-6.26874993 -0.00131357 0.00080523 7.26743637 0.99598355 0.99788121 0.49284226;
++	-6.26876024 -0.00131301 0.00080489 7.26744723 0.99598526 0.99788210 0.49284273;
++	-6.26877050 -0.00131246 0.00080455 7.26745804 0.99598696 0.99788299 0.49284320;
++	-6.26878073 -0.00131190 0.00080421 7.26746883 0.99598865 0.99788389 0.49284369;
++	-6.26879092 -0.00131135 0.00080387 7.26747958 0.99599035 0.99788478 0.49284417;
++	-6.26880108 -0.00131080 0.00080354 7.26749029 0.99599205 0.99788567 0.49284465;
++	-6.26881120 -0.00131024 0.00080320 7.26750096 0.99599374 0.99788656 0.49284510;
++	-6.26882129 -0.00130969 0.00080286 7.26751160 0.99599543 0.99788745 0.49284559;
++	-6.26883135 -0.00130914 0.00080252 7.26752221 0.99599713 0.99788834 0.49284606;
++	-6.26884136 -0.00130859 0.00080219 7.26753278 0.99599882 0.99788923 0.49284653;
++	-6.26885135 -0.00130804 0.00080185 7.26754331 0.99600050 0.99789011 0.49284699;
++	-6.26886129 -0.00130749 0.00080151 7.26755381 0.99600219 0.99789100 0.49284746;
++	-6.26887121 -0.00130694 0.00080118 7.26756427 0.99600388 0.99789189 0.49284793;
++	-6.26888109 -0.00130639 0.00080084 7.26757470 0.99600556 0.99789277 0.49284838;
++	-6.26889093 -0.00130584 0.00080051 7.26758509 0.99600724 0.99789365 0.49284885;
++	-6.26890074 -0.00130529 0.00080017 7.26759545 0.99600893 0.99789454 0.49284932;
++	-6.26891052 -0.00130474 0.00079984 7.26760578 0.99601061 0.99789542 0.49284977;
++	-6.26892026 -0.00130420 0.00079950 7.26761607 0.99601228 0.99789630 0.49285024;
++	-6.26892997 -0.00130365 0.00079917 7.26762633 0.99601396 0.99789719 0.49285069;
++	-6.26893965 -0.00130310 0.00079883 7.26763655 0.99601564 0.99789807 0.49285114;
++	-6.26894929 -0.00130256 0.00079850 7.26764674 0.99601731 0.99789895 0.49285162;
++	-6.26895890 -0.00130201 0.00079816 7.26765689 0.99601899 0.99789983 0.49285206;
++	-6.26896848 -0.00130146 0.00079783 7.26766701 0.99602066 0.99790070 0.49285251;
++	-6.26897802 -0.00130092 0.00079750 7.26767710 0.99602233 0.99790158 0.49285297;
++	-6.26898753 -0.00130038 0.00079717 7.26768715 0.99602400 0.99790246 0.49285344;
++	-6.26899700 -0.00129983 0.00079683 7.26769717 0.99602566 0.99790334 0.49285388;
++	-6.26900645 -0.00129929 0.00079650 7.26770716 0.99602733 0.99790421 0.49285432;
++	-6.26901586 -0.00129875 0.00079617 7.26771711 0.99602900 0.99790509 0.49285477;
++	-6.26902524 -0.00129820 0.00079584 7.26772703 0.99603066 0.99790596 0.49285523;
++	-6.26903458 -0.00129766 0.00079550 7.26773692 0.99603232 0.99790683 0.49285566;
++	-6.26904390 -0.00129712 0.00079517 7.26774678 0.99603398 0.99790771 0.49285611;
++	-6.26905318 -0.00129658 0.00079484 7.26775660 0.99603564 0.99790858 0.49285655;
++	-6.26906243 -0.00129604 0.00079451 7.26776639 0.99603730 0.99790945 0.49285701;
++	-6.26907164 -0.00129550 0.00079418 7.26777615 0.99603896 0.99791032 0.49285743;
++	-6.26908083 -0.00129496 0.00079385 7.26778587 0.99604061 0.99791119 0.49285787;
++	-6.26908998 -0.00129442 0.00079352 7.26779557 0.99604227 0.99791206 0.49285833;
++	-6.26909911 -0.00129388 0.00079319 7.26780523 0.99604392 0.99791293 0.49285876;
++	-6.26910820 -0.00129334 0.00079286 7.26781486 0.99604557 0.99791380 0.49285921;
++	-6.26911726 -0.00129280 0.00079253 7.26782446 0.99604722 0.99791467 0.49285963;
++	-6.26912629 -0.00129226 0.00079220 7.26783402 0.99604887 0.99791553 0.49286007;
++	-6.26913528 -0.00129173 0.00079188 7.26784356 0.99605051 0.99791640 0.49286049;
++	-6.26914425 -0.00129119 0.00079155 7.26785306 0.99605216 0.99791726 0.49286093;
++	-6.26915318 -0.00129065 0.00079122 7.26786253 0.99605380 0.99791813 0.49286138;
++	-6.26916209 -0.00129012 0.00079089 7.26787197 0.99605545 0.99791899 0.49286178;
++	-6.26917096 -0.00128958 0.00079056 7.26788138 0.99605709 0.99791985 0.49286223;
++	-6.26917981 -0.00128905 0.00079024 7.26789076 0.99605873 0.99792072 0.49286266;
++	-6.26918862 -0.00128851 0.00078991 7.26790011 0.99606037 0.99792158 0.49286308;
++	-6.26919740 -0.00128798 0.00078958 7.26790942 0.99606201 0.99792244 0.49286350;
++	-6.26920615 -0.00128744 0.00078926 7.26791871 0.99606364 0.99792330 0.49286392;
++	-6.26921488 -0.00128691 0.00078893 7.26792797 0.99606528 0.99792416 0.49286436;
++	-6.26922357 -0.00128638 0.00078860 7.26793719 0.99606691 0.99792502 0.49286478;
++	-6.26923223 -0.00128585 0.00078828 7.26794639 0.99606854 0.99792588 0.49286521;
++	-6.26924086 -0.00128531 0.00078795 7.26795555 0.99607017 0.99792673 0.49286564;
++	-6.26924947 -0.00128478 0.00078763 7.26796468 0.99607180 0.99792759 0.49286605;
++	-6.26925804 -0.00128425 0.00078730 7.26797379 0.99607343 0.99792845 0.49286646;
++	-6.26926658 -0.00128372 0.00078698 7.26798286 0.99607506 0.99792930 0.49286689;
++	-6.26927510 -0.00128319 0.00078665 7.26799191 0.99607668 0.99793016 0.49286730;
++	-6.26928358 -0.00128266 0.00078633 7.26800092 0.99607831 0.99793101 0.49286770;
++	-6.26929204 -0.00128213 0.00078601 7.26800991 0.99607993 0.99793186 0.49286812;
++	-6.26930047 -0.00128160 0.00078568 7.26801887 0.99608155 0.99793272 0.49286854;
++	-6.26930887 -0.00128107 0.00078536 7.26802779 0.99608317 0.99793357 0.49286895;
++	-6.26931724 -0.00128054 0.00078504 7.26803669 0.99608479 0.99793442 0.49286937;
++	-6.26932558 -0.00128002 0.00078471 7.26804556 0.99608641 0.99793527 0.49286977;
++	-6.26933389 -0.00127949 0.00078439 7.26805440 0.99608802 0.99793612 0.49287019;
++	-6.26934217 -0.00127896 0.00078407 7.26806321 0.99608964 0.99793697 0.49287058;
++	-6.26935043 -0.00127844 0.00078375 7.26807199 0.99609125 0.99793782 0.49287100;
++	-6.26935866 -0.00127791 0.00078342 7.26808075 0.99609287 0.99793867 0.49287142;
++	-6.26936686 -0.00127738 0.00078310 7.26808947 0.99609448 0.99793951 0.49287182;
++	-6.26937503 -0.00127686 0.00078278 7.26809817 0.99609609 0.99794036 0.49287224;
++	-6.26938317 -0.00127634 0.00078246 7.26810683 0.99609769 0.99794120 0.49287263;
++	-6.26939129 -0.00127581 0.00078214 7.26811547 0.99609930 0.99794205 0.49287302;
++	-6.26939937 -0.00127529 0.00078182 7.26812409 0.99610091 0.99794289 0.49287345;
++	-6.26940743 -0.00127476 0.00078150 7.26813267 0.99610251 0.99794374 0.49287384;
++	-6.26941547 -0.00127424 0.00078118 7.26814123 0.99610411 0.99794458 0.49287423;
++	-6.26942347 -0.00127372 0.00078086 7.26814975 0.99610572 0.99794542 0.49287464;
++	-6.26943145 -0.00127320 0.00078054 7.26815825 0.99610732 0.99794626 0.49287504;
++	-6.26943940 -0.00127267 0.00078022 7.26816673 0.99610892 0.99794711 0.49287543;
++	-6.26944732 -0.00127215 0.00077990 7.26817517 0.99611051 0.99794795 0.49287581;
++	-6.26945522 -0.00127163 0.00077958 7.26818359 0.99611211 0.99794879 0.49287621;
++	-6.26946309 -0.00127111 0.00077926 7.26819198 0.99611370 0.99794962 0.49287661;
++	-6.26947093 -0.00127059 0.00077895 7.26820034 0.99611530 0.99795046 0.49287701;
++	-6.26947875 -0.00127007 0.00077863 7.26820868 0.99611689 0.99795130 0.49287739;
++	-6.26948654 -0.00126955 0.00077831 7.26821698 0.99611848 0.99795214 0.49287779;
++	-6.26949430 -0.00126903 0.00077799 7.26822527 0.99612007 0.99795297 0.49287817;
++	-6.26950204 -0.00126852 0.00077768 7.26823352 0.99612166 0.99795381 0.49287857;
++	-6.26950975 -0.00126800 0.00077736 7.26824175 0.99612325 0.99795464 0.49287896;
++	-6.26951743 -0.00126748 0.00077704 7.26824995 0.99612484 0.99795548 0.49287934;
++	-6.26952509 -0.00126696 0.00077673 7.26825813 0.99612642 0.99795631 0.49287973;
++	-6.26953272 -0.00126645 0.00077641 7.26826627 0.99612800 0.99795714 0.49288012;
++	-6.26954033 -0.00126593 0.00077609 7.26827440 0.99612959 0.99795798 0.49288050;
++	-6.26954791 -0.00126541 0.00077578 7.26828249 0.99613117 0.99795881 0.49288087;
++	-6.26955546 -0.00126490 0.00077546 7.26829056 0.99613275 0.99795964 0.49288126;
++	-6.26956299 -0.00126438 0.00077515 7.26829860 0.99613433 0.99796047 0.49288164;
++	-6.26957049 -0.00126387 0.00077483 7.26830662 0.99613590 0.99796130 0.49288203;
++	-6.26957797 -0.00126335 0.00077452 7.26831461 0.99613748 0.99796213 0.49288240;
++	-6.26958542 -0.00126284 0.00077420 7.26832258 0.99613905 0.99796296 0.49288278;
++	-6.26959285 -0.00126233 0.00077389 7.26833052 0.99614063 0.99796378 0.49288317;
++	-6.26960025 -0.00126181 0.00077357 7.26833844 0.99614220 0.99796461 0.49288354;
++	-6.26960763 -0.00126130 0.00077326 7.26834632 0.99614377 0.99796544 0.49288392;
++	-6.26961498 -0.00126079 0.00077295 7.26835419 0.99614534 0.99796626 0.49288432;
++	-6.26962230 -0.00126028 0.00077263 7.26836203 0.99614691 0.99796709 0.49288467;
++	-6.26962961 -0.00125977 0.00077232 7.26836984 0.99614847 0.99796791 0.49288504;
++	-6.26963688 -0.00125926 0.00077201 7.26837763 0.99615004 0.99796874 0.49288540;
++	-6.26964414 -0.00125874 0.00077170 7.26838539 0.99615160 0.99796956 0.49288580;
++	-6.26965137 -0.00125823 0.00077138 7.26839313 0.99615317 0.99797038 0.49288618;
++	-6.26965857 -0.00125772 0.00077107 7.26840084 0.99615473 0.99797120 0.49288651;
++	-6.26966575 -0.00125722 0.00077076 7.26840853 0.99615629 0.99797202 0.49288691;
++	-6.26967290 -0.00125671 0.00077045 7.26841620 0.99615785 0.99797284 0.49288729;
++	-6.26968003 -0.00125620 0.00077014 7.26842384 0.99615941 0.99797366 0.49288765;
++	-6.26968714 -0.00125569 0.00076983 7.26843145 0.99616097 0.99797448 0.49288801;
++	-6.26969422 -0.00125518 0.00076952 7.26843904 0.99616252 0.99797530 0.49288835;
++	-6.26970128 -0.00125468 0.00076920 7.26844661 0.99616408 0.99797612 0.49288872;
++	-6.26970832 -0.00125417 0.00076889 7.26845415 0.99616563 0.99797694 0.49288910;
++	-6.26971533 -0.00125366 0.00076858 7.26846167 0.99616718 0.99797775 0.49288946;
++	-6.26972232 -0.00125316 0.00076827 7.26846916 0.99616873 0.99797857 0.49288983;
++	-6.26972928 -0.00125265 0.00076797 7.26847663 0.99617028 0.99797938 0.49289019;
++	-6.26973622 -0.00125214 0.00076766 7.26848408 0.99617183 0.99798020 0.49289056;
++	-6.26974314 -0.00125164 0.00076735 7.26849150 0.99617338 0.99798101 0.49289092;
++	-6.26975003 -0.00125114 0.00076704 7.26849890 0.99617492 0.99798183 0.49289126;
++	-6.26975691 -0.00125063 0.00076673 7.26850627 0.99617647 0.99798264 0.49289162;
++	-6.26976375 -0.00125013 0.00076642 7.26851363 0.99617801 0.99798345 0.49289199;
++	-6.26977058 -0.00124962 0.00076611 7.26852095 0.99617955 0.99798426 0.49289234;
++	-6.26977738 -0.00124912 0.00076581 7.26852826 0.99618109 0.99798507 0.49289269;
++	-6.26978416 -0.00124862 0.00076550 7.26853554 0.99618263 0.99798588 0.49289304;
++	-6.26979092 -0.00124812 0.00076519 7.26854280 0.99618417 0.99798669 0.49289341;
++	-6.26979765 -0.00124762 0.00076488 7.26855003 0.99618571 0.99798750 0.49289376;
++	-6.26980436 -0.00124711 0.00076458 7.26855725 0.99618724 0.99798831 0.49289409;
++	-6.26981105 -0.00124661 0.00076427 7.26856444 0.99618878 0.99798912 0.49289444;
++	-6.26981772 -0.00124611 0.00076396 7.26857160 0.99619031 0.99798992 0.49289482;
++	-6.26982436 -0.00124561 0.00076366 7.26857875 0.99619184 0.99799073 0.49289516;
++	-6.26983098 -0.00124511 0.00076335 7.26858587 0.99619337 0.99799154 0.49289554;
++	-6.26983758 -0.00124461 0.00076305 7.26859297 0.99619490 0.99799234 0.49289586;
++	-6.26984416 -0.00124412 0.00076274 7.26860004 0.99619643 0.99799314 0.49289620;
++	-6.26985071 -0.00124362 0.00076244 7.26860710 0.99619796 0.99799395 0.49289657;
++	-6.26985725 -0.00124312 0.00076213 7.26861413 0.99619949 0.99799475 0.49289690;
++	-6.26986376 -0.00124262 0.00076183 7.26862114 0.99620101 0.99799555 0.49289724;
++	-6.26987025 -0.00124212 0.00076152 7.26862812 0.99620253 0.99799636 0.49289757;
++	-6.26987672 -0.00124163 0.00076122 7.26863509 0.99620406 0.99799716 0.49289792;
++	-6.26988316 -0.00124113 0.00076091 7.26864203 0.99620558 0.99799796 0.49289828;
++	-6.26988959 -0.00124063 0.00076061 7.26864895 0.99620710 0.99799876 0.49289862;
++	-6.26989599 -0.00124014 0.00076031 7.26865585 0.99620862 0.99799956 0.49289895;
++	-6.26990237 -0.00123964 0.00076000 7.26866273 0.99621013 0.99800035 0.49289931;
++	-6.26990873 -0.00123915 0.00075970 7.26866958 0.99621165 0.99800115 0.49289965;
++	-6.26991507 -0.00123865 0.00075940 7.26867642 0.99621317 0.99800195 0.49289998;
++	-6.26992139 -0.00123816 0.00075909 7.26868323 0.99621468 0.99800275 0.49290032;
++	-6.26992769 -0.00123767 0.00075879 7.26869002 0.99621619 0.99800354 0.49290066;
++	-6.26993396 -0.00123717 0.00075849 7.26869679 0.99621770 0.99800434 0.49290100;
++	-6.26994022 -0.00123668 0.00075819 7.26870354 0.99621921 0.99800513 0.49290132;
++	-6.26994645 -0.00123619 0.00075789 7.26871027 0.99622072 0.99800593 0.49290166;
++	-6.26995267 -0.00123569 0.00075758 7.26871697 0.99622223 0.99800672 0.49290199;
++	-6.26995886 -0.00123520 0.00075728 7.26872366 0.99622374 0.99800751 0.49290231;
++	-6.26996503 -0.00123471 0.00075698 7.26873032 0.99622524 0.99800831 0.49290268;
++	-6.26997119 -0.00123422 0.00075668 7.26873697 0.99622675 0.99800910 0.49290298;
++	-6.26997732 -0.00123373 0.00075638 7.26874359 0.99622825 0.99800989 0.49290333;
++	-6.26998343 -0.00123324 0.00075608 7.26875019 0.99622975 0.99801068 0.49290366;
++	-6.26998952 -0.00123275 0.00075578 7.26875677 0.99623126 0.99801147 0.49290397;
++	-6.26999559 -0.00123226 0.00075548 7.26876333 0.99623275 0.99801226 0.49290432;
++	-6.27000164 -0.00123177 0.00075518 7.26876987 0.99623425 0.99801305 0.49290464;
++	-6.27000767 -0.00123128 0.00075488 7.26877639 0.99623575 0.99801384 0.49290499;
++	-6.27001368 -0.00123079 0.00075458 7.26878289 0.99623725 0.99801462 0.49290530;
++	-6.27001968 -0.00123031 0.00075428 7.26878937 0.99623874 0.99801541 0.49290562;
++	-6.27002565 -0.00122982 0.00075399 7.26879583 0.99624024 0.99801620 0.49290596;
++	-6.27003160 -0.00122933 0.00075369 7.26880227 0.99624173 0.99801698 0.49290628;
++	-6.27003753 -0.00122884 0.00075339 7.26880869 0.99624322 0.99801777 0.49290660;
++	-6.27004344 -0.00122836 0.00075309 7.26881508 0.99624471 0.99801855 0.49290693;
++	-6.27004933 -0.00122787 0.00075279 7.26882146 0.99624620 0.99801934 0.49290725;
++	-6.27005521 -0.00122739 0.00075250 7.26882782 0.99624769 0.99802012 0.49290756;
++	-6.27006106 -0.00122690 0.00075220 7.26883416 0.99624917 0.99802090 0.49290790;
++	-6.27006690 -0.00122642 0.00075190 7.26884048 0.99625066 0.99802168 0.49290821;
++	-6.27007271 -0.00122593 0.00075160 7.26884678 0.99625214 0.99802246 0.49290851;
++	-6.27007851 -0.00122545 0.00075131 7.26885306 0.99625363 0.99802324 0.49290885;
++	-6.27008428 -0.00122496 0.00075101 7.26885932 0.99625511 0.99802402 0.49290916;
++	-6.27009004 -0.00122448 0.00075072 7.26886556 0.99625659 0.99802480 0.49290948;
++	-6.27009578 -0.00122400 0.00075042 7.26887178 0.99625807 0.99802558 0.49290980;
++	-6.27010150 -0.00122351 0.00075012 7.26887799 0.99625955 0.99802636 0.49291012;
++	-6.27010720 -0.00122303 0.00074983 7.26888417 0.99626102 0.99802714 0.49291045;
++	-6.27011288 -0.00122255 0.00074953 7.26889033 0.99626250 0.99802792 0.49291075;
++	-6.27011855 -0.00122207 0.00074924 7.26889648 0.99626398 0.99802869 0.49291108;
++	-6.27012419 -0.00122159 0.00074894 7.26890260 0.99626545 0.99802947 0.49291137;
++	-6.27012982 -0.00122111 0.00074865 7.26890871 0.99626692 0.99803024 0.49291169;
++	-6.27013543 -0.00122063 0.00074836 7.26891480 0.99626839 0.99803102 0.49291199;
++	-6.27014102 -0.00122015 0.00074806 7.26892087 0.99626986 0.99803179 0.49291232;
++	-6.27014659 -0.00121967 0.00074777 7.26892692 0.99627133 0.99803257 0.49291262;
++	-6.27015214 -0.00121919 0.00074747 7.26893295 0.99627280 0.99803334 0.49291295;
++	-6.27015767 -0.00121871 0.00074718 7.26893897 0.99627427 0.99803411 0.49291325;
++	-6.27016319 -0.00121823 0.00074689 7.26894496 0.99627574 0.99803488 0.49291356;
++	-6.27016869 -0.00121775 0.00074659 7.26895094 0.99627720 0.99803565 0.49291386;
++	-6.27017417 -0.00121727 0.00074630 7.26895690 0.99627866 0.99803642 0.49291418;
++	-6.27017963 -0.00121680 0.00074601 7.26896284 0.99628013 0.99803719 0.49291448;
++	-6.27018508 -0.00121632 0.00074572 7.26896876 0.99628159 0.99803796 0.49291478;
++	-6.27019050 -0.00121584 0.00074543 7.26897466 0.99628305 0.99803873 0.49291509;
++	-6.27019591 -0.00121537 0.00074513 7.26898055 0.99628451 0.99803950 0.49291539;
++	-6.27020130 -0.00121489 0.00074484 7.26898641 0.99628596 0.99804027 0.49291571;
++	-6.27020668 -0.00121441 0.00074455 7.26899226 0.99628742 0.99804103 0.49291599;
++	-6.27021203 -0.00121394 0.00074426 7.26899810 0.99628888 0.99804180 0.49291629;
++	-6.27021737 -0.00121346 0.00074397 7.26900391 0.99629033 0.99804257 0.49291660;
++	-6.27022270 -0.00121299 0.00074368 7.26900971 0.99629178 0.99804333 0.49291688;
++	-6.27022800 -0.00121252 0.00074339 7.26901548 0.99629324 0.99804410 0.49291722;
++	-6.27023329 -0.00121204 0.00074310 7.26902124 0.99629469 0.99804486 0.49291750;
++	-6.27023856 -0.00121157 0.00074281 7.26902699 0.99629614 0.99804562 0.49291781;
++	-6.27024381 -0.00121110 0.00074252 7.26903271 0.99629759 0.99804639 0.49291812;
++	-6.27024904 -0.00121062 0.00074223 7.26903842 0.99629903 0.99804715 0.49291840;
++	-6.27025426 -0.00121015 0.00074194 7.26904411 0.99630048 0.99804791 0.49291870;
++	-6.27025946 -0.00120968 0.00074165 7.26904979 0.99630193 0.99804867 0.49291902;
++	-6.27026465 -0.00120921 0.00074136 7.26905544 0.99630337 0.99804943 0.49291932;
++	-6.27026982 -0.00120874 0.00074107 7.26906108 0.99630481 0.99805019 0.49291960;
++	-6.27027497 -0.00120827 0.00074078 7.26906670 0.99630626 0.99805095 0.49291988;
++	-6.27028010 -0.00120780 0.00074050 7.26907231 0.99630770 0.99805171 0.49292018;
++	-6.27028522 -0.00120732 0.00074021 7.26907789 0.99630914 0.99805247 0.49292047;
++	-6.27029032 -0.00120686 0.00073992 7.26908347 0.99631057 0.99805322 0.49292077;
++	-6.27029541 -0.00120639 0.00073963 7.26908902 0.99631201 0.99805398 0.49292106;
++	-6.27030047 -0.00120592 0.00073934 7.26909456 0.99631345 0.99805474 0.49292137;
++	-6.27030552 -0.00120545 0.00073906 7.26910008 0.99631488 0.99805549 0.49292164;
++	-6.27031056 -0.00120498 0.00073877 7.26910558 0.99631632 0.99805625 0.49292193;
++	-6.27031558 -0.00120451 0.00073848 7.26911107 0.99631775 0.99805700 0.49292223;
++	-6.27032058 -0.00120404 0.00073820 7.26911654 0.99631918 0.99805776 0.49292252;
++	-6.27032557 -0.00120358 0.00073791 7.26912199 0.99632061 0.99805851 0.49292278;
++	-6.27033054 -0.00120311 0.00073763 7.26912743 0.99632204 0.99805926 0.49292312;
++	-6.27033549 -0.00120264 0.00073734 7.26913285 0.99632347 0.99806002 0.49292338;
++	-6.27034043 -0.00120218 0.00073705 7.26913825 0.99632490 0.99806077 0.49292367;
++	-6.27034536 -0.00120171 0.00073677 7.26914364 0.99632633 0.99806152 0.49292394;
++	-6.27035026 -0.00120125 0.00073648 7.26914902 0.99632775 0.99806227 0.49292425;
++	-6.27035515 -0.00120078 0.00073620 7.26915437 0.99632918 0.99806302 0.49292452;
++	-6.27036003 -0.00120032 0.00073591 7.26915971 0.99633060 0.99806377 0.49292480;
++	-6.27036489 -0.00119985 0.00073563 7.26916504 0.99633202 0.99806452 0.49292511;
++	-6.27036973 -0.00119939 0.00073535 7.26917034 0.99633344 0.99806527 0.49292536;
++	-6.27037456 -0.00119892 0.00073506 7.26917564 0.99633486 0.99806601 0.49292567;
++	-6.27037937 -0.00119846 0.00073478 7.26918091 0.99633628 0.99806676 0.49292595;
++	-6.27038417 -0.00119800 0.00073449 7.26918617 0.99633770 0.99806751 0.49292622;
++	-6.27038895 -0.00119754 0.00073421 7.26919142 0.99633912 0.99806825 0.49292651;
++	-6.27039372 -0.00119707 0.00073393 7.26919664 0.99634053 0.99806900 0.49292678;
++	-6.27039847 -0.00119661 0.00073364 7.26920186 0.99634195 0.99806974 0.49292707;
++	-6.27040321 -0.00119615 0.00073336 7.26920706 0.99634336 0.99807049 0.49292736;
++	-6.27040793 -0.00119569 0.00073308 7.26921224 0.99634477 0.99807123 0.49292762;
++	-6.27041263 -0.00119523 0.00073280 7.26921740 0.99634618 0.99807198 0.49292790;
++	-6.27041732 -0.00119477 0.00073251 7.26922256 0.99634759 0.99807272 0.49292816;
++	-6.27042200 -0.00119431 0.00073223 7.26922769 0.99634900 0.99807346 0.49292845;
++	-6.27042666 -0.00119385 0.00073195 7.26923281 0.99635041 0.99807420 0.49292873;
++	-6.27043131 -0.00119339 0.00073167 7.26923792 0.99635182 0.99807494 0.49292902;
++	-6.27043594 -0.00119293 0.00073139 7.26924301 0.99635322 0.99807568 0.49292929;
++	-6.27044055 -0.00119247 0.00073111 7.26924808 0.99635463 0.99807642 0.49292955;
++	-6.27044516 -0.00119201 0.00073083 7.26925314 0.99635603 0.99807716 0.49292983;
++	-6.27044974 -0.00119155 0.00073054 7.26925819 0.99635743 0.99807790 0.49293011;
++	-6.27045432 -0.00119110 0.00073026 7.26926322 0.99635884 0.99807864 0.49293037;
++	-6.27045887 -0.00119064 0.00072998 7.26926823 0.99636024 0.99807938 0.49293066;
++	-6.27046342 -0.00119018 0.00072970 7.26927323 0.99636164 0.99808011 0.49293095;
++	-6.27046795 -0.00118973 0.00072942 7.26927822 0.99636303 0.99808085 0.49293118;
++	-6.27047246 -0.00118927 0.00072914 7.26928319 0.99636443 0.99808158 0.49293146;
++	-6.27047696 -0.00118881 0.00072887 7.26928815 0.99636583 0.99808232 0.49293175;
++	-6.27048145 -0.00118836 0.00072859 7.26929309 0.99636722 0.99808305 0.49293201;
++	-6.27048592 -0.00118790 0.00072831 7.26929802 0.99636862 0.99808379 0.49293228;
++	-6.27049038 -0.00118745 0.00072803 7.26930293 0.99637001 0.99808452 0.49293255;
++	-6.27049482 -0.00118699 0.00072775 7.26930783 0.99637140 0.99808526 0.49293281;
++	-6.27049925 -0.00118654 0.00072747 7.26931271 0.99637279 0.99808599 0.49293309;
++	-6.27050366 -0.00118609 0.00072719 7.26931758 0.99637418 0.99808672 0.49293334;
++	-6.27050807 -0.00118563 0.00072692 7.26932243 0.99637557 0.99808745 0.49293360;
++	-6.27051245 -0.00118518 0.00072664 7.26932727 0.99637696 0.99808818 0.49293390;
++	-6.27051683 -0.00118473 0.00072636 7.26933210 0.99637835 0.99808891 0.49293415;
++	-6.27052119 -0.00118427 0.00072608 7.26933691 0.99637973 0.99808964 0.49293444;
++	-6.27052553 -0.00118382 0.00072581 7.26934171 0.99638112 0.99809037 0.49293467;
++	-6.27052986 -0.00118337 0.00072553 7.26934649 0.99638250 0.99809110 0.49293494;
++	-6.27053418 -0.00118292 0.00072525 7.26935126 0.99638388 0.99809183 0.49293521;
++	-6.27053849 -0.00118247 0.00072498 7.26935602 0.99638526 0.99809256 0.49293547;
++	-6.27054278 -0.00118202 0.00072470 7.26936076 0.99638664 0.99809328 0.49293575;
++	-6.27054706 -0.00118157 0.00072442 7.26936549 0.99638802 0.99809401 0.49293600;
++	-6.27055132 -0.00118112 0.00072415 7.26937020 0.99638940 0.99809474 0.49293625;
++	-6.27055557 -0.00118067 0.00072387 7.26937491 0.99639078 0.99809546 0.49293651;
++	-6.27055981 -0.00118022 0.00072360 7.26937959 0.99639215 0.99809619 0.49293677;
++	-6.27056403 -0.00117977 0.00072332 7.26938427 0.99639353 0.99809691 0.49293703;
++	-6.27056825 -0.00117932 0.00072305 7.26938893 0.99639490 0.99809763 0.49293729;
++	-6.27057244 -0.00117887 0.00072277 7.26939357 0.99639628 0.99809836 0.49293754;
++	-6.27057663 -0.00117842 0.00072250 7.26939820 0.99639765 0.99809908 0.49293783;
++	-6.27058080 -0.00117798 0.00072222 7.26940282 0.99639902 0.99809980 0.49293807;
++	-6.27058496 -0.00117753 0.00072195 7.26940743 0.99640039 0.99810052 0.49293833;
++	-6.27058910 -0.00117708 0.00072167 7.26941202 0.99640176 0.99810124 0.49293858;
++	-6.27059324 -0.00117663 0.00072140 7.26941660 0.99640312 0.99810196 0.49293885;
++	-6.27059736 -0.00117619 0.00072113 7.26942117 0.99640449 0.99810268 0.49293910;
++	-6.27060146 -0.00117574 0.00072085 7.26942572 0.99640586 0.99810340 0.49293936;
++	-6.27060556 -0.00117530 0.00072058 7.26943026 0.99640722 0.99810412 0.49293961;
++	-6.27060964 -0.00117485 0.00072031 7.26943479 0.99640859 0.99810484 0.49293988;
++	-6.27061371 -0.00117441 0.00072004 7.26943930 0.99640995 0.99810556 0.49294014;
++	-6.27061776 -0.00117396 0.00071976 7.26944380 0.99641131 0.99810628 0.49294037;
++	-6.27062180 -0.00117352 0.00071949 7.26944829 0.99641267 0.99810699 0.49294061;
++	-6.27062583 -0.00117307 0.00071922 7.26945276 0.99641403 0.99810771 0.49294091;
++	-6.27062985 -0.00117263 0.00071895 7.26945722 0.99641539 0.99810842 0.49294113;
++	-6.27063386 -0.00117219 0.00071867 7.26946167 0.99641675 0.99810914 0.49294137;
++	-6.27063785 -0.00117174 0.00071840 7.26946611 0.99641810 0.99810985 0.49294161;
++	-6.27064183 -0.00117130 0.00071813 7.26947053 0.99641946 0.99811057 0.49294187;
++	-6.27064580 -0.00117086 0.00071786 7.26947494 0.99642081 0.99811128 0.49294216;
++	-6.27064976 -0.00117042 0.00071759 7.26947934 0.99642217 0.99811199 0.49294239;
++	-6.27065370 -0.00116997 0.00071732 7.26948372 0.99642352 0.99811271 0.49294263;
++	-6.27065763 -0.00116953 0.00071705 7.26948810 0.99642487 0.99811342 0.49294289;
++	-6.27066155 -0.00116909 0.00071678 7.26949246 0.99642622 0.99811413 0.49294314;
++	-6.27066546 -0.00116865 0.00071651 7.26949680 0.99642757 0.99811484 0.49294338;
++	-6.27066935 -0.00116821 0.00071624 7.26950114 0.99642892 0.99811555 0.49294362;
++	-6.27067323 -0.00116777 0.00071597 7.26950546 0.99643026 0.99811626 0.49294387;
++	-6.27067711 -0.00116733 0.00071570 7.26950977 0.99643161 0.99811697 0.49294414;
++	-6.27068096 -0.00116689 0.00071543 7.26951407 0.99643296 0.99811768 0.49294435;
++	-6.27068481 -0.00116645 0.00071516 7.26951836 0.99643430 0.99811839 0.49294462;
++	-6.27068865 -0.00116601 0.00071489 7.26952263 0.99643564 0.99811909 0.49294486;
++	-6.27069247 -0.00116558 0.00071462 7.26952689 0.99643699 0.99811980 0.49294512;
++	-6.27069628 -0.00116514 0.00071435 7.26953114 0.99643833 0.99812051 0.49294533;
++	-6.27070008 -0.00116470 0.00071409 7.26953538 0.99643967 0.99812121 0.49294559;
++	-6.27070387 -0.00116426 0.00071382 7.26953961 0.99644101 0.99812192 0.49294582;
++	-6.27070765 -0.00116383 0.00071355 7.26954382 0.99644235 0.99812262 0.49294607;
++	-6.27071141 -0.00116339 0.00071328 7.26954802 0.99644368 0.99812333 0.49294633;
++	-6.27071516 -0.00116295 0.00071301 7.26955221 0.99644502 0.99812403 0.49294657;
++	-6.27071891 -0.00116252 0.00071275 7.26955639 0.99644635 0.99812474 0.49294678;
++	-6.27072264 -0.00116208 0.00071248 7.26956056 0.99644769 0.99812544 0.49294701;
++	-6.27072636 -0.00116165 0.00071221 7.26956471 0.99644902 0.99812614 0.49294726;
++	-6.27073006 -0.00116121 0.00071195 7.26956885 0.99645035 0.99812684 0.49294753;
++	-6.27073376 -0.00116078 0.00071168 7.26957298 0.99645169 0.99812755 0.49294774;
++	-6.27073744 -0.00116034 0.00071141 7.26957710 0.99645302 0.99812825 0.49294799;
++	-6.27074112 -0.00115991 0.00071115 7.26958121 0.99645434 0.99812895 0.49294824;
++	-6.27074478 -0.00115947 0.00071088 7.26958531 0.99645567 0.99812965 0.49294849;
++	-6.27074843 -0.00115904 0.00071062 7.26958939 0.99645700 0.99813035 0.49294867;
++	-6.27075207 -0.00115861 0.00071035 7.26959347 0.99645833 0.99813104 0.49294894;
++	-6.27075570 -0.00115817 0.00071008 7.26959753 0.99645965 0.99813174 0.49294918;
++	-6.27075932 -0.00115774 0.00070982 7.26960158 0.99646098 0.99813244 0.49294940;
++	-6.27076293 -0.00115731 0.00070955 7.26960562 0.99646230 0.99813314 0.49294966;
++	-6.27076652 -0.00115688 0.00070929 7.26960965 0.99646362 0.99813383 0.49294988;
++	-6.27077011 -0.00115644 0.00070902 7.26961366 0.99646494 0.99813453 0.49295014;
++	-6.27077368 -0.00115601 0.00070876 7.26961767 0.99646626 0.99813523 0.49295035;
++	-6.27077724 -0.00115558 0.00070850 7.26962166 0.99646758 0.99813592 0.49295058;
++	-6.27078080 -0.00115515 0.00070823 7.26962565 0.99646890 0.99813662 0.49295081;
++	-6.27078434 -0.00115472 0.00070797 7.26962962 0.99647022 0.99813731 0.49295107;
++	-6.27078787 -0.00115429 0.00070770 7.26963358 0.99647154 0.99813800 0.49295129;
++	-6.27079139 -0.00115386 0.00070744 7.26963753 0.99647285 0.99813870 0.49295151;
++	-6.27079490 -0.00115343 0.00070718 7.26964147 0.99647417 0.99813939 0.49295175;
++	-6.27079840 -0.00115300 0.00070692 7.26964540 0.99647548 0.99814008 0.49295200;
++	-6.27080189 -0.00115257 0.00070665 7.26964931 0.99647679 0.99814077 0.49295221;
++	-6.27080537 -0.00115215 0.00070639 7.26965322 0.99647810 0.99814146 0.49295246;
++	-6.27080883 -0.00115172 0.00070613 7.26965711 0.99647941 0.99814215 0.49295267;
++	-6.27081229 -0.00115129 0.00070586 7.26966100 0.99648072 0.99814284 0.49295289;
++	-6.27081574 -0.00115086 0.00070560 7.26966487 0.99648203 0.99814353 0.49295314;
++	-6.27081917 -0.00115044 0.00070534 7.26966874 0.99648334 0.99814422 0.49295337;
++	-6.27082260 -0.00115001 0.00070508 7.26967259 0.99648465 0.99814491 0.49295357;
++	-6.27082601 -0.00114958 0.00070482 7.26967643 0.99648595 0.99814560 0.49295381;
++	-6.27082942 -0.00114916 0.00070456 7.26968026 0.99648726 0.99814629 0.49295404;
++	-6.27083281 -0.00114873 0.00070430 7.26968408 0.99648856 0.99814697 0.49295428;
++	-6.27083620 -0.00114830 0.00070403 7.26968789 0.99648986 0.99814766 0.49295451;
++	-6.27083957 -0.00114788 0.00070377 7.26969169 0.99649117 0.99814835 0.49295473;
++	-6.27084294 -0.00114745 0.00070351 7.26969548 0.99649247 0.99814903 0.49295497;
++	-6.27084629 -0.00114703 0.00070325 7.26969926 0.99649377 0.99814972 0.49295518;
++	-6.27084964 -0.00114661 0.00070299 7.26970303 0.99649507 0.99815040 0.49295540;
++	-6.27085297 -0.00114618 0.00070273 7.26970679 0.99649636 0.99815109 0.49295563;
++	-6.27085630 -0.00114576 0.00070247 7.26971054 0.99649766 0.99815177 0.49295584;
++	-6.27085961 -0.00114533 0.00070221 7.26971428 0.99649896 0.99815245 0.49295609;
++	-6.27086292 -0.00114491 0.00070195 7.26971800 0.99650025 0.99815313 0.49295629;
++	-6.27086621 -0.00114449 0.00070169 7.26972172 0.99650155 0.99815382 0.49295653;
++	-6.27086950 -0.00114407 0.00070144 7.26972543 0.99650284 0.99815450 0.49295673;
++	-6.27087277 -0.00114364 0.00070118 7.26972913 0.99650413 0.99815518 0.49295696;
++	-6.27087604 -0.00114322 0.00070092 7.26973281 0.99650542 0.99815586 0.49295720;
++	-6.27087929 -0.00114280 0.00070066 7.26973649 0.99650671 0.99815654 0.49295739;
++	-6.27088254 -0.00114238 0.00070040 7.26974016 0.99650800 0.99815722 0.49295764;
++	-6.27088577 -0.00114196 0.00070014 7.26974382 0.99650929 0.99815790 0.49295785;
++	-6.27088900 -0.00114154 0.00069989 7.26974746 0.99651058 0.99815858 0.49295811;
++	-6.27089222 -0.00114112 0.00069963 7.26975110 0.99651187 0.99815925 0.49295829;
++	-6.27089543 -0.00114070 0.00069937 7.26975473 0.99651315 0.99815993 0.49295850;
++	-6.27089862 -0.00114028 0.00069911 7.26975835 0.99651444 0.99816061 0.49295875;
++	-6.27090181 -0.00113986 0.00069886 7.26976195 0.99651572 0.99816129 0.49295895;
++	-6.27090499 -0.00113944 0.00069860 7.26976555 0.99651700 0.99816196 0.49295918;
++	-6.27090816 -0.00113902 0.00069834 7.26976914 0.99651829 0.99816264 0.49295938;
++	-6.27091132 -0.00113860 0.00069809 7.26977272 0.99651957 0.99816331 0.49295963;
++	-6.27091447 -0.00113818 0.00069783 7.26977629 0.99652085 0.99816399 0.49295982;
++	-6.27091762 -0.00113777 0.00069757 7.26977985 0.99652213 0.99816466 0.49296003;
++	-6.27092075 -0.00113735 0.00069732 7.26978340 0.99652340 0.99816533 0.49296028;
++	-6.27092387 -0.00113693 0.00069706 7.26978694 0.99652468 0.99816601 0.49296049;
++	-6.27092699 -0.00113651 0.00069681 7.26979047 0.99652596 0.99816668 0.49296071;
++	-6.27093009 -0.00113610 0.00069655 7.26979399 0.99652723 0.99816735 0.49296091;
++	-6.27093319 -0.00113568 0.00069629 7.26979751 0.99652851 0.99816802 0.49296112;
++	-6.27093627 -0.00113527 0.00069604 7.26980101 0.99652978 0.99816869 0.49296137;
++	-6.27093935 -0.00113485 0.00069578 7.26980450 0.99653105 0.99816937 0.49296155;
++	-6.27094242 -0.00113443 0.00069553 7.26980799 0.99653232 0.99817004 0.49296176;
++	-6.27094548 -0.00113402 0.00069528 7.26981146 0.99653360 0.99817070 0.49296198;
++	-6.27094853 -0.00113360 0.00069502 7.26981493 0.99653487 0.99817137 0.49296221;
++	-6.27095157 -0.00113319 0.00069477 7.26981838 0.99653613 0.99817204 0.49296241;
++	-6.27095461 -0.00113278 0.00069451 7.26982183 0.99653740 0.99817271 0.49296261;
++	-6.27095763 -0.00113236 0.00069426 7.26982527 0.99653867 0.99817338 0.49296284;
++	-6.27096065 -0.00113195 0.00069401 7.26982870 0.99653994 0.99817405 0.49296306;
++	-6.27096365 -0.00113154 0.00069375 7.26983212 0.99654120 0.99817471 0.49296324;
++	-6.27096665 -0.00113112 0.00069350 7.26983553 0.99654246 0.99817538 0.49296349;
++	-6.27096964 -0.00113071 0.00069325 7.26983893 0.99654373 0.99817604 0.49296367;
++	-6.27097262 -0.00113030 0.00069299 7.26984232 0.99654499 0.99817671 0.49296390;
++	-6.27097559 -0.00112989 0.00069274 7.26984571 0.99654625 0.99817737 0.49296411;
++	-6.27097856 -0.00112947 0.00069249 7.26984908 0.99654751 0.99817804 0.49296432;
++	-6.27098151 -0.00112906 0.00069224 7.26985245 0.99654877 0.99817870 0.49296451;
++	-6.27098446 -0.00112865 0.00069198 7.26985581 0.99655003 0.99817937 0.49296475;
++	-6.27098739 -0.00112824 0.00069173 7.26985915 0.99655129 0.99818003 0.49296493;
++	-6.27099032 -0.00112783 0.00069148 7.26986249 0.99655255 0.99818069 0.49296516;
++	-6.27099324 -0.00112742 0.00069123 7.26986583 0.99655380 0.99818135 0.49296535;
++	-6.27099616 -0.00112701 0.00069098 7.26986915 0.99655506 0.99818202 0.49296556;
++	-6.27099906 -0.00112660 0.00069072 7.26987246 0.99655631 0.99818268 0.49296577;
++	-6.27100196 -0.00112619 0.00069047 7.26987577 0.99655756 0.99818334 0.49296597;
++	-6.27100484 -0.00112578 0.00069022 7.26987906 0.99655882 0.99818400 0.49296619;
++	-6.27100772 -0.00112537 0.00068997 7.26988235 0.99656007 0.99818466 0.49296639;
++	-6.27101059 -0.00112496 0.00068972 7.26988563 0.99656132 0.99818532 0.49296663;
++	-6.27101345 -0.00112455 0.00068947 7.26988890 0.99656257 0.99818597 0.49296681;
++	-6.27101631 -0.00112415 0.00068922 7.26989216 0.99656382 0.99818663 0.49296699;
++	-6.27101915 -0.00112374 0.00068897 7.26989541 0.99656506 0.99818729 0.49296722;
++	-6.27102199 -0.00112333 0.00068872 7.26989866 0.99656631 0.99818795 0.49296743;
++	-6.27102482 -0.00112292 0.00068847 7.26990189 0.99656756 0.99818860 0.49296764;
++	-6.27102764 -0.00112252 0.00068822 7.26990512 0.99656880 0.99818926 0.49296783;
++	-6.27103045 -0.00112211 0.00068797 7.26990834 0.99657005 0.99818992 0.49296802;
++	-6.27103326 -0.00112171 0.00068772 7.26991155 0.99657129 0.99819057 0.49296822;
++	-6.27103606 -0.00112130 0.00068747 7.26991476 0.99657253 0.99819123 0.49296843;
++	-6.27103885 -0.00112089 0.00068723 7.26991795 0.99657377 0.99819188 0.49296863;
++	-6.27104163 -0.00112049 0.00068698 7.26992114 0.99657501 0.99819253 0.49296882;
++	-6.27104440 -0.00112008 0.00068673 7.26992432 0.99657625 0.99819319 0.49296903;
++	-6.27104717 -0.00111968 0.00068648 7.26992749 0.99657749 0.99819384 0.49296925;
++	-6.27104992 -0.00111927 0.00068623 7.26993065 0.99657873 0.99819449 0.49296948;
++	-6.27105267 -0.00111887 0.00068599 7.26993380 0.99657997 0.99819514 0.49296966;
++	-6.27105541 -0.00111847 0.00068574 7.26993695 0.99658120 0.99819580 0.49296986;
++	-6.27105815 -0.00111806 0.00068549 7.26994009 0.99658244 0.99819645 0.49297006;
++	-6.27106088 -0.00111766 0.00068524 7.26994322 0.99658367 0.99819710 0.49297025;
++	-6.27106359 -0.00111726 0.00068500 7.26994634 0.99658491 0.99819775 0.49297043;
++	-6.27106630 -0.00111685 0.00068475 7.26994945 0.99658614 0.99819840 0.49297064;
++	-6.27106901 -0.00111645 0.00068450 7.26995256 0.99658737 0.99819905 0.49297085;
++	-6.27107170 -0.00111605 0.00068426 7.26995565 0.99658860 0.99819970 0.49297106;
++	-6.27107439 -0.00111565 0.00068401 7.26995874 0.99658983 0.99820034 0.49297123;
++	-6.27107707 -0.00111525 0.00068376 7.26996183 0.99659106 0.99820099 0.49297145;
++	-6.27107974 -0.00111484 0.00068352 7.26996490 0.99659229 0.99820164 0.49297165;
++	-6.27108241 -0.00111444 0.00068327 7.26996797 0.99659352 0.99820229 0.49297182;
++	-6.27108507 -0.00111404 0.00068302 7.26997103 0.99659474 0.99820293 0.49297202;
++	-6.27108772 -0.00111364 0.00068278 7.26997408 0.99659597 0.99820358 0.49297222;
++	-6.27109036 -0.00111324 0.00068253 7.26997712 0.99659719 0.99820422 0.49297241;
++	-6.27109300 -0.00111284 0.00068229 7.26998015 0.99659842 0.99820487 0.49297262;
++	-6.27109562 -0.00111244 0.00068204 7.26998318 0.99659964 0.99820551 0.49297281;
++	-6.27109825 -0.00111204 0.00068180 7.26998620 0.99660086 0.99820616 0.49297301;
++	-6.27110086 -0.00111164 0.00068155 7.26998921 0.99660208 0.99820680 0.49297320;
++	-6.27110347 -0.00111125 0.00068131 7.26999222 0.99660330 0.99820744 0.49297339;
++	-6.27110606 -0.00111085 0.00068106 7.26999522 0.99660452 0.99820809 0.49297359;
++	-6.27110866 -0.00111045 0.00068082 7.26999821 0.99660574 0.99820873 0.49297380;
++	-6.27111124 -0.00111005 0.00068058 7.27000119 0.99660696 0.99820937 0.49297397;
++	-6.27111382 -0.00110965 0.00068033 7.27000416 0.99660818 0.99821001 0.49297417;
++	-6.27111639 -0.00110926 0.00068009 7.27000713 0.99660939 0.99821065 0.49297437;
++	-6.27111895 -0.00110886 0.00067985 7.27001009 0.99661061 0.99821129 0.49297456;
++	-6.27112151 -0.00110846 0.00067960 7.27001304 0.99661182 0.99821193 0.49297477;
++	-6.27112405 -0.00110807 0.00067936 7.27001599 0.99661303 0.99821257 0.49297493;
++	-6.27112660 -0.00110767 0.00067912 7.27001892 0.99661425 0.99821321 0.49297516;
++	-6.27112913 -0.00110728 0.00067887 7.27002185 0.99661546 0.99821385 0.49297533;
++	-6.27113166 -0.00110688 0.00067863 7.27002478 0.99661667 0.99821449 0.49297550;
++	-6.27113418 -0.00110648 0.00067839 7.27002769 0.99661788 0.99821513 0.49297572;
++	-6.27113669 -0.00110609 0.00067815 7.27003060 0.99661909 0.99821576 0.49297589;
++	-6.27113920 -0.00110569 0.00067790 7.27003350 0.99662030 0.99821640 0.49297607;
++	-6.27114170 -0.00110530 0.00067766 7.27003640 0.99662150 0.99821704 0.49297628;
++	-6.27114419 -0.00110491 0.00067742 7.27003928 0.99662271 0.99821767 0.49297646;
++	-6.27114668 -0.00110451 0.00067718 7.27004216 0.99662392 0.99821831 0.49297664;
++	-6.27114915 -0.00110412 0.00067694 7.27004504 0.99662512 0.99821894 0.49297684;
++	-6.27115163 -0.00110372 0.00067670 7.27004790 0.99662632 0.99821958 0.49297702;
++	-6.27115409 -0.00110333 0.00067646 7.27005076 0.99662753 0.99822021 0.49297723;
++	-6.27115655 -0.00110294 0.00067621 7.27005361 0.99662873 0.99822085 0.49297742;
++	-6.27115900 -0.00110255 0.00067597 7.27005646 0.99662993 0.99822148 0.49297759;
++	-6.27116145 -0.00110215 0.00067573 7.27005929 0.99663113 0.99822211 0.49297781;
++	-6.27116389 -0.00110176 0.00067549 7.27006212 0.99663233 0.99822274 0.49297799;
++	-6.27116632 -0.00110137 0.00067525 7.27006495 0.99663353 0.99822338 0.49297818;
++	-6.27116874 -0.00110098 0.00067501 7.27006776 0.99663473 0.99822401 0.49297837;
++	-6.27117116 -0.00110059 0.00067477 7.27007057 0.99663592 0.99822464 0.49297853;
++	-6.27117357 -0.00110020 0.00067453 7.27007338 0.99663712 0.99822527 0.49297873;
++	-6.27117598 -0.00109981 0.00067429 7.27007617 0.99663832 0.99822590 0.49297890;
++	-6.27117838 -0.00109942 0.00067405 7.27007896 0.99663951 0.99822653 0.49297910;
++	-6.27118077 -0.00109903 0.00067381 7.27008174 0.99664070 0.99822716 0.49297929;
++	-6.27118315 -0.00109864 0.00067358 7.27008452 0.99664190 0.99822779 0.49297945;
++	-6.27118553 -0.00109825 0.00067334 7.27008729 0.99664309 0.99822842 0.49297965;
++	-6.27118791 -0.00109786 0.00067310 7.27009005 0.99664428 0.99822904 0.49297987;
++	-6.27119027 -0.00109747 0.00067286 7.27009280 0.99664547 0.99822967 0.49298005;
++	-6.27119263 -0.00109708 0.00067262 7.27009555 0.99664666 0.99823030 0.49298023;
++	-6.27119499 -0.00109669 0.00067238 7.27009829 0.99664785 0.99823092 0.49298041;
++	-6.27119733 -0.00109630 0.00067214 7.27010103 0.99664904 0.99823155 0.49298056;
++	-6.27119968 -0.00109592 0.00067191 7.27010376 0.99665022 0.99823218 0.49298074;
++	-6.27120201 -0.00109553 0.00067167 7.27010648 0.99665141 0.99823280 0.49298095;
++	-6.27120434 -0.00109514 0.00067143 7.27010920 0.99665259 0.99823343 0.49298115;
++	-6.27120666 -0.00109475 0.00067119 7.27011190 0.99665378 0.99823405 0.49298131;
++	-6.27120898 -0.00109437 0.00067096 7.27011461 0.99665496 0.99823467 0.49298149;
++	-6.27121129 -0.00109398 0.00067072 7.27011730 0.99665614 0.99823530 0.49298166;
++	-6.27121359 -0.00109360 0.00067048 7.27011999 0.99665733 0.99823592 0.49298185;
++	-6.27121589 -0.00109321 0.00067025 7.27012268 0.99665851 0.99823654 0.49298202;
++	-6.27121818 -0.00109282 0.00067001 7.27012535 0.99665969 0.99823717 0.49298224;
++	-6.27122046 -0.00109244 0.00066977 7.27012802 0.99666087 0.99823779 0.49298236;
++	-6.27122274 -0.00109205 0.00066954 7.27013069 0.99666205 0.99823841 0.49298260;
++	-6.27122501 -0.00109167 0.00066930 7.27013334 0.99666322 0.99823903 0.49298275;
++	-6.27122728 -0.00109128 0.00066907 7.27013600 0.99666440 0.99823965 0.49298294;
++	-6.27122954 -0.00109090 0.00066883 7.27013864 0.99666558 0.99824027 0.49298313;
++	-6.27123179 -0.00109052 0.00066859 7.27014128 0.99666675 0.99824089 0.49298330;
++	-6.27123404 -0.00109013 0.00066836 7.27014391 0.99666793 0.99824151 0.49298351;
++	-6.27123629 -0.00108975 0.00066812 7.27014654 0.99666910 0.99824213 0.49298363;
++	-6.27123852 -0.00108937 0.00066789 7.27014916 0.99667027 0.99824275 0.49298382;
++	-6.27124075 -0.00108898 0.00066765 7.27015177 0.99667144 0.99824336 0.49298401;
++	-6.27124298 -0.00108860 0.00066742 7.27015438 0.99667261 0.99824398 0.49298420;
++	-6.27124520 -0.00108822 0.00066718 7.27015698 0.99667379 0.99824460 0.49298438;
++	-6.27124741 -0.00108784 0.00066695 7.27015957 0.99667495 0.99824521 0.49298453;
++	-6.27124962 -0.00108745 0.00066672 7.27016216 0.99667612 0.99824583 0.49298471;
++	-6.27125182 -0.00108707 0.00066648 7.27016475 0.99667729 0.99824645 0.49298491;
++	-6.27125401 -0.00108669 0.00066625 7.27016732 0.99667846 0.99824706 0.49298510;
++	-6.27125620 -0.00108631 0.00066601 7.27016989 0.99667962 0.99824768 0.49298524;
++	-6.27125839 -0.00108593 0.00066578 7.27017246 0.99668079 0.99824829 0.49298544;
++	-6.27126057 -0.00108555 0.00066555 7.27017502 0.99668195 0.99824890 0.49298562;
++	-6.27126274 -0.00108517 0.00066531 7.27017757 0.99668312 0.99824952 0.49298575;
++	-6.27126490 -0.00108479 0.00066508 7.27018012 0.99668428 0.99825013 0.49298596;
++	-6.27126707 -0.00108441 0.00066485 7.27018266 0.99668544 0.99825074 0.49298614;
++	-6.27126922 -0.00108403 0.00066461 7.27018519 0.99668660 0.99825136 0.49298629;
++	-6.27127137 -0.00108365 0.00066438 7.27018772 0.99668776 0.99825197 0.49298647;
++	-6.27127351 -0.00108327 0.00066415 7.27019024 0.99668892 0.99825258 0.49298665;
++	-6.27127565 -0.00108289 0.00066392 7.27019276 0.99669008 0.99825319 0.49298685;
++	-6.27127779 -0.00108251 0.00066369 7.27019527 0.99669124 0.99825380 0.49298701;
++	-6.27127991 -0.00108214 0.00066345 7.27019778 0.99669240 0.99825441 0.49298719;
++	-6.27128204 -0.00108176 0.00066322 7.27020028 0.99669356 0.99825502 0.49298735;
++	-6.27128415 -0.00108138 0.00066299 7.27020277 0.99669471 0.99825563 0.49298754;
++	-6.27128626 -0.00108100 0.00066276 7.27020526 0.99669587 0.99825624 0.49298772;
++	-6.27128837 -0.00108063 0.00066253 7.27020774 0.99669702 0.99825685 0.49298787;
++	-6.27129047 -0.00108025 0.00066230 7.27021022 0.99669817 0.99825746 0.49298806;
++	-6.27129256 -0.00107987 0.00066206 7.27021269 0.99669933 0.99825806 0.49298822;
++	-6.27129465 -0.00107950 0.00066183 7.27021516 0.99670048 0.99825867 0.49298838;
++	-6.27129674 -0.00107912 0.00066160 7.27021762 0.99670163 0.99825928 0.49298857;
++	-6.27129881 -0.00107874 0.00066137 7.27022007 0.99670278 0.99825988 0.49298872;
++	-6.27130089 -0.00107837 0.00066114 7.27022252 0.99670393 0.99826049 0.49298890;
++	-6.27130295 -0.00107799 0.00066091 7.27022496 0.99670508 0.99826109 0.49298906;
++	-6.27130502 -0.00107762 0.00066068 7.27022740 0.99670622 0.99826170 0.49298921;
++	-6.27130707 -0.00107724 0.00066045 7.27022983 0.99670737 0.99826230 0.49298942;
++	-6.27130913 -0.00107687 0.00066022 7.27023226 0.99670852 0.99826291 0.49298958;
++	-6.27131117 -0.00107649 0.00065999 7.27023468 0.99670966 0.99826351 0.49298977;
++	-6.27131321 -0.00107612 0.00065976 7.27023709 0.99671081 0.99826412 0.49298992;
++	-6.27131525 -0.00107575 0.00065953 7.27023950 0.99671195 0.99826472 0.49299011;
++	-6.27131728 -0.00107537 0.00065931 7.27024191 0.99671309 0.99826532 0.49299028;
++	-6.27131930 -0.00107500 0.00065908 7.27024430 0.99671423 0.99826592 0.49299042;
++	-6.27132133 -0.00107463 0.00065885 7.27024670 0.99671538 0.99826653 0.49299058;
++	-6.27132334 -0.00107425 0.00065862 7.27024909 0.99671652 0.99826713 0.49299077;
++	-6.27132535 -0.00107388 0.00065839 7.27025147 0.99671766 0.99826773 0.49299096;
++	-6.27132736 -0.00107351 0.00065816 7.27025385 0.99671879 0.99826833 0.49299111;
++	-6.27132936 -0.00107314 0.00065793 7.27025622 0.99671993 0.99826893 0.49299126;
++	-6.27133135 -0.00107277 0.00065771 7.27025858 0.99672107 0.99826953 0.49299144;
++	-6.27133334 -0.00107239 0.00065748 7.27026094 0.99672221 0.99827013 0.49299160;
++	-6.27133532 -0.00107202 0.00065725 7.27026330 0.99672334 0.99827073 0.49299180;
++	-6.27133730 -0.00107165 0.00065702 7.27026565 0.99672448 0.99827132 0.49299193;
++	-6.27133928 -0.00107128 0.00065680 7.27026800 0.99672561 0.99827192 0.49299212;
++	-6.27134125 -0.00107091 0.00065657 7.27027034 0.99672674 0.99827252 0.49299227;
++	-6.27134321 -0.00107054 0.00065634 7.27027267 0.99672788 0.99827312 0.49299243;
++	-6.27134517 -0.00107017 0.00065611 7.27027500 0.99672901 0.99827371 0.49299259;
++	-6.27134713 -0.00106980 0.00065589 7.27027733 0.99673014 0.99827431 0.49299280;
++	-6.27134908 -0.00106943 0.00065566 7.27027964 0.99673127 0.99827491 0.49299296;
++	-6.27135102 -0.00106906 0.00065543 7.27028196 0.99673240 0.99827550 0.49299309;
++	-6.27135296 -0.00106870 0.00065521 7.27028427 0.99673353 0.99827610 0.49299327;
++	-6.27135490 -0.00106833 0.00065498 7.27028657 0.99673466 0.99827669 0.49299344;
++	-6.27135683 -0.00106796 0.00065476 7.27028887 0.99673578 0.99827729 0.49299361;
++	-6.27135875 -0.00106759 0.00065453 7.27029116 0.99673691 0.99827788 0.49299378;
++	-6.27136067 -0.00106722 0.00065430 7.27029345 0.99673804 0.99827847 0.49299395;
++	-6.27136259 -0.00106685 0.00065408 7.27029574 0.99673916 0.99827907 0.49299413;
++	-6.27136450 -0.00106649 0.00065385 7.27029801 0.99674028 0.99827966 0.49299427;
++	-6.27136641 -0.00106612 0.00065363 7.27030029 0.99674141 0.99828025 0.49299442;
++	-6.27136831 -0.00106575 0.00065340 7.27030256 0.99674253 0.99828084 0.49299460;
++	-6.27137021 -0.00106539 0.00065318 7.27030482 0.99674365 0.99828143 0.49299474;
++	-6.27137210 -0.00106502 0.00065295 7.27030708 0.99674477 0.99828203 0.49299490;
++	-6.27137399 -0.00106465 0.00065273 7.27030933 0.99674589 0.99828262 0.49299509;
++	-6.27137587 -0.00106429 0.00065250 7.27031158 0.99674701 0.99828321 0.49299525;
++	-6.27137775 -0.00106392 0.00065228 7.27031382 0.99674813 0.99828380 0.49299541;
++	-6.27137962 -0.00106356 0.00065206 7.27031606 0.99674925 0.99828439 0.49299561;
++	-6.27138149 -0.00106319 0.00065183 7.27031830 0.99675037 0.99828497 0.49299573;
++	-6.27138335 -0.00106283 0.00065161 7.27032053 0.99675148 0.99828556 0.49299589;
++	-6.27138521 -0.00106246 0.00065139 7.27032275 0.99675260 0.99828615 0.49299603;
++	-6.27138707 -0.00106210 0.00065116 7.27032497 0.99675371 0.99828674 0.49299621;
++	-6.27138892 -0.00106173 0.00065094 7.27032719 0.99675483 0.99828733 0.49299635;
++	-6.27139077 -0.00106137 0.00065072 7.27032940 0.99675594 0.99828791 0.49299653;
++	-6.27139261 -0.00106101 0.00065049 7.27033160 0.99675705 0.99828850 0.49299670;
++	-6.27139445 -0.00106064 0.00065027 7.27033380 0.99675816 0.99828909 0.49299687;
++	-6.27139628 -0.00106028 0.00065005 7.27033600 0.99675928 0.99828967 0.49299705;
++	-6.27139811 -0.00105992 0.00064982 7.27033819 0.99676039 0.99829026 0.49299718;
++	-6.27139993 -0.00105956 0.00064960 7.27034037 0.99676150 0.99829084 0.49299736;
++	-6.27140175 -0.00105919 0.00064938 7.27034256 0.99676260 0.99829143 0.49299751;
++	-6.27140356 -0.00105883 0.00064916 7.27034473 0.99676371 0.99829201 0.49299765;
++	-6.27140537 -0.00105847 0.00064893 7.27034690 0.99676482 0.99829260 0.49299782;
++	-6.27140718 -0.00105811 0.00064871 7.27034907 0.99676593 0.99829318 0.49299800;
++	-6.27140898 -0.00105775 0.00064849 7.27035123 0.99676703 0.99829376 0.49299816;
++	-6.27141078 -0.00105739 0.00064827 7.27035339 0.99676814 0.99829434 0.49299833;
++	-6.27141257 -0.00105702 0.00064805 7.27035555 0.99676924 0.99829493 0.49299845;
++	-6.27141436 -0.00105666 0.00064783 7.27035770 0.99677034 0.99829551 0.49299862;
++	-6.27141614 -0.00105630 0.00064761 7.27035984 0.99677145 0.99829609 0.49299878;
++	-6.27141792 -0.00105594 0.00064739 7.27036198 0.99677255 0.99829667 0.49299891;
++	-6.27141970 -0.00105558 0.00064716 7.27036412 0.99677365 0.99829725 0.49299912;
++	-6.27142147 -0.00105522 0.00064694 7.27036625 0.99677475 0.99829783 0.49299926;
++	-6.27142324 -0.00105486 0.00064672 7.27036837 0.99677585 0.99829841 0.49299943;
++	-6.27142500 -0.00105451 0.00064650 7.27037050 0.99677695 0.99829899 0.49299955;
++	-6.27142676 -0.00105415 0.00064628 7.27037261 0.99677805 0.99829957 0.49299971;
++	-6.27142851 -0.00105379 0.00064606 7.27037473 0.99677914 0.99830015 0.49299984;
++	-6.27143026 -0.00105343 0.00064584 7.27037683 0.99678024 0.99830073 0.49300001;
++	-6.27143201 -0.00105307 0.00064562 7.27037894 0.99678134 0.99830131 0.49300017;
++	-6.27143375 -0.00105271 0.00064540 7.27038104 0.99678243 0.99830188 0.49300033;
++	-6.27143549 -0.00105236 0.00064518 7.27038313 0.99678353 0.99830246 0.49300050;
++	-6.27143722 -0.00105200 0.00064496 7.27038522 0.99678462 0.99830304 0.49300065;
++	-6.27143895 -0.00105164 0.00064475 7.27038731 0.99678571 0.99830361 0.49300081;
++	-6.27144068 -0.00105128 0.00064453 7.27038939 0.99678681 0.99830419 0.49300096;
++	-6.27144240 -0.00105093 0.00064431 7.27039147 0.99678790 0.99830477 0.49300112;
++	-6.27144412 -0.00105057 0.00064409 7.27039355 0.99678899 0.99830534 0.49300126;
++	-6.27144583 -0.00105021 0.00064387 7.27039561 0.99679008 0.99830592 0.49300141;
++	-6.27144754 -0.00104986 0.00064365 7.27039768 0.99679117 0.99830649 0.49300158;
++	-6.27144924 -0.00104950 0.00064343 7.27039974 0.99679226 0.99830706 0.49300174;
++	-6.27145094 -0.00104915 0.00064322 7.27040180 0.99679334 0.99830764 0.49300191;
++	-6.27145264 -0.00104879 0.00064300 7.27040385 0.99679443 0.99830821 0.49300203;
++	-6.27145433 -0.00104844 0.00064278 7.27040590 0.99679552 0.99830878 0.49300220;
++	-6.27145602 -0.00104808 0.00064256 7.27040794 0.99679660 0.99830936 0.49300234;
++	-6.27145771 -0.00104773 0.00064234 7.27040998 0.99679769 0.99830993 0.49300248;
++	-6.27145939 -0.00104737 0.00064213 7.27041202 0.99679877 0.99831050 0.49300264;
++	-6.27146107 -0.00104702 0.00064191 7.27041405 0.99679986 0.99831107 0.49300280;
++	-6.27146274 -0.00104667 0.00064169 7.27041607 0.99680094 0.99831164 0.49300294;
++	-6.27146441 -0.00104631 0.00064148 7.27041810 0.99680202 0.99831221 0.49300310;
++	-6.27146607 -0.00104596 0.00064126 7.27042012 0.99680310 0.99831278 0.49300325;
++	-6.27146774 -0.00104561 0.00064104 7.27042213 0.99680418 0.99831335 0.49300340;
++	-6.27146939 -0.00104525 0.00064083 7.27042414 0.99680526 0.99831392 0.49300357;
++	-6.27147105 -0.00104490 0.00064061 7.27042615 0.99680634 0.99831449 0.49300370;
++	-6.27147270 -0.00104455 0.00064039 7.27042815 0.99680742 0.99831506 0.49300390;
++	-6.27147434 -0.00104420 0.00064018 7.27043015 0.99680850 0.99831563 0.49300402;
++	-6.27147599 -0.00104384 0.00063996 7.27043214 0.99680957 0.99831620 0.49300417;
++	-6.27147762 -0.00104349 0.00063975 7.27043413 0.99681065 0.99831676 0.49300431;
++	-6.27147926 -0.00104314 0.00063953 7.27043612 0.99681172 0.99831733 0.49300449;
++	-6.27148089 -0.00104279 0.00063931 7.27043810 0.99681280 0.99831790 0.49300460;
++	-6.27148252 -0.00104244 0.00063910 7.27044008 0.99681387 0.99831846 0.49300478;
++	-6.27148414 -0.00104209 0.00063888 7.27044205 0.99681495 0.99831903 0.49300494;
++	-6.27148576 -0.00104174 0.00063867 7.27044402 0.99681602 0.99831959 0.49300507;
++	-6.27148738 -0.00104139 0.00063845 7.27044599 0.99681709 0.99832016 0.49300523;
++	-6.27148899 -0.00104104 0.00063824 7.27044795 0.99681816 0.99832072 0.49300537;
++	-6.27149060 -0.00104069 0.00063802 7.27044991 0.99681923 0.99832129 0.49300552;
++	-6.27149220 -0.00104034 0.00063781 7.27045186 0.99682030 0.99832185 0.49300567;
++	-6.27149380 -0.00103999 0.00063760 7.27045382 0.99682137 0.99832242 0.49300583;
++	-6.27149540 -0.00103964 0.00063738 7.27045576 0.99682244 0.99832298 0.49300595;
++	-6.27149699 -0.00103929 0.00063717 7.27045771 0.99682351 0.99832354 0.49300609;
++	-6.27149859 -0.00103894 0.00063695 7.27045964 0.99682457 0.99832411 0.49300627;
++	-6.27150017 -0.00103859 0.00063674 7.27046158 0.99682564 0.99832467 0.49300642;
++	-6.27150175 -0.00103824 0.00063653 7.27046351 0.99682670 0.99832523 0.49300653;
++	-6.27150333 -0.00103790 0.00063631 7.27046544 0.99682777 0.99832579 0.49300671;
++	-6.27150491 -0.00103755 0.00063610 7.27046736 0.99682883 0.99832635 0.49300686;
++	-6.27150648 -0.00103720 0.00063589 7.27046928 0.99682990 0.99832691 0.49300700;
++	-6.27150805 -0.00103685 0.00063567 7.27047120 0.99683096 0.99832747 0.49300717;
++	-6.27150962 -0.00103651 0.00063546 7.27047311 0.99683202 0.99832803 0.49300731;
++	-6.27151118 -0.00103616 0.00063525 7.27047502 0.99683308 0.99832859 0.49300742;
++	-6.27151274 -0.00103581 0.00063503 7.27047692 0.99683414 0.99832915 0.49300759;
++	-6.27151429 -0.00103547 0.00063482 7.27047882 0.99683520 0.99832971 0.49300775;
++	-6.27151584 -0.00103512 0.00063461 7.27048072 0.99683626 0.99833027 0.49300787;
++	-6.27151739 -0.00103478 0.00063440 7.27048262 0.99683732 0.99833083 0.49300803;
++	-6.27151893 -0.00103443 0.00063419 7.27048451 0.99683838 0.99833138 0.49300818;
++	-6.27152048 -0.00103408 0.00063397 7.27048639 0.99683943 0.99833194 0.49300831;
++	-6.27152201 -0.00103374 0.00063376 7.27048827 0.99684049 0.99833250 0.49300846;
++	-6.27152355 -0.00103339 0.00063355 7.27049015 0.99684154 0.99833306 0.49300863;
++	-6.27152508 -0.00103305 0.00063334 7.27049203 0.99684260 0.99833361 0.49300877;
++	-6.27152660 -0.00103270 0.00063313 7.27049390 0.99684365 0.99833417 0.49300891;
++	-6.27152813 -0.00103236 0.00063292 7.27049577 0.99684471 0.99833472 0.49300907;
++	-6.27152965 -0.00103202 0.00063271 7.27049763 0.99684576 0.99833528 0.49300922;
++	-6.27153117 -0.00103167 0.00063249 7.27049949 0.99684681 0.99833583 0.49300935;
++	-6.27153268 -0.00103133 0.00063228 7.27050135 0.99684786 0.99833639 0.49300949;
++	-6.27153419 -0.00103099 0.00063207 7.27050320 0.99684891 0.99833694 0.49300966;
++	-6.27153570 -0.00103064 0.00063186 7.27050505 0.99684996 0.99833749 0.49300980;
++	-6.27153720 -0.00103030 0.00063165 7.27050690 0.99685101 0.99833805 0.49300992;
++	-6.27153870 -0.00102996 0.00063144 7.27050874 0.99685206 0.99833860 0.49301003;
++	-6.27154020 -0.00102961 0.00063123 7.27051058 0.99685311 0.99833915 0.49301024;
++	-6.27154169 -0.00102927 0.00063102 7.27051242 0.99685415 0.99833971 0.49301036;
++	-6.27154318 -0.00102893 0.00063081 7.27051425 0.99685520 0.99834026 0.49301051;
++	-6.27154467 -0.00102859 0.00063060 7.27051608 0.99685625 0.99834081 0.49301064;
++	-6.27154615 -0.00102825 0.00063039 7.27051791 0.99685729 0.99834136 0.49301076;
++	-6.27154763 -0.00102791 0.00063018 7.27051973 0.99685834 0.99834191 0.49301089;
++	-6.27154911 -0.00102756 0.00062997 7.27052155 0.99685938 0.99834246 0.49301105;
++	-6.27155059 -0.00102722 0.00062976 7.27052336 0.99686042 0.99834301 0.49301119;
++	-6.27155206 -0.00102688 0.00062956 7.27052517 0.99686146 0.99834356 0.49301134;
++	-6.27155352 -0.00102654 0.00062935 7.27052698 0.99686251 0.99834411 0.49301148;
++	-6.27155499 -0.00102620 0.00062914 7.27052879 0.99686355 0.99834466 0.49301163;
++	-6.27155645 -0.00102586 0.00062893 7.27053059 0.99686459 0.99834521 0.49301176;
++	-6.27155791 -0.00102552 0.00062872 7.27053239 0.99686563 0.99834576 0.49301188;
++	-6.27155936 -0.00102518 0.00062851 7.27053418 0.99686666 0.99834630 0.49301206;
++	-6.27156082 -0.00102484 0.00062830 7.27053597 0.99686770 0.99834685 0.49301220;
++	-6.27156226 -0.00102451 0.00062810 7.27053776 0.99686874 0.99834740 0.49301233;
++	-6.27156371 -0.00102417 0.00062789 7.27053954 0.99686978 0.99834794 0.49301246;
++	-6.27156515 -0.00102383 0.00062768 7.27054132 0.99687081 0.99834849 0.49301262;
++	-6.27156659 -0.00102349 0.00062747 7.27054310 0.99687185 0.99834904 0.49301280;
++	-6.27156803 -0.00102315 0.00062727 7.27054488 0.99687288 0.99834958 0.49301294;
++	-6.27156946 -0.00102281 0.00062706 7.27054665 0.99687392 0.99835013 0.49301309;
++	-6.27157089 -0.00102248 0.00062685 7.27054842 0.99687495 0.99835067 0.49301319;
++	-6.27157232 -0.00102214 0.00062664 7.27055018 0.99687598 0.99835122 0.49301335;
++	-6.27157374 -0.00102180 0.00062644 7.27055194 0.99687701 0.99835176 0.49301345;
++	-6.27157517 -0.00102146 0.00062623 7.27055370 0.99687805 0.99835231 0.49301362;
++	-6.27157658 -0.00102113 0.00062602 7.27055546 0.99687908 0.99835285 0.49301372;
++	-6.27157800 -0.00102079 0.00062582 7.27055721 0.99688011 0.99835339 0.49301383;
++	-6.27157941 -0.00102045 0.00062561 7.27055896 0.99688113 0.99835393 0.49301405;
++	-6.27158082 -0.00102012 0.00062540 7.27056070 0.99688216 0.99835448 0.49301418;
++	-6.27158223 -0.00101978 0.00062520 7.27056244 0.99688319 0.99835502 0.49301433;
++	-6.27158363 -0.00101945 0.00062499 7.27056418 0.99688422 0.99835556 0.49301444;
++	-6.27158503 -0.00101911 0.00062479 7.27056592 0.99688524 0.99835610 0.49301454;
++	-6.27158643 -0.00101878 0.00062458 7.27056765 0.99688627 0.99835664 0.49301468;
++	-6.27158782 -0.00101844 0.00062438 7.27056938 0.99688730 0.99835718 0.49301483;
++	-6.27158921 -0.00101811 0.00062417 7.27057111 0.99688832 0.99835772 0.49301499;
++	-6.27159060 -0.00101777 0.00062396 7.27057283 0.99688934 0.99835826 0.49301513;
++	-6.27159199 -0.00101744 0.00062376 7.27057455 0.99689037 0.99835880 0.49301528;
++	-6.27159337 -0.00101710 0.00062355 7.27057627 0.99689139 0.99835934 0.49301541;
++	-6.27159475 -0.00101677 0.00062335 7.27057798 0.99689241 0.99835988 0.49301553;
++	-6.27159613 -0.00101644 0.00062314 7.27057969 0.99689343 0.99836042 0.49301569;
++	-6.27159750 -0.00101610 0.00062294 7.27058140 0.99689445 0.99836096 0.49301584;
++	-6.27159887 -0.00101577 0.00062274 7.27058310 0.99689547 0.99836150 0.49301593;
++	-6.27160024 -0.00101544 0.00062253 7.27058480 0.99689649 0.99836203 0.49301608;
++	-6.27160160 -0.00101510 0.00062233 7.27058650 0.99689751 0.99836257 0.49301621;
++	-6.27160297 -0.00101477 0.00062212 7.27058820 0.99689853 0.99836311 0.49301634;
++	-6.27160433 -0.00101444 0.00062192 7.27058989 0.99689954 0.99836364 0.49301647;
++	-6.27160568 -0.00101410 0.00062171 7.27059158 0.99690056 0.99836418 0.49301663;
++	-6.27160704 -0.00101377 0.00062151 7.27059327 0.99690158 0.99836472 0.49301679;
++	-6.27160839 -0.00101344 0.00062131 7.27059495 0.99690259 0.99836525 0.49301693;
++	-6.27160974 -0.00101311 0.00062110 7.27059663 0.99690361 0.99836579 0.49301706;
++	-6.27161108 -0.00101278 0.00062090 7.27059831 0.99690462 0.99836632 0.49301722;
++	-6.27161243 -0.00101245 0.00062070 7.27059998 0.99690563 0.99836686 0.49301730;
++	-6.27161377 -0.00101212 0.00062049 7.27060165 0.99690664 0.99836739 0.49301748;
++	-6.27161511 -0.00101179 0.00062029 7.27060332 0.99690766 0.99836792 0.49301757;
++	-6.27161644 -0.00101146 0.00062009 7.27060499 0.99690867 0.99836846 0.49301772;
++	-6.27161777 -0.00101112 0.00061989 7.27060665 0.99690968 0.99836899 0.49301787;
++	-6.27161910 -0.00101079 0.00061968 7.27060831 0.99691069 0.99836952 0.49301798;
++	-6.27162043 -0.00101046 0.00061948 7.27060996 0.99691170 0.99837005 0.49301811;
++	-6.27162175 -0.00101014 0.00061928 7.27061162 0.99691271 0.99837059 0.49301825;
++	-6.27162307 -0.00100981 0.00061908 7.27061327 0.99691371 0.99837112 0.49301840;
++	-6.27162439 -0.00100948 0.00061887 7.27061492 0.99691472 0.99837165 0.49301855;
++	-6.27162571 -0.00100915 0.00061867 7.27061656 0.99691573 0.99837218 0.49301866;
++	-6.27162702 -0.00100882 0.00061847 7.27061820 0.99691673 0.99837271 0.49301881;
++	-6.27162833 -0.00100849 0.00061827 7.27061984 0.99691774 0.99837324 0.49301892;
++	-6.27162964 -0.00100816 0.00061807 7.27062148 0.99691874 0.99837377 0.49301906;
++	-6.27163095 -0.00100783 0.00061787 7.27062311 0.99691975 0.99837430 0.49301923;
++	-6.27163225 -0.00100751 0.00061767 7.27062474 0.99692075 0.99837483 0.49301935;
++	-6.27163355 -0.00100718 0.00061746 7.27062637 0.99692175 0.99837536 0.49301944;
++	-6.27163485 -0.00100685 0.00061726 7.27062800 0.99692275 0.99837589 0.49301961;
++	-6.27163614 -0.00100652 0.00061706 7.27062962 0.99692375 0.99837641 0.49301974;
++	-6.27163743 -0.00100620 0.00061686 7.27063124 0.99692476 0.99837694 0.49301990;
++	-6.27163872 -0.00100587 0.00061666 7.27063285 0.99692576 0.99837747 0.49301996;
++	-6.27164001 -0.00100554 0.00061646 7.27063447 0.99692675 0.99837800 0.49302013;
++	-6.27164130 -0.00100522 0.00061626 7.27063608 0.99692775 0.99837852 0.49302024;
++	-6.27164258 -0.00100489 0.00061606 7.27063769 0.99692875 0.99837905 0.49302039;
++	-6.27164386 -0.00100456 0.00061586 7.27063929 0.99692975 0.99837957 0.49302050;
++	-6.27164513 -0.00100424 0.00061566 7.27064090 0.99693075 0.99838010 0.49302064;
++	-6.27164641 -0.00100391 0.00061546 7.27064250 0.99693174 0.99838063 0.49302080;
++	-6.27164768 -0.00100359 0.00061526 7.27064409 0.99693274 0.99838115 0.49302092;
++	-6.27164895 -0.00100326 0.00061506 7.27064569 0.99693373 0.99838168 0.49302106;
++	-6.27165022 -0.00100294 0.00061486 7.27064728 0.99693473 0.99838220 0.49302117;
++	-6.27165148 -0.00100261 0.00061466 7.27064887 0.99693572 0.99838272 0.49302135;
++	-6.27165274 -0.00100229 0.00061446 7.27065045 0.99693671 0.99838325 0.49302147;
++	-6.27165400 -0.00100196 0.00061427 7.27065204 0.99693770 0.99838377 0.49302161;
++	-6.27165526 -0.00100164 0.00061407 7.27065362 0.99693870 0.99838429 0.49302174;
++	-6.27165651 -0.00100132 0.00061387 7.27065520 0.99693969 0.99838482 0.49302182;
++	-6.27165777 -0.00100099 0.00061367 7.27065677 0.99694068 0.99838534 0.49302200;
++	-6.27165902 -0.00100067 0.00061347 7.27065835 0.99694167 0.99838586 0.49302214;
++	-6.27166026 -0.00100035 0.00061327 7.27065992 0.99694266 0.99838638 0.49302227;
++	-6.27166151 -0.00100002 0.00061307 7.27066149 0.99694364 0.99838690 0.49302237;
++	-6.27166275 -0.00099970 0.00061288 7.27066305 0.99694463 0.99838742 0.49302253;
++	-6.27166399 -0.00099938 0.00061268 7.27066461 0.99694562 0.99838795 0.49302264;
++	-6.27166523 -0.00099905 0.00061248 7.27066617 0.99694660 0.99838847 0.49302277;
++	-6.27166646 -0.00099873 0.00061228 7.27066773 0.99694759 0.99838899 0.49302290;
++	-6.27166770 -0.00099841 0.00061208 7.27066928 0.99694858 0.99838951 0.49302301;
++	-6.27166893 -0.00099809 0.00061189 7.27067084 0.99694956 0.99839002 0.49302315;
++	-6.27167015 -0.00099777 0.00061169 7.27067239 0.99695054 0.99839054 0.49302331;
++	-6.27167138 -0.00099745 0.00061149 7.27067393 0.99695153 0.99839106 0.49302343;
++	-6.27167260 -0.00099712 0.00061130 7.27067548 0.99695251 0.99839158 0.49302354;
++	-6.27167382 -0.00099680 0.00061110 7.27067702 0.99695349 0.99839210 0.49302367;
++	-6.27167504 -0.00099648 0.00061090 7.27067856 0.99695447 0.99839262 0.49302378;
++	-6.27167626 -0.00099616 0.00061070 7.27068010 0.99695545 0.99839313 0.49302391;
++	-6.27167747 -0.00099584 0.00061051 7.27068163 0.99695643 0.99839365 0.49302405;
++	-6.27167868 -0.00099552 0.00061031 7.27068316 0.99695741 0.99839417 0.49302418;
++	-6.27167989 -0.00099520 0.00061012 7.27068469 0.99695839 0.99839468 0.49302428;
++	-6.27168110 -0.00099488 0.00060992 7.27068622 0.99695937 0.99839520 0.49302442;
++	-6.27168231 -0.00099456 0.00060972 7.27068774 0.99696035 0.99839571 0.49302457;
++	-6.27168351 -0.00099424 0.00060953 7.27068927 0.99696133 0.99839623 0.49302469;
++	-6.27168471 -0.00099392 0.00060933 7.27069078 0.99696230 0.99839674 0.49302483;
++	-6.27168591 -0.00099360 0.00060914 7.27069230 0.99696328 0.99839726 0.49302493;
++	-6.27168710 -0.00099329 0.00060894 7.27069382 0.99696425 0.99839777 0.49302510;
++	-6.27168829 -0.00099297 0.00060874 7.27069533 0.99696523 0.99839829 0.49302519;
++	-6.27168949 -0.00099265 0.00060855 7.27069684 0.99696620 0.99839880 0.49302531;
++	-6.27169067 -0.00099233 0.00060835 7.27069834 0.99696717 0.99839931 0.49302546;
++	-6.27169186 -0.00099201 0.00060816 7.27069985 0.99696815 0.99839983 0.49302559;
++	-6.27169305 -0.00099170 0.00060796 7.27070135 0.99696912 0.99840034 0.49302572;
++	-6.27169423 -0.00099138 0.00060777 7.27070285 0.99697009 0.99840085 0.49302581;
++	-6.27169541 -0.00099106 0.00060757 7.27070435 0.99697106 0.99840137 0.49302594;
++	-6.27169659 -0.00099074 0.00060738 7.27070584 0.99697203 0.99840188 0.49302606;
++	-6.27169776 -0.00099043 0.00060719 7.27070734 0.99697300 0.99840239 0.49302620;
++	-6.27169893 -0.00099011 0.00060699 7.27070883 0.99697397 0.99840290 0.49302635;
++	-6.27170011 -0.00098979 0.00060680 7.27071031 0.99697494 0.99840341 0.49302644;
++	-6.27170128 -0.00098948 0.00060660 7.27071180 0.99697590 0.99840392 0.49302662;
++	-6.27170244 -0.00098916 0.00060641 7.27071328 0.99697687 0.99840443 0.49302676;
++	-6.27170361 -0.00098884 0.00060622 7.27071476 0.99697784 0.99840494 0.49302682;
++	-6.27170477 -0.00098853 0.00060602 7.27071624 0.99697880 0.99840545 0.49302696;
++	-6.27170593 -0.00098821 0.00060583 7.27071772 0.99697977 0.99840596 0.49302711;
++	-6.27170709 -0.00098790 0.00060563 7.27071919 0.99698073 0.99840647 0.49302721;
++	-6.27170825 -0.00098758 0.00060544 7.27072066 0.99698170 0.99840698 0.49302733;
++	-6.27170940 -0.00098727 0.00060525 7.27072213 0.99698266 0.99840748 0.49302748;
++	-6.27171055 -0.00098695 0.00060505 7.27072360 0.99698362 0.99840799 0.49302765;
++	-6.27171170 -0.00098664 0.00060486 7.27072506 0.99698459 0.99840850 0.49302773;
++	-6.27171285 -0.00098633 0.00060467 7.27072652 0.99698555 0.99840901 0.49302786;
++	-6.27171399 -0.00098601 0.00060448 7.27072798 0.99698651 0.99840951 0.49302797;
++	-6.27171514 -0.00098570 0.00060428 7.27072944 0.99698747 0.99841002 0.49302811;
++	-6.27171628 -0.00098538 0.00060409 7.27073090 0.99698843 0.99841053 0.49302824;
++	-6.27171742 -0.00098507 0.00060390 7.27073235 0.99698939 0.99841103 0.49302835;
++	-6.27171856 -0.00098476 0.00060371 7.27073380 0.99699035 0.99841154 0.49302848;
++	-6.27171969 -0.00098444 0.00060351 7.27073525 0.99699130 0.99841204 0.49302858;
++	-6.27172082 -0.00098413 0.00060332 7.27073669 0.99699226 0.99841255 0.49302871;
++	-6.27172196 -0.00098382 0.00060313 7.27073814 0.99699322 0.99841305 0.49302887;
++	-6.27172309 -0.00098351 0.00060294 7.27073958 0.99699417 0.99841356 0.49302895;
++	-6.27172421 -0.00098319 0.00060275 7.27074102 0.99699513 0.99841406 0.49302912;
++	-6.27172534 -0.00098288 0.00060256 7.27074246 0.99699608 0.99841456 0.49302925;
++	-6.27172646 -0.00098257 0.00060236 7.27074389 0.99699704 0.99841507 0.49302935;
++	-6.27172758 -0.00098226 0.00060217 7.27074532 0.99699799 0.99841557 0.49302945;
++	-6.27172870 -0.00098195 0.00060198 7.27074676 0.99699894 0.99841607 0.49302959;
++	-6.27172982 -0.00098163 0.00060179 7.27074818 0.99699990 0.99841657 0.49302970;
++	-6.27173093 -0.00098132 0.00060160 7.27074961 0.99700085 0.99841708 0.49302981;
++	-6.27173205 -0.00098101 0.00060141 7.27075103 0.99700180 0.99841758 0.49302992;
++	-6.27173316 -0.00098070 0.00060122 7.27075246 0.99700275 0.99841808 0.49303009;
++	-6.27173427 -0.00098039 0.00060103 7.27075388 0.99700370 0.99841858 0.49303019;
++	-6.27173537 -0.00098008 0.00060084 7.27075529 0.99700465 0.99841908 0.49303031;
++	-6.27173648 -0.00097977 0.00060065 7.27075671 0.99700560 0.99841958 0.49303044;
++	-6.27173758 -0.00097946 0.00060046 7.27075812 0.99700655 0.99842008 0.49303056;
++	-6.27173868 -0.00097915 0.00060027 7.27075953 0.99700749 0.99842058 0.49303069;
++	-6.27173978 -0.00097884 0.00060008 7.27076094 0.99700844 0.99842108 0.49303080;
++	-6.27174088 -0.00097853 0.00059989 7.27076235 0.99700939 0.99842158 0.49303094;
++	-6.27174198 -0.00097822 0.00059970 7.27076375 0.99701033 0.99842208 0.49303107;
++	-6.27174307 -0.00097791 0.00059951 7.27076516 0.99701128 0.99842258 0.49303120;
++	-6.27174416 -0.00097761 0.00059932 7.27076656 0.99701222 0.99842308 0.49303132;
++	-6.27174525 -0.00097730 0.00059913 7.27076795 0.99701317 0.99842357 0.49303142;
++	-6.27174634 -0.00097699 0.00059894 7.27076935 0.99701411 0.99842407 0.49303154;
++	-6.27174743 -0.00097668 0.00059875 7.27077075 0.99701505 0.99842457 0.49303168;
++	-6.27174851 -0.00097637 0.00059856 7.27077214 0.99701599 0.99842507 0.49303176;
++	-6.27174959 -0.00097606 0.00059837 7.27077353 0.99701693 0.99842556 0.49303192;
++	-6.27175067 -0.00097576 0.00059818 7.27077491 0.99701788 0.99842606 0.49303205;
++	-6.27175175 -0.00097545 0.00059800 7.27077630 0.99701882 0.99842656 0.49303212;
++	-6.27175283 -0.00097514 0.00059781 7.27077769 0.99701976 0.99842705 0.49303223;
++	-6.27175390 -0.00097484 0.00059762 7.27077907 0.99702070 0.99842755 0.49303239;
++	-6.27175497 -0.00097453 0.00059743 7.27078045 0.99702163 0.99842804 0.49303247;
++	-6.27175605 -0.00097422 0.00059724 7.27078182 0.99702257 0.99842854 0.49303263;
++	-6.27175712 -0.00097392 0.00059705 7.27078320 0.99702351 0.99842903 0.49303277;
++	-6.27175818 -0.00097361 0.00059687 7.27078457 0.99702445 0.99842952 0.49303287;
++	-6.27175925 -0.00097330 0.00059668 7.27078595 0.99702538 0.99843002 0.49303298;
++	-6.27176031 -0.00097300 0.00059649 7.27078731 0.99702632 0.99843051 0.49303309;
++	-6.27176137 -0.00097269 0.00059630 7.27078868 0.99702725 0.99843101 0.49303324;
++	-6.27176243 -0.00097239 0.00059612 7.27079005 0.99702819 0.99843150 0.49303337;
++	-6.27176349 -0.00097208 0.00059593 7.27079141 0.99702912 0.99843199 0.49303342;
++	-6.27176455 -0.00097178 0.00059574 7.27079277 0.99703005 0.99843248 0.49303355;
++	-6.27176560 -0.00097147 0.00059555 7.27079413 0.99703099 0.99843298 0.49303367;
++	-6.27176666 -0.00097117 0.00059537 7.27079549 0.99703192 0.99843347 0.49303384;
++	-6.27176771 -0.00097086 0.00059518 7.27079685 0.99703285 0.99843396 0.49303391;
++	-6.27176876 -0.00097056 0.00059499 7.27079820 0.99703378 0.99843445 0.49303404;
++	-6.27176980 -0.00097025 0.00059481 7.27079955 0.99703471 0.99843494 0.49303417;
++	-6.27177085 -0.00096995 0.00059462 7.27080090 0.99703564 0.99843543 0.49303426;
++	-6.27177189 -0.00096965 0.00059443 7.27080225 0.99703657 0.99843592 0.49303442;
++	-6.27177294 -0.00096934 0.00059425 7.27080359 0.99703750 0.99843641 0.49303454;
++	-6.27177398 -0.00096904 0.00059406 7.27080494 0.99703843 0.99843690 0.49303464;
++	-6.27177502 -0.00096874 0.00059388 7.27080628 0.99703936 0.99843739 0.49303476;
++	-6.27177605 -0.00096843 0.00059369 7.27080762 0.99704028 0.99843788 0.49303487;
++	-6.27177709 -0.00096813 0.00059350 7.27080896 0.99704121 0.99843837 0.49303501;
++	-6.27177812 -0.00096783 0.00059332 7.27081030 0.99704213 0.99843886 0.49303512;
++	-6.27177915 -0.00096752 0.00059313 7.27081163 0.99704306 0.99843934 0.49303521;
++	-6.27178018 -0.00096722 0.00059295 7.27081296 0.99704398 0.99843983 0.49303537;
++	-6.27178121 -0.00096692 0.00059276 7.27081429 0.99704491 0.99844032 0.49303546;
++	-6.27178224 -0.00096662 0.00059258 7.27081562 0.99704583 0.99844081 0.49303558;
++	-6.27178326 -0.00096632 0.00059239 7.27081695 0.99704675 0.99844129 0.49303575;
++	-6.27178429 -0.00096602 0.00059221 7.27081827 0.99704768 0.99844178 0.49303581;
++	-6.27178531 -0.00096571 0.00059202 7.27081960 0.99704860 0.99844227 0.49303591;
++	-6.27178633 -0.00096541 0.00059184 7.27082092 0.99704952 0.99844275 0.49303609;
++	-6.27178735 -0.00096511 0.00059165 7.27082224 0.99705044 0.99844324 0.49303618;
++	-6.27178836 -0.00096481 0.00059147 7.27082355 0.99705136 0.99844372 0.49303628;
++	-6.27178938 -0.00096451 0.00059128 7.27082487 0.99705228 0.99844421 0.49303641;
++	-6.27179039 -0.00096421 0.00059110 7.27082618 0.99705320 0.99844469 0.49303652;
++	-6.27179140 -0.00096391 0.00059091 7.27082749 0.99705412 0.99844518 0.49303666;
++	-6.27179242 -0.00096361 0.00059073 7.27082881 0.99705503 0.99844566 0.49303673;
++	-6.27179342 -0.00096331 0.00059055 7.27083011 0.99705595 0.99844614 0.49303690;
++	-6.27179443 -0.00096301 0.00059036 7.27083142 0.99705687 0.99844663 0.49303700;
++	-6.27179544 -0.00096271 0.00059018 7.27083272 0.99705778 0.99844711 0.49303712;
++	-6.27179644 -0.00096241 0.00058999 7.27083403 0.99705870 0.99844759 0.49303722;
++	-6.27179744 -0.00096211 0.00058981 7.27083533 0.99705961 0.99844808 0.49303732;
++	-6.27179844 -0.00096181 0.00058963 7.27083663 0.99706053 0.99844856 0.49303745;
++	-6.27179944 -0.00096152 0.00058944 7.27083792 0.99706144 0.99844904 0.49303757;
++	-6.27180044 -0.00096122 0.00058926 7.27083922 0.99706235 0.99844952 0.49303771;
++	-6.27180143 -0.00096092 0.00058908 7.27084051 0.99706327 0.99845000 0.49303777;
++	-6.27180243 -0.00096062 0.00058890 7.27084181 0.99706418 0.99845048 0.49303795;
++	-6.27180342 -0.00096032 0.00058871 7.27084310 0.99706509 0.99845097 0.49303802;
++	-6.27180441 -0.00096002 0.00058853 7.27084438 0.99706600 0.99845145 0.49303815;
++	-6.27180540 -0.00095973 0.00058835 7.27084567 0.99706691 0.99845193 0.49303827;
++	-6.27180639 -0.00095943 0.00058816 7.27084696 0.99706782 0.99845241 0.49303836;
++	-6.27180737 -0.00095913 0.00058798 7.27084824 0.99706873 0.99845289 0.49303844;
++	-6.27180836 -0.00095884 0.00058780 7.27084952 0.99706964 0.99845336 0.49303861;
++	-6.27180934 -0.00095854 0.00058762 7.27085080 0.99707055 0.99845384 0.49303868;
++	-6.27181032 -0.00095824 0.00058744 7.27085208 0.99707145 0.99845432 0.49303884;
++	-6.27181130 -0.00095795 0.00058725 7.27085335 0.99707236 0.99845480 0.49303895;
++	-6.27181228 -0.00095765 0.00058707 7.27085463 0.99707327 0.99845528 0.49303908;
++	-6.27181325 -0.00095735 0.00058689 7.27085590 0.99707417 0.99845576 0.49303915;
++	-6.27181423 -0.00095706 0.00058671 7.27085717 0.99707508 0.99845623 0.49303928;
++	-6.27181520 -0.00095676 0.00058653 7.27085844 0.99707598 0.99845671 0.49303940;
++	-6.27181618 -0.00095647 0.00058635 7.27085971 0.99707689 0.99845719 0.49303950;
++	-6.27181715 -0.00095617 0.00058616 7.27086098 0.99707779 0.99845766 0.49303965;
++	-6.27181811 -0.00095588 0.00058598 7.27086224 0.99707869 0.99845814 0.49303979;
++	-6.27181908 -0.00095558 0.00058580 7.27086350 0.99707960 0.99845862 0.49303989;
++	-6.27182005 -0.00095529 0.00058562 7.27086476 0.99708050 0.99845909 0.49303994;
++	-6.27182101 -0.00095499 0.00058544 7.27086602 0.99708140 0.99845957 0.49304006;
++	-6.27182198 -0.00095470 0.00058526 7.27086728 0.99708230 0.99846004 0.49304023;
++	-6.27182294 -0.00095440 0.00058508 7.27086854 0.99708320 0.99846052 0.49304031;
++	-6.27182390 -0.00095411 0.00058490 7.27086979 0.99708410 0.99846099 0.49304040;
++	-6.27182486 -0.00095381 0.00058472 7.27087104 0.99708500 0.99846147 0.49304052;
++	-6.27182581 -0.00095352 0.00058454 7.27087229 0.99708590 0.99846194 0.49304066;
++	-6.27182677 -0.00095323 0.00058436 7.27087354 0.99708680 0.99846242 0.49304078;
++	-6.27182772 -0.00095293 0.00058418 7.27087479 0.99708769 0.99846289 0.49304090;
++	-6.27182867 -0.00095264 0.00058400 7.27087603 0.99708859 0.99846336 0.49304102;
++	-6.27182963 -0.00095235 0.00058382 7.27087728 0.99708949 0.99846383 0.49304112;
++	-6.27183058 -0.00095205 0.00058364 7.27087852 0.99709038 0.99846431 0.49304120;
++	-6.27183152 -0.00095176 0.00058346 7.27087976 0.99709128 0.99846478 0.49304129;
++	-6.27183247 -0.00095147 0.00058328 7.27088100 0.99709217 0.99846525 0.49304145;
++	-6.27183342 -0.00095118 0.00058310 7.27088224 0.99709307 0.99846572 0.49304157;
++	-6.27183436 -0.00095088 0.00058292 7.27088348 0.99709396 0.99846619 0.49304165;
++	-6.27183530 -0.00095059 0.00058274 7.27088471 0.99709485 0.99846667 0.49304175;
++	-6.27183624 -0.00095030 0.00058256 7.27088594 0.99709575 0.99846714 0.49304190;
++	-6.27183718 -0.00095001 0.00058238 7.27088717 0.99709664 0.99846761 0.49304204;
++	-6.27183812 -0.00094972 0.00058221 7.27088840 0.99709753 0.99846808 0.49304212;
++	-6.27183906 -0.00094943 0.00058203 7.27088963 0.99709842 0.99846855 0.49304222;
++	-6.27183999 -0.00094914 0.00058185 7.27089086 0.99709931 0.99846902 0.49304233;
++	-6.27184093 -0.00094884 0.00058167 7.27089208 0.99710020 0.99846949 0.49304245;
++	-6.27184186 -0.00094855 0.00058149 7.27089331 0.99710109 0.99846996 0.49304255;
++	-6.27184279 -0.00094826 0.00058131 7.27089453 0.99710198 0.99847042 0.49304263;
++	-6.27184372 -0.00094797 0.00058113 7.27089575 0.99710287 0.99847089 0.49304277;
++	-6.27184465 -0.00094768 0.00058096 7.27089697 0.99710375 0.99847136 0.49304288;
++	-6.27184558 -0.00094739 0.00058078 7.27089818 0.99710464 0.99847183 0.49304302;
++	-6.27184650 -0.00094710 0.00058060 7.27089940 0.99710553 0.99847230 0.49304309;
++	-6.27184743 -0.00094681 0.00058042 7.27090061 0.99710641 0.99847276 0.49304322;
++	-6.27184835 -0.00094652 0.00058025 7.27090182 0.99710730 0.99847323 0.49304332;
++	-6.27184927 -0.00094623 0.00058007 7.27090304 0.99710818 0.99847370 0.49304348;
++	-6.27185019 -0.00094595 0.00057989 7.27090424 0.99710907 0.99847416 0.49304351;
++	-6.27185111 -0.00094566 0.00057971 7.27090545 0.99710995 0.99847463 0.49304363;
++	-6.27185203 -0.00094537 0.00057954 7.27090666 0.99711083 0.99847510 0.49304378;
++	-6.27185294 -0.00094508 0.00057936 7.27090786 0.99711172 0.99847556 0.49304390;
++	-6.27185386 -0.00094479 0.00057918 7.27090907 0.99711260 0.99847603 0.49304399;
++	-6.27185477 -0.00094450 0.00057901 7.27091027 0.99711348 0.99847649 0.49304412;
++	-6.27185568 -0.00094421 0.00057883 7.27091147 0.99711436 0.99847696 0.49304419;
++	-6.27185659 -0.00094393 0.00057865 7.27091267 0.99711524 0.99847742 0.49304433;
++	-6.27185750 -0.00094364 0.00057848 7.27091386 0.99711612 0.99847789 0.49304445;
++	-6.27185841 -0.00094335 0.00057830 7.27091506 0.99711700 0.99847835 0.49304453;
++	-6.27185932 -0.00094306 0.00057812 7.27091625 0.99711788 0.99847881 0.49304463;
++	-6.27186022 -0.00094278 0.00057795 7.27091745 0.99711876 0.99847928 0.49304471;
++	-6.27186113 -0.00094249 0.00057777 7.27091864 0.99711964 0.99847974 0.49304488;
++	-6.27186203 -0.00094220 0.00057759 7.27091983 0.99712051 0.99848020 0.49304496;
++	-6.27186293 -0.00094192 0.00057742 7.27092101 0.99712139 0.99848067 0.49304509;
++	-6.27186383 -0.00094163 0.00057724 7.27092220 0.99712227 0.99848113 0.49304521;
++	-6.27186473 -0.00094134 0.00057707 7.27092339 0.99712314 0.99848159 0.49304528;
++	-6.27186563 -0.00094106 0.00057689 7.27092457 0.99712402 0.99848205 0.49304542;
++	-6.27186652 -0.00094077 0.00057672 7.27092575 0.99712489 0.99848251 0.49304552;
++	-6.27186742 -0.00094049 0.00057654 7.27092693 0.99712577 0.99848297 0.49304562;
++	-6.27186831 -0.00094020 0.00057636 7.27092811 0.99712664 0.99848344 0.49304571;
++	-6.27186920 -0.00093991 0.00057619 7.27092929 0.99712751 0.99848390 0.49304585;
++	-6.27187010 -0.00093963 0.00057601 7.27093047 0.99712839 0.99848436 0.49304595;
++	-6.27187098 -0.00093934 0.00057584 7.27093164 0.99712926 0.99848482 0.49304606;
++	-6.27187187 -0.00093906 0.00057567 7.27093281 0.99713013 0.99848528 0.49304619;
++	-6.27187276 -0.00093877 0.00057549 7.27093399 0.99713100 0.99848574 0.49304625;
++	-6.27187365 -0.00093849 0.00057532 7.27093516 0.99713187 0.99848619 0.49304638;
++	-6.27187453 -0.00093821 0.00057514 7.27093633 0.99713274 0.99848665 0.49304650;
++	-6.27187541 -0.00093792 0.00057497 7.27093749 0.99713361 0.99848711 0.49304662;
++	-6.27187630 -0.00093764 0.00057479 7.27093866 0.99713448 0.99848757 0.49304675;
++	-6.27187718 -0.00093735 0.00057462 7.27093983 0.99713535 0.99848803 0.49304680;
++	-6.27187806 -0.00093707 0.00057444 7.27094099 0.99713622 0.99848849 0.49304696;
++	-6.27187894 -0.00093679 0.00057427 7.27094215 0.99713708 0.99848894 0.49304701;
++	-6.27187981 -0.00093650 0.00057410 7.27094331 0.99713795 0.99848940 0.49304717;
++	-6.27188069 -0.00093622 0.00057392 7.27094447 0.99713882 0.99848986 0.49304726;
++	-6.27188156 -0.00093594 0.00057375 7.27094563 0.99713968 0.99849031 0.49304734;
++	-6.27188244 -0.00093565 0.00057358 7.27094678 0.99714055 0.99849077 0.49304749;
++	-6.27188331 -0.00093537 0.00057340 7.27094794 0.99714141 0.99849123 0.49304756;
++	-6.27188418 -0.00093509 0.00057323 7.27094909 0.99714228 0.99849168 0.49304769;
++	-6.27188505 -0.00093481 0.00057306 7.27095025 0.99714314 0.99849214 0.49304781;
++	-6.27188592 -0.00093452 0.00057288 7.27095140 0.99714400 0.99849259 0.49304789;
++	-6.27188679 -0.00093424 0.00057271 7.27095255 0.99714486 0.99849305 0.49304797;
++	-6.27188765 -0.00093396 0.00057254 7.27095369 0.99714573 0.99849350 0.49304811;
++	-6.27188852 -0.00093368 0.00057236 7.27095484 0.99714659 0.99849396 0.49304819;
++	-6.27188938 -0.00093340 0.00057219 7.27095599 0.99714745 0.99849441 0.49304832;
++	-6.27189025 -0.00093312 0.00057202 7.27095713 0.99714831 0.99849487 0.49304841;
++	-6.27189111 -0.00093283 0.00057185 7.27095827 0.99714917 0.99849532 0.49304852;
++	-6.27189197 -0.00093255 0.00057167 7.27095942 0.99715003 0.99849577 0.49304861;
++	-6.27189283 -0.00093227 0.00057150 7.27096056 0.99715089 0.99849623 0.49304875;
++	-6.27189369 -0.00093199 0.00057133 7.27096169 0.99715175 0.99849668 0.49304884;
++	-6.27189454 -0.00093171 0.00057116 7.27096283 0.99715260 0.99849713 0.49304894;
++	-6.27189540 -0.00093143 0.00057098 7.27096397 0.99715346 0.99849758 0.49304909;
++	-6.27189625 -0.00093115 0.00057081 7.27096510 0.99715432 0.99849804 0.49304918;
++	-6.27189711 -0.00093087 0.00057064 7.27096624 0.99715517 0.99849849 0.49304926;
++	-6.27189796 -0.00093059 0.00057047 7.27096737 0.99715603 0.99849894 0.49304941;
++	-6.27189881 -0.00093031 0.00057030 7.27096850 0.99715689 0.99849939 0.49304950;
++	-6.27189966 -0.00093003 0.00057013 7.27096963 0.99715774 0.99849984 0.49304958;
++	-6.27190051 -0.00092975 0.00056995 7.27097076 0.99715860 0.99850029 0.49304964;
++	-6.27190136 -0.00092947 0.00056978 7.27097188 0.99715945 0.99850074 0.49304982;
++	-6.27190220 -0.00092919 0.00056961 7.27097301 0.99716030 0.99850119 0.49304989;
++	-6.27190305 -0.00092892 0.00056944 7.27097413 0.99716115 0.99850164 0.49305004;
++	-6.27190389 -0.00092864 0.00056927 7.27097525 0.99716201 0.99850209 0.49305011;
++	-6.27190474 -0.00092836 0.00056910 7.27097638 0.99716286 0.99850254 0.49305025;
++	-6.27190558 -0.00092808 0.00056893 7.27097750 0.99716371 0.99850299 0.49305033;
++	-6.27190642 -0.00092780 0.00056876 7.27097862 0.99716456 0.99850344 0.49305045;
++	-6.27190726 -0.00092752 0.00056859 7.27097973 0.99716541 0.99850389 0.49305056;
++	-6.27190810 -0.00092725 0.00056842 7.27098085 0.99716626 0.99850434 0.49305065;
++	-6.27190893 -0.00092697 0.00056825 7.27098197 0.99716711 0.99850478 0.49305076;
++	-6.27190977 -0.00092669 0.00056808 7.27098308 0.99716796 0.99850523 0.49305085;
++	-6.27191061 -0.00092641 0.00056791 7.27098419 0.99716881 0.99850568 0.49305094;
++	-6.27191144 -0.00092614 0.00056774 7.27098530 0.99716965 0.99850613 0.49305108;
++	-6.27191227 -0.00092586 0.00056757 7.27098641 0.99717050 0.99850657 0.49305115;
++	-6.27191311 -0.00092558 0.00056740 7.27098752 0.99717135 0.99850702 0.49305125;
++	-6.27191394 -0.00092531 0.00056723 7.27098863 0.99717219 0.99850747 0.49305139;
++	-6.27191477 -0.00092503 0.00056706 7.27098974 0.99717304 0.99850791 0.49305148;
++	-6.27191559 -0.00092475 0.00056689 7.27099084 0.99717389 0.99850836 0.49305158;
++	-6.27191642 -0.00092448 0.00056672 7.27099194 0.99717473 0.99850880 0.49305167;
++	-6.27191725 -0.00092420 0.00056655 7.27099305 0.99717557 0.99850925 0.49305181;
++	-6.27191807 -0.00092393 0.00056638 7.27099415 0.99717642 0.99850969 0.49305190;
++	-6.27191890 -0.00092365 0.00056621 7.27099525 0.99717726 0.99851014 0.49305201;
++	-6.27191972 -0.00092338 0.00056604 7.27099635 0.99717810 0.99851058 0.49305208;
++	-6.27192054 -0.00092310 0.00056587 7.27099744 0.99717895 0.99851103 0.49305223;
++	-6.27192136 -0.00092282 0.00056570 7.27099854 0.99717979 0.99851147 0.49305232;
++	-6.27192218 -0.00092255 0.00056553 7.27099964 0.99718063 0.99851192 0.49305243;
++	-6.27192300 -0.00092227 0.00056537 7.27100073 0.99718147 0.99851236 0.49305250;
++	-6.27192382 -0.00092200 0.00056520 7.27100182 0.99718231 0.99851280 0.49305258;
++	-6.27192464 -0.00092173 0.00056503 7.27100291 0.99718315 0.99851325 0.49305275;
++	-6.27192545 -0.00092145 0.00056486 7.27100400 0.99718399 0.99851369 0.49305278;
++	-6.27192627 -0.00092118 0.00056469 7.27100509 0.99718483 0.99851413 0.49305295;
++	-6.27192708 -0.00092090 0.00056452 7.27100618 0.99718566 0.99851457 0.49305299;
++	-6.27192790 -0.00092063 0.00056436 7.27100727 0.99718650 0.99851502 0.49305314;
++	-6.27192871 -0.00092036 0.00056419 7.27100835 0.99718734 0.99851546 0.49305323;
++	-6.27192952 -0.00092008 0.00056402 7.27100944 0.99718818 0.99851590 0.49305333;
++	-6.27193033 -0.00091981 0.00056385 7.27101052 0.99718901 0.99851634 0.49305345;
++	-6.27193114 -0.00091954 0.00056368 7.27101160 0.99718985 0.99851678 0.49305349;
++	-6.27193194 -0.00091926 0.00056352 7.27101268 0.99719068 0.99851722 0.49305365;
++	-6.27193275 -0.00091899 0.00056335 7.27101376 0.99719152 0.99851766 0.49305371;
++	-6.27193356 -0.00091872 0.00056318 7.27101484 0.99719235 0.99851810 0.49305382;
++	-6.27193436 -0.00091844 0.00056301 7.27101592 0.99719318 0.99851854 0.49305392;
++	-6.27193516 -0.00091817 0.00056285 7.27101699 0.99719402 0.99851898 0.49305400;
++	-6.27193597 -0.00091790 0.00056268 7.27101807 0.99719485 0.99851942 0.49305415;
++	-6.27193677 -0.00091763 0.00056251 7.27101914 0.99719568 0.99851986 0.49305427;
++	-6.27193757 -0.00091736 0.00056235 7.27102021 0.99719651 0.99852030 0.49305437;
++	-6.27193837 -0.00091708 0.00056218 7.27102128 0.99719735 0.99852074 0.49305443;
++	-6.27193917 -0.00091681 0.00056201 7.27102235 0.99719818 0.99852117 0.49305458;
++	-6.27193996 -0.00091654 0.00056185 7.27102342 0.99719901 0.99852161 0.49305464;
++	-6.27194076 -0.00091627 0.00056168 7.27102449 0.99719984 0.99852205 0.49305472;
++	-6.27194155 -0.00091600 0.00056151 7.27102556 0.99720066 0.99852249 0.49305485;
++	-6.27194235 -0.00091573 0.00056135 7.27102662 0.99720149 0.99852292 0.49305488;
++	-6.27194314 -0.00091546 0.00056118 7.27102769 0.99720232 0.99852336 0.49305501;
++	-6.27194394 -0.00091519 0.00056102 7.27102875 0.99720315 0.99852380 0.49305520;
++	-6.27194473 -0.00091492 0.00056085 7.27102981 0.99720398 0.99852423 0.49305527;
++	-6.27194552 -0.00091465 0.00056068 7.27103087 0.99720480 0.99852467 0.49305537;
++	-6.27194631 -0.00091438 0.00056052 7.27103193 0.99720563 0.99852511 0.49305541;
++	-6.27194710 -0.00091411 0.00056035 7.27103299 0.99720646 0.99852554 0.49305558;
++	-6.27194788 -0.00091384 0.00056019 7.27103405 0.99720728 0.99852598 0.49305568;
++	-6.27194867 -0.00091357 0.00056002 7.27103510 0.99720811 0.99852641 0.49305582;
++	-6.27194946 -0.00091330 0.00055986 7.27103616 0.99720893 0.99852685 0.49305585;
++	-6.27195024 -0.00091303 0.00055969 7.27103721 0.99720975 0.99852728 0.49305599;
++	-6.27195102 -0.00091276 0.00055953 7.27103827 0.99721058 0.99852772 0.49305606;
++	-6.27195181 -0.00091249 0.00055936 7.27103932 0.99721140 0.99852815 0.49305614;
++	-6.27195259 -0.00091222 0.00055920 7.27104037 0.99721222 0.99852858 0.49305629;
++	-6.27195337 -0.00091195 0.00055903 7.27104142 0.99721304 0.99852902 0.49305636;
++	-6.27195415 -0.00091168 0.00055887 7.27104247 0.99721387 0.99852945 0.49305643;
++	-6.27195493 -0.00091141 0.00055870 7.27104351 0.99721469 0.99852988 0.49305655;
++	-6.27195571 -0.00091115 0.00055854 7.27104456 0.99721551 0.99853032 0.49305663;
++	-6.27195648 -0.00091088 0.00055837 7.27104561 0.99721633 0.99853075 0.49305679;
++	-6.27195726 -0.00091061 0.00055821 7.27104665 0.99721715 0.99853118 0.49305682;
++	-6.27195803 -0.00091034 0.00055804 7.27104769 0.99721796 0.99853161 0.49305696;
++	-6.27195881 -0.00091007 0.00055788 7.27104873 0.99721878 0.99853205 0.49305711;
++	-6.27195958 -0.00090981 0.00055771 7.27104978 0.99721960 0.99853248 0.49305719;
++	-6.27196035 -0.00090954 0.00055755 7.27105081 0.99722042 0.99853291 0.49305721;
++	-6.27196113 -0.00090927 0.00055739 7.27105185 0.99722124 0.99853334 0.49305736;
++	-6.27196190 -0.00090901 0.00055722 7.27105289 0.99722205 0.99853377 0.49305741;
++	-6.27196267 -0.00090874 0.00055706 7.27105393 0.99722287 0.99853420 0.49305756;
++	-6.27196344 -0.00090847 0.00055690 7.27105496 0.99722368 0.99853463 0.49305766;
++	-6.27196420 -0.00090821 0.00055673 7.27105600 0.99722450 0.99853506 0.49305779;
++	-6.27196497 -0.00090794 0.00055657 7.27105703 0.99722531 0.99853549 0.49305788;
++	-6.27196574 -0.00090767 0.00055641 7.27105806 0.99722613 0.99853592 0.49305797;
++	-6.27196650 -0.00090741 0.00055624 7.27105909 0.99722694 0.99853635 0.49305806;
++	-6.27196726 -0.00090714 0.00055608 7.27106012 0.99722776 0.99853678 0.49305817;
++	-6.27196803 -0.00090688 0.00055592 7.27106115 0.99722857 0.99853721 0.49305825;
++	-6.27196879 -0.00090661 0.00055575 7.27106218 0.99722938 0.99853764 0.49305840;
++	-6.27196955 -0.00090634 0.00055559 7.27106321 0.99723019 0.99853807 0.49305847;
++	-6.27197031 -0.00090608 0.00055543 7.27106423 0.99723100 0.99853849 0.49305859;
++	-6.27197107 -0.00090581 0.00055526 7.27106526 0.99723181 0.99853892 0.49305865;
++	-6.27197183 -0.00090555 0.00055510 7.27106628 0.99723262 0.99853935 0.49305875;
++	-6.27197259 -0.00090528 0.00055494 7.27106730 0.99723343 0.99853978 0.49305889;
++	-6.27197335 -0.00090502 0.00055478 7.27106833 0.99723424 0.99854020 0.49305896;
++	-6.27197410 -0.00090476 0.00055461 7.27106935 0.99723505 0.99854063 0.49305906;
++	-6.27197486 -0.00090449 0.00055445 7.27107037 0.99723586 0.99854106 0.49305911;
++	-6.27197561 -0.00090423 0.00055429 7.27107138 0.99723667 0.99854148 0.49305929;
++	-6.27197637 -0.00090396 0.00055413 7.27107240 0.99723748 0.99854191 0.49305933;
++	-6.27197712 -0.00090370 0.00055397 7.27107342 0.99723828 0.99854233 0.49305943;
++	-6.27197787 -0.00090344 0.00055380 7.27107443 0.99723909 0.99854276 0.49305954;
++	-6.27197862 -0.00090317 0.00055364 7.27107545 0.99723990 0.99854319 0.49305965;
++	-6.27197937 -0.00090291 0.00055348 7.27107646 0.99724070 0.99854361 0.49305972;
++	-6.27198012 -0.00090264 0.00055332 7.27107748 0.99724151 0.99854404 0.49305986;
++	-6.27198087 -0.00090238 0.00055316 7.27107849 0.99724231 0.99854446 0.49305996;
++	-6.27198162 -0.00090212 0.00055300 7.27107950 0.99724312 0.99854488 0.49306003;
++	-6.27198236 -0.00090186 0.00055284 7.27108051 0.99724392 0.99854531 0.49306014;
++	-6.27198311 -0.00090159 0.00055267 7.27108151 0.99724472 0.99854573 0.49306027;
++	-6.27198385 -0.00090133 0.00055251 7.27108252 0.99724553 0.99854616 0.49306036;
++	-6.27198460 -0.00090107 0.00055235 7.27108353 0.99724633 0.99854658 0.49306043;
++	-6.27198534 -0.00090081 0.00055219 7.27108453 0.99724713 0.99854700 0.49306047;
++	-6.27198608 -0.00090054 0.00055203 7.27108554 0.99724793 0.99854742 0.49306066;
++	-6.27198682 -0.00090028 0.00055187 7.27108654 0.99724873 0.99854785 0.49306072;
++	-6.27198756 -0.00090002 0.00055171 7.27108754 0.99724953 0.99854827 0.49306079;
++	-6.27198830 -0.00089976 0.00055155 7.27108855 0.99725033 0.99854869 0.49306090;
++	-6.27198904 -0.00089950 0.00055139 7.27108955 0.99725113 0.99854911 0.49306100;
++	-6.27198978 -0.00089924 0.00055123 7.27109054 0.99725193 0.99854954 0.49306107;
++	-6.27199052 -0.00089898 0.00055107 7.27109154 0.99725273 0.99854996 0.49306122;
++	-6.27199126 -0.00089871 0.00055091 7.27109254 0.99725353 0.99855038 0.49306129;
++	-6.27199199 -0.00089845 0.00055075 7.27109354 0.99725433 0.99855080 0.49306135;
++	-6.27199273 -0.00089819 0.00055059 7.27109453 0.99725512 0.99855122 0.49306146;
++	-6.27199346 -0.00089793 0.00055043 7.27109553 0.99725592 0.99855164 0.49306163;
++	-6.27199419 -0.00089767 0.00055027 7.27109652 0.99725672 0.99855206 0.49306163;
++	-6.27199493 -0.00089741 0.00055011 7.27109751 0.99725751 0.99855248 0.49306178;
++	-6.27199566 -0.00089715 0.00054995 7.27109851 0.99725831 0.99855290 0.49306188;
++	-6.27199639 -0.00089689 0.00054979 7.27109950 0.99725910 0.99855332 0.49306196;
++	-6.27199712 -0.00089663 0.00054963 7.27110049 0.99725990 0.99855374 0.49306206;
++	-6.27199785 -0.00089637 0.00054947 7.27110147 0.99726069 0.99855416 0.49306218;
++	-6.27199857 -0.00089611 0.00054931 7.27110246 0.99726149 0.99855458 0.49306227;
++	-6.27199930 -0.00089585 0.00054915 7.27110345 0.99726228 0.99855499 0.49306238;
++	-6.27200003 -0.00089559 0.00054899 7.27110443 0.99726307 0.99855541 0.49306244;
++	-6.27200076 -0.00089534 0.00054883 7.27110542 0.99726386 0.99855583 0.49306254;
++	-6.27200148 -0.00089508 0.00054868 7.27110640 0.99726465 0.99855625 0.49306260;
++	-6.27200220 -0.00089482 0.00054852 7.27110739 0.99726545 0.99855667 0.49306270;
++	-6.27200293 -0.00089456 0.00054836 7.27110837 0.99726624 0.99855708 0.49306284;
++	-6.27200365 -0.00089430 0.00054820 7.27110935 0.99726703 0.99855750 0.49306289;
++	-6.27200437 -0.00089404 0.00054804 7.27111033 0.99726782 0.99855792 0.49306299;
++	-6.27200509 -0.00089378 0.00054788 7.27111131 0.99726861 0.99855833 0.49306315;
++	-6.27200581 -0.00089353 0.00054772 7.27111229 0.99726940 0.99855875 0.49306325;
++	-6.27200653 -0.00089327 0.00054757 7.27111326 0.99727018 0.99855916 0.49306334;
++	-6.27200725 -0.00089301 0.00054741 7.27111424 0.99727097 0.99855958 0.49306342;
++	-6.27200797 -0.00089275 0.00054725 7.27111522 0.99727176 0.99856000 0.49306348;
++	-6.27200869 -0.00089250 0.00054709 7.27111619 0.99727255 0.99856041 0.49306360;
++	-6.27200940 -0.00089224 0.00054693 7.27111717 0.99727333 0.99856083 0.49306368;
++	-6.27201012 -0.00089198 0.00054678 7.27111814 0.99727412 0.99856124 0.49306382;
++	-6.27201083 -0.00089172 0.00054662 7.27111911 0.99727491 0.99856166 0.49306389;
++	-6.27201155 -0.00089147 0.00054646 7.27112008 0.99727569 0.99856207 0.49306395;
++	-6.27201226 -0.00089121 0.00054630 7.27112105 0.99727648 0.99856248 0.49306405;
++	-6.27201297 -0.00089095 0.00054615 7.27112202 0.99727726 0.99856290 0.49306415;
++	-6.27201369 -0.00089070 0.00054599 7.27112299 0.99727804 0.99856331 0.49306425;
++	-6.27201440 -0.00089044 0.00054583 7.27112395 0.99727883 0.99856373 0.49306438;
++	-6.27201511 -0.00089019 0.00054568 7.27112492 0.99727961 0.99856414 0.49306445;
++	-6.27201582 -0.00088993 0.00054552 7.27112589 0.99728039 0.99856455 0.49306454;
++	-6.27201653 -0.00088967 0.00054536 7.27112685 0.99728118 0.99856496 0.49306460;
++	-6.27201723 -0.00088942 0.00054520 7.27112782 0.99728196 0.99856538 0.49306473;
++	-6.27201794 -0.00088916 0.00054505 7.27112878 0.99728274 0.99856579 0.49306481;
++	-6.27201865 -0.00088891 0.00054489 7.27112974 0.99728352 0.99856620 0.49306490;
++	-6.27201935 -0.00088865 0.00054473 7.27113070 0.99728430 0.99856661 0.49306499;
++	-6.27202006 -0.00088840 0.00054458 7.27113166 0.99728508 0.99856702 0.49306507;
++	-6.27202076 -0.00088814 0.00054442 7.27113262 0.99728586 0.99856744 0.49306519;
++	-6.27202147 -0.00088789 0.00054427 7.27113358 0.99728664 0.99856785 0.49306522;
++	-6.27202217 -0.00088763 0.00054411 7.27113454 0.99728742 0.99856826 0.49306541;
++	-6.27202287 -0.00088738 0.00054395 7.27113549 0.99728820 0.99856867 0.49306548;
++	-6.27202357 -0.00088713 0.00054380 7.27113645 0.99728897 0.99856908 0.49306558;
++	-6.27202427 -0.00088687 0.00054364 7.27113740 0.99728975 0.99856949 0.49306563;
++	-6.27202497 -0.00088662 0.00054349 7.27113836 0.99729053 0.99856990 0.49306575;
++	-6.27202567 -0.00088636 0.00054333 7.27113931 0.99729130 0.99857031 0.49306582;
++	-6.27202637 -0.00088611 0.00054317 7.27114026 0.99729208 0.99857072 0.49306593;
++	-6.27202707 -0.00088586 0.00054302 7.27114121 0.99729285 0.99857113 0.49306602;
++	-6.27202777 -0.00088560 0.00054286 7.27114216 0.99729363 0.99857153 0.49306615;
++	-6.27202846 -0.00088535 0.00054271 7.27114311 0.99729440 0.99857194 0.49306620;
++	-6.27202916 -0.00088510 0.00054255 7.27114406 0.99729518 0.99857235 0.49306631;
++	-6.27202985 -0.00088484 0.00054240 7.27114501 0.99729595 0.99857276 0.49306638;
++	-6.27203055 -0.00088459 0.00054224 7.27114596 0.99729673 0.99857317 0.49306650;
++	-6.27203124 -0.00088434 0.00054209 7.27114690 0.99729750 0.99857358 0.49306661;
++	-6.27203193 -0.00088409 0.00054193 7.27114785 0.99729827 0.99857398 0.49306664;
++	-6.27203262 -0.00088383 0.00054178 7.27114879 0.99729904 0.99857439 0.49306674;
++	-6.27203332 -0.00088358 0.00054162 7.27114973 0.99729981 0.99857480 0.49306687;
++	-6.27203401 -0.00088333 0.00054147 7.27115068 0.99730059 0.99857520 0.49306699;
++	-6.27203470 -0.00088308 0.00054131 7.27115162 0.99730136 0.99857561 0.49306701;
++	-6.27203539 -0.00088282 0.00054116 7.27115256 0.99730213 0.99857602 0.49306713;
++	-6.27203607 -0.00088257 0.00054100 7.27115350 0.99730290 0.99857642 0.49306721;
++	-6.27203676 -0.00088232 0.00054085 7.27115444 0.99730366 0.99857683 0.49306728;
++	-6.27203745 -0.00088207 0.00054069 7.27115538 0.99730443 0.99857724 0.49306742;
++	-6.27203813 -0.00088182 0.00054054 7.27115632 0.99730520 0.99857764 0.49306753;
++	-6.27203882 -0.00088157 0.00054039 7.27115725 0.99730597 0.99857805 0.49306761;
++	-6.27203950 -0.00088132 0.00054023 7.27115819 0.99730674 0.99857845 0.49306769;
++	-6.27204019 -0.00088107 0.00054008 7.27115912 0.99730750 0.99857886 0.49306776;
++	-6.27204087 -0.00088082 0.00053992 7.27116006 0.99730827 0.99857926 0.49306785;
++	-6.27204156 -0.00088056 0.00053977 7.27116099 0.99730904 0.99857966 0.49306801;
++	-6.27204224 -0.00088031 0.00053962 7.27116192 0.99730980 0.99858007 0.49306813;
++	-6.27204292 -0.00088006 0.00053946 7.27116286 0.99731057 0.99858047 0.49306816;
++	-6.27204360 -0.00087981 0.00053931 7.27116379 0.99731133 0.99858088 0.49306827;
++	-6.27204428 -0.00087956 0.00053916 7.27116472 0.99731210 0.99858128 0.49306833;
++	-6.27204496 -0.00087931 0.00053900 7.27116565 0.99731286 0.99858168 0.49306842;
++	-6.27204564 -0.00087906 0.00053885 7.27116657 0.99731363 0.99858209 0.49306852;
++	-6.27204632 -0.00087881 0.00053870 7.27116750 0.99731439 0.99858249 0.49306865;
++	-6.27204699 -0.00087857 0.00053854 7.27116843 0.99731515 0.99858289 0.49306872;
++	-6.27204767 -0.00087832 0.00053839 7.27116935 0.99731591 0.99858329 0.49306875;
++	-6.27204835 -0.00087807 0.00053824 7.27117028 0.99731668 0.99858369 0.49306889;
++	-6.27204902 -0.00087782 0.00053809 7.27117120 0.99731744 0.99858410 0.49306899;
++	-6.27204970 -0.00087757 0.00053793 7.27117213 0.99731820 0.99858450 0.49306909;
++	-6.27205037 -0.00087732 0.00053778 7.27117305 0.99731896 0.99858490 0.49306915;
++	-6.27205104 -0.00087707 0.00053763 7.27117397 0.99731972 0.99858530 0.49306931;
++	-6.27205172 -0.00087682 0.00053748 7.27117489 0.99732048 0.99858570 0.49306931;
++	-6.27205239 -0.00087658 0.00053732 7.27117581 0.99732124 0.99858610 0.49306947;
++	-6.27205306 -0.00087633 0.00053717 7.27117673 0.99732200 0.99858650 0.49306949;
++	-6.27205373 -0.00087608 0.00053702 7.27117765 0.99732276 0.99858690 0.49306961;
++	-6.27205440 -0.00087583 0.00053687 7.27117857 0.99732351 0.99858730 0.49306974;
++	-6.27205507 -0.00087558 0.00053671 7.27117949 0.99732427 0.99858770 0.49306982;
++	-6.27205574 -0.00087534 0.00053656 7.27118040 0.99732503 0.99858810 0.49306986;
++	-6.27205641 -0.00087509 0.00053641 7.27118132 0.99732579 0.99858850 0.49306997;
++	-6.27205707 -0.00087484 0.00053626 7.27118223 0.99732654 0.99858890 0.49307002;
++	-6.27205774 -0.00087459 0.00053611 7.27118315 0.99732730 0.99858930 0.49307020;
++	-6.27205841 -0.00087435 0.00053596 7.27118406 0.99732805 0.99858970 0.49307021;
++	-6.27205907 -0.00087410 0.00053580 7.27118497 0.99732881 0.99859010 0.49307035;
++	-6.27205974 -0.00087385 0.00053565 7.27118588 0.99732956 0.99859049 0.49307047;
++	-6.27206040 -0.00087361 0.00053550 7.27118679 0.99733032 0.99859089 0.49307051;
++	-6.27206106 -0.00087336 0.00053535 7.27118770 0.99733107 0.99859129 0.49307062;
++	-6.27206173 -0.00087311 0.00053520 7.27118861 0.99733182 0.99859169 0.49307069;
++	-6.27206239 -0.00087287 0.00053505 7.27118952 0.99733258 0.99859208 0.49307080;
++	-6.27206305 -0.00087262 0.00053490 7.27119043 0.99733333 0.99859248 0.49307089;
++	-6.27206371 -0.00087238 0.00053475 7.27119134 0.99733408 0.99859288 0.49307096;
++	-6.27206437 -0.00087213 0.00053460 7.27119224 0.99733483 0.99859327 0.49307103;
++	-6.27206503 -0.00087188 0.00053445 7.27119315 0.99733558 0.99859367 0.49307121;
++	-6.27206569 -0.00087164 0.00053429 7.27119405 0.99733633 0.99859407 0.49307121;
++	-6.27206635 -0.00087139 0.00053414 7.27119496 0.99733709 0.99859446 0.49307131;
++	-6.27206701 -0.00087115 0.00053399 7.27119586 0.99733783 0.99859486 0.49307143;
++	-6.27206767 -0.00087090 0.00053384 7.27119676 0.99733858 0.99859525 0.49307152;
++	-6.27206832 -0.00087066 0.00053369 7.27119766 0.99733933 0.99859565 0.49307163;
++	-6.27206898 -0.00087041 0.00053354 7.27119856 0.99734008 0.99859604 0.49307170;
++	-6.27206963 -0.00087017 0.00053339 7.27119946 0.99734083 0.99859644 0.49307178;
++	-6.27207029 -0.00086992 0.00053324 7.27120036 0.99734158 0.99859683 0.49307182;
++	-6.27207094 -0.00086968 0.00053309 7.27120126 0.99734233 0.99859723 0.49307196;
++	-6.27207160 -0.00086944 0.00053294 7.27120216 0.99734307 0.99859762 0.49307197;
++	-6.27207225 -0.00086919 0.00053279 7.27120306 0.99734382 0.99859802 0.49307220;
++	-6.27207290 -0.00086895 0.00053264 7.27120395 0.99734457 0.99859841 0.49307226;
++	-6.27207355 -0.00086870 0.00053249 7.27120485 0.99734531 0.99859880 0.49307233;
++	-6.27207420 -0.00086846 0.00053234 7.27120574 0.99734606 0.99859920 0.49307241;
++	-6.27207485 -0.00086822 0.00053219 7.27120664 0.99734680 0.99859959 0.49307252;
++	-6.27207550 -0.00086797 0.00053205 7.27120753 0.99734755 0.99859998 0.49307258;
++	-6.27207615 -0.00086773 0.00053190 7.27120842 0.99734829 0.99860037 0.49307271;
++	-6.27207680 -0.00086749 0.00053175 7.27120931 0.99734903 0.99860077 0.49307274;
++	-6.27207745 -0.00086724 0.00053160 7.27121021 0.99734978 0.99860116 0.49307287;
++	-6.27207810 -0.00086700 0.00053145 7.27121110 0.99735052 0.99860155 0.49307293;
++	-6.27207874 -0.00086676 0.00053130 7.27121199 0.99735126 0.99860194 0.49307303;
++	-6.27207939 -0.00086652 0.00053115 7.27121287 0.99735200 0.99860233 0.49307313;
++	-6.27208004 -0.00086627 0.00053100 7.27121376 0.99735275 0.99860273 0.49307325;
++	-6.27208068 -0.00086603 0.00053085 7.27121465 0.99735349 0.99860312 0.49307329;
++	-6.27208132 -0.00086579 0.00053070 7.27121554 0.99735423 0.99860351 0.49307333;
++	-6.27208197 -0.00086555 0.00053056 7.27121642 0.99735497 0.99860390 0.49307349;
++	-6.27208261 -0.00086530 0.00053041 7.27121731 0.99735571 0.99860429 0.49307355;
++	-6.27208325 -0.00086506 0.00053026 7.27121819 0.99735645 0.99860468 0.49307366;
++	-6.27208390 -0.00086482 0.00053011 7.27121907 0.99735719 0.99860507 0.49307376;
++	-6.27208454 -0.00086458 0.00052996 7.27121996 0.99735792 0.99860546 0.49307384;
++	-6.27208518 -0.00086434 0.00052981 7.27122084 0.99735866 0.99860585 0.49307389;
++	-6.27208582 -0.00086410 0.00052967 7.27122172 0.99735940 0.99860624 0.49307398;
++	-6.27208646 -0.00086386 0.00052952 7.27122260 0.99736014 0.99860663 0.49307410;
++	-6.27208710 -0.00086361 0.00052937 7.27122348 0.99736088 0.99860701 0.49307418;
++	-6.27208774 -0.00086337 0.00052922 7.27122436 0.99736161 0.99860740 0.49307431;
++	-6.27208837 -0.00086313 0.00052908 7.27122524 0.99736235 0.99860779 0.49307430;
++	-6.27208901 -0.00086289 0.00052893 7.27122612 0.99736308 0.99860818 0.49307450;
++	-6.27208965 -0.00086265 0.00052878 7.27122700 0.99736382 0.99860857 0.49307452;
++	-6.27209028 -0.00086241 0.00052863 7.27122787 0.99736455 0.99860896 0.49307461;
++	-6.27209092 -0.00086217 0.00052849 7.27122875 0.99736529 0.99860934 0.49307473;
++	-6.27209155 -0.00086193 0.00052834 7.27122962 0.99736602 0.99860973 0.49307476;
++	-6.27209219 -0.00086169 0.00052819 7.27123050 0.99736676 0.99861012 0.49307493;
++	-6.27209282 -0.00086145 0.00052804 7.27123137 0.99736749 0.99861050 0.49307491;
++	-6.27209346 -0.00086121 0.00052790 7.27123224 0.99736822 0.99861089 0.49307506;
++	-6.27209409 -0.00086097 0.00052775 7.27123312 0.99736896 0.99861128 0.49307515;
++	-6.27209472 -0.00086073 0.00052760 7.27123399 0.99736969 0.99861166 0.49307527;
++	-6.27209535 -0.00086049 0.00052746 7.27123486 0.99737042 0.99861205 0.49307528;
++	-6.27209598 -0.00086025 0.00052731 7.27123573 0.99737115 0.99861244 0.49307544;
++	-6.27209661 -0.00086002 0.00052716 7.27123660 0.99737188 0.99861282 0.49307551;
++	-6.27209724 -0.00085978 0.00052702 7.27123747 0.99737261 0.99861321 0.49307555;
++	-6.27209787 -0.00085954 0.00052687 7.27123833 0.99737334 0.99861359 0.49307566;
++	-6.27209850 -0.00085930 0.00052672 7.27123920 0.99737407 0.99861398 0.49307570;
++	-6.27209913 -0.00085906 0.00052658 7.27124007 0.99737480 0.99861436 0.49307581;
++	-6.27209976 -0.00085882 0.00052643 7.27124094 0.99737553 0.99861475 0.49307599;
++	-6.27210038 -0.00085858 0.00052628 7.27124180 0.99737626 0.99861513 0.49307598;
++	-6.27210101 -0.00085835 0.00052614 7.27124266 0.99737699 0.99861551 0.49307614;
++	-6.27210164 -0.00085811 0.00052599 7.27124353 0.99737771 0.99861590 0.49307614;
++	-6.27210226 -0.00085787 0.00052585 7.27124439 0.99737844 0.99861628 0.49307625;
++	-6.27210289 -0.00085763 0.00052570 7.27124525 0.99737917 0.99861667 0.49307637;
++	-6.27210351 -0.00085740 0.00052555 7.27124612 0.99737989 0.99861705 0.49307645;
++	-6.27210414 -0.00085716 0.00052541 7.27124698 0.99738062 0.99861743 0.49307653;
++	-6.27210476 -0.00085692 0.00052526 7.27124784 0.99738135 0.99861782 0.49307663;
++	-6.27210538 -0.00085668 0.00052512 7.27124870 0.99738207 0.99861820 0.49307669;
++	-6.27210600 -0.00085645 0.00052497 7.27124956 0.99738280 0.99861858 0.49307677;
++	-6.27210663 -0.00085621 0.00052483 7.27125042 0.99738352 0.99861896 0.49307688;
++	-6.27210725 -0.00085597 0.00052468 7.27125127 0.99738424 0.99861934 0.49307699;
++	-6.27210787 -0.00085574 0.00052454 7.27125213 0.99738497 0.99861973 0.49307706;
++	-6.27210849 -0.00085550 0.00052439 7.27125299 0.99738569 0.99862011 0.49307704;
++	-6.27210911 -0.00085526 0.00052425 7.27125384 0.99738641 0.99862049 0.49307723;
++	-6.27210973 -0.00085503 0.00052410 7.27125470 0.99738714 0.99862087 0.49307731;
++	-6.27211034 -0.00085479 0.00052396 7.27125555 0.99738786 0.99862125 0.49307742;
++	-6.27211096 -0.00085456 0.00052381 7.27125641 0.99738858 0.99862163 0.49307753;
++	-6.27211158 -0.00085432 0.00052367 7.27125726 0.99738930 0.99862201 0.49307753;
++	-6.27211220 -0.00085408 0.00052352 7.27125811 0.99739002 0.99862239 0.49307764;
++	-6.27211281 -0.00085385 0.00052338 7.27125896 0.99739074 0.99862277 0.49307770;
++	-6.27211343 -0.00085361 0.00052323 7.27125981 0.99739146 0.99862315 0.49307780;
++	-6.27211404 -0.00085338 0.00052309 7.27126067 0.99739218 0.99862353 0.49307792;
++	-6.27211466 -0.00085314 0.00052295 7.27126152 0.99739290 0.99862391 0.49307794;
++	-6.27211527 -0.00085291 0.00052280 7.27126236 0.99739362 0.99862429 0.49307803;
++	-6.27211589 -0.00085267 0.00052266 7.27126321 0.99739434 0.99862467 0.49307820;
++	-6.27211650 -0.00085244 0.00052251 7.27126406 0.99739506 0.99862505 0.49307827;
++	-6.27211711 -0.00085220 0.00052237 7.27126491 0.99739577 0.99862543 0.49307830;
++	-6.27211772 -0.00085197 0.00052222 7.27126575 0.99739649 0.99862581 0.49307839;
++	-6.27211833 -0.00085173 0.00052208 7.27126660 0.99739721 0.99862618 0.49307851;
++	-6.27211895 -0.00085150 0.00052194 7.27126745 0.99739792 0.99862656 0.49307861;
++	-6.27211956 -0.00085127 0.00052179 7.27126829 0.99739864 0.99862694 0.49307868;
++	-6.27212017 -0.00085103 0.00052165 7.27126913 0.99739936 0.99862732 0.49307878;
++	-6.27212078 -0.00085080 0.00052151 7.27126998 0.99740007 0.99862770 0.49307884;
++	-6.27212138 -0.00085056 0.00052136 7.27127082 0.99740079 0.99862807 0.49307888;
++	-6.27212199 -0.00085033 0.00052122 7.27127166 0.99740150 0.99862845 0.49307902;
++	-6.27212260 -0.00085010 0.00052108 7.27127250 0.99740221 0.99862883 0.49307911;
++	-6.27212321 -0.00084986 0.00052093 7.27127334 0.99740293 0.99862920 0.49307920;
++	-6.27212381 -0.00084963 0.00052079 7.27127418 0.99740364 0.99862958 0.49307926;
++	-6.27212442 -0.00084940 0.00052065 7.27127502 0.99740435 0.99862996 0.49307935;
++	-6.27212503 -0.00084916 0.00052050 7.27127586 0.99740507 0.99863033 0.49307944;
++	-6.27212563 -0.00084893 0.00052036 7.27127670 0.99740578 0.99863071 0.49307944;
++	-6.27212624 -0.00084870 0.00052022 7.27127754 0.99740649 0.99863108 0.49307954;
++	-6.27212684 -0.00084847 0.00052008 7.27127837 0.99740720 0.99863146 0.49307961;
++	-6.27212744 -0.00084823 0.00051993 7.27127921 0.99740791 0.99863183 0.49307978;
++	-6.27212805 -0.00084800 0.00051979 7.27128005 0.99740862 0.99863221 0.49307983;
++	-6.27212865 -0.00084777 0.00051965 7.27128088 0.99740933 0.99863258 0.49307996;
++	-6.27212925 -0.00084754 0.00051951 7.27128172 0.99741004 0.99863296 0.49308005;
++	-6.27212986 -0.00084730 0.00051936 7.27128255 0.99741075 0.99863333 0.49308014;
++	-6.27213046 -0.00084707 0.00051922 7.27128338 0.99741146 0.99863371 0.49308018;
++	-6.27213106 -0.00084684 0.00051908 7.27128422 0.99741217 0.99863408 0.49308030;
++	-6.27213166 -0.00084661 0.00051894 7.27128505 0.99741288 0.99863445 0.49308040;
++	-6.27213226 -0.00084638 0.00051879 7.27128588 0.99741359 0.99863483 0.49308040;
++	-6.27213286 -0.00084615 0.00051865 7.27128671 0.99741429 0.99863520 0.49308050;
++	-6.27213345 -0.00084592 0.00051851 7.27128754 0.99741500 0.99863557 0.49308061;
++	-6.27213405 -0.00084568 0.00051837 7.27128837 0.99741571 0.99863595 0.49308064;
++	-6.27213465 -0.00084545 0.00051823 7.27128920 0.99741641 0.99863632 0.49308083;
++	-6.27213525 -0.00084522 0.00051809 7.27129003 0.99741712 0.99863669 0.49308089;
++	-6.27213585 -0.00084499 0.00051794 7.27129085 0.99741783 0.99863706 0.49308103;
++	-6.27213644 -0.00084476 0.00051780 7.27129168 0.99741853 0.99863744 0.49308104;
++	-6.27213704 -0.00084453 0.00051766 7.27129251 0.99741924 0.99863781 0.49308114;
++	-6.27213763 -0.00084430 0.00051752 7.27129333 0.99741994 0.99863818 0.49308122;
++	-6.27213823 -0.00084407 0.00051738 7.27129416 0.99742064 0.99863855 0.49308125;
++	-6.27213882 -0.00084384 0.00051724 7.27129498 0.99742135 0.99863892 0.49308128;
++	-6.27213942 -0.00084361 0.00051710 7.27129581 0.99742205 0.99863929 0.49308149;
++	-6.27214001 -0.00084338 0.00051696 7.27129663 0.99742275 0.99863966 0.49308153;
++	-6.27214060 -0.00084315 0.00051681 7.27129745 0.99742346 0.99864003 0.49308160;
++	-6.27214120 -0.00084292 0.00051667 7.27129827 0.99742416 0.99864041 0.49308174;
++	-6.27214179 -0.00084269 0.00051653 7.27129910 0.99742486 0.99864078 0.49308171;
++	-6.27214238 -0.00084246 0.00051639 7.27129992 0.99742556 0.99864115 0.49308189;
++	-6.27214297 -0.00084223 0.00051625 7.27130074 0.99742626 0.99864152 0.49308189;
++	-6.27214356 -0.00084200 0.00051611 7.27130156 0.99742696 0.99864188 0.49308208;
++	-6.27214415 -0.00084178 0.00051597 7.27130237 0.99742766 0.99864225 0.49308218;
++	-6.27214474 -0.00084155 0.00051583 7.27130319 0.99742836 0.99864262 0.49308217;
++	-6.27214533 -0.00084132 0.00051569 7.27130401 0.99742906 0.99864299 0.49308225;
++	-6.27214592 -0.00084109 0.00051555 7.27130483 0.99742976 0.99864336 0.49308239;
++	-6.27214651 -0.00084086 0.00051541 7.27130564 0.99743046 0.99864373 0.49308247;
++	-6.27214709 -0.00084063 0.00051527 7.27130646 0.99743116 0.99864410 0.49308255;
++	-6.27214768 -0.00084040 0.00051513 7.27130728 0.99743186 0.99864447 0.49308258;
++	-6.27214827 -0.00084018 0.00051499 7.27130809 0.99743255 0.99864483 0.49308266;
++	-6.27214885 -0.00083995 0.00051485 7.27130891 0.99743325 0.99864520 0.49308274;
++	-6.27214944 -0.00083972 0.00051471 7.27130972 0.99743395 0.99864557 0.49308290;
++	-6.27215002 -0.00083949 0.00051457 7.27131053 0.99743464 0.99864594 0.49308290;
++	-6.27215061 -0.00083926 0.00051443 7.27131134 0.99743534 0.99864631 0.49308300;
++	-6.27215119 -0.00083904 0.00051429 7.27131216 0.99743604 0.99864667 0.49308315;
++	-6.27215178 -0.00083881 0.00051415 7.27131297 0.99743673 0.99864704 0.49308314;
++	-6.27215236 -0.00083858 0.00051401 7.27131378 0.99743743 0.99864741 0.49308324;
++	-6.27215294 -0.00083836 0.00051387 7.27131459 0.99743812 0.99864777 0.49308338;
++	-6.27215353 -0.00083813 0.00051373 7.27131540 0.99743881 0.99864814 0.49308338;
++	-6.27215411 -0.00083790 0.00051359 7.27131621 0.99743951 0.99864850 0.49308350;
++	-6.27215469 -0.00083768 0.00051345 7.27131702 0.99744020 0.99864887 0.49308357;
++	-6.27215527 -0.00083745 0.00051332 7.27131782 0.99744089 0.99864924 0.49308374;
++	-6.27215585 -0.00083722 0.00051318 7.27131863 0.99744159 0.99864960 0.49308379;
++	-6.27215643 -0.00083700 0.00051304 7.27131944 0.99744228 0.99864997 0.49308384;
++	-6.27215701 -0.00083677 0.00051290 7.27132024 0.99744297 0.99865033 0.49308393;
++	-6.27215759 -0.00083654 0.00051276 7.27132105 0.99744366 0.99865070 0.49308399;
++	-6.27215817 -0.00083632 0.00051262 7.27132185 0.99744435 0.99865106 0.49308412;
++	-6.27215875 -0.00083609 0.00051248 7.27132266 0.99744504 0.99865143 0.49308421;
++	-6.27215933 -0.00083587 0.00051234 7.27132346 0.99744574 0.99865179 0.49308425;
++	-6.27215990 -0.00083564 0.00051221 7.27132426 0.99744643 0.99865215 0.49308434;
++	-6.27216048 -0.00083541 0.00051207 7.27132507 0.99744711 0.99865252 0.49308442;
++	-6.27216106 -0.00083519 0.00051193 7.27132587 0.99744780 0.99865288 0.49308450;
++	-6.27216164 -0.00083496 0.00051179 7.27132667 0.99744849 0.99865324 0.49308461;
++	-6.27216221 -0.00083474 0.00051165 7.27132747 0.99744918 0.99865361 0.49308467;
++	-6.27216279 -0.00083451 0.00051151 7.27132827 0.99744987 0.99865397 0.49308473;
++	-6.27216336 -0.00083429 0.00051138 7.27132907 0.99745056 0.99865433 0.49308483;
++	-6.27216394 -0.00083406 0.00051124 7.27132987 0.99745124 0.99865470 0.49308489;
++	-6.27216451 -0.00083384 0.00051110 7.27133067 0.99745193 0.99865506 0.49308501;
++	-6.27216508 -0.00083361 0.00051096 7.27133147 0.99745262 0.99865542 0.49308509;
++	-6.27216566 -0.00083339 0.00051083 7.27133227 0.99745330 0.99865578 0.49308519;
++	-6.27216623 -0.00083317 0.00051069 7.27133306 0.99745399 0.99865615 0.49308520;
++	-6.27216680 -0.00083294 0.00051055 7.27133386 0.99745468 0.99865651 0.49308532;
++	-6.27216737 -0.00083272 0.00051041 7.27133465 0.99745536 0.99865687 0.49308537;
++	-6.27216794 -0.00083249 0.00051028 7.27133545 0.99745605 0.99865723 0.49308548;
++	-6.27216851 -0.00083227 0.00051014 7.27133624 0.99745673 0.99865759 0.49308555;
++	-6.27216909 -0.00083205 0.00051000 7.27133704 0.99745741 0.99865795 0.49308568;
++	-6.27216966 -0.00083182 0.00050986 7.27133783 0.99745810 0.99865831 0.49308575;
++	-6.27217022 -0.00083160 0.00050973 7.27133863 0.99745878 0.99865867 0.49308580;
++	-6.27217079 -0.00083138 0.00050959 7.27133942 0.99745946 0.99865903 0.49308589;
++	-6.27217136 -0.00083115 0.00050945 7.27134021 0.99746015 0.99865939 0.49308593;
++	-6.27217193 -0.00083093 0.00050932 7.27134100 0.99746083 0.99865975 0.49308603;
++	-6.27217250 -0.00083071 0.00050918 7.27134179 0.99746151 0.99866011 0.49308603;
++	-6.27217307 -0.00083048 0.00050904 7.27134258 0.99746219 0.99866047 0.49308626;
++	-6.27217363 -0.00083026 0.00050891 7.27134337 0.99746287 0.99866083 0.49308628;
++	-6.27217420 -0.00083004 0.00050877 7.27134416 0.99746355 0.99866119 0.49308633;
++	-6.27217477 -0.00082982 0.00050863 7.27134495 0.99746424 0.99866155 0.49308648;
++	-6.27217533 -0.00082959 0.00050850 7.27134574 0.99746492 0.99866191 0.49308650;
++	-6.27217590 -0.00082937 0.00050836 7.27134653 0.99746559 0.99866227 0.49308659;
++	-6.27217646 -0.00082915 0.00050822 7.27134731 0.99746627 0.99866263 0.49308664;
++	-6.27217703 -0.00082893 0.00050809 7.27134810 0.99746695 0.99866299 0.49308674;
++	-6.27217759 -0.00082871 0.00050795 7.27134888 0.99746763 0.99866334 0.49308688;
++	-6.27217815 -0.00082848 0.00050782 7.27134967 0.99746831 0.99866370 0.49308691;
++	-6.27217872 -0.00082826 0.00050768 7.27135045 0.99746899 0.99866406 0.49308700;
++	-6.27217928 -0.00082804 0.00050754 7.27135124 0.99746967 0.99866442 0.49308706;
++	-6.27217984 -0.00082782 0.00050741 7.27135202 0.99747034 0.99866477 0.49308711;
++	-6.27218040 -0.00082760 0.00050727 7.27135281 0.99747102 0.99866513 0.49308731;
++	-6.27218097 -0.00082738 0.00050714 7.27135359 0.99747170 0.99866549 0.49308733;
++	-6.27218153 -0.00082716 0.00050700 7.27135437 0.99747237 0.99866584 0.49308746;
++	-6.27218209 -0.00082693 0.00050686 7.27135515 0.99747305 0.99866620 0.49308753;
++	-6.27218265 -0.00082671 0.00050673 7.27135593 0.99747372 0.99866656 0.49308759;
++	-6.27218321 -0.00082649 0.00050659 7.27135671 0.99747440 0.99866691 0.49308757;
++	-6.27218377 -0.00082627 0.00050646 7.27135749 0.99747507 0.99866727 0.49308770;
++	-6.27218433 -0.00082605 0.00050632 7.27135827 0.99747575 0.99866763 0.49308772;
++	-6.27218488 -0.00082583 0.00050619 7.27135905 0.99747642 0.99866798 0.49308784;
++	-6.27218544 -0.00082561 0.00050605 7.27135983 0.99747709 0.99866834 0.49308794;
++	-6.27218600 -0.00082539 0.00050592 7.27136061 0.99747777 0.99866869 0.49308810;
++	-6.27218656 -0.00082517 0.00050578 7.27136139 0.99747844 0.99866905 0.49308812;
++	-6.27218711 -0.00082495 0.00050565 7.27136216 0.99747911 0.99866940 0.49308821;
++	-6.27218767 -0.00082473 0.00050551 7.27136294 0.99747978 0.99866976 0.49308825;
++	-6.27218823 -0.00082451 0.00050538 7.27136371 0.99748046 0.99867011 0.49308833;
++	-6.27218878 -0.00082429 0.00050524 7.27136449 0.99748113 0.99867046 0.49308847;
++	-6.27218934 -0.00082407 0.00050511 7.27136526 0.99748180 0.99867082 0.49308860;
++	-6.27218989 -0.00082385 0.00050497 7.27136604 0.99748247 0.99867117 0.49308859;
++	-6.27219045 -0.00082363 0.00050484 7.27136681 0.99748314 0.99867153 0.49308869;
++	-6.27219100 -0.00082341 0.00050471 7.27136759 0.99748381 0.99867188 0.49308873;
++	-6.27219155 -0.00082320 0.00050457 7.27136836 0.99748448 0.99867223 0.49308878;
++	-6.27219211 -0.00082298 0.00050444 7.27136913 0.99748515 0.99867259 0.49308888;
++	-6.27219266 -0.00082276 0.00050430 7.27136990 0.99748582 0.99867294 0.49308897;
++	-6.27219321 -0.00082254 0.00050417 7.27137067 0.99748649 0.99867329 0.49308901;
++	-6.27219376 -0.00082232 0.00050403 7.27137144 0.99748715 0.99867364 0.49308913;
++	-6.27219432 -0.00082210 0.00050390 7.27137221 0.99748782 0.99867400 0.49308916;
++	-6.27219487 -0.00082188 0.00050377 7.27137298 0.99748849 0.99867435 0.49308935;
++	-6.27219542 -0.00082167 0.00050363 7.27137375 0.99748916 0.99867470 0.49308938;
++	-6.27219597 -0.00082145 0.00050350 7.27137452 0.99748982 0.99867505 0.49308944;
++	-6.27219652 -0.00082123 0.00050337 7.27137529 0.99749049 0.99867540 0.49308959;
++	-6.27219707 -0.00082101 0.00050323 7.27137606 0.99749116 0.99867576 0.49308961;
++	-6.27219762 -0.00082080 0.00050310 7.27137682 0.99749182 0.99867611 0.49308966;
++	-6.27219817 -0.00082058 0.00050296 7.27137759 0.99749249 0.99867646 0.49308979;
++	-6.27219872 -0.00082036 0.00050283 7.27137836 0.99749315 0.99867681 0.49308985;
++	-6.27219926 -0.00082014 0.00050270 7.27137912 0.99749382 0.99867716 0.49308989;
++	-6.27219981 -0.00081993 0.00050256 7.27137989 0.99749448 0.99867751 0.49309002;
++	-6.27220036 -0.00081971 0.00050243 7.27138065 0.99749514 0.99867786 0.49309006;
++	-6.27220091 -0.00081949 0.00050230 7.27138141 0.99749581 0.99867821 0.49309016;
++	-6.27220145 -0.00081927 0.00050216 7.27138218 0.99749647 0.99867856 0.49309022;
++	-6.27220200 -0.00081906 0.00050203 7.27138294 0.99749713 0.99867891 0.49309028;
++	-6.27220254 -0.00081884 0.00050190 7.27138370 0.99749780 0.99867926 0.49309037;
++	-6.27220309 -0.00081862 0.00050177 7.27138446 0.99749846 0.99867961 0.49309053;
++	-6.27220363 -0.00081841 0.00050163 7.27138523 0.99749912 0.99867996 0.49309055;
++	-6.27220418 -0.00081819 0.00050150 7.27138599 0.99749978 0.99868031 0.49309069;
++	-6.27220472 -0.00081798 0.00050137 7.27138675 0.99750044 0.99868066 0.49309070;
++	-6.27220527 -0.00081776 0.00050124 7.27138751 0.99750110 0.99868100 0.49309083;
++	-6.27220581 -0.00081754 0.00050110 7.27138827 0.99750176 0.99868135 0.49309090;
++	-6.27220635 -0.00081733 0.00050097 7.27138902 0.99750242 0.99868170 0.49309098;
++	-6.27220690 -0.00081711 0.00050084 7.27138978 0.99750308 0.99868205 0.49309101;
++	-6.27220744 -0.00081690 0.00050071 7.27139054 0.99750374 0.99868240 0.49309113;
++	-6.27220798 -0.00081668 0.00050057 7.27139130 0.99750440 0.99868275 0.49309116;
++	-6.27220852 -0.00081647 0.00050044 7.27139205 0.99750506 0.99868309 0.49309123;
++	-6.27220906 -0.00081625 0.00050031 7.27139281 0.99750572 0.99868344 0.49309142;
++	-6.27220960 -0.00081604 0.00050018 7.27139357 0.99750638 0.99868379 0.49309142;
++	-6.27221014 -0.00081582 0.00050005 7.27139432 0.99750703 0.99868413 0.49309146;
++	-6.27221068 -0.00081561 0.00049991 7.27139508 0.99750769 0.99868448 0.49309158;
++	-6.27221122 -0.00081539 0.00049978 7.27139583 0.99750835 0.99868483 0.49309166;
++	-6.27221176 -0.00081518 0.00049965 7.27139659 0.99750901 0.99868517 0.49309171;
++	-6.27221230 -0.00081496 0.00049952 7.27139734 0.99750966 0.99868552 0.49309183;
++	-6.27221284 -0.00081475 0.00049939 7.27139809 0.99751032 0.99868587 0.49309186;
++	-6.27221338 -0.00081453 0.00049926 7.27139884 0.99751097 0.99868621 0.49309196;
++	-6.27221391 -0.00081432 0.00049912 7.27139960 0.99751163 0.99868656 0.49309197;
++	-6.27221445 -0.00081410 0.00049899 7.27140035 0.99751228 0.99868690 0.49309212;
++	-6.27221499 -0.00081389 0.00049886 7.27140110 0.99751294 0.99868725 0.49309226;
++	-6.27221552 -0.00081368 0.00049873 7.27140185 0.99751359 0.99868759 0.49309233;
++	-6.27221606 -0.00081346 0.00049860 7.27140260 0.99751425 0.99868794 0.49309240;
++	-6.27221660 -0.00081325 0.00049847 7.27140335 0.99751490 0.99868828 0.49309241;
++	-6.27221713 -0.00081303 0.00049834 7.27140410 0.99751555 0.99868863 0.49309250;
++	-6.27221767 -0.00081282 0.00049821 7.27140485 0.99751621 0.99868897 0.49309252;
++	-6.27221820 -0.00081261 0.00049807 7.27140559 0.99751686 0.99868932 0.49309262;
++	-6.27221874 -0.00081239 0.00049794 7.27140634 0.99751751 0.99868966 0.49309274;
++	-6.27221927 -0.00081218 0.00049781 7.27140709 0.99751816 0.99869001 0.49309277;
++	-6.27221980 -0.00081197 0.00049768 7.27140784 0.99751881 0.99869035 0.49309287;
++	-6.27222034 -0.00081176 0.00049755 7.27140858 0.99751946 0.99869069 0.49309295;
++	-6.27222087 -0.00081154 0.00049742 7.27140933 0.99752012 0.99869104 0.49309305;
++	-6.27222140 -0.00081133 0.00049729 7.27141007 0.99752077 0.99869138 0.49309311;
++	-6.27222193 -0.00081112 0.00049716 7.27141082 0.99752142 0.99869172 0.49309317;
++	-6.27222247 -0.00081090 0.00049703 7.27141156 0.99752207 0.99869207 0.49309328;
++	-6.27222300 -0.00081069 0.00049690 7.27141230 0.99752271 0.99869241 0.49309332;
++	-6.27222353 -0.00081048 0.00049677 7.27141305 0.99752336 0.99869275 0.49309344;
++	-6.27222406 -0.00081027 0.00049664 7.27141379 0.99752401 0.99869309 0.49309341;
++	-6.27222459 -0.00081006 0.00049651 7.27141453 0.99752466 0.99869344 0.49309354;
++	-6.27222512 -0.00080984 0.00049638 7.27141527 0.99752531 0.99869378 0.49309361;
++	-6.27222565 -0.00080963 0.00049625 7.27141602 0.99752596 0.99869412 0.49309375;
++	-6.27222618 -0.00080942 0.00049612 7.27141676 0.99752660 0.99869446 0.49309380;
++	-6.27222671 -0.00080921 0.00049599 7.27141750 0.99752725 0.99869480 0.49309382;
++	-6.27222723 -0.00080900 0.00049586 7.27141824 0.99752790 0.99869514 0.49309395;
++	-6.27222776 -0.00080879 0.00049573 7.27141898 0.99752854 0.99869548 0.49309403;
++	-6.27222829 -0.00080857 0.00049560 7.27141972 0.99752919 0.99869582 0.49309409;
++	-6.27222882 -0.00080836 0.00049547 7.27142045 0.99752984 0.99869617 0.49309410;
++	-6.27222934 -0.00080815 0.00049534 7.27142119 0.99753048 0.99869651 0.49309425;
++	-6.27222987 -0.00080794 0.00049521 7.27142193 0.99753113 0.99869685 0.49309434;
++	-6.27223040 -0.00080773 0.00049508 7.27142267 0.99753177 0.99869719 0.49309443;
++	-6.27223092 -0.00080752 0.00049495 7.27142340 0.99753241 0.99869753 0.49309447;
++	-6.27223145 -0.00080731 0.00049482 7.27142414 0.99753306 0.99869787 0.49309457;
++	-6.27223197 -0.00080710 0.00049469 7.27142488 0.99753370 0.99869821 0.49309459;
++	-6.27223250 -0.00080689 0.00049457 7.27142561 0.99753435 0.99869855 0.49309463;
++	-6.27223302 -0.00080668 0.00049444 7.27142635 0.99753499 0.99869888 0.49309473;
++	-6.27223355 -0.00080647 0.00049431 7.27142708 0.99753563 0.99869922 0.49309486;
++	-6.27223407 -0.00080626 0.00049418 7.27142781 0.99753627 0.99869956 0.49309496;
++	-6.27223460 -0.00080605 0.00049405 7.27142855 0.99753692 0.99869990 0.49309501;
++	-6.27223512 -0.00080584 0.00049392 7.27142928 0.99753756 0.99870024 0.49309506;
++	-6.27223564 -0.00080563 0.00049379 7.27143001 0.99753820 0.99870058 0.49309510;
++	-6.27223616 -0.00080542 0.00049366 7.27143074 0.99753884 0.99870092 0.49309524;
++	-6.27223669 -0.00080521 0.00049354 7.27143148 0.99753948 0.99870125 0.49309538;
++	-6.27223721 -0.00080500 0.00049341 7.27143221 0.99754012 0.99870159 0.49309541;
++	-6.27223773 -0.00080479 0.00049328 7.27143294 0.99754076 0.99870193 0.49309547;
++	-6.27223825 -0.00080458 0.00049315 7.27143367 0.99754140 0.99870227 0.49309552;
++	-6.27223877 -0.00080437 0.00049302 7.27143440 0.99754204 0.99870260 0.49309562;
++	-6.27223929 -0.00080416 0.00049289 7.27143513 0.99754268 0.99870294 0.49309564;
++	-6.27223981 -0.00080395 0.00049277 7.27143586 0.99754332 0.99870328 0.49309575;
++	-6.27224033 -0.00080375 0.00049264 7.27143658 0.99754395 0.99870362 0.49309585;
++	-6.27224085 -0.00080354 0.00049251 7.27143731 0.99754459 0.99870395 0.49309591;
++	-6.27224137 -0.00080333 0.00049238 7.27143804 0.99754523 0.99870429 0.49309595;
++	-6.27224189 -0.00080312 0.00049225 7.27143877 0.99754587 0.99870463 0.49309610;
++	-6.27224241 -0.00080291 0.00049213 7.27143949 0.99754650 0.99870496 0.49309609;
++	-6.27224292 -0.00080270 0.00049200 7.27144022 0.99754714 0.99870530 0.49309625;
++	-6.27224344 -0.00080250 0.00049187 7.27144094 0.99754778 0.99870563 0.49309625;
++	-6.27224396 -0.00080229 0.00049174 7.27144167 0.99754841 0.99870597 0.49309632;
++	-6.27224447 -0.00080208 0.00049162 7.27144239 0.99754905 0.99870630 0.49309639;
++	-6.27224499 -0.00080187 0.00049149 7.27144312 0.99754968 0.99870664 0.49309648;
++	-6.27224551 -0.00080166 0.00049136 7.27144384 0.99755032 0.99870697 0.49309655;
++	-6.27224602 -0.00080146 0.00049123 7.27144457 0.99755095 0.99870731 0.49309667;
++	-6.27224654 -0.00080125 0.00049111 7.27144529 0.99755159 0.99870764 0.49309666;
++	-6.27224705 -0.00080104 0.00049098 7.27144601 0.99755222 0.99870798 0.49309679;
++	-6.27224757 -0.00080084 0.00049085 7.27144673 0.99755286 0.99870831 0.49309687;
++	-6.27224808 -0.00080063 0.00049072 7.27144746 0.99755349 0.99870865 0.49309695;
++	-6.27224860 -0.00080042 0.00049060 7.27144818 0.99755412 0.99870898 0.49309704;
++	-6.27224911 -0.00080021 0.00049047 7.27144890 0.99755476 0.99870932 0.49309706;
++	-6.27224962 -0.00080001 0.00049034 7.27144962 0.99755539 0.99870965 0.49309713;
++	-6.27225014 -0.00079980 0.00049022 7.27145034 0.99755602 0.99870998 0.49309722;
++	-6.27225065 -0.00079959 0.00049009 7.27145106 0.99755665 0.99871032 0.49309728;
++	-6.27225116 -0.00079939 0.00048996 7.27145178 0.99755728 0.99871065 0.49309738;
++	-6.27225168 -0.00079918 0.00048984 7.27145249 0.99755791 0.99871098 0.49309747;
++	-6.27225219 -0.00079897 0.00048971 7.27145321 0.99755854 0.99871131 0.49309753;
++	-6.27225270 -0.00079877 0.00048958 7.27145393 0.99755918 0.99871165 0.49309771;
++	-6.27225321 -0.00079856 0.00048946 7.27145465 0.99755981 0.99871198 0.49309765;
++	-6.27225372 -0.00079836 0.00048933 7.27145536 0.99756044 0.99871231 0.49309782;
++	-6.27225423 -0.00079815 0.00048921 7.27145608 0.99756106 0.99871264 0.49309784;
++	-6.27225474 -0.00079795 0.00048908 7.27145680 0.99756169 0.99871298 0.49309793;
++	-6.27225525 -0.00079774 0.00048895 7.27145751 0.99756232 0.99871331 0.49309799;
++	-6.27225576 -0.00079753 0.00048883 7.27145823 0.99756295 0.99871364 0.49309812;
++	-6.27225627 -0.00079733 0.00048870 7.27145894 0.99756358 0.99871397 0.49309805;
++	-6.27225678 -0.00079712 0.00048857 7.27145966 0.99756421 0.99871430 0.49309821;
++	-6.27225729 -0.00079692 0.00048845 7.27146037 0.99756483 0.99871463 0.49309831;
++	-6.27225780 -0.00079671 0.00048832 7.27146108 0.99756546 0.99871496 0.49309836;
++	-6.27225830 -0.00079651 0.00048820 7.27146180 0.99756609 0.99871529 0.49309842;
++	-6.27225881 -0.00079630 0.00048807 7.27146251 0.99756671 0.99871563 0.49309856;
++	-6.27225932 -0.00079610 0.00048795 7.27146322 0.99756734 0.99871596 0.49309861;
++	-6.27225983 -0.00079589 0.00048782 7.27146393 0.99756797 0.99871629 0.49309861;
++	-6.27226033 -0.00079569 0.00048769 7.27146464 0.99756859 0.99871662 0.49309873;
++	-6.27226084 -0.00079548 0.00048757 7.27146535 0.99756922 0.99871695 0.49309877;
++	-6.27226134 -0.00079528 0.00048744 7.27146606 0.99756984 0.99871728 0.49309886;
++	-6.27226185 -0.00079508 0.00048732 7.27146677 0.99757047 0.99871761 0.49309893;
++	-6.27226235 -0.00079487 0.00048719 7.27146748 0.99757109 0.99871793 0.49309902;
++	-6.27226286 -0.00079467 0.00048707 7.27146819 0.99757172 0.99871826 0.49309912;
++	-6.27226336 -0.00079446 0.00048694 7.27146890 0.99757234 0.99871859 0.49309921;
++	-6.27226387 -0.00079426 0.00048682 7.27146961 0.99757296 0.99871892 0.49309921;
++	-6.27226437 -0.00079406 0.00048669 7.27147032 0.99757359 0.99871925 0.49309928;
++	-6.27226488 -0.00079385 0.00048657 7.27147102 0.99757421 0.99871958 0.49309939;
++	-6.27226538 -0.00079365 0.00048644 7.27147173 0.99757483 0.99871991 0.49309945;
++	-6.27226588 -0.00079345 0.00048632 7.27147244 0.99757545 0.99872024 0.49309958;
++	-6.27226639 -0.00079324 0.00048619 7.27147314 0.99757607 0.99872056 0.49309958;
++	-6.27226689 -0.00079304 0.00048607 7.27147385 0.99757670 0.99872089 0.49309961;
++	-6.27226739 -0.00079284 0.00048594 7.27147455 0.99757732 0.99872122 0.49309967;
++	-6.27226789 -0.00079263 0.00048582 7.27147526 0.99757794 0.99872155 0.49309986;
++	-6.27226839 -0.00079243 0.00048570 7.27147596 0.99757856 0.99872187 0.49309996;
++	-6.27226889 -0.00079223 0.00048557 7.27147667 0.99757918 0.99872220 0.49309999;
++	-6.27226939 -0.00079202 0.00048545 7.27147737 0.99757980 0.99872253 0.49310010;
++	-6.27226990 -0.00079182 0.00048532 7.27147807 0.99758042 0.99872286 0.49310015;
++	-6.27227040 -0.00079162 0.00048520 7.27147878 0.99758104 0.99872318 0.49310022;
++	-6.27227090 -0.00079142 0.00048507 7.27147948 0.99758166 0.99872351 0.49310023;
++	-6.27227139 -0.00079121 0.00048495 7.27148018 0.99758227 0.99872384 0.49310029;
++	-6.27227189 -0.00079101 0.00048483 7.27148088 0.99758289 0.99872416 0.49310038;
++	-6.27227239 -0.00079081 0.00048470 7.27148158 0.99758351 0.99872449 0.49310046;
++	-6.27227289 -0.00079061 0.00048458 7.27148228 0.99758413 0.99872481 0.49310052;
++	-6.27227339 -0.00079041 0.00048445 7.27148298 0.99758474 0.99872514 0.49310058;
++	-6.27227389 -0.00079020 0.00048433 7.27148368 0.99758536 0.99872546 0.49310064;
++	-6.27227439 -0.00079000 0.00048421 7.27148438 0.99758598 0.99872579 0.49310077;
++	-6.27227488 -0.00078980 0.00048408 7.27148508 0.99758659 0.99872612 0.49310085;
++	-6.27227538 -0.00078960 0.00048396 7.27148578 0.99758721 0.99872644 0.49310092;
++	-6.27227588 -0.00078940 0.00048384 7.27148648 0.99758783 0.99872677 0.49310100;
++	-6.27227637 -0.00078920 0.00048371 7.27148717 0.99758844 0.99872709 0.49310112;
++	-6.27227687 -0.00078900 0.00048359 7.27148787 0.99758906 0.99872741 0.49310113;
++	-6.27227736 -0.00078880 0.00048347 7.27148857 0.99758967 0.99872774 0.49310122;
++	-6.27227786 -0.00078859 0.00048334 7.27148927 0.99759029 0.99872806 0.49310127;
++	-6.27227836 -0.00078839 0.00048322 7.27148996 0.99759090 0.99872839 0.49310130;
++	-6.27227885 -0.00078819 0.00048310 7.27149066 0.99759151 0.99872871 0.49310141;
++	-6.27227934 -0.00078799 0.00048297 7.27149135 0.99759213 0.99872903 0.49310152;
++	-6.27227984 -0.00078779 0.00048285 7.27149205 0.99759274 0.99872936 0.49310152;
++	-6.27228033 -0.00078759 0.00048273 7.27149274 0.99759335 0.99872968 0.49310163;
++	-6.27228083 -0.00078739 0.00048260 7.27149344 0.99759397 0.99873001 0.49310168;
++	-6.27228132 -0.00078719 0.00048248 7.27149413 0.99759458 0.99873033 0.49310178;
++	-6.27228181 -0.00078699 0.00048236 7.27149482 0.99759519 0.99873065 0.49310189;
++	-6.27228231 -0.00078679 0.00048224 7.27149552 0.99759580 0.99873097 0.49310191;
++	-6.27228280 -0.00078659 0.00048211 7.27149621 0.99759641 0.99873130 0.49310203;
++	-6.27228329 -0.00078639 0.00048199 7.27149690 0.99759702 0.99873162 0.49310202;
++	-6.27228378 -0.00078619 0.00048187 7.27149759 0.99759763 0.99873194 0.49310216;
++	-6.27228427 -0.00078599 0.00048175 7.27149828 0.99759825 0.99873226 0.49310220;
++	-6.27228476 -0.00078579 0.00048162 7.27149897 0.99759886 0.99873259 0.49310228;
++	-6.27228526 -0.00078559 0.00048150 7.27149966 0.99759946 0.99873291 0.49310231;
++	-6.27228575 -0.00078539 0.00048138 7.27150035 0.99760007 0.99873323 0.49310245;
++	-6.27228624 -0.00078519 0.00048126 7.27150104 0.99760068 0.99873355 0.49310250;
++	-6.27228673 -0.00078500 0.00048113 7.27150173 0.99760129 0.99873387 0.49310256;
++	-6.27228722 -0.00078480 0.00048101 7.27150242 0.99760190 0.99873419 0.49310269;
++	-6.27228771 -0.00078460 0.00048089 7.27150311 0.99760251 0.99873451 0.49310278;
++	-6.27228819 -0.00078440 0.00048077 7.27150380 0.99760312 0.99873483 0.49310277;
++	-6.27228868 -0.00078420 0.00048065 7.27150448 0.99760372 0.99873515 0.49310291;
++	-6.27228917 -0.00078400 0.00048052 7.27150517 0.99760433 0.99873548 0.49310291;
++	-6.27228966 -0.00078380 0.00048040 7.27150586 0.99760494 0.99873580 0.49310301;
++	-6.27229015 -0.00078360 0.00048028 7.27150654 0.99760555 0.99873612 0.49310307;
++	-6.27229064 -0.00078341 0.00048016 7.27150723 0.99760615 0.99873644 0.49310321;
++	-6.27229112 -0.00078321 0.00048004 7.27150792 0.99760676 0.99873676 0.49310322;
++	-6.27229161 -0.00078301 0.00047992 7.27150860 0.99760736 0.99873707 0.49310330;
++	-6.27229210 -0.00078281 0.00047979 7.27150929 0.99760797 0.99873739 0.49310330;
++	-6.27229258 -0.00078261 0.00047967 7.27150997 0.99760857 0.99873771 0.49310340;
++	-6.27229307 -0.00078242 0.00047955 7.27151065 0.99760918 0.99873803 0.49310344;
++	-6.27229356 -0.00078222 0.00047943 7.27151134 0.99760978 0.99873835 0.49310362;
++	-6.27229404 -0.00078202 0.00047931 7.27151202 0.99761039 0.99873867 0.49310362;
++	-6.27229453 -0.00078182 0.00047919 7.27151270 0.99761099 0.99873899 0.49310369;
++	-6.27229501 -0.00078163 0.00047907 7.27151339 0.99761160 0.99873931 0.49310382;
++	-6.27229550 -0.00078143 0.00047895 7.27151407 0.99761220 0.99873963 0.49310378;
++	-6.27229598 -0.00078123 0.00047882 7.27151475 0.99761280 0.99873994 0.49310395;
++	-6.27229646 -0.00078103 0.00047870 7.27151543 0.99761340 0.99874026 0.49310398;
++	-6.27229695 -0.00078084 0.00047858 7.27151611 0.99761401 0.99874058 0.49310409;
++	-6.27229743 -0.00078064 0.00047846 7.27151679 0.99761461 0.99874090 0.49310410;
++	-6.27229791 -0.00078044 0.00047834 7.27151747 0.99761521 0.99874122 0.49310419;
++	-6.27229840 -0.00078025 0.00047822 7.27151815 0.99761581 0.99874153 0.49310426;
++	-6.27229888 -0.00078005 0.00047810 7.27151883 0.99761641 0.99874185 0.49310431;
++	-6.27229936 -0.00077985 0.00047798 7.27151951 0.99761701 0.99874217 0.49310439;
++	-6.27229984 -0.00077966 0.00047786 7.27152019 0.99761762 0.99874248 0.49310456;
++	-6.27230033 -0.00077946 0.00047774 7.27152087 0.99761822 0.99874280 0.49310453;
++	-6.27230081 -0.00077926 0.00047762 7.27152154 0.99761882 0.99874312 0.49310456;
++	-6.27230129 -0.00077907 0.00047750 7.27152222 0.99761942 0.99874343 0.49310472;
++	-6.27230177 -0.00077887 0.00047738 7.27152290 0.99762001 0.99874375 0.49310478;
++	-6.27230225 -0.00077868 0.00047726 7.27152357 0.99762061 0.99874407 0.49310482;
++	-6.27230273 -0.00077848 0.00047714 7.27152425 0.99762121 0.99874438 0.49310485;
++	-6.27230321 -0.00077828 0.00047702 7.27152493 0.99762181 0.99874470 0.49310496;
++	-6.27230369 -0.00077809 0.00047690 7.27152560 0.99762241 0.99874501 0.49310508;
++	-6.27230417 -0.00077789 0.00047678 7.27152628 0.99762301 0.99874533 0.49310514;
++	-6.27230465 -0.00077770 0.00047666 7.27152695 0.99762360 0.99874564 0.49310512;
++	-6.27230513 -0.00077750 0.00047654 7.27152763 0.99762420 0.99874596 0.49310522;
++	-6.27230561 -0.00077731 0.00047642 7.27152830 0.99762480 0.99874627 0.49310530;
++	-6.27230609 -0.00077711 0.00047630 7.27152897 0.99762540 0.99874659 0.49310543;
++	-6.27230656 -0.00077692 0.00047618 7.27152965 0.99762599 0.99874690 0.49310543;
++	-6.27230704 -0.00077672 0.00047606 7.27153032 0.99762659 0.99874722 0.49310556;
++	-6.27230752 -0.00077653 0.00047594 7.27153099 0.99762718 0.99874753 0.49310555;
++	-6.27230800 -0.00077633 0.00047582 7.27153166 0.99762778 0.99874785 0.49310570;
++	-6.27230847 -0.00077614 0.00047570 7.27153233 0.99762837 0.99874816 0.49310570;
++	-6.27230895 -0.00077594 0.00047558 7.27153301 0.99762897 0.99874848 0.49310582;
++	-6.27230943 -0.00077575 0.00047546 7.27153368 0.99762956 0.99874879 0.49310585;
++	-6.27230990 -0.00077556 0.00047534 7.27153435 0.99763016 0.99874910 0.49310599;
++	-6.27231038 -0.00077536 0.00047522 7.27153502 0.99763075 0.99874942 0.49310605;
++	-6.27231085 -0.00077517 0.00047510 7.27153569 0.99763135 0.99874973 0.49310608;
++	-6.27231133 -0.00077497 0.00047498 7.27153636 0.99763194 0.99875004 0.49310612;
++	-6.27231180 -0.00077478 0.00047487 7.27153702 0.99763253 0.99875036 0.49310624;
++	-6.27231228 -0.00077458 0.00047475 7.27153769 0.99763312 0.99875067 0.49310622;
++	-6.27231275 -0.00077439 0.00047463 7.27153836 0.99763372 0.99875098 0.49310639;
++	-6.27231323 -0.00077420 0.00047451 7.27153903 0.99763431 0.99875129 0.49310643;
++	-6.27231370 -0.00077400 0.00047439 7.27153970 0.99763490 0.99875161 0.49310644;
++	-6.27231417 -0.00077381 0.00047427 7.27154036 0.99763549 0.99875192 0.49310654;
++	-6.27231465 -0.00077362 0.00047415 7.27154103 0.99763608 0.99875223 0.49310665;
++	-6.27231512 -0.00077342 0.00047403 7.27154170 0.99763668 0.99875254 0.49310674;
++	-6.27231559 -0.00077323 0.00047392 7.27154236 0.99763727 0.99875285 0.49310670;
++	-6.27231607 -0.00077304 0.00047380 7.27154303 0.99763786 0.99875317 0.49310684;
++	-6.27231654 -0.00077284 0.00047368 7.27154369 0.99763845 0.99875348 0.49310692;
++	-6.27231701 -0.00077265 0.00047356 7.27154436 0.99763904 0.99875379 0.49310699;
++	-6.27231748 -0.00077246 0.00047344 7.27154502 0.99763963 0.99875410 0.49310700;
++	-6.27231795 -0.00077227 0.00047332 7.27154569 0.99764021 0.99875441 0.49310703;
++	-6.27231842 -0.00077207 0.00047321 7.27154635 0.99764080 0.99875472 0.49310722;
++	-6.27231889 -0.00077188 0.00047309 7.27154701 0.99764139 0.99875503 0.49310725;
++	-6.27231936 -0.00077169 0.00047297 7.27154768 0.99764198 0.99875534 0.49310729;
++	-6.27231984 -0.00077150 0.00047285 7.27154834 0.99764257 0.99875565 0.49310745;
++	-6.27232031 -0.00077130 0.00047273 7.27154900 0.99764316 0.99875596 0.49310751;
++	-6.27232077 -0.00077111 0.00047262 7.27154966 0.99764374 0.99875627 0.49310749;
++	-6.27232124 -0.00077092 0.00047250 7.27155032 0.99764433 0.99875658 0.49310765;
++	-6.27232171 -0.00077073 0.00047238 7.27155099 0.99764492 0.99875689 0.49310767;
++	-6.27232218 -0.00077054 0.00047226 7.27155165 0.99764550 0.99875720 0.49310775;
++	-6.27232265 -0.00077034 0.00047215 7.27155231 0.99764609 0.99875751 0.49310781;
++	-6.27232312 -0.00077015 0.00047203 7.27155297 0.99764668 0.99875782 0.49310787;
++	-6.27232359 -0.00076996 0.00047191 7.27155363 0.99764726 0.99875813 0.49310796;
++	-6.27232406 -0.00076977 0.00047179 7.27155429 0.99764785 0.99875844 0.49310787;
++	-6.27232452 -0.00076958 0.00047168 7.27155494 0.99764843 0.99875875 0.49310807;
++	-6.27232499 -0.00076939 0.00047156 7.27155560 0.99764902 0.99875906 0.49310819;
++	-6.27232546 -0.00076920 0.00047144 7.27155626 0.99764960 0.99875936 0.49310824;
++	-6.27232592 -0.00076900 0.00047132 7.27155692 0.99765019 0.99875967 0.49310831;
++	-6.27232639 -0.00076881 0.00047121 7.27155758 0.99765077 0.99875998 0.49310826;
++	-6.27232686 -0.00076862 0.00047109 7.27155823 0.99765135 0.99876029 0.49310841;
++	-6.27232732 -0.00076843 0.00047097 7.27155889 0.99765194 0.99876060 0.49310851;
++	-6.27232779 -0.00076824 0.00047086 7.27155955 0.99765252 0.99876090 0.49310855;
++	-6.27232825 -0.00076805 0.00047074 7.27156020 0.99765310 0.99876121 0.49310862;
++	-6.27232872 -0.00076786 0.00047062 7.27156086 0.99765369 0.99876152 0.49310868;
++	-6.27232918 -0.00076767 0.00047050 7.27156151 0.99765427 0.99876183 0.49310870;
++	-6.27232965 -0.00076748 0.00047039 7.27156217 0.99765485 0.99876213 0.49310885;
++	-6.27233011 -0.00076729 0.00047027 7.27156282 0.99765543 0.99876244 0.49310881;
++	-6.27233058 -0.00076710 0.00047015 7.27156348 0.99765601 0.99876275 0.49310901;
++	-6.27233104 -0.00076691 0.00047004 7.27156413 0.99765660 0.99876305 0.49310905;
++	-6.27233150 -0.00076672 0.00046992 7.27156478 0.99765718 0.99876336 0.49310906;
++	-6.27233197 -0.00076653 0.00046981 7.27156544 0.99765776 0.99876367 0.49310915;
++	-6.27233243 -0.00076634 0.00046969 7.27156609 0.99765834 0.99876397 0.49310926;
++	-6.27233289 -0.00076615 0.00046957 7.27156674 0.99765892 0.99876428 0.49310922;
++	-6.27233336 -0.00076596 0.00046946 7.27156740 0.99765950 0.99876458 0.49310945;
++	-6.27233382 -0.00076577 0.00046934 7.27156805 0.99766008 0.99876489 0.49310949;
++	-6.27233428 -0.00076558 0.00046922 7.27156870 0.99766065 0.99876520 0.49310955;
++	-6.27233474 -0.00076539 0.00046911 7.27156935 0.99766123 0.99876550 0.49310960;
++	-6.27233520 -0.00076520 0.00046899 7.27157000 0.99766181 0.99876581 0.49310966;
++	-6.27233566 -0.00076501 0.00046888 7.27157065 0.99766239 0.99876611 0.49310976;
++	-6.27233612 -0.00076482 0.00046876 7.27157130 0.99766297 0.99876642 0.49310982;
++	-6.27233658 -0.00076464 0.00046864 7.27157195 0.99766355 0.99876672 0.49310988;
++	-6.27233705 -0.00076445 0.00046853 7.27157260 0.99766412 0.99876703 0.49310995;
++	-6.27233751 -0.00076426 0.00046841 7.27157325 0.99766470 0.99876733 0.49310998;
++	-6.27233797 -0.00076407 0.00046830 7.27157390 0.99766528 0.99876763 0.49311004;
++	-6.27233843 -0.00076388 0.00046818 7.27157454 0.99766585 0.99876794 0.49311017;
++	-6.27233888 -0.00076369 0.00046806 7.27157519 0.99766643 0.99876824 0.49311019;
++	-6.27233934 -0.00076350 0.00046795 7.27157584 0.99766701 0.99876855 0.49311023;
++	-6.27233980 -0.00076332 0.00046783 7.27157649 0.99766758 0.99876885 0.49311028;
++	-6.27234026 -0.00076313 0.00046772 7.27157713 0.99766816 0.99876915 0.49311042;
++	-6.27234072 -0.00076294 0.00046760 7.27157778 0.99766873 0.99876946 0.49311047;
++	-6.27234118 -0.00076275 0.00046749 7.27157843 0.99766931 0.99876976 0.49311045;
++	-6.27234163 -0.00076256 0.00046737 7.27157907 0.99766988 0.99877006 0.49311061;
++	-6.27234209 -0.00076238 0.00046726 7.27157972 0.99767046 0.99877037 0.49311059;
++	-6.27234255 -0.00076219 0.00046714 7.27158036 0.99767103 0.99877067 0.49311072;
++	-6.27234301 -0.00076200 0.00046703 7.27158101 0.99767160 0.99877097 0.49311081;
++	-6.27234346 -0.00076181 0.00046691 7.27158165 0.99767218 0.99877128 0.49311088;
++	-6.27234392 -0.00076163 0.00046680 7.27158229 0.99767275 0.99877158 0.49311099;
++	-6.27234438 -0.00076144 0.00046668 7.27158294 0.99767332 0.99877188 0.49311100;
++	-6.27234483 -0.00076125 0.00046657 7.27158358 0.99767389 0.99877218 0.49311108;
++	-6.27234529 -0.00076106 0.00046645 7.27158422 0.99767447 0.99877248 0.49311114;
++	-6.27234574 -0.00076088 0.00046634 7.27158487 0.99767504 0.99877279 0.49311126;
++	-6.27234620 -0.00076069 0.00046622 7.27158551 0.99767561 0.99877309 0.49311118;
++	-6.27234665 -0.00076050 0.00046611 7.27158615 0.99767618 0.99877339 0.49311132;
++	-6.27234711 -0.00076032 0.00046599 7.27158679 0.99767675 0.99877369 0.49311134;
++	-6.27234756 -0.00076013 0.00046588 7.27158743 0.99767732 0.99877399 0.49311138;
++	-6.27234802 -0.00075994 0.00046576 7.27158807 0.99767789 0.99877429 0.49311158;
++	-6.27234847 -0.00075976 0.00046565 7.27158872 0.99767846 0.99877459 0.49311152;
++	-6.27234892 -0.00075957 0.00046554 7.27158935 0.99767903 0.99877489 0.49311170;
++	-6.27234938 -0.00075938 0.00046542 7.27158999 0.99767960 0.99877519 0.49311176;
++	-6.27234983 -0.00075920 0.00046531 7.27159063 0.99768017 0.99877550 0.49311184;
++	-6.27235028 -0.00075901 0.00046519 7.27159127 0.99768074 0.99877580 0.49311180;
++	-6.27235074 -0.00075882 0.00046508 7.27159191 0.99768131 0.99877610 0.49311187;
++	-6.27235119 -0.00075864 0.00046496 7.27159255 0.99768188 0.99877640 0.49311206;
++	-6.27235164 -0.00075845 0.00046485 7.27159319 0.99768245 0.99877670 0.49311212;
++	-6.27235209 -0.00075827 0.00046474 7.27159383 0.99768302 0.99877700 0.49311212;
++	-6.27235255 -0.00075808 0.00046462 7.27159446 0.99768358 0.99877730 0.49311214;
++	-6.27235300 -0.00075790 0.00046451 7.27159510 0.99768415 0.99877759 0.49311223;
++	-6.27235345 -0.00075771 0.00046440 7.27159574 0.99768472 0.99877789 0.49311231;
++	-6.27235390 -0.00075753 0.00046428 7.27159637 0.99768529 0.99877819 0.49311242;
++	-6.27235435 -0.00075734 0.00046417 7.27159701 0.99768585 0.99877849 0.49311242;
++	-6.27235480 -0.00075715 0.00046405 7.27159765 0.99768642 0.99877879 0.49311257;
++	-6.27235525 -0.00075697 0.00046394 7.27159828 0.99768699 0.99877909 0.49311263;
++	-6.27235570 -0.00075678 0.00046383 7.27159892 0.99768755 0.99877939 0.49311265;
++	-6.27235615 -0.00075660 0.00046371 7.27159955 0.99768812 0.99877969 0.49311271;
++	-6.27235660 -0.00075641 0.00046360 7.27160019 0.99768868 0.99877999 0.49311273;
++	-6.27235705 -0.00075623 0.00046349 7.27160082 0.99768925 0.99878028 0.49311292;
++	-6.27235750 -0.00075605 0.00046337 7.27160145 0.99768981 0.99878058 0.49311290;
++	-6.27235795 -0.00075586 0.00046326 7.27160209 0.99769038 0.99878088 0.49311294;
++	-6.27235840 -0.00075568 0.00046315 7.27160272 0.99769094 0.99878118 0.49311305;
++	-6.27235884 -0.00075549 0.00046303 7.27160335 0.99769150 0.99878147 0.49311309;
++	-6.27235929 -0.00075531 0.00046292 7.27160398 0.99769207 0.99878177 0.49311327;
++	-6.27235974 -0.00075512 0.00046281 7.27160462 0.99769263 0.99878207 0.49311324;
++	-6.27236019 -0.00075494 0.00046269 7.27160525 0.99769319 0.99878237 0.49311327;
++	-6.27236063 -0.00075475 0.00046258 7.27160588 0.99769376 0.99878266 0.49311333;
++	-6.27236108 -0.00075457 0.00046247 7.27160651 0.99769432 0.99878296 0.49311348;
++	-6.27236153 -0.00075439 0.00046236 7.27160714 0.99769488 0.99878326 0.49311361;
++	-6.27236197 -0.00075420 0.00046224 7.27160777 0.99769544 0.99878355 0.49311357;
++	-6.27236242 -0.00075402 0.00046213 7.27160840 0.99769601 0.99878385 0.49311362;
++	-6.27236287 -0.00075384 0.00046202 7.27160903 0.99769657 0.99878415 0.49311367;
++	-6.27236331 -0.00075365 0.00046191 7.27160966 0.99769713 0.99878444 0.49311366;
++	-6.27236376 -0.00075347 0.00046179 7.27161029 0.99769769 0.99878474 0.49311384;
++	-6.27236420 -0.00075329 0.00046168 7.27161092 0.99769825 0.99878503 0.49311393;
++	-6.27236465 -0.00075310 0.00046157 7.27161155 0.99769881 0.99878533 0.49311405;
++	-6.27236509 -0.00075292 0.00046146 7.27161217 0.99769937 0.99878563 0.49311410;
++	-6.27236554 -0.00075274 0.00046134 7.27161280 0.99769993 0.99878592 0.49311401;
++	-6.27236598 -0.00075255 0.00046123 7.27161343 0.99770049 0.99878622 0.49311424;
++	-6.27236643 -0.00075237 0.00046112 7.27161406 0.99770105 0.99878651 0.49311425;
++	-6.27236687 -0.00075219 0.00046101 7.27161468 0.99770161 0.99878681 0.49311423;
++	-6.27236731 -0.00075200 0.00046089 7.27161531 0.99770217 0.99878710 0.49311442;
++	-6.27236776 -0.00075182 0.00046078 7.27161594 0.99770272 0.99878740 0.49311431;
++	-6.27236820 -0.00075164 0.00046067 7.27161656 0.99770328 0.99878769 0.49311449;
++	-6.27236864 -0.00075146 0.00046056 7.27161719 0.99770384 0.99878798 0.49311451;
++	-6.27236909 -0.00075127 0.00046045 7.27161781 0.99770440 0.99878828 0.49311462;
++	-6.27236953 -0.00075109 0.00046034 7.27161844 0.99770496 0.99878857 0.49311465;
++	-6.27236997 -0.00075091 0.00046022 7.27161906 0.99770551 0.99878887 0.49311479;
++	-6.27237041 -0.00075073 0.00046011 7.27161968 0.99770607 0.99878916 0.49311488;
++	-6.27237085 -0.00075055 0.00046000 7.27162031 0.99770663 0.99878945 0.49311489;
++	-6.27237130 -0.00075036 0.00045989 7.27162093 0.99770718 0.99878975 0.49311496;
++	-6.27237174 -0.00075018 0.00045978 7.27162155 0.99770774 0.99879004 0.49311494;
++	-6.27237218 -0.00075000 0.00045967 7.27162218 0.99770829 0.99879033 0.49311510;
++	-6.27237262 -0.00074982 0.00045955 7.27162280 0.99770885 0.99879063 0.49311504;
++	-6.27237306 -0.00074964 0.00045944 7.27162342 0.99770941 0.99879092 0.49311523;
++	-6.27237350 -0.00074946 0.00045933 7.27162404 0.99770996 0.99879121 0.49311526;
++	-6.27237394 -0.00074927 0.00045922 7.27162466 0.99771051 0.99879151 0.49311531;
++	-6.27237438 -0.00074909 0.00045911 7.27162529 0.99771107 0.99879180 0.49311549;
++	-6.27237482 -0.00074891 0.00045900 7.27162591 0.99771162 0.99879209 0.49311546;
++	-6.27237526 -0.00074873 0.00045889 7.27162653 0.99771218 0.99879238 0.49311554;
++	-6.27237570 -0.00074855 0.00045878 7.27162715 0.99771273 0.99879268 0.49311557;
++	-6.27237614 -0.00074837 0.00045866 7.27162777 0.99771328 0.99879297 0.49311573;
++	-6.27237657 -0.00074819 0.00045855 7.27162839 0.99771384 0.99879326 0.49311571;
++	-6.27237701 -0.00074801 0.00045844 7.27162901 0.99771439 0.99879355 0.49311580;
++	-6.27237745 -0.00074783 0.00045833 7.27162962 0.99771494 0.99879384 0.49311585;
++	-6.27237789 -0.00074765 0.00045822 7.27163024 0.99771549 0.99879413 0.49311592;
++	-6.27237833 -0.00074747 0.00045811 7.27163086 0.99771605 0.99879442 0.49311607;
++	-6.27237876 -0.00074728 0.00045800 7.27163148 0.99771660 0.99879472 0.49311608;
++	-6.27237920 -0.00074710 0.00045789 7.27163210 0.99771715 0.99879501 0.49311612;
++	-6.27237964 -0.00074692 0.00045778 7.27163271 0.99771770 0.99879530 0.49311622;
++	-6.27238007 -0.00074674 0.00045767 7.27163333 0.99771825 0.99879559 0.49311623;
++	-6.27238051 -0.00074656 0.00045756 7.27163395 0.99771880 0.99879588 0.49311629;
++	-6.27238095 -0.00074638 0.00045745 7.27163456 0.99771935 0.99879617 0.49311629;
++	-6.27238138 -0.00074620 0.00045734 7.27163518 0.99771990 0.99879646 0.49311644;
++	-6.27238182 -0.00074602 0.00045723 7.27163580 0.99772045 0.99879675 0.49311641;
++	-6.27238225 -0.00074584 0.00045712 7.27163641 0.99772100 0.99879704 0.49311653;
++	-6.27238269 -0.00074566 0.00045701 7.27163703 0.99772155 0.99879733 0.49311671;
++	-6.27238312 -0.00074548 0.00045690 7.27163764 0.99772210 0.99879762 0.49311673;
++	-6.27238356 -0.00074531 0.00045679 7.27163825 0.99772265 0.99879791 0.49311683;
++	-6.27238399 -0.00074513 0.00045668 7.27163887 0.99772320 0.99879820 0.49311676;
++	-6.27238443 -0.00074495 0.00045657 7.27163948 0.99772375 0.99879849 0.49311684;
++	-6.27238486 -0.00074477 0.00045646 7.27164010 0.99772429 0.99879878 0.49311690;
++	-6.27238530 -0.00074459 0.00045635 7.27164071 0.99772484 0.99879907 0.49311703;
++	-6.27238573 -0.00074441 0.00045624 7.27164132 0.99772539 0.99879936 0.49311710;
++	-6.27238616 -0.00074423 0.00045613 7.27164193 0.99772594 0.99879964 0.49311708;
++	-6.27238660 -0.00074405 0.00045602 7.27164255 0.99772648 0.99879993 0.49311725;
++	-6.27238703 -0.00074387 0.00045591 7.27164316 0.99772703 0.99880022 0.49311732;
++	-6.27238746 -0.00074369 0.00045580 7.27164377 0.99772758 0.99880051 0.49311738;
++	-6.27238790 -0.00074352 0.00045569 7.27164438 0.99772812 0.99880080 0.49311739;
++	-6.27238833 -0.00074334 0.00045558 7.27164499 0.99772867 0.99880109 0.49311746;
++	-6.27238876 -0.00074316 0.00045547 7.27164560 0.99772921 0.99880137 0.49311752;
++	-6.27238919 -0.00074298 0.00045536 7.27164621 0.99772976 0.99880166 0.49311758;
++	-6.27238962 -0.00074280 0.00045525 7.27164682 0.99773030 0.99880195 0.49311766;
++	-6.27239006 -0.00074262 0.00045514 7.27164743 0.99773085 0.99880224 0.49311772;
++	-6.27239049 -0.00074245 0.00045503 7.27164804 0.99773139 0.99880252 0.49311777;
++	-6.27239092 -0.00074227 0.00045492 7.27164865 0.99773194 0.99880281 0.49311785;
++	-6.27239135 -0.00074209 0.00045481 7.27164926 0.99773248 0.99880310 0.49311791;
++	-6.27239178 -0.00074191 0.00045470 7.27164987 0.99773303 0.99880339 0.49311797;
++	-6.27239221 -0.00074173 0.00045459 7.27165048 0.99773357 0.99880367 0.49311806;
++	-6.27239264 -0.00074156 0.00045449 7.27165108 0.99773411 0.99880396 0.49311809;
++	-6.27239307 -0.00074138 0.00045438 7.27165169 0.99773466 0.99880425 0.49311816;
++	-6.27239350 -0.00074120 0.00045427 7.27165230 0.99773520 0.99880453 0.49311824;
++	-6.27239393 -0.00074102 0.00045416 7.27165291 0.99773574 0.99880482 0.49311829;
++	-6.27239436 -0.00074085 0.00045405 7.27165351 0.99773628 0.99880510 0.49311835;
++	-6.27239479 -0.00074067 0.00045394 7.27165412 0.99773683 0.99880539 0.49311839;
++	-6.27239522 -0.00074049 0.00045383 7.27165472 0.99773737 0.99880568 0.49311849;
++	-6.27239564 -0.00074031 0.00045372 7.27165533 0.99773791 0.99880596 0.49311853;
++	-6.27239607 -0.00074014 0.00045362 7.27165593 0.99773845 0.99880625 0.49311862;
++	-6.27239650 -0.00073996 0.00045351 7.27165654 0.99773899 0.99880653 0.49311867;
++	-6.27239693 -0.00073978 0.00045340 7.27165714 0.99773953 0.99880682 0.49311873;
++	-6.27239736 -0.00073961 0.00045329 7.27165775 0.99774007 0.99880710 0.49311878;
++	-6.27239778 -0.00073943 0.00045318 7.27165835 0.99774061 0.99880739 0.49311885;
++	-6.27239821 -0.00073925 0.00045307 7.27165896 0.99774115 0.99880767 0.49311891;
++	-6.27239864 -0.00073908 0.00045296 7.27165956 0.99774169 0.99880796 0.49311897;
++	-6.27239906 -0.00073890 0.00045286 7.27166016 0.99774223 0.99880824 0.49311905;
++	-6.27239949 -0.00073872 0.00045275 7.27166077 0.99774277 0.99880853 0.49311912;
++	-6.27239992 -0.00073855 0.00045264 7.27166137 0.99774331 0.99880881 0.49311918;
++	-6.27240034 -0.00073837 0.00045253 7.27166197 0.99774385 0.99880910 0.49311924;
++	-6.27240077 -0.00073820 0.00045242 7.27166257 0.99774439 0.99880938 0.49311929;
++	-6.27240119 -0.00073802 0.00045232 7.27166317 0.99774492 0.99880966 0.49311935;
++	-6.27240162 -0.00073784 0.00045221 7.27166378 0.99774546 0.99880995 0.49311941;
++	-6.27240205 -0.00073767 0.00045210 7.27166438 0.99774600 0.99881023 0.49311949;
++	-6.27240247 -0.00073749 0.00045199 7.27166498 0.99774654 0.99881051 0.49311956;
++	-6.27240289 -0.00073732 0.00045188 7.27166558 0.99774707 0.99881080 0.49311961;
++	-6.27240332 -0.00073714 0.00045178 7.27166618 0.99774761 0.99881108 0.49311968;
++	-6.27240374 -0.00073697 0.00045167 7.27166678 0.99774815 0.99881136 0.49311975;
++	-6.27240417 -0.00073679 0.00045156 7.27166738 0.99774868 0.99881165 0.49311980;
++	-6.27240459 -0.00073662 0.00045145 7.27166798 0.99774922 0.99881193 0.49311987;
++	-6.27240502 -0.00073644 0.00045135 7.27166858 0.99774976 0.99881221 0.49311992;
++	-6.27240544 -0.00073626 0.00045124 7.27166917 0.99775029 0.99881250 0.49312000;
++	-6.27240586 -0.00073609 0.00045113 7.27166977 0.99775083 0.99881278 0.49312006;
++	-6.27240628 -0.00073591 0.00045102 7.27167037 0.99775136 0.99881306 0.49312011;
++	-6.27240671 -0.00073574 0.00045092 7.27167097 0.99775190 0.99881334 0.49312017;
++	-6.27240713 -0.00073556 0.00045081 7.27167157 0.99775243 0.99881362 0.49312022;
++	-6.27240755 -0.00073539 0.00045070 7.27167216 0.99775297 0.99881391 0.49312031;
++	-6.27240797 -0.00073522 0.00045060 7.27167276 0.99775350 0.99881419 0.49312033;
++	-6.27240840 -0.00073504 0.00045049 7.27167336 0.99775403 0.99881447 0.49312043;
++	-6.27240882 -0.00073487 0.00045038 7.27167395 0.99775457 0.99881475 0.49312049;
++	-6.27240924 -0.00073469 0.00045027 7.27167455 0.99775510 0.99881503 0.49312054;
++	-6.27240966 -0.00073452 0.00045017 7.27167514 0.99775563 0.99881531 0.49312061;
++	-6.27241008 -0.00073434 0.00045006 7.27167574 0.99775617 0.99881560 0.49312068;
++	-6.27241050 -0.00073417 0.00044995 7.27167633 0.99775670 0.99881588 0.49312074;
++	-6.27241092 -0.00073400 0.00044985 7.27167693 0.99775723 0.99881616 0.49312080;
++	-6.27241134 -0.00073382 0.00044974 7.27167752 0.99775776 0.99881644 0.49312087;
++	-6.27241176 -0.00073365 0.00044963 7.27167812 0.99775829 0.99881672 0.49312093;
++	-6.27241218 -0.00073347 0.00044953 7.27167871 0.99775883 0.99881700 0.49312099;
++	-6.27241260 -0.00073330 0.00044942 7.27167930 0.99775936 0.99881728 0.49312106;
++	-6.27241302 -0.00073313 0.00044931 7.27167990 0.99775989 0.99881756 0.49312110;
++	-6.27241344 -0.00073295 0.00044921 7.27168049 0.99776042 0.99881784 0.49312117;
++	-6.27241386 -0.00073278 0.00044910 7.27168108 0.99776095 0.99881812 0.49312124;
++	-6.27241428 -0.00073261 0.00044899 7.27168167 0.99776148 0.99881840 0.49312129;
++	-6.27241470 -0.00073243 0.00044889 7.27168227 0.99776201 0.99881868 0.49312137;
++	-6.27241512 -0.00073226 0.00044878 7.27168286 0.99776254 0.99881896 0.49312141;
++	-6.27241554 -0.00073209 0.00044868 7.27168345 0.99776307 0.99881924 0.49312147;
++	-6.27241595 -0.00073191 0.00044857 7.27168404 0.99776360 0.99881952 0.49312156;
++	-6.27241637 -0.00073174 0.00044846 7.27168463 0.99776413 0.99881980 0.49312161;
++	-6.27241679 -0.00073157 0.00044836 7.27168522 0.99776466 0.99882008 0.49312166;
++	-6.27241721 -0.00073139 0.00044825 7.27168581 0.99776518 0.99882035 0.49312172;
++	-6.27241762 -0.00073122 0.00044815 7.27168640 0.99776571 0.99882063 0.49312178;
++	-6.27241804 -0.00073105 0.00044804 7.27168699 0.99776624 0.99882091 0.49312185;
++	-6.27241846 -0.00073088 0.00044793 7.27168758 0.99776677 0.99882119 0.49312193;
++	-6.27241887 -0.00073070 0.00044783 7.27168817 0.99776730 0.99882147 0.49312197;
++	-6.27241929 -0.00073053 0.00044772 7.27168876 0.99776782 0.99882175 0.49312203;
++	-6.27241971 -0.00073036 0.00044762 7.27168935 0.99776835 0.99882202 0.49312211;
++	-6.27242012 -0.00073019 0.00044751 7.27168994 0.99776888 0.99882230 0.49312215;
++	-6.27242054 -0.00073001 0.00044741 7.27169052 0.99776940 0.99882258 0.49312222;
++	-6.27242095 -0.00072984 0.00044730 7.27169111 0.99776993 0.99882286 0.49312230;
++	-6.27242137 -0.00072967 0.00044719 7.27169170 0.99777045 0.99882314 0.49312233;
++	-6.27242178 -0.00072950 0.00044709 7.27169229 0.99777098 0.99882341 0.49312241;
++	-6.27242220 -0.00072933 0.00044698 7.27169287 0.99777151 0.99882369 0.49312246;
++	-6.27242261 -0.00072915 0.00044688 7.27169346 0.99777203 0.99882397 0.49312253;
++	-6.27242303 -0.00072898 0.00044677 7.27169405 0.99777256 0.99882424 0.49312260;
++	-6.27242344 -0.00072881 0.00044667 7.27169463 0.99777308 0.99882452 0.49312265;
++	-6.27242386 -0.00072864 0.00044656 7.27169522 0.99777361 0.99882480 0.49312272;
++	-6.27242427 -0.00072847 0.00044646 7.27169580 0.99777413 0.99882508 0.49312276;
++	-6.27242468 -0.00072830 0.00044635 7.27169639 0.99777465 0.99882535 0.49312285;
++	-6.27242510 -0.00072813 0.00044625 7.27169697 0.99777518 0.99882563 0.49312291;
++	-6.27242551 -0.00072795 0.00044614 7.27169756 0.99777570 0.99882590 0.49312295;
++	-6.27242592 -0.00072778 0.00044604 7.27169814 0.99777622 0.99882618 0.49312303;
++	-6.27242634 -0.00072761 0.00044593 7.27169872 0.99777675 0.99882646 0.49312307;
++	-6.27242675 -0.00072744 0.00044583 7.27169931 0.99777727 0.99882673 0.49312312;
++	-6.27242716 -0.00072727 0.00044572 7.27169989 0.99777779 0.99882701 0.49312319;
++	-6.27242757 -0.00072710 0.00044562 7.27170047 0.99777831 0.99882728 0.49312326;
++	-6.27242798 -0.00072693 0.00044551 7.27170106 0.99777884 0.99882756 0.49312335;
++	-6.27242840 -0.00072676 0.00044541 7.27170164 0.99777936 0.99882783 0.49312338;
++	-6.27242881 -0.00072659 0.00044530 7.27170222 0.99777988 0.99882811 0.49312345;
++	-6.27242922 -0.00072642 0.00044520 7.27170280 0.99778040 0.99882838 0.49312349;
++	-6.27242963 -0.00072625 0.00044509 7.27170338 0.99778092 0.99882866 0.49312358;
++	-6.27243004 -0.00072608 0.00044499 7.27170397 0.99778144 0.99882893 0.49312364;
++	-6.27243045 -0.00072591 0.00044488 7.27170455 0.99778196 0.99882921 0.49312368;
++	-6.27243086 -0.00072574 0.00044478 7.27170513 0.99778248 0.99882948 0.49312376;
++	-6.27243127 -0.00072557 0.00044468 7.27170571 0.99778300 0.99882976 0.49312381;
++	-6.27243168 -0.00072540 0.00044457 7.27170629 0.99778352 0.99883003 0.49312388;
++	-6.27243209 -0.00072523 0.00044447 7.27170687 0.99778404 0.99883031 0.49312394;
++	-6.27243250 -0.00072506 0.00044436 7.27170745 0.99778456 0.99883058 0.49312397;
++	-6.27243291 -0.00072489 0.00044426 7.27170803 0.99778508 0.99883086 0.49312405;
++	-6.27243332 -0.00072472 0.00044416 7.27170860 0.99778560 0.99883113 0.49312410;
++	-6.27243373 -0.00072455 0.00044405 7.27170918 0.99778612 0.99883140 0.49312419;
++	-6.27243414 -0.00072438 0.00044395 7.27170976 0.99778664 0.99883168 0.49312424;
++	-6.27243455 -0.00072421 0.00044384 7.27171034 0.99778716 0.99883195 0.49312429;
++	-6.27243496 -0.00072404 0.00044374 7.27171092 0.99778767 0.99883222 0.49312436;
++	-6.27243536 -0.00072387 0.00044364 7.27171150 0.99778819 0.99883250 0.49312441;
++	-6.27243577 -0.00072370 0.00044353 7.27171207 0.99778871 0.99883277 0.49312447;
++	-6.27243618 -0.00072353 0.00044343 7.27171265 0.99778923 0.99883304 0.49312454;
++	-6.27243659 -0.00072336 0.00044332 7.27171323 0.99778974 0.99883331 0.49312460;
++	-6.27243700 -0.00072319 0.00044322 7.27171380 0.99779026 0.99883359 0.49312464;
++	-6.27243740 -0.00072302 0.00044312 7.27171438 0.99779078 0.99883386 0.49312471;
++	-6.27243781 -0.00072285 0.00044301 7.27171495 0.99779129 0.99883413 0.49312476;
++	-6.27243822 -0.00072269 0.00044291 7.27171553 0.99779181 0.99883440 0.49312483;
++	-6.27243862 -0.00072252 0.00044281 7.27171611 0.99779232 0.99883468 0.49312489;
++	-6.27243903 -0.00072235 0.00044270 7.27171668 0.99779284 0.99883495 0.49312495;
++	-6.27243944 -0.00072218 0.00044260 7.27171726 0.99779336 0.99883522 0.49312500;
++	-6.27243984 -0.00072201 0.00044250 7.27171783 0.99779387 0.99883549 0.49312508;
++	-6.27244025 -0.00072184 0.00044239 7.27171840 0.99779438 0.99883576 0.49312514;
++	-6.27244065 -0.00072167 0.00044229 7.27171898 0.99779490 0.99883604 0.49312518;
++	-6.27244106 -0.00072151 0.00044219 7.27171955 0.99779541 0.99883631 0.49312525;
++	-6.27244146 -0.00072134 0.00044208 7.27172012 0.99779593 0.99883658 0.49312531;
++	-6.27244187 -0.00072117 0.00044198 7.27172070 0.99779644 0.99883685 0.49312537;
++	-6.27244227 -0.00072100 0.00044188 7.27172127 0.99779696 0.99883712 0.49312544;
++	-6.27244268 -0.00072083 0.00044177 7.27172184 0.99779747 0.99883739 0.49312550;
++	-6.27244308 -0.00072067 0.00044167 7.27172242 0.99779798 0.99883766 0.49312555;
++	-6.27244349 -0.00072050 0.00044157 7.27172299 0.99779849 0.99883793 0.49312563;
++	-6.27244389 -0.00072033 0.00044147 7.27172356 0.99779901 0.99883820 0.49312567;
++	-6.27244429 -0.00072016 0.00044136 7.27172413 0.99779952 0.99883847 0.49312573;
++	-6.27244470 -0.00072000 0.00044126 7.27172470 0.99780003 0.99883874 0.49312578;
++	-6.27244510 -0.00071983 0.00044116 7.27172527 0.99780054 0.99883901 0.49312585;
++	-6.27244550 -0.00071966 0.00044105 7.27172584 0.99780105 0.99883928 0.49312592;
++	-6.27244591 -0.00071949 0.00044095 7.27172641 0.99780157 0.99883955 0.49312598;
++	-6.27244631 -0.00071933 0.00044085 7.27172698 0.99780208 0.99883982 0.49312604;
++	-6.27244671 -0.00071916 0.00044075 7.27172755 0.99780259 0.99884009 0.49312608;
++	-6.27244712 -0.00071899 0.00044064 7.27172812 0.99780310 0.99884036 0.49312614;
++	-6.27244752 -0.00071883 0.00044054 7.27172869 0.99780361 0.99884063 0.49312622;
++	-6.27244792 -0.00071866 0.00044044 7.27172926 0.99780412 0.99884090 0.49312626;
++	-6.27244832 -0.00071849 0.00044034 7.27172983 0.99780463 0.99884117 0.49312632;
++	-6.27244872 -0.00071833 0.00044024 7.27173040 0.99780514 0.99884144 0.49312638;
++	-6.27244912 -0.00071816 0.00044013 7.27173097 0.99780565 0.99884171 0.49312645;
++	-6.27244953 -0.00071799 0.00044003 7.27173153 0.99780616 0.99884198 0.49312649;
++	-6.27244993 -0.00071783 0.00043993 7.27173210 0.99780667 0.99884225 0.49312657;
++	-6.27245033 -0.00071766 0.00043983 7.27173267 0.99780718 0.99884251 0.49312664;
++	-6.27245073 -0.00071749 0.00043972 7.27173323 0.99780768 0.99884278 0.49312669;
++	-6.27245113 -0.00071733 0.00043962 7.27173380 0.99780819 0.99884305 0.49312674;
++	-6.27245153 -0.00071716 0.00043952 7.27173437 0.99780870 0.99884332 0.49312680;
++	-6.27245193 -0.00071699 0.00043942 7.27173493 0.99780921 0.99884359 0.49312685;
++	-6.27245233 -0.00071683 0.00043932 7.27173550 0.99780972 0.99884385 0.49312691;
++	-6.27245273 -0.00071666 0.00043922 7.27173607 0.99781022 0.99884412 0.49312701;
++	-6.27245313 -0.00071650 0.00043911 7.27173663 0.99781073 0.99884439 0.49312703;
++	-6.27245353 -0.00071633 0.00043901 7.27173720 0.99781124 0.99884466 0.49312710;
++	-6.27245393 -0.00071617 0.00043891 7.27173776 0.99781174 0.99884492 0.49312716;
++	-6.27245432 -0.00071600 0.00043881 7.27173833 0.99781225 0.99884519 0.49312722;
++	-6.27245472 -0.00071583 0.00043871 7.27173889 0.99781276 0.99884546 0.49312728;
++	-6.27245512 -0.00071567 0.00043861 7.27173945 0.99781326 0.99884573 0.49312736;
++	-6.27245552 -0.00071550 0.00043850 7.27174002 0.99781377 0.99884599 0.49312741;
++	-6.27245592 -0.00071534 0.00043840 7.27174058 0.99781427 0.99884626 0.49312745;
++	-6.27245632 -0.00071517 0.00043830 7.27174114 0.99781478 0.99884653 0.49312752;
++	-6.27245671 -0.00071501 0.00043820 7.27174171 0.99781528 0.99884679 0.49312756;
++	-6.27245711 -0.00071484 0.00043810 7.27174227 0.99781579 0.99884706 0.49312763;
++	-6.27245751 -0.00071468 0.00043800 7.27174283 0.99781629 0.99884733 0.49312770;
++	-6.27245791 -0.00071451 0.00043790 7.27174339 0.99781680 0.99884759 0.49312773;
++	-6.27245830 -0.00071435 0.00043779 7.27174396 0.99781730 0.99884786 0.49312781;
++	-6.27245870 -0.00071418 0.00043769 7.27174452 0.99781781 0.99884812 0.49312788;
++	-6.27245910 -0.00071402 0.00043759 7.27174508 0.99781831 0.99884839 0.49312794;
++	-6.27245949 -0.00071385 0.00043749 7.27174564 0.99781881 0.99884866 0.49312798;
++	-6.27245989 -0.00071369 0.00043739 7.27174620 0.99781932 0.99884892 0.49312802;
++	-6.27246028 -0.00071352 0.00043729 7.27174676 0.99781982 0.99884919 0.49312810;
++	-6.27246068 -0.00071336 0.00043719 7.27174732 0.99782032 0.99884945 0.49312816;
++	-6.27246108 -0.00071320 0.00043709 7.27174788 0.99782083 0.99884972 0.49312820;
++	-6.27246147 -0.00071303 0.00043699 7.27174844 0.99782133 0.99884998 0.49312828;
++	-6.27246187 -0.00071287 0.00043689 7.27174900 0.99782183 0.99885025 0.49312834;
++	-6.27246226 -0.00071270 0.00043679 7.27174956 0.99782233 0.99885051 0.49312839;
++	-6.27246266 -0.00071254 0.00043669 7.27175012 0.99782283 0.99885078 0.49312847;
++	-6.27246305 -0.00071237 0.00043658 7.27175068 0.99782333 0.99885104 0.49312849;
++	-6.27246345 -0.00071221 0.00043648 7.27175123 0.99782384 0.99885131 0.49312857;
++	-6.27246384 -0.00071205 0.00043638 7.27175179 0.99782434 0.99885157 0.49312862;
++	-6.27246423 -0.00071188 0.00043628 7.27175235 0.99782484 0.99885183 0.49312870;
++	-6.27246463 -0.00071172 0.00043618 7.27175291 0.99782534 0.99885210 0.49312875;
++	-6.27246502 -0.00071156 0.00043608 7.27175347 0.99782584 0.99885236 0.49312878;
++	-6.27246541 -0.00071139 0.00043598 7.27175402 0.99782634 0.99885263 0.49312886;
++	-6.27246581 -0.00071123 0.00043588 7.27175458 0.99782684 0.99885289 0.49312892;
++	-6.27246620 -0.00071107 0.00043578 7.27175514 0.99782734 0.99885315 0.49312899;
++	-6.27246659 -0.00071090 0.00043568 7.27175569 0.99782784 0.99885342 0.49312906;
++	-6.27246699 -0.00071074 0.00043558 7.27175625 0.99782833 0.99885368 0.49312908;
++	-6.27246738 -0.00071058 0.00043548 7.27175680 0.99782883 0.99885394 0.49312914;
++	-6.27246777 -0.00071041 0.00043538 7.27175736 0.99782933 0.99885421 0.49312922;
++	-6.27246816 -0.00071025 0.00043528 7.27175791 0.99782983 0.99885447 0.49312926;
++	-6.27246856 -0.00071009 0.00043518 7.27175847 0.99783033 0.99885473 0.49312934;
++	-6.27246895 -0.00070992 0.00043508 7.27175902 0.99783083 0.99885499 0.49312938;
++	-6.27246934 -0.00070976 0.00043498 7.27175958 0.99783132 0.99885526 0.49312944;
++	-6.27246973 -0.00070960 0.00043488 7.27176013 0.99783182 0.99885552 0.49312948;
++	-6.27247012 -0.00070944 0.00043478 7.27176069 0.99783232 0.99885578 0.49312957;
++	-6.27247051 -0.00070927 0.00043468 7.27176124 0.99783282 0.99885604 0.49312962;
++	-6.27247090 -0.00070911 0.00043458 7.27176179 0.99783331 0.99885631 0.49312968;
++	-6.27247129 -0.00070895 0.00043448 7.27176235 0.99783381 0.99885657 0.49312972;
++	-6.27247168 -0.00070879 0.00043438 7.27176290 0.99783431 0.99885683 0.49312980;
++	-6.27247207 -0.00070862 0.00043428 7.27176345 0.99783480 0.99885709 0.49312985;
++	-6.27247246 -0.00070846 0.00043418 7.27176400 0.99783530 0.99885735 0.49312992;
++	-6.27247285 -0.00070830 0.00043409 7.27176456 0.99783579 0.99885762 0.49312999;
++	-6.27247324 -0.00070814 0.00043399 7.27176511 0.99783629 0.99885788 0.49313003;
++	-6.27247363 -0.00070798 0.00043389 7.27176566 0.99783678 0.99885814 0.49313009;
++	-6.27247402 -0.00070781 0.00043379 7.27176621 0.99783728 0.99885840 0.49313014;
++	-6.27247441 -0.00070765 0.00043369 7.27176676 0.99783777 0.99885866 0.49313021;
++	-6.27247480 -0.00070749 0.00043359 7.27176731 0.99783827 0.99885892 0.49313025;
++	-6.27247519 -0.00070733 0.00043349 7.27176786 0.99783876 0.99885918 0.49313031;
++	-6.27247558 -0.00070717 0.00043339 7.27176841 0.99783926 0.99885944 0.49313036;
++	-6.27247597 -0.00070701 0.00043329 7.27176896 0.99783975 0.99885970 0.49313043;
++	-6.27247636 -0.00070684 0.00043319 7.27176951 0.99784024 0.99885996 0.49313047;
++	-6.27247674 -0.00070668 0.00043309 7.27177006 0.99784074 0.99886022 0.49313056;
++	-6.27247713 -0.00070652 0.00043299 7.27177061 0.99784123 0.99886048 0.49313062;
++	-6.27247752 -0.00070636 0.00043290 7.27177116 0.99784172 0.99886074 0.49313067;
++	-6.27247791 -0.00070620 0.00043280 7.27177171 0.99784222 0.99886100 0.49313072;
++	-6.27247829 -0.00070604 0.00043270 7.27177226 0.99784271 0.99886126 0.49313077;
++	-6.27247868 -0.00070588 0.00043260 7.27177280 0.99784320 0.99886152 0.49313084;
++	-6.27247907 -0.00070572 0.00043250 7.27177335 0.99784369 0.99886178 0.49313089;
++	-6.27247945 -0.00070556 0.00043240 7.27177390 0.99784418 0.99886204 0.49313094;
++	-6.27247984 -0.00070539 0.00043230 7.27177445 0.99784468 0.99886230 0.49313101;
++	-6.27248023 -0.00070523 0.00043220 7.27177499 0.99784517 0.99886256 0.49313105;
++	-6.27248061 -0.00070507 0.00043211 7.27177554 0.99784566 0.99886282 0.49313111;
++	-6.27248100 -0.00070491 0.00043201 7.27177609 0.99784615 0.99886308 0.49313117;
++	-6.27248139 -0.00070475 0.00043191 7.27177663 0.99784664 0.99886334 0.49313123;
++	-6.27248177 -0.00070459 0.00043181 7.27177718 0.99784713 0.99886360 0.49313129;
++	-6.27248216 -0.00070443 0.00043171 7.27177773 0.99784762 0.99886386 0.49313133;
++	-6.27248254 -0.00070427 0.00043161 7.27177827 0.99784811 0.99886411 0.49313142;
++	-6.27248293 -0.00070411 0.00043152 7.27177882 0.99784860 0.99886437 0.49313147;
++	-6.27248331 -0.00070395 0.00043142 7.27177936 0.99784909 0.99886463 0.49313152;
++	-6.27248370 -0.00070379 0.00043132 7.27177991 0.99784958 0.99886489 0.49313157;
++	-6.27248408 -0.00070363 0.00043122 7.27178045 0.99785007 0.99886515 0.49313161;
++	-6.27248447 -0.00070347 0.00043112 7.27178099 0.99785056 0.99886541 0.49313168;
++	-6.27248485 -0.00070331 0.00043103 7.27178154 0.99785104 0.99886566 0.49313174;
++	-6.27248523 -0.00070315 0.00043093 7.27178208 0.99785153 0.99886592 0.49313183;
++	-6.27248562 -0.00070299 0.00043083 7.27178263 0.99785202 0.99886618 0.49313186;
++	-6.27248600 -0.00070283 0.00043073 7.27178317 0.99785251 0.99886644 0.49313191;
++	-6.27248638 -0.00070267 0.00043063 7.27178371 0.99785300 0.99886669 0.49313198;
++	-6.27248677 -0.00070251 0.00043054 7.27178425 0.99785348 0.99886695 0.49313204;
++	-6.27248715 -0.00070235 0.00043044 7.27178480 0.99785397 0.99886721 0.49313208;
++	-6.27248753 -0.00070219 0.00043034 7.27178534 0.99785446 0.99886747 0.49313214;
++	-6.27248792 -0.00070203 0.00043024 7.27178588 0.99785495 0.99886772 0.49313220;
++	-6.27248830 -0.00070188 0.00043014 7.27178642 0.99785543 0.99886798 0.49313224;
++	-6.27248868 -0.00070172 0.00043005 7.27178696 0.99785592 0.99886824 0.49313233;
++	-6.27248906 -0.00070156 0.00042995 7.27178751 0.99785641 0.99886849 0.49313235;
++	-6.27248945 -0.00070140 0.00042985 7.27178805 0.99785689 0.99886875 0.49313243;
++	-6.27248983 -0.00070124 0.00042975 7.27178859 0.99785738 0.99886901 0.49313250;
++	-6.27249021 -0.00070108 0.00042966 7.27178913 0.99785786 0.99886926 0.49313254;
++	-6.27249059 -0.00070092 0.00042956 7.27178967 0.99785835 0.99886952 0.49313259;
++	-6.27249097 -0.00070076 0.00042946 7.27179021 0.99785883 0.99886977 0.49313265;
++	-6.27249135 -0.00070060 0.00042937 7.27179075 0.99785932 0.99887003 0.49313270;
++	-6.27249173 -0.00070045 0.00042927 7.27179129 0.99785980 0.99887029 0.49313277;
++	-6.27249211 -0.00070029 0.00042917 7.27179183 0.99786029 0.99887054 0.49313282;
++	-6.27249250 -0.00070013 0.00042907 7.27179237 0.99786077 0.99887080 0.49313289;
++	-6.27249288 -0.00069997 0.00042898 7.27179290 0.99786126 0.99887105 0.49313291;
++	-6.27249326 -0.00069981 0.00042888 7.27179344 0.99786174 0.99887131 0.49313301;
++	-6.27249364 -0.00069965 0.00042878 7.27179398 0.99786222 0.99887156 0.49313305;
++	-6.27249402 -0.00069950 0.00042869 7.27179452 0.99786271 0.99887182 0.49313311;
++	-6.27249440 -0.00069934 0.00042859 7.27179506 0.99786319 0.99887207 0.49313316;
++	-6.27249477 -0.00069918 0.00042849 7.27179559 0.99786367 0.99887233 0.49313322;
++	-6.27249515 -0.00069902 0.00042840 7.27179613 0.99786415 0.99887258 0.49313329;
++	-6.27249553 -0.00069887 0.00042830 7.27179667 0.99786464 0.99887284 0.49313333;
++	-6.27249591 -0.00069871 0.00042820 7.27179720 0.99786512 0.99887309 0.49313340;
++	-6.27249629 -0.00069855 0.00042810 7.27179774 0.99786560 0.99887335 0.49313343;
++	-6.27249667 -0.00069839 0.00042801 7.27179828 0.99786608 0.99887360 0.49313349;
++	-6.27249705 -0.00069823 0.00042791 7.27179881 0.99786656 0.99887385 0.49313355;
++	-6.27249743 -0.00069808 0.00042781 7.27179935 0.99786705 0.99887411 0.49313361;
++	-6.27249780 -0.00069792 0.00042772 7.27179988 0.99786753 0.99887436 0.49313365;
++	-6.27249818 -0.00069776 0.00042762 7.27180042 0.99786801 0.99887462 0.49313373;
++	-6.27249856 -0.00069761 0.00042753 7.27180095 0.99786849 0.99887487 0.49313378;
++	-6.27249894 -0.00069745 0.00042743 7.27180149 0.99786897 0.99887512 0.49313382;
++	-6.27249931 -0.00069729 0.00042733 7.27180202 0.99786945 0.99887538 0.49313387;
++	-6.27249969 -0.00069713 0.00042724 7.27180256 0.99786993 0.99887563 0.49313395;
++	-6.27250007 -0.00069698 0.00042714 7.27180309 0.99787041 0.99887588 0.49313401;
++	-6.27250045 -0.00069682 0.00042704 7.27180363 0.99787089 0.99887614 0.49313405;
++	-6.27250082 -0.00069666 0.00042695 7.27180416 0.99787137 0.99887639 0.49313411;
++	-6.27250120 -0.00069651 0.00042685 7.27180469 0.99787185 0.99887664 0.49313417;
++	-6.27250158 -0.00069635 0.00042676 7.27180523 0.99787233 0.99887689 0.49313425;
++	-6.27250195 -0.00069619 0.00042666 7.27180576 0.99787281 0.99887715 0.49313428;
++	-6.27250233 -0.00069604 0.00042656 7.27180629 0.99787328 0.99887740 0.49313433;
++	-6.27250270 -0.00069588 0.00042647 7.27180682 0.99787376 0.99887765 0.49313436;
++	-6.27250308 -0.00069572 0.00042637 7.27180736 0.99787424 0.99887790 0.49313447;
++	-6.27250345 -0.00069557 0.00042628 7.27180789 0.99787472 0.99887816 0.49313453;
++	-6.27250383 -0.00069541 0.00042618 7.27180842 0.99787520 0.99887841 0.49313456;
++	-6.27250420 -0.00069525 0.00042608 7.27180895 0.99787567 0.99887866 0.49313463;
++	-6.27250458 -0.00069510 0.00042599 7.27180948 0.99787615 0.99887891 0.49313466;
++	-6.27250495 -0.00069494 0.00042589 7.27181001 0.99787663 0.99887916 0.49313471;
++	-6.27250533 -0.00069479 0.00042580 7.27181054 0.99787711 0.99887942 0.49313478;
++	-6.27250570 -0.00069463 0.00042570 7.27181107 0.99787758 0.99887967 0.49313484;
++	-6.27250608 -0.00069447 0.00042561 7.27181160 0.99787806 0.99887992 0.49313489;
++	-6.27250645 -0.00069432 0.00042551 7.27181213 0.99787854 0.99888017 0.49313499;
++	-6.27250683 -0.00069416 0.00042541 7.27181266 0.99787901 0.99888042 0.49313500;
++	-6.27250720 -0.00069401 0.00042532 7.27181319 0.99787949 0.99888067 0.49313506;
++	-6.27250757 -0.00069385 0.00042522 7.27181372 0.99787996 0.99888092 0.49313510;
++	-6.27250795 -0.00069370 0.00042513 7.27181425 0.99788044 0.99888117 0.49313518;
++	-6.27250832 -0.00069354 0.00042503 7.27181478 0.99788091 0.99888143 0.49313523;
++	-6.27250869 -0.00069339 0.00042494 7.27181531 0.99788139 0.99888168 0.49313528;
++	-6.27250906 -0.00069323 0.00042484 7.27181583 0.99788186 0.99888193 0.49313532;
++	-6.27250944 -0.00069308 0.00042475 7.27181636 0.99788234 0.99888218 0.49313537;
++	-6.27250981 -0.00069292 0.00042465 7.27181689 0.99788281 0.99888243 0.49313545;
++	-6.27251018 -0.00069277 0.00042456 7.27181742 0.99788329 0.99888268 0.49313551;
++	-6.27251055 -0.00069261 0.00042446 7.27181794 0.99788376 0.99888293 0.49313557;
++	-6.27251093 -0.00069246 0.00042437 7.27181847 0.99788423 0.99888318 0.49313560;
++	-6.27251130 -0.00069230 0.00042427 7.27181900 0.99788471 0.99888343 0.49313566;
++	-6.27251167 -0.00069215 0.00042418 7.27181952 0.99788518 0.99888368 0.49313574;
++	-6.27251204 -0.00069199 0.00042408 7.27182005 0.99788565 0.99888393 0.49313579;
++	-6.27251241 -0.00069184 0.00042399 7.27182058 0.99788613 0.99888418 0.49313583;
++	-6.27251278 -0.00069168 0.00042389 7.27182110 0.99788660 0.99888443 0.49313587;
++	-6.27251315 -0.00069153 0.00042380 7.27182163 0.99788707 0.99888468 0.49313593;
++	-6.27251353 -0.00069137 0.00042370 7.27182215 0.99788754 0.99888492 0.49313600;
++	-6.27251390 -0.00069122 0.00042361 7.27182268 0.99788801 0.99888517 0.49313604;
++	-6.27251427 -0.00069106 0.00042351 7.27182320 0.99788849 0.99888542 0.49313613;
++	-6.27251464 -0.00069091 0.00042342 7.27182373 0.99788896 0.99888567 0.49313616;
++	-6.27251501 -0.00069076 0.00042332 7.27182425 0.99788943 0.99888592 0.49313621;
++	-6.27251538 -0.00069060 0.00042323 7.27182478 0.99788990 0.99888617 0.49313628;
++	-6.27251575 -0.00069045 0.00042314 7.27182530 0.99789037 0.99888642 0.49313634;
++	-6.27251612 -0.00069029 0.00042304 7.27182582 0.99789084 0.99888667 0.49313637;
++	-6.27251649 -0.00069014 0.00042295 7.27182635 0.99789131 0.99888691 0.49313644;
++	-6.27251685 -0.00068999 0.00042285 7.27182687 0.99789178 0.99888716 0.49313651;
++	-6.27251722 -0.00068983 0.00042276 7.27182739 0.99789225 0.99888741 0.49313656;
++	-6.27251759 -0.00068968 0.00042266 7.27182791 0.99789272 0.99888766 0.49313664;
++	-6.27251796 -0.00068952 0.00042257 7.27182844 0.99789319 0.99888791 0.49313666;
++	-6.27251833 -0.00068937 0.00042248 7.27182896 0.99789366 0.99888815 0.49313670;
++	-6.27251870 -0.00068922 0.00042238 7.27182948 0.99789413 0.99888840 0.49313677;
++	-6.27251907 -0.00068906 0.00042229 7.27183000 0.99789460 0.99888865 0.49313683;
++	-6.27251943 -0.00068891 0.00042219 7.27183052 0.99789507 0.99888890 0.49313687;
++	-6.27251980 -0.00068876 0.00042210 7.27183104 0.99789554 0.99888914 0.49313691;
++	-6.27252017 -0.00068860 0.00042200 7.27183157 0.99789601 0.99888939 0.49313700;
++	-6.27252054 -0.00068845 0.00042191 7.27183209 0.99789647 0.99888964 0.49313706;
++	-6.27252091 -0.00068830 0.00042182 7.27183261 0.99789694 0.99888988 0.49313707;
++	-6.27252127 -0.00068815 0.00042172 7.27183313 0.99789741 0.99889013 0.49313711;
++	-6.27252164 -0.00068799 0.00042163 7.27183365 0.99789788 0.99889038 0.49313720;
++	-6.27252201 -0.00068784 0.00042154 7.27183417 0.99789835 0.99889062 0.49313727;
++	-6.27252237 -0.00068769 0.00042144 7.27183469 0.99789881 0.99889087 0.49313733;
++	-6.27252274 -0.00068753 0.00042135 7.27183521 0.99789928 0.99889112 0.49313737;
++	-6.27252311 -0.00068738 0.00042125 7.27183572 0.99789975 0.99889136 0.49313744;
++	-6.27252347 -0.00068723 0.00042116 7.27183624 0.99790021 0.99889161 0.49313749;
++	-6.27252384 -0.00068708 0.00042107 7.27183676 0.99790068 0.99889186 0.49313754;
++	-6.27252420 -0.00068692 0.00042097 7.27183728 0.99790115 0.99889210 0.49313760;
++	-6.27252457 -0.00068677 0.00042088 7.27183780 0.99790161 0.99889235 0.49313767;
++	-6.27252494 -0.00068662 0.00042079 7.27183832 0.99790208 0.99889259 0.49313771;
++	-6.27252530 -0.00068647 0.00042069 7.27183883 0.99790254 0.99889284 0.49313775;
++	-6.27252567 -0.00068631 0.00042060 7.27183935 0.99790301 0.99889309 0.49313782;
++	-6.27252603 -0.00068616 0.00042051 7.27183987 0.99790347 0.99889333 0.49313786;
++	-6.27252640 -0.00068601 0.00042041 7.27184039 0.99790394 0.99889358 0.49313791;
++	-6.27252676 -0.00068586 0.00042032 7.27184090 0.99790440 0.99889382 0.49313797;
++	-6.27252712 -0.00068571 0.00042023 7.27184142 0.99790487 0.99889407 0.49313801;
++	-6.27252749 -0.00068555 0.00042013 7.27184193 0.99790533 0.99889431 0.49313810;
++	-6.27252785 -0.00068540 0.00042004 7.27184245 0.99790579 0.99889456 0.49313815;
++	-6.27252822 -0.00068525 0.00041995 7.27184297 0.99790626 0.99889480 0.49313818;
++	-6.27252858 -0.00068510 0.00041985 7.27184348 0.99790672 0.99889505 0.49313824;
++	-6.27252895 -0.00068495 0.00041976 7.27184400 0.99790719 0.99889529 0.49313828;
++	-6.27252931 -0.00068480 0.00041967 7.27184451 0.99790765 0.99889553 0.49313835;
++	-6.27252967 -0.00068464 0.00041958 7.27184503 0.99790811 0.99889578 0.49313842;
++	-6.27253004 -0.00068449 0.00041948 7.27184554 0.99790857 0.99889602 0.49313845;
++	-6.27253040 -0.00068434 0.00041939 7.27184606 0.99790904 0.99889627 0.49313853;
++	-6.27253076 -0.00068419 0.00041930 7.27184657 0.99790950 0.99889651 0.49313854;
++	-6.27253112 -0.00068404 0.00041920 7.27184708 0.99790996 0.99889676 0.49313861;
++	-6.27253149 -0.00068389 0.00041911 7.27184760 0.99791042 0.99889700 0.49313867;
++	-6.27253185 -0.00068374 0.00041902 7.27184811 0.99791089 0.99889724 0.49313874;
++	-6.27253221 -0.00068359 0.00041893 7.27184862 0.99791135 0.99889749 0.49313876;
++	-6.27253257 -0.00068344 0.00041883 7.27184914 0.99791181 0.99889773 0.49313881;
++	-6.27253293 -0.00068328 0.00041874 7.27184965 0.99791227 0.99889797 0.49313886;
++	-6.27253330 -0.00068313 0.00041865 7.27185016 0.99791273 0.99889822 0.49313893;
++	-6.27253366 -0.00068298 0.00041856 7.27185068 0.99791319 0.99889846 0.49313897;
++	-6.27253402 -0.00068283 0.00041846 7.27185119 0.99791365 0.99889870 0.49313904;
++	-6.27253438 -0.00068268 0.00041837 7.27185170 0.99791411 0.99889895 0.49313909;
++	-6.27253474 -0.00068253 0.00041828 7.27185221 0.99791457 0.99889919 0.49313915;
++	-6.27253510 -0.00068238 0.00041819 7.27185272 0.99791503 0.99889943 0.49313920;
++	-6.27253546 -0.00068223 0.00041810 7.27185323 0.99791549 0.99889967 0.49313924;
++	-6.27253582 -0.00068208 0.00041800 7.27185374 0.99791595 0.99889992 0.49313932;
++	-6.27253618 -0.00068193 0.00041791 7.27185425 0.99791641 0.99890016 0.49313937;
++	-6.27253654 -0.00068178 0.00041782 7.27185477 0.99791687 0.99890040 0.49313944;
++	-6.27253690 -0.00068163 0.00041773 7.27185528 0.99791733 0.99890064 0.49313947;
++	-6.27253726 -0.00068148 0.00041763 7.27185579 0.99791779 0.99890089 0.49313953;
++	-6.27253762 -0.00068133 0.00041754 7.27185630 0.99791825 0.99890113 0.49313960;
++	-6.27253798 -0.00068118 0.00041745 7.27185680 0.99791871 0.99890137 0.49313964;
++	-6.27253834 -0.00068103 0.00041736 7.27185731 0.99791916 0.99890161 0.49313969;
++	-6.27253870 -0.00068088 0.00041727 7.27185782 0.99791962 0.99890185 0.49313973;
++	-6.27253906 -0.00068073 0.00041718 7.27185833 0.99792008 0.99890209 0.49313978;
++	-6.27253942 -0.00068058 0.00041708 7.27185884 0.99792054 0.99890234 0.49313983;
++	-6.27253978 -0.00068043 0.00041699 7.27185935 0.99792099 0.99890258 0.49313991;
++	-6.27254014 -0.00068028 0.00041690 7.27185986 0.99792145 0.99890282 0.49313998;
++	-6.27254050 -0.00068013 0.00041681 7.27186036 0.99792191 0.99890306 0.49314002;
++	-6.27254086 -0.00067998 0.00041672 7.27186087 0.99792237 0.99890330 0.49314008;
++	-6.27254121 -0.00067983 0.00041662 7.27186138 0.99792282 0.99890354 0.49314012;
++	-6.27254157 -0.00067968 0.00041653 7.27186189 0.99792328 0.99890378 0.49314018;
++	-6.27254193 -0.00067953 0.00041644 7.27186239 0.99792373 0.99890402 0.49314019;
++	-6.27254229 -0.00067939 0.00041635 7.27186290 0.99792419 0.99890426 0.49314025;
++	-6.27254264 -0.00067924 0.00041626 7.27186341 0.99792465 0.99890450 0.49314034;
++	-6.27254300 -0.00067909 0.00041617 7.27186391 0.99792510 0.99890474 0.49314040;
++	-6.27254336 -0.00067894 0.00041608 7.27186442 0.99792556 0.99890499 0.49314044;
++	-6.27254372 -0.00067879 0.00041598 7.27186493 0.99792601 0.99890523 0.49314049;
++	-6.27254407 -0.00067864 0.00041589 7.27186543 0.99792647 0.99890547 0.49314054;
++	-6.27254443 -0.00067849 0.00041580 7.27186594 0.99792692 0.99890571 0.49314058;
++	-6.27254479 -0.00067834 0.00041571 7.27186644 0.99792738 0.99890595 0.49314062;
++	-6.27254514 -0.00067819 0.00041562 7.27186695 0.99792783 0.99890618 0.49314070;
++	-6.27254550 -0.00067805 0.00041553 7.27186745 0.99792828 0.99890642 0.49314075;
++	-6.27254585 -0.00067790 0.00041544 7.27186796 0.99792874 0.99890666 0.49314079;
++	-6.27254621 -0.00067775 0.00041535 7.27186846 0.99792919 0.99890690 0.49314085;
++	-6.27254657 -0.00067760 0.00041526 7.27186897 0.99792965 0.99890714 0.49314090;
++	-6.27254692 -0.00067745 0.00041516 7.27186947 0.99793010 0.99890738 0.49314094;
++	-6.27254728 -0.00067730 0.00041507 7.27186997 0.99793055 0.99890762 0.49314100;
++	-6.27254763 -0.00067716 0.00041498 7.27187048 0.99793101 0.99890786 0.49314106;
++	-6.27254799 -0.00067701 0.00041489 7.27187098 0.99793146 0.99890810 0.49314111;
++	-6.27254834 -0.00067686 0.00041480 7.27187148 0.99793191 0.99890834 0.49314118;
++	-6.27254870 -0.00067671 0.00041471 7.27187199 0.99793236 0.99890858 0.49314123;
++	-6.27254905 -0.00067656 0.00041462 7.27187249 0.99793282 0.99890882 0.49314127;
++	-6.27254941 -0.00067642 0.00041453 7.27187299 0.99793327 0.99890905 0.49314132;
++	-6.27254976 -0.00067627 0.00041444 7.27187349 0.99793372 0.99890929 0.49314138;
++	-6.27255012 -0.00067612 0.00041435 7.27187399 0.99793417 0.99890953 0.49314144;
++	-6.27255047 -0.00067597 0.00041426 7.27187450 0.99793462 0.99890977 0.49314149;
++	-6.27255082 -0.00067583 0.00041417 7.27187500 0.99793507 0.99891001 0.49314155;
++	-6.27255118 -0.00067568 0.00041408 7.27187550 0.99793552 0.99891025 0.49314159;
++	-6.27255153 -0.00067553 0.00041399 7.27187600 0.99793597 0.99891048 0.49314164;
++	-6.27255188 -0.00067538 0.00041390 7.27187650 0.99793643 0.99891072 0.49314169;
++	-6.27255224 -0.00067524 0.00041381 7.27187700 0.99793688 0.99891096 0.49314176;
++	-6.27255259 -0.00067509 0.00041372 7.27187750 0.99793733 0.99891120 0.49314181;
++	-6.27255294 -0.00067494 0.00041362 7.27187800 0.99793778 0.99891143 0.49314185;
++	-6.27255330 -0.00067479 0.00041353 7.27187850 0.99793823 0.99891167 0.49314190;
++	-6.27255365 -0.00067465 0.00041344 7.27187900 0.99793868 0.99891191 0.49314197;
++	-6.27255400 -0.00067450 0.00041335 7.27187950 0.99793912 0.99891215 0.49314200;
++	-6.27255435 -0.00067435 0.00041326 7.27188000 0.99793957 0.99891238 0.49314208;
++	-6.27255470 -0.00067421 0.00041317 7.27188050 0.99794002 0.99891262 0.49314213;
++	-6.27255506 -0.00067406 0.00041308 7.27188100 0.99794047 0.99891286 0.49314217;
++	-6.27255541 -0.00067391 0.00041299 7.27188150 0.99794092 0.99891309 0.49314220;
++	-6.27255576 -0.00067377 0.00041290 7.27188199 0.99794137 0.99891333 0.49314225;
++	-6.27255611 -0.00067362 0.00041281 7.27188249 0.99794182 0.99891357 0.49314232;
++	-6.27255646 -0.00067347 0.00041272 7.27188299 0.99794227 0.99891380 0.49314238;
++	-6.27255681 -0.00067333 0.00041263 7.27188349 0.99794271 0.99891404 0.49314241;
++	-6.27255717 -0.00067318 0.00041254 7.27188398 0.99794316 0.99891428 0.49314247;
++	-6.27255752 -0.00067303 0.00041245 7.27188448 0.99794361 0.99891451 0.49314253;
++	-6.27255787 -0.00067289 0.00041236 7.27188498 0.99794406 0.99891475 0.49314258;
++	-6.27255822 -0.00067274 0.00041228 7.27188548 0.99794450 0.99891498 0.49314263;
++	-6.27255857 -0.00067260 0.00041219 7.27188597 0.99794495 0.99891522 0.49314268;
++	-6.27255892 -0.00067245 0.00041210 7.27188647 0.99794540 0.99891545 0.49314274;
++	-6.27255927 -0.00067230 0.00041201 7.27188696 0.99794584 0.99891569 0.49314280;
++	-6.27255962 -0.00067216 0.00041192 7.27188746 0.99794629 0.99891593 0.49314284;
++	-6.27255997 -0.00067201 0.00041183 7.27188796 0.99794673 0.99891616 0.49314287;
++	-6.27256032 -0.00067187 0.00041174 7.27188845 0.99794718 0.99891640 0.49314297;
++	-6.27256067 -0.00067172 0.00041165 7.27188895 0.99794763 0.99891663 0.49314303;
++	-6.27256102 -0.00067157 0.00041156 7.27188944 0.99794807 0.99891687 0.49314307;
++	-6.27256137 -0.00067143 0.00041147 7.27188994 0.99794852 0.99891710 0.49314312;
++	-6.27256171 -0.00067128 0.00041138 7.27189043 0.99794896 0.99891734 0.49314315;
++	-6.27256206 -0.00067114 0.00041129 7.27189093 0.99794941 0.99891757 0.49314322;
++	-6.27256241 -0.00067099 0.00041120 7.27189142 0.99794985 0.99891781 0.49314325;
++	-6.27256276 -0.00067085 0.00041111 7.27189191 0.99795030 0.99891804 0.49314333;
++	-6.27256311 -0.00067070 0.00041102 7.27189241 0.99795074 0.99891828 0.49314337;
++	-6.27256346 -0.00067056 0.00041093 7.27189290 0.99795119 0.99891851 0.49314340;
++	-6.27256381 -0.00067041 0.00041085 7.27189339 0.99795163 0.99891874 0.49314348;
++	-6.27256415 -0.00067027 0.00041076 7.27189389 0.99795207 0.99891898 0.49314353;
++	-6.27256450 -0.00067012 0.00041067 7.27189438 0.99795252 0.99891921 0.49314358;
++	-6.27256485 -0.00066998 0.00041058 7.27189487 0.99795296 0.99891945 0.49314365;
++	-6.27256520 -0.00066983 0.00041049 7.27189537 0.99795340 0.99891968 0.49314368;
++	-6.27256554 -0.00066969 0.00041040 7.27189586 0.99795385 0.99891991 0.49314376;
++	-6.27256589 -0.00066954 0.00041031 7.27189635 0.99795429 0.99892015 0.49314379;
++	-6.27256624 -0.00066940 0.00041022 7.27189684 0.99795473 0.99892038 0.49314383;
++	-6.27256658 -0.00066925 0.00041013 7.27189733 0.99795517 0.99892061 0.49314389;
++	-6.27256693 -0.00066911 0.00041005 7.27189782 0.99795562 0.99892085 0.49314395;
++	-6.27256728 -0.00066896 0.00040996 7.27189832 0.99795606 0.99892108 0.49314398;
++	-6.27256762 -0.00066882 0.00040987 7.27189881 0.99795650 0.99892131 0.49314403;
++	-6.27256797 -0.00066867 0.00040978 7.27189930 0.99795694 0.99892155 0.49314409;
++	-6.27256832 -0.00066853 0.00040969 7.27189979 0.99795738 0.99892178 0.49314415;
++	-6.27256866 -0.00066838 0.00040960 7.27190028 0.99795782 0.99892201 0.49314419;
++	-6.27256901 -0.00066824 0.00040951 7.27190077 0.99795827 0.99892225 0.49314425;
++	-6.27256935 -0.00066810 0.00040943 7.27190126 0.99795871 0.99892248 0.49314428;
++	-6.27256970 -0.00066795 0.00040934 7.27190175 0.99795915 0.99892271 0.49314436;
++	-6.27257004 -0.00066781 0.00040925 7.27190224 0.99795959 0.99892294 0.49314439;
++	-6.27257039 -0.00066766 0.00040916 7.27190273 0.99796003 0.99892318 0.49314446;
++	-6.27257073 -0.00066752 0.00040907 7.27190322 0.99796047 0.99892341 0.49314452;
++	-6.27257108 -0.00066738 0.00040898 7.27190370 0.99796091 0.99892364 0.49314453;
++	-6.27257142 -0.00066723 0.00040890 7.27190419 0.99796135 0.99892387 0.49314460;
++	-6.27257177 -0.00066709 0.00040881 7.27190468 0.99796179 0.99892410 0.49314466;
++	-6.27257211 -0.00066694 0.00040872 7.27190517 0.99796223 0.99892434 0.49314470;
++	-6.27257246 -0.00066680 0.00040863 7.27190566 0.99796267 0.99892457 0.49314476;
++	-6.27257280 -0.00066666 0.00040854 7.27190615 0.99796311 0.99892480 0.49314482;
++	-6.27257315 -0.00066651 0.00040846 7.27190663 0.99796354 0.99892503 0.49314486;
++	-6.27257349 -0.00066637 0.00040837 7.27190712 0.99796398 0.99892526 0.49314490;
++	-6.27257383 -0.00066623 0.00040828 7.27190761 0.99796442 0.99892549 0.49314498;
++	-6.27257418 -0.00066608 0.00040819 7.27190809 0.99796486 0.99892573 0.49314501;
++	-6.27257452 -0.00066594 0.00040810 7.27190858 0.99796530 0.99892596 0.49314505;
++	-6.27257486 -0.00066580 0.00040802 7.27190907 0.99796574 0.99892619 0.49314512;
++	-6.27257521 -0.00066565 0.00040793 7.27190955 0.99796617 0.99892642 0.49314515;
++	-6.27257555 -0.00066551 0.00040784 7.27191004 0.99796661 0.99892665 0.49314521;
++	-6.27257589 -0.00066537 0.00040775 7.27191053 0.99796705 0.99892688 0.49314528;
++	-6.27257623 -0.00066522 0.00040766 7.27191101 0.99796748 0.99892711 0.49314532;
++	-6.27257658 -0.00066508 0.00040758 7.27191150 0.99796792 0.99892734 0.49314537;
++	-6.27257692 -0.00066494 0.00040749 7.27191198 0.99796836 0.99892757 0.49314541;
++	-6.27257726 -0.00066480 0.00040740 7.27191247 0.99796880 0.99892780 0.49314547;
++	-6.27257760 -0.00066465 0.00040731 7.27191295 0.99796923 0.99892803 0.49314555;
++	-6.27257795 -0.00066451 0.00040723 7.27191344 0.99796967 0.99892826 0.49314558;
++	-6.27257829 -0.00066437 0.00040714 7.27191392 0.99797010 0.99892849 0.49314564;
++	-6.27257863 -0.00066422 0.00040705 7.27191440 0.99797054 0.99892872 0.49314568;
++	-6.27257897 -0.00066408 0.00040696 7.27191489 0.99797098 0.99892895 0.49314573;
++	-6.27257931 -0.00066394 0.00040688 7.27191537 0.99797141 0.99892918 0.49314579;
++	-6.27257965 -0.00066380 0.00040679 7.27191586 0.99797185 0.99892941 0.49314582;
++	-6.27257999 -0.00066366 0.00040670 7.27191634 0.99797228 0.99892964 0.49314588;
++	-6.27258033 -0.00066351 0.00040662 7.27191682 0.99797272 0.99892987 0.49314593;
++	-6.27258068 -0.00066337 0.00040653 7.27191730 0.99797315 0.99893010 0.49314598;
++	-6.27258102 -0.00066323 0.00040644 7.27191779 0.99797358 0.99893033 0.49314603;
++	-6.27258136 -0.00066309 0.00040635 7.27191827 0.99797402 0.99893056 0.49314608;
++	-6.27258170 -0.00066294 0.00040627 7.27191875 0.99797445 0.99893079 0.49314611;
++	-6.27258204 -0.00066280 0.00040618 7.27191923 0.99797489 0.99893102 0.49314621;
++	-6.27258238 -0.00066266 0.00040609 7.27191972 0.99797532 0.99893125 0.49314623;
++	-6.27258272 -0.00066252 0.00040601 7.27192020 0.99797575 0.99893148 0.49314626;
++	-6.27258306 -0.00066238 0.00040592 7.27192068 0.99797619 0.99893170 0.49314635;
++	-6.27258340 -0.00066224 0.00040583 7.27192116 0.99797662 0.99893193 0.49314639;
++	-6.27258373 -0.00066209 0.00040574 7.27192164 0.99797705 0.99893216 0.49314644;
++	-6.27258407 -0.00066195 0.00040566 7.27192212 0.99797749 0.99893239 0.49314649;
++	-6.27258441 -0.00066181 0.00040557 7.27192260 0.99797792 0.99893262 0.49314651;
++	-6.27258475 -0.00066167 0.00040548 7.27192308 0.99797835 0.99893285 0.49314660;
++	-6.27258509 -0.00066153 0.00040540 7.27192356 0.99797878 0.99893307 0.49314663;
++	-6.27258543 -0.00066139 0.00040531 7.27192404 0.99797922 0.99893330 0.49314669;
++	-6.27258577 -0.00066125 0.00040522 7.27192452 0.99797965 0.99893353 0.49314673;
++	-6.27258611 -0.00066110 0.00040514 7.27192500 0.99798008 0.99893376 0.49314679;
++	-6.27258644 -0.00066096 0.00040505 7.27192548 0.99798051 0.99893399 0.49314686;
++	-6.27258678 -0.00066082 0.00040496 7.27192596 0.99798094 0.99893421 0.49314689;
++	-6.27258712 -0.00066068 0.00040488 7.27192644 0.99798137 0.99893444 0.49314694;
++	-6.27258746 -0.00066054 0.00040479 7.27192692 0.99798181 0.99893467 0.49314700;
++	-6.27258780 -0.00066040 0.00040471 7.27192740 0.99798224 0.99893490 0.49314705;
++	-6.27258813 -0.00066026 0.00040462 7.27192788 0.99798267 0.99893512 0.49314708;
++	-6.27258847 -0.00066012 0.00040453 7.27192835 0.99798310 0.99893535 0.49314712;
++	-6.27258881 -0.00065998 0.00040445 7.27192883 0.99798353 0.99893558 0.49314719;
++	-6.27258914 -0.00065984 0.00040436 7.27192931 0.99798396 0.99893580 0.49314727;
++	-6.27258948 -0.00065970 0.00040427 7.27192979 0.99798439 0.99893603 0.49314727;
++	-6.27258982 -0.00065955 0.00040419 7.27193026 0.99798482 0.99893626 0.49314731;
++	-6.27259015 -0.00065941 0.00040410 7.27193074 0.99798525 0.99893648 0.49314740;
++	-6.27259049 -0.00065927 0.00040401 7.27193122 0.99798568 0.99893671 0.49314745;
++	-6.27259083 -0.00065913 0.00040393 7.27193169 0.99798610 0.99893694 0.49314746;
++	-6.27259116 -0.00065899 0.00040384 7.27193217 0.99798653 0.99893716 0.49314754;
++	-6.27259150 -0.00065885 0.00040376 7.27193265 0.99798696 0.99893739 0.49314761;
++	-6.27259184 -0.00065871 0.00040367 7.27193312 0.99798739 0.99893762 0.49314766;
++	-6.27259217 -0.00065857 0.00040358 7.27193360 0.99798782 0.99893784 0.49314769;
++	-6.27259251 -0.00065843 0.00040350 7.27193407 0.99798825 0.99893807 0.49314775;
++	-6.27259284 -0.00065829 0.00040341 7.27193455 0.99798868 0.99893829 0.49314778;
++	-6.27259318 -0.00065815 0.00040333 7.27193502 0.99798910 0.99893852 0.49314784;
++	-6.27259351 -0.00065801 0.00040324 7.27193550 0.99798953 0.99893875 0.49314788;
++	-6.27259385 -0.00065787 0.00040316 7.27193597 0.99798996 0.99893897 0.49314794;
++	-6.27259418 -0.00065773 0.00040307 7.27193645 0.99799039 0.99893920 0.49314799;
++	-6.27259452 -0.00065759 0.00040298 7.27193692 0.99799081 0.99893942 0.49314805;
++	-6.27259485 -0.00065745 0.00040290 7.27193740 0.99799124 0.99893965 0.49314807;
++	-6.27259519 -0.00065731 0.00040281 7.27193787 0.99799167 0.99893987 0.49314813;
++	-6.27259552 -0.00065717 0.00040273 7.27193835 0.99799209 0.99894010 0.49314822;
++	-6.27259585 -0.00065703 0.00040264 7.27193882 0.99799252 0.99894032 0.49314825;
++	-6.27259619 -0.00065690 0.00040256 7.27193929 0.99799295 0.99894055 0.49314830;
++	-6.27259652 -0.00065676 0.00040247 7.27193977 0.99799337 0.99894077 0.49314836;
++	-6.27259686 -0.00065662 0.00040239 7.27194024 0.99799380 0.99894100 0.49314839;
++	-6.27259719 -0.00065648 0.00040230 7.27194071 0.99799422 0.99894122 0.49314844;
++	-6.27259752 -0.00065634 0.00040221 7.27194118 0.99799465 0.99894145 0.49314848;
++	-6.27259786 -0.00065620 0.00040213 7.27194166 0.99799507 0.99894167 0.49314852;
++	-6.27259819 -0.00065606 0.00040204 7.27194213 0.99799550 0.99894190 0.49314858;
++	-6.27259852 -0.00065592 0.00040196 7.27194260 0.99799593 0.99894212 0.49314864;
++	-6.27259885 -0.00065578 0.00040187 7.27194307 0.99799635 0.99894234 0.49314867;
++	-6.27259919 -0.00065564 0.00040179 7.27194354 0.99799677 0.99894257 0.49314872;
++	-6.27259952 -0.00065550 0.00040170 7.27194402 0.99799720 0.99894279 0.49314880;
++	-6.27259985 -0.00065537 0.00040162 7.27194449 0.99799762 0.99894302 0.49314880;
++	-6.27260018 -0.00065523 0.00040153 7.27194496 0.99799805 0.99894324 0.49314888;
++	-6.27260052 -0.00065509 0.00040145 7.27194543 0.99799847 0.99894346 0.49314897;
++	-6.27260085 -0.00065495 0.00040136 7.27194590 0.99799889 0.99894369 0.49314899;
++	-6.27260118 -0.00065481 0.00040128 7.27194637 0.99799932 0.99894391 0.49314902;
++	-6.27260151 -0.00065467 0.00040119 7.27194684 0.99799974 0.99894413 0.49314908;
++	-6.27260184 -0.00065453 0.00040111 7.27194731 0.99800016 0.99894436 0.49314911;
++	-6.27260217 -0.00065440 0.00040102 7.27194778 0.99800059 0.99894458 0.49314920;
++	-6.27260251 -0.00065426 0.00040094 7.27194825 0.99800101 0.99894480 0.49314922;
++	-6.27260284 -0.00065412 0.00040085 7.27194872 0.99800143 0.99894503 0.49314928;
++	-6.27260317 -0.00065398 0.00040077 7.27194919 0.99800186 0.99894525 0.49314931;
++	-6.27260350 -0.00065384 0.00040068 7.27194966 0.99800228 0.99894547 0.49314937;
++	-6.27260383 -0.00065370 0.00040060 7.27195013 0.99800270 0.99894570 0.49314942;
++	-6.27260416 -0.00065357 0.00040051 7.27195059 0.99800312 0.99894592 0.49314947;
++	-6.27260449 -0.00065343 0.00040043 7.27195106 0.99800354 0.99894614 0.49314952;
++	-6.27260482 -0.00065329 0.00040035 7.27195153 0.99800397 0.99894636 0.49314960;
++	-6.27260515 -0.00065315 0.00040026 7.27195200 0.99800439 0.99894659 0.49314963;
++	-6.27260548 -0.00065302 0.00040018 7.27195247 0.99800481 0.99894681 0.49314965;
++	-6.27260581 -0.00065288 0.00040009 7.27195293 0.99800523 0.99894703 0.49314972;
++	-6.27260614 -0.00065274 0.00040001 7.27195340 0.99800565 0.99894725 0.49314975;
++	-6.27260647 -0.00065260 0.00039992 7.27195387 0.99800607 0.99894747 0.49314983;
++	-6.27260680 -0.00065246 0.00039984 7.27195434 0.99800649 0.99894770 0.49314987;
++	-6.27260713 -0.00065233 0.00039975 7.27195480 0.99800691 0.99894792 0.49314994;
++	-6.27260746 -0.00065219 0.00039967 7.27195527 0.99800733 0.99894814 0.49314996;
++	-6.27260779 -0.00065205 0.00039959 7.27195573 0.99800775 0.99894836 0.49314998;
++	-6.27260812 -0.00065192 0.00039950 7.27195620 0.99800817 0.99894858 0.49315004;
++	-6.27260844 -0.00065178 0.00039942 7.27195667 0.99800859 0.99894880 0.49315011;
++	-6.27260877 -0.00065164 0.00039933 7.27195713 0.99800901 0.99894903 0.49315016;
++	-6.27260910 -0.00065150 0.00039925 7.27195760 0.99800943 0.99894925 0.49315020;
++	-6.27260943 -0.00065137 0.00039917 7.27195806 0.99800985 0.99894947 0.49315028;
++	-6.27260976 -0.00065123 0.00039908 7.27195853 0.99801027 0.99894969 0.49315027;
++	-6.27261009 -0.00065109 0.00039900 7.27195899 0.99801069 0.99894991 0.49315035;
++	-6.27261041 -0.00065096 0.00039891 7.27195946 0.99801110 0.99895013 0.49315041;
++	-6.27261074 -0.00065082 0.00039883 7.27195992 0.99801152 0.99895035 0.49315047;
++	-6.27261107 -0.00065068 0.00039875 7.27196039 0.99801194 0.99895057 0.49315053;
++	-6.27261140 -0.00065055 0.00039866 7.27196085 0.99801236 0.99895079 0.49315055;
++	-6.27261172 -0.00065041 0.00039858 7.27196132 0.99801278 0.99895101 0.49315059;
++	-6.27261205 -0.00065027 0.00039849 7.27196178 0.99801320 0.99895123 0.49315063;
++	-6.27261238 -0.00065014 0.00039841 7.27196224 0.99801361 0.99895145 0.49315070;
++	-6.27261271 -0.00065000 0.00039833 7.27196271 0.99801403 0.99895167 0.49315074;
++	-6.27261303 -0.00064986 0.00039824 7.27196317 0.99801445 0.99895189 0.49315081;
++	-6.27261336 -0.00064973 0.00039816 7.27196363 0.99801486 0.99895212 0.49315083;
++	-6.27261369 -0.00064959 0.00039808 7.27196410 0.99801528 0.99895233 0.49315088;
++	-6.27261401 -0.00064945 0.00039799 7.27196456 0.99801570 0.99895255 0.49315095;
++	-6.27261434 -0.00064932 0.00039791 7.27196502 0.99801611 0.99895277 0.49315102;
++	-6.27261466 -0.00064918 0.00039782 7.27196548 0.99801653 0.99895299 0.49315101;
++	-6.27261499 -0.00064904 0.00039774 7.27196595 0.99801695 0.99895321 0.49315109;
++	-6.27261532 -0.00064891 0.00039766 7.27196641 0.99801736 0.99895343 0.49315112;
++	-6.27261564 -0.00064877 0.00039757 7.27196687 0.99801778 0.99895365 0.49315120;
++	-6.27261597 -0.00064864 0.00039749 7.27196733 0.99801819 0.99895387 0.49315122;
++	-6.27261629 -0.00064850 0.00039741 7.27196779 0.99801861 0.99895409 0.49315129;
++	-6.27261662 -0.00064836 0.00039732 7.27196825 0.99801902 0.99895431 0.49315134;
++	-6.27261694 -0.00064823 0.00039724 7.27196871 0.99801944 0.99895453 0.49315136;
++	-6.27261727 -0.00064809 0.00039716 7.27196917 0.99801985 0.99895475 0.49315141;
++	-6.27261759 -0.00064796 0.00039707 7.27196963 0.99802027 0.99895497 0.49315149;
++	-6.27261792 -0.00064782 0.00039699 7.27197009 0.99802068 0.99895519 0.49315153;
++	-6.27261824 -0.00064769 0.00039691 7.27197056 0.99802110 0.99895540 0.49315156;
++	-6.27261857 -0.00064755 0.00039683 7.27197101 0.99802151 0.99895562 0.49315162;
++	-6.27261889 -0.00064742 0.00039674 7.27197147 0.99802193 0.99895584 0.49315167;
++	-6.27261921 -0.00064728 0.00039666 7.27197193 0.99802234 0.99895606 0.49315173;
++	-6.27261954 -0.00064715 0.00039658 7.27197239 0.99802275 0.99895628 0.49315176;
++	-6.27261986 -0.00064701 0.00039649 7.27197285 0.99802317 0.99895650 0.49315180;
++	-6.27262019 -0.00064687 0.00039641 7.27197331 0.99802358 0.99895671 0.49315186;
++	-6.27262051 -0.00064674 0.00039633 7.27197377 0.99802399 0.99895693 0.49315191;
++	-6.27262083 -0.00064660 0.00039624 7.27197423 0.99802441 0.99895715 0.49315198;
++	-6.27262116 -0.00064647 0.00039616 7.27197469 0.99802482 0.99895737 0.49315200;
++	-6.27262148 -0.00064633 0.00039608 7.27197515 0.99802523 0.99895759 0.49315204;
++	-6.27262180 -0.00064620 0.00039600 7.27197560 0.99802564 0.99895780 0.49315211;
++	-6.27262213 -0.00064606 0.00039591 7.27197606 0.99802606 0.99895802 0.49315216;
++	-6.27262245 -0.00064593 0.00039583 7.27197652 0.99802647 0.99895824 0.49315219;
++	-6.27262277 -0.00064579 0.00039575 7.27197698 0.99802688 0.99895846 0.49315225;
++	-6.27262309 -0.00064566 0.00039567 7.27197743 0.99802729 0.99895867 0.49315226;
++	-6.27262342 -0.00064553 0.00039558 7.27197789 0.99802770 0.99895889 0.49315233;
++	-6.27262374 -0.00064539 0.00039550 7.27197835 0.99802812 0.99895911 0.49315238;
++	-6.27262406 -0.00064526 0.00039542 7.27197880 0.99802853 0.99895933 0.49315244;
++	-6.27262438 -0.00064512 0.00039534 7.27197926 0.99802894 0.99895954 0.49315248;
++	-6.27262470 -0.00064499 0.00039525 7.27197972 0.99802935 0.99895976 0.49315254;
++	-6.27262503 -0.00064485 0.00039517 7.27198017 0.99802976 0.99895998 0.49315255;
++	-6.27262535 -0.00064472 0.00039509 7.27198063 0.99803017 0.99896019 0.49315260;
++	-6.27262567 -0.00064458 0.00039501 7.27198108 0.99803058 0.99896041 0.49315266;
++	-6.27262599 -0.00064445 0.00039492 7.27198154 0.99803099 0.99896063 0.49315272;
++	-6.27262631 -0.00064432 0.00039484 7.27198199 0.99803140 0.99896084 0.49315276;
++	-6.27262663 -0.00064418 0.00039476 7.27198245 0.99803181 0.99896106 0.49315283;
++	-6.27262695 -0.00064405 0.00039468 7.27198290 0.99803222 0.99896127 0.49315287;
++	-6.27262727 -0.00064391 0.00039460 7.27198336 0.99803263 0.99896149 0.49315291;
++	-6.27262759 -0.00064378 0.00039451 7.27198381 0.99803304 0.99896171 0.49315298;
++	-6.27262792 -0.00064365 0.00039443 7.27198427 0.99803345 0.99896192 0.49315301;
++	-6.27262824 -0.00064351 0.00039435 7.27198472 0.99803386 0.99896214 0.49315305;
++	-6.27262856 -0.00064338 0.00039427 7.27198518 0.99803427 0.99896235 0.49315310;
++	-6.27262888 -0.00064325 0.00039418 7.27198563 0.99803468 0.99896257 0.49315315;
++	-6.27262920 -0.00064311 0.00039410 7.27198608 0.99803508 0.99896279 0.49315320;
++	-6.27262952 -0.00064298 0.00039402 7.27198654 0.99803549 0.99896300 0.49315324;
++	-6.27262984 -0.00064284 0.00039394 7.27198699 0.99803590 0.99896322 0.49315329;
++	-6.27263015 -0.00064271 0.00039386 7.27198744 0.99803631 0.99896343 0.49315335;
++	-6.27263047 -0.00064258 0.00039378 7.27198790 0.99803672 0.99896365 0.49315341;
++	-6.27263079 -0.00064244 0.00039369 7.27198835 0.99803712 0.99896386 0.49315341;
++	-6.27263111 -0.00064231 0.00039361 7.27198880 0.99803753 0.99896408 0.49315348;
++	-6.27263143 -0.00064218 0.00039353 7.27198925 0.99803794 0.99896429 0.49315355;
++	-6.27263175 -0.00064204 0.00039345 7.27198971 0.99803835 0.99896451 0.49315360;
++	-6.27263207 -0.00064191 0.00039337 7.27199016 0.99803875 0.99896472 0.49315362;
++	-6.27263239 -0.00064178 0.00039329 7.27199061 0.99803916 0.99896494 0.49315366;
++	-6.27263271 -0.00064165 0.00039320 7.27199106 0.99803957 0.99896515 0.49315370;
++	-6.27263302 -0.00064151 0.00039312 7.27199151 0.99803997 0.99896537 0.49315378;
++	-6.27263334 -0.00064138 0.00039304 7.27199196 0.99804038 0.99896558 0.49315382;
++	-6.27263366 -0.00064125 0.00039296 7.27199241 0.99804079 0.99896579 0.49315384;
++	-6.27263398 -0.00064111 0.00039288 7.27199287 0.99804119 0.99896601 0.49315390;
++	-6.27263430 -0.00064098 0.00039280 7.27199332 0.99804160 0.99896622 0.49315398;
++	-6.27263461 -0.00064085 0.00039271 7.27199377 0.99804200 0.99896644 0.49315398;
++	-6.27263493 -0.00064072 0.00039263 7.27199422 0.99804241 0.99896665 0.49315402;
++	-6.27263525 -0.00064058 0.00039255 7.27199467 0.99804281 0.99896686 0.49315410;
++	-6.27263557 -0.00064045 0.00039247 7.27199512 0.99804322 0.99896708 0.49315415;
++	-6.27263588 -0.00064032 0.00039239 7.27199557 0.99804362 0.99896729 0.49315420;
++	-6.27263620 -0.00064019 0.00039231 7.27199602 0.99804403 0.99896751 0.49315423;
++	-6.27263652 -0.00064005 0.00039223 7.27199646 0.99804443 0.99896772 0.49315429;
++	-6.27263683 -0.00063992 0.00039215 7.27199691 0.99804484 0.99896793 0.49315433;
++	-6.27263715 -0.00063979 0.00039206 7.27199736 0.99804524 0.99896815 0.49315438;
++	-6.27263747 -0.00063966 0.00039198 7.27199781 0.99804565 0.99896836 0.49315441;
++	-6.27263778 -0.00063952 0.00039190 7.27199826 0.99804605 0.99896857 0.49315445;
++	-6.27263810 -0.00063939 0.00039182 7.27199871 0.99804645 0.99896879 0.49315452;
++	-6.27263842 -0.00063926 0.00039174 7.27199916 0.99804686 0.99896900 0.49315453;
++	-6.27263873 -0.00063913 0.00039166 7.27199960 0.99804726 0.99896921 0.49315461;
++	-6.27263905 -0.00063900 0.00039158 7.27200005 0.99804766 0.99896942 0.49315465;
++	-6.27263936 -0.00063886 0.00039150 7.27200050 0.99804807 0.99896964 0.49315471;
++	-6.27263968 -0.00063873 0.00039142 7.27200095 0.99804847 0.99896985 0.49315476;
++	-6.27263999 -0.00063860 0.00039134 7.27200139 0.99804887 0.99897006 0.49315480;
++	-6.27264031 -0.00063847 0.00039126 7.27200184 0.99804928 0.99897028 0.49315486;
++	-6.27264063 -0.00063834 0.00039117 7.27200229 0.99804968 0.99897049 0.49315489;
++	-6.27264094 -0.00063821 0.00039109 7.27200273 0.99805008 0.99897070 0.49315491;
++	-6.27264126 -0.00063807 0.00039101 7.27200318 0.99805048 0.99897091 0.49315503;
++	-6.27264157 -0.00063794 0.00039093 7.27200363 0.99805088 0.99897112 0.49315504;
++	-6.27264188 -0.00063781 0.00039085 7.27200407 0.99805129 0.99897134 0.49315507;
++	-6.27264220 -0.00063768 0.00039077 7.27200452 0.99805169 0.99897155 0.49315512;
++	-6.27264251 -0.00063755 0.00039069 7.27200496 0.99805209 0.99897176 0.49315517;
++	-6.27264283 -0.00063742 0.00039061 7.27200541 0.99805249 0.99897197 0.49315521;
++	-6.27264314 -0.00063729 0.00039053 7.27200586 0.99805289 0.99897218 0.49315529;
++	-6.27264346 -0.00063716 0.00039045 7.27200630 0.99805329 0.99897240 0.49315533;
++	-6.27264377 -0.00063702 0.00039037 7.27200675 0.99805369 0.99897261 0.49315538;
++	-6.27264408 -0.00063689 0.00039029 7.27200719 0.99805409 0.99897282 0.49315540;
++	-6.27264440 -0.00063676 0.00039021 7.27200764 0.99805450 0.99897303 0.49315545;
++	-6.27264471 -0.00063663 0.00039013 7.27200808 0.99805490 0.99897324 0.49315550;
++	-6.27264502 -0.00063650 0.00039005 7.27200852 0.99805530 0.99897345 0.49315556;
++	-6.27264534 -0.00063637 0.00038997 7.27200897 0.99805570 0.99897366 0.49315563;
++	-6.27264565 -0.00063624 0.00038989 7.27200941 0.99805610 0.99897387 0.49315563;
++	-6.27264596 -0.00063611 0.00038981 7.27200986 0.99805649 0.99897409 0.49315568;
++	-6.27264628 -0.00063598 0.00038973 7.27201030 0.99805689 0.99897430 0.49315572;
++	-6.27264659 -0.00063585 0.00038965 7.27201074 0.99805729 0.99897451 0.49315579;
++	-6.27264690 -0.00063572 0.00038957 7.27201119 0.99805769 0.99897472 0.49315582;
++	-6.27264721 -0.00063559 0.00038949 7.27201163 0.99805809 0.99897493 0.49315589;
++	-6.27264753 -0.00063545 0.00038941 7.27201207 0.99805849 0.99897514 0.49315595;
++	-6.27264784 -0.00063532 0.00038933 7.27201251 0.99805889 0.99897535 0.49315600;
++	-6.27264815 -0.00063519 0.00038925 7.27201296 0.99805929 0.99897556 0.49315603;
++	-6.27264846 -0.00063506 0.00038917 7.27201340 0.99805969 0.99897577 0.49315606;
++	-6.27264877 -0.00063493 0.00038909 7.27201384 0.99806008 0.99897598 0.49315609;
++	-6.27264909 -0.00063480 0.00038901 7.27201428 0.99806048 0.99897619 0.49315614;
++	-6.27264940 -0.00063467 0.00038893 7.27201472 0.99806088 0.99897640 0.49315621;
++	-6.27264971 -0.00063454 0.00038885 7.27201517 0.99806128 0.99897661 0.49315622;
++	-6.27265002 -0.00063441 0.00038877 7.27201561 0.99806168 0.99897682 0.49315632;
++	-6.27265033 -0.00063428 0.00038869 7.27201605 0.99806207 0.99897703 0.49315636;
++	-6.27265064 -0.00063415 0.00038861 7.27201649 0.99806247 0.99897724 0.49315639;
++	-6.27265095 -0.00063402 0.00038853 7.27201693 0.99806287 0.99897745 0.49315644;
++	-6.27265126 -0.00063389 0.00038845 7.27201737 0.99806326 0.99897766 0.49315648;
++	-6.27265157 -0.00063376 0.00038837 7.27201781 0.99806366 0.99897787 0.49315654;
++	-6.27265189 -0.00063363 0.00038829 7.27201825 0.99806406 0.99897808 0.49315656;
++	-6.27265220 -0.00063350 0.00038821 7.27201869 0.99806445 0.99897829 0.49315663;
++	-6.27265251 -0.00063337 0.00038813 7.27201913 0.99806485 0.99897849 0.49315664;
++	-6.27265282 -0.00063324 0.00038805 7.27201957 0.99806525 0.99897870 0.49315672;
++	-6.27265313 -0.00063312 0.00038797 7.27202001 0.99806564 0.99897891 0.49315678;
++	-6.27265344 -0.00063299 0.00038789 7.27202045 0.99806604 0.99897912 0.49315679;
++	-6.27265375 -0.00063286 0.00038781 7.27202089 0.99806643 0.99897933 0.49315682;
++	-6.27265406 -0.00063273 0.00038773 7.27202133 0.99806683 0.99897954 0.49315688;
++	-6.27265436 -0.00063260 0.00038765 7.27202177 0.99806722 0.99897975 0.49315697;
++	-6.27265467 -0.00063247 0.00038758 7.27202221 0.99806762 0.99897996 0.49315698;
++	-6.27265498 -0.00063234 0.00038750 7.27202264 0.99806801 0.99898016 0.49315705;
++	-6.27265529 -0.00063221 0.00038742 7.27202308 0.99806841 0.99898037 0.49315710;
++	-6.27265560 -0.00063208 0.00038734 7.27202352 0.99806880 0.99898058 0.49315714;
++	-6.27265591 -0.00063195 0.00038726 7.27202396 0.99806920 0.99898079 0.49315716;
++	-6.27265622 -0.00063182 0.00038718 7.27202440 0.99806959 0.99898100 0.49315722;
++	-6.27265653 -0.00063169 0.00038710 7.27202483 0.99806999 0.99898121 0.49315726;
++	-6.27265684 -0.00063157 0.00038702 7.27202527 0.99807038 0.99898141 0.49315731;
++	-6.27265714 -0.00063144 0.00038694 7.27202571 0.99807077 0.99898162 0.49315737;
++	-6.27265745 -0.00063131 0.00038686 7.27202614 0.99807117 0.99898183 0.49315740;
++	-6.27265776 -0.00063118 0.00038678 7.27202658 0.99807156 0.99898204 0.49315744;
++	-6.27265807 -0.00063105 0.00038671 7.27202702 0.99807195 0.99898224 0.49315747;
++	-6.27265838 -0.00063092 0.00038663 7.27202745 0.99807235 0.99898245 0.49315751;
++	-6.27265868 -0.00063079 0.00038655 7.27202789 0.99807274 0.99898266 0.49315758;
++	-6.27265899 -0.00063066 0.00038647 7.27202833 0.99807313 0.99898287 0.49315760;
++	-6.27265930 -0.00063054 0.00038639 7.27202876 0.99807353 0.99898307 0.49315770;
++	-6.27265961 -0.00063041 0.00038631 7.27202920 0.99807392 0.99898328 0.49315771;
++	-6.27265991 -0.00063028 0.00038623 7.27202963 0.99807431 0.99898349 0.49315780;
++	-6.27266022 -0.00063015 0.00038615 7.27203007 0.99807470 0.99898369 0.49315780;
++	-6.27266053 -0.00063002 0.00038608 7.27203051 0.99807510 0.99898390 0.49315786;
++	-6.27266083 -0.00062989 0.00038600 7.27203094 0.99807549 0.99898411 0.49315792;
++	-6.27266114 -0.00062977 0.00038592 7.27203138 0.99807588 0.99898432 0.49315794;
++	-6.27266145 -0.00062964 0.00038584 7.27203181 0.99807627 0.99898452 0.49315802;
++	-6.27266175 -0.00062951 0.00038576 7.27203224 0.99807666 0.99898473 0.49315805;
++	-6.27266206 -0.00062938 0.00038568 7.27203268 0.99807705 0.99898493 0.49315808;
++	-6.27266237 -0.00062925 0.00038560 7.27203311 0.99807744 0.99898514 0.49315812;
++	-6.27266267 -0.00062913 0.00038553 7.27203355 0.99807784 0.99898535 0.49315818;
++	-6.27266298 -0.00062900 0.00038545 7.27203398 0.99807823 0.99898555 0.49315821;
++	-6.27266329 -0.00062887 0.00038537 7.27203441 0.99807862 0.99898576 0.49315828;
++	-6.27266359 -0.00062874 0.00038529 7.27203485 0.99807901 0.99898597 0.49315830;
++	-6.27266390 -0.00062862 0.00038521 7.27203528 0.99807940 0.99898617 0.49315836;
++	-6.27266420 -0.00062849 0.00038513 7.27203571 0.99807979 0.99898638 0.49315841;
++	-6.27266451 -0.00062836 0.00038506 7.27203615 0.99808018 0.99898658 0.49315847;
++	-6.27266481 -0.00062823 0.00038498 7.27203658 0.99808057 0.99898679 0.49315850;
++	-6.27266512 -0.00062811 0.00038490 7.27203701 0.99808096 0.99898700 0.49315856;
++	-6.27266542 -0.00062798 0.00038482 7.27203744 0.99808135 0.99898720 0.49315859;
++	-6.27266573 -0.00062785 0.00038474 7.27203788 0.99808174 0.99898741 0.49315862;
++	-6.27266603 -0.00062772 0.00038467 7.27203831 0.99808213 0.99898761 0.49315867;
++	-6.27266634 -0.00062760 0.00038459 7.27203874 0.99808251 0.99898782 0.49315875;
++	-6.27266664 -0.00062747 0.00038451 7.27203917 0.99808290 0.99898802 0.49315880;
++	-6.27266695 -0.00062734 0.00038443 7.27203960 0.99808329 0.99898823 0.49315883;
++	-6.27266725 -0.00062721 0.00038435 7.27204004 0.99808368 0.99898843 0.49315887;
++	-6.27266755 -0.00062709 0.00038428 7.27204047 0.99808407 0.99898864 0.49315892;
++	-6.27266786 -0.00062696 0.00038420 7.27204090 0.99808446 0.99898884 0.49315895;
++	-6.27266816 -0.00062683 0.00038412 7.27204133 0.99808485 0.99898905 0.49315899;
++	-6.27266847 -0.00062671 0.00038404 7.27204176 0.99808523 0.99898925 0.49315906;
++	-6.27266877 -0.00062658 0.00038396 7.27204219 0.99808562 0.99898946 0.49315910;
++	-6.27266907 -0.00062645 0.00038389 7.27204262 0.99808601 0.99898966 0.49315911;
++	-6.27266938 -0.00062633 0.00038381 7.27204305 0.99808640 0.99898987 0.49315917;
++	-6.27266968 -0.00062620 0.00038373 7.27204348 0.99808678 0.99899007 0.49315922;
++	-6.27266998 -0.00062607 0.00038365 7.27204391 0.99808717 0.99899027 0.49315926;
++	-6.27267028 -0.00062595 0.00038358 7.27204434 0.99808756 0.99899048 0.49315930;
++	-6.27267059 -0.00062582 0.00038350 7.27204477 0.99808794 0.99899068 0.49315934;
++	-6.27267089 -0.00062569 0.00038342 7.27204520 0.99808833 0.99899089 0.49315940;
++	-6.27267119 -0.00062557 0.00038334 7.27204563 0.99808872 0.99899109 0.49315945;
++	-6.27267150 -0.00062544 0.00038327 7.27204606 0.99808910 0.99899129 0.49315950;
++	-6.27267180 -0.00062531 0.00038319 7.27204648 0.99808949 0.99899150 0.49315953;
++	-6.27267210 -0.00062519 0.00038311 7.27204691 0.99808988 0.99899170 0.49315956;
++	-6.27267240 -0.00062506 0.00038303 7.27204734 0.99809026 0.99899191 0.49315961;
++	-6.27267270 -0.00062494 0.00038296 7.27204777 0.99809065 0.99899211 0.49315968;
++	-6.27267301 -0.00062481 0.00038288 7.27204820 0.99809103 0.99899231 0.49315973;
++	-6.27267331 -0.00062468 0.00038280 7.27204863 0.99809142 0.99899252 0.49315977;
++	-6.27267361 -0.00062456 0.00038272 7.27204905 0.99809180 0.99899272 0.49315980;
++	-6.27267391 -0.00062443 0.00038265 7.27204948 0.99809219 0.99899292 0.49315984;
++	-6.27267421 -0.00062431 0.00038257 7.27204991 0.99809257 0.99899313 0.49315989;
++	-6.27267451 -0.00062418 0.00038249 7.27205033 0.99809296 0.99899333 0.49315993;
++	-6.27267481 -0.00062405 0.00038241 7.27205076 0.99809334 0.99899353 0.49315999;
++	-6.27267512 -0.00062393 0.00038234 7.27205119 0.99809373 0.99899373 0.49316004;
++	-6.27267542 -0.00062380 0.00038226 7.27205162 0.99809411 0.99899394 0.49316007;
++	-6.27267572 -0.00062368 0.00038218 7.27205204 0.99809450 0.99899414 0.49316011;
++	-6.27267602 -0.00062355 0.00038211 7.27205247 0.99809488 0.99899434 0.49316016;
++	-6.27267632 -0.00062342 0.00038203 7.27205289 0.99809527 0.99899455 0.49316020;
++	-6.27267662 -0.00062330 0.00038195 7.27205332 0.99809565 0.99899475 0.49316023;
++	-6.27267692 -0.00062317 0.00038188 7.27205375 0.99809603 0.99899495 0.49316033;
++	-6.27267722 -0.00062305 0.00038180 7.27205417 0.99809642 0.99899515 0.49316032;
++	-6.27267752 -0.00062292 0.00038172 7.27205460 0.99809680 0.99899536 0.49316037;
++	-6.27267782 -0.00062280 0.00038164 7.27205502 0.99809718 0.99899556 0.49316043;
++	-6.27267812 -0.00062267 0.00038157 7.27205545 0.99809757 0.99899576 0.49316049;
++	-6.27267842 -0.00062255 0.00038149 7.27205587 0.99809795 0.99899596 0.49316053;
++	-6.27267872 -0.00062242 0.00038141 7.27205630 0.99809833 0.99899616 0.49316060;
++	-6.27267902 -0.00062230 0.00038134 7.27205672 0.99809871 0.99899637 0.49316061;
++	-6.27267932 -0.00062217 0.00038126 7.27205715 0.99809910 0.99899657 0.49316068;
++	-6.27267962 -0.00062205 0.00038118 7.27205757 0.99809948 0.99899677 0.49316072;
++	-6.27267992 -0.00062192 0.00038111 7.27205799 0.99809986 0.99899697 0.49316074;
++	-6.27268021 -0.00062180 0.00038103 7.27205842 0.99810024 0.99899717 0.49316079;
++	-6.27268051 -0.00062167 0.00038095 7.27205884 0.99810062 0.99899737 0.49316083;
++	-6.27268081 -0.00062155 0.00038088 7.27205927 0.99810100 0.99899757 0.49316088;
++	-6.27268111 -0.00062142 0.00038080 7.27205969 0.99810139 0.99899778 0.49316090;
++	-6.27268141 -0.00062130 0.00038072 7.27206011 0.99810177 0.99899798 0.49316099;
++	-6.27268171 -0.00062117 0.00038065 7.27206053 0.99810215 0.99899818 0.49316102;
++	-6.27268201 -0.00062105 0.00038057 7.27206096 0.99810253 0.99899838 0.49316107;
++	-6.27268230 -0.00062092 0.00038050 7.27206138 0.99810291 0.99899858 0.49316107;
++	-6.27268260 -0.00062080 0.00038042 7.27206180 0.99810329 0.99899878 0.49316112;
++	-6.27268290 -0.00062067 0.00038034 7.27206223 0.99810367 0.99899898 0.49316121;
++	-6.27268320 -0.00062055 0.00038027 7.27206265 0.99810405 0.99899918 0.49316122;
++	-6.27268350 -0.00062043 0.00038019 7.27206307 0.99810443 0.99899938 0.49316127;
++	-6.27268379 -0.00062030 0.00038011 7.27206349 0.99810481 0.99899958 0.49316133;
++	-6.27268409 -0.00062018 0.00038004 7.27206391 0.99810519 0.99899978 0.49316137;
++	-6.27268439 -0.00062005 0.00037996 7.27206433 0.99810557 0.99899999 0.49316141;
++	-6.27268468 -0.00061993 0.00037989 7.27206476 0.99810595 0.99900019 0.49316145;
++	-6.27268498 -0.00061980 0.00037981 7.27206518 0.99810633 0.99900039 0.49316150;
++	-6.27268528 -0.00061968 0.00037973 7.27206560 0.99810671 0.99900059 0.49316152;
++	-6.27268558 -0.00061956 0.00037966 7.27206602 0.99810709 0.99900079 0.49316158;
++	-6.27268587 -0.00061943 0.00037958 7.27206644 0.99810747 0.99900099 0.49316160;
++	-6.27268617 -0.00061931 0.00037951 7.27206686 0.99810785 0.99900119 0.49316174;
++	-6.27268647 -0.00061919 0.00037943 7.27206728 0.99810823 0.99900139 0.49316174;
++	-6.27268676 -0.00061906 0.00037935 7.27206770 0.99810860 0.99900159 0.49316173;
++	-6.27268706 -0.00061894 0.00037928 7.27206812 0.99810898 0.99900179 0.49316182;
++	-6.27268735 -0.00061881 0.00037920 7.27206854 0.99810936 0.99900198 0.49316185;
++	-6.27268765 -0.00061869 0.00037913 7.27206896 0.99810974 0.99900218 0.49316190;
++	-6.27268795 -0.00061857 0.00037905 7.27206938 0.99811012 0.99900238 0.49316194;
++	-6.27268824 -0.00061844 0.00037897 7.27206980 0.99811049 0.99900258 0.49316199;
++	-6.27268854 -0.00061832 0.00037890 7.27207022 0.99811087 0.99900278 0.49316201;
++	-6.27268883 -0.00061820 0.00037882 7.27207064 0.99811125 0.99900298 0.49316207;
++	-6.27268913 -0.00061807 0.00037875 7.27207106 0.99811163 0.99900318 0.49316215;
++	-6.27268942 -0.00061795 0.00037867 7.27207147 0.99811200 0.99900338 0.49316215;
++	-6.27268972 -0.00061783 0.00037860 7.27207189 0.99811238 0.99900358 0.49316222;
++	-6.27269001 -0.00061770 0.00037852 7.27207231 0.99811276 0.99900378 0.49316225;
++	-6.27269031 -0.00061758 0.00037844 7.27207273 0.99811313 0.99900398 0.49316226;
++	-6.27269060 -0.00061746 0.00037837 7.27207315 0.99811351 0.99900418 0.49316232;
++	-6.27269090 -0.00061733 0.00037829 7.27207356 0.99811389 0.99900437 0.49316241;
++	-6.27269119 -0.00061721 0.00037822 7.27207398 0.99811426 0.99900457 0.49316240;
++	-6.27269149 -0.00061709 0.00037814 7.27207440 0.99811464 0.99900477 0.49316244;
++	-6.27269178 -0.00061696 0.00037807 7.27207482 0.99811502 0.99900497 0.49316250;
++	-6.27269208 -0.00061684 0.00037799 7.27207523 0.99811539 0.99900517 0.49316255;
++	-6.27269237 -0.00061672 0.00037792 7.27207565 0.99811577 0.99900537 0.49316260;
++	-6.27269266 -0.00061660 0.00037784 7.27207607 0.99811614 0.99900556 0.49316268;
++	-6.27269296 -0.00061647 0.00037777 7.27207648 0.99811652 0.99900576 0.49316264;
++	-6.27269325 -0.00061635 0.00037769 7.27207690 0.99811689 0.99900596 0.49316274;
++	-6.27269354 -0.00061623 0.00037762 7.27207732 0.99811727 0.99900616 0.49316275;
++	-6.27269384 -0.00061610 0.00037754 7.27207773 0.99811764 0.99900636 0.49316280;
++	-6.27269413 -0.00061598 0.00037746 7.27207815 0.99811802 0.99900655 0.49316280;
++	-6.27269442 -0.00061586 0.00037739 7.27207857 0.99811839 0.99900675 0.49316288;
++	-6.27269472 -0.00061574 0.00037731 7.27207898 0.99811877 0.99900695 0.49316293;
++	-6.27269501 -0.00061561 0.00037724 7.27207940 0.99811914 0.99900715 0.49316299;
++	-6.27269530 -0.00061549 0.00037716 7.27207981 0.99811952 0.99900734 0.49316305;
++	-6.27269560 -0.00061537 0.00037709 7.27208023 0.99811989 0.99900754 0.49316305;
++	-6.27269589 -0.00061525 0.00037701 7.27208064 0.99812026 0.99900774 0.49316309;
++	-6.27269618 -0.00061512 0.00037694 7.27208106 0.99812064 0.99900794 0.49316319;
++	-6.27269647 -0.00061500 0.00037686 7.27208147 0.99812101 0.99900813 0.49316320;
++	-6.27269677 -0.00061488 0.00037679 7.27208189 0.99812138 0.99900833 0.49316326;
++	-6.27269706 -0.00061476 0.00037671 7.27208230 0.99812176 0.99900853 0.49316331;
++	-6.27269735 -0.00061464 0.00037664 7.27208271 0.99812213 0.99900872 0.49316334;
++	-6.27269764 -0.00061451 0.00037656 7.27208313 0.99812250 0.99900892 0.49316337;
++	-6.27269793 -0.00061439 0.00037649 7.27208354 0.99812288 0.99900912 0.49316343;
++	-6.27269823 -0.00061427 0.00037642 7.27208396 0.99812325 0.99900931 0.49316350;
++	-6.27269852 -0.00061415 0.00037634 7.27208437 0.99812362 0.99900951 0.49316348;
++	-6.27269881 -0.00061403 0.00037627 7.27208478 0.99812399 0.99900971 0.49316356;
++	-6.27269910 -0.00061390 0.00037619 7.27208520 0.99812437 0.99900990 0.49316359;
++	-6.27269939 -0.00061378 0.00037612 7.27208561 0.99812474 0.99901010 0.49316364;
++	-6.27269968 -0.00061366 0.00037604 7.27208602 0.99812511 0.99901030 0.49316368;
++	-6.27269997 -0.00061354 0.00037597 7.27208643 0.99812548 0.99901049 0.49316372;
++	-6.27270027 -0.00061342 0.00037589 7.27208685 0.99812585 0.99901069 0.49316379;
++	-6.27270056 -0.00061330 0.00037582 7.27208726 0.99812623 0.99901089 0.49316380;
++	-6.27270085 -0.00061318 0.00037574 7.27208767 0.99812660 0.99901108 0.49316383;
++	-6.27270114 -0.00061305 0.00037567 7.27208808 0.99812697 0.99901128 0.49316392;
++	-6.27270143 -0.00061293 0.00037559 7.27208850 0.99812734 0.99901147 0.49316393;
++	-6.27270172 -0.00061281 0.00037552 7.27208891 0.99812771 0.99901167 0.49316398;
++	-6.27270201 -0.00061269 0.00037545 7.27208932 0.99812808 0.99901186 0.49316403;
++	-6.27270230 -0.00061257 0.00037537 7.27208973 0.99812845 0.99901206 0.49316407;
++	-6.27270259 -0.00061245 0.00037530 7.27209014 0.99812882 0.99901226 0.49316411;
++	-6.27270288 -0.00061233 0.00037522 7.27209055 0.99812919 0.99901245 0.49316419;
++	-6.27270317 -0.00061221 0.00037515 7.27209096 0.99812956 0.99901265 0.49316420;
++	-6.27270346 -0.00061208 0.00037507 7.27209137 0.99812993 0.99901284 0.49316424;
++	-6.27270375 -0.00061196 0.00037500 7.27209178 0.99813030 0.99901304 0.49316431;
++	-6.27270404 -0.00061184 0.00037493 7.27209219 0.99813067 0.99901323 0.49316432;
++	-6.27270433 -0.00061172 0.00037485 7.27209260 0.99813104 0.99901343 0.49316435;
++	-6.27270462 -0.00061160 0.00037478 7.27209301 0.99813141 0.99901362 0.49316437;
++	-6.27270490 -0.00061148 0.00037470 7.27209342 0.99813178 0.99901382 0.49316447;
++	-6.27270519 -0.00061136 0.00037463 7.27209383 0.99813215 0.99901401 0.49316452;
++	-6.27270548 -0.00061124 0.00037456 7.27209424 0.99813252 0.99901421 0.49316453;
++	-6.27270577 -0.00061112 0.00037448 7.27209465 0.99813289 0.99901440 0.49316460;
++	-6.27270606 -0.00061100 0.00037441 7.27209506 0.99813326 0.99901460 0.49316462;
++	-6.27270635 -0.00061088 0.00037433 7.27209547 0.99813362 0.99901479 0.49316468;
++	-6.27270664 -0.00061076 0.00037426 7.27209588 0.99813399 0.99901498 0.49316472;
++	-6.27270692 -0.00061064 0.00037419 7.27209629 0.99813436 0.99901518 0.49316476;
++	-6.27270721 -0.00061051 0.00037411 7.27209670 0.99813473 0.99901537 0.49316483;
++	-6.27270750 -0.00061039 0.00037404 7.27209711 0.99813510 0.99901557 0.49316482;
++	-6.27270779 -0.00061027 0.00037396 7.27209751 0.99813547 0.99901576 0.49316493;
++	-6.27270808 -0.00061015 0.00037389 7.27209792 0.99813583 0.99901596 0.49316495;
++	-6.27270836 -0.00061003 0.00037382 7.27209833 0.99813620 0.99901615 0.49316498;
++	-6.27270865 -0.00060991 0.00037374 7.27209874 0.99813657 0.99901634 0.49316501;
++	-6.27270894 -0.00060979 0.00037367 7.27209915 0.99813694 0.99901654 0.49316504;
++	-6.27270923 -0.00060967 0.00037360 7.27209955 0.99813730 0.99901673 0.49316509;
++	-6.27270951 -0.00060955 0.00037352 7.27209996 0.99813767 0.99901692 0.49316516;
++	-6.27270980 -0.00060943 0.00037345 7.27210037 0.99813804 0.99901712 0.49316521;
++	-6.27271009 -0.00060931 0.00037338 7.27210078 0.99813840 0.99901731 0.49316522;
++	-6.27271038 -0.00060919 0.00037330 7.27210118 0.99813877 0.99901751 0.49316529;
++	-6.27271066 -0.00060907 0.00037323 7.27210159 0.99813914 0.99901770 0.49316533;
++	-6.27271095 -0.00060895 0.00037315 7.27210200 0.99813950 0.99901789 0.49316538;
++	-6.27271124 -0.00060883 0.00037308 7.27210240 0.99813987 0.99901808 0.49316545;
++	-6.27271152 -0.00060871 0.00037301 7.27210281 0.99814023 0.99901828 0.49316550;
++	-6.27271181 -0.00060859 0.00037293 7.27210321 0.99814060 0.99901847 0.49316550;
++	-6.27271209 -0.00060847 0.00037286 7.27210362 0.99814097 0.99901866 0.49316554;
++	-6.27271238 -0.00060836 0.00037279 7.27210403 0.99814133 0.99901886 0.49316555;
++	-6.27271267 -0.00060824 0.00037271 7.27210443 0.99814170 0.99901905 0.49316564;
++	-6.27271295 -0.00060812 0.00037264 7.27210484 0.99814206 0.99901924 0.49316569;
++	-6.27271324 -0.00060800 0.00037257 7.27210524 0.99814243 0.99901944 0.49316569;
++	-6.27271352 -0.00060788 0.00037249 7.27210565 0.99814279 0.99901963 0.49316572;
++	-6.27271381 -0.00060776 0.00037242 7.27210605 0.99814316 0.99901982 0.49316582;
++	-6.27271410 -0.00060764 0.00037235 7.27210646 0.99814352 0.99902001 0.49316585;
++	-6.27271438 -0.00060752 0.00037228 7.27210686 0.99814389 0.99902021 0.49316587;
++	-6.27271467 -0.00060740 0.00037220 7.27210727 0.99814425 0.99902040 0.49316592;
++	-6.27271495 -0.00060728 0.00037213 7.27210767 0.99814461 0.99902059 0.49316598;
++	-6.27271524 -0.00060716 0.00037206 7.27210807 0.99814498 0.99902078 0.49316599;
++	-6.27271552 -0.00060704 0.00037198 7.27210848 0.99814534 0.99902097 0.49316604;
++	-6.27271581 -0.00060692 0.00037191 7.27210888 0.99814571 0.99902117 0.49316608;
++	-6.27271609 -0.00060680 0.00037184 7.27210929 0.99814607 0.99902136 0.49316611;
++	-6.27271637 -0.00060669 0.00037176 7.27210969 0.99814643 0.99902155 0.49316616;
++	-6.27271666 -0.00060657 0.00037169 7.27211009 0.99814680 0.99902174 0.49316618;
++	-6.27271694 -0.00060645 0.00037162 7.27211050 0.99814716 0.99902193 0.49316624;
++	-6.27271723 -0.00060633 0.00037155 7.27211090 0.99814752 0.99902213 0.49316630;
++	-6.27271751 -0.00060621 0.00037147 7.27211130 0.99814789 0.99902232 0.49316633;
++	-6.27271780 -0.00060609 0.00037140 7.27211170 0.99814825 0.99902251 0.49316640;
++	-6.27271808 -0.00060597 0.00037133 7.27211211 0.99814861 0.99902270 0.49316642;
++	-6.27271836 -0.00060585 0.00037125 7.27211251 0.99814897 0.99902289 0.49316649;
++	-6.27271865 -0.00060574 0.00037118 7.27211291 0.99814934 0.99902308 0.49316653;
++	-6.27271893 -0.00060562 0.00037111 7.27211331 0.99814970 0.99902327 0.49316657;
++	-6.27271921 -0.00060550 0.00037104 7.27211371 0.99815006 0.99902346 0.49316659;
++	-6.27271950 -0.00060538 0.00037096 7.27211412 0.99815042 0.99902366 0.49316664;
++	-6.27271978 -0.00060526 0.00037089 7.27211452 0.99815079 0.99902385 0.49316670;
++	-6.27272006 -0.00060514 0.00037082 7.27211492 0.99815115 0.99902404 0.49316670;
++	-6.27272035 -0.00060503 0.00037075 7.27211532 0.99815151 0.99902423 0.49316673;
++	-6.27272063 -0.00060491 0.00037067 7.27211572 0.99815187 0.99902442 0.49316679;
++	-6.27272091 -0.00060479 0.00037060 7.27211612 0.99815223 0.99902461 0.49316685;
++	-6.27272120 -0.00060467 0.00037053 7.27211652 0.99815259 0.99902480 0.49316688;
++	-6.27272148 -0.00060455 0.00037046 7.27211692 0.99815295 0.99902499 0.49316692;
++	-6.27272176 -0.00060444 0.00037038 7.27211732 0.99815331 0.99902518 0.49316699;
++	-6.27272204 -0.00060432 0.00037031 7.27211773 0.99815367 0.99902537 0.49316698;
++	-6.27272232 -0.00060420 0.00037024 7.27211813 0.99815404 0.99902556 0.49316707;
++	-6.27272261 -0.00060408 0.00037017 7.27211853 0.99815440 0.99902575 0.49316710;
++	-6.27272289 -0.00060396 0.00037009 7.27211893 0.99815476 0.99902594 0.49316715;
++	-6.27272317 -0.00060385 0.00037002 7.27211933 0.99815512 0.99902613 0.49316718;
++	-6.27272345 -0.00060373 0.00036995 7.27211972 0.99815548 0.99902632 0.49316722;
++	-6.27272373 -0.00060361 0.00036988 7.27212012 0.99815584 0.99902651 0.49316726;
++	-6.27272402 -0.00060349 0.00036981 7.27212052 0.99815620 0.99902670 0.49316729;
++	-6.27272430 -0.00060337 0.00036973 7.27212092 0.99815656 0.99902689 0.49316735;
++	-6.27272458 -0.00060326 0.00036966 7.27212132 0.99815691 0.99902708 0.49316741;
++	-6.27272486 -0.00060314 0.00036959 7.27212172 0.99815727 0.99902727 0.49316741;
++	-6.27272514 -0.00060302 0.00036952 7.27212212 0.99815763 0.99902746 0.49316748;
++	-6.27272542 -0.00060290 0.00036945 7.27212252 0.99815799 0.99902765 0.49316753;
++	-6.27272570 -0.00060279 0.00036937 7.27212292 0.99815835 0.99902784 0.49316756;
++	-6.27272598 -0.00060267 0.00036930 7.27212331 0.99815871 0.99902803 0.49316761;
++	-6.27272626 -0.00060255 0.00036923 7.27212371 0.99815907 0.99902822 0.49316767;
++	-6.27272654 -0.00060244 0.00036916 7.27212411 0.99815943 0.99902841 0.49316768;
++	-6.27272683 -0.00060232 0.00036909 7.27212451 0.99815978 0.99902860 0.49316772;
++	-6.27272711 -0.00060220 0.00036901 7.27212490 0.99816014 0.99902879 0.49316778;
++	-6.27272739 -0.00060208 0.00036894 7.27212530 0.99816050 0.99902897 0.49316778;
++	-6.27272767 -0.00060197 0.00036887 7.27212570 0.99816086 0.99902916 0.49316783;
++	-6.27272795 -0.00060185 0.00036880 7.27212610 0.99816122 0.99902935 0.49316788;
++	-6.27272823 -0.00060173 0.00036873 7.27212649 0.99816157 0.99902954 0.49316787;
++	-6.27272851 -0.00060162 0.00036865 7.27212689 0.99816193 0.99902973 0.49316799;
++	-6.27272879 -0.00060150 0.00036858 7.27212729 0.99816229 0.99902992 0.49316801;
++	-6.27272907 -0.00060138 0.00036851 7.27212768 0.99816265 0.99903011 0.49316805;
++	-6.27272934 -0.00060127 0.00036844 7.27212808 0.99816300 0.99903029 0.49316810;
++	-6.27272962 -0.00060115 0.00036837 7.27212848 0.99816336 0.99903048 0.49316812;
++	-6.27272990 -0.00060103 0.00036830 7.27212887 0.99816372 0.99903067 0.49316815;
++	-6.27273018 -0.00060092 0.00036823 7.27212927 0.99816407 0.99903086 0.49316824;
++	-6.27273046 -0.00060080 0.00036815 7.27212966 0.99816443 0.99903105 0.49316825;
++	-6.27273074 -0.00060068 0.00036808 7.27213006 0.99816479 0.99903124 0.49316832;
++	-6.27273102 -0.00060057 0.00036801 7.27213045 0.99816514 0.99903142 0.49316835;
++	-6.27273130 -0.00060045 0.00036794 7.27213085 0.99816550 0.99903161 0.49316839;
++	-6.27273158 -0.00060033 0.00036787 7.27213124 0.99816585 0.99903180 0.49316844;
++	-6.27273186 -0.00060022 0.00036780 7.27213164 0.99816621 0.99903199 0.49316848;
++	-6.27273213 -0.00060010 0.00036773 7.27213203 0.99816657 0.99903218 0.49316850;
++	-6.27273241 -0.00059998 0.00036765 7.27213243 0.99816692 0.99903236 0.49316856;
++	-6.27273269 -0.00059987 0.00036758 7.27213282 0.99816728 0.99903255 0.49316861;
++	-6.27273297 -0.00059975 0.00036751 7.27213322 0.99816763 0.99903274 0.49316864;
++	-6.27273325 -0.00059963 0.00036744 7.27213361 0.99816799 0.99903293 0.49316869;
++	-6.27273352 -0.00059952 0.00036737 7.27213401 0.99816834 0.99903311 0.49316872;
++	-6.27273380 -0.00059940 0.00036730 7.27213440 0.99816870 0.99903330 0.49316876;
++	-6.27273408 -0.00059929 0.00036723 7.27213479 0.99816905 0.99903349 0.49316877;
++	-6.27273436 -0.00059917 0.00036716 7.27213519 0.99816941 0.99903367 0.49316887;
++	-6.27273463 -0.00059905 0.00036708 7.27213558 0.99816976 0.99903386 0.49316888;
++	-6.27273491 -0.00059894 0.00036701 7.27213597 0.99817012 0.99903405 0.49316895;
++	-6.27273519 -0.00059882 0.00036694 7.27213637 0.99817047 0.99903424 0.49316897;
++	-6.27273547 -0.00059871 0.00036687 7.27213676 0.99817082 0.99903442 0.49316901;
++	-6.27273574 -0.00059859 0.00036680 7.27213715 0.99817118 0.99903461 0.49316906;
++	-6.27273602 -0.00059848 0.00036673 7.27213754 0.99817153 0.99903480 0.49316911;
++	-6.27273630 -0.00059836 0.00036666 7.27213794 0.99817189 0.99903498 0.49316913;
++	-6.27273657 -0.00059824 0.00036659 7.27213833 0.99817224 0.99903517 0.49316914;
++	-6.27273685 -0.00059813 0.00036652 7.27213872 0.99817259 0.99903535 0.49316924;
++	-6.27273713 -0.00059801 0.00036645 7.27213911 0.99817295 0.99903554 0.49316926;
++	-6.27273740 -0.00059790 0.00036637 7.27213951 0.99817330 0.99903573 0.49316930;
++	-6.27273768 -0.00059778 0.00036630 7.27213990 0.99817365 0.99903591 0.49316938;
++	-6.27273796 -0.00059767 0.00036623 7.27214029 0.99817400 0.99903610 0.49316938;
++	-6.27273823 -0.00059755 0.00036616 7.27214068 0.99817436 0.99903629 0.49316938;
++	-6.27273851 -0.00059744 0.00036609 7.27214107 0.99817471 0.99903647 0.49316946;
++	-6.27273878 -0.00059732 0.00036602 7.27214146 0.99817506 0.99903666 0.49316948;
++	-6.27273906 -0.00059721 0.00036595 7.27214185 0.99817541 0.99903684 0.49316954;
++	-6.27273933 -0.00059709 0.00036588 7.27214224 0.99817577 0.99903703 0.49316961;
++	-6.27273961 -0.00059698 0.00036581 7.27214263 0.99817612 0.99903722 0.49316964;
++	-6.27273989 -0.00059686 0.00036574 7.27214303 0.99817647 0.99903740 0.49316966;
++	-6.27274016 -0.00059674 0.00036567 7.27214342 0.99817682 0.99903759 0.49316973;
++	-6.27274044 -0.00059663 0.00036560 7.27214381 0.99817717 0.99903777 0.49316976;
++	-6.27274071 -0.00059651 0.00036553 7.27214420 0.99817752 0.99903796 0.49316978;
++	-6.27274099 -0.00059640 0.00036546 7.27214459 0.99817788 0.99903814 0.49316985;
++	-6.27274126 -0.00059629 0.00036539 7.27214498 0.99817823 0.99903833 0.49316985;
++	-6.27274154 -0.00059617 0.00036532 7.27214537 0.99817858 0.99903851 0.49316990;
++	-6.27274181 -0.00059606 0.00036525 7.27214575 0.99817893 0.99903870 0.49316996;
++	-6.27274208 -0.00059594 0.00036517 7.27214614 0.99817928 0.99903888 0.49317001;
++	-6.27274236 -0.00059583 0.00036510 7.27214653 0.99817963 0.99903907 0.49317000;
++	-6.27274263 -0.00059571 0.00036503 7.27214692 0.99817998 0.99903925 0.49317004;
++	-6.27274291 -0.00059560 0.00036496 7.27214731 0.99818033 0.99903944 0.49317008;
++	-6.27274318 -0.00059548 0.00036489 7.27214770 0.99818068 0.99903962 0.49317014;
++	-6.27274346 -0.00059537 0.00036482 7.27214809 0.99818103 0.99903981 0.49317022;
++	-6.27274373 -0.00059525 0.00036475 7.27214848 0.99818138 0.99903999 0.49317024;
++	-6.27274400 -0.00059514 0.00036468 7.27214886 0.99818173 0.99904018 0.49317029;
++	-6.27274428 -0.00059502 0.00036461 7.27214925 0.99818208 0.99904036 0.49317032;
++	-6.27274455 -0.00059491 0.00036454 7.27214964 0.99818243 0.99904055 0.49317037;
++	-6.27274482 -0.00059480 0.00036447 7.27215003 0.99818278 0.99904073 0.49317042;
++	-6.27274510 -0.00059468 0.00036440 7.27215042 0.99818313 0.99904092 0.49317048;
++	-6.27274537 -0.00059457 0.00036433 7.27215080 0.99818348 0.99904110 0.49317047;
++	-6.27274564 -0.00059445 0.00036426 7.27215119 0.99818383 0.99904128 0.49317056;
++	-6.27274592 -0.00059434 0.00036419 7.27215158 0.99818418 0.99904147 0.49317055;
++	-6.27274619 -0.00059422 0.00036412 7.27215197 0.99818452 0.99904165 0.49317062;
++	-6.27274646 -0.00059411 0.00036405 7.27215235 0.99818487 0.99904184 0.49317064;
++	-6.27274674 -0.00059400 0.00036398 7.27215274 0.99818522 0.99904202 0.49317066;
++	-6.27274701 -0.00059388 0.00036391 7.27215313 0.99818557 0.99904220 0.49317073;
++	-6.27274728 -0.00059377 0.00036384 7.27215351 0.99818592 0.99904239 0.49317076;
++	-6.27274755 -0.00059365 0.00036377 7.27215390 0.99818627 0.99904257 0.49317082;
++	-6.27274783 -0.00059354 0.00036370 7.27215428 0.99818661 0.99904276 0.49317086;
++	-6.27274810 -0.00059343 0.00036363 7.27215467 0.99818696 0.99904294 0.49317091;
++	-6.27274837 -0.00059331 0.00036356 7.27215506 0.99818731 0.99904312 0.49317096;
++	-6.27274864 -0.00059320 0.00036349 7.27215544 0.99818766 0.99904331 0.49317092;
++	-6.27274891 -0.00059309 0.00036342 7.27215583 0.99818800 0.99904349 0.49317097;
++	-6.27274919 -0.00059297 0.00036335 7.27215621 0.99818835 0.99904367 0.49317108;
++	-6.27274946 -0.00059286 0.00036329 7.27215660 0.99818870 0.99904386 0.49317108;
++	-6.27274973 -0.00059275 0.00036322 7.27215698 0.99818905 0.99904404 0.49317113;
++	-6.27275000 -0.00059263 0.00036315 7.27215737 0.99818939 0.99904422 0.49317119;
++	-6.27275027 -0.00059252 0.00036308 7.27215775 0.99818974 0.99904440 0.49317125;
++	-6.27275054 -0.00059241 0.00036301 7.27215814 0.99819009 0.99904459 0.49317124;
++	-6.27275081 -0.00059229 0.00036294 7.27215852 0.99819043 0.99904477 0.49317130;
++	-6.27275109 -0.00059218 0.00036287 7.27215891 0.99819078 0.99904495 0.49317131;
++	-6.27275136 -0.00059207 0.00036280 7.27215929 0.99819113 0.99904514 0.49317136;
++	-6.27275163 -0.00059195 0.00036273 7.27215968 0.99819147 0.99904532 0.49317137;
++	-6.27275190 -0.00059184 0.00036266 7.27216006 0.99819182 0.99904550 0.49317148;
++	-6.27275217 -0.00059173 0.00036259 7.27216044 0.99819216 0.99904568 0.49317152;
++	-6.27275244 -0.00059161 0.00036252 7.27216083 0.99819251 0.99904587 0.49317157;
++	-6.27275271 -0.00059150 0.00036245 7.27216121 0.99819285 0.99904605 0.49317157;
++	-6.27275298 -0.00059139 0.00036238 7.27216159 0.99819320 0.99904623 0.49317163;
++	-6.27275325 -0.00059127 0.00036231 7.27216198 0.99819355 0.99904641 0.49317168;
++	-6.27275352 -0.00059116 0.00036224 7.27216236 0.99819389 0.99904660 0.49317166;
++	-6.27275379 -0.00059105 0.00036217 7.27216274 0.99819424 0.99904678 0.49317177;
++	-6.27275406 -0.00059094 0.00036211 7.27216313 0.99819458 0.99904696 0.49317179;
++	-6.27275433 -0.00059082 0.00036204 7.27216351 0.99819493 0.99904714 0.49317185;
++	-6.27275460 -0.00059071 0.00036197 7.27216389 0.99819527 0.99904732 0.49317189;
++	-6.27275487 -0.00059060 0.00036190 7.27216427 0.99819561 0.99904751 0.49317188;
++	-6.27275514 -0.00059048 0.00036183 7.27216466 0.99819596 0.99904769 0.49317197;
++	-6.27275541 -0.00059037 0.00036176 7.27216504 0.99819630 0.99904787 0.49317199;
++	-6.27275568 -0.00059026 0.00036169 7.27216542 0.99819665 0.99904805 0.49317206;
++	-6.27275595 -0.00059015 0.00036162 7.27216580 0.99819699 0.99904823 0.49317206;
++	-6.27275622 -0.00059003 0.00036155 7.27216618 0.99819733 0.99904841 0.49317210;
++	-6.27275649 -0.00058992 0.00036148 7.27216656 0.99819768 0.99904859 0.49317215;
++	-6.27275675 -0.00058981 0.00036141 7.27216695 0.99819802 0.99904878 0.49317218;
++	-6.27275702 -0.00058970 0.00036135 7.27216733 0.99819837 0.99904896 0.49317220;
++	-6.27275729 -0.00058958 0.00036128 7.27216771 0.99819871 0.99904914 0.49317224;
++	-6.27275756 -0.00058947 0.00036121 7.27216809 0.99819905 0.99904932 0.49317231;
++	-6.27275783 -0.00058936 0.00036114 7.27216847 0.99819939 0.99904950 0.49317228;
++	-6.27275810 -0.00058925 0.00036107 7.27216885 0.99819974 0.99904968 0.49317238;
++	-6.27275837 -0.00058914 0.00036100 7.27216923 0.99820008 0.99904986 0.49317241;
++	-6.27275863 -0.00058902 0.00036093 7.27216961 0.99820042 0.99905004 0.49317245;
++	-6.27275890 -0.00058891 0.00036086 7.27216999 0.99820077 0.99905022 0.49317253;
++	-6.27275917 -0.00058880 0.00036080 7.27217037 0.99820111 0.99905040 0.49317256;
++	-6.27275944 -0.00058869 0.00036073 7.27217075 0.99820145 0.99905059 0.49317260;
++	-6.27275971 -0.00058858 0.00036066 7.27217113 0.99820179 0.99905077 0.49317263;
++	-6.27275997 -0.00058846 0.00036059 7.27217151 0.99820213 0.99905095 0.49317270;
++	-6.27276024 -0.00058835 0.00036052 7.27217189 0.99820248 0.99905113 0.49317272;
++	-6.27276051 -0.00058824 0.00036045 7.27217227 0.99820282 0.99905131 0.49317275;
++	-6.27276078 -0.00058813 0.00036038 7.27217265 0.99820316 0.99905149 0.49317277;
++	-6.27276104 -0.00058802 0.00036032 7.27217303 0.99820350 0.99905167 0.49317281;
++	-6.27276131 -0.00058790 0.00036025 7.27217341 0.99820384 0.99905185 0.49317287;
++	-6.27276158 -0.00058779 0.00036018 7.27217378 0.99820418 0.99905203 0.49317289;
++	-6.27276184 -0.00058768 0.00036011 7.27217416 0.99820453 0.99905221 0.49317299;
++	-6.27276211 -0.00058757 0.00036004 7.27217454 0.99820487 0.99905239 0.49317296;
++	-6.27276238 -0.00058746 0.00035997 7.27217492 0.99820521 0.99905257 0.49317302;
++	-6.27276265 -0.00058735 0.00035991 7.27217530 0.99820555 0.99905275 0.49317307;
++	-6.27276291 -0.00058724 0.00035984 7.27217568 0.99820589 0.99905293 0.49317310;
++	-6.27276318 -0.00058712 0.00035977 7.27217605 0.99820623 0.99905311 0.49317316;
++	-6.27276344 -0.00058701 0.00035970 7.27217643 0.99820657 0.99905329 0.49317319;
++	-6.27276371 -0.00058690 0.00035963 7.27217681 0.99820691 0.99905347 0.49317321;
++	-6.27276398 -0.00058679 0.00035956 7.27217719 0.99820725 0.99905365 0.49317328;
++	-6.27276424 -0.00058668 0.00035950 7.27217756 0.99820759 0.99905383 0.49317329;
++	-6.27276451 -0.00058657 0.00035943 7.27217794 0.99820793 0.99905400 0.49317335;
++	-6.27276478 -0.00058646 0.00035936 7.27217832 0.99820827 0.99905418 0.49317337;
++	-6.27276504 -0.00058635 0.00035929 7.27217870 0.99820861 0.99905436 0.49317339;
++	-6.27276531 -0.00058623 0.00035922 7.27217907 0.99820895 0.99905454 0.49317346;
++	-6.27276557 -0.00058612 0.00035916 7.27217945 0.99820929 0.99905472 0.49317350;
++	-6.27276584 -0.00058601 0.00035909 7.27217982 0.99820963 0.99905490 0.49317354;
++	-6.27276610 -0.00058590 0.00035902 7.27218020 0.99820997 0.99905508 0.49317358;
++	-6.27276637 -0.00058579 0.00035895 7.27218058 0.99821030 0.99905526 0.49317361;
++	-6.27276663 -0.00058568 0.00035888 7.27218095 0.99821064 0.99905544 0.49317361;
++	-6.27276690 -0.00058557 0.00035882 7.27218133 0.99821098 0.99905562 0.49317370;
++	-6.27276716 -0.00058546 0.00035875 7.27218170 0.99821132 0.99905579 0.49317372;
++	-6.27276743 -0.00058535 0.00035868 7.27218208 0.99821166 0.99905597 0.49317378;
++	-6.27276769 -0.00058524 0.00035861 7.27218246 0.99821200 0.99905615 0.49317376;
++	-6.27276796 -0.00058513 0.00035854 7.27218283 0.99821233 0.99905633 0.49317387;
++	-6.27276822 -0.00058502 0.00035848 7.27218321 0.99821267 0.99905651 0.49317387;
++	-6.27276849 -0.00058491 0.00035841 7.27218358 0.99821301 0.99905669 0.49317394;
++	-6.27276875 -0.00058480 0.00035834 7.27218396 0.99821335 0.99905686 0.49317397;
++	-6.27276902 -0.00058468 0.00035827 7.27218433 0.99821369 0.99905704 0.49317398;
++	-6.27276928 -0.00058457 0.00035820 7.27218471 0.99821402 0.99905722 0.49317402;
++	-6.27276954 -0.00058446 0.00035814 7.27218508 0.99821436 0.99905740 0.49317408;
++	-6.27276981 -0.00058435 0.00035807 7.27218545 0.99821470 0.99905758 0.49317410;
++	-6.27277007 -0.00058424 0.00035800 7.27218583 0.99821504 0.99905775 0.49317417;
++	-6.27277034 -0.00058413 0.00035793 7.27218620 0.99821537 0.99905793 0.49317422;
++	-6.27277060 -0.00058402 0.00035787 7.27218658 0.99821571 0.99905811 0.49317425;
++	-6.27277086 -0.00058391 0.00035780 7.27218695 0.99821605 0.99905829 0.49317429;
++	-6.27277113 -0.00058380 0.00035773 7.27218732 0.99821638 0.99905847 0.49317428;
++	-6.27277139 -0.00058369 0.00035766 7.27218770 0.99821672 0.99905864 0.49317437;
++	-6.27277165 -0.00058358 0.00035760 7.27218807 0.99821706 0.99905882 0.49317446;
++	-6.27277192 -0.00058347 0.00035753 7.27218844 0.99821739 0.99905900 0.49317445;
++	-6.27277218 -0.00058336 0.00035746 7.27218882 0.99821773 0.99905918 0.49317449;
++	-6.27277244 -0.00058325 0.00035739 7.27218919 0.99821806 0.99905935 0.49317453;
++	-6.27277270 -0.00058314 0.00035733 7.27218956 0.99821840 0.99905953 0.49317457;
++	-6.27277297 -0.00058303 0.00035726 7.27218993 0.99821874 0.99905971 0.49317458;
++	-6.27277323 -0.00058292 0.00035719 7.27219031 0.99821907 0.99905988 0.49317467;
++	-6.27277349 -0.00058281 0.00035712 7.27219068 0.99821941 0.99906006 0.49317464;
++	-6.27277376 -0.00058270 0.00035706 7.27219105 0.99821974 0.99906024 0.49317472;
++	-6.27277402 -0.00058259 0.00035699 7.27219142 0.99822008 0.99906042 0.49317476;
++	-6.27277428 -0.00058248 0.00035692 7.27219180 0.99822041 0.99906059 0.49317478;
++	-6.27277454 -0.00058237 0.00035686 7.27219217 0.99822075 0.99906077 0.49317481;
++	-6.27277480 -0.00058227 0.00035679 7.27219254 0.99822108 0.99906095 0.49317486;
++	-6.27277507 -0.00058216 0.00035672 7.27219291 0.99822142 0.99906112 0.49317492;
++	-6.27277533 -0.00058205 0.00035665 7.27219328 0.99822175 0.99906130 0.49317497;
++	-6.27277559 -0.00058194 0.00035659 7.27219365 0.99822209 0.99906148 0.49317500;
++	-6.27277585 -0.00058183 0.00035652 7.27219402 0.99822242 0.99906165 0.49317504;
++	-6.27277611 -0.00058172 0.00035645 7.27219440 0.99822275 0.99906183 0.49317502;
++	-6.27277637 -0.00058161 0.00035639 7.27219477 0.99822309 0.99906200 0.49317510;
++	-6.27277664 -0.00058150 0.00035632 7.27219514 0.99822342 0.99906218 0.49317515;
++	-6.27277690 -0.00058139 0.00035625 7.27219551 0.99822376 0.99906236 0.49317515;
++	-6.27277716 -0.00058128 0.00035619 7.27219588 0.99822409 0.99906253 0.49317527;
++	-6.27277742 -0.00058117 0.00035612 7.27219625 0.99822442 0.99906271 0.49317521;
++	-6.27277768 -0.00058106 0.00035605 7.27219662 0.99822476 0.99906289 0.49317533;
++	-6.27277794 -0.00058095 0.00035598 7.27219699 0.99822509 0.99906306 0.49317536;
++	-6.27277820 -0.00058084 0.00035592 7.27219736 0.99822542 0.99906324 0.49317532;
++	-6.27277846 -0.00058074 0.00035585 7.27219773 0.99822576 0.99906341 0.49317542;
++	-6.27277872 -0.00058063 0.00035578 7.27219810 0.99822609 0.99906359 0.49317544;
++	-6.27277898 -0.00058052 0.00035572 7.27219847 0.99822642 0.99906376 0.49317549;
++	-6.27277924 -0.00058041 0.00035565 7.27219884 0.99822675 0.99906394 0.49317552;
++	-6.27277950 -0.00058030 0.00035558 7.27219920 0.99822709 0.99906412 0.49317558;
++	-6.27277977 -0.00058019 0.00035552 7.27219957 0.99822742 0.99906429 0.49317562;
++	-6.27278003 -0.00058008 0.00035545 7.27219994 0.99822775 0.99906447 0.49317566;
++	-6.27278029 -0.00057997 0.00035538 7.27220031 0.99822808 0.99906464 0.49317568;
++	-6.27278055 -0.00057987 0.00035532 7.27220068 0.99822842 0.99906482 0.49317573;
++	-6.27278080 -0.00057976 0.00035525 7.27220105 0.99822875 0.99906499 0.49317574;
++	-6.27278106 -0.00057965 0.00035518 7.27220142 0.99822908 0.99906517 0.49317581;
++	-6.27278132 -0.00057954 0.00035512 7.27220178 0.99822941 0.99906534 0.49317584;
++	-6.27278158 -0.00057943 0.00035505 7.27220215 0.99822974 0.99906552 0.49317591;
++	-6.27278184 -0.00057932 0.00035498 7.27220252 0.99823008 0.99906569 0.49317591;
++	-6.27278210 -0.00057921 0.00035492 7.27220289 0.99823041 0.99906587 0.49317595;
++	-6.27278236 -0.00057911 0.00035485 7.27220326 0.99823074 0.99906604 0.49317597;
++	-6.27278262 -0.00057900 0.00035479 7.27220362 0.99823107 0.99906622 0.49317601;
++	-6.27278288 -0.00057889 0.00035472 7.27220399 0.99823140 0.99906639 0.49317609;
++	-6.27278314 -0.00057878 0.00035465 7.27220436 0.99823173 0.99906657 0.49317610;
++	-6.27278340 -0.00057867 0.00035459 7.27220472 0.99823206 0.99906674 0.49317615;
++	-6.27278366 -0.00057857 0.00035452 7.27220509 0.99823239 0.99906691 0.49317621;
++	-6.27278392 -0.00057846 0.00035445 7.27220546 0.99823272 0.99906709 0.49317622;
++	-6.27278417 -0.00057835 0.00035439 7.27220582 0.99823305 0.99906726 0.49317632;
++	-6.27278443 -0.00057824 0.00035432 7.27220619 0.99823338 0.99906744 0.49317629;
++	-6.27278469 -0.00057813 0.00035425 7.27220656 0.99823371 0.99906761 0.49317636;
++	-6.27278495 -0.00057802 0.00035419 7.27220692 0.99823404 0.99906779 0.49317638;
++	-6.27278521 -0.00057792 0.00035412 7.27220729 0.99823437 0.99906796 0.49317641;
++	-6.27278547 -0.00057781 0.00035406 7.27220766 0.99823470 0.99906813 0.49317644;
++	-6.27278572 -0.00057770 0.00035399 7.27220802 0.99823503 0.99906831 0.49317646;
++	-6.27278598 -0.00057759 0.00035392 7.27220839 0.99823536 0.99906848 0.49317651;
++	-6.27278624 -0.00057749 0.00035386 7.27220875 0.99823569 0.99906866 0.49317654;
++	-6.27278650 -0.00057738 0.00035379 7.27220912 0.99823602 0.99906883 0.49317660;
++	-6.27278675 -0.00057727 0.00035373 7.27220948 0.99823635 0.99906900 0.49317666;
++	-6.27278701 -0.00057716 0.00035366 7.27220985 0.99823668 0.99906918 0.49317668;
++	-6.27278727 -0.00057706 0.00035359 7.27221021 0.99823701 0.99906935 0.49317676;
++	-6.27278753 -0.00057695 0.00035353 7.27221058 0.99823734 0.99906952 0.49317676;
++	-6.27278778 -0.00057684 0.00035346 7.27221094 0.99823766 0.99906970 0.49317678;
++	-6.27278804 -0.00057673 0.00035340 7.27221131 0.99823799 0.99906987 0.49317683;
++	-6.27278830 -0.00057663 0.00035333 7.27221167 0.99823832 0.99907004 0.49317687;
++	-6.27278855 -0.00057652 0.00035326 7.27221204 0.99823865 0.99907022 0.49317691;
++	-6.27278881 -0.00057641 0.00035320 7.27221240 0.99823898 0.99907039 0.49317697;
++	-6.27278907 -0.00057630 0.00035313 7.27221277 0.99823931 0.99907056 0.49317699;
++	-6.27278933 -0.00057620 0.00035307 7.27221313 0.99823963 0.99907074 0.49317702;
++	-6.27278958 -0.00057609 0.00035300 7.27221349 0.99823996 0.99907091 0.49317708;
++	-6.27278984 -0.00057598 0.00035294 7.27221386 0.99824029 0.99907108 0.49317710;
++	-6.27279009 -0.00057587 0.00035287 7.27221422 0.99824062 0.99907126 0.49317717;
++	-6.27279035 -0.00057577 0.00035280 7.27221458 0.99824094 0.99907143 0.49317720;
++	-6.27279061 -0.00057566 0.00035274 7.27221495 0.99824127 0.99907160 0.49317720;
++	-6.27279086 -0.00057555 0.00035267 7.27221531 0.99824160 0.99907177 0.49317727;
++	-6.27279112 -0.00057545 0.00035261 7.27221567 0.99824193 0.99907195 0.49317735;
++	-6.27279137 -0.00057534 0.00035254 7.27221604 0.99824225 0.99907212 0.49317732;
++	-6.27279163 -0.00057523 0.00035248 7.27221640 0.99824258 0.99907229 0.49317739;
++	-6.27279189 -0.00057513 0.00035241 7.27221676 0.99824291 0.99907246 0.49317738;
++	-6.27279214 -0.00057502 0.00035235 7.27221712 0.99824323 0.99907264 0.49317745;
++	-6.27279240 -0.00057491 0.00035228 7.27221749 0.99824356 0.99907281 0.49317748;
++	-6.27279265 -0.00057480 0.00035221 7.27221785 0.99824389 0.99907298 0.49317752;
++	-6.27279291 -0.00057470 0.00035215 7.27221821 0.99824421 0.99907315 0.49317757;
++	-6.27279316 -0.00057459 0.00035208 7.27221857 0.99824454 0.99907332 0.49317760;
++	-6.27279342 -0.00057448 0.00035202 7.27221893 0.99824486 0.99907350 0.49317764;
++	-6.27279367 -0.00057438 0.00035195 7.27221930 0.99824519 0.99907367 0.49317766;
++	-6.27279393 -0.00057427 0.00035189 7.27221966 0.99824551 0.99907384 0.49317770;
++	-6.27279418 -0.00057417 0.00035182 7.27222002 0.99824584 0.99907401 0.49317777;
++	-6.27279444 -0.00057406 0.00035176 7.27222038 0.99824617 0.99907418 0.49317774;
++	-6.27279469 -0.00057395 0.00035169 7.27222074 0.99824649 0.99907436 0.49317781;
++	-6.27279495 -0.00057385 0.00035163 7.27222110 0.99824682 0.99907453 0.49317792;
++	-6.27279520 -0.00057374 0.00035156 7.27222146 0.99824714 0.99907470 0.49317788;
++	-6.27279546 -0.00057363 0.00035150 7.27222182 0.99824747 0.99907487 0.49317793;
++	-6.27279571 -0.00057353 0.00035143 7.27222218 0.99824779 0.99907504 0.49317800;
++	-6.27279596 -0.00057342 0.00035137 7.27222254 0.99824812 0.99907521 0.49317798;
++	-6.27279622 -0.00057331 0.00035130 7.27222290 0.99824844 0.99907538 0.49317810;
++	-6.27279647 -0.00057321 0.00035124 7.27222326 0.99824877 0.99907556 0.49317811;
++	-6.27279673 -0.00057310 0.00035117 7.27222362 0.99824909 0.99907573 0.49317808;
++	-6.27279698 -0.00057300 0.00035111 7.27222398 0.99824941 0.99907590 0.49317818;
++	-6.27279723 -0.00057289 0.00035104 7.27222434 0.99824974 0.99907607 0.49317820;
++	-6.27279749 -0.00057278 0.00035098 7.27222470 0.99825006 0.99907624 0.49317824;
++	-6.27279774 -0.00057268 0.00035091 7.27222506 0.99825039 0.99907641 0.49317828;
++	-6.27279799 -0.00057257 0.00035085 7.27222542 0.99825071 0.99907658 0.49317828;
++	-6.27279825 -0.00057247 0.00035078 7.27222578 0.99825103 0.99907675 0.49317836;
++	-6.27279850 -0.00057236 0.00035072 7.27222614 0.99825136 0.99907692 0.49317841;
++	-6.27279875 -0.00057225 0.00035065 7.27222650 0.99825168 0.99907709 0.49317844;
++	-6.27279901 -0.00057215 0.00035059 7.27222686 0.99825200 0.99907727 0.49317846;
++	-6.27279926 -0.00057204 0.00035052 7.27222722 0.99825233 0.99907744 0.49317853;
++	-6.27279951 -0.00057194 0.00035046 7.27222758 0.99825265 0.99907761 0.49317855;
++	-6.27279977 -0.00057183 0.00035039 7.27222793 0.99825297 0.99907778 0.49317862;
++	-6.27280002 -0.00057173 0.00035033 7.27222829 0.99825330 0.99907795 0.49317862;
++	-6.27280027 -0.00057162 0.00035026 7.27222865 0.99825362 0.99907812 0.49317865;
++	-6.27280052 -0.00057152 0.00035020 7.27222901 0.99825394 0.99907829 0.49317872;
++	-6.27280078 -0.00057141 0.00035013 7.27222937 0.99825426 0.99907846 0.49317874;
++	-6.27280103 -0.00057130 0.00035007 7.27222972 0.99825459 0.99907863 0.49317875;
++	-6.27280128 -0.00057120 0.00035000 7.27223008 0.99825491 0.99907880 0.49317879;
++	-6.27280153 -0.00057109 0.00034994 7.27223044 0.99825523 0.99907897 0.49317885;
++	-6.27280178 -0.00057099 0.00034987 7.27223080 0.99825555 0.99907914 0.49317886;
++	-6.27280204 -0.00057088 0.00034981 7.27223115 0.99825587 0.99907931 0.49317891;
++	-6.27280229 -0.00057078 0.00034974 7.27223151 0.99825620 0.99907948 0.49317896;
++	-6.27280254 -0.00057067 0.00034968 7.27223187 0.99825652 0.99907965 0.49317901;
++	-6.27280279 -0.00057057 0.00034962 7.27223222 0.99825684 0.99907982 0.49317904;
++	-6.27280304 -0.00057046 0.00034955 7.27223258 0.99825716 0.99907999 0.49317904;
++	-6.27280329 -0.00057036 0.00034949 7.27223294 0.99825748 0.99908016 0.49317910;
++	-6.27280355 -0.00057025 0.00034942 7.27223329 0.99825780 0.99908033 0.49317919;
++	-6.27280380 -0.00057015 0.00034936 7.27223365 0.99825812 0.99908050 0.49317919;
++	-6.27280405 -0.00057004 0.00034929 7.27223401 0.99825844 0.99908066 0.49317919;
++	-6.27280430 -0.00056994 0.00034923 7.27223436 0.99825877 0.99908083 0.49317929;
++	-6.27280455 -0.00056983 0.00034916 7.27223472 0.99825909 0.99908100 0.49317932;
++	-6.27280480 -0.00056973 0.00034910 7.27223507 0.99825941 0.99908117 0.49317933;
++	-6.27280505 -0.00056962 0.00034904 7.27223543 0.99825973 0.99908134 0.49317936;
++	-6.27280530 -0.00056952 0.00034897 7.27223579 0.99826005 0.99908151 0.49317942;
++	-6.27280555 -0.00056941 0.00034891 7.27223614 0.99826037 0.99908168 0.49317941;
++	-6.27280580 -0.00056931 0.00034884 7.27223650 0.99826069 0.99908185 0.49317944;
++	-6.27280606 -0.00056920 0.00034878 7.27223685 0.99826101 0.99908202 0.49317951;
++	-6.27280631 -0.00056910 0.00034872 7.27223721 0.99826133 0.99908219 0.49317958;
++	-6.27280656 -0.00056899 0.00034865 7.27223756 0.99826165 0.99908235 0.49317962;
++	-6.27280681 -0.00056889 0.00034859 7.27223792 0.99826197 0.99908252 0.49317961;
++	-6.27280706 -0.00056878 0.00034852 7.27223827 0.99826229 0.99908269 0.49317963;
++	-6.27280731 -0.00056868 0.00034846 7.27223863 0.99826261 0.99908286 0.49317970;
++	-6.27280756 -0.00056858 0.00034839 7.27223898 0.99826293 0.99908303 0.49317974;
++	-6.27280781 -0.00056847 0.00034833 7.27223933 0.99826324 0.99908320 0.49317978;
++	-6.27280806 -0.00056837 0.00034827 7.27223969 0.99826356 0.99908337 0.49317977;
++	-6.27280830 -0.00056826 0.00034820 7.27224004 0.99826388 0.99908353 0.49317984;
++	-6.27280855 -0.00056816 0.00034814 7.27224040 0.99826420 0.99908370 0.49317991;
++	-6.27280880 -0.00056805 0.00034807 7.27224075 0.99826452 0.99908387 0.49317993;
++	-6.27280905 -0.00056795 0.00034801 7.27224110 0.99826484 0.99908404 0.49317997;
++	-6.27280930 -0.00056785 0.00034795 7.27224146 0.99826516 0.99908421 0.49317999;
++	-6.27280955 -0.00056774 0.00034788 7.27224181 0.99826547 0.99908438 0.49318004;
++	-6.27280980 -0.00056764 0.00034782 7.27224216 0.99826579 0.99908454 0.49318009;
++	-6.27281005 -0.00056753 0.00034776 7.27224252 0.99826611 0.99908471 0.49318013;
++	-6.27281030 -0.00056743 0.00034769 7.27224287 0.99826643 0.99908488 0.49318014;
++	-6.27281055 -0.00056733 0.00034763 7.27224322 0.99826675 0.99908505 0.49318020;
++	-6.27281080 -0.00056722 0.00034756 7.27224357 0.99826706 0.99908521 0.49318023;
++	-6.27281104 -0.00056712 0.00034750 7.27224393 0.99826738 0.99908538 0.49318021;
++	-6.27281129 -0.00056701 0.00034744 7.27224428 0.99826770 0.99908555 0.49318033;
++	-6.27281154 -0.00056691 0.00034737 7.27224463 0.99826802 0.99908572 0.49318033;
++	-6.27281179 -0.00056681 0.00034731 7.27224498 0.99826833 0.99908588 0.49318036;
++	-6.27281204 -0.00056670 0.00034725 7.27224534 0.99826865 0.99908605 0.49318042;
++	-6.27281229 -0.00056660 0.00034718 7.27224569 0.99826897 0.99908622 0.49318046;
++	-6.27281253 -0.00056649 0.00034712 7.27224604 0.99826929 0.99908639 0.49318048;
++	-6.27281278 -0.00056639 0.00034706 7.27224639 0.99826960 0.99908655 0.49318053;
++	-6.27281303 -0.00056629 0.00034699 7.27224674 0.99826992 0.99908672 0.49318056;
++	-6.27281328 -0.00056618 0.00034693 7.27224709 0.99827024 0.99908689 0.49318059;
++	-6.27281353 -0.00056608 0.00034686 7.27224745 0.99827055 0.99908705 0.49318066;
++	-6.27281377 -0.00056598 0.00034680 7.27224780 0.99827087 0.99908722 0.49318067;
++	-6.27281402 -0.00056587 0.00034674 7.27224815 0.99827119 0.99908739 0.49318073;
++	-6.27281427 -0.00056577 0.00034667 7.27224850 0.99827150 0.99908756 0.49318072;
++	-6.27281452 -0.00056567 0.00034661 7.27224885 0.99827182 0.99908772 0.49318077;
++	-6.27281476 -0.00056556 0.00034655 7.27224920 0.99827213 0.99908789 0.49318079;
++	-6.27281501 -0.00056546 0.00034648 7.27224955 0.99827245 0.99908806 0.49318086;
++	-6.27281526 -0.00056536 0.00034642 7.27224990 0.99827276 0.99908822 0.49318086;
++	-6.27281550 -0.00056525 0.00034636 7.27225025 0.99827308 0.99908839 0.49318091;
++	-6.27281575 -0.00056515 0.00034629 7.27225060 0.99827340 0.99908856 0.49318093;
++	-6.27281600 -0.00056505 0.00034623 7.27225095 0.99827371 0.99908872 0.49318097;
++	-6.27281624 -0.00056494 0.00034617 7.27225130 0.99827403 0.99908889 0.49318102;
++	-6.27281649 -0.00056484 0.00034610 7.27225165 0.99827434 0.99908905 0.49318109;
++	-6.27281674 -0.00056474 0.00034604 7.27225200 0.99827466 0.99908922 0.49318111;
++	-6.27281698 -0.00056463 0.00034598 7.27225235 0.99827497 0.99908939 0.49318114;
++	-6.27281723 -0.00056453 0.00034592 7.27225270 0.99827529 0.99908955 0.49318118;
++	-6.27281748 -0.00056443 0.00034585 7.27225305 0.99827560 0.99908972 0.49318122;
++	-6.27281772 -0.00056433 0.00034579 7.27225340 0.99827591 0.99908988 0.49318124;
++	-6.27281797 -0.00056422 0.00034573 7.27225375 0.99827623 0.99909005 0.49318128;
++	-6.27281822 -0.00056412 0.00034566 7.27225409 0.99827654 0.99909022 0.49318131;
++	-6.27281846 -0.00056402 0.00034560 7.27225444 0.99827686 0.99909038 0.49318135;
++	-6.27281871 -0.00056391 0.00034554 7.27225479 0.99827717 0.99909055 0.49318140;
++	-6.27281895 -0.00056381 0.00034547 7.27225514 0.99827749 0.99909071 0.49318139;
++	-6.27281920 -0.00056371 0.00034541 7.27225549 0.99827780 0.99909088 0.49318148;
++	-6.27281944 -0.00056361 0.00034535 7.27225584 0.99827811 0.99909105 0.49318152;
++	-6.27281969 -0.00056350 0.00034528 7.27225619 0.99827843 0.99909121 0.49318156;
++	-6.27281993 -0.00056340 0.00034522 7.27225653 0.99827874 0.99909138 0.49318159;
++	-6.27282018 -0.00056330 0.00034516 7.27225688 0.99827905 0.99909154 0.49318163;
++	-6.27282043 -0.00056320 0.00034510 7.27225723 0.99827937 0.99909171 0.49318166;
++	-6.27282067 -0.00056309 0.00034503 7.27225758 0.99827968 0.99909187 0.49318168;
++	-6.27282092 -0.00056299 0.00034497 7.27225792 0.99827999 0.99909204 0.49318179;
++	-6.27282116 -0.00056289 0.00034491 7.27225827 0.99828031 0.99909220 0.49318171;
++	-6.27282141 -0.00056279 0.00034485 7.27225862 0.99828062 0.99909237 0.49318177;
++	-6.27282165 -0.00056268 0.00034478 7.27225897 0.99828093 0.99909253 0.49318188;
++	-6.27282189 -0.00056258 0.00034472 7.27225931 0.99828124 0.99909270 0.49318185;
++	-6.27282214 -0.00056248 0.00034466 7.27225966 0.99828156 0.99909286 0.49318190;
++	-6.27282238 -0.00056238 0.00034459 7.27226001 0.99828187 0.99909303 0.49318196;
++	-6.27282263 -0.00056228 0.00034453 7.27226035 0.99828218 0.99909319 0.49318197;
++	-6.27282287 -0.00056217 0.00034447 7.27226070 0.99828249 0.99909336 0.49318203;
++	-6.27282312 -0.00056207 0.00034441 7.27226104 0.99828281 0.99909352 0.49318204;
++	-6.27282336 -0.00056197 0.00034434 7.27226139 0.99828312 0.99909369 0.49318210;
++	-6.27282360 -0.00056187 0.00034428 7.27226174 0.99828343 0.99909385 0.49318213;
++	-6.27282385 -0.00056177 0.00034422 7.27226208 0.99828374 0.99909402 0.49318217;
++	-6.27282409 -0.00056166 0.00034416 7.27226243 0.99828405 0.99909418 0.49318219;
++	-6.27282434 -0.00056156 0.00034409 7.27226277 0.99828436 0.99909434 0.49318217;
++	-6.27282458 -0.00056146 0.00034403 7.27226312 0.99828467 0.99909451 0.49318229;
++	-6.27282482 -0.00056136 0.00034397 7.27226347 0.99828499 0.99909467 0.49318235;
++	-6.27282507 -0.00056126 0.00034391 7.27226381 0.99828530 0.99909484 0.49318234;
++	-6.27282531 -0.00056115 0.00034384 7.27226416 0.99828561 0.99909500 0.49318238;
++	-6.27282555 -0.00056105 0.00034378 7.27226450 0.99828592 0.99909516 0.49318244;
++	-6.27282580 -0.00056095 0.00034372 7.27226485 0.99828623 0.99909533 0.49318245;
++	-6.27282604 -0.00056085 0.00034366 7.27226519 0.99828654 0.99909549 0.49318251;
++	-6.27282628 -0.00056075 0.00034360 7.27226554 0.99828685 0.99909566 0.49318249;
++	-6.27282653 -0.00056065 0.00034353 7.27226588 0.99828716 0.99909582 0.49318260;
++	-6.27282677 -0.00056055 0.00034347 7.27226622 0.99828747 0.99909598 0.49318256;
++	-6.27282701 -0.00056044 0.00034341 7.27226657 0.99828778 0.99909615 0.49318268;
++	-6.27282725 -0.00056034 0.00034335 7.27226691 0.99828809 0.99909631 0.49318269;
++	-6.27282750 -0.00056024 0.00034328 7.27226726 0.99828840 0.99909648 0.49318273;
++	-6.27282774 -0.00056014 0.00034322 7.27226760 0.99828871 0.99909664 0.49318276;
++	-6.27282798 -0.00056004 0.00034316 7.27226794 0.99828902 0.99909680 0.49318278;
++	-6.27282822 -0.00055994 0.00034310 7.27226829 0.99828933 0.99909697 0.49318281;
++	-6.27282847 -0.00055984 0.00034304 7.27226863 0.99828964 0.99909713 0.49318285;
++	-6.27282871 -0.00055973 0.00034297 7.27226898 0.99828995 0.99909729 0.49318289;
++	-6.27282895 -0.00055963 0.00034291 7.27226932 0.99829026 0.99909746 0.49318294;
++	-6.27282919 -0.00055953 0.00034285 7.27226966 0.99829057 0.99909762 0.49318296;
++	-6.27282944 -0.00055943 0.00034279 7.27227000 0.99829088 0.99909778 0.49318295;
++	-6.27282968 -0.00055933 0.00034273 7.27227035 0.99829119 0.99909794 0.49318302;
++	-6.27282992 -0.00055923 0.00034266 7.27227069 0.99829150 0.99909811 0.49318310;
++	-6.27283016 -0.00055913 0.00034260 7.27227103 0.99829180 0.99909827 0.49318311;
++	-6.27283040 -0.00055903 0.00034254 7.27227138 0.99829211 0.99909843 0.49318314;
++	-6.27283064 -0.00055893 0.00034248 7.27227172 0.99829242 0.99909860 0.49318318;
++	-6.27283089 -0.00055882 0.00034242 7.27227206 0.99829273 0.99909876 0.49318320;
++	-6.27283113 -0.00055872 0.00034235 7.27227240 0.99829304 0.99909892 0.49318320;
++	-6.27283137 -0.00055862 0.00034229 7.27227274 0.99829335 0.99909908 0.49318327;
++	-6.27283161 -0.00055852 0.00034223 7.27227309 0.99829365 0.99909925 0.49318333;
++	-6.27283185 -0.00055842 0.00034217 7.27227343 0.99829396 0.99909941 0.49318333;
++	-6.27283209 -0.00055832 0.00034211 7.27227377 0.99829427 0.99909957 0.49318336;
++	-6.27283233 -0.00055822 0.00034204 7.27227411 0.99829458 0.99909973 0.49318343;
++	-6.27283257 -0.00055812 0.00034198 7.27227445 0.99829489 0.99909990 0.49318344;
++	-6.27283281 -0.00055802 0.00034192 7.27227479 0.99829519 0.99910006 0.49318351;
++	-6.27283305 -0.00055792 0.00034186 7.27227514 0.99829550 0.99910022 0.49318353;
++	-6.27283329 -0.00055782 0.00034180 7.27227548 0.99829581 0.99910038 0.49318358;
++	-6.27283353 -0.00055772 0.00034174 7.27227582 0.99829611 0.99910055 0.49318362;
++	-6.27283378 -0.00055762 0.00034168 7.27227616 0.99829642 0.99910071 0.49318360;
++	-6.27283402 -0.00055752 0.00034161 7.27227650 0.99829673 0.99910087 0.49318367;
++	-6.27283426 -0.00055742 0.00034155 7.27227684 0.99829704 0.99910103 0.49318371;
++	-6.27283450 -0.00055732 0.00034149 7.27227718 0.99829734 0.99910119 0.49318374;
++	-6.27283474 -0.00055722 0.00034143 7.27227752 0.99829765 0.99910136 0.49318380;
++	-6.27283498 -0.00055712 0.00034137 7.27227786 0.99829796 0.99910152 0.49318376;
++	-6.27283522 -0.00055701 0.00034131 7.27227820 0.99829826 0.99910168 0.49318386;
++	-6.27283546 -0.00055691 0.00034124 7.27227854 0.99829857 0.99910184 0.49318389;
++	-6.27283570 -0.00055681 0.00034118 7.27227888 0.99829887 0.99910200 0.49318390;
++	-6.27283593 -0.00055671 0.00034112 7.27227922 0.99829918 0.99910216 0.49318396;
++	-6.27283617 -0.00055661 0.00034106 7.27227956 0.99829949 0.99910233 0.49318401;
++	-6.27283641 -0.00055651 0.00034100 7.27227990 0.99829979 0.99910249 0.49318410;
++	-6.27283665 -0.00055641 0.00034094 7.27228024 0.99830010 0.99910265 0.49318407;
++	-6.27283689 -0.00055631 0.00034088 7.27228058 0.99830040 0.99910281 0.49318407;
++	-6.27283713 -0.00055621 0.00034081 7.27228092 0.99830071 0.99910297 0.49318414;
++	-6.27283737 -0.00055611 0.00034075 7.27228126 0.99830101 0.99910313 0.49318415;
++	-6.27283761 -0.00055601 0.00034069 7.27228159 0.99830132 0.99910329 0.49318423;
++	-6.27283785 -0.00055591 0.00034063 7.27228193 0.99830163 0.99910345 0.49318423;
++	-6.27283809 -0.00055581 0.00034057 7.27228227 0.99830193 0.99910362 0.49318427;
++	-6.27283833 -0.00055571 0.00034051 7.27228261 0.99830224 0.99910378 0.49318428;
++	-6.27283856 -0.00055562 0.00034045 7.27228295 0.99830254 0.99910394 0.49318433;
++	-6.27283880 -0.00055552 0.00034039 7.27228329 0.99830285 0.99910410 0.49318443;
++	-6.27283904 -0.00055542 0.00034033 7.27228363 0.99830315 0.99910426 0.49318443;
++	-6.27283928 -0.00055532 0.00034026 7.27228396 0.99830345 0.99910442 0.49318449;
++	-6.27283952 -0.00055522 0.00034020 7.27228430 0.99830376 0.99910458 0.49318449;
++	-6.27283976 -0.00055512 0.00034014 7.27228464 0.99830406 0.99910474 0.49318454;
++	-6.27283999 -0.00055502 0.00034008 7.27228498 0.99830437 0.99910490 0.49318457;
++	-6.27284023 -0.00055492 0.00034002 7.27228531 0.99830467 0.99910506 0.49318459;
++	-6.27284047 -0.00055482 0.00033996 7.27228565 0.99830498 0.99910522 0.49318460;
++	-6.27284071 -0.00055472 0.00033990 7.27228599 0.99830528 0.99910538 0.49318465;
++	-6.27284095 -0.00055462 0.00033984 7.27228633 0.99830558 0.99910554 0.49318472;
++	-6.27284118 -0.00055452 0.00033978 7.27228666 0.99830589 0.99910570 0.49318477;
++	-6.27284142 -0.00055442 0.00033972 7.27228700 0.99830619 0.99910586 0.49318479;
++	-6.27284166 -0.00055432 0.00033965 7.27228734 0.99830649 0.99910602 0.49318483;
++	-6.27284190 -0.00055422 0.00033959 7.27228767 0.99830680 0.99910618 0.49318487;
++	-6.27284213 -0.00055412 0.00033953 7.27228801 0.99830710 0.99910634 0.49318489;
++	-6.27284237 -0.00055402 0.00033947 7.27228835 0.99830740 0.99910650 0.49318490;
++	-6.27284261 -0.00055393 0.00033941 7.27228868 0.99830771 0.99910666 0.49318496;
++	-6.27284285 -0.00055383 0.00033935 7.27228902 0.99830801 0.99910682 0.49318499;
++	-6.27284308 -0.00055373 0.00033929 7.27228936 0.99830831 0.99910698 0.49318499;
++	-6.27284332 -0.00055363 0.00033923 7.27228969 0.99830861 0.99910714 0.49318509;
++	-6.27284356 -0.00055353 0.00033917 7.27229003 0.99830892 0.99910730 0.49318511;
++	-6.27284379 -0.00055343 0.00033911 7.27229036 0.99830922 0.99910746 0.49318515;
++	-6.27284403 -0.00055333 0.00033905 7.27229070 0.99830952 0.99910762 0.49318516;
++	-6.27284427 -0.00055323 0.00033899 7.27229103 0.99830982 0.99910778 0.49318524;
++	-6.27284450 -0.00055313 0.00033893 7.27229137 0.99831013 0.99910794 0.49318524;
++	-6.27284474 -0.00055303 0.00033887 7.27229170 0.99831043 0.99910810 0.49318528;
++	-6.27284498 -0.00055294 0.00033880 7.27229204 0.99831073 0.99910826 0.49318529;
++	-6.27284521 -0.00055284 0.00033874 7.27229237 0.99831103 0.99910842 0.49318533;
++	-6.27284545 -0.00055274 0.00033868 7.27229271 0.99831133 0.99910858 0.49318539;
++	-6.27284568 -0.00055264 0.00033862 7.27229304 0.99831164 0.99910874 0.49318542;
++	-6.27284592 -0.00055254 0.00033856 7.27229338 0.99831194 0.99910890 0.49318543;
++	-6.27284616 -0.00055244 0.00033850 7.27229371 0.99831224 0.99910906 0.49318547;
++	-6.27284639 -0.00055234 0.00033844 7.27229405 0.99831254 0.99910921 0.49318555;
++	-6.27284663 -0.00055225 0.00033838 7.27229438 0.99831284 0.99910937 0.49318557;
++	-6.27284686 -0.00055215 0.00033832 7.27229472 0.99831314 0.99910953 0.49318561;
++	-6.27284710 -0.00055205 0.00033826 7.27229505 0.99831344 0.99910969 0.49318565;
++	-6.27284733 -0.00055195 0.00033820 7.27229538 0.99831374 0.99910985 0.49318570;
++	-6.27284757 -0.00055185 0.00033814 7.27229572 0.99831404 0.99911001 0.49318569;
++	-6.27284781 -0.00055175 0.00033808 7.27229605 0.99831435 0.99911017 0.49318574;
++	-6.27284804 -0.00055165 0.00033802 7.27229639 0.99831465 0.99911033 0.49318575;
++	-6.27284828 -0.00055156 0.00033796 7.27229672 0.99831495 0.99911048 0.49318581;
++	-6.27284851 -0.00055146 0.00033790 7.27229705 0.99831525 0.99911064 0.49318582;
++	-6.27284875 -0.00055136 0.00033784 7.27229739 0.99831555 0.99911080 0.49318586;
++	-6.27284898 -0.00055126 0.00033778 7.27229772 0.99831585 0.99911096 0.49318588;
++	-6.27284922 -0.00055116 0.00033772 7.27229805 0.99831615 0.99911112 0.49318595;
++	-6.27284945 -0.00055107 0.00033766 7.27229838 0.99831645 0.99911128 0.49318599;
++	-6.27284968 -0.00055097 0.00033760 7.27229872 0.99831675 0.99911143 0.49318604;
++	-6.27284992 -0.00055087 0.00033754 7.27229905 0.99831705 0.99911159 0.49318604;
++	-6.27285015 -0.00055077 0.00033748 7.27229938 0.99831735 0.99911175 0.49318612;
++	-6.27285039 -0.00055067 0.00033742 7.27229971 0.99831765 0.99911191 0.49318613;
++	-6.27285062 -0.00055058 0.00033736 7.27230005 0.99831794 0.99911207 0.49318622;
++	-6.27285086 -0.00055048 0.00033730 7.27230038 0.99831824 0.99911223 0.49318623;
++	-6.27285109 -0.00055038 0.00033724 7.27230071 0.99831854 0.99911238 0.49318626;
++	-6.27285133 -0.00055028 0.00033718 7.27230104 0.99831884 0.99911254 0.49318626;
++	-6.27285156 -0.00055018 0.00033712 7.27230138 0.99831914 0.99911270 0.49318628;
++	-6.27285179 -0.00055009 0.00033706 7.27230171 0.99831944 0.99911286 0.49318633;
++	-6.27285203 -0.00054999 0.00033700 7.27230204 0.99831974 0.99911301 0.49318637;
++	-6.27285226 -0.00054989 0.00033694 7.27230237 0.99832004 0.99911317 0.49318637;
++	-6.27285249 -0.00054979 0.00033688 7.27230270 0.99832034 0.99911333 0.49318644;
++	-6.27285273 -0.00054970 0.00033682 7.27230303 0.99832063 0.99911349 0.49318645;
++	-6.27285296 -0.00054960 0.00033676 7.27230336 0.99832093 0.99911364 0.49318646;
++	-6.27285319 -0.00054950 0.00033670 7.27230369 0.99832123 0.99911380 0.49318651;
++	-6.27285343 -0.00054940 0.00033664 7.27230403 0.99832153 0.99911396 0.49318650;
++	-6.27285366 -0.00054931 0.00033658 7.27230436 0.99832183 0.99911412 0.49318659;
++	-6.27285389 -0.00054921 0.00033652 7.27230469 0.99832212 0.99911427 0.49318666;
++	-6.27285413 -0.00054911 0.00033646 7.27230502 0.99832242 0.99911443 0.49318665;
++	-6.27285436 -0.00054901 0.00033640 7.27230535 0.99832272 0.99911459 0.49318670;
++	-6.27285459 -0.00054892 0.00033634 7.27230568 0.99832302 0.99911474 0.49318673;
++	-6.27285483 -0.00054882 0.00033628 7.27230601 0.99832332 0.99911490 0.49318677;
++	-6.27285506 -0.00054872 0.00033622 7.27230634 0.99832361 0.99911506 0.49318685;
++	-6.27285529 -0.00054862 0.00033616 7.27230667 0.99832391 0.99911522 0.49318683;
++	-6.27285552 -0.00054853 0.00033610 7.27230700 0.99832421 0.99911537 0.49318692;
++	-6.27285576 -0.00054843 0.00033604 7.27230733 0.99832450 0.99911553 0.49318690;
++	-6.27285599 -0.00054833 0.00033598 7.27230766 0.99832480 0.99911569 0.49318694;
++	-6.27285622 -0.00054824 0.00033592 7.27230799 0.99832510 0.99911584 0.49318700;
++	-6.27285645 -0.00054814 0.00033586 7.27230832 0.99832539 0.99911600 0.49318701;
++	-6.27285669 -0.00054804 0.00033580 7.27230865 0.99832569 0.99911616 0.49318705;
++	-6.27285692 -0.00054794 0.00033574 7.27230897 0.99832599 0.99911631 0.49318711;
++	-6.27285715 -0.00054785 0.00033568 7.27230930 0.99832628 0.99911647 0.49318708;
++	-6.27285738 -0.00054775 0.00033563 7.27230963 0.99832658 0.99911662 0.49318719;
++	-6.27285761 -0.00054765 0.00033557 7.27230996 0.99832688 0.99911678 0.49318717;
++	-6.27285785 -0.00054756 0.00033551 7.27231029 0.99832717 0.99911694 0.49318724;
++	-6.27285808 -0.00054746 0.00033545 7.27231062 0.99832747 0.99911709 0.49318723;
++	-6.27285831 -0.00054736 0.00033539 7.27231095 0.99832776 0.99911725 0.49318729;
++	-6.27285854 -0.00054727 0.00033533 7.27231127 0.99832806 0.99911741 0.49318737;
++	-6.27285877 -0.00054717 0.00033527 7.27231160 0.99832836 0.99911756 0.49318736;
++	-6.27285900 -0.00054707 0.00033521 7.27231193 0.99832865 0.99911772 0.49318737;
++	-6.27285923 -0.00054698 0.00033515 7.27231226 0.99832895 0.99911787 0.49318744;
++	-6.27285947 -0.00054688 0.00033509 7.27231259 0.99832924 0.99911803 0.49318747;
++	-6.27285970 -0.00054678 0.00033503 7.27231291 0.99832954 0.99911819 0.49318750;
++	-6.27285993 -0.00054669 0.00033497 7.27231324 0.99832983 0.99911834 0.49318752;
++	-6.27286016 -0.00054659 0.00033491 7.27231357 0.99833013 0.99911850 0.49318756;
++	-6.27286039 -0.00054649 0.00033485 7.27231390 0.99833042 0.99911865 0.49318760;
++	-6.27286062 -0.00054640 0.00033480 7.27231422 0.99833072 0.99911881 0.49318765;
++	-6.27286085 -0.00054630 0.00033474 7.27231455 0.99833101 0.99911896 0.49318766;
++	-6.27286108 -0.00054620 0.00033468 7.27231488 0.99833131 0.99911912 0.49318767;
++	-6.27286131 -0.00054611 0.00033462 7.27231521 0.99833160 0.99911927 0.49318769;
++	-6.27286154 -0.00054601 0.00033456 7.27231553 0.99833190 0.99911943 0.49318777;
++	-6.27286177 -0.00054591 0.00033450 7.27231586 0.99833219 0.99911959 0.49318778;
++	-6.27286200 -0.00054582 0.00033444 7.27231619 0.99833248 0.99911974 0.49318783;
++	-6.27286223 -0.00054572 0.00033438 7.27231651 0.99833278 0.99911990 0.49318785;
++	-6.27286246 -0.00054563 0.00033432 7.27231684 0.99833307 0.99912005 0.49318790;
++	-6.27286269 -0.00054553 0.00033426 7.27231716 0.99833337 0.99912021 0.49318796;
++	-6.27286292 -0.00054543 0.00033420 7.27231749 0.99833366 0.99912036 0.49318798;
++	-6.27286315 -0.00054534 0.00033415 7.27231782 0.99833395 0.99912052 0.49318802;
++	-6.27286338 -0.00054524 0.00033409 7.27231814 0.99833425 0.99912067 0.49318801;
++	-6.27286361 -0.00054515 0.00033403 7.27231847 0.99833454 0.99912083 0.49318810;
++	-6.27286384 -0.00054505 0.00033397 7.27231879 0.99833483 0.99912098 0.49318815;
++	-6.27286407 -0.00054495 0.00033391 7.27231912 0.99833513 0.99912114 0.49318815;
++	-6.27286430 -0.00054486 0.00033385 7.27231944 0.99833542 0.99912129 0.49318821;
++	-6.27286453 -0.00054476 0.00033379 7.27231977 0.99833571 0.99912145 0.49318820;
++	-6.27286476 -0.00054467 0.00033373 7.27232010 0.99833601 0.99912160 0.49318828;
++	-6.27286499 -0.00054457 0.00033368 7.27232042 0.99833630 0.99912175 0.49318827;
++	-6.27286522 -0.00054447 0.00033362 7.27232075 0.99833659 0.99912191 0.49318830;
++	-6.27286545 -0.00054438 0.00033356 7.27232107 0.99833689 0.99912206 0.49318834;
++	-6.27286568 -0.00054428 0.00033350 7.27232139 0.99833718 0.99912222 0.49318840;
++	-6.27286591 -0.00054419 0.00033344 7.27232172 0.99833747 0.99912237 0.49318849;
++	-6.27286614 -0.00054409 0.00033338 7.27232204 0.99833776 0.99912253 0.49318845;
++	-6.27286636 -0.00054400 0.00033332 7.27232237 0.99833805 0.99912268 0.49318852;
++	-6.27286659 -0.00054390 0.00033326 7.27232269 0.99833835 0.99912283 0.49318851;
++	-6.27286682 -0.00054380 0.00033321 7.27232302 0.99833864 0.99912299 0.49318855;
++	-6.27286705 -0.00054371 0.00033315 7.27232334 0.99833893 0.99912314 0.49318857;
++	-6.27286728 -0.00054361 0.00033309 7.27232366 0.99833922 0.99912330 0.49318863;
++	-6.27286751 -0.00054352 0.00033303 7.27232399 0.99833951 0.99912345 0.49318865;
++	-6.27286774 -0.00054342 0.00033297 7.27232431 0.99833981 0.99912360 0.49318871;
++	-6.27286796 -0.00054333 0.00033291 7.27232464 0.99834010 0.99912376 0.49318871;
++	-6.27286819 -0.00054323 0.00033286 7.27232496 0.99834039 0.99912391 0.49318882;
++	-6.27286842 -0.00054314 0.00033280 7.27232528 0.99834068 0.99912407 0.49318885;
++	-6.27286865 -0.00054304 0.00033274 7.27232561 0.99834097 0.99912422 0.49318882;
++	-6.27286888 -0.00054295 0.00033268 7.27232593 0.99834126 0.99912437 0.49318888;
++	-6.27286910 -0.00054285 0.00033262 7.27232625 0.99834155 0.99912453 0.49318890;
++	-6.27286933 -0.00054276 0.00033256 7.27232657 0.99834184 0.99912468 0.49318892;
++	-6.27286956 -0.00054266 0.00033250 7.27232690 0.99834214 0.99912483 0.49318896;
++	-6.27286979 -0.00054257 0.00033245 7.27232722 0.99834243 0.99912499 0.49318900;
++	-6.27287001 -0.00054247 0.00033239 7.27232754 0.99834272 0.99912514 0.49318899;
++	-6.27287024 -0.00054238 0.00033233 7.27232787 0.99834301 0.99912529 0.49318908;
++	-6.27287047 -0.00054228 0.00033227 7.27232819 0.99834330 0.99912545 0.49318910;
++	-6.27287070 -0.00054219 0.00033221 7.27232851 0.99834359 0.99912560 0.49318913;
++	-6.27287092 -0.00054209 0.00033216 7.27232883 0.99834388 0.99912575 0.49318913;
++	-6.27287115 -0.00054200 0.00033210 7.27232915 0.99834417 0.99912591 0.49318919;
++	-6.27287138 -0.00054190 0.00033204 7.27232948 0.99834446 0.99912606 0.49318918;
++	-6.27287160 -0.00054181 0.00033198 7.27232980 0.99834475 0.99912621 0.49318924;
++	-6.27287183 -0.00054171 0.00033192 7.27233012 0.99834504 0.99912637 0.49318928;
++	-6.27287206 -0.00054162 0.00033186 7.27233044 0.99834533 0.99912652 0.49318937;
++	-6.27287228 -0.00054152 0.00033181 7.27233076 0.99834562 0.99912667 0.49318939;
++	-6.27287251 -0.00054143 0.00033175 7.27233108 0.99834591 0.99912682 0.49318942;
++	-6.27287274 -0.00054133 0.00033169 7.27233140 0.99834620 0.99912698 0.49318944;
++	-6.27287296 -0.00054124 0.00033163 7.27233173 0.99834649 0.99912713 0.49318945;
++	-6.27287319 -0.00054114 0.00033157 7.27233205 0.99834677 0.99912728 0.49318948;
++	-6.27287342 -0.00054105 0.00033152 7.27233237 0.99834706 0.99912744 0.49318948;
++	-6.27287364 -0.00054095 0.00033146 7.27233269 0.99834735 0.99912759 0.49318960;
++	-6.27287387 -0.00054086 0.00033140 7.27233301 0.99834764 0.99912774 0.49318965;
++	-6.27287409 -0.00054076 0.00033134 7.27233333 0.99834793 0.99912789 0.49318963;
++	-6.27287432 -0.00054067 0.00033128 7.27233365 0.99834822 0.99912805 0.49318967;
++	-6.27287455 -0.00054058 0.00033123 7.27233397 0.99834851 0.99912820 0.49318974;
++	-6.27287477 -0.00054048 0.00033117 7.27233429 0.99834880 0.99912835 0.49318975;
++	-6.27287500 -0.00054039 0.00033111 7.27233461 0.99834908 0.99912850 0.49318982;
++	-6.27287522 -0.00054029 0.00033105 7.27233493 0.99834937 0.99912865 0.49318976;
++	-6.27287545 -0.00054020 0.00033100 7.27233525 0.99834966 0.99912881 0.49318982;
++	-6.27287568 -0.00054010 0.00033094 7.27233557 0.99834995 0.99912896 0.49318990;
++	-6.27287590 -0.00054001 0.00033088 7.27233589 0.99835024 0.99912911 0.49318991;
++	-6.27287613 -0.00053992 0.00033082 7.27233621 0.99835052 0.99912926 0.49318988;
++	-6.27287635 -0.00053982 0.00033076 7.27233653 0.99835081 0.99912941 0.49319001;
++	-6.27287658 -0.00053973 0.00033071 7.27233685 0.99835110 0.99912957 0.49318998;
++	-6.27287680 -0.00053963 0.00033065 7.27233717 0.99835139 0.99912972 0.49319007;
++	-6.27287703 -0.00053954 0.00033059 7.27233749 0.99835168 0.99912987 0.49319009;
++	-6.27287725 -0.00053945 0.00033053 7.27233781 0.99835196 0.99913002 0.49319013;
++	-6.27287748 -0.00053935 0.00033048 7.27233812 0.99835225 0.99913017 0.49319012;
++	-6.27287770 -0.00053926 0.00033042 7.27233844 0.99835254 0.99913032 0.49319022;
++	-6.27287793 -0.00053916 0.00033036 7.27233876 0.99835282 0.99913048 0.49319019;
++	-6.27287815 -0.00053907 0.00033030 7.27233908 0.99835311 0.99913063 0.49319021;
++	-6.27287838 -0.00053898 0.00033025 7.27233940 0.99835340 0.99913078 0.49319029;
++	-6.27287860 -0.00053888 0.00033019 7.27233972 0.99835368 0.99913093 0.49319029;
++	-6.27287882 -0.00053879 0.00033013 7.27234004 0.99835397 0.99913108 0.49319033;
++	-6.27287905 -0.00053869 0.00033007 7.27234035 0.99835426 0.99913123 0.49319038;
++	-6.27287927 -0.00053860 0.00033002 7.27234067 0.99835454 0.99913138 0.49319044;
++	-6.27287950 -0.00053851 0.00032996 7.27234099 0.99835483 0.99913153 0.49319044;
++	-6.27287972 -0.00053841 0.00032990 7.27234131 0.99835512 0.99913169 0.49319052;
++	-6.27287994 -0.00053832 0.00032984 7.27234162 0.99835540 0.99913184 0.49319053;
++	-6.27288017 -0.00053823 0.00032979 7.27234194 0.99835569 0.99913199 0.49319055;
++	-6.27288039 -0.00053813 0.00032973 7.27234226 0.99835598 0.99913214 0.49319059;
++	-6.27288062 -0.00053804 0.00032967 7.27234258 0.99835626 0.99913229 0.49319064;
++	-6.27288084 -0.00053795 0.00032961 7.27234289 0.99835655 0.99913244 0.49319065;
++	-6.27288106 -0.00053785 0.00032956 7.27234321 0.99835683 0.99913259 0.49319063;
++	-6.27288129 -0.00053776 0.00032950 7.27234353 0.99835712 0.99913274 0.49319073;
++	-6.27288151 -0.00053767 0.00032944 7.27234385 0.99835740 0.99913289 0.49319071;
++	-6.27288173 -0.00053757 0.00032938 7.27234416 0.99835769 0.99913304 0.49319080;
++	-6.27288196 -0.00053748 0.00032933 7.27234448 0.99835797 0.99913319 0.49319079;
++	-6.27288218 -0.00053739 0.00032927 7.27234480 0.99835826 0.99913334 0.49319084;
++	-6.27288240 -0.00053729 0.00032921 7.27234511 0.99835854 0.99913349 0.49319094;
++	-6.27288263 -0.00053720 0.00032916 7.27234543 0.99835883 0.99913365 0.49319090;
++	-6.27288285 -0.00053711 0.00032910 7.27234574 0.99835911 0.99913380 0.49319093;
++	-6.27288307 -0.00053701 0.00032904 7.27234606 0.99835940 0.99913395 0.49319095;
++	-6.27288330 -0.00053692 0.00032898 7.27234638 0.99835968 0.99913410 0.49319102;
++	-6.27288352 -0.00053683 0.00032893 7.27234669 0.99835997 0.99913425 0.49319110;
++	-6.27288374 -0.00053673 0.00032887 7.27234701 0.99836025 0.99913440 0.49319107;
++	-6.27288396 -0.00053664 0.00032881 7.27234732 0.99836054 0.99913455 0.49319115;
++	-6.27288419 -0.00053655 0.00032876 7.27234764 0.99836082 0.99913470 0.49319113;
++	-6.27288441 -0.00053645 0.00032870 7.27234795 0.99836111 0.99913485 0.49319119;
++	-6.27288463 -0.00053636 0.00032864 7.27234827 0.99836139 0.99913500 0.49319119;
++	-6.27288485 -0.00053627 0.00032859 7.27234859 0.99836167 0.99913515 0.49319124;
++	-6.27288508 -0.00053618 0.00032853 7.27234890 0.99836196 0.99913530 0.49319131;
++	-6.27288530 -0.00053608 0.00032847 7.27234922 0.99836224 0.99913545 0.49319132;
++	-6.27288552 -0.00053599 0.00032841 7.27234953 0.99836253 0.99913560 0.49319134;
++	-6.27288574 -0.00053590 0.00032836 7.27234985 0.99836281 0.99913575 0.49319141;
++	-6.27288596 -0.00053580 0.00032830 7.27235016 0.99836309 0.99913590 0.49319142;
++	-6.27288619 -0.00053571 0.00032824 7.27235047 0.99836338 0.99913604 0.49319138;
++	-6.27288641 -0.00053562 0.00032819 7.27235079 0.99836366 0.99913619 0.49319145;
++	-6.27288663 -0.00053553 0.00032813 7.27235110 0.99836394 0.99913634 0.49319149;
++	-6.27288685 -0.00053543 0.00032807 7.27235142 0.99836423 0.99913649 0.49319155;
++	-6.27288707 -0.00053534 0.00032802 7.27235173 0.99836451 0.99913664 0.49319156;
++	-6.27288729 -0.00053525 0.00032796 7.27235205 0.99836479 0.99913679 0.49319156;
++	-6.27288752 -0.00053516 0.00032790 7.27235236 0.99836507 0.99913694 0.49319162;
++	-6.27288774 -0.00053506 0.00032785 7.27235267 0.99836536 0.99913709 0.49319169;
++	-6.27288796 -0.00053497 0.00032779 7.27235299 0.99836564 0.99913724 0.49319169;
++	-6.27288818 -0.00053488 0.00032773 7.27235330 0.99836592 0.99913739 0.49319176;
++	-6.27288840 -0.00053479 0.00032768 7.27235361 0.99836620 0.99913754 0.49319177;
++	-6.27288862 -0.00053469 0.00032762 7.27235393 0.99836649 0.99913769 0.49319182;
++	-6.27288884 -0.00053460 0.00032756 7.27235424 0.99836677 0.99913784 0.49319183;
++	-6.27288906 -0.00053451 0.00032751 7.27235455 0.99836705 0.99913798 0.49319186;
++	-6.27288928 -0.00053442 0.00032745 7.27235487 0.99836733 0.99913813 0.49319195;
++	-6.27288950 -0.00053432 0.00032739 7.27235518 0.99836762 0.99913828 0.49319191;
++	-6.27288973 -0.00053423 0.00032734 7.27235549 0.99836790 0.99913843 0.49319195;
++	-6.27288995 -0.00053414 0.00032728 7.27235581 0.99836818 0.99913858 0.49319198;
++	-6.27289017 -0.00053405 0.00032722 7.27235612 0.99836846 0.99913873 0.49319204;
++	-6.27289039 -0.00053396 0.00032717 7.27235643 0.99836874 0.99913888 0.49319208;
++	-6.27289061 -0.00053386 0.00032711 7.27235674 0.99836902 0.99913903 0.49319213;
++	-6.27289083 -0.00053377 0.00032705 7.27235706 0.99836931 0.99913917 0.49319212;
++	-6.27289105 -0.00053368 0.00032700 7.27235737 0.99836959 0.99913932 0.49319218;
++	-6.27289127 -0.00053359 0.00032694 7.27235768 0.99836987 0.99913947 0.49319222;
++	-6.27289149 -0.00053350 0.00032689 7.27235799 0.99837015 0.99913962 0.49319223;
++	-6.27289171 -0.00053340 0.00032683 7.27235830 0.99837043 0.99913977 0.49319229;
++	-6.27289193 -0.00053331 0.00032677 7.27235862 0.99837071 0.99913992 0.49319228;
++	-6.27289215 -0.00053322 0.00032672 7.27235893 0.99837099 0.99914006 0.49319230;
++	-6.27289237 -0.00053313 0.00032666 7.27235924 0.99837127 0.99914021 0.49319236;
++	-6.27289259 -0.00053304 0.00032660 7.27235955 0.99837155 0.99914036 0.49319240;
++	-6.27289281 -0.00053294 0.00032655 7.27235986 0.99837183 0.99914051 0.49319244;
++	-6.27289303 -0.00053285 0.00032649 7.27236017 0.99837211 0.99914066 0.49319243;
++	-6.27289325 -0.00053276 0.00032643 7.27236048 0.99837239 0.99914080 0.49319249;
++	-6.27289346 -0.00053267 0.00032638 7.27236080 0.99837267 0.99914095 0.49319257;
++	-6.27289368 -0.00053258 0.00032632 7.27236111 0.99837295 0.99914110 0.49319253;
++	-6.27289390 -0.00053249 0.00032627 7.27236142 0.99837323 0.99914125 0.49319261;
++	-6.27289412 -0.00053239 0.00032621 7.27236173 0.99837351 0.99914140 0.49319263;
++	-6.27289434 -0.00053230 0.00032615 7.27236204 0.99837379 0.99914154 0.49319267;
++	-6.27289456 -0.00053221 0.00032610 7.27236235 0.99837407 0.99914169 0.49319271;
++	-6.27289478 -0.00053212 0.00032604 7.27236266 0.99837435 0.99914184 0.49319271;
++	-6.27289500 -0.00053203 0.00032599 7.27236297 0.99837463 0.99914199 0.49319270;
++	-6.27289522 -0.00053194 0.00032593 7.27236328 0.99837491 0.99914213 0.49319278;
++	-6.27289544 -0.00053185 0.00032587 7.27236359 0.99837519 0.99914228 0.49319281;
++	-6.27289565 -0.00053175 0.00032582 7.27236390 0.99837547 0.99914243 0.49319284;
++	-6.27289587 -0.00053166 0.00032576 7.27236421 0.99837575 0.99914258 0.49319286;
++	-6.27289609 -0.00053157 0.00032571 7.27236452 0.99837603 0.99914272 0.49319287;
++	-6.27289631 -0.00053148 0.00032565 7.27236483 0.99837631 0.99914287 0.49319297;
++	-6.27289653 -0.00053139 0.00032559 7.27236514 0.99837659 0.99914302 0.49319300;
++	-6.27289675 -0.00053130 0.00032554 7.27236545 0.99837687 0.99914316 0.49319302;
++	-6.27289696 -0.00053121 0.00032548 7.27236576 0.99837714 0.99914331 0.49319305;
++	-6.27289718 -0.00053112 0.00032543 7.27236607 0.99837742 0.99914346 0.49319306;
++	-6.27289740 -0.00053102 0.00032537 7.27236638 0.99837770 0.99914361 0.49319318;
++	-6.27289762 -0.00053093 0.00032531 7.27236668 0.99837798 0.99914375 0.49319313;
++	-6.27289784 -0.00053084 0.00032526 7.27236699 0.99837826 0.99914390 0.49319318;
++	-6.27289805 -0.00053075 0.00032520 7.27236730 0.99837854 0.99914405 0.49319320;
++	-6.27289827 -0.00053066 0.00032515 7.27236761 0.99837881 0.99914419 0.49319315;
++	-6.27289849 -0.00053057 0.00032509 7.27236792 0.99837909 0.99914434 0.49319329;
++	-6.27289871 -0.00053048 0.00032504 7.27236823 0.99837937 0.99914449 0.49319329;
++	-6.27289892 -0.00053039 0.00032498 7.27236854 0.99837965 0.99914463 0.49319336;
++	-6.27289914 -0.00053030 0.00032492 7.27236884 0.99837993 0.99914478 0.49319338;
++	-6.27289936 -0.00053021 0.00032487 7.27236915 0.99838020 0.99914493 0.49319340;
++	-6.27289958 -0.00053012 0.00032481 7.27236946 0.99838048 0.99914507 0.49319339;
++	-6.27289979 -0.00053002 0.00032476 7.27236977 0.99838076 0.99914522 0.49319350;
++	-6.27290001 -0.00052993 0.00032470 7.27237008 0.99838104 0.99914536 0.49319352;
++	-6.27290023 -0.00052984 0.00032465 7.27237038 0.99838131 0.99914551 0.49319359;
++	-6.27290044 -0.00052975 0.00032459 7.27237069 0.99838159 0.99914566 0.49319354;
++	-6.27290066 -0.00052966 0.00032453 7.27237100 0.99838187 0.99914580 0.49319355;
++	-6.27290088 -0.00052957 0.00032448 7.27237131 0.99838214 0.99914595 0.49319365;
++	-6.27290109 -0.00052948 0.00032442 7.27237161 0.99838242 0.99914610 0.49319372;
++	-6.27290131 -0.00052939 0.00032437 7.27237192 0.99838270 0.99914624 0.49319371;
++	-6.27290153 -0.00052930 0.00032431 7.27237223 0.99838297 0.99914639 0.49319369;
++	-6.27290174 -0.00052921 0.00032426 7.27237254 0.99838325 0.99914653 0.49319379;
++	-6.27290196 -0.00052912 0.00032420 7.27237284 0.99838353 0.99914668 0.49319379;
++	-6.27290218 -0.00052903 0.00032415 7.27237315 0.99838380 0.99914683 0.49319387;
++	-6.27290239 -0.00052894 0.00032409 7.27237346 0.99838408 0.99914697 0.49319384;
++	-6.27290261 -0.00052885 0.00032404 7.27237376 0.99838436 0.99914712 0.49319390;
++	-6.27290283 -0.00052876 0.00032398 7.27237407 0.99838463 0.99914726 0.49319391;
++	-6.27290304 -0.00052867 0.00032392 7.27237438 0.99838491 0.99914741 0.49319397;
++	-6.27290326 -0.00052858 0.00032387 7.27237468 0.99838518 0.99914755 0.49319399;
++	-6.27290347 -0.00052849 0.00032381 7.27237499 0.99838546 0.99914770 0.49319399;
++	-6.27290369 -0.00052840 0.00032376 7.27237529 0.99838574 0.99914785 0.49319402;
++	-6.27290391 -0.00052831 0.00032370 7.27237560 0.99838601 0.99914799 0.49319410;
++	-6.27290412 -0.00052822 0.00032365 7.27237591 0.99838629 0.99914814 0.49319411;
++	-6.27290434 -0.00052813 0.00032359 7.27237621 0.99838656 0.99914828 0.49319417;
++	-6.27290455 -0.00052804 0.00032354 7.27237652 0.99838684 0.99914843 0.49319421;
++	-6.27290477 -0.00052795 0.00032348 7.27237682 0.99838711 0.99914857 0.49319423;
++	-6.27290498 -0.00052786 0.00032343 7.27237713 0.99838739 0.99914872 0.49319424;
++	-6.27290520 -0.00052777 0.00032337 7.27237743 0.99838766 0.99914886 0.49319429;
++	-6.27290541 -0.00052768 0.00032332 7.27237774 0.99838794 0.99914901 0.49319426;
++	-6.27290563 -0.00052759 0.00032326 7.27237804 0.99838821 0.99914915 0.49319434;
++	-6.27290584 -0.00052750 0.00032321 7.27237835 0.99838849 0.99914930 0.49319436;
++	-6.27290606 -0.00052741 0.00032315 7.27237865 0.99838876 0.99914944 0.49319441;
++	-6.27290627 -0.00052732 0.00032310 7.27237896 0.99838904 0.99914959 0.49319443;
++	-6.27290649 -0.00052723 0.00032304 7.27237926 0.99838931 0.99914973 0.49319450;
++	-6.27290670 -0.00052714 0.00032299 7.27237957 0.99838959 0.99914988 0.49319447;
++	-6.27290692 -0.00052705 0.00032293 7.27237987 0.99838986 0.99915002 0.49319454;
++	-6.27290713 -0.00052696 0.00032288 7.27238018 0.99839013 0.99915017 0.49319453;
++	-6.27290735 -0.00052687 0.00032282 7.27238048 0.99839041 0.99915031 0.49319457;
++	-6.27290756 -0.00052678 0.00032277 7.27238078 0.99839068 0.99915046 0.49319463;
++	-6.27290778 -0.00052669 0.00032271 7.27238109 0.99839096 0.99915060 0.49319468;
++	-6.27290799 -0.00052660 0.00032266 7.27238139 0.99839123 0.99915075 0.49319471;
++	-6.27290821 -0.00052651 0.00032260 7.27238170 0.99839150 0.99915089 0.49319472;
++	-6.27290842 -0.00052642 0.00032255 7.27238200 0.99839178 0.99915103 0.49319477;
++	-6.27290863 -0.00052633 0.00032249 7.27238230 0.99839205 0.99915118 0.49319479;
++	-6.27290885 -0.00052624 0.00032244 7.27238261 0.99839232 0.99915132 0.49319479;
++	-6.27290906 -0.00052615 0.00032238 7.27238291 0.99839260 0.99915147 0.49319486;
++	-6.27290928 -0.00052606 0.00032233 7.27238321 0.99839287 0.99915161 0.49319496;
++	-6.27290949 -0.00052597 0.00032227 7.27238352 0.99839314 0.99915176 0.49319494;
++	-6.27290970 -0.00052588 0.00032222 7.27238382 0.99839342 0.99915190 0.49319490;
++	-6.27290992 -0.00052579 0.00032216 7.27238412 0.99839369 0.99915204 0.49319495;
++	-6.27291013 -0.00052570 0.00032211 7.27238443 0.99839396 0.99915219 0.49319503;
++	-6.27291034 -0.00052561 0.00032205 7.27238473 0.99839424 0.99915233 0.49319499;
++	-6.27291056 -0.00052553 0.00032200 7.27238503 0.99839451 0.99915248 0.49319506;
++	-6.27291077 -0.00052544 0.00032194 7.27238534 0.99839478 0.99915262 0.49319516;
++	-6.27291098 -0.00052535 0.00032189 7.27238564 0.99839505 0.99915276 0.49319515;
++	-6.27291120 -0.00052526 0.00032183 7.27238594 0.99839533 0.99915291 0.49319519;
++	-6.27291141 -0.00052517 0.00032178 7.27238624 0.99839560 0.99915305 0.49319519;
++	-6.27291162 -0.00052508 0.00032173 7.27238654 0.99839587 0.99915320 0.49319522;
++	-6.27291184 -0.00052499 0.00032167 7.27238685 0.99839614 0.99915334 0.49319528;
++	-6.27291205 -0.00052490 0.00032162 7.27238715 0.99839642 0.99915348 0.49319533;
++	-6.27291226 -0.00052481 0.00032156 7.27238745 0.99839669 0.99915363 0.49319536;
++	-6.27291248 -0.00052472 0.00032151 7.27238775 0.99839696 0.99915377 0.49319537;
++	-6.27291269 -0.00052463 0.00032145 7.27238805 0.99839723 0.99915391 0.49319544;
++	-6.27291290 -0.00052455 0.00032140 7.27238836 0.99839750 0.99915406 0.49319545;
++	-6.27291311 -0.00052446 0.00032134 7.27238866 0.99839777 0.99915420 0.49319547;
++	-6.27291333 -0.00052437 0.00032129 7.27238896 0.99839805 0.99915434 0.49319547;
++	-6.27291354 -0.00052428 0.00032123 7.27238926 0.99839832 0.99915449 0.49319552;
++	-6.27291375 -0.00052419 0.00032118 7.27238956 0.99839859 0.99915463 0.49319555;
++	-6.27291396 -0.00052410 0.00032113 7.27238986 0.99839886 0.99915477 0.49319555;
++	-6.27291418 -0.00052401 0.00032107 7.27239016 0.99839913 0.99915492 0.49319565;
++	-6.27291439 -0.00052392 0.00032102 7.27239046 0.99839940 0.99915506 0.49319563;
++	-6.27291460 -0.00052384 0.00032096 7.27239077 0.99839967 0.99915520 0.49319565;
++	-6.27291481 -0.00052375 0.00032091 7.27239107 0.99839994 0.99915534 0.49319571;
++	-6.27291503 -0.00052366 0.00032085 7.27239137 0.99840021 0.99915549 0.49319576;
++	-6.27291524 -0.00052357 0.00032080 7.27239167 0.99840049 0.99915563 0.49319577;
++	-6.27291545 -0.00052348 0.00032075 7.27239197 0.99840076 0.99915577 0.49319579;
++	-6.27291566 -0.00052339 0.00032069 7.27239227 0.99840103 0.99915592 0.49319582;
++	-6.27291587 -0.00052330 0.00032064 7.27239257 0.99840130 0.99915606 0.49319587;
++	-6.27291608 -0.00052322 0.00032058 7.27239287 0.99840157 0.99915620 0.49319592;
++	-6.27291630 -0.00052313 0.00032053 7.27239317 0.99840184 0.99915634 0.49319593;
++	-6.27291651 -0.00052304 0.00032047 7.27239347 0.99840211 0.99915649 0.49319594;
++	-6.27291672 -0.00052295 0.00032042 7.27239377 0.99840238 0.99915663 0.49319596;
++	-6.27291693 -0.00052286 0.00032037 7.27239407 0.99840265 0.99915677 0.49319602;
++	-6.27291714 -0.00052277 0.00032031 7.27239437 0.99840292 0.99915691 0.49319607;
++	-6.27291735 -0.00052269 0.00032026 7.27239467 0.99840319 0.99915706 0.49319609;
++	-6.27291756 -0.00052260 0.00032020 7.27239497 0.99840346 0.99915720 0.49319609;
++	-6.27291777 -0.00052251 0.00032015 7.27239526 0.99840373 0.99915734 0.49319619;
++	-6.27291799 -0.00052242 0.00032010 7.27239556 0.99840400 0.99915748 0.49319624;
++	-6.27291820 -0.00052233 0.00032004 7.27239586 0.99840427 0.99915763 0.49319616;
++	-6.27291841 -0.00052225 0.00031999 7.27239616 0.99840453 0.99915777 0.49319625;
++	-6.27291862 -0.00052216 0.00031993 7.27239646 0.99840480 0.99915791 0.49319632;
++	-6.27291883 -0.00052207 0.00031988 7.27239676 0.99840507 0.99915805 0.49319625;
++	-6.27291904 -0.00052198 0.00031983 7.27239706 0.99840534 0.99915819 0.49319634;
++	-6.27291925 -0.00052189 0.00031977 7.27239736 0.99840561 0.99915834 0.49319638;
++	-6.27291946 -0.00052180 0.00031972 7.27239766 0.99840588 0.99915848 0.49319640;
++	-6.27291967 -0.00052172 0.00031966 7.27239795 0.99840615 0.99915862 0.49319643;
++	-6.27291988 -0.00052163 0.00031961 7.27239825 0.99840642 0.99915876 0.49319646;
++	-6.27292009 -0.00052154 0.00031956 7.27239855 0.99840669 0.99915890 0.49319643;
++	-6.27292030 -0.00052145 0.00031950 7.27239885 0.99840695 0.99915904 0.49319651;
++	-6.27292051 -0.00052137 0.00031945 7.27239915 0.99840722 0.99915919 0.49319652;
++	-6.27292072 -0.00052128 0.00031939 7.27239944 0.99840749 0.99915933 0.49319657;
++	-6.27292093 -0.00052119 0.00031934 7.27239974 0.99840776 0.99915947 0.49319663;
++	-6.27292114 -0.00052110 0.00031929 7.27240004 0.99840803 0.99915961 0.49319665;
++	-6.27292135 -0.00052101 0.00031923 7.27240034 0.99840830 0.99915975 0.49319671;
++	-6.27292156 -0.00052093 0.00031918 7.27240063 0.99840856 0.99915989 0.49319676;
++	-6.27292177 -0.00052084 0.00031913 7.27240093 0.99840883 0.99916004 0.49319677;
++	-6.27292198 -0.00052075 0.00031907 7.27240123 0.99840910 0.99916018 0.49319672;
++	-6.27292219 -0.00052066 0.00031902 7.27240153 0.99840937 0.99916032 0.49319676;
++	-6.27292240 -0.00052058 0.00031896 7.27240182 0.99840964 0.99916046 0.49319684;
++	-6.27292261 -0.00052049 0.00031891 7.27240212 0.99840990 0.99916060 0.49319683;
++	-6.27292282 -0.00052040 0.00031886 7.27240242 0.99841017 0.99916074 0.49319688;
++	-6.27292303 -0.00052031 0.00031880 7.27240271 0.99841044 0.99916088 0.49319696;
++	-6.27292324 -0.00052023 0.00031875 7.27240301 0.99841070 0.99916102 0.49319696;
++	-6.27292345 -0.00052014 0.00031870 7.27240331 0.99841097 0.99916117 0.49319698;
++	-6.27292366 -0.00052005 0.00031864 7.27240360 0.99841124 0.99916131 0.49319702;
++	-6.27292386 -0.00051996 0.00031859 7.27240390 0.99841151 0.99916145 0.49319705;
++	-6.27292407 -0.00051988 0.00031854 7.27240420 0.99841177 0.99916159 0.49319708;
++	-6.27292428 -0.00051979 0.00031848 7.27240449 0.99841204 0.99916173 0.49319705;
++	-6.27292449 -0.00051970 0.00031843 7.27240479 0.99841231 0.99916187 0.49319715;
++	-6.27292470 -0.00051962 0.00031837 7.27240508 0.99841257 0.99916201 0.49319716;
++	-6.27292491 -0.00051953 0.00031832 7.27240538 0.99841284 0.99916215 0.49319722;
++	-6.27292512 -0.00051944 0.00031827 7.27240568 0.99841311 0.99916229 0.49319725;
++	-6.27292533 -0.00051935 0.00031821 7.27240597 0.99841337 0.99916243 0.49319725;
++	-6.27292553 -0.00051927 0.00031816 7.27240627 0.99841364 0.99916257 0.49319734;
++	-6.27292574 -0.00051918 0.00031811 7.27240656 0.99841390 0.99916271 0.49319744;
++	-6.27292595 -0.00051909 0.00031805 7.27240686 0.99841417 0.99916285 0.49319739;
++	-6.27292616 -0.00051901 0.00031800 7.27240715 0.99841444 0.99916299 0.49319736;
++	-6.27292637 -0.00051892 0.00031795 7.27240745 0.99841470 0.99916313 0.49319748;
++	-6.27292658 -0.00051883 0.00031789 7.27240774 0.99841497 0.99916327 0.49319747;
++	-6.27292678 -0.00051874 0.00031784 7.27240804 0.99841523 0.99916341 0.49319748;
++	-6.27292699 -0.00051866 0.00031779 7.27240833 0.99841550 0.99916355 0.49319753;
++	-6.27292720 -0.00051857 0.00031773 7.27240863 0.99841577 0.99916369 0.49319759;
++	-6.27292741 -0.00051848 0.00031768 7.27240892 0.99841603 0.99916384 0.49319759;
++	-6.27292762 -0.00051840 0.00031763 7.27240922 0.99841630 0.99916398 0.49319759;
++	-6.27292782 -0.00051831 0.00031757 7.27240951 0.99841656 0.99916412 0.49319764;
++	-6.27292803 -0.00051822 0.00031752 7.27240981 0.99841683 0.99916426 0.49319769;
++	-6.27292824 -0.00051814 0.00031747 7.27241010 0.99841709 0.99916440 0.49319768;
++	-6.27292845 -0.00051805 0.00031742 7.27241040 0.99841736 0.99916453 0.49319773;
++	-6.27292865 -0.00051796 0.00031736 7.27241069 0.99841762 0.99916467 0.49319777;
++	-6.27292886 -0.00051788 0.00031731 7.27241098 0.99841789 0.99916481 0.49319789;
++	-6.27292907 -0.00051779 0.00031726 7.27241128 0.99841815 0.99916495 0.49319781;
++	-6.27292927 -0.00051770 0.00031720 7.27241157 0.99841842 0.99916509 0.49319785;
++	-6.27292948 -0.00051762 0.00031715 7.27241186 0.99841868 0.99916523 0.49319784;
++	-6.27292969 -0.00051753 0.00031710 7.27241216 0.99841895 0.99916537 0.49319795;
++	-6.27292990 -0.00051744 0.00031704 7.27241245 0.99841921 0.99916551 0.49319794;
++	-6.27293010 -0.00051736 0.00031699 7.27241275 0.99841947 0.99916565 0.49319797;
++	-6.27293031 -0.00051727 0.00031694 7.27241304 0.99841974 0.99916579 0.49319807;
++	-6.27293052 -0.00051718 0.00031688 7.27241333 0.99842000 0.99916593 0.49319800;
++	-6.27293072 -0.00051710 0.00031683 7.27241363 0.99842027 0.99916607 0.49319809;
++	-6.27293093 -0.00051701 0.00031678 7.27241392 0.99842053 0.99916621 0.49319811;
++	-6.27293114 -0.00051693 0.00031673 7.27241421 0.99842079 0.99916635 0.49319811;
++	-6.27293134 -0.00051684 0.00031667 7.27241450 0.99842106 0.99916649 0.49319817;
++	-6.27293155 -0.00051675 0.00031662 7.27241480 0.99842132 0.99916663 0.49319820;
++	-6.27293176 -0.00051667 0.00031657 7.27241509 0.99842159 0.99916677 0.49319821;
++	-6.27293196 -0.00051658 0.00031651 7.27241538 0.99842185 0.99916691 0.49319833;
++	-6.27293217 -0.00051649 0.00031646 7.27241567 0.99842211 0.99916704 0.49319829;
++	-6.27293237 -0.00051641 0.00031641 7.27241597 0.99842238 0.99916718 0.49319831;
++	-6.27293258 -0.00051632 0.00031636 7.27241626 0.99842264 0.99916732 0.49319838;
++	-6.27293279 -0.00051624 0.00031630 7.27241655 0.99842290 0.99916746 0.49319843;
++	-6.27293299 -0.00051615 0.00031625 7.27241684 0.99842316 0.99916760 0.49319840;
++	-6.27293320 -0.00051606 0.00031620 7.27241713 0.99842343 0.99916774 0.49319841;
++	-6.27293340 -0.00051598 0.00031614 7.27241743 0.99842369 0.99916788 0.49319849;
++	-6.27293361 -0.00051589 0.00031609 7.27241772 0.99842395 0.99916802 0.49319850;
++	-6.27293382 -0.00051581 0.00031604 7.27241801 0.99842422 0.99916816 0.49319856;
++	-6.27293402 -0.00051572 0.00031599 7.27241830 0.99842448 0.99916829 0.49319860;
++	-6.27293423 -0.00051563 0.00031593 7.27241859 0.99842474 0.99916843 0.49319855;
++	-6.27293443 -0.00051555 0.00031588 7.27241888 0.99842500 0.99916857 0.49319861;
++	-6.27293464 -0.00051546 0.00031583 7.27241918 0.99842527 0.99916871 0.49319870;
++	-6.27293484 -0.00051538 0.00031578 7.27241947 0.99842553 0.99916885 0.49319866;
++	-6.27293505 -0.00051529 0.00031572 7.27241976 0.99842579 0.99916899 0.49319873;
++	-6.27293525 -0.00051520 0.00031567 7.27242005 0.99842605 0.99916912 0.49319872;
++	-6.27293546 -0.00051512 0.00031562 7.27242034 0.99842632 0.99916926 0.49319875;
++	-6.27293566 -0.00051503 0.00031557 7.27242063 0.99842658 0.99916940 0.49319885;
++	-6.27293587 -0.00051495 0.00031551 7.27242092 0.99842684 0.99916954 0.49319881;
++	-6.27293607 -0.00051486 0.00031546 7.27242121 0.99842710 0.99916968 0.49319885;
++	-6.27293628 -0.00051478 0.00031541 7.27242150 0.99842736 0.99916982 0.49319897;
++	-6.27293648 -0.00051469 0.00031536 7.27242179 0.99842762 0.99916995 0.49319898;
++	-6.27293669 -0.00051461 0.00031530 7.27242208 0.99842789 0.99917009 0.49319895;
++	-6.27293689 -0.00051452 0.00031525 7.27242237 0.99842815 0.99917023 0.49319902;
++	-6.27293710 -0.00051443 0.00031520 7.27242266 0.99842841 0.99917037 0.49319899;
++	-6.27293730 -0.00051435 0.00031515 7.27242295 0.99842867 0.99917051 0.49319907;
++	-6.27293751 -0.00051426 0.00031509 7.27242324 0.99842893 0.99917064 0.49319910;
++	-6.27293771 -0.00051418 0.00031504 7.27242353 0.99842919 0.99917078 0.49319911;
++	-6.27293792 -0.00051409 0.00031499 7.27242382 0.99842945 0.99917092 0.49319911;
++	-6.27293812 -0.00051401 0.00031494 7.27242411 0.99842971 0.99917106 0.49319918;
++	-6.27293832 -0.00051392 0.00031488 7.27242440 0.99842997 0.99917119 0.49319923;
++	-6.27293853 -0.00051384 0.00031483 7.27242469 0.99843024 0.99917133 0.49319919;
++	-6.27293873 -0.00051375 0.00031478 7.27242498 0.99843050 0.99917147 0.49319924;
++	-6.27293894 -0.00051367 0.00031473 7.27242527 0.99843076 0.99917161 0.49319925;
++	-6.27293914 -0.00051358 0.00031467 7.27242556 0.99843102 0.99917174 0.49319934;
++	-6.27293934 -0.00051350 0.00031462 7.27242585 0.99843128 0.99917188 0.49319932;
++	-6.27293955 -0.00051341 0.00031457 7.27242614 0.99843154 0.99917202 0.49319938;
++	-6.27293975 -0.00051333 0.00031452 7.27242643 0.99843180 0.99917216 0.49319942;
++	-6.27293995 -0.00051324 0.00031447 7.27242671 0.99843206 0.99917229 0.49319947;
++	-6.27294016 -0.00051315 0.00031441 7.27242700 0.99843232 0.99917243 0.49319948;
++	-6.27294036 -0.00051307 0.00031436 7.27242729 0.99843258 0.99917257 0.49319954;
++	-6.27294057 -0.00051298 0.00031431 7.27242758 0.99843284 0.99917271 0.49319956;
++	-6.27294077 -0.00051290 0.00031426 7.27242787 0.99843310 0.99917284 0.49319957;
++	-6.27294097 -0.00051281 0.00031421 7.27242816 0.99843336 0.99917298 0.49319962;
++	-6.27294118 -0.00051273 0.00031415 7.27242845 0.99843362 0.99917312 0.49319969;
++	-6.27294138 -0.00051265 0.00031410 7.27242873 0.99843388 0.99917325 0.49319972;
++	-6.27294158 -0.00051256 0.00031405 7.27242902 0.99843414 0.99917339 0.49319967;
++	-6.27294178 -0.00051248 0.00031400 7.27242931 0.99843439 0.99917353 0.49319971;
++	-6.27294199 -0.00051239 0.00031395 7.27242960 0.99843465 0.99917366 0.49319975;
++	-6.27294219 -0.00051231 0.00031389 7.27242988 0.99843491 0.99917380 0.49319976;
++	-6.27294239 -0.00051222 0.00031384 7.27243017 0.99843517 0.99917394 0.49319985;
++	-6.27294260 -0.00051214 0.00031379 7.27243046 0.99843543 0.99917407 0.49319980;
++	-6.27294280 -0.00051205 0.00031374 7.27243075 0.99843569 0.99917421 0.49319987;
++	-6.27294300 -0.00051197 0.00031369 7.27243103 0.99843595 0.99917435 0.49319991;
++	-6.27294320 -0.00051188 0.00031363 7.27243132 0.99843621 0.99917448 0.49319996;
++	-6.27294341 -0.00051180 0.00031358 7.27243161 0.99843647 0.99917462 0.49320001;
++	-6.27294361 -0.00051171 0.00031353 7.27243190 0.99843673 0.99917476 0.49319998;
++	-6.27294381 -0.00051163 0.00031348 7.27243218 0.99843698 0.99917489 0.49320000;
++	-6.27294401 -0.00051154 0.00031343 7.27243247 0.99843724 0.99917503 0.49320003;
++	-6.27294422 -0.00051146 0.00031337 7.27243276 0.99843750 0.99917517 0.49320007;
++	-6.27294442 -0.00051137 0.00031332 7.27243304 0.99843776 0.99917530 0.49320006;
++	-6.27294462 -0.00051129 0.00031327 7.27243333 0.99843802 0.99917544 0.49320012;
++	-6.27294482 -0.00051121 0.00031322 7.27243362 0.99843827 0.99917558 0.49320018;
++	-6.27294502 -0.00051112 0.00031317 7.27243390 0.99843853 0.99917571 0.49320018;
++	-6.27294523 -0.00051104 0.00031312 7.27243419 0.99843879 0.99917585 0.49320017;
++	-6.27294543 -0.00051095 0.00031306 7.27243448 0.99843905 0.99917598 0.49320022;
++	-6.27294563 -0.00051087 0.00031301 7.27243476 0.99843931 0.99917612 0.49320033;
++	-6.27294583 -0.00051078 0.00031296 7.27243505 0.99843956 0.99917626 0.49320035;
++	-6.27294603 -0.00051070 0.00031291 7.27243533 0.99843982 0.99917639 0.49320035;
++	-6.27294623 -0.00051062 0.00031286 7.27243562 0.99844008 0.99917653 0.49320037;
++	-6.27294644 -0.00051053 0.00031281 7.27243590 0.99844034 0.99917666 0.49320040;
++	-6.27294664 -0.00051045 0.00031275 7.27243619 0.99844059 0.99917680 0.49320046;
++	-6.27294684 -0.00051036 0.00031270 7.27243648 0.99844085 0.99917693 0.49320050;
++	-6.27294704 -0.00051028 0.00031265 7.27243676 0.99844111 0.99917707 0.49320049;
++	-6.27294724 -0.00051019 0.00031260 7.27243705 0.99844136 0.99917721 0.49320054;
++	-6.27294744 -0.00051011 0.00031255 7.27243733 0.99844162 0.99917734 0.49320055;
++	-6.27294764 -0.00051003 0.00031250 7.27243762 0.99844188 0.99917748 0.49320064;
++	-6.27294784 -0.00050994 0.00031244 7.27243790 0.99844214 0.99917761 0.49320065;
++	-6.27294805 -0.00050986 0.00031239 7.27243819 0.99844239 0.99917775 0.49320067;
++	-6.27294825 -0.00050977 0.00031234 7.27243847 0.99844265 0.99917788 0.49320073;
++	-6.27294845 -0.00050969 0.00031229 7.27243876 0.99844291 0.99917802 0.49320072;
++	-6.27294865 -0.00050961 0.00031224 7.27243904 0.99844316 0.99917815 0.49320076;
++	-6.27294885 -0.00050952 0.00031219 7.27243933 0.99844342 0.99917829 0.49320077;
++	-6.27294905 -0.00050944 0.00031214 7.27243961 0.99844367 0.99917843 0.49320076;
++	-6.27294925 -0.00050936 0.00031208 7.27243989 0.99844393 0.99917856 0.49320084;
++	-6.27294945 -0.00050927 0.00031203 7.27244018 0.99844419 0.99917870 0.49320087;
++	-6.27294965 -0.00050919 0.00031198 7.27244046 0.99844444 0.99917883 0.49320088;
++	-6.27294985 -0.00050910 0.00031193 7.27244075 0.99844470 0.99917897 0.49320097;
++	-6.27295005 -0.00050902 0.00031188 7.27244103 0.99844495 0.99917910 0.49320091;
++	-6.27295025 -0.00050894 0.00031183 7.27244132 0.99844521 0.99917924 0.49320097;
++	-6.27295045 -0.00050885 0.00031178 7.27244160 0.99844547 0.99917937 0.49320101;
++	-6.27295065 -0.00050877 0.00031173 7.27244188 0.99844572 0.99917951 0.49320102;
++	-6.27295085 -0.00050869 0.00031167 7.27244217 0.99844598 0.99917964 0.49320101;
++	-6.27295105 -0.00050860 0.00031162 7.27244245 0.99844623 0.99917978 0.49320112;
++	-6.27295125 -0.00050852 0.00031157 7.27244273 0.99844649 0.99917991 0.49320117;
++	-6.27295145 -0.00050844 0.00031152 7.27244302 0.99844674 0.99918004 0.49320117;
++	-6.27295165 -0.00050835 0.00031147 7.27244330 0.99844700 0.99918018 0.49320119;
++	-6.27295185 -0.00050827 0.00031142 7.27244358 0.99844725 0.99918031 0.49320122;
++	-6.27295205 -0.00050818 0.00031137 7.27244387 0.99844751 0.99918045 0.49320128;
++	-6.27295225 -0.00050810 0.00031132 7.27244415 0.99844776 0.99918058 0.49320130;
++	-6.27295245 -0.00050802 0.00031126 7.27244443 0.99844802 0.99918072 0.49320132;
++	-6.27295265 -0.00050793 0.00031121 7.27244472 0.99844827 0.99918085 0.49320130;
++	-6.27295285 -0.00050785 0.00031116 7.27244500 0.99844853 0.99918099 0.49320137;
++	-6.27295305 -0.00050777 0.00031111 7.27244528 0.99844878 0.99918112 0.49320141;
++	-6.27295325 -0.00050768 0.00031106 7.27244556 0.99844904 0.99918126 0.49320145;
++	-6.27295345 -0.00050760 0.00031101 7.27244585 0.99844929 0.99918139 0.49320144;
++	-6.27295365 -0.00050752 0.00031096 7.27244613 0.99844955 0.99918152 0.49320149;
++	-6.27295385 -0.00050743 0.00031091 7.27244641 0.99844980 0.99918166 0.49320154;
++	-6.27295404 -0.00050735 0.00031086 7.27244669 0.99845005 0.99918179 0.49320156;
++	-6.27295424 -0.00050727 0.00031081 7.27244697 0.99845031 0.99918193 0.49320161;
++	-6.27295444 -0.00050719 0.00031075 7.27244726 0.99845056 0.99918206 0.49320163;
++	-6.27295464 -0.00050710 0.00031070 7.27244754 0.99845082 0.99918219 0.49320168;
++	-6.27295484 -0.00050702 0.00031065 7.27244782 0.99845107 0.99918233 0.49320163;
++	-6.27295504 -0.00050694 0.00031060 7.27244810 0.99845132 0.99918246 0.49320171;
++	-6.27295524 -0.00050685 0.00031055 7.27244838 0.99845158 0.99918260 0.49320174;
++	-6.27295544 -0.00050677 0.00031050 7.27244867 0.99845183 0.99918273 0.49320177;
++	-6.27295563 -0.00050669 0.00031045 7.27244895 0.99845208 0.99918286 0.49320176;
++	-6.27295583 -0.00050660 0.00031040 7.27244923 0.99845234 0.99918300 0.49320182;
++	-6.27295603 -0.00050652 0.00031035 7.27244951 0.99845259 0.99918313 0.49320186;
++	-6.27295623 -0.00050644 0.00031030 7.27244979 0.99845284 0.99918327 0.49320185;
++	-6.27295643 -0.00050636 0.00031025 7.27245007 0.99845310 0.99918340 0.49320186;
++	-6.27295663 -0.00050627 0.00031019 7.27245035 0.99845335 0.99918353 0.49320197;
++	-6.27295682 -0.00050619 0.00031014 7.27245063 0.99845360 0.99918367 0.49320197;
++	-6.27295702 -0.00050611 0.00031009 7.27245091 0.99845386 0.99918380 0.49320194;
++	-6.27295722 -0.00050602 0.00031004 7.27245120 0.99845411 0.99918393 0.49320202;
++	-6.27295742 -0.00050594 0.00030999 7.27245148 0.99845436 0.99918407 0.49320205;
++	-6.27295762 -0.00050586 0.00030994 7.27245176 0.99845462 0.99918420 0.49320207;
++	-6.27295781 -0.00050578 0.00030989 7.27245204 0.99845487 0.99918433 0.49320207;
++	-6.27295801 -0.00050569 0.00030984 7.27245232 0.99845512 0.99918447 0.49320217;
++	-6.27295821 -0.00050561 0.00030979 7.27245260 0.99845537 0.99918460 0.49320221;
++	-6.27295841 -0.00050553 0.00030974 7.27245288 0.99845563 0.99918473 0.49320219;
++	-6.27295860 -0.00050545 0.00030969 7.27245316 0.99845588 0.99918487 0.49320222;
++	-6.27295880 -0.00050536 0.00030964 7.27245344 0.99845613 0.99918500 0.49320228;
++	-6.27295900 -0.00050528 0.00030959 7.27245372 0.99845638 0.99918513 0.49320230;
++	-6.27295920 -0.00050520 0.00030954 7.27245400 0.99845663 0.99918526 0.49320235;
++	-6.27295939 -0.00050512 0.00030949 7.27245428 0.99845689 0.99918540 0.49320231;
++	-6.27295959 -0.00050503 0.00030944 7.27245456 0.99845714 0.99918553 0.49320239;
++	-6.27295979 -0.00050495 0.00030938 7.27245484 0.99845739 0.99918566 0.49320239;
++	-6.27295998 -0.00050487 0.00030933 7.27245512 0.99845764 0.99918580 0.49320243;
++	-6.27296018 -0.00050479 0.00030928 7.27245539 0.99845789 0.99918593 0.49320240;
++	-6.27296038 -0.00050470 0.00030923 7.27245567 0.99845814 0.99918606 0.49320248;
++	-6.27296058 -0.00050462 0.00030918 7.27245595 0.99845840 0.99918619 0.49320254;
++	-6.27296077 -0.00050454 0.00030913 7.27245623 0.99845865 0.99918633 0.49320254;
++	-6.27296097 -0.00050446 0.00030908 7.27245651 0.99845890 0.99918646 0.49320257;
++	-6.27296117 -0.00050438 0.00030903 7.27245679 0.99845915 0.99918659 0.49320260;
++	-6.27296136 -0.00050429 0.00030898 7.27245707 0.99845940 0.99918673 0.49320260;
++	-6.27296156 -0.00050421 0.00030893 7.27245735 0.99845965 0.99918686 0.49320264;
++	-6.27296176 -0.00050413 0.00030888 7.27245763 0.99845990 0.99918699 0.49320270;
++	-6.27296195 -0.00050405 0.00030883 7.27245790 0.99846015 0.99918712 0.49320271;
++	-6.27296215 -0.00050397 0.00030878 7.27245818 0.99846040 0.99918726 0.49320271;
++	-6.27296234 -0.00050388 0.00030873 7.27245846 0.99846066 0.99918739 0.49320279;
++	-6.27296254 -0.00050380 0.00030868 7.27245874 0.99846091 0.99918752 0.49320285;
++	-6.27296274 -0.00050372 0.00030863 7.27245902 0.99846116 0.99918765 0.49320278;
++	-6.27296293 -0.00050364 0.00030858 7.27245930 0.99846141 0.99918778 0.49320286;
++	-6.27296313 -0.00050356 0.00030853 7.27245957 0.99846166 0.99918792 0.49320284;
++	-6.27296332 -0.00050347 0.00030848 7.27245985 0.99846191 0.99918805 0.49320294;
++	-6.27296352 -0.00050339 0.00030843 7.27246013 0.99846216 0.99918818 0.49320297;
++	-6.27296372 -0.00050331 0.00030838 7.27246041 0.99846241 0.99918831 0.49320295;
++	-6.27296391 -0.00050323 0.00030833 7.27246068 0.99846266 0.99918844 0.49320301;
++	-6.27296411 -0.00050315 0.00030828 7.27246096 0.99846291 0.99918858 0.49320303;
++	-6.27296430 -0.00050306 0.00030823 7.27246124 0.99846316 0.99918871 0.49320305;
++	-6.27296450 -0.00050298 0.00030818 7.27246152 0.99846341 0.99918884 0.49320310;
++	-6.27296469 -0.00050290 0.00030813 7.27246179 0.99846366 0.99918897 0.49320314;
++	-6.27296489 -0.00050282 0.00030808 7.27246207 0.99846391 0.99918910 0.49320318;
++	-6.27296509 -0.00050274 0.00030803 7.27246235 0.99846416 0.99918924 0.49320319;
++	-6.27296528 -0.00050266 0.00030798 7.27246263 0.99846441 0.99918937 0.49320326;
++	-6.27296548 -0.00050257 0.00030793 7.27246290 0.99846466 0.99918950 0.49320325;
++	-6.27296567 -0.00050249 0.00030788 7.27246318 0.99846490 0.99918963 0.49320329;
++	-6.27296587 -0.00050241 0.00030783 7.27246346 0.99846515 0.99918976 0.49320330;
++	-6.27296606 -0.00050233 0.00030778 7.27246373 0.99846540 0.99918989 0.49320333;
++	-6.27296626 -0.00050225 0.00030773 7.27246401 0.99846565 0.99919002 0.49320339;
++	-6.27296645 -0.00050217 0.00030768 7.27246429 0.99846590 0.99919016 0.49320339;
++	-6.27296665 -0.00050209 0.00030763 7.27246456 0.99846615 0.99919029 0.49320338;
++	-6.27296684 -0.00050200 0.00030758 7.27246484 0.99846640 0.99919042 0.49320344;
++	-6.27296704 -0.00050192 0.00030753 7.27246511 0.99846665 0.99919055 0.49320353;
++	-6.27296723 -0.00050184 0.00030748 7.27246539 0.99846690 0.99919068 0.49320349;
++	-6.27296743 -0.00050176 0.00030743 7.27246567 0.99846715 0.99919081 0.49320357;
++	-6.27296762 -0.00050168 0.00030738 7.27246594 0.99846739 0.99919094 0.49320354;
++	-6.27296781 -0.00050160 0.00030733 7.27246622 0.99846764 0.99919108 0.49320360;
++	-6.27296801 -0.00050152 0.00030728 7.27246649 0.99846789 0.99919121 0.49320366;
++	-6.27296820 -0.00050143 0.00030723 7.27246677 0.99846814 0.99919134 0.49320363;
++	-6.27296840 -0.00050135 0.00030718 7.27246704 0.99846839 0.99919147 0.49320369;
++	-6.27296859 -0.00050127 0.00030713 7.27246732 0.99846864 0.99919160 0.49320376;
++	-6.27296879 -0.00050119 0.00030708 7.27246760 0.99846888 0.99919173 0.49320377;
++	-6.27296898 -0.00050111 0.00030703 7.27246787 0.99846913 0.99919186 0.49320381;
++	-6.27296917 -0.00050103 0.00030698 7.27246815 0.99846938 0.99919199 0.49320377;
++	-6.27296937 -0.00050095 0.00030693 7.27246842 0.99846963 0.99919212 0.49320384;
++	-6.27296956 -0.00050087 0.00030688 7.27246870 0.99846987 0.99919225 0.49320380;
++	-6.27296976 -0.00050079 0.00030683 7.27246897 0.99847012 0.99919238 0.49320387;
++	-6.27296995 -0.00050070 0.00030678 7.27246925 0.99847037 0.99919251 0.49320387;
++	-6.27297014 -0.00050062 0.00030673 7.27246952 0.99847062 0.99919265 0.49320397;
++	-6.27297034 -0.00050054 0.00030668 7.27246980 0.99847086 0.99919278 0.49320397;
++	-6.27297053 -0.00050046 0.00030663 7.27247007 0.99847111 0.99919291 0.49320399;
++	-6.27297073 -0.00050038 0.00030658 7.27247034 0.99847136 0.99919304 0.49320405;
++	-6.27297092 -0.00050030 0.00030653 7.27247062 0.99847161 0.99919317 0.49320409;
++	-6.27297111 -0.00050022 0.00030648 7.27247089 0.99847185 0.99919330 0.49320412;
++	-6.27297131 -0.00050014 0.00030643 7.27247117 0.99847210 0.99919343 0.49320414;
++	-6.27297150 -0.00050006 0.00030638 7.27247144 0.99847235 0.99919356 0.49320414;
++	-6.27297169 -0.00049998 0.00030633 7.27247172 0.99847259 0.99919369 0.49320417;
++	-6.27297189 -0.00049990 0.00030629 7.27247199 0.99847284 0.99919382 0.49320418;
++	-6.27297208 -0.00049982 0.00030624 7.27247226 0.99847309 0.99919395 0.49320420;
++	-6.27297227 -0.00049973 0.00030619 7.27247254 0.99847333 0.99919408 0.49320426;
++	-6.27297246 -0.00049965 0.00030614 7.27247281 0.99847358 0.99919421 0.49320420;
++	-6.27297266 -0.00049957 0.00030609 7.27247308 0.99847383 0.99919434 0.49320435;
++	-6.27297285 -0.00049949 0.00030604 7.27247336 0.99847407 0.99919447 0.49320431;
++	-6.27297304 -0.00049941 0.00030599 7.27247363 0.99847432 0.99919460 0.49320437;
++	-6.27297324 -0.00049933 0.00030594 7.27247390 0.99847457 0.99919473 0.49320437;
++	-6.27297343 -0.00049925 0.00030589 7.27247418 0.99847481 0.99919486 0.49320443;
++	-6.27297362 -0.00049917 0.00030584 7.27247445 0.99847506 0.99919499 0.49320448;
++	-6.27297381 -0.00049909 0.00030579 7.27247472 0.99847530 0.99919512 0.49320448;
++	-6.27297401 -0.00049901 0.00030574 7.27247500 0.99847555 0.99919525 0.49320449;
++	-6.27297420 -0.00049893 0.00030569 7.27247527 0.99847580 0.99919538 0.49320451;
++	-6.27297439 -0.00049885 0.00030564 7.27247554 0.99847604 0.99919551 0.49320453;
++	-6.27297458 -0.00049877 0.00030559 7.27247582 0.99847629 0.99919564 0.49320461;
++	-6.27297478 -0.00049869 0.00030554 7.27247609 0.99847653 0.99919577 0.49320461;
++	-6.27297497 -0.00049861 0.00030550 7.27247636 0.99847678 0.99919590 0.49320465;
++	-6.27297516 -0.00049853 0.00030545 7.27247663 0.99847702 0.99919603 0.49320475;
++	-6.27297535 -0.00049845 0.00030540 7.27247691 0.99847727 0.99919616 0.49320473;
++	-6.27297554 -0.00049837 0.00030535 7.27247718 0.99847751 0.99919629 0.49320474;
++	-6.27297574 -0.00049829 0.00030530 7.27247745 0.99847776 0.99919641 0.49320475;
++	-6.27297593 -0.00049821 0.00030525 7.27247772 0.99847800 0.99919654 0.49320486;
++	-6.27297612 -0.00049813 0.00030520 7.27247799 0.99847825 0.99919667 0.49320483;
++	-6.27297631 -0.00049805 0.00030515 7.27247827 0.99847849 0.99919680 0.49320494;
++	-6.27297650 -0.00049797 0.00030510 7.27247854 0.99847874 0.99919693 0.49320494;
++	-6.27297670 -0.00049789 0.00030505 7.27247881 0.99847898 0.99919706 0.49320488;
++	-6.27297689 -0.00049781 0.00030500 7.27247908 0.99847923 0.99919719 0.49320497;
++	-6.27297708 -0.00049773 0.00030495 7.27247935 0.99847947 0.99919732 0.49320498;
++	-6.27297727 -0.00049765 0.00030491 7.27247962 0.99847972 0.99919745 0.49320504;
++	-6.27297746 -0.00049757 0.00030486 7.27247990 0.99847996 0.99919758 0.49320498;
++	-6.27297765 -0.00049749 0.00030481 7.27248017 0.99848021 0.99919771 0.49320508;
++	-6.27297784 -0.00049741 0.00030476 7.27248044 0.99848045 0.99919784 0.49320506;
++	-6.27297804 -0.00049733 0.00030471 7.27248071 0.99848070 0.99919796 0.49320512;
++	-6.27297823 -0.00049725 0.00030466 7.27248098 0.99848094 0.99919809 0.49320520;
++	-6.27297842 -0.00049717 0.00030461 7.27248125 0.99848118 0.99919822 0.49320518;
++	-6.27297861 -0.00049709 0.00030456 7.27248152 0.99848143 0.99919835 0.49320519;
++	-6.27297880 -0.00049701 0.00030451 7.27248179 0.99848167 0.99919848 0.49320524;
++	-6.27297899 -0.00049693 0.00030446 7.27248206 0.99848192 0.99919861 0.49320527;
++	-6.27297918 -0.00049685 0.00030442 7.27248233 0.99848216 0.99919874 0.49320529;
++	-6.27297937 -0.00049677 0.00030437 7.27248260 0.99848240 0.99919887 0.49320530;
++	-6.27297956 -0.00049669 0.00030432 7.27248288 0.99848265 0.99919899 0.49320533;
++	-6.27297975 -0.00049661 0.00030427 7.27248315 0.99848289 0.99919912 0.49320533;
++	-6.27297994 -0.00049653 0.00030422 7.27248342 0.99848313 0.99919925 0.49320545;
++	-6.27298013 -0.00049645 0.00030417 7.27248369 0.99848338 0.99919938 0.49320550;
++	-6.27298033 -0.00049637 0.00030412 7.27248396 0.99848362 0.99919951 0.49320544;
++	-6.27298052 -0.00049629 0.00030407 7.27248423 0.99848386 0.99919964 0.49320542;
++	-6.27298071 -0.00049621 0.00030403 7.27248450 0.99848411 0.99919976 0.49320549;
++	-6.27298090 -0.00049613 0.00030398 7.27248477 0.99848435 0.99919989 0.49320553;
++	-6.27298109 -0.00049605 0.00030393 7.27248504 0.99848459 0.99920002 0.49320549;
++	-6.27298128 -0.00049597 0.00030388 7.27248531 0.99848484 0.99920015 0.49320559;
++	-6.27298147 -0.00049589 0.00030383 7.27248557 0.99848508 0.99920028 0.49320560;
++	-6.27298166 -0.00049581 0.00030378 7.27248584 0.99848532 0.99920041 0.49320562;
++	-6.27298185 -0.00049573 0.00030373 7.27248611 0.99848556 0.99920053 0.49320572;
++	-6.27298204 -0.00049565 0.00030368 7.27248638 0.99848581 0.99920066 0.49320570;
++	-6.27298223 -0.00049557 0.00030364 7.27248665 0.99848605 0.99920079 0.49320571;
++	-6.27298242 -0.00049550 0.00030359 7.27248692 0.99848629 0.99920092 0.49320573;
++	-6.27298261 -0.00049542 0.00030354 7.27248719 0.99848653 0.99920105 0.49320576;
++	-6.27298280 -0.00049534 0.00030349 7.27248746 0.99848678 0.99920117 0.49320585;
++	-6.27298299 -0.00049526 0.00030344 7.27248773 0.99848702 0.99920130 0.49320584;
++	-6.27298318 -0.00049518 0.00030339 7.27248800 0.99848726 0.99920143 0.49320590;
++	-6.27298336 -0.00049510 0.00030334 7.27248827 0.99848750 0.99920156 0.49320592;
++	-6.27298355 -0.00049502 0.00030330 7.27248853 0.99848774 0.99920168 0.49320594;
++	-6.27298374 -0.00049494 0.00030325 7.27248880 0.99848799 0.99920181 0.49320595;
++	-6.27298393 -0.00049486 0.00030320 7.27248907 0.99848823 0.99920194 0.49320597;
++	-6.27298412 -0.00049478 0.00030315 7.27248934 0.99848847 0.99920207 0.49320596;
++	-6.27298431 -0.00049470 0.00030310 7.27248961 0.99848871 0.99920220 0.49320603;
++	-6.27298450 -0.00049462 0.00030305 7.27248988 0.99848895 0.99920232 0.49320613;
++	-6.27298469 -0.00049455 0.00030300 7.27249014 0.99848919 0.99920245 0.49320607;
++	-6.27298488 -0.00049447 0.00030296 7.27249041 0.99848944 0.99920258 0.49320616;
++	-6.27298507 -0.00049439 0.00030291 7.27249068 0.99848968 0.99920270 0.49320618;
++	-6.27298526 -0.00049431 0.00030286 7.27249095 0.99848992 0.99920283 0.49320613;
++	-6.27298545 -0.00049423 0.00030281 7.27249122 0.99849016 0.99920296 0.49320620;
++	-6.27298563 -0.00049415 0.00030276 7.27249148 0.99849040 0.99920309 0.49320622;
++	-6.27298582 -0.00049407 0.00030271 7.27249175 0.99849064 0.99920321 0.49320626;
++	-6.27298601 -0.00049399 0.00030267 7.27249202 0.99849088 0.99920334 0.49320625;
++	-6.27298620 -0.00049391 0.00030262 7.27249229 0.99849112 0.99920347 0.49320640;
++	-6.27298639 -0.00049384 0.00030257 7.27249255 0.99849136 0.99920360 0.49320640;
++	-6.27298658 -0.00049376 0.00030252 7.27249282 0.99849161 0.99920372 0.49320636;
++	-6.27298677 -0.00049368 0.00030247 7.27249309 0.99849185 0.99920385 0.49320641;
++	-6.27298695 -0.00049360 0.00030242 7.27249336 0.99849209 0.99920398 0.49320644;
++	-6.27298714 -0.00049352 0.00030238 7.27249362 0.99849233 0.99920410 0.49320643;
++	-6.27298733 -0.00049344 0.00030233 7.27249389 0.99849257 0.99920423 0.49320647;
++	-6.27298752 -0.00049336 0.00030228 7.27249416 0.99849281 0.99920436 0.49320649;
++	-6.27298771 -0.00049328 0.00030223 7.27249442 0.99849305 0.99920448 0.49320659;
++	-6.27298790 -0.00049321 0.00030218 7.27249469 0.99849329 0.99920461 0.49320657;
++	-6.27298808 -0.00049313 0.00030214 7.27249496 0.99849353 0.99920474 0.49320661;
++	-6.27298827 -0.00049305 0.00030209 7.27249522 0.99849377 0.99920486 0.49320660;
++	-6.27298846 -0.00049297 0.00030204 7.27249549 0.99849401 0.99920499 0.49320663;
++	-6.27298865 -0.00049289 0.00030199 7.27249576 0.99849425 0.99920512 0.49320673;
++	-6.27298883 -0.00049281 0.00030194 7.27249602 0.99849449 0.99920524 0.49320673;
++	-6.27298902 -0.00049273 0.00030189 7.27249629 0.99849473 0.99920537 0.49320669;
++	-6.27298921 -0.00049266 0.00030185 7.27249655 0.99849497 0.99920550 0.49320677;
++	-6.27298940 -0.00049258 0.00030180 7.27249682 0.99849521 0.99920562 0.49320680;
++	-6.27298959 -0.00049250 0.00030175 7.27249709 0.99849545 0.99920575 0.49320687;
++	-6.27298977 -0.00049242 0.00030170 7.27249735 0.99849569 0.99920588 0.49320693;
++	-6.27298996 -0.00049234 0.00030165 7.27249762 0.99849593 0.99920600 0.49320681;
++	-6.27299015 -0.00049226 0.00030161 7.27249788 0.99849616 0.99920613 0.49320699;
++	-6.27299033 -0.00049219 0.00030156 7.27249815 0.99849640 0.99920626 0.49320687;
++	-6.27299052 -0.00049211 0.00030151 7.27249841 0.99849664 0.99920638 0.49320699;
++	-6.27299071 -0.00049203 0.00030146 7.27249868 0.99849688 0.99920651 0.49320705;
++	-6.27299090 -0.00049195 0.00030141 7.27249894 0.99849712 0.99920663 0.49320709;
++	-6.27299108 -0.00049187 0.00030137 7.27249921 0.99849736 0.99920676 0.49320704;
++	-6.27299127 -0.00049180 0.00030132 7.27249948 0.99849760 0.99920689 0.49320700;
++	-6.27299146 -0.00049172 0.00030127 7.27249974 0.99849784 0.99920701 0.49320709;
++	-6.27299164 -0.00049164 0.00030122 7.27250001 0.99849808 0.99920714 0.49320722;
++	-6.27299183 -0.00049156 0.00030118 7.27250027 0.99849831 0.99920726 0.49320713;
++	-6.27299202 -0.00049148 0.00030113 7.27250053 0.99849855 0.99920739 0.49320717;
++	-6.27299220 -0.00049140 0.00030108 7.27250080 0.99849879 0.99920752 0.49320720;
++	-6.27299239 -0.00049133 0.00030103 7.27250106 0.99849903 0.99920764 0.49320724;
++	-6.27299258 -0.00049125 0.00030098 7.27250133 0.99849927 0.99920777 0.49320731;
++	-6.27299276 -0.00049117 0.00030094 7.27250159 0.99849951 0.99920789 0.49320733;
++	-6.27299295 -0.00049109 0.00030089 7.27250186 0.99849974 0.99920802 0.49320736;
++	-6.27299314 -0.00049102 0.00030084 7.27250212 0.99849998 0.99920814 0.49320742;
++	-6.27299332 -0.00049094 0.00030079 7.27250239 0.99850022 0.99920827 0.49320737;
++	-6.27299351 -0.00049086 0.00030075 7.27250265 0.99850046 0.99920840 0.49320741;
++	-6.27299370 -0.00049078 0.00030070 7.27250291 0.99850070 0.99920852 0.49320747;
++	-6.27299388 -0.00049070 0.00030065 7.27250318 0.99850093 0.99920865 0.49320746;
++	-6.27299407 -0.00049063 0.00030060 7.27250344 0.99850117 0.99920877 0.49320747;
++	-6.27299425 -0.00049055 0.00030055 7.27250371 0.99850141 0.99920890 0.49320753;
++	-6.27299444 -0.00049047 0.00030051 7.27250397 0.99850165 0.99920902 0.49320754;
++	-6.27299463 -0.00049039 0.00030046 7.27250423 0.99850188 0.99920915 0.49320761;
++	-6.27299481 -0.00049032 0.00030041 7.27250450 0.99850212 0.99920927 0.49320761;
++	-6.27299500 -0.00049024 0.00030036 7.27250476 0.99850236 0.99920940 0.49320763;
++	-6.27299518 -0.00049016 0.00030032 7.27250502 0.99850260 0.99920952 0.49320763;
++	-6.27299537 -0.00049008 0.00030027 7.27250529 0.99850283 0.99920965 0.49320764;
++	-6.27299556 -0.00049000 0.00030022 7.27250555 0.99850307 0.99920977 0.49320768;
++	-6.27299574 -0.00048993 0.00030017 7.27250581 0.99850331 0.99920990 0.49320774;
++	-6.27299593 -0.00048985 0.00030013 7.27250608 0.99850354 0.99921002 0.49320770;
++	-6.27299611 -0.00048977 0.00030008 7.27250634 0.99850378 0.99921015 0.49320782;
++	-6.27299630 -0.00048969 0.00030003 7.27250660 0.99850402 0.99921027 0.49320781;
++	-6.27299648 -0.00048962 0.00029998 7.27250687 0.99850426 0.99921040 0.49320784;
++	-6.27299667 -0.00048954 0.00029994 7.27250713 0.99850449 0.99921052 0.49320787;
++	-6.27299685 -0.00048946 0.00029989 7.27250739 0.99850473 0.99921065 0.49320791;
++	-6.27299704 -0.00048938 0.00029984 7.27250765 0.99850496 0.99921077 0.49320794;
++	-6.27299722 -0.00048931 0.00029979 7.27250792 0.99850520 0.99921090 0.49320795;
++	-6.27299741 -0.00048923 0.00029975 7.27250818 0.99850544 0.99921102 0.49320801;
++	-6.27299759 -0.00048915 0.00029970 7.27250844 0.99850567 0.99921115 0.49320802;
++	-6.27299778 -0.00048908 0.00029965 7.27250870 0.99850591 0.99921127 0.49320805;
++	-6.27299796 -0.00048900 0.00029960 7.27250896 0.99850615 0.99921140 0.49320810;
++	-6.27299815 -0.00048892 0.00029956 7.27250923 0.99850638 0.99921152 0.49320806;
++	-6.27299833 -0.00048884 0.00029951 7.27250949 0.99850662 0.99921165 0.49320815;
++	-6.27299852 -0.00048877 0.00029946 7.27250975 0.99850685 0.99921177 0.49320816;
++	-6.27299870 -0.00048869 0.00029941 7.27251001 0.99850709 0.99921190 0.49320817;
++	-6.27299889 -0.00048861 0.00029937 7.27251027 0.99850733 0.99921202 0.49320820;
++	-6.27299907 -0.00048854 0.00029932 7.27251054 0.99850756 0.99921214 0.49320826;
++	-6.27299926 -0.00048846 0.00029927 7.27251080 0.99850780 0.99921227 0.49320827;
++	-6.27299944 -0.00048838 0.00029923 7.27251106 0.99850803 0.99921239 0.49320823;
++	-6.27299962 -0.00048830 0.00029918 7.27251132 0.99850827 0.99921252 0.49320833;
++	-6.27299981 -0.00048823 0.00029913 7.27251158 0.99850850 0.99921264 0.49320833;
++	-6.27299999 -0.00048815 0.00029908 7.27251184 0.99850874 0.99921277 0.49320839;
++	-6.27300018 -0.00048807 0.00029904 7.27251210 0.99850897 0.99921289 0.49320841;
++	-6.27300036 -0.00048800 0.00029899 7.27251236 0.99850921 0.99921301 0.49320850;
++	-6.27300055 -0.00048792 0.00029894 7.27251263 0.99850944 0.99921314 0.49320846;
++	-6.27300073 -0.00048784 0.00029890 7.27251289 0.99850968 0.99921326 0.49320848;
++	-6.27300091 -0.00048777 0.00029885 7.27251315 0.99850991 0.99921339 0.49320847;
++	-6.27300110 -0.00048769 0.00029880 7.27251341 0.99851015 0.99921351 0.49320858;
++	-6.27300128 -0.00048761 0.00029875 7.27251367 0.99851038 0.99921363 0.49320864;
++	-6.27300146 -0.00048754 0.00029871 7.27251393 0.99851062 0.99921376 0.49320855;
++	-6.27300165 -0.00048746 0.00029866 7.27251419 0.99851085 0.99921388 0.49320856;
++	-6.27300183 -0.00048738 0.00029861 7.27251445 0.99851109 0.99921401 0.49320863;
++	-6.27300202 -0.00048730 0.00029857 7.27251471 0.99851132 0.99921413 0.49320867;
++	-6.27300220 -0.00048723 0.00029852 7.27251497 0.99851156 0.99921425 0.49320861;
++	-6.27300238 -0.00048715 0.00029847 7.27251523 0.99851179 0.99921438 0.49320874;
++	-6.27300257 -0.00048707 0.00029842 7.27251549 0.99851202 0.99921450 0.49320874;
++	-6.27300275 -0.00048700 0.00029838 7.27251575 0.99851226 0.99921462 0.49320881;
++	-6.27300293 -0.00048692 0.00029833 7.27251601 0.99851249 0.99921475 0.49320880;
++	-6.27300312 -0.00048685 0.00029828 7.27251627 0.99851273 0.99921487 0.49320887;
++	-6.27300330 -0.00048677 0.00029824 7.27251653 0.99851296 0.99921499 0.49320886;
++	-6.27300348 -0.00048669 0.00029819 7.27251679 0.99851320 0.99921512 0.49320893;
++	-6.27300367 -0.00048662 0.00029814 7.27251705 0.99851343 0.99921524 0.49320893;
++	-6.27300385 -0.00048654 0.00029810 7.27251731 0.99851366 0.99921536 0.49320895;
++	-6.27300403 -0.00048646 0.00029805 7.27251757 0.99851390 0.99921549 0.49320892;
++	-6.27300421 -0.00048639 0.00029800 7.27251783 0.99851413 0.99921561 0.49320898;
++	-6.27300440 -0.00048631 0.00029796 7.27251809 0.99851436 0.99921573 0.49320901;
++	-6.27300458 -0.00048623 0.00029791 7.27251835 0.99851460 0.99921586 0.49320901;
++	-6.27300476 -0.00048616 0.00029786 7.27251861 0.99851483 0.99921598 0.49320912;
++	-6.27300495 -0.00048608 0.00029782 7.27251886 0.99851506 0.99921610 0.49320910;
++	-6.27300513 -0.00048600 0.00029777 7.27251912 0.99851530 0.99921623 0.49320913;
++	-6.27300531 -0.00048593 0.00029772 7.27251938 0.99851553 0.99921635 0.49320917;
++	-6.27300549 -0.00048585 0.00029768 7.27251964 0.99851576 0.99921647 0.49320916;
++	-6.27300568 -0.00048578 0.00029763 7.27251990 0.99851600 0.99921660 0.49320920;
++	-6.27300586 -0.00048570 0.00029758 7.27252016 0.99851623 0.99921672 0.49320924;
++	-6.27300604 -0.00048562 0.00029753 7.27252042 0.99851646 0.99921684 0.49320926;
++	-6.27300622 -0.00048555 0.00029749 7.27252068 0.99851669 0.99921696 0.49320930;
++	-6.27300640 -0.00048547 0.00029744 7.27252093 0.99851693 0.99921709 0.49320931;
++	-6.27300659 -0.00048539 0.00029739 7.27252119 0.99851716 0.99921721 0.49320938;
++	-6.27300677 -0.00048532 0.00029735 7.27252145 0.99851739 0.99921733 0.49320939;
++	-6.27300695 -0.00048524 0.00029730 7.27252171 0.99851763 0.99921746 0.49320948;
++	-6.27300713 -0.00048517 0.00029725 7.27252197 0.99851786 0.99921758 0.49320954;
++	-6.27300732 -0.00048509 0.00029721 7.27252222 0.99851809 0.99921770 0.49320950;
++	-6.27300750 -0.00048501 0.00029716 7.27252248 0.99851832 0.99921782 0.49320952;
++	-6.27300768 -0.00048494 0.00029712 7.27252274 0.99851855 0.99921795 0.49320954;
++	-6.27300786 -0.00048486 0.00029707 7.27252300 0.99851879 0.99921807 0.49320960;
++	-6.27300804 -0.00048479 0.00029702 7.27252326 0.99851902 0.99921819 0.49320959;
++	-6.27300822 -0.00048471 0.00029698 7.27252351 0.99851925 0.99921831 0.49320958;
++	-6.27300841 -0.00048463 0.00029693 7.27252377 0.99851948 0.99921844 0.49320965;
++	-6.27300859 -0.00048456 0.00029688 7.27252403 0.99851971 0.99921856 0.49320967;
++	-6.27300877 -0.00048448 0.00029684 7.27252429 0.99851995 0.99921868 0.49320972;
++	-6.27300895 -0.00048441 0.00029679 7.27252454 0.99852018 0.99921880 0.49320973;
++	-6.27300913 -0.00048433 0.00029674 7.27252480 0.99852041 0.99921893 0.49320972;
++	-6.27300931 -0.00048426 0.00029670 7.27252506 0.99852064 0.99921905 0.49320980;
++	-6.27300949 -0.00048418 0.00029665 7.27252531 0.99852087 0.99921917 0.49320981;
++	-6.27300968 -0.00048410 0.00029660 7.27252557 0.99852110 0.99921929 0.49320974;
++	-6.27300986 -0.00048403 0.00029656 7.27252583 0.99852134 0.99921941 0.49320985;
++	-6.27301004 -0.00048395 0.00029651 7.27252608 0.99852157 0.99921954 0.49320992;
++	-6.27301022 -0.00048388 0.00029646 7.27252634 0.99852180 0.99921966 0.49320992;
++	-6.27301040 -0.00048380 0.00029642 7.27252660 0.99852203 0.99921978 0.49320993;
++	-6.27301058 -0.00048373 0.00029637 7.27252685 0.99852226 0.99921990 0.49320993;
++	-6.27301076 -0.00048365 0.00029633 7.27252711 0.99852249 0.99922002 0.49321001;
++	-6.27301094 -0.00048357 0.00029628 7.27252737 0.99852272 0.99922015 0.49321003;
++	-6.27301112 -0.00048350 0.00029623 7.27252762 0.99852295 0.99922027 0.49321005;
++	-6.27301130 -0.00048342 0.00029619 7.27252788 0.99852318 0.99922039 0.49321008;
++	-6.27301148 -0.00048335 0.00029614 7.27252814 0.99852341 0.99922051 0.49321008;
++	-6.27301166 -0.00048327 0.00029609 7.27252839 0.99852364 0.99922063 0.49321010;
++	-6.27301185 -0.00048320 0.00029605 7.27252865 0.99852388 0.99922075 0.49321017;
++	-6.27301203 -0.00048312 0.00029600 7.27252890 0.99852411 0.99922088 0.49321023;
++	-6.27301221 -0.00048305 0.00029596 7.27252916 0.99852434 0.99922100 0.49321020;
++	-6.27301239 -0.00048297 0.00029591 7.27252942 0.99852457 0.99922112 0.49321023;
++	-6.27301257 -0.00048290 0.00029586 7.27252967 0.99852480 0.99922124 0.49321024;
++	-6.27301275 -0.00048282 0.00029582 7.27252993 0.99852503 0.99922136 0.49321030;
++	-6.27301293 -0.00048275 0.00029577 7.27253018 0.99852526 0.99922148 0.49321031;
++	-6.27301311 -0.00048267 0.00029572 7.27253044 0.99852549 0.99922161 0.49321030;
++	-6.27301329 -0.00048259 0.00029568 7.27253069 0.99852572 0.99922173 0.49321030;
++	-6.27301347 -0.00048252 0.00029563 7.27253095 0.99852595 0.99922185 0.49321039;
++	-6.27301365 -0.00048244 0.00029559 7.27253120 0.99852618 0.99922197 0.49321037;
++	-6.27301383 -0.00048237 0.00029554 7.27253146 0.99852641 0.99922209 0.49321046;
++	-6.27301401 -0.00048229 0.00029549 7.27253171 0.99852664 0.99922221 0.49321048;
++	-6.27301419 -0.00048222 0.00029545 7.27253197 0.99852687 0.99922233 0.49321049;
++	-6.27301437 -0.00048214 0.00029540 7.27253222 0.99852710 0.99922245 0.49321046;
++	-6.27301455 -0.00048207 0.00029536 7.27253248 0.99852732 0.99922258 0.49321053;
++	-6.27301473 -0.00048199 0.00029531 7.27253273 0.99852755 0.99922270 0.49321060;
++	-6.27301491 -0.00048192 0.00029526 7.27253299 0.99852778 0.99922282 0.49321066;
++	-6.27301509 -0.00048184 0.00029522 7.27253324 0.99852801 0.99922294 0.49321062;
++	-6.27301526 -0.00048177 0.00029517 7.27253350 0.99852824 0.99922306 0.49321065;
++	-6.27301544 -0.00048169 0.00029513 7.27253375 0.99852847 0.99922318 0.49321069;
++	-6.27301562 -0.00048162 0.00029508 7.27253400 0.99852870 0.99922330 0.49321066;
++	-6.27301580 -0.00048154 0.00029503 7.27253426 0.99852893 0.99922342 0.49321075;
++	-6.27301598 -0.00048147 0.00029499 7.27253451 0.99852916 0.99922354 0.49321074;
++	-6.27301616 -0.00048139 0.00029494 7.27253477 0.99852939 0.99922366 0.49321082;
++	-6.27301634 -0.00048132 0.00029490 7.27253502 0.99852962 0.99922378 0.49321081;
++	-6.27301652 -0.00048124 0.00029485 7.27253528 0.99852984 0.99922391 0.49321083;
++	-6.27301670 -0.00048117 0.00029480 7.27253553 0.99853007 0.99922403 0.49321094;
++	-6.27301688 -0.00048109 0.00029476 7.27253578 0.99853030 0.99922415 0.49321096;
++	-6.27301706 -0.00048102 0.00029471 7.27253604 0.99853053 0.99922427 0.49321093;
++	-6.27301724 -0.00048095 0.00029467 7.27253629 0.99853076 0.99922439 0.49321094;
++	-6.27301741 -0.00048087 0.00029462 7.27253654 0.99853099 0.99922451 0.49321098;
++	-6.27301759 -0.00048080 0.00029458 7.27253680 0.99853121 0.99922463 0.49321102;
++	-6.27301777 -0.00048072 0.00029453 7.27253705 0.99853144 0.99922475 0.49321101;
++	-6.27301795 -0.00048065 0.00029448 7.27253730 0.99853167 0.99922487 0.49321109;
++	-6.27301813 -0.00048057 0.00029444 7.27253756 0.99853190 0.99922499 0.49321107;
++	-6.27301831 -0.00048050 0.00029439 7.27253781 0.99853213 0.99922511 0.49321107;
++	-6.27301849 -0.00048042 0.00029435 7.27253806 0.99853235 0.99922523 0.49321110;
++	-6.27301866 -0.00048035 0.00029430 7.27253832 0.99853258 0.99922535 0.49321118;
++	-6.27301884 -0.00048027 0.00029426 7.27253857 0.99853281 0.99922547 0.49321119;
++	-6.27301902 -0.00048020 0.00029421 7.27253882 0.99853304 0.99922559 0.49321116;
++	-6.27301920 -0.00048012 0.00029416 7.27253907 0.99853327 0.99922571 0.49321127;
++	-6.27301938 -0.00048005 0.00029412 7.27253933 0.99853349 0.99922583 0.49321123;
++	-6.27301956 -0.00047998 0.00029407 7.27253958 0.99853372 0.99922595 0.49321129;
++	-6.27301973 -0.00047990 0.00029403 7.27253983 0.99853395 0.99922607 0.49321135;
++	-6.27301991 -0.00047983 0.00029398 7.27254008 0.99853418 0.99922619 0.49321135;
++	-6.27302009 -0.00047975 0.00029394 7.27254034 0.99853440 0.99922631 0.49321139;
++	-6.27302027 -0.00047968 0.00029389 7.27254059 0.99853463 0.99922643 0.49321146;
++	-6.27302044 -0.00047960 0.00029384 7.27254084 0.99853486 0.99922655 0.49321142;
++	-6.27302062 -0.00047953 0.00029380 7.27254109 0.99853508 0.99922667 0.49321144;
++	-6.27302080 -0.00047946 0.00029375 7.27254135 0.99853531 0.99922679 0.49321144;
++	-6.27302098 -0.00047938 0.00029371 7.27254160 0.99853554 0.99922691 0.49321157;
++	-6.27302116 -0.00047931 0.00029366 7.27254185 0.99853577 0.99922703 0.49321152;
++	-6.27302133 -0.00047923 0.00029362 7.27254210 0.99853599 0.99922715 0.49321153;
++	-6.27302151 -0.00047916 0.00029357 7.27254235 0.99853622 0.99922727 0.49321157;
++	-6.27302169 -0.00047908 0.00029353 7.27254260 0.99853645 0.99922739 0.49321160;
++	-6.27302187 -0.00047901 0.00029348 7.27254286 0.99853667 0.99922751 0.49321170;
++	-6.27302204 -0.00047894 0.00029344 7.27254311 0.99853690 0.99922763 0.49321172;
++	-6.27302222 -0.00047886 0.00029339 7.27254336 0.99853712 0.99922775 0.49321163;
++	-6.27302240 -0.00047879 0.00029334 7.27254361 0.99853735 0.99922787 0.49321166;
++	-6.27302257 -0.00047871 0.00029330 7.27254386 0.99853758 0.99922799 0.49321175;
++	-6.27302275 -0.00047864 0.00029325 7.27254411 0.99853780 0.99922811 0.49321177;
++	-6.27302293 -0.00047857 0.00029321 7.27254436 0.99853803 0.99922823 0.49321185;
++	-6.27302311 -0.00047849 0.00029316 7.27254461 0.99853826 0.99922834 0.49321182;
++	-6.27302328 -0.00047842 0.00029312 7.27254486 0.99853848 0.99922846 0.49321190;
++	-6.27302346 -0.00047834 0.00029307 7.27254512 0.99853871 0.99922858 0.49321191;
++	-6.27302364 -0.00047827 0.00029303 7.27254537 0.99853893 0.99922870 0.49321187;
++	-6.27302381 -0.00047820 0.00029298 7.27254562 0.99853916 0.99922882 0.49321186;
++	-6.27302399 -0.00047812 0.00029294 7.27254587 0.99853939 0.99922894 0.49321193;
++	-6.27302417 -0.00047805 0.00029289 7.27254612 0.99853961 0.99922906 0.49321201;
++	-6.27302434 -0.00047797 0.00029285 7.27254637 0.99853984 0.99922918 0.49321205;
++	-6.27302452 -0.00047790 0.00029280 7.27254662 0.99854006 0.99922930 0.49321210;
++	-6.27302470 -0.00047783 0.00029276 7.27254687 0.99854029 0.99922942 0.49321211;
++	-6.27302487 -0.00047775 0.00029271 7.27254712 0.99854051 0.99922954 0.49321206;
++	-6.27302505 -0.00047768 0.00029267 7.27254737 0.99854074 0.99922965 0.49321212;
++	-6.27302523 -0.00047761 0.00029262 7.27254762 0.99854096 0.99922977 0.49321212;
++	-6.27302540 -0.00047753 0.00029257 7.27254787 0.99854119 0.99922989 0.49321221;
++	-6.27302558 -0.00047746 0.00029253 7.27254812 0.99854141 0.99923001 0.49321218;
++	-6.27302575 -0.00047739 0.00029248 7.27254837 0.99854164 0.99923013 0.49321223;
++	-6.27302593 -0.00047731 0.00029244 7.27254862 0.99854186 0.99923025 0.49321227;
++	-6.27302611 -0.00047724 0.00029239 7.27254887 0.99854209 0.99923037 0.49321227;
++	-6.27302628 -0.00047716 0.00029235 7.27254912 0.99854231 0.99923049 0.49321226;
++	-6.27302646 -0.00047709 0.00029230 7.27254937 0.99854254 0.99923060 0.49321229;
++	-6.27302664 -0.00047702 0.00029226 7.27254962 0.99854276 0.99923072 0.49321232;
++	-6.27302681 -0.00047694 0.00029221 7.27254987 0.99854299 0.99923084 0.49321239;
++	-6.27302699 -0.00047687 0.00029217 7.27255012 0.99854321 0.99923096 0.49321240;
++	-6.27302716 -0.00047680 0.00029212 7.27255037 0.99854344 0.99923108 0.49321246;
++	-6.27302734 -0.00047672 0.00029208 7.27255061 0.99854366 0.99923120 0.49321244;
++	-6.27302751 -0.00047665 0.00029203 7.27255086 0.99854388 0.99923132 0.49321242;
++	-6.27302769 -0.00047658 0.00029199 7.27255111 0.99854411 0.99923143 0.49321242;
++	-6.27302787 -0.00047650 0.00029194 7.27255136 0.99854433 0.99923155 0.49321258;
++	-6.27302804 -0.00047643 0.00029190 7.27255161 0.99854456 0.99923167 0.49321251;
++	-6.27302822 -0.00047636 0.00029185 7.27255186 0.99854478 0.99923179 0.49321261;
++	-6.27302839 -0.00047628 0.00029181 7.27255211 0.99854501 0.99923191 0.49321264;
++	-6.27302857 -0.00047621 0.00029176 7.27255236 0.99854523 0.99923203 0.49321265;
++	-6.27302874 -0.00047614 0.00029172 7.27255261 0.99854545 0.99923214 0.49321268;
++	-6.27302892 -0.00047606 0.00029167 7.27255285 0.99854568 0.99923226 0.49321269;
++	-6.27302909 -0.00047599 0.00029163 7.27255310 0.99854590 0.99923238 0.49321277;
++	-6.27302927 -0.00047592 0.00029158 7.27255335 0.99854612 0.99923250 0.49321272;
++	-6.27302944 -0.00047584 0.00029154 7.27255360 0.99854635 0.99923262 0.49321278;
++	-6.27302962 -0.00047577 0.00029150 7.27255385 0.99854657 0.99923273 0.49321287;
++	-6.27302979 -0.00047570 0.00029145 7.27255410 0.99854679 0.99923285 0.49321280;
++	-6.27302997 -0.00047562 0.00029141 7.27255434 0.99854702 0.99923297 0.49321291;
++	-6.27303014 -0.00047555 0.00029136 7.27255459 0.99854724 0.99923309 0.49321279;
++	-6.27303032 -0.00047548 0.00029132 7.27255484 0.99854746 0.99923321 0.49321284;
++	-6.27303049 -0.00047541 0.00029127 7.27255509 0.99854769 0.99923332 0.49321288;
++	-6.27303067 -0.00047533 0.00029123 7.27255533 0.99854791 0.99923344 0.49321294;
++	-6.27303084 -0.00047526 0.00029118 7.27255558 0.99854813 0.99923356 0.49321292;
++	-6.27303102 -0.00047519 0.00029114 7.27255583 0.99854836 0.99923368 0.49321300;
++	-6.27303119 -0.00047511 0.00029109 7.27255608 0.99854858 0.99923379 0.49321302;
++	-6.27303137 -0.00047504 0.00029105 7.27255632 0.99854880 0.99923391 0.49321303;
++	-6.27303154 -0.00047497 0.00029100 7.27255657 0.99854903 0.99923403 0.49321311;
++	-6.27303171 -0.00047490 0.00029096 7.27255682 0.99854925 0.99923415 0.49321311;
++	-6.27303189 -0.00047482 0.00029091 7.27255707 0.99854947 0.99923426 0.49321315;
++	-6.27303206 -0.00047475 0.00029087 7.27255731 0.99854969 0.99923438 0.49321319;
++	-6.27303224 -0.00047468 0.00029082 7.27255756 0.99854992 0.99923450 0.49321317;
++	-6.27303241 -0.00047460 0.00029078 7.27255781 0.99855014 0.99923462 0.49321321;
++	-6.27303259 -0.00047453 0.00029073 7.27255805 0.99855036 0.99923473 0.49321326;
++	-6.27303276 -0.00047446 0.00029069 7.27255830 0.99855058 0.99923485 0.49321318;
++	-6.27303293 -0.00047439 0.00029065 7.27255855 0.99855081 0.99923497 0.49321326;
++	-6.27303311 -0.00047431 0.00029060 7.27255879 0.99855103 0.99923509 0.49321333;
++	-6.27303328 -0.00047424 0.00029056 7.27255904 0.99855125 0.99923520 0.49321333;
++	-6.27303345 -0.00047417 0.00029051 7.27255929 0.99855147 0.99923532 0.49321344;
++	-6.27303363 -0.00047410 0.00029047 7.27255953 0.99855169 0.99923544 0.49321337;
++	-6.27303380 -0.00047402 0.00029042 7.27255978 0.99855192 0.99923555 0.49321345;
++	-6.27303398 -0.00047395 0.00029038 7.27256003 0.99855214 0.99923567 0.49321337;
++	-6.27303415 -0.00047388 0.00029033 7.27256027 0.99855236 0.99923579 0.49321344;
++	-6.27303432 -0.00047380 0.00029029 7.27256052 0.99855258 0.99923591 0.49321346;
++	-6.27303450 -0.00047373 0.00029025 7.27256076 0.99855280 0.99923602 0.49321354;
++	-6.27303467 -0.00047366 0.00029020 7.27256101 0.99855302 0.99923614 0.49321353;
++	-6.27303484 -0.00047359 0.00029016 7.27256126 0.99855325 0.99923626 0.49321361;
++	-6.27303502 -0.00047351 0.00029011 7.27256150 0.99855347 0.99923637 0.49321358;
++	-6.27303519 -0.00047344 0.00029007 7.27256175 0.99855369 0.99923649 0.49321363;
++	-6.27303536 -0.00047337 0.00029002 7.27256199 0.99855391 0.99923661 0.49321367;
++	-6.27303554 -0.00047330 0.00028998 7.27256224 0.99855413 0.99923672 0.49321364;
++	-6.27303571 -0.00047323 0.00028993 7.27256248 0.99855435 0.99923684 0.49321377;
++	-6.27303588 -0.00047315 0.00028989 7.27256273 0.99855457 0.99923696 0.49321375;
++	-6.27303606 -0.00047308 0.00028985 7.27256298 0.99855479 0.99923707 0.49321379;
++	-6.27303623 -0.00047301 0.00028980 7.27256322 0.99855501 0.99923719 0.49321377;
++	-6.27303640 -0.00047294 0.00028976 7.27256347 0.99855524 0.99923731 0.49321372;
++	-6.27303658 -0.00047286 0.00028971 7.27256371 0.99855546 0.99923742 0.49321383;
++	-6.27303675 -0.00047279 0.00028967 7.27256396 0.99855568 0.99923754 0.49321384;
++	-6.27303692 -0.00047272 0.00028962 7.27256420 0.99855590 0.99923766 0.49321394;
++	-6.27303709 -0.00047265 0.00028958 7.27256445 0.99855612 0.99923777 0.49321386;
++	-6.27303727 -0.00047258 0.00028954 7.27256469 0.99855634 0.99923789 0.49321390;
++	-6.27303744 -0.00047250 0.00028949 7.27256494 0.99855656 0.99923801 0.49321401;
++	-6.27303761 -0.00047243 0.00028945 7.27256518 0.99855678 0.99923812 0.49321394;
++	-6.27303778 -0.00047236 0.00028940 7.27256543 0.99855700 0.99923824 0.49321395;
++	-6.27303796 -0.00047229 0.00028936 7.27256567 0.99855722 0.99923835 0.49321400;
++	-6.27303813 -0.00047221 0.00028931 7.27256591 0.99855744 0.99923847 0.49321392;
++	-6.27303830 -0.00047214 0.00028927 7.27256616 0.99855766 0.99923859 0.49321409;
++	-6.27303847 -0.00047207 0.00028923 7.27256640 0.99855788 0.99923870 0.49321404;
++	-6.27303865 -0.00047200 0.00028918 7.27256665 0.99855810 0.99923882 0.49321416;
++	-6.27303882 -0.00047193 0.00028914 7.27256689 0.99855832 0.99923893 0.49321409;
++	-6.27303899 -0.00047185 0.00028909 7.27256714 0.99855854 0.99923905 0.49321418;
++	-6.27303916 -0.00047178 0.00028905 7.27256738 0.99855876 0.99923917 0.49321418;
++	-6.27303933 -0.00047171 0.00028901 7.27256762 0.99855898 0.99923928 0.49321424;
++	-6.27303951 -0.00047164 0.00028896 7.27256787 0.99855920 0.99923940 0.49321434;
++	-6.27303968 -0.00047157 0.00028892 7.27256811 0.99855942 0.99923951 0.49321431;
++	-6.27303985 -0.00047150 0.00028887 7.27256835 0.99855964 0.99923963 0.49321429;
++	-6.27304002 -0.00047142 0.00028883 7.27256860 0.99855986 0.99923975 0.49321428;
++	-6.27304019 -0.00047135 0.00028879 7.27256884 0.99856008 0.99923986 0.49321434;
++	-6.27304037 -0.00047128 0.00028874 7.27256909 0.99856030 0.99923998 0.49321435;
++	-6.27304054 -0.00047121 0.00028870 7.27256933 0.99856052 0.99924009 0.49321437;
++	-6.27304071 -0.00047114 0.00028865 7.27256957 0.99856073 0.99924021 0.49321446;
++	-6.27304088 -0.00047106 0.00028861 7.27256982 0.99856095 0.99924032 0.49321442;
++	-6.27304105 -0.00047099 0.00028857 7.27257006 0.99856117 0.99924044 0.49321442;
++	-6.27304122 -0.00047092 0.00028852 7.27257030 0.99856139 0.99924056 0.49321451;
++	-6.27304139 -0.00047085 0.00028848 7.27257054 0.99856161 0.99924067 0.49321455;
++	-6.27304157 -0.00047078 0.00028843 7.27257079 0.99856183 0.99924079 0.49321455;
++	-6.27304174 -0.00047071 0.00028839 7.27257103 0.99856205 0.99924090 0.49321459;
++	-6.27304191 -0.00047064 0.00028835 7.27257127 0.99856227 0.99924102 0.49321464;
++	-6.27304208 -0.00047056 0.00028830 7.27257152 0.99856249 0.99924113 0.49321460;
++	-6.27304225 -0.00047049 0.00028826 7.27257176 0.99856270 0.99924125 0.49321463;
++	-6.27304242 -0.00047042 0.00028822 7.27257200 0.99856292 0.99924136 0.49321476;
++	-6.27304259 -0.00047035 0.00028817 7.27257224 0.99856314 0.99924148 0.49321475;
++	-6.27304276 -0.00047028 0.00028813 7.27257249 0.99856336 0.99924159 0.49321471;
++	-6.27304294 -0.00047021 0.00028808 7.27257273 0.99856358 0.99924171 0.49321475;
++	-6.27304311 -0.00047013 0.00028804 7.27257297 0.99856380 0.99924183 0.49321476;
++	-6.27304328 -0.00047006 0.00028800 7.27257321 0.99856401 0.99924194 0.49321484;
++	-6.27304345 -0.00046999 0.00028795 7.27257346 0.99856423 0.99924206 0.49321477;
++	-6.27304362 -0.00046992 0.00028791 7.27257370 0.99856445 0.99924217 0.49321483;
++	-6.27304379 -0.00046985 0.00028787 7.27257394 0.99856467 0.99924229 0.49321495;
++	-6.27304396 -0.00046978 0.00028782 7.27257418 0.99856489 0.99924240 0.49321491;
++	-6.27304413 -0.00046971 0.00028778 7.27257442 0.99856510 0.99924252 0.49321493;
++	-6.27304430 -0.00046964 0.00028773 7.27257467 0.99856532 0.99924263 0.49321498;
++	-6.27304447 -0.00046956 0.00028769 7.27257491 0.99856554 0.99924275 0.49321496;
++	-6.27304464 -0.00046949 0.00028765 7.27257515 0.99856576 0.99924286 0.49321502;
++	-6.27304481 -0.00046942 0.00028760 7.27257539 0.99856597 0.99924298 0.49321503;
++	-6.27304498 -0.00046935 0.00028756 7.27257563 0.99856619 0.99924309 0.49321507;
++	-6.27304515 -0.00046928 0.00028752 7.27257587 0.99856641 0.99924320 0.49321515;
++	-6.27304532 -0.00046921 0.00028747 7.27257611 0.99856663 0.99924332 0.49321508;
++	-6.27304549 -0.00046914 0.00028743 7.27257636 0.99856684 0.99924343 0.49321514;
++	-6.27304566 -0.00046907 0.00028738 7.27257660 0.99856706 0.99924355 0.49321526;
++	-6.27304583 -0.00046900 0.00028734 7.27257684 0.99856728 0.99924366 0.49321521;
++	-6.27304600 -0.00046892 0.00028730 7.27257708 0.99856750 0.99924378 0.49321521;
++	-6.27304617 -0.00046885 0.00028725 7.27257732 0.99856771 0.99924389 0.49321523;
++	-6.27304634 -0.00046878 0.00028721 7.27257756 0.99856793 0.99924401 0.49321526;
++	-6.27304651 -0.00046871 0.00028717 7.27257780 0.99856815 0.99924412 0.49321530;
++	-6.27304668 -0.00046864 0.00028712 7.27257804 0.99856836 0.99924424 0.49321535;
++	-6.27304685 -0.00046857 0.00028708 7.27257828 0.99856858 0.99924435 0.49321541;
++	-6.27304702 -0.00046850 0.00028704 7.27257852 0.99856880 0.99924446 0.49321529;
++	-6.27304719 -0.00046843 0.00028699 7.27257876 0.99856901 0.99924458 0.49321541;
++	-6.27304736 -0.00046836 0.00028695 7.27257901 0.99856923 0.99924469 0.49321535;
++	-6.27304753 -0.00046829 0.00028691 7.27257925 0.99856945 0.99924481 0.49321543;
++	-6.27304770 -0.00046821 0.00028686 7.27257949 0.99856966 0.99924492 0.49321548;
++	-6.27304787 -0.00046814 0.00028682 7.27257973 0.99856988 0.99924504 0.49321551;
++	-6.27304804 -0.00046807 0.00028678 7.27257997 0.99857010 0.99924515 0.49321545;
++	-6.27304821 -0.00046800 0.00028673 7.27258021 0.99857031 0.99924526 0.49321554;
++	-6.27304838 -0.00046793 0.00028669 7.27258045 0.99857053 0.99924538 0.49321557;
++	-6.27304855 -0.00046786 0.00028665 7.27258069 0.99857074 0.99924549 0.49321561;
++	-6.27304872 -0.00046779 0.00028660 7.27258093 0.99857096 0.99924561 0.49321567;
++	-6.27304889 -0.00046772 0.00028656 7.27258117 0.99857118 0.99924572 0.49321567;
++	-6.27304906 -0.00046765 0.00028652 7.27258141 0.99857139 0.99924583 0.49321571;
++	-6.27304922 -0.00046758 0.00028647 7.27258165 0.99857161 0.99924595 0.49321566;
++	-6.27304939 -0.00046751 0.00028643 7.27258189 0.99857182 0.99924606 0.49321576;
++	-6.27304956 -0.00046744 0.00028639 7.27258213 0.99857204 0.99924618 0.49321567;
++	-6.27304973 -0.00046737 0.00028634 7.27258236 0.99857226 0.99924629 0.49321585;
++	-6.27304990 -0.00046730 0.00028630 7.27258260 0.99857247 0.99924640 0.49321576;
++	-6.27305007 -0.00046723 0.00028626 7.27258284 0.99857269 0.99924652 0.49321581;
++	-6.27305024 -0.00046715 0.00028621 7.27258308 0.99857290 0.99924663 0.49321580;
++	-6.27305041 -0.00046708 0.00028617 7.27258332 0.99857312 0.99924675 0.49321590;
++	-6.27305057 -0.00046701 0.00028613 7.27258356 0.99857333 0.99924686 0.49321582;
++	-6.27305074 -0.00046694 0.00028608 7.27258380 0.99857355 0.99924697 0.49321587;
++	-6.27305091 -0.00046687 0.00028604 7.27258404 0.99857376 0.99924709 0.49321595;
++	-6.27305108 -0.00046680 0.00028600 7.27258428 0.99857398 0.99924720 0.49321595;
++	-6.27305125 -0.00046673 0.00028595 7.27258452 0.99857419 0.99924731 0.49321600;
++	-6.27305142 -0.00046666 0.00028591 7.27258476 0.99857441 0.99924743 0.49321598;
++	-6.27305159 -0.00046659 0.00028587 7.27258499 0.99857462 0.99924754 0.49321613;
++	-6.27305175 -0.00046652 0.00028582 7.27258523 0.99857484 0.99924765 0.49321611;
++	-6.27305192 -0.00046645 0.00028578 7.27258547 0.99857505 0.99924777 0.49321600;
++	-6.27305209 -0.00046638 0.00028574 7.27258571 0.99857527 0.99924788 0.49321621;
++	-6.27305226 -0.00046631 0.00028570 7.27258595 0.99857548 0.99924799 0.49321615;
++	-6.27305243 -0.00046624 0.00028565 7.27258619 0.99857570 0.99924811 0.49321620;
++	-6.27305259 -0.00046617 0.00028561 7.27258642 0.99857591 0.99924822 0.49321625;
++	-6.27305276 -0.00046610 0.00028557 7.27258666 0.99857613 0.99924833 0.49321621;
++	-6.27305293 -0.00046603 0.00028552 7.27258690 0.99857634 0.99924845 0.49321630;
++	-6.27305310 -0.00046596 0.00028548 7.27258714 0.99857656 0.99924856 0.49321623;
++	-6.27305327 -0.00046589 0.00028544 7.27258738 0.99857677 0.99924867 0.49321633;
++	-6.27305343 -0.00046582 0.00028539 7.27258761 0.99857698 0.99924879 0.49321637;
++	-6.27305360 -0.00046575 0.00028535 7.27258785 0.99857720 0.99924890 0.49321640;
++	-6.27305377 -0.00046568 0.00028531 7.27258809 0.99857741 0.99924901 0.49321641;
++	-6.27305394 -0.00046561 0.00028527 7.27258833 0.99857763 0.99924913 0.49321644;
++	-6.27305410 -0.00046554 0.00028522 7.27258857 0.99857784 0.99924924 0.49321640;
++	-6.27305427 -0.00046547 0.00028518 7.27258880 0.99857805 0.99924935 0.49321644;
++	-6.27305444 -0.00046540 0.00028514 7.27258904 0.99857827 0.99924946 0.49321647;
++	-6.27305461 -0.00046533 0.00028509 7.27258928 0.99857848 0.99924958 0.49321655;
++	-6.27305477 -0.00046526 0.00028505 7.27258952 0.99857870 0.99924969 0.49321652;
++	-6.27305494 -0.00046519 0.00028501 7.27258975 0.99857891 0.99924980 0.49321651;
++	-6.27305511 -0.00046512 0.00028497 7.27258999 0.99857912 0.99924992 0.49321656;
++	-6.27305528 -0.00046505 0.00028492 7.27259023 0.99857934 0.99925003 0.49321656;
++	-6.27305544 -0.00046498 0.00028488 7.27259046 0.99857955 0.99925014 0.49321665;
++	-6.27305561 -0.00046491 0.00028484 7.27259070 0.99857976 0.99925025 0.49321668;
++	-6.27305578 -0.00046484 0.00028479 7.27259094 0.99857998 0.99925037 0.49321665;
++	-6.27305594 -0.00046477 0.00028475 7.27259117 0.99858019 0.99925048 0.49321672;
++	-6.27305611 -0.00046470 0.00028471 7.27259141 0.99858040 0.99925059 0.49321675;
++	-6.27305628 -0.00046463 0.00028467 7.27259165 0.99858062 0.99925070 0.49321677;
++	-6.27305645 -0.00046456 0.00028462 7.27259188 0.99858083 0.99925082 0.49321675;
++	-6.27305661 -0.00046449 0.00028458 7.27259212 0.99858104 0.99925093 0.49321677;
++	-6.27305678 -0.00046442 0.00028454 7.27259236 0.99858126 0.99925104 0.49321687;
++	-6.27305695 -0.00046435 0.00028449 7.27259259 0.99858147 0.99925115 0.49321692;
++	-6.27305711 -0.00046428 0.00028445 7.27259283 0.99858168 0.99925127 0.49321690;
++	-6.27305728 -0.00046421 0.00028441 7.27259307 0.99858189 0.99925138 0.49321690;
++	-6.27305745 -0.00046414 0.00028437 7.27259330 0.99858211 0.99925149 0.49321703;
++	-6.27305761 -0.00046407 0.00028432 7.27259354 0.99858232 0.99925160 0.49321695;
++	-6.27305778 -0.00046400 0.00028428 7.27259377 0.99858253 0.99925171 0.49321702;
++	-6.27305795 -0.00046393 0.00028424 7.27259401 0.99858275 0.99925183 0.49321702;
++	-6.27305811 -0.00046386 0.00028420 7.27259425 0.99858296 0.99925194 0.49321707;
++	-6.27305828 -0.00046380 0.00028415 7.27259448 0.99858317 0.99925205 0.49321711;
++	-6.27305844 -0.00046373 0.00028411 7.27259472 0.99858338 0.99925216 0.49321702;
++	-6.27305861 -0.00046366 0.00028407 7.27259495 0.99858359 0.99925227 0.49321714;
++	-6.27305878 -0.00046359 0.00028403 7.27259519 0.99858381 0.99925239 0.49321714;
++	-6.27305894 -0.00046352 0.00028398 7.27259543 0.99858402 0.99925250 0.49321712;
++	-6.27305911 -0.00046345 0.00028394 7.27259566 0.99858423 0.99925261 0.49321724;
++	-6.27305927 -0.00046338 0.00028390 7.27259590 0.99858444 0.99925272 0.49321723;
++	-6.27305944 -0.00046331 0.00028386 7.27259613 0.99858465 0.99925283 0.49321718;
++	-6.27305961 -0.00046324 0.00028381 7.27259637 0.99858487 0.99925295 0.49321725;
++	-6.27305977 -0.00046317 0.00028377 7.27259660 0.99858508 0.99925306 0.49321729;
++	-6.27305994 -0.00046310 0.00028373 7.27259684 0.99858529 0.99925317 0.49321728;
++	-6.27306010 -0.00046303 0.00028369 7.27259707 0.99858550 0.99925328 0.49321728;
++	-6.27306027 -0.00046296 0.00028364 7.27259731 0.99858571 0.99925339 0.49321738;
++	-6.27306044 -0.00046289 0.00028360 7.27259754 0.99858593 0.99925351 0.49321730;
++	-6.27306060 -0.00046282 0.00028356 7.27259778 0.99858614 0.99925362 0.49321736;
++	-6.27306077 -0.00046276 0.00028352 7.27259801 0.99858635 0.99925373 0.49321743;
++	-6.27306093 -0.00046269 0.00028347 7.27259825 0.99858656 0.99925384 0.49321740;
++	-6.27306110 -0.00046262 0.00028343 7.27259848 0.99858677 0.99925395 0.49321757;
++	-6.27306126 -0.00046255 0.00028339 7.27259872 0.99858698 0.99925406 0.49321754;
++	-6.27306143 -0.00046248 0.00028335 7.27259895 0.99858719 0.99925417 0.49321760;
++	-6.27306159 -0.00046241 0.00028330 7.27259918 0.99858740 0.99925429 0.49321757;
++	-6.27306176 -0.00046234 0.00028326 7.27259942 0.99858762 0.99925440 0.49321761;
++	-6.27306192 -0.00046227 0.00028322 7.27259965 0.99858783 0.99925451 0.49321757;
++	-6.27306209 -0.00046220 0.00028318 7.27259989 0.99858804 0.99925462 0.49321764;
++	-6.27306225 -0.00046213 0.00028314 7.27260012 0.99858825 0.99925473 0.49321769;
++	-6.27306242 -0.00046206 0.00028309 7.27260036 0.99858846 0.99925484 0.49321767;
++	-6.27306259 -0.00046200 0.00028305 7.27260059 0.99858867 0.99925495 0.49321773;
++	-6.27306275 -0.00046193 0.00028301 7.27260082 0.99858888 0.99925506 0.49321772;
++	-6.27306292 -0.00046186 0.00028297 7.27260106 0.99858909 0.99925518 0.49321771;
++	-6.27306308 -0.00046179 0.00028292 7.27260129 0.99858930 0.99925529 0.49321779;
++	-6.27306324 -0.00046172 0.00028288 7.27260152 0.99858951 0.99925540 0.49321779;
++	-6.27306341 -0.00046165 0.00028284 7.27260176 0.99858972 0.99925551 0.49321780;
++	-6.27306357 -0.00046158 0.00028280 7.27260199 0.99858993 0.99925562 0.49321791;
++	-6.27306374 -0.00046151 0.00028275 7.27260223 0.99859014 0.99925573 0.49321791;
++	-6.27306390 -0.00046144 0.00028271 7.27260246 0.99859035 0.99925584 0.49321788;
++	-6.27306407 -0.00046138 0.00028267 7.27260269 0.99859056 0.99925595 0.49321791;
++	-6.27306423 -0.00046131 0.00028263 7.27260293 0.99859077 0.99925606 0.49321799;
++	-6.27306440 -0.00046124 0.00028259 7.27260316 0.99859098 0.99925618 0.49321795;
++	-6.27306456 -0.00046117 0.00028254 7.27260339 0.99859119 0.99925629 0.49321797;
++	-6.27306473 -0.00046110 0.00028250 7.27260363 0.99859140 0.99925640 0.49321800;
++	-6.27306489 -0.00046103 0.00028246 7.27260386 0.99859161 0.99925651 0.49321804;
++	-6.27306505 -0.00046096 0.00028242 7.27260409 0.99859182 0.99925662 0.49321800;
++	-6.27306522 -0.00046090 0.00028238 7.27260432 0.99859203 0.99925673 0.49321804;
++	-6.27306538 -0.00046083 0.00028233 7.27260456 0.99859224 0.99925684 0.49321806;
++	-6.27306555 -0.00046076 0.00028229 7.27260479 0.99859245 0.99925695 0.49321814;
++	-6.27306571 -0.00046069 0.00028225 7.27260502 0.99859266 0.99925706 0.49321818;
++	-6.27306588 -0.00046062 0.00028221 7.27260525 0.99859287 0.99925717 0.49321811;
++	-6.27306604 -0.00046055 0.00028217 7.27260549 0.99859308 0.99925728 0.49321821;
++	-6.27306620 -0.00046048 0.00028212 7.27260572 0.99859329 0.99925739 0.49321828;
++	-6.27306637 -0.00046042 0.00028208 7.27260595 0.99859350 0.99925750 0.49321829;
++	-6.27306653 -0.00046035 0.00028204 7.27260618 0.99859371 0.99925761 0.49321826;
++	-6.27306670 -0.00046028 0.00028200 7.27260642 0.99859392 0.99925772 0.49321833;
++	-6.27306686 -0.00046021 0.00028196 7.27260665 0.99859413 0.99925783 0.49321833;
++	-6.27306702 -0.00046014 0.00028191 7.27260688 0.99859434 0.99925794 0.49321830;
++	-6.27306719 -0.00046007 0.00028187 7.27260711 0.99859455 0.99925805 0.49321842;
++	-6.27306735 -0.00046000 0.00028183 7.27260735 0.99859475 0.99925817 0.49321838;
++	-6.27306751 -0.00045994 0.00028179 7.27260758 0.99859496 0.99925828 0.49321849;
++	-6.27306768 -0.00045987 0.00028175 7.27260781 0.99859517 0.99925839 0.49321848;
++	-6.27306784 -0.00045980 0.00028170 7.27260804 0.99859538 0.99925850 0.49321848;
++	-6.27306800 -0.00045973 0.00028166 7.27260827 0.99859559 0.99925861 0.49321852;
++	-6.27306817 -0.00045966 0.00028162 7.27260850 0.99859580 0.99925872 0.49321855;
++	-6.27306833 -0.00045959 0.00028158 7.27260874 0.99859601 0.99925883 0.49321849;
++	-6.27306849 -0.00045953 0.00028154 7.27260897 0.99859622 0.99925894 0.49321861;
++	-6.27306866 -0.00045946 0.00028150 7.27260920 0.99859642 0.99925905 0.49321858;
++	-6.27306882 -0.00045939 0.00028145 7.27260943 0.99859663 0.99925916 0.49321869;
++	-6.27306898 -0.00045932 0.00028141 7.27260966 0.99859684 0.99925927 0.49321873;
++	-6.27306915 -0.00045925 0.00028137 7.27260989 0.99859705 0.99925938 0.49321868;
++	-6.27306931 -0.00045919 0.00028133 7.27261012 0.99859726 0.99925949 0.49321872;
++	-6.27306947 -0.00045912 0.00028129 7.27261035 0.99859746 0.99925960 0.49321879;
++	-6.27306964 -0.00045905 0.00028124 7.27261059 0.99859767 0.99925971 0.49321873;
++	-6.27306980 -0.00045898 0.00028120 7.27261082 0.99859788 0.99925982 0.49321881;
++	-6.27306996 -0.00045891 0.00028116 7.27261105 0.99859809 0.99925993 0.49321869;
++	-6.27307012 -0.00045885 0.00028112 7.27261128 0.99859830 0.99926003 0.49321889;
++	-6.27307029 -0.00045878 0.00028108 7.27261151 0.99859850 0.99926014 0.49321883;
++	-6.27307045 -0.00045871 0.00028104 7.27261174 0.99859871 0.99926025 0.49321889;
++	-6.27307061 -0.00045864 0.00028099 7.27261197 0.99859892 0.99926036 0.49321886;
++	-6.27307078 -0.00045857 0.00028095 7.27261220 0.99859913 0.99926047 0.49321894;
++	-6.27307094 -0.00045851 0.00028091 7.27261243 0.99859934 0.99926058 0.49321894;
++	-6.27307110 -0.00045844 0.00028087 7.27261266 0.99859954 0.99926069 0.49321891;
++	-6.27307126 -0.00045837 0.00028083 7.27261289 0.99859975 0.99926080 0.49321907;
++	-6.27307142 -0.00045830 0.00028079 7.27261312 0.99859996 0.99926091 0.49321892;
++	-6.27307159 -0.00045823 0.00028074 7.27261335 0.99860016 0.99926102 0.49321904;
++	-6.27307175 -0.00045817 0.00028070 7.27261358 0.99860037 0.99926113 0.49321907;
++	-6.27307191 -0.00045810 0.00028066 7.27261381 0.99860058 0.99926124 0.49321903;
++	-6.27307207 -0.00045803 0.00028062 7.27261404 0.99860079 0.99926135 0.49321912;
++	-6.27307224 -0.00045796 0.00028058 7.27261427 0.99860099 0.99926146 0.49321912;
++	-6.27307240 -0.00045790 0.00028054 7.27261450 0.99860120 0.99926157 0.49321912;
++	-6.27307256 -0.00045783 0.00028050 7.27261473 0.99860141 0.99926168 0.49321924;
++	-6.27307272 -0.00045776 0.00028045 7.27261496 0.99860161 0.99926179 0.49321924;
++	-6.27307288 -0.00045769 0.00028041 7.27261519 0.99860182 0.99926190 0.49321921;
++	-6.27307305 -0.00045762 0.00028037 7.27261542 0.99860203 0.99926200 0.49321927;
++	-6.27307321 -0.00045756 0.00028033 7.27261565 0.99860223 0.99926211 0.49321925;
++	-6.27307337 -0.00045749 0.00028029 7.27261588 0.99860244 0.99926222 0.49321926;
++	-6.27307353 -0.00045742 0.00028025 7.27261611 0.99860265 0.99926233 0.49321932;
++	-6.27307369 -0.00045735 0.00028021 7.27261634 0.99860285 0.99926244 0.49321935;
++	-6.27307386 -0.00045729 0.00028016 7.27261657 0.99860306 0.99926255 0.49321931;
++	-6.27307402 -0.00045722 0.00028012 7.27261680 0.99860327 0.99926266 0.49321940;
++	-6.27307418 -0.00045715 0.00028008 7.27261703 0.99860347 0.99926277 0.49321940;
++	-6.27307434 -0.00045708 0.00028004 7.27261726 0.99860368 0.99926288 0.49321938;
++	-6.27307450 -0.00045702 0.00028000 7.27261749 0.99860389 0.99926299 0.49321955;
++	-6.27307466 -0.00045695 0.00027996 7.27261771 0.99860409 0.99926309 0.49321946;
++	-6.27307482 -0.00045688 0.00027992 7.27261794 0.99860430 0.99926320 0.49321952;
++	-6.27307499 -0.00045681 0.00027987 7.27261817 0.99860450 0.99926331 0.49321956;
++	-6.27307515 -0.00045675 0.00027983 7.27261840 0.99860471 0.99926342 0.49321950;
++	-6.27307531 -0.00045668 0.00027979 7.27261863 0.99860492 0.99926353 0.49321959;
++	-6.27307547 -0.00045661 0.00027975 7.27261886 0.99860512 0.99926364 0.49321954;
++	-6.27307563 -0.00045654 0.00027971 7.27261909 0.99860533 0.99926375 0.49321964;
++	-6.27307579 -0.00045648 0.00027967 7.27261931 0.99860553 0.99926385 0.49321960;
++	-6.27307595 -0.00045641 0.00027963 7.27261954 0.99860574 0.99926396 0.49321972;
++	-6.27307611 -0.00045634 0.00027959 7.27261977 0.99860595 0.99926407 0.49321973;
++	-6.27307628 -0.00045628 0.00027954 7.27262000 0.99860615 0.99926418 0.49321968;
++	-6.27307644 -0.00045621 0.00027950 7.27262023 0.99860636 0.99926429 0.49321967;
++	-6.27307660 -0.00045614 0.00027946 7.27262046 0.99860656 0.99926440 0.49321972;
++	-6.27307676 -0.00045607 0.00027942 7.27262068 0.99860677 0.99926451 0.49321981;
++	-6.27307692 -0.00045601 0.00027938 7.27262091 0.99860697 0.99926461 0.49321979;
++	-6.27307708 -0.00045594 0.00027934 7.27262114 0.99860718 0.99926472 0.49321986;
++	-6.27307724 -0.00045587 0.00027930 7.27262137 0.99860738 0.99926483 0.49321988;
++	-6.27307740 -0.00045581 0.00027926 7.27262160 0.99860759 0.99926494 0.49321990;
++	-6.27307756 -0.00045574 0.00027921 7.27262182 0.99860779 0.99926505 0.49321998;
++	-6.27307772 -0.00045567 0.00027917 7.27262205 0.99860800 0.99926516 0.49322003;
++	-6.27307788 -0.00045560 0.00027913 7.27262228 0.99860820 0.99926526 0.49321994;
++	-6.27307804 -0.00045554 0.00027909 7.27262251 0.99860841 0.99926537 0.49322002;
++	-6.27307820 -0.00045547 0.00027905 7.27262273 0.99860861 0.99926548 0.49321999;
++	-6.27307836 -0.00045540 0.00027901 7.27262296 0.99860882 0.99926559 0.49322005;
++	-6.27307852 -0.00045534 0.00027897 7.27262319 0.99860902 0.99926570 0.49322007;
++	-6.27307868 -0.00045527 0.00027893 7.27262342 0.99860923 0.99926580 0.49322002;
++	-6.27307884 -0.00045520 0.00027889 7.27262364 0.99860943 0.99926591 0.49322013;
++	-6.27307900 -0.00045514 0.00027884 7.27262387 0.99860964 0.99926602 0.49322009;
++	-6.27307916 -0.00045507 0.00027880 7.27262410 0.99860984 0.99926613 0.49322010;
++	-6.27307932 -0.00045500 0.00027876 7.27262432 0.99861004 0.99926624 0.49322020;
++	-6.27307949 -0.00045493 0.00027872 7.27262455 0.99861025 0.99926634 0.49322020;
++	-6.27307964 -0.00045487 0.00027868 7.27262478 0.99861045 0.99926645 0.49322021;
++	-6.27307980 -0.00045480 0.00027864 7.27262500 0.99861066 0.99926656 0.49322031;
++	-6.27307996 -0.00045473 0.00027860 7.27262523 0.99861086 0.99926667 0.49322031;
++	-6.27308012 -0.00045467 0.00027856 7.27262546 0.99861107 0.99926677 0.49322033;
++	-6.27308028 -0.00045460 0.00027852 7.27262568 0.99861127 0.99926688 0.49322029;
++	-6.27308044 -0.00045453 0.00027848 7.27262591 0.99861147 0.99926699 0.49322034;
++	-6.27308060 -0.00045447 0.00027844 7.27262614 0.99861168 0.99926710 0.49322033;
++	-6.27308076 -0.00045440 0.00027839 7.27262636 0.99861188 0.99926721 0.49322036;
++	-6.27308092 -0.00045433 0.00027835 7.27262659 0.99861209 0.99926731 0.49322047;
++	-6.27308108 -0.00045427 0.00027831 7.27262682 0.99861229 0.99926742 0.49322045;
++	-6.27308124 -0.00045420 0.00027827 7.27262704 0.99861249 0.99926753 0.49322049;
++	-6.27308140 -0.00045413 0.00027823 7.27262727 0.99861270 0.99926764 0.49322055;
++	-6.27308156 -0.00045407 0.00027819 7.27262749 0.99861290 0.99926774 0.49322054;
++	-6.27308172 -0.00045400 0.00027815 7.27262772 0.99861310 0.99926785 0.49322056;
++	-6.27308188 -0.00045393 0.00027811 7.27262795 0.99861331 0.99926796 0.49322059;
++	-6.27308204 -0.00045387 0.00027807 7.27262817 0.99861351 0.99926807 0.49322050;
++	-6.27308220 -0.00045380 0.00027803 7.27262840 0.99861371 0.99926817 0.49322063;
++	-6.27308236 -0.00045373 0.00027799 7.27262862 0.99861392 0.99926828 0.49322066;
++	-6.27308252 -0.00045367 0.00027795 7.27262885 0.99861412 0.99926839 0.49322063;
++	-6.27308268 -0.00045360 0.00027790 7.27262907 0.99861432 0.99926849 0.49322070;
++	-6.27308284 -0.00045353 0.00027786 7.27262930 0.99861453 0.99926860 0.49322066;
++	-6.27308299 -0.00045347 0.00027782 7.27262953 0.99861473 0.99926871 0.49322073;
++	-6.27308315 -0.00045340 0.00027778 7.27262975 0.99861493 0.99926882 0.49322074;
++	-6.27308331 -0.00045334 0.00027774 7.27262998 0.99861514 0.99926892 0.49322073;
++	-6.27308347 -0.00045327 0.00027770 7.27263020 0.99861534 0.99926903 0.49322080;
++	-6.27308363 -0.00045320 0.00027766 7.27263043 0.99861554 0.99926914 0.49322087;
++	-6.27308379 -0.00045314 0.00027762 7.27263065 0.99861574 0.99926924 0.49322079;
++	-6.27308395 -0.00045307 0.00027758 7.27263088 0.99861595 0.99926935 0.49322088;
++	-6.27308411 -0.00045300 0.00027754 7.27263110 0.99861615 0.99926946 0.49322089;
++	-6.27308426 -0.00045294 0.00027750 7.27263133 0.99861635 0.99926956 0.49322091;
++	-6.27308442 -0.00045287 0.00027746 7.27263155 0.99861655 0.99926967 0.49322099;
++	-6.27308458 -0.00045281 0.00027742 7.27263178 0.99861676 0.99926978 0.49322093;
++	-6.27308474 -0.00045274 0.00027738 7.27263200 0.99861696 0.99926989 0.49322094;
++	-6.27308490 -0.00045267 0.00027734 7.27263223 0.99861716 0.99926999 0.49322104;
++	-6.27308506 -0.00045261 0.00027729 7.27263245 0.99861736 0.99927010 0.49322101;
++	-6.27308522 -0.00045254 0.00027725 7.27263268 0.99861757 0.99927021 0.49322100;
++	-6.27308537 -0.00045247 0.00027721 7.27263290 0.99861777 0.99927031 0.49322109;
++	-6.27308553 -0.00045241 0.00027717 7.27263312 0.99861797 0.99927042 0.49322112;
++	-6.27308569 -0.00045234 0.00027713 7.27263335 0.99861817 0.99927053 0.49322118;
++	-6.27308585 -0.00045228 0.00027709 7.27263357 0.99861837 0.99927063 0.49322108;
++	-6.27308601 -0.00045221 0.00027705 7.27263380 0.99861858 0.99927074 0.49322119;
++	-6.27308616 -0.00045214 0.00027701 7.27263402 0.99861878 0.99927085 0.49322124;
++	-6.27308632 -0.00045208 0.00027697 7.27263424 0.99861898 0.99927095 0.49322120;
++	-6.27308648 -0.00045201 0.00027693 7.27263447 0.99861918 0.99927106 0.49322125;
++	-6.27308664 -0.00045195 0.00027689 7.27263469 0.99861938 0.99927116 0.49322131;
++	-6.27308680 -0.00045188 0.00027685 7.27263492 0.99861959 0.99927127 0.49322139;
++	-6.27308695 -0.00045181 0.00027681 7.27263514 0.99861979 0.99927138 0.49322128;
++	-6.27308711 -0.00045175 0.00027677 7.27263536 0.99861999 0.99927148 0.49322133;
++	-6.27308727 -0.00045168 0.00027673 7.27263559 0.99862019 0.99927159 0.49322134;
++	-6.27308743 -0.00045162 0.00027669 7.27263581 0.99862039 0.99927170 0.49322141;
++	-6.27308759 -0.00045155 0.00027665 7.27263604 0.99862059 0.99927180 0.49322137;
++	-6.27308774 -0.00045148 0.00027661 7.27263626 0.99862079 0.99927191 0.49322148;
++	-6.27308790 -0.00045142 0.00027657 7.27263648 0.99862099 0.99927202 0.49322145;
++	-6.27308806 -0.00045135 0.00027653 7.27263671 0.99862120 0.99927212 0.49322138;
++	-6.27308822 -0.00045129 0.00027649 7.27263693 0.99862140 0.99927223 0.49322155;
++	-6.27308837 -0.00045122 0.00027645 7.27263715 0.99862160 0.99927233 0.49322147;
++	-6.27308853 -0.00045116 0.00027641 7.27263737 0.99862180 0.99927244 0.49322164;
++	-6.27308869 -0.00045109 0.00027636 7.27263760 0.99862200 0.99927255 0.49322155;
++	-6.27308884 -0.00045102 0.00027632 7.27263782 0.99862220 0.99927265 0.49322156;
++	-6.27308900 -0.00045096 0.00027628 7.27263804 0.99862240 0.99927276 0.49322154;
++	-6.27308916 -0.00045089 0.00027624 7.27263827 0.99862260 0.99927286 0.49322167;
++	-6.27308932 -0.00045083 0.00027620 7.27263849 0.99862280 0.99927297 0.49322165;
++	-6.27308947 -0.00045076 0.00027616 7.27263871 0.99862300 0.99927308 0.49322177;
++	-6.27308963 -0.00045070 0.00027612 7.27263894 0.99862320 0.99927318 0.49322172;
++	-6.27308979 -0.00045063 0.00027608 7.27263916 0.99862340 0.99927329 0.49322177;
++	-6.27308994 -0.00045056 0.00027604 7.27263938 0.99862360 0.99927339 0.49322171;
++	-6.27309010 -0.00045050 0.00027600 7.27263960 0.99862381 0.99927350 0.49322172;
++	-6.27309026 -0.00045043 0.00027596 7.27263983 0.99862401 0.99927360 0.49322182;
++	-6.27309042 -0.00045037 0.00027592 7.27264005 0.99862421 0.99927371 0.49322183;
++	-6.27309057 -0.00045030 0.00027588 7.27264027 0.99862441 0.99927382 0.49322187;
++	-6.27309073 -0.00045024 0.00027584 7.27264049 0.99862461 0.99927392 0.49322184;
++	-6.27309089 -0.00045017 0.00027580 7.27264071 0.99862481 0.99927403 0.49322189;
++	-6.27309104 -0.00045011 0.00027576 7.27264094 0.99862501 0.99927413 0.49322190;
++	-6.27309120 -0.00045004 0.00027572 7.27264116 0.99862521 0.99927424 0.49322188;
++	-6.27309136 -0.00044997 0.00027568 7.27264138 0.99862541 0.99927434 0.49322197;
++	-6.27309151 -0.00044991 0.00027564 7.27264160 0.99862561 0.99927445 0.49322195;
++	-6.27309167 -0.00044984 0.00027560 7.27264182 0.99862581 0.99927455 0.49322198;
++	-6.27309183 -0.00044978 0.00027556 7.27264205 0.99862601 0.99927466 0.49322195;
++	-6.27309198 -0.00044971 0.00027552 7.27264227 0.99862621 0.99927477 0.49322211;
++	-6.27309214 -0.00044965 0.00027548 7.27264249 0.99862641 0.99927487 0.49322215;
++	-6.27309229 -0.00044958 0.00027544 7.27264271 0.99862660 0.99927498 0.49322209;
++	-6.27309245 -0.00044952 0.00027540 7.27264293 0.99862680 0.99927508 0.49322211;
++	-6.27309261 -0.00044945 0.00027536 7.27264315 0.99862700 0.99927519 0.49322213;
++	-6.27309276 -0.00044939 0.00027532 7.27264338 0.99862720 0.99927529 0.49322220;
++	-6.27309292 -0.00044932 0.00027528 7.27264360 0.99862740 0.99927540 0.49322206;
++	-6.27309307 -0.00044926 0.00027524 7.27264382 0.99862760 0.99927550 0.49322222;
++	-6.27309323 -0.00044919 0.00027520 7.27264404 0.99862780 0.99927561 0.49322230;
++	-6.27309339 -0.00044913 0.00027516 7.27264426 0.99862800 0.99927571 0.49322233;
++	-6.27309354 -0.00044906 0.00027512 7.27264448 0.99862820 0.99927582 0.49322226;
++	-6.27309370 -0.00044900 0.00027508 7.27264470 0.99862840 0.99927592 0.49322237;
++	-6.27309385 -0.00044893 0.00027504 7.27264492 0.99862860 0.99927603 0.49322238;
++	-6.27309401 -0.00044887 0.00027500 7.27264514 0.99862880 0.99927613 0.49322229;
++	-6.27309417 -0.00044880 0.00027496 7.27264537 0.99862899 0.99927624 0.49322245;
++	-6.27309432 -0.00044874 0.00027492 7.27264559 0.99862919 0.99927634 0.49322245;
++	-6.27309448 -0.00044867 0.00027488 7.27264581 0.99862939 0.99927645 0.49322246;
++	-6.27309463 -0.00044861 0.00027484 7.27264603 0.99862959 0.99927655 0.49322247;
++	-6.27309479 -0.00044854 0.00027480 7.27264625 0.99862979 0.99927666 0.49322254;
++	-6.27309494 -0.00044848 0.00027476 7.27264647 0.99862999 0.99927676 0.49322253;
++	-6.27309510 -0.00044841 0.00027472 7.27264669 0.99863019 0.99927687 0.49322258;
++	-6.27309526 -0.00044835 0.00027468 7.27264691 0.99863039 0.99927697 0.49322250;
++	-6.27309541 -0.00044828 0.00027464 7.27264713 0.99863058 0.99927708 0.49322253;
++	-6.27309557 -0.00044822 0.00027460 7.27264735 0.99863078 0.99927718 0.49322260;
++	-6.27309572 -0.00044815 0.00027456 7.27264757 0.99863098 0.99927729 0.49322265;
++	-6.27309588 -0.00044809 0.00027452 7.27264779 0.99863118 0.99927739 0.49322261;
++	-6.27309603 -0.00044802 0.00027448 7.27264801 0.99863138 0.99927750 0.49322265;
++	-6.27309619 -0.00044796 0.00027444 7.27264823 0.99863158 0.99927760 0.49322274;
++	-6.27309634 -0.00044789 0.00027440 7.27264845 0.99863177 0.99927770 0.49322271;
++	-6.27309650 -0.00044783 0.00027436 7.27264867 0.99863197 0.99927781 0.49322271;
++	-6.27309665 -0.00044776 0.00027432 7.27264889 0.99863217 0.99927791 0.49322277;
++	-6.27309681 -0.00044770 0.00027429 7.27264911 0.99863237 0.99927802 0.49322282;
++	-6.27309696 -0.00044763 0.00027425 7.27264933 0.99863256 0.99927812 0.49322277;
++	-6.27309712 -0.00044757 0.00027421 7.27264955 0.99863276 0.99927823 0.49322279;
++	-6.27309727 -0.00044750 0.00027417 7.27264977 0.99863296 0.99927833 0.49322290;
++	-6.27309743 -0.00044744 0.00027413 7.27264999 0.99863316 0.99927844 0.49322286;
++	-6.27309758 -0.00044737 0.00027409 7.27265021 0.99863336 0.99927854 0.49322289;
++	-6.27309774 -0.00044731 0.00027405 7.27265043 0.99863355 0.99927864 0.49322292;
++	-6.27309789 -0.00044724 0.00027401 7.27265065 0.99863375 0.99927875 0.49322303;
++	-6.27309805 -0.00044718 0.00027397 7.27265087 0.99863395 0.99927885 0.49322297;
++	-6.27309820 -0.00044712 0.00027393 7.27265108 0.99863415 0.99927896 0.49322299;
++	-6.27309835 -0.00044705 0.00027389 7.27265130 0.99863434 0.99927906 0.49322300;
++	-6.27309851 -0.00044699 0.00027385 7.27265152 0.99863454 0.99927916 0.49322302;
++	-6.27309866 -0.00044692 0.00027381 7.27265174 0.99863474 0.99927927 0.49322302;
++	-6.27309882 -0.00044686 0.00027377 7.27265196 0.99863493 0.99927937 0.49322309;
++	-6.27309897 -0.00044679 0.00027373 7.27265218 0.99863513 0.99927948 0.49322304;
++	-6.27309913 -0.00044673 0.00027369 7.27265240 0.99863533 0.99927958 0.49322317;
++	-6.27309928 -0.00044666 0.00027365 7.27265262 0.99863553 0.99927968 0.49322317;
++	-6.27309944 -0.00044660 0.00027361 7.27265284 0.99863572 0.99927979 0.49322320;
++	-6.27309959 -0.00044653 0.00027357 7.27265305 0.99863592 0.99927989 0.49322325;
++	-6.27309974 -0.00044647 0.00027353 7.27265327 0.99863612 0.99928000 0.49322322;
++	-6.27309990 -0.00044641 0.00027349 7.27265349 0.99863631 0.99928010 0.49322331;
++	-6.27310005 -0.00044634 0.00027345 7.27265371 0.99863651 0.99928020 0.49322327;
++	-6.27310021 -0.00044628 0.00027341 7.27265393 0.99863671 0.99928031 0.49322319;
++	-6.27310036 -0.00044621 0.00027338 7.27265415 0.99863690 0.99928041 0.49322336;
++	-6.27310051 -0.00044615 0.00027334 7.27265436 0.99863710 0.99928052 0.49322341;
++	-6.27310067 -0.00044608 0.00027330 7.27265458 0.99863730 0.99928062 0.49322335;
++	-6.27310082 -0.00044602 0.00027326 7.27265480 0.99863749 0.99928072 0.49322336;
++	-6.27310097 -0.00044596 0.00027322 7.27265502 0.99863769 0.99928083 0.49322343;
++	-6.27310113 -0.00044589 0.00027318 7.27265524 0.99863789 0.99928093 0.49322345;
++	-6.27310128 -0.00044583 0.00027314 7.27265546 0.99863808 0.99928103 0.49322341;
++	-6.27310144 -0.00044576 0.00027310 7.27265567 0.99863828 0.99928114 0.49322343;
++	-6.27310159 -0.00044570 0.00027306 7.27265589 0.99863847 0.99928124 0.49322353;
++	-6.27310174 -0.00044563 0.00027302 7.27265611 0.99863867 0.99928134 0.49322355;
++	-6.27310190 -0.00044557 0.00027298 7.27265633 0.99863887 0.99928145 0.49322359;
++	-6.27310205 -0.00044551 0.00027294 7.27265654 0.99863906 0.99928155 0.49322357;
++	-6.27310220 -0.00044544 0.00027290 7.27265676 0.99863926 0.99928165 0.49322365;
++	-6.27310236 -0.00044538 0.00027286 7.27265698 0.99863945 0.99928176 0.49322365;
++	-6.27310251 -0.00044531 0.00027282 7.27265720 0.99863965 0.99928186 0.49322366;
++	-6.27310266 -0.00044525 0.00027279 7.27265741 0.99863984 0.99928196 0.49322350;
++	-6.27310282 -0.00044519 0.00027275 7.27265763 0.99864004 0.99928207 0.49322363;
++	-6.27310297 -0.00044512 0.00027271 7.27265785 0.99864024 0.99928217 0.49322376;
++	-6.27310312 -0.00044506 0.00027267 7.27265807 0.99864043 0.99928227 0.49322376;
++	-6.27310328 -0.00044499 0.00027263 7.27265828 0.99864063 0.99928238 0.49322386;
++	-6.27310343 -0.00044493 0.00027259 7.27265850 0.99864082 0.99928248 0.49322387;
++	-6.27310358 -0.00044487 0.00027255 7.27265872 0.99864102 0.99928258 0.49322377;
++	-6.27310374 -0.00044480 0.00027251 7.27265893 0.99864121 0.99928269 0.49322371;
++	-6.27310389 -0.00044474 0.00027247 7.27265915 0.99864141 0.99928279 0.49322385;
++	-6.27310404 -0.00044467 0.00027243 7.27265937 0.99864160 0.99928289 0.49322391;
++	-6.27310419 -0.00044461 0.00027239 7.27265958 0.99864180 0.99928300 0.49322388;
++	-6.27310435 -0.00044455 0.00027235 7.27265980 0.99864199 0.99928310 0.49322387;
++	-6.27310450 -0.00044448 0.00027231 7.27266002 0.99864219 0.99928320 0.49322394;
++	-6.27310465 -0.00044442 0.00027228 7.27266023 0.99864238 0.99928330 0.49322403;
++	-6.27310481 -0.00044436 0.00027224 7.27266045 0.99864258 0.99928341 0.49322393;
++	-6.27310496 -0.00044429 0.00027220 7.27266067 0.99864277 0.99928351 0.49322396;
++	-6.27310511 -0.00044423 0.00027216 7.27266088 0.99864297 0.99928361 0.49322397;
++	-6.27310526 -0.00044416 0.00027212 7.27266110 0.99864316 0.99928372 0.49322408;
++	-6.27310542 -0.00044410 0.00027208 7.27266132 0.99864336 0.99928382 0.49322399;
++	-6.27310557 -0.00044404 0.00027204 7.27266153 0.99864355 0.99928392 0.49322405;
++	-6.27310572 -0.00044397 0.00027200 7.27266175 0.99864375 0.99928402 0.49322411;
++	-6.27310587 -0.00044391 0.00027196 7.27266196 0.99864394 0.99928413 0.49322415;
++	-6.27310603 -0.00044385 0.00027192 7.27266218 0.99864414 0.99928423 0.49322414;
++	-6.27310618 -0.00044378 0.00027189 7.27266240 0.99864433 0.99928433 0.49322429;
++	-6.27310633 -0.00044372 0.00027185 7.27266261 0.99864453 0.99928444 0.49322422;
++	-6.27310648 -0.00044365 0.00027181 7.27266283 0.99864472 0.99928454 0.49322422;
++	-6.27310663 -0.00044359 0.00027177 7.27266304 0.99864491 0.99928464 0.49322418;
++	-6.27310679 -0.00044353 0.00027173 7.27266326 0.99864511 0.99928474 0.49322426;
++	-6.27310694 -0.00044346 0.00027169 7.27266347 0.99864530 0.99928485 0.49322432;
++	-6.27310709 -0.00044340 0.00027165 7.27266369 0.99864550 0.99928495 0.49322429;
++	-6.27310724 -0.00044334 0.00027161 7.27266391 0.99864569 0.99928505 0.49322440;
++	-6.27310739 -0.00044327 0.00027157 7.27266412 0.99864589 0.99928515 0.49322431;
++	-6.27310755 -0.00044321 0.00027153 7.27266434 0.99864608 0.99928526 0.49322435;
++	-6.27310770 -0.00044315 0.00027150 7.27266455 0.99864627 0.99928536 0.49322446;
++	-6.27310785 -0.00044308 0.00027146 7.27266477 0.99864647 0.99928546 0.49322440;
++	-6.27310800 -0.00044302 0.00027142 7.27266498 0.99864666 0.99928556 0.49322441;
++	-6.27310815 -0.00044296 0.00027138 7.27266520 0.99864685 0.99928566 0.49322447;
++	-6.27310831 -0.00044289 0.00027134 7.27266541 0.99864705 0.99928577 0.49322449;
++	-6.27310846 -0.00044283 0.00027130 7.27266563 0.99864724 0.99928587 0.49322455;
++	-6.27310861 -0.00044277 0.00027126 7.27266584 0.99864744 0.99928597 0.49322455;
++	-6.27310876 -0.00044270 0.00027122 7.27266606 0.99864763 0.99928607 0.49322448;
++	-6.27310891 -0.00044264 0.00027119 7.27266627 0.99864782 0.99928618 0.49322460;
++	-6.27310906 -0.00044258 0.00027115 7.27266649 0.99864802 0.99928628 0.49322463;
++	-6.27310921 -0.00044251 0.00027111 7.27266670 0.99864821 0.99928638 0.49322466;
++	-6.27310937 -0.00044245 0.00027107 7.27266692 0.99864840 0.99928648 0.49322476;
++	-6.27310952 -0.00044239 0.00027103 7.27266713 0.99864860 0.99928658 0.49322465;
++	-6.27310967 -0.00044232 0.00027099 7.27266735 0.99864879 0.99928669 0.49322471;
++	-6.27310982 -0.00044226 0.00027095 7.27266756 0.99864898 0.99928679 0.49322475;
++	-6.27310997 -0.00044220 0.00027091 7.27266777 0.99864917 0.99928689 0.49322474;
++	-6.27311012 -0.00044213 0.00027088 7.27266799 0.99864937 0.99928699 0.49322474;
++	-6.27311027 -0.00044207 0.00027084 7.27266820 0.99864956 0.99928709 0.49322480;
++	-6.27311042 -0.00044201 0.00027080 7.27266842 0.99864975 0.99928719 0.49322485;
++	-6.27311058 -0.00044194 0.00027076 7.27266863 0.99864995 0.99928730 0.49322481;
++	-6.27311073 -0.00044188 0.00027072 7.27266884 0.99865014 0.99928740 0.49322488;
++	-6.27311088 -0.00044182 0.00027068 7.27266906 0.99865033 0.99928750 0.49322485;
++	-6.27311103 -0.00044176 0.00027064 7.27266927 0.99865052 0.99928760 0.49322488;
++	-6.27311118 -0.00044169 0.00027060 7.27266949 0.99865072 0.99928770 0.49322494;
++	-6.27311133 -0.00044163 0.00027057 7.27266970 0.99865091 0.99928780 0.49322492;
++	-6.27311148 -0.00044157 0.00027053 7.27266991 0.99865110 0.99928791 0.49322499;
++	-6.27311163 -0.00044150 0.00027049 7.27267013 0.99865129 0.99928801 0.49322490;
++	-6.27311178 -0.00044144 0.00027045 7.27267034 0.99865149 0.99928811 0.49322494;
++	-6.27311193 -0.00044138 0.00027041 7.27267056 0.99865168 0.99928821 0.49322503;
++	-6.27311208 -0.00044131 0.00027037 7.27267077 0.99865187 0.99928831 0.49322507;
++	-6.27311223 -0.00044125 0.00027033 7.27267098 0.99865206 0.99928841 0.49322506;
++	-6.27311238 -0.00044119 0.00027030 7.27267120 0.99865226 0.99928852 0.49322507;
++	-6.27311253 -0.00044113 0.00027026 7.27267141 0.99865245 0.99928862 0.49322511;
++	-6.27311269 -0.00044106 0.00027022 7.27267162 0.99865264 0.99928872 0.49322515;
++	-6.27311284 -0.00044100 0.00027018 7.27267184 0.99865283 0.99928882 0.49322525;
++	-6.27311299 -0.00044094 0.00027014 7.27267205 0.99865302 0.99928892 0.49322511;
++	-6.27311314 -0.00044087 0.00027010 7.27267226 0.99865322 0.99928902 0.49322518;
++	-6.27311329 -0.00044081 0.00027006 7.27267247 0.99865341 0.99928912 0.49322526;
++	-6.27311344 -0.00044075 0.00027003 7.27267269 0.99865360 0.99928922 0.49322521;
++	-6.27311359 -0.00044069 0.00026999 7.27267290 0.99865379 0.99928933 0.49322528;
++	-6.27311374 -0.00044062 0.00026995 7.27267311 0.99865398 0.99928943 0.49322529;
++	-6.27311389 -0.00044056 0.00026991 7.27267333 0.99865418 0.99928953 0.49322527;
++	-6.27311404 -0.00044050 0.00026987 7.27267354 0.99865437 0.99928963 0.49322539;
++	-6.27311419 -0.00044044 0.00026983 7.27267375 0.99865456 0.99928973 0.49322538;
++	-6.27311434 -0.00044037 0.00026980 7.27267396 0.99865475 0.99928983 0.49322547;
++	-6.27311449 -0.00044031 0.00026976 7.27267418 0.99865494 0.99928993 0.49322544;
++	-6.27311464 -0.00044025 0.00026972 7.27267439 0.99865513 0.99929003 0.49322545;
++	-6.27311479 -0.00044018 0.00026968 7.27267460 0.99865532 0.99929013 0.49322545;
++	-6.27311494 -0.00044012 0.00026964 7.27267481 0.99865551 0.99929024 0.49322537;
++	-6.27311509 -0.00044006 0.00026960 7.27267503 0.99865571 0.99929034 0.49322549;
++	-6.27311524 -0.00044000 0.00026957 7.27267524 0.99865590 0.99929044 0.49322552;
++	-6.27311539 -0.00043993 0.00026953 7.27267545 0.99865609 0.99929054 0.49322561;
++	-6.27311554 -0.00043987 0.00026949 7.27267566 0.99865628 0.99929064 0.49322551;
++	-6.27311569 -0.00043981 0.00026945 7.27267588 0.99865647 0.99929074 0.49322559;
++	-6.27311583 -0.00043975 0.00026941 7.27267609 0.99865666 0.99929084 0.49322564;
++	-6.27311598 -0.00043968 0.00026937 7.27267630 0.99865685 0.99929094 0.49322558;
++	-6.27311613 -0.00043962 0.00026934 7.27267651 0.99865704 0.99929104 0.49322567;
++	-6.27311628 -0.00043956 0.00026930 7.27267672 0.99865723 0.99929114 0.49322564;
++	-6.27311643 -0.00043950 0.00026926 7.27267693 0.99865742 0.99929124 0.49322573;
++	-6.27311658 -0.00043944 0.00026922 7.27267715 0.99865762 0.99929134 0.49322571;
++	-6.27311673 -0.00043937 0.00026918 7.27267736 0.99865781 0.99929144 0.49322569;
++	-6.27311688 -0.00043931 0.00026914 7.27267757 0.99865800 0.99929155 0.49322578;
++	-6.27311703 -0.00043925 0.00026911 7.27267778 0.99865819 0.99929165 0.49322578;
++	-6.27311718 -0.00043919 0.00026907 7.27267799 0.99865838 0.99929175 0.49322584;
++	-6.27311733 -0.00043912 0.00026903 7.27267820 0.99865857 0.99929185 0.49322586;
++	-6.27311748 -0.00043906 0.00026899 7.27267842 0.99865876 0.99929195 0.49322590;
++	-6.27311763 -0.00043900 0.00026895 7.27267863 0.99865895 0.99929205 0.49322588;
++	-6.27311777 -0.00043894 0.00026892 7.27267884 0.99865914 0.99929215 0.49322594;
++	-6.27311792 -0.00043887 0.00026888 7.27267905 0.99865933 0.99929225 0.49322584;
++	-6.27311807 -0.00043881 0.00026884 7.27267926 0.99865952 0.99929235 0.49322593;
++	-6.27311822 -0.00043875 0.00026880 7.27267947 0.99865971 0.99929245 0.49322593;
++	-6.27311837 -0.00043869 0.00026876 7.27267968 0.99865990 0.99929255 0.49322599;
++	-6.27311852 -0.00043863 0.00026872 7.27267989 0.99866009 0.99929265 0.49322601;
++	-6.27311867 -0.00043856 0.00026869 7.27268010 0.99866028 0.99929275 0.49322609;
++	-6.27311882 -0.00043850 0.00026865 7.27268032 0.99866047 0.99929285 0.49322605;
++	-6.27311897 -0.00043844 0.00026861 7.27268053 0.99866066 0.99929295 0.49322609;
++	-6.27311911 -0.00043838 0.00026857 7.27268074 0.99866085 0.99929305 0.49322609;
++	-6.27311926 -0.00043832 0.00026853 7.27268095 0.99866104 0.99929315 0.49322617;
++	-6.27311941 -0.00043825 0.00026850 7.27268116 0.99866123 0.99929325 0.49322622;
++	-6.27311956 -0.00043819 0.00026846 7.27268137 0.99866142 0.99929335 0.49322614;
++	-6.27311971 -0.00043813 0.00026842 7.27268158 0.99866161 0.99929345 0.49322631;
++	-6.27311986 -0.00043807 0.00026838 7.27268179 0.99866180 0.99929355 0.49322620;
++	-6.27312000 -0.00043800 0.00026834 7.27268200 0.99866199 0.99929365 0.49322616;
++	-6.27312015 -0.00043794 0.00026831 7.27268221 0.99866217 0.99929375 0.49322624;
++	-6.27312030 -0.00043788 0.00026827 7.27268242 0.99866236 0.99929385 0.49322623;
++	-6.27312045 -0.00043782 0.00026823 7.27268263 0.99866255 0.99929395 0.49322635;
++	-6.27312060 -0.00043776 0.00026819 7.27268284 0.99866274 0.99929405 0.49322632;
++	-6.27312075 -0.00043770 0.00026815 7.27268305 0.99866293 0.99929415 0.49322635;
++	-6.27312089 -0.00043763 0.00026812 7.27268326 0.99866312 0.99929425 0.49322639;
++	-6.27312104 -0.00043757 0.00026808 7.27268347 0.99866331 0.99929435 0.49322639;
++	-6.27312119 -0.00043751 0.00026804 7.27268368 0.99866350 0.99929445 0.49322638;
++	-6.27312134 -0.00043745 0.00026800 7.27268389 0.99866369 0.99929455 0.49322647;
++	-6.27312149 -0.00043739 0.00026796 7.27268410 0.99866388 0.99929465 0.49322642;
++	-6.27312163 -0.00043732 0.00026793 7.27268431 0.99866407 0.99929475 0.49322644;
++	-6.27312178 -0.00043726 0.00026789 7.27268452 0.99866425 0.99929485 0.49322646;
++	-6.27312193 -0.00043720 0.00026785 7.27268473 0.99866444 0.99929495 0.49322653;
++	-6.27312208 -0.00043714 0.00026781 7.27268494 0.99866463 0.99929505 0.49322663;
++	-6.27312223 -0.00043708 0.00026778 7.27268515 0.99866482 0.99929515 0.49322655;
++	-6.27312237 -0.00043702 0.00026774 7.27268536 0.99866501 0.99929525 0.49322658;
++	-6.27312252 -0.00043695 0.00026770 7.27268557 0.99866520 0.99929535 0.49322660;
++	-6.27312267 -0.00043689 0.00026766 7.27268578 0.99866539 0.99929545 0.49322666;
++	-6.27312282 -0.00043683 0.00026762 7.27268599 0.99866557 0.99929555 0.49322663;
++	-6.27312296 -0.00043677 0.00026759 7.27268619 0.99866576 0.99929564 0.49322672;
++	-6.27312311 -0.00043671 0.00026755 7.27268640 0.99866595 0.99929574 0.49322669;
++	-6.27312326 -0.00043665 0.00026751 7.27268661 0.99866614 0.99929584 0.49322667;
++	-6.27312341 -0.00043658 0.00026747 7.27268682 0.99866633 0.99929594 0.49322665;
++	-6.27312355 -0.00043652 0.00026744 7.27268703 0.99866652 0.99929604 0.49322678;
++	-6.27312370 -0.00043646 0.00026740 7.27268724 0.99866670 0.99929614 0.49322680;
++	-6.27312385 -0.00043640 0.00026736 7.27268745 0.99866689 0.99929624 0.49322677;
++	-6.27312399 -0.00043634 0.00026732 7.27268766 0.99866708 0.99929634 0.49322687;
++	-6.27312414 -0.00043628 0.00026728 7.27268787 0.99866727 0.99929644 0.49322695;
++	-6.27312429 -0.00043622 0.00026725 7.27268807 0.99866746 0.99929654 0.49322684;
++	-6.27312444 -0.00043615 0.00026721 7.27268828 0.99866764 0.99929664 0.49322695;
++	-6.27312458 -0.00043609 0.00026717 7.27268849 0.99866783 0.99929674 0.49322694;
++	-6.27312473 -0.00043603 0.00026713 7.27268870 0.99866802 0.99929684 0.49322694;
++	-6.27312488 -0.00043597 0.00026710 7.27268891 0.99866821 0.99929693 0.49322692;
++	-6.27312502 -0.00043591 0.00026706 7.27268912 0.99866839 0.99929703 0.49322694;
++	-6.27312517 -0.00043585 0.00026702 7.27268932 0.99866858 0.99929713 0.49322699;
++	-6.27312532 -0.00043579 0.00026698 7.27268953 0.99866877 0.99929723 0.49322697;
++	-6.27312546 -0.00043572 0.00026695 7.27268974 0.99866896 0.99929733 0.49322709;
++	-6.27312561 -0.00043566 0.00026691 7.27268995 0.99866914 0.99929743 0.49322698;
++	-6.27312576 -0.00043560 0.00026687 7.27269016 0.99866933 0.99929753 0.49322713;
++	-6.27312590 -0.00043554 0.00026683 7.27269037 0.99866952 0.99929763 0.49322708;
++	-6.27312605 -0.00043548 0.00026680 7.27269057 0.99866971 0.99929773 0.49322723;
++	-6.27312620 -0.00043542 0.00026676 7.27269078 0.99866989 0.99929782 0.49322717;
++	-6.27312634 -0.00043536 0.00026672 7.27269099 0.99867008 0.99929792 0.49322722;
++	-6.27312649 -0.00043529 0.00026668 7.27269120 0.99867027 0.99929802 0.49322714;
++	-6.27312664 -0.00043523 0.00026665 7.27269140 0.99867045 0.99929812 0.49322725;
++	-6.27312678 -0.00043517 0.00026661 7.27269161 0.99867064 0.99929822 0.49322739;
++	-6.27312693 -0.00043511 0.00026657 7.27269182 0.99867083 0.99929832 0.49322721;
++	-6.27312708 -0.00043505 0.00026653 7.27269203 0.99867101 0.99929842 0.49322728;
++	-6.27312722 -0.00043499 0.00026650 7.27269223 0.99867120 0.99929852 0.49322731;
++	-6.27312737 -0.00043493 0.00026646 7.27269244 0.99867139 0.99929861 0.49322735;
++	-6.27312752 -0.00043487 0.00026642 7.27269265 0.99867158 0.99929871 0.49322737;
++	-6.27312766 -0.00043481 0.00026638 7.27269286 0.99867176 0.99929881 0.49322735;
++	-6.27312781 -0.00043474 0.00026635 7.27269306 0.99867195 0.99929891 0.49322744;
++	-6.27312795 -0.00043468 0.00026631 7.27269327 0.99867214 0.99929901 0.49322745;
++	-6.27312810 -0.00043462 0.00026627 7.27269348 0.99867232 0.99929911 0.49322747;
++	-6.27312825 -0.00043456 0.00026623 7.27269368 0.99867251 0.99929920 0.49322750;
++	-6.27312839 -0.00043450 0.00026620 7.27269389 0.99867269 0.99929930 0.49322745;
++	-6.27312854 -0.00043444 0.00026616 7.27269410 0.99867288 0.99929940 0.49322761;
++	-6.27312868 -0.00043438 0.00026612 7.27269431 0.99867307 0.99929950 0.49322746;
++	-6.27312883 -0.00043432 0.00026608 7.27269451 0.99867325 0.99929960 0.49322757;
++	-6.27312898 -0.00043426 0.00026605 7.27269472 0.99867344 0.99929970 0.49322765;
++	-6.27312912 -0.00043420 0.00026601 7.27269493 0.99867363 0.99929979 0.49322763;
++	-6.27312927 -0.00043413 0.00026597 7.27269513 0.99867381 0.99929989 0.49322751;
++	-6.27312941 -0.00043407 0.00026593 7.27269534 0.99867400 0.99929999 0.49322758;
++	-6.27312956 -0.00043401 0.00026590 7.27269555 0.99867418 0.99930009 0.49322771;
++	-6.27312970 -0.00043395 0.00026586 7.27269575 0.99867437 0.99930019 0.49322770;
++	-6.27312985 -0.00043389 0.00026582 7.27269596 0.99867456 0.99930029 0.49322772;
++	-6.27313000 -0.00043383 0.00026579 7.27269616 0.99867474 0.99930038 0.49322775;
++	-6.27313014 -0.00043377 0.00026575 7.27269637 0.99867493 0.99930048 0.49322776;
++	-6.27313029 -0.00043371 0.00026571 7.27269658 0.99867511 0.99930058 0.49322779;
++	-6.27313043 -0.00043365 0.00026567 7.27269678 0.99867530 0.99930068 0.49322775;
++	-6.27313058 -0.00043359 0.00026564 7.27269699 0.99867548 0.99930078 0.49322782;
++	-6.27313072 -0.00043353 0.00026560 7.27269720 0.99867567 0.99930087 0.49322777;
++	-6.27313087 -0.00043347 0.00026556 7.27269740 0.99867586 0.99930097 0.49322785;
++	-6.27313101 -0.00043341 0.00026552 7.27269761 0.99867604 0.99930107 0.49322785;
++	-6.27313116 -0.00043335 0.00026549 7.27269781 0.99867623 0.99930117 0.49322792;
++	-6.27313130 -0.00043328 0.00026545 7.27269802 0.99867641 0.99930127 0.49322802;
++	-6.27313145 -0.00043322 0.00026541 7.27269823 0.99867660 0.99930136 0.49322800;
++	-6.27313159 -0.00043316 0.00026538 7.27269843 0.99867678 0.99930146 0.49322801;
++	-6.27313174 -0.00043310 0.00026534 7.27269864 0.99867697 0.99930156 0.49322793;
++	-6.27313188 -0.00043304 0.00026530 7.27269884 0.99867715 0.99930166 0.49322797;
++	-6.27313203 -0.00043298 0.00026526 7.27269905 0.99867734 0.99930175 0.49322808;
++	-6.27313217 -0.00043292 0.00026523 7.27269925 0.99867752 0.99930185 0.49322805;
++	-6.27313232 -0.00043286 0.00026519 7.27269946 0.99867771 0.99930195 0.49322811;
++	-6.27313246 -0.00043280 0.00026515 7.27269966 0.99867789 0.99930205 0.49322809;
++	-6.27313261 -0.00043274 0.00026512 7.27269987 0.99867808 0.99930214 0.49322806;
++	-6.27313275 -0.00043268 0.00026508 7.27270007 0.99867826 0.99930224 0.49322819;
++	-6.27313290 -0.00043262 0.00026504 7.27270028 0.99867845 0.99930234 0.49322820;
++	-6.27313304 -0.00043256 0.00026501 7.27270049 0.99867863 0.99930244 0.49322821;
++	-6.27313319 -0.00043250 0.00026497 7.27270069 0.99867882 0.99930253 0.49322826;
++	-6.27313333 -0.00043244 0.00026493 7.27270090 0.99867900 0.99930263 0.49322825;
++	-6.27313348 -0.00043238 0.00026489 7.27270110 0.99867919 0.99930273 0.49322828;
++	-6.27313362 -0.00043232 0.00026486 7.27270131 0.99867937 0.99930283 0.49322824;
++	-6.27313377 -0.00043226 0.00026482 7.27270151 0.99867955 0.99930292 0.49322829;
++	-6.27313391 -0.00043220 0.00026478 7.27270171 0.99867974 0.99930302 0.49322833;
++	-6.27313405 -0.00043214 0.00026475 7.27270192 0.99867992 0.99930312 0.49322832;
++	-6.27313420 -0.00043207 0.00026471 7.27270212 0.99868011 0.99930322 0.49322832;
++	-6.27313434 -0.00043201 0.00026467 7.27270233 0.99868029 0.99930331 0.49322841;
++	-6.27313449 -0.00043195 0.00026464 7.27270253 0.99868048 0.99930341 0.49322842;
++	-6.27313463 -0.00043189 0.00026460 7.27270274 0.99868066 0.99930351 0.49322850;
++	-6.27313478 -0.00043183 0.00026456 7.27270294 0.99868084 0.99930360 0.49322849;
++	-6.27313492 -0.00043177 0.00026452 7.27270315 0.99868103 0.99930370 0.49322832;
++	-6.27313506 -0.00043171 0.00026449 7.27270335 0.99868121 0.99930380 0.49322850;
++	-6.27313521 -0.00043165 0.00026445 7.27270356 0.99868140 0.99930390 0.49322849;
++	-6.27313535 -0.00043159 0.00026441 7.27270376 0.99868158 0.99930399 0.49322851;
++	-6.27313550 -0.00043153 0.00026438 7.27270396 0.99868176 0.99930409 0.49322842;
++	-6.27313564 -0.00043147 0.00026434 7.27270417 0.99868195 0.99930419 0.49322856;
++	-6.27313578 -0.00043141 0.00026430 7.27270437 0.99868213 0.99930428 0.49322852;
++	-6.27313593 -0.00043135 0.00026427 7.27270458 0.99868232 0.99930438 0.49322857;
++	-6.27313607 -0.00043129 0.00026423 7.27270478 0.99868250 0.99930448 0.49322857;
++	-6.27313622 -0.00043123 0.00026419 7.27270498 0.99868268 0.99930458 0.49322862;
++	-6.27313636 -0.00043117 0.00026416 7.27270519 0.99868287 0.99930467 0.49322867;
++	-6.27313650 -0.00043111 0.00026412 7.27270539 0.99868305 0.99930477 0.49322876;
++	-6.27313665 -0.00043105 0.00026408 7.27270560 0.99868323 0.99930487 0.49322877;
++	-6.27313679 -0.00043099 0.00026405 7.27270580 0.99868342 0.99930496 0.49322873;
++	-6.27313693 -0.00043093 0.00026401 7.27270600 0.99868360 0.99930506 0.49322870;
++	-6.27313708 -0.00043087 0.00026397 7.27270621 0.99868378 0.99930516 0.49322877;
++	-6.27313722 -0.00043081 0.00026394 7.27270641 0.99868397 0.99930525 0.49322879;
++	-6.27313737 -0.00043075 0.00026390 7.27270661 0.99868415 0.99930535 0.49322891;
++	-6.27313751 -0.00043069 0.00026386 7.27270682 0.99868433 0.99930545 0.49322887;
++	-6.27313765 -0.00043063 0.00026382 7.27270702 0.99868452 0.99930554 0.49322881;
++	-6.27313780 -0.00043057 0.00026379 7.27270722 0.99868470 0.99930564 0.49322892;
++	-6.27313794 -0.00043051 0.00026375 7.27270743 0.99868488 0.99930574 0.49322891;
++	-6.27313808 -0.00043045 0.00026371 7.27270763 0.99868507 0.99930583 0.49322891;
++	-6.27313823 -0.00043039 0.00026368 7.27270783 0.99868525 0.99930593 0.49322893;
++	-6.27313837 -0.00043033 0.00026364 7.27270804 0.99868543 0.99930603 0.49322886;
++	-6.27313851 -0.00043027 0.00026360 7.27270824 0.99868561 0.99930612 0.49322902;
++	-6.27313865 -0.00043021 0.00026357 7.27270844 0.99868580 0.99930622 0.49322900;
++	-6.27313880 -0.00043015 0.00026353 7.27270864 0.99868598 0.99930632 0.49322904;
++	-6.27313894 -0.00043009 0.00026349 7.27270885 0.99868616 0.99930641 0.49322903;
++	-6.27313908 -0.00043003 0.00026346 7.27270905 0.99868634 0.99930651 0.49322900;
++	-6.27313923 -0.00042997 0.00026342 7.27270925 0.99868653 0.99930660 0.49322904;
++	-6.27313937 -0.00042991 0.00026338 7.27270946 0.99868671 0.99930670 0.49322912;
++	-6.27313951 -0.00042985 0.00026335 7.27270966 0.99868689 0.99930680 0.49322917;
++	-6.27313966 -0.00042980 0.00026331 7.27270986 0.99868707 0.99930689 0.49322903;
++	-6.27313980 -0.00042974 0.00026328 7.27271006 0.99868726 0.99930699 0.49322919;
++	-6.27313994 -0.00042968 0.00026324 7.27271027 0.99868744 0.99930709 0.49322915;
++	-6.27314008 -0.00042962 0.00026320 7.27271047 0.99868762 0.99930718 0.49322921;
++	-6.27314023 -0.00042956 0.00026317 7.27271067 0.99868780 0.99930728 0.49322918;
++	-6.27314037 -0.00042950 0.00026313 7.27271087 0.99868799 0.99930737 0.49322930;
++	-6.27314051 -0.00042944 0.00026309 7.27271107 0.99868817 0.99930747 0.49322927;
++	-6.27314065 -0.00042938 0.00026306 7.27271128 0.99868835 0.99930757 0.49322931;
++	-6.27314080 -0.00042932 0.00026302 7.27271148 0.99868853 0.99930766 0.49322934;
++	-6.27314094 -0.00042926 0.00026298 7.27271168 0.99868871 0.99930776 0.49322928;
++	-6.27314108 -0.00042920 0.00026295 7.27271188 0.99868890 0.99930785 0.49322942;
++	-6.27314122 -0.00042914 0.00026291 7.27271208 0.99868908 0.99930795 0.49322942;
++	-6.27314137 -0.00042908 0.00026287 7.27271229 0.99868926 0.99930805 0.49322944;
++	-6.27314151 -0.00042902 0.00026284 7.27271249 0.99868944 0.99930814 0.49322951;
++	-6.27314165 -0.00042896 0.00026280 7.27271269 0.99868962 0.99930824 0.49322944;
++	-6.27314179 -0.00042890 0.00026276 7.27271289 0.99868980 0.99930833 0.49322951;
++	-6.27314194 -0.00042884 0.00026273 7.27271309 0.99868999 0.99930843 0.49322954;
++	-6.27314208 -0.00042878 0.00026269 7.27271329 0.99869017 0.99930853 0.49322961;
++	-6.27314222 -0.00042872 0.00026265 7.27271350 0.99869035 0.99930862 0.49322958;
++	-6.27314236 -0.00042866 0.00026262 7.27271370 0.99869053 0.99930872 0.49322958;
++	-6.27314250 -0.00042861 0.00026258 7.27271390 0.99869071 0.99930881 0.49322960;
++	-6.27314265 -0.00042855 0.00026255 7.27271410 0.99869089 0.99930891 0.49322954;
++	-6.27314279 -0.00042849 0.00026251 7.27271430 0.99869107 0.99930900 0.49322960;
++	-6.27314293 -0.00042843 0.00026247 7.27271450 0.99869125 0.99930910 0.49322964;
++	-6.27314307 -0.00042837 0.00026244 7.27271470 0.99869144 0.99930920 0.49322967;
++	-6.27314321 -0.00042831 0.00026240 7.27271491 0.99869162 0.99930929 0.49322963;
++	-6.27314336 -0.00042825 0.00026236 7.27271511 0.99869180 0.99930939 0.49322972;
++	-6.27314350 -0.00042819 0.00026233 7.27271531 0.99869198 0.99930948 0.49322962;
++	-6.27314364 -0.00042813 0.00026229 7.27271551 0.99869216 0.99930958 0.49322977;
++	-6.27314378 -0.00042807 0.00026226 7.27271571 0.99869234 0.99930967 0.49322982;
++	-6.27314392 -0.00042801 0.00026222 7.27271591 0.99869252 0.99930977 0.49322974;
++	-6.27314406 -0.00042795 0.00026218 7.27271611 0.99869270 0.99930986 0.49322983;
++	-6.27314421 -0.00042789 0.00026215 7.27271631 0.99869288 0.99930996 0.49322981;
++	-6.27314435 -0.00042783 0.00026211 7.27271651 0.99869306 0.99931005 0.49322987;
++	-6.27314449 -0.00042778 0.00026207 7.27271671 0.99869325 0.99931015 0.49322991;
++	-6.27314463 -0.00042772 0.00026204 7.27271691 0.99869343 0.99931025 0.49322985;
++	-6.27314477 -0.00042766 0.00026200 7.27271711 0.99869361 0.99931034 0.49322989;
++	-6.27314491 -0.00042760 0.00026197 7.27271731 0.99869379 0.99931044 0.49322995;
++	-6.27314505 -0.00042754 0.00026193 7.27271752 0.99869397 0.99931053 0.49322998;
++	-6.27314520 -0.00042748 0.00026189 7.27271772 0.99869415 0.99931063 0.49322992;
++	-6.27314534 -0.00042742 0.00026186 7.27271792 0.99869433 0.99931072 0.49322999;
++	-6.27314548 -0.00042736 0.00026182 7.27271812 0.99869451 0.99931082 0.49323014;
++	-6.27314562 -0.00042730 0.00026178 7.27271832 0.99869469 0.99931091 0.49323001;
++	-6.27314576 -0.00042724 0.00026175 7.27271852 0.99869487 0.99931101 0.49323007;
++	-6.27314590 -0.00042719 0.00026171 7.27271872 0.99869505 0.99931110 0.49323010;
++	-6.27314604 -0.00042713 0.00026168 7.27271892 0.99869523 0.99931120 0.49323018;
++	-6.27314618 -0.00042707 0.00026164 7.27271912 0.99869541 0.99931129 0.49323018;
++	-6.27314633 -0.00042701 0.00026160 7.27271932 0.99869559 0.99931139 0.49323016;
++	-6.27314647 -0.00042695 0.00026157 7.27271952 0.99869577 0.99931148 0.49323007;
++	-6.27314661 -0.00042689 0.00026153 7.27271972 0.99869595 0.99931158 0.49323022;
++	-6.27314675 -0.00042683 0.00026150 7.27271992 0.99869613 0.99931167 0.49323025;
++	-6.27314689 -0.00042677 0.00026146 7.27272012 0.99869631 0.99931177 0.49323030;
++	-6.27314703 -0.00042671 0.00026142 7.27272032 0.99869649 0.99931186 0.49323027;
++	-6.27314717 -0.00042666 0.00026139 7.27272051 0.99869667 0.99931196 0.49323031;
++	-6.27314731 -0.00042660 0.00026135 7.27272071 0.99869685 0.99931205 0.49323029;
++	-6.27314745 -0.00042654 0.00026132 7.27272091 0.99869703 0.99931215 0.49323033;
++	-6.27314759 -0.00042648 0.00026128 7.27272111 0.99869721 0.99931224 0.49323043;
++	-6.27314773 -0.00042642 0.00026124 7.27272131 0.99869739 0.99931234 0.49323035;
++	-6.27314787 -0.00042636 0.00026121 7.27272151 0.99869757 0.99931243 0.49323032;
++	-6.27314801 -0.00042630 0.00026117 7.27272171 0.99869775 0.99931253 0.49323043;
++	-6.27314815 -0.00042624 0.00026114 7.27272191 0.99869792 0.99931262 0.49323038;
++	-6.27314830 -0.00042619 0.00026110 7.27272211 0.99869810 0.99931272 0.49323055;
++	-6.27314844 -0.00042613 0.00026106 7.27272231 0.99869828 0.99931281 0.49323047;
++	-6.27314858 -0.00042607 0.00026103 7.27272251 0.99869846 0.99931290 0.49323039;
++	-6.27314872 -0.00042601 0.00026099 7.27272271 0.99869864 0.99931300 0.49323039;
++	-6.27314886 -0.00042595 0.00026096 7.27272291 0.99869882 0.99931309 0.49323057;
++	-6.27314900 -0.00042589 0.00026092 7.27272310 0.99869900 0.99931319 0.49323051;
++	-6.27314914 -0.00042583 0.00026088 7.27272330 0.99869918 0.99931328 0.49323056;
++	-6.27314928 -0.00042578 0.00026085 7.27272350 0.99869936 0.99931338 0.49323064;
++	-6.27314942 -0.00042572 0.00026081 7.27272370 0.99869954 0.99931347 0.49323065;
++	-6.27314956 -0.00042566 0.00026078 7.27272390 0.99869972 0.99931357 0.49323065;
++	-6.27314970 -0.00042560 0.00026074 7.27272410 0.99869989 0.99931366 0.49323070;
++	-6.27314984 -0.00042554 0.00026070 7.27272430 0.99870007 0.99931375 0.49323062;
++	-6.27314998 -0.00042548 0.00026067 7.27272450 0.99870025 0.99931385 0.49323063;
++	-6.27315012 -0.00042542 0.00026063 7.27272469 0.99870043 0.99931394 0.49323075;
++	-6.27315026 -0.00042537 0.00026060 7.27272489 0.99870061 0.99931404 0.49323074;
++	-6.27315040 -0.00042531 0.00026056 7.27272509 0.99870079 0.99931413 0.49323081;
++	-6.27315054 -0.00042525 0.00026052 7.27272529 0.99870097 0.99931423 0.49323082;
++	-6.27315068 -0.00042519 0.00026049 7.27272549 0.99870115 0.99931432 0.49323079;
++	-6.27315082 -0.00042513 0.00026045 7.27272569 0.99870132 0.99931441 0.49323072;
++	-6.27315096 -0.00042507 0.00026042 7.27272588 0.99870150 0.99931451 0.49323088;
++	-6.27315110 -0.00042502 0.00026038 7.27272608 0.99870168 0.99931460 0.49323096;
++	-6.27315124 -0.00042496 0.00026035 7.27272628 0.99870186 0.99931470 0.49323088;
++	-6.27315138 -0.00042490 0.00026031 7.27272648 0.99870204 0.99931479 0.49323085;
++	-6.27315152 -0.00042484 0.00026027 7.27272668 0.99870222 0.99931489 0.49323089;
++	-6.27315165 -0.00042478 0.00026024 7.27272687 0.99870239 0.99931498 0.49323085;
++	-6.27315179 -0.00042472 0.00026020 7.27272707 0.99870257 0.99931507 0.49323101;
++	-6.27315193 -0.00042467 0.00026017 7.27272727 0.99870275 0.99931517 0.49323094;
++	-6.27315207 -0.00042461 0.00026013 7.27272747 0.99870293 0.99931526 0.49323104;
++	-6.27315221 -0.00042455 0.00026010 7.27272766 0.99870311 0.99931535 0.49323100;
++	-6.27315235 -0.00042449 0.00026006 7.27272786 0.99870328 0.99931545 0.49323105;
++	-6.27315249 -0.00042443 0.00026002 7.27272806 0.99870346 0.99931554 0.49323112;
++	-6.27315263 -0.00042437 0.00025999 7.27272826 0.99870364 0.99931564 0.49323100;
++	-6.27315277 -0.00042432 0.00025995 7.27272845 0.99870382 0.99931573 0.49323104;
++	-6.27315291 -0.00042426 0.00025992 7.27272865 0.99870399 0.99931582 0.49323113;
++	-6.27315305 -0.00042420 0.00025988 7.27272885 0.99870417 0.99931592 0.49323100;
++	-6.27315319 -0.00042414 0.00025985 7.27272905 0.99870435 0.99931601 0.49323118;
++	-6.27315333 -0.00042408 0.00025981 7.27272924 0.99870453 0.99931611 0.49323122;
++	-6.27315347 -0.00042403 0.00025978 7.27272944 0.99870470 0.99931620 0.49323123;
++	-6.27315360 -0.00042397 0.00025974 7.27272964 0.99870488 0.99931629 0.49323124;
++	-6.27315374 -0.00042391 0.00025970 7.27272983 0.99870506 0.99931639 0.49323127;
++	-6.27315388 -0.00042385 0.00025967 7.27273003 0.99870524 0.99931648 0.49323133;
++	-6.27315402 -0.00042379 0.00025963 7.27273023 0.99870541 0.99931657 0.49323140;
++	-6.27315416 -0.00042374 0.00025960 7.27273042 0.99870559 0.99931667 0.49323133;
++	-6.27315430 -0.00042368 0.00025956 7.27273062 0.99870577 0.99931676 0.49323138;
++	-6.27315444 -0.00042362 0.00025953 7.27273082 0.99870595 0.99931685 0.49323140;
++	-6.27315458 -0.00042356 0.00025949 7.27273101 0.99870612 0.99931695 0.49323145;
++	-6.27315472 -0.00042350 0.00025946 7.27273121 0.99870630 0.99931704 0.49323139;
++	-6.27315485 -0.00042345 0.00025942 7.27273141 0.99870648 0.99931713 0.49323136;
++	-6.27315499 -0.00042339 0.00025938 7.27273160 0.99870665 0.99931723 0.49323144;
++	-6.27315513 -0.00042333 0.00025935 7.27273180 0.99870683 0.99931732 0.49323141;
++	-6.27315527 -0.00042327 0.00025931 7.27273200 0.99870701 0.99931741 0.49323140;
++	-6.27315541 -0.00042321 0.00025928 7.27273219 0.99870719 0.99931751 0.49323155;
++	-6.27315555 -0.00042316 0.00025924 7.27273239 0.99870736 0.99931760 0.49323157;
++	-6.27315569 -0.00042310 0.00025921 7.27273259 0.99870754 0.99931769 0.49323161;
++	-6.27315582 -0.00042304 0.00025917 7.27273278 0.99870772 0.99931779 0.49323157;
++	-6.27315596 -0.00042298 0.00025914 7.27273298 0.99870789 0.99931788 0.49323162;
++	-6.27315610 -0.00042292 0.00025910 7.27273318 0.99870807 0.99931797 0.49323164;
++	-6.27315624 -0.00042287 0.00025907 7.27273337 0.99870825 0.99931807 0.49323172;
++	-6.27315638 -0.00042281 0.00025903 7.27273357 0.99870842 0.99931816 0.49323163;
++	-6.27315652 -0.00042275 0.00025899 7.27273376 0.99870860 0.99931825 0.49323158;
++	-6.27315665 -0.00042269 0.00025896 7.27273396 0.99870877 0.99931835 0.49323168;
++	-6.27315679 -0.00042264 0.00025892 7.27273416 0.99870895 0.99931844 0.49323175;
++	-6.27315693 -0.00042258 0.00025889 7.27273435 0.99870913 0.99931853 0.49323172;
++	-6.27315707 -0.00042252 0.00025885 7.27273455 0.99870930 0.99931863 0.49323175;
++	-6.27315721 -0.00042246 0.00025882 7.27273474 0.99870948 0.99931872 0.49323179;
++	-6.27315734 -0.00042241 0.00025878 7.27273494 0.99870966 0.99931881 0.49323178;
++	-6.27315748 -0.00042235 0.00025875 7.27273513 0.99870983 0.99931891 0.49323183;
++	-6.27315762 -0.00042229 0.00025871 7.27273533 0.99871001 0.99931900 0.49323180;
++	-6.27315776 -0.00042223 0.00025868 7.27273552 0.99871018 0.99931909 0.49323181;
++	-6.27315790 -0.00042218 0.00025864 7.27273572 0.99871036 0.99931918 0.49323188;
++	-6.27315803 -0.00042212 0.00025861 7.27273592 0.99871054 0.99931928 0.49323197;
++	-6.27315817 -0.00042206 0.00025857 7.27273611 0.99871071 0.99931937 0.49323190;
++	-6.27315831 -0.00042200 0.00025854 7.27273631 0.99871089 0.99931946 0.49323185;
++	-6.27315845 -0.00042194 0.00025850 7.27273650 0.99871106 0.99931956 0.49323199;
++	-6.27315858 -0.00042189 0.00025846 7.27273670 0.99871124 0.99931965 0.49323204;
++	-6.27315872 -0.00042183 0.00025843 7.27273689 0.99871141 0.99931974 0.49323191;
++	-6.27315886 -0.00042177 0.00025839 7.27273709 0.99871159 0.99931983 0.49323202;
++	-6.27315900 -0.00042171 0.00025836 7.27273728 0.99871177 0.99931993 0.49323199;
++	-6.27315913 -0.00042166 0.00025832 7.27273748 0.99871194 0.99932002 0.49323200;
++	-6.27315927 -0.00042160 0.00025829 7.27273767 0.99871212 0.99932011 0.49323212;
++	-6.27315941 -0.00042154 0.00025825 7.27273787 0.99871229 0.99932020 0.49323215;
++	-6.27315955 -0.00042149 0.00025822 7.27273806 0.99871247 0.99932030 0.49323211;
++	-6.27315968 -0.00042143 0.00025818 7.27273826 0.99871264 0.99932039 0.49323217;
++	-6.27315982 -0.00042137 0.00025815 7.27273845 0.99871282 0.99932048 0.49323219;
++	-6.27315996 -0.00042131 0.00025811 7.27273864 0.99871299 0.99932057 0.49323223;
++	-6.27316010 -0.00042126 0.00025808 7.27273884 0.99871317 0.99932067 0.49323224;
++	-6.27316023 -0.00042120 0.00025804 7.27273903 0.99871334 0.99932076 0.49323221;
++	-6.27316037 -0.00042114 0.00025801 7.27273923 0.99871352 0.99932085 0.49323224;
++	-6.27316051 -0.00042108 0.00025797 7.27273942 0.99871369 0.99932094 0.49323220;
++	-6.27316064 -0.00042103 0.00025794 7.27273962 0.99871387 0.99932104 0.49323229;
++	-6.27316078 -0.00042097 0.00025790 7.27273981 0.99871404 0.99932113 0.49323228;
++	-6.27316092 -0.00042091 0.00025787 7.27274001 0.99871422 0.99932122 0.49323228;
++	-6.27316105 -0.00042085 0.00025783 7.27274020 0.99871439 0.99932131 0.49323234;
++	-6.27316119 -0.00042080 0.00025780 7.27274039 0.99871457 0.99932141 0.49323243;
++	-6.27316133 -0.00042074 0.00025776 7.27274059 0.99871474 0.99932150 0.49323241;
++	-6.27316147 -0.00042068 0.00025773 7.27274078 0.99871492 0.99932159 0.49323242;
++	-6.27316160 -0.00042063 0.00025769 7.27274098 0.99871509 0.99932168 0.49323234;
++	-6.27316174 -0.00042057 0.00025766 7.27274117 0.99871527 0.99932177 0.49323243;
++	-6.27316188 -0.00042051 0.00025762 7.27274136 0.99871544 0.99932187 0.49323249;
++	-6.27316201 -0.00042045 0.00025759 7.27274156 0.99871562 0.99932196 0.49323249;
++	-6.27316215 -0.00042040 0.00025755 7.27274175 0.99871579 0.99932205 0.49323255;
++	-6.27316229 -0.00042034 0.00025752 7.27274195 0.99871597 0.99932214 0.49323261;
++	-6.27316242 -0.00042028 0.00025748 7.27274214 0.99871614 0.99932223 0.49323266;
++	-6.27316256 -0.00042023 0.00025745 7.27274233 0.99871631 0.99932233 0.49323261;
++	-6.27316270 -0.00042017 0.00025741 7.27274253 0.99871649 0.99932242 0.49323265;
++	-6.27316283 -0.00042011 0.00025738 7.27274272 0.99871666 0.99932251 0.49323261;
++	-6.27316297 -0.00042006 0.00025734 7.27274291 0.99871684 0.99932260 0.49323268;
++	-6.27316311 -0.00042000 0.00025731 7.27274311 0.99871701 0.99932269 0.49323261;
++	-6.27316324 -0.00041994 0.00025727 7.27274330 0.99871719 0.99932279 0.49323277;
++	-6.27316338 -0.00041988 0.00025724 7.27274349 0.99871736 0.99932288 0.49323278;
++	-6.27316351 -0.00041983 0.00025720 7.27274369 0.99871753 0.99932297 0.49323270;
++	-6.27316365 -0.00041977 0.00025717 7.27274388 0.99871771 0.99932306 0.49323262;
++	-6.27316379 -0.00041971 0.00025713 7.27274407 0.99871788 0.99932315 0.49323267;
++	-6.27316392 -0.00041966 0.00025710 7.27274427 0.99871806 0.99932325 0.49323282;
++	-6.27316406 -0.00041960 0.00025706 7.27274446 0.99871823 0.99932334 0.49323274;
++	-6.27316420 -0.00041954 0.00025703 7.27274465 0.99871840 0.99932343 0.49323276;
++	-6.27316433 -0.00041949 0.00025699 7.27274485 0.99871858 0.99932352 0.49323279;
++	-6.27316447 -0.00041943 0.00025696 7.27274504 0.99871875 0.99932361 0.49323285;
++	-6.27316460 -0.00041937 0.00025692 7.27274523 0.99871892 0.99932370 0.49323286;
++	-6.27316474 -0.00041932 0.00025689 7.27274542 0.99871910 0.99932380 0.49323296;
++	-6.27316488 -0.00041926 0.00025685 7.27274562 0.99871927 0.99932389 0.49323294;
++	-6.27316501 -0.00041920 0.00025682 7.27274581 0.99871944 0.99932398 0.49323292;
++	-6.27316515 -0.00041915 0.00025678 7.27274600 0.99871962 0.99932407 0.49323285;
++	-6.27316528 -0.00041909 0.00025675 7.27274619 0.99871979 0.99932416 0.49323292;
++	-6.27316542 -0.00041903 0.00025671 7.27274639 0.99871996 0.99932425 0.49323303;
++	-6.27316555 -0.00041898 0.00025668 7.27274658 0.99872014 0.99932435 0.49323312;
++	-6.27316569 -0.00041892 0.00025664 7.27274677 0.99872031 0.99932444 0.49323326;
++	-6.27316583 -0.00041886 0.00025661 7.27274696 0.99872048 0.99932453 0.49323308;
++	-6.27316596 -0.00041881 0.00025658 7.27274716 0.99872066 0.99932462 0.49323307;
++	-6.27316610 -0.00041875 0.00025654 7.27274735 0.99872083 0.99932471 0.49323314;
++	-6.27316623 -0.00041869 0.00025651 7.27274754 0.99872100 0.99932480 0.49323312;
++	-6.27316637 -0.00041864 0.00025647 7.27274773 0.99872118 0.99932489 0.49323320;
++	-6.27316650 -0.00041858 0.00025644 7.27274793 0.99872135 0.99932498 0.49323311;
++	-6.27316664 -0.00041852 0.00025640 7.27274812 0.99872152 0.99932508 0.49323311;
++	-6.27316677 -0.00041847 0.00025637 7.27274831 0.99872170 0.99932517 0.49323317;
++	-6.27316691 -0.00041841 0.00025633 7.27274850 0.99872187 0.99932526 0.49323323;
++	-6.27316705 -0.00041835 0.00025630 7.27274869 0.99872204 0.99932535 0.49323325;
++	-6.27316718 -0.00041830 0.00025626 7.27274888 0.99872221 0.99932544 0.49323334;
++	-6.27316732 -0.00041824 0.00025623 7.27274908 0.99872239 0.99932553 0.49323332;
++	-6.27316745 -0.00041818 0.00025619 7.27274927 0.99872256 0.99932562 0.49323331;
++	-6.27316759 -0.00041813 0.00025616 7.27274946 0.99872273 0.99932571 0.49323331;
++	-6.27316772 -0.00041807 0.00025612 7.27274965 0.99872290 0.99932581 0.49323346;
++	-6.27316786 -0.00041801 0.00025609 7.27274984 0.99872308 0.99932590 0.49323331;
++	-6.27316799 -0.00041796 0.00025606 7.27275003 0.99872325 0.99932599 0.49323339;
++	-6.27316813 -0.00041790 0.00025602 7.27275023 0.99872342 0.99932608 0.49323343;
++	-6.27316826 -0.00041784 0.00025599 7.27275042 0.99872359 0.99932617 0.49323337;
++	-6.27316840 -0.00041779 0.00025595 7.27275061 0.99872377 0.99932626 0.49323342;
++	-6.27316853 -0.00041773 0.00025592 7.27275080 0.99872394 0.99932635 0.49323347;
++	-6.27316867 -0.00041768 0.00025588 7.27275099 0.99872411 0.99932644 0.49323353;
++	-6.27316880 -0.00041762 0.00025585 7.27275118 0.99872428 0.99932653 0.49323349;
++	-6.27316894 -0.00041756 0.00025581 7.27275137 0.99872446 0.99932662 0.49323358;
++	-6.27316907 -0.00041751 0.00025578 7.27275157 0.99872463 0.99932671 0.49323354;
++	-6.27316921 -0.00041745 0.00025574 7.27275176 0.99872480 0.99932681 0.49323350;
++	-6.27316934 -0.00041739 0.00025571 7.27275195 0.99872497 0.99932690 0.49323356;
++	-6.27316948 -0.00041734 0.00025568 7.27275214 0.99872514 0.99932699 0.49323355;
++	-6.27316961 -0.00041728 0.00025564 7.27275233 0.99872532 0.99932708 0.49323359;
++	-6.27316974 -0.00041722 0.00025561 7.27275252 0.99872549 0.99932717 0.49323360;
++	-6.27316988 -0.00041717 0.00025557 7.27275271 0.99872566 0.99932726 0.49323362;
++	-6.27317001 -0.00041711 0.00025554 7.27275290 0.99872583 0.99932735 0.49323369;
++	-6.27317015 -0.00041706 0.00025550 7.27275309 0.99872600 0.99932744 0.49323369;
++	-6.27317028 -0.00041700 0.00025547 7.27275328 0.99872617 0.99932753 0.49323368;
++	-6.27317042 -0.00041694 0.00025543 7.27275347 0.99872635 0.99932762 0.49323375;
++	-6.27317055 -0.00041689 0.00025540 7.27275366 0.99872652 0.99932771 0.49323378;
++	-6.27317069 -0.00041683 0.00025537 7.27275385 0.99872669 0.99932780 0.49323373;
++	-6.27317082 -0.00041678 0.00025533 7.27275405 0.99872686 0.99932789 0.49323370;
++	-6.27317095 -0.00041672 0.00025530 7.27275424 0.99872703 0.99932798 0.49323379;
++	-6.27317109 -0.00041666 0.00025526 7.27275443 0.99872720 0.99932807 0.49323375;
++	-6.27317122 -0.00041661 0.00025523 7.27275462 0.99872738 0.99932816 0.49323392;
++	-6.27317136 -0.00041655 0.00025519 7.27275481 0.99872755 0.99932826 0.49323391;
++	-6.27317149 -0.00041649 0.00025516 7.27275500 0.99872772 0.99932835 0.49323391;
++	-6.27317163 -0.00041644 0.00025512 7.27275519 0.99872789 0.99932844 0.49323388;
++	-6.27317176 -0.00041638 0.00025509 7.27275538 0.99872806 0.99932853 0.49323395;
++	-6.27317189 -0.00041633 0.00025506 7.27275557 0.99872823 0.99932862 0.49323385;
++	-6.27317203 -0.00041627 0.00025502 7.27275576 0.99872840 0.99932871 0.49323392;
++	-6.27317216 -0.00041621 0.00025499 7.27275595 0.99872857 0.99932880 0.49323402;
++	-6.27317230 -0.00041616 0.00025495 7.27275614 0.99872874 0.99932889 0.49323405;
++	-6.27317243 -0.00041610 0.00025492 7.27275633 0.99872892 0.99932898 0.49323405;
++	-6.27317256 -0.00041605 0.00025488 7.27275652 0.99872909 0.99932907 0.49323408;
++	-6.27317270 -0.00041599 0.00025485 7.27275671 0.99872926 0.99932916 0.49323410;
++	-6.27317283 -0.00041594 0.00025482 7.27275690 0.99872943 0.99932925 0.49323410;
++	-6.27317297 -0.00041588 0.00025478 7.27275709 0.99872960 0.99932934 0.49323416;
++	-6.27317310 -0.00041582 0.00025475 7.27275728 0.99872977 0.99932943 0.49323413;
++	-6.27317323 -0.00041577 0.00025471 7.27275746 0.99872994 0.99932952 0.49323409;
++	-6.27317337 -0.00041571 0.00025468 7.27275765 0.99873011 0.99932961 0.49323425;
++	-6.27317350 -0.00041566 0.00025465 7.27275784 0.99873028 0.99932970 0.49323426;
++	-6.27317363 -0.00041560 0.00025461 7.27275803 0.99873045 0.99932979 0.49323421;
++	-6.27317377 -0.00041554 0.00025458 7.27275822 0.99873062 0.99932988 0.49323430;
++	-6.27317390 -0.00041549 0.00025454 7.27275841 0.99873079 0.99932997 0.49323422;
++	-6.27317403 -0.00041543 0.00025451 7.27275860 0.99873096 0.99933006 0.49323429;
++	-6.27317417 -0.00041538 0.00025447 7.27275879 0.99873113 0.99933015 0.49323420;
++	-6.27317430 -0.00041532 0.00025444 7.27275898 0.99873130 0.99933024 0.49323427;
++	-6.27317443 -0.00041527 0.00025441 7.27275917 0.99873147 0.99933033 0.49323431;
++	-6.27317457 -0.00041521 0.00025437 7.27275936 0.99873164 0.99933042 0.49323443;
++	-6.27317470 -0.00041515 0.00025434 7.27275955 0.99873181 0.99933051 0.49323428;
++	-6.27317483 -0.00041510 0.00025430 7.27275974 0.99873198 0.99933060 0.49323443;
++	-6.27317497 -0.00041504 0.00025427 7.27275992 0.99873215 0.99933069 0.49323437;
++	-6.27317510 -0.00041499 0.00025424 7.27276011 0.99873232 0.99933078 0.49323454;
++	-6.27317523 -0.00041493 0.00025420 7.27276030 0.99873249 0.99933087 0.49323446;
++	-6.27317537 -0.00041488 0.00025417 7.27276049 0.99873266 0.99933096 0.49323436;
++	-6.27317550 -0.00041482 0.00025413 7.27276068 0.99873283 0.99933105 0.49323455;
++	-6.27317563 -0.00041476 0.00025410 7.27276087 0.99873300 0.99933114 0.49323443;
++	-6.27317577 -0.00041471 0.00025406 7.27276106 0.99873317 0.99933123 0.49323444;
++	-6.27317590 -0.00041465 0.00025403 7.27276124 0.99873334 0.99933132 0.49323452;
++	-6.27317603 -0.00041460 0.00025400 7.27276143 0.99873351 0.99933140 0.49323465;
++	-6.27317616 -0.00041454 0.00025396 7.27276162 0.99873368 0.99933149 0.49323452;
++	-6.27317630 -0.00041449 0.00025393 7.27276181 0.99873385 0.99933158 0.49323459;
++	-6.27317643 -0.00041443 0.00025389 7.27276200 0.99873402 0.99933167 0.49323462;
++	-6.27317656 -0.00041438 0.00025386 7.27276219 0.99873419 0.99933176 0.49323457;
++	-6.27317670 -0.00041432 0.00025383 7.27276237 0.99873436 0.99933185 0.49323468;
++	-6.27317683 -0.00041427 0.00025379 7.27276256 0.99873453 0.99933194 0.49323479;
++	-6.27317696 -0.00041421 0.00025376 7.27276275 0.99873470 0.99933203 0.49323481;
++	-6.27317709 -0.00041415 0.00025372 7.27276294 0.99873487 0.99933212 0.49323465;
++	-6.27317723 -0.00041410 0.00025369 7.27276313 0.99873504 0.99933221 0.49323467;
++	-6.27317736 -0.00041404 0.00025366 7.27276332 0.99873521 0.99933230 0.49323474;
++	-6.27317749 -0.00041399 0.00025362 7.27276350 0.99873538 0.99933239 0.49323475;
++	-6.27317762 -0.00041393 0.00025359 7.27276369 0.99873555 0.99933248 0.49323489;
++	-6.27317776 -0.00041388 0.00025355 7.27276388 0.99873572 0.99933257 0.49323478;
++	-6.27317789 -0.00041382 0.00025352 7.27276407 0.99873588 0.99933266 0.49323490;
++	-6.27317802 -0.00041377 0.00025349 7.27276425 0.99873605 0.99933275 0.49323500;
++	-6.27317815 -0.00041371 0.00025345 7.27276444 0.99873622 0.99933283 0.49323486;
++	-6.27317829 -0.00041366 0.00025342 7.27276463 0.99873639 0.99933292 0.49323491;
++	-6.27317842 -0.00041360 0.00025339 7.27276482 0.99873656 0.99933301 0.49323473;
++	-6.27317855 -0.00041355 0.00025335 7.27276500 0.99873673 0.99933310 0.49323495;
++	-6.27317868 -0.00041349 0.00025332 7.27276519 0.99873690 0.99933319 0.49323495;
++	-6.27317882 -0.00041344 0.00025328 7.27276538 0.99873707 0.99933328 0.49323487;
++	-6.27317895 -0.00041338 0.00025325 7.27276557 0.99873724 0.99933337 0.49323500;
++	-6.27317908 -0.00041333 0.00025322 7.27276575 0.99873740 0.99933346 0.49323493;
++	-6.27317921 -0.00041327 0.00025318 7.27276594 0.99873757 0.99933355 0.49323497;
++	-6.27317934 -0.00041321 0.00025315 7.27276613 0.99873774 0.99933364 0.49323507;
++	-6.27317948 -0.00041316 0.00025311 7.27276632 0.99873791 0.99933373 0.49323512;
++	-6.27317961 -0.00041310 0.00025308 7.27276650 0.99873808 0.99933381 0.49323500;
++	-6.27317974 -0.00041305 0.00025305 7.27276669 0.99873825 0.99933390 0.49323510;
++	-6.27317987 -0.00041299 0.00025301 7.27276688 0.99873842 0.99933399 0.49323520;
++	-6.27318000 -0.00041294 0.00025298 7.27276706 0.99873858 0.99933408 0.49323515;
++	-6.27318014 -0.00041288 0.00025295 7.27276725 0.99873875 0.99933417 0.49323523;
++	-6.27318027 -0.00041283 0.00025291 7.27276744 0.99873892 0.99933426 0.49323516;
++	-6.27318040 -0.00041277 0.00025288 7.27276762 0.99873909 0.99933435 0.49323517;
++	-6.27318053 -0.00041272 0.00025284 7.27276781 0.99873926 0.99933444 0.49323519;
++	-6.27318066 -0.00041266 0.00025281 7.27276800 0.99873942 0.99933453 0.49323515;
++	-6.27318079 -0.00041261 0.00025278 7.27276818 0.99873959 0.99933461 0.49323538;
++	-6.27318093 -0.00041255 0.00025274 7.27276837 0.99873976 0.99933470 0.49323529;
++	-6.27318106 -0.00041250 0.00025271 7.27276856 0.99873993 0.99933479 0.49323537;
++	-6.27318119 -0.00041244 0.00025268 7.27276874 0.99874010 0.99933488 0.49323534;
++	-6.27318132 -0.00041239 0.00025264 7.27276893 0.99874026 0.99933497 0.49323537;
++	-6.27318145 -0.00041233 0.00025261 7.27276912 0.99874043 0.99933506 0.49323540;
++	-6.27318158 -0.00041228 0.00025258 7.27276930 0.99874060 0.99933515 0.49323539;
++	-6.27318171 -0.00041222 0.00025254 7.27276949 0.99874077 0.99933523 0.49323536;
++	-6.27318185 -0.00041217 0.00025251 7.27276968 0.99874094 0.99933532 0.49323541;
++	-6.27318198 -0.00041211 0.00025247 7.27276986 0.99874110 0.99933541 0.49323529;
++	-6.27318211 -0.00041206 0.00025244 7.27277005 0.99874127 0.99933550 0.49323554;
++	-6.27318224 -0.00041200 0.00025241 7.27277023 0.99874144 0.99933559 0.49323556;
++	-6.27318237 -0.00041195 0.00025237 7.27277042 0.99874161 0.99933568 0.49323548;
++	-6.27318250 -0.00041190 0.00025234 7.27277061 0.99874177 0.99933577 0.49323555;
++	-6.27318263 -0.00041184 0.00025231 7.27277079 0.99874194 0.99933585 0.49323555;
++	-6.27318276 -0.00041179 0.00025227 7.27277098 0.99874211 0.99933594 0.49323566;
++	-6.27318290 -0.00041173 0.00025224 7.27277117 0.99874228 0.99933603 0.49323552;
++	-6.27318303 -0.00041168 0.00025221 7.27277135 0.99874244 0.99933612 0.49323561;
++	-6.27318316 -0.00041162 0.00025217 7.27277154 0.99874261 0.99933621 0.49323566;
++	-6.27318329 -0.00041157 0.00025214 7.27277172 0.99874278 0.99933630 0.49323555;
++	-6.27318342 -0.00041151 0.00025210 7.27277191 0.99874294 0.99933638 0.49323560;
++	-6.27318355 -0.00041146 0.00025207 7.27277209 0.99874311 0.99933647 0.49323570;
++	-6.27318368 -0.00041140 0.00025204 7.27277228 0.99874328 0.99933656 0.49323566;
++	-6.27318381 -0.00041135 0.00025200 7.27277246 0.99874345 0.99933665 0.49323580;
++	-6.27318394 -0.00041129 0.00025197 7.27277265 0.99874361 0.99933674 0.49323573;
++	-6.27318407 -0.00041124 0.00025194 7.27277284 0.99874378 0.99933682 0.49323588;
++	-6.27318420 -0.00041118 0.00025190 7.27277302 0.99874395 0.99933691 0.49323574;
++	-6.27318434 -0.00041113 0.00025187 7.27277321 0.99874411 0.99933700 0.49323584;
++	-6.27318447 -0.00041107 0.00025184 7.27277339 0.99874428 0.99933709 0.49323574;
++	-6.27318460 -0.00041102 0.00025180 7.27277358 0.99874445 0.99933718 0.49323586;
++	-6.27318473 -0.00041097 0.00025177 7.27277376 0.99874461 0.99933726 0.49323593;
++	-6.27318486 -0.00041091 0.00025174 7.27277395 0.99874478 0.99933735 0.49323592;
++	-6.27318499 -0.00041086 0.00025170 7.27277413 0.99874495 0.99933744 0.49323598;
++	-6.27318512 -0.00041080 0.00025167 7.27277432 0.99874511 0.99933753 0.49323589;
++	-6.27318525 -0.00041075 0.00025164 7.27277450 0.99874528 0.99933762 0.49323587;
++	-6.27318538 -0.00041069 0.00025160 7.27277469 0.99874545 0.99933770 0.49323605;
++	-6.27318551 -0.00041064 0.00025157 7.27277487 0.99874561 0.99933779 0.49323594;
++	-6.27318564 -0.00041058 0.00025154 7.27277506 0.99874578 0.99933788 0.49323599;
++	-6.27318577 -0.00041053 0.00025150 7.27277524 0.99874595 0.99933797 0.49323604;
++	-6.27318590 -0.00041048 0.00025147 7.27277543 0.99874611 0.99933806 0.49323602;
++	-6.27318603 -0.00041042 0.00025144 7.27277561 0.99874628 0.99933814 0.49323601;
++	-6.27318616 -0.00041037 0.00025140 7.27277580 0.99874645 0.99933823 0.49323601;
++	-6.27318629 -0.00041031 0.00025137 7.27277598 0.99874661 0.99933832 0.49323608;
++	-6.27318642 -0.00041026 0.00025134 7.27277616 0.99874678 0.99933841 0.49323616;
++	-6.27318655 -0.00041020 0.00025130 7.27277635 0.99874694 0.99933849 0.49323617;
++	-6.27318668 -0.00041015 0.00025127 7.27277653 0.99874711 0.99933858 0.49323615;
++	-6.27318681 -0.00041009 0.00025124 7.27277672 0.99874728 0.99933867 0.49323614;
++	-6.27318694 -0.00041004 0.00025120 7.27277690 0.99874744 0.99933876 0.49323615;
++	-6.27318707 -0.00040999 0.00025117 7.27277709 0.99874761 0.99933884 0.49323610;
++	-6.27318720 -0.00040993 0.00025114 7.27277727 0.99874777 0.99933893 0.49323628;
++	-6.27318733 -0.00040988 0.00025110 7.27277746 0.99874794 0.99933902 0.49323634;
++	-6.27318746 -0.00040982 0.00025107 7.27277764 0.99874811 0.99933911 0.49323627;
++	-6.27318759 -0.00040977 0.00025104 7.27277782 0.99874827 0.99933919 0.49323622;
++	-6.27318772 -0.00040971 0.00025100 7.27277801 0.99874844 0.99933928 0.49323631;
++	-6.27318785 -0.00040966 0.00025097 7.27277819 0.99874860 0.99933937 0.49323628;
++	-6.27318798 -0.00040961 0.00025094 7.27277838 0.99874877 0.99933946 0.49323627;
++	-6.27318811 -0.00040955 0.00025090 7.27277856 0.99874893 0.99933954 0.49323637;
++	-6.27318824 -0.00040950 0.00025087 7.27277874 0.99874910 0.99933963 0.49323632;
++	-6.27318837 -0.00040944 0.00025084 7.27277893 0.99874927 0.99933972 0.49323640;
++	-6.27318850 -0.00040939 0.00025080 7.27277911 0.99874943 0.99933981 0.49323651;
++	-6.27318863 -0.00040934 0.00025077 7.27277929 0.99874960 0.99933989 0.49323644;
++	-6.27318876 -0.00040928 0.00025074 7.27277948 0.99874976 0.99933998 0.49323637;
++	-6.27318889 -0.00040923 0.00025070 7.27277966 0.99874993 0.99934007 0.49323647;
++	-6.27318902 -0.00040917 0.00025067 7.27277985 0.99875009 0.99934016 0.49323644;
++	-6.27318915 -0.00040912 0.00025064 7.27278003 0.99875026 0.99934024 0.49323643;
++	-6.27318928 -0.00040906 0.00025060 7.27278021 0.99875042 0.99934033 0.49323648;
++	-6.27318941 -0.00040901 0.00025057 7.27278040 0.99875059 0.99934042 0.49323655;
++	-6.27318954 -0.00040896 0.00025054 7.27278058 0.99875075 0.99934050 0.49323657;
++	-6.27318967 -0.00040890 0.00025051 7.27278076 0.99875092 0.99934059 0.49323664;
++	-6.27318979 -0.00040885 0.00025047 7.27278095 0.99875108 0.99934068 0.49323657;
++	-6.27318992 -0.00040879 0.00025044 7.27278113 0.99875125 0.99934077 0.49323666;
++	-6.27319005 -0.00040874 0.00025041 7.27278131 0.99875141 0.99934085 0.49323663;
++	-6.27319018 -0.00040869 0.00025037 7.27278150 0.99875158 0.99934094 0.49323672;
++	-6.27319031 -0.00040863 0.00025034 7.27278168 0.99875174 0.99934103 0.49323665;
++	-6.27319044 -0.00040858 0.00025031 7.27278186 0.99875191 0.99934111 0.49323670;
++	-6.27319057 -0.00040852 0.00025027 7.27278204 0.99875207 0.99934120 0.49323671;
++	-6.27319070 -0.00040847 0.00025024 7.27278223 0.99875224 0.99934129 0.49323673;
++	-6.27319083 -0.00040842 0.00025021 7.27278241 0.99875240 0.99934137 0.49323684;
++	-6.27319096 -0.00040836 0.00025017 7.27278259 0.99875257 0.99934146 0.49323687;
++	-6.27319109 -0.00040831 0.00025014 7.27278278 0.99875273 0.99934155 0.49323685;
++	-6.27319121 -0.00040826 0.00025011 7.27278296 0.99875290 0.99934164 0.49323688;
++	-6.27319134 -0.00040820 0.00025008 7.27278314 0.99875306 0.99934172 0.49323675;
++	-6.27319147 -0.00040815 0.00025004 7.27278332 0.99875322 0.99934181 0.49323678;
++	-6.27319160 -0.00040809 0.00025001 7.27278351 0.99875339 0.99934190 0.49323687;
++	-6.27319173 -0.00040804 0.00024998 7.27278369 0.99875355 0.99934198 0.49323686;
++	-6.27319186 -0.00040799 0.00024994 7.27278387 0.99875372 0.99934207 0.49323698;
++	-6.27319199 -0.00040793 0.00024991 7.27278405 0.99875388 0.99934216 0.49323692;
++	-6.27319212 -0.00040788 0.00024988 7.27278424 0.99875405 0.99934224 0.49323708;
++	-6.27319224 -0.00040783 0.00024985 7.27278442 0.99875421 0.99934233 0.49323704;
++	-6.27319237 -0.00040777 0.00024981 7.27278460 0.99875437 0.99934242 0.49323700;
++	-6.27319250 -0.00040772 0.00024978 7.27278478 0.99875454 0.99934250 0.49323693;
++	-6.27319263 -0.00040766 0.00024975 7.27278497 0.99875470 0.99934259 0.49323702;
++	-6.27319276 -0.00040761 0.00024971 7.27278515 0.99875487 0.99934268 0.49323716;
++	-6.27319289 -0.00040756 0.00024968 7.27278533 0.99875503 0.99934276 0.49323703;
++	-6.27319302 -0.00040750 0.00024965 7.27278551 0.99875519 0.99934285 0.49323706;
++	-6.27319314 -0.00040745 0.00024961 7.27278569 0.99875536 0.99934294 0.49323706;
++	-6.27319327 -0.00040740 0.00024958 7.27278588 0.99875552 0.99934302 0.49323714;
++	-6.27319340 -0.00040734 0.00024955 7.27278606 0.99875569 0.99934311 0.49323706;
++	-6.27319353 -0.00040729 0.00024952 7.27278624 0.99875585 0.99934320 0.49323708;
++	-6.27319366 -0.00040724 0.00024948 7.27278642 0.99875601 0.99934328 0.49323729;
++	-6.27319379 -0.00040718 0.00024945 7.27278660 0.99875618 0.99934337 0.49323724;
++	-6.27319391 -0.00040713 0.00024942 7.27278679 0.99875634 0.99934345 0.49323721;
++	-6.27319404 -0.00040707 0.00024938 7.27278697 0.99875650 0.99934354 0.49323728;
++	-6.27319417 -0.00040702 0.00024935 7.27278715 0.99875667 0.99934363 0.49323732;
++	-6.27319430 -0.00040697 0.00024932 7.27278733 0.99875683 0.99934371 0.49323735;
++	-6.27319443 -0.00040691 0.00024929 7.27278751 0.99875700 0.99934380 0.49323736;
++	-6.27319455 -0.00040686 0.00024925 7.27278769 0.99875716 0.99934389 0.49323725;
++	-6.27319468 -0.00040681 0.00024922 7.27278788 0.99875732 0.99934397 0.49323738;
++	-6.27319481 -0.00040675 0.00024919 7.27278806 0.99875749 0.99934406 0.49323735;
++	-6.27319494 -0.00040670 0.00024916 7.27278824 0.99875765 0.99934414 0.49323731;
++	-6.27319507 -0.00040665 0.00024912 7.27278842 0.99875781 0.99934423 0.49323743;
++	-6.27319519 -0.00040659 0.00024909 7.27278860 0.99875798 0.99934432 0.49323750;
++	-6.27319532 -0.00040654 0.00024906 7.27278878 0.99875814 0.99934440 0.49323738;
++	-6.27319545 -0.00040649 0.00024902 7.27278896 0.99875830 0.99934449 0.49323751;
++	-6.27319558 -0.00040643 0.00024899 7.27278914 0.99875846 0.99934457 0.49323752;
++	-6.27319571 -0.00040638 0.00024896 7.27278933 0.99875863 0.99934466 0.49323741;
++	-6.27319583 -0.00040633 0.00024893 7.27278951 0.99875879 0.99934475 0.49323749;
++	-6.27319596 -0.00040627 0.00024889 7.27278969 0.99875895 0.99934483 0.49323755;
++	-6.27319609 -0.00040622 0.00024886 7.27278987 0.99875912 0.99934492 0.49323762;
++	-6.27319622 -0.00040617 0.00024883 7.27279005 0.99875928 0.99934501 0.49323759;
++	-6.27319634 -0.00040611 0.00024880 7.27279023 0.99875944 0.99934509 0.49323760;
++	-6.27319647 -0.00040606 0.00024876 7.27279041 0.99875960 0.99934518 0.49323757;
++	-6.27319660 -0.00040601 0.00024873 7.27279059 0.99875977 0.99934526 0.49323761;
++	-6.27319673 -0.00040595 0.00024870 7.27279077 0.99875993 0.99934535 0.49323762;
++	-6.27319685 -0.00040590 0.00024867 7.27279095 0.99876009 0.99934543 0.49323771;
++	-6.27319698 -0.00040585 0.00024863 7.27279113 0.99876026 0.99934552 0.49323775;
++	-6.27319711 -0.00040579 0.00024860 7.27279131 0.99876042 0.99934561 0.49323777;
++	-6.27319724 -0.00040574 0.00024857 7.27279149 0.99876058 0.99934569 0.49323761;
++	-6.27319736 -0.00040569 0.00024853 7.27279168 0.99876074 0.99934578 0.49323772;
++	-6.27319749 -0.00040563 0.00024850 7.27279186 0.99876091 0.99934586 0.49323767;
++	-6.27319762 -0.00040558 0.00024847 7.27279204 0.99876107 0.99934595 0.49323779;
++	-6.27319774 -0.00040553 0.00024844 7.27279222 0.99876123 0.99934603 0.49323782;
++	-6.27319787 -0.00040547 0.00024840 7.27279240 0.99876139 0.99934612 0.49323776;
++	-6.27319800 -0.00040542 0.00024837 7.27279258 0.99876156 0.99934621 0.49323782;
++	-6.27319813 -0.00040537 0.00024834 7.27279276 0.99876172 0.99934629 0.49323787;
++	-6.27319825 -0.00040532 0.00024831 7.27279294 0.99876188 0.99934638 0.49323783;
++	-6.27319838 -0.00040526 0.00024827 7.27279312 0.99876204 0.99934646 0.49323795;
++	-6.27319851 -0.00040521 0.00024824 7.27279330 0.99876220 0.99934655 0.49323788;
++	-6.27319863 -0.00040516 0.00024821 7.27279348 0.99876237 0.99934663 0.49323798;
++	-6.27319876 -0.00040510 0.00024818 7.27279366 0.99876253 0.99934672 0.49323799;
++	-6.27319889 -0.00040505 0.00024814 7.27279384 0.99876269 0.99934681 0.49323794;
++	-6.27319901 -0.00040500 0.00024811 7.27279402 0.99876285 0.99934689 0.49323812;
++	-6.27319914 -0.00040494 0.00024808 7.27279420 0.99876301 0.99934698 0.49323800;
++	-6.27319927 -0.00040489 0.00024805 7.27279438 0.99876318 0.99934706 0.49323799;
++	-6.27319939 -0.00040484 0.00024801 7.27279456 0.99876334 0.99934715 0.49323807;
++	-6.27319952 -0.00040479 0.00024798 7.27279474 0.99876350 0.99934723 0.49323804;
++	-6.27319965 -0.00040473 0.00024795 7.27279492 0.99876366 0.99934732 0.49323807;
++	-6.27319977 -0.00040468 0.00024792 7.27279510 0.99876382 0.99934740 0.49323796;
++	-6.27319990 -0.00040463 0.00024788 7.27279527 0.99876398 0.99934749 0.49323820;
++	-6.27320003 -0.00040457 0.00024785 7.27279545 0.99876415 0.99934757 0.49323815;
++	-6.27320015 -0.00040452 0.00024782 7.27279563 0.99876431 0.99934766 0.49323813;
++	-6.27320028 -0.00040447 0.00024779 7.27279581 0.99876447 0.99934774 0.49323819;
++	-6.27320041 -0.00040442 0.00024776 7.27279599 0.99876463 0.99934783 0.49323817;
++	-6.27320053 -0.00040436 0.00024772 7.27279617 0.99876479 0.99934791 0.49323809;
++	-6.27320066 -0.00040431 0.00024769 7.27279635 0.99876495 0.99934800 0.49323823;
++	-6.27320079 -0.00040426 0.00024766 7.27279653 0.99876511 0.99934809 0.49323818;
++	-6.27320091 -0.00040420 0.00024763 7.27279671 0.99876528 0.99934817 0.49323822;
++	-6.27320104 -0.00040415 0.00024759 7.27279689 0.99876544 0.99934826 0.49323828;
++	-6.27320117 -0.00040410 0.00024756 7.27279707 0.99876560 0.99934834 0.49323852;
++	-6.27320129 -0.00040405 0.00024753 7.27279725 0.99876576 0.99934843 0.49323826;
++	-6.27320142 -0.00040399 0.00024750 7.27279743 0.99876592 0.99934851 0.49323833;
++	-6.27320154 -0.00040394 0.00024746 7.27279760 0.99876608 0.99934860 0.49323832;
++	-6.27320167 -0.00040389 0.00024743 7.27279778 0.99876624 0.99934868 0.49323839;
++	-6.27320180 -0.00040383 0.00024740 7.27279796 0.99876640 0.99934877 0.49323831;
++	-6.27320192 -0.00040378 0.00024737 7.27279814 0.99876656 0.99934885 0.49323847;
++	-6.27320205 -0.00040373 0.00024733 7.27279832 0.99876673 0.99934894 0.49323846;
++	-6.27320217 -0.00040368 0.00024730 7.27279850 0.99876689 0.99934902 0.49323853;
++	-6.27320230 -0.00040362 0.00024727 7.27279868 0.99876705 0.99934911 0.49323849;
++	-6.27320243 -0.00040357 0.00024724 7.27279886 0.99876721 0.99934919 0.49323847;
++	-6.27320255 -0.00040352 0.00024721 7.27279903 0.99876737 0.99934928 0.49323843;
++	-6.27320268 -0.00040347 0.00024717 7.27279921 0.99876753 0.99934936 0.49323854;
++	-6.27320280 -0.00040341 0.00024714 7.27279939 0.99876769 0.99934944 0.49323862;
++	-6.27320293 -0.00040336 0.00024711 7.27279957 0.99876785 0.99934953 0.49323861;
++	-6.27320306 -0.00040331 0.00024708 7.27279975 0.99876801 0.99934961 0.49323862;
++	-6.27320318 -0.00040326 0.00024704 7.27279993 0.99876817 0.99934970 0.49323859;
++	-6.27320331 -0.00040320 0.00024701 7.27280010 0.99876833 0.99934978 0.49323864;
++	-6.27320343 -0.00040315 0.00024698 7.27280028 0.99876849 0.99934987 0.49323872;
++	-6.27320356 -0.00040310 0.00024695 7.27280046 0.99876865 0.99934995 0.49323853;
++	-6.27320368 -0.00040305 0.00024692 7.27280064 0.99876881 0.99935004 0.49323874;
++	-6.27320381 -0.00040299 0.00024688 7.27280082 0.99876897 0.99935012 0.49323866;
++	-6.27320394 -0.00040294 0.00024685 7.27280099 0.99876913 0.99935021 0.49323878;
++	-6.27320406 -0.00040289 0.00024682 7.27280117 0.99876929 0.99935029 0.49323872;
++	-6.27320419 -0.00040284 0.00024679 7.27280135 0.99876945 0.99935038 0.49323872;
++	-6.27320431 -0.00040278 0.00024676 7.27280153 0.99876961 0.99935046 0.49323876;
++	-6.27320444 -0.00040273 0.00024672 7.27280171 0.99876978 0.99935055 0.49323884;
++	-6.27320456 -0.00040268 0.00024669 7.27280188 0.99876994 0.99935063 0.49323875;
++	-6.27320469 -0.00040263 0.00024666 7.27280206 0.99877010 0.99935071 0.49323881;
++	-6.27320481 -0.00040257 0.00024663 7.27280224 0.99877026 0.99935080 0.49323883;
++	-6.27320494 -0.00040252 0.00024659 7.27280242 0.99877042 0.99935088 0.49323893;
++	-6.27320506 -0.00040247 0.00024656 7.27280259 0.99877058 0.99935097 0.49323897;
++	-6.27320519 -0.00040242 0.00024653 7.27280277 0.99877073 0.99935105 0.49323888;
++	-6.27320532 -0.00040237 0.00024650 7.27280295 0.99877089 0.99935114 0.49323894;
++	-6.27320544 -0.00040231 0.00024647 7.27280313 0.99877105 0.99935122 0.49323891;
++	-6.27320557 -0.00040226 0.00024643 7.27280330 0.99877121 0.99935130 0.49323883;
++	-6.27320569 -0.00040221 0.00024640 7.27280348 0.99877137 0.99935139 0.49323900;
++	-6.27320582 -0.00040216 0.00024637 7.27280366 0.99877153 0.99935147 0.49323894;
++	-6.27320594 -0.00040210 0.00024634 7.27280384 0.99877169 0.99935156 0.49323913;
++	-6.27320607 -0.00040205 0.00024631 7.27280401 0.99877185 0.99935164 0.49323892;
++	-6.27320619 -0.00040200 0.00024627 7.27280419 0.99877201 0.99935173 0.49323905;
++	-6.27320632 -0.00040195 0.00024624 7.27280437 0.99877217 0.99935181 0.49323908;
++	-6.27320644 -0.00040190 0.00024621 7.27280455 0.99877233 0.99935189 0.49323912;
++	-6.27320657 -0.00040184 0.00024618 7.27280472 0.99877249 0.99935198 0.49323907;
++	-6.27320669 -0.00040179 0.00024615 7.27280490 0.99877265 0.99935206 0.49323901;
++	-6.27320682 -0.00040174 0.00024611 7.27280508 0.99877281 0.99935215 0.49323923;
++	-6.27320694 -0.00040169 0.00024608 7.27280525 0.99877297 0.99935223 0.49323914;
++	-6.27320706 -0.00040163 0.00024605 7.27280543 0.99877313 0.99935231 0.49323921;
++	-6.27320719 -0.00040158 0.00024602 7.27280561 0.99877329 0.99935240 0.49323926;
++	-6.27320731 -0.00040153 0.00024599 7.27280578 0.99877345 0.99935248 0.49323926;
++	-6.27320744 -0.00040148 0.00024595 7.27280596 0.99877361 0.99935257 0.49323918;
++	-6.27320756 -0.00040143 0.00024592 7.27280614 0.99877376 0.99935265 0.49323936;
++	-6.27320769 -0.00040137 0.00024589 7.27280631 0.99877392 0.99935273 0.49323929;
++	-6.27320781 -0.00040132 0.00024586 7.27280649 0.99877408 0.99935282 0.49323934;
++	-6.27320794 -0.00040127 0.00024583 7.27280667 0.99877424 0.99935290 0.49323932;
++	-6.27320806 -0.00040122 0.00024580 7.27280684 0.99877440 0.99935299 0.49323931;
++	-6.27320819 -0.00040117 0.00024576 7.27280702 0.99877456 0.99935307 0.49323926;
++	-6.27320831 -0.00040111 0.00024573 7.27280720 0.99877472 0.99935315 0.49323938;
++	-6.27320843 -0.00040106 0.00024570 7.27280737 0.99877488 0.99935324 0.49323939;
++	-6.27320856 -0.00040101 0.00024567 7.27280755 0.99877504 0.99935332 0.49323934;
++	-6.27320868 -0.00040096 0.00024564 7.27280773 0.99877519 0.99935341 0.49323939;
++	-6.27320881 -0.00040091 0.00024560 7.27280790 0.99877535 0.99935349 0.49323943;
++	-6.27320893 -0.00040085 0.00024557 7.27280808 0.99877551 0.99935357 0.49323942;
++	-6.27320906 -0.00040080 0.00024554 7.27280825 0.99877567 0.99935366 0.49323947;
++	-6.27320918 -0.00040075 0.00024551 7.27280843 0.99877583 0.99935374 0.49323951;
++	-6.27320930 -0.00040070 0.00024548 7.27280861 0.99877599 0.99935382 0.49323953;
++	-6.27320943 -0.00040065 0.00024545 7.27280878 0.99877615 0.99935391 0.49323955;
++	-6.27320955 -0.00040059 0.00024541 7.27280896 0.99877630 0.99935399 0.49323962;
++	-6.27320968 -0.00040054 0.00024538 7.27280913 0.99877646 0.99935408 0.49323956;
++	-6.27320980 -0.00040049 0.00024535 7.27280931 0.99877662 0.99935416 0.49323962;
++	-6.27320993 -0.00040044 0.00024532 7.27280949 0.99877678 0.99935424 0.49323958;
++	-6.27321005 -0.00040039 0.00024529 7.27280966 0.99877694 0.99935433 0.49323965;
++	-6.27321017 -0.00040034 0.00024525 7.27280984 0.99877710 0.99935441 0.49323969;
++	-6.27321030 -0.00040028 0.00024522 7.27281001 0.99877725 0.99935449 0.49323976;
++	-6.27321042 -0.00040023 0.00024519 7.27281019 0.99877741 0.99935458 0.49323970;
++	-6.27321054 -0.00040018 0.00024516 7.27281036 0.99877757 0.99935466 0.49323974;
++	-6.27321067 -0.00040013 0.00024513 7.27281054 0.99877773 0.99935474 0.49323974;
++	-6.27321079 -0.00040008 0.00024510 7.27281072 0.99877789 0.99935483 0.49323966;
++	-6.27321092 -0.00040003 0.00024506 7.27281089 0.99877804 0.99935491 0.49323980;
++	-6.27321104 -0.00039997 0.00024503 7.27281107 0.99877820 0.99935499 0.49323982;
++	-6.27321116 -0.00039992 0.00024500 7.27281124 0.99877836 0.99935508 0.49323984;
++	-6.27321129 -0.00039987 0.00024497 7.27281142 0.99877852 0.99935516 0.49323979;
++	-6.27321141 -0.00039982 0.00024494 7.27281159 0.99877868 0.99935524 0.49323984;
++	-6.27321153 -0.00039977 0.00024491 7.27281177 0.99877883 0.99935533 0.49323987;
++	-6.27321166 -0.00039972 0.00024487 7.27281194 0.99877899 0.99935541 0.49323994;
++	-6.27321178 -0.00039966 0.00024484 7.27281212 0.99877915 0.99935549 0.49323989;
++	-6.27321191 -0.00039961 0.00024481 7.27281229 0.99877931 0.99935558 0.49323986;
++	-6.27321203 -0.00039956 0.00024478 7.27281247 0.99877946 0.99935566 0.49323995;
++	-6.27321215 -0.00039951 0.00024475 7.27281264 0.99877962 0.99935574 0.49323997;
++	-6.27321228 -0.00039946 0.00024472 7.27281282 0.99877978 0.99935583 0.49323996;
++	-6.27321240 -0.00039941 0.00024468 7.27281299 0.99877994 0.99935591 0.49323998;
++	-6.27321252 -0.00039935 0.00024465 7.27281317 0.99878009 0.99935599 0.49323996;
++	-6.27321265 -0.00039930 0.00024462 7.27281334 0.99878025 0.99935608 0.49324002;
++	-6.27321277 -0.00039925 0.00024459 7.27281352 0.99878041 0.99935616 0.49323998;
++	-6.27321289 -0.00039920 0.00024456 7.27281369 0.99878057 0.99935624 0.49324001;
++	-6.27321302 -0.00039915 0.00024453 7.27281387 0.99878072 0.99935632 0.49324014;
++	-6.27321314 -0.00039910 0.00024450 7.27281404 0.99878088 0.99935641 0.49324019;
++	-6.27321326 -0.00039905 0.00024446 7.27281422 0.99878104 0.99935649 0.49324012;
++	-6.27321338 -0.00039899 0.00024443 7.27281439 0.99878120 0.99935657 0.49324003;
++	-6.27321351 -0.00039894 0.00024440 7.27281457 0.99878135 0.99935666 0.49324013;
++	-6.27321363 -0.00039889 0.00024437 7.27281474 0.99878151 0.99935674 0.49324013;
++	-6.27321375 -0.00039884 0.00024434 7.27281491 0.99878167 0.99935682 0.49324017;
++	-6.27321388 -0.00039879 0.00024431 7.27281509 0.99878182 0.99935690 0.49324022;
++	-6.27321400 -0.00039874 0.00024427 7.27281526 0.99878198 0.99935699 0.49324015;
++	-6.27321412 -0.00039869 0.00024424 7.27281544 0.99878214 0.99935707 0.49324036;
++	-6.27321425 -0.00039863 0.00024421 7.27281561 0.99878229 0.99935715 0.49324026;
++	-6.27321437 -0.00039858 0.00024418 7.27281579 0.99878245 0.99935724 0.49324022;
++	-6.27321449 -0.00039853 0.00024415 7.27281596 0.99878261 0.99935732 0.49324031;
++	-6.27321461 -0.00039848 0.00024412 7.27281613 0.99878277 0.99935740 0.49324028;
++	-6.27321474 -0.00039843 0.00024409 7.27281631 0.99878292 0.99935748 0.49324030;
++	-6.27321486 -0.00039838 0.00024405 7.27281648 0.99878308 0.99935757 0.49324023;
++	-6.27321498 -0.00039833 0.00024402 7.27281666 0.99878324 0.99935765 0.49324037;
++	-6.27321511 -0.00039828 0.00024399 7.27281683 0.99878339 0.99935773 0.49324036;
++	-6.27321523 -0.00039822 0.00024396 7.27281700 0.99878355 0.99935782 0.49324044;
++	-6.27321535 -0.00039817 0.00024393 7.27281718 0.99878370 0.99935790 0.49324039;
++	-6.27321547 -0.00039812 0.00024390 7.27281735 0.99878386 0.99935798 0.49324042;
++	-6.27321560 -0.00039807 0.00024387 7.27281752 0.99878402 0.99935806 0.49324055;
++	-6.27321572 -0.00039802 0.00024383 7.27281770 0.99878417 0.99935815 0.49324042;
++	-6.27321584 -0.00039797 0.00024380 7.27281787 0.99878433 0.99935823 0.49324044;
++	-6.27321596 -0.00039792 0.00024377 7.27281805 0.99878449 0.99935831 0.49324041;
++	-6.27321609 -0.00039787 0.00024374 7.27281822 0.99878464 0.99935839 0.49324060;
++	-6.27321621 -0.00039781 0.00024371 7.27281839 0.99878480 0.99935848 0.49324044;
++	-6.27321633 -0.00039776 0.00024368 7.27281857 0.99878496 0.99935856 0.49324054;
++	-6.27321645 -0.00039771 0.00024365 7.27281874 0.99878511 0.99935864 0.49324046;
++	-6.27321658 -0.00039766 0.00024362 7.27281891 0.99878527 0.99935872 0.49324052;
++	-6.27321670 -0.00039761 0.00024358 7.27281909 0.99878542 0.99935881 0.49324063;
++	-6.27321682 -0.00039756 0.00024355 7.27281926 0.99878558 0.99935889 0.49324081;
++	-6.27321694 -0.00039751 0.00024352 7.27281943 0.99878574 0.99935897 0.49324067;
++	-6.27321706 -0.00039746 0.00024349 7.27281961 0.99878589 0.99935905 0.49324080;
++	-6.27321719 -0.00039741 0.00024346 7.27281978 0.99878605 0.99935913 0.49324070;
++	-6.27321731 -0.00039736 0.00024343 7.27281995 0.99878620 0.99935922 0.49324061;
++	-6.27321743 -0.00039730 0.00024340 7.27282013 0.99878636 0.99935930 0.49324072;
++	-6.27321755 -0.00039725 0.00024337 7.27282030 0.99878652 0.99935938 0.49324071;
++	-6.27321767 -0.00039720 0.00024333 7.27282047 0.99878667 0.99935946 0.49324076;
++	-6.27321780 -0.00039715 0.00024330 7.27282064 0.99878683 0.99935955 0.49324084;
++	-6.27321792 -0.00039710 0.00024327 7.27282082 0.99878698 0.99935963 0.49324086;
++	-6.27321804 -0.00039705 0.00024324 7.27282099 0.99878714 0.99935971 0.49324068;
++	-6.27321816 -0.00039700 0.00024321 7.27282116 0.99878729 0.99935979 0.49324078;
++	-6.27321828 -0.00039695 0.00024318 7.27282134 0.99878745 0.99935987 0.49324088;
++	-6.27321841 -0.00039690 0.00024315 7.27282151 0.99878760 0.99935996 0.49324077;
++	-6.27321853 -0.00039685 0.00024312 7.27282168 0.99878776 0.99936004 0.49324091;
++	-6.27321865 -0.00039680 0.00024308 7.27282185 0.99878792 0.99936012 0.49324089;
++	-6.27321877 -0.00039674 0.00024305 7.27282203 0.99878807 0.99936020 0.49324098;
++	-6.27321889 -0.00039669 0.00024302 7.27282220 0.99878823 0.99936028 0.49324089;
++	-6.27321901 -0.00039664 0.00024299 7.27282237 0.99878838 0.99936037 0.49324096;
++	-6.27321914 -0.00039659 0.00024296 7.27282254 0.99878854 0.99936045 0.49324110;
++	-6.27321926 -0.00039654 0.00024293 7.27282272 0.99878869 0.99936053 0.49324104;
++	-6.27321938 -0.00039649 0.00024290 7.27282289 0.99878885 0.99936061 0.49324115;
++	-6.27321950 -0.00039644 0.00024287 7.27282306 0.99878900 0.99936069 0.49324105;
++	-6.27321962 -0.00039639 0.00024284 7.27282323 0.99878916 0.99936078 0.49324108;
++	-6.27321974 -0.00039634 0.00024280 7.27282341 0.99878931 0.99936086 0.49324101;
++	-6.27321987 -0.00039629 0.00024277 7.27282358 0.99878947 0.99936094 0.49324102;
++	-6.27321999 -0.00039624 0.00024274 7.27282375 0.99878962 0.99936102 0.49324113;
++	-6.27322011 -0.00039619 0.00024271 7.27282392 0.99878978 0.99936110 0.49324108;
++	-6.27322023 -0.00039613 0.00024268 7.27282409 0.99878993 0.99936119 0.49324117;
++	-6.27322035 -0.00039608 0.00024265 7.27282427 0.99879009 0.99936127 0.49324125;
++	-6.27322047 -0.00039603 0.00024262 7.27282444 0.99879024 0.99936135 0.49324106;
++	-6.27322059 -0.00039598 0.00024259 7.27282461 0.99879040 0.99936143 0.49324119;
++	-6.27322071 -0.00039593 0.00024256 7.27282478 0.99879055 0.99936151 0.49324110;
++	-6.27322084 -0.00039588 0.00024252 7.27282495 0.99879071 0.99936159 0.49324126;
++	-6.27322096 -0.00039583 0.00024249 7.27282513 0.99879086 0.99936168 0.49324122;
++	-6.27322108 -0.00039578 0.00024246 7.27282530 0.99879102 0.99936176 0.49324129;
++	-6.27322120 -0.00039573 0.00024243 7.27282547 0.99879117 0.99936184 0.49324129;
++	-6.27322132 -0.00039568 0.00024240 7.27282564 0.99879133 0.99936192 0.49324124;
++	-6.27322144 -0.00039563 0.00024237 7.27282581 0.99879148 0.99936200 0.49324135;
++	-6.27322156 -0.00039558 0.00024234 7.27282598 0.99879163 0.99936208 0.49324138;
++	-6.27322168 -0.00039553 0.00024231 7.27282616 0.99879179 0.99936216 0.49324133;
++	-6.27322180 -0.00039548 0.00024228 7.27282633 0.99879194 0.99936225 0.49324140;
++	-6.27322193 -0.00039543 0.00024225 7.27282650 0.99879210 0.99936233 0.49324130;
++	-6.27322205 -0.00039538 0.00024221 7.27282667 0.99879225 0.99936241 0.49324149;
++	-6.27322217 -0.00039533 0.00024218 7.27282684 0.99879241 0.99936249 0.49324143;
++	-6.27322229 -0.00039528 0.00024215 7.27282701 0.99879256 0.99936257 0.49324140;
++	-6.27322241 -0.00039522 0.00024212 7.27282718 0.99879271 0.99936265 0.49324158;
++	-6.27322253 -0.00039517 0.00024209 7.27282736 0.99879287 0.99936273 0.49324147;
++	-6.27322265 -0.00039512 0.00024206 7.27282753 0.99879302 0.99936282 0.49324156;
++	-6.27322277 -0.00039507 0.00024203 7.27282770 0.99879318 0.99936290 0.49324153;
++	-6.27322289 -0.00039502 0.00024200 7.27282787 0.99879333 0.99936298 0.49324143;
++	-6.27322301 -0.00039497 0.00024197 7.27282804 0.99879349 0.99936306 0.49324134;
++	-6.27322313 -0.00039492 0.00024194 7.27282821 0.99879364 0.99936314 0.49324161;
++	-6.27322325 -0.00039487 0.00024191 7.27282838 0.99879379 0.99936322 0.49324161;
++	-6.27322337 -0.00039482 0.00024187 7.27282855 0.99879395 0.99936330 0.49324164;
++	-6.27322349 -0.00039477 0.00024184 7.27282872 0.99879410 0.99936339 0.49324176;
++	-6.27322362 -0.00039472 0.00024181 7.27282889 0.99879425 0.99936347 0.49324160;
++	-6.27322374 -0.00039467 0.00024178 7.27282907 0.99879441 0.99936355 0.49324157;
++	-6.27322386 -0.00039462 0.00024175 7.27282924 0.99879456 0.99936363 0.49324158;
++	-6.27322398 -0.00039457 0.00024172 7.27282941 0.99879472 0.99936371 0.49324166;
++	-6.27322410 -0.00039452 0.00024169 7.27282958 0.99879487 0.99936379 0.49324172;
++	-6.27322422 -0.00039447 0.00024166 7.27282975 0.99879502 0.99936387 0.49324177;
++	-6.27322434 -0.00039442 0.00024163 7.27282992 0.99879518 0.99936395 0.49324175;
++	-6.27322446 -0.00039437 0.00024160 7.27283009 0.99879533 0.99936403 0.49324173;
++	-6.27322458 -0.00039432 0.00024157 7.27283026 0.99879548 0.99936412 0.49324183;
++	-6.27322470 -0.00039427 0.00024154 7.27283043 0.99879564 0.99936420 0.49324189;
++	-6.27322482 -0.00039422 0.00024150 7.27283060 0.99879579 0.99936428 0.49324183;
++	-6.27322494 -0.00039417 0.00024147 7.27283077 0.99879594 0.99936436 0.49324176;
++	-6.27322506 -0.00039412 0.00024144 7.27283094 0.99879610 0.99936444 0.49324183;
++	-6.27322518 -0.00039407 0.00024141 7.27283111 0.99879625 0.99936452 0.49324186;
++	-6.27322530 -0.00039402 0.00024138 7.27283128 0.99879640 0.99936460 0.49324198;
++	-6.27322542 -0.00039397 0.00024135 7.27283145 0.99879656 0.99936468 0.49324210;
++	-6.27322554 -0.00039392 0.00024132 7.27283162 0.99879671 0.99936476 0.49324198;
++	-6.27322566 -0.00039387 0.00024129 7.27283179 0.99879686 0.99936484 0.49324205;
++	-6.27322578 -0.00039382 0.00024126 7.27283196 0.99879702 0.99936492 0.49324207;
++	-6.27322590 -0.00039377 0.00024123 7.27283213 0.99879717 0.99936501 0.49324191;
++	-6.27322602 -0.00039372 0.00024120 7.27283230 0.99879732 0.99936509 0.49324201;
++	-6.27322614 -0.00039367 0.00024117 7.27283247 0.99879748 0.99936517 0.49324194;
++	-6.27322626 -0.00039362 0.00024114 7.27283264 0.99879763 0.99936525 0.49324211;
++	-6.27322638 -0.00039357 0.00024111 7.27283281 0.99879778 0.99936533 0.49324210;
++	-6.27322650 -0.00039352 0.00024107 7.27283298 0.99879793 0.99936541 0.49324195;
++	-6.27322662 -0.00039347 0.00024104 7.27283315 0.99879809 0.99936549 0.49324205;
++	-6.27322674 -0.00039342 0.00024101 7.27283332 0.99879824 0.99936557 0.49324210;
++	-6.27322686 -0.00039337 0.00024098 7.27283349 0.99879839 0.99936565 0.49324214;
++	-6.27322698 -0.00039332 0.00024095 7.27283366 0.99879855 0.99936573 0.49324202;
++	-6.27322710 -0.00039327 0.00024092 7.27283383 0.99879870 0.99936581 0.49324209;
++	-6.27322722 -0.00039322 0.00024089 7.27283400 0.99879885 0.99936589 0.49324208;
++	-6.27322734 -0.00039317 0.00024086 7.27283417 0.99879900 0.99936597 0.49324207;
++	-6.27322746 -0.00039312 0.00024083 7.27283434 0.99879916 0.99936605 0.49324215;
++	-6.27322757 -0.00039307 0.00024080 7.27283451 0.99879931 0.99936613 0.49324220;
++	-6.27322769 -0.00039302 0.00024077 7.27283468 0.99879946 0.99936621 0.49324229;
++	-6.27322781 -0.00039297 0.00024074 7.27283485 0.99879961 0.99936630 0.49324226;
++	-6.27322793 -0.00039292 0.00024071 7.27283502 0.99879977 0.99936638 0.49324230;
++	-6.27322805 -0.00039287 0.00024068 7.27283519 0.99879992 0.99936646 0.49324236;
++	-6.27322817 -0.00039282 0.00024065 7.27283535 0.99880007 0.99936654 0.49324229;
++	-6.27322829 -0.00039277 0.00024062 7.27283552 0.99880022 0.99936662 0.49324245;
++	-6.27322841 -0.00039272 0.00024059 7.27283569 0.99880038 0.99936670 0.49324230;
++	-6.27322853 -0.00039267 0.00024055 7.27283586 0.99880053 0.99936678 0.49324241;
++	-6.27322865 -0.00039262 0.00024052 7.27283603 0.99880068 0.99936686 0.49324234;
++	-6.27322877 -0.00039257 0.00024049 7.27283620 0.99880083 0.99936694 0.49324231;
++	-6.27322889 -0.00039252 0.00024046 7.27283637 0.99880098 0.99936702 0.49324244;
++	-6.27322901 -0.00039247 0.00024043 7.27283654 0.99880114 0.99936710 0.49324243;
++	-6.27322913 -0.00039242 0.00024040 7.27283671 0.99880129 0.99936718 0.49324251;
++	-6.27322924 -0.00039237 0.00024037 7.27283688 0.99880144 0.99936726 0.49324242;
++	-6.27322936 -0.00039232 0.00024034 7.27283704 0.99880159 0.99936734 0.49324245;
++	-6.27322948 -0.00039227 0.00024031 7.27283721 0.99880174 0.99936742 0.49324248;
++	-6.27322960 -0.00039222 0.00024028 7.27283738 0.99880190 0.99936750 0.49324240;
++	-6.27322972 -0.00039217 0.00024025 7.27283755 0.99880205 0.99936758 0.49324256;
++	-6.27322984 -0.00039212 0.00024022 7.27283772 0.99880220 0.99936766 0.49324270;
++	-6.27322996 -0.00039207 0.00024019 7.27283789 0.99880235 0.99936774 0.49324265;
++	-6.27323008 -0.00039202 0.00024016 7.27283806 0.99880250 0.99936782 0.49324254;
++	-6.27323020 -0.00039197 0.00024013 7.27283822 0.99880265 0.99936790 0.49324268;
++	-6.27323032 -0.00039192 0.00024010 7.27283839 0.99880281 0.99936798 0.49324263;
++	-6.27323043 -0.00039187 0.00024007 7.27283856 0.99880296 0.99936806 0.49324257;
++	-6.27323055 -0.00039182 0.00024004 7.27283873 0.99880311 0.99936814 0.49324271;
++	-6.27323067 -0.00039177 0.00024001 7.27283890 0.99880326 0.99936822 0.49324263;
++	-6.27323079 -0.00039172 0.00023998 7.27283907 0.99880341 0.99936830 0.49324259;
++	-6.27323091 -0.00039167 0.00023995 7.27283923 0.99880356 0.99936838 0.49324272;
++	-6.27323103 -0.00039162 0.00023992 7.27283940 0.99880372 0.99936846 0.49324266;
++	-6.27323115 -0.00039158 0.00023989 7.27283957 0.99880387 0.99936854 0.49324277;
++	-6.27323126 -0.00039153 0.00023985 7.27283974 0.99880402 0.99936862 0.49324283;
++	-6.27323138 -0.00039148 0.00023982 7.27283991 0.99880417 0.99936870 0.49324288;
++	-6.27323150 -0.00039143 0.00023979 7.27284008 0.99880432 0.99936878 0.49324274;
++	-6.27323162 -0.00039138 0.00023976 7.27284024 0.99880447 0.99936886 0.49324289;
++	-6.27323174 -0.00039133 0.00023973 7.27284041 0.99880462 0.99936894 0.49324287;
++	-6.27323186 -0.00039128 0.00023970 7.27284058 0.99880477 0.99936902 0.49324285;
++	-6.27323198 -0.00039123 0.00023967 7.27284075 0.99880493 0.99936910 0.49324283;
++	-6.27323209 -0.00039118 0.00023964 7.27284091 0.99880508 0.99936918 0.49324290;
++	-6.27323221 -0.00039113 0.00023961 7.27284108 0.99880523 0.99936926 0.49324280;
++	-6.27323233 -0.00039108 0.00023958 7.27284125 0.99880538 0.99936934 0.49324296;
++	-6.27323245 -0.00039103 0.00023955 7.27284142 0.99880553 0.99936942 0.49324284;
++	-6.27323257 -0.00039098 0.00023952 7.27284159 0.99880568 0.99936950 0.49324285;
++	-6.27323268 -0.00039093 0.00023949 7.27284175 0.99880583 0.99936958 0.49324302;
++	-6.27323280 -0.00039088 0.00023946 7.27284192 0.99880598 0.99936966 0.49324295;
++	-6.27323292 -0.00039083 0.00023943 7.27284209 0.99880613 0.99936974 0.49324320;
++	-6.27323304 -0.00039078 0.00023940 7.27284226 0.99880628 0.99936982 0.49324315;
++	-6.27323316 -0.00039073 0.00023937 7.27284242 0.99880643 0.99936990 0.49324296;
++	-6.27323328 -0.00039069 0.00023934 7.27284259 0.99880658 0.99936997 0.49324298;
++	-6.27323339 -0.00039064 0.00023931 7.27284276 0.99880674 0.99937005 0.49324310;
++	-6.27323351 -0.00039059 0.00023928 7.27284292 0.99880689 0.99937013 0.49324316;
++	-6.27323363 -0.00039054 0.00023925 7.27284309 0.99880704 0.99937021 0.49324305;
++	-6.27323375 -0.00039049 0.00023922 7.27284326 0.99880719 0.99937029 0.49324317;
++	-6.27323387 -0.00039044 0.00023919 7.27284343 0.99880734 0.99937037 0.49324316;
++	-6.27323398 -0.00039039 0.00023916 7.27284359 0.99880749 0.99937045 0.49324322;
++	-6.27323410 -0.00039034 0.00023913 7.27284376 0.99880764 0.99937053 0.49324310;
++	-6.27323422 -0.00039029 0.00023910 7.27284393 0.99880779 0.99937061 0.49324325;
++	-6.27323434 -0.00039024 0.00023907 7.27284409 0.99880794 0.99937069 0.49324319;
++	-6.27323445 -0.00039019 0.00023904 7.27284426 0.99880809 0.99937077 0.49324326;
++	-6.27323457 -0.00039014 0.00023901 7.27284443 0.99880824 0.99937085 0.49324329;
++	-6.27323469 -0.00039009 0.00023898 7.27284460 0.99880839 0.99937093 0.49324333;
++	-6.27323481 -0.00039005 0.00023895 7.27284476 0.99880854 0.99937101 0.49324318;
++	-6.27323493 -0.00039000 0.00023892 7.27284493 0.99880869 0.99937109 0.49324318;
++	-6.27323504 -0.00038995 0.00023889 7.27284510 0.99880884 0.99937117 0.49324337;
++	-6.27323516 -0.00038990 0.00023886 7.27284526 0.99880899 0.99937124 0.49324337;
++	-6.27323528 -0.00038985 0.00023883 7.27284543 0.99880914 0.99937132 0.49324350;
++	-6.27323540 -0.00038980 0.00023880 7.27284560 0.99880929 0.99937140 0.49324334;
++	-6.27323551 -0.00038975 0.00023877 7.27284576 0.99880944 0.99937148 0.49324341;
++	-6.27323563 -0.00038970 0.00023874 7.27284593 0.99880959 0.99937156 0.49324338;
++	-6.27323575 -0.00038965 0.00023871 7.27284609 0.99880974 0.99937164 0.49324344;
++	-6.27323587 -0.00038960 0.00023868 7.27284626 0.99880989 0.99937172 0.49324362;
++	-6.27323598 -0.00038955 0.00023865 7.27284643 0.99881004 0.99937180 0.49324347;
++	-6.27323610 -0.00038951 0.00023862 7.27284659 0.99881019 0.99937188 0.49324345;
++	-6.27323622 -0.00038946 0.00023859 7.27284676 0.99881034 0.99937196 0.49324353;
++	-6.27323633 -0.00038941 0.00023856 7.27284693 0.99881049 0.99937204 0.49324361;
++	-6.27323645 -0.00038936 0.00023853 7.27284709 0.99881064 0.99937211 0.49324364;
++	-6.27323657 -0.00038931 0.00023850 7.27284726 0.99881079 0.99937219 0.49324360;
++	-6.27323669 -0.00038926 0.00023847 7.27284743 0.99881094 0.99937227 0.49324354;
++	-6.27323680 -0.00038921 0.00023844 7.27284759 0.99881109 0.99937235 0.49324359;
++	-6.27323692 -0.00038916 0.00023841 7.27284776 0.99881124 0.99937243 0.49324355;
++	-6.27323704 -0.00038911 0.00023838 7.27284792 0.99881139 0.99937251 0.49324369;
++	-6.27323715 -0.00038907 0.00023835 7.27284809 0.99881154 0.99937259 0.49324366;
++	-6.27323727 -0.00038902 0.00023832 7.27284826 0.99881169 0.99937267 0.49324363;
++	-6.27323739 -0.00038897 0.00023829 7.27284842 0.99881184 0.99937275 0.49324368;
++	-6.27323751 -0.00038892 0.00023826 7.27284859 0.99881198 0.99937282 0.49324385;
++	-6.27323762 -0.00038887 0.00023823 7.27284875 0.99881213 0.99937290 0.49324375;
++	-6.27323774 -0.00038882 0.00023820 7.27284892 0.99881228 0.99937298 0.49324381;
++	-6.27323786 -0.00038877 0.00023817 7.27284908 0.99881243 0.99937306 0.49324383;
++	-6.27323797 -0.00038872 0.00023814 7.27284925 0.99881258 0.99937314 0.49324389;
++	-6.27323809 -0.00038867 0.00023811 7.27284942 0.99881273 0.99937322 0.49324387;
++	-6.27323821 -0.00038863 0.00023808 7.27284958 0.99881288 0.99937330 0.49324385;
++	-6.27323832 -0.00038858 0.00023805 7.27284975 0.99881303 0.99937338 0.49324378;
++	-6.27323844 -0.00038853 0.00023802 7.27284991 0.99881318 0.99937345 0.49324377;
++	-6.27323856 -0.00038848 0.00023799 7.27285008 0.99881333 0.99937353 0.49324388;
++	-6.27323867 -0.00038843 0.00023796 7.27285024 0.99881348 0.99937361 0.49324392;
++	-6.27323879 -0.00038838 0.00023793 7.27285041 0.99881362 0.99937369 0.49324396;
++	-6.27323891 -0.00038833 0.00023790 7.27285057 0.99881377 0.99937377 0.49324387;
++	-6.27323902 -0.00038828 0.00023787 7.27285074 0.99881392 0.99937385 0.49324395;
++	-6.27323914 -0.00038824 0.00023784 7.27285090 0.99881407 0.99937393 0.49324401;
++	-6.27323926 -0.00038819 0.00023781 7.27285107 0.99881422 0.99937400 0.49324397;
++	-6.27323937 -0.00038814 0.00023778 7.27285124 0.99881437 0.99937408 0.49324409;
++	-6.27323949 -0.00038809 0.00023775 7.27285140 0.99881452 0.99937416 0.49324390;
++	-6.27323961 -0.00038804 0.00023772 7.27285157 0.99881467 0.99937424 0.49324412;
++	-6.27323972 -0.00038799 0.00023769 7.27285173 0.99881481 0.99937432 0.49324405;
++	-6.27323984 -0.00038794 0.00023766 7.27285190 0.99881496 0.99937440 0.49324413;
++	-6.27323996 -0.00038789 0.00023763 7.27285206 0.99881511 0.99937448 0.49324398;
++	-6.27324007 -0.00038785 0.00023760 7.27285223 0.99881526 0.99937455 0.49324408;
++	-6.27324019 -0.00038780 0.00023757 7.27285239 0.99881541 0.99937463 0.49324411;
++	-6.27324030 -0.00038775 0.00023754 7.27285256 0.99881556 0.99937471 0.49324404;
++	-6.27324042 -0.00038770 0.00023751 7.27285272 0.99881571 0.99937479 0.49324417;
++	-6.27324054 -0.00038765 0.00023748 7.27285289 0.99881585 0.99937487 0.49324417;
++	-6.27324065 -0.00038760 0.00023745 7.27285305 0.99881600 0.99937495 0.49324417;
++	-6.27324077 -0.00038755 0.00023742 7.27285321 0.99881615 0.99937502 0.49324410;
++	-6.27324089 -0.00038751 0.00023739 7.27285338 0.99881630 0.99937510 0.49324415;
++	-6.27324100 -0.00038746 0.00023736 7.27285354 0.99881645 0.99937518 0.49324415;
++	-6.27324112 -0.00038741 0.00023733 7.27285371 0.99881660 0.99937526 0.49324428;
++	-6.27324123 -0.00038736 0.00023730 7.27285387 0.99881674 0.99937534 0.49324427;
++	-6.27324135 -0.00038731 0.00023727 7.27285404 0.99881689 0.99937541 0.49324429;
++	-6.27324147 -0.00038726 0.00023724 7.27285420 0.99881704 0.99937549 0.49324429;
++	-6.27324158 -0.00038722 0.00023721 7.27285437 0.99881719 0.99937557 0.49324431;
++	-6.27324170 -0.00038717 0.00023718 7.27285453 0.99881734 0.99937565 0.49324418;
++	-6.27324181 -0.00038712 0.00023715 7.27285469 0.99881748 0.99937573 0.49324436;
++	-6.27324193 -0.00038707 0.00023712 7.27285486 0.99881763 0.99937581 0.49324427;
++	-6.27324205 -0.00038702 0.00023709 7.27285502 0.99881778 0.99937588 0.49324438;
++	-6.27324216 -0.00038697 0.00023706 7.27285519 0.99881793 0.99937596 0.49324441;
++	-6.27324228 -0.00038693 0.00023704 7.27285535 0.99881807 0.99937604 0.49324425;
++	-6.27324239 -0.00038688 0.00023701 7.27285552 0.99881822 0.99937612 0.49324444;
++	-6.27324251 -0.00038683 0.00023698 7.27285568 0.99881837 0.99937620 0.49324437;
++	-6.27324262 -0.00038678 0.00023695 7.27285584 0.99881852 0.99937627 0.49324451;
++	-6.27324274 -0.00038673 0.00023692 7.27285601 0.99881867 0.99937635 0.49324443;
++	-6.27324286 -0.00038668 0.00023689 7.27285617 0.99881881 0.99937643 0.49324463;
++	-6.27324297 -0.00038664 0.00023686 7.27285634 0.99881896 0.99937651 0.49324464;
++	-6.27324309 -0.00038659 0.00023683 7.27285650 0.99881911 0.99937659 0.49324460;
++	-6.27324320 -0.00038654 0.00023680 7.27285666 0.99881926 0.99937666 0.49324474;
++	-6.27324332 -0.00038649 0.00023677 7.27285683 0.99881940 0.99937674 0.49324457;
++	-6.27324343 -0.00038644 0.00023674 7.27285699 0.99881955 0.99937682 0.49324464;
++	-6.27324355 -0.00038639 0.00023671 7.27285716 0.99881970 0.99937690 0.49324452;
++	-6.27324366 -0.00038635 0.00023668 7.27285732 0.99881985 0.99937697 0.49324451;
++	-6.27324378 -0.00038630 0.00023665 7.27285748 0.99881999 0.99937705 0.49324463;
++	-6.27324390 -0.00038625 0.00023662 7.27285765 0.99882014 0.99937713 0.49324460;
++	-6.27324401 -0.00038620 0.00023659 7.27285781 0.99882029 0.99937721 0.49324461;
++	-6.27324413 -0.00038615 0.00023656 7.27285797 0.99882043 0.99937729 0.49324473;
++	-6.27324424 -0.00038610 0.00023653 7.27285814 0.99882058 0.99937736 0.49324474;
++	-6.27324436 -0.00038606 0.00023650 7.27285830 0.99882073 0.99937744 0.49324465;
++	-6.27324447 -0.00038601 0.00023647 7.27285846 0.99882088 0.99937752 0.49324475;
++	-6.27324459 -0.00038596 0.00023644 7.27285863 0.99882102 0.99937760 0.49324482;
++	-6.27324470 -0.00038591 0.00023641 7.27285879 0.99882117 0.99937767 0.49324468;
++	-6.27324482 -0.00038586 0.00023638 7.27285895 0.99882132 0.99937775 0.49324472;
++	-6.27324493 -0.00038582 0.00023636 7.27285912 0.99882146 0.99937783 0.49324478;
++	-6.27324505 -0.00038577 0.00023633 7.27285928 0.99882161 0.99937791 0.49324486;
++	-6.27324516 -0.00038572 0.00023630 7.27285944 0.99882176 0.99937798 0.49324500;
++	-6.27324528 -0.00038567 0.00023627 7.27285961 0.99882190 0.99937806 0.49324482;
++	-6.27324539 -0.00038562 0.00023624 7.27285977 0.99882205 0.99937814 0.49324496;
++	-6.27324551 -0.00038558 0.00023621 7.27285993 0.99882220 0.99937822 0.49324495;
++	-6.27324562 -0.00038553 0.00023618 7.27286009 0.99882234 0.99937829 0.49324492;
++	-6.27324574 -0.00038548 0.00023615 7.27286026 0.99882249 0.99937837 0.49324476;
++	-6.27324585 -0.00038543 0.00023612 7.27286042 0.99882264 0.99937845 0.49324499;
++	-6.27324597 -0.00038538 0.00023609 7.27286058 0.99882278 0.99937853 0.49324495;
++	-6.27324608 -0.00038534 0.00023606 7.27286075 0.99882293 0.99937860 0.49324497;
++	-6.27324620 -0.00038529 0.00023603 7.27286091 0.99882308 0.99937868 0.49324499;
++	-6.27324631 -0.00038524 0.00023600 7.27286107 0.99882322 0.99937876 0.49324496;
++	-6.27324643 -0.00038519 0.00023597 7.27286123 0.99882337 0.99937884 0.49324507;
++	-6.27324654 -0.00038514 0.00023594 7.27286140 0.99882352 0.99937891 0.49324506;
++	-6.27324666 -0.00038510 0.00023591 7.27286156 0.99882366 0.99937899 0.49324519;
++	-6.27324677 -0.00038505 0.00023588 7.27286172 0.99882381 0.99937907 0.49324510;
++	-6.27324689 -0.00038500 0.00023586 7.27286188 0.99882396 0.99937914 0.49324509;
++	-6.27324700 -0.00038495 0.00023583 7.27286205 0.99882410 0.99937922 0.49324510;
++	-6.27324711 -0.00038490 0.00023580 7.27286221 0.99882425 0.99937930 0.49324517;
++	-6.27324723 -0.00038486 0.00023577 7.27286237 0.99882440 0.99937938 0.49324527;
++	-6.27324734 -0.00038481 0.00023574 7.27286253 0.99882454 0.99937945 0.49324519;
++	-6.27324746 -0.00038476 0.00023571 7.27286270 0.99882469 0.99937953 0.49324516;
++	-6.27324757 -0.00038471 0.00023568 7.27286286 0.99882483 0.99937961 0.49324513;
++	-6.27324769 -0.00038467 0.00023565 7.27286302 0.99882498 0.99937968 0.49324519;
++	-6.27324780 -0.00038462 0.00023562 7.27286318 0.99882513 0.99937976 0.49324509;
++	-6.27324792 -0.00038457 0.00023559 7.27286335 0.99882527 0.99937984 0.49324532;
++	-6.27324803 -0.00038452 0.00023556 7.27286351 0.99882542 0.99937992 0.49324518;
++	-6.27324814 -0.00038447 0.00023553 7.27286367 0.99882556 0.99937999 0.49324537;
++	-6.27324826 -0.00038443 0.00023550 7.27286383 0.99882571 0.99938007 0.49324536;
++	-6.27324837 -0.00038438 0.00023547 7.27286399 0.99882586 0.99938015 0.49324540;
++	-6.27324849 -0.00038433 0.00023545 7.27286416 0.99882600 0.99938022 0.49324531;
++	-6.27324860 -0.00038428 0.00023542 7.27286432 0.99882615 0.99938030 0.49324544;
++	-6.27324872 -0.00038424 0.00023539 7.27286448 0.99882629 0.99938038 0.49324534;
++	-6.27324883 -0.00038419 0.00023536 7.27286464 0.99882644 0.99938045 0.49324551;
++	-6.27324894 -0.00038414 0.00023533 7.27286480 0.99882658 0.99938053 0.49324541;
++	-6.27324906 -0.00038409 0.00023530 7.27286497 0.99882673 0.99938061 0.49324551;
++	-6.27324917 -0.00038405 0.00023527 7.27286513 0.99882688 0.99938068 0.49324541;
++	-6.27324929 -0.00038400 0.00023524 7.27286529 0.99882702 0.99938076 0.49324543;
++	-6.27324940 -0.00038395 0.00023521 7.27286545 0.99882717 0.99938084 0.49324548;
++	-6.27324951 -0.00038390 0.00023518 7.27286561 0.99882731 0.99938092 0.49324547;
++	-6.27324963 -0.00038385 0.00023515 7.27286577 0.99882746 0.99938099 0.49324552;
++	-6.27324974 -0.00038381 0.00023512 7.27286594 0.99882760 0.99938107 0.49324561;
++	-6.27324986 -0.00038376 0.00023509 7.27286610 0.99882775 0.99938115 0.49324575;
++	-6.27324997 -0.00038371 0.00023507 7.27286626 0.99882789 0.99938122 0.49324555;
++	-6.27325008 -0.00038366 0.00023504 7.27286642 0.99882804 0.99938130 0.49324561;
++	-6.27325020 -0.00038362 0.00023501 7.27286658 0.99882818 0.99938138 0.49324560;
++	-6.27325031 -0.00038357 0.00023498 7.27286674 0.99882833 0.99938145 0.49324567;
++	-6.27325043 -0.00038352 0.00023495 7.27286690 0.99882847 0.99938153 0.49324557;
++	-6.27325054 -0.00038347 0.00023492 7.27286706 0.99882862 0.99938161 0.49324572;
++	-6.27325065 -0.00038343 0.00023489 7.27286723 0.99882877 0.99938168 0.49324570;
++	-6.27325077 -0.00038338 0.00023486 7.27286739 0.99882891 0.99938176 0.49324576;
++	-6.27325088 -0.00038333 0.00023483 7.27286755 0.99882906 0.99938184 0.49324591;
++	-6.27325099 -0.00038328 0.00023480 7.27286771 0.99882920 0.99938191 0.49324569;
++	-6.27325111 -0.00038324 0.00023477 7.27286787 0.99882935 0.99938199 0.49324559;
++	-6.27325122 -0.00038319 0.00023475 7.27286803 0.99882949 0.99938207 0.49324564;
++	-6.27325133 -0.00038314 0.00023472 7.27286819 0.99882964 0.99938214 0.49324576;
++	-6.27325145 -0.00038309 0.00023469 7.27286835 0.99882978 0.99938222 0.49324581;
++	-6.27325156 -0.00038305 0.00023466 7.27286851 0.99882993 0.99938229 0.49324590;
++	-6.27325168 -0.00038300 0.00023463 7.27286868 0.99883007 0.99938237 0.49324573;
++	-6.27325179 -0.00038295 0.00023460 7.27286884 0.99883021 0.99938245 0.49324578;
++	-6.27325190 -0.00038291 0.00023457 7.27286900 0.99883036 0.99938252 0.49324585;
++	-6.27325202 -0.00038286 0.00023454 7.27286916 0.99883050 0.99938260 0.49324579;
++	-6.27325213 -0.00038281 0.00023451 7.27286932 0.99883065 0.99938268 0.49324589;
++	-6.27325224 -0.00038276 0.00023448 7.27286948 0.99883079 0.99938275 0.49324588;
++	-6.27325236 -0.00038272 0.00023446 7.27286964 0.99883094 0.99938283 0.49324586;
++	-6.27325247 -0.00038267 0.00023443 7.27286980 0.99883108 0.99938291 0.49324588;
++	-6.27325258 -0.00038262 0.00023440 7.27286996 0.99883123 0.99938298 0.49324600;
++	-6.27325269 -0.00038257 0.00023437 7.27287012 0.99883137 0.99938306 0.49324602;
++	-6.27325281 -0.00038253 0.00023434 7.27287028 0.99883152 0.99938313 0.49324593;
++	-6.27325292 -0.00038248 0.00023431 7.27287044 0.99883166 0.99938321 0.49324600;
++	-6.27325303 -0.00038243 0.00023428 7.27287060 0.99883180 0.99938329 0.49324594;
++	-6.27325315 -0.00038238 0.00023425 7.27287076 0.99883195 0.99938336 0.49324594;
++	-6.27325326 -0.00038234 0.00023422 7.27287092 0.99883209 0.99938344 0.49324616;
++	-6.27325337 -0.00038229 0.00023419 7.27287108 0.99883224 0.99938352 0.49324609;
++	-6.27325349 -0.00038224 0.00023417 7.27287124 0.99883238 0.99938359 0.49324615;
++	-6.27325360 -0.00038220 0.00023414 7.27287140 0.99883253 0.99938367 0.49324616;
++	-6.27325371 -0.00038215 0.00023411 7.27287156 0.99883267 0.99938374 0.49324616;
++	-6.27325383 -0.00038210 0.00023408 7.27287172 0.99883281 0.99938382 0.49324603;
++	-6.27325394 -0.00038205 0.00023405 7.27287188 0.99883296 0.99938390 0.49324614;
++	-6.27325405 -0.00038201 0.00023402 7.27287204 0.99883310 0.99938397 0.49324629;
++	-6.27325416 -0.00038196 0.00023399 7.27287220 0.99883325 0.99938405 0.49324628;
++	-6.27325428 -0.00038191 0.00023396 7.27287236 0.99883339 0.99938412 0.49324634;
++	-6.27325439 -0.00038187 0.00023393 7.27287252 0.99883353 0.99938420 0.49324618;
++	-6.27325450 -0.00038182 0.00023391 7.27287268 0.99883368 0.99938428 0.49324620;
++	-6.27325462 -0.00038177 0.00023388 7.27287284 0.99883382 0.99938435 0.49324621;
++	-6.27325473 -0.00038172 0.00023385 7.27287300 0.99883397 0.99938443 0.49324620;
++	-6.27325484 -0.00038168 0.00023382 7.27287316 0.99883411 0.99938450 0.49324631;
++	-6.27325495 -0.00038163 0.00023379 7.27287332 0.99883425 0.99938458 0.49324616;
++	-6.27325507 -0.00038158 0.00023376 7.27287348 0.99883440 0.99938466 0.49324629;
++	-6.27325518 -0.00038154 0.00023373 7.27287364 0.99883454 0.99938473 0.49324635;
++	-6.27325529 -0.00038149 0.00023370 7.27287380 0.99883469 0.99938481 0.49324648;
++	-6.27325540 -0.00038144 0.00023367 7.27287396 0.99883483 0.99938488 0.49324638;
++	-6.27325552 -0.00038140 0.00023365 7.27287412 0.99883497 0.99938496 0.49324637;
++	-6.27325563 -0.00038135 0.00023362 7.27287428 0.99883512 0.99938503 0.49324641;
++	-6.27325574 -0.00038130 0.00023359 7.27287444 0.99883526 0.99938511 0.49324645;
++	-6.27325585 -0.00038125 0.00023356 7.27287460 0.99883540 0.99938519 0.49324647;
++	-6.27325597 -0.00038121 0.00023353 7.27287476 0.99883555 0.99938526 0.49324642;
++	-6.27325608 -0.00038116 0.00023350 7.27287492 0.99883569 0.99938534 0.49324651;
++	-6.27325619 -0.00038111 0.00023347 7.27287508 0.99883583 0.99938541 0.49324649;
++	-6.27325630 -0.00038107 0.00023344 7.27287524 0.99883598 0.99938549 0.49324647;
++	-6.27325642 -0.00038102 0.00023342 7.27287540 0.99883612 0.99938556 0.49324658;
++	-6.27325653 -0.00038097 0.00023339 7.27287555 0.99883626 0.99938564 0.49324664;
++	-6.27325664 -0.00038093 0.00023336 7.27287571 0.99883641 0.99938572 0.49324649;
++	-6.27325675 -0.00038088 0.00023333 7.27287587 0.99883655 0.99938579 0.49324658;
++	-6.27325686 -0.00038083 0.00023330 7.27287603 0.99883669 0.99938587 0.49324653;
++	-6.27325698 -0.00038079 0.00023327 7.27287619 0.99883684 0.99938594 0.49324658;
++	-6.27325709 -0.00038074 0.00023324 7.27287635 0.99883698 0.99938602 0.49324649;
++	-6.27325720 -0.00038069 0.00023321 7.27287651 0.99883712 0.99938609 0.49324663;
++	-6.27325731 -0.00038065 0.00023319 7.27287667 0.99883727 0.99938617 0.49324670;
++	-6.27325742 -0.00038060 0.00023316 7.27287683 0.99883741 0.99938624 0.49324665;
++	-6.27325754 -0.00038055 0.00023313 7.27287699 0.99883755 0.99938632 0.49324681;
++	-6.27325765 -0.00038050 0.00023310 7.27287714 0.99883769 0.99938640 0.49324678;
++	-6.27325776 -0.00038046 0.00023307 7.27287730 0.99883784 0.99938647 0.49324668;
++	-6.27325787 -0.00038041 0.00023304 7.27287746 0.99883798 0.99938655 0.49324676;
++	-6.27325798 -0.00038036 0.00023301 7.27287762 0.99883812 0.99938662 0.49324679;
++	-6.27325810 -0.00038032 0.00023299 7.27287778 0.99883827 0.99938670 0.49324680;
++	-6.27325821 -0.00038027 0.00023296 7.27287794 0.99883841 0.99938677 0.49324686;
++	-6.27325832 -0.00038022 0.00023293 7.27287810 0.99883855 0.99938685 0.49324703;
++	-6.27325843 -0.00038018 0.00023290 7.27287825 0.99883869 0.99938692 0.49324683;
++	-6.27325854 -0.00038013 0.00023287 7.27287841 0.99883884 0.99938700 0.49324688;
++	-6.27325866 -0.00038008 0.00023284 7.27287857 0.99883898 0.99938707 0.49324687;
++	-6.27325877 -0.00038004 0.00023281 7.27287873 0.99883912 0.99938715 0.49324692;
++	-6.27325888 -0.00037999 0.00023279 7.27287889 0.99883926 0.99938722 0.49324678;
++	-6.27325899 -0.00037994 0.00023276 7.27287905 0.99883941 0.99938730 0.49324693;
++	-6.27325910 -0.00037990 0.00023273 7.27287920 0.99883955 0.99938737 0.49324693;
++	-6.27325921 -0.00037985 0.00023270 7.27287936 0.99883969 0.99938745 0.49324695;
++	-6.27325932 -0.00037980 0.00023267 7.27287952 0.99883983 0.99938752 0.49324704;
++	-6.27325944 -0.00037976 0.00023264 7.27287968 0.99883998 0.99938760 0.49324699;
++	-6.27325955 -0.00037971 0.00023261 7.27287984 0.99884012 0.99938768 0.49324702;
++	-6.27325966 -0.00037966 0.00023259 7.27287999 0.99884026 0.99938775 0.49324694;
++	-6.27325977 -0.00037962 0.00023256 7.27288015 0.99884040 0.99938783 0.49324708;
++	-6.27325988 -0.00037957 0.00023253 7.27288031 0.99884055 0.99938790 0.49324716;
++	-6.27325999 -0.00037953 0.00023250 7.27288047 0.99884069 0.99938798 0.49324712;
++	-6.27326011 -0.00037948 0.00023247 7.27288063 0.99884083 0.99938805 0.49324715;
++	-6.27326022 -0.00037943 0.00023244 7.27288078 0.99884097 0.99938813 0.49324707;
++	-6.27326033 -0.00037939 0.00023241 7.27288094 0.99884111 0.99938820 0.49324704;
++	-6.27326044 -0.00037934 0.00023239 7.27288110 0.99884126 0.99938828 0.49324718;
++	-6.27326055 -0.00037929 0.00023236 7.27288126 0.99884140 0.99938835 0.49324714;
++	-6.27326066 -0.00037925 0.00023233 7.27288142 0.99884154 0.99938843 0.49324726;
++	-6.27326077 -0.00037920 0.00023230 7.27288157 0.99884168 0.99938850 0.49324702;
++	-6.27326088 -0.00037915 0.00023227 7.27288173 0.99884182 0.99938858 0.49324721;
++	-6.27326100 -0.00037911 0.00023224 7.27288189 0.99884197 0.99938865 0.49324723;
++	-6.27326111 -0.00037906 0.00023221 7.27288205 0.99884211 0.99938873 0.49324718;
++	-6.27326122 -0.00037901 0.00023219 7.27288220 0.99884225 0.99938880 0.49324712;
++	-6.27326133 -0.00037897 0.00023216 7.27288236 0.99884239 0.99938887 0.49324742;
++	-6.27326144 -0.00037892 0.00023213 7.27288252 0.99884253 0.99938895 0.49324731;
++	-6.27326155 -0.00037887 0.00023210 7.27288268 0.99884267 0.99938902 0.49324731;
++	-6.27326166 -0.00037883 0.00023207 7.27288283 0.99884282 0.99938910 0.49324735;
++	-6.27326177 -0.00037878 0.00023204 7.27288299 0.99884296 0.99938917 0.49324724;
++	-6.27326188 -0.00037874 0.00023202 7.27288315 0.99884310 0.99938925 0.49324733;
++	-6.27326199 -0.00037869 0.00023199 7.27288331 0.99884324 0.99938932 0.49324726;
++	-6.27326211 -0.00037864 0.00023196 7.27288346 0.99884338 0.99938940 0.49324734;
++	-6.27326222 -0.00037860 0.00023193 7.27288362 0.99884352 0.99938947 0.49324737;
++	-6.27326233 -0.00037855 0.00023190 7.27288378 0.99884367 0.99938955 0.49324746;
++	-6.27326244 -0.00037850 0.00023187 7.27288393 0.99884381 0.99938962 0.49324742;
++	-6.27326255 -0.00037846 0.00023185 7.27288409 0.99884395 0.99938970 0.49324750;
++	-6.27326266 -0.00037841 0.00023182 7.27288425 0.99884409 0.99938977 0.49324754;
++	-6.27326277 -0.00037837 0.00023179 7.27288441 0.99884423 0.99938985 0.49324741;
++	-6.27326288 -0.00037832 0.00023176 7.27288456 0.99884437 0.99938992 0.49324760;
++	-6.27326299 -0.00037827 0.00023173 7.27288472 0.99884451 0.99939000 0.49324751;
++	-6.27326310 -0.00037823 0.00023170 7.27288488 0.99884466 0.99939007 0.49324747;
++	-6.27326321 -0.00037818 0.00023168 7.27288503 0.99884480 0.99939014 0.49324756;
++	-6.27326332 -0.00037813 0.00023165 7.27288519 0.99884494 0.99939022 0.49324744;
++	-6.27326343 -0.00037809 0.00023162 7.27288535 0.99884508 0.99939029 0.49324765;
++	-6.27326354 -0.00037804 0.00023159 7.27288550 0.99884522 0.99939037 0.49324755;
++	-6.27326366 -0.00037800 0.00023156 7.27288566 0.99884536 0.99939044 0.49324760;
++	-6.27326377 -0.00037795 0.00023153 7.27288582 0.99884550 0.99939052 0.49324764;
++	-6.27326388 -0.00037790 0.00023151 7.27288597 0.99884564 0.99939059 0.49324764;
++	-6.27326399 -0.00037786 0.00023148 7.27288613 0.99884578 0.99939067 0.49324768;
++	-6.27326410 -0.00037781 0.00023145 7.27288629 0.99884592 0.99939074 0.49324772;
++	-6.27326421 -0.00037777 0.00023142 7.27288644 0.99884607 0.99939081 0.49324775;
++	-6.27326432 -0.00037772 0.00023139 7.27288660 0.99884621 0.99939089 0.49324763;
++	-6.27326443 -0.00037767 0.00023136 7.27288676 0.99884635 0.99939096 0.49324773;
++	-6.27326454 -0.00037763 0.00023134 7.27288691 0.99884649 0.99939104 0.49324770;
++	-6.27326465 -0.00037758 0.00023131 7.27288707 0.99884663 0.99939111 0.49324772;
++	-6.27326476 -0.00037753 0.00023128 7.27288722 0.99884677 0.99939119 0.49324778;
++	-6.27326487 -0.00037749 0.00023125 7.27288738 0.99884691 0.99939126 0.49324783;
++	-6.27326498 -0.00037744 0.00023122 7.27288754 0.99884705 0.99939133 0.49324780;
++	-6.27326509 -0.00037740 0.00023120 7.27288769 0.99884719 0.99939141 0.49324776;
++	-6.27326520 -0.00037735 0.00023117 7.27288785 0.99884733 0.99939148 0.49324786;
++	-6.27326531 -0.00037730 0.00023114 7.27288801 0.99884747 0.99939156 0.49324788;
++	-6.27326542 -0.00037726 0.00023111 7.27288816 0.99884761 0.99939163 0.49324776;
++	-6.27326553 -0.00037721 0.00023108 7.27288832 0.99884775 0.99939171 0.49324788;
++	-6.27326564 -0.00037717 0.00023105 7.27288847 0.99884789 0.99939178 0.49324801;
++	-6.27326575 -0.00037712 0.00023103 7.27288863 0.99884803 0.99939185 0.49324790;
++	-6.27326586 -0.00037707 0.00023100 7.27288879 0.99884817 0.99939193 0.49324783;
++	-6.27326597 -0.00037703 0.00023097 7.27288894 0.99884831 0.99939200 0.49324795;
++	-6.27326608 -0.00037698 0.00023094 7.27288910 0.99884846 0.99939208 0.49324808;
++	-6.27326619 -0.00037694 0.00023091 7.27288925 0.99884860 0.99939215 0.49324796;
++	-6.27326630 -0.00037689 0.00023089 7.27288941 0.99884874 0.99939222 0.49324802;
++	-6.27326641 -0.00037685 0.00023086 7.27288956 0.99884888 0.99939230 0.49324786;
++	-6.27326652 -0.00037680 0.00023083 7.27288972 0.99884902 0.99939237 0.49324795;
++	-6.27326663 -0.00037675 0.00023080 7.27288988 0.99884916 0.99939245 0.49324822;
++	-6.27326674 -0.00037671 0.00023077 7.27289003 0.99884930 0.99939252 0.49324803;
++	-6.27326685 -0.00037666 0.00023074 7.27289019 0.99884944 0.99939259 0.49324799;
++	-6.27326696 -0.00037662 0.00023072 7.27289034 0.99884958 0.99939267 0.49324798;
++	-6.27326707 -0.00037657 0.00023069 7.27289050 0.99884972 0.99939274 0.49324802;
++	-6.27326718 -0.00037652 0.00023066 7.27289065 0.99884986 0.99939282 0.49324803;
++	-6.27326729 -0.00037648 0.00023063 7.27289081 0.99885000 0.99939289 0.49324811;
++	-6.27326740 -0.00037643 0.00023060 7.27289096 0.99885014 0.99939296 0.49324817;
++	-6.27326751 -0.00037639 0.00023058 7.27289112 0.99885028 0.99939304 0.49324821;
++	-6.27326762 -0.00037634 0.00023055 7.27289127 0.99885042 0.99939311 0.49324821;
++	-6.27326773 -0.00037630 0.00023052 7.27289143 0.99885056 0.99939318 0.49324827;
++	-6.27326783 -0.00037625 0.00023049 7.27289159 0.99885070 0.99939326 0.49324820;
++	-6.27326794 -0.00037620 0.00023046 7.27289174 0.99885084 0.99939333 0.49324832;
++	-6.27326805 -0.00037616 0.00023044 7.27289190 0.99885097 0.99939341 0.49324834;
++	-6.27326816 -0.00037611 0.00023041 7.27289205 0.99885111 0.99939348 0.49324841;
++	-6.27326827 -0.00037607 0.00023038 7.27289221 0.99885125 0.99939355 0.49324834;
++	-6.27326838 -0.00037602 0.00023035 7.27289236 0.99885139 0.99939363 0.49324834;
++	-6.27326849 -0.00037598 0.00023032 7.27289252 0.99885153 0.99939370 0.49324836;
++	-6.27326860 -0.00037593 0.00023030 7.27289267 0.99885167 0.99939377 0.49324838;
++	-6.27326871 -0.00037588 0.00023027 7.27289283 0.99885181 0.99939385 0.49324843;
++	-6.27326882 -0.00037584 0.00023024 7.27289298 0.99885195 0.99939392 0.49324818;
++	-6.27326893 -0.00037579 0.00023021 7.27289314 0.99885209 0.99939399 0.49324852;
++	-6.27326904 -0.00037575 0.00023018 7.27289329 0.99885223 0.99939407 0.49324850;
++	-6.27326915 -0.00037570 0.00023016 7.27289345 0.99885237 0.99939414 0.49324851;
++	-6.27326926 -0.00037566 0.00023013 7.27289360 0.99885251 0.99939422 0.49324838;
++	-6.27326937 -0.00037561 0.00023010 7.27289375 0.99885265 0.99939429 0.49324847;
++	-6.27326947 -0.00037557 0.00023007 7.27289391 0.99885279 0.99939436 0.49324849;
++	-6.27326958 -0.00037552 0.00023004 7.27289406 0.99885293 0.99939444 0.49324851;
++	-6.27326969 -0.00037547 0.00023002 7.27289422 0.99885307 0.99939451 0.49324844;
++	-6.27326980 -0.00037543 0.00022999 7.27289437 0.99885321 0.99939458 0.49324862;
++	-6.27326991 -0.00037538 0.00022996 7.27289453 0.99885334 0.99939466 0.49324845;
++	-6.27327002 -0.00037534 0.00022993 7.27289468 0.99885348 0.99939473 0.49324866;
++	-6.27327013 -0.00037529 0.00022991 7.27289484 0.99885362 0.99939480 0.49324850;
++	-6.27327024 -0.00037525 0.00022988 7.27289499 0.99885376 0.99939488 0.49324874;
++	-6.27327035 -0.00037520 0.00022985 7.27289514 0.99885390 0.99939495 0.49324863;
++	-6.27327045 -0.00037516 0.00022982 7.27289530 0.99885404 0.99939502 0.49324861;
++	-6.27327056 -0.00037511 0.00022979 7.27289545 0.99885418 0.99939510 0.49324863;
++	-6.27327067 -0.00037506 0.00022977 7.27289561 0.99885432 0.99939517 0.49324878;
++	-6.27327078 -0.00037502 0.00022974 7.27289576 0.99885446 0.99939524 0.49324852;
++	-6.27327089 -0.00037497 0.00022971 7.27289592 0.99885459 0.99939532 0.49324868;
++	-6.27327100 -0.00037493 0.00022968 7.27289607 0.99885473 0.99939539 0.49324870;
++	-6.27327111 -0.00037488 0.00022965 7.27289622 0.99885487 0.99939546 0.49324867;
++	-6.27327122 -0.00037484 0.00022963 7.27289638 0.99885501 0.99939554 0.49324861;
++	-6.27327132 -0.00037479 0.00022960 7.27289653 0.99885515 0.99939561 0.49324879;
++	-6.27327143 -0.00037475 0.00022957 7.27289669 0.99885529 0.99939568 0.49324878;
++	-6.27327154 -0.00037470 0.00022954 7.27289684 0.99885543 0.99939576 0.49324873;
++	-6.27327165 -0.00037466 0.00022952 7.27289699 0.99885557 0.99939583 0.49324877;
++	-6.27327176 -0.00037461 0.00022949 7.27289715 0.99885570 0.99939590 0.49324893;
++	-6.27327187 -0.00037457 0.00022946 7.27289730 0.99885584 0.99939597 0.49324876;
++	-6.27327198 -0.00037452 0.00022943 7.27289746 0.99885598 0.99939605 0.49324876;
++	-6.27327208 -0.00037447 0.00022940 7.27289761 0.99885612 0.99939612 0.49324883;
++	-6.27327219 -0.00037443 0.00022938 7.27289776 0.99885626 0.99939619 0.49324897;
++	-6.27327230 -0.00037438 0.00022935 7.27289792 0.99885640 0.99939627 0.49324903;
++	-6.27327241 -0.00037434 0.00022932 7.27289807 0.99885653 0.99939634 0.49324897;
++	-6.27327252 -0.00037429 0.00022929 7.27289822 0.99885667 0.99939641 0.49324915;
++	-6.27327263 -0.00037425 0.00022927 7.27289838 0.99885681 0.99939649 0.49324899;
++	-6.27327273 -0.00037420 0.00022924 7.27289853 0.99885695 0.99939656 0.49324895;
++	-6.27327284 -0.00037416 0.00022921 7.27289869 0.99885709 0.99939663 0.49324901;
++	-6.27327295 -0.00037411 0.00022918 7.27289884 0.99885723 0.99939671 0.49324899;
++	-6.27327306 -0.00037407 0.00022915 7.27289899 0.99885736 0.99939678 0.49324910;
++	-6.27327317 -0.00037402 0.00022913 7.27289915 0.99885750 0.99939685 0.49324893;
++	-6.27327328 -0.00037398 0.00022910 7.27289930 0.99885764 0.99939692 0.49324897;
++	-6.27327338 -0.00037393 0.00022907 7.27289945 0.99885778 0.99939700 0.49324903;
++	-6.27327349 -0.00037389 0.00022904 7.27289961 0.99885792 0.99939707 0.49324907;
++	-6.27327360 -0.00037384 0.00022902 7.27289976 0.99885805 0.99939714 0.49324912;
++	-6.27327371 -0.00037380 0.00022899 7.27289991 0.99885819 0.99939722 0.49324911;
++	-6.27327382 -0.00037375 0.00022896 7.27290007 0.99885833 0.99939729 0.49324918;
++	-6.27327392 -0.00037371 0.00022893 7.27290022 0.99885847 0.99939736 0.49324911;
++	-6.27327403 -0.00037366 0.00022891 7.27290037 0.99885861 0.99939743 0.49324922;
++	-6.27327414 -0.00037362 0.00022888 7.27290052 0.99885874 0.99939751 0.49324912;
++	-6.27327425 -0.00037357 0.00022885 7.27290068 0.99885888 0.99939758 0.49324914;
++	-6.27327436 -0.00037353 0.00022882 7.27290083 0.99885902 0.99939765 0.49324919;
++	-6.27327446 -0.00037348 0.00022880 7.27290098 0.99885916 0.99939772 0.49324915;
++	-6.27327457 -0.00037344 0.00022877 7.27290114 0.99885929 0.99939780 0.49324920;
++	-6.27327468 -0.00037339 0.00022874 7.27290129 0.99885943 0.99939787 0.49324914;
++	-6.27327479 -0.00037335 0.00022871 7.27290144 0.99885957 0.99939794 0.49324927;
++	-6.27327490 -0.00037330 0.00022868 7.27290160 0.99885971 0.99939801 0.49324924;
++	-6.27327500 -0.00037326 0.00022866 7.27290175 0.99885984 0.99939809 0.49324926;
++	-6.27327511 -0.00037321 0.00022863 7.27290190 0.99885998 0.99939816 0.49324920;
++	-6.27327522 -0.00037317 0.00022860 7.27290205 0.99886012 0.99939823 0.49324932;
++	-6.27327533 -0.00037312 0.00022857 7.27290221 0.99886026 0.99939831 0.49324939;
++	-6.27327543 -0.00037308 0.00022855 7.27290236 0.99886039 0.99939838 0.49324946;
++	-6.27327554 -0.00037303 0.00022852 7.27290251 0.99886053 0.99939845 0.49324935;
++	-6.27327565 -0.00037299 0.00022849 7.27290266 0.99886067 0.99939852 0.49324930;
++	-6.27327576 -0.00037294 0.00022846 7.27290282 0.99886081 0.99939860 0.49324950;
++	-6.27327586 -0.00037290 0.00022844 7.27290297 0.99886094 0.99939867 0.49324938;
++	-6.27327597 -0.00037285 0.00022841 7.27290312 0.99886108 0.99939874 0.49324942;
++	-6.27327608 -0.00037281 0.00022838 7.27290327 0.99886122 0.99939881 0.49324944;
++	-6.27327619 -0.00037276 0.00022835 7.27290343 0.99886136 0.99939888 0.49324942;
++	-6.27327629 -0.00037272 0.00022833 7.27290358 0.99886149 0.99939896 0.49324940;
++	-6.27327640 -0.00037267 0.00022830 7.27290373 0.99886163 0.99939903 0.49324954;
++	-6.27327651 -0.00037263 0.00022827 7.27290388 0.99886177 0.99939910 0.49324936;
++	-6.27327662 -0.00037258 0.00022824 7.27290404 0.99886190 0.99939917 0.49324945;
++	-6.27327672 -0.00037254 0.00022822 7.27290419 0.99886204 0.99939925 0.49324953;
++	-6.27327683 -0.00037249 0.00022819 7.27290434 0.99886218 0.99939932 0.49324957;
++	-6.27327694 -0.00037245 0.00022816 7.27290449 0.99886231 0.99939939 0.49324952;
++	-6.27327705 -0.00037240 0.00022813 7.27290464 0.99886245 0.99939946 0.49324959;
++	-6.27327715 -0.00037236 0.00022811 7.27290480 0.99886259 0.99939954 0.49324957;
++	-6.27327726 -0.00037231 0.00022808 7.27290495 0.99886273 0.99939961 0.49324964;
++	-6.27327737 -0.00037227 0.00022805 7.27290510 0.99886286 0.99939968 0.49324963;
++	-6.27327747 -0.00037222 0.00022802 7.27290525 0.99886300 0.99939975 0.49324974;
++	-6.27327758 -0.00037218 0.00022800 7.27290540 0.99886314 0.99939982 0.49324966;
++	-6.27327769 -0.00037213 0.00022797 7.27290556 0.99886327 0.99939990 0.49324952;
++	-6.27327780 -0.00037209 0.00022794 7.27290571 0.99886341 0.99939997 0.49324969;
++	-6.27327790 -0.00037204 0.00022791 7.27290586 0.99886355 0.99940004 0.49324970;
++	-6.27327801 -0.00037200 0.00022789 7.27290601 0.99886368 0.99940011 0.49324976;
++	-6.27327812 -0.00037195 0.00022786 7.27290616 0.99886382 0.99940019 0.49324984;
++	-6.27327822 -0.00037191 0.00022783 7.27290631 0.99886396 0.99940026 0.49324963;
++	-6.27327833 -0.00037187 0.00022781 7.27290647 0.99886409 0.99940033 0.49324968;
++	-6.27327844 -0.00037182 0.00022778 7.27290662 0.99886423 0.99940040 0.49324978;
++	-6.27327855 -0.00037178 0.00022775 7.27290677 0.99886436 0.99940047 0.49324985;
++	-6.27327865 -0.00037173 0.00022772 7.27290692 0.99886450 0.99940055 0.49325000;
++	-6.27327876 -0.00037169 0.00022770 7.27290707 0.99886464 0.99940062 0.49324984;
++	-6.27327887 -0.00037164 0.00022767 7.27290722 0.99886477 0.99940069 0.49324982;
++	-6.27327897 -0.00037160 0.00022764 7.27290737 0.99886491 0.99940076 0.49324988;
++	-6.27327908 -0.00037155 0.00022761 7.27290753 0.99886505 0.99940083 0.49325015;
++	-6.27327919 -0.00037151 0.00022759 7.27290768 0.99886518 0.99940091 0.49324977;
++	-6.27327929 -0.00037146 0.00022756 7.27290783 0.99886532 0.99940098 0.49324993;
++	-6.27327940 -0.00037142 0.00022753 7.27290798 0.99886546 0.99940105 0.49325002;
++	-6.27327951 -0.00037137 0.00022750 7.27290813 0.99886559 0.99940112 0.49324999;
++	-6.27327961 -0.00037133 0.00022748 7.27290828 0.99886573 0.99940119 0.49325000;
++	-6.27327972 -0.00037129 0.00022745 7.27290843 0.99886586 0.99940126 0.49325006;
++	-6.27327983 -0.00037124 0.00022742 7.27290858 0.99886600 0.99940134 0.49324994;
++	-6.27327993 -0.00037120 0.00022740 7.27290874 0.99886614 0.99940141 0.49324986;
++	-6.27328004 -0.00037115 0.00022737 7.27290889 0.99886627 0.99940148 0.49325009;
++	-6.27328015 -0.00037111 0.00022734 7.27290904 0.99886641 0.99940155 0.49325012;
++	-6.27328025 -0.00037106 0.00022731 7.27290919 0.99886654 0.99940162 0.49325015;
++	-6.27328036 -0.00037102 0.00022729 7.27290934 0.99886668 0.99940170 0.49325010;
++	-6.27328047 -0.00037097 0.00022726 7.27290949 0.99886682 0.99940177 0.49325020;
++	-6.27328057 -0.00037093 0.00022723 7.27290964 0.99886695 0.99940184 0.49325004;
++	-6.27328068 -0.00037089 0.00022720 7.27290979 0.99886709 0.99940191 0.49325014;
++	-6.27328078 -0.00037084 0.00022718 7.27290994 0.99886722 0.99940198 0.49325025;
++	-6.27328089 -0.00037080 0.00022715 7.27291009 0.99886736 0.99940205 0.49325008;
++	-6.27328100 -0.00037075 0.00022712 7.27291024 0.99886749 0.99940213 0.49325032;
++	-6.27328110 -0.00037071 0.00022710 7.27291040 0.99886763 0.99940220 0.49325016;
++	-6.27328121 -0.00037066 0.00022707 7.27291055 0.99886777 0.99940227 0.49325010;
++	-6.27328132 -0.00037062 0.00022704 7.27291070 0.99886790 0.99940234 0.49325006;
++	-6.27328142 -0.00037057 0.00022701 7.27291085 0.99886804 0.99940241 0.49325022;
++	-6.27328153 -0.00037053 0.00022699 7.27291100 0.99886817 0.99940248 0.49325031;
++	-6.27328163 -0.00037049 0.00022696 7.27291115 0.99886831 0.99940255 0.49325037;
++	-6.27328174 -0.00037044 0.00022693 7.27291130 0.99886844 0.99940263 0.49325027;
++	-6.27328185 -0.00037040 0.00022691 7.27291145 0.99886858 0.99940270 0.49325034;
++	-6.27328195 -0.00037035 0.00022688 7.27291160 0.99886871 0.99940277 0.49325020;
++	-6.27328206 -0.00037031 0.00022685 7.27291175 0.99886885 0.99940284 0.49325035;
++	-6.27328217 -0.00037026 0.00022682 7.27291190 0.99886898 0.99940291 0.49325022;
++	-6.27328227 -0.00037022 0.00022680 7.27291205 0.99886912 0.99940298 0.49325038;
++	-6.27328238 -0.00037018 0.00022677 7.27291220 0.99886926 0.99940305 0.49325045;
++	-6.27328248 -0.00037013 0.00022674 7.27291235 0.99886939 0.99940313 0.49325055;
++	-6.27328259 -0.00037009 0.00022672 7.27291250 0.99886953 0.99940320 0.49325042;
++	-6.27328269 -0.00037004 0.00022669 7.27291265 0.99886966 0.99940327 0.49325036;
++	-6.27328280 -0.00037000 0.00022666 7.27291280 0.99886980 0.99940334 0.49325057;
++	-6.27328291 -0.00036995 0.00022663 7.27291295 0.99886993 0.99940341 0.49325047;
++	-6.27328301 -0.00036991 0.00022661 7.27291310 0.99887007 0.99940348 0.49325050;
++	-6.27328312 -0.00036987 0.00022658 7.27291325 0.99887020 0.99940355 0.49325044;
++	-6.27328322 -0.00036982 0.00022655 7.27291340 0.99887034 0.99940363 0.49325060;
++	-6.27328333 -0.00036978 0.00022653 7.27291355 0.99887047 0.99940370 0.49325046;
++	-6.27328344 -0.00036973 0.00022650 7.27291370 0.99887061 0.99940377 0.49325049;
++	-6.27328354 -0.00036969 0.00022647 7.27291385 0.99887074 0.99940384 0.49325054;
++	-6.27328365 -0.00036965 0.00022644 7.27291400 0.99887088 0.99940391 0.49325051;
++	-6.27328375 -0.00036960 0.00022642 7.27291415 0.99887101 0.99940398 0.49325068;
++	-6.27328386 -0.00036956 0.00022639 7.27291430 0.99887115 0.99940405 0.49325059;
++	-6.27328396 -0.00036951 0.00022636 7.27291445 0.99887128 0.99940412 0.49325082;
++	-6.27328407 -0.00036947 0.00022634 7.27291460 0.99887142 0.99940419 0.49325077;
++	-6.27328418 -0.00036942 0.00022631 7.27291475 0.99887155 0.99940427 0.49325076;
++	-6.27328428 -0.00036938 0.00022628 7.27291490 0.99887168 0.99940434 0.49325073;
++	-6.27328439 -0.00036934 0.00022626 7.27291505 0.99887182 0.99940441 0.49325073;
++	-6.27328449 -0.00036929 0.00022623 7.27291520 0.99887195 0.99940448 0.49325059;
++	-6.27328460 -0.00036925 0.00022620 7.27291535 0.99887209 0.99940455 0.49325071;
++	-6.27328470 -0.00036920 0.00022617 7.27291550 0.99887222 0.99940462 0.49325075;
++	-6.27328481 -0.00036916 0.00022615 7.27291565 0.99887236 0.99940469 0.49325074;
++	-6.27328491 -0.00036912 0.00022612 7.27291580 0.99887249 0.99940476 0.49325076;
++	-6.27328502 -0.00036907 0.00022609 7.27291595 0.99887263 0.99940483 0.49325069;
++	-6.27328512 -0.00036903 0.00022607 7.27291610 0.99887276 0.99940491 0.49325089;
++	-6.27328523 -0.00036898 0.00022604 7.27291624 0.99887290 0.99940498 0.49325087;
++	-6.27328533 -0.00036894 0.00022601 7.27291639 0.99887303 0.99940505 0.49325089;
++	-6.27328544 -0.00036890 0.00022599 7.27291654 0.99887316 0.99940512 0.49325087;
++	-6.27328555 -0.00036885 0.00022596 7.27291669 0.99887330 0.99940519 0.49325085;
++	-6.27328565 -0.00036881 0.00022593 7.27291684 0.99887343 0.99940526 0.49325080;
++	-6.27328576 -0.00036876 0.00022590 7.27291699 0.99887357 0.99940533 0.49325071;
++	-6.27328586 -0.00036872 0.00022588 7.27291714 0.99887370 0.99940540 0.49325095;
++	-6.27328597 -0.00036868 0.00022585 7.27291729 0.99887384 0.99940547 0.49325080;
++	-6.27328607 -0.00036863 0.00022582 7.27291744 0.99887397 0.99940554 0.49325088;
++	-6.27328618 -0.00036859 0.00022580 7.27291759 0.99887410 0.99940561 0.49325100;
++	-6.27328628 -0.00036855 0.00022577 7.27291774 0.99887424 0.99940568 0.49325106;
++	-6.27328639 -0.00036850 0.00022574 7.27291789 0.99887437 0.99940576 0.49325085;
++	-6.27328649 -0.00036846 0.00022572 7.27291803 0.99887451 0.99940583 0.49325087;
++	-6.27328660 -0.00036841 0.00022569 7.27291818 0.99887464 0.99940590 0.49325084;
++	-6.27328670 -0.00036837 0.00022566 7.27291833 0.99887477 0.99940597 0.49325118;
++	-6.27328681 -0.00036833 0.00022564 7.27291848 0.99887491 0.99940604 0.49325112;
++	-6.27328691 -0.00036828 0.00022561 7.27291863 0.99887504 0.99940611 0.49325104;
++	-6.27328702 -0.00036824 0.00022558 7.27291878 0.99887518 0.99940618 0.49325104;
++	-6.27328712 -0.00036819 0.00022556 7.27291893 0.99887531 0.99940625 0.49325116;
++	-6.27328723 -0.00036815 0.00022553 7.27291907 0.99887544 0.99940632 0.49325111;
++	-6.27328733 -0.00036811 0.00022550 7.27291922 0.99887558 0.99940639 0.49325116;
++	-6.27328744 -0.00036806 0.00022547 7.27291937 0.99887571 0.99940646 0.49325108;
++	-6.27328754 -0.00036802 0.00022545 7.27291952 0.99887584 0.99940653 0.49325111;
++	-6.27328764 -0.00036798 0.00022542 7.27291967 0.99887598 0.99940660 0.49325113;
++	-6.27328775 -0.00036793 0.00022539 7.27291982 0.99887611 0.99940667 0.49325130;
++	-6.27328785 -0.00036789 0.00022537 7.27291997 0.99887625 0.99940674 0.49325114;
++	-6.27328796 -0.00036784 0.00022534 7.27292011 0.99887638 0.99940681 0.49325125;
++	-6.27328806 -0.00036780 0.00022531 7.27292026 0.99887651 0.99940689 0.49325120;
++	-6.27328817 -0.00036776 0.00022529 7.27292041 0.99887665 0.99940696 0.49325118;
++	-6.27328827 -0.00036771 0.00022526 7.27292056 0.99887678 0.99940703 0.49325120;
++	-6.27328838 -0.00036767 0.00022523 7.27292071 0.99887691 0.99940710 0.49325135;
++	-6.27328848 -0.00036763 0.00022521 7.27292086 0.99887705 0.99940717 0.49325134;
++	-6.27328859 -0.00036758 0.00022518 7.27292100 0.99887718 0.99940724 0.49325139;
++	-6.27328869 -0.00036754 0.00022515 7.27292115 0.99887731 0.99940731 0.49325135;
++	-6.27328880 -0.00036749 0.00022513 7.27292130 0.99887745 0.99940738 0.49325126;
++	-6.27328890 -0.00036745 0.00022510 7.27292145 0.99887758 0.99940745 0.49325131;
++	-6.27328900 -0.00036741 0.00022507 7.27292160 0.99887771 0.99940752 0.49325136;
++	-6.27328911 -0.00036736 0.00022505 7.27292174 0.99887785 0.99940759 0.49325152;
++	-6.27328921 -0.00036732 0.00022502 7.27292189 0.99887798 0.99940766 0.49325159;
++	-6.27328932 -0.00036728 0.00022499 7.27292204 0.99887811 0.99940773 0.49325140;
++	-6.27328942 -0.00036723 0.00022497 7.27292219 0.99887825 0.99940780 0.49325141;
++	-6.27328953 -0.00036719 0.00022494 7.27292234 0.99887838 0.99940787 0.49325131;
++	-6.27328963 -0.00036715 0.00022491 7.27292248 0.99887851 0.99940794 0.49325145;
++	-6.27328973 -0.00036710 0.00022489 7.27292263 0.99887864 0.99940801 0.49325145;
++	-6.27328984 -0.00036706 0.00022486 7.27292278 0.99887878 0.99940808 0.49325157;
++	-6.27328994 -0.00036702 0.00022483 7.27292293 0.99887891 0.99940815 0.49325149;
++	-6.27329005 -0.00036697 0.00022481 7.27292307 0.99887904 0.99940822 0.49325164;
++	-6.27329015 -0.00036693 0.00022478 7.27292322 0.99887918 0.99940829 0.49325155;
++	-6.27329025 -0.00036689 0.00022475 7.27292337 0.99887931 0.99940836 0.49325164;
++	-6.27329036 -0.00036684 0.00022473 7.27292352 0.99887944 0.99940843 0.49325151;
++	-6.27329046 -0.00036680 0.00022470 7.27292366 0.99887958 0.99940850 0.49325168;
++	-6.27329057 -0.00036675 0.00022467 7.27292381 0.99887971 0.99940857 0.49325138;
++	-6.27329067 -0.00036671 0.00022465 7.27292396 0.99887984 0.99940864 0.49325171;
++	-6.27329078 -0.00036667 0.00022462 7.27292411 0.99887997 0.99940871 0.49325159;
++	-6.27329088 -0.00036662 0.00022459 7.27292425 0.99888011 0.99940878 0.49325160;
++	-6.27329098 -0.00036658 0.00022457 7.27292440 0.99888024 0.99940885 0.49325177;
++	-6.27329109 -0.00036654 0.00022454 7.27292455 0.99888037 0.99940892 0.49325177;
++	-6.27329119 -0.00036649 0.00022451 7.27292470 0.99888050 0.99940899 0.49325164;
++	-6.27329129 -0.00036645 0.00022449 7.27292484 0.99888064 0.99940906 0.49325172;
++	-6.27329140 -0.00036641 0.00022446 7.27292499 0.99888077 0.99940913 0.49325179;
++	-6.27329150 -0.00036636 0.00022443 7.27292514 0.99888090 0.99940920 0.49325181;
++	-6.27329161 -0.00036632 0.00022441 7.27292529 0.99888103 0.99940927 0.49325178;
++	-6.27329171 -0.00036628 0.00022438 7.27292543 0.99888117 0.99940934 0.49325178;
++	-6.27329181 -0.00036623 0.00022435 7.27292558 0.99888130 0.99940941 0.49325183;
++	-6.27329192 -0.00036619 0.00022433 7.27292573 0.99888143 0.99940948 0.49325179;
++	-6.27329202 -0.00036615 0.00022430 7.27292587 0.99888156 0.99940955 0.49325183;
++	-6.27329212 -0.00036610 0.00022427 7.27292602 0.99888170 0.99940962 0.49325178;
++	-6.27329223 -0.00036606 0.00022425 7.27292617 0.99888183 0.99940969 0.49325167;
++	-6.27329233 -0.00036602 0.00022422 7.27292631 0.99888196 0.99940976 0.49325180;
++	-6.27329244 -0.00036597 0.00022419 7.27292646 0.99888209 0.99940983 0.49325201;
++	-6.27329254 -0.00036593 0.00022417 7.27292661 0.99888222 0.99940990 0.49325190;
++	-6.27329264 -0.00036589 0.00022414 7.27292675 0.99888236 0.99940997 0.49325201;
++	-6.27329275 -0.00036584 0.00022412 7.27292690 0.99888249 0.99941004 0.49325203;
++	-6.27329285 -0.00036580 0.00022409 7.27292705 0.99888262 0.99941011 0.49325195;
++	-6.27329295 -0.00036576 0.00022406 7.27292720 0.99888275 0.99941018 0.49325194;
++	-6.27329306 -0.00036571 0.00022404 7.27292734 0.99888289 0.99941025 0.49325187;
++	-6.27329316 -0.00036567 0.00022401 7.27292749 0.99888302 0.99941032 0.49325203;
++	-6.27329326 -0.00036563 0.00022398 7.27292764 0.99888315 0.99941039 0.49325193;
++	-6.27329337 -0.00036559 0.00022396 7.27292778 0.99888328 0.99941046 0.49325192;
++	-6.27329347 -0.00036554 0.00022393 7.27292793 0.99888341 0.99941053 0.49325212;
++	-6.27329357 -0.00036550 0.00022390 7.27292807 0.99888355 0.99941060 0.49325192;
++	-6.27329368 -0.00036546 0.00022388 7.27292822 0.99888368 0.99941067 0.49325204;
++	-6.27329378 -0.00036541 0.00022385 7.27292837 0.99888381 0.99941074 0.49325210;
++	-6.27329388 -0.00036537 0.00022382 7.27292851 0.99888394 0.99941081 0.49325200;
++	-6.27329399 -0.00036533 0.00022380 7.27292866 0.99888407 0.99941088 0.49325216;
++	-6.27329409 -0.00036528 0.00022377 7.27292881 0.99888420 0.99941095 0.49325212;
++	-6.27329419 -0.00036524 0.00022374 7.27292895 0.99888434 0.99941102 0.49325214;
++	-6.27329430 -0.00036520 0.00022372 7.27292910 0.99888447 0.99941108 0.49325208;
++	-6.27329440 -0.00036515 0.00022369 7.27292925 0.99888460 0.99941115 0.49325230;
++	-6.27329450 -0.00036511 0.00022367 7.27292939 0.99888473 0.99941122 0.49325225;
++	-6.27329461 -0.00036507 0.00022364 7.27292954 0.99888486 0.99941129 0.49325212;
++	-6.27329471 -0.00036502 0.00022361 7.27292968 0.99888499 0.99941136 0.49325221;
++	-6.27329481 -0.00036498 0.00022359 7.27292983 0.99888513 0.99941143 0.49325215;
++	-6.27329491 -0.00036494 0.00022356 7.27292998 0.99888526 0.99941150 0.49325228;
++	-6.27329502 -0.00036490 0.00022353 7.27293012 0.99888539 0.99941157 0.49325236;
++	-6.27329512 -0.00036485 0.00022351 7.27293027 0.99888552 0.99941164 0.49325238;
++	-6.27329522 -0.00036481 0.00022348 7.27293041 0.99888565 0.99941171 0.49325230;
++	-6.27329533 -0.00036477 0.00022345 7.27293056 0.99888578 0.99941178 0.49325233;
++	-6.27329543 -0.00036472 0.00022343 7.27293071 0.99888591 0.99941185 0.49325243;
++	-6.27329553 -0.00036468 0.00022340 7.27293085 0.99888605 0.99941192 0.49325248;
++	-6.27329564 -0.00036464 0.00022338 7.27293100 0.99888618 0.99941199 0.49325226;
++	-6.27329574 -0.00036460 0.00022335 7.27293114 0.99888631 0.99941206 0.49325247;
++	-6.27329584 -0.00036455 0.00022332 7.27293129 0.99888644 0.99941213 0.49325235;
++	-6.27329594 -0.00036451 0.00022330 7.27293143 0.99888657 0.99941219 0.49325238;
++	-6.27329605 -0.00036447 0.00022327 7.27293158 0.99888670 0.99941226 0.49325236;
++	-6.27329615 -0.00036442 0.00022324 7.27293173 0.99888683 0.99941233 0.49325251;
++	-6.27329625 -0.00036438 0.00022322 7.27293187 0.99888696 0.99941240 0.49325244;
++	-6.27329635 -0.00036434 0.00022319 7.27293202 0.99888709 0.99941247 0.49325243;
++	-6.27329646 -0.00036429 0.00022317 7.27293216 0.99888723 0.99941254 0.49325235;
++	-6.27329656 -0.00036425 0.00022314 7.27293231 0.99888736 0.99941261 0.49325265;
++	-6.27329666 -0.00036421 0.00022311 7.27293245 0.99888749 0.99941268 0.49325266;
++	-6.27329677 -0.00036417 0.00022309 7.27293260 0.99888762 0.99941275 0.49325241;
++	-6.27329687 -0.00036412 0.00022306 7.27293274 0.99888775 0.99941282 0.49325251;
++	-6.27329697 -0.00036408 0.00022303 7.27293289 0.99888788 0.99941289 0.49325244;
++	-6.27329707 -0.00036404 0.00022301 7.27293304 0.99888801 0.99941295 0.49325256;
++	-6.27329718 -0.00036399 0.00022298 7.27293318 0.99888814 0.99941302 0.49325261;
++	-6.27329728 -0.00036395 0.00022296 7.27293333 0.99888827 0.99941309 0.49325262;
++	-6.27329738 -0.00036391 0.00022293 7.27293347 0.99888840 0.99941316 0.49325272;
++	-6.27329748 -0.00036387 0.00022290 7.27293362 0.99888853 0.99941323 0.49325264;
++	-6.27329758 -0.00036382 0.00022288 7.27293376 0.99888866 0.99941330 0.49325271;
++	-6.27329769 -0.00036378 0.00022285 7.27293391 0.99888879 0.99941337 0.49325250;
++	-6.27329779 -0.00036374 0.00022282 7.27293405 0.99888893 0.99941344 0.49325276;
++	-6.27329789 -0.00036370 0.00022280 7.27293420 0.99888906 0.99941351 0.49325279;
++	-6.27329799 -0.00036365 0.00022277 7.27293434 0.99888919 0.99941358 0.49325256;
++	-6.27329810 -0.00036361 0.00022275 7.27293449 0.99888932 0.99941364 0.49325269;
++	-6.27329820 -0.00036357 0.00022272 7.27293463 0.99888945 0.99941371 0.49325274;
++	-6.27329830 -0.00036352 0.00022269 7.27293478 0.99888958 0.99941378 0.49325276;
++	-6.27329840 -0.00036348 0.00022267 7.27293492 0.99888971 0.99941385 0.49325275;
++	-6.27329851 -0.00036344 0.00022264 7.27293507 0.99888984 0.99941392 0.49325266;
++	-6.27329861 -0.00036340 0.00022261 7.27293521 0.99888997 0.99941399 0.49325274;
++	-6.27329871 -0.00036335 0.00022259 7.27293536 0.99889010 0.99941406 0.49325275;
++	-6.27329881 -0.00036331 0.00022256 7.27293550 0.99889023 0.99941413 0.49325279;
++	-6.27329891 -0.00036327 0.00022254 7.27293565 0.99889036 0.99941420 0.49325277;
++	-6.27329902 -0.00036323 0.00022251 7.27293579 0.99889049 0.99941426 0.49325299;
++	-6.27329912 -0.00036318 0.00022248 7.27293593 0.99889062 0.99941433 0.49325298;
++	-6.27329922 -0.00036314 0.00022246 7.27293608 0.99889075 0.99941440 0.49325274;
++	-6.27329932 -0.00036310 0.00022243 7.27293622 0.99889088 0.99941447 0.49325294;
++	-6.27329942 -0.00036306 0.00022241 7.27293637 0.99889101 0.99941454 0.49325297;
++	-6.27329953 -0.00036301 0.00022238 7.27293651 0.99889114 0.99941461 0.49325278;
++	-6.27329963 -0.00036297 0.00022235 7.27293666 0.99889127 0.99941468 0.49325281;
++	-6.27329973 -0.00036293 0.00022233 7.27293680 0.99889140 0.99941474 0.49325304;
++	-6.27329983 -0.00036289 0.00022230 7.27293695 0.99889153 0.99941481 0.49325295;
++	-6.27329993 -0.00036284 0.00022228 7.27293709 0.99889166 0.99941488 0.49325311;
++	-6.27330004 -0.00036280 0.00022225 7.27293723 0.99889179 0.99941495 0.49325291;
++	-6.27330014 -0.00036276 0.00022222 7.27293738 0.99889192 0.99941502 0.49325317;
++	-6.27330024 -0.00036272 0.00022220 7.27293752 0.99889205 0.99941509 0.49325298;
++	-6.27330034 -0.00036267 0.00022217 7.27293767 0.99889218 0.99941516 0.49325316;
++	-6.27330044 -0.00036263 0.00022215 7.27293781 0.99889231 0.99941522 0.49325310;
++	-6.27330054 -0.00036259 0.00022212 7.27293796 0.99889244 0.99941529 0.49325314;
++	-6.27330065 -0.00036255 0.00022209 7.27293810 0.99889257 0.99941536 0.49325310;
++	-6.27330075 -0.00036250 0.00022207 7.27293824 0.99889270 0.99941543 0.49325300;
++	-6.27330085 -0.00036246 0.00022204 7.27293839 0.99889283 0.99941550 0.49325323;
++	-6.27330095 -0.00036242 0.00022202 7.27293853 0.99889296 0.99941557 0.49325313;
++	-6.27330105 -0.00036238 0.00022199 7.27293868 0.99889309 0.99941564 0.49325318;
++	-6.27330115 -0.00036233 0.00022196 7.27293882 0.99889322 0.99941570 0.49325325;
++	-6.27330126 -0.00036229 0.00022194 7.27293896 0.99889335 0.99941577 0.49325315;
++	-6.27330136 -0.00036225 0.00022191 7.27293911 0.99889348 0.99941584 0.49325312;
++	-6.27330146 -0.00036221 0.00022189 7.27293925 0.99889361 0.99941591 0.49325327;
++	-6.27330156 -0.00036216 0.00022186 7.27293940 0.99889374 0.99941598 0.49325334;
++	-6.27330166 -0.00036212 0.00022183 7.27293954 0.99889387 0.99941605 0.49325318;
++	-6.27330176 -0.00036208 0.00022181 7.27293968 0.99889400 0.99941611 0.49325339;
++	-6.27330186 -0.00036204 0.00022178 7.27293983 0.99889412 0.99941618 0.49325320;
++	-6.27330197 -0.00036199 0.00022176 7.27293997 0.99889425 0.99941625 0.49325327;
++	-6.27330207 -0.00036195 0.00022173 7.27294011 0.99889438 0.99941632 0.49325329;
++	-6.27330217 -0.00036191 0.00022170 7.27294026 0.99889451 0.99941639 0.49325333;
++	-6.27330227 -0.00036187 0.00022168 7.27294040 0.99889464 0.99941646 0.49325330;
++	-6.27330237 -0.00036182 0.00022165 7.27294055 0.99889477 0.99941652 0.49325321;
++	-6.27330247 -0.00036178 0.00022163 7.27294069 0.99889490 0.99941659 0.49325343;
++	-6.27330257 -0.00036174 0.00022160 7.27294083 0.99889503 0.99941666 0.49325334;
++	-6.27330267 -0.00036170 0.00022157 7.27294098 0.99889516 0.99941673 0.49325333;
++	-6.27330278 -0.00036166 0.00022155 7.27294112 0.99889529 0.99941680 0.49325328;
++	-6.27330288 -0.00036161 0.00022152 7.27294126 0.99889542 0.99941686 0.49325344;
++	-6.27330298 -0.00036157 0.00022150 7.27294141 0.99889555 0.99941693 0.49325340;
++	-6.27330308 -0.00036153 0.00022147 7.27294155 0.99889568 0.99941700 0.49325337;
++	-6.27330318 -0.00036149 0.00022144 7.27294169 0.99889580 0.99941707 0.49325346;
++	-6.27330328 -0.00036144 0.00022142 7.27294184 0.99889593 0.99941714 0.49325350;
++	-6.27330338 -0.00036140 0.00022139 7.27294198 0.99889606 0.99941720 0.49325355;
++	-6.27330348 -0.00036136 0.00022137 7.27294212 0.99889619 0.99941727 0.49325362;
++	-6.27330358 -0.00036132 0.00022134 7.27294227 0.99889632 0.99941734 0.49325356;
++	-6.27330368 -0.00036128 0.00022132 7.27294241 0.99889645 0.99941741 0.49325360;
++	-6.27330379 -0.00036123 0.00022129 7.27294255 0.99889658 0.99941748 0.49325348;
++	-6.27330389 -0.00036119 0.00022126 7.27294269 0.99889671 0.99941754 0.49325378;
++	-6.27330399 -0.00036115 0.00022124 7.27294284 0.99889684 0.99941761 0.49325364;
++	-6.27330409 -0.00036111 0.00022121 7.27294298 0.99889696 0.99941768 0.49325361;
++	-6.27330419 -0.00036107 0.00022119 7.27294312 0.99889709 0.99941775 0.49325386;
++	-6.27330429 -0.00036102 0.00022116 7.27294327 0.99889722 0.99941782 0.49325359;
++	-6.27330439 -0.00036098 0.00022113 7.27294341 0.99889735 0.99941788 0.49325371;
++	-6.27330449 -0.00036094 0.00022111 7.27294355 0.99889748 0.99941795 0.49325375;
++	-6.27330459 -0.00036090 0.00022108 7.27294370 0.99889761 0.99941802 0.49325371;
++	-6.27330469 -0.00036085 0.00022106 7.27294384 0.99889774 0.99941809 0.49325378;
++	-6.27330479 -0.00036081 0.00022103 7.27294398 0.99889786 0.99941816 0.49325370;
++	-6.27330489 -0.00036077 0.00022101 7.27294412 0.99889799 0.99941822 0.49325364;
++	-6.27330499 -0.00036073 0.00022098 7.27294427 0.99889812 0.99941829 0.49325373;
++	-6.27330510 -0.00036069 0.00022095 7.27294441 0.99889825 0.99941836 0.49325372;
++	-6.27330520 -0.00036064 0.00022093 7.27294455 0.99889838 0.99941843 0.49325391;
++	-6.27330530 -0.00036060 0.00022090 7.27294469 0.99889851 0.99941849 0.49325378;
++	-6.27330540 -0.00036056 0.00022088 7.27294484 0.99889863 0.99941856 0.49325387;
++	-6.27330550 -0.00036052 0.00022085 7.27294498 0.99889876 0.99941863 0.49325370;
++	-6.27330560 -0.00036048 0.00022083 7.27294512 0.99889889 0.99941870 0.49325386;
++	-6.27330570 -0.00036043 0.00022080 7.27294526 0.99889902 0.99941877 0.49325387;
++	-6.27330580 -0.00036039 0.00022077 7.27294541 0.99889915 0.99941883 0.49325384;
++	-6.27330590 -0.00036035 0.00022075 7.27294555 0.99889928 0.99941890 0.49325392;
++	-6.27330600 -0.00036031 0.00022072 7.27294569 0.99889940 0.99941897 0.49325387;
++	-6.27330610 -0.00036027 0.00022070 7.27294583 0.99889953 0.99941904 0.49325390;
++	-6.27330620 -0.00036023 0.00022067 7.27294598 0.99889966 0.99941910 0.49325400;
++	-6.27330630 -0.00036018 0.00022065 7.27294612 0.99889979 0.99941917 0.49325409;
++	-6.27330640 -0.00036014 0.00022062 7.27294626 0.99889992 0.99941924 0.49325386;
++	-6.27330650 -0.00036010 0.00022059 7.27294640 0.99890004 0.99941931 0.49325408;
++	-6.27330660 -0.00036006 0.00022057 7.27294654 0.99890017 0.99941937 0.49325391;
++	-6.27330670 -0.00036002 0.00022054 7.27294669 0.99890030 0.99941944 0.49325389;
++	-6.27330680 -0.00035997 0.00022052 7.27294683 0.99890043 0.99941951 0.49325379;
++	-6.27330690 -0.00035993 0.00022049 7.27294697 0.99890056 0.99941958 0.49325409;
++	-6.27330700 -0.00035989 0.00022047 7.27294711 0.99890068 0.99941964 0.49325388;
++	-6.27330710 -0.00035985 0.00022044 7.27294726 0.99890081 0.99941971 0.49325402;
++	-6.27330720 -0.00035981 0.00022041 7.27294740 0.99890094 0.99941978 0.49325423;
++	-6.27330730 -0.00035976 0.00022039 7.27294754 0.99890107 0.99941985 0.49325405;
++	-6.27330740 -0.00035972 0.00022036 7.27294768 0.99890119 0.99941991 0.49325402;
++	-6.27330750 -0.00035968 0.00022034 7.27294782 0.99890132 0.99941998 0.49325409;
++	-6.27330760 -0.00035964 0.00022031 7.27294796 0.99890145 0.99942005 0.49325408;
++	-6.27330770 -0.00035960 0.00022029 7.27294811 0.99890158 0.99942012 0.49325430;
++	-6.27330780 -0.00035956 0.00022026 7.27294825 0.99890171 0.99942018 0.49325412;
++	-6.27330790 -0.00035951 0.00022024 7.27294839 0.99890183 0.99942025 0.49325410;
++	-6.27330800 -0.00035947 0.00022021 7.27294853 0.99890196 0.99942032 0.49325444;
++	-6.27330810 -0.00035943 0.00022018 7.27294867 0.99890209 0.99942039 0.49325431;
++	-6.27330820 -0.00035939 0.00022016 7.27294882 0.99890222 0.99942045 0.49325422;
++	-6.27330830 -0.00035935 0.00022013 7.27294896 0.99890234 0.99942052 0.49325435;
++	-6.27330840 -0.00035931 0.00022011 7.27294910 0.99890247 0.99942059 0.49325426;
++	-6.27330850 -0.00035926 0.00022008 7.27294924 0.99890260 0.99942065 0.49325433;
++	-6.27330860 -0.00035922 0.00022006 7.27294938 0.99890273 0.99942072 0.49325432;
++	-6.27330870 -0.00035918 0.00022003 7.27294952 0.99890285 0.99942079 0.49325444;
++	-6.27330880 -0.00035914 0.00022001 7.27294966 0.99890298 0.99942086 0.49325435;
++	-6.27330890 -0.00035910 0.00021998 7.27294981 0.99890311 0.99942092 0.49325422;
++	-6.27330900 -0.00035906 0.00021995 7.27294995 0.99890323 0.99942099 0.49325439;
++	-6.27330910 -0.00035901 0.00021993 7.27295009 0.99890336 0.99942106 0.49325438;
++	-6.27330920 -0.00035897 0.00021990 7.27295023 0.99890349 0.99942113 0.49325454;
++	-6.27330930 -0.00035893 0.00021988 7.27295037 0.99890362 0.99942119 0.49325448;
++	-6.27330940 -0.00035889 0.00021985 7.27295051 0.99890374 0.99942126 0.49325441;
++	-6.27330950 -0.00035885 0.00021983 7.27295065 0.99890387 0.99942133 0.49325438;
++	-6.27330960 -0.00035881 0.00021980 7.27295079 0.99890400 0.99942139 0.49325444;
++	-6.27330970 -0.00035876 0.00021978 7.27295094 0.99890412 0.99942146 0.49325455;
++	-6.27330980 -0.00035872 0.00021975 7.27295108 0.99890425 0.99942153 0.49325435;
++	-6.27330990 -0.00035868 0.00021972 7.27295122 0.99890438 0.99942159 0.49325446;
++	-6.27331000 -0.00035864 0.00021970 7.27295136 0.99890451 0.99942166 0.49325463;
++	-6.27331010 -0.00035860 0.00021967 7.27295150 0.99890463 0.99942173 0.49325459;
++	-6.27331020 -0.00035856 0.00021965 7.27295164 0.99890476 0.99942180 0.49325444;
++	-6.27331030 -0.00035851 0.00021962 7.27295178 0.99890489 0.99942186 0.49325446;
++	-6.27331040 -0.00035847 0.00021960 7.27295192 0.99890501 0.99942193 0.49325470;
++	-6.27331050 -0.00035843 0.00021957 7.27295206 0.99890514 0.99942200 0.49325447;
++	-6.27331059 -0.00035839 0.00021955 7.27295220 0.99890527 0.99942206 0.49325451;
++	-6.27331069 -0.00035835 0.00021952 7.27295235 0.99890539 0.99942213 0.49325471;
++	-6.27331079 -0.00035831 0.00021950 7.27295249 0.99890552 0.99942220 0.49325479;
++	-6.27331089 -0.00035827 0.00021947 7.27295263 0.99890565 0.99942226 0.49325465;
++	-6.27331099 -0.00035822 0.00021944 7.27295277 0.99890577 0.99942233 0.49325460;
++	-6.27331109 -0.00035818 0.00021942 7.27295291 0.99890590 0.99942240 0.49325463;
++	-6.27331119 -0.00035814 0.00021939 7.27295305 0.99890603 0.99942246 0.49325475;
++	-6.27331129 -0.00035810 0.00021937 7.27295319 0.99890615 0.99942253 0.49325484;
++	-6.27331139 -0.00035806 0.00021934 7.27295333 0.99890628 0.99942260 0.49325478;
++	-6.27331149 -0.00035802 0.00021932 7.27295347 0.99890641 0.99942267 0.49325476;
++	-6.27331159 -0.00035798 0.00021929 7.27295361 0.99890653 0.99942273 0.49325474;
++	-6.27331169 -0.00035793 0.00021927 7.27295375 0.99890666 0.99942280 0.49325471;
++	-6.27331179 -0.00035789 0.00021924 7.27295389 0.99890679 0.99942287 0.49325479;
++	-6.27331188 -0.00035785 0.00021922 7.27295403 0.99890691 0.99942293 0.49325475;
++	-6.27331198 -0.00035781 0.00021919 7.27295417 0.99890704 0.99942300 0.49325483;
++	-6.27331208 -0.00035777 0.00021917 7.27295431 0.99890717 0.99942307 0.49325488;
++	-6.27331218 -0.00035773 0.00021914 7.27295445 0.99890729 0.99942313 0.49325468;
++	-6.27331228 -0.00035769 0.00021911 7.27295459 0.99890742 0.99942320 0.49325487;
++	-6.27331238 -0.00035764 0.00021909 7.27295473 0.99890754 0.99942327 0.49325491;
++	-6.27331248 -0.00035760 0.00021906 7.27295487 0.99890767 0.99942333 0.49325485;
++	-6.27331258 -0.00035756 0.00021904 7.27295501 0.99890780 0.99942340 0.49325494;
++	-6.27331268 -0.00035752 0.00021901 7.27295515 0.99890792 0.99942347 0.49325489;
++	-6.27331277 -0.00035748 0.00021899 7.27295529 0.99890805 0.99942353 0.49325507;
++	-6.27331287 -0.00035744 0.00021896 7.27295544 0.99890818 0.99942360 0.49325487;
++	-6.27331297 -0.00035740 0.00021894 7.27295558 0.99890830 0.99942367 0.49325485;
++	-6.27331307 -0.00035736 0.00021891 7.27295572 0.99890843 0.99942373 0.49325494;
++	-6.27331317 -0.00035731 0.00021889 7.27295586 0.99890855 0.99942380 0.49325502;
++	-6.27331327 -0.00035727 0.00021886 7.27295600 0.99890868 0.99942386 0.49325506;
++	-6.27331337 -0.00035723 0.00021884 7.27295614 0.99890881 0.99942393 0.49325501;
++	-6.27331347 -0.00035719 0.00021881 7.27295628 0.99890893 0.99942400 0.49325503;
++	-6.27331356 -0.00035715 0.00021879 7.27295642 0.99890906 0.99942406 0.49325490;
++	-6.27331366 -0.00035711 0.00021876 7.27295655 0.99890918 0.99942413 0.49325500;
++	-6.27331376 -0.00035707 0.00021874 7.27295669 0.99890931 0.99942420 0.49325510;
++	-6.27331386 -0.00035703 0.00021871 7.27295683 0.99890943 0.99942426 0.49325499;
++	-6.27331396 -0.00035698 0.00021869 7.27295697 0.99890956 0.99942433 0.49325505;
++	-6.27331406 -0.00035694 0.00021866 7.27295711 0.99890969 0.99942440 0.49325506;
++	-6.27331416 -0.00035690 0.00021863 7.27295725 0.99890981 0.99942446 0.49325523;
++	-6.27331425 -0.00035686 0.00021861 7.27295739 0.99890994 0.99942453 0.49325511;
++	-6.27331435 -0.00035682 0.00021858 7.27295753 0.99891006 0.99942460 0.49325502;
++	-6.27331445 -0.00035678 0.00021856 7.27295767 0.99891019 0.99942466 0.49325512;
++	-6.27331455 -0.00035674 0.00021853 7.27295781 0.99891032 0.99942473 0.49325535;
++	-6.27331465 -0.00035670 0.00021851 7.27295795 0.99891044 0.99942479 0.49325526;
++	-6.27331475 -0.00035666 0.00021848 7.27295809 0.99891057 0.99942486 0.49325504;
++	-6.27331485 -0.00035661 0.00021846 7.27295823 0.99891069 0.99942493 0.49325512;
++	-6.27331494 -0.00035657 0.00021843 7.27295837 0.99891082 0.99942499 0.49325533;
++	-6.27331504 -0.00035653 0.00021841 7.27295851 0.99891094 0.99942506 0.49325523;
++	-6.27331514 -0.00035649 0.00021838 7.27295865 0.99891107 0.99942513 0.49325528;
++	-6.27331524 -0.00035645 0.00021836 7.27295879 0.99891119 0.99942519 0.49325526;
++	-6.27331534 -0.00035641 0.00021833 7.27295893 0.99891132 0.99942526 0.49325527;
++	-6.27331543 -0.00035637 0.00021831 7.27295907 0.99891144 0.99942532 0.49325541;
++	-6.27331553 -0.00035633 0.00021828 7.27295921 0.99891157 0.99942539 0.49325526;
++	-6.27331563 -0.00035629 0.00021826 7.27295935 0.99891169 0.99942546 0.49325518;
++	-6.27331573 -0.00035625 0.00021823 7.27295948 0.99891182 0.99942552 0.49325527;
++	-6.27331583 -0.00035620 0.00021821 7.27295962 0.99891195 0.99942559 0.49325543;
++	-6.27331593 -0.00035616 0.00021818 7.27295976 0.99891207 0.99942566 0.49325535;
++	-6.27331602 -0.00035612 0.00021816 7.27295990 0.99891220 0.99942572 0.49325531;
++	-6.27331612 -0.00035608 0.00021813 7.27296004 0.99891232 0.99942579 0.49325537;
++	-6.27331622 -0.00035604 0.00021811 7.27296018 0.99891245 0.99942585 0.49325536;
++	-6.27331632 -0.00035600 0.00021808 7.27296032 0.99891257 0.99942592 0.49325546;
++	-6.27331642 -0.00035596 0.00021806 7.27296046 0.99891270 0.99942599 0.49325549;
++	-6.27331651 -0.00035592 0.00021803 7.27296060 0.99891282 0.99942605 0.49325546;
++	-6.27331661 -0.00035588 0.00021801 7.27296074 0.99891295 0.99942612 0.49325542;
++	-6.27331671 -0.00035584 0.00021798 7.27296087 0.99891307 0.99942618 0.49325537;
++	-6.27331681 -0.00035579 0.00021796 7.27296101 0.99891320 0.99942625 0.49325535;
++	-6.27331691 -0.00035575 0.00021793 7.27296115 0.99891332 0.99942632 0.49325540;
++	-6.27331700 -0.00035571 0.00021791 7.27296129 0.99891345 0.99942638 0.49325546;
++	-6.27331710 -0.00035567 0.00021788 7.27296143 0.99891357 0.99942645 0.49325545;
++	-6.27331720 -0.00035563 0.00021786 7.27296157 0.99891370 0.99942651 0.49325569;
++	-6.27331730 -0.00035559 0.00021783 7.27296171 0.99891382 0.99942658 0.49325550;
++	-6.27331740 -0.00035555 0.00021781 7.27296185 0.99891395 0.99942664 0.49325563;
++	-6.27331749 -0.00035551 0.00021778 7.27296198 0.99891407 0.99942671 0.49325568;
++	-6.27331759 -0.00035547 0.00021776 7.27296212 0.99891420 0.99942678 0.49325547;
++	-6.27331769 -0.00035543 0.00021773 7.27296226 0.99891432 0.99942684 0.49325550;
++	-6.27331779 -0.00035539 0.00021771 7.27296240 0.99891444 0.99942691 0.49325571;
++	-6.27331788 -0.00035535 0.00021768 7.27296254 0.99891457 0.99942697 0.49325568;
++	-6.27331798 -0.00035530 0.00021766 7.27296268 0.99891469 0.99942704 0.49325562;
++	-6.27331808 -0.00035526 0.00021763 7.27296281 0.99891482 0.99942711 0.49325569;
++	-6.27331818 -0.00035522 0.00021761 7.27296295 0.99891494 0.99942717 0.49325576;
++	-6.27331827 -0.00035518 0.00021758 7.27296309 0.99891507 0.99942724 0.49325584;
++	-6.27331837 -0.00035514 0.00021756 7.27296323 0.99891519 0.99942730 0.49325572;
++	-6.27331847 -0.00035510 0.00021753 7.27296337 0.99891532 0.99942737 0.49325557;
++	-6.27331857 -0.00035506 0.00021751 7.27296351 0.99891544 0.99942743 0.49325555;
++	-6.27331866 -0.00035502 0.00021748 7.27296364 0.99891557 0.99942750 0.49325590;
++	-6.27331876 -0.00035498 0.00021746 7.27296378 0.99891569 0.99942757 0.49325582;
++	-6.27331886 -0.00035494 0.00021743 7.27296392 0.99891581 0.99942763 0.49325599;
++	-6.27331896 -0.00035490 0.00021741 7.27296406 0.99891594 0.99942770 0.49325596;
++	-6.27331905 -0.00035486 0.00021738 7.27296420 0.99891606 0.99942776 0.49325600;
++	-6.27331915 -0.00035482 0.00021736 7.27296434 0.99891619 0.99942783 0.49325578;
++	-6.27331925 -0.00035478 0.00021733 7.27296447 0.99891631 0.99942789 0.49325597;
++	-6.27331935 -0.00035473 0.00021731 7.27296461 0.99891644 0.99942796 0.49325578;
++	-6.27331944 -0.00035469 0.00021728 7.27296475 0.99891656 0.99942802 0.49325601;
++	-6.27331954 -0.00035465 0.00021726 7.27296489 0.99891668 0.99942809 0.49325574;
++	-6.27331964 -0.00035461 0.00021723 7.27296503 0.99891681 0.99942816 0.49325598;
++	-6.27331974 -0.00035457 0.00021721 7.27296516 0.99891693 0.99942822 0.49325602;
++	-6.27331983 -0.00035453 0.00021718 7.27296530 0.99891706 0.99942829 0.49325595;
++	-6.27331993 -0.00035449 0.00021716 7.27296544 0.99891718 0.99942835 0.49325608;
++	-6.27332003 -0.00035445 0.00021713 7.27296558 0.99891730 0.99942842 0.49325597;
++	-6.27332012 -0.00035441 0.00021711 7.27296571 0.99891743 0.99942848 0.49325598;
++	-6.27332022 -0.00035437 0.00021708 7.27296585 0.99891755 0.99942855 0.49325613;
++	-6.27332032 -0.00035433 0.00021706 7.27296599 0.99891768 0.99942861 0.49325588;
++	-6.27332042 -0.00035429 0.00021703 7.27296613 0.99891780 0.99942868 0.49325598;
++	-6.27332051 -0.00035425 0.00021701 7.27296626 0.99891792 0.99942874 0.49325592;
++	-6.27332061 -0.00035421 0.00021698 7.27296640 0.99891805 0.99942881 0.49325612;
++	-6.27332071 -0.00035417 0.00021696 7.27296654 0.99891817 0.99942888 0.49325620;
++	-6.27332080 -0.00035413 0.00021693 7.27296668 0.99891830 0.99942894 0.49325610;
++	-6.27332090 -0.00035409 0.00021691 7.27296681 0.99891842 0.99942901 0.49325614;
++	-6.27332100 -0.00035405 0.00021688 7.27296695 0.99891854 0.99942907 0.49325612;
++	-6.27332109 -0.00035400 0.00021686 7.27296709 0.99891867 0.99942914 0.49325613;
++	-6.27332119 -0.00035396 0.00021683 7.27296723 0.99891879 0.99942920 0.49325604;
++	-6.27332129 -0.00035392 0.00021681 7.27296736 0.99891891 0.99942927 0.49325626;
++	-6.27332139 -0.00035388 0.00021678 7.27296750 0.99891904 0.99942933 0.49325625;
++	-6.27332148 -0.00035384 0.00021676 7.27296764 0.99891916 0.99942940 0.49325605;
++	-6.27332158 -0.00035380 0.00021673 7.27296778 0.99891928 0.99942946 0.49325626;
++	-6.27332168 -0.00035376 0.00021671 7.27296791 0.99891941 0.99942953 0.49325629;
++	-6.27332177 -0.00035372 0.00021669 7.27296805 0.99891953 0.99942959 0.49325630;
++	-6.27332187 -0.00035368 0.00021666 7.27296819 0.99891966 0.99942966 0.49325628;
++	-6.27332197 -0.00035364 0.00021664 7.27296833 0.99891978 0.99942972 0.49325635;
++	-6.27332206 -0.00035360 0.00021661 7.27296846 0.99891990 0.99942979 0.49325625;
++	-6.27332216 -0.00035356 0.00021659 7.27296860 0.99892003 0.99942985 0.49325617;
++	-6.27332226 -0.00035352 0.00021656 7.27296874 0.99892015 0.99942992 0.49325641;
++	-6.27332235 -0.00035348 0.00021654 7.27296887 0.99892027 0.99942998 0.49325636;
++	-6.27332245 -0.00035344 0.00021651 7.27296901 0.99892040 0.99943005 0.49325630;
++	-6.27332255 -0.00035340 0.00021649 7.27296915 0.99892052 0.99943011 0.49325637;
++	-6.27332264 -0.00035336 0.00021646 7.27296928 0.99892064 0.99943018 0.49325631;
++	-6.27332274 -0.00035332 0.00021644 7.27296942 0.99892077 0.99943024 0.49325656;
++	-6.27332284 -0.00035328 0.00021641 7.27296956 0.99892089 0.99943031 0.49325631;
++	-6.27332293 -0.00035324 0.00021639 7.27296970 0.99892101 0.99943037 0.49325638;
++	-6.27332303 -0.00035320 0.00021636 7.27296983 0.99892114 0.99943044 0.49325647;
++	-6.27332313 -0.00035316 0.00021634 7.27296997 0.99892126 0.99943050 0.49325639;
++	-6.27332322 -0.00035312 0.00021631 7.27297011 0.99892138 0.99943057 0.49325638;
++	-6.27332332 -0.00035308 0.00021629 7.27297024 0.99892150 0.99943063 0.49325638;
++	-6.27332341 -0.00035304 0.00021626 7.27297038 0.99892163 0.99943070 0.49325643;
++	-6.27332351 -0.00035300 0.00021624 7.27297052 0.99892175 0.99943076 0.49325659;
++	-6.27332361 -0.00035296 0.00021622 7.27297065 0.99892187 0.99943083 0.49325672;
++	-6.27332370 -0.00035291 0.00021619 7.27297079 0.99892200 0.99943089 0.49325654;
++	-6.27332380 -0.00035287 0.00021617 7.27297093 0.99892212 0.99943096 0.49325642;
++	-6.27332390 -0.00035283 0.00021614 7.27297106 0.99892224 0.99943102 0.49325660;
++	-6.27332399 -0.00035279 0.00021612 7.27297120 0.99892237 0.99943109 0.49325667;
++	-6.27332409 -0.00035275 0.00021609 7.27297133 0.99892249 0.99943115 0.49325649;
++	-6.27332418 -0.00035271 0.00021607 7.27297147 0.99892261 0.99943122 0.49325655;
++	-6.27332428 -0.00035267 0.00021604 7.27297161 0.99892273 0.99943128 0.49325662;
++	-6.27332438 -0.00035263 0.00021602 7.27297174 0.99892286 0.99943135 0.49325664;
++	-6.27332447 -0.00035259 0.00021599 7.27297188 0.99892298 0.99943141 0.49325657;
++	-6.27332457 -0.00035255 0.00021597 7.27297202 0.99892310 0.99943148 0.49325670;
++	-6.27332467 -0.00035251 0.00021594 7.27297215 0.99892322 0.99943154 0.49325664;
++	-6.27332476 -0.00035247 0.00021592 7.27297229 0.99892335 0.99943161 0.49325680;
++	-6.27332486 -0.00035243 0.00021590 7.27297243 0.99892347 0.99943167 0.49325677;
++	-6.27332495 -0.00035239 0.00021587 7.27297256 0.99892359 0.99943174 0.49325674;
++	-6.27332505 -0.00035235 0.00021585 7.27297270 0.99892371 0.99943180 0.49325673;
++	-6.27332515 -0.00035231 0.00021582 7.27297283 0.99892384 0.99943187 0.49325687;
++	-6.27332524 -0.00035227 0.00021580 7.27297297 0.99892396 0.99943193 0.49325676;
++	-6.27332534 -0.00035223 0.00021577 7.27297311 0.99892408 0.99943200 0.49325694;
++	-6.27332543 -0.00035219 0.00021575 7.27297324 0.99892420 0.99943206 0.49325684;
++	-6.27332553 -0.00035215 0.00021572 7.27297338 0.99892433 0.99943212 0.49325673;
++	-6.27332563 -0.00035211 0.00021570 7.27297351 0.99892445 0.99943219 0.49325679;
++	-6.27332572 -0.00035207 0.00021567 7.27297365 0.99892457 0.99943225 0.49325687;
++	-6.27332582 -0.00035203 0.00021565 7.27297379 0.99892469 0.99943232 0.49325682;
++	-6.27332591 -0.00035199 0.00021563 7.27297392 0.99892482 0.99943238 0.49325693;
++	-6.27332601 -0.00035195 0.00021560 7.27297406 0.99892494 0.99943245 0.49325706;
++	-6.27332611 -0.00035191 0.00021558 7.27297419 0.99892506 0.99943251 0.49325679;
++	-6.27332620 -0.00035187 0.00021555 7.27297433 0.99892518 0.99943258 0.49325693;
++	-6.27332630 -0.00035183 0.00021553 7.27297446 0.99892531 0.99943264 0.49325690;
++	-6.27332639 -0.00035179 0.00021550 7.27297460 0.99892543 0.99943271 0.49325679;
++	-6.27332649 -0.00035175 0.00021548 7.27297474 0.99892555 0.99943277 0.49325703;
++	-6.27332658 -0.00035171 0.00021545 7.27297487 0.99892567 0.99943283 0.49325709;
++	-6.27332668 -0.00035167 0.00021543 7.27297501 0.99892579 0.99943290 0.49325716;
++	-6.27332678 -0.00035163 0.00021540 7.27297514 0.99892592 0.99943296 0.49325688;
++	-6.27332687 -0.00035159 0.00021538 7.27297528 0.99892604 0.99943303 0.49325701;
++	-6.27332697 -0.00035155 0.00021536 7.27297541 0.99892616 0.99943309 0.49325699;
++	-6.27332706 -0.00035151 0.00021533 7.27297555 0.99892628 0.99943316 0.49325716;
++	-6.27332716 -0.00035147 0.00021531 7.27297569 0.99892640 0.99943322 0.49325705;
++	-6.27332725 -0.00035143 0.00021528 7.27297582 0.99892653 0.99943329 0.49325714;
++	-6.27332735 -0.00035139 0.00021526 7.27297596 0.99892665 0.99943335 0.49325697;
++	-6.27332744 -0.00035135 0.00021523 7.27297609 0.99892677 0.99943341 0.49325706;
++	-6.27332754 -0.00035131 0.00021521 7.27297623 0.99892689 0.99943348 0.49325710;
++	-6.27332763 -0.00035127 0.00021518 7.27297636 0.99892701 0.99943354 0.49325718;
++	-6.27332773 -0.00035123 0.00021516 7.27297650 0.99892714 0.99943361 0.49325714;
++	-6.27332783 -0.00035119 0.00021514 7.27297663 0.99892726 0.99943367 0.49325704;
++	-6.27332792 -0.00035115 0.00021511 7.27297677 0.99892738 0.99943374 0.49325724;
++	-6.27332802 -0.00035111 0.00021509 7.27297690 0.99892750 0.99943380 0.49325727;
++	-6.27332811 -0.00035107 0.00021506 7.27297704 0.99892762 0.99943386 0.49325718;
++	-6.27332821 -0.00035103 0.00021504 7.27297717 0.99892774 0.99943393 0.49325715;
++	-6.27332830 -0.00035099 0.00021501 7.27297731 0.99892787 0.99943399 0.49325736;
++	-6.27332840 -0.00035095 0.00021499 7.27297744 0.99892799 0.99943406 0.49325725;
++	-6.27332849 -0.00035091 0.00021496 7.27297758 0.99892811 0.99943412 0.49325737;
++	-6.27332859 -0.00035087 0.00021494 7.27297771 0.99892823 0.99943418 0.49325733;
++	-6.27332868 -0.00035084 0.00021492 7.27297785 0.99892835 0.99943425 0.49325727;
++	-6.27332878 -0.00035080 0.00021489 7.27297798 0.99892847 0.99943431 0.49325722;
++	-6.27332887 -0.00035076 0.00021487 7.27297812 0.99892859 0.99943438 0.49325726;
++	-6.27332897 -0.00035072 0.00021484 7.27297825 0.99892872 0.99943444 0.49325746;
++	-6.27332906 -0.00035068 0.00021482 7.27297839 0.99892884 0.99943451 0.49325735;
++	-6.27332916 -0.00035064 0.00021479 7.27297852 0.99892896 0.99943457 0.49325729;
++	-6.27332925 -0.00035060 0.00021477 7.27297866 0.99892908 0.99943463 0.49325733;
++	-6.27332935 -0.00035056 0.00021475 7.27297879 0.99892920 0.99943470 0.49325743;
++	-6.27332944 -0.00035052 0.00021472 7.27297893 0.99892932 0.99943476 0.49325745;
++	-6.27332954 -0.00035048 0.00021470 7.27297906 0.99892944 0.99943483 0.49325763;
++	-6.27332963 -0.00035044 0.00021467 7.27297920 0.99892956 0.99943489 0.49325734;
++	-6.27332973 -0.00035040 0.00021465 7.27297933 0.99892969 0.99943495 0.49325743;
++	-6.27332982 -0.00035036 0.00021462 7.27297947 0.99892981 0.99943502 0.49325746;
++	-6.27332992 -0.00035032 0.00021460 7.27297960 0.99892993 0.99943508 0.49325750;
++	-6.27333001 -0.00035028 0.00021458 7.27297973 0.99893005 0.99943515 0.49325754;
++	-6.27333011 -0.00035024 0.00021455 7.27297987 0.99893017 0.99943521 0.49325751;
++	-6.27333020 -0.00035020 0.00021453 7.27298000 0.99893029 0.99943527 0.49325761;
++	-6.27333030 -0.00035016 0.00021450 7.27298014 0.99893041 0.99943534 0.49325752;
++	-6.27333039 -0.00035012 0.00021448 7.27298027 0.99893053 0.99943540 0.49325748;
++	-6.27333049 -0.00035008 0.00021445 7.27298041 0.99893065 0.99943546 0.49325770;
++	-6.27333058 -0.00035004 0.00021443 7.27298054 0.99893078 0.99943553 0.49325749;
++	-6.27333068 -0.00035000 0.00021441 7.27298068 0.99893090 0.99943559 0.49325754;
++	-6.27333077 -0.00034996 0.00021438 7.27298081 0.99893102 0.99943566 0.49325757;
++	-6.27333087 -0.00034992 0.00021436 7.27298094 0.99893114 0.99943572 0.49325772;
++	-6.27333096 -0.00034988 0.00021433 7.27298108 0.99893126 0.99943578 0.49325749;
++	-6.27333106 -0.00034984 0.00021431 7.27298121 0.99893138 0.99943585 0.49325746;
++	-6.27333115 -0.00034980 0.00021428 7.27298135 0.99893150 0.99943591 0.49325763;
++	-6.27333125 -0.00034976 0.00021426 7.27298148 0.99893162 0.99943597 0.49325780;
++	-6.27333134 -0.00034973 0.00021424 7.27298162 0.99893174 0.99943604 0.49325773;
++	-6.27333144 -0.00034969 0.00021421 7.27298175 0.99893186 0.99943610 0.49325774;
++	-6.27333153 -0.00034965 0.00021419 7.27298188 0.99893198 0.99943617 0.49325768;
++	-6.27333162 -0.00034961 0.00021416 7.27298202 0.99893210 0.99943623 0.49325772;
++	-6.27333172 -0.00034957 0.00021414 7.27298215 0.99893223 0.99943629 0.49325780;
++	-6.27333181 -0.00034953 0.00021412 7.27298229 0.99893235 0.99943636 0.49325790;
++	-6.27333191 -0.00034949 0.00021409 7.27298242 0.99893247 0.99943642 0.49325769;
++	-6.27333200 -0.00034945 0.00021407 7.27298255 0.99893259 0.99943648 0.49325784;
++	-6.27333210 -0.00034941 0.00021404 7.27298269 0.99893271 0.99943655 0.49325781;
++	-6.27333219 -0.00034937 0.00021402 7.27298282 0.99893283 0.99943661 0.49325781;
++	-6.27333229 -0.00034933 0.00021399 7.27298296 0.99893295 0.99943668 0.49325775;
++	-6.27333238 -0.00034929 0.00021397 7.27298309 0.99893307 0.99943674 0.49325777;
++	-6.27333247 -0.00034925 0.00021395 7.27298322 0.99893319 0.99943680 0.49325794;
++	-6.27333257 -0.00034921 0.00021392 7.27298336 0.99893331 0.99943687 0.49325786;
++	-6.27333266 -0.00034917 0.00021390 7.27298349 0.99893343 0.99943693 0.49325783;
++	-6.27333276 -0.00034913 0.00021387 7.27298362 0.99893355 0.99943699 0.49325777;
++	-6.27333285 -0.00034909 0.00021385 7.27298376 0.99893367 0.99943706 0.49325800;
++	-6.27333295 -0.00034905 0.00021383 7.27298389 0.99893379 0.99943712 0.49325788;
++	-6.27333304 -0.00034902 0.00021380 7.27298402 0.99893391 0.99943718 0.49325796;
++	-6.27333313 -0.00034898 0.00021378 7.27298416 0.99893403 0.99943725 0.49325777;
++	-6.27333323 -0.00034894 0.00021375 7.27298429 0.99893415 0.99943731 0.49325803;
++	-6.27333332 -0.00034890 0.00021373 7.27298443 0.99893427 0.99943737 0.49325799;
++	-6.27333342 -0.00034886 0.00021370 7.27298456 0.99893439 0.99943744 0.49325815;
++	-6.27333351 -0.00034882 0.00021368 7.27298469 0.99893451 0.99943750 0.49325810;
++	-6.27333360 -0.00034878 0.00021366 7.27298483 0.99893463 0.99943756 0.49325805;
++	-6.27333370 -0.00034874 0.00021363 7.27298496 0.99893475 0.99943763 0.49325805;
++	-6.27333379 -0.00034870 0.00021361 7.27298509 0.99893487 0.99943769 0.49325810;
++	-6.27333389 -0.00034866 0.00021358 7.27298523 0.99893499 0.99943775 0.49325812;
++	-6.27333398 -0.00034862 0.00021356 7.27298536 0.99893511 0.99943782 0.49325800;
++	-6.27333408 -0.00034858 0.00021354 7.27298549 0.99893523 0.99943788 0.49325798;
++	-6.27333417 -0.00034854 0.00021351 7.27298563 0.99893535 0.99943794 0.49325819;
++	-6.27333426 -0.00034850 0.00021349 7.27298576 0.99893547 0.99943801 0.49325809;
++	-6.27333436 -0.00034847 0.00021346 7.27298589 0.99893559 0.99943807 0.49325811;
++	-6.27333445 -0.00034843 0.00021344 7.27298602 0.99893571 0.99943813 0.49325804;
++	-6.27333454 -0.00034839 0.00021342 7.27298616 0.99893583 0.99943820 0.49325814;
++	-6.27333464 -0.00034835 0.00021339 7.27298629 0.99893595 0.99943826 0.49325817;
++	-6.27333473 -0.00034831 0.00021337 7.27298642 0.99893607 0.99943832 0.49325810;
++	-6.27333483 -0.00034827 0.00021334 7.27298656 0.99893619 0.99943839 0.49325810;
++	-6.27333492 -0.00034823 0.00021332 7.27298669 0.99893631 0.99943845 0.49325813;
++	-6.27333501 -0.00034819 0.00021330 7.27298682 0.99893643 0.99943851 0.49325821;
++	-6.27333511 -0.00034815 0.00021327 7.27298696 0.99893655 0.99943858 0.49325825;
++	-6.27333520 -0.00034811 0.00021325 7.27298709 0.99893667 0.99943864 0.49325802;
++	-6.27333530 -0.00034807 0.00021322 7.27298722 0.99893679 0.99943870 0.49325839;
++	-6.27333539 -0.00034803 0.00021320 7.27298735 0.99893691 0.99943877 0.49325824;
++	-6.27333548 -0.00034800 0.00021318 7.27298749 0.99893703 0.99943883 0.49325827;
++	-6.27333558 -0.00034796 0.00021315 7.27298762 0.99893715 0.99943889 0.49325830;
++	-6.27333567 -0.00034792 0.00021313 7.27298775 0.99893727 0.99943895 0.49325817;
++	-6.27333576 -0.00034788 0.00021310 7.27298789 0.99893739 0.99943902 0.49325841;
++	-6.27333586 -0.00034784 0.00021308 7.27298802 0.99893751 0.99943908 0.49325836;
++	-6.27333595 -0.00034780 0.00021306 7.27298815 0.99893763 0.99943914 0.49325836;
++	-6.27333604 -0.00034776 0.00021303 7.27298828 0.99893774 0.99943921 0.49325838;
++	-6.27333614 -0.00034772 0.00021301 7.27298842 0.99893786 0.99943927 0.49325845;
++	-6.27333623 -0.00034768 0.00021298 7.27298855 0.99893798 0.99943933 0.49325848;
++	-6.27333632 -0.00034764 0.00021296 7.27298868 0.99893810 0.99943940 0.49325833;
++	-6.27333642 -0.00034760 0.00021294 7.27298881 0.99893822 0.99943946 0.49325843;
++	-6.27333651 -0.00034757 0.00021291 7.27298895 0.99893834 0.99943952 0.49325849;
++	-6.27333661 -0.00034753 0.00021289 7.27298908 0.99893846 0.99943958 0.49325841;
++	-6.27333670 -0.00034749 0.00021286 7.27298921 0.99893858 0.99943965 0.49325856;
++	-6.27333679 -0.00034745 0.00021284 7.27298934 0.99893870 0.99943971 0.49325841;
++	-6.27333689 -0.00034741 0.00021282 7.27298948 0.99893882 0.99943977 0.49325845;
++	-6.27333698 -0.00034737 0.00021279 7.27298961 0.99893894 0.99943984 0.49325852;
++	-6.27333707 -0.00034733 0.00021277 7.27298974 0.99893906 0.99943990 0.49325863;
++	-6.27333717 -0.00034729 0.00021275 7.27298987 0.99893918 0.99943996 0.49325866;
++	-6.27333726 -0.00034725 0.00021272 7.27299000 0.99893929 0.99944002 0.49325856;
++	-6.27333735 -0.00034721 0.00021270 7.27299014 0.99893941 0.99944009 0.49325854;
++	-6.27333745 -0.00034718 0.00021267 7.27299027 0.99893953 0.99944015 0.49325858;
++	-6.27333754 -0.00034714 0.00021265 7.27299040 0.99893965 0.99944021 0.49325856;
++	-6.27333763 -0.00034710 0.00021263 7.27299053 0.99893977 0.99944028 0.49325873;
++	-6.27333772 -0.00034706 0.00021260 7.27299067 0.99893989 0.99944034 0.49325877;
++	-6.27333782 -0.00034702 0.00021258 7.27299080 0.99894001 0.99944040 0.49325864;
++	-6.27333791 -0.00034698 0.00021255 7.27299093 0.99894013 0.99944046 0.49325857;
++	-6.27333800 -0.00034694 0.00021253 7.27299106 0.99894025 0.99944053 0.49325852;
++	-6.27333810 -0.00034690 0.00021251 7.27299119 0.99894036 0.99944059 0.49325872;
++	-6.27333819 -0.00034686 0.00021248 7.27299133 0.99894048 0.99944065 0.49325865;
++	-6.27333828 -0.00034683 0.00021246 7.27299146 0.99894060 0.99944072 0.49325884;
++	-6.27333838 -0.00034679 0.00021244 7.27299159 0.99894072 0.99944078 0.49325864;
++	-6.27333847 -0.00034675 0.00021241 7.27299172 0.99894084 0.99944084 0.49325865;
++	-6.27333856 -0.00034671 0.00021239 7.27299185 0.99894096 0.99944090 0.49325871;
++	-6.27333866 -0.00034667 0.00021236 7.27299199 0.99894108 0.99944097 0.49325862;
++	-6.27333875 -0.00034663 0.00021234 7.27299212 0.99894120 0.99944103 0.49325892;
++	-6.27333884 -0.00034659 0.00021232 7.27299225 0.99894131 0.99944109 0.49325886;
++	-6.27333893 -0.00034655 0.00021229 7.27299238 0.99894143 0.99944115 0.49325892;
++	-6.27333903 -0.00034652 0.00021227 7.27299251 0.99894155 0.99944122 0.49325878;
++	-6.27333912 -0.00034648 0.00021225 7.27299264 0.99894167 0.99944128 0.49325893;
++	-6.27333921 -0.00034644 0.00021222 7.27299278 0.99894179 0.99944134 0.49325882;
++	-6.27333931 -0.00034640 0.00021220 7.27299291 0.99894191 0.99944140 0.49325880;
++	-6.27333940 -0.00034636 0.00021217 7.27299304 0.99894202 0.99944147 0.49325884;
++	-6.27333949 -0.00034632 0.00021215 7.27299317 0.99894214 0.99944153 0.49325871;
++	-6.27333958 -0.00034628 0.00021213 7.27299330 0.99894226 0.99944159 0.49325888;
++	-6.27333968 -0.00034624 0.00021210 7.27299343 0.99894238 0.99944165 0.49325907;
++	-6.27333977 -0.00034620 0.00021208 7.27299356 0.99894250 0.99944172 0.49325884;
++	-6.27333986 -0.00034617 0.00021206 7.27299370 0.99894262 0.99944178 0.49325906;
++	-6.27333995 -0.00034613 0.00021203 7.27299383 0.99894273 0.99944184 0.49325903;
++	-6.27334005 -0.00034609 0.00021201 7.27299396 0.99894285 0.99944190 0.49325895;
++	-6.27334014 -0.00034605 0.00021198 7.27299409 0.99894297 0.99944197 0.49325883;
++	-6.27334023 -0.00034601 0.00021196 7.27299422 0.99894309 0.99944203 0.49325893;
++	-6.27334033 -0.00034597 0.00021194 7.27299435 0.99894321 0.99944209 0.49325903;
++	-6.27334042 -0.00034593 0.00021191 7.27299448 0.99894333 0.99944215 0.49325919;
++	-6.27334051 -0.00034590 0.00021189 7.27299461 0.99894344 0.99944222 0.49325911;
++	-6.27334060 -0.00034586 0.00021187 7.27299475 0.99894356 0.99944228 0.49325916;
++	-6.27334070 -0.00034582 0.00021184 7.27299488 0.99894368 0.99944234 0.49325910;
++	-6.27334079 -0.00034578 0.00021182 7.27299501 0.99894380 0.99944240 0.49325905;
++	-6.27334088 -0.00034574 0.00021179 7.27299514 0.99894392 0.99944246 0.49325907;
++	-6.27334097 -0.00034570 0.00021177 7.27299527 0.99894403 0.99944253 0.49325918;
++	-6.27334107 -0.00034566 0.00021175 7.27299540 0.99894415 0.99944259 0.49325910;
++	-6.27334116 -0.00034563 0.00021172 7.27299553 0.99894427 0.99944265 0.49325909;
++	-6.27334125 -0.00034559 0.00021170 7.27299566 0.99894439 0.99944271 0.49325903;
++	-6.27334134 -0.00034555 0.00021168 7.27299579 0.99894451 0.99944278 0.49325934;
++	-6.27334143 -0.00034551 0.00021165 7.27299593 0.99894462 0.99944284 0.49325921;
++	-6.27334153 -0.00034547 0.00021163 7.27299606 0.99894474 0.99944290 0.49325916;
++	-6.27334162 -0.00034543 0.00021161 7.27299619 0.99894486 0.99944296 0.49325905;
++	-6.27334171 -0.00034539 0.00021158 7.27299632 0.99894498 0.99944302 0.49325932;
++	-6.27334180 -0.00034536 0.00021156 7.27299645 0.99894509 0.99944309 0.49325918;
++	-6.27334190 -0.00034532 0.00021153 7.27299658 0.99894521 0.99944315 0.49325928;
++	-6.27334199 -0.00034528 0.00021151 7.27299671 0.99894533 0.99944321 0.49325927;
++	-6.27334208 -0.00034524 0.00021149 7.27299684 0.99894545 0.99944327 0.49325910;
++	-6.27334217 -0.00034520 0.00021146 7.27299697 0.99894557 0.99944334 0.49325933;
++	-6.27334226 -0.00034516 0.00021144 7.27299710 0.99894568 0.99944340 0.49325931;
++	-6.27334236 -0.00034512 0.00021142 7.27299723 0.99894580 0.99944346 0.49325913;
++	-6.27334245 -0.00034509 0.00021139 7.27299736 0.99894592 0.99944352 0.49325935;
++	-6.27334254 -0.00034505 0.00021137 7.27299749 0.99894604 0.99944358 0.49325926;
++	-6.27334263 -0.00034501 0.00021135 7.27299762 0.99894615 0.99944365 0.49325931;
++	-6.27334273 -0.00034497 0.00021132 7.27299776 0.99894627 0.99944371 0.49325923;
++	-6.27334282 -0.00034493 0.00021130 7.27299789 0.99894639 0.99944377 0.49325932;
++	-6.27334291 -0.00034489 0.00021128 7.27299802 0.99894651 0.99944383 0.49325937;
++	-6.27334300 -0.00034486 0.00021125 7.27299815 0.99894662 0.99944389 0.49325925;
++	-6.27334309 -0.00034482 0.00021123 7.27299828 0.99894674 0.99944396 0.49325938;
++	-6.27334319 -0.00034478 0.00021120 7.27299841 0.99894686 0.99944402 0.49325937;
++	-6.27334328 -0.00034474 0.00021118 7.27299854 0.99894697 0.99944408 0.49325933;
++	-6.27334337 -0.00034470 0.00021116 7.27299867 0.99894709 0.99944414 0.49325964;
++	-6.27334346 -0.00034466 0.00021113 7.27299880 0.99894721 0.99944420 0.49325932;
++	-6.27334355 -0.00034462 0.00021111 7.27299893 0.99894733 0.99944426 0.49325939;
++	-6.27334364 -0.00034459 0.00021109 7.27299906 0.99894744 0.99944433 0.49325953;
++	-6.27334374 -0.00034455 0.00021106 7.27299919 0.99894756 0.99944439 0.49325955;
++	-6.27334383 -0.00034451 0.00021104 7.27299932 0.99894768 0.99944445 0.49325952;
++	-6.27334392 -0.00034447 0.00021102 7.27299945 0.99894780 0.99944451 0.49325957;
++	-6.27334401 -0.00034443 0.00021099 7.27299958 0.99894791 0.99944457 0.49325952;
++	-6.27334410 -0.00034439 0.00021097 7.27299971 0.99894803 0.99944464 0.49325948;
++	-6.27334420 -0.00034436 0.00021095 7.27299984 0.99894815 0.99944470 0.49325953;
++	-6.27334429 -0.00034432 0.00021092 7.27299997 0.99894826 0.99944476 0.49325969;
++	-6.27334438 -0.00034428 0.00021090 7.27300010 0.99894838 0.99944482 0.49325951;
++	-6.27334447 -0.00034424 0.00021088 7.27300023 0.99894850 0.99944488 0.49325964;
++	-6.27334456 -0.00034420 0.00021085 7.27300036 0.99894861 0.99944494 0.49325959;
++	-6.27334465 -0.00034417 0.00021083 7.27300049 0.99894873 0.99944501 0.49325984;
++	-6.27334475 -0.00034413 0.00021081 7.27300062 0.99894885 0.99944507 0.49325961;
++	-6.27334484 -0.00034409 0.00021078 7.27300075 0.99894897 0.99944513 0.49325970;
++	-6.27334493 -0.00034405 0.00021076 7.27300088 0.99894908 0.99944519 0.49325973;
++	-6.27334502 -0.00034401 0.00021073 7.27300101 0.99894920 0.99944525 0.49325965;
++	-6.27334511 -0.00034397 0.00021071 7.27300114 0.99894932 0.99944531 0.49325961;
++	-6.27334520 -0.00034394 0.00021069 7.27300127 0.99894943 0.99944538 0.49325970;
++	-6.27334529 -0.00034390 0.00021066 7.27300140 0.99894955 0.99944544 0.49325947;
++	-6.27334539 -0.00034386 0.00021064 7.27300153 0.99894967 0.99944550 0.49325970;
++	-6.27334548 -0.00034382 0.00021062 7.27300166 0.99894978 0.99944556 0.49325986;
++	-6.27334557 -0.00034378 0.00021059 7.27300179 0.99894990 0.99944562 0.49325975;
++	-6.27334566 -0.00034374 0.00021057 7.27300192 0.99895002 0.99944568 0.49325973;
++	-6.27334575 -0.00034371 0.00021055 7.27300205 0.99895013 0.99944575 0.49325990;
++	-6.27334584 -0.00034367 0.00021052 7.27300217 0.99895025 0.99944581 0.49325987;
++	-6.27334593 -0.00034363 0.00021050 7.27300230 0.99895037 0.99944587 0.49325975;
++	-6.27334603 -0.00034359 0.00021048 7.27300243 0.99895048 0.99944593 0.49325986;
++	-6.27334612 -0.00034355 0.00021045 7.27300256 0.99895060 0.99944599 0.49325980;
++	-6.27334621 -0.00034352 0.00021043 7.27300269 0.99895072 0.99944605 0.49325999;
++	-6.27334630 -0.00034348 0.00021041 7.27300282 0.99895083 0.99944611 0.49326005;
++	-6.27334639 -0.00034344 0.00021038 7.27300295 0.99895095 0.99944618 0.49325989;
++	-6.27334648 -0.00034340 0.00021036 7.27300308 0.99895106 0.99944624 0.49325982;
++	-6.27334657 -0.00034336 0.00021034 7.27300321 0.99895118 0.99944630 0.49326004;
++	-6.27334666 -0.00034333 0.00021031 7.27300334 0.99895130 0.99944636 0.49325987;
++	-6.27334676 -0.00034329 0.00021029 7.27300347 0.99895141 0.99944642 0.49326003;
++	-6.27334685 -0.00034325 0.00021027 7.27300360 0.99895153 0.99944648 0.49325986;
++	-6.27334694 -0.00034321 0.00021024 7.27300373 0.99895165 0.99944654 0.49326013;
++	-6.27334703 -0.00034317 0.00021022 7.27300386 0.99895176 0.99944661 0.49326001;
++	-6.27334712 -0.00034313 0.00021020 7.27300399 0.99895188 0.99944667 0.49325997;
++	-6.27334721 -0.00034310 0.00021017 7.27300411 0.99895199 0.99944673 0.49325982;
++	-6.27334730 -0.00034306 0.00021015 7.27300424 0.99895211 0.99944679 0.49326004;
++	-6.27334739 -0.00034302 0.00021013 7.27300437 0.99895223 0.99944685 0.49326000;
++	-6.27334748 -0.00034298 0.00021010 7.27300450 0.99895234 0.99944691 0.49326002;
++	-6.27334758 -0.00034294 0.00021008 7.27300463 0.99895246 0.99944697 0.49326019;
++	-6.27334767 -0.00034291 0.00021006 7.27300476 0.99895258 0.99944704 0.49326022;
++	-6.27334776 -0.00034287 0.00021003 7.27300489 0.99895269 0.99944710 0.49325991;
++	-6.27334785 -0.00034283 0.00021001 7.27300502 0.99895281 0.99944716 0.49326017;
++	-6.27334794 -0.00034279 0.00020999 7.27300515 0.99895292 0.99944722 0.49326012;
++	-6.27334803 -0.00034276 0.00020996 7.27300527 0.99895304 0.99944728 0.49326022;
++	-6.27334812 -0.00034272 0.00020994 7.27300540 0.99895316 0.99944734 0.49326001;
++	-6.27334821 -0.00034268 0.00020992 7.27300553 0.99895327 0.99944740 0.49326024;
++	-6.27334830 -0.00034264 0.00020989 7.27300566 0.99895339 0.99944746 0.49326021;
++	-6.27334839 -0.00034260 0.00020987 7.27300579 0.99895350 0.99944753 0.49326029;
++	-6.27334848 -0.00034257 0.00020985 7.27300592 0.99895362 0.99944759 0.49326016;
++	-6.27334857 -0.00034253 0.00020983 7.27300605 0.99895373 0.99944765 0.49326016;
++	-6.27334867 -0.00034249 0.00020980 7.27300618 0.99895385 0.99944771 0.49326045;
++	-6.27334876 -0.00034245 0.00020978 7.27300630 0.99895397 0.99944777 0.49326011;
++	-6.27334885 -0.00034241 0.00020976 7.27300643 0.99895408 0.99944783 0.49326023;
++	-6.27334894 -0.00034238 0.00020973 7.27300656 0.99895420 0.99944789 0.49326007;
++	-6.27334903 -0.00034234 0.00020971 7.27300669 0.99895431 0.99944795 0.49326021;
++	-6.27334912 -0.00034230 0.00020969 7.27300682 0.99895443 0.99944801 0.49326027;
++	-6.27334921 -0.00034226 0.00020966 7.27300695 0.99895454 0.99944807 0.49326040;
++	-6.27334930 -0.00034222 0.00020964 7.27300708 0.99895466 0.99944814 0.49326032;
++	-6.27334939 -0.00034219 0.00020962 7.27300720 0.99895478 0.99944820 0.49326028;
++	-6.27334948 -0.00034215 0.00020959 7.27300733 0.99895489 0.99944826 0.49326022;
++	-6.27334957 -0.00034211 0.00020957 7.27300746 0.99895501 0.99944832 0.49326044;
++	-6.27334966 -0.00034207 0.00020955 7.27300759 0.99895512 0.99944838 0.49326036;
++	-6.27334975 -0.00034204 0.00020952 7.27300772 0.99895524 0.99944844 0.49326052;
++	-6.27334984 -0.00034200 0.00020950 7.27300785 0.99895535 0.99944850 0.49326050;
++	-6.27334993 -0.00034196 0.00020948 7.27300797 0.99895547 0.99944856 0.49326047;
++	-6.27335002 -0.00034192 0.00020945 7.27300810 0.99895558 0.99944862 0.49326049;
++	-6.27335011 -0.00034188 0.00020943 7.27300823 0.99895570 0.99944868 0.49326038;
++	-6.27335021 -0.00034185 0.00020941 7.27300836 0.99895582 0.99944875 0.49326054;
++	-6.27335030 -0.00034181 0.00020938 7.27300849 0.99895593 0.99944881 0.49326041;
++	-6.27335039 -0.00034177 0.00020936 7.27300861 0.99895605 0.99944887 0.49326059;
++	-6.27335048 -0.00034173 0.00020934 7.27300874 0.99895616 0.99944893 0.49326058;
++	-6.27335057 -0.00034170 0.00020932 7.27300887 0.99895628 0.99944899 0.49326043;
++	-6.27335066 -0.00034166 0.00020929 7.27300900 0.99895639 0.99944905 0.49326062;
++	-6.27335075 -0.00034162 0.00020927 7.27300913 0.99895651 0.99944911 0.49326067;
++	-6.27335084 -0.00034158 0.00020925 7.27300925 0.99895662 0.99944917 0.49326078;
++	-6.27335093 -0.00034154 0.00020922 7.27300938 0.99895674 0.99944923 0.49326065;
++	-6.27335102 -0.00034151 0.00020920 7.27300951 0.99895685 0.99944929 0.49326059;
++	-6.27335111 -0.00034147 0.00020918 7.27300964 0.99895697 0.99944935 0.49326055;
++	-6.27335120 -0.00034143 0.00020915 7.27300977 0.99895708 0.99944941 0.49326066;
++	-6.27335129 -0.00034139 0.00020913 7.27300989 0.99895720 0.99944948 0.49326077;
++	-6.27335138 -0.00034136 0.00020911 7.27301002 0.99895731 0.99944954 0.49326066;
++	-6.27335147 -0.00034132 0.00020908 7.27301015 0.99895743 0.99944960 0.49326075;
++	-6.27335156 -0.00034128 0.00020906 7.27301028 0.99895754 0.99944966 0.49326055;
++	-6.27335165 -0.00034124 0.00020904 7.27301040 0.99895766 0.99944972 0.49326086;
++	-6.27335174 -0.00034121 0.00020902 7.27301053 0.99895777 0.99944978 0.49326055;
++	-6.27335183 -0.00034117 0.00020899 7.27301066 0.99895789 0.99944984 0.49326069;
++	-6.27335192 -0.00034113 0.00020897 7.27301079 0.99895800 0.99944990 0.49326076;
++	-6.27335201 -0.00034109 0.00020895 7.27301092 0.99895812 0.99944996 0.49326064;
++	-6.27335210 -0.00034106 0.00020892 7.27301104 0.99895823 0.99945002 0.49326064;
++	-6.27335219 -0.00034102 0.00020890 7.27301117 0.99895835 0.99945008 0.49326079;
++	-6.27335228 -0.00034098 0.00020888 7.27301130 0.99895846 0.99945014 0.49326094;
++	-6.27335237 -0.00034094 0.00020885 7.27301143 0.99895858 0.99945020 0.49326073;
++	-6.27335246 -0.00034091 0.00020883 7.27301155 0.99895869 0.99945026 0.49326067;
++	-6.27335255 -0.00034087 0.00020881 7.27301168 0.99895881 0.99945032 0.49326096;
++	-6.27335264 -0.00034083 0.00020878 7.27301181 0.99895892 0.99945038 0.49326074;
++	-6.27335273 -0.00034079 0.00020876 7.27301194 0.99895903 0.99945045 0.49326072;
++	-6.27335282 -0.00034076 0.00020874 7.27301206 0.99895915 0.99945051 0.49326097;
++	-6.27335291 -0.00034072 0.00020872 7.27301219 0.99895926 0.99945057 0.49326095;
++	-6.27335300 -0.00034068 0.00020869 7.27301232 0.99895938 0.99945063 0.49326083;
++	-6.27335309 -0.00034064 0.00020867 7.27301244 0.99895949 0.99945069 0.49326094;
++	-6.27335318 -0.00034061 0.00020865 7.27301257 0.99895961 0.99945075 0.49326071;
++	-6.27335327 -0.00034057 0.00020862 7.27301270 0.99895972 0.99945081 0.49326094;
++	-6.27335336 -0.00034053 0.00020860 7.27301283 0.99895984 0.99945087 0.49326119;
++	-6.27335345 -0.00034049 0.00020858 7.27301295 0.99895995 0.99945093 0.49326102;
++	-6.27335354 -0.00034046 0.00020856 7.27301308 0.99896007 0.99945099 0.49326095;
++	-6.27335363 -0.00034042 0.00020853 7.27301321 0.99896018 0.99945105 0.49326111;
++	-6.27335372 -0.00034038 0.00020851 7.27301333 0.99896029 0.99945111 0.49326093;
++	-6.27335380 -0.00034034 0.00020849 7.27301346 0.99896041 0.99945117 0.49326092;
++	-6.27335389 -0.00034031 0.00020846 7.27301359 0.99896052 0.99945123 0.49326086;
++	-6.27335398 -0.00034027 0.00020844 7.27301372 0.99896064 0.99945129 0.49326111;
++	-6.27335407 -0.00034023 0.00020842 7.27301384 0.99896075 0.99945135 0.49326085;
++	-6.27335416 -0.00034019 0.00020839 7.27301397 0.99896087 0.99945141 0.49326107;
++	-6.27335425 -0.00034016 0.00020837 7.27301410 0.99896098 0.99945147 0.49326138;
++	-6.27335434 -0.00034012 0.00020835 7.27301422 0.99896109 0.99945153 0.49326107;
++	-6.27335443 -0.00034008 0.00020833 7.27301435 0.99896121 0.99945159 0.49326110;
++	-6.27335452 -0.00034004 0.00020830 7.27301448 0.99896132 0.99945165 0.49326107;
++	-6.27335461 -0.00034001 0.00020828 7.27301460 0.99896144 0.99945171 0.49326111;
++	-6.27335470 -0.00033997 0.00020826 7.27301473 0.99896155 0.99945177 0.49326094;
++	-6.27335479 -0.00033993 0.00020823 7.27301486 0.99896166 0.99945183 0.49326116;
++	-6.27335488 -0.00033989 0.00020821 7.27301498 0.99896178 0.99945189 0.49326119;
++	-6.27335497 -0.00033986 0.00020819 7.27301511 0.99896189 0.99945195 0.49326130;
++	-6.27335506 -0.00033982 0.00020817 7.27301524 0.99896201 0.99945201 0.49326119;
++	-6.27335515 -0.00033978 0.00020814 7.27301536 0.99896212 0.99945207 0.49326105;
++	-6.27335524 -0.00033975 0.00020812 7.27301549 0.99896223 0.99945213 0.49326119;
++	-6.27335533 -0.00033971 0.00020810 7.27301562 0.99896235 0.99945219 0.49326118;
++	-6.27335541 -0.00033967 0.00020807 7.27301574 0.99896246 0.99945225 0.49326126;
++	-6.27335550 -0.00033963 0.00020805 7.27301587 0.99896258 0.99945231 0.49326104;
++	-6.27335559 -0.00033960 0.00020803 7.27301600 0.99896269 0.99945237 0.49326124;
++	-6.27335568 -0.00033956 0.00020801 7.27301612 0.99896280 0.99945243 0.49326121;
++	-6.27335577 -0.00033952 0.00020798 7.27301625 0.99896292 0.99945249 0.49326126;
++	-6.27335586 -0.00033948 0.00020796 7.27301638 0.99896303 0.99945255 0.49326146;
++	-6.27335595 -0.00033945 0.00020794 7.27301650 0.99896315 0.99945261 0.49326123;
++	-6.27335604 -0.00033941 0.00020791 7.27301663 0.99896326 0.99945267 0.49326137;
++	-6.27335613 -0.00033937 0.00020789 7.27301675 0.99896337 0.99945274 0.49326124;
++	-6.27335622 -0.00033934 0.00020787 7.27301688 0.99896349 0.99945279 0.49326144;
++	-6.27335631 -0.00033930 0.00020785 7.27301701 0.99896360 0.99945286 0.49326118;
++	-6.27335639 -0.00033926 0.00020782 7.27301713 0.99896371 0.99945291 0.49326131;
++	-6.27335648 -0.00033922 0.00020780 7.27301726 0.99896383 0.99945297 0.49326131;
++	-6.27335657 -0.00033919 0.00020778 7.27301739 0.99896394 0.99945303 0.49326137;
++	-6.27335666 -0.00033915 0.00020776 7.27301751 0.99896405 0.99945309 0.49326160;
++	-6.27335675 -0.00033911 0.00020773 7.27301764 0.99896417 0.99945315 0.49326160;
++	-6.27335684 -0.00033908 0.00020771 7.27301776 0.99896428 0.99945321 0.49326123;
++	-6.27335693 -0.00033904 0.00020769 7.27301789 0.99896439 0.99945327 0.49326161;
++	-6.27335702 -0.00033900 0.00020766 7.27301802 0.99896451 0.99945333 0.49326152;
++	-6.27335711 -0.00033896 0.00020764 7.27301814 0.99896462 0.99945339 0.49326143;
++	-6.27335720 -0.00033893 0.00020762 7.27301827 0.99896473 0.99945345 0.49326145;
++	-6.27335728 -0.00033889 0.00020760 7.27301839 0.99896485 0.99945351 0.49326173;
++	-6.27335737 -0.00033885 0.00020757 7.27301852 0.99896496 0.99945357 0.49326144;
++	-6.27335746 -0.00033882 0.00020755 7.27301865 0.99896507 0.99945363 0.49326151;
++	-6.27335755 -0.00033878 0.00020753 7.27301877 0.99896519 0.99945369 0.49326137;
++	-6.27335764 -0.00033874 0.00020751 7.27301890 0.99896530 0.99945375 0.49326159;
++	-6.27335773 -0.00033870 0.00020748 7.27301902 0.99896541 0.99945381 0.49326170;
++	-6.27335782 -0.00033867 0.00020746 7.27301915 0.99896553 0.99945387 0.49326167;
++	-6.27335791 -0.00033863 0.00020744 7.27301927 0.99896564 0.99945393 0.49326166;
++	-6.27335799 -0.00033859 0.00020741 7.27301940 0.99896575 0.99945399 0.49326169;
++	-6.27335808 -0.00033856 0.00020739 7.27301953 0.99896587 0.99945405 0.49326162;
++	-6.27335817 -0.00033852 0.00020737 7.27301965 0.99896598 0.99945411 0.49326183;
++	-6.27335826 -0.00033848 0.00020735 7.27301978 0.99896609 0.99945417 0.49326173;
++	-6.27335835 -0.00033845 0.00020732 7.27301990 0.99896621 0.99945423 0.49326171;
++	-6.27335844 -0.00033841 0.00020730 7.27302003 0.99896632 0.99945429 0.49326166;
++	-6.27335853 -0.00033837 0.00020728 7.27302015 0.99896643 0.99945435 0.49326165;
++	-6.27335861 -0.00033833 0.00020726 7.27302028 0.99896655 0.99945441 0.49326181;
++	-6.27335870 -0.00033830 0.00020723 7.27302041 0.99896666 0.99945447 0.49326156;
++	-6.27335879 -0.00033826 0.00020721 7.27302053 0.99896677 0.99945453 0.49326193;
++	-6.27335888 -0.00033822 0.00020719 7.27302066 0.99896688 0.99945459 0.49326181;
++	-6.27335897 -0.00033819 0.00020716 7.27302078 0.99896700 0.99945465 0.49326163;
++	-6.27335906 -0.00033815 0.00020714 7.27302091 0.99896711 0.99945471 0.49326173;
++	-6.27335915 -0.00033811 0.00020712 7.27302103 0.99896722 0.99945477 0.49326188;
++	-6.27335923 -0.00033808 0.00020710 7.27302116 0.99896734 0.99945483 0.49326193;
++	-6.27335932 -0.00033804 0.00020707 7.27302128 0.99896745 0.99945489 0.49326203;
++	-6.27335941 -0.00033800 0.00020705 7.27302141 0.99896756 0.99945495 0.49326181;
++	-6.27335950 -0.00033797 0.00020703 7.27302153 0.99896767 0.99945501 0.49326178;
++	-6.27335959 -0.00033793 0.00020701 7.27302166 0.99896779 0.99945507 0.49326183;
++	-6.27335968 -0.00033789 0.00020698 7.27302178 0.99896790 0.99945512 0.49326183;
++	-6.27335976 -0.00033785 0.00020696 7.27302191 0.99896801 0.99945518 0.49326190;
++	-6.27335985 -0.00033782 0.00020694 7.27302203 0.99896813 0.99945524 0.49326204;
++	-6.27335994 -0.00033778 0.00020692 7.27302216 0.99896824 0.99945530 0.49326197;
++	-6.27336003 -0.00033774 0.00020689 7.27302228 0.99896835 0.99945536 0.49326200;
++	-6.27336012 -0.00033771 0.00020687 7.27302241 0.99896846 0.99945542 0.49326187;
++	-6.27336021 -0.00033767 0.00020685 7.27302253 0.99896858 0.99945548 0.49326214;
++	-6.27336029 -0.00033763 0.00020683 7.27302266 0.99896869 0.99945554 0.49326210;
++	-6.27336038 -0.00033760 0.00020680 7.27302278 0.99896880 0.99945560 0.49326210;
++	-6.27336047 -0.00033756 0.00020678 7.27302291 0.99896891 0.99945566 0.49326201;
++	-6.27336056 -0.00033752 0.00020676 7.27302303 0.99896903 0.99945572 0.49326223;
++	-6.27336065 -0.00033749 0.00020674 7.27302316 0.99896914 0.99945578 0.49326214;
++	-6.27336073 -0.00033745 0.00020671 7.27302328 0.99896925 0.99945584 0.49326184;
++	-6.27336082 -0.00033741 0.00020669 7.27302341 0.99896936 0.99945590 0.49326190;
++	-6.27336091 -0.00033738 0.00020667 7.27302353 0.99896948 0.99945596 0.49326192;
++	-6.27336100 -0.00033734 0.00020665 7.27302366 0.99896959 0.99945602 0.49326215;
++	-6.27336109 -0.00033730 0.00020662 7.27302378 0.99896970 0.99945607 0.49326198;
++	-6.27336117 -0.00033727 0.00020660 7.27302391 0.99896981 0.99945613 0.49326211;
++	-6.27336126 -0.00033723 0.00020658 7.27302403 0.99896992 0.99945619 0.49326202;
++	-6.27336135 -0.00033719 0.00020656 7.27302416 0.99897004 0.99945625 0.49326208;
++	-6.27336144 -0.00033716 0.00020653 7.27302428 0.99897015 0.99945631 0.49326216;
++	-6.27336153 -0.00033712 0.00020651 7.27302441 0.99897026 0.99945637 0.49326199;
++	-6.27336161 -0.00033708 0.00020649 7.27302453 0.99897037 0.99945643 0.49326218;
++	-6.27336170 -0.00033705 0.00020647 7.27302466 0.99897049 0.99945649 0.49326214;
++	-6.27336179 -0.00033701 0.00020644 7.27302478 0.99897060 0.99945655 0.49326240;
++	-6.27336188 -0.00033697 0.00020642 7.27302491 0.99897071 0.99945661 0.49326199;
++	-6.27336197 -0.00033694 0.00020640 7.27302503 0.99897082 0.99945667 0.49326203;
++	-6.27336205 -0.00033690 0.00020638 7.27302515 0.99897093 0.99945673 0.49326224;
++	-6.27336214 -0.00033686 0.00020635 7.27302528 0.99897105 0.99945679 0.49326220;
++	-6.27336223 -0.00033683 0.00020633 7.27302540 0.99897116 0.99945684 0.49326222;
++	-6.27336232 -0.00033679 0.00020631 7.27302553 0.99897127 0.99945690 0.49326242;
++	-6.27336240 -0.00033675 0.00020629 7.27302565 0.99897138 0.99945696 0.49326213;
++	-6.27336249 -0.00033672 0.00020626 7.27302578 0.99897149 0.99945702 0.49326219;
++	-6.27336258 -0.00033668 0.00020624 7.27302590 0.99897161 0.99945708 0.49326219;
++	-6.27336267 -0.00033664 0.00020622 7.27302603 0.99897172 0.99945714 0.49326250;
++	-6.27336275 -0.00033661 0.00020620 7.27302615 0.99897183 0.99945720 0.49326244;
++	-6.27336284 -0.00033657 0.00020617 7.27302627 0.99897194 0.99945726 0.49326221;
++	-6.27336293 -0.00033653 0.00020615 7.27302640 0.99897205 0.99945732 0.49326264;
++	-6.27336302 -0.00033650 0.00020613 7.27302652 0.99897216 0.99945738 0.49326232;
++	-6.27336311 -0.00033646 0.00020611 7.27302665 0.99897228 0.99945743 0.49326230;
++	-6.27336319 -0.00033642 0.00020608 7.27302677 0.99897239 0.99945749 0.49326227;
++	-6.27336328 -0.00033639 0.00020606 7.27302689 0.99897250 0.99945755 0.49326245;
++	-6.27336337 -0.00033635 0.00020604 7.27302702 0.99897261 0.99945761 0.49326242;
++	-6.27336346 -0.00033631 0.00020602 7.27302714 0.99897272 0.99945767 0.49326246;
++	-6.27336354 -0.00033628 0.00020599 7.27302727 0.99897283 0.99945773 0.49326241;
++	-6.27336363 -0.00033624 0.00020597 7.27302739 0.99897295 0.99945779 0.49326240;
++	-6.27336372 -0.00033620 0.00020595 7.27302751 0.99897306 0.99945785 0.49326249;
++	-6.27336381 -0.00033617 0.00020593 7.27302764 0.99897317 0.99945791 0.49326270;
++	-6.27336389 -0.00033613 0.00020590 7.27302776 0.99897328 0.99945797 0.49326235;
++	-6.27336398 -0.00033609 0.00020588 7.27302789 0.99897339 0.99945802 0.49326239;
++	-6.27336407 -0.00033606 0.00020586 7.27302801 0.99897350 0.99945808 0.49326248;
++	-6.27336415 -0.00033602 0.00020584 7.27302813 0.99897362 0.99945814 0.49326264;
++	-6.27336424 -0.00033598 0.00020582 7.27302826 0.99897373 0.99945820 0.49326263;
++	-6.27336433 -0.00033595 0.00020579 7.27302838 0.99897384 0.99945826 0.49326243;
++	-6.27336442 -0.00033591 0.00020577 7.27302851 0.99897395 0.99945832 0.49326267;
++	-6.27336450 -0.00033587 0.00020575 7.27302863 0.99897406 0.99945838 0.49326234;
++	-6.27336459 -0.00033584 0.00020573 7.27302875 0.99897417 0.99945844 0.49326251;
++	-6.27336468 -0.00033580 0.00020570 7.27302888 0.99897428 0.99945849 0.49326259;
++	-6.27336477 -0.00033577 0.00020568 7.27302900 0.99897439 0.99945855 0.49326266;
++	-6.27336485 -0.00033573 0.00020566 7.27302912 0.99897451 0.99945861 0.49326257;
++	-6.27336494 -0.00033569 0.00020564 7.27302925 0.99897462 0.99945867 0.49326257;
++	-6.27336503 -0.00033566 0.00020561 7.27302937 0.99897473 0.99945873 0.49326264;
++	-6.27336511 -0.00033562 0.00020559 7.27302949 0.99897484 0.99945879 0.49326274;
++	-6.27336520 -0.00033558 0.00020557 7.27302962 0.99897495 0.99945885 0.49326286;
++	-6.27336529 -0.00033555 0.00020555 7.27302974 0.99897506 0.99945891 0.49326289;
++	-6.27336538 -0.00033551 0.00020553 7.27302986 0.99897517 0.99945896 0.49326274;
++	-6.27336546 -0.00033547 0.00020550 7.27302999 0.99897528 0.99945902 0.49326267;
++	-6.27336555 -0.00033544 0.00020548 7.27303011 0.99897540 0.99945908 0.49326282;
++	-6.27336564 -0.00033540 0.00020546 7.27303023 0.99897551 0.99945914 0.49326268;
++	-6.27336572 -0.00033537 0.00020544 7.27303036 0.99897562 0.99945920 0.49326305;
++	-6.27336581 -0.00033533 0.00020541 7.27303048 0.99897573 0.99945926 0.49326276;
++	-6.27336590 -0.00033529 0.00020539 7.27303060 0.99897584 0.99945932 0.49326281;
++	-6.27336598 -0.00033526 0.00020537 7.27303073 0.99897595 0.99945937 0.49326294;
++	-6.27336607 -0.00033522 0.00020535 7.27303085 0.99897606 0.99945943 0.49326286;
++	-6.27336616 -0.00033518 0.00020532 7.27303097 0.99897617 0.99945949 0.49326281;
++	-6.27336625 -0.00033515 0.00020530 7.27303110 0.99897628 0.99945955 0.49326286;
++	-6.27336633 -0.00033511 0.00020528 7.27303122 0.99897639 0.99945961 0.49326297;
++	-6.27336642 -0.00033508 0.00020526 7.27303134 0.99897650 0.99945967 0.49326279;
++	-6.27336651 -0.00033504 0.00020524 7.27303147 0.99897662 0.99945973 0.49326311;
++	-6.27336659 -0.00033500 0.00020521 7.27303159 0.99897673 0.99945978 0.49326289;
++	-6.27336668 -0.00033497 0.00020519 7.27303171 0.99897684 0.99945984 0.49326305;
++	-6.27336677 -0.00033493 0.00020517 7.27303184 0.99897695 0.99945990 0.49326297;
++	-6.27336685 -0.00033489 0.00020515 7.27303196 0.99897706 0.99945996 0.49326277;
++	-6.27336694 -0.00033486 0.00020512 7.27303208 0.99897717 0.99946002 0.49326308;
++	-6.27336703 -0.00033482 0.00020510 7.27303221 0.99897728 0.99946008 0.49326289;
++	-6.27336711 -0.00033479 0.00020508 7.27303233 0.99897739 0.99946013 0.49326298;
++	-6.27336720 -0.00033475 0.00020506 7.27303245 0.99897750 0.99946019 0.49326300;
++	-6.27336729 -0.00033471 0.00020504 7.27303257 0.99897761 0.99946025 0.49326304;
++	-6.27336737 -0.00033468 0.00020501 7.27303270 0.99897772 0.99946031 0.49326311;
++	-6.27336746 -0.00033464 0.00020499 7.27303282 0.99897783 0.99946037 0.49326309;
++	-6.27336755 -0.00033460 0.00020497 7.27303294 0.99897794 0.99946043 0.49326303;
++	-6.27336763 -0.00033457 0.00020495 7.27303306 0.99897805 0.99946048 0.49326308;
++	-6.27336772 -0.00033453 0.00020493 7.27303319 0.99897816 0.99946054 0.49326287;
++	-6.27336781 -0.00033450 0.00020490 7.27303331 0.99897827 0.99946060 0.49326314;
++	-6.27336789 -0.00033446 0.00020488 7.27303343 0.99897839 0.99946066 0.49326307;
++	-6.27336798 -0.00033442 0.00020486 7.27303356 0.99897850 0.99946072 0.49326307;
++	-6.27336807 -0.00033439 0.00020484 7.27303368 0.99897861 0.99946078 0.49326322;
++	-6.27336815 -0.00033435 0.00020481 7.27303380 0.99897872 0.99946083 0.49326311;
++	-6.27336824 -0.00033432 0.00020479 7.27303392 0.99897883 0.99946089 0.49326322;
++	-6.27336833 -0.00033428 0.00020477 7.27303405 0.99897894 0.99946095 0.49326339;
++	-6.27336841 -0.00033424 0.00020475 7.27303417 0.99897905 0.99946101 0.49326319;
++	-6.27336850 -0.00033421 0.00020473 7.27303429 0.99897916 0.99946107 0.49326315;
++	-6.27336858 -0.00033417 0.00020470 7.27303441 0.99897927 0.99946113 0.49326326;
++	-6.27336867 -0.00033413 0.00020468 7.27303454 0.99897938 0.99946118 0.49326320;
++	-6.27336876 -0.00033410 0.00020466 7.27303466 0.99897949 0.99946124 0.49326335;
++	-6.27336884 -0.00033406 0.00020464 7.27303478 0.99897960 0.99946130 0.49326321;
++	-6.27336893 -0.00033403 0.00020462 7.27303490 0.99897971 0.99946136 0.49326341;
++	-6.27336902 -0.00033399 0.00020459 7.27303503 0.99897982 0.99946142 0.49326319;
++	-6.27336910 -0.00033395 0.00020457 7.27303515 0.99897993 0.99946147 0.49326349;
++	-6.27336919 -0.00033392 0.00020455 7.27303527 0.99898004 0.99946153 0.49326330;
++	-6.27336927 -0.00033388 0.00020453 7.27303539 0.99898015 0.99946159 0.49326316;
++	-6.27336936 -0.00033385 0.00020451 7.27303551 0.99898026 0.99946165 0.49326319;
++	-6.27336945 -0.00033381 0.00020448 7.27303564 0.99898037 0.99946171 0.49326337;
++	-6.27336953 -0.00033377 0.00020446 7.27303576 0.99898048 0.99946176 0.49326350;
++	-6.27336962 -0.00033374 0.00020444 7.27303588 0.99898059 0.99946182 0.49326333;
++	-6.27336971 -0.00033370 0.00020442 7.27303600 0.99898070 0.99946188 0.49326343;
++	-6.27336979 -0.00033367 0.00020439 7.27303613 0.99898081 0.99946194 0.49326342;
++	-6.27336988 -0.00033363 0.00020437 7.27303625 0.99898092 0.99946200 0.49326348;
++	-6.27336996 -0.00033359 0.00020435 7.27303637 0.99898103 0.99946205 0.49326358;
++	-6.27337005 -0.00033356 0.00020433 7.27303649 0.99898114 0.99946211 0.49326344;
++	-6.27337014 -0.00033352 0.00020431 7.27303661 0.99898125 0.99946217 0.49326333;
++	-6.27337022 -0.00033349 0.00020428 7.27303674 0.99898136 0.99946223 0.49326344;
++	-6.27337031 -0.00033345 0.00020426 7.27303686 0.99898147 0.99946229 0.49326346;
++	-6.27337039 -0.00033342 0.00020424 7.27303698 0.99898158 0.99946234 0.49326354;
++	-6.27337048 -0.00033338 0.00020422 7.27303710 0.99898169 0.99946240 0.49326336;
++	-6.27337057 -0.00033334 0.00020420 7.27303722 0.99898180 0.99946246 0.49326349;
++	-6.27337065 -0.00033331 0.00020417 7.27303734 0.99898191 0.99946252 0.49326348;
++	-6.27337074 -0.00033327 0.00020415 7.27303747 0.99898202 0.99946258 0.49326342;
++	-6.27337082 -0.00033324 0.00020413 7.27303759 0.99898213 0.99946263 0.49326343;
++	-6.27337091 -0.00033320 0.00020411 7.27303771 0.99898224 0.99946269 0.49326362;
++	-6.27337100 -0.00033316 0.00020409 7.27303783 0.99898234 0.99946275 0.49326356;
++	-6.27337108 -0.00033313 0.00020406 7.27303795 0.99898245 0.99946281 0.49326362;
++	-6.27337117 -0.00033309 0.00020404 7.27303808 0.99898256 0.99946287 0.49326353;
++	-6.27337125 -0.00033306 0.00020402 7.27303820 0.99898267 0.99946292 0.49326384;
++	-6.27337134 -0.00033302 0.00020400 7.27303832 0.99898278 0.99946298 0.49326355;
++	-6.27337142 -0.00033298 0.00020398 7.27303844 0.99898289 0.99946304 0.49326361;
++	-6.27337151 -0.00033295 0.00020395 7.27303856 0.99898300 0.99946310 0.49326362;
++	-6.27337160 -0.00033291 0.00020393 7.27303868 0.99898311 0.99946315 0.49326349;
++	-6.27337168 -0.00033288 0.00020391 7.27303880 0.99898322 0.99946321 0.49326369;
++	-6.27337177 -0.00033284 0.00020389 7.27303893 0.99898333 0.99946327 0.49326369;
++	-6.27337185 -0.00033281 0.00020387 7.27303905 0.99898344 0.99946333 0.49326369;
++	-6.27337194 -0.00033277 0.00020385 7.27303917 0.99898355 0.99946338 0.49326367;
++	-6.27337202 -0.00033273 0.00020382 7.27303929 0.99898366 0.99946344 0.49326359;
++	-6.27337211 -0.00033270 0.00020380 7.27303941 0.99898377 0.99946350 0.49326376;
++	-6.27337220 -0.00033266 0.00020378 7.27303953 0.99898388 0.99946356 0.49326382;
++	-6.27337228 -0.00033263 0.00020376 7.27303965 0.99898399 0.99946362 0.49326384;
++	-6.27337237 -0.00033259 0.00020374 7.27303978 0.99898409 0.99946367 0.49326379;
++	-6.27337245 -0.00033256 0.00020371 7.27303990 0.99898420 0.99946373 0.49326389;
++	-6.27337254 -0.00033252 0.00020369 7.27304002 0.99898431 0.99946379 0.49326390;
++	-6.27337262 -0.00033248 0.00020367 7.27304014 0.99898442 0.99946385 0.49326379;
++	-6.27337271 -0.00033245 0.00020365 7.27304026 0.99898453 0.99946390 0.49326384;
++	-6.27337279 -0.00033241 0.00020363 7.27304038 0.99898464 0.99946396 0.49326381;
++	-6.27337288 -0.00033238 0.00020360 7.27304050 0.99898475 0.99946402 0.49326372;
++	-6.27337297 -0.00033234 0.00020358 7.27304062 0.99898486 0.99946408 0.49326377;
++	-6.27337305 -0.00033231 0.00020356 7.27304075 0.99898497 0.99946413 0.49326406;
++	-6.27337314 -0.00033227 0.00020354 7.27304087 0.99898508 0.99946419 0.49326380;
++	-6.27337322 -0.00033223 0.00020352 7.27304099 0.99898519 0.99946425 0.49326407;
++	-6.27337331 -0.00033220 0.00020350 7.27304111 0.99898529 0.99946431 0.49326377;
++	-6.27337339 -0.00033216 0.00020347 7.27304123 0.99898540 0.99946436 0.49326399;
++	-6.27337348 -0.00033213 0.00020345 7.27304135 0.99898551 0.99946442 0.49326392;
++	-6.27337356 -0.00033209 0.00020343 7.27304147 0.99898562 0.99946448 0.49326402;
++	-6.27337365 -0.00033206 0.00020341 7.27304159 0.99898573 0.99946454 0.49326407;
++	-6.27337373 -0.00033202 0.00020339 7.27304171 0.99898584 0.99946459 0.49326397;
++	-6.27337382 -0.00033198 0.00020336 7.27304183 0.99898595 0.99946465 0.49326388;
++	-6.27337390 -0.00033195 0.00020334 7.27304196 0.99898606 0.99946471 0.49326400;
++	-6.27337399 -0.00033191 0.00020332 7.27304208 0.99898616 0.99946477 0.49326405;
++	-6.27337407 -0.00033188 0.00020330 7.27304220 0.99898627 0.99946482 0.49326405;
++	-6.27337416 -0.00033184 0.00020328 7.27304232 0.99898638 0.99946488 0.49326395;
++	-6.27337425 -0.00033181 0.00020326 7.27304244 0.99898649 0.99946494 0.49326406;
++	-6.27337433 -0.00033177 0.00020323 7.27304256 0.99898660 0.99946500 0.49326412;
++	-6.27337442 -0.00033174 0.00020321 7.27304268 0.99898671 0.99946505 0.49326418;
++	-6.27337450 -0.00033170 0.00020319 7.27304280 0.99898682 0.99946511 0.49326405;
++	-6.27337459 -0.00033166 0.00020317 7.27304292 0.99898693 0.99946517 0.49326394;
++	-6.27337467 -0.00033163 0.00020315 7.27304304 0.99898703 0.99946522 0.49326407;
++	-6.27337476 -0.00033159 0.00020312 7.27304316 0.99898714 0.99946528 0.49326381;
++	-6.27337484 -0.00033156 0.00020310 7.27304328 0.99898725 0.99946534 0.49326400;
++	-6.27337493 -0.00033152 0.00020308 7.27304340 0.99898736 0.99946540 0.49326414;
++	-6.27337501 -0.00033149 0.00020306 7.27304352 0.99898747 0.99946545 0.49326426;
++	-6.27337510 -0.00033145 0.00020304 7.27304364 0.99898758 0.99946551 0.49326422;
++	-6.27337518 -0.00033142 0.00020302 7.27304376 0.99898768 0.99946557 0.49326412;
++	-6.27337527 -0.00033138 0.00020299 7.27304389 0.99898779 0.99946563 0.49326410;
++	-6.27337535 -0.00033135 0.00020297 7.27304401 0.99898790 0.99946568 0.49326415;
++	-6.27337544 -0.00033131 0.00020295 7.27304413 0.99898801 0.99946574 0.49326422;
++	-6.27337552 -0.00033127 0.00020293 7.27304425 0.99898812 0.99946580 0.49326416;
++	-6.27337561 -0.00033124 0.00020291 7.27304437 0.99898823 0.99946585 0.49326449;
++	-6.27337569 -0.00033120 0.00020289 7.27304449 0.99898833 0.99946591 0.49326425;
++	-6.27337578 -0.00033117 0.00020286 7.27304461 0.99898844 0.99946597 0.49326435;
++	-6.27337586 -0.00033113 0.00020284 7.27304473 0.99898855 0.99946603 0.49326445;
++	-6.27337594 -0.00033110 0.00020282 7.27304485 0.99898866 0.99946608 0.49326455;
++	-6.27337603 -0.00033106 0.00020280 7.27304497 0.99898877 0.99946614 0.49326433;
++	-6.27337611 -0.00033103 0.00020278 7.27304509 0.99898888 0.99946620 0.49326418;
++	-6.27337620 -0.00033099 0.00020275 7.27304521 0.99898898 0.99946625 0.49326429;
++	-6.27337628 -0.00033096 0.00020273 7.27304533 0.99898909 0.99946631 0.49326433;
++	-6.27337637 -0.00033092 0.00020271 7.27304545 0.99898920 0.99946637 0.49326438;
++	-6.27337645 -0.00033088 0.00020269 7.27304557 0.99898931 0.99946643 0.49326440;
++	-6.27337654 -0.00033085 0.00020267 7.27304569 0.99898942 0.99946648 0.49326448;
++	-6.27337662 -0.00033081 0.00020265 7.27304581 0.99898952 0.99946654 0.49326440;
++	-6.27337671 -0.00033078 0.00020262 7.27304593 0.99898963 0.99946660 0.49326441;
++	-6.27337679 -0.00033074 0.00020260 7.27304605 0.99898974 0.99946665 0.49326439;
++	-6.27337688 -0.00033071 0.00020258 7.27304617 0.99898985 0.99946671 0.49326444;
++	-6.27337696 -0.00033067 0.00020256 7.27304629 0.99898996 0.99946677 0.49326437;
++	-6.27337705 -0.00033064 0.00020254 7.27304641 0.99899006 0.99946682 0.49326463;
++	-6.27337713 -0.00033060 0.00020252 7.27304653 0.99899017 0.99946688 0.49326433;
++	-6.27337721 -0.00033057 0.00020250 7.27304665 0.99899028 0.99946694 0.49326452;
++	-6.27337730 -0.00033053 0.00020247 7.27304677 0.99899039 0.99946700 0.49326464;
++	-6.27337738 -0.00033050 0.00020245 7.27304689 0.99899050 0.99946705 0.49326462;
++	-6.27337747 -0.00033046 0.00020243 7.27304701 0.99899060 0.99946711 0.49326446;
++	-6.27337755 -0.00033043 0.00020241 7.27304713 0.99899071 0.99946717 0.49326448;
++	-6.27337764 -0.00033039 0.00020239 7.27304725 0.99899082 0.99946722 0.49326479;
++	-6.27337772 -0.00033035 0.00020237 7.27304737 0.99899093 0.99946728 0.49326445;
++	-6.27337781 -0.00033032 0.00020234 7.27304749 0.99899103 0.99946734 0.49326446;
++	-6.27337789 -0.00033028 0.00020232 7.27304761 0.99899114 0.99946739 0.49326446;
++	-6.27337797 -0.00033025 0.00020230 7.27304773 0.99899125 0.99946745 0.49326456;
++	-6.27337806 -0.00033021 0.00020228 7.27304785 0.99899136 0.99946751 0.49326462;
++	-6.27337814 -0.00033018 0.00020226 7.27304796 0.99899146 0.99946756 0.49326466;
++	-6.27337823 -0.00033014 0.00020224 7.27304808 0.99899157 0.99946762 0.49326469;
++	-6.27337831 -0.00033011 0.00020221 7.27304820 0.99899168 0.99946768 0.49326455;
++	-6.27337840 -0.00033007 0.00020219 7.27304832 0.99899179 0.99946773 0.49326445;
++	-6.27337848 -0.00033004 0.00020217 7.27304844 0.99899190 0.99946779 0.49326466;
++	-6.27337856 -0.00033000 0.00020215 7.27304856 0.99899200 0.99946785 0.49326467;
++	-6.27337865 -0.00032997 0.00020213 7.27304868 0.99899211 0.99946790 0.49326472;
++	-6.27337873 -0.00032993 0.00020211 7.27304880 0.99899222 0.99946796 0.49326465;
++	-6.27337882 -0.00032990 0.00020208 7.27304892 0.99899233 0.99946802 0.49326487;
++	-6.27337890 -0.00032986 0.00020206 7.27304904 0.99899243 0.99946807 0.49326453;
++	-6.27337899 -0.00032983 0.00020204 7.27304916 0.99899254 0.99946813 0.49326462;
++	-6.27337907 -0.00032979 0.00020202 7.27304928 0.99899265 0.99946819 0.49326466;
++	-6.27337915 -0.00032976 0.00020200 7.27304940 0.99899275 0.99946824 0.49326470;
++	-6.27337924 -0.00032972 0.00020198 7.27304952 0.99899286 0.99946830 0.49326485;
++	-6.27337932 -0.00032969 0.00020196 7.27304964 0.99899297 0.99946836 0.49326493;
++	-6.27337941 -0.00032965 0.00020193 7.27304976 0.99899308 0.99946841 0.49326472;
++	-6.27337949 -0.00032962 0.00020191 7.27304987 0.99899318 0.99946847 0.49326466;
++	-6.27337957 -0.00032958 0.00020189 7.27304999 0.99899329 0.99946853 0.49326475;
++	-6.27337966 -0.00032955 0.00020187 7.27305011 0.99899340 0.99946858 0.49326474;
++	-6.27337974 -0.00032951 0.00020185 7.27305023 0.99899351 0.99946864 0.49326494;
++	-6.27337983 -0.00032948 0.00020183 7.27305035 0.99899361 0.99946870 0.49326475;
++	-6.27337991 -0.00032944 0.00020181 7.27305047 0.99899372 0.99946875 0.49326504;
++	-6.27337999 -0.00032941 0.00020178 7.27305059 0.99899383 0.99946881 0.49326510;
++	-6.27338008 -0.00032937 0.00020176 7.27305071 0.99899393 0.99946887 0.49326506;
++	-6.27338016 -0.00032934 0.00020174 7.27305083 0.99899404 0.99946892 0.49326491;
++	-6.27338025 -0.00032930 0.00020172 7.27305095 0.99899415 0.99946898 0.49326495;
++	-6.27338033 -0.00032927 0.00020170 7.27305106 0.99899425 0.99946904 0.49326488;
++	-6.27338041 -0.00032923 0.00020168 7.27305118 0.99899436 0.99946909 0.49326492;
++	-6.27338050 -0.00032920 0.00020165 7.27305130 0.99899447 0.99946915 0.49326492;
++	-6.27338058 -0.00032916 0.00020163 7.27305142 0.99899458 0.99946921 0.49326493;
++	-6.27338067 -0.00032913 0.00020161 7.27305154 0.99899468 0.99946926 0.49326498;
++	-6.27338075 -0.00032909 0.00020159 7.27305166 0.99899479 0.99946932 0.49326509;
++	-6.27338083 -0.00032906 0.00020157 7.27305178 0.99899490 0.99946938 0.49326511;
++	-6.27338092 -0.00032902 0.00020155 7.27305190 0.99899500 0.99946943 0.49326491;
++	-6.27338100 -0.00032899 0.00020153 7.27305201 0.99899511 0.99946949 0.49326497;
++	-6.27338108 -0.00032895 0.00020150 7.27305213 0.99899522 0.99946954 0.49326517;
++	-6.27338117 -0.00032892 0.00020148 7.27305225 0.99899532 0.99946960 0.49326501;
++	-6.27338125 -0.00032888 0.00020146 7.27305237 0.99899543 0.99946966 0.49326506;
++	-6.27338134 -0.00032885 0.00020144 7.27305249 0.99899554 0.99946971 0.49326507;
++	-6.27338142 -0.00032881 0.00020142 7.27305261 0.99899564 0.99946977 0.49326497;
++	-6.27338150 -0.00032878 0.00020140 7.27305273 0.99899575 0.99946983 0.49326508;
++	-6.27338159 -0.00032874 0.00020138 7.27305284 0.99899586 0.99946988 0.49326522;
++	-6.27338167 -0.00032871 0.00020135 7.27305296 0.99899596 0.99946994 0.49326525;
++	-6.27338175 -0.00032867 0.00020133 7.27305308 0.99899607 0.99946999 0.49326527;
++	-6.27338184 -0.00032864 0.00020131 7.27305320 0.99899618 0.99947005 0.49326512;
++	-6.27338192 -0.00032860 0.00020129 7.27305332 0.99899628 0.99947011 0.49326544;
++	-6.27338200 -0.00032857 0.00020127 7.27305344 0.99899639 0.99947016 0.49326511;
++	-6.27338209 -0.00032853 0.00020125 7.27305356 0.99899650 0.99947022 0.49326525;
++	-6.27338217 -0.00032850 0.00020123 7.27305367 0.99899660 0.99947028 0.49326517;
++	-6.27338225 -0.00032846 0.00020121 7.27305379 0.99899671 0.99947033 0.49326515;
++	-6.27338234 -0.00032843 0.00020118 7.27305391 0.99899682 0.99947039 0.49326512;
++	-6.27338242 -0.00032839 0.00020116 7.27305403 0.99899692 0.99947045 0.49326510;
++	-6.27338250 -0.00032836 0.00020114 7.27305415 0.99899703 0.99947050 0.49326538;
++	-6.27338259 -0.00032832 0.00020112 7.27305427 0.99899714 0.99947056 0.49326526;
++	-6.27338267 -0.00032829 0.00020110 7.27305438 0.99899724 0.99947061 0.49326555;
++	-6.27338275 -0.00032825 0.00020108 7.27305450 0.99899735 0.99947067 0.49326559;
++	-6.27338284 -0.00032822 0.00020106 7.27305462 0.99899745 0.99947073 0.49326528;
++	-6.27338292 -0.00032818 0.00020103 7.27305474 0.99899756 0.99947078 0.49326542;
++	-6.27338300 -0.00032815 0.00020101 7.27305486 0.99899767 0.99947084 0.49326519;
++	-6.27338309 -0.00032811 0.00020099 7.27305497 0.99899777 0.99947089 0.49326536;
++	-6.27338317 -0.00032808 0.00020097 7.27305509 0.99899788 0.99947095 0.49326533;
++	-6.27338325 -0.00032804 0.00020095 7.27305521 0.99899799 0.99947101 0.49326540;
++	-6.27338334 -0.00032801 0.00020093 7.27305533 0.99899809 0.99947106 0.49326552;
++	-6.27338342 -0.00032797 0.00020091 7.27305545 0.99899820 0.99947112 0.49326543;
++	-6.27338350 -0.00032794 0.00020089 7.27305556 0.99899830 0.99947117 0.49326548;
++	-6.27338359 -0.00032791 0.00020086 7.27305568 0.99899841 0.99947123 0.49326555;
++	-6.27338367 -0.00032787 0.00020084 7.27305580 0.99899852 0.99947129 0.49326550;
++	-6.27338375 -0.00032784 0.00020082 7.27305592 0.99899862 0.99947134 0.49326539;
++	-6.27338384 -0.00032780 0.00020080 7.27305604 0.99899873 0.99947140 0.49326537;
++	-6.27338392 -0.00032777 0.00020078 7.27305615 0.99899884 0.99947145 0.49326540;
++	-6.27338400 -0.00032773 0.00020076 7.27305627 0.99899894 0.99947151 0.49326552;
++	-6.27338409 -0.00032770 0.00020074 7.27305639 0.99899905 0.99947157 0.49326544;
++	-6.27338417 -0.00032766 0.00020072 7.27305651 0.99899915 0.99947162 0.49326541;
++	-6.27338425 -0.00032763 0.00020069 7.27305662 0.99899926 0.99947168 0.49326544;
++	-6.27338433 -0.00032759 0.00020067 7.27305674 0.99899937 0.99947173 0.49326555;
++	-6.27338442 -0.00032756 0.00020065 7.27305686 0.99899947 0.99947179 0.49326592;
++	-6.27338450 -0.00032752 0.00020063 7.27305698 0.99899958 0.99947185 0.49326555;
++	-6.27338458 -0.00032749 0.00020061 7.27305709 0.99899968 0.99947190 0.49326556;
++	-6.27338467 -0.00032745 0.00020059 7.27305721 0.99899979 0.99947196 0.49326577;
++	-6.27338475 -0.00032742 0.00020057 7.27305733 0.99899989 0.99947201 0.49326572;
++	-6.27338483 -0.00032739 0.00020055 7.27305745 0.99900000 0.99947207 0.49326564;
++	-6.27338492 -0.00032735 0.00020052 7.27305756 0.99900011 0.99947213 0.49326574;
++	-6.27338500 -0.00032732 0.00020050 7.27305768 0.99900021 0.99947218 0.49326570;
++	-6.27338508 -0.00032728 0.00020048 7.27305780 0.99900032 0.99947224 0.49326585;
++	-6.27338516 -0.00032725 0.00020046 7.27305792 0.99900042 0.99947229 0.49326561;
++	-6.27338525 -0.00032721 0.00020044 7.27305804 0.99900053 0.99947235 0.49326554;
++	-6.27338533 -0.00032718 0.00020042 7.27305815 0.99900063 0.99947240 0.49326565;
++	-6.27338541 -0.00032714 0.00020040 7.27305827 0.99900074 0.99947246 0.49326560;
++	-6.27338550 -0.00032711 0.00020038 7.27305839 0.99900085 0.99947252 0.49326561;
++	-6.27338558 -0.00032707 0.00020035 7.27305850 0.99900095 0.99947257 0.49326588;
++	-6.27338566 -0.00032704 0.00020033 7.27305862 0.99900106 0.99947263 0.49326567;
++	-6.27338574 -0.00032700 0.00020031 7.27305874 0.99900116 0.99947268 0.49326573;
++	-6.27338583 -0.00032697 0.00020029 7.27305886 0.99900127 0.99947274 0.49326588;
++	-6.27338591 -0.00032694 0.00020027 7.27305897 0.99900137 0.99947279 0.49326587;
++	-6.27338599 -0.00032690 0.00020025 7.27305909 0.99900148 0.99947285 0.49326591;
++	-6.27338607 -0.00032687 0.00020023 7.27305921 0.99900158 0.99947291 0.49326568;
++	-6.27338616 -0.00032683 0.00020021 7.27305932 0.99900169 0.99947296 0.49326586;
++	-6.27338624 -0.00032680 0.00020019 7.27305944 0.99900180 0.99947302 0.49326595;
++	-6.27338632 -0.00032676 0.00020016 7.27305956 0.99900190 0.99947307 0.49326594;
++	-6.27338640 -0.00032673 0.00020014 7.27305968 0.99900201 0.99947313 0.49326576;
++	-6.27338649 -0.00032669 0.00020012 7.27305979 0.99900211 0.99947318 0.49326600;
++	-6.27338657 -0.00032666 0.00020010 7.27305991 0.99900222 0.99947324 0.49326567;
++	-6.27338665 -0.00032663 0.00020008 7.27306003 0.99900232 0.99947330 0.49326591;
++	-6.27338674 -0.00032659 0.00020006 7.27306014 0.99900243 0.99947335 0.49326584;
++	-6.27338682 -0.00032656 0.00020004 7.27306026 0.99900253 0.99947341 0.49326591;
++	-6.27338690 -0.00032652 0.00020002 7.27306038 0.99900264 0.99947346 0.49326598;
++	-6.27338698 -0.00032649 0.00020000 7.27306050 0.99900274 0.99947352 0.49326605;
++	-6.27338706 -0.00032645 0.00019997 7.27306061 0.99900285 0.99947357 0.49326584;
++	-6.27338715 -0.00032642 0.00019995 7.27306073 0.99900295 0.99947363 0.49326610;
++	-6.27338723 -0.00032638 0.00019993 7.27306085 0.99900306 0.99947368 0.49326584;
++	-6.27338731 -0.00032635 0.00019991 7.27306096 0.99900316 0.99947374 0.49326595;
++	-6.27338739 -0.00032632 0.00019989 7.27306108 0.99900327 0.99947379 0.49326574;
++	-6.27338748 -0.00032628 0.00019987 7.27306120 0.99900337 0.99947385 0.49326593;
++	-6.27338756 -0.00032625 0.00019985 7.27306131 0.99900348 0.99947391 0.49326617;
++	-6.27338764 -0.00032621 0.00019983 7.27306143 0.99900358 0.99947396 0.49326608;
++	-6.27338772 -0.00032618 0.00019981 7.27306155 0.99900369 0.99947402 0.49326601;
++	-6.27338781 -0.00032614 0.00019978 7.27306166 0.99900379 0.99947407 0.49326595;
++	-6.27338789 -0.00032611 0.00019976 7.27306178 0.99900390 0.99947413 0.49326615;
++	-6.27338797 -0.00032607 0.00019974 7.27306190 0.99900400 0.99947418 0.49326594;
++	-6.27338805 -0.00032604 0.00019972 7.27306201 0.99900411 0.99947424 0.49326623;
++	-6.27338814 -0.00032601 0.00019970 7.27306213 0.99900421 0.99947429 0.49326628;
++	-6.27338822 -0.00032597 0.00019968 7.27306225 0.99900432 0.99947435 0.49326618;
++	-6.27338830 -0.00032594 0.00019966 7.27306236 0.99900442 0.99947440 0.49326621;
++	-6.27338838 -0.00032590 0.00019964 7.27306248 0.99900453 0.99947446 0.49326598;
++	-6.27338846 -0.00032587 0.00019962 7.27306260 0.99900463 0.99947452 0.49326615;
++	-6.27338855 -0.00032583 0.00019960 7.27306271 0.99900474 0.99947457 0.49326647;
++	-6.27338863 -0.00032580 0.00019957 7.27306283 0.99900484 0.99947463 0.49326621;
++	-6.27338871 -0.00032577 0.00019955 7.27306294 0.99900495 0.99947468 0.49326643;
++	-6.27338879 -0.00032573 0.00019953 7.27306306 0.99900505 0.99947474 0.49326629;
++	-6.27338887 -0.00032570 0.00019951 7.27306318 0.99900516 0.99947479 0.49326635;
++	-6.27338896 -0.00032566 0.00019949 7.27306329 0.99900526 0.99947485 0.49326632;
++	-6.27338904 -0.00032563 0.00019947 7.27306341 0.99900537 0.99947490 0.49326626;
++	-6.27338912 -0.00032559 0.00019945 7.27306353 0.99900547 0.99947496 0.49326639;
++	-6.27338920 -0.00032556 0.00019943 7.27306364 0.99900558 0.99947501 0.49326627;
++	-6.27338928 -0.00032553 0.00019941 7.27306376 0.99900568 0.99947507 0.49326645;
++	-6.27338937 -0.00032549 0.00019939 7.27306387 0.99900578 0.99947512 0.49326623;
++	-6.27338945 -0.00032546 0.00019936 7.27306399 0.99900589 0.99947518 0.49326607;
++	-6.27338953 -0.00032542 0.00019934 7.27306411 0.99900599 0.99947523 0.49326641;
++	-6.27338961 -0.00032539 0.00019932 7.27306422 0.99900610 0.99947529 0.49326644;
++	-6.27338969 -0.00032536 0.00019930 7.27306434 0.99900620 0.99947534 0.49326635;
++	-6.27338978 -0.00032532 0.00019928 7.27306446 0.99900631 0.99947540 0.49326617;
++	-6.27338986 -0.00032529 0.00019926 7.27306457 0.99900641 0.99947545 0.49326647;
++	-6.27338994 -0.00032525 0.00019924 7.27306469 0.99900652 0.99947551 0.49326638;
++	-6.27339002 -0.00032522 0.00019922 7.27306480 0.99900662 0.99947556 0.49326625;
++	-6.27339010 -0.00032518 0.00019920 7.27306492 0.99900673 0.99947562 0.49326654;
++	-6.27339019 -0.00032515 0.00019918 7.27306504 0.99900683 0.99947567 0.49326643;
++	-6.27339027 -0.00032512 0.00019915 7.27306515 0.99900693 0.99947573 0.49326639;
++	-6.27339035 -0.00032508 0.00019913 7.27306527 0.99900704 0.99947578 0.49326643;
++	-6.27339043 -0.00032505 0.00019911 7.27306538 0.99900714 0.99947584 0.49326613;
++	-6.27339051 -0.00032501 0.00019909 7.27306550 0.99900725 0.99947589 0.49326635;
++	-6.27339059 -0.00032498 0.00019907 7.27306561 0.99900735 0.99947595 0.49326654;
++	-6.27339068 -0.00032495 0.00019905 7.27306573 0.99900746 0.99947600 0.49326649;
++	-6.27339076 -0.00032491 0.00019903 7.27306585 0.99900756 0.99947606 0.49326645;
++	-6.27339084 -0.00032488 0.00019901 7.27306596 0.99900766 0.99947611 0.49326635;
++	-6.27339092 -0.00032484 0.00019899 7.27306608 0.99900777 0.99947617 0.49326646;
++	-6.27339100 -0.00032481 0.00019897 7.27306619 0.99900787 0.99947622 0.49326660;
++	-6.27339108 -0.00032477 0.00019895 7.27306631 0.99900798 0.99947628 0.49326653;
++	-6.27339117 -0.00032474 0.00019892 7.27306642 0.99900808 0.99947633 0.49326655;
++	-6.27339125 -0.00032471 0.00019890 7.27306654 0.99900818 0.99947639 0.49326642;
++	-6.27339133 -0.00032467 0.00019888 7.27306666 0.99900829 0.99947644 0.49326648;
++	-6.27339141 -0.00032464 0.00019886 7.27306677 0.99900839 0.99947650 0.49326679;
++	-6.27339149 -0.00032460 0.00019884 7.27306689 0.99900850 0.99947655 0.49326686;
++	-6.27339157 -0.00032457 0.00019882 7.27306700 0.99900860 0.99947661 0.49326656;
++	-6.27339165 -0.00032454 0.00019880 7.27306712 0.99900870 0.99947666 0.49326662;
++	-6.27339174 -0.00032450 0.00019878 7.27306723 0.99900881 0.99947672 0.49326679;
++	-6.27339182 -0.00032447 0.00019876 7.27306735 0.99900891 0.99947677 0.49326673;
++	-6.27339190 -0.00032443 0.00019874 7.27306746 0.99900902 0.99947683 0.49326675;
++	-6.27339198 -0.00032440 0.00019872 7.27306758 0.99900912 0.99947688 0.49326682;
++	-6.27339206 -0.00032437 0.00019870 7.27306770 0.99900922 0.99947694 0.49326647;
++	-6.27339214 -0.00032433 0.00019867 7.27306781 0.99900933 0.99947699 0.49326653;
++	-6.27339222 -0.00032430 0.00019865 7.27306793 0.99900943 0.99947705 0.49326669;
++	-6.27339231 -0.00032426 0.00019863 7.27306804 0.99900954 0.99947710 0.49326657;
++	-6.27339239 -0.00032423 0.00019861 7.27306816 0.99900964 0.99947716 0.49326679;
++	-6.27339247 -0.00032420 0.00019859 7.27306827 0.99900974 0.99947721 0.49326690;
++	-6.27339255 -0.00032416 0.00019857 7.27306839 0.99900985 0.99947727 0.49326680;
++	-6.27339263 -0.00032413 0.00019855 7.27306850 0.99900995 0.99947732 0.49326670;
++	-6.27339271 -0.00032409 0.00019853 7.27306862 0.99901005 0.99947738 0.49326690;
++	-6.27339279 -0.00032406 0.00019851 7.27306873 0.99901016 0.99947743 0.49326682;
++	-6.27339287 -0.00032403 0.00019849 7.27306885 0.99901026 0.99947749 0.49326670;
++	-6.27339296 -0.00032399 0.00019847 7.27306896 0.99901036 0.99947754 0.49326689;
++	-6.27339304 -0.00032396 0.00019845 7.27306908 0.99901047 0.99947760 0.49326683;
++	-6.27339312 -0.00032393 0.00019843 7.27306919 0.99901057 0.99947765 0.49326682;
++	-6.27339320 -0.00032389 0.00019840 7.27306931 0.99901068 0.99947770 0.49326694;
++	-6.27339328 -0.00032386 0.00019838 7.27306942 0.99901078 0.99947776 0.49326682;
++	-6.27339336 -0.00032382 0.00019836 7.27306954 0.99901088 0.99947781 0.49326696;
++	-6.27339344 -0.00032379 0.00019834 7.27306965 0.99901099 0.99947787 0.49326703;
++	-6.27339352 -0.00032376 0.00019832 7.27306977 0.99901109 0.99947792 0.49326705;
++	-6.27339360 -0.00032372 0.00019830 7.27306988 0.99901119 0.99947798 0.49326683;
++	-6.27339369 -0.00032369 0.00019828 7.27307000 0.99901130 0.99947803 0.49326692;
++	-6.27339377 -0.00032365 0.00019826 7.27307011 0.99901140 0.99947809 0.49326694;
++	-6.27339385 -0.00032362 0.00019824 7.27307023 0.99901150 0.99947814 0.49326688;
++	-6.27339393 -0.00032359 0.00019822 7.27307034 0.99901161 0.99947820 0.49326687;
++	-6.27339401 -0.00032355 0.00019820 7.27307046 0.99901171 0.99947825 0.49326697;
++	-6.27339409 -0.00032352 0.00019818 7.27307057 0.99901181 0.99947830 0.49326717;
++	-6.27339417 -0.00032349 0.00019816 7.27307069 0.99901192 0.99947836 0.49326712;
++	-6.27339425 -0.00032345 0.00019813 7.27307080 0.99901202 0.99947841 0.49326703;
++	-6.27339433 -0.00032342 0.00019811 7.27307092 0.99901212 0.99947847 0.49326706;
++	-6.27339441 -0.00032338 0.00019809 7.27307103 0.99901223 0.99947852 0.49326716;
++	-6.27339450 -0.00032335 0.00019807 7.27307115 0.99901233 0.99947858 0.49326689;
++	-6.27339458 -0.00032332 0.00019805 7.27307126 0.99901243 0.99947863 0.49326699;
++	-6.27339466 -0.00032328 0.00019803 7.27307137 0.99901254 0.99947869 0.49326696;
++	-6.27339474 -0.00032325 0.00019801 7.27307149 0.99901264 0.99947874 0.49326718;
++	-6.27339482 -0.00032321 0.00019799 7.27307160 0.99901274 0.99947880 0.49326717;
++	-6.27339490 -0.00032318 0.00019797 7.27307172 0.99901285 0.99947885 0.49326705;
++	-6.27339498 -0.00032315 0.00019795 7.27307183 0.99901295 0.99947890 0.49326716;
++	-6.27339506 -0.00032311 0.00019793 7.27307195 0.99901305 0.99947896 0.49326730;
++	-6.27339514 -0.00032308 0.00019791 7.27307206 0.99901315 0.99947901 0.49326718;
++	-6.27339522 -0.00032305 0.00019789 7.27307218 0.99901326 0.99947907 0.49326722;
++	-6.27339530 -0.00032301 0.00019787 7.27307229 0.99901336 0.99947912 0.49326715;
++	-6.27339538 -0.00032298 0.00019785 7.27307241 0.99901346 0.99947918 0.49326728;
++	-6.27339546 -0.00032295 0.00019782 7.27307252 0.99901357 0.99947923 0.49326724;
++	-6.27339555 -0.00032291 0.00019780 7.27307263 0.99901367 0.99947928 0.49326701;
++	-6.27339563 -0.00032288 0.00019778 7.27307275 0.99901377 0.99947934 0.49326708;
++	-6.27339571 -0.00032284 0.00019776 7.27307286 0.99901388 0.99947939 0.49326726;
++	-6.27339579 -0.00032281 0.00019774 7.27307298 0.99901398 0.99947945 0.49326720;
++	-6.27339587 -0.00032278 0.00019772 7.27307309 0.99901408 0.99947950 0.49326714;
++	-6.27339595 -0.00032274 0.00019770 7.27307321 0.99901418 0.99947956 0.49326729;
++	-6.27339603 -0.00032271 0.00019768 7.27307332 0.99901429 0.99947961 0.49326744;
++	-6.27339611 -0.00032268 0.00019766 7.27307343 0.99901439 0.99947966 0.49326726;
++	-6.27339619 -0.00032264 0.00019764 7.27307355 0.99901449 0.99947972 0.49326746;
++	-6.27339627 -0.00032261 0.00019762 7.27307366 0.99901459 0.99947977 0.49326747;
++	-6.27339635 -0.00032258 0.00019760 7.27307378 0.99901470 0.99947983 0.49326746;
++	-6.27339643 -0.00032254 0.00019758 7.27307389 0.99901480 0.99947988 0.49326737;
++	-6.27339651 -0.00032251 0.00019756 7.27307400 0.99901490 0.99947994 0.49326725;
++	-6.27339659 -0.00032247 0.00019754 7.27307412 0.99901501 0.99947999 0.49326744;
++	-6.27339667 -0.00032244 0.00019752 7.27307423 0.99901511 0.99948004 0.49326734;
++	-6.27339675 -0.00032241 0.00019749 7.27307435 0.99901521 0.99948010 0.49326748;
++	-6.27339683 -0.00032237 0.00019747 7.27307446 0.99901531 0.99948015 0.49326735;
++	-6.27339691 -0.00032234 0.00019745 7.27307457 0.99901542 0.99948021 0.49326718;
++	-6.27339699 -0.00032231 0.00019743 7.27307469 0.99901552 0.99948026 0.49326726;
++	-6.27339708 -0.00032227 0.00019741 7.27307480 0.99901562 0.99948031 0.49326739;
++	-6.27339716 -0.00032224 0.00019739 7.27307492 0.99901572 0.99948037 0.49326736;
++	-6.27339724 -0.00032221 0.00019737 7.27307503 0.99901583 0.99948042 0.49326751;
++	-6.27339732 -0.00032217 0.00019735 7.27307514 0.99901593 0.99948048 0.49326746;
++	-6.27339740 -0.00032214 0.00019733 7.27307526 0.99901603 0.99948053 0.49326750;
++	-6.27339748 -0.00032210 0.00019731 7.27307537 0.99901613 0.99948059 0.49326720;
++	-6.27339756 -0.00032207 0.00019729 7.27307549 0.99901624 0.99948064 0.49326742;
++	-6.27339764 -0.00032204 0.00019727 7.27307560 0.99901634 0.99948069 0.49326770;
++	-6.27339772 -0.00032200 0.00019725 7.27307571 0.99901644 0.99948075 0.49326757;
++	-6.27339780 -0.00032197 0.00019723 7.27307583 0.99901654 0.99948080 0.49326750;
++	-6.27339788 -0.00032194 0.00019721 7.27307594 0.99901664 0.99948086 0.49326781;
++	-6.27339796 -0.00032190 0.00019719 7.27307605 0.99901675 0.99948091 0.49326776;
++	-6.27339804 -0.00032187 0.00019717 7.27307617 0.99901685 0.99948096 0.49326747;
++	-6.27339812 -0.00032184 0.00019715 7.27307628 0.99901695 0.99948102 0.49326778;
++	-6.27339820 -0.00032180 0.00019713 7.27307639 0.99901705 0.99948107 0.49326749;
++	-6.27339828 -0.00032177 0.00019710 7.27307651 0.99901716 0.99948113 0.49326751;
++	-6.27339836 -0.00032174 0.00019708 7.27307662 0.99901726 0.99948118 0.49326780;
++	-6.27339844 -0.00032170 0.00019706 7.27307674 0.99901736 0.99948123 0.49326747;
++	-6.27339852 -0.00032167 0.00019704 7.27307685 0.99901746 0.99948129 0.49326772;
++	-6.27339860 -0.00032164 0.00019702 7.27307696 0.99901756 0.99948134 0.49326768;
++	-6.27339868 -0.00032160 0.00019700 7.27307708 0.99901767 0.99948139 0.49326756;
++	-6.27339876 -0.00032157 0.00019698 7.27307719 0.99901777 0.99948145 0.49326753;
++	-6.27339884 -0.00032154 0.00019696 7.27307730 0.99901787 0.99948150 0.49326754;
++	-6.27339892 -0.00032150 0.00019694 7.27307742 0.99901797 0.99948156 0.49326763;
++	-6.27339900 -0.00032147 0.00019692 7.27307753 0.99901807 0.99948161 0.49326773;
++	-6.27339908 -0.00032144 0.00019690 7.27307764 0.99901818 0.99948166 0.49326760;
++	-6.27339916 -0.00032140 0.00019688 7.27307776 0.99901828 0.99948172 0.49326795;
++	-6.27339924 -0.00032137 0.00019686 7.27307787 0.99901838 0.99948177 0.49326781;
++	-6.27339932 -0.00032134 0.00019684 7.27307798 0.99901848 0.99948183 0.49326791;
++	-6.27339940 -0.00032130 0.00019682 7.27307810 0.99901858 0.99948188 0.49326782;
++	-6.27339948 -0.00032127 0.00019680 7.27307821 0.99901869 0.99948193 0.49326774;
++	-6.27339956 -0.00032124 0.00019678 7.27307832 0.99901879 0.99948199 0.49326801;
++	-6.27339964 -0.00032120 0.00019676 7.27307843 0.99901889 0.99948204 0.49326796;
++	-6.27339972 -0.00032117 0.00019674 7.27307855 0.99901899 0.99948209 0.49326796;
++	-6.27339980 -0.00032114 0.00019672 7.27307866 0.99901909 0.99948215 0.49326764;
++	-6.27339988 -0.00032110 0.00019670 7.27307877 0.99901920 0.99948220 0.49326786;
++	-6.27339996 -0.00032107 0.00019668 7.27307889 0.99901930 0.99948226 0.49326797;
++	-6.27340004 -0.00032104 0.00019665 7.27307900 0.99901940 0.99948231 0.49326772;
++	-6.27340012 -0.00032100 0.00019663 7.27307911 0.99901950 0.99948236 0.49326808;
++	-6.27340020 -0.00032097 0.00019661 7.27307923 0.99901960 0.99948242 0.49326793;
++	-6.27340028 -0.00032094 0.00019659 7.27307934 0.99901970 0.99948247 0.49326800;
++	-6.27340036 -0.00032090 0.00019657 7.27307945 0.99901981 0.99948252 0.49326818;
++	-6.27340043 -0.00032087 0.00019655 7.27307956 0.99901991 0.99948258 0.49326800;
++	-6.27340051 -0.00032084 0.00019653 7.27307968 0.99902001 0.99948263 0.49326833;
++	-6.27340059 -0.00032080 0.00019651 7.27307979 0.99902011 0.99948268 0.49326799;
++	-6.27340067 -0.00032077 0.00019649 7.27307990 0.99902021 0.99948274 0.49326805;
++	-6.27340075 -0.00032074 0.00019647 7.27308002 0.99902031 0.99948279 0.49326790;
++	-6.27340083 -0.00032070 0.00019645 7.27308013 0.99902042 0.99948285 0.49326822;
++	-6.27340091 -0.00032067 0.00019643 7.27308024 0.99902052 0.99948290 0.49326817;
++	-6.27340099 -0.00032064 0.00019641 7.27308035 0.99902062 0.99948295 0.49326820;
++	-6.27340107 -0.00032060 0.00019639 7.27308047 0.99902072 0.99948301 0.49326814;
++	-6.27340115 -0.00032057 0.00019637 7.27308058 0.99902082 0.99948306 0.49326794;
++	-6.27340123 -0.00032054 0.00019635 7.27308069 0.99902092 0.99948311 0.49326788;
++	-6.27340131 -0.00032050 0.00019633 7.27308081 0.99902102 0.99948317 0.49326824;
++	-6.27340139 -0.00032047 0.00019631 7.27308092 0.99902113 0.99948322 0.49326821;
++	-6.27340147 -0.00032044 0.00019629 7.27308103 0.99902123 0.99948327 0.49326804;
++	-6.27340155 -0.00032040 0.00019627 7.27308114 0.99902133 0.99948333 0.49326826;
++	-6.27340163 -0.00032037 0.00019625 7.27308126 0.99902143 0.99948338 0.49326837;
++	-6.27340171 -0.00032034 0.00019623 7.27308137 0.99902153 0.99948343 0.49326808;
++	-6.27340179 -0.00032031 0.00019621 7.27308148 0.99902163 0.99948349 0.49326814;
++	-6.27340187 -0.00032027 0.00019619 7.27308159 0.99902173 0.99948354 0.49326823;
++	-6.27340194 -0.00032024 0.00019617 7.27308171 0.99902183 0.99948359 0.49326820;
++	-6.27340202 -0.00032021 0.00019615 7.27308182 0.99902194 0.99948365 0.49326819;
++	-6.27340210 -0.00032017 0.00019613 7.27308193 0.99902204 0.99948370 0.49326828;
++	-6.27340218 -0.00032014 0.00019611 7.27308204 0.99902214 0.99948376 0.49326815;
++	-6.27340226 -0.00032011 0.00019608 7.27308216 0.99902224 0.99948381 0.49326833;
++	-6.27340234 -0.00032007 0.00019606 7.27308227 0.99902234 0.99948386 0.49326820;
++	-6.27340242 -0.00032004 0.00019604 7.27308238 0.99902244 0.99948392 0.49326839;
++	-6.27340250 -0.00032001 0.00019602 7.27308249 0.99902254 0.99948397 0.49326825;
++	-6.27340258 -0.00031997 0.00019600 7.27308261 0.99902264 0.99948402 0.49326820;
++	-6.27340266 -0.00031994 0.00019598 7.27308272 0.99902274 0.99948408 0.49326829;
++	-6.27340274 -0.00031991 0.00019596 7.27308283 0.99902285 0.99948413 0.49326838;
++	-6.27340282 -0.00031987 0.00019594 7.27308294 0.99902295 0.99948418 0.49326829;
++	-6.27340290 -0.00031984 0.00019592 7.27308305 0.99902305 0.99948424 0.49326812;
++	-6.27340297 -0.00031981 0.00019590 7.27308317 0.99902315 0.99948429 0.49326825;
++	-6.27340305 -0.00031978 0.00019588 7.27308328 0.99902325 0.99948434 0.49326844;
++	-6.27340313 -0.00031974 0.00019586 7.27308339 0.99902335 0.99948440 0.49326822;
++	-6.27340321 -0.00031971 0.00019584 7.27308350 0.99902345 0.99948445 0.49326848;
++	-6.27340329 -0.00031968 0.00019582 7.27308361 0.99902355 0.99948450 0.49326823;
++	-6.27340337 -0.00031964 0.00019580 7.27308373 0.99902365 0.99948455 0.49326831;
++	-6.27340345 -0.00031961 0.00019578 7.27308384 0.99902375 0.99948461 0.49326842;
++	-6.27340353 -0.00031958 0.00019576 7.27308395 0.99902385 0.99948466 0.49326833;
++	-6.27340361 -0.00031954 0.00019574 7.27308406 0.99902396 0.99948471 0.49326844;
++	-6.27340369 -0.00031951 0.00019572 7.27308417 0.99902406 0.99948477 0.49326841;
++	-6.27340377 -0.00031948 0.00019570 7.27308429 0.99902416 0.99948482 0.49326813;
++	-6.27340384 -0.00031945 0.00019568 7.27308440 0.99902426 0.99948487 0.49326861;
++	-6.27340392 -0.00031941 0.00019566 7.27308451 0.99902436 0.99948493 0.49326836;
++	-6.27340400 -0.00031938 0.00019564 7.27308462 0.99902446 0.99948498 0.49326869;
++	-6.27340408 -0.00031935 0.00019562 7.27308473 0.99902456 0.99948503 0.49326883;
++	-6.27340416 -0.00031931 0.00019560 7.27308485 0.99902466 0.99948509 0.49326857;
++	-6.27340424 -0.00031928 0.00019558 7.27308496 0.99902476 0.99948514 0.49326861;
++	-6.27340432 -0.00031925 0.00019556 7.27308507 0.99902486 0.99948519 0.49326841;
++	-6.27340440 -0.00031922 0.00019554 7.27308518 0.99902496 0.99948525 0.49326856;
++	-6.27340448 -0.00031918 0.00019552 7.27308529 0.99902506 0.99948530 0.49326867;
++	-6.27340455 -0.00031915 0.00019550 7.27308540 0.99902516 0.99948535 0.49326859;
++	-6.27340463 -0.00031912 0.00019548 7.27308552 0.99902526 0.99948541 0.49326854;
++	-6.27340471 -0.00031908 0.00019546 7.27308563 0.99902536 0.99948546 0.49326869;
++	-6.27340479 -0.00031905 0.00019544 7.27308574 0.99902546 0.99948551 0.49326853;
++	-6.27340487 -0.00031902 0.00019542 7.27308585 0.99902557 0.99948556 0.49326880;
++	-6.27340495 -0.00031899 0.00019540 7.27308596 0.99902567 0.99948562 0.49326872;
++	-6.27340503 -0.00031895 0.00019538 7.27308607 0.99902577 0.99948567 0.49326861;
++	-6.27340511 -0.00031892 0.00019536 7.27308619 0.99902587 0.99948572 0.49326878;
++	-6.27340518 -0.00031889 0.00019534 7.27308630 0.99902597 0.99948578 0.49326876;
++	-6.27340526 -0.00031885 0.00019532 7.27308641 0.99902607 0.99948583 0.49326873;
++	-6.27340534 -0.00031882 0.00019530 7.27308652 0.99902617 0.99948588 0.49326869;
++	-6.27340542 -0.00031879 0.00019528 7.27308663 0.99902627 0.99948594 0.49326868;
++	-6.27340550 -0.00031876 0.00019526 7.27308674 0.99902637 0.99948599 0.49326886;
++	-6.27340558 -0.00031872 0.00019524 7.27308685 0.99902647 0.99948604 0.49326868;
++	-6.27340566 -0.00031869 0.00019522 7.27308697 0.99902657 0.99948609 0.49326883;
++	-6.27340573 -0.00031866 0.00019520 7.27308708 0.99902667 0.99948615 0.49326876;
++	-6.27340581 -0.00031862 0.00019518 7.27308719 0.99902677 0.99948620 0.49326874;
++	-6.27340589 -0.00031859 0.00019516 7.27308730 0.99902687 0.99948625 0.49326882;
++	-6.27340597 -0.00031856 0.00019514 7.27308741 0.99902697 0.99948631 0.49326866;
++	-6.27340605 -0.00031853 0.00019512 7.27308752 0.99902707 0.99948636 0.49326860;
++	-6.27340613 -0.00031849 0.00019510 7.27308763 0.99902717 0.99948641 0.49326865;
++	-6.27340621 -0.00031846 0.00019508 7.27308775 0.99902727 0.99948646 0.49326872;
++	-6.27340628 -0.00031843 0.00019506 7.27308786 0.99902737 0.99948652 0.49326863;
++	-6.27340636 -0.00031839 0.00019504 7.27308797 0.99902747 0.99948657 0.49326869;
++	-6.27340644 -0.00031836 0.00019502 7.27308808 0.99902757 0.99948662 0.49326888;
++	-6.27340652 -0.00031833 0.00019500 7.27308819 0.99902767 0.99948668 0.49326895;
++	-6.27340660 -0.00031830 0.00019498 7.27308830 0.99902777 0.99948673 0.49326876;
++	-6.27340668 -0.00031826 0.00019496 7.27308841 0.99902787 0.99948678 0.49326889;
++	-6.27340675 -0.00031823 0.00019494 7.27308852 0.99902797 0.99948683 0.49326878;
++	-6.27340683 -0.00031820 0.00019492 7.27308863 0.99902807 0.99948689 0.49326887;
++	-6.27340691 -0.00031817 0.00019490 7.27308875 0.99902817 0.99948694 0.49326916;
++	-6.27340699 -0.00031813 0.00019488 7.27308886 0.99902827 0.99948699 0.49326908;
++	-6.27340707 -0.00031810 0.00019486 7.27308897 0.99902837 0.99948704 0.49326893;
++	-6.27340715 -0.00031807 0.00019484 7.27308908 0.99902847 0.99948710 0.49326890;
++	-6.27340722 -0.00031803 0.00019482 7.27308919 0.99902857 0.99948715 0.49326887;
++	-6.27340730 -0.00031800 0.00019480 7.27308930 0.99902867 0.99948720 0.49326878;
++	-6.27340738 -0.00031797 0.00019478 7.27308941 0.99902877 0.99948726 0.49326894;
++	-6.27340746 -0.00031794 0.00019476 7.27308952 0.99902887 0.99948731 0.49326894;
++	-6.27340754 -0.00031790 0.00019474 7.27308963 0.99902897 0.99948736 0.49326908;
++	-6.27340761 -0.00031787 0.00019472 7.27308974 0.99902907 0.99948741 0.49326876;
++	-6.27340769 -0.00031784 0.00019470 7.27308985 0.99902917 0.99948747 0.49326912;
++	-6.27340777 -0.00031781 0.00019468 7.27308996 0.99902927 0.99948752 0.49326904;
++	-6.27340785 -0.00031777 0.00019466 7.27309008 0.99902937 0.99948757 0.49326901;
++	-6.27340793 -0.00031774 0.00019464 7.27309019 0.99902947 0.99948762 0.49326930;
++	-6.27340801 -0.00031771 0.00019462 7.27309030 0.99902957 0.99948768 0.49326907;
++	-6.27340808 -0.00031768 0.00019460 7.27309041 0.99902967 0.99948773 0.49326924;
++	-6.27340816 -0.00031764 0.00019458 7.27309052 0.99902977 0.99948778 0.49326904;
++	-6.27340824 -0.00031761 0.00019456 7.27309063 0.99902987 0.99948783 0.49326893;
++	-6.27340832 -0.00031758 0.00019454 7.27309074 0.99902997 0.99948789 0.49326909;
++	-6.27340840 -0.00031755 0.00019452 7.27309085 0.99903006 0.99948794 0.49326930;
++	-6.27340847 -0.00031751 0.00019450 7.27309096 0.99903016 0.99948799 0.49326922;
++	-6.27340855 -0.00031748 0.00019448 7.27309107 0.99903026 0.99948804 0.49326913;
++	-6.27340863 -0.00031745 0.00019446 7.27309118 0.99903036 0.99948810 0.49326905;
++	-6.27340871 -0.00031742 0.00019444 7.27309129 0.99903046 0.99948815 0.49326923;
++	-6.27340879 -0.00031738 0.00019442 7.27309140 0.99903056 0.99948820 0.49326938;
++	-6.27340886 -0.00031735 0.00019440 7.27309151 0.99903066 0.99948825 0.49326909;
++	-6.27340894 -0.00031732 0.00019438 7.27309162 0.99903076 0.99948831 0.49326912;
++	-6.27340902 -0.00031728 0.00019436 7.27309173 0.99903086 0.99948836 0.49326920;
++	-6.27340910 -0.00031725 0.00019434 7.27309184 0.99903096 0.99948841 0.49326917;
++	-6.27340917 -0.00031722 0.00019432 7.27309196 0.99903106 0.99948846 0.49326921;
++	-6.27340925 -0.00031719 0.00019430 7.27309207 0.99903116 0.99948852 0.49326919;
++	-6.27340933 -0.00031715 0.00019428 7.27309218 0.99903126 0.99948857 0.49326928;
++	-6.27340941 -0.00031712 0.00019426 7.27309229 0.99903136 0.99948862 0.49326918;
++	-6.27340949 -0.00031709 0.00019424 7.27309240 0.99903146 0.99948867 0.49326958;
++	-6.27340956 -0.00031706 0.00019422 7.27309251 0.99903156 0.99948873 0.49326936;
++	-6.27340964 -0.00031702 0.00019420 7.27309262 0.99903165 0.99948878 0.49326927;
++	-6.27340972 -0.00031699 0.00019418 7.27309273 0.99903175 0.99948883 0.49326942;
++	-6.27340980 -0.00031696 0.00019416 7.27309284 0.99903185 0.99948888 0.49326912;
++	-6.27340987 -0.00031693 0.00019414 7.27309295 0.99903195 0.99948894 0.49326924;
++	-6.27340995 -0.00031690 0.00019412 7.27309306 0.99903205 0.99948899 0.49326951;
++	-6.27341003 -0.00031686 0.00019410 7.27309317 0.99903215 0.99948904 0.49326942;
++	-6.27341011 -0.00031683 0.00019408 7.27309328 0.99903225 0.99948909 0.49326925;
++	-6.27341019 -0.00031680 0.00019406 7.27309339 0.99903235 0.99948914 0.49326927;
++	-6.27341026 -0.00031677 0.00019404 7.27309350 0.99903245 0.99948920 0.49326936;
++	-6.27341034 -0.00031673 0.00019402 7.27309361 0.99903255 0.99948925 0.49326944;
++	-6.27341042 -0.00031670 0.00019400 7.27309372 0.99903265 0.99948930 0.49326949;
++	-6.27341050 -0.00031667 0.00019398 7.27309383 0.99903274 0.99948935 0.49326915;
++	-6.27341057 -0.00031664 0.00019396 7.27309394 0.99903284 0.99948941 0.49326929;
++	-6.27341065 -0.00031660 0.00019394 7.27309405 0.99903294 0.99948946 0.49326955;
++	-6.27341073 -0.00031657 0.00019392 7.27309416 0.99903304 0.99948951 0.49326921;
++	-6.27341081 -0.00031654 0.00019390 7.27309427 0.99903314 0.99948956 0.49326941;
++	-6.27341088 -0.00031651 0.00019388 7.27309438 0.99903324 0.99948961 0.49326954;
++	-6.27341096 -0.00031647 0.00019386 7.27309449 0.99903334 0.99948967 0.49326935;
++	-6.27341104 -0.00031644 0.00019384 7.27309460 0.99903344 0.99948972 0.49326969;
++	-6.27341112 -0.00031641 0.00019382 7.27309471 0.99903354 0.99948977 0.49326971;
++	-6.27341119 -0.00031638 0.00019380 7.27309482 0.99903363 0.99948982 0.49326945;
++	-6.27341127 -0.00031634 0.00019378 7.27309493 0.99903373 0.99948988 0.49326964;
++	-6.27341135 -0.00031631 0.00019376 7.27309504 0.99903383 0.99948993 0.49326955;
++	-6.27341143 -0.00031628 0.00019374 7.27309515 0.99903393 0.99948998 0.49326931;
++	-6.27341150 -0.00031625 0.00019372 7.27309526 0.99903403 0.99949003 0.49326939;
++	-6.27341158 -0.00031622 0.00019370 7.27309537 0.99903413 0.99949008 0.49326953;
++	-6.27341166 -0.00031618 0.00019368 7.27309547 0.99903423 0.99949014 0.49326974;
++	-6.27341173 -0.00031615 0.00019366 7.27309558 0.99903433 0.99949019 0.49326980;
++	-6.27341181 -0.00031612 0.00019364 7.27309569 0.99903442 0.99949024 0.49326965;
++	-6.27341189 -0.00031609 0.00019362 7.27309580 0.99903452 0.99949029 0.49326969;
++	-6.27341197 -0.00031605 0.00019360 7.27309591 0.99903462 0.99949034 0.49326954;
++	-6.27341204 -0.00031602 0.00019358 7.27309602 0.99903472 0.99949040 0.49326953;
++	-6.27341212 -0.00031599 0.00019356 7.27309613 0.99903482 0.99949045 0.49326986;
++	-6.27341220 -0.00031596 0.00019354 7.27309624 0.99903492 0.99949050 0.49326990;
++	-6.27341228 -0.00031592 0.00019352 7.27309635 0.99903502 0.99949055 0.49326950;
++	-6.27341235 -0.00031589 0.00019350 7.27309646 0.99903511 0.99949060 0.49326968;
++	-6.27341243 -0.00031586 0.00019348 7.27309657 0.99903521 0.99949066 0.49326946;
++	-6.27341251 -0.00031583 0.00019346 7.27309668 0.99903531 0.99949071 0.49326958;
++	-6.27341258 -0.00031580 0.00019344 7.27309679 0.99903541 0.99949076 0.49326990;
++	-6.27341266 -0.00031576 0.00019342 7.27309690 0.99903551 0.99949081 0.49326972;
++	-6.27341274 -0.00031573 0.00019340 7.27309701 0.99903561 0.99949086 0.49326980;
++	-6.27341282 -0.00031570 0.00019338 7.27309712 0.99903570 0.99949092 0.49327001;
++	-6.27341289 -0.00031567 0.00019336 7.27309723 0.99903580 0.99949097 0.49326985;
++	-6.27341297 -0.00031563 0.00019334 7.27309734 0.99903590 0.99949102 0.49326983;
++	-6.27341305 -0.00031560 0.00019333 7.27309744 0.99903600 0.99949107 0.49326985;
++	-6.27341312 -0.00031557 0.00019331 7.27309755 0.99903610 0.99949112 0.49327005;
++	-6.27341320 -0.00031554 0.00019329 7.27309766 0.99903620 0.99949118 0.49326985;
++	-6.27341328 -0.00031551 0.00019327 7.27309777 0.99903629 0.99949123 0.49326980;
++	-6.27341336 -0.00031547 0.00019325 7.27309788 0.99903639 0.99949128 0.49326990;
++	-6.27341343 -0.00031544 0.00019323 7.27309799 0.99903649 0.99949133 0.49326985;
++	-6.27341351 -0.00031541 0.00019321 7.27309810 0.99903659 0.99949138 0.49326999;
++	-6.27341359 -0.00031538 0.00019319 7.27309821 0.99903669 0.99949144 0.49326989;
++	-6.27341366 -0.00031535 0.00019317 7.27309832 0.99903679 0.99949149 0.49326987;
++	-6.27341374 -0.00031531 0.00019315 7.27309843 0.99903688 0.99949154 0.49327012;
++	-6.27341382 -0.00031528 0.00019313 7.27309854 0.99903698 0.99949159 0.49326994;
++	-6.27341389 -0.00031525 0.00019311 7.27309864 0.99903708 0.99949164 0.49327001;
++	-6.27341397 -0.00031522 0.00019309 7.27309875 0.99903718 0.99949169 0.49327008;
++	-6.27341405 -0.00031519 0.00019307 7.27309886 0.99903728 0.99949175 0.49327008;
++	-6.27341412 -0.00031515 0.00019305 7.27309897 0.99903737 0.99949180 0.49326970;
++	-6.27341420 -0.00031512 0.00019303 7.27309908 0.99903747 0.99949185 0.49326989;
++	-6.27341428 -0.00031509 0.00019301 7.27309919 0.99903757 0.99949190 0.49326992;
++	-6.27341435 -0.00031506 0.00019299 7.27309930 0.99903767 0.99949195 0.49327000;
++	-6.27341443 -0.00031502 0.00019297 7.27309941 0.99903777 0.99949200 0.49327006;
++	-6.27341451 -0.00031499 0.00019295 7.27309952 0.99903786 0.99949206 0.49327023;
++	-6.27341459 -0.00031496 0.00019293 7.27309962 0.99903796 0.99949211 0.49327002;
++	-6.27341466 -0.00031493 0.00019291 7.27309973 0.99903806 0.99949216 0.49327004;
++	-6.27341474 -0.00031490 0.00019289 7.27309984 0.99903816 0.99949221 0.49327010;
++	-6.27341482 -0.00031486 0.00019287 7.27309995 0.99903826 0.99949226 0.49327000;
++	-6.27341489 -0.00031483 0.00019285 7.27310006 0.99903835 0.99949231 0.49326994;
++	-6.27341497 -0.00031480 0.00019283 7.27310017 0.99903845 0.99949237 0.49327008;
++	-6.27341505 -0.00031477 0.00019281 7.27310028 0.99903855 0.99949242 0.49327002;
++	-6.27341512 -0.00031474 0.00019279 7.27310039 0.99903865 0.99949247 0.49327015;
++	-6.27341520 -0.00031470 0.00019277 7.27310049 0.99903874 0.99949252 0.49326998;
++	-6.27341528 -0.00031467 0.00019275 7.27310060 0.99903884 0.99949257 0.49327030;
++	-6.27341535 -0.00031464 0.00019274 7.27310071 0.99903894 0.99949262 0.49326995;
++	-6.27341543 -0.00031461 0.00019272 7.27310082 0.99903904 0.99949268 0.49327013;
++	-6.27341550 -0.00031458 0.00019270 7.27310093 0.99903914 0.99949273 0.49327030;
++	-6.27341558 -0.00031454 0.00019268 7.27310104 0.99903923 0.99949278 0.49327016;
++	-6.27341566 -0.00031451 0.00019266 7.27310115 0.99903933 0.99949283 0.49327003;
++	-6.27341573 -0.00031448 0.00019264 7.27310125 0.99903943 0.99949288 0.49327020;
++	-6.27341581 -0.00031445 0.00019262 7.27310136 0.99903953 0.99949293 0.49327016;
++	-6.27341589 -0.00031442 0.00019260 7.27310147 0.99903962 0.99949298 0.49327038;
++	-6.27341596 -0.00031438 0.00019258 7.27310158 0.99903972 0.99949304 0.49327020;
++	-6.27341604 -0.00031435 0.00019256 7.27310169 0.99903982 0.99949309 0.49326989;
++	-6.27341612 -0.00031432 0.00019254 7.27310180 0.99903992 0.99949314 0.49327033;
++	-6.27341619 -0.00031429 0.00019252 7.27310190 0.99904001 0.99949319 0.49327021;
++	-6.27341627 -0.00031426 0.00019250 7.27310201 0.99904011 0.99949324 0.49327047;
++	-6.27341635 -0.00031423 0.00019248 7.27310212 0.99904021 0.99949329 0.49327024;
++	-6.27341642 -0.00031419 0.00019246 7.27310223 0.99904031 0.99949335 0.49327034;
++	-6.27341650 -0.00031416 0.00019244 7.27310234 0.99904040 0.99949340 0.49327024;
++	-6.27341658 -0.00031413 0.00019242 7.27310245 0.99904050 0.99949345 0.49327049;
++	-6.27341665 -0.00031410 0.00019240 7.27310255 0.99904060 0.99949350 0.49327029;
++	-6.27341673 -0.00031407 0.00019238 7.27310266 0.99904070 0.99949355 0.49327027;
++	-6.27341680 -0.00031403 0.00019236 7.27310277 0.99904079 0.99949360 0.49327052;
++	-6.27341688 -0.00031400 0.00019234 7.27310288 0.99904089 0.99949365 0.49327062;
++	-6.27341696 -0.00031397 0.00019232 7.27310299 0.99904099 0.99949370 0.49327051;
++	-6.27341703 -0.00031394 0.00019231 7.27310309 0.99904108 0.99949376 0.49327035;
++	-6.27341711 -0.00031391 0.00019229 7.27310320 0.99904118 0.99949381 0.49327029;
++	-6.27341719 -0.00031387 0.00019227 7.27310331 0.99904128 0.99949386 0.49327040;
++	-6.27341726 -0.00031384 0.00019225 7.27310342 0.99904138 0.99949391 0.49327054;
++	-6.27341734 -0.00031381 0.00019223 7.27310353 0.99904147 0.99949396 0.49327057;
++	-6.27341741 -0.00031378 0.00019221 7.27310363 0.99904157 0.99949401 0.49327065;
++	-6.27341749 -0.00031375 0.00019219 7.27310374 0.99904167 0.99949406 0.49327055;
++	-6.27341757 -0.00031372 0.00019217 7.27310385 0.99904177 0.99949412 0.49327044;
++	-6.27341764 -0.00031368 0.00019215 7.27310396 0.99904186 0.99949417 0.49327060;
++	-6.27341772 -0.00031365 0.00019213 7.27310407 0.99904196 0.99949422 0.49327062;
++	-6.27341779 -0.00031362 0.00019211 7.27310417 0.99904206 0.99949427 0.49327057;
++	-6.27341787 -0.00031359 0.00019209 7.27310428 0.99904215 0.99949432 0.49327068;
++	-6.27341795 -0.00031356 0.00019207 7.27310439 0.99904225 0.99949437 0.49327087;
++	-6.27341802 -0.00031353 0.00019205 7.27310450 0.99904235 0.99949442 0.49327065;
++	-6.27341810 -0.00031349 0.00019203 7.27310461 0.99904244 0.99949447 0.49327040;
++	-6.27341817 -0.00031346 0.00019201 7.27310471 0.99904254 0.99949453 0.49327056;
++	-6.27341825 -0.00031343 0.00019199 7.27310482 0.99904264 0.99949458 0.49327057;
++	-6.27341833 -0.00031340 0.00019197 7.27310493 0.99904274 0.99949463 0.49327059;
++	-6.27341840 -0.00031337 0.00019195 7.27310504 0.99904283 0.99949468 0.49327075;
++	-6.27341848 -0.00031333 0.00019194 7.27310514 0.99904293 0.99949473 0.49327058;
++	-6.27341855 -0.00031330 0.00019192 7.27310525 0.99904303 0.99949478 0.49327073;
++	-6.27341863 -0.00031327 0.00019190 7.27310536 0.99904312 0.99949483 0.49327054;
++	-6.27341871 -0.00031324 0.00019188 7.27310547 0.99904322 0.99949488 0.49327048;
++	-6.27341878 -0.00031321 0.00019186 7.27310557 0.99904332 0.99949493 0.49327086;
++	-6.27341886 -0.00031318 0.00019184 7.27310568 0.99904341 0.99949499 0.49327056;
++	-6.27341893 -0.00031314 0.00019182 7.27310579 0.99904351 0.99949504 0.49327071;
++	-6.27341901 -0.00031311 0.00019180 7.27310590 0.99904361 0.99949509 0.49327045;
++	-6.27341909 -0.00031308 0.00019178 7.27310600 0.99904370 0.99949514 0.49327067;
++	-6.27341916 -0.00031305 0.00019176 7.27310611 0.99904380 0.99949519 0.49327067;
++	-6.27341924 -0.00031302 0.00019174 7.27310622 0.99904390 0.99949524 0.49327074;
++	-6.27341931 -0.00031299 0.00019172 7.27310633 0.99904399 0.99949529 0.49327107;
++	-6.27341939 -0.00031295 0.00019170 7.27310643 0.99904409 0.99949534 0.49327064;
++	-6.27341946 -0.00031292 0.00019168 7.27310654 0.99904419 0.99949539 0.49327063;
++	-6.27341954 -0.00031289 0.00019166 7.27310665 0.99904428 0.99949545 0.49327050;
++	-6.27341962 -0.00031286 0.00019164 7.27310676 0.99904438 0.99949550 0.49327069;
++	-6.27341969 -0.00031283 0.00019162 7.27310686 0.99904448 0.99949555 0.49327081;
++	-6.27341977 -0.00031280 0.00019161 7.27310697 0.99904457 0.99949560 0.49327077;
++	-6.27341984 -0.00031276 0.00019159 7.27310708 0.99904467 0.99949565 0.49327081;
++	-6.27341992 -0.00031273 0.00019157 7.27310719 0.99904477 0.99949570 0.49327088;
++	-6.27341999 -0.00031270 0.00019155 7.27310729 0.99904486 0.99949575 0.49327082;
++	-6.27342007 -0.00031267 0.00019153 7.27310740 0.99904496 0.99949580 0.49327067;
++	-6.27342015 -0.00031264 0.00019151 7.27310751 0.99904506 0.99949585 0.49327061;
++	-6.27342022 -0.00031261 0.00019149 7.27310761 0.99904515 0.99949590 0.49327079;
++	-6.27342030 -0.00031258 0.00019147 7.27310772 0.99904525 0.99949595 0.49327103;
++	-6.27342037 -0.00031254 0.00019145 7.27310783 0.99904535 0.99949601 0.49327107;
++	-6.27342045 -0.00031251 0.00019143 7.27310794 0.99904544 0.99949606 0.49327084;
++	-6.27342052 -0.00031248 0.00019141 7.27310804 0.99904554 0.99949611 0.49327096;
++	-6.27342060 -0.00031245 0.00019139 7.27310815 0.99904563 0.99949616 0.49327062;
++	-6.27342067 -0.00031242 0.00019137 7.27310826 0.99904573 0.99949621 0.49327088;
++	-6.27342075 -0.00031239 0.00019135 7.27310836 0.99904583 0.99949626 0.49327094;
++	-6.27342083 -0.00031235 0.00019133 7.27310847 0.99904592 0.99949631 0.49327095;
++	-6.27342090 -0.00031232 0.00019132 7.27310858 0.99904602 0.99949636 0.49327111;
++	-6.27342098 -0.00031229 0.00019130 7.27310869 0.99904612 0.99949641 0.49327066;
++	-6.27342105 -0.00031226 0.00019128 7.27310879 0.99904621 0.99949646 0.49327112;
++	-6.27342113 -0.00031223 0.00019126 7.27310890 0.99904631 0.99949651 0.49327094;
++	-6.27342120 -0.00031220 0.00019124 7.27310901 0.99904641 0.99949656 0.49327097;
++	-6.27342128 -0.00031217 0.00019122 7.27310911 0.99904650 0.99949662 0.49327094;
++	-6.27342135 -0.00031213 0.00019120 7.27310922 0.99904660 0.99949667 0.49327120;
++	-6.27342143 -0.00031210 0.00019118 7.27310933 0.99904669 0.99949672 0.49327123;
++	-6.27342150 -0.00031207 0.00019116 7.27310943 0.99904679 0.99949677 0.49327124;
++	-6.27342158 -0.00031204 0.00019114 7.27310954 0.99904689 0.99949682 0.49327089;
++	-6.27342166 -0.00031201 0.00019112 7.27310965 0.99904698 0.99949687 0.49327096;
++	-6.27342173 -0.00031198 0.00019110 7.27310975 0.99904708 0.99949692 0.49327093;
++	-6.27342181 -0.00031195 0.00019108 7.27310986 0.99904717 0.99949697 0.49327128;
++	-6.27342188 -0.00031191 0.00019106 7.27310997 0.99904727 0.99949702 0.49327122;
++	-6.27342196 -0.00031188 0.00019105 7.27311007 0.99904737 0.99949707 0.49327128;
++	-6.27342203 -0.00031185 0.00019103 7.27311018 0.99904746 0.99949712 0.49327113;
++	-6.27342211 -0.00031182 0.00019101 7.27311029 0.99904756 0.99949717 0.49327121;
++	-6.27342218 -0.00031179 0.00019099 7.27311039 0.99904765 0.99949722 0.49327115;
++	-6.27342226 -0.00031176 0.00019097 7.27311050 0.99904775 0.99949727 0.49327114;
++	-6.27342233 -0.00031173 0.00019095 7.27311061 0.99904785 0.99949733 0.49327102;
++	-6.27342241 -0.00031169 0.00019093 7.27311071 0.99904794 0.99949738 0.49327120;
++	-6.27342248 -0.00031166 0.00019091 7.27311082 0.99904804 0.99949743 0.49327130;
++	-6.27342256 -0.00031163 0.00019089 7.27311093 0.99904813 0.99949748 0.49327109;
++	-6.27342263 -0.00031160 0.00019087 7.27311103 0.99904823 0.99949753 0.49327132;
++	-6.27342271 -0.00031157 0.00019085 7.27311114 0.99904833 0.99949758 0.49327146;
++	-6.27342278 -0.00031154 0.00019083 7.27311125 0.99904842 0.99949763 0.49327090;
++	-6.27342286 -0.00031151 0.00019081 7.27311135 0.99904852 0.99949768 0.49327123;
++	-6.27342293 -0.00031147 0.00019080 7.27311146 0.99904861 0.99949773 0.49327134;
++	-6.27342301 -0.00031144 0.00019078 7.27311156 0.99904871 0.99949778 0.49327133;
++	-6.27342308 -0.00031141 0.00019076 7.27311167 0.99904880 0.99949783 0.49327117;
++	-6.27342316 -0.00031138 0.00019074 7.27311178 0.99904890 0.99949788 0.49327124;
++	-6.27342323 -0.00031135 0.00019072 7.27311188 0.99904900 0.99949793 0.49327116;
++	-6.27342331 -0.00031132 0.00019070 7.27311199 0.99904909 0.99949798 0.49327125;
++	-6.27342338 -0.00031129 0.00019068 7.27311210 0.99904919 0.99949803 0.49327132;
++	-6.27342346 -0.00031126 0.00019066 7.27311220 0.99904928 0.99949808 0.49327161;
++	-6.27342353 -0.00031122 0.00019064 7.27311231 0.99904938 0.99949813 0.49327137;
++	-6.27342361 -0.00031119 0.00019062 7.27311242 0.99904947 0.99949818 0.49327141;
++	-6.27342368 -0.00031116 0.00019060 7.27311252 0.99904957 0.99949824 0.49327151;
++	-6.27342376 -0.00031113 0.00019058 7.27311263 0.99904966 0.99949829 0.49327147;
++	-6.27342383 -0.00031110 0.00019057 7.27311273 0.99904976 0.99949834 0.49327157;
++	-6.27342391 -0.00031107 0.00019055 7.27311284 0.99904986 0.99949839 0.49327158;
++	-6.27342398 -0.00031104 0.00019053 7.27311295 0.99904995 0.99949844 0.49327140;
++	-6.27342406 -0.00031101 0.00019051 7.27311305 0.99905005 0.99949849 0.49327149;
++	-6.27342413 -0.00031097 0.00019049 7.27311316 0.99905014 0.99949854 0.49327130;
++	-6.27342421 -0.00031094 0.00019047 7.27311326 0.99905024 0.99949859 0.49327138;
++	-6.27342428 -0.00031091 0.00019045 7.27311337 0.99905033 0.99949864 0.49327154;
++	-6.27342436 -0.00031088 0.00019043 7.27311348 0.99905043 0.99949869 0.49327144;
++	-6.27342443 -0.00031085 0.00019041 7.27311358 0.99905052 0.99949874 0.49327149;
++	-6.27342451 -0.00031082 0.00019039 7.27311369 0.99905062 0.99949879 0.49327160;
++	-6.27342458 -0.00031079 0.00019037 7.27311379 0.99905071 0.99949884 0.49327162;
++	-6.27342466 -0.00031076 0.00019035 7.27311390 0.99905081 0.99949889 0.49327146;
++	-6.27342473 -0.00031072 0.00019034 7.27311401 0.99905091 0.99949894 0.49327178;
++	-6.27342480 -0.00031069 0.00019032 7.27311411 0.99905100 0.99949899 0.49327156;
++	-6.27342488 -0.00031066 0.00019030 7.27311422 0.99905110 0.99949904 0.49327151;
++	-6.27342495 -0.00031063 0.00019028 7.27311432 0.99905119 0.99949909 0.49327157;
++	-6.27342503 -0.00031060 0.00019026 7.27311443 0.99905129 0.99949914 0.49327162;
++	-6.27342510 -0.00031057 0.00019024 7.27311453 0.99905138 0.99949919 0.49327180;
++	-6.27342518 -0.00031054 0.00019022 7.27311464 0.99905148 0.99949924 0.49327153;
++	-6.27342525 -0.00031051 0.00019020 7.27311475 0.99905157 0.99949929 0.49327170;
++	-6.27342533 -0.00031047 0.00019018 7.27311485 0.99905167 0.99949934 0.49327164;
++	-6.27342540 -0.00031044 0.00019016 7.27311496 0.99905176 0.99949939 0.49327177;
++	-6.27342548 -0.00031041 0.00019014 7.27311506 0.99905186 0.99949944 0.49327171;
++	-6.27342555 -0.00031038 0.00019013 7.27311517 0.99905195 0.99949949 0.49327163;
++	-6.27342563 -0.00031035 0.00019011 7.27311527 0.99905205 0.99949954 0.49327148;
++	-6.27342570 -0.00031032 0.00019009 7.27311538 0.99905214 0.99949959 0.49327177;
++	-6.27342577 -0.00031029 0.00019007 7.27311549 0.99905224 0.99949964 0.49327190;
++	-6.27342585 -0.00031026 0.00019005 7.27311559 0.99905233 0.99949969 0.49327174;
++	-6.27342592 -0.00031023 0.00019003 7.27311570 0.99905243 0.99949974 0.49327179;
++	-6.27342600 -0.00031019 0.00019001 7.27311580 0.99905252 0.99949979 0.49327165;
++	-6.27342607 -0.00031016 0.00018999 7.27311591 0.99905262 0.99949984 0.49327180;
++	-6.27342615 -0.00031013 0.00018997 7.27311601 0.99905271 0.99949989 0.49327176;
++	-6.27342622 -0.00031010 0.00018995 7.27311612 0.99905281 0.99949994 0.49327155;
++	-6.27342630 -0.00031007 0.00018993 7.27311622 0.99905290 0.99949999 0.49327169;
++	-6.27342637 -0.00031004 0.00018992 7.27311633 0.99905300 0.99950004 0.49327184;
++	-6.27342644 -0.00031001 0.00018990 7.27311644 0.99905309 0.99950009 0.49327184;
++	-6.27342652 -0.00030998 0.00018988 7.27311654 0.99905319 0.99950014 0.49327176;
++	-6.27342659 -0.00030995 0.00018986 7.27311665 0.99905328 0.99950019 0.49327184;
++	-6.27342667 -0.00030992 0.00018984 7.27311675 0.99905338 0.99950024 0.49327166;
++	-6.27342674 -0.00030988 0.00018982 7.27311686 0.99905347 0.99950029 0.49327222;
++	-6.27342682 -0.00030985 0.00018980 7.27311696 0.99905357 0.99950034 0.49327211;
++	-6.27342689 -0.00030982 0.00018978 7.27311707 0.99905366 0.99950039 0.49327202;
++	-6.27342696 -0.00030979 0.00018976 7.27311717 0.99905376 0.99950044 0.49327179;
++	-6.27342704 -0.00030976 0.00018974 7.27311728 0.99905385 0.99950049 0.49327176;
++	-6.27342711 -0.00030973 0.00018973 7.27311738 0.99905394 0.99950054 0.49327202;
++	-6.27342719 -0.00030970 0.00018971 7.27311749 0.99905404 0.99950059 0.49327184;
++	-6.27342726 -0.00030967 0.00018969 7.27311759 0.99905413 0.99950064 0.49327198;
++	-6.27342733 -0.00030964 0.00018967 7.27311770 0.99905423 0.99950069 0.49327205;
++	-6.27342741 -0.00030961 0.00018965 7.27311780 0.99905432 0.99950074 0.49327200;
++	-6.27342748 -0.00030957 0.00018963 7.27311791 0.99905442 0.99950079 0.49327197;
++	-6.27342756 -0.00030954 0.00018961 7.27311801 0.99905451 0.99950084 0.49327183;
++	-6.27342763 -0.00030951 0.00018959 7.27311812 0.99905461 0.99950089 0.49327208;
++	-6.27342771 -0.00030948 0.00018957 7.27311822 0.99905470 0.99950094 0.49327205;
++	-6.27342778 -0.00030945 0.00018956 7.27311833 0.99905480 0.99950099 0.49327194];
++
++	if type=='h',
++		series=love_numbers(:,1);
++	elseif type=='k',
++		series=love_numbers(:,2);
++	elseif type=='l',
++		series=love_numbers(:,3);
++	elseif type=='gamma',
++		series=love_numbers(:,4);
++	elseif type=='lambda',
++		series=love_numbers(:,5);
++	else error(['love_numbers error message: unknow type:' type]);
++	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20167-20168.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20167-20168.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20167-20168.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20167)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20168)
+@@ -57,7 +57,7 @@
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh 
+ 						boost        install.sh                
+-						dakota       install-6.2-macosx64.sh  
++						dakota       install-6.2-macosx64-yosemite.sh  
+ 						chaco        install.sh 
+ 						shell2junit  install.sh "
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20168-20169.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20168-20169.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20168-20169.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20168)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20169)
+@@ -14,9 +14,6 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+-	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+ 	--with-numthreads=8 \
+ 	--enable-debugging \
+ 	--enable-development'
+@@ -56,9 +53,6 @@
+ 						m1qn3        install.sh    
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh 
+-						boost        install.sh                
+-						dakota       install-6.2-macosx64-yosemite.sh  
+-						chaco        install.sh 
+ 						shell2junit  install.sh "
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20169-20170.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20169-20170.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20169-20170.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20169)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20170)
+@@ -17,10 +17,9 @@
+ 	md.slr.deltathickness(pos)=-100;
+ 	
+ 	%elastic loading from love numbers: 
+-	love = dlmread('../Data/love_numbers_10k.txt');
+ 	nlov=101;
+-	md.slr.love_h = love(1:nlov,2);  % radial displacement (height) 
+-	md.slr.love_k = love(1:nlov,3);  % gravitational potential (phi) 
++	md.slr.love_h = love_numbers('h'); md.slr.love_h(nlov+1:end)=[];
++	md.slr.love_k = love_numbers('k'); md.slr.love_k(nlov+1:end)=[];
+ 
+ 	%}}}
+ 	%mask:  {{{
Index: /issm/oecreview/Archive/19101-20495/ISSM-20170-20171.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20170-20171.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20170-20171.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive2002.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20171-20172.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20171-20172.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20171-20172.diff	(revision 20498)
@@ -0,0 +1,10213 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/love_numbers.py
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/love_numbers.py	(revision 0)
++++ ../trunk-jpl/src/m/boundaryconditions/love_numbers.py	(revision 20172)
+@@ -0,0 +1,10038 @@
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++
++def love_numbers(value,*varargin):
++#LOVE_NUMBERS: provide love numbers (value 'h','k','l','gamma' and 'lambda'
++#			   retrieved from: http://www.srosat.com/iag-jsg/loveNb.php
++#    Usage:   series=love_numbers(value) 
++#             where value is one of 'h','k','l','gamma' and 'lambda'. 
++#
++#    Example:  
++#          love_k=love_numbers('k');
++# 
++
++	#some checks:
++	if len(varargin)>0:
++		raise RuntimeError('love_numbers error message: wrong usage')
++
++	if not ( strcmpi(value,'h') | strcmpi(value,'k') | strcmpi(value,'l') | strcmpi(value,'gamma') | strcmpi(value,'lambda')):
++		raise RuntimeError('value should be one of ''h'',''k'',''l'',''gamma'' and ''lambda''')
++
++	love_numbers=[\
++	-0.28740059, -0.00000000, 0.10141481, 1.28740059, 0.42519882, 0.89858519, 0.00000000,\
++	-1.00025365, -0.30922675, 0.02060926, 1.69102690, 0.46358648, 0.67016399, 0.61829668,\
++	-1.06243501, -0.19927948, 0.06801636, 1.86315553, 0.55741597, 0.73270416, 0.56270589,\
++	-1.06779588, -0.13649834, 0.05667027, 1.93129754, 0.63672498, 0.80683140, 0.51132745,\
++	-1.10365923, -0.10736896, 0.04401221, 1.99629027, 0.68737906, 0.84861883, 0.48642259,\
++	-1.16440348, -0.09295485, 0.03638747, 2.07144863, 0.72031283, 0.87065768, 0.47898268,\
++	-1.23634156, -0.08469861, 0.03202759, 2.15164295, 0.74355796, 0.88327380, 0.47955214,\
++	-1.31140380, -0.07921412, 0.02937593, 2.23218968, 0.76126493, 0.89140995, 0.48323250,\
++	-1.38582399, -0.07513541, 0.02762338, 2.31068858, 0.77552290, 0.89724121, 0.48795424,\
++	-1.45807465, -0.07187005, 0.02638627, 2.38620460, 0.78744212, 0.90174369, 0.49291061,\
++	-1.52763314, -0.06913154, 0.02547640, 2.45850160, 0.79766475, 0.90539206, 0.49779422,\
++	-1.59437866, -0.06676258, 0.02479080, 2.52761607, 0.80659635, 0.90844662, 0.50248477,\
++	-1.65833071, -0.06466619, 0.02426511, 2.59366452, 0.81451271, 0.91106870, 0.50693175,\
++	-1.71954820, -0.06277732, 0.02385464, 2.65677088, 0.82161167, 0.91336804, 0.51111243,\
++	-1.77809640, -0.06105001, 0.02352654, 2.71704639, 0.82804049, 0.91542346, 0.51501712,\
++	-1.83403970, -0.05945081, 0.02325609, 2.77458889, 0.83391153, 0.91729309, 0.51864363,\
++	-1.88744242, -0.05795502, 0.02302469, 2.82948740, 0.83931209, 0.91902029, 0.52199490,\
++	-1.93837115, -0.05654418, 0.02281843, 2.88182697, 0.84431095, 0.92063739, 0.52507761,\
++	-1.98689666, -0.05520447, 0.02262706, 2.93169219, 0.84896295, 0.92216847, 0.52790108,\
++	-2.03309477, -0.05392545, 0.02244322, 2.97916932, 0.85331225, 0.92363132, 0.53047654,\
++	-2.07704643, -0.05269926, 0.02226173, 3.02434717, 0.85739480, 0.92503902, 0.53281639,\
++	-2.11883714, -0.05151988, 0.02207909, 3.06731726, 0.86124014, 0.92640103, 0.53493369,\
++	-2.15855611, -0.05038274, 0.02189307, 3.10817337, 0.86487276, 0.92772419, 0.53684176,\
++	-2.19629514, -0.04928430, 0.02170238, 3.14701084, 0.86831322, 0.92901331, 0.53855386,\
++	-2.23214747, -0.04822179, 0.02150643, 3.18392568, 0.87157886, 0.93027178, 0.54008294,\
++	-2.26620674, -0.04719301, 0.02130509, 3.21901373, 0.87468453, 0.93150190, 0.54144148,\
++	-2.29856595, -0.04619619, 0.02109858, 3.25236976, 0.87764301, 0.93270523, 0.54264140,\
++	-2.32931659, -0.04522983, 0.02088735, 3.28408675, 0.88046543, 0.93388282, 0.54369397,\
++	-2.35854794, -0.04429270, 0.02067197, 3.31425524, 0.88316156, 0.93503533, 0.54460979,\
++	-2.38634650, -0.04338368, 0.02045310, 3.34296281, 0.88574004, 0.93616321, 0.54539877,\
++	-2.41279547, -0.04250179, 0.02023142, 3.37029367, 0.88820859, 0.93726678, 0.54607015,\
++	-2.43797451, -0.04164613, 0.02000761, 3.39632839, 0.89057416, 0.93834626, 0.54663248,\
++	-2.46195951, -0.04081583, 0.01978231, 3.42114367, 0.89284301, 0.93940185, 0.54709369,\
++	-2.48482241, -0.04001011, 0.01955614, 3.44481230, 0.89502085, 0.94043375, 0.54746112,\
++	-2.50663126, -0.03922817, 0.01932966, 3.46740309, 0.89711291, 0.94144217, 0.54774153,\
++	-2.52745016, -0.03846928, 0.01910337, 3.48898088, 0.89912397, 0.94242735, 0.54794114,\
++	-2.54733938, -0.03773269, 0.01887774, 3.50960670, 0.90105847, 0.94338957, 0.54806571,\
++	-2.56635547, -0.03701769, 0.01865317, 3.52933779, 0.90292050, 0.94432915, 0.54812051,\
++	-2.58455138, -0.03632358, 0.01843000, 3.54822780, 0.90471386, 0.94524642, 0.54811044,\
++	-2.60197665, -0.03564968, 0.01820854, 3.56632697, 0.90644209, 0.94614178, 0.54803997,\
++	-2.61867756, -0.03499532, 0.01798905, 3.58368224, 0.90810850, 0.94701563, 0.54791326,\
++	-2.63469733, -0.03435985, 0.01777176, 3.60033748, 0.90971616, 0.94786840, 0.54773413,\
++	-2.65007629, -0.03374263, 0.01755683, 3.61633367, 0.91126798, 0.94870054, 0.54750610,\
++	-2.66485208, -0.03314303, 0.01734443, 3.63170905, 0.91276665, 0.94951253, 0.54723245,\
++	-2.67905981, -0.03256047, 0.01713468, 3.64649934, 0.91421471, 0.95030485, 0.54691620,\
++	-2.69273222, -0.03199435, 0.01692767, 3.66073787, 0.91561457, 0.95107798, 0.54656015,\
++	-2.70589990, -0.03144411, 0.01672347, 3.67445580, 0.91696845, 0.95183242, 0.54616691,\
++	-2.71859139, -0.03090919, 0.01652215, 3.68768220, 0.91827849, 0.95256866, 0.54573889,\
++	-2.73083334, -0.03038907, 0.01632374, 3.70044427, 0.91954667, 0.95328719, 0.54527835,\
++	-2.74265068, -0.02988323, 0.01612826, 3.71276745, 0.92077487, 0.95398851, 0.54478739,\
++	-2.75406669, -0.02939118, 0.01593573, 3.72467551, 0.92196486, 0.95467309, 0.54426797,\
++	-2.76510320, -0.02891245, 0.01574615, 3.73619076, 0.92311833, 0.95534141, 0.54372191,\
++	-2.77578063, -0.02844656, 0.01555950, 3.74733406, 0.92423685, 0.95599393, 0.54315095,\
++	-2.78611812, -0.02799309, 0.01537578, 3.75812503, 0.92532192, 0.95663113, 0.54255669,\
++	-2.79613364, -0.02755161, 0.01519496, 3.76858203, 0.92637496, 0.95725343, 0.54194065,\
++	-2.80584405, -0.02712170, 0.01501701, 3.77872235, 0.92739730, 0.95786128, 0.54130424,\
++	-2.81526521, -0.02670298, 0.01484191, 3.78856223, 0.92839022, 0.95845511, 0.54064880,\
++	-2.82441204, -0.02629506, 0.01466961, 3.79811697, 0.92935491, 0.95903532, 0.53997561,\
++	-2.83329857, -0.02589759, 0.01450009, 3.80740098, 0.93029251, 0.95960232, 0.53928586,\
++	-2.84193804, -0.02551021, 0.01433329, 3.81642782, 0.93120412, 0.96015649, 0.53858067,\
++	-2.85034293, -0.02513260, 0.01416919, 3.82521033, 0.93209074, 0.96069821, 0.53786112,\
++	-2.85852503, -0.02476443, 0.01400773, 3.83376061, 0.93295337, 0.96122784, 0.53712821,\
++	-2.86649548, -0.02440538, 0.01384888, 3.84209010, 0.93379291, 0.96174574, 0.53638291,\
++	-2.87426481, -0.02405518, 0.01369258, 3.85020963, 0.93461026, 0.96225224, 0.53562612,\
++	-2.88184299, -0.02371352, 0.01353880, 3.85812947, 0.93540625, 0.96274768, 0.53485873,\
++	-2.88923945, -0.02338014, 0.01338749, 3.86585931, 0.93618168, 0.96323236, 0.53408154,\
++	-2.89646316, -0.02305478, 0.01323861, 3.87340838, 0.93693730, 0.96370661, 0.53329534,\
++	-2.90352261, -0.02273718, 0.01309211, 3.88078542, 0.93767383, 0.96417071, 0.53250089,\
++	-2.91042585, -0.02242710, 0.01294795, 3.88799874, 0.93839197, 0.96462494, 0.53169888,\
++	-2.91718054, -0.02212431, 0.01280609, 3.89505623, 0.93909236, 0.96506960, 0.53089002,\
++	-2.92379397, -0.02182859, 0.01266648, 3.90196538, 0.93977564, 0.96550493, 0.53007493,\
++	-2.93027306, -0.02153971, 0.01252908, 3.90873334, 0.94044240, 0.96593120, 0.52925424,\
++	-2.93662439, -0.02125748, 0.01239386, 3.91536691, 0.94109322, 0.96634866, 0.52842854,\
++	-2.94285425, -0.02098169, 0.01226077, 3.92187256, 0.94172863, 0.96675754, 0.52759839,\
++	-2.94896860, -0.02071215, 0.01212977, 3.92825645, 0.94234915, 0.96715808, 0.52676434,\
++	-2.95497314, -0.02044868, 0.01200082, 3.93452446, 0.94295529, 0.96755050, 0.52592690,\
++	-2.96087331, -0.02019110, 0.01187388, 3.94068220, 0.94354752, 0.96793501, 0.52508656,\
++	-2.96667427, -0.01993924, 0.01174893, 3.94673503, 0.94412630, 0.96831183, 0.52424380,\
++	-2.97238097, -0.01969293, 0.01162591, 3.95268804, 0.94469206, 0.96868116, 0.52339906,\
++	-2.97799813, -0.01945201, 0.01150481, 3.95854612, 0.94524521, 0.96904318, 0.52255277,\
++	-2.98353025, -0.01921634, 0.01138557, 3.96431391, 0.94578617, 0.96939809, 0.52170535,\
++	-2.98898162, -0.01898576, 0.01126817, 3.96999586, 0.94631531, 0.96974607, 0.52085719,\
++	-2.99435636, -0.01876014, 0.01115257, 3.97559622, 0.94683300, 0.97008729, 0.52000868,\
++	-2.99965838, -0.01853932, 0.01103875, 3.98111905, 0.94733959, 0.97042193, 0.51916016,\
++	-3.00489143, -0.01832319, 0.01092666, 3.98656824, 0.94783543, 0.97075015, 0.51831198,\
++	-3.01005909, -0.01811161, 0.01081628, 3.99194748, 0.94832084, 0.97107211, 0.51746448,\
++	-3.01516479, -0.01790446, 0.01070757, 3.99726033, 0.94879613, 0.97138796, 0.51661796,\
++	-3.02021180, -0.01770162, 0.01060052, 4.00251017, 0.94926160, 0.97169786, 0.51577273,\
++	-3.02520323, -0.01750298, 0.01049508, 4.00770025, 0.94971755, 0.97200194, 0.51492908,\
++	-3.03014209, -0.01730842, 0.01039123, 4.01283367, 0.95016424, 0.97230035, 0.51408727,\
++	-3.03503122, -0.01711783, 0.01028894, 4.01791339, 0.95060195, 0.97259323, 0.51324758,\
++	-3.03987336, -0.01693111, 0.01018819, 4.02294225, 0.95103094, 0.97288070, 0.51241024,\
++	-3.04467112, -0.01674816, 0.01008894, 4.02792295, 0.95145145, 0.97316290, 0.51157550,\
++	-3.04942699, -0.01656889, 0.00999117, 4.03285810, 0.95186373, 0.97343995, 0.51074358,\
++	-3.05414335, -0.01639319, 0.00989485, 4.03775017, 0.95226799, 0.97371196, 0.50991471,\
++	-3.05882250, -0.01622097, 0.00979997, 4.04260153, 0.95266447, 0.97397906, 0.50908908,\
++	-3.06346660, -0.01605215, 0.00970649, 4.04741445, 0.95305338, 0.97424136, 0.50826689,\
++	-3.06807773, -0.01588664, 0.00961439, 4.05219109, 0.95343492, 0.97449897, 0.50744832,\
++	-3.07265789, -0.01572436, 0.00952364, 4.05693353, 0.95380929, 0.97475200, 0.50663356,\
++	-3.07720897, -0.01556522, 0.00943423, 4.06164375, 0.95417670, 0.97500055, 0.50582277,\
++	-3.08173279, -0.01540916, 0.00934613, 4.06632364, 0.95453731, 0.97524472, 0.50501611,\
++	-3.08623109, -0.01525608, 0.00925931, 4.07097501, 0.95489131, 0.97548461, 0.50421372,\
++	-3.09070551, -0.01510592, 0.00917376, 4.07559959, 0.95523888, 0.97572032, 0.50341576,\
++	-3.09515765, -0.01495861, 0.00908946, 4.08019904, 0.95558018, 0.97595193, 0.50262236,\
++	-3.09958899, -0.01481408, 0.00900637, 4.08477492, 0.95591537, 0.97617955, 0.50183364,\
++	-3.10400100, -0.01467225, 0.00892449, 4.08932875, 0.95624461, 0.97640325, 0.50104973,\
++	-3.10839504, -0.01453308, 0.00884379, 4.09386196, 0.95656806, 0.97662313, 0.50027073,\
++	-3.11277241, -0.01439648, 0.00876425, 4.09837593, 0.95688585, 0.97683927, 0.49949676,\
++	-3.11713438, -0.01426240, 0.00868586, 4.10287198, 0.95719812, 0.97705174, 0.49872791,\
++	-3.12148213, -0.01413079, 0.00860858, 4.10735134, 0.95750503, 0.97726063, 0.49796429,\
++	-3.12581680, -0.01400157, 0.00853241, 4.11181522, 0.95780669, 0.97746601, 0.49720597,\
++	-3.13013947, -0.01387471, 0.00845733, 4.11626476, 0.95810324, 0.97766796, 0.49645304,\
++	-3.13445117, -0.01375013, 0.00838331, 4.12070104, 0.95839480, 0.97786656, 0.49570558,\
++	-3.13875289, -0.01362779, 0.00831034, 4.12512510, 0.95868150, 0.97806186, 0.49496366,\
++	-3.14304556, -0.01350764, 0.00823841, 4.12953792, 0.95896344, 0.97825395, 0.49422734,\
++	-3.14733008, -0.01338963, 0.00816748, 4.13394045, 0.95924075, 0.97844289, 0.49349669,\
++	-3.15160728, -0.01327370, 0.00809756, 4.13833358, 0.95951352, 0.97862874, 0.49277177,\
++	-3.15587797, -0.01315981, 0.00802862, 4.14271816, 0.95978188, 0.97881157, 0.49205262,\
++	-3.16014293, -0.01304792, 0.00796064, 4.14709501, 0.96004592, 0.97899144, 0.49133930,\
++	-3.16440288, -0.01293797, 0.00789361, 4.15146491, 0.96030574, 0.97916842, 0.49063185,\
++	-3.16865852, -0.01282993, 0.00782751, 4.15582858, 0.96056144, 0.97934256, 0.48993030,\
++	-3.17291049, -0.01272375, 0.00776233, 4.16018673, 0.96081312, 0.97951392, 0.48923471,\
++	-3.17715942, -0.01261940, 0.00769805, 4.16454003, 0.96106086, 0.97968255, 0.48854509,\
++	-3.18140591, -0.01251682, 0.00763466, 4.16888910, 0.96130476, 0.97984852, 0.48786148,\
++	-3.18565052, -0.01241598, 0.00757215, 4.17323454, 0.96154490, 0.98001187, 0.48718390,\
++	-3.18989378, -0.01231685, 0.00751049, 4.17757693, 0.96178137, 0.98017266, 0.48651237,\
++	-3.19413619, -0.01221938, 0.00744968, 4.18191681, 0.96201424, 0.98033094, 0.48584692,\
++	-3.19837823, -0.01212354, 0.00738970, 4.18625469, 0.96224360, 0.98048676, 0.48518756,\
++	-3.20262035, -0.01202930, 0.00733053, 4.19059105, 0.96246952, 0.98064017, 0.48453431,\
++	-3.20686298, -0.01193661, 0.00727217, 4.19492637, 0.96269208, 0.98079121, 0.48388717,\
++	-3.21110653, -0.01184546, 0.00721461, 4.19926107, 0.96291135, 0.98093994, 0.48324615,\
++	-3.21535137, -0.01175579, 0.00715782, 4.20359557, 0.96312741, 0.98108639, 0.48261126,\
++	-3.21959786, -0.01166759, 0.00710179, 4.20793027, 0.96334031, 0.98123062, 0.48198250,\
++	-3.22384634, -0.01158082, 0.00704652, 4.21226552, 0.96355014, 0.98137266, 0.48135988,\
++	-3.22809714, -0.01149545, 0.00699199, 4.21660169, 0.96375694, 0.98151256, 0.48074338,\
++	-3.23235055, -0.01141146, 0.00693819, 4.22093909, 0.96396080, 0.98165035, 0.48013301,\
++	-3.23660685, -0.01132880, 0.00688511, 4.22527805, 0.96416176, 0.98178609, 0.47952876,\
++	-3.24086631, -0.01124746, 0.00683273, 4.22961885, 0.96435989, 0.98191980, 0.47893063,\
++	-3.24512918, -0.01116741, 0.00678105, 4.23396177, 0.96455525, 0.98205153, 0.47833860,\
++	-3.24939569, -0.01108862, 0.00673005, 4.23830707, 0.96474789, 0.98218132, 0.47775267,\
++	-3.25366606, -0.01101107, 0.00667973, 4.24265499, 0.96493787, 0.98230920, 0.47717282,\
++	-3.25794050, -0.01093473, 0.00663007, 4.24700577, 0.96512525, 0.98243520, 0.47659903,\
++	-3.26221918, -0.01085957, 0.00658106, 4.25135961, 0.96531007, 0.98255937, 0.47603130,\
++	-3.26650230, -0.01078557, 0.00653269, 4.25571672, 0.96549239, 0.98268174, 0.47546960,\
++	-3.27079000, -0.01071272, 0.00648495, 4.26007729, 0.96567225, 0.98280233, 0.47491391,\
++	-3.27508246, -0.01064097, 0.00643784, 4.26444149, 0.96584971, 0.98292119, 0.47436422,\
++	-3.27937980, -0.01057032, 0.00639134, 4.26880948, 0.96602482, 0.98303834, 0.47382051,\
++	-3.28368216, -0.01050074, 0.00634544, 4.27318141, 0.96619761, 0.98315382, 0.47328275,\
++	-3.28798965, -0.01043222, 0.00630013, 4.27755743, 0.96636814, 0.98326765, 0.47275091,\
++	-3.29230239, -0.01036472, 0.00625541, 4.28193767, 0.96653645, 0.98337988, 0.47222499,\
++	-3.29662047, -0.01029823, 0.00621126, 4.28632224, 0.96670258, 0.98349051, 0.47170494,\
++	-3.30094399, -0.01023273, 0.00616768, 4.29071126, 0.96686657, 0.98359960, 0.47119074,\
++	-3.30527303, -0.01016819, 0.00612465, 4.29510483, 0.96702847, 0.98370715, 0.47068237,\
++	-3.30960766, -0.01010461, 0.00608218, 4.29950304, 0.96718831, 0.98381321, 0.47017979,\
++	-3.31394795, -0.01004197, 0.00604024, 4.30390598, 0.96734614, 0.98391779, 0.46968299,\
++	-3.31829395, -0.00998024, 0.00599883, 4.30831372, 0.96750198, 0.98402093, 0.46919192,\
++	-3.32264573, -0.00991940, 0.00595795, 4.31272633, 0.96765588, 0.98412265, 0.46870656,\
++	-3.32700331, -0.00985945, 0.00591759, 4.31714387, 0.96780788, 0.98422297, 0.46822687,\
++	-3.33136675, -0.00980035, 0.00587773, 4.32156640, 0.96795801, 0.98432191, 0.46775284,\
++	-3.33573607, -0.00974211, 0.00583838, 4.32599396, 0.96810630, 0.98441951, 0.46728441,\
++	-3.34011130, -0.00968470, 0.00579951, 4.33042660, 0.96825278, 0.98451579, 0.46682157,\
++	-3.34449246, -0.00962810, 0.00576113, 4.33486436, 0.96839750, 0.98461077, 0.46636427,\
++	-3.34887956, -0.00957230, 0.00572323, 4.33930726, 0.96854048, 0.98470447, 0.46591248,\
++	-3.35327261, -0.00951729, 0.00568581, 4.34375533, 0.96868175, 0.98479691, 0.46546617,\
++	-3.35767163, -0.00946304, 0.00564884, 4.34820858, 0.96882135, 0.98488812, 0.46502531,\
++	-3.36207660, -0.00940956, 0.00561233, 4.35266704, 0.96895930, 0.98497811, 0.46458986,\
++	-3.36648753, -0.00935681, 0.00557627, 4.35713071, 0.96909563, 0.98506691, 0.46415977,\
++	-3.37090440, -0.00930480, 0.00554066, 4.36159960, 0.96923037, 0.98515454, 0.46373503,\
++	-3.37532721, -0.00925350, 0.00550548, 4.36607371, 0.96936355, 0.98524102, 0.46331559,\
++	-3.37975593, -0.00920290, 0.00547073, 4.37055303, 0.96949520, 0.98532636, 0.46290141,\
++	-3.38419056, -0.00915300, 0.00543641, 4.37503756, 0.96962535, 0.98541059, 0.46249246,\
++	-3.38863105, -0.00910377, 0.00540251, 4.37952729, 0.96975401, 0.98549373, 0.46208870,\
++	-3.39307740, -0.00905520, 0.00536901, 4.38402220, 0.96988122, 0.98557578, 0.46169009,\
++	-3.39752956, -0.00900729, 0.00533593, 4.38852227, 0.97000699, 0.98565678, 0.46129660,\
++	-3.40198751, -0.00896002, 0.00530324, 4.39302749, 0.97013137, 0.98573674, 0.46090819,\
++	-3.40645121, -0.00891338, 0.00527095, 4.39753783, 0.97025435, 0.98581567, 0.46052482,\
++	-3.41092063, -0.00886736, 0.00523904, 4.40205326, 0.97037598, 0.98589360, 0.46014645,\
++	-3.41539571, -0.00882195, 0.00520752, 4.40657376, 0.97049628, 0.98597053, 0.45977305,\
++	-3.41987643, -0.00877713, 0.00517637, 4.41109929, 0.97061526, 0.98604649, 0.45940458,\
++	-3.42436272, -0.00873290, 0.00514560, 4.41562982, 0.97073295, 0.98612149, 0.45904100,\
++	-3.42885456, -0.00868925, 0.00511520, 4.42016531, 0.97084936, 0.98619555, 0.45868227,\
++	-3.43335188, -0.00864617, 0.00508515, 4.42470571, 0.97096453, 0.98626868, 0.45832835,\
++	-3.43785464, -0.00860364, 0.00505546, 4.42925100, 0.97107847, 0.98634090, 0.45797921,\
++	-3.44236278, -0.00856166, 0.00502613, 4.43380112, 0.97119120, 0.98641222, 0.45763480,\
++	-3.44687625, -0.00852021, 0.00499714, 4.43835604, 0.97130274, 0.98648265, 0.45729509,\
++	-3.45139500, -0.00847930, 0.00496849, 4.44291570, 0.97141311, 0.98655221, 0.45696005,\
++	-3.45591895, -0.00843890, 0.00494017, 4.44748005, 0.97152233, 0.98662092, 0.45662962,\
++	-3.46044807, -0.00839902, 0.00491219, 4.45204905, 0.97163042, 0.98668879, 0.45630378,\
++	-3.46498227, -0.00835964, 0.00488454, 4.45662264, 0.97173739, 0.98675583, 0.45598249,\
++	-3.46952151, -0.00832075, 0.00485721, 4.46120077, 0.97184326, 0.98682205, 0.45566570,\
++	-3.47406572, -0.00828234, 0.00483019, 4.46578338, 0.97194805, 0.98688746, 0.45535338,\
++	-3.47861484, -0.00824442, 0.00480349, 4.47037042, 0.97205179, 0.98695209, 0.45504550,\
++	-3.48316880, -0.00820696, 0.00477710, 4.47496184, 0.97215447, 0.98701594, 0.45474201,\
++	-3.48772753, -0.00816996, 0.00475102, 4.47955756, 0.97225612, 0.98707902, 0.45444287,\
++	-3.49229097, -0.00813342, 0.00472523, 4.48415755, 0.97235676, 0.98714134, 0.45414806,\
++	-3.49685904, -0.00809733, 0.00469975, 4.48876172, 0.97245640, 0.98720293, 0.45385753,\
++	-3.50143169, -0.00806167, 0.00467455, 4.49337002, 0.97255506, 0.98726378, 0.45357123,\
++	-3.50600884, -0.00802644, 0.00464964, 4.49798240, 0.97265275, 0.98732391, 0.45328915,\
++	-3.51059042, -0.00799164, 0.00462502, 4.50259878, 0.97274949, 0.98738333, 0.45301123,\
++	-3.51517637, -0.00795726, 0.00460068, 4.50721911, 0.97284528, 0.98744206, 0.45273745,\
++	-3.51976660, -0.00792329, 0.00457662, 4.51184331, 0.97294015, 0.98750009, 0.45246776,\
++	-3.52436105, -0.00788972, 0.00455283, 4.51647133, 0.97303411, 0.98755745, 0.45220214,\
++	-3.52895964, -0.00785655, 0.00452930, 4.52110309, 0.97312718, 0.98761414, 0.45194053,\
++	-3.53356231, -0.00782377, 0.00450605, 4.52573854, 0.97321936, 0.98767018, 0.45168291,\
++	-3.53816898, -0.00779138, 0.00448306, 4.53037760, 0.97331067, 0.98772556, 0.45142923,\
++	-3.54277957, -0.00775937, 0.00446032, 4.53502021, 0.97340111, 0.98778031, 0.45117947,\
++	-3.54739402, -0.00772773, 0.00443784, 4.53966629, 0.97349072, 0.98783443, 0.45093359,\
++	-3.55201224, -0.00769645, 0.00441562, 4.54431579, 0.97357949, 0.98788793, 0.45069155,\
++	-3.55663417, -0.00766554, 0.00439364, 4.54896864, 0.97366744, 0.98794082, 0.45045331,\
++	-3.56125973, -0.00763498, 0.00437190, 4.55362475, 0.97375458, 0.98799311, 0.45021885,\
++	-3.56588885, -0.00760478, 0.00435041, 4.55828407, 0.97384092, 0.98804481, 0.44998812,\
++	-3.57052145, -0.00757491, 0.00432916, 4.56294653, 0.97392648, 0.98809593, 0.44976109,\
++	-3.57515745, -0.00754539, 0.00430814, 4.56761206, 0.97401126, 0.98814646, 0.44953772,\
++	-3.57979678, -0.00751620, 0.00428736, 4.57228058, 0.97409528, 0.98819644, 0.44931799,\
++	-3.58443937, -0.00748734, 0.00426681, 4.57695203, 0.97417854, 0.98824585, 0.44910185,\
++	-3.58908514, -0.00745880, 0.00424648, 4.58162633, 0.97426107, 0.98829472, 0.44888928,\
++	-3.59373401, -0.00743059, 0.00422637, 4.58630343, 0.97434286, 0.98834304, 0.44868023,\
++	-3.59838592, -0.00740268, 0.00420649, 4.59098323, 0.97442393, 0.98839083, 0.44847468,\
++	-3.60304078, -0.00737509, 0.00418682, 4.59566569, 0.97450428, 0.98843809, 0.44827259,\
++	-3.60769852, -0.00734780, 0.00416737, 4.60035072, 0.97458394, 0.98848483, 0.44807392,\
++	-3.61235907, -0.00732081, 0.00414813, 4.60503826, 0.97466290, 0.98853106, 0.44787865,\
++	-3.61702235, -0.00729411, 0.00412910, 4.60972823, 0.97474118, 0.98857678, 0.44768674,\
++	-3.62168828, -0.00726771, 0.00411028, 4.61442057, 0.97481879, 0.98862201, 0.44749816,\
++	-3.62635680, -0.00724159, 0.00409166, 4.61911521, 0.97489573, 0.98866675, 0.44731288,\
++	-3.63102782, -0.00721575, 0.00407325, 4.62381207, 0.97497202, 0.98871100, 0.44713086,\
++	-3.63570128, -0.00719020, 0.00405503, 4.62851108, 0.97504766, 0.98875478, 0.44695207,\
++	-3.64037709, -0.00716491, 0.00403700, 4.63321218, 0.97512267, 0.98879808, 0.44677649,\
++	-3.64505519, -0.00713990, 0.00401918, 4.63791530, 0.97519704, 0.98884093, 0.44660407,\
++	-3.64973550, -0.00711515, 0.00400154, 4.64262036, 0.97527080, 0.98888331, 0.44643478,\
++	-3.65441795, -0.00709066, 0.00398409, 4.64732729, 0.97534394, 0.98892525, 0.44626861,\
++	-3.65910247, -0.00706643, 0.00396683, 4.65203604, 0.97541648, 0.98896674, 0.44610551,\
++	-3.66378898, -0.00704246, 0.00394975, 4.65674652, 0.97548842, 0.98900779, 0.44594545,\
++	-3.66847740, -0.00701873, 0.00393286, 4.66145867, 0.97555978, 0.98904841, 0.44578841,\
++	-3.67316767, -0.00699526, 0.00391614, 4.66617242, 0.97563055, 0.98908860, 0.44563435,\
++	-3.67785972, -0.00697202, 0.00389960, 4.67088770, 0.97570076, 0.98912838, 0.44548324,\
++	-3.68255347, -0.00694903, 0.00388324, 4.67560444, 0.97577039, 0.98916773, 0.44533506,\
++	-3.68724885, -0.00692627, 0.00386705, 4.68032258, 0.97583947, 0.98920668, 0.44518977,\
++	-3.69194579, -0.00690374, 0.00385103, 4.68504204, 0.97590800, 0.98924523, 0.44504735,\
++	-3.69664421, -0.00688145, 0.00383518, 4.68976277, 0.97597598, 0.98928338, 0.44490776,\
++	-3.70134406, -0.00685938, 0.00381949, 4.69448468, 0.97604342, 0.98932113, 0.44477099,\
++	-3.70604525, -0.00683753, 0.00380397, 4.69920772, 0.97611034, 0.98935850, 0.44463698,\
++	-3.71074772, -0.00681590, 0.00378861, 4.70393182, 0.97617673, 0.98939548, 0.44450573,\
++	-3.71545140, -0.00679449, 0.00377342, 4.70865691, 0.97624261, 0.98943209, 0.44437720,\
++	-3.72015622, -0.00677330, 0.00375838, 4.71338292, 0.97630797, 0.98946833, 0.44425137,\
++	-3.72486211, -0.00675231, 0.00374349, 4.71810980, 0.97637283, 0.98950420, 0.44412820,\
++	-3.72956899, -0.00673153, 0.00372877, 4.72283746, 0.97643720, 0.98953970, 0.44400767,\
++	-3.73427682, -0.00671096, 0.00371419, 4.72756585, 0.97650107, 0.98957485, 0.44388975,\
++	-3.73898550, -0.00669059, 0.00369976, 4.73229491, 0.97656446, 0.98960965, 0.44377441,\
++	-3.74369498, -0.00667042, 0.00368549, 4.73702457, 0.97662737, 0.98964409, 0.44366163,\
++	-3.74840519, -0.00665044, 0.00367136, 4.74175475, 0.97668980, 0.98967820, 0.44355139,\
++	-3.75311607, -0.00663066, 0.00365738, 4.74648541, 0.97675177, 0.98971196, 0.44344364,\
++	-3.75782754, -0.00661107, 0.00364354, 4.75121648, 0.97681327, 0.98974540, 0.44333838,\
++	-3.76253955, -0.00659167, 0.00362984, 4.75594788, 0.97687432, 0.98977850, 0.44323557,\
++	-3.76725202, -0.00657245, 0.00361628, 4.76067957, 0.97693492, 0.98981127, 0.44313518,\
++	-3.77196489, -0.00655341, 0.00360286, 4.76541147, 0.97699508, 0.98984372, 0.44303720,\
++	-3.77667809, -0.00653456, 0.00358958, 4.77014353, 0.97705479, 0.98987586, 0.44294159,\
++	-3.78139156, -0.00651589, 0.00357643, 4.77487568, 0.97711407, 0.98990768, 0.44284833,\
++	-3.78610525, -0.00649739, 0.00356342, 4.77960786, 0.97717292, 0.98993920, 0.44275740,\
++	-3.79081907, -0.00647906, 0.00355053, 4.78434001, 0.97723134, 0.98997040, 0.44266877,\
++	-3.79553298, -0.00646091, 0.00353778, 4.78907207, 0.97728935, 0.99000131, 0.44258241,\
++	-3.80024690, -0.00644292, 0.00352516, 4.79380398, 0.97734694, 0.99003192, 0.44249831,\
++	-3.80496078, -0.00642510, 0.00351266, 4.79853567, 0.97740413, 0.99006223, 0.44241644,\
++	-3.80967455, -0.00640745, 0.00350029, 4.80326710, 0.97746090, 0.99009226, 0.44233677,\
++	-3.81438815, -0.00638996, 0.00348804, 4.80799819, 0.97751728, 0.99012200, 0.44225928,\
++	-3.81910152, -0.00637262, 0.00347592, 4.81272889, 0.97757326, 0.99015145, 0.44218395,\
++	-3.82381460, -0.00635545, 0.00346392, 4.81745915, 0.97762886, 0.99018063, 0.44211076,\
++	-3.82852732, -0.00633843, 0.00345204, 4.82218889, 0.97768406, 0.99020953, 0.44203968,\
++	-3.83323964, -0.00632157, 0.00344027, 4.82691808, 0.97773889, 0.99023816, 0.44197068,\
++	-3.83795149, -0.00630485, 0.00342863, 4.83164664, 0.97779333, 0.99026652, 0.44190376,\
++	-3.84266280, -0.00628829, 0.00341709, 4.83637452, 0.97784741, 0.99029462, 0.44183887,\
++	-3.84737353, -0.00627187, 0.00340568, 4.84110166, 0.97790111, 0.99032245, 0.44177601,\
++	-3.85208361, -0.00625560, 0.00339437, 4.84582801, 0.97795446, 0.99035003, 0.44171515,\
++	-3.85679299, -0.00623948, 0.00338318, 4.85055351, 0.97800744, 0.99037735, 0.44165627,\
++	-3.86150160, -0.00622349, 0.00337210, 4.85527811, 0.97806006, 0.99040441, 0.44159934,\
++	-3.86620939, -0.00620765, 0.00336112, 4.86000175, 0.97811233, 0.99043123, 0.44154435,\
++	-3.87091631, -0.00619194, 0.00335026, 4.86472437, 0.97816426, 0.99045780, 0.44149127,\
++	-3.87562229, -0.00617637, 0.00333950, 4.86944592, 0.97821584, 0.99048413, 0.44144009,\
++	-3.88032729, -0.00616094, 0.00332885, 4.87416635, 0.97826708, 0.99051022, 0.44139078,\
++	-3.88503124, -0.00614564, 0.00331830, 4.87888561, 0.97831798, 0.99053607, 0.44134332,\
++	-3.88973410, -0.00613047, 0.00330785, 4.88360363, 0.97836855, 0.99056168, 0.44129769,\
++	-3.89443580, -0.00611543, 0.00329750, 4.88832037, 0.97841879, 0.99058707, 0.44125387,\
++	-3.89913629, -0.00610051, 0.00328726, 4.89303577, 0.97846870, 0.99061223, 0.44121185,\
++	-3.90383552, -0.00608573, 0.00327711, 4.89774979, 0.97851829, 0.99063716, 0.44117159,\
++	-3.90853343, -0.00607107, 0.00326707, 4.90246236, 0.97856756, 0.99066187, 0.44113309,\
++	-3.91322998, -0.00605653, 0.00325712, 4.90717345, 0.97861652, 0.99068635, 0.44109632,\
++	-3.91792511, -0.00604212, 0.00324726, 4.91188299, 0.97866516, 0.99071062, 0.44106126,\
++	-3.92261876, -0.00602782, 0.00323750, 4.91659094, 0.97871350, 0.99073468, 0.44102790,\
++	-3.92731089, -0.00601364, 0.00322784, 4.92129724, 0.97876153, 0.99075852, 0.44099621,\
++	-3.93200144, -0.00599958, 0.00321826, 4.92600186, 0.97880926, 0.99078215, 0.44096618,\
++	-3.93669036, -0.00598564, 0.00320878, 4.93070472, 0.97885669, 0.99080558, 0.44093779,\
++	-3.94137761, -0.00597181, 0.00319939, 4.93540580, 0.97890383, 0.99082880, 0.44091101,\
++	-3.94606313, -0.00595809, 0.00319009, 4.94010504, 0.97895067, 0.99085182, 0.44088584,\
++	-3.95074687, -0.00594449, 0.00318088, 4.94480238, 0.97899722, 0.99087463, 0.44086225,\
++	-3.95542878, -0.00593099, 0.00317175, 4.94949779, 0.97904349, 0.99089725, 0.44084022,\
++	-3.96010882, -0.00591761, 0.00316271, 4.95419121, 0.97908947, 0.99091968, 0.44081975,\
++	-3.96478693, -0.00590433, 0.00315376, 4.95888260, 0.97913517, 0.99094191, 0.44080080,\
++	-3.96946306, -0.00589116, 0.00314489, 4.96357191, 0.97918060, 0.99096395, 0.44078336,\
++	-3.97413718, -0.00587809, 0.00313611, 4.96825909, 0.97922575, 0.99098581, 0.44076742,\
++	-3.97880922, -0.00586512, 0.00312740, 4.97294410, 0.97927063, 0.99100747, 0.44075296,\
++	-3.98347915, -0.00585226, 0.00311878, 4.97762689, 0.97931524, 0.99102895, 0.44073996,\
++	-3.98814692, -0.00583950, 0.00311024, 4.98230742, 0.97935959, 0.99105026, 0.44072841,\
++	-3.99281247, -0.00582684, 0.00310178, 4.98698564, 0.97940367, 0.99107138, 0.44071828,\
++	-3.99747577, -0.00581428, 0.00309340, 4.99166150, 0.97944749, 0.99109232, 0.44070956,\
++	-4.00213677, -0.00580181, 0.00308510, 4.99633496, 0.97949105, 0.99111309, 0.44070224,\
++	-4.00679542, -0.00578944, 0.00307688, 5.00100598, 0.97953436, 0.99113368, 0.44069630,\
++	-4.01145168, -0.00577717, 0.00306873, 5.00567451, 0.97957741, 0.99115410, 0.44069173,\
++	-4.01610551, -0.00576499, 0.00306065, 5.01034052, 0.97962021, 0.99117436, 0.44068850,\
++	-4.02075685, -0.00575290, 0.00305266, 5.01500395, 0.97966277, 0.99119444, 0.44068660,\
++	-4.02540567, -0.00574091, 0.00304473, 5.01966476, 0.97970508, 0.99121436, 0.44068602,\
++	-4.03005191, -0.00572900, 0.00303688, 5.02432291, 0.97974715, 0.99123412, 0.44068674,\
++	-4.03469555, -0.00571719, 0.00302910, 5.02897837, 0.97978897, 0.99125371, 0.44068875,\
++	-4.03933654, -0.00570546, 0.00302139, 5.03363108, 0.97983056, 0.99127315, 0.44069203,\
++	-4.04397482, -0.00569382, 0.00301375, 5.03828100, 0.97987192, 0.99129242, 0.44069657,\
++	-4.04861037, -0.00568227, 0.00300619, 5.04292810, 0.97991304, 0.99131154, 0.44070234,\
++	-4.05324314, -0.00567080, 0.00299869, 5.04757234, 0.97995393, 0.99133051, 0.44070935,\
++	-4.05787308, -0.00565942, 0.00299126, 5.05221367, 0.97999459, 0.99134932, 0.44071756,\
++	-4.06250017, -0.00564812, 0.00298390, 5.05685205, 0.98003502, 0.99136799, 0.44072698,\
++	-4.06712435, -0.00563690, 0.00297660, 5.06148744, 0.98007523, 0.99138650, 0.44073757,\
++	-4.07174558, -0.00562577, 0.00296937, 5.06611981, 0.98011522, 0.99140486, 0.44074934,\
++	-4.07636383, -0.00561471, 0.00296221, 5.07074912, 0.98015498, 0.99142308, 0.44076227,\
++	-4.08097906, -0.00560374, 0.00295511, 5.07537532, 0.98019453, 0.99144116, 0.44077633,\
++	-4.08559122, -0.00559284, 0.00294807, 5.07999838, 0.98023386, 0.99145909, 0.44079153,\
++	-4.09020028, -0.00558202, 0.00294110, 5.08461826, 0.98027298, 0.99147688, 0.44080784,\
++	-4.09480620, -0.00557128, 0.00293419, 5.08923492, 0.98031189, 0.99149453, 0.44082525,\
++	-4.09940894, -0.00556061, 0.00292734, 5.09384833, 0.98035059, 0.99151204, 0.44084375,\
++	-4.10400846, -0.00555002, 0.00292056, 5.09845844, 0.98038908, 0.99152942, 0.44086333,\
++	-4.10860473, -0.00553950, 0.00291383, 5.10306522, 0.98042736, 0.99154666, 0.44088396,\
++	-4.11319770, -0.00552906, 0.00290717, 5.10766864, 0.98046544, 0.99156377, 0.44090565,\
++	-4.11778734, -0.00551869, 0.00290056, 5.11226865, 0.98050332, 0.99158075, 0.44092838,\
++	-4.12237362, -0.00550839, 0.00289401, 5.11686523, 0.98054100, 0.99159760, 0.44095213,\
++	-4.12695649, -0.00549816, 0.00288752, 5.12145833, 0.98057848, 0.99161431, 0.44097689,\
++	-4.13153592, -0.00548801, 0.00288109, 5.12604792, 0.98061577, 0.99163090, 0.44100265,\
++	-4.13611188, -0.00547792, 0.00287471, 5.13063396, 0.98065286, 0.99164737, 0.44102940,\
++	-4.14068433, -0.00546790, 0.00286839, 5.13521643, 0.98068975, 0.99166371, 0.44105712,\
++	-4.14525323, -0.00545795, 0.00286213, 5.13979528, 0.98072646, 0.99167992, 0.44108581,\
++	-4.14981854, -0.00544806, 0.00285592, 5.14437048, 0.98076298, 0.99169602, 0.44111544,\
++	-4.15438025, -0.00543824, 0.00284976, 5.14894200, 0.98079931, 0.99171199, 0.44114602,\
++	-4.15893830, -0.00542849, 0.00284366, 5.15350981, 0.98083545, 0.99172785, 0.44117753,\
++	-4.16349267, -0.00541880, 0.00283761, 5.15807386, 0.98087141, 0.99174358, 0.44120995,\
++	-4.16804332, -0.00540918, 0.00283162, 5.16263414, 0.98090719, 0.99175920, 0.44124328,\
++	-4.17259021, -0.00539962, 0.00282567, 5.16719060, 0.98094278, 0.99177471, 0.44127750,\
++	-4.17713333, -0.00539012, 0.00281978, 5.17174321, 0.98097820, 0.99179010, 0.44131260,\
++	-4.18167262, -0.00538069, 0.00281394, 5.17629194, 0.98101344, 0.99180537, 0.44134857,\
++	-4.18620807, -0.00537131, 0.00280815, 5.18083676, 0.98104851, 0.99182054, 0.44138541,\
++	-4.19073963, -0.00536200, 0.00280241, 5.18537763, 0.98108340, 0.99183560, 0.44142309,\
++	-4.19526728, -0.00535274, 0.00279671, 5.18991453, 0.98111811, 0.99185054, 0.44146162,\
++	-4.19979098, -0.00534355, 0.00279107, 5.19444743, 0.98115266, 0.99186538, 0.44150097,\
++	-4.20431070, -0.00533441, 0.00278548, 5.19897629, 0.98118704, 0.99188011, 0.44154114,\
++	-4.20882641, -0.00532534, 0.00277993, 5.20350108, 0.98122125, 0.99189474, 0.44158211,\
++	-4.21333809, -0.00531632, 0.00277443, 5.20802177, 0.98125529, 0.99190926, 0.44162389,\
++	-4.21784569, -0.00530735, 0.00276897, 5.21253834, 0.98128916, 0.99192367, 0.44166645,\
++	-4.22234919, -0.00529845, 0.00276357, 5.21705075, 0.98132288, 0.99193799, 0.44170979,\
++	-4.22684856, -0.00528959, 0.00275820, 5.22155897, 0.98135643, 0.99195220, 0.44175389,\
++	-4.23134377, -0.00528080, 0.00275289, 5.22606297, 0.98138982, 0.99196631, 0.44179875,\
++	-4.23583479, -0.00527206, 0.00274762, 5.23056273, 0.98142305, 0.99198033, 0.44184436,\
++	-4.24032159, -0.00526337, 0.00274239, 5.23505822, 0.98145612, 0.99199424, 0.44189070,\
++	-4.24480413, -0.00525473, 0.00273720, 5.23954940, 0.98148904, 0.99200806, 0.44193777,\
++	-4.24928241, -0.00524615, 0.00273206, 5.24403626, 0.98152180, 0.99202179, 0.44198557,\
++	-4.25375637, -0.00523762, 0.00272697, 5.24851875, 0.98155440, 0.99203541, 0.44203406,\
++	-4.25822600, -0.00522914, 0.00272191, 5.25299686, 0.98158685, 0.99204895, 0.44208326,\
++	-4.26269127, -0.00522071, 0.00271690, 5.25747055, 0.98161916, 0.99206239, 0.44213315,\
++	-4.26715214, -0.00521233, 0.00271193, 5.26193981, 0.98165131, 0.99207574, 0.44218372,\
++	-4.27160860, -0.00520401, 0.00270700, 5.26640459, 0.98168331, 0.99208900, 0.44223496,\
++	-4.27606061, -0.00519573, 0.00270211, 5.27086489, 0.98171516, 0.99210217, 0.44228686,\
++	-4.28050816, -0.00518750, 0.00269726, 5.27532066, 0.98174687, 0.99211524, 0.44233942,\
++	-4.28495120, -0.00517932, 0.00269245, 5.27977188, 0.98177844, 0.99212824, 0.44239262,\
++	-4.28938971, -0.00517119, 0.00268767, 5.28421853, 0.98180986, 0.99214114, 0.44244646,\
++	-4.29382368, -0.00516310, 0.00268294, 5.28866058, 0.98184113, 0.99215396, 0.44250093,\
++	-4.29825306, -0.00515506, 0.00267825, 5.29309800, 0.98187227, 0.99216669, 0.44255601,\
++	-4.30267785, -0.00514707, 0.00267359, 5.29753078, 0.98190326, 0.99217934, 0.44261171,\
++	-4.30709800, -0.00513912, 0.00266898, 5.30195888, 0.98193412, 0.99219190, 0.44266801,\
++	-4.31151350, -0.00513122, 0.00266440, 5.30638227, 0.98196483, 0.99220438, 0.44272490,\
++	-4.31592431, -0.00512337, 0.00265985, 5.31080095, 0.98199542, 0.99221678, 0.44278238,\
++	-4.32033043, -0.00511555, 0.00265535, 5.31521487, 0.98202586, 0.99222910, 0.44284044,\
++	-4.32473181, -0.00510779, 0.00265088, 5.31962403, 0.98205617, 0.99224134, 0.44289907,\
++	-4.32912844, -0.00510006, 0.00264644, 5.32402838, 0.98208635, 0.99225350, 0.44295825,\
++	-4.33352030, -0.00509238, 0.00264204, 5.32842792, 0.98211639, 0.99226558, 0.44301800,\
++	-4.33790735, -0.00508474, 0.00263768, 5.33282261, 0.98214630, 0.99227758, 0.44307829,\
++	-4.34228957, -0.00507715, 0.00263335, 5.33721243, 0.98217609, 0.99228950, 0.44313911,\
++	-4.34666695, -0.00506959, 0.00262906, 5.34159736, 0.98220574, 0.99230135, 0.44320047,\
++	-4.35103946, -0.00506208, 0.00262479, 5.34597738, 0.98223526, 0.99231313, 0.44326235,\
++	-4.35540706, -0.00505461, 0.00262057, 5.35035246, 0.98226466, 0.99232483, 0.44332475,\
++	-4.35976976, -0.00504718, 0.00261637, 5.35472258, 0.98229393, 0.99233645, 0.44338766,\
++	-4.36412751, -0.00503978, 0.00261221, 5.35908772, 0.98232308, 0.99234800, 0.44345107,\
++	-4.36848029, -0.00503243, 0.00260808, 5.36344786, 0.98235210, 0.99235949, 0.44351497,\
++	-4.37282810, -0.00502512, 0.00260399, 5.36780298, 0.98238100, 0.99237089, 0.44357936,\
++	-4.37717089, -0.00501785, 0.00259992, 5.37215304, 0.98240977, 0.99238223, 0.44364422,\
++	-4.38150866, -0.00501061, 0.00259589, 5.37649804, 0.98243843, 0.99239350, 0.44370956,\
++	-4.38584137, -0.00500341, 0.00259189, 5.38083796, 0.98246696, 0.99240470, 0.44377537,\
++	-4.39016901, -0.00499626, 0.00258792, 5.38517276, 0.98249538, 0.99241583, 0.44384163,\
++	-4.39449156, -0.00498913, 0.00258397, 5.38950243, 0.98252368, 0.99242689, 0.44390835,\
++	-4.39880900, -0.00498205, 0.00258006, 5.39382695, 0.98255186, 0.99243789, 0.44397551,\
++	-4.40312130, -0.00497500, 0.00257618, 5.39814630, 0.98257992, 0.99244881, 0.44404311,\
++	-4.40742845, -0.00496799, 0.00257233, 5.40246046, 0.98260787, 0.99245968, 0.44411114,\
++	-4.41173042, -0.00496101, 0.00256851, 5.40676940, 0.98263570, 0.99247047, 0.44417960,\
++	-4.41602719, -0.00495407, 0.00256472, 5.41107312, 0.98266342, 0.99248121, 0.44424847,\
++	-4.42031875, -0.00494717, 0.00256096, 5.41537158, 0.98269102, 0.99249187, 0.44431776,\
++	-4.42460508, -0.00494030, 0.00255722, 5.41966478, 0.98271852, 0.99250248, 0.44438745,\
++	-4.42888615, -0.00493346, 0.00255351, 5.42395268, 0.98274590, 0.99251302, 0.44445755,\
++	-4.43316194, -0.00492666, 0.00254984, 5.42823528, 0.98277317, 0.99252350, 0.44452803,\
++	-4.43743244, -0.00491989, 0.00254618, 5.43251255, 0.98280033, 0.99253392, 0.44459891,\
++	-4.44169763, -0.00491316, 0.00254256, 5.43678447, 0.98282738, 0.99254428, 0.44467016,\
++	-4.44595749, -0.00490646, 0.00253896, 5.44105103, 0.98285433, 0.99255458, 0.44474179,\
++	-4.45021200, -0.00489979, 0.00253539, 5.44531221, 0.98288117, 0.99256482, 0.44481379,\
++	-4.45446115, -0.00489316, 0.00253185, 5.44956799, 0.98290790, 0.99257500, 0.44488616,\
++	-4.45870490, -0.00488655, 0.00252833, 5.45381835, 0.98293452, 0.99258512, 0.44495888,\
++	-4.46294326, -0.00487998, 0.00252484, 5.45806327, 0.98296105, 0.99259518, 0.44503195,\
++	-4.46717619, -0.00487344, 0.00252137, 5.46230275, 0.98298746, 0.99260519, 0.44510537,\
++	-4.47140368, -0.00486693, 0.00251793, 5.46653675, 0.98301378, 0.99261514, 0.44517912,\
++	-4.47562571, -0.00486046, 0.00251451, 5.47076526, 0.98303999, 0.99262503, 0.44525322,\
++	-4.47984227, -0.00485401, 0.00251112, 5.47498827, 0.98306610, 0.99263487, 0.44532764,\
++	-4.48405334, -0.00484759, 0.00250775, 5.47920575, 0.98309211, 0.99264465, 0.44540238,\
++	-4.48825891, -0.00484121, 0.00250441, 5.48341770, 0.98311802, 0.99265438, 0.44547744,\
++	-4.49245894, -0.00483485, 0.00250109, 5.48762409, 0.98314383, 0.99266406, 0.44555282,\
++	-4.49665344, -0.00482852, 0.00249780, 5.49182492, 0.98316954, 0.99267368, 0.44562850,\
++	-4.50084238, -0.00482223, 0.00249453, 5.49602015, 0.98319515, 0.99268325, 0.44570449,\
++	-4.50502575, -0.00481596, 0.00249128, 5.50020979, 0.98322067, 0.99269277, 0.44578077,\
++	-4.50920352, -0.00480972, 0.00248805, 5.50439380, 0.98324609, 0.99270223, 0.44585734,\
++	-4.51337569, -0.00480350, 0.00248485, 5.50857219, 0.98327141, 0.99271164, 0.44593420,\
++	-4.51754224, -0.00479732, 0.00248167, 5.51274492, 0.98329664, 0.99272101, 0.44601134,\
++	-4.52170315, -0.00479117, 0.00247851, 5.51691199, 0.98332177, 0.99273032, 0.44608876,\
++	-4.52585842, -0.00478504, 0.00247538, 5.52107338, 0.98334681, 0.99273958, 0.44616645,\
++	-4.53000801, -0.00477894, 0.00247227, 5.52522907, 0.98337176, 0.99274880, 0.44624440,\
++	-4.53415192, -0.00477286, 0.00246917, 5.52937906, 0.98339661, 0.99275796, 0.44632262,\
++	-4.53829014, -0.00476682, 0.00246610, 5.53352332, 0.98342137, 0.99276708, 0.44640109,\
++	-4.54242264, -0.00476080, 0.00246306, 5.53766184, 0.98344605, 0.99277615, 0.44647982,\
++	-4.54654942, -0.00475480, 0.00246003, 5.54179461, 0.98347063, 0.99278517, 0.44655879,\
++	-4.55067046, -0.00474884, 0.00245702, 5.54592162, 0.98349512, 0.99279414, 0.44663801,\
++	-4.55478574, -0.00474290, 0.00245404, 5.55004285, 0.98351952, 0.99280307, 0.44671746,\
++	-4.55889526, -0.00473698, 0.00245107, 5.55415828, 0.98354383, 0.99281195, 0.44679715,\
++	-4.56299899, -0.00473109, 0.00244812, 5.55826790, 0.98356806, 0.99282079, 0.44687706,\
++	-4.56709693, -0.00472522, 0.00244520, 5.56237170, 0.98359219, 0.99282958, 0.44695720,\
++	-4.57118906, -0.00471938, 0.00244229, 5.56646967, 0.98361625, 0.99283832, 0.44703756,\
++	-4.57527536, -0.00471357, 0.00243940, 5.57056179, 0.98364021, 0.99284703, 0.44711814,\
++	-4.57935583, -0.00470778, 0.00243654, 5.57464806, 0.98366409, 0.99285569, 0.44719893,\
++	-4.58343045, -0.00470201, 0.00243369, 5.57872844, 0.98368788, 0.99286430, 0.44727992,\
++	-4.58749921, -0.00469627, 0.00243086, 5.58280295, 0.98371159, 0.99287287, 0.44736112,\
++	-4.59156210, -0.00469055, 0.00242805, 5.58687155, 0.98373522, 0.99288140, 0.44744252,\
++	-4.59561910, -0.00468485, 0.00242526, 5.59093424, 0.98375876, 0.99288989, 0.44752411,\
++	-4.59967020, -0.00467918, 0.00242248, 5.59499102, 0.98378222, 0.99289833, 0.44760589,\
++	-4.60371538, -0.00467353, 0.00241973, 5.59904185, 0.98380560, 0.99290674, 0.44768785,\
++	-4.60775465, -0.00466791, 0.00241699, 5.60308674, 0.98382890, 0.99291510, 0.44777000,\
++	-4.61178797, -0.00466230, 0.00241427, 5.60712567, 0.98385211, 0.99292343, 0.44785233,\
++	-4.61581536, -0.00465672, 0.00241157, 5.61115863, 0.98387525, 0.99293171, 0.44793483,\
++	-4.61983678, -0.00465116, 0.00240889, 5.61518561, 0.98389830, 0.99293995, 0.44801750,\
++	-4.62385223, -0.00464563, 0.00240622, 5.61920660, 0.98392128, 0.99294815, 0.44810034,\
++	-4.62786170, -0.00464011, 0.00240357, 5.62322158, 0.98394418, 0.99295632, 0.44818334,\
++	-4.63186517, -0.00463462, 0.00240093, 5.62723055, 0.98396700, 0.99296444, 0.44826650,\
++	-4.63586264, -0.00462915, 0.00239832, 5.63123349, 0.98398974, 0.99297253, 0.44834982,\
++	-4.63985410, -0.00462370, 0.00239572, 5.63523040, 0.98401240, 0.99298058, 0.44843328,\
++	-4.64383953, -0.00461827, 0.00239313, 5.63922126, 0.98403499, 0.99298859, 0.44851690,\
++	-4.64781892, -0.00461286, 0.00239057, 5.64320606, 0.98405750, 0.99299657, 0.44860066,\
++	-4.65179227, -0.00460748, 0.00238802, 5.64718479, 0.98407993, 0.99300451, 0.44868455,\
++	-4.65575956, -0.00460211, 0.00238548, 5.65115744, 0.98410229, 0.99301241, 0.44876859,\
++	-4.65972078, -0.00459677, 0.00238296, 5.65512401, 0.98412458, 0.99302027, 0.44885276,\
++	-4.66367592, -0.00459144, 0.00238046, 5.65908448, 0.98414679, 0.99302810, 0.44893706,\
++	-4.66762497, -0.00458614, 0.00237797, 5.66303884, 0.98416893, 0.99303590, 0.44902148,\
++	-4.67156793, -0.00458085, 0.00237549, 5.66698708, 0.98419099, 0.99304366, 0.44910603,\
++	-4.67550478, -0.00457558, 0.00237303, 5.67092920, 0.98421298, 0.99305138, 0.44919070,\
++	-4.67943552, -0.00457034, 0.00237059, 5.67486518, 0.98423490, 0.99305907, 0.44927549,\
++	-4.68336012, -0.00456511, 0.00236816, 5.67879501, 0.98425675, 0.99306673, 0.44936038,\
++	-4.68727860, -0.00455990, 0.00236575, 5.68271869, 0.98427852, 0.99307435, 0.44944539,\
++	-4.69119092, -0.00455472, 0.00236335, 5.68663621, 0.98430023, 0.99308194, 0.44953051,\
++	-4.69509710, -0.00454955, 0.00236096, 5.69054755, 0.98432186, 0.99308949, 0.44961572,\
++	-4.69899711, -0.00454440, 0.00235859, 5.69445271, 0.98434343, 0.99309701, 0.44970104,\
++	-4.70289095, -0.00453926, 0.00235623, 5.69835168, 0.98436492, 0.99310450, 0.44978646,\
++	-4.70677861, -0.00453415, 0.00235389, 5.70224446, 0.98438635, 0.99311196, 0.44987197,\
++	-4.71066008, -0.00452905, 0.00235156, 5.70613103, 0.98440771, 0.99311939, 0.44995757,\
++	-4.71453535, -0.00452398, 0.00234924, 5.71001138, 0.98442899, 0.99312678, 0.45004326,\
++	-4.71840442, -0.00451892, 0.00234694, 5.71388551, 0.98445021, 0.99313414, 0.45012903,\
++	-4.72226728, -0.00451387, 0.00234465, 5.71775341, 0.98447137, 0.99314147, 0.45021488,\
++	-4.72612392, -0.00450885, 0.00234237, 5.72161507, 0.98449245, 0.99314877, 0.45030082,\
++	-4.72997433, -0.00450384, 0.00234011, 5.72547048, 0.98451347, 0.99315604, 0.45038683,\
++	-4.73381850, -0.00449885, 0.00233786, 5.72931964, 0.98453443, 0.99316328, 0.45047291,\
++	-4.73765643, -0.00449388, 0.00233562, 5.73316254, 0.98455532, 0.99317049, 0.45055907,\
++	-4.74148810, -0.00448893, 0.00233340, 5.73699917, 0.98457614, 0.99317767, 0.45064529,\
++	-4.74531352, -0.00448399, 0.00233119, 5.74082953, 0.98459690, 0.99318483, 0.45073158,\
++	-4.74913267, -0.00447907, 0.00232899, 5.74465360, 0.98461759, 0.99319195, 0.45081792,\
++	-4.75294555, -0.00447416, 0.00232680, 5.74847138, 0.98463822, 0.99319904, 0.45090433,\
++	-4.75675214, -0.00446927, 0.00232462, 5.75228287, 0.98465878, 0.99320610, 0.45099080,\
++	-4.76055246, -0.00446440, 0.00232246, 5.75608805, 0.98467929, 0.99321314, 0.45107732,\
++	-4.76434647, -0.00445955, 0.00232031, 5.75988693, 0.98469973, 0.99322015, 0.45116389,\
++	-4.76813419, -0.00445471, 0.00231816, 5.76367948, 0.98472010, 0.99322713, 0.45125051,\
++	-4.77191560, -0.00444988, 0.00231604, 5.76746572, 0.98474042, 0.99323408, 0.45133717,\
++	-4.77569070, -0.00444507, 0.00231392, 5.77124562, 0.98476067, 0.99324101, 0.45142388,\
++	-4.77945947, -0.00444028, 0.00231181, 5.77501919, 0.98478086, 0.99324791, 0.45151063,\
++	-4.78322192, -0.00443550, 0.00230972, 5.77878642, 0.98480099, 0.99325478, 0.45159742,\
++	-4.78697804, -0.00443074, 0.00230763, 5.78254730, 0.98482106, 0.99326162, 0.45168425,\
++	-4.79072783, -0.00442600, 0.00230556, 5.78630183, 0.98484107, 0.99326844, 0.45177111,\
++	-4.79447127, -0.00442127, 0.00230350, 5.79005000, 0.98486102, 0.99327523, 0.45185800,\
++	-4.79820836, -0.00441655, 0.00230145, 5.79379181, 0.98488091, 0.99328200, 0.45194492,\
++	-4.80193909, -0.00441185, 0.00229941, 5.79752724, 0.98490074, 0.99328874, 0.45203187,\
++	-4.80566347, -0.00440716, 0.00229738, 5.80125630, 0.98492051, 0.99329546, 0.45211884,\
++	-4.80938148, -0.00440249, 0.00229536, 5.80497899, 0.98494022, 0.99330215, 0.45220583,\
++	-4.81309312, -0.00439783, 0.00229335, 5.80869528, 0.98495988, 0.99330881, 0.45229285,\
++	-4.81679838, -0.00439319, 0.00229135, 5.81240519, 0.98497947, 0.99331546, 0.45237988,\
++	-4.82049726, -0.00438856, 0.00228937, 5.81610870, 0.98499901, 0.99332207, 0.45246692,\
++	-4.82418976, -0.00438395, 0.00228739, 5.81980581, 0.98501850, 0.99332866, 0.45255398,\
++	-4.82787587, -0.00437935, 0.00228542, 5.82349652, 0.98503792, 0.99333523, 0.45264105,\
++	-4.83155558, -0.00437476, 0.00228346, 5.82718082, 0.98505729, 0.99334178, 0.45272813,\
++	-4.83522889, -0.00437019, 0.00228151, 5.83085870, 0.98507660, 0.99334830, 0.45281521,\
++	-4.83889580, -0.00436563, 0.00227957, 5.83453017, 0.98509586, 0.99335480, 0.45290231,\
++	-4.84255630, -0.00436109, 0.00227764, 5.83819521, 0.98511506, 0.99336127, 0.45298940,\
++	-4.84621038, -0.00435656, 0.00227572, 5.84185383, 0.98513421, 0.99336772, 0.45307649,\
++	-4.84985805, -0.00435204, 0.00227381, 5.84550601, 0.98515330, 0.99337415, 0.45316358,\
++	-4.85349930, -0.00434753, 0.00227191, 5.84915177, 0.98517233, 0.99338056, 0.45325067,\
++	-4.85713412, -0.00434304, 0.00227002, 5.85279108, 0.98519132, 0.99338694, 0.45333775,\
++	-4.86076252, -0.00433856, 0.00226813, 5.85642396, 0.98521024, 0.99339330, 0.45342482,\
++	-4.86438448, -0.00433410, 0.00226626, 5.86005038, 0.98522912, 0.99339964, 0.45351189,\
++	-4.86800001, -0.00432965, 0.00226439, 5.86367036, 0.98524794, 0.99340596, 0.45359894,\
++	-4.87160909, -0.00432521, 0.00226253, 5.86728389, 0.98526671, 0.99341226, 0.45368598,\
++	-4.87521174, -0.00432078, 0.00226069, 5.87089096, 0.98528542, 0.99341853, 0.45377301,\
++	-4.87880793, -0.00431637, 0.00225885, 5.87449157, 0.98530409, 0.99342479, 0.45386001,\
++	-4.88239768, -0.00431196, 0.00225701, 5.87808572, 0.98532270, 0.99343102, 0.45394700,\
++	-4.88598098, -0.00430758, 0.00225519, 5.88167340, 0.98534126, 0.99343723, 0.45403397,\
++	-4.88955781, -0.00430320, 0.00225338, 5.88525462, 0.98535976, 0.99344342, 0.45412092,\
++	-4.89312819, -0.00429883, 0.00225157, 5.88882936, 0.98537822, 0.99344960, 0.45420784,\
++	-4.89669211, -0.00429448, 0.00224977, 5.89239763, 0.98539662, 0.99345575, 0.45429473,\
++	-4.90024957, -0.00429014, 0.00224798, 5.89595942, 0.98541498, 0.99346188, 0.45438160,\
++	-4.90380055, -0.00428581, 0.00224620, 5.89951474, 0.98543328, 0.99346799, 0.45446844,\
++	-4.90734507, -0.00428150, 0.00224442, 5.90306357, 0.98545154, 0.99347408, 0.45455524,\
++	-4.91088312, -0.00427719, 0.00224266, 5.90660592, 0.98546974, 0.99348015, 0.45464201,\
++	-4.91441469, -0.00427290, 0.00224090, 5.91014179, 0.98548790, 0.99348620, 0.45472875,\
++	-4.91793978, -0.00426862, 0.00223915, 5.91367116, 0.98550600, 0.99349224, 0.45481546,\
++	-4.92145840, -0.00426435, 0.00223740, 5.91719405, 0.98552406, 0.99349825, 0.45490212,\
++	-4.92497053, -0.00426009, 0.00223566, 5.92071044, 0.98554206, 0.99350425, 0.45498875,\
++	-4.92847618, -0.00425584, 0.00223394, 5.92422034, 0.98556002, 0.99351022, 0.45507533,\
++	-4.93197535, -0.00425160, 0.00223221, 5.92772375, 0.98557793, 0.99351618, 0.45516187,\
++	-4.93546803, -0.00424738, 0.00223050, 5.93122065, 0.98559579, 0.99352212, 0.45524837,\
++	-4.93895423, -0.00424317, 0.00222879, 5.93471106, 0.98561361, 0.99352804, 0.45533482,\
++	-4.94243393, -0.00423896, 0.00222709, 5.93819497, 0.98563138, 0.99353395, 0.45542123,\
++	-4.94590714, -0.00423477, 0.00222540, 5.94167237, 0.98564910, 0.99353983, 0.45550758,\
++	-4.94937386, -0.00423059, 0.00222371, 5.94514327, 0.98566677, 0.99354570, 0.45559389,\
++	-4.95283409, -0.00422642, 0.00222203, 5.94860767, 0.98568439, 0.99355155, 0.45568014,\
++	-4.95628782, -0.00422226, 0.00222036, 5.95206556, 0.98570197, 0.99355738, 0.45576634,\
++	-4.95973505, -0.00421811, 0.00221869, 5.95551694, 0.98571951, 0.99356320, 0.45585249,\
++	-4.96317579, -0.00421397, 0.00221703, 5.95896181, 0.98573699, 0.99356900, 0.45593858,\
++	-4.96661002, -0.00420984, 0.00221538, 5.96240018, 0.98575444, 0.99357478, 0.45602462,\
++	-4.97003776, -0.00420573, 0.00221373, 5.96583204, 0.98577183, 0.99358054, 0.45611059,\
++	-4.97345900, -0.00420162, 0.00221209, 5.96925738, 0.98578918, 0.99358629, 0.45619651,\
++	-4.97687374, -0.00419752, 0.00221046, 5.97267622, 0.98580649, 0.99359202, 0.45628236,\
++	-4.98028197, -0.00419344, 0.00220883, 5.97608854, 0.98582375, 0.99359774, 0.45636816,\
++	-4.98368371, -0.00418936, 0.00220721, 5.97949435, 0.98584096, 0.99360343, 0.45645388,\
++	-4.98707894, -0.00418529, 0.00220559, 5.98289365, 0.98585814, 0.99360912, 0.45653955,\
++	-4.99046767, -0.00418123, 0.00220398, 5.98628643, 0.98587526, 0.99361478, 0.45662514,\
++	-4.99384989, -0.00417719, 0.00220238, 5.98967270, 0.98589235, 0.99362043, 0.45671067,\
++	-4.99722561, -0.00417315, 0.00220078, 5.99305246, 0.98590939, 0.99362607, 0.45679613,\
++	-5.00059483, -0.00416912, 0.00219919, 5.99642571, 0.98592638, 0.99363169, 0.45688152,\
++	-5.00395754, -0.00416511, 0.00219761, 5.99979244, 0.98594334, 0.99363729, 0.45696684,\
++	-5.00731375, -0.00416110, 0.00219603, 6.00315266, 0.98596025, 0.99364288, 0.45705209,\
++	-5.01066346, -0.00415710, 0.00219445, 6.00650636, 0.98597712, 0.99364845, 0.45713726,\
++	-5.01400667, -0.00415311, 0.00219288, 6.00985356, 0.98599394, 0.99365401, 0.45722236,\
++	-5.01734337, -0.00414913, 0.00219132, 6.01319424, 0.98601072, 0.99365955, 0.45730738,\
++	-5.02067356, -0.00414516, 0.00218976, 6.01652841, 0.98602746, 0.99366508, 0.45739233,\
++	-5.02399726, -0.00414120, 0.00218821, 6.01985606, 0.98604416, 0.99367059, 0.45747719,\
++	-5.02731445, -0.00413724, 0.00218666, 6.02317721, 0.98606082, 0.99367609, 0.45756198,\
++	-5.03062515, -0.00413330, 0.00218512, 6.02649184, 0.98607744, 0.99368157, 0.45764669,\
++	-5.03392934, -0.00412937, 0.00218359, 6.02979997, 0.98609401, 0.99368704, 0.45773131,\
++	-5.03722703, -0.00412544, 0.00218206, 6.03310159, 0.98611054, 0.99369250, 0.45781585,\
++	-5.04051822, -0.00412153, 0.00218053, 6.03639670, 0.98612704, 0.99369794, 0.45790031,\
++	-5.04380292, -0.00411762, 0.00217901, 6.03968530, 0.98614349, 0.99370337, 0.45798469,\
++	-5.04708112, -0.00411372, 0.00217750, 6.04296739, 0.98615990, 0.99370878, 0.45806897,\
++	-5.05035282, -0.00410983, 0.00217599, 6.04624299, 0.98617627, 0.99371418, 0.45815318,\
++	-5.05361802, -0.00410595, 0.00217448, 6.04951207, 0.98619260, 0.99371957, 0.45823729,\
++	-5.05687674, -0.00410208, 0.00217298, 6.05277466, 0.98620889, 0.99372494, 0.45832131,\
++	-5.06012896, -0.00409821, 0.00217148, 6.05603074, 0.98622514, 0.99373030, 0.45840525,\
++	-5.06337469, -0.00409436, 0.00216999, 6.05928033, 0.98624135, 0.99373565, 0.45848909,\
++	-5.06661393, -0.00409051, 0.00216851, 6.06252341, 0.98625753, 0.99374098, 0.45857285,\
++	-5.06984668, -0.00408668, 0.00216703, 6.06576000, 0.98627366, 0.99374630, 0.45865651,\
++	-5.07307294, -0.00408285, 0.00216555, 6.06899010, 0.98628975, 0.99375161, 0.45874007,\
++	-5.07629272, -0.00407902, 0.00216408, 6.07221370, 0.98630581, 0.99375690, 0.45882355,\
++	-5.07950602, -0.00407521, 0.00216261, 6.07543081, 0.98632182, 0.99376218, 0.45890693,\
++	-5.08271283, -0.00407141, 0.00216115, 6.07864143, 0.98633780, 0.99376745, 0.45899021,\
++	-5.08591317, -0.00406761, 0.00215969, 6.08184556, 0.98635374, 0.99377270, 0.45907339,\
++	-5.08910703, -0.00406382, 0.00215823, 6.08504321, 0.98636965, 0.99377795, 0.45915648,\
++	-5.09229441, -0.00406004, 0.00215678, 6.08823437, 0.98638551, 0.99378318, 0.45923947,\
++	-5.09547532, -0.00405627, 0.00215534, 6.09141905, 0.98640134, 0.99378840, 0.45932235,\
++	-5.09864975, -0.00405250, 0.00215390, 6.09459725, 0.98641713, 0.99379360, 0.45940514,\
++	-5.10181772, -0.00404874, 0.00215246, 6.09776897, 0.98643288, 0.99379880, 0.45948783,\
++	-5.10497922, -0.00404500, 0.00215102, 6.10093422, 0.98644859, 0.99380398, 0.45957041,\
++	-5.10813425, -0.00404125, 0.00214960, 6.10409300, 0.98646427, 0.99380915, 0.45965289,\
++	-5.11128282, -0.00403752, 0.00214817, 6.10724530, 0.98647991, 0.99381431, 0.45973527,\
++	-5.11442494, -0.00403379, 0.00214675, 6.11039114, 0.98649552, 0.99381946, 0.45981755,\
++	-5.11756059, -0.00403008, 0.00214533, 6.11353051, 0.98651108, 0.99382459, 0.45989972,\
++	-5.12068979, -0.00402637, 0.00214392, 6.11666343, 0.98652662, 0.99382971, 0.45998178,\
++	-5.12381254, -0.00402266, 0.00214251, 6.11978988, 0.98654211, 0.99383483, 0.46006373,\
++	-5.12692884, -0.00401897, 0.00214110, 6.12290987, 0.98655757, 0.99383993, 0.46014558,\
++	-5.13003869, -0.00401528, 0.00213970, 6.12602341, 0.98657300, 0.99384502, 0.46022732,\
++	-5.13314210, -0.00401160, 0.00213831, 6.12913050, 0.98658838, 0.99385010, 0.46030896,\
++	-5.13623906, -0.00400792, 0.00213691, 6.13223114, 0.98660374, 0.99385516, 0.46039048,\
++	-5.13932959, -0.00400426, 0.00213552, 6.13532533, 0.98661906, 0.99386022, 0.46047189,\
++	-5.14241368, -0.00400060, 0.00213413, 6.13841308, 0.98663434, 0.99386527, 0.46055319,\
++	-5.14549135, -0.00399695, 0.00213275, 6.14149440, 0.98664959, 0.99387030, 0.46063438,\
++	-5.14856258, -0.00399330, 0.00213137, 6.14456928, 0.98666480, 0.99387532, 0.46071546,\
++	-5.15162739, -0.00398967, 0.00213000, 6.14763772, 0.98667998, 0.99388034, 0.46079643,\
++	-5.15468577, -0.00398604, 0.00212862, 6.15069974, 0.98669512, 0.99388534, 0.46087728,\
++	-5.15773774, -0.00398241, 0.00212725, 6.15375533, 0.98671023, 0.99389033, 0.46095802,\
++	-5.16078329, -0.00397880, 0.00212589, 6.15680449, 0.98672531, 0.99389532, 0.46103864,\
++	-5.16382243, -0.00397519, 0.00212453, 6.15984724, 0.98674035, 0.99390029, 0.46111915,\
++	-5.16685516, -0.00397159, 0.00212317, 6.16288358, 0.98675535, 0.99390525, 0.46119954,\
++	-5.16988149, -0.00396799, 0.00212181, 6.16591350, 0.98677033, 0.99391020, 0.46127982,\
++	-5.17290141, -0.00396440, 0.00212046, 6.16893701, 0.98678527, 0.99391514, 0.46135997,\
++	-5.17591494, -0.00396082, 0.00211911, 6.17195412, 0.98680017, 0.99392007, 0.46144001,\
++	-5.17892208, -0.00395724, 0.00211776, 6.17496483, 0.98681505, 0.99392499, 0.46151994,\
++	-5.18192282, -0.00395368, 0.00211642, 6.17796914, 0.98682989, 0.99392990, 0.46159974,\
++	-5.18491718, -0.00395011, 0.00211508, 6.18096706, 0.98684470, 0.99393481, 0.46167943,\
++	-5.18790516, -0.00394656, 0.00211374, 6.18395860, 0.98685947, 0.99393970, 0.46175899,\
++	-5.19088675, -0.00394301, 0.00211241, 6.18694374, 0.98687421, 0.99394458, 0.46183843,\
++	-5.19386198, -0.00393947, 0.00211108, 6.18992251, 0.98688892, 0.99394945, 0.46191776,\
++	-5.19683083, -0.00393593, 0.00210975, 6.19289490, 0.98690360, 0.99395432, 0.46199696,\
++	-5.19979332, -0.00393241, 0.00210843, 6.19586092, 0.98691824, 0.99395917, 0.46207604,\
++	-5.20274945, -0.00392888, 0.00210710, 6.19882057, 0.98693285, 0.99396401, 0.46215500,\
++	-5.20569922, -0.00392537, 0.00210578, 6.20177385, 0.98694743, 0.99396885, 0.46223383,\
++	-5.20864264, -0.00392186, 0.00210447, 6.20472078, 0.98696198, 0.99397367, 0.46231254,\
++	-5.21157971, -0.00391835, 0.00210315, 6.20766135, 0.98697650, 0.99397849, 0.46239113,\
++	-5.21451043, -0.00391486, 0.00210184, 6.21059558, 0.98699098, 0.99398330, 0.46246959,\
++	-5.21743482, -0.00391137, 0.00210054, 6.21352345, 0.98700544, 0.99398810, 0.46254793,\
++	-5.22035287, -0.00390788, 0.00209923, 6.21644499, 0.98701986, 0.99399289, 0.46262614,\
++	-5.22326459, -0.00390440, 0.00209793, 6.21936019, 0.98703425, 0.99399767, 0.46270423,\
++	-5.22616999, -0.00390093, 0.00209663, 6.22226905, 0.98704861, 0.99400244, 0.46278219,\
++	-5.22906906, -0.00389747, 0.00209533, 6.22517159, 0.98706294, 0.99400720, 0.46286003,\
++	-5.23196182, -0.00389401, 0.00209404, 6.22806781, 0.98707724, 0.99401196, 0.46293774,\
++	-5.23484826, -0.00389055, 0.00209274, 6.23095771, 0.98709151, 0.99401670, 0.46301532,\
++	-5.23772840, -0.00388711, 0.00209145, 6.23384129, 0.98710574, 0.99402144, 0.46309277,\
++	-5.24060224, -0.00388366, 0.00209017, 6.23671857, 0.98711995, 0.99402617, 0.46317009,\
++	-5.24346978, -0.00388023, 0.00208888, 6.23958955, 0.98713413, 0.99403089, 0.46324729,\
++	-5.24633103, -0.00387680, 0.00208760, 6.24245423, 0.98714827, 0.99403560, 0.46332436,\
++	-5.24918599, -0.00387338, 0.00208632, 6.24531261, 0.98716239, 0.99404030, 0.46340129,\
++	-5.25203467, -0.00386996, 0.00208504, 6.24816471, 0.98717648, 0.99404500, 0.46347810,\
++	-5.25487707, -0.00386655, 0.00208377, 6.25101053, 0.98719053, 0.99404969, 0.46355478,\
++	-5.25771320, -0.00386314, 0.00208250, 6.25385007, 0.98720456, 0.99405436, 0.46363133,\
++	-5.26054307, -0.00385974, 0.00208123, 6.25668333, 0.98721856, 0.99405904, 0.46370775,\
++	-5.26336668, -0.00385634, 0.00207996, 6.25951033, 0.98723253, 0.99406370, 0.46378403,\
++	-5.26618402, -0.00385295, 0.00207869, 6.26233107, 0.98724646, 0.99406835, 0.46386019,\
++	-5.26899512, -0.00384957, 0.00207743, 6.26514555, 0.98726037, 0.99407300, 0.46393621,\
++	-5.27179998, -0.00384619, 0.00207617, 6.26795379, 0.98727425, 0.99407764, 0.46401210,\
++	-5.27459860, -0.00384282, 0.00207491, 6.27075577, 0.98728810, 0.99408227, 0.46408786,\
++	-5.27739098, -0.00383945, 0.00207365, 6.27355152, 0.98730193, 0.99408689, 0.46416348,\
++	-5.28017713, -0.00383609, 0.00207240, 6.27634104, 0.98731572, 0.99409151, 0.46423898,\
++	-5.28295706, -0.00383274, 0.00207115, 6.27912432, 0.98732949, 0.99409612, 0.46431433,\
++	-5.28573078, -0.00382939, 0.00206989, 6.28190139, 0.98734322, 0.99410072, 0.46438956,\
++	-5.28849828, -0.00382604, 0.00206865, 6.28467224, 0.98735693, 0.99410531, 0.46446465,\
++	-5.29125958, -0.00382271, 0.00206740, 6.28743687, 0.98737061, 0.99410989, 0.46453961,\
++	-5.29401468, -0.00381937, 0.00206616, 6.29019530, 0.98738426, 0.99411447, 0.46461443,\
++	-5.29676358, -0.00381604, 0.00206491, 6.29294754, 0.98739789, 0.99411904, 0.46468912,\
++	-5.29950630, -0.00381272, 0.00206367, 6.29569358, 0.98741148, 0.99412361, 0.46476368,\
++	-5.30224283, -0.00380940, 0.00206243, 6.29843343, 0.98742505, 0.99412816, 0.46483809,\
++	-5.30497319, -0.00380609, 0.00206120, 6.30116710, 0.98743859, 0.99413271, 0.46491238,\
++	-5.30769738, -0.00380279, 0.00205996, 6.30389459, 0.98745210, 0.99413725, 0.46498652,\
++	-5.31041540, -0.00379948, 0.00205873, 6.30661592, 0.98746559, 0.99414179, 0.46506054,\
++	-5.31312727, -0.00379619, 0.00205750, 6.30933108, 0.98747905, 0.99414631, 0.46513441,\
++	-5.31583299, -0.00379290, 0.00205627, 6.31204009, 0.98749248, 0.99415083, 0.46520815,\
++	-5.31853255, -0.00378961, 0.00205504, 6.31474294, 0.98750588, 0.99415535, 0.46528175,\
++	-5.32122598, -0.00378633, 0.00205382, 6.31743965, 0.98751926, 0.99415985, 0.46535522,\
++	-5.32391328, -0.00378306, 0.00205259, 6.32013023, 0.98753261, 0.99416435, 0.46542855,\
++	-5.32659445, -0.00377979, 0.00205137, 6.32281466, 0.98754593, 0.99416884, 0.46550174,\
++	-5.32926950, -0.00377652, 0.00205015, 6.32549298, 0.98755923, 0.99417333, 0.46557479,\
++	-5.33193843, -0.00377326, 0.00204893, 6.32816517, 0.98757249, 0.99417781, 0.46564771,\
++	-5.33460126, -0.00377000, 0.00204772, 6.33083125, 0.98758574, 0.99418228, 0.46572049,\
++	-5.33725798, -0.00376675, 0.00204650, 6.33349123, 0.98759895, 0.99418674, 0.46579313,\
++	-5.33990861, -0.00376351, 0.00204529, 6.33614511, 0.98761214, 0.99419120, 0.46586563,\
++	-5.34255316, -0.00376027, 0.00204408, 6.33879289, 0.98762531, 0.99419565, 0.46593799,\
++	-5.34519162, -0.00375703, 0.00204287, 6.34143458, 0.98763844, 0.99420010, 0.46601022,\
++	-5.34782400, -0.00375380, 0.00204166, 6.34407020, 0.98765155, 0.99420454, 0.46608230,\
++	-5.35045032, -0.00375058, 0.00204045, 6.34669974, 0.98766464, 0.99420897, 0.46615425,\
++	-5.35307057, -0.00374736, 0.00203925, 6.34932321, 0.98767770, 0.99421340, 0.46622606,\
++	-5.35568477, -0.00374414, 0.00203804, 6.35194063, 0.98769073, 0.99421781, 0.46629773,\
++	-5.35829292, -0.00374093, 0.00203684, 6.35455199, 0.98770374, 0.99422223, 0.46636926,\
++	-5.36089503, -0.00373773, 0.00203564, 6.35715730, 0.98771672, 0.99422663, 0.46644065,\
++	-5.36349110, -0.00373453, 0.00203444, 6.35975657, 0.98772968, 0.99423103, 0.46651190,\
++	-5.36608114, -0.00373133, 0.00203324, 6.36234981, 0.98774261, 0.99423543, 0.46658301,\
++	-5.36866517, -0.00372814, 0.00203205, 6.36493703, 0.98775552, 0.99423982, 0.46665398,\
++	-5.37124318, -0.00372495, 0.00203085, 6.36751823, 0.98776840, 0.99424420, 0.46672482,\
++	-5.37381518, -0.00372177, 0.00202966, 6.37009341, 0.98778125, 0.99424857, 0.46679551,\
++	-5.37638118, -0.00371859, 0.00202847, 6.37266259, 0.98779408, 0.99425294, 0.46686606,\
++	-5.37894119, -0.00371542, 0.00202728, 6.37522577, 0.98780689, 0.99425730, 0.46693647,\
++	-5.38149521, -0.00371225, 0.00202609, 6.37778296, 0.98781967, 0.99426166, 0.46700674,\
++	-5.38404325, -0.00370909, 0.00202490, 6.38033416, 0.98783243, 0.99426601, 0.46707687,\
++	-5.38658532, -0.00370593, 0.00202371, 6.38287939, 0.98784516, 0.99427036, 0.46714686,\
++	-5.38912142, -0.00370278, 0.00202253, 6.38541865, 0.98785786, 0.99427470, 0.46721671,\
++	-5.39165157, -0.00369963, 0.00202134, 6.38795194, 0.98787055, 0.99427903, 0.46728642,\
++	-5.39417576, -0.00369648, 0.00202016, 6.39047928, 0.98788320, 0.99428336, 0.46735598,\
++	-5.39669401, -0.00369334, 0.00201898, 6.39300067, 0.98789584, 0.99428768, 0.46742541,\
++	-5.39920633, -0.00369021, 0.00201780, 6.39551612, 0.98790845, 0.99429200, 0.46749470,\
++	-5.40171272, -0.00368707, 0.00201662, 6.39802564, 0.98792103, 0.99429631, 0.46756384,\
++	-5.40421318, -0.00368395, 0.00201544, 6.40052923, 0.98793359, 0.99430061, 0.46763284,\
++	-5.40670773, -0.00368082, 0.00201427, 6.40302690, 0.98794613, 0.99430491, 0.46770170,\
++	-5.40919637, -0.00367771, 0.00201309, 6.40551867, 0.98795864, 0.99430920, 0.46777042,\
++	-5.41167912, -0.00367459, 0.00201192, 6.40800452, 0.98797113, 0.99431349, 0.46783900,\
++	-5.41415597, -0.00367148, 0.00201075, 6.41048448, 0.98798360, 0.99431777, 0.46790744,\
++	-5.41662693, -0.00366838, 0.00200957, 6.41295855, 0.98799604, 0.99432205, 0.46797574,\
++	-5.41909202, -0.00366528, 0.00200840, 6.41542674, 0.98800846, 0.99432632, 0.46804389,\
++	-5.42155124, -0.00366218, 0.00200724, 6.41788906, 0.98802085, 0.99433058, 0.46811190,\
++	-5.42400460, -0.00365909, 0.00200607, 6.42034551, 0.98803323, 0.99433484, 0.46817978,\
++	-5.42645210, -0.00365600, 0.00200490, 6.42279610, 0.98804557, 0.99433910, 0.46824751,\
++	-5.42889376, -0.00365292, 0.00200374, 6.42524084, 0.98805790, 0.99434334, 0.46831509,\
++	-5.43132958, -0.00364984, 0.00200257, 6.42767973, 0.98807020, 0.99434759, 0.46838254,\
++	-5.43375956, -0.00364677, 0.00200141, 6.43011279, 0.98808248, 0.99435183, 0.46844985,\
++	-5.43618372, -0.00364370, 0.00200024, 6.43254002, 0.98809474, 0.99435606, 0.46851701,\
++	-5.43860207, -0.00364063, 0.00199908, 6.43496143, 0.98810697, 0.99436029, 0.46858403,\
++	-5.44101460, -0.00363757, 0.00199792, 6.43737703, 0.98811918, 0.99436451, 0.46865091,\
++	-5.44342134, -0.00363451, 0.00199676, 6.43978683, 0.98813137, 0.99436872, 0.46871765,\
++	-5.44582228, -0.00363146, 0.00199561, 6.44219082, 0.98814353, 0.99437294, 0.46878424,\
++	-5.44821744, -0.00362841, 0.00199445, 6.44458903, 0.98815567, 0.99437714, 0.46885070,\
++	-5.45060682, -0.00362536, 0.00199329, 6.44698145, 0.98816779, 0.99438134, 0.46891701,\
++	-5.45299043, -0.00362232, 0.00199214, 6.44936811, 0.98817989, 0.99438554, 0.46898318,\
++	-5.45536828, -0.00361929, 0.00199098, 6.45174899, 0.98819196, 0.99438973, 0.46904921,\
++	-5.45774037, -0.00361625, 0.00198983, 6.45412412, 0.98820402, 0.99439392, 0.46911510,\
++	-5.46010672, -0.00361323, 0.00198868, 6.45649350, 0.98821605, 0.99439810, 0.46918084,\
++	-5.46246734, -0.00361020, 0.00198753, 6.45885714, 0.98822805, 0.99440227, 0.46924645,\
++	-5.46482222, -0.00360718, 0.00198638, 6.46121504, 0.98824004, 0.99440644, 0.46931191,\
++	-5.46717138, -0.00360417, 0.00198523, 6.46356722, 0.98825200, 0.99441061, 0.46937723,\
++	-5.46951483, -0.00360115, 0.00198408, 6.46591367, 0.98826395, 0.99441477, 0.46944241,\
++	-5.47185257, -0.00359814, 0.00198293, 6.46825442, 0.98827587, 0.99441892, 0.46950744,\
++	-5.47418461, -0.00359514, 0.00198178, 6.47058947, 0.98828776, 0.99442308, 0.46957234,\
++	-5.47651097, -0.00359214, 0.00198064, 6.47291883, 0.98829964, 0.99442722, 0.46963709,\
++	-5.47883164, -0.00358914, 0.00197949, 6.47524250, 0.98831150, 0.99443136, 0.46970170,\
++	-5.48114664, -0.00358615, 0.00197835, 6.47756049, 0.98832333, 0.99443550, 0.46976617,\
++	-5.48345598, -0.00358316, 0.00197721, 6.47987281, 0.98833514, 0.99443963, 0.46983050,\
++	-5.48575966, -0.00358018, 0.00197606, 6.48217948, 0.98834693, 0.99444376, 0.46989469,\
++	-5.48805769, -0.00357720, 0.00197492, 6.48448049, 0.98835870, 0.99444788, 0.46995873,\
++	-5.49035007, -0.00357422, 0.00197378, 6.48677585, 0.98837045, 0.99445200, 0.47002264,\
++	-5.49263683, -0.00357125, 0.00197264, 6.48906558, 0.98838217, 0.99445611, 0.47008640,\
++	-5.49491797, -0.00356828, 0.00197150, 6.49134968, 0.98839388, 0.99446022, 0.47015002,\
++	-5.49719348, -0.00356532, 0.00197036, 6.49362817, 0.98840556, 0.99446432, 0.47021350,\
++	-5.49946339, -0.00356236, 0.00196923, 6.49590104, 0.98841723, 0.99446842, 0.47027684,\
++	-5.50172771, -0.00355940, 0.00196809, 6.49816831, 0.98842887, 0.99447251, 0.47034004,\
++	-5.50398643, -0.00355645, 0.00196695, 6.50042998, 0.98844049, 0.99447660, 0.47040310,\
++	-5.50623957, -0.00355350, 0.00196582, 6.50268607, 0.98845209, 0.99448068, 0.47046602,\
++	-5.50848713, -0.00355055, 0.00196468, 6.50493658, 0.98846367, 0.99448476, 0.47052879,\
++	-5.51072913, -0.00354761, 0.00196355, 6.50718152, 0.98847523, 0.99448884, 0.47059143,\
++	-5.51296557, -0.00354467, 0.00196242, 6.50942090, 0.98848677, 0.99449291, 0.47065392,\
++	-5.51519647, -0.00354174, 0.00196129, 6.51165473, 0.98849828, 0.99449698, 0.47071627,\
++	-5.51742182, -0.00353881, 0.00196016, 6.51388301, 0.98850978, 0.99450104, 0.47077849,\
++	-5.51964164, -0.00353588, 0.00195902, 6.51610576, 0.98852126, 0.99450510, 0.47084056,\
++	-5.52185594, -0.00353296, 0.00195789, 6.51832298, 0.98853271, 0.99450915, 0.47090249,\
++	-5.52406473, -0.00353004, 0.00195677, 6.52053469, 0.98854415, 0.99451320, 0.47096428,\
++	-5.52626800, -0.00352712, 0.00195564, 6.52274088, 0.98855556, 0.99451724, 0.47102593,\
++	-5.52846578, -0.00352421, 0.00195451, 6.52494157, 0.98856696, 0.99452128, 0.47108744,\
++	-5.53065808, -0.00352130, 0.00195338, 6.52713677, 0.98857834, 0.99452532, 0.47114881,\
++	-5.53284489, -0.00351840, 0.00195226, 6.52932649, 0.98858969, 0.99452935, 0.47121004,\
++	-5.53502623, -0.00351550, 0.00195113, 6.53151073, 0.98860103, 0.99453337, 0.47127113,\
++	-5.53720210, -0.00351260, 0.00195001, 6.53368950, 0.98861234, 0.99453740, 0.47133208,\
++	-5.53937252, -0.00350971, 0.00194888, 6.53586282, 0.98862364, 0.99454141, 0.47139289,\
++	-5.54153750, -0.00350682, 0.00194776, 6.53803068, 0.98863491, 0.99454543, 0.47145356,\
++	-5.54369704, -0.00350393, 0.00194663, 6.54019311, 0.98864617, 0.99454944, 0.47151409,\
++	-5.54585115, -0.00350105, 0.00194551, 6.54235010, 0.98865740, 0.99455344, 0.47157449,\
++	-5.54799984, -0.00349817, 0.00194439, 6.54450167, 0.98866862, 0.99455744, 0.47163474,\
++	-5.55014311, -0.00349529, 0.00194327, 6.54664782, 0.98867982, 0.99456144, 0.47169485,\
++	-5.55228099, -0.00349242, 0.00194215, 6.54878857, 0.98869099, 0.99456543, 0.47175483,\
++	-5.55441347, -0.00348955, 0.00194103, 6.55092392, 0.98870215, 0.99456942, 0.47181466,\
++	-5.55654057, -0.00348669, 0.00193991, 6.55305388, 0.98871329, 0.99457340, 0.47187436,\
++	-5.55866229, -0.00348383, 0.00193879, 6.55517846, 0.98872441, 0.99457738, 0.47193391,\
++	-5.56077864, -0.00348097, 0.00193767, 6.55729767, 0.98873551, 0.99458136, 0.47199333,\
++	-5.56288964, -0.00347811, 0.00193655, 6.55941152, 0.98874659, 0.99458533, 0.47205261,\
++	-5.56499528, -0.00347526, 0.00193544, 6.56152002, 0.98875765, 0.99458930, 0.47211176,\
++	-5.56709558, -0.00347242, 0.00193432, 6.56362317, 0.98876869, 0.99459326, 0.47217076,\
++	-5.56919055, -0.00346957, 0.00193321, 6.56572098, 0.98877972, 0.99459722, 0.47222962,\
++	-5.57128020, -0.00346673, 0.00193209, 6.56781347, 0.98879072, 0.99460118, 0.47228835,\
++	-5.57336453, -0.00346390, 0.00193098, 6.56990064, 0.98880171, 0.99460513, 0.47234694,\
++	-5.57544356, -0.00346106, 0.00192986, 6.57198250, 0.98881267, 0.99460907, 0.47240539,\
++	-5.57751729, -0.00345823, 0.00192875, 6.57405906, 0.98882362, 0.99461302, 0.47246371,\
++	-5.57958573, -0.00345541, 0.00192764, 6.57613032, 0.98883455, 0.99461696, 0.47252188,\
++	-5.58164889, -0.00345259, 0.00192652, 6.57819631, 0.98884546, 0.99462089, 0.47257992,\
++	-5.58370679, -0.00344977, 0.00192541, 6.58025702, 0.98885635, 0.99462482, 0.47263782,\
++	-5.58575942, -0.00344695, 0.00192430, 6.58231247, 0.98886722, 0.99462875, 0.47269559,\
++	-5.58780679, -0.00344414, 0.00192319, 6.58436266, 0.98887808, 0.99463267, 0.47275321,\
++	-5.58984893, -0.00344133, 0.00192208, 6.58640760, 0.98888891, 0.99463659, 0.47281070,\
++	-5.59188583, -0.00343852, 0.00192097, 6.58844731, 0.98889973, 0.99464051, 0.47286806,\
++	-5.59391750, -0.00343572, 0.00191986, 6.59048178, 0.98891053, 0.99464442, 0.47292528,\
++	-5.59594396, -0.00343292, 0.00191875, 6.59251104, 0.98892131, 0.99464833, 0.47298236,\
++	-5.59796521, -0.00343013, 0.00191764, 6.59453508, 0.98893207, 0.99465223, 0.47303930,\
++	-5.59998126, -0.00342733, 0.00191653, 6.59655393, 0.98894281, 0.99465613, 0.47309611,\
++	-5.60199212, -0.00342455, 0.00191543, 6.59856758, 0.98895354, 0.99466003, 0.47315278,\
++	-5.60399781, -0.00342176, 0.00191432, 6.60057605, 0.98896425, 0.99466392, 0.47320932,\
++	-5.60599831, -0.00341898, 0.00191321, 6.60257934, 0.98897493, 0.99466781, 0.47326572,\
++	-5.60799366, -0.00341620, 0.00191211, 6.60457746, 0.98898561, 0.99467169, 0.47332198,\
++	-5.60998385, -0.00341342, 0.00191100, 6.60657043, 0.98899626, 0.99467557, 0.47337811,\
++	-5.61196890, -0.00341065, 0.00190990, 6.60855825, 0.98900689, 0.99467945, 0.47343411,\
++	-5.61394881, -0.00340788, 0.00190879, 6.61054093, 0.98901751, 0.99468332, 0.47348997,\
++	-5.61592360, -0.00340512, 0.00190769, 6.61251848, 0.98902811, 0.99468719, 0.47354569,\
++	-5.61789327, -0.00340235, 0.00190659, 6.61449091, 0.98903869, 0.99469106, 0.47360128,\
++	-5.61985783, -0.00339960, 0.00190548, 6.61645823, 0.98904926, 0.99469492, 0.47365674,\
++	-5.62181729, -0.00339684, 0.00190438, 6.61842045, 0.98905980, 0.99469878, 0.47371206,\
++	-5.62377166, -0.00339409, 0.00190328, 6.62037757, 0.98907033, 0.99470263, 0.47376724,\
++	-5.62572095, -0.00339134, 0.00190218, 6.62232961, 0.98908084, 0.99470648, 0.47382230,\
++	-5.62766517, -0.00338859, 0.00190108, 6.62427658, 0.98909133, 0.99471033, 0.47387721,\
++	-5.62960432, -0.00338585, 0.00189998, 6.62621847, 0.98910181, 0.99471417, 0.47393200,\
++	-5.63153842, -0.00338311, 0.00189888, 6.62815531, 0.98911227, 0.99471801, 0.47398665,\
++	-5.63346748, -0.00338037, 0.00189778, 6.63008711, 0.98912271, 0.99472185, 0.47404117,\
++	-5.63539150, -0.00337764, 0.00189668, 6.63201386, 0.98913313, 0.99472568, 0.47409555,\
++	-5.63731050, -0.00337491, 0.00189558, 6.63393558, 0.98914354, 0.99472951, 0.47414980,\
++	-5.63922447, -0.00337218, 0.00189448, 6.63585229, 0.98915393, 0.99473333, 0.47420392,\
++	-5.64113344, -0.00336946, 0.00189338, 6.63776398, 0.98916430, 0.99473716, 0.47425791,\
++	-5.64303741, -0.00336674, 0.00189229, 6.63967067, 0.98917466, 0.99474097, 0.47431176,\
++	-5.64493639, -0.00336402, 0.00189119, 6.64157237, 0.98918499, 0.99474479, 0.47436548,\
++	-5.64683039, -0.00336131, 0.00189009, 6.64346908, 0.98919531, 0.99474860, 0.47441907,\
++	-5.64871942, -0.00335860, 0.00188899, 6.64536082, 0.98920562, 0.99475241, 0.47447252,\
++	-5.65060348, -0.00335589, 0.00188790, 6.64724759, 0.98921590, 0.99475621, 0.47452585,\
++	-5.65248259, -0.00335319, 0.00188680, 6.64912941, 0.98922617, 0.99476001, 0.47457904,\
++	-5.65435676, -0.00335049, 0.00188571, 6.65100628, 0.98923642, 0.99476381, 0.47463210,\
++	-5.65622600, -0.00334779, 0.00188461, 6.65287821, 0.98924666, 0.99476760, 0.47468503,\
++	-5.65809030, -0.00334509, 0.00188352, 6.65474521, 0.98925688, 0.99477139, 0.47473783,\
++	-5.65994970, -0.00334240, 0.00188243, 6.65660729, 0.98926708, 0.99477517, 0.47479050,\
++	-5.66180418, -0.00333971, 0.00188133, 6.65846447, 0.98927727, 0.99477896, 0.47484303,\
++	-5.66365377, -0.00333703, 0.00188024, 6.66031674, 0.98928744, 0.99478273, 0.47489544,\
++	-5.66549846, -0.00333434, 0.00187915, 6.66216412, 0.98929759, 0.99478651, 0.47494772,\
++	-5.66733828, -0.00333166, 0.00187805, 6.66400662, 0.98930772, 0.99479028, 0.47499986,\
++	-5.66917323, -0.00332899, 0.00187696, 6.66584424, 0.98931784, 0.99479405, 0.47505187,\
++	-5.67100331, -0.00332631, 0.00187587, 6.66767700, 0.98932794, 0.99479781, 0.47510376,\
++	-5.67282855, -0.00332364, 0.00187478, 6.66950490, 0.98933803, 0.99480158, 0.47515552,\
++	-5.67464894, -0.00332098, 0.00187369, 6.67132796, 0.98934810, 0.99480533, 0.47520714,\
++	-5.67646450, -0.00331831, 0.00187260, 6.67314618, 0.98935815, 0.99480909, 0.47525864,\
++	-5.67827523, -0.00331565, 0.00187151, 6.67495958, 0.98936819, 0.99481284, 0.47531001,\
++	-5.68008115, -0.00331299, 0.00187042, 6.67676816, 0.98937821, 0.99481659, 0.47536125,\
++	-5.68188226, -0.00331034, 0.00186933, 6.67857192, 0.98938821, 0.99482033, 0.47541236,\
++	-5.68367858, -0.00330769, 0.00186824, 6.68037089, 0.98939820, 0.99482407, 0.47546334,\
++	-5.68547011, -0.00330504, 0.00186715, 6.68216507, 0.98940817, 0.99482781, 0.47551419,\
++	-5.68725686, -0.00330239, 0.00186606, 6.68395447, 0.98941813, 0.99483154, 0.47556492,\
++	-5.68903884, -0.00329975, 0.00186498, 6.68573909, 0.98942807, 0.99483527, 0.47561551,\
++	-5.69081606, -0.00329711, 0.00186389, 6.68751895, 0.98943799, 0.99483900, 0.47566598,\
++	-5.69258853, -0.00329447, 0.00186280, 6.68929406, 0.98944790, 0.99484272, 0.47571632,\
++	-5.69435627, -0.00329184, 0.00186172, 6.69106443, 0.98945779, 0.99484644, 0.47576654,\
++	-5.69611926, -0.00328921, 0.00186063, 6.69283005, 0.98946767, 0.99485016, 0.47581663,\
++	-5.69787754, -0.00328658, 0.00185954, 6.69459096, 0.98947753, 0.99485388, 0.47586659,\
++	-5.69963110, -0.00328396, 0.00185846, 6.69634715, 0.98948737, 0.99485759, 0.47591642,\
++	-5.70137996, -0.00328133, 0.00185737, 6.69809863, 0.98949720, 0.99486129, 0.47596613,\
++	-5.70312413, -0.00327872, 0.00185629, 6.69984541, 0.98950701, 0.99486500, 0.47601571,\
++	-5.70486360, -0.00327610, 0.00185520, 6.70158750, 0.98951681, 0.99486870, 0.47606516,\
++	-5.70659840, -0.00327349, 0.00185412, 6.70332492, 0.98952659, 0.99487239, 0.47611449,\
++	-5.70832854, -0.00327088, 0.00185304, 6.70505766, 0.98953636, 0.99487609, 0.47616370,\
++	-5.71005402, -0.00326827, 0.00185195, 6.70678575, 0.98954611, 0.99487978, 0.47621277,\
++	-5.71177484, -0.00326567, 0.00185087, 6.70850918, 0.98955584, 0.99488347, 0.47626172,\
++	-5.71349103, -0.00326306, 0.00184979, 6.71022797, 0.98956556, 0.99488715, 0.47631055,\
++	-5.71520259, -0.00326047, 0.00184870, 6.71194212, 0.98957526, 0.99489083, 0.47635925,\
++	-5.71690953, -0.00325787, 0.00184762, 6.71365166, 0.98958495, 0.99489451, 0.47640783,\
++	-5.71861185, -0.00325528, 0.00184654, 6.71535658, 0.98959462, 0.99489818, 0.47645628,\
++	-5.72030958, -0.00325269, 0.00184546, 6.71705689, 0.98960428, 0.99490185, 0.47650461,\
++	-5.72200271, -0.00325010, 0.00184438, 6.71875261, 0.98961392, 0.99490552, 0.47655282,\
++	-5.72369126, -0.00324752, 0.00184330, 6.72044374, 0.98962355, 0.99490918, 0.47660090,\
++	-5.72537523, -0.00324494, 0.00184222, 6.72213029, 0.98963316, 0.99491284, 0.47664886,\
++	-5.72705463, -0.00324236, 0.00184114, 6.72381227, 0.98964276, 0.99491650, 0.47669669,\
++	-5.72872948, -0.00323979, 0.00184006, 6.72548970, 0.98965234, 0.99492016, 0.47674440,\
++	-5.73039979, -0.00323721, 0.00183898, 6.72716257, 0.98966190, 0.99492381, 0.47679198,\
++	-5.73206555, -0.00323464, 0.00183790, 6.72883091, 0.98967145, 0.99492746, 0.47683945,\
++	-5.73372679, -0.00323208, 0.00183682, 6.73049471, 0.98968099, 0.99493110, 0.47688679,\
++	-5.73538351, -0.00322952, 0.00183574, 6.73215399, 0.98969051, 0.99493474, 0.47693401,\
++	-5.73703572, -0.00322695, 0.00183466, 6.73380876, 0.98970002, 0.99493838, 0.47698111,\
++	-5.73868343, -0.00322440, 0.00183359, 6.73545903, 0.98970951, 0.99494202, 0.47702808,\
++	-5.74032664, -0.00322184, 0.00183251, 6.73710480, 0.98971898, 0.99494565, 0.47707494,\
++	-5.74196538, -0.00321929, 0.00183143, 6.73874609, 0.98972844, 0.99494928, 0.47712167,\
++	-5.74359964, -0.00321674, 0.00183036, 6.74038290, 0.98973789, 0.99495290, 0.47716828,\
++	-5.74522943, -0.00321419, 0.00182928, 6.74201524, 0.98974732, 0.99495653, 0.47721477,\
++	-5.74685478, -0.00321165, 0.00182820, 6.74364312, 0.98975674, 0.99496014, 0.47726113,\
++	-5.74847567, -0.00320911, 0.00182713, 6.74526656, 0.98976614, 0.99496376, 0.47730738,\
++	-5.75009213, -0.00320657, 0.00182605, 6.74688556, 0.98977552, 0.99496737, 0.47735351,\
++	-5.75170417, -0.00320404, 0.00182498, 6.74850013, 0.98978490, 0.99497098, 0.47739952,\
++	-5.75331179, -0.00320151, 0.00182390, 6.75011028, 0.98979425, 0.99497459, 0.47744540,\
++	-5.75491499, -0.00319898, 0.00182283, 6.75171602, 0.98980360, 0.99497819, 0.47749117,\
++	-5.75651380, -0.00319645, 0.00182176, 6.75331735, 0.98981293, 0.99498179, 0.47753682,\
++	-5.75810822, -0.00319393, 0.00182068, 6.75491429, 0.98982224, 0.99498539, 0.47758234,\
++	-5.75969826, -0.00319141, 0.00181961, 6.75650685, 0.98983154, 0.99498899, 0.47762775,\
++	-5.76128392, -0.00318889, 0.00181854, 6.75809504, 0.98984082, 0.99499258, 0.47767304,\
++	-5.76286523, -0.00318637, 0.00181746, 6.75967886, 0.98985009, 0.99499616, 0.47771821,\
++	-5.76444218, -0.00318386, 0.00181639, 6.76125832, 0.98985935, 0.99499975, 0.47776327,\
++	-5.76601479, -0.00318135, 0.00181532, 6.76283343, 0.98986859, 0.99500333, 0.47780820,\
++	-5.76758306, -0.00317884, 0.00181425, 6.76440421, 0.98987782, 0.99500691, 0.47785302,\
++	-5.76914700, -0.00317634, 0.00181318, 6.76597066, 0.98988703, 0.99501049, 0.47789772,\
++	-5.77070663, -0.00317384, 0.00181210, 6.76753279, 0.98989623, 0.99501406, 0.47794230,\
++	-5.77226195, -0.00317134, 0.00181103, 6.76909061, 0.98990542, 0.99501763, 0.47798676,\
++	-5.77381298, -0.00316884, 0.00180996, 6.77064413, 0.98991459, 0.99502119, 0.47803110,\
++	-5.77535971, -0.00316635, 0.00180889, 6.77219336, 0.98992374, 0.99502476, 0.47807533,\
++	-5.77690216, -0.00316386, 0.00180782, 6.77373830, 0.98993289, 0.99502832, 0.47811945,\
++	-5.77844035, -0.00316137, 0.00180675, 6.77527898, 0.98994201, 0.99503187, 0.47816344,\
++	-5.77997427, -0.00315889, 0.00180569, 6.77681538, 0.98995113, 0.99503543, 0.47820732,\
++	-5.78150394, -0.00315640, 0.00180462, 6.77834753, 0.98996023, 0.99503898, 0.47825108,\
++	-5.78302936, -0.00315393, 0.00180355, 6.77987544, 0.98996931, 0.99504253, 0.47829473,\
++	-5.78455056, -0.00315145, 0.00180248, 6.78139911, 0.98997839, 0.99504607, 0.47833826,\
++	-5.78606752, -0.00314897, 0.00180141, 6.78291855, 0.98998744, 0.99504961, 0.47838168,\
++	-5.78758027, -0.00314650, 0.00180035, 6.78443377, 0.98999649, 0.99505315, 0.47842498,\
++	-5.78908882, -0.00314403, 0.00179928, 6.78594478, 0.99000552, 0.99505669, 0.47846816,\
++	-5.79059316, -0.00314157, 0.00179821, 6.78745159, 0.99001453, 0.99506022, 0.47851123,\
++	-5.79209332, -0.00313911, 0.00179715, 6.78895421, 0.99002354, 0.99506375, 0.47855419,\
++	-5.79358930, -0.00313665, 0.00179608, 6.79045265, 0.99003253, 0.99506727, 0.47859703,\
++	-5.79508110, -0.00313419, 0.00179501, 6.79194692, 0.99004150, 0.99507080, 0.47863976,\
++	-5.79656875, -0.00313173, 0.00179395, 6.79343702, 0.99005046, 0.99507432, 0.47868238,\
++	-5.79805224, -0.00312928, 0.00179288, 6.79492296, 0.99005941, 0.99507784, 0.47872487,\
++	-5.79953159, -0.00312683, 0.00179182, 6.79640476, 0.99006834, 0.99508135, 0.47876726,\
++	-5.80100681, -0.00312438, 0.00179075, 6.79788243, 0.99007726, 0.99508486, 0.47880954,\
++	-5.80247790, -0.00312194, 0.00178969, 6.79935596, 0.99008617, 0.99508837, 0.47885170,\
++	-5.80394487, -0.00311950, 0.00178863, 6.80082538, 0.99009506, 0.99509187, 0.47889374,\
++	-5.80540774, -0.00311706, 0.00178756, 6.80229068, 0.99010394, 0.99509538, 0.47893568,\
++	-5.80686651, -0.00311462, 0.00178650, 6.80375189, 0.99011281, 0.99509888, 0.47897750,\
++	-5.80832119, -0.00311219, 0.00178544, 6.80520900, 0.99012166, 0.99510237, 0.47901921,\
++	-5.80977179, -0.00310976, 0.00178438, 6.80666204, 0.99013050, 0.99510587, 0.47906081,\
++	-5.81121832, -0.00310733, 0.00178331, 6.80811099, 0.99013933, 0.99510936, 0.47910230,\
++	-5.81266079, -0.00310490, 0.00178225, 6.80955589, 0.99014814, 0.99511284, 0.47914367,\
++	-5.81409921, -0.00310248, 0.00178119, 6.81099673, 0.99015694, 0.99511633, 0.47918494,\
++	-5.81553358, -0.00310006, 0.00178013, 6.81243352, 0.99016573, 0.99511981, 0.47922609,\
++	-5.81696392, -0.00309764, 0.00177907, 6.81386627, 0.99017450, 0.99512329, 0.47926714,\
++	-5.81839023, -0.00309523, 0.00177801, 6.81529500, 0.99018326, 0.99512676, 0.47930807,\
++	-5.81981252, -0.00309282, 0.00177695, 6.81671970, 0.99019200, 0.99513024, 0.47934889,\
++	-5.82123081, -0.00309041, 0.00177589, 6.81814040, 0.99020074, 0.99513370, 0.47938960,\
++	-5.82264509, -0.00308800, 0.00177483, 6.81955709, 0.99020946, 0.99513717, 0.47943020,\
++	-5.82405539, -0.00308560, 0.00177377, 6.82096980, 0.99021816, 0.99514063, 0.47947070,\
++	-5.82546171, -0.00308319, 0.00177271, 6.82237851, 0.99022686, 0.99514410, 0.47951108,\
++	-5.82686405, -0.00308079, 0.00177165, 6.82378326, 0.99023554, 0.99514755, 0.47955135,\
++	-5.82826243, -0.00307840, 0.00177059, 6.82518403, 0.99024421, 0.99515101, 0.47959152,\
++	-5.82965686, -0.00307600, 0.00176954, 6.82658086, 0.99025286, 0.99515446, 0.47963157,\
++	-5.83104734, -0.00307361, 0.00176848, 6.82797373, 0.99026150, 0.99515791, 0.47967152,\
++	-5.83243389, -0.00307122, 0.00176742, 6.82936266, 0.99027013, 0.99516135, 0.47971136,\
++	-5.83381650, -0.00306884, 0.00176637, 6.83074767, 0.99027875, 0.99516480, 0.47975109,\
++	-5.83519520, -0.00306645, 0.00176531, 6.83212875, 0.99028735, 0.99516824, 0.47979072,\
++	-5.83656999, -0.00306407, 0.00176425, 6.83350592, 0.99029594, 0.99517167, 0.47983023,\
++	-5.83794088, -0.00306169, 0.00176320, 6.83487918, 0.99030451, 0.99517511, 0.47986964,\
++	-5.83930788, -0.00305932, 0.00176214, 6.83624856, 0.99031308, 0.99517854, 0.47990894,\
++	-5.84067099, -0.00305695, 0.00176109, 6.83761404, 0.99032163, 0.99518197, 0.47994814,\
++	-5.84203023, -0.00305458, 0.00176003, 6.83897565, 0.99033017, 0.99518539, 0.47998722,\
++	-5.84338560, -0.00305221, 0.00175898, 6.84033340, 0.99033869, 0.99518881, 0.48002620,\
++	-5.84473712, -0.00304984, 0.00175793, 6.84168728, 0.99034721, 0.99519223, 0.48006508,\
++	-5.84608479, -0.00304748, 0.00175687, 6.84303731, 0.99035571, 0.99519565, 0.48010385,\
++	-5.84742862, -0.00304512, 0.00175582, 6.84438350, 0.99036419, 0.99519906, 0.48014251,\
++	-5.84876862, -0.00304276, 0.00175477, 6.84572586, 0.99037267, 0.99520247, 0.48018107,\
++	-5.85010480, -0.00304041, 0.00175371, 6.84706439, 0.99038113, 0.99520588, 0.48021952,\
++	-5.85143717, -0.00303805, 0.00175266, 6.84839911, 0.99038958, 0.99520929, 0.48025787,\
++	-5.85276573, -0.00303570, 0.00175161, 6.84973003, 0.99039802, 0.99521269, 0.48029611,\
++	-5.85409050, -0.00303336, 0.00175056, 6.85105714, 0.99040644, 0.99521609, 0.48033425,\
++	-5.85541148, -0.00303101, 0.00174951, 6.85238047, 0.99041485, 0.99521948, 0.48037228,\
++	-5.85672868, -0.00302867, 0.00174846, 6.85370002, 0.99042325, 0.99522288, 0.48041021,\
++	-5.85804212, -0.00302633, 0.00174741, 6.85501579, 0.99043164, 0.99522627, 0.48044803,\
++	-5.85935180, -0.00302399, 0.00174636, 6.85632781, 0.99044002, 0.99522965, 0.48048575,\
++	-5.86065772, -0.00302166, 0.00174531, 6.85763607, 0.99044838, 0.99523304, 0.48052337,\
++	-5.86195991, -0.00301932, 0.00174426, 6.85894058, 0.99045673, 0.99523642, 0.48056088,\
++	-5.86325835, -0.00301699, 0.00174321, 6.86024136, 0.99046507, 0.99523980, 0.48059829,\
++	-5.86455308, -0.00301467, 0.00174216, 6.86153841, 0.99047339, 0.99524317, 0.48063560,\
++	-5.86584409, -0.00301234, 0.00174111, 6.86283174, 0.99048171, 0.99524655, 0.48067281,\
++	-5.86713139, -0.00301002, 0.00174006, 6.86412137, 0.99049001, 0.99524992, 0.48070991,\
++	-5.86841499, -0.00300770, 0.00173902, 6.86540729, 0.99049829, 0.99525328, 0.48074691,\
++	-5.86969490, -0.00300538, 0.00173797, 6.86668952, 0.99050657, 0.99525665, 0.48078381,\
++	-5.87097113, -0.00300307, 0.00173692, 6.86796806, 0.99051483, 0.99526001, 0.48082060,\
++	-5.87224368, -0.00300076, 0.00173588, 6.86924293, 0.99052309, 0.99526337, 0.48085730,\
++	-5.87351257, -0.00299845, 0.00173483, 6.87051413, 0.99053133, 0.99526672, 0.48089389,\
++	-5.87477781, -0.00299614, 0.00173378, 6.87178167, 0.99053955, 0.99527008, 0.48093038,\
++	-5.87603940, -0.00299383, 0.00173274, 6.87304557, 0.99054777, 0.99527343, 0.48096678,\
++	-5.87729735, -0.00299153, 0.00173169, 6.87430582, 0.99055597, 0.99527677, 0.48100307,\
++	-5.87855167, -0.00298923, 0.00173065, 6.87556244, 0.99056416, 0.99528012, 0.48103926,\
++	-5.87980237, -0.00298694, 0.00172961, 6.87681543, 0.99057234, 0.99528346, 0.48107535,\
++	-5.88104946, -0.00298464, 0.00172856, 6.87806482, 0.99058051, 0.99528680, 0.48111134,\
++	-5.88229294, -0.00298235, 0.00172752, 6.87931059, 0.99058867, 0.99529013, 0.48114723,\
++	-5.88353283, -0.00298006, 0.00172648, 6.88055277, 0.99059681, 0.99529347, 0.48118302,\
++	-5.88476913, -0.00297777, 0.00172543, 6.88179135, 0.99060494, 0.99529680, 0.48121871,\
++	-5.88600185, -0.00297549, 0.00172439, 6.88302636, 0.99061306, 0.99530012, 0.48125430,\
++	-5.88723100, -0.00297320, 0.00172335, 6.88425779, 0.99062117, 0.99530345, 0.48128980,\
++	-5.88845659, -0.00297093, 0.00172231, 6.88548566, 0.99062927, 0.99530677, 0.48132519,\
++	-5.88967862, -0.00296865, 0.00172127, 6.88670998, 0.99063735, 0.99531009, 0.48136049,\
++	-5.89089712, -0.00296637, 0.00172022, 6.88793074, 0.99064542, 0.99531340, 0.48139569,\
++	-5.89211207, -0.00296410, 0.00171918, 6.88914797, 0.99065348, 0.99531671, 0.48143079,\
++	-5.89332350, -0.00296183, 0.00171814, 6.89036167, 0.99066153, 0.99532002, 0.48146579,\
++	-5.89453141, -0.00295956, 0.00171710, 6.89157185, 0.99066957, 0.99532333, 0.48150069,\
++	-5.89573581, -0.00295730, 0.00171607, 6.89277851, 0.99067760, 0.99532664, 0.48153550,\
++	-5.89693670, -0.00295504, 0.00171503, 6.89398167, 0.99068561, 0.99532994, 0.48157021,\
++	-5.89813411, -0.00295278, 0.00171399, 6.89518133, 0.99069361, 0.99533324, 0.48160482,\
++	-5.89932802, -0.00295052, 0.00171295, 6.89637751, 0.99070160, 0.99533653, 0.48163934,\
++	-5.90051846, -0.00294826, 0.00171191, 6.89757020, 0.99070958, 0.99533983, 0.48167376,\
++	-5.90170544, -0.00294601, 0.00171088, 6.89875943, 0.99071755, 0.99534312, 0.48170809,\
++	-5.90288895, -0.00294376, 0.00170984, 6.89994519, 0.99072550, 0.99534640, 0.48174231,\
++	-5.90406901, -0.00294151, 0.00170880, 6.90112750, 0.99073345, 0.99534969, 0.48177645,\
++	-5.90524562, -0.00293927, 0.00170777, 6.90230636, 0.99074138, 0.99535297, 0.48181048,\
++	-5.90641881, -0.00293702, 0.00170673, 6.90348178, 0.99074930, 0.99535625, 0.48184443,\
++	-5.90758856, -0.00293478, 0.00170569, 6.90465378, 0.99075721, 0.99535952, 0.48187827,\
++	-5.90875490, -0.00293254, 0.00170466, 6.90582235, 0.99076511, 0.99536280, 0.48191202,\
++	-5.90991782, -0.00293031, 0.00170363, 6.90698751, 0.99077300, 0.99536607, 0.48194568,\
++	-5.91107735, -0.00292807, 0.00170259, 6.90814927, 0.99078087, 0.99536933, 0.48197924,\
++	-5.91223348, -0.00292584, 0.00170156, 6.90930763, 0.99078874, 0.99537260, 0.48201271,\
++	-5.91338622, -0.00292362, 0.00170052, 6.91046261, 0.99079659, 0.99537586, 0.48204608,\
++	-5.91453559, -0.00292139, 0.00169949, 6.91161420, 0.99080443, 0.99537912, 0.48207936,\
++	-5.91568159, -0.00291917, 0.00169846, 6.91276243, 0.99081226, 0.99538238, 0.48211255,\
++	-5.91682423, -0.00291694, 0.00169743, 6.91390729, 0.99082008, 0.99538563, 0.48214564,\
++	-5.91796352, -0.00291472, 0.00169639, 6.91504879, 0.99082789, 0.99538888, 0.48217864,\
++	-5.91909946, -0.00291251, 0.00169536, 6.91618695, 0.99083569, 0.99539213, 0.48221155,\
++	-5.92023207, -0.00291029, 0.00169433, 6.91732177, 0.99084347, 0.99539537, 0.48224436,\
++	-5.92136135, -0.00290808, 0.00169330, 6.91845327, 0.99085124, 0.99539862, 0.48227709,\
++	-5.92248731, -0.00290587, 0.00169227, 6.91958144, 0.99085901, 0.99540186, 0.48230971,\
++	-5.92360996, -0.00290367, 0.00169124, 6.92070629, 0.99086676, 0.99540509, 0.48234225,\
++	-5.92472930, -0.00290146, 0.00169021, 6.92182784, 0.99087450, 0.99540833, 0.48237470,\
++	-5.92584536, -0.00289926, 0.00168918, 6.92294610, 0.99088223, 0.99541156, 0.48240705,\
++	-5.92695812, -0.00289706, 0.00168816, 6.92406106, 0.99088995, 0.99541479, 0.48243931,\
++	-5.92806761, -0.00289486, 0.00168713, 6.92517274, 0.99089766, 0.99541801, 0.48247148,\
++	-5.92917382, -0.00289267, 0.00168610, 6.92628115, 0.99090535, 0.99542123, 0.48250356,\
++	-5.93027677, -0.00289047, 0.00168507, 6.92738630, 0.99091304, 0.99542445, 0.48253555,\
++	-5.93137647, -0.00288828, 0.00168405, 6.92848819, 0.99092071, 0.99542767, 0.48256745,\
++	-5.93247293, -0.00288610, 0.00168302, 6.92958683, 0.99092837, 0.99543089, 0.48259926,\
++	-5.93356614, -0.00288391, 0.00168199, 6.93068223, 0.99093603, 0.99543410, 0.48263098,\
++	-5.93465613, -0.00288173, 0.00168097, 6.93177440, 0.99094367, 0.99543731, 0.48266260,\
++	-5.93574289, -0.00287955, 0.00167994, 6.93286334, 0.99095130, 0.99544051, 0.48269414,\
++	-5.93682644, -0.00287737, 0.00167892, 6.93394907, 0.99095892, 0.99544371, 0.48272559,\
++	-5.93790678, -0.00287519, 0.00167789, 6.93503159, 0.99096653, 0.99544692, 0.48275695,\
++	-5.93898392, -0.00287302, 0.00167687, 6.93611091, 0.99097412, 0.99545011, 0.48278822,\
++	-5.94005788, -0.00287085, 0.00167585, 6.93718703, 0.99098171, 0.99545331, 0.48281940,\
++	-5.94112865, -0.00286868, 0.00167482, 6.93825997, 0.99098929, 0.99545650, 0.48285049,\
++	-5.94219625, -0.00286651, 0.00167380, 6.93932974, 0.99099685, 0.99545969, 0.48288150,\
++	-5.94326068, -0.00286435, 0.00167278, 6.94039634, 0.99100441, 0.99546288, 0.48291241,\
++	-5.94432196, -0.00286218, 0.00167176, 6.94145977, 0.99101195, 0.99546606, 0.48294324,\
++	-5.94538008, -0.00286002, 0.00167074, 6.94252006, 0.99101949, 0.99546924, 0.48297398,\
++	-5.94643506, -0.00285787, 0.00166971, 6.94357720, 0.99102701, 0.99547242, 0.48300463,\
++	-5.94748691, -0.00285571, 0.00166869, 6.94463120, 0.99103452, 0.99547559, 0.48303520,\
++	-5.94853563, -0.00285356, 0.00166767, 6.94568207, 0.99104202, 0.99547877, 0.48306568,\
++	-5.94958124, -0.00285141, 0.00166666, 6.94672983, 0.99104951, 0.99548194, 0.48309607,\
++	-5.95062373, -0.00284926, 0.00166564, 6.94777447, 0.99105699, 0.99548510, 0.48312637,\
++	-5.95166312, -0.00284711, 0.00166462, 6.94881600, 0.99106446, 0.99548827, 0.48315659,\
++	-5.95269941, -0.00284497, 0.00166360, 6.94985444, 0.99107192, 0.99549143, 0.48318672,\
++	-5.95373262, -0.00284283, 0.00166258, 6.95088979, 0.99107937, 0.99549459, 0.48321676,\
++	-5.95476275, -0.00284069, 0.00166156, 6.95192206, 0.99108681, 0.99549775, 0.48324672,\
++	-5.95578980, -0.00283855, 0.00166055, 6.95295125, 0.99109423, 0.99550090, 0.48327660,\
++	-5.95681380, -0.00283642, 0.00165953, 6.95397738, 0.99110165, 0.99550405, 0.48330638,\
++	-5.95783474, -0.00283429, 0.00165852, 6.95500045, 0.99110906, 0.99550720, 0.48333609,\
++	-5.95885262, -0.00283216, 0.00165750, 6.95602047, 0.99111645, 0.99551034, 0.48336571,\
++	-5.95986747, -0.00283003, 0.00165648, 6.95703744, 0.99112384, 0.99551348, 0.48339524,\
++	-5.96087929, -0.00282791, 0.00165547, 6.95805138, 0.99113121, 0.99551662, 0.48342469,\
++	-5.96188808, -0.00282578, 0.00165446, 6.95906230, 0.99113858, 0.99551976, 0.48345405,\
++	-5.96289385, -0.00282366, 0.00165344, 6.96007019, 0.99114593, 0.99552290, 0.48348333,\
++	-5.96389662, -0.00282154, 0.00165243, 6.96107507, 0.99115327, 0.99552603, 0.48351252,\
++	-5.96489638, -0.00281943, 0.00165142, 6.96207695, 0.99116061, 0.99552916, 0.48354163,\
++	-5.96589315, -0.00281732, 0.00165040, 6.96307584, 0.99116793, 0.99553228, 0.48357066,\
++	-5.96688693, -0.00281520, 0.00164939, 6.96407173, 0.99117524, 0.99553540, 0.48359961,\
++	-5.96787774, -0.00281310, 0.00164838, 6.96506464, 0.99118255, 0.99553852, 0.48362846,\
++	-5.96886557, -0.00281099, 0.00164737, 6.96605458, 0.99118984, 0.99554164, 0.48365724,\
++	-5.96985044, -0.00280888, 0.00164636, 6.96704156, 0.99119712, 0.99554476, 0.48368594,\
++	-5.97083235, -0.00280678, 0.00164535, 6.96802557, 0.99120439, 0.99554787, 0.48371455,\
++	-5.97181132, -0.00280468, 0.00164434, 6.96900664, 0.99121165, 0.99555098, 0.48374308,\
++	-5.97278734, -0.00280258, 0.00164333, 6.96998476, 0.99121891, 0.99555409, 0.48377153,\
++	-5.97376044, -0.00280049, 0.00164232, 6.97095995, 0.99122615, 0.99555719, 0.48379989,\
++	-5.97473060, -0.00279840, 0.00164131, 6.97193221, 0.99123338, 0.99556029, 0.48382818,\
++	-5.97569785, -0.00279631, 0.00164031, 6.97290155, 0.99124060, 0.99556339, 0.48385638,\
++	-5.97666219, -0.00279422, 0.00163930, 6.97386797, 0.99124781, 0.99556648, 0.48388450,\
++	-5.97762362, -0.00279213, 0.00163829, 6.97483149, 0.99125501, 0.99556958, 0.48391254,\
++	-5.97858216, -0.00279005, 0.00163729, 6.97579212, 0.99126220, 0.99557267, 0.48394050,\
++	-5.97953782, -0.00278796, 0.00163628, 6.97674985, 0.99126938, 0.99557576, 0.48396837,\
++	-5.98049059, -0.00278589, 0.00163527, 6.97770470, 0.99127655, 0.99557884, 0.48399617,\
++	-5.98144049, -0.00278381, 0.00163427, 6.97865668, 0.99128371, 0.99558192, 0.48402389,\
++	-5.98238752, -0.00278173, 0.00163326, 6.97960579, 0.99129087, 0.99558500, 0.48405152,\
++	-5.98333170, -0.00277966, 0.00163226, 6.98055204, 0.99129801, 0.99558808, 0.48407908,\
++	-5.98427302, -0.00277759, 0.00163126, 6.98149543, 0.99130514, 0.99559115, 0.48410655,\
++	-5.98521150, -0.00277552, 0.00163025, 6.98243598, 0.99131226, 0.99559422, 0.48413395,\
++	-5.98614715, -0.00277346, 0.00162925, 6.98337369, 0.99131937, 0.99559729, 0.48416127,\
++	-5.98707997, -0.00277139, 0.00162825, 6.98430858, 0.99132647, 0.99560036, 0.48418851,\
++	-5.98800996, -0.00276933, 0.00162725, 6.98524063, 0.99133356, 0.99560342, 0.48421567,\
++	-5.98893715, -0.00276727, 0.00162625, 6.98616988, 0.99134064, 0.99560648, 0.48424275,\
++	-5.98986153, -0.00276521, 0.00162525, 6.98709631, 0.99134771, 0.99560954, 0.48426975,\
++	-5.99078310, -0.00276316, 0.00162425, 6.98801995, 0.99135477, 0.99561259, 0.48429667,\
++	-5.99170189, -0.00276111, 0.00162325, 6.98894079, 0.99136183, 0.99561565, 0.48432352,\
++	-5.99261789, -0.00275906, 0.00162225, 6.98985884, 0.99136887, 0.99561870, 0.48435028,\
++	-5.99353112, -0.00275701, 0.00162125, 6.99077411, 0.99137590, 0.99562174, 0.48437697,\
++	-5.99444158, -0.00275496, 0.00162025, 6.99168662, 0.99138292, 0.99562479, 0.48440358,\
++	-5.99534927, -0.00275292, 0.00161925, 6.99259635, 0.99138994, 0.99562783, 0.48443012,\
++	-5.99625421, -0.00275088, 0.00161826, 6.99350334, 0.99139694, 0.99563087, 0.48445657,\
++	-5.99715640, -0.00274884, 0.00161726, 6.99440757, 0.99140393, 0.99563390, 0.48448295,\
++	-5.99805585, -0.00274680, 0.00161626, 6.99530906, 0.99141092, 0.99563694, 0.48450926,\
++	-5.99895257, -0.00274476, 0.00161527, 6.99620781, 0.99141789, 0.99563997, 0.48453548,\
++	-5.99984656, -0.00274273, 0.00161427, 6.99710383, 0.99142485, 0.99564299, 0.48456163,\
++	-6.00073784, -0.00274070, 0.00161328, 6.99799714, 0.99143181, 0.99564602, 0.48458771,\
++	-6.00162640, -0.00273867, 0.00161228, 6.99888773, 0.99143875, 0.99564904, 0.48461370,\
++	-6.00251225, -0.00273665, 0.00161129, 6.99977561, 0.99144569, 0.99565206, 0.48463962,\
++	-6.00339541, -0.00273462, 0.00161030, 7.00066079, 0.99145261, 0.99565508, 0.48466547,\
++	-6.00427588, -0.00273260, 0.00160931, 7.00154328, 0.99145953, 0.99565809, 0.48469124,\
++	-6.00515367, -0.00273058, 0.00160831, 7.00242309, 0.99146644, 0.99566111, 0.48471693,\
++	-6.00602878, -0.00272856, 0.00160732, 7.00330021, 0.99147334, 0.99566411, 0.48474255,\
++	-6.00690122, -0.00272655, 0.00160633, 7.00417467, 0.99148022, 0.99566712, 0.48476810,\
++	-6.00777100, -0.00272454, 0.00160534, 7.00504646, 0.99148710, 0.99567012, 0.48479357,\
++	-6.00863812, -0.00272252, 0.00160435, 7.00591560, 0.99149397, 0.99567313, 0.48481896,\
++	-6.00950260, -0.00272052, 0.00160336, 7.00678208, 0.99150083, 0.99567612, 0.48484429,\
++	-6.01036444, -0.00271851, 0.00160237, 7.00764593, 0.99150768, 0.99567912, 0.48486953,\
++	-6.01122364, -0.00271651, 0.00160138, 7.00850713, 0.99151452, 0.99568211, 0.48489471,\
++	-6.01208022, -0.00271450, 0.00160039, 7.00936571, 0.99152135, 0.99568510, 0.48491980,\
++	-6.01293417, -0.00271250, 0.00159941, 7.01022167, 0.99152817, 0.99568809, 0.48494483,\
++	-6.01378552, -0.00271051, 0.00159842, 7.01107501, 0.99153498, 0.99569107, 0.48496978,\
++	-6.01463426, -0.00270851, 0.00159743, 7.01192575, 0.99154179, 0.99569406, 0.48499466,\
++	-6.01548040, -0.00270652, 0.00159645, 7.01277388, 0.99154858, 0.99569704, 0.48501947,\
++	-6.01632394, -0.00270453, 0.00159546, 7.01361942, 0.99155537, 0.99570001, 0.48504420,\
++	-6.01716491, -0.00270254, 0.00159448, 7.01446237, 0.99156214, 0.99570299, 0.48506886,\
++	-6.01800329, -0.00270055, 0.00159349, 7.01530274, 0.99156891, 0.99570596, 0.48509345,\
++	-6.01883911, -0.00269856, 0.00159251, 7.01614055, 0.99157566, 0.99570893, 0.48511797,\
++	-6.01967236, -0.00269658, 0.00159153, 7.01697578, 0.99158241, 0.99571189, 0.48514241,\
++	-6.02050306, -0.00269460, 0.00159054, 7.01780845, 0.99158915, 0.99571486, 0.48516678,\
++	-6.02133120, -0.00269262, 0.00158956, 7.01863858, 0.99159588, 0.99571782, 0.48519108,\
++	-6.02215680, -0.00269065, 0.00158858, 7.01946615, 0.99160260, 0.99572077, 0.48521531,\
++	-6.02297987, -0.00268867, 0.00158760, 7.02029119, 0.99160931, 0.99572373, 0.48523947,\
++	-6.02380040, -0.00268670, 0.00158662, 7.02111370, 0.99161601, 0.99572668, 0.48526355,\
++	-6.02461841, -0.00268473, 0.00158564, 7.02193368, 0.99162270, 0.99572963, 0.48528757,\
++	-6.02543391, -0.00268276, 0.00158466, 7.02275115, 0.99162938, 0.99573258, 0.48531151,\
++	-6.02624690, -0.00268080, 0.00158368, 7.02356610, 0.99163606, 0.99573552, 0.48533539,\
++	-6.02705738, -0.00267883, 0.00158270, 7.02437855, 0.99164272, 0.99573847, 0.48535919,\
++	-6.02786537, -0.00267687, 0.00158172, 7.02518850, 0.99164938, 0.99574141, 0.48538292,\
++	-6.02867087, -0.00267491, 0.00158074, 7.02599596, 0.99165602, 0.99574434, 0.48540659,\
++	-6.02947389, -0.00267296, 0.00157977, 7.02680093, 0.99166266, 0.99574728, 0.48543018,\
++	-6.03027443, -0.00267100, 0.00157879, 7.02760343, 0.99166929, 0.99575021, 0.48545370,\
++	-6.03107251, -0.00266905, 0.00157781, 7.02840346, 0.99167591, 0.99575314, 0.48547716,\
++	-6.03186812, -0.00266710, 0.00157684, 7.02920102, 0.99168252, 0.99575606, 0.48550054,\
++	-6.03266127, -0.00266515, 0.00157586, 7.02999612, 0.99168912, 0.99575899, 0.48552386,\
++	-6.03345198, -0.00266320, 0.00157489, 7.03078878, 0.99169571, 0.99576191, 0.48554710,\
++	-6.03424025, -0.00266126, 0.00157391, 7.03157899, 0.99170230, 0.99576483, 0.48557028,\
++	-6.03502608, -0.00265932, 0.00157294, 7.03236676, 0.99170887, 0.99576774, 0.48559339,\
++	-6.03580948, -0.00265738, 0.00157197, 7.03315210, 0.99171544, 0.99577065, 0.48561643,\
++	-6.03659046, -0.00265544, 0.00157100, 7.03393502, 0.99172199, 0.99577356, 0.48563940,\
++	-6.03736903, -0.00265350, 0.00157002, 7.03471552, 0.99172854, 0.99577647, 0.48566231,\
++	-6.03814518, -0.00265157, 0.00156905, 7.03549361, 0.99173508, 0.99577938, 0.48568514,\
++	-6.03891894, -0.00264964, 0.00156808, 7.03626930, 0.99174161, 0.99578228, 0.48570791,\
++	-6.03969029, -0.00264771, 0.00156711, 7.03704258, 0.99174813, 0.99578518, 0.48573061,\
++	-6.04045926, -0.00264578, 0.00156614, 7.03781348, 0.99175464, 0.99578807, 0.48575324,\
++	-6.04122585, -0.00264386, 0.00156517, 7.03858199, 0.99176115, 0.99579097, 0.48577581,\
++	-6.04199006, -0.00264193, 0.00156421, 7.03934813, 0.99176764, 0.99579386, 0.48579831,\
++	-6.04275190, -0.00264001, 0.00156324, 7.04011189, 0.99177413, 0.99579675, 0.48582075,\
++	-6.04351138, -0.00263809, 0.00156227, 7.04087328, 0.99178061, 0.99579964, 0.48584311,\
++	-6.04426850, -0.00263618, 0.00156130, 7.04163232, 0.99178707, 0.99580252, 0.48586541,\
++	-6.04502327, -0.00263426, 0.00156034, 7.04238901, 0.99179353, 0.99580540, 0.48588765,\
++	-6.04577570, -0.00263235, 0.00155937, 7.04314335, 0.99179998, 0.99580828, 0.48590981,\
++	-6.04652579, -0.00263044, 0.00155841, 7.04389535, 0.99180643, 0.99581115, 0.48593191,\
++	-6.04727354, -0.00262853, 0.00155744, 7.04464502, 0.99181286, 0.99581403, 0.48595395,\
++	-6.04801898, -0.00262662, 0.00155648, 7.04539236, 0.99181929, 0.99581690, 0.48597592,\
++	-6.04876210, -0.00262472, 0.00155552, 7.04613738, 0.99182570, 0.99581977, 0.48599782,\
++	-6.04950290, -0.00262282, 0.00155455, 7.04688009, 0.99183211, 0.99582263, 0.48601966,\
++	-6.05024140, -0.00262092, 0.00155359, 7.04762049, 0.99183851, 0.99582549, 0.48604144,\
++	-6.05097760, -0.00261902, 0.00155263, 7.04835858, 0.99184490, 0.99582835, 0.48606315,\
++	-6.05171151, -0.00261712, 0.00155167, 7.04909439, 0.99185128, 0.99583121, 0.48608479,\
++	-6.05244313, -0.00261523, 0.00155071, 7.04982791, 0.99185765, 0.99583407, 0.48610637,\
++	-6.05317248, -0.00261334, 0.00154975, 7.05055914, 0.99186402, 0.99583692, 0.48612789,\
++	-6.05389955, -0.00261145, 0.00154879, 7.05128810, 0.99187037, 0.99583977, 0.48614934,\
++	-6.05462435, -0.00260956, 0.00154783, 7.05201479, 0.99187672, 0.99584261, 0.48617073,\
++	-6.05534689, -0.00260767, 0.00154687, 7.05273922, 0.99188306, 0.99584546, 0.48619205,\
++	-6.05606718, -0.00260579, 0.00154591, 7.05346139, 0.99188939, 0.99584830, 0.48621331,\
++	-6.05678521, -0.00260391, 0.00154495, 7.05418131, 0.99189571, 0.99585114, 0.48623450,\
++	-6.05750101, -0.00260203, 0.00154400, 7.05489898, 0.99190203, 0.99585398, 0.48625564,\
++	-6.05821457, -0.00260015, 0.00154304, 7.05561442, 0.99190833, 0.99585681, 0.48627671,\
++	-6.05892590, -0.00259827, 0.00154209, 7.05632763, 0.99191463, 0.99585964, 0.48629772,\
++	-6.05963501, -0.00259640, 0.00154113, 7.05703861, 0.99192092, 0.99586247, 0.48631866,\
++	-6.06034190, -0.00259453, 0.00154018, 7.05774737, 0.99192720, 0.99586529, 0.48633954,\
++	-6.06104657, -0.00259266, 0.00153922, 7.05845392, 0.99193347, 0.99586812, 0.48636036,\
++	-6.06174905, -0.00259079, 0.00153827, 7.05915826, 0.99193973, 0.99587094, 0.48638112,\
++	-6.06244932, -0.00258893, 0.00153732, 7.05986040, 0.99194598, 0.99587376, 0.48640181,\
++	-6.06314740, -0.00258706, 0.00153637, 7.06056034, 0.99195223, 0.99587657, 0.48642244,\
++	-6.06384330, -0.00258520, 0.00153541, 7.06125810, 0.99195847, 0.99587938, 0.48644301,\
++	-6.06453701, -0.00258334, 0.00153446, 7.06195367, 0.99196470, 0.99588220, 0.48646352,\
++	-6.06522855, -0.00258148, 0.00153351, 7.06264707, 0.99197092, 0.99588500, 0.48648397,\
++	-6.06591793, -0.00257963, 0.00153256, 7.06333830, 0.99197713, 0.99588781, 0.48650436,\
++	-6.06660514, -0.00257778, 0.00153161, 7.06402736, 0.99198334, 0.99589061, 0.48652468,\
++	-6.06729019, -0.00257592, 0.00153067, 7.06471427, 0.99198953, 0.99589341, 0.48654494,\
++	-6.06797309, -0.00257408, 0.00152972, 7.06539902, 0.99199572, 0.99589621, 0.48656515,\
++	-6.06865385, -0.00257223, 0.00152877, 7.06608163, 0.99200190, 0.99589900, 0.48658529,\
++	-6.06933248, -0.00257038, 0.00152782, 7.06676209, 0.99200807, 0.99590179, 0.48660537,\
++	-6.07000896, -0.00256854, 0.00152688, 7.06744043, 0.99201424, 0.99590458, 0.48662539,\
++	-6.07068333, -0.00256670, 0.00152593, 7.06811663, 0.99202039, 0.99590737, 0.48664535,\
++	-6.07135557, -0.00256486, 0.00152499, 7.06879071, 0.99202654, 0.99591015, 0.48666525,\
++	-6.07202570, -0.00256302, 0.00152404, 7.06946268, 0.99203268, 0.99591294, 0.48668509,\
++	-6.07269372, -0.00256119, 0.00152310, 7.07013254, 0.99203881, 0.99591572, 0.48670487,\
++	-6.07335964, -0.00255935, 0.00152215, 7.07080029, 0.99204493, 0.99591849, 0.48672460,\
++	-6.07402346, -0.00255752, 0.00152121, 7.07146594, 0.99205104, 0.99592127, 0.48674426,\
++	-6.07468520, -0.00255569, 0.00152027, 7.07212950, 0.99205715, 0.99592404, 0.48676386,\
++	-6.07534484, -0.00255387, 0.00151933, 7.07279098, 0.99206325, 0.99592681, 0.48678341,\
++	-6.07600241, -0.00255204, 0.00151839, 7.07345037, 0.99206934, 0.99592957, 0.48680289,\
++	-6.07665791, -0.00255022, 0.00151745, 7.07410769, 0.99207542, 0.99593234, 0.48682232,\
++	-6.07731134, -0.00254840, 0.00151651, 7.07476294, 0.99208149, 0.99593510, 0.48684169,\
++	-6.07796271, -0.00254658, 0.00151557, 7.07541613, 0.99208756, 0.99593786, 0.48686100,\
++	-6.07861202, -0.00254476, 0.00151463, 7.07606726, 0.99209362, 0.99594061, 0.48688025,\
++	-6.07925928, -0.00254294, 0.00151369, 7.07671634, 0.99209967, 0.99594336, 0.48689944,\
++	-6.07990450, -0.00254113, 0.00151275, 7.07736337, 0.99210571, 0.99594612, 0.48691858,\
++	-6.08054769, -0.00253932, 0.00151182, 7.07800837, 0.99211174, 0.99594886, 0.48693766,\
++	-6.08118884, -0.00253751, 0.00151088, 7.07865133, 0.99211777, 0.99595161, 0.48695668,\
++	-6.08182796, -0.00253570, 0.00150994, 7.07929226, 0.99212379, 0.99595435, 0.48697564,\
++	-6.08246507, -0.00253390, 0.00150901, 7.07993117, 0.99212980, 0.99595709, 0.48699454,\
++	-6.08310016, -0.00253210, 0.00150807, 7.08056806, 0.99213580, 0.99595983, 0.48701339,\
++	-6.08373324, -0.00253029, 0.00150714, 7.08120294, 0.99214179, 0.99596257, 0.48703218,\
++	-6.08436431, -0.00252849, 0.00150621, 7.08183582, 0.99214778, 0.99596530, 0.48705092,\
++	-6.08499339, -0.00252670, 0.00150527, 7.08246669, 0.99215376, 0.99596803, 0.48706960,\
++	-6.08562048, -0.00252490, 0.00150434, 7.08309558, 0.99215973, 0.99597076, 0.48708821,\
++	-6.08624558, -0.00252311, 0.00150341, 7.08372247, 0.99216569, 0.99597348, 0.48710678,\
++	-6.08686870, -0.00252132, 0.00150248, 7.08434738, 0.99217164, 0.99597620, 0.48712529,\
++	-6.08748985, -0.00251953, 0.00150155, 7.08497032, 0.99217759, 0.99597892, 0.48714374,\
++	-6.08810902, -0.00251774, 0.00150062, 7.08559128, 0.99218353, 0.99598164, 0.48716214,\
++	-6.08872624, -0.00251595, 0.00149969, 7.08621028, 0.99218946, 0.99598436, 0.48718048,\
++	-6.08934149, -0.00251417, 0.00149876, 7.08682732, 0.99219538, 0.99598707, 0.48719876,\
++	-6.08995479, -0.00251239, 0.00149784, 7.08744241, 0.99220130, 0.99598978, 0.48721699,\
++	-6.09056615, -0.00251061, 0.00149691, 7.08805554, 0.99220721, 0.99599248, 0.48723517,\
++	-6.09117556, -0.00250883, 0.00149598, 7.08866673, 0.99221310, 0.99599519, 0.48725329,\
++	-6.09178304, -0.00250705, 0.00149506, 7.08927599, 0.99221900, 0.99599789, 0.48727135,\
++	-6.09238859, -0.00250528, 0.00149413, 7.08988331, 0.99222488, 0.99600059, 0.48728936,\
++	-6.09299221, -0.00250351, 0.00149320, 7.09048871, 0.99223076, 0.99600329, 0.48730732,\
++	-6.09359392, -0.00250174, 0.00149228, 7.09109218, 0.99223663, 0.99600598, 0.48732522,\
++	-6.09419371, -0.00249997, 0.00149136, 7.09169374, 0.99224249, 0.99600867, 0.48734306,\
++	-6.09479159, -0.00249820, 0.00149043, 7.09229339, 0.99224834, 0.99601136, 0.48736085,\
++	-6.09538757, -0.00249644, 0.00148951, 7.09289113, 0.99225419, 0.99601405, 0.48737859,\
++	-6.09598165, -0.00249468, 0.00148859, 7.09348698, 0.99226003, 0.99601673, 0.48739628,\
++	-6.09657385, -0.00249292, 0.00148767, 7.09408093, 0.99226586, 0.99601942, 0.48741390,\
++	-6.09716415, -0.00249116, 0.00148675, 7.09467299, 0.99227168, 0.99602210, 0.48743148,\
++	-6.09775257, -0.00248940, 0.00148583, 7.09526317, 0.99227749, 0.99602477, 0.48744900,\
++	-6.09833912, -0.00248765, 0.00148491, 7.09585148, 0.99228330, 0.99602745, 0.48746647,\
++	-6.09892380, -0.00248589, 0.00148399, 7.09643791, 0.99228910, 0.99603012, 0.48748389,\
++	-6.09950662, -0.00248414, 0.00148307, 7.09702248, 0.99229489, 0.99603279, 0.48750125,\
++	-6.10008757, -0.00248239, 0.00148215, 7.09760518, 0.99230068, 0.99603545, 0.48751856,\
++	-6.10066667, -0.00248065, 0.00148124, 7.09818603, 0.99230646, 0.99603812, 0.48753582,\
++	-6.10124393, -0.00247890, 0.00148032, 7.09876503, 0.99231223, 0.99604078, 0.48755302,\
++	-6.10181934, -0.00247716, 0.00147941, 7.09934218, 0.99231799, 0.99604344, 0.48757018,\
++	-6.10239291, -0.00247542, 0.00147849, 7.09991749, 0.99232374, 0.99604609, 0.48758728,\
++	-6.10296465, -0.00247368, 0.00147758, 7.10049097, 0.99232949, 0.99604875, 0.48760432,\
++	-6.10353456, -0.00247194, 0.00147666, 7.10106262, 0.99233523, 0.99605140, 0.48762132,\
++	-6.10410265, -0.00247020, 0.00147575, 7.10163245, 0.99234096, 0.99605405, 0.48763826,\
++	-6.10466892, -0.00246847, 0.00147484, 7.10220045, 0.99234669, 0.99605669, 0.48765516,\
++	-6.10523338, -0.00246674, 0.00147393, 7.10276665, 0.99235240, 0.99605934, 0.48767200,\
++	-6.10579604, -0.00246501, 0.00147301, 7.10333103, 0.99235811, 0.99606198, 0.48768879,\
++	-6.10635689, -0.00246328, 0.00147210, 7.10389362, 0.99236382, 0.99606462, 0.48770552,\
++	-6.10691595, -0.00246155, 0.00147119, 7.10445440, 0.99236951, 0.99606725, 0.48772221,\
++	-6.10747322, -0.00245983, 0.00147028, 7.10501339, 0.99237520, 0.99606989, 0.48773885,\
++	-6.10802871, -0.00245811, 0.00146937, 7.10557060, 0.99238088, 0.99607252, 0.48775543,\
++	-6.10858241, -0.00245639, 0.00146847, 7.10612603, 0.99238655, 0.99607515, 0.48777197,\
++	-6.10913434, -0.00245467, 0.00146756, 7.10667967, 0.99239222, 0.99607777, 0.48778845,\
++	-6.10968450, -0.00245295, 0.00146665, 7.10723155, 0.99239787, 0.99608040, 0.48780488,\
++	-6.11023289, -0.00245123, 0.00146575, 7.10778166, 0.99240353, 0.99608302, 0.48782127,\
++	-6.11077953, -0.00244952, 0.00146484, 7.10833001, 0.99240917, 0.99608564, 0.48783760,\
++	-6.11132441, -0.00244781, 0.00146393, 7.10887660, 0.99241480, 0.99608825, 0.48785388,\
++	-6.11186754, -0.00244610, 0.00146303, 7.10942144, 0.99242043, 0.99609087, 0.48787012,\
++	-6.11240893, -0.00244439, 0.00146213, 7.10996454, 0.99242605, 0.99609348, 0.48788630,\
++	-6.11294858, -0.00244269, 0.00146122, 7.11050589, 0.99243167, 0.99609609, 0.48790243,\
++	-6.11348649, -0.00244098, 0.00146032, 7.11104551, 0.99243728, 0.99609869, 0.48791852,\
++	-6.11402268, -0.00243928, 0.00145942, 7.11158340, 0.99244288, 0.99610130, 0.48793455,\
++	-6.11455714, -0.00243758, 0.00145852, 7.11211956, 0.99244847, 0.99610390, 0.48795053,\
++	-6.11508989, -0.00243588, 0.00145762, 7.11265400, 0.99245405, 0.99610650, 0.48796647,\
++	-6.11562092, -0.00243419, 0.00145672, 7.11318673, 0.99245963, 0.99610909, 0.48798236,\
++	-6.11615024, -0.00243249, 0.00145582, 7.11371775, 0.99246520, 0.99611169, 0.48799820,\
++	-6.11667786, -0.00243080, 0.00145492, 7.11424706, 0.99247077, 0.99611428, 0.48801399,\
++	-6.11720378, -0.00242911, 0.00145402, 7.11477467, 0.99247632, 0.99611687, 0.48802973,\
++	-6.11772800, -0.00242742, 0.00145312, 7.11530058, 0.99248187, 0.99611945, 0.48804543,\
++	-6.11825054, -0.00242574, 0.00145223, 7.11582481, 0.99248741, 0.99612204, 0.48806107,\
++	-6.11877140, -0.00242405, 0.00145133, 7.11634735, 0.99249295, 0.99612462, 0.48807667,\
++	-6.11929057, -0.00242237, 0.00145043, 7.11686820, 0.99249847, 0.99612720, 0.48809222,\
++	-6.11980807, -0.00242069, 0.00144954, 7.11738739, 0.99250400, 0.99612978, 0.48810772,\
++	-6.12032390, -0.00241901, 0.00144864, 7.11790490, 0.99250951, 0.99613235, 0.48812317,\
++	-6.12083807, -0.00241733, 0.00144775, 7.11842074, 0.99251501, 0.99613492, 0.48813858,\
++	-6.12135058, -0.00241565, 0.00144686, 7.11893493, 0.99252051, 0.99613749, 0.48815394,\
++	-6.12186144, -0.00241398, 0.00144597, 7.11944746, 0.99252601, 0.99614006, 0.48816925,\
++	-6.12237064, -0.00241231, 0.00144507, 7.11995834, 0.99253149, 0.99614262, 0.48818451,\
++	-6.12287820, -0.00241064, 0.00144418, 7.12046757, 0.99253697, 0.99614518, 0.48819973,\
++	-6.12338412, -0.00240897, 0.00144329, 7.12097516, 0.99254244, 0.99614774, 0.48821490,\
++	-6.12388841, -0.00240730, 0.00144240, 7.12148111, 0.99254790, 0.99615030, 0.48823002,\
++	-6.12439107, -0.00240563, 0.00144151, 7.12198543, 0.99255336, 0.99615285, 0.48824510,\
++	-6.12489210, -0.00240397, 0.00144062, 7.12248813, 0.99255881, 0.99615540, 0.48826013,\
++	-6.12539151, -0.00240231, 0.00143974, 7.12298920, 0.99256425, 0.99615795, 0.48827512,\
++	-6.12588931, -0.00240065, 0.00143885, 7.12348866, 0.99256969, 0.99616050, 0.48829005,\
++	-6.12638549, -0.00239899, 0.00143796, 7.12398650, 0.99257512, 0.99616304, 0.48830495,\
++	-6.12688007, -0.00239734, 0.00143708, 7.12448273, 0.99258054, 0.99616559, 0.48831979,\
++	-6.12737305, -0.00239568, 0.00143619, 7.12497736, 0.99258596, 0.99616813, 0.48833460,\
++	-6.12786443, -0.00239403, 0.00143531, 7.12547040, 0.99259136, 0.99617066, 0.48834935,\
++	-6.12835422, -0.00239238, 0.00143442, 7.12596184, 0.99259676, 0.99617320, 0.48836406,\
++	-6.12884242, -0.00239073, 0.00143354, 7.12645169, 0.99260216, 0.99617573, 0.48837872,\
++	-6.12932904, -0.00238908, 0.00143266, 7.12693996, 0.99260755, 0.99617826, 0.48839334,\
++	-6.12981408, -0.00238744, 0.00143177, 7.12742664, 0.99261293, 0.99618079, 0.48840792,\
++	-6.13029755, -0.00238580, 0.00143089, 7.12791176, 0.99261830, 0.99618331, 0.48842244,\
++	-6.13077945, -0.00238416, 0.00143001, 7.12839530, 0.99262367, 0.99618583, 0.48843693,\
++	-6.13125979, -0.00238252, 0.00142913, 7.12887728, 0.99262903, 0.99618835, 0.48845136,\
++	-6.13173857, -0.00238088, 0.00142825, 7.12935769, 0.99263438, 0.99619087, 0.48846576,\
++	-6.13221579, -0.00237924, 0.00142737, 7.12983655, 0.99263972, 0.99619339, 0.48848011,\
++	-6.13269147, -0.00237761, 0.00142649, 7.13031386, 0.99264506, 0.99619590, 0.48849441,\
++	-6.13316560, -0.00237598, 0.00142562, 7.13078962, 0.99265040, 0.99619841, 0.48850867,\
++	-6.13363819, -0.00237434, 0.00142474, 7.13126384, 0.99265572, 0.99620092, 0.48852289,\
++	-6.13410924, -0.00237272, 0.00142386, 7.13173652, 0.99266104, 0.99620342, 0.48853706,\
++	-6.13457876, -0.00237109, 0.00142299, 7.13220767, 0.99266635, 0.99620593, 0.48855119,\
++	-6.13504676, -0.00236946, 0.00142211, 7.13267729, 0.99267166, 0.99620843, 0.48856528,\
++	-6.13551323, -0.00236784, 0.00142124, 7.13314539, 0.99267696, 0.99621092, 0.48857932,\
++	-6.13597818, -0.00236622, 0.00142036, 7.13361197, 0.99268225, 0.99621342, 0.48859332,\
++	-6.13644163, -0.00236460, 0.00141949, 7.13407703, 0.99268753, 0.99621591, 0.48860727,\
++	-6.13690356, -0.00236298, 0.00141862, 7.13454058, 0.99269281, 0.99621840, 0.48862118,\
++	-6.13736399, -0.00236136, 0.00141774, 7.13500263, 0.99269808, 0.99622089, 0.48863505,\
++	-6.13782292, -0.00235975, 0.00141687, 7.13546317, 0.99270335, 0.99622338, 0.48864888,\
++	-6.13828035, -0.00235814, 0.00141600, 7.13592222, 0.99270861, 0.99622586, 0.48866266,\
++	-6.13873630, -0.00235652, 0.00141513, 7.13637977, 0.99271386, 0.99622834, 0.48867640,\
++	-6.13919076, -0.00235492, 0.00141426, 7.13683584, 0.99271910, 0.99623082, 0.48869010,\
++	-6.13964373, -0.00235331, 0.00141339, 7.13729042, 0.99272434, 0.99623330, 0.48870375,\
++	-6.14009523, -0.00235170, 0.00141253, 7.13774353, 0.99272957, 0.99623577, 0.48871736,\
++	-6.14054526, -0.00235010, 0.00141166, 7.13819516, 0.99273480, 0.99623824, 0.48873093,\
++	-6.14099381, -0.00234850, 0.00141079, 7.13864532, 0.99274001, 0.99624071, 0.48874446,\
++	-6.14144091, -0.00234689, 0.00140993, 7.13909401, 0.99274523, 0.99624318, 0.48875794,\
++	-6.14188654, -0.00234530, 0.00140906, 7.13954125, 0.99275043, 0.99624564, 0.48877139,\
++	-6.14233072, -0.00234370, 0.00140820, 7.13998702, 0.99275563, 0.99624811, 0.48878479,\
++	-6.14277345, -0.00234210, 0.00140733, 7.14043134, 0.99276082, 0.99625057, 0.48879815,\
++	-6.14321473, -0.00234051, 0.00140647, 7.14087422, 0.99276601, 0.99625302, 0.48881147,\
++	-6.14365457, -0.00233892, 0.00140561, 7.14131565, 0.99277118, 0.99625548, 0.48882475,\
++	-6.14409297, -0.00233733, 0.00140474, 7.14175564, 0.99277636, 0.99625793, 0.48883798,\
++	-6.14452994, -0.00233574, 0.00140388, 7.14219420, 0.99278152, 0.99626038, 0.48885118,\
++	-6.14496548, -0.00233415, 0.00140302, 7.14263132, 0.99278668, 0.99626283, 0.48886433,\
++	-6.14539959, -0.00233257, 0.00140216, 7.14306702, 0.99279183, 0.99626527, 0.48887745,\
++	-6.14583228, -0.00233098, 0.00140130, 7.14350130, 0.99279698, 0.99626772, 0.48889052,\
++	-6.14626356, -0.00232940, 0.00140044, 7.14393416, 0.99280212, 0.99627016, 0.48890355,\
++	-6.14669342, -0.00232782, 0.00139958, 7.14436560, 0.99280725, 0.99627259, 0.48891654,\
++	-6.14712188, -0.00232625, 0.00139873, 7.14479564, 0.99281238, 0.99627503, 0.48892949,\
++	-6.14754894, -0.00232467, 0.00139787, 7.14522427, 0.99281750, 0.99627746, 0.48894240,\
++	-6.14797459, -0.00232309, 0.00139701, 7.14565150, 0.99282261, 0.99627989, 0.48895527,\
++	-6.14839885, -0.00232152, 0.00139616, 7.14607733, 0.99282772, 0.99628232, 0.48896810,\
++	-6.14882172, -0.00231995, 0.00139530, 7.14650177, 0.99283282, 0.99628475, 0.48898089,\
++	-6.14924320, -0.00231838, 0.00139445, 7.14692482, 0.99283791, 0.99628717, 0.48899364,\
++	-6.14966330, -0.00231681, 0.00139359, 7.14734649, 0.99284300, 0.99628959, 0.48900634,\
++	-6.15008202, -0.00231525, 0.00139274, 7.14776677, 0.99284808, 0.99629201, 0.48901902,\
++	-6.15049937, -0.00231368, 0.00139189, 7.14818569, 0.99285316, 0.99629443, 0.48903165,\
++	-6.15091535, -0.00231212, 0.00139104, 7.14860323, 0.99285823, 0.99629684, 0.48904424,\
++	-6.15132996, -0.00231056, 0.00139018, 7.14901940, 0.99286329, 0.99629926, 0.48905679,\
++	-6.15174321, -0.00230900, 0.00138933, 7.14943421, 0.99286834, 0.99630166, 0.48906930,\
++	-6.15215510, -0.00230744, 0.00138848, 7.14984766, 0.99287339, 0.99630407, 0.48908178,\
++	-6.15256564, -0.00230589, 0.00138763, 7.15025975, 0.99287844, 0.99630648, 0.48909421,\
++	-6.15297483, -0.00230433, 0.00138679, 7.15067050, 0.99288347, 0.99630888, 0.48910661,\
++	-6.15338268, -0.00230278, 0.00138594, 7.15107989, 0.99288850, 0.99631128, 0.48911897,\
++	-6.15378918, -0.00230123, 0.00138509, 7.15148795, 0.99289353, 0.99631368, 0.48913128,\
++	-6.15419435, -0.00229968, 0.00138424, 7.15189467, 0.99289855, 0.99631607, 0.48914356,\
++	-6.15459818, -0.00229814, 0.00138340, 7.15230005, 0.99290356, 0.99631847, 0.48915581,\
++	-6.15500069, -0.00229659, 0.00138255, 7.15270410, 0.99290856, 0.99632086, 0.48916801,\
++	-6.15540187, -0.00229505, 0.00138171, 7.15310682, 0.99291356, 0.99632324, 0.48918017,\
++	-6.15580173, -0.00229350, 0.00138087, 7.15350822, 0.99291855, 0.99632563, 0.48919230,\
++	-6.15620027, -0.00229196, 0.00138002, 7.15390831, 0.99292354, 0.99632801, 0.48920439,\
++	-6.15659750, -0.00229042, 0.00137918, 7.15430708, 0.99292852, 0.99633040, 0.48921644,\
++	-6.15699342, -0.00228889, 0.00137834, 7.15470454, 0.99293349, 0.99633278, 0.48922846,\
++	-6.15738804, -0.00228735, 0.00137750, 7.15510069, 0.99293846, 0.99633515, 0.48924043,\
++	-6.15778136, -0.00228582, 0.00137666, 7.15549554, 0.99294342, 0.99633753, 0.48925237,\
++	-6.15817338, -0.00228429, 0.00137582, 7.15588909, 0.99294838, 0.99633990, 0.48926427,\
++	-6.15856410, -0.00228276, 0.00137498, 7.15628135, 0.99295333, 0.99634227, 0.48927613,\
++	-6.15895354, -0.00228123, 0.00137414, 7.15667231, 0.99295827, 0.99634464, 0.48928796,\
++	-6.15934170, -0.00227970, 0.00137330, 7.15706199, 0.99296321, 0.99634700, 0.48929975,\
++	-6.15972857, -0.00227818, 0.00137246, 7.15745039, 0.99296814, 0.99634936, 0.48931151,\
++	-6.16011416, -0.00227665, 0.00137162, 7.15783751, 0.99297306, 0.99635172, 0.48932322,\
++	-6.16049848, -0.00227513, 0.00137079, 7.15822335, 0.99297798, 0.99635408, 0.48933490,\
++	-6.16088154, -0.00227361, 0.00136995, 7.15860793, 0.99298289, 0.99635644, 0.48934654,\
++	-6.16126332, -0.00227209, 0.00136912, 7.15899123, 0.99298780, 0.99635879, 0.48935815,\
++	-6.16164385, -0.00227057, 0.00136828, 7.15937328, 0.99299270, 0.99636114, 0.48936972,\
++	-6.16202312, -0.00226906, 0.00136745, 7.15975406, 0.99299759, 0.99636349, 0.48938125,\
++	-6.16240113, -0.00226754, 0.00136662, 7.16013359, 0.99300248, 0.99636584, 0.48939275,\
++	-6.16277790, -0.00226603, 0.00136579, 7.16051186, 0.99300736, 0.99636818, 0.48940421,\
++	-6.16315341, -0.00226452, 0.00136495, 7.16088889, 0.99301224, 0.99637052, 0.48941563,\
++	-6.16352769, -0.00226301, 0.00136412, 7.16126468, 0.99301711, 0.99637286, 0.48942702,\
++	-6.16390073, -0.00226151, 0.00136329, 7.16163922, 0.99302197, 0.99637520, 0.48943837,\
++	-6.16427253, -0.00226000, 0.00136246, 7.16201253, 0.99302683, 0.99637753, 0.48944969,\
++	-6.16464310, -0.00225850, 0.00136164, 7.16238461, 0.99303168, 0.99637987, 0.48946098,\
++	-6.16501245, -0.00225700, 0.00136081, 7.16275545, 0.99303653, 0.99638220, 0.48947222,\
++	-6.16538057, -0.00225549, 0.00135998, 7.16312507, 0.99304136, 0.99638453, 0.48948343,\
++	-6.16574747, -0.00225400, 0.00135915, 7.16349348, 0.99304620, 0.99638685, 0.48949461,\
++	-6.16611316, -0.00225250, 0.00135833, 7.16386066, 0.99305103, 0.99638918, 0.48950575,\
++	-6.16647763, -0.00225100, 0.00135750, 7.16422663, 0.99305585, 0.99639150, 0.48951685,\
++	-6.16684090, -0.00224951, 0.00135668, 7.16459139, 0.99306066, 0.99639382, 0.48952792,\
++	-6.16720296, -0.00224802, 0.00135585, 7.16495494, 0.99306547, 0.99639613, 0.48953896,\
++	-6.16756382, -0.00224653, 0.00135503, 7.16531729, 0.99307027, 0.99639845, 0.48954996,\
++	-6.16792348, -0.00224504, 0.00135421, 7.16567845, 0.99307507, 0.99640076, 0.48956093,\
++	-6.16828195, -0.00224355, 0.00135338, 7.16603840, 0.99307986, 0.99640307, 0.48957186,\
++	-6.16863923, -0.00224206, 0.00135256, 7.16639717, 0.99308465, 0.99640538, 0.48958276,\
++	-6.16899533, -0.00224058, 0.00135174, 7.16675475, 0.99308943, 0.99640768, 0.48959363,\
++	-6.16935024, -0.00223910, 0.00135092, 7.16711114, 0.99309420, 0.99640998, 0.48960445,\
++	-6.16970397, -0.00223762, 0.00135010, 7.16746636, 0.99309897, 0.99641228, 0.48961525,\
++	-6.17005653, -0.00223614, 0.00134928, 7.16782039, 0.99310373, 0.99641458, 0.48962601,\
++	-6.17040791, -0.00223466, 0.00134846, 7.16817326, 0.99310849, 0.99641688, 0.48963673,\
++	-6.17075813, -0.00223318, 0.00134765, 7.16852495, 0.99311324, 0.99641917, 0.48964743,\
++	-6.17110719, -0.00223171, 0.00134683, 7.16887548, 0.99311798, 0.99642146, 0.48965809,\
++	-6.17145508, -0.00223024, 0.00134601, 7.16922484, 0.99312272, 0.99642375, 0.48966871,\
++	-6.17180182, -0.00222876, 0.00134520, 7.16957305, 0.99312745, 0.99642604, 0.48967931,\
++	-6.17214740, -0.00222729, 0.00134438, 7.16992010, 0.99313218, 0.99642832, 0.48968987,\
++	-6.17249183, -0.00222583, 0.00134357, 7.17026601, 0.99313690, 0.99643061, 0.48970039,\
++	-6.17283512, -0.00222436, 0.00134275, 7.17061076, 0.99314162, 0.99643289, 0.48971088,\
++	-6.17317726, -0.00222289, 0.00134194, 7.17095437, 0.99314633, 0.99643517, 0.48972134,\
++	-6.17351827, -0.00222143, 0.00134113, 7.17129683, 0.99315103, 0.99643744, 0.48973177,\
++	-6.17385813, -0.00221997, 0.00134032, 7.17163816, 0.99315573, 0.99643971, 0.48974217,\
++	-6.17419687, -0.00221851, 0.00133950, 7.17197836, 0.99316042, 0.99644199, 0.48975252,\
++	-6.17453448, -0.00221705, 0.00133869, 7.17231743, 0.99316511, 0.99644425, 0.48976285,\
++	-6.17487096, -0.00221559, 0.00133788, 7.17265537, 0.99316979, 0.99644652, 0.48977314,\
++	-6.17520632, -0.00221414, 0.00133708, 7.17299218, 0.99317446, 0.99644879, 0.48978341,\
++	-6.17554056, -0.00221269, 0.00133627, 7.17332788, 0.99317913, 0.99645105, 0.48979364,\
++	-6.17587369, -0.00221123, 0.00133546, 7.17366246, 0.99318379, 0.99645331, 0.48980384,\
++	-6.17620571, -0.00220978, 0.00133465, 7.17399593, 0.99318845, 0.99645557, 0.48981400,\
++	-6.17653662, -0.00220833, 0.00133385, 7.17432829, 0.99319310, 0.99645782, 0.48982414,\
++	-6.17686642, -0.00220689, 0.00133304, 7.17465954, 0.99319775, 0.99646007, 0.48983424,\
++	-6.17719513, -0.00220544, 0.00133223, 7.17498969, 0.99320239, 0.99646233, 0.48984431,\
++	-6.17752273, -0.00220400, 0.00133143, 7.17531874, 0.99320702, 0.99646457, 0.48985434,\
++	-6.17784925, -0.00220255, 0.00133063, 7.17564669, 0.99321165, 0.99646682, 0.48986435,\
++	-6.17817467, -0.00220111, 0.00132982, 7.17597356, 0.99321628, 0.99646906, 0.48987432,\
++	-6.17849900, -0.00219967, 0.00132902, 7.17629933, 0.99322089, 0.99647131, 0.48988427,\
++	-6.17882225, -0.00219823, 0.00132822, 7.17662402, 0.99322551, 0.99647355, 0.48989418,\
++	-6.17914442, -0.00219680, 0.00132742, 7.17694762, 0.99323011, 0.99647578, 0.48990406,\
++	-6.17946552, -0.00219536, 0.00132662, 7.17727015, 0.99323471, 0.99647802, 0.48991391,\
++	-6.17978554, -0.00219393, 0.00132582, 7.17759161, 0.99323931, 0.99648025, 0.48992373,\
++	-6.18010448, -0.00219250, 0.00132502, 7.17791199, 0.99324390, 0.99648248, 0.48993351,\
++	-6.18042237, -0.00219107, 0.00132422, 7.17823130, 0.99324848, 0.99648471, 0.48994327,\
++	-6.18073919, -0.00218964, 0.00132342, 7.17854955, 0.99325306, 0.99648694, 0.48995299,\
++	-6.18105494, -0.00218821, 0.00132262, 7.17886673, 0.99325763, 0.99648916, 0.48996269,\
++	-6.18136964, -0.00218679, 0.00132183, 7.17918286, 0.99326220, 0.99649139, 0.48997235,\
++	-6.18168329, -0.00218536, 0.00132103, 7.17949793, 0.99326676, 0.99649361, 0.48998198,\
++	-6.18199589, -0.00218394, 0.00132024, 7.17981195, 0.99327132, 0.99649582, 0.48999158,\
++	-6.18230744, -0.00218252, 0.00131944, 7.18012492, 0.99327587, 0.99649804, 0.49000115,\
++	-6.18261795, -0.00218110, 0.00131865, 7.18043684, 0.99328041, 0.99650025, 0.49001070,\
++	-6.18292741, -0.00217968, 0.00131785, 7.18074773, 0.99328495, 0.99650246, 0.49002020,\
++	-6.18323584, -0.00217827, 0.00131706, 7.18105757, 0.99328949, 0.99650467, 0.49002969,\
++	-6.18354323, -0.00217685, 0.00131627, 7.18136638, 0.99329401, 0.99650688, 0.49003913,\
++	-6.18384960, -0.00217544, 0.00131548, 7.18167416, 0.99329854, 0.99650908, 0.49004855,\
++	-6.18415493, -0.00217403, 0.00131469, 7.18198091, 0.99330305, 0.99651129, 0.49005794,\
++	-6.18445924, -0.00217262, 0.00131390, 7.18228663, 0.99330757, 0.99651349, 0.49006730,\
++	-6.18476253, -0.00217121, 0.00131311, 7.18259133, 0.99331207, 0.99651568, 0.49007664,\
++	-6.18506481, -0.00216980, 0.00131232, 7.18289501, 0.99331657, 0.99651788, 0.49008594,\
++	-6.18536606, -0.00216840, 0.00131153, 7.18319767, 0.99332107, 0.99652007, 0.49009521,\
++	-6.18566631, -0.00216699, 0.00131074, 7.18349932, 0.99332556, 0.99652226, 0.49010445,\
++	-6.18596555, -0.00216559, 0.00130996, 7.18379996, 0.99333004, 0.99652445, 0.49011367,\
++	-6.18626378, -0.00216419, 0.00130917, 7.18409959, 0.99333452, 0.99652664, 0.49012285,\
++	-6.18656101, -0.00216279, 0.00130839, 7.18439822, 0.99333900, 0.99652882, 0.49013200,\
++	-6.18685724, -0.00216139, 0.00130760, 7.18469585, 0.99334346, 0.99653101, 0.49014113,\
++	-6.18715248, -0.00216000, 0.00130682, 7.18499249, 0.99334793, 0.99653319, 0.49015022,\
++	-6.18744673, -0.00215860, 0.00130603, 7.18528812, 0.99335238, 0.99653537, 0.49015929,\
++	-6.18773998, -0.00215721, 0.00130525, 7.18558277, 0.99335684, 0.99653754, 0.49016833,\
++	-6.18803225, -0.00215582, 0.00130447, 7.18587643, 0.99336128, 0.99653972, 0.49017734,\
++	-6.18832353, -0.00215443, 0.00130369, 7.18616911, 0.99336572, 0.99654189, 0.49018632,\
++	-6.18861384, -0.00215304, 0.00130291, 7.18646080, 0.99337016, 0.99654406, 0.49019527,\
++	-6.18890316, -0.00215165, 0.00130213, 7.18675152, 0.99337459, 0.99654622, 0.49020420,\
++	-6.18919152, -0.00215026, 0.00130135, 7.18704125, 0.99337901, 0.99654839, 0.49021309,\
++	-6.18947890, -0.00214888, 0.00130057, 7.18733002, 0.99338343, 0.99655055, 0.49022196,\
++	-6.18976532, -0.00214750, 0.00129979, 7.18761782, 0.99338785, 0.99655271, 0.49023080,\
++	-6.19005077, -0.00214612, 0.00129901, 7.18790465, 0.99339226, 0.99655487, 0.49023961,\
++	-6.19033526, -0.00214474, 0.00129823, 7.18819052, 0.99339666, 0.99655703, 0.49024839,\
++	-6.19061879, -0.00214336, 0.00129746, 7.18847543, 0.99340106, 0.99655918, 0.49025714,\
++	-6.19090136, -0.00214198, 0.00129668, 7.18875938, 0.99340545, 0.99656134, 0.49026588,\
++	-6.19118298, -0.00214061, 0.00129591, 7.18904238, 0.99340984, 0.99656349, 0.49027457,\
++	-6.19146366, -0.00213923, 0.00129513, 7.18932442, 0.99341422, 0.99656563, 0.49028324,\
++	-6.19174338, -0.00213786, 0.00129436, 7.18960552, 0.99341860, 0.99656778, 0.49029189,\
++	-6.19202217, -0.00213649, 0.00129359, 7.18988568, 0.99342297, 0.99656992, 0.49030051,\
++	-6.19230001, -0.00213512, 0.00129281, 7.19016489, 0.99342734, 0.99657207, 0.49030909,\
++	-6.19257691, -0.00213375, 0.00129204, 7.19044316, 0.99343170, 0.99657421, 0.49031766,\
++	-6.19285288, -0.00213239, 0.00129127, 7.19072050, 0.99343606, 0.99657634, 0.49032619,\
++	-6.19312792, -0.00213102, 0.00129050, 7.19099690, 0.99344041, 0.99657848, 0.49033470,\
++	-6.19340203, -0.00212966, 0.00128973, 7.19127237, 0.99344475, 0.99658061, 0.49034317,\
++	-6.19367521, -0.00212830, 0.00128896, 7.19154692, 0.99344909, 0.99658274, 0.49035163,\
++	-6.19394748, -0.00212694, 0.00128819, 7.19182054, 0.99345343, 0.99658487, 0.49036006,\
++	-6.19421882, -0.00212558, 0.00128743, 7.19209324, 0.99345776, 0.99658700, 0.49036845,\
++	-6.19448924, -0.00212422, 0.00128666, 7.19236502, 0.99346208, 0.99658912, 0.49037683,\
++	-6.19475875, -0.00212286, 0.00128589, 7.19263589, 0.99346640, 0.99659124, 0.49038517,\
++	-6.19502735, -0.00212151, 0.00128513, 7.19290584, 0.99347072, 0.99659336, 0.49039349,\
++	-6.19529504, -0.00212016, 0.00128436, 7.19317489, 0.99347503, 0.99659548, 0.49040178,\
++	-6.19556183, -0.00211880, 0.00128360, 7.19344302, 0.99347933, 0.99659760, 0.49041005,\
++	-6.19582771, -0.00211745, 0.00128283, 7.19371026, 0.99348363, 0.99659971, 0.49041829,\
++	-6.19609270, -0.00211611, 0.00128207, 7.19397659, 0.99348792, 0.99660182, 0.49042650,\
++	-6.19635678, -0.00211476, 0.00128131, 7.19424203, 0.99349221, 0.99660393, 0.49043469,\
++	-6.19661998, -0.00211341, 0.00128054, 7.19450656, 0.99349650, 0.99660604, 0.49044285,\
++	-6.19688228, -0.00211207, 0.00127978, 7.19477021, 0.99350077, 0.99660815, 0.49045099,\
++	-6.19714369, -0.00211073, 0.00127902, 7.19503297, 0.99350505, 0.99661025, 0.49045909,\
++	-6.19740422, -0.00210938, 0.00127826, 7.19529484, 0.99350932, 0.99661235, 0.49046717,\
++	-6.19766387, -0.00210804, 0.00127750, 7.19555583, 0.99351358, 0.99661445, 0.49047523,\
++	-6.19792264, -0.00210671, 0.00127674, 7.19581593, 0.99351784, 0.99661655, 0.49048326,\
++	-6.19818053, -0.00210537, 0.00127599, 7.19607516, 0.99352209, 0.99661864, 0.49049127,\
++	-6.19843754, -0.00210403, 0.00127523, 7.19633351, 0.99352634, 0.99662074, 0.49049925,\
++	-6.19869369, -0.00210270, 0.00127447, 7.19659099, 0.99353058, 0.99662283, 0.49050720,\
++	-6.19894896, -0.00210137, 0.00127372, 7.19684760, 0.99353482, 0.99662492, 0.49051513,\
++	-6.19920337, -0.00210004, 0.00127296, 7.19710334, 0.99353905, 0.99662700, 0.49052303,\
++	-6.19945692, -0.00209871, 0.00127221, 7.19735822, 0.99354328, 0.99662909, 0.49053091,\
++	-6.19970961, -0.00209738, 0.00127145, 7.19761223, 0.99354750, 0.99663117, 0.49053876,\
++	-6.19996144, -0.00209605, 0.00127070, 7.19786539, 0.99355172, 0.99663325, 0.49054659,\
++	-6.20021242, -0.00209473, 0.00126995, 7.19811769, 0.99355593, 0.99663533, 0.49055439,\
++	-6.20046254, -0.00209340, 0.00126919, 7.19836914, 0.99356014, 0.99663741, 0.49056217,\
++	-6.20071181, -0.00209208, 0.00126844, 7.19861973, 0.99356434, 0.99663948, 0.49056992,\
++	-6.20096024, -0.00209076, 0.00126769, 7.19886948, 0.99356854, 0.99664155, 0.49057765,\
++	-6.20120782, -0.00208944, 0.00126694, 7.19911839, 0.99357273, 0.99664362, 0.49058536,\
++	-6.20145457, -0.00208812, 0.00126619, 7.19936645, 0.99357692, 0.99664569, 0.49059304,\
++	-6.20170047, -0.00208680, 0.00126544, 7.19961367, 0.99358110, 0.99664776, 0.49060069,\
++	-6.20194554, -0.00208549, 0.00126469, 7.19986005, 0.99358528, 0.99664982, 0.49060832,\
++	-6.20218978, -0.00208417, 0.00126395, 7.20010560, 0.99358945, 0.99665188, 0.49061593,\
++	-6.20243318, -0.00208286, 0.00126320, 7.20035032, 0.99359362, 0.99665394, 0.49062351,\
++	-6.20267576, -0.00208155, 0.00126245, 7.20059421, 0.99359778, 0.99665600, 0.49063106,\
++	-6.20291751, -0.00208024, 0.00126171, 7.20083727, 0.99360194, 0.99665805, 0.49063859,\
++	-6.20315844, -0.00207893, 0.00126096, 7.20107951, 0.99360609, 0.99666011, 0.49064611,\
++	-6.20339855, -0.00207762, 0.00126022, 7.20132093, 0.99361024, 0.99666216, 0.49065358,\
++	-6.20363785, -0.00207632, 0.00125947, 7.20156153, 0.99361438, 0.99666421, 0.49066104,\
++	-6.20387633, -0.00207501, 0.00125873, 7.20180131, 0.99361852, 0.99666626, 0.49066848,\
++	-6.20411399, -0.00207371, 0.00125799, 7.20204028, 0.99362265, 0.99666830, 0.49067589,\
++	-6.20435085, -0.00207241, 0.00125725, 7.20227844, 0.99362678, 0.99667034, 0.49068328,\
++	-6.20458690, -0.00207111, 0.00125650, 7.20251579, 0.99363090, 0.99667238, 0.49069064,\
++	-6.20482215, -0.00206981, 0.00125576, 7.20275234, 0.99363502, 0.99667442, 0.49069799,\
++	-6.20505660, -0.00206852, 0.00125502, 7.20298808, 0.99363914, 0.99667646, 0.49070530,\
++	-6.20529024, -0.00206722, 0.00125428, 7.20322302, 0.99364325, 0.99667850, 0.49071260,\
++	-6.20552310, -0.00206593, 0.00125355, 7.20345717, 0.99364735, 0.99668053, 0.49071987,\
++	-6.20575515, -0.00206463, 0.00125281, 7.20369052, 0.99365145, 0.99668256, 0.49072711,\
++	-6.20598642, -0.00206334, 0.00125207, 7.20392308, 0.99365554, 0.99668459, 0.49073434,\
++	-6.20621690, -0.00206205, 0.00125133, 7.20415485, 0.99365963, 0.99668662, 0.49074154,\
++	-6.20644659, -0.00206076, 0.00125060, 7.20438583, 0.99366372, 0.99668864, 0.49074872,\
++	-6.20667550, -0.00205947, 0.00124986, 7.20461602, 0.99366780, 0.99669066, 0.49075587,\
++	-6.20690362, -0.00205819, 0.00124913, 7.20484543, 0.99367187, 0.99669268, 0.49076300,\
++	-6.20713097, -0.00205690, 0.00124839, 7.20507407, 0.99367594, 0.99669470, 0.49077011,\
++	-6.20735754, -0.00205562, 0.00124766, 7.20530192, 0.99368001, 0.99669672, 0.49077720,\
++	-6.20758334, -0.00205434, 0.00124693, 7.20552900, 0.99368407, 0.99669873, 0.49078426,\
++	-6.20780837, -0.00205306, 0.00124619, 7.20575531, 0.99368812, 0.99670075, 0.49079130,\
++	-6.20803263, -0.00205178, 0.00124546, 7.20598085, 0.99369217, 0.99670276, 0.49079832,\
++	-6.20825612, -0.00205050, 0.00124473, 7.20620562, 0.99369622, 0.99670477, 0.49080531,\
++	-6.20847885, -0.00204923, 0.00124400, 7.20642963, 0.99370026, 0.99670677, 0.49081228,\
++	-6.20870082, -0.00204795, 0.00124327, 7.20665287, 0.99370430, 0.99670878, 0.49081924,\
++	-6.20892203, -0.00204668, 0.00124254, 7.20687536, 0.99370833, 0.99671078, 0.49082617,\
++	-6.20914249, -0.00204540, 0.00124181, 7.20709708, 0.99371236, 0.99671278, 0.49083307,\
++	-6.20936219, -0.00204413, 0.00124109, 7.20731805, 0.99371638, 0.99671478, 0.49083996,\
++	-6.20958114, -0.00204286, 0.00124036, 7.20753827, 0.99372040, 0.99671678, 0.49084681,\
++	-6.20979934, -0.00204160, 0.00123963, 7.20775774, 0.99372441, 0.99671877, 0.49085365,\
++	-6.21001679, -0.00204033, 0.00123891, 7.20797646, 0.99372842, 0.99672076, 0.49086047,\
++	-6.21023350, -0.00203906, 0.00123818, 7.20819444, 0.99373242, 0.99672275, 0.49086727,\
++	-6.21044947, -0.00203780, 0.00123746, 7.20841167, 0.99373642, 0.99672474, 0.49087404,\
++	-6.21066470, -0.00203654, 0.00123673, 7.20862816, 0.99374042, 0.99672673, 0.49088079,\
++	-6.21087920, -0.00203528, 0.00123601, 7.20884392, 0.99374441, 0.99672871, 0.49088752,\
++	-6.21109295, -0.00203402, 0.00123529, 7.20905894, 0.99374839, 0.99673070, 0.49089423,\
++	-6.21130598, -0.00203276, 0.00123456, 7.20927322, 0.99375237, 0.99673268, 0.49090092,\
++	-6.21151828, -0.00203150, 0.00123384, 7.20948678, 0.99375635, 0.99673466, 0.49090759,\
++	-6.21172985, -0.00203024, 0.00123312, 7.20969960, 0.99376032, 0.99673663, 0.49091423,\
++	-6.21194069, -0.00202899, 0.00123240, 7.20991170, 0.99376428, 0.99673861, 0.49092085,\
++	-6.21215082, -0.00202774, 0.00123168, 7.21012308, 0.99376825, 0.99674058, 0.49092745,\
++	-6.21236022, -0.00202648, 0.00123096, 7.21033373, 0.99377220, 0.99674255, 0.49093403,\
++	-6.21256890, -0.00202523, 0.00123025, 7.21054367, 0.99377616, 0.99674452, 0.49094059,\
++	-6.21277687, -0.00202398, 0.00122953, 7.21075289, 0.99378010, 0.99674649, 0.49094712,\
++	-6.21298413, -0.00202274, 0.00122881, 7.21096139, 0.99378405, 0.99674845, 0.49095364,\
++	-6.21319067, -0.00202149, 0.00122809, 7.21116918, 0.99378798, 0.99675042, 0.49096013,\
++	-6.21339651, -0.00202025, 0.00122738, 7.21137627, 0.99379192, 0.99675238, 0.49096661,\
++	-6.21360164, -0.00201900, 0.00122666, 7.21158264, 0.99379585, 0.99675434, 0.49097306,\
++	-6.21380607, -0.00201776, 0.00122595, 7.21178831, 0.99379977, 0.99675629, 0.49097950,\
++	-6.21400979, -0.00201652, 0.00122523, 7.21199328, 0.99380369, 0.99675825, 0.49098591,\
++	-6.21421282, -0.00201528, 0.00122452, 7.21219754, 0.99380761, 0.99676020, 0.49099230,\
++	-6.21441515, -0.00201404, 0.00122381, 7.21240111, 0.99381152, 0.99676215, 0.49099867,\
++	-6.21461678, -0.00201280, 0.00122310, 7.21260398, 0.99381543, 0.99676410, 0.49100502,\
++	-6.21481773, -0.00201157, 0.00122239, 7.21280616, 0.99381933, 0.99676605, 0.49101135,\
++	-6.21501798, -0.00201033, 0.00122167, 7.21300765, 0.99382323, 0.99676799, 0.49101767,\
++	-6.21521754, -0.00200910, 0.00122096, 7.21320844, 0.99382712, 0.99676994, 0.49102395,\
++	-6.21541642, -0.00200787, 0.00122026, 7.21340855, 0.99383101, 0.99677188, 0.49103022,\
++	-6.21561461, -0.00200664, 0.00121955, 7.21360798, 0.99383489, 0.99677382, 0.49103647,\
++	-6.21581213, -0.00200541, 0.00121884, 7.21380672, 0.99383877, 0.99677575, 0.49104269,\
++	-6.21600896, -0.00200418, 0.00121813, 7.21400478, 0.99384265, 0.99677769, 0.49104891,\
++	-6.21620512, -0.00200295, 0.00121742, 7.21420217, 0.99384652, 0.99677962, 0.49105509,\
++	-6.21640060, -0.00200173, 0.00121672, 7.21439887, 0.99385038, 0.99678156, 0.49106126,\
++	-6.21659541, -0.00200050, 0.00121601, 7.21459491, 0.99385424, 0.99678349, 0.49106741,\
++	-6.21678955, -0.00199928, 0.00121531, 7.21479027, 0.99385810, 0.99678541, 0.49107353,\
++	-6.21698302, -0.00199806, 0.00121460, 7.21498497, 0.99386195, 0.99678734, 0.49107964,\
++	-6.21717583, -0.00199684, 0.00121390, 7.21517899, 0.99386580, 0.99678926, 0.49108574,\
++	-6.21736797, -0.00199562, 0.00121320, 7.21537235, 0.99386965, 0.99679119, 0.49109180,\
++	-6.21755945, -0.00199440, 0.00121249, 7.21556505, 0.99387349, 0.99679311, 0.49109786,\
++	-6.21775028, -0.00199319, 0.00121179, 7.21575709, 0.99387732, 0.99679502, 0.49110388,\
++	-6.21794044, -0.00199197, 0.00121109, 7.21594847, 0.99388115, 0.99679694, 0.49110989,\
++	-6.21812995, -0.00199076, 0.00121039, 7.21613919, 0.99388498, 0.99679885, 0.49111588,\
++	-6.21831881, -0.00198955, 0.00120969, 7.21632926, 0.99388880, 0.99680077, 0.49112186,\
++	-6.21850702, -0.00198833, 0.00120899, 7.21651868, 0.99389261, 0.99680268, 0.49112781,\
++	-6.21869457, -0.00198712, 0.00120829, 7.21670745, 0.99389643, 0.99680459, 0.49113374,\
++	-6.21888149, -0.00198592, 0.00120759, 7.21689557, 0.99390024, 0.99680649, 0.49113965,\
++	-6.21906775, -0.00198471, 0.00120689, 7.21708304, 0.99390404, 0.99680840, 0.49114555,\
++	-6.21925338, -0.00198350, 0.00120620, 7.21726987, 0.99390784, 0.99681030, 0.49115142,\
++	-6.21943836, -0.00198230, 0.00120550, 7.21745606, 0.99391163, 0.99681220, 0.49115728,\
++	-6.21962271, -0.00198110, 0.00120481, 7.21764161, 0.99391542, 0.99681410, 0.49116312,\
++	-6.21980642, -0.00197989, 0.00120411, 7.21782653, 0.99391921, 0.99681600, 0.49116895,\
++	-6.21998950, -0.00197869, 0.00120342, 7.21801081, 0.99392299, 0.99681789, 0.49117474,\
++	-6.22017194, -0.00197749, 0.00120272, 7.21819445, 0.99392677, 0.99681979, 0.49118052,\
++	-6.22035376, -0.00197630, 0.00120203, 7.21837746, 0.99393054, 0.99682168, 0.49118629,\
++	-6.22053495, -0.00197510, 0.00120134, 7.21855985, 0.99393431, 0.99682357, 0.49119203,\
++	-6.22071551, -0.00197390, 0.00120064, 7.21874161, 0.99393808, 0.99682545, 0.49119776,\
++	-6.22089545, -0.00197271, 0.00119995, 7.21892274, 0.99394184, 0.99682734, 0.49120347,\
++	-6.22107477, -0.00197152, 0.00119926, 7.21910325, 0.99394559, 0.99682922, 0.49120916,\
++	-6.22125347, -0.00197032, 0.00119857, 7.21928314, 0.99394935, 0.99683111, 0.49121482,\
++	-6.22143155, -0.00196913, 0.00119788, 7.21946242, 0.99395309, 0.99683299, 0.49122047,\
++	-6.22160902, -0.00196794, 0.00119719, 7.21964107, 0.99395684, 0.99683486, 0.49122611,\
++	-6.22178587, -0.00196676, 0.00119650, 7.21981911, 0.99396058, 0.99683674, 0.49123173,\
++	-6.22196211, -0.00196557, 0.00119582, 7.21999654, 0.99396431, 0.99683861, 0.49123732,\
++	-6.22213774, -0.00196438, 0.00119513, 7.22017336, 0.99396804, 0.99684049, 0.49124290,\
++	-6.22231277, -0.00196320, 0.00119444, 7.22034957, 0.99397177, 0.99684236, 0.49124846,\
++	-6.22248719, -0.00196202, 0.00119376, 7.22052517, 0.99397549, 0.99684423, 0.49125400,\
++	-6.22266101, -0.00196083, 0.00119307, 7.22070017, 0.99397920, 0.99684609, 0.49125953,\
++	-6.22283422, -0.00195965, 0.00119239, 7.22087457, 0.99398292, 0.99684796, 0.49126504,\
++	-6.22300684, -0.00195848, 0.00119170, 7.22104836, 0.99398663, 0.99684982, 0.49127053,\
++	-6.22317886, -0.00195730, 0.00119102, 7.22122156, 0.99399033, 0.99685168, 0.49127600,\
++	-6.22335028, -0.00195612, 0.00119034, 7.22139416, 0.99399403, 0.99685354, 0.49128145,\
++	-6.22352111, -0.00195495, 0.00118965, 7.22156617, 0.99399773, 0.99685540, 0.49128689,\
++	-6.22369135, -0.00195377, 0.00118897, 7.22173758, 0.99400142, 0.99685726, 0.49129231,\
++	-6.22386100, -0.00195260, 0.00118829, 7.22190841, 0.99400511, 0.99685911, 0.49129771,\
++	-6.22403007, -0.00195143, 0.00118761, 7.22207864, 0.99400879, 0.99686096, 0.49130310,\
++	-6.22419854, -0.00195026, 0.00118693, 7.22224829, 0.99401247, 0.99686281, 0.49130846,\
++	-6.22436644, -0.00194909, 0.00118625, 7.22241735, 0.99401615, 0.99686466, 0.49131381,\
++	-6.22453375, -0.00194792, 0.00118557, 7.22258583, 0.99401982, 0.99686651, 0.49131914,\
++	-6.22470048, -0.00194675, 0.00118490, 7.22275373, 0.99402348, 0.99686835, 0.49132446,\
++	-6.22486664, -0.00194559, 0.00118422, 7.22292105, 0.99402715, 0.99687019, 0.49132975,\
++	-6.22503222, -0.00194442, 0.00118354, 7.22308780, 0.99403081, 0.99687204, 0.49133503,\
++	-6.22519722, -0.00194326, 0.00118287, 7.22325396, 0.99403446, 0.99687387, 0.49134030,\
++	-6.22536166, -0.00194210, 0.00118219, 7.22341956, 0.99403811, 0.99687571, 0.49134554,\
++	-6.22552552, -0.00194094, 0.00118152, 7.22358458, 0.99404176, 0.99687755, 0.49135077,\
++	-6.22568881, -0.00193978, 0.00118084, 7.22374904, 0.99404540, 0.99687938, 0.49135598,\
++	-6.22585154, -0.00193862, 0.00118017, 7.22391292, 0.99404904, 0.99688121, 0.49136117,\
++	-6.22601370, -0.00193746, 0.00117950, 7.22407624, 0.99405267, 0.99688304, 0.49136635,\
++	-6.22617531, -0.00193631, 0.00117882, 7.22423900, 0.99405630, 0.99688487, 0.49137152,\
++	-6.22633635, -0.00193515, 0.00117815, 7.22440119, 0.99405992, 0.99688670, 0.49137666,\
++	-6.22649683, -0.00193400, 0.00117748, 7.22456283, 0.99406354, 0.99688852, 0.49138179,\
++	-6.22665675, -0.00193285, 0.00117681, 7.22472390, 0.99406716, 0.99689034, 0.49138690,\
++	-6.22681612, -0.00193170, 0.00117614, 7.22488442, 0.99407077, 0.99689216, 0.49139199,\
++	-6.22697494, -0.00193055, 0.00117547, 7.22504439, 0.99407438, 0.99689398, 0.49139707,\
++	-6.22713320, -0.00192940, 0.00117480, 7.22520380, 0.99407799, 0.99689580, 0.49140214,\
++	-6.22729092, -0.00192825, 0.00117413, 7.22536266, 0.99408159, 0.99689762, 0.49140718,\
++	-6.22744808, -0.00192711, 0.00117346, 7.22552098, 0.99408519, 0.99689943, 0.49141221,\
++	-6.22760470, -0.00192596, 0.00117280, 7.22567874, 0.99408878, 0.99690124, 0.49141723,\
++	-6.22776078, -0.00192482, 0.00117213, 7.22583596, 0.99409237, 0.99690305, 0.49142222,\
++	-6.22791631, -0.00192368, 0.00117147, 7.22599264, 0.99409595, 0.99690486, 0.49142719,\
++	-6.22807131, -0.00192253, 0.00117080, 7.22614877, 0.99409953, 0.99690667, 0.49143216,\
++	-6.22822576, -0.00192139, 0.00117014, 7.22630437, 0.99410311, 0.99690847, 0.49143711,\
++	-6.22837968, -0.00192026, 0.00116947, 7.22645942, 0.99410668, 0.99691027, 0.49144204,\
++	-6.22853306, -0.00191912, 0.00116881, 7.22661394, 0.99411025, 0.99691207, 0.49144696,\
++	-6.22868591, -0.00191798, 0.00116815, 7.22676793, 0.99411381, 0.99691387, 0.49145186,\
++	-6.22883823, -0.00191685, 0.00116748, 7.22692138, 0.99411737, 0.99691567, 0.49145674,\
++	-6.22899002, -0.00191571, 0.00116682, 7.22707430, 0.99412093, 0.99691747, 0.49146161,\
++	-6.22914128, -0.00191458, 0.00116616, 7.22722670, 0.99412448, 0.99691926, 0.49146647,\
++	-6.22929201, -0.00191345, 0.00116550, 7.22737856, 0.99412803, 0.99692105, 0.49147130,\
++	-6.22944222, -0.00191232, 0.00116484, 7.22752990, 0.99413157, 0.99692284, 0.49147613,\
++	-6.22959190, -0.00191119, 0.00116418, 7.22768071, 0.99413511, 0.99692463, 0.49148093,\
++	-6.22974107, -0.00191006, 0.00116352, 7.22783101, 0.99413865, 0.99692642, 0.49148571,\
++	-6.22988971, -0.00190893, 0.00116286, 7.22798078, 0.99414218, 0.99692820, 0.49149049,\
++	-6.23003784, -0.00190781, 0.00116221, 7.22813003, 0.99414571, 0.99692998, 0.49149525,\
++	-6.23018545, -0.00190669, 0.00116155, 7.22827877, 0.99414924, 0.99693176, 0.49149999,\
++	-6.23033255, -0.00190556, 0.00116089, 7.22842699, 0.99415276, 0.99693354, 0.49150472,\
++	-6.23047913, -0.00190444, 0.00116024, 7.22857469, 0.99415627, 0.99693532, 0.49150944,\
++	-6.23062521, -0.00190332, 0.00115958, 7.22872189, 0.99415978, 0.99693710, 0.49151413,\
++	-6.23077077, -0.00190220, 0.00115893, 7.22886857, 0.99416329, 0.99693887, 0.49151881,\
++	-6.23091583, -0.00190108, 0.00115828, 7.22901475, 0.99416680, 0.99694064, 0.49152348,\
++	-6.23106038, -0.00189996, 0.00115762, 7.22916042, 0.99417030, 0.99694241, 0.49152813,\
++	-6.23120443, -0.00189885, 0.00115697, 7.22930558, 0.99417379, 0.99694418, 0.49153277,\
++	-6.23134798, -0.00189773, 0.00115632, 7.22945024, 0.99417729, 0.99694595, 0.49153739,\
++	-6.23149102, -0.00189662, 0.00115567, 7.22959440, 0.99418078, 0.99694772, 0.49154200,\
++	-6.23163357, -0.00189551, 0.00115501, 7.22973806, 0.99418426, 0.99694948, 0.49154659,\
++	-6.23177562, -0.00189439, 0.00115436, 7.22988122, 0.99418774, 0.99695124, 0.49155116,\
++	-6.23191717, -0.00189328, 0.00115371, 7.23002389, 0.99419122, 0.99695300, 0.49155572,\
++	-6.23205823, -0.00189218, 0.00115307, 7.23016606, 0.99419469, 0.99695476, 0.49156028,\
++	-6.23219880, -0.00189107, 0.00115242, 7.23030773, 0.99419816, 0.99695652, 0.49156481,\
++	-6.23233888, -0.00188996, 0.00115177, 7.23044891, 0.99420163, 0.99695827, 0.49156932,\
++	-6.23247846, -0.00188886, 0.00115112, 7.23058961, 0.99420509, 0.99696002, 0.49157383,\
++	-6.23261756, -0.00188775, 0.00115047, 7.23072981, 0.99420855, 0.99696177, 0.49157832,\
++	-6.23275618, -0.00188665, 0.00114983, 7.23086953, 0.99421200, 0.99696352, 0.49158279,\
++	-6.23289431, -0.00188555, 0.00114918, 7.23100876, 0.99421545, 0.99696527, 0.49158725,\
++	-6.23303196, -0.00188444, 0.00114854, 7.23114751, 0.99421890, 0.99696702, 0.49159170,\
++	-6.23316912, -0.00188334, 0.00114789, 7.23128578, 0.99422234, 0.99696876, 0.49159612,\
++	-6.23330581, -0.00188225, 0.00114725, 7.23142357, 0.99422578, 0.99697050, 0.49160053,\
++	-6.23344202, -0.00188115, 0.00114661, 7.23156087, 0.99422921, 0.99697225, 0.49160494,\
++	-6.23357776, -0.00188005, 0.00114596, 7.23169771, 0.99423264, 0.99697398, 0.49160932,\
++	-6.23371302, -0.00187896, 0.00114532, 7.23183406, 0.99423607, 0.99697572, 0.49161370,\
++	-6.23384781, -0.00187786, 0.00114468, 7.23196994, 0.99423949, 0.99697746, 0.49161806,\
++	-6.23398212, -0.00187677, 0.00114404, 7.23210535, 0.99424291, 0.99697919, 0.49162241,\
++	-6.23411597, -0.00187568, 0.00114340, 7.23224029, 0.99424633, 0.99698092, 0.49162674,\
++	-6.23424935, -0.00187459, 0.00114276, 7.23237476, 0.99424974, 0.99698265, 0.49163105,\
++	-6.23438226, -0.00187350, 0.00114212, 7.23250876, 0.99425315, 0.99698438, 0.49163535,\
++	-6.23451471, -0.00187241, 0.00114148, 7.23264230, 0.99425655, 0.99698611, 0.49163964,\
++	-6.23464669, -0.00187132, 0.00114084, 7.23277537, 0.99425995, 0.99698783, 0.49164392,\
++	-6.23477821, -0.00187024, 0.00114021, 7.23290797, 0.99426335, 0.99698956, 0.49164818,\
++	-6.23490927, -0.00186915, 0.00113957, 7.23304012, 0.99426674, 0.99699128, 0.49165242,\
++	-6.23503988, -0.00186807, 0.00113893, 7.23317181, 0.99427013, 0.99699300, 0.49165666,\
++	-6.23517002, -0.00186698, 0.00113830, 7.23330304, 0.99427352, 0.99699472, 0.49166087,\
++	-6.23529971, -0.00186590, 0.00113766, 7.23343381, 0.99427690, 0.99699644, 0.49166508,\
++	-6.23542895, -0.00186482, 0.00113703, 7.23356413, 0.99428028, 0.99699815, 0.49166927,\
++	-6.23555773, -0.00186374, 0.00113639, 7.23369399, 0.99428365, 0.99699986, 0.49167345,\
++	-6.23568606, -0.00186267, 0.00113576, 7.23382340, 0.99428702, 0.99700157, 0.49167762,\
++	-6.23581395, -0.00186159, 0.00113513, 7.23395236, 0.99429039, 0.99700328, 0.49168176,\
++	-6.23594138, -0.00186051, 0.00113449, 7.23408087, 0.99429375, 0.99700499, 0.49168591,\
++	-6.23606837, -0.00185944, 0.00113386, 7.23420893, 0.99429711, 0.99700670, 0.49169003,\
++	-6.23619491, -0.00185836, 0.00113323, 7.23433655, 0.99430047, 0.99700840, 0.49169415,\
++	-6.23632102, -0.00185729, 0.00113260, 7.23446372, 0.99430382, 0.99701011, 0.49169823,\
++	-6.23644667, -0.00185622, 0.00113197, 7.23459045, 0.99430717, 0.99701181, 0.49170232,\
++	-6.23657189, -0.00185515, 0.00113134, 7.23471674, 0.99431051, 0.99701351, 0.49170640,\
++	-6.23669667, -0.00185408, 0.00113071, 7.23484259, 0.99431385, 0.99701521, 0.49171044,\
++	-6.23682101, -0.00185301, 0.00113009, 7.23496800, 0.99431719, 0.99701690, 0.49171449,\
++	-6.23694492, -0.00185195, 0.00112946, 7.23509297, 0.99432052, 0.99701860, 0.49171853,\
++	-6.23706839, -0.00185088, 0.00112883, 7.23521751, 0.99432385, 0.99702029, 0.49172254,\
++	-6.23719143, -0.00184981, 0.00112820, 7.23534161, 0.99432718, 0.99702198, 0.49172655,\
++	-6.23731403, -0.00184875, 0.00112758, 7.23546528, 0.99433050, 0.99702367, 0.49173054,\
++	-6.23743621, -0.00184769, 0.00112695, 7.23558852, 0.99433382, 0.99702536, 0.49173452,\
++	-6.23755795, -0.00184663, 0.00112633, 7.23571133, 0.99433713, 0.99702705, 0.49173848,\
++	-6.23767927, -0.00184557, 0.00112570, 7.23583371, 0.99434044, 0.99702873, 0.49174243,\
++	-6.23780017, -0.00184451, 0.00112508, 7.23595566, 0.99434375, 0.99703041, 0.49174639,\
++	-6.23792064, -0.00184345, 0.00112446, 7.23607719, 0.99434706, 0.99703209, 0.49175031,\
++	-6.23804068, -0.00184239, 0.00112383, 7.23619829, 0.99435036, 0.99703377, 0.49175422,\
++	-6.23816031, -0.00184134, 0.00112321, 7.23631897, 0.99435365, 0.99703545, 0.49175813,\
++	-6.23827952, -0.00184028, 0.00112259, 7.23643923, 0.99435695, 0.99703713, 0.49176201,\
++	-6.23839830, -0.00183923, 0.00112197, 7.23655907, 0.99436024, 0.99703880, 0.49176589,\
++	-6.23851667, -0.00183817, 0.00112135, 7.23667850, 0.99436352, 0.99704048, 0.49176975,\
++	-6.23863462, -0.00183712, 0.00112073, 7.23679750, 0.99436680, 0.99704215, 0.49177361,\
++	-6.23875216, -0.00183607, 0.00112011, 7.23691609, 0.99437008, 0.99704382, 0.49177744,\
++	-6.23886929, -0.00183502, 0.00111949, 7.23703427, 0.99437336, 0.99704548, 0.49178127,\
++	-6.23898600, -0.00183398, 0.00111887, 7.23715203, 0.99437663, 0.99704715, 0.49178508,\
++	-6.23910231, -0.00183293, 0.00111826, 7.23726938, 0.99437990, 0.99704881, 0.49178889,\
++	-6.23921820, -0.00183188, 0.00111764, 7.23738632, 0.99438316, 0.99705048, 0.49179268,\
++	-6.23933369, -0.00183084, 0.00111702, 7.23750286, 0.99438642, 0.99705214, 0.49179645,\
++	-6.23944877, -0.00182979, 0.00111641, 7.23761898, 0.99438968, 0.99705380, 0.49180022,\
++	-6.23956345, -0.00182875, 0.00111579, 7.23773470, 0.99439293, 0.99705546, 0.49180397,\
++	-6.23967773, -0.00182771, 0.00111518, 7.23785002, 0.99439618, 0.99705711, 0.49180771,\
++	-6.23979160, -0.00182667, 0.00111456, 7.23796493, 0.99439943, 0.99705877, 0.49181144,\
++	-6.23990507, -0.00182563, 0.00111395, 7.23807944, 0.99440267, 0.99706042, 0.49181516,\
++	-6.24001814, -0.00182459, 0.00111334, 7.23819355, 0.99440591, 0.99706207, 0.49181886,\
++	-6.24013082, -0.00182355, 0.00111273, 7.23830726, 0.99440915, 0.99706372, 0.49182255,\
++	-6.24024309, -0.00182251, 0.00111211, 7.23842058, 0.99441238, 0.99706537, 0.49182623,\
++	-6.24035498, -0.00182148, 0.00111150, 7.23853350, 0.99441561, 0.99706702, 0.49182990,\
++	-6.24046647, -0.00182045, 0.00111089, 7.23864602, 0.99441884, 0.99706866, 0.49183355,\
++	-6.24057756, -0.00181941, 0.00111028, 7.23875815, 0.99442206, 0.99707031, 0.49183719,\
++	-6.24068827, -0.00181838, 0.00110967, 7.23886989, 0.99442528, 0.99707195, 0.49184083,\
++	-6.24079858, -0.00181735, 0.00110906, 7.23898123, 0.99442849, 0.99707359, 0.49184446,\
++	-6.24090851, -0.00181632, 0.00110846, 7.23909219, 0.99443170, 0.99707523, 0.49184806,\
++	-6.24101805, -0.00181529, 0.00110785, 7.23920276, 0.99443491, 0.99707686, 0.49185165,\
++	-6.24112720, -0.00181426, 0.00110724, 7.23931294, 0.99443812, 0.99707850, 0.49185524,\
++	-6.24123597, -0.00181324, 0.00110663, 7.23942274, 0.99444132, 0.99708013, 0.49185881,\
++	-6.24134436, -0.00181221, 0.00110603, 7.23953215, 0.99444451, 0.99708176, 0.49186237,\
++	-6.24145237, -0.00181118, 0.00110542, 7.23964118, 0.99444771, 0.99708339, 0.49186593,\
++	-6.24155999, -0.00181016, 0.00110482, 7.23974983, 0.99445090, 0.99708502, 0.49186947,\
++	-6.24166723, -0.00180914, 0.00110421, 7.23985810, 0.99445408, 0.99708665, 0.49187299,\
++	-6.24177410, -0.00180812, 0.00110361, 7.23996598, 0.99445727, 0.99708828, 0.49187651,\
++	-6.24188059, -0.00180710, 0.00110300, 7.24007349, 0.99446045, 0.99708990, 0.49188001,\
++	-6.24198671, -0.00180608, 0.00110240, 7.24018063, 0.99446363, 0.99709152, 0.49188351,\
++	-6.24209245, -0.00180506, 0.00110180, 7.24028739, 0.99446680, 0.99709314, 0.49188699,\
++	-6.24219781, -0.00180404, 0.00110120, 7.24039377, 0.99446997, 0.99709476, 0.49189046,\
++	-6.24230281, -0.00180302, 0.00110060, 7.24049978, 0.99447313, 0.99709638, 0.49189392,\
++	-6.24240743, -0.00180201, 0.00110000, 7.24060543, 0.99447630, 0.99709800, 0.49189737,\
++	-6.24251169, -0.00180100, 0.00109940, 7.24071070, 0.99447946, 0.99709961, 0.49190081,\
++	-6.24261558, -0.00179998, 0.00109880, 7.24081560, 0.99448261, 0.99710122, 0.49190424,\
++	-6.24271910, -0.00179897, 0.00109820, 7.24092013, 0.99448577, 0.99710283, 0.49190765,\
++	-6.24282226, -0.00179796, 0.00109760, 7.24102430, 0.99448891, 0.99710444, 0.49191105,\
++	-6.24292505, -0.00179695, 0.00109700, 7.24112810, 0.99449206, 0.99710605, 0.49191444,\
++	-6.24302748, -0.00179594, 0.00109640, 7.24123154, 0.99449520, 0.99710766, 0.49191782,\
++	-6.24312955, -0.00179493, 0.00109581, 7.24133462, 0.99449834, 0.99710926, 0.49192119,\
++	-6.24323126, -0.00179392, 0.00109521, 7.24143733, 0.99450148, 0.99711087, 0.49192455,\
++	-6.24333261, -0.00179292, 0.00109461, 7.24153969, 0.99450461, 0.99711247, 0.49192789,\
++	-6.24343360, -0.00179191, 0.00109402, 7.24164168, 0.99450774, 0.99711407, 0.49193123,\
++	-6.24353423, -0.00179091, 0.00109342, 7.24174332, 0.99451086, 0.99711567, 0.49193456,\
++	-6.24363451, -0.00178991, 0.00109283, 7.24184460, 0.99451399, 0.99711726, 0.49193787,\
++	-6.24373444, -0.00178891, 0.00109224, 7.24194553, 0.99451711, 0.99711886, 0.49194119,\
++	-6.24383401, -0.00178790, 0.00109164, 7.24204610, 0.99452022, 0.99712045, 0.49194448,\
++	-6.24393323, -0.00178690, 0.00109105, 7.24214632, 0.99452333, 0.99712204, 0.49194776,\
++	-6.24403210, -0.00178591, 0.00109046, 7.24224619, 0.99452644, 0.99712364, 0.49195103,\
++	-6.24413062, -0.00178491, 0.00108987, 7.24234571, 0.99452955, 0.99712522, 0.49195429,\
++	-6.24422879, -0.00178391, 0.00108928, 7.24244488, 0.99453265, 0.99712681, 0.49195755,\
++	-6.24432661, -0.00178292, 0.00108869, 7.24254370, 0.99453575, 0.99712840, 0.49196079,\
++	-6.24442409, -0.00178192, 0.00108810, 7.24264217, 0.99453884, 0.99712998, 0.49196402,\
++	-6.24452123, -0.00178093, 0.00108751, 7.24274030, 0.99454194, 0.99713157, 0.49196723,\
++	-6.24461802, -0.00177993, 0.00108692, 7.24283808, 0.99454502, 0.99713315, 0.49197045,\
++	-6.24471446, -0.00177894, 0.00108633, 7.24293552, 0.99454811, 0.99713473, 0.49197365,\
++	-6.24481057, -0.00177795, 0.00108574, 7.24303262, 0.99455119, 0.99713630, 0.49197684,\
++	-6.24490634, -0.00177696, 0.00108516, 7.24312938, 0.99455427, 0.99713788, 0.49198002,\
++	-6.24500177, -0.00177597, 0.00108457, 7.24322579, 0.99455735, 0.99713946, 0.49198318,\
++	-6.24509686, -0.00177499, 0.00108398, 7.24332187, 0.99456042, 0.99714103, 0.49198634,\
++	-6.24519161, -0.00177400, 0.00108340, 7.24341761, 0.99456349, 0.99714260, 0.49198949,\
++	-6.24528603, -0.00177301, 0.00108281, 7.24351302, 0.99456655, 0.99714417, 0.49199263,\
++	-6.24538012, -0.00177203, 0.00108223, 7.24360809, 0.99456961, 0.99714574, 0.49199575,\
++	-6.24547387, -0.00177105, 0.00108164, 7.24370283, 0.99457267, 0.99714731, 0.49199887,\
++	-6.24556729, -0.00177006, 0.00108106, 7.24379723, 0.99457573, 0.99714887, 0.49200198,\
++	-6.24566038, -0.00176908, 0.00108048, 7.24389130, 0.99457878, 0.99715044, 0.49200507,\
++	-6.24575314, -0.00176810, 0.00107990, 7.24398504, 0.99458183, 0.99715200, 0.49200817,\
++	-6.24584557, -0.00176712, 0.00107931, 7.24407845, 0.99458488, 0.99715356, 0.49201123,\
++	-6.24593768, -0.00176614, 0.00107873, 7.24417153, 0.99458792, 0.99715512, 0.49201431,\
++	-6.24602946, -0.00176517, 0.00107815, 7.24426429, 0.99459096, 0.99715668, 0.49201737,\
++	-6.24612091, -0.00176419, 0.00107757, 7.24435672, 0.99459400, 0.99715824, 0.49202041,\
++	-6.24621204, -0.00176321, 0.00107699, 7.24444883, 0.99459703, 0.99715979, 0.49202344,\
++	-6.24630285, -0.00176224, 0.00107641, 7.24454061, 0.99460006, 0.99716135, 0.49202647,\
++	-6.24639333, -0.00176127, 0.00107584, 7.24463206, 0.99460309, 0.99716290, 0.49202949,\
++	-6.24648350, -0.00176029, 0.00107526, 7.24472320, 0.99460611, 0.99716445, 0.49203250,\
++	-6.24657334, -0.00175932, 0.00107468, 7.24481402, 0.99460913, 0.99716600, 0.49203550,\
++	-6.24666287, -0.00175835, 0.00107410, 7.24490451, 0.99461215, 0.99716755, 0.49203848,\
++	-6.24675208, -0.00175738, 0.00107353, 7.24499469, 0.99461516, 0.99716909, 0.49204146,\
++	-6.24684097, -0.00175641, 0.00107295, 7.24508455, 0.99461817, 0.99717064, 0.49204443,\
++	-6.24692955, -0.00175545, 0.00107238, 7.24517410, 0.99462118, 0.99717218, 0.49204739,\
++	-6.24701781, -0.00175448, 0.00107180, 7.24526333, 0.99462418, 0.99717372, 0.49205033,\
++	-6.24710576, -0.00175351, 0.00107123, 7.24535225, 0.99462718, 0.99717526, 0.49205328,\
++	-6.24719340, -0.00175255, 0.00107065, 7.24544085, 0.99463018, 0.99717680, 0.49205621,\
++	-6.24728073, -0.00175158, 0.00107008, 7.24552914, 0.99463317, 0.99717834, 0.49205913,\
++	-6.24736775, -0.00175062, 0.00106951, 7.24561712, 0.99463617, 0.99717987, 0.49206204,\
++	-6.24745446, -0.00174966, 0.00106893, 7.24570479, 0.99463915, 0.99718141, 0.49206494,\
++	-6.24754086, -0.00174870, 0.00106836, 7.24579216, 0.99464214, 0.99718294, 0.49206783,\
++	-6.24762695, -0.00174774, 0.00106779, 7.24587921, 0.99464512, 0.99718447, 0.49207072,\
++	-6.24771274, -0.00174678, 0.00106722, 7.24596596, 0.99464810, 0.99718600, 0.49207359,\
++	-6.24779823, -0.00174582, 0.00106665, 7.24605241, 0.99465108, 0.99718753, 0.49207645,\
++	-6.24788341, -0.00174487, 0.00106608, 7.24613854, 0.99465405, 0.99718905, 0.49207931,\
++	-6.24796829, -0.00174391, 0.00106551, 7.24622438, 0.99465702, 0.99719058, 0.49208216,\
++	-6.24805287, -0.00174296, 0.00106494, 7.24630991, 0.99465998, 0.99719210, 0.49208499,\
++	-6.24813715, -0.00174200, 0.00106438, 7.24639515, 0.99466295, 0.99719362, 0.49208783,\
++	-6.24822113, -0.00174105, 0.00106381, 7.24648008, 0.99466591, 0.99719514, 0.49209064,\
++	-6.24830481, -0.00174010, 0.00106324, 7.24656471, 0.99466886, 0.99719666, 0.49209345,\
++	-6.24838819, -0.00173915, 0.00106267, 7.24664905, 0.99467182, 0.99719818, 0.49209625,\
++	-6.24847128, -0.00173819, 0.00106211, 7.24673309, 0.99467477, 0.99719970, 0.49209904,\
++	-6.24855407, -0.00173725, 0.00106154, 7.24681683, 0.99467771, 0.99720121, 0.49210182,\
++	-6.24863657, -0.00173630, 0.00106098, 7.24690027, 0.99468066, 0.99720272, 0.49210459,\
++	-6.24871878, -0.00173535, 0.00106041, 7.24698343, 0.99468360, 0.99720424, 0.49210735,\
++	-6.24880069, -0.00173440, 0.00105985, 7.24706629, 0.99468654, 0.99720575, 0.49211010,\
++	-6.24888231, -0.00173346, 0.00105929, 7.24714886, 0.99468947, 0.99720725, 0.49211286,\
++	-6.24896365, -0.00173251, 0.00105872, 7.24723113, 0.99469240, 0.99720876, 0.49211559,\
++	-6.24904469, -0.00173157, 0.00105816, 7.24731312, 0.99469533, 0.99721027, 0.49211832,\
++	-6.24912545, -0.00173063, 0.00105760, 7.24739482, 0.99469826, 0.99721177, 0.49212104,\
++	-6.24920591, -0.00172969, 0.00105704, 7.24747623, 0.99470118, 0.99721327, 0.49212375,\
++	-6.24928610, -0.00172875, 0.00105648, 7.24755735, 0.99470410, 0.99721478, 0.49212645,\
++	-6.24936599, -0.00172781, 0.00105592, 7.24763819, 0.99470702, 0.99721628, 0.49212915,\
++	-6.24944561, -0.00172687, 0.00105536, 7.24771874, 0.99470993, 0.99721777, 0.49213183,\
++	-6.24952494, -0.00172593, 0.00105480, 7.24779901, 0.99471284, 0.99721927, 0.49213451,\
++	-6.24960399, -0.00172499, 0.00105424, 7.24787899, 0.99471575, 0.99722077, 0.49213717,\
++	-6.24968275, -0.00172406, 0.00105368, 7.24795870, 0.99471865, 0.99722226, 0.49213983,\
++	-6.24976124, -0.00172312, 0.00105312, 7.24803812, 0.99472155, 0.99722375, 0.49214248,\
++	-6.24983945, -0.00172219, 0.00105257, 7.24811726, 0.99472445, 0.99722524, 0.49214512,\
++	-6.24991738, -0.00172126, 0.00105201, 7.24819612, 0.99472735, 0.99722673, 0.49214776,\
++	-6.24999503, -0.00172032, 0.00105145, 7.24827471, 0.99473024, 0.99722822, 0.49215038,\
++	-6.25007241, -0.00171939, 0.00105090, 7.24835302, 0.99473313, 0.99722971, 0.49215299,\
++	-6.25014951, -0.00171846, 0.00105034, 7.24843105, 0.99473601, 0.99723119, 0.49215561,\
++	-6.25022634, -0.00171753, 0.00104979, 7.24850880, 0.99473890, 0.99723268, 0.49215820,\
++	-6.25030289, -0.00171660, 0.00104923, 7.24858628, 0.99474178, 0.99723416, 0.49216079,\
++	-6.25037917, -0.00171568, 0.00104868, 7.24866349, 0.99474465, 0.99723564, 0.49216338,\
++	-6.25045518, -0.00171475, 0.00104813, 7.24874043, 0.99474753, 0.99723712, 0.49216595,\
++	-6.25053092, -0.00171382, 0.00104758, 7.24881709, 0.99475040, 0.99723860, 0.49216851,\
++	-6.25060639, -0.00171290, 0.00104702, 7.24889349, 0.99475327, 0.99724008, 0.49217106,\
++	-6.25068159, -0.00171198, 0.00104647, 7.24896961, 0.99475613, 0.99724155, 0.49217362,\
++	-6.25075652, -0.00171105, 0.00104592, 7.24904547, 0.99475899, 0.99724303, 0.49217616,\
++	-6.25083119, -0.00171013, 0.00104537, 7.24912106, 0.99476185, 0.99724450, 0.49217869,\
++	-6.25090559, -0.00170921, 0.00104482, 7.24919638, 0.99476471, 0.99724597, 0.49218121,\
++	-6.25097972, -0.00170829, 0.00104427, 7.24927143, 0.99476756, 0.99724744, 0.49218373,\
++	-6.25105359, -0.00170737, 0.00104372, 7.24934622, 0.99477041, 0.99724891, 0.49218624,\
++	-6.25112720, -0.00170645, 0.00104317, 7.24942075, 0.99477326, 0.99725037, 0.49218873,\
++	-6.25120055, -0.00170554, 0.00104262, 7.24949501, 0.99477610, 0.99725184, 0.49219122,\
++	-6.25127363, -0.00170462, 0.00104208, 7.24956901, 0.99477894, 0.99725330, 0.49219371,\
++	-6.25134646, -0.00170370, 0.00104153, 7.24964275, 0.99478178, 0.99725477, 0.49219618,\
++	-6.25141902, -0.00170279, 0.00104098, 7.24971623, 0.99478462, 0.99725623, 0.49219865,\
++	-6.25149133, -0.00170188, 0.00104044, 7.24978945, 0.99478745, 0.99725769, 0.49220112,\
++	-6.25156338, -0.00170096, 0.00103989, 7.24986241, 0.99479028, 0.99725915, 0.49220356,\
++	-6.25163517, -0.00170005, 0.00103935, 7.24993512, 0.99479311, 0.99726060, 0.49220600,\
++	-6.25170670, -0.00169914, 0.00103880, 7.25000756, 0.99479593, 0.99726206, 0.49220844,\
++	-6.25177798, -0.00169823, 0.00103826, 7.25007975, 0.99479875, 0.99726351, 0.49221087,\
++	-6.25184901, -0.00169732, 0.00103771, 7.25015169, 0.99480157, 0.99726496, 0.49221329,\
++	-6.25191978, -0.00169641, 0.00103717, 7.25022337, 0.99480438, 0.99726642, 0.49221570,\
++	-6.25199031, -0.00169551, 0.00103663, 7.25029480, 0.99480719, 0.99726787, 0.49221811,\
++	-6.25206057, -0.00169460, 0.00103609, 7.25036598, 0.99481000, 0.99726931, 0.49222050,\
++	-6.25213059, -0.00169369, 0.00103555, 7.25043690, 0.99481281, 0.99727076, 0.49222289,\
++	-6.25220036, -0.00169279, 0.00103500, 7.25050757, 0.99481561, 0.99727221, 0.49222527,\
++	-6.25226988, -0.00169189, 0.00103446, 7.25057800, 0.99481841, 0.99727365, 0.49222765,\
++	-6.25233916, -0.00169098, 0.00103392, 7.25064817, 0.99482121, 0.99727509, 0.49223001,\
++	-6.25240818, -0.00169008, 0.00103338, 7.25071810, 0.99482400, 0.99727653, 0.49223237,\
++	-6.25247696, -0.00168918, 0.00103285, 7.25078778, 0.99482680, 0.99727797, 0.49223472,\
++	-6.25254550, -0.00168828, 0.00103231, 7.25085722, 0.99482958, 0.99727941, 0.49223706,\
++	-6.25261379, -0.00168738, 0.00103177, 7.25092640, 0.99483237, 0.99728085, 0.49223939,\
++	-6.25268183, -0.00168648, 0.00103123, 7.25099535, 0.99483515, 0.99728229, 0.49224172,\
++	-6.25274963, -0.00168559, 0.00103069, 7.25106405, 0.99483793, 0.99728372, 0.49224404,\
++	-6.25281720, -0.00168469, 0.00103016, 7.25113251, 0.99484071, 0.99728515, 0.49224636,\
++	-6.25288452, -0.00168379, 0.00102962, 7.25120072, 0.99484348, 0.99728659, 0.49224866,\
++	-6.25295160, -0.00168290, 0.00102909, 7.25126870, 0.99484626, 0.99728802, 0.49225097,\
++	-6.25301844, -0.00168200, 0.00102855, 7.25133643, 0.99484902, 0.99728945, 0.49225325,\
++	-6.25308504, -0.00168111, 0.00102802, 7.25140393, 0.99485179, 0.99729087, 0.49225553,\
++	-6.25315140, -0.00168022, 0.00102748, 7.25147118, 0.99485455, 0.99729230, 0.49225780,\
++	-6.25321753, -0.00167933, 0.00102695, 7.25153820, 0.99485731, 0.99729372, 0.49226008,\
++	-6.25328342, -0.00167844, 0.00102641, 7.25160498, 0.99486007, 0.99729515, 0.49226233,\
++	-6.25334907, -0.00167755, 0.00102588, 7.25167153, 0.99486282, 0.99729657, 0.49226459,\
++	-6.25341450, -0.00167666, 0.00102535, 7.25173784, 0.99486558, 0.99729799, 0.49226684,\
++	-6.25347968, -0.00167577, 0.00102482, 7.25180391, 0.99486832, 0.99729941, 0.49226907,\
++	-6.25354464, -0.00167489, 0.00102429, 7.25186975, 0.99487107, 0.99730083, 0.49227131,\
++	-6.25360936, -0.00167400, 0.00102376, 7.25193536, 0.99487381, 0.99730224, 0.49227354,\
++	-6.25367385, -0.00167312, 0.00102323, 7.25200074, 0.99487655, 0.99730366, 0.49227575,\
++	-6.25373811, -0.00167223, 0.00102270, 7.25206588, 0.99487929, 0.99730507, 0.49227796,\
++	-6.25380215, -0.00167135, 0.00102217, 7.25213080, 0.99488202, 0.99730649, 0.49228016,\
++	-6.25386595, -0.00167047, 0.00102164, 7.25219548, 0.99488476, 0.99730790, 0.49228236,\
++	-6.25392952, -0.00166958, 0.00102111, 7.25225994, 0.99488749, 0.99730931, 0.49228455,\
++	-6.25399287, -0.00166870, 0.00102058, 7.25232417, 0.99489021, 0.99731072, 0.49228673,\
++	-6.25405599, -0.00166782, 0.00102005, 7.25238817, 0.99489294, 0.99731212, 0.49228892,\
++	-6.25411889, -0.00166694, 0.00101953, 7.25245194, 0.99489566, 0.99731353, 0.49229108,\
++	-6.25418156, -0.00166607, 0.00101900, 7.25251549, 0.99489837, 0.99731493, 0.49229324,\
++	-6.25424401, -0.00166519, 0.00101847, 7.25257882, 0.99490109, 0.99731634, 0.49229539,\
++	-6.25430623, -0.00166431, 0.00101795, 7.25264192, 0.99490380, 0.99731774, 0.49229754,\
++	-6.25436823, -0.00166344, 0.00101742, 7.25270479, 0.99490651, 0.99731914, 0.49229968,\
++	-6.25443001, -0.00166256, 0.00101690, 7.25276745, 0.99490922, 0.99732054, 0.49230182,\
++	-6.25449157, -0.00166169, 0.00101638, 7.25282988, 0.99491192, 0.99732194, 0.49230394,\
++	-6.25455291, -0.00166082, 0.00101585, 7.25289209, 0.99491462, 0.99732333, 0.49230606,\
++	-6.25461403, -0.00165994, 0.00101533, 7.25295408, 0.99491732, 0.99732473, 0.49230817,\
++	-6.25467493, -0.00165907, 0.00101481, 7.25301586, 0.99492002, 0.99732612, 0.49231027,\
++	-6.25473561, -0.00165820, 0.00101428, 7.25307741, 0.99492271, 0.99732751, 0.49231238,\
++	-6.25479608, -0.00165733, 0.00101376, 7.25313874, 0.99492540, 0.99732890, 0.49231446,\
++	-6.25485633, -0.00165647, 0.00101324, 7.25319986, 0.99492809, 0.99733029, 0.49231656,\
++	-6.25491636, -0.00165560, 0.00101272, 7.25326076, 0.99493077, 0.99733168, 0.49231863,\
++	-6.25497618, -0.00165473, 0.00101220, 7.25332145, 0.99493345, 0.99733307, 0.49232070,\
++	-6.25503579, -0.00165386, 0.00101168, 7.25338192, 0.99493613, 0.99733445, 0.49232277,\
++	-6.25509518, -0.00165300, 0.00101116, 7.25344218, 0.99493881, 0.99733584, 0.49232483,\
++	-6.25515436, -0.00165214, 0.00101064, 7.25350222, 0.99494148, 0.99733722, 0.49232688,\
++	-6.25521333, -0.00165127, 0.00101012, 7.25356206, 0.99494415, 0.99733860, 0.49232894,\
++	-6.25527209, -0.00165041, 0.00100961, 7.25362168, 0.99494682, 0.99733998, 0.49233097,\
++	-6.25533063, -0.00164955, 0.00100909, 7.25368108, 0.99494949, 0.99734136, 0.49233301,\
++	-6.25538897, -0.00164869, 0.00100857, 7.25374028, 0.99495215, 0.99734274, 0.49233504,\
++	-6.25544710, -0.00164783, 0.00100806, 7.25379927, 0.99495481, 0.99734412, 0.49233704,\
++	-6.25550502, -0.00164697, 0.00100754, 7.25385805, 0.99495747, 0.99734549, 0.49233906,\
++	-6.25556273, -0.00164611, 0.00100702, 7.25391662, 0.99496012, 0.99734687, 0.49234107,\
++	-6.25562024, -0.00164525, 0.00100651, 7.25397499, 0.99496278, 0.99734824, 0.49234308,\
++	-6.25567754, -0.00164440, 0.00100599, 7.25403314, 0.99496543, 0.99734961, 0.49234506,\
++	-6.25573464, -0.00164354, 0.00100548, 7.25409110, 0.99496807, 0.99735098, 0.49234706,\
++	-6.25579153, -0.00164268, 0.00100497, 7.25414884, 0.99497072, 0.99735235, 0.49234904,\
++	-6.25584821, -0.00164183, 0.00100445, 7.25420638, 0.99497336, 0.99735372, 0.49235101,\
++	-6.25590470, -0.00164098, 0.00100394, 7.25426372, 0.99497600, 0.99735508, 0.49235297,\
++	-6.25596098, -0.00164012, 0.00100343, 7.25432086, 0.99497863, 0.99735645, 0.49235495,\
++	-6.25601706, -0.00163927, 0.00100292, 7.25437779, 0.99498127, 0.99735781, 0.49235690,\
++	-6.25607294, -0.00163842, 0.00100241, 7.25443452, 0.99498390, 0.99735917, 0.49235884,\
++	-6.25612862, -0.00163757, 0.00100189, 7.25449105, 0.99498652, 0.99736053, 0.49236079,\
++	-6.25618410, -0.00163672, 0.00100138, 7.25454738, 0.99498915, 0.99736189, 0.49236272,\
++	-6.25623938, -0.00163587, 0.00100087, 7.25460351, 0.99499177, 0.99736325, 0.49236466,\
++	-6.25629447, -0.00163503, 0.00100036, 7.25465944, 0.99499439, 0.99736461, 0.49236658,\
++	-6.25634936, -0.00163418, 0.00099986, 7.25471518, 0.99499701, 0.99736596, 0.49236850,\
++	-6.25640405, -0.00163333, 0.00099935, 7.25477071, 0.99499963, 0.99736732, 0.49237042,\
++	-6.25645854, -0.00163249, 0.00099884, 7.25482605, 0.99500224, 0.99736867, 0.49237232,\
++	-6.25651284, -0.00163164, 0.00099833, 7.25488119, 0.99500485, 0.99737002, 0.49237422,\
++	-6.25656694, -0.00163080, 0.00099782, 7.25493614, 0.99500745, 0.99737137, 0.49237612,\
++	-6.25662085, -0.00162996, 0.00099732, 7.25499089, 0.99501006, 0.99737272, 0.49237800,\
++	-6.25667457, -0.00162912, 0.00099681, 7.25504545, 0.99501266, 0.99737407, 0.49237989,\
++	-6.25672809, -0.00162828, 0.00099631, 7.25509982, 0.99501526, 0.99737542, 0.49238176,\
++	-6.25678143, -0.00162744, 0.00099580, 7.25515399, 0.99501786, 0.99737676, 0.49238364,\
++	-6.25683457, -0.00162660, 0.00099530, 7.25520797, 0.99502045, 0.99737811, 0.49238550,\
++	-6.25688752, -0.00162576, 0.00099479, 7.25526176, 0.99502304, 0.99737945, 0.49238736,\
++	-6.25694028, -0.00162492, 0.00099429, 7.25531536, 0.99502563, 0.99738079, 0.49238921,\
++	-6.25699285, -0.00162408, 0.00099378, 7.25536877, 0.99502822, 0.99738213, 0.49239105,\
++	-6.25704524, -0.00162325, 0.00099328, 7.25542199, 0.99503080, 0.99738347, 0.49239289,\
++	-6.25709743, -0.00162241, 0.00099278, 7.25547502, 0.99503338, 0.99738481, 0.49239473,\
++	-6.25714944, -0.00162158, 0.00099228, 7.25552786, 0.99503596, 0.99738615, 0.49239656,\
++	-6.25720127, -0.00162074, 0.00099177, 7.25558052, 0.99503853, 0.99738748, 0.49239838,\
++	-6.25725290, -0.00161991, 0.00099127, 7.25563299, 0.99504111, 0.99738881, 0.49240020,\
++	-6.25730435, -0.00161908, 0.00099077, 7.25568527, 0.99504368, 0.99739015, 0.49240201,\
++	-6.25735562, -0.00161825, 0.00099027, 7.25573737, 0.99504625, 0.99739148, 0.49240381,\
++	-6.25740670, -0.00161742, 0.00098977, 7.25578929, 0.99504881, 0.99739281, 0.49240561,\
++	-6.25745761, -0.00161659, 0.00098927, 7.25584102, 0.99505137, 0.99739414, 0.49240741,\
++	-6.25750832, -0.00161576, 0.00098877, 7.25589256, 0.99505393, 0.99739547, 0.49240919,\
++	-6.25755886, -0.00161493, 0.00098828, 7.25594393, 0.99505649, 0.99739679, 0.49241098,\
++	-6.25760921, -0.00161411, 0.00098778, 7.25599511, 0.99505905, 0.99739812, 0.49241276,\
++	-6.25765939, -0.00161328, 0.00098728, 7.25604611, 0.99506160, 0.99739944, 0.49241453,\
++	-6.25770938, -0.00161245, 0.00098678, 7.25609693, 0.99506415, 0.99740076, 0.49241630,\
++	-6.25775920, -0.00161163, 0.00098629, 7.25614757, 0.99506670, 0.99740209, 0.49241806,\
++	-6.25780883, -0.00161080, 0.00098579, 7.25619803, 0.99506924, 0.99740341, 0.49241981,\
++	-6.25785829, -0.00160998, 0.00098529, 7.25624831, 0.99507179, 0.99740472, 0.49242156,\
++	-6.25790757, -0.00160916, 0.00098480, 7.25629841, 0.99507433, 0.99740604, 0.49242330,\
++	-6.25795667, -0.00160834, 0.00098430, 7.25634834, 0.99507686, 0.99740736, 0.49242504,\
++	-6.25800560, -0.00160752, 0.00098381, 7.25639808, 0.99507940, 0.99740867, 0.49242678,\
++	-6.25805435, -0.00160670, 0.00098332, 7.25644766, 0.99508193, 0.99740999, 0.49242849,\
++	-6.25810293, -0.00160588, 0.00098282, 7.25649705, 0.99508446, 0.99741130, 0.49243022,\
++	-6.25815133, -0.00160506, 0.00098233, 7.25654627, 0.99508699, 0.99741261, 0.49243193,\
++	-6.25819956, -0.00160424, 0.00098184, 7.25659532, 0.99508951, 0.99741392, 0.49243365,\
++	-6.25824762, -0.00160342, 0.00098134, 7.25664419, 0.99509203, 0.99741523, 0.49243535,\
++	-6.25829550, -0.00160261, 0.00098085, 7.25669289, 0.99509455, 0.99741654, 0.49243704,\
++	-6.25834321, -0.00160179, 0.00098036, 7.25674142, 0.99509707, 0.99741784, 0.49243875,\
++	-6.25839075, -0.00160098, 0.00097987, 7.25678978, 0.99509959, 0.99741915, 0.49244043,\
++	-6.25843812, -0.00160017, 0.00097938, 7.25683796, 0.99510210, 0.99742045, 0.49244213,\
++	-6.25848532, -0.00159935, 0.00097889, 7.25688597, 0.99510461, 0.99742176, 0.49244379,\
++	-6.25853235, -0.00159854, 0.00097840, 7.25693381, 0.99510712, 0.99742306, 0.49244547,\
++	-6.25857922, -0.00159773, 0.00097791, 7.25698149, 0.99510962, 0.99742436, 0.49244714,\
++	-6.25862591, -0.00159692, 0.00097742, 7.25702899, 0.99511212, 0.99742566, 0.49244880,\
++	-6.25867244, -0.00159611, 0.00097693, 7.25707633, 0.99511462, 0.99742696, 0.49245046,\
++	-6.25871879, -0.00159530, 0.00097645, 7.25712350, 0.99511712, 0.99742825, 0.49245210,\
++	-6.25876499, -0.00159449, 0.00097596, 7.25717050, 0.99511962, 0.99742955, 0.49245376,\
++	-6.25881101, -0.00159368, 0.00097547, 7.25721733, 0.99512211, 0.99743084, 0.49245539,\
++	-6.25885688, -0.00159288, 0.00097499, 7.25726400, 0.99512460, 0.99743214, 0.49245702,\
++	-6.25890257, -0.00159207, 0.00097450, 7.25731050, 0.99512709, 0.99743343, 0.49245866,\
++	-6.25894810, -0.00159127, 0.00097402, 7.25735684, 0.99512957, 0.99743472, 0.49246028,\
++	-6.25899347, -0.00159046, 0.00097353, 7.25740301, 0.99513205, 0.99743601, 0.49246190,\
++	-6.25903868, -0.00158966, 0.00097305, 7.25744902, 0.99513453, 0.99743730, 0.49246352,\
++	-6.25908372, -0.00158886, 0.00097256, 7.25749487, 0.99513701, 0.99743858, 0.49246513,\
++	-6.25912861, -0.00158805, 0.00097208, 7.25754055, 0.99513949, 0.99743987, 0.49246673,\
++	-6.25917333, -0.00158725, 0.00097159, 7.25758607, 0.99514196, 0.99744115, 0.49246833,\
++	-6.25921789, -0.00158645, 0.00097111, 7.25763144, 0.99514443, 0.99744244, 0.49246993,\
++	-6.25926229, -0.00158565, 0.00097063, 7.25767664, 0.99514690, 0.99744372, 0.49247152,\
++	-6.25930653, -0.00158485, 0.00097015, 7.25772168, 0.99514936, 0.99744500, 0.49247309,\
++	-6.25935061, -0.00158406, 0.00096966, 7.25776656, 0.99515183, 0.99744628, 0.49247468,\
++	-6.25939453, -0.00158326, 0.00096918, 7.25781128, 0.99515429, 0.99744756, 0.49247625,\
++	-6.25943830, -0.00158246, 0.00096870, 7.25785584, 0.99515675, 0.99744884, 0.49247782,\
++	-6.25948191, -0.00158167, 0.00096822, 7.25790024, 0.99515920, 0.99745011, 0.49247939,\
++	-6.25952536, -0.00158087, 0.00096774, 7.25794449, 0.99516165, 0.99745139, 0.49248095,\
++	-6.25956866, -0.00158008, 0.00096726, 7.25798858, 0.99516411, 0.99745266, 0.49248251,\
++	-6.25961180, -0.00157928, 0.00096678, 7.25803252, 0.99516655, 0.99745393, 0.49248405,\
++	-6.25965478, -0.00157849, 0.00096631, 7.25807629, 0.99516900, 0.99745521, 0.49248560,\
++	-6.25969761, -0.00157770, 0.00096583, 7.25811992, 0.99517144, 0.99745648, 0.49248715,\
++	-6.25974029, -0.00157691, 0.00096535, 7.25816339, 0.99517389, 0.99745774, 0.49248867,\
++	-6.25978282, -0.00157612, 0.00096487, 7.25820670, 0.99517633, 0.99745901, 0.49249021,\
++	-6.25982519, -0.00157533, 0.00096440, 7.25824986, 0.99517876, 0.99746028, 0.49249174,\
++	-6.25986741, -0.00157454, 0.00096392, 7.25829287, 0.99518120, 0.99746154, 0.49249325,\
++	-6.25990947, -0.00157375, 0.00096344, 7.25833572, 0.99518363, 0.99746281, 0.49249477,\
++	-6.25995139, -0.00157296, 0.00096297, 7.25837843, 0.99518606, 0.99746407, 0.49249628,\
++	-6.25999315, -0.00157217, 0.00096249, 7.25842098, 0.99518848, 0.99746533, 0.49249779,\
++	-6.26003477, -0.00157139, 0.00096202, 7.25846338, 0.99519091, 0.99746659, 0.49249929,\
++	-6.26007624, -0.00157060, 0.00096154, 7.25850563, 0.99519333, 0.99746785, 0.49250079,\
++	-6.26011755, -0.00156982, 0.00096107, 7.25854773, 0.99519575, 0.99746911, 0.49250228,\
++	-6.26015872, -0.00156903, 0.00096060, 7.25858969, 0.99519817, 0.99747037, 0.49250377,\
++	-6.26019974, -0.00156825, 0.00096012, 7.25863149, 0.99520058, 0.99747163, 0.49250524,\
++	-6.26024061, -0.00156747, 0.00095965, 7.25867315, 0.99520300, 0.99747288, 0.49250672,\
++	-6.26028134, -0.00156669, 0.00095918, 7.25871465, 0.99520541, 0.99747414, 0.49250819,\
++	-6.26032192, -0.00156591, 0.00095871, 7.25875601, 0.99520782, 0.99747539, 0.49250967,\
++	-6.26036235, -0.00156513, 0.00095823, 7.25879723, 0.99521022, 0.99747664, 0.49251114,\
++	-6.26040264, -0.00156435, 0.00095776, 7.25883830, 0.99521263, 0.99747789, 0.49251259,\
++	-6.26044279, -0.00156357, 0.00095729, 7.25887922, 0.99521503, 0.99747914, 0.49251404,\
++	-6.26048279, -0.00156279, 0.00095682, 7.25892000, 0.99521743, 0.99748039, 0.49251549,\
++	-6.26052264, -0.00156201, 0.00095635, 7.25896063, 0.99521982, 0.99748163, 0.49251694,\
++	-6.26056235, -0.00156124, 0.00095588, 7.25900112, 0.99522222, 0.99748288, 0.49251838,\
++	-6.26060192, -0.00156046, 0.00095542, 7.25904146, 0.99522461, 0.99748412, 0.49251982,\
++	-6.26064135, -0.00155969, 0.00095495, 7.25908167, 0.99522700, 0.99748537, 0.49252125,\
++	-6.26068064, -0.00155891, 0.00095448, 7.25912173, 0.99522939, 0.99748661, 0.49252269,\
++	-6.26071978, -0.00155814, 0.00095401, 7.25916164, 0.99523177, 0.99748785, 0.49252410,\
++	-6.26075879, -0.00155737, 0.00095354, 7.25920142, 0.99523415, 0.99748909, 0.49252552,\
++	-6.26079765, -0.00155659, 0.00095308, 7.25924106, 0.99523653, 0.99749033, 0.49252694,\
++	-6.26083637, -0.00155582, 0.00095261, 7.25928055, 0.99523891, 0.99749157, 0.49252834,\
++	-6.26087496, -0.00155505, 0.00095215, 7.25931991, 0.99524129, 0.99749280, 0.49252975,\
++	-6.26091341, -0.00155428, 0.00095168, 7.25935912, 0.99524366, 0.99749404, 0.49253116,\
++	-6.26095171, -0.00155351, 0.00095122, 7.25939820, 0.99524603, 0.99749527, 0.49253255,\
++	-6.26098988, -0.00155274, 0.00095075, 7.25943714, 0.99524840, 0.99749651, 0.49253394,\
++	-6.26102792, -0.00155198, 0.00095029, 7.25947594, 0.99525077, 0.99749774, 0.49253533,\
++	-6.26106581, -0.00155121, 0.00094982, 7.25951460, 0.99525313, 0.99749897, 0.49253672,\
++	-6.26110357, -0.00155044, 0.00094936, 7.25955313, 0.99525549, 0.99750020, 0.49253810,\
++	-6.26114120, -0.00154968, 0.00094890, 7.25959152, 0.99525785, 0.99750143, 0.49253947,\
++	-6.26117869, -0.00154891, 0.00094843, 7.25962977, 0.99526021, 0.99750265, 0.49254085,\
++	-6.26121604, -0.00154815, 0.00094797, 7.25966789, 0.99526256, 0.99750388, 0.49254220,\
++	-6.26125326, -0.00154739, 0.00094751, 7.25970587, 0.99526492, 0.99750510, 0.49254357,\
++	-6.26129035, -0.00154662, 0.00094705, 7.25974372, 0.99526727, 0.99750633, 0.49254493,\
++	-6.26132730, -0.00154586, 0.00094659, 7.25978144, 0.99526962, 0.99750755, 0.49254628,\
++	-6.26136412, -0.00154510, 0.00094613, 7.25981902, 0.99527196, 0.99750877, 0.49254763,\
++	-6.26140081, -0.00154434, 0.00094567, 7.25985647, 0.99527431, 0.99750999, 0.49254897,\
++	-6.26143736, -0.00154358, 0.00094521, 7.25989378, 0.99527665, 0.99751121, 0.49255032,\
++	-6.26147379, -0.00154282, 0.00094475, 7.25993097, 0.99527899, 0.99751243, 0.49255166,\
++	-6.26151008, -0.00154206, 0.00094429, 7.25996802, 0.99528132, 0.99751365, 0.49255299,\
++	-6.26154624, -0.00154131, 0.00094383, 7.26000494, 0.99528366, 0.99751486, 0.49255432,\
++	-6.26158228, -0.00154055, 0.00094337, 7.26004173, 0.99528599, 0.99751608, 0.49255564,\
++	-6.26161818, -0.00153979, 0.00094292, 7.26007839, 0.99528832, 0.99751729, 0.49255696,\
++	-6.26165395, -0.00153904, 0.00094246, 7.26011492, 0.99529065, 0.99751851, 0.49255828,\
++	-6.26168960, -0.00153828, 0.00094200, 7.26015132, 0.99529297, 0.99751972, 0.49255958,\
++	-6.26172512, -0.00153753, 0.00094155, 7.26018759, 0.99529530, 0.99752093, 0.49256090,\
++	-6.26176051, -0.00153677, 0.00094109, 7.26022373, 0.99529762, 0.99752214, 0.49256219,\
++	-6.26179577, -0.00153602, 0.00094063, 7.26025975, 0.99529994, 0.99752334, 0.49256349,\
++	-6.26183090, -0.00153527, 0.00094018, 7.26029563, 0.99530226, 0.99752455, 0.49256478,\
++	-6.26186591, -0.00153452, 0.00093972, 7.26033139, 0.99530457, 0.99752576, 0.49256609,\
++	-6.26190080, -0.00153377, 0.00093927, 7.26036703, 0.99530688, 0.99752696, 0.49256738,\
++	-6.26193555, -0.00153302, 0.00093882, 7.26040254, 0.99530919, 0.99752817, 0.49256866,\
++	-6.26197019, -0.00153227, 0.00093836, 7.26043792, 0.99531150, 0.99752937, 0.49256993,\
++	-6.26200470, -0.00153152, 0.00093791, 7.26047317, 0.99531381, 0.99753057, 0.49257121,\
++	-6.26203908, -0.00153077, 0.00093746, 7.26050831, 0.99531611, 0.99753177, 0.49257249,\
++	-6.26207334, -0.00153003, 0.00093700, 7.26054331, 0.99531841, 0.99753297, 0.49257375,\
++	-6.26210748, -0.00152928, 0.00093655, 7.26057820, 0.99532071, 0.99753417, 0.49257501,\
++	-6.26214149, -0.00152853, 0.00093610, 7.26061296, 0.99532301, 0.99753537, 0.49257629,\
++	-6.26217539, -0.00152779, 0.00093565, 7.26064760, 0.99532530, 0.99753656, 0.49257754,\
++	-6.26220916, -0.00152705, 0.00093520, 7.26068211, 0.99532759, 0.99753776, 0.49257879,\
++	-6.26224280, -0.00152630, 0.00093475, 7.26071650, 0.99532988, 0.99753895, 0.49258003,\
++	-6.26227633, -0.00152556, 0.00093430, 7.26075077, 0.99533217, 0.99754014, 0.49258128,\
++	-6.26230974, -0.00152482, 0.00093385, 7.26078492, 0.99533446, 0.99754133, 0.49258252,\
++	-6.26234303, -0.00152408, 0.00093340, 7.26081895, 0.99533674, 0.99754253, 0.49258376,\
++	-6.26237620, -0.00152333, 0.00093295, 7.26085286, 0.99533902, 0.99754372, 0.49258498,\
++	-6.26240924, -0.00152259, 0.00093250, 7.26088665, 0.99534130, 0.99754490, 0.49258622,\
++	-6.26244217, -0.00152186, 0.00093205, 7.26092032, 0.99534358, 0.99754609, 0.49258745,\
++	-6.26247499, -0.00152112, 0.00093161, 7.26095387, 0.99534586, 0.99754728, 0.49258868,\
++	-6.26250768, -0.00152038, 0.00093116, 7.26098730, 0.99534813, 0.99754846, 0.49258989,\
++	-6.26254025, -0.00151964, 0.00093071, 7.26102061, 0.99535040, 0.99754965, 0.49259110,\
++	-6.26257271, -0.00151890, 0.00093027, 7.26105381, 0.99535267, 0.99755083, 0.49259230,\
++	-6.26260505, -0.00151817, 0.00092982, 7.26108689, 0.99535493, 0.99755201, 0.49259351,\
++	-6.26263728, -0.00151743, 0.00092937, 7.26111985, 0.99535720, 0.99755319, 0.49259471,\
++	-6.26266939, -0.00151670, 0.00092893, 7.26115269, 0.99535946, 0.99755437, 0.49259592,\
++	-6.26270138, -0.00151596, 0.00092848, 7.26118542, 0.99536172, 0.99755555, 0.49259711,\
++	-6.26273326, -0.00151523, 0.00092804, 7.26121803, 0.99536398, 0.99755673, 0.49259829,\
++	-6.26276503, -0.00151450, 0.00092760, 7.26125053, 0.99536623, 0.99755790, 0.49259950,\
++	-6.26279668, -0.00151377, 0.00092715, 7.26128291, 0.99536849, 0.99755908, 0.49260067,\
++	-6.26282822, -0.00151304, 0.00092671, 7.26131518, 0.99537074, 0.99756025, 0.49260186,\
++	-6.26285964, -0.00151231, 0.00092627, 7.26134733, 0.99537299, 0.99756143, 0.49260303,\
++	-6.26289095, -0.00151158, 0.00092582, 7.26137937, 0.99537524, 0.99756260, 0.49260421,\
++	-6.26292215, -0.00151085, 0.00092538, 7.26141130, 0.99537748, 0.99756377, 0.49260538,\
++	-6.26295323, -0.00151012, 0.00092494, 7.26144311, 0.99537972, 0.99756494, 0.49260653,\
++	-6.26298421, -0.00150939, 0.00092450, 7.26147481, 0.99538196, 0.99756611, 0.49260770,\
++	-6.26301507, -0.00150866, 0.00092406, 7.26150640, 0.99538420, 0.99756728, 0.49260887,\
++	-6.26304582, -0.00150794, 0.00092362, 7.26153788, 0.99538644, 0.99756844, 0.49261002,\
++	-6.26307646, -0.00150721, 0.00092318, 7.26156925, 0.99538867, 0.99756961, 0.49261117,\
++	-6.26310699, -0.00150649, 0.00092274, 7.26160050, 0.99539091, 0.99757078, 0.49261231,\
++	-6.26313741, -0.00150576, 0.00092230, 7.26163165, 0.99539314, 0.99757194, 0.49261347,\
++	-6.26316772, -0.00150504, 0.00092186, 7.26166269, 0.99539536, 0.99757310, 0.49261461,\
++	-6.26319793, -0.00150431, 0.00092142, 7.26169361, 0.99539759, 0.99757426, 0.49261575,\
++	-6.26322802, -0.00150359, 0.00092098, 7.26172443, 0.99539981, 0.99757542, 0.49261688,\
++	-6.26325801, -0.00150287, 0.00092055, 7.26175513, 0.99540204, 0.99757658, 0.49261801,\
++	-6.26328788, -0.00150215, 0.00092011, 7.26178573, 0.99540426, 0.99757774, 0.49261913,\
++	-6.26331765, -0.00150143, 0.00091967, 7.26181623, 0.99540647, 0.99757890, 0.49262025,\
++	-6.26334732, -0.00150071, 0.00091924, 7.26184661, 0.99540869, 0.99758006, 0.49262138,\
++	-6.26337687, -0.00149999, 0.00091880, 7.26187688, 0.99541090, 0.99758121, 0.49262250,\
++	-6.26340633, -0.00149927, 0.00091836, 7.26190705, 0.99541311, 0.99758236, 0.49262361,\
++	-6.26343567, -0.00149855, 0.00091793, 7.26193712, 0.99541532, 0.99758352, 0.49262472,\
++	-6.26346491, -0.00149784, 0.00091749, 7.26196707, 0.99541753, 0.99758467, 0.49262583,\
++	-6.26349404, -0.00149712, 0.00091706, 7.26199692, 0.99541974, 0.99758582, 0.49262693,\
++	-6.26352307, -0.00149640, 0.00091662, 7.26202667, 0.99542194, 0.99758697, 0.49262803,\
++	-6.26355200, -0.00149569, 0.00091619, 7.26205631, 0.99542414, 0.99758812, 0.49262913,\
++	-6.26358082, -0.00149498, 0.00091576, 7.26208585, 0.99542634, 0.99758927, 0.49263021,\
++	-6.26360954, -0.00149426, 0.00091532, 7.26211528, 0.99542854, 0.99759042, 0.49263131,\
++	-6.26363815, -0.00149355, 0.00091489, 7.26214460, 0.99543073, 0.99759156, 0.49263239,\
++	-6.26366666, -0.00149284, 0.00091446, 7.26217383, 0.99543292, 0.99759271, 0.49263348,\
++	-6.26369507, -0.00149212, 0.00091403, 7.26220295, 0.99543511, 0.99759385, 0.49263456,\
++	-6.26372338, -0.00149141, 0.00091359, 7.26223197, 0.99543730, 0.99759499, 0.49263563,\
++	-6.26375159, -0.00149070, 0.00091316, 7.26226088, 0.99543949, 0.99759613, 0.49263671,\
++	-6.26377969, -0.00148999, 0.00091273, 7.26228970, 0.99544167, 0.99759728, 0.49263778,\
++	-6.26380769, -0.00148928, 0.00091230, 7.26231841, 0.99544386, 0.99759841, 0.49263884,\
++	-6.26383560, -0.00148857, 0.00091187, 7.26234702, 0.99544604, 0.99759955, 0.49263991,\
++	-6.26386340, -0.00148787, 0.00091144, 7.26237553, 0.99544821, 0.99760069, 0.49264097,\
++	-6.26389110, -0.00148716, 0.00091101, 7.26240394, 0.99545039, 0.99760183, 0.49264203,\
++	-6.26391870, -0.00148645, 0.00091058, 7.26243225, 0.99545257, 0.99760296, 0.49264308,\
++	-6.26394621, -0.00148575, 0.00091016, 7.26246046, 0.99545474, 0.99760410, 0.49264413,\
++	-6.26397361, -0.00148504, 0.00090973, 7.26248857, 0.99545691, 0.99760523, 0.49264518,\
++	-6.26400092, -0.00148434, 0.00090930, 7.26251658, 0.99545908, 0.99760636, 0.49264622,\
++	-6.26402813, -0.00148363, 0.00090887, 7.26254449, 0.99546124, 0.99760750, 0.49264726,\
++	-6.26405524, -0.00148293, 0.00090844, 7.26257231, 0.99546341, 0.99760863, 0.49264830,\
++	-6.26408225, -0.00148223, 0.00090802, 7.26260002, 0.99546557, 0.99760976, 0.49264934,\
++	-6.26410916, -0.00148152, 0.00090759, 7.26262764, 0.99546773, 0.99761088, 0.49265036,\
++	-6.26413598, -0.00148082, 0.00090717, 7.26265516, 0.99546989, 0.99761201, 0.49265140,\
++	-6.26416271, -0.00148012, 0.00090674, 7.26268258, 0.99547204, 0.99761314, 0.49265242,\
++	-6.26418933, -0.00147942, 0.00090631, 7.26270991, 0.99547420, 0.99761426, 0.49265345,\
++	-6.26421586, -0.00147872, 0.00090589, 7.26273714, 0.99547635, 0.99761539, 0.49265447,\
++	-6.26424230, -0.00147802, 0.00090547, 7.26276428, 0.99547850, 0.99761651, 0.49265547,\
++	-6.26426864, -0.00147733, 0.00090504, 7.26279132, 0.99548065, 0.99761763, 0.49265649,\
++	-6.26429489, -0.00147663, 0.00090462, 7.26281826, 0.99548279, 0.99761875, 0.49265751,\
++	-6.26432104, -0.00147593, 0.00090419, 7.26284511, 0.99548494, 0.99761987, 0.49265851,\
++	-6.26434710, -0.00147523, 0.00090377, 7.26287186, 0.99548708, 0.99762099, 0.49265951,\
++	-6.26437306, -0.00147454, 0.00090335, 7.26289852, 0.99548922, 0.99762211, 0.49266051,\
++	-6.26439893, -0.00147384, 0.00090293, 7.26292509, 0.99549136, 0.99762323, 0.49266151,\
++	-6.26442471, -0.00147315, 0.00090250, 7.26295156, 0.99549349, 0.99762435, 0.49266249,\
++	-6.26445040, -0.00147246, 0.00090208, 7.26297794, 0.99549563, 0.99762546, 0.49266350,\
++	-6.26447599, -0.00147176, 0.00090166, 7.26300423, 0.99549776, 0.99762658, 0.49266448,\
++	-6.26450150, -0.00147107, 0.00090124, 7.26303043, 0.99549989, 0.99762769, 0.49266547,\
++	-6.26452691, -0.00147038, 0.00090082, 7.26305653, 0.99550202, 0.99762880, 0.49266646,\
++	-6.26455222, -0.00146969, 0.00090040, 7.26308254, 0.99550415, 0.99762991, 0.49266744,\
++	-6.26457745, -0.00146900, 0.00089998, 7.26310846, 0.99550627, 0.99763102, 0.49266841,\
++	-6.26460259, -0.00146831, 0.00089956, 7.26313428, 0.99550839, 0.99763213, 0.49266939,\
++	-6.26462764, -0.00146762, 0.00089914, 7.26316002, 0.99551051, 0.99763324, 0.49267035,\
++	-6.26465259, -0.00146693, 0.00089872, 7.26318567, 0.99551263, 0.99763435, 0.49267132,\
++	-6.26467746, -0.00146624, 0.00089831, 7.26321122, 0.99551475, 0.99763545, 0.49267230,\
++	-6.26470224, -0.00146555, 0.00089789, 7.26323669, 0.99551686, 0.99763656, 0.49267325,\
++	-6.26472693, -0.00146486, 0.00089747, 7.26326207, 0.99551898, 0.99763766, 0.49267421,\
++	-6.26475153, -0.00146418, 0.00089705, 7.26328735, 0.99552109, 0.99763877, 0.49267517,\
++	-6.26477604, -0.00146349, 0.00089664, 7.26331255, 0.99552319, 0.99763987, 0.49267611,\
++	-6.26480047, -0.00146281, 0.00089622, 7.26333766, 0.99552530, 0.99764097, 0.49267707,\
++	-6.26482481, -0.00146212, 0.00089580, 7.26336268, 0.99552741, 0.99764207, 0.49267802,\
++	-6.26484906, -0.00146144, 0.00089539, 7.26338762, 0.99552951, 0.99764317, 0.49267897,\
++	-6.26487322, -0.00146076, 0.00089497, 7.26341246, 0.99553161, 0.99764427, 0.49267991,\
++	-6.26489730, -0.00146007, 0.00089456, 7.26343722, 0.99553371, 0.99764537, 0.49268085,\
++	-6.26492129, -0.00145939, 0.00089414, 7.26346189, 0.99553581, 0.99764646, 0.49268179,\
++	-6.26494519, -0.00145871, 0.00089373, 7.26348648, 0.99553790, 0.99764756, 0.49268272,\
++	-6.26496901, -0.00145803, 0.00089332, 7.26351098, 0.99553999, 0.99764865, 0.49268365,\
++	-6.26499274, -0.00145735, 0.00089290, 7.26353539, 0.99554209, 0.99764975, 0.49268458,\
++	-6.26501639, -0.00145667, 0.00089249, 7.26355972, 0.99554417, 0.99765084, 0.49268549,\
++	-6.26503995, -0.00145599, 0.00089208, 7.26358396, 0.99554626, 0.99765193, 0.49268643,\
++	-6.26506343, -0.00145531, 0.00089166, 7.26360811, 0.99554835, 0.99765302, 0.49268735,\
++	-6.26508682, -0.00145463, 0.00089125, 7.26363219, 0.99555043, 0.99765411, 0.49268826,\
++	-6.26511013, -0.00145396, 0.00089084, 7.26365617, 0.99555251, 0.99765520, 0.49268918,\
++	-6.26513336, -0.00145328, 0.00089043, 7.26368008, 0.99555459, 0.99765629, 0.49269008,\
++	-6.26515650, -0.00145261, 0.00089002, 7.26370389, 0.99555667, 0.99765738, 0.49269099,\
++	-6.26517956, -0.00145193, 0.00088961, 7.26372763, 0.99555875, 0.99765846, 0.49269190,\
++	-6.26520254, -0.00145126, 0.00088920, 7.26375128, 0.99556082, 0.99765955, 0.49269281,\
++	-6.26522543, -0.00145058, 0.00088879, 7.26377485, 0.99556289, 0.99766063, 0.49269370,\
++	-6.26524824, -0.00144991, 0.00088838, 7.26379834, 0.99556496, 0.99766171, 0.49269460,\
++	-6.26527098, -0.00144924, 0.00088797, 7.26382174, 0.99556703, 0.99766280, 0.49269550,\
++	-6.26529363, -0.00144856, 0.00088756, 7.26384506, 0.99556910, 0.99766388, 0.49269640,\
++	-6.26531619, -0.00144789, 0.00088715, 7.26386830, 0.99557116, 0.99766496, 0.49269728,\
++	-6.26533868, -0.00144722, 0.00088674, 7.26389146, 0.99557323, 0.99766604, 0.49269817,\
++	-6.26536109, -0.00144655, 0.00088634, 7.26391454, 0.99557529, 0.99766711, 0.49269905,\
++	-6.26538341, -0.00144588, 0.00088593, 7.26393753, 0.99557735, 0.99766819, 0.49269994,\
++	-6.26540566, -0.00144521, 0.00088552, 7.26396045, 0.99557940, 0.99766927, 0.49270083,\
++	-6.26542783, -0.00144454, 0.00088511, 7.26398329, 0.99558146, 0.99767034, 0.49270168,\
++	-6.26544992, -0.00144387, 0.00088471, 7.26400604, 0.99558351, 0.99767142, 0.49270256,\
++	-6.26547192, -0.00144321, 0.00088430, 7.26402872, 0.99558556, 0.99767249, 0.49270344,\
++	-6.26549385, -0.00144254, 0.00088390, 7.26405131, 0.99558761, 0.99767356, 0.49270431,\
++	-6.26551570, -0.00144187, 0.00088349, 7.26407383, 0.99558966, 0.99767463, 0.49270518,\
++	-6.26553748, -0.00144121, 0.00088309, 7.26409627, 0.99559171, 0.99767571, 0.49270604,\
++	-6.26555917, -0.00144054, 0.00088268, 7.26411863, 0.99559375, 0.99767678, 0.49270690,\
++	-6.26558079, -0.00143988, 0.00088228, 7.26414091, 0.99559579, 0.99767784, 0.49270776,\
++	-6.26560233, -0.00143922, 0.00088187, 7.26416311, 0.99559783, 0.99767891, 0.49270862,\
++	-6.26562379, -0.00143855, 0.00088147, 7.26418524, 0.99559987, 0.99767998, 0.49270947,\
++	-6.26564518, -0.00143789, 0.00088107, 7.26420729, 0.99560191, 0.99768104, 0.49271032,\
++	-6.26566648, -0.00143723, 0.00088066, 7.26422926, 0.99560394, 0.99768211, 0.49271118,\
++	-6.26568772, -0.00143657, 0.00088026, 7.26425115, 0.99560598, 0.99768317, 0.49271202,\
++	-6.26570887, -0.00143590, 0.00087986, 7.26427297, 0.99560801, 0.99768424, 0.49271286,\
++	-6.26572995, -0.00143524, 0.00087946, 7.26429471, 0.99561004, 0.99768530, 0.49271371,\
++	-6.26575096, -0.00143458, 0.00087906, 7.26431637, 0.99561206, 0.99768636, 0.49271455,\
++	-6.26577189, -0.00143393, 0.00087865, 7.26433796, 0.99561409, 0.99768742, 0.49271537,\
++	-6.26579274, -0.00143327, 0.00087825, 7.26435948, 0.99561611, 0.99768848, 0.49271621,\
++	-6.26581352, -0.00143261, 0.00087785, 7.26438092, 0.99561813, 0.99768954, 0.49271704,\
++	-6.26583423, -0.00143195, 0.00087745, 7.26440228, 0.99562015, 0.99769059, 0.49271787,\
++	-6.26585486, -0.00143130, 0.00087705, 7.26442357, 0.99562217, 0.99769165, 0.49271871,\
++	-6.26587542, -0.00143064, 0.00087665, 7.26444478, 0.99562419, 0.99769271, 0.49271954,\
++	-6.26589591, -0.00142998, 0.00087626, 7.26446592, 0.99562620, 0.99769376, 0.49272035,\
++	-6.26591632, -0.00142933, 0.00087586, 7.26448699, 0.99562822, 0.99769482, 0.49272117,\
++	-6.26593666, -0.00142867, 0.00087546, 7.26450798, 0.99563023, 0.99769587, 0.49272198,\
++	-6.26595692, -0.00142802, 0.00087506, 7.26452890, 0.99563224, 0.99769692, 0.49272279,\
++	-6.26597711, -0.00142737, 0.00087466, 7.26454975, 0.99563424, 0.99769797, 0.49272362,\
++	-6.26599724, -0.00142671, 0.00087426, 7.26457052, 0.99563625, 0.99769902, 0.49272441,\
++	-6.26601728, -0.00142606, 0.00087387, 7.26459122, 0.99563825, 0.99770007, 0.49272522,\
++	-6.26603726, -0.00142541, 0.00087347, 7.26461185, 0.99564025, 0.99770112, 0.49272604,\
++	-6.26605717, -0.00142476, 0.00087307, 7.26463241, 0.99564225, 0.99770217, 0.49272683,\
++	-6.26607700, -0.00142411, 0.00087268, 7.26465289, 0.99564425, 0.99770321, 0.49272764,\
++	-6.26609676, -0.00142346, 0.00087228, 7.26467331, 0.99564625, 0.99770426, 0.49272843,\
++	-6.26611646, -0.00142281, 0.00087189, 7.26469365, 0.99564824, 0.99770530, 0.49272921,\
++	-6.26613608, -0.00142216, 0.00087149, 7.26471392, 0.99565024, 0.99770635, 0.49273003,\
++	-6.26615563, -0.00142151, 0.00087110, 7.26473412, 0.99565223, 0.99770739, 0.49273081,\
++	-6.26617512, -0.00142087, 0.00087070, 7.26475425, 0.99565422, 0.99770843, 0.49273160,\
++	-6.26619453, -0.00142022, 0.00087031, 7.26477431, 0.99565620, 0.99770947, 0.49273238,\
++	-6.26621387, -0.00141957, 0.00086992, 7.26479430, 0.99565819, 0.99771051, 0.49273317,\
++	-6.26623315, -0.00141893, 0.00086952, 7.26481422, 0.99566017, 0.99771155, 0.49273396,\
++	-6.26625235, -0.00141828, 0.00086913, 7.26483407, 0.99566216, 0.99771259, 0.49273473,\
++	-6.26627149, -0.00141764, 0.00086874, 7.26485385, 0.99566414, 0.99771362, 0.49273551,\
++	-6.26629056, -0.00141699, 0.00086835, 7.26487356, 0.99566612, 0.99771466, 0.49273628,\
++	-6.26630956, -0.00141635, 0.00086795, 7.26489321, 0.99566809, 0.99771570, 0.49273706,\
++	-6.26632849, -0.00141571, 0.00086756, 7.26491278, 0.99567007, 0.99771673, 0.49273783,\
++	-6.26634735, -0.00141506, 0.00086717, 7.26493229, 0.99567204, 0.99771776, 0.49273859,\
++	-6.26636615, -0.00141442, 0.00086678, 7.26495173, 0.99567401, 0.99771880, 0.49273935,\
++	-6.26638488, -0.00141378, 0.00086639, 7.26497110, 0.99567598, 0.99771983, 0.49274013,\
++	-6.26640355, -0.00141314, 0.00086600, 7.26499041, 0.99567795, 0.99772086, 0.49274089,\
++	-6.26642214, -0.00141250, 0.00086561, 7.26500964, 0.99567992, 0.99772189, 0.49274164,\
++	-6.26644067, -0.00141186, 0.00086522, 7.26502881, 0.99568188, 0.99772292, 0.49274241,\
++	-6.26645914, -0.00141122, 0.00086483, 7.26504792, 0.99568384, 0.99772395, 0.49274316,\
++	-6.26647754, -0.00141058, 0.00086444, 7.26506695, 0.99568580, 0.99772497, 0.49274392,\
++	-6.26649587, -0.00140995, 0.00086405, 7.26508592, 0.99568776, 0.99772600, 0.49274466,\
++	-6.26651414, -0.00140931, 0.00086366, 7.26510483, 0.99568972, 0.99772703, 0.49274542,\
++	-6.26653234, -0.00140867, 0.00086328, 7.26512367, 0.99569168, 0.99772805, 0.49274618,\
++	-6.26655048, -0.00140804, 0.00086289, 7.26514244, 0.99569363, 0.99772908, 0.49274690,\
++	-6.26656855, -0.00140740, 0.00086250, 7.26516115, 0.99569558, 0.99773010, 0.49274765,\
++	-6.26658656, -0.00140677, 0.00086211, 7.26517979, 0.99569753, 0.99773112, 0.49274839,\
++	-6.26660450, -0.00140613, 0.00086173, 7.26519837, 0.99569948, 0.99773214, 0.49274912,\
++	-6.26662238, -0.00140550, 0.00086134, 7.26521688, 0.99570143, 0.99773316, 0.49274986,\
++	-6.26664020, -0.00140486, 0.00086096, 7.26523533, 0.99570337, 0.99773418, 0.49275059,\
++	-6.26665795, -0.00140423, 0.00086057, 7.26525372, 0.99570532, 0.99773520, 0.49275132,\
++	-6.26667564, -0.00140360, 0.00086018, 7.26527204, 0.99570726, 0.99773622, 0.49275206,\
++	-6.26669326, -0.00140297, 0.00085980, 7.26529030, 0.99570920, 0.99773723, 0.49275276,\
++	-6.26671083, -0.00140234, 0.00085942, 7.26530849, 0.99571114, 0.99773825, 0.49275350,\
++	-6.26672833, -0.00140171, 0.00085903, 7.26532662, 0.99571307, 0.99773926, 0.49275423,\
++	-6.26674577, -0.00140108, 0.00085865, 7.26534469, 0.99571501, 0.99774028, 0.49275495,\
++	-6.26676314, -0.00140045, 0.00085826, 7.26536270, 0.99571694, 0.99774129, 0.49275567,\
++	-6.26678046, -0.00139982, 0.00085788, 7.26538064, 0.99571887, 0.99774230, 0.49275639,\
++	-6.26679771, -0.00139919, 0.00085750, 7.26539852, 0.99572080, 0.99774331, 0.49275711,\
++	-6.26681490, -0.00139856, 0.00085711, 7.26541634, 0.99572273, 0.99774433, 0.49275782,\
++	-6.26683203, -0.00139793, 0.00085673, 7.26543410, 0.99572466, 0.99774533, 0.49275852,\
++	-6.26684910, -0.00139731, 0.00085635, 7.26545179, 0.99572658, 0.99774634, 0.49275924,\
++	-6.26686611, -0.00139668, 0.00085597, 7.26546943, 0.99572851, 0.99774735, 0.49275995,\
++	-6.26688306, -0.00139605, 0.00085559, 7.26548700, 0.99573043, 0.99774836, 0.49276065,\
++	-6.26689994, -0.00139543, 0.00085521, 7.26550451, 0.99573235, 0.99774936, 0.49276134,\
++	-6.26691677, -0.00139481, 0.00085482, 7.26552196, 0.99573426, 0.99775037, 0.49276204,\
++	-6.26693354, -0.00139418, 0.00085444, 7.26553936, 0.99573618, 0.99775137, 0.49276274,\
++	-6.26695024, -0.00139356, 0.00085406, 7.26555669, 0.99573809, 0.99775238, 0.49276344,\
++	-6.26696689, -0.00139293, 0.00085368, 7.26557396, 0.99574001, 0.99775338, 0.49276413,\
++	-6.26698348, -0.00139231, 0.00085331, 7.26559117, 0.99574192, 0.99775438, 0.49276484,\
++	-6.26700001, -0.00139169, 0.00085293, 7.26560832, 0.99574383, 0.99775538, 0.49276553,\
++	-6.26701648, -0.00139107, 0.00085255, 7.26562541, 0.99574574, 0.99775638, 0.49276621,\
++	-6.26703289, -0.00139045, 0.00085217, 7.26564245, 0.99574764, 0.99775738, 0.49276691,\
++	-6.26704925, -0.00138983, 0.00085179, 7.26565942, 0.99574955, 0.99775838, 0.49276759,\
++	-6.26706554, -0.00138921, 0.00085141, 7.26567633, 0.99575145, 0.99775938, 0.49276826,\
++	-6.26708178, -0.00138859, 0.00085104, 7.26569319, 0.99575335, 0.99776038, 0.49276895,\
++	-6.26709796, -0.00138797, 0.00085066, 7.26570999, 0.99575525, 0.99776137, 0.49276963,\
++	-6.26711408, -0.00138735, 0.00085028, 7.26572673, 0.99575715, 0.99776237, 0.49277030,\
++	-6.26713015, -0.00138674, 0.00084990, 7.26574341, 0.99575904, 0.99776336, 0.49277097,\
++	-6.26714616, -0.00138612, 0.00084953, 7.26576004, 0.99576094, 0.99776435, 0.49277165,\
++	-6.26716211, -0.00138550, 0.00084915, 7.26577661, 0.99576283, 0.99776535, 0.49277232,\
++	-6.26717800, -0.00138489, 0.00084878, 7.26579312, 0.99576472, 0.99776634, 0.49277298,\
++	-6.26719384, -0.00138427, 0.00084840, 7.26580957, 0.99576661, 0.99776733, 0.49277366,\
++	-6.26720962, -0.00138366, 0.00084803, 7.26582597, 0.99576850, 0.99776832, 0.49277432,\
++	-6.26722535, -0.00138304, 0.00084765, 7.26584231, 0.99577038, 0.99776931, 0.49277499,\
++	-6.26724102, -0.00138243, 0.00084728, 7.26585859, 0.99577227, 0.99777029, 0.49277565,\
++	-6.26725663, -0.00138181, 0.00084690, 7.26587482, 0.99577415, 0.99777128, 0.49277630,\
++	-6.26727219, -0.00138120, 0.00084653, 7.26589099, 0.99577603, 0.99777227, 0.49277698,\
++	-6.26728769, -0.00138059, 0.00084616, 7.26590710, 0.99577791, 0.99777325, 0.49277763,\
++	-6.26730314, -0.00137998, 0.00084578, 7.26592316, 0.99577979, 0.99777424, 0.49277828,\
++	-6.26731854, -0.00137937, 0.00084541, 7.26593917, 0.99578166, 0.99777522, 0.49277893,\
++	-6.26733388, -0.00137876, 0.00084504, 7.26595512, 0.99578354, 0.99777621, 0.49277959,\
++	-6.26734916, -0.00137815, 0.00084467, 7.26597101, 0.99578541, 0.99777719, 0.49278024,\
++	-6.26736439, -0.00137754, 0.00084429, 7.26598685, 0.99578728, 0.99777817, 0.49278088,\
++	-6.26737957, -0.00137693, 0.00084392, 7.26600264, 0.99578915, 0.99777915, 0.49278153,\
++	-6.26739469, -0.00137632, 0.00084355, 7.26601837, 0.99579102, 0.99778013, 0.49278219,\
++	-6.26740976, -0.00137571, 0.00084318, 7.26603405, 0.99579289, 0.99778111, 0.49278281,\
++	-6.26742477, -0.00137510, 0.00084281, 7.26604967, 0.99579475, 0.99778209, 0.49278347,\
++	-6.26743974, -0.00137450, 0.00084244, 7.26606524, 0.99579661, 0.99778306, 0.49278410,\
++	-6.26745464, -0.00137389, 0.00084207, 7.26608075, 0.99579847, 0.99778404, 0.49278472,\
++	-6.26746950, -0.00137328, 0.00084170, 7.26609622, 0.99580033, 0.99778502, 0.49278536,\
++	-6.26748430, -0.00137268, 0.00084133, 7.26611162, 0.99580219, 0.99778599, 0.49278600,\
++	-6.26749906, -0.00137207, 0.00084096, 7.26612698, 0.99580405, 0.99778696, 0.49278663,\
++	-6.26751375, -0.00137147, 0.00084059, 7.26614228, 0.99580590, 0.99778794, 0.49278724,\
++	-6.26752840, -0.00137087, 0.00084022, 7.26615753, 0.99580776, 0.99778891, 0.49278789,\
++	-6.26754300, -0.00137026, 0.00083986, 7.26617273, 0.99580961, 0.99778988, 0.49278852,\
++	-6.26755754, -0.00136966, 0.00083949, 7.26618788, 0.99581146, 0.99779085, 0.49278914,\
++	-6.26757203, -0.00136906, 0.00083912, 7.26620297, 0.99581331, 0.99779182, 0.49278975,\
++	-6.26758647, -0.00136846, 0.00083875, 7.26621801, 0.99581515, 0.99779279, 0.49279037,\
++	-6.26760086, -0.00136786, 0.00083839, 7.26623300, 0.99581700, 0.99779376, 0.49279099,\
++	-6.26761520, -0.00136725, 0.00083802, 7.26624794, 0.99581884, 0.99779472, 0.49279161,\
++	-6.26762949, -0.00136665, 0.00083765, 7.26626283, 0.99582068, 0.99779569, 0.49279223,\
++	-6.26764372, -0.00136605, 0.00083729, 7.26627767, 0.99582252, 0.99779666, 0.49279284,\
++	-6.26765791, -0.00136546, 0.00083692, 7.26629245, 0.99582436, 0.99779762, 0.49279345,\
++	-6.26767205, -0.00136486, 0.00083656, 7.26630719, 0.99582620, 0.99779859, 0.49279407,\
++	-6.26768613, -0.00136426, 0.00083619, 7.26632187, 0.99582804, 0.99779955, 0.49279468,\
++	-6.26770017, -0.00136366, 0.00083583, 7.26633651, 0.99582987, 0.99780051, 0.49279528,\
++	-6.26771416, -0.00136306, 0.00083546, 7.26635109, 0.99583170, 0.99780147, 0.49279588,\
++	-6.26772809, -0.00136247, 0.00083510, 7.26636562, 0.99583353, 0.99780243, 0.49279649,\
++	-6.26774198, -0.00136187, 0.00083474, 7.26638011, 0.99583536, 0.99780339, 0.49279710,\
++	-6.26775582, -0.00136128, 0.00083437, 7.26639454, 0.99583719, 0.99780435, 0.49279770,\
++	-6.26776961, -0.00136068, 0.00083401, 7.26640893, 0.99583902, 0.99780531, 0.49279829,\
++	-6.26778335, -0.00136009, 0.00083365, 7.26642326, 0.99584084, 0.99780627, 0.49279888,\
++	-6.26779704, -0.00135949, 0.00083328, 7.26643755, 0.99584266, 0.99780722, 0.49279946,\
++	-6.26781069, -0.00135890, 0.00083292, 7.26645179, 0.99584449, 0.99780818, 0.49280008,\
++	-6.26782428, -0.00135831, 0.00083256, 7.26646598, 0.99584631, 0.99780913, 0.49280067,\
++	-6.26783783, -0.00135771, 0.00083220, 7.26648012, 0.99584812, 0.99781009, 0.49280125,\
++	-6.26785133, -0.00135712, 0.00083184, 7.26649421, 0.99584994, 0.99781104, 0.49280185,\
++	-6.26786479, -0.00135653, 0.00083148, 7.26650826, 0.99585175, 0.99781199, 0.49280244,\
++	-6.26787819, -0.00135594, 0.00083111, 7.26652225, 0.99585357, 0.99781295, 0.49280301,\
++	-6.26789155, -0.00135535, 0.00083075, 7.26653620, 0.99585538, 0.99781390, 0.49280360,\
++	-6.26790486, -0.00135476, 0.00083039, 7.26655010, 0.99585719, 0.99781485, 0.49280419,\
++	-6.26791812, -0.00135417, 0.00083003, 7.26656395, 0.99585900, 0.99781580, 0.49280476,\
++	-6.26793134, -0.00135358, 0.00082967, 7.26657776, 0.99586081, 0.99781675, 0.49280534,\
++	-6.26794451, -0.00135299, 0.00082931, 7.26659152, 0.99586261, 0.99781769, 0.49280594,\
++	-6.26795764, -0.00135240, 0.00082896, 7.26660523, 0.99586442, 0.99781864, 0.49280650,\
++	-6.26797071, -0.00135182, 0.00082860, 7.26661890, 0.99586622, 0.99781959, 0.49280708,\
++	-6.26798374, -0.00135123, 0.00082824, 7.26663252, 0.99586802, 0.99782053, 0.49280764,\
++	-6.26799673, -0.00135064, 0.00082788, 7.26664609, 0.99586982, 0.99782148, 0.49280822,\
++	-6.26800967, -0.00135006, 0.00082752, 7.26665961, 0.99587162, 0.99782242, 0.49280878,\
++	-6.26802256, -0.00134947, 0.00082717, 7.26667309, 0.99587341, 0.99782336, 0.49280935,\
++	-6.26803541, -0.00134889, 0.00082681, 7.26668653, 0.99587521, 0.99782431, 0.49280992,\
++	-6.26804822, -0.00134830, 0.00082645, 7.26669991, 0.99587700, 0.99782525, 0.49281048,\
++	-6.26806098, -0.00134772, 0.00082609, 7.26671326, 0.99587879, 0.99782619, 0.49281107,\
++	-6.26807369, -0.00134713, 0.00082574, 7.26672655, 0.99588058, 0.99782713, 0.49281162,\
++	-6.26808636, -0.00134655, 0.00082538, 7.26673981, 0.99588237, 0.99782807, 0.49281218,\
++	-6.26809898, -0.00134597, 0.00082503, 7.26675301, 0.99588416, 0.99782900, 0.49281274,\
++	-6.26811156, -0.00134539, 0.00082467, 7.26676617, 0.99588595, 0.99782994, 0.49281329,\
++	-6.26812410, -0.00134481, 0.00082432, 7.26677929, 0.99588773, 0.99783088, 0.49281384,\
++	-6.26813659, -0.00134422, 0.00082396, 7.26679236, 0.99588951, 0.99783181, 0.49281439,\
++	-6.26814904, -0.00134364, 0.00082361, 7.26680539, 0.99589129, 0.99783275, 0.49281496,\
++	-6.26816144, -0.00134306, 0.00082325, 7.26681838, 0.99589307, 0.99783368, 0.49281552,\
++	-6.26817380, -0.00134248, 0.00082290, 7.26683132, 0.99589485, 0.99783462, 0.49281605,\
++	-6.26818612, -0.00134191, 0.00082255, 7.26684421, 0.99589663, 0.99783555, 0.49281661,\
++	-6.26819839, -0.00134133, 0.00082219, 7.26685706, 0.99589840, 0.99783648, 0.49281716,\
++	-6.26821062, -0.00134075, 0.00082184, 7.26686987, 0.99590018, 0.99783741, 0.49281769,\
++	-6.26822281, -0.00134017, 0.00082149, 7.26688264, 0.99590195, 0.99783834, 0.49281824,\
++	-6.26823495, -0.00133959, 0.00082113, 7.26689536, 0.99590372, 0.99783927, 0.49281878,\
++	-6.26824705, -0.00133902, 0.00082078, 7.26690804, 0.99590549, 0.99784020, 0.49281933,\
++	-6.26825911, -0.00133844, 0.00082043, 7.26692067, 0.99590725, 0.99784113, 0.49281987,\
++	-6.26827113, -0.00133787, 0.00082008, 7.26693326, 0.99590902, 0.99784206, 0.49282040,\
++	-6.26828310, -0.00133729, 0.00081973, 7.26694581, 0.99591078, 0.99784298, 0.49282094,\
++	-6.26829504, -0.00133672, 0.00081938, 7.26695832, 0.99591255, 0.99784391, 0.49282147,\
++	-6.26830693, -0.00133614, 0.00081902, 7.26697079, 0.99591431, 0.99784483, 0.49282201,\
++	-6.26831878, -0.00133557, 0.00081867, 7.26698321, 0.99591607, 0.99784576, 0.49282254,\
++	-6.26833058, -0.00133499, 0.00081832, 7.26699559, 0.99591783, 0.99784668, 0.49282308,\
++	-6.26834235, -0.00133442, 0.00081797, 7.26700793, 0.99591958, 0.99784760, 0.49282360,\
++	-6.26835407, -0.00133385, 0.00081762, 7.26702023, 0.99592134, 0.99784853, 0.49282414,\
++	-6.26836576, -0.00133328, 0.00081728, 7.26703248, 0.99592309, 0.99784945, 0.49282465,\
++	-6.26837740, -0.00133271, 0.00081693, 7.26704469, 0.99592485, 0.99785037, 0.49282520,\
++	-6.26838900, -0.00133214, 0.00081658, 7.26705687, 0.99592660, 0.99785129, 0.49282572,\
++	-6.26840056, -0.00133157, 0.00081623, 7.26706900, 0.99592835, 0.99785221, 0.49282624,\
++	-6.26841209, -0.00133100, 0.00081588, 7.26708109, 0.99593009, 0.99785312, 0.49282676,\
++	-6.26842357, -0.00133043, 0.00081553, 7.26709314, 0.99593184, 0.99785404, 0.49282728,\
++	-6.26843501, -0.00132986, 0.00081519, 7.26710515, 0.99593359, 0.99785496, 0.49282780,\
++	-6.26844641, -0.00132929, 0.00081484, 7.26711712, 0.99593533, 0.99785587, 0.49282829,\
++	-6.26845777, -0.00132872, 0.00081449, 7.26712905, 0.99593707, 0.99785679, 0.49282883,\
++	-6.26846909, -0.00132815, 0.00081414, 7.26714093, 0.99593881, 0.99785770, 0.49282934,\
++	-6.26848037, -0.00132759, 0.00081380, 7.26715278, 0.99594055, 0.99785862, 0.49282986,\
++	-6.26849161, -0.00132702, 0.00081345, 7.26716459, 0.99594229, 0.99785953, 0.49283037,\
++	-6.26850281, -0.00132645, 0.00081311, 7.26717636, 0.99594402, 0.99786044, 0.49283087,\
++	-6.26851397, -0.00132589, 0.00081276, 7.26718809, 0.99594576, 0.99786135, 0.49283138,\
++	-6.26852510, -0.00132532, 0.00081242, 7.26719977, 0.99594749, 0.99786226, 0.49283189,\
++	-6.26853618, -0.00132476, 0.00081207, 7.26721142, 0.99594922, 0.99786317, 0.49283239,\
++	-6.26854723, -0.00132419, 0.00081173, 7.26722303, 0.99595095, 0.99786408, 0.49283291,\
++	-6.26855824, -0.00132363, 0.00081138, 7.26723461, 0.99595268, 0.99786499, 0.49283341,\
++	-6.26856921, -0.00132307, 0.00081104, 7.26724614, 0.99595441, 0.99786590, 0.49283391,\
++	-6.26858014, -0.00132251, 0.00081069, 7.26725763, 0.99595614, 0.99786680, 0.49283441,\
++	-6.26859103, -0.00132194, 0.00081035, 7.26726909, 0.99595786, 0.99786771, 0.49283490,\
++	-6.26860188, -0.00132138, 0.00081001, 7.26728050, 0.99595958, 0.99786861, 0.49283543,\
++	-6.26861270, -0.00132082, 0.00080966, 7.26729188, 0.99596131, 0.99786952, 0.49283590,\
++	-6.26862348, -0.00132026, 0.00080932, 7.26730322, 0.99596303, 0.99787042, 0.49283641,\
++	-6.26863422, -0.00131970, 0.00080898, 7.26731452, 0.99596474, 0.99787132, 0.49283690,\
++	-6.26864493, -0.00131914, 0.00080864, 7.26732579, 0.99596646, 0.99787223, 0.49283740,\
++	-6.26865559, -0.00131858, 0.00080829, 7.26733701, 0.99596818, 0.99787313, 0.49283789,\
++	-6.26866622, -0.00131802, 0.00080795, 7.26734820, 0.99596989, 0.99787403, 0.49283838,\
++	-6.26867681, -0.00131746, 0.00080761, 7.26735935, 0.99597160, 0.99787493, 0.49283886,\
++	-6.26868737, -0.00131690, 0.00080727, 7.26737047, 0.99597332, 0.99787583, 0.49283935,\
++	-6.26869789, -0.00131635, 0.00080693, 7.26738154, 0.99597503, 0.99787673, 0.49283983,\
++	-6.26870837, -0.00131579, 0.00080659, 7.26739258, 0.99597673, 0.99787762, 0.49284032,\
++	-6.26871882, -0.00131523, 0.00080625, 7.26740358, 0.99597844, 0.99787852, 0.49284083,\
++	-6.26872923, -0.00131468, 0.00080591, 7.26741455, 0.99598015, 0.99787942, 0.49284129,\
++	-6.26873960, -0.00131412, 0.00080557, 7.26742548, 0.99598185, 0.99788031, 0.49284178,\
++	-6.26874993, -0.00131357, 0.00080523, 7.26743637, 0.99598355, 0.99788121, 0.49284226,\
++	-6.26876024, -0.00131301, 0.00080489, 7.26744723, 0.99598526, 0.99788210, 0.49284273,\
++	-6.26877050, -0.00131246, 0.00080455, 7.26745804, 0.99598696, 0.99788299, 0.49284320,\
++	-6.26878073, -0.00131190, 0.00080421, 7.26746883, 0.99598865, 0.99788389, 0.49284369,\
++	-6.26879092, -0.00131135, 0.00080387, 7.26747958, 0.99599035, 0.99788478, 0.49284417,\
++	-6.26880108, -0.00131080, 0.00080354, 7.26749029, 0.99599205, 0.99788567, 0.49284465,\
++	-6.26881120, -0.00131024, 0.00080320, 7.26750096, 0.99599374, 0.99788656, 0.49284510,\
++	-6.26882129, -0.00130969, 0.00080286, 7.26751160, 0.99599543, 0.99788745, 0.49284559,\
++	-6.26883135, -0.00130914, 0.00080252, 7.26752221, 0.99599713, 0.99788834, 0.49284606,\
++	-6.26884136, -0.00130859, 0.00080219, 7.26753278, 0.99599882, 0.99788923, 0.49284653,\
++	-6.26885135, -0.00130804, 0.00080185, 7.26754331, 0.99600050, 0.99789011, 0.49284699,\
++	-6.26886129, -0.00130749, 0.00080151, 7.26755381, 0.99600219, 0.99789100, 0.49284746,\
++	-6.26887121, -0.00130694, 0.00080118, 7.26756427, 0.99600388, 0.99789189, 0.49284793,\
++	-6.26888109, -0.00130639, 0.00080084, 7.26757470, 0.99600556, 0.99789277, 0.49284838,\
++	-6.26889093, -0.00130584, 0.00080051, 7.26758509, 0.99600724, 0.99789365, 0.49284885,\
++	-6.26890074, -0.00130529, 0.00080017, 7.26759545, 0.99600893, 0.99789454, 0.49284932,\
++	-6.26891052, -0.00130474, 0.00079984, 7.26760578, 0.99601061, 0.99789542, 0.49284977,\
++	-6.26892026, -0.00130420, 0.00079950, 7.26761607, 0.99601228, 0.99789630, 0.49285024,\
++	-6.26892997, -0.00130365, 0.00079917, 7.26762633, 0.99601396, 0.99789719, 0.49285069,\
++	-6.26893965, -0.00130310, 0.00079883, 7.26763655, 0.99601564, 0.99789807, 0.49285114,\
++	-6.26894929, -0.00130256, 0.00079850, 7.26764674, 0.99601731, 0.99789895, 0.49285162,\
++	-6.26895890, -0.00130201, 0.00079816, 7.26765689, 0.99601899, 0.99789983, 0.49285206,\
++	-6.26896848, -0.00130146, 0.00079783, 7.26766701, 0.99602066, 0.99790070, 0.49285251,\
++	-6.26897802, -0.00130092, 0.00079750, 7.26767710, 0.99602233, 0.99790158, 0.49285297,\
++	-6.26898753, -0.00130038, 0.00079717, 7.26768715, 0.99602400, 0.99790246, 0.49285344,\
++	-6.26899700, -0.00129983, 0.00079683, 7.26769717, 0.99602566, 0.99790334, 0.49285388,\
++	-6.26900645, -0.00129929, 0.00079650, 7.26770716, 0.99602733, 0.99790421, 0.49285432,\
++	-6.26901586, -0.00129875, 0.00079617, 7.26771711, 0.99602900, 0.99790509, 0.49285477,\
++	-6.26902524, -0.00129820, 0.00079584, 7.26772703, 0.99603066, 0.99790596, 0.49285523,\
++	-6.26903458, -0.00129766, 0.00079550, 7.26773692, 0.99603232, 0.99790683, 0.49285566,\
++	-6.26904390, -0.00129712, 0.00079517, 7.26774678, 0.99603398, 0.99790771, 0.49285611,\
++	-6.26905318, -0.00129658, 0.00079484, 7.26775660, 0.99603564, 0.99790858, 0.49285655,\
++	-6.26906243, -0.00129604, 0.00079451, 7.26776639, 0.99603730, 0.99790945, 0.49285701,\
++	-6.26907164, -0.00129550, 0.00079418, 7.26777615, 0.99603896, 0.99791032, 0.49285743,\
++	-6.26908083, -0.00129496, 0.00079385, 7.26778587, 0.99604061, 0.99791119, 0.49285787,\
++	-6.26908998, -0.00129442, 0.00079352, 7.26779557, 0.99604227, 0.99791206, 0.49285833,\
++	-6.26909911, -0.00129388, 0.00079319, 7.26780523, 0.99604392, 0.99791293, 0.49285876,\
++	-6.26910820, -0.00129334, 0.00079286, 7.26781486, 0.99604557, 0.99791380, 0.49285921,\
++	-6.26911726, -0.00129280, 0.00079253, 7.26782446, 0.99604722, 0.99791467, 0.49285963,\
++	-6.26912629, -0.00129226, 0.00079220, 7.26783402, 0.99604887, 0.99791553, 0.49286007,\
++	-6.26913528, -0.00129173, 0.00079188, 7.26784356, 0.99605051, 0.99791640, 0.49286049,\
++	-6.26914425, -0.00129119, 0.00079155, 7.26785306, 0.99605216, 0.99791726, 0.49286093,\
++	-6.26915318, -0.00129065, 0.00079122, 7.26786253, 0.99605380, 0.99791813, 0.49286138,\
++	-6.26916209, -0.00129012, 0.00079089, 7.26787197, 0.99605545, 0.99791899, 0.49286178,\
++	-6.26917096, -0.00128958, 0.00079056, 7.26788138, 0.99605709, 0.99791985, 0.49286223,\
++	-6.26917981, -0.00128905, 0.00079024, 7.26789076, 0.99605873, 0.99792072, 0.49286266,\
++	-6.26918862, -0.00128851, 0.00078991, 7.26790011, 0.99606037, 0.99792158, 0.49286308,\
++	-6.26919740, -0.00128798, 0.00078958, 7.26790942, 0.99606201, 0.99792244, 0.49286350,\
++	-6.26920615, -0.00128744, 0.00078926, 7.26791871, 0.99606364, 0.99792330, 0.49286392,\
++	-6.26921488, -0.00128691, 0.00078893, 7.26792797, 0.99606528, 0.99792416, 0.49286436,\
++	-6.26922357, -0.00128638, 0.00078860, 7.26793719, 0.99606691, 0.99792502, 0.49286478,\
++	-6.26923223, -0.00128585, 0.00078828, 7.26794639, 0.99606854, 0.99792588, 0.49286521,\
++	-6.26924086, -0.00128531, 0.00078795, 7.26795555, 0.99607017, 0.99792673, 0.49286564,\
++	-6.26924947, -0.00128478, 0.00078763, 7.26796468, 0.99607180, 0.99792759, 0.49286605,\
++	-6.26925804, -0.00128425, 0.00078730, 7.26797379, 0.99607343, 0.99792845, 0.49286646,\
++	-6.26926658, -0.00128372, 0.00078698, 7.26798286, 0.99607506, 0.99792930, 0.49286689,\
++	-6.26927510, -0.00128319, 0.00078665, 7.26799191, 0.99607668, 0.99793016, 0.49286730,\
++	-6.26928358, -0.00128266, 0.00078633, 7.26800092, 0.99607831, 0.99793101, 0.49286770,\
++	-6.26929204, -0.00128213, 0.00078601, 7.26800991, 0.99607993, 0.99793186, 0.49286812,\
++	-6.26930047, -0.00128160, 0.00078568, 7.26801887, 0.99608155, 0.99793272, 0.49286854,\
++	-6.26930887, -0.00128107, 0.00078536, 7.26802779, 0.99608317, 0.99793357, 0.49286895,\
++	-6.26931724, -0.00128054, 0.00078504, 7.26803669, 0.99608479, 0.99793442, 0.49286937,\
++	-6.26932558, -0.00128002, 0.00078471, 7.26804556, 0.99608641, 0.99793527, 0.49286977,\
++	-6.26933389, -0.00127949, 0.00078439, 7.26805440, 0.99608802, 0.99793612, 0.49287019,\
++	-6.26934217, -0.00127896, 0.00078407, 7.26806321, 0.99608964, 0.99793697, 0.49287058,\
++	-6.26935043, -0.00127844, 0.00078375, 7.26807199, 0.99609125, 0.99793782, 0.49287100,\
++	-6.26935866, -0.00127791, 0.00078342, 7.26808075, 0.99609287, 0.99793867, 0.49287142,\
++	-6.26936686, -0.00127738, 0.00078310, 7.26808947, 0.99609448, 0.99793951, 0.49287182,\
++	-6.26937503, -0.00127686, 0.00078278, 7.26809817, 0.99609609, 0.99794036, 0.49287224,\
++	-6.26938317, -0.00127634, 0.00078246, 7.26810683, 0.99609769, 0.99794120, 0.49287263,\
++	-6.26939129, -0.00127581, 0.00078214, 7.26811547, 0.99609930, 0.99794205, 0.49287302,\
++	-6.26939937, -0.00127529, 0.00078182, 7.26812409, 0.99610091, 0.99794289, 0.49287345,\
++	-6.26940743, -0.00127476, 0.00078150, 7.26813267, 0.99610251, 0.99794374, 0.49287384,\
++	-6.26941547, -0.00127424, 0.00078118, 7.26814123, 0.99610411, 0.99794458, 0.49287423,\
++	-6.26942347, -0.00127372, 0.00078086, 7.26814975, 0.99610572, 0.99794542, 0.49287464,\
++	-6.26943145, -0.00127320, 0.00078054, 7.26815825, 0.99610732, 0.99794626, 0.49287504,\
++	-6.26943940, -0.00127267, 0.00078022, 7.26816673, 0.99610892, 0.99794711, 0.49287543,\
++	-6.26944732, -0.00127215, 0.00077990, 7.26817517, 0.99611051, 0.99794795, 0.49287581,\
++	-6.26945522, -0.00127163, 0.00077958, 7.26818359, 0.99611211, 0.99794879, 0.49287621,\
++	-6.26946309, -0.00127111, 0.00077926, 7.26819198, 0.99611370, 0.99794962, 0.49287661,\
++	-6.26947093, -0.00127059, 0.00077895, 7.26820034, 0.99611530, 0.99795046, 0.49287701,\
++	-6.26947875, -0.00127007, 0.00077863, 7.26820868, 0.99611689, 0.99795130, 0.49287739,\
++	-6.26948654, -0.00126955, 0.00077831, 7.26821698, 0.99611848, 0.99795214, 0.49287779,\
++	-6.26949430, -0.00126903, 0.00077799, 7.26822527, 0.99612007, 0.99795297, 0.49287817,\
++	-6.26950204, -0.00126852, 0.00077768, 7.26823352, 0.99612166, 0.99795381, 0.49287857,\
++	-6.26950975, -0.00126800, 0.00077736, 7.26824175, 0.99612325, 0.99795464, 0.49287896,\
++	-6.26951743, -0.00126748, 0.00077704, 7.26824995, 0.99612484, 0.99795548, 0.49287934,\
++	-6.26952509, -0.00126696, 0.00077673, 7.26825813, 0.99612642, 0.99795631, 0.49287973,\
++	-6.26953272, -0.00126645, 0.00077641, 7.26826627, 0.99612800, 0.99795714, 0.49288012,\
++	-6.26954033, -0.00126593, 0.00077609, 7.26827440, 0.99612959, 0.99795798, 0.49288050,\
++	-6.26954791, -0.00126541, 0.00077578, 7.26828249, 0.99613117, 0.99795881, 0.49288087,\
++	-6.26955546, -0.00126490, 0.00077546, 7.26829056, 0.99613275, 0.99795964, 0.49288126,\
++	-6.26956299, -0.00126438, 0.00077515, 7.26829860, 0.99613433, 0.99796047, 0.49288164,\
++	-6.26957049, -0.00126387, 0.00077483, 7.26830662, 0.99613590, 0.99796130, 0.49288203,\
++	-6.26957797, -0.00126335, 0.00077452, 7.26831461, 0.99613748, 0.99796213, 0.49288240,\
++	-6.26958542, -0.00126284, 0.00077420, 7.26832258, 0.99613905, 0.99796296, 0.49288278,\
++	-6.26959285, -0.00126233, 0.00077389, 7.26833052, 0.99614063, 0.99796378, 0.49288317,\
++	-6.26960025, -0.00126181, 0.00077357, 7.26833844, 0.99614220, 0.99796461, 0.49288354,\
++	-6.26960763, -0.00126130, 0.00077326, 7.26834632, 0.99614377, 0.99796544, 0.49288392,\
++	-6.26961498, -0.00126079, 0.00077295, 7.26835419, 0.99614534, 0.99796626, 0.49288432,\
++	-6.26962230, -0.00126028, 0.00077263, 7.26836203, 0.99614691, 0.99796709, 0.49288467,\
++	-6.26962961, -0.00125977, 0.00077232, 7.26836984, 0.99614847, 0.99796791, 0.49288504,\
++	-6.26963688, -0.00125926, 0.00077201, 7.26837763, 0.99615004, 0.99796874, 0.49288540,\
++	-6.26964414, -0.00125874, 0.00077170, 7.26838539, 0.99615160, 0.99796956, 0.49288580,\
++	-6.26965137, -0.00125823, 0.00077138, 7.26839313, 0.99615317, 0.99797038, 0.49288618,\
++	-6.26965857, -0.00125772, 0.00077107, 7.26840084, 0.99615473, 0.99797120, 0.49288651,\
++	-6.26966575, -0.00125722, 0.00077076, 7.26840853, 0.99615629, 0.99797202, 0.49288691,\
++	-6.26967290, -0.00125671, 0.00077045, 7.26841620, 0.99615785, 0.99797284, 0.49288729,\
++	-6.26968003, -0.00125620, 0.00077014, 7.26842384, 0.99615941, 0.99797366, 0.49288765,\
++	-6.26968714, -0.00125569, 0.00076983, 7.26843145, 0.99616097, 0.99797448, 0.49288801,\
++	-6.26969422, -0.00125518, 0.00076952, 7.26843904, 0.99616252, 0.99797530, 0.49288835,\
++	-6.26970128, -0.00125468, 0.00076920, 7.26844661, 0.99616408, 0.99797612, 0.49288872,\
++	-6.26970832, -0.00125417, 0.00076889, 7.26845415, 0.99616563, 0.99797694, 0.49288910,\
++	-6.26971533, -0.00125366, 0.00076858, 7.26846167, 0.99616718, 0.99797775, 0.49288946,\
++	-6.26972232, -0.00125316, 0.00076827, 7.26846916, 0.99616873, 0.99797857, 0.49288983,\
++	-6.26972928, -0.00125265, 0.00076797, 7.26847663, 0.99617028, 0.99797938, 0.49289019,\
++	-6.26973622, -0.00125214, 0.00076766, 7.26848408, 0.99617183, 0.99798020, 0.49289056,\
++	-6.26974314, -0.00125164, 0.00076735, 7.26849150, 0.99617338, 0.99798101, 0.49289092,\
++	-6.26975003, -0.00125114, 0.00076704, 7.26849890, 0.99617492, 0.99798183, 0.49289126,\
++	-6.26975691, -0.00125063, 0.00076673, 7.26850627, 0.99617647, 0.99798264, 0.49289162,\
++	-6.26976375, -0.00125013, 0.00076642, 7.26851363, 0.99617801, 0.99798345, 0.49289199,\
++	-6.26977058, -0.00124962, 0.00076611, 7.26852095, 0.99617955, 0.99798426, 0.49289234,\
++	-6.26977738, -0.00124912, 0.00076581, 7.26852826, 0.99618109, 0.99798507, 0.49289269,\
++	-6.26978416, -0.00124862, 0.00076550, 7.26853554, 0.99618263, 0.99798588, 0.49289304,\
++	-6.26979092, -0.00124812, 0.00076519, 7.26854280, 0.99618417, 0.99798669, 0.49289341,\
++	-6.26979765, -0.00124762, 0.00076488, 7.26855003, 0.99618571, 0.99798750, 0.49289376,\
++	-6.26980436, -0.00124711, 0.00076458, 7.26855725, 0.99618724, 0.99798831, 0.49289409,\
++	-6.26981105, -0.00124661, 0.00076427, 7.26856444, 0.99618878, 0.99798912, 0.49289444,\
++	-6.26981772, -0.00124611, 0.00076396, 7.26857160, 0.99619031, 0.99798992, 0.49289482,\
++	-6.26982436, -0.00124561, 0.00076366, 7.26857875, 0.99619184, 0.99799073, 0.49289516,\
++	-6.26983098, -0.00124511, 0.00076335, 7.26858587, 0.99619337, 0.99799154, 0.49289554,\
++	-6.26983758, -0.00124461, 0.00076305, 7.26859297, 0.99619490, 0.99799234, 0.49289586,\
++	-6.26984416, -0.00124412, 0.00076274, 7.26860004, 0.99619643, 0.99799314, 0.49289620,\
++	-6.26985071, -0.00124362, 0.00076244, 7.26860710, 0.99619796, 0.99799395, 0.49289657,\
++	-6.26985725, -0.00124312, 0.00076213, 7.26861413, 0.99619949, 0.99799475, 0.49289690,\
++	-6.26986376, -0.00124262, 0.00076183, 7.26862114, 0.99620101, 0.99799555, 0.49289724,\
++	-6.26987025, -0.00124212, 0.00076152, 7.26862812, 0.99620253, 0.99799636, 0.49289757,\
++	-6.26987672, -0.00124163, 0.00076122, 7.26863509, 0.99620406, 0.99799716, 0.49289792,\
++	-6.26988316, -0.00124113, 0.00076091, 7.26864203, 0.99620558, 0.99799796, 0.49289828,\
++	-6.26988959, -0.00124063, 0.00076061, 7.26864895, 0.99620710, 0.99799876, 0.49289862,\
++	-6.26989599, -0.00124014, 0.00076031, 7.26865585, 0.99620862, 0.99799956, 0.49289895,\
++	-6.26990237, -0.00123964, 0.00076000, 7.26866273, 0.99621013, 0.99800035, 0.49289931,\
++	-6.26990873, -0.00123915, 0.00075970, 7.26866958, 0.99621165, 0.99800115, 0.49289965,\
++	-6.26991507, -0.00123865, 0.00075940, 7.26867642, 0.99621317, 0.99800195, 0.49289998,\
++	-6.26992139, -0.00123816, 0.00075909, 7.26868323, 0.99621468, 0.99800275, 0.49290032,\
++	-6.26992769, -0.00123767, 0.00075879, 7.26869002, 0.99621619, 0.99800354, 0.49290066,\
++	-6.26993396, -0.00123717, 0.00075849, 7.26869679, 0.99621770, 0.99800434, 0.49290100,\
++	-6.26994022, -0.00123668, 0.00075819, 7.26870354, 0.99621921, 0.99800513, 0.49290132,\
++	-6.26994645, -0.00123619, 0.00075789, 7.26871027, 0.99622072, 0.99800593, 0.49290166,\
++	-6.26995267, -0.00123569, 0.00075758, 7.26871697, 0.99622223, 0.99800672, 0.49290199,\
++	-6.26995886, -0.00123520, 0.00075728, 7.26872366, 0.99622374, 0.99800751, 0.49290231,\
++	-6.26996503, -0.00123471, 0.00075698, 7.26873032, 0.99622524, 0.99800831, 0.49290268,\
++	-6.26997119, -0.00123422, 0.00075668, 7.26873697, 0.99622675, 0.99800910, 0.49290298,\
++	-6.26997732, -0.00123373, 0.00075638, 7.26874359, 0.99622825, 0.99800989, 0.49290333,\
++	-6.26998343, -0.00123324, 0.00075608, 7.26875019, 0.99622975, 0.99801068, 0.49290366,\
++	-6.26998952, -0.00123275, 0.00075578, 7.26875677, 0.99623126, 0.99801147, 0.49290397,\
++	-6.26999559, -0.00123226, 0.00075548, 7.26876333, 0.99623275, 0.99801226, 0.49290432,\
++	-6.27000164, -0.00123177, 0.00075518, 7.26876987, 0.99623425, 0.99801305, 0.49290464,\
++	-6.27000767, -0.00123128, 0.00075488, 7.26877639, 0.99623575, 0.99801384, 0.49290499,\
++	-6.27001368, -0.00123079, 0.00075458, 7.26878289, 0.99623725, 0.99801462, 0.49290530,\
++	-6.27001968, -0.00123031, 0.00075428, 7.26878937, 0.99623874, 0.99801541, 0.49290562,\
++	-6.27002565, -0.00122982, 0.00075399, 7.26879583, 0.99624024, 0.99801620, 0.49290596,\
++	-6.27003160, -0.00122933, 0.00075369, 7.26880227, 0.99624173, 0.99801698, 0.49290628,\
++	-6.27003753, -0.00122884, 0.00075339, 7.26880869, 0.99624322, 0.99801777, 0.49290660,\
++	-6.27004344, -0.00122836, 0.00075309, 7.26881508, 0.99624471, 0.99801855, 0.49290693,\
++	-6.27004933, -0.00122787, 0.00075279, 7.26882146, 0.99624620, 0.99801934, 0.49290725,\
++	-6.27005521, -0.00122739, 0.00075250, 7.26882782, 0.99624769, 0.99802012, 0.49290756,\
++	-6.27006106, -0.00122690, 0.00075220, 7.26883416, 0.99624917, 0.99802090, 0.49290790,\
++	-6.27006690, -0.00122642, 0.00075190, 7.26884048, 0.99625066, 0.99802168, 0.49290821,\
++	-6.27007271, -0.00122593, 0.00075160, 7.26884678, 0.99625214, 0.99802246, 0.49290851,\
++	-6.27007851, -0.00122545, 0.00075131, 7.26885306, 0.99625363, 0.99802324, 0.49290885,\
++	-6.27008428, -0.00122496, 0.00075101, 7.26885932, 0.99625511, 0.99802402, 0.49290916,\
++	-6.27009004, -0.00122448, 0.00075072, 7.26886556, 0.99625659, 0.99802480, 0.49290948,\
++	-6.27009578, -0.00122400, 0.00075042, 7.26887178, 0.99625807, 0.99802558, 0.49290980,\
++	-6.27010150, -0.00122351, 0.00075012, 7.26887799, 0.99625955, 0.99802636, 0.49291012,\
++	-6.27010720, -0.00122303, 0.00074983, 7.26888417, 0.99626102, 0.99802714, 0.49291045,\
++	-6.27011288, -0.00122255, 0.00074953, 7.26889033, 0.99626250, 0.99802792, 0.49291075,\
++	-6.27011855, -0.00122207, 0.00074924, 7.26889648, 0.99626398, 0.99802869, 0.49291108,\
++	-6.27012419, -0.00122159, 0.00074894, 7.26890260, 0.99626545, 0.99802947, 0.49291137,\
++	-6.27012982, -0.00122111, 0.00074865, 7.26890871, 0.99626692, 0.99803024, 0.49291169,\
++	-6.27013543, -0.00122063, 0.00074836, 7.26891480, 0.99626839, 0.99803102, 0.49291199,\
++	-6.27014102, -0.00122015, 0.00074806, 7.26892087, 0.99626986, 0.99803179, 0.49291232,\
++	-6.27014659, -0.00121967, 0.00074777, 7.26892692, 0.99627133, 0.99803257, 0.49291262,\
++	-6.27015214, -0.00121919, 0.00074747, 7.26893295, 0.99627280, 0.99803334, 0.49291295,\
++	-6.27015767, -0.00121871, 0.00074718, 7.26893897, 0.99627427, 0.99803411, 0.49291325,\
++	-6.27016319, -0.00121823, 0.00074689, 7.26894496, 0.99627574, 0.99803488, 0.49291356,\
++	-6.27016869, -0.00121775, 0.00074659, 7.26895094, 0.99627720, 0.99803565, 0.49291386,\
++	-6.27017417, -0.00121727, 0.00074630, 7.26895690, 0.99627866, 0.99803642, 0.49291418,\
++	-6.27017963, -0.00121680, 0.00074601, 7.26896284, 0.99628013, 0.99803719, 0.49291448,\
++	-6.27018508, -0.00121632, 0.00074572, 7.26896876, 0.99628159, 0.99803796, 0.49291478,\
++	-6.27019050, -0.00121584, 0.00074543, 7.26897466, 0.99628305, 0.99803873, 0.49291509,\
++	-6.27019591, -0.00121537, 0.00074513, 7.26898055, 0.99628451, 0.99803950, 0.49291539,\
++	-6.27020130, -0.00121489, 0.00074484, 7.26898641, 0.99628596, 0.99804027, 0.49291571,\
++	-6.27020668, -0.00121441, 0.00074455, 7.26899226, 0.99628742, 0.99804103, 0.49291599,\
++	-6.27021203, -0.00121394, 0.00074426, 7.26899810, 0.99628888, 0.99804180, 0.49291629,\
++	-6.27021737, -0.00121346, 0.00074397, 7.26900391, 0.99629033, 0.99804257, 0.49291660,\
++	-6.27022270, -0.00121299, 0.00074368, 7.26900971, 0.99629178, 0.99804333, 0.49291688,\
++	-6.27022800, -0.00121252, 0.00074339, 7.26901548, 0.99629324, 0.99804410, 0.49291722,\
++	-6.27023329, -0.00121204, 0.00074310, 7.26902124, 0.99629469, 0.99804486, 0.49291750,\
++	-6.27023856, -0.00121157, 0.00074281, 7.26902699, 0.99629614, 0.99804562, 0.49291781,\
++	-6.27024381, -0.00121110, 0.00074252, 7.26903271, 0.99629759, 0.99804639, 0.49291812,\
++	-6.27024904, -0.00121062, 0.00074223, 7.26903842, 0.99629903, 0.99804715, 0.49291840,\
++	-6.27025426, -0.00121015, 0.00074194, 7.26904411, 0.99630048, 0.99804791, 0.49291870,\
++	-6.27025946, -0.00120968, 0.00074165, 7.26904979, 0.99630193, 0.99804867, 0.49291902,\
++	-6.27026465, -0.00120921, 0.00074136, 7.26905544, 0.99630337, 0.99804943, 0.49291932,\
++	-6.27026982, -0.00120874, 0.00074107, 7.26906108, 0.99630481, 0.99805019, 0.49291960,\
++	-6.27027497, -0.00120827, 0.00074078, 7.26906670, 0.99630626, 0.99805095, 0.49291988,\
++	-6.27028010, -0.00120780, 0.00074050, 7.26907231, 0.99630770, 0.99805171, 0.49292018,\
++	-6.27028522, -0.00120732, 0.00074021, 7.26907789, 0.99630914, 0.99805247, 0.49292047,\
++	-6.27029032, -0.00120686, 0.00073992, 7.26908347, 0.99631057, 0.99805322, 0.49292077,\
++	-6.27029541, -0.00120639, 0.00073963, 7.26908902, 0.99631201, 0.99805398, 0.49292106,\
++	-6.27030047, -0.00120592, 0.00073934, 7.26909456, 0.99631345, 0.99805474, 0.49292137,\
++	-6.27030552, -0.00120545, 0.00073906, 7.26910008, 0.99631488, 0.99805549, 0.49292164,\
++	-6.27031056, -0.00120498, 0.00073877, 7.26910558, 0.99631632, 0.99805625, 0.49292193,\
++	-6.27031558, -0.00120451, 0.00073848, 7.26911107, 0.99631775, 0.99805700, 0.49292223,\
++	-6.27032058, -0.00120404, 0.00073820, 7.26911654, 0.99631918, 0.99805776, 0.49292252,\
++	-6.27032557, -0.00120358, 0.00073791, 7.26912199, 0.99632061, 0.99805851, 0.49292278,\
++	-6.27033054, -0.00120311, 0.00073763, 7.26912743, 0.99632204, 0.99805926, 0.49292312,\
++	-6.27033549, -0.00120264, 0.00073734, 7.26913285, 0.99632347, 0.99806002, 0.49292338,\
++	-6.27034043, -0.00120218, 0.00073705, 7.26913825, 0.99632490, 0.99806077, 0.49292367,\
++	-6.27034536, -0.00120171, 0.00073677, 7.26914364, 0.99632633, 0.99806152, 0.49292394,\
++	-6.27035026, -0.00120125, 0.00073648, 7.26914902, 0.99632775, 0.99806227, 0.49292425,\
++	-6.27035515, -0.00120078, 0.00073620, 7.26915437, 0.99632918, 0.99806302, 0.49292452,\
++	-6.27036003, -0.00120032, 0.00073591, 7.26915971, 0.99633060, 0.99806377, 0.49292480,\
++	-6.27036489, -0.00119985, 0.00073563, 7.26916504, 0.99633202, 0.99806452, 0.49292511,\
++	-6.27036973, -0.00119939, 0.00073535, 7.26917034, 0.99633344, 0.99806527, 0.49292536,\
++	-6.27037456, -0.00119892, 0.00073506, 7.26917564, 0.99633486, 0.99806601, 0.49292567,\
++	-6.27037937, -0.00119846, 0.00073478, 7.26918091, 0.99633628, 0.99806676, 0.49292595,\
++	-6.27038417, -0.00119800, 0.00073449, 7.26918617, 0.99633770, 0.99806751, 0.49292622,\
++	-6.27038895, -0.00119754, 0.00073421, 7.26919142, 0.99633912, 0.99806825, 0.49292651,\
++	-6.27039372, -0.00119707, 0.00073393, 7.26919664, 0.99634053, 0.99806900, 0.49292678,\
++	-6.27039847, -0.00119661, 0.00073364, 7.26920186, 0.99634195, 0.99806974, 0.49292707,\
++	-6.27040321, -0.00119615, 0.00073336, 7.26920706, 0.99634336, 0.99807049, 0.49292736,\
++	-6.27040793, -0.00119569, 0.00073308, 7.26921224, 0.99634477, 0.99807123, 0.49292762,\
++	-6.27041263, -0.00119523, 0.00073280, 7.26921740, 0.99634618, 0.99807198, 0.49292790,\
++	-6.27041732, -0.00119477, 0.00073251, 7.26922256, 0.99634759, 0.99807272, 0.49292816,\
++	-6.27042200, -0.00119431, 0.00073223, 7.26922769, 0.99634900, 0.99807346, 0.49292845,\
++	-6.27042666, -0.00119385, 0.00073195, 7.26923281, 0.99635041, 0.99807420, 0.49292873,\
++	-6.27043131, -0.00119339, 0.00073167, 7.26923792, 0.99635182, 0.99807494, 0.49292902,\
++	-6.27043594, -0.00119293, 0.00073139, 7.26924301, 0.99635322, 0.99807568, 0.49292929,\
++	-6.27044055, -0.00119247, 0.00073111, 7.26924808, 0.99635463, 0.99807642, 0.49292955,\
++	-6.27044516, -0.00119201, 0.00073083, 7.26925314, 0.99635603, 0.99807716, 0.49292983,\
++	-6.27044974, -0.00119155, 0.00073054, 7.26925819, 0.99635743, 0.99807790, 0.49293011,\
++	-6.27045432, -0.00119110, 0.00073026, 7.26926322, 0.99635884, 0.99807864, 0.49293037,\
++	-6.27045887, -0.00119064, 0.00072998, 7.26926823, 0.99636024, 0.99807938, 0.49293066,\
++	-6.27046342, -0.00119018, 0.00072970, 7.26927323, 0.99636164, 0.99808011, 0.49293095,\
++	-6.27046795, -0.00118973, 0.00072942, 7.26927822, 0.99636303, 0.99808085, 0.49293118,\
++	-6.27047246, -0.00118927, 0.00072914, 7.26928319, 0.99636443, 0.99808158, 0.49293146,\
++	-6.27047696, -0.00118881, 0.00072887, 7.26928815, 0.99636583, 0.99808232, 0.49293175,\
++	-6.27048145, -0.00118836, 0.00072859, 7.26929309, 0.99636722, 0.99808305, 0.49293201,\
++	-6.27048592, -0.00118790, 0.00072831, 7.26929802, 0.99636862, 0.99808379, 0.49293228,\
++	-6.27049038, -0.00118745, 0.00072803, 7.26930293, 0.99637001, 0.99808452, 0.49293255,\
++	-6.27049482, -0.00118699, 0.00072775, 7.26930783, 0.99637140, 0.99808526, 0.49293281,\
++	-6.27049925, -0.00118654, 0.00072747, 7.26931271, 0.99637279, 0.99808599, 0.49293309,\
++	-6.27050366, -0.00118609, 0.00072719, 7.26931758, 0.99637418, 0.99808672, 0.49293334,\
++	-6.27050807, -0.00118563, 0.00072692, 7.26932243, 0.99637557, 0.99808745, 0.49293360,\
++	-6.27051245, -0.00118518, 0.00072664, 7.26932727, 0.99637696, 0.99808818, 0.49293390,\
++	-6.27051683, -0.00118473, 0.00072636, 7.26933210, 0.99637835, 0.99808891, 0.49293415,\
++	-6.27052119, -0.00118427, 0.00072608, 7.26933691, 0.99637973, 0.99808964, 0.49293444,\
++	-6.27052553, -0.00118382, 0.00072581, 7.26934171, 0.99638112, 0.99809037, 0.49293467,\
++	-6.27052986, -0.00118337, 0.00072553, 7.26934649, 0.99638250, 0.99809110, 0.49293494,\
++	-6.27053418, -0.00118292, 0.00072525, 7.26935126, 0.99638388, 0.99809183, 0.49293521,\
++	-6.27053849, -0.00118247, 0.00072498, 7.26935602, 0.99638526, 0.99809256, 0.49293547,\
++	-6.27054278, -0.00118202, 0.00072470, 7.26936076, 0.99638664, 0.99809328, 0.49293575,\
++	-6.27054706, -0.00118157, 0.00072442, 7.26936549, 0.99638802, 0.99809401, 0.49293600,\
++	-6.27055132, -0.00118112, 0.00072415, 7.26937020, 0.99638940, 0.99809474, 0.49293625,\
++	-6.27055557, -0.00118067, 0.00072387, 7.26937491, 0.99639078, 0.99809546, 0.49293651,\
++	-6.27055981, -0.00118022, 0.00072360, 7.26937959, 0.99639215, 0.99809619, 0.49293677,\
++	-6.27056403, -0.00117977, 0.00072332, 7.26938427, 0.99639353, 0.99809691, 0.49293703,\
++	-6.27056825, -0.00117932, 0.00072305, 7.26938893, 0.99639490, 0.99809763, 0.49293729,\
++	-6.27057244, -0.00117887, 0.00072277, 7.26939357, 0.99639628, 0.99809836, 0.49293754,\
++	-6.27057663, -0.00117842, 0.00072250, 7.26939820, 0.99639765, 0.99809908, 0.49293783,\
++	-6.27058080, -0.00117798, 0.00072222, 7.26940282, 0.99639902, 0.99809980, 0.49293807,\
++	-6.27058496, -0.00117753, 0.00072195, 7.26940743, 0.99640039, 0.99810052, 0.49293833,\
++	-6.27058910, -0.00117708, 0.00072167, 7.26941202, 0.99640176, 0.99810124, 0.49293858,\
++	-6.27059324, -0.00117663, 0.00072140, 7.26941660, 0.99640312, 0.99810196, 0.49293885,\
++	-6.27059736, -0.00117619, 0.00072113, 7.26942117, 0.99640449, 0.99810268, 0.49293910,\
++	-6.27060146, -0.00117574, 0.00072085, 7.26942572, 0.99640586, 0.99810340, 0.49293936,\
++	-6.27060556, -0.00117530, 0.00072058, 7.26943026, 0.99640722, 0.99810412, 0.49293961,\
++	-6.27060964, -0.00117485, 0.00072031, 7.26943479, 0.99640859, 0.99810484, 0.49293988,\
++	-6.27061371, -0.00117441, 0.00072004, 7.26943930, 0.99640995, 0.99810556, 0.49294014,\
++	-6.27061776, -0.00117396, 0.00071976, 7.26944380, 0.99641131, 0.99810628, 0.49294037,\
++	-6.27062180, -0.00117352, 0.00071949, 7.26944829, 0.99641267, 0.99810699, 0.49294061,\
++	-6.27062583, -0.00117307, 0.00071922, 7.26945276, 0.99641403, 0.99810771, 0.49294091,\
++	-6.27062985, -0.00117263, 0.00071895, 7.26945722, 0.99641539, 0.99810842, 0.49294113,\
++	-6.27063386, -0.00117219, 0.00071867, 7.26946167, 0.99641675, 0.99810914, 0.49294137,\
++	-6.27063785, -0.00117174, 0.00071840, 7.26946611, 0.99641810, 0.99810985, 0.49294161,\
++	-6.27064183, -0.00117130, 0.00071813, 7.26947053, 0.99641946, 0.99811057, 0.49294187,\
++	-6.27064580, -0.00117086, 0.00071786, 7.26947494, 0.99642081, 0.99811128, 0.49294216,\
++	-6.27064976, -0.00117042, 0.00071759, 7.26947934, 0.99642217, 0.99811199, 0.49294239,\
++	-6.27065370, -0.00116997, 0.00071732, 7.26948372, 0.99642352, 0.99811271, 0.49294263,\
++	-6.27065763, -0.00116953, 0.00071705, 7.26948810, 0.99642487, 0.99811342, 0.49294289,\
++	-6.27066155, -0.00116909, 0.00071678, 7.26949246, 0.99642622, 0.99811413, 0.49294314,\
++	-6.27066546, -0.00116865, 0.00071651, 7.26949680, 0.99642757, 0.99811484, 0.49294338,\
++	-6.27066935, -0.00116821, 0.00071624, 7.26950114, 0.99642892, 0.99811555, 0.49294362,\
++	-6.27067323, -0.00116777, 0.00071597, 7.26950546, 0.99643026, 0.99811626, 0.49294387,\
++	-6.27067711, -0.00116733, 0.00071570, 7.26950977, 0.99643161, 0.99811697, 0.49294414,\
++	-6.27068096, -0.00116689, 0.00071543, 7.26951407, 0.99643296, 0.99811768, 0.49294435,\
++	-6.27068481, -0.00116645, 0.00071516, 7.26951836, 0.99643430, 0.99811839, 0.49294462,\
++	-6.27068865, -0.00116601, 0.00071489, 7.26952263, 0.99643564, 0.99811909, 0.49294486,\
++	-6.27069247, -0.00116558, 0.00071462, 7.26952689, 0.99643699, 0.99811980, 0.49294512,\
++	-6.27069628, -0.00116514, 0.00071435, 7.26953114, 0.99643833, 0.99812051, 0.49294533,\
++	-6.27070008, -0.00116470, 0.00071409, 7.26953538, 0.99643967, 0.99812121, 0.49294559,\
++	-6.27070387, -0.00116426, 0.00071382, 7.26953961, 0.99644101, 0.99812192, 0.49294582,\
++	-6.27070765, -0.00116383, 0.00071355, 7.26954382, 0.99644235, 0.99812262, 0.49294607,\
++	-6.27071141, -0.00116339, 0.00071328, 7.26954802, 0.99644368, 0.99812333, 0.49294633,\
++	-6.27071516, -0.00116295, 0.00071301, 7.26955221, 0.99644502, 0.99812403, 0.49294657,\
++	-6.27071891, -0.00116252, 0.00071275, 7.26955639, 0.99644635, 0.99812474, 0.49294678,\
++	-6.27072264, -0.00116208, 0.00071248, 7.26956056, 0.99644769, 0.99812544, 0.49294701,\
++	-6.27072636, -0.00116165, 0.00071221, 7.26956471, 0.99644902, 0.99812614, 0.49294726,\
++	-6.27073006, -0.00116121, 0.00071195, 7.26956885, 0.99645035, 0.99812684, 0.49294753,\
++	-6.27073376, -0.00116078, 0.00071168, 7.26957298, 0.99645169, 0.99812755, 0.49294774,\
++	-6.27073744, -0.00116034, 0.00071141, 7.26957710, 0.99645302, 0.99812825, 0.49294799,\
++	-6.27074112, -0.00115991, 0.00071115, 7.26958121, 0.99645434, 0.99812895, 0.49294824,\
++	-6.27074478, -0.00115947, 0.00071088, 7.26958531, 0.99645567, 0.99812965, 0.49294849,\
++	-6.27074843, -0.00115904, 0.00071062, 7.26958939, 0.99645700, 0.99813035, 0.49294867,\
++	-6.27075207, -0.00115861, 0.00071035, 7.26959347, 0.99645833, 0.99813104, 0.49294894,\
++	-6.27075570, -0.00115817, 0.00071008, 7.26959753, 0.99645965, 0.99813174, 0.49294918,\
++	-6.27075932, -0.00115774, 0.00070982, 7.26960158, 0.99646098, 0.99813244, 0.49294940,\
++	-6.27076293, -0.00115731, 0.00070955, 7.26960562, 0.99646230, 0.99813314, 0.49294966,\
++	-6.27076652, -0.00115688, 0.00070929, 7.26960965, 0.99646362, 0.99813383, 0.49294988,\
++	-6.27077011, -0.00115644, 0.00070902, 7.26961366, 0.99646494, 0.99813453, 0.49295014,\
++	-6.27077368, -0.00115601, 0.00070876, 7.26961767, 0.99646626, 0.99813523, 0.49295035,\
++	-6.27077724, -0.00115558, 0.00070850, 7.26962166, 0.99646758, 0.99813592, 0.49295058,\
++	-6.27078080, -0.00115515, 0.00070823, 7.26962565, 0.99646890, 0.99813662, 0.49295081,\
++	-6.27078434, -0.00115472, 0.00070797, 7.26962962, 0.99647022, 0.99813731, 0.49295107,\
++	-6.27078787, -0.00115429, 0.00070770, 7.26963358, 0.99647154, 0.99813800, 0.49295129,\
++	-6.27079139, -0.00115386, 0.00070744, 7.26963753, 0.99647285, 0.99813870, 0.49295151,\
++	-6.27079490, -0.00115343, 0.00070718, 7.26964147, 0.99647417, 0.99813939, 0.49295175,\
++	-6.27079840, -0.00115300, 0.00070692, 7.26964540, 0.99647548, 0.99814008, 0.49295200,\
++	-6.27080189, -0.00115257, 0.00070665, 7.26964931, 0.99647679, 0.99814077, 0.49295221,\
++	-6.27080537, -0.00115215, 0.00070639, 7.26965322, 0.99647810, 0.99814146, 0.49295246,\
++	-6.27080883, -0.00115172, 0.00070613, 7.26965711, 0.99647941, 0.99814215, 0.49295267,\
++	-6.27081229, -0.00115129, 0.00070586, 7.26966100, 0.99648072, 0.99814284, 0.49295289,\
++	-6.27081574, -0.00115086, 0.00070560, 7.26966487, 0.99648203, 0.99814353, 0.49295314,\
++	-6.27081917, -0.00115044, 0.00070534, 7.26966874, 0.99648334, 0.99814422, 0.49295337,\
++	-6.27082260, -0.00115001, 0.00070508, 7.26967259, 0.99648465, 0.99814491, 0.49295357,\
++	-6.27082601, -0.00114958, 0.00070482, 7.26967643, 0.99648595, 0.99814560, 0.49295381,\
++	-6.27082942, -0.00114916, 0.00070456, 7.26968026, 0.99648726, 0.99814629, 0.49295404,\
++	-6.27083281, -0.00114873, 0.00070430, 7.26968408, 0.99648856, 0.99814697, 0.49295428,\
++	-6.27083620, -0.00114830, 0.00070403, 7.26968789, 0.99648986, 0.99814766, 0.49295451,\
++	-6.27083957, -0.00114788, 0.00070377, 7.26969169, 0.99649117, 0.99814835, 0.49295473,\
++	-6.27084294, -0.00114745, 0.00070351, 7.26969548, 0.99649247, 0.99814903, 0.49295497,\
++	-6.27084629, -0.00114703, 0.00070325, 7.26969926, 0.99649377, 0.99814972, 0.49295518,\
++	-6.27084964, -0.00114661, 0.00070299, 7.26970303, 0.99649507, 0.99815040, 0.49295540,\
++	-6.27085297, -0.00114618, 0.00070273, 7.26970679, 0.99649636, 0.99815109, 0.49295563,\
++	-6.27085630, -0.00114576, 0.00070247, 7.26971054, 0.99649766, 0.99815177, 0.49295584,\
++	-6.27085961, -0.00114533, 0.00070221, 7.26971428, 0.99649896, 0.99815245, 0.49295609,\
++	-6.27086292, -0.00114491, 0.00070195, 7.26971800, 0.99650025, 0.99815313, 0.49295629,\
++	-6.27086621, -0.00114449, 0.00070169, 7.26972172, 0.99650155, 0.99815382, 0.49295653,\
++	-6.27086950, -0.00114407, 0.00070144, 7.26972543, 0.99650284, 0.99815450, 0.49295673,\
++	-6.27087277, -0.00114364, 0.00070118, 7.26972913, 0.99650413, 0.99815518, 0.49295696,\
++	-6.27087604, -0.00114322, 0.00070092, 7.26973281, 0.99650542, 0.99815586, 0.49295720,\
++	-6.27087929, -0.00114280, 0.00070066, 7.26973649, 0.99650671, 0.99815654, 0.49295739,\
++	-6.27088254, -0.00114238, 0.00070040, 7.26974016, 0.99650800, 0.99815722, 0.49295764,\
++	-6.27088577, -0.00114196, 0.00070014, 7.26974382, 0.99650929, 0.99815790, 0.49295785,\
++	-6.27088900, -0.00114154, 0.00069989, 7.26974746, 0.99651058, 0.99815858, 0.49295811,\
++	-6.27089222, -0.00114112, 0.00069963, 7.26975110, 0.99651187, 0.99815925, 0.49295829,\
++	-6.27089543, -0.00114070, 0.00069937, 7.26975473, 0.99651315, 0.99815993, 0.49295850,\
++	-6.27089862, -0.00114028, 0.00069911, 7.26975835, 0.99651444, 0.99816061, 0.49295875,\
++	-6.27090181, -0.00113986, 0.00069886, 7.26976195, 0.99651572, 0.99816129, 0.49295895,\
++	-6.27090499, -0.00113944, 0.00069860, 7.26976555, 0.99651700, 0.99816196, 0.49295918,\
++	-6.27090816, -0.00113902, 0.00069834, 7.26976914, 0.99651829, 0.99816264, 0.49295938,\
++	-6.27091132, -0.00113860, 0.00069809, 7.26977272, 0.99651957, 0.99816331, 0.49295963,\
++	-6.27091447, -0.00113818, 0.00069783, 7.26977629, 0.99652085, 0.99816399, 0.49295982,\
++	-6.27091762, -0.00113777, 0.00069757, 7.26977985, 0.99652213, 0.99816466, 0.49296003,\
++	-6.27092075, -0.00113735, 0.00069732, 7.26978340, 0.99652340, 0.99816533, 0.49296028,\
++	-6.27092387, -0.00113693, 0.00069706, 7.26978694, 0.99652468, 0.99816601, 0.49296049,\
++	-6.27092699, -0.00113651, 0.00069681, 7.26979047, 0.99652596, 0.99816668, 0.49296071,\
++	-6.27093009, -0.00113610, 0.00069655, 7.26979399, 0.99652723, 0.99816735, 0.49296091,\
++	-6.27093319, -0.00113568, 0.00069629, 7.26979751, 0.99652851, 0.99816802, 0.49296112,\
++	-6.27093627, -0.00113527, 0.00069604, 7.26980101, 0.99652978, 0.99816869, 0.49296137,\
++	-6.27093935, -0.00113485, 0.00069578, 7.26980450, 0.99653105, 0.99816937, 0.49296155,\
++	-6.27094242, -0.00113443, 0.00069553, 7.26980799, 0.99653232, 0.99817004, 0.49296176,\
++	-6.27094548, -0.00113402, 0.00069528, 7.26981146, 0.99653360, 0.99817070, 0.49296198,\
++	-6.27094853, -0.00113360, 0.00069502, 7.26981493, 0.99653487, 0.99817137, 0.49296221,\
++	-6.27095157, -0.00113319, 0.00069477, 7.26981838, 0.99653613, 0.99817204, 0.49296241,\
++	-6.27095461, -0.00113278, 0.00069451, 7.26982183, 0.99653740, 0.99817271, 0.49296261,\
++	-6.27095763, -0.00113236, 0.00069426, 7.26982527, 0.99653867, 0.99817338, 0.49296284,\
++	-6.27096065, -0.00113195, 0.00069401, 7.26982870, 0.99653994, 0.99817405, 0.49296306,\
++	-6.27096365, -0.00113154, 0.00069375, 7.26983212, 0.99654120, 0.99817471, 0.49296324,\
++	-6.27096665, -0.00113112, 0.00069350, 7.26983553, 0.99654246, 0.99817538, 0.49296349,\
++	-6.27096964, -0.00113071, 0.00069325, 7.26983893, 0.99654373, 0.99817604, 0.49296367,\
++	-6.27097262, -0.00113030, 0.00069299, 7.26984232, 0.99654499, 0.99817671, 0.49296390,\
++	-6.27097559, -0.00112989, 0.00069274, 7.26984571, 0.99654625, 0.99817737, 0.49296411,\
++	-6.27097856, -0.00112947, 0.00069249, 7.26984908, 0.99654751, 0.99817804, 0.49296432,\
++	-6.27098151, -0.00112906, 0.00069224, 7.26985245, 0.99654877, 0.99817870, 0.49296451,\
++	-6.27098446, -0.00112865, 0.00069198, 7.26985581, 0.99655003, 0.99817937, 0.49296475,\
++	-6.27098739, -0.00112824, 0.00069173, 7.26985915, 0.99655129, 0.99818003, 0.49296493,\
++	-6.27099032, -0.00112783, 0.00069148, 7.26986249, 0.99655255, 0.99818069, 0.49296516,\
++	-6.27099324, -0.00112742, 0.00069123, 7.26986583, 0.99655380, 0.99818135, 0.49296535,\
++	-6.27099616, -0.00112701, 0.00069098, 7.26986915, 0.99655506, 0.99818202, 0.49296556,\
++	-6.27099906, -0.00112660, 0.00069072, 7.26987246, 0.99655631, 0.99818268, 0.49296577,\
++	-6.27100196, -0.00112619, 0.00069047, 7.26987577, 0.99655756, 0.99818334, 0.49296597,\
++	-6.27100484, -0.00112578, 0.00069022, 7.26987906, 0.99655882, 0.99818400, 0.49296619,\
++	-6.27100772, -0.00112537, 0.00068997, 7.26988235, 0.99656007, 0.99818466, 0.49296639,\
++	-6.27101059, -0.00112496, 0.00068972, 7.26988563, 0.99656132, 0.99818532, 0.49296663,\
++	-6.27101345, -0.00112455, 0.00068947, 7.26988890, 0.99656257, 0.99818597, 0.49296681,\
++	-6.27101631, -0.00112415, 0.00068922, 7.26989216, 0.99656382, 0.99818663, 0.49296699,\
++	-6.27101915, -0.00112374, 0.00068897, 7.26989541, 0.99656506, 0.99818729, 0.49296722,\
++	-6.27102199, -0.00112333, 0.00068872, 7.26989866, 0.99656631, 0.99818795, 0.49296743,\
++	-6.27102482, -0.00112292, 0.00068847, 7.26990189, 0.99656756, 0.99818860, 0.49296764,\
++	-6.27102764, -0.00112252, 0.00068822, 7.26990512, 0.99656880, 0.99818926, 0.49296783,\
++	-6.27103045, -0.00112211, 0.00068797, 7.26990834, 0.99657005, 0.99818992, 0.49296802,\
++	-6.27103326, -0.00112171, 0.00068772, 7.26991155, 0.99657129, 0.99819057, 0.49296822,\
++	-6.27103606, -0.00112130, 0.00068747, 7.26991476, 0.99657253, 0.99819123, 0.49296843,\
++	-6.27103885, -0.00112089, 0.00068723, 7.26991795, 0.99657377, 0.99819188, 0.49296863,\
++	-6.27104163, -0.00112049, 0.00068698, 7.26992114, 0.99657501, 0.99819253, 0.49296882,\
++	-6.27104440, -0.00112008, 0.00068673, 7.26992432, 0.99657625, 0.99819319, 0.49296903,\
++	-6.27104717, -0.00111968, 0.00068648, 7.26992749, 0.99657749, 0.99819384, 0.49296925,\
++	-6.27104992, -0.00111927, 0.00068623, 7.26993065, 0.99657873, 0.99819449, 0.49296948,\
++	-6.27105267, -0.00111887, 0.00068599, 7.26993380, 0.99657997, 0.99819514, 0.49296966,\
++	-6.27105541, -0.00111847, 0.00068574, 7.26993695, 0.99658120, 0.99819580, 0.49296986,\
++	-6.27105815, -0.00111806, 0.00068549, 7.26994009, 0.99658244, 0.99819645, 0.49297006,\
++	-6.27106088, -0.00111766, 0.00068524, 7.26994322, 0.99658367, 0.99819710, 0.49297025,\
++	-6.27106359, -0.00111726, 0.00068500, 7.26994634, 0.99658491, 0.99819775, 0.49297043,\
++	-6.27106630, -0.00111685, 0.00068475, 7.26994945, 0.99658614, 0.99819840, 0.49297064,\
++	-6.27106901, -0.00111645, 0.00068450, 7.26995256, 0.99658737, 0.99819905, 0.49297085,\
++	-6.27107170, -0.00111605, 0.00068426, 7.26995565, 0.99658860, 0.99819970, 0.49297106,\
++	-6.27107439, -0.00111565, 0.00068401, 7.26995874, 0.99658983, 0.99820034, 0.49297123,\
++	-6.27107707, -0.00111525, 0.00068376, 7.26996183, 0.99659106, 0.99820099, 0.49297145,\
++	-6.27107974, -0.00111484, 0.00068352, 7.26996490, 0.99659229, 0.99820164, 0.49297165,\
++	-6.27108241, -0.00111444, 0.00068327, 7.26996797, 0.99659352, 0.99820229, 0.49297182,\
++	-6.27108507, -0.00111404, 0.00068302, 7.26997103, 0.99659474, 0.99820293, 0.49297202,\
++	-6.27108772, -0.00111364, 0.00068278, 7.26997408, 0.99659597, 0.99820358, 0.49297222,\
++	-6.27109036, -0.00111324, 0.00068253, 7.26997712, 0.99659719, 0.99820422, 0.49297241,\
++	-6.27109300, -0.00111284, 0.00068229, 7.26998015, 0.99659842, 0.99820487, 0.49297262,\
++	-6.27109562, -0.00111244, 0.00068204, 7.26998318, 0.99659964, 0.99820551, 0.49297281,\
++	-6.27109825, -0.00111204, 0.00068180, 7.26998620, 0.99660086, 0.99820616, 0.49297301,\
++	-6.27110086, -0.00111164, 0.00068155, 7.26998921, 0.99660208, 0.99820680, 0.49297320,\
++	-6.27110347, -0.00111125, 0.00068131, 7.26999222, 0.99660330, 0.99820744, 0.49297339,\
++	-6.27110606, -0.00111085, 0.00068106, 7.26999522, 0.99660452, 0.99820809, 0.49297359,\
++	-6.27110866, -0.00111045, 0.00068082, 7.26999821, 0.99660574, 0.99820873, 0.49297380,\
++	-6.27111124, -0.00111005, 0.00068058, 7.27000119, 0.99660696, 0.99820937, 0.49297397,\
++	-6.27111382, -0.00110965, 0.00068033, 7.27000416, 0.99660818, 0.99821001, 0.49297417,\
++	-6.27111639, -0.00110926, 0.00068009, 7.27000713, 0.99660939, 0.99821065, 0.49297437,\
++	-6.27111895, -0.00110886, 0.00067985, 7.27001009, 0.99661061, 0.99821129, 0.49297456,\
++	-6.27112151, -0.00110846, 0.00067960, 7.27001304, 0.99661182, 0.99821193, 0.49297477,\
++	-6.27112405, -0.00110807, 0.00067936, 7.27001599, 0.99661303, 0.99821257, 0.49297493,\
++	-6.27112660, -0.00110767, 0.00067912, 7.27001892, 0.99661425, 0.99821321, 0.49297516,\
++	-6.27112913, -0.00110728, 0.00067887, 7.27002185, 0.99661546, 0.99821385, 0.49297533,\
++	-6.27113166, -0.00110688, 0.00067863, 7.27002478, 0.99661667, 0.99821449, 0.49297550,\
++	-6.27113418, -0.00110648, 0.00067839, 7.27002769, 0.99661788, 0.99821513, 0.49297572,\
++	-6.27113669, -0.00110609, 0.00067815, 7.27003060, 0.99661909, 0.99821576, 0.49297589,\
++	-6.27113920, -0.00110569, 0.00067790, 7.27003350, 0.99662030, 0.99821640, 0.49297607,\
++	-6.27114170, -0.00110530, 0.00067766, 7.27003640, 0.99662150, 0.99821704, 0.49297628,\
++	-6.27114419, -0.00110491, 0.00067742, 7.27003928, 0.99662271, 0.99821767, 0.49297646,\
++	-6.27114668, -0.00110451, 0.00067718, 7.27004216, 0.99662392, 0.99821831, 0.49297664,\
++	-6.27114915, -0.00110412, 0.00067694, 7.27004504, 0.99662512, 0.99821894, 0.49297684,\
++	-6.27115163, -0.00110372, 0.00067670, 7.27004790, 0.99662632, 0.99821958, 0.49297702,\
++	-6.27115409, -0.00110333, 0.00067646, 7.27005076, 0.99662753, 0.99822021, 0.49297723,\
++	-6.27115655, -0.00110294, 0.00067621, 7.27005361, 0.99662873, 0.99822085, 0.49297742,\
++	-6.27115900, -0.00110255, 0.00067597, 7.27005646, 0.99662993, 0.99822148, 0.49297759,\
++	-6.27116145, -0.00110215, 0.00067573, 7.27005929, 0.99663113, 0.99822211, 0.49297781,\
++	-6.27116389, -0.00110176, 0.00067549, 7.27006212, 0.99663233, 0.99822274, 0.49297799,\
++	-6.27116632, -0.00110137, 0.00067525, 7.27006495, 0.99663353, 0.99822338, 0.49297818,\
++	-6.27116874, -0.00110098, 0.00067501, 7.27006776, 0.99663473, 0.99822401, 0.49297837,\
++	-6.27117116, -0.00110059, 0.00067477, 7.27007057, 0.99663592, 0.99822464, 0.49297853,\
++	-6.27117357, -0.00110020, 0.00067453, 7.27007338, 0.99663712, 0.99822527, 0.49297873,\
++	-6.27117598, -0.00109981, 0.00067429, 7.27007617, 0.99663832, 0.99822590, 0.49297890,\
++	-6.27117838, -0.00109942, 0.00067405, 7.27007896, 0.99663951, 0.99822653, 0.49297910,\
++	-6.27118077, -0.00109903, 0.00067381, 7.27008174, 0.99664070, 0.99822716, 0.49297929,\
++	-6.27118315, -0.00109864, 0.00067358, 7.27008452, 0.99664190, 0.99822779, 0.49297945,\
++	-6.27118553, -0.00109825, 0.00067334, 7.27008729, 0.99664309, 0.99822842, 0.49297965,\
++	-6.27118791, -0.00109786, 0.00067310, 7.27009005, 0.99664428, 0.99822904, 0.49297987,\
++	-6.27119027, -0.00109747, 0.00067286, 7.27009280, 0.99664547, 0.99822967, 0.49298005,\
++	-6.27119263, -0.00109708, 0.00067262, 7.27009555, 0.99664666, 0.99823030, 0.49298023,\
++	-6.27119499, -0.00109669, 0.00067238, 7.27009829, 0.99664785, 0.99823092, 0.49298041,\
++	-6.27119733, -0.00109630, 0.00067214, 7.27010103, 0.99664904, 0.99823155, 0.49298056,\
++	-6.27119968, -0.00109592, 0.00067191, 7.27010376, 0.99665022, 0.99823218, 0.49298074,\
++	-6.27120201, -0.00109553, 0.00067167, 7.27010648, 0.99665141, 0.99823280, 0.49298095,\
++	-6.27120434, -0.00109514, 0.00067143, 7.27010920, 0.99665259, 0.99823343, 0.49298115,\
++	-6.27120666, -0.00109475, 0.00067119, 7.27011190, 0.99665378, 0.99823405, 0.49298131,\
++	-6.27120898, -0.00109437, 0.00067096, 7.27011461, 0.99665496, 0.99823467, 0.49298149,\
++	-6.27121129, -0.00109398, 0.00067072, 7.27011730, 0.99665614, 0.99823530, 0.49298166,\
++	-6.27121359, -0.00109360, 0.00067048, 7.27011999, 0.99665733, 0.99823592, 0.49298185,\
++	-6.27121589, -0.00109321, 0.00067025, 7.27012268, 0.99665851, 0.99823654, 0.49298202,\
++	-6.27121818, -0.00109282, 0.00067001, 7.27012535, 0.99665969, 0.99823717, 0.49298224,\
++	-6.27122046, -0.00109244, 0.00066977, 7.27012802, 0.99666087, 0.99823779, 0.49298236,\
++	-6.27122274, -0.00109205, 0.00066954, 7.27013069, 0.99666205, 0.99823841, 0.49298260,\
++	-6.27122501, -0.00109167, 0.00066930, 7.27013334, 0.99666322, 0.99823903, 0.49298275,\
++	-6.27122728, -0.00109128, 0.00066907, 7.27013600, 0.99666440, 0.99823965, 0.49298294,\
++	-6.27122954, -0.00109090, 0.00066883, 7.27013864, 0.99666558, 0.99824027, 0.49298313,\
++	-6.27123179, -0.00109052, 0.00066859, 7.27014128, 0.99666675, 0.99824089, 0.49298330,\
++	-6.27123404, -0.00109013, 0.00066836, 7.27014391, 0.99666793, 0.99824151, 0.49298351,\
++	-6.27123629, -0.00108975, 0.00066812, 7.27014654, 0.99666910, 0.99824213, 0.49298363,\
++	-6.27123852, -0.00108937, 0.00066789, 7.27014916, 0.99667027, 0.99824275, 0.49298382,\
++	-6.27124075, -0.00108898, 0.00066765, 7.27015177, 0.99667144, 0.99824336, 0.49298401,\
++	-6.27124298, -0.00108860, 0.00066742, 7.27015438, 0.99667261, 0.99824398, 0.49298420,\
++	-6.27124520, -0.00108822, 0.00066718, 7.27015698, 0.99667379, 0.99824460, 0.49298438,\
++	-6.27124741, -0.00108784, 0.00066695, 7.27015957, 0.99667495, 0.99824521, 0.49298453,\
++	-6.27124962, -0.00108745, 0.00066672, 7.27016216, 0.99667612, 0.99824583, 0.49298471,\
++	-6.27125182, -0.00108707, 0.00066648, 7.27016475, 0.99667729, 0.99824645, 0.49298491,\
++	-6.27125401, -0.00108669, 0.00066625, 7.27016732, 0.99667846, 0.99824706, 0.49298510,\
++	-6.27125620, -0.00108631, 0.00066601, 7.27016989, 0.99667962, 0.99824768, 0.49298524,\
++	-6.27125839, -0.00108593, 0.00066578, 7.27017246, 0.99668079, 0.99824829, 0.49298544,\
++	-6.27126057, -0.00108555, 0.00066555, 7.27017502, 0.99668195, 0.99824890, 0.49298562,\
++	-6.27126274, -0.00108517, 0.00066531, 7.27017757, 0.99668312, 0.99824952, 0.49298575,\
++	-6.27126490, -0.00108479, 0.00066508, 7.27018012, 0.99668428, 0.99825013, 0.49298596,\
++	-6.27126707, -0.00108441, 0.00066485, 7.27018266, 0.99668544, 0.99825074, 0.49298614,\
++	-6.27126922, -0.00108403, 0.00066461, 7.27018519, 0.99668660, 0.99825136, 0.49298629,\
++	-6.27127137, -0.00108365, 0.00066438, 7.27018772, 0.99668776, 0.99825197, 0.49298647,\
++	-6.27127351, -0.00108327, 0.00066415, 7.27019024, 0.99668892, 0.99825258, 0.49298665,\
++	-6.27127565, -0.00108289, 0.00066392, 7.27019276, 0.99669008, 0.99825319, 0.49298685,\
++	-6.27127779, -0.00108251, 0.00066369, 7.27019527, 0.99669124, 0.99825380, 0.49298701,\
++	-6.27127991, -0.00108214, 0.00066345, 7.27019778, 0.99669240, 0.99825441, 0.49298719,\
++	-6.27128204, -0.00108176, 0.00066322, 7.27020028, 0.99669356, 0.99825502, 0.49298735,\
++	-6.27128415, -0.00108138, 0.00066299, 7.27020277, 0.99669471, 0.99825563, 0.49298754,\
++	-6.27128626, -0.00108100, 0.00066276, 7.27020526, 0.99669587, 0.99825624, 0.49298772,\
++	-6.27128837, -0.00108063, 0.00066253, 7.27020774, 0.99669702, 0.99825685, 0.49298787,\
++	-6.27129047, -0.00108025, 0.00066230, 7.27021022, 0.99669817, 0.99825746, 0.49298806,\
++	-6.27129256, -0.00107987, 0.00066206, 7.27021269, 0.99669933, 0.99825806, 0.49298822,\
++	-6.27129465, -0.00107950, 0.00066183, 7.27021516, 0.99670048, 0.99825867, 0.49298838,\
++	-6.27129674, -0.00107912, 0.00066160, 7.27021762, 0.99670163, 0.99825928, 0.49298857,\
++	-6.27129881, -0.00107874, 0.00066137, 7.27022007, 0.99670278, 0.99825988, 0.49298872,\
++	-6.27130089, -0.00107837, 0.00066114, 7.27022252, 0.99670393, 0.99826049, 0.49298890,\
++	-6.27130295, -0.00107799, 0.00066091, 7.27022496, 0.99670508, 0.99826109, 0.49298906,\
++	-6.27130502, -0.00107762, 0.00066068, 7.27022740, 0.99670622, 0.99826170, 0.49298921,\
++	-6.27130707, -0.00107724, 0.00066045, 7.27022983, 0.99670737, 0.99826230, 0.49298942,\
++	-6.27130913, -0.00107687, 0.00066022, 7.27023226, 0.99670852, 0.99826291, 0.49298958,\
++	-6.27131117, -0.00107649, 0.00065999, 7.27023468, 0.99670966, 0.99826351, 0.49298977,\
++	-6.27131321, -0.00107612, 0.00065976, 7.27023709, 0.99671081, 0.99826412, 0.49298992,\
++	-6.27131525, -0.00107575, 0.00065953, 7.27023950, 0.99671195, 0.99826472, 0.49299011,\
++	-6.27131728, -0.00107537, 0.00065931, 7.27024191, 0.99671309, 0.99826532, 0.49299028,\
++	-6.27131930, -0.00107500, 0.00065908, 7.27024430, 0.99671423, 0.99826592, 0.49299042,\
++	-6.27132133, -0.00107463, 0.00065885, 7.27024670, 0.99671538, 0.99826653, 0.49299058,\
++	-6.27132334, -0.00107425, 0.00065862, 7.27024909, 0.99671652, 0.99826713, 0.49299077,\
++	-6.27132535, -0.00107388, 0.00065839, 7.27025147, 0.99671766, 0.99826773, 0.49299096,\
++	-6.27132736, -0.00107351, 0.00065816, 7.27025385, 0.99671879, 0.99826833, 0.49299111,\
++	-6.27132936, -0.00107314, 0.00065793, 7.27025622, 0.99671993, 0.99826893, 0.49299126,\
++	-6.27133135, -0.00107277, 0.00065771, 7.27025858, 0.99672107, 0.99826953, 0.49299144,\
++	-6.27133334, -0.00107239, 0.00065748, 7.27026094, 0.99672221, 0.99827013, 0.49299160,\
++	-6.27133532, -0.00107202, 0.00065725, 7.27026330, 0.99672334, 0.99827073, 0.49299180,\
++	-6.27133730, -0.00107165, 0.00065702, 7.27026565, 0.99672448, 0.99827132, 0.49299193,\
++	-6.27133928, -0.00107128, 0.00065680, 7.27026800, 0.99672561, 0.99827192, 0.49299212,\
++	-6.27134125, -0.00107091, 0.00065657, 7.27027034, 0.99672674, 0.99827252, 0.49299227,\
++	-6.27134321, -0.00107054, 0.00065634, 7.27027267, 0.99672788, 0.99827312, 0.49299243,\
++	-6.27134517, -0.00107017, 0.00065611, 7.27027500, 0.99672901, 0.99827371, 0.49299259,\
++	-6.27134713, -0.00106980, 0.00065589, 7.27027733, 0.99673014, 0.99827431, 0.49299280,\
++	-6.27134908, -0.00106943, 0.00065566, 7.27027964, 0.99673127, 0.99827491, 0.49299296,\
++	-6.27135102, -0.00106906, 0.00065543, 7.27028196, 0.99673240, 0.99827550, 0.49299309,\
++	-6.27135296, -0.00106870, 0.00065521, 7.27028427, 0.99673353, 0.99827610, 0.49299327,\
++	-6.27135490, -0.00106833, 0.00065498, 7.27028657, 0.99673466, 0.99827669, 0.49299344,\
++	-6.27135683, -0.00106796, 0.00065476, 7.27028887, 0.99673578, 0.99827729, 0.49299361,\
++	-6.27135875, -0.00106759, 0.00065453, 7.27029116, 0.99673691, 0.99827788, 0.49299378,\
++	-6.27136067, -0.00106722, 0.00065430, 7.27029345, 0.99673804, 0.99827847, 0.49299395,\
++	-6.27136259, -0.00106685, 0.00065408, 7.27029574, 0.99673916, 0.99827907, 0.49299413,\
++	-6.27136450, -0.00106649, 0.00065385, 7.27029801, 0.99674028, 0.99827966, 0.49299427,\
++	-6.27136641, -0.00106612, 0.00065363, 7.27030029, 0.99674141, 0.99828025, 0.49299442,\
++	-6.27136831, -0.00106575, 0.00065340, 7.27030256, 0.99674253, 0.99828084, 0.49299460,\
++	-6.27137021, -0.00106539, 0.00065318, 7.27030482, 0.99674365, 0.99828143, 0.49299474,\
++	-6.27137210, -0.00106502, 0.00065295, 7.27030708, 0.99674477, 0.99828203, 0.49299490,\
++	-6.27137399, -0.00106465, 0.00065273, 7.27030933, 0.99674589, 0.99828262, 0.49299509,\
++	-6.27137587, -0.00106429, 0.00065250, 7.27031158, 0.99674701, 0.99828321, 0.49299525,\
++	-6.27137775, -0.00106392, 0.00065228, 7.27031382, 0.99674813, 0.99828380, 0.49299541,\
++	-6.27137962, -0.00106356, 0.00065206, 7.27031606, 0.99674925, 0.99828439, 0.49299561,\
++	-6.27138149, -0.00106319, 0.00065183, 7.27031830, 0.99675037, 0.99828497, 0.49299573,\
++	-6.27138335, -0.00106283, 0.00065161, 7.27032053, 0.99675148, 0.99828556, 0.49299589,\
++	-6.27138521, -0.00106246, 0.00065139, 7.27032275, 0.99675260, 0.99828615, 0.49299603,\
++	-6.27138707, -0.00106210, 0.00065116, 7.27032497, 0.99675371, 0.99828674, 0.49299621,\
++	-6.27138892, -0.00106173, 0.00065094, 7.27032719, 0.99675483, 0.99828733, 0.49299635,\
++	-6.27139077, -0.00106137, 0.00065072, 7.27032940, 0.99675594, 0.99828791, 0.49299653,\
++	-6.27139261, -0.00106101, 0.00065049, 7.27033160, 0.99675705, 0.99828850, 0.49299670,\
++	-6.27139445, -0.00106064, 0.00065027, 7.27033380, 0.99675816, 0.99828909, 0.49299687,\
++	-6.27139628, -0.00106028, 0.00065005, 7.27033600, 0.99675928, 0.99828967, 0.49299705,\
++	-6.27139811, -0.00105992, 0.00064982, 7.27033819, 0.99676039, 0.99829026, 0.49299718,\
++	-6.27139993, -0.00105956, 0.00064960, 7.27034037, 0.99676150, 0.99829084, 0.49299736,\
++	-6.27140175, -0.00105919, 0.00064938, 7.27034256, 0.99676260, 0.99829143, 0.49299751,\
++	-6.27140356, -0.00105883, 0.00064916, 7.27034473, 0.99676371, 0.99829201, 0.49299765,\
++	-6.27140537, -0.00105847, 0.00064893, 7.27034690, 0.99676482, 0.99829260, 0.49299782,\
++	-6.27140718, -0.00105811, 0.00064871, 7.27034907, 0.99676593, 0.99829318, 0.49299800,\
++	-6.27140898, -0.00105775, 0.00064849, 7.27035123, 0.99676703, 0.99829376, 0.49299816,\
++	-6.27141078, -0.00105739, 0.00064827, 7.27035339, 0.99676814, 0.99829434, 0.49299833,\
++	-6.27141257, -0.00105702, 0.00064805, 7.27035555, 0.99676924, 0.99829493, 0.49299845,\
++	-6.27141436, -0.00105666, 0.00064783, 7.27035770, 0.99677034, 0.99829551, 0.49299862,\
++	-6.27141614, -0.00105630, 0.00064761, 7.27035984, 0.99677145, 0.99829609, 0.49299878,\
++	-6.27141792, -0.00105594, 0.00064739, 7.27036198, 0.99677255, 0.99829667, 0.49299891,\
++	-6.27141970, -0.00105558, 0.00064716, 7.27036412, 0.99677365, 0.99829725, 0.49299912,\
++	-6.27142147, -0.00105522, 0.00064694, 7.27036625, 0.99677475, 0.99829783, 0.49299926,\
++	-6.27142324, -0.00105486, 0.00064672, 7.27036837, 0.99677585, 0.99829841, 0.49299943,\
++	-6.27142500, -0.00105451, 0.00064650, 7.27037050, 0.99677695, 0.99829899, 0.49299955,\
++	-6.27142676, -0.00105415, 0.00064628, 7.27037261, 0.99677805, 0.99829957, 0.49299971,\
++	-6.27142851, -0.00105379, 0.00064606, 7.27037473, 0.99677914, 0.99830015, 0.49299984,\
++	-6.27143026, -0.00105343, 0.00064584, 7.27037683, 0.99678024, 0.99830073, 0.49300001,\
++	-6.27143201, -0.00105307, 0.00064562, 7.27037894, 0.99678134, 0.99830131, 0.49300017,\
++	-6.27143375, -0.00105271, 0.00064540, 7.27038104, 0.99678243, 0.99830188, 0.49300033,\
++	-6.27143549, -0.00105236, 0.00064518, 7.27038313, 0.99678353, 0.99830246, 0.49300050,\
++	-6.27143722, -0.00105200, 0.00064496, 7.27038522, 0.99678462, 0.99830304, 0.49300065,\
++	-6.27143895, -0.00105164, 0.00064475, 7.27038731, 0.99678571, 0.99830361, 0.49300081,\
++	-6.27144068, -0.00105128, 0.00064453, 7.27038939, 0.99678681, 0.99830419, 0.49300096,\
++	-6.27144240, -0.00105093, 0.00064431, 7.27039147, 0.99678790, 0.99830477, 0.49300112,\
++	-6.27144412, -0.00105057, 0.00064409, 7.27039355, 0.99678899, 0.99830534, 0.49300126,\
++	-6.27144583, -0.00105021, 0.00064387, 7.27039561, 0.99679008, 0.99830592, 0.49300141,\
++	-6.27144754, -0.00104986, 0.00064365, 7.27039768, 0.99679117, 0.99830649, 0.49300158,\
++	-6.27144924, -0.00104950, 0.00064343, 7.27039974, 0.99679226, 0.99830706, 0.49300174,\
++	-6.27145094, -0.00104915, 0.00064322, 7.27040180, 0.99679334, 0.99830764, 0.49300191,\
++	-6.27145264, -0.00104879, 0.00064300, 7.27040385, 0.99679443, 0.99830821, 0.49300203,\
++	-6.27145433, -0.00104844, 0.00064278, 7.27040590, 0.99679552, 0.99830878, 0.49300220,\
++	-6.27145602, -0.00104808, 0.00064256, 7.27040794, 0.99679660, 0.99830936, 0.49300234,\
++	-6.27145771, -0.00104773, 0.00064234, 7.27040998, 0.99679769, 0.99830993, 0.49300248,\
++	-6.27145939, -0.00104737, 0.00064213, 7.27041202, 0.99679877, 0.99831050, 0.49300264,\
++	-6.27146107, -0.00104702, 0.00064191, 7.27041405, 0.99679986, 0.99831107, 0.49300280,\
++	-6.27146274, -0.00104667, 0.00064169, 7.27041607, 0.99680094, 0.99831164, 0.49300294,\
++	-6.27146441, -0.00104631, 0.00064148, 7.27041810, 0.99680202, 0.99831221, 0.49300310,\
++	-6.27146607, -0.00104596, 0.00064126, 7.27042012, 0.99680310, 0.99831278, 0.49300325,\
++	-6.27146774, -0.00104561, 0.00064104, 7.27042213, 0.99680418, 0.99831335, 0.49300340,\
++	-6.27146939, -0.00104525, 0.00064083, 7.27042414, 0.99680526, 0.99831392, 0.49300357,\
++	-6.27147105, -0.00104490, 0.00064061, 7.27042615, 0.99680634, 0.99831449, 0.49300370,\
++	-6.27147270, -0.00104455, 0.00064039, 7.27042815, 0.99680742, 0.99831506, 0.49300390,\
++	-6.27147434, -0.00104420, 0.00064018, 7.27043015, 0.99680850, 0.99831563, 0.49300402,\
++	-6.27147599, -0.00104384, 0.00063996, 7.27043214, 0.99680957, 0.99831620, 0.49300417,\
++	-6.27147762, -0.00104349, 0.00063975, 7.27043413, 0.99681065, 0.99831676, 0.49300431,\
++	-6.27147926, -0.00104314, 0.00063953, 7.27043612, 0.99681172, 0.99831733, 0.49300449,\
++	-6.27148089, -0.00104279, 0.00063931, 7.27043810, 0.99681280, 0.99831790, 0.49300460,\
++	-6.27148252, -0.00104244, 0.00063910, 7.27044008, 0.99681387, 0.99831846, 0.49300478,\
++	-6.27148414, -0.00104209, 0.00063888, 7.27044205, 0.99681495, 0.99831903, 0.49300494,\
++	-6.27148576, -0.00104174, 0.00063867, 7.27044402, 0.99681602, 0.99831959, 0.49300507,\
++	-6.27148738, -0.00104139, 0.00063845, 7.27044599, 0.99681709, 0.99832016, 0.49300523,\
++	-6.27148899, -0.00104104, 0.00063824, 7.27044795, 0.99681816, 0.99832072, 0.49300537,\
++	-6.27149060, -0.00104069, 0.00063802, 7.27044991, 0.99681923, 0.99832129, 0.49300552,\
++	-6.27149220, -0.00104034, 0.00063781, 7.27045186, 0.99682030, 0.99832185, 0.49300567,\
++	-6.27149380, -0.00103999, 0.00063760, 7.27045382, 0.99682137, 0.99832242, 0.49300583,\
++	-6.27149540, -0.00103964, 0.00063738, 7.27045576, 0.99682244, 0.99832298, 0.49300595,\
++	-6.27149699, -0.00103929, 0.00063717, 7.27045771, 0.99682351, 0.99832354, 0.49300609,\
++	-6.27149859, -0.00103894, 0.00063695, 7.27045964, 0.99682457, 0.99832411, 0.49300627,\
++	-6.27150017, -0.00103859, 0.00063674, 7.27046158, 0.99682564, 0.99832467, 0.49300642,\
++	-6.27150175, -0.00103824, 0.00063653, 7.27046351, 0.99682670, 0.99832523, 0.49300653,\
++	-6.27150333, -0.00103790, 0.00063631, 7.27046544, 0.99682777, 0.99832579, 0.49300671,\
++	-6.27150491, -0.00103755, 0.00063610, 7.27046736, 0.99682883, 0.99832635, 0.49300686,\
++	-6.27150648, -0.00103720, 0.00063589, 7.27046928, 0.99682990, 0.99832691, 0.49300700,\
++	-6.27150805, -0.00103685, 0.00063567, 7.27047120, 0.99683096, 0.99832747, 0.49300717,\
++	-6.27150962, -0.00103651, 0.00063546, 7.27047311, 0.99683202, 0.99832803, 0.49300731,\
++	-6.27151118, -0.00103616, 0.00063525, 7.27047502, 0.99683308, 0.99832859, 0.49300742,\
++	-6.27151274, -0.00103581, 0.00063503, 7.27047692, 0.99683414, 0.99832915, 0.49300759,\
++	-6.27151429, -0.00103547, 0.00063482, 7.27047882, 0.99683520, 0.99832971, 0.49300775,\
++	-6.27151584, -0.00103512, 0.00063461, 7.27048072, 0.99683626, 0.99833027, 0.49300787,\
++	-6.27151739, -0.00103478, 0.00063440, 7.27048262, 0.99683732, 0.99833083, 0.49300803,\
++	-6.27151893, -0.00103443, 0.00063419, 7.27048451, 0.99683838, 0.99833138, 0.49300818,\
++	-6.27152048, -0.00103408, 0.00063397, 7.27048639, 0.99683943, 0.99833194, 0.49300831,\
++	-6.27152201, -0.00103374, 0.00063376, 7.27048827, 0.99684049, 0.99833250, 0.49300846,\
++	-6.27152355, -0.00103339, 0.00063355, 7.27049015, 0.99684154, 0.99833306, 0.49300863,\
++	-6.27152508, -0.00103305, 0.00063334, 7.27049203, 0.99684260, 0.99833361, 0.49300877,\
++	-6.27152660, -0.00103270, 0.00063313, 7.27049390, 0.99684365, 0.99833417, 0.49300891,\
++	-6.27152813, -0.00103236, 0.00063292, 7.27049577, 0.99684471, 0.99833472, 0.49300907,\
++	-6.27152965, -0.00103202, 0.00063271, 7.27049763, 0.99684576, 0.99833528, 0.49300922,\
++	-6.27153117, -0.00103167, 0.00063249, 7.27049949, 0.99684681, 0.99833583, 0.49300935,\
++	-6.27153268, -0.00103133, 0.00063228, 7.27050135, 0.99684786, 0.99833639, 0.49300949,\
++	-6.27153419, -0.00103099, 0.00063207, 7.27050320, 0.99684891, 0.99833694, 0.49300966,\
++	-6.27153570, -0.00103064, 0.00063186, 7.27050505, 0.99684996, 0.99833749, 0.49300980,\
++	-6.27153720, -0.00103030, 0.00063165, 7.27050690, 0.99685101, 0.99833805, 0.49300992,\
++	-6.27153870, -0.00102996, 0.00063144, 7.27050874, 0.99685206, 0.99833860, 0.49301003,\
++	-6.27154020, -0.00102961, 0.00063123, 7.27051058, 0.99685311, 0.99833915, 0.49301024,\
++	-6.27154169, -0.00102927, 0.00063102, 7.27051242, 0.99685415, 0.99833971, 0.49301036,\
++	-6.27154318, -0.00102893, 0.00063081, 7.27051425, 0.99685520, 0.99834026, 0.49301051,\
++	-6.27154467, -0.00102859, 0.00063060, 7.27051608, 0.99685625, 0.99834081, 0.49301064,\
++	-6.27154615, -0.00102825, 0.00063039, 7.27051791, 0.99685729, 0.99834136, 0.49301076,\
++	-6.27154763, -0.00102791, 0.00063018, 7.27051973, 0.99685834, 0.99834191, 0.49301089,\
++	-6.27154911, -0.00102756, 0.00062997, 7.27052155, 0.99685938, 0.99834246, 0.49301105,\
++	-6.27155059, -0.00102722, 0.00062976, 7.27052336, 0.99686042, 0.99834301, 0.49301119,\
++	-6.27155206, -0.00102688, 0.00062956, 7.27052517, 0.99686146, 0.99834356, 0.49301134,\
++	-6.27155352, -0.00102654, 0.00062935, 7.27052698, 0.99686251, 0.99834411, 0.49301148,\
++	-6.27155499, -0.00102620, 0.00062914, 7.27052879, 0.99686355, 0.99834466, 0.49301163,\
++	-6.27155645, -0.00102586, 0.00062893, 7.27053059, 0.99686459, 0.99834521, 0.49301176,\
++	-6.27155791, -0.00102552, 0.00062872, 7.27053239, 0.99686563, 0.99834576, 0.49301188,\
++	-6.27155936, -0.00102518, 0.00062851, 7.27053418, 0.99686666, 0.99834630, 0.49301206,\
++	-6.27156082, -0.00102484, 0.00062830, 7.27053597, 0.99686770, 0.99834685, 0.49301220,\
++	-6.27156226, -0.00102451, 0.00062810, 7.27053776, 0.99686874, 0.99834740, 0.49301233,\
++	-6.27156371, -0.00102417, 0.00062789, 7.27053954, 0.99686978, 0.99834794, 0.49301246,\
++	-6.27156515, -0.00102383, 0.00062768, 7.27054132, 0.99687081, 0.99834849, 0.49301262,\
++	-6.27156659, -0.00102349, 0.00062747, 7.27054310, 0.99687185, 0.99834904, 0.49301280,\
++	-6.27156803, -0.00102315, 0.00062727, 7.27054488, 0.99687288, 0.99834958, 0.49301294,\
++	-6.27156946, -0.00102281, 0.00062706, 7.27054665, 0.99687392, 0.99835013, 0.49301309,\
++	-6.27157089, -0.00102248, 0.00062685, 7.27054842, 0.99687495, 0.99835067, 0.49301319,\
++	-6.27157232, -0.00102214, 0.00062664, 7.27055018, 0.99687598, 0.99835122, 0.49301335,\
++	-6.27157374, -0.00102180, 0.00062644, 7.27055194, 0.99687701, 0.99835176, 0.49301345,\
++	-6.27157517, -0.00102146, 0.00062623, 7.27055370, 0.99687805, 0.99835231, 0.49301362,\
++	-6.27157658, -0.00102113, 0.00062602, 7.27055546, 0.99687908, 0.99835285, 0.49301372,\
++	-6.27157800, -0.00102079, 0.00062582, 7.27055721, 0.99688011, 0.99835339, 0.49301383,\
++	-6.27157941, -0.00102045, 0.00062561, 7.27055896, 0.99688113, 0.99835393, 0.49301405,\
++	-6.27158082, -0.00102012, 0.00062540, 7.27056070, 0.99688216, 0.99835448, 0.49301418,\
++	-6.27158223, -0.00101978, 0.00062520, 7.27056244, 0.99688319, 0.99835502, 0.49301433,\
++	-6.27158363, -0.00101945, 0.00062499, 7.27056418, 0.99688422, 0.99835556, 0.49301444,\
++	-6.27158503, -0.00101911, 0.00062479, 7.27056592, 0.99688524, 0.99835610, 0.49301454,\
++	-6.27158643, -0.00101878, 0.00062458, 7.27056765, 0.99688627, 0.99835664, 0.49301468,\
++	-6.27158782, -0.00101844, 0.00062438, 7.27056938, 0.99688730, 0.99835718, 0.49301483,\
++	-6.27158921, -0.00101811, 0.00062417, 7.27057111, 0.99688832, 0.99835772, 0.49301499,\
++	-6.27159060, -0.00101777, 0.00062396, 7.27057283, 0.99688934, 0.99835826, 0.49301513,\
++	-6.27159199, -0.00101744, 0.00062376, 7.27057455, 0.99689037, 0.99835880, 0.49301528,\
++	-6.27159337, -0.00101710, 0.00062355, 7.27057627, 0.99689139, 0.99835934, 0.49301541,\
++	-6.27159475, -0.00101677, 0.00062335, 7.27057798, 0.99689241, 0.99835988, 0.49301553,\
++	-6.27159613, -0.00101644, 0.00062314, 7.27057969, 0.99689343, 0.99836042, 0.49301569,\
++	-6.27159750, -0.00101610, 0.00062294, 7.27058140, 0.99689445, 0.99836096, 0.49301584,\
++	-6.27159887, -0.00101577, 0.00062274, 7.27058310, 0.99689547, 0.99836150, 0.49301593,\
++	-6.27160024, -0.00101544, 0.00062253, 7.27058480, 0.99689649, 0.99836203, 0.49301608,\
++	-6.27160160, -0.00101510, 0.00062233, 7.27058650, 0.99689751, 0.99836257, 0.49301621,\
++	-6.27160297, -0.00101477, 0.00062212, 7.27058820, 0.99689853, 0.99836311, 0.49301634,\
++	-6.27160433, -0.00101444, 0.00062192, 7.27058989, 0.99689954, 0.99836364, 0.49301647,\
++	-6.27160568, -0.00101410, 0.00062171, 7.27059158, 0.99690056, 0.99836418, 0.49301663,\
++	-6.27160704, -0.00101377, 0.00062151, 7.27059327, 0.99690158, 0.99836472, 0.49301679,\
++	-6.27160839, -0.00101344, 0.00062131, 7.27059495, 0.99690259, 0.99836525, 0.49301693,\
++	-6.27160974, -0.00101311, 0.00062110, 7.27059663, 0.99690361, 0.99836579, 0.49301706,\
++	-6.27161108, -0.00101278, 0.00062090, 7.27059831, 0.99690462, 0.99836632, 0.49301722,\
++	-6.27161243, -0.00101245, 0.00062070, 7.27059998, 0.99690563, 0.99836686, 0.49301730,\
++	-6.27161377, -0.00101212, 0.00062049, 7.27060165, 0.99690664, 0.99836739, 0.49301748,\
++	-6.27161511, -0.00101179, 0.00062029, 7.27060332, 0.99690766, 0.99836792, 0.49301757,\
++	-6.27161644, -0.00101146, 0.00062009, 7.27060499, 0.99690867, 0.99836846, 0.49301772,\
++	-6.27161777, -0.00101112, 0.00061989, 7.27060665, 0.99690968, 0.99836899, 0.49301787,\
++	-6.27161910, -0.00101079, 0.00061968, 7.27060831, 0.99691069, 0.99836952, 0.49301798,\
++	-6.27162043, -0.00101046, 0.00061948, 7.27060996, 0.99691170, 0.99837005, 0.49301811,\
++	-6.27162175, -0.00101014, 0.00061928, 7.27061162, 0.99691271, 0.99837059, 0.49301825,\
++	-6.27162307, -0.00100981, 0.00061908, 7.27061327, 0.99691371, 0.99837112, 0.49301840,\
++	-6.27162439, -0.00100948, 0.00061887, 7.27061492, 0.99691472, 0.99837165, 0.49301855,\
++	-6.27162571, -0.00100915, 0.00061867, 7.27061656, 0.99691573, 0.99837218, 0.49301866,\
++	-6.27162702, -0.00100882, 0.00061847, 7.27061820, 0.99691673, 0.99837271, 0.49301881,\
++	-6.27162833, -0.00100849, 0.00061827, 7.27061984, 0.99691774, 0.99837324, 0.49301892,\
++	-6.27162964, -0.00100816, 0.00061807, 7.27062148, 0.99691874, 0.99837377, 0.49301906,\
++	-6.27163095, -0.00100783, 0.00061787, 7.27062311, 0.99691975, 0.99837430, 0.49301923,\
++	-6.27163225, -0.00100751, 0.00061767, 7.27062474, 0.99692075, 0.99837483, 0.49301935,\
++	-6.27163355, -0.00100718, 0.00061746, 7.27062637, 0.99692175, 0.99837536, 0.49301944,\
++	-6.27163485, -0.00100685, 0.00061726, 7.27062800, 0.99692275, 0.99837589, 0.49301961,\
++	-6.27163614, -0.00100652, 0.00061706, 7.27062962, 0.99692375, 0.99837641, 0.49301974,\
++	-6.27163743, -0.00100620, 0.00061686, 7.27063124, 0.99692476, 0.99837694, 0.49301990,\
++	-6.27163872, -0.00100587, 0.00061666, 7.27063285, 0.99692576, 0.99837747, 0.49301996,\
++	-6.27164001, -0.00100554, 0.00061646, 7.27063447, 0.99692675, 0.99837800, 0.49302013,\
++	-6.27164130, -0.00100522, 0.00061626, 7.27063608, 0.99692775, 0.99837852, 0.49302024,\
++	-6.27164258, -0.00100489, 0.00061606, 7.27063769, 0.99692875, 0.99837905, 0.49302039,\
++	-6.27164386, -0.00100456, 0.00061586, 7.27063929, 0.99692975, 0.99837957, 0.49302050,\
++	-6.27164513, -0.00100424, 0.00061566, 7.27064090, 0.99693075, 0.99838010, 0.49302064,\
++	-6.27164641, -0.00100391, 0.00061546, 7.27064250, 0.99693174, 0.99838063, 0.49302080,\
++	-6.27164768, -0.00100359, 0.00061526, 7.27064409, 0.99693274, 0.99838115, 0.49302092,\
++	-6.27164895, -0.00100326, 0.00061506, 7.27064569, 0.99693373, 0.99838168, 0.49302106,\
++	-6.27165022, -0.00100294, 0.00061486, 7.27064728, 0.99693473, 0.99838220, 0.49302117,\
++	-6.27165148, -0.00100261, 0.00061466, 7.27064887, 0.99693572, 0.99838272, 0.49302135,\
++	-6.27165274, -0.00100229, 0.00061446, 7.27065045, 0.99693671, 0.99838325, 0.49302147,\
++	-6.27165400, -0.00100196, 0.00061427, 7.27065204, 0.99693770, 0.99838377, 0.49302161,\
++	-6.27165526, -0.00100164, 0.00061407, 7.27065362, 0.99693870, 0.99838429, 0.49302174,\
++	-6.27165651, -0.00100132, 0.00061387, 7.27065520, 0.99693969, 0.99838482, 0.49302182,\
++	-6.27165777, -0.00100099, 0.00061367, 7.27065677, 0.99694068, 0.99838534, 0.49302200,\
++	-6.27165902, -0.00100067, 0.00061347, 7.27065835, 0.99694167, 0.99838586, 0.49302214,\
++	-6.27166026, -0.00100035, 0.00061327, 7.27065992, 0.99694266, 0.99838638, 0.49302227,\
++	-6.27166151, -0.00100002, 0.00061307, 7.27066149, 0.99694364, 0.99838690, 0.49302237,\
++	-6.27166275, -0.00099970, 0.00061288, 7.27066305, 0.99694463, 0.99838742, 0.49302253,\
++	-6.27166399, -0.00099938, 0.00061268, 7.27066461, 0.99694562, 0.99838795, 0.49302264,\
++	-6.27166523, -0.00099905, 0.00061248, 7.27066617, 0.99694660, 0.99838847, 0.49302277,\
++	-6.27166646, -0.00099873, 0.00061228, 7.27066773, 0.99694759, 0.99838899, 0.49302290,\
++	-6.27166770, -0.00099841, 0.00061208, 7.27066928, 0.99694858, 0.99838951, 0.49302301,\
++	-6.27166893, -0.00099809, 0.00061189, 7.27067084, 0.99694956, 0.99839002, 0.49302315,\
++	-6.27167015, -0.00099777, 0.00061169, 7.27067239, 0.99695054, 0.99839054, 0.49302331,\
++	-6.27167138, -0.00099745, 0.00061149, 7.27067393, 0.99695153, 0.99839106, 0.49302343,\
++	-6.27167260, -0.00099712, 0.00061130, 7.27067548, 0.99695251, 0.99839158, 0.49302354,\
++	-6.27167382, -0.00099680, 0.00061110, 7.27067702, 0.99695349, 0.99839210, 0.49302367,\
++	-6.27167504, -0.00099648, 0.00061090, 7.27067856, 0.99695447, 0.99839262, 0.49302378,\
++	-6.27167626, -0.00099616, 0.00061070, 7.27068010, 0.99695545, 0.99839313, 0.49302391,\
++	-6.27167747, -0.00099584, 0.00061051, 7.27068163, 0.99695643, 0.99839365, 0.49302405,\
++	-6.27167868, -0.00099552, 0.00061031, 7.27068316, 0.99695741, 0.99839417, 0.49302418,\
++	-6.27167989, -0.00099520, 0.00061012, 7.27068469, 0.99695839, 0.99839468, 0.49302428,\
++	-6.27168110, -0.00099488, 0.00060992, 7.27068622, 0.99695937, 0.99839520, 0.49302442,\
++	-6.27168231, -0.00099456, 0.00060972, 7.27068774, 0.99696035, 0.99839571, 0.49302457,\
++	-6.27168351, -0.00099424, 0.00060953, 7.27068927, 0.99696133, 0.99839623, 0.49302469,\
++	-6.27168471, -0.00099392, 0.00060933, 7.27069078, 0.99696230, 0.99839674, 0.49302483,\
++	-6.27168591, -0.00099360, 0.00060914, 7.27069230, 0.99696328, 0.99839726, 0.49302493,\
++	-6.27168710, -0.00099329, 0.00060894, 7.27069382, 0.99696425, 0.99839777, 0.49302510,\
++	-6.27168829, -0.00099297, 0.00060874, 7.27069533, 0.99696523, 0.99839829, 0.49302519,\
++	-6.27168949, -0.00099265, 0.00060855, 7.27069684, 0.99696620, 0.99839880, 0.49302531,\
++	-6.27169067, -0.00099233, 0.00060835, 7.27069834, 0.99696717, 0.99839931, 0.49302546,\
++	-6.27169186, -0.00099201, 0.00060816, 7.27069985, 0.99696815, 0.99839983, 0.49302559,\
++	-6.27169305, -0.00099170, 0.00060796, 7.27070135, 0.99696912, 0.99840034, 0.49302572,\
++	-6.27169423, -0.00099138, 0.00060777, 7.27070285, 0.99697009, 0.99840085, 0.49302581,\
++	-6.27169541, -0.00099106, 0.00060757, 7.27070435, 0.99697106, 0.99840137, 0.49302594,\
++	-6.27169659, -0.00099074, 0.00060738, 7.27070584, 0.99697203, 0.99840188, 0.49302606,\
++	-6.27169776, -0.00099043, 0.00060719, 7.27070734, 0.99697300, 0.99840239, 0.49302620,\
++	-6.27169893, -0.00099011, 0.00060699, 7.27070883, 0.99697397, 0.99840290, 0.49302635,\
++	-6.27170011, -0.00098979, 0.00060680, 7.27071031, 0.99697494, 0.99840341, 0.49302644,\
++	-6.27170128, -0.00098948, 0.00060660, 7.27071180, 0.99697590, 0.99840392, 0.49302662,\
++	-6.27170244, -0.00098916, 0.00060641, 7.27071328, 0.99697687, 0.99840443, 0.49302676,\
++	-6.27170361, -0.00098884, 0.00060622, 7.27071476, 0.99697784, 0.99840494, 0.49302682,\
++	-6.27170477, -0.00098853, 0.00060602, 7.27071624, 0.99697880, 0.99840545, 0.49302696,\
++	-6.27170593, -0.00098821, 0.00060583, 7.27071772, 0.99697977, 0.99840596, 0.49302711,\
++	-6.27170709, -0.00098790, 0.00060563, 7.27071919, 0.99698073, 0.99840647, 0.49302721,\
++	-6.27170825, -0.00098758, 0.00060544, 7.27072066, 0.99698170, 0.99840698, 0.49302733,\
++	-6.27170940, -0.00098727, 0.00060525, 7.27072213, 0.99698266, 0.99840748, 0.49302748,\
++	-6.27171055, -0.00098695, 0.00060505, 7.27072360, 0.99698362, 0.99840799, 0.49302765,\
++	-6.27171170, -0.00098664, 0.00060486, 7.27072506, 0.99698459, 0.99840850, 0.49302773,\
++	-6.27171285, -0.00098633, 0.00060467, 7.27072652, 0.99698555, 0.99840901, 0.49302786,\
++	-6.27171399, -0.00098601, 0.00060448, 7.27072798, 0.99698651, 0.99840951, 0.49302797,\
++	-6.27171514, -0.00098570, 0.00060428, 7.27072944, 0.99698747, 0.99841002, 0.49302811,\
++	-6.27171628, -0.00098538, 0.00060409, 7.27073090, 0.99698843, 0.99841053, 0.49302824,\
++	-6.27171742, -0.00098507, 0.00060390, 7.27073235, 0.99698939, 0.99841103, 0.49302835,\
++	-6.27171856, -0.00098476, 0.00060371, 7.27073380, 0.99699035, 0.99841154, 0.49302848,\
++	-6.27171969, -0.00098444, 0.00060351, 7.27073525, 0.99699130, 0.99841204, 0.49302858,\
++	-6.27172082, -0.00098413, 0.00060332, 7.27073669, 0.99699226, 0.99841255, 0.49302871,\
++	-6.27172196, -0.00098382, 0.00060313, 7.27073814, 0.99699322, 0.99841305, 0.49302887,\
++	-6.27172309, -0.00098351, 0.00060294, 7.27073958, 0.99699417, 0.99841356, 0.49302895,\
++	-6.27172421, -0.00098319, 0.00060275, 7.27074102, 0.99699513, 0.99841406, 0.49302912,\
++	-6.27172534, -0.00098288, 0.00060256, 7.27074246, 0.99699608, 0.99841456, 0.49302925,\
++	-6.27172646, -0.00098257, 0.00060236, 7.27074389, 0.99699704, 0.99841507, 0.49302935,\
++	-6.27172758, -0.00098226, 0.00060217, 7.27074532, 0.99699799, 0.99841557, 0.49302945,\
++	-6.27172870, -0.00098195, 0.00060198, 7.27074676, 0.99699894, 0.99841607, 0.49302959,\
++	-6.27172982, -0.00098163, 0.00060179, 7.27074818, 0.99699990, 0.99841657, 0.49302970,\
++	-6.27173093, -0.00098132, 0.00060160, 7.27074961, 0.99700085, 0.99841708, 0.49302981,\
++	-6.27173205, -0.00098101, 0.00060141, 7.27075103, 0.99700180, 0.99841758, 0.49302992,\
++	-6.27173316, -0.00098070, 0.00060122, 7.27075246, 0.99700275, 0.99841808, 0.49303009,\
++	-6.27173427, -0.00098039, 0.00060103, 7.27075388, 0.99700370, 0.99841858, 0.49303019,\
++	-6.27173537, -0.00098008, 0.00060084, 7.27075529, 0.99700465, 0.99841908, 0.49303031,\
++	-6.27173648, -0.00097977, 0.00060065, 7.27075671, 0.99700560, 0.99841958, 0.49303044,\
++	-6.27173758, -0.00097946, 0.00060046, 7.27075812, 0.99700655, 0.99842008, 0.49303056,\
++	-6.27173868, -0.00097915, 0.00060027, 7.27075953, 0.99700749, 0.99842058, 0.49303069,\
++	-6.27173978, -0.00097884, 0.00060008, 7.27076094, 0.99700844, 0.99842108, 0.49303080,\
++	-6.27174088, -0.00097853, 0.00059989, 7.27076235, 0.99700939, 0.99842158, 0.49303094,\
++	-6.27174198, -0.00097822, 0.00059970, 7.27076375, 0.99701033, 0.99842208, 0.49303107,\
++	-6.27174307, -0.00097791, 0.00059951, 7.27076516, 0.99701128, 0.99842258, 0.49303120,\
++	-6.27174416, -0.00097761, 0.00059932, 7.27076656, 0.99701222, 0.99842308, 0.49303132,\
++	-6.27174525, -0.00097730, 0.00059913, 7.27076795, 0.99701317, 0.99842357, 0.49303142,\
++	-6.27174634, -0.00097699, 0.00059894, 7.27076935, 0.99701411, 0.99842407, 0.49303154,\
++	-6.27174743, -0.00097668, 0.00059875, 7.27077075, 0.99701505, 0.99842457, 0.49303168,\
++	-6.27174851, -0.00097637, 0.00059856, 7.27077214, 0.99701599, 0.99842507, 0.49303176,\
++	-6.27174959, -0.00097606, 0.00059837, 7.27077353, 0.99701693, 0.99842556, 0.49303192,\
++	-6.27175067, -0.00097576, 0.00059818, 7.27077491, 0.99701788, 0.99842606, 0.49303205,\
++	-6.27175175, -0.00097545, 0.00059800, 7.27077630, 0.99701882, 0.99842656, 0.49303212,\
++	-6.27175283, -0.00097514, 0.00059781, 7.27077769, 0.99701976, 0.99842705, 0.49303223,\
++	-6.27175390, -0.00097484, 0.00059762, 7.27077907, 0.99702070, 0.99842755, 0.49303239,\
++	-6.27175497, -0.00097453, 0.00059743, 7.27078045, 0.99702163, 0.99842804, 0.49303247,\
++	-6.27175605, -0.00097422, 0.00059724, 7.27078182, 0.99702257, 0.99842854, 0.49303263,\
++	-6.27175712, -0.00097392, 0.00059705, 7.27078320, 0.99702351, 0.99842903, 0.49303277,\
++	-6.27175818, -0.00097361, 0.00059687, 7.27078457, 0.99702445, 0.99842952, 0.49303287,\
++	-6.27175925, -0.00097330, 0.00059668, 7.27078595, 0.99702538, 0.99843002, 0.49303298,\
++	-6.27176031, -0.00097300, 0.00059649, 7.27078731, 0.99702632, 0.99843051, 0.49303309,\
++	-6.27176137, -0.00097269, 0.00059630, 7.27078868, 0.99702725, 0.99843101, 0.49303324,\
++	-6.27176243, -0.00097239, 0.00059612, 7.27079005, 0.99702819, 0.99843150, 0.49303337,\
++	-6.27176349, -0.00097208, 0.00059593, 7.27079141, 0.99702912, 0.99843199, 0.49303342,\
++	-6.27176455, -0.00097178, 0.00059574, 7.27079277, 0.99703005, 0.99843248, 0.49303355,\
++	-6.27176560, -0.00097147, 0.00059555, 7.27079413, 0.99703099, 0.99843298, 0.49303367,\
++	-6.27176666, -0.00097117, 0.00059537, 7.27079549, 0.99703192, 0.99843347, 0.49303384,\
++	-6.27176771, -0.00097086, 0.00059518, 7.27079685, 0.99703285, 0.99843396, 0.49303391,\
++	-6.27176876, -0.00097056, 0.00059499, 7.27079820, 0.99703378, 0.99843445, 0.49303404,\
++	-6.27176980, -0.00097025, 0.00059481, 7.27079955, 0.99703471, 0.99843494, 0.49303417,\
++	-6.27177085, -0.00096995, 0.00059462, 7.27080090, 0.99703564, 0.99843543, 0.49303426,\
++	-6.27177189, -0.00096965, 0.00059443, 7.27080225, 0.99703657, 0.99843592, 0.49303442,\
++	-6.27177294, -0.00096934, 0.00059425, 7.27080359, 0.99703750, 0.99843641, 0.49303454,\
++	-6.27177398, -0.00096904, 0.00059406, 7.27080494, 0.99703843, 0.99843690, 0.49303464,\
++	-6.27177502, -0.00096874, 0.00059388, 7.27080628, 0.99703936, 0.99843739, 0.49303476,\
++	-6.27177605, -0.00096843, 0.00059369, 7.27080762, 0.99704028, 0.99843788, 0.49303487,\
++	-6.27177709, -0.00096813, 0.00059350, 7.27080896, 0.99704121, 0.99843837, 0.49303501,\
++	-6.27177812, -0.00096783, 0.00059332, 7.27081030, 0.99704213, 0.99843886, 0.49303512,\
++	-6.27177915, -0.00096752, 0.00059313, 7.27081163, 0.99704306, 0.99843934, 0.49303521,\
++	-6.27178018, -0.00096722, 0.00059295, 7.27081296, 0.99704398, 0.99843983, 0.49303537,\
++	-6.27178121, -0.00096692, 0.00059276, 7.27081429, 0.99704491, 0.99844032, 0.49303546,\
++	-6.27178224, -0.00096662, 0.00059258, 7.27081562, 0.99704583, 0.99844081, 0.49303558,\
++	-6.27178326, -0.00096632, 0.00059239, 7.27081695, 0.99704675, 0.99844129, 0.49303575,\
++	-6.27178429, -0.00096602, 0.00059221, 7.27081827, 0.99704768, 0.99844178, 0.49303581,\
++	-6.27178531, -0.00096571, 0.00059202, 7.27081960, 0.99704860, 0.99844227, 0.49303591,\
++	-6.27178633, -0.00096541, 0.00059184, 7.27082092, 0.99704952, 0.99844275, 0.49303609,\
++	-6.27178735, -0.00096511, 0.00059165, 7.27082224, 0.99705044, 0.99844324, 0.49303618,\
++	-6.27178836, -0.00096481, 0.00059147, 7.27082355, 0.99705136, 0.99844372, 0.49303628,\
++	-6.27178938, -0.00096451, 0.00059128, 7.27082487, 0.99705228, 0.99844421, 0.49303641,\
++	-6.27179039, -0.00096421, 0.00059110, 7.27082618, 0.99705320, 0.99844469, 0.49303652,\
++	-6.27179140, -0.00096391, 0.00059091, 7.27082749, 0.99705412, 0.99844518, 0.49303666,\
++	-6.27179242, -0.00096361, 0.00059073, 7.27082881, 0.99705503, 0.99844566, 0.49303673,\
++	-6.27179342, -0.00096331, 0.00059055, 7.27083011, 0.99705595, 0.99844614, 0.49303690,\
++	-6.27179443, -0.00096301, 0.00059036, 7.27083142, 0.99705687, 0.99844663, 0.49303700,\
++	-6.27179544, -0.00096271, 0.00059018, 7.27083272, 0.99705778, 0.99844711, 0.49303712,\
++	-6.27179644, -0.00096241, 0.00058999, 7.27083403, 0.99705870, 0.99844759, 0.49303722,\
++	-6.27179744, -0.00096211, 0.00058981, 7.27083533, 0.99705961, 0.99844808, 0.49303732,\
++	-6.27179844, -0.00096181, 0.00058963, 7.27083663, 0.99706053, 0.99844856, 0.49303745,\
++	-6.27179944, -0.00096152, 0.00058944, 7.27083792, 0.99706144, 0.99844904, 0.49303757,\
++	-6.27180044, -0.00096122, 0.00058926, 7.27083922, 0.99706235, 0.99844952, 0.49303771,\
++	-6.27180143, -0.00096092, 0.00058908, 7.27084051, 0.99706327, 0.99845000, 0.49303777,\
++	-6.27180243, -0.00096062, 0.00058890, 7.27084181, 0.99706418, 0.99845048, 0.49303795,\
++	-6.27180342, -0.00096032, 0.00058871, 7.27084310, 0.99706509, 0.99845097, 0.49303802,\
++	-6.27180441, -0.00096002, 0.00058853, 7.27084438, 0.99706600, 0.99845145, 0.49303815,\
++	-6.27180540, -0.00095973, 0.00058835, 7.27084567, 0.99706691, 0.99845193, 0.49303827,\
++	-6.27180639, -0.00095943, 0.00058816, 7.27084696, 0.99706782, 0.99845241, 0.49303836,\
++	-6.27180737, -0.00095913, 0.00058798, 7.27084824, 0.99706873, 0.99845289, 0.49303844,\
++	-6.27180836, -0.00095884, 0.00058780, 7.27084952, 0.99706964, 0.99845336, 0.49303861,\
++	-6.27180934, -0.00095854, 0.00058762, 7.27085080, 0.99707055, 0.99845384, 0.49303868,\
++	-6.27181032, -0.00095824, 0.00058744, 7.27085208, 0.99707145, 0.99845432, 0.49303884,\
++	-6.27181130, -0.00095795, 0.00058725, 7.27085335, 0.99707236, 0.99845480, 0.49303895,\
++	-6.27181228, -0.00095765, 0.00058707, 7.27085463, 0.99707327, 0.99845528, 0.49303908,\
++	-6.27181325, -0.00095735, 0.00058689, 7.27085590, 0.99707417, 0.99845576, 0.49303915,\
++	-6.27181423, -0.00095706, 0.00058671, 7.27085717, 0.99707508, 0.99845623, 0.49303928,\
++	-6.27181520, -0.00095676, 0.00058653, 7.27085844, 0.99707598, 0.99845671, 0.49303940,\
++	-6.27181618, -0.00095647, 0.00058635, 7.27085971, 0.99707689, 0.99845719, 0.49303950,\
++	-6.27181715, -0.00095617, 0.00058616, 7.27086098, 0.99707779, 0.99845766, 0.49303965,\
++	-6.27181811, -0.00095588, 0.00058598, 7.27086224, 0.99707869, 0.99845814, 0.49303979,\
++	-6.27181908, -0.00095558, 0.00058580, 7.27086350, 0.99707960, 0.99845862, 0.49303989,\
++	-6.27182005, -0.00095529, 0.00058562, 7.27086476, 0.99708050, 0.99845909, 0.49303994,\
++	-6.27182101, -0.00095499, 0.00058544, 7.27086602, 0.99708140, 0.99845957, 0.49304006,\
++	-6.27182198, -0.00095470, 0.00058526, 7.27086728, 0.99708230, 0.99846004, 0.49304023,\
++	-6.27182294, -0.00095440, 0.00058508, 7.27086854, 0.99708320, 0.99846052, 0.49304031,\
++	-6.27182390, -0.00095411, 0.00058490, 7.27086979, 0.99708410, 0.99846099, 0.49304040,\
++	-6.27182486, -0.00095381, 0.00058472, 7.27087104, 0.99708500, 0.99846147, 0.49304052,\
++	-6.27182581, -0.00095352, 0.00058454, 7.27087229, 0.99708590, 0.99846194, 0.49304066,\
++	-6.27182677, -0.00095323, 0.00058436, 7.27087354, 0.99708680, 0.99846242, 0.49304078,\
++	-6.27182772, -0.00095293, 0.00058418, 7.27087479, 0.99708769, 0.99846289, 0.49304090,\
++	-6.27182867, -0.00095264, 0.00058400, 7.27087603, 0.99708859, 0.99846336, 0.49304102,\
++	-6.27182963, -0.00095235, 0.00058382, 7.27087728, 0.99708949, 0.99846383, 0.49304112,\
++	-6.27183058, -0.00095205, 0.00058364, 7.27087852, 0.99709038, 0.99846431, 0.49304120,\
++	-6.27183152, -0.00095176, 0.00058346, 7.27087976, 0.99709128, 0.99846478, 0.49304129,\
++	-6.27183247, -0.00095147, 0.00058328, 7.27088100, 0.99709217, 0.99846525, 0.49304145,\
++	-6.27183342, -0.00095118, 0.00058310, 7.27088224, 0.99709307, 0.99846572, 0.49304157,\
++	-6.27183436, -0.00095088, 0.00058292, 7.27088348, 0.99709396, 0.99846619, 0.49304165,\
++	-6.27183530, -0.00095059, 0.00058274, 7.27088471, 0.99709485, 0.99846667, 0.49304175,\
++	-6.27183624, -0.00095030, 0.00058256, 7.27088594, 0.99709575, 0.99846714, 0.49304190,\
++	-6.27183718, -0.00095001, 0.00058238, 7.27088717, 0.99709664, 0.99846761, 0.49304204,\
++	-6.27183812, -0.00094972, 0.00058221, 7.27088840, 0.99709753, 0.99846808, 0.49304212,\
++	-6.27183906, -0.00094943, 0.00058203, 7.27088963, 0.99709842, 0.99846855, 0.49304222,\
++	-6.27183999, -0.00094914, 0.00058185, 7.27089086, 0.99709931, 0.99846902, 0.49304233,\
++	-6.27184093, -0.00094884, 0.00058167, 7.27089208, 0.99710020, 0.99846949, 0.49304245,\
++	-6.27184186, -0.00094855, 0.00058149, 7.27089331, 0.99710109, 0.99846996, 0.49304255,\
++	-6.27184279, -0.00094826, 0.00058131, 7.27089453, 0.99710198, 0.99847042, 0.49304263,\
++	-6.27184372, -0.00094797, 0.00058113, 7.27089575, 0.99710287, 0.99847089, 0.49304277,\
++	-6.27184465, -0.00094768, 0.00058096, 7.27089697, 0.99710375, 0.99847136, 0.49304288,\
++	-6.27184558, -0.00094739, 0.00058078, 7.27089818, 0.99710464, 0.99847183, 0.49304302,\
++	-6.27184650, -0.00094710, 0.00058060, 7.27089940, 0.99710553, 0.99847230, 0.49304309,\
++	-6.27184743, -0.00094681, 0.00058042, 7.27090061, 0.99710641, 0.99847276, 0.49304322,\
++	-6.27184835, -0.00094652, 0.00058025, 7.27090182, 0.99710730, 0.99847323, 0.49304332,\
++	-6.27184927, -0.00094623, 0.00058007, 7.27090304, 0.99710818, 0.99847370, 0.49304348,\
++	-6.27185019, -0.00094595, 0.00057989, 7.27090424, 0.99710907, 0.99847416, 0.49304351,\
++	-6.27185111, -0.00094566, 0.00057971, 7.27090545, 0.99710995, 0.99847463, 0.49304363,\
++	-6.27185203, -0.00094537, 0.00057954, 7.27090666, 0.99711083, 0.99847510, 0.49304378,\
++	-6.27185294, -0.00094508, 0.00057936, 7.27090786, 0.99711172, 0.99847556, 0.49304390,\
++	-6.27185386, -0.00094479, 0.00057918, 7.27090907, 0.99711260, 0.99847603, 0.49304399,\
++	-6.27185477, -0.00094450, 0.00057901, 7.27091027, 0.99711348, 0.99847649, 0.49304412,\
++	-6.27185568, -0.00094421, 0.00057883, 7.27091147, 0.99711436, 0.99847696, 0.49304419,\
++	-6.27185659, -0.00094393, 0.00057865, 7.27091267, 0.99711524, 0.99847742, 0.49304433,\
++	-6.27185750, -0.00094364, 0.00057848, 7.27091386, 0.99711612, 0.99847789, 0.49304445,\
++	-6.27185841, -0.00094335, 0.00057830, 7.27091506, 0.99711700, 0.99847835, 0.49304453,\
++	-6.27185932, -0.00094306, 0.00057812, 7.27091625, 0.99711788, 0.99847881, 0.49304463,\
++	-6.27186022, -0.00094278, 0.00057795, 7.27091745, 0.99711876, 0.99847928, 0.49304471,\
++	-6.27186113, -0.00094249, 0.00057777, 7.27091864, 0.99711964, 0.99847974, 0.49304488,\
++	-6.27186203, -0.00094220, 0.00057759, 7.27091983, 0.99712051, 0.99848020, 0.49304496,\
++	-6.27186293, -0.00094192, 0.00057742, 7.27092101, 0.99712139, 0.99848067, 0.49304509,\
++	-6.27186383, -0.00094163, 0.00057724, 7.27092220, 0.99712227, 0.99848113, 0.49304521,\
++	-6.27186473, -0.00094134, 0.00057707, 7.27092339, 0.99712314, 0.99848159, 0.49304528,\
++	-6.27186563, -0.00094106, 0.00057689, 7.27092457, 0.99712402, 0.99848205, 0.49304542,\
++	-6.27186652, -0.00094077, 0.00057672, 7.27092575, 0.99712489, 0.99848251, 0.49304552,\
++	-6.27186742, -0.00094049, 0.00057654, 7.27092693, 0.99712577, 0.99848297, 0.49304562,\
++	-6.27186831, -0.00094020, 0.00057636, 7.27092811, 0.99712664, 0.99848344, 0.49304571,\
++	-6.27186920, -0.00093991, 0.00057619, 7.27092929, 0.99712751, 0.99848390, 0.49304585,\
++	-6.27187010, -0.00093963, 0.00057601, 7.27093047, 0.99712839, 0.99848436, 0.49304595,\
++	-6.27187098, -0.00093934, 0.00057584, 7.27093164, 0.99712926, 0.99848482, 0.49304606,\
++	-6.27187187, -0.00093906, 0.00057567, 7.27093281, 0.99713013, 0.99848528, 0.49304619,\
++	-6.27187276, -0.00093877, 0.00057549, 7.27093399, 0.99713100, 0.99848574, 0.49304625,\
++	-6.27187365, -0.00093849, 0.00057532, 7.27093516, 0.99713187, 0.99848619, 0.49304638,\
++	-6.27187453, -0.00093821, 0.00057514, 7.27093633, 0.99713274, 0.99848665, 0.49304650,\
++	-6.27187541, -0.00093792, 0.00057497, 7.27093749, 0.99713361, 0.99848711, 0.49304662,\
++	-6.27187630, -0.00093764, 0.00057479, 7.27093866, 0.99713448, 0.99848757, 0.49304675,\
++	-6.27187718, -0.00093735, 0.00057462, 7.27093983, 0.99713535, 0.99848803, 0.49304680,\
++	-6.27187806, -0.00093707, 0.00057444, 7.27094099, 0.99713622, 0.99848849, 0.49304696,\
++	-6.27187894, -0.00093679, 0.00057427, 7.27094215, 0.99713708, 0.99848894, 0.49304701,\
++	-6.27187981, -0.00093650, 0.00057410, 7.27094331, 0.99713795, 0.99848940, 0.49304717,\
++	-6.27188069, -0.00093622, 0.00057392, 7.27094447, 0.99713882, 0.99848986, 0.49304726,\
++	-6.27188156, -0.00093594, 0.00057375, 7.27094563, 0.99713968, 0.99849031, 0.49304734,\
++	-6.27188244, -0.00093565, 0.00057358, 7.27094678, 0.99714055, 0.99849077, 0.49304749,\
++	-6.27188331, -0.00093537, 0.00057340, 7.27094794, 0.99714141, 0.99849123, 0.49304756,\
++	-6.27188418, -0.00093509, 0.00057323, 7.27094909, 0.99714228, 0.99849168, 0.49304769,\
++	-6.27188505, -0.00093481, 0.00057306, 7.27095025, 0.99714314, 0.99849214, 0.49304781,\
++	-6.27188592, -0.00093452, 0.00057288, 7.27095140, 0.99714400, 0.99849259, 0.49304789,\
++	-6.27188679, -0.00093424, 0.00057271, 7.27095255, 0.99714486, 0.99849305, 0.49304797,\
++	-6.27188765, -0.00093396, 0.00057254, 7.27095369, 0.99714573, 0.99849350, 0.49304811,\
++	-6.27188852, -0.00093368, 0.00057236, 7.27095484, 0.99714659, 0.99849396, 0.49304819,\
++	-6.27188938, -0.00093340, 0.00057219, 7.27095599, 0.99714745, 0.99849441, 0.49304832,\
++	-6.27189025, -0.00093312, 0.00057202, 7.27095713, 0.99714831, 0.99849487, 0.49304841,\
++	-6.27189111, -0.00093283, 0.00057185, 7.27095827, 0.99714917, 0.99849532, 0.49304852,\
++	-6.27189197, -0.00093255, 0.00057167, 7.27095942, 0.99715003, 0.99849577, 0.49304861,\
++	-6.27189283, -0.00093227, 0.00057150, 7.27096056, 0.99715089, 0.99849623, 0.49304875,\
++	-6.27189369, -0.00093199, 0.00057133, 7.27096169, 0.99715175, 0.99849668, 0.49304884,\
++	-6.27189454, -0.00093171, 0.00057116, 7.27096283, 0.99715260, 0.99849713, 0.49304894,\
++	-6.27189540, -0.00093143, 0.00057098, 7.27096397, 0.99715346, 0.99849758, 0.49304909,\
++	-6.27189625, -0.00093115, 0.00057081, 7.27096510, 0.99715432, 0.99849804, 0.49304918,\
++	-6.27189711, -0.00093087, 0.00057064, 7.27096624, 0.99715517, 0.99849849, 0.49304926,\
++	-6.27189796, -0.00093059, 0.00057047, 7.27096737, 0.99715603, 0.99849894, 0.49304941,\
++	-6.27189881, -0.00093031, 0.00057030, 7.27096850, 0.99715689, 0.99849939, 0.49304950,\
++	-6.27189966, -0.00093003, 0.00057013, 7.27096963, 0.99715774, 0.99849984, 0.49304958,\
++	-6.27190051, -0.00092975, 0.00056995, 7.27097076, 0.99715860, 0.99850029, 0.49304964,\
++	-6.27190136, -0.00092947, 0.00056978, 7.27097188, 0.99715945, 0.99850074, 0.49304982,\
++	-6.27190220, -0.00092919, 0.00056961, 7.27097301, 0.99716030, 0.99850119, 0.49304989,\
++	-6.27190305, -0.00092892, 0.00056944, 7.27097413, 0.99716115, 0.99850164, 0.49305004,\
++	-6.27190389, -0.00092864, 0.00056927, 7.27097525, 0.99716201, 0.99850209, 0.49305011,\
++	-6.27190474, -0.00092836, 0.00056910, 7.27097638, 0.99716286, 0.99850254, 0.49305025,\
++	-6.27190558, -0.00092808, 0.00056893, 7.27097750, 0.99716371, 0.99850299, 0.49305033,\
++	-6.27190642, -0.00092780, 0.00056876, 7.27097862, 0.99716456, 0.99850344, 0.49305045,\
++	-6.27190726, -0.00092752, 0.00056859, 7.27097973, 0.99716541, 0.99850389, 0.49305056,\
++	-6.27190810, -0.00092725, 0.00056842, 7.27098085, 0.99716626, 0.99850434, 0.49305065,\
++	-6.27190893, -0.00092697, 0.00056825, 7.27098197, 0.99716711, 0.99850478, 0.49305076,\
++	-6.27190977, -0.00092669, 0.00056808, 7.27098308, 0.99716796, 0.99850523, 0.49305085,\
++	-6.27191061, -0.00092641, 0.00056791, 7.27098419, 0.99716881, 0.99850568, 0.49305094,\
++	-6.27191144, -0.00092614, 0.00056774, 7.27098530, 0.99716965, 0.99850613, 0.49305108,\
++	-6.27191227, -0.00092586, 0.00056757, 7.27098641, 0.99717050, 0.99850657, 0.49305115,\
++	-6.27191311, -0.00092558, 0.00056740, 7.27098752, 0.99717135, 0.99850702, 0.49305125,\
++	-6.27191394, -0.00092531, 0.00056723, 7.27098863, 0.99717219, 0.99850747, 0.49305139,\
++	-6.27191477, -0.00092503, 0.00056706, 7.27098974, 0.99717304, 0.99850791, 0.49305148,\
++	-6.27191559, -0.00092475, 0.00056689, 7.27099084, 0.99717389, 0.99850836, 0.49305158,\
++	-6.27191642, -0.00092448, 0.00056672, 7.27099194, 0.99717473, 0.99850880, 0.49305167,\
++	-6.27191725, -0.00092420, 0.00056655, 7.27099305, 0.99717557, 0.99850925, 0.49305181,\
++	-6.27191807, -0.00092393, 0.00056638, 7.27099415, 0.99717642, 0.99850969, 0.49305190,\
++	-6.27191890, -0.00092365, 0.00056621, 7.27099525, 0.99717726, 0.99851014, 0.49305201,\
++	-6.27191972, -0.00092338, 0.00056604, 7.27099635, 0.99717810, 0.99851058, 0.49305208,\
++	-6.27192054, -0.00092310, 0.00056587, 7.27099744, 0.99717895, 0.99851103, 0.49305223,\
++	-6.27192136, -0.00092282, 0.00056570, 7.27099854, 0.99717979, 0.99851147, 0.49305232,\
++	-6.27192218, -0.00092255, 0.00056553, 7.27099964, 0.99718063, 0.99851192, 0.49305243,\
++	-6.27192300, -0.00092227, 0.00056537, 7.27100073, 0.99718147, 0.99851236, 0.49305250,\
++	-6.27192382, -0.00092200, 0.00056520, 7.27100182, 0.99718231, 0.99851280, 0.49305258,\
++	-6.27192464, -0.00092173, 0.00056503, 7.27100291, 0.99718315, 0.99851325, 0.49305275,\
++	-6.27192545, -0.00092145, 0.00056486, 7.27100400, 0.99718399, 0.99851369, 0.49305278,\
++	-6.27192627, -0.00092118, 0.00056469, 7.27100509, 0.99718483, 0.99851413, 0.49305295,\
++	-6.27192708, -0.00092090, 0.00056452, 7.27100618, 0.99718566, 0.99851457, 0.49305299,\
++	-6.27192790, -0.00092063, 0.00056436, 7.27100727, 0.99718650, 0.99851502, 0.49305314,\
++	-6.27192871, -0.00092036, 0.00056419, 7.27100835, 0.99718734, 0.99851546, 0.49305323,\
++	-6.27192952, -0.00092008, 0.00056402, 7.27100944, 0.99718818, 0.99851590, 0.49305333,\
++	-6.27193033, -0.00091981, 0.00056385, 7.27101052, 0.99718901, 0.99851634, 0.49305345,\
++	-6.27193114, -0.00091954, 0.00056368, 7.27101160, 0.99718985, 0.99851678, 0.49305349,\
++	-6.27193194, -0.00091926, 0.00056352, 7.27101268, 0.99719068, 0.99851722, 0.49305365,\
++	-6.27193275, -0.00091899, 0.00056335, 7.27101376, 0.99719152, 0.99851766, 0.49305371,\
++	-6.27193356, -0.00091872, 0.00056318, 7.27101484, 0.99719235, 0.99851810, 0.49305382,\
++	-6.27193436, -0.00091844, 0.00056301, 7.27101592, 0.99719318, 0.99851854, 0.49305392,\
++	-6.27193516, -0.00091817, 0.00056285, 7.27101699, 0.99719402, 0.99851898, 0.49305400,\
++	-6.27193597, -0.00091790, 0.00056268, 7.27101807, 0.99719485, 0.99851942, 0.49305415,\
++	-6.27193677, -0.00091763, 0.00056251, 7.27101914, 0.99719568, 0.99851986, 0.49305427,\
++	-6.27193757, -0.00091736, 0.00056235, 7.27102021, 0.99719651, 0.99852030, 0.49305437,\
++	-6.27193837, -0.00091708, 0.00056218, 7.27102128, 0.99719735, 0.99852074, 0.49305443,\
++	-6.27193917, -0.00091681, 0.00056201, 7.27102235, 0.99719818, 0.99852117, 0.49305458,\
++	-6.27193996, -0.00091654, 0.00056185, 7.27102342, 0.99719901, 0.99852161, 0.49305464,\
++	-6.27194076, -0.00091627, 0.00056168, 7.27102449, 0.99719984, 0.99852205, 0.49305472,\
++	-6.27194155, -0.00091600, 0.00056151, 7.27102556, 0.99720066, 0.99852249, 0.49305485,\
++	-6.27194235, -0.00091573, 0.00056135, 7.27102662, 0.99720149, 0.99852292, 0.49305488,\
++	-6.27194314, -0.00091546, 0.00056118, 7.27102769, 0.99720232, 0.99852336, 0.49305501,\
++	-6.27194394, -0.00091519, 0.00056102, 7.27102875, 0.99720315, 0.99852380, 0.49305520,\
++	-6.27194473, -0.00091492, 0.00056085, 7.27102981, 0.99720398, 0.99852423, 0.49305527,\
++	-6.27194552, -0.00091465, 0.00056068, 7.27103087, 0.99720480, 0.99852467, 0.49305537,\
++	-6.27194631, -0.00091438, 0.00056052, 7.27103193, 0.99720563, 0.99852511, 0.49305541,\
++	-6.27194710, -0.00091411, 0.00056035, 7.27103299, 0.99720646, 0.99852554, 0.49305558,\
++	-6.27194788, -0.00091384, 0.00056019, 7.27103405, 0.99720728, 0.99852598, 0.49305568,\
++	-6.27194867, -0.00091357, 0.00056002, 7.27103510, 0.99720811, 0.99852641, 0.49305582,\
++	-6.27194946, -0.00091330, 0.00055986, 7.27103616, 0.99720893, 0.99852685, 0.49305585,\
++	-6.27195024, -0.00091303, 0.00055969, 7.27103721, 0.99720975, 0.99852728, 0.49305599,\
++	-6.27195102, -0.00091276, 0.00055953, 7.27103827, 0.99721058, 0.99852772, 0.49305606,\
++	-6.27195181, -0.00091249, 0.00055936, 7.27103932, 0.99721140, 0.99852815, 0.49305614,\
++	-6.27195259, -0.00091222, 0.00055920, 7.27104037, 0.99721222, 0.99852858, 0.49305629,\
++	-6.27195337, -0.00091195, 0.00055903, 7.27104142, 0.99721304, 0.99852902, 0.49305636,\
++	-6.27195415, -0.00091168, 0.00055887, 7.27104247, 0.99721387, 0.99852945, 0.49305643,\
++	-6.27195493, -0.00091141, 0.00055870, 7.27104351, 0.99721469, 0.99852988, 0.49305655,\
++	-6.27195571, -0.00091115, 0.00055854, 7.27104456, 0.99721551, 0.99853032, 0.49305663,\
++	-6.27195648, -0.00091088, 0.00055837, 7.27104561, 0.99721633, 0.99853075, 0.49305679,\
++	-6.27195726, -0.00091061, 0.00055821, 7.27104665, 0.99721715, 0.99853118, 0.49305682,\
++	-6.27195803, -0.00091034, 0.00055804, 7.27104769, 0.99721796, 0.99853161, 0.49305696,\
++	-6.27195881, -0.00091007, 0.00055788, 7.27104873, 0.99721878, 0.99853205, 0.49305711,\
++	-6.27195958, -0.00090981, 0.00055771, 7.27104978, 0.99721960, 0.99853248, 0.49305719,\
++	-6.27196035, -0.00090954, 0.00055755, 7.27105081, 0.99722042, 0.99853291, 0.49305721,\
++	-6.27196113, -0.00090927, 0.00055739, 7.27105185, 0.99722124, 0.99853334, 0.49305736,\
++	-6.27196190, -0.00090901, 0.00055722, 7.27105289, 0.99722205, 0.99853377, 0.49305741,\
++	-6.27196267, -0.00090874, 0.00055706, 7.27105393, 0.99722287, 0.99853420, 0.49305756,\
++	-6.27196344, -0.00090847, 0.00055690, 7.27105496, 0.99722368, 0.99853463, 0.49305766,\
++	-6.27196420, -0.00090821, 0.00055673, 7.27105600, 0.99722450, 0.99853506, 0.49305779,\
++	-6.27196497, -0.00090794, 0.00055657, 7.27105703, 0.99722531, 0.99853549, 0.49305788,\
++	-6.27196574, -0.00090767, 0.00055641, 7.27105806, 0.99722613, 0.99853592, 0.49305797,\
++	-6.27196650, -0.00090741, 0.00055624, 7.27105909, 0.99722694, 0.99853635, 0.49305806,\
++	-6.27196726, -0.00090714, 0.00055608, 7.27106012, 0.99722776, 0.99853678, 0.49305817,\
++	-6.27196803, -0.00090688, 0.00055592, 7.27106115, 0.99722857, 0.99853721, 0.49305825,\
++	-6.27196879, -0.00090661, 0.00055575, 7.27106218, 0.99722938, 0.99853764, 0.49305840,\
++	-6.27196955, -0.00090634, 0.00055559, 7.27106321, 0.99723019, 0.99853807, 0.49305847,\
++	-6.27197031, -0.00090608, 0.00055543, 7.27106423, 0.99723100, 0.99853849, 0.49305859,\
++	-6.27197107, -0.00090581, 0.00055526, 7.27106526, 0.99723181, 0.99853892, 0.49305865,\
++	-6.27197183, -0.00090555, 0.00055510, 7.27106628, 0.99723262, 0.99853935, 0.49305875,\
++	-6.27197259, -0.00090528, 0.00055494, 7.27106730, 0.99723343, 0.99853978, 0.49305889,\
++	-6.27197335, -0.00090502, 0.00055478, 7.27106833, 0.99723424, 0.99854020, 0.49305896,\
++	-6.27197410, -0.00090476, 0.00055461, 7.27106935, 0.99723505, 0.99854063, 0.49305906,\
++	-6.27197486, -0.00090449, 0.00055445, 7.27107037, 0.99723586, 0.99854106, 0.49305911,\
++	-6.27197561, -0.00090423, 0.00055429, 7.27107138, 0.99723667, 0.99854148, 0.49305929,\
++	-6.27197637, -0.00090396, 0.00055413, 7.27107240, 0.99723748, 0.99854191, 0.49305933,\
++	-6.27197712, -0.00090370, 0.00055397, 7.27107342, 0.99723828, 0.99854233, 0.49305943,\
++	-6.27197787, -0.00090344, 0.00055380, 7.27107443, 0.99723909, 0.99854276, 0.49305954,\
++	-6.27197862, -0.00090317, 0.00055364, 7.27107545, 0.99723990, 0.99854319, 0.49305965,\
++	-6.27197937, -0.00090291, 0.00055348, 7.27107646, 0.99724070, 0.99854361, 0.49305972,\
++	-6.27198012, -0.00090264, 0.00055332, 7.27107748, 0.99724151, 0.99854404, 0.49305986,\
++	-6.27198087, -0.00090238, 0.00055316, 7.27107849, 0.99724231, 0.99854446, 0.49305996,\
++	-6.27198162, -0.00090212, 0.00055300, 7.27107950, 0.99724312, 0.99854488, 0.49306003,\
++	-6.27198236, -0.00090186, 0.00055284, 7.27108051, 0.99724392, 0.99854531, 0.49306014,\
++	-6.27198311, -0.00090159, 0.00055267, 7.27108151, 0.99724472, 0.99854573, 0.49306027,\
++	-6.27198385, -0.00090133, 0.00055251, 7.27108252, 0.99724553, 0.99854616, 0.49306036,\
++	-6.27198460, -0.00090107, 0.00055235, 7.27108353, 0.99724633, 0.99854658, 0.49306043,\
++	-6.27198534, -0.00090081, 0.00055219, 7.27108453, 0.99724713, 0.99854700, 0.49306047,\
++	-6.27198608, -0.00090054, 0.00055203, 7.27108554, 0.99724793, 0.99854742, 0.49306066,\
++	-6.27198682, -0.00090028, 0.00055187, 7.27108654, 0.99724873, 0.99854785, 0.49306072,\
++	-6.27198756, -0.00090002, 0.00055171, 7.27108754, 0.99724953, 0.99854827, 0.49306079,\
++	-6.27198830, -0.00089976, 0.00055155, 7.27108855, 0.99725033, 0.99854869, 0.49306090,\
++	-6.27198904, -0.00089950, 0.00055139, 7.27108955, 0.99725113, 0.99854911, 0.49306100,\
++	-6.27198978, -0.00089924, 0.00055123, 7.27109054, 0.99725193, 0.99854954, 0.49306107,\
++	-6.27199052, -0.00089898, 0.00055107, 7.27109154, 0.99725273, 0.99854996, 0.49306122,\
++	-6.27199126, -0.00089871, 0.00055091, 7.27109254, 0.99725353, 0.99855038, 0.49306129,\
++	-6.27199199, -0.00089845, 0.00055075, 7.27109354, 0.99725433, 0.99855080, 0.49306135,\
++	-6.27199273, -0.00089819, 0.00055059, 7.27109453, 0.99725512, 0.99855122, 0.49306146,\
++	-6.27199346, -0.00089793, 0.00055043, 7.27109553, 0.99725592, 0.99855164, 0.49306163,\
++	-6.27199419, -0.00089767, 0.00055027, 7.27109652, 0.99725672, 0.99855206, 0.49306163,\
++	-6.27199493, -0.00089741, 0.00055011, 7.27109751, 0.99725751, 0.99855248, 0.49306178,\
++	-6.27199566, -0.00089715, 0.00054995, 7.27109851, 0.99725831, 0.99855290, 0.49306188,\
++	-6.27199639, -0.00089689, 0.00054979, 7.27109950, 0.99725910, 0.99855332, 0.49306196,\
++	-6.27199712, -0.00089663, 0.00054963, 7.27110049, 0.99725990, 0.99855374, 0.49306206,\
++	-6.27199785, -0.00089637, 0.00054947, 7.27110147, 0.99726069, 0.99855416, 0.49306218,\
++	-6.27199857, -0.00089611, 0.00054931, 7.27110246, 0.99726149, 0.99855458, 0.49306227,\
++	-6.27199930, -0.00089585, 0.00054915, 7.27110345, 0.99726228, 0.99855499, 0.49306238,\
++	-6.27200003, -0.00089559, 0.00054899, 7.27110443, 0.99726307, 0.99855541, 0.49306244,\
++	-6.27200076, -0.00089534, 0.00054883, 7.27110542, 0.99726386, 0.99855583, 0.49306254,\
++	-6.27200148, -0.00089508, 0.00054868, 7.27110640, 0.99726465, 0.99855625, 0.49306260,\
++	-6.27200220, -0.00089482, 0.00054852, 7.27110739, 0.99726545, 0.99855667, 0.49306270,\
++	-6.27200293, -0.00089456, 0.00054836, 7.27110837, 0.99726624, 0.99855708, 0.49306284,\
++	-6.27200365, -0.00089430, 0.00054820, 7.27110935, 0.99726703, 0.99855750, 0.49306289,\
++	-6.27200437, -0.00089404, 0.00054804, 7.27111033, 0.99726782, 0.99855792, 0.49306299,\
++	-6.27200509, -0.00089378, 0.00054788, 7.27111131, 0.99726861, 0.99855833, 0.49306315,\
++	-6.27200581, -0.00089353, 0.00054772, 7.27111229, 0.99726940, 0.99855875, 0.49306325,\
++	-6.27200653, -0.00089327, 0.00054757, 7.27111326, 0.99727018, 0.99855916, 0.49306334,\
++	-6.27200725, -0.00089301, 0.00054741, 7.27111424, 0.99727097, 0.99855958, 0.49306342,\
++	-6.27200797, -0.00089275, 0.00054725, 7.27111522, 0.99727176, 0.99856000, 0.49306348,\
++	-6.27200869, -0.00089250, 0.00054709, 7.27111619, 0.99727255, 0.99856041, 0.49306360,\
++	-6.27200940, -0.00089224, 0.00054693, 7.27111717, 0.99727333, 0.99856083, 0.49306368,\
++	-6.27201012, -0.00089198, 0.00054678, 7.27111814, 0.99727412, 0.99856124, 0.49306382,\
++	-6.27201083, -0.00089172, 0.00054662, 7.27111911, 0.99727491, 0.99856166, 0.49306389,\
++	-6.27201155, -0.00089147, 0.00054646, 7.27112008, 0.99727569, 0.99856207, 0.49306395,\
++	-6.27201226, -0.00089121, 0.00054630, 7.27112105, 0.99727648, 0.99856248, 0.49306405,\
++	-6.27201297, -0.00089095, 0.00054615, 7.27112202, 0.99727726, 0.99856290, 0.49306415,\
++	-6.27201369, -0.00089070, 0.00054599, 7.27112299, 0.99727804, 0.99856331, 0.49306425,\
++	-6.27201440, -0.00089044, 0.00054583, 7.27112395, 0.99727883, 0.99856373, 0.49306438,\
++	-6.27201511, -0.00089019, 0.00054568, 7.27112492, 0.99727961, 0.99856414, 0.49306445,\
++	-6.27201582, -0.00088993, 0.00054552, 7.27112589, 0.99728039, 0.99856455, 0.49306454,\
++	-6.27201653, -0.00088967, 0.00054536, 7.27112685, 0.99728118, 0.99856496, 0.49306460,\
++	-6.27201723, -0.00088942, 0.00054520, 7.27112782, 0.99728196, 0.99856538, 0.49306473,\
++	-6.27201794, -0.00088916, 0.00054505, 7.27112878, 0.99728274, 0.99856579, 0.49306481,\
++	-6.27201865, -0.00088891, 0.00054489, 7.27112974, 0.99728352, 0.99856620, 0.49306490,\
++	-6.27201935, -0.00088865, 0.00054473, 7.27113070, 0.99728430, 0.99856661, 0.49306499,\
++	-6.27202006, -0.00088840, 0.00054458, 7.27113166, 0.99728508, 0.99856702, 0.49306507,\
++	-6.27202076, -0.00088814, 0.00054442, 7.27113262, 0.99728586, 0.99856744, 0.49306519,\
++	-6.27202147, -0.00088789, 0.00054427, 7.27113358, 0.99728664, 0.99856785, 0.49306522,\
++	-6.27202217, -0.00088763, 0.00054411, 7.27113454, 0.99728742, 0.99856826, 0.49306541,\
++	-6.27202287, -0.00088738, 0.00054395, 7.27113549, 0.99728820, 0.99856867, 0.49306548,\
++	-6.27202357, -0.00088713, 0.00054380, 7.27113645, 0.99728897, 0.99856908, 0.49306558,\
++	-6.27202427, -0.00088687, 0.00054364, 7.27113740, 0.99728975, 0.99856949, 0.49306563,\
++	-6.27202497, -0.00088662, 0.00054349, 7.27113836, 0.99729053, 0.99856990, 0.49306575,\
++	-6.27202567, -0.00088636, 0.00054333, 7.27113931, 0.99729130, 0.99857031, 0.49306582,\
++	-6.27202637, -0.00088611, 0.00054317, 7.27114026, 0.99729208, 0.99857072, 0.49306593,\
++	-6.27202707, -0.00088586, 0.00054302, 7.27114121, 0.99729285, 0.99857113, 0.49306602,\
++	-6.27202777, -0.00088560, 0.00054286, 7.27114216, 0.99729363, 0.99857153, 0.49306615,\
++	-6.27202846, -0.00088535, 0.00054271, 7.27114311, 0.99729440, 0.99857194, 0.49306620,\
++	-6.27202916, -0.00088510, 0.00054255, 7.27114406, 0.99729518, 0.99857235, 0.49306631,\
++	-6.27202985, -0.00088484, 0.00054240, 7.27114501, 0.99729595, 0.99857276, 0.49306638,\
++	-6.27203055, -0.00088459, 0.00054224, 7.27114596, 0.99729673, 0.99857317, 0.49306650,\
++	-6.27203124, -0.00088434, 0.00054209, 7.27114690, 0.99729750, 0.99857358, 0.49306661,\
++	-6.27203193, -0.00088409, 0.00054193, 7.27114785, 0.99729827, 0.99857398, 0.49306664,\
++	-6.27203262, -0.00088383, 0.00054178, 7.27114879, 0.99729904, 0.99857439, 0.49306674,\
++	-6.27203332, -0.00088358, 0.00054162, 7.27114973, 0.99729981, 0.99857480, 0.49306687,\
++	-6.27203401, -0.00088333, 0.00054147, 7.27115068, 0.99730059, 0.99857520, 0.49306699,\
++	-6.27203470, -0.00088308, 0.00054131, 7.27115162, 0.99730136, 0.99857561, 0.49306701,\
++	-6.27203539, -0.00088282, 0.00054116, 7.27115256, 0.99730213, 0.99857602, 0.49306713,\
++	-6.27203607, -0.00088257, 0.00054100, 7.27115350, 0.99730290, 0.99857642, 0.49306721,\
++	-6.27203676, -0.00088232, 0.00054085, 7.27115444, 0.99730366, 0.99857683, 0.49306728,\
++	-6.27203745, -0.00088207, 0.00054069, 7.27115538, 0.99730443, 0.99857724, 0.49306742,\
++	-6.27203813, -0.00088182, 0.00054054, 7.27115632, 0.99730520, 0.99857764, 0.49306753,\
++	-6.27203882, -0.00088157, 0.00054039, 7.27115725, 0.99730597, 0.99857805, 0.49306761,\
++	-6.27203950, -0.00088132, 0.00054023, 7.27115819, 0.99730674, 0.99857845, 0.49306769,\
++	-6.27204019, -0.00088107, 0.00054008, 7.27115912, 0.99730750, 0.99857886, 0.49306776,\
++	-6.27204087, -0.00088082, 0.00053992, 7.27116006, 0.99730827, 0.99857926, 0.49306785,\
++	-6.27204156, -0.00088056, 0.00053977, 7.27116099, 0.99730904, 0.99857966, 0.49306801,\
++	-6.27204224, -0.00088031, 0.00053962, 7.27116192, 0.99730980, 0.99858007, 0.49306813,\
++	-6.27204292, -0.00088006, 0.00053946, 7.27116286, 0.99731057, 0.99858047, 0.49306816,\
++	-6.27204360, -0.00087981, 0.00053931, 7.27116379, 0.99731133, 0.99858088, 0.49306827,\
++	-6.27204428, -0.00087956, 0.00053916, 7.27116472, 0.99731210, 0.99858128, 0.49306833,\
++	-6.27204496, -0.00087931, 0.00053900, 7.27116565, 0.99731286, 0.99858168, 0.49306842,\
++	-6.27204564, -0.00087906, 0.00053885, 7.27116657, 0.99731363, 0.99858209, 0.49306852,\
++	-6.27204632, -0.00087881, 0.00053870, 7.27116750, 0.99731439, 0.99858249, 0.49306865,\
++	-6.27204699, -0.00087857, 0.00053854, 7.27116843, 0.99731515, 0.99858289, 0.49306872,\
++	-6.27204767, -0.00087832, 0.00053839, 7.27116935, 0.99731591, 0.99858329, 0.49306875,\
++	-6.27204835, -0.00087807, 0.00053824, 7.27117028, 0.99731668, 0.99858369, 0.49306889,\
++	-6.27204902, -0.00087782, 0.00053809, 7.27117120, 0.99731744, 0.99858410, 0.49306899,\
++	-6.27204970, -0.00087757, 0.00053793, 7.27117213, 0.99731820, 0.99858450, 0.49306909,\
++	-6.27205037, -0.00087732, 0.00053778, 7.27117305, 0.99731896, 0.99858490, 0.49306915,\
++	-6.27205104, -0.00087707, 0.00053763, 7.27117397, 0.99731972, 0.99858530, 0.49306931,\
++	-6.27205172, -0.00087682, 0.00053748, 7.27117489, 0.99732048, 0.99858570, 0.49306931,\
++	-6.27205239, -0.00087658, 0.00053732, 7.27117581, 0.99732124, 0.99858610, 0.49306947,\
++	-6.27205306, -0.00087633, 0.00053717, 7.27117673, 0.99732200, 0.99858650, 0.49306949,\
++	-6.27205373, -0.00087608, 0.00053702, 7.27117765, 0.99732276, 0.99858690, 0.49306961,\
++	-6.27205440, -0.00087583, 0.00053687, 7.27117857, 0.99732351, 0.99858730, 0.49306974,\
++	-6.27205507, -0.00087558, 0.00053671, 7.27117949, 0.99732427, 0.99858770, 0.49306982,\
++	-6.27205574, -0.00087534, 0.00053656, 7.27118040, 0.99732503, 0.99858810, 0.49306986,\
++	-6.27205641, -0.00087509, 0.00053641, 7.27118132, 0.99732579, 0.99858850, 0.49306997,\
++	-6.27205707, -0.00087484, 0.00053626, 7.27118223, 0.99732654, 0.99858890, 0.49307002,\
++	-6.27205774, -0.00087459, 0.00053611, 7.27118315, 0.99732730, 0.99858930, 0.49307020,\
++	-6.27205841, -0.00087435, 0.00053596, 7.27118406, 0.99732805, 0.99858970, 0.49307021,\
++	-6.27205907, -0.00087410, 0.00053580, 7.27118497, 0.99732881, 0.99859010, 0.49307035,\
++	-6.27205974, -0.00087385, 0.00053565, 7.27118588, 0.99732956, 0.99859049, 0.49307047,\
++	-6.27206040, -0.00087361, 0.00053550, 7.27118679, 0.99733032, 0.99859089, 0.49307051,\
++	-6.27206106, -0.00087336, 0.00053535, 7.27118770, 0.99733107, 0.99859129, 0.49307062,\
++	-6.27206173, -0.00087311, 0.00053520, 7.27118861, 0.99733182, 0.99859169, 0.49307069,\
++	-6.27206239, -0.00087287, 0.00053505, 7.27118952, 0.99733258, 0.99859208, 0.49307080,\
++	-6.27206305, -0.00087262, 0.00053490, 7.27119043, 0.99733333, 0.99859248, 0.49307089,\
++	-6.27206371, -0.00087238, 0.00053475, 7.27119134, 0.99733408, 0.99859288, 0.49307096,\
++	-6.27206437, -0.00087213, 0.00053460, 7.27119224, 0.99733483, 0.99859327, 0.49307103,\
++	-6.27206503, -0.00087188, 0.00053445, 7.27119315, 0.99733558, 0.99859367, 0.49307121,\
++	-6.27206569, -0.00087164, 0.00053429, 7.27119405, 0.99733633, 0.99859407, 0.49307121,\
++	-6.27206635, -0.00087139, 0.00053414, 7.27119496, 0.99733709, 0.99859446, 0.49307131,\
++	-6.27206701, -0.00087115, 0.00053399, 7.27119586, 0.99733783, 0.99859486, 0.49307143,\
++	-6.27206767, -0.00087090, 0.00053384, 7.27119676, 0.99733858, 0.99859525, 0.49307152,\
++	-6.27206832, -0.00087066, 0.00053369, 7.27119766, 0.99733933, 0.99859565, 0.49307163,\
++	-6.27206898, -0.00087041, 0.00053354, 7.27119856, 0.99734008, 0.99859604, 0.49307170,\
++	-6.27206963, -0.00087017, 0.00053339, 7.27119946, 0.99734083, 0.99859644, 0.49307178,\
++	-6.27207029, -0.00086992, 0.00053324, 7.27120036, 0.99734158, 0.99859683, 0.49307182,\
++	-6.27207094, -0.00086968, 0.00053309, 7.27120126, 0.99734233, 0.99859723, 0.49307196,\
++	-6.27207160, -0.00086944, 0.00053294, 7.27120216, 0.99734307, 0.99859762, 0.49307197,\
++	-6.27207225, -0.00086919, 0.00053279, 7.27120306, 0.99734382, 0.99859802, 0.49307220,\
++	-6.27207290, -0.00086895, 0.00053264, 7.27120395, 0.99734457, 0.99859841, 0.49307226,\
++	-6.27207355, -0.00086870, 0.00053249, 7.27120485, 0.99734531, 0.99859880, 0.49307233,\
++	-6.27207420, -0.00086846, 0.00053234, 7.27120574, 0.99734606, 0.99859920, 0.49307241,\
++	-6.27207485, -0.00086822, 0.00053219, 7.27120664, 0.99734680, 0.99859959, 0.49307252,\
++	-6.27207550, -0.00086797, 0.00053205, 7.27120753, 0.99734755, 0.99859998, 0.49307258,\
++	-6.27207615, -0.00086773, 0.00053190, 7.27120842, 0.99734829, 0.99860037, 0.49307271,\
++	-6.27207680, -0.00086749, 0.00053175, 7.27120931, 0.99734903, 0.99860077, 0.49307274,\
++	-6.27207745, -0.00086724, 0.00053160, 7.27121021, 0.99734978, 0.99860116, 0.49307287,\
++	-6.27207810, -0.00086700, 0.00053145, 7.27121110, 0.99735052, 0.99860155, 0.49307293,\
++	-6.27207874, -0.00086676, 0.00053130, 7.27121199, 0.99735126, 0.99860194, 0.49307303,\
++	-6.27207939, -0.00086652, 0.00053115, 7.27121287, 0.99735200, 0.99860233, 0.49307313,\
++	-6.27208004, -0.00086627, 0.00053100, 7.27121376, 0.99735275, 0.99860273, 0.49307325,\
++	-6.27208068, -0.00086603, 0.00053085, 7.27121465, 0.99735349, 0.99860312, 0.49307329,\
++	-6.27208132, -0.00086579, 0.00053070, 7.27121554, 0.99735423, 0.99860351, 0.49307333,\
++	-6.27208197, -0.00086555, 0.00053056, 7.27121642, 0.99735497, 0.99860390, 0.49307349,\
++	-6.27208261, -0.00086530, 0.00053041, 7.27121731, 0.99735571, 0.99860429, 0.49307355,\
++	-6.27208325, -0.00086506, 0.00053026, 7.27121819, 0.99735645, 0.99860468, 0.49307366,\
++	-6.27208390, -0.00086482, 0.00053011, 7.27121907, 0.99735719, 0.99860507, 0.49307376,\
++	-6.27208454, -0.00086458, 0.00052996, 7.27121996, 0.99735792, 0.99860546, 0.49307384,\
++	-6.27208518, -0.00086434, 0.00052981, 7.27122084, 0.99735866, 0.99860585, 0.49307389,\
++	-6.27208582, -0.00086410, 0.00052967, 7.27122172, 0.99735940, 0.99860624, 0.49307398,\
++	-6.27208646, -0.00086386, 0.00052952, 7.27122260, 0.99736014, 0.99860663, 0.49307410,\
++	-6.27208710, -0.00086361, 0.00052937, 7.27122348, 0.99736088, 0.99860701, 0.49307418,\
++	-6.27208774, -0.00086337, 0.00052922, 7.27122436, 0.99736161, 0.99860740, 0.49307431,\
++	-6.27208837, -0.00086313, 0.00052908, 7.27122524, 0.99736235, 0.99860779, 0.49307430,\
++	-6.27208901, -0.00086289, 0.00052893, 7.27122612, 0.99736308, 0.99860818, 0.49307450,\
++	-6.27208965, -0.00086265, 0.00052878, 7.27122700, 0.99736382, 0.99860857, 0.49307452,\
++	-6.27209028, -0.00086241, 0.00052863, 7.27122787, 0.99736455, 0.99860896, 0.49307461,\
++	-6.27209092, -0.00086217, 0.00052849, 7.27122875, 0.99736529, 0.99860934, 0.49307473,\
++	-6.27209155, -0.00086193, 0.00052834, 7.27122962, 0.99736602, 0.99860973, 0.49307476,\
++	-6.27209219, -0.00086169, 0.00052819, 7.27123050, 0.99736676, 0.99861012, 0.49307493,\
++	-6.27209282, -0.00086145, 0.00052804, 7.27123137, 0.99736749, 0.99861050, 0.49307491,\
++	-6.27209346, -0.00086121, 0.00052790, 7.27123224, 0.99736822, 0.99861089, 0.49307506,\
++	-6.27209409, -0.00086097, 0.00052775, 7.27123312, 0.99736896, 0.99861128, 0.49307515,\
++	-6.27209472, -0.00086073, 0.00052760, 7.27123399, 0.99736969, 0.99861166, 0.49307527,\
++	-6.27209535, -0.00086049, 0.00052746, 7.27123486, 0.99737042, 0.99861205, 0.49307528,\
++	-6.27209598, -0.00086025, 0.00052731, 7.27123573, 0.99737115, 0.99861244, 0.49307544,\
++	-6.27209661, -0.00086002, 0.00052716, 7.27123660, 0.99737188, 0.99861282, 0.49307551,\
++	-6.27209724, -0.00085978, 0.00052702, 7.27123747, 0.99737261, 0.99861321, 0.49307555,\
++	-6.27209787, -0.00085954, 0.00052687, 7.27123833, 0.99737334, 0.99861359, 0.49307566,\
++	-6.27209850, -0.00085930, 0.00052672, 7.27123920, 0.99737407, 0.99861398, 0.49307570,\
++	-6.27209913, -0.00085906, 0.00052658, 7.27124007, 0.99737480, 0.99861436, 0.49307581,\
++	-6.27209976, -0.00085882, 0.00052643, 7.27124094, 0.99737553, 0.99861475, 0.49307599,\
++	-6.27210038, -0.00085858, 0.00052628, 7.27124180, 0.99737626, 0.99861513, 0.49307598,\
++	-6.27210101, -0.00085835, 0.00052614, 7.27124266, 0.99737699, 0.99861551, 0.49307614,\
++	-6.27210164, -0.00085811, 0.00052599, 7.27124353, 0.99737771, 0.99861590, 0.49307614,\
++	-6.27210226, -0.00085787, 0.00052585, 7.27124439, 0.99737844, 0.99861628, 0.49307625,\
++	-6.27210289, -0.00085763, 0.00052570, 7.27124525, 0.99737917, 0.99861667, 0.49307637,\
++	-6.27210351, -0.00085740, 0.00052555, 7.27124612, 0.99737989, 0.99861705, 0.49307645,\
++	-6.27210414, -0.00085716, 0.00052541, 7.27124698, 0.99738062, 0.99861743, 0.49307653,\
++	-6.27210476, -0.00085692, 0.00052526, 7.27124784, 0.99738135, 0.99861782, 0.49307663,\
++	-6.27210538, -0.00085668, 0.00052512, 7.27124870, 0.99738207, 0.99861820, 0.49307669,\
++	-6.27210600, -0.00085645, 0.00052497, 7.27124956, 0.99738280, 0.99861858, 0.49307677,\
++	-6.27210663, -0.00085621, 0.00052483, 7.27125042, 0.99738352, 0.99861896, 0.49307688,\
++	-6.27210725, -0.00085597, 0.00052468, 7.27125127, 0.99738424, 0.99861934, 0.49307699,\
++	-6.27210787, -0.00085574, 0.00052454, 7.27125213, 0.99738497, 0.99861973, 0.49307706,\
++	-6.27210849, -0.00085550, 0.00052439, 7.27125299, 0.99738569, 0.99862011, 0.49307704,\
++	-6.27210911, -0.00085526, 0.00052425, 7.27125384, 0.99738641, 0.99862049, 0.49307723,\
++	-6.27210973, -0.00085503, 0.00052410, 7.27125470, 0.99738714, 0.99862087, 0.49307731,\
++	-6.27211034, -0.00085479, 0.00052396, 7.27125555, 0.99738786, 0.99862125, 0.49307742,\
++	-6.27211096, -0.00085456, 0.00052381, 7.27125641, 0.99738858, 0.99862163, 0.49307753,\
++	-6.27211158, -0.00085432, 0.00052367, 7.27125726, 0.99738930, 0.99862201, 0.49307753,\
++	-6.27211220, -0.00085408, 0.00052352, 7.27125811, 0.99739002, 0.99862239, 0.49307764,\
++	-6.27211281, -0.00085385, 0.00052338, 7.27125896, 0.99739074, 0.99862277, 0.49307770,\
++	-6.27211343, -0.00085361, 0.00052323, 7.27125981, 0.99739146, 0.99862315, 0.49307780,\
++	-6.27211404, -0.00085338, 0.00052309, 7.27126067, 0.99739218, 0.99862353, 0.49307792,\
++	-6.27211466, -0.00085314, 0.00052295, 7.27126152, 0.99739290, 0.99862391, 0.49307794,\
++	-6.27211527, -0.00085291, 0.00052280, 7.27126236, 0.99739362, 0.99862429, 0.49307803,\
++	-6.27211589, -0.00085267, 0.00052266, 7.27126321, 0.99739434, 0.99862467, 0.49307820,\
++	-6.27211650, -0.00085244, 0.00052251, 7.27126406, 0.99739506, 0.99862505, 0.49307827,\
++	-6.27211711, -0.00085220, 0.00052237, 7.27126491, 0.99739577, 0.99862543, 0.49307830,\
++	-6.27211772, -0.00085197, 0.00052222, 7.27126575, 0.99739649, 0.99862581, 0.49307839,\
++	-6.27211833, -0.00085173, 0.00052208, 7.27126660, 0.99739721, 0.99862618, 0.49307851,\
++	-6.27211895, -0.00085150, 0.00052194, 7.27126745, 0.99739792, 0.99862656, 0.49307861,\
++	-6.27211956, -0.00085127, 0.00052179, 7.27126829, 0.99739864, 0.99862694, 0.49307868,\
++	-6.27212017, -0.00085103, 0.00052165, 7.27126913, 0.99739936, 0.99862732, 0.49307878,\
++	-6.27212078, -0.00085080, 0.00052151, 7.27126998, 0.99740007, 0.99862770, 0.49307884,\
++	-6.27212138, -0.00085056, 0.00052136, 7.27127082, 0.99740079, 0.99862807, 0.49307888,\
++	-6.27212199, -0.00085033, 0.00052122, 7.27127166, 0.99740150, 0.99862845, 0.49307902,\
++	-6.27212260, -0.00085010, 0.00052108, 7.27127250, 0.99740221, 0.99862883, 0.49307911,\
++	-6.27212321, -0.00084986, 0.00052093, 7.27127334, 0.99740293, 0.99862920, 0.49307920,\
++	-6.27212381, -0.00084963, 0.00052079, 7.27127418, 0.99740364, 0.99862958, 0.49307926,\
++	-6.27212442, -0.00084940, 0.00052065, 7.27127502, 0.99740435, 0.99862996, 0.49307935,\
++	-6.27212503, -0.00084916, 0.00052050, 7.27127586, 0.99740507, 0.99863033, 0.49307944,\
++	-6.27212563, -0.00084893, 0.00052036, 7.27127670, 0.99740578, 0.99863071, 0.49307944,\
++	-6.27212624, -0.00084870, 0.00052022, 7.27127754, 0.99740649, 0.99863108, 0.49307954,\
++	-6.27212684, -0.00084847, 0.00052008, 7.27127837, 0.99740720, 0.99863146, 0.49307961,\
++	-6.27212744, -0.00084823, 0.00051993, 7.27127921, 0.99740791, 0.99863183, 0.49307978,\
++	-6.27212805, -0.00084800, 0.00051979, 7.27128005, 0.99740862, 0.99863221, 0.49307983,\
++	-6.27212865, -0.00084777, 0.00051965, 7.27128088, 0.99740933, 0.99863258, 0.49307996,\
++	-6.27212925, -0.00084754, 0.00051951, 7.27128172, 0.99741004, 0.99863296, 0.49308005,\
++	-6.27212986, -0.00084730, 0.00051936, 7.27128255, 0.99741075, 0.99863333, 0.49308014,\
++	-6.27213046, -0.00084707, 0.00051922, 7.27128338, 0.99741146, 0.99863371, 0.49308018,\
++	-6.27213106, -0.00084684, 0.00051908, 7.27128422, 0.99741217, 0.99863408, 0.49308030,\
++	-6.27213166, -0.00084661, 0.00051894, 7.27128505, 0.99741288, 0.99863445, 0.49308040,\
++	-6.27213226, -0.00084638, 0.00051879, 7.27128588, 0.99741359, 0.99863483, 0.49308040,\
++	-6.27213286, -0.00084615, 0.00051865, 7.27128671, 0.99741429, 0.99863520, 0.49308050,\
++	-6.27213345, -0.00084592, 0.00051851, 7.27128754, 0.99741500, 0.99863557, 0.49308061,\
++	-6.27213405, -0.00084568, 0.00051837, 7.27128837, 0.99741571, 0.99863595, 0.49308064,\
++	-6.27213465, -0.00084545, 0.00051823, 7.27128920, 0.99741641, 0.99863632, 0.49308083,\
++	-6.27213525, -0.00084522, 0.00051809, 7.27129003, 0.99741712, 0.99863669, 0.49308089,\
++	-6.27213585, -0.00084499, 0.00051794, 7.27129085, 0.99741783, 0.99863706, 0.49308103,\
++	-6.27213644, -0.00084476, 0.00051780, 7.27129168, 0.99741853, 0.99863744, 0.49308104,\
++	-6.27213704, -0.00084453, 0.00051766, 7.27129251, 0.99741924, 0.99863781, 0.49308114,\
++	-6.27213763, -0.00084430, 0.00051752, 7.27129333, 0.99741994, 0.99863818, 0.49308122,\
++	-6.27213823, -0.00084407, 0.00051738, 7.27129416, 0.99742064, 0.99863855, 0.49308125,\
++	-6.27213882, -0.00084384, 0.00051724, 7.27129498, 0.99742135, 0.99863892, 0.49308128,\
++	-6.27213942, -0.00084361, 0.00051710, 7.27129581, 0.99742205, 0.99863929, 0.49308149,\
++	-6.27214001, -0.00084338, 0.00051696, 7.27129663, 0.99742275, 0.99863966, 0.49308153,\
++	-6.27214060, -0.00084315, 0.00051681, 7.27129745, 0.99742346, 0.99864003, 0.49308160,\
++	-6.27214120, -0.00084292, 0.00051667, 7.27129827, 0.99742416, 0.99864041, 0.49308174,\
++	-6.27214179, -0.00084269, 0.00051653, 7.27129910, 0.99742486, 0.99864078, 0.49308171,\
++	-6.27214238, -0.00084246, 0.00051639, 7.27129992, 0.99742556, 0.99864115, 0.49308189,\
++	-6.27214297, -0.00084223, 0.00051625, 7.27130074, 0.99742626, 0.99864152, 0.49308189,\
++	-6.27214356, -0.00084200, 0.00051611, 7.27130156, 0.99742696, 0.99864188, 0.49308208,\
++	-6.27214415, -0.00084178, 0.00051597, 7.27130237, 0.99742766, 0.99864225, 0.49308218,\
++	-6.27214474, -0.00084155, 0.00051583, 7.27130319, 0.99742836, 0.99864262, 0.49308217,\
++	-6.27214533, -0.00084132, 0.00051569, 7.27130401, 0.99742906, 0.99864299, 0.49308225,\
++	-6.27214592, -0.00084109, 0.00051555, 7.27130483, 0.99742976, 0.99864336, 0.49308239,\
++	-6.27214651, -0.00084086, 0.00051541, 7.27130564, 0.99743046, 0.99864373, 0.49308247,\
++	-6.27214709, -0.00084063, 0.00051527, 7.27130646, 0.99743116, 0.99864410, 0.49308255,\
++	-6.27214768, -0.00084040, 0.00051513, 7.27130728, 0.99743186, 0.99864447, 0.49308258,\
++	-6.27214827, -0.00084018, 0.00051499, 7.27130809, 0.99743255, 0.99864483, 0.49308266,\
++	-6.27214885, -0.00083995, 0.00051485, 7.27130891, 0.99743325, 0.99864520, 0.49308274,\
++	-6.27214944, -0.00083972, 0.00051471, 7.27130972, 0.99743395, 0.99864557, 0.49308290,\
++	-6.27215002, -0.00083949, 0.00051457, 7.27131053, 0.99743464, 0.99864594, 0.49308290,\
++	-6.27215061, -0.00083926, 0.00051443, 7.27131134, 0.99743534, 0.99864631, 0.49308300,\
++	-6.27215119, -0.00083904, 0.00051429, 7.27131216, 0.99743604, 0.99864667, 0.49308315,\
++	-6.27215178, -0.00083881, 0.00051415, 7.27131297, 0.99743673, 0.99864704, 0.49308314,\
++	-6.27215236, -0.00083858, 0.00051401, 7.27131378, 0.99743743, 0.99864741, 0.49308324,\
++	-6.27215294, -0.00083836, 0.00051387, 7.27131459, 0.99743812, 0.99864777, 0.49308338,\
++	-6.27215353, -0.00083813, 0.00051373, 7.27131540, 0.99743881, 0.99864814, 0.49308338,\
++	-6.27215411, -0.00083790, 0.00051359, 7.27131621, 0.99743951, 0.99864850, 0.49308350,\
++	-6.27215469, -0.00083768, 0.00051345, 7.27131702, 0.99744020, 0.99864887, 0.49308357,\
++	-6.27215527, -0.00083745, 0.00051332, 7.27131782, 0.99744089, 0.99864924, 0.49308374,\
++	-6.27215585, -0.00083722, 0.00051318, 7.27131863, 0.99744159, 0.99864960, 0.49308379,\
++	-6.27215643, -0.00083700, 0.00051304, 7.27131944, 0.99744228, 0.99864997, 0.49308384,\
++	-6.27215701, -0.00083677, 0.00051290, 7.27132024, 0.99744297, 0.99865033, 0.49308393,\
++	-6.27215759, -0.00083654, 0.00051276, 7.27132105, 0.99744366, 0.99865070, 0.49308399,\
++	-6.27215817, -0.00083632, 0.00051262, 7.27132185, 0.99744435, 0.99865106, 0.49308412,\
++	-6.27215875, -0.00083609, 0.00051248, 7.27132266, 0.99744504, 0.99865143, 0.49308421,\
++	-6.27215933, -0.00083587, 0.00051234, 7.27132346, 0.99744574, 0.99865179, 0.49308425,\
++	-6.27215990, -0.00083564, 0.00051221, 7.27132426, 0.99744643, 0.99865215, 0.49308434,\
++	-6.27216048, -0.00083541, 0.00051207, 7.27132507, 0.99744711, 0.99865252, 0.49308442,\
++	-6.27216106, -0.00083519, 0.00051193, 7.27132587, 0.99744780, 0.99865288, 0.49308450,\
++	-6.27216164, -0.00083496, 0.00051179, 7.27132667, 0.99744849, 0.99865324, 0.49308461,\
++	-6.27216221, -0.00083474, 0.00051165, 7.27132747, 0.99744918, 0.99865361, 0.49308467,\
++	-6.27216279, -0.00083451, 0.00051151, 7.27132827, 0.99744987, 0.99865397, 0.49308473,\
++	-6.27216336, -0.00083429, 0.00051138, 7.27132907, 0.99745056, 0.99865433, 0.49308483,\
++	-6.27216394, -0.00083406, 0.00051124, 7.27132987, 0.99745124, 0.99865470, 0.49308489,\
++	-6.27216451, -0.00083384, 0.00051110, 7.27133067, 0.99745193, 0.99865506, 0.49308501,\
++	-6.27216508, -0.00083361, 0.00051096, 7.27133147, 0.99745262, 0.99865542, 0.49308509,\
++	-6.27216566, -0.00083339, 0.00051083, 7.27133227, 0.99745330, 0.99865578, 0.49308519,\
++	-6.27216623, -0.00083317, 0.00051069, 7.27133306, 0.99745399, 0.99865615, 0.49308520,\
++	-6.27216680, -0.00083294, 0.00051055, 7.27133386, 0.99745468, 0.99865651, 0.49308532,\
++	-6.27216737, -0.00083272, 0.00051041, 7.27133465, 0.99745536, 0.99865687, 0.49308537,\
++	-6.27216794, -0.00083249, 0.00051028, 7.27133545, 0.99745605, 0.99865723, 0.49308548,\
++	-6.27216851, -0.00083227, 0.00051014, 7.27133624, 0.99745673, 0.99865759, 0.49308555,\
++	-6.27216909, -0.00083205, 0.00051000, 7.27133704, 0.99745741, 0.99865795, 0.49308568,\
++	-6.27216966, -0.00083182, 0.00050986, 7.27133783, 0.99745810, 0.99865831, 0.49308575,\
++	-6.27217022, -0.00083160, 0.00050973, 7.27133863, 0.99745878, 0.99865867, 0.49308580,\
++	-6.27217079, -0.00083138, 0.00050959, 7.27133942, 0.99745946, 0.99865903, 0.49308589,\
++	-6.27217136, -0.00083115, 0.00050945, 7.27134021, 0.99746015, 0.99865939, 0.49308593,\
++	-6.27217193, -0.00083093, 0.00050932, 7.27134100, 0.99746083, 0.99865975, 0.49308603,\
++	-6.27217250, -0.00083071, 0.00050918, 7.27134179, 0.99746151, 0.99866011, 0.49308603,\
++	-6.27217307, -0.00083048, 0.00050904, 7.27134258, 0.99746219, 0.99866047, 0.49308626,\
++	-6.27217363, -0.00083026, 0.00050891, 7.27134337, 0.99746287, 0.99866083, 0.49308628,\
++	-6.27217420, -0.00083004, 0.00050877, 7.27134416, 0.99746355, 0.99866119, 0.49308633,\
++	-6.27217477, -0.00082982, 0.00050863, 7.27134495, 0.99746424, 0.99866155, 0.49308648,\
++	-6.27217533, -0.00082959, 0.00050850, 7.27134574, 0.99746492, 0.99866191, 0.49308650,\
++	-6.27217590, -0.00082937, 0.00050836, 7.27134653, 0.99746559, 0.99866227, 0.49308659,\
++	-6.27217646, -0.00082915, 0.00050822, 7.27134731, 0.99746627, 0.99866263, 0.49308664,\
++	-6.27217703, -0.00082893, 0.00050809, 7.27134810, 0.99746695, 0.99866299, 0.49308674,\
++	-6.27217759, -0.00082871, 0.00050795, 7.27134888, 0.99746763, 0.99866334, 0.49308688,\
++	-6.27217815, -0.00082848, 0.00050782, 7.27134967, 0.99746831, 0.99866370, 0.49308691,\
++	-6.27217872, -0.00082826, 0.00050768, 7.27135045, 0.99746899, 0.99866406, 0.49308700,\
++	-6.27217928, -0.00082804, 0.00050754, 7.27135124, 0.99746967, 0.99866442, 0.49308706,\
++	-6.27217984, -0.00082782, 0.00050741, 7.27135202, 0.99747034, 0.99866477, 0.49308711,\
++	-6.27218040, -0.00082760, 0.00050727, 7.27135281, 0.99747102, 0.99866513, 0.49308731,\
++	-6.27218097, -0.00082738, 0.00050714, 7.27135359, 0.99747170, 0.99866549, 0.49308733,\
++	-6.27218153, -0.00082716, 0.00050700, 7.27135437, 0.99747237, 0.99866584, 0.49308746,\
++	-6.27218209, -0.00082693, 0.00050686, 7.27135515, 0.99747305, 0.99866620, 0.49308753,\
++	-6.27218265, -0.00082671, 0.00050673, 7.27135593, 0.99747372, 0.99866656, 0.49308759,\
++	-6.27218321, -0.00082649, 0.00050659, 7.27135671, 0.99747440, 0.99866691, 0.49308757,\
++	-6.27218377, -0.00082627, 0.00050646, 7.27135749, 0.99747507, 0.99866727, 0.49308770,\
++	-6.27218433, -0.00082605, 0.00050632, 7.27135827, 0.99747575, 0.99866763, 0.49308772,\
++	-6.27218488, -0.00082583, 0.00050619, 7.27135905, 0.99747642, 0.99866798, 0.49308784,\
++	-6.27218544, -0.00082561, 0.00050605, 7.27135983, 0.99747709, 0.99866834, 0.49308794,\
++	-6.27218600, -0.00082539, 0.00050592, 7.27136061, 0.99747777, 0.99866869, 0.49308810,\
++	-6.27218656, -0.00082517, 0.00050578, 7.27136139, 0.99747844, 0.99866905, 0.49308812,\
++	-6.27218711, -0.00082495, 0.00050565, 7.27136216, 0.99747911, 0.99866940, 0.49308821,\
++	-6.27218767, -0.00082473, 0.00050551, 7.27136294, 0.99747978, 0.99866976, 0.49308825,\
++	-6.27218823, -0.00082451, 0.00050538, 7.27136371, 0.99748046, 0.99867011, 0.49308833,\
++	-6.27218878, -0.00082429, 0.00050524, 7.27136449, 0.99748113, 0.99867046, 0.49308847,\
++	-6.27218934, -0.00082407, 0.00050511, 7.27136526, 0.99748180, 0.99867082, 0.49308860,\
++	-6.27218989, -0.00082385, 0.00050497, 7.27136604, 0.99748247, 0.99867117, 0.49308859,\
++	-6.27219045, -0.00082363, 0.00050484, 7.27136681, 0.99748314, 0.99867153, 0.49308869,\
++	-6.27219100, -0.00082341, 0.00050471, 7.27136759, 0.99748381, 0.99867188, 0.49308873,\
++	-6.27219155, -0.00082320, 0.00050457, 7.27136836, 0.99748448, 0.99867223, 0.49308878,\
++	-6.27219211, -0.00082298, 0.00050444, 7.27136913, 0.99748515, 0.99867259, 0.49308888,\
++	-6.27219266, -0.00082276, 0.00050430, 7.27136990, 0.99748582, 0.99867294, 0.49308897,\
++	-6.27219321, -0.00082254, 0.00050417, 7.27137067, 0.99748649, 0.99867329, 0.49308901,\
++	-6.27219376, -0.00082232, 0.00050403, 7.27137144, 0.99748715, 0.99867364, 0.49308913,\
++	-6.27219432, -0.00082210, 0.00050390, 7.27137221, 0.99748782, 0.99867400, 0.49308916,\
++	-6.27219487, -0.00082188, 0.00050377, 7.27137298, 0.99748849, 0.99867435, 0.49308935,\
++	-6.27219542, -0.00082167, 0.00050363, 7.27137375, 0.99748916, 0.99867470, 0.49308938,\
++	-6.27219597, -0.00082145, 0.00050350, 7.27137452, 0.99748982, 0.99867505, 0.49308944,\
++	-6.27219652, -0.00082123, 0.00050337, 7.27137529, 0.99749049, 0.99867540, 0.49308959,\
++	-6.27219707, -0.00082101, 0.00050323, 7.27137606, 0.99749116, 0.99867576, 0.49308961,\
++	-6.27219762, -0.00082080, 0.00050310, 7.27137682, 0.99749182, 0.99867611, 0.49308966,\
++	-6.27219817, -0.00082058, 0.00050296, 7.27137759, 0.99749249, 0.99867646, 0.49308979,\
++	-6.27219872, -0.00082036, 0.00050283, 7.27137836, 0.99749315, 0.99867681, 0.49308985,\
++	-6.27219926, -0.00082014, 0.00050270, 7.27137912, 0.99749382, 0.99867716, 0.49308989,\
++	-6.27219981, -0.00081993, 0.00050256, 7.27137989, 0.99749448, 0.99867751, 0.49309002,\
++	-6.27220036, -0.00081971, 0.00050243, 7.27138065, 0.99749514, 0.99867786, 0.49309006,\
++	-6.27220091, -0.00081949, 0.00050230, 7.27138141, 0.99749581, 0.99867821, 0.49309016,\
++	-6.27220145, -0.00081927, 0.00050216, 7.27138218, 0.99749647, 0.99867856, 0.49309022,\
++	-6.27220200, -0.00081906, 0.00050203, 7.27138294, 0.99749713, 0.99867891, 0.49309028,\
++	-6.27220254, -0.00081884, 0.00050190, 7.27138370, 0.99749780, 0.99867926, 0.49309037,\
++	-6.27220309, -0.00081862, 0.00050177, 7.27138446, 0.99749846, 0.99867961, 0.49309053,\
++	-6.27220363, -0.00081841, 0.00050163, 7.27138523, 0.99749912, 0.99867996, 0.49309055,\
++	-6.27220418, -0.00081819, 0.00050150, 7.27138599, 0.99749978, 0.99868031, 0.49309069,\
++	-6.27220472, -0.00081798, 0.00050137, 7.27138675, 0.99750044, 0.99868066, 0.49309070,\
++	-6.27220527, -0.00081776, 0.00050124, 7.27138751, 0.99750110, 0.99868100, 0.49309083,\
++	-6.27220581, -0.00081754, 0.00050110, 7.27138827, 0.99750176, 0.99868135, 0.49309090,\
++	-6.27220635, -0.00081733, 0.00050097, 7.27138902, 0.99750242, 0.99868170, 0.49309098,\
++	-6.27220690, -0.00081711, 0.00050084, 7.27138978, 0.99750308, 0.99868205, 0.49309101,\
++	-6.27220744, -0.00081690, 0.00050071, 7.27139054, 0.99750374, 0.99868240, 0.49309113,\
++	-6.27220798, -0.00081668, 0.00050057, 7.27139130, 0.99750440, 0.99868275, 0.49309116,\
++	-6.27220852, -0.00081647, 0.00050044, 7.27139205, 0.99750506, 0.99868309, 0.49309123,\
++	-6.27220906, -0.00081625, 0.00050031, 7.27139281, 0.99750572, 0.99868344, 0.49309142,\
++	-6.27220960, -0.00081604, 0.00050018, 7.27139357, 0.99750638, 0.99868379, 0.49309142,\
++	-6.27221014, -0.00081582, 0.00050005, 7.27139432, 0.99750703, 0.99868413, 0.49309146,\
++	-6.27221068, -0.00081561, 0.00049991, 7.27139508, 0.99750769, 0.99868448, 0.49309158,\
++	-6.27221122, -0.00081539, 0.00049978, 7.27139583, 0.99750835, 0.99868483, 0.49309166,\
++	-6.27221176, -0.00081518, 0.00049965, 7.27139659, 0.99750901, 0.99868517, 0.49309171,\
++	-6.27221230, -0.00081496, 0.00049952, 7.27139734, 0.99750966, 0.99868552, 0.49309183,\
++	-6.27221284, -0.00081475, 0.00049939, 7.27139809, 0.99751032, 0.99868587, 0.49309186,\
++	-6.27221338, -0.00081453, 0.00049926, 7.27139884, 0.99751097, 0.99868621, 0.49309196,\
++	-6.27221391, -0.00081432, 0.00049912, 7.27139960, 0.99751163, 0.99868656, 0.49309197,\
++	-6.27221445, -0.00081410, 0.00049899, 7.27140035, 0.99751228, 0.99868690, 0.49309212,\
++	-6.27221499, -0.00081389, 0.00049886, 7.27140110, 0.99751294, 0.99868725, 0.49309226,\
++	-6.27221552, -0.00081368, 0.00049873, 7.27140185, 0.99751359, 0.99868759, 0.49309233,\
++	-6.27221606, -0.00081346, 0.00049860, 7.27140260, 0.99751425, 0.99868794, 0.49309240,\
++	-6.27221660, -0.00081325, 0.00049847, 7.27140335, 0.99751490, 0.99868828, 0.49309241,\
++	-6.27221713, -0.00081303, 0.00049834, 7.27140410, 0.99751555, 0.99868863, 0.49309250,\
++	-6.27221767, -0.00081282, 0.00049821, 7.27140485, 0.99751621, 0.99868897, 0.49309252,\
++	-6.27221820, -0.00081261, 0.00049807, 7.27140559, 0.99751686, 0.99868932, 0.49309262,\
++	-6.27221874, -0.00081239, 0.00049794, 7.27140634, 0.99751751, 0.99868966, 0.49309274,\
++	-6.27221927, -0.00081218, 0.00049781, 7.27140709, 0.99751816, 0.99869001, 0.49309277,\
++	-6.27221980, -0.00081197, 0.00049768, 7.27140784, 0.99751881, 0.99869035, 0.49309287,\
++	-6.27222034, -0.00081176, 0.00049755, 7.27140858, 0.99751946, 0.99869069, 0.49309295,\
++	-6.27222087, -0.00081154, 0.00049742, 7.27140933, 0.99752012, 0.99869104, 0.49309305,\
++	-6.27222140, -0.00081133, 0.00049729, 7.27141007, 0.99752077, 0.99869138, 0.49309311,\
++	-6.27222193, -0.00081112, 0.00049716, 7.27141082, 0.99752142, 0.99869172, 0.49309317,\
++	-6.27222247, -0.00081090, 0.00049703, 7.27141156, 0.99752207, 0.99869207, 0.49309328,\
++	-6.27222300, -0.00081069, 0.00049690, 7.27141230, 0.99752271, 0.99869241, 0.49309332,\
++	-6.27222353, -0.00081048, 0.00049677, 7.27141305, 0.99752336, 0.99869275, 0.49309344,\
++	-6.27222406, -0.00081027, 0.00049664, 7.27141379, 0.99752401, 0.99869309, 0.49309341,\
++	-6.27222459, -0.00081006, 0.00049651, 7.27141453, 0.99752466, 0.99869344, 0.49309354,\
++	-6.27222512, -0.00080984, 0.00049638, 7.27141527, 0.99752531, 0.99869378, 0.49309361,\
++	-6.27222565, -0.00080963, 0.00049625, 7.27141602, 0.99752596, 0.99869412, 0.49309375,\
++	-6.27222618, -0.00080942, 0.00049612, 7.27141676, 0.99752660, 0.99869446, 0.49309380,\
++	-6.27222671, -0.00080921, 0.00049599, 7.27141750, 0.99752725, 0.99869480, 0.49309382,\
++	-6.27222723, -0.00080900, 0.00049586, 7.27141824, 0.99752790, 0.99869514, 0.49309395,\
++	-6.27222776, -0.00080879, 0.00049573, 7.27141898, 0.99752854, 0.99869548, 0.49309403,\
++	-6.27222829, -0.00080857, 0.00049560, 7.27141972, 0.99752919, 0.99869582, 0.49309409,\
++	-6.27222882, -0.00080836, 0.00049547, 7.27142045, 0.99752984, 0.99869617, 0.49309410,\
++	-6.27222934, -0.00080815, 0.00049534, 7.27142119, 0.99753048, 0.99869651, 0.49309425,\
++	-6.27222987, -0.00080794, 0.00049521, 7.27142193, 0.99753113, 0.99869685, 0.49309434,\
++	-6.27223040, -0.00080773, 0.00049508, 7.27142267, 0.99753177, 0.99869719, 0.49309443,\
++	-6.27223092, -0.00080752, 0.00049495, 7.27142340, 0.99753241, 0.99869753, 0.49309447,\
++	-6.27223145, -0.00080731, 0.00049482, 7.27142414, 0.99753306, 0.99869787, 0.49309457,\
++	-6.27223197, -0.00080710, 0.00049469, 7.27142488, 0.99753370, 0.99869821, 0.49309459,\
++	-6.27223250, -0.00080689, 0.00049457, 7.27142561, 0.99753435, 0.99869855, 0.49309463,\
++	-6.27223302, -0.00080668, 0.00049444, 7.27142635, 0.99753499, 0.99869888, 0.49309473,\
++	-6.27223355, -0.00080647, 0.00049431, 7.27142708, 0.99753563, 0.99869922, 0.49309486,\
++	-6.27223407, -0.00080626, 0.00049418, 7.27142781, 0.99753627, 0.99869956, 0.49309496,\
++	-6.27223460, -0.00080605, 0.00049405, 7.27142855, 0.99753692, 0.99869990, 0.49309501,\
++	-6.27223512, -0.00080584, 0.00049392, 7.27142928, 0.99753756, 0.99870024, 0.49309506,\
++	-6.27223564, -0.00080563, 0.00049379, 7.27143001, 0.99753820, 0.99870058, 0.49309510,\
++	-6.27223616, -0.00080542, 0.00049366, 7.27143074, 0.99753884, 0.99870092, 0.49309524,\
++	-6.27223669, -0.00080521, 0.00049354, 7.27143148, 0.99753948, 0.99870125, 0.49309538,\
++	-6.27223721, -0.00080500, 0.00049341, 7.27143221, 0.99754012, 0.99870159, 0.49309541,\
++	-6.27223773, -0.00080479, 0.00049328, 7.27143294, 0.99754076, 0.99870193, 0.49309547,\
++	-6.27223825, -0.00080458, 0.00049315, 7.27143367, 0.99754140, 0.99870227, 0.49309552,\
++	-6.27223877, -0.00080437, 0.00049302, 7.27143440, 0.99754204, 0.99870260, 0.49309562,\
++	-6.27223929, -0.00080416, 0.00049289, 7.27143513, 0.99754268, 0.99870294, 0.49309564,\
++	-6.27223981, -0.00080395, 0.00049277, 7.27143586, 0.99754332, 0.99870328, 0.49309575,\
++	-6.27224033, -0.00080375, 0.00049264, 7.27143658, 0.99754395, 0.99870362, 0.49309585,\
++	-6.27224085, -0.00080354, 0.00049251, 7.27143731, 0.99754459, 0.99870395, 0.49309591,\
++	-6.27224137, -0.00080333, 0.00049238, 7.27143804, 0.99754523, 0.99870429, 0.49309595,\
++	-6.27224189, -0.00080312, 0.00049225, 7.27143877, 0.99754587, 0.99870463, 0.49309610,\
++	-6.27224241, -0.00080291, 0.00049213, 7.27143949, 0.99754650, 0.99870496, 0.49309609,\
++	-6.27224292, -0.00080270, 0.00049200, 7.27144022, 0.99754714, 0.99870530, 0.49309625,\
++	-6.27224344, -0.00080250, 0.00049187, 7.27144094, 0.99754778, 0.99870563, 0.49309625,\
++	-6.27224396, -0.00080229, 0.00049174, 7.27144167, 0.99754841, 0.99870597, 0.49309632,\
++	-6.27224447, -0.00080208, 0.00049162, 7.27144239, 0.99754905, 0.99870630, 0.49309639,\
++	-6.27224499, -0.00080187, 0.00049149, 7.27144312, 0.99754968, 0.99870664, 0.49309648,\
++	-6.27224551, -0.00080166, 0.00049136, 7.27144384, 0.99755032, 0.99870697, 0.49309655,\
++	-6.27224602, -0.00080146, 0.00049123, 7.27144457, 0.99755095, 0.99870731, 0.49309667,\
++	-6.27224654, -0.00080125, 0.00049111, 7.27144529, 0.99755159, 0.99870764, 0.49309666,\
++	-6.27224705, -0.00080104, 0.00049098, 7.27144601, 0.99755222, 0.99870798, 0.49309679,\
++	-6.27224757, -0.00080084, 0.00049085, 7.27144673, 0.99755286, 0.99870831, 0.49309687,\
++	-6.27224808, -0.00080063, 0.00049072, 7.27144746, 0.99755349, 0.99870865, 0.49309695,\
++	-6.27224860, -0.00080042, 0.00049060, 7.27144818, 0.99755412, 0.99870898, 0.49309704,\
++	-6.27224911, -0.00080021, 0.00049047, 7.27144890, 0.99755476, 0.99870932, 0.49309706,\
++	-6.27224962, -0.00080001, 0.00049034, 7.27144962, 0.99755539, 0.99870965, 0.49309713,\
++	-6.27225014, -0.00079980, 0.00049022, 7.27145034, 0.99755602, 0.99870998, 0.49309722,\
++	-6.27225065, -0.00079959, 0.00049009, 7.27145106, 0.99755665, 0.99871032, 0.49309728,\
++	-6.27225116, -0.00079939, 0.00048996, 7.27145178, 0.99755728, 0.99871065, 0.49309738,\
++	-6.27225168, -0.00079918, 0.00048984, 7.27145249, 0.99755791, 0.99871098, 0.49309747,\
++	-6.27225219, -0.00079897, 0.00048971, 7.27145321, 0.99755854, 0.99871131, 0.49309753,\
++	-6.27225270, -0.00079877, 0.00048958, 7.27145393, 0.99755918, 0.99871165, 0.49309771,\
++	-6.27225321, -0.00079856, 0.00048946, 7.27145465, 0.99755981, 0.99871198, 0.49309765,\
++	-6.27225372, -0.00079836, 0.00048933, 7.27145536, 0.99756044, 0.99871231, 0.49309782,\
++	-6.27225423, -0.00079815, 0.00048921, 7.27145608, 0.99756106, 0.99871264, 0.49309784,\
++	-6.27225474, -0.00079795, 0.00048908, 7.27145680, 0.99756169, 0.99871298, 0.49309793,\
++	-6.27225525, -0.00079774, 0.00048895, 7.27145751, 0.99756232, 0.99871331, 0.49309799,\
++	-6.27225576, -0.00079753, 0.00048883, 7.27145823, 0.99756295, 0.99871364, 0.49309812,\
++	-6.27225627, -0.00079733, 0.00048870, 7.27145894, 0.99756358, 0.99871397, 0.49309805,\
++	-6.27225678, -0.00079712, 0.00048857, 7.27145966, 0.99756421, 0.99871430, 0.49309821,\
++	-6.27225729, -0.00079692, 0.00048845, 7.27146037, 0.99756483, 0.99871463, 0.49309831,\
++	-6.27225780, -0.00079671, 0.00048832, 7.27146108, 0.99756546, 0.99871496, 0.49309836,\
++	-6.27225830, -0.00079651, 0.00048820, 7.27146180, 0.99756609, 0.99871529, 0.49309842,\
++	-6.27225881, -0.00079630, 0.00048807, 7.27146251, 0.99756671, 0.99871563, 0.49309856,\
++	-6.27225932, -0.00079610, 0.00048795, 7.27146322, 0.99756734, 0.99871596, 0.49309861,\
++	-6.27225983, -0.00079589, 0.00048782, 7.27146393, 0.99756797, 0.99871629, 0.49309861,\
++	-6.27226033, -0.00079569, 0.00048769, 7.27146464, 0.99756859, 0.99871662, 0.49309873,\
++	-6.27226084, -0.00079548, 0.00048757, 7.27146535, 0.99756922, 0.99871695, 0.49309877,\
++	-6.27226134, -0.00079528, 0.00048744, 7.27146606, 0.99756984, 0.99871728, 0.49309886,\
++	-6.27226185, -0.00079508, 0.00048732, 7.27146677, 0.99757047, 0.99871761, 0.49309893,\
++	-6.27226235, -0.00079487, 0.00048719, 7.27146748, 0.99757109, 0.99871793, 0.49309902,\
++	-6.27226286, -0.00079467, 0.00048707, 7.27146819, 0.99757172, 0.99871826, 0.49309912,\
++	-6.27226336, -0.00079446, 0.00048694, 7.27146890, 0.99757234, 0.99871859, 0.49309921,\
++	-6.27226387, -0.00079426, 0.00048682, 7.27146961, 0.99757296, 0.99871892, 0.49309921,\
++	-6.27226437, -0.00079406, 0.00048669, 7.27147032, 0.99757359, 0.99871925, 0.49309928,\
++	-6.27226488, -0.00079385, 0.00048657, 7.27147102, 0.99757421, 0.99871958, 0.49309939,\
++	-6.27226538, -0.00079365, 0.00048644, 7.27147173, 0.99757483, 0.99871991, 0.49309945,\
++	-6.27226588, -0.00079345, 0.00048632, 7.27147244, 0.99757545, 0.99872024, 0.49309958,\
++	-6.27226639, -0.00079324, 0.00048619, 7.27147314, 0.99757607, 0.99872056, 0.49309958,\
++	-6.27226689, -0.00079304, 0.00048607, 7.27147385, 0.99757670, 0.99872089, 0.49309961,\
++	-6.27226739, -0.00079284, 0.00048594, 7.27147455, 0.99757732, 0.99872122, 0.49309967,\
++	-6.27226789, -0.00079263, 0.00048582, 7.27147526, 0.99757794, 0.99872155, 0.49309986,\
++	-6.27226839, -0.00079243, 0.00048570, 7.27147596, 0.99757856, 0.99872187, 0.49309996,\
++	-6.27226889, -0.00079223, 0.00048557, 7.27147667, 0.99757918, 0.99872220, 0.49309999,\
++	-6.27226939, -0.00079202, 0.00048545, 7.27147737, 0.99757980, 0.99872253, 0.49310010,\
++	-6.27226990, -0.00079182, 0.00048532, 7.27147807, 0.99758042, 0.99872286, 0.49310015,\
++	-6.27227040, -0.00079162, 0.00048520, 7.27147878, 0.99758104, 0.99872318, 0.49310022,\
++	-6.27227090, -0.00079142, 0.00048507, 7.27147948, 0.99758166, 0.99872351, 0.49310023,\
++	-6.27227139, -0.00079121, 0.00048495, 7.27148018, 0.99758227, 0.99872384, 0.49310029,\
++	-6.27227189, -0.00079101, 0.00048483, 7.27148088, 0.99758289, 0.99872416, 0.49310038,\
++	-6.27227239, -0.00079081, 0.00048470, 7.27148158, 0.99758351, 0.99872449, 0.49310046,\
++	-6.27227289, -0.00079061, 0.00048458, 7.27148228, 0.99758413, 0.99872481, 0.49310052,\
++	-6.27227339, -0.00079041, 0.00048445, 7.27148298, 0.99758474, 0.99872514, 0.49310058,\
++	-6.27227389, -0.00079020, 0.00048433, 7.27148368, 0.99758536, 0.99872546, 0.49310064,\
++	-6.27227439, -0.00079000, 0.00048421, 7.27148438, 0.99758598, 0.99872579, 0.49310077,\
++	-6.27227488, -0.00078980, 0.00048408, 7.27148508, 0.99758659, 0.99872612, 0.49310085,\
++	-6.27227538, -0.00078960, 0.00048396, 7.27148578, 0.99758721, 0.99872644, 0.49310092,\
++	-6.27227588, -0.00078940, 0.00048384, 7.27148648, 0.99758783, 0.99872677, 0.49310100,\
++	-6.27227637, -0.00078920, 0.00048371, 7.27148717, 0.99758844, 0.99872709, 0.49310112,\
++	-6.27227687, -0.00078900, 0.00048359, 7.27148787, 0.99758906, 0.99872741, 0.49310113,\
++	-6.27227736, -0.00078880, 0.00048347, 7.27148857, 0.99758967, 0.99872774, 0.49310122,\
++	-6.27227786, -0.00078859, 0.00048334, 7.27148927, 0.99759029, 0.99872806, 0.49310127,\
++	-6.27227836, -0.00078839, 0.00048322, 7.27148996, 0.99759090, 0.99872839, 0.49310130,\
++	-6.27227885, -0.00078819, 0.00048310, 7.27149066, 0.99759151, 0.99872871, 0.49310141,\
++	-6.27227934, -0.00078799, 0.00048297, 7.27149135, 0.99759213, 0.99872903, 0.49310152,\
++	-6.27227984, -0.00078779, 0.00048285, 7.27149205, 0.99759274, 0.99872936, 0.49310152,\
++	-6.27228033, -0.00078759, 0.00048273, 7.27149274, 0.99759335, 0.99872968, 0.49310163,\
++	-6.27228083, -0.00078739, 0.00048260, 7.27149344, 0.99759397, 0.99873001, 0.49310168,\
++	-6.27228132, -0.00078719, 0.00048248, 7.27149413, 0.99759458, 0.99873033, 0.49310178,\
++	-6.27228181, -0.00078699, 0.00048236, 7.27149482, 0.99759519, 0.99873065, 0.49310189,\
++	-6.27228231, -0.00078679, 0.00048224, 7.27149552, 0.99759580, 0.99873097, 0.49310191,\
++	-6.27228280, -0.00078659, 0.00048211, 7.27149621, 0.99759641, 0.99873130, 0.49310203,\
++	-6.27228329, -0.00078639, 0.00048199, 7.27149690, 0.99759702, 0.99873162, 0.49310202,\
++	-6.27228378, -0.00078619, 0.00048187, 7.27149759, 0.99759763, 0.99873194, 0.49310216,\
++	-6.27228427, -0.00078599, 0.00048175, 7.27149828, 0.99759825, 0.99873226, 0.49310220,\
++	-6.27228476, -0.00078579, 0.00048162, 7.27149897, 0.99759886, 0.99873259, 0.49310228,\
++	-6.27228526, -0.00078559, 0.00048150, 7.27149966, 0.99759946, 0.99873291, 0.49310231,\
++	-6.27228575, -0.00078539, 0.00048138, 7.27150035, 0.99760007, 0.99873323, 0.49310245,\
++	-6.27228624, -0.00078519, 0.00048126, 7.27150104, 0.99760068, 0.99873355, 0.49310250,\
++	-6.27228673, -0.00078500, 0.00048113, 7.27150173, 0.99760129, 0.99873387, 0.49310256,\
++	-6.27228722, -0.00078480, 0.00048101, 7.27150242, 0.99760190, 0.99873419, 0.49310269,\
++	-6.27228771, -0.00078460, 0.00048089, 7.27150311, 0.99760251, 0.99873451, 0.49310278,\
++	-6.27228819, -0.00078440, 0.00048077, 7.27150380, 0.99760312, 0.99873483, 0.49310277,\
++	-6.27228868, -0.00078420, 0.00048065, 7.27150448, 0.99760372, 0.99873515, 0.49310291,\
++	-6.27228917, -0.00078400, 0.00048052, 7.27150517, 0.99760433, 0.99873548, 0.49310291,\
++	-6.27228966, -0.00078380, 0.00048040, 7.27150586, 0.99760494, 0.99873580, 0.49310301,\
++	-6.27229015, -0.00078360, 0.00048028, 7.27150654, 0.99760555, 0.99873612, 0.49310307,\
++	-6.27229064, -0.00078341, 0.00048016, 7.27150723, 0.99760615, 0.99873644, 0.49310321,\
++	-6.27229112, -0.00078321, 0.00048004, 7.27150792, 0.99760676, 0.99873676, 0.49310322,\
++	-6.27229161, -0.00078301, 0.00047992, 7.27150860, 0.99760736, 0.99873707, 0.49310330,\
++	-6.27229210, -0.00078281, 0.00047979, 7.27150929, 0.99760797, 0.99873739, 0.49310330,\
++	-6.27229258, -0.00078261, 0.00047967, 7.27150997, 0.99760857, 0.99873771, 0.49310340,\
++	-6.27229307, -0.00078242, 0.00047955, 7.27151065, 0.99760918, 0.99873803, 0.49310344,\
++	-6.27229356, -0.00078222, 0.00047943, 7.27151134, 0.99760978, 0.99873835, 0.49310362,\
++	-6.27229404, -0.00078202, 0.00047931, 7.27151202, 0.99761039, 0.99873867, 0.49310362,\
++	-6.27229453, -0.00078182, 0.00047919, 7.27151270, 0.99761099, 0.99873899, 0.49310369,\
++	-6.27229501, -0.00078163, 0.00047907, 7.27151339, 0.99761160, 0.99873931, 0.49310382,\
++	-6.27229550, -0.00078143, 0.00047895, 7.27151407, 0.99761220, 0.99873963, 0.49310378,\
++	-6.27229598, -0.00078123, 0.00047882, 7.27151475, 0.99761280, 0.99873994, 0.49310395,\
++	-6.27229646, -0.00078103, 0.00047870, 7.27151543, 0.99761340, 0.99874026, 0.49310398,\
++	-6.27229695, -0.00078084, 0.00047858, 7.27151611, 0.99761401, 0.99874058, 0.49310409,\
++	-6.27229743, -0.00078064, 0.00047846, 7.27151679, 0.99761461, 0.99874090, 0.49310410,\
++	-6.27229791, -0.00078044, 0.00047834, 7.27151747, 0.99761521, 0.99874122, 0.49310419,\
++	-6.27229840, -0.00078025, 0.00047822, 7.27151815, 0.99761581, 0.99874153, 0.49310426,\
++	-6.27229888, -0.00078005, 0.00047810, 7.27151883, 0.99761641, 0.99874185, 0.49310431,\
++	-6.27229936, -0.00077985, 0.00047798, 7.27151951, 0.99761701, 0.99874217, 0.49310439,\
++	-6.27229984, -0.00077966, 0.00047786, 7.27152019, 0.99761762, 0.99874248, 0.49310456,\
++	-6.27230033, -0.00077946, 0.00047774, 7.27152087, 0.99761822, 0.99874280, 0.49310453,\
++	-6.27230081, -0.00077926, 0.00047762, 7.27152154, 0.99761882, 0.99874312, 0.49310456,\
++	-6.27230129, -0.00077907, 0.00047750, 7.27152222, 0.99761942, 0.99874343, 0.49310472,\
++	-6.27230177, -0.00077887, 0.00047738, 7.27152290, 0.99762001, 0.99874375, 0.49310478,\
++	-6.27230225, -0.00077868, 0.00047726, 7.27152357, 0.99762061, 0.99874407, 0.49310482,\
++	-6.27230273, -0.00077848, 0.00047714, 7.27152425, 0.99762121, 0.99874438, 0.49310485,\
++	-6.27230321, -0.00077828, 0.00047702, 7.27152493, 0.99762181, 0.99874470, 0.49310496,\
++	-6.27230369, -0.00077809, 0.00047690, 7.27152560, 0.99762241, 0.99874501, 0.49310508,\
++	-6.27230417, -0.00077789, 0.00047678, 7.27152628, 0.99762301, 0.99874533, 0.49310514,\
++	-6.27230465, -0.00077770, 0.00047666, 7.27152695, 0.99762360, 0.99874564, 0.49310512,\
++	-6.27230513, -0.00077750, 0.00047654, 7.27152763, 0.99762420, 0.99874596, 0.49310522,\
++	-6.27230561, -0.00077731, 0.00047642, 7.27152830, 0.99762480, 0.99874627, 0.49310530,\
++	-6.27230609, -0.00077711, 0.00047630, 7.27152897, 0.99762540, 0.99874659, 0.49310543,\
++	-6.27230656, -0.00077692, 0.00047618, 7.27152965, 0.99762599, 0.99874690, 0.49310543,\
++	-6.27230704, -0.00077672, 0.00047606, 7.27153032, 0.99762659, 0.99874722, 0.49310556,\
++	-6.27230752, -0.00077653, 0.00047594, 7.27153099, 0.99762718, 0.99874753, 0.49310555,\
++	-6.27230800, -0.00077633, 0.00047582, 7.27153166, 0.99762778, 0.99874785, 0.49310570,\
++	-6.27230847, -0.00077614, 0.00047570, 7.27153233, 0.99762837, 0.99874816, 0.49310570,\
++	-6.27230895, -0.00077594, 0.00047558, 7.27153301, 0.99762897, 0.99874848, 0.49310582,\
++	-6.27230943, -0.00077575, 0.00047546, 7.27153368, 0.99762956, 0.99874879, 0.49310585,\
++	-6.27230990, -0.00077556, 0.00047534, 7.27153435, 0.99763016, 0.99874910, 0.49310599,\
++	-6.27231038, -0.00077536, 0.00047522, 7.27153502, 0.99763075, 0.99874942, 0.49310605,\
++	-6.27231085, -0.00077517, 0.00047510, 7.27153569, 0.99763135, 0.99874973, 0.49310608,\
++	-6.27231133, -0.00077497, 0.00047498, 7.27153636, 0.99763194, 0.99875004, 0.49310612,\
++	-6.27231180, -0.00077478, 0.00047487, 7.27153702, 0.99763253, 0.99875036, 0.49310624,\
++	-6.27231228, -0.00077458, 0.00047475, 7.27153769, 0.99763312, 0.99875067, 0.49310622,\
++	-6.27231275, -0.00077439, 0.00047463, 7.27153836, 0.99763372, 0.99875098, 0.49310639,\
++	-6.27231323, -0.00077420, 0.00047451, 7.27153903, 0.99763431, 0.99875129, 0.49310643,\
++	-6.27231370, -0.00077400, 0.00047439, 7.27153970, 0.99763490, 0.99875161, 0.49310644,\
++	-6.27231417, -0.00077381, 0.00047427, 7.27154036, 0.99763549, 0.99875192, 0.49310654,\
++	-6.27231465, -0.00077362, 0.00047415, 7.27154103, 0.99763608, 0.99875223, 0.49310665,\
++	-6.27231512, -0.00077342, 0.00047403, 7.27154170, 0.99763668, 0.99875254, 0.49310674,\
++	-6.27231559, -0.00077323, 0.00047392, 7.27154236, 0.99763727, 0.99875285, 0.49310670,\
++	-6.27231607, -0.00077304, 0.00047380, 7.27154303, 0.99763786, 0.99875317, 0.49310684,\
++	-6.27231654, -0.00077284, 0.00047368, 7.27154369, 0.99763845, 0.99875348, 0.49310692,\
++	-6.27231701, -0.00077265, 0.00047356, 7.27154436, 0.99763904, 0.99875379, 0.49310699,\
++	-6.27231748, -0.00077246, 0.00047344, 7.27154502, 0.99763963, 0.99875410, 0.49310700,\
++	-6.27231795, -0.00077227, 0.00047332, 7.27154569, 0.99764021, 0.99875441, 0.49310703,\
++	-6.27231842, -0.00077207, 0.00047321, 7.27154635, 0.99764080, 0.99875472, 0.49310722,\
++	-6.27231889, -0.00077188, 0.00047309, 7.27154701, 0.99764139, 0.99875503, 0.49310725,\
++	-6.27231936, -0.00077169, 0.00047297, 7.27154768, 0.99764198, 0.99875534, 0.49310729,\
++	-6.27231984, -0.00077150, 0.00047285, 7.27154834, 0.99764257, 0.99875565, 0.49310745,\
++	-6.27232031, -0.00077130, 0.00047273, 7.27154900, 0.99764316, 0.99875596, 0.49310751,\
++	-6.27232077, -0.00077111, 0.00047262, 7.27154966, 0.99764374, 0.99875627, 0.49310749,\
++	-6.27232124, -0.00077092, 0.00047250, 7.27155032, 0.99764433, 0.99875658, 0.49310765,\
++	-6.27232171, -0.00077073, 0.00047238, 7.27155099, 0.99764492, 0.99875689, 0.49310767,\
++	-6.27232218, -0.00077054, 0.00047226, 7.27155165, 0.99764550, 0.99875720, 0.49310775,\
++	-6.27232265, -0.00077034, 0.00047215, 7.27155231, 0.99764609, 0.99875751, 0.49310781,\
++	-6.27232312, -0.00077015, 0.00047203, 7.27155297, 0.99764668, 0.99875782, 0.49310787,\
++	-6.27232359, -0.00076996, 0.00047191, 7.27155363, 0.99764726, 0.99875813, 0.49310796,\
++	-6.27232406, -0.00076977, 0.00047179, 7.27155429, 0.99764785, 0.99875844, 0.49310787,\
++	-6.27232452, -0.00076958, 0.00047168, 7.27155494, 0.99764843, 0.99875875, 0.49310807,\
++	-6.27232499, -0.00076939, 0.00047156, 7.27155560, 0.99764902, 0.99875906, 0.49310819,\
++	-6.27232546, -0.00076920, 0.00047144, 7.27155626, 0.99764960, 0.99875936, 0.49310824,\
++	-6.27232592, -0.00076900, 0.00047132, 7.27155692, 0.99765019, 0.99875967, 0.49310831,\
++	-6.27232639, -0.00076881, 0.00047121, 7.27155758, 0.99765077, 0.99875998, 0.49310826,\
++	-6.27232686, -0.00076862, 0.00047109, 7.27155823, 0.99765135, 0.99876029, 0.49310841,\
++	-6.27232732, -0.00076843, 0.00047097, 7.27155889, 0.99765194, 0.99876060, 0.49310851,\
++	-6.27232779, -0.00076824, 0.00047086, 7.27155955, 0.99765252, 0.99876090, 0.49310855,\
++	-6.27232825, -0.00076805, 0.00047074, 7.27156020, 0.99765310, 0.99876121, 0.49310862,\
++	-6.27232872, -0.00076786, 0.00047062, 7.27156086, 0.99765369, 0.99876152, 0.49310868,\
++	-6.27232918, -0.00076767, 0.00047050, 7.27156151, 0.99765427, 0.99876183, 0.49310870,\
++	-6.27232965, -0.00076748, 0.00047039, 7.27156217, 0.99765485, 0.99876213, 0.49310885,\
++	-6.27233011, -0.00076729, 0.00047027, 7.27156282, 0.99765543, 0.99876244, 0.49310881,\
++	-6.27233058, -0.00076710, 0.00047015, 7.27156348, 0.99765601, 0.99876275, 0.49310901,\
++	-6.27233104, -0.00076691, 0.00047004, 7.27156413, 0.99765660, 0.99876305, 0.49310905,\
++	-6.27233150, -0.00076672, 0.00046992, 7.27156478, 0.99765718, 0.99876336, 0.49310906,\
++	-6.27233197, -0.00076653, 0.00046981, 7.27156544, 0.99765776, 0.99876367, 0.49310915,\
++	-6.27233243, -0.00076634, 0.00046969, 7.27156609, 0.99765834, 0.99876397, 0.49310926,\
++	-6.27233289, -0.00076615, 0.00046957, 7.27156674, 0.99765892, 0.99876428, 0.49310922,\
++	-6.27233336, -0.00076596, 0.00046946, 7.27156740, 0.99765950, 0.99876458, 0.49310945,\
++	-6.27233382, -0.00076577, 0.00046934, 7.27156805, 0.99766008, 0.99876489, 0.49310949,\
++	-6.27233428, -0.00076558, 0.00046922, 7.27156870, 0.99766065, 0.99876520, 0.49310955,\
++	-6.27233474, -0.00076539, 0.00046911, 7.27156935, 0.99766123, 0.99876550, 0.49310960,\
++	-6.27233520, -0.00076520, 0.00046899, 7.27157000, 0.99766181, 0.99876581, 0.49310966,\
++	-6.27233566, -0.00076501, 0.00046888, 7.27157065, 0.99766239, 0.99876611, 0.49310976,\
++	-6.27233612, -0.00076482, 0.00046876, 7.27157130, 0.99766297, 0.99876642, 0.49310982,\
++	-6.27233658, -0.00076464, 0.00046864, 7.27157195, 0.99766355, 0.99876672, 0.49310988,\
++	-6.27233705, -0.00076445, 0.00046853, 7.27157260, 0.99766412, 0.99876703, 0.49310995,\
++	-6.27233751, -0.00076426, 0.00046841, 7.27157325, 0.99766470, 0.99876733, 0.49310998,\
++	-6.27233797, -0.00076407, 0.00046830, 7.27157390, 0.99766528, 0.99876763, 0.49311004,\
++	-6.27233843, -0.00076388, 0.00046818, 7.27157454, 0.99766585, 0.99876794, 0.49311017,\
++	-6.27233888, -0.00076369, 0.00046806, 7.27157519, 0.99766643, 0.99876824, 0.49311019,\
++	-6.27233934, -0.00076350, 0.00046795, 7.27157584, 0.99766701, 0.99876855, 0.49311023,\
++	-6.27233980, -0.00076332, 0.00046783, 7.27157649, 0.99766758, 0.99876885, 0.49311028,\
++	-6.27234026, -0.00076313, 0.00046772, 7.27157713, 0.99766816, 0.99876915, 0.49311042,\
++	-6.27234072, -0.00076294, 0.00046760, 7.27157778, 0.99766873, 0.99876946, 0.49311047,\
++	-6.27234118, -0.00076275, 0.00046749, 7.27157843, 0.99766931, 0.99876976, 0.49311045,\
++	-6.27234163, -0.00076256, 0.00046737, 7.27157907, 0.99766988, 0.99877006, 0.49311061,\
++	-6.27234209, -0.00076238, 0.00046726, 7.27157972, 0.99767046, 0.99877037, 0.49311059,\
++	-6.27234255, -0.00076219, 0.00046714, 7.27158036, 0.99767103, 0.99877067, 0.49311072,\
++	-6.27234301, -0.00076200, 0.00046703, 7.27158101, 0.99767160, 0.99877097, 0.49311081,\
++	-6.27234346, -0.00076181, 0.00046691, 7.27158165, 0.99767218, 0.99877128, 0.49311088,\
++	-6.27234392, -0.00076163, 0.00046680, 7.27158229, 0.99767275, 0.99877158, 0.49311099,\
++	-6.27234438, -0.00076144, 0.00046668, 7.27158294, 0.99767332, 0.99877188, 0.49311100,\
++	-6.27234483, -0.00076125, 0.00046657, 7.27158358, 0.99767389, 0.99877218, 0.49311108,\
++	-6.27234529, -0.00076106, 0.00046645, 7.27158422, 0.99767447, 0.99877248, 0.49311114,\
++	-6.27234574, -0.00076088, 0.00046634, 7.27158487, 0.99767504, 0.99877279, 0.49311126,\
++	-6.27234620, -0.00076069, 0.00046622, 7.27158551, 0.99767561, 0.99877309, 0.49311118,\
++	-6.27234665, -0.00076050, 0.00046611, 7.27158615, 0.99767618, 0.99877339, 0.49311132,\
++	-6.27234711, -0.00076032, 0.00046599, 7.27158679, 0.99767675, 0.99877369, 0.49311134,\
++	-6.27234756, -0.00076013, 0.00046588, 7.27158743, 0.99767732, 0.99877399, 0.49311138,\
++	-6.27234802, -0.00075994, 0.00046576, 7.27158807, 0.99767789, 0.99877429, 0.49311158,\
++	-6.27234847, -0.00075976, 0.00046565, 7.27158872, 0.99767846, 0.99877459, 0.49311152,\
++	-6.27234892, -0.00075957, 0.00046554, 7.27158935, 0.99767903, 0.99877489, 0.49311170,\
++	-6.27234938, -0.00075938, 0.00046542, 7.27158999, 0.99767960, 0.99877519, 0.49311176,\
++	-6.27234983, -0.00075920, 0.00046531, 7.27159063, 0.99768017, 0.99877550, 0.49311184,\
++	-6.27235028, -0.00075901, 0.00046519, 7.27159127, 0.99768074, 0.99877580, 0.49311180,\
++	-6.27235074, -0.00075882, 0.00046508, 7.27159191, 0.99768131, 0.99877610, 0.49311187,\
++	-6.27235119, -0.00075864, 0.00046496, 7.27159255, 0.99768188, 0.99877640, 0.49311206,\
++	-6.27235164, -0.00075845, 0.00046485, 7.27159319, 0.99768245, 0.99877670, 0.49311212,\
++	-6.27235209, -0.00075827, 0.00046474, 7.27159383, 0.99768302, 0.99877700, 0.49311212,\
++	-6.27235255, -0.00075808, 0.00046462, 7.27159446, 0.99768358, 0.99877730, 0.49311214,\
++	-6.27235300, -0.00075790, 0.00046451, 7.27159510, 0.99768415, 0.99877759, 0.49311223,\
++	-6.27235345, -0.00075771, 0.00046440, 7.27159574, 0.99768472, 0.99877789, 0.49311231,\
++	-6.27235390, -0.00075753, 0.00046428, 7.27159637, 0.99768529, 0.99877819, 0.49311242,\
++	-6.27235435, -0.00075734, 0.00046417, 7.27159701, 0.99768585, 0.99877849, 0.49311242,\
++	-6.27235480, -0.00075715, 0.00046405, 7.27159765, 0.99768642, 0.99877879, 0.49311257,\
++	-6.27235525, -0.00075697, 0.00046394, 7.27159828, 0.99768699, 0.99877909, 0.49311263,\
++	-6.27235570, -0.00075678, 0.00046383, 7.27159892, 0.99768755, 0.99877939, 0.49311265,\
++	-6.27235615, -0.00075660, 0.00046371, 7.27159955, 0.99768812, 0.99877969, 0.49311271,\
++	-6.27235660, -0.00075641, 0.00046360, 7.27160019, 0.99768868, 0.99877999, 0.49311273,\
++	-6.27235705, -0.00075623, 0.00046349, 7.27160082, 0.99768925, 0.99878028, 0.49311292,\
++	-6.27235750, -0.00075605, 0.00046337, 7.27160145, 0.99768981, 0.99878058, 0.49311290,\
++	-6.27235795, -0.00075586, 0.00046326, 7.27160209, 0.99769038, 0.99878088, 0.49311294,\
++	-6.27235840, -0.00075568, 0.00046315, 7.27160272, 0.99769094, 0.99878118, 0.49311305,\
++	-6.27235884, -0.00075549, 0.00046303, 7.27160335, 0.99769150, 0.99878147, 0.49311309,\
++	-6.27235929, -0.00075531, 0.00046292, 7.27160398, 0.99769207, 0.99878177, 0.49311327,\
++	-6.27235974, -0.00075512, 0.00046281, 7.27160462, 0.99769263, 0.99878207, 0.49311324,\
++	-6.27236019, -0.00075494, 0.00046269, 7.27160525, 0.99769319, 0.99878237, 0.49311327,\
++	-6.27236063, -0.00075475, 0.00046258, 7.27160588, 0.99769376, 0.99878266, 0.49311333,\
++	-6.27236108, -0.00075457, 0.00046247, 7.27160651, 0.99769432, 0.99878296, 0.49311348,\
++	-6.27236153, -0.00075439, 0.00046236, 7.27160714, 0.99769488, 0.99878326, 0.49311361,\
++	-6.27236197, -0.00075420, 0.00046224, 7.27160777, 0.99769544, 0.99878355, 0.49311357,\
++	-6.27236242, -0.00075402, 0.00046213, 7.27160840, 0.99769601, 0.99878385, 0.49311362,\
++	-6.27236287, -0.00075384, 0.00046202, 7.27160903, 0.99769657, 0.99878415, 0.49311367,\
++	-6.27236331, -0.00075365, 0.00046191, 7.27160966, 0.99769713, 0.99878444, 0.49311366,\
++	-6.27236376, -0.00075347, 0.00046179, 7.27161029, 0.99769769, 0.99878474, 0.49311384,\
++	-6.27236420, -0.00075329, 0.00046168, 7.27161092, 0.99769825, 0.99878503, 0.49311393,\
++	-6.27236465, -0.00075310, 0.00046157, 7.27161155, 0.99769881, 0.99878533, 0.49311405,\
++	-6.27236509, -0.00075292, 0.00046146, 7.27161217, 0.99769937, 0.99878563, 0.49311410,\
++	-6.27236554, -0.00075274, 0.00046134, 7.27161280, 0.99769993, 0.99878592, 0.49311401,\
++	-6.27236598, -0.00075255, 0.00046123, 7.27161343, 0.99770049, 0.99878622, 0.49311424,\
++	-6.27236643, -0.00075237, 0.00046112, 7.27161406, 0.99770105, 0.99878651, 0.49311425,\
++	-6.27236687, -0.00075219, 0.00046101, 7.27161468, 0.99770161, 0.99878681, 0.49311423,\
++	-6.27236731, -0.00075200, 0.00046089, 7.27161531, 0.99770217, 0.99878710, 0.49311442,\
++	-6.27236776, -0.00075182, 0.00046078, 7.27161594, 0.99770272, 0.99878740, 0.49311431,\
++	-6.27236820, -0.00075164, 0.00046067, 7.27161656, 0.99770328, 0.99878769, 0.49311449,\
++	-6.27236864, -0.00075146, 0.00046056, 7.27161719, 0.99770384, 0.99878798, 0.49311451,\
++	-6.27236909, -0.00075127, 0.00046045, 7.27161781, 0.99770440, 0.99878828, 0.49311462,\
++	-6.27236953, -0.00075109, 0.00046034, 7.27161844, 0.99770496, 0.99878857, 0.49311465,\
++	-6.27236997, -0.00075091, 0.00046022, 7.27161906, 0.99770551, 0.99878887, 0.49311479,\
++	-6.27237041, -0.00075073, 0.00046011, 7.27161968, 0.99770607, 0.99878916, 0.49311488,\
++	-6.27237085, -0.00075055, 0.00046000, 7.27162031, 0.99770663, 0.99878945, 0.49311489,\
++	-6.27237130, -0.00075036, 0.00045989, 7.27162093, 0.99770718, 0.99878975, 0.49311496,\
++	-6.27237174, -0.00075018, 0.00045978, 7.27162155, 0.99770774, 0.99879004, 0.49311494,\
++	-6.27237218, -0.00075000, 0.00045967, 7.27162218, 0.99770829, 0.99879033, 0.49311510,\
++	-6.27237262, -0.00074982, 0.00045955, 7.27162280, 0.99770885, 0.99879063, 0.49311504,\
++	-6.27237306, -0.00074964, 0.00045944, 7.27162342, 0.99770941, 0.99879092, 0.49311523,\
++	-6.27237350, -0.00074946, 0.00045933, 7.27162404, 0.99770996, 0.99879121, 0.49311526,\
++	-6.27237394, -0.00074927, 0.00045922, 7.27162466, 0.99771051, 0.99879151, 0.49311531,\
++	-6.27237438, -0.00074909, 0.00045911, 7.27162529, 0.99771107, 0.99879180, 0.49311549,\
++	-6.27237482, -0.00074891, 0.00045900, 7.27162591, 0.99771162, 0.99879209, 0.49311546,\
++	-6.27237526, -0.00074873, 0.00045889, 7.27162653, 0.99771218, 0.99879238, 0.49311554,\
++	-6.27237570, -0.00074855, 0.00045878, 7.27162715, 0.99771273, 0.99879268, 0.49311557,\
++	-6.27237614, -0.00074837, 0.00045866, 7.27162777, 0.99771328, 0.99879297, 0.49311573,\
++	-6.27237657, -0.00074819, 0.00045855, 7.27162839, 0.99771384, 0.99879326, 0.49311571,\
++	-6.27237701, -0.00074801, 0.00045844, 7.27162901, 0.99771439, 0.99879355, 0.49311580,\
++	-6.27237745, -0.00074783, 0.00045833, 7.27162962, 0.99771494, 0.99879384, 0.49311585,\
++	-6.27237789, -0.00074765, 0.00045822, 7.27163024, 0.99771549, 0.99879413, 0.49311592,\
++	-6.27237833, -0.00074747, 0.00045811, 7.27163086, 0.99771605, 0.99879442, 0.49311607,\
++	-6.27237876, -0.00074728, 0.00045800, 7.27163148, 0.99771660, 0.99879472, 0.49311608,\
++	-6.27237920, -0.00074710, 0.00045789, 7.27163210, 0.99771715, 0.99879501, 0.49311612,\
++	-6.27237964, -0.00074692, 0.00045778, 7.27163271, 0.99771770, 0.99879530, 0.49311622,\
++	-6.27238007, -0.00074674, 0.00045767, 7.27163333, 0.99771825, 0.99879559, 0.49311623,\
++	-6.27238051, -0.00074656, 0.00045756, 7.27163395, 0.99771880, 0.99879588, 0.49311629,\
++	-6.27238095, -0.00074638, 0.00045745, 7.27163456, 0.99771935, 0.99879617, 0.49311629,\
++	-6.27238138, -0.00074620, 0.00045734, 7.27163518, 0.99771990, 0.99879646, 0.49311644,\
++	-6.27238182, -0.00074602, 0.00045723, 7.27163580, 0.99772045, 0.99879675, 0.49311641,\
++	-6.27238225, -0.00074584, 0.00045712, 7.27163641, 0.99772100, 0.99879704, 0.49311653,\
++	-6.27238269, -0.00074566, 0.00045701, 7.27163703, 0.99772155, 0.99879733, 0.49311671,\
++	-6.27238312, -0.00074548, 0.00045690, 7.27163764, 0.99772210, 0.99879762, 0.49311673,\
++	-6.27238356, -0.00074531, 0.00045679, 7.27163825, 0.99772265, 0.99879791, 0.49311683,\
++	-6.27238399, -0.00074513, 0.00045668, 7.27163887, 0.99772320, 0.99879820, 0.49311676,\
++	-6.27238443, -0.00074495, 0.00045657, 7.27163948, 0.99772375, 0.99879849, 0.49311684,\
++	-6.27238486, -0.00074477, 0.00045646, 7.27164010, 0.99772429, 0.99879878, 0.49311690,\
++	-6.27238530, -0.00074459, 0.00045635, 7.27164071, 0.99772484, 0.99879907, 0.49311703,\
++	-6.27238573, -0.00074441, 0.00045624, 7.27164132, 0.99772539, 0.99879936, 0.49311710,\
++	-6.27238616, -0.00074423, 0.00045613, 7.27164193, 0.99772594, 0.99879964, 0.49311708,\
++	-6.27238660, -0.00074405, 0.00045602, 7.27164255, 0.99772648, 0.99879993, 0.49311725,\
++	-6.27238703, -0.00074387, 0.00045591, 7.27164316, 0.99772703, 0.99880022, 0.49311732,\
++	-6.27238746, -0.00074369, 0.00045580, 7.27164377, 0.99772758, 0.99880051, 0.49311738,\
++	-6.27238790, -0.00074352, 0.00045569, 7.27164438, 0.99772812, 0.99880080, 0.49311739,\
++	-6.27238833, -0.00074334, 0.00045558, 7.27164499, 0.99772867, 0.99880109, 0.49311746,\
++	-6.27238876, -0.00074316, 0.00045547, 7.27164560, 0.99772921, 0.99880137, 0.49311752,\
++	-6.27238919, -0.00074298, 0.00045536, 7.27164621, 0.99772976, 0.99880166, 0.49311758,\
++	-6.27238962, -0.00074280, 0.00045525, 7.27164682, 0.99773030, 0.99880195, 0.49311766,\
++	-6.27239006, -0.00074262, 0.00045514, 7.27164743, 0.99773085, 0.99880224, 0.49311772,\
++	-6.27239049, -0.00074245, 0.00045503, 7.27164804, 0.99773139, 0.99880252, 0.49311777,\
++	-6.27239092, -0.00074227, 0.00045492, 7.27164865, 0.99773194, 0.99880281, 0.49311785,\
++	-6.27239135, -0.00074209, 0.00045481, 7.27164926, 0.99773248, 0.99880310, 0.49311791,\
++	-6.27239178, -0.00074191, 0.00045470, 7.27164987, 0.99773303, 0.99880339, 0.49311797,\
++	-6.27239221, -0.00074173, 0.00045459, 7.27165048, 0.99773357, 0.99880367, 0.49311806,\
++	-6.27239264, -0.00074156, 0.00045449, 7.27165108, 0.99773411, 0.99880396, 0.49311809,\
++	-6.27239307, -0.00074138, 0.00045438, 7.27165169, 0.99773466, 0.99880425, 0.49311816,\
++	-6.27239350, -0.00074120, 0.00045427, 7.27165230, 0.99773520, 0.99880453, 0.49311824,\
++	-6.27239393, -0.00074102, 0.00045416, 7.27165291, 0.99773574, 0.99880482, 0.49311829,\
++	-6.27239436, -0.00074085, 0.00045405, 7.27165351, 0.99773628, 0.99880510, 0.49311835,\
++	-6.27239479, -0.00074067, 0.00045394, 7.27165412, 0.99773683, 0.99880539, 0.49311839,\
++	-6.27239522, -0.00074049, 0.00045383, 7.27165472, 0.99773737, 0.99880568, 0.49311849,\
++	-6.27239564, -0.00074031, 0.00045372, 7.27165533, 0.99773791, 0.99880596, 0.49311853,\
++	-6.27239607, -0.00074014, 0.00045362, 7.27165593, 0.99773845, 0.99880625, 0.49311862,\
++	-6.27239650, -0.00073996, 0.00045351, 7.27165654, 0.99773899, 0.99880653, 0.49311867,\
++	-6.27239693, -0.00073978, 0.00045340, 7.27165714, 0.99773953, 0.99880682, 0.49311873,\
++	-6.27239736, -0.00073961, 0.00045329, 7.27165775, 0.99774007, 0.99880710, 0.49311878,\
++	-6.27239778, -0.00073943, 0.00045318, 7.27165835, 0.99774061, 0.99880739, 0.49311885,\
++	-6.27239821, -0.00073925, 0.00045307, 7.27165896, 0.99774115, 0.99880767, 0.49311891,\
++	-6.27239864, -0.00073908, 0.00045296, 7.27165956, 0.99774169, 0.99880796, 0.49311897,\
++	-6.27239906, -0.00073890, 0.00045286, 7.27166016, 0.99774223, 0.99880824, 0.49311905,\
++	-6.27239949, -0.00073872, 0.00045275, 7.27166077, 0.99774277, 0.99880853, 0.49311912,\
++	-6.27239992, -0.00073855, 0.00045264, 7.27166137, 0.99774331, 0.99880881, 0.49311918,\
++	-6.27240034, -0.00073837, 0.00045253, 7.27166197, 0.99774385, 0.99880910, 0.49311924,\
++	-6.27240077, -0.00073820, 0.00045242, 7.27166257, 0.99774439, 0.99880938, 0.49311929,\
++	-6.27240119, -0.00073802, 0.00045232, 7.27166317, 0.99774492, 0.99880966, 0.49311935,\
++	-6.27240162, -0.00073784, 0.00045221, 7.27166378, 0.99774546, 0.99880995, 0.49311941,\
++	-6.27240205, -0.00073767, 0.00045210, 7.27166438, 0.99774600, 0.99881023, 0.49311949,\
++	-6.27240247, -0.00073749, 0.00045199, 7.27166498, 0.99774654, 0.99881051, 0.49311956,\
++	-6.27240289, -0.00073732, 0.00045188, 7.27166558, 0.99774707, 0.99881080, 0.49311961,\
++	-6.27240332, -0.00073714, 0.00045178, 7.27166618, 0.99774761, 0.99881108, 0.49311968,\
++	-6.27240374, -0.00073697, 0.00045167, 7.27166678, 0.99774815, 0.99881136, 0.49311975,\
++	-6.27240417, -0.00073679, 0.00045156, 7.27166738, 0.99774868, 0.99881165, 0.49311980,\
++	-6.27240459, -0.00073662, 0.00045145, 7.27166798, 0.99774922, 0.99881193, 0.49311987,\
++	-6.27240502, -0.00073644, 0.00045135, 7.27166858, 0.99774976, 0.99881221, 0.49311992,\
++	-6.27240544, -0.00073626, 0.00045124, 7.27166917, 0.99775029, 0.99881250, 0.49312000,\
++	-6.27240586, -0.00073609, 0.00045113, 7.27166977, 0.99775083, 0.99881278, 0.49312006,\
++	-6.27240628, -0.00073591, 0.00045102, 7.27167037, 0.99775136, 0.99881306, 0.49312011,\
++	-6.27240671, -0.00073574, 0.00045092, 7.27167097, 0.99775190, 0.99881334, 0.49312017,\
++	-6.27240713, -0.00073556, 0.00045081, 7.27167157, 0.99775243, 0.99881362, 0.49312022,\
++	-6.27240755, -0.00073539, 0.00045070, 7.27167216, 0.99775297, 0.99881391, 0.49312031,\
++	-6.27240797, -0.00073522, 0.00045060, 7.27167276, 0.99775350, 0.99881419, 0.49312033,\
++	-6.27240840, -0.00073504, 0.00045049, 7.27167336, 0.99775403, 0.99881447, 0.49312043,\
++	-6.27240882, -0.00073487, 0.00045038, 7.27167395, 0.99775457, 0.99881475, 0.49312049,\
++	-6.27240924, -0.00073469, 0.00045027, 7.27167455, 0.99775510, 0.99881503, 0.49312054,\
++	-6.27240966, -0.00073452, 0.00045017, 7.27167514, 0.99775563, 0.99881531, 0.49312061,\
++	-6.27241008, -0.00073434, 0.00045006, 7.27167574, 0.99775617, 0.99881560, 0.49312068,\
++	-6.27241050, -0.00073417, 0.00044995, 7.27167633, 0.99775670, 0.99881588, 0.49312074,\
++	-6.27241092, -0.00073400, 0.00044985, 7.27167693, 0.99775723, 0.99881616, 0.49312080,\
++	-6.27241134, -0.00073382, 0.00044974, 7.27167752, 0.99775776, 0.99881644, 0.49312087,\
++	-6.27241176, -0.00073365, 0.00044963, 7.27167812, 0.99775829, 0.99881672, 0.49312093,\
++	-6.27241218, -0.00073347, 0.00044953, 7.27167871, 0.99775883, 0.99881700, 0.49312099,\
++	-6.27241260, -0.00073330, 0.00044942, 7.27167930, 0.99775936, 0.99881728, 0.49312106,\
++	-6.27241302, -0.00073313, 0.00044931, 7.27167990, 0.99775989, 0.99881756, 0.49312110,\
++	-6.27241344, -0.00073295, 0.00044921, 7.27168049, 0.99776042, 0.99881784, 0.49312117,\
++	-6.27241386, -0.00073278, 0.00044910, 7.27168108, 0.99776095, 0.99881812, 0.49312124,\
++	-6.27241428, -0.00073261, 0.00044899, 7.27168167, 0.99776148, 0.99881840, 0.49312129,\
++	-6.27241470, -0.00073243, 0.00044889, 7.27168227, 0.99776201, 0.99881868, 0.49312137,\
++	-6.27241512, -0.00073226, 0.00044878, 7.27168286, 0.99776254, 0.99881896, 0.49312141,\
++	-6.27241554, -0.00073209, 0.00044868, 7.27168345, 0.99776307, 0.99881924, 0.49312147,\
++	-6.27241595, -0.00073191, 0.00044857, 7.27168404, 0.99776360, 0.99881952, 0.49312156,\
++	-6.27241637, -0.00073174, 0.00044846, 7.27168463, 0.99776413, 0.99881980, 0.49312161,\
++	-6.27241679, -0.00073157, 0.00044836, 7.27168522, 0.99776466, 0.99882008, 0.49312166,\
++	-6.27241721, -0.00073139, 0.00044825, 7.27168581, 0.99776518, 0.99882035, 0.49312172,\
++	-6.27241762, -0.00073122, 0.00044815, 7.27168640, 0.99776571, 0.99882063, 0.49312178,\
++	-6.27241804, -0.00073105, 0.00044804, 7.27168699, 0.99776624, 0.99882091, 0.49312185,\
++	-6.27241846, -0.00073088, 0.00044793, 7.27168758, 0.99776677, 0.99882119, 0.49312193,\
++	-6.27241887, -0.00073070, 0.00044783, 7.27168817, 0.99776730, 0.99882147, 0.49312197,\
++	-6.27241929, -0.00073053, 0.00044772, 7.27168876, 0.99776782, 0.99882175, 0.49312203,\
++	-6.27241971, -0.00073036, 0.00044762, 7.27168935, 0.99776835, 0.99882202, 0.49312211,\
++	-6.27242012, -0.00073019, 0.00044751, 7.27168994, 0.99776888, 0.99882230, 0.49312215,\
++	-6.27242054, -0.00073001, 0.00044741, 7.27169052, 0.99776940, 0.99882258, 0.49312222,\
++	-6.27242095, -0.00072984, 0.00044730, 7.27169111, 0.99776993, 0.99882286, 0.49312230,\
++	-6.27242137, -0.00072967, 0.00044719, 7.27169170, 0.99777045, 0.99882314, 0.49312233,\
++	-6.27242178, -0.00072950, 0.00044709, 7.27169229, 0.99777098, 0.99882341, 0.49312241,\
++	-6.27242220, -0.00072933, 0.00044698, 7.27169287, 0.99777151, 0.99882369, 0.49312246,\
++	-6.27242261, -0.00072915, 0.00044688, 7.27169346, 0.99777203, 0.99882397, 0.49312253,\
++	-6.27242303, -0.00072898, 0.00044677, 7.27169405, 0.99777256, 0.99882424, 0.49312260,\
++	-6.27242344, -0.00072881, 0.00044667, 7.27169463, 0.99777308, 0.99882452, 0.49312265,\
++	-6.27242386, -0.00072864, 0.00044656, 7.27169522, 0.99777361, 0.99882480, 0.49312272,\
++	-6.27242427, -0.00072847, 0.00044646, 7.27169580, 0.99777413, 0.99882508, 0.49312276,\
++	-6.27242468, -0.00072830, 0.00044635, 7.27169639, 0.99777465, 0.99882535, 0.49312285,\
++	-6.27242510, -0.00072813, 0.00044625, 7.27169697, 0.99777518, 0.99882563, 0.49312291,\
++	-6.27242551, -0.00072795, 0.00044614, 7.27169756, 0.99777570, 0.99882590, 0.49312295,\
++	-6.27242592, -0.00072778, 0.00044604, 7.27169814, 0.99777622, 0.99882618, 0.49312303,\
++	-6.27242634, -0.00072761, 0.00044593, 7.27169872, 0.99777675, 0.99882646, 0.49312307,\
++	-6.27242675, -0.00072744, 0.00044583, 7.27169931, 0.99777727, 0.99882673, 0.49312312,\
++	-6.27242716, -0.00072727, 0.00044572, 7.27169989, 0.99777779, 0.99882701, 0.49312319,\
++	-6.27242757, -0.00072710, 0.00044562, 7.27170047, 0.99777831, 0.99882728, 0.49312326,\
++	-6.27242798, -0.00072693, 0.00044551, 7.27170106, 0.99777884, 0.99882756, 0.49312335,\
++	-6.27242840, -0.00072676, 0.00044541, 7.27170164, 0.99777936, 0.99882783, 0.49312338,\
++	-6.27242881, -0.00072659, 0.00044530, 7.27170222, 0.99777988, 0.99882811, 0.49312345,\
++	-6.27242922, -0.00072642, 0.00044520, 7.27170280, 0.99778040, 0.99882838, 0.49312349,\
++	-6.27242963, -0.00072625, 0.00044509, 7.27170338, 0.99778092, 0.99882866, 0.49312358,\
++	-6.27243004, -0.00072608, 0.00044499, 7.27170397, 0.99778144, 0.99882893, 0.49312364,\
++	-6.27243045, -0.00072591, 0.00044488, 7.27170455, 0.99778196, 0.99882921, 0.49312368,\
++	-6.27243086, -0.00072574, 0.00044478, 7.27170513, 0.99778248, 0.99882948, 0.49312376,\
++	-6.27243127, -0.00072557, 0.00044468, 7.27170571, 0.99778300, 0.99882976, 0.49312381,\
++	-6.27243168, -0.00072540, 0.00044457, 7.27170629, 0.99778352, 0.99883003, 0.49312388,\
++	-6.27243209, -0.00072523, 0.00044447, 7.27170687, 0.99778404, 0.99883031, 0.49312394,\
++	-6.27243250, -0.00072506, 0.00044436, 7.27170745, 0.99778456, 0.99883058, 0.49312397,\
++	-6.27243291, -0.00072489, 0.00044426, 7.27170803, 0.99778508, 0.99883086, 0.49312405,\
++	-6.27243332, -0.00072472, 0.00044416, 7.27170860, 0.99778560, 0.99883113, 0.49312410,\
++	-6.27243373, -0.00072455, 0.00044405, 7.27170918, 0.99778612, 0.99883140, 0.49312419,\
++	-6.27243414, -0.00072438, 0.00044395, 7.27170976, 0.99778664, 0.99883168, 0.49312424,\
++	-6.27243455, -0.00072421, 0.00044384, 7.27171034, 0.99778716, 0.99883195, 0.49312429,\
++	-6.27243496, -0.00072404, 0.00044374, 7.27171092, 0.99778767, 0.99883222, 0.49312436,\
++	-6.27243536, -0.00072387, 0.00044364, 7.27171150, 0.99778819, 0.99883250, 0.49312441,\
++	-6.27243577, -0.00072370, 0.00044353, 7.27171207, 0.99778871, 0.99883277, 0.49312447,\
++	-6.27243618, -0.00072353, 0.00044343, 7.27171265, 0.99778923, 0.99883304, 0.49312454,\
++	-6.27243659, -0.00072336, 0.00044332, 7.27171323, 0.99778974, 0.99883331, 0.49312460,\
++	-6.27243700, -0.00072319, 0.00044322, 7.27171380, 0.99779026, 0.99883359, 0.49312464,\
++	-6.27243740, -0.00072302, 0.00044312, 7.27171438, 0.99779078, 0.99883386, 0.49312471,\
++	-6.27243781, -0.00072285, 0.00044301, 7.27171495, 0.99779129, 0.99883413, 0.49312476,\
++	-6.27243822, -0.00072269, 0.00044291, 7.27171553, 0.99779181, 0.99883440, 0.49312483,\
++	-6.27243862, -0.00072252, 0.00044281, 7.27171611, 0.99779232, 0.99883468, 0.49312489,\
++	-6.27243903, -0.00072235, 0.00044270, 7.27171668, 0.99779284, 0.99883495, 0.49312495,\
++	-6.27243944, -0.00072218, 0.00044260, 7.27171726, 0.99779336, 0.99883522, 0.49312500,\
++	-6.27243984, -0.00072201, 0.00044250, 7.27171783, 0.99779387, 0.99883549, 0.49312508,\
++	-6.27244025, -0.00072184, 0.00044239, 7.27171840, 0.99779438, 0.99883576, 0.49312514,\
++	-6.27244065, -0.00072167, 0.00044229, 7.27171898, 0.99779490, 0.99883604, 0.49312518,\
++	-6.27244106, -0.00072151, 0.00044219, 7.27171955, 0.99779541, 0.99883631, 0.49312525,\
++	-6.27244146, -0.00072134, 0.00044208, 7.27172012, 0.99779593, 0.99883658, 0.49312531,\
++	-6.27244187, -0.00072117, 0.00044198, 7.27172070, 0.99779644, 0.99883685, 0.49312537,\
++	-6.27244227, -0.00072100, 0.00044188, 7.27172127, 0.99779696, 0.99883712, 0.49312544,\
++	-6.27244268, -0.00072083, 0.00044177, 7.27172184, 0.99779747, 0.99883739, 0.49312550,\
++	-6.27244308, -0.00072067, 0.00044167, 7.27172242, 0.99779798, 0.99883766, 0.49312555,\
++	-6.27244349, -0.00072050, 0.00044157, 7.27172299, 0.99779849, 0.99883793, 0.49312563,\
++	-6.27244389, -0.00072033, 0.00044147, 7.27172356, 0.99779901, 0.99883820, 0.49312567,\
++	-6.27244429, -0.00072016, 0.00044136, 7.27172413, 0.99779952, 0.99883847, 0.49312573,\
++	-6.27244470, -0.00072000, 0.00044126, 7.27172470, 0.99780003, 0.99883874, 0.49312578,\
++	-6.27244510, -0.00071983, 0.00044116, 7.27172527, 0.99780054, 0.99883901, 0.49312585,\
++	-6.27244550, -0.00071966, 0.00044105, 7.27172584, 0.99780105, 0.99883928, 0.49312592,\
++	-6.27244591, -0.00071949, 0.00044095, 7.27172641, 0.99780157, 0.99883955, 0.49312598,\
++	-6.27244631, -0.00071933, 0.00044085, 7.27172698, 0.99780208, 0.99883982, 0.49312604,\
++	-6.27244671, -0.00071916, 0.00044075, 7.27172755, 0.99780259, 0.99884009, 0.49312608,\
++	-6.27244712, -0.00071899, 0.00044064, 7.27172812, 0.99780310, 0.99884036, 0.49312614,\
++	-6.27244752, -0.00071883, 0.00044054, 7.27172869, 0.99780361, 0.99884063, 0.49312622,\
++	-6.27244792, -0.00071866, 0.00044044, 7.27172926, 0.99780412, 0.99884090, 0.49312626,\
++	-6.27244832, -0.00071849, 0.00044034, 7.27172983, 0.99780463, 0.99884117, 0.49312632,\
++	-6.27244872, -0.00071833, 0.00044024, 7.27173040, 0.99780514, 0.99884144, 0.49312638,\
++	-6.27244912, -0.00071816, 0.00044013, 7.27173097, 0.99780565, 0.99884171, 0.49312645,\
++	-6.27244953, -0.00071799, 0.00044003, 7.27173153, 0.99780616, 0.99884198, 0.49312649,\
++	-6.27244993, -0.00071783, 0.00043993, 7.27173210, 0.99780667, 0.99884225, 0.49312657,\
++	-6.27245033, -0.00071766, 0.00043983, 7.27173267, 0.99780718, 0.99884251, 0.49312664,\
++	-6.27245073, -0.00071749, 0.00043972, 7.27173323, 0.99780768, 0.99884278, 0.49312669,\
++	-6.27245113, -0.00071733, 0.00043962, 7.27173380, 0.99780819, 0.99884305, 0.49312674,\
++	-6.27245153, -0.00071716, 0.00043952, 7.27173437, 0.99780870, 0.99884332, 0.49312680,\
++	-6.27245193, -0.00071699, 0.00043942, 7.27173493, 0.99780921, 0.99884359, 0.49312685,\
++	-6.27245233, -0.00071683, 0.00043932, 7.27173550, 0.99780972, 0.99884385, 0.49312691,\
++	-6.27245273, -0.00071666, 0.00043922, 7.27173607, 0.99781022, 0.99884412, 0.49312701,\
++	-6.27245313, -0.00071650, 0.00043911, 7.27173663, 0.99781073, 0.99884439, 0.49312703,\
++	-6.27245353, -0.00071633, 0.00043901, 7.27173720, 0.99781124, 0.99884466, 0.49312710,\
++	-6.27245393, -0.00071617, 0.00043891, 7.27173776, 0.99781174, 0.99884492, 0.49312716,\
++	-6.27245432, -0.00071600, 0.00043881, 7.27173833, 0.99781225, 0.99884519, 0.49312722,\
++	-6.27245472, -0.00071583, 0.00043871, 7.27173889, 0.99781276, 0.99884546, 0.49312728,\
++	-6.27245512, -0.00071567, 0.00043861, 7.27173945, 0.99781326, 0.99884573, 0.49312736,\
++	-6.27245552, -0.00071550, 0.00043850, 7.27174002, 0.99781377, 0.99884599, 0.49312741,\
++	-6.27245592, -0.00071534, 0.00043840, 7.27174058, 0.99781427, 0.99884626, 0.49312745,\
++	-6.27245632, -0.00071517, 0.00043830, 7.27174114, 0.99781478, 0.99884653, 0.49312752,\
++	-6.27245671, -0.00071501, 0.00043820, 7.27174171, 0.99781528, 0.99884679, 0.49312756,\
++	-6.27245711, -0.00071484, 0.00043810, 7.27174227, 0.99781579, 0.99884706, 0.49312763,\
++	-6.27245751, -0.00071468, 0.00043800, 7.27174283, 0.99781629, 0.99884733, 0.49312770,\
++	-6.27245791, -0.00071451, 0.00043790, 7.27174339, 0.99781680, 0.99884759, 0.49312773,\
++	-6.27245830, -0.00071435, 0.00043779, 7.27174396, 0.99781730, 0.99884786, 0.49312781,\
++	-6.27245870, -0.00071418, 0.00043769, 7.27174452, 0.99781781, 0.99884812, 0.49312788,\
++	-6.27245910, -0.00071402, 0.00043759, 7.27174508, 0.99781831, 0.99884839, 0.49312794,\
++	-6.27245949, -0.00071385, 0.00043749, 7.27174564, 0.99781881, 0.99884866, 0.49312798,\
++	-6.27245989, -0.00071369, 0.00043739, 7.27174620, 0.99781932, 0.99884892, 0.49312802,\
++	-6.27246028, -0.00071352, 0.00043729, 7.27174676, 0.99781982, 0.99884919, 0.49312810,\
++	-6.27246068, -0.00071336, 0.00043719, 7.27174732, 0.99782032, 0.99884945, 0.49312816,\
++	-6.27246108, -0.00071320, 0.00043709, 7.27174788, 0.99782083, 0.99884972, 0.49312820,\
++	-6.27246147, -0.00071303, 0.00043699, 7.27174844, 0.99782133, 0.99884998, 0.49312828,\
++	-6.27246187, -0.00071287, 0.00043689, 7.27174900, 0.99782183, 0.99885025, 0.49312834,\
++	-6.27246226, -0.00071270, 0.00043679, 7.27174956, 0.99782233, 0.99885051, 0.49312839,\
++	-6.27246266, -0.00071254, 0.00043669, 7.27175012, 0.99782283, 0.99885078, 0.49312847,\
++	-6.27246305, -0.00071237, 0.00043658, 7.27175068, 0.99782333, 0.99885104, 0.49312849,\
++	-6.27246345, -0.00071221, 0.00043648, 7.27175123, 0.99782384, 0.99885131, 0.49312857,\
++	-6.27246384, -0.00071205, 0.00043638, 7.27175179, 0.99782434, 0.99885157, 0.49312862,\
++	-6.27246423, -0.00071188, 0.00043628, 7.27175235, 0.99782484, 0.99885183, 0.49312870,\
++	-6.27246463, -0.00071172, 0.00043618, 7.27175291, 0.99782534, 0.99885210, 0.49312875,\
++	-6.27246502, -0.00071156, 0.00043608, 7.27175347, 0.99782584, 0.99885236, 0.49312878,\
++	-6.27246541, -0.00071139, 0.00043598, 7.27175402, 0.99782634, 0.99885263, 0.49312886,\
++	-6.27246581, -0.00071123, 0.00043588, 7.27175458, 0.99782684, 0.99885289, 0.49312892,\
++	-6.27246620, -0.00071107, 0.00043578, 7.27175514, 0.99782734, 0.99885315, 0.49312899,\
++	-6.27246659, -0.00071090, 0.00043568, 7.27175569, 0.99782784, 0.99885342, 0.49312906,\
++	-6.27246699, -0.00071074, 0.00043558, 7.27175625, 0.99782833, 0.99885368, 0.49312908,\
++	-6.27246738, -0.00071058, 0.00043548, 7.27175680, 0.99782883, 0.99885394, 0.49312914,\
++	-6.27246777, -0.00071041, 0.00043538, 7.27175736, 0.99782933, 0.99885421, 0.49312922,\
++	-6.27246816, -0.00071025, 0.00043528, 7.27175791, 0.99782983, 0.99885447, 0.49312926,\
++	-6.27246856, -0.00071009, 0.00043518, 7.27175847, 0.99783033, 0.99885473, 0.49312934,\
++	-6.27246895, -0.00070992, 0.00043508, 7.27175902, 0.99783083, 0.99885499, 0.49312938,\
++	-6.27246934, -0.00070976, 0.00043498, 7.27175958, 0.99783132, 0.99885526, 0.49312944,\
++	-6.27246973, -0.00070960, 0.00043488, 7.27176013, 0.99783182, 0.99885552, 0.49312948,\
++	-6.27247012, -0.00070944, 0.00043478, 7.27176069, 0.99783232, 0.99885578, 0.49312957,\
++	-6.27247051, -0.00070927, 0.00043468, 7.27176124, 0.99783282, 0.99885604, 0.49312962,\
++	-6.27247090, -0.00070911, 0.00043458, 7.27176179, 0.99783331, 0.99885631, 0.49312968,\
++	-6.27247129, -0.00070895, 0.00043448, 7.27176235, 0.99783381, 0.99885657, 0.49312972,\
++	-6.27247168, -0.00070879, 0.00043438, 7.27176290, 0.99783431, 0.99885683, 0.49312980,\
++	-6.27247207, -0.00070862, 0.00043428, 7.27176345, 0.99783480, 0.99885709, 0.49312985,\
++	-6.27247246, -0.00070846, 0.00043418, 7.27176400, 0.99783530, 0.99885735, 0.49312992,\
++	-6.27247285, -0.00070830, 0.00043409, 7.27176456, 0.99783579, 0.99885762, 0.49312999,\
++	-6.27247324, -0.00070814, 0.00043399, 7.27176511, 0.99783629, 0.99885788, 0.49313003,\
++	-6.27247363, -0.00070798, 0.00043389, 7.27176566, 0.99783678, 0.99885814, 0.49313009,\
++	-6.27247402, -0.00070781, 0.00043379, 7.27176621, 0.99783728, 0.99885840, 0.49313014,\
++	-6.27247441, -0.00070765, 0.00043369, 7.27176676, 0.99783777, 0.99885866, 0.49313021,\
++	-6.27247480, -0.00070749, 0.00043359, 7.27176731, 0.99783827, 0.99885892, 0.49313025,\
++	-6.27247519, -0.00070733, 0.00043349, 7.27176786, 0.99783876, 0.99885918, 0.49313031,\
++	-6.27247558, -0.00070717, 0.00043339, 7.27176841, 0.99783926, 0.99885944, 0.49313036,\
++	-6.27247597, -0.00070701, 0.00043329, 7.27176896, 0.99783975, 0.99885970, 0.49313043,\
++	-6.27247636, -0.00070684, 0.00043319, 7.27176951, 0.99784024, 0.99885996, 0.49313047,\
++	-6.27247674, -0.00070668, 0.00043309, 7.27177006, 0.99784074, 0.99886022, 0.49313056,\
++	-6.27247713, -0.00070652, 0.00043299, 7.27177061, 0.99784123, 0.99886048, 0.49313062,\
++	-6.27247752, -0.00070636, 0.00043290, 7.27177116, 0.99784172, 0.99886074, 0.49313067,\
++	-6.27247791, -0.00070620, 0.00043280, 7.27177171, 0.99784222, 0.99886100, 0.49313072,\
++	-6.27247829, -0.00070604, 0.00043270, 7.27177226, 0.99784271, 0.99886126, 0.49313077,\
++	-6.27247868, -0.00070588, 0.00043260, 7.27177280, 0.99784320, 0.99886152, 0.49313084,\
++	-6.27247907, -0.00070572, 0.00043250, 7.27177335, 0.99784369, 0.99886178, 0.49313089,\
++	-6.27247945, -0.00070556, 0.00043240, 7.27177390, 0.99784418, 0.99886204, 0.49313094,\
++	-6.27247984, -0.00070539, 0.00043230, 7.27177445, 0.99784468, 0.99886230, 0.49313101,\
++	-6.27248023, -0.00070523, 0.00043220, 7.27177499, 0.99784517, 0.99886256, 0.49313105,\
++	-6.27248061, -0.00070507, 0.00043211, 7.27177554, 0.99784566, 0.99886282, 0.49313111,\
++	-6.27248100, -0.00070491, 0.00043201, 7.27177609, 0.99784615, 0.99886308, 0.49313117,\
++	-6.27248139, -0.00070475, 0.00043191, 7.27177663, 0.99784664, 0.99886334, 0.49313123,\
++	-6.27248177, -0.00070459, 0.00043181, 7.27177718, 0.99784713, 0.99886360, 0.49313129,\
++	-6.27248216, -0.00070443, 0.00043171, 7.27177773, 0.99784762, 0.99886386, 0.49313133,\
++	-6.27248254, -0.00070427, 0.00043161, 7.27177827, 0.99784811, 0.99886411, 0.49313142,\
++	-6.27248293, -0.00070411, 0.00043152, 7.27177882, 0.99784860, 0.99886437, 0.49313147,\
++	-6.27248331, -0.00070395, 0.00043142, 7.27177936, 0.99784909, 0.99886463, 0.49313152,\
++	-6.27248370, -0.00070379, 0.00043132, 7.27177991, 0.99784958, 0.99886489, 0.49313157,\
++	-6.27248408, -0.00070363, 0.00043122, 7.27178045, 0.99785007, 0.99886515, 0.49313161,\
++	-6.27248447, -0.00070347, 0.00043112, 7.27178099, 0.99785056, 0.99886541, 0.49313168,\
++	-6.27248485, -0.00070331, 0.00043103, 7.27178154, 0.99785104, 0.99886566, 0.49313174,\
++	-6.27248523, -0.00070315, 0.00043093, 7.27178208, 0.99785153, 0.99886592, 0.49313183,\
++	-6.27248562, -0.00070299, 0.00043083, 7.27178263, 0.99785202, 0.99886618, 0.49313186,\
++	-6.27248600, -0.00070283, 0.00043073, 7.27178317, 0.99785251, 0.99886644, 0.49313191,\
++	-6.27248638, -0.00070267, 0.00043063, 7.27178371, 0.99785300, 0.99886669, 0.49313198,\
++	-6.27248677, -0.00070251, 0.00043054, 7.27178425, 0.99785348, 0.99886695, 0.49313204,\
++	-6.27248715, -0.00070235, 0.00043044, 7.27178480, 0.99785397, 0.99886721, 0.49313208,\
++	-6.27248753, -0.00070219, 0.00043034, 7.27178534, 0.99785446, 0.99886747, 0.49313214,\
++	-6.27248792, -0.00070203, 0.00043024, 7.27178588, 0.99785495, 0.99886772, 0.49313220,\
++	-6.27248830, -0.00070188, 0.00043014, 7.27178642, 0.99785543, 0.99886798, 0.49313224,\
++	-6.27248868, -0.00070172, 0.00043005, 7.27178696, 0.99785592, 0.99886824, 0.49313233,\
++	-6.27248906, -0.00070156, 0.00042995, 7.27178751, 0.99785641, 0.99886849, 0.49313235,\
++	-6.27248945, -0.00070140, 0.00042985, 7.27178805, 0.99785689, 0.99886875, 0.49313243,\
++	-6.27248983, -0.00070124, 0.00042975, 7.27178859, 0.99785738, 0.99886901, 0.49313250,\
++	-6.27249021, -0.00070108, 0.00042966, 7.27178913, 0.99785786, 0.99886926, 0.49313254,\
++	-6.27249059, -0.00070092, 0.00042956, 7.27178967, 0.99785835, 0.99886952, 0.49313259,\
++	-6.27249097, -0.00070076, 0.00042946, 7.27179021, 0.99785883, 0.99886977, 0.49313265,\
++	-6.27249135, -0.00070060, 0.00042937, 7.27179075, 0.99785932, 0.99887003, 0.49313270,\
++	-6.27249173, -0.00070045, 0.00042927, 7.27179129, 0.99785980, 0.99887029, 0.49313277,\
++	-6.27249211, -0.00070029, 0.00042917, 7.27179183, 0.99786029, 0.99887054, 0.49313282,\
++	-6.27249250, -0.00070013, 0.00042907, 7.27179237, 0.99786077, 0.99887080, 0.49313289,\
++	-6.27249288, -0.00069997, 0.00042898, 7.27179290, 0.99786126, 0.99887105, 0.49313291,\
++	-6.27249326, -0.00069981, 0.00042888, 7.27179344, 0.99786174, 0.99887131, 0.49313301,\
++	-6.27249364, -0.00069965, 0.00042878, 7.27179398, 0.99786222, 0.99887156, 0.49313305,\
++	-6.27249402, -0.00069950, 0.00042869, 7.27179452, 0.99786271, 0.99887182, 0.49313311,\
++	-6.27249440, -0.00069934, 0.00042859, 7.27179506, 0.99786319, 0.99887207, 0.49313316,\
++	-6.27249477, -0.00069918, 0.00042849, 7.27179559, 0.99786367, 0.99887233, 0.49313322,\
++	-6.27249515, -0.00069902, 0.00042840, 7.27179613, 0.99786415, 0.99887258, 0.49313329,\
++	-6.27249553, -0.00069887, 0.00042830, 7.27179667, 0.99786464, 0.99887284, 0.49313333,\
++	-6.27249591, -0.00069871, 0.00042820, 7.27179720, 0.99786512, 0.99887309, 0.49313340,\
++	-6.27249629, -0.00069855, 0.00042810, 7.27179774, 0.99786560, 0.99887335, 0.49313343,\
++	-6.27249667, -0.00069839, 0.00042801, 7.27179828, 0.99786608, 0.99887360, 0.49313349,\
++	-6.27249705, -0.00069823, 0.00042791, 7.27179881, 0.99786656, 0.99887385, 0.49313355,\
++	-6.27249743, -0.00069808, 0.00042781, 7.27179935, 0.99786705, 0.99887411, 0.49313361,\
++	-6.27249780, -0.00069792, 0.00042772, 7.27179988, 0.99786753, 0.99887436, 0.49313365,\
++	-6.27249818, -0.00069776, 0.00042762, 7.27180042, 0.99786801, 0.99887462, 0.49313373,\
++	-6.27249856, -0.00069761, 0.00042753, 7.27180095, 0.99786849, 0.99887487, 0.49313378,\
++	-6.27249894, -0.00069745, 0.00042743, 7.27180149, 0.99786897, 0.99887512, 0.49313382,\
++	-6.27249931, -0.00069729, 0.00042733, 7.27180202, 0.99786945, 0.99887538, 0.49313387,\
++	-6.27249969, -0.00069713, 0.00042724, 7.27180256, 0.99786993, 0.99887563, 0.49313395,\
++	-6.27250007, -0.00069698, 0.00042714, 7.27180309, 0.99787041, 0.99887588, 0.49313401,\
++	-6.27250045, -0.00069682, 0.00042704, 7.27180363, 0.99787089, 0.99887614, 0.49313405,\
++	-6.27250082, -0.00069666, 0.00042695, 7.27180416, 0.99787137, 0.99887639, 0.49313411,\
++	-6.27250120, -0.00069651, 0.00042685, 7.27180469, 0.99787185, 0.99887664, 0.49313417,\
++	-6.27250158, -0.00069635, 0.00042676, 7.27180523, 0.99787233, 0.99887689, 0.49313425,\
++	-6.27250195, -0.00069619, 0.00042666, 7.27180576, 0.99787281, 0.99887715, 0.49313428,\
++	-6.27250233, -0.00069604, 0.00042656, 7.27180629, 0.99787328, 0.99887740, 0.49313433,\
++	-6.27250270, -0.00069588, 0.00042647, 7.27180682, 0.99787376, 0.99887765, 0.49313436,\
++	-6.27250308, -0.00069572, 0.00042637, 7.27180736, 0.99787424, 0.99887790, 0.49313447,\
++	-6.27250345, -0.00069557, 0.00042628, 7.27180789, 0.99787472, 0.99887816, 0.49313453,\
++	-6.27250383, -0.00069541, 0.00042618, 7.27180842, 0.99787520, 0.99887841, 0.49313456,\
++	-6.27250420, -0.00069525, 0.00042608, 7.27180895, 0.99787567, 0.99887866, 0.49313463,\
++	-6.27250458, -0.00069510, 0.00042599, 7.27180948, 0.99787615, 0.99887891, 0.49313466,\
++	-6.27250495, -0.00069494, 0.00042589, 7.27181001, 0.99787663, 0.99887916, 0.49313471,\
++	-6.27250533, -0.00069479, 0.00042580, 7.27181054, 0.99787711, 0.99887942, 0.49313478,\
++	-6.27250570, -0.00069463, 0.00042570, 7.27181107, 0.99787758, 0.99887967, 0.49313484,\
++	-6.27250608, -0.00069447, 0.00042561, 7.27181160, 0.99787806, 0.99887992, 0.49313489,\
++	-6.27250645, -0.00069432, 0.00042551, 7.27181213, 0.99787854, 0.99888017, 0.49313499,\
++	-6.27250683, -0.00069416, 0.00042541, 7.27181266, 0.99787901, 0.99888042, 0.49313500,\
++	-6.27250720, -0.00069401, 0.00042532, 7.27181319, 0.99787949, 0.99888067, 0.49313506,\
++	-6.27250757, -0.00069385, 0.00042522, 7.27181372, 0.99787996, 0.99888092, 0.49313510,\
++	-6.27250795, -0.00069370, 0.00042513, 7.27181425, 0.99788044, 0.99888117, 0.49313518,\
++	-6.27250832, -0.00069354, 0.00042503, 7.27181478, 0.99788091, 0.99888143, 0.49313523,\
++	-6.27250869, -0.00069339, 0.00042494, 7.27181531, 0.99788139, 0.99888168, 0.49313528,\
++	-6.27250906, -0.00069323, 0.00042484, 7.27181583, 0.99788186, 0.99888193, 0.49313532,\
++	-6.27250944, -0.00069308, 0.00042475, 7.27181636, 0.99788234, 0.99888218, 0.49313537,\
++	-6.27250981, -0.00069292, 0.00042465, 7.27181689, 0.99788281, 0.99888243, 0.49313545,\
++	-6.27251018, -0.00069277, 0.00042456, 7.27181742, 0.99788329, 0.99888268, 0.49313551,\
++	-6.27251055, -0.00069261, 0.00042446, 7.27181794, 0.99788376, 0.99888293, 0.49313557,\
++	-6.27251093, -0.00069246, 0.00042437, 7.27181847, 0.99788423, 0.99888318, 0.49313560,\
++	-6.27251130, -0.00069230, 0.00042427, 7.27181900, 0.99788471, 0.99888343, 0.49313566,\
++	-6.27251167, -0.00069215, 0.00042418, 7.27181952, 0.99788518, 0.99888368, 0.49313574,\
++	-6.27251204, -0.00069199, 0.00042408, 7.27182005, 0.99788565, 0.99888393, 0.49313579,\
++	-6.27251241, -0.00069184, 0.00042399, 7.27182058, 0.99788613, 0.99888418, 0.49313583,\
++	-6.27251278, -0.00069168, 0.00042389, 7.27182110, 0.99788660, 0.99888443, 0.49313587,\
++	-6.27251315, -0.00069153, 0.00042380, 7.27182163, 0.99788707, 0.99888468, 0.49313593,\
++	-6.27251353, -0.00069137, 0.00042370, 7.27182215, 0.99788754, 0.99888492, 0.49313600,\
++	-6.27251390, -0.00069122, 0.00042361, 7.27182268, 0.99788801, 0.99888517, 0.49313604,\
++	-6.27251427, -0.00069106, 0.00042351, 7.27182320, 0.99788849, 0.99888542, 0.49313613,\
++	-6.27251464, -0.00069091, 0.00042342, 7.27182373, 0.99788896, 0.99888567, 0.49313616,\
++	-6.27251501, -0.00069076, 0.00042332, 7.27182425, 0.99788943, 0.99888592, 0.49313621,\
++	-6.27251538, -0.00069060, 0.00042323, 7.27182478, 0.99788990, 0.99888617, 0.49313628,\
++	-6.27251575, -0.00069045, 0.00042314, 7.27182530, 0.99789037, 0.99888642, 0.49313634,\
++	-6.27251612, -0.00069029, 0.00042304, 7.27182582, 0.99789084, 0.99888667, 0.49313637,\
++	-6.27251649, -0.00069014, 0.00042295, 7.27182635, 0.99789131, 0.99888691, 0.49313644,\
++	-6.27251685, -0.00068999, 0.00042285, 7.27182687, 0.99789178, 0.99888716, 0.49313651,\
++	-6.27251722, -0.00068983, 0.00042276, 7.27182739, 0.99789225, 0.99888741, 0.49313656,\
++	-6.27251759, -0.00068968, 0.00042266, 7.27182791, 0.99789272, 0.99888766, 0.49313664,\
++	-6.27251796, -0.00068952, 0.00042257, 7.27182844, 0.99789319, 0.99888791, 0.49313666,\
++	-6.27251833, -0.00068937, 0.00042248, 7.27182896, 0.99789366, 0.99888815, 0.49313670,\
++	-6.27251870, -0.00068922, 0.00042238, 7.27182948, 0.99789413, 0.99888840, 0.49313677,\
++	-6.27251907, -0.00068906, 0.00042229, 7.27183000, 0.99789460, 0.99888865, 0.49313683,\
++	-6.27251943, -0.00068891, 0.00042219, 7.27183052, 0.99789507, 0.99888890, 0.49313687,\
++	-6.27251980, -0.00068876, 0.00042210, 7.27183104, 0.99789554, 0.99888914, 0.49313691,\
++	-6.27252017, -0.00068860, 0.00042200, 7.27183157, 0.99789601, 0.99888939, 0.49313700,\
++	-6.27252054, -0.00068845, 0.00042191, 7.27183209, 0.99789647, 0.99888964, 0.49313706,\
++	-6.27252091, -0.00068830, 0.00042182, 7.27183261, 0.99789694, 0.99888988, 0.49313707,\
++	-6.27252127, -0.00068815, 0.00042172, 7.27183313, 0.99789741, 0.99889013, 0.49313711,\
++	-6.27252164, -0.00068799, 0.00042163, 7.27183365, 0.99789788, 0.99889038, 0.49313720,\
++	-6.27252201, -0.00068784, 0.00042154, 7.27183417, 0.99789835, 0.99889062, 0.49313727,\
++	-6.27252237, -0.00068769, 0.00042144, 7.27183469, 0.99789881, 0.99889087, 0.49313733,\
++	-6.27252274, -0.00068753, 0.00042135, 7.27183521, 0.99789928, 0.99889112, 0.49313737,\
++	-6.27252311, -0.00068738, 0.00042125, 7.27183572, 0.99789975, 0.99889136, 0.49313744,\
++	-6.27252347, -0.00068723, 0.00042116, 7.27183624, 0.99790021, 0.99889161, 0.49313749,\
++	-6.27252384, -0.00068708, 0.00042107, 7.27183676, 0.99790068, 0.99889186, 0.49313754,\
++	-6.27252420, -0.00068692, 0.00042097, 7.27183728, 0.99790115, 0.99889210, 0.49313760,\
++	-6.27252457, -0.00068677, 0.00042088, 7.27183780, 0.99790161, 0.99889235, 0.49313767,\
++	-6.27252494, -0.00068662, 0.00042079, 7.27183832, 0.99790208, 0.99889259, 0.49313771,\
++	-6.27252530, -0.00068647, 0.00042069, 7.27183883, 0.99790254, 0.99889284, 0.49313775,\
++	-6.27252567, -0.00068631, 0.00042060, 7.27183935, 0.99790301, 0.99889309, 0.49313782,\
++	-6.27252603, -0.00068616, 0.00042051, 7.27183987, 0.99790347, 0.99889333, 0.49313786,\
++	-6.27252640, -0.00068601, 0.00042041, 7.27184039, 0.99790394, 0.99889358, 0.49313791,\
++	-6.27252676, -0.00068586, 0.00042032, 7.27184090, 0.99790440, 0.99889382, 0.49313797,\
++	-6.27252712, -0.00068571, 0.00042023, 7.27184142, 0.99790487, 0.99889407, 0.49313801,\
++	-6.27252749, -0.00068555, 0.00042013, 7.27184193, 0.99790533, 0.99889431, 0.49313810,\
++	-6.27252785, -0.00068540, 0.00042004, 7.27184245, 0.99790579, 0.99889456, 0.49313815,\
++	-6.27252822, -0.00068525, 0.00041995, 7.27184297, 0.99790626, 0.99889480, 0.49313818,\
++	-6.27252858, -0.00068510, 0.00041985, 7.27184348, 0.99790672, 0.99889505, 0.49313824,\
++	-6.27252895, -0.00068495, 0.00041976, 7.27184400, 0.99790719, 0.99889529, 0.49313828,\
++	-6.27252931, -0.00068480, 0.00041967, 7.27184451, 0.99790765, 0.99889553, 0.49313835,\
++	-6.27252967, -0.00068464, 0.00041958, 7.27184503, 0.99790811, 0.99889578, 0.49313842,\
++	-6.27253004, -0.00068449, 0.00041948, 7.27184554, 0.99790857, 0.99889602, 0.49313845,\
++	-6.27253040, -0.00068434, 0.00041939, 7.27184606, 0.99790904, 0.99889627, 0.49313853,\
++	-6.27253076, -0.00068419, 0.00041930, 7.27184657, 0.99790950, 0.99889651, 0.49313854,\
++	-6.27253112, -0.00068404, 0.00041920, 7.27184708, 0.99790996, 0.99889676, 0.49313861,\
++	-6.27253149, -0.00068389, 0.00041911, 7.27184760, 0.99791042, 0.99889700, 0.49313867,\
++	-6.27253185, -0.00068374, 0.00041902, 7.27184811, 0.99791089, 0.99889724, 0.49313874,\
++	-6.27253221, -0.00068359, 0.00041893, 7.27184862, 0.99791135, 0.99889749, 0.49313876,\
++	-6.27253257, -0.00068344, 0.00041883, 7.27184914, 0.99791181, 0.99889773, 0.49313881,\
++	-6.27253293, -0.00068328, 0.00041874, 7.27184965, 0.99791227, 0.99889797, 0.49313886,\
++	-6.27253330, -0.00068313, 0.00041865, 7.27185016, 0.99791273, 0.99889822, 0.49313893,\
++	-6.27253366, -0.00068298, 0.00041856, 7.27185068, 0.99791319, 0.99889846, 0.49313897,\
++	-6.27253402, -0.00068283, 0.00041846, 7.27185119, 0.99791365, 0.99889870, 0.49313904,\
++	-6.27253438, -0.00068268, 0.00041837, 7.27185170, 0.99791411, 0.99889895, 0.49313909,\
++	-6.27253474, -0.00068253, 0.00041828, 7.27185221, 0.99791457, 0.99889919, 0.49313915,\
++	-6.27253510, -0.00068238, 0.00041819, 7.27185272, 0.99791503, 0.99889943, 0.49313920,\
++	-6.27253546, -0.00068223, 0.00041810, 7.27185323, 0.99791549, 0.99889967, 0.49313924,\
++	-6.27253582, -0.00068208, 0.00041800, 7.27185374, 0.99791595, 0.99889992, 0.49313932,\
++	-6.27253618, -0.00068193, 0.00041791, 7.27185425, 0.99791641, 0.99890016, 0.49313937,\
++	-6.27253654, -0.00068178, 0.00041782, 7.27185477, 0.99791687, 0.99890040, 0.49313944,\
++	-6.27253690, -0.00068163, 0.00041773, 7.27185528, 0.99791733, 0.99890064, 0.49313947,\
++	-6.27253726, -0.00068148, 0.00041763, 7.27185579, 0.99791779, 0.99890089, 0.49313953,\
++	-6.27253762, -0.00068133, 0.00041754, 7.27185630, 0.99791825, 0.99890113, 0.49313960,\
++	-6.27253798, -0.00068118, 0.00041745, 7.27185680, 0.99791871, 0.99890137, 0.49313964,\
++	-6.27253834, -0.00068103, 0.00041736, 7.27185731, 0.99791916, 0.99890161, 0.49313969,\
++	-6.27253870, -0.00068088, 0.00041727, 7.27185782, 0.99791962, 0.99890185, 0.49313973,\
++	-6.27253906, -0.00068073, 0.00041718, 7.27185833, 0.99792008, 0.99890209, 0.49313978,\
++	-6.27253942, -0.00068058, 0.00041708, 7.27185884, 0.99792054, 0.99890234, 0.49313983,\
++	-6.27253978, -0.00068043, 0.00041699, 7.27185935, 0.99792099, 0.99890258, 0.49313991,\
++	-6.27254014, -0.00068028, 0.00041690, 7.27185986, 0.99792145, 0.99890282, 0.49313998,\
++	-6.27254050, -0.00068013, 0.00041681, 7.27186036, 0.99792191, 0.99890306, 0.49314002,\
++	-6.27254086, -0.00067998, 0.00041672, 7.27186087, 0.99792237, 0.99890330, 0.49314008,\
++	-6.27254121, -0.00067983, 0.00041662, 7.27186138, 0.99792282, 0.99890354, 0.49314012,\
++	-6.27254157, -0.00067968, 0.00041653, 7.27186189, 0.99792328, 0.99890378, 0.49314018,\
++	-6.27254193, -0.00067953, 0.00041644, 7.27186239, 0.99792373, 0.99890402, 0.49314019,\
++	-6.27254229, -0.00067939, 0.00041635, 7.27186290, 0.99792419, 0.99890426, 0.49314025,\
++	-6.27254264, -0.00067924, 0.00041626, 7.27186341, 0.99792465, 0.99890450, 0.49314034,\
++	-6.27254300, -0.00067909, 0.00041617, 7.27186391, 0.99792510, 0.99890474, 0.49314040,\
++	-6.27254336, -0.00067894, 0.00041608, 7.27186442, 0.99792556, 0.99890499, 0.49314044,\
++	-6.27254372, -0.00067879, 0.00041598, 7.27186493, 0.99792601, 0.99890523, 0.49314049,\
++	-6.27254407, -0.00067864, 0.00041589, 7.27186543, 0.99792647, 0.99890547, 0.49314054,\
++	-6.27254443, -0.00067849, 0.00041580, 7.27186594, 0.99792692, 0.99890571, 0.49314058,\
++	-6.27254479, -0.00067834, 0.00041571, 7.27186644, 0.99792738, 0.99890595, 0.49314062,\
++	-6.27254514, -0.00067819, 0.00041562, 7.27186695, 0.99792783, 0.99890618, 0.49314070,\
++	-6.27254550, -0.00067805, 0.00041553, 7.27186745, 0.99792828, 0.99890642, 0.49314075,\
++	-6.27254585, -0.00067790, 0.00041544, 7.27186796, 0.99792874, 0.99890666, 0.49314079,\
++	-6.27254621, -0.00067775, 0.00041535, 7.27186846, 0.99792919, 0.99890690, 0.49314085,\
++	-6.27254657, -0.00067760, 0.00041526, 7.27186897, 0.99792965, 0.99890714, 0.49314090,\
++	-6.27254692, -0.00067745, 0.00041516, 7.27186947, 0.99793010, 0.99890738, 0.49314094,\
++	-6.27254728, -0.00067730, 0.00041507, 7.27186997, 0.99793055, 0.99890762, 0.49314100,\
++	-6.27254763, -0.00067716, 0.00041498, 7.27187048, 0.99793101, 0.99890786, 0.49314106,\
++	-6.27254799, -0.00067701, 0.00041489, 7.27187098, 0.99793146, 0.99890810, 0.49314111,\
++	-6.27254834, -0.00067686, 0.00041480, 7.27187148, 0.99793191, 0.99890834, 0.49314118,\
++	-6.27254870, -0.00067671, 0.00041471, 7.27187199, 0.99793236, 0.99890858, 0.49314123,\
++	-6.27254905, -0.00067656, 0.00041462, 7.27187249, 0.99793282, 0.99890882, 0.49314127,\
++	-6.27254941, -0.00067642, 0.00041453, 7.27187299, 0.99793327, 0.99890905, 0.49314132,\
++	-6.27254976, -0.00067627, 0.00041444, 7.27187349, 0.99793372, 0.99890929, 0.49314138,\
++	-6.27255012, -0.00067612, 0.00041435, 7.27187399, 0.99793417, 0.99890953, 0.49314144,\
++	-6.27255047, -0.00067597, 0.00041426, 7.27187450, 0.99793462, 0.99890977, 0.49314149,\
++	-6.27255082, -0.00067583, 0.00041417, 7.27187500, 0.99793507, 0.99891001, 0.49314155,\
++	-6.27255118, -0.00067568, 0.00041408, 7.27187550, 0.99793552, 0.99891025, 0.49314159,\
++	-6.27255153, -0.00067553, 0.00041399, 7.27187600, 0.99793597, 0.99891048, 0.49314164,\
++	-6.27255188, -0.00067538, 0.00041390, 7.27187650, 0.99793643, 0.99891072, 0.49314169,\
++	-6.27255224, -0.00067524, 0.00041381, 7.27187700, 0.99793688, 0.99891096, 0.49314176,\
++	-6.27255259, -0.00067509, 0.00041372, 7.27187750, 0.99793733, 0.99891120, 0.49314181,\
++	-6.27255294, -0.00067494, 0.00041362, 7.27187800, 0.99793778, 0.99891143, 0.49314185,\
++	-6.27255330, -0.00067479, 0.00041353, 7.27187850, 0.99793823, 0.99891167, 0.49314190,\
++	-6.27255365, -0.00067465, 0.00041344, 7.27187900, 0.99793868, 0.99891191, 0.49314197,\
++	-6.27255400, -0.00067450, 0.00041335, 7.27187950, 0.99793912, 0.99891215, 0.49314200,\
++	-6.27255435, -0.00067435, 0.00041326, 7.27188000, 0.99793957, 0.99891238, 0.49314208,\
++	-6.27255470, -0.00067421, 0.00041317, 7.27188050, 0.99794002, 0.99891262, 0.49314213,\
++	-6.27255506, -0.00067406, 0.00041308, 7.27188100, 0.99794047, 0.99891286, 0.49314217,\
++	-6.27255541, -0.00067391, 0.00041299, 7.27188150, 0.99794092, 0.99891309, 0.49314220,\
++	-6.27255576, -0.00067377, 0.00041290, 7.27188199, 0.99794137, 0.99891333, 0.49314225,\
++	-6.27255611, -0.00067362, 0.00041281, 7.27188249, 0.99794182, 0.99891357, 0.49314232,\
++	-6.27255646, -0.00067347, 0.00041272, 7.27188299, 0.99794227, 0.99891380, 0.49314238,\
++	-6.27255681, -0.00067333, 0.00041263, 7.27188349, 0.99794271, 0.99891404, 0.49314241,\
++	-6.27255717, -0.00067318, 0.00041254, 7.27188398, 0.99794316, 0.99891428, 0.49314247,\
++	-6.27255752, -0.00067303, 0.00041245, 7.27188448, 0.99794361, 0.99891451, 0.49314253,\
++	-6.27255787, -0.00067289, 0.00041236, 7.27188498, 0.99794406, 0.99891475, 0.49314258,\
++	-6.27255822, -0.00067274, 0.00041228, 7.27188548, 0.99794450, 0.99891498, 0.49314263,\
++	-6.27255857, -0.00067260, 0.00041219, 7.27188597, 0.99794495, 0.99891522, 0.49314268,\
++	-6.27255892, -0.00067245, 0.00041210, 7.27188647, 0.99794540, 0.99891545, 0.49314274,\
++	-6.27255927, -0.00067230, 0.00041201, 7.27188696, 0.99794584, 0.99891569, 0.49314280,\
++	-6.27255962, -0.00067216, 0.00041192, 7.27188746, 0.99794629, 0.99891593, 0.49314284,\
++	-6.27255997, -0.00067201, 0.00041183, 7.27188796, 0.99794673, 0.99891616, 0.49314287,\
++	-6.27256032, -0.00067187, 0.00041174, 7.27188845, 0.99794718, 0.99891640, 0.49314297,\
++	-6.27256067, -0.00067172, 0.00041165, 7.27188895, 0.99794763, 0.99891663, 0.49314303,\
++	-6.27256102, -0.00067157, 0.00041156, 7.27188944, 0.99794807, 0.99891687, 0.49314307,\
++	-6.27256137, -0.00067143, 0.00041147, 7.27188994, 0.99794852, 0.99891710, 0.49314312,\
++	-6.27256171, -0.00067128, 0.00041138, 7.27189043, 0.99794896, 0.99891734, 0.49314315,\
++	-6.27256206, -0.00067114, 0.00041129, 7.27189093, 0.99794941, 0.99891757, 0.49314322,\
++	-6.27256241, -0.00067099, 0.00041120, 7.27189142, 0.99794985, 0.99891781, 0.49314325,\
++	-6.27256276, -0.00067085, 0.00041111, 7.27189191, 0.99795030, 0.99891804, 0.49314333,\
++	-6.27256311, -0.00067070, 0.00041102, 7.27189241, 0.99795074, 0.99891828, 0.49314337,\
++	-6.27256346, -0.00067056, 0.00041093, 7.27189290, 0.99795119, 0.99891851, 0.49314340,\
++	-6.27256381, -0.00067041, 0.00041085, 7.27189339, 0.99795163, 0.99891874, 0.49314348,\
++	-6.27256415, -0.00067027, 0.00041076, 7.27189389, 0.99795207, 0.99891898, 0.49314353,\
++	-6.27256450, -0.00067012, 0.00041067, 7.27189438, 0.99795252, 0.99891921, 0.49314358,\
++	-6.27256485, -0.00066998, 0.00041058, 7.27189487, 0.99795296, 0.99891945, 0.49314365,\
++	-6.27256520, -0.00066983, 0.00041049, 7.27189537, 0.99795340, 0.99891968, 0.49314368,\
++	-6.27256554, -0.00066969, 0.00041040, 7.27189586, 0.99795385, 0.99891991, 0.49314376,\
++	-6.27256589, -0.00066954, 0.00041031, 7.27189635, 0.99795429, 0.99892015, 0.49314379,\
++	-6.27256624, -0.00066940, 0.00041022, 7.27189684, 0.99795473, 0.99892038, 0.49314383,\
++	-6.27256658, -0.00066925, 0.00041013, 7.27189733, 0.99795517, 0.99892061, 0.49314389,\
++	-6.27256693, -0.00066911, 0.00041005, 7.27189782, 0.99795562, 0.99892085, 0.49314395,\
++	-6.27256728, -0.00066896, 0.00040996, 7.27189832, 0.99795606, 0.99892108, 0.49314398,\
++	-6.27256762, -0.00066882, 0.00040987, 7.27189881, 0.99795650, 0.99892131, 0.49314403,\
++	-6.27256797, -0.00066867, 0.00040978, 7.27189930, 0.99795694, 0.99892155, 0.49314409,\
++	-6.27256832, -0.00066853, 0.00040969, 7.27189979, 0.99795738, 0.99892178, 0.49314415,\
++	-6.27256866, -0.00066838, 0.00040960, 7.27190028, 0.99795782, 0.99892201, 0.49314419,\
++	-6.27256901, -0.00066824, 0.00040951, 7.27190077, 0.99795827, 0.99892225, 0.49314425,\
++	-6.27256935, -0.00066810, 0.00040943, 7.27190126, 0.99795871, 0.99892248, 0.49314428,\
++	-6.27256970, -0.00066795, 0.00040934, 7.27190175, 0.99795915, 0.99892271, 0.49314436,\
++	-6.27257004, -0.00066781, 0.00040925, 7.27190224, 0.99795959, 0.99892294, 0.49314439,\
++	-6.27257039, -0.00066766, 0.00040916, 7.27190273, 0.99796003, 0.99892318, 0.49314446,\
++	-6.27257073, -0.00066752, 0.00040907, 7.27190322, 0.99796047, 0.99892341, 0.49314452,\
++	-6.27257108, -0.00066738, 0.00040898, 7.27190370, 0.99796091, 0.99892364, 0.49314453,\
++	-6.27257142, -0.00066723, 0.00040890, 7.27190419, 0.99796135, 0.99892387, 0.49314460,\
++	-6.27257177, -0.00066709, 0.00040881, 7.27190468, 0.99796179, 0.99892410, 0.49314466,\
++	-6.27257211, -0.00066694, 0.00040872, 7.27190517, 0.99796223, 0.99892434, 0.49314470,\
++	-6.27257246, -0.00066680, 0.00040863, 7.27190566, 0.99796267, 0.99892457, 0.49314476,\
++	-6.27257280, -0.00066666, 0.00040854, 7.27190615, 0.99796311, 0.99892480, 0.49314482,\
++	-6.27257315, -0.00066651, 0.00040846, 7.27190663, 0.99796354, 0.99892503, 0.49314486,\
++	-6.27257349, -0.00066637, 0.00040837, 7.27190712, 0.99796398, 0.99892526, 0.49314490,\
++	-6.27257383, -0.00066623, 0.00040828, 7.27190761, 0.99796442, 0.99892549, 0.49314498,\
++	-6.27257418, -0.00066608, 0.00040819, 7.27190809, 0.99796486, 0.99892573, 0.49314501,\
++	-6.27257452, -0.00066594, 0.00040810, 7.27190858, 0.99796530, 0.99892596, 0.49314505,\
++	-6.27257486, -0.00066580, 0.00040802, 7.27190907, 0.99796574, 0.99892619, 0.49314512,\
++	-6.27257521, -0.00066565, 0.00040793, 7.27190955, 0.99796617, 0.99892642, 0.49314515,\
++	-6.27257555, -0.00066551, 0.00040784, 7.27191004, 0.99796661, 0.99892665, 0.49314521,\
++	-6.27257589, -0.00066537, 0.00040775, 7.27191053, 0.99796705, 0.99892688, 0.49314528,\
++	-6.27257623, -0.00066522, 0.00040766, 7.27191101, 0.99796748, 0.99892711, 0.49314532,\
++	-6.27257658, -0.00066508, 0.00040758, 7.27191150, 0.99796792, 0.99892734, 0.49314537,\
++	-6.27257692, -0.00066494, 0.00040749, 7.27191198, 0.99796836, 0.99892757, 0.49314541,\
++	-6.27257726, -0.00066480, 0.00040740, 7.27191247, 0.99796880, 0.99892780, 0.49314547,\
++	-6.27257760, -0.00066465, 0.00040731, 7.27191295, 0.99796923, 0.99892803, 0.49314555,\
++	-6.27257795, -0.00066451, 0.00040723, 7.27191344, 0.99796967, 0.99892826, 0.49314558,\
++	-6.27257829, -0.00066437, 0.00040714, 7.27191392, 0.99797010, 0.99892849, 0.49314564,\
++	-6.27257863, -0.00066422, 0.00040705, 7.27191440, 0.99797054, 0.99892872, 0.49314568,\
++	-6.27257897, -0.00066408, 0.00040696, 7.27191489, 0.99797098, 0.99892895, 0.49314573,\
++	-6.27257931, -0.00066394, 0.00040688, 7.27191537, 0.99797141, 0.99892918, 0.49314579,\
++	-6.27257965, -0.00066380, 0.00040679, 7.27191586, 0.99797185, 0.99892941, 0.49314582,\
++	-6.27257999, -0.00066366, 0.00040670, 7.27191634, 0.99797228, 0.99892964, 0.49314588,\
++	-6.27258033, -0.00066351, 0.00040662, 7.27191682, 0.99797272, 0.99892987, 0.49314593,\
++	-6.27258068, -0.00066337, 0.00040653, 7.27191730, 0.99797315, 0.99893010, 0.49314598,\
++	-6.27258102, -0.00066323, 0.00040644, 7.27191779, 0.99797358, 0.99893033, 0.49314603,\
++	-6.27258136, -0.00066309, 0.00040635, 7.27191827, 0.99797402, 0.99893056, 0.49314608,\
++	-6.27258170, -0.00066294, 0.00040627, 7.27191875, 0.99797445, 0.99893079, 0.49314611,\
++	-6.27258204, -0.00066280, 0.00040618, 7.27191923, 0.99797489, 0.99893102, 0.49314621,\
++	-6.27258238, -0.00066266, 0.00040609, 7.27191972, 0.99797532, 0.99893125, 0.49314623,\
++	-6.27258272, -0.00066252, 0.00040601, 7.27192020, 0.99797575, 0.99893148, 0.49314626,\
++	-6.27258306, -0.00066238, 0.00040592, 7.27192068, 0.99797619, 0.99893170, 0.49314635,\
++	-6.27258340, -0.00066224, 0.00040583, 7.27192116, 0.99797662, 0.99893193, 0.49314639,\
++	-6.27258373, -0.00066209, 0.00040574, 7.27192164, 0.99797705, 0.99893216, 0.49314644,\
++	-6.27258407, -0.00066195, 0.00040566, 7.27192212, 0.99797749, 0.99893239, 0.49314649,\
++	-6.27258441, -0.00066181, 0.00040557, 7.27192260, 0.99797792, 0.99893262, 0.49314651,\
++	-6.27258475, -0.00066167, 0.00040548, 7.27192308, 0.99797835, 0.99893285, 0.49314660,\
++	-6.27258509, -0.00066153, 0.00040540, 7.27192356, 0.99797878, 0.99893307, 0.49314663,\
++	-6.27258543, -0.00066139, 0.00040531, 7.27192404, 0.99797922, 0.99893330, 0.49314669,\
++	-6.27258577, -0.00066125, 0.00040522, 7.27192452, 0.99797965, 0.99893353, 0.49314673,\
++	-6.27258611, -0.00066110, 0.00040514, 7.27192500, 0.99798008, 0.99893376, 0.49314679,\
++	-6.27258644, -0.00066096, 0.00040505, 7.27192548, 0.99798051, 0.99893399, 0.49314686,\
++	-6.27258678, -0.00066082, 0.00040496, 7.27192596, 0.99798094, 0.99893421, 0.49314689,\
++	-6.27258712, -0.00066068, 0.00040488, 7.27192644, 0.99798137, 0.99893444, 0.49314694,\
++	-6.27258746, -0.00066054, 0.00040479, 7.27192692, 0.99798181, 0.99893467, 0.49314700,\
++	-6.27258780, -0.00066040, 0.00040471, 7.27192740, 0.99798224, 0.99893490, 0.49314705,\
++	-6.27258813, -0.00066026, 0.00040462, 7.27192788, 0.99798267, 0.99893512, 0.49314708,\
++	-6.27258847, -0.00066012, 0.00040453, 7.27192835, 0.99798310, 0.99893535, 0.49314712,\
++	-6.27258881, -0.00065998, 0.00040445, 7.27192883, 0.99798353, 0.99893558, 0.49314719,\
++	-6.27258914, -0.00065984, 0.00040436, 7.27192931, 0.99798396, 0.99893580, 0.49314727,\
++	-6.27258948, -0.00065970, 0.00040427, 7.27192979, 0.99798439, 0.99893603, 0.49314727,\
++	-6.27258982, -0.00065955, 0.00040419, 7.27193026, 0.99798482, 0.99893626, 0.49314731,\
++	-6.27259015, -0.00065941, 0.00040410, 7.27193074, 0.99798525, 0.99893648, 0.49314740,\
++	-6.27259049, -0.00065927, 0.00040401, 7.27193122, 0.99798568, 0.99893671, 0.49314745,\
++	-6.27259083, -0.00065913, 0.00040393, 7.27193169, 0.99798610, 0.99893694, 0.49314746,\
++	-6.27259116, -0.00065899, 0.00040384, 7.27193217, 0.99798653, 0.99893716, 0.49314754,\
++	-6.27259150, -0.00065885, 0.00040376, 7.27193265, 0.99798696, 0.99893739, 0.49314761,\
++	-6.27259184, -0.00065871, 0.00040367, 7.27193312, 0.99798739, 0.99893762, 0.49314766,\
++	-6.27259217, -0.00065857, 0.00040358, 7.27193360, 0.99798782, 0.99893784, 0.49314769,\
++	-6.27259251, -0.00065843, 0.00040350, 7.27193407, 0.99798825, 0.99893807, 0.49314775,\
++	-6.27259284, -0.00065829, 0.00040341, 7.27193455, 0.99798868, 0.99893829, 0.49314778,\
++	-6.27259318, -0.00065815, 0.00040333, 7.27193502, 0.99798910, 0.99893852, 0.49314784,\
++	-6.27259351, -0.00065801, 0.00040324, 7.27193550, 0.99798953, 0.99893875, 0.49314788,\
++	-6.27259385, -0.00065787, 0.00040316, 7.27193597, 0.99798996, 0.99893897, 0.49314794,\
++	-6.27259418, -0.00065773, 0.00040307, 7.27193645, 0.99799039, 0.99893920, 0.49314799,\
++	-6.27259452, -0.00065759, 0.00040298, 7.27193692, 0.99799081, 0.99893942, 0.49314805,\
++	-6.27259485, -0.00065745, 0.00040290, 7.27193740, 0.99799124, 0.99893965, 0.49314807,\
++	-6.27259519, -0.00065731, 0.00040281, 7.27193787, 0.99799167, 0.99893987, 0.49314813,\
++	-6.27259552, -0.00065717, 0.00040273, 7.27193835, 0.99799209, 0.99894010, 0.49314822,\
++	-6.27259585, -0.00065703, 0.00040264, 7.27193882, 0.99799252, 0.99894032, 0.49314825,\
++	-6.27259619, -0.00065690, 0.00040256, 7.27193929, 0.99799295, 0.99894055, 0.49314830,\
++	-6.27259652, -0.00065676, 0.00040247, 7.27193977, 0.99799337, 0.99894077, 0.49314836,\
++	-6.27259686, -0.00065662, 0.00040239, 7.27194024, 0.99799380, 0.99894100, 0.49314839,\
++	-6.27259719, -0.00065648, 0.00040230, 7.27194071, 0.99799422, 0.99894122, 0.49314844,\
++	-6.27259752, -0.00065634, 0.00040221, 7.27194118, 0.99799465, 0.99894145, 0.49314848,\
++	-6.27259786, -0.00065620, 0.00040213, 7.27194166, 0.99799507, 0.99894167, 0.49314852,\
++	-6.27259819, -0.00065606, 0.00040204, 7.27194213, 0.99799550, 0.99894190, 0.49314858,\
++	-6.27259852, -0.00065592, 0.00040196, 7.27194260, 0.99799593, 0.99894212, 0.49314864,\
++	-6.27259885, -0.00065578, 0.00040187, 7.27194307, 0.99799635, 0.99894234, 0.49314867,\
++	-6.27259919, -0.00065564, 0.00040179, 7.27194354, 0.99799677, 0.99894257, 0.49314872,\
++	-6.27259952, -0.00065550, 0.00040170, 7.27194402, 0.99799720, 0.99894279, 0.49314880,\
++	-6.27259985, -0.00065537, 0.00040162, 7.27194449, 0.99799762, 0.99894302, 0.49314880,\
++	-6.27260018, -0.00065523, 0.00040153, 7.27194496, 0.99799805, 0.99894324, 0.49314888,\
++	-6.27260052, -0.00065509, 0.00040145, 7.27194543, 0.99799847, 0.99894346, 0.49314897,\
++	-6.27260085, -0.00065495, 0.00040136, 7.27194590, 0.99799889, 0.99894369, 0.49314899,\
++	-6.27260118, -0.00065481, 0.00040128, 7.27194637, 0.99799932, 0.99894391, 0.49314902,\
++	-6.27260151, -0.00065467, 0.00040119, 7.27194684, 0.99799974, 0.99894413, 0.49314908,\
++	-6.27260184, -0.00065453, 0.00040111, 7.27194731, 0.99800016, 0.99894436, 0.49314911,\
++	-6.27260217, -0.00065440, 0.00040102, 7.27194778, 0.99800059, 0.99894458, 0.49314920,\
++	-6.27260251, -0.00065426, 0.00040094, 7.27194825, 0.99800101, 0.99894480, 0.49314922,\
++	-6.27260284, -0.00065412, 0.00040085, 7.27194872, 0.99800143, 0.99894503, 0.49314928,\
++	-6.27260317, -0.00065398, 0.00040077, 7.27194919, 0.99800186, 0.99894525, 0.49314931,\
++	-6.27260350, -0.00065384, 0.00040068, 7.27194966, 0.99800228, 0.99894547, 0.49314937,\
++	-6.27260383, -0.00065370, 0.00040060, 7.27195013, 0.99800270, 0.99894570, 0.49314942,\
++	-6.27260416, -0.00065357, 0.00040051, 7.27195059, 0.99800312, 0.99894592, 0.49314947,\
++	-6.27260449, -0.00065343, 0.00040043, 7.27195106, 0.99800354, 0.99894614, 0.49314952,\
++	-6.27260482, -0.00065329, 0.00040035, 7.27195153, 0.99800397, 0.99894636, 0.49314960,\
++	-6.27260515, -0.00065315, 0.00040026, 7.27195200, 0.99800439, 0.99894659, 0.49314963,\
++	-6.27260548, -0.00065302, 0.00040018, 7.27195247, 0.99800481, 0.99894681, 0.49314965,\
++	-6.27260581, -0.00065288, 0.00040009, 7.27195293, 0.99800523, 0.99894703, 0.49314972,\
++	-6.27260614, -0.00065274, 0.00040001, 7.27195340, 0.99800565, 0.99894725, 0.49314975,\
++	-6.27260647, -0.00065260, 0.00039992, 7.27195387, 0.99800607, 0.99894747, 0.49314983,\
++	-6.27260680, -0.00065246, 0.00039984, 7.27195434, 0.99800649, 0.99894770, 0.49314987,\
++	-6.27260713, -0.00065233, 0.00039975, 7.27195480, 0.99800691, 0.99894792, 0.49314994,\
++	-6.27260746, -0.00065219, 0.00039967, 7.27195527, 0.99800733, 0.99894814, 0.49314996,\
++	-6.27260779, -0.00065205, 0.00039959, 7.27195573, 0.99800775, 0.99894836, 0.49314998,\
++	-6.27260812, -0.00065192, 0.00039950, 7.27195620, 0.99800817, 0.99894858, 0.49315004,\
++	-6.27260844, -0.00065178, 0.00039942, 7.27195667, 0.99800859, 0.99894880, 0.49315011,\
++	-6.27260877, -0.00065164, 0.00039933, 7.27195713, 0.99800901, 0.99894903, 0.49315016,\
++	-6.27260910, -0.00065150, 0.00039925, 7.27195760, 0.99800943, 0.99894925, 0.49315020,\
++	-6.27260943, -0.00065137, 0.00039917, 7.27195806, 0.99800985, 0.99894947, 0.49315028,\
++	-6.27260976, -0.00065123, 0.00039908, 7.27195853, 0.99801027, 0.99894969, 0.49315027,\
++	-6.27261009, -0.00065109, 0.00039900, 7.27195899, 0.99801069, 0.99894991, 0.49315035,\
++	-6.27261041, -0.00065096, 0.00039891, 7.27195946, 0.99801110, 0.99895013, 0.49315041,\
++	-6.27261074, -0.00065082, 0.00039883, 7.27195992, 0.99801152, 0.99895035, 0.49315047,\
++	-6.27261107, -0.00065068, 0.00039875, 7.27196039, 0.99801194, 0.99895057, 0.49315053,\
++	-6.27261140, -0.00065055, 0.00039866, 7.27196085, 0.99801236, 0.99895079, 0.49315055,\
++	-6.27261172, -0.00065041, 0.00039858, 7.27196132, 0.99801278, 0.99895101, 0.49315059,\
++	-6.27261205, -0.00065027, 0.00039849, 7.27196178, 0.99801320, 0.99895123, 0.49315063,\
++	-6.27261238, -0.00065014, 0.00039841, 7.27196224, 0.99801361, 0.99895145, 0.49315070,\
++	-6.27261271, -0.00065000, 0.00039833, 7.27196271, 0.99801403, 0.99895167, 0.49315074,\
++	-6.27261303, -0.00064986, 0.00039824, 7.27196317, 0.99801445, 0.99895189, 0.49315081,\
++	-6.27261336, -0.00064973, 0.00039816, 7.27196363, 0.99801486, 0.99895212, 0.49315083,\
++	-6.27261369, -0.00064959, 0.00039808, 7.27196410, 0.99801528, 0.99895233, 0.49315088,\
++	-6.27261401, -0.00064945, 0.00039799, 7.27196456, 0.99801570, 0.99895255, 0.49315095,\
++	-6.27261434, -0.00064932, 0.00039791, 7.27196502, 0.99801611, 0.99895277, 0.49315102,\
++	-6.27261466, -0.00064918, 0.00039782, 7.27196548, 0.99801653, 0.99895299, 0.49315101,\
++	-6.27261499, -0.00064904, 0.00039774, 7.27196595, 0.99801695, 0.99895321, 0.49315109,\
++	-6.27261532, -0.00064891, 0.00039766, 7.27196641, 0.99801736, 0.99895343, 0.49315112,\
++	-6.27261564, -0.00064877, 0.00039757, 7.27196687, 0.99801778, 0.99895365, 0.49315120,\
++	-6.27261597, -0.00064864, 0.00039749, 7.27196733, 0.99801819, 0.99895387, 0.49315122,\
++	-6.27261629, -0.00064850, 0.00039741, 7.27196779, 0.99801861, 0.99895409, 0.49315129,\
++	-6.27261662, -0.00064836, 0.00039732, 7.27196825, 0.99801902, 0.99895431, 0.49315134,\
++	-6.27261694, -0.00064823, 0.00039724, 7.27196871, 0.99801944, 0.99895453, 0.49315136,\
++	-6.27261727, -0.00064809, 0.00039716, 7.27196917, 0.99801985, 0.99895475, 0.49315141,\
++	-6.27261759, -0.00064796, 0.00039707, 7.27196963, 0.99802027, 0.99895497, 0.49315149,\
++	-6.27261792, -0.00064782, 0.00039699, 7.27197009, 0.99802068, 0.99895519, 0.49315153,\
++	-6.27261824, -0.00064769, 0.00039691, 7.27197056, 0.99802110, 0.99895540, 0.49315156,\
++	-6.27261857, -0.00064755, 0.00039683, 7.27197101, 0.99802151, 0.99895562, 0.49315162,\
++	-6.27261889, -0.00064742, 0.00039674, 7.27197147, 0.99802193, 0.99895584, 0.49315167,\
++	-6.27261921, -0.00064728, 0.00039666, 7.27197193, 0.99802234, 0.99895606, 0.49315173,\
++	-6.27261954, -0.00064715, 0.00039658, 7.27197239, 0.99802275, 0.99895628, 0.49315176,\
++	-6.27261986, -0.00064701, 0.00039649, 7.27197285, 0.99802317, 0.99895650, 0.49315180,\
++	-6.27262019, -0.00064687, 0.00039641, 7.27197331, 0.99802358, 0.99895671, 0.49315186,\
++	-6.27262051, -0.00064674, 0.00039633, 7.27197377, 0.99802399, 0.99895693, 0.49315191,\
++	-6.27262083, -0.00064660, 0.00039624, 7.27197423, 0.99802441, 0.99895715, 0.49315198,\
++	-6.27262116, -0.00064647, 0.00039616, 7.27197469, 0.99802482, 0.99895737, 0.49315200,\
++	-6.27262148, -0.00064633, 0.00039608, 7.27197515, 0.99802523, 0.99895759, 0.49315204,\
++	-6.27262180, -0.00064620, 0.00039600, 7.27197560, 0.99802564, 0.99895780, 0.49315211,\
++	-6.27262213, -0.00064606, 0.00039591, 7.27197606, 0.99802606, 0.99895802, 0.49315216,\
++	-6.27262245, -0.00064593, 0.00039583, 7.27197652, 0.99802647, 0.99895824, 0.49315219,\
++	-6.27262277, -0.00064579, 0.00039575, 7.27197698, 0.99802688, 0.99895846, 0.49315225,\
++	-6.27262309, -0.00064566, 0.00039567, 7.27197743, 0.99802729, 0.99895867, 0.49315226,\
++	-6.27262342, -0.00064553, 0.00039558, 7.27197789, 0.99802770, 0.99895889, 0.49315233,\
++	-6.27262374, -0.00064539, 0.00039550, 7.27197835, 0.99802812, 0.99895911, 0.49315238,\
++	-6.27262406, -0.00064526, 0.00039542, 7.27197880, 0.99802853, 0.99895933, 0.49315244,\
++	-6.27262438, -0.00064512, 0.00039534, 7.27197926, 0.99802894, 0.99895954, 0.49315248,\
++	-6.27262470, -0.00064499, 0.00039525, 7.27197972, 0.99802935, 0.99895976, 0.49315254,\
++	-6.27262503, -0.00064485, 0.00039517, 7.27198017, 0.99802976, 0.99895998, 0.49315255,\
++	-6.27262535, -0.00064472, 0.00039509, 7.27198063, 0.99803017, 0.99896019, 0.49315260,\
++	-6.27262567, -0.00064458, 0.00039501, 7.27198108, 0.99803058, 0.99896041, 0.49315266,\
++	-6.27262599, -0.00064445, 0.00039492, 7.27198154, 0.99803099, 0.99896063, 0.49315272,\
++	-6.27262631, -0.00064432, 0.00039484, 7.27198199, 0.99803140, 0.99896084, 0.49315276,\
++	-6.27262663, -0.00064418, 0.00039476, 7.27198245, 0.99803181, 0.99896106, 0.49315283,\
++	-6.27262695, -0.00064405, 0.00039468, 7.27198290, 0.99803222, 0.99896127, 0.49315287,\
++	-6.27262727, -0.00064391, 0.00039460, 7.27198336, 0.99803263, 0.99896149, 0.49315291,\
++	-6.27262759, -0.00064378, 0.00039451, 7.27198381, 0.99803304, 0.99896171, 0.49315298,\
++	-6.27262792, -0.00064365, 0.00039443, 7.27198427, 0.99803345, 0.99896192, 0.49315301,\
++	-6.27262824, -0.00064351, 0.00039435, 7.27198472, 0.99803386, 0.99896214, 0.49315305,\
++	-6.27262856, -0.00064338, 0.00039427, 7.27198518, 0.99803427, 0.99896235, 0.49315310,\
++	-6.27262888, -0.00064325, 0.00039418, 7.27198563, 0.99803468, 0.99896257, 0.49315315,\
++	-6.27262920, -0.00064311, 0.00039410, 7.27198608, 0.99803508, 0.99896279, 0.49315320,\
++	-6.27262952, -0.00064298, 0.00039402, 7.27198654, 0.99803549, 0.99896300, 0.49315324,\
++	-6.27262984, -0.00064284, 0.00039394, 7.27198699, 0.99803590, 0.99896322, 0.49315329,\
++	-6.27263015, -0.00064271, 0.00039386, 7.27198744, 0.99803631, 0.99896343, 0.49315335,\
++	-6.27263047, -0.00064258, 0.00039378, 7.27198790, 0.99803672, 0.99896365, 0.49315341,\
++	-6.27263079, -0.00064244, 0.00039369, 7.27198835, 0.99803712, 0.99896386, 0.49315341,\
++	-6.27263111, -0.00064231, 0.00039361, 7.27198880, 0.99803753, 0.99896408, 0.49315348,\
++	-6.27263143, -0.00064218, 0.00039353, 7.27198925, 0.99803794, 0.99896429, 0.49315355,\
++	-6.27263175, -0.00064204, 0.00039345, 7.27198971, 0.99803835, 0.99896451, 0.49315360,\
++	-6.27263207, -0.00064191, 0.00039337, 7.27199016, 0.99803875, 0.99896472, 0.49315362,\
++	-6.27263239, -0.00064178, 0.00039329, 7.27199061, 0.99803916, 0.99896494, 0.49315366,\
++	-6.27263271, -0.00064165, 0.00039320, 7.27199106, 0.99803957, 0.99896515, 0.49315370,\
++	-6.27263302, -0.00064151, 0.00039312, 7.27199151, 0.99803997, 0.99896537, 0.49315378,\
++	-6.27263334, -0.00064138, 0.00039304, 7.27199196, 0.99804038, 0.99896558, 0.49315382,\
++	-6.27263366, -0.00064125, 0.00039296, 7.27199241, 0.99804079, 0.99896579, 0.49315384,\
++	-6.27263398, -0.00064111, 0.00039288, 7.27199287, 0.99804119, 0.99896601, 0.49315390,\
++	-6.27263430, -0.00064098, 0.00039280, 7.27199332, 0.99804160, 0.99896622, 0.49315398,\
++	-6.27263461, -0.00064085, 0.00039271, 7.27199377, 0.99804200, 0.99896644, 0.49315398,\
++	-6.27263493, -0.00064072, 0.00039263, 7.27199422, 0.99804241, 0.99896665, 0.49315402,\
++	-6.27263525, -0.00064058, 0.00039255, 7.27199467, 0.99804281, 0.99896686, 0.49315410,\
++	-6.27263557, -0.00064045, 0.00039247, 7.27199512, 0.99804322, 0.99896708, 0.49315415,\
++	-6.27263588, -0.00064032, 0.00039239, 7.27199557, 0.99804362, 0.99896729, 0.49315420,\
++	-6.27263620, -0.00064019, 0.00039231, 7.27199602, 0.99804403, 0.99896751, 0.49315423,\
++	-6.27263652, -0.00064005, 0.00039223, 7.27199646, 0.99804443, 0.99896772, 0.49315429,\
++	-6.27263683, -0.00063992, 0.00039215, 7.27199691, 0.99804484, 0.99896793, 0.49315433,\
++	-6.27263715, -0.00063979, 0.00039206, 7.27199736, 0.99804524, 0.99896815, 0.49315438,\
++	-6.27263747, -0.00063966, 0.00039198, 7.27199781, 0.99804565, 0.99896836, 0.49315441,\
++	-6.27263778, -0.00063952, 0.00039190, 7.27199826, 0.99804605, 0.99896857, 0.49315445,\
++	-6.27263810, -0.00063939, 0.00039182, 7.27199871, 0.99804645, 0.99896879, 0.49315452,\
++	-6.27263842, -0.00063926, 0.00039174, 7.27199916, 0.99804686, 0.99896900, 0.49315453,\
++	-6.27263873, -0.00063913, 0.00039166, 7.27199960, 0.99804726, 0.99896921, 0.49315461,\
++	-6.27263905, -0.00063900, 0.00039158, 7.27200005, 0.99804766, 0.99896942, 0.49315465,\
++	-6.27263936, -0.00063886, 0.00039150, 7.27200050, 0.99804807, 0.99896964, 0.49315471,\
++	-6.27263968, -0.00063873, 0.00039142, 7.27200095, 0.99804847, 0.99896985, 0.49315476,\
++	-6.27263999, -0.00063860, 0.00039134, 7.27200139, 0.99804887, 0.99897006, 0.49315480,\
++	-6.27264031, -0.00063847, 0.00039126, 7.27200184, 0.99804928, 0.99897028, 0.49315486,\
++	-6.27264063, -0.00063834, 0.00039117, 7.27200229, 0.99804968, 0.99897049, 0.49315489,\
++	-6.27264094, -0.00063821, 0.00039109, 7.27200273, 0.99805008, 0.99897070, 0.49315491,\
++	-6.27264126, -0.00063807, 0.00039101, 7.27200318, 0.99805048, 0.99897091, 0.49315503,\
++	-6.27264157, -0.00063794, 0.00039093, 7.27200363, 0.99805088, 0.99897112, 0.49315504,\
++	-6.27264188, -0.00063781, 0.00039085, 7.27200407, 0.99805129, 0.99897134, 0.49315507,\
++	-6.27264220, -0.00063768, 0.00039077, 7.27200452, 0.99805169, 0.99897155, 0.49315512,\
++	-6.27264251, -0.00063755, 0.00039069, 7.27200496, 0.99805209, 0.99897176, 0.49315517,\
++	-6.27264283, -0.00063742, 0.00039061, 7.27200541, 0.99805249, 0.99897197, 0.49315521,\
++	-6.27264314, -0.00063729, 0.00039053, 7.27200586, 0.99805289, 0.99897218, 0.49315529,\
++	-6.27264346, -0.00063716, 0.00039045, 7.27200630, 0.99805329, 0.99897240, 0.49315533,\
++	-6.27264377, -0.00063702, 0.00039037, 7.27200675, 0.99805369, 0.99897261, 0.49315538,\
++	-6.27264408, -0.00063689, 0.00039029, 7.27200719, 0.99805409, 0.99897282, 0.49315540,\
++	-6.27264440, -0.00063676, 0.00039021, 7.27200764, 0.99805450, 0.99897303, 0.49315545,\
++	-6.27264471, -0.00063663, 0.00039013, 7.27200808, 0.99805490, 0.99897324, 0.49315550,\
++	-6.27264502, -0.00063650, 0.00039005, 7.27200852, 0.99805530, 0.99897345, 0.49315556,\
++	-6.27264534, -0.00063637, 0.00038997, 7.27200897, 0.99805570, 0.99897366, 0.49315563,\
++	-6.27264565, -0.00063624, 0.00038989, 7.27200941, 0.99805610, 0.99897387, 0.49315563,\
++	-6.27264596, -0.00063611, 0.00038981, 7.27200986, 0.99805649, 0.99897409, 0.49315568,\
++	-6.27264628, -0.00063598, 0.00038973, 7.27201030, 0.99805689, 0.99897430, 0.49315572,\
++	-6.27264659, -0.00063585, 0.00038965, 7.27201074, 0.99805729, 0.99897451, 0.49315579,\
++	-6.27264690, -0.00063572, 0.00038957, 7.27201119, 0.99805769, 0.99897472, 0.49315582,\
++	-6.27264721, -0.00063559, 0.00038949, 7.27201163, 0.99805809, 0.99897493, 0.49315589,\
++	-6.27264753, -0.00063545, 0.00038941, 7.27201207, 0.99805849, 0.99897514, 0.49315595,\
++	-6.27264784, -0.00063532, 0.00038933, 7.27201251, 0.99805889, 0.99897535, 0.49315600,\
++	-6.27264815, -0.00063519, 0.00038925, 7.27201296, 0.99805929, 0.99897556, 0.49315603,\
++	-6.27264846, -0.00063506, 0.00038917, 7.27201340, 0.99805969, 0.99897577, 0.49315606,\
++	-6.27264877, -0.00063493, 0.00038909, 7.27201384, 0.99806008, 0.99897598, 0.49315609,\
++	-6.27264909, -0.00063480, 0.00038901, 7.27201428, 0.99806048, 0.99897619, 0.49315614,\
++	-6.27264940, -0.00063467, 0.00038893, 7.27201472, 0.99806088, 0.99897640, 0.49315621,\
++	-6.27264971, -0.00063454, 0.00038885, 7.27201517, 0.99806128, 0.99897661, 0.49315622,\
++	-6.27265002, -0.00063441, 0.00038877, 7.27201561, 0.99806168, 0.99897682, 0.49315632,\
++	-6.27265033, -0.00063428, 0.00038869, 7.27201605, 0.99806207, 0.99897703, 0.49315636,\
++	-6.27265064, -0.00063415, 0.00038861, 7.27201649, 0.99806247, 0.99897724, 0.49315639,\
++	-6.27265095, -0.00063402, 0.00038853, 7.27201693, 0.99806287, 0.99897745, 0.49315644,\
++	-6.27265126, -0.00063389, 0.00038845, 7.27201737, 0.99806326, 0.99897766, 0.49315648,\
++	-6.27265157, -0.00063376, 0.00038837, 7.27201781, 0.99806366, 0.99897787, 0.49315654,\
++	-6.27265189, -0.00063363, 0.00038829, 7.27201825, 0.99806406, 0.99897808, 0.49315656,\
++	-6.27265220, -0.00063350, 0.00038821, 7.27201869, 0.99806445, 0.99897829, 0.49315663,\
++	-6.27265251, -0.00063337, 0.00038813, 7.27201913, 0.99806485, 0.99897849, 0.49315664,\
++	-6.27265282, -0.00063324, 0.00038805, 7.27201957, 0.99806525, 0.99897870, 0.49315672,\
++	-6.27265313, -0.00063312, 0.00038797, 7.27202001, 0.99806564, 0.99897891, 0.49315678,\
++	-6.27265344, -0.00063299, 0.00038789, 7.27202045, 0.99806604, 0.99897912, 0.49315679,\
++	-6.27265375, -0.00063286, 0.00038781, 7.27202089, 0.99806643, 0.99897933, 0.49315682,\
++	-6.27265406, -0.00063273, 0.00038773, 7.27202133, 0.99806683, 0.99897954, 0.49315688,\
++	-6.27265436, -0.00063260, 0.00038765, 7.27202177, 0.99806722, 0.99897975, 0.49315697,\
++	-6.27265467, -0.00063247, 0.00038758, 7.27202221, 0.99806762, 0.99897996, 0.49315698,\
++	-6.27265498, -0.00063234, 0.00038750, 7.27202264, 0.99806801, 0.99898016, 0.49315705,\
++	-6.27265529, -0.00063221, 0.00038742, 7.27202308, 0.99806841, 0.99898037, 0.49315710,\
++	-6.27265560, -0.00063208, 0.00038734, 7.27202352, 0.99806880, 0.99898058, 0.49315714,\
++	-6.27265591, -0.00063195, 0.00038726, 7.27202396, 0.99806920, 0.99898079, 0.49315716,\
++	-6.27265622, -0.00063182, 0.00038718, 7.27202440, 0.99806959, 0.99898100, 0.49315722,\
++	-6.27265653, -0.00063169, 0.00038710, 7.27202483, 0.99806999, 0.99898121, 0.49315726,\
++	-6.27265684, -0.00063157, 0.00038702, 7.27202527, 0.99807038, 0.99898141, 0.49315731,\
++	-6.27265714, -0.00063144, 0.00038694, 7.27202571, 0.99807077, 0.99898162, 0.49315737,\
++	-6.27265745, -0.00063131, 0.00038686, 7.27202614, 0.99807117, 0.99898183, 0.49315740,\
++	-6.27265776, -0.00063118, 0.00038678, 7.27202658, 0.99807156, 0.99898204, 0.49315744,\
++	-6.27265807, -0.00063105, 0.00038671, 7.27202702, 0.99807195, 0.99898224, 0.49315747,\
++	-6.27265838, -0.00063092, 0.00038663, 7.27202745, 0.99807235, 0.99898245, 0.49315751,\
++	-6.27265868, -0.00063079, 0.00038655, 7.27202789, 0.99807274, 0.99898266, 0.49315758,\
++	-6.27265899, -0.00063066, 0.00038647, 7.27202833, 0.99807313, 0.99898287, 0.49315760,\
++	-6.27265930, -0.00063054, 0.00038639, 7.27202876, 0.99807353, 0.99898307, 0.49315770,\
++	-6.27265961, -0.00063041, 0.00038631, 7.27202920, 0.99807392, 0.99898328, 0.49315771,\
++	-6.27265991, -0.00063028, 0.00038623, 7.27202963, 0.99807431, 0.99898349, 0.49315780,\
++	-6.27266022, -0.00063015, 0.00038615, 7.27203007, 0.99807470, 0.99898369, 0.49315780,\
++	-6.27266053, -0.00063002, 0.00038608, 7.27203051, 0.99807510, 0.99898390, 0.49315786,\
++	-6.27266083, -0.00062989, 0.00038600, 7.27203094, 0.99807549, 0.99898411, 0.49315792,\
++	-6.27266114, -0.00062977, 0.00038592, 7.27203138, 0.99807588, 0.99898432, 0.49315794,\
++	-6.27266145, -0.00062964, 0.00038584, 7.27203181, 0.99807627, 0.99898452, 0.49315802,\
++	-6.27266175, -0.00062951, 0.00038576, 7.27203224, 0.99807666, 0.99898473, 0.49315805,\
++	-6.27266206, -0.00062938, 0.00038568, 7.27203268, 0.99807705, 0.99898493, 0.49315808,\
++	-6.27266237, -0.00062925, 0.00038560, 7.27203311, 0.99807744, 0.99898514, 0.49315812,\
++	-6.27266267, -0.00062913, 0.00038553, 7.27203355, 0.99807784, 0.99898535, 0.49315818,\
++	-6.27266298, -0.00062900, 0.00038545, 7.27203398, 0.99807823, 0.99898555, 0.49315821,\
++	-6.27266329, -0.00062887, 0.00038537, 7.27203441, 0.99807862, 0.99898576, 0.49315828,\
++	-6.27266359, -0.00062874, 0.00038529, 7.27203485, 0.99807901, 0.99898597, 0.49315830,\
++	-6.27266390, -0.00062862, 0.00038521, 7.27203528, 0.99807940, 0.99898617, 0.49315836,\
++	-6.27266420, -0.00062849, 0.00038513, 7.27203571, 0.99807979, 0.99898638, 0.49315841,\
++	-6.27266451, -0.00062836, 0.00038506, 7.27203615, 0.99808018, 0.99898658, 0.49315847,\
++	-6.27266481, -0.00062823, 0.00038498, 7.27203658, 0.99808057, 0.99898679, 0.49315850,\
++	-6.27266512, -0.00062811, 0.00038490, 7.27203701, 0.99808096, 0.99898700, 0.49315856,\
++	-6.27266542, -0.00062798, 0.00038482, 7.27203744, 0.99808135, 0.99898720, 0.49315859,\
++	-6.27266573, -0.00062785, 0.00038474, 7.27203788, 0.99808174, 0.99898741, 0.49315862,\
++	-6.27266603, -0.00062772, 0.00038467, 7.27203831, 0.99808213, 0.99898761, 0.49315867,\
++	-6.27266634, -0.00062760, 0.00038459, 7.27203874, 0.99808251, 0.99898782, 0.49315875,\
++	-6.27266664, -0.00062747, 0.00038451, 7.27203917, 0.99808290, 0.99898802, 0.49315880,\
++	-6.27266695, -0.00062734, 0.00038443, 7.27203960, 0.99808329, 0.99898823, 0.49315883,\
++	-6.27266725, -0.00062721, 0.00038435, 7.27204004, 0.99808368, 0.99898843, 0.49315887,\
++	-6.27266755, -0.00062709, 0.00038428, 7.27204047, 0.99808407, 0.99898864, 0.49315892,\
++	-6.27266786, -0.00062696, 0.00038420, 7.27204090, 0.99808446, 0.99898884, 0.49315895,\
++	-6.27266816, -0.00062683, 0.00038412, 7.27204133, 0.99808485, 0.99898905, 0.49315899,\
++	-6.27266847, -0.00062671, 0.00038404, 7.27204176, 0.99808523, 0.99898925, 0.49315906,\
++	-6.27266877, -0.00062658, 0.00038396, 7.27204219, 0.99808562, 0.99898946, 0.49315910,\
++	-6.27266907, -0.00062645, 0.00038389, 7.27204262, 0.99808601, 0.99898966, 0.49315911,\
++	-6.27266938, -0.00062633, 0.00038381, 7.27204305, 0.99808640, 0.99898987, 0.49315917,\
++	-6.27266968, -0.00062620, 0.00038373, 7.27204348, 0.99808678, 0.99899007, 0.49315922,\
++	-6.27266998, -0.00062607, 0.00038365, 7.27204391, 0.99808717, 0.99899027, 0.49315926,\
++	-6.27267028, -0.00062595, 0.00038358, 7.27204434, 0.99808756, 0.99899048, 0.49315930,\
++	-6.27267059, -0.00062582, 0.00038350, 7.27204477, 0.99808794, 0.99899068, 0.49315934,\
++	-6.27267089, -0.00062569, 0.00038342, 7.27204520, 0.99808833, 0.99899089, 0.49315940,\
++	-6.27267119, -0.00062557, 0.00038334, 7.27204563, 0.99808872, 0.99899109, 0.49315945,\
++	-6.27267150, -0.00062544, 0.00038327, 7.27204606, 0.99808910, 0.99899129, 0.49315950,\
++	-6.27267180, -0.00062531, 0.00038319, 7.27204648, 0.99808949, 0.99899150, 0.49315953,\
++	-6.27267210, -0.00062519, 0.00038311, 7.27204691, 0.99808988, 0.99899170, 0.49315956,\
++	-6.27267240, -0.00062506, 0.00038303, 7.27204734, 0.99809026, 0.99899191, 0.49315961,\
++	-6.27267270, -0.00062494, 0.00038296, 7.27204777, 0.99809065, 0.99899211, 0.49315968,\
++	-6.27267301, -0.00062481, 0.00038288, 7.27204820, 0.99809103, 0.99899231, 0.49315973,\
++	-6.27267331, -0.00062468, 0.00038280, 7.27204863, 0.99809142, 0.99899252, 0.49315977,\
++	-6.27267361, -0.00062456, 0.00038272, 7.27204905, 0.99809180, 0.99899272, 0.49315980,\
++	-6.27267391, -0.00062443, 0.00038265, 7.27204948, 0.99809219, 0.99899292, 0.49315984,\
++	-6.27267421, -0.00062431, 0.00038257, 7.27204991, 0.99809257, 0.99899313, 0.49315989,\
++	-6.27267451, -0.00062418, 0.00038249, 7.27205033, 0.99809296, 0.99899333, 0.49315993,\
++	-6.27267481, -0.00062405, 0.00038241, 7.27205076, 0.99809334, 0.99899353, 0.49315999,\
++	-6.27267512, -0.00062393, 0.00038234, 7.27205119, 0.99809373, 0.99899373, 0.49316004,\
++	-6.27267542, -0.00062380, 0.00038226, 7.27205162, 0.99809411, 0.99899394, 0.49316007,\
++	-6.27267572, -0.00062368, 0.00038218, 7.27205204, 0.99809450, 0.99899414, 0.49316011,\
++	-6.27267602, -0.00062355, 0.00038211, 7.27205247, 0.99809488, 0.99899434, 0.49316016,\
++	-6.27267632, -0.00062342, 0.00038203, 7.27205289, 0.99809527, 0.99899455, 0.49316020,\
++	-6.27267662, -0.00062330, 0.00038195, 7.27205332, 0.99809565, 0.99899475, 0.49316023,\
++	-6.27267692, -0.00062317, 0.00038188, 7.27205375, 0.99809603, 0.99899495, 0.49316033,\
++	-6.27267722, -0.00062305, 0.00038180, 7.27205417, 0.99809642, 0.99899515, 0.49316032,\
++	-6.27267752, -0.00062292, 0.00038172, 7.27205460, 0.99809680, 0.99899536, 0.49316037,\
++	-6.27267782, -0.00062280, 0.00038164, 7.27205502, 0.99809718, 0.99899556, 0.49316043,\
++	-6.27267812, -0.00062267, 0.00038157, 7.27205545, 0.99809757, 0.99899576, 0.49316049,\
++	-6.27267842, -0.00062255, 0.00038149, 7.27205587, 0.99809795, 0.99899596, 0.49316053,\
++	-6.27267872, -0.00062242, 0.00038141, 7.27205630, 0.99809833, 0.99899616, 0.49316060,\
++	-6.27267902, -0.00062230, 0.00038134, 7.27205672, 0.99809871, 0.99899637, 0.49316061,\
++	-6.27267932, -0.00062217, 0.00038126, 7.27205715, 0.99809910, 0.99899657, 0.49316068,\
++	-6.27267962, -0.00062205, 0.00038118, 7.27205757, 0.99809948, 0.99899677, 0.49316072,\
++	-6.27267992, -0.00062192, 0.00038111, 7.27205799, 0.99809986, 0.99899697, 0.49316074,\
++	-6.27268021, -0.00062180, 0.00038103, 7.27205842, 0.99810024, 0.99899717, 0.49316079,\
++	-6.27268051, -0.00062167, 0.00038095, 7.27205884, 0.99810062, 0.99899737, 0.49316083,\
++	-6.27268081, -0.00062155, 0.00038088, 7.27205927, 0.99810100, 0.99899757, 0.49316088,\
++	-6.27268111, -0.00062142, 0.00038080, 7.27205969, 0.99810139, 0.99899778, 0.49316090,\
++	-6.27268141, -0.00062130, 0.00038072, 7.27206011, 0.99810177, 0.99899798, 0.49316099,\
++	-6.27268171, -0.00062117, 0.00038065, 7.27206053, 0.99810215, 0.99899818, 0.49316102,\
++	-6.27268201, -0.00062105, 0.00038057, 7.27206096, 0.99810253, 0.99899838, 0.49316107,\
++	-6.27268230, -0.00062092, 0.00038050, 7.27206138, 0.99810291, 0.99899858, 0.49316107,\
++	-6.27268260, -0.00062080, 0.00038042, 7.27206180, 0.99810329, 0.99899878, 0.49316112,\
++	-6.27268290, -0.00062067, 0.00038034, 7.27206223, 0.99810367, 0.99899898, 0.49316121,\
++	-6.27268320, -0.00062055, 0.00038027, 7.27206265, 0.99810405, 0.99899918, 0.49316122,\
++	-6.27268350, -0.00062043, 0.00038019, 7.27206307, 0.99810443, 0.99899938, 0.49316127,\
++	-6.27268379, -0.00062030, 0.00038011, 7.27206349, 0.99810481, 0.99899958, 0.49316133,\
++	-6.27268409, -0.00062018, 0.00038004, 7.27206391, 0.99810519, 0.99899978, 0.49316137,\
++	-6.27268439, -0.00062005, 0.00037996, 7.27206433, 0.99810557, 0.99899999, 0.49316141,\
++	-6.27268468, -0.00061993, 0.00037989, 7.27206476, 0.99810595, 0.99900019, 0.49316145,\
++	-6.27268498, -0.00061980, 0.00037981, 7.27206518, 0.99810633, 0.99900039, 0.49316150,\
++	-6.27268528, -0.00061968, 0.00037973, 7.27206560, 0.99810671, 0.99900059, 0.49316152,\
++	-6.27268558, -0.00061956, 0.00037966, 7.27206602, 0.99810709, 0.99900079, 0.49316158,\
++	-6.27268587, -0.00061943, 0.00037958, 7.27206644, 0.99810747, 0.99900099, 0.49316160,\
++	-6.27268617, -0.00061931, 0.00037951, 7.27206686, 0.99810785, 0.99900119, 0.49316174,\
++	-6.27268647, -0.00061919, 0.00037943, 7.27206728, 0.99810823, 0.99900139, 0.49316174,\
++	-6.27268676, -0.00061906, 0.00037935, 7.27206770, 0.99810860, 0.99900159, 0.49316173,\
++	-6.27268706, -0.00061894, 0.00037928, 7.27206812, 0.99810898, 0.99900179, 0.49316182,\
++	-6.27268735, -0.00061881, 0.00037920, 7.27206854, 0.99810936, 0.99900198, 0.49316185,\
++	-6.27268765, -0.00061869, 0.00037913, 7.27206896, 0.99810974, 0.99900218, 0.49316190,\
++	-6.27268795, -0.00061857, 0.00037905, 7.27206938, 0.99811012, 0.99900238, 0.49316194,\
++	-6.27268824, -0.00061844, 0.00037897, 7.27206980, 0.99811049, 0.99900258, 0.49316199,\
++	-6.27268854, -0.00061832, 0.00037890, 7.27207022, 0.99811087, 0.99900278, 0.49316201,\
++	-6.27268883, -0.00061820, 0.00037882, 7.27207064, 0.99811125, 0.99900298, 0.49316207,\
++	-6.27268913, -0.00061807, 0.00037875, 7.27207106, 0.99811163, 0.99900318, 0.49316215,\
++	-6.27268942, -0.00061795, 0.00037867, 7.27207147, 0.99811200, 0.99900338, 0.49316215,\
++	-6.27268972, -0.00061783, 0.00037860, 7.27207189, 0.99811238, 0.99900358, 0.49316222,\
++	-6.27269001, -0.00061770, 0.00037852, 7.27207231, 0.99811276, 0.99900378, 0.49316225,\
++	-6.27269031, -0.00061758, 0.00037844, 7.27207273, 0.99811313, 0.99900398, 0.49316226,\
++	-6.27269060, -0.00061746, 0.00037837, 7.27207315, 0.99811351, 0.99900418, 0.49316232,\
++	-6.27269090, -0.00061733, 0.00037829, 7.27207356, 0.99811389, 0.99900437, 0.49316241,\
++	-6.27269119, -0.00061721, 0.00037822, 7.27207398, 0.99811426, 0.99900457, 0.49316240,\
++	-6.27269149, -0.00061709, 0.00037814, 7.27207440, 0.99811464, 0.99900477, 0.49316244,\
++	-6.27269178, -0.00061696, 0.00037807, 7.27207482, 0.99811502, 0.99900497, 0.49316250,\
++	-6.27269208, -0.00061684, 0.00037799, 7.27207523, 0.99811539, 0.99900517, 0.49316255,\
++	-6.27269237, -0.00061672, 0.00037792, 7.27207565, 0.99811577, 0.99900537, 0.49316260,\
++	-6.27269266, -0.00061660, 0.00037784, 7.27207607, 0.99811614, 0.99900556, 0.49316268,\
++	-6.27269296, -0.00061647, 0.00037777, 7.27207648, 0.99811652, 0.99900576, 0.49316264,\
++	-6.27269325, -0.00061635, 0.00037769, 7.27207690, 0.99811689, 0.99900596, 0.49316274,\
++	-6.27269354, -0.00061623, 0.00037762, 7.27207732, 0.99811727, 0.99900616, 0.49316275,\
++	-6.27269384, -0.00061610, 0.00037754, 7.27207773, 0.99811764, 0.99900636, 0.49316280,\
++	-6.27269413, -0.00061598, 0.00037746, 7.27207815, 0.99811802, 0.99900655, 0.49316280,\
++	-6.27269442, -0.00061586, 0.00037739, 7.27207857, 0.99811839, 0.99900675, 0.49316288,\
++	-6.27269472, -0.00061574, 0.00037731, 7.27207898, 0.99811877, 0.99900695, 0.49316293,\
++	-6.27269501, -0.00061561, 0.00037724, 7.27207940, 0.99811914, 0.99900715, 0.49316299,\
++	-6.27269530, -0.00061549, 0.00037716, 7.27207981, 0.99811952, 0.99900734, 0.49316305,\
++	-6.27269560, -0.00061537, 0.00037709, 7.27208023, 0.99811989, 0.99900754, 0.49316305,\
++	-6.27269589, -0.00061525, 0.00037701, 7.27208064, 0.99812026, 0.99900774, 0.49316309,\
++	-6.27269618, -0.00061512, 0.00037694, 7.27208106, 0.99812064, 0.99900794, 0.49316319,\
++	-6.27269647, -0.00061500, 0.00037686, 7.27208147, 0.99812101, 0.99900813, 0.49316320,\
++	-6.27269677, -0.00061488, 0.00037679, 7.27208189, 0.99812138, 0.99900833, 0.49316326,\
++	-6.27269706, -0.00061476, 0.00037671, 7.27208230, 0.99812176, 0.99900853, 0.49316331,\
++	-6.27269735, -0.00061464, 0.00037664, 7.27208271, 0.99812213, 0.99900872, 0.49316334,\
++	-6.27269764, -0.00061451, 0.00037656, 7.27208313, 0.99812250, 0.99900892, 0.49316337,\
++	-6.27269793, -0.00061439, 0.00037649, 7.27208354, 0.99812288, 0.99900912, 0.49316343,\
++	-6.27269823, -0.00061427, 0.00037642, 7.27208396, 0.99812325, 0.99900931, 0.49316350,\
++	-6.27269852, -0.00061415, 0.00037634, 7.27208437, 0.99812362, 0.99900951, 0.49316348,\
++	-6.27269881, -0.00061403, 0.00037627, 7.27208478, 0.99812399, 0.99900971, 0.49316356,\
++	-6.27269910, -0.00061390, 0.00037619, 7.27208520, 0.99812437, 0.99900990, 0.49316359,\
++	-6.27269939, -0.00061378, 0.00037612, 7.27208561, 0.99812474, 0.99901010, 0.49316364,\
++	-6.27269968, -0.00061366, 0.00037604, 7.27208602, 0.99812511, 0.99901030, 0.49316368,\
++	-6.27269997, -0.00061354, 0.00037597, 7.27208643, 0.99812548, 0.99901049, 0.49316372,\
++	-6.27270027, -0.00061342, 0.00037589, 7.27208685, 0.99812585, 0.99901069, 0.49316379,\
++	-6.27270056, -0.00061330, 0.00037582, 7.27208726, 0.99812623, 0.99901089, 0.49316380,\
++	-6.27270085, -0.00061318, 0.00037574, 7.27208767, 0.99812660, 0.99901108, 0.49316383,\
++	-6.27270114, -0.00061305, 0.00037567, 7.27208808, 0.99812697, 0.99901128, 0.49316392,\
++	-6.27270143, -0.00061293, 0.00037559, 7.27208850, 0.99812734, 0.99901147, 0.49316393,\
++	-6.27270172, -0.00061281, 0.00037552, 7.27208891, 0.99812771, 0.99901167, 0.49316398,\
++	-6.27270201, -0.00061269, 0.00037545, 7.27208932, 0.99812808, 0.99901186, 0.49316403,\
++	-6.27270230, -0.00061257, 0.00037537, 7.27208973, 0.99812845, 0.99901206, 0.49316407,\
++	-6.27270259, -0.00061245, 0.00037530, 7.27209014, 0.99812882, 0.99901226, 0.49316411,\
++	-6.27270288, -0.00061233, 0.00037522, 7.27209055, 0.99812919, 0.99901245, 0.49316419,\
++	-6.27270317, -0.00061221, 0.00037515, 7.27209096, 0.99812956, 0.99901265, 0.49316420,\
++	-6.27270346, -0.00061208, 0.00037507, 7.27209137, 0.99812993, 0.99901284, 0.49316424,\
++	-6.27270375, -0.00061196, 0.00037500, 7.27209178, 0.99813030, 0.99901304, 0.49316431,\
++	-6.27270404, -0.00061184, 0.00037493, 7.27209219, 0.99813067, 0.99901323, 0.49316432,\
++	-6.27270433, -0.00061172, 0.00037485, 7.27209260, 0.99813104, 0.99901343, 0.49316435,\
++	-6.27270462, -0.00061160, 0.00037478, 7.27209301, 0.99813141, 0.99901362, 0.49316437,\
++	-6.27270490, -0.00061148, 0.00037470, 7.27209342, 0.99813178, 0.99901382, 0.49316447,\
++	-6.27270519, -0.00061136, 0.00037463, 7.27209383, 0.99813215, 0.99901401, 0.49316452,\
++	-6.27270548, -0.00061124, 0.00037456, 7.27209424, 0.99813252, 0.99901421, 0.49316453,\
++	-6.27270577, -0.00061112, 0.00037448, 7.27209465, 0.99813289, 0.99901440, 0.49316460,\
++	-6.27270606, -0.00061100, 0.00037441, 7.27209506, 0.99813326, 0.99901460, 0.49316462,\
++	-6.27270635, -0.00061088, 0.00037433, 7.27209547, 0.99813362, 0.99901479, 0.49316468,\
++	-6.27270664, -0.00061076, 0.00037426, 7.27209588, 0.99813399, 0.99901498, 0.49316472,\
++	-6.27270692, -0.00061064, 0.00037419, 7.27209629, 0.99813436, 0.99901518, 0.49316476,\
++	-6.27270721, -0.00061051, 0.00037411, 7.27209670, 0.99813473, 0.99901537, 0.49316483,\
++	-6.27270750, -0.00061039, 0.00037404, 7.27209711, 0.99813510, 0.99901557, 0.49316482,\
++	-6.27270779, -0.00061027, 0.00037396, 7.27209751, 0.99813547, 0.99901576, 0.49316493,\
++	-6.27270808, -0.00061015, 0.00037389, 7.27209792, 0.99813583, 0.99901596, 0.49316495,\
++	-6.27270836, -0.00061003, 0.00037382, 7.27209833, 0.99813620, 0.99901615, 0.49316498,\
++	-6.27270865, -0.00060991, 0.00037374, 7.27209874, 0.99813657, 0.99901634, 0.49316501,\
++	-6.27270894, -0.00060979, 0.00037367, 7.27209915, 0.99813694, 0.99901654, 0.49316504,\
++	-6.27270923, -0.00060967, 0.00037360, 7.27209955, 0.99813730, 0.99901673, 0.49316509,\
++	-6.27270951, -0.00060955, 0.00037352, 7.27209996, 0.99813767, 0.99901692, 0.49316516,\
++	-6.27270980, -0.00060943, 0.00037345, 7.27210037, 0.99813804, 0.99901712, 0.49316521,\
++	-6.27271009, -0.00060931, 0.00037338, 7.27210078, 0.99813840, 0.99901731, 0.49316522,\
++	-6.27271038, -0.00060919, 0.00037330, 7.27210118, 0.99813877, 0.99901751, 0.49316529,\
++	-6.27271066, -0.00060907, 0.00037323, 7.27210159, 0.99813914, 0.99901770, 0.49316533,\
++	-6.27271095, -0.00060895, 0.00037315, 7.27210200, 0.99813950, 0.99901789, 0.49316538,\
++	-6.27271124, -0.00060883, 0.00037308, 7.27210240, 0.99813987, 0.99901808, 0.49316545,\
++	-6.27271152, -0.00060871, 0.00037301, 7.27210281, 0.99814023, 0.99901828, 0.49316550,\
++	-6.27271181, -0.00060859, 0.00037293, 7.27210321, 0.99814060, 0.99901847, 0.49316550,\
++	-6.27271209, -0.00060847, 0.00037286, 7.27210362, 0.99814097, 0.99901866, 0.49316554,\
++	-6.27271238, -0.00060836, 0.00037279, 7.27210403, 0.99814133, 0.99901886, 0.49316555,\
++	-6.27271267, -0.00060824, 0.00037271, 7.27210443, 0.99814170, 0.99901905, 0.49316564,\
++	-6.27271295, -0.00060812, 0.00037264, 7.27210484, 0.99814206, 0.99901924, 0.49316569,\
++	-6.27271324, -0.00060800, 0.00037257, 7.27210524, 0.99814243, 0.99901944, 0.49316569,\
++	-6.27271352, -0.00060788, 0.00037249, 7.27210565, 0.99814279, 0.99901963, 0.49316572,\
++	-6.27271381, -0.00060776, 0.00037242, 7.27210605, 0.99814316, 0.99901982, 0.49316582,\
++	-6.27271410, -0.00060764, 0.00037235, 7.27210646, 0.99814352, 0.99902001, 0.49316585,\
++	-6.27271438, -0.00060752, 0.00037228, 7.27210686, 0.99814389, 0.99902021, 0.49316587,\
++	-6.27271467, -0.00060740, 0.00037220, 7.27210727, 0.99814425, 0.99902040, 0.49316592,\
++	-6.27271495, -0.00060728, 0.00037213, 7.27210767, 0.99814461, 0.99902059, 0.49316598,\
++	-6.27271524, -0.00060716, 0.00037206, 7.27210807, 0.99814498, 0.99902078, 0.49316599,\
++	-6.27271552, -0.00060704, 0.00037198, 7.27210848, 0.99814534, 0.99902097, 0.49316604,\
++	-6.27271581, -0.00060692, 0.00037191, 7.27210888, 0.99814571, 0.99902117, 0.49316608,\
++	-6.27271609, -0.00060680, 0.00037184, 7.27210929, 0.99814607, 0.99902136, 0.49316611,\
++	-6.27271637, -0.00060669, 0.00037176, 7.27210969, 0.99814643, 0.99902155, 0.49316616,\
++	-6.27271666, -0.00060657, 0.00037169, 7.27211009, 0.99814680, 0.99902174, 0.49316618,\
++	-6.27271694, -0.00060645, 0.00037162, 7.27211050, 0.99814716, 0.99902193, 0.49316624,\
++	-6.27271723, -0.00060633, 0.00037155, 7.27211090, 0.99814752, 0.99902213, 0.49316630,\
++	-6.27271751, -0.00060621, 0.00037147, 7.27211130, 0.99814789, 0.99902232, 0.49316633,\
++	-6.27271780, -0.00060609, 0.00037140, 7.27211170, 0.99814825, 0.99902251, 0.49316640,\
++	-6.27271808, -0.00060597, 0.00037133, 7.27211211, 0.99814861, 0.99902270, 0.49316642,\
++	-6.27271836, -0.00060585, 0.00037125, 7.27211251, 0.99814897, 0.99902289, 0.49316649,\
++	-6.27271865, -0.00060574, 0.00037118, 7.27211291, 0.99814934, 0.99902308, 0.49316653,\
++	-6.27271893, -0.00060562, 0.00037111, 7.27211331, 0.99814970, 0.99902327, 0.49316657,\
++	-6.27271921, -0.00060550, 0.00037104, 7.27211371, 0.99815006, 0.99902346, 0.49316659,\
++	-6.27271950, -0.00060538, 0.00037096, 7.27211412, 0.99815042, 0.99902366, 0.49316664,\
++	-6.27271978, -0.00060526, 0.00037089, 7.27211452, 0.99815079, 0.99902385, 0.49316670,\
++	-6.27272006, -0.00060514, 0.00037082, 7.27211492, 0.99815115, 0.99902404, 0.49316670,\
++	-6.27272035, -0.00060503, 0.00037075, 7.27211532, 0.99815151, 0.99902423, 0.49316673,\
++	-6.27272063, -0.00060491, 0.00037067, 7.27211572, 0.99815187, 0.99902442, 0.49316679,\
++	-6.27272091, -0.00060479, 0.00037060, 7.27211612, 0.99815223, 0.99902461, 0.49316685,\
++	-6.27272120, -0.00060467, 0.00037053, 7.27211652, 0.99815259, 0.99902480, 0.49316688,\
++	-6.27272148, -0.00060455, 0.00037046, 7.27211692, 0.99815295, 0.99902499, 0.49316692,\
++	-6.27272176, -0.00060444, 0.00037038, 7.27211732, 0.99815331, 0.99902518, 0.49316699,\
++	-6.27272204, -0.00060432, 0.00037031, 7.27211773, 0.99815367, 0.99902537, 0.49316698,\
++	-6.27272232, -0.00060420, 0.00037024, 7.27211813, 0.99815404, 0.99902556, 0.49316707,\
++	-6.27272261, -0.00060408, 0.00037017, 7.27211853, 0.99815440, 0.99902575, 0.49316710,\
++	-6.27272289, -0.00060396, 0.00037009, 7.27211893, 0.99815476, 0.99902594, 0.49316715,\
++	-6.27272317, -0.00060385, 0.00037002, 7.27211933, 0.99815512, 0.99902613, 0.49316718,\
++	-6.27272345, -0.00060373, 0.00036995, 7.27211972, 0.99815548, 0.99902632, 0.49316722,\
++	-6.27272373, -0.00060361, 0.00036988, 7.27212012, 0.99815584, 0.99902651, 0.49316726,\
++	-6.27272402, -0.00060349, 0.00036981, 7.27212052, 0.99815620, 0.99902670, 0.49316729,\
++	-6.27272430, -0.00060337, 0.00036973, 7.27212092, 0.99815656, 0.99902689, 0.49316735,\
++	-6.27272458, -0.00060326, 0.00036966, 7.27212132, 0.99815691, 0.99902708, 0.49316741,\
++	-6.27272486, -0.00060314, 0.00036959, 7.27212172, 0.99815727, 0.99902727, 0.49316741,\
++	-6.27272514, -0.00060302, 0.00036952, 7.27212212, 0.99815763, 0.99902746, 0.49316748,\
++	-6.27272542, -0.00060290, 0.00036945, 7.27212252, 0.99815799, 0.99902765, 0.49316753,\
++	-6.27272570, -0.00060279, 0.00036937, 7.27212292, 0.99815835, 0.99902784, 0.49316756,\
++	-6.27272598, -0.00060267, 0.00036930, 7.27212331, 0.99815871, 0.99902803, 0.49316761,\
++	-6.27272626, -0.00060255, 0.00036923, 7.27212371, 0.99815907, 0.99902822, 0.49316767,\
++	-6.27272654, -0.00060244, 0.00036916, 7.27212411, 0.99815943, 0.99902841, 0.49316768,\
++	-6.27272683, -0.00060232, 0.00036909, 7.27212451, 0.99815978, 0.99902860, 0.49316772,\
++	-6.27272711, -0.00060220, 0.00036901, 7.27212490, 0.99816014, 0.99902879, 0.49316778,\
++	-6.27272739, -0.00060208, 0.00036894, 7.27212530, 0.99816050, 0.99902897, 0.49316778,\
++	-6.27272767, -0.00060197, 0.00036887, 7.27212570, 0.99816086, 0.99902916, 0.49316783,\
++	-6.27272795, -0.00060185, 0.00036880, 7.27212610, 0.99816122, 0.99902935, 0.49316788,\
++	-6.27272823, -0.00060173, 0.00036873, 7.27212649, 0.99816157, 0.99902954, 0.49316787,\
++	-6.27272851, -0.00060162, 0.00036865, 7.27212689, 0.99816193, 0.99902973, 0.49316799,\
++	-6.27272879, -0.00060150, 0.00036858, 7.27212729, 0.99816229, 0.99902992, 0.49316801,\
++	-6.27272907, -0.00060138, 0.00036851, 7.27212768, 0.99816265, 0.99903011, 0.49316805,\
++	-6.27272934, -0.00060127, 0.00036844, 7.27212808, 0.99816300, 0.99903029, 0.49316810,\
++	-6.27272962, -0.00060115, 0.00036837, 7.27212848, 0.99816336, 0.99903048, 0.49316812,\
++	-6.27272990, -0.00060103, 0.00036830, 7.27212887, 0.99816372, 0.99903067, 0.49316815,\
++	-6.27273018, -0.00060092, 0.00036823, 7.27212927, 0.99816407, 0.99903086, 0.49316824,\
++	-6.27273046, -0.00060080, 0.00036815, 7.27212966, 0.99816443, 0.99903105, 0.49316825,\
++	-6.27273074, -0.00060068, 0.00036808, 7.27213006, 0.99816479, 0.99903124, 0.49316832,\
++	-6.27273102, -0.00060057, 0.00036801, 7.27213045, 0.99816514, 0.99903142, 0.49316835,\
++	-6.27273130, -0.00060045, 0.00036794, 7.27213085, 0.99816550, 0.99903161, 0.49316839,\
++	-6.27273158, -0.00060033, 0.00036787, 7.27213124, 0.99816585, 0.99903180, 0.49316844,\
++	-6.27273186, -0.00060022, 0.00036780, 7.27213164, 0.99816621, 0.99903199, 0.49316848,\
++	-6.27273213, -0.00060010, 0.00036773, 7.27213203, 0.99816657, 0.99903218, 0.49316850,\
++	-6.27273241, -0.00059998, 0.00036765, 7.27213243, 0.99816692, 0.99903236, 0.49316856,\
++	-6.27273269, -0.00059987, 0.00036758, 7.27213282, 0.99816728, 0.99903255, 0.49316861,\
++	-6.27273297, -0.00059975, 0.00036751, 7.27213322, 0.99816763, 0.99903274, 0.49316864,\
++	-6.27273325, -0.00059963, 0.00036744, 7.27213361, 0.99816799, 0.99903293, 0.49316869,\
++	-6.27273352, -0.00059952, 0.00036737, 7.27213401, 0.99816834, 0.99903311, 0.49316872,\
++	-6.27273380, -0.00059940, 0.00036730, 7.27213440, 0.99816870, 0.99903330, 0.49316876,\
++	-6.27273408, -0.00059929, 0.00036723, 7.27213479, 0.99816905, 0.99903349, 0.49316877,\
++	-6.27273436, -0.00059917, 0.00036716, 7.27213519, 0.99816941, 0.99903367, 0.49316887,\
++	-6.27273463, -0.00059905, 0.00036708, 7.27213558, 0.99816976, 0.99903386, 0.49316888,\
++	-6.27273491, -0.00059894, 0.00036701, 7.27213597, 0.99817012, 0.99903405, 0.49316895,\
++	-6.27273519, -0.00059882, 0.00036694, 7.27213637, 0.99817047, 0.99903424, 0.49316897,\
++	-6.27273547, -0.00059871, 0.00036687, 7.27213676, 0.99817082, 0.99903442, 0.49316901,\
++	-6.27273574, -0.00059859, 0.00036680, 7.27213715, 0.99817118, 0.99903461, 0.49316906,\
++	-6.27273602, -0.00059848, 0.00036673, 7.27213754, 0.99817153, 0.99903480, 0.49316911,\
++	-6.27273630, -0.00059836, 0.00036666, 7.27213794, 0.99817189, 0.99903498, 0.49316913,\
++	-6.27273657, -0.00059824, 0.00036659, 7.27213833, 0.99817224, 0.99903517, 0.49316914,\
++	-6.27273685, -0.00059813, 0.00036652, 7.27213872, 0.99817259, 0.99903535, 0.49316924,\
++	-6.27273713, -0.00059801, 0.00036645, 7.27213911, 0.99817295, 0.99903554, 0.49316926,\
++	-6.27273740, -0.00059790, 0.00036637, 7.27213951, 0.99817330, 0.99903573, 0.49316930,\
++	-6.27273768, -0.00059778, 0.00036630, 7.27213990, 0.99817365, 0.99903591, 0.49316938,\
++	-6.27273796, -0.00059767, 0.00036623, 7.27214029, 0.99817400, 0.99903610, 0.49316938,\
++	-6.27273823, -0.00059755, 0.00036616, 7.27214068, 0.99817436, 0.99903629, 0.49316938,\
++	-6.27273851, -0.00059744, 0.00036609, 7.27214107, 0.99817471, 0.99903647, 0.49316946,\
++	-6.27273878, -0.00059732, 0.00036602, 7.27214146, 0.99817506, 0.99903666, 0.49316948,\
++	-6.27273906, -0.00059721, 0.00036595, 7.27214185, 0.99817541, 0.99903684, 0.49316954,\
++	-6.27273933, -0.00059709, 0.00036588, 7.27214224, 0.99817577, 0.99903703, 0.49316961,\
++	-6.27273961, -0.00059698, 0.00036581, 7.27214263, 0.99817612, 0.99903722, 0.49316964,\
++	-6.27273989, -0.00059686, 0.00036574, 7.27214303, 0.99817647, 0.99903740, 0.49316966,\
++	-6.27274016, -0.00059674, 0.00036567, 7.27214342, 0.99817682, 0.99903759, 0.49316973,\
++	-6.27274044, -0.00059663, 0.00036560, 7.27214381, 0.99817717, 0.99903777, 0.49316976,\
++	-6.27274071, -0.00059651, 0.00036553, 7.27214420, 0.99817752, 0.99903796, 0.49316978,\
++	-6.27274099, -0.00059640, 0.00036546, 7.27214459, 0.99817788, 0.99903814, 0.49316985,\
++	-6.27274126, -0.00059629, 0.00036539, 7.27214498, 0.99817823, 0.99903833, 0.49316985,\
++	-6.27274154, -0.00059617, 0.00036532, 7.27214537, 0.99817858, 0.99903851, 0.49316990,\
++	-6.27274181, -0.00059606, 0.00036525, 7.27214575, 0.99817893, 0.99903870, 0.49316996,\
++	-6.27274208, -0.00059594, 0.00036517, 7.27214614, 0.99817928, 0.99903888, 0.49317001,\
++	-6.27274236, -0.00059583, 0.00036510, 7.27214653, 0.99817963, 0.99903907, 0.49317000,\
++	-6.27274263, -0.00059571, 0.00036503, 7.27214692, 0.99817998, 0.99903925, 0.49317004,\
++	-6.27274291, -0.00059560, 0.00036496, 7.27214731, 0.99818033, 0.99903944, 0.49317008,\
++	-6.27274318, -0.00059548, 0.00036489, 7.27214770, 0.99818068, 0.99903962, 0.49317014,\
++	-6.27274346, -0.00059537, 0.00036482, 7.27214809, 0.99818103, 0.99903981, 0.49317022,\
++	-6.27274373, -0.00059525, 0.00036475, 7.27214848, 0.99818138, 0.99903999, 0.49317024,\
++	-6.27274400, -0.00059514, 0.00036468, 7.27214886, 0.99818173, 0.99904018, 0.49317029,\
++	-6.27274428, -0.00059502, 0.00036461, 7.27214925, 0.99818208, 0.99904036, 0.49317032,\
++	-6.27274455, -0.00059491, 0.00036454, 7.27214964, 0.99818243, 0.99904055, 0.49317037,\
++	-6.27274482, -0.00059480, 0.00036447, 7.27215003, 0.99818278, 0.99904073, 0.49317042,\
++	-6.27274510, -0.00059468, 0.00036440, 7.27215042, 0.99818313, 0.99904092, 0.49317048,\
++	-6.27274537, -0.00059457, 0.00036433, 7.27215080, 0.99818348, 0.99904110, 0.49317047,\
++	-6.27274564, -0.00059445, 0.00036426, 7.27215119, 0.99818383, 0.99904128, 0.49317056,\
++	-6.27274592, -0.00059434, 0.00036419, 7.27215158, 0.99818418, 0.99904147, 0.49317055,\
++	-6.27274619, -0.00059422, 0.00036412, 7.27215197, 0.99818452, 0.99904165, 0.49317062,\
++	-6.27274646, -0.00059411, 0.00036405, 7.27215235, 0.99818487, 0.99904184, 0.49317064,\
++	-6.27274674, -0.00059400, 0.00036398, 7.27215274, 0.99818522, 0.99904202, 0.49317066,\
++	-6.27274701, -0.00059388, 0.00036391, 7.27215313, 0.99818557, 0.99904220, 0.49317073,\
++	-6.27274728, -0.00059377, 0.00036384, 7.27215351, 0.99818592, 0.99904239, 0.49317076,\
++	-6.27274755, -0.00059365, 0.00036377, 7.27215390, 0.99818627, 0.99904257, 0.49317082,\
++	-6.27274783, -0.00059354, 0.00036370, 7.27215428, 0.99818661, 0.99904276, 0.49317086,\
++	-6.27274810, -0.00059343, 0.00036363, 7.27215467, 0.99818696, 0.99904294, 0.49317091,\
++	-6.27274837, -0.00059331, 0.00036356, 7.27215506, 0.99818731, 0.99904312, 0.49317096,\
++	-6.27274864, -0.00059320, 0.00036349, 7.27215544, 0.99818766, 0.99904331, 0.49317092,\
++	-6.27274891, -0.00059309, 0.00036342, 7.27215583, 0.99818800, 0.99904349, 0.49317097,\
++	-6.27274919, -0.00059297, 0.00036335, 7.27215621, 0.99818835, 0.99904367, 0.49317108,\
++	-6.27274946, -0.00059286, 0.00036329, 7.27215660, 0.99818870, 0.99904386, 0.49317108,\
++	-6.27274973, -0.00059275, 0.00036322, 7.27215698, 0.99818905, 0.99904404, 0.49317113,\
++	-6.27275000, -0.00059263, 0.00036315, 7.27215737, 0.99818939, 0.99904422, 0.49317119,\
++	-6.27275027, -0.00059252, 0.00036308, 7.27215775, 0.99818974, 0.99904440, 0.49317125,\
++	-6.27275054, -0.00059241, 0.00036301, 7.27215814, 0.99819009, 0.99904459, 0.49317124,\
++	-6.27275081, -0.00059229, 0.00036294, 7.27215852, 0.99819043, 0.99904477, 0.49317130,\
++	-6.27275109, -0.00059218, 0.00036287, 7.27215891, 0.99819078, 0.99904495, 0.49317131,\
++	-6.27275136, -0.00059207, 0.00036280, 7.27215929, 0.99819113, 0.99904514, 0.49317136,\
++	-6.27275163, -0.00059195, 0.00036273, 7.27215968, 0.99819147, 0.99904532, 0.49317137,\
++	-6.27275190, -0.00059184, 0.00036266, 7.27216006, 0.99819182, 0.99904550, 0.49317148,\
++	-6.27275217, -0.00059173, 0.00036259, 7.27216044, 0.99819216, 0.99904568, 0.49317152,\
++	-6.27275244, -0.00059161, 0.00036252, 7.27216083, 0.99819251, 0.99904587, 0.49317157,\
++	-6.27275271, -0.00059150, 0.00036245, 7.27216121, 0.99819285, 0.99904605, 0.49317157,\
++	-6.27275298, -0.00059139, 0.00036238, 7.27216159, 0.99819320, 0.99904623, 0.49317163,\
++	-6.27275325, -0.00059127, 0.00036231, 7.27216198, 0.99819355, 0.99904641, 0.49317168,\
++	-6.27275352, -0.00059116, 0.00036224, 7.27216236, 0.99819389, 0.99904660, 0.49317166,\
++	-6.27275379, -0.00059105, 0.00036217, 7.27216274, 0.99819424, 0.99904678, 0.49317177,\
++	-6.27275406, -0.00059094, 0.00036211, 7.27216313, 0.99819458, 0.99904696, 0.49317179,\
++	-6.27275433, -0.00059082, 0.00036204, 7.27216351, 0.99819493, 0.99904714, 0.49317185,\
++	-6.27275460, -0.00059071, 0.00036197, 7.27216389, 0.99819527, 0.99904732, 0.49317189,\
++	-6.27275487, -0.00059060, 0.00036190, 7.27216427, 0.99819561, 0.99904751, 0.49317188,\
++	-6.27275514, -0.00059048, 0.00036183, 7.27216466, 0.99819596, 0.99904769, 0.49317197,\
++	-6.27275541, -0.00059037, 0.00036176, 7.27216504, 0.99819630, 0.99904787, 0.49317199,\
++	-6.27275568, -0.00059026, 0.00036169, 7.27216542, 0.99819665, 0.99904805, 0.49317206,\
++	-6.27275595, -0.00059015, 0.00036162, 7.27216580, 0.99819699, 0.99904823, 0.49317206,\
++	-6.27275622, -0.00059003, 0.00036155, 7.27216618, 0.99819733, 0.99904841, 0.49317210,\
++	-6.27275649, -0.00058992, 0.00036148, 7.27216656, 0.99819768, 0.99904859, 0.49317215,\
++	-6.27275675, -0.00058981, 0.00036141, 7.27216695, 0.99819802, 0.99904878, 0.49317218,\
++	-6.27275702, -0.00058970, 0.00036135, 7.27216733, 0.99819837, 0.99904896, 0.49317220,\
++	-6.27275729, -0.00058958, 0.00036128, 7.27216771, 0.99819871, 0.99904914, 0.49317224,\
++	-6.27275756, -0.00058947, 0.00036121, 7.27216809, 0.99819905, 0.99904932, 0.49317231,\
++	-6.27275783, -0.00058936, 0.00036114, 7.27216847, 0.99819939, 0.99904950, 0.49317228,\
++	-6.27275810, -0.00058925, 0.00036107, 7.27216885, 0.99819974, 0.99904968, 0.49317238,\
++	-6.27275837, -0.00058914, 0.00036100, 7.27216923, 0.99820008, 0.99904986, 0.49317241,\
++	-6.27275863, -0.00058902, 0.00036093, 7.27216961, 0.99820042, 0.99905004, 0.49317245,\
++	-6.27275890, -0.00058891, 0.00036086, 7.27216999, 0.99820077, 0.99905022, 0.49317253,\
++	-6.27275917, -0.00058880, 0.00036080, 7.27217037, 0.99820111, 0.99905040, 0.49317256,\
++	-6.27275944, -0.00058869, 0.00036073, 7.27217075, 0.99820145, 0.99905059, 0.49317260,\
++	-6.27275971, -0.00058858, 0.00036066, 7.27217113, 0.99820179, 0.99905077, 0.49317263,\
++	-6.27275997, -0.00058846, 0.00036059, 7.27217151, 0.99820213, 0.99905095, 0.49317270,\
++	-6.27276024, -0.00058835, 0.00036052, 7.27217189, 0.99820248, 0.99905113, 0.49317272,\
++	-6.27276051, -0.00058824, 0.00036045, 7.27217227, 0.99820282, 0.99905131, 0.49317275,\
++	-6.27276078, -0.00058813, 0.00036038, 7.27217265, 0.99820316, 0.99905149, 0.49317277,\
++	-6.27276104, -0.00058802, 0.00036032, 7.27217303, 0.99820350, 0.99905167, 0.49317281,\
++	-6.27276131, -0.00058790, 0.00036025, 7.27217341, 0.99820384, 0.99905185, 0.49317287,\
++	-6.27276158, -0.00058779, 0.00036018, 7.27217378, 0.99820418, 0.99905203, 0.49317289,\
++	-6.27276184, -0.00058768, 0.00036011, 7.27217416, 0.99820453, 0.99905221, 0.49317299,\
++	-6.27276211, -0.00058757, 0.00036004, 7.27217454, 0.99820487, 0.99905239, 0.49317296,\
++	-6.27276238, -0.00058746, 0.00035997, 7.27217492, 0.99820521, 0.99905257, 0.49317302,\
++	-6.27276265, -0.00058735, 0.00035991, 7.27217530, 0.99820555, 0.99905275, 0.49317307,\
++	-6.27276291, -0.00058724, 0.00035984, 7.27217568, 0.99820589, 0.99905293, 0.49317310,\
++	-6.27276318, -0.00058712, 0.00035977, 7.27217605, 0.99820623, 0.99905311, 0.49317316,\
++	-6.27276344, -0.00058701, 0.00035970, 7.27217643, 0.99820657, 0.99905329, 0.49317319,\
++	-6.27276371, -0.00058690, 0.00035963, 7.27217681, 0.99820691, 0.99905347, 0.49317321,\
++	-6.27276398, -0.00058679, 0.00035956, 7.27217719, 0.99820725, 0.99905365, 0.49317328,\
++	-6.27276424, -0.00058668, 0.00035950, 7.27217756, 0.99820759, 0.99905383, 0.49317329,\
++	-6.27276451, -0.00058657, 0.00035943, 7.27217794, 0.99820793, 0.99905400, 0.49317335,\
++	-6.27276478, -0.00058646, 0.00035936, 7.27217832, 0.99820827, 0.99905418, 0.49317337,\
++	-6.27276504, -0.00058635, 0.00035929, 7.27217870, 0.99820861, 0.99905436, 0.49317339,\
++	-6.27276531, -0.00058623, 0.00035922, 7.27217907, 0.99820895, 0.99905454, 0.49317346,\
++	-6.27276557, -0.00058612, 0.00035916, 7.27217945, 0.99820929, 0.99905472, 0.49317350,\
++	-6.27276584, -0.00058601, 0.00035909, 7.27217982, 0.99820963, 0.99905490, 0.49317354,\
++	-6.27276610, -0.00058590, 0.00035902, 7.27218020, 0.99820997, 0.99905508, 0.49317358,\
++	-6.27276637, -0.00058579, 0.00035895, 7.27218058, 0.99821030, 0.99905526, 0.49317361,\
++	-6.27276663, -0.00058568, 0.00035888, 7.27218095, 0.99821064, 0.99905544, 0.49317361,\
++	-6.27276690, -0.00058557, 0.00035882, 7.27218133, 0.99821098, 0.99905562, 0.49317370,\
++	-6.27276716, -0.00058546, 0.00035875, 7.27218170, 0.99821132, 0.99905579, 0.49317372,\
++	-6.27276743, -0.00058535, 0.00035868, 7.27218208, 0.99821166, 0.99905597, 0.49317378,\
++	-6.27276769, -0.00058524, 0.00035861, 7.27218246, 0.99821200, 0.99905615, 0.49317376,\
++	-6.27276796, -0.00058513, 0.00035854, 7.27218283, 0.99821233, 0.99905633, 0.49317387,\
++	-6.27276822, -0.00058502, 0.00035848, 7.27218321, 0.99821267, 0.99905651, 0.49317387,\
++	-6.27276849, -0.00058491, 0.00035841, 7.27218358, 0.99821301, 0.99905669, 0.49317394,\
++	-6.27276875, -0.00058480, 0.00035834, 7.27218396, 0.99821335, 0.99905686, 0.49317397,\
++	-6.27276902, -0.00058468, 0.00035827, 7.27218433, 0.99821369, 0.99905704, 0.49317398,\
++	-6.27276928, -0.00058457, 0.00035820, 7.27218471, 0.99821402, 0.99905722, 0.49317402,\
++	-6.27276954, -0.00058446, 0.00035814, 7.27218508, 0.99821436, 0.99905740, 0.49317408,\
++	-6.27276981, -0.00058435, 0.00035807, 7.27218545, 0.99821470, 0.99905758, 0.49317410,\
++	-6.27277007, -0.00058424, 0.00035800, 7.27218583, 0.99821504, 0.99905775, 0.49317417,\
++	-6.27277034, -0.00058413, 0.00035793, 7.27218620, 0.99821537, 0.99905793, 0.49317422,\
++	-6.27277060, -0.00058402, 0.00035787, 7.27218658, 0.99821571, 0.99905811, 0.49317425,\
++	-6.27277086, -0.00058391, 0.00035780, 7.27218695, 0.99821605, 0.99905829, 0.49317429,\
++	-6.27277113, -0.00058380, 0.00035773, 7.27218732, 0.99821638, 0.99905847, 0.49317428,\
++	-6.27277139, -0.00058369, 0.00035766, 7.27218770, 0.99821672, 0.99905864, 0.49317437,\
++	-6.27277165, -0.00058358, 0.00035760, 7.27218807, 0.99821706, 0.99905882, 0.49317446,\
++	-6.27277192, -0.00058347, 0.00035753, 7.27218844, 0.99821739, 0.99905900, 0.49317445,\
++	-6.27277218, -0.00058336, 0.00035746, 7.27218882, 0.99821773, 0.99905918, 0.49317449,\
++	-6.27277244, -0.00058325, 0.00035739, 7.27218919, 0.99821806, 0.99905935, 0.49317453,\
++	-6.27277270, -0.00058314, 0.00035733, 7.27218956, 0.99821840, 0.99905953, 0.49317457,\
++	-6.27277297, -0.00058303, 0.00035726, 7.27218993, 0.99821874, 0.99905971, 0.49317458,\
++	-6.27277323, -0.00058292, 0.00035719, 7.27219031, 0.99821907, 0.99905988, 0.49317467,\
++	-6.27277349, -0.00058281, 0.00035712, 7.27219068, 0.99821941, 0.99906006, 0.49317464,\
++	-6.27277376, -0.00058270, 0.00035706, 7.27219105, 0.99821974, 0.99906024, 0.49317472,\
++	-6.27277402, -0.00058259, 0.00035699, 7.27219142, 0.99822008, 0.99906042, 0.49317476,\
++	-6.27277428, -0.00058248, 0.00035692, 7.27219180, 0.99822041, 0.99906059, 0.49317478,\
++	-6.27277454, -0.00058237, 0.00035686, 7.27219217, 0.99822075, 0.99906077, 0.49317481,\
++	-6.27277480, -0.00058227, 0.00035679, 7.27219254, 0.99822108, 0.99906095, 0.49317486,\
++	-6.27277507, -0.00058216, 0.00035672, 7.27219291, 0.99822142, 0.99906112, 0.49317492,\
++	-6.27277533, -0.00058205, 0.00035665, 7.27219328, 0.99822175, 0.99906130, 0.49317497,\
++	-6.27277559, -0.00058194, 0.00035659, 7.27219365, 0.99822209, 0.99906148, 0.49317500,\
++	-6.27277585, -0.00058183, 0.00035652, 7.27219402, 0.99822242, 0.99906165, 0.49317504,\
++	-6.27277611, -0.00058172, 0.00035645, 7.27219440, 0.99822275, 0.99906183, 0.49317502,\
++	-6.27277637, -0.00058161, 0.00035639, 7.27219477, 0.99822309, 0.99906200, 0.49317510,\
++	-6.27277664, -0.00058150, 0.00035632, 7.27219514, 0.99822342, 0.99906218, 0.49317515,\
++	-6.27277690, -0.00058139, 0.00035625, 7.27219551, 0.99822376, 0.99906236, 0.49317515,\
++	-6.27277716, -0.00058128, 0.00035619, 7.27219588, 0.99822409, 0.99906253, 0.49317527,\
++	-6.27277742, -0.00058117, 0.00035612, 7.27219625, 0.99822442, 0.99906271, 0.49317521,\
++	-6.27277768, -0.00058106, 0.00035605, 7.27219662, 0.99822476, 0.99906289, 0.49317533,\
++	-6.27277794, -0.00058095, 0.00035598, 7.27219699, 0.99822509, 0.99906306, 0.49317536,\
++	-6.27277820, -0.00058084, 0.00035592, 7.27219736, 0.99822542, 0.99906324, 0.49317532,\
++	-6.27277846, -0.00058074, 0.00035585, 7.27219773, 0.99822576, 0.99906341, 0.49317542,\
++	-6.27277872, -0.00058063, 0.00035578, 7.27219810, 0.99822609, 0.99906359, 0.49317544,\
++	-6.27277898, -0.00058052, 0.00035572, 7.27219847, 0.99822642, 0.99906376, 0.49317549,\
++	-6.27277924, -0.00058041, 0.00035565, 7.27219884, 0.99822675, 0.99906394, 0.49317552,\
++	-6.27277950, -0.00058030, 0.00035558, 7.27219920, 0.99822709, 0.99906412, 0.49317558,\
++	-6.27277977, -0.00058019, 0.00035552, 7.27219957, 0.99822742, 0.99906429, 0.49317562,\
++	-6.27278003, -0.00058008, 0.00035545, 7.27219994, 0.99822775, 0.99906447, 0.49317566,\
++	-6.27278029, -0.00057997, 0.00035538, 7.27220031, 0.99822808, 0.99906464, 0.49317568,\
++	-6.27278055, -0.00057987, 0.00035532, 7.27220068, 0.99822842, 0.99906482, 0.49317573,\
++	-6.27278080, -0.00057976, 0.00035525, 7.27220105, 0.99822875, 0.99906499, 0.49317574,\
++	-6.27278106, -0.00057965, 0.00035518, 7.27220142, 0.99822908, 0.99906517, 0.49317581,\
++	-6.27278132, -0.00057954, 0.00035512, 7.27220178, 0.99822941, 0.99906534, 0.49317584,\
++	-6.27278158, -0.00057943, 0.00035505, 7.27220215, 0.99822974, 0.99906552, 0.49317591,\
++	-6.27278184, -0.00057932, 0.00035498, 7.27220252, 0.99823008, 0.99906569, 0.49317591,\
++	-6.27278210, -0.00057921, 0.00035492, 7.27220289, 0.99823041, 0.99906587, 0.49317595,\
++	-6.27278236, -0.00057911, 0.00035485, 7.27220326, 0.99823074, 0.99906604, 0.49317597,\
++	-6.27278262, -0.00057900, 0.00035479, 7.27220362, 0.99823107, 0.99906622, 0.49317601,\
++	-6.27278288, -0.00057889, 0.00035472, 7.27220399, 0.99823140, 0.99906639, 0.49317609,\
++	-6.27278314, -0.00057878, 0.00035465, 7.27220436, 0.99823173, 0.99906657, 0.49317610,\
++	-6.27278340, -0.00057867, 0.00035459, 7.27220472, 0.99823206, 0.99906674, 0.49317615,\
++	-6.27278366, -0.00057857, 0.00035452, 7.27220509, 0.99823239, 0.99906691, 0.49317621,\
++	-6.27278392, -0.00057846, 0.00035445, 7.27220546, 0.99823272, 0.99906709, 0.49317622,\
++	-6.27278417, -0.00057835, 0.00035439, 7.27220582, 0.99823305, 0.99906726, 0.49317632,\
++	-6.27278443, -0.00057824, 0.00035432, 7.27220619, 0.99823338, 0.99906744, 0.49317629,\
++	-6.27278469, -0.00057813, 0.00035425, 7.27220656, 0.99823371, 0.99906761, 0.49317636,\
++	-6.27278495, -0.00057802, 0.00035419, 7.27220692, 0.99823404, 0.99906779, 0.49317638,\
++	-6.27278521, -0.00057792, 0.00035412, 7.27220729, 0.99823437, 0.99906796, 0.49317641,\
++	-6.27278547, -0.00057781, 0.00035406, 7.27220766, 0.99823470, 0.99906813, 0.49317644,\
++	-6.27278572, -0.00057770, 0.00035399, 7.27220802, 0.99823503, 0.99906831, 0.49317646,\
++	-6.27278598, -0.00057759, 0.00035392, 7.27220839, 0.99823536, 0.99906848, 0.49317651,\
++	-6.27278624, -0.00057749, 0.00035386, 7.27220875, 0.99823569, 0.99906866, 0.49317654,\
++	-6.27278650, -0.00057738, 0.00035379, 7.27220912, 0.99823602, 0.99906883, 0.49317660,\
++	-6.27278675, -0.00057727, 0.00035373, 7.27220948, 0.99823635, 0.99906900, 0.49317666,\
++	-6.27278701, -0.00057716, 0.00035366, 7.27220985, 0.99823668, 0.99906918, 0.49317668,\
++	-6.27278727, -0.00057706, 0.00035359, 7.27221021, 0.99823701, 0.99906935, 0.49317676,\
++	-6.27278753, -0.00057695, 0.00035353, 7.27221058, 0.99823734, 0.99906952, 0.49317676,\
++	-6.27278778, -0.00057684, 0.00035346, 7.27221094, 0.99823766, 0.99906970, 0.49317678,\
++	-6.27278804, -0.00057673, 0.00035340, 7.27221131, 0.99823799, 0.99906987, 0.49317683,\
++	-6.27278830, -0.00057663, 0.00035333, 7.27221167, 0.99823832, 0.99907004, 0.49317687,\
++	-6.27278855, -0.00057652, 0.00035326, 7.27221204, 0.99823865, 0.99907022, 0.49317691,\
++	-6.27278881, -0.00057641, 0.00035320, 7.27221240, 0.99823898, 0.99907039, 0.49317697,\
++	-6.27278907, -0.00057630, 0.00035313, 7.27221277, 0.99823931, 0.99907056, 0.49317699,\
++	-6.27278933, -0.00057620, 0.00035307, 7.27221313, 0.99823963, 0.99907074, 0.49317702,\
++	-6.27278958, -0.00057609, 0.00035300, 7.27221349, 0.99823996, 0.99907091, 0.49317708,\
++	-6.27278984, -0.00057598, 0.00035294, 7.27221386, 0.99824029, 0.99907108, 0.49317710,\
++	-6.27279009, -0.00057587, 0.00035287, 7.27221422, 0.99824062, 0.99907126, 0.49317717,\
++	-6.27279035, -0.00057577, 0.00035280, 7.27221458, 0.99824094, 0.99907143, 0.49317720,\
++	-6.27279061, -0.00057566, 0.00035274, 7.27221495, 0.99824127, 0.99907160, 0.49317720,\
++	-6.27279086, -0.00057555, 0.00035267, 7.27221531, 0.99824160, 0.99907177, 0.49317727,\
++	-6.27279112, -0.00057545, 0.00035261, 7.27221567, 0.99824193, 0.99907195, 0.49317735,\
++	-6.27279137, -0.00057534, 0.00035254, 7.27221604, 0.99824225, 0.99907212, 0.49317732,\
++	-6.27279163, -0.00057523, 0.00035248, 7.27221640, 0.99824258, 0.99907229, 0.49317739,\
++	-6.27279189, -0.00057513, 0.00035241, 7.27221676, 0.99824291, 0.99907246, 0.49317738,\
++	-6.27279214, -0.00057502, 0.00035235, 7.27221712, 0.99824323, 0.99907264, 0.49317745,\
++	-6.27279240, -0.00057491, 0.00035228, 7.27221749, 0.99824356, 0.99907281, 0.49317748,\
++	-6.27279265, -0.00057480, 0.00035221, 7.27221785, 0.99824389, 0.99907298, 0.49317752,\
++	-6.27279291, -0.00057470, 0.00035215, 7.27221821, 0.99824421, 0.99907315, 0.49317757,\
++	-6.27279316, -0.00057459, 0.00035208, 7.27221857, 0.99824454, 0.99907332, 0.49317760,\
++	-6.27279342, -0.00057448, 0.00035202, 7.27221893, 0.99824486, 0.99907350, 0.49317764,\
++	-6.27279367, -0.00057438, 0.00035195, 7.27221930, 0.99824519, 0.99907367, 0.49317766,\
++	-6.27279393, -0.00057427, 0.00035189, 7.27221966, 0.99824551, 0.99907384, 0.49317770,\
++	-6.27279418, -0.00057417, 0.00035182, 7.27222002, 0.99824584, 0.99907401, 0.49317777,\
++	-6.27279444, -0.00057406, 0.00035176, 7.27222038, 0.99824617, 0.99907418, 0.49317774,\
++	-6.27279469, -0.00057395, 0.00035169, 7.27222074, 0.99824649, 0.99907436, 0.49317781,\
++	-6.27279495, -0.00057385, 0.00035163, 7.27222110, 0.99824682, 0.99907453, 0.49317792,\
++	-6.27279520, -0.00057374, 0.00035156, 7.27222146, 0.99824714, 0.99907470, 0.49317788,\
++	-6.27279546, -0.00057363, 0.00035150, 7.27222182, 0.99824747, 0.99907487, 0.49317793,\
++	-6.27279571, -0.00057353, 0.00035143, 7.27222218, 0.99824779, 0.99907504, 0.49317800,\
++	-6.27279596, -0.00057342, 0.00035137, 7.27222254, 0.99824812, 0.99907521, 0.49317798,\
++	-6.27279622, -0.00057331, 0.00035130, 7.27222290, 0.99824844, 0.99907538, 0.49317810,\
++	-6.27279647, -0.00057321, 0.00035124, 7.27222326, 0.99824877, 0.99907556, 0.49317811,\
++	-6.27279673, -0.00057310, 0.00035117, 7.27222362, 0.99824909, 0.99907573, 0.49317808,\
++	-6.27279698, -0.00057300, 0.00035111, 7.27222398, 0.99824941, 0.99907590, 0.49317818,\
++	-6.27279723, -0.00057289, 0.00035104, 7.27222434, 0.99824974, 0.99907607, 0.49317820,\
++	-6.27279749, -0.00057278, 0.00035098, 7.27222470, 0.99825006, 0.99907624, 0.49317824,\
++	-6.27279774, -0.00057268, 0.00035091, 7.27222506, 0.99825039, 0.99907641, 0.49317828,\
++	-6.27279799, -0.00057257, 0.00035085, 7.27222542, 0.99825071, 0.99907658, 0.49317828,\
++	-6.27279825, -0.00057247, 0.00035078, 7.27222578, 0.99825103, 0.99907675, 0.49317836,\
++	-6.27279850, -0.00057236, 0.00035072, 7.27222614, 0.99825136, 0.99907692, 0.49317841,\
++	-6.27279875, -0.00057225, 0.00035065, 7.27222650, 0.99825168, 0.99907709, 0.49317844,\
++	-6.27279901, -0.00057215, 0.00035059, 7.27222686, 0.99825200, 0.99907727, 0.49317846,\
++	-6.27279926, -0.00057204, 0.00035052, 7.27222722, 0.99825233, 0.99907744, 0.49317853,\
++	-6.27279951, -0.00057194, 0.00035046, 7.27222758, 0.99825265, 0.99907761, 0.49317855,\
++	-6.27279977, -0.00057183, 0.00035039, 7.27222793, 0.99825297, 0.99907778, 0.49317862,\
++	-6.27280002, -0.00057173, 0.00035033, 7.27222829, 0.99825330, 0.99907795, 0.49317862,\
++	-6.27280027, -0.00057162, 0.00035026, 7.27222865, 0.99825362, 0.99907812, 0.49317865,\
++	-6.27280052, -0.00057152, 0.00035020, 7.27222901, 0.99825394, 0.99907829, 0.49317872,\
++	-6.27280078, -0.00057141, 0.00035013, 7.27222937, 0.99825426, 0.99907846, 0.49317874,\
++	-6.27280103, -0.00057130, 0.00035007, 7.27222972, 0.99825459, 0.99907863, 0.49317875,\
++	-6.27280128, -0.00057120, 0.00035000, 7.27223008, 0.99825491, 0.99907880, 0.49317879,\
++	-6.27280153, -0.00057109, 0.00034994, 7.27223044, 0.99825523, 0.99907897, 0.49317885,\
++	-6.27280178, -0.00057099, 0.00034987, 7.27223080, 0.99825555, 0.99907914, 0.49317886,\
++	-6.27280204, -0.00057088, 0.00034981, 7.27223115, 0.99825587, 0.99907931, 0.49317891,\
++	-6.27280229, -0.00057078, 0.00034974, 7.27223151, 0.99825620, 0.99907948, 0.49317896,\
++	-6.27280254, -0.00057067, 0.00034968, 7.27223187, 0.99825652, 0.99907965, 0.49317901,\
++	-6.27280279, -0.00057057, 0.00034962, 7.27223222, 0.99825684, 0.99907982, 0.49317904,\
++	-6.27280304, -0.00057046, 0.00034955, 7.27223258, 0.99825716, 0.99907999, 0.49317904,\
++	-6.27280329, -0.00057036, 0.00034949, 7.27223294, 0.99825748, 0.99908016, 0.49317910,\
++	-6.27280355, -0.00057025, 0.00034942, 7.27223329, 0.99825780, 0.99908033, 0.49317919,\
++	-6.27280380, -0.00057015, 0.00034936, 7.27223365, 0.99825812, 0.99908050, 0.49317919,\
++	-6.27280405, -0.00057004, 0.00034929, 7.27223401, 0.99825844, 0.99908066, 0.49317919,\
++	-6.27280430, -0.00056994, 0.00034923, 7.27223436, 0.99825877, 0.99908083, 0.49317929,\
++	-6.27280455, -0.00056983, 0.00034916, 7.27223472, 0.99825909, 0.99908100, 0.49317932,\
++	-6.27280480, -0.00056973, 0.00034910, 7.27223507, 0.99825941, 0.99908117, 0.49317933,\
++	-6.27280505, -0.00056962, 0.00034904, 7.27223543, 0.99825973, 0.99908134, 0.49317936,\
++	-6.27280530, -0.00056952, 0.00034897, 7.27223579, 0.99826005, 0.99908151, 0.49317942,\
++	-6.27280555, -0.00056941, 0.00034891, 7.27223614, 0.99826037, 0.99908168, 0.49317941,\
++	-6.27280580, -0.00056931, 0.00034884, 7.27223650, 0.99826069, 0.99908185, 0.49317944,\
++	-6.27280606, -0.00056920, 0.00034878, 7.27223685, 0.99826101, 0.99908202, 0.49317951,\
++	-6.27280631, -0.00056910, 0.00034872, 7.27223721, 0.99826133, 0.99908219, 0.49317958,\
++	-6.27280656, -0.00056899, 0.00034865, 7.27223756, 0.99826165, 0.99908235, 0.49317962,\
++	-6.27280681, -0.00056889, 0.00034859, 7.27223792, 0.99826197, 0.99908252, 0.49317961,\
++	-6.27280706, -0.00056878, 0.00034852, 7.27223827, 0.99826229, 0.99908269, 0.49317963,\
++	-6.27280731, -0.00056868, 0.00034846, 7.27223863, 0.99826261, 0.99908286, 0.49317970,\
++	-6.27280756, -0.00056858, 0.00034839, 7.27223898, 0.99826293, 0.99908303, 0.49317974,\
++	-6.27280781, -0.00056847, 0.00034833, 7.27223933, 0.99826324, 0.99908320, 0.49317978,\
++	-6.27280806, -0.00056837, 0.00034827, 7.27223969, 0.99826356, 0.99908337, 0.49317977,\
++	-6.27280830, -0.00056826, 0.00034820, 7.27224004, 0.99826388, 0.99908353, 0.49317984,\
++	-6.27280855, -0.00056816, 0.00034814, 7.27224040, 0.99826420, 0.99908370, 0.49317991,\
++	-6.27280880, -0.00056805, 0.00034807, 7.27224075, 0.99826452, 0.99908387, 0.49317993,\
++	-6.27280905, -0.00056795, 0.00034801, 7.27224110, 0.99826484, 0.99908404, 0.49317997,\
++	-6.27280930, -0.00056785, 0.00034795, 7.27224146, 0.99826516, 0.99908421, 0.49317999,\
++	-6.27280955, -0.00056774, 0.00034788, 7.27224181, 0.99826547, 0.99908438, 0.49318004,\
++	-6.27280980, -0.00056764, 0.00034782, 7.27224216, 0.99826579, 0.99908454, 0.49318009,\
++	-6.27281005, -0.00056753, 0.00034776, 7.27224252, 0.99826611, 0.99908471, 0.49318013,\
++	-6.27281030, -0.00056743, 0.00034769, 7.27224287, 0.99826643, 0.99908488, 0.49318014,\
++	-6.27281055, -0.00056733, 0.00034763, 7.27224322, 0.99826675, 0.99908505, 0.49318020,\
++	-6.27281080, -0.00056722, 0.00034756, 7.27224357, 0.99826706, 0.99908521, 0.49318023,\
++	-6.27281104, -0.00056712, 0.00034750, 7.27224393, 0.99826738, 0.99908538, 0.49318021,\
++	-6.27281129, -0.00056701, 0.00034744, 7.27224428, 0.99826770, 0.99908555, 0.49318033,\
++	-6.27281154, -0.00056691, 0.00034737, 7.27224463, 0.99826802, 0.99908572, 0.49318033,\
++	-6.27281179, -0.00056681, 0.00034731, 7.27224498, 0.99826833, 0.99908588, 0.49318036,\
++	-6.27281204, -0.00056670, 0.00034725, 7.27224534, 0.99826865, 0.99908605, 0.49318042,\
++	-6.27281229, -0.00056660, 0.00034718, 7.27224569, 0.99826897, 0.99908622, 0.49318046,\
++	-6.27281253, -0.00056649, 0.00034712, 7.27224604, 0.99826929, 0.99908639, 0.49318048,\
++	-6.27281278, -0.00056639, 0.00034706, 7.27224639, 0.99826960, 0.99908655, 0.49318053,\
++	-6.27281303, -0.00056629, 0.00034699, 7.27224674, 0.99826992, 0.99908672, 0.49318056,\
++	-6.27281328, -0.00056618, 0.00034693, 7.27224709, 0.99827024, 0.99908689, 0.49318059,\
++	-6.27281353, -0.00056608, 0.00034686, 7.27224745, 0.99827055, 0.99908705, 0.49318066,\
++	-6.27281377, -0.00056598, 0.00034680, 7.27224780, 0.99827087, 0.99908722, 0.49318067,\
++	-6.27281402, -0.00056587, 0.00034674, 7.27224815, 0.99827119, 0.99908739, 0.49318073,\
++	-6.27281427, -0.00056577, 0.00034667, 7.27224850, 0.99827150, 0.99908756, 0.49318072,\
++	-6.27281452, -0.00056567, 0.00034661, 7.27224885, 0.99827182, 0.99908772, 0.49318077,\
++	-6.27281476, -0.00056556, 0.00034655, 7.27224920, 0.99827213, 0.99908789, 0.49318079,\
++	-6.27281501, -0.00056546, 0.00034648, 7.27224955, 0.99827245, 0.99908806, 0.49318086,\
++	-6.27281526, -0.00056536, 0.00034642, 7.27224990, 0.99827276, 0.99908822, 0.49318086,\
++	-6.27281550, -0.00056525, 0.00034636, 7.27225025, 0.99827308, 0.99908839, 0.49318091,\
++	-6.27281575, -0.00056515, 0.00034629, 7.27225060, 0.99827340, 0.99908856, 0.49318093,\
++	-6.27281600, -0.00056505, 0.00034623, 7.27225095, 0.99827371, 0.99908872, 0.49318097,\
++	-6.27281624, -0.00056494, 0.00034617, 7.27225130, 0.99827403, 0.99908889, 0.49318102,\
++	-6.27281649, -0.00056484, 0.00034610, 7.27225165, 0.99827434, 0.99908905, 0.49318109,\
++	-6.27281674, -0.00056474, 0.00034604, 7.27225200, 0.99827466, 0.99908922, 0.49318111,\
++	-6.27281698, -0.00056463, 0.00034598, 7.27225235, 0.99827497, 0.99908939, 0.49318114,\
++	-6.27281723, -0.00056453, 0.00034592, 7.27225270, 0.99827529, 0.99908955, 0.49318118,\
++	-6.27281748, -0.00056443, 0.00034585, 7.27225305, 0.99827560, 0.99908972, 0.49318122,\
++	-6.27281772, -0.00056433, 0.00034579, 7.27225340, 0.99827591, 0.99908988, 0.49318124,\
++	-6.27281797, -0.00056422, 0.00034573, 7.27225375, 0.99827623, 0.99909005, 0.49318128,\
++	-6.27281822, -0.00056412, 0.00034566, 7.27225409, 0.99827654, 0.99909022, 0.49318131,\
++	-6.27281846, -0.00056402, 0.00034560, 7.27225444, 0.99827686, 0.99909038, 0.49318135,\
++	-6.27281871, -0.00056391, 0.00034554, 7.27225479, 0.99827717, 0.99909055, 0.49318140,\
++	-6.27281895, -0.00056381, 0.00034547, 7.27225514, 0.99827749, 0.99909071, 0.49318139,\
++	-6.27281920, -0.00056371, 0.00034541, 7.27225549, 0.99827780, 0.99909088, 0.49318148,\
++	-6.27281944, -0.00056361, 0.00034535, 7.27225584, 0.99827811, 0.99909105, 0.49318152,\
++	-6.27281969, -0.00056350, 0.00034528, 7.27225619, 0.99827843, 0.99909121, 0.49318156,\
++	-6.27281993, -0.00056340, 0.00034522, 7.27225653, 0.99827874, 0.99909138, 0.49318159,\
++	-6.27282018, -0.00056330, 0.00034516, 7.27225688, 0.99827905, 0.99909154, 0.49318163,\
++	-6.27282043, -0.00056320, 0.00034510, 7.27225723, 0.99827937, 0.99909171, 0.49318166,\
++	-6.27282067, -0.00056309, 0.00034503, 7.27225758, 0.99827968, 0.99909187, 0.49318168,\
++	-6.27282092, -0.00056299, 0.00034497, 7.27225792, 0.99827999, 0.99909204, 0.49318179,\
++	-6.27282116, -0.00056289, 0.00034491, 7.27225827, 0.99828031, 0.99909220, 0.49318171,\
++	-6.27282141, -0.00056279, 0.00034485, 7.27225862, 0.99828062, 0.99909237, 0.49318177,\
++	-6.27282165, -0.00056268, 0.00034478, 7.27225897, 0.99828093, 0.99909253, 0.49318188,\
++	-6.27282189, -0.00056258, 0.00034472, 7.27225931, 0.99828124, 0.99909270, 0.49318185,\
++	-6.27282214, -0.00056248, 0.00034466, 7.27225966, 0.99828156, 0.99909286, 0.49318190,\
++	-6.27282238, -0.00056238, 0.00034459, 7.27226001, 0.99828187, 0.99909303, 0.49318196,\
++	-6.27282263, -0.00056228, 0.00034453, 7.27226035, 0.99828218, 0.99909319, 0.49318197,\
++	-6.27282287, -0.00056217, 0.00034447, 7.27226070, 0.99828249, 0.99909336, 0.49318203,\
++	-6.27282312, -0.00056207, 0.00034441, 7.27226104, 0.99828281, 0.99909352, 0.49318204,\
++	-6.27282336, -0.00056197, 0.00034434, 7.27226139, 0.99828312, 0.99909369, 0.49318210,\
++	-6.27282360, -0.00056187, 0.00034428, 7.27226174, 0.99828343, 0.99909385, 0.49318213,\
++	-6.27282385, -0.00056177, 0.00034422, 7.27226208, 0.99828374, 0.99909402, 0.49318217,\
++	-6.27282409, -0.00056166, 0.00034416, 7.27226243, 0.99828405, 0.99909418, 0.49318219,\
++	-6.27282434, -0.00056156, 0.00034409, 7.27226277, 0.99828436, 0.99909434, 0.49318217,\
++	-6.27282458, -0.00056146, 0.00034403, 7.27226312, 0.99828467, 0.99909451, 0.49318229,\
++	-6.27282482, -0.00056136, 0.00034397, 7.27226347, 0.99828499, 0.99909467, 0.49318235,\
++	-6.27282507, -0.00056126, 0.00034391, 7.27226381, 0.99828530, 0.99909484, 0.49318234,\
++	-6.27282531, -0.00056115, 0.00034384, 7.27226416, 0.99828561, 0.99909500, 0.49318238,\
++	-6.27282555, -0.00056105, 0.00034378, 7.27226450, 0.99828592, 0.99909516, 0.49318244,\
++	-6.27282580, -0.00056095, 0.00034372, 7.27226485, 0.99828623, 0.99909533, 0.49318245,\
++	-6.27282604, -0.00056085, 0.00034366, 7.27226519, 0.99828654, 0.99909549, 0.49318251,\
++	-6.27282628, -0.00056075, 0.00034360, 7.27226554, 0.99828685, 0.99909566, 0.49318249,\
++	-6.27282653, -0.00056065, 0.00034353, 7.27226588, 0.99828716, 0.99909582, 0.49318260,\
++	-6.27282677, -0.00056055, 0.00034347, 7.27226622, 0.99828747, 0.99909598, 0.49318256,\
++	-6.27282701, -0.00056044, 0.00034341, 7.27226657, 0.99828778, 0.99909615, 0.49318268,\
++	-6.27282725, -0.00056034, 0.00034335, 7.27226691, 0.99828809, 0.99909631, 0.49318269,\
++	-6.27282750, -0.00056024, 0.00034328, 7.27226726, 0.99828840, 0.99909648, 0.49318273,\
++	-6.27282774, -0.00056014, 0.00034322, 7.27226760, 0.99828871, 0.99909664, 0.49318276,\
++	-6.27282798, -0.00056004, 0.00034316, 7.27226794, 0.99828902, 0.99909680, 0.49318278,\
++	-6.27282822, -0.00055994, 0.00034310, 7.27226829, 0.99828933, 0.99909697, 0.49318281,\
++	-6.27282847, -0.00055984, 0.00034304, 7.27226863, 0.99828964, 0.99909713, 0.49318285,\
++	-6.27282871, -0.00055973, 0.00034297, 7.27226898, 0.99828995, 0.99909729, 0.49318289,\
++	-6.27282895, -0.00055963, 0.00034291, 7.27226932, 0.99829026, 0.99909746, 0.49318294,\
++	-6.27282919, -0.00055953, 0.00034285, 7.27226966, 0.99829057, 0.99909762, 0.49318296,\
++	-6.27282944, -0.00055943, 0.00034279, 7.27227000, 0.99829088, 0.99909778, 0.49318295,\
++	-6.27282968, -0.00055933, 0.00034273, 7.27227035, 0.99829119, 0.99909794, 0.49318302,\
++	-6.27282992, -0.00055923, 0.00034266, 7.27227069, 0.99829150, 0.99909811, 0.49318310,\
++	-6.27283016, -0.00055913, 0.00034260, 7.27227103, 0.99829180, 0.99909827, 0.49318311,\
++	-6.27283040, -0.00055903, 0.00034254, 7.27227138, 0.99829211, 0.99909843, 0.49318314,\
++	-6.27283064, -0.00055893, 0.00034248, 7.27227172, 0.99829242, 0.99909860, 0.49318318,\
++	-6.27283089, -0.00055882, 0.00034242, 7.27227206, 0.99829273, 0.99909876, 0.49318320,\
++	-6.27283113, -0.00055872, 0.00034235, 7.27227240, 0.99829304, 0.99909892, 0.49318320,\
++	-6.27283137, -0.00055862, 0.00034229, 7.27227274, 0.99829335, 0.99909908, 0.49318327,\
++	-6.27283161, -0.00055852, 0.00034223, 7.27227309, 0.99829365, 0.99909925, 0.49318333,\
++	-6.27283185, -0.00055842, 0.00034217, 7.27227343, 0.99829396, 0.99909941, 0.49318333,\
++	-6.27283209, -0.00055832, 0.00034211, 7.27227377, 0.99829427, 0.99909957, 0.49318336,\
++	-6.27283233, -0.00055822, 0.00034204, 7.27227411, 0.99829458, 0.99909973, 0.49318343,\
++	-6.27283257, -0.00055812, 0.00034198, 7.27227445, 0.99829489, 0.99909990, 0.49318344,\
++	-6.27283281, -0.00055802, 0.00034192, 7.27227479, 0.99829519, 0.99910006, 0.49318351,\
++	-6.27283305, -0.00055792, 0.00034186, 7.27227514, 0.99829550, 0.99910022, 0.49318353,\
++	-6.27283329, -0.00055782, 0.00034180, 7.27227548, 0.99829581, 0.99910038, 0.49318358,\
++	-6.27283353, -0.00055772, 0.00034174, 7.27227582, 0.99829611, 0.99910055, 0.49318362,\
++	-6.27283378, -0.00055762, 0.00034168, 7.27227616, 0.99829642, 0.99910071, 0.49318360,\
++	-6.27283402, -0.00055752, 0.00034161, 7.27227650, 0.99829673, 0.99910087, 0.49318367,\
++	-6.27283426, -0.00055742, 0.00034155, 7.27227684, 0.99829704, 0.99910103, 0.49318371,\
++	-6.27283450, -0.00055732, 0.00034149, 7.27227718, 0.99829734, 0.99910119, 0.49318374,\
++	-6.27283474, -0.00055722, 0.00034143, 7.27227752, 0.99829765, 0.99910136, 0.49318380,\
++	-6.27283498, -0.00055712, 0.00034137, 7.27227786, 0.99829796, 0.99910152, 0.49318376,\
++	-6.27283522, -0.00055701, 0.00034131, 7.27227820, 0.99829826, 0.99910168, 0.49318386,\
++	-6.27283546, -0.00055691, 0.00034124, 7.27227854, 0.99829857, 0.99910184, 0.49318389,\
++	-6.27283570, -0.00055681, 0.00034118, 7.27227888, 0.99829887, 0.99910200, 0.49318390,\
++	-6.27283593, -0.00055671, 0.00034112, 7.27227922, 0.99829918, 0.99910216, 0.49318396,\
++	-6.27283617, -0.00055661, 0.00034106, 7.27227956, 0.99829949, 0.99910233, 0.49318401,\
++	-6.27283641, -0.00055651, 0.00034100, 7.27227990, 0.99829979, 0.99910249, 0.49318410,\
++	-6.27283665, -0.00055641, 0.00034094, 7.27228024, 0.99830010, 0.99910265, 0.49318407,\
++	-6.27283689, -0.00055631, 0.00034088, 7.27228058, 0.99830040, 0.99910281, 0.49318407,\
++	-6.27283713, -0.00055621, 0.00034081, 7.27228092, 0.99830071, 0.99910297, 0.49318414,\
++	-6.27283737, -0.00055611, 0.00034075, 7.27228126, 0.99830101, 0.99910313, 0.49318415,\
++	-6.27283761, -0.00055601, 0.00034069, 7.27228159, 0.99830132, 0.99910329, 0.49318423,\
++	-6.27283785, -0.00055591, 0.00034063, 7.27228193, 0.99830163, 0.99910345, 0.49318423,\
++	-6.27283809, -0.00055581, 0.00034057, 7.27228227, 0.99830193, 0.99910362, 0.49318427,\
++	-6.27283833, -0.00055571, 0.00034051, 7.27228261, 0.99830224, 0.99910378, 0.49318428,\
++	-6.27283856, -0.00055562, 0.00034045, 7.27228295, 0.99830254, 0.99910394, 0.49318433,\
++	-6.27283880, -0.00055552, 0.00034039, 7.27228329, 0.99830285, 0.99910410, 0.49318443,\
++	-6.27283904, -0.00055542, 0.00034033, 7.27228363, 0.99830315, 0.99910426, 0.49318443,\
++	-6.27283928, -0.00055532, 0.00034026, 7.27228396, 0.99830345, 0.99910442, 0.49318449,\
++	-6.27283952, -0.00055522, 0.00034020, 7.27228430, 0.99830376, 0.99910458, 0.49318449,\
++	-6.27283976, -0.00055512, 0.00034014, 7.27228464, 0.99830406, 0.99910474, 0.49318454,\
++	-6.27283999, -0.00055502, 0.00034008, 7.27228498, 0.99830437, 0.99910490, 0.49318457,\
++	-6.27284023, -0.00055492, 0.00034002, 7.27228531, 0.99830467, 0.99910506, 0.49318459,\
++	-6.27284047, -0.00055482, 0.00033996, 7.27228565, 0.99830498, 0.99910522, 0.49318460,\
++	-6.27284071, -0.00055472, 0.00033990, 7.27228599, 0.99830528, 0.99910538, 0.49318465,\
++	-6.27284095, -0.00055462, 0.00033984, 7.27228633, 0.99830558, 0.99910554, 0.49318472,\
++	-6.27284118, -0.00055452, 0.00033978, 7.27228666, 0.99830589, 0.99910570, 0.49318477,\
++	-6.27284142, -0.00055442, 0.00033972, 7.27228700, 0.99830619, 0.99910586, 0.49318479,\
++	-6.27284166, -0.00055432, 0.00033965, 7.27228734, 0.99830649, 0.99910602, 0.49318483,\
++	-6.27284190, -0.00055422, 0.00033959, 7.27228767, 0.99830680, 0.99910618, 0.49318487,\
++	-6.27284213, -0.00055412, 0.00033953, 7.27228801, 0.99830710, 0.99910634, 0.49318489,\
++	-6.27284237, -0.00055402, 0.00033947, 7.27228835, 0.99830740, 0.99910650, 0.49318490,\
++	-6.27284261, -0.00055393, 0.00033941, 7.27228868, 0.99830771, 0.99910666, 0.49318496,\
++	-6.27284285, -0.00055383, 0.00033935, 7.27228902, 0.99830801, 0.99910682, 0.49318499,\
++	-6.27284308, -0.00055373, 0.00033929, 7.27228936, 0.99830831, 0.99910698, 0.49318499,\
++	-6.27284332, -0.00055363, 0.00033923, 7.27228969, 0.99830861, 0.99910714, 0.49318509,\
++	-6.27284356, -0.00055353, 0.00033917, 7.27229003, 0.99830892, 0.99910730, 0.49318511,\
++	-6.27284379, -0.00055343, 0.00033911, 7.27229036, 0.99830922, 0.99910746, 0.49318515,\
++	-6.27284403, -0.00055333, 0.00033905, 7.27229070, 0.99830952, 0.99910762, 0.49318516,\
++	-6.27284427, -0.00055323, 0.00033899, 7.27229103, 0.99830982, 0.99910778, 0.49318524,\
++	-6.27284450, -0.00055313, 0.00033893, 7.27229137, 0.99831013, 0.99910794, 0.49318524,\
++	-6.27284474, -0.00055303, 0.00033887, 7.27229170, 0.99831043, 0.99910810, 0.49318528,\
++	-6.27284498, -0.00055294, 0.00033880, 7.27229204, 0.99831073, 0.99910826, 0.49318529,\
++	-6.27284521, -0.00055284, 0.00033874, 7.27229237, 0.99831103, 0.99910842, 0.49318533,\
++	-6.27284545, -0.00055274, 0.00033868, 7.27229271, 0.99831133, 0.99910858, 0.49318539,\
++	-6.27284568, -0.00055264, 0.00033862, 7.27229304, 0.99831164, 0.99910874, 0.49318542,\
++	-6.27284592, -0.00055254, 0.00033856, 7.27229338, 0.99831194, 0.99910890, 0.49318543,\
++	-6.27284616, -0.00055244, 0.00033850, 7.27229371, 0.99831224, 0.99910906, 0.49318547,\
++	-6.27284639, -0.00055234, 0.00033844, 7.27229405, 0.99831254, 0.99910921, 0.49318555,\
++	-6.27284663, -0.00055225, 0.00033838, 7.27229438, 0.99831284, 0.99910937, 0.49318557,\
++	-6.27284686, -0.00055215, 0.00033832, 7.27229472, 0.99831314, 0.99910953, 0.49318561,\
++	-6.27284710, -0.00055205, 0.00033826, 7.27229505, 0.99831344, 0.99910969, 0.49318565,\
++	-6.27284733, -0.00055195, 0.00033820, 7.27229538, 0.99831374, 0.99910985, 0.49318570,\
++	-6.27284757, -0.00055185, 0.00033814, 7.27229572, 0.99831404, 0.99911001, 0.49318569,\
++	-6.27284781, -0.00055175, 0.00033808, 7.27229605, 0.99831435, 0.99911017, 0.49318574,\
++	-6.27284804, -0.00055165, 0.00033802, 7.27229639, 0.99831465, 0.99911033, 0.49318575,\
++	-6.27284828, -0.00055156, 0.00033796, 7.27229672, 0.99831495, 0.99911048, 0.49318581,\
++	-6.27284851, -0.00055146, 0.00033790, 7.27229705, 0.99831525, 0.99911064, 0.49318582,\
++	-6.27284875, -0.00055136, 0.00033784, 7.27229739, 0.99831555, 0.99911080, 0.49318586,\
++	-6.27284898, -0.00055126, 0.00033778, 7.27229772, 0.99831585, 0.99911096, 0.49318588,\
++	-6.27284922, -0.00055116, 0.00033772, 7.27229805, 0.99831615, 0.99911112, 0.49318595,\
++	-6.27284945, -0.00055107, 0.00033766, 7.27229838, 0.99831645, 0.99911128, 0.49318599,\
++	-6.27284968, -0.00055097, 0.00033760, 7.27229872, 0.99831675, 0.99911143, 0.49318604,\
++	-6.27284992, -0.00055087, 0.00033754, 7.27229905, 0.99831705, 0.99911159, 0.49318604,\
++	-6.27285015, -0.00055077, 0.00033748, 7.27229938, 0.99831735, 0.99911175, 0.49318612,\
++	-6.27285039, -0.00055067, 0.00033742, 7.27229971, 0.99831765, 0.99911191, 0.49318613,\
++	-6.27285062, -0.00055058, 0.00033736, 7.27230005, 0.99831794, 0.99911207, 0.49318622,\
++	-6.27285086, -0.00055048, 0.00033730, 7.27230038, 0.99831824, 0.99911223, 0.49318623,\
++	-6.27285109, -0.00055038, 0.00033724, 7.27230071, 0.99831854, 0.99911238, 0.49318626,\
++	-6.27285133, -0.00055028, 0.00033718, 7.27230104, 0.99831884, 0.99911254, 0.49318626,\
++	-6.27285156, -0.00055018, 0.00033712, 7.27230138, 0.99831914, 0.99911270, 0.49318628,\
++	-6.27285179, -0.00055009, 0.00033706, 7.27230171, 0.99831944, 0.99911286, 0.49318633,\
++	-6.27285203, -0.00054999, 0.00033700, 7.27230204, 0.99831974, 0.99911301, 0.49318637,\
++	-6.27285226, -0.00054989, 0.00033694, 7.27230237, 0.99832004, 0.99911317, 0.49318637,\
++	-6.27285249, -0.00054979, 0.00033688, 7.27230270, 0.99832034, 0.99911333, 0.49318644,\
++	-6.27285273, -0.00054970, 0.00033682, 7.27230303, 0.99832063, 0.99911349, 0.49318645,\
++	-6.27285296, -0.00054960, 0.00033676, 7.27230336, 0.99832093, 0.99911364, 0.49318646,\
++	-6.27285319, -0.00054950, 0.00033670, 7.27230369, 0.99832123, 0.99911380, 0.49318651,\
++	-6.27285343, -0.00054940, 0.00033664, 7.27230403, 0.99832153, 0.99911396, 0.49318650,\
++	-6.27285366, -0.00054931, 0.00033658, 7.27230436, 0.99832183, 0.99911412, 0.49318659,\
++	-6.27285389, -0.00054921, 0.00033652, 7.27230469, 0.99832212, 0.99911427, 0.49318666,\
++	-6.27285413, -0.00054911, 0.00033646, 7.27230502, 0.99832242, 0.99911443, 0.49318665,\
++	-6.27285436, -0.00054901, 0.00033640, 7.27230535, 0.99832272, 0.99911459, 0.49318670,\
++	-6.27285459, -0.00054892, 0.00033634, 7.27230568, 0.99832302, 0.99911474, 0.49318673,\
++	-6.27285483, -0.00054882, 0.00033628, 7.27230601, 0.99832332, 0.99911490, 0.49318677,\
++	-6.27285506, -0.00054872, 0.00033622, 7.27230634, 0.99832361, 0.99911506, 0.49318685,\
++	-6.27285529, -0.00054862, 0.00033616, 7.27230667, 0.99832391, 0.99911522, 0.49318683,\
++	-6.27285552, -0.00054853, 0.00033610, 7.27230700, 0.99832421, 0.99911537, 0.49318692,\
++	-6.27285576, -0.00054843, 0.00033604, 7.27230733, 0.99832450, 0.99911553, 0.49318690,\
++	-6.27285599, -0.00054833, 0.00033598, 7.27230766, 0.99832480, 0.99911569, 0.49318694,\
++	-6.27285622, -0.00054824, 0.00033592, 7.27230799, 0.99832510, 0.99911584, 0.49318700,\
++	-6.27285645, -0.00054814, 0.00033586, 7.27230832, 0.99832539, 0.99911600, 0.49318701,\
++	-6.27285669, -0.00054804, 0.00033580, 7.27230865, 0.99832569, 0.99911616, 0.49318705,\
++	-6.27285692, -0.00054794, 0.00033574, 7.27230897, 0.99832599, 0.99911631, 0.49318711,\
++	-6.27285715, -0.00054785, 0.00033568, 7.27230930, 0.99832628, 0.99911647, 0.49318708,\
++	-6.27285738, -0.00054775, 0.00033563, 7.27230963, 0.99832658, 0.99911662, 0.49318719,\
++	-6.27285761, -0.00054765, 0.00033557, 7.27230996, 0.99832688, 0.99911678, 0.49318717,\
++	-6.27285785, -0.00054756, 0.00033551, 7.27231029, 0.99832717, 0.99911694, 0.49318724,\
++	-6.27285808, -0.00054746, 0.00033545, 7.27231062, 0.99832747, 0.99911709, 0.49318723,\
++	-6.27285831, -0.00054736, 0.00033539, 7.27231095, 0.99832776, 0.99911725, 0.49318729,\
++	-6.27285854, -0.00054727, 0.00033533, 7.27231127, 0.99832806, 0.99911741, 0.49318737,\
++	-6.27285877, -0.00054717, 0.00033527, 7.27231160, 0.99832836, 0.99911756, 0.49318736,\
++	-6.27285900, -0.00054707, 0.00033521, 7.27231193, 0.99832865, 0.99911772, 0.49318737,\
++	-6.27285923, -0.00054698, 0.00033515, 7.27231226, 0.99832895, 0.99911787, 0.49318744,\
++	-6.27285947, -0.00054688, 0.00033509, 7.27231259, 0.99832924, 0.99911803, 0.49318747,\
++	-6.27285970, -0.00054678, 0.00033503, 7.27231291, 0.99832954, 0.99911819, 0.49318750,\
++	-6.27285993, -0.00054669, 0.00033497, 7.27231324, 0.99832983, 0.99911834, 0.49318752,\
++	-6.27286016, -0.00054659, 0.00033491, 7.27231357, 0.99833013, 0.99911850, 0.49318756,\
++	-6.27286039, -0.00054649, 0.00033485, 7.27231390, 0.99833042, 0.99911865, 0.49318760,\
++	-6.27286062, -0.00054640, 0.00033480, 7.27231422, 0.99833072, 0.99911881, 0.49318765,\
++	-6.27286085, -0.00054630, 0.00033474, 7.27231455, 0.99833101, 0.99911896, 0.49318766,\
++	-6.27286108, -0.00054620, 0.00033468, 7.27231488, 0.99833131, 0.99911912, 0.49318767,\
++	-6.27286131, -0.00054611, 0.00033462, 7.27231521, 0.99833160, 0.99911927, 0.49318769,\
++	-6.27286154, -0.00054601, 0.00033456, 7.27231553, 0.99833190, 0.99911943, 0.49318777,\
++	-6.27286177, -0.00054591, 0.00033450, 7.27231586, 0.99833219, 0.99911959, 0.49318778,\
++	-6.27286200, -0.00054582, 0.00033444, 7.27231619, 0.99833248, 0.99911974, 0.49318783,\
++	-6.27286223, -0.00054572, 0.00033438, 7.27231651, 0.99833278, 0.99911990, 0.49318785,\
++	-6.27286246, -0.00054563, 0.00033432, 7.27231684, 0.99833307, 0.99912005, 0.49318790,\
++	-6.27286269, -0.00054553, 0.00033426, 7.27231716, 0.99833337, 0.99912021, 0.49318796,\
++	-6.27286292, -0.00054543, 0.00033420, 7.27231749, 0.99833366, 0.99912036, 0.49318798,\
++	-6.27286315, -0.00054534, 0.00033415, 7.27231782, 0.99833395, 0.99912052, 0.49318802,\
++	-6.27286338, -0.00054524, 0.00033409, 7.27231814, 0.99833425, 0.99912067, 0.49318801,\
++	-6.27286361, -0.00054515, 0.00033403, 7.27231847, 0.99833454, 0.99912083, 0.49318810,\
++	-6.27286384, -0.00054505, 0.00033397, 7.27231879, 0.99833483, 0.99912098, 0.49318815,\
++	-6.27286407, -0.00054495, 0.00033391, 7.27231912, 0.99833513, 0.99912114, 0.49318815,\
++	-6.27286430, -0.00054486, 0.00033385, 7.27231944, 0.99833542, 0.99912129, 0.49318821,\
++	-6.27286453, -0.00054476, 0.00033379, 7.27231977, 0.99833571, 0.99912145, 0.49318820,\
++	-6.27286476, -0.00054467, 0.00033373, 7.27232010, 0.99833601, 0.99912160, 0.49318828,\
++	-6.27286499, -0.00054457, 0.00033368, 7.27232042, 0.99833630, 0.99912175, 0.49318827,\
++	-6.27286522, -0.00054447, 0.00033362, 7.27232075, 0.99833659, 0.99912191, 0.49318830,\
++	-6.27286545, -0.00054438, 0.00033356, 7.27232107, 0.99833689, 0.99912206, 0.49318834,\
++	-6.27286568, -0.00054428, 0.00033350, 7.27232139, 0.99833718, 0.99912222, 0.49318840,\
++	-6.27286591, -0.00054419, 0.00033344, 7.27232172, 0.99833747, 0.99912237, 0.49318849,\
++	-6.27286614, -0.00054409, 0.00033338, 7.27232204, 0.99833776, 0.99912253, 0.49318845,\
++	-6.27286636, -0.00054400, 0.00033332, 7.27232237, 0.99833805, 0.99912268, 0.49318852,\
++	-6.27286659, -0.00054390, 0.00033326, 7.27232269, 0.99833835, 0.99912283, 0.49318851,\
++	-6.27286682, -0.00054380, 0.00033321, 7.27232302, 0.99833864, 0.99912299, 0.49318855,\
++	-6.27286705, -0.00054371, 0.00033315, 7.27232334, 0.99833893, 0.99912314, 0.49318857,\
++	-6.27286728, -0.00054361, 0.00033309, 7.27232366, 0.99833922, 0.99912330, 0.49318863,\
++	-6.27286751, -0.00054352, 0.00033303, 7.27232399, 0.99833951, 0.99912345, 0.49318865,\
++	-6.27286774, -0.00054342, 0.00033297, 7.27232431, 0.99833981, 0.99912360, 0.49318871,\
++	-6.27286796, -0.00054333, 0.00033291, 7.27232464, 0.99834010, 0.99912376, 0.49318871,\
++	-6.27286819, -0.00054323, 0.00033286, 7.27232496, 0.99834039, 0.99912391, 0.49318882,\
++	-6.27286842, -0.00054314, 0.00033280, 7.27232528, 0.99834068, 0.99912407, 0.49318885,\
++	-6.27286865, -0.00054304, 0.00033274, 7.27232561, 0.99834097, 0.99912422, 0.49318882,\
++	-6.27286888, -0.00054295, 0.00033268, 7.27232593, 0.99834126, 0.99912437, 0.49318888,\
++	-6.27286910, -0.00054285, 0.00033262, 7.27232625, 0.99834155, 0.99912453, 0.49318890,\
++	-6.27286933, -0.00054276, 0.00033256, 7.27232657, 0.99834184, 0.99912468, 0.49318892,\
++	-6.27286956, -0.00054266, 0.00033250, 7.27232690, 0.99834214, 0.99912483, 0.49318896,\
++	-6.27286979, -0.00054257, 0.00033245, 7.27232722, 0.99834243, 0.99912499, 0.49318900,\
++	-6.27287001, -0.00054247, 0.00033239, 7.27232754, 0.99834272, 0.99912514, 0.49318899,\
++	-6.27287024, -0.00054238, 0.00033233, 7.27232787, 0.99834301, 0.99912529, 0.49318908,\
++	-6.27287047, -0.00054228, 0.00033227, 7.27232819, 0.99834330, 0.99912545, 0.49318910,\
++	-6.27287070, -0.00054219, 0.00033221, 7.27232851, 0.99834359, 0.99912560, 0.49318913,\
++	-6.27287092, -0.00054209, 0.00033216, 7.27232883, 0.99834388, 0.99912575, 0.49318913,\
++	-6.27287115, -0.00054200, 0.00033210, 7.27232915, 0.99834417, 0.99912591, 0.49318919,\
++	-6.27287138, -0.00054190, 0.00033204, 7.27232948, 0.99834446, 0.99912606, 0.49318918,\
++	-6.27287160, -0.00054181, 0.00033198, 7.27232980, 0.99834475, 0.99912621, 0.49318924,\
++	-6.27287183, -0.00054171, 0.00033192, 7.27233012, 0.99834504, 0.99912637, 0.49318928,\
++	-6.27287206, -0.00054162, 0.00033186, 7.27233044, 0.99834533, 0.99912652, 0.49318937,\
++	-6.27287228, -0.00054152, 0.00033181, 7.27233076, 0.99834562, 0.99912667, 0.49318939,\
++	-6.27287251, -0.00054143, 0.00033175, 7.27233108, 0.99834591, 0.99912682, 0.49318942,\
++	-6.27287274, -0.00054133, 0.00033169, 7.27233140, 0.99834620, 0.99912698, 0.49318944,\
++	-6.27287296, -0.00054124, 0.00033163, 7.27233173, 0.99834649, 0.99912713, 0.49318945,\
++	-6.27287319, -0.00054114, 0.00033157, 7.27233205, 0.99834677, 0.99912728, 0.49318948,\
++	-6.27287342, -0.00054105, 0.00033152, 7.27233237, 0.99834706, 0.99912744, 0.49318948,\
++	-6.27287364, -0.00054095, 0.00033146, 7.27233269, 0.99834735, 0.99912759, 0.49318960,\
++	-6.27287387, -0.00054086, 0.00033140, 7.27233301, 0.99834764, 0.99912774, 0.49318965,\
++	-6.27287409, -0.00054076, 0.00033134, 7.27233333, 0.99834793, 0.99912789, 0.49318963,\
++	-6.27287432, -0.00054067, 0.00033128, 7.27233365, 0.99834822, 0.99912805, 0.49318967,\
++	-6.27287455, -0.00054058, 0.00033123, 7.27233397, 0.99834851, 0.99912820, 0.49318974,\
++	-6.27287477, -0.00054048, 0.00033117, 7.27233429, 0.99834880, 0.99912835, 0.49318975,\
++	-6.27287500, -0.00054039, 0.00033111, 7.27233461, 0.99834908, 0.99912850, 0.49318982,\
++	-6.27287522, -0.00054029, 0.00033105, 7.27233493, 0.99834937, 0.99912865, 0.49318976,\
++	-6.27287545, -0.00054020, 0.00033100, 7.27233525, 0.99834966, 0.99912881, 0.49318982,\
++	-6.27287568, -0.00054010, 0.00033094, 7.27233557, 0.99834995, 0.99912896, 0.49318990,\
++	-6.27287590, -0.00054001, 0.00033088, 7.27233589, 0.99835024, 0.99912911, 0.49318991,\
++	-6.27287613, -0.00053992, 0.00033082, 7.27233621, 0.99835052, 0.99912926, 0.49318988,\
++	-6.27287635, -0.00053982, 0.00033076, 7.27233653, 0.99835081, 0.99912941, 0.49319001,\
++	-6.27287658, -0.00053973, 0.00033071, 7.27233685, 0.99835110, 0.99912957, 0.49318998,\
++	-6.27287680, -0.00053963, 0.00033065, 7.27233717, 0.99835139, 0.99912972, 0.49319007,\
++	-6.27287703, -0.00053954, 0.00033059, 7.27233749, 0.99835168, 0.99912987, 0.49319009,\
++	-6.27287725, -0.00053945, 0.00033053, 7.27233781, 0.99835196, 0.99913002, 0.49319013,\
++	-6.27287748, -0.00053935, 0.00033048, 7.27233812, 0.99835225, 0.99913017, 0.49319012,\
++	-6.27287770, -0.00053926, 0.00033042, 7.27233844, 0.99835254, 0.99913032, 0.49319022,\
++	-6.27287793, -0.00053916, 0.00033036, 7.27233876, 0.99835282, 0.99913048, 0.49319019,\
++	-6.27287815, -0.00053907, 0.00033030, 7.27233908, 0.99835311, 0.99913063, 0.49319021,\
++	-6.27287838, -0.00053898, 0.00033025, 7.27233940, 0.99835340, 0.99913078, 0.49319029,\
++	-6.27287860, -0.00053888, 0.00033019, 7.27233972, 0.99835368, 0.99913093, 0.49319029,\
++	-6.27287882, -0.00053879, 0.00033013, 7.27234004, 0.99835397, 0.99913108, 0.49319033,\
++	-6.27287905, -0.00053869, 0.00033007, 7.27234035, 0.99835426, 0.99913123, 0.49319038,\
++	-6.27287927, -0.00053860, 0.00033002, 7.27234067, 0.99835454, 0.99913138, 0.49319044,\
++	-6.27287950, -0.00053851, 0.00032996, 7.27234099, 0.99835483, 0.99913153, 0.49319044,\
++	-6.27287972, -0.00053841, 0.00032990, 7.27234131, 0.99835512, 0.99913169, 0.49319052,\
++	-6.27287994, -0.00053832, 0.00032984, 7.27234162, 0.99835540, 0.99913184, 0.49319053,\
++	-6.27288017, -0.00053823, 0.00032979, 7.27234194, 0.99835569, 0.99913199, 0.49319055,\
++	-6.27288039, -0.00053813, 0.00032973, 7.27234226, 0.99835598, 0.99913214, 0.49319059,\
++	-6.27288062, -0.00053804, 0.00032967, 7.27234258, 0.99835626, 0.99913229, 0.49319064,\
++	-6.27288084, -0.00053795, 0.00032961, 7.27234289, 0.99835655, 0.99913244, 0.49319065,\
++	-6.27288106, -0.00053785, 0.00032956, 7.27234321, 0.99835683, 0.99913259, 0.49319063,\
++	-6.27288129, -0.00053776, 0.00032950, 7.27234353, 0.99835712, 0.99913274, 0.49319073,\
++	-6.27288151, -0.00053767, 0.00032944, 7.27234385, 0.99835740, 0.99913289, 0.49319071,\
++	-6.27288173, -0.00053757, 0.00032938, 7.27234416, 0.99835769, 0.99913304, 0.49319080,\
++	-6.27288196, -0.00053748, 0.00032933, 7.27234448, 0.99835797, 0.99913319, 0.49319079,\
++	-6.27288218, -0.00053739, 0.00032927, 7.27234480, 0.99835826, 0.99913334, 0.49319084,\
++	-6.27288240, -0.00053729, 0.00032921, 7.27234511, 0.99835854, 0.99913349, 0.49319094,\
++	-6.27288263, -0.00053720, 0.00032916, 7.27234543, 0.99835883, 0.99913365, 0.49319090,\
++	-6.27288285, -0.00053711, 0.00032910, 7.27234574, 0.99835911, 0.99913380, 0.49319093,\
++	-6.27288307, -0.00053701, 0.00032904, 7.27234606, 0.99835940, 0.99913395, 0.49319095,\
++	-6.27288330, -0.00053692, 0.00032898, 7.27234638, 0.99835968, 0.99913410, 0.49319102,\
++	-6.27288352, -0.00053683, 0.00032893, 7.27234669, 0.99835997, 0.99913425, 0.49319110,\
++	-6.27288374, -0.00053673, 0.00032887, 7.27234701, 0.99836025, 0.99913440, 0.49319107,\
++	-6.27288396, -0.00053664, 0.00032881, 7.27234732, 0.99836054, 0.99913455, 0.49319115,\
++	-6.27288419, -0.00053655, 0.00032876, 7.27234764, 0.99836082, 0.99913470, 0.49319113,\
++	-6.27288441, -0.00053645, 0.00032870, 7.27234795, 0.99836111, 0.99913485, 0.49319119,\
++	-6.27288463, -0.00053636, 0.00032864, 7.27234827, 0.99836139, 0.99913500, 0.49319119,\
++	-6.27288485, -0.00053627, 0.00032859, 7.27234859, 0.99836167, 0.99913515, 0.49319124,\
++	-6.27288508, -0.00053618, 0.00032853, 7.27234890, 0.99836196, 0.99913530, 0.49319131,\
++	-6.27288530, -0.00053608, 0.00032847, 7.27234922, 0.99836224, 0.99913545, 0.49319132,\
++	-6.27288552, -0.00053599, 0.00032841, 7.27234953, 0.99836253, 0.99913560, 0.49319134,\
++	-6.27288574, -0.00053590, 0.00032836, 7.27234985, 0.99836281, 0.99913575, 0.49319141,\
++	-6.27288596, -0.00053580, 0.00032830, 7.27235016, 0.99836309, 0.99913590, 0.49319142,\
++	-6.27288619, -0.00053571, 0.00032824, 7.27235047, 0.99836338, 0.99913604, 0.49319138,\
++	-6.27288641, -0.00053562, 0.00032819, 7.27235079, 0.99836366, 0.99913619, 0.49319145,\
++	-6.27288663, -0.00053553, 0.00032813, 7.27235110, 0.99836394, 0.99913634, 0.49319149,\
++	-6.27288685, -0.00053543, 0.00032807, 7.27235142, 0.99836423, 0.99913649, 0.49319155,\
++	-6.27288707, -0.00053534, 0.00032802, 7.27235173, 0.99836451, 0.99913664, 0.49319156,\
++	-6.27288729, -0.00053525, 0.00032796, 7.27235205, 0.99836479, 0.99913679, 0.49319156,\
++	-6.27288752, -0.00053516, 0.00032790, 7.27235236, 0.99836507, 0.99913694, 0.49319162,\
++	-6.27288774, -0.00053506, 0.00032785, 7.27235267, 0.99836536, 0.99913709, 0.49319169,\
++	-6.27288796, -0.00053497, 0.00032779, 7.27235299, 0.99836564, 0.99913724, 0.49319169,\
++	-6.27288818, -0.00053488, 0.00032773, 7.27235330, 0.99836592, 0.99913739, 0.49319176,\
++	-6.27288840, -0.00053479, 0.00032768, 7.27235361, 0.99836620, 0.99913754, 0.49319177,\
++	-6.27288862, -0.00053469, 0.00032762, 7.27235393, 0.99836649, 0.99913769, 0.49319182,\
++	-6.27288884, -0.00053460, 0.00032756, 7.27235424, 0.99836677, 0.99913784, 0.49319183,\
++	-6.27288906, -0.00053451, 0.00032751, 7.27235455, 0.99836705, 0.99913798, 0.49319186,\
++	-6.27288928, -0.00053442, 0.00032745, 7.27235487, 0.99836733, 0.99913813, 0.49319195,\
++	-6.27288950, -0.00053432, 0.00032739, 7.27235518, 0.99836762, 0.99913828, 0.49319191,\
++	-6.27288973, -0.00053423, 0.00032734, 7.27235549, 0.99836790, 0.99913843, 0.49319195,\
++	-6.27288995, -0.00053414, 0.00032728, 7.27235581, 0.99836818, 0.99913858, 0.49319198,\
++	-6.27289017, -0.00053405, 0.00032722, 7.27235612, 0.99836846, 0.99913873, 0.49319204,\
++	-6.27289039, -0.00053396, 0.00032717, 7.27235643, 0.99836874, 0.99913888, 0.49319208,\
++	-6.27289061, -0.00053386, 0.00032711, 7.27235674, 0.99836902, 0.99913903, 0.49319213,\
++	-6.27289083, -0.00053377, 0.00032705, 7.27235706, 0.99836931, 0.99913917, 0.49319212,\
++	-6.27289105, -0.00053368, 0.00032700, 7.27235737, 0.99836959, 0.99913932, 0.49319218,\
++	-6.27289127, -0.00053359, 0.00032694, 7.27235768, 0.99836987, 0.99913947, 0.49319222,\
++	-6.27289149, -0.00053350, 0.00032689, 7.27235799, 0.99837015, 0.99913962, 0.49319223,\
++	-6.27289171, -0.00053340, 0.00032683, 7.27235830, 0.99837043, 0.99913977, 0.49319229,\
++	-6.27289193, -0.00053331, 0.00032677, 7.27235862, 0.99837071, 0.99913992, 0.49319228,\
++	-6.27289215, -0.00053322, 0.00032672, 7.27235893, 0.99837099, 0.99914006, 0.49319230,\
++	-6.27289237, -0.00053313, 0.00032666, 7.27235924, 0.99837127, 0.99914021, 0.49319236,\
++	-6.27289259, -0.00053304, 0.00032660, 7.27235955, 0.99837155, 0.99914036, 0.49319240,\
++	-6.27289281, -0.00053294, 0.00032655, 7.27235986, 0.99837183, 0.99914051, 0.49319244,\
++	-6.27289303, -0.00053285, 0.00032649, 7.27236017, 0.99837211, 0.99914066, 0.49319243,\
++	-6.27289325, -0.00053276, 0.00032643, 7.27236048, 0.99837239, 0.99914080, 0.49319249,\
++	-6.27289346, -0.00053267, 0.00032638, 7.27236080, 0.99837267, 0.99914095, 0.49319257,\
++	-6.27289368, -0.00053258, 0.00032632, 7.27236111, 0.99837295, 0.99914110, 0.49319253,\
++	-6.27289390, -0.00053249, 0.00032627, 7.27236142, 0.99837323, 0.99914125, 0.49319261,\
++	-6.27289412, -0.00053239, 0.00032621, 7.27236173, 0.99837351, 0.99914140, 0.49319263,\
++	-6.27289434, -0.00053230, 0.00032615, 7.27236204, 0.99837379, 0.99914154, 0.49319267,\
++	-6.27289456, -0.00053221, 0.00032610, 7.27236235, 0.99837407, 0.99914169, 0.49319271,\
++	-6.27289478, -0.00053212, 0.00032604, 7.27236266, 0.99837435, 0.99914184, 0.49319271,\
++	-6.27289500, -0.00053203, 0.00032599, 7.27236297, 0.99837463, 0.99914199, 0.49319270,\
++	-6.27289522, -0.00053194, 0.00032593, 7.27236328, 0.99837491, 0.99914213, 0.49319278,\
++	-6.27289544, -0.00053185, 0.00032587, 7.27236359, 0.99837519, 0.99914228, 0.49319281,\
++	-6.27289565, -0.00053175, 0.00032582, 7.27236390, 0.99837547, 0.99914243, 0.49319284,\
++	-6.27289587, -0.00053166, 0.00032576, 7.27236421, 0.99837575, 0.99914258, 0.49319286,\
++	-6.27289609, -0.00053157, 0.00032571, 7.27236452, 0.99837603, 0.99914272, 0.49319287,\
++	-6.27289631, -0.00053148, 0.00032565, 7.27236483, 0.99837631, 0.99914287, 0.49319297,\
++	-6.27289653, -0.00053139, 0.00032559, 7.27236514, 0.99837659, 0.99914302, 0.49319300,\
++	-6.27289675, -0.00053130, 0.00032554, 7.27236545, 0.99837687, 0.99914316, 0.49319302,\
++	-6.27289696, -0.00053121, 0.00032548, 7.27236576, 0.99837714, 0.99914331, 0.49319305,\
++	-6.27289718, -0.00053112, 0.00032543, 7.27236607, 0.99837742, 0.99914346, 0.49319306,\
++	-6.27289740, -0.00053102, 0.00032537, 7.27236638, 0.99837770, 0.99914361, 0.49319318,\
++	-6.27289762, -0.00053093, 0.00032531, 7.27236668, 0.99837798, 0.99914375, 0.49319313,\
++	-6.27289784, -0.00053084, 0.00032526, 7.27236699, 0.99837826, 0.99914390, 0.49319318,\
++	-6.27289805, -0.00053075, 0.00032520, 7.27236730, 0.99837854, 0.99914405, 0.49319320,\
++	-6.27289827, -0.00053066, 0.00032515, 7.27236761, 0.99837881, 0.99914419, 0.49319315,\
++	-6.27289849, -0.00053057, 0.00032509, 7.27236792, 0.99837909, 0.99914434, 0.49319329,\
++	-6.27289871, -0.00053048, 0.00032504, 7.27236823, 0.99837937, 0.99914449, 0.49319329,\
++	-6.27289892, -0.00053039, 0.00032498, 7.27236854, 0.99837965, 0.99914463, 0.49319336,\
++	-6.27289914, -0.00053030, 0.00032492, 7.27236884, 0.99837993, 0.99914478, 0.49319338,\
++	-6.27289936, -0.00053021, 0.00032487, 7.27236915, 0.99838020, 0.99914493, 0.49319340,\
++	-6.27289958, -0.00053012, 0.00032481, 7.27236946, 0.99838048, 0.99914507, 0.49319339,\
++	-6.27289979, -0.00053002, 0.00032476, 7.27236977, 0.99838076, 0.99914522, 0.49319350,\
++	-6.27290001, -0.00052993, 0.00032470, 7.27237008, 0.99838104, 0.99914536, 0.49319352,\
++	-6.27290023, -0.00052984, 0.00032465, 7.27237038, 0.99838131, 0.99914551, 0.49319359,\
++	-6.27290044, -0.00052975, 0.00032459, 7.27237069, 0.99838159, 0.99914566, 0.49319354,\
++	-6.27290066, -0.00052966, 0.00032453, 7.27237100, 0.99838187, 0.99914580, 0.49319355,\
++	-6.27290088, -0.00052957, 0.00032448, 7.27237131, 0.99838214, 0.99914595, 0.49319365,\
++	-6.27290109, -0.00052948, 0.00032442, 7.27237161, 0.99838242, 0.99914610, 0.49319372,\
++	-6.27290131, -0.00052939, 0.00032437, 7.27237192, 0.99838270, 0.99914624, 0.49319371,\
++	-6.27290153, -0.00052930, 0.00032431, 7.27237223, 0.99838297, 0.99914639, 0.49319369,\
++	-6.27290174, -0.00052921, 0.00032426, 7.27237254, 0.99838325, 0.99914653, 0.49319379,\
++	-6.27290196, -0.00052912, 0.00032420, 7.27237284, 0.99838353, 0.99914668, 0.49319379,\
++	-6.27290218, -0.00052903, 0.00032415, 7.27237315, 0.99838380, 0.99914683, 0.49319387,\
++	-6.27290239, -0.00052894, 0.00032409, 7.27237346, 0.99838408, 0.99914697, 0.49319384,\
++	-6.27290261, -0.00052885, 0.00032404, 7.27237376, 0.99838436, 0.99914712, 0.49319390,\
++	-6.27290283, -0.00052876, 0.00032398, 7.27237407, 0.99838463, 0.99914726, 0.49319391,\
++	-6.27290304, -0.00052867, 0.00032392, 7.27237438, 0.99838491, 0.99914741, 0.49319397,\
++	-6.27290326, -0.00052858, 0.00032387, 7.27237468, 0.99838518, 0.99914755, 0.49319399,\
++	-6.27290347, -0.00052849, 0.00032381, 7.27237499, 0.99838546, 0.99914770, 0.49319399,\
++	-6.27290369, -0.00052840, 0.00032376, 7.27237529, 0.99838574, 0.99914785, 0.49319402,\
++	-6.27290391, -0.00052831, 0.00032370, 7.27237560, 0.99838601, 0.99914799, 0.49319410,\
++	-6.27290412, -0.00052822, 0.00032365, 7.27237591, 0.99838629, 0.99914814, 0.49319411,\
++	-6.27290434, -0.00052813, 0.00032359, 7.27237621, 0.99838656, 0.99914828, 0.49319417,\
++	-6.27290455, -0.00052804, 0.00032354, 7.27237652, 0.99838684, 0.99914843, 0.49319421,\
++	-6.27290477, -0.00052795, 0.00032348, 7.27237682, 0.99838711, 0.99914857, 0.49319423,\
++	-6.27290498, -0.00052786, 0.00032343, 7.27237713, 0.99838739, 0.99914872, 0.49319424,\
++	-6.27290520, -0.00052777, 0.00032337, 7.27237743, 0.99838766, 0.99914886, 0.49319429,\
++	-6.27290541, -0.00052768, 0.00032332, 7.27237774, 0.99838794, 0.99914901, 0.49319426,\
++	-6.27290563, -0.00052759, 0.00032326, 7.27237804, 0.99838821, 0.99914915, 0.49319434,\
++	-6.27290584, -0.00052750, 0.00032321, 7.27237835, 0.99838849, 0.99914930, 0.49319436,\
++	-6.27290606, -0.00052741, 0.00032315, 7.27237865, 0.99838876, 0.99914944, 0.49319441,\
++	-6.27290627, -0.00052732, 0.00032310, 7.27237896, 0.99838904, 0.99914959, 0.49319443,\
++	-6.27290649, -0.00052723, 0.00032304, 7.27237926, 0.99838931, 0.99914973, 0.49319450,\
++	-6.27290670, -0.00052714, 0.00032299, 7.27237957, 0.99838959, 0.99914988, 0.49319447,\
++	-6.27290692, -0.00052705, 0.00032293, 7.27237987, 0.99838986, 0.99915002, 0.49319454,\
++	-6.27290713, -0.00052696, 0.00032288, 7.27238018, 0.99839013, 0.99915017, 0.49319453,\
++	-6.27290735, -0.00052687, 0.00032282, 7.27238048, 0.99839041, 0.99915031, 0.49319457,\
++	-6.27290756, -0.00052678, 0.00032277, 7.27238078, 0.99839068, 0.99915046, 0.49319463,\
++	-6.27290778, -0.00052669, 0.00032271, 7.27238109, 0.99839096, 0.99915060, 0.49319468,\
++	-6.27290799, -0.00052660, 0.00032266, 7.27238139, 0.99839123, 0.99915075, 0.49319471,\
++	-6.27290821, -0.00052651, 0.00032260, 7.27238170, 0.99839150, 0.99915089, 0.49319472,\
++	-6.27290842, -0.00052642, 0.00032255, 7.27238200, 0.99839178, 0.99915103, 0.49319477,\
++	-6.27290863, -0.00052633, 0.00032249, 7.27238230, 0.99839205, 0.99915118, 0.49319479,\
++	-6.27290885, -0.00052624, 0.00032244, 7.27238261, 0.99839232, 0.99915132, 0.49319479,\
++	-6.27290906, -0.00052615, 0.00032238, 7.27238291, 0.99839260, 0.99915147, 0.49319486,\
++	-6.27290928, -0.00052606, 0.00032233, 7.27238321, 0.99839287, 0.99915161, 0.49319496,\
++	-6.27290949, -0.00052597, 0.00032227, 7.27238352, 0.99839314, 0.99915176, 0.49319494,\
++	-6.27290970, -0.00052588, 0.00032222, 7.27238382, 0.99839342, 0.99915190, 0.49319490,\
++	-6.27290992, -0.00052579, 0.00032216, 7.27238412, 0.99839369, 0.99915204, 0.49319495,\
++	-6.27291013, -0.00052570, 0.00032211, 7.27238443, 0.99839396, 0.99915219, 0.49319503,\
++	-6.27291034, -0.00052561, 0.00032205, 7.27238473, 0.99839424, 0.99915233, 0.49319499,\
++	-6.27291056, -0.00052553, 0.00032200, 7.27238503, 0.99839451, 0.99915248, 0.49319506,\
++	-6.27291077, -0.00052544, 0.00032194, 7.27238534, 0.99839478, 0.99915262, 0.49319516,\
++	-6.27291098, -0.00052535, 0.00032189, 7.27238564, 0.99839505, 0.99915276, 0.49319515,\
++	-6.27291120, -0.00052526, 0.00032183, 7.27238594, 0.99839533, 0.99915291, 0.49319519,\
++	-6.27291141, -0.00052517, 0.00032178, 7.27238624, 0.99839560, 0.99915305, 0.49319519,\
++	-6.27291162, -0.00052508, 0.00032173, 7.27238654, 0.99839587, 0.99915320, 0.49319522,\
++	-6.27291184, -0.00052499, 0.00032167, 7.27238685, 0.99839614, 0.99915334, 0.49319528,\
++	-6.27291205, -0.00052490, 0.00032162, 7.27238715, 0.99839642, 0.99915348, 0.49319533,\
++	-6.27291226, -0.00052481, 0.00032156, 7.27238745, 0.99839669, 0.99915363, 0.49319536,\
++	-6.27291248, -0.00052472, 0.00032151, 7.27238775, 0.99839696, 0.99915377, 0.49319537,\
++	-6.27291269, -0.00052463, 0.00032145, 7.27238805, 0.99839723, 0.99915391, 0.49319544,\
++	-6.27291290, -0.00052455, 0.00032140, 7.27238836, 0.99839750, 0.99915406, 0.49319545,\
++	-6.27291311, -0.00052446, 0.00032134, 7.27238866, 0.99839777, 0.99915420, 0.49319547,\
++	-6.27291333, -0.00052437, 0.00032129, 7.27238896, 0.99839805, 0.99915434, 0.49319547,\
++	-6.27291354, -0.00052428, 0.00032123, 7.27238926, 0.99839832, 0.99915449, 0.49319552,\
++	-6.27291375, -0.00052419, 0.00032118, 7.27238956, 0.99839859, 0.99915463, 0.49319555,\
++	-6.27291396, -0.00052410, 0.00032113, 7.27238986, 0.99839886, 0.99915477, 0.49319555,\
++	-6.27291418, -0.00052401, 0.00032107, 7.27239016, 0.99839913, 0.99915492, 0.49319565,\
++	-6.27291439, -0.00052392, 0.00032102, 7.27239046, 0.99839940, 0.99915506, 0.49319563,\
++	-6.27291460, -0.00052384, 0.00032096, 7.27239077, 0.99839967, 0.99915520, 0.49319565,\
++	-6.27291481, -0.00052375, 0.00032091, 7.27239107, 0.99839994, 0.99915534, 0.49319571,\
++	-6.27291503, -0.00052366, 0.00032085, 7.27239137, 0.99840021, 0.99915549, 0.49319576,\
++	-6.27291524, -0.00052357, 0.00032080, 7.27239167, 0.99840049, 0.99915563, 0.49319577,\
++	-6.27291545, -0.00052348, 0.00032075, 7.27239197, 0.99840076, 0.99915577, 0.49319579,\
++	-6.27291566, -0.00052339, 0.00032069, 7.27239227, 0.99840103, 0.99915592, 0.49319582,\
++	-6.27291587, -0.00052330, 0.00032064, 7.27239257, 0.99840130, 0.99915606, 0.49319587,\
++	-6.27291608, -0.00052322, 0.00032058, 7.27239287, 0.99840157, 0.99915620, 0.49319592,\
++	-6.27291630, -0.00052313, 0.00032053, 7.27239317, 0.99840184, 0.99915634, 0.49319593,\
++	-6.27291651, -0.00052304, 0.00032047, 7.27239347, 0.99840211, 0.99915649, 0.49319594,\
++	-6.27291672, -0.00052295, 0.00032042, 7.27239377, 0.99840238, 0.99915663, 0.49319596,\
++	-6.27291693, -0.00052286, 0.00032037, 7.27239407, 0.99840265, 0.99915677, 0.49319602,\
++	-6.27291714, -0.00052277, 0.00032031, 7.27239437, 0.99840292, 0.99915691, 0.49319607,\
++	-6.27291735, -0.00052269, 0.00032026, 7.27239467, 0.99840319, 0.99915706, 0.49319609,\
++	-6.27291756, -0.00052260, 0.00032020, 7.27239497, 0.99840346, 0.99915720, 0.49319609,\
++	-6.27291777, -0.00052251, 0.00032015, 7.27239526, 0.99840373, 0.99915734, 0.49319619,\
++	-6.27291799, -0.00052242, 0.00032010, 7.27239556, 0.99840400, 0.99915748, 0.49319624,\
++	-6.27291820, -0.00052233, 0.00032004, 7.27239586, 0.99840427, 0.99915763, 0.49319616,\
++	-6.27291841, -0.00052225, 0.00031999, 7.27239616, 0.99840453, 0.99915777, 0.49319625,\
++	-6.27291862, -0.00052216, 0.00031993, 7.27239646, 0.99840480, 0.99915791, 0.49319632,\
++	-6.27291883, -0.00052207, 0.00031988, 7.27239676, 0.99840507, 0.99915805, 0.49319625,\
++	-6.27291904, -0.00052198, 0.00031983, 7.27239706, 0.99840534, 0.99915819, 0.49319634,\
++	-6.27291925, -0.00052189, 0.00031977, 7.27239736, 0.99840561, 0.99915834, 0.49319638,\
++	-6.27291946, -0.00052180, 0.00031972, 7.27239766, 0.99840588, 0.99915848, 0.49319640,\
++	-6.27291967, -0.00052172, 0.00031966, 7.27239795, 0.99840615, 0.99915862, 0.49319643,\
++	-6.27291988, -0.00052163, 0.00031961, 7.27239825, 0.99840642, 0.99915876, 0.49319646,\
++	-6.27292009, -0.00052154, 0.00031956, 7.27239855, 0.99840669, 0.99915890, 0.49319643,\
++	-6.27292030, -0.00052145, 0.00031950, 7.27239885, 0.99840695, 0.99915904, 0.49319651,\
++	-6.27292051, -0.00052137, 0.00031945, 7.27239915, 0.99840722, 0.99915919, 0.49319652,\
++	-6.27292072, -0.00052128, 0.00031939, 7.27239944, 0.99840749, 0.99915933, 0.49319657,\
++	-6.27292093, -0.00052119, 0.00031934, 7.27239974, 0.99840776, 0.99915947, 0.49319663,\
++	-6.27292114, -0.00052110, 0.00031929, 7.27240004, 0.99840803, 0.99915961, 0.49319665,\
++	-6.27292135, -0.00052101, 0.00031923, 7.27240034, 0.99840830, 0.99915975, 0.49319671,\
++	-6.27292156, -0.00052093, 0.00031918, 7.27240063, 0.99840856, 0.99915989, 0.49319676,\
++	-6.27292177, -0.00052084, 0.00031913, 7.27240093, 0.99840883, 0.99916004, 0.49319677,\
++	-6.27292198, -0.00052075, 0.00031907, 7.27240123, 0.99840910, 0.99916018, 0.49319672,\
++	-6.27292219, -0.00052066, 0.00031902, 7.27240153, 0.99840937, 0.99916032, 0.49319676,\
++	-6.27292240, -0.00052058, 0.00031896, 7.27240182, 0.99840964, 0.99916046, 0.49319684,\
++	-6.27292261, -0.00052049, 0.00031891, 7.27240212, 0.99840990, 0.99916060, 0.49319683,\
++	-6.27292282, -0.00052040, 0.00031886, 7.27240242, 0.99841017, 0.99916074, 0.49319688,\
++	-6.27292303, -0.00052031, 0.00031880, 7.27240271, 0.99841044, 0.99916088, 0.49319696,\
++	-6.27292324, -0.00052023, 0.00031875, 7.27240301, 0.99841070, 0.99916102, 0.49319696,\
++	-6.27292345, -0.00052014, 0.00031870, 7.27240331, 0.99841097, 0.99916117, 0.49319698,\
++	-6.27292366, -0.00052005, 0.00031864, 7.27240360, 0.99841124, 0.99916131, 0.49319702,\
++	-6.27292386, -0.00051996, 0.00031859, 7.27240390, 0.99841151, 0.99916145, 0.49319705,\
++	-6.27292407, -0.00051988, 0.00031854, 7.27240420, 0.99841177, 0.99916159, 0.49319708,\
++	-6.27292428, -0.00051979, 0.00031848, 7.27240449, 0.99841204, 0.99916173, 0.49319705,\
++	-6.27292449, -0.00051970, 0.00031843, 7.27240479, 0.99841231, 0.99916187, 0.49319715,\
++	-6.27292470, -0.00051962, 0.00031837, 7.27240508, 0.99841257, 0.99916201, 0.49319716,\
++	-6.27292491, -0.00051953, 0.00031832, 7.27240538, 0.99841284, 0.99916215, 0.49319722,\
++	-6.27292512, -0.00051944, 0.00031827, 7.27240568, 0.99841311, 0.99916229, 0.49319725,\
++	-6.27292533, -0.00051935, 0.00031821, 7.27240597, 0.99841337, 0.99916243, 0.49319725,\
++	-6.27292553, -0.00051927, 0.00031816, 7.27240627, 0.99841364, 0.99916257, 0.49319734,\
++	-6.27292574, -0.00051918, 0.00031811, 7.27240656, 0.99841390, 0.99916271, 0.49319744,\
++	-6.27292595, -0.00051909, 0.00031805, 7.27240686, 0.99841417, 0.99916285, 0.49319739,\
++	-6.27292616, -0.00051901, 0.00031800, 7.27240715, 0.99841444, 0.99916299, 0.49319736,\
++	-6.27292637, -0.00051892, 0.00031795, 7.27240745, 0.99841470, 0.99916313, 0.49319748,\
++	-6.27292658, -0.00051883, 0.00031789, 7.27240774, 0.99841497, 0.99916327, 0.49319747,\
++	-6.27292678, -0.00051874, 0.00031784, 7.27240804, 0.99841523, 0.99916341, 0.49319748,\
++	-6.27292699, -0.00051866, 0.00031779, 7.27240833, 0.99841550, 0.99916355, 0.49319753,\
++	-6.27292720, -0.00051857, 0.00031773, 7.27240863, 0.99841577, 0.99916369, 0.49319759,\
++	-6.27292741, -0.00051848, 0.00031768, 7.27240892, 0.99841603, 0.99916384, 0.49319759,\
++	-6.27292762, -0.00051840, 0.00031763, 7.27240922, 0.99841630, 0.99916398, 0.49319759,\
++	-6.27292782, -0.00051831, 0.00031757, 7.27240951, 0.99841656, 0.99916412, 0.49319764,\
++	-6.27292803, -0.00051822, 0.00031752, 7.27240981, 0.99841683, 0.99916426, 0.49319769,\
++	-6.27292824, -0.00051814, 0.00031747, 7.27241010, 0.99841709, 0.99916440, 0.49319768,\
++	-6.27292845, -0.00051805, 0.00031742, 7.27241040, 0.99841736, 0.99916453, 0.49319773,\
++	-6.27292865, -0.00051796, 0.00031736, 7.27241069, 0.99841762, 0.99916467, 0.49319777,\
++	-6.27292886, -0.00051788, 0.00031731, 7.27241098, 0.99841789, 0.99916481, 0.49319789,\
++	-6.27292907, -0.00051779, 0.00031726, 7.27241128, 0.99841815, 0.99916495, 0.49319781,\
++	-6.27292927, -0.00051770, 0.00031720, 7.27241157, 0.99841842, 0.99916509, 0.49319785,\
++	-6.27292948, -0.00051762, 0.00031715, 7.27241186, 0.99841868, 0.99916523, 0.49319784,\
++	-6.27292969, -0.00051753, 0.00031710, 7.27241216, 0.99841895, 0.99916537, 0.49319795,\
++	-6.27292990, -0.00051744, 0.00031704, 7.27241245, 0.99841921, 0.99916551, 0.49319794,\
++	-6.27293010, -0.00051736, 0.00031699, 7.27241275, 0.99841947, 0.99916565, 0.49319797,\
++	-6.27293031, -0.00051727, 0.00031694, 7.27241304, 0.99841974, 0.99916579, 0.49319807,\
++	-6.27293052, -0.00051718, 0.00031688, 7.27241333, 0.99842000, 0.99916593, 0.49319800,\
++	-6.27293072, -0.00051710, 0.00031683, 7.27241363, 0.99842027, 0.99916607, 0.49319809,\
++	-6.27293093, -0.00051701, 0.00031678, 7.27241392, 0.99842053, 0.99916621, 0.49319811,\
++	-6.27293114, -0.00051693, 0.00031673, 7.27241421, 0.99842079, 0.99916635, 0.49319811,\
++	-6.27293134, -0.00051684, 0.00031667, 7.27241450, 0.99842106, 0.99916649, 0.49319817,\
++	-6.27293155, -0.00051675, 0.00031662, 7.27241480, 0.99842132, 0.99916663, 0.49319820,\
++	-6.27293176, -0.00051667, 0.00031657, 7.27241509, 0.99842159, 0.99916677, 0.49319821,\
++	-6.27293196, -0.00051658, 0.00031651, 7.27241538, 0.99842185, 0.99916691, 0.49319833,\
++	-6.27293217, -0.00051649, 0.00031646, 7.27241567, 0.99842211, 0.99916704, 0.49319829,\
++	-6.27293237, -0.00051641, 0.00031641, 7.27241597, 0.99842238, 0.99916718, 0.49319831,\
++	-6.27293258, -0.00051632, 0.00031636, 7.27241626, 0.99842264, 0.99916732, 0.49319838,\
++	-6.27293279, -0.00051624, 0.00031630, 7.27241655, 0.99842290, 0.99916746, 0.49319843,\
++	-6.27293299, -0.00051615, 0.00031625, 7.27241684, 0.99842316, 0.99916760, 0.49319840,\
++	-6.27293320, -0.00051606, 0.00031620, 7.27241713, 0.99842343, 0.99916774, 0.49319841,\
++	-6.27293340, -0.00051598, 0.00031614, 7.27241743, 0.99842369, 0.99916788, 0.49319849,\
++	-6.27293361, -0.00051589, 0.00031609, 7.27241772, 0.99842395, 0.99916802, 0.49319850,\
++	-6.27293382, -0.00051581, 0.00031604, 7.27241801, 0.99842422, 0.99916816, 0.49319856,\
++	-6.27293402, -0.00051572, 0.00031599, 7.27241830, 0.99842448, 0.99916829, 0.49319860,\
++	-6.27293423, -0.00051563, 0.00031593, 7.27241859, 0.99842474, 0.99916843, 0.49319855,\
++	-6.27293443, -0.00051555, 0.00031588, 7.27241888, 0.99842500, 0.99916857, 0.49319861,\
++	-6.27293464, -0.00051546, 0.00031583, 7.27241918, 0.99842527, 0.99916871, 0.49319870,\
++	-6.27293484, -0.00051538, 0.00031578, 7.27241947, 0.99842553, 0.99916885, 0.49319866,\
++	-6.27293505, -0.00051529, 0.00031572, 7.27241976, 0.99842579, 0.99916899, 0.49319873,\
++	-6.27293525, -0.00051520, 0.00031567, 7.27242005, 0.99842605, 0.99916912, 0.49319872,\
++	-6.27293546, -0.00051512, 0.00031562, 7.27242034, 0.99842632, 0.99916926, 0.49319875,\
++	-6.27293566, -0.00051503, 0.00031557, 7.27242063, 0.99842658, 0.99916940, 0.49319885,\
++	-6.27293587, -0.00051495, 0.00031551, 7.27242092, 0.99842684, 0.99916954, 0.49319881,\
++	-6.27293607, -0.00051486, 0.00031546, 7.27242121, 0.99842710, 0.99916968, 0.49319885,\
++	-6.27293628, -0.00051478, 0.00031541, 7.27242150, 0.99842736, 0.99916982, 0.49319897,\
++	-6.27293648, -0.00051469, 0.00031536, 7.27242179, 0.99842762, 0.99916995, 0.49319898,\
++	-6.27293669, -0.00051461, 0.00031530, 7.27242208, 0.99842789, 0.99917009, 0.49319895,\
++	-6.27293689, -0.00051452, 0.00031525, 7.27242237, 0.99842815, 0.99917023, 0.49319902,\
++	-6.27293710, -0.00051443, 0.00031520, 7.27242266, 0.99842841, 0.99917037, 0.49319899,\
++	-6.27293730, -0.00051435, 0.00031515, 7.27242295, 0.99842867, 0.99917051, 0.49319907,\
++	-6.27293751, -0.00051426, 0.00031509, 7.27242324, 0.99842893, 0.99917064, 0.49319910,\
++	-6.27293771, -0.00051418, 0.00031504, 7.27242353, 0.99842919, 0.99917078, 0.49319911,\
++	-6.27293792, -0.00051409, 0.00031499, 7.27242382, 0.99842945, 0.99917092, 0.49319911,\
++	-6.27293812, -0.00051401, 0.00031494, 7.27242411, 0.99842971, 0.99917106, 0.49319918,\
++	-6.27293832, -0.00051392, 0.00031488, 7.27242440, 0.99842997, 0.99917119, 0.49319923,\
++	-6.27293853, -0.00051384, 0.00031483, 7.27242469, 0.99843024, 0.99917133, 0.49319919,\
++	-6.27293873, -0.00051375, 0.00031478, 7.27242498, 0.99843050, 0.99917147, 0.49319924,\
++	-6.27293894, -0.00051367, 0.00031473, 7.27242527, 0.99843076, 0.99917161, 0.49319925,\
++	-6.27293914, -0.00051358, 0.00031467, 7.27242556, 0.99843102, 0.99917174, 0.49319934,\
++	-6.27293934, -0.00051350, 0.00031462, 7.27242585, 0.99843128, 0.99917188, 0.49319932,\
++	-6.27293955, -0.00051341, 0.00031457, 7.27242614, 0.99843154, 0.99917202, 0.49319938,\
++	-6.27293975, -0.00051333, 0.00031452, 7.27242643, 0.99843180, 0.99917216, 0.49319942,\
++	-6.27293995, -0.00051324, 0.00031447, 7.27242671, 0.99843206, 0.99917229, 0.49319947,\
++	-6.27294016, -0.00051315, 0.00031441, 7.27242700, 0.99843232, 0.99917243, 0.49319948,\
++	-6.27294036, -0.00051307, 0.00031436, 7.27242729, 0.99843258, 0.99917257, 0.49319954,\
++	-6.27294057, -0.00051298, 0.00031431, 7.27242758, 0.99843284, 0.99917271, 0.49319956,\
++	-6.27294077, -0.00051290, 0.00031426, 7.27242787, 0.99843310, 0.99917284, 0.49319957,\
++	-6.27294097, -0.00051281, 0.00031421, 7.27242816, 0.99843336, 0.99917298, 0.49319962,\
++	-6.27294118, -0.00051273, 0.00031415, 7.27242845, 0.99843362, 0.99917312, 0.49319969,\
++	-6.27294138, -0.00051265, 0.00031410, 7.27242873, 0.99843388, 0.99917325, 0.49319972,\
++	-6.27294158, -0.00051256, 0.00031405, 7.27242902, 0.99843414, 0.99917339, 0.49319967,\
++	-6.27294178, -0.00051248, 0.00031400, 7.27242931, 0.99843439, 0.99917353, 0.49319971,\
++	-6.27294199, -0.00051239, 0.00031395, 7.27242960, 0.99843465, 0.99917366, 0.49319975,\
++	-6.27294219, -0.00051231, 0.00031389, 7.27242988, 0.99843491, 0.99917380, 0.49319976,\
++	-6.27294239, -0.00051222, 0.00031384, 7.27243017, 0.99843517, 0.99917394, 0.49319985,\
++	-6.27294260, -0.00051214, 0.00031379, 7.27243046, 0.99843543, 0.99917407, 0.49319980,\
++	-6.27294280, -0.00051205, 0.00031374, 7.27243075, 0.99843569, 0.99917421, 0.49319987,\
++	-6.27294300, -0.00051197, 0.00031369, 7.27243103, 0.99843595, 0.99917435, 0.49319991,\
++	-6.27294320, -0.00051188, 0.00031363, 7.27243132, 0.99843621, 0.99917448, 0.49319996,\
++	-6.27294341, -0.00051180, 0.00031358, 7.27243161, 0.99843647, 0.99917462, 0.49320001,\
++	-6.27294361, -0.00051171, 0.00031353, 7.27243190, 0.99843673, 0.99917476, 0.49319998,\
++	-6.27294381, -0.00051163, 0.00031348, 7.27243218, 0.99843698, 0.99917489, 0.49320000,\
++	-6.27294401, -0.00051154, 0.00031343, 7.27243247, 0.99843724, 0.99917503, 0.49320003,\
++	-6.27294422, -0.00051146, 0.00031337, 7.27243276, 0.99843750, 0.99917517, 0.49320007,\
++	-6.27294442, -0.00051137, 0.00031332, 7.27243304, 0.99843776, 0.99917530, 0.49320006,\
++	-6.27294462, -0.00051129, 0.00031327, 7.27243333, 0.99843802, 0.99917544, 0.49320012,\
++	-6.27294482, -0.00051121, 0.00031322, 7.27243362, 0.99843827, 0.99917558, 0.49320018,\
++	-6.27294502, -0.00051112, 0.00031317, 7.27243390, 0.99843853, 0.99917571, 0.49320018,\
++	-6.27294523, -0.00051104, 0.00031312, 7.27243419, 0.99843879, 0.99917585, 0.49320017,\
++	-6.27294543, -0.00051095, 0.00031306, 7.27243448, 0.99843905, 0.99917598, 0.49320022,\
++	-6.27294563, -0.00051087, 0.00031301, 7.27243476, 0.99843931, 0.99917612, 0.49320033,\
++	-6.27294583, -0.00051078, 0.00031296, 7.27243505, 0.99843956, 0.99917626, 0.49320035,\
++	-6.27294603, -0.00051070, 0.00031291, 7.27243533, 0.99843982, 0.99917639, 0.49320035,\
++	-6.27294623, -0.00051062, 0.00031286, 7.27243562, 0.99844008, 0.99917653, 0.49320037,\
++	-6.27294644, -0.00051053, 0.00031281, 7.27243590, 0.99844034, 0.99917666, 0.49320040,\
++	-6.27294664, -0.00051045, 0.00031275, 7.27243619, 0.99844059, 0.99917680, 0.49320046,\
++	-6.27294684, -0.00051036, 0.00031270, 7.27243648, 0.99844085, 0.99917693, 0.49320050,\
++	-6.27294704, -0.00051028, 0.00031265, 7.27243676, 0.99844111, 0.99917707, 0.49320049,\
++	-6.27294724, -0.00051019, 0.00031260, 7.27243705, 0.99844136, 0.99917721, 0.49320054,\
++	-6.27294744, -0.00051011, 0.00031255, 7.27243733, 0.99844162, 0.99917734, 0.49320055,\
++	-6.27294764, -0.00051003, 0.00031250, 7.27243762, 0.99844188, 0.99917748, 0.49320064,\
++	-6.27294784, -0.00050994, 0.00031244, 7.27243790, 0.99844214, 0.99917761, 0.49320065,\
++	-6.27294805, -0.00050986, 0.00031239, 7.27243819, 0.99844239, 0.99917775, 0.49320067,\
++	-6.27294825, -0.00050977, 0.00031234, 7.27243847, 0.99844265, 0.99917788, 0.49320073,\
++	-6.27294845, -0.00050969, 0.00031229, 7.27243876, 0.99844291, 0.99917802, 0.49320072,\
++	-6.27294865, -0.00050961, 0.00031224, 7.27243904, 0.99844316, 0.99917815, 0.49320076,\
++	-6.27294885, -0.00050952, 0.00031219, 7.27243933, 0.99844342, 0.99917829, 0.49320077,\
++	-6.27294905, -0.00050944, 0.00031214, 7.27243961, 0.99844367, 0.99917843, 0.49320076,\
++	-6.27294925, -0.00050936, 0.00031208, 7.27243989, 0.99844393, 0.99917856, 0.49320084,\
++	-6.27294945, -0.00050927, 0.00031203, 7.27244018, 0.99844419, 0.99917870, 0.49320087,\
++	-6.27294965, -0.00050919, 0.00031198, 7.27244046, 0.99844444, 0.99917883, 0.49320088,\
++	-6.27294985, -0.00050910, 0.00031193, 7.27244075, 0.99844470, 0.99917897, 0.49320097,\
++	-6.27295005, -0.00050902, 0.00031188, 7.27244103, 0.99844495, 0.99917910, 0.49320091,\
++	-6.27295025, -0.00050894, 0.00031183, 7.27244132, 0.99844521, 0.99917924, 0.49320097,\
++	-6.27295045, -0.00050885, 0.00031178, 7.27244160, 0.99844547, 0.99917937, 0.49320101,\
++	-6.27295065, -0.00050877, 0.00031173, 7.27244188, 0.99844572, 0.99917951, 0.49320102,\
++	-6.27295085, -0.00050869, 0.00031167, 7.27244217, 0.99844598, 0.99917964, 0.49320101,\
++	-6.27295105, -0.00050860, 0.00031162, 7.27244245, 0.99844623, 0.99917978, 0.49320112,\
++	-6.27295125, -0.00050852, 0.00031157, 7.27244273, 0.99844649, 0.99917991, 0.49320117,\
++	-6.27295145, -0.00050844, 0.00031152, 7.27244302, 0.99844674, 0.99918004, 0.49320117,\
++	-6.27295165, -0.00050835, 0.00031147, 7.27244330, 0.99844700, 0.99918018, 0.49320119,\
++	-6.27295185, -0.00050827, 0.00031142, 7.27244358, 0.99844725, 0.99918031, 0.49320122,\
++	-6.27295205, -0.00050818, 0.00031137, 7.27244387, 0.99844751, 0.99918045, 0.49320128,\
++	-6.27295225, -0.00050810, 0.00031132, 7.27244415, 0.99844776, 0.99918058, 0.49320130,\
++	-6.27295245, -0.00050802, 0.00031126, 7.27244443, 0.99844802, 0.99918072, 0.49320132,\
++	-6.27295265, -0.00050793, 0.00031121, 7.27244472, 0.99844827, 0.99918085, 0.49320130,\
++	-6.27295285, -0.00050785, 0.00031116, 7.27244500, 0.99844853, 0.99918099, 0.49320137,\
++	-6.27295305, -0.00050777, 0.00031111, 7.27244528, 0.99844878, 0.99918112, 0.49320141,\
++	-6.27295325, -0.00050768, 0.00031106, 7.27244556, 0.99844904, 0.99918126, 0.49320145,\
++	-6.27295345, -0.00050760, 0.00031101, 7.27244585, 0.99844929, 0.99918139, 0.49320144,\
++	-6.27295365, -0.00050752, 0.00031096, 7.27244613, 0.99844955, 0.99918152, 0.49320149,\
++	-6.27295385, -0.00050743, 0.00031091, 7.27244641, 0.99844980, 0.99918166, 0.49320154,\
++	-6.27295404, -0.00050735, 0.00031086, 7.27244669, 0.99845005, 0.99918179, 0.49320156,\
++	-6.27295424, -0.00050727, 0.00031081, 7.27244697, 0.99845031, 0.99918193, 0.49320161,\
++	-6.27295444, -0.00050719, 0.00031075, 7.27244726, 0.99845056, 0.99918206, 0.49320163,\
++	-6.27295464, -0.00050710, 0.00031070, 7.27244754, 0.99845082, 0.99918219, 0.49320168,\
++	-6.27295484, -0.00050702, 0.00031065, 7.27244782, 0.99845107, 0.99918233, 0.49320163,\
++	-6.27295504, -0.00050694, 0.00031060, 7.27244810, 0.99845132, 0.99918246, 0.49320171,\
++	-6.27295524, -0.00050685, 0.00031055, 7.27244838, 0.99845158, 0.99918260, 0.49320174,\
++	-6.27295544, -0.00050677, 0.00031050, 7.27244867, 0.99845183, 0.99918273, 0.49320177,\
++	-6.27295563, -0.00050669, 0.00031045, 7.27244895, 0.99845208, 0.99918286, 0.49320176,\
++	-6.27295583, -0.00050660, 0.00031040, 7.27244923, 0.99845234, 0.99918300, 0.49320182,\
++	-6.27295603, -0.00050652, 0.00031035, 7.27244951, 0.99845259, 0.99918313, 0.49320186,\
++	-6.27295623, -0.00050644, 0.00031030, 7.27244979, 0.99845284, 0.99918327, 0.49320185,\
++	-6.27295643, -0.00050636, 0.00031025, 7.27245007, 0.99845310, 0.99918340, 0.49320186,\
++	-6.27295663, -0.00050627, 0.00031019, 7.27245035, 0.99845335, 0.99918353, 0.49320197,\
++	-6.27295682, -0.00050619, 0.00031014, 7.27245063, 0.99845360, 0.99918367, 0.49320197,\
++	-6.27295702, -0.00050611, 0.00031009, 7.27245091, 0.99845386, 0.99918380, 0.49320194,\
++	-6.27295722, -0.00050602, 0.00031004, 7.27245120, 0.99845411, 0.99918393, 0.49320202,\
++	-6.27295742, -0.00050594, 0.00030999, 7.27245148, 0.99845436, 0.99918407, 0.49320205,\
++	-6.27295762, -0.00050586, 0.00030994, 7.27245176, 0.99845462, 0.99918420, 0.49320207,\
++	-6.27295781, -0.00050578, 0.00030989, 7.27245204, 0.99845487, 0.99918433, 0.49320207,\
++	-6.27295801, -0.00050569, 0.00030984, 7.27245232, 0.99845512, 0.99918447, 0.49320217,\
++	-6.27295821, -0.00050561, 0.00030979, 7.27245260, 0.99845537, 0.99918460, 0.49320221,\
++	-6.27295841, -0.00050553, 0.00030974, 7.27245288, 0.99845563, 0.99918473, 0.49320219,\
++	-6.27295860, -0.00050545, 0.00030969, 7.27245316, 0.99845588, 0.99918487, 0.49320222,\
++	-6.27295880, -0.00050536, 0.00030964, 7.27245344, 0.99845613, 0.99918500, 0.49320228,\
++	-6.27295900, -0.00050528, 0.00030959, 7.27245372, 0.99845638, 0.99918513, 0.49320230,\
++	-6.27295920, -0.00050520, 0.00030954, 7.27245400, 0.99845663, 0.99918526, 0.49320235,\
++	-6.27295939, -0.00050512, 0.00030949, 7.27245428, 0.99845689, 0.99918540, 0.49320231,\
++	-6.27295959, -0.00050503, 0.00030944, 7.27245456, 0.99845714, 0.99918553, 0.49320239,\
++	-6.27295979, -0.00050495, 0.00030938, 7.27245484, 0.99845739, 0.99918566, 0.49320239,\
++	-6.27295998, -0.00050487, 0.00030933, 7.27245512, 0.99845764, 0.99918580, 0.49320243,\
++	-6.27296018, -0.00050479, 0.00030928, 7.27245539, 0.99845789, 0.99918593, 0.49320240,\
++	-6.27296038, -0.00050470, 0.00030923, 7.27245567, 0.99845814, 0.99918606, 0.49320248,\
++	-6.27296058, -0.00050462, 0.00030918, 7.27245595, 0.99845840, 0.99918619, 0.49320254,\
++	-6.27296077, -0.00050454, 0.00030913, 7.27245623, 0.99845865, 0.99918633, 0.49320254,\
++	-6.27296097, -0.00050446, 0.00030908, 7.27245651, 0.99845890, 0.99918646, 0.49320257,\
++	-6.27296117, -0.00050438, 0.00030903, 7.27245679, 0.99845915, 0.99918659, 0.49320260,\
++	-6.27296136, -0.00050429, 0.00030898, 7.27245707, 0.99845940, 0.99918673, 0.49320260,\
++	-6.27296156, -0.00050421, 0.00030893, 7.27245735, 0.99845965, 0.99918686, 0.49320264,\
++	-6.27296176, -0.00050413, 0.00030888, 7.27245763, 0.99845990, 0.99918699, 0.49320270,\
++	-6.27296195, -0.00050405, 0.00030883, 7.27245790, 0.99846015, 0.99918712, 0.49320271,\
++	-6.27296215, -0.00050397, 0.00030878, 7.27245818, 0.99846040, 0.99918726, 0.49320271,\
++	-6.27296234, -0.00050388, 0.00030873, 7.27245846, 0.99846066, 0.99918739, 0.49320279,\
++	-6.27296254, -0.00050380, 0.00030868, 7.27245874, 0.99846091, 0.99918752, 0.49320285,\
++	-6.27296274, -0.00050372, 0.00030863, 7.27245902, 0.99846116, 0.99918765, 0.49320278,\
++	-6.27296293, -0.00050364, 0.00030858, 7.27245930, 0.99846141, 0.99918778, 0.49320286,\
++	-6.27296313, -0.00050356, 0.00030853, 7.27245957, 0.99846166, 0.99918792, 0.49320284,\
++	-6.27296332, -0.00050347, 0.00030848, 7.27245985, 0.99846191, 0.99918805, 0.49320294,\
++	-6.27296352, -0.00050339, 0.00030843, 7.27246013, 0.99846216, 0.99918818, 0.49320297,\
++	-6.27296372, -0.00050331, 0.00030838, 7.27246041, 0.99846241, 0.99918831, 0.49320295,\
++	-6.27296391, -0.00050323, 0.00030833, 7.27246068, 0.99846266, 0.99918844, 0.49320301,\
++	-6.27296411, -0.00050315, 0.00030828, 7.27246096, 0.99846291, 0.99918858, 0.49320303,\
++	-6.27296430, -0.00050306, 0.00030823, 7.27246124, 0.99846316, 0.99918871, 0.49320305,\
++	-6.27296450, -0.00050298, 0.00030818, 7.27246152, 0.99846341, 0.99918884, 0.49320310,\
++	-6.27296469, -0.00050290, 0.00030813, 7.27246179, 0.99846366, 0.99918897, 0.49320314,\
++	-6.27296489, -0.00050282, 0.00030808, 7.27246207, 0.99846391, 0.99918910, 0.49320318,\
++	-6.27296509, -0.00050274, 0.00030803, 7.27246235, 0.99846416, 0.99918924, 0.49320319,\
++	-6.27296528, -0.00050266, 0.00030798, 7.27246263, 0.99846441, 0.99918937, 0.49320326,\
++	-6.27296548, -0.00050257, 0.00030793, 7.27246290, 0.99846466, 0.99918950, 0.49320325,\
++	-6.27296567, -0.00050249, 0.00030788, 7.27246318, 0.99846490, 0.99918963, 0.49320329,\
++	-6.27296587, -0.00050241, 0.00030783, 7.27246346, 0.99846515, 0.99918976, 0.49320330,\
++	-6.27296606, -0.00050233, 0.00030778, 7.27246373, 0.99846540, 0.99918989, 0.49320333,\
++	-6.27296626, -0.00050225, 0.00030773, 7.27246401, 0.99846565, 0.99919002, 0.49320339,\
++	-6.27296645, -0.00050217, 0.00030768, 7.27246429, 0.99846590, 0.99919016, 0.49320339,\
++	-6.27296665, -0.00050209, 0.00030763, 7.27246456, 0.99846615, 0.99919029, 0.49320338,\
++	-6.27296684, -0.00050200, 0.00030758, 7.27246484, 0.99846640, 0.99919042, 0.49320344,\
++	-6.27296704, -0.00050192, 0.00030753, 7.27246511, 0.99846665, 0.99919055, 0.49320353,\
++	-6.27296723, -0.00050184, 0.00030748, 7.27246539, 0.99846690, 0.99919068, 0.49320349,\
++	-6.27296743, -0.00050176, 0.00030743, 7.27246567, 0.99846715, 0.99919081, 0.49320357,\
++	-6.27296762, -0.00050168, 0.00030738, 7.27246594, 0.99846739, 0.99919094, 0.49320354,\
++	-6.27296781, -0.00050160, 0.00030733, 7.27246622, 0.99846764, 0.99919108, 0.49320360,\
++	-6.27296801, -0.00050152, 0.00030728, 7.27246649, 0.99846789, 0.99919121, 0.49320366,\
++	-6.27296820, -0.00050143, 0.00030723, 7.27246677, 0.99846814, 0.99919134, 0.49320363,\
++	-6.27296840, -0.00050135, 0.00030718, 7.27246704, 0.99846839, 0.99919147, 0.49320369,\
++	-6.27296859, -0.00050127, 0.00030713, 7.27246732, 0.99846864, 0.99919160, 0.49320376,\
++	-6.27296879, -0.00050119, 0.00030708, 7.27246760, 0.99846888, 0.99919173, 0.49320377,\
++	-6.27296898, -0.00050111, 0.00030703, 7.27246787, 0.99846913, 0.99919186, 0.49320381,\
++	-6.27296917, -0.00050103, 0.00030698, 7.27246815, 0.99846938, 0.99919199, 0.49320377,\
++	-6.27296937, -0.00050095, 0.00030693, 7.27246842, 0.99846963, 0.99919212, 0.49320384,\
++	-6.27296956, -0.00050087, 0.00030688, 7.27246870, 0.99846987, 0.99919225, 0.49320380,\
++	-6.27296976, -0.00050079, 0.00030683, 7.27246897, 0.99847012, 0.99919238, 0.49320387,\
++	-6.27296995, -0.00050070, 0.00030678, 7.27246925, 0.99847037, 0.99919251, 0.49320387,\
++	-6.27297014, -0.00050062, 0.00030673, 7.27246952, 0.99847062, 0.99919265, 0.49320397,\
++	-6.27297034, -0.00050054, 0.00030668, 7.27246980, 0.99847086, 0.99919278, 0.49320397,\
++	-6.27297053, -0.00050046, 0.00030663, 7.27247007, 0.99847111, 0.99919291, 0.49320399,\
++	-6.27297073, -0.00050038, 0.00030658, 7.27247034, 0.99847136, 0.99919304, 0.49320405,\
++	-6.27297092, -0.00050030, 0.00030653, 7.27247062, 0.99847161, 0.99919317, 0.49320409,\
++	-6.27297111, -0.00050022, 0.00030648, 7.27247089, 0.99847185, 0.99919330, 0.49320412,\
++	-6.27297131, -0.00050014, 0.00030643, 7.27247117, 0.99847210, 0.99919343, 0.49320414,\
++	-6.27297150, -0.00050006, 0.00030638, 7.27247144, 0.99847235, 0.99919356, 0.49320414,\
++	-6.27297169, -0.00049998, 0.00030633, 7.27247172, 0.99847259, 0.99919369, 0.49320417,\
++	-6.27297189, -0.00049990, 0.00030629, 7.27247199, 0.99847284, 0.99919382, 0.49320418,\
++	-6.27297208, -0.00049982, 0.00030624, 7.27247226, 0.99847309, 0.99919395, 0.49320420,\
++	-6.27297227, -0.00049973, 0.00030619, 7.27247254, 0.99847333, 0.99919408, 0.49320426,\
++	-6.27297246, -0.00049965, 0.00030614, 7.27247281, 0.99847358, 0.99919421, 0.49320420,\
++	-6.27297266, -0.00049957, 0.00030609, 7.27247308, 0.99847383, 0.99919434, 0.49320435,\
++	-6.27297285, -0.00049949, 0.00030604, 7.27247336, 0.99847407, 0.99919447, 0.49320431,\
++	-6.27297304, -0.00049941, 0.00030599, 7.27247363, 0.99847432, 0.99919460, 0.49320437,\
++	-6.27297324, -0.00049933, 0.00030594, 7.27247390, 0.99847457, 0.99919473, 0.49320437,\
++	-6.27297343, -0.00049925, 0.00030589, 7.27247418, 0.99847481, 0.99919486, 0.49320443,\
++	-6.27297362, -0.00049917, 0.00030584, 7.27247445, 0.99847506, 0.99919499, 0.49320448,\
++	-6.27297381, -0.00049909, 0.00030579, 7.27247472, 0.99847530, 0.99919512, 0.49320448,\
++	-6.27297401, -0.00049901, 0.00030574, 7.27247500, 0.99847555, 0.99919525, 0.49320449,\
++	-6.27297420, -0.00049893, 0.00030569, 7.27247527, 0.99847580, 0.99919538, 0.49320451,\
++	-6.27297439, -0.00049885, 0.00030564, 7.27247554, 0.99847604, 0.99919551, 0.49320453,\
++	-6.27297458, -0.00049877, 0.00030559, 7.27247582, 0.99847629, 0.99919564, 0.49320461,\
++	-6.27297478, -0.00049869, 0.00030554, 7.27247609, 0.99847653, 0.99919577, 0.49320461,\
++	-6.27297497, -0.00049861, 0.00030550, 7.27247636, 0.99847678, 0.99919590, 0.49320465,\
++	-6.27297516, -0.00049853, 0.00030545, 7.27247663, 0.99847702, 0.99919603, 0.49320475,\
++	-6.27297535, -0.00049845, 0.00030540, 7.27247691, 0.99847727, 0.99919616, 0.49320473,\
++	-6.27297554, -0.00049837, 0.00030535, 7.27247718, 0.99847751, 0.99919629, 0.49320474,\
++	-6.27297574, -0.00049829, 0.00030530, 7.27247745, 0.99847776, 0.99919641, 0.49320475,\
++	-6.27297593, -0.00049821, 0.00030525, 7.27247772, 0.99847800, 0.99919654, 0.49320486,\
++	-6.27297612, -0.00049813, 0.00030520, 7.27247799, 0.99847825, 0.99919667, 0.49320483,\
++	-6.27297631, -0.00049805, 0.00030515, 7.27247827, 0.99847849, 0.99919680, 0.49320494,\
++	-6.27297650, -0.00049797, 0.00030510, 7.27247854, 0.99847874, 0.99919693, 0.49320494,\
++	-6.27297670, -0.00049789, 0.00030505, 7.27247881, 0.99847898, 0.99919706, 0.49320488,\
++	-6.27297689, -0.00049781, 0.00030500, 7.27247908, 0.99847923, 0.99919719, 0.49320497,\
++	-6.27297708, -0.00049773, 0.00030495, 7.27247935, 0.99847947, 0.99919732, 0.49320498,\
++	-6.27297727, -0.00049765, 0.00030491, 7.27247962, 0.99847972, 0.99919745, 0.49320504,\
++	-6.27297746, -0.00049757, 0.00030486, 7.27247990, 0.99847996, 0.99919758, 0.49320498,\
++	-6.27297765, -0.00049749, 0.00030481, 7.27248017, 0.99848021, 0.99919771, 0.49320508,\
++	-6.27297784, -0.00049741, 0.00030476, 7.27248044, 0.99848045, 0.99919784, 0.49320506,\
++	-6.27297804, -0.00049733, 0.00030471, 7.27248071, 0.99848070, 0.99919796, 0.49320512,\
++	-6.27297823, -0.00049725, 0.00030466, 7.27248098, 0.99848094, 0.99919809, 0.49320520,\
++	-6.27297842, -0.00049717, 0.00030461, 7.27248125, 0.99848118, 0.99919822, 0.49320518,\
++	-6.27297861, -0.00049709, 0.00030456, 7.27248152, 0.99848143, 0.99919835, 0.49320519,\
++	-6.27297880, -0.00049701, 0.00030451, 7.27248179, 0.99848167, 0.99919848, 0.49320524,\
++	-6.27297899, -0.00049693, 0.00030446, 7.27248206, 0.99848192, 0.99919861, 0.49320527,\
++	-6.27297918, -0.00049685, 0.00030442, 7.27248233, 0.99848216, 0.99919874, 0.49320529,\
++	-6.27297937, -0.00049677, 0.00030437, 7.27248260, 0.99848240, 0.99919887, 0.49320530,\
++	-6.27297956, -0.00049669, 0.00030432, 7.27248288, 0.99848265, 0.99919899, 0.49320533,\
++	-6.27297975, -0.00049661, 0.00030427, 7.27248315, 0.99848289, 0.99919912, 0.49320533,\
++	-6.27297994, -0.00049653, 0.00030422, 7.27248342, 0.99848313, 0.99919925, 0.49320545,\
++	-6.27298013, -0.00049645, 0.00030417, 7.27248369, 0.99848338, 0.99919938, 0.49320550,\
++	-6.27298033, -0.00049637, 0.00030412, 7.27248396, 0.99848362, 0.99919951, 0.49320544,\
++	-6.27298052, -0.00049629, 0.00030407, 7.27248423, 0.99848386, 0.99919964, 0.49320542,\
++	-6.27298071, -0.00049621, 0.00030403, 7.27248450, 0.99848411, 0.99919976, 0.49320549,\
++	-6.27298090, -0.00049613, 0.00030398, 7.27248477, 0.99848435, 0.99919989, 0.49320553,\
++	-6.27298109, -0.00049605, 0.00030393, 7.27248504, 0.99848459, 0.99920002, 0.49320549,\
++	-6.27298128, -0.00049597, 0.00030388, 7.27248531, 0.99848484, 0.99920015, 0.49320559,\
++	-6.27298147, -0.00049589, 0.00030383, 7.27248557, 0.99848508, 0.99920028, 0.49320560,\
++	-6.27298166, -0.00049581, 0.00030378, 7.27248584, 0.99848532, 0.99920041, 0.49320562,\
++	-6.27298185, -0.00049573, 0.00030373, 7.27248611, 0.99848556, 0.99920053, 0.49320572,\
++	-6.27298204, -0.00049565, 0.00030368, 7.27248638, 0.99848581, 0.99920066, 0.49320570,\
++	-6.27298223, -0.00049557, 0.00030364, 7.27248665, 0.99848605, 0.99920079, 0.49320571,\
++	-6.27298242, -0.00049550, 0.00030359, 7.27248692, 0.99848629, 0.99920092, 0.49320573,\
++	-6.27298261, -0.00049542, 0.00030354, 7.27248719, 0.99848653, 0.99920105, 0.49320576,\
++	-6.27298280, -0.00049534, 0.00030349, 7.27248746, 0.99848678, 0.99920117, 0.49320585,\
++	-6.27298299, -0.00049526, 0.00030344, 7.27248773, 0.99848702, 0.99920130, 0.49320584,\
++	-6.27298318, -0.00049518, 0.00030339, 7.27248800, 0.99848726, 0.99920143, 0.49320590,\
++	-6.27298336, -0.00049510, 0.00030334, 7.27248827, 0.99848750, 0.99920156, 0.49320592,\
++	-6.27298355, -0.00049502, 0.00030330, 7.27248853, 0.99848774, 0.99920168, 0.49320594,\
++	-6.27298374, -0.00049494, 0.00030325, 7.27248880, 0.99848799, 0.99920181, 0.49320595,\
++	-6.27298393, -0.00049486, 0.00030320, 7.27248907, 0.99848823, 0.99920194, 0.49320597,\
++	-6.27298412, -0.00049478, 0.00030315, 7.27248934, 0.99848847, 0.99920207, 0.49320596,\
++	-6.27298431, -0.00049470, 0.00030310, 7.27248961, 0.99848871, 0.99920220, 0.49320603,\
++	-6.27298450, -0.00049462, 0.00030305, 7.27248988, 0.99848895, 0.99920232, 0.49320613,\
++	-6.27298469, -0.00049455, 0.00030300, 7.27249014, 0.99848919, 0.99920245, 0.49320607,\
++	-6.27298488, -0.00049447, 0.00030296, 7.27249041, 0.99848944, 0.99920258, 0.49320616,\
++	-6.27298507, -0.00049439, 0.00030291, 7.27249068, 0.99848968, 0.99920270, 0.49320618,\
++	-6.27298526, -0.00049431, 0.00030286, 7.27249095, 0.99848992, 0.99920283, 0.49320613,\
++	-6.27298545, -0.00049423, 0.00030281, 7.27249122, 0.99849016, 0.99920296, 0.49320620,\
++	-6.27298563, -0.00049415, 0.00030276, 7.27249148, 0.99849040, 0.99920309, 0.49320622,\
++	-6.27298582, -0.00049407, 0.00030271, 7.27249175, 0.99849064, 0.99920321, 0.49320626,\
++	-6.27298601, -0.00049399, 0.00030267, 7.27249202, 0.99849088, 0.99920334, 0.49320625,\
++	-6.27298620, -0.00049391, 0.00030262, 7.27249229, 0.99849112, 0.99920347, 0.49320640,\
++	-6.27298639, -0.00049384, 0.00030257, 7.27249255, 0.99849136, 0.99920360, 0.49320640,\
++	-6.27298658, -0.00049376, 0.00030252, 7.27249282, 0.99849161, 0.99920372, 0.49320636,\
++	-6.27298677, -0.00049368, 0.00030247, 7.27249309, 0.99849185, 0.99920385, 0.49320641,\
++	-6.27298695, -0.00049360, 0.00030242, 7.27249336, 0.99849209, 0.99920398, 0.49320644,\
++	-6.27298714, -0.00049352, 0.00030238, 7.27249362, 0.99849233, 0.99920410, 0.49320643,\
++	-6.27298733, -0.00049344, 0.00030233, 7.27249389, 0.99849257, 0.99920423, 0.49320647,\
++	-6.27298752, -0.00049336, 0.00030228, 7.27249416, 0.99849281, 0.99920436, 0.49320649,\
++	-6.27298771, -0.00049328, 0.00030223, 7.27249442, 0.99849305, 0.99920448, 0.49320659,\
++	-6.27298790, -0.00049321, 0.00030218, 7.27249469, 0.99849329, 0.99920461, 0.49320657,\
++	-6.27298808, -0.00049313, 0.00030214, 7.27249496, 0.99849353, 0.99920474, 0.49320661,\
++	-6.27298827, -0.00049305, 0.00030209, 7.27249522, 0.99849377, 0.99920486, 0.49320660,\
++	-6.27298846, -0.00049297, 0.00030204, 7.27249549, 0.99849401, 0.99920499, 0.49320663,\
++	-6.27298865, -0.00049289, 0.00030199, 7.27249576, 0.99849425, 0.99920512, 0.49320673,\
++	-6.27298883, -0.00049281, 0.00030194, 7.27249602, 0.99849449, 0.99920524, 0.49320673,\
++	-6.27298902, -0.00049273, 0.00030189, 7.27249629, 0.99849473, 0.99920537, 0.49320669,\
++	-6.27298921, -0.00049266, 0.00030185, 7.27249655, 0.99849497, 0.99920550, 0.49320677,\
++	-6.27298940, -0.00049258, 0.00030180, 7.27249682, 0.99849521, 0.99920562, 0.49320680,\
++	-6.27298959, -0.00049250, 0.00030175, 7.27249709, 0.99849545, 0.99920575, 0.49320687,\
++	-6.27298977, -0.00049242, 0.00030170, 7.27249735, 0.99849569, 0.99920588, 0.49320693,\
++	-6.27298996, -0.00049234, 0.00030165, 7.27249762, 0.99849593, 0.99920600, 0.49320681,\
++	-6.27299015, -0.00049226, 0.00030161, 7.27249788, 0.99849616, 0.99920613, 0.49320699,\
++	-6.27299033, -0.00049219, 0.00030156, 7.27249815, 0.99849640, 0.99920626, 0.49320687,\
++	-6.27299052, -0.00049211, 0.00030151, 7.27249841, 0.99849664, 0.99920638, 0.49320699,\
++	-6.27299071, -0.00049203, 0.00030146, 7.27249868, 0.99849688, 0.99920651, 0.49320705,\
++	-6.27299090, -0.00049195, 0.00030141, 7.27249894, 0.99849712, 0.99920663, 0.49320709,\
++	-6.27299108, -0.00049187, 0.00030137, 7.27249921, 0.99849736, 0.99920676, 0.49320704,\
++	-6.27299127, -0.00049180, 0.00030132, 7.27249948, 0.99849760, 0.99920689, 0.49320700,\
++	-6.27299146, -0.00049172, 0.00030127, 7.27249974, 0.99849784, 0.99920701, 0.49320709,\
++	-6.27299164, -0.00049164, 0.00030122, 7.27250001, 0.99849808, 0.99920714, 0.49320722,\
++	-6.27299183, -0.00049156, 0.00030118, 7.27250027, 0.99849831, 0.99920726, 0.49320713,\
++	-6.27299202, -0.00049148, 0.00030113, 7.27250053, 0.99849855, 0.99920739, 0.49320717,\
++	-6.27299220, -0.00049140, 0.00030108, 7.27250080, 0.99849879, 0.99920752, 0.49320720,\
++	-6.27299239, -0.00049133, 0.00030103, 7.27250106, 0.99849903, 0.99920764, 0.49320724,\
++	-6.27299258, -0.00049125, 0.00030098, 7.27250133, 0.99849927, 0.99920777, 0.49320731,\
++	-6.27299276, -0.00049117, 0.00030094, 7.27250159, 0.99849951, 0.99920789, 0.49320733,\
++	-6.27299295, -0.00049109, 0.00030089, 7.27250186, 0.99849974, 0.99920802, 0.49320736,\
++	-6.27299314, -0.00049102, 0.00030084, 7.27250212, 0.99849998, 0.99920814, 0.49320742,\
++	-6.27299332, -0.00049094, 0.00030079, 7.27250239, 0.99850022, 0.99920827, 0.49320737,\
++	-6.27299351, -0.00049086, 0.00030075, 7.27250265, 0.99850046, 0.99920840, 0.49320741,\
++	-6.27299370, -0.00049078, 0.00030070, 7.27250291, 0.99850070, 0.99920852, 0.49320747,\
++	-6.27299388, -0.00049070, 0.00030065, 7.27250318, 0.99850093, 0.99920865, 0.49320746,\
++	-6.27299407, -0.00049063, 0.00030060, 7.27250344, 0.99850117, 0.99920877, 0.49320747,\
++	-6.27299425, -0.00049055, 0.00030055, 7.27250371, 0.99850141, 0.99920890, 0.49320753,\
++	-6.27299444, -0.00049047, 0.00030051, 7.27250397, 0.99850165, 0.99920902, 0.49320754,\
++	-6.27299463, -0.00049039, 0.00030046, 7.27250423, 0.99850188, 0.99920915, 0.49320761,\
++	-6.27299481, -0.00049032, 0.00030041, 7.27250450, 0.99850212, 0.99920927, 0.49320761,\
++	-6.27299500, -0.00049024, 0.00030036, 7.27250476, 0.99850236, 0.99920940, 0.49320763,\
++	-6.27299518, -0.00049016, 0.00030032, 7.27250502, 0.99850260, 0.99920952, 0.49320763,\
++	-6.27299537, -0.00049008, 0.00030027, 7.27250529, 0.99850283, 0.99920965, 0.49320764,\
++	-6.27299556, -0.00049000, 0.00030022, 7.27250555, 0.99850307, 0.99920977, 0.49320768,\
++	-6.27299574, -0.00048993, 0.00030017, 7.27250581, 0.99850331, 0.99920990, 0.49320774,\
++	-6.27299593, -0.00048985, 0.00030013, 7.27250608, 0.99850354, 0.99921002, 0.49320770,\
++	-6.27299611, -0.00048977, 0.00030008, 7.27250634, 0.99850378, 0.99921015, 0.49320782,\
++	-6.27299630, -0.00048969, 0.00030003, 7.27250660, 0.99850402, 0.99921027, 0.49320781,\
++	-6.27299648, -0.00048962, 0.00029998, 7.27250687, 0.99850426, 0.99921040, 0.49320784,\
++	-6.27299667, -0.00048954, 0.00029994, 7.27250713, 0.99850449, 0.99921052, 0.49320787,\
++	-6.27299685, -0.00048946, 0.00029989, 7.27250739, 0.99850473, 0.99921065, 0.49320791,\
++	-6.27299704, -0.00048938, 0.00029984, 7.27250765, 0.99850496, 0.99921077, 0.49320794,\
++	-6.27299722, -0.00048931, 0.00029979, 7.27250792, 0.99850520, 0.99921090, 0.49320795,\
++	-6.27299741, -0.00048923, 0.00029975, 7.27250818, 0.99850544, 0.99921102, 0.49320801,\
++	-6.27299759, -0.00048915, 0.00029970, 7.27250844, 0.99850567, 0.99921115, 0.49320802,\
++	-6.27299778, -0.00048908, 0.00029965, 7.27250870, 0.99850591, 0.99921127, 0.49320805,\
++	-6.27299796, -0.00048900, 0.00029960, 7.27250896, 0.99850615, 0.99921140, 0.49320810,\
++	-6.27299815, -0.00048892, 0.00029956, 7.27250923, 0.99850638, 0.99921152, 0.49320806,\
++	-6.27299833, -0.00048884, 0.00029951, 7.27250949, 0.99850662, 0.99921165, 0.49320815,\
++	-6.27299852, -0.00048877, 0.00029946, 7.27250975, 0.99850685, 0.99921177, 0.49320816,\
++	-6.27299870, -0.00048869, 0.00029941, 7.27251001, 0.99850709, 0.99921190, 0.49320817,\
++	-6.27299889, -0.00048861, 0.00029937, 7.27251027, 0.99850733, 0.99921202, 0.49320820,\
++	-6.27299907, -0.00048854, 0.00029932, 7.27251054, 0.99850756, 0.99921214, 0.49320826,\
++	-6.27299926, -0.00048846, 0.00029927, 7.27251080, 0.99850780, 0.99921227, 0.49320827,\
++	-6.27299944, -0.00048838, 0.00029923, 7.27251106, 0.99850803, 0.99921239, 0.49320823,\
++	-6.27299962, -0.00048830, 0.00029918, 7.27251132, 0.99850827, 0.99921252, 0.49320833,\
++	-6.27299981, -0.00048823, 0.00029913, 7.27251158, 0.99850850, 0.99921264, 0.49320833,\
++	-6.27299999, -0.00048815, 0.00029908, 7.27251184, 0.99850874, 0.99921277, 0.49320839,\
++	-6.27300018, -0.00048807, 0.00029904, 7.27251210, 0.99850897, 0.99921289, 0.49320841,\
++	-6.27300036, -0.00048800, 0.00029899, 7.27251236, 0.99850921, 0.99921301, 0.49320850,\
++	-6.27300055, -0.00048792, 0.00029894, 7.27251263, 0.99850944, 0.99921314, 0.49320846,\
++	-6.27300073, -0.00048784, 0.00029890, 7.27251289, 0.99850968, 0.99921326, 0.49320848,\
++	-6.27300091, -0.00048777, 0.00029885, 7.27251315, 0.99850991, 0.99921339, 0.49320847,\
++	-6.27300110, -0.00048769, 0.00029880, 7.27251341, 0.99851015, 0.99921351, 0.49320858,\
++	-6.27300128, -0.00048761, 0.00029875, 7.27251367, 0.99851038, 0.99921363, 0.49320864,\
++	-6.27300146, -0.00048754, 0.00029871, 7.27251393, 0.99851062, 0.99921376, 0.49320855,\
++	-6.27300165, -0.00048746, 0.00029866, 7.27251419, 0.99851085, 0.99921388, 0.49320856,\
++	-6.27300183, -0.00048738, 0.00029861, 7.27251445, 0.99851109, 0.99921401, 0.49320863,\
++	-6.27300202, -0.00048730, 0.00029857, 7.27251471, 0.99851132, 0.99921413, 0.49320867,\
++	-6.27300220, -0.00048723, 0.00029852, 7.27251497, 0.99851156, 0.99921425, 0.49320861,\
++	-6.27300238, -0.00048715, 0.00029847, 7.27251523, 0.99851179, 0.99921438, 0.49320874,\
++	-6.27300257, -0.00048707, 0.00029842, 7.27251549, 0.99851202, 0.99921450, 0.49320874,\
++	-6.27300275, -0.00048700, 0.00029838, 7.27251575, 0.99851226, 0.99921462, 0.49320881,\
++	-6.27300293, -0.00048692, 0.00029833, 7.27251601, 0.99851249, 0.99921475, 0.49320880,\
++	-6.27300312, -0.00048685, 0.00029828, 7.27251627, 0.99851273, 0.99921487, 0.49320887,\
++	-6.27300330, -0.00048677, 0.00029824, 7.27251653, 0.99851296, 0.99921499, 0.49320886,\
++	-6.27300348, -0.00048669, 0.00029819, 7.27251679, 0.99851320, 0.99921512, 0.49320893,\
++	-6.27300367, -0.00048662, 0.00029814, 7.27251705, 0.99851343, 0.99921524, 0.49320893,\
++	-6.27300385, -0.00048654, 0.00029810, 7.27251731, 0.99851366, 0.99921536, 0.49320895,\
++	-6.27300403, -0.00048646, 0.00029805, 7.27251757, 0.99851390, 0.99921549, 0.49320892,\
++	-6.27300421, -0.00048639, 0.00029800, 7.27251783, 0.99851413, 0.99921561, 0.49320898,\
++	-6.27300440, -0.00048631, 0.00029796, 7.27251809, 0.99851436, 0.99921573, 0.49320901,\
++	-6.27300458, -0.00048623, 0.00029791, 7.27251835, 0.99851460, 0.99921586, 0.49320901,\
++	-6.27300476, -0.00048616, 0.00029786, 7.27251861, 0.99851483, 0.99921598, 0.49320912,\
++	-6.27300495, -0.00048608, 0.00029782, 7.27251886, 0.99851506, 0.99921610, 0.49320910,\
++	-6.27300513, -0.00048600, 0.00029777, 7.27251912, 0.99851530, 0.99921623, 0.49320913,\
++	-6.27300531, -0.00048593, 0.00029772, 7.27251938, 0.99851553, 0.99921635, 0.49320917,\
++	-6.27300549, -0.00048585, 0.00029768, 7.27251964, 0.99851576, 0.99921647, 0.49320916,\
++	-6.27300568, -0.00048578, 0.00029763, 7.27251990, 0.99851600, 0.99921660, 0.49320920,\
++	-6.27300586, -0.00048570, 0.00029758, 7.27252016, 0.99851623, 0.99921672, 0.49320924,\
++	-6.27300604, -0.00048562, 0.00029753, 7.27252042, 0.99851646, 0.99921684, 0.49320926,\
++	-6.27300622, -0.00048555, 0.00029749, 7.27252068, 0.99851669, 0.99921696, 0.49320930,\
++	-6.27300640, -0.00048547, 0.00029744, 7.27252093, 0.99851693, 0.99921709, 0.49320931,\
++	-6.27300659, -0.00048539, 0.00029739, 7.27252119, 0.99851716, 0.99921721, 0.49320938,\
++	-6.27300677, -0.00048532, 0.00029735, 7.27252145, 0.99851739, 0.99921733, 0.49320939,\
++	-6.27300695, -0.00048524, 0.00029730, 7.27252171, 0.99851763, 0.99921746, 0.49320948,\
++	-6.27300713, -0.00048517, 0.00029725, 7.27252197, 0.99851786, 0.99921758, 0.49320954,\
++	-6.27300732, -0.00048509, 0.00029721, 7.27252222, 0.99851809, 0.99921770, 0.49320950,\
++	-6.27300750, -0.00048501, 0.00029716, 7.27252248, 0.99851832, 0.99921782, 0.49320952,\
++	-6.27300768, -0.00048494, 0.00029712, 7.27252274, 0.99851855, 0.99921795, 0.49320954,\
++	-6.27300786, -0.00048486, 0.00029707, 7.27252300, 0.99851879, 0.99921807, 0.49320960,\
++	-6.27300804, -0.00048479, 0.00029702, 7.27252326, 0.99851902, 0.99921819, 0.49320959,\
++	-6.27300822, -0.00048471, 0.00029698, 7.27252351, 0.99851925, 0.99921831, 0.49320958,\
++	-6.27300841, -0.00048463, 0.00029693, 7.27252377, 0.99851948, 0.99921844, 0.49320965,\
++	-6.27300859, -0.00048456, 0.00029688, 7.27252403, 0.99851971, 0.99921856, 0.49320967,\
++	-6.27300877, -0.00048448, 0.00029684, 7.27252429, 0.99851995, 0.99921868, 0.49320972,\
++	-6.27300895, -0.00048441, 0.00029679, 7.27252454, 0.99852018, 0.99921880, 0.49320973,\
++	-6.27300913, -0.00048433, 0.00029674, 7.27252480, 0.99852041, 0.99921893, 0.49320972,\
++	-6.27300931, -0.00048426, 0.00029670, 7.27252506, 0.99852064, 0.99921905, 0.49320980,\
++	-6.27300949, -0.00048418, 0.00029665, 7.27252531, 0.99852087, 0.99921917, 0.49320981,\
++	-6.27300968, -0.00048410, 0.00029660, 7.27252557, 0.99852110, 0.99921929, 0.49320974,\
++	-6.27300986, -0.00048403, 0.00029656, 7.27252583, 0.99852134, 0.99921941, 0.49320985,\
++	-6.27301004, -0.00048395, 0.00029651, 7.27252608, 0.99852157, 0.99921954, 0.49320992,\
++	-6.27301022, -0.00048388, 0.00029646, 7.27252634, 0.99852180, 0.99921966, 0.49320992,\
++	-6.27301040, -0.00048380, 0.00029642, 7.27252660, 0.99852203, 0.99921978, 0.49320993,\
++	-6.27301058, -0.00048373, 0.00029637, 7.27252685, 0.99852226, 0.99921990, 0.49320993,\
++	-6.27301076, -0.00048365, 0.00029633, 7.27252711, 0.99852249, 0.99922002, 0.49321001,\
++	-6.27301094, -0.00048357, 0.00029628, 7.27252737, 0.99852272, 0.99922015, 0.49321003,\
++	-6.27301112, -0.00048350, 0.00029623, 7.27252762, 0.99852295, 0.99922027, 0.49321005,\
++	-6.27301130, -0.00048342, 0.00029619, 7.27252788, 0.99852318, 0.99922039, 0.49321008,\
++	-6.27301148, -0.00048335, 0.00029614, 7.27252814, 0.99852341, 0.99922051, 0.49321008,\
++	-6.27301166, -0.00048327, 0.00029609, 7.27252839, 0.99852364, 0.99922063, 0.49321010,\
++	-6.27301185, -0.00048320, 0.00029605, 7.27252865, 0.99852388, 0.99922075, 0.49321017,\
++	-6.27301203, -0.00048312, 0.00029600, 7.27252890, 0.99852411, 0.99922088, 0.49321023,\
++	-6.27301221, -0.00048305, 0.00029596, 7.27252916, 0.99852434, 0.99922100, 0.49321020,\
++	-6.27301239, -0.00048297, 0.00029591, 7.27252942, 0.99852457, 0.99922112, 0.49321023,\
++	-6.27301257, -0.00048290, 0.00029586, 7.27252967, 0.99852480, 0.99922124, 0.49321024,\
++	-6.27301275, -0.00048282, 0.00029582, 7.27252993, 0.99852503, 0.99922136, 0.49321030,\
++	-6.27301293, -0.00048275, 0.00029577, 7.27253018, 0.99852526, 0.99922148, 0.49321031,\
++	-6.27301311, -0.00048267, 0.00029572, 7.27253044, 0.99852549, 0.99922161, 0.49321030,\
++	-6.27301329, -0.00048259, 0.00029568, 7.27253069, 0.99852572, 0.99922173, 0.49321030,\
++	-6.27301347, -0.00048252, 0.00029563, 7.27253095, 0.99852595, 0.99922185, 0.49321039,\
++	-6.27301365, -0.00048244, 0.00029559, 7.27253120, 0.99852618, 0.99922197, 0.49321037,\
++	-6.27301383, -0.00048237, 0.00029554, 7.27253146, 0.99852641, 0.99922209, 0.49321046,\
++	-6.27301401, -0.00048229, 0.00029549, 7.27253171, 0.99852664, 0.99922221, 0.49321048,\
++	-6.27301419, -0.00048222, 0.00029545, 7.27253197, 0.99852687, 0.99922233, 0.49321049,\
++	-6.27301437, -0.00048214, 0.00029540, 7.27253222, 0.99852710, 0.99922245, 0.49321046,\
++	-6.27301455, -0.00048207, 0.00029536, 7.27253248, 0.99852732, 0.99922258, 0.49321053,\
++	-6.27301473, -0.00048199, 0.00029531, 7.27253273, 0.99852755, 0.99922270, 0.49321060,\
++	-6.27301491, -0.00048192, 0.00029526, 7.27253299, 0.99852778, 0.99922282, 0.49321066,\
++	-6.27301509, -0.00048184, 0.00029522, 7.27253324, 0.99852801, 0.99922294, 0.49321062,\
++	-6.27301526, -0.00048177, 0.00029517, 7.27253350, 0.99852824, 0.99922306, 0.49321065,\
++	-6.27301544, -0.00048169, 0.00029513, 7.27253375, 0.99852847, 0.99922318, 0.49321069,\
++	-6.27301562, -0.00048162, 0.00029508, 7.27253400, 0.99852870, 0.99922330, 0.49321066,\
++	-6.27301580, -0.00048154, 0.00029503, 7.27253426, 0.99852893, 0.99922342, 0.49321075,\
++	-6.27301598, -0.00048147, 0.00029499, 7.27253451, 0.99852916, 0.99922354, 0.49321074,\
++	-6.27301616, -0.00048139, 0.00029494, 7.27253477, 0.99852939, 0.99922366, 0.49321082,\
++	-6.27301634, -0.00048132, 0.00029490, 7.27253502, 0.99852962, 0.99922378, 0.49321081,\
++	-6.27301652, -0.00048124, 0.00029485, 7.27253528, 0.99852984, 0.99922391, 0.49321083,\
++	-6.27301670, -0.00048117, 0.00029480, 7.27253553, 0.99853007, 0.99922403, 0.49321094,\
++	-6.27301688, -0.00048109, 0.00029476, 7.27253578, 0.99853030, 0.99922415, 0.49321096,\
++	-6.27301706, -0.00048102, 0.00029471, 7.27253604, 0.99853053, 0.99922427, 0.49321093,\
++	-6.27301724, -0.00048095, 0.00029467, 7.27253629, 0.99853076, 0.99922439, 0.49321094,\
++	-6.27301741, -0.00048087, 0.00029462, 7.27253654, 0.99853099, 0.99922451, 0.49321098,\
++	-6.27301759, -0.00048080, 0.00029458, 7.27253680, 0.99853121, 0.99922463, 0.49321102,\
++	-6.27301777, -0.00048072, 0.00029453, 7.27253705, 0.99853144, 0.99922475, 0.49321101,\
++	-6.27301795, -0.00048065, 0.00029448, 7.27253730, 0.99853167, 0.99922487, 0.49321109,\
++	-6.27301813, -0.00048057, 0.00029444, 7.27253756, 0.99853190, 0.99922499, 0.49321107,\
++	-6.27301831, -0.00048050, 0.00029439, 7.27253781, 0.99853213, 0.99922511, 0.49321107,\
++	-6.27301849, -0.00048042, 0.00029435, 7.27253806, 0.99853235, 0.99922523, 0.49321110,\
++	-6.27301866, -0.00048035, 0.00029430, 7.27253832, 0.99853258, 0.99922535, 0.49321118,\
++	-6.27301884, -0.00048027, 0.00029426, 7.27253857, 0.99853281, 0.99922547, 0.49321119,\
++	-6.27301902, -0.00048020, 0.00029421, 7.27253882, 0.99853304, 0.99922559, 0.49321116,\
++	-6.27301920, -0.00048012, 0.00029416, 7.27253907, 0.99853327, 0.99922571, 0.49321127,\
++	-6.27301938, -0.00048005, 0.00029412, 7.27253933, 0.99853349, 0.99922583, 0.49321123,\
++	-6.27301956, -0.00047998, 0.00029407, 7.27253958, 0.99853372, 0.99922595, 0.49321129,\
++	-6.27301973, -0.00047990, 0.00029403, 7.27253983, 0.99853395, 0.99922607, 0.49321135,\
++	-6.27301991, -0.00047983, 0.00029398, 7.27254008, 0.99853418, 0.99922619, 0.49321135,\
++	-6.27302009, -0.00047975, 0.00029394, 7.27254034, 0.99853440, 0.99922631, 0.49321139,\
++	-6.27302027, -0.00047968, 0.00029389, 7.27254059, 0.99853463, 0.99922643, 0.49321146,\
++	-6.27302044, -0.00047960, 0.00029384, 7.27254084, 0.99853486, 0.99922655, 0.49321142,\
++	-6.27302062, -0.00047953, 0.00029380, 7.27254109, 0.99853508, 0.99922667, 0.49321144,\
++	-6.27302080, -0.00047946, 0.00029375, 7.27254135, 0.99853531, 0.99922679, 0.49321144,\
++	-6.27302098, -0.00047938, 0.00029371, 7.27254160, 0.99853554, 0.99922691, 0.49321157,\
++	-6.27302116, -0.00047931, 0.00029366, 7.27254185, 0.99853577, 0.99922703, 0.49321152,\
++	-6.27302133, -0.00047923, 0.00029362, 7.27254210, 0.99853599, 0.99922715, 0.49321153,\
++	-6.27302151, -0.00047916, 0.00029357, 7.27254235, 0.99853622, 0.99922727, 0.49321157,\
++	-6.27302169, -0.00047908, 0.00029353, 7.27254260, 0.99853645, 0.99922739, 0.49321160,\
++	-6.27302187, -0.00047901, 0.00029348, 7.27254286, 0.99853667, 0.99922751, 0.49321170,\
++	-6.27302204, -0.00047894, 0.00029344, 7.27254311, 0.99853690, 0.99922763, 0.49321172,\
++	-6.27302222, -0.00047886, 0.00029339, 7.27254336, 0.99853712, 0.99922775, 0.49321163,\
++	-6.27302240, -0.00047879, 0.00029334, 7.27254361, 0.99853735, 0.99922787, 0.49321166,\
++	-6.27302257, -0.00047871, 0.00029330, 7.27254386, 0.99853758, 0.99922799, 0.49321175,\
++	-6.27302275, -0.00047864, 0.00029325, 7.27254411, 0.99853780, 0.99922811, 0.49321177,\
++	-6.27302293, -0.00047857, 0.00029321, 7.27254436, 0.99853803, 0.99922823, 0.49321185,\
++	-6.27302311, -0.00047849, 0.00029316, 7.27254461, 0.99853826, 0.99922834, 0.49321182,\
++	-6.27302328, -0.00047842, 0.00029312, 7.27254486, 0.99853848, 0.99922846, 0.49321190,\
++	-6.27302346, -0.00047834, 0.00029307, 7.27254512, 0.99853871, 0.99922858, 0.49321191,\
++	-6.27302364, -0.00047827, 0.00029303, 7.27254537, 0.99853893, 0.99922870, 0.49321187,\
++	-6.27302381, -0.00047820, 0.00029298, 7.27254562, 0.99853916, 0.99922882, 0.49321186,\
++	-6.27302399, -0.00047812, 0.00029294, 7.27254587, 0.99853939, 0.99922894, 0.49321193,\
++	-6.27302417, -0.00047805, 0.00029289, 7.27254612, 0.99853961, 0.99922906, 0.49321201,\
++	-6.27302434, -0.00047797, 0.00029285, 7.27254637, 0.99853984, 0.99922918, 0.49321205,\
++	-6.27302452, -0.00047790, 0.00029280, 7.27254662, 0.99854006, 0.99922930, 0.49321210,\
++	-6.27302470, -0.00047783, 0.00029276, 7.27254687, 0.99854029, 0.99922942, 0.49321211,\
++	-6.27302487, -0.00047775, 0.00029271, 7.27254712, 0.99854051, 0.99922954, 0.49321206,\
++	-6.27302505, -0.00047768, 0.00029267, 7.27254737, 0.99854074, 0.99922965, 0.49321212,\
++	-6.27302523, -0.00047761, 0.00029262, 7.27254762, 0.99854096, 0.99922977, 0.49321212,\
++	-6.27302540, -0.00047753, 0.00029257, 7.27254787, 0.99854119, 0.99922989, 0.49321221,\
++	-6.27302558, -0.00047746, 0.00029253, 7.27254812, 0.99854141, 0.99923001, 0.49321218,\
++	-6.27302575, -0.00047739, 0.00029248, 7.27254837, 0.99854164, 0.99923013, 0.49321223,\
++	-6.27302593, -0.00047731, 0.00029244, 7.27254862, 0.99854186, 0.99923025, 0.49321227,\
++	-6.27302611, -0.00047724, 0.00029239, 7.27254887, 0.99854209, 0.99923037, 0.49321227,\
++	-6.27302628, -0.00047716, 0.00029235, 7.27254912, 0.99854231, 0.99923049, 0.49321226,\
++	-6.27302646, -0.00047709, 0.00029230, 7.27254937, 0.99854254, 0.99923060, 0.49321229,\
++	-6.27302664, -0.00047702, 0.00029226, 7.27254962, 0.99854276, 0.99923072, 0.49321232,\
++	-6.27302681, -0.00047694, 0.00029221, 7.27254987, 0.99854299, 0.99923084, 0.49321239,\
++	-6.27302699, -0.00047687, 0.00029217, 7.27255012, 0.99854321, 0.99923096, 0.49321240,\
++	-6.27302716, -0.00047680, 0.00029212, 7.27255037, 0.99854344, 0.99923108, 0.49321246,\
++	-6.27302734, -0.00047672, 0.00029208, 7.27255061, 0.99854366, 0.99923120, 0.49321244,\
++	-6.27302751, -0.00047665, 0.00029203, 7.27255086, 0.99854388, 0.99923132, 0.49321242,\
++	-6.27302769, -0.00047658, 0.00029199, 7.27255111, 0.99854411, 0.99923143, 0.49321242,\
++	-6.27302787, -0.00047650, 0.00029194, 7.27255136, 0.99854433, 0.99923155, 0.49321258,\
++	-6.27302804, -0.00047643, 0.00029190, 7.27255161, 0.99854456, 0.99923167, 0.49321251,\
++	-6.27302822, -0.00047636, 0.00029185, 7.27255186, 0.99854478, 0.99923179, 0.49321261,\
++	-6.27302839, -0.00047628, 0.00029181, 7.27255211, 0.99854501, 0.99923191, 0.49321264,\
++	-6.27302857, -0.00047621, 0.00029176, 7.27255236, 0.99854523, 0.99923203, 0.49321265,\
++	-6.27302874, -0.00047614, 0.00029172, 7.27255261, 0.99854545, 0.99923214, 0.49321268,\
++	-6.27302892, -0.00047606, 0.00029167, 7.27255285, 0.99854568, 0.99923226, 0.49321269,\
++	-6.27302909, -0.00047599, 0.00029163, 7.27255310, 0.99854590, 0.99923238, 0.49321277,\
++	-6.27302927, -0.00047592, 0.00029158, 7.27255335, 0.99854612, 0.99923250, 0.49321272,\
++	-6.27302944, -0.00047584, 0.00029154, 7.27255360, 0.99854635, 0.99923262, 0.49321278,\
++	-6.27302962, -0.00047577, 0.00029150, 7.27255385, 0.99854657, 0.99923273, 0.49321287,\
++	-6.27302979, -0.00047570, 0.00029145, 7.27255410, 0.99854679, 0.99923285, 0.49321280,\
++	-6.27302997, -0.00047562, 0.00029141, 7.27255434, 0.99854702, 0.99923297, 0.49321291,\
++	-6.27303014, -0.00047555, 0.00029136, 7.27255459, 0.99854724, 0.99923309, 0.49321279,\
++	-6.27303032, -0.00047548, 0.00029132, 7.27255484, 0.99854746, 0.99923321, 0.49321284,\
++	-6.27303049, -0.00047541, 0.00029127, 7.27255509, 0.99854769, 0.99923332, 0.49321288,\
++	-6.27303067, -0.00047533, 0.00029123, 7.27255533, 0.99854791, 0.99923344, 0.49321294,\
++	-6.27303084, -0.00047526, 0.00029118, 7.27255558, 0.99854813, 0.99923356, 0.49321292,\
++	-6.27303102, -0.00047519, 0.00029114, 7.27255583, 0.99854836, 0.99923368, 0.49321300,\
++	-6.27303119, -0.00047511, 0.00029109, 7.27255608, 0.99854858, 0.99923379, 0.49321302,\
++	-6.27303137, -0.00047504, 0.00029105, 7.27255632, 0.99854880, 0.99923391, 0.49321303,\
++	-6.27303154, -0.00047497, 0.00029100, 7.27255657, 0.99854903, 0.99923403, 0.49321311,\
++	-6.27303171, -0.00047490, 0.00029096, 7.27255682, 0.99854925, 0.99923415, 0.49321311,\
++	-6.27303189, -0.00047482, 0.00029091, 7.27255707, 0.99854947, 0.99923426, 0.49321315,\
++	-6.27303206, -0.00047475, 0.00029087, 7.27255731, 0.99854969, 0.99923438, 0.49321319,\
++	-6.27303224, -0.00047468, 0.00029082, 7.27255756, 0.99854992, 0.99923450, 0.49321317,\
++	-6.27303241, -0.00047460, 0.00029078, 7.27255781, 0.99855014, 0.99923462, 0.49321321,\
++	-6.27303259, -0.00047453, 0.00029073, 7.27255805, 0.99855036, 0.99923473, 0.49321326,\
++	-6.27303276, -0.00047446, 0.00029069, 7.27255830, 0.99855058, 0.99923485, 0.49321318,\
++	-6.27303293, -0.00047439, 0.00029065, 7.27255855, 0.99855081, 0.99923497, 0.49321326,\
++	-6.27303311, -0.00047431, 0.00029060, 7.27255879, 0.99855103, 0.99923509, 0.49321333,\
++	-6.27303328, -0.00047424, 0.00029056, 7.27255904, 0.99855125, 0.99923520, 0.49321333,\
++	-6.27303345, -0.00047417, 0.00029051, 7.27255929, 0.99855147, 0.99923532, 0.49321344,\
++	-6.27303363, -0.00047410, 0.00029047, 7.27255953, 0.99855169, 0.99923544, 0.49321337,\
++	-6.27303380, -0.00047402, 0.00029042, 7.27255978, 0.99855192, 0.99923555, 0.49321345,\
++	-6.27303398, -0.00047395, 0.00029038, 7.27256003, 0.99855214, 0.99923567, 0.49321337,\
++	-6.27303415, -0.00047388, 0.00029033, 7.27256027, 0.99855236, 0.99923579, 0.49321344,\
++	-6.27303432, -0.00047380, 0.00029029, 7.27256052, 0.99855258, 0.99923591, 0.49321346,\
++	-6.27303450, -0.00047373, 0.00029025, 7.27256076, 0.99855280, 0.99923602, 0.49321354,\
++	-6.27303467, -0.00047366, 0.00029020, 7.27256101, 0.99855302, 0.99923614, 0.49321353,\
++	-6.27303484, -0.00047359, 0.00029016, 7.27256126, 0.99855325, 0.99923626, 0.49321361,\
++	-6.27303502, -0.00047351, 0.00029011, 7.27256150, 0.99855347, 0.99923637, 0.49321358,\
++	-6.27303519, -0.00047344, 0.00029007, 7.27256175, 0.99855369, 0.99923649, 0.49321363,\
++	-6.27303536, -0.00047337, 0.00029002, 7.27256199, 0.99855391, 0.99923661, 0.49321367,\
++	-6.27303554, -0.00047330, 0.00028998, 7.27256224, 0.99855413, 0.99923672, 0.49321364,\
++	-6.27303571, -0.00047323, 0.00028993, 7.27256248, 0.99855435, 0.99923684, 0.49321377,\
++	-6.27303588, -0.00047315, 0.00028989, 7.27256273, 0.99855457, 0.99923696, 0.49321375,\
++	-6.27303606, -0.00047308, 0.00028985, 7.27256298, 0.99855479, 0.99923707, 0.49321379,\
++	-6.27303623, -0.00047301, 0.00028980, 7.27256322, 0.99855501, 0.99923719, 0.49321377,\
++	-6.27303640, -0.00047294, 0.00028976, 7.27256347, 0.99855524, 0.99923731, 0.49321372,\
++	-6.27303658, -0.00047286, 0.00028971, 7.27256371, 0.99855546, 0.99923742, 0.49321383,\
++	-6.27303675, -0.00047279, 0.00028967, 7.27256396, 0.99855568, 0.99923754, 0.49321384,\
++	-6.27303692, -0.00047272, 0.00028962, 7.27256420, 0.99855590, 0.99923766, 0.49321394,\
++	-6.27303709, -0.00047265, 0.00028958, 7.27256445, 0.99855612, 0.99923777, 0.49321386,\
++	-6.27303727, -0.00047258, 0.00028954, 7.27256469, 0.99855634, 0.99923789, 0.49321390,\
++	-6.27303744, -0.00047250, 0.00028949, 7.27256494, 0.99855656, 0.99923801, 0.49321401,\
++	-6.27303761, -0.00047243, 0.00028945, 7.27256518, 0.99855678, 0.99923812, 0.49321394,\
++	-6.27303778, -0.00047236, 0.00028940, 7.27256543, 0.99855700, 0.99923824, 0.49321395,\
++	-6.27303796, -0.00047229, 0.00028936, 7.27256567, 0.99855722, 0.99923835, 0.49321400,\
++	-6.27303813, -0.00047221, 0.00028931, 7.27256591, 0.99855744, 0.99923847, 0.49321392,\
++	-6.27303830, -0.00047214, 0.00028927, 7.27256616, 0.99855766, 0.99923859, 0.49321409,\
++	-6.27303847, -0.00047207, 0.00028923, 7.27256640, 0.99855788, 0.99923870, 0.49321404,\
++	-6.27303865, -0.00047200, 0.00028918, 7.27256665, 0.99855810, 0.99923882, 0.49321416,\
++	-6.27303882, -0.00047193, 0.00028914, 7.27256689, 0.99855832, 0.99923893, 0.49321409,\
++	-6.27303899, -0.00047185, 0.00028909, 7.27256714, 0.99855854, 0.99923905, 0.49321418,\
++	-6.27303916, -0.00047178, 0.00028905, 7.27256738, 0.99855876, 0.99923917, 0.49321418,\
++	-6.27303933, -0.00047171, 0.00028901, 7.27256762, 0.99855898, 0.99923928, 0.49321424,\
++	-6.27303951, -0.00047164, 0.00028896, 7.27256787, 0.99855920, 0.99923940, 0.49321434,\
++	-6.27303968, -0.00047157, 0.00028892, 7.27256811, 0.99855942, 0.99923951, 0.49321431,\
++	-6.27303985, -0.00047150, 0.00028887, 7.27256835, 0.99855964, 0.99923963, 0.49321429,\
++	-6.27304002, -0.00047142, 0.00028883, 7.27256860, 0.99855986, 0.99923975, 0.49321428,\
++	-6.27304019, -0.00047135, 0.00028879, 7.27256884, 0.99856008, 0.99923986, 0.49321434,\
++	-6.27304037, -0.00047128, 0.00028874, 7.27256909, 0.99856030, 0.99923998, 0.49321435,\
++	-6.27304054, -0.00047121, 0.00028870, 7.27256933, 0.99856052, 0.99924009, 0.49321437,\
++	-6.27304071, -0.00047114, 0.00028865, 7.27256957, 0.99856073, 0.99924021, 0.49321446,\
++	-6.27304088, -0.00047106, 0.00028861, 7.27256982, 0.99856095, 0.99924032, 0.49321442,\
++	-6.27304105, -0.00047099, 0.00028857, 7.27257006, 0.99856117, 0.99924044, 0.49321442,\
++	-6.27304122, -0.00047092, 0.00028852, 7.27257030, 0.99856139, 0.99924056, 0.49321451,\
++	-6.27304139, -0.00047085, 0.00028848, 7.27257054, 0.99856161, 0.99924067, 0.49321455,\
++	-6.27304157, -0.00047078, 0.00028843, 7.27257079, 0.99856183, 0.99924079, 0.49321455,\
++	-6.27304174, -0.00047071, 0.00028839, 7.27257103, 0.99856205, 0.99924090, 0.49321459,\
++	-6.27304191, -0.00047064, 0.00028835, 7.27257127, 0.99856227, 0.99924102, 0.49321464,\
++	-6.27304208, -0.00047056, 0.00028830, 7.27257152, 0.99856249, 0.99924113, 0.49321460,\
++	-6.27304225, -0.00047049, 0.00028826, 7.27257176, 0.99856270, 0.99924125, 0.49321463,\
++	-6.27304242, -0.00047042, 0.00028822, 7.27257200, 0.99856292, 0.99924136, 0.49321476,\
++	-6.27304259, -0.00047035, 0.00028817, 7.27257224, 0.99856314, 0.99924148, 0.49321475,\
++	-6.27304276, -0.00047028, 0.00028813, 7.27257249, 0.99856336, 0.99924159, 0.49321471,\
++	-6.27304294, -0.00047021, 0.00028808, 7.27257273, 0.99856358, 0.99924171, 0.49321475,\
++	-6.27304311, -0.00047013, 0.00028804, 7.27257297, 0.99856380, 0.99924183, 0.49321476,\
++	-6.27304328, -0.00047006, 0.00028800, 7.27257321, 0.99856401, 0.99924194, 0.49321484,\
++	-6.27304345, -0.00046999, 0.00028795, 7.27257346, 0.99856423, 0.99924206, 0.49321477,\
++	-6.27304362, -0.00046992, 0.00028791, 7.27257370, 0.99856445, 0.99924217, 0.49321483,\
++	-6.27304379, -0.00046985, 0.00028787, 7.27257394, 0.99856467, 0.99924229, 0.49321495,\
++	-6.27304396, -0.00046978, 0.00028782, 7.27257418, 0.99856489, 0.99924240, 0.49321491,\
++	-6.27304413, -0.00046971, 0.00028778, 7.27257442, 0.99856510, 0.99924252, 0.49321493,\
++	-6.27304430, -0.00046964, 0.00028773, 7.27257467, 0.99856532, 0.99924263, 0.49321498,\
++	-6.27304447, -0.00046956, 0.00028769, 7.27257491, 0.99856554, 0.99924275, 0.49321496,\
++	-6.27304464, -0.00046949, 0.00028765, 7.27257515, 0.99856576, 0.99924286, 0.49321502,\
++	-6.27304481, -0.00046942, 0.00028760, 7.27257539, 0.99856597, 0.99924298, 0.49321503,\
++	-6.27304498, -0.00046935, 0.00028756, 7.27257563, 0.99856619, 0.99924309, 0.49321507,\
++	-6.27304515, -0.00046928, 0.00028752, 7.27257587, 0.99856641, 0.99924320, 0.49321515,\
++	-6.27304532, -0.00046921, 0.00028747, 7.27257611, 0.99856663, 0.99924332, 0.49321508,\
++	-6.27304549, -0.00046914, 0.00028743, 7.27257636, 0.99856684, 0.99924343, 0.49321514,\
++	-6.27304566, -0.00046907, 0.00028738, 7.27257660, 0.99856706, 0.99924355, 0.49321526,\
++	-6.27304583, -0.00046900, 0.00028734, 7.27257684, 0.99856728, 0.99924366, 0.49321521,\
++	-6.27304600, -0.00046892, 0.00028730, 7.27257708, 0.99856750, 0.99924378, 0.49321521,\
++	-6.27304617, -0.00046885, 0.00028725, 7.27257732, 0.99856771, 0.99924389, 0.49321523,\
++	-6.27304634, -0.00046878, 0.00028721, 7.27257756, 0.99856793, 0.99924401, 0.49321526,\
++	-6.27304651, -0.00046871, 0.00028717, 7.27257780, 0.99856815, 0.99924412, 0.49321530,\
++	-6.27304668, -0.00046864, 0.00028712, 7.27257804, 0.99856836, 0.99924424, 0.49321535,\
++	-6.27304685, -0.00046857, 0.00028708, 7.27257828, 0.99856858, 0.99924435, 0.49321541,\
++	-6.27304702, -0.00046850, 0.00028704, 7.27257852, 0.99856880, 0.99924446, 0.49321529,\
++	-6.27304719, -0.00046843, 0.00028699, 7.27257876, 0.99856901, 0.99924458, 0.49321541,\
++	-6.27304736, -0.00046836, 0.00028695, 7.27257901, 0.99856923, 0.99924469, 0.49321535,\
++	-6.27304753, -0.00046829, 0.00028691, 7.27257925, 0.99856945, 0.99924481, 0.49321543,\
++	-6.27304770, -0.00046821, 0.00028686, 7.27257949, 0.99856966, 0.99924492, 0.49321548,\
++	-6.27304787, -0.00046814, 0.00028682, 7.27257973, 0.99856988, 0.99924504, 0.49321551,\
++	-6.27304804, -0.00046807, 0.00028678, 7.27257997, 0.99857010, 0.99924515, 0.49321545,\
++	-6.27304821, -0.00046800, 0.00028673, 7.27258021, 0.99857031, 0.99924526, 0.49321554,\
++	-6.27304838, -0.00046793, 0.00028669, 7.27258045, 0.99857053, 0.99924538, 0.49321557,\
++	-6.27304855, -0.00046786, 0.00028665, 7.27258069, 0.99857074, 0.99924549, 0.49321561,\
++	-6.27304872, -0.00046779, 0.00028660, 7.27258093, 0.99857096, 0.99924561, 0.49321567,\
++	-6.27304889, -0.00046772, 0.00028656, 7.27258117, 0.99857118, 0.99924572, 0.49321567,\
++	-6.27304906, -0.00046765, 0.00028652, 7.27258141, 0.99857139, 0.99924583, 0.49321571,\
++	-6.27304922, -0.00046758, 0.00028647, 7.27258165, 0.99857161, 0.99924595, 0.49321566,\
++	-6.27304939, -0.00046751, 0.00028643, 7.27258189, 0.99857182, 0.99924606, 0.49321576,\
++	-6.27304956, -0.00046744, 0.00028639, 7.27258213, 0.99857204, 0.99924618, 0.49321567,\
++	-6.27304973, -0.00046737, 0.00028634, 7.27258236, 0.99857226, 0.99924629, 0.49321585,\
++	-6.27304990, -0.00046730, 0.00028630, 7.27258260, 0.99857247, 0.99924640, 0.49321576,\
++	-6.27305007, -0.00046723, 0.00028626, 7.27258284, 0.99857269, 0.99924652, 0.49321581,\
++	-6.27305024, -0.00046715, 0.00028621, 7.27258308, 0.99857290, 0.99924663, 0.49321580,\
++	-6.27305041, -0.00046708, 0.00028617, 7.27258332, 0.99857312, 0.99924675, 0.49321590,\
++	-6.27305057, -0.00046701, 0.00028613, 7.27258356, 0.99857333, 0.99924686, 0.49321582,\
++	-6.27305074, -0.00046694, 0.00028608, 7.27258380, 0.99857355, 0.99924697, 0.49321587,\
++	-6.27305091, -0.00046687, 0.00028604, 7.27258404, 0.99857376, 0.99924709, 0.49321595,\
++	-6.27305108, -0.00046680, 0.00028600, 7.27258428, 0.99857398, 0.99924720, 0.49321595,\
++	-6.27305125, -0.00046673, 0.00028595, 7.27258452, 0.99857419, 0.99924731, 0.49321600,\
++	-6.27305142, -0.00046666, 0.00028591, 7.27258476, 0.99857441, 0.99924743, 0.49321598,\
++	-6.27305159, -0.00046659, 0.00028587, 7.27258499, 0.99857462, 0.99924754, 0.49321613,\
++	-6.27305175, -0.00046652, 0.00028582, 7.27258523, 0.99857484, 0.99924765, 0.49321611,\
++	-6.27305192, -0.00046645, 0.00028578, 7.27258547, 0.99857505, 0.99924777, 0.49321600,\
++	-6.27305209, -0.00046638, 0.00028574, 7.27258571, 0.99857527, 0.99924788, 0.49321621,\
++	-6.27305226, -0.00046631, 0.00028570, 7.27258595, 0.99857548, 0.99924799, 0.49321615,\
++	-6.27305243, -0.00046624, 0.00028565, 7.27258619, 0.99857570, 0.99924811, 0.49321620,\
++	-6.27305259, -0.00046617, 0.00028561, 7.27258642, 0.99857591, 0.99924822, 0.49321625,\
++	-6.27305276, -0.00046610, 0.00028557, 7.27258666, 0.99857613, 0.99924833, 0.49321621,\
++	-6.27305293, -0.00046603, 0.00028552, 7.27258690, 0.99857634, 0.99924845, 0.49321630,\
++	-6.27305310, -0.00046596, 0.00028548, 7.27258714, 0.99857656, 0.99924856, 0.49321623,\
++	-6.27305327, -0.00046589, 0.00028544, 7.27258738, 0.99857677, 0.99924867, 0.49321633,\
++	-6.27305343, -0.00046582, 0.00028539, 7.27258761, 0.99857698, 0.99924879, 0.49321637,\
++	-6.27305360, -0.00046575, 0.00028535, 7.27258785, 0.99857720, 0.99924890, 0.49321640,\
++	-6.27305377, -0.00046568, 0.00028531, 7.27258809, 0.99857741, 0.99924901, 0.49321641,\
++	-6.27305394, -0.00046561, 0.00028527, 7.27258833, 0.99857763, 0.99924913, 0.49321644,\
++	-6.27305410, -0.00046554, 0.00028522, 7.27258857, 0.99857784, 0.99924924, 0.49321640,\
++	-6.27305427, -0.00046547, 0.00028518, 7.27258880, 0.99857805, 0.99924935, 0.49321644,\
++	-6.27305444, -0.00046540, 0.00028514, 7.27258904, 0.99857827, 0.99924946, 0.49321647,\
++	-6.27305461, -0.00046533, 0.00028509, 7.27258928, 0.99857848, 0.99924958, 0.49321655,\
++	-6.27305477, -0.00046526, 0.00028505, 7.27258952, 0.99857870, 0.99924969, 0.49321652,\
++	-6.27305494, -0.00046519, 0.00028501, 7.27258975, 0.99857891, 0.99924980, 0.49321651,\
++	-6.27305511, -0.00046512, 0.00028497, 7.27258999, 0.99857912, 0.99924992, 0.49321656,\
++	-6.27305528, -0.00046505, 0.00028492, 7.27259023, 0.99857934, 0.99925003, 0.49321656,\
++	-6.27305544, -0.00046498, 0.00028488, 7.27259046, 0.99857955, 0.99925014, 0.49321665,\
++	-6.27305561, -0.00046491, 0.00028484, 7.27259070, 0.99857976, 0.99925025, 0.49321668,\
++	-6.27305578, -0.00046484, 0.00028479, 7.27259094, 0.99857998, 0.99925037, 0.49321665,\
++	-6.27305594, -0.00046477, 0.00028475, 7.27259117, 0.99858019, 0.99925048, 0.49321672,\
++	-6.27305611, -0.00046470, 0.00028471, 7.27259141, 0.99858040, 0.99925059, 0.49321675,\
++	-6.27305628, -0.00046463, 0.00028467, 7.27259165, 0.99858062, 0.99925070, 0.49321677,\
++	-6.27305645, -0.00046456, 0.00028462, 7.27259188, 0.99858083, 0.99925082, 0.49321675,\
++	-6.27305661, -0.00046449, 0.00028458, 7.27259212, 0.99858104, 0.99925093, 0.49321677,\
++	-6.27305678, -0.00046442, 0.00028454, 7.27259236, 0.99858126, 0.99925104, 0.49321687,\
++	-6.27305695, -0.00046435, 0.00028449, 7.27259259, 0.99858147, 0.99925115, 0.49321692,\
++	-6.27305711, -0.00046428, 0.00028445, 7.27259283, 0.99858168, 0.99925127, 0.49321690,\
++	-6.27305728, -0.00046421, 0.00028441, 7.27259307, 0.99858189, 0.99925138, 0.49321690,\
++	-6.27305745, -0.00046414, 0.00028437, 7.27259330, 0.99858211, 0.99925149, 0.49321703,\
++	-6.27305761, -0.00046407, 0.00028432, 7.27259354, 0.99858232, 0.99925160, 0.49321695,\
++	-6.27305778, -0.00046400, 0.00028428, 7.27259377, 0.99858253, 0.99925171, 0.49321702,\
++	-6.27305795, -0.00046393, 0.00028424, 7.27259401, 0.99858275, 0.99925183, 0.49321702,\
++	-6.27305811, -0.00046386, 0.00028420, 7.27259425, 0.99858296, 0.99925194, 0.49321707,\
++	-6.27305828, -0.00046380, 0.00028415, 7.27259448, 0.99858317, 0.99925205, 0.49321711,\
++	-6.27305844, -0.00046373, 0.00028411, 7.27259472, 0.99858338, 0.99925216, 0.49321702,\
++	-6.27305861, -0.00046366, 0.00028407, 7.27259495, 0.99858359, 0.99925227, 0.49321714,\
++	-6.27305878, -0.00046359, 0.00028403, 7.27259519, 0.99858381, 0.99925239, 0.49321714,\
++	-6.27305894, -0.00046352, 0.00028398, 7.27259543, 0.99858402, 0.99925250, 0.49321712,\
++	-6.27305911, -0.00046345, 0.00028394, 7.27259566, 0.99858423, 0.99925261, 0.49321724,\
++	-6.27305927, -0.00046338, 0.00028390, 7.27259590, 0.99858444, 0.99925272, 0.49321723,\
++	-6.27305944, -0.00046331, 0.00028386, 7.27259613, 0.99858465, 0.99925283, 0.49321718,\
++	-6.27305961, -0.00046324, 0.00028381, 7.27259637, 0.99858487, 0.99925295, 0.49321725,\
++	-6.27305977, -0.00046317, 0.00028377, 7.27259660, 0.99858508, 0.99925306, 0.49321729,\
++	-6.27305994, -0.00046310, 0.00028373, 7.27259684, 0.99858529, 0.99925317, 0.49321728,\
++	-6.27306010, -0.00046303, 0.00028369, 7.27259707, 0.99858550, 0.99925328, 0.49321728,\
++	-6.27306027, -0.00046296, 0.00028364, 7.27259731, 0.99858571, 0.99925339, 0.49321738,\
++	-6.27306044, -0.00046289, 0.00028360, 7.27259754, 0.99858593, 0.99925351, 0.49321730,\
++	-6.27306060, -0.00046282, 0.00028356, 7.27259778, 0.99858614, 0.99925362, 0.49321736,\
++	-6.27306077, -0.00046276, 0.00028352, 7.27259801, 0.99858635, 0.99925373, 0.49321743,\
++	-6.27306093, -0.00046269, 0.00028347, 7.27259825, 0.99858656, 0.99925384, 0.49321740,\
++	-6.27306110, -0.00046262, 0.00028343, 7.27259848, 0.99858677, 0.99925395, 0.49321757,\
++	-6.27306126, -0.00046255, 0.00028339, 7.27259872, 0.99858698, 0.99925406, 0.49321754,\
++	-6.27306143, -0.00046248, 0.00028335, 7.27259895, 0.99858719, 0.99925417, 0.49321760,\
++	-6.27306159, -0.00046241, 0.00028330, 7.27259918, 0.99858740, 0.99925429, 0.49321757,\
++	-6.27306176, -0.00046234, 0.00028326, 7.27259942, 0.99858762, 0.99925440, 0.49321761,\
++	-6.27306192, -0.00046227, 0.00028322, 7.27259965, 0.99858783, 0.99925451, 0.49321757,\
++	-6.27306209, -0.00046220, 0.00028318, 7.27259989, 0.99858804, 0.99925462, 0.49321764,\
++	-6.27306225, -0.00046213, 0.00028314, 7.27260012, 0.99858825, 0.99925473, 0.49321769,\
++	-6.27306242, -0.00046206, 0.00028309, 7.27260036, 0.99858846, 0.99925484, 0.49321767,\
++	-6.27306259, -0.00046200, 0.00028305, 7.27260059, 0.99858867, 0.99925495, 0.49321773,\
++	-6.27306275, -0.00046193, 0.00028301, 7.27260082, 0.99858888, 0.99925506, 0.49321772,\
++	-6.27306292, -0.00046186, 0.00028297, 7.27260106, 0.99858909, 0.99925518, 0.49321771,\
++	-6.27306308, -0.00046179, 0.00028292, 7.27260129, 0.99858930, 0.99925529, 0.49321779,\
++	-6.27306324, -0.00046172, 0.00028288, 7.27260152, 0.99858951, 0.99925540, 0.49321779,\
++	-6.27306341, -0.00046165, 0.00028284, 7.27260176, 0.99858972, 0.99925551, 0.49321780,\
++	-6.27306357, -0.00046158, 0.00028280, 7.27260199, 0.99858993, 0.99925562, 0.49321791,\
++	-6.27306374, -0.00046151, 0.00028275, 7.27260223, 0.99859014, 0.99925573, 0.49321791,\
++	-6.27306390, -0.00046144, 0.00028271, 7.27260246, 0.99859035, 0.99925584, 0.49321788,\
++	-6.27306407, -0.00046138, 0.00028267, 7.27260269, 0.99859056, 0.99925595, 0.49321791,\
++	-6.27306423, -0.00046131, 0.00028263, 7.27260293, 0.99859077, 0.99925606, 0.49321799,\
++	-6.27306440, -0.00046124, 0.00028259, 7.27260316, 0.99859098, 0.99925618, 0.49321795,\
++	-6.27306456, -0.00046117, 0.00028254, 7.27260339, 0.99859119, 0.99925629, 0.49321797,\
++	-6.27306473, -0.00046110, 0.00028250, 7.27260363, 0.99859140, 0.99925640, 0.49321800,\
++	-6.27306489, -0.00046103, 0.00028246, 7.27260386, 0.99859161, 0.99925651, 0.49321804,\
++	-6.27306505, -0.00046096, 0.00028242, 7.27260409, 0.99859182, 0.99925662, 0.49321800,\
++	-6.27306522, -0.00046090, 0.00028238, 7.27260432, 0.99859203, 0.99925673, 0.49321804,\
++	-6.27306538, -0.00046083, 0.00028233, 7.27260456, 0.99859224, 0.99925684, 0.49321806,\
++	-6.27306555, -0.00046076, 0.00028229, 7.27260479, 0.99859245, 0.99925695, 0.49321814,\
++	-6.27306571, -0.00046069, 0.00028225, 7.27260502, 0.99859266, 0.99925706, 0.49321818,\
++	-6.27306588, -0.00046062, 0.00028221, 7.27260525, 0.99859287, 0.99925717, 0.49321811,\
++	-6.27306604, -0.00046055, 0.00028217, 7.27260549, 0.99859308, 0.99925728, 0.49321821,\
++	-6.27306620, -0.00046048, 0.00028212, 7.27260572, 0.99859329, 0.99925739, 0.49321828,\
++	-6.27306637, -0.00046042, 0.00028208, 7.27260595, 0.99859350, 0.99925750, 0.49321829,\
++	-6.27306653, -0.00046035, 0.00028204, 7.27260618, 0.99859371, 0.99925761, 0.49321826,\
++	-6.27306670, -0.00046028, 0.00028200, 7.27260642, 0.99859392, 0.99925772, 0.49321833,\
++	-6.27306686, -0.00046021, 0.00028196, 7.27260665, 0.99859413, 0.99925783, 0.49321833,\
++	-6.27306702, -0.00046014, 0.00028191, 7.27260688, 0.99859434, 0.99925794, 0.49321830,\
++	-6.27306719, -0.00046007, 0.00028187, 7.27260711, 0.99859455, 0.99925805, 0.49321842,\
++	-6.27306735, -0.00046000, 0.00028183, 7.27260735, 0.99859475, 0.99925817, 0.49321838,\
++	-6.27306751, -0.00045994, 0.00028179, 7.27260758, 0.99859496, 0.99925828, 0.49321849,\
++	-6.27306768, -0.00045987, 0.00028175, 7.27260781, 0.99859517, 0.99925839, 0.49321848,\
++	-6.27306784, -0.00045980, 0.00028170, 7.27260804, 0.99859538, 0.99925850, 0.49321848,\
++	-6.27306800, -0.00045973, 0.00028166, 7.27260827, 0.99859559, 0.99925861, 0.49321852,\
++	-6.27306817, -0.00045966, 0.00028162, 7.27260850, 0.99859580, 0.99925872, 0.49321855,\
++	-6.27306833, -0.00045959, 0.00028158, 7.27260874, 0.99859601, 0.99925883, 0.49321849,\
++	-6.27306849, -0.00045953, 0.00028154, 7.27260897, 0.99859622, 0.99925894, 0.49321861,\
++	-6.27306866, -0.00045946, 0.00028150, 7.27260920, 0.99859642, 0.99925905, 0.49321858,\
++	-6.27306882, -0.00045939, 0.00028145, 7.27260943, 0.99859663, 0.99925916, 0.49321869,\
++	-6.27306898, -0.00045932, 0.00028141, 7.27260966, 0.99859684, 0.99925927, 0.49321873,\
++	-6.27306915, -0.00045925, 0.00028137, 7.27260989, 0.99859705, 0.99925938, 0.49321868,\
++	-6.27306931, -0.00045919, 0.00028133, 7.27261012, 0.99859726, 0.99925949, 0.49321872,\
++	-6.27306947, -0.00045912, 0.00028129, 7.27261035, 0.99859746, 0.99925960, 0.49321879,\
++	-6.27306964, -0.00045905, 0.00028124, 7.27261059, 0.99859767, 0.99925971, 0.49321873,\
++	-6.27306980, -0.00045898, 0.00028120, 7.27261082, 0.99859788, 0.99925982, 0.49321881,\
++	-6.27306996, -0.00045891, 0.00028116, 7.27261105, 0.99859809, 0.99925993, 0.49321869,\
++	-6.27307012, -0.00045885, 0.00028112, 7.27261128, 0.99859830, 0.99926003, 0.49321889,\
++	-6.27307029, -0.00045878, 0.00028108, 7.27261151, 0.99859850, 0.99926014, 0.49321883,\
++	-6.27307045, -0.00045871, 0.00028104, 7.27261174, 0.99859871, 0.99926025, 0.49321889,\
++	-6.27307061, -0.00045864, 0.00028099, 7.27261197, 0.99859892, 0.99926036, 0.49321886,\
++	-6.27307078, -0.00045857, 0.00028095, 7.27261220, 0.99859913, 0.99926047, 0.49321894,\
++	-6.27307094, -0.00045851, 0.00028091, 7.27261243, 0.99859934, 0.99926058, 0.49321894,\
++	-6.27307110, -0.00045844, 0.00028087, 7.27261266, 0.99859954, 0.99926069, 0.49321891,\
++	-6.27307126, -0.00045837, 0.00028083, 7.27261289, 0.99859975, 0.99926080, 0.49321907,\
++	-6.27307142, -0.00045830, 0.00028079, 7.27261312, 0.99859996, 0.99926091, 0.49321892,\
++	-6.27307159, -0.00045823, 0.00028074, 7.27261335, 0.99860016, 0.99926102, 0.49321904,\
++	-6.27307175, -0.00045817, 0.00028070, 7.27261358, 0.99860037, 0.99926113, 0.49321907,\
++	-6.27307191, -0.00045810, 0.00028066, 7.27261381, 0.99860058, 0.99926124, 0.49321903,\
++	-6.27307207, -0.00045803, 0.00028062, 7.27261404, 0.99860079, 0.99926135, 0.49321912,\
++	-6.27307224, -0.00045796, 0.00028058, 7.27261427, 0.99860099, 0.99926146, 0.49321912,\
++	-6.27307240, -0.00045790, 0.00028054, 7.27261450, 0.99860120, 0.99926157, 0.49321912,\
++	-6.27307256, -0.00045783, 0.00028050, 7.27261473, 0.99860141, 0.99926168, 0.49321924,\
++	-6.27307272, -0.00045776, 0.00028045, 7.27261496, 0.99860161, 0.99926179, 0.49321924,\
++	-6.27307288, -0.00045769, 0.00028041, 7.27261519, 0.99860182, 0.99926190, 0.49321921,\
++	-6.27307305, -0.00045762, 0.00028037, 7.27261542, 0.99860203, 0.99926200, 0.49321927,\
++	-6.27307321, -0.00045756, 0.00028033, 7.27261565, 0.99860223, 0.99926211, 0.49321925,\
++	-6.27307337, -0.00045749, 0.00028029, 7.27261588, 0.99860244, 0.99926222, 0.49321926,\
++	-6.27307353, -0.00045742, 0.00028025, 7.27261611, 0.99860265, 0.99926233, 0.49321932,\
++	-6.27307369, -0.00045735, 0.00028021, 7.27261634, 0.99860285, 0.99926244, 0.49321935,\
++	-6.27307386, -0.00045729, 0.00028016, 7.27261657, 0.99860306, 0.99926255, 0.49321931,\
++	-6.27307402, -0.00045722, 0.00028012, 7.27261680, 0.99860327, 0.99926266, 0.49321940,\
++	-6.27307418, -0.00045715, 0.00028008, 7.27261703, 0.99860347, 0.99926277, 0.49321940,\
++	-6.27307434, -0.00045708, 0.00028004, 7.27261726, 0.99860368, 0.99926288, 0.49321938,\
++	-6.27307450, -0.00045702, 0.00028000, 7.27261749, 0.99860389, 0.99926299, 0.49321955,\
++	-6.27307466, -0.00045695, 0.00027996, 7.27261771, 0.99860409, 0.99926309, 0.49321946,\
++	-6.27307482, -0.00045688, 0.00027992, 7.27261794, 0.99860430, 0.99926320, 0.49321952,\
++	-6.27307499, -0.00045681, 0.00027987, 7.27261817, 0.99860450, 0.99926331, 0.49321956,\
++	-6.27307515, -0.00045675, 0.00027983, 7.27261840, 0.99860471, 0.99926342, 0.49321950,\
++	-6.27307531, -0.00045668, 0.00027979, 7.27261863, 0.99860492, 0.99926353, 0.49321959,\
++	-6.27307547, -0.00045661, 0.00027975, 7.27261886, 0.99860512, 0.99926364, 0.49321954,\
++	-6.27307563, -0.00045654, 0.00027971, 7.27261909, 0.99860533, 0.99926375, 0.49321964,\
++	-6.27307579, -0.00045648, 0.00027967, 7.27261931, 0.99860553, 0.99926385, 0.49321960,\
++	-6.27307595, -0.00045641, 0.00027963, 7.27261954, 0.99860574, 0.99926396, 0.49321972,\
++	-6.27307611, -0.00045634, 0.00027959, 7.27261977, 0.99860595, 0.99926407, 0.49321973,\
++	-6.27307628, -0.00045628, 0.00027954, 7.27262000, 0.99860615, 0.99926418, 0.49321968,\
++	-6.27307644, -0.00045621, 0.00027950, 7.27262023, 0.99860636, 0.99926429, 0.49321967,\
++	-6.27307660, -0.00045614, 0.00027946, 7.27262046, 0.99860656, 0.99926440, 0.49321972,\
++	-6.27307676, -0.00045607, 0.00027942, 7.27262068, 0.99860677, 0.99926451, 0.49321981,\
++	-6.27307692, -0.00045601, 0.00027938, 7.27262091, 0.99860697, 0.99926461, 0.49321979,\
++	-6.27307708, -0.00045594, 0.00027934, 7.27262114, 0.99860718, 0.99926472, 0.49321986,\
++	-6.27307724, -0.00045587, 0.00027930, 7.27262137, 0.99860738, 0.99926483, 0.49321988,\
++	-6.27307740, -0.00045581, 0.00027926, 7.27262160, 0.99860759, 0.99926494, 0.49321990,\
++	-6.27307756, -0.00045574, 0.00027921, 7.27262182, 0.99860779, 0.99926505, 0.49321998,\
++	-6.27307772, -0.00045567, 0.00027917, 7.27262205, 0.99860800, 0.99926516, 0.49322003,\
++	-6.27307788, -0.00045560, 0.00027913, 7.27262228, 0.99860820, 0.99926526, 0.49321994,\
++	-6.27307804, -0.00045554, 0.00027909, 7.27262251, 0.99860841, 0.99926537, 0.49322002,\
++	-6.27307820, -0.00045547, 0.00027905, 7.27262273, 0.99860861, 0.99926548, 0.49321999,\
++	-6.27307836, -0.00045540, 0.00027901, 7.27262296, 0.99860882, 0.99926559, 0.49322005,\
++	-6.27307852, -0.00045534, 0.00027897, 7.27262319, 0.99860902, 0.99926570, 0.49322007,\
++	-6.27307868, -0.00045527, 0.00027893, 7.27262342, 0.99860923, 0.99926580, 0.49322002,\
++	-6.27307884, -0.00045520, 0.00027889, 7.27262364, 0.99860943, 0.99926591, 0.49322013,\
++	-6.27307900, -0.00045514, 0.00027884, 7.27262387, 0.99860964, 0.99926602, 0.49322009,\
++	-6.27307916, -0.00045507, 0.00027880, 7.27262410, 0.99860984, 0.99926613, 0.49322010,\
++	-6.27307932, -0.00045500, 0.00027876, 7.27262432, 0.99861004, 0.99926624, 0.49322020,\
++	-6.27307949, -0.00045493, 0.00027872, 7.27262455, 0.99861025, 0.99926634, 0.49322020,\
++	-6.27307964, -0.00045487, 0.00027868, 7.27262478, 0.99861045, 0.99926645, 0.49322021,\
++	-6.27307980, -0.00045480, 0.00027864, 7.27262500, 0.99861066, 0.99926656, 0.49322031,\
++	-6.27307996, -0.00045473, 0.00027860, 7.27262523, 0.99861086, 0.99926667, 0.49322031,\
++	-6.27308012, -0.00045467, 0.00027856, 7.27262546, 0.99861107, 0.99926677, 0.49322033,\
++	-6.27308028, -0.00045460, 0.00027852, 7.27262568, 0.99861127, 0.99926688, 0.49322029,\
++	-6.27308044, -0.00045453, 0.00027848, 7.27262591, 0.99861147, 0.99926699, 0.49322034,\
++	-6.27308060, -0.00045447, 0.00027844, 7.27262614, 0.99861168, 0.99926710, 0.49322033,\
++	-6.27308076, -0.00045440, 0.00027839, 7.27262636, 0.99861188, 0.99926721, 0.49322036,\
++	-6.27308092, -0.00045433, 0.00027835, 7.27262659, 0.99861209, 0.99926731, 0.49322047,\
++	-6.27308108, -0.00045427, 0.00027831, 7.27262682, 0.99861229, 0.99926742, 0.49322045,\
++	-6.27308124, -0.00045420, 0.00027827, 7.27262704, 0.99861249, 0.99926753, 0.49322049,\
++	-6.27308140, -0.00045413, 0.00027823, 7.27262727, 0.99861270, 0.99926764, 0.49322055,\
++	-6.27308156, -0.00045407, 0.00027819, 7.27262749, 0.99861290, 0.99926774, 0.49322054,\
++	-6.27308172, -0.00045400, 0.00027815, 7.27262772, 0.99861310, 0.99926785, 0.49322056,\
++	-6.27308188, -0.00045393, 0.00027811, 7.27262795, 0.99861331, 0.99926796, 0.49322059,\
++	-6.27308204, -0.00045387, 0.00027807, 7.27262817, 0.99861351, 0.99926807, 0.49322050,\
++	-6.27308220, -0.00045380, 0.00027803, 7.27262840, 0.99861371, 0.99926817, 0.49322063,\
++	-6.27308236, -0.00045373, 0.00027799, 7.27262862, 0.99861392, 0.99926828, 0.49322066,\
++	-6.27308252, -0.00045367, 0.00027795, 7.27262885, 0.99861412, 0.99926839, 0.49322063,\
++	-6.27308268, -0.00045360, 0.00027790, 7.27262907, 0.99861432, 0.99926849, 0.49322070,\
++	-6.27308284, -0.00045353, 0.00027786, 7.27262930, 0.99861453, 0.99926860, 0.49322066,\
++	-6.27308299, -0.00045347, 0.00027782, 7.27262953, 0.99861473, 0.99926871, 0.49322073,\
++	-6.27308315, -0.00045340, 0.00027778, 7.27262975, 0.99861493, 0.99926882, 0.49322074,\
++	-6.27308331, -0.00045334, 0.00027774, 7.27262998, 0.99861514, 0.99926892, 0.49322073,\
++	-6.27308347, -0.00045327, 0.00027770, 7.27263020, 0.99861534, 0.99926903, 0.49322080,\
++	-6.27308363, -0.00045320, 0.00027766, 7.27263043, 0.99861554, 0.99926914, 0.49322087,\
++	-6.27308379, -0.00045314, 0.00027762, 7.27263065, 0.99861574, 0.99926924, 0.49322079,\
++	-6.27308395, -0.00045307, 0.00027758, 7.27263088, 0.99861595, 0.99926935, 0.49322088,\
++	-6.27308411, -0.00045300, 0.00027754, 7.27263110, 0.99861615, 0.99926946, 0.49322089,\
++	-6.27308426, -0.00045294, 0.00027750, 7.27263133, 0.99861635, 0.99926956, 0.49322091,\
++	-6.27308442, -0.00045287, 0.00027746, 7.27263155, 0.99861655, 0.99926967, 0.49322099,\
++	-6.27308458, -0.00045281, 0.00027742, 7.27263178, 0.99861676, 0.99926978, 0.49322093,\
++	-6.27308474, -0.00045274, 0.00027738, 7.27263200, 0.99861696, 0.99926989, 0.49322094,\
++	-6.27308490, -0.00045267, 0.00027734, 7.27263223, 0.99861716, 0.99926999, 0.49322104,\
++	-6.27308506, -0.00045261, 0.00027729, 7.27263245, 0.99861736, 0.99927010, 0.49322101,\
++	-6.27308522, -0.00045254, 0.00027725, 7.27263268, 0.99861757, 0.99927021, 0.49322100,\
++	-6.27308537, -0.00045247, 0.00027721, 7.27263290, 0.99861777, 0.99927031, 0.49322109,\
++	-6.27308553, -0.00045241, 0.00027717, 7.27263312, 0.99861797, 0.99927042, 0.49322112,\
++	-6.27308569, -0.00045234, 0.00027713, 7.27263335, 0.99861817, 0.99927053, 0.49322118,\
++	-6.27308585, -0.00045228, 0.00027709, 7.27263357, 0.99861837, 0.99927063, 0.49322108,\
++	-6.27308601, -0.00045221, 0.00027705, 7.27263380, 0.99861858, 0.99927074, 0.49322119,\
++	-6.27308616, -0.00045214, 0.00027701, 7.27263402, 0.99861878, 0.99927085, 0.49322124,\
++	-6.27308632, -0.00045208, 0.00027697, 7.27263424, 0.99861898, 0.99927095, 0.49322120,\
++	-6.27308648, -0.00045201, 0.00027693, 7.27263447, 0.99861918, 0.99927106, 0.49322125,\
++	-6.27308664, -0.00045195, 0.00027689, 7.27263469, 0.99861938, 0.99927116, 0.49322131,\
++	-6.27308680, -0.00045188, 0.00027685, 7.27263492, 0.99861959, 0.99927127, 0.49322139,\
++	-6.27308695, -0.00045181, 0.00027681, 7.27263514, 0.99861979, 0.99927138, 0.49322128,\
++	-6.27308711, -0.00045175, 0.00027677, 7.27263536, 0.99861999, 0.99927148, 0.49322133,\
++	-6.27308727, -0.00045168, 0.00027673, 7.27263559, 0.99862019, 0.99927159, 0.49322134,\
++	-6.27308743, -0.00045162, 0.00027669, 7.27263581, 0.99862039, 0.99927170, 0.49322141,\
++	-6.27308759, -0.00045155, 0.00027665, 7.27263604, 0.99862059, 0.99927180, 0.49322137,\
++	-6.27308774, -0.00045148, 0.00027661, 7.27263626, 0.99862079, 0.99927191, 0.49322148,\
++	-6.27308790, -0.00045142, 0.00027657, 7.27263648, 0.99862099, 0.99927202, 0.49322145,\
++	-6.27308806, -0.00045135, 0.00027653, 7.27263671, 0.99862120, 0.99927212, 0.49322138,\
++	-6.27308822, -0.00045129, 0.00027649, 7.27263693, 0.99862140, 0.99927223, 0.49322155,\
++	-6.27308837, -0.00045122, 0.00027645, 7.27263715, 0.99862160, 0.99927233, 0.49322147,\
++	-6.27308853, -0.00045116, 0.00027641, 7.27263737, 0.99862180, 0.99927244, 0.49322164,\
++	-6.27308869, -0.00045109, 0.00027636, 7.27263760, 0.99862200, 0.99927255, 0.49322155,\
++	-6.27308884, -0.00045102, 0.00027632, 7.27263782, 0.99862220, 0.99927265, 0.49322156,\
++	-6.27308900, -0.00045096, 0.00027628, 7.27263804, 0.99862240, 0.99927276, 0.49322154,\
++	-6.27308916, -0.00045089, 0.00027624, 7.27263827, 0.99862260, 0.99927286, 0.49322167,\
++	-6.27308932, -0.00045083, 0.00027620, 7.27263849, 0.99862280, 0.99927297, 0.49322165,\
++	-6.27308947, -0.00045076, 0.00027616, 7.27263871, 0.99862300, 0.99927308, 0.49322177,\
++	-6.27308963, -0.00045070, 0.00027612, 7.27263894, 0.99862320, 0.99927318, 0.49322172,\
++	-6.27308979, -0.00045063, 0.00027608, 7.27263916, 0.99862340, 0.99927329, 0.49322177,\
++	-6.27308994, -0.00045056, 0.00027604, 7.27263938, 0.99862360, 0.99927339, 0.49322171,\
++	-6.27309010, -0.00045050, 0.00027600, 7.27263960, 0.99862381, 0.99927350, 0.49322172,\
++	-6.27309026, -0.00045043, 0.00027596, 7.27263983, 0.99862401, 0.99927360, 0.49322182,\
++	-6.27309042, -0.00045037, 0.00027592, 7.27264005, 0.99862421, 0.99927371, 0.49322183,\
++	-6.27309057, -0.00045030, 0.00027588, 7.27264027, 0.99862441, 0.99927382, 0.49322187,\
++	-6.27309073, -0.00045024, 0.00027584, 7.27264049, 0.99862461, 0.99927392, 0.49322184,\
++	-6.27309089, -0.00045017, 0.00027580, 7.27264071, 0.99862481, 0.99927403, 0.49322189,\
++	-6.27309104, -0.00045011, 0.00027576, 7.27264094, 0.99862501, 0.99927413, 0.49322190,\
++	-6.27309120, -0.00045004, 0.00027572, 7.27264116, 0.99862521, 0.99927424, 0.49322188,\
++	-6.27309136, -0.00044997, 0.00027568, 7.27264138, 0.99862541, 0.99927434, 0.49322197,\
++	-6.27309151, -0.00044991, 0.00027564, 7.27264160, 0.99862561, 0.99927445, 0.49322195,\
++	-6.27309167, -0.00044984, 0.00027560, 7.27264182, 0.99862581, 0.99927455, 0.49322198,\
++	-6.27309183, -0.00044978, 0.00027556, 7.27264205, 0.99862601, 0.99927466, 0.49322195,\
++	-6.27309198, -0.00044971, 0.00027552, 7.27264227, 0.99862621, 0.99927477, 0.49322211,\
++	-6.27309214, -0.00044965, 0.00027548, 7.27264249, 0.99862641, 0.99927487, 0.49322215,\
++	-6.27309229, -0.00044958, 0.00027544, 7.27264271, 0.99862660, 0.99927498, 0.49322209,\
++	-6.27309245, -0.00044952, 0.00027540, 7.27264293, 0.99862680, 0.99927508, 0.49322211,\
++	-6.27309261, -0.00044945, 0.00027536, 7.27264315, 0.99862700, 0.99927519, 0.49322213,\
++	-6.27309276, -0.00044939, 0.00027532, 7.27264338, 0.99862720, 0.99927529, 0.49322220,\
++	-6.27309292, -0.00044932, 0.00027528, 7.27264360, 0.99862740, 0.99927540, 0.49322206,\
++	-6.27309307, -0.00044926, 0.00027524, 7.27264382, 0.99862760, 0.99927550, 0.49322222,\
++	-6.27309323, -0.00044919, 0.00027520, 7.27264404, 0.99862780, 0.99927561, 0.49322230,\
++	-6.27309339, -0.00044913, 0.00027516, 7.27264426, 0.99862800, 0.99927571, 0.49322233,\
++	-6.27309354, -0.00044906, 0.00027512, 7.27264448, 0.99862820, 0.99927582, 0.49322226,\
++	-6.27309370, -0.00044900, 0.00027508, 7.27264470, 0.99862840, 0.99927592, 0.49322237,\
++	-6.27309385, -0.00044893, 0.00027504, 7.27264492, 0.99862860, 0.99927603, 0.49322238,\
++	-6.27309401, -0.00044887, 0.00027500, 7.27264514, 0.99862880, 0.99927613, 0.49322229,\
++	-6.27309417, -0.00044880, 0.00027496, 7.27264537, 0.99862899, 0.99927624, 0.49322245,\
++	-6.27309432, -0.00044874, 0.00027492, 7.27264559, 0.99862919, 0.99927634, 0.49322245,\
++	-6.27309448, -0.00044867, 0.00027488, 7.27264581, 0.99862939, 0.99927645, 0.49322246,\
++	-6.27309463, -0.00044861, 0.00027484, 7.27264603, 0.99862959, 0.99927655, 0.49322247,\
++	-6.27309479, -0.00044854, 0.00027480, 7.27264625, 0.99862979, 0.99927666, 0.49322254,\
++	-6.27309494, -0.00044848, 0.00027476, 7.27264647, 0.99862999, 0.99927676, 0.49322253,\
++	-6.27309510, -0.00044841, 0.00027472, 7.27264669, 0.99863019, 0.99927687, 0.49322258,\
++	-6.27309526, -0.00044835, 0.00027468, 7.27264691, 0.99863039, 0.99927697, 0.49322250,\
++	-6.27309541, -0.00044828, 0.00027464, 7.27264713, 0.99863058, 0.99927708, 0.49322253,\
++	-6.27309557, -0.00044822, 0.00027460, 7.27264735, 0.99863078, 0.99927718, 0.49322260,\
++	-6.27309572, -0.00044815, 0.00027456, 7.27264757, 0.99863098, 0.99927729, 0.49322265,\
++	-6.27309588, -0.00044809, 0.00027452, 7.27264779, 0.99863118, 0.99927739, 0.49322261,\
++	-6.27309603, -0.00044802, 0.00027448, 7.27264801, 0.99863138, 0.99927750, 0.49322265,\
++	-6.27309619, -0.00044796, 0.00027444, 7.27264823, 0.99863158, 0.99927760, 0.49322274,\
++	-6.27309634, -0.00044789, 0.00027440, 7.27264845, 0.99863177, 0.99927770, 0.49322271,\
++	-6.27309650, -0.00044783, 0.00027436, 7.27264867, 0.99863197, 0.99927781, 0.49322271,\
++	-6.27309665, -0.00044776, 0.00027432, 7.27264889, 0.99863217, 0.99927791, 0.49322277,\
++	-6.27309681, -0.00044770, 0.00027429, 7.27264911, 0.99863237, 0.99927802, 0.49322282,\
++	-6.27309696, -0.00044763, 0.00027425, 7.27264933, 0.99863256, 0.99927812, 0.49322277,\
++	-6.27309712, -0.00044757, 0.00027421, 7.27264955, 0.99863276, 0.99927823, 0.49322279,\
++	-6.27309727, -0.00044750, 0.00027417, 7.27264977, 0.99863296, 0.99927833, 0.49322290,\
++	-6.27309743, -0.00044744, 0.00027413, 7.27264999, 0.99863316, 0.99927844, 0.49322286,\
++	-6.27309758, -0.00044737, 0.00027409, 7.27265021, 0.99863336, 0.99927854, 0.49322289,\
++	-6.27309774, -0.00044731, 0.00027405, 7.27265043, 0.99863355, 0.99927864, 0.49322292,\
++	-6.27309789, -0.00044724, 0.00027401, 7.27265065, 0.99863375, 0.99927875, 0.49322303,\
++	-6.27309805, -0.00044718, 0.00027397, 7.27265087, 0.99863395, 0.99927885, 0.49322297,\
++	-6.27309820, -0.00044712, 0.00027393, 7.27265108, 0.99863415, 0.99927896, 0.49322299,\
++	-6.27309835, -0.00044705, 0.00027389, 7.27265130, 0.99863434, 0.99927906, 0.49322300,\
++	-6.27309851, -0.00044699, 0.00027385, 7.27265152, 0.99863454, 0.99927916, 0.49322302,\
++	-6.27309866, -0.00044692, 0.00027381, 7.27265174, 0.99863474, 0.99927927, 0.49322302,\
++	-6.27309882, -0.00044686, 0.00027377, 7.27265196, 0.99863493, 0.99927937, 0.49322309,\
++	-6.27309897, -0.00044679, 0.00027373, 7.27265218, 0.99863513, 0.99927948, 0.49322304,\
++	-6.27309913, -0.00044673, 0.00027369, 7.27265240, 0.99863533, 0.99927958, 0.49322317,\
++	-6.27309928, -0.00044666, 0.00027365, 7.27265262, 0.99863553, 0.99927968, 0.49322317,\
++	-6.27309944, -0.00044660, 0.00027361, 7.27265284, 0.99863572, 0.99927979, 0.49322320,\
++	-6.27309959, -0.00044653, 0.00027357, 7.27265305, 0.99863592, 0.99927989, 0.49322325,\
++	-6.27309974, -0.00044647, 0.00027353, 7.27265327, 0.99863612, 0.99928000, 0.49322322,\
++	-6.27309990, -0.00044641, 0.00027349, 7.27265349, 0.99863631, 0.99928010, 0.49322331,\
++	-6.27310005, -0.00044634, 0.00027345, 7.27265371, 0.99863651, 0.99928020, 0.49322327,\
++	-6.27310021, -0.00044628, 0.00027341, 7.27265393, 0.99863671, 0.99928031, 0.49322319,\
++	-6.27310036, -0.00044621, 0.00027338, 7.27265415, 0.99863690, 0.99928041, 0.49322336,\
++	-6.27310051, -0.00044615, 0.00027334, 7.27265436, 0.99863710, 0.99928052, 0.49322341,\
++	-6.27310067, -0.00044608, 0.00027330, 7.27265458, 0.99863730, 0.99928062, 0.49322335,\
++	-6.27310082, -0.00044602, 0.00027326, 7.27265480, 0.99863749, 0.99928072, 0.49322336,\
++	-6.27310097, -0.00044596, 0.00027322, 7.27265502, 0.99863769, 0.99928083, 0.49322343,\
++	-6.27310113, -0.00044589, 0.00027318, 7.27265524, 0.99863789, 0.99928093, 0.49322345,\
++	-6.27310128, -0.00044583, 0.00027314, 7.27265546, 0.99863808, 0.99928103, 0.49322341,\
++	-6.27310144, -0.00044576, 0.00027310, 7.27265567, 0.99863828, 0.99928114, 0.49322343,\
++	-6.27310159, -0.00044570, 0.00027306, 7.27265589, 0.99863847, 0.99928124, 0.49322353,\
++	-6.27310174, -0.00044563, 0.00027302, 7.27265611, 0.99863867, 0.99928134, 0.49322355,\
++	-6.27310190, -0.00044557, 0.00027298, 7.27265633, 0.99863887, 0.99928145, 0.49322359,\
++	-6.27310205, -0.00044551, 0.00027294, 7.27265654, 0.99863906, 0.99928155, 0.49322357,\
++	-6.27310220, -0.00044544, 0.00027290, 7.27265676, 0.99863926, 0.99928165, 0.49322365,\
++	-6.27310236, -0.00044538, 0.00027286, 7.27265698, 0.99863945, 0.99928176, 0.49322365,\
++	-6.27310251, -0.00044531, 0.00027282, 7.27265720, 0.99863965, 0.99928186, 0.49322366,\
++	-6.27310266, -0.00044525, 0.00027279, 7.27265741, 0.99863984, 0.99928196, 0.49322350,\
++	-6.27310282, -0.00044519, 0.00027275, 7.27265763, 0.99864004, 0.99928207, 0.49322363,\
++	-6.27310297, -0.00044512, 0.00027271, 7.27265785, 0.99864024, 0.99928217, 0.49322376,\
++	-6.27310312, -0.00044506, 0.00027267, 7.27265807, 0.99864043, 0.99928227, 0.49322376,\
++	-6.27310328, -0.00044499, 0.00027263, 7.27265828, 0.99864063, 0.99928238, 0.49322386,\
++	-6.27310343, -0.00044493, 0.00027259, 7.27265850, 0.99864082, 0.99928248, 0.49322387,\
++	-6.27310358, -0.00044487, 0.00027255, 7.27265872, 0.99864102, 0.99928258, 0.49322377,\
++	-6.27310374, -0.00044480, 0.00027251, 7.27265893, 0.99864121, 0.99928269, 0.49322371,\
++	-6.27310389, -0.00044474, 0.00027247, 7.27265915, 0.99864141, 0.99928279, 0.49322385,\
++	-6.27310404, -0.00044467, 0.00027243, 7.27265937, 0.99864160, 0.99928289, 0.49322391,\
++	-6.27310419, -0.00044461, 0.00027239, 7.27265958, 0.99864180, 0.99928300, 0.49322388,\
++	-6.27310435, -0.00044455, 0.00027235, 7.27265980, 0.99864199, 0.99928310, 0.49322387,\
++	-6.27310450, -0.00044448, 0.00027231, 7.27266002, 0.99864219, 0.99928320, 0.49322394,\
++	-6.27310465, -0.00044442, 0.00027228, 7.27266023, 0.99864238, 0.99928330, 0.49322403,\
++	-6.27310481, -0.00044436, 0.00027224, 7.27266045, 0.99864258, 0.99928341, 0.49322393,\
++	-6.27310496, -0.00044429, 0.00027220, 7.27266067, 0.99864277, 0.99928351, 0.49322396,\
++	-6.27310511, -0.00044423, 0.00027216, 7.27266088, 0.99864297, 0.99928361, 0.49322397,\
++	-6.27310526, -0.00044416, 0.00027212, 7.27266110, 0.99864316, 0.99928372, 0.49322408,\
++	-6.27310542, -0.00044410, 0.00027208, 7.27266132, 0.99864336, 0.99928382, 0.49322399,\
++	-6.27310557, -0.00044404, 0.00027204, 7.27266153, 0.99864355, 0.99928392, 0.49322405,\
++	-6.27310572, -0.00044397, 0.00027200, 7.27266175, 0.99864375, 0.99928402, 0.49322411,\
++	-6.27310587, -0.00044391, 0.00027196, 7.27266196, 0.99864394, 0.99928413, 0.49322415,\
++	-6.27310603, -0.00044385, 0.00027192, 7.27266218, 0.99864414, 0.99928423, 0.49322414,\
++	-6.27310618, -0.00044378, 0.00027189, 7.27266240, 0.99864433, 0.99928433, 0.49322429,\
++	-6.27310633, -0.00044372, 0.00027185, 7.27266261, 0.99864453, 0.99928444, 0.49322422,\
++	-6.27310648, -0.00044365, 0.00027181, 7.27266283, 0.99864472, 0.99928454, 0.49322422,\
++	-6.27310663, -0.00044359, 0.00027177, 7.27266304, 0.99864491, 0.99928464, 0.49322418,\
++	-6.27310679, -0.00044353, 0.00027173, 7.27266326, 0.99864511, 0.99928474, 0.49322426,\
++	-6.27310694, -0.00044346, 0.00027169, 7.27266347, 0.99864530, 0.99928485, 0.49322432,\
++	-6.27310709, -0.00044340, 0.00027165, 7.27266369, 0.99864550, 0.99928495, 0.49322429,\
++	-6.27310724, -0.00044334, 0.00027161, 7.27266391, 0.99864569, 0.99928505, 0.49322440,\
++	-6.27310739, -0.00044327, 0.00027157, 7.27266412, 0.99864589, 0.99928515, 0.49322431,\
++	-6.27310755, -0.00044321, 0.00027153, 7.27266434, 0.99864608, 0.99928526, 0.49322435,\
++	-6.27310770, -0.00044315, 0.00027150, 7.27266455, 0.99864627, 0.99928536, 0.49322446,\
++	-6.27310785, -0.00044308, 0.00027146, 7.27266477, 0.99864647, 0.99928546, 0.49322440,\
++	-6.27310800, -0.00044302, 0.00027142, 7.27266498, 0.99864666, 0.99928556, 0.49322441,\
++	-6.27310815, -0.00044296, 0.00027138, 7.27266520, 0.99864685, 0.99928566, 0.49322447,\
++	-6.27310831, -0.00044289, 0.00027134, 7.27266541, 0.99864705, 0.99928577, 0.49322449,\
++	-6.27310846, -0.00044283, 0.00027130, 7.27266563, 0.99864724, 0.99928587, 0.49322455,\
++	-6.27310861, -0.00044277, 0.00027126, 7.27266584, 0.99864744, 0.99928597, 0.49322455,\
++	-6.27310876, -0.00044270, 0.00027122, 7.27266606, 0.99864763, 0.99928607, 0.49322448,\
++	-6.27310891, -0.00044264, 0.00027119, 7.27266627, 0.99864782, 0.99928618, 0.49322460,\
++	-6.27310906, -0.00044258, 0.00027115, 7.27266649, 0.99864802, 0.99928628, 0.49322463,\
++	-6.27310921, -0.00044251, 0.00027111, 7.27266670, 0.99864821, 0.99928638, 0.49322466,\
++	-6.27310937, -0.00044245, 0.00027107, 7.27266692, 0.99864840, 0.99928648, 0.49322476,\
++	-6.27310952, -0.00044239, 0.00027103, 7.27266713, 0.99864860, 0.99928658, 0.49322465,\
++	-6.27310967, -0.00044232, 0.00027099, 7.27266735, 0.99864879, 0.99928669, 0.49322471,\
++	-6.27310982, -0.00044226, 0.00027095, 7.27266756, 0.99864898, 0.99928679, 0.49322475,\
++	-6.27310997, -0.00044220, 0.00027091, 7.27266777, 0.99864917, 0.99928689, 0.49322474,\
++	-6.27311012, -0.00044213, 0.00027088, 7.27266799, 0.99864937, 0.99928699, 0.49322474,\
++	-6.27311027, -0.00044207, 0.00027084, 7.27266820, 0.99864956, 0.99928709, 0.49322480,\
++	-6.27311042, -0.00044201, 0.00027080, 7.27266842, 0.99864975, 0.99928719, 0.49322485,\
++	-6.27311058, -0.00044194, 0.00027076, 7.27266863, 0.99864995, 0.99928730, 0.49322481,\
++	-6.27311073, -0.00044188, 0.00027072, 7.27266884, 0.99865014, 0.99928740, 0.49322488,\
++	-6.27311088, -0.00044182, 0.00027068, 7.27266906, 0.99865033, 0.99928750, 0.49322485,\
++	-6.27311103, -0.00044176, 0.00027064, 7.27266927, 0.99865052, 0.99928760, 0.49322488,\
++	-6.27311118, -0.00044169, 0.00027060, 7.27266949, 0.99865072, 0.99928770, 0.49322494,\
++	-6.27311133, -0.00044163, 0.00027057, 7.27266970, 0.99865091, 0.99928780, 0.49322492,\
++	-6.27311148, -0.00044157, 0.00027053, 7.27266991, 0.99865110, 0.99928791, 0.49322499,\
++	-6.27311163, -0.00044150, 0.00027049, 7.27267013, 0.99865129, 0.99928801, 0.49322490,\
++	-6.27311178, -0.00044144, 0.00027045, 7.27267034, 0.99865149, 0.99928811, 0.49322494,\
++	-6.27311193, -0.00044138, 0.00027041, 7.27267056, 0.99865168, 0.99928821, 0.49322503,\
++	-6.27311208, -0.00044131, 0.00027037, 7.27267077, 0.99865187, 0.99928831, 0.49322507,\
++	-6.27311223, -0.00044125, 0.00027033, 7.27267098, 0.99865206, 0.99928841, 0.49322506,\
++	-6.27311238, -0.00044119, 0.00027030, 7.27267120, 0.99865226, 0.99928852, 0.49322507,\
++	-6.27311253, -0.00044113, 0.00027026, 7.27267141, 0.99865245, 0.99928862, 0.49322511,\
++	-6.27311269, -0.00044106, 0.00027022, 7.27267162, 0.99865264, 0.99928872, 0.49322515,\
++	-6.27311284, -0.00044100, 0.00027018, 7.27267184, 0.99865283, 0.99928882, 0.49322525,\
++	-6.27311299, -0.00044094, 0.00027014, 7.27267205, 0.99865302, 0.99928892, 0.49322511,\
++	-6.27311314, -0.00044087, 0.00027010, 7.27267226, 0.99865322, 0.99928902, 0.49322518,\
++	-6.27311329, -0.00044081, 0.00027006, 7.27267247, 0.99865341, 0.99928912, 0.49322526,\
++	-6.27311344, -0.00044075, 0.00027003, 7.27267269, 0.99865360, 0.99928922, 0.49322521,\
++	-6.27311359, -0.00044069, 0.00026999, 7.27267290, 0.99865379, 0.99928933, 0.49322528,\
++	-6.27311374, -0.00044062, 0.00026995, 7.27267311, 0.99865398, 0.99928943, 0.49322529,\
++	-6.27311389, -0.00044056, 0.00026991, 7.27267333, 0.99865418, 0.99928953, 0.49322527,\
++	-6.27311404, -0.00044050, 0.00026987, 7.27267354, 0.99865437, 0.99928963, 0.49322539,\
++	-6.27311419, -0.00044044, 0.00026983, 7.27267375, 0.99865456, 0.99928973, 0.49322538,\
++	-6.27311434, -0.00044037, 0.00026980, 7.27267396, 0.99865475, 0.99928983, 0.49322547,\
++	-6.27311449, -0.00044031, 0.00026976, 7.27267418, 0.99865494, 0.99928993, 0.49322544,\
++	-6.27311464, -0.00044025, 0.00026972, 7.27267439, 0.99865513, 0.99929003, 0.49322545,\
++	-6.27311479, -0.00044018, 0.00026968, 7.27267460, 0.99865532, 0.99929013, 0.49322545,\
++	-6.27311494, -0.00044012, 0.00026964, 7.27267481, 0.99865551, 0.99929024, 0.49322537,\
++	-6.27311509, -0.00044006, 0.00026960, 7.27267503, 0.99865571, 0.99929034, 0.49322549,\
++	-6.27311524, -0.00044000, 0.00026957, 7.27267524, 0.99865590, 0.99929044, 0.49322552,\
++	-6.27311539, -0.00043993, 0.00026953, 7.27267545, 0.99865609, 0.99929054, 0.49322561,\
++	-6.27311554, -0.00043987, 0.00026949, 7.27267566, 0.99865628, 0.99929064, 0.49322551,\
++	-6.27311569, -0.00043981, 0.00026945, 7.27267588, 0.99865647, 0.99929074, 0.49322559,\
++	-6.27311583, -0.00043975, 0.00026941, 7.27267609, 0.99865666, 0.99929084, 0.49322564,\
++	-6.27311598, -0.00043968, 0.00026937, 7.27267630, 0.99865685, 0.99929094, 0.49322558,\
++	-6.27311613, -0.00043962, 0.00026934, 7.27267651, 0.99865704, 0.99929104, 0.49322567,\
++	-6.27311628, -0.00043956, 0.00026930, 7.27267672, 0.99865723, 0.99929114, 0.49322564,\
++	-6.27311643, -0.00043950, 0.00026926, 7.27267693, 0.99865742, 0.99929124, 0.49322573,\
++	-6.27311658, -0.00043944, 0.00026922, 7.27267715, 0.99865762, 0.99929134, 0.49322571,\
++	-6.27311673, -0.00043937, 0.00026918, 7.27267736, 0.99865781, 0.99929144, 0.49322569,\
++	-6.27311688, -0.00043931, 0.00026914, 7.27267757, 0.99865800, 0.99929155, 0.49322578,\
++	-6.27311703, -0.00043925, 0.00026911, 7.27267778, 0.99865819, 0.99929165, 0.49322578,\
++	-6.27311718, -0.00043919, 0.00026907, 7.27267799, 0.99865838, 0.99929175, 0.49322584,\
++	-6.27311733, -0.00043912, 0.00026903, 7.27267820, 0.99865857, 0.99929185, 0.49322586,\
++	-6.27311748, -0.00043906, 0.00026899, 7.27267842, 0.99865876, 0.99929195, 0.49322590,\
++	-6.27311763, -0.00043900, 0.00026895, 7.27267863, 0.99865895, 0.99929205, 0.49322588,\
++	-6.27311777, -0.00043894, 0.00026892, 7.27267884, 0.99865914, 0.99929215, 0.49322594,\
++	-6.27311792, -0.00043887, 0.00026888, 7.27267905, 0.99865933, 0.99929225, 0.49322584,\
++	-6.27311807, -0.00043881, 0.00026884, 7.27267926, 0.99865952, 0.99929235, 0.49322593,\
++	-6.27311822, -0.00043875, 0.00026880, 7.27267947, 0.99865971, 0.99929245, 0.49322593,\
++	-6.27311837, -0.00043869, 0.00026876, 7.27267968, 0.99865990, 0.99929255, 0.49322599,\
++	-6.27311852, -0.00043863, 0.00026872, 7.27267989, 0.99866009, 0.99929265, 0.49322601,\
++	-6.27311867, -0.00043856, 0.00026869, 7.27268010, 0.99866028, 0.99929275, 0.49322609,\
++	-6.27311882, -0.00043850, 0.00026865, 7.27268032, 0.99866047, 0.99929285, 0.49322605,\
++	-6.27311897, -0.00043844, 0.00026861, 7.27268053, 0.99866066, 0.99929295, 0.49322609,\
++	-6.27311911, -0.00043838, 0.00026857, 7.27268074, 0.99866085, 0.99929305, 0.49322609,\
++	-6.27311926, -0.00043832, 0.00026853, 7.27268095, 0.99866104, 0.99929315, 0.49322617,\
++	-6.27311941, -0.00043825, 0.00026850, 7.27268116, 0.99866123, 0.99929325, 0.49322622,\
++	-6.27311956, -0.00043819, 0.00026846, 7.27268137, 0.99866142, 0.99929335, 0.49322614,\
++	-6.27311971, -0.00043813, 0.00026842, 7.27268158, 0.99866161, 0.99929345, 0.49322631,\
++	-6.27311986, -0.00043807, 0.00026838, 7.27268179, 0.99866180, 0.99929355, 0.49322620,\
++	-6.27312000, -0.00043800, 0.00026834, 7.27268200, 0.99866199, 0.99929365, 0.49322616,\
++	-6.27312015, -0.00043794, 0.00026831, 7.27268221, 0.99866217, 0.99929375, 0.49322624,\
++	-6.27312030, -0.00043788, 0.00026827, 7.27268242, 0.99866236, 0.99929385, 0.49322623,\
++	-6.27312045, -0.00043782, 0.00026823, 7.27268263, 0.99866255, 0.99929395, 0.49322635,\
++	-6.27312060, -0.00043776, 0.00026819, 7.27268284, 0.99866274, 0.99929405, 0.49322632,\
++	-6.27312075, -0.00043770, 0.00026815, 7.27268305, 0.99866293, 0.99929415, 0.49322635,\
++	-6.27312089, -0.00043763, 0.00026812, 7.27268326, 0.99866312, 0.99929425, 0.49322639,\
++	-6.27312104, -0.00043757, 0.00026808, 7.27268347, 0.99866331, 0.99929435, 0.49322639,\
++	-6.27312119, -0.00043751, 0.00026804, 7.27268368, 0.99866350, 0.99929445, 0.49322638,\
++	-6.27312134, -0.00043745, 0.00026800, 7.27268389, 0.99866369, 0.99929455, 0.49322647,\
++	-6.27312149, -0.00043739, 0.00026796, 7.27268410, 0.99866388, 0.99929465, 0.49322642,\
++	-6.27312163, -0.00043732, 0.00026793, 7.27268431, 0.99866407, 0.99929475, 0.49322644,\
++	-6.27312178, -0.00043726, 0.00026789, 7.27268452, 0.99866425, 0.99929485, 0.49322646,\
++	-6.27312193, -0.00043720, 0.00026785, 7.27268473, 0.99866444, 0.99929495, 0.49322653,\
++	-6.27312208, -0.00043714, 0.00026781, 7.27268494, 0.99866463, 0.99929505, 0.49322663,\
++	-6.27312223, -0.00043708, 0.00026778, 7.27268515, 0.99866482, 0.99929515, 0.49322655,\
++	-6.27312237, -0.00043702, 0.00026774, 7.27268536, 0.99866501, 0.99929525, 0.49322658,\
++	-6.27312252, -0.00043695, 0.00026770, 7.27268557, 0.99866520, 0.99929535, 0.49322660,\
++	-6.27312267, -0.00043689, 0.00026766, 7.27268578, 0.99866539, 0.99929545, 0.49322666,\
++	-6.27312282, -0.00043683, 0.00026762, 7.27268599, 0.99866557, 0.99929555, 0.49322663,\
++	-6.27312296, -0.00043677, 0.00026759, 7.27268619, 0.99866576, 0.99929564, 0.49322672,\
++	-6.27312311, -0.00043671, 0.00026755, 7.27268640, 0.99866595, 0.99929574, 0.49322669,\
++	-6.27312326, -0.00043665, 0.00026751, 7.27268661, 0.99866614, 0.99929584, 0.49322667,\
++	-6.27312341, -0.00043658, 0.00026747, 7.27268682, 0.99866633, 0.99929594, 0.49322665,\
++	-6.27312355, -0.00043652, 0.00026744, 7.27268703, 0.99866652, 0.99929604, 0.49322678,\
++	-6.27312370, -0.00043646, 0.00026740, 7.27268724, 0.99866670, 0.99929614, 0.49322680,\
++	-6.27312385, -0.00043640, 0.00026736, 7.27268745, 0.99866689, 0.99929624, 0.49322677,\
++	-6.27312399, -0.00043634, 0.00026732, 7.27268766, 0.99866708, 0.99929634, 0.49322687,\
++	-6.27312414, -0.00043628, 0.00026728, 7.27268787, 0.99866727, 0.99929644, 0.49322695,\
++	-6.27312429, -0.00043622, 0.00026725, 7.27268807, 0.99866746, 0.99929654, 0.49322684,\
++	-6.27312444, -0.00043615, 0.00026721, 7.27268828, 0.99866764, 0.99929664, 0.49322695,\
++	-6.27312458, -0.00043609, 0.00026717, 7.27268849, 0.99866783, 0.99929674, 0.49322694,\
++	-6.27312473, -0.00043603, 0.00026713, 7.27268870, 0.99866802, 0.99929684, 0.49322694,\
++	-6.27312488, -0.00043597, 0.00026710, 7.27268891, 0.99866821, 0.99929693, 0.49322692,\
++	-6.27312502, -0.00043591, 0.00026706, 7.27268912, 0.99866839, 0.99929703, 0.49322694,\
++	-6.27312517, -0.00043585, 0.00026702, 7.27268932, 0.99866858, 0.99929713, 0.49322699,\
++	-6.27312532, -0.00043579, 0.00026698, 7.27268953, 0.99866877, 0.99929723, 0.49322697,\
++	-6.27312546, -0.00043572, 0.00026695, 7.27268974, 0.99866896, 0.99929733, 0.49322709,\
++	-6.27312561, -0.00043566, 0.00026691, 7.27268995, 0.99866914, 0.99929743, 0.49322698,\
++	-6.27312576, -0.00043560, 0.00026687, 7.27269016, 0.99866933, 0.99929753, 0.49322713,\
++	-6.27312590, -0.00043554, 0.00026683, 7.27269037, 0.99866952, 0.99929763, 0.49322708,\
++	-6.27312605, -0.00043548, 0.00026680, 7.27269057, 0.99866971, 0.99929773, 0.49322723,\
++	-6.27312620, -0.00043542, 0.00026676, 7.27269078, 0.99866989, 0.99929782, 0.49322717,\
++	-6.27312634, -0.00043536, 0.00026672, 7.27269099, 0.99867008, 0.99929792, 0.49322722,\
++	-6.27312649, -0.00043529, 0.00026668, 7.27269120, 0.99867027, 0.99929802, 0.49322714,\
++	-6.27312664, -0.00043523, 0.00026665, 7.27269140, 0.99867045, 0.99929812, 0.49322725,\
++	-6.27312678, -0.00043517, 0.00026661, 7.27269161, 0.99867064, 0.99929822, 0.49322739,\
++	-6.27312693, -0.00043511, 0.00026657, 7.27269182, 0.99867083, 0.99929832, 0.49322721,\
++	-6.27312708, -0.00043505, 0.00026653, 7.27269203, 0.99867101, 0.99929842, 0.49322728,\
++	-6.27312722, -0.00043499, 0.00026650, 7.27269223, 0.99867120, 0.99929852, 0.49322731,\
++	-6.27312737, -0.00043493, 0.00026646, 7.27269244, 0.99867139, 0.99929861, 0.49322735,\
++	-6.27312752, -0.00043487, 0.00026642, 7.27269265, 0.99867158, 0.99929871, 0.49322737,\
++	-6.27312766, -0.00043481, 0.00026638, 7.27269286, 0.99867176, 0.99929881, 0.49322735,\
++	-6.27312781, -0.00043474, 0.00026635, 7.27269306, 0.99867195, 0.99929891, 0.49322744,\
++	-6.27312795, -0.00043468, 0.00026631, 7.27269327, 0.99867214, 0.99929901, 0.49322745,\
++	-6.27312810, -0.00043462, 0.00026627, 7.27269348, 0.99867232, 0.99929911, 0.49322747,\
++	-6.27312825, -0.00043456, 0.00026623, 7.27269368, 0.99867251, 0.99929920, 0.49322750,\
++	-6.27312839, -0.00043450, 0.00026620, 7.27269389, 0.99867269, 0.99929930, 0.49322745,\
++	-6.27312854, -0.00043444, 0.00026616, 7.27269410, 0.99867288, 0.99929940, 0.49322761,\
++	-6.27312868, -0.00043438, 0.00026612, 7.27269431, 0.99867307, 0.99929950, 0.49322746,\
++	-6.27312883, -0.00043432, 0.00026608, 7.27269451, 0.99867325, 0.99929960, 0.49322757,\
++	-6.27312898, -0.00043426, 0.00026605, 7.27269472, 0.99867344, 0.99929970, 0.49322765,\
++	-6.27312912, -0.00043420, 0.00026601, 7.27269493, 0.99867363, 0.99929979, 0.49322763,\
++	-6.27312927, -0.00043413, 0.00026597, 7.27269513, 0.99867381, 0.99929989, 0.49322751,\
++	-6.27312941, -0.00043407, 0.00026593, 7.27269534, 0.99867400, 0.99929999, 0.49322758,\
++	-6.27312956, -0.00043401, 0.00026590, 7.27269555, 0.99867418, 0.99930009, 0.49322771,\
++	-6.27312970, -0.00043395, 0.00026586, 7.27269575, 0.99867437, 0.99930019, 0.49322770,\
++	-6.27312985, -0.00043389, 0.00026582, 7.27269596, 0.99867456, 0.99930029, 0.49322772,\
++	-6.27313000, -0.00043383, 0.00026579, 7.27269616, 0.99867474, 0.99930038, 0.49322775,\
++	-6.27313014, -0.00043377, 0.00026575, 7.27269637, 0.99867493, 0.99930048, 0.49322776,\
++	-6.27313029, -0.00043371, 0.00026571, 7.27269658, 0.99867511, 0.99930058, 0.49322779,\
++	-6.27313043, -0.00043365, 0.00026567, 7.27269678, 0.99867530, 0.99930068, 0.49322775,\
++	-6.27313058, -0.00043359, 0.00026564, 7.27269699, 0.99867548, 0.99930078, 0.49322782,\
++	-6.27313072, -0.00043353, 0.00026560, 7.27269720, 0.99867567, 0.99930087, 0.49322777,\
++	-6.27313087, -0.00043347, 0.00026556, 7.27269740, 0.99867586, 0.99930097, 0.49322785,\
++	-6.27313101, -0.00043341, 0.00026552, 7.27269761, 0.99867604, 0.99930107, 0.49322785,\
++	-6.27313116, -0.00043335, 0.00026549, 7.27269781, 0.99867623, 0.99930117, 0.49322792,\
++	-6.27313130, -0.00043328, 0.00026545, 7.27269802, 0.99867641, 0.99930127, 0.49322802,\
++	-6.27313145, -0.00043322, 0.00026541, 7.27269823, 0.99867660, 0.99930136, 0.49322800,\
++	-6.27313159, -0.00043316, 0.00026538, 7.27269843, 0.99867678, 0.99930146, 0.49322801,\
++	-6.27313174, -0.00043310, 0.00026534, 7.27269864, 0.99867697, 0.99930156, 0.49322793,\
++	-6.27313188, -0.00043304, 0.00026530, 7.27269884, 0.99867715, 0.99930166, 0.49322797,\
++	-6.27313203, -0.00043298, 0.00026526, 7.27269905, 0.99867734, 0.99930175, 0.49322808,\
++	-6.27313217, -0.00043292, 0.00026523, 7.27269925, 0.99867752, 0.99930185, 0.49322805,\
++	-6.27313232, -0.00043286, 0.00026519, 7.27269946, 0.99867771, 0.99930195, 0.49322811,\
++	-6.27313246, -0.00043280, 0.00026515, 7.27269966, 0.99867789, 0.99930205, 0.49322809,\
++	-6.27313261, -0.00043274, 0.00026512, 7.27269987, 0.99867808, 0.99930214, 0.49322806,\
++	-6.27313275, -0.00043268, 0.00026508, 7.27270007, 0.99867826, 0.99930224, 0.49322819,\
++	-6.27313290, -0.00043262, 0.00026504, 7.27270028, 0.99867845, 0.99930234, 0.49322820,\
++	-6.27313304, -0.00043256, 0.00026501, 7.27270049, 0.99867863, 0.99930244, 0.49322821,\
++	-6.27313319, -0.00043250, 0.00026497, 7.27270069, 0.99867882, 0.99930253, 0.49322826,\
++	-6.27313333, -0.00043244, 0.00026493, 7.27270090, 0.99867900, 0.99930263, 0.49322825,\
++	-6.27313348, -0.00043238, 0.00026489, 7.27270110, 0.99867919, 0.99930273, 0.49322828,\
++	-6.27313362, -0.00043232, 0.00026486, 7.27270131, 0.99867937, 0.99930283, 0.49322824,\
++	-6.27313377, -0.00043226, 0.00026482, 7.27270151, 0.99867955, 0.99930292, 0.49322829,\
++	-6.27313391, -0.00043220, 0.00026478, 7.27270171, 0.99867974, 0.99930302, 0.49322833,\
++	-6.27313405, -0.00043214, 0.00026475, 7.27270192, 0.99867992, 0.99930312, 0.49322832,\
++	-6.27313420, -0.00043207, 0.00026471, 7.27270212, 0.99868011, 0.99930322, 0.49322832,\
++	-6.27313434, -0.00043201, 0.00026467, 7.27270233, 0.99868029, 0.99930331, 0.49322841,\
++	-6.27313449, -0.00043195, 0.00026464, 7.27270253, 0.99868048, 0.99930341, 0.49322842,\
++	-6.27313463, -0.00043189, 0.00026460, 7.27270274, 0.99868066, 0.99930351, 0.49322850,\
++	-6.27313478, -0.00043183, 0.00026456, 7.27270294, 0.99868084, 0.99930360, 0.49322849,\
++	-6.27313492, -0.00043177, 0.00026452, 7.27270315, 0.99868103, 0.99930370, 0.49322832,\
++	-6.27313506, -0.00043171, 0.00026449, 7.27270335, 0.99868121, 0.99930380, 0.49322850,\
++	-6.27313521, -0.00043165, 0.00026445, 7.27270356, 0.99868140, 0.99930390, 0.49322849,\
++	-6.27313535, -0.00043159, 0.00026441, 7.27270376, 0.99868158, 0.99930399, 0.49322851,\
++	-6.27313550, -0.00043153, 0.00026438, 7.27270396, 0.99868176, 0.99930409, 0.49322842,\
++	-6.27313564, -0.00043147, 0.00026434, 7.27270417, 0.99868195, 0.99930419, 0.49322856,\
++	-6.27313578, -0.00043141, 0.00026430, 7.27270437, 0.99868213, 0.99930428, 0.49322852,\
++	-6.27313593, -0.00043135, 0.00026427, 7.27270458, 0.99868232, 0.99930438, 0.49322857,\
++	-6.27313607, -0.00043129, 0.00026423, 7.27270478, 0.99868250, 0.99930448, 0.49322857,\
++	-6.27313622, -0.00043123, 0.00026419, 7.27270498, 0.99868268, 0.99930458, 0.49322862,\
++	-6.27313636, -0.00043117, 0.00026416, 7.27270519, 0.99868287, 0.99930467, 0.49322867,\
++	-6.27313650, -0.00043111, 0.00026412, 7.27270539, 0.99868305, 0.99930477, 0.49322876,\
++	-6.27313665, -0.00043105, 0.00026408, 7.27270560, 0.99868323, 0.99930487, 0.49322877,\
++	-6.27313679, -0.00043099, 0.00026405, 7.27270580, 0.99868342, 0.99930496, 0.49322873,\
++	-6.27313693, -0.00043093, 0.00026401, 7.27270600, 0.99868360, 0.99930506, 0.49322870,\
++	-6.27313708, -0.00043087, 0.00026397, 7.27270621, 0.99868378, 0.99930516, 0.49322877,\
++	-6.27313722, -0.00043081, 0.00026394, 7.27270641, 0.99868397, 0.99930525, 0.49322879,\
++	-6.27313737, -0.00043075, 0.00026390, 7.27270661, 0.99868415, 0.99930535, 0.49322891,\
++	-6.27313751, -0.00043069, 0.00026386, 7.27270682, 0.99868433, 0.99930545, 0.49322887,\
++	-6.27313765, -0.00043063, 0.00026382, 7.27270702, 0.99868452, 0.99930554, 0.49322881,\
++	-6.27313780, -0.00043057, 0.00026379, 7.27270722, 0.99868470, 0.99930564, 0.49322892,\
++	-6.27313794, -0.00043051, 0.00026375, 7.27270743, 0.99868488, 0.99930574, 0.49322891,\
++	-6.27313808, -0.00043045, 0.00026371, 7.27270763, 0.99868507, 0.99930583, 0.49322891,\
++	-6.27313823, -0.00043039, 0.00026368, 7.27270783, 0.99868525, 0.99930593, 0.49322893,\
++	-6.27313837, -0.00043033, 0.00026364, 7.27270804, 0.99868543, 0.99930603, 0.49322886,\
++	-6.27313851, -0.00043027, 0.00026360, 7.27270824, 0.99868561, 0.99930612, 0.49322902,\
++	-6.27313865, -0.00043021, 0.00026357, 7.27270844, 0.99868580, 0.99930622, 0.49322900,\
++	-6.27313880, -0.00043015, 0.00026353, 7.27270864, 0.99868598, 0.99930632, 0.49322904,\
++	-6.27313894, -0.00043009, 0.00026349, 7.27270885, 0.99868616, 0.99930641, 0.49322903,\
++	-6.27313908, -0.00043003, 0.00026346, 7.27270905, 0.99868634, 0.99930651, 0.49322900,\
++	-6.27313923, -0.00042997, 0.00026342, 7.27270925, 0.99868653, 0.99930660, 0.49322904,\
++	-6.27313937, -0.00042991, 0.00026338, 7.27270946, 0.99868671, 0.99930670, 0.49322912,\
++	-6.27313951, -0.00042985, 0.00026335, 7.27270966, 0.99868689, 0.99930680, 0.49322917,\
++	-6.27313966, -0.00042980, 0.00026331, 7.27270986, 0.99868707, 0.99930689, 0.49322903,\
++	-6.27313980, -0.00042974, 0.00026328, 7.27271006, 0.99868726, 0.99930699, 0.49322919,\
++	-6.27313994, -0.00042968, 0.00026324, 7.27271027, 0.99868744, 0.99930709, 0.49322915,\
++	-6.27314008, -0.00042962, 0.00026320, 7.27271047, 0.99868762, 0.99930718, 0.49322921,\
++	-6.27314023, -0.00042956, 0.00026317, 7.27271067, 0.99868780, 0.99930728, 0.49322918,\
++	-6.27314037, -0.00042950, 0.00026313, 7.27271087, 0.99868799, 0.99930737, 0.49322930,\
++	-6.27314051, -0.00042944, 0.00026309, 7.27271107, 0.99868817, 0.99930747, 0.49322927,\
++	-6.27314065, -0.00042938, 0.00026306, 7.27271128, 0.99868835, 0.99930757, 0.49322931,\
++	-6.27314080, -0.00042932, 0.00026302, 7.27271148, 0.99868853, 0.99930766, 0.49322934,\
++	-6.27314094, -0.00042926, 0.00026298, 7.27271168, 0.99868871, 0.99930776, 0.49322928,\
++	-6.27314108, -0.00042920, 0.00026295, 7.27271188, 0.99868890, 0.99930785, 0.49322942,\
++	-6.27314122, -0.00042914, 0.00026291, 7.27271208, 0.99868908, 0.99930795, 0.49322942,\
++	-6.27314137, -0.00042908, 0.00026287, 7.27271229, 0.99868926, 0.99930805, 0.49322944,\
++	-6.27314151, -0.00042902, 0.00026284, 7.27271249, 0.99868944, 0.99930814, 0.49322951,\
++	-6.27314165, -0.00042896, 0.00026280, 7.27271269, 0.99868962, 0.99930824, 0.49322944,\
++	-6.27314179, -0.00042890, 0.00026276, 7.27271289, 0.99868980, 0.99930833, 0.49322951,\
++	-6.27314194, -0.00042884, 0.00026273, 7.27271309, 0.99868999, 0.99930843, 0.49322954,\
++	-6.27314208, -0.00042878, 0.00026269, 7.27271329, 0.99869017, 0.99930853, 0.49322961,\
++	-6.27314222, -0.00042872, 0.00026265, 7.27271350, 0.99869035, 0.99930862, 0.49322958,\
++	-6.27314236, -0.00042866, 0.00026262, 7.27271370, 0.99869053, 0.99930872, 0.49322958,\
++	-6.27314250, -0.00042861, 0.00026258, 7.27271390, 0.99869071, 0.99930881, 0.49322960,\
++	-6.27314265, -0.00042855, 0.00026255, 7.27271410, 0.99869089, 0.99930891, 0.49322954,\
++	-6.27314279, -0.00042849, 0.00026251, 7.27271430, 0.99869107, 0.99930900, 0.49322960,\
++	-6.27314293, -0.00042843, 0.00026247, 7.27271450, 0.99869125, 0.99930910, 0.49322964,\
++	-6.27314307, -0.00042837, 0.00026244, 7.27271470, 0.99869144, 0.99930920, 0.49322967,\
++	-6.27314321, -0.00042831, 0.00026240, 7.27271491, 0.99869162, 0.99930929, 0.49322963,\
++	-6.27314336, -0.00042825, 0.00026236, 7.27271511, 0.99869180, 0.99930939, 0.49322972,\
++	-6.27314350, -0.00042819, 0.00026233, 7.27271531, 0.99869198, 0.99930948, 0.49322962,\
++	-6.27314364, -0.00042813, 0.00026229, 7.27271551, 0.99869216, 0.99930958, 0.49322977,\
++	-6.27314378, -0.00042807, 0.00026226, 7.27271571, 0.99869234, 0.99930967, 0.49322982,\
++	-6.27314392, -0.00042801, 0.00026222, 7.27271591, 0.99869252, 0.99930977, 0.49322974,\
++	-6.27314406, -0.00042795, 0.00026218, 7.27271611, 0.99869270, 0.99930986, 0.49322983,\
++	-6.27314421, -0.00042789, 0.00026215, 7.27271631, 0.99869288, 0.99930996, 0.49322981,\
++	-6.27314435, -0.00042783, 0.00026211, 7.27271651, 0.99869306, 0.99931005, 0.49322987,\
++	-6.27314449, -0.00042778, 0.00026207, 7.27271671, 0.99869325, 0.99931015, 0.49322991,\
++	-6.27314463, -0.00042772, 0.00026204, 7.27271691, 0.99869343, 0.99931025, 0.49322985,\
++	-6.27314477, -0.00042766, 0.00026200, 7.27271711, 0.99869361, 0.99931034, 0.49322989,\
++	-6.27314491, -0.00042760, 0.00026197, 7.27271731, 0.99869379, 0.99931044, 0.49322995,\
++	-6.27314505, -0.00042754, 0.00026193, 7.27271752, 0.99869397, 0.99931053, 0.49322998,\
++	-6.27314520, -0.00042748, 0.00026189, 7.27271772, 0.99869415, 0.99931063, 0.49322992,\
++	-6.27314534, -0.00042742, 0.00026186, 7.27271792, 0.99869433, 0.99931072, 0.49322999,\
++	-6.27314548, -0.00042736, 0.00026182, 7.27271812, 0.99869451, 0.99931082, 0.49323014,\
++	-6.27314562, -0.00042730, 0.00026178, 7.27271832, 0.99869469, 0.99931091, 0.49323001,\
++	-6.27314576, -0.00042724, 0.00026175, 7.27271852, 0.99869487, 0.99931101, 0.49323007,\
++	-6.27314590, -0.00042719, 0.00026171, 7.27271872, 0.99869505, 0.99931110, 0.49323010,\
++	-6.27314604, -0.00042713, 0.00026168, 7.27271892, 0.99869523, 0.99931120, 0.49323018,\
++	-6.27314618, -0.00042707, 0.00026164, 7.27271912, 0.99869541, 0.99931129, 0.49323018,\
++	-6.27314633, -0.00042701, 0.00026160, 7.27271932, 0.99869559, 0.99931139, 0.49323016,\
++	-6.27314647, -0.00042695, 0.00026157, 7.27271952, 0.99869577, 0.99931148, 0.49323007,\
++	-6.27314661, -0.00042689, 0.00026153, 7.27271972, 0.99869595, 0.99931158, 0.49323022,\
++	-6.27314675, -0.00042683, 0.00026150, 7.27271992, 0.99869613, 0.99931167, 0.49323025,\
++	-6.27314689, -0.00042677, 0.00026146, 7.27272012, 0.99869631, 0.99931177, 0.49323030,\
++	-6.27314703, -0.00042671, 0.00026142, 7.27272032, 0.99869649, 0.99931186, 0.49323027,\
++	-6.27314717, -0.00042666, 0.00026139, 7.27272051, 0.99869667, 0.99931196, 0.49323031,\
++	-6.27314731, -0.00042660, 0.00026135, 7.27272071, 0.99869685, 0.99931205, 0.49323029,\
++	-6.27314745, -0.00042654, 0.00026132, 7.27272091, 0.99869703, 0.99931215, 0.49323033,\
++	-6.27314759, -0.00042648, 0.00026128, 7.27272111, 0.99869721, 0.99931224, 0.49323043,\
++	-6.27314773, -0.00042642, 0.00026124, 7.27272131, 0.99869739, 0.99931234, 0.49323035,\
++	-6.27314787, -0.00042636, 0.00026121, 7.27272151, 0.99869757, 0.99931243, 0.49323032,\
++	-6.27314801, -0.00042630, 0.00026117, 7.27272171, 0.99869775, 0.99931253, 0.49323043,\
++	-6.27314815, -0.00042624, 0.00026114, 7.27272191, 0.99869792, 0.99931262, 0.49323038,\
++	-6.27314830, -0.00042619, 0.00026110, 7.27272211, 0.99869810, 0.99931272, 0.49323055,\
++	-6.27314844, -0.00042613, 0.00026106, 7.27272231, 0.99869828, 0.99931281, 0.49323047,\
++	-6.27314858, -0.00042607, 0.00026103, 7.27272251, 0.99869846, 0.99931290, 0.49323039,\
++	-6.27314872, -0.00042601, 0.00026099, 7.27272271, 0.99869864, 0.99931300, 0.49323039,\
++	-6.27314886, -0.00042595, 0.00026096, 7.27272291, 0.99869882, 0.99931309, 0.49323057,\
++	-6.27314900, -0.00042589, 0.00026092, 7.27272310, 0.99869900, 0.99931319, 0.49323051,\
++	-6.27314914, -0.00042583, 0.00026088, 7.27272330, 0.99869918, 0.99931328, 0.49323056,\
++	-6.27314928, -0.00042578, 0.00026085, 7.27272350, 0.99869936, 0.99931338, 0.49323064,\
++	-6.27314942, -0.00042572, 0.00026081, 7.27272370, 0.99869954, 0.99931347, 0.49323065,\
++	-6.27314956, -0.00042566, 0.00026078, 7.27272390, 0.99869972, 0.99931357, 0.49323065,\
++	-6.27314970, -0.00042560, 0.00026074, 7.27272410, 0.99869989, 0.99931366, 0.49323070,\
++	-6.27314984, -0.00042554, 0.00026070, 7.27272430, 0.99870007, 0.99931375, 0.49323062,\
++	-6.27314998, -0.00042548, 0.00026067, 7.27272450, 0.99870025, 0.99931385, 0.49323063,\
++	-6.27315012, -0.00042542, 0.00026063, 7.27272469, 0.99870043, 0.99931394, 0.49323075,\
++	-6.27315026, -0.00042537, 0.00026060, 7.27272489, 0.99870061, 0.99931404, 0.49323074,\
++	-6.27315040, -0.00042531, 0.00026056, 7.27272509, 0.99870079, 0.99931413, 0.49323081,\
++	-6.27315054, -0.00042525, 0.00026052, 7.27272529, 0.99870097, 0.99931423, 0.49323082,\
++	-6.27315068, -0.00042519, 0.00026049, 7.27272549, 0.99870115, 0.99931432, 0.49323079,\
++	-6.27315082, -0.00042513, 0.00026045, 7.27272569, 0.99870132, 0.99931441, 0.49323072,\
++	-6.27315096, -0.00042507, 0.00026042, 7.27272588, 0.99870150, 0.99931451, 0.49323088,\
++	-6.27315110, -0.00042502, 0.00026038, 7.27272608, 0.99870168, 0.99931460, 0.49323096,\
++	-6.27315124, -0.00042496, 0.00026035, 7.27272628, 0.99870186, 0.99931470, 0.49323088,\
++	-6.27315138, -0.00042490, 0.00026031, 7.27272648, 0.99870204, 0.99931479, 0.49323085,\
++	-6.27315152, -0.00042484, 0.00026027, 7.27272668, 0.99870222, 0.99931489, 0.49323089,\
++	-6.27315165, -0.00042478, 0.00026024, 7.27272687, 0.99870239, 0.99931498, 0.49323085,\
++	-6.27315179, -0.00042472, 0.00026020, 7.27272707, 0.99870257, 0.99931507, 0.49323101,\
++	-6.27315193, -0.00042467, 0.00026017, 7.27272727, 0.99870275, 0.99931517, 0.49323094,\
++	-6.27315207, -0.00042461, 0.00026013, 7.27272747, 0.99870293, 0.99931526, 0.49323104,\
++	-6.27315221, -0.00042455, 0.00026010, 7.27272766, 0.99870311, 0.99931535, 0.49323100,\
++	-6.27315235, -0.00042449, 0.00026006, 7.27272786, 0.99870328, 0.99931545, 0.49323105,\
++	-6.27315249, -0.00042443, 0.00026002, 7.27272806, 0.99870346, 0.99931554, 0.49323112,\
++	-6.27315263, -0.00042437, 0.00025999, 7.27272826, 0.99870364, 0.99931564, 0.49323100,\
++	-6.27315277, -0.00042432, 0.00025995, 7.27272845, 0.99870382, 0.99931573, 0.49323104,\
++	-6.27315291, -0.00042426, 0.00025992, 7.27272865, 0.99870399, 0.99931582, 0.49323113,\
++	-6.27315305, -0.00042420, 0.00025988, 7.27272885, 0.99870417, 0.99931592, 0.49323100,\
++	-6.27315319, -0.00042414, 0.00025985, 7.27272905, 0.99870435, 0.99931601, 0.49323118,\
++	-6.27315333, -0.00042408, 0.00025981, 7.27272924, 0.99870453, 0.99931611, 0.49323122,\
++	-6.27315347, -0.00042403, 0.00025978, 7.27272944, 0.99870470, 0.99931620, 0.49323123,\
++	-6.27315360, -0.00042397, 0.00025974, 7.27272964, 0.99870488, 0.99931629, 0.49323124,\
++	-6.27315374, -0.00042391, 0.00025970, 7.27272983, 0.99870506, 0.99931639, 0.49323127,\
++	-6.27315388, -0.00042385, 0.00025967, 7.27273003, 0.99870524, 0.99931648, 0.49323133,\
++	-6.27315402, -0.00042379, 0.00025963, 7.27273023, 0.99870541, 0.99931657, 0.49323140,\
++	-6.27315416, -0.00042374, 0.00025960, 7.27273042, 0.99870559, 0.99931667, 0.49323133,\
++	-6.27315430, -0.00042368, 0.00025956, 7.27273062, 0.99870577, 0.99931676, 0.49323138,\
++	-6.27315444, -0.00042362, 0.00025953, 7.27273082, 0.99870595, 0.99931685, 0.49323140,\
++	-6.27315458, -0.00042356, 0.00025949, 7.27273101, 0.99870612, 0.99931695, 0.49323145,\
++	-6.27315472, -0.00042350, 0.00025946, 7.27273121, 0.99870630, 0.99931704, 0.49323139,\
++	-6.27315485, -0.00042345, 0.00025942, 7.27273141, 0.99870648, 0.99931713, 0.49323136,\
++	-6.27315499, -0.00042339, 0.00025938, 7.27273160, 0.99870665, 0.99931723, 0.49323144,\
++	-6.27315513, -0.00042333, 0.00025935, 7.27273180, 0.99870683, 0.99931732, 0.49323141,\
++	-6.27315527, -0.00042327, 0.00025931, 7.27273200, 0.99870701, 0.99931741, 0.49323140,\
++	-6.27315541, -0.00042321, 0.00025928, 7.27273219, 0.99870719, 0.99931751, 0.49323155,\
++	-6.27315555, -0.00042316, 0.00025924, 7.27273239, 0.99870736, 0.99931760, 0.49323157,\
++	-6.27315569, -0.00042310, 0.00025921, 7.27273259, 0.99870754, 0.99931769, 0.49323161,\
++	-6.27315582, -0.00042304, 0.00025917, 7.27273278, 0.99870772, 0.99931779, 0.49323157,\
++	-6.27315596, -0.00042298, 0.00025914, 7.27273298, 0.99870789, 0.99931788, 0.49323162,\
++	-6.27315610, -0.00042292, 0.00025910, 7.27273318, 0.99870807, 0.99931797, 0.49323164,\
++	-6.27315624, -0.00042287, 0.00025907, 7.27273337, 0.99870825, 0.99931807, 0.49323172,\
++	-6.27315638, -0.00042281, 0.00025903, 7.27273357, 0.99870842, 0.99931816, 0.49323163,\
++	-6.27315652, -0.00042275, 0.00025899, 7.27273376, 0.99870860, 0.99931825, 0.49323158,\
++	-6.27315665, -0.00042269, 0.00025896, 7.27273396, 0.99870877, 0.99931835, 0.49323168,\
++	-6.27315679, -0.00042264, 0.00025892, 7.27273416, 0.99870895, 0.99931844, 0.49323175,\
++	-6.27315693, -0.00042258, 0.00025889, 7.27273435, 0.99870913, 0.99931853, 0.49323172,\
++	-6.27315707, -0.00042252, 0.00025885, 7.27273455, 0.99870930, 0.99931863, 0.49323175,\
++	-6.27315721, -0.00042246, 0.00025882, 7.27273474, 0.99870948, 0.99931872, 0.49323179,\
++	-6.27315734, -0.00042241, 0.00025878, 7.27273494, 0.99870966, 0.99931881, 0.49323178,\
++	-6.27315748, -0.00042235, 0.00025875, 7.27273513, 0.99870983, 0.99931891, 0.49323183,\
++	-6.27315762, -0.00042229, 0.00025871, 7.27273533, 0.99871001, 0.99931900, 0.49323180,\
++	-6.27315776, -0.00042223, 0.00025868, 7.27273552, 0.99871018, 0.99931909, 0.49323181,\
++	-6.27315790, -0.00042218, 0.00025864, 7.27273572, 0.99871036, 0.99931918, 0.49323188,\
++	-6.27315803, -0.00042212, 0.00025861, 7.27273592, 0.99871054, 0.99931928, 0.49323197,\
++	-6.27315817, -0.00042206, 0.00025857, 7.27273611, 0.99871071, 0.99931937, 0.49323190,\
++	-6.27315831, -0.00042200, 0.00025854, 7.27273631, 0.99871089, 0.99931946, 0.49323185,\
++	-6.27315845, -0.00042194, 0.00025850, 7.27273650, 0.99871106, 0.99931956, 0.49323199,\
++	-6.27315858, -0.00042189, 0.00025846, 7.27273670, 0.99871124, 0.99931965, 0.49323204,\
++	-6.27315872, -0.00042183, 0.00025843, 7.27273689, 0.99871141, 0.99931974, 0.49323191,\
++	-6.27315886, -0.00042177, 0.00025839, 7.27273709, 0.99871159, 0.99931983, 0.49323202,\
++	-6.27315900, -0.00042171, 0.00025836, 7.27273728, 0.99871177, 0.99931993, 0.49323199,\
++	-6.27315913, -0.00042166, 0.00025832, 7.27273748, 0.99871194, 0.99932002, 0.49323200,\
++	-6.27315927, -0.00042160, 0.00025829, 7.27273767, 0.99871212, 0.99932011, 0.49323212,\
++	-6.27315941, -0.00042154, 0.00025825, 7.27273787, 0.99871229, 0.99932020, 0.49323215,\
++	-6.27315955, -0.00042149, 0.00025822, 7.27273806, 0.99871247, 0.99932030, 0.49323211,\
++	-6.27315968, -0.00042143, 0.00025818, 7.27273826, 0.99871264, 0.99932039, 0.49323217,\
++	-6.27315982, -0.00042137, 0.00025815, 7.27273845, 0.99871282, 0.99932048, 0.49323219,\
++	-6.27315996, -0.00042131, 0.00025811, 7.27273864, 0.99871299, 0.99932057, 0.49323223,\
++	-6.27316010, -0.00042126, 0.00025808, 7.27273884, 0.99871317, 0.99932067, 0.49323224,\
++	-6.27316023, -0.00042120, 0.00025804, 7.27273903, 0.99871334, 0.99932076, 0.49323221,\
++	-6.27316037, -0.00042114, 0.00025801, 7.27273923, 0.99871352, 0.99932085, 0.49323224,\
++	-6.27316051, -0.00042108, 0.00025797, 7.27273942, 0.99871369, 0.99932094, 0.49323220,\
++	-6.27316064, -0.00042103, 0.00025794, 7.27273962, 0.99871387, 0.99932104, 0.49323229,\
++	-6.27316078, -0.00042097, 0.00025790, 7.27273981, 0.99871404, 0.99932113, 0.49323228,\
++	-6.27316092, -0.00042091, 0.00025787, 7.27274001, 0.99871422, 0.99932122, 0.49323228,\
++	-6.27316105, -0.00042085, 0.00025783, 7.27274020, 0.99871439, 0.99932131, 0.49323234,\
++	-6.27316119, -0.00042080, 0.00025780, 7.27274039, 0.99871457, 0.99932141, 0.49323243,\
++	-6.27316133, -0.00042074, 0.00025776, 7.27274059, 0.99871474, 0.99932150, 0.49323241,\
++	-6.27316147, -0.00042068, 0.00025773, 7.27274078, 0.99871492, 0.99932159, 0.49323242,\
++	-6.27316160, -0.00042063, 0.00025769, 7.27274098, 0.99871509, 0.99932168, 0.49323234,\
++	-6.27316174, -0.00042057, 0.00025766, 7.27274117, 0.99871527, 0.99932177, 0.49323243,\
++	-6.27316188, -0.00042051, 0.00025762, 7.27274136, 0.99871544, 0.99932187, 0.49323249,\
++	-6.27316201, -0.00042045, 0.00025759, 7.27274156, 0.99871562, 0.99932196, 0.49323249,\
++	-6.27316215, -0.00042040, 0.00025755, 7.27274175, 0.99871579, 0.99932205, 0.49323255,\
++	-6.27316229, -0.00042034, 0.00025752, 7.27274195, 0.99871597, 0.99932214, 0.49323261,\
++	-6.27316242, -0.00042028, 0.00025748, 7.27274214, 0.99871614, 0.99932223, 0.49323266,\
++	-6.27316256, -0.00042023, 0.00025745, 7.27274233, 0.99871631, 0.99932233, 0.49323261,\
++	-6.27316270, -0.00042017, 0.00025741, 7.27274253, 0.99871649, 0.99932242, 0.49323265,\
++	-6.27316283, -0.00042011, 0.00025738, 7.27274272, 0.99871666, 0.99932251, 0.49323261,\
++	-6.27316297, -0.00042006, 0.00025734, 7.27274291, 0.99871684, 0.99932260, 0.49323268,\
++	-6.27316311, -0.00042000, 0.00025731, 7.27274311, 0.99871701, 0.99932269, 0.49323261,\
++	-6.27316324, -0.00041994, 0.00025727, 7.27274330, 0.99871719, 0.99932279, 0.49323277,\
++	-6.27316338, -0.00041988, 0.00025724, 7.27274349, 0.99871736, 0.99932288, 0.49323278,\
++	-6.27316351, -0.00041983, 0.00025720, 7.27274369, 0.99871753, 0.99932297, 0.49323270,\
++	-6.27316365, -0.00041977, 0.00025717, 7.27274388, 0.99871771, 0.99932306, 0.49323262,\
++	-6.27316379, -0.00041971, 0.00025713, 7.27274407, 0.99871788, 0.99932315, 0.49323267,\
++	-6.27316392, -0.00041966, 0.00025710, 7.27274427, 0.99871806, 0.99932325, 0.49323282,\
++	-6.27316406, -0.00041960, 0.00025706, 7.27274446, 0.99871823, 0.99932334, 0.49323274,\
++	-6.27316420, -0.00041954, 0.00025703, 7.27274465, 0.99871840, 0.99932343, 0.49323276,\
++	-6.27316433, -0.00041949, 0.00025699, 7.27274485, 0.99871858, 0.99932352, 0.49323279,\
++	-6.27316447, -0.00041943, 0.00025696, 7.27274504, 0.99871875, 0.99932361, 0.49323285,\
++	-6.27316460, -0.00041937, 0.00025692, 7.27274523, 0.99871892, 0.99932370, 0.49323286,\
++	-6.27316474, -0.00041932, 0.00025689, 7.27274542, 0.99871910, 0.99932380, 0.49323296,\
++	-6.27316488, -0.00041926, 0.00025685, 7.27274562, 0.99871927, 0.99932389, 0.49323294,\
++	-6.27316501, -0.00041920, 0.00025682, 7.27274581, 0.99871944, 0.99932398, 0.49323292,\
++	-6.27316515, -0.00041915, 0.00025678, 7.27274600, 0.99871962, 0.99932407, 0.49323285,\
++	-6.27316528, -0.00041909, 0.00025675, 7.27274619, 0.99871979, 0.99932416, 0.49323292,\
++	-6.27316542, -0.00041903, 0.00025671, 7.27274639, 0.99871996, 0.99932425, 0.49323303,\
++	-6.27316555, -0.00041898, 0.00025668, 7.27274658, 0.99872014, 0.99932435, 0.49323312,\
++	-6.27316569, -0.00041892, 0.00025664, 7.27274677, 0.99872031, 0.99932444, 0.49323326,\
++	-6.27316583, -0.00041886, 0.00025661, 7.27274696, 0.99872048, 0.99932453, 0.49323308,\
++	-6.27316596, -0.00041881, 0.00025658, 7.27274716, 0.99872066, 0.99932462, 0.49323307,\
++	-6.27316610, -0.00041875, 0.00025654, 7.27274735, 0.99872083, 0.99932471, 0.49323314,\
++	-6.27316623, -0.00041869, 0.00025651, 7.27274754, 0.99872100, 0.99932480, 0.49323312,\
++	-6.27316637, -0.00041864, 0.00025647, 7.27274773, 0.99872118, 0.99932489, 0.49323320,\
++	-6.27316650, -0.00041858, 0.00025644, 7.27274793, 0.99872135, 0.99932498, 0.49323311,\
++	-6.27316664, -0.00041852, 0.00025640, 7.27274812, 0.99872152, 0.99932508, 0.49323311,\
++	-6.27316677, -0.00041847, 0.00025637, 7.27274831, 0.99872170, 0.99932517, 0.49323317,\
++	-6.27316691, -0.00041841, 0.00025633, 7.27274850, 0.99872187, 0.99932526, 0.49323323,\
++	-6.27316705, -0.00041835, 0.00025630, 7.27274869, 0.99872204, 0.99932535, 0.49323325,\
++	-6.27316718, -0.00041830, 0.00025626, 7.27274888, 0.99872221, 0.99932544, 0.49323334,\
++	-6.27316732, -0.00041824, 0.00025623, 7.27274908, 0.99872239, 0.99932553, 0.49323332,\
++	-6.27316745, -0.00041818, 0.00025619, 7.27274927, 0.99872256, 0.99932562, 0.49323331,\
++	-6.27316759, -0.00041813, 0.00025616, 7.27274946, 0.99872273, 0.99932571, 0.49323331,\
++	-6.27316772, -0.00041807, 0.00025612, 7.27274965, 0.99872290, 0.99932581, 0.49323346,\
++	-6.27316786, -0.00041801, 0.00025609, 7.27274984, 0.99872308, 0.99932590, 0.49323331,\
++	-6.27316799, -0.00041796, 0.00025606, 7.27275003, 0.99872325, 0.99932599, 0.49323339,\
++	-6.27316813, -0.00041790, 0.00025602, 7.27275023, 0.99872342, 0.99932608, 0.49323343,\
++	-6.27316826, -0.00041784, 0.00025599, 7.27275042, 0.99872359, 0.99932617, 0.49323337,\
++	-6.27316840, -0.00041779, 0.00025595, 7.27275061, 0.99872377, 0.99932626, 0.49323342,\
++	-6.27316853, -0.00041773, 0.00025592, 7.27275080, 0.99872394, 0.99932635, 0.49323347,\
++	-6.27316867, -0.00041768, 0.00025588, 7.27275099, 0.99872411, 0.99932644, 0.49323353,\
++	-6.27316880, -0.00041762, 0.00025585, 7.27275118, 0.99872428, 0.99932653, 0.49323349,\
++	-6.27316894, -0.00041756, 0.00025581, 7.27275137, 0.99872446, 0.99932662, 0.49323358,\
++	-6.27316907, -0.00041751, 0.00025578, 7.27275157, 0.99872463, 0.99932671, 0.49323354,\
++	-6.27316921, -0.00041745, 0.00025574, 7.27275176, 0.99872480, 0.99932681, 0.49323350,\
++	-6.27316934, -0.00041739, 0.00025571, 7.27275195, 0.99872497, 0.99932690, 0.49323356,\
++	-6.27316948, -0.00041734, 0.00025568, 7.27275214, 0.99872514, 0.99932699, 0.49323355,\
++	-6.27316961, -0.00041728, 0.00025564, 7.27275233, 0.99872532, 0.99932708, 0.49323359,\
++	-6.27316974, -0.00041722, 0.00025561, 7.27275252, 0.99872549, 0.99932717, 0.49323360,\
++	-6.27316988, -0.00041717, 0.00025557, 7.27275271, 0.99872566, 0.99932726, 0.49323362,\
++	-6.27317001, -0.00041711, 0.00025554, 7.27275290, 0.99872583, 0.99932735, 0.49323369,\
++	-6.27317015, -0.00041706, 0.00025550, 7.27275309, 0.99872600, 0.99932744, 0.49323369,\
++	-6.27317028, -0.00041700, 0.00025547, 7.27275328, 0.99872617, 0.99932753, 0.49323368,\
++	-6.27317042, -0.00041694, 0.00025543, 7.27275347, 0.99872635, 0.99932762, 0.49323375,\
++	-6.27317055, -0.00041689, 0.00025540, 7.27275366, 0.99872652, 0.99932771, 0.49323378,\
++	-6.27317069, -0.00041683, 0.00025537, 7.27275385, 0.99872669, 0.99932780, 0.49323373,\
++	-6.27317082, -0.00041678, 0.00025533, 7.27275405, 0.99872686, 0.99932789, 0.49323370,\
++	-6.27317095, -0.00041672, 0.00025530, 7.27275424, 0.99872703, 0.99932798, 0.49323379,\
++	-6.27317109, -0.00041666, 0.00025526, 7.27275443, 0.99872720, 0.99932807, 0.49323375,\
++	-6.27317122, -0.00041661, 0.00025523, 7.27275462, 0.99872738, 0.99932816, 0.49323392,\
++	-6.27317136, -0.00041655, 0.00025519, 7.27275481, 0.99872755, 0.99932826, 0.49323391,\
++	-6.27317149, -0.00041649, 0.00025516, 7.27275500, 0.99872772, 0.99932835, 0.49323391,\
++	-6.27317163, -0.00041644, 0.00025512, 7.27275519, 0.99872789, 0.99932844, 0.49323388,\
++	-6.27317176, -0.00041638, 0.00025509, 7.27275538, 0.99872806, 0.99932853, 0.49323395,\
++	-6.27317189, -0.00041633, 0.00025506, 7.27275557, 0.99872823, 0.99932862, 0.49323385,\
++	-6.27317203, -0.00041627, 0.00025502, 7.27275576, 0.99872840, 0.99932871, 0.49323392,\
++	-6.27317216, -0.00041621, 0.00025499, 7.27275595, 0.99872857, 0.99932880, 0.49323402,\
++	-6.27317230, -0.00041616, 0.00025495, 7.27275614, 0.99872874, 0.99932889, 0.49323405,\
++	-6.27317243, -0.00041610, 0.00025492, 7.27275633, 0.99872892, 0.99932898, 0.49323405,\
++	-6.27317256, -0.00041605, 0.00025488, 7.27275652, 0.99872909, 0.99932907, 0.49323408,\
++	-6.27317270, -0.00041599, 0.00025485, 7.27275671, 0.99872926, 0.99932916, 0.49323410,\
++	-6.27317283, -0.00041594, 0.00025482, 7.27275690, 0.99872943, 0.99932925, 0.49323410,\
++	-6.27317297, -0.00041588, 0.00025478, 7.27275709, 0.99872960, 0.99932934, 0.49323416,\
++	-6.27317310, -0.00041582, 0.00025475, 7.27275728, 0.99872977, 0.99932943, 0.49323413,\
++	-6.27317323, -0.00041577, 0.00025471, 7.27275746, 0.99872994, 0.99932952, 0.49323409,\
++	-6.27317337, -0.00041571, 0.00025468, 7.27275765, 0.99873011, 0.99932961, 0.49323425,\
++	-6.27317350, -0.00041566, 0.00025465, 7.27275784, 0.99873028, 0.99932970, 0.49323426,\
++	-6.27317363, -0.00041560, 0.00025461, 7.27275803, 0.99873045, 0.99932979, 0.49323421,\
++	-6.27317377, -0.00041554, 0.00025458, 7.27275822, 0.99873062, 0.99932988, 0.49323430,\
++	-6.27317390, -0.00041549, 0.00025454, 7.27275841, 0.99873079, 0.99932997, 0.49323422,\
++	-6.27317403, -0.00041543, 0.00025451, 7.27275860, 0.99873096, 0.99933006, 0.49323429,\
++	-6.27317417, -0.00041538, 0.00025447, 7.27275879, 0.99873113, 0.99933015, 0.49323420,\
++	-6.27317430, -0.00041532, 0.00025444, 7.27275898, 0.99873130, 0.99933024, 0.49323427,\
++	-6.27317443, -0.00041527, 0.00025441, 7.27275917, 0.99873147, 0.99933033, 0.49323431,\
++	-6.27317457, -0.00041521, 0.00025437, 7.27275936, 0.99873164, 0.99933042, 0.49323443,\
++	-6.27317470, -0.00041515, 0.00025434, 7.27275955, 0.99873181, 0.99933051, 0.49323428,\
++	-6.27317483, -0.00041510, 0.00025430, 7.27275974, 0.99873198, 0.99933060, 0.49323443,\
++	-6.27317497, -0.00041504, 0.00025427, 7.27275992, 0.99873215, 0.99933069, 0.49323437,\
++	-6.27317510, -0.00041499, 0.00025424, 7.27276011, 0.99873232, 0.99933078, 0.49323454,\
++	-6.27317523, -0.00041493, 0.00025420, 7.27276030, 0.99873249, 0.99933087, 0.49323446,\
++	-6.27317537, -0.00041488, 0.00025417, 7.27276049, 0.99873266, 0.99933096, 0.49323436,\
++	-6.27317550, -0.00041482, 0.00025413, 7.27276068, 0.99873283, 0.99933105, 0.49323455,\
++	-6.27317563, -0.00041476, 0.00025410, 7.27276087, 0.99873300, 0.99933114, 0.49323443,\
++	-6.27317577, -0.00041471, 0.00025406, 7.27276106, 0.99873317, 0.99933123, 0.49323444,\
++	-6.27317590, -0.00041465, 0.00025403, 7.27276124, 0.99873334, 0.99933132, 0.49323452,\
++	-6.27317603, -0.00041460, 0.00025400, 7.27276143, 0.99873351, 0.99933140, 0.49323465,\
++	-6.27317616, -0.00041454, 0.00025396, 7.27276162, 0.99873368, 0.99933149, 0.49323452,\
++	-6.27317630, -0.00041449, 0.00025393, 7.27276181, 0.99873385, 0.99933158, 0.49323459,\
++	-6.27317643, -0.00041443, 0.00025389, 7.27276200, 0.99873402, 0.99933167, 0.49323462,\
++	-6.27317656, -0.00041438, 0.00025386, 7.27276219, 0.99873419, 0.99933176, 0.49323457,\
++	-6.27317670, -0.00041432, 0.00025383, 7.27276237, 0.99873436, 0.99933185, 0.49323468,\
++	-6.27317683, -0.00041427, 0.00025379, 7.27276256, 0.99873453, 0.99933194, 0.49323479,\
++	-6.27317696, -0.00041421, 0.00025376, 7.27276275, 0.99873470, 0.99933203, 0.49323481,\
++	-6.27317709, -0.00041415, 0.00025372, 7.27276294, 0.99873487, 0.99933212, 0.49323465,\
++	-6.27317723, -0.00041410, 0.00025369, 7.27276313, 0.99873504, 0.99933221, 0.49323467,\
++	-6.27317736, -0.00041404, 0.00025366, 7.27276332, 0.99873521, 0.99933230, 0.49323474,\
++	-6.27317749, -0.00041399, 0.00025362, 7.27276350, 0.99873538, 0.99933239, 0.49323475,\
++	-6.27317762, -0.00041393, 0.00025359, 7.27276369, 0.99873555, 0.99933248, 0.49323489,\
++	-6.27317776, -0.00041388, 0.00025355, 7.27276388, 0.99873572, 0.99933257, 0.49323478,\
++	-6.27317789, -0.00041382, 0.00025352, 7.27276407, 0.99873588, 0.99933266, 0.49323490,\
++	-6.27317802, -0.00041377, 0.00025349, 7.27276425, 0.99873605, 0.99933275, 0.49323500,\
++	-6.27317815, -0.00041371, 0.00025345, 7.27276444, 0.99873622, 0.99933283, 0.49323486,\
++	-6.27317829, -0.00041366, 0.00025342, 7.27276463, 0.99873639, 0.99933292, 0.49323491,\
++	-6.27317842, -0.00041360, 0.00025339, 7.27276482, 0.99873656, 0.99933301, 0.49323473,\
++	-6.27317855, -0.00041355, 0.00025335, 7.27276500, 0.99873673, 0.99933310, 0.49323495,\
++	-6.27317868, -0.00041349, 0.00025332, 7.27276519, 0.99873690, 0.99933319, 0.49323495,\
++	-6.27317882, -0.00041344, 0.00025328, 7.27276538, 0.99873707, 0.99933328, 0.49323487,\
++	-6.27317895, -0.00041338, 0.00025325, 7.27276557, 0.99873724, 0.99933337, 0.49323500,\
++	-6.27317908, -0.00041333, 0.00025322, 7.27276575, 0.99873740, 0.99933346, 0.49323493,\
++	-6.27317921, -0.00041327, 0.00025318, 7.27276594, 0.99873757, 0.99933355, 0.49323497,\
++	-6.27317934, -0.00041321, 0.00025315, 7.27276613, 0.99873774, 0.99933364, 0.49323507,\
++	-6.27317948, -0.00041316, 0.00025311, 7.27276632, 0.99873791, 0.99933373, 0.49323512,\
++	-6.27317961, -0.00041310, 0.00025308, 7.27276650, 0.99873808, 0.99933381, 0.49323500,\
++	-6.27317974, -0.00041305, 0.00025305, 7.27276669, 0.99873825, 0.99933390, 0.49323510,\
++	-6.27317987, -0.00041299, 0.00025301, 7.27276688, 0.99873842, 0.99933399, 0.49323520,\
++	-6.27318000, -0.00041294, 0.00025298, 7.27276706, 0.99873858, 0.99933408, 0.49323515,\
++	-6.27318014, -0.00041288, 0.00025295, 7.27276725, 0.99873875, 0.99933417, 0.49323523,\
++	-6.27318027, -0.00041283, 0.00025291, 7.27276744, 0.99873892, 0.99933426, 0.49323516,\
++	-6.27318040, -0.00041277, 0.00025288, 7.27276762, 0.99873909, 0.99933435, 0.49323517,\
++	-6.27318053, -0.00041272, 0.00025284, 7.27276781, 0.99873926, 0.99933444, 0.49323519,\
++	-6.27318066, -0.00041266, 0.00025281, 7.27276800, 0.99873942, 0.99933453, 0.49323515,\
++	-6.27318079, -0.00041261, 0.00025278, 7.27276818, 0.99873959, 0.99933461, 0.49323538,\
++	-6.27318093, -0.00041255, 0.00025274, 7.27276837, 0.99873976, 0.99933470, 0.49323529,\
++	-6.27318106, -0.00041250, 0.00025271, 7.27276856, 0.99873993, 0.99933479, 0.49323537,\
++	-6.27318119, -0.00041244, 0.00025268, 7.27276874, 0.99874010, 0.99933488, 0.49323534,\
++	-6.27318132, -0.00041239, 0.00025264, 7.27276893, 0.99874026, 0.99933497, 0.49323537,\
++	-6.27318145, -0.00041233, 0.00025261, 7.27276912, 0.99874043, 0.99933506, 0.49323540,\
++	-6.27318158, -0.00041228, 0.00025258, 7.27276930, 0.99874060, 0.99933515, 0.49323539,\
++	-6.27318171, -0.00041222, 0.00025254, 7.27276949, 0.99874077, 0.99933523, 0.49323536,\
++	-6.27318185, -0.00041217, 0.00025251, 7.27276968, 0.99874094, 0.99933532, 0.49323541,\
++	-6.27318198, -0.00041211, 0.00025247, 7.27276986, 0.99874110, 0.99933541, 0.49323529,\
++	-6.27318211, -0.00041206, 0.00025244, 7.27277005, 0.99874127, 0.99933550, 0.49323554,\
++	-6.27318224, -0.00041200, 0.00025241, 7.27277023, 0.99874144, 0.99933559, 0.49323556,\
++	-6.27318237, -0.00041195, 0.00025237, 7.27277042, 0.99874161, 0.99933568, 0.49323548,\
++	-6.27318250, -0.00041190, 0.00025234, 7.27277061, 0.99874177, 0.99933577, 0.49323555,\
++	-6.27318263, -0.00041184, 0.00025231, 7.27277079, 0.99874194, 0.99933585, 0.49323555,\
++	-6.27318276, -0.00041179, 0.00025227, 7.27277098, 0.99874211, 0.99933594, 0.49323566,\
++	-6.27318290, -0.00041173, 0.00025224, 7.27277117, 0.99874228, 0.99933603, 0.49323552,\
++	-6.27318303, -0.00041168, 0.00025221, 7.27277135, 0.99874244, 0.99933612, 0.49323561,\
++	-6.27318316, -0.00041162, 0.00025217, 7.27277154, 0.99874261, 0.99933621, 0.49323566,\
++	-6.27318329, -0.00041157, 0.00025214, 7.27277172, 0.99874278, 0.99933630, 0.49323555,\
++	-6.27318342, -0.00041151, 0.00025210, 7.27277191, 0.99874294, 0.99933638, 0.49323560,\
++	-6.27318355, -0.00041146, 0.00025207, 7.27277209, 0.99874311, 0.99933647, 0.49323570,\
++	-6.27318368, -0.00041140, 0.00025204, 7.27277228, 0.99874328, 0.99933656, 0.49323566,\
++	-6.27318381, -0.00041135, 0.00025200, 7.27277246, 0.99874345, 0.99933665, 0.49323580,\
++	-6.27318394, -0.00041129, 0.00025197, 7.27277265, 0.99874361, 0.99933674, 0.49323573,\
++	-6.27318407, -0.00041124, 0.00025194, 7.27277284, 0.99874378, 0.99933682, 0.49323588,\
++	-6.27318420, -0.00041118, 0.00025190, 7.27277302, 0.99874395, 0.99933691, 0.49323574,\
++	-6.27318434, -0.00041113, 0.00025187, 7.27277321, 0.99874411, 0.99933700, 0.49323584,\
++	-6.27318447, -0.00041107, 0.00025184, 7.27277339, 0.99874428, 0.99933709, 0.49323574,\
++	-6.27318460, -0.00041102, 0.00025180, 7.27277358, 0.99874445, 0.99933718, 0.49323586,\
++	-6.27318473, -0.00041097, 0.00025177, 7.27277376, 0.99874461, 0.99933726, 0.49323593,\
++	-6.27318486, -0.00041091, 0.00025174, 7.27277395, 0.99874478, 0.99933735, 0.49323592,\
++	-6.27318499, -0.00041086, 0.00025170, 7.27277413, 0.99874495, 0.99933744, 0.49323598,\
++	-6.27318512, -0.00041080, 0.00025167, 7.27277432, 0.99874511, 0.99933753, 0.49323589,\
++	-6.27318525, -0.00041075, 0.00025164, 7.27277450, 0.99874528, 0.99933762, 0.49323587,\
++	-6.27318538, -0.00041069, 0.00025160, 7.27277469, 0.99874545, 0.99933770, 0.49323605,\
++	-6.27318551, -0.00041064, 0.00025157, 7.27277487, 0.99874561, 0.99933779, 0.49323594,\
++	-6.27318564, -0.00041058, 0.00025154, 7.27277506, 0.99874578, 0.99933788, 0.49323599,\
++	-6.27318577, -0.00041053, 0.00025150, 7.27277524, 0.99874595, 0.99933797, 0.49323604,\
++	-6.27318590, -0.00041048, 0.00025147, 7.27277543, 0.99874611, 0.99933806, 0.49323602,\
++	-6.27318603, -0.00041042, 0.00025144, 7.27277561, 0.99874628, 0.99933814, 0.49323601,\
++	-6.27318616, -0.00041037, 0.00025140, 7.27277580, 0.99874645, 0.99933823, 0.49323601,\
++	-6.27318629, -0.00041031, 0.00025137, 7.27277598, 0.99874661, 0.99933832, 0.49323608,\
++	-6.27318642, -0.00041026, 0.00025134, 7.27277616, 0.99874678, 0.99933841, 0.49323616,\
++	-6.27318655, -0.00041020, 0.00025130, 7.27277635, 0.99874694, 0.99933849, 0.49323617,\
++	-6.27318668, -0.00041015, 0.00025127, 7.27277653, 0.99874711, 0.99933858, 0.49323615,\
++	-6.27318681, -0.00041009, 0.00025124, 7.27277672, 0.99874728, 0.99933867, 0.49323614,\
++	-6.27318694, -0.00041004, 0.00025120, 7.27277690, 0.99874744, 0.99933876, 0.49323615,\
++	-6.27318707, -0.00040999, 0.00025117, 7.27277709, 0.99874761, 0.99933884, 0.49323610,\
++	-6.27318720, -0.00040993, 0.00025114, 7.27277727, 0.99874777, 0.99933893, 0.49323628,\
++	-6.27318733, -0.00040988, 0.00025110, 7.27277746, 0.99874794, 0.99933902, 0.49323634,\
++	-6.27318746, -0.00040982, 0.00025107, 7.27277764, 0.99874811, 0.99933911, 0.49323627,\
++	-6.27318759, -0.00040977, 0.00025104, 7.27277782, 0.99874827, 0.99933919, 0.49323622,\
++	-6.27318772, -0.00040971, 0.00025100, 7.27277801, 0.99874844, 0.99933928, 0.49323631,\
++	-6.27318785, -0.00040966, 0.00025097, 7.27277819, 0.99874860, 0.99933937, 0.49323628,\
++	-6.27318798, -0.00040961, 0.00025094, 7.27277838, 0.99874877, 0.99933946, 0.49323627,\
++	-6.27318811, -0.00040955, 0.00025090, 7.27277856, 0.99874893, 0.99933954, 0.49323637,\
++	-6.27318824, -0.00040950, 0.00025087, 7.27277874, 0.99874910, 0.99933963, 0.49323632,\
++	-6.27318837, -0.00040944, 0.00025084, 7.27277893, 0.99874927, 0.99933972, 0.49323640,\
++	-6.27318850, -0.00040939, 0.00025080, 7.27277911, 0.99874943, 0.99933981, 0.49323651,\
++	-6.27318863, -0.00040934, 0.00025077, 7.27277929, 0.99874960, 0.99933989, 0.49323644,\
++	-6.27318876, -0.00040928, 0.00025074, 7.27277948, 0.99874976, 0.99933998, 0.49323637,\
++	-6.27318889, -0.00040923, 0.00025070, 7.27277966, 0.99874993, 0.99934007, 0.49323647,\
++	-6.27318902, -0.00040917, 0.00025067, 7.27277985, 0.99875009, 0.99934016, 0.49323644,\
++	-6.27318915, -0.00040912, 0.00025064, 7.27278003, 0.99875026, 0.99934024, 0.49323643,\
++	-6.27318928, -0.00040906, 0.00025060, 7.27278021, 0.99875042, 0.99934033, 0.49323648,\
++	-6.27318941, -0.00040901, 0.00025057, 7.27278040, 0.99875059, 0.99934042, 0.49323655,\
++	-6.27318954, -0.00040896, 0.00025054, 7.27278058, 0.99875075, 0.99934050, 0.49323657,\
++	-6.27318967, -0.00040890, 0.00025051, 7.27278076, 0.99875092, 0.99934059, 0.49323664,\
++	-6.27318979, -0.00040885, 0.00025047, 7.27278095, 0.99875108, 0.99934068, 0.49323657,\
++	-6.27318992, -0.00040879, 0.00025044, 7.27278113, 0.99875125, 0.99934077, 0.49323666,\
++	-6.27319005, -0.00040874, 0.00025041, 7.27278131, 0.99875141, 0.99934085, 0.49323663,\
++	-6.27319018, -0.00040869, 0.00025037, 7.27278150, 0.99875158, 0.99934094, 0.49323672,\
++	-6.27319031, -0.00040863, 0.00025034, 7.27278168, 0.99875174, 0.99934103, 0.49323665,\
++	-6.27319044, -0.00040858, 0.00025031, 7.27278186, 0.99875191, 0.99934111, 0.49323670,\
++	-6.27319057, -0.00040852, 0.00025027, 7.27278204, 0.99875207, 0.99934120, 0.49323671,\
++	-6.27319070, -0.00040847, 0.00025024, 7.27278223, 0.99875224, 0.99934129, 0.49323673,\
++	-6.27319083, -0.00040842, 0.00025021, 7.27278241, 0.99875240, 0.99934137, 0.49323684,\
++	-6.27319096, -0.00040836, 0.00025017, 7.27278259, 0.99875257, 0.99934146, 0.49323687,\
++	-6.27319109, -0.00040831, 0.00025014, 7.27278278, 0.99875273, 0.99934155, 0.49323685,\
++	-6.27319121, -0.00040826, 0.00025011, 7.27278296, 0.99875290, 0.99934164, 0.49323688,\
++	-6.27319134, -0.00040820, 0.00025008, 7.27278314, 0.99875306, 0.99934172, 0.49323675,\
++	-6.27319147, -0.00040815, 0.00025004, 7.27278332, 0.99875322, 0.99934181, 0.49323678,\
++	-6.27319160, -0.00040809, 0.00025001, 7.27278351, 0.99875339, 0.99934190, 0.49323687,\
++	-6.27319173, -0.00040804, 0.00024998, 7.27278369, 0.99875355, 0.99934198, 0.49323686,\
++	-6.27319186, -0.00040799, 0.00024994, 7.27278387, 0.99875372, 0.99934207, 0.49323698,\
++	-6.27319199, -0.00040793, 0.00024991, 7.27278405, 0.99875388, 0.99934216, 0.49323692,\
++	-6.27319212, -0.00040788, 0.00024988, 7.27278424, 0.99875405, 0.99934224, 0.49323708,\
++	-6.27319224, -0.00040783, 0.00024985, 7.27278442, 0.99875421, 0.99934233, 0.49323704,\
++	-6.27319237, -0.00040777, 0.00024981, 7.27278460, 0.99875437, 0.99934242, 0.49323700,\
++	-6.27319250, -0.00040772, 0.00024978, 7.27278478, 0.99875454, 0.99934250, 0.49323693,\
++	-6.27319263, -0.00040766, 0.00024975, 7.27278497, 0.99875470, 0.99934259, 0.49323702,\
++	-6.27319276, -0.00040761, 0.00024971, 7.27278515, 0.99875487, 0.99934268, 0.49323716,\
++	-6.27319289, -0.00040756, 0.00024968, 7.27278533, 0.99875503, 0.99934276, 0.49323703,\
++	-6.27319302, -0.00040750, 0.00024965, 7.27278551, 0.99875519, 0.99934285, 0.49323706,\
++	-6.27319314, -0.00040745, 0.00024961, 7.27278569, 0.99875536, 0.99934294, 0.49323706,\
++	-6.27319327, -0.00040740, 0.00024958, 7.27278588, 0.99875552, 0.99934302, 0.49323714,\
++	-6.27319340, -0.00040734, 0.00024955, 7.27278606, 0.99875569, 0.99934311, 0.49323706,\
++	-6.27319353, -0.00040729, 0.00024952, 7.27278624, 0.99875585, 0.99934320, 0.49323708,\
++	-6.27319366, -0.00040724, 0.00024948, 7.27278642, 0.99875601, 0.99934328, 0.49323729,\
++	-6.27319379, -0.00040718, 0.00024945, 7.27278660, 0.99875618, 0.99934337, 0.49323724,\
++	-6.27319391, -0.00040713, 0.00024942, 7.27278679, 0.99875634, 0.99934345, 0.49323721,\
++	-6.27319404, -0.00040707, 0.00024938, 7.27278697, 0.99875650, 0.99934354, 0.49323728,\
++	-6.27319417, -0.00040702, 0.00024935, 7.27278715, 0.99875667, 0.99934363, 0.49323732,\
++	-6.27319430, -0.00040697, 0.00024932, 7.27278733, 0.99875683, 0.99934371, 0.49323735,\
++	-6.27319443, -0.00040691, 0.00024929, 7.27278751, 0.99875700, 0.99934380, 0.49323736,\
++	-6.27319455, -0.00040686, 0.00024925, 7.27278769, 0.99875716, 0.99934389, 0.49323725,\
++	-6.27319468, -0.00040681, 0.00024922, 7.27278788, 0.99875732, 0.99934397, 0.49323738,\
++	-6.27319481, -0.00040675, 0.00024919, 7.27278806, 0.99875749, 0.99934406, 0.49323735,\
++	-6.27319494, -0.00040670, 0.00024916, 7.27278824, 0.99875765, 0.99934414, 0.49323731,\
++	-6.27319507, -0.00040665, 0.00024912, 7.27278842, 0.99875781, 0.99934423, 0.49323743,\
++	-6.27319519, -0.00040659, 0.00024909, 7.27278860, 0.99875798, 0.99934432, 0.49323750,\
++	-6.27319532, -0.00040654, 0.00024906, 7.27278878, 0.99875814, 0.99934440, 0.49323738,\
++	-6.27319545, -0.00040649, 0.00024902, 7.27278896, 0.99875830, 0.99934449, 0.49323751,\
++	-6.27319558, -0.00040643, 0.00024899, 7.27278914, 0.99875846, 0.99934457, 0.49323752,\
++	-6.27319571, -0.00040638, 0.00024896, 7.27278933, 0.99875863, 0.99934466, 0.49323741,\
++	-6.27319583, -0.00040633, 0.00024893, 7.27278951, 0.99875879, 0.99934475, 0.49323749,\
++	-6.27319596, -0.00040627, 0.00024889, 7.27278969, 0.99875895, 0.99934483, 0.49323755,\
++	-6.27319609, -0.00040622, 0.00024886, 7.27278987, 0.99875912, 0.99934492, 0.49323762,\
++	-6.27319622, -0.00040617, 0.00024883, 7.27279005, 0.99875928, 0.99934501, 0.49323759,\
++	-6.27319634, -0.00040611, 0.00024880, 7.27279023, 0.99875944, 0.99934509, 0.49323760,\
++	-6.27319647, -0.00040606, 0.00024876, 7.27279041, 0.99875960, 0.99934518, 0.49323757,\
++	-6.27319660, -0.00040601, 0.00024873, 7.27279059, 0.99875977, 0.99934526, 0.49323761,\
++	-6.27319673, -0.00040595, 0.00024870, 7.27279077, 0.99875993, 0.99934535, 0.49323762,\
++	-6.27319685, -0.00040590, 0.00024867, 7.27279095, 0.99876009, 0.99934543, 0.49323771,\
++	-6.27319698, -0.00040585, 0.00024863, 7.27279113, 0.99876026, 0.99934552, 0.49323775,\
++	-6.27319711, -0.00040579, 0.00024860, 7.27279131, 0.99876042, 0.99934561, 0.49323777,\
++	-6.27319724, -0.00040574, 0.00024857, 7.27279149, 0.99876058, 0.99934569, 0.49323761,\
++	-6.27319736, -0.00040569, 0.00024853, 7.27279168, 0.99876074, 0.99934578, 0.49323772,\
++	-6.27319749, -0.00040563, 0.00024850, 7.27279186, 0.99876091, 0.99934586, 0.49323767,\
++	-6.27319762, -0.00040558, 0.00024847, 7.27279204, 0.99876107, 0.99934595, 0.49323779,\
++	-6.27319774, -0.00040553, 0.00024844, 7.27279222, 0.99876123, 0.99934603, 0.49323782,\
++	-6.27319787, -0.00040547, 0.00024840, 7.27279240, 0.99876139, 0.99934612, 0.49323776,\
++	-6.27319800, -0.00040542, 0.00024837, 7.27279258, 0.99876156, 0.99934621, 0.49323782,\
++	-6.27319813, -0.00040537, 0.00024834, 7.27279276, 0.99876172, 0.99934629, 0.49323787,\
++	-6.27319825, -0.00040532, 0.00024831, 7.27279294, 0.99876188, 0.99934638, 0.49323783,\
++	-6.27319838, -0.00040526, 0.00024827, 7.27279312, 0.99876204, 0.99934646, 0.49323795,\
++	-6.27319851, -0.00040521, 0.00024824, 7.27279330, 0.99876220, 0.99934655, 0.49323788,\
++	-6.27319863, -0.00040516, 0.00024821, 7.27279348, 0.99876237, 0.99934663, 0.49323798,\
++	-6.27319876, -0.00040510, 0.00024818, 7.27279366, 0.99876253, 0.99934672, 0.49323799,\
++	-6.27319889, -0.00040505, 0.00024814, 7.27279384, 0.99876269, 0.99934681, 0.49323794,\
++	-6.27319901, -0.00040500, 0.00024811, 7.27279402, 0.99876285, 0.99934689, 0.49323812,\
++	-6.27319914, -0.00040494, 0.00024808, 7.27279420, 0.99876301, 0.99934698, 0.49323800,\
++	-6.27319927, -0.00040489, 0.00024805, 7.27279438, 0.99876318, 0.99934706, 0.49323799,\
++	-6.27319939, -0.00040484, 0.00024801, 7.27279456, 0.99876334, 0.99934715, 0.49323807,\
++	-6.27319952, -0.00040479, 0.00024798, 7.27279474, 0.99876350, 0.99934723, 0.49323804,\
++	-6.27319965, -0.00040473, 0.00024795, 7.27279492, 0.99876366, 0.99934732, 0.49323807,\
++	-6.27319977, -0.00040468, 0.00024792, 7.27279510, 0.99876382, 0.99934740, 0.49323796,\
++	-6.27319990, -0.00040463, 0.00024788, 7.27279527, 0.99876398, 0.99934749, 0.49323820,\
++	-6.27320003, -0.00040457, 0.00024785, 7.27279545, 0.99876415, 0.99934757, 0.49323815,\
++	-6.27320015, -0.00040452, 0.00024782, 7.27279563, 0.99876431, 0.99934766, 0.49323813,\
++	-6.27320028, -0.00040447, 0.00024779, 7.27279581, 0.99876447, 0.99934774, 0.49323819,\
++	-6.27320041, -0.00040442, 0.00024776, 7.27279599, 0.99876463, 0.99934783, 0.49323817,\
++	-6.27320053, -0.00040436, 0.00024772, 7.27279617, 0.99876479, 0.99934791, 0.49323809,\
++	-6.27320066, -0.00040431, 0.00024769, 7.27279635, 0.99876495, 0.99934800, 0.49323823,\
++	-6.27320079, -0.00040426, 0.00024766, 7.27279653, 0.99876511, 0.99934809, 0.49323818,\
++	-6.27320091, -0.00040420, 0.00024763, 7.27279671, 0.99876528, 0.99934817, 0.49323822,\
++	-6.27320104, -0.00040415, 0.00024759, 7.27279689, 0.99876544, 0.99934826, 0.49323828,\
++	-6.27320117, -0.00040410, 0.00024756, 7.27279707, 0.99876560, 0.99934834, 0.49323852,\
++	-6.27320129, -0.00040405, 0.00024753, 7.27279725, 0.99876576, 0.99934843, 0.49323826,\
++	-6.27320142, -0.00040399, 0.00024750, 7.27279743, 0.99876592, 0.99934851, 0.49323833,\
++	-6.27320154, -0.00040394, 0.00024746, 7.27279760, 0.99876608, 0.99934860, 0.49323832,\
++	-6.27320167, -0.00040389, 0.00024743, 7.27279778, 0.99876624, 0.99934868, 0.49323839,\
++	-6.27320180, -0.00040383, 0.00024740, 7.27279796, 0.99876640, 0.99934877, 0.49323831,\
++	-6.27320192, -0.00040378, 0.00024737, 7.27279814, 0.99876656, 0.99934885, 0.49323847,\
++	-6.27320205, -0.00040373, 0.00024733, 7.27279832, 0.99876673, 0.99934894, 0.49323846,\
++	-6.27320217, -0.00040368, 0.00024730, 7.27279850, 0.99876689, 0.99934902, 0.49323853,\
++	-6.27320230, -0.00040362, 0.00024727, 7.27279868, 0.99876705, 0.99934911, 0.49323849,\
++	-6.27320243, -0.00040357, 0.00024724, 7.27279886, 0.99876721, 0.99934919, 0.49323847,\
++	-6.27320255, -0.00040352, 0.00024721, 7.27279903, 0.99876737, 0.99934928, 0.49323843,\
++	-6.27320268, -0.00040347, 0.00024717, 7.27279921, 0.99876753, 0.99934936, 0.49323854,\
++	-6.27320280, -0.00040341, 0.00024714, 7.27279939, 0.99876769, 0.99934944, 0.49323862,\
++	-6.27320293, -0.00040336, 0.00024711, 7.27279957, 0.99876785, 0.99934953, 0.49323861,\
++	-6.27320306, -0.00040331, 0.00024708, 7.27279975, 0.99876801, 0.99934961, 0.49323862,\
++	-6.27320318, -0.00040326, 0.00024704, 7.27279993, 0.99876817, 0.99934970, 0.49323859,\
++	-6.27320331, -0.00040320, 0.00024701, 7.27280010, 0.99876833, 0.99934978, 0.49323864,\
++	-6.27320343, -0.00040315, 0.00024698, 7.27280028, 0.99876849, 0.99934987, 0.49323872,\
++	-6.27320356, -0.00040310, 0.00024695, 7.27280046, 0.99876865, 0.99934995, 0.49323853,\
++	-6.27320368, -0.00040305, 0.00024692, 7.27280064, 0.99876881, 0.99935004, 0.49323874,\
++	-6.27320381, -0.00040299, 0.00024688, 7.27280082, 0.99876897, 0.99935012, 0.49323866,\
++	-6.27320394, -0.00040294, 0.00024685, 7.27280099, 0.99876913, 0.99935021, 0.49323878,\
++	-6.27320406, -0.00040289, 0.00024682, 7.27280117, 0.99876929, 0.99935029, 0.49323872,\
++	-6.27320419, -0.00040284, 0.00024679, 7.27280135, 0.99876945, 0.99935038, 0.49323872,\
++	-6.27320431, -0.00040278, 0.00024676, 7.27280153, 0.99876961, 0.99935046, 0.49323876,\
++	-6.27320444, -0.00040273, 0.00024672, 7.27280171, 0.99876978, 0.99935055, 0.49323884,\
++	-6.27320456, -0.00040268, 0.00024669, 7.27280188, 0.99876994, 0.99935063, 0.49323875,\
++	-6.27320469, -0.00040263, 0.00024666, 7.27280206, 0.99877010, 0.99935071, 0.49323881,\
++	-6.27320481, -0.00040257, 0.00024663, 7.27280224, 0.99877026, 0.99935080, 0.49323883,\
++	-6.27320494, -0.00040252, 0.00024659, 7.27280242, 0.99877042, 0.99935088, 0.49323893,\
++	-6.27320506, -0.00040247, 0.00024656, 7.27280259, 0.99877058, 0.99935097, 0.49323897,\
++	-6.27320519, -0.00040242, 0.00024653, 7.27280277, 0.99877073, 0.99935105, 0.49323888,\
++	-6.27320532, -0.00040237, 0.00024650, 7.27280295, 0.99877089, 0.99935114, 0.49323894,\
++	-6.27320544, -0.00040231, 0.00024647, 7.27280313, 0.99877105, 0.99935122, 0.49323891,\
++	-6.27320557, -0.00040226, 0.00024643, 7.27280330, 0.99877121, 0.99935130, 0.49323883,\
++	-6.27320569, -0.00040221, 0.00024640, 7.27280348, 0.99877137, 0.99935139, 0.49323900,\
++	-6.27320582, -0.00040216, 0.00024637, 7.27280366, 0.99877153, 0.99935147, 0.49323894,\
++	-6.27320594, -0.00040210, 0.00024634, 7.27280384, 0.99877169, 0.99935156, 0.49323913,\
++	-6.27320607, -0.00040205, 0.00024631, 7.27280401, 0.99877185, 0.99935164, 0.49323892,\
++	-6.27320619, -0.00040200, 0.00024627, 7.27280419, 0.99877201, 0.99935173, 0.49323905,\
++	-6.27320632, -0.00040195, 0.00024624, 7.27280437, 0.99877217, 0.99935181, 0.49323908,\
++	-6.27320644, -0.00040190, 0.00024621, 7.27280455, 0.99877233, 0.99935189, 0.49323912,\
++	-6.27320657, -0.00040184, 0.00024618, 7.27280472, 0.99877249, 0.99935198, 0.49323907,\
++	-6.27320669, -0.00040179, 0.00024615, 7.27280490, 0.99877265, 0.99935206, 0.49323901,\
++	-6.27320682, -0.00040174, 0.00024611, 7.27280508, 0.99877281, 0.99935215, 0.49323923,\
++	-6.27320694, -0.00040169, 0.00024608, 7.27280525, 0.99877297, 0.99935223, 0.49323914,\
++	-6.27320706, -0.00040163, 0.00024605, 7.27280543, 0.99877313, 0.99935231, 0.49323921,\
++	-6.27320719, -0.00040158, 0.00024602, 7.27280561, 0.99877329, 0.99935240, 0.49323926,\
++	-6.27320731, -0.00040153, 0.00024599, 7.27280578, 0.99877345, 0.99935248, 0.49323926,\
++	-6.27320744, -0.00040148, 0.00024595, 7.27280596, 0.99877361, 0.99935257, 0.49323918,\
++	-6.27320756, -0.00040143, 0.00024592, 7.27280614, 0.99877376, 0.99935265, 0.49323936,\
++	-6.27320769, -0.00040137, 0.00024589, 7.27280631, 0.99877392, 0.99935273, 0.49323929,\
++	-6.27320781, -0.00040132, 0.00024586, 7.27280649, 0.99877408, 0.99935282, 0.49323934,\
++	-6.27320794, -0.00040127, 0.00024583, 7.27280667, 0.99877424, 0.99935290, 0.49323932,\
++	-6.27320806, -0.00040122, 0.00024580, 7.27280684, 0.99877440, 0.99935299, 0.49323931,\
++	-6.27320819, -0.00040117, 0.00024576, 7.27280702, 0.99877456, 0.99935307, 0.49323926,\
++	-6.27320831, -0.00040111, 0.00024573, 7.27280720, 0.99877472, 0.99935315, 0.49323938,\
++	-6.27320843, -0.00040106, 0.00024570, 7.27280737, 0.99877488, 0.99935324, 0.49323939,\
++	-6.27320856, -0.00040101, 0.00024567, 7.27280755, 0.99877504, 0.99935332, 0.49323934,\
++	-6.27320868, -0.00040096, 0.00024564, 7.27280773, 0.99877519, 0.99935341, 0.49323939,\
++	-6.27320881, -0.00040091, 0.00024560, 7.27280790, 0.99877535, 0.99935349, 0.49323943,\
++	-6.27320893, -0.00040085, 0.00024557, 7.27280808, 0.99877551, 0.99935357, 0.49323942,\
++	-6.27320906, -0.00040080, 0.00024554, 7.27280825, 0.99877567, 0.99935366, 0.49323947,\
++	-6.27320918, -0.00040075, 0.00024551, 7.27280843, 0.99877583, 0.99935374, 0.49323951,\
++	-6.27320930, -0.00040070, 0.00024548, 7.27280861, 0.99877599, 0.99935382, 0.49323953,\
++	-6.27320943, -0.00040065, 0.00024545, 7.27280878, 0.99877615, 0.99935391, 0.49323955,\
++	-6.27320955, -0.00040059, 0.00024541, 7.27280896, 0.99877630, 0.99935399, 0.49323962,\
++	-6.27320968, -0.00040054, 0.00024538, 7.27280913, 0.99877646, 0.99935408, 0.49323956,\
++	-6.27320980, -0.00040049, 0.00024535, 7.27280931, 0.99877662, 0.99935416, 0.49323962,\
++	-6.27320993, -0.00040044, 0.00024532, 7.27280949, 0.99877678, 0.99935424, 0.49323958,\
++	-6.27321005, -0.00040039, 0.00024529, 7.27280966, 0.99877694, 0.99935433, 0.49323965,\
++	-6.27321017, -0.00040034, 0.00024525, 7.27280984, 0.99877710, 0.99935441, 0.49323969,\
++	-6.27321030, -0.00040028, 0.00024522, 7.27281001, 0.99877725, 0.99935449, 0.49323976,\
++	-6.27321042, -0.00040023, 0.00024519, 7.27281019, 0.99877741, 0.99935458, 0.49323970,\
++	-6.27321054, -0.00040018, 0.00024516, 7.27281036, 0.99877757, 0.99935466, 0.49323974,\
++	-6.27321067, -0.00040013, 0.00024513, 7.27281054, 0.99877773, 0.99935474, 0.49323974,\
++	-6.27321079, -0.00040008, 0.00024510, 7.27281072, 0.99877789, 0.99935483, 0.49323966,\
++	-6.27321092, -0.00040003, 0.00024506, 7.27281089, 0.99877804, 0.99935491, 0.49323980,\
++	-6.27321104, -0.00039997, 0.00024503, 7.27281107, 0.99877820, 0.99935499, 0.49323982,\
++	-6.27321116, -0.00039992, 0.00024500, 7.27281124, 0.99877836, 0.99935508, 0.49323984,\
++	-6.27321129, -0.00039987, 0.00024497, 7.27281142, 0.99877852, 0.99935516, 0.49323979,\
++	-6.27321141, -0.00039982, 0.00024494, 7.27281159, 0.99877868, 0.99935524, 0.49323984,\
++	-6.27321153, -0.00039977, 0.00024491, 7.27281177, 0.99877883, 0.99935533, 0.49323987,\
++	-6.27321166, -0.00039972, 0.00024487, 7.27281194, 0.99877899, 0.99935541, 0.49323994,\
++	-6.27321178, -0.00039966, 0.00024484, 7.27281212, 0.99877915, 0.99935549, 0.49323989,\
++	-6.27321191, -0.00039961, 0.00024481, 7.27281229, 0.99877931, 0.99935558, 0.49323986,\
++	-6.27321203, -0.00039956, 0.00024478, 7.27281247, 0.99877946, 0.99935566, 0.49323995,\
++	-6.27321215, -0.00039951, 0.00024475, 7.27281264, 0.99877962, 0.99935574, 0.49323997,\
++	-6.27321228, -0.00039946, 0.00024472, 7.27281282, 0.99877978, 0.99935583, 0.49323996,\
++	-6.27321240, -0.00039941, 0.00024468, 7.27281299, 0.99877994, 0.99935591, 0.49323998,\
++	-6.27321252, -0.00039935, 0.00024465, 7.27281317, 0.99878009, 0.99935599, 0.49323996,\
++	-6.27321265, -0.00039930, 0.00024462, 7.27281334, 0.99878025, 0.99935608, 0.49324002,\
++	-6.27321277, -0.00039925, 0.00024459, 7.27281352, 0.99878041, 0.99935616, 0.49323998,\
++	-6.27321289, -0.00039920, 0.00024456, 7.27281369, 0.99878057, 0.99935624, 0.49324001,\
++	-6.27321302, -0.00039915, 0.00024453, 7.27281387, 0.99878072, 0.99935632, 0.49324014,\
++	-6.27321314, -0.00039910, 0.00024450, 7.27281404, 0.99878088, 0.99935641, 0.49324019,\
++	-6.27321326, -0.00039905, 0.00024446, 7.27281422, 0.99878104, 0.99935649, 0.49324012,\
++	-6.27321338, -0.00039899, 0.00024443, 7.27281439, 0.99878120, 0.99935657, 0.49324003,\
++	-6.27321351, -0.00039894, 0.00024440, 7.27281457, 0.99878135, 0.99935666, 0.49324013,\
++	-6.27321363, -0.00039889, 0.00024437, 7.27281474, 0.99878151, 0.99935674, 0.49324013,\
++	-6.27321375, -0.00039884, 0.00024434, 7.27281491, 0.99878167, 0.99935682, 0.49324017,\
++	-6.27321388, -0.00039879, 0.00024431, 7.27281509, 0.99878182, 0.99935690, 0.49324022,\
++	-6.27321400, -0.00039874, 0.00024427, 7.27281526, 0.99878198, 0.99935699, 0.49324015,\
++	-6.27321412, -0.00039869, 0.00024424, 7.27281544, 0.99878214, 0.99935707, 0.49324036,\
++	-6.27321425, -0.00039863, 0.00024421, 7.27281561, 0.99878229, 0.99935715, 0.49324026,\
++	-6.27321437, -0.00039858, 0.00024418, 7.27281579, 0.99878245, 0.99935724, 0.49324022,\
++	-6.27321449, -0.00039853, 0.00024415, 7.27281596, 0.99878261, 0.99935732, 0.49324031,\
++	-6.27321461, -0.00039848, 0.00024412, 7.27281613, 0.99878277, 0.99935740, 0.49324028,\
++	-6.27321474, -0.00039843, 0.00024409, 7.27281631, 0.99878292, 0.99935748, 0.49324030,\
++	-6.27321486, -0.00039838, 0.00024405, 7.27281648, 0.99878308, 0.99935757, 0.49324023,\
++	-6.27321498, -0.00039833, 0.00024402, 7.27281666, 0.99878324, 0.99935765, 0.49324037,\
++	-6.27321511, -0.00039828, 0.00024399, 7.27281683, 0.99878339, 0.99935773, 0.49324036,\
++	-6.27321523, -0.00039822, 0.00024396, 7.27281700, 0.99878355, 0.99935782, 0.49324044,\
++	-6.27321535, -0.00039817, 0.00024393, 7.27281718, 0.99878370, 0.99935790, 0.49324039,\
++	-6.27321547, -0.00039812, 0.00024390, 7.27281735, 0.99878386, 0.99935798, 0.49324042,\
++	-6.27321560, -0.00039807, 0.00024387, 7.27281752, 0.99878402, 0.99935806, 0.49324055,\
++	-6.27321572, -0.00039802, 0.00024383, 7.27281770, 0.99878417, 0.99935815, 0.49324042,\
++	-6.27321584, -0.00039797, 0.00024380, 7.27281787, 0.99878433, 0.99935823, 0.49324044,\
++	-6.27321596, -0.00039792, 0.00024377, 7.27281805, 0.99878449, 0.99935831, 0.49324041,\
++	-6.27321609, -0.00039787, 0.00024374, 7.27281822, 0.99878464, 0.99935839, 0.49324060,\
++	-6.27321621, -0.00039781, 0.00024371, 7.27281839, 0.99878480, 0.99935848, 0.49324044,\
++	-6.27321633, -0.00039776, 0.00024368, 7.27281857, 0.99878496, 0.99935856, 0.49324054,\
++	-6.27321645, -0.00039771, 0.00024365, 7.27281874, 0.99878511, 0.99935864, 0.49324046,\
++	-6.27321658, -0.00039766, 0.00024362, 7.27281891, 0.99878527, 0.99935872, 0.49324052,\
++	-6.27321670, -0.00039761, 0.00024358, 7.27281909, 0.99878542, 0.99935881, 0.49324063,\
++	-6.27321682, -0.00039756, 0.00024355, 7.27281926, 0.99878558, 0.99935889, 0.49324081,\
++	-6.27321694, -0.00039751, 0.00024352, 7.27281943, 0.99878574, 0.99935897, 0.49324067,\
++	-6.27321706, -0.00039746, 0.00024349, 7.27281961, 0.99878589, 0.99935905, 0.49324080,\
++	-6.27321719, -0.00039741, 0.00024346, 7.27281978, 0.99878605, 0.99935913, 0.49324070,\
++	-6.27321731, -0.00039736, 0.00024343, 7.27281995, 0.99878620, 0.99935922, 0.49324061,\
++	-6.27321743, -0.00039730, 0.00024340, 7.27282013, 0.99878636, 0.99935930, 0.49324072,\
++	-6.27321755, -0.00039725, 0.00024337, 7.27282030, 0.99878652, 0.99935938, 0.49324071,\
++	-6.27321767, -0.00039720, 0.00024333, 7.27282047, 0.99878667, 0.99935946, 0.49324076,\
++	-6.27321780, -0.00039715, 0.00024330, 7.27282064, 0.99878683, 0.99935955, 0.49324084,\
++	-6.27321792, -0.00039710, 0.00024327, 7.27282082, 0.99878698, 0.99935963, 0.49324086,\
++	-6.27321804, -0.00039705, 0.00024324, 7.27282099, 0.99878714, 0.99935971, 0.49324068,\
++	-6.27321816, -0.00039700, 0.00024321, 7.27282116, 0.99878729, 0.99935979, 0.49324078,\
++	-6.27321828, -0.00039695, 0.00024318, 7.27282134, 0.99878745, 0.99935987, 0.49324088,\
++	-6.27321841, -0.00039690, 0.00024315, 7.27282151, 0.99878760, 0.99935996, 0.49324077,\
++	-6.27321853, -0.00039685, 0.00024312, 7.27282168, 0.99878776, 0.99936004, 0.49324091,\
++	-6.27321865, -0.00039680, 0.00024308, 7.27282185, 0.99878792, 0.99936012, 0.49324089,\
++	-6.27321877, -0.00039674, 0.00024305, 7.27282203, 0.99878807, 0.99936020, 0.49324098,\
++	-6.27321889, -0.00039669, 0.00024302, 7.27282220, 0.99878823, 0.99936028, 0.49324089,\
++	-6.27321901, -0.00039664, 0.00024299, 7.27282237, 0.99878838, 0.99936037, 0.49324096,\
++	-6.27321914, -0.00039659, 0.00024296, 7.27282254, 0.99878854, 0.99936045, 0.49324110,\
++	-6.27321926, -0.00039654, 0.00024293, 7.27282272, 0.99878869, 0.99936053, 0.49324104,\
++	-6.27321938, -0.00039649, 0.00024290, 7.27282289, 0.99878885, 0.99936061, 0.49324115,\
++	-6.27321950, -0.00039644, 0.00024287, 7.27282306, 0.99878900, 0.99936069, 0.49324105,\
++	-6.27321962, -0.00039639, 0.00024284, 7.27282323, 0.99878916, 0.99936078, 0.49324108,\
++	-6.27321974, -0.00039634, 0.00024280, 7.27282341, 0.99878931, 0.99936086, 0.49324101,\
++	-6.27321987, -0.00039629, 0.00024277, 7.27282358, 0.99878947, 0.99936094, 0.49324102,\
++	-6.27321999, -0.00039624, 0.00024274, 7.27282375, 0.99878962, 0.99936102, 0.49324113,\
++	-6.27322011, -0.00039619, 0.00024271, 7.27282392, 0.99878978, 0.99936110, 0.49324108,\
++	-6.27322023, -0.00039613, 0.00024268, 7.27282409, 0.99878993, 0.99936119, 0.49324117,\
++	-6.27322035, -0.00039608, 0.00024265, 7.27282427, 0.99879009, 0.99936127, 0.49324125,\
++	-6.27322047, -0.00039603, 0.00024262, 7.27282444, 0.99879024, 0.99936135, 0.49324106,\
++	-6.27322059, -0.00039598, 0.00024259, 7.27282461, 0.99879040, 0.99936143, 0.49324119,\
++	-6.27322071, -0.00039593, 0.00024256, 7.27282478, 0.99879055, 0.99936151, 0.49324110,\
++	-6.27322084, -0.00039588, 0.00024252, 7.27282495, 0.99879071, 0.99936159, 0.49324126,\
++	-6.27322096, -0.00039583, 0.00024249, 7.27282513, 0.99879086, 0.99936168, 0.49324122,\
++	-6.27322108, -0.00039578, 0.00024246, 7.27282530, 0.99879102, 0.99936176, 0.49324129,\
++	-6.27322120, -0.00039573, 0.00024243, 7.27282547, 0.99879117, 0.99936184, 0.49324129,\
++	-6.27322132, -0.00039568, 0.00024240, 7.27282564, 0.99879133, 0.99936192, 0.49324124,\
++	-6.27322144, -0.00039563, 0.00024237, 7.27282581, 0.99879148, 0.99936200, 0.49324135,\
++	-6.27322156, -0.00039558, 0.00024234, 7.27282598, 0.99879163, 0.99936208, 0.49324138,\
++	-6.27322168, -0.00039553, 0.00024231, 7.27282616, 0.99879179, 0.99936216, 0.49324133,\
++	-6.27322180, -0.00039548, 0.00024228, 7.27282633, 0.99879194, 0.99936225, 0.49324140,\
++	-6.27322193, -0.00039543, 0.00024225, 7.27282650, 0.99879210, 0.99936233, 0.49324130,\
++	-6.27322205, -0.00039538, 0.00024221, 7.27282667, 0.99879225, 0.99936241, 0.49324149,\
++	-6.27322217, -0.00039533, 0.00024218, 7.27282684, 0.99879241, 0.99936249, 0.49324143,\
++	-6.27322229, -0.00039528, 0.00024215, 7.27282701, 0.99879256, 0.99936257, 0.49324140,\
++	-6.27322241, -0.00039522, 0.00024212, 7.27282718, 0.99879271, 0.99936265, 0.49324158,\
++	-6.27322253, -0.00039517, 0.00024209, 7.27282736, 0.99879287, 0.99936273, 0.49324147,\
++	-6.27322265, -0.00039512, 0.00024206, 7.27282753, 0.99879302, 0.99936282, 0.49324156,\
++	-6.27322277, -0.00039507, 0.00024203, 7.27282770, 0.99879318, 0.99936290, 0.49324153,\
++	-6.27322289, -0.00039502, 0.00024200, 7.27282787, 0.99879333, 0.99936298, 0.49324143,\
++	-6.27322301, -0.00039497, 0.00024197, 7.27282804, 0.99879349, 0.99936306, 0.49324134,\
++	-6.27322313, -0.00039492, 0.00024194, 7.27282821, 0.99879364, 0.99936314, 0.49324161,\
++	-6.27322325, -0.00039487, 0.00024191, 7.27282838, 0.99879379, 0.99936322, 0.49324161,\
++	-6.27322337, -0.00039482, 0.00024187, 7.27282855, 0.99879395, 0.99936330, 0.49324164,\
++	-6.27322349, -0.00039477, 0.00024184, 7.27282872, 0.99879410, 0.99936339, 0.49324176,\
++	-6.27322362, -0.00039472, 0.00024181, 7.27282889, 0.99879425, 0.99936347, 0.49324160,\
++	-6.27322374, -0.00039467, 0.00024178, 7.27282907, 0.99879441, 0.99936355, 0.49324157,\
++	-6.27322386, -0.00039462, 0.00024175, 7.27282924, 0.99879456, 0.99936363, 0.49324158,\
++	-6.27322398, -0.00039457, 0.00024172, 7.27282941, 0.99879472, 0.99936371, 0.49324166,\
++	-6.27322410, -0.00039452, 0.00024169, 7.27282958, 0.99879487, 0.99936379, 0.49324172,\
++	-6.27322422, -0.00039447, 0.00024166, 7.27282975, 0.99879502, 0.99936387, 0.49324177,\
++	-6.27322434, -0.00039442, 0.00024163, 7.27282992, 0.99879518, 0.99936395, 0.49324175,\
++	-6.27322446, -0.00039437, 0.00024160, 7.27283009, 0.99879533, 0.99936403, 0.49324173,\
++	-6.27322458, -0.00039432, 0.00024157, 7.27283026, 0.99879548, 0.99936412, 0.49324183,\
++	-6.27322470, -0.00039427, 0.00024154, 7.27283043, 0.99879564, 0.99936420, 0.49324189,\
++	-6.27322482, -0.00039422, 0.00024150, 7.27283060, 0.99879579, 0.99936428, 0.49324183,\
++	-6.27322494, -0.00039417, 0.00024147, 7.27283077, 0.99879594, 0.99936436, 0.49324176,\
++	-6.27322506, -0.00039412, 0.00024144, 7.27283094, 0.99879610, 0.99936444, 0.49324183,\
++	-6.27322518, -0.00039407, 0.00024141, 7.27283111, 0.99879625, 0.99936452, 0.49324186,\
++	-6.27322530, -0.00039402, 0.00024138, 7.27283128, 0.99879640, 0.99936460, 0.49324198,\
++	-6.27322542, -0.00039397, 0.00024135, 7.27283145, 0.99879656, 0.99936468, 0.49324210,\
++	-6.27322554, -0.00039392, 0.00024132, 7.27283162, 0.99879671, 0.99936476, 0.49324198,\
++	-6.27322566, -0.00039387, 0.00024129, 7.27283179, 0.99879686, 0.99936484, 0.49324205,\
++	-6.27322578, -0.00039382, 0.00024126, 7.27283196, 0.99879702, 0.99936492, 0.49324207,\
++	-6.27322590, -0.00039377, 0.00024123, 7.27283213, 0.99879717, 0.99936501, 0.49324191,\
++	-6.27322602, -0.00039372, 0.00024120, 7.27283230, 0.99879732, 0.99936509, 0.49324201,\
++	-6.27322614, -0.00039367, 0.00024117, 7.27283247, 0.99879748, 0.99936517, 0.49324194,\
++	-6.27322626, -0.00039362, 0.00024114, 7.27283264, 0.99879763, 0.99936525, 0.49324211,\
++	-6.27322638, -0.00039357, 0.00024111, 7.27283281, 0.99879778, 0.99936533, 0.49324210,\
++	-6.27322650, -0.00039352, 0.00024107, 7.27283298, 0.99879793, 0.99936541, 0.49324195,\
++	-6.27322662, -0.00039347, 0.00024104, 7.27283315, 0.99879809, 0.99936549, 0.49324205,\
++	-6.27322674, -0.00039342, 0.00024101, 7.27283332, 0.99879824, 0.99936557, 0.49324210,\
++	-6.27322686, -0.00039337, 0.00024098, 7.27283349, 0.99879839, 0.99936565, 0.49324214,\
++	-6.27322698, -0.00039332, 0.00024095, 7.27283366, 0.99879855, 0.99936573, 0.49324202,\
++	-6.27322710, -0.00039327, 0.00024092, 7.27283383, 0.99879870, 0.99936581, 0.49324209,\
++	-6.27322722, -0.00039322, 0.00024089, 7.27283400, 0.99879885, 0.99936589, 0.49324208,\
++	-6.27322734, -0.00039317, 0.00024086, 7.27283417, 0.99879900, 0.99936597, 0.49324207,\
++	-6.27322746, -0.00039312, 0.00024083, 7.27283434, 0.99879916, 0.99936605, 0.49324215,\
++	-6.27322757, -0.00039307, 0.00024080, 7.27283451, 0.99879931, 0.99936613, 0.49324220,\
++	-6.27322769, -0.00039302, 0.00024077, 7.27283468, 0.99879946, 0.99936621, 0.49324229,\
++	-6.27322781, -0.00039297, 0.00024074, 7.27283485, 0.99879961, 0.99936630, 0.49324226,\
++	-6.27322793, -0.00039292, 0.00024071, 7.27283502, 0.99879977, 0.99936638, 0.49324230,\
++	-6.27322805, -0.00039287, 0.00024068, 7.27283519, 0.99879992, 0.99936646, 0.49324236,\
++	-6.27322817, -0.00039282, 0.00024065, 7.27283535, 0.99880007, 0.99936654, 0.49324229,\
++	-6.27322829, -0.00039277, 0.00024062, 7.27283552, 0.99880022, 0.99936662, 0.49324245,\
++	-6.27322841, -0.00039272, 0.00024059, 7.27283569, 0.99880038, 0.99936670, 0.49324230,\
++	-6.27322853, -0.00039267, 0.00024055, 7.27283586, 0.99880053, 0.99936678, 0.49324241,\
++	-6.27322865, -0.00039262, 0.00024052, 7.27283603, 0.99880068, 0.99936686, 0.49324234,\
++	-6.27322877, -0.00039257, 0.00024049, 7.27283620, 0.99880083, 0.99936694, 0.49324231,\
++	-6.27322889, -0.00039252, 0.00024046, 7.27283637, 0.99880098, 0.99936702, 0.49324244,\
++	-6.27322901, -0.00039247, 0.00024043, 7.27283654, 0.99880114, 0.99936710, 0.49324243,\
++	-6.27322913, -0.00039242, 0.00024040, 7.27283671, 0.99880129, 0.99936718, 0.49324251,\
++	-6.27322924, -0.00039237, 0.00024037, 7.27283688, 0.99880144, 0.99936726, 0.49324242,\
++	-6.27322936, -0.00039232, 0.00024034, 7.27283704, 0.99880159, 0.99936734, 0.49324245,\
++	-6.27322948, -0.00039227, 0.00024031, 7.27283721, 0.99880174, 0.99936742, 0.49324248,\
++	-6.27322960, -0.00039222, 0.00024028, 7.27283738, 0.99880190, 0.99936750, 0.49324240,\
++	-6.27322972, -0.00039217, 0.00024025, 7.27283755, 0.99880205, 0.99936758, 0.49324256,\
++	-6.27322984, -0.00039212, 0.00024022, 7.27283772, 0.99880220, 0.99936766, 0.49324270,\
++	-6.27322996, -0.00039207, 0.00024019, 7.27283789, 0.99880235, 0.99936774, 0.49324265,\
++	-6.27323008, -0.00039202, 0.00024016, 7.27283806, 0.99880250, 0.99936782, 0.49324254,\
++	-6.27323020, -0.00039197, 0.00024013, 7.27283822, 0.99880265, 0.99936790, 0.49324268,\
++	-6.27323032, -0.00039192, 0.00024010, 7.27283839, 0.99880281, 0.99936798, 0.49324263,\
++	-6.27323043, -0.00039187, 0.00024007, 7.27283856, 0.99880296, 0.99936806, 0.49324257,\
++	-6.27323055, -0.00039182, 0.00024004, 7.27283873, 0.99880311, 0.99936814, 0.49324271,\
++	-6.27323067, -0.00039177, 0.00024001, 7.27283890, 0.99880326, 0.99936822, 0.49324263,\
++	-6.27323079, -0.00039172, 0.00023998, 7.27283907, 0.99880341, 0.99936830, 0.49324259,\
++	-6.27323091, -0.00039167, 0.00023995, 7.27283923, 0.99880356, 0.99936838, 0.49324272,\
++	-6.27323103, -0.00039162, 0.00023992, 7.27283940, 0.99880372, 0.99936846, 0.49324266,\
++	-6.27323115, -0.00039158, 0.00023989, 7.27283957, 0.99880387, 0.99936854, 0.49324277,\
++	-6.27323126, -0.00039153, 0.00023985, 7.27283974, 0.99880402, 0.99936862, 0.49324283,\
++	-6.27323138, -0.00039148, 0.00023982, 7.27283991, 0.99880417, 0.99936870, 0.49324288,\
++	-6.27323150, -0.00039143, 0.00023979, 7.27284008, 0.99880432, 0.99936878, 0.49324274,\
++	-6.27323162, -0.00039138, 0.00023976, 7.27284024, 0.99880447, 0.99936886, 0.49324289,\
++	-6.27323174, -0.00039133, 0.00023973, 7.27284041, 0.99880462, 0.99936894, 0.49324287,\
++	-6.27323186, -0.00039128, 0.00023970, 7.27284058, 0.99880477, 0.99936902, 0.49324285,\
++	-6.27323198, -0.00039123, 0.00023967, 7.27284075, 0.99880493, 0.99936910, 0.49324283,\
++	-6.27323209, -0.00039118, 0.00023964, 7.27284091, 0.99880508, 0.99936918, 0.49324290,\
++	-6.27323221, -0.00039113, 0.00023961, 7.27284108, 0.99880523, 0.99936926, 0.49324280,\
++	-6.27323233, -0.00039108, 0.00023958, 7.27284125, 0.99880538, 0.99936934, 0.49324296,\
++	-6.27323245, -0.00039103, 0.00023955, 7.27284142, 0.99880553, 0.99936942, 0.49324284,\
++	-6.27323257, -0.00039098, 0.00023952, 7.27284159, 0.99880568, 0.99936950, 0.49324285,\
++	-6.27323268, -0.00039093, 0.00023949, 7.27284175, 0.99880583, 0.99936958, 0.49324302,\
++	-6.27323280, -0.00039088, 0.00023946, 7.27284192, 0.99880598, 0.99936966, 0.49324295,\
++	-6.27323292, -0.00039083, 0.00023943, 7.27284209, 0.99880613, 0.99936974, 0.49324320,\
++	-6.27323304, -0.00039078, 0.00023940, 7.27284226, 0.99880628, 0.99936982, 0.49324315,\
++	-6.27323316, -0.00039073, 0.00023937, 7.27284242, 0.99880643, 0.99936990, 0.49324296,\
++	-6.27323328, -0.00039069, 0.00023934, 7.27284259, 0.99880658, 0.99936997, 0.49324298,\
++	-6.27323339, -0.00039064, 0.00023931, 7.27284276, 0.99880674, 0.99937005, 0.49324310,\
++	-6.27323351, -0.00039059, 0.00023928, 7.27284292, 0.99880689, 0.99937013, 0.49324316,\
++	-6.27323363, -0.00039054, 0.00023925, 7.27284309, 0.99880704, 0.99937021, 0.49324305,\
++	-6.27323375, -0.00039049, 0.00023922, 7.27284326, 0.99880719, 0.99937029, 0.49324317,\
++	-6.27323387, -0.00039044, 0.00023919, 7.27284343, 0.99880734, 0.99937037, 0.49324316,\
++	-6.27323398, -0.00039039, 0.00023916, 7.27284359, 0.99880749, 0.99937045, 0.49324322,\
++	-6.27323410, -0.00039034, 0.00023913, 7.27284376, 0.99880764, 0.99937053, 0.49324310,\
++	-6.27323422, -0.00039029, 0.00023910, 7.27284393, 0.99880779, 0.99937061, 0.49324325,\
++	-6.27323434, -0.00039024, 0.00023907, 7.27284409, 0.99880794, 0.99937069, 0.49324319,\
++	-6.27323445, -0.00039019, 0.00023904, 7.27284426, 0.99880809, 0.99937077, 0.49324326,\
++	-6.27323457, -0.00039014, 0.00023901, 7.27284443, 0.99880824, 0.99937085, 0.49324329,\
++	-6.27323469, -0.00039009, 0.00023898, 7.27284460, 0.99880839, 0.99937093, 0.49324333,\
++	-6.27323481, -0.00039005, 0.00023895, 7.27284476, 0.99880854, 0.99937101, 0.49324318,\
++	-6.27323493, -0.00039000, 0.00023892, 7.27284493, 0.99880869, 0.99937109, 0.49324318,\
++	-6.27323504, -0.00038995, 0.00023889, 7.27284510, 0.99880884, 0.99937117, 0.49324337,\
++	-6.27323516, -0.00038990, 0.00023886, 7.27284526, 0.99880899, 0.99937124, 0.49324337,\
++	-6.27323528, -0.00038985, 0.00023883, 7.27284543, 0.99880914, 0.99937132, 0.49324350,\
++	-6.27323540, -0.00038980, 0.00023880, 7.27284560, 0.99880929, 0.99937140, 0.49324334,\
++	-6.27323551, -0.00038975, 0.00023877, 7.27284576, 0.99880944, 0.99937148, 0.49324341,\
++	-6.27323563, -0.00038970, 0.00023874, 7.27284593, 0.99880959, 0.99937156, 0.49324338,\
++	-6.27323575, -0.00038965, 0.00023871, 7.27284609, 0.99880974, 0.99937164, 0.49324344,\
++	-6.27323587, -0.00038960, 0.00023868, 7.27284626, 0.99880989, 0.99937172, 0.49324362,\
++	-6.27323598, -0.00038955, 0.00023865, 7.27284643, 0.99881004, 0.99937180, 0.49324347,\
++	-6.27323610, -0.00038951, 0.00023862, 7.27284659, 0.99881019, 0.99937188, 0.49324345,\
++	-6.27323622, -0.00038946, 0.00023859, 7.27284676, 0.99881034, 0.99937196, 0.49324353,\
++	-6.27323633, -0.00038941, 0.00023856, 7.27284693, 0.99881049, 0.99937204, 0.49324361,\
++	-6.27323645, -0.00038936, 0.00023853, 7.27284709, 0.99881064, 0.99937211, 0.49324364,\
++	-6.27323657, -0.00038931, 0.00023850, 7.27284726, 0.99881079, 0.99937219, 0.49324360,\
++	-6.27323669, -0.00038926, 0.00023847, 7.27284743, 0.99881094, 0.99937227, 0.49324354,\
++	-6.27323680, -0.00038921, 0.00023844, 7.27284759, 0.99881109, 0.99937235, 0.49324359,\
++	-6.27323692, -0.00038916, 0.00023841, 7.27284776, 0.99881124, 0.99937243, 0.49324355,\
++	-6.27323704, -0.00038911, 0.00023838, 7.27284792, 0.99881139, 0.99937251, 0.49324369,\
++	-6.27323715, -0.00038907, 0.00023835, 7.27284809, 0.99881154, 0.99937259, 0.49324366,\
++	-6.27323727, -0.00038902, 0.00023832, 7.27284826, 0.99881169, 0.99937267, 0.49324363,\
++	-6.27323739, -0.00038897, 0.00023829, 7.27284842, 0.99881184, 0.99937275, 0.49324368,\
++	-6.27323751, -0.00038892, 0.00023826, 7.27284859, 0.99881198, 0.99937282, 0.49324385,\
++	-6.27323762, -0.00038887, 0.00023823, 7.27284875, 0.99881213, 0.99937290, 0.49324375,\
++	-6.27323774, -0.00038882, 0.00023820, 7.27284892, 0.99881228, 0.99937298, 0.49324381,\
++	-6.27323786, -0.00038877, 0.00023817, 7.27284908, 0.99881243, 0.99937306, 0.49324383,\
++	-6.27323797, -0.00038872, 0.00023814, 7.27284925, 0.99881258, 0.99937314, 0.49324389,\
++	-6.27323809, -0.00038867, 0.00023811, 7.27284942, 0.99881273, 0.99937322, 0.49324387,\
++	-6.27323821, -0.00038863, 0.00023808, 7.27284958, 0.99881288, 0.99937330, 0.49324385,\
++	-6.27323832, -0.00038858, 0.00023805, 7.27284975, 0.99881303, 0.99937338, 0.49324378,\
++	-6.27323844, -0.00038853, 0.00023802, 7.27284991, 0.99881318, 0.99937345, 0.49324377,\
++	-6.27323856, -0.00038848, 0.00023799, 7.27285008, 0.99881333, 0.99937353, 0.49324388,\
++	-6.27323867, -0.00038843, 0.00023796, 7.27285024, 0.99881348, 0.99937361, 0.49324392,\
++	-6.27323879, -0.00038838, 0.00023793, 7.27285041, 0.99881362, 0.99937369, 0.49324396,\
++	-6.27323891, -0.00038833, 0.00023790, 7.27285057, 0.99881377, 0.99937377, 0.49324387,\
++	-6.27323902, -0.00038828, 0.00023787, 7.27285074, 0.99881392, 0.99937385, 0.49324395,\
++	-6.27323914, -0.00038824, 0.00023784, 7.27285090, 0.99881407, 0.99937393, 0.49324401,\
++	-6.27323926, -0.00038819, 0.00023781, 7.27285107, 0.99881422, 0.99937400, 0.49324397,\
++	-6.27323937, -0.00038814, 0.00023778, 7.27285124, 0.99881437, 0.99937408, 0.49324409,\
++	-6.27323949, -0.00038809, 0.00023775, 7.27285140, 0.99881452, 0.99937416, 0.49324390,\
++	-6.27323961, -0.00038804, 0.00023772, 7.27285157, 0.99881467, 0.99937424, 0.49324412,\
++	-6.27323972, -0.00038799, 0.00023769, 7.27285173, 0.99881481, 0.99937432, 0.49324405,\
++	-6.27323984, -0.00038794, 0.00023766, 7.27285190, 0.99881496, 0.99937440, 0.49324413,\
++	-6.27323996, -0.00038789, 0.00023763, 7.27285206, 0.99881511, 0.99937448, 0.49324398,\
++	-6.27324007, -0.00038785, 0.00023760, 7.27285223, 0.99881526, 0.99937455, 0.49324408,\
++	-6.27324019, -0.00038780, 0.00023757, 7.27285239, 0.99881541, 0.99937463, 0.49324411,\
++	-6.27324030, -0.00038775, 0.00023754, 7.27285256, 0.99881556, 0.99937471, 0.49324404,\
++	-6.27324042, -0.00038770, 0.00023751, 7.27285272, 0.99881571, 0.99937479, 0.49324417,\
++	-6.27324054, -0.00038765, 0.00023748, 7.27285289, 0.99881585, 0.99937487, 0.49324417,\
++	-6.27324065, -0.00038760, 0.00023745, 7.27285305, 0.99881600, 0.99937495, 0.49324417,\
++	-6.27324077, -0.00038755, 0.00023742, 7.27285321, 0.99881615, 0.99937502, 0.49324410,\
++	-6.27324089, -0.00038751, 0.00023739, 7.27285338, 0.99881630, 0.99937510, 0.49324415,\
++	-6.27324100, -0.00038746, 0.00023736, 7.27285354, 0.99881645, 0.99937518, 0.49324415,\
++	-6.27324112, -0.00038741, 0.00023733, 7.27285371, 0.99881660, 0.99937526, 0.49324428,\
++	-6.27324123, -0.00038736, 0.00023730, 7.27285387, 0.99881674, 0.99937534, 0.49324427,\
++	-6.27324135, -0.00038731, 0.00023727, 7.27285404, 0.99881689, 0.99937541, 0.49324429,\
++	-6.27324147, -0.00038726, 0.00023724, 7.27285420, 0.99881704, 0.99937549, 0.49324429,\
++	-6.27324158, -0.00038722, 0.00023721, 7.27285437, 0.99881719, 0.99937557, 0.49324431,\
++	-6.27324170, -0.00038717, 0.00023718, 7.27285453, 0.99881734, 0.99937565, 0.49324418,\
++	-6.27324181, -0.00038712, 0.00023715, 7.27285469, 0.99881748, 0.99937573, 0.49324436,\
++	-6.27324193, -0.00038707, 0.00023712, 7.27285486, 0.99881763, 0.99937581, 0.49324427,\
++	-6.27324205, -0.00038702, 0.00023709, 7.27285502, 0.99881778, 0.99937588, 0.49324438,\
++	-6.27324216, -0.00038697, 0.00023706, 7.27285519, 0.99881793, 0.99937596, 0.49324441,\
++	-6.27324228, -0.00038693, 0.00023704, 7.27285535, 0.99881807, 0.99937604, 0.49324425,\
++	-6.27324239, -0.00038688, 0.00023701, 7.27285552, 0.99881822, 0.99937612, 0.49324444,\
++	-6.27324251, -0.00038683, 0.00023698, 7.27285568, 0.99881837, 0.99937620, 0.49324437,\
++	-6.27324262, -0.00038678, 0.00023695, 7.27285584, 0.99881852, 0.99937627, 0.49324451,\
++	-6.27324274, -0.00038673, 0.00023692, 7.27285601, 0.99881867, 0.99937635, 0.49324443,\
++	-6.27324286, -0.00038668, 0.00023689, 7.27285617, 0.99881881, 0.99937643, 0.49324463,\
++	-6.27324297, -0.00038664, 0.00023686, 7.27285634, 0.99881896, 0.99937651, 0.49324464,\
++	-6.27324309, -0.00038659, 0.00023683, 7.27285650, 0.99881911, 0.99937659, 0.49324460,\
++	-6.27324320, -0.00038654, 0.00023680, 7.27285666, 0.99881926, 0.99937666, 0.49324474,\
++	-6.27324332, -0.00038649, 0.00023677, 7.27285683, 0.99881940, 0.99937674, 0.49324457,\
++	-6.27324343, -0.00038644, 0.00023674, 7.27285699, 0.99881955, 0.99937682, 0.49324464,\
++	-6.27324355, -0.00038639, 0.00023671, 7.27285716, 0.99881970, 0.99937690, 0.49324452,\
++	-6.27324366, -0.00038635, 0.00023668, 7.27285732, 0.99881985, 0.99937697, 0.49324451,\
++	-6.27324378, -0.00038630, 0.00023665, 7.27285748, 0.99881999, 0.99937705, 0.49324463,\
++	-6.27324390, -0.00038625, 0.00023662, 7.27285765, 0.99882014, 0.99937713, 0.49324460,\
++	-6.27324401, -0.00038620, 0.00023659, 7.27285781, 0.99882029, 0.99937721, 0.49324461,\
++	-6.27324413, -0.00038615, 0.00023656, 7.27285797, 0.99882043, 0.99937729, 0.49324473,\
++	-6.27324424, -0.00038610, 0.00023653, 7.27285814, 0.99882058, 0.99937736, 0.49324474,\
++	-6.27324436, -0.00038606, 0.00023650, 7.27285830, 0.99882073, 0.99937744, 0.49324465,\
++	-6.27324447, -0.00038601, 0.00023647, 7.27285846, 0.99882088, 0.99937752, 0.49324475,\
++	-6.27324459, -0.00038596, 0.00023644, 7.27285863, 0.99882102, 0.99937760, 0.49324482,\
++	-6.27324470, -0.00038591, 0.00023641, 7.27285879, 0.99882117, 0.99937767, 0.49324468,\
++	-6.27324482, -0.00038586, 0.00023638, 7.27285895, 0.99882132, 0.99937775, 0.49324472,\
++	-6.27324493, -0.00038582, 0.00023636, 7.27285912, 0.99882146, 0.99937783, 0.49324478,\
++	-6.27324505, -0.00038577, 0.00023633, 7.27285928, 0.99882161, 0.99937791, 0.49324486,\
++	-6.27324516, -0.00038572, 0.00023630, 7.27285944, 0.99882176, 0.99937798, 0.49324500,\
++	-6.27324528, -0.00038567, 0.00023627, 7.27285961, 0.99882190, 0.99937806, 0.49324482,\
++	-6.27324539, -0.00038562, 0.00023624, 7.27285977, 0.99882205, 0.99937814, 0.49324496,\
++	-6.27324551, -0.00038558, 0.00023621, 7.27285993, 0.99882220, 0.99937822, 0.49324495,\
++	-6.27324562, -0.00038553, 0.00023618, 7.27286009, 0.99882234, 0.99937829, 0.49324492,\
++	-6.27324574, -0.00038548, 0.00023615, 7.27286026, 0.99882249, 0.99937837, 0.49324476,\
++	-6.27324585, -0.00038543, 0.00023612, 7.27286042, 0.99882264, 0.99937845, 0.49324499,\
++	-6.27324597, -0.00038538, 0.00023609, 7.27286058, 0.99882278, 0.99937853, 0.49324495,\
++	-6.27324608, -0.00038534, 0.00023606, 7.27286075, 0.99882293, 0.99937860, 0.49324497,\
++	-6.27324620, -0.00038529, 0.00023603, 7.27286091, 0.99882308, 0.99937868, 0.49324499,\
++	-6.27324631, -0.00038524, 0.00023600, 7.27286107, 0.99882322, 0.99937876, 0.49324496,\
++	-6.27324643, -0.00038519, 0.00023597, 7.27286123, 0.99882337, 0.99937884, 0.49324507,\
++	-6.27324654, -0.00038514, 0.00023594, 7.27286140, 0.99882352, 0.99937891, 0.49324506,\
++	-6.27324666, -0.00038510, 0.00023591, 7.27286156, 0.99882366, 0.99937899, 0.49324519,\
++	-6.27324677, -0.00038505, 0.00023588, 7.27286172, 0.99882381, 0.99937907, 0.49324510,\
++	-6.27324689, -0.00038500, 0.00023586, 7.27286188, 0.99882396, 0.99937914, 0.49324509,\
++	-6.27324700, -0.00038495, 0.00023583, 7.27286205, 0.99882410, 0.99937922, 0.49324510,\
++	-6.27324711, -0.00038490, 0.00023580, 7.27286221, 0.99882425, 0.99937930, 0.49324517,\
++	-6.27324723, -0.00038486, 0.00023577, 7.27286237, 0.99882440, 0.99937938, 0.49324527,\
++	-6.27324734, -0.00038481, 0.00023574, 7.27286253, 0.99882454, 0.99937945, 0.49324519,\
++	-6.27324746, -0.00038476, 0.00023571, 7.27286270, 0.99882469, 0.99937953, 0.49324516,\
++	-6.27324757, -0.00038471, 0.00023568, 7.27286286, 0.99882483, 0.99937961, 0.49324513,\
++	-6.27324769, -0.00038467, 0.00023565, 7.27286302, 0.99882498, 0.99937968, 0.49324519,\
++	-6.27324780, -0.00038462, 0.00023562, 7.27286318, 0.99882513, 0.99937976, 0.49324509,\
++	-6.27324792, -0.00038457, 0.00023559, 7.27286335, 0.99882527, 0.99937984, 0.49324532,\
++	-6.27324803, -0.00038452, 0.00023556, 7.27286351, 0.99882542, 0.99937992, 0.49324518,\
++	-6.27324814, -0.00038447, 0.00023553, 7.27286367, 0.99882556, 0.99937999, 0.49324537,\
++	-6.27324826, -0.00038443, 0.00023550, 7.27286383, 0.99882571, 0.99938007, 0.49324536,\
++	-6.27324837, -0.00038438, 0.00023547, 7.27286399, 0.99882586, 0.99938015, 0.49324540,\
++	-6.27324849, -0.00038433, 0.00023545, 7.27286416, 0.99882600, 0.99938022, 0.49324531,\
++	-6.27324860, -0.00038428, 0.00023542, 7.27286432, 0.99882615, 0.99938030, 0.49324544,\
++	-6.27324872, -0.00038424, 0.00023539, 7.27286448, 0.99882629, 0.99938038, 0.49324534,\
++	-6.27324883, -0.00038419, 0.00023536, 7.27286464, 0.99882644, 0.99938045, 0.49324551,\
++	-6.27324894, -0.00038414, 0.00023533, 7.27286480, 0.99882658, 0.99938053, 0.49324541,\
++	-6.27324906, -0.00038409, 0.00023530, 7.27286497, 0.99882673, 0.99938061, 0.49324551,\
++	-6.27324917, -0.00038405, 0.00023527, 7.27286513, 0.99882688, 0.99938068, 0.49324541,\
++	-6.27324929, -0.00038400, 0.00023524, 7.27286529, 0.99882702, 0.99938076, 0.49324543,\
++	-6.27324940, -0.00038395, 0.00023521, 7.27286545, 0.99882717, 0.99938084, 0.49324548,\
++	-6.27324951, -0.00038390, 0.00023518, 7.27286561, 0.99882731, 0.99938092, 0.49324547,\
++	-6.27324963, -0.00038385, 0.00023515, 7.27286577, 0.99882746, 0.99938099, 0.49324552,\
++	-6.27324974, -0.00038381, 0.00023512, 7.27286594, 0.99882760, 0.99938107, 0.49324561,\
++	-6.27324986, -0.00038376, 0.00023509, 7.27286610, 0.99882775, 0.99938115, 0.49324575,\
++	-6.27324997, -0.00038371, 0.00023507, 7.27286626, 0.99882789, 0.99938122, 0.49324555,\
++	-6.27325008, -0.00038366, 0.00023504, 7.27286642, 0.99882804, 0.99938130, 0.49324561,\
++	-6.27325020, -0.00038362, 0.00023501, 7.27286658, 0.99882818, 0.99938138, 0.49324560,\
++	-6.27325031, -0.00038357, 0.00023498, 7.27286674, 0.99882833, 0.99938145, 0.49324567,\
++	-6.27325043, -0.00038352, 0.00023495, 7.27286690, 0.99882847, 0.99938153, 0.49324557,\
++	-6.27325054, -0.00038347, 0.00023492, 7.27286706, 0.99882862, 0.99938161, 0.49324572,\
++	-6.27325065, -0.00038343, 0.00023489, 7.27286723, 0.99882877, 0.99938168, 0.49324570,\
++	-6.27325077, -0.00038338, 0.00023486, 7.27286739, 0.99882891, 0.99938176, 0.49324576,\
++	-6.27325088, -0.00038333, 0.00023483, 7.27286755, 0.99882906, 0.99938184, 0.49324591,\
++	-6.27325099, -0.00038328, 0.00023480, 7.27286771, 0.99882920, 0.99938191, 0.49324569,\
++	-6.27325111, -0.00038324, 0.00023477, 7.27286787, 0.99882935, 0.99938199, 0.49324559,\
++	-6.27325122, -0.00038319, 0.00023475, 7.27286803, 0.99882949, 0.99938207, 0.49324564,\
++	-6.27325133, -0.00038314, 0.00023472, 7.27286819, 0.99882964, 0.99938214, 0.49324576,\
++	-6.27325145, -0.00038309, 0.00023469, 7.27286835, 0.99882978, 0.99938222, 0.49324581,\
++	-6.27325156, -0.00038305, 0.00023466, 7.27286851, 0.99882993, 0.99938229, 0.49324590,\
++	-6.27325168, -0.00038300, 0.00023463, 7.27286868, 0.99883007, 0.99938237, 0.49324573,\
++	-6.27325179, -0.00038295, 0.00023460, 7.27286884, 0.99883021, 0.99938245, 0.49324578,\
++	-6.27325190, -0.00038291, 0.00023457, 7.27286900, 0.99883036, 0.99938252, 0.49324585,\
++	-6.27325202, -0.00038286, 0.00023454, 7.27286916, 0.99883050, 0.99938260, 0.49324579,\
++	-6.27325213, -0.00038281, 0.00023451, 7.27286932, 0.99883065, 0.99938268, 0.49324589,\
++	-6.27325224, -0.00038276, 0.00023448, 7.27286948, 0.99883079, 0.99938275, 0.49324588,\
++	-6.27325236, -0.00038272, 0.00023446, 7.27286964, 0.99883094, 0.99938283, 0.49324586,\
++	-6.27325247, -0.00038267, 0.00023443, 7.27286980, 0.99883108, 0.99938291, 0.49324588,\
++	-6.27325258, -0.00038262, 0.00023440, 7.27286996, 0.99883123, 0.99938298, 0.49324600,\
++	-6.27325269, -0.00038257, 0.00023437, 7.27287012, 0.99883137, 0.99938306, 0.49324602,\
++	-6.27325281, -0.00038253, 0.00023434, 7.27287028, 0.99883152, 0.99938313, 0.49324593,\
++	-6.27325292, -0.00038248, 0.00023431, 7.27287044, 0.99883166, 0.99938321, 0.49324600,\
++	-6.27325303, -0.00038243, 0.00023428, 7.27287060, 0.99883180, 0.99938329, 0.49324594,\
++	-6.27325315, -0.00038238, 0.00023425, 7.27287076, 0.99883195, 0.99938336, 0.49324594,\
++	-6.27325326, -0.00038234, 0.00023422, 7.27287092, 0.99883209, 0.99938344, 0.49324616,\
++	-6.27325337, -0.00038229, 0.00023419, 7.27287108, 0.99883224, 0.99938352, 0.49324609,\
++	-6.27325349, -0.00038224, 0.00023417, 7.27287124, 0.99883238, 0.99938359, 0.49324615,\
++	-6.27325360, -0.00038220, 0.00023414, 7.27287140, 0.99883253, 0.99938367, 0.49324616,\
++	-6.27325371, -0.00038215, 0.00023411, 7.27287156, 0.99883267, 0.99938374, 0.49324616,\
++	-6.27325383, -0.00038210, 0.00023408, 7.27287172, 0.99883281, 0.99938382, 0.49324603,\
++	-6.27325394, -0.00038205, 0.00023405, 7.27287188, 0.99883296, 0.99938390, 0.49324614,\
++	-6.27325405, -0.00038201, 0.00023402, 7.27287204, 0.99883310, 0.99938397, 0.49324629,\
++	-6.27325416, -0.00038196, 0.00023399, 7.27287220, 0.99883325, 0.99938405, 0.49324628,\
++	-6.27325428, -0.00038191, 0.00023396, 7.27287236, 0.99883339, 0.99938412, 0.49324634,\
++	-6.27325439, -0.00038187, 0.00023393, 7.27287252, 0.99883353, 0.99938420, 0.49324618,\
++	-6.27325450, -0.00038182, 0.00023391, 7.27287268, 0.99883368, 0.99938428, 0.49324620,\
++	-6.27325462, -0.00038177, 0.00023388, 7.27287284, 0.99883382, 0.99938435, 0.49324621,\
++	-6.27325473, -0.00038172, 0.00023385, 7.27287300, 0.99883397, 0.99938443, 0.49324620,\
++	-6.27325484, -0.00038168, 0.00023382, 7.27287316, 0.99883411, 0.99938450, 0.49324631,\
++	-6.27325495, -0.00038163, 0.00023379, 7.27287332, 0.99883425, 0.99938458, 0.49324616,\
++	-6.27325507, -0.00038158, 0.00023376, 7.27287348, 0.99883440, 0.99938466, 0.49324629,\
++	-6.27325518, -0.00038154, 0.00023373, 7.27287364, 0.99883454, 0.99938473, 0.49324635,\
++	-6.27325529, -0.00038149, 0.00023370, 7.27287380, 0.99883469, 0.99938481, 0.49324648,\
++	-6.27325540, -0.00038144, 0.00023367, 7.27287396, 0.99883483, 0.99938488, 0.49324638,\
++	-6.27325552, -0.00038140, 0.00023365, 7.27287412, 0.99883497, 0.99938496, 0.49324637,\
++	-6.27325563, -0.00038135, 0.00023362, 7.27287428, 0.99883512, 0.99938503, 0.49324641,\
++	-6.27325574, -0.00038130, 0.00023359, 7.27287444, 0.99883526, 0.99938511, 0.49324645,\
++	-6.27325585, -0.00038125, 0.00023356, 7.27287460, 0.99883540, 0.99938519, 0.49324647,\
++	-6.27325597, -0.00038121, 0.00023353, 7.27287476, 0.99883555, 0.99938526, 0.49324642,\
++	-6.27325608, -0.00038116, 0.00023350, 7.27287492, 0.99883569, 0.99938534, 0.49324651,\
++	-6.27325619, -0.00038111, 0.00023347, 7.27287508, 0.99883583, 0.99938541, 0.49324649,\
++	-6.27325630, -0.00038107, 0.00023344, 7.27287524, 0.99883598, 0.99938549, 0.49324647,\
++	-6.27325642, -0.00038102, 0.00023342, 7.27287540, 0.99883612, 0.99938556, 0.49324658,\
++	-6.27325653, -0.00038097, 0.00023339, 7.27287555, 0.99883626, 0.99938564, 0.49324664,\
++	-6.27325664, -0.00038093, 0.00023336, 7.27287571, 0.99883641, 0.99938572, 0.49324649,\
++	-6.27325675, -0.00038088, 0.00023333, 7.27287587, 0.99883655, 0.99938579, 0.49324658,\
++	-6.27325686, -0.00038083, 0.00023330, 7.27287603, 0.99883669, 0.99938587, 0.49324653,\
++	-6.27325698, -0.00038079, 0.00023327, 7.27287619, 0.99883684, 0.99938594, 0.49324658,\
++	-6.27325709, -0.00038074, 0.00023324, 7.27287635, 0.99883698, 0.99938602, 0.49324649,\
++	-6.27325720, -0.00038069, 0.00023321, 7.27287651, 0.99883712, 0.99938609, 0.49324663,\
++	-6.27325731, -0.00038065, 0.00023319, 7.27287667, 0.99883727, 0.99938617, 0.49324670,\
++	-6.27325742, -0.00038060, 0.00023316, 7.27287683, 0.99883741, 0.99938624, 0.49324665,\
++	-6.27325754, -0.00038055, 0.00023313, 7.27287699, 0.99883755, 0.99938632, 0.49324681,\
++	-6.27325765, -0.00038050, 0.00023310, 7.27287714, 0.99883769, 0.99938640, 0.49324678,\
++	-6.27325776, -0.00038046, 0.00023307, 7.27287730, 0.99883784, 0.99938647, 0.49324668,\
++	-6.27325787, -0.00038041, 0.00023304, 7.27287746, 0.99883798, 0.99938655, 0.49324676,\
++	-6.27325798, -0.00038036, 0.00023301, 7.27287762, 0.99883812, 0.99938662, 0.49324679,\
++	-6.27325810, -0.00038032, 0.00023299, 7.27287778, 0.99883827, 0.99938670, 0.49324680,\
++	-6.27325821, -0.00038027, 0.00023296, 7.27287794, 0.99883841, 0.99938677, 0.49324686,\
++	-6.27325832, -0.00038022, 0.00023293, 7.27287810, 0.99883855, 0.99938685, 0.49324703,\
++	-6.27325843, -0.00038018, 0.00023290, 7.27287825, 0.99883869, 0.99938692, 0.49324683,\
++	-6.27325854, -0.00038013, 0.00023287, 7.27287841, 0.99883884, 0.99938700, 0.49324688,\
++	-6.27325866, -0.00038008, 0.00023284, 7.27287857, 0.99883898, 0.99938707, 0.49324687,\
++	-6.27325877, -0.00038004, 0.00023281, 7.27287873, 0.99883912, 0.99938715, 0.49324692,\
++	-6.27325888, -0.00037999, 0.00023279, 7.27287889, 0.99883926, 0.99938722, 0.49324678,\
++	-6.27325899, -0.00037994, 0.00023276, 7.27287905, 0.99883941, 0.99938730, 0.49324693,\
++	-6.27325910, -0.00037990, 0.00023273, 7.27287920, 0.99883955, 0.99938737, 0.49324693,\
++	-6.27325921, -0.00037985, 0.00023270, 7.27287936, 0.99883969, 0.99938745, 0.49324695,\
++	-6.27325932, -0.00037980, 0.00023267, 7.27287952, 0.99883983, 0.99938752, 0.49324704,\
++	-6.27325944, -0.00037976, 0.00023264, 7.27287968, 0.99883998, 0.99938760, 0.49324699,\
++	-6.27325955, -0.00037971, 0.00023261, 7.27287984, 0.99884012, 0.99938768, 0.49324702,\
++	-6.27325966, -0.00037966, 0.00023259, 7.27287999, 0.99884026, 0.99938775, 0.49324694,\
++	-6.27325977, -0.00037962, 0.00023256, 7.27288015, 0.99884040, 0.99938783, 0.49324708,\
++	-6.27325988, -0.00037957, 0.00023253, 7.27288031, 0.99884055, 0.99938790, 0.49324716,\
++	-6.27325999, -0.00037953, 0.00023250, 7.27288047, 0.99884069, 0.99938798, 0.49324712,\
++	-6.27326011, -0.00037948, 0.00023247, 7.27288063, 0.99884083, 0.99938805, 0.49324715,\
++	-6.27326022, -0.00037943, 0.00023244, 7.27288078, 0.99884097, 0.99938813, 0.49324707,\
++	-6.27326033, -0.00037939, 0.00023241, 7.27288094, 0.99884111, 0.99938820, 0.49324704,\
++	-6.27326044, -0.00037934, 0.00023239, 7.27288110, 0.99884126, 0.99938828, 0.49324718,\
++	-6.27326055, -0.00037929, 0.00023236, 7.27288126, 0.99884140, 0.99938835, 0.49324714,\
++	-6.27326066, -0.00037925, 0.00023233, 7.27288142, 0.99884154, 0.99938843, 0.49324726,\
++	-6.27326077, -0.00037920, 0.00023230, 7.27288157, 0.99884168, 0.99938850, 0.49324702,\
++	-6.27326088, -0.00037915, 0.00023227, 7.27288173, 0.99884182, 0.99938858, 0.49324721,\
++	-6.27326100, -0.00037911, 0.00023224, 7.27288189, 0.99884197, 0.99938865, 0.49324723,\
++	-6.27326111, -0.00037906, 0.00023221, 7.27288205, 0.99884211, 0.99938873, 0.49324718,\
++	-6.27326122, -0.00037901, 0.00023219, 7.27288220, 0.99884225, 0.99938880, 0.49324712,\
++	-6.27326133, -0.00037897, 0.00023216, 7.27288236, 0.99884239, 0.99938887, 0.49324742,\
++	-6.27326144, -0.00037892, 0.00023213, 7.27288252, 0.99884253, 0.99938895, 0.49324731,\
++	-6.27326155, -0.00037887, 0.00023210, 7.27288268, 0.99884267, 0.99938902, 0.49324731,\
++	-6.27326166, -0.00037883, 0.00023207, 7.27288283, 0.99884282, 0.99938910, 0.49324735,\
++	-6.27326177, -0.00037878, 0.00023204, 7.27288299, 0.99884296, 0.99938917, 0.49324724,\
++	-6.27326188, -0.00037874, 0.00023202, 7.27288315, 0.99884310, 0.99938925, 0.49324733,\
++	-6.27326199, -0.00037869, 0.00023199, 7.27288331, 0.99884324, 0.99938932, 0.49324726,\
++	-6.27326211, -0.00037864, 0.00023196, 7.27288346, 0.99884338, 0.99938940, 0.49324734,\
++	-6.27326222, -0.00037860, 0.00023193, 7.27288362, 0.99884352, 0.99938947, 0.49324737,\
++	-6.27326233, -0.00037855, 0.00023190, 7.27288378, 0.99884367, 0.99938955, 0.49324746,\
++	-6.27326244, -0.00037850, 0.00023187, 7.27288393, 0.99884381, 0.99938962, 0.49324742,\
++	-6.27326255, -0.00037846, 0.00023185, 7.27288409, 0.99884395, 0.99938970, 0.49324750,\
++	-6.27326266, -0.00037841, 0.00023182, 7.27288425, 0.99884409, 0.99938977, 0.49324754,\
++	-6.27326277, -0.00037837, 0.00023179, 7.27288441, 0.99884423, 0.99938985, 0.49324741,\
++	-6.27326288, -0.00037832, 0.00023176, 7.27288456, 0.99884437, 0.99938992, 0.49324760,\
++	-6.27326299, -0.00037827, 0.00023173, 7.27288472, 0.99884451, 0.99939000, 0.49324751,\
++	-6.27326310, -0.00037823, 0.00023170, 7.27288488, 0.99884466, 0.99939007, 0.49324747,\
++	-6.27326321, -0.00037818, 0.00023168, 7.27288503, 0.99884480, 0.99939014, 0.49324756,\
++	-6.27326332, -0.00037813, 0.00023165, 7.27288519, 0.99884494, 0.99939022, 0.49324744,\
++	-6.27326343, -0.00037809, 0.00023162, 7.27288535, 0.99884508, 0.99939029, 0.49324765,\
++	-6.27326354, -0.00037804, 0.00023159, 7.27288550, 0.99884522, 0.99939037, 0.49324755,\
++	-6.27326366, -0.00037800, 0.00023156, 7.27288566, 0.99884536, 0.99939044, 0.49324760,\
++	-6.27326377, -0.00037795, 0.00023153, 7.27288582, 0.99884550, 0.99939052, 0.49324764,\
++	-6.27326388, -0.00037790, 0.00023151, 7.27288597, 0.99884564, 0.99939059, 0.49324764,\
++	-6.27326399, -0.00037786, 0.00023148, 7.27288613, 0.99884578, 0.99939067, 0.49324768,\
++	-6.27326410, -0.00037781, 0.00023145, 7.27288629, 0.99884592, 0.99939074, 0.49324772,\
++	-6.27326421, -0.00037777, 0.00023142, 7.27288644, 0.99884607, 0.99939081, 0.49324775,\
++	-6.27326432, -0.00037772, 0.00023139, 7.27288660, 0.99884621, 0.99939089, 0.49324763,\
++	-6.27326443, -0.00037767, 0.00023136, 7.27288676, 0.99884635, 0.99939096, 0.49324773,\
++	-6.27326454, -0.00037763, 0.00023134, 7.27288691, 0.99884649, 0.99939104, 0.49324770,\
++	-6.27326465, -0.00037758, 0.00023131, 7.27288707, 0.99884663, 0.99939111, 0.49324772,\
++	-6.27326476, -0.00037753, 0.00023128, 7.27288722, 0.99884677, 0.99939119, 0.49324778,\
++	-6.27326487, -0.00037749, 0.00023125, 7.27288738, 0.99884691, 0.99939126, 0.49324783,\
++	-6.27326498, -0.00037744, 0.00023122, 7.27288754, 0.99884705, 0.99939133, 0.49324780,\
++	-6.27326509, -0.00037740, 0.00023120, 7.27288769, 0.99884719, 0.99939141, 0.49324776,\
++	-6.27326520, -0.00037735, 0.00023117, 7.27288785, 0.99884733, 0.99939148, 0.49324786,\
++	-6.27326531, -0.00037730, 0.00023114, 7.27288801, 0.99884747, 0.99939156, 0.49324788,\
++	-6.27326542, -0.00037726, 0.00023111, 7.27288816, 0.99884761, 0.99939163, 0.49324776,\
++	-6.27326553, -0.00037721, 0.00023108, 7.27288832, 0.99884775, 0.99939171, 0.49324788,\
++	-6.27326564, -0.00037717, 0.00023105, 7.27288847, 0.99884789, 0.99939178, 0.49324801,\
++	-6.27326575, -0.00037712, 0.00023103, 7.27288863, 0.99884803, 0.99939185, 0.49324790,\
++	-6.27326586, -0.00037707, 0.00023100, 7.27288879, 0.99884817, 0.99939193, 0.49324783,\
++	-6.27326597, -0.00037703, 0.00023097, 7.27288894, 0.99884831, 0.99939200, 0.49324795,\
++	-6.27326608, -0.00037698, 0.00023094, 7.27288910, 0.99884846, 0.99939208, 0.49324808,\
++	-6.27326619, -0.00037694, 0.00023091, 7.27288925, 0.99884860, 0.99939215, 0.49324796,\
++	-6.27326630, -0.00037689, 0.00023089, 7.27288941, 0.99884874, 0.99939222, 0.49324802,\
++	-6.27326641, -0.00037685, 0.00023086, 7.27288956, 0.99884888, 0.99939230, 0.49324786,\
++	-6.27326652, -0.00037680, 0.00023083, 7.27288972, 0.99884902, 0.99939237, 0.49324795,\
++	-6.27326663, -0.00037675, 0.00023080, 7.27288988, 0.99884916, 0.99939245, 0.49324822,\
++	-6.27326674, -0.00037671, 0.00023077, 7.27289003, 0.99884930, 0.99939252, 0.49324803,\
++	-6.27326685, -0.00037666, 0.00023074, 7.27289019, 0.99884944, 0.99939259, 0.49324799,\
++	-6.27326696, -0.00037662, 0.00023072, 7.27289034, 0.99884958, 0.99939267, 0.49324798,\
++	-6.27326707, -0.00037657, 0.00023069, 7.27289050, 0.99884972, 0.99939274, 0.49324802,\
++	-6.27326718, -0.00037652, 0.00023066, 7.27289065, 0.99884986, 0.99939282, 0.49324803,\
++	-6.27326729, -0.00037648, 0.00023063, 7.27289081, 0.99885000, 0.99939289, 0.49324811,\
++	-6.27326740, -0.00037643, 0.00023060, 7.27289096, 0.99885014, 0.99939296, 0.49324817,\
++	-6.27326751, -0.00037639, 0.00023058, 7.27289112, 0.99885028, 0.99939304, 0.49324821,\
++	-6.27326762, -0.00037634, 0.00023055, 7.27289127, 0.99885042, 0.99939311, 0.49324821,\
++	-6.27326773, -0.00037630, 0.00023052, 7.27289143, 0.99885056, 0.99939318, 0.49324827,\
++	-6.27326783, -0.00037625, 0.00023049, 7.27289159, 0.99885070, 0.99939326, 0.49324820,\
++	-6.27326794, -0.00037620, 0.00023046, 7.27289174, 0.99885084, 0.99939333, 0.49324832,\
++	-6.27326805, -0.00037616, 0.00023044, 7.27289190, 0.99885097, 0.99939341, 0.49324834,\
++	-6.27326816, -0.00037611, 0.00023041, 7.27289205, 0.99885111, 0.99939348, 0.49324841,\
++	-6.27326827, -0.00037607, 0.00023038, 7.27289221, 0.99885125, 0.99939355, 0.49324834,\
++	-6.27326838, -0.00037602, 0.00023035, 7.27289236, 0.99885139, 0.99939363, 0.49324834,\
++	-6.27326849, -0.00037598, 0.00023032, 7.27289252, 0.99885153, 0.99939370, 0.49324836,\
++	-6.27326860, -0.00037593, 0.00023030, 7.27289267, 0.99885167, 0.99939377, 0.49324838,\
++	-6.27326871, -0.00037588, 0.00023027, 7.27289283, 0.99885181, 0.99939385, 0.49324843,\
++	-6.27326882, -0.00037584, 0.00023024, 7.27289298, 0.99885195, 0.99939392, 0.49324818,\
++	-6.27326893, -0.00037579, 0.00023021, 7.27289314, 0.99885209, 0.99939399, 0.49324852,\
++	-6.27326904, -0.00037575, 0.00023018, 7.27289329, 0.99885223, 0.99939407, 0.49324850,\
++	-6.27326915, -0.00037570, 0.00023016, 7.27289345, 0.99885237, 0.99939414, 0.49324851,\
++	-6.27326926, -0.00037566, 0.00023013, 7.27289360, 0.99885251, 0.99939422, 0.49324838,\
++	-6.27326937, -0.00037561, 0.00023010, 7.27289375, 0.99885265, 0.99939429, 0.49324847,\
++	-6.27326947, -0.00037557, 0.00023007, 7.27289391, 0.99885279, 0.99939436, 0.49324849,\
++	-6.27326958, -0.00037552, 0.00023004, 7.27289406, 0.99885293, 0.99939444, 0.49324851,\
++	-6.27326969, -0.00037547, 0.00023002, 7.27289422, 0.99885307, 0.99939451, 0.49324844,\
++	-6.27326980, -0.00037543, 0.00022999, 7.27289437, 0.99885321, 0.99939458, 0.49324862,\
++	-6.27326991, -0.00037538, 0.00022996, 7.27289453, 0.99885334, 0.99939466, 0.49324845,\
++	-6.27327002, -0.00037534, 0.00022993, 7.27289468, 0.99885348, 0.99939473, 0.49324866,\
++	-6.27327013, -0.00037529, 0.00022991, 7.27289484, 0.99885362, 0.99939480, 0.49324850,\
++	-6.27327024, -0.00037525, 0.00022988, 7.27289499, 0.99885376, 0.99939488, 0.49324874,\
++	-6.27327035, -0.00037520, 0.00022985, 7.27289514, 0.99885390, 0.99939495, 0.49324863,\
++	-6.27327045, -0.00037516, 0.00022982, 7.27289530, 0.99885404, 0.99939502, 0.49324861,\
++	-6.27327056, -0.00037511, 0.00022979, 7.27289545, 0.99885418, 0.99939510, 0.49324863,\
++	-6.27327067, -0.00037506, 0.00022977, 7.27289561, 0.99885432, 0.99939517, 0.49324878,\
++	-6.27327078, -0.00037502, 0.00022974, 7.27289576, 0.99885446, 0.99939524, 0.49324852,\
++	-6.27327089, -0.00037497, 0.00022971, 7.27289592, 0.99885459, 0.99939532, 0.49324868,\
++	-6.27327100, -0.00037493, 0.00022968, 7.27289607, 0.99885473, 0.99939539, 0.49324870,\
++	-6.27327111, -0.00037488, 0.00022965, 7.27289622, 0.99885487, 0.99939546, 0.49324867,\
++	-6.27327122, -0.00037484, 0.00022963, 7.27289638, 0.99885501, 0.99939554, 0.49324861,\
++	-6.27327132, -0.00037479, 0.00022960, 7.27289653, 0.99885515, 0.99939561, 0.49324879,\
++	-6.27327143, -0.00037475, 0.00022957, 7.27289669, 0.99885529, 0.99939568, 0.49324878,\
++	-6.27327154, -0.00037470, 0.00022954, 7.27289684, 0.99885543, 0.99939576, 0.49324873,\
++	-6.27327165, -0.00037466, 0.00022952, 7.27289699, 0.99885557, 0.99939583, 0.49324877,\
++	-6.27327176, -0.00037461, 0.00022949, 7.27289715, 0.99885570, 0.99939590, 0.49324893,\
++	-6.27327187, -0.00037457, 0.00022946, 7.27289730, 0.99885584, 0.99939597, 0.49324876,\
++	-6.27327198, -0.00037452, 0.00022943, 7.27289746, 0.99885598, 0.99939605, 0.49324876,\
++	-6.27327208, -0.00037447, 0.00022940, 7.27289761, 0.99885612, 0.99939612, 0.49324883,\
++	-6.27327219, -0.00037443, 0.00022938, 7.27289776, 0.99885626, 0.99939619, 0.49324897,\
++	-6.27327230, -0.00037438, 0.00022935, 7.27289792, 0.99885640, 0.99939627, 0.49324903,\
++	-6.27327241, -0.00037434, 0.00022932, 7.27289807, 0.99885653, 0.99939634, 0.49324897,\
++	-6.27327252, -0.00037429, 0.00022929, 7.27289822, 0.99885667, 0.99939641, 0.49324915,\
++	-6.27327263, -0.00037425, 0.00022927, 7.27289838, 0.99885681, 0.99939649, 0.49324899,\
++	-6.27327273, -0.00037420, 0.00022924, 7.27289853, 0.99885695, 0.99939656, 0.49324895,\
++	-6.27327284, -0.00037416, 0.00022921, 7.27289869, 0.99885709, 0.99939663, 0.49324901,\
++	-6.27327295, -0.00037411, 0.00022918, 7.27289884, 0.99885723, 0.99939671, 0.49324899,\
++	-6.27327306, -0.00037407, 0.00022915, 7.27289899, 0.99885736, 0.99939678, 0.49324910,\
++	-6.27327317, -0.00037402, 0.00022913, 7.27289915, 0.99885750, 0.99939685, 0.49324893,\
++	-6.27327328, -0.00037398, 0.00022910, 7.27289930, 0.99885764, 0.99939692, 0.49324897,\
++	-6.27327338, -0.00037393, 0.00022907, 7.27289945, 0.99885778, 0.99939700, 0.49324903,\
++	-6.27327349, -0.00037389, 0.00022904, 7.27289961, 0.99885792, 0.99939707, 0.49324907,\
++	-6.27327360, -0.00037384, 0.00022902, 7.27289976, 0.99885805, 0.99939714, 0.49324912,\
++	-6.27327371, -0.00037380, 0.00022899, 7.27289991, 0.99885819, 0.99939722, 0.49324911,\
++	-6.27327382, -0.00037375, 0.00022896, 7.27290007, 0.99885833, 0.99939729, 0.49324918,\
++	-6.27327392, -0.00037371, 0.00022893, 7.27290022, 0.99885847, 0.99939736, 0.49324911,\
++	-6.27327403, -0.00037366, 0.00022891, 7.27290037, 0.99885861, 0.99939743, 0.49324922,\
++	-6.27327414, -0.00037362, 0.00022888, 7.27290052, 0.99885874, 0.99939751, 0.49324912,\
++	-6.27327425, -0.00037357, 0.00022885, 7.27290068, 0.99885888, 0.99939758, 0.49324914,\
++	-6.27327436, -0.00037353, 0.00022882, 7.27290083, 0.99885902, 0.99939765, 0.49324919,\
++	-6.27327446, -0.00037348, 0.00022880, 7.27290098, 0.99885916, 0.99939772, 0.49324915,\
++	-6.27327457, -0.00037344, 0.00022877, 7.27290114, 0.99885929, 0.99939780, 0.49324920,\
++	-6.27327468, -0.00037339, 0.00022874, 7.27290129, 0.99885943, 0.99939787, 0.49324914,\
++	-6.27327479, -0.00037335, 0.00022871, 7.27290144, 0.99885957, 0.99939794, 0.49324927,\
++	-6.27327490, -0.00037330, 0.00022868, 7.27290160, 0.99885971, 0.99939801, 0.49324924,\
++	-6.27327500, -0.00037326, 0.00022866, 7.27290175, 0.99885984, 0.99939809, 0.49324926,\
++	-6.27327511, -0.00037321, 0.00022863, 7.27290190, 0.99885998, 0.99939816, 0.49324920,\
++	-6.27327522, -0.00037317, 0.00022860, 7.27290205, 0.99886012, 0.99939823, 0.49324932,\
++	-6.27327533, -0.00037312, 0.00022857, 7.27290221, 0.99886026, 0.99939831, 0.49324939,\
++	-6.27327543, -0.00037308, 0.00022855, 7.27290236, 0.99886039, 0.99939838, 0.49324946,\
++	-6.27327554, -0.00037303, 0.00022852, 7.27290251, 0.99886053, 0.99939845, 0.49324935,\
++	-6.27327565, -0.00037299, 0.00022849, 7.27290266, 0.99886067, 0.99939852, 0.49324930,\
++	-6.27327576, -0.00037294, 0.00022846, 7.27290282, 0.99886081, 0.99939860, 0.49324950,\
++	-6.27327586, -0.00037290, 0.00022844, 7.27290297, 0.99886094, 0.99939867, 0.49324938,\
++	-6.27327597, -0.00037285, 0.00022841, 7.27290312, 0.99886108, 0.99939874, 0.49324942,\
++	-6.27327608, -0.00037281, 0.00022838, 7.27290327, 0.99886122, 0.99939881, 0.49324944,\
++	-6.27327619, -0.00037276, 0.00022835, 7.27290343, 0.99886136, 0.99939888, 0.49324942,\
++	-6.27327629, -0.00037272, 0.00022833, 7.27290358, 0.99886149, 0.99939896, 0.49324940,\
++	-6.27327640, -0.00037267, 0.00022830, 7.27290373, 0.99886163, 0.99939903, 0.49324954,\
++	-6.27327651, -0.00037263, 0.00022827, 7.27290388, 0.99886177, 0.99939910, 0.49324936,\
++	-6.27327662, -0.00037258, 0.00022824, 7.27290404, 0.99886190, 0.99939917, 0.49324945,\
++	-6.27327672, -0.00037254, 0.00022822, 7.27290419, 0.99886204, 0.99939925, 0.49324953,\
++	-6.27327683, -0.00037249, 0.00022819, 7.27290434, 0.99886218, 0.99939932, 0.49324957,\
++	-6.27327694, -0.00037245, 0.00022816, 7.27290449, 0.99886231, 0.99939939, 0.49324952,\
++	-6.27327705, -0.00037240, 0.00022813, 7.27290464, 0.99886245, 0.99939946, 0.49324959,\
++	-6.27327715, -0.00037236, 0.00022811, 7.27290480, 0.99886259, 0.99939954, 0.49324957,\
++	-6.27327726, -0.00037231, 0.00022808, 7.27290495, 0.99886273, 0.99939961, 0.49324964,\
++	-6.27327737, -0.00037227, 0.00022805, 7.27290510, 0.99886286, 0.99939968, 0.49324963,\
++	-6.27327747, -0.00037222, 0.00022802, 7.27290525, 0.99886300, 0.99939975, 0.49324974,\
++	-6.27327758, -0.00037218, 0.00022800, 7.27290540, 0.99886314, 0.99939982, 0.49324966,\
++	-6.27327769, -0.00037213, 0.00022797, 7.27290556, 0.99886327, 0.99939990, 0.49324952,\
++	-6.27327780, -0.00037209, 0.00022794, 7.27290571, 0.99886341, 0.99939997, 0.49324969,\
++	-6.27327790, -0.00037204, 0.00022791, 7.27290586, 0.99886355, 0.99940004, 0.49324970,\
++	-6.27327801, -0.00037200, 0.00022789, 7.27290601, 0.99886368, 0.99940011, 0.49324976,\
++	-6.27327812, -0.00037195, 0.00022786, 7.27290616, 0.99886382, 0.99940019, 0.49324984,\
++	-6.27327822, -0.00037191, 0.00022783, 7.27290631, 0.99886396, 0.99940026, 0.49324963,\
++	-6.27327833, -0.00037187, 0.00022781, 7.27290647, 0.99886409, 0.99940033, 0.49324968,\
++	-6.27327844, -0.00037182, 0.00022778, 7.27290662, 0.99886423, 0.99940040, 0.49324978,\
++	-6.27327855, -0.00037178, 0.00022775, 7.27290677, 0.99886436, 0.99940047, 0.49324985,\
++	-6.27327865, -0.00037173, 0.00022772, 7.27290692, 0.99886450, 0.99940055, 0.49325000,\
++	-6.27327876, -0.00037169, 0.00022770, 7.27290707, 0.99886464, 0.99940062, 0.49324984,\
++	-6.27327887, -0.00037164, 0.00022767, 7.27290722, 0.99886477, 0.99940069, 0.49324982,\
++	-6.27327897, -0.00037160, 0.00022764, 7.27290737, 0.99886491, 0.99940076, 0.49324988,\
++	-6.27327908, -0.00037155, 0.00022761, 7.27290753, 0.99886505, 0.99940083, 0.49325015,\
++	-6.27327919, -0.00037151, 0.00022759, 7.27290768, 0.99886518, 0.99940091, 0.49324977,\
++	-6.27327929, -0.00037146, 0.00022756, 7.27290783, 0.99886532, 0.99940098, 0.49324993,\
++	-6.27327940, -0.00037142, 0.00022753, 7.27290798, 0.99886546, 0.99940105, 0.49325002,\
++	-6.27327951, -0.00037137, 0.00022750, 7.27290813, 0.99886559, 0.99940112, 0.49324999,\
++	-6.27327961, -0.00037133, 0.00022748, 7.27290828, 0.99886573, 0.99940119, 0.49325000,\
++	-6.27327972, -0.00037129, 0.00022745, 7.27290843, 0.99886586, 0.99940126, 0.49325006,\
++	-6.27327983, -0.00037124, 0.00022742, 7.27290858, 0.99886600, 0.99940134, 0.49324994,\
++	-6.27327993, -0.00037120, 0.00022740, 7.27290874, 0.99886614, 0.99940141, 0.49324986,\
++	-6.27328004, -0.00037115, 0.00022737, 7.27290889, 0.99886627, 0.99940148, 0.49325009,\
++	-6.27328015, -0.00037111, 0.00022734, 7.27290904, 0.99886641, 0.99940155, 0.49325012,\
++	-6.27328025, -0.00037106, 0.00022731, 7.27290919, 0.99886654, 0.99940162, 0.49325015,\
++	-6.27328036, -0.00037102, 0.00022729, 7.27290934, 0.99886668, 0.99940170, 0.49325010,\
++	-6.27328047, -0.00037097, 0.00022726, 7.27290949, 0.99886682, 0.99940177, 0.49325020,\
++	-6.27328057, -0.00037093, 0.00022723, 7.27290964, 0.99886695, 0.99940184, 0.49325004,\
++	-6.27328068, -0.00037089, 0.00022720, 7.27290979, 0.99886709, 0.99940191, 0.49325014,\
++	-6.27328078, -0.00037084, 0.00022718, 7.27290994, 0.99886722, 0.99940198, 0.49325025,\
++	-6.27328089, -0.00037080, 0.00022715, 7.27291009, 0.99886736, 0.99940205, 0.49325008,\
++	-6.27328100, -0.00037075, 0.00022712, 7.27291024, 0.99886749, 0.99940213, 0.49325032,\
++	-6.27328110, -0.00037071, 0.00022710, 7.27291040, 0.99886763, 0.99940220, 0.49325016,\
++	-6.27328121, -0.00037066, 0.00022707, 7.27291055, 0.99886777, 0.99940227, 0.49325010,\
++	-6.27328132, -0.00037062, 0.00022704, 7.27291070, 0.99886790, 0.99940234, 0.49325006,\
++	-6.27328142, -0.00037057, 0.00022701, 7.27291085, 0.99886804, 0.99940241, 0.49325022,\
++	-6.27328153, -0.00037053, 0.00022699, 7.27291100, 0.99886817, 0.99940248, 0.49325031,\
++	-6.27328163, -0.00037049, 0.00022696, 7.27291115, 0.99886831, 0.99940255, 0.49325037,\
++	-6.27328174, -0.00037044, 0.00022693, 7.27291130, 0.99886844, 0.99940263, 0.49325027,\
++	-6.27328185, -0.00037040, 0.00022691, 7.27291145, 0.99886858, 0.99940270, 0.49325034,\
++	-6.27328195, -0.00037035, 0.00022688, 7.27291160, 0.99886871, 0.99940277, 0.49325020,\
++	-6.27328206, -0.00037031, 0.00022685, 7.27291175, 0.99886885, 0.99940284, 0.49325035,\
++	-6.27328217, -0.00037026, 0.00022682, 7.27291190, 0.99886898, 0.99940291, 0.49325022,\
++	-6.27328227, -0.00037022, 0.00022680, 7.27291205, 0.99886912, 0.99940298, 0.49325038,\
++	-6.27328238, -0.00037018, 0.00022677, 7.27291220, 0.99886926, 0.99940305, 0.49325045,\
++	-6.27328248, -0.00037013, 0.00022674, 7.27291235, 0.99886939, 0.99940313, 0.49325055,\
++	-6.27328259, -0.00037009, 0.00022672, 7.27291250, 0.99886953, 0.99940320, 0.49325042,\
++	-6.27328269, -0.00037004, 0.00022669, 7.27291265, 0.99886966, 0.99940327, 0.49325036,\
++	-6.27328280, -0.00037000, 0.00022666, 7.27291280, 0.99886980, 0.99940334, 0.49325057,\
++	-6.27328291, -0.00036995, 0.00022663, 7.27291295, 0.99886993, 0.99940341, 0.49325047,\
++	-6.27328301, -0.00036991, 0.00022661, 7.27291310, 0.99887007, 0.99940348, 0.49325050,\
++	-6.27328312, -0.00036987, 0.00022658, 7.27291325, 0.99887020, 0.99940355, 0.49325044,\
++	-6.27328322, -0.00036982, 0.00022655, 7.27291340, 0.99887034, 0.99940363, 0.49325060,\
++	-6.27328333, -0.00036978, 0.00022653, 7.27291355, 0.99887047, 0.99940370, 0.49325046,\
++	-6.27328344, -0.00036973, 0.00022650, 7.27291370, 0.99887061, 0.99940377, 0.49325049,\
++	-6.27328354, -0.00036969, 0.00022647, 7.27291385, 0.99887074, 0.99940384, 0.49325054,\
++	-6.27328365, -0.00036965, 0.00022644, 7.27291400, 0.99887088, 0.99940391, 0.49325051,\
++	-6.27328375, -0.00036960, 0.00022642, 7.27291415, 0.99887101, 0.99940398, 0.49325068,\
++	-6.27328386, -0.00036956, 0.00022639, 7.27291430, 0.99887115, 0.99940405, 0.49325059,\
++	-6.27328396, -0.00036951, 0.00022636, 7.27291445, 0.99887128, 0.99940412, 0.49325082,\
++	-6.27328407, -0.00036947, 0.00022634, 7.27291460, 0.99887142, 0.99940419, 0.49325077,\
++	-6.27328418, -0.00036942, 0.00022631, 7.27291475, 0.99887155, 0.99940427, 0.49325076,\
++	-6.27328428, -0.00036938, 0.00022628, 7.27291490, 0.99887168, 0.99940434, 0.49325073,\
++	-6.27328439, -0.00036934, 0.00022626, 7.27291505, 0.99887182, 0.99940441, 0.49325073,\
++	-6.27328449, -0.00036929, 0.00022623, 7.27291520, 0.99887195, 0.99940448, 0.49325059,\
++	-6.27328460, -0.00036925, 0.00022620, 7.27291535, 0.99887209, 0.99940455, 0.49325071,\
++	-6.27328470, -0.00036920, 0.00022617, 7.27291550, 0.99887222, 0.99940462, 0.49325075,\
++	-6.27328481, -0.00036916, 0.00022615, 7.27291565, 0.99887236, 0.99940469, 0.49325074,\
++	-6.27328491, -0.00036912, 0.00022612, 7.27291580, 0.99887249, 0.99940476, 0.49325076,\
++	-6.27328502, -0.00036907, 0.00022609, 7.27291595, 0.99887263, 0.99940483, 0.49325069,\
++	-6.27328512, -0.00036903, 0.00022607, 7.27291610, 0.99887276, 0.99940491, 0.49325089,\
++	-6.27328523, -0.00036898, 0.00022604, 7.27291624, 0.99887290, 0.99940498, 0.49325087,\
++	-6.27328533, -0.00036894, 0.00022601, 7.27291639, 0.99887303, 0.99940505, 0.49325089,\
++	-6.27328544, -0.00036890, 0.00022599, 7.27291654, 0.99887316, 0.99940512, 0.49325087,\
++	-6.27328555, -0.00036885, 0.00022596, 7.27291669, 0.99887330, 0.99940519, 0.49325085,\
++	-6.27328565, -0.00036881, 0.00022593, 7.27291684, 0.99887343, 0.99940526, 0.49325080,\
++	-6.27328576, -0.00036876, 0.00022590, 7.27291699, 0.99887357, 0.99940533, 0.49325071,\
++	-6.27328586, -0.00036872, 0.00022588, 7.27291714, 0.99887370, 0.99940540, 0.49325095,\
++	-6.27328597, -0.00036868, 0.00022585, 7.27291729, 0.99887384, 0.99940547, 0.49325080,\
++	-6.27328607, -0.00036863, 0.00022582, 7.27291744, 0.99887397, 0.99940554, 0.49325088,\
++	-6.27328618, -0.00036859, 0.00022580, 7.27291759, 0.99887410, 0.99940561, 0.49325100,\
++	-6.27328628, -0.00036855, 0.00022577, 7.27291774, 0.99887424, 0.99940568, 0.49325106,\
++	-6.27328639, -0.00036850, 0.00022574, 7.27291789, 0.99887437, 0.99940576, 0.49325085,\
++	-6.27328649, -0.00036846, 0.00022572, 7.27291803, 0.99887451, 0.99940583, 0.49325087,\
++	-6.27328660, -0.00036841, 0.00022569, 7.27291818, 0.99887464, 0.99940590, 0.49325084,\
++	-6.27328670, -0.00036837, 0.00022566, 7.27291833, 0.99887477, 0.99940597, 0.49325118,\
++	-6.27328681, -0.00036833, 0.00022564, 7.27291848, 0.99887491, 0.99940604, 0.49325112,\
++	-6.27328691, -0.00036828, 0.00022561, 7.27291863, 0.99887504, 0.99940611, 0.49325104,\
++	-6.27328702, -0.00036824, 0.00022558, 7.27291878, 0.99887518, 0.99940618, 0.49325104,\
++	-6.27328712, -0.00036819, 0.00022556, 7.27291893, 0.99887531, 0.99940625, 0.49325116,\
++	-6.27328723, -0.00036815, 0.00022553, 7.27291907, 0.99887544, 0.99940632, 0.49325111,\
++	-6.27328733, -0.00036811, 0.00022550, 7.27291922, 0.99887558, 0.99940639, 0.49325116,\
++	-6.27328744, -0.00036806, 0.00022547, 7.27291937, 0.99887571, 0.99940646, 0.49325108,\
++	-6.27328754, -0.00036802, 0.00022545, 7.27291952, 0.99887584, 0.99940653, 0.49325111,\
++	-6.27328764, -0.00036798, 0.00022542, 7.27291967, 0.99887598, 0.99940660, 0.49325113,\
++	-6.27328775, -0.00036793, 0.00022539, 7.27291982, 0.99887611, 0.99940667, 0.49325130,\
++	-6.27328785, -0.00036789, 0.00022537, 7.27291997, 0.99887625, 0.99940674, 0.49325114,\
++	-6.27328796, -0.00036784, 0.00022534, 7.27292011, 0.99887638, 0.99940681, 0.49325125,\
++	-6.27328806, -0.00036780, 0.00022531, 7.27292026, 0.99887651, 0.99940689, 0.49325120,\
++	-6.27328817, -0.00036776, 0.00022529, 7.27292041, 0.99887665, 0.99940696, 0.49325118,\
++	-6.27328827, -0.00036771, 0.00022526, 7.27292056, 0.99887678, 0.99940703, 0.49325120,\
++	-6.27328838, -0.00036767, 0.00022523, 7.27292071, 0.99887691, 0.99940710, 0.49325135,\
++	-6.27328848, -0.00036763, 0.00022521, 7.27292086, 0.99887705, 0.99940717, 0.49325134,\
++	-6.27328859, -0.00036758, 0.00022518, 7.27292100, 0.99887718, 0.99940724, 0.49325139,\
++	-6.27328869, -0.00036754, 0.00022515, 7.27292115, 0.99887731, 0.99940731, 0.49325135,\
++	-6.27328880, -0.00036749, 0.00022513, 7.27292130, 0.99887745, 0.99940738, 0.49325126,\
++	-6.27328890, -0.00036745, 0.00022510, 7.27292145, 0.99887758, 0.99940745, 0.49325131,\
++	-6.27328900, -0.00036741, 0.00022507, 7.27292160, 0.99887771, 0.99940752, 0.49325136,\
++	-6.27328911, -0.00036736, 0.00022505, 7.27292174, 0.99887785, 0.99940759, 0.49325152,\
++	-6.27328921, -0.00036732, 0.00022502, 7.27292189, 0.99887798, 0.99940766, 0.49325159,\
++	-6.27328932, -0.00036728, 0.00022499, 7.27292204, 0.99887811, 0.99940773, 0.49325140,\
++	-6.27328942, -0.00036723, 0.00022497, 7.27292219, 0.99887825, 0.99940780, 0.49325141,\
++	-6.27328953, -0.00036719, 0.00022494, 7.27292234, 0.99887838, 0.99940787, 0.49325131,\
++	-6.27328963, -0.00036715, 0.00022491, 7.27292248, 0.99887851, 0.99940794, 0.49325145,\
++	-6.27328973, -0.00036710, 0.00022489, 7.27292263, 0.99887864, 0.99940801, 0.49325145,\
++	-6.27328984, -0.00036706, 0.00022486, 7.27292278, 0.99887878, 0.99940808, 0.49325157,\
++	-6.27328994, -0.00036702, 0.00022483, 7.27292293, 0.99887891, 0.99940815, 0.49325149,\
++	-6.27329005, -0.00036697, 0.00022481, 7.27292307, 0.99887904, 0.99940822, 0.49325164,\
++	-6.27329015, -0.00036693, 0.00022478, 7.27292322, 0.99887918, 0.99940829, 0.49325155,\
++	-6.27329025, -0.00036689, 0.00022475, 7.27292337, 0.99887931, 0.99940836, 0.49325164,\
++	-6.27329036, -0.00036684, 0.00022473, 7.27292352, 0.99887944, 0.99940843, 0.49325151,\
++	-6.27329046, -0.00036680, 0.00022470, 7.27292366, 0.99887958, 0.99940850, 0.49325168,\
++	-6.27329057, -0.00036675, 0.00022467, 7.27292381, 0.99887971, 0.99940857, 0.49325138,\
++	-6.27329067, -0.00036671, 0.00022465, 7.27292396, 0.99887984, 0.99940864, 0.49325171,\
++	-6.27329078, -0.00036667, 0.00022462, 7.27292411, 0.99887997, 0.99940871, 0.49325159,\
++	-6.27329088, -0.00036662, 0.00022459, 7.27292425, 0.99888011, 0.99940878, 0.49325160,\
++	-6.27329098, -0.00036658, 0.00022457, 7.27292440, 0.99888024, 0.99940885, 0.49325177,\
++	-6.27329109, -0.00036654, 0.00022454, 7.27292455, 0.99888037, 0.99940892, 0.49325177,\
++	-6.27329119, -0.00036649, 0.00022451, 7.27292470, 0.99888050, 0.99940899, 0.49325164,\
++	-6.27329129, -0.00036645, 0.00022449, 7.27292484, 0.99888064, 0.99940906, 0.49325172,\
++	-6.27329140, -0.00036641, 0.00022446, 7.27292499, 0.99888077, 0.99940913, 0.49325179,\
++	-6.27329150, -0.00036636, 0.00022443, 7.27292514, 0.99888090, 0.99940920, 0.49325181,\
++	-6.27329161, -0.00036632, 0.00022441, 7.27292529, 0.99888103, 0.99940927, 0.49325178,\
++	-6.27329171, -0.00036628, 0.00022438, 7.27292543, 0.99888117, 0.99940934, 0.49325178,\
++	-6.27329181, -0.00036623, 0.00022435, 7.27292558, 0.99888130, 0.99940941, 0.49325183,\
++	-6.27329192, -0.00036619, 0.00022433, 7.27292573, 0.99888143, 0.99940948, 0.49325179,\
++	-6.27329202, -0.00036615, 0.00022430, 7.27292587, 0.99888156, 0.99940955, 0.49325183,\
++	-6.27329212, -0.00036610, 0.00022427, 7.27292602, 0.99888170, 0.99940962, 0.49325178,\
++	-6.27329223, -0.00036606, 0.00022425, 7.27292617, 0.99888183, 0.99940969, 0.49325167,\
++	-6.27329233, -0.00036602, 0.00022422, 7.27292631, 0.99888196, 0.99940976, 0.49325180,\
++	-6.27329244, -0.00036597, 0.00022419, 7.27292646, 0.99888209, 0.99940983, 0.49325201,\
++	-6.27329254, -0.00036593, 0.00022417, 7.27292661, 0.99888222, 0.99940990, 0.49325190,\
++	-6.27329264, -0.00036589, 0.00022414, 7.27292675, 0.99888236, 0.99940997, 0.49325201,\
++	-6.27329275, -0.00036584, 0.00022412, 7.27292690, 0.99888249, 0.99941004, 0.49325203,\
++	-6.27329285, -0.00036580, 0.00022409, 7.27292705, 0.99888262, 0.99941011, 0.49325195,\
++	-6.27329295, -0.00036576, 0.00022406, 7.27292720, 0.99888275, 0.99941018, 0.49325194,\
++	-6.27329306, -0.00036571, 0.00022404, 7.27292734, 0.99888289, 0.99941025, 0.49325187,\
++	-6.27329316, -0.00036567, 0.00022401, 7.27292749, 0.99888302, 0.99941032, 0.49325203,\
++	-6.27329326, -0.00036563, 0.00022398, 7.27292764, 0.99888315, 0.99941039, 0.49325193,\
++	-6.27329337, -0.00036559, 0.00022396, 7.27292778, 0.99888328, 0.99941046, 0.49325192,\
++	-6.27329347, -0.00036554, 0.00022393, 7.27292793, 0.99888341, 0.99941053, 0.49325212,\
++	-6.27329357, -0.00036550, 0.00022390, 7.27292807, 0.99888355, 0.99941060, 0.49325192,\
++	-6.27329368, -0.00036546, 0.00022388, 7.27292822, 0.99888368, 0.99941067, 0.49325204,\
++	-6.27329378, -0.00036541, 0.00022385, 7.27292837, 0.99888381, 0.99941074, 0.49325210,\
++	-6.27329388, -0.00036537, 0.00022382, 7.27292851, 0.99888394, 0.99941081, 0.49325200,\
++	-6.27329399, -0.00036533, 0.00022380, 7.27292866, 0.99888407, 0.99941088, 0.49325216,\
++	-6.27329409, -0.00036528, 0.00022377, 7.27292881, 0.99888420, 0.99941095, 0.49325212,\
++	-6.27329419, -0.00036524, 0.00022374, 7.27292895, 0.99888434, 0.99941102, 0.49325214,\
++	-6.27329430, -0.00036520, 0.00022372, 7.27292910, 0.99888447, 0.99941108, 0.49325208,\
++	-6.27329440, -0.00036515, 0.00022369, 7.27292925, 0.99888460, 0.99941115, 0.49325230,\
++	-6.27329450, -0.00036511, 0.00022367, 7.27292939, 0.99888473, 0.99941122, 0.49325225,\
++	-6.27329461, -0.00036507, 0.00022364, 7.27292954, 0.99888486, 0.99941129, 0.49325212,\
++	-6.27329471, -0.00036502, 0.00022361, 7.27292968, 0.99888499, 0.99941136, 0.49325221,\
++	-6.27329481, -0.00036498, 0.00022359, 7.27292983, 0.99888513, 0.99941143, 0.49325215,\
++	-6.27329491, -0.00036494, 0.00022356, 7.27292998, 0.99888526, 0.99941150, 0.49325228,\
++	-6.27329502, -0.00036490, 0.00022353, 7.27293012, 0.99888539, 0.99941157, 0.49325236,\
++	-6.27329512, -0.00036485, 0.00022351, 7.27293027, 0.99888552, 0.99941164, 0.49325238,\
++	-6.27329522, -0.00036481, 0.00022348, 7.27293041, 0.99888565, 0.99941171, 0.49325230,\
++	-6.27329533, -0.00036477, 0.00022345, 7.27293056, 0.99888578, 0.99941178, 0.49325233,\
++	-6.27329543, -0.00036472, 0.00022343, 7.27293071, 0.99888591, 0.99941185, 0.49325243,\
++	-6.27329553, -0.00036468, 0.00022340, 7.27293085, 0.99888605, 0.99941192, 0.49325248,\
++	-6.27329564, -0.00036464, 0.00022338, 7.27293100, 0.99888618, 0.99941199, 0.49325226,\
++	-6.27329574, -0.00036460, 0.00022335, 7.27293114, 0.99888631, 0.99941206, 0.49325247,\
++	-6.27329584, -0.00036455, 0.00022332, 7.27293129, 0.99888644, 0.99941213, 0.49325235,\
++	-6.27329594, -0.00036451, 0.00022330, 7.27293143, 0.99888657, 0.99941219, 0.49325238,\
++	-6.27329605, -0.00036447, 0.00022327, 7.27293158, 0.99888670, 0.99941226, 0.49325236,\
++	-6.27329615, -0.00036442, 0.00022324, 7.27293173, 0.99888683, 0.99941233, 0.49325251,\
++	-6.27329625, -0.00036438, 0.00022322, 7.27293187, 0.99888696, 0.99941240, 0.49325244,\
++	-6.27329635, -0.00036434, 0.00022319, 7.27293202, 0.99888709, 0.99941247, 0.49325243,\
++	-6.27329646, -0.00036429, 0.00022317, 7.27293216, 0.99888723, 0.99941254, 0.49325235,\
++	-6.27329656, -0.00036425, 0.00022314, 7.27293231, 0.99888736, 0.99941261, 0.49325265,\
++	-6.27329666, -0.00036421, 0.00022311, 7.27293245, 0.99888749, 0.99941268, 0.49325266,\
++	-6.27329677, -0.00036417, 0.00022309, 7.27293260, 0.99888762, 0.99941275, 0.49325241,\
++	-6.27329687, -0.00036412, 0.00022306, 7.27293274, 0.99888775, 0.99941282, 0.49325251,\
++	-6.27329697, -0.00036408, 0.00022303, 7.27293289, 0.99888788, 0.99941289, 0.49325244,\
++	-6.27329707, -0.00036404, 0.00022301, 7.27293304, 0.99888801, 0.99941295, 0.49325256,\
++	-6.27329718, -0.00036399, 0.00022298, 7.27293318, 0.99888814, 0.99941302, 0.49325261,\
++	-6.27329728, -0.00036395, 0.00022296, 7.27293333, 0.99888827, 0.99941309, 0.49325262,\
++	-6.27329738, -0.00036391, 0.00022293, 7.27293347, 0.99888840, 0.99941316, 0.49325272,\
++	-6.27329748, -0.00036387, 0.00022290, 7.27293362, 0.99888853, 0.99941323, 0.49325264,\
++	-6.27329758, -0.00036382, 0.00022288, 7.27293376, 0.99888866, 0.99941330, 0.49325271,\
++	-6.27329769, -0.00036378, 0.00022285, 7.27293391, 0.99888879, 0.99941337, 0.49325250,\
++	-6.27329779, -0.00036374, 0.00022282, 7.27293405, 0.99888893, 0.99941344, 0.49325276,\
++	-6.27329789, -0.00036370, 0.00022280, 7.27293420, 0.99888906, 0.99941351, 0.49325279,\
++	-6.27329799, -0.00036365, 0.00022277, 7.27293434, 0.99888919, 0.99941358, 0.49325256,\
++	-6.27329810, -0.00036361, 0.00022275, 7.27293449, 0.99888932, 0.99941364, 0.49325269,\
++	-6.27329820, -0.00036357, 0.00022272, 7.27293463, 0.99888945, 0.99941371, 0.49325274,\
++	-6.27329830, -0.00036352, 0.00022269, 7.27293478, 0.99888958, 0.99941378, 0.49325276,\
++	-6.27329840, -0.00036348, 0.00022267, 7.27293492, 0.99888971, 0.99941385, 0.49325275,\
++	-6.27329851, -0.00036344, 0.00022264, 7.27293507, 0.99888984, 0.99941392, 0.49325266,\
++	-6.27329861, -0.00036340, 0.00022261, 7.27293521, 0.99888997, 0.99941399, 0.49325274,\
++	-6.27329871, -0.00036335, 0.00022259, 7.27293536, 0.99889010, 0.99941406, 0.49325275,\
++	-6.27329881, -0.00036331, 0.00022256, 7.27293550, 0.99889023, 0.99941413, 0.49325279,\
++	-6.27329891, -0.00036327, 0.00022254, 7.27293565, 0.99889036, 0.99941420, 0.49325277,\
++	-6.27329902, -0.00036323, 0.00022251, 7.27293579, 0.99889049, 0.99941426, 0.49325299,\
++	-6.27329912, -0.00036318, 0.00022248, 7.27293593, 0.99889062, 0.99941433, 0.49325298,\
++	-6.27329922, -0.00036314, 0.00022246, 7.27293608, 0.99889075, 0.99941440, 0.49325274,\
++	-6.27329932, -0.00036310, 0.00022243, 7.27293622, 0.99889088, 0.99941447, 0.49325294,\
++	-6.27329942, -0.00036306, 0.00022241, 7.27293637, 0.99889101, 0.99941454, 0.49325297,\
++	-6.27329953, -0.00036301, 0.00022238, 7.27293651, 0.99889114, 0.99941461, 0.49325278,\
++	-6.27329963, -0.00036297, 0.00022235, 7.27293666, 0.99889127, 0.99941468, 0.49325281,\
++	-6.27329973, -0.00036293, 0.00022233, 7.27293680, 0.99889140, 0.99941474, 0.49325304,\
++	-6.27329983, -0.00036289, 0.00022230, 7.27293695, 0.99889153, 0.99941481, 0.49325295,\
++	-6.27329993, -0.00036284, 0.00022228, 7.27293709, 0.99889166, 0.99941488, 0.49325311,\
++	-6.27330004, -0.00036280, 0.00022225, 7.27293723, 0.99889179, 0.99941495, 0.49325291,\
++	-6.27330014, -0.00036276, 0.00022222, 7.27293738, 0.99889192, 0.99941502, 0.49325317,\
++	-6.27330024, -0.00036272, 0.00022220, 7.27293752, 0.99889205, 0.99941509, 0.49325298,\
++	-6.27330034, -0.00036267, 0.00022217, 7.27293767, 0.99889218, 0.99941516, 0.49325316,\
++	-6.27330044, -0.00036263, 0.00022215, 7.27293781, 0.99889231, 0.99941522, 0.49325310,\
++	-6.27330054, -0.00036259, 0.00022212, 7.27293796, 0.99889244, 0.99941529, 0.49325314,\
++	-6.27330065, -0.00036255, 0.00022209, 7.27293810, 0.99889257, 0.99941536, 0.49325310,\
++	-6.27330075, -0.00036250, 0.00022207, 7.27293824, 0.99889270, 0.99941543, 0.49325300,\
++	-6.27330085, -0.00036246, 0.00022204, 7.27293839, 0.99889283, 0.99941550, 0.49325323,\
++	-6.27330095, -0.00036242, 0.00022202, 7.27293853, 0.99889296, 0.99941557, 0.49325313,\
++	-6.27330105, -0.00036238, 0.00022199, 7.27293868, 0.99889309, 0.99941564, 0.49325318,\
++	-6.27330115, -0.00036233, 0.00022196, 7.27293882, 0.99889322, 0.99941570, 0.49325325,\
++	-6.27330126, -0.00036229, 0.00022194, 7.27293896, 0.99889335, 0.99941577, 0.49325315,\
++	-6.27330136, -0.00036225, 0.00022191, 7.27293911, 0.99889348, 0.99941584, 0.49325312,\
++	-6.27330146, -0.00036221, 0.00022189, 7.27293925, 0.99889361, 0.99941591, 0.49325327,\
++	-6.27330156, -0.00036216, 0.00022186, 7.27293940, 0.99889374, 0.99941598, 0.49325334,\
++	-6.27330166, -0.00036212, 0.00022183, 7.27293954, 0.99889387, 0.99941605, 0.49325318,\
++	-6.27330176, -0.00036208, 0.00022181, 7.27293968, 0.99889400, 0.99941611, 0.49325339,\
++	-6.27330186, -0.00036204, 0.00022178, 7.27293983, 0.99889412, 0.99941618, 0.49325320,\
++	-6.27330197, -0.00036199, 0.00022176, 7.27293997, 0.99889425, 0.99941625, 0.49325327,\
++	-6.27330207, -0.00036195, 0.00022173, 7.27294011, 0.99889438, 0.99941632, 0.49325329,\
++	-6.27330217, -0.00036191, 0.00022170, 7.27294026, 0.99889451, 0.99941639, 0.49325333,\
++	-6.27330227, -0.00036187, 0.00022168, 7.27294040, 0.99889464, 0.99941646, 0.49325330,\
++	-6.27330237, -0.00036182, 0.00022165, 7.27294055, 0.99889477, 0.99941652, 0.49325321,\
++	-6.27330247, -0.00036178, 0.00022163, 7.27294069, 0.99889490, 0.99941659, 0.49325343,\
++	-6.27330257, -0.00036174, 0.00022160, 7.27294083, 0.99889503, 0.99941666, 0.49325334,\
++	-6.27330267, -0.00036170, 0.00022157, 7.27294098, 0.99889516, 0.99941673, 0.49325333,\
++	-6.27330278, -0.00036166, 0.00022155, 7.27294112, 0.99889529, 0.99941680, 0.49325328,\
++	-6.27330288, -0.00036161, 0.00022152, 7.27294126, 0.99889542, 0.99941686, 0.49325344,\
++	-6.27330298, -0.00036157, 0.00022150, 7.27294141, 0.99889555, 0.99941693, 0.49325340,\
++	-6.27330308, -0.00036153, 0.00022147, 7.27294155, 0.99889568, 0.99941700, 0.49325337,\
++	-6.27330318, -0.00036149, 0.00022144, 7.27294169, 0.99889580, 0.99941707, 0.49325346,\
++	-6.27330328, -0.00036144, 0.00022142, 7.27294184, 0.99889593, 0.99941714, 0.49325350,\
++	-6.27330338, -0.00036140, 0.00022139, 7.27294198, 0.99889606, 0.99941720, 0.49325355,\
++	-6.27330348, -0.00036136, 0.00022137, 7.27294212, 0.99889619, 0.99941727, 0.49325362,\
++	-6.27330358, -0.00036132, 0.00022134, 7.27294227, 0.99889632, 0.99941734, 0.49325356,\
++	-6.27330368, -0.00036128, 0.00022132, 7.27294241, 0.99889645, 0.99941741, 0.49325360,\
++	-6.27330379, -0.00036123, 0.00022129, 7.27294255, 0.99889658, 0.99941748, 0.49325348,\
++	-6.27330389, -0.00036119, 0.00022126, 7.27294269, 0.99889671, 0.99941754, 0.49325378,\
++	-6.27330399, -0.00036115, 0.00022124, 7.27294284, 0.99889684, 0.99941761, 0.49325364,\
++	-6.27330409, -0.00036111, 0.00022121, 7.27294298, 0.99889696, 0.99941768, 0.49325361,\
++	-6.27330419, -0.00036107, 0.00022119, 7.27294312, 0.99889709, 0.99941775, 0.49325386,\
++	-6.27330429, -0.00036102, 0.00022116, 7.27294327, 0.99889722, 0.99941782, 0.49325359,\
++	-6.27330439, -0.00036098, 0.00022113, 7.27294341, 0.99889735, 0.99941788, 0.49325371,\
++	-6.27330449, -0.00036094, 0.00022111, 7.27294355, 0.99889748, 0.99941795, 0.49325375,\
++	-6.27330459, -0.00036090, 0.00022108, 7.27294370, 0.99889761, 0.99941802, 0.49325371,\
++	-6.27330469, -0.00036085, 0.00022106, 7.27294384, 0.99889774, 0.99941809, 0.49325378,\
++	-6.27330479, -0.00036081, 0.00022103, 7.27294398, 0.99889786, 0.99941816, 0.49325370,\
++	-6.27330489, -0.00036077, 0.00022101, 7.27294412, 0.99889799, 0.99941822, 0.49325364,\
++	-6.27330499, -0.00036073, 0.00022098, 7.27294427, 0.99889812, 0.99941829, 0.49325373,\
++	-6.27330510, -0.00036069, 0.00022095, 7.27294441, 0.99889825, 0.99941836, 0.49325372,\
++	-6.27330520, -0.00036064, 0.00022093, 7.27294455, 0.99889838, 0.99941843, 0.49325391,\
++	-6.27330530, -0.00036060, 0.00022090, 7.27294469, 0.99889851, 0.99941849, 0.49325378,\
++	-6.27330540, -0.00036056, 0.00022088, 7.27294484, 0.99889863, 0.99941856, 0.49325387,\
++	-6.27330550, -0.00036052, 0.00022085, 7.27294498, 0.99889876, 0.99941863, 0.49325370,\
++	-6.27330560, -0.00036048, 0.00022083, 7.27294512, 0.99889889, 0.99941870, 0.49325386,\
++	-6.27330570, -0.00036043, 0.00022080, 7.27294526, 0.99889902, 0.99941877, 0.49325387,\
++	-6.27330580, -0.00036039, 0.00022077, 7.27294541, 0.99889915, 0.99941883, 0.49325384,\
++	-6.27330590, -0.00036035, 0.00022075, 7.27294555, 0.99889928, 0.99941890, 0.49325392,\
++	-6.27330600, -0.00036031, 0.00022072, 7.27294569, 0.99889940, 0.99941897, 0.49325387,\
++	-6.27330610, -0.00036027, 0.00022070, 7.27294583, 0.99889953, 0.99941904, 0.49325390,\
++	-6.27330620, -0.00036023, 0.00022067, 7.27294598, 0.99889966, 0.99941910, 0.49325400,\
++	-6.27330630, -0.00036018, 0.00022065, 7.27294612, 0.99889979, 0.99941917, 0.49325409,\
++	-6.27330640, -0.00036014, 0.00022062, 7.27294626, 0.99889992, 0.99941924, 0.49325386,\
++	-6.27330650, -0.00036010, 0.00022059, 7.27294640, 0.99890004, 0.99941931, 0.49325408,\
++	-6.27330660, -0.00036006, 0.00022057, 7.27294654, 0.99890017, 0.99941937, 0.49325391,\
++	-6.27330670, -0.00036002, 0.00022054, 7.27294669, 0.99890030, 0.99941944, 0.49325389,\
++	-6.27330680, -0.00035997, 0.00022052, 7.27294683, 0.99890043, 0.99941951, 0.49325379,\
++	-6.27330690, -0.00035993, 0.00022049, 7.27294697, 0.99890056, 0.99941958, 0.49325409,\
++	-6.27330700, -0.00035989, 0.00022047, 7.27294711, 0.99890068, 0.99941964, 0.49325388,\
++	-6.27330710, -0.00035985, 0.00022044, 7.27294726, 0.99890081, 0.99941971, 0.49325402,\
++	-6.27330720, -0.00035981, 0.00022041, 7.27294740, 0.99890094, 0.99941978, 0.49325423,\
++	-6.27330730, -0.00035976, 0.00022039, 7.27294754, 0.99890107, 0.99941985, 0.49325405,\
++	-6.27330740, -0.00035972, 0.00022036, 7.27294768, 0.99890119, 0.99941991, 0.49325402,\
++	-6.27330750, -0.00035968, 0.00022034, 7.27294782, 0.99890132, 0.99941998, 0.49325409,\
++	-6.27330760, -0.00035964, 0.00022031, 7.27294796, 0.99890145, 0.99942005, 0.49325408,\
++	-6.27330770, -0.00035960, 0.00022029, 7.27294811, 0.99890158, 0.99942012, 0.49325430,\
++	-6.27330780, -0.00035956, 0.00022026, 7.27294825, 0.99890171, 0.99942018, 0.49325412,\
++	-6.27330790, -0.00035951, 0.00022024, 7.27294839, 0.99890183, 0.99942025, 0.49325410,\
++	-6.27330800, -0.00035947, 0.00022021, 7.27294853, 0.99890196, 0.99942032, 0.49325444,\
++	-6.27330810, -0.00035943, 0.00022018, 7.27294867, 0.99890209, 0.99942039, 0.49325431,\
++	-6.27330820, -0.00035939, 0.00022016, 7.27294882, 0.99890222, 0.99942045, 0.49325422,\
++	-6.27330830, -0.00035935, 0.00022013, 7.27294896, 0.99890234, 0.99942052, 0.49325435,\
++	-6.27330840, -0.00035931, 0.00022011, 7.27294910, 0.99890247, 0.99942059, 0.49325426,\
++	-6.27330850, -0.00035926, 0.00022008, 7.27294924, 0.99890260, 0.99942065, 0.49325433,\
++	-6.27330860, -0.00035922, 0.00022006, 7.27294938, 0.99890273, 0.99942072, 0.49325432,\
++	-6.27330870, -0.00035918, 0.00022003, 7.27294952, 0.99890285, 0.99942079, 0.49325444,\
++	-6.27330880, -0.00035914, 0.00022001, 7.27294966, 0.99890298, 0.99942086, 0.49325435,\
++	-6.27330890, -0.00035910, 0.00021998, 7.27294981, 0.99890311, 0.99942092, 0.49325422,\
++	-6.27330900, -0.00035906, 0.00021995, 7.27294995, 0.99890323, 0.99942099, 0.49325439,\
++	-6.27330910, -0.00035901, 0.00021993, 7.27295009, 0.99890336, 0.99942106, 0.49325438,\
++	-6.27330920, -0.00035897, 0.00021990, 7.27295023, 0.99890349, 0.99942113, 0.49325454,\
++	-6.27330930, -0.00035893, 0.00021988, 7.27295037, 0.99890362, 0.99942119, 0.49325448,\
++	-6.27330940, -0.00035889, 0.00021985, 7.27295051, 0.99890374, 0.99942126, 0.49325441,\
++	-6.27330950, -0.00035885, 0.00021983, 7.27295065, 0.99890387, 0.99942133, 0.49325438,\
++	-6.27330960, -0.00035881, 0.00021980, 7.27295079, 0.99890400, 0.99942139, 0.49325444,\
++	-6.27330970, -0.00035876, 0.00021978, 7.27295094, 0.99890412, 0.99942146, 0.49325455,\
++	-6.27330980, -0.00035872, 0.00021975, 7.27295108, 0.99890425, 0.99942153, 0.49325435,\
++	-6.27330990, -0.00035868, 0.00021972, 7.27295122, 0.99890438, 0.99942159, 0.49325446,\
++	-6.27331000, -0.00035864, 0.00021970, 7.27295136, 0.99890451, 0.99942166, 0.49325463,\
++	-6.27331010, -0.00035860, 0.00021967, 7.27295150, 0.99890463, 0.99942173, 0.49325459,\
++	-6.27331020, -0.00035856, 0.00021965, 7.27295164, 0.99890476, 0.99942180, 0.49325444,\
++	-6.27331030, -0.00035851, 0.00021962, 7.27295178, 0.99890489, 0.99942186, 0.49325446,\
++	-6.27331040, -0.00035847, 0.00021960, 7.27295192, 0.99890501, 0.99942193, 0.49325470,\
++	-6.27331050, -0.00035843, 0.00021957, 7.27295206, 0.99890514, 0.99942200, 0.49325447,\
++	-6.27331059, -0.00035839, 0.00021955, 7.27295220, 0.99890527, 0.99942206, 0.49325451,\
++	-6.27331069, -0.00035835, 0.00021952, 7.27295235, 0.99890539, 0.99942213, 0.49325471,\
++	-6.27331079, -0.00035831, 0.00021950, 7.27295249, 0.99890552, 0.99942220, 0.49325479,\
++	-6.27331089, -0.00035827, 0.00021947, 7.27295263, 0.99890565, 0.99942226, 0.49325465,\
++	-6.27331099, -0.00035822, 0.00021944, 7.27295277, 0.99890577, 0.99942233, 0.49325460,\
++	-6.27331109, -0.00035818, 0.00021942, 7.27295291, 0.99890590, 0.99942240, 0.49325463,\
++	-6.27331119, -0.00035814, 0.00021939, 7.27295305, 0.99890603, 0.99942246, 0.49325475,\
++	-6.27331129, -0.00035810, 0.00021937, 7.27295319, 0.99890615, 0.99942253, 0.49325484,\
++	-6.27331139, -0.00035806, 0.00021934, 7.27295333, 0.99890628, 0.99942260, 0.49325478,\
++	-6.27331149, -0.00035802, 0.00021932, 7.27295347, 0.99890641, 0.99942267, 0.49325476,\
++	-6.27331159, -0.00035798, 0.00021929, 7.27295361, 0.99890653, 0.99942273, 0.49325474,\
++	-6.27331169, -0.00035793, 0.00021927, 7.27295375, 0.99890666, 0.99942280, 0.49325471,\
++	-6.27331179, -0.00035789, 0.00021924, 7.27295389, 0.99890679, 0.99942287, 0.49325479,\
++	-6.27331188, -0.00035785, 0.00021922, 7.27295403, 0.99890691, 0.99942293, 0.49325475,\
++	-6.27331198, -0.00035781, 0.00021919, 7.27295417, 0.99890704, 0.99942300, 0.49325483,\
++	-6.27331208, -0.00035777, 0.00021917, 7.27295431, 0.99890717, 0.99942307, 0.49325488,\
++	-6.27331218, -0.00035773, 0.00021914, 7.27295445, 0.99890729, 0.99942313, 0.49325468,\
++	-6.27331228, -0.00035769, 0.00021911, 7.27295459, 0.99890742, 0.99942320, 0.49325487,\
++	-6.27331238, -0.00035764, 0.00021909, 7.27295473, 0.99890754, 0.99942327, 0.49325491,\
++	-6.27331248, -0.00035760, 0.00021906, 7.27295487, 0.99890767, 0.99942333, 0.49325485,\
++	-6.27331258, -0.00035756, 0.00021904, 7.27295501, 0.99890780, 0.99942340, 0.49325494,\
++	-6.27331268, -0.00035752, 0.00021901, 7.27295515, 0.99890792, 0.99942347, 0.49325489,\
++	-6.27331277, -0.00035748, 0.00021899, 7.27295529, 0.99890805, 0.99942353, 0.49325507,\
++	-6.27331287, -0.00035744, 0.00021896, 7.27295544, 0.99890818, 0.99942360, 0.49325487,\
++	-6.27331297, -0.00035740, 0.00021894, 7.27295558, 0.99890830, 0.99942367, 0.49325485,\
++	-6.27331307, -0.00035736, 0.00021891, 7.27295572, 0.99890843, 0.99942373, 0.49325494,\
++	-6.27331317, -0.00035731, 0.00021889, 7.27295586, 0.99890855, 0.99942380, 0.49325502,\
++	-6.27331327, -0.00035727, 0.00021886, 7.27295600, 0.99890868, 0.99942386, 0.49325506,\
++	-6.27331337, -0.00035723, 0.00021884, 7.27295614, 0.99890881, 0.99942393, 0.49325501,\
++	-6.27331347, -0.00035719, 0.00021881, 7.27295628, 0.99890893, 0.99942400, 0.49325503,\
++	-6.27331356, -0.00035715, 0.00021879, 7.27295642, 0.99890906, 0.99942406, 0.49325490,\
++	-6.27331366, -0.00035711, 0.00021876, 7.27295655, 0.99890918, 0.99942413, 0.49325500,\
++	-6.27331376, -0.00035707, 0.00021874, 7.27295669, 0.99890931, 0.99942420, 0.49325510,\
++	-6.27331386, -0.00035703, 0.00021871, 7.27295683, 0.99890943, 0.99942426, 0.49325499,\
++	-6.27331396, -0.00035698, 0.00021869, 7.27295697, 0.99890956, 0.99942433, 0.49325505,\
++	-6.27331406, -0.00035694, 0.00021866, 7.27295711, 0.99890969, 0.99942440, 0.49325506,\
++	-6.27331416, -0.00035690, 0.00021863, 7.27295725, 0.99890981, 0.99942446, 0.49325523,\
++	-6.27331425, -0.00035686, 0.00021861, 7.27295739, 0.99890994, 0.99942453, 0.49325511,\
++	-6.27331435, -0.00035682, 0.00021858, 7.27295753, 0.99891006, 0.99942460, 0.49325502,\
++	-6.27331445, -0.00035678, 0.00021856, 7.27295767, 0.99891019, 0.99942466, 0.49325512,\
++	-6.27331455, -0.00035674, 0.00021853, 7.27295781, 0.99891032, 0.99942473, 0.49325535,\
++	-6.27331465, -0.00035670, 0.00021851, 7.27295795, 0.99891044, 0.99942479, 0.49325526,\
++	-6.27331475, -0.00035666, 0.00021848, 7.27295809, 0.99891057, 0.99942486, 0.49325504,\
++	-6.27331485, -0.00035661, 0.00021846, 7.27295823, 0.99891069, 0.99942493, 0.49325512,\
++	-6.27331494, -0.00035657, 0.00021843, 7.27295837, 0.99891082, 0.99942499, 0.49325533,\
++	-6.27331504, -0.00035653, 0.00021841, 7.27295851, 0.99891094, 0.99942506, 0.49325523,\
++	-6.27331514, -0.00035649, 0.00021838, 7.27295865, 0.99891107, 0.99942513, 0.49325528,\
++	-6.27331524, -0.00035645, 0.00021836, 7.27295879, 0.99891119, 0.99942519, 0.49325526,\
++	-6.27331534, -0.00035641, 0.00021833, 7.27295893, 0.99891132, 0.99942526, 0.49325527,\
++	-6.27331543, -0.00035637, 0.00021831, 7.27295907, 0.99891144, 0.99942532, 0.49325541,\
++	-6.27331553, -0.00035633, 0.00021828, 7.27295921, 0.99891157, 0.99942539, 0.49325526,\
++	-6.27331563, -0.00035629, 0.00021826, 7.27295935, 0.99891169, 0.99942546, 0.49325518,\
++	-6.27331573, -0.00035625, 0.00021823, 7.27295948, 0.99891182, 0.99942552, 0.49325527,\
++	-6.27331583, -0.00035620, 0.00021821, 7.27295962, 0.99891195, 0.99942559, 0.49325543,\
++	-6.27331593, -0.00035616, 0.00021818, 7.27295976, 0.99891207, 0.99942566, 0.49325535,\
++	-6.27331602, -0.00035612, 0.00021816, 7.27295990, 0.99891220, 0.99942572, 0.49325531,\
++	-6.27331612, -0.00035608, 0.00021813, 7.27296004, 0.99891232, 0.99942579, 0.49325537,\
++	-6.27331622, -0.00035604, 0.00021811, 7.27296018, 0.99891245, 0.99942585, 0.49325536,\
++	-6.27331632, -0.00035600, 0.00021808, 7.27296032, 0.99891257, 0.99942592, 0.49325546,\
++	-6.27331642, -0.00035596, 0.00021806, 7.27296046, 0.99891270, 0.99942599, 0.49325549,\
++	-6.27331651, -0.00035592, 0.00021803, 7.27296060, 0.99891282, 0.99942605, 0.49325546,\
++	-6.27331661, -0.00035588, 0.00021801, 7.27296074, 0.99891295, 0.99942612, 0.49325542,\
++	-6.27331671, -0.00035584, 0.00021798, 7.27296087, 0.99891307, 0.99942618, 0.49325537,\
++	-6.27331681, -0.00035579, 0.00021796, 7.27296101, 0.99891320, 0.99942625, 0.49325535,\
++	-6.27331691, -0.00035575, 0.00021793, 7.27296115, 0.99891332, 0.99942632, 0.49325540,\
++	-6.27331700, -0.00035571, 0.00021791, 7.27296129, 0.99891345, 0.99942638, 0.49325546,\
++	-6.27331710, -0.00035567, 0.00021788, 7.27296143, 0.99891357, 0.99942645, 0.49325545,\
++	-6.27331720, -0.00035563, 0.00021786, 7.27296157, 0.99891370, 0.99942651, 0.49325569,\
++	-6.27331730, -0.00035559, 0.00021783, 7.27296171, 0.99891382, 0.99942658, 0.49325550,\
++	-6.27331740, -0.00035555, 0.00021781, 7.27296185, 0.99891395, 0.99942664, 0.49325563,\
++	-6.27331749, -0.00035551, 0.00021778, 7.27296198, 0.99891407, 0.99942671, 0.49325568,\
++	-6.27331759, -0.00035547, 0.00021776, 7.27296212, 0.99891420, 0.99942678, 0.49325547,\
++	-6.27331769, -0.00035543, 0.00021773, 7.27296226, 0.99891432, 0.99942684, 0.49325550,\
++	-6.27331779, -0.00035539, 0.00021771, 7.27296240, 0.99891444, 0.99942691, 0.49325571,\
++	-6.27331788, -0.00035535, 0.00021768, 7.27296254, 0.99891457, 0.99942697, 0.49325568,\
++	-6.27331798, -0.00035530, 0.00021766, 7.27296268, 0.99891469, 0.99942704, 0.49325562,\
++	-6.27331808, -0.00035526, 0.00021763, 7.27296281, 0.99891482, 0.99942711, 0.49325569,\
++	-6.27331818, -0.00035522, 0.00021761, 7.27296295, 0.99891494, 0.99942717, 0.49325576,\
++	-6.27331827, -0.00035518, 0.00021758, 7.27296309, 0.99891507, 0.99942724, 0.49325584,\
++	-6.27331837, -0.00035514, 0.00021756, 7.27296323, 0.99891519, 0.99942730, 0.49325572,\
++	-6.27331847, -0.00035510, 0.00021753, 7.27296337, 0.99891532, 0.99942737, 0.49325557,\
++	-6.27331857, -0.00035506, 0.00021751, 7.27296351, 0.99891544, 0.99942743, 0.49325555,\
++	-6.27331866, -0.00035502, 0.00021748, 7.27296364, 0.99891557, 0.99942750, 0.49325590,\
++	-6.27331876, -0.00035498, 0.00021746, 7.27296378, 0.99891569, 0.99942757, 0.49325582,\
++	-6.27331886, -0.00035494, 0.00021743, 7.27296392, 0.99891581, 0.99942763, 0.49325599,\
++	-6.27331896, -0.00035490, 0.00021741, 7.27296406, 0.99891594, 0.99942770, 0.49325596,\
++	-6.27331905, -0.00035486, 0.00021738, 7.27296420, 0.99891606, 0.99942776, 0.49325600,\
++	-6.27331915, -0.00035482, 0.00021736, 7.27296434, 0.99891619, 0.99942783, 0.49325578,\
++	-6.27331925, -0.00035478, 0.00021733, 7.27296447, 0.99891631, 0.99942789, 0.49325597,\
++	-6.27331935, -0.00035473, 0.00021731, 7.27296461, 0.99891644, 0.99942796, 0.49325578,\
++	-6.27331944, -0.00035469, 0.00021728, 7.27296475, 0.99891656, 0.99942802, 0.49325601,\
++	-6.27331954, -0.00035465, 0.00021726, 7.27296489, 0.99891668, 0.99942809, 0.49325574,\
++	-6.27331964, -0.00035461, 0.00021723, 7.27296503, 0.99891681, 0.99942816, 0.49325598,\
++	-6.27331974, -0.00035457, 0.00021721, 7.27296516, 0.99891693, 0.99942822, 0.49325602,\
++	-6.27331983, -0.00035453, 0.00021718, 7.27296530, 0.99891706, 0.99942829, 0.49325595,\
++	-6.27331993, -0.00035449, 0.00021716, 7.27296544, 0.99891718, 0.99942835, 0.49325608,\
++	-6.27332003, -0.00035445, 0.00021713, 7.27296558, 0.99891730, 0.99942842, 0.49325597,\
++	-6.27332012, -0.00035441, 0.00021711, 7.27296571, 0.99891743, 0.99942848, 0.49325598,\
++	-6.27332022, -0.00035437, 0.00021708, 7.27296585, 0.99891755, 0.99942855, 0.49325613,\
++	-6.27332032, -0.00035433, 0.00021706, 7.27296599, 0.99891768, 0.99942861, 0.49325588,\
++	-6.27332042, -0.00035429, 0.00021703, 7.27296613, 0.99891780, 0.99942868, 0.49325598,\
++	-6.27332051, -0.00035425, 0.00021701, 7.27296626, 0.99891792, 0.99942874, 0.49325592,\
++	-6.27332061, -0.00035421, 0.00021698, 7.27296640, 0.99891805, 0.99942881, 0.49325612,\
++	-6.27332071, -0.00035417, 0.00021696, 7.27296654, 0.99891817, 0.99942888, 0.49325620,\
++	-6.27332080, -0.00035413, 0.00021693, 7.27296668, 0.99891830, 0.99942894, 0.49325610,\
++	-6.27332090, -0.00035409, 0.00021691, 7.27296681, 0.99891842, 0.99942901, 0.49325614,\
++	-6.27332100, -0.00035405, 0.00021688, 7.27296695, 0.99891854, 0.99942907, 0.49325612,\
++	-6.27332109, -0.00035400, 0.00021686, 7.27296709, 0.99891867, 0.99942914, 0.49325613,\
++	-6.27332119, -0.00035396, 0.00021683, 7.27296723, 0.99891879, 0.99942920, 0.49325604,\
++	-6.27332129, -0.00035392, 0.00021681, 7.27296736, 0.99891891, 0.99942927, 0.49325626,\
++	-6.27332139, -0.00035388, 0.00021678, 7.27296750, 0.99891904, 0.99942933, 0.49325625,\
++	-6.27332148, -0.00035384, 0.00021676, 7.27296764, 0.99891916, 0.99942940, 0.49325605,\
++	-6.27332158, -0.00035380, 0.00021673, 7.27296778, 0.99891928, 0.99942946, 0.49325626,\
++	-6.27332168, -0.00035376, 0.00021671, 7.27296791, 0.99891941, 0.99942953, 0.49325629,\
++	-6.27332177, -0.00035372, 0.00021669, 7.27296805, 0.99891953, 0.99942959, 0.49325630,\
++	-6.27332187, -0.00035368, 0.00021666, 7.27296819, 0.99891966, 0.99942966, 0.49325628,\
++	-6.27332197, -0.00035364, 0.00021664, 7.27296833, 0.99891978, 0.99942972, 0.49325635,\
++	-6.27332206, -0.00035360, 0.00021661, 7.27296846, 0.99891990, 0.99942979, 0.49325625,\
++	-6.27332216, -0.00035356, 0.00021659, 7.27296860, 0.99892003, 0.99942985, 0.49325617,\
++	-6.27332226, -0.00035352, 0.00021656, 7.27296874, 0.99892015, 0.99942992, 0.49325641,\
++	-6.27332235, -0.00035348, 0.00021654, 7.27296887, 0.99892027, 0.99942998, 0.49325636,\
++	-6.27332245, -0.00035344, 0.00021651, 7.27296901, 0.99892040, 0.99943005, 0.49325630,\
++	-6.27332255, -0.00035340, 0.00021649, 7.27296915, 0.99892052, 0.99943011, 0.49325637,\
++	-6.27332264, -0.00035336, 0.00021646, 7.27296928, 0.99892064, 0.99943018, 0.49325631,\
++	-6.27332274, -0.00035332, 0.00021644, 7.27296942, 0.99892077, 0.99943024, 0.49325656,\
++	-6.27332284, -0.00035328, 0.00021641, 7.27296956, 0.99892089, 0.99943031, 0.49325631,\
++	-6.27332293, -0.00035324, 0.00021639, 7.27296970, 0.99892101, 0.99943037, 0.49325638,\
++	-6.27332303, -0.00035320, 0.00021636, 7.27296983, 0.99892114, 0.99943044, 0.49325647,\
++	-6.27332313, -0.00035316, 0.00021634, 7.27296997, 0.99892126, 0.99943050, 0.49325639,\
++	-6.27332322, -0.00035312, 0.00021631, 7.27297011, 0.99892138, 0.99943057, 0.49325638,\
++	-6.27332332, -0.00035308, 0.00021629, 7.27297024, 0.99892150, 0.99943063, 0.49325638,\
++	-6.27332341, -0.00035304, 0.00021626, 7.27297038, 0.99892163, 0.99943070, 0.49325643,\
++	-6.27332351, -0.00035300, 0.00021624, 7.27297052, 0.99892175, 0.99943076, 0.49325659,\
++	-6.27332361, -0.00035296, 0.00021622, 7.27297065, 0.99892187, 0.99943083, 0.49325672,\
++	-6.27332370, -0.00035291, 0.00021619, 7.27297079, 0.99892200, 0.99943089, 0.49325654,\
++	-6.27332380, -0.00035287, 0.00021617, 7.27297093, 0.99892212, 0.99943096, 0.49325642,\
++	-6.27332390, -0.00035283, 0.00021614, 7.27297106, 0.99892224, 0.99943102, 0.49325660,\
++	-6.27332399, -0.00035279, 0.00021612, 7.27297120, 0.99892237, 0.99943109, 0.49325667,\
++	-6.27332409, -0.00035275, 0.00021609, 7.27297133, 0.99892249, 0.99943115, 0.49325649,\
++	-6.27332418, -0.00035271, 0.00021607, 7.27297147, 0.99892261, 0.99943122, 0.49325655,\
++	-6.27332428, -0.00035267, 0.00021604, 7.27297161, 0.99892273, 0.99943128, 0.49325662,\
++	-6.27332438, -0.00035263, 0.00021602, 7.27297174, 0.99892286, 0.99943135, 0.49325664,\
++	-6.27332447, -0.00035259, 0.00021599, 7.27297188, 0.99892298, 0.99943141, 0.49325657,\
++	-6.27332457, -0.00035255, 0.00021597, 7.27297202, 0.99892310, 0.99943148, 0.49325670,\
++	-6.27332467, -0.00035251, 0.00021594, 7.27297215, 0.99892322, 0.99943154, 0.49325664,\
++	-6.27332476, -0.00035247, 0.00021592, 7.27297229, 0.99892335, 0.99943161, 0.49325680,\
++	-6.27332486, -0.00035243, 0.00021590, 7.27297243, 0.99892347, 0.99943167, 0.49325677,\
++	-6.27332495, -0.00035239, 0.00021587, 7.27297256, 0.99892359, 0.99943174, 0.49325674,\
++	-6.27332505, -0.00035235, 0.00021585, 7.27297270, 0.99892371, 0.99943180, 0.49325673,\
++	-6.27332515, -0.00035231, 0.00021582, 7.27297283, 0.99892384, 0.99943187, 0.49325687,\
++	-6.27332524, -0.00035227, 0.00021580, 7.27297297, 0.99892396, 0.99943193, 0.49325676,\
++	-6.27332534, -0.00035223, 0.00021577, 7.27297311, 0.99892408, 0.99943200, 0.49325694,\
++	-6.27332543, -0.00035219, 0.00021575, 7.27297324, 0.99892420, 0.99943206, 0.49325684,\
++	-6.27332553, -0.00035215, 0.00021572, 7.27297338, 0.99892433, 0.99943212, 0.49325673,\
++	-6.27332563, -0.00035211, 0.00021570, 7.27297351, 0.99892445, 0.99943219, 0.49325679,\
++	-6.27332572, -0.00035207, 0.00021567, 7.27297365, 0.99892457, 0.99943225, 0.49325687,\
++	-6.27332582, -0.00035203, 0.00021565, 7.27297379, 0.99892469, 0.99943232, 0.49325682,\
++	-6.27332591, -0.00035199, 0.00021563, 7.27297392, 0.99892482, 0.99943238, 0.49325693,\
++	-6.27332601, -0.00035195, 0.00021560, 7.27297406, 0.99892494, 0.99943245, 0.49325706,\
++	-6.27332611, -0.00035191, 0.00021558, 7.27297419, 0.99892506, 0.99943251, 0.49325679,\
++	-6.27332620, -0.00035187, 0.00021555, 7.27297433, 0.99892518, 0.99943258, 0.49325693,\
++	-6.27332630, -0.00035183, 0.00021553, 7.27297446, 0.99892531, 0.99943264, 0.49325690,\
++	-6.27332639, -0.00035179, 0.00021550, 7.27297460, 0.99892543, 0.99943271, 0.49325679,\
++	-6.27332649, -0.00035175, 0.00021548, 7.27297474, 0.99892555, 0.99943277, 0.49325703,\
++	-6.27332658, -0.00035171, 0.00021545, 7.27297487, 0.99892567, 0.99943283, 0.49325709,\
++	-6.27332668, -0.00035167, 0.00021543, 7.27297501, 0.99892579, 0.99943290, 0.49325716,\
++	-6.27332678, -0.00035163, 0.00021540, 7.27297514, 0.99892592, 0.99943296, 0.49325688,\
++	-6.27332687, -0.00035159, 0.00021538, 7.27297528, 0.99892604, 0.99943303, 0.49325701,\
++	-6.27332697, -0.00035155, 0.00021536, 7.27297541, 0.99892616, 0.99943309, 0.49325699,\
++	-6.27332706, -0.00035151, 0.00021533, 7.27297555, 0.99892628, 0.99943316, 0.49325716,\
++	-6.27332716, -0.00035147, 0.00021531, 7.27297569, 0.99892640, 0.99943322, 0.49325705,\
++	-6.27332725, -0.00035143, 0.00021528, 7.27297582, 0.99892653, 0.99943329, 0.49325714,\
++	-6.27332735, -0.00035139, 0.00021526, 7.27297596, 0.99892665, 0.99943335, 0.49325697,\
++	-6.27332744, -0.00035135, 0.00021523, 7.27297609, 0.99892677, 0.99943341, 0.49325706,\
++	-6.27332754, -0.00035131, 0.00021521, 7.27297623, 0.99892689, 0.99943348, 0.49325710,\
++	-6.27332763, -0.00035127, 0.00021518, 7.27297636, 0.99892701, 0.99943354, 0.49325718,\
++	-6.27332773, -0.00035123, 0.00021516, 7.27297650, 0.99892714, 0.99943361, 0.49325714,\
++	-6.27332783, -0.00035119, 0.00021514, 7.27297663, 0.99892726, 0.99943367, 0.49325704,\
++	-6.27332792, -0.00035115, 0.00021511, 7.27297677, 0.99892738, 0.99943374, 0.49325724,\
++	-6.27332802, -0.00035111, 0.00021509, 7.27297690, 0.99892750, 0.99943380, 0.49325727,\
++	-6.27332811, -0.00035107, 0.00021506, 7.27297704, 0.99892762, 0.99943386, 0.49325718,\
++	-6.27332821, -0.00035103, 0.00021504, 7.27297717, 0.99892774, 0.99943393, 0.49325715,\
++	-6.27332830, -0.00035099, 0.00021501, 7.27297731, 0.99892787, 0.99943399, 0.49325736,\
++	-6.27332840, -0.00035095, 0.00021499, 7.27297744, 0.99892799, 0.99943406, 0.49325725,\
++	-6.27332849, -0.00035091, 0.00021496, 7.27297758, 0.99892811, 0.99943412, 0.49325737,\
++	-6.27332859, -0.00035087, 0.00021494, 7.27297771, 0.99892823, 0.99943418, 0.49325733,\
++	-6.27332868, -0.00035084, 0.00021492, 7.27297785, 0.99892835, 0.99943425, 0.49325727,\
++	-6.27332878, -0.00035080, 0.00021489, 7.27297798, 0.99892847, 0.99943431, 0.49325722,\
++	-6.27332887, -0.00035076, 0.00021487, 7.27297812, 0.99892859, 0.99943438, 0.49325726,\
++	-6.27332897, -0.00035072, 0.00021484, 7.27297825, 0.99892872, 0.99943444, 0.49325746,\
++	-6.27332906, -0.00035068, 0.00021482, 7.27297839, 0.99892884, 0.99943451, 0.49325735,\
++	-6.27332916, -0.00035064, 0.00021479, 7.27297852, 0.99892896, 0.99943457, 0.49325729,\
++	-6.27332925, -0.00035060, 0.00021477, 7.27297866, 0.99892908, 0.99943463, 0.49325733,\
++	-6.27332935, -0.00035056, 0.00021475, 7.27297879, 0.99892920, 0.99943470, 0.49325743,\
++	-6.27332944, -0.00035052, 0.00021472, 7.27297893, 0.99892932, 0.99943476, 0.49325745,\
++	-6.27332954, -0.00035048, 0.00021470, 7.27297906, 0.99892944, 0.99943483, 0.49325763,\
++	-6.27332963, -0.00035044, 0.00021467, 7.27297920, 0.99892956, 0.99943489, 0.49325734,\
++	-6.27332973, -0.00035040, 0.00021465, 7.27297933, 0.99892969, 0.99943495, 0.49325743,\
++	-6.27332982, -0.00035036, 0.00021462, 7.27297947, 0.99892981, 0.99943502, 0.49325746,\
++	-6.27332992, -0.00035032, 0.00021460, 7.27297960, 0.99892993, 0.99943508, 0.49325750,\
++	-6.27333001, -0.00035028, 0.00021458, 7.27297973, 0.99893005, 0.99943515, 0.49325754,\
++	-6.27333011, -0.00035024, 0.00021455, 7.27297987, 0.99893017, 0.99943521, 0.49325751,\
++	-6.27333020, -0.00035020, 0.00021453, 7.27298000, 0.99893029, 0.99943527, 0.49325761,\
++	-6.27333030, -0.00035016, 0.00021450, 7.27298014, 0.99893041, 0.99943534, 0.49325752,\
++	-6.27333039, -0.00035012, 0.00021448, 7.27298027, 0.99893053, 0.99943540, 0.49325748,\
++	-6.27333049, -0.00035008, 0.00021445, 7.27298041, 0.99893065, 0.99943546, 0.49325770,\
++	-6.27333058, -0.00035004, 0.00021443, 7.27298054, 0.99893078, 0.99943553, 0.49325749,\
++	-6.27333068, -0.00035000, 0.00021441, 7.27298068, 0.99893090, 0.99943559, 0.49325754,\
++	-6.27333077, -0.00034996, 0.00021438, 7.27298081, 0.99893102, 0.99943566, 0.49325757,\
++	-6.27333087, -0.00034992, 0.00021436, 7.27298094, 0.99893114, 0.99943572, 0.49325772,\
++	-6.27333096, -0.00034988, 0.00021433, 7.27298108, 0.99893126, 0.99943578, 0.49325749,\
++	-6.27333106, -0.00034984, 0.00021431, 7.27298121, 0.99893138, 0.99943585, 0.49325746,\
++	-6.27333115, -0.00034980, 0.00021428, 7.27298135, 0.99893150, 0.99943591, 0.49325763,\
++	-6.27333125, -0.00034976, 0.00021426, 7.27298148, 0.99893162, 0.99943597, 0.49325780,\
++	-6.27333134, -0.00034973, 0.00021424, 7.27298162, 0.99893174, 0.99943604, 0.49325773,\
++	-6.27333144, -0.00034969, 0.00021421, 7.27298175, 0.99893186, 0.99943610, 0.49325774,\
++	-6.27333153, -0.00034965, 0.00021419, 7.27298188, 0.99893198, 0.99943617, 0.49325768,\
++	-6.27333162, -0.00034961, 0.00021416, 7.27298202, 0.99893210, 0.99943623, 0.49325772,\
++	-6.27333172, -0.00034957, 0.00021414, 7.27298215, 0.99893223, 0.99943629, 0.49325780,\
++	-6.27333181, -0.00034953, 0.00021412, 7.27298229, 0.99893235, 0.99943636, 0.49325790,\
++	-6.27333191, -0.00034949, 0.00021409, 7.27298242, 0.99893247, 0.99943642, 0.49325769,\
++	-6.27333200, -0.00034945, 0.00021407, 7.27298255, 0.99893259, 0.99943648, 0.49325784,\
++	-6.27333210, -0.00034941, 0.00021404, 7.27298269, 0.99893271, 0.99943655, 0.49325781,\
++	-6.27333219, -0.00034937, 0.00021402, 7.27298282, 0.99893283, 0.99943661, 0.49325781,\
++	-6.27333229, -0.00034933, 0.00021399, 7.27298296, 0.99893295, 0.99943668, 0.49325775,\
++	-6.27333238, -0.00034929, 0.00021397, 7.27298309, 0.99893307, 0.99943674, 0.49325777,\
++	-6.27333247, -0.00034925, 0.00021395, 7.27298322, 0.99893319, 0.99943680, 0.49325794,\
++	-6.27333257, -0.00034921, 0.00021392, 7.27298336, 0.99893331, 0.99943687, 0.49325786,\
++	-6.27333266, -0.00034917, 0.00021390, 7.27298349, 0.99893343, 0.99943693, 0.49325783,\
++	-6.27333276, -0.00034913, 0.00021387, 7.27298362, 0.99893355, 0.99943699, 0.49325777,\
++	-6.27333285, -0.00034909, 0.00021385, 7.27298376, 0.99893367, 0.99943706, 0.49325800,\
++	-6.27333295, -0.00034905, 0.00021383, 7.27298389, 0.99893379, 0.99943712, 0.49325788,\
++	-6.27333304, -0.00034902, 0.00021380, 7.27298402, 0.99893391, 0.99943718, 0.49325796,\
++	-6.27333313, -0.00034898, 0.00021378, 7.27298416, 0.99893403, 0.99943725, 0.49325777,\
++	-6.27333323, -0.00034894, 0.00021375, 7.27298429, 0.99893415, 0.99943731, 0.49325803,\
++	-6.27333332, -0.00034890, 0.00021373, 7.27298443, 0.99893427, 0.99943737, 0.49325799,\
++	-6.27333342, -0.00034886, 0.00021370, 7.27298456, 0.99893439, 0.99943744, 0.49325815,\
++	-6.27333351, -0.00034882, 0.00021368, 7.27298469, 0.99893451, 0.99943750, 0.49325810,\
++	-6.27333360, -0.00034878, 0.00021366, 7.27298483, 0.99893463, 0.99943756, 0.49325805,\
++	-6.27333370, -0.00034874, 0.00021363, 7.27298496, 0.99893475, 0.99943763, 0.49325805,\
++	-6.27333379, -0.00034870, 0.00021361, 7.27298509, 0.99893487, 0.99943769, 0.49325810,\
++	-6.27333389, -0.00034866, 0.00021358, 7.27298523, 0.99893499, 0.99943775, 0.49325812,\
++	-6.27333398, -0.00034862, 0.00021356, 7.27298536, 0.99893511, 0.99943782, 0.49325800,\
++	-6.27333408, -0.00034858, 0.00021354, 7.27298549, 0.99893523, 0.99943788, 0.49325798,\
++	-6.27333417, -0.00034854, 0.00021351, 7.27298563, 0.99893535, 0.99943794, 0.49325819,\
++	-6.27333426, -0.00034850, 0.00021349, 7.27298576, 0.99893547, 0.99943801, 0.49325809,\
++	-6.27333436, -0.00034847, 0.00021346, 7.27298589, 0.99893559, 0.99943807, 0.49325811,\
++	-6.27333445, -0.00034843, 0.00021344, 7.27298602, 0.99893571, 0.99943813, 0.49325804,\
++	-6.27333454, -0.00034839, 0.00021342, 7.27298616, 0.99893583, 0.99943820, 0.49325814,\
++	-6.27333464, -0.00034835, 0.00021339, 7.27298629, 0.99893595, 0.99943826, 0.49325817,\
++	-6.27333473, -0.00034831, 0.00021337, 7.27298642, 0.99893607, 0.99943832, 0.49325810,\
++	-6.27333483, -0.00034827, 0.00021334, 7.27298656, 0.99893619, 0.99943839, 0.49325810,\
++	-6.27333492, -0.00034823, 0.00021332, 7.27298669, 0.99893631, 0.99943845, 0.49325813,\
++	-6.27333501, -0.00034819, 0.00021330, 7.27298682, 0.99893643, 0.99943851, 0.49325821,\
++	-6.27333511, -0.00034815, 0.00021327, 7.27298696, 0.99893655, 0.99943858, 0.49325825,\
++	-6.27333520, -0.00034811, 0.00021325, 7.27298709, 0.99893667, 0.99943864, 0.49325802,\
++	-6.27333530, -0.00034807, 0.00021322, 7.27298722, 0.99893679, 0.99943870, 0.49325839,\
++	-6.27333539, -0.00034803, 0.00021320, 7.27298735, 0.99893691, 0.99943877, 0.49325824,\
++	-6.27333548, -0.00034800, 0.00021318, 7.27298749, 0.99893703, 0.99943883, 0.49325827,\
++	-6.27333558, -0.00034796, 0.00021315, 7.27298762, 0.99893715, 0.99943889, 0.49325830,\
++	-6.27333567, -0.00034792, 0.00021313, 7.27298775, 0.99893727, 0.99943895, 0.49325817,\
++	-6.27333576, -0.00034788, 0.00021310, 7.27298789, 0.99893739, 0.99943902, 0.49325841,\
++	-6.27333586, -0.00034784, 0.00021308, 7.27298802, 0.99893751, 0.99943908, 0.49325836,\
++	-6.27333595, -0.00034780, 0.00021306, 7.27298815, 0.99893763, 0.99943914, 0.49325836,\
++	-6.27333604, -0.00034776, 0.00021303, 7.27298828, 0.99893774, 0.99943921, 0.49325838,\
++	-6.27333614, -0.00034772, 0.00021301, 7.27298842, 0.99893786, 0.99943927, 0.49325845,\
++	-6.27333623, -0.00034768, 0.00021298, 7.27298855, 0.99893798, 0.99943933, 0.49325848,\
++	-6.27333632, -0.00034764, 0.00021296, 7.27298868, 0.99893810, 0.99943940, 0.49325833,\
++	-6.27333642, -0.00034760, 0.00021294, 7.27298881, 0.99893822, 0.99943946, 0.49325843,\
++	-6.27333651, -0.00034757, 0.00021291, 7.27298895, 0.99893834, 0.99943952, 0.49325849,\
++	-6.27333661, -0.00034753, 0.00021289, 7.27298908, 0.99893846, 0.99943958, 0.49325841,\
++	-6.27333670, -0.00034749, 0.00021286, 7.27298921, 0.99893858, 0.99943965, 0.49325856,\
++	-6.27333679, -0.00034745, 0.00021284, 7.27298934, 0.99893870, 0.99943971, 0.49325841,\
++	-6.27333689, -0.00034741, 0.00021282, 7.27298948, 0.99893882, 0.99943977, 0.49325845,\
++	-6.27333698, -0.00034737, 0.00021279, 7.27298961, 0.99893894, 0.99943984, 0.49325852,\
++	-6.27333707, -0.00034733, 0.00021277, 7.27298974, 0.99893906, 0.99943990, 0.49325863,\
++	-6.27333717, -0.00034729, 0.00021275, 7.27298987, 0.99893918, 0.99943996, 0.49325866,\
++	-6.27333726, -0.00034725, 0.00021272, 7.27299000, 0.99893929, 0.99944002, 0.49325856,\
++	-6.27333735, -0.00034721, 0.00021270, 7.27299014, 0.99893941, 0.99944009, 0.49325854,\
++	-6.27333745, -0.00034718, 0.00021267, 7.27299027, 0.99893953, 0.99944015, 0.49325858,\
++	-6.27333754, -0.00034714, 0.00021265, 7.27299040, 0.99893965, 0.99944021, 0.49325856,\
++	-6.27333763, -0.00034710, 0.00021263, 7.27299053, 0.99893977, 0.99944028, 0.49325873,\
++	-6.27333772, -0.00034706, 0.00021260, 7.27299067, 0.99893989, 0.99944034, 0.49325877,\
++	-6.27333782, -0.00034702, 0.00021258, 7.27299080, 0.99894001, 0.99944040, 0.49325864,\
++	-6.27333791, -0.00034698, 0.00021255, 7.27299093, 0.99894013, 0.99944046, 0.49325857,\
++	-6.27333800, -0.00034694, 0.00021253, 7.27299106, 0.99894025, 0.99944053, 0.49325852,\
++	-6.27333810, -0.00034690, 0.00021251, 7.27299119, 0.99894036, 0.99944059, 0.49325872,\
++	-6.27333819, -0.00034686, 0.00021248, 7.27299133, 0.99894048, 0.99944065, 0.49325865,\
++	-6.27333828, -0.00034683, 0.00021246, 7.27299146, 0.99894060, 0.99944072, 0.49325884,\
++	-6.27333838, -0.00034679, 0.00021244, 7.27299159, 0.99894072, 0.99944078, 0.49325864,\
++	-6.27333847, -0.00034675, 0.00021241, 7.27299172, 0.99894084, 0.99944084, 0.49325865,\
++	-6.27333856, -0.00034671, 0.00021239, 7.27299185, 0.99894096, 0.99944090, 0.49325871,\
++	-6.27333866, -0.00034667, 0.00021236, 7.27299199, 0.99894108, 0.99944097, 0.49325862,\
++	-6.27333875, -0.00034663, 0.00021234, 7.27299212, 0.99894120, 0.99944103, 0.49325892,\
++	-6.27333884, -0.00034659, 0.00021232, 7.27299225, 0.99894131, 0.99944109, 0.49325886,\
++	-6.27333893, -0.00034655, 0.00021229, 7.27299238, 0.99894143, 0.99944115, 0.49325892,\
++	-6.27333903, -0.00034652, 0.00021227, 7.27299251, 0.99894155, 0.99944122, 0.49325878,\
++	-6.27333912, -0.00034648, 0.00021225, 7.27299264, 0.99894167, 0.99944128, 0.49325893,\
++	-6.27333921, -0.00034644, 0.00021222, 7.27299278, 0.99894179, 0.99944134, 0.49325882,\
++	-6.27333931, -0.00034640, 0.00021220, 7.27299291, 0.99894191, 0.99944140, 0.49325880,\
++	-6.27333940, -0.00034636, 0.00021217, 7.27299304, 0.99894202, 0.99944147, 0.49325884,\
++	-6.27333949, -0.00034632, 0.00021215, 7.27299317, 0.99894214, 0.99944153, 0.49325871,\
++	-6.27333958, -0.00034628, 0.00021213, 7.27299330, 0.99894226, 0.99944159, 0.49325888,\
++	-6.27333968, -0.00034624, 0.00021210, 7.27299343, 0.99894238, 0.99944165, 0.49325907,\
++	-6.27333977, -0.00034620, 0.00021208, 7.27299356, 0.99894250, 0.99944172, 0.49325884,\
++	-6.27333986, -0.00034617, 0.00021206, 7.27299370, 0.99894262, 0.99944178, 0.49325906,\
++	-6.27333995, -0.00034613, 0.00021203, 7.27299383, 0.99894273, 0.99944184, 0.49325903,\
++	-6.27334005, -0.00034609, 0.00021201, 7.27299396, 0.99894285, 0.99944190, 0.49325895,\
++	-6.27334014, -0.00034605, 0.00021198, 7.27299409, 0.99894297, 0.99944197, 0.49325883,\
++	-6.27334023, -0.00034601, 0.00021196, 7.27299422, 0.99894309, 0.99944203, 0.49325893,\
++	-6.27334033, -0.00034597, 0.00021194, 7.27299435, 0.99894321, 0.99944209, 0.49325903,\
++	-6.27334042, -0.00034593, 0.00021191, 7.27299448, 0.99894333, 0.99944215, 0.49325919,\
++	-6.27334051, -0.00034590, 0.00021189, 7.27299461, 0.99894344, 0.99944222, 0.49325911,\
++	-6.27334060, -0.00034586, 0.00021187, 7.27299475, 0.99894356, 0.99944228, 0.49325916,\
++	-6.27334070, -0.00034582, 0.00021184, 7.27299488, 0.99894368, 0.99944234, 0.49325910,\
++	-6.27334079, -0.00034578, 0.00021182, 7.27299501, 0.99894380, 0.99944240, 0.49325905,\
++	-6.27334088, -0.00034574, 0.00021179, 7.27299514, 0.99894392, 0.99944246, 0.49325907,\
++	-6.27334097, -0.00034570, 0.00021177, 7.27299527, 0.99894403, 0.99944253, 0.49325918,\
++	-6.27334107, -0.00034566, 0.00021175, 7.27299540, 0.99894415, 0.99944259, 0.49325910,\
++	-6.27334116, -0.00034563, 0.00021172, 7.27299553, 0.99894427, 0.99944265, 0.49325909,\
++	-6.27334125, -0.00034559, 0.00021170, 7.27299566, 0.99894439, 0.99944271, 0.49325903,\
++	-6.27334134, -0.00034555, 0.00021168, 7.27299579, 0.99894451, 0.99944278, 0.49325934,\
++	-6.27334143, -0.00034551, 0.00021165, 7.27299593, 0.99894462, 0.99944284, 0.49325921,\
++	-6.27334153, -0.00034547, 0.00021163, 7.27299606, 0.99894474, 0.99944290, 0.49325916,\
++	-6.27334162, -0.00034543, 0.00021161, 7.27299619, 0.99894486, 0.99944296, 0.49325905,\
++	-6.27334171, -0.00034539, 0.00021158, 7.27299632, 0.99894498, 0.99944302, 0.49325932,\
++	-6.27334180, -0.00034536, 0.00021156, 7.27299645, 0.99894509, 0.99944309, 0.49325918,\
++	-6.27334190, -0.00034532, 0.00021153, 7.27299658, 0.99894521, 0.99944315, 0.49325928,\
++	-6.27334199, -0.00034528, 0.00021151, 7.27299671, 0.99894533, 0.99944321, 0.49325927,\
++	-6.27334208, -0.00034524, 0.00021149, 7.27299684, 0.99894545, 0.99944327, 0.49325910,\
++	-6.27334217, -0.00034520, 0.00021146, 7.27299697, 0.99894557, 0.99944334, 0.49325933,\
++	-6.27334226, -0.00034516, 0.00021144, 7.27299710, 0.99894568, 0.99944340, 0.49325931,\
++	-6.27334236, -0.00034512, 0.00021142, 7.27299723, 0.99894580, 0.99944346, 0.49325913,\
++	-6.27334245, -0.00034509, 0.00021139, 7.27299736, 0.99894592, 0.99944352, 0.49325935,\
++	-6.27334254, -0.00034505, 0.00021137, 7.27299749, 0.99894604, 0.99944358, 0.49325926,\
++	-6.27334263, -0.00034501, 0.00021135, 7.27299762, 0.99894615, 0.99944365, 0.49325931,\
++	-6.27334273, -0.00034497, 0.00021132, 7.27299776, 0.99894627, 0.99944371, 0.49325923,\
++	-6.27334282, -0.00034493, 0.00021130, 7.27299789, 0.99894639, 0.99944377, 0.49325932,\
++	-6.27334291, -0.00034489, 0.00021128, 7.27299802, 0.99894651, 0.99944383, 0.49325937,\
++	-6.27334300, -0.00034486, 0.00021125, 7.27299815, 0.99894662, 0.99944389, 0.49325925,\
++	-6.27334309, -0.00034482, 0.00021123, 7.27299828, 0.99894674, 0.99944396, 0.49325938,\
++	-6.27334319, -0.00034478, 0.00021120, 7.27299841, 0.99894686, 0.99944402, 0.49325937,\
++	-6.27334328, -0.00034474, 0.00021118, 7.27299854, 0.99894697, 0.99944408, 0.49325933,\
++	-6.27334337, -0.00034470, 0.00021116, 7.27299867, 0.99894709, 0.99944414, 0.49325964,\
++	-6.27334346, -0.00034466, 0.00021113, 7.27299880, 0.99894721, 0.99944420, 0.49325932,\
++	-6.27334355, -0.00034462, 0.00021111, 7.27299893, 0.99894733, 0.99944426, 0.49325939,\
++	-6.27334364, -0.00034459, 0.00021109, 7.27299906, 0.99894744, 0.99944433, 0.49325953,\
++	-6.27334374, -0.00034455, 0.00021106, 7.27299919, 0.99894756, 0.99944439, 0.49325955,\
++	-6.27334383, -0.00034451, 0.00021104, 7.27299932, 0.99894768, 0.99944445, 0.49325952,\
++	-6.27334392, -0.00034447, 0.00021102, 7.27299945, 0.99894780, 0.99944451, 0.49325957,\
++	-6.27334401, -0.00034443, 0.00021099, 7.27299958, 0.99894791, 0.99944457, 0.49325952,\
++	-6.27334410, -0.00034439, 0.00021097, 7.27299971, 0.99894803, 0.99944464, 0.49325948,\
++	-6.27334420, -0.00034436, 0.00021095, 7.27299984, 0.99894815, 0.99944470, 0.49325953,\
++	-6.27334429, -0.00034432, 0.00021092, 7.27299997, 0.99894826, 0.99944476, 0.49325969,\
++	-6.27334438, -0.00034428, 0.00021090, 7.27300010, 0.99894838, 0.99944482, 0.49325951,\
++	-6.27334447, -0.00034424, 0.00021088, 7.27300023, 0.99894850, 0.99944488, 0.49325964,\
++	-6.27334456, -0.00034420, 0.00021085, 7.27300036, 0.99894861, 0.99944494, 0.49325959,\
++	-6.27334465, -0.00034417, 0.00021083, 7.27300049, 0.99894873, 0.99944501, 0.49325984,\
++	-6.27334475, -0.00034413, 0.00021081, 7.27300062, 0.99894885, 0.99944507, 0.49325961,\
++	-6.27334484, -0.00034409, 0.00021078, 7.27300075, 0.99894897, 0.99944513, 0.49325970,\
++	-6.27334493, -0.00034405, 0.00021076, 7.27300088, 0.99894908, 0.99944519, 0.49325973,\
++	-6.27334502, -0.00034401, 0.00021073, 7.27300101, 0.99894920, 0.99944525, 0.49325965,\
++	-6.27334511, -0.00034397, 0.00021071, 7.27300114, 0.99894932, 0.99944531, 0.49325961,\
++	-6.27334520, -0.00034394, 0.00021069, 7.27300127, 0.99894943, 0.99944538, 0.49325970,\
++	-6.27334529, -0.00034390, 0.00021066, 7.27300140, 0.99894955, 0.99944544, 0.49325947,\
++	-6.27334539, -0.00034386, 0.00021064, 7.27300153, 0.99894967, 0.99944550, 0.49325970,\
++	-6.27334548, -0.00034382, 0.00021062, 7.27300166, 0.99894978, 0.99944556, 0.49325986,\
++	-6.27334557, -0.00034378, 0.00021059, 7.27300179, 0.99894990, 0.99944562, 0.49325975,\
++	-6.27334566, -0.00034374, 0.00021057, 7.27300192, 0.99895002, 0.99944568, 0.49325973,\
++	-6.27334575, -0.00034371, 0.00021055, 7.27300205, 0.99895013, 0.99944575, 0.49325990,\
++	-6.27334584, -0.00034367, 0.00021052, 7.27300217, 0.99895025, 0.99944581, 0.49325987,\
++	-6.27334593, -0.00034363, 0.00021050, 7.27300230, 0.99895037, 0.99944587, 0.49325975,\
++	-6.27334603, -0.00034359, 0.00021048, 7.27300243, 0.99895048, 0.99944593, 0.49325986,\
++	-6.27334612, -0.00034355, 0.00021045, 7.27300256, 0.99895060, 0.99944599, 0.49325980,\
++	-6.27334621, -0.00034352, 0.00021043, 7.27300269, 0.99895072, 0.99944605, 0.49325999,\
++	-6.27334630, -0.00034348, 0.00021041, 7.27300282, 0.99895083, 0.99944611, 0.49326005,\
++	-6.27334639, -0.00034344, 0.00021038, 7.27300295, 0.99895095, 0.99944618, 0.49325989,\
++	-6.27334648, -0.00034340, 0.00021036, 7.27300308, 0.99895106, 0.99944624, 0.49325982,\
++	-6.27334657, -0.00034336, 0.00021034, 7.27300321, 0.99895118, 0.99944630, 0.49326004,\
++	-6.27334666, -0.00034333, 0.00021031, 7.27300334, 0.99895130, 0.99944636, 0.49325987,\
++	-6.27334676, -0.00034329, 0.00021029, 7.27300347, 0.99895141, 0.99944642, 0.49326003,\
++	-6.27334685, -0.00034325, 0.00021027, 7.27300360, 0.99895153, 0.99944648, 0.49325986,\
++	-6.27334694, -0.00034321, 0.00021024, 7.27300373, 0.99895165, 0.99944654, 0.49326013,\
++	-6.27334703, -0.00034317, 0.00021022, 7.27300386, 0.99895176, 0.99944661, 0.49326001,\
++	-6.27334712, -0.00034313, 0.00021020, 7.27300399, 0.99895188, 0.99944667, 0.49325997,\
++	-6.27334721, -0.00034310, 0.00021017, 7.27300411, 0.99895199, 0.99944673, 0.49325982,\
++	-6.27334730, -0.00034306, 0.00021015, 7.27300424, 0.99895211, 0.99944679, 0.49326004,\
++	-6.27334739, -0.00034302, 0.00021013, 7.27300437, 0.99895223, 0.99944685, 0.49326000,\
++	-6.27334748, -0.00034298, 0.00021010, 7.27300450, 0.99895234, 0.99944691, 0.49326002,\
++	-6.27334758, -0.00034294, 0.00021008, 7.27300463, 0.99895246, 0.99944697, 0.49326019,\
++	-6.27334767, -0.00034291, 0.00021006, 7.27300476, 0.99895258, 0.99944704, 0.49326022,\
++	-6.27334776, -0.00034287, 0.00021003, 7.27300489, 0.99895269, 0.99944710, 0.49325991,\
++	-6.27334785, -0.00034283, 0.00021001, 7.27300502, 0.99895281, 0.99944716, 0.49326017,\
++	-6.27334794, -0.00034279, 0.00020999, 7.27300515, 0.99895292, 0.99944722, 0.49326012,\
++	-6.27334803, -0.00034276, 0.00020996, 7.27300527, 0.99895304, 0.99944728, 0.49326022,\
++	-6.27334812, -0.00034272, 0.00020994, 7.27300540, 0.99895316, 0.99944734, 0.49326001,\
++	-6.27334821, -0.00034268, 0.00020992, 7.27300553, 0.99895327, 0.99944740, 0.49326024,\
++	-6.27334830, -0.00034264, 0.00020989, 7.27300566, 0.99895339, 0.99944746, 0.49326021,\
++	-6.27334839, -0.00034260, 0.00020987, 7.27300579, 0.99895350, 0.99944753, 0.49326029,\
++	-6.27334848, -0.00034257, 0.00020985, 7.27300592, 0.99895362, 0.99944759, 0.49326016,\
++	-6.27334857, -0.00034253, 0.00020983, 7.27300605, 0.99895373, 0.99944765, 0.49326016,\
++	-6.27334867, -0.00034249, 0.00020980, 7.27300618, 0.99895385, 0.99944771, 0.49326045,\
++	-6.27334876, -0.00034245, 0.00020978, 7.27300630, 0.99895397, 0.99944777, 0.49326011,\
++	-6.27334885, -0.00034241, 0.00020976, 7.27300643, 0.99895408, 0.99944783, 0.49326023,\
++	-6.27334894, -0.00034238, 0.00020973, 7.27300656, 0.99895420, 0.99944789, 0.49326007,\
++	-6.27334903, -0.00034234, 0.00020971, 7.27300669, 0.99895431, 0.99944795, 0.49326021,\
++	-6.27334912, -0.00034230, 0.00020969, 7.27300682, 0.99895443, 0.99944801, 0.49326027,\
++	-6.27334921, -0.00034226, 0.00020966, 7.27300695, 0.99895454, 0.99944807, 0.49326040,\
++	-6.27334930, -0.00034222, 0.00020964, 7.27300708, 0.99895466, 0.99944814, 0.49326032,\
++	-6.27334939, -0.00034219, 0.00020962, 7.27300720, 0.99895478, 0.99944820, 0.49326028,\
++	-6.27334948, -0.00034215, 0.00020959, 7.27300733, 0.99895489, 0.99944826, 0.49326022,\
++	-6.27334957, -0.00034211, 0.00020957, 7.27300746, 0.99895501, 0.99944832, 0.49326044,\
++	-6.27334966, -0.00034207, 0.00020955, 7.27300759, 0.99895512, 0.99944838, 0.49326036,\
++	-6.27334975, -0.00034204, 0.00020952, 7.27300772, 0.99895524, 0.99944844, 0.49326052,\
++	-6.27334984, -0.00034200, 0.00020950, 7.27300785, 0.99895535, 0.99944850, 0.49326050,\
++	-6.27334993, -0.00034196, 0.00020948, 7.27300797, 0.99895547, 0.99944856, 0.49326047,\
++	-6.27335002, -0.00034192, 0.00020945, 7.27300810, 0.99895558, 0.99944862, 0.49326049,\
++	-6.27335011, -0.00034188, 0.00020943, 7.27300823, 0.99895570, 0.99944868, 0.49326038,\
++	-6.27335021, -0.00034185, 0.00020941, 7.27300836, 0.99895582, 0.99944875, 0.49326054,\
++	-6.27335030, -0.00034181, 0.00020938, 7.27300849, 0.99895593, 0.99944881, 0.49326041,\
++	-6.27335039, -0.00034177, 0.00020936, 7.27300861, 0.99895605, 0.99944887, 0.49326059,\
++	-6.27335048, -0.00034173, 0.00020934, 7.27300874, 0.99895616, 0.99944893, 0.49326058,\
++	-6.27335057, -0.00034170, 0.00020932, 7.27300887, 0.99895628, 0.99944899, 0.49326043,\
++	-6.27335066, -0.00034166, 0.00020929, 7.27300900, 0.99895639, 0.99944905, 0.49326062,\
++	-6.27335075, -0.00034162, 0.00020927, 7.27300913, 0.99895651, 0.99944911, 0.49326067,\
++	-6.27335084, -0.00034158, 0.00020925, 7.27300925, 0.99895662, 0.99944917, 0.49326078,\
++	-6.27335093, -0.00034154, 0.00020922, 7.27300938, 0.99895674, 0.99944923, 0.49326065,\
++	-6.27335102, -0.00034151, 0.00020920, 7.27300951, 0.99895685, 0.99944929, 0.49326059,\
++	-6.27335111, -0.00034147, 0.00020918, 7.27300964, 0.99895697, 0.99944935, 0.49326055,\
++	-6.27335120, -0.00034143, 0.00020915, 7.27300977, 0.99895708, 0.99944941, 0.49326066,\
++	-6.27335129, -0.00034139, 0.00020913, 7.27300989, 0.99895720, 0.99944948, 0.49326077,\
++	-6.27335138, -0.00034136, 0.00020911, 7.27301002, 0.99895731, 0.99944954, 0.49326066,\
++	-6.27335147, -0.00034132, 0.00020908, 7.27301015, 0.99895743, 0.99944960, 0.49326075,\
++	-6.27335156, -0.00034128, 0.00020906, 7.27301028, 0.99895754, 0.99944966, 0.49326055,\
++	-6.27335165, -0.00034124, 0.00020904, 7.27301040, 0.99895766, 0.99944972, 0.49326086,\
++	-6.27335174, -0.00034121, 0.00020902, 7.27301053, 0.99895777, 0.99944978, 0.49326055,\
++	-6.27335183, -0.00034117, 0.00020899, 7.27301066, 0.99895789, 0.99944984, 0.49326069,\
++	-6.27335192, -0.00034113, 0.00020897, 7.27301079, 0.99895800, 0.99944990, 0.49326076,\
++	-6.27335201, -0.00034109, 0.00020895, 7.27301092, 0.99895812, 0.99944996, 0.49326064,\
++	-6.27335210, -0.00034106, 0.00020892, 7.27301104, 0.99895823, 0.99945002, 0.49326064,\
++	-6.27335219, -0.00034102, 0.00020890, 7.27301117, 0.99895835, 0.99945008, 0.49326079,\
++	-6.27335228, -0.00034098, 0.00020888, 7.27301130, 0.99895846, 0.99945014, 0.49326094,\
++	-6.27335237, -0.00034094, 0.00020885, 7.27301143, 0.99895858, 0.99945020, 0.49326073,\
++	-6.27335246, -0.00034091, 0.00020883, 7.27301155, 0.99895869, 0.99945026, 0.49326067,\
++	-6.27335255, -0.00034087, 0.00020881, 7.27301168, 0.99895881, 0.99945032, 0.49326096,\
++	-6.27335264, -0.00034083, 0.00020878, 7.27301181, 0.99895892, 0.99945038, 0.49326074,\
++	-6.27335273, -0.00034079, 0.00020876, 7.27301194, 0.99895903, 0.99945045, 0.49326072,\
++	-6.27335282, -0.00034076, 0.00020874, 7.27301206, 0.99895915, 0.99945051, 0.49326097,\
++	-6.27335291, -0.00034072, 0.00020872, 7.27301219, 0.99895926, 0.99945057, 0.49326095,\
++	-6.27335300, -0.00034068, 0.00020869, 7.27301232, 0.99895938, 0.99945063, 0.49326083,\
++	-6.27335309, -0.00034064, 0.00020867, 7.27301244, 0.99895949, 0.99945069, 0.49326094,\
++	-6.27335318, -0.00034061, 0.00020865, 7.27301257, 0.99895961, 0.99945075, 0.49326071,\
++	-6.27335327, -0.00034057, 0.00020862, 7.27301270, 0.99895972, 0.99945081, 0.49326094,\
++	-6.27335336, -0.00034053, 0.00020860, 7.27301283, 0.99895984, 0.99945087, 0.49326119,\
++	-6.27335345, -0.00034049, 0.00020858, 7.27301295, 0.99895995, 0.99945093, 0.49326102,\
++	-6.27335354, -0.00034046, 0.00020856, 7.27301308, 0.99896007, 0.99945099, 0.49326095,\
++	-6.27335363, -0.00034042, 0.00020853, 7.27301321, 0.99896018, 0.99945105, 0.49326111,\
++	-6.27335372, -0.00034038, 0.00020851, 7.27301333, 0.99896029, 0.99945111, 0.49326093,\
++	-6.27335380, -0.00034034, 0.00020849, 7.27301346, 0.99896041, 0.99945117, 0.49326092,\
++	-6.27335389, -0.00034031, 0.00020846, 7.27301359, 0.99896052, 0.99945123, 0.49326086,\
++	-6.27335398, -0.00034027, 0.00020844, 7.27301372, 0.99896064, 0.99945129, 0.49326111,\
++	-6.27335407, -0.00034023, 0.00020842, 7.27301384, 0.99896075, 0.99945135, 0.49326085,\
++	-6.27335416, -0.00034019, 0.00020839, 7.27301397, 0.99896087, 0.99945141, 0.49326107,\
++	-6.27335425, -0.00034016, 0.00020837, 7.27301410, 0.99896098, 0.99945147, 0.49326138,\
++	-6.27335434, -0.00034012, 0.00020835, 7.27301422, 0.99896109, 0.99945153, 0.49326107,\
++	-6.27335443, -0.00034008, 0.00020833, 7.27301435, 0.99896121, 0.99945159, 0.49326110,\
++	-6.27335452, -0.00034004, 0.00020830, 7.27301448, 0.99896132, 0.99945165, 0.49326107,\
++	-6.27335461, -0.00034001, 0.00020828, 7.27301460, 0.99896144, 0.99945171, 0.49326111,\
++	-6.27335470, -0.00033997, 0.00020826, 7.27301473, 0.99896155, 0.99945177, 0.49326094,\
++	-6.27335479, -0.00033993, 0.00020823, 7.27301486, 0.99896166, 0.99945183, 0.49326116,\
++	-6.27335488, -0.00033989, 0.00020821, 7.27301498, 0.99896178, 0.99945189, 0.49326119,\
++	-6.27335497, -0.00033986, 0.00020819, 7.27301511, 0.99896189, 0.99945195, 0.49326130,\
++	-6.27335506, -0.00033982, 0.00020817, 7.27301524, 0.99896201, 0.99945201, 0.49326119,\
++	-6.27335515, -0.00033978, 0.00020814, 7.27301536, 0.99896212, 0.99945207, 0.49326105,\
++	-6.27335524, -0.00033975, 0.00020812, 7.27301549, 0.99896223, 0.99945213, 0.49326119,\
++	-6.27335533, -0.00033971, 0.00020810, 7.27301562, 0.99896235, 0.99945219, 0.49326118,\
++	-6.27335541, -0.00033967, 0.00020807, 7.27301574, 0.99896246, 0.99945225, 0.49326126,\
++	-6.27335550, -0.00033963, 0.00020805, 7.27301587, 0.99896258, 0.99945231, 0.49326104,\
++	-6.27335559, -0.00033960, 0.00020803, 7.27301600, 0.99896269, 0.99945237, 0.49326124,\
++	-6.27335568, -0.00033956, 0.00020801, 7.27301612, 0.99896280, 0.99945243, 0.49326121,\
++	-6.27335577, -0.00033952, 0.00020798, 7.27301625, 0.99896292, 0.99945249, 0.49326126,\
++	-6.27335586, -0.00033948, 0.00020796, 7.27301638, 0.99896303, 0.99945255, 0.49326146,\
++	-6.27335595, -0.00033945, 0.00020794, 7.27301650, 0.99896315, 0.99945261, 0.49326123,\
++	-6.27335604, -0.00033941, 0.00020791, 7.27301663, 0.99896326, 0.99945267, 0.49326137,\
++	-6.27335613, -0.00033937, 0.00020789, 7.27301675, 0.99896337, 0.99945274, 0.49326124,\
++	-6.27335622, -0.00033934, 0.00020787, 7.27301688, 0.99896349, 0.99945279, 0.49326144,\
++	-6.27335631, -0.00033930, 0.00020785, 7.27301701, 0.99896360, 0.99945286, 0.49326118,\
++	-6.27335639, -0.00033926, 0.00020782, 7.27301713, 0.99896371, 0.99945291, 0.49326131,\
++	-6.27335648, -0.00033922, 0.00020780, 7.27301726, 0.99896383, 0.99945297, 0.49326131,\
++	-6.27335657, -0.00033919, 0.00020778, 7.27301739, 0.99896394, 0.99945303, 0.49326137,\
++	-6.27335666, -0.00033915, 0.00020776, 7.27301751, 0.99896405, 0.99945309, 0.49326160,\
++	-6.27335675, -0.00033911, 0.00020773, 7.27301764, 0.99896417, 0.99945315, 0.49326160,\
++	-6.27335684, -0.00033908, 0.00020771, 7.27301776, 0.99896428, 0.99945321, 0.49326123,\
++	-6.27335693, -0.00033904, 0.00020769, 7.27301789, 0.99896439, 0.99945327, 0.49326161,\
++	-6.27335702, -0.00033900, 0.00020766, 7.27301802, 0.99896451, 0.99945333, 0.49326152,\
++	-6.27335711, -0.00033896, 0.00020764, 7.27301814, 0.99896462, 0.99945339, 0.49326143,\
++	-6.27335720, -0.00033893, 0.00020762, 7.27301827, 0.99896473, 0.99945345, 0.49326145,\
++	-6.27335728, -0.00033889, 0.00020760, 7.27301839, 0.99896485, 0.99945351, 0.49326173,\
++	-6.27335737, -0.00033885, 0.00020757, 7.27301852, 0.99896496, 0.99945357, 0.49326144,\
++	-6.27335746, -0.00033882, 0.00020755, 7.27301865, 0.99896507, 0.99945363, 0.49326151,\
++	-6.27335755, -0.00033878, 0.00020753, 7.27301877, 0.99896519, 0.99945369, 0.49326137,\
++	-6.27335764, -0.00033874, 0.00020751, 7.27301890, 0.99896530, 0.99945375, 0.49326159,\
++	-6.27335773, -0.00033870, 0.00020748, 7.27301902, 0.99896541, 0.99945381, 0.49326170,\
++	-6.27335782, -0.00033867, 0.00020746, 7.27301915, 0.99896553, 0.99945387, 0.49326167,\
++	-6.27335791, -0.00033863, 0.00020744, 7.27301927, 0.99896564, 0.99945393, 0.49326166,\
++	-6.27335799, -0.00033859, 0.00020741, 7.27301940, 0.99896575, 0.99945399, 0.49326169,\
++	-6.27335808, -0.00033856, 0.00020739, 7.27301953, 0.99896587, 0.99945405, 0.49326162,\
++	-6.27335817, -0.00033852, 0.00020737, 7.27301965, 0.99896598, 0.99945411, 0.49326183,\
++	-6.27335826, -0.00033848, 0.00020735, 7.27301978, 0.99896609, 0.99945417, 0.49326173,\
++	-6.27335835, -0.00033845, 0.00020732, 7.27301990, 0.99896621, 0.99945423, 0.49326171,\
++	-6.27335844, -0.00033841, 0.00020730, 7.27302003, 0.99896632, 0.99945429, 0.49326166,\
++	-6.27335853, -0.00033837, 0.00020728, 7.27302015, 0.99896643, 0.99945435, 0.49326165,\
++	-6.27335861, -0.00033833, 0.00020726, 7.27302028, 0.99896655, 0.99945441, 0.49326181,\
++	-6.27335870, -0.00033830, 0.00020723, 7.27302041, 0.99896666, 0.99945447, 0.49326156,\
++	-6.27335879, -0.00033826, 0.00020721, 7.27302053, 0.99896677, 0.99945453, 0.49326193,\
++	-6.27335888, -0.00033822, 0.00020719, 7.27302066, 0.99896688, 0.99945459, 0.49326181,\
++	-6.27335897, -0.00033819, 0.00020716, 7.27302078, 0.99896700, 0.99945465, 0.49326163,\
++	-6.27335906, -0.00033815, 0.00020714, 7.27302091, 0.99896711, 0.99945471, 0.49326173,\
++	-6.27335915, -0.00033811, 0.00020712, 7.27302103, 0.99896722, 0.99945477, 0.49326188,\
++	-6.27335923, -0.00033808, 0.00020710, 7.27302116, 0.99896734, 0.99945483, 0.49326193,\
++	-6.27335932, -0.00033804, 0.00020707, 7.27302128, 0.99896745, 0.99945489, 0.49326203,\
++	-6.27335941, -0.00033800, 0.00020705, 7.27302141, 0.99896756, 0.99945495, 0.49326181,\
++	-6.27335950, -0.00033797, 0.00020703, 7.27302153, 0.99896767, 0.99945501, 0.49326178,\
++	-6.27335959, -0.00033793, 0.00020701, 7.27302166, 0.99896779, 0.99945507, 0.49326183,\
++	-6.27335968, -0.00033789, 0.00020698, 7.27302178, 0.99896790, 0.99945512, 0.49326183,\
++	-6.27335976, -0.00033785, 0.00020696, 7.27302191, 0.99896801, 0.99945518, 0.49326190,\
++	-6.27335985, -0.00033782, 0.00020694, 7.27302203, 0.99896813, 0.99945524, 0.49326204,\
++	-6.27335994, -0.00033778, 0.00020692, 7.27302216, 0.99896824, 0.99945530, 0.49326197,\
++	-6.27336003, -0.00033774, 0.00020689, 7.27302228, 0.99896835, 0.99945536, 0.49326200,\
++	-6.27336012, -0.00033771, 0.00020687, 7.27302241, 0.99896846, 0.99945542, 0.49326187,\
++	-6.27336021, -0.00033767, 0.00020685, 7.27302253, 0.99896858, 0.99945548, 0.49326214,\
++	-6.27336029, -0.00033763, 0.00020683, 7.27302266, 0.99896869, 0.99945554, 0.49326210,\
++	-6.27336038, -0.00033760, 0.00020680, 7.27302278, 0.99896880, 0.99945560, 0.49326210,\
++	-6.27336047, -0.00033756, 0.00020678, 7.27302291, 0.99896891, 0.99945566, 0.49326201,\
++	-6.27336056, -0.00033752, 0.00020676, 7.27302303, 0.99896903, 0.99945572, 0.49326223,\
++	-6.27336065, -0.00033749, 0.00020674, 7.27302316, 0.99896914, 0.99945578, 0.49326214,\
++	-6.27336073, -0.00033745, 0.00020671, 7.27302328, 0.99896925, 0.99945584, 0.49326184,\
++	-6.27336082, -0.00033741, 0.00020669, 7.27302341, 0.99896936, 0.99945590, 0.49326190,\
++	-6.27336091, -0.00033738, 0.00020667, 7.27302353, 0.99896948, 0.99945596, 0.49326192,\
++	-6.27336100, -0.00033734, 0.00020665, 7.27302366, 0.99896959, 0.99945602, 0.49326215,\
++	-6.27336109, -0.00033730, 0.00020662, 7.27302378, 0.99896970, 0.99945607, 0.49326198,\
++	-6.27336117, -0.00033727, 0.00020660, 7.27302391, 0.99896981, 0.99945613, 0.49326211,\
++	-6.27336126, -0.00033723, 0.00020658, 7.27302403, 0.99896992, 0.99945619, 0.49326202,\
++	-6.27336135, -0.00033719, 0.00020656, 7.27302416, 0.99897004, 0.99945625, 0.49326208,\
++	-6.27336144, -0.00033716, 0.00020653, 7.27302428, 0.99897015, 0.99945631, 0.49326216,\
++	-6.27336153, -0.00033712, 0.00020651, 7.27302441, 0.99897026, 0.99945637, 0.49326199,\
++	-6.27336161, -0.00033708, 0.00020649, 7.27302453, 0.99897037, 0.99945643, 0.49326218,\
++	-6.27336170, -0.00033705, 0.00020647, 7.27302466, 0.99897049, 0.99945649, 0.49326214,\
++	-6.27336179, -0.00033701, 0.00020644, 7.27302478, 0.99897060, 0.99945655, 0.49326240,\
++	-6.27336188, -0.00033697, 0.00020642, 7.27302491, 0.99897071, 0.99945661, 0.49326199,\
++	-6.27336197, -0.00033694, 0.00020640, 7.27302503, 0.99897082, 0.99945667, 0.49326203,\
++	-6.27336205, -0.00033690, 0.00020638, 7.27302515, 0.99897093, 0.99945673, 0.49326224,\
++	-6.27336214, -0.00033686, 0.00020635, 7.27302528, 0.99897105, 0.99945679, 0.49326220,\
++	-6.27336223, -0.00033683, 0.00020633, 7.27302540, 0.99897116, 0.99945684, 0.49326222,\
++	-6.27336232, -0.00033679, 0.00020631, 7.27302553, 0.99897127, 0.99945690, 0.49326242,\
++	-6.27336240, -0.00033675, 0.00020629, 7.27302565, 0.99897138, 0.99945696, 0.49326213,\
++	-6.27336249, -0.00033672, 0.00020626, 7.27302578, 0.99897149, 0.99945702, 0.49326219,\
++	-6.27336258, -0.00033668, 0.00020624, 7.27302590, 0.99897161, 0.99945708, 0.49326219,\
++	-6.27336267, -0.00033664, 0.00020622, 7.27302603, 0.99897172, 0.99945714, 0.49326250,\
++	-6.27336275, -0.00033661, 0.00020620, 7.27302615, 0.99897183, 0.99945720, 0.49326244,\
++	-6.27336284, -0.00033657, 0.00020617, 7.27302627, 0.99897194, 0.99945726, 0.49326221,\
++	-6.27336293, -0.00033653, 0.00020615, 7.27302640, 0.99897205, 0.99945732, 0.49326264,\
++	-6.27336302, -0.00033650, 0.00020613, 7.27302652, 0.99897216, 0.99945738, 0.49326232,\
++	-6.27336311, -0.00033646, 0.00020611, 7.27302665, 0.99897228, 0.99945743, 0.49326230,\
++	-6.27336319, -0.00033642, 0.00020608, 7.27302677, 0.99897239, 0.99945749, 0.49326227,\
++	-6.27336328, -0.00033639, 0.00020606, 7.27302689, 0.99897250, 0.99945755, 0.49326245,\
++	-6.27336337, -0.00033635, 0.00020604, 7.27302702, 0.99897261, 0.99945761, 0.49326242,\
++	-6.27336346, -0.00033631, 0.00020602, 7.27302714, 0.99897272, 0.99945767, 0.49326246,\
++	-6.27336354, -0.00033628, 0.00020599, 7.27302727, 0.99897283, 0.99945773, 0.49326241,\
++	-6.27336363, -0.00033624, 0.00020597, 7.27302739, 0.99897295, 0.99945779, 0.49326240,\
++	-6.27336372, -0.00033620, 0.00020595, 7.27302751, 0.99897306, 0.99945785, 0.49326249,\
++	-6.27336381, -0.00033617, 0.00020593, 7.27302764, 0.99897317, 0.99945791, 0.49326270,\
++	-6.27336389, -0.00033613, 0.00020590, 7.27302776, 0.99897328, 0.99945797, 0.49326235,\
++	-6.27336398, -0.00033609, 0.00020588, 7.27302789, 0.99897339, 0.99945802, 0.49326239,\
++	-6.27336407, -0.00033606, 0.00020586, 7.27302801, 0.99897350, 0.99945808, 0.49326248,\
++	-6.27336415, -0.00033602, 0.00020584, 7.27302813, 0.99897362, 0.99945814, 0.49326264,\
++	-6.27336424, -0.00033598, 0.00020582, 7.27302826, 0.99897373, 0.99945820, 0.49326263,\
++	-6.27336433, -0.00033595, 0.00020579, 7.27302838, 0.99897384, 0.99945826, 0.49326243,\
++	-6.27336442, -0.00033591, 0.00020577, 7.27302851, 0.99897395, 0.99945832, 0.49326267,\
++	-6.27336450, -0.00033587, 0.00020575, 7.27302863, 0.99897406, 0.99945838, 0.49326234,\
++	-6.27336459, -0.00033584, 0.00020573, 7.27302875, 0.99897417, 0.99945844, 0.49326251,\
++	-6.27336468, -0.00033580, 0.00020570, 7.27302888, 0.99897428, 0.99945849, 0.49326259,\
++	-6.27336477, -0.00033577, 0.00020568, 7.27302900, 0.99897439, 0.99945855, 0.49326266,\
++	-6.27336485, -0.00033573, 0.00020566, 7.27302912, 0.99897451, 0.99945861, 0.49326257,\
++	-6.27336494, -0.00033569, 0.00020564, 7.27302925, 0.99897462, 0.99945867, 0.49326257,\
++	-6.27336503, -0.00033566, 0.00020561, 7.27302937, 0.99897473, 0.99945873, 0.49326264,\
++	-6.27336511, -0.00033562, 0.00020559, 7.27302949, 0.99897484, 0.99945879, 0.49326274,\
++	-6.27336520, -0.00033558, 0.00020557, 7.27302962, 0.99897495, 0.99945885, 0.49326286,\
++	-6.27336529, -0.00033555, 0.00020555, 7.27302974, 0.99897506, 0.99945891, 0.49326289,\
++	-6.27336538, -0.00033551, 0.00020553, 7.27302986, 0.99897517, 0.99945896, 0.49326274,\
++	-6.27336546, -0.00033547, 0.00020550, 7.27302999, 0.99897528, 0.99945902, 0.49326267,\
++	-6.27336555, -0.00033544, 0.00020548, 7.27303011, 0.99897540, 0.99945908, 0.49326282,\
++	-6.27336564, -0.00033540, 0.00020546, 7.27303023, 0.99897551, 0.99945914, 0.49326268,\
++	-6.27336572, -0.00033537, 0.00020544, 7.27303036, 0.99897562, 0.99945920, 0.49326305,\
++	-6.27336581, -0.00033533, 0.00020541, 7.27303048, 0.99897573, 0.99945926, 0.49326276,\
++	-6.27336590, -0.00033529, 0.00020539, 7.27303060, 0.99897584, 0.99945932, 0.49326281,\
++	-6.27336598, -0.00033526, 0.00020537, 7.27303073, 0.99897595, 0.99945937, 0.49326294,\
++	-6.27336607, -0.00033522, 0.00020535, 7.27303085, 0.99897606, 0.99945943, 0.49326286,\
++	-6.27336616, -0.00033518, 0.00020532, 7.27303097, 0.99897617, 0.99945949, 0.49326281,\
++	-6.27336625, -0.00033515, 0.00020530, 7.27303110, 0.99897628, 0.99945955, 0.49326286,\
++	-6.27336633, -0.00033511, 0.00020528, 7.27303122, 0.99897639, 0.99945961, 0.49326297,\
++	-6.27336642, -0.00033508, 0.00020526, 7.27303134, 0.99897650, 0.99945967, 0.49326279,\
++	-6.27336651, -0.00033504, 0.00020524, 7.27303147, 0.99897662, 0.99945973, 0.49326311,\
++	-6.27336659, -0.00033500, 0.00020521, 7.27303159, 0.99897673, 0.99945978, 0.49326289,\
++	-6.27336668, -0.00033497, 0.00020519, 7.27303171, 0.99897684, 0.99945984, 0.49326305,\
++	-6.27336677, -0.00033493, 0.00020517, 7.27303184, 0.99897695, 0.99945990, 0.49326297,\
++	-6.27336685, -0.00033489, 0.00020515, 7.27303196, 0.99897706, 0.99945996, 0.49326277,\
++	-6.27336694, -0.00033486, 0.00020512, 7.27303208, 0.99897717, 0.99946002, 0.49326308,\
++	-6.27336703, -0.00033482, 0.00020510, 7.27303221, 0.99897728, 0.99946008, 0.49326289,\
++	-6.27336711, -0.00033479, 0.00020508, 7.27303233, 0.99897739, 0.99946013, 0.49326298,\
++	-6.27336720, -0.00033475, 0.00020506, 7.27303245, 0.99897750, 0.99946019, 0.49326300,\
++	-6.27336729, -0.00033471, 0.00020504, 7.27303257, 0.99897761, 0.99946025, 0.49326304,\
++	-6.27336737, -0.00033468, 0.00020501, 7.27303270, 0.99897772, 0.99946031, 0.49326311,\
++	-6.27336746, -0.00033464, 0.00020499, 7.27303282, 0.99897783, 0.99946037, 0.49326309,\
++	-6.27336755, -0.00033460, 0.00020497, 7.27303294, 0.99897794, 0.99946043, 0.49326303,\
++	-6.27336763, -0.00033457, 0.00020495, 7.27303306, 0.99897805, 0.99946048, 0.49326308,\
++	-6.27336772, -0.00033453, 0.00020493, 7.27303319, 0.99897816, 0.99946054, 0.49326287,\
++	-6.27336781, -0.00033450, 0.00020490, 7.27303331, 0.99897827, 0.99946060, 0.49326314,\
++	-6.27336789, -0.00033446, 0.00020488, 7.27303343, 0.99897839, 0.99946066, 0.49326307,\
++	-6.27336798, -0.00033442, 0.00020486, 7.27303356, 0.99897850, 0.99946072, 0.49326307,\
++	-6.27336807, -0.00033439, 0.00020484, 7.27303368, 0.99897861, 0.99946078, 0.49326322,\
++	-6.27336815, -0.00033435, 0.00020481, 7.27303380, 0.99897872, 0.99946083, 0.49326311,\
++	-6.27336824, -0.00033432, 0.00020479, 7.27303392, 0.99897883, 0.99946089, 0.49326322,\
++	-6.27336833, -0.00033428, 0.00020477, 7.27303405, 0.99897894, 0.99946095, 0.49326339,\
++	-6.27336841, -0.00033424, 0.00020475, 7.27303417, 0.99897905, 0.99946101, 0.49326319,\
++	-6.27336850, -0.00033421, 0.00020473, 7.27303429, 0.99897916, 0.99946107, 0.49326315,\
++	-6.27336858, -0.00033417, 0.00020470, 7.27303441, 0.99897927, 0.99946113, 0.49326326,\
++	-6.27336867, -0.00033413, 0.00020468, 7.27303454, 0.99897938, 0.99946118, 0.49326320,\
++	-6.27336876, -0.00033410, 0.00020466, 7.27303466, 0.99897949, 0.99946124, 0.49326335,\
++	-6.27336884, -0.00033406, 0.00020464, 7.27303478, 0.99897960, 0.99946130, 0.49326321,\
++	-6.27336893, -0.00033403, 0.00020462, 7.27303490, 0.99897971, 0.99946136, 0.49326341,\
++	-6.27336902, -0.00033399, 0.00020459, 7.27303503, 0.99897982, 0.99946142, 0.49326319,\
++	-6.27336910, -0.00033395, 0.00020457, 7.27303515, 0.99897993, 0.99946147, 0.49326349,\
++	-6.27336919, -0.00033392, 0.00020455, 7.27303527, 0.99898004, 0.99946153, 0.49326330,\
++	-6.27336927, -0.00033388, 0.00020453, 7.27303539, 0.99898015, 0.99946159, 0.49326316,\
++	-6.27336936, -0.00033385, 0.00020451, 7.27303551, 0.99898026, 0.99946165, 0.49326319,\
++	-6.27336945, -0.00033381, 0.00020448, 7.27303564, 0.99898037, 0.99946171, 0.49326337,\
++	-6.27336953, -0.00033377, 0.00020446, 7.27303576, 0.99898048, 0.99946176, 0.49326350,\
++	-6.27336962, -0.00033374, 0.00020444, 7.27303588, 0.99898059, 0.99946182, 0.49326333,\
++	-6.27336971, -0.00033370, 0.00020442, 7.27303600, 0.99898070, 0.99946188, 0.49326343,\
++	-6.27336979, -0.00033367, 0.00020439, 7.27303613, 0.99898081, 0.99946194, 0.49326342,\
++	-6.27336988, -0.00033363, 0.00020437, 7.27303625, 0.99898092, 0.99946200, 0.49326348,\
++	-6.27336996, -0.00033359, 0.00020435, 7.27303637, 0.99898103, 0.99946205, 0.49326358,\
++	-6.27337005, -0.00033356, 0.00020433, 7.27303649, 0.99898114, 0.99946211, 0.49326344,\
++	-6.27337014, -0.00033352, 0.00020431, 7.27303661, 0.99898125, 0.99946217, 0.49326333,\
++	-6.27337022, -0.00033349, 0.00020428, 7.27303674, 0.99898136, 0.99946223, 0.49326344,\
++	-6.27337031, -0.00033345, 0.00020426, 7.27303686, 0.99898147, 0.99946229, 0.49326346,\
++	-6.27337039, -0.00033342, 0.00020424, 7.27303698, 0.99898158, 0.99946234, 0.49326354,\
++	-6.27337048, -0.00033338, 0.00020422, 7.27303710, 0.99898169, 0.99946240, 0.49326336,\
++	-6.27337057, -0.00033334, 0.00020420, 7.27303722, 0.99898180, 0.99946246, 0.49326349,\
++	-6.27337065, -0.00033331, 0.00020417, 7.27303734, 0.99898191, 0.99946252, 0.49326348,\
++	-6.27337074, -0.00033327, 0.00020415, 7.27303747, 0.99898202, 0.99946258, 0.49326342,\
++	-6.27337082, -0.00033324, 0.00020413, 7.27303759, 0.99898213, 0.99946263, 0.49326343,\
++	-6.27337091, -0.00033320, 0.00020411, 7.27303771, 0.99898224, 0.99946269, 0.49326362,\
++	-6.27337100, -0.00033316, 0.00020409, 7.27303783, 0.99898234, 0.99946275, 0.49326356,\
++	-6.27337108, -0.00033313, 0.00020406, 7.27303795, 0.99898245, 0.99946281, 0.49326362,\
++	-6.27337117, -0.00033309, 0.00020404, 7.27303808, 0.99898256, 0.99946287, 0.49326353,\
++	-6.27337125, -0.00033306, 0.00020402, 7.27303820, 0.99898267, 0.99946292, 0.49326384,\
++	-6.27337134, -0.00033302, 0.00020400, 7.27303832, 0.99898278, 0.99946298, 0.49326355,\
++	-6.27337142, -0.00033298, 0.00020398, 7.27303844, 0.99898289, 0.99946304, 0.49326361,\
++	-6.27337151, -0.00033295, 0.00020395, 7.27303856, 0.99898300, 0.99946310, 0.49326362,\
++	-6.27337160, -0.00033291, 0.00020393, 7.27303868, 0.99898311, 0.99946315, 0.49326349,\
++	-6.27337168, -0.00033288, 0.00020391, 7.27303880, 0.99898322, 0.99946321, 0.49326369,\
++	-6.27337177, -0.00033284, 0.00020389, 7.27303893, 0.99898333, 0.99946327, 0.49326369,\
++	-6.27337185, -0.00033281, 0.00020387, 7.27303905, 0.99898344, 0.99946333, 0.49326369,\
++	-6.27337194, -0.00033277, 0.00020385, 7.27303917, 0.99898355, 0.99946338, 0.49326367,\
++	-6.27337202, -0.00033273, 0.00020382, 7.27303929, 0.99898366, 0.99946344, 0.49326359,\
++	-6.27337211, -0.00033270, 0.00020380, 7.27303941, 0.99898377, 0.99946350, 0.49326376,\
++	-6.27337220, -0.00033266, 0.00020378, 7.27303953, 0.99898388, 0.99946356, 0.49326382,\
++	-6.27337228, -0.00033263, 0.00020376, 7.27303965, 0.99898399, 0.99946362, 0.49326384,\
++	-6.27337237, -0.00033259, 0.00020374, 7.27303978, 0.99898409, 0.99946367, 0.49326379,\
++	-6.27337245, -0.00033256, 0.00020371, 7.27303990, 0.99898420, 0.99946373, 0.49326389,\
++	-6.27337254, -0.00033252, 0.00020369, 7.27304002, 0.99898431, 0.99946379, 0.49326390,\
++	-6.27337262, -0.00033248, 0.00020367, 7.27304014, 0.99898442, 0.99946385, 0.49326379,\
++	-6.27337271, -0.00033245, 0.00020365, 7.27304026, 0.99898453, 0.99946390, 0.49326384,\
++	-6.27337279, -0.00033241, 0.00020363, 7.27304038, 0.99898464, 0.99946396, 0.49326381,\
++	-6.27337288, -0.00033238, 0.00020360, 7.27304050, 0.99898475, 0.99946402, 0.49326372,\
++	-6.27337297, -0.00033234, 0.00020358, 7.27304062, 0.99898486, 0.99946408, 0.49326377,\
++	-6.27337305, -0.00033231, 0.00020356, 7.27304075, 0.99898497, 0.99946413, 0.49326406,\
++	-6.27337314, -0.00033227, 0.00020354, 7.27304087, 0.99898508, 0.99946419, 0.49326380,\
++	-6.27337322, -0.00033223, 0.00020352, 7.27304099, 0.99898519, 0.99946425, 0.49326407,\
++	-6.27337331, -0.00033220, 0.00020350, 7.27304111, 0.99898529, 0.99946431, 0.49326377,\
++	-6.27337339, -0.00033216, 0.00020347, 7.27304123, 0.99898540, 0.99946436, 0.49326399,\
++	-6.27337348, -0.00033213, 0.00020345, 7.27304135, 0.99898551, 0.99946442, 0.49326392,\
++	-6.27337356, -0.00033209, 0.00020343, 7.27304147, 0.99898562, 0.99946448, 0.49326402,\
++	-6.27337365, -0.00033206, 0.00020341, 7.27304159, 0.99898573, 0.99946454, 0.49326407,\
++	-6.27337373, -0.00033202, 0.00020339, 7.27304171, 0.99898584, 0.99946459, 0.49326397,\
++	-6.27337382, -0.00033198, 0.00020336, 7.27304183, 0.99898595, 0.99946465, 0.49326388,\
++	-6.27337390, -0.00033195, 0.00020334, 7.27304196, 0.99898606, 0.99946471, 0.49326400,\
++	-6.27337399, -0.00033191, 0.00020332, 7.27304208, 0.99898616, 0.99946477, 0.49326405,\
++	-6.27337407, -0.00033188, 0.00020330, 7.27304220, 0.99898627, 0.99946482, 0.49326405,\
++	-6.27337416, -0.00033184, 0.00020328, 7.27304232, 0.99898638, 0.99946488, 0.49326395,\
++	-6.27337425, -0.00033181, 0.00020326, 7.27304244, 0.99898649, 0.99946494, 0.49326406,\
++	-6.27337433, -0.00033177, 0.00020323, 7.27304256, 0.99898660, 0.99946500, 0.49326412,\
++	-6.27337442, -0.00033174, 0.00020321, 7.27304268, 0.99898671, 0.99946505, 0.49326418,\
++	-6.27337450, -0.00033170, 0.00020319, 7.27304280, 0.99898682, 0.99946511, 0.49326405,\
++	-6.27337459, -0.00033166, 0.00020317, 7.27304292, 0.99898693, 0.99946517, 0.49326394,\
++	-6.27337467, -0.00033163, 0.00020315, 7.27304304, 0.99898703, 0.99946522, 0.49326407,\
++	-6.27337476, -0.00033159, 0.00020312, 7.27304316, 0.99898714, 0.99946528, 0.49326381,\
++	-6.27337484, -0.00033156, 0.00020310, 7.27304328, 0.99898725, 0.99946534, 0.49326400,\
++	-6.27337493, -0.00033152, 0.00020308, 7.27304340, 0.99898736, 0.99946540, 0.49326414,\
++	-6.27337501, -0.00033149, 0.00020306, 7.27304352, 0.99898747, 0.99946545, 0.49326426,\
++	-6.27337510, -0.00033145, 0.00020304, 7.27304364, 0.99898758, 0.99946551, 0.49326422,\
++	-6.27337518, -0.00033142, 0.00020302, 7.27304376, 0.99898768, 0.99946557, 0.49326412,\
++	-6.27337527, -0.00033138, 0.00020299, 7.27304389, 0.99898779, 0.99946563, 0.49326410,\
++	-6.27337535, -0.00033135, 0.00020297, 7.27304401, 0.99898790, 0.99946568, 0.49326415,\
++	-6.27337544, -0.00033131, 0.00020295, 7.27304413, 0.99898801, 0.99946574, 0.49326422,\
++	-6.27337552, -0.00033127, 0.00020293, 7.27304425, 0.99898812, 0.99946580, 0.49326416,\
++	-6.27337561, -0.00033124, 0.00020291, 7.27304437, 0.99898823, 0.99946585, 0.49326449,\
++	-6.27337569, -0.00033120, 0.00020289, 7.27304449, 0.99898833, 0.99946591, 0.49326425,\
++	-6.27337578, -0.00033117, 0.00020286, 7.27304461, 0.99898844, 0.99946597, 0.49326435,\
++	-6.27337586, -0.00033113, 0.00020284, 7.27304473, 0.99898855, 0.99946603, 0.49326445,\
++	-6.27337594, -0.00033110, 0.00020282, 7.27304485, 0.99898866, 0.99946608, 0.49326455,\
++	-6.27337603, -0.00033106, 0.00020280, 7.27304497, 0.99898877, 0.99946614, 0.49326433,\
++	-6.27337611, -0.00033103, 0.00020278, 7.27304509, 0.99898888, 0.99946620, 0.49326418,\
++	-6.27337620, -0.00033099, 0.00020275, 7.27304521, 0.99898898, 0.99946625, 0.49326429,\
++	-6.27337628, -0.00033096, 0.00020273, 7.27304533, 0.99898909, 0.99946631, 0.49326433,\
++	-6.27337637, -0.00033092, 0.00020271, 7.27304545, 0.99898920, 0.99946637, 0.49326438,\
++	-6.27337645, -0.00033088, 0.00020269, 7.27304557, 0.99898931, 0.99946643, 0.49326440,\
++	-6.27337654, -0.00033085, 0.00020267, 7.27304569, 0.99898942, 0.99946648, 0.49326448,\
++	-6.27337662, -0.00033081, 0.00020265, 7.27304581, 0.99898952, 0.99946654, 0.49326440,\
++	-6.27337671, -0.00033078, 0.00020262, 7.27304593, 0.99898963, 0.99946660, 0.49326441,\
++	-6.27337679, -0.00033074, 0.00020260, 7.27304605, 0.99898974, 0.99946665, 0.49326439,\
++	-6.27337688, -0.00033071, 0.00020258, 7.27304617, 0.99898985, 0.99946671, 0.49326444,\
++	-6.27337696, -0.00033067, 0.00020256, 7.27304629, 0.99898996, 0.99946677, 0.49326437,\
++	-6.27337705, -0.00033064, 0.00020254, 7.27304641, 0.99899006, 0.99946682, 0.49326463,\
++	-6.27337713, -0.00033060, 0.00020252, 7.27304653, 0.99899017, 0.99946688, 0.49326433,\
++	-6.27337721, -0.00033057, 0.00020250, 7.27304665, 0.99899028, 0.99946694, 0.49326452,\
++	-6.27337730, -0.00033053, 0.00020247, 7.27304677, 0.99899039, 0.99946700, 0.49326464,\
++	-6.27337738, -0.00033050, 0.00020245, 7.27304689, 0.99899050, 0.99946705, 0.49326462,\
++	-6.27337747, -0.00033046, 0.00020243, 7.27304701, 0.99899060, 0.99946711, 0.49326446,\
++	-6.27337755, -0.00033043, 0.00020241, 7.27304713, 0.99899071, 0.99946717, 0.49326448,\
++	-6.27337764, -0.00033039, 0.00020239, 7.27304725, 0.99899082, 0.99946722, 0.49326479,\
++	-6.27337772, -0.00033035, 0.00020237, 7.27304737, 0.99899093, 0.99946728, 0.49326445,\
++	-6.27337781, -0.00033032, 0.00020234, 7.27304749, 0.99899103, 0.99946734, 0.49326446,\
++	-6.27337789, -0.00033028, 0.00020232, 7.27304761, 0.99899114, 0.99946739, 0.49326446,\
++	-6.27337797, -0.00033025, 0.00020230, 7.27304773, 0.99899125, 0.99946745, 0.49326456,\
++	-6.27337806, -0.00033021, 0.00020228, 7.27304785, 0.99899136, 0.99946751, 0.49326462,\
++	-6.27337814, -0.00033018, 0.00020226, 7.27304796, 0.99899146, 0.99946756, 0.49326466,\
++	-6.27337823, -0.00033014, 0.00020224, 7.27304808, 0.99899157, 0.99946762, 0.49326469,\
++	-6.27337831, -0.00033011, 0.00020221, 7.27304820, 0.99899168, 0.99946768, 0.49326455,\
++	-6.27337840, -0.00033007, 0.00020219, 7.27304832, 0.99899179, 0.99946773, 0.49326445,\
++	-6.27337848, -0.00033004, 0.00020217, 7.27304844, 0.99899190, 0.99946779, 0.49326466,\
++	-6.27337856, -0.00033000, 0.00020215, 7.27304856, 0.99899200, 0.99946785, 0.49326467,\
++	-6.27337865, -0.00032997, 0.00020213, 7.27304868, 0.99899211, 0.99946790, 0.49326472,\
++	-6.27337873, -0.00032993, 0.00020211, 7.27304880, 0.99899222, 0.99946796, 0.49326465,\
++	-6.27337882, -0.00032990, 0.00020208, 7.27304892, 0.99899233, 0.99946802, 0.49326487,\
++	-6.27337890, -0.00032986, 0.00020206, 7.27304904, 0.99899243, 0.99946807, 0.49326453,\
++	-6.27337899, -0.00032983, 0.00020204, 7.27304916, 0.99899254, 0.99946813, 0.49326462,\
++	-6.27337907, -0.00032979, 0.00020202, 7.27304928, 0.99899265, 0.99946819, 0.49326466,\
++	-6.27337915, -0.00032976, 0.00020200, 7.27304940, 0.99899275, 0.99946824, 0.49326470,\
++	-6.27337924, -0.00032972, 0.00020198, 7.27304952, 0.99899286, 0.99946830, 0.49326485,\
++	-6.27337932, -0.00032969, 0.00020196, 7.27304964, 0.99899297, 0.99946836, 0.49326493,\
++	-6.27337941, -0.00032965, 0.00020193, 7.27304976, 0.99899308, 0.99946841, 0.49326472,\
++	-6.27337949, -0.00032962, 0.00020191, 7.27304987, 0.99899318, 0.99946847, 0.49326466,\
++	-6.27337957, -0.00032958, 0.00020189, 7.27304999, 0.99899329, 0.99946853, 0.49326475,\
++	-6.27337966, -0.00032955, 0.00020187, 7.27305011, 0.99899340, 0.99946858, 0.49326474,\
++	-6.27337974, -0.00032951, 0.00020185, 7.27305023, 0.99899351, 0.99946864, 0.49326494,\
++	-6.27337983, -0.00032948, 0.00020183, 7.27305035, 0.99899361, 0.99946870, 0.49326475,\
++	-6.27337991, -0.00032944, 0.00020181, 7.27305047, 0.99899372, 0.99946875, 0.49326504,\
++	-6.27337999, -0.00032941, 0.00020178, 7.27305059, 0.99899383, 0.99946881, 0.49326510,\
++	-6.27338008, -0.00032937, 0.00020176, 7.27305071, 0.99899393, 0.99946887, 0.49326506,\
++	-6.27338016, -0.00032934, 0.00020174, 7.27305083, 0.99899404, 0.99946892, 0.49326491,\
++	-6.27338025, -0.00032930, 0.00020172, 7.27305095, 0.99899415, 0.99946898, 0.49326495,\
++	-6.27338033, -0.00032927, 0.00020170, 7.27305106, 0.99899425, 0.99946904, 0.49326488,\
++	-6.27338041, -0.00032923, 0.00020168, 7.27305118, 0.99899436, 0.99946909, 0.49326492,\
++	-6.27338050, -0.00032920, 0.00020165, 7.27305130, 0.99899447, 0.99946915, 0.49326492,\
++	-6.27338058, -0.00032916, 0.00020163, 7.27305142, 0.99899458, 0.99946921, 0.49326493,\
++	-6.27338067, -0.00032913, 0.00020161, 7.27305154, 0.99899468, 0.99946926, 0.49326498,\
++	-6.27338075, -0.00032909, 0.00020159, 7.27305166, 0.99899479, 0.99946932, 0.49326509,\
++	-6.27338083, -0.00032906, 0.00020157, 7.27305178, 0.99899490, 0.99946938, 0.49326511,\
++	-6.27338092, -0.00032902, 0.00020155, 7.27305190, 0.99899500, 0.99946943, 0.49326491,\
++	-6.27338100, -0.00032899, 0.00020153, 7.27305201, 0.99899511, 0.99946949, 0.49326497,\
++	-6.27338108, -0.00032895, 0.00020150, 7.27305213, 0.99899522, 0.99946954, 0.49326517,\
++	-6.27338117, -0.00032892, 0.00020148, 7.27305225, 0.99899532, 0.99946960, 0.49326501,\
++	-6.27338125, -0.00032888, 0.00020146, 7.27305237, 0.99899543, 0.99946966, 0.49326506,\
++	-6.27338134, -0.00032885, 0.00020144, 7.27305249, 0.99899554, 0.99946971, 0.49326507,\
++	-6.27338142, -0.00032881, 0.00020142, 7.27305261, 0.99899564, 0.99946977, 0.49326497,\
++	-6.27338150, -0.00032878, 0.00020140, 7.27305273, 0.99899575, 0.99946983, 0.49326508,\
++	-6.27338159, -0.00032874, 0.00020138, 7.27305284, 0.99899586, 0.99946988, 0.49326522,\
++	-6.27338167, -0.00032871, 0.00020135, 7.27305296, 0.99899596, 0.99946994, 0.49326525,\
++	-6.27338175, -0.00032867, 0.00020133, 7.27305308, 0.99899607, 0.99946999, 0.49326527,\
++	-6.27338184, -0.00032864, 0.00020131, 7.27305320, 0.99899618, 0.99947005, 0.49326512,\
++	-6.27338192, -0.00032860, 0.00020129, 7.27305332, 0.99899628, 0.99947011, 0.49326544,\
++	-6.27338200, -0.00032857, 0.00020127, 7.27305344, 0.99899639, 0.99947016, 0.49326511,\
++	-6.27338209, -0.00032853, 0.00020125, 7.27305356, 0.99899650, 0.99947022, 0.49326525,\
++	-6.27338217, -0.00032850, 0.00020123, 7.27305367, 0.99899660, 0.99947028, 0.49326517,\
++	-6.27338225, -0.00032846, 0.00020121, 7.27305379, 0.99899671, 0.99947033, 0.49326515,\
++	-6.27338234, -0.00032843, 0.00020118, 7.27305391, 0.99899682, 0.99947039, 0.49326512,\
++	-6.27338242, -0.00032839, 0.00020116, 7.27305403, 0.99899692, 0.99947045, 0.49326510,\
++	-6.27338250, -0.00032836, 0.00020114, 7.27305415, 0.99899703, 0.99947050, 0.49326538,\
++	-6.27338259, -0.00032832, 0.00020112, 7.27305427, 0.99899714, 0.99947056, 0.49326526,\
++	-6.27338267, -0.00032829, 0.00020110, 7.27305438, 0.99899724, 0.99947061, 0.49326555,\
++	-6.27338275, -0.00032825, 0.00020108, 7.27305450, 0.99899735, 0.99947067, 0.49326559,\
++	-6.27338284, -0.00032822, 0.00020106, 7.27305462, 0.99899745, 0.99947073, 0.49326528,\
++	-6.27338292, -0.00032818, 0.00020103, 7.27305474, 0.99899756, 0.99947078, 0.49326542,\
++	-6.27338300, -0.00032815, 0.00020101, 7.27305486, 0.99899767, 0.99947084, 0.49326519,\
++	-6.27338309, -0.00032811, 0.00020099, 7.27305497, 0.99899777, 0.99947089, 0.49326536,\
++	-6.27338317, -0.00032808, 0.00020097, 7.27305509, 0.99899788, 0.99947095, 0.49326533,\
++	-6.27338325, -0.00032804, 0.00020095, 7.27305521, 0.99899799, 0.99947101, 0.49326540,\
++	-6.27338334, -0.00032801, 0.00020093, 7.27305533, 0.99899809, 0.99947106, 0.49326552,\
++	-6.27338342, -0.00032797, 0.00020091, 7.27305545, 0.99899820, 0.99947112, 0.49326543,\
++	-6.27338350, -0.00032794, 0.00020089, 7.27305556, 0.99899830, 0.99947117, 0.49326548,\
++	-6.27338359, -0.00032791, 0.00020086, 7.27305568, 0.99899841, 0.99947123, 0.49326555,\
++	-6.27338367, -0.00032787, 0.00020084, 7.27305580, 0.99899852, 0.99947129, 0.49326550,\
++	-6.27338375, -0.00032784, 0.00020082, 7.27305592, 0.99899862, 0.99947134, 0.49326539,\
++	-6.27338384, -0.00032780, 0.00020080, 7.27305604, 0.99899873, 0.99947140, 0.49326537,\
++	-6.27338392, -0.00032777, 0.00020078, 7.27305615, 0.99899884, 0.99947145, 0.49326540,\
++	-6.27338400, -0.00032773, 0.00020076, 7.27305627, 0.99899894, 0.99947151, 0.49326552,\
++	-6.27338409, -0.00032770, 0.00020074, 7.27305639, 0.99899905, 0.99947157, 0.49326544,\
++	-6.27338417, -0.00032766, 0.00020072, 7.27305651, 0.99899915, 0.99947162, 0.49326541,\
++	-6.27338425, -0.00032763, 0.00020069, 7.27305662, 0.99899926, 0.99947168, 0.49326544,\
++	-6.27338433, -0.00032759, 0.00020067, 7.27305674, 0.99899937, 0.99947173, 0.49326555,\
++	-6.27338442, -0.00032756, 0.00020065, 7.27305686, 0.99899947, 0.99947179, 0.49326592,\
++	-6.27338450, -0.00032752, 0.00020063, 7.27305698, 0.99899958, 0.99947185, 0.49326555,\
++	-6.27338458, -0.00032749, 0.00020061, 7.27305709, 0.99899968, 0.99947190, 0.49326556,\
++	-6.27338467, -0.00032745, 0.00020059, 7.27305721, 0.99899979, 0.99947196, 0.49326577,\
++	-6.27338475, -0.00032742, 0.00020057, 7.27305733, 0.99899989, 0.99947201, 0.49326572,\
++	-6.27338483, -0.00032739, 0.00020055, 7.27305745, 0.99900000, 0.99947207, 0.49326564,\
++	-6.27338492, -0.00032735, 0.00020052, 7.27305756, 0.99900011, 0.99947213, 0.49326574,\
++	-6.27338500, -0.00032732, 0.00020050, 7.27305768, 0.99900021, 0.99947218, 0.49326570,\
++	-6.27338508, -0.00032728, 0.00020048, 7.27305780, 0.99900032, 0.99947224, 0.49326585,\
++	-6.27338516, -0.00032725, 0.00020046, 7.27305792, 0.99900042, 0.99947229, 0.49326561,\
++	-6.27338525, -0.00032721, 0.00020044, 7.27305804, 0.99900053, 0.99947235, 0.49326554,\
++	-6.27338533, -0.00032718, 0.00020042, 7.27305815, 0.99900063, 0.99947240, 0.49326565,\
++	-6.27338541, -0.00032714, 0.00020040, 7.27305827, 0.99900074, 0.99947246, 0.49326560,\
++	-6.27338550, -0.00032711, 0.00020038, 7.27305839, 0.99900085, 0.99947252, 0.49326561,\
++	-6.27338558, -0.00032707, 0.00020035, 7.27305850, 0.99900095, 0.99947257, 0.49326588,\
++	-6.27338566, -0.00032704, 0.00020033, 7.27305862, 0.99900106, 0.99947263, 0.49326567,\
++	-6.27338574, -0.00032700, 0.00020031, 7.27305874, 0.99900116, 0.99947268, 0.49326573,\
++	-6.27338583, -0.00032697, 0.00020029, 7.27305886, 0.99900127, 0.99947274, 0.49326588,\
++	-6.27338591, -0.00032694, 0.00020027, 7.27305897, 0.99900137, 0.99947279, 0.49326587,\
++	-6.27338599, -0.00032690, 0.00020025, 7.27305909, 0.99900148, 0.99947285, 0.49326591,\
++	-6.27338607, -0.00032687, 0.00020023, 7.27305921, 0.99900158, 0.99947291, 0.49326568,\
++	-6.27338616, -0.00032683, 0.00020021, 7.27305932, 0.99900169, 0.99947296, 0.49326586,\
++	-6.27338624, -0.00032680, 0.00020019, 7.27305944, 0.99900180, 0.99947302, 0.49326595,\
++	-6.27338632, -0.00032676, 0.00020016, 7.27305956, 0.99900190, 0.99947307, 0.49326594,\
++	-6.27338640, -0.00032673, 0.00020014, 7.27305968, 0.99900201, 0.99947313, 0.49326576,\
++	-6.27338649, -0.00032669, 0.00020012, 7.27305979, 0.99900211, 0.99947318, 0.49326600,\
++	-6.27338657, -0.00032666, 0.00020010, 7.27305991, 0.99900222, 0.99947324, 0.49326567,\
++	-6.27338665, -0.00032663, 0.00020008, 7.27306003, 0.99900232, 0.99947330, 0.49326591,\
++	-6.27338674, -0.00032659, 0.00020006, 7.27306014, 0.99900243, 0.99947335, 0.49326584,\
++	-6.27338682, -0.00032656, 0.00020004, 7.27306026, 0.99900253, 0.99947341, 0.49326591,\
++	-6.27338690, -0.00032652, 0.00020002, 7.27306038, 0.99900264, 0.99947346, 0.49326598,\
++	-6.27338698, -0.00032649, 0.00020000, 7.27306050, 0.99900274, 0.99947352, 0.49326605,\
++	-6.27338706, -0.00032645, 0.00019997, 7.27306061, 0.99900285, 0.99947357, 0.49326584,\
++	-6.27338715, -0.00032642, 0.00019995, 7.27306073, 0.99900295, 0.99947363, 0.49326610,\
++	-6.27338723, -0.00032638, 0.00019993, 7.27306085, 0.99900306, 0.99947368, 0.49326584,\
++	-6.27338731, -0.00032635, 0.00019991, 7.27306096, 0.99900316, 0.99947374, 0.49326595,\
++	-6.27338739, -0.00032632, 0.00019989, 7.27306108, 0.99900327, 0.99947379, 0.49326574,\
++	-6.27338748, -0.00032628, 0.00019987, 7.27306120, 0.99900337, 0.99947385, 0.49326593,\
++	-6.27338756, -0.00032625, 0.00019985, 7.27306131, 0.99900348, 0.99947391, 0.49326617,\
++	-6.27338764, -0.00032621, 0.00019983, 7.27306143, 0.99900358, 0.99947396, 0.49326608,\
++	-6.27338772, -0.00032618, 0.00019981, 7.27306155, 0.99900369, 0.99947402, 0.49326601,\
++	-6.27338781, -0.00032614, 0.00019978, 7.27306166, 0.99900379, 0.99947407, 0.49326595,\
++	-6.27338789, -0.00032611, 0.00019976, 7.27306178, 0.99900390, 0.99947413, 0.49326615,\
++	-6.27338797, -0.00032607, 0.00019974, 7.27306190, 0.99900400, 0.99947418, 0.49326594,\
++	-6.27338805, -0.00032604, 0.00019972, 7.27306201, 0.99900411, 0.99947424, 0.49326623,\
++	-6.27338814, -0.00032601, 0.00019970, 7.27306213, 0.99900421, 0.99947429, 0.49326628,\
++	-6.27338822, -0.00032597, 0.00019968, 7.27306225, 0.99900432, 0.99947435, 0.49326618,\
++	-6.27338830, -0.00032594, 0.00019966, 7.27306236, 0.99900442, 0.99947440, 0.49326621,\
++	-6.27338838, -0.00032590, 0.00019964, 7.27306248, 0.99900453, 0.99947446, 0.49326598,\
++	-6.27338846, -0.00032587, 0.00019962, 7.27306260, 0.99900463, 0.99947452, 0.49326615,\
++	-6.27338855, -0.00032583, 0.00019960, 7.27306271, 0.99900474, 0.99947457, 0.49326647,\
++	-6.27338863, -0.00032580, 0.00019957, 7.27306283, 0.99900484, 0.99947463, 0.49326621,\
++	-6.27338871, -0.00032577, 0.00019955, 7.27306294, 0.99900495, 0.99947468, 0.49326643,\
++	-6.27338879, -0.00032573, 0.00019953, 7.27306306, 0.99900505, 0.99947474, 0.49326629,\
++	-6.27338887, -0.00032570, 0.00019951, 7.27306318, 0.99900516, 0.99947479, 0.49326635,\
++	-6.27338896, -0.00032566, 0.00019949, 7.27306329, 0.99900526, 0.99947485, 0.49326632,\
++	-6.27338904, -0.00032563, 0.00019947, 7.27306341, 0.99900537, 0.99947490, 0.49326626,\
++	-6.27338912, -0.00032559, 0.00019945, 7.27306353, 0.99900547, 0.99947496, 0.49326639,\
++	-6.27338920, -0.00032556, 0.00019943, 7.27306364, 0.99900558, 0.99947501, 0.49326627,\
++	-6.27338928, -0.00032553, 0.00019941, 7.27306376, 0.99900568, 0.99947507, 0.49326645,\
++	-6.27338937, -0.00032549, 0.00019939, 7.27306387, 0.99900578, 0.99947512, 0.49326623,\
++	-6.27338945, -0.00032546, 0.00019936, 7.27306399, 0.99900589, 0.99947518, 0.49326607,\
++	-6.27338953, -0.00032542, 0.00019934, 7.27306411, 0.99900599, 0.99947523, 0.49326641,\
++	-6.27338961, -0.00032539, 0.00019932, 7.27306422, 0.99900610, 0.99947529, 0.49326644,\
++	-6.27338969, -0.00032536, 0.00019930, 7.27306434, 0.99900620, 0.99947534, 0.49326635,\
++	-6.27338978, -0.00032532, 0.00019928, 7.27306446, 0.99900631, 0.99947540, 0.49326617,\
++	-6.27338986, -0.00032529, 0.00019926, 7.27306457, 0.99900641, 0.99947545, 0.49326647,\
++	-6.27338994, -0.00032525, 0.00019924, 7.27306469, 0.99900652, 0.99947551, 0.49326638,\
++	-6.27339002, -0.00032522, 0.00019922, 7.27306480, 0.99900662, 0.99947556, 0.49326625,\
++	-6.27339010, -0.00032518, 0.00019920, 7.27306492, 0.99900673, 0.99947562, 0.49326654,\
++	-6.27339019, -0.00032515, 0.00019918, 7.27306504, 0.99900683, 0.99947567, 0.49326643,\
++	-6.27339027, -0.00032512, 0.00019915, 7.27306515, 0.99900693, 0.99947573, 0.49326639,\
++	-6.27339035, -0.00032508, 0.00019913, 7.27306527, 0.99900704, 0.99947578, 0.49326643,\
++	-6.27339043, -0.00032505, 0.00019911, 7.27306538, 0.99900714, 0.99947584, 0.49326613,\
++	-6.27339051, -0.00032501, 0.00019909, 7.27306550, 0.99900725, 0.99947589, 0.49326635,\
++	-6.27339059, -0.00032498, 0.00019907, 7.27306561, 0.99900735, 0.99947595, 0.49326654,\
++	-6.27339068, -0.00032495, 0.00019905, 7.27306573, 0.99900746, 0.99947600, 0.49326649,\
++	-6.27339076, -0.00032491, 0.00019903, 7.27306585, 0.99900756, 0.99947606, 0.49326645,\
++	-6.27339084, -0.00032488, 0.00019901, 7.27306596, 0.99900766, 0.99947611, 0.49326635,\
++	-6.27339092, -0.00032484, 0.00019899, 7.27306608, 0.99900777, 0.99947617, 0.49326646,\
++	-6.27339100, -0.00032481, 0.00019897, 7.27306619, 0.99900787, 0.99947622, 0.49326660,\
++	-6.27339108, -0.00032477, 0.00019895, 7.27306631, 0.99900798, 0.99947628, 0.49326653,\
++	-6.27339117, -0.00032474, 0.00019892, 7.27306642, 0.99900808, 0.99947633, 0.49326655,\
++	-6.27339125, -0.00032471, 0.00019890, 7.27306654, 0.99900818, 0.99947639, 0.49326642,\
++	-6.27339133, -0.00032467, 0.00019888, 7.27306666, 0.99900829, 0.99947644, 0.49326648,\
++	-6.27339141, -0.00032464, 0.00019886, 7.27306677, 0.99900839, 0.99947650, 0.49326679,\
++	-6.27339149, -0.00032460, 0.00019884, 7.27306689, 0.99900850, 0.99947655, 0.49326686,\
++	-6.27339157, -0.00032457, 0.00019882, 7.27306700, 0.99900860, 0.99947661, 0.49326656,\
++	-6.27339165, -0.00032454, 0.00019880, 7.27306712, 0.99900870, 0.99947666, 0.49326662,\
++	-6.27339174, -0.00032450, 0.00019878, 7.27306723, 0.99900881, 0.99947672, 0.49326679,\
++	-6.27339182, -0.00032447, 0.00019876, 7.27306735, 0.99900891, 0.99947677, 0.49326673,\
++	-6.27339190, -0.00032443, 0.00019874, 7.27306746, 0.99900902, 0.99947683, 0.49326675,\
++	-6.27339198, -0.00032440, 0.00019872, 7.27306758, 0.99900912, 0.99947688, 0.49326682,\
++	-6.27339206, -0.00032437, 0.00019870, 7.27306770, 0.99900922, 0.99947694, 0.49326647,\
++	-6.27339214, -0.00032433, 0.00019867, 7.27306781, 0.99900933, 0.99947699, 0.49326653,\
++	-6.27339222, -0.00032430, 0.00019865, 7.27306793, 0.99900943, 0.99947705, 0.49326669,\
++	-6.27339231, -0.00032426, 0.00019863, 7.27306804, 0.99900954, 0.99947710, 0.49326657,\
++	-6.27339239, -0.00032423, 0.00019861, 7.27306816, 0.99900964, 0.99947716, 0.49326679,\
++	-6.27339247, -0.00032420, 0.00019859, 7.27306827, 0.99900974, 0.99947721, 0.49326690,\
++	-6.27339255, -0.00032416, 0.00019857, 7.27306839, 0.99900985, 0.99947727, 0.49326680,\
++	-6.27339263, -0.00032413, 0.00019855, 7.27306850, 0.99900995, 0.99947732, 0.49326670,\
++	-6.27339271, -0.00032409, 0.00019853, 7.27306862, 0.99901005, 0.99947738, 0.49326690,\
++	-6.27339279, -0.00032406, 0.00019851, 7.27306873, 0.99901016, 0.99947743, 0.49326682,\
++	-6.27339287, -0.00032403, 0.00019849, 7.27306885, 0.99901026, 0.99947749, 0.49326670,\
++	-6.27339296, -0.00032399, 0.00019847, 7.27306896, 0.99901036, 0.99947754, 0.49326689,\
++	-6.27339304, -0.00032396, 0.00019845, 7.27306908, 0.99901047, 0.99947760, 0.49326683,\
++	-6.27339312, -0.00032393, 0.00019843, 7.27306919, 0.99901057, 0.99947765, 0.49326682,\
++	-6.27339320, -0.00032389, 0.00019840, 7.27306931, 0.99901068, 0.99947770, 0.49326694,\
++	-6.27339328, -0.00032386, 0.00019838, 7.27306942, 0.99901078, 0.99947776, 0.49326682,\
++	-6.27339336, -0.00032382, 0.00019836, 7.27306954, 0.99901088, 0.99947781, 0.49326696,\
++	-6.27339344, -0.00032379, 0.00019834, 7.27306965, 0.99901099, 0.99947787, 0.49326703,\
++	-6.27339352, -0.00032376, 0.00019832, 7.27306977, 0.99901109, 0.99947792, 0.49326705,\
++	-6.27339360, -0.00032372, 0.00019830, 7.27306988, 0.99901119, 0.99947798, 0.49326683,\
++	-6.27339369, -0.00032369, 0.00019828, 7.27307000, 0.99901130, 0.99947803, 0.49326692,\
++	-6.27339377, -0.00032365, 0.00019826, 7.27307011, 0.99901140, 0.99947809, 0.49326694,\
++	-6.27339385, -0.00032362, 0.00019824, 7.27307023, 0.99901150, 0.99947814, 0.49326688,\
++	-6.27339393, -0.00032359, 0.00019822, 7.27307034, 0.99901161, 0.99947820, 0.49326687,\
++	-6.27339401, -0.00032355, 0.00019820, 7.27307046, 0.99901171, 0.99947825, 0.49326697,\
++	-6.27339409, -0.00032352, 0.00019818, 7.27307057, 0.99901181, 0.99947830, 0.49326717,\
++	-6.27339417, -0.00032349, 0.00019816, 7.27307069, 0.99901192, 0.99947836, 0.49326712,\
++	-6.27339425, -0.00032345, 0.00019813, 7.27307080, 0.99901202, 0.99947841, 0.49326703,\
++	-6.27339433, -0.00032342, 0.00019811, 7.27307092, 0.99901212, 0.99947847, 0.49326706,\
++	-6.27339441, -0.00032338, 0.00019809, 7.27307103, 0.99901223, 0.99947852, 0.49326716,\
++	-6.27339450, -0.00032335, 0.00019807, 7.27307115, 0.99901233, 0.99947858, 0.49326689,\
++	-6.27339458, -0.00032332, 0.00019805, 7.27307126, 0.99901243, 0.99947863, 0.49326699,\
++	-6.27339466, -0.00032328, 0.00019803, 7.27307137, 0.99901254, 0.99947869, 0.49326696,\
++	-6.27339474, -0.00032325, 0.00019801, 7.27307149, 0.99901264, 0.99947874, 0.49326718,\
++	-6.27339482, -0.00032321, 0.00019799, 7.27307160, 0.99901274, 0.99947880, 0.49326717,\
++	-6.27339490, -0.00032318, 0.00019797, 7.27307172, 0.99901285, 0.99947885, 0.49326705,\
++	-6.27339498, -0.00032315, 0.00019795, 7.27307183, 0.99901295, 0.99947890, 0.49326716,\
++	-6.27339506, -0.00032311, 0.00019793, 7.27307195, 0.99901305, 0.99947896, 0.49326730,\
++	-6.27339514, -0.00032308, 0.00019791, 7.27307206, 0.99901315, 0.99947901, 0.49326718,\
++	-6.27339522, -0.00032305, 0.00019789, 7.27307218, 0.99901326, 0.99947907, 0.49326722,\
++	-6.27339530, -0.00032301, 0.00019787, 7.27307229, 0.99901336, 0.99947912, 0.49326715,\
++	-6.27339538, -0.00032298, 0.00019785, 7.27307241, 0.99901346, 0.99947918, 0.49326728,\
++	-6.27339546, -0.00032295, 0.00019782, 7.27307252, 0.99901357, 0.99947923, 0.49326724,\
++	-6.27339555, -0.00032291, 0.00019780, 7.27307263, 0.99901367, 0.99947928, 0.49326701,\
++	-6.27339563, -0.00032288, 0.00019778, 7.27307275, 0.99901377, 0.99947934, 0.49326708,\
++	-6.27339571, -0.00032284, 0.00019776, 7.27307286, 0.99901388, 0.99947939, 0.49326726,\
++	-6.27339579, -0.00032281, 0.00019774, 7.27307298, 0.99901398, 0.99947945, 0.49326720,\
++	-6.27339587, -0.00032278, 0.00019772, 7.27307309, 0.99901408, 0.99947950, 0.49326714,\
++	-6.27339595, -0.00032274, 0.00019770, 7.27307321, 0.99901418, 0.99947956, 0.49326729,\
++	-6.27339603, -0.00032271, 0.00019768, 7.27307332, 0.99901429, 0.99947961, 0.49326744,\
++	-6.27339611, -0.00032268, 0.00019766, 7.27307343, 0.99901439, 0.99947966, 0.49326726,\
++	-6.27339619, -0.00032264, 0.00019764, 7.27307355, 0.99901449, 0.99947972, 0.49326746,\
++	-6.27339627, -0.00032261, 0.00019762, 7.27307366, 0.99901459, 0.99947977, 0.49326747,\
++	-6.27339635, -0.00032258, 0.00019760, 7.27307378, 0.99901470, 0.99947983, 0.49326746,\
++	-6.27339643, -0.00032254, 0.00019758, 7.27307389, 0.99901480, 0.99947988, 0.49326737,\
++	-6.27339651, -0.00032251, 0.00019756, 7.27307400, 0.99901490, 0.99947994, 0.49326725,\
++	-6.27339659, -0.00032247, 0.00019754, 7.27307412, 0.99901501, 0.99947999, 0.49326744,\
++	-6.27339667, -0.00032244, 0.00019752, 7.27307423, 0.99901511, 0.99948004, 0.49326734,\
++	-6.27339675, -0.00032241, 0.00019749, 7.27307435, 0.99901521, 0.99948010, 0.49326748,\
++	-6.27339683, -0.00032237, 0.00019747, 7.27307446, 0.99901531, 0.99948015, 0.49326735,\
++	-6.27339691, -0.00032234, 0.00019745, 7.27307457, 0.99901542, 0.99948021, 0.49326718,\
++	-6.27339699, -0.00032231, 0.00019743, 7.27307469, 0.99901552, 0.99948026, 0.49326726,\
++	-6.27339708, -0.00032227, 0.00019741, 7.27307480, 0.99901562, 0.99948031, 0.49326739,\
++	-6.27339716, -0.00032224, 0.00019739, 7.27307492, 0.99901572, 0.99948037, 0.49326736,\
++	-6.27339724, -0.00032221, 0.00019737, 7.27307503, 0.99901583, 0.99948042, 0.49326751,\
++	-6.27339732, -0.00032217, 0.00019735, 7.27307514, 0.99901593, 0.99948048, 0.49326746,\
++	-6.27339740, -0.00032214, 0.00019733, 7.27307526, 0.99901603, 0.99948053, 0.49326750,\
++	-6.27339748, -0.00032210, 0.00019731, 7.27307537, 0.99901613, 0.99948059, 0.49326720,\
++	-6.27339756, -0.00032207, 0.00019729, 7.27307549, 0.99901624, 0.99948064, 0.49326742,\
++	-6.27339764, -0.00032204, 0.00019727, 7.27307560, 0.99901634, 0.99948069, 0.49326770,\
++	-6.27339772, -0.00032200, 0.00019725, 7.27307571, 0.99901644, 0.99948075, 0.49326757,\
++	-6.27339780, -0.00032197, 0.00019723, 7.27307583, 0.99901654, 0.99948080, 0.49326750,\
++	-6.27339788, -0.00032194, 0.00019721, 7.27307594, 0.99901664, 0.99948086, 0.49326781,\
++	-6.27339796, -0.00032190, 0.00019719, 7.27307605, 0.99901675, 0.99948091, 0.49326776,\
++	-6.27339804, -0.00032187, 0.00019717, 7.27307617, 0.99901685, 0.99948096, 0.49326747,\
++	-6.27339812, -0.00032184, 0.00019715, 7.27307628, 0.99901695, 0.99948102, 0.49326778,\
++	-6.27339820, -0.00032180, 0.00019713, 7.27307639, 0.99901705, 0.99948107, 0.49326749,\
++	-6.27339828, -0.00032177, 0.00019710, 7.27307651, 0.99901716, 0.99948113, 0.49326751,\
++	-6.27339836, -0.00032174, 0.00019708, 7.27307662, 0.99901726, 0.99948118, 0.49326780,\
++	-6.27339844, -0.00032170, 0.00019706, 7.27307674, 0.99901736, 0.99948123, 0.49326747,\
++	-6.27339852, -0.00032167, 0.00019704, 7.27307685, 0.99901746, 0.99948129, 0.49326772,\
++	-6.27339860, -0.00032164, 0.00019702, 7.27307696, 0.99901756, 0.99948134, 0.49326768,\
++	-6.27339868, -0.00032160, 0.00019700, 7.27307708, 0.99901767, 0.99948139, 0.49326756,\
++	-6.27339876, -0.00032157, 0.00019698, 7.27307719, 0.99901777, 0.99948145, 0.49326753,\
++	-6.27339884, -0.00032154, 0.00019696, 7.27307730, 0.99901787, 0.99948150, 0.49326754,\
++	-6.27339892, -0.00032150, 0.00019694, 7.27307742, 0.99901797, 0.99948156, 0.49326763,\
++	-6.27339900, -0.00032147, 0.00019692, 7.27307753, 0.99901807, 0.99948161, 0.49326773,\
++	-6.27339908, -0.00032144, 0.00019690, 7.27307764, 0.99901818, 0.99948166, 0.49326760,\
++	-6.27339916, -0.00032140, 0.00019688, 7.27307776, 0.99901828, 0.99948172, 0.49326795,\
++	-6.27339924, -0.00032137, 0.00019686, 7.27307787, 0.99901838, 0.99948177, 0.49326781,\
++	-6.27339932, -0.00032134, 0.00019684, 7.27307798, 0.99901848, 0.99948183, 0.49326791,\
++	-6.27339940, -0.00032130, 0.00019682, 7.27307810, 0.99901858, 0.99948188, 0.49326782,\
++	-6.27339948, -0.00032127, 0.00019680, 7.27307821, 0.99901869, 0.99948193, 0.49326774,\
++	-6.27339956, -0.00032124, 0.00019678, 7.27307832, 0.99901879, 0.99948199, 0.49326801,\
++	-6.27339964, -0.00032120, 0.00019676, 7.27307843, 0.99901889, 0.99948204, 0.49326796,\
++	-6.27339972, -0.00032117, 0.00019674, 7.27307855, 0.99901899, 0.99948209, 0.49326796,\
++	-6.27339980, -0.00032114, 0.00019672, 7.27307866, 0.99901909, 0.99948215, 0.49326764,\
++	-6.27339988, -0.00032110, 0.00019670, 7.27307877, 0.99901920, 0.99948220, 0.49326786,\
++	-6.27339996, -0.00032107, 0.00019668, 7.27307889, 0.99901930, 0.99948226, 0.49326797,\
++	-6.27340004, -0.00032104, 0.00019665, 7.27307900, 0.99901940, 0.99948231, 0.49326772,\
++	-6.27340012, -0.00032100, 0.00019663, 7.27307911, 0.99901950, 0.99948236, 0.49326808,\
++	-6.27340020, -0.00032097, 0.00019661, 7.27307923, 0.99901960, 0.99948242, 0.49326793,\
++	-6.27340028, -0.00032094, 0.00019659, 7.27307934, 0.99901970, 0.99948247, 0.49326800,\
++	-6.27340036, -0.00032090, 0.00019657, 7.27307945, 0.99901981, 0.99948252, 0.49326818,\
++	-6.27340043, -0.00032087, 0.00019655, 7.27307956, 0.99901991, 0.99948258, 0.49326800,\
++	-6.27340051, -0.00032084, 0.00019653, 7.27307968, 0.99902001, 0.99948263, 0.49326833,\
++	-6.27340059, -0.00032080, 0.00019651, 7.27307979, 0.99902011, 0.99948268, 0.49326799,\
++	-6.27340067, -0.00032077, 0.00019649, 7.27307990, 0.99902021, 0.99948274, 0.49326805,\
++	-6.27340075, -0.00032074, 0.00019647, 7.27308002, 0.99902031, 0.99948279, 0.49326790,\
++	-6.27340083, -0.00032070, 0.00019645, 7.27308013, 0.99902042, 0.99948285, 0.49326822,\
++	-6.27340091, -0.00032067, 0.00019643, 7.27308024, 0.99902052, 0.99948290, 0.49326817,\
++	-6.27340099, -0.00032064, 0.00019641, 7.27308035, 0.99902062, 0.99948295, 0.49326820,\
++	-6.27340107, -0.00032060, 0.00019639, 7.27308047, 0.99902072, 0.99948301, 0.49326814,\
++	-6.27340115, -0.00032057, 0.00019637, 7.27308058, 0.99902082, 0.99948306, 0.49326794,\
++	-6.27340123, -0.00032054, 0.00019635, 7.27308069, 0.99902092, 0.99948311, 0.49326788,\
++	-6.27340131, -0.00032050, 0.00019633, 7.27308081, 0.99902102, 0.99948317, 0.49326824,\
++	-6.27340139, -0.00032047, 0.00019631, 7.27308092, 0.99902113, 0.99948322, 0.49326821,\
++	-6.27340147, -0.00032044, 0.00019629, 7.27308103, 0.99902123, 0.99948327, 0.49326804,\
++	-6.27340155, -0.00032040, 0.00019627, 7.27308114, 0.99902133, 0.99948333, 0.49326826,\
++	-6.27340163, -0.00032037, 0.00019625, 7.27308126, 0.99902143, 0.99948338, 0.49326837,\
++	-6.27340171, -0.00032034, 0.00019623, 7.27308137, 0.99902153, 0.99948343, 0.49326808,\
++	-6.27340179, -0.00032031, 0.00019621, 7.27308148, 0.99902163, 0.99948349, 0.49326814,\
++	-6.27340187, -0.00032027, 0.00019619, 7.27308159, 0.99902173, 0.99948354, 0.49326823,\
++	-6.27340194, -0.00032024, 0.00019617, 7.27308171, 0.99902183, 0.99948359, 0.49326820,\
++	-6.27340202, -0.00032021, 0.00019615, 7.27308182, 0.99902194, 0.99948365, 0.49326819,\
++	-6.27340210, -0.00032017, 0.00019613, 7.27308193, 0.99902204, 0.99948370, 0.49326828,\
++	-6.27340218, -0.00032014, 0.00019611, 7.27308204, 0.99902214, 0.99948376, 0.49326815,\
++	-6.27340226, -0.00032011, 0.00019608, 7.27308216, 0.99902224, 0.99948381, 0.49326833,\
++	-6.27340234, -0.00032007, 0.00019606, 7.27308227, 0.99902234, 0.99948386, 0.49326820,\
++	-6.27340242, -0.00032004, 0.00019604, 7.27308238, 0.99902244, 0.99948392, 0.49326839,\
++	-6.27340250, -0.00032001, 0.00019602, 7.27308249, 0.99902254, 0.99948397, 0.49326825,\
++	-6.27340258, -0.00031997, 0.00019600, 7.27308261, 0.99902264, 0.99948402, 0.49326820,\
++	-6.27340266, -0.00031994, 0.00019598, 7.27308272, 0.99902274, 0.99948408, 0.49326829,\
++	-6.27340274, -0.00031991, 0.00019596, 7.27308283, 0.99902285, 0.99948413, 0.49326838,\
++	-6.27340282, -0.00031987, 0.00019594, 7.27308294, 0.99902295, 0.99948418, 0.49326829,\
++	-6.27340290, -0.00031984, 0.00019592, 7.27308305, 0.99902305, 0.99948424, 0.49326812,\
++	-6.27340297, -0.00031981, 0.00019590, 7.27308317, 0.99902315, 0.99948429, 0.49326825,\
++	-6.27340305, -0.00031978, 0.00019588, 7.27308328, 0.99902325, 0.99948434, 0.49326844,\
++	-6.27340313, -0.00031974, 0.00019586, 7.27308339, 0.99902335, 0.99948440, 0.49326822,\
++	-6.27340321, -0.00031971, 0.00019584, 7.27308350, 0.99902345, 0.99948445, 0.49326848,\
++	-6.27340329, -0.00031968, 0.00019582, 7.27308361, 0.99902355, 0.99948450, 0.49326823,\
++	-6.27340337, -0.00031964, 0.00019580, 7.27308373, 0.99902365, 0.99948455, 0.49326831,\
++	-6.27340345, -0.00031961, 0.00019578, 7.27308384, 0.99902375, 0.99948461, 0.49326842,\
++	-6.27340353, -0.00031958, 0.00019576, 7.27308395, 0.99902385, 0.99948466, 0.49326833,\
++	-6.27340361, -0.00031954, 0.00019574, 7.27308406, 0.99902396, 0.99948471, 0.49326844,\
++	-6.27340369, -0.00031951, 0.00019572, 7.27308417, 0.99902406, 0.99948477, 0.49326841,\
++	-6.27340377, -0.00031948, 0.00019570, 7.27308429, 0.99902416, 0.99948482, 0.49326813,\
++	-6.27340384, -0.00031945, 0.00019568, 7.27308440, 0.99902426, 0.99948487, 0.49326861,\
++	-6.27340392, -0.00031941, 0.00019566, 7.27308451, 0.99902436, 0.99948493, 0.49326836,\
++	-6.27340400, -0.00031938, 0.00019564, 7.27308462, 0.99902446, 0.99948498, 0.49326869,\
++	-6.27340408, -0.00031935, 0.00019562, 7.27308473, 0.99902456, 0.99948503, 0.49326883,\
++	-6.27340416, -0.00031931, 0.00019560, 7.27308485, 0.99902466, 0.99948509, 0.49326857,\
++	-6.27340424, -0.00031928, 0.00019558, 7.27308496, 0.99902476, 0.99948514, 0.49326861,\
++	-6.27340432, -0.00031925, 0.00019556, 7.27308507, 0.99902486, 0.99948519, 0.49326841,\
++	-6.27340440, -0.00031922, 0.00019554, 7.27308518, 0.99902496, 0.99948525, 0.49326856,\
++	-6.27340448, -0.00031918, 0.00019552, 7.27308529, 0.99902506, 0.99948530, 0.49326867,\
++	-6.27340455, -0.00031915, 0.00019550, 7.27308540, 0.99902516, 0.99948535, 0.49326859,\
++	-6.27340463, -0.00031912, 0.00019548, 7.27308552, 0.99902526, 0.99948541, 0.49326854,\
++	-6.27340471, -0.00031908, 0.00019546, 7.27308563, 0.99902536, 0.99948546, 0.49326869,\
++	-6.27340479, -0.00031905, 0.00019544, 7.27308574, 0.99902546, 0.99948551, 0.49326853,\
++	-6.27340487, -0.00031902, 0.00019542, 7.27308585, 0.99902557, 0.99948556, 0.49326880,\
++	-6.27340495, -0.00031899, 0.00019540, 7.27308596, 0.99902567, 0.99948562, 0.49326872,\
++	-6.27340503, -0.00031895, 0.00019538, 7.27308607, 0.99902577, 0.99948567, 0.49326861,\
++	-6.27340511, -0.00031892, 0.00019536, 7.27308619, 0.99902587, 0.99948572, 0.49326878,\
++	-6.27340518, -0.00031889, 0.00019534, 7.27308630, 0.99902597, 0.99948578, 0.49326876,\
++	-6.27340526, -0.00031885, 0.00019532, 7.27308641, 0.99902607, 0.99948583, 0.49326873,\
++	-6.27340534, -0.00031882, 0.00019530, 7.27308652, 0.99902617, 0.99948588, 0.49326869,\
++	-6.27340542, -0.00031879, 0.00019528, 7.27308663, 0.99902627, 0.99948594, 0.49326868,\
++	-6.27340550, -0.00031876, 0.00019526, 7.27308674, 0.99902637, 0.99948599, 0.49326886,\
++	-6.27340558, -0.00031872, 0.00019524, 7.27308685, 0.99902647, 0.99948604, 0.49326868,\
++	-6.27340566, -0.00031869, 0.00019522, 7.27308697, 0.99902657, 0.99948609, 0.49326883,\
++	-6.27340573, -0.00031866, 0.00019520, 7.27308708, 0.99902667, 0.99948615, 0.49326876,\
++	-6.27340581, -0.00031862, 0.00019518, 7.27308719, 0.99902677, 0.99948620, 0.49326874,\
++	-6.27340589, -0.00031859, 0.00019516, 7.27308730, 0.99902687, 0.99948625, 0.49326882,\
++	-6.27340597, -0.00031856, 0.00019514, 7.27308741, 0.99902697, 0.99948631, 0.49326866,\
++	-6.27340605, -0.00031853, 0.00019512, 7.27308752, 0.99902707, 0.99948636, 0.49326860,\
++	-6.27340613, -0.00031849, 0.00019510, 7.27308763, 0.99902717, 0.99948641, 0.49326865,\
++	-6.27340621, -0.00031846, 0.00019508, 7.27308775, 0.99902727, 0.99948646, 0.49326872,\
++	-6.27340628, -0.00031843, 0.00019506, 7.27308786, 0.99902737, 0.99948652, 0.49326863,\
++	-6.27340636, -0.00031839, 0.00019504, 7.27308797, 0.99902747, 0.99948657, 0.49326869,\
++	-6.27340644, -0.00031836, 0.00019502, 7.27308808, 0.99902757, 0.99948662, 0.49326888,\
++	-6.27340652, -0.00031833, 0.00019500, 7.27308819, 0.99902767, 0.99948668, 0.49326895,\
++	-6.27340660, -0.00031830, 0.00019498, 7.27308830, 0.99902777, 0.99948673, 0.49326876,\
++	-6.27340668, -0.00031826, 0.00019496, 7.27308841, 0.99902787, 0.99948678, 0.49326889,\
++	-6.27340675, -0.00031823, 0.00019494, 7.27308852, 0.99902797, 0.99948683, 0.49326878,\
++	-6.27340683, -0.00031820, 0.00019492, 7.27308863, 0.99902807, 0.99948689, 0.49326887,\
++	-6.27340691, -0.00031817, 0.00019490, 7.27308875, 0.99902817, 0.99948694, 0.49326916,\
++	-6.27340699, -0.00031813, 0.00019488, 7.27308886, 0.99902827, 0.99948699, 0.49326908,\
++	-6.27340707, -0.00031810, 0.00019486, 7.27308897, 0.99902837, 0.99948704, 0.49326893,\
++	-6.27340715, -0.00031807, 0.00019484, 7.27308908, 0.99902847, 0.99948710, 0.49326890,\
++	-6.27340722, -0.00031803, 0.00019482, 7.27308919, 0.99902857, 0.99948715, 0.49326887,\
++	-6.27340730, -0.00031800, 0.00019480, 7.27308930, 0.99902867, 0.99948720, 0.49326878,\
++	-6.27340738, -0.00031797, 0.00019478, 7.27308941, 0.99902877, 0.99948726, 0.49326894,\
++	-6.27340746, -0.00031794, 0.00019476, 7.27308952, 0.99902887, 0.99948731, 0.49326894,\
++	-6.27340754, -0.00031790, 0.00019474, 7.27308963, 0.99902897, 0.99948736, 0.49326908,\
++	-6.27340761, -0.00031787, 0.00019472, 7.27308974, 0.99902907, 0.99948741, 0.49326876,\
++	-6.27340769, -0.00031784, 0.00019470, 7.27308985, 0.99902917, 0.99948747, 0.49326912,\
++	-6.27340777, -0.00031781, 0.00019468, 7.27308996, 0.99902927, 0.99948752, 0.49326904,\
++	-6.27340785, -0.00031777, 0.00019466, 7.27309008, 0.99902937, 0.99948757, 0.49326901,\
++	-6.27340793, -0.00031774, 0.00019464, 7.27309019, 0.99902947, 0.99948762, 0.49326930,\
++	-6.27340801, -0.00031771, 0.00019462, 7.27309030, 0.99902957, 0.99948768, 0.49326907,\
++	-6.27340808, -0.00031768, 0.00019460, 7.27309041, 0.99902967, 0.99948773, 0.49326924,\
++	-6.27340816, -0.00031764, 0.00019458, 7.27309052, 0.99902977, 0.99948778, 0.49326904,\
++	-6.27340824, -0.00031761, 0.00019456, 7.27309063, 0.99902987, 0.99948783, 0.49326893,\
++	-6.27340832, -0.00031758, 0.00019454, 7.27309074, 0.99902997, 0.99948789, 0.49326909,\
++	-6.27340840, -0.00031755, 0.00019452, 7.27309085, 0.99903006, 0.99948794, 0.49326930,\
++	-6.27340847, -0.00031751, 0.00019450, 7.27309096, 0.99903016, 0.99948799, 0.49326922,\
++	-6.27340855, -0.00031748, 0.00019448, 7.27309107, 0.99903026, 0.99948804, 0.49326913,\
++	-6.27340863, -0.00031745, 0.00019446, 7.27309118, 0.99903036, 0.99948810, 0.49326905,\
++	-6.27340871, -0.00031742, 0.00019444, 7.27309129, 0.99903046, 0.99948815, 0.49326923,\
++	-6.27340879, -0.00031738, 0.00019442, 7.27309140, 0.99903056, 0.99948820, 0.49326938,\
++	-6.27340886, -0.00031735, 0.00019440, 7.27309151, 0.99903066, 0.99948825, 0.49326909,\
++	-6.27340894, -0.00031732, 0.00019438, 7.27309162, 0.99903076, 0.99948831, 0.49326912,\
++	-6.27340902, -0.00031728, 0.00019436, 7.27309173, 0.99903086, 0.99948836, 0.49326920,\
++	-6.27340910, -0.00031725, 0.00019434, 7.27309184, 0.99903096, 0.99948841, 0.49326917,\
++	-6.27340917, -0.00031722, 0.00019432, 7.27309196, 0.99903106, 0.99948846, 0.49326921,\
++	-6.27340925, -0.00031719, 0.00019430, 7.27309207, 0.99903116, 0.99948852, 0.49326919,\
++	-6.27340933, -0.00031715, 0.00019428, 7.27309218, 0.99903126, 0.99948857, 0.49326928,\
++	-6.27340941, -0.00031712, 0.00019426, 7.27309229, 0.99903136, 0.99948862, 0.49326918,\
++	-6.27340949, -0.00031709, 0.00019424, 7.27309240, 0.99903146, 0.99948867, 0.49326958,\
++	-6.27340956, -0.00031706, 0.00019422, 7.27309251, 0.99903156, 0.99948873, 0.49326936,\
++	-6.27340964, -0.00031702, 0.00019420, 7.27309262, 0.99903165, 0.99948878, 0.49326927,\
++	-6.27340972, -0.00031699, 0.00019418, 7.27309273, 0.99903175, 0.99948883, 0.49326942,\
++	-6.27340980, -0.00031696, 0.00019416, 7.27309284, 0.99903185, 0.99948888, 0.49326912,\
++	-6.27340987, -0.00031693, 0.00019414, 7.27309295, 0.99903195, 0.99948894, 0.49326924,\
++	-6.27340995, -0.00031690, 0.00019412, 7.27309306, 0.99903205, 0.99948899, 0.49326951,\
++	-6.27341003, -0.00031686, 0.00019410, 7.27309317, 0.99903215, 0.99948904, 0.49326942,\
++	-6.27341011, -0.00031683, 0.00019408, 7.27309328, 0.99903225, 0.99948909, 0.49326925,\
++	-6.27341019, -0.00031680, 0.00019406, 7.27309339, 0.99903235, 0.99948914, 0.49326927,\
++	-6.27341026, -0.00031677, 0.00019404, 7.27309350, 0.99903245, 0.99948920, 0.49326936,\
++	-6.27341034, -0.00031673, 0.00019402, 7.27309361, 0.99903255, 0.99948925, 0.49326944,\
++	-6.27341042, -0.00031670, 0.00019400, 7.27309372, 0.99903265, 0.99948930, 0.49326949,\
++	-6.27341050, -0.00031667, 0.00019398, 7.27309383, 0.99903274, 0.99948935, 0.49326915,\
++	-6.27341057, -0.00031664, 0.00019396, 7.27309394, 0.99903284, 0.99948941, 0.49326929,\
++	-6.27341065, -0.00031660, 0.00019394, 7.27309405, 0.99903294, 0.99948946, 0.49326955,\
++	-6.27341073, -0.00031657, 0.00019392, 7.27309416, 0.99903304, 0.99948951, 0.49326921,\
++	-6.27341081, -0.00031654, 0.00019390, 7.27309427, 0.99903314, 0.99948956, 0.49326941,\
++	-6.27341088, -0.00031651, 0.00019388, 7.27309438, 0.99903324, 0.99948961, 0.49326954,\
++	-6.27341096, -0.00031647, 0.00019386, 7.27309449, 0.99903334, 0.99948967, 0.49326935,\
++	-6.27341104, -0.00031644, 0.00019384, 7.27309460, 0.99903344, 0.99948972, 0.49326969,\
++	-6.27341112, -0.00031641, 0.00019382, 7.27309471, 0.99903354, 0.99948977, 0.49326971,\
++	-6.27341119, -0.00031638, 0.00019380, 7.27309482, 0.99903363, 0.99948982, 0.49326945,\
++	-6.27341127, -0.00031634, 0.00019378, 7.27309493, 0.99903373, 0.99948988, 0.49326964,\
++	-6.27341135, -0.00031631, 0.00019376, 7.27309504, 0.99903383, 0.99948993, 0.49326955,\
++	-6.27341143, -0.00031628, 0.00019374, 7.27309515, 0.99903393, 0.99948998, 0.49326931,\
++	-6.27341150, -0.00031625, 0.00019372, 7.27309526, 0.99903403, 0.99949003, 0.49326939,\
++	-6.27341158, -0.00031622, 0.00019370, 7.27309537, 0.99903413, 0.99949008, 0.49326953,\
++	-6.27341166, -0.00031618, 0.00019368, 7.27309547, 0.99903423, 0.99949014, 0.49326974,\
++	-6.27341173, -0.00031615, 0.00019366, 7.27309558, 0.99903433, 0.99949019, 0.49326980,\
++	-6.27341181, -0.00031612, 0.00019364, 7.27309569, 0.99903442, 0.99949024, 0.49326965,\
++	-6.27341189, -0.00031609, 0.00019362, 7.27309580, 0.99903452, 0.99949029, 0.49326969,\
++	-6.27341197, -0.00031605, 0.00019360, 7.27309591, 0.99903462, 0.99949034, 0.49326954,\
++	-6.27341204, -0.00031602, 0.00019358, 7.27309602, 0.99903472, 0.99949040, 0.49326953,\
++	-6.27341212, -0.00031599, 0.00019356, 7.27309613, 0.99903482, 0.99949045, 0.49326986,\
++	-6.27341220, -0.00031596, 0.00019354, 7.27309624, 0.99903492, 0.99949050, 0.49326990,\
++	-6.27341228, -0.00031592, 0.00019352, 7.27309635, 0.99903502, 0.99949055, 0.49326950,\
++	-6.27341235, -0.00031589, 0.00019350, 7.27309646, 0.99903511, 0.99949060, 0.49326968,\
++	-6.27341243, -0.00031586, 0.00019348, 7.27309657, 0.99903521, 0.99949066, 0.49326946,\
++	-6.27341251, -0.00031583, 0.00019346, 7.27309668, 0.99903531, 0.99949071, 0.49326958,\
++	-6.27341258, -0.00031580, 0.00019344, 7.27309679, 0.99903541, 0.99949076, 0.49326990,\
++	-6.27341266, -0.00031576, 0.00019342, 7.27309690, 0.99903551, 0.99949081, 0.49326972,\
++	-6.27341274, -0.00031573, 0.00019340, 7.27309701, 0.99903561, 0.99949086, 0.49326980,\
++	-6.27341282, -0.00031570, 0.00019338, 7.27309712, 0.99903570, 0.99949092, 0.49327001,\
++	-6.27341289, -0.00031567, 0.00019336, 7.27309723, 0.99903580, 0.99949097, 0.49326985,\
++	-6.27341297, -0.00031563, 0.00019334, 7.27309734, 0.99903590, 0.99949102, 0.49326983,\
++	-6.27341305, -0.00031560, 0.00019333, 7.27309744, 0.99903600, 0.99949107, 0.49326985,\
++	-6.27341312, -0.00031557, 0.00019331, 7.27309755, 0.99903610, 0.99949112, 0.49327005,\
++	-6.27341320, -0.00031554, 0.00019329, 7.27309766, 0.99903620, 0.99949118, 0.49326985,\
++	-6.27341328, -0.00031551, 0.00019327, 7.27309777, 0.99903629, 0.99949123, 0.49326980,\
++	-6.27341336, -0.00031547, 0.00019325, 7.27309788, 0.99903639, 0.99949128, 0.49326990,\
++	-6.27341343, -0.00031544, 0.00019323, 7.27309799, 0.99903649, 0.99949133, 0.49326985,\
++	-6.27341351, -0.00031541, 0.00019321, 7.27309810, 0.99903659, 0.99949138, 0.49326999,\
++	-6.27341359, -0.00031538, 0.00019319, 7.27309821, 0.99903669, 0.99949144, 0.49326989,\
++	-6.27341366, -0.00031535, 0.00019317, 7.27309832, 0.99903679, 0.99949149, 0.49326987,\
++	-6.27341374, -0.00031531, 0.00019315, 7.27309843, 0.99903688, 0.99949154, 0.49327012,\
++	-6.27341382, -0.00031528, 0.00019313, 7.27309854, 0.99903698, 0.99949159, 0.49326994,\
++	-6.27341389, -0.00031525, 0.00019311, 7.27309864, 0.99903708, 0.99949164, 0.49327001,\
++	-6.27341397, -0.00031522, 0.00019309, 7.27309875, 0.99903718, 0.99949169, 0.49327008,\
++	-6.27341405, -0.00031519, 0.00019307, 7.27309886, 0.99903728, 0.99949175, 0.49327008,\
++	-6.27341412, -0.00031515, 0.00019305, 7.27309897, 0.99903737, 0.99949180, 0.49326970,\
++	-6.27341420, -0.00031512, 0.00019303, 7.27309908, 0.99903747, 0.99949185, 0.49326989,\
++	-6.27341428, -0.00031509, 0.00019301, 7.27309919, 0.99903757, 0.99949190, 0.49326992,\
++	-6.27341435, -0.00031506, 0.00019299, 7.27309930, 0.99903767, 0.99949195, 0.49327000,\
++	-6.27341443, -0.00031502, 0.00019297, 7.27309941, 0.99903777, 0.99949200, 0.49327006,\
++	-6.27341451, -0.00031499, 0.00019295, 7.27309952, 0.99903786, 0.99949206, 0.49327023,\
++	-6.27341459, -0.00031496, 0.00019293, 7.27309962, 0.99903796, 0.99949211, 0.49327002,\
++	-6.27341466, -0.00031493, 0.00019291, 7.27309973, 0.99903806, 0.99949216, 0.49327004,\
++	-6.27341474, -0.00031490, 0.00019289, 7.27309984, 0.99903816, 0.99949221, 0.49327010,\
++	-6.27341482, -0.00031486, 0.00019287, 7.27309995, 0.99903826, 0.99949226, 0.49327000,\
++	-6.27341489, -0.00031483, 0.00019285, 7.27310006, 0.99903835, 0.99949231, 0.49326994,\
++	-6.27341497, -0.00031480, 0.00019283, 7.27310017, 0.99903845, 0.99949237, 0.49327008,\
++	-6.27341505, -0.00031477, 0.00019281, 7.27310028, 0.99903855, 0.99949242, 0.49327002,\
++	-6.27341512, -0.00031474, 0.00019279, 7.27310039, 0.99903865, 0.99949247, 0.49327015,\
++	-6.27341520, -0.00031470, 0.00019277, 7.27310049, 0.99903874, 0.99949252, 0.49326998,\
++	-6.27341528, -0.00031467, 0.00019275, 7.27310060, 0.99903884, 0.99949257, 0.49327030,\
++	-6.27341535, -0.00031464, 0.00019274, 7.27310071, 0.99903894, 0.99949262, 0.49326995,\
++	-6.27341543, -0.00031461, 0.00019272, 7.27310082, 0.99903904, 0.99949268, 0.49327013,\
++	-6.27341550, -0.00031458, 0.00019270, 7.27310093, 0.99903914, 0.99949273, 0.49327030,\
++	-6.27341558, -0.00031454, 0.00019268, 7.27310104, 0.99903923, 0.99949278, 0.49327016,\
++	-6.27341566, -0.00031451, 0.00019266, 7.27310115, 0.99903933, 0.99949283, 0.49327003,\
++	-6.27341573, -0.00031448, 0.00019264, 7.27310125, 0.99903943, 0.99949288, 0.49327020,\
++	-6.27341581, -0.00031445, 0.00019262, 7.27310136, 0.99903953, 0.99949293, 0.49327016,\
++	-6.27341589, -0.00031442, 0.00019260, 7.27310147, 0.99903962, 0.99949298, 0.49327038,\
++	-6.27341596, -0.00031438, 0.00019258, 7.27310158, 0.99903972, 0.99949304, 0.49327020,\
++	-6.27341604, -0.00031435, 0.00019256, 7.27310169, 0.99903982, 0.99949309, 0.49326989,\
++	-6.27341612, -0.00031432, 0.00019254, 7.27310180, 0.99903992, 0.99949314, 0.49327033,\
++	-6.27341619, -0.00031429, 0.00019252, 7.27310190, 0.99904001, 0.99949319, 0.49327021,\
++	-6.27341627, -0.00031426, 0.00019250, 7.27310201, 0.99904011, 0.99949324, 0.49327047,\
++	-6.27341635, -0.00031423, 0.00019248, 7.27310212, 0.99904021, 0.99949329, 0.49327024,\
++	-6.27341642, -0.00031419, 0.00019246, 7.27310223, 0.99904031, 0.99949335, 0.49327034,\
++	-6.27341650, -0.00031416, 0.00019244, 7.27310234, 0.99904040, 0.99949340, 0.49327024,\
++	-6.27341658, -0.00031413, 0.00019242, 7.27310245, 0.99904050, 0.99949345, 0.49327049,\
++	-6.27341665, -0.00031410, 0.00019240, 7.27310255, 0.99904060, 0.99949350, 0.49327029,\
++	-6.27341673, -0.00031407, 0.00019238, 7.27310266, 0.99904070, 0.99949355, 0.49327027,\
++	-6.27341680, -0.00031403, 0.00019236, 7.27310277, 0.99904079, 0.99949360, 0.49327052,\
++	-6.27341688, -0.00031400, 0.00019234, 7.27310288, 0.99904089, 0.99949365, 0.49327062,\
++	-6.27341696, -0.00031397, 0.00019232, 7.27310299, 0.99904099, 0.99949370, 0.49327051,\
++	-6.27341703, -0.00031394, 0.00019231, 7.27310309, 0.99904108, 0.99949376, 0.49327035,\
++	-6.27341711, -0.00031391, 0.00019229, 7.27310320, 0.99904118, 0.99949381, 0.49327029,\
++	-6.27341719, -0.00031387, 0.00019227, 7.27310331, 0.99904128, 0.99949386, 0.49327040,\
++	-6.27341726, -0.00031384, 0.00019225, 7.27310342, 0.99904138, 0.99949391, 0.49327054,\
++	-6.27341734, -0.00031381, 0.00019223, 7.27310353, 0.99904147, 0.99949396, 0.49327057,\
++	-6.27341741, -0.00031378, 0.00019221, 7.27310363, 0.99904157, 0.99949401, 0.49327065,\
++	-6.27341749, -0.00031375, 0.00019219, 7.27310374, 0.99904167, 0.99949406, 0.49327055,\
++	-6.27341757, -0.00031372, 0.00019217, 7.27310385, 0.99904177, 0.99949412, 0.49327044,\
++	-6.27341764, -0.00031368, 0.00019215, 7.27310396, 0.99904186, 0.99949417, 0.49327060,\
++	-6.27341772, -0.00031365, 0.00019213, 7.27310407, 0.99904196, 0.99949422, 0.49327062,\
++	-6.27341779, -0.00031362, 0.00019211, 7.27310417, 0.99904206, 0.99949427, 0.49327057,\
++	-6.27341787, -0.00031359, 0.00019209, 7.27310428, 0.99904215, 0.99949432, 0.49327068,\
++	-6.27341795, -0.00031356, 0.00019207, 7.27310439, 0.99904225, 0.99949437, 0.49327087,\
++	-6.27341802, -0.00031353, 0.00019205, 7.27310450, 0.99904235, 0.99949442, 0.49327065,\
++	-6.27341810, -0.00031349, 0.00019203, 7.27310461, 0.99904244, 0.99949447, 0.49327040,\
++	-6.27341817, -0.00031346, 0.00019201, 7.27310471, 0.99904254, 0.99949453, 0.49327056,\
++	-6.27341825, -0.00031343, 0.00019199, 7.27310482, 0.99904264, 0.99949458, 0.49327057,\
++	-6.27341833, -0.00031340, 0.00019197, 7.27310493, 0.99904274, 0.99949463, 0.49327059,\
++	-6.27341840, -0.00031337, 0.00019195, 7.27310504, 0.99904283, 0.99949468, 0.49327075,\
++	-6.27341848, -0.00031333, 0.00019194, 7.27310514, 0.99904293, 0.99949473, 0.49327058,\
++	-6.27341855, -0.00031330, 0.00019192, 7.27310525, 0.99904303, 0.99949478, 0.49327073,\
++	-6.27341863, -0.00031327, 0.00019190, 7.27310536, 0.99904312, 0.99949483, 0.49327054,\
++	-6.27341871, -0.00031324, 0.00019188, 7.27310547, 0.99904322, 0.99949488, 0.49327048,\
++	-6.27341878, -0.00031321, 0.00019186, 7.27310557, 0.99904332, 0.99949493, 0.49327086,\
++	-6.27341886, -0.00031318, 0.00019184, 7.27310568, 0.99904341, 0.99949499, 0.49327056,\
++	-6.27341893, -0.00031314, 0.00019182, 7.27310579, 0.99904351, 0.99949504, 0.49327071,\
++	-6.27341901, -0.00031311, 0.00019180, 7.27310590, 0.99904361, 0.99949509, 0.49327045,\
++	-6.27341909, -0.00031308, 0.00019178, 7.27310600, 0.99904370, 0.99949514, 0.49327067,\
++	-6.27341916, -0.00031305, 0.00019176, 7.27310611, 0.99904380, 0.99949519, 0.49327067,\
++	-6.27341924, -0.00031302, 0.00019174, 7.27310622, 0.99904390, 0.99949524, 0.49327074,\
++	-6.27341931, -0.00031299, 0.00019172, 7.27310633, 0.99904399, 0.99949529, 0.49327107,\
++	-6.27341939, -0.00031295, 0.00019170, 7.27310643, 0.99904409, 0.99949534, 0.49327064,\
++	-6.27341946, -0.00031292, 0.00019168, 7.27310654, 0.99904419, 0.99949539, 0.49327063,\
++	-6.27341954, -0.00031289, 0.00019166, 7.27310665, 0.99904428, 0.99949545, 0.49327050,\
++	-6.27341962, -0.00031286, 0.00019164, 7.27310676, 0.99904438, 0.99949550, 0.49327069,\
++	-6.27341969, -0.00031283, 0.00019162, 7.27310686, 0.99904448, 0.99949555, 0.49327081,\
++	-6.27341977, -0.00031280, 0.00019161, 7.27310697, 0.99904457, 0.99949560, 0.49327077,\
++	-6.27341984, -0.00031276, 0.00019159, 7.27310708, 0.99904467, 0.99949565, 0.49327081,\
++	-6.27341992, -0.00031273, 0.00019157, 7.27310719, 0.99904477, 0.99949570, 0.49327088,\
++	-6.27341999, -0.00031270, 0.00019155, 7.27310729, 0.99904486, 0.99949575, 0.49327082,\
++	-6.27342007, -0.00031267, 0.00019153, 7.27310740, 0.99904496, 0.99949580, 0.49327067,\
++	-6.27342015, -0.00031264, 0.00019151, 7.27310751, 0.99904506, 0.99949585, 0.49327061,\
++	-6.27342022, -0.00031261, 0.00019149, 7.27310761, 0.99904515, 0.99949590, 0.49327079,\
++	-6.27342030, -0.00031258, 0.00019147, 7.27310772, 0.99904525, 0.99949595, 0.49327103,\
++	-6.27342037, -0.00031254, 0.00019145, 7.27310783, 0.99904535, 0.99949601, 0.49327107,\
++	-6.27342045, -0.00031251, 0.00019143, 7.27310794, 0.99904544, 0.99949606, 0.49327084,\
++	-6.27342052, -0.00031248, 0.00019141, 7.27310804, 0.99904554, 0.99949611, 0.49327096,\
++	-6.27342060, -0.00031245, 0.00019139, 7.27310815, 0.99904563, 0.99949616, 0.49327062,\
++	-6.27342067, -0.00031242, 0.00019137, 7.27310826, 0.99904573, 0.99949621, 0.49327088,\
++	-6.27342075, -0.00031239, 0.00019135, 7.27310836, 0.99904583, 0.99949626, 0.49327094,\
++	-6.27342083, -0.00031235, 0.00019133, 7.27310847, 0.99904592, 0.99949631, 0.49327095,\
++	-6.27342090, -0.00031232, 0.00019132, 7.27310858, 0.99904602, 0.99949636, 0.49327111,\
++	-6.27342098, -0.00031229, 0.00019130, 7.27310869, 0.99904612, 0.99949641, 0.49327066,\
++	-6.27342105, -0.00031226, 0.00019128, 7.27310879, 0.99904621, 0.99949646, 0.49327112,\
++	-6.27342113, -0.00031223, 0.00019126, 7.27310890, 0.99904631, 0.99949651, 0.49327094,\
++	-6.27342120, -0.00031220, 0.00019124, 7.27310901, 0.99904641, 0.99949656, 0.49327097,\
++	-6.27342128, -0.00031217, 0.00019122, 7.27310911, 0.99904650, 0.99949662, 0.49327094,\
++	-6.27342135, -0.00031213, 0.00019120, 7.27310922, 0.99904660, 0.99949667, 0.49327120,\
++	-6.27342143, -0.00031210, 0.00019118, 7.27310933, 0.99904669, 0.99949672, 0.49327123,\
++	-6.27342150, -0.00031207, 0.00019116, 7.27310943, 0.99904679, 0.99949677, 0.49327124,\
++	-6.27342158, -0.00031204, 0.00019114, 7.27310954, 0.99904689, 0.99949682, 0.49327089,\
++	-6.27342166, -0.00031201, 0.00019112, 7.27310965, 0.99904698, 0.99949687, 0.49327096,\
++	-6.27342173, -0.00031198, 0.00019110, 7.27310975, 0.99904708, 0.99949692, 0.49327093,\
++	-6.27342181, -0.00031195, 0.00019108, 7.27310986, 0.99904717, 0.99949697, 0.49327128,\
++	-6.27342188, -0.00031191, 0.00019106, 7.27310997, 0.99904727, 0.99949702, 0.49327122,\
++	-6.27342196, -0.00031188, 0.00019105, 7.27311007, 0.99904737, 0.99949707, 0.49327128,\
++	-6.27342203, -0.00031185, 0.00019103, 7.27311018, 0.99904746, 0.99949712, 0.49327113,\
++	-6.27342211, -0.00031182, 0.00019101, 7.27311029, 0.99904756, 0.99949717, 0.49327121,\
++	-6.27342218, -0.00031179, 0.00019099, 7.27311039, 0.99904765, 0.99949722, 0.49327115,\
++	-6.27342226, -0.00031176, 0.00019097, 7.27311050, 0.99904775, 0.99949727, 0.49327114,\
++	-6.27342233, -0.00031173, 0.00019095, 7.27311061, 0.99904785, 0.99949733, 0.49327102,\
++	-6.27342241, -0.00031169, 0.00019093, 7.27311071, 0.99904794, 0.99949738, 0.49327120,\
++	-6.27342248, -0.00031166, 0.00019091, 7.27311082, 0.99904804, 0.99949743, 0.49327130,\
++	-6.27342256, -0.00031163, 0.00019089, 7.27311093, 0.99904813, 0.99949748, 0.49327109,\
++	-6.27342263, -0.00031160, 0.00019087, 7.27311103, 0.99904823, 0.99949753, 0.49327132,\
++	-6.27342271, -0.00031157, 0.00019085, 7.27311114, 0.99904833, 0.99949758, 0.49327146,\
++	-6.27342278, -0.00031154, 0.00019083, 7.27311125, 0.99904842, 0.99949763, 0.49327090,\
++	-6.27342286, -0.00031151, 0.00019081, 7.27311135, 0.99904852, 0.99949768, 0.49327123,\
++	-6.27342293, -0.00031147, 0.00019080, 7.27311146, 0.99904861, 0.99949773, 0.49327134,\
++	-6.27342301, -0.00031144, 0.00019078, 7.27311156, 0.99904871, 0.99949778, 0.49327133,\
++	-6.27342308, -0.00031141, 0.00019076, 7.27311167, 0.99904880, 0.99949783, 0.49327117,\
++	-6.27342316, -0.00031138, 0.00019074, 7.27311178, 0.99904890, 0.99949788, 0.49327124,\
++	-6.27342323, -0.00031135, 0.00019072, 7.27311188, 0.99904900, 0.99949793, 0.49327116,\
++	-6.27342331, -0.00031132, 0.00019070, 7.27311199, 0.99904909, 0.99949798, 0.49327125,\
++	-6.27342338, -0.00031129, 0.00019068, 7.27311210, 0.99904919, 0.99949803, 0.49327132,\
++	-6.27342346, -0.00031126, 0.00019066, 7.27311220, 0.99904928, 0.99949808, 0.49327161,\
++	-6.27342353, -0.00031122, 0.00019064, 7.27311231, 0.99904938, 0.99949813, 0.49327137,\
++	-6.27342361, -0.00031119, 0.00019062, 7.27311242, 0.99904947, 0.99949818, 0.49327141,\
++	-6.27342368, -0.00031116, 0.00019060, 7.27311252, 0.99904957, 0.99949824, 0.49327151,\
++	-6.27342376, -0.00031113, 0.00019058, 7.27311263, 0.99904966, 0.99949829, 0.49327147,\
++	-6.27342383, -0.00031110, 0.00019057, 7.27311273, 0.99904976, 0.99949834, 0.49327157,\
++	-6.27342391, -0.00031107, 0.00019055, 7.27311284, 0.99904986, 0.99949839, 0.49327158,\
++	-6.27342398, -0.00031104, 0.00019053, 7.27311295, 0.99904995, 0.99949844, 0.49327140,\
++	-6.27342406, -0.00031101, 0.00019051, 7.27311305, 0.99905005, 0.99949849, 0.49327149,\
++	-6.27342413, -0.00031097, 0.00019049, 7.27311316, 0.99905014, 0.99949854, 0.49327130,\
++	-6.27342421, -0.00031094, 0.00019047, 7.27311326, 0.99905024, 0.99949859, 0.49327138,\
++	-6.27342428, -0.00031091, 0.00019045, 7.27311337, 0.99905033, 0.99949864, 0.49327154,\
++	-6.27342436, -0.00031088, 0.00019043, 7.27311348, 0.99905043, 0.99949869, 0.49327144,\
++	-6.27342443, -0.00031085, 0.00019041, 7.27311358, 0.99905052, 0.99949874, 0.49327149,\
++	-6.27342451, -0.00031082, 0.00019039, 7.27311369, 0.99905062, 0.99949879, 0.49327160,\
++	-6.27342458, -0.00031079, 0.00019037, 7.27311379, 0.99905071, 0.99949884, 0.49327162,\
++	-6.27342466, -0.00031076, 0.00019035, 7.27311390, 0.99905081, 0.99949889, 0.49327146,\
++	-6.27342473, -0.00031072, 0.00019034, 7.27311401, 0.99905091, 0.99949894, 0.49327178,\
++	-6.27342480, -0.00031069, 0.00019032, 7.27311411, 0.99905100, 0.99949899, 0.49327156,\
++	-6.27342488, -0.00031066, 0.00019030, 7.27311422, 0.99905110, 0.99949904, 0.49327151,\
++	-6.27342495, -0.00031063, 0.00019028, 7.27311432, 0.99905119, 0.99949909, 0.49327157,\
++	-6.27342503, -0.00031060, 0.00019026, 7.27311443, 0.99905129, 0.99949914, 0.49327162,\
++	-6.27342510, -0.00031057, 0.00019024, 7.27311453, 0.99905138, 0.99949919, 0.49327180,\
++	-6.27342518, -0.00031054, 0.00019022, 7.27311464, 0.99905148, 0.99949924, 0.49327153,\
++	-6.27342525, -0.00031051, 0.00019020, 7.27311475, 0.99905157, 0.99949929, 0.49327170,\
++	-6.27342533, -0.00031047, 0.00019018, 7.27311485, 0.99905167, 0.99949934, 0.49327164,\
++	-6.27342540, -0.00031044, 0.00019016, 7.27311496, 0.99905176, 0.99949939, 0.49327177,\
++	-6.27342548, -0.00031041, 0.00019014, 7.27311506, 0.99905186, 0.99949944, 0.49327171,\
++	-6.27342555, -0.00031038, 0.00019013, 7.27311517, 0.99905195, 0.99949949, 0.49327163,\
++	-6.27342563, -0.00031035, 0.00019011, 7.27311527, 0.99905205, 0.99949954, 0.49327148,\
++	-6.27342570, -0.00031032, 0.00019009, 7.27311538, 0.99905214, 0.99949959, 0.49327177,\
++	-6.27342577, -0.00031029, 0.00019007, 7.27311549, 0.99905224, 0.99949964, 0.49327190,\
++	-6.27342585, -0.00031026, 0.00019005, 7.27311559, 0.99905233, 0.99949969, 0.49327174,\
++	-6.27342592, -0.00031023, 0.00019003, 7.27311570, 0.99905243, 0.99949974, 0.49327179,\
++	-6.27342600, -0.00031019, 0.00019001, 7.27311580, 0.99905252, 0.99949979, 0.49327165,\
++	-6.27342607, -0.00031016, 0.00018999, 7.27311591, 0.99905262, 0.99949984, 0.49327180,\
++	-6.27342615, -0.00031013, 0.00018997, 7.27311601, 0.99905271, 0.99949989, 0.49327176,\
++	-6.27342622, -0.00031010, 0.00018995, 7.27311612, 0.99905281, 0.99949994, 0.49327155,\
++	-6.27342630, -0.00031007, 0.00018993, 7.27311622, 0.99905290, 0.99949999, 0.49327169,\
++	-6.27342637, -0.00031004, 0.00018992, 7.27311633, 0.99905300, 0.99950004, 0.49327184,\
++	-6.27342644, -0.00031001, 0.00018990, 7.27311644, 0.99905309, 0.99950009, 0.49327184,\
++	-6.27342652, -0.00030998, 0.00018988, 7.27311654, 0.99905319, 0.99950014, 0.49327176,\
++	-6.27342659, -0.00030995, 0.00018986, 7.27311665, 0.99905328, 0.99950019, 0.49327184,\
++	-6.27342667, -0.00030992, 0.00018984, 7.27311675, 0.99905338, 0.99950024, 0.49327166,\
++	-6.27342674, -0.00030988, 0.00018982, 7.27311686, 0.99905347, 0.99950029, 0.49327222,\
++	-6.27342682, -0.00030985, 0.00018980, 7.27311696, 0.99905357, 0.99950034, 0.49327211,\
++	-6.27342689, -0.00030982, 0.00018978, 7.27311707, 0.99905366, 0.99950039, 0.49327202,\
++	-6.27342696, -0.00030979, 0.00018976, 7.27311717, 0.99905376, 0.99950044, 0.49327179,\
++	-6.27342704, -0.00030976, 0.00018974, 7.27311728, 0.99905385, 0.99950049, 0.49327176,\
++	-6.27342711, -0.00030973, 0.00018973, 7.27311738, 0.99905394, 0.99950054, 0.49327202,\
++	-6.27342719, -0.00030970, 0.00018971, 7.27311749, 0.99905404, 0.99950059, 0.49327184,\
++	-6.27342726, -0.00030967, 0.00018969, 7.27311759, 0.99905413, 0.99950064, 0.49327198,\
++	-6.27342733, -0.00030964, 0.00018967, 7.27311770, 0.99905423, 0.99950069, 0.49327205,\
++	-6.27342741, -0.00030961, 0.00018965, 7.27311780, 0.99905432, 0.99950074, 0.49327200,\
++	-6.27342748, -0.00030957, 0.00018963, 7.27311791, 0.99905442, 0.99950079, 0.49327197,\
++	-6.27342756, -0.00030954, 0.00018961, 7.27311801, 0.99905451, 0.99950084, 0.49327183,\
++	-6.27342763, -0.00030951, 0.00018959, 7.27311812, 0.99905461, 0.99950089, 0.49327208,\
++	-6.27342771, -0.00030948, 0.00018957, 7.27311822, 0.99905470, 0.99950094, 0.49327205,\
++	-6.27342778, -0.00030945, 0.00018956, 7.27311833, 0.99905480, 0.99950099, 0.49327194]
++
++	if value=='h':
++		series=love_numbers[:,1]
++	elif value=='k':
++		series=love_numbers[:,2]
++	elif value=='l':
++		series=love_numbers[:,3]
++	elif value=='gamma':
++		series=love_numbers[:,4]
++	elif value=='lambda':
++		series=love_numbers[:,5]
++	else:
++		raise RuntimeError(['love_numbers error message: unknow value:', value])
++		
++	return series
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 0)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20172)
+@@ -0,0 +1,165 @@
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++from pairoptions import *
++
++def gmshplanet(*varargin):
++#GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo
++#
++#   Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
++#
++#   - radius:             radius of the planet in km
++#   - resolution:         resolution in km
++#   - refine:             provide mesh
++#   - refinemetric:       mesh quantity to specify resolution
++#
++#   Returns 'mesh3dsurface' type mesh
++#
++#   Examples:
++#      md.mesh=gmshplanet('radius',6000,'resolution',100);
++#      md.mesh=gmshplanet('radius',6000,'resolution',100);
++
++	#process options
++	options=pairoptions(varargin)
++	options=options.deleteduplicates(1)
++
++	#recover parameters:
++	radius=options.getfieldvalue('radius')*1000
++	resolution=options.getfieldvalue('resolution')*1000
++
++	#initialize mesh: 
++	mesh=mesh3dsurface()
++
++	#create .geo file:  {{{
++	fid=fopen('sphere.geo','w')
++
++	fprintf(fid,'Mesh.Algorithm = 1\n')
++	if options.exist('refine'):
++		fprintf(fid,'Mesh.Algorithm = 7\n')
++		fprintf(fid,'Mesh.CharacteristicLengthFromPoints= 0\n')
++		fprintf(fid,'Mesh.SmoothRatio= 3\n')
++		fprintf(fid,'Mesh.RemeshAlgorithm= 1\n')
++	fprintf(fid,'resolution=#g\n',resolution)
++	fprintf(fid,'radius=#g\n',radius)
++	fprintf(fid,'Point(1) = [0.0,0.0,0.0,resolution]\n')
++	fprintf(fid,'Point(2) = [radius,0.0,0.0,resolution]\n')
++	fprintf(fid,'Point(3) = [0,radius,0.0,resolution]\n')
++	fprintf(fid,'Circle(1) = [2,1,3]\n')
++	fprintf(fid,'Point(4) = [-radius,0,0.0,resolution]\n')
++	fprintf(fid,'Point(5) = [0,-radius,0.0,resolution]\n')
++	fprintf(fid,'Circle(2) = [3,1,4]\n')
++	fprintf(fid,'Circle(3) = [4,1,5]\n')
++	fprintf(fid,'Circle(4) = [5,1,2]\n')
++	fprintf(fid,'Point(6) = [0,0,-radius,resolution]\n')
++	fprintf(fid,'Point(7) = [0,0,radius,resolution]\n')
++	fprintf(fid,'Circle(5) = [3,1,6]\n')
++	fprintf(fid,'Circle(6) = [6,1,5]\n')
++	fprintf(fid,'Circle(7) = [5,1,7]\n')
++	fprintf(fid,'Circle(8) = [7,1,3]\n')
++	fprintf(fid,'Circle(9) = [2,1,7]\n')
++	fprintf(fid,'Circle(10) = [7,1,4]\n')
++	fprintf(fid,'Circle(11) = [4,1,6]\n')
++	fprintf(fid,'Circle(12) = [6,1,2]\n')
++	fprintf(fid,'Line Loop(13) = [2,8,-10]\n')
++	fprintf(fid,'Ruled Surface(14) = [13]\n')
++	fprintf(fid,'Line Loop(15) = [10,3,7]\n')
++	fprintf(fid,'Ruled Surface(16) = [15]\n')
++	fprintf(fid,'Line Loop(17) = [-8,-9,1]\n')
++	fprintf(fid,'Ruled Surface(18) = [17]\n')
++	fprintf(fid,'Line Loop(19) = [-11,-2,5]\n')
++	fprintf(fid,'Ruled Surface(20) = [19]\n')
++	fprintf(fid,'Line Loop(21) = [-5,-12,-1]\n')
++	fprintf(fid,'Ruled Surface(22) = [21]\n')
++	fprintf(fid,'Line Loop(23) = [-3,11,6]\n')
++	fprintf(fid,'Ruled Surface(24) = [23]\n')
++	fprintf(fid,'Line Loop(25) = [-7,4,9]\n')
++	fprintf(fid,'Ruled Surface(26) = [25]\n')
++	fprintf(fid,'Line Loop(27) = [-4,12,-6]\n')
++	fprintf(fid,'Ruled Surface(28) = [27]\n')
++	fprintf(fid,'Surface Loop(29) = [28,26,16,14,20,24,22,18]\n')
++	fprintf(fid,'Volume(30) = [29]\n')
++	fprintf(fid,'Physical Surface(1) = [28,26,16,14,20,24,22,18]\n')
++	fprintf(fid,'Physical Volume(2) = 30\n')
++	fclose(fid)
++	#}}}
++
++	if options.exist('refine'):
++		meshini=options.getfieldvalue('refine')
++		metric=options.getfieldvalue('refinemetric')
++
++		#create .pos file with existing mesh and refining metric:  {{{
++		fid=fopen('sphere.pos','w')
++
++		fprintf(fid,'View "background mesh" [\n')
++		for i in range(meshini.numberofelements):
++			fprintf(fid,'ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\
++			meshini.x(meshini.elements(i,0)), meshini.y(meshini.elements(i,0)), meshini.z(meshini.elements(i,0)),\
++			meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)),\
++			meshini.x(meshini.elements(i,2)), meshini.y(meshini.elements(i,2)), meshini.z(meshini.elements(i,2)),\
++			metric(meshini.elements(i,0)), metric(meshini.elements(i,1)), metric(meshini.elements(i,2))\
++			)
++		fprintf(fid,']\n')
++		
++		fclose(fid)
++		# }}}
++
++	#call gmsh
++	if options.exist('refine'):
++		eval(['!gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos'])
++	else:
++		#call gmsh
++		eval(['!gmsh -tol 1e-8 -2 sphere.geo'])
++
++	#import mesh:  {{{
++	fid=fopen('sphere.msh','r')
++
++	#Get Mesh format
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$MeshFormat'):
++		raise RuntimeError(['Expecting $MeshFormat (', A, ')'])
++
++	A=fscanf(fid,'#f #i #i',[1, 3])
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$EndMeshFormat'):
++		raise RuntimeError(['Expecting $EndMeshFormat (', A, ')'])
++
++	#Nodes
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$Nodes'):
++		raise RuntimeError(['Expecting $Nodes (', A, ')'])
++
++	mesh.numberofvertices=fscanf(fid,'#i',1)
++	A=fscanf(fid,'#i #f #f #f',[4, mesh.numberofvertices])
++	mesh.x = transpose(A[1,:])
++	mesh.y = transpose(A[2,:])
++	mesh.z = transpose(A[3,:])
++
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$EndNodes'):
++		raise RuntimeError(['Expecting $EndNodes (', A, ')'])
++
++	#Elements
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$Elements'):
++		raise RuntimeError(['Expecting $Elements (', A, ')'])
++	mesh.numberofelements=fscanf(fid,'#i',1)
++	A=fscanf(fid,'#i #i #i #i #i #i #i #i',[8, mesh.numberofelements])
++	mesh.elements=transpose(A[6:8,:]) 
++	A=fscanf(fid,'#s',1)
++	if not strcmp(A,'$EndElements'):
++		raise RuntimeError(['Expecting $EndElements (', A, ')'])
++	fclose(fid) 
++	#}}}
++
++	#figure out other fields in mesh3dsurface: 
++	mesh.r=sqrt(mesh.x**2+mesh.y**2+mesh.z**2)
++	mesh.lat = asin(mesh.z/mesh.r)/pi*180
++	mesh.long = atan2(mesh.y,mesh.x)/pi*180
++
++	#erase files: 
++	eval(['!rm -rf sphere.geo sphere.msh sphere.pos'])
++
++
++	#return mesh: 
++	return mesh
Index: /issm/oecreview/Archive/19101-20495/ISSM-20172-20173.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20172-20173.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20172-20173.diff	(revision 20498)
@@ -0,0 +1,166 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20172)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20173)
+@@ -21,67 +21,67 @@
+ #      md.mesh=gmshplanet('radius',6000,'resolution',100);
+ 
+ 	#process options
+-	options=pairoptions(varargin)
+-	options=options.deleteduplicates(1)
++	options=pairoptions(*varargin)
++	#options=deleteduplicates(options,1)
+ 
+ 	#recover parameters:
+ 	radius=options.getfieldvalue('radius')*1000
+ 	resolution=options.getfieldvalue('resolution')*1000
+ 
+ 	#initialize mesh: 
+-	mesh=mesh3dsurface()
++	mesh=mesh2d()
+ 
+ 	#create .geo file:  {{{
+-	fid=fopen('sphere.geo','w')
++	fid=open('sphere.geo','w')
+ 
+-	fprintf(fid,'Mesh.Algorithm = 1\n')
++	fid.write('Mesh.Algorithm = 1\n')
+ 	if options.exist('refine'):
+-		fprintf(fid,'Mesh.Algorithm = 7\n')
+-		fprintf(fid,'Mesh.CharacteristicLengthFromPoints= 0\n')
+-		fprintf(fid,'Mesh.SmoothRatio= 3\n')
+-		fprintf(fid,'Mesh.RemeshAlgorithm= 1\n')
+-	fprintf(fid,'resolution=#g\n',resolution)
+-	fprintf(fid,'radius=#g\n',radius)
+-	fprintf(fid,'Point(1) = [0.0,0.0,0.0,resolution]\n')
+-	fprintf(fid,'Point(2) = [radius,0.0,0.0,resolution]\n')
+-	fprintf(fid,'Point(3) = [0,radius,0.0,resolution]\n')
+-	fprintf(fid,'Circle(1) = [2,1,3]\n')
+-	fprintf(fid,'Point(4) = [-radius,0,0.0,resolution]\n')
+-	fprintf(fid,'Point(5) = [0,-radius,0.0,resolution]\n')
+-	fprintf(fid,'Circle(2) = [3,1,4]\n')
+-	fprintf(fid,'Circle(3) = [4,1,5]\n')
+-	fprintf(fid,'Circle(4) = [5,1,2]\n')
+-	fprintf(fid,'Point(6) = [0,0,-radius,resolution]\n')
+-	fprintf(fid,'Point(7) = [0,0,radius,resolution]\n')
+-	fprintf(fid,'Circle(5) = [3,1,6]\n')
+-	fprintf(fid,'Circle(6) = [6,1,5]\n')
+-	fprintf(fid,'Circle(7) = [5,1,7]\n')
+-	fprintf(fid,'Circle(8) = [7,1,3]\n')
+-	fprintf(fid,'Circle(9) = [2,1,7]\n')
+-	fprintf(fid,'Circle(10) = [7,1,4]\n')
+-	fprintf(fid,'Circle(11) = [4,1,6]\n')
+-	fprintf(fid,'Circle(12) = [6,1,2]\n')
+-	fprintf(fid,'Line Loop(13) = [2,8,-10]\n')
+-	fprintf(fid,'Ruled Surface(14) = [13]\n')
+-	fprintf(fid,'Line Loop(15) = [10,3,7]\n')
+-	fprintf(fid,'Ruled Surface(16) = [15]\n')
+-	fprintf(fid,'Line Loop(17) = [-8,-9,1]\n')
+-	fprintf(fid,'Ruled Surface(18) = [17]\n')
+-	fprintf(fid,'Line Loop(19) = [-11,-2,5]\n')
+-	fprintf(fid,'Ruled Surface(20) = [19]\n')
+-	fprintf(fid,'Line Loop(21) = [-5,-12,-1]\n')
+-	fprintf(fid,'Ruled Surface(22) = [21]\n')
+-	fprintf(fid,'Line Loop(23) = [-3,11,6]\n')
+-	fprintf(fid,'Ruled Surface(24) = [23]\n')
+-	fprintf(fid,'Line Loop(25) = [-7,4,9]\n')
+-	fprintf(fid,'Ruled Surface(26) = [25]\n')
+-	fprintf(fid,'Line Loop(27) = [-4,12,-6]\n')
+-	fprintf(fid,'Ruled Surface(28) = [27]\n')
+-	fprintf(fid,'Surface Loop(29) = [28,26,16,14,20,24,22,18]\n')
+-	fprintf(fid,'Volume(30) = [29]\n')
+-	fprintf(fid,'Physical Surface(1) = [28,26,16,14,20,24,22,18]\n')
+-	fprintf(fid,'Physical Volume(2) = 30\n')
+-	fclose(fid)
++		fid.write('Mesh.Algorithm = 7\n')
++		fid.write('Mesh.CharacteristicLengthFromPoints= 0\n')
++		fid.write('Mesh.SmoothRatio= 3\n')
++		fid.write('Mesh.RemeshAlgorithm= 1\n')
++	fid.write('resolution=#g\n',resolution)
++	fid.write('radius=#g\n',radius)
++	fid.write('Point(1) = [0.0,0.0,0.0,resolution]\n')
++	fid.write('Point(2) = [radius,0.0,0.0,resolution]\n')
++	fid.write('Point(3) = [0,radius,0.0,resolution]\n')
++	fid.write('Circle(1) = [2,1,3]\n')
++	fid.write('Point(4) = [-radius,0,0.0,resolution]\n')
++	fid.write('Point(5) = [0,-radius,0.0,resolution]\n')
++	fid.write('Circle(2) = [3,1,4]\n')
++	fid.write('Circle(3) = [4,1,5]\n')
++	fid.write('Circle(4) = [5,1,2]\n')
++	fid.write('Point(6) = [0,0,-radius,resolution]\n')
++	fid.write('Point(7) = [0,0,radius,resolution]\n')
++	fid.write('Circle(5) = [3,1,6]\n')
++	fid.write('Circle(6) = [6,1,5]\n')
++	fid.write('Circle(7) = [5,1,7]\n')
++	fid.write('Circle(8) = [7,1,3]\n')
++	fid.write('Circle(9) = [2,1,7]\n')
++	fid.write('Circle(10) = [7,1,4]\n')
++	fid.write('Circle(11) = [4,1,6]\n')
++	fid.write('Circle(12) = [6,1,2]\n')
++	fid.write('Line Loop(13) = [2,8,-10]\n')
++	fid.write('Ruled Surface(14) = [13]\n')
++	fid.write('Line Loop(15) = [10,3,7]\n')
++	fid.write('Ruled Surface(16) = [15]\n')
++	fid.write('Line Loop(17) = [-8,-9,1]\n')
++	fid.write('Ruled Surface(18) = [17]\n')
++	fid.write('Line Loop(19) = [-11,-2,5]\n')
++	fid.write('Ruled Surface(20) = [19]\n')
++	fid.write('Line Loop(21) = [-5,-12,-1]\n')
++	fid.write('Ruled Surface(22) = [21]\n')
++	fid.write('Line Loop(23) = [-3,11,6]\n')
++	fid.write('Ruled Surface(24) = [23]\n')
++	fid.write('Line Loop(25) = [-7,4,9]\n')
++	fid.write('Ruled Surface(26) = [25]\n')
++	fid.write('Line Loop(27) = [-4,12,-6]\n')
++	fid.write('Ruled Surface(28) = [27]\n')
++	fid.write('Surface Loop(29) = [28,26,16,14,20,24,22,18]\n')
++	fid.write('Volume(30) = [29]\n')
++	fid.write('Physical Surface(1) = [28,26,16,14,20,24,22,18]\n')
++	fid.write('Physical Volume(2) = 30\n')
++	fid.close()
+ 	#}}}
+ 
+ 	if options.exist('refine'):
+@@ -89,19 +89,19 @@
+ 		metric=options.getfieldvalue('refinemetric')
+ 
+ 		#create .pos file with existing mesh and refining metric:  {{{
+-		fid=fopen('sphere.pos','w')
++		fid=open('sphere.pos','w')
+ 
+-		fprintf(fid,'View "background mesh" [\n')
++		fid.write('View "background mesh" [\n')
+ 		for i in range(meshini.numberofelements):
+-			fprintf(fid,'ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\
++			fid.write('ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\
+ 			meshini.x(meshini.elements(i,0)), meshini.y(meshini.elements(i,0)), meshini.z(meshini.elements(i,0)),\
+ 			meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)),\
+ 			meshini.x(meshini.elements(i,2)), meshini.y(meshini.elements(i,2)), meshini.z(meshini.elements(i,2)),\
+ 			metric(meshini.elements(i,0)), metric(meshini.elements(i,1)), metric(meshini.elements(i,2))\
+ 			)
+-		fprintf(fid,']\n')
++		fid.write(']\n')
+ 		
+-		fclose(fid)
++		fid.close()
+ 		# }}}
+ 
+ 	#call gmsh
+@@ -112,7 +112,7 @@
+ 		eval(['!gmsh -tol 1e-8 -2 sphere.geo'])
+ 
+ 	#import mesh:  {{{
+-	fid=fopen('sphere.msh','r')
++	fid=open('sphere.msh','r')
+ 
+ 	#Get Mesh format
+ 	A=fscanf(fid,'#s',1)
+@@ -149,7 +149,7 @@
+ 	A=fscanf(fid,'#s',1)
+ 	if not strcmp(A,'$EndElements'):
+ 		raise RuntimeError(['Expecting $EndElements (', A, ')'])
+-	fclose(fid) 
++	fid.close() 
+ 	#}}}
+ 
+ 	#figure out other fields in mesh3dsurface: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20173-20174.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20173-20174.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20173-20174.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m	(revision 0)
++++ ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m	(revision 20174)
+@@ -0,0 +1,44 @@
++function lsf=exp_to_levelsetfunction(md, exp_icedomain)
++	% EXP_TO_LEVELSETFUNCTION: compute signed distance function from exp-file for use with level-set method
++	% USAGE: lsf=exp_to_levelsetfunction(md, exp_icedomain)
++
++	mesh=md.mesh;
++	% convert exp_icedomain to xy array
++	profiles=expread(exp_icedomain);
++
++	min_dist=NaN(size(mesh.x));
++	for p=1:size(profiles,2)
++		profile=profiles(p);
++
++		%construct ice domain segments
++		inds_v=1:profile.nods-1;
++		inds_w=2:profile.nods;
++		segments.v.x=profile.x(inds_v);	segments.v.y=profile.y(inds_v);
++		segments.w.x=profile.x(inds_w);	segments.w.y=profile.y(inds_w);
++		segments.numsegments=length(segments.v.x);
++
++		% compute minimum distance to segments
++		for s=1:segments.numsegments
++			segment.v.x=segments.v.x(s);	segment.v.y=segments.v.y(s);
++			segment.w.x=segments.w.x(s);	segment.w.y=segments.w.y(s);
++			min_dist=min(min_dist, compute_distance_to_segment(segment, mesh.x, mesh.y));
++		end
++	end
++
++	% set sign of lsf
++	sign_lsf=ones(mesh.numberofvertices,1);
++	isice=ContourToMesh(mesh.elements,mesh.x,mesh.y,exp_icedomain,'node',2);
++	sign_lsf(find(isice))=-1;
++
++	lsf=sign_lsf.*min_dist;
++
++	function dist=compute_distance_to_segment(segment,x,y)
++		%compute horizontal euclidean distance to segment
++		v=[segment.v.x segment.v.y];
++		w=[segment.w.x segment.w.y];
++		verts=[x y];
++		t=[x-v(1) y-v(2)]*(w-v)'/norm(w-v)^2; %projection of verts on line defined by v and w
++		dist_vec=(ones(length(x),1)*v+max(0,min(1,t))*(w-v))-verts; %vector of shortest distance between verts and segment v-w
++		dist=sqrt(sum(abs(dist_vec).^2,2));
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20174-20175.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20174-20175.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20174-20175.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20174)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20175)
+@@ -14,6 +14,7 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+ 	--with-numthreads=8 \
+ 	--enable-debugging \
+ 	--enable-development'
+@@ -50,6 +51,7 @@
+ 						matlab       install.sh                
+ 						mpich        install-3.0-macosx64.sh    
+ 						cmake        install.sh                
++						chaco         install.sh 
+ 						m1qn3        install.sh    
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20175-20176.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20175-20176.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20175-20176.diff	(revision 20498)
@@ -0,0 +1,7897 @@
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa.cpp	(revision 20176)
+@@ -0,0 +1,823 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include <pthread.h>
++
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N];
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel);
++void* plouffT(void* vpthread_handle);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++double signe(double a);
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my);
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd);
++double coolshed(double T0,double k,double c,double D);
++void   LaunchThread(void* function(void*), void* usr,int num_threads);
++/*}}}*/
++
++/*Multithreading structures {{{*/
++typedef struct{
++	void* usr;
++	int   my_thread;
++	int   num_threads;
++} pthread_handle;
++
++typedef struct{
++	Matrix *g;
++	Matrix *Pobs;
++	Matrix *Pp;
++	Matrix *mesh;
++	Matrix *rho;
++	int dx;
++	int dy;
++	int dn;
++	int m;
++	int n;
++	int l;
++} AppStruct;
++/*}}}*/
++
++int main(){/*{{{*/
++
++	/* Seed the random number generator {{{*/
++	srand (time(NULL));               /*}}}*/
++	/* Define the variables {{{*/
++
++	int    dx     = 500;   /* prism dimension in x-direction                           */
++	int    dy     = 500;   /* prism dimension in y-direction                           */
++	int    mx     = 39;    /* number of prisms in x-direction                          */
++	int    my     = 60;    /* number of prisms in y-direction                          */
++	int    nx     = 39;    /* number of data points in x-direction                     */
++	int    ny     = 60;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++	double ptval  = 100.;  /* max. amount to perturb model                             */
++	double ptval2 = 100.;
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++// Pobs->Echo();
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* data positions */
++	makep(Pp,mx,my,dx,dy);
++// Pp->Echo();
++
++	double  rhoi = 890;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++// double  rhos = 2013;		      /* sediment density */
++	double  rhoc = 2670;          /* bedrock density */
++	
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc);
++	rho2->SetValue(0,1,rhow-rhoc);
++	
++	double ctr=1;            /* parameter for filtering */
++	double sd=0.1;
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++//	xobs->Echo();
++//	yobs->Echo();
++
++	double dlevel= 860;                /* mean level of data acquisition */
++
++	double mmax  = 1000;               /* max value for layer interfaces */
++	double mmax2 = 1000;
++	double mmax3 = 1000;
++
++	/* control parameter for temperature schedule  */
++
++	double ca=0.9;                    /* for acceptance */
++	double cm=0.5;                    /* for model perturbation */
++
++	double T0a          = 0.1;      /* initial temperature for acceptance           */
++	double T0m          = 0.9;      /* initial temperature for model perturbation   */
++	double D            = 2;        /* dimension of the model                       */
++	int    maxconsecrej = 1000;     /* max consecutive rejection                    */
++	int    maxsuccess   = 100;      /* max number of success within one temperature */
++	double T_min        = 1e-10;    /* stopping temp                                */
++	double Tred         = 1;
++	double E_min        = -1000000;
++	double E_exp        = 0.0291;   /* expected misfit                              */
++	int    maxiter      = 10000;
++	int    maxtotaliter = 1000000;
++	double Tol          = 1e-10;    /* tolerance on misfit                          */
++	int    sfreq        = 100;
++
++	                     /*}}}*/     
++	/* load the data {{{*/
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("store_fa500_36s.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	double inputnumber;
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++//	gobs->Echo();
++	
++	/* load data about the ice thickness */
++
++	ifstream file2("store_flag_icethick500.txt");
++	Matrix * icethick= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file2 >> inputnumber;
++		icethick->SetValue(s,0,inputnumber);
++	}
++	file2.close();
++//	icethick->Echo();
++
++	/* load the batimethry data */
++
++	ifstream file3("store_flag_bathy500.txt");
++	Matrix * bathy= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file3 >> inputnumber;
++		bathy->SetValue(s,0,inputnumber);
++	}
++	file3.close();
++//	bathy->Echo();
++	
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("store_flag_eval500.txt");
++	Matrix * evalid= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++//	evalid->Echo();
++	
++	/* initial guess of the model */
++
++	ifstream file5("m0_140114b.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++		file5 >> inputnumber;
++		mesh_ini->SetValue(s,j,inputnumber);
++	}
++	}
++	file5.close();
++//	mesh_ini->Echo();
++                           /*}}}*/
++		/* VFSA {{{ */
++
++	/* name of the files to save results */
++	std::ofstream savefile1 ("r_140114b.txt");
++	std::ofstream savefile2("m_140114b.txt");
++
++	/* counters initialization */
++	int    success   = 0;
++	int    finished  = 0;
++	int    consec    = 0;
++	double Ta        = T0a;
++	double Tm        = T0m;
++	int    iterT     = 0;   /* iteration within a T      */
++	int    total     = 0;   /* total number of iteration */
++	int    totaliter = 0;
++	int    msave     = 0;
++	double E_new;
++	double E_final;
++	double dE;
++	double P;
++	double rn;
++	Matrix* m_old    = new Matrix(mx *my,3);
++	Matrix* m_min    = new Matrix(mx *my,3);
++	Matrix* m_new    = new Matrix(mx *my,3);
++	m_old->MatrixEqual(mesh_ini);
++
++	/* calculate initial misfit */
++	double E_old=misfit(m_old,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my);
++
++	/* record initial settings */
++	savefile1 << "P     "<< "Ta    "<< "Tm    "<< "Eold  "<< "totaliter "<< "Tred   "<< endl;
++	savefile1 << "nan   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++	savefile2 << totaliter<< endl;
++	for(int i=0;i<mx*my;i++){
++		savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++	}
++	savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++
++	/* beginning of the loop */
++
++	while(finished==0){
++
++		iterT++;
++		totaliter++;
++
++		/* stop or reduce T */
++		if(iterT>=maxiter || success>maxsuccess){
++			if(Ta<T_min || total>maxtotaliter || fabs(E_old)<=Tol){
++				finished=1;
++				total+=iterT;
++				break;
++			}
++			else{ /* reduce T */
++				Ta=coolshed(T0a,Tred,ca,D);
++				Tm=coolshed(T0m,Tred,cm,D);
++				total+=iterT;
++				iterT=0;
++				success=1;
++				Tred++;
++				consec=0;
++			}
++		}
++
++		/* update model and calculate energy */
++
++		newmodelgen(m_old,m_new,bathy,icethick,mx,my,Tm,ptval,mmax,mmax2,ctr,sd);  /* new model */
++		E_new=misfit(m_new,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my); /* new energy */
++		dE=E_new-E_old;                                        /* energy difference */
++
++		/* acceptance probability */
++
++		P=exp(-dE/Ta);
++
++		/* stop if energy is lower than specified minimum */
++		if (E_new<E_min){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			break;
++		}
++
++		rn=rand()/double (RAND_MAX);
++
++		/* accept new model or not */
++		if(dE<=0){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			success++;
++			consec=0;
++			savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++			if(Ta<1e-3){
++				savefile2 << totaliter<< endl;
++				for(int i=0;i<mx*my;i++){
++					savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++				}
++				savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++			}
++		}
++		else{
++			if(P>rn){
++				m_old->MatrixEqual(m_new);
++				E_old=E_new;
++				success++;
++				consec=0;
++				savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++				if(Ta<1e-3){
++					savefile2 << totaliter<< endl;
++					for(int i=0;i<mx*my;i++){
++						savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++					}
++					savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++				}
++			}
++			else{
++				consec++;
++			}
++		}
++	cout<<totaliter<<endl;
++	}
++
++	m_min->MatrixEqual(m_old);
++	E_final=E_old;
++	savefile1 << "nan"<<"   "<<  "nan"<<"   "<< "nan"<<"   "<< E_final<<"     "<< "nan"<<"         "<< "nan" <<"  "<< endl;
++	savefile2 << " Mesh final"<< endl;
++	for(int i=0;i<mx*my;i++){
++		savefile2 << m_min->GetValue(i,0)<<"   "<< m_min->GetValue(i,1)<<"   "<< m_min->GetValue(i,2)<<endl;
++	}
++	savefile1.close();
++	savefile2.close();
++
++	delete m_old;
++	delete m_min;
++	delete m_new;
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete bathy;
++	delete icethick;
++	delete evalid;
++
++			/*}}}*/
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(b);
++	gsl_vector_free(x);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,j,1e-10);
++			}
++		}
++	}
++	m1->AddNumber(dlevel);
++	m2->AddNumber(dlevel);
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(mx*my,1);
++	Matrix* df=new Matrix(mx*my,1);
++	Matrix* G=new Matrix(mx*my,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	
++	/*Multithreaded core*/
++	int       num_threads = 8;
++	AppStruct usr;
++	usr.g = g1;
++	usr.Pobs = Pobs;
++	usr.Pp=Pp;
++	usr.mesh= m1;
++	usr.rho= rho1;
++	usr.dx=dx;
++	usr.dy=dy;
++	usr.dn=dn;
++	usr.m=mx*my;
++	usr.n=nx*ny;
++	usr.l=4;
++	LaunchThread(plouffT,(void*)&usr,num_threads);
++	usr.g = g2;
++	usr.mesh= m2;
++	usr.rho= rho2;
++	usr.l=3;
++	LaunchThread(plouffT,(void*)&usr,num_threads);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,mx,my);
++	for (int i=0;i<mx*my;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<my;i++){
++		for(int j=0;j<mx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,mx,my);
++	for (int i=0;i<mx*my;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd){/*{{{*/
++	Matrix* m1gr=new Matrix(my,mx);
++	Matrix* m1grsm=new Matrix(my,mx);
++	Matrix* m1col=new Matrix(mx*my,1);
++	double u=0;
++	double y=0;
++	m1->MatrixEqual(m0);
++	for (int i=0;i<mx*my;i++){
++		if(icethick->GetValue(i,0)==0){
++			u=double (rand())/ double(RAND_MAX);
++			y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++			m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++			if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++				m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++			}
++			if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++				m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++			}
++		}
++	}
++	m1->ExtractColumn(m1col,1);
++	vec2gridsimple(m1col,m1gr,mx,my);
++	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++	reshape(m1grsm,m1col,mx,my);
++	for (int i=0;i<mx*my;i++){
++		if(icethick->GetValue(i,0)==0){
++			m1->SetValue(i,1,m1col->GetValue(i,0));
++		}
++		else{
++			m1->SetValue(i,1,m0->GetValue(i,1));
++		}
++		if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++			m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++		}
++	}
++
++	for (int i=0;i<mx*my;i++){
++		if(bathy->GetValue(i,0)==0){
++			u=double (rand())/ double(RAND_MAX);
++			y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++			m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++			if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++			}
++			if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++				m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++			}
++		}
++	}
++	m1->ExtractColumn(m1col,2);
++	vec2gridsimple(m1col,m1gr,mx,my);
++	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++	reshape(m1grsm,m1col,mx,my);
++	for (int i=0;i<mx*my;i++){
++		if(bathy->GetValue(i,0)==0){
++			m1->SetValue(i,2,m1col->GetValue(i,0));
++		}
++		else{
++			m1->SetValue(i,2,m0->GetValue(i,2));
++		}
++		if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++			m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++		}
++	}
++	delete m1gr;
++	delete m1grsm;
++	delete m1col;
++}/*}}}*/
++double signe(double a){/*{{{*/
++	if(a<0){return -1;}
++	else{return 1;}
++}/*}}}*/
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my){/*{{{*/
++	A->MatrixEqual(Ain);
++	for (int i=1;i<my-1;i++){
++		for(int j=1;j<mx-1;j++){
++			A->SetValue(i,j,(ctr*Ain->GetValue(i,j)+sd*(Ain->GetValue(i-1,j)+Ain->GetValue(i+1,j)+Ain->GetValue(i,j-1)+Ain->GetValue(i,j+1)))/(ctr+4*sd));
++		}
++	}
++}/*}}}*/
++double coolshed(double T0,double k,double c,double D){/*{{{*/
++	double T1=T0*exp(-c*pow(k,1/D));
++	return T1;
++}/*}}}*/
++void* plouffT(void* vpthread_handle){/*{{{*/
++
++	/*recover this thread info*/
++	pthread_handle *handle = (pthread_handle*)vpthread_handle;
++	int my_thread   = handle->my_thread;
++	int num_threads = handle->num_threads;
++
++	/*Recover struct*/
++	AppStruct *usr = (AppStruct*)handle->usr;
++	Matrix *g = usr->g;
++	Matrix *Pobs = usr->Pobs;
++	Matrix *Pp = usr->Pp;
++	Matrix *mesh = usr->mesh;
++	Matrix *rho = usr->rho;
++	int dx =usr->dx;
++	int dy =usr->dy;
++	int dn =usr->dn;
++	int m =usr->m;
++	int n =usr->n;
++	int l =usr->l;
++
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++	for(int c=my_thread;c<n;c+=num_threads){
++		g->SetValue(c,0,0);
++		for(int a=0;a<m;a++){
++			test=true;
++			xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++			xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++			if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++				xpp->SetValue(0,0,xp->GetValue(0,1));
++				xpp->SetValue(0,1,xp->GetValue(0,0));
++				xp->MatrixAbs(xpp);
++			}
++			yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++			yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++			if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++				ypp->SetValue(0,0,yp->GetValue(0,1));
++				ypp->SetValue(0,1,yp->GetValue(0,0));
++				yp->MatrixAbs(ypp);
++			}
++			P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++			if(P>dn){
++				test=false;
++				for(int i=0;i<l-1;i++){
++					gl->SetValue(0,i,0);
++				}
++			}
++			if(test==true){
++				si=1;
++				sj=1;
++				id=0;
++				for(int i=0;i<2;i++){
++					si*=-1;
++					for(int j=0;j<2;j++){
++						si*=-1;
++						s=si*sj;
++						for(int k=0;k<l;k++){
++							R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++							Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++							U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++						}
++						id++;
++					}
++				}
++				for(int b=0;b<l-1;b++){
++					U->ExtractLine(U1,b);
++					U->ExtractLine(U2,b+1);
++					gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++				}
++			}
++			g->SetValue(c,0,g->GetValue(c,0)+gg*gl->MatrixInternSum());
++		}
++	}
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++
++	return NULL;
++}/*}}}*/
++void LaunchThread(void* function(void*), void* usr,int num_threads){/*{{{*/
++
++	int i;
++	int            *status  = NULL;
++	pthread_t      *threads = NULL;
++	pthread_handle *handles = NULL;
++
++	/*dynamically allocate: */
++	threads=(pthread_t*)malloc(num_threads*sizeof(pthread_t));
++	handles=(pthread_handle*)malloc(num_threads*sizeof(pthread_handle));
++
++	for(i=0;i<num_threads;i++){
++		handles[i].usr=usr;
++		handles[i].my_thread  =i;
++		handles[i].num_threads=num_threads;
++	}
++	for(i=0;i<num_threads;i++){
++		if(pthread_create(threads+i,NULL,function,(void*)(handles+i))){
++			std::cerr<<"pthread_create error";
++		}
++	}
++	for(i=0;i<num_threads;i++){
++		if(pthread_join(threads[i],(void**)&status)){
++			std::cerr<<"pthread_join error";
++		}
++	}
++
++	/*Free ressources:*/
++	delete threads;
++	delete handles;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/Makefile
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/Makefile	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/Makefile	(revision 20176)
+@@ -0,0 +1,11 @@
++all:
++		g++ density_rock_uneven.cpp  \
++			-I$(ISSM_DIR)/externalpackages/gsl/install/include \
++			-L$(ISSM_DIR)/externalpackages/gsl/install/lib -lgsl -lgslcblas \
++		   -I$(ISSM_DIR)/externalpackages/mpich/install/include/ \
++		   -L$(ISSM_DIR)/externalpackages/mpich/install/lib/ -lmpich -lpmpich -lmpl -o forward.exe 
++
++forward:
++	   mpirun -np 4 ./forward.exe
++run -np 4 ./forward.execlean:
++		rm ./forward.exe
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock.cpp	(revision 20176)
+@@ -0,0 +1,510 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include "mpi.h"
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N]();
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel);
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++/*}}}*/
++
++int main(int argc,char *argv[]){/*{{{*/
++
++	int my_rank,num_procs;
++
++	MPI_Init(&argc, &argv);
++
++	MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
++	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
++
++	/* Define the variables {{{*/
++
++	int    dx     = 1000;   /* prism dimension in x-direction                           */
++	int    dy     = 1000;   /* prism dimension in y-direction                           */
++	int    mx     = 99;    /* number of prisms in x-direction                          */
++	int    my     = 99;    /* number of prisms in y-direction                          */
++	int    nx     = 99;    /* number of data points in x-direction                     */
++	int    ny     = 99;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++	// Pobs->Echo();
++
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* prisms positions */
++	makep(Pp,mx,my,dx,dy);
++	// Pp->Echo();
++
++	double  rhoi = 917;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++	// double  rhos = 2013;		      /* sediment density */
++
++	double rhoc_min=2000.;
++	double rhoc_max=3000.;
++
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc_min);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc_min);
++	rho2->SetValue(0,1,rhow-rhoc_min);
++
++	double dlevel=3134;         /* level of data acquisition */
++
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++	//	xobs->Echo();
++	//	yobs->Echo();
++
++
++	/*}}}*/     
++	/* load the data {{{*/
++
++
++	double inputnumber;
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("gravityraw.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++	//	gobs->Echo();
++
++
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("evalid1.txt");
++	Matrix * evalid= new Matrix(nx*ny,1);
++	for(int s=0;s<nx*ny; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++	//	evalid->Echo();
++
++	/* initial guess of the model */
++
++	ifstream file5("m0_102714contzach.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++			file5 >> inputnumber;
++			mesh_ini->SetValue(s,j,inputnumber);
++		}
++	}
++	file5.close();
++	//	mesh_ini->Echo();
++	/*}}}*/
++	/* Test {{{ */
++
++
++	double rhoc=rhoc_min;
++	double rhoc_opti=rhoc_min;
++	double E=misfit(mesh_ini,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my,my_rank,num_procs);
++	double E_opti=E;
++
++	for(int i=rhoc_min;i<rhoc_max+1;i++){
++		rhoc=i;
++		rho1->SetValue(0,2,rhoc);
++		rho2->SetValue(0,0,rhoi-rhoc);
++		rho2->SetValue(0,1,rhow-rhoc);
++
++		E=misfit(mesh_ini,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my,my_rank,num_procs);
++
++		if(E<E_opti){
++			E_opti=E;
++			rhoc_opti=rhoc;
++		}
++		if(my_rank==0){
++			cout<<rhoc<<"  "<<rhoc_opti<<"  "<<E<<"  "<<E_opti<<endl;
++		}
++	}
++
++
++
++
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete evalid;
++	delete gobs;
++
++	/*}}}*/
++
++	MPI_Finalize();
++
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(x);
++	gsl_vector_free(b);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++				m1->SetValue(i,j,m1->GetValue(i,j));
++				m2->SetValue(i,j,m2->GetValue(i,j));
++			}
++			else{
++				m1->SetValue(i,j,1e-10);
++			}
++		}
++	}
++	m1->AddNumber(dlevel);
++	m2->AddNumber(dlevel);
++}/*}}}*/
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs){/*{{{*/
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++
++	double *glocal=new double[n]();
++
++	for(int c=my_rank;c<n;c+=num_procs){
++		glocal[c]=0;
++		if(evalid->GetValue(c,0)==1){
++			for(int a=0;a<m;a++){
++				test=true;
++				xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++				xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++				if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++					xpp->SetValue(0,0,xp->GetValue(0,1));
++					xpp->SetValue(0,1,xp->GetValue(0,0));
++					xp->MatrixAbs(xpp);
++				}
++				yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++				yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++				if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++					ypp->SetValue(0,0,yp->GetValue(0,1));
++					ypp->SetValue(0,1,yp->GetValue(0,0));
++					yp->MatrixAbs(ypp);
++				}
++				P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++				if(P>dn){
++					test=false;
++					for(int i=0;i<l-1;i++){
++						gl->SetValue(0,i,0);
++					}
++				}
++				if(test==true){
++					si=1;
++					sj=1;
++					id=0;
++					for(int i=0;i<2;i++){
++						si*=-1;
++						for(int j=0;j<2;j++){
++							sj*=-1;
++							s=si*sj;
++							for(int k=0;k<l;k++){
++								R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++								Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++								U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++							}
++							id++;
++						}
++					}
++					for(int b=0;b<l-1;b++){
++						U->ExtractLine(U1,b);
++						U->ExtractLine(U2,b+1);
++						gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++					}
++				}
++				glocal[c]=glocal[c]+gg*gl->MatrixInternSum();
++			}
++		}
++	}
++
++	MPI_Allreduce(glocal,g->GetPointer(),n,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD);
++
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++	delete []glocal;
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(nx*ny,1);
++	Matrix* df=new Matrix(nx*ny,1);
++	Matrix* G=new Matrix(nx*ny,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	plouff(g1,Pobs,Pp,m1,rho1,dx,dy,dn,mx*my,nx*ny,4,evalid, my_rank, num_procs);
++	plouff(g2,Pobs,Pp,m2,rho2,dx,dy,dn,mx*my,nx*ny,3,evalid, my_rank, num_procs);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock_uneven.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock_uneven.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/code_densite/density_rock_uneven.cpp	(revision 20176)
+@@ -0,0 +1,516 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include "mpi.h"
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N]();
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,Matrix *dlevel);
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,Matrix *dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++/*}}}*/
++
++int main(int argc,char *argv[]){/*{{{*/
++
++	int my_rank,num_procs;
++
++	MPI_Init(&argc, &argv);
++
++	MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
++	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
++
++	/* Define the variables {{{*/
++
++	int    dx     = 1000;   /* prism dimension in x-direction                           */
++	int    dy     = 1000;   /* prism dimension in y-direction                           */
++	int    mx     = 99;    /* number of prisms in x-direction                          */
++	int    my     = 99;    /* number of prisms in y-direction                          */
++	int    nx     = 99;    /* number of data points in x-direction                     */
++	int    ny     = 99;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++	// Pobs->Echo();
++
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* prisms positions */
++	makep(Pp,mx,my,dx,dy);
++	// Pp->Echo();
++
++	double  rhoi = 917;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++	// double  rhos = 2013;		      /* sediment density */
++
++	double rhoc_min=2000.;
++	double rhoc_max=3000.;
++
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc_min);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc_min);
++	rho2->SetValue(0,1,rhow-rhoc_min);
++
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++	//	xobs->Echo();
++	//	yobs->Echo();
++
++
++	/*}}}*/     
++	/* load the data {{{*/
++
++
++	double inputnumber;
++
++	/* Levels of data acquisition */
++
++	ifstream file0("dataalti.txt");
++	Matrix * dlevel= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){
++		file0 >> inputnumber;
++		dlevel->SetValue(i,0,inputnumber);
++	}
++	file0.close();
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("gravityraw.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++	//	gobs->Echo();
++
++
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("evalid1.txt");
++	Matrix * evalid= new Matrix(nx*ny,1);
++	for(int s=0;s<nx*ny; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++	//	evalid->Echo();
++
++	/* initial guess of the model */
++
++	ifstream file5("m0_102714contzach.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++			file5 >> inputnumber;
++			mesh_ini->SetValue(s,j,inputnumber);
++		}
++	}
++	file5.close();
++	//	mesh_ini->Echo();
++	/*}}}*/
++	/* Test {{{ */
++
++
++	double rhoc=rhoc_min;
++	double rhoc_opti=rhoc_min;
++	double E=misfit(mesh_ini,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my,my_rank,num_procs);
++	double E_opti=E;
++
++	for(int i=rhoc_min;i<rhoc_max+1;i++){
++		rhoc=i;
++		rho1->SetValue(0,2,rhoc);
++		rho2->SetValue(0,0,rhoi-rhoc);
++		rho2->SetValue(0,1,rhow-rhoc);
++
++		E=misfit(mesh_ini,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my,my_rank,num_procs);
++
++		if(E<E_opti){
++			E_opti=E;
++			rhoc_opti=rhoc;
++		}
++		if(my_rank==0){
++			cout<<rhoc<<"  "<<rhoc_opti<<"  "<<E<<"  "<<E_opti<<endl;
++		}
++	}
++
++
++
++
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete evalid;
++	delete gobs;
++
++	/*}}}*/
++
++	MPI_Finalize();
++
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(x);
++	gsl_vector_free(b);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,Matrix* dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++				m1->SetValue(i,j,m1->GetValue(i,j)+dlevel->GetValue(i,1));
++				m2->SetValue(i,j,m2->GetValue(i,j)+dlevel->GetValue(i,1));
++			}
++			else{
++				m1->SetValue(i,j,1e-10+dlevel->GetValue(i,1));
++			}
++		}
++	}
++}/*}}}*/
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs){/*{{{*/
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++
++	double *glocal=new double[n]();
++
++	for(int c=my_rank;c<n;c+=num_procs){
++		glocal[c]=0;
++		if(evalid->GetValue(c,0)==1){
++			for(int a=0;a<m;a++){
++				test=true;
++				xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++				xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++				if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++					xpp->SetValue(0,0,xp->GetValue(0,1));
++					xpp->SetValue(0,1,xp->GetValue(0,0));
++					xp->MatrixAbs(xpp);
++				}
++				yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++				yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++				if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++					ypp->SetValue(0,0,yp->GetValue(0,1));
++					ypp->SetValue(0,1,yp->GetValue(0,0));
++					yp->MatrixAbs(ypp);
++				}
++				P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++				if(P>dn){
++					test=false;
++					for(int i=0;i<l-1;i++){
++						gl->SetValue(0,i,0);
++					}
++				}
++				if(test==true){
++					si=1;
++					sj=1;
++					id=0;
++					for(int i=0;i<2;i++){
++						si*=-1;
++						for(int j=0;j<2;j++){
++							sj*=-1;
++							s=si*sj;
++							for(int k=0;k<l;k++){
++								R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++								Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++								U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++							}
++							id++;
++						}
++					}
++					for(int b=0;b<l-1;b++){
++						U->ExtractLine(U1,b);
++						U->ExtractLine(U2,b+1);
++						gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++					}
++				}
++				glocal[c]=glocal[c]+gg*gl->MatrixInternSum();
++			}
++		}
++	}
++
++	MPI_Allreduce(glocal,g->GetPointer(),n,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD);
++
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++	delete []glocal;
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,Matrix *dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(nx*ny,1);
++	Matrix* df=new Matrix(nx*ny,1);
++	Matrix* G=new Matrix(nx*ny,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	plouff(g1,Pobs,Pp,m1,rho1,dx,dy,dn,mx*my,nx*ny,4,evalid, my_rank, num_procs);
++	plouff(g2,Pobs,Pp,m2,rho2,dx,dy,dn,mx*my,nx*ny,3,evalid, my_rank, num_procs);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa_mpi.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa_mpi.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/vfsa_mpi.cpp	(revision 20176)
+@@ -0,0 +1,835 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include "mpi.h"
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N]();
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel);
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,int my_rank,int num_procs);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++double signe(double a);
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my);
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask);
++double coolshed(double T0,double k,double c,double D);
++/*}}}*/
++
++int main(int argc,char *argv[]){/*{{{*/
++	
++	int my_rank,num_procs;
++
++	MPI_Init(&argc, &argv);
++
++	MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
++	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
++
++	/* Seed the random number generator {{{*/
++		srand (time(NULL));            /*}}}*/
++	/* Define the variables {{{*/
++
++	int    dx     = 1000;   /* prism dimension in x-direction                           */
++	int    dy     = 1000;   /* prism dimension in y-direction                           */
++	int    mx     = 99;    /* number of prisms in x-direction                          */
++	int    my     = 99;    /* number of prisms in y-direction                          */
++	int    nx     = 99;    /* number of data points in x-direction                     */
++	int    ny     = 99;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++	double ptval  = 100.;  /* max. amount to perturb model                             */
++	double ptval2 = 100.;
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++	// Pobs->Echo();
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* prisms positions */
++	makep(Pp,mx,my,dx,dy);
++	// Pp->Echo();
++
++	double  rhoi = 917;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++	// double  rhos = 2013;		      /* sediment density */
++	double  rhoc = 2670;          /* bedrock density */
++
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc);
++	rho2->SetValue(0,1,rhow-rhoc);
++
++	double dlevel=2400;         /* level of data acquisition */
++
++	double ctr=1;            /* parameter for filtering */
++	double sd=0.1;
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++	//	xobs->Echo();
++	//	yobs->Echo();
++
++
++	double mmax  = 2000;               /* max value for layer interfaces */
++	double mmax2 = 2000;
++	double mmax3 = 2000;
++
++	/* control parameter for temperature schedule  */
++
++	double ca=0.9;                    /* for acceptance */
++	double cm=0.5;                    /* for model perturbation */
++
++	double T0a          = 0.1;      /* initial temperature for acceptance           */
++	double T0m          = 0.9;      /* initial temperature for model perturbation   */
++	double D            = 2;        /* dimension of the model                       */
++	int    maxconsecrej = 1000;     /* max consecutive rejection                    */
++	int    maxsuccess   = 100;      /* max number of success within one temperature */
++	double T_min        = 1e-10;    /* stopping temp                                */
++	double Tred         = 1;
++	double E_min        = -1000000;
++	double E_exp        = 0.0291;   /* expected misfit                              */
++	int    maxiter      = 10000;
++	int    maxtotaliter = 1000000;
++	double Tol          = 1e-10;    /* tolerance on misfit                          */
++	int    sfreq        = 100;
++
++	/*}}}*/     
++	/* load the data {{{*/
++
++	/*landmask */
++
++	ifstream file("landmaskzach.txt");
++	Matrix * landmask= new Matrix(nx*ny,1);
++	double inputnumber;
++	for(int i=0;i<ny*nx; i++){ 
++		file >> inputnumber;
++		landmask->SetValue(i,0,inputnumber);
++	}
++	file.close();
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("gravityzach.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++	//	gobs->Echo();
++
++	/* load data about the ice thickness */
++
++	ifstream file2("icethickzach.txt");
++	Matrix * icethick= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file2 >> inputnumber;
++		icethick->SetValue(s,0,inputnumber);
++	}
++	file2.close();
++	//	icethick->Echo();
++
++	/* load the batimethry data */
++
++	ifstream file3("bathymetryzach.txt");
++	Matrix * bathy= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file3 >> inputnumber;
++		bathy->SetValue(s,0,inputnumber);
++	}
++	file3.close();
++	//	bathy->Echo();
++
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("evalidzach.txt");
++	Matrix * evalid= new Matrix(nx*ny,1);
++	for(int s=0;s<nx*ny; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++	//	evalid->Echo();
++
++	/* initial guess of the model */
++
++	ifstream file5("m0_092614zach.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++			file5 >> inputnumber;
++			mesh_ini->SetValue(s,j,inputnumber);
++		}
++	}
++	file5.close();
++	//	mesh_ini->Echo();
++	/*}}}*/
++	/* VFSA {{{ */
++
++	/* name of the files to save results */
++	std::ofstream savefile1 ("r_zach.txt");
++	std::ofstream savefile2("m_zach.txt");
++
++	/* counters initialization */
++	int    success   = 0;
++	int    finished  = 0;
++	int    consec    = 0;
++	double Ta        = T0a;
++	double Tm        = T0m;
++	int    iterT     = 0;   /* iteration within a T      */
++	int    total     = 0;   /* total number of iteration */
++	int    totaliter = 0;
++	int    msave     = 0;
++	double E_new;
++	double E_final;
++	double dE;
++	double P;
++	double rn;
++	Matrix* m_old    = new Matrix(mx *my,3);
++	Matrix* m_min    = new Matrix(mx *my,3);
++	Matrix* m_new    = new Matrix(mx *my,3);
++	m_old->MatrixEqual(mesh_ini);
++
++	/* calculate initial misfit */
++	double E_old=misfit(m_old,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs);
++	/* record initial settings */
++	if(!my_rank){
++		savefile1 << "P     "<< "Ta    "<< "Tm    "<< "Eold  "<< "totaliter "<< "Tred   "<< endl;
++		savefile1 << "nan   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++		savefile2 << totaliter<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++		}
++		savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++	}
++	/* beginning of the loop */
++
++	while(finished==0){
++		iterT++;
++		totaliter++;
++
++		/* stop or reduce T */
++		if(iterT>=maxiter || success>maxsuccess){
++			if(Ta<T_min || total>maxtotaliter || fabs(E_old)<=Tol){
++				finished=1;
++				total+=iterT;
++				break;
++			}
++			else{ /* reduce T */
++				Ta=coolshed(T0a,Tred,ca,D);
++				Tm=coolshed(T0m,Tred,cm,D);
++				total+=iterT;
++				iterT=0;
++				success=1;
++				Tred++;
++				consec=0;
++			}
++		}
++
++		/* update model and calculate energy */
++
++		newmodelgen(m_old,m_new,bathy,icethick,mx,my,Tm,ptval,mmax,mmax2,ctr,sd, landmask);  /* new model */
++		E_new=misfit(m_new,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs); /* new energy */
++		dE=E_new-E_old;                                        /* energy difference */
++
++		/* acceptance probability */
++
++		P=exp(-dE/Ta);
++
++		/* stop if energy is lower than specified minimum */
++		if (E_new<E_min){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			break;
++		}
++
++		rn=rand()/double (RAND_MAX);
++
++		/* accept new model or not */
++		if(dE<=0){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			success++;
++			consec=0;
++			if(!my_rank){
++				savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++			}
++			if(Ta<1e-3){
++				if(!my_rank){
++					savefile2 << totaliter<< endl;
++					for(int i=0;i<mx*my;i++){
++						savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++					}
++					savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++				}
++			}
++		}
++		else{
++			if(P>rn){
++				m_old->MatrixEqual(m_new);
++				E_old=E_new;
++				success++;
++				consec=0;
++				if(!my_rank){
++					savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++					if(Ta<1e-3){
++						savefile2 << totaliter<< endl;
++						for(int i=0;i<mx*my;i++){
++							savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++						}
++						savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++					}
++				}
++			}
++			else{
++				consec++;
++			}
++		}
++	}
++
++	m_min->MatrixEqual(m_old);
++	E_final=E_old;
++	if(!my_rank){
++		savefile1 << "nan"<<"   "<<  "nan"<<"   "<< "nan"<<"   "<< E_final<<"     "<< "nan"<<"         "<< "nan" <<"  "<< endl;
++		savefile2 << " Mesh final"<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_min->GetValue(i,0)<<"   "<< m_min->GetValue(i,1)<<"   "<< m_min->GetValue(i,2)<<endl;
++		}
++	}
++	savefile1.close();
++	savefile2.close();
++
++	delete m_old;
++	delete m_min;
++	delete m_new;
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete bathy;
++	delete icethick;
++	delete evalid;
++
++	/*}}}*/
++
++   MPI_Finalize();
++
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(x);
++	gsl_vector_free(b);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++				m1->SetValue(i,j,m1->GetValue(i,j));
++				m2->SetValue(i,j,m2->GetValue(i,j));
++			}
++			else{
++				m1->SetValue(i,j,1e-10);
++			}
++		}
++	}
++	m1->AddNumber(dlevel);
++	m2->AddNumber(dlevel);
++}/*}}}*/
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,int my_rank,int num_procs){/*{{{*/
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++
++	double *glocal=new double[n]();
++
++	for(int c=my_rank;c<n;c+=num_procs){
++		glocal[c]=0;
++		for(int a=0;a<m;a++){
++			test=true;
++			xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++			xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++			if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++				xpp->SetValue(0,0,xp->GetValue(0,1));
++				xpp->SetValue(0,1,xp->GetValue(0,0));
++				xp->MatrixAbs(xpp);
++			}
++			yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++			yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++			if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++				ypp->SetValue(0,0,yp->GetValue(0,1));
++				ypp->SetValue(0,1,yp->GetValue(0,0));
++				yp->MatrixAbs(ypp);
++			}
++			P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++			if(P>dn){
++				test=false;
++				for(int i=0;i<l-1;i++){
++					gl->SetValue(0,i,0);
++				}
++			}
++			if(test==true){
++				si=1;
++				sj=1;
++				id=0;
++				for(int i=0;i<2;i++){
++					si*=-1;
++					for(int j=0;j<2;j++){
++						sj*=-1;
++						s=si*sj;
++						for(int k=0;k<l;k++){
++							R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++							Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++							U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++						}
++						id++;
++					}
++				}
++				for(int b=0;b<l-1;b++){
++					U->ExtractLine(U1,b);
++					U->ExtractLine(U2,b+1);
++					gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++				}
++			}
++			glocal[c]=glocal[c]+gg*gl->MatrixInternSum();
++
++		}
++	}
++
++	MPI_Allreduce(glocal,g->GetPointer(),n,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD);
++
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++	delete []glocal;
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(nx*ny,1);
++	Matrix* df=new Matrix(nx*ny,1);
++	Matrix* G=new Matrix(nx*ny,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	plouff(g1,Pobs,Pp,m1,rho1,dx,dy,dn,mx*my,nx*ny,4, my_rank, num_procs);
++	plouff(g2,Pobs,Pp,m2,rho2,dx,dy,dn,mx*my,nx*ny,3, my_rank, num_procs);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask){/*{{{*/
++	Matrix* m1gr=new Matrix(my,mx);
++	Matrix* m1grsm=new Matrix(my,mx);
++	Matrix* m1col=new Matrix(mx*my,1);
++	Matrix* m1gr2=new Matrix(my,mx);
++	Matrix* m1grsm2=new Matrix(my,mx);
++	Matrix* m1col2=new Matrix(mx*my,1);
++	Matrix* nptflag= new Matrix(mx*my,1);
++	double u=0;
++	double y=0;
++	m1->MatrixEqual(m0);
++	nptflag->MatrixSum(icethick,bathy);
++	/* first layer: ice */
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++					m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,2)>=m1->GetValue(i,0)+mmax2){
++					m1->SetValue(i,2,m1->GetValue(i,0)+mmax2);
++				}
++			}
++		}
++	}
++
++	m1->ExtractColumn(m1col,1);
++	vec2gridsimple(m1col,m1gr,mx,my);
++	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++	reshape(m1grsm,m1col,mx,my);
++	m1->ExtractColumn(m1col2,2);
++	vec2gridsimple(m1col2,m1gr2,mx,my);
++	filtergrav(m1grsm2,m1gr2,ctr,sd,mx,my);
++	reshape(m1grsm2,m1col2,mx,my);
++
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,1,m1col->GetValue(i,0));
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,2)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else {
++			if(nptflag->GetValue(i,0)==0){
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0));
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,2))>1){
++					m1->SetValue(i,2,m1->GetValue(i,0));
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++	}
++
++				/* second layer: water */
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			u=double (rand())/ double(RAND_MAX);
++//			y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++//			m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++//			if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//			}
++//			if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++//			}
++//		}
++//	}
++//	m1->ExtractColumn(m1col,2);
++//	vec2gridsimple(m1col,m1gr,mx,my);
++//	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++//	reshape(m1grsm,m1col,mx,my);
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			m1->SetValue(i,2,m1col->GetValue(i,0));
++//		}
++//		else{
++//			m1->SetValue(i,2,m0->GetValue(i,2));
++//		}
++//		if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//			m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//		}
++//	}
++	delete m1gr;
++	delete m1grsm;
++	delete m1col;
++	delete m1gr2;
++	delete m1grsm2;
++	delete m1col2;
++	delete nptflag;
++}/*}}}*/
++double signe(double a){/*{{{*/
++	if(a<0){return -1;}
++	else{return 1;}
++}/*}}}*/
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my){/*{{{*/
++	A->MatrixEqual(Ain);
++	for (int i=1;i<my-1;i++){
++		for(int j=1;j<mx-1;j++){
++			A->SetValue(i,j,(ctr*Ain->GetValue(i,j)+sd*(Ain->GetValue(i-1,j)+Ain->GetValue(i+1,j)+Ain->GetValue(i,j-1)+Ain->GetValue(i,j+1)))/(ctr+4*sd));
++		}
++	}
++}/*}}}*/
++double coolshed(double T0,double k,double c,double D){/*{{{*/
++	double T1=T0*exp(-c*pow(k,1/D));
++	return T1;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi.cpp	(revision 20176)
+@@ -0,0 +1,876 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include "mpi.h"
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N]();
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel);
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++double signe(double a);
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my);
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask);
++double coolshed(double T0,double k,double c,double D);
++/*}}}*/
++
++int main(int argc,char *argv[]){/*{{{*/
++	
++	int my_rank,num_procs;
++
++	MPI_Init(&argc, &argv);
++
++	MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
++	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
++
++	/* Seed the random number generator {{{*/
++		srand (time(NULL));            /*}}}*/
++	/* Define the variables {{{*/
++
++	int    dx     = 1000;   /* prism dimension in x-direction                           */
++	int    dy     = 1000;   /* prism dimension in y-direction                           */
++	int    mx     = 99;    /* number of prisms in x-direction                          */
++	int    my     = 99;    /* number of prisms in y-direction                          */
++	int    nx     = 99;    /* number of data points in x-direction                     */
++	int    ny     = 99;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++	double ptval  = 100.;  /* max. amount to perturb model                             */
++	double ptval2 = 100.;
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++	// Pobs->Echo();
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* prisms positions */
++	makep(Pp,mx,my,dx,dy);
++	// Pp->Echo();
++
++	double  rhoi = 917;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++	// double  rhos = 2013;		      /* sediment density */
++	double  rhoc = 2670;          /* bedrock density */
++
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc);
++	rho2->SetValue(0,1,rhow-rhoc);
++
++	double dlevel=3134;         /* level of data acquisition */
++
++	double ctr=1;            /* parameter for filtering */
++	double sd=0.1;
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++	//	xobs->Echo();
++	//	yobs->Echo();
++
++
++	double mmax  = 1000;               /* max value for layer interfaces */
++	double mmax2 = 1000;
++	double mmax3 = 1000;
++
++	/* control parameter for temperature schedule  */
++
++	double ca=0.9;                    /* for acceptance */
++	double cm=0.5;                    /* for model perturbation */
++
++	double T0a          = 0.1;      /* initial temperature for acceptance           */
++	double T0m          = 0.9;      /* initial temperature for model perturbation   */
++	double D            = 2;        /* dimension of the model                       */
++	int    maxconsecrej = 1000;     /* max consecutive rejection                    */
++	int    maxsuccess   = 100;      /* max number of success within one temperature */
++	double T_min        = 1e-10;    /* stopping temp                                */
++	double Tred         = 1;
++	double E_min        = -1000000;
++	double E_exp        = 0.0291;   /* expected misfit                              */
++	int    maxiter      = 10000;
++	int    maxtotaliter = 1000000;
++	double Tol          = 1e-10;    /* tolerance on misfit                          */
++	int    sfreq        = 100;
++
++	/*}}}*/     
++	/* load the data {{{*/
++
++	/*landmask */
++
++	ifstream file("landmaskzach.txt");
++	Matrix * landmask= new Matrix(nx*ny,1);
++	double inputnumber;
++	for(int i=0;i<ny*nx; i++){ 
++		file >> inputnumber;
++		landmask->SetValue(i,0,inputnumber);
++	}
++	file.close();
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("gravityzach.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++	//	gobs->Echo();
++
++	/* load data about the ice thickness */
++
++	ifstream file2("icethickzach.txt");
++	Matrix * icethick= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file2 >> inputnumber;
++		icethick->SetValue(s,0,inputnumber);
++	}
++	file2.close();
++	//	icethick->Echo();
++
++	/* load the batimethry data */
++
++	ifstream file3("bathymetryzach.txt");
++	Matrix * bathy= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file3 >> inputnumber;
++		bathy->SetValue(s,0,inputnumber);
++	}
++	file3.close();
++	//	bathy->Echo();
++
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("evalidzach.txt");
++	Matrix * evalid= new Matrix(nx*ny,1);
++	for(int s=0;s<nx*ny; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++	//	evalid->Echo();
++
++	/* initial guess of the model */
++
++	ifstream file5("m0_102714contzach.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++			file5 >> inputnumber;
++			mesh_ini->SetValue(s,j,inputnumber);
++		}
++	}
++	file5.close();
++	//	mesh_ini->Echo();
++	/*}}}*/
++	/* VFSA {{{ */
++
++	/* name of the files to save results */
++	std::ofstream savefile1 ("r_zach.txt");
++	std::ofstream savefile2("m_zach.txt");
++
++	/* counters initialization */
++	int    success   = 0;
++	int    finished  = 0;
++	int    consec    = 0;
++	double Ta        = T0a;
++	double Tm        = T0m;
++	int    iterT     = 0;   /* iteration within a T      */
++	int    total     = 0;   /* total number of iteration */
++	int    totaliter = 0;
++	int    msave     = 0;
++	double E_new;
++	double E_final;
++	double dE;
++	double P;
++	double rn;
++	Matrix* m_old    = new Matrix(mx *my,3);
++	Matrix* m_min    = new Matrix(mx *my,3);
++	Matrix* m_new    = new Matrix(mx *my,3);
++	m_old->MatrixEqual(mesh_ini);
++
++	/* calculate initial misfit */
++	double E_old=misfit(m_old,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs);
++	/* record initial settings */
++	if(!my_rank){
++		savefile1 << "P     "<< "Ta    "<< "Tm    "<< "Eold  "<< "totaliter "<< "Tred   "<< endl;
++		savefile1 << "nan   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++		savefile2 << totaliter<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++		}
++		savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++	}
++	/* beginning of the loop */
++
++	while(finished==0){
++		iterT++;
++		totaliter++;
++
++		/* stop or reduce T */
++		if(iterT>=maxiter || success>maxsuccess){
++			if(Ta<T_min || total>maxtotaliter || fabs(E_old)<=Tol){
++				finished=1;
++				total+=iterT;
++				break;
++			}
++			else{ /* reduce T */
++				Ta=coolshed(T0a,Tred,ca,D);
++				Tm=coolshed(T0m,Tred,cm,D);
++				total+=iterT;
++				iterT=0;
++				success=1;
++				Tred++;
++				consec=0;
++			}
++		}
++
++		/* update model and calculate energy */
++
++		newmodelgen(m_old,m_new,bathy,icethick,mx,my,Tm,ptval,mmax,mmax2,ctr,sd, landmask);  /* new model */
++		E_new=misfit(m_new,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs); /* new energy */
++		dE=E_new-E_old;                                        /* energy difference */
++
++		/* acceptance probability */
++
++		P=exp(-dE/Ta);
++
++		/* stop if energy is lower than specified minimum */
++		if (E_new<E_min){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			break;
++		}
++
++		rn=rand()/double (RAND_MAX);
++
++		/* accept new model or not */
++		if(dE<=0){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			E_final=E_old;
++			success++;
++			consec=0;
++			if(!my_rank){
++				savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++			}
++			if(Ta<1e-3){
++				if(!my_rank){
++					savefile2 << totaliter<< endl;
++					for(int i=0;i<mx*my;i++){
++						savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++					}
++					savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++				}
++			}
++		}
++		else{
++			if(P>rn){
++				m_old->MatrixEqual(m_new);
++				E_old=E_new;
++				success++;
++				consec=0;
++				if(!my_rank){
++					savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++					if(Ta<1e-3){
++						savefile2 << totaliter<< endl;
++						for(int i=0;i<mx*my;i++){
++							savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++						}
++						savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++					}
++				}
++			}
++			else{
++				consec++;
++			}
++		}
++	}
++
++	m_min->MatrixEqual(m_old);
++	if(!my_rank){
++		savefile1 << "nan"<<"   "<<  "nan"<<"   "<< "nan"<<"   "<< E_final<<"     "<< "nan"<<"         "<< "nan" <<"  "<< endl;
++		savefile2 << " Mesh final"<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_min->GetValue(i,0)<<"   "<< m_min->GetValue(i,1)<<"   "<< m_min->GetValue(i,2)<<endl;
++		}
++	}
++	savefile1.close();
++	savefile2.close();
++
++	delete m_old;
++	delete m_min;
++	delete m_new;
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete bathy;
++	delete icethick;
++	delete evalid;
++	delete gobs;
++	delete landmask;
++
++	/*}}}*/
++
++   MPI_Finalize();
++
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(x);
++	gsl_vector_free(b);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,double dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++				m1->SetValue(i,j,m1->GetValue(i,j));
++				m2->SetValue(i,j,m2->GetValue(i,j));
++			}
++			else{
++				m1->SetValue(i,j,1e-10);
++			}
++		}
++	}
++	m1->AddNumber(dlevel);
++	m2->AddNumber(dlevel);
++}/*}}}*/
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix* evalid,int my_rank,int num_procs){/*{{{*/
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++
++	double *glocal=new double[n]();
++
++	for(int c=my_rank;c<n;c+=num_procs){
++		glocal[c]=0;
++		if(evalid->GetValue(i,0)==1){
++			for(int a=0;a<m;a++){
++				test=true;
++				xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++				xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++				if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++					xpp->SetValue(0,0,xp->GetValue(0,1));
++					xpp->SetValue(0,1,xp->GetValue(0,0));
++					xp->MatrixAbs(xpp);
++				}
++				yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++				yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++				if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++					ypp->SetValue(0,0,yp->GetValue(0,1));
++					ypp->SetValue(0,1,yp->GetValue(0,0));
++					yp->MatrixAbs(ypp);
++				}
++				P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++				if(P>dn){
++					test=false;
++					for(int i=0;i<l-1;i++){
++						gl->SetValue(0,i,0);
++					}
++				}
++				if(test==true){
++					si=1;
++					sj=1;
++					id=0;
++					for(int i=0;i<2;i++){
++						si*=-1;
++						for(int j=0;j<2;j++){
++							sj*=-1;
++							s=si*sj;
++							for(int k=0;k<l;k++){
++								R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++								Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++								U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++							}
++							id++;
++						}
++					}
++					for(int b=0;b<l-1;b++){
++						U->ExtractLine(U1,b);
++						U->ExtractLine(U2,b+1);
++						gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++					}
++				}
++				glocal[c]=glocal[c]+gg*gl->MatrixInternSum();
++			}
++		}
++	}
++
++	MPI_Allreduce(glocal,g->GetPointer(),n,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD);
++
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++	delete []glocal;
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,double dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(nx*ny,1);
++	Matrix* df=new Matrix(nx*ny,1);
++	Matrix* G=new Matrix(nx*ny,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	plouff(g1,Pobs,Pp,m1,rho1,dx,dy,dn,mx*my,nx*ny,4,evalid, my_rank, num_procs);
++	plouff(g2,Pobs,Pp,m2,rho2,dx,dy,dn,mx*my,nx*ny,3,evalid, my_rank, num_procs);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask){/*{{{*/
++	Matrix* m1gr=new Matrix(my,mx);
++	Matrix* m1grsm=new Matrix(my,mx);
++	Matrix* m1col=new Matrix(mx*my,1);
++	Matrix* m1gr2=new Matrix(my,mx);
++	Matrix* m1grsm2=new Matrix(my,mx);
++	Matrix* m1col2=new Matrix(mx*my,1);
++	Matrix* nptflag= new Matrix(mx*my,1);
++	double u=0;
++	double y=0;
++	m1->MatrixEqual(m0);
++	nptflag->MatrixSum(icethick,bathy);
++	/* first layer: ice */
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++					m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,2)>=m1->GetValue(i,0)+mmax2){
++					m1->SetValue(i,2,m1->GetValue(i,0)+mmax2);
++				}
++			}
++		}
++		else if(landmask->GetValue(i,0)==3){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++					m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++				}
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++				if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++					m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++				}
++			}
++		}
++	}
++
++	m1->ExtractColumn(m1col,1);
++	vec2gridsimple(m1col,m1gr,mx,my);
++	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++	reshape(m1grsm,m1col,mx,my);
++	m1->ExtractColumn(m1col2,2);
++	vec2gridsimple(m1col2,m1gr2,mx,my);
++	filtergrav(m1grsm2,m1gr2,ctr,sd,mx,my);
++	reshape(m1grsm2,m1col2,mx,my);
++
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,1,m1col->GetValue(i,0));
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,2)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else if(landmask->GetValue(i,0)==3){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,1,m1col->GetValue(i,0));
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else {
++			if(nptflag->GetValue(i,0)==0){
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0));
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,2))>1){
++					m1->SetValue(i,2,m1->GetValue(i,0));
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++	}
++
++				/* second layer: water */
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			u=double (rand())/ double(RAND_MAX);
++//			y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++//			m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++//			if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//			}
++//			if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++//			}
++//		}
++//	}
++//	m1->ExtractColumn(m1col,2);
++//	vec2gridsimple(m1col,m1gr,mx,my);
++//	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++//	reshape(m1grsm,m1col,mx,my);
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			m1->SetValue(i,2,m1col->GetValue(i,0));
++//		}
++//		else{
++//			m1->SetValue(i,2,m0->GetValue(i,2));
++//		}
++//		if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//			m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//		}
++//	}
++	delete m1gr;
++	delete m1grsm;
++	delete m1col;
++	delete m1gr2;
++	delete m1grsm2;
++	delete m1col2;
++	delete nptflag;
++}/*}}}*/
++double signe(double a){/*{{{*/
++	if(a<0){return -1;}
++	else{return 1;}
++}/*}}}*/
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my){/*{{{*/
++	A->MatrixEqual(Ain);
++	for (int i=1;i<my-1;i++){
++		for(int j=1;j<mx-1;j++){
++			A->SetValue(i,j,(ctr*Ain->GetValue(i,j)+sd*(Ain->GetValue(i-1,j)+Ain->GetValue(i+1,j)+Ain->GetValue(i,j-1)+Ain->GetValue(i,j+1)))/(ctr+4*sd));
++		}
++	}
++}/*}}}*/
++double coolshed(double T0,double k,double c,double D){/*{{{*/
++	double T1=T0*exp(-c*pow(k,1/D));
++	return T1;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi_uneven.cpp
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi_uneven.cpp	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/code_inversion/vfsa_mpi_uneven.cpp	(revision 20176)
+@@ -0,0 +1,882 @@
++#include <iostream>
++#include <cmath>
++#include <fstream>
++#include <string>
++#include <cstdio>
++#include <cstdlib>
++#include <time.h>
++#include <cassert>
++#include <gsl/gsl_multifit.h>
++#include "mpi.h"
++using namespace std;
++
++class Matrix{/*{{{*/
++	private:
++		int     M;        /*Number of lines   */
++		int     N;        /*Number if Columns */
++		double *values;
++	public:
++		Matrix(int m_in,int n_in){/*{{{*/
++			this->M = m_in;
++			this->N = n_in;
++			this->values = new double[M*N]();
++		}/*}}}*/
++		~Matrix(){/*{{{*/
++			delete [] this->values;
++		}/*}}}*/
++		void Echo(void){/*{{{*/
++			for(int i=0;i<M;i++){
++				for(int j=0;j<N;j++){
++					cout << " " << this->values[i*N+j];
++				}
++				cout << endl;
++			}
++		}/*}}}*/
++		void SetValue(int i,int j,double value){/*{{{*/
++			this->values[i*N+j] = value;
++		}/*}}}*/
++		double GetValue(int i,int j){/*{{{*/
++			return this->values[i*N+j];
++		}/*}}}*/
++		void GetSize(int* pM,int* pN){/*{{{*/
++			*pM = this->M;
++			*pN = this->N;
++		}/*}}}*/
++		double* GetPointer(void){/*{{{*/
++			return this->values;
++		}/*}}}*/
++		void MatrixSum(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) + B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixDiff(Matrix* A,Matrix* B){/*{{{*/
++			/*Check that sizes are compatible*/
++			int M_B,N_B,M_A,N_A;
++			B->GetSize(&M_B,&N_B);
++			A->GetSize(&M_A,&N_A);
++			assert(this->M==M_B && this->N==N_B);
++			assert(this->M==M_A && this->N==N_A);
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j) - B->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		void MatrixAbs(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,fabs(A->GetValue(i,j)));
++				}
++			}
++		}/*}}}*/
++		void MatrixEqual(Matrix* A){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,A->GetValue(i,j));
++				}
++			}
++		}/*}}}*/
++		double MatrixInternSum(){/*{{{*/
++			double sum=0;
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					sum+=this->GetValue(i,j);
++				}
++			}
++			return sum;
++		}/*}}}*/
++		void ExtractLine(Matrix* A,int i){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(M_A==1 && this->N==N_A);
++			for(int j=0;j<this->N;j++){
++				A->SetValue(0,j,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void ExtractColumn(Matrix* A,int j){/*{{{*/
++			/* Check that the size of A is compatible */
++			int M_A,N_A;
++			A->GetSize(&M_A,&N_A);
++			assert(N_A==1 && this->M==M_A);
++			for(int i=0;i<this->M;i++){
++				A->SetValue(i,0,this->GetValue(i,j));
++			}
++		}/*}}}*/
++		void AddNumber(double a){/*{{{*/
++			for(int i=0;i<this->M;i++){
++				for(int j=0;j<this->N;j++){
++					this->SetValue(i,j,this->GetValue(i,j) + a);
++				}
++			}
++		}/*}}}*/
++};/*}}}*/
++
++/*Local prototypes{{{*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy);
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny);
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,Matrix *dlevel);
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix *evalid,int my_rank,int num_procs);
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny);
++void reshape(Matrix* V,Matrix* V1,int nx,int ny);
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,Matrix *dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs);
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B);
++double signe(double a);
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my);
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask);
++double coolshed(double T0,double k,double c,double D);
++/*}}}*/
++
++int main(int argc,char *argv[]){/*{{{*/
++	
++	int my_rank,num_procs;
++
++	MPI_Init(&argc, &argv);
++
++	MPI_Comm_size(MPI_COMM_WORLD,&num_procs);
++	MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
++
++	/* Seed the random number generator {{{*/
++		srand (time(NULL));            /*}}}*/
++	/* Define the variables {{{*/
++
++	int    dx     = 1000;   /* prism dimension in x-direction                           */
++	int    dy     = 1000;   /* prism dimension in y-direction                           */
++	int    mx     = 99;    /* number of prisms in x-direction                          */
++	int    my     = 99;    /* number of prisms in y-direction                          */
++	int    nx     = 99;    /* number of data points in x-direction                     */
++	int    ny     = 99;    /* number of data points in y-direction                     */
++	int    dn     = 15000; /* distance for neighbouting prisms for gravity calculation */
++	double ptval  = 100.;  /* max. amount to perturb model                             */
++	double ptval2 = 100.;
++
++	Matrix *Pobs=new Matrix(nx*ny,2); /* data positions */
++	makep(Pobs,nx,ny,dx,dy);
++	// Pobs->Echo();
++
++
++	Matrix *Pp=new Matrix(mx*my,2); /* prisms positions */
++	makep(Pp,mx,my,dx,dy);
++	// Pp->Echo();
++
++	double  rhoi = 917;           /* ice density     */
++	double  rhow = 1030;          /* water density   */
++	// double  rhos = 2013;		      /* sediment density */
++	double  rhoc = 2670;          /* bedrock density */
++
++	Matrix *Rho  = new Matrix(1,2);
++	Rho->SetValue(0,0,rhoi);
++	Rho->SetValue(0,1,rhow);
++	Matrix *rho1  = new Matrix(1,3);
++	rho1->SetValue(0,0,rhoi);
++	rho1->SetValue(0,1,rhow);
++	rho1->SetValue(0,2,rhoc);
++	Matrix *rho2  = new Matrix(1,2);
++	rho2->SetValue(0,0,rhoi-rhoc);
++	rho2->SetValue(0,1,rhow-rhoc);
++
++	double ctr=1;            /* parameter for filtering */
++	double sd=0.1;
++
++	Matrix *xobs= new Matrix(ny,nx);
++	Matrix *yobs= new Matrix(ny,nx);
++
++	vec2grid(Pobs,xobs,yobs,nx,ny);
++	//	xobs->Echo();
++	//	yobs->Echo();
++
++
++	double mmax  = 1000;               /* max value for layer interfaces */
++	double mmax2 = 1000;
++	double mmax3 = 1000;
++
++	/* control parameter for temperature schedule  */
++
++	double ca=0.9;                    /* for acceptance */
++	double cm=0.5;                    /* for model perturbation */
++
++	double T0a          = 0.1;      /* initial temperature for acceptance           */
++	double T0m          = 0.9;      /* initial temperature for model perturbation   */
++	double D            = 2;        /* dimension of the model                       */
++	int    maxconsecrej = 1000;     /* max consecutive rejection                    */
++	int    maxsuccess   = 100;      /* max number of success within one temperature */
++	double T_min        = 1e-10;    /* stopping temp                                */
++	double Tred         = 1;
++	double E_min        = -1000000;
++	double E_exp        = 0.0291;   /* expected misfit                              */
++	int    maxiter      = 10000;
++	int    maxtotaliter = 1000000;
++	double Tol          = 1e-10;    /* tolerance on misfit                          */
++	int    sfreq        = 100;
++
++	/*}}}*/     
++	/* load the data {{{*/
++
++	/*landmask */
++
++	ifstream file("landmaskzach.txt");
++	Matrix * landmask= new Matrix(nx*ny,1);
++	double inputnumber;
++	for(int i=0;i<ny*nx; i++){ 
++		file >> inputnumber;
++		landmask->SetValue(i,0,inputnumber);
++	}
++	file.close();
++
++	/* Levels of data acquisition */
++
++	ifstream file0("altizach.txt");
++	Matrix * dlevel= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){
++		file0 >> inputnumber;
++		dlevel->SetValue(i,0,inputnumber);
++	}
++	file0.close();
++
++	/* Observed gravity anomaly */
++
++	ifstream file1("gravityzach.txt");
++	Matrix * gobs= new Matrix(nx*ny,1);
++	for(int i=0;i<ny*nx; i++){ 
++		file1 >> inputnumber;
++		gobs->SetValue(i,0, inputnumber*1e-5);
++	}
++	file1.close();
++	//	gobs->Echo();
++
++	/* load data about the ice thickness */
++
++	ifstream file2("icethickzach.txt");
++	Matrix * icethick= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file2 >> inputnumber;
++		icethick->SetValue(s,0,inputnumber);
++	}
++	file2.close();
++	//	icethick->Echo();
++
++	/* load the batimethry data */
++
++	ifstream file3("bathymetryzach.txt");
++	Matrix * bathy= new Matrix(mx*my,1);
++	for(int s=0;s<mx*my; s++){ 
++		file3 >> inputnumber;
++		bathy->SetValue(s,0,inputnumber);
++	}
++	file3.close();
++	//	bathy->Echo();
++
++	/* id of grid to evaluate misfit */
++
++
++	ifstream file4("evalidzach.txt");
++	Matrix * evalid= new Matrix(nx*ny,1);
++	for(int s=0;s<nx*ny; s++){ 
++		file4 >> inputnumber;
++		evalid->SetValue(s,0,inputnumber);
++	}
++	file4.close();
++	//	evalid->Echo();
++
++	/* initial guess of the model */
++
++	ifstream file5("m0_102714contzach.txt");
++	Matrix * mesh_ini= new Matrix(mx*my,3);
++	for(int s=0;s<mx*my; s++){ 
++		for(int j=0;j<3;j++){
++			file5 >> inputnumber;
++			mesh_ini->SetValue(s,j,inputnumber);
++		}
++	}
++	file5.close();
++	//	mesh_ini->Echo();
++	/*}}}*/
++	/* VFSA {{{ */
++
++	/* name of the files to save results */
++	std::ofstream savefile1 ("r_zach.txt");
++	std::ofstream savefile2("m_zach.txt");
++
++	/* counters initialization */
++	int    success   = 0;
++	int    finished  = 0;
++	int    consec    = 0;
++	double Ta        = T0a;
++	double Tm        = T0m;
++	int    iterT     = 0;   /* iteration within a T      */
++	int    total     = 0;   /* total number of iteration */
++	int    totaliter = 0;
++	int    msave     = 0;
++	double E_new;
++	double E_final;
++	double dE;
++	double P;
++	double rn;
++	Matrix* m_old    = new Matrix(mx *my,3);
++	Matrix* m_min    = new Matrix(mx *my,3);
++	Matrix* m_new    = new Matrix(mx *my,3);
++	m_old->MatrixEqual(mesh_ini);
++
++	/* calculate initial misfit */
++	double E_old=misfit(m_old,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs);
++	/* record initial settings */
++	if(!my_rank){
++		savefile1 << "P     "<< "Ta    "<< "Tm    "<< "Eold  "<< "totaliter "<< "Tred   "<< endl;
++		savefile1 << "nan   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++		savefile2 << totaliter<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++		}
++		savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++	}
++	/* beginning of the loop */
++
++	while(finished==0){
++		iterT++;
++		totaliter++;
++
++		/* stop or reduce T */
++		if(iterT>=maxiter || success>maxsuccess){
++			if(Ta<T_min || total>maxtotaliter || fabs(E_old)<=Tol){
++				finished=1;
++				total+=iterT;
++				break;
++			}
++			else{ /* reduce T */
++				Ta=coolshed(T0a,Tred,ca,D);
++				Tm=coolshed(T0m,Tred,cm,D);
++				total+=iterT;
++				iterT=0;
++				success=1;
++				Tred++;
++				consec=0;
++			}
++		}
++
++		/* update model and calculate energy */
++
++		newmodelgen(m_old,m_new,bathy,icethick,mx,my,Tm,ptval,mmax,mmax2,ctr,sd, landmask);  /* new model */
++		E_new=misfit(m_new,evalid,gobs,dlevel,Pobs,xobs,yobs,Pp,rho1,rho2,dx,dy,dn,nx,ny,mx,my, my_rank, num_procs); /* new energy */
++		dE=E_new-E_old;                                        /* energy difference */
++
++		/* acceptance probability */
++
++		P=exp(-dE/Ta);
++
++		/* stop if energy is lower than specified minimum */
++		if (E_new<E_min){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			break;
++		}
++
++		rn=rand()/double (RAND_MAX);
++
++		/* accept new model or not */
++		if(dE<=0){
++			m_old->MatrixEqual(m_new);
++			E_old=E_new;
++			E_final=E_old;
++			success++;
++			consec=0;
++			if(!my_rank){
++				savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++			}
++			if(Ta<1e-3){
++				if(!my_rank){
++					savefile2 << totaliter<< endl;
++					for(int i=0;i<mx*my;i++){
++						savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++					}
++					savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++				}
++			}
++		}
++		else{
++			if(P>rn){
++				m_old->MatrixEqual(m_new);
++				E_old=E_new;
++				success++;
++				consec=0;
++				if(!my_rank){
++					savefile1 << P<<"   "<<  Ta<<"   "<< Tm<<"   "<< E_old<<"     "<< totaliter<<"         "<< Tred <<"  "<< endl;
++					if(Ta<1e-3){
++						savefile2 << totaliter<< endl;
++						for(int i=0;i<mx*my;i++){
++							savefile2 << m_old->GetValue(i,0)<<"   "<< m_old->GetValue(i,1)<<"   "<< m_old->GetValue(i,2)<<endl;
++						}
++						savefile2 << "111111111111111111111111111111111111111111111111111111111111111111111111111"<< endl;
++					}
++				}
++			}
++			else{
++				consec++;
++			}
++		}
++	}
++
++	m_min->MatrixEqual(m_old);
++	if(!my_rank){
++		savefile1 << "nan"<<"   "<<  "nan"<<"   "<< "nan"<<"   "<< E_final<<"     "<< "nan"<<"         "<< "nan" <<"  "<< endl;
++		savefile2 << " Mesh final"<< endl;
++		for(int i=0;i<mx*my;i++){
++			savefile2 << m_min->GetValue(i,0)<<"   "<< m_min->GetValue(i,1)<<"   "<< m_min->GetValue(i,2)<<endl;
++		}
++	}
++	savefile1.close();
++	savefile2.close();
++
++	delete m_old;
++	delete m_min;
++	delete m_new;
++	delete Pobs;
++	delete Pp;
++	delete Rho;
++	delete rho1;
++	delete rho2;
++	delete xobs;
++	delete yobs;
++	delete mesh_ini;
++	delete bathy;
++	delete icethick;
++	delete evalid;
++	delete gobs;
++	delete landmask;
++
++	/*}}}*/
++
++   MPI_Finalize();
++
++	return 0;
++}/*}}}*/
++
++void GSLsquarefit(Matrix** pX,Matrix* A,Matrix* B){/*{{{*/
++
++	/*GSL Matrices and vectors: */
++	int    M,N;
++	double chisq;
++	/*Get system size*/
++	A->GetSize(&M,&N);
++
++	/*Initialize gsl matrices and vectors: */
++	gsl_matrix* a = gsl_matrix_alloc(M,N);
++	for(int i=0;i<M;i++){
++		for(int j=0;j<N;j++){
++			gsl_matrix_set (a,i,j,A->GetValue(i,j));
++		}
++	}
++	gsl_vector* b = gsl_vector_alloc(M);
++	for(int i=0;i<M;i++){
++		gsl_vector_set(b,i,B->GetValue(i,0));
++	}
++
++	gsl_vector* x = gsl_vector_alloc(N);
++	gsl_matrix* cov = gsl_matrix_alloc(N,N);
++
++	/*Least square fit: */
++	gsl_multifit_linear_workspace* work = gsl_multifit_linear_alloc(M,N);
++	gsl_multifit_linear (a, b, x, cov, &chisq, work);
++	gsl_multifit_linear_free (work);
++
++	/*Clean up and assign output pointer*/
++	Matrix* X = new Matrix(N,1);
++	for(int j=0;j<N;j++){
++		X->SetValue(j,0,gsl_vector_get(x,j));
++	}
++	*pX = X;
++
++	gsl_matrix_free(a);
++	gsl_vector_free(x);
++	gsl_vector_free(b);
++	gsl_matrix_free(cov);
++
++}/*}}}*/
++void makep(Matrix *Pobs,int nx,int ny, int dx, int dy){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			Pobs->SetValue(j+nx*i,0,j*dx);
++			Pobs->SetValue(j+nx*i,1,i*dy);
++		}
++	}
++}/*}}}*/
++void vec2grid(Matrix *V,Matrix *V1,Matrix *V2,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++			V2->SetValue(i,j, V->GetValue(j+nx*i,1));
++		}
++	}
++}/*}}}*/
++void msplit( Matrix *m, Matrix *m1,Matrix *m2,Matrix* dlevel){/*{{{*/
++	int sizem1,sizem2;
++	m->GetSize(&sizem1,&sizem2);
++	for(int i=0;i<sizem1;i++){
++		for(int j=0;j<sizem2+1;j++){
++			if(j<sizem2){
++				m1->SetValue(i,j,1e-10*(sizem2+1-j));
++				m2->SetValue(i,j,m->GetValue(i,j));
++				if(m->GetValue(i,j)<0){
++					m1->SetValue(i,j,m->GetValue(i,j));
++					m2->SetValue(i,j,i*1e-10);
++				}
++				m1->SetValue(i,j,m1->GetValue(i,j)+dlevel->GetValue(i,1));
++				m2->SetValue(i,j,m2->GetValue(i,j)+dlevel->GetValue(i,1));
++			}
++			else{
++				m1->SetValue(i,j,1e-10+dlevel->GetValue(i,1));
++			}
++		}
++	}
++}/*}}}*/
++void plouff(Matrix *g,Matrix *Pobs,Matrix *Pp,Matrix * mesh,Matrix *rho,int dx,int dy, int dn,int m,int n,int l,Matrix* evalid,int my_rank,int num_procs){/*{{{*/
++	double gg=6.673e-11;
++	int si,sj,id,s;
++	double R,Q,P;
++	Matrix *xp= new Matrix(1,2);
++	Matrix *yp= new Matrix(1,2);
++	Matrix *xpp= new Matrix(1,2);
++	Matrix *ypp= new Matrix(1,2);
++	Matrix *U= new Matrix(l,4);
++	Matrix *U1=new Matrix(1,4);
++	Matrix *U2=new Matrix(1,4);
++	Matrix *gl= new Matrix(1,l-1);
++	bool test=true;
++
++	double *glocal=new double[n]();
++
++	for(int c=my_rank;c<n;c+=num_procs){
++		glocal[c]=0;
++		if(evalid->GetValue(i,0)==1){
++			for(int a=0;a<m;a++){
++				test=true;
++				xp->SetValue(0,0,Pp->GetValue(a,0)-Pobs->GetValue(c,0));
++				xp->SetValue(0,1,Pp->GetValue(a,0)-Pobs->GetValue(c,0)+dx);
++				if(xp->GetValue(0,0)<0 && xp->GetValue(0,0)<xp->GetValue(0,1) && xp->GetValue(0,0)*xp->GetValue(0,1)>=0){
++					xpp->SetValue(0,0,xp->GetValue(0,1));
++					xpp->SetValue(0,1,xp->GetValue(0,0));
++					xp->MatrixAbs(xpp);
++				}
++				yp->SetValue(0,0,Pp->GetValue(a,1)-Pobs->GetValue(c,1));
++				yp->SetValue(0,1,Pp->GetValue(a,1)-Pobs->GetValue(c,1)+dy);
++				if(yp->GetValue(0,0)<0 && yp->GetValue(0,0)<yp->GetValue(0,1) && yp->GetValue(0,0)*yp->GetValue(0,1)>=0){
++					ypp->SetValue(0,0,yp->GetValue(0,1));
++					ypp->SetValue(0,1,yp->GetValue(0,0));
++					yp->MatrixAbs(ypp);
++				}
++				P=sqrt(xp->GetValue(0,0)*xp->GetValue(0,0)+yp->GetValue(0,0)*yp->GetValue(0,0));
++				if(P>dn){
++					test=false;
++					for(int i=0;i<l-1;i++){
++						gl->SetValue(0,i,0);
++					}
++				}
++				if(test==true){
++					si=1;
++					sj=1;
++					id=0;
++					for(int i=0;i<2;i++){
++						si*=-1;
++						for(int j=0;j<2;j++){
++							sj*=-1;
++							s=si*sj;
++							for(int k=0;k<l;k++){
++								R=sqrt(xp->GetValue(0,i)*xp->GetValue(0,i)+yp->GetValue(0,j)*yp->GetValue(0,j)+mesh->GetValue(a,k)*mesh->GetValue(a,k));
++								Q=atan(xp->GetValue(0,i)*yp->GetValue(0,j)/(mesh->GetValue(a,k)*R));
++								U->SetValue(k,id,s*(mesh->GetValue(a,k)*Q-xp->GetValue(0,i)*log(R+yp->GetValue(0,j))-yp->GetValue(0,j)*log(R+xp->GetValue(0,i))));
++							}
++							id++;
++						}
++					}
++					for(int b=0;b<l-1;b++){
++						U->ExtractLine(U1,b);
++						U->ExtractLine(U2,b+1);
++						gl->SetValue(0,b,rho->GetValue(0,b)*(U1->MatrixInternSum()*(-1)+U2->MatrixInternSum()));
++					}
++				}
++				glocal[c]=glocal[c]+gg*gl->MatrixInternSum();
++			}
++		}
++	}
++
++	MPI_Allreduce(glocal,g->GetPointer(),n,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD);
++
++	delete xp;
++	delete yp;
++	delete xpp;
++	delete ypp;
++	delete gl;
++	delete U;
++	delete U1;
++	delete U2;
++	delete []glocal;
++}/*}}}*/
++void vec2gridsimple(Matrix *V,Matrix *V1,int nx, int ny){/*{{{*/
++	for(int i=0;i<ny;i++){
++		for (int j=0;j<nx;j++){
++			V1->SetValue(i,j, V->GetValue(j+nx*i,0));
++		}
++	}
++}/*}}}*/
++void reshape(Matrix* V,Matrix* V1,int nx,int ny){/*{{{*/
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			V1->SetValue(j+nx*i,0,V->GetValue(i,j));
++		}
++	}
++}/*}}}*/
++double misfit(Matrix* m0,Matrix* evalid,Matrix* gobs,Matrix *dlevel,Matrix* Pobs,Matrix* xobs,Matrix* yobs,Matrix* Pp,Matrix* rho1, Matrix* rho2,int dx,int dy,int dn,int nx,int ny, int mx,int my,int my_rank,int num_procs){/*{{{*/
++	Matrix* m1=new Matrix(mx*my,4);
++	Matrix* m2=new Matrix(mx*my,3);
++	Matrix* g1=new Matrix(nx*ny,1);
++	Matrix* g2=new Matrix(nx*ny,1);
++	Matrix* g=new Matrix(nx*ny,1);
++	Matrix* gcalgr=new Matrix(ny,nx);
++	Matrix* gcalvec=new Matrix(nx*ny,1);
++	Matrix* df=new Matrix(nx*ny,1);
++	Matrix* G=new Matrix(nx*ny,3);
++	double a=0;
++	double b=0;
++	double e=0;
++	msplit(m0,m1,m2,dlevel);
++	plouff(g1,Pobs,Pp,m1,rho1,dx,dy,dn,mx*my,nx*ny,4,evalid, my_rank, num_procs);
++	plouff(g2,Pobs,Pp,m2,rho2,dx,dy,dn,mx*my,nx*ny,3,evalid, my_rank, num_procs);
++	g->MatrixSum(g1,g2);
++	vec2gridsimple(g,gcalgr,nx,ny);
++	reshape(gcalgr,gcalvec,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		df->SetValue(i,0,evalid->GetValue(i,0)*(gobs->GetValue(i,0)-gcalvec->GetValue(i,0)));
++		G->SetValue(i,0,evalid->GetValue(i,0)*Pobs->GetValue(i,0));
++		G->SetValue(i,1,evalid->GetValue(i,0)*Pobs->GetValue(i,1));
++		G->SetValue(i,2,evalid->GetValue(i,0));
++	}
++	Matrix* M = NULL;
++	GSLsquarefit(&M,G,df);
++
++	for (int i=0;i<ny;i++){
++		for(int j=0;j<nx;j++){
++			gcalgr->SetValue(i,j,gcalgr->GetValue(i,j)+xobs->GetValue(i,j)*M->GetValue(0,0)+yobs->GetValue(i,j)*M->GetValue(1,0)+M->GetValue(2,0));
++		}
++	}
++	reshape(gcalgr,g,nx,ny);
++	for (int i=0;i<nx*ny;i++){
++		a=a+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)-g->GetValue(i,0)));
++		b=b+fabs(evalid->GetValue(i,0)*(gobs->GetValue(i,0)+g->GetValue(i,0)));
++	}
++	e=2*a/(a+b);
++
++	delete m1;
++	delete m2;
++	delete g1;
++	delete g2;
++	delete g;
++	delete gcalgr;
++	delete gcalvec;
++	delete df;
++	delete G;
++	delete M;
++
++	return e;
++}/*}}}*/
++void newmodelgen(Matrix* m0,Matrix* m1,Matrix* bathy,Matrix* icethick,int mx,int my,double T,double ptval,double mmax,double mmax2,double ctr,double sd, Matrix *landmask){/*{{{*/
++	Matrix* m1gr=new Matrix(my,mx);
++	Matrix* m1grsm=new Matrix(my,mx);
++	Matrix* m1col=new Matrix(mx*my,1);
++	Matrix* m1gr2=new Matrix(my,mx);
++	Matrix* m1grsm2=new Matrix(my,mx);
++	Matrix* m1col2=new Matrix(mx*my,1);
++	Matrix* nptflag= new Matrix(mx*my,1);
++	double u=0;
++	double y=0;
++	m1->MatrixEqual(m0);
++	nptflag->MatrixSum(icethick,bathy);
++	/* first layer: ice */
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++					m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,2)>=m1->GetValue(i,0)+mmax2){
++					m1->SetValue(i,2,m1->GetValue(i,0)+mmax2);
++				}
++			}
++		}
++		else if(landmask->GetValue(i,0)==3){
++			if(nptflag->GetValue(i,0)==0){
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,1,m0->GetValue(i,1)+y*ptval);
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,1)>=m1->GetValue(i,0)+mmax){
++					m1->SetValue(i,1,m1->GetValue(i,0)+mmax);
++				}
++				u=double(rand())/double(RAND_MAX);
++				y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++				m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++				if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++					m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++				}
++			}
++		}
++	}
++
++	m1->ExtractColumn(m1col,1);
++	vec2gridsimple(m1col,m1gr,mx,my);
++	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++	reshape(m1grsm,m1col,mx,my);
++	m1->ExtractColumn(m1col2,2);
++	vec2gridsimple(m1col2,m1gr2,mx,my);
++	filtergrav(m1grsm2,m1gr2,ctr,sd,mx,my);
++	reshape(m1grsm2,m1col2,mx,my);
++
++	for (int i=0;i<mx*my;i++){
++		if(landmask->GetValue(i,0)==2){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,1,m1col->GetValue(i,0));
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,2)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else if(landmask->GetValue(i,0)==0){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,2)<=m1->GetValue(i,0)){
++					m1->SetValue(i,2,m1->GetValue(i,0)+1e-10);
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else if(landmask->GetValue(i,0)==3){
++			if(nptflag->GetValue(i,0)==0){
++				m1->SetValue(i,1,m1col->GetValue(i,0));
++				m1->SetValue(i,2,m1col2->GetValue(i,0));
++				if(m1->GetValue(i,1)<=m1->GetValue(i,0)){
++					m1->SetValue(i,1,m1->GetValue(i,0)+1e-10);
++				}
++				if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++					m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++		else {
++			if(nptflag->GetValue(i,0)==0){
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,1))>1){
++					m1->SetValue(i,1,m1->GetValue(i,0));
++				}
++				if(fabs(m1->GetValue(i,0)-m1->GetValue(i,2))>1){
++					m1->SetValue(i,2,m1->GetValue(i,0));
++				}
++			}
++			else{
++				m1->SetValue(i,1,m0->GetValue(i,1));
++				m1->SetValue(i,2,m0->GetValue(i,2));
++			}
++		}
++	}
++
++				/* second layer: water */
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			u=double (rand())/ double(RAND_MAX);
++//			y=signe(u-0.5)*T*(pow(1+1/T,fabs(2*u-1))-1);
++//			m1->SetValue(i,2,m0->GetValue(i,2)+y*ptval);
++//			if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//			}
++//			if(m1->GetValue(i,2)>=m1->GetValue(i,1)+mmax2){
++//				m1->SetValue(i,2,m1->GetValue(i,1)+mmax2);
++//			}
++//		}
++//	}
++//	m1->ExtractColumn(m1col,2);
++//	vec2gridsimple(m1col,m1gr,mx,my);
++//	filtergrav(m1grsm,m1gr,ctr,sd,mx,my);
++//	reshape(m1grsm,m1col,mx,my);
++//	for (int i=0;i<mx*my;i++){
++//		if(bathy->GetValue(i,0)==0){
++//			m1->SetValue(i,2,m1col->GetValue(i,0));
++//		}
++//		else{
++//			m1->SetValue(i,2,m0->GetValue(i,2));
++//		}
++//		if(m1->GetValue(i,2)<=m1->GetValue(i,1)){
++//			m1->SetValue(i,2,m1->GetValue(i,1)+1e-10);
++//		}
++//	}
++	delete m1gr;
++	delete m1grsm;
++	delete m1col;
++	delete m1gr2;
++	delete m1grsm2;
++	delete m1col2;
++	delete nptflag;
++}/*}}}*/
++double signe(double a){/*{{{*/
++	if(a<0){return -1;}
++	else{return 1;}
++}/*}}}*/
++void filtergrav(Matrix* A,Matrix* Ain,double ctr,double sd,int mx,int my){/*{{{*/
++	A->MatrixEqual(Ain);
++	for (int i=1;i<my-1;i++){
++		for(int j=1;j<mx-1;j++){
++			A->SetValue(i,j,(ctr*Ain->GetValue(i,j)+sd*(Ain->GetValue(i-1,j)+Ain->GetValue(i+1,j)+Ain->GetValue(i,j-1)+Ain->GetValue(i,j+1)))/(ctr+4*sd));
++		}
++	}
++}/*}}}*/
++double coolshed(double T0,double k,double c,double D){/*{{{*/
++	double T1=T0*exp(-c*pow(k,1/D));
++	return T1;
++}/*}}}*/
+Index: ../trunk-jpl/src/m/contrib/buzzi/gravity/Makefile
+===================================================================
+--- ../trunk-jpl/src/m/contrib/buzzi/gravity/Makefile	(revision 0)
++++ ../trunk-jpl/src/m/contrib/buzzi/gravity/Makefile	(revision 20176)
+@@ -0,0 +1,11 @@
++all:
++		g++ vfsa_mpi.cpp  \
++			-I$(ISSM_DIR)/externalpackages/gsl/install/include \
++			-L$(ISSM_DIR)/externalpackages/gsl/install/lib -lgsl -lgslcblas \
++		   -I$(ISSM_DIR)/externalpackages/mpich/install/include/ \
++		   -L$(ISSM_DIR)/externalpackages/mpich/install/lib/ -lmpich -lpmpich -lmpl -o forward.exe 
++
++forward:
++	   mpirun -np 4 ./forward.exe
++clean:
++		rm ./forward.exe
+Index: ../trunk-jpl/src/m/contrib/morlighem/gslib/varmap.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/gslib/varmap.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/gslib/varmap.m	(revision 20176)
+@@ -0,0 +1,55 @@
++function output = varmap(x,y,data,varargin)
++%VARMAP - use gslib for Kriging
++%
++%   Usage:
++%      output = varmap(x,y,data,varargin)
++
++options=pairoptions(varargin{:});
++
++nxlag = getfieldvalue(options,'nxlag', 20);
++nylag = getfieldvalue(options,'nylag', 20);
++dxlag = getfieldvalue(options,'dxlag', 1000);
++dylag = getfieldvalue(options,'dylag', 1000);
++
++%Write data file
++fid=fopen('cluster.dat','w');
++fprintf(fid,'%s\n','Data file');
++fprintf(fid,'%i\n',3);
++fprintf(fid,'%s\n','Xlocation');
++fprintf(fid,'%s\n','Ylocation');
++fprintf(fid,'%s\n','Data');
++fprintf(fid,'%g %g %g\n',[x y data]');
++fclose(fid);
++
++%Write parameter file
++fid=fopen('varmap.par','w');
++fprintf(fid,'\t\t\t\t%s\n','Parameters for GAMV');
++fprintf(fid,'\t\t\t\t%s\n','*******************');
++fprintf(fid,'\n');
++fprintf(fid,'%s\n','START OF PARAMETERS:');
++fprintf(fid,'%-30s %s\n','./cluster.dat'              ,'\file with data');
++fprintf(fid,'%-30s %s\n','1 3  '                      ,'\number of variables, column number');
++fprintf(fid,'%-30s %s\n','-1.0e21 1.0e21'             ,'\trimming limits');
++fprintf(fid,'%-30s %s\n','0    '                      ,'\1=regular grid, 0=scattered values');
++fprintf(fid,'%-30s %s\n','50 50 1'                    ,'\if =1: nx, ny, nz');
++fprintf(fid,'%-30s %s\n','1.0 1.0 1.0'                ,'\       xsiz, ysiz, zsiz if igrid=1');
++fprintf(fid,'%-30s %s\n','1 2 0'                      ,'\if =0: columns for x, y and z coordinates');
++fprintf(fid,'%-30s %s\n','varmap.out'                 ,'\file for variogram output');
++fprintf(fid,'%-30s %s\n',num2str([nxlag nylag 0],'%i '),'\nxlag, nylag, nzlag');
++fprintf(fid,'%-30s %s\n',num2str([dxlag dylag 1],'%g %g %i'),'\dxlag, dylag, dzlag');
++fprintf(fid,'%-30s %s\n','5'                          ,'\minimum number of pairs');
++fprintf(fid,'%-30s %s\n','0'                          ,'\standardize sill? (0=no, 1=yes)');
++fprintf(fid,'%-30s %s\n','1'                          ,'\number of variograms');
++fprintf(fid,'%-30s %s\n','1 1 1'                      ,'\tail, head, variogram type');
++fclose(fid);
++
++%Call varmap
++system([issmdir() '/externalpackages/gslib/install/varmap varmap.par']);
++delete('varmap.par');
++
++%Read output
++fid=fopen('varmap.out','r');
++A = textscan(fid,'%f %f %f %f %f %f','headerlines',8);
++fclose(fid);
++delete('varmap.out')
++output = reshape(A{1},[2*nxlag+1 2*nylag+1]);
+Index: ../trunk-jpl/src/m/contrib/morlighem/gslib/gamv.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/gslib/gamv.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/gslib/gamv.m	(revision 20176)
+@@ -0,0 +1,70 @@
++function output = gamv(x,y,data,varargin)
++%GAMV - use gslib for Kriging
++%
++%   Usage:
++%      output = gamv(x,y,data,varargin)
++
++options=pairoptions(varargin{:});
++
++nlag = getfieldvalue(options,'nlag', 20);
++dlag = getfieldvalue(options,'dlag', 1000);
++
++%Write data file
++fid=fopen('cluster.dat','w');
++fprintf(fid,'%s\n','Data file');
++fprintf(fid,'%i\n',3);
++fprintf(fid,'%s\n','Xlocation');
++fprintf(fid,'%s\n','Ylocation');
++fprintf(fid,'%s\n','Data');
++fprintf(fid,'%g %g %g\n',[x y data]');
++fclose(fid);
++
++%Write parameter file
++fid=fopen('gamv.par','w');
++fprintf(fid,'\t\t\t\t%s\n','Parameters for GAMV');
++fprintf(fid,'\t\t\t\t%s\n','*******************');
++fprintf(fid,'\n');
++fprintf(fid,'%s\n','START OF PARAMETERS:');
++fprintf(fid,'%-30s %s\n','./cluster.dat'              ,'\file with data');
++fprintf(fid,'%-30s %s\n','1 2 0'                      ,'\columns for X, Y, Z coordinates');
++fprintf(fid,'%-30s %s\n','1 3  '                      ,'\number of variables, column number');
++fprintf(fid,'%-30s %s\n','-1.0e21 1.0e21'             ,'\trimming limits');
++fprintf(fid,'%-30s %s\n','gamv.out'                   ,'\file for variogram output');
++fprintf(fid,'%-30s %s\n',num2str(nlag,'%i')           ,'\number of lags');
++fprintf(fid,'%-30s %s\n',num2str(dlag,'%g')           ,'\lag separation distance');
++fprintf(fid,'%-30s %s\n',num2str(dlag/2,'%g')         ,'\lag tolerance');
++fprintf(fid,'%-30s %s\n','3'                          ,'\number of directions');
++fprintf(fid,'%-30s %s\n','0.0 90.0 50.0 0.0 90.0 50.0','\azm, atol, bandh, dip, dtol, bandv');
++fprintf(fid,'%-30s %s\n','0.0 22.5 25.0 0.0 22.5 25.0','\azm, atol, bandh, dip, dtol, bandv');
++fprintf(fid,'%-30s %s\n','90. 22.5 25.0 0.0 22.5 25.0','\azm, atol, bandh, dip, dtol, bandv');
++fprintf(fid,'%-30s %s\n','0'                          ,'\standardize sill? (0=no, 1=yes)');
++fprintf(fid,'%-30s %s\n','2'                          ,'\number of variograms');
++fprintf(fid,'%-30s %s\n','1 1 1'                      ,'\tail var., head vars., variogram type');
++fprintf(fid,'%-30s %s\n','1 1 3'                      ,'\tail var., head vars., variogram type');
++fclose(fid);
++
++%Call gamv
++system([issmdir() '/externalpackages/gslib/install/gamv gamv.par']);
++delete('gamv.par');
++
++%Read output
++output   = struct('Semivariogram',[],'Covariance',[]);
++counter1 = 1;
++counter2 = 1;
++fid=fopen('gamv.out','r');
++while (~feof(fid)),
++	A=fscanf(fid,'%s',1);
++	if strcmp(A,'Covariance');
++		A=fscanf(fid,'%s',4); %Read tail:Data head:Data direction  2
++		output(counter1).Covariance=fscanf(fid,'%i %g %g %i %g %g',[6 nlag+2])';
++		counter1=counter1+1;
++	elseif strcmp(A,'Semivariogram'),
++		A=fscanf(fid,'%s',4); %Read tail:Data head:Data direction  2
++		output(counter2).Semivariogram=fscanf(fid,'%i %g %g %i %g %g',[6 nlag+2])';
++		counter2=counter2+1;
++	else
++		%do nothing
++	end
++end
++fclose(fid);
++delete('gamv.out')
+Index: ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 20176)
+@@ -0,0 +1,66 @@
++function [B E]=pkriging(x,y,observations,x_interp,y_interp,varargin)
++%PKRIGING - parallel Kriging
++%
++%   Usage:
++%      [B E]=pkriging(x,y,observations,x_interp,y_interp,varargin);
++
++options=pairoptions(varargin{:});
++cluster=getfieldvalue(options,'cluster',generic('np',1));
++options=removefield(options,'cluster',0);
++name   = ['krig' num2str(feature('GetPid'))];
++
++if 1,
++% =========================================   MARSHALL.m =================================================
++disp(['marshalling file ' name '.bin']);
++fid=fopen([name '.bin'],'wb');
++if fid==-1,
++	error(['marshall error message: could not open ' name '.bin file for binary writing']);
++end
++
++%First, write MaximumNumberOfDefinitionsEnum to make sure that the Enums are synchronized
++WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',true,'format','Boolean');
++
++%Write all data
++WriteData(fid,'enum',0,'data',x,'format','DoubleMat');
++WriteData(fid,'enum',1,'data',y,'format','DoubleMat');
++WriteData(fid,'enum',2,'data',observations,'format','DoubleMat');
++WriteData(fid,'enum',3,'data',x_interp,'format','DoubleMat');
++WriteData(fid,'enum',4,'data',y_interp,'format','DoubleMat');
++
++%Last, write MaximumNumberOfEnum+1 to make sure that the binary file is not corrupt
++WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum()+1,'data',true,'format','Boolean');
++
++%Now, write number of options
++options.marshall(fid,5);
++st=fclose(fid);
++if st==-1,
++	error(['marshall error message: could not close file ' name '.bin']);
++end
++% =========================================   MARSHALL.m =================================================
++
++%Launch job on remote cluster
++BuildKrigingQueueScript(cluster,name,'',1,0,0); %gather, valgrind, gprof
++UploadQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']})
++LaunchQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']},'');
++
++%Call waitonlock
++md=model; md.cluster=cluster; md.settings.waitonlock=Inf; md.private.runtimename=name;md.miscellaneous.name=name;
++waitonlock(md);
++
++%Download
++end
++Download(cluster,name,{[name '.outbin']});
++structure=parseresultsfromdisk([name '.outbin'],0);
++delete([name '.outlog']);
++delete([name '.errlog']);
++delete([name '.outbin']);
++delete([name '.bin']);
++if ~ispc(),
++	delete([name '.tar.gz']);
++end
++
++%Process results
++B=structure.(EnumToString(0));
++B=reshape(B,size(x_interp,2),size(x_interp,1))';
++E=structure.(EnumToString(1));
++E=reshape(E,size(x_interp,2),size(x_interp,1))';
+Index: ../trunk-jpl/src/m/contrib/morlighem/gslib/gslib.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/gslib/gslib.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/gslib/gslib.m	(revision 20176)
+@@ -0,0 +1,107 @@
++function [B E] = gslib(x,y,data,xmin,ymin,nx,ny,deltax,deltay,varargin)
++%GSLIB - use gslib for Kriging
++%
++%   Usage:
++%      output = gslib(x,y,data,varargin)
++
++%process options
++options = pairoptions(varargin{:});
++
++%Variogram
++nugget= getfieldvalue(options,'nugget',10);
++sill  = getfieldvalue(options,'sill',164);
++range = getfieldvalue(options,'range',25763);
++
++%Kriging options
++mindata = getfieldvalue(options,'mindata',1);
++maxdata = getfieldvalue(options,'maxdata',50);
++maxsearchradius = getfieldvalue(options,'searchrange',50000);
++
++%Some intermediaries (Convert to gslib's parameters);
++c = (sill-nugget);
++a = sqrt(3)*range;
++
++%Write data file
++fid=fopen('cluster.dat','w');
++fprintf(fid,'%s\n','Data file');
++fprintf(fid,'%i\n',3);
++fprintf(fid,'%s\n','Xlocation');
++fprintf(fid,'%s\n','Ylocation');
++fprintf(fid,'%s\n','Data');
++fprintf(fid,'%g %g %g\n',[x y data]');
++fclose(fid);
++
++if 0, %GAMV
++	%Write parameter file
++	fid=fopen('gamv.par','w');
++	fprintf(fid,'\t\t\t\t%s\n','Parameters for GAMV');
++	fprintf(fid,'\t\t\t\t%s\n','*******************');
++	fprintf(fid,'\n');
++	fprintf(fid,'%s\n','START OF PARAMETERS:');
++	fprintf(fid,'%-30s %s\n','./cluster.dat'              ,'\file with data');
++	fprintf(fid,'%-30s %s\n','1 2 0'                      ,'\columns for X, Y, Z coordinates');
++	fprintf(fid,'%-30s %s\n','1 3  '                      ,'\number of variables, column number');
++	fprintf(fid,'%-30s %s\n','-1.0e21 1.0e21'             ,'\trimming limits');
++	fprintf(fid,'%-30s %s\n','gamv.out'                   ,'\file for variogram output');
++	fprintf(fid,'%-30s %s\n','20'                         ,'\number of lags');
++	fprintf(fid,'%-30s %s\n','5.0'                        ,'\lag separation distance');
++	fprintf(fid,'%-30s %s\n','3.0'                        ,'\lag tolerance');
++	fprintf(fid,'%-30s %s\n','3'                          ,'\number of directions');
++	fprintf(fid,'%-30s %s\n','0.0 90.0 50.0 0.0 90.0 50.0','\azm, atol, bandh, dip, dtol, bandv');
++	fprintf(fid,'%-30s %s\n','0.0 22.5 25.0 0.0 22.5 25.0','\azm, atol, bandh, dip, dtol, bandv');
++	fprintf(fid,'%-30s %s\n','90. 22.5 25.0 0.0 22.5 25.0','\azm, atol, bandh, dip, dtol, bandv');
++	fprintf(fid,'%-30s %s\n','0'                          ,'\standardize sill? (0=no, 1=yes)');
++	fprintf(fid,'%-30s %s\n','2'                          ,'\number of variograms');
++	fprintf(fid,'%-30s %s\n','1 1 1'                      ,'\tail var., head vars., variogram type');
++	fprintf(fid,'%-30s %s\n','1 1 3'                      ,'\tail var., head vars., variogram type');
++	fclose(fid);
++
++	%Call gamv
++	system([issmdir() '/externalpackages/gslib/install/gamv gamv.par']);
++
++else, %Kriging KB2D
++	%Write parameter file
++	fid=fopen('kb2d.par','w');
++	fprintf(fid,'\t\t\t\t%s\n','Parameters for KB2D');
++	fprintf(fid,'\t\t\t\t%s\n','*******************');
++	fprintf(fid,'\n');
++	fprintf(fid,'%s\n','START OF PARAMETERS:');
++	fprintf(fid,'%-30s %s\n','./cluster.dat'                  ,'\file with data');
++	fprintf(fid,'%-30s %s\n','1 2 3'                          ,'\columns for X, Y and variable');
++	fprintf(fid,'%-30s %s\n','-1.0e21 1.0e21'                 ,'\trimming limits');
++	fprintf(fid,'%-30s %s\n','0'                              ,'\debugging level: 0,1,2,3');
++	fprintf(fid,'%-30s %s\n','kb2d.dbg'                       ,'\file for debuggging output');
++	fprintf(fid,'%-30s %s\n','kb2d.out'                       ,'\file for kriged output');
++	fprintf(fid,'%-30s %s\n',num2str([nx xmin deltax],'%i %10g %6g')  ,'\nx, xmn, xsiz');
++	fprintf(fid,'%-30s %s\n',num2str([ny ymin deltay],'%i %10g %6g')  ,'\nx, xmn, xsiz');
++	fprintf(fid,'%-30s %s\n','1 1'                            ,'\x and y block discretization');
++	fprintf(fid,'%-30s %s\n',num2str([mindata maxdata],'%6g') ,'\min and max data for kriging');
++	fprintf(fid,'%-30s %s\n',num2str(maxsearchradius,'%6g')   ,'\max search radius');
++	fprintf(fid,'%-30s %s\n','1 2.302'                        ,'\0=SK, 1=OK, (mean if SK)');
++	fprintf(fid,'%-30s %s\n',['1 ' num2str(nugget)]           ,'\nst, nugget effect');
++	fprintf(fid,'%-30s %s\n',['3 ' num2str([c 0.0 a a],'%10g')],'\it, c, azm, a_max, a_min');
++	fclose(fid);
++
++	tic;system([issmdir() '/externalpackages/gslib/install/kb2d kb2d.par']);toc;
++	delete('kb2d.par');
++
++	%Read output
++	fid=fopen('kb2d.out','r');
++	while (~feof(fid)),
++		A=fscanf(fid,'%s',1);
++		if strcmp(A,'KB2D');
++			A=fscanf(fid,'%s',1); %Read output
++			params=fscanf(fid,'%i %i %i %i %g %g %g %g %g %g %1',[11 1]);
++		elseif strcmp(A,' Estimate'),
++			continue;
++		elseif strcmp(A,'Estimation'),
++			A=fscanf(fid,'%s',1); %Read Variance
++			A=fscanf(fid,'%g %g',[params(1) params(2)*params(3)]);
++			B=A(1,:); B=reshape(B,[params(3),params(2)])';
++			E=A(2,:); E=reshape(E,[params(3),params(2)])';
++		else
++			%do nothing
++		end
++	end
++	fclose(fid);
++end
+Index: ../trunk-jpl/src/m/contrib/morlighem/dassflow/importgmsh.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/dassflow/importgmsh.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/dassflow/importgmsh.m	(revision 20176)
+@@ -0,0 +1,155 @@
++function md = importgmsh(filename,dim)
++
++%some checks
++if ~exist(filename),
++	error(['expread error message: file ' filename ' not found!']);
++end
++
++%open file
++fid=fopen(filename,'r');
++
++%Get Mesh format
++A=fscanf(fid,'%s',1);
++if ~strcmp(A,'$MeshFormat'), 
++	error(['Expecting $MeshFormat (' A ')']);
++end
++A=fscanf(fid,'%f %i %i',[1 3]);
++A=fscanf(fid,'%s',1);
++if ~strcmp(A,'$EndMeshFormat'), 
++	error(['Expecting $EndMeshFormat (' A ')']);
++end
++
++%Nodes
++A=fscanf(fid,'%s',1);
++if ~strcmp(A,'$Nodes'), 
++	error(['Expecting $Nodes (' A ')']);
++end
++nbv=fscanf(fid,'%i',1);
++disp(['Number of nodes: ' num2str(nbv) ]);
++A=fscanf(fid,'%i %f %f %f',[4 nbv]);
++x = A(2,:)';
++y = A(3,:)';
++z = A(4,:)';
++
++A=fscanf(fid,'%s',1);
++if ~strcmp(A,'$EndNodes'), 
++	error(['Expecting $EndNodes (' A ')']);
++end
++
++%Elements
++A=fscanf(fid,'%s',1);
++if ~strcmp(A,'$Elements'), 
++	error(['Expecting $Elements (' A ')']);
++end
++nbt=fscanf(fid,'%i',1);
++disp(['Number of elements: ' num2str(nbt) ]);
++counter = 0;
++if (dim==2),
++	index   = zeros(0,3);
++	segments       = zeros(0,2);
++	segmentmarkers = zeros(0,1);
++elseif (dim==3),
++	index   = zeros(0,4);
++	segments       = zeros(0,3);
++	segmentmarkers = zeros(0,1);
++else
++	error('not supported');
++end
++
++while(counter<nbt);
++	id = fscanf(fid,'%i',1);
++	ty = fscanf(fid,'%i',1);
++	nbf = fscanf(fid,'%i',1);
++	flags = fscanf(fid,'%i',nbf);
++
++	switch(ty)
++		case 1, %segments
++			A=fscanf(fid,'%i %i',2);
++			if (dim==2),  %Actual element
++				segments(end+1,:)=A;
++				if    (flags(1)==5 & flags(2)==3), segmentmarkers(end+1)=3; 
++				elseif(flags(1)==1 & flags(2)==4), segmentmarkers(end+1)=4;
++				elseif(flags(1)==2 & flags(2)==1), segmentmarkers(end+1)=1;
++				elseif(flags(1)==4 & flags(2)==2), segmentmarkers(end+1)=2;
++				else error(['flags ' num2str(flags') ' not supported']);
++				end
++			else
++				error('not supported');
++			end
++		case 2, %tria
++			A=fscanf(fid,'%i %i %i',3);
++			if (dim==2), %Actual element
++				index(end+1,:)=A;
++			else         %Boundary element
++				segments(end+1,:)=A;
++				if    (flags(1)==1), segmentmarkers(end+1)=1; 
++				elseif(flags(1)==2), segmentmarkers(end+1)=2;
++				elseif(flags(1)==3), segmentmarkers(end+1)=3;
++				elseif(flags(1)==4), segmentmarkers(end+1)=4;
++				else error(['flags ' num2str(flags') ' not supported']);
++				end
++			end
++		case 4, %tetra
++			A=fscanf(fid,'%i %i %i %i',4);
++			if (dim==3), %Actual element
++				index(end+1,:)=A;
++			else
++				error('not supported');
++			end
++		case 15, %point
++			A=fscanf(fid,'%i',1);
++			continue;
++		otherwise,
++			error(['Type ' num2str(ty) ' not supported']);
++	end
++	counter = counter + 1;
++end
++
++%recreate segments
++if dim==2,
++	nbs = size(segments,1);
++	segments = [segments zeros(nbs,1)];
++	for i=1:nbs,
++		E = find(sum(ismember(index,segments(i,:)),2)>1);
++		segments(i,3)=E;
++	end
++else
++	nbs = size(segments,1);
++	segments = [segments zeros(nbs,1)];
++	for i=1:nbs,
++		E = find(sum(ismember(index,segments(i,:)),2)>2);
++		segments(i,4)=E;
++	end
++end
++
++%close file
++fclose(fid);
++
++%Create model
++if dim==2, %2d triangles
++	md=meshconvert(model,index,x,y);
++	md.mesh=mesh2dvertical(md.mesh);
++	md.mesh.segmentmarkers=segmentmarkers;
++	md.mesh.segments=segments;
++	md.mesh.vertexonbase=zeros(md.mesh.numberofvertices,1);
++	md.mesh.vertexonbase(find(vertexflags(md.mesh,1)))=1;
++	md.mesh.vertexonsurface=zeros(md.mesh.numberofvertices,1);
++	md.mesh.vertexonsurface(find(vertexflags(md.mesh,3)))=1;
++else
++	md=model();
++	md.mesh=mesh3dtetras();
++	md.mesh.x = x;
++	md.mesh.y = y;
++	md.mesh.z = z;
++	md.mesh.elements = index;
++	md.mesh.numberofelements=size(md.mesh.elements,1);
++	md.mesh.numberofvertices=length(md.mesh.x);
++
++	%base 2, surface 1, inflow 3, outflow 4
++	md.mesh.vertexonbase=zeros(md.mesh.numberofvertices,1);
++	md.mesh.vertexonbase(segments(find(segmentmarkers==2),1:3))=1;
++	md.mesh.vertexonsurface=zeros(md.mesh.numberofvertices,1);
++	md.mesh.vertexonsurface(segments(find(segmentmarkers==1),1:3))=1;
++	md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1);
++	md.mesh.vertexonboundary(segments(:,1:3))=1;
++end
+Index: ../trunk-jpl/src/m/contrib/morlighem/dassflow/exportgmsh.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/dassflow/exportgmsh.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/dassflow/exportgmsh.m	(revision 20176)
+@@ -0,0 +1,52 @@
++function exportgmsh(mesh,groundedice_levelset,filename),
++%EXPORTGMSH - export mesh to gmsh format
++%
++%   http://www.geuz.org/gmsh/doc/texinfo/#MSH-ASCII-file-format
++%
++%   Usage:
++%      exportgmsh(mesh,groundedice_levelset,filename)
++%
++%   Example:
++%      exportgmsh(md.mesh,md.mask.groundedice_levelset,'temp.msh')
++
++fid=fopen(filename,'w');
++
++%Header
++fprintf(fid,'$MeshFormat\n');
++fprintf(fid,'2.2 0 8\n');
++fprintf(fid,'$EndMeshFormat\n');
++
++%Vertices
++nbv = mesh.numberofvertices;
++fprintf(fid,'$Nodes\n');
++fprintf(fid,'%i\n',nbv);
++fprintf(fid,'%i %8g %8g %8g\n',[[1:nbv]' mesh.x mesh.y zeros(nbv,1)]');
++fprintf(fid,'$EndNodes\n');
++
++%Boundary Elements first
++nbe     = mesh.numberofelements;
++nbs     = size(mesh.segments,1);
++segment = 1;
++tria    = 2;
++
++%Create flags
++grounded = sum(groundedice_levelset(mesh.segments(:,1:2))>0,2);
++A = zeros(nbs,2);
++pos = find(mesh.segmentmarkers==4);
++A(pos,:)=repmat([1,4],[numel(pos) 1]);
++pos = find(mesh.segmentmarkers==1 &  grounded);
++A(pos,:)=repmat([2,1],[numel(pos) 1]);
++pos = find(mesh.segmentmarkers==1 & ~grounded);
++A(pos,:)=repmat([3,5],[numel(pos) 1]);
++pos = find(mesh.segmentmarkers==2);
++A(pos,:)=repmat([4,2],[numel(pos) 1]);
++pos = find(mesh.segmentmarkers==3);
++A(pos,:)=repmat([5,3],[numel(pos) 1]);
++
++fprintf(fid,'$Elements\n');
++fprintf(fid,'%i\n',nbe+nbs);
++fprintf(fid,'%i %i %i %i %i %i %i\n',[[1    :nbs    ]' segment*ones(nbs,1) 2*ones(nbs,1) A mesh.segments(:,1:2)]');
++fprintf(fid,'%i %i %i %i %i %i %i %i\n',[[nbs+1:nbs+nbe]' tria*ones(nbe,1) 2*ones(nbe,1) 7*ones(nbe,1) 6*ones(nbe,1) mesh.elements]');
++fprintf(fid,'$EndElements\n');
++
++fclose(fid);
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.m	(revision 20176)
+@@ -0,0 +1,98 @@
++function md=YamsCall(md,field,hmin,hmax,gradation,epsilon),
++%YAMSCALL - call yams
++%
++%   build a metric using the Hessian of the given field
++%   call Yams and the output mesh is plugged onto the model
++%   -hmin = minimum edge length (m)
++%   -hmax = maximum edge length (m)
++%   -gradation = maximum edge length gradation between 2 elements
++%   -epsilon = average error on each element (m/yr)
++%
++%   Usage:
++%      md=YamsCall(md,field,hmin,hmax,gradation,epsilon);
++%
++%   Example:
++%      md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
++
++%2d geometric parameter (do not change)
++scale=2./9.;
++
++%Compute Hessian
++t1=clock; fprintf('%s','      computing Hessian...');
++hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node');
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%Compute metric
++t1=clock; fprintf('%s','      computing metric...');
++metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,[]);
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%write files
++t1=clock; fprintf('%s','      writing initial mesh files...');
++save -ascii carre0.met  metric
++
++fid=fopen('carre0.mesh','w');
++
++%initialiation
++fprintf(fid,'\n%s\n%i\n','MeshVersionFormatted',1);
++
++%dimension
++fprintf(fid,'\n%s\n%i\n','Dimension',2);
++
++%Vertices
++fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
++fprintf(fid,'%8g %8g %i\n',[md.mesh.x md.mesh.y zeros(md.mesh.numberofvertices,1)]');
++
++%Triangles
++fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
++fprintf(fid,'%i %i %i %i\n',[md.mesh.elements zeros(md.mesh.numberofelements,1)]');
++numberofelements1=md.mesh.numberofelements;
++
++%Deal with rifts
++if ~isnan(md.rifts.riftstruct),
++
++	%we have the list of triangles that make up the rift. keep those triangles around during refinement.
++	triangles=[];
++	for i=1:size(md.rifts.riftstruct,1),
++		triangles=[triangles md.rifts(i).riftstruct.segments(:,3)'];
++	end
++
++	fprintf(fid,'\n\n%s\n%i\n\n','RequiredTriangles',length(triangles));
++	fprintf(fid,'%i\n',triangles);
++end
++
++%close
++fclose(fid);
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%call yams
++fprintf('%s\n','      call Yams...');
++if ispc()
++	%windows
++	system(['yams2-win -O 1 -v -0 -ecp -hgrad ' num2str(gradation)  ' carre0 carre1']);
++elseif ismac()
++	%Macosx
++	system(['yams2-osx -O 1 -v -0 -ecp -hgrad ' num2str(gradation)  ' carre0 carre1']);
++else
++	%Linux
++	system(['yams2-linux -O 1 -v -0 -ecp -hgrad ' num2str(gradation)  ' carre0 carre1']);
++end
++
++%plug new mesh
++t1=clock; fprintf('\n%s','      reading final mesh files...');
++Tria=load('carre1.tria');
++Coor=load('carre1.coor');
++md.mesh.x=Coor(:,1);
++md.mesh.y=Coor(:,2);
++md.mesh.elements=Tria;
++md.mesh.numberofvertices=size(Coor,1);
++md.mesh.numberofelements=size(Tria,1);
++numberofelements2=md.mesh.numberofelements;
++t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%display number of elements
++fprintf('\n%s %i','      inital number of elements:',numberofelements1);
++fprintf('\n%s %i\n\n','      new    number of elements:',numberofelements2);
++
++%clean up:
++system('rm carre0.mesh carre0.met carre1.tria carre1.coor carre1.meshb');
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh3d.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh3d.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh3d.m	(revision 20176)
+@@ -0,0 +1,103 @@
++function md=gmsh3d(md,domainfile,h),
++
++%Read domain
++domain=expread(domainfile);
++x   = domain.x(1:end-1);
++y   = domain.y(1:end-1);
++nbv = numel(x);
++
++%write files
++t1=clock; fprintf('%s','      writing initial mesh files...');
++fid=fopen('model.geo','w');
++fprintf(fid,['// Gmsh input file, created by ISSM on ' date '\n']);
++
++%Lower points
++for i=1:nbv,
++	fprintf(fid,'Point(%i) = {%8g, %8g, %8g};\n',i,x(i),y(i),0.);
++end
++%Upper points
++for i=1:nbv,
++	fprintf(fid,'Point(%i) = {%8g, %8g, %8g};\n',nbv+i,x(i),y(i),1.);
++end
++
++%Lower lines
++for i=1:nbv-1
++	fprintf(fid,'Line(%i) = {%i, %i};\n',i,i,i+1);
++end
++fprintf(fid,'Line(%i) = {%i, %i};\n',nbv,nbv,1);
++%Upper lines
++for i=nbv+1:2*nbv-1
++	fprintf(fid,'Line(%i) = {%i, %i};\n',i,i,i+1);
++end
++fprintf(fid,'Line(%i) = {%i, %i};\n',2*nbv,2*nbv,nbv+1);
++%Side lines
++for i=1:nbv
++	fprintf(fid,'Line(%i) = {%i, %i};\n',2*nbv+i,i,nbv+i);
++end
++
++counter = 3*nbv;
++ps = zeros(nbv+2,1);
++%Lower surface Loop and surface
++counter = counter+1;
++fprintf(fid,['Line Loop(' num2str(counter) ') = {']);
++for i=1:nbv-1
++	fprintf(fid,'%i,',i);
++end
++fprintf(fid,'%i};\n',nbv);
++fprintf(fid,['Plane Surface(' num2str(counter+1) ') = {' num2str(counter) '};\n']);
++ps(1)=counter+1;
++counter = counter+1;
++%Upper surface Loop and surface
++counter = counter+1;
++fprintf(fid,['Line Loop(' num2str(counter) ') = {']);
++for i=nbv+1:2*nbv-1
++	fprintf(fid,'%i,',i);
++end
++fprintf(fid,'%i};\n',2*nbv);
++ps(2)=counter+1;
++fprintf(fid,['Plane Surface(' num2str(counter+1) ') = {' num2str(counter) '};\n']);
++counter = counter+2;
++%Sides surfaces
++for i=1:nbv-1,
++	fprintf(fid,['Line Loop(' num2str(counter) ') = {' num2str(i) ',' num2str(2*nbv+i+1) ',-' num2str(nbv+i) ',-' num2str(2*nbv+i) '};\n']);
++	fprintf(fid,['Plane Surface(' num2str(counter+1) ') = {' num2str(counter) '};\n']);
++	ps(2+i)=counter+1;
++	counter=counter+2;
++end
++fprintf(fid,['Line Loop(' num2str(counter) ') = {' num2str(nbv) ',' num2str(2*nbv+1) ',-' num2str(2*nbv) ',-' num2str(3*nbv) '};\n']);
++fprintf(fid,['Plane Surface(' num2str(counter+1) ') = {' num2str(counter) '};\n']);
++ps(2+nbv)=counter+1;
++counter=counter+2;
++
++%Physical surfaces
++counter = counter+1;
++fprintf(fid,['Surface Loop(' num2str(counter) ') = {']);
++for i=1:numel(ps)-1
++	fprintf(fid,'%i,',ps(i));
++end
++fprintf(fid,'%i};\n',ps(end));
++fprintf(fid,['Physical Surface(1) = {' num2str(ps(2)) '};\n']);
++fprintf(fid,['Physical Surface(2) = {' num2str(ps(1)) '};\n']);
++fprintf(fid,['Physical Surface(3) = {']);
++for i=3:numel(ps)-1
++	fprintf(fid,'%i,',ps(i));
++end
++fprintf(fid,'%i};\n',ps(end));
++
++%Volume
++fprintf(fid,['Volume(1) = {' num2str(counter) '};\n']);
++fprintf(fid,['Physical Volume(2) = {1};\n']);
++
++%resolution
++fprintf(fid,'Mesh.CharacteristicLengthMax = %g;',h);
++fclose(fid);
++
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%call gmsh
++fprintf('%s\n','      call gmsh...');
++system([issmdir() '/externalpackages/gmsh/install/gmsh -3 -v 0 model.geo']);
++
++%plug new mesh
++t1=clock; fprintf('\n%s','      reading final mesh files...');
++md=importgmsh('model.msh',3);
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/meshread.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/meshread.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/meshread.m	(revision 20176)
+@@ -0,0 +1,41 @@
++function Struct=meshread(filename)
++
++%some checks
++if ~exist(filename),
++	error(['meshread error message: file ' filename ' not found!']);
++end
++
++fid=fopen(filename,'r');
++
++while (~feof(fid)),
++
++	A=fscanf(fid,'%s',1);
++
++	if strcmp(A,'MeshVersionFormatted');
++		Struct.Version=fscanf(fid,'%s',1);
++
++	elseif strcmp(A,'Dimension'),
++		Struct.Dimension=fscanf(fid,'%i',1);
++
++	elseif strcmp(A,'Vertices'),
++		Struct.nods=fscanf(fid,'%i',1);
++		A=fscanf(fid,'%f %f %f',[3 Struct.nods]);
++		Struct.x=A(1,:)';
++		Struct.y=A(2,:)';
++
++	elseif strcmp(A,'Triangles'),
++		Struct.nels=fscanf(fid,'%i',1);
++		A=fscanf(fid,'%i %i %i',[4 Struct.nels]);
++		Struct.index=A(1:3,:)';
++
++	elseif strcmp(A,'Quadrilaterals'),
++		Struct.nels=fscanf(fid,'%i',1);
++		A=fscanf(fid,'%i %i %i %i',[5 Struct.nels]);
++		Struct.index=A(1:4,:)';
++	else
++		%do nothing
++
++	end
++end
++
++fclose(fid);
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/yams.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/yams.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/yams.m	(revision 20176)
+@@ -0,0 +1,153 @@
++function md=yams(md,varargin)
++%MESHYAMS - Build model of Antarctica by refining according to observed velocity error estimator
++%
++%   Usage:
++%      md=yams(md,varargin);
++%      where varargin is a lit of paired arguments. 
++%      arguments can be: 'domainoutline': Argus file containing the outline of the domain to be meshed
++%      arguments can be: 'velocities': matlab file containing the velocities [m/yr]
++%      optional arguments: 'groundeddomain': Argus file containing the outline of the grounded ice
++%                          this option is used to minimize the metric on water (no refinement)
++%      optional arguments: 'resolution': initial mesh resolution [m]
++%      optional arguments: 'nsteps': number of steps of mesh adaptation
++%      optional arguments: 'epsilon': average interpolation error wished [m/yr]
++%      optional arguments: 'hmin': minimum edge length
++%      optional arguments: 'hmanx': maximum edge
++%      optional arguments: 'riftoutline': if rifts are present, specifies rift outline file.
++%      
++%
++%   Examples:
++%      md=yams(md,'domainoutline','Domain.exp','velocities','vel.mat');
++%      md=yams(md,'domainoutline','Domain.exp','velocities','vel.mat','groundeddomain','ground.exp');
++%      md=yams(md,'domainoutline','Domain.exp','velocities','vel.mat','groundeddomain','ground.exp','nsteps',6,'epsilon',2,'hmin',500,'hmax',30000);
++
++%recover options
++options=pairoptions(varargin{:});
++options=deleteduplicates(options,1);
++
++%recover some fields
++disp('MeshYams Options:')
++domainoutline=getfieldvalue(options,'domainoutline');
++disp(sprintf('   %-15s: ''%s''','DomainOutline',domainoutline));
++riftoutline=getfieldvalue(options,'riftoutline','N/A');
++disp(sprintf('   %-15s: ''%s''','riftoutline',riftoutline));
++groundeddomain=getfieldvalue(options,'groundeddomain','N/A');
++disp(sprintf('   %-15s: ''%s''','GroundedDomain',groundeddomain));
++velocities=getfieldvalue(options,'velocities');
++disp(sprintf('   %-15s: ''%s''','Velocities',velocities));
++resolution=getfieldvalue(options,'resolution',5000);
++disp(sprintf('   %-15s: %f','Resolution',resolution));
++nsteps=getfieldvalue(options,'nsteps',6);
++disp(sprintf('   %-15s: %i','nsteps',nsteps));
++gradation=getfieldvalue(options,'gradation',2*ones(nsteps,1));
++disp(sprintf('   %-15s: %g','gradation',gradation(1)));
++epsilon=getfieldvalue(options,'epsilon',3);
++disp(sprintf('   %-15s: %f','epsilon',epsilon));
++hmin=getfieldvalue(options,'hmin',500);
++disp(sprintf('   %-15s: %f','hmin',hmin));
++hmax=getfieldvalue(options,'hmax',150*10^3);
++disp(sprintf('   %-15s: %f\n','hmax',hmax));
++
++%mesh with initial resolution
++disp('Initial mesh generation...');
++if strcmpi(riftoutline,'N/A');
++	md=setmesh(md,domainoutline,resolution);
++else
++	md=setmesh(md,domainoutline,riftoutline,resolution);
++	md=meshprocessrifts(md,domainoutline);
++end
++disp(['Initial mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
++
++%load velocities 
++disp('loading velocities...');
++Names=VelFindVarNames(velocities);
++Vel=load(velocities);
++
++%start mesh adaptation
++for i=1:nsteps,
++	disp(['Iteration #' num2str(i) '/' num2str(nsteps)]);
++
++	%interpolate velocities onto mesh
++	disp('   interpolating velocities...');
++	if strcmpi(Names.interp,'node'),
++		vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.mesh.x,md.mesh.y,0);
++		vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.mesh.x,md.mesh.y,0);
++	else
++		vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.mesh.x,md.mesh.y,0);
++		vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.mesh.x,md.mesh.y,0);
++	end
++	field=sqrt(vx_obs.^2+vy_obs.^2);
++
++	%adapt according to velocities
++	disp('   adapting...');
++	md=YamsCall(md,field,hmin,hmax,gradation(i),epsilon);
++
++	%if we have rifts, we just messed them up, we need to recreate the segments that constitute those 
++	%rifts, because the segments are used in YamsCall to freeze the rifts elements during refinement.
++	if md.rifts.numrifts, 
++		md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++		md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++		md.mesh.segments=findsegments(md);
++		md=yamsrecreateriftsegments(md);
++	end
++
++end
++
++disp(['Final mesh, number of elements: ' num2str(md.mesh.numberofelements)]);
++
++%Now, build the connectivity tables for this mesh.
++md.mesh.vertexconnectivity=NodeConnectivity(md.mesh.elements,md.mesh.numberofvertices);
++md.mesh.elementconnectivity=ElementConnectivity(md.mesh.elements,md.mesh.vertexconnectivity);
++
++%recreate segments
++md.mesh.segments=findsegments(md);
++md.mesh.vertexonboundary=zeros(md.mesh.numberofvertices,1); md.mesh.vertexonboundary(md.mesh.segments(:,1:2))=1;
++
++%Fill in rest of fields:
++md.mesh.z=zeros(md.mesh.numberofvertices,1);
++md.mesh.vertexonbase=ones(md.mesh.numberofvertices,1);
++md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
++if strcmpi(Names.interp,'node'),
++	md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.mesh.x,md.mesh.y,0);
++	md.inversion.vy_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.mesh.x,md.mesh.y,0);
++else
++	md.inversion.vx_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.mesh.x,md.mesh.y,0);
++	md.inversion.vy_obs=InterpFromMeshToMesh2d(Vel.(Names.indexname),Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vyname),md.mesh.x,md.mesh.y,0);
++end
++md.inversion.vel_obs=sqrt(md.inversion.vx_obs.^2+md.inversion.vy_obs.^2);
++
++%deal with rifts 
++if md.rifts.numrifts,
++	%first, recreate rift segments
++	md=meshyamsrecreateriftsegments(md);
++
++	%using the segments, recreate the penaltypairs
++	for j=1:md.rifts.numrifts,
++		rift=md.rifts.riftstruct(j);
++
++		%build normals and lengths of segments:
++		lengths=sqrt((md.mesh.x(rift.segments(:,1))-md.mesh.x(rift.segments(:,2))).^2 + (md.mesh.y(rift.segments(:,1))-md.mesh.y(rift.segments(:,2))).^2 );
++		normalsx=cos(atan2((md.mesh.x(rift.segments(:,1))-md.mesh.x(rift.segments(:,2))) , (md.mesh.y(rift.segments(:,2))-md.mesh.y(rift.segments(:,1)))));
++		normalsy=sin(atan2((md.mesh.x(rift.segments(:,1))-md.mesh.x(rift.segments(:,2))) , (md.mesh.y(rift.segments(:,2))-md.mesh.y(rift.segments(:,1)))));
++
++		%ok, build penaltypairs: 
++		numpenaltypairs=length(rift.segments)/2-1;
++		rift.penaltypairs=zeros(numpenaltypairs,7);
++
++		for i=1:numpenaltypairs,
++			rift.penaltypairs(i,1)=rift.segments(i,2);
++			rift.penaltypairs(i,2)=rift.segments(end-i,2);
++			rift.penaltypairs(i,3)=rift.segments(i,3);
++			rift.penaltypairs(i,4)=rift.segments(end-i,3);
++			rift.penaltypairs(i,5)=normalsx(i)+normalsx(i+1);
++			rift.penaltypairs(i,6)=normalsy(i)+normalsy(i+1);
++			rift.penaltypairs(i,7)=(lengths(i)+lengths(i+1))/2;
++		end
++		%renormalize norms: 
++		norms=sqrt(rift.penaltypairs(:,5).^2+rift.penaltypairs(:,6).^2);
++		rift.penaltypairs(:,5)=rift.penaltypairs(:,5)./norms;
++		rift.penaltypairs(:,6)=rift.penaltypairs(:,6)./norms;
++
++		md.rifts.riftstruct(j)=rift;
++	end
++end
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCallFromMetric.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCallFromMetric.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCallFromMetric.m	(revision 20176)
+@@ -0,0 +1,65 @@
++function md=BamgCallFromMetric(md,metric,gradation),
++%BAMGCALL - call bam
++%
++%   call Bamg and the output mesh is plugged onto the model
++%   -gradation = maximum edge length gradation between 2 elements
++%
++%   Usage:
++%      md=BamgCallFromMetric(md,metric,gradation);
++%
++%   Example:
++%      md=BamgCall(md,metric,1500,10^8,1.3,0.9);
++
++%2d geometric parameter (do not change)
++scale=2/9; 
++
++%write files
++t1=clock; fprintf('%s','      writing initial mesh files...');
++fid=fopen('carre0.met','w');
++fprintf(fid,'%i %i\n',md.mesh.numberofvertices,3);
++fprintf(fid,'%i %i %i\n',metric');
++fclose(fid);
++
++fid=fopen('carre0.mesh','w');
++
++%initialiation
++fprintf(fid,'%s %i\n','MeshVersionFormatted',0);
++
++%dimension
++fprintf(fid,'\n%s\n%i\n','Dimension',2);
++
++%Vertices
++fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
++fprintf(fid,'%8g %8g %i\n',[md.mesh.x md.mesh.y ones(md.mesh.numberofvertices,1)]');
++
++%Triangles
++fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
++fprintf(fid,'%i %i %i %i\n',[md.mesh.elements ones(md.mesh.numberofelements,1)]');
++numberofelements1=md.mesh.numberofelements;
++
++%close
++fclose(fid);
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%call bamg
++fprintf('%s\n','      call Bamg...');
++system(['bamg -ratio ' num2str(gradation) ' -splitpbedge -nbv 1000000 -M carre0.met -b carre0.mesh -o carre1.mesh']);
++
++%plug new mesh
++t1=clock; fprintf('\n%s','      reading final mesh files...');
++A=meshread('carre1.mesh');
++md.mesh.x=A.x;
++md.mesh.y=A.y;
++md.z=zeros(A.nods,1);
++md.mesh.elements=A.index;
++md.mesh.numberofvertices=A.nods;
++md.mesh.numberofelements=A.nels;
++numberofelements2=md.mesh.numberofelements;
++t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%display number of elements
++fprintf('\n%s %i','      inital number of elements:',numberofelements1);
++fprintf('\n%s %i\n\n','      new    number of elements:',numberofelements2);
++
++%clean up:
++system('rm carre0.mesh carre0.met carre1.mesh carre1.mesh.gmsh');
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/gmsh.m	(revision 20176)
+@@ -0,0 +1,48 @@
++function md=gmsh(md,domainfile,h),
++
++%Read domain
++domain=expread(domainfile);
++x   = domain.x(1:end-1);
++y   = domain.y(1:end-1);
++nbv = numel(x);
++
++%write files
++t1=clock; fprintf('%s','      writing initial mesh files...');
++fid=fopen('model.geo','w');
++fprintf(fid,['// Gmsh input file, created by ISSM on ' date '\n']);
++for i=1:nbv,
++	fprintf(fid,'Point(%i) = {%8g, %8g, %8g};\n',i,x(i),y(i),0.);
++end
++for i=1:nbv-1
++	fprintf(fid,'Line(%i) = {%i, %i};\n',i,i,i+1);
++end
++fprintf(fid,'Line(%i) = {%i, %i};\n',nbv,nbv,1);
++fprintf(fid,'Line Loop(5) = {');
++for i=1:nbv-1
++	fprintf(fid,'%i,',i);
++end
++fprintf(fid,'%i};\n',nbv);
++fprintf(fid,'Plane Surface(6) = {5};\n');
++
++%Physical lines and surfaces
++fprintf(fid,'Physical Line(2) = {1};\n');
++fprintf(fid,'Physical Line(4) = {2};\n');
++fprintf(fid,'Physical Line(5) = {3};\n');
++fprintf(fid,'Physical Line(1) = {4};\n');
++fprintf(fid,'Physical Surface(7) = {6};\n');
++
++%resolution
++fprintf(fid,'Mesh.CharacteristicLengthMax = %g;',h);
++
++%fprintf(fid,'Plane Surface(7) = {6, 2};\n');
++fclose(fid);
++
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%call gmsh
++fprintf('%s\n','      call gmsh...');
++system([issmdir() '/externalpackages/gmsh/install/gmsh -2 model.geo']);
++
++%plug new mesh
++t1=clock; fprintf('\n%s','      reading final mesh files...');
++md=importgmsh('model.msh',2);
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/YamsCall.py	(revision 20176)
+@@ -0,0 +1,123 @@
++import numpy
++import time
++import subprocess
++import os
++from ComputeHessian import ComputeHessian
++from ComputeMetric import ComputeMetric
++
++def YamsCall(md,field,hmin,hmax,gradation,epsilon):
++	"""
++	YAMSCALL - call yams
++
++	   build a metric using the Hessian of the given field
++	   call Yams and the output mesh is plugged onto the model
++	   -hmin = minimum edge length (m)
++	   -hmax = maximum edge length (m)
++	   -gradation = maximum edge length gradation between 2 elements
++	   -epsilon = average error on each element (m/yr)
++
++	   Usage:
++	      md=YamsCall(md,field,hmin,hmax,gradation,epsilon);
++
++	   Example:
++	      md=YamsCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
++	"""
++
++	#2d geometric parameter (do not change)
++	scale=2./9.
++
++	#Compute Hessian
++	t1=time.time()
++	print "%s" % '      computing Hessian...'
++	hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node')
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#Compute metric
++	t1=time.time()
++	print "%s" % '      computing metric...'
++	metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,numpy.empty(0,int))
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#write files
++	t1=time.time()
++	print "%s" % '      writing initial mesh files...'
++	numpy.savetxt('carre0.met',metric)
++
++	f=open('carre0.mesh','w')
++
++	#initialiation
++	f.write("\n%s\n%i\n" % ('MeshVersionFormatted',1))
++
++	#dimension
++	f.write("\n%s\n%i\n" % ('Dimension',2))
++
++	#Vertices
++	f.write("\n%s\n%i\n\n" % ('Vertices',md.mesh.numberofvertices))
++	for i in xrange(0,md.mesh.numberofvertices):
++		f.write("%8g %8g %i\n" % (md.mesh.x[i],md.mesh.y[i],0))
++
++	#Triangles
++	f.write("\n\n%s\n%i\n\n" % ('Triangles',md.mesh.numberofelements))
++	for i in xrange(0,md.mesh.numberofelements):
++		f.write("%i %i %i %i\n" % (md.mesh.elements[i,0],md.mesh.elements[i,1],md.mesh.elements[i,2],0))
++	numberofelements1=md.mesh.numberofelements
++
++	#Deal with rifts
++	if numpy.any(not numpy.isnan(md.rifts.riftstruct)):
++
++		#we have the list of triangles that make up the rift. keep those triangles around during refinement.
++		triangles=numpy.empty(0,int)
++		for riftstruct in md.rifts.riftstruct:
++			triangles=numpy.concatenate((triangles,riftstruct.segments[:,2]))
++
++		f.write("\n\n%s\n%i\n\n" % ('RequiredTriangles',numpy.size(triangles)))
++		for triangle in triangles:
++			f.write("%i\n" % triangle)
++
++	#close
++	f.close()
++	t2=time.time()
++	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
++
++	#call yams
++	print "%s\n" % '      call Yams...'
++	if   m.ispc():
++		#windows
++		subprocess.call('yams2-win -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	elif ismac():
++		#Macosx
++		subprocess.call('yams2-osx -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++	else:
++		#Linux
++		subprocess.call('yams2-linux -O 1 -v -0 -ecp -hgrad %g carre0 carre1' % gradation,shell=True)
++
++	#plug new mesh
++	t1=time.time()
++	print "\n%s" % '      reading final mesh files...'
++	Tria=numpy.loadtxt('carre1.tria',int)
++	Coor=numpy.loadtxt('carre1.coor',float)
++	md.mesh.x=Coor[:,0]
++	md.mesh.y=Coor[:,1]
++	md.mesh.z=numpy.zeros((numpy.size(Coor,axis=0),1))
++	md.mesh.elements=Tria
++	md.mesh.numberofvertices=numpy.size(Coor,axis=0)
++	md.mesh.numberofelements=numpy.size(Tria,axis=0)
++	numberofelements2=md.mesh.numberofelements
++	t2=time.time()
++	print "%s%d%s\n\n" % (' done (',t2-t1,' seconds)')
++
++	#display number of elements
++	print "\n%s %i" % ('      inital number of elements:',numberofelements1)
++	print "\n%s %i\n\n" % ('      new    number of elements:',numberofelements2)
++
++	#clean up:
++	os.remove('carre0.mesh')
++	os.remove('carre0.met')
++	os.remove('carre1.tria')
++	os.remove('carre1.coor')
++	os.remove('carre1.meshb')
++
++	return md
++
+Index: ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCall.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCall.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/bamg/BamgCall.m	(revision 20176)
+@@ -0,0 +1,79 @@
++function md=BamgCall(md,field,hmin,hmax,gradation,epsilon),
++%BAMGCALL - call bam
++%
++%   build a metric using the Hessian of the given field
++%   call Bamg and the output mesh is plugged onto the model
++%   -hmin = minimum edge length (m)
++%   -hmax = maximum edge length (m)
++%   -gradation = maximum edge length gradation between 2 elements
++%   -epsilon = average error on each element (m/yr)
++%
++%   Usage:
++%      md=BamgCall(md,field,hmin,hmax,gradation,epsilon);
++%
++%   Example:
++%      md=BamgCall(md,md.inversion.vel_obs,1500,10^8,1.3,0.9);
++
++%2d geometric parameter (do not change)
++scale=2/9; 
++
++%Compute Hessian
++t1=clock; fprintf('%s','      computing Hessian...');
++hessian=ComputeHessian(md.mesh.elements,md.mesh.x,md.mesh.y,field,'node');
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%Compute metric
++t1=clock; fprintf('%s','      computing metric...');
++metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,[]);
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%write files
++t1=clock; fprintf('%s','      writing initial mesh files...');
++fid=fopen('carre0.met','w');
++fprintf(fid,'%i %i\n',md.mesh.numberofvertices,3);
++fprintf(fid,'%i %i %i\n',metric');
++fclose(fid);
++
++fid=fopen('carre0.mesh','w');
++
++%initialiation
++fprintf(fid,'%s %i\n','MeshVersionFormatted',0);
++
++%dimension
++fprintf(fid,'\n%s\n%i\n','Dimension',2);
++
++%Vertices
++fprintf(fid,'\n%s\n%i\n\n','Vertices',md.mesh.numberofvertices);
++fprintf(fid,'%8g %8g %i\n',[md.mesh.x md.mesh.y ones(md.mesh.numberofvertices,1)]');
++
++%Triangles
++fprintf(fid,'\n\n%s\n%i\n\n','Triangles',md.mesh.numberofelements);
++fprintf(fid,'%i %i %i %i\n',[md.mesh.elements ones(md.mesh.numberofelements,1)]');
++numberofelements1=md.mesh.numberofelements;
++
++%close
++fclose(fid);
++t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%call bamg
++fprintf('%s\n','      call Bamg...');
++system(['bamg -ratio ' num2str(gradation) ' -splitpbedge -nbv 1000000 -M carre0.met -b carre0.mesh -o carre1.mesh']);
++
++%plug new mesh
++t1=clock; fprintf('\n%s','      reading final mesh files...');
++A=meshread('carre1.mesh');
++md.mesh.x=A.x;
++md.mesh.y=A.y;
++md.z=zeros(A.nods,1);
++md.mesh.elements=A.index;
++md.mesh.numberofvertices=A.nods;
++md.mesh.numberofelements=A.nels;
++numberofelements2=md.mesh.numberofelements;
++t2=clock;fprintf('%s\n\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
++
++%display number of elements
++fprintf('\n%s %i','      inital number of elements:',numberofelements1);
++fprintf('\n%s %i\n\n','      new    number of elements:',numberofelements2);
++
++%clean up:
++system('rm carre0.mesh carre0.met carre1.mesh carre1.mesh.gmsh');
+Index: ../trunk-jpl/src/m/contrib/morlighem/sia.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/sia.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/sia.m	(revision 20176)
+@@ -0,0 +1,26 @@
++function [velx,vely,vel]=sia(md)
++%SIA - computation of Shallow Ice velocities
++%
++%   This routine uses the model of SIA to compute the velocities
++%   of a 2d model using the surface slope
++%
++%   Usage:
++%      [velx,vely,vel]=sia(md)
++
++if md.mesh.dimension~=2,
++	error('Only 2d meshes are allowed to compute velocity balances');
++end
++
++%Get slope
++[sx,sy,s]=slope(md);
++
++%Average thickness and B over all elements.
++summer=[1;1;1];
++hel=md.geometry.thickness(md.mesh.elements)*summer/3;
++Bel=md.materials.rheology_B(md.mesh.elements)*summer/3;
++
++Ael=Bel.^(-3);
++
++velx=-2*(md.materials.rho_ice*md.constants.g)^3*s.^2.*sx.*Ael/4.*hel.^4;
++vely=-2*(md.materials.rho_ice*md.constants.g)^3*s.^2.*sy.*Ael/4.*hel.^4;
++vel=sqrt(velx.^2+vely.^2);
+Index: ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflux.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflux.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflux.m	(revision 20176)
+@@ -0,0 +1,48 @@
++function flux=outflux(md,varargin)
++%OUTFLUX - flag nodes on outflux boundary
++%
++%   Usage:
++%      flag=outflow(md);
++%      flag=outflow(md,step);
++
++A=md.mesh.segments(:,1);
++B=md.mesh.segments(:,2);
++
++lx=-(md.mesh.y(A)-md.mesh.y(B));
++ly=  md.mesh.x(A)-md.mesh.x(B);
++L=sqrt(lx.^2+ly.^2);
++Nx=lx./L;
++Ny=ly./L;
++
++if nargin==1,
++	if dimension(md.mesh)==3,
++		vxa=DepthAverage(md,md.initialization.vx);
++		vya=DepthAverage(md,md.initialization.vy);
++	else
++		vxa=md.initialization.vx;
++		vya=md.initialization.vy;
++	end
++	Vx=(vxa(A)+vxa(B))/2;
++	Vy=(vya(A)+vya(B))/2;
++	H=(md.geometry.thickness(A)+md.geometry.thickness(B))/2;
++else
++	step=varargin{1};
++	if dimension(md.mesh)==3,
++		vxa=DepthAverage(md,md.results.TransientSolution(step).Vx);
++		vya=DepthAverage(md,md.results.TransientSolution(step).Vy);
++	else
++		vxa=md.results.TransientSolution(step).Vx;
++		vya=md.results.TransientSolution(step).Vy;
++	end
++	Vx=(vxa(A)+vxa(B))/2;
++	Vy=(vya(A)+vya(B))/2;
++	H=(md.results.TransientSolution(step).Thickness(A)+md.results.TransientSolution(step).Thickness(B))/2;
++end
++
++%dot product
++HVdotN=H.*(Vx.*Nx+Vy.*Ny).*L;
++
++%plot_scatter(md.mesh.x(A),md.mesh.y(A),md.materials.rho_ice*HVdotN,'MarkerSize',4);
++flux=md.materials.rho_ice*sum(HVdotN)/10^12;
++
++disp(['Out flux is ' num2str(flux) ' Gt/yr'])
+Index: ../trunk-jpl/src/m/contrib/morlighem/massbalance/divergence.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/massbalance/divergence.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/massbalance/divergence.m	(revision 20176)
+@@ -0,0 +1,27 @@
++function div=divergence(md,a,b)
++%DIVERGENCE - divergence of [a;b] vector, using model's triangulation.
++%
++%   Usage:
++%      div=divergence(md,a,b)
++
++if (dimension(md.mesh)==2),
++	numberofelements=md.mesh.numberofelements;
++	numberofnodes=md.mesh.numberofvertices;
++	index=md.mesh.elements;
++	x=md.mesh.x; y=md.mesh.y; z=md.mesh.z;
++else
++	numberofelements=md.mesh.numberofelements2d;
++	numberofnodes=md.mesh.numberofvertices2d;
++	index=md.mesh.elements2d;
++	x=md.mesh.x2d; y=md.mesh.y2d;
++end
++
++%compute nodal functions coefficients N(x,y)=alpha x + beta y + gamma
++[alpha beta]=GetNodalFunctionsCoeff(index,x,y);
++
++summation=[1;1;1];
++dx=(a(index).*alpha)*summation;
++dy=(b(index).*beta)*summation;
++
++div=dx+dy;
++div=averaging(md,div,1);
+Index: ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflow.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflow.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/massbalance/outflow.m	(revision 20176)
+@@ -0,0 +1,18 @@
++function flag=outflow(md)
++%OUTFLOW - flag nodes on outflux boundary
++%
++%   Usage:
++%      flag=outflow(md);
++
++A=md.mesh.segments(:,1);
++B=md.mesh.segments(:,2);
++Nx=-(md.mesh.y(A)-md.mesh.y(B));
++Ny=  md.mesh.x(A)-md.mesh.x(B);
++Vx=(md.initialization.vx(A)+md.initialization.vx(B))/2;
++Vy=(md.initialization.vy(A)+md.initialization.vy(B))/2;
++
++%dot product
++VdotN=Vx.*Nx+Vy.*Ny;
++
++flag=zeros(md.mesh.numberofvertices,1);
++flag(A(find(VdotN>0)))=1;
+Index: ../trunk-jpl/src/m/contrib/morlighem/massbalance/contourmassbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/massbalance/contourmassbalance.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/massbalance/contourmassbalance.m	(revision 20176)
+@@ -0,0 +1,45 @@
++function dhdt=contourmassbalance(md,file)
++%CONTOURMASSBALANCE - compute the mass balance on a contour
++%
++%   Usage:
++%      dhdt=contourmassbalance(md,file)
++
++%some checks
++if nargin~=2,
++	help contourmassbalance
++	error('contourmassbalance error message: bad usage');
++end
++if ((length(md.initialization.vx)~=md.mesh.numberofvertices)|(length(md.initialization.vy)~=md.mesh.numberofvertices))
++	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.mesh.numberofvertices)])
++end
++if ~exist(file),
++	error(['thicknessevolution error message: file ' file ' not found']);
++end
++
++%Get segments enveloping contour
++segments=contourenvelope(md.mesh,file);
++%md.stressbalance.icefront=segments; plotmodel(md,'data','pressureload','expdisp',file);
++
++%get flag list of elements and nodes inside the contour
++nodein=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,file,'node',1);
++elemin=(sum(nodein(md.mesh.elements),2)==size(md.mesh.elements,2));
++
++%conputing Mass flux
++x=md.mesh.x;
++y=md.mesh.y;
++vx=mean(md.initialization.vx(segments(:,1:end-1)),2);
++vy=mean(md.initialization.vy(segments(:,1:end-1)),2);
++H=mean(md.geometry.thickness(segments(:,1:end-1)),2);
++nx=cos(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1)))));
++ny=sin(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1)))));
++L=sqrt((x(segments(:,1))-x(segments(:,2))).^2+(y(segments(:,2))-y(segments(:,1))).^2);
++flux = - md.materials.rho_ice*sum(L.*H.*(vx.*nx+vy.*ny)); %outflux is negative!
++disp(['mass outflux on ' file ' = ' num2str(-flux/10^9) ' Gt/yr']);
++areas=GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y);
++dhdt=flux/(sum(areas(find(elemin)))*md.materials.rho_ice);
++disp(['dhdt on ' file ' (Flux  method) = ' num2str(dhdt) ' m/yr']);
++
++dhdt=thicknessevolution(md);
++in=find(elemin);
++dhdt=sum(dhdt(in).*areas(in))/sum(areas(in));
++disp(['dhdt on ' file ' (divHV method) = ' num2str(dhdt) ' m/yr']);
+Index: ../trunk-jpl/src/m/contrib/morlighem/thicknessevolution.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/thicknessevolution.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/morlighem/thicknessevolution.m	(revision 20176)
+@@ -0,0 +1,28 @@
++function dhdt=thicknessevolution(md)
++%THICKNESSEVOLUTION - compute the new thickness of a model after ∆t
++%
++%   This routine compute the new thickness of a model after a time step
++%   according to the following formula:
++%   dh/dt=-div(Hu)
++%
++%   Usage:
++%      dhdt=thicknessevolution(md)
++
++if (length(md.initialization.vx)~=md.mesh.numberofvertices)|(length(md.initialization.vy)~=md.mesh.numberofvertices)
++	error(['thicknessevolution error message: vx and vy should have a length of ' num2str(md.mesh.numberofvertices)])
++end
++
++%load some variables 
++H=md.geometry.thickness;
++vx=md.initialization.vx;
++vy=md.initialization.vy;
++index=md.mesh.elements;
++
++%compute nodal functions coefficients N(x,y)=alpha x + beta y + gamma
++[alpha beta]=GetNodalFunctionsCoeff(md.mesh.elements,md.mesh.x,md.mesh.y); 
++
++%compute dhdt=div(Hu)
++summation=1/3*ones(3,1);
++dhdt=(vx(index)*summation).*sum( H(index).*alpha,2) + (vy(index)*summation).*sum(H(index).*beta,2) ...
++	+ ( H(index)*summation).*sum(vx(index).*alpha,2) + ( H(index)*summation).*sum(vy(index).*beta,2);
++dhdt=-dhdt;
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/nunataks.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/nunataks.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/nunataks.m	(revision 20176)
+@@ -0,0 +1,20 @@
++function [mask]=nunataks(mask)
++%NUNATAKS - bias mask towards increased 0 coverage
++% 
++%  mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background
++% 
++%  Usage:   mask=nunataks(mask)
++%           [mask]=aggregation(mask);
++%
++%  See also CLOSING, OPENING, DILATION, EROSION, AGGREGATION
++
++rocks=~mask;
++
++%matrices for convolution: 
++matrix=[0 1 0; 1 0 1; 0 1 0];
++
++%do not exist, i.e. locations that stand pretty much alone. 
++mask=filter2(matrix1,mask,'same');
++pos=find(~crocks & rocks);
++
++mask(pos)=0;
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/aggregation.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/aggregation.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/aggregation.m	(revision 20176)
+@@ -0,0 +1,64 @@
++function [mask,varargout]=aggregation(mask,windowsize,threshhold,varargin)
++%AGGREGATION - aggregation of an image to a lower sized image
++% 
++%  mask is an image of arbitrary size, format binary, with values 1 for foreground, and 0 for background
++%  mask is first convoluted with a square matrix of size windowsize (where windowsize is an even number), 
++%       it is then filtered according to the threshhold value, and finally subsampled using 1/windowsize as 
++%       sample scaling. 
++%  x,y can be provided as optional arguments, as coordinates of the center points of the mask. aggregation will 
++%       then return subsampled x,y arguments in output.
++% 
++%  Usage:   mask2=aggregation(mask,7,7^2/2);
++%           [mask2,x2,y2]=aggregation(mask,7,7^2,x,y];
++%
++%  See also CLOSING, OPENING, DILATION, EROSION
++
++%check input arguments  %{{{
++%even windowsize
++if mod(windowsize,2)==0,
++	error('windowsize should be an even number');
++end
++
++%check on presence of varargin: 
++optional=0;
++if nargin>3,
++	if nargin~=5,
++		help aggregation;
++		error('wrong number of optional arguments specified');
++	else
++		optional=1;
++		x=varargin{1};
++		y=varargin{2};
++	end
++end
++
++%check on presence of varargout: 
++if optional,
++	if nargout~=3,
++		help aggregation;
++		error('wrong number of optional output arguments specified');
++	end
++end
++%}}}
++
++%convolve mask
++matrix=ones(windowsize,windowsize); 
++mask=filter2(matrix,mask,'same');
++
++%apply threshhold
++pos=find(mask>threshhold); 
++pos2=find(mask<=threshhold); 
++mask(pos)=1;
++mask(pos2)=0;
++
++%mask has been transformed into double format from the filter2  operation. Bring back to binary. 
++mask=logical(mask);
++
++%subsample: 
++s=size(mask);
++mask=mask(1:windowsize:s(1),1:windowsize:s(2));
++
++if optional,
++	varargout{1}=x(1:windowsize:s(2));
++	varargout{2}=y(1:windowsize:s(1));
++end
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/closing.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/closing.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/closing.m	(revision 20176)
+@@ -0,0 +1,5 @@
++function mask=closing(mask,neighboorhood)
++%closing algorithm using neighboorhood pixel neighboors.
++
++mask=dilation(mask,neighboorhood);
++mask=erosion(mask,neighboorhood);
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/erosion.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/erosion.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/erosion.m	(revision 20176)
+@@ -0,0 +1,26 @@
++function mask=erosion(mask,neighboorhood)
++%erosion algorithm using neighboorhood pixel neighboors.
++
++%convolve: 
++
++matrix=ones(3,3); 
++
++%4 neighboorhood: 
++%corners
++if neighboorhood==4,
++	matrix(1,1)=0;
++	matrix(1,3)=0;
++	matrix(3,1)=0;
++	matrix(3,3)=0;
++end
++
++%center
++matrix(2,2)=0;
++
++%convolve mask: 
++convol=filter2(matrix,mask,'same');
++
++pos=find(mask==1);
++pos2=find(convol(pos)<neighboorhood);
++
++mask(pos(pos2))=0;
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/opening.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/opening.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/opening.m	(revision 20176)
+@@ -0,0 +1,5 @@
++function mask=opening(mask,neighboorhood)
++%opening algorithm using neighboorhood pixel neighboors.
++
++mask=erosion(mask,neighboorhood);
++mask=dilation(mask,neighboorhood);
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/vectorialize.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/vectorialize.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/vectorialize.m	(revision 20176)
+@@ -0,0 +1,11 @@
++function contours=vectorialize(mask,connectivity);
++
++	vec=bwboundaries(mask,connectivity);
++
++	contours=struct([]);
++	for i=1:length(vec),
++		contours(end+1).x=vec{i}(:,2);
++		contours(end).y=vec{i}(:,1);
++		contours(end).density=1;
++	end
++	contours(1).name='';
+Index: ../trunk-jpl/src/m/contrib/larour/morphological/dilation.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/morphological/dilation.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/morphological/dilation.m	(revision 20176)
+@@ -0,0 +1,25 @@
++function mask=dilation(mask,neighboorhood)
++%deletion algorithm using 4 pixel neighboors.
++
++%convolve: 
++
++matrix=ones(3,3); 
++
++%4 neighboorhood: 
++%corners
++if neighboorhood==4,
++	matrix(1,1)=0;
++	matrix(1,3)=0;
++	matrix(3,1)=0;
++	matrix(3,3)=0;
++end
++%center
++matrix(2,2)=0;
++
++%convolve mask: 
++convol=filter2(matrix,mask,'same');
++
++pos=find(mask==0);
++pos2=find(convol(pos)~=0);
++
++mask(pos(pos2))=1;
+Index: ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m	(revision 20176)
+@@ -0,0 +1,64 @@
++function matrix=resultstomatrix(md,resultname,field,varargin)
++%RESULTSTOMATRIX - go grab in the model results structure the vector results for each time step (which is not empty), 
++%                  and line them up in a matrix.  If time vector is provided, resample.
++%
++%   Usage:
++%      matrix=resultstomatrix(model,solutioname,fieldname)
++%
++%   Available options:
++%      - 'time'     : vector providing new time tags used to resample time
++%
++%   Example:
++%      vel=resultstomatrix(md,'TransientSolution','Vel');
++%      vel=resultstomatrix(md,'TransientSolution','Vel','time',2008:1/12:2014);
++%
++%   See also MODEL  resample
++
++
++	options=pairoptions(varargin{:});
++
++	results=md.results.(resultname);
++
++	%first, figure out the size: 
++	count=0;
++	nods=0;
++	for i=1:length(results),
++		if ~isempty(results(i).(field)),
++			count=count+1;
++			nods=size(results(i).(field),1);
++		end
++	end
++
++	if ~count, 
++		error(['could not find any result ' field ' in ' resultname]);
++	end
++
++	%initialize: 
++	matrix=zeros(nods+1,count);
++
++	%fill it up: 
++	count=0;
++	for i=1:length(results),
++		if ~isempty(results(i).(field)),
++			count=count+1;
++			matrix(1:end-1,count)=results(i).(field);
++			matrix(end,count)=results(i).time/md.constants.yts;
++		end
++	end
++
++	newtime=getfieldvalue(options,'time',[]);
++	if ~isempty(newtime),
++		newmatrix=zeros(nods+1,length(newtime));
++		newmatrix(end,:)=newtime;
++		%we are asked to reinterpolate to this new time: 
++
++		for i=1:nods,
++			warning off;
++			ts=timeseries(matrix(i,:), matrix(end,:));
++			ts=resample(ts,newtime);
++			warning on;
++			newmatrix(i,:)=ts.Data;
++		end
++
++		matrix=newmatrix;
++	end
+Index: ../trunk-jpl/src/m/contrib/larour/tres.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/tres.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/tres.m	(revision 20176)
+@@ -0,0 +1,115 @@
++function md=tres(md,string)
++%TRES - transfer results results to corresponding model fields. 
++%
++%    Usage: md=tres(md,string)
++%
++%    Example: md=tres(md,'stressbalance');
++
++%check number of arguments
++
++if strcmpi(string,'stressbalance'),
++	if strcmp(domaintype(md.mesh),'2Dhorizontal'),
++		md.initialization.vx=md.results.StressbalanceSolution.Vx;
++		md.initialization.vy=md.results.StressbalanceSolution.Vy;
++	else 
++		md.initialization.vx=md.results.StressbalanceSolution.Vx;
++		md.initialization.vy=md.results.StressbalanceSolution.Vy;
++		md.initialization.vz=md.results.StressbalanceSolution.Vz;
++	end
++	md.initialization.vel=md.results.StressbalanceSolution.Vel;
++
++	if isfield(md.results.StressbalanceSolution,'Pressure'),
++		md.initialization.pressure=md.results.StressbalanceSolution.Pressure;
++	end
++	if ~isempty(md.rifts.riftstruct),
++		if isfield(md.results.StressbalanceSolution,'riftproperties'),
++			md.rifts.riftproperties=md.results.StressbalanceSolution.riftproperties;
++		end
++	end
++
++elseif strcmpi(string,'dakota'),
++	md.qmu.results=md.results.dakota;
++
++elseif strcmpi(string,'flaim'),
++	md.flaim.solution=md.results.FlaimSolution.solution;
++	md.flaim.quality =md.results.FlaimSolution.quality;
++
++elseif strcmpi(string,'transient'),
++	results=md.results.TransientSolution;
++	results2.Vel=NaN;
++	count=1;
++	for i=1:length(results),
++		if ~isempty(md.results.TransientSolution(i).Vel),
++			results2(count).Vel=md.results.TransientSolution(i).Vel;
++			results2(count).Surface=md.results.TransientSolution(i).Surface;
++			results2(count).Thickness=md.results.TransientSolution(i).Thickness;
++			results2(count).Bed=md.results.TransientSolution(i).Bed;
++			results2(count).Vx=md.results.TransientSolution(i).Vx;
++			results2(count).Vy=md.results.TransientSolution(i).Vy;
++			results2(count).time=md.results.TransientSolution(i).time;
++			results2(count).step=md.results.TransientSolution(i).step;
++			if ~strcmpi(md.groundingline.migration,'None'),
++				results2(count).ElementOnIceShelf=md.results.TransientSolution(i).ElementOnIceShelf;
++			end
++			count=count+1;
++		end
++	end
++	md.results.TransientSolution=results2;
++	clear results,results2;
++elseif strcmpi(string,'steadystate'),
++	md.initialization.vx=md.results.SteadystateSolution.Vx;
++	md.initialization.vy=md.results.SteadystateSolution.Vy;
++	if isfield(md.results.SteadystateSolution,'Vz'),
++		md.initialization.vz=md.results.SteadystateSolution.Vz;
++	end
++
++	md.initialization.vel=md.results.SteadystateSolution.Vel;
++	md.initialization.pressure=md.results.SteadystateSolution.Pressure;
++	md.initialization.temperature=md.results.SteadystateSolution.Temperature;
++	md.basalforcings.groundedice_melting_rate=md.results.SteadystateSolution.BasalforcingsGroundediceMeltingRate;
++
++	if md.inversion.iscontrol==1,
++		for control_parameters=md.inversion.control_parameters
++			md.(EnumToModelField(control_parameters))=md.results.SteadystateSolution.(EnumToString(control_parameters));
++		end
++	end
++
++elseif strcmpi(string,'thermal'),
++	md.initialization.temperature=md.results.ThermalSolution.Temperature;
++	md.basalforcings.groundedice_melting_rate=md.results.ThermalSolution.BasalGroundediceMeltingRate;
++elseif strcmpi(string,'hydrology'),
++	md.initialization.watercolumn=md.results.HydrologySolution.Watercolumn;
++
++else 
++	error(['tres error message: analysis ' string ' not supported yet!']);
++end
++end 
++function string=EnumToModelField(enum) % {{{
++	%ENUMTOMODELFIELD - output string of model field associated to enum
++	%
++	%   Usage:
++	%      string=EnumToModelField(enum)
++
++	disp('Warning: EnumToModelField is deprecated, it cannot work with new model definition. This function will be removed in the future');
++
++	switch enum,
++
++		case ThicknessEnum(), string='thickness'; return
++		case FrictionCoefficientEnum(), string='drag_coefficient'; return
++		case MaterialsRheologyBEnum(), string='rheology_B'; return
++		case MaterialsRheologyBbarEnum(), string='rheology_B'; return
++		case MaterialsRheologyZEnum(), string='rheology_Z'; return
++		case MaterialsRheologyZbarEnum(), string='rheology_Z'; return
++		case BalancethicknessThickeningRateEnum(), string='dhdt'; return
++		case VxEnum(), string='vx'; return
++		case InversionVxObsEnum(), string='vx_obs'; return
++		case VyEnum(), string='vy'; return
++		case InversionVyObsEnum(), string='vy_obs'; return
++		case BasalforcingsMeltingRateEnum(), string='basal_melting_rate'; return
++		case SmbAccumulationRateEnum(), string='surface_accumulation_rate'; return
++		case SmbAblationRateEnum(), string='surface_ablation_rate'; return
++		case SmbMassBalanceEnum(), string='surface_mass_balance'; return
++		otherwise, error(['Enum ' num2str(enum)  ' not found associated to any model field']);
++
++		end
++	end % }}}
+Index: ../trunk-jpl/src/m/contrib/larour/ecco/PropagateFlagsUntilDistance.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/ecco/PropagateFlagsUntilDistance.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/ecco/PropagateFlagsUntilDistance.m	(revision 20176)
+@@ -0,0 +1,60 @@
++function new_flags=PropagateFlagsUntilDistance(md,flags,distance)
++%PROPAGATEFLAGSUNTILDISTANCE
++%
++% Usage: 
++%              flags=PropagateFlagsUntilDistance(md,flags,distance)
++%
++%
++
++new_flags=flags;
++
++%make 3d work in 2d: 
++if dimension(md.mesh)==3,
++	md.mesh.x=md.mesh.x2d;
++	md.mesh.y=md.mesh.y2d;
++	md.mesh.elements=md.mesh.elements2d;
++end
++
++%find elements that are at the border of flags: 
++flag_elements=find(flags);
++conn=md.mesh.elementconnectivity(flag_elements,:);
++pos=find(conn);conn(pos)=~flags(conn(pos));
++sum_conn=sum(conn,2);
++border_elements=flag_elements(find(sum_conn>=1));
++
++%average x and y over elements: 
++x_elem=md.mesh.x(md.mesh.elements)*[1;1;1]/3;
++y_elem=md.mesh.y(md.mesh.elements)*[1;1;1]/3;
++
++while 1,
++
++	%keep copy of new_flags for this loop: 
++	new_flags_bak=new_flags;
++
++	%extend new flags by connectivity
++	pos=find(new_flags);
++
++	connected_elements=md.mesh.elementconnectivity(pos,:);
++	connected_elements=connected_elements(find(connected_elements));
++	new_flags(connected_elements)=1;
++
++	%get new elements: 
++	new_elements=find(new_flags & ~new_flags_bak);
++	if ~length(new_elements),
++		%we are done!
++		break;
++	end
++
++	%check which of these new elements are more than distance away from the border elements
++	for i=1:length(new_elements),
++		dist=sqrt(     (x_elem(border_elements)-x_elem(new_elements(i))).^2 + (y_elem(border_elements)-y_elem(new_elements(i))).^2)-distance;
++		if ~any(dist<0)
++			%none of the border elements are within distance, this element is outside out area of interest.
++			%ensure this element never gets found again in the connectivity.
++			pos=find(md.mesh.elementconnectivity==new_elements(i));
++			md.mesh.elementconnectivity(pos)=0;
++			%exclude this new element from the new_flags!
++			new_flags(new_elements(i))=0;
++		end
++	end
++end
+Index: ../trunk-jpl/src/m/contrib/larour/ecco/MeltingGroundingLines.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/ecco/MeltingGroundingLines.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/ecco/MeltingGroundingLines.m	(revision 20176)
+@@ -0,0 +1,26 @@
++function md=MeltingGroundingLines(md,distance,value)
++%MELTINGGROUNDINGLINES - set melting near grounding lines to a constant value
++%
++%   Usage:
++%      md=MeltingGroundingLines(md,distance,value)
++%
++
++%get nodes on ice sheet and on ice shelf
++pos_shelf=find(md.mask.groundedice_levelset<0.);
++pos_GL=intersect(unique(md.mesh.elements(find(md.mask.elementongroundedice),:)),unique(md.mesh.elements(find(md.mask.elementonfloatingice),:)));
++
++for i=1:length(pos_shelf)
++
++	if (mod(i,100)==0),
++		fprintf('\b\b\b\b\b\b\b%5.2f%s',i/length(pos_shelf)*100,' %');
++	end
++
++	%search the node on ice sheet the closest to i
++	[d posd]=min(sqrt((md.mesh.x(pos_shelf(i))-md.mesh.x(pos_GL)).^2+(md.mesh.y(pos_shelf(i))-md.mesh.y(pos_GL)).^2));
++
++	if d<distance,
++
++		md.melting(pos_shelf(i))=value;
++
++	end
++end
+Index: ../trunk-jpl/src/m/contrib/larour/ecco/ecco32issm.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/ecco/ecco32issm.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/ecco/ecco32issm.m	(revision 20176)
+@@ -0,0 +1,8 @@
++function nodefield=ecco32issm(field,transition,xecco3,yecco3)
++
++	xecco3linear=xecco3(:); yecco3linear=yecco3(:); %linearize
++	nodefieldlinear=zeros(length(xecco3linear),1);
++	nodefieldlinear(transition(:,1))=field(transition(:,2));
++	nodefield=xecco3;
++	nodefield(:)=nodefieldlinear;
++	%nodefield=nodefield'; %not sure we need that
+Index: ../trunk-jpl/src/m/contrib/larour/ecco/issm2ecco3.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/ecco/issm2ecco3.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/larour/ecco/issm2ecco3.m	(revision 20176)
+@@ -0,0 +1,8 @@
++function nodefield=issm2ecco3(field,transition,xecco3,yecco3)
++
++	xecco3linear=xecco3(:); yecco3linear=yecco3(:); %linearize
++	nodefieldlinear=zeros(length(xecco3linear),1);
++	nodefieldlinear(transition(:,1))=field(transition(:,2));
++	nodefield=xecco3;
++	nodefield(:)=nodefieldlinear;
++	%nodefield=nodefield'; %not sure we need that
+Index: ../trunk-jpl/src/m/contrib/seroussi/oasis/carter.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/seroussi/oasis/carter.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/seroussi/oasis/carter.m	(revision 20176)
+@@ -0,0 +1,28 @@
++function attenuation=carter(temperature)
++%CARTER - attenuation as a function of temperature
++%
++%   TWO WAY - Attenuation (in dB/m) as a function of temperature (K)
++%   From Carter at al. 2007 (Radar-based subglacial lake classification in Antarctica)
++%   Figure 4
++%
++%   Usage:
++%      attenuation=carter(temperature)
++
++if(temperature<0)
++	error('input temperature should be in Kelvin (positive)');
++end
++T=temperature-273.15;
++
++Temp=[-50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0]';
++A=[0.0015 0.002 0.003 0.0042 0.0055 0.0083 0.012 0.0175 0.026 0.038 0.055]';
++
++%Now, do a cubic fit between Temp and B: 
++[cfun,gof,output]=fit(Temp,A,'cubicspline');
++%breaks=cfun.p.breaks;
++%coeff=cfun.p.coefs;
++
++%Calculate attenuation
++attenuation=cfun(T);
++
++%Make it a 2 way attenuation
++attenuation=2*attenuation;
+
+Property changes on: ../trunk-jpl/src/m/contrib/seroussi/oasis/carter.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m	(revision 20176)
+@@ -0,0 +1,247 @@
++function export_netCDF(md,filename)	
++	
++%Now going on Real treatment
++	if exist(filename),
++		disp(sprintf('File %s allready exist', filename));
++		prompt = 'Give a new name or "delete" to replace: ';
++		newname = input(prompt,'s');
++		if strcmp(newname,'delete')
++			delete(filename)
++		else
++			disp(sprintf('New file name is %s ', newname));
++			filename=newname
++	  end
++  end
++	%open file and write description
++	mode = netcdf.getConstant('NC_NETCDF4');
++	mode = bitor(mode,netcdf.getConstant('NC_NOCLOBBER'));%NOCLOBBER to avoid overwrite
++	ncid = netcdf.create(filename,mode);
++	netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Title',['Results for run ' md.miscellaneous.name]);
++	netcdf.putAtt(ncid,netcdf.getConstant('NC_GLOBAL'),'Date',['Created ' datestr(now)]);
++	
++	%gather geometry and timestepping as dimensions
++	Duration=md.timestepping.final_time-md.timestepping.start_time;
++	if Duration>0 && md.timestepping.time_step*md.settings.output_frequency>0,
++		StepNum=Duration/(md.timestepping.time_step*md.settings.output_frequency);
++	else
++		StepNum=1;
++  end							
++ 
++	%define netcdf dimensions
++	DimSize(1).index=netcdf.defDim(ncid,'Dimension1',md.mesh.numberofelements);
++	DimSize(2).index=netcdf.defDim(ncid,'Dimension2',md.mesh.numberofvertices);
++	DimSize(3).index=netcdf.defDim(ncid,'Dimension3',size(md.mesh.elements,2));
++	DimSize(4).index=netcdf.defDim(ncid,'Dimension4',StepNum);
++	DimSize(5).index=netcdf.defDim(ncid,'Dimension5',40);
++	DimSize(6).index=netcdf.defDim(ncid,'Dimension6',2);
++	
++	for i=1:length(DimSize),
++		[DimSize(i).name,DimSize(i).value]=netcdf.inqDim(ncid,DimSize(i).index);
++		DimValue(i)=DimSize(i).value;% putting vallues in an array for
++                                 % further use
++  end
++ 
++	%Needs a first turn arround for var def
++ 
++	%get all model classes and create respective groups
++	groups=fieldnames(md);
++	for i=1:length(groups),
++		disp(sprintf('group name in tree %s ',groups{i}));
++		groupID=netcdf.defGrp(ncid,groups{i});
++		%In each group gather the fields of the class
++		groupfields=fields(md.(groups{i}));
++		%Special treatment for the results
++		if strcmp(groups(i),'results'),
++			for j=1:length(groupfields)%looping on the differents solutions
++				netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),'classtype','results');
++				subgroupID=netcdf.defGrp(groupID,groupfields{j});
++				netcdf.putAtt(subgroupID,netcdf.getConstant('NC_GLOBAL'),'classtype',groupfields{j});
++				%disp(sprintf('=====Field name in tree %s ',groupfields{j}));
++				if length(md.results.(groupfields{j}))>1,
++					%the solution have several timestep get last timesteps and output frequency
++					last_step = length(md.results.(groupfields{j}));
++					%grab first time step
++					subfields=fields(md.results.(groupfields{j})(1));
++					for k=1:length(subfields),
++						if ~strcmp(subfields(k),'errlog') && ~strcmp(subfields(k),'outlog') && ~strcmp(subfields(k),'SolutionType'),
++							%disp(sprintf('==========SubField name in tree %s ',subfields{k}));
++							Var=md.results.(groupfields{j})(1).(subfields{k});
++							[DimSize,DimValue]=DefCreateVar(ncid,Var,subgroupID,subfields{k},DimSize,DimValue,true,last_step,md,groupfields{j});
++			      end
++		      end
++				elseif length(md.results.(groupfields{j}))==1,
++					%only one timestep
++					subfields=fields(md.results.(groupfields{j}));
++					for k=1:length(subfields),
++						%disp(sprintf('==========SubField name in tree %s ',subfields{k}));
++						if ~strcmp(subfields(k),'errlog') && ~strcmp(subfields(k),'outlog') && ~strcmp(subfields(k),'SolutionType'),
++							Var=md.results.(groupfields{1})(1).(subfields{k});
++							[DimSize,DimValue]=DefCreateVar(ncid,Var,groupID,subfields{k},DimSize,DimValue,false);
++			      end
++		      end
++				else
++					print 'Result format not suported'
++		    end
++	    end
++		else
++			for j=1:length(groupfields),
++				disp(sprintf('=====Field name in tree %s ',groupfields{j}));
++				netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),'classtype',class(md.(groups{i})));
++				Var=md.(groups{i}).(groupfields{j});
++				[DimSize,DimValue]=DefCreateVar(ncid,Var,groupID,groupfields{j},DimSize,DimValue,false);
++	    end
++	  end	
++  end
++	netcdf.close(ncid);
++end
++
++function [DimSize,DimValue]=DefCreateVar(ncid,Var,groupID,field,DimSize,DimValue,istime,last,md,midfield)
++	varclass=class(Var);
++	varsize=size(Var);
++	varlength=length(Var);
++	if isa(Var,'logical'),
++		if Var,
++			LogicString='True';
++		else,
++			LogicString='False';
++  	end
++		netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),field,LogicString);
++	elseif isa(Var,'char'),
++		netcdf.putAtt(groupID,netcdf.getConstant('NC_GLOBAL'),field,Var);
++	elseif isa(Var,'double'), %dealing with arrays
++		[dims,DimSize,DimValue]=GetDims(ncid,Var,groupID,field,DimSize,DimValue,istime);
++ 		varid = netcdf.defVar(groupID,field,'NC_DOUBLE',dims);
++		if istime,
++			VarTab=Var;
++			for i=2:last,
++				TimeVar=md.results.(midfield)(i).(field);
++				VarTab=[VarTab TimeVar];
++	    end
++			netcdf.putVar(groupID,varid,VarTab);
++		else
++			if length(Var)==0,
++				netcdf.putVar(groupID,varid,NaN);
++			else
++				netcdf.putVar(groupID,varid,Var);
++	    end
++	  end
++	elseif isa(Var,'cell'),
++		[dims,DimSize,DimValue]=GetDims(ncid,Var,groupID,field,DimSize,DimValue,istime);
++		%dirty hack to be able to pass strings
++		varid = netcdf.defVar(groupID,field,'NC_CHAR',dims);
++		if length(Var)==0,
++			netcdf.putVar(groupID,varid,0,9,'emptycell')
++		else
++			for i=1:length(Var),
++				startpoint=zeros(size(Var));
++				startpoint(:,i)=i-1;
++				if length(Var)>1,
++					endpoint=[min(length(Var{i}),40) 1];
++				else
++					endpoint=min(length(Var{i}),40);
++		    end
++				if length(Var{i})>40,
++					netcdf.putVar(groupID,varid,startpoint,endpoint,Var{i}(1:40))
++					disp(sprintf('some variable have been truncated'));
++			  else
++					netcdf.putVar(groupID,varid,startpoint,endpoint,Var{i})
++	      end
++	    end
++	  end
++	elseif isa(Var,'struct'),
++		%Start by getting the structure fields and size
++		locfields=fields(Var);
++		[dims,DimSize,DimValue]=GetDims(ncid,Var,groupID,locfields,DimSize,DimValue,istime);
++		varid = netcdf.defVar(groupID,field,'NC_CHAR',dims);
++		if length(locfields)==0,
++			netcdf.putVar(groupID,varid,[0,0],[11,1],'emptystruct')
++		else
++			for i=1:length(locfields),
++				for j=1:2,
++					if j==1,
++						startpoint=[0,0,i-1];
++						CharVar=locfields{i};
++					else
++						startpoint=[0,1,i-1];
++						if isa(Var.(locfields{i}),'char'),
++							CharVar=Var.(locfields{i});
++						else
++							CharVar=num2str(Var.(locfields{i}));
++			      end
++		      end
++					endpoint=[min(length(CharVar),40),1,1];
++					if length(CharVar)>40,
++						netcdf.putVar(groupID,varid,startpoint,endpoint,CharVar(1:40))
++						disp(sprintf('some variable have been truncated'));
++					else
++						netcdf.putVar(groupID,varid,startpoint,endpoint,CharVar)
++		      end
++		    end
++	    end
++		end
++	else
++		disp(sprintf('no support for class %s of field %s',varclass,field));
++  end
++	return
++end
++
++function [dims,DimSize,DimValue]=GetDims(ncid,Var,groupID,field,DimSize,DimValue,istime)
++	dims=[];
++	%specific treatment for structures
++	if isa(Var,'struct')
++		varsize=size(field); %we pass here the fields of the current structure
++		MatOrVec=varsize>1; %checking if we have a matrix (1 1) or vector (1 0)
++		for i=1:sum(MatOrVec), %loop on the number of (non 1) dimensions
++			currentdim=varsize(i);
++			dimexist=DimValue==currentdim;
++			if sum(dimexist)==0, %dimension is new to us, need to create it
++				dimname=strcat('Dimension',int2str(length(DimValue)+1));
++				dimindex=length(DimSize)+1;
++				DimSize(dimindex).index=netcdf.defDim(ncid,dimname,currentdim);
++				[DimSize(dimindex).name,DimSize(dimindex).value]=netcdf.inqDim(ncid,DimSize(dimindex).index);
++				dims(i)=DimSize(dimindex).index;
++				DimValue(dimindex)=currentdim;
++			else
++				dimindex=find(dimexist);
++				if DimSize(dimindex).value~=currentdim,
++					error('Indexation problem with the dimension structure')
++		    end
++	    end
++			dims(i)=DimSize(dimindex).index;
++	  end
++		dims=[DimSize(6).index dims];
++	else
++		%with a cell array need to grab the transposed size to work
++		if isa(Var,'cell'),
++			varsize=size(Var');
++		else
++			varsize=size(Var);
++    end
++		MatOrVec=varsize>1; %checking if we have a matrix (1 1) or vector (1 0)
++		for i=1:sum(MatOrVec), %loop on the number of (non 1) dimensions
++			currentdim=varsize(i);
++			dimexist=DimValue==currentdim;
++			if sum(dimexist)==0, %dimension is new to us, need to create it
++				dimname=strcat('Dimension',int2str(length(DimValue)+1));
++				dimindex=length(DimSize)+1;
++				DimSize(dimindex).index=netcdf.defDim(ncid,dimname,currentdim);
++				[DimSize(dimindex).name,DimSize(dimindex).value]=netcdf.inqDim(ncid,DimSize(dimindex).index);
++				dims(i)=DimSize(dimindex).index;
++				DimValue(dimindex)=currentdim;
++			else
++				dimindex=find(dimexist);
++				if DimSize(dimindex).value~=currentdim,
++					error('Indexation problem with the dimension structure')
++		    end
++	    end
++			dims(i)=DimSize(dimindex).index;
++    end
++  end
++	if istime,
++		dims=[dims DimSize(4).index];%adding the time dimension if necessary
++  end
++	%if we have a cell variable we need to add a stringlength dimension 
++	if isa(Var,'cell') || isa(Var,'struct'),
++		dims=[DimSize(5).index dims]
++  end
++end
+
+Property changes on: ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.m
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.py	(revision 20176)
+@@ -0,0 +1,25 @@
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++
++def netCDFRead(filename):
++	
++	def walktree(data):
++		keys = data.groups.keys()
++		yield keys
++		for key in keys:
++			for children in walktree(data.groups[str(key)]):
++				yield children
++				
++	if path.exists(filename):
++		print ('Opening {} for reading '.format(filename))
++		NCData=Dataset(filename, 'r')
++		class_dict={}
++		
++		for children in walktree(NCData):
++			for child in children:
++				class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype')+'()')
++
++		print class_dict
++				
+Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/read_netCDF.m	(revision 20176)
+@@ -0,0 +1,134 @@
++function self=read_netCDF(filename)
++
++% Different types in the netcdf standard are:
++%   2 for char
++%   4 for integer
++%   6 for doubles	
++	
++	ncid=netcdf.open(filename,'NC_NOWRITE');
++	groupIDs=netcdf.inqGrps(ncid);%retrieve group IDs
++	self=model;
++	%loop on groups
++	for i=1:length(groupIDs)
++		whichclass = netcdf.getAtt(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),'classtype');
++		groupName = netcdf.inqGrpName(groupIDs(i));		
++		%results needs a special treatment as it is a structure
++		if strcmp(whichclass,'results'),
++			subgroupIDs=netcdf.inqGrps(groupIDs(i));%retrieve group IDs
++			%define the model structure
++			self=setfield(self,groupName,struct);
++			for j=1:length(subgroupIDs)
++				subclass = netcdf.getAtt(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),'classtype');
++				self.results=setfield(self.results,subclass,struct);
++				[ndims nvar natts]=netcdf.inq(subgroupIDs(j));
++				varIDs=netcdf.inqVarIDs(subgroupIDs(j));
++				%first loop on group atributes
++				for k=1:natts,
++					attname = netcdf.inqAttName(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),k-1);
++					[xtype,attlen] = netcdf.inqAtt(subgroupIDs(j),netcdf.getConstant('NC_GLOBAL'),attname);
++					disp(sprintf('In %s, Treating attribute %s of type %i',subclass,attname,xtype));
++					%classtype have done is job, no need to keep it any more
++					if ~strcmp(attname,'classtype'),
++						attval=netcdf.getAtt(subgroupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
++						if strcmp(attval,'False'),
++							self.(groupName).(subclass).(attname)=false;
++						elseif strcmp(attval,'True')
++							self.(groupName).(subclass).(attname)=true;
++						else
++							self.(groupName).(subclass).(attname)=attval;
++			      end
++		      end
++		    end
++				%now loop on variable in group
++				for k=1:length(varIDs),
++					[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(subgroupIDs(j),varIDs(k));
++					disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
++					%time dimension seems to be last in our construction
++					for l=1:length(varDimIDs),
++						[dimname, dimlen] = netcdf.inqDim(ncid,varDimIDs(l));
++						count(l)=[dimlen];
++		      end
++					startpoint=zeros(size(varDimIDs));
++					timestep=count(end);
++					count(end)=1;
++					for l=1:timestep,
++						data=netcdf.getVar(subgroupIDs(j),varIDs(k),startpoint,count);
++						self.(groupName).(subclass)(l).(varname)=data;
++						startpoint(end)=startpoint(end)+1;
++						self.(groupName).(subclass)(l).('errlog')='';
++						self.(groupName).(subclass)(l).('outlog')='';
++						self.(groupName).(subclass)(l).('SolutionType')=subclass;
++		     end
++				 clear count
++		    end
++	    end
++			%toolkits too require a specific treatment
++		elseif strcmp(whichclass,'toolkits'),
++			%just one variable here
++			varID=netcdf.inqVarIDs(groupIDs(i));
++			[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(groupIDs(i),varID);
++			disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));
++			[dimname,numoffields] = netcdf.inqDim(ncid,varDimIDs(end));
++			self.(groupName)=eval(whichclass);
++			for j=1:numoffields,
++				varval=netcdf.getVar(groupIDs(i),varID,[0,1,j-1],[40,1,1])';
++				fieldname=netcdf.getVar(groupIDs(i),varID,[0,0,j-1],[40,1,1])';
++				varval=cellstr(varval);
++				fieldname=cellstr(fieldname);
++				[val, status]=str2num(varval{1});
++				if strcmp(varval{1},'false') |strcmp(varval{1},'true')  ,
++					status=0;
++		    end
++				if status==1,
++					self.(groupName).(varname).(fieldname{1})=val;
++				else
++					self.(groupName).(varname).(fieldname{1})=varval{1};
++			 end
++	   end
++			%Now for the other fields
++
++		else,
++			%define the model structure
++			self.(groupName)=eval(whichclass);
++			varIDs=netcdf.inqVarIDs(groupIDs(i));
++			[ndims nvar natts]=netcdf.inq(groupIDs(i));
++			%first loop on group atributes
++			for j=1:natts,
++				attname = netcdf.inqAttName(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),j-1);
++				[xtype,attlen] = netcdf.inqAtt(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
++				disp(sprintf('In %s, Treating attribute %s of type %i',whichclass,attname,xtype));
++				%classtype have done is job, no need to keep it any more
++				if ~strcmp(attname,'classtype'),
++					attval=netcdf.getAtt(groupIDs(i),netcdf.getConstant('NC_GLOBAL'),attname);
++					if strcmp(attval,'False'),
++						self.(groupName).(attname)=false;
++					elseif strcmp(attval,'True')
++						self.(groupName).(attname)=true;
++					else
++					self.(groupName).(attname)=attval;
++		    end
++		  end
++	  end
++			%now loop on variable in group
++			for j=1:length(varIDs),
++				[varname, xtype, varDimIDs, varAtts] =netcdf.inqVar(groupIDs(i),varIDs(j));
++				disp(sprintf('In %s, Treating variable %s of type %i',whichclass,varname,xtype));			
++				%if the value is a single string, we need to transpose it (cross check with python file is necessary)
++				if xtype==2
++					varval=netcdf.getVar(groupIDs(i),varIDs(j))';
++					varval=cellstr(varval)';
++					if strcmp(varval{1},'emptystruct'),
++						self.(groupName).(varname)=struct;
++					elseif strcmp(varval{1},'emptycell'),
++						self.(groupName).(varname)=cell(0,0);
++					else
++						self.(groupName).(varname)=varval;
++					end
++				else
++					self.(groupName).(varname)=netcdf.getVar(groupIDs(i),varIDs(j));
++		    end
++		  end
++	  end
++  end
++	netcdf.close(ncid)
++end
+\ No newline at end of file
+Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/ClassTry.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/netCDF/ClassTry.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/ClassTry.py	(revision 20176)
+@@ -0,0 +1,122 @@
++#module imports {{{
++from netCDF4 import Dataset
++import time
++import collections
++from os import path, remove
++#}}}
++
++				
++class truc(object):
++	#properties
++	def __init__(self,*filename):#{{{
++
++		def netCDFread(filename):
++			def walktree(data):
++				keys = data.groups.keys()
++				yield keys
++				for key in keys:
++					for children in walktree(data.groups[str(key)]):
++						yield children
++
++			if path.exists(filename):
++				print ('Opening {} for reading '.format(filename))
++				NCData=Dataset(filename, 'r')
++				class_dict={}
++				
++				for children in walktree(NCData):
++					for child in children:
++						class_dict[str(child)]=str(getattr(NCData.groups[str(child)],'classtype'))
++
++				return class_dict
++
++		if filename:		
++			classtype=netCDFread(filename[0])
++		else:
++			classtype=self.default_prop()
++			
++		module=map(__import__,dict.values(classtype))
++
++		for i,mod in enumerate(dict.keys(classtype)):
++			self.__dict__[mod] = getattr(module[i],str(classtype[str(mod)]))()
++			
++		#}}}
++	def default_prop(self):    # {{{
++		# ordered list of properties since vars(self) is random
++		return {'mesh':'mesh2d',\
++		        'mask':'mask',\
++		        'geometry':'geometry',\
++		        'constants':'constants',\
++		        'smb':'SMB',\
++		        'basalforcings':'basalforcings',\
++		        'materials':'matice',\
++		        'damage':'damage',\
++		        'friction':'friction',\
++		        'flowequation':'flowequation',\
++		        'timestepping':'timestepping',\
++		        'initialization':'initialization',\
++		        'rifts':'rifts',\
++		        'debug':'debug',\
++		        'verbose':'verbose',\
++		        'settings':'settings',\
++		        'toolkits':'toolkits',\
++		        'cluster':'generic',\
++		        'balancethickness':'balancethickness',\
++		        'stressbalance':'stressbalance',\
++		        'groundingline':'groundingline',\
++		        'hydrology':'hydrologyshreve',\
++		        'masstransport':'masstransport',\
++		        'thermal':'thermal',\
++		        'steadystate':'steadystate',\
++		        'transient':'transient',\
++		        'calving':'calving',\
++						'gia':'gia',\
++		        'autodiff':'autodiff',\
++		        'flaim':'flaim',\
++		        'inversion':'inversion',\
++		        'qmu':'qmu',\
++		        'outputdefinition':'outputdefinition',\
++		        'results':'results',\
++		        'radaroverlay':'radaroverlay',\
++		        'miscellaneous':'miscellaneous',\
++		        'private':'private'}
++	# }}}
++		
++	def __repr__(obj): #{{{
++		#print "Here %s the number: %d" % ("is", 37)
++		string="%19s: %-22s -- %s" % ("mesh","[%s,%s]" % ("1x1",obj.mesh.__class__.__name__),"mesh properties")
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("mask","[%s,%s]" % ("1x1",obj.mask.__class__.__name__),"defines grounded and floating elements"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("geometry","[%s,%s]" % ("1x1",obj.geometry.__class__.__name__),"surface elevation, bedrock topography, ice thickness,..."))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("constants","[%s,%s]" % ("1x1",obj.constants.__class__.__name__),"physical constants"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("smb","[%s,%s]" % ("1x1",obj.smb.__class__.__name__),"surface forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("basalforcings","[%s,%s]" % ("1x1",obj.basalforcings.__class__.__name__),"bed forcings"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("materials","[%s,%s]" % ("1x1",obj.materials.__class__.__name__),"material properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("damage","[%s,%s]" % ("1x1",obj.damage.__class__.__name__),"damage propagation laws"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("friction","[%s,%s]" % ("1x1",obj.friction.__class__.__name__),"basal friction/drag properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flowequation","[%s,%s]" % ("1x1",obj.flowequation.__class__.__name__),"flow equations"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("timestepping","[%s,%s]" % ("1x1",obj.timestepping.__class__.__name__),"time stepping for transient models"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("initialization","[%s,%s]" % ("1x1",obj.initialization.__class__.__name__),"initial guess/state"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("rifts","[%s,%s]" % ("1x1",obj.rifts.__class__.__name__),"rifts properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("debug","[%s,%s]" % ("1x1",obj.debug.__class__.__name__),"debugging tools (valgrind, gprof)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("verbose","[%s,%s]" % ("1x1",obj.verbose.__class__.__name__),"verbosity level in solve"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("settings","[%s,%s]" % ("1x1",obj.settings.__class__.__name__),"settings properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("toolkits","[%s,%s]" % ("1x1",obj.toolkits.__class__.__name__),"PETSc options for each solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("cluster","[%s,%s]" % ("1x1",obj.cluster.__class__.__name__),"cluster parameters (number of cpus...)"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("balancethickness","[%s,%s]" % ("1x1",obj.balancethickness.__class__.__name__),"parameters for balancethickness solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("stressbalance","[%s,%s]" % ("1x1",obj.stressbalance.__class__.__name__),"parameters for stressbalance solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("groundingline","[%s,%s]" % ("1x1",obj.groundingline.__class__.__name__),"parameters for groundingline solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("hydrology","[%s,%s]" % ("1x1",obj.hydrology.__class__.__name__),"parameters for hydrology solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("masstransport","[%s,%s]" % ("1x1",obj.masstransport.__class__.__name__),"parameters for masstransport solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("thermal","[%s,%s]" % ("1x1",obj.thermal.__class__.__name__),"parameters for thermal solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("steadystate","[%s,%s]" % ("1x1",obj.steadystate.__class__.__name__),"parameters for steadystate solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("results","[%s,%s]" % ("1x1",obj.results.__class__.__name__),"model results"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("radaroverlay","[%s,%s]" % ("1x1",obj.radaroverlay.__class__.__name__),"radar image for plot overlay"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("miscellaneous","[%s,%s]" % ("1x1",obj.miscellaneous.__class__.__name__),"miscellaneous fields"))
++		return string
++	# }}}
+Index: ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py	(revision 20176)
+@@ -0,0 +1,218 @@
++from netCDF4 import Dataset, stringtochar
++import numpy
++import time
++import collections
++from mesh2d import *
++from mesh3dprisms import *
++from results import *
++from os import path, remove
++
++def export_netCDF(md,filename):
++	#Now going on Real treatment
++	if path.exists(filename):
++		print ('File {} allready exist'.format(filename))
++		newname=raw_input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			remove(filename)
++		else:
++			print ('New file name is {}'.format(newname))
++			filename=newname
++			
++	NCData=Dataset(filename, 'w', format='NETCDF4')
++	NCData.description = 'Results for run' + md.miscellaneous.name
++	NCData.history = 'Created ' + time.ctime(time.time())
++
++	#gather geometry and timestepping as dimensions
++	Duration=md.timestepping.final_time-md.timestepping.start_time
++	if Duration>0 and md.timestepping.time_step*md.settings.output_frequency>0:
++		StepNum=Duration/(md.timestepping.time_step*md.settings.output_frequency)
++	else:
++		StepNum=1
++		
++	Dimension1=NCData.createDimension('Dimension1',md.mesh.numberofelements)
++	Dimension2=NCData.createDimension('Dimension2',md.mesh.numberofvertices)
++	Dimension3=NCData.createDimension('Dimension3',numpy.shape(md.mesh.elements)[1])
++	Dimension4=NCData.createDimension('Dimension4',StepNum)
++	Dimension5=NCData.createDimension('Dimension5',40)
++	Dimension6=NCData.createDimension('Dimension6',2) 
++
++	DimDict = {len(Dimension1):'Dimension1',
++						 len(Dimension2):'Dimension2',
++						 len(Dimension3):'Dimension3',
++						 len(Dimension4):'Dimension4',
++						 len(Dimension5):'Dimension5',
++						 len(Dimension6):'Dimension6'}
++
++	#get all model classes and create respective groups
++	groups=dict.keys(md.__dict__)
++	for group in groups:
++		NCgroup=NCData.createGroup(str(group))
++		#In each group gather the fields of the class
++		fields=dict.keys(md.__dict__[group].__dict__)
++
++		#Special treatment for the results
++		if str(group)=='results':
++			for supfield in fields:#looping on the different solutions
++				NCgroup.__setattr__('classtype', "results")
++				Subgroup=NCgroup.createGroup(str(supfield))
++				Subgroup.__setattr__('classtype',str(supfield))
++				if type(md.results.__dict__[supfield])==list:#the solution have several timestep
++					#get last timesteps and output frequency
++					last_step = numpy.size(md.results.__dict__[supfield])
++					step_freq = md.settings.output_frequency
++					#grab first time step
++					subfields=dict.keys(md.results.__dict__[supfield].__getitem__(0).__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							Var=md.results.__dict__[supfield].__getitem__(0).__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,Subgroup,DimDict,True,last_step,step_freq,md,supfield)
++					
++				elif type(md.results.__dict__[supfield])==results:#only one timestep
++					subfields=dict.keys(md.results.__dict__[supfield].__dict__)
++					for field in subfields:
++						if str(field)!='errlog' and str(field)!='outlog' and str(field)!='SolutionType':
++							print 'Treating '+str(group)+'.'+str(supfield)+'.'+str(field)
++							Var=md.results.__dict__[supfield].__dict__[field]
++							DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++				else:
++					print 'Result format not suported'
++		else:
++			
++			for field in fields:
++				print 'Treating ' +str(group)+'.'+str(field)
++				NCgroup.__setattr__('classtype', md.__dict__[group].__class__.__name__)
++				Var=md.__dict__[group].__dict__[field]
++				DimDict=CreateVar(NCData,Var,field,NCgroup,DimDict,False)
++	NCData.close()
++
++#============================================================================
++#Define the variables
++def CreateVar(NCData,var,field,Group,DimDict,istime,*step_args):
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++		#grab dimension
++	try:
++		val_shape=dict.keys(var)
++	except TypeError:
++		val_shape=numpy.shape(var)
++
++
++	TypeDict = {float:'f8',
++							'float64':'f8',
++							int:'i8',
++							'int64':'i8'}
++		
++	val_dim=numpy.shape(val_shape)[0]
++	#Now define and fill up variable
++	#treating scalar string or bool as atribute
++	if val_type==str or val_type==bool:
++		Group.__setattr__(str(field), str(var))
++
++	#treating list as string table
++	#matlab does not recognise strings so we have to settle down with char arrays
++	elif val_type==list:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		charvar=stringtochar(numpy.array(var))
++		print charvar
++		print charvar.shape
++		for elt in range(0,val_dim):
++			try:
++				ncvar[elt] = charvar[elt]
++			except IndexError:
++				ncvar[0]= " "
++				#treating bool tables as string tables
++	elif val_type=='bool':
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_shape[0]):
++			ncvar[elt] = str(var[elt])
++			#treating dictionaries as string tables of dim 2
++	elif val_type==collections.OrderedDict:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),'S1',dimensions,zlib=True)
++		for elt in range(0,val_dim):
++			ncvar[elt,0]=dict.keys(var)[elt]
++			ncvar[elt,1]=str(dict.values(var)[elt]) #converting to str to avoid potential problems
++			#Now dealing with numeric variables
++	else:
++		dimensions,DimDict=GetDim(NCData,var,val_shape,DimDict,val_dim,istime)
++		ncvar = Group.createVariable(str(field),TypeDict[val_type],dimensions,zlib=True)
++		
++		if istime:
++			last=step_args[0]
++			freq=step_args[1]
++			md=step_args[2]
++			supfield=step_args[3]
++			vartab=var
++			for time in range(freq-1,last,freq):
++				if time!=0:
++					timevar=md.results.__dict__[supfield].__getitem__(time).__dict__[field]
++					print 'Treating results.'+str(supfield)+'.'+str(field)+' for time '+str(time)
++					vartab=numpy.column_stack((vartab,timevar))
++			print numpy.shape(vartab)
++			try:
++				ncvar[:,:]=vartab[:,:]
++			except ValueError:
++				ncvar[:]=vartab.T[:]
++		else:
++			try:
++				nan_val=numpy.isnan(var)
++				if nan_val.all():
++					ncvar [:] = 'NaN'
++				else:
++					ncvar[:] = var
++			except TypeError: #type does not accept nan, get vallue of the variable
++				ncvar[:] = var
++	return DimDict
++
++#============================================================================
++#retriev the dimension tuple from a dictionnary
++def GetDim(NCData,var,shape,DimDict,i,istime):
++	output=[]
++	#grab type
++	try:
++		val_type=str(var.dtype)
++	except AttributeError:
++		val_type=type(var)
++	#grab dimension
++	for dim in range(0,i): #loop on the dimensions
++		if type(shape[0])==int: 
++			try:
++				output=output+[str(DimDict[shape[dim]])] #test if the dimension allready exist
++			except KeyError: #if not create it
++				if (shape[dim])>1:
++					index=len(DimDict)+1
++					NewDim=NCData.createDimension('Dimension'+str(index),(shape[dim]))
++					DimDict[len(NewDim)]='Dimension'+str(index)
++					output=output+[str(DimDict[shape[dim]])]
++					print 'Defining dimension ' +'Dimension'+str(index)
++		elif type(shape[0])==str:#dealling with a dictionnary
++			try:
++				output=[str(DimDict[numpy.shape(shape)[0]])]+['DictDim']
++			except KeyError:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),numpy.shape(shape)[0])
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=[str(DimDict[numpy.shape(dict.keys(var))[0]])]+['Dimension6']
++				print 'Defining dimension ' +'Dimension'+str(index)
++			break
++	if istime:
++		output=output+['Dimension4']
++	#dealing with char and not string as we should so we need to had a string length
++	if val_type=='bool' or val_type==collections.OrderedDict or val_type==list:
++		charvar=stringtochar(numpy.array(var))
++		stringlength=charvar.shape[charvar.ndim-1]
++		try:
++			output=output+[str(DimDict[stringlength])] #test if the dimension allready exist
++		except KeyError: #if not create it
++			if (shape[dim])>1:
++				index=len(DimDict)+1
++				NewDim=NCData.createDimension('Dimension'+str(index),(stringlength))
++				DimDict[len(NewDim)]='Dimension'+str(index)
++				output=output+[str(DimDict[stringlength])]
++				print 'Defining dimension ' +'Dimension'+str(index)
++	return tuple(output), DimDict
+
+Property changes on: ../trunk-jpl/src/m/contrib/defleurian/netCDF/export_netCDF.py
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m	(revision 20176)
+@@ -0,0 +1,197 @@
++function exportVTK(filename,model,varargin)
++% vtk export
++% function exportVTK(filename,model)
++% creates a directory with the vtk files for displays in paraview
++% (only work for triangle and wedges based on their number of nodes)
++%
++%Give only the results for nw but could be extended to geometry, mask... 
++%
++% input: filename   destination 
++%                   (string)
++%------------------------------------------------------------------
++%        model      this is md 
++%------------------------------------------------------------------
++% By default only the results are exported, you can add whichever
++% field you need as a string:
++% add 'geometry' to export md.geometry
++%
++% Basile de Fleurian:
++
++[path,name,ext]=fileparts(filename);
++separator=filesep;
++mkdir(filename);
++
++%get the element related variables
++if dimension(model.mesh)==2,
++	points=[model.mesh.x model.mesh.y zeros(model.mesh.numberofvertices,1)];
++	[num_of_points,dim]=size(points);
++	[num_of_elt]=size(model.mesh.elements,1);
++	[point_per_elt]=size(model.mesh.elements,2);
++else
++	points=[model.mesh.x model.mesh.y model.mesh.z];
++	[num_of_points,dim]=size(points);
++	[num_of_elt]=size(model.mesh.elements,1);
++	[point_per_elt]=size(model.mesh.elements,2);
++end
++
++
++%Select the type of element function of the number of nodes per elements
++if point_per_elt==3;
++	celltype=5; %triangles
++elseif point_per_elt==6;
++	celltype=13; %wedges
++else
++	error('Your Element definition is not taken into account \n');
++end
++
++%this is the result structure
++res_struct=model.results;
++%checking for results
++if (length(fields(res_struct))>0);
++	%Getting all the solutions of the model
++	solnames=fields(res_struct);
++	num_of_sols=length(solnames);
++	num_of_timesteps=1;
++	%building solution structure 
++	for i=1:num_of_sols
++		sol_struct{i}=res_struct.(solnames{i});
++		%looking for multiple time steps
++		if(size(sol_struct{i},2)>num_of_timesteps);
++			num_of_timesteps=size(sol_struct{i},2);
++	  end
++		outstep=model.timestepping.time_step*model.settings.output_frequency;
++  end
++else
++	num_of_timesteps=1;
++end
++for step=1:num_of_timesteps;
++	
++	timestep=step;
++
++	fid = fopen(strcat(path,filesep,name,filesep,'timestep.vtk',int2str(timestep),'.vtk'),'w+');
++	fprintf(fid,'# vtk DataFile Version 2.0 \n');
++	fprintf(fid,'Data for run %s \n',model.miscellaneous.name);
++	fprintf(fid,'ASCII \n');
++	fprintf(fid,'DATASET UNSTRUCTURED_GRID \n');
++	
++	fprintf(fid,'POINTS %d float\n',num_of_points);
++	if(dim==3);
++		s='%f %f %f \n';
++	elseif(dim==2);
++		s='%f %f \n';
++  end
++	P=[points zeros(num_of_points,3-dim)];
++	fprintf(fid,s,P');
++	
++	fprintf(fid,'CELLS %d %d\n',num_of_elt,num_of_elt*(point_per_elt+1));
++	s='%d';
++	for j=1:point_per_elt
++		s=horzcat(s,{' %d'});
++  end
++	s=cell2mat(horzcat(s,{'\n'}));
++		fprintf(fid,s,[(point_per_elt)*ones(num_of_elt,1)	model.mesh.elements-1]');
++	
++	fprintf(fid,'CELL_TYPES %d\n',num_of_elt);
++	s='%d\n';
++	fprintf(fid,s,celltype*ones(num_of_elt,1));
++	fprintf(fid,'POINT_DATA %s \n',num2str(num_of_points));
++
++	%loop over the different solution structures
++	if (exist('num_of_sols'));
++		for j=1:num_of_sols
++			%dealing with results on different timesteps
++			if(size(sol_struct{j},2)>timestep);
++				timestep = step;
++			else
++				timestep = size(sol_struct{j},2);
++	    end
++			
++			%getting the number of fields in the solution
++			fieldnames=fields(sol_struct{j}(timestep));
++			num_of_fields=length(fieldnames);
++			
++			%check which field is a real result and print
++			for k=1:num_of_fields
++				if ((numel(sol_struct{j}(timestep).(fieldnames{k})))==num_of_points);
++					%paraview does not like NaN, replacing
++					nanval=find(isnan(sol_struct{j}(timestep).(fieldnames{k})));
++					sol_struct{j}(timestep).(fieldnames{k})(nanval)=-9999;
++					%also checking for verry small value that mess up
++					smallval=(abs(sol_struct{j}(timestep).(fieldnames{k}))<1.0e-20);
++					sol_struct{j}(timestep).(fieldnames{k})(smallval)=0.0;
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,sol_struct{j}(timestep).(fieldnames{k}));
++		    end		
++	    end 
++	  end
++  end
++	%loop on arguments, if something other than result is asked, do
++	%it now
++	for j= 1:nargin-2
++		res_struct=model.(varargin{j});
++		fieldnames=fields(res_struct);
++		num_of_fields=length(fieldnames);
++		for k=1:num_of_fields
++			if ((numel(res_struct.(fieldnames{k})))==num_of_points);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++				fprintf(fid,'LOOKUP_TABLE default\n');
++				s='%e\n';
++				fprintf(fid,s,res_struct.(fieldnames{k}));
++				%check for forcings	
++			elseif (size(res_struct.(fieldnames{k}),1)==num_of_points+1);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				if (size(res_struct.(fieldnames{k}),2)==num_of_timesteps),
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,res_struct.(fieldnames{k})(1:end-1,timestep));
++				else,
++					%forcing and results not on the same timestep,need some treatment
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					index=1;
++					currenttime=((timestep-1)*outstep)+model.timestepping.start_time;
++					while (res_struct.(fieldnames{k})(end,index)<=currenttime);
++						if index==size(res_struct.(fieldnames{k}),2)
++							break
++						end	
++						index=index+1;
++		      end
++					uptime=res_struct.(fieldnames{k})(end,index);
++					uplim=res_struct.(fieldnames{k})(1:end-1,index);
++					while (res_struct.(fieldnames{k})(end,index)>=currenttime);
++						if index==1
++							break
++			      end
++						index=index-1;
++		      end
++					lowtime=res_struct.(fieldnames{k})(end,index);
++					lowlim=res_struct.(fieldnames{k})(1:end-1,index);
++					if uptime==currenttime,
++						interp=uplim;
++					elseif lowtime==currenttime,
++						interp=lowlim;
++					else
++						interp=lowlim+(uplim-lowlim)*((currenttime-lowtime)/(uptime-lowtime));
++					end
++					s='%e\n';
++					fprintf(fid,s,interp);
++				end
++		  end		
++		end 
++	end
++	fclose(fid);
++end
+Index: ../trunk-jpl/src/m/contrib/defleurian/paraview/enveloppeVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/paraview/enveloppeVTK.m	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/paraview/enveloppeVTK.m	(revision 20176)
+@@ -0,0 +1,186 @@
++function enveloppeVTK(filename,model,varargin)
++% vtk export
++% function enveloppeVTK(filename,model)
++% creates a directory with the vtk files for displays in paraview
++% only export the enveloppe result (surface and base) on trias
++%
++% input: filename   destination 
++%                   (string)
++%------------------------------------------------------------------
++%        model      this is md 
++%------------------------------------------------------------------
++% By default only the results are exported, you can add whichever
++% field you need as a string:
++% add 'geometry' to export md.geometry
++%
++% Basile de Fleurian:
++
++[path,name,ext]=fileparts(filename);
++separator=filesep;
++mkdir(filename);
++IsEnveloppe=find(model.mesh.vertexonbase | model.mesh.vertexonsurface);
++
++%get the element related variables
++if dimension(model.mesh)==2,
++	points=[model.mesh.x model.mesh.y zeros(model.mesh.numberofvertices,1)];
++	[num_of_elt]=size(model.mesh.elements,1);
++	[point_per_elt]=size(model.mesh.elements,2);
++else
++	points=[model.mesh.x(IsEnveloppe) model.mesh.y(IsEnveloppe) model.mesh.z(IsEnveloppe)];
++	[num_of_elt]=size(find(isnan(model.mesh.lowerelements)),1)+size(find(isnan(model.mesh.upperelements)),1);
++	[low_elt_num]=size(find(isnan(model.mesh.lowerelements)),1);
++	[top_elt_num]=size(find(isnan(model.mesh.upperelements)),1);
++end
++
++celltype=5; %triangles
++[num_of_points,dim]=size(points);
++tot_points=model.mesh.numberofvertices;
++
++%this is the result structure
++res_struct=model.results;
++%checking for results
++if (length(fields(res_struct))>0);
++	%Getting all the solutions of the model
++	solnames=fields(res_struct);
++	num_of_sols=length(solnames);
++	num_of_timesteps=1;
++	%building solution structure 
++	for i=1:num_of_sols
++		sol_struct{i}=res_struct.(solnames{i});
++		%looking for multiple time steps
++		if(size(sol_struct{i},2)>num_of_timesteps);
++			num_of_timesteps=size(sol_struct{i},2);
++			outstep=model.timestepping.time_step*model.settings.output_frequency
++    end
++  end
++else
++	num_of_timesteps=1;
++end
++for step=1:num_of_timesteps;
++	
++	timestep=step;
++	fid = fopen(strcat(path,filesep,name,filesep,'timestep.vtk',int2str(timestep),'.vtk'),'w+');
++	fprintf(fid,'# vtk DataFile Version 2.0 \n');
++	fprintf(fid,'Data for run %s \n',model.miscellaneous.name);
++	fprintf(fid,'ASCII \n');
++	fprintf(fid,'DATASET UNSTRUCTURED_GRID \n');
++	
++	fprintf(fid,'POINTS %d float\n',num_of_points);
++	if(dim==3);
++		s='%f %f %f \n';
++	elseif(dim==2);
++		s='%f %f \n';
++  end
++	P=[points zeros(num_of_points,3-dim)];
++	fprintf(fid,s,P');
++	
++	fprintf(fid,'CELLS %d %d\n',num_of_elt,num_of_elt*(3+1));
++	s='%d';
++	for j=1:3
++		s=horzcat(s,{' %d'});
++  end
++	s=cell2mat(horzcat(s,{'\n'}));
++
++	%build the connection matrix for the top and bottom elements
++	if exist('low_elt_num')
++		triaconnect=zeros(num_of_elt,3);
++		triaconnect(1:low_elt_num,:)=model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3);
++		upshift=-min(min(model.mesh.elements(find(isnan(model.mesh.upperelements)),4:6)))+1+max(max(model.mesh.elements(find(isnan(model.mesh.lowerelements)),1:3)));
++		triaconnect(1+low_elt_num:num_of_elt,:)=model.mesh.elements(find(isnan(model.mesh.upperelements)),4:6)+upshift;
++		fprintf(fid,s,[(3)*ones(num_of_elt,1) triaconnect-1]');
++	else
++		fprintf(fid,s,[(point_per_elt)*ones(num_of_elt,1)	model.mesh.elements-1]');
++  end
++
++	fprintf(fid,'CELL_TYPES %d\n',num_of_elt);
++	s='%d\n';
++	fprintf(fid,s,celltype*ones(num_of_elt,1));
++	fprintf(fid,'POINT_DATA %s \n',num2str(num_of_points));
++
++	%loop over the different solution structures
++	if (exist('num_of_sols'));
++		for j=1:num_of_sols
++			%dealing with results on different timesteps
++			if(size(sol_struct{j},2)>timestep);
++				timestep = step;
++			else
++				timestep = size(sol_struct{j},2);
++	    end
++			%getting the number of fields in the solution
++			resfields=fields(sol_struct{j}(timestep));
++			num_of_fields=length(resfields);
++			%check which field is a real result and print
++			for k=1:num_of_fields
++				if ((numel(sol_struct{j}(timestep).(resfields{k})))==tot_points);
++					%paraview does not like NaN, replacing
++					nanval=find(isnan(sol_struct{j}(timestep).(resfields{k})));
++					sol_struct{j}(timestep).(resfields{k})(nanval)=-9999;
++					%also checking for verry small value that mess up
++					smallval=(abs(sol_struct{j}(timestep).(resfields{k}))<1.0e-20);
++					sol_struct{j}(timestep).(resfields{k})(smallval)=0.0;
++					fprintf(fid,'SCALARS %s float 1 \n',resfields{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,sol_struct{j}(timestep).(resfields{k})(IsEnveloppe));
++		    end		
++	    end 
++	  end
++  end
++	%loop on arguments, if something other than result is asked, do
++	%it now
++	for j= 1:nargin-2
++		res_struct=model.(varargin{j});
++		fieldnames=fields(res_struct);
++		num_of_fields=length(fieldnames);
++		for k=1:num_of_fields
++			if ((numel(res_struct.(fieldnames{k})))==tot_points);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++				fprintf(fid,'LOOKUP_TABLE default\n');
++				s='%e\n';
++				fprintf(fid,s,res_struct.(fieldnames{k})(IsEnveloppe));
++				%check for forcings	
++			elseif (size(res_struct.(fieldnames{k}),1)==tot_points+1);
++				%paraview does not like NaN, replacing
++				nanval=find(isnan(res_struct.(fieldnames{k})));
++				res_struct.(fieldnames{k})(nanval)=-9999;
++				%also checking for verry small value that mess up
++				smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
++				res_struct.(fieldnames{k})(smallval)=0.0;
++				if (size(res_struct.(fieldnames{k}),2)==num_of_timesteps),
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					s='%e\n';
++					fprintf(fid,s,res_struct.(fieldnames{k})(IsEnveloppe,timestep));
++				else,
++					%forcing and results not on the same timestep,need some treatment
++					fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
++					fprintf(fid,'LOOKUP_TABLE default\n');
++					index=1
++					currenttime=((timestep-1)*outstep)+model.timestepping.start_time+model.timestepping.time_step
++					while (res_struct.(fieldnames{k})(end,index)<=currenttime);
++						index=index+1
++		      end
++					uptime=res_struct.(fieldnames{k})(end,index);
++					uplim=res_struct.(fieldnames{k})(IsEnveloppe,index);
++					uptime
++					while (res_struct.(fieldnames{k})(end,index)>=currenttime);
++						index=index-1
++		      end
++					lowtime=res_struct.(fieldnames{k})(end,index);
++					lowlim=res_struct.(fieldnames{k})(IsEnveloppe,index);
++					lowtime
++					interp=lowlim+(uplim-lowlim)*((currenttime-lowtime)/(uptime-lowtime))
++					s='%e\n';
++					fprintf(fid,s,interp);
++				end	
++		  end		
++		end 
++	end
++	fclose(fid);
++end
+Index: ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.py
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.py	(revision 0)
++++ ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.py	(revision 20176)
+@@ -0,0 +1,163 @@
++import numpy
++import os
++import model
++import glob
++def exportVTK(filename,model,*args):
++	'''
++	vtk export
++	function exportVTK(filename,model)
++	creates a directory with the vtk files for displays in paraview
++	(only work for triangle and wedges based on their number of nodes)
++	
++	Give only the results for nw but could be extended to geometry, mask... 
++	
++	input: filename   destination 
++	(string)
++	------------------------------------------------------------------
++model      this is md 
++	------------------------------------------------------------------
++	By default only the results are exported, you can add whichever
++	field you need as a string:
++	add 'geometry' to export md.geometry
++
++	Basile de Fleurian:
++	'''
++	Dir=os.path.basename(filename)
++	Path=filename[:-len(Dir)]
++
++	if os.path.exists(filename):
++		print ('File {} allready exist'.format(filename))
++		newname=raw_input('Give a new name or "delete" to replace: ')
++		if newname=='delete':
++			filelist = glob.glob(filename+'/*')
++			for oldfile in filelist:
++				os.remove(oldfile)
++		else:
++			print ('New file name is {}'.format(newname))
++			filename=newname
++			os.mkdir(filename)
++	else:
++		os.mkdir(filename)
++
++	#get the element related variables
++	if 'z' in dict.keys(model.mesh.__dict__):
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,model.mesh.z))
++		dim=3
++	else:
++		points=numpy.column_stack((model.mesh.x,model.mesh.y,numpy.zeros(numpy.shape(model.mesh.x))))
++		dim=2
++
++	num_of_points=numpy.size(model.mesh.x)
++	num_of_elt=numpy.shape(model.mesh.elements)[0]
++	point_per_elt=numpy.shape(model.mesh.elements)[1]
++		
++	#Select the type of element function of the number of nodes per elements
++	if point_per_elt==3:
++		celltype=5 #triangles
++	elif point_per_elt==6:
++		celltype=13 #wedges
++	else:
++		error('Your Element definition is not taken into account \n')
++
++	#this is the result structure
++	res_struct=model.results
++	if (len(res_struct.__dict__)>0):
++		#Getting all the solutions of the model
++		solnames=(dict.keys(res_struct.__dict__))
++		num_of_sols=len(solnames)
++		num_of_timesteps=1
++		out_freq=model.settings.output_frequency
++		#%building solutionstructure 
++		for solution in solnames:
++			#looking for multiple time steps
++			if (numpy.size(res_struct.__dict__[solution])>num_of_timesteps):
++				num_of_timesteps=numpy.size(res_struct.__dict__[solution])
++				num_of_timesteps=int(num_of_timesteps/out_freq)+1
++	else:
++		num_of_timesteps=1
++
++	for step in range(0,num_of_timesteps):
++		timestep=step
++		fid=open((filename +'/Timestep.vtk'+str(timestep)+'.vtk'),'w+')
++		fid.write('# vtk DataFile Version 2.0 \n')
++		fid.write('Data for run %s \n' % model.miscellaneous.name)
++		fid.write('ASCII \n')
++		fid.write('DATASET UNSTRUCTURED_GRID \n')
++		fid.write('POINTS %d float\n' % num_of_points)
++		if(dim==3):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++		elif(dim==2):
++			for point in points:
++				fid.write('%f %f %f \n'%(point[0], point[1], point[2]))
++			
++		fid.write('CELLS %d %d\n' %(num_of_elt, num_of_elt*(point_per_elt+1)))
++		
++		if point_per_elt==3:
++			for elt in range(0, num_of_elt):
++				fid.write('3 %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1))
++		elif point_per_elt==6:
++			for elt in range(0, num_of_elt):
++				fid.write('6 %d %d %d %d %d %d\n' %(model.mesh.elements[elt,0]-1,model.mesh.elements[elt,1]-1,model.mesh.elements[elt,2]-1,model.mesh.elements[elt,3]-1,model.mesh.elements[elt,4]-1,model.mesh.elements[elt,5]-1))
++		else:
++			print 'Number of nodes per element not supported'
++
++		fid.write('CELL_TYPES %d\n' %num_of_elt)
++		for elt in range(0, num_of_elt):
++			fid.write('%d\n' %celltype)
++
++		fid.write('POINT_DATA %s \n' %str(num_of_points))
++	
++		#loop over the different solution structures
++		if 'solnames' in locals():
++			for sol in solnames:
++				#dealing with results on different timesteps
++				if(numpy.size(res_struct.__dict__[sol])>timestep):
++					timestep = step
++				else:
++					timestep = numpy.size(res_struct.__dict__[sol])
++				
++				#getting the  fields in the solution
++				if(numpy.size(res_struct.__dict__[sol])>1):
++					fieldnames=dict.keys(res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__)
++				else:
++					fieldnames=dict.keys(res_struct.__dict__[sol].__dict__)
++				#check which field is a real result and print
++				for field in fieldnames:
++					if(numpy.size(res_struct.__dict__[sol])>1):
++						fieldstruct=res_struct.__dict__[sol].__getitem__(timestep*out_freq-1).__dict__[field]
++					else:
++						fieldstruct=res_struct.__dict__[sol].__dict__[field]
++
++					if ((numpy.size(fieldstruct))==num_of_points):
++						fid.write('SCALARS %s float 1 \n' % field)
++						fid.write('LOOKUP_TABLE default\n')
++						for node in range(0,num_of_points):
++							#paraview does not like NaN, replacing
++							if numpy.isnan(fieldstruct[node]):
++								fid.write('%e\n' % -9999.9999)
++							#also checking for verry small value that mess up
++							elif (abs(fieldstruct[node])<1.0e-20):
++								fid.write('%e\n' % 0.0)
++							else:
++								fid.write('%e\n' % fieldstruct[node])
++					
++		#loop on arguments, if something other than result is asked, do
++		#it now
++		for other in args:
++			other_struct=model.__dict__[other]
++			othernames=(dict.keys(other_struct.__dict__))
++			for field in othernames:
++				if ((numpy.size(other_struct.__dict__[field]))==num_of_points):
++					fid.write('SCALARS %s float 1 \n' % field)
++					fid.write('LOOKUP_TABLE default\n')
++					for node in range(0,num_of_points):
++						#paraview does not like NaN, replacing
++						if numpy.isnan(other_struct.__dict__[field][node]):
++							fid.write('%e\n' % -9999.9999)
++						#also checking for verry small value that mess up
++						elif (abs(other_struct.__dict__[field][node])<1.0e-20):
++							fid.write('%e\n' % 0.0)
++						else:
++							fid.write('%e\n' % other_struct.__dict__[field][node])
++	fid.close();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20176-20177.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20176-20177.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20176-20177.diff	(revision 20498)
@@ -0,0 +1,198 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20176)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20177)
+@@ -29,58 +29,59 @@
+ 	resolution=options.getfieldvalue('resolution')*1000
+ 
+ 	#initialize mesh: 
++	#mesh=mesh3dsurface()
+ 	mesh=mesh2d()
+ 
+ 	#create .geo file:  {{{
+ 	fid=open('sphere.geo','w')
+ 
+-	fid.write('Mesh.Algorithm = 1\n')
++	fid.write('Mesh.Algorithm = 1;\n')
+ 	if options.exist('refine'):
+-		fid.write('Mesh.Algorithm = 7\n')
+-		fid.write('Mesh.CharacteristicLengthFromPoints= 0\n')
+-		fid.write('Mesh.SmoothRatio= 3\n')
+-		fid.write('Mesh.RemeshAlgorithm= 1\n')
+-	fid.write('resolution=#g\n',resolution)
+-	fid.write('radius=#g\n',radius)
+-	fid.write('Point(1) = [0.0,0.0,0.0,resolution]\n')
+-	fid.write('Point(2) = [radius,0.0,0.0,resolution]\n')
+-	fid.write('Point(3) = [0,radius,0.0,resolution]\n')
+-	fid.write('Circle(1) = [2,1,3]\n')
+-	fid.write('Point(4) = [-radius,0,0.0,resolution]\n')
+-	fid.write('Point(5) = [0,-radius,0.0,resolution]\n')
+-	fid.write('Circle(2) = [3,1,4]\n')
+-	fid.write('Circle(3) = [4,1,5]\n')
+-	fid.write('Circle(4) = [5,1,2]\n')
+-	fid.write('Point(6) = [0,0,-radius,resolution]\n')
+-	fid.write('Point(7) = [0,0,radius,resolution]\n')
+-	fid.write('Circle(5) = [3,1,6]\n')
+-	fid.write('Circle(6) = [6,1,5]\n')
+-	fid.write('Circle(7) = [5,1,7]\n')
+-	fid.write('Circle(8) = [7,1,3]\n')
+-	fid.write('Circle(9) = [2,1,7]\n')
+-	fid.write('Circle(10) = [7,1,4]\n')
+-	fid.write('Circle(11) = [4,1,6]\n')
+-	fid.write('Circle(12) = [6,1,2]\n')
+-	fid.write('Line Loop(13) = [2,8,-10]\n')
+-	fid.write('Ruled Surface(14) = [13]\n')
+-	fid.write('Line Loop(15) = [10,3,7]\n')
+-	fid.write('Ruled Surface(16) = [15]\n')
+-	fid.write('Line Loop(17) = [-8,-9,1]\n')
+-	fid.write('Ruled Surface(18) = [17]\n')
+-	fid.write('Line Loop(19) = [-11,-2,5]\n')
+-	fid.write('Ruled Surface(20) = [19]\n')
+-	fid.write('Line Loop(21) = [-5,-12,-1]\n')
+-	fid.write('Ruled Surface(22) = [21]\n')
+-	fid.write('Line Loop(23) = [-3,11,6]\n')
+-	fid.write('Ruled Surface(24) = [23]\n')
+-	fid.write('Line Loop(25) = [-7,4,9]\n')
+-	fid.write('Ruled Surface(26) = [25]\n')
+-	fid.write('Line Loop(27) = [-4,12,-6]\n')
+-	fid.write('Ruled Surface(28) = [27]\n')
+-	fid.write('Surface Loop(29) = [28,26,16,14,20,24,22,18]\n')
+-	fid.write('Volume(30) = [29]\n')
+-	fid.write('Physical Surface(1) = [28,26,16,14,20,24,22,18]\n')
+-	fid.write('Physical Volume(2) = 30\n')
++		fid.write('Mesh.Algorithm = 7;\n')
++		fid.write('Mesh.CharacteristicLengthFromPoints= 0;\n')
++		fid.write('Mesh.SmoothRatio= 3;\n')
++		fid.write('Mesh.RemeshAlgorithm= 1;\n')
++	fid.write('resolution=%g;\n'%resolution)
++	fid.write('radius=%g;\n'%radius)
++	fid.write('Point(1) = [0.0,0.0,0.0,resolution];\n')
++	fid.write('Point(2) = [radius,0.0,0.0,resolution];\n')
++	fid.write('Point(3) = [0,radius,0.0,resolution];\n')
++	fid.write('Circle(1) = [2,1,3];\n')
++	fid.write('Point(4) = [-radius,0,0.0,resolution];\n')
++	fid.write('Point(5) = [0,-radius,0.0,resolution];\n')
++	fid.write('Circle(2) = [3,1,4];\n')
++	fid.write('Circle(3) = [4,1,5];\n')
++	fid.write('Circle(4) = [5,1,2];\n')
++	fid.write('Point(6) = [0,0,-radius,resolution];\n')
++	fid.write('Point(7) = [0,0,radius,resolution];\n')
++	fid.write('Circle(5) = [3,1,6];\n')
++	fid.write('Circle(6) = [6,1,5];\n')
++	fid.write('Circle(7) = [5,1,7];\n')
++	fid.write('Circle(8) = [7,1,3];\n')
++	fid.write('Circle(9) = [2,1,7];\n')
++	fid.write('Circle(10) = [7,1,4];\n')
++	fid.write('Circle(11) = [4,1,6];\n')
++	fid.write('Circle(12) = [6,1,2];\n')
++	fid.write('Line Loop(13) = [2,8,-10];\n')
++	fid.write('Ruled Surface(14) = [13];\n')
++	fid.write('Line Loop(15) = [10,3,7];\n')
++	fid.write('Ruled Surface(16) = [15];\n')
++	fid.write('Line Loop(17) = [-8,-9,1];\n')
++	fid.write('Ruled Surface(18) = [17];\n')
++	fid.write('Line Loop(19) = [-11,-2,5];\n')
++	fid.write('Ruled Surface(20) = [19];\n')
++	fid.write('Line Loop(21) = [-5,-12,-1];\n')
++	fid.write('Ruled Surface(22) = [21];\n')
++	fid.write('Line Loop(23) = [-3,11,6];\n')
++	fid.write('Ruled Surface(24) = [23];\n')
++	fid.write('Line Loop(25) = [-7,4,9];\n')
++	fid.write('Ruled Surface(26) = [25];\n')
++	fid.write('Line Loop(27) = [-4,12,-6];\n')
++	fid.write('Ruled Surface(28) = [27];\n')
++	fid.write('Surface Loop(29) = [28,26,16,14,20,24,22,18];\n')
++	fid.write('Volume(30) = [29];\n')
++	fid.write('Physical Surface(1) = [28,26,16,14,20,24,22,18];\n')
++	fid.write('Physical Volume(2) = 30;\n')
+ 	fid.close()
+ 	#}}}
+ 
+@@ -91,62 +92,62 @@
+ 		#create .pos file with existing mesh and refining metric:  {{{
+ 		fid=open('sphere.pos','w')
+ 
+-		fid.write('View "background mesh" [\n')
++		fid.write('View "background mesh" [;\n')
+ 		for i in range(meshini.numberofelements):
+-			fid.write('ST(#g,#g,#g,#g,#g,#g,#g,#g,#g)[#g,#g,#g]\n',\
++			fid.write('ST(%g,%g,%g,%g,%g,%g,%g,%g,%g)[%g,%g,%g];\n',\
+ 			meshini.x(meshini.elements(i,0)), meshini.y(meshini.elements(i,0)), meshini.z(meshini.elements(i,0)),\
+ 			meshini.x(meshini.elements(i,1)), meshini.y(meshini.elements(i,1)), meshini.z(meshini.elements(i,1)),\
+ 			meshini.x(meshini.elements(i,2)), meshini.y(meshini.elements(i,2)), meshini.z(meshini.elements(i,2)),\
+ 			metric(meshini.elements(i,0)), metric(meshini.elements(i,1)), metric(meshini.elements(i,2))\
+ 			)
+-		fid.write(']\n')
++		fid.write('];\n')
+ 		
+ 		fid.close()
+ 		# }}}
+ 
+ 	#call gmsh
+ 	if options.exist('refine'):
+-		eval(['!gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos'])
++		eval('!gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos')
+ 	else:
+ 		#call gmsh
+-		eval(['!gmsh -tol 1e-8 -2 sphere.geo'])
++		eval('!gmsh -tol 1e-8 -2 sphere.geo')
+ 
+ 	#import mesh:  {{{
+ 	fid=open('sphere.msh','r')
+ 
+ 	#Get Mesh format
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$MeshFormat'):
+ 		raise RuntimeError(['Expecting $MeshFormat (', A, ')'])
+ 
+-	A=fscanf(fid,'#f #i #i',[1, 3])
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%f %i %i',[1, 3])
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$EndMeshFormat'):
+ 		raise RuntimeError(['Expecting $EndMeshFormat (', A, ')'])
+ 
+ 	#Nodes
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$Nodes'):
+ 		raise RuntimeError(['Expecting $Nodes (', A, ')'])
+ 
+-	mesh.numberofvertices=fscanf(fid,'#i',1)
+-	A=fscanf(fid,'#i #f #f #f',[4, mesh.numberofvertices])
++	mesh.numberofvertices=fscanf(fid,'%i',1)
++	A=fscanf(fid,'%i %f %f %f',[4, mesh.numberofvertices])
+ 	mesh.x = transpose(A[1,:])
+ 	mesh.y = transpose(A[2,:])
+ 	mesh.z = transpose(A[3,:])
+ 
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$EndNodes'):
+ 		raise RuntimeError(['Expecting $EndNodes (', A, ')'])
+ 
+ 	#Elements
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$Elements'):
+ 		raise RuntimeError(['Expecting $Elements (', A, ')'])
+-	mesh.numberofelements=fscanf(fid,'#i',1)
+-	A=fscanf(fid,'#i #i #i #i #i #i #i #i',[8, mesh.numberofelements])
++	mesh.numberofelements=fscanf(fid,'%i',1)
++	A=fscanf(fid,'%i %i %i %i %i %i %i %i',[8, mesh.numberofelements])
+ 	mesh.elements=transpose(A[6:8,:]) 
+-	A=fscanf(fid,'#s',1)
++	A=fscanf(fid,'%s',1)
+ 	if not strcmp(A,'$EndElements'):
+ 		raise RuntimeError(['Expecting $EndElements (', A, ')'])
+ 	fid.close() 
+@@ -158,7 +159,7 @@
+ 	mesh.long = atan2(mesh.y,mesh.x)/pi*180
+ 
+ 	#erase files: 
+-	eval(['!rm -rf sphere.geo sphere.msh sphere.pos'])
++	eval('!rm -rf sphere.geo sphere.msh sphere.pos')
+ 
+ 
+ 	#return mesh: 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20177-20178.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20177-20178.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20177-20178.diff	(revision 20498)
@@ -0,0 +1,103 @@
+Index: ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m	(revision 20177)
++++ ../trunk-jpl/src/m/exp/exp_to_levelsetfunction.m	(revision 20178)
+@@ -1,44 +0,0 @@
+-function lsf=exp_to_levelsetfunction(md, exp_icedomain)
+-	% EXP_TO_LEVELSETFUNCTION: compute signed distance function from exp-file for use with level-set method
+-	% USAGE: lsf=exp_to_levelsetfunction(md, exp_icedomain)
+-
+-	mesh=md.mesh;
+-	% convert exp_icedomain to xy array
+-	profiles=expread(exp_icedomain);
+-
+-	min_dist=NaN(size(mesh.x));
+-	for p=1:size(profiles,2)
+-		profile=profiles(p);
+-
+-		%construct ice domain segments
+-		inds_v=1:profile.nods-1;
+-		inds_w=2:profile.nods;
+-		segments.v.x=profile.x(inds_v);	segments.v.y=profile.y(inds_v);
+-		segments.w.x=profile.x(inds_w);	segments.w.y=profile.y(inds_w);
+-		segments.numsegments=length(segments.v.x);
+-
+-		% compute minimum distance to segments
+-		for s=1:segments.numsegments
+-			segment.v.x=segments.v.x(s);	segment.v.y=segments.v.y(s);
+-			segment.w.x=segments.w.x(s);	segment.w.y=segments.w.y(s);
+-			min_dist=min(min_dist, compute_distance_to_segment(segment, mesh.x, mesh.y));
+-		end
+-	end
+-
+-	% set sign of lsf
+-	sign_lsf=ones(mesh.numberofvertices,1);
+-	isice=ContourToMesh(mesh.elements,mesh.x,mesh.y,exp_icedomain,'node',2);
+-	sign_lsf(find(isice))=-1;
+-
+-	lsf=sign_lsf.*min_dist;
+-
+-	function dist=compute_distance_to_segment(segment,x,y)
+-		%compute horizontal euclidean distance to segment
+-		v=[segment.v.x segment.v.y];
+-		w=[segment.w.x segment.w.y];
+-		verts=[x y];
+-		t=[x-v(1) y-v(2)]*(w-v)'/norm(w-v)^2; %projection of verts on line defined by v and w
+-		dist_vec=(ones(length(x),1)*v+max(0,min(1,t))*(w-v))-verts; %vector of shortest distance between verts and segment v-w
+-		dist=sqrt(sum(abs(dist_vec).^2,2));
+-	end
+-end
+Index: ../trunk-jpl/src/m/exp/exp2levelsetfunction.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exp2levelsetfunction.m	(revision 0)
++++ ../trunk-jpl/src/m/exp/exp2levelsetfunction.m	(revision 20178)
+@@ -0,0 +1,49 @@
++function lsf=exp2levelsetfunction(md, exp_icedomain)
++	%EXP2LEVELSETFUNCTION: returns signed distance function from EXP-file
++	%
++	%   This routine computes a signed distance function from an EXP-file given in the input.
++	%   It can be used with the level-set method.
++	%
++	%   USAGE:
++	%      levelsetfunction=exp2levelsetfunction(md, exp_icedomain)
++	%
++
++	mesh=md.mesh;
++	profiles=expread(exp_icedomain);
++
++	min_dist=NaN(size(mesh.x));
++	for p=1:size(profiles,2)
++		profile=profiles(p);
++
++		%construct ice domain segments
++		inds_v=1:profile.nods-1;
++		inds_w=2:profile.nods;
++		segments.v.x=profile.x(inds_v);	segments.v.y=profile.y(inds_v);
++		segments.w.x=profile.x(inds_w);	segments.w.y=profile.y(inds_w);
++		segments.numsegments=length(segments.v.x);
++
++		% compute minimum distance to segments
++		for s=1:segments.numsegments
++			segment.v.x=segments.v.x(s);	segment.v.y=segments.v.y(s);
++			segment.w.x=segments.w.x(s);	segment.w.y=segments.w.y(s);
++			min_dist=min(min_dist, compute_distance_to_segment(segment, mesh.x, mesh.y));
++		end
++	end
++
++	% set sign of lsf
++	sign_lsf=ones(mesh.numberofvertices,1);
++	isice=ContourToMesh(mesh.elements,mesh.x,mesh.y,exp_icedomain,'node',2);
++	sign_lsf(find(isice))=-1;
++
++	lsf=sign_lsf.*min_dist;
++
++	function dist=compute_distance_to_segment(segment,x,y)
++		%compute horizontal euclidean distance to segment
++		v=[segment.v.x segment.v.y];
++		w=[segment.w.x segment.w.y];
++		verts=[x y];
++		t=[x-v(1) y-v(2)]*(w-v)'/norm(w-v)^2; %projection of verts on line defined by v and w
++		dist_vec=(ones(length(x),1)*v+max(0,min(1,t))*(w-v))-verts; %vector of shortest distance between verts and segment v-w
++		dist=sqrt(sum(abs(dist_vec).^2,2));
++	end
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20178-20179.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20178-20179.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20178-20179.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/exp/exp2levelsetfunction.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exp2levelsetfunction.m	(revision 20178)
++++ ../trunk-jpl/src/m/exp/exp2levelsetfunction.m	(revision 20179)
+@@ -42,7 +42,9 @@
+ 		v=[segment.v.x segment.v.y];
+ 		w=[segment.w.x segment.w.y];
+ 		verts=[x y];
+-		t=[x-v(1) y-v(2)]*(w-v)'/norm(w-v)^2; %projection of verts on line defined by v and w
++		dist_vw2=norm(w-v)^2;
++		if(dist_vw2==0.),	t=zeros(size(x)); %cover case where segment has length 0
++		else t=[x-v(1) y-v(2)]*(w-v)'/dist_vw2; end %projection of verts on line defined by v and w
+ 		dist_vec=(ones(length(x),1)*v+max(0,min(1,t))*(w-v))-verts; %vector of shortest distance between verts and segment v-w
+ 		dist=sqrt(sum(abs(dist_vec).^2,2));
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20179-20180.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20179-20180.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20179-20180.diff	(revision 20498)
@@ -0,0 +1,148 @@
+Index: ../trunk-jpl/src/m/exp/exp_to_levelset.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/exp_to_levelset.m	(revision 20179)
++++ ../trunk-jpl/src/m/exp/exp_to_levelset.m	(revision 20180)
+@@ -1,143 +0,0 @@
+-function  levelset=exp_to_levelset(md,contourname)
+-%EXP_TO_LEVELSET - from an exp contour file, build a levelset which has positive sign inside the contour, and negative outside.
+-%
+-%   Usage:
+-%      levelset=exp_to_levelset(md,contourname)
+-%
+-%   Where: 
+-%      - 'md'     : model specifying the mesh
+-%      - 'contourname'  : exp file which defines the closed contour
+-%      - 'levelset'  : levelset vector on each vertex of the mesh, size md.mesh.numberofvertices
+-%
+-%   Example:
+-%      level=exp_to_levelset(md,'DomainOutline.exp');
+-%
+-%   See also MESHPROFILEINTERSECTION, SHPREAD, EXPREAD
+-	
+-	tolerance=1e-5; %tolerance level used for detection of edges, points coinciding, etc ...
+-		
+-	%from exp contour, build list of segments throughout our mesh:
+-	segments=MeshProfileIntersection(md.mesh.elements,md.mesh.x,md.mesh.y,contourname);
+-
+-	%cleanup: remove 0 length segments: 
+-	cleanup=1;
+-	if cleanup,
+-		flags=zeros(size(segments,1),1);
+-		for j=1:size(segments,1),
+-			segment=segments(j,:);
+-			x1=segment(1); x2=segment(3); 
+-			y1=segment(2); y2=segment(4); 
+-			Q1=[x1;y1];Q2=[x2;y2];
+-			if norm(Q2-Q1)==0, 
+-				flags(j)=1;
+-			end
+-		end
+-		pos=find(flags);
+-		segments(pos,:)=[];
+-	end
+-
+-	%simplify segments. levelsets are P1 through our triangular elements, which means we can only have one segment per element. 
+-	%We simplify by merging all segments into one for each element.
+-	simplify=1;
+-	if simplify,
+-		ids=unique(segments(:,5));
+-		newsegs=zeros(length(ids),5);
+-		newsegs(:,5)=ids;
+-		for j=1:length(ids),
+-			pos=find(segments(:,5)==ids(j));
+-			segs=segments(pos,1:4);
+-			count=0;
+-			while(size(segs,1)>1),
+-				count=count+1;
+-				if count>10,
+-					%keep first segment cause something funky in the configuration is happening.
+-					segs=segs(1,:);
+-					break;
+-				end
+-				if (abs(segs(1,3)-segs(2,1))<tolerance & abs(segs(1,4)-segs(2,2))<tolerance),
+-					%the second segment disappears, extending the first segment:
+-					if size(segs,1)==2,
+-						segs=[segs(1,1) segs(1,2) segs(2,3) segs(2,4)];
+-					else
+-						segs=[segs(1,1), segs(1,2), segs(2,3), segs(2,4); segs(3:end,:)];
+-					end
+-				else
+-					%put the first segment at the end
+-					segs=[segs(2:end,:); segs(1,:)];
+-				end
+-			end
+-			newsegs(j,1:4)=segs;
+-		end
+-		segments=newsegs;
+-	end
+-
+-	%cleanup: remove 0 length segments: 
+-	if cleanup,
+-		flags=zeros(size(segments,1),1);
+-		for j=1:size(segments,1),
+-			segment=segments(j,:);
+-			x1=segment(1); x2=segment(3); 
+-			y1=segment(2); y2=segment(4); 
+-			Q1=[x1;y1];Q2=[x2;y2];
+-			if norm(Q2-Q1)<tolerance,
+-				flags(j)=1;
+-			end
+-		end
+-		pos=find(flags);
+-		segments(pos,:)=[];
+-	end
+-
+-	%now, using the segments, create level set flags on each element that touches the segment.
+-	distance=zeros(md.mesh.numberofvertices,1);
+-	flags=zeros(md.mesh.numberofvertices,1);
+-	for j=1:size(segments,1),
+-		segment=segments(j,:);
+-		id=segment(5);
+-		x1=segment(1); x2=segment(3); 
+-		y1=segment(2); y2=segment(4); 
+-		for k=1:3,
+-			node=md.mesh.elements(id,k);
+-			xk=md.mesh.x(node); yk=md.mesh.y(node);
+-			
+-			%on which side of the segment is this node k? 
+-			P=[xk;yk]; Q1=[x1;y1];Q2=[x2;y2];
+-			d=(det([Q2-Q1,P-Q1]))/norm(Q2-Q1);
+-			if(~flags(node)),
+-				distance(node)=d;
+-				flags(node)=1;
+-			end
+-		end
+-	end
+-		
+-	%now go through all the other nodes and complete (similar to phase unwrapping: we march through the domain, and each time we 
+-	%are connected to a node which has a levelset value, we adopt the same one.
+-	complete=1;
+-	if complete,
+-		while(length(find(flags==0))),
+-			sumf=sum(flags(md.mesh.elements),2);
+-			pos=find(sumf==2);
+-			if ~isempty(pos),
+-				for j=1:length(pos),
+-					el=pos(j);
+-					f=flags(md.mesh.elements(el,:));
+-					ids=find(f==1); 
+-					d=distance(md.mesh.elements(el,ids));
+-					if d(1)*d(2)<0,
+-						%we have hit a snag here, can't decide!
+-						continue;
+-					else
+-						d=d(1);
+-					end
+-					if abs(d)<tolerance,
+-						continue;
+-					end
+-					ids=find(f==0);
+-					if ~isempty(ids),
+-						flags(md.mesh.elements(el,ids))=1;
+-						distance(md.mesh.elements(el,ids))=d;
+-					end
+-				end
+-			end
+-		end
+-	end
+-	levelset=distance;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20180-20181.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20180-20181.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20180-20181.diff	(revision 20498)
@@ -0,0 +1,261 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/love_numbers.m
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/love_numbers.m	(revision 20180)
++++ ../trunk-jpl/src/m/boundaryconditions/love_numbers.m	(revision 20181)
+@@ -16,7 +16,8 @@
+ 	end
+ 
+ 	love_numbers=[...
+-	-0.28740059 -0.00000000 0.10141481 1.28740059 0.42519882 0.89858519 0.00000000;
++     0           0          0          0          0          0          0 
++	-1.28740059	-1.00000000	-0.89858519 1.28740059 0.42519882 0.89858519 0.00000000
+ 	-1.00025365 -0.30922675 0.02060926 1.69102690 0.46358648 0.67016399 0.61829668;
+ 	-1.06243501 -0.19927948 0.06801636 1.86315553 0.55741597 0.73270416 0.56270589;
+ 	-1.06779588 -0.13649834 0.05667027 1.93129754 0.63672498 0.80683140 0.51132745;
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20180)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20181)
+@@ -119,13 +119,13 @@
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+-			writejs1Darray(fid,[modelname '.srl.deltathickness'],self.deltathickness);
+-			writejs1Darray(fid,[modelname '.srl.sealevel'],self.sealevel);
++			writejs1Darray(fid,[modelname '.slr.deltathickness'],self.deltathickness);
++			writejs1Darray(fid,[modelname '.slr.sealevel'],self.sealevel);
+ 			writejsdouble(fid,[modelname '.slr.reltol'],self.reltol);
+ 			writejsdouble(fid,[modelname '.slr.abstol'],self.abstol);
+ 			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+-			writejs1Darray(fid,[modelname '.srl.love_h'],self.love_h);
+-			writejs1Darray(fid,[modelname '.srl.love_k'],self.love_k);
++			writejs1Darray(fid,[modelname '.slr.love_h'],self.love_h);
++			writejs1Darray(fid,[modelname '.slr.love_k'],self.love_k);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
+ 			writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20180)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20181)
+@@ -80,5 +80,13 @@
+ 			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
++			writejs2Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
++			writejs2Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);
++			writejs2Darray(fid,[modelname '.mask.land_levelset'],self.land_levelset);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20180)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20181)
+@@ -165,5 +165,28 @@
+ 			y        = self.y;
+ 			z        = self.z;
+ 		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejs1Darray(fid,[modelname '.mesh.x'],self.x);
++			writejs1Darray(fid,[modelname '.mesh.y'],self.y);
++			writejs1Darray(fid,[modelname '.mesh.z'],self.z);
++			writejs2Darray(fid,[modelname '.mesh.elements'],self.elements);
++			writejsdouble(fid,[modelname '.mesh.numberofelements'],self.numberofelements);
++			writejsdouble(fid,[modelname '.mesh.numberofvertices'],self.numberofvertices);
++			writejsdouble(fid,[modelname '.mesh.numberofedges'],self.numberofedges);
++			writejs1Darray(fid,[modelname '.mesh.lat'],self.lat);
++			writejs1Darray(fid,[modelname '.mesh.long'],self.long);
++			writejs1Darray(fid,[modelname '.mesh.r'],self.r);
++			writejs1Darray(fid,[modelname '.mesh.vertexonboundary'],self.vertexonboundary);
++			writejs2Darray(fid,[modelname '.mesh.edges'],self.edges);
++			writejs2Darray(fid,[modelname '.mesh.segments'],self.segments);
++			writejs2Darray(fid,[modelname '.mesh.segmentmarkers'],self.segmentmarkers);
++			writejs2Darray(fid,[modelname '.mesh.vertexconnectivity'],self.vertexconnectivity);
++			writejs2Darray(fid,[modelname '.mesh.elementconnectivity'],self.elementconnectivity);
++			writejsdouble(fid,[modelname '.mesh.average_vertex_connectivity'],self.average_vertex_connectivity);
++			writejs1Darray(fid,[modelname '.mesh.extractedvertices'],self.extractedvertices);
++			writejs1Darray(fid,[modelname '.mesh.extractedelements'],self.extractedelements);
++
++		end % }}}
+ 	end
+ end
+Index: ../trunk-jpl/src/m/classes/slr.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/slr.js	(revision 20181)
+@@ -0,0 +1,129 @@
++//SLR class definition
++//
++//   Usage:
++//      slr=slr();
++
++function slr(){
++	//methods
++		this.setdefaultparameters = function (){ //{{{
++		
++		//Convergence criterion: absolute, relative and residual
++		this.reltol=NaN; //default
++		this.abstol=0.001; //1 mm of sea level rise
++
++		//maximum of non-linear iterations.
++		this.maxiter=10;
++
++		//computational flags: 
++		this.rigid=1;
++		this.elastic=1;
++		this.eustatic=1;
++
++		//numerical discretization accuracy
++		this.degacc=.01;
++		
++		//output default:
++		this.requested_outputs=['default'];
++
++		//transitions should be a cell array of vectors: 
++		this.transitions=[];
++		
++		}// }}}
++		this.checkconsistency = function(md,solution,analyses) { //{{{
++
++			//Early return
++			if(ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),0))return;
++			
++			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.reltol','size',[1, 1]);
++			md = checkfield(md,'fieldname','slr.abstol','size',[1, 1]);
++			md = checkfield(md,'fieldname','slr.maxiter','size',[1, 1],'>=',1);
++			md = checkfield(md,'fieldname','slr.degacc','size',[1, 1],'>=',1e-10);
++			md = checkfield(md,'fieldname','slr.requested_outputs','stringrow',1);
++			
++			//check that love numbers are provided at the same level of accuracy: 
++			if (this.love_h.length != this.love_k.length){
++				throw Error('slr error message: love numbers should be provided at the same level of accuracy');
++			}
++
++		} // }}}
++		this.defaultoutputs = function(md){ // {{{
++			return ['Sealevel'];
++		}//}}}
++		this.disp= function(){// {{{
++			
++		console.log(sprintf('   Sealevelrise solution parameters:'));
++
++		fielddisplay(this,'deltathickness','thickness change (main loading of the slr solution core [m]');
++		fielddisplay(this,'sealevel','current sea level (prior to computation) [m]');
++		fielddisplay(this,'reltol','sea level rise relative convergence criterion, (default, NaN: not applied)');
++		fielddisplay(this,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
++		fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
++		fielddisplay(this,'love_h','love load number for radial displacement');
++		fielddisplay(this,'love_k','love load number for gravitational potential perturbation');
++		fielddisplay(this,'rigid','rigid earth graviational potential perturbation');
++		fielddisplay(this,'elastic','elastic earth graviational potential perturbation');
++		fielddisplay(this,'eustatic','eustatic sea level rise');
++		fielddisplay(this,'degacc',"accuracy (default .01 deg) for numerical discretization of the Green's functions");
++		fielddisplay(this,'transitions','indices into parts of the mesh that will be icecaps');
++		fielddisplay(this,'requested_outputs','additional outputs requested');
++		} //}}}
++			this.marshall=function(md,fid) { //{{{
++
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
++			WriteData(fid,'data',this.sealevel,'mattype',1,'format','DoubleMat','enum',SealevelEnum(),'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','reltol','format','Double');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','abstol','format','Double');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','maxiter','format','Integer');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','rigid','format','Boolean');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','elastic','format','Boolean');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','degacc','format','Double');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','transitions','format','MatArray');
++			
++			//process requested outputs
++			var outputs = this.requested_outputs;
++			for (var i=0;i<outputs.length;i++){
++				if (outputs[i] == 'default') {
++					outputs.splice(i,1);
++					var newoutputs=this.defaultoutputs(md);
++					for (var j=0;j<newoutputs.length;j++) outputs.push(newoutputs[j]);
++				}
++			}
++			WriteData(fid,'data',outputs,'enum',SealevelriseRequestedOutputsEnum(),'format','StringArray');
++		}//}}}
++		this.fix=function() { //{{{
++			this.deltathickness=NullFix(this.deltathickness,NaN);
++			this.sealevel=NullFix(this.sealevel,NaN);
++			this.maxiter=NullFix(this.maxiter,NaN);
++			this.reltol=NullFix(this.reltol,NaN);
++			this.abstol=NullFix(this.abstol,NaN);
++			this.love_h=NullFix(this.love_h,NaN);
++			this.love_k=NullFix(this.love_k,NaN);
++			this.rigid=NullFix(this.rigid,NaN);
++			this.elastic=NullFix(this.elastic,NaN);
++			this.eustatic=NullFix(this.eustatic,NaN);
++			this.degacc=NullFix(this.degacc,NaN);
++		}//}}}
++	//properties
++	//{{{
++	deltathickness = NaN;
++	sealevel       = NaN; 
++	maxiter        = 0;
++	reltol         = 0;
++	abstol         = 0;
++	love_h         = 0; //provided by PREM model
++	love_k         = 0; //ideam
++	rigid          = 0;
++	elastic        = 0;
++	eustatic       = 0;
++	degacc         = 0;
++	requested_outputs = [];
++	transitions    = [];
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 20180)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 20181)
+@@ -20,6 +20,7 @@
+ 			console.log(sprintf("%19s: %-22s -- %s","timestepping"    ,"[1x1 " + typeof(this.timestepping) + "]","time stepping for trans models"));
+ 			console.log(sprintf("%19s: %-22s -- %s","initialization"  ,"[1x1 " + typeof(this.initialization) + "]","initial guess/state"));
+ 			console.log(sprintf("%19s: %-22s -- %s","rifts"           ,"[1x1 " + typeof(this.rifts) + "]","rifts properties"));
++			console.log(sprintf("%19s: %-22s -- %s","slr"             ,"[1x1 " + typeof(this.slr) + "]","slr forcings"));
+ 			console.log(sprintf("%19s: %-22s -- %s","debug"           ,"[1x1 " + typeof(this.debug) + "]","debugging tools (valgrind, gprof)"));
+ 			console.log(sprintf("%19s: %-22s -- %s","verbose"         ,"[1x1 " + typeof(this.verbose) + "]","verbosity level in solve"));
+ 			console.log(sprintf("%19s: %-22s -- %s","settings"        ,"[1x1 " + typeof(this.settings) + "]","settings properties"));
+@@ -56,6 +57,7 @@
+ 			this.basalforcings    = new basalforcings();
+ 			this.friction         = new friction();
+ 			this.rifts            = new rifts();
++			this.slr              = new slr();
+ 			this.timestepping     = new timestepping();
+ 			this.groundingline    = new groundingline();
+ 			this.materials        = new matice();
+@@ -123,6 +125,7 @@
+ 		this.timestepping     = 0;
+ 		this.initialization   = 0;
+ 		this.rifts            = 0;
++		this.slr              = 0;
+ 
+ 		this.debug            = 0;
+ 		this.verbose          = 0;
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20180)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20181)
+@@ -118,6 +118,7 @@
+ 				${ISSM_DIR}/src/m/classes/qmu.js \
+ 				${ISSM_DIR}/src/m/classes/radaroverlay.js \
+ 				${ISSM_DIR}/src/m/classes/rifts.js \
++				${ISSM_DIR}/src/m/classes/slr.js \
+ 				${ISSM_DIR}/src/m/classes/settings.js \
+ 				${ISSM_DIR}/src/m/classes/SMBforcing.js \
+ 				${ISSM_DIR}/src/m/classes/steadystate.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20181-20182.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20181-20182.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20181-20182.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/test/NightlyRun/runme.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.m	(revision 20181)
++++ ../trunk-jpl/test/NightlyRun/runme.m	(revision 20182)
+@@ -117,7 +117,7 @@
+ elseif strcmpi(benchmark,'referential'),
+ 	test_ids=intersect(test_ids,[1601:1602]);
+ elseif strcmpi(benchmark,'slr'),
+-	test_ids=intersect(test_ids,[2001:2100]);
++	test_ids=intersect(test_ids,[2001:2500]);
+ elseif strcmpi(benchmark,'adolc'),
+ 	test_ids=intersect(test_ids,[3001:3200]);
+ elseif strcmpi(benchmark,'qmu'),
+Index: ../trunk-jpl/test/NightlyRun/test2424.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2424.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test2424.m	(revision 20182)
+@@ -0,0 +1,38 @@
++%Test Name: SquareSheetShelfGroundingLine2dAggressive. From test424, with sea level increasing.
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'../Exp/SquareShelf.exp','');
++md=parameterize(md,'../Par/SquareSheetShelf.par');
++md=setflowequation(md,'SSA','all');
++md.initialization.vx(:)=0.;
++md.initialization.vy(:)=0.;
++md.smb.mass_balance(:)=0.;
++
++md.geometry.base=-700.-abs(md.mesh.y-500000.)/1000.;
++md.geometry.bed =-700.-abs(md.mesh.y-500000.)/1000.;
++md.geometry.thickness(:)=1000.;
++md.geometry.surface=md.geometry.base+md.geometry.thickness;
++
++md.transient.isstressbalance=0;
++md.transient.isgroundingline=1;
++md.transient.isthermal=0;
++md.groundingline.migration='AggressiveMigration';
++md.transient.requested_outputs={'IceVolume','IceVolumeAboveFloatation','Sealevel'};
++
++md.timestepping.time_step=.1;
++md.slr.sealevel=newforcing(md.timestepping.start_time, md.timestepping.final_time, md.timestepping.time_step,-200,200,md.mesh.numberofvertices);
++
++md.cluster=generic('name',oshostname(),'np',3);
++md=solve(md,TransientSolutionEnum());
++
++%we are checking that the grounding line position is near the theorical one, which is the 0 contour level 
++%of surface - sealevel - (1-di)* thickness; 
++
++nsteps=length(md.results.TransientSolution);
++field_names={};
++field_tolerances={};
++field_values={};
++for i=1:nsteps,
++	field_names{end+1}=sprintf('Time-%g-yr-ice_levelset-S-sl-(1-di)*H',md.results.TransientSolution(i).time);
++	field_tolerances{end+1}=1e-13;
++	field_values{end+1}= md.results.TransientSolution(i).MaskGroundediceLevelset- (md.geometry.surface-md.results.TransientSolution(i).Sealevel-(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness);
++end
+Index: ../trunk-jpl/test/NightlyRun/runme.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.py	(revision 20181)
++++ ../trunk-jpl/test/NightlyRun/runme.py	(revision 20182)
+@@ -116,7 +116,7 @@
+ 	elif strcmpi(benchmark,'referential'):
+ 		test_ids=test_ids.intersection(set(range(1601,1603)))
+ 	elif strcmpi(benchmark,'slr'):
+-		test_ids=test_ids.intersection(set(range(2001,2100)))
++		test_ids=test_ids.intersection(set(range(2001,2500)))
+ 	elif strcmpi(benchmark,'adolc'):
+ 		test_ids=test_ids.intersection(set(range(3001,3200)))
+ 	#print 'test_ids after benchmark =',test_ids
Index: /issm/oecreview/Archive/19101-20495/ISSM-20182-20183.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20182-20183.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20182-20183.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/test/Archives/Archive2424.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive2424.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20183-20184.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20183-20184.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20183-20184.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20183)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20184)
+@@ -18,7 +18,7 @@
+ 		 codepath      = '';
+ 		 executionpath = '';
+ 		 interactive   = 0;
+-		 time          = 24*60*60;
++		 time          = 48*60*60;
+ 		 email         = '';
+ 	 end
+ 	 %}}}
+@@ -48,7 +48,7 @@
+ 			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+ 			 disp(sprintf('    interactive: %i',cluster.interactive));
+ 			 disp(sprintf('    time: %i',cluster.time));
+-			 disp(sprintf('    email: %i',cluster.email));
++			 disp(sprintf('    email: %s',cluster.email));
+ 		 end
+ 		 %}}}
+ 		 function numprocs=np(cluster) % {{{
+@@ -58,11 +58,11 @@
+ 		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+-			 available_queues={'normal'};
+-			 queue_requirements_time=[Inf];
+-			 queue_requirements_np=[Inf];
++			 available_queues={'normal','development'};
++			 queue_requirements_time=[48*60*60 2*60*60];
++			 queue_requirements_np=[171 11];
+ 
+-			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 
+ 			 %Miscelaneous
+ 			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20184-20185.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20184-20185.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20184-20185.diff	(revision 20498)
@@ -0,0 +1,56 @@
+Index: ../trunk-jpl/test/NightlyRun/test2425.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2425.m	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test2425.m	(revision 20185)
+@@ -0,0 +1,41 @@
++%Test Name: SquareSheetShelfGroundingLine2dSoft
++md=triangle(model(),'../Exp/Square.exp',150000.);
++md=setmask(md,'../Exp/SquareShelf.exp','');
++md=parameterize(md,'../Par/SquareSheetShelf.par');
++md=setflowequation(md,'SSA','all');
++md.initialization.vx(:)=0.;
++md.initialization.vy(:)=0.;
++md.geometry.base=-700.-(md.mesh.y-500000.)/1000.;
++md.geometry.bed =-700.-(md.mesh.y-500000.)/1000.;
++md.geometry.thickness(:)=1300.;
++md.geometry.surface=md.geometry.base+md.geometry.thickness;
++md.transient.isstressbalance=1;
++md.transient.isgroundingline=1;
++md.groundingline.migration='AggressiveMigration';
++
++md.timestepping.time_step=.1;
++md.timestepping.final_time=1;
++
++md.cluster=generic('name',oshostname(),'np',3);
++md=solve(md,TransientSolutionEnum());
++vel1=md.results.TransientSolution(end).Vel;
++
++
++%get same results with offset in bed and sea level: 
++md.geometry.base=-700.-(md.mesh.y-500000.)/1000.;
++md.geometry.bed =-700.-(md.mesh.y-500000.)/1000.;
++md.geometry.thickness(:)=1300.;
++md.geometry.surface=md.geometry.base+md.geometry.thickness;
++
++md.geometry.base=md.geometry.base+1000;
++md.geometry.bed=md.geometry.bed+1000;
++md.geometry.surface=md.geometry.surface+1000;
++md.slr.sealevel=1000*ones(md.mesh.numberofvertices,1);
++
++md=solve(md,TransientSolutionEnum(),'checkconsistency','no');
++vel2=md.results.TransientSolution(end).Vel;
++
++%Fields and tolerances to track changes
++field_names     ={'Vel','Veloffset'};
++field_tolerances={1e-13,1e-13};
++field_values={vel1,vel2};
+Index: ../trunk-jpl/test/Archives/Archive2425.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+
+Property changes on: ../trunk-jpl/test/Archives/Archive2425.nc
+___________________________________________________________________
+Added: svn:mime-type
+   + application/octet-stream
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20185-20186.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20185-20186.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20185-20186.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/m/mech/newforcing.m
+===================================================================
+--- ../trunk-jpl/src/m/mech/newforcing.m	(revision 0)
++++ ../trunk-jpl/src/m/mech/newforcing.m	(revision 20186)
+@@ -0,0 +1,35 @@
++function forcing=newforcing(t0,t1,deltaT,f0,f1,nodes)
++%FUNCTION NEWFORCING Build forcing that extends temporally from t0 to t1, and in magnitude from f0 to f1. Equal time 
++%                    and magnitude spacing. 
++%
++%       Usage: forcing=newforcing(t0,t1,deltaT,f0,f1,nodes);  
++%       Where: 
++%          t0:t1: time interval. 
++%          deltaT: time step
++%          f0:f1: magnitude interval.
++%          nodes: number of vertices where we have a temporal forcing
++%
++%       Example: 
++%           md.smb.mass_balance=newforcing(md.timestepping.start_time,md.timestepping.final_time,...
++%                                          md.timestepping.time_step,-1,+2,md.mesh.numberofvertices);
++%
++
++	%some cheks:
++	if nargin~=6, error('newforcing error message: should have 5 input arguments'); end
++
++	%Number of time steps: 
++	nsteps=(t1-t0)/deltaT+1;
++
++	%delta forcing:
++	deltaf=(f1-f0)/(nsteps-1);
++
++	%creates times:
++	times=t0:deltaT:t1;
++
++	%create forcing:
++	forcing=(f0:deltaf:f1);
++
++	%replicate for all nodes
++	forcing=repmat(forcing,nodes+1,1);
++	forcing(end,:)=times;
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-20186-20187.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20186-20187.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20186-20187.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20186)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20187)
+@@ -35,14 +35,6 @@
+ 					${ISSM_DIR}/src/m/plot/*.m \
+ 					${ISSM_DIR}/src/m/plot/colormaps/*.m \
+ 					${ISSM_DIR}/src/m/string/*.m \
+-					${ISSM_DIR}/src/m/contrib/massbalance/*.m \
+-					${ISSM_DIR}/src/m/contrib/ecco/*.m \
+-					${ISSM_DIR}/src/m/contrib/hydrology/*.m \
+-					${ISSM_DIR}/src/m/contrib/hack/*.m \
+-					${ISSM_DIR}/src/m/contrib/gslib/*.m \
+-					${ISSM_DIR}/src/m/contrib/uci/*.m \
+-					${ISSM_DIR}/src/m/contrib/oasis/*.m \
+-					${ISSM_DIR}/src/m/contrib/bamg/*.m \
+ 					${ISSM_DIR}/src/m/extrusion/*.m \
+ 					${ISSM_DIR}/src/m/inversions/*.m \
+ 					${ISSM_DIR}/src/m/io/*.m \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20187-20188.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20187-20188.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20187-20188.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test2424.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2424.m	(revision 20187)
++++ ../trunk-jpl/test/NightlyRun/test2424.m	(revision 20188)
+@@ -33,6 +33,6 @@
+ field_values={};
+ for i=1:nsteps,
+ 	field_names{end+1}=sprintf('Time-%g-yr-ice_levelset-S-sl-(1-di)*H',md.results.TransientSolution(i).time);
+-	field_tolerances{end+1}=1e-13;
++	field_tolerances{end+1}=1e-12;
+ 	field_values{end+1}= md.results.TransientSolution(i).MaskGroundediceLevelset- (md.geometry.surface-md.results.TransientSolution(i).Sealevel-(1-md.materials.rho_ice/md.materials.rho_water)*md.geometry.thickness);
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20188-20189.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20188-20189.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20188-20189.diff	(revision 20498)
@@ -0,0 +1,90 @@
+Index: ../trunk-jpl/src/m/psl/p_polynomial_prime.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/p_polynomial_prime.m	(revision 0)
++++ ../trunk-jpl/src/m/psl/p_polynomial_prime.m	(revision 20189)
+@@ -0,0 +1,85 @@
++function vp = p_polynomial_prime ( m, n, x )
++
++%*****************************************************************************80
++%
++%% P_POLYNOMIAL_PRIME evaluates the derivative of Legendre polynomials P(n,x).
++%
++%  Discussion:
++%
++%    P(0,X) = 1
++%    P(1,X) = X
++%    P(N,X) = ( (2*N-1)*X*P(N-1,X)-(N-1)*P(N-2,X) ) / N
++%
++%    P'(0,X) = 0
++%    P'(1,X) = 1
++%    P'(N,X) = ( (2*N-1)*(P(N-1,X)+X*P'(N-1,X)-(N-1)*P'(N-2,X) ) / N
++%
++%  Licensing:
++%
++%    This code is distributed under the GNU LGPL license. 
++%
++%  Modified:
++%
++%    13 March 2012
++%
++%  Author:
++%
++%    John Burkardt
++%
++%  Reference:
++%
++%    Milton Abramowitz, Irene Stegun,
++%    Handbook of Mathematical Functions,
++%    National Bureau of Standards, 1964,
++%    ISBN: 0-486-61272-4,
++%    LC: QA47.A34.
++%
++%    Daniel Zwillinger, editor,
++%    CRC Standard Mathematical Tables and Formulae,
++%    30th Edition,
++%    CRC Press, 1996.
++%
++%  Parameters:
++%
++%    Input, integer M, the number of evaluation points.
++%
++%    Input, integer N, the highest order polynomial to evaluate.
++%    Note that polynomials 0 through N will be evaluated.
++%
++%    Input, real X(M,1), the evaluation points.
++%
++%    Output, real VP(M,N+1), the values of the derivatives of the
++%    Legendre polynomials of order 0 through N at the point X.
++%
++  if ( n < 0 )
++    vp = [];
++    return
++  end
++
++  v = zeros ( m, n + 1 );
++  vp = zeros ( m, n + 1 );
++
++  v(1:m,1) = 1.0;
++  vp(1:m,1) = 0.0;
++
++  if ( n < 1 )
++    return
++  end
++
++  v(1:m,2) = x(1:m,1);
++  vp(1:m,2) = 1.0;
++ 
++  for i = 2 : n
++ 
++    v(1:m,i+1) = ( ( 2 * i - 1 ) * x(1:m,1) .* v(1:m,i)     ...
++                 - (     i - 1 ) *             v(1:m,i-1) ) ...
++                 / (     i     );
++ 
++    vp(1:m,i+1) = ( ( 2 * i - 1 ) * ( v(1:m,i) + x(1:m,1) .* vp(1:m,i) )   ...
++                  - (     i - 1 ) *                          vp(1:m,i-1) ) ...
++                  / (     i     );
++ 
++  end
++ 
++  return
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20189-20190.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20189-20190.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20189-20190.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive2002.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20190-20191.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20190-20191.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20190-20191.diff	(revision 20498)
@@ -0,0 +1,155 @@
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.js	(revision 20191)
+@@ -0,0 +1,138 @@
++//MESH3DSURFACE class definition
++//
++//   Usage:
++//      mesh3dsurface= new mesh3dsurface();
++
++function mesh3dsurface () {
++	//methods 
++		this.setdefaultparameters = function (){ //{{{
++
++			//the connectivity is the averaged number of nodes linked to a
++			//given node through an edge. This connectivity is used to initially
++			//allocate memory to the stiffness matrix. A value of 16 seems to
++			//give a good memory/time ration. This value can be checked in
++			//trunk/test/Miscellaneous/runme.m
++			this.average_vertex_connectivity=25;
++		}
++		// }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   2D tria Mesh (3D surface):")); 
++
++			console.log(sprintf("\n      Elements and vertices:"));
++			fielddisplay(this,"numberofelements","number of elements");
++			fielddisplay(this,"numberofvertices","number of vertices");
++			fielddisplay(this,"elements","vertex indices of the mesh elements");
++			fielddisplay(this,"x","vertices x coordinate [m]");
++			fielddisplay(this,"y","vertices y coordinate [m]");
++			fielddisplay(this,"z","vertices z coordinate [m]");
++			fielddisplay(this,"edges","edges of the 2d mesh (vertex1 vertex2 element1 element2)");
++			fielddisplay(this,"numberofedges","number of edges of the 2d mesh");
++
++			console.log(sprintf("\n      Properties:"));
++			fielddisplay(this,"vertexonboundary","vertices on the boundary of the domain flag list");
++			fielddisplay(this,"segments","edges on domain boundary (vertex1 vertex2 element)");
++			fielddisplay(this,"segmentmarkers","number associated to each segment");
++			fielddisplay(this,"vertexconnectivity","list of vertices connected to vertex_i");
++			fielddisplay(this,"elementconnectivity","list of vertices connected to element_i");
++			fielddisplay(this,"average_vertex_connectivity","average number of vertices connected to one vertex");
++
++			console.log(sprintf("\n      Extracted model:"));
++			fielddisplay(this,"extractedvertices","vertices extracted from the model");
++			fielddisplay(this,"extractedelements","elements extracted from the model");
++
++			console.log(sprintf("\n      Projection:"));
++			fielddisplay(this,"lat","vertices latitude [degrees]");
++			fielddisplay(this,"long","vertices longitude [degrees]");
++			fielddisplay(this,"r","vertices radius [m]");
++		} //}}}
++		this.classname = function () { //{{{
++			return "mesh3dsurface";
++		} //}}}
++		this.domaintype=function (){ // {{{
++			return '3Dsurface';
++		} // }}}
++		this.dimension = function () { //{{{
++			return 2;
++		} //}}}
++		this.elementtype = function() {//{{{
++			return 'Tria';
++		} // }}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
++
++			checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',NewArrayFillIncrement(md.mesh.numberofvertices,1,1));
++			checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements, 3]);
++			if(ArrayAnyEqual(ArrayIsMember(NewArrayFillIncrement(md.mesh.numberofvertices,1,1),ArraySort(ArrayUnique(MatrixToList(md.mesh.elements)))),0)){
++				md.checkmessage('orphan nodes have been found. Check the mesh outline');
++			}
++			checkfield(md,'fieldname','mesh.numberofelements','>',0);
++			checkfield(md,'fieldname','mesh.numberofvertices','>',0);
++			checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message',"'mesh.average_vertex_connectivity' should be at least 9 in 2d");
++			checkfield(md,'fieldname','mesh.segments','NaN',1,'Inf',1,'>',0,'size',[NaN, 3]);
++
++		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum('Domain' + this.domaintype()),'format','Integer');
++			WriteData(fid,'enum',DomainDimensionEnum(),'data',this.dimension(),'format','Integer');
++			WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(this.elementtype()),'format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','x','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','y','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','z','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','lat','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','long','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','r','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',this,'class','mesh','fieldname','numberofelements','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','numberofvertices','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');
++			WriteData(fid,'object',this,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mesh','fieldname','segments','format','DoubleMat','mattype',3);
++		}//}}}
++		this.fix=function() { //{{{
++			//Transform objects into Float64Arrays:
++			this.x=FloatFix(this.x,this.numberofvertices); 
++			this.y=FloatFix(this.y,this.numberofvertices); 
++			this.z=FloatFix(this.y,this.numberofvertices); 
++			this.r=FloatFix(this.y,this.numberofvertices); 
++			this.edges=NullFix(this.edges,NaN);
++			this.vertexonboundary=FloatFix(this.vertexonboundary,this.numberofvertices); 
++			this.segmentmarkers=FloatFix(this.segmentmarkers,this.segments.length);
++			this.extractedvertices=NullFix(this.extractedvertices,NaN);
++			this.extractedelements=NullFix(this.extractedelements,NaN);
++			this.lat=NullFix(this.lat,NaN);
++			this.long=NullFix(this.long,NaN);
++		}//}}}
++
++	//properties 
++	// {{{
++		this.x                           = NaN;
++		this.y                           = NaN;
++		this.z                           = NaN;
++		this.elements                    = NaN;
++		this.numberofelements            = 0;
++		this.numberofvertices            = 0;
++		this.numberofedges               = 0;
++
++		this.lat                         = NaN;
++		this.long                        = NaN;
++		this.r                           = NaN;
++
++		this.vertexonboundary            = NaN;
++		this.edges                       = NaN;
++		this.segments                    = NaN;
++		this.segmentmarkers              = NaN;
++		this.vertexconnectivity          = NaN;
++		this.elementconnectivity         = NaN;
++		this.average_vertex_connectivity = 0;
++
++		this.extractedvertices           = NaN;
++		this.extractedelements           = NaN;
++
++		this.setdefaultparameters();
++		//}}}
++}
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20190)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20191)
+@@ -101,6 +101,7 @@
+ 				${ISSM_DIR}/src/m/classes/masstransport.js \
+ 				${ISSM_DIR}/src/m/classes/matice.js \
+ 				${ISSM_DIR}/src/m/classes/mesh2d.js \
++				${ISSM_DIR}/src/m/classes/mesh3dsurface.js \
+ 				${ISSM_DIR}/src/m/classes/miscellaneous.js \
+ 				${ISSM_DIR}/src/m/classes/model.js \
+ 				${ISSM_DIR}/src/m/classes/outputdefinition.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20191-20192.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20191-20192.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20191-20192.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/externalpackages/chaco/install-macosx.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/chaco/install-macosx.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/chaco/install-macosx.sh	(revision 20192)
+@@ -0,0 +1,55 @@
++#!/bin/bash
++set -eu
++
++# Some cleanup
++rm -rf Chaco-2.2
++rm -rf src 
++rm -rf install 
++mkdir src install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Chaco-2.2.tar.gz' 'Chaco-2.2.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/docs/chaco_guide.pdf' 'chaco_guide.pdf'
++
++# Untar 
++tar -xvzf Chaco-2.2.tar.gz
++
++# Move chaco to src directory
++mv Chaco-2.2/* src
++rm -rf Chaco-2.2
++
++# Apply patches (all at once)
++# (written by diff -rc src ~/Libs/Chaco-2.2 > chaco.patch)
++patch -R -p0 < chaco.patch
++
++# Patch src/code/Makefile
++patch ./src/code/Makefile ./patches/Makefile.patch
++
++
++# Build chaco
++cd src/code
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make chacominusblas.a
++
++# Clean up objects (but not library or executable)
++make clean
++cd ../..
++
++# Populate install directory
++cp -p src/exec/README install
++cp -p src/exec/User_Params install
++cp -p src/exec/*.coords install
++cp -p src/exec/*.graph install
++mkdir install/include
++cp -p src/code/main/defs.h install/include/defs.h
++cp -p src/code/main/params.h install/include/params.h
++cp -p chaco.h install/include/chaco.h
++mkdir install/lib
++mv src/code/chaco.a install/lib/libchaco.a
++mv src/code/chacominusblas.a install/lib/libchacominusblas.a
++mkdir install/exec
++mv src/exec/chaco install/exec
+
+Property changes on: ../trunk-jpl/externalpackages/chaco/install-macosx.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/chaco/patches/Makefile.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/chaco/patches/Makefile.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/chaco/patches/Makefile.patch	(revision 20192)
+@@ -0,0 +1,11 @@
++--- ./src/code/Makefile	2016-02-16 19:39:30.000000000 -0800
+++++ ./Makefile	2016-02-16 19:37:49.000000000 -0800
++@@ -6,7 +6,7 @@
++ #CFLAGS =	-O2
++ #OFLAGS =	-O2
++ #CFLAGS =	-fPIC -fno-omit-frame-pointer -D_GNU_SOURCE -pthread -fexceptions
++-CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g
+++CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -I/usr/include/malloc
++ #CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -DMATLAB
++ OFLAGS =	-O2 
++ #AR =             /usr/ccs/bin/ar rcv   # for solaris 2
Index: /issm/oecreview/Archive/19101-20495/ISSM-20192-20193.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20192-20193.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20192-20193.diff	(revision 20498)
@@ -0,0 +1,139 @@
+Index: ../trunk-jpl/externalpackages/chaco/install-macosx.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/chaco/install-macosx.sh	(revision 20192)
++++ ../trunk-jpl/externalpackages/chaco/install-macosx.sh	(revision 20193)
+@@ -1,55 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-# Some cleanup
+-rm -rf Chaco-2.2
+-rm -rf src 
+-rm -rf install 
+-mkdir src install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Chaco-2.2.tar.gz' 'Chaco-2.2.tar.gz'
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/docs/chaco_guide.pdf' 'chaco_guide.pdf'
+-
+-# Untar 
+-tar -xvzf Chaco-2.2.tar.gz
+-
+-# Move chaco to src directory
+-mv Chaco-2.2/* src
+-rm -rf Chaco-2.2
+-
+-# Apply patches (all at once)
+-# (written by diff -rc src ~/Libs/Chaco-2.2 > chaco.patch)
+-patch -R -p0 < chaco.patch
+-
+-# Patch src/code/Makefile
+-patch ./src/code/Makefile ./patches/Makefile.patch
+-
+-
+-# Build chaco
+-cd src/code
+-if [ $# -eq 0 ]; then
+-	make
+-else
+-	make -j $1
+-fi
+-make chacominusblas.a
+-
+-# Clean up objects (but not library or executable)
+-make clean
+-cd ../..
+-
+-# Populate install directory
+-cp -p src/exec/README install
+-cp -p src/exec/User_Params install
+-cp -p src/exec/*.coords install
+-cp -p src/exec/*.graph install
+-mkdir install/include
+-cp -p src/code/main/defs.h install/include/defs.h
+-cp -p src/code/main/params.h install/include/params.h
+-cp -p chaco.h install/include/chaco.h
+-mkdir install/lib
+-mv src/code/chaco.a install/lib/libchaco.a
+-mv src/code/chacominusblas.a install/lib/libchacominusblas.a
+-mkdir install/exec
+-mv src/exec/chaco install/exec
+Index: ../trunk-jpl/externalpackages/chaco/install-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/chaco/install-macosx64.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/chaco/install-macosx64.sh	(revision 20193)
+@@ -0,0 +1,55 @@
++#!/bin/bash
++set -eu
++
++# Some cleanup
++rm -rf Chaco-2.2
++rm -rf src 
++rm -rf install 
++mkdir src install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/Chaco-2.2.tar.gz' 'Chaco-2.2.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/docs/chaco_guide.pdf' 'chaco_guide.pdf'
++
++# Untar 
++tar -xvzf Chaco-2.2.tar.gz
++
++# Move chaco to src directory
++mv Chaco-2.2/* src
++rm -rf Chaco-2.2
++
++# Apply patches (all at once)
++# (written by diff -rc src ~/Libs/Chaco-2.2 > chaco.patch)
++patch -R -p0 < chaco.patch
++
++# Patch src/code/Makefile
++patch ./src/code/Makefile ./patches/Makefile.patch
++
++
++# Build chaco
++cd src/code
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make chacominusblas.a
++
++# Clean up objects (but not library or executable)
++make clean
++cd ../..
++
++# Populate install directory
++cp -p src/exec/README install
++cp -p src/exec/User_Params install
++cp -p src/exec/*.coords install
++cp -p src/exec/*.graph install
++mkdir install/include
++cp -p src/code/main/defs.h install/include/defs.h
++cp -p src/code/main/params.h install/include/params.h
++cp -p chaco.h install/include/chaco.h
++mkdir install/lib
++mv src/code/chaco.a install/lib/libchaco.a
++mv src/code/chacominusblas.a install/lib/libchacominusblas.a
++mkdir install/exec
++mv src/exec/chaco install/exec
+
+Property changes on: ../trunk-jpl/externalpackages/chaco/install-macosx64.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20192)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20193)
+@@ -51,7 +51,7 @@
+ 						matlab       install.sh                
+ 						mpich        install-3.0-macosx64.sh    
+ 						cmake        install.sh                
+-						chaco         install.sh 
++						chaco        install-macosx64.sh 
+ 						m1qn3        install.sh    
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20193-20194.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20193-20194.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20193-20194.diff	(revision 20498)
@@ -0,0 +1,51 @@
+Index: ../trunk-jpl/src/m/plot/processmesh.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.m	(revision 20193)
++++ ../trunk-jpl/src/m/plot/processmesh.m	(revision 20194)
+@@ -16,13 +16,13 @@
+ 
+ %special case for mesg 2dvertical
+ if strcmp(domaintype(md.mesh),'2Dvertical'),
+-	[x y z elements is2d isplanet] = processmesh(md.mesh,options);
++	[x y z elements is2d isplanet] = processmesh(md,options);
+ 	return;
+ end
+ 
+ %special case for mesh 3dsurface
+ if strcmp(domaintype(md.mesh),'3Dsurface'),
+-	[x y z elements is2d isplanet] = processmesh(md.mesh,options);
++	[x y z elements is2d isplanet] = processmesh(md,options);
+ 	return;
+ end
+ 
+Index: ../trunk-jpl/src/m/plot/processmesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.js	(revision 20193)
++++ ../trunk-jpl/src/m/plot/processmesh.js	(revision 20194)
+@@ -14,21 +14,19 @@
+ 
+ 	var x,y,z,elements,is2d,isplanet;
+ 
+-	//some checks
++	console.log(md);
++	console.log(md.mesh);
++	console.log(md.mesh.numberofvertices)
++
+ 	if (md.mesh.numberofvertices==0){
+ 		throw Error('plot error message: mesh is empty');
+ 	}
+ 
++
+ 	if (md.mesh.numberofvertices==md.mesh.numberofelements){
+ 		throw Error(['plot error message: the number of elements is the same as the number of nodes...']);
+ 	}
+ 
+-	//special case for mesg 2dvertical
+-	if (md.mesh.domaintype() === '2Dvertical') return processmesh(md.mesh,options);
+-
+-	//special case for mesh 3dsurface
+-	if (md.mesh.domaintype() == '3Dsurface') return processmesh(md.mesh,options);
+-
+ 	if (options.getfieldvalue('coord','xy') !== 'latlon'){
+ 		x=md.mesh.x;
+ 		if ('x2d' in md.mesh) x2d=md.mesh.x2d;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20194-20195.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20194-20195.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20194-20195.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/plot/processmesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.js	(revision 20194)
++++ ../trunk-jpl/src/m/plot/processmesh.js	(revision 20195)
+@@ -14,10 +14,6 @@
+ 
+ 	var x,y,z,elements,is2d,isplanet;
+ 
+-	console.log(md);
+-	console.log(md.mesh);
+-	console.log(md.mesh.numberofvertices)
+-
+ 	if (md.mesh.numberofvertices==0){
+ 		throw Error('plot error message: mesh is empty');
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20195-20196.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20195-20196.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20195-20196.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20195)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 20196)
+@@ -167,6 +167,7 @@
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
++			fprintf(fid,'%s.mesh=new mesh3dsurface();\n',modelname);
+ 			writejs1Darray(fid,[modelname '.mesh.x'],self.x);
+ 			writejs1Darray(fid,[modelname '.mesh.y'],self.y);
+ 			writejs1Darray(fid,[modelname '.mesh.z'],self.z);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20196-20197.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20196-20197.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20196-20197.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20196)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20197)
+@@ -25,12 +25,13 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
++	var is3d = (md.mesh.classname() == 'mesh3dsurface');	//use is2d/isplanet once verified to work with mesh3dsurface
+ 	
+ 	var	dataresults = processdata(md,data,options);
+ 	var	data2 = dataresults[0]; 
+ 	var	datatype = dataresults[1];
+ 	
+-	if (md.geometry.surface) {
++	if (!is3d && md.geometry.surface) {
+ 		z = md.geometry.surface;
+ 	}
+ 	//}}}
+@@ -55,9 +56,9 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["alpha"] = options.getfieldvalue('alpha',.6);
++	node["alpha"] = options.getfieldvalue('alpha',0.9);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+@@ -65,6 +66,8 @@
+ 	node["maskColor"] = options.getfieldvalue('innermaskcolor',[0.0,0.0,1.0,1.0]);
+ 	node["enabled"] = options.getfieldvalue('nodata','off') == 'off';
+ 	
++	console.log(node["translation"]);
++	
+ 	switch(datatype){
+ 		//element plot {{{
+ 		case 1:
+@@ -91,10 +94,14 @@
+ 
+ 				vertices.itemSize = 3;
+ 				texcoords.itemSize = 2;
++				var height = vec3.create();
++				var heightscale = options.getfieldvalue('heightscale',1);
+ 				for(var i = 0; i < x.length; i++){
+-					vertices[vertices.length] = x[i];
+-					vertices[vertices.length] = y[i];
+-					vertices[vertices.length] = z[i];
++					vec3.normalize(height, vec3.fromValues(x[i], y[i], z[i])); //fix to use normalized earth radius instead of radius+ height
++					vec3.scale(height, height, heightscale);
++					vertices[vertices.length] = x[i] + height[0];
++					vertices[vertices.length] = y[i] + height[1];
++					vertices[vertices.length] = z[i] + height[2];
+ 
+ 					texcoords[texcoords.length] = 0.5;
+ 					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20196)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20197)
+@@ -23,8 +23,9 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
++	var is3d = (md.mesh.classname() == 'mesh3dsurface');	//use is2d/isplanet once verified to work with mesh3dsurface
+ 	
+-	if (md.geometry.surface) {
++	if (!is3d && md.geometry.surface) {
+ 		z = md.geometry.surface;
+ 	}
+ 	//}}}
+@@ -48,7 +49,7 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmax) / (-1 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+ 	node["alpha"] = options.getfieldvalue('outeralpha',.9);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20197-20198.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20197-20198.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20197-20198.diff	(revision 20498)
@@ -0,0 +1,158 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20197)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20198)
+@@ -1952,97 +1952,67 @@
+ }/*}}}*/
+ void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
+ 
++	/*Some intputs need to be computed, even if they are already in inputs, they might not be up to date!*/
++	switch(output_enum){
++		case ViscousHeatingEnum: this->ViscousHeatingCreateInput(); break;
++		case StressMaxPrincipalEnum: this->StressMaxPrincipalCreateInput(); break;
++		case StressTensorxxEnum: 
++		case StressTensorxyEnum: 
++		case StressTensorxzEnum: 
++		case StressTensoryyEnum: 
++		case StressTensoryzEnum: 
++		case StressTensorzzEnum: this->ComputeStressTensor(); break;
++		case StrainRatexxEnum:
++		case StrainRatexyEnum:
++		case StrainRatexzEnum:
++		case StrainRateyyEnum:
++		case StrainRateyzEnum:
++		case StrainRatezzEnum:
++		case StrainRateeffectiveEnum: this->ComputeStrainRate(); break;
++		case DeviatoricStressxxEnum: 
++		case DeviatoricStressxyEnum: 
++		case DeviatoricStressxzEnum: 
++		case DeviatoricStressyyEnum: 
++		case DeviatoricStressyzEnum: 
++		case DeviatoricStresszzEnum: 
++		case DeviatoricStresseffectiveEnum: this->ComputeDeviatoricStressTensor(); break;
++		case SigmaNNEnum: this->ComputeSigmaNN(); break;
++		case NewDamageEnum: this->ComputeNewDamage(); break;
++		case StressIntensityFactorEnum: this->StressIntensityFactor(); break;
++		case CalvingratexEnum:
++		case CalvingrateyEnum:
++		case CalvingCalvingrateEnum:
++			this->StrainRateparallel();
++			this->StrainRateperpendicular();
++			int calvinglaw;
++			this->FindParam(&calvinglaw,CalvingLawEnum);
++			switch(calvinglaw){
++				case DefaultCalvingEnum:
++					//do nothing
++					break;
++				case CalvingLevermannEnum:
++					this->CalvingRateLevermann();
++					break;
++				case CalvingPiEnum:
++					this->CalvingRatePi();
++					break;
++				default:
++					_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
++			}
++			break;
++		case StrainRateparallelEnum: this->StrainRateparallel(); break;
++		case StrainRateperpendicularEnum: this->StrainRateperpendicular(); break;
++		default:
++													 /*Nothing to do*/
++	}
++
++	/*Find input*/
+ 	Input* input=this->inputs->GetInput(output_enum);
+ 
+ 	/*If this input is not already in Inputs, maybe it needs to be computed?*/
+-	if(!input){
+-		switch(output_enum){
+-			case ViscousHeatingEnum:
+-				this->ViscousHeatingCreateInput();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StressMaxPrincipalEnum:
+-				this->StressMaxPrincipalCreateInput();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StressTensorxxEnum: 
+-			case StressTensorxyEnum: 
+-			case StressTensorxzEnum: 
+-			case StressTensoryyEnum: 
+-			case StressTensoryzEnum: 
+-			case StressTensorzzEnum: 
+-				this->ComputeStressTensor();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StrainRatexxEnum:
+-			case StrainRatexyEnum:
+-			case StrainRatexzEnum:
+-			case StrainRateyyEnum:
+-			case StrainRateyzEnum:
+-			case StrainRatezzEnum:
+-			case StrainRateeffectiveEnum:
+-				this->ComputeStrainRate();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case DeviatoricStressxxEnum: 
+-			case DeviatoricStressxyEnum: 
+-			case DeviatoricStressxzEnum: 
+-			case DeviatoricStressyyEnum: 
+-			case DeviatoricStressyzEnum: 
+-			case DeviatoricStresszzEnum: 
+-			case DeviatoricStresseffectiveEnum: 
+-				this->ComputeDeviatoricStressTensor();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case SigmaNNEnum: 
+-				this->ComputeSigmaNN();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case NewDamageEnum:
+-				this->ComputeNewDamage();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StressIntensityFactorEnum:
+-				this->StressIntensityFactor();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case CalvingratexEnum:
+-			case CalvingrateyEnum:
+-			case CalvingCalvingrateEnum:
+-				this->StrainRateparallel();
+-				this->StrainRateperpendicular();
+-				int calvinglaw;
+-				this->FindParam(&calvinglaw,CalvingLawEnum);
+-					switch(calvinglaw){
+-						case DefaultCalvingEnum:
+-							//do nothing
+-							break;
+-						case CalvingLevermannEnum:
+-							this->CalvingRateLevermann();
+-							break;
+-						case CalvingPiEnum:
+-							this->CalvingRatePi();
+-							break;
+-						default:
+-							_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+-				}
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StrainRateparallelEnum:
+-				this->StrainRateparallel();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			case StrainRateperpendicularEnum:
+-				this->StrainRateperpendicular();
+-				input=this->inputs->GetInput(output_enum);
+-				break;
+-			default:
+-				_error_("input "<<EnumToStringx(output_enum)<<" not found in element");
+-		}
+-	}
++	if(!input) _error_("input "<<EnumToStringx(output_enum)<<" not found in element");
+ 
+ 	/*Assign output pointer*/
+-	_assert_(input);
+ 	*pinterpolation   = input->GetResultInterpolation();
+ 	*pnodesperelement = input->GetResultNumberOfNodes();
+ 	*parray_size      = input->GetResultArraySize();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20198-20199.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20198-20199.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20198-20199.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20198)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20199)
+@@ -2002,8 +2002,6 @@
+ 			break;
+ 		case StrainRateparallelEnum: this->StrainRateparallel(); break;
+ 		case StrainRateperpendicularEnum: this->StrainRateperpendicular(); break;
+-		default:
+-													 /*Nothing to do*/
+ 	}
+ 
+ 	/*Find input*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20199-20200.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20199-20200.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20199-20200.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/m/plot/processmesh.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.m	(revision 20199)
++++ ../trunk-jpl/src/m/plot/processmesh.m	(revision 20200)
+@@ -16,13 +16,13 @@
+ 
+ %special case for mesg 2dvertical
+ if strcmp(domaintype(md.mesh),'2Dvertical'),
+-	[x y z elements is2d isplanet] = processmesh(md,options);
++	[x y z elements is2d isplanet] = processmesh(md.mesh,options);
+ 	return;
+ end
+ 
+ %special case for mesh 3dsurface
+ if strcmp(domaintype(md.mesh),'3Dsurface'),
+-	[x y z elements is2d isplanet] = processmesh(md,options);
++	[x y z elements is2d isplanet] = processmesh(md.mesh,options);
+ 	return;
+ end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20200-20201.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20200-20201.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20200-20201.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20200)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20201)
+@@ -12,7 +12,7 @@
+ 		 login         = '';
+ 		 modules        = {};
+ 		 numnodes      = 1;
+-		 cpuspernode   = 12;
++		 cpuspernode   = 24;
+ 		 port          = 0;
+ 		 queue         = 'normal';
+ 		 codepath      = '';
+@@ -60,7 +60,7 @@
+ 
+ 			 available_queues={'normal','development'};
+ 			 queue_requirements_time=[48*60*60 2*60*60];
+-			 queue_requirements_np=[171 11];
++			 queue_requirements_np=[4104 264];
+ 
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 
+@@ -116,7 +116,7 @@
+ 			 fprintf(fid,'#SBATCH -p %s \n',cluster.queue);
+ 			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#SBATCH -e %s.errlog \n',modelname);
+-			 fprintf(fid,'#SBATCH -n %i \n',cluster.numnodes*12);
++			 fprintf(fid,'#SBATCH -n %i \n',cluster.numnodes*cluster.cpuspernode);
+ 			 fprintf(fid,'#SBATCH -N %i \n',cluster.numnodes);
+ 			 fprintf(fid,'#SBATCH -t %02i:%02i:00 \n\n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
+ 			 for i=1:numel(cluster.modules),
Index: /issm/oecreview/Archive/19101-20495/ISSM-20201-20202.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20201-20202.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20201-20202.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive806.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20202-20203.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20202-20203.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20202-20203.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20202)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20203)
+@@ -123,9 +123,9 @@
+ 			forcings=xNew<IssmDouble*>(nummodels-1);
+ 			nvs=xNew<int>(nummodels-1);
+ 			for(int i=0;i<earthid;i++){
+-				MPI_Recv(nvs+i, 1, ISSM_MPI_INT, 0,i, fromcomms[i], &status);
++				ISSM_MPI_Recv(nvs+i, 1, ISSM_MPI_INT, 0,i, fromcomms[i], &status);
+ 				forcings[i]=xNew<IssmDouble>(nvs[i]);
+-				MPI_Recv(forcings[i], nvs[i], ISSM_MPI_DOUBLE, 0,i, fromcomms[i], &status);
++				ISSM_MPI_Recv(forcings[i], nvs[i], ISSM_MPI_DOUBLE, 0,i, fromcomms[i], &status);
+ 			}
+ 			
+ 		}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20203-20204.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20203-20204.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20203-20204.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/src/c/main/issm_slr.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20203)
++++ ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20204)
+@@ -68,18 +68,18 @@
+ 	/*}}}*/
+ 
+ 	/*Split world into sub-communicators for each and every model:*/
+-	MPI_Comm_split(worldcomm,modelid, my_rank, &modelcomm);
++	ISSM_MPI_Comm_split(worldcomm,modelid, my_rank, &modelcomm);
+ 
+ 	/*Build inter communicators:*/
+ 	earthid=nummodels-1; //last model to be provided in the argument list if the earth model.
+ 	if(modelid==earthid){
+ 		fromicecomms=xNew<ISSM_MPI_Comm>(nummodels-1);
+ 		for(int i=0;i<earthid;i++){
+-			MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[i], i, fromicecomms+i); //communicate from local erth comm 9rank 0) to ice comm (rank 0) using modelid tag.
++			ISSM_MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[i], i, fromicecomms+i); //communicate from local erth comm 9rank 0) to ice comm (rank 0) using modelid tag.
+ 		}
+ 	}
+ 	else{
+-		MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[earthid], modelid, &toearthcomm); //communicate from local ice comm (rank 0) to earth comm (rank 0) using modelid tag.
++		ISSM_MPI_Intercomm_create( modelcomm, 0, worldcomm, rankzeros[earthid], modelid, &toearthcomm); //communicate from local ice comm (rank 0) to earth comm (rank 0) using modelid tag.
+ 	}
+ 
+ 	/*Supply specific argc and argv for each sub-communicator (corresponding to each  model specificatiions):{{{*/
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20203)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp	(revision 20204)
+@@ -507,3 +507,17 @@
+ #endif
+   return rc;
+ }/*}}}*/
++int ISSM_MPI_Intercomm_create(ISSM_MPI_Comm comm,int local_leader,ISSM_MPI_Comm peer_comm, int remote_leader, int tag,ISSM_MPI_Comm *newintercomm){ /*{{{*/
++
++	int rc=0;
++#ifdef _HAVE_MPI_
++#ifdef _HAVE_AMPI_
++	rc=MPI_Intercomm_create(comm,local_leader,peer_comm,remote_leader,tag,newintercomm);
++#else
++	rc=MPI_Intercomm_create(comm,local_leader,peer_comm,remote_leader,tag,newintercomm);
++#endif
++#else 
++	// nothing to be done here 
++#endif
++	return rc;
++}/*}}}*/
+Index: ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h
+===================================================================
+--- ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 20203)
++++ ../trunk-jpl/src/c/toolkits/mpi/issmmpi.h	(revision 20204)
+@@ -137,6 +137,7 @@
+ int ISSM_MPI_Send(void *buf, int count, ISSM_MPI_Datatype datatype, int dest, int tag, ISSM_MPI_Comm comm);
+ double ISSM_MPI_Wtime(void);
+ int ISSM_MPI_Comm_split(ISSM_MPI_Comm comm, int color, int key, ISSM_MPI_Comm *newcomm);
++int ISSM_MPI_Intercomm_create(ISSM_MPI_Comm comm,int local_leader,ISSM_MPI_Comm peer_comm, int remote_leader, int tag,ISSM_MPI_Comm *newintercomm);
+ 
+ // special for Adol-C locations when buffers are allocated with new
+ // this could end up in the xNew template specialized for adoubles 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20204-20205.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20204-20205.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20204-20205.diff	(revision 20498)
@@ -0,0 +1,137 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20204)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20205)
+@@ -25,7 +25,7 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+-	var is3d = (md.mesh.classname() == 'mesh3dsurface');	//use is2d/isplanet once verified to work with mesh3dsurface
++	var is3d = md.mesh.classname() == 'mesh3dsurface'; //use meshresults once behvaior can be verified
+ 	
+ 	var	dataresults = processdata(md,data,options);
+ 	var	data2 = dataresults[0]; 
+@@ -66,8 +66,6 @@
+ 	node["maskColor"] = options.getfieldvalue('innermaskcolor',[0.0,0.0,1.0,1.0]);
+ 	node["enabled"] = options.getfieldvalue('nodata','off') == 'off';
+ 	
+-	console.log(node["translation"]);
+-	
+ 	switch(datatype){
+ 		//element plot {{{
+ 		case 1:
+@@ -94,14 +92,14 @@
+ 
+ 				vertices.itemSize = 3;
+ 				texcoords.itemSize = 2;
+-				var height = vec3.create();
+-				var heightscale = options.getfieldvalue('heightscale',1);
++				//var height = vec3.create();
++				//var heightscale = options.getfieldvalue('heightscale',1);
+ 				for(var i = 0; i < x.length; i++){
+-					vec3.normalize(height, vec3.fromValues(x[i], y[i], z[i])); //fix to use normalized earth radius instead of radius+ height
+-					vec3.scale(height, height, heightscale);
+-					vertices[vertices.length] = x[i] + height[0];
+-					vertices[vertices.length] = y[i] + height[1];
+-					vertices[vertices.length] = z[i] + height[2];
++					//vec3.normalize(height, vec3.fromValues(x[i], y[i], z[i])); //fix to use normalized earth radius instead of radius+ height
++					//vec3.scale(height, height, heightscale);
++					vertices[vertices.length] = x[i];
++					vertices[vertices.length] = y[i];
++					vertices[vertices.length] = z[i];
+ 
+ 					texcoords[texcoords.length] = 0.5;
+ 					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 20204)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 20205)
+@@ -97,7 +97,7 @@
+ 				plot_drivingstress(md,options,subplotwidth,i);
+ 				break;
+ 			case 'mesh':
+-				plot_mesh(md,options,canvas,gl,nodes["main"]);
++				plot_mesh(md,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+ 				break;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+@@ -226,5 +226,5 @@
+ 	applyoptions(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+ 	
+ 	//Draw into the canvas if needed:
+-	if (requestDrawing)	draw(gl,options,canvas,canvas.nodes);
++	if (requestDrawing)	draw(gl,options,canvas);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20204)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20205)
+@@ -23,7 +23,7 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+-	var is3d = (md.mesh.classname() == 'mesh3dsurface');	//use is2d/isplanet once verified to work with mesh3dsurface
++	var is3d = (md.mesh.classname() == 'mesh3dsurface'); //use meshresults once behvaior can be verified
+ 	
+ 	if (!is3d && md.geometry.surface) {
+ 		z = md.geometry.surface;
+@@ -49,10 +49,10 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+-	node["alpha"] = options.getfieldvalue('outeralpha',.9);
++	node["alpha"] = options.getfieldvalue('outeralpha',0.9);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20204)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20205)
+@@ -15,12 +15,16 @@
+ 	var scale;
+ 	
+ 	//Process data and model
+-	var x = md.mesh.x;
+-	var y = md.mesh.y;
+-	var z = [].fill(md.mesh.x.length);
+-	var elements = md.mesh.elements;
++	var meshresults = processmesh(md,[],options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
++	var is3d = md.mesh.classname() == 'mesh3dsurface'; //use meshresults once behvaior can be verified
+ 	
+-	if (md.geometry.surface) {
++	if (!is3d && md.geometry.surface) {
+ 		z = md.geometry.surface;
+ 	}
+ 	//}}}
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20204)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20205)
+@@ -37,7 +37,7 @@
+ 	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+-	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.25]);
++	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.0]);
+ 	canvas.rotationAzimuthBounds = options.getfieldvalue('azimuthbounds',[0,360]);
+ 	canvas.rotationElevationBounds = options.getfieldvalue('elevationbounds',[-180,180]);
+ 	canvas.rotationDefault = options.getfieldvalue('view',[0,90]); //0 azimuth - up is north, 90 elevation - looking straight down
+@@ -476,6 +476,7 @@
+ 	else throw Error(sprintf("s%s%s\n","initWebGL error message: cound not find out background color for curent canvas ",canvas));
+ 		
+ 	// Skip drawing of new frame if any texture is not yet loaded
++	var nodes = canvas.nodes;
+ 	for (var node in nodes) {
+ 		if (nodes[node]["texture"] && !nodes[node]["texture"]["isLoaded"]) {
+ 			window.requestAnimationFrame(function(time) {draw(gl,options,canvas,nodes)});
Index: /issm/oecreview/Archive/19101-20495/ISSM-20205-20206.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20205-20206.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20205-20206.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20205)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20206)
+@@ -83,9 +83,9 @@
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+ 			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
+-			writejs2Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
+-			writejs2Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);
+-			writejs2Darray(fid,[modelname '.mask.land_levelset'],self.land_levelset);
++			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
++			writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);
++			writejs1Darray(fid,[modelname '.mask.land_levelset'],self.land_levelset);
+ 
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20206-20207.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20206-20207.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20206-20207.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20206)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20207)
+@@ -58,7 +58,7 @@
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+-	node["alpha"] = options.getfieldvalue('alpha',0.9);
++	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+@@ -89,6 +89,7 @@
+ 				datamin = caxis[0];
+ 				datamax = caxis[1];
+ 				datadelta = datamax - datamin;
++				console.log(datadelta, caxis);
+ 
+ 				vertices.itemSize = 3;
+ 				texcoords.itemSize = 2;
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20206)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20207)
+@@ -52,7 +52,7 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+-	node["alpha"] = options.getfieldvalue('outeralpha',0.9);
++	node["alpha"] = options.getfieldvalue('outeralpha',1.0);
+ 	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
Index: /issm/oecreview/Archive/19101-20495/ISSM-20207-20208.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20207-20208.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20207-20208.diff	(revision 20498)
@@ -0,0 +1,47 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20207)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20208)
+@@ -56,7 +56,7 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+ 	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+@@ -89,7 +89,6 @@
+ 				datamin = caxis[0];
+ 				datamax = caxis[1];
+ 				datadelta = datamax - datamin;
+-				console.log(datadelta, caxis);
+ 
+ 				vertices.itemSize = 3;
+ 				texcoords.itemSize = 2;
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20207)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20208)
+@@ -49,7 +49,7 @@
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+ 	node["alpha"] = options.getfieldvalue('outeralpha',1.0);
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20207)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20208)
+@@ -48,7 +48,7 @@
+ 	node["shaderName"] = "colored";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+ 	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
+-	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (-2 / scale)];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
+ 	node["overlay"] = false;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20208-20209.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20208-20209.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20208-20209.diff	(revision 20498)
@@ -0,0 +1,896 @@
+Index: ../trunk-jpl/test/NightlyRun/test208.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.py	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test208.py	(revision 20209)
+@@ -15,13 +15,14 @@
+ md=parameterize(md,'../Par/SquareShelf.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
++md.transient.requested_outputs=['default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb']
+ md=solve(md,TransientSolutionEnum())
+ 
+ 
+ # Fields and tolerances to track changes
+ 
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','TotalGroundedBmb1','TotalFloatingBmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','TotalGroundedBmb2','TotalFloatingBmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','TotalGroundedBmb3','TotalFloatingBmb3']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -30,6 +31,8 @@
+ 	md.results.TransientSolution[0].Base,\
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
++	md.results.TransientSolution[0].TotalGroundedBmb,\
++	md.results.TransientSolution[0].TotalFloatingBmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -37,6 +40,8 @@
+ 	md.results.TransientSolution[1].Base,\
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
++	md.results.TransientSolution[1].TotalGroundedBmb,\
++	md.results.TransientSolution[1].TotalFloatingBmb,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -44,4 +49,6 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
++	md.results.TransientSolution[2].TotalGroundedBmb,\
++	md.results.TransientSolution[2].TotalFloatingBmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test208.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.m	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test208.m	(revision 20209)
+@@ -4,12 +4,16 @@
+ md=parameterize(md,'../Par/SquareShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea'};
++md.transient.requested_outputs={'default','GroundedArea','TotalGroundedBmb','TotalFloatingBmb'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','TotalGroundedBmb1','TotalFloatingBmb1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','TotalGroundedBmb2','TotalFloatingBmb2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','TotalGroundedBmb3','TotalFloatingBmb3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -18,6 +22,8 @@
+ 	(md.results.TransientSolution(1).Base),...
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
++	(md.results.TransientSolution(1).TotalGroundedBmb),...
++	(md.results.TransientSolution(1).TotalFloatingBmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -25,6 +31,8 @@
+ 	(md.results.TransientSolution(2).Base),...
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
++	(md.results.TransientSolution(2).TotalGroundedBmb),...
++	(md.results.TransientSolution(2).TotalFloatingBmb),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -32,4 +40,6 @@
+ 	(md.results.TransientSolution(3).Base),...
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
++	(md.results.TransientSolution(3).TotalGroundedBmb),...
++	(md.results.TransientSolution(3).TotalFloatingBmb),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 20209)
+@@ -14,16 +14,16 @@
+ md.extrude(3,1.)
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea','FloatingArea']
++md.transient.requested_outputs=['default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1'\
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',\
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea']
+-field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
+-		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,\
+-		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12]
++field_names     =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1'\
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2',\
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3','TotalFloatingBmb2','TotalGroundedBmb2']
++field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12,\
++		1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12,\
++		1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -37,6 +37,8 @@
+ 	md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[0].GroundedArea,\
+ 	md.results.TransientSolution[0].FloatingArea,\
++	md.results.TransientSolution[0].TotalFloatingBmb,\
++	md.results.TransientSolution[0].TotalGroundedBmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vz,\
+@@ -49,6 +51,8 @@
+ 	md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[1].GroundedArea,\
+ 	md.results.TransientSolution[1].FloatingArea,\
++	md.results.TransientSolution[1].TotalFloatingBmb,\
++	md.results.TransientSolution[1].TotalGroundedBmb,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vz,\
+@@ -61,4 +65,6 @@
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[2].GroundedArea,\
+ 	md.results.TransientSolution[2].FloatingArea,\
++	md.results.TransientSolution[3].TotalFloatingBmb,\
++	md.results.TransientSolution[3].TotalGroundedBmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test317.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.m	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test317.m	(revision 20209)
+@@ -5,16 +5,16 @@
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea','FloatingArea'};
++md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1',...
+-	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',...
+-	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3'};
+-field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
+-	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
+-	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12};
++field_names     ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1'...
++	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2',...
++	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3'};
++field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12,...
++	1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12,...
++	1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,1e-12,1e-12};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -28,6 +28,8 @@
+ 	(md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(1).GroundedArea),...
+ 	(md.results.TransientSolution(1).FloatingArea),...
++	(md.results.TransientSolution(1).TotalFloatingBmb),...
++	(md.results.TransientSolution(1).TotalGroundedBmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vz),...
+@@ -40,6 +42,8 @@
+ 	(md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(2).GroundedArea),...
+ 	(md.results.TransientSolution(2).FloatingArea),...
++	(md.results.TransientSolution(2).TotalFloatingBmb),...
++	(md.results.TransientSolution(2).TotalGroundedBmb),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vz),...
+@@ -52,4 +56,6 @@
+ 	(md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
+ 	(md.results.TransientSolution(3).GroundedArea),...
+ 	(md.results.TransientSolution(3).FloatingArea),...
++	(md.results.TransientSolution(3).TotalFloatingBmb),...
++	(md.results.TransientSolution(3).TotalGroundedBmb),...
+ 	};
+Index: ../trunk-jpl/test/NightlyRun/test408.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.py	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test408.py	(revision 20209)
+@@ -14,12 +14,12 @@
+ md=parameterize(md,'../Par/SquareSheetShelf.py')
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea']
++md.transient.requested_outputs=['default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -29,6 +29,8 @@
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].GroundedArea,\
++	md.results.TransientSolution[0].TotalFloatingBmb,\
++	md.results.TransientSolution[0].TotalGroundedBmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -37,6 +39,8 @@
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].GroundedArea,\
++	md.results.TransientSolution[2].TotalFloatingBmb,\
++	md.results.TransientSolution[2].TotalGroundedBmb,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -44,5 +48,7 @@
+ 	md.results.TransientSolution[2].Base,\
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+-	md.results.TransientSolution[1].GroundedArea,\
++	md.results.TransientSolution[2].GroundedArea,\
++	md.results.TransientSolution[2].TotalFloatingBmb,\
++	md.results.TransientSolution[2].TotalGroundedBmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test408.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.m	(revision 20208)
++++ ../trunk-jpl/test/NightlyRun/test408.m	(revision 20209)
+@@ -4,14 +4,16 @@
+ md=parameterize(md,'../Par/SquareSheetShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea'};
++md.transient.requested_outputs={'default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -21,6 +23,8 @@
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).GroundedArea),...
++	(md.results.TransientSolution(1).TotalFloatingBmb),...
++	(md.results.TransientSolution(1).TotalGroundedBmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -29,6 +33,8 @@
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).GroundedArea),...
++	(md.results.TransientSolution(2).TotalFloatingBmb),...
++	(md.results.TransientSolution(2).TotalGroundedBmb),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -37,4 +43,6 @@
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).GroundedArea),...
++	(md.results.TransientSolution(3).TotalFloatingBmb),...
++	(md.results.TransientSolution(3).TotalGroundedBmb),...
+ 	};
+Index: ../trunk-jpl/test/Archives/Archive408.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive208.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20208)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20209)
+@@ -943,6 +943,8 @@
+ 	IceMassEnum,
+ 	IceVolumeEnum,
+ 	IceVolumeAboveFloatationEnum,
++	TotalFloatingBmbEnum,
++	TotalGroundedBmbEnum,
+ 	TotalSmbEnum,
+ 	/*}}}*/
+ 	/*Relaxation{{{*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20208)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20209)
+@@ -919,6 +919,8 @@
+ 		case IceMassEnum : return "IceMass";
+ 		case IceVolumeEnum : return "IceVolume";
+ 		case IceVolumeAboveFloatationEnum : return "IceVolumeAboveFloatation";
++		case TotalFloatingBmbEnum : return "TotalFloatingBmb";
++		case TotalGroundedBmbEnum : return "TotalGroundedBmb";
+ 		case TotalSmbEnum : return "TotalSmb";
+ 		case AbsoluteEnum : return "Absolute";
+ 		case IncrementalEnum : return "Incremental";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20208)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20209)
+@@ -940,6 +940,8 @@
+ 	      else if (strcmp(name,"IceMass")==0) return IceMassEnum;
+ 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
+ 	      else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum;
++	      else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum;
++	      else if (strcmp(name,"TotalGroundedBmb")==0) return TotalGroundedBmbEnum;
+ 	      else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
+ 	      else if (strcmp(name,"Absolute")==0) return AbsoluteEnum;
+ 	      else if (strcmp(name,"Incremental")==0) return IncrementalEnum;
+@@ -995,12 +997,12 @@
+ 	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
+-	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+-	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+          else stage=9;
+    }
+    if(stage==9){
+-	      if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
++	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
++	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
++	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+ 	      else if (strcmp(name,"XY")==0) return XYEnum;
+ 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+ 	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20208)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20209)
+@@ -951,6 +951,8 @@
+ 		case RheologyBbarAbsGradientEnum:  RheologyBbarAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break;
+ 		case DragCoefficientAbsGradientEnum:DragCoefficientAbsGradientx(responses, elements,nodes, vertices, loads, materials, parameters); break;
+ 		case BalancethicknessMisfitEnum:   BalancethicknessMisfitx(responses); break;
++		case TotalFloatingBmbEnum:			  this->TotalFloatingBmbx(responses); break;
++		case TotalGroundedBmbEnum:			  this->TotalGroundedBmbx(responses); break;
+ 		case TotalSmbEnum:					  this->TotalSmbx(responses); break;
+ 		case MaterialsRheologyBbarEnum:    this->ElementResponsex(responses,MaterialsRheologyBbarEnum); break;
+ 		case VelEnum:                      this->ElementResponsex(responses,VelEnum); break;
+@@ -1025,6 +1027,8 @@
+ 					case MaxVzEnum:                    this->MaxVzx(&double_result);                    break;
+ 					case MaxAbsVzEnum:                 this->MaxAbsVzx(&double_result);                 break;
+ 					case MassFluxEnum:                 this->MassFluxx(&double_result);                 break;
++					case TotalFloatingBmbEnum:         this->TotalFloatingBmbx(&double_result);         break;
++					case TotalGroundedBmbEnum:         this->TotalGroundedBmbx(&double_result);         break;
+ 					case TotalSmbEnum:                 this->TotalSmbx(&double_result);                 break;
+ 
+ 			   /*Scalar control output*/
+@@ -1569,6 +1573,38 @@
+ 	*pminvz=minvz;
+ 
+ }/*}}}*/
++void FemModel::TotalFloatingBmbx(IssmDouble* pFbmb){/*{{{*/
++
++	IssmDouble local_fbmb = 0;
++	IssmDouble total_fbmb;
++
++	for(int i=0;i<this->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
++		local_fbmb+=element->TotalFloatingBmb();
++	}
++	ISSM_MPI_Reduce(&local_fbmb,&total_fbmb,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&total_fbmb,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Assign output pointers: */
++	*pFbmb=total_fbmb;
++
++}/*}}}*/
++void FemModel::TotalGroundedBmbx(IssmDouble* pGbmb){/*{{{*/
++
++	IssmDouble local_gbmb = 0;
++	IssmDouble total_gbmb;
++
++	for(int i=0;i<this->elements->Size();i++){
++		Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
++		local_gbmb+=element->TotalGroundedBmb();
++	}
++	ISSM_MPI_Reduce(&local_gbmb,&total_gbmb,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
++	ISSM_MPI_Bcast(&total_gbmb,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
++
++	/*Assign output pointers: */
++	*pGbmb=total_gbmb;
++
++}/*}}}*/
+ void FemModel::TotalSmbx(IssmDouble* pSmb){/*{{{*/
+ 
+ 	IssmDouble local_smb = 0;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20209)
+@@ -285,6 +285,8 @@
+ 		virtual IssmDouble SurfaceArea(void)=0;
+ 		virtual int        TensorInterpolation()=0;
+ 		virtual IssmDouble TimeAdapt()=0;
++		virtual IssmDouble TotalFloatingBmb(void)=0;
++		virtual IssmDouble TotalGroundedBmb(void)=0;
+ 		virtual IssmDouble TotalSmb(void)=0;
+ 		virtual void       Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finite_element)=0;
+ 		virtual void       UpdateConstraintsExtrudeFromBase(void)=0;
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20209)
+@@ -3069,6 +3069,62 @@
+ 	return dt;
+ }
+ /*}}}*/
++IssmDouble Tria::TotalFloatingBmb(void){/*{{{*/
++
++	/*The fbmb[kg yr-1] of one element is area[m2] * melting_rate [kg m^-2 yr^-1]*/
++	IssmDouble base,fbmb,rho_ice;
++	IssmDouble Total_Fbmb=0;
++	IssmDouble xyz_list[NUMVERTICES][3];
++
++	/*Get material parameters :*/
++	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++   if(!IsIceInElement())return 0;
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++
++	/*First calculate the area of the base (cross section triangle)
++	 * http://en.wikipedia.org/wiki/Triangle
++	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
++	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));	// area of element in m2
++
++	/*Now get the average SMB over the element*/
++	Input* fbmb_input = inputs->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fbmb_input);
++	fbmb_input->GetInputAverage(&fbmb);																								// average melting rate on element in m ice s-1
++   Total_Fbmb=rho_ice*base*fbmb;																											// melting rate on element in kg s-1
++
++	/*Return: */
++	return Total_Fbmb;
++}
++/*}}}*/
++IssmDouble Tria::TotalGroundedBmb(void){/*{{{*/
++
++	/*The gbmb[kg yr-1] of one element is area[m2] * gounded melting rate [kg m^-2 yr^-1]*/
++	IssmDouble base,gbmb,rho_ice;
++	IssmDouble Total_Gbmb=0;
++	IssmDouble xyz_list[NUMVERTICES][3];
++
++	/*Get material parameters :*/
++	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++   if(!IsIceInElement())return 0;
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++
++	/*First calculate the area of the base (cross section triangle)
++	 * http://en.wikipedia.org/wiki/Triangle
++	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
++	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));	// area of element in m2
++
++	/*Now get the average grounded melting rate over the element*/
++	Input* gbmb_input = inputs->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gbmb_input);
++	gbmb_input->GetInputAverage(&gbmb);																								// average smb on element in m ice s-1
++   Total_Gbmb=rho_ice*base*gbmb;																											// smb on element in kg s-1
++
++	/*Return: */
++	return Total_Gbmb;
++}
++/*}}}*/
+ IssmDouble Tria::TotalSmb(void){/*{{{*/
+ 
+ 	/*The smb[kg yr-1] of one element is area[m2] * smb [kg m^-2 yr^-1]*/
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20209)
+@@ -129,6 +129,8 @@
+ 		IssmDouble  SurfaceArea(void);
+ 		int         TensorInterpolation();
+ 		IssmDouble  TimeAdapt();
++		IssmDouble  TotalFloatingBmb(void);
++		IssmDouble  TotalGroundedBmb(void);
+ 		IssmDouble  TotalSmb(void);
+ 		void        Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
+ 		int         UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20209)
+@@ -2635,6 +2635,64 @@
+ 
+ 	return dt;
+ }/*}}}*/
++IssmDouble Penta::TotalFloatingBmb(void){/*{{{*/
++
++	/*The fbmb[Gt yr-1] of one element is area[m2] * floating basal melt [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
++	IssmDouble base,fbmb,rho_ice;
++	IssmDouble Total_Fbmb=0;
++	IssmDouble xyz_list[NUMVERTICES][3];
++
++	/*Get material parameters :*/
++	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++	if(!IsIceInElement() || !IsOnBase()) return 0.;
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++
++	/*First calculate the area of the base (cross section triangle)
++	 * http://en.wikipedia.org/wiki/Triangle
++	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
++	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++
++	/*Now get the average Floating melt rate over the element*/
++	Input* fbmb_input = inputs->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fbmb_input);
++
++	fbmb_input->GetInputAverage(&fbmb);
++	Total_Fbmb=rho_ice*base*fbmb;// floating melt rate on element in kg s-1
++
++	/*Return: */
++	return Total_Fbmb;
++}
++/*}}}*/
++IssmDouble Penta::TotalGroundedBmb(void){/*{{{*/
++
++	/*The grounded ice melting rate [Gt yr-1] of one element is area[m2] * grounded melt [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
++	IssmDouble base,gbmb,rho_ice;
++	IssmDouble Total_Gbmb=0;
++	IssmDouble xyz_list[NUMVERTICES][3];
++
++	/*Get material parameters :*/
++	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++
++	if(!IsIceInElement() || !IsOnBase()) return 0.;
++
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++
++	/*First calculate the area of the base (cross section triangle)
++	 * http://en.wikipedia.org/wiki/Triangle
++	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
++	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++
++	/*Now get the average grounded melt over the element*/
++	Input* gbmb_input = inputs->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gbmb_input);
++
++	gbmb_input->GetInputAverage(&gbmb);
++	Total_Gbmb=rho_ice*base*gbmb;// grounded melt on element in kg s-1
++
++	/*Return: */
++	return Total_Gbmb;
++}
++/*}}}*/
+ IssmDouble Penta::TotalSmb(void){/*{{{*/
+ 
+ 	/*The smb[Gt yr-1] of one element is area[m2] * smb [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20209)
+@@ -158,6 +158,8 @@
+ 		IssmDouble     SurfaceArea(void);
+ 		int            TensorInterpolation(){_error_("not implemented yet");};
+ 		IssmDouble     TimeAdapt();
++		IssmDouble     TotalFloatingBmb(void);
++		IssmDouble     TotalGroundedBmb(void);
+ 		IssmDouble     TotalSmb(void);
+ 		void           Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
+ 		void           UpdateConstraintsExtrudeFromBase(void);
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20209)
+@@ -148,6 +148,8 @@
+ 		IssmDouble  SurfaceArea(void){_error_("not implemented yet");};
+ 		int         TensorInterpolation(void){_error_("not implemented yet");};
+ 		IssmDouble  TimeAdapt(){_error_("not implemented yet");};
++		IssmDouble  TotalFloatingBmb(void){_error_("not implemented yet");};
++		IssmDouble  TotalGroundedBmb(void){_error_("not implemented yet");};
+ 		IssmDouble  TotalSmb(void){_error_("not implemented yet");};
+ 		void        Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");};
+ 		void        UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20209)
+@@ -155,6 +155,8 @@
+ 		IssmDouble  SurfaceArea(void){_error_("not implemented yet");};
+ 		int         TensorInterpolation(void);
+ 		IssmDouble  TimeAdapt(){_error_("not implemented yet");};
++		IssmDouble  TotalFloatingBmb(void){_error_("not implemented yet");};
++		IssmDouble  TotalGroundedBmb(void){_error_("not implemented yet");};
+ 		IssmDouble  TotalSmb(void){_error_("not implemented yet");};
+ 		void        Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
+ 		void        UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 20208)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 20209)
+@@ -76,6 +76,8 @@
+ 		void MinVxx(IssmDouble* presponse);
+ 		void MinVyx(IssmDouble* presponse);
+ 		void MinVzx(IssmDouble* presponse);
++		void TotalFloatingBmbx(IssmDouble* pFbmb);
++		void TotalGroundedBmbx(IssmDouble* pGbmb);
+ 		void TotalSmbx(IssmDouble* pSmb);
+ 		void Divergencex(IssmDouble* pdiv);
+ 		void MaxDivergencex(IssmDouble* pdiv);
+Index: ../trunk-jpl/src/m/enum/TotalGroundedBmbEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TotalGroundedBmbEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TotalGroundedBmbEnum.m	(revision 20209)
+@@ -0,0 +1,11 @@
++function macro=TotalGroundedBmbEnum()
++%TOTALGROUNDEDBMBENUM - Enum of TotalGroundedBmb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TotalGroundedBmbEnum()
++
++macro=StringToEnum('TotalGroundedBmb');
+Index: ../trunk-jpl/src/m/enum/TotalFloatingBmbEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TotalFloatingBmbEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TotalFloatingBmbEnum.m	(revision 20209)
+@@ -0,0 +1,11 @@
++function macro=TotalFloatingBmbEnum()
++%TOTALFLOATINGBMBENUM - Enum of TotalFloatingBmb
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TotalFloatingBmbEnum()
++
++macro=StringToEnum('TotalFloatingBmb');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20208)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20209)
+@@ -904,103 +904,105 @@
+ function IceMassEnum(){ return 900;}
+ function IceVolumeEnum(){ return 901;}
+ function IceVolumeAboveFloatationEnum(){ return 902;}
+-function TotalSmbEnum(){ return 903;}
+-function AbsoluteEnum(){ return 904;}
+-function IncrementalEnum(){ return 905;}
+-function AugmentedLagrangianREnum(){ return 906;}
+-function AugmentedLagrangianRhopEnum(){ return 907;}
+-function AugmentedLagrangianRlambdaEnum(){ return 908;}
+-function AugmentedLagrangianRholambdaEnum(){ return 909;}
+-function AugmentedLagrangianThetaEnum(){ return 910;}
+-function NoneEnum(){ return 911;}
+-function AggressiveMigrationEnum(){ return 912;}
+-function SoftMigrationEnum(){ return 913;}
+-function SubelementMigrationEnum(){ return 914;}
+-function SubelementMigration2Enum(){ return 915;}
+-function ContactEnum(){ return 916;}
+-function GroundingOnlyEnum(){ return 917;}
+-function MaskGroundediceLevelsetEnum(){ return 918;}
+-function GaussSegEnum(){ return 919;}
+-function GaussTriaEnum(){ return 920;}
+-function GaussTetraEnum(){ return 921;}
+-function GaussPentaEnum(){ return 922;}
+-function FSSolverEnum(){ return 923;}
+-function AdjointEnum(){ return 924;}
+-function ColinearEnum(){ return 925;}
+-function ControlSteadyEnum(){ return 926;}
+-function FsetEnum(){ return 927;}
+-function Gradient1Enum(){ return 928;}
+-function Gradient2Enum(){ return 929;}
+-function Gradient3Enum(){ return 930;}
+-function GradientEnum(){ return 931;}
+-function GroundinglineMigrationEnum(){ return 932;}
+-function GsetEnum(){ return 933;}
+-function IndexEnum(){ return 934;}
+-function IndexedEnum(){ return 935;}
+-function IntersectEnum(){ return 936;}
+-function NodalEnum(){ return 937;}
+-function OldGradientEnum(){ return 938;}
+-function OutputBufferPointerEnum(){ return 939;}
+-function OutputBufferSizePointerEnum(){ return 940;}
+-function OutputFilePointerEnum(){ return 941;}
+-function ToolkitsFileNameEnum(){ return 942;}
+-function RootPathEnum(){ return 943;}
+-function OutputFileNameEnum(){ return 944;}
+-function InputFileNameEnum(){ return 945;}
+-function LockFileNameEnum(){ return 946;}
+-function RestartFileNameEnum(){ return 947;}
+-function ToolkitsOptionsAnalysesEnum(){ return 948;}
+-function ToolkitsOptionsStringsEnum(){ return 949;}
+-function QmuErrNameEnum(){ return 950;}
+-function QmuInNameEnum(){ return 951;}
+-function QmuOutNameEnum(){ return 952;}
+-function RegularEnum(){ return 953;}
+-function ScaledEnum(){ return 954;}
+-function SeparateEnum(){ return 955;}
+-function SsetEnum(){ return 956;}
+-function VerboseEnum(){ return 957;}
+-function TriangleInterpEnum(){ return 958;}
+-function BilinearInterpEnum(){ return 959;}
+-function NearestInterpEnum(){ return 960;}
+-function XYEnum(){ return 961;}
+-function XYZEnum(){ return 962;}
+-function DenseEnum(){ return 963;}
+-function MpiDenseEnum(){ return 964;}
+-function MpiSparseEnum(){ return 965;}
+-function SeqEnum(){ return 966;}
+-function MpiEnum(){ return 967;}
+-function MumpsEnum(){ return 968;}
+-function GslEnum(){ return 969;}
+-function OptionEnum(){ return 970;}
+-function GenericOptionEnum(){ return 971;}
+-function OptionCellEnum(){ return 972;}
+-function OptionStructEnum(){ return 973;}
+-function CuffeyEnum(){ return 974;}
+-function PatersonEnum(){ return 975;}
+-function ArrheniusEnum(){ return 976;}
+-function LliboutryDuvalEnum(){ return 977;}
+-function TransientIslevelsetEnum(){ return 978;}
+-function SpcLevelsetEnum(){ return 979;}
+-function ExtrapolationVariableEnum(){ return 980;}
+-function IceMaskNodeActivationEnum(){ return 981;}
+-function LevelsetfunctionSlopeXEnum(){ return 982;}
+-function LevelsetfunctionSlopeYEnum(){ return 983;}
+-function LevelsetfunctionPicardEnum(){ return 984;}
+-function SealevelriseSolutionEnum(){ return 985;}
+-function SealevelriseAnalysisEnum(){ return 986;}
+-function SealevelEnum(){ return 987;}
+-function SealevelriseDeltathicknessEnum(){ return 988;}
+-function SealevelriseMaxiterEnum(){ return 989;}
+-function SealevelriseReltolEnum(){ return 990;}
+-function SealevelriseAbstolEnum(){ return 991;}
+-function SealevelriseLoveHEnum(){ return 992;}
+-function SealevelriseLoveKEnum(){ return 993;}
+-function SealevelriseRigidEnum(){ return 994;}
+-function SealevelriseElasticEnum(){ return 995;}
+-function SealevelriseEustaticEnum(){ return 996;}
+-function SealevelriseGElasticEnum(){ return 997;}
+-function SealevelriseDegaccEnum(){ return 998;}
+-function SealevelriseTransitionsEnum(){ return 999;}
+-function SealevelriseRequestedOutputsEnum(){ return 1000;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 1001;}
+-function MaximumNumberOfDefinitionsEnum(){ return 1002;}
++function TotalFloatingBmbEnum(){ return 903;}
++function TotalGroundedBmbEnum(){ return 904;}
++function TotalSmbEnum(){ return 905;}
++function AbsoluteEnum(){ return 906;}
++function IncrementalEnum(){ return 907;}
++function AugmentedLagrangianREnum(){ return 908;}
++function AugmentedLagrangianRhopEnum(){ return 909;}
++function AugmentedLagrangianRlambdaEnum(){ return 910;}
++function AugmentedLagrangianRholambdaEnum(){ return 911;}
++function AugmentedLagrangianThetaEnum(){ return 912;}
++function NoneEnum(){ return 913;}
++function AggressiveMigrationEnum(){ return 914;}
++function SoftMigrationEnum(){ return 915;}
++function SubelementMigrationEnum(){ return 916;}
++function SubelementMigration2Enum(){ return 917;}
++function ContactEnum(){ return 918;}
++function GroundingOnlyEnum(){ return 919;}
++function MaskGroundediceLevelsetEnum(){ return 920;}
++function GaussSegEnum(){ return 921;}
++function GaussTriaEnum(){ return 922;}
++function GaussTetraEnum(){ return 923;}
++function GaussPentaEnum(){ return 924;}
++function FSSolverEnum(){ return 925;}
++function AdjointEnum(){ return 926;}
++function ColinearEnum(){ return 927;}
++function ControlSteadyEnum(){ return 928;}
++function FsetEnum(){ return 929;}
++function Gradient1Enum(){ return 930;}
++function Gradient2Enum(){ return 931;}
++function Gradient3Enum(){ return 932;}
++function GradientEnum(){ return 933;}
++function GroundinglineMigrationEnum(){ return 934;}
++function GsetEnum(){ return 935;}
++function IndexEnum(){ return 936;}
++function IndexedEnum(){ return 937;}
++function IntersectEnum(){ return 938;}
++function NodalEnum(){ return 939;}
++function OldGradientEnum(){ return 940;}
++function OutputBufferPointerEnum(){ return 941;}
++function OutputBufferSizePointerEnum(){ return 942;}
++function OutputFilePointerEnum(){ return 943;}
++function ToolkitsFileNameEnum(){ return 944;}
++function RootPathEnum(){ return 945;}
++function OutputFileNameEnum(){ return 946;}
++function InputFileNameEnum(){ return 947;}
++function LockFileNameEnum(){ return 948;}
++function RestartFileNameEnum(){ return 949;}
++function ToolkitsOptionsAnalysesEnum(){ return 950;}
++function ToolkitsOptionsStringsEnum(){ return 951;}
++function QmuErrNameEnum(){ return 952;}
++function QmuInNameEnum(){ return 953;}
++function QmuOutNameEnum(){ return 954;}
++function RegularEnum(){ return 955;}
++function ScaledEnum(){ return 956;}
++function SeparateEnum(){ return 957;}
++function SsetEnum(){ return 958;}
++function VerboseEnum(){ return 959;}
++function TriangleInterpEnum(){ return 960;}
++function BilinearInterpEnum(){ return 961;}
++function NearestInterpEnum(){ return 962;}
++function XYEnum(){ return 963;}
++function XYZEnum(){ return 964;}
++function DenseEnum(){ return 965;}
++function MpiDenseEnum(){ return 966;}
++function MpiSparseEnum(){ return 967;}
++function SeqEnum(){ return 968;}
++function MpiEnum(){ return 969;}
++function MumpsEnum(){ return 970;}
++function GslEnum(){ return 971;}
++function OptionEnum(){ return 972;}
++function GenericOptionEnum(){ return 973;}
++function OptionCellEnum(){ return 974;}
++function OptionStructEnum(){ return 975;}
++function CuffeyEnum(){ return 976;}
++function PatersonEnum(){ return 977;}
++function ArrheniusEnum(){ return 978;}
++function LliboutryDuvalEnum(){ return 979;}
++function TransientIslevelsetEnum(){ return 980;}
++function SpcLevelsetEnum(){ return 981;}
++function ExtrapolationVariableEnum(){ return 982;}
++function IceMaskNodeActivationEnum(){ return 983;}
++function LevelsetfunctionSlopeXEnum(){ return 984;}
++function LevelsetfunctionSlopeYEnum(){ return 985;}
++function LevelsetfunctionPicardEnum(){ return 986;}
++function SealevelriseSolutionEnum(){ return 987;}
++function SealevelriseAnalysisEnum(){ return 988;}
++function SealevelEnum(){ return 989;}
++function SealevelriseDeltathicknessEnum(){ return 990;}
++function SealevelriseMaxiterEnum(){ return 991;}
++function SealevelriseReltolEnum(){ return 992;}
++function SealevelriseAbstolEnum(){ return 993;}
++function SealevelriseLoveHEnum(){ return 994;}
++function SealevelriseLoveKEnum(){ return 995;}
++function SealevelriseRigidEnum(){ return 996;}
++function SealevelriseElasticEnum(){ return 997;}
++function SealevelriseEustaticEnum(){ return 998;}
++function SealevelriseGElasticEnum(){ return 999;}
++function SealevelriseDegaccEnum(){ return 1000;}
++function SealevelriseTransitionsEnum(){ return 1001;}
++function SealevelriseRequestedOutputsEnum(){ return 1002;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1003;}
++function MaximumNumberOfDefinitionsEnum(){ return 1004;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20208)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20209)
+@@ -911,6 +911,8 @@
+ def IceMassEnum(): return StringToEnum("IceMass")[0]
+ def IceVolumeEnum(): return StringToEnum("IceVolume")[0]
+ def IceVolumeAboveFloatationEnum(): return StringToEnum("IceVolumeAboveFloatation")[0]
++def TotalFloatingBmbEnum(): return StringToEnum("TotalFloatingBmb")[0]
++def TotalGroundedBmbEnum(): return StringToEnum("TotalGroundedBmb")[0]
+ def TotalSmbEnum(): return StringToEnum("TotalSmb")[0]
+ def AbsoluteEnum(): return StringToEnum("Absolute")[0]
+ def IncrementalEnum(): return StringToEnum("Incremental")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20209-20210.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20209-20210.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20209-20210.diff	(revision 20498)
@@ -0,0 +1,173 @@
+Index: ../trunk-jpl/src/m/classes/organizer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.m	(revision 20209)
++++ ../trunk-jpl/src/m/classes/organizer.m	(revision 20210)
+@@ -1,18 +1,17 @@
+-%ORGANIZER class definition
++%XORGANIZER class definition
+ %
+ %   Supported options:
+ %      repository: directory where all models will be saved
+ %      prefix:     prefix for saved model names
+ %      steps:      requested steps
+-%      trunkprefix:prefix of previous run with a different prefix. Used to branch.
+ %
+ %   Usage:
+-%      org = organizer(varargin)
++%      org = xorganizer(varargin)
+ %
+ %   Examples:
+-%      org = organizer('repository','Models/','prefix','AGU2015','steps',0);  %build an empty organizer object with a given repository
++%      org = xorganizer('repository','Models/','prefix','AGU2015','steps',0);  %build an empty organizer object with a given repository
+ 
+-classdef organizer < handle
++classdef xorganizer < handle
+     properties (SetAccess=private) 
+ 		% {{{
+ 		currentstep   =0;
+@@ -20,18 +19,12 @@
+     properties (SetAccess=public) 
+ 		repository    ='./';
+ 		prefix        ='model.';
+-		trunkprefix   ='';
+ 		steps         =[];
+ 		requestedsteps=[0];
+-		upload_server='';
+-		upload_path='';
+-		upload_login='';
+-		upload_port=0;
+-		download=0;
+ 		%}}}
+ 	end
+ 	methods
+-		function org=organizer(varargin) % {{{
++		function org=xorganizer(varargin) % {{{
+ 
+ 			%process options
+ 			options=pairoptions(varargin{:});
+@@ -51,26 +44,11 @@
+ 			%Get steps
+ 			org.requestedsteps=getfieldvalue(options,'steps',0);
+ 
+-			%Get trunk prefix (only if provided by user)
+-			if exist(options,'trunkprefix'),
+-				trunkprefix=getfieldvalue(options,'trunkprefix','');
+-				if ~ischar(trunkprefix),                                 error('trunkprefix is not a string'); end
+-				if ~strcmp(regexprep(trunkprefix,'\s+',''),trunkprefix), error('trunkprefix should not have any white space'); end
+-				org.trunkprefix=trunkprefix;
+-			end
+-
+-			%Get upload information, if provided
+-			org.upload_server=getfieldvalue(options,'upload_server','');
+-			org.upload_path=getfieldvalue(options,'upload_path','');
+-			org.upload_login=getfieldvalue(options,'upload_login','');
+-			org.upload_port=getfieldvalue(options,'upload_port',0);
+-			org.download=getfieldvalue(options,'download',0);
+-
+ 		end
+ 		%}}}
+ 		function disp(org) % {{{
+ 			disp(sprintf('   Repository: ''%s''',org.repository));
+-			disp(sprintf('   Prefix:     ''%s''',org.prefix));
++			disp(sprintf('   Prefix:     ''%s''\n',org.prefix));
+ 			if isempty(org.steps)
+ 				disp('   no step');
+ 			else
+@@ -78,14 +56,6 @@
+ 					disp(sprintf('   step #%2i: ''%s''',org.steps(i).id,org.steps(i).string));
+ 				end
+ 			end
+-			if isempty(org.upload_server),
+-				disp('   no upload info');
+-			else
+-				disp(sprintf('   upload_server:     ''%s''',org.upload_server));
+-				disp(sprintf('   upload_login:     ''%s''',org.upload_login));
+-				disp(sprintf('   upload_path:     ''%s''',org.upload_path));
+-				disp(sprintf('   upload_port:     ''%i''',org.upload_port));
+-			end
+ 		end
+ 		%}}}
+ 		function md=load(org,string),% {{{
+@@ -122,19 +92,8 @@
+ 				return;
+ 			end
+ 
+-			%If we are here, the model has not been found. Try trunk prefix if provided
+-			if ~isempty(org.trunkprefix),
+-				path2=[org.repository '/' org.trunkprefix string];
+-				if ~exist(path2,'file'),
+-					error(['Could find neither ' path ', nor ' path2]);
+-				else
+-					disp(['--> Branching ' org.prefix ' from trunk ' org.trunkprefix]);
+-					md=loadmodel(path2);
+-					return;
+-				end
+-			else
+-				error(['Could not find ' path ]);
+-			end
++			%If we are here, the data has not been found. 
++			error(['Could not find ' path ]);
+ 		end%}}}
+ 		function loaddata(org,string),% {{{
+ 
+@@ -148,23 +107,19 @@
+ 				return;
+ 			end
+ 
+-			%If we are here, the data has not been found. Try trunk prefix if provided
+-			if ~isempty(org.trunkprefix),
+-				path2=[org.repository '/' org.trunkprefix string];
+-				if ~exist(path2,'file'),
+-					error(['Could find neither ' path ', nor ' path2]);
+-				else
+-					disp(['--> Branching ' org.prefix ' from trunk ' org.trunkprefix]);
+-					evalin('caller',['load -mat ' path2]);
+-					return;
+-				end
+-			else
+-				error(['Could not find ' path ]);
+-			end
++			%If we are here, the data has not been found. 
++			error(['Could not find ' path ]);
+ 		end%}}}
+-		function bool=perform(org,string) % {{{
++		function bool=perform(org,varargin) % {{{
+ 
+ 			bool=false;
++			
++			%group,string are the variable arguments length: 
++			if nargin==2,
++				string=varargin{1};
++			elseif nargin==3,
++				string=sprintf('%s.%s',varargin{1},varargin{2});
++			end
+ 
+ 			%Some checks
+ 			if ~ischar(string),                            error('Step provided should be a string'); end
+@@ -191,26 +146,6 @@
+ 				disp(sprintf('\n   step #%i : %s\n',org.steps(org.currentstep).id,org.steps(org.currentstep).string));
+ 				bool=true;
+ 			end
+-
+-			%But if download is requested, we are downloading and skipping the step: 
+-			if ismember(org.currentstep,org.requestedsteps) & org.download,
+-				%load the model if it exists, and download
+-				name=[org.repository '/' org.prefix org.steps(org.currentstep).string ];
+-				if exist(name,'file'),
+-					md=loadmodel(name); 
+-					if isa(md,'model'),
+-						if ~isempty(md.settings.upload_filename),
+-							disp(sprintf('   downloading model'));
+-							md=download(md);
+-							save(name,'md','-v7.3');
+-						end
+-					end
+-				end
+-
+-				%reset bool to false, so we stick with only downloading
+-				bool=false;
+-			end
+-
+ 		end%}}}
+ 		function savemodel(org,md) % {{{
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20210-20211.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20210-20211.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20210-20211.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/classes/organizer.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/organizer.m	(revision 20210)
++++ ../trunk-jpl/src/m/classes/organizer.m	(revision 20211)
+@@ -1,4 +1,4 @@
+-%XORGANIZER class definition
++%ORGANIZER class definition
+ %
+ %   Supported options:
+ %      repository: directory where all models will be saved
+@@ -6,12 +6,12 @@
+ %      steps:      requested steps
+ %
+ %   Usage:
+-%      org = xorganizer(varargin)
++%      org = organizer(varargin)
+ %
+ %   Examples:
+-%      org = xorganizer('repository','Models/','prefix','AGU2015','steps',0);  %build an empty organizer object with a given repository
++%      org = organizer('repository','Models/','prefix','AGU2015','steps',0);  %build an empty organizer object with a given repository
+ 
+-classdef xorganizer < handle
++classdef organizer < handle
+     properties (SetAccess=private) 
+ 		% {{{
+ 		currentstep   =0;
+@@ -24,7 +24,7 @@
+ 		%}}}
+ 	end
+ 	methods
+-		function org=xorganizer(varargin) % {{{
++		function org=organizer(varargin) % {{{
+ 
+ 			%process options
+ 			options=pairoptions(varargin{:});
Index: /issm/oecreview/Archive/19101-20495/ISSM-20211-20212.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20211-20212.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20211-20212.diff	(revision 20498)
@@ -0,0 +1,144 @@
+Index: ../trunk-jpl/test/NightlyRun/test208.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.m	(revision 20211)
++++ ../trunk-jpl/test/NightlyRun/test208.m	(revision 20212)
+@@ -4,7 +4,8 @@
+ md=parameterize(md,'../Par/SquareShelf.par');
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea','TotalGroundedBmb','TotalFloatingBmb'};
++md.transient.requested_outputs={'default','FloatingArea','GroundedArea','TotalGroundedBmb','TotalFloatingBmb'};
++md.basalforcings.floatingice_melting_rate(:)=1;
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+Index: ../trunk-jpl/test/Archives/Archive408.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive208.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive317.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20211)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20212)
+@@ -3072,56 +3072,74 @@
+ IssmDouble Tria::TotalFloatingBmb(void){/*{{{*/
+ 
+ 	/*The fbmb[kg yr-1] of one element is area[m2] * melting_rate [kg m^-2 yr^-1]*/
+-	IssmDouble base,fbmb,rho_ice;
++	int        point1;
++	bool       mainlyfloating;
++	IssmDouble fbmb=0;
++	IssmDouble rho_ice,fraction1,fraction2,floatingmelt,Jdet;
+ 	IssmDouble Total_Fbmb=0;
+ 	IssmDouble xyz_list[NUMVERTICES][3];
++	Gauss*     gauss     = NULL;
+ 
++   if(!IsIceInElement())return 0;
++
+ 	/*Get material parameters :*/
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++	Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 
++	Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+ 
+-   if(!IsIceInElement())return 0;
++	this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
++	/* Start  looping on the number of gaussian points: */
++	gauss = this->NewGauss(point1,fraction1,fraction2,1-mainlyfloating,2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 
+-	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++		gauss->GaussPoint(ig);
++		this->JacobianDeterminant(&Jdet,&xyz_list[0][0],gauss);
++		floatingmelt_input->GetInputValue(&floatingmelt,gauss);
++		fbmb+=floatingmelt*Jdet*gauss->weight;
++	}
+ 
+-	/*First calculate the area of the base (cross section triangle)
+-	 * http://en.wikipedia.org/wiki/Triangle
+-	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
+-	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));	// area of element in m2
++   Total_Fbmb=rho_ice*fbmb;	        // from volume to mass
+ 
+-	/*Now get the average SMB over the element*/
+-	Input* fbmb_input = inputs->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fbmb_input);
+-	fbmb_input->GetInputAverage(&fbmb);																								// average melting rate on element in m ice s-1
+-   Total_Fbmb=rho_ice*base*fbmb;																											// melting rate on element in kg s-1
+-
+ 	/*Return: */
++	delete gauss;
+ 	return Total_Fbmb;
+ }
+ /*}}}*/
+ IssmDouble Tria::TotalGroundedBmb(void){/*{{{*/
+ 
+ 	/*The gbmb[kg yr-1] of one element is area[m2] * gounded melting rate [kg m^-2 yr^-1]*/
+-	IssmDouble base,gbmb,rho_ice;
++	int        point1;
++	bool       mainlyfloating;
++	IssmDouble gbmb=0;
++	IssmDouble rho_ice,fraction1,fraction2,groundedmelt,Jdet;
+ 	IssmDouble Total_Gbmb=0;
+ 	IssmDouble xyz_list[NUMVERTICES][3];
++	Gauss*     gauss     = NULL;
+ 
++   if(!IsIceInElement())return 0;
++
+ 	/*Get material parameters :*/
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
++	Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 
++	Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
++	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+ 
+-   if(!IsIceInElement())return 0;
++	this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
++	/* Start  looping on the number of gaussian points: */
++	gauss = this->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 
+-	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
++		gauss->GaussPoint(ig);
++		this->JacobianDeterminant(&Jdet,&xyz_list[0][0],gauss);
++		groundedmelt_input->GetInputValue(&groundedmelt,gauss);
++		gbmb+=groundedmelt*Jdet*gauss->weight;
++	}
+ 
+-	/*First calculate the area of the base (cross section triangle)
+-	 * http://en.wikipedia.org/wiki/Triangle
+-	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
+-	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));	// area of element in m2
++   Total_Gbmb=rho_ice*gbmb;	        // from volume to mass
+ 
+-	/*Now get the average grounded melting rate over the element*/
+-	Input* gbmb_input = inputs->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gbmb_input);
+-	gbmb_input->GetInputAverage(&gbmb);																								// average smb on element in m ice s-1
+-   Total_Gbmb=rho_ice*base*gbmb;																											// smb on element in kg s-1
+-
+ 	/*Return: */
++	delete gauss;
+ 	return Total_Gbmb;
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.m
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 20211)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.m	(revision 20212)
+@@ -193,6 +193,10 @@
+ 		field = field*yts;
+ 	elseif strcmp(fieldname,'BasalforcingsFloatingiceMeltingRate'),
+ 		field = field*yts;
++	elseif strcmp(fieldname,'TotalFloatingBmb'),
++		field = field/10.^12*yts; %(GigaTon/year)
++	elseif strcmp(fieldname,'TotalGroundedBmb'),
++		field = field/10.^12*yts; %(GigaTon/year)
+ 	elseif strcmp(fieldname,'TotalSmb'),
+ 		field = field/10.^12*yts; %(GigaTon/year)
+ 	elseif strcmp(fieldname,'SmbMassBalance'),
Index: /issm/oecreview/Archive/19101-20495/ISSM-20212-20213.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20212-20213.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20212-20213.diff	(revision 20498)
@@ -0,0 +1,48 @@
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20212)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20213)
+@@ -248,8 +248,8 @@
+ 	/* Check if ice in element */
+ 	if(!element->IsIceInElement()) return;
+ 
+-	/* Only update Constraints at the base of grounded ice*/
+-	if(!(element->IsOnBase()) || element->IsFloating()) return;
++	/* Only update constraints at the base. */
++	if(!(element->IsOnBase())) return;
+ 
+ 	/*Intermediary*/
+ 	bool        isdynamicbasalspc;
+@@ -1207,12 +1207,6 @@
+ }/*}}}*/
+ void           EnthalpyAnalysis::GetBasalConstraints(Vector<IssmDouble>* vec_spc,Element* element){/*{{{*/
+ 
+-	/* Check if ice in element */
+-	if(!element->IsIceInElement()) return;
+-
+-	/* Only update Constraints at the base of grounded ice*/
+-	if(!(element->IsOnBase()) || element->IsFloating()) return;
+-
+ 	/*Intermediary*/
+ 	bool        isdynamicbasalspc;
+ 	IssmDouble	dt;
+@@ -1234,7 +1228,8 @@
+ 	/* Check if ice in element */
+ 	if(!element->IsIceInElement()) return;
+ 
+-	/* Only update Constraints at the base of grounded ice*/
++	/* Only update constraints at the base. 
++	 * Floating ice is not affected by basal BC decision chart. */
+ 	if(!(element->IsOnBase()) || element->IsFloating()) return;
+ 
+ 	/*Intermediary*/
+@@ -1304,7 +1299,8 @@
+ 	/* Check if ice in element */
+ 	if(!element->IsIceInElement()) return;
+ 
+-	/* Only update Constraints at the base of grounded ice*/
++	/* Only update constraints at the base. 
++	 * Floating ice is not affected by basal BC decision chart.*/
+ 	if(!(element->IsOnBase()) || element->IsFloating()) return;
+ 
+ 	/*Intermediary*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20213-20214.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20213-20214.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20213-20214.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/mech/mechanicalproperties.m
+===================================================================
+--- ../trunk-jpl/src/m/mech/mechanicalproperties.m	(revision 20213)
++++ ../trunk-jpl/src/m/mech/mechanicalproperties.m	(revision 20214)
+@@ -1,4 +1,4 @@
+-function md=mechanicalproperties(md,vx,vy)
++function md=mechanicalproperties(md,vx,vy,varargin)
+ %MECHANICALPROPERTIES - compute stress and strain rate for a goven velocity
+ %
+ %   this routine computes the components of the (deviatoric) stress tensor,
+@@ -23,6 +23,10 @@
+ 	disp('Warning: the model has some non SSA elements. These will be treated like SSA''s elements');
+ end
+ 
++%get damage, if passed
++options = pairoptions(varargin{:});
++damage = getfieldvalue(options,'damage',zeros(md.mesh.numberofvertices,1));
++
+ %initialization
+ numberofelements=md.mesh.numberofelements;
+ index=md.mesh.elements;
+@@ -61,8 +65,7 @@
+ 	location=find(second_inv==0 & power==0);
+ 	nu(location)=B_bar(location);
+ elseif isa(md.materials,'matdamageice')
+-	% FIXME this needs to use md.damage.D or damage from a solution
+-	Zinv=md.materials.rheology_Z(index)*summation/3;
++	Zinv=1-damage(index)*summation/3;
+ 	location=find(second_inv~=0);
+ 	nu(location)=Zinv(location).*B_bar(location)./(second_inv(location).^power(location));
+ 	location=find(second_inv==0 & power==0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20214-20215.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20214-20215.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20214-20215.diff	(revision 20498)
@@ -0,0 +1,338 @@
+Index: ../trunk-jpl/test/NightlyRun/test208.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test208.py	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test208.py	(revision 20215)
+@@ -13,9 +13,10 @@
+ md=triangle(model(),'../Exp/Square.exp',150000)
+ md=setmask(md,'all','')
+ md=parameterize(md,'../Par/SquareShelf.py')
++md.basalforcings.floatingice_melting_rate[:]=1.
+ md=setflowequation(md,'SSA','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb']
++md.transient.requested_outputs=['default','FloatingArea','GroundedArea','TotalFloatingBmb','TotalGroundedBmb']
+ md=solve(md,TransientSolutionEnum())
+ 
+ 
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 20215)
+@@ -11,6 +11,7 @@
+ md=triangle(model(),'../Exp/Square.exp',200000.)
+ md=setmask(md,'','')
+ md=parameterize(md,'../Par/SquareSheetConstrained.py')
++md.basalforcings.groundedice_melting_rate[:]=5.
+ md.extrude(3,1.)
+ md=setflowequation(md,'HO','all')
+ md.cluster=generic('name',oshostname(),'np',3)
+Index: ../trunk-jpl/test/NightlyRun/test317.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.m	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test317.m	(revision 20215)
+@@ -2,6 +2,7 @@
+ md=triangle(model(),'../Exp/Square.exp',200000.);
+ md=setmask(md,'','');
+ md=parameterize(md,'../Par/SquareSheetConstrained.par');
++md.basalforcings.groundedice_melting_rate(:)=5;
+ md=extrude(md,3,1.);
+ md=setflowequation(md,'HO','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+Index: ../trunk-jpl/test/NightlyRun/test408.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.py	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test408.py	(revision 20215)
+@@ -12,14 +12,16 @@
+ md=triangle(model(),'../Exp/Square.exp',150000.)
+ md=setmask(md,'../Exp/SquareShelf.exp','')
+ md=parameterize(md,'../Par/SquareSheetShelf.py')
++md=extrude(md,3,1.)
+ md=setflowequation(md,'SSA','all')
++md.transient.isthermal=False
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.transient.requested_outputs=['default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb']
++md.transient.requested_outputs=['default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb']
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3']
+-field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3']
++field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+@@ -29,8 +31,10 @@
+ 	md.results.TransientSolution[0].Surface,\
+ 	md.results.TransientSolution[0].Thickness,\
+ 	md.results.TransientSolution[0].GroundedArea,\
++	md.results.TransientSolution[0].FloatingArea,\
+ 	md.results.TransientSolution[0].TotalFloatingBmb,\
+ 	md.results.TransientSolution[0].TotalGroundedBmb,\
++	md.results.TransientSolution[0].TotalSmb,\
+ 	md.results.TransientSolution[1].Vx,\
+ 	md.results.TransientSolution[1].Vy,\
+ 	md.results.TransientSolution[1].Vel,\
+@@ -39,8 +43,10 @@
+ 	md.results.TransientSolution[1].Surface,\
+ 	md.results.TransientSolution[1].Thickness,\
+ 	md.results.TransientSolution[1].GroundedArea,\
+-	md.results.TransientSolution[2].TotalFloatingBmb,\
+-	md.results.TransientSolution[2].TotalGroundedBmb,\
++	md.results.TransientSolution[1].FloatingArea,\
++	md.results.TransientSolution[1].TotalFloatingBmb,\
++	md.results.TransientSolution[1].TotalGroundedBmb,\
++	md.results.TransientSolution[1].TotalSmb,\
+ 	md.results.TransientSolution[2].Vx,\
+ 	md.results.TransientSolution[2].Vy,\
+ 	md.results.TransientSolution[2].Vel,\
+@@ -49,6 +55,8 @@
+ 	md.results.TransientSolution[2].Surface,\
+ 	md.results.TransientSolution[2].Thickness,\
+ 	md.results.TransientSolution[2].GroundedArea,\
++	md.results.TransientSolution[2].FloatingArea,\
+ 	md.results.TransientSolution[2].TotalFloatingBmb,\
+ 	md.results.TransientSolution[2].TotalGroundedBmb,\
++	md.results.TransientSolution[2].TotalSmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test433.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test433.m	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test433.m	(revision 20215)
+@@ -39,6 +39,8 @@
+ element_on_iceshelf_subelement=(md.results.TransientSolution.MaskGroundediceLevelset);
+ 
+ md.groundingline.migration='SubelementMigration2';
++md.transient.isstressbalance=1;
++md=setflowequation(md,'SSA','all');
+ md=solve(md,TransientSolutionEnum());
+ element_on_iceshelf_subelement2=(md.results.TransientSolution.MaskGroundediceLevelset);
+ 
+Index: ../trunk-jpl/test/NightlyRun/test408.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.m	(revision 20214)
++++ ../trunk-jpl/test/NightlyRun/test408.m	(revision 20215)
+@@ -1,19 +1,21 @@
+-%Test Name: SquareSheetShelfTranSSA2d
++%Test Name: SquareSheetShelfTranSSA3d
+ md=triangle(model(),'../Exp/Square.exp',150000.);
+ md=setmask(md,'../Exp/SquareShelf.exp','');
+ md=parameterize(md,'../Par/SquareSheetShelf.par');
++md=extrude(md,3,1);
++md.transient.isthermal=0;
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+-md.transient.requested_outputs={'default','GroundedArea','TotalFloatingBmb','TotalGroundedBmb'};
++md.transient.requested_outputs={'default','GroundedArea','FloatingArea','TotalFloatingBmb','TotalGroundedBmb','TotalSmb'};
+ md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1',...
+-	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2',...
+-	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3'};
+-field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++field_names     ={'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1',...
++	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2',...
++	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3'};
++field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+@@ -23,8 +25,10 @@
+ 	(md.results.TransientSolution(1).Surface),...
+ 	(md.results.TransientSolution(1).Thickness),...
+ 	(md.results.TransientSolution(1).GroundedArea),...
++	(md.results.TransientSolution(1).FloatingArea),...
+ 	(md.results.TransientSolution(1).TotalFloatingBmb),...
+ 	(md.results.TransientSolution(1).TotalGroundedBmb),...
++	(md.results.TransientSolution(1).TotalSmb),...
+ 	(md.results.TransientSolution(2).Vx),...
+ 	(md.results.TransientSolution(2).Vy),...
+ 	(md.results.TransientSolution(2).Vel),...
+@@ -33,8 +37,10 @@
+ 	(md.results.TransientSolution(2).Surface),...
+ 	(md.results.TransientSolution(2).Thickness),...
+ 	(md.results.TransientSolution(2).GroundedArea),...
++	(md.results.TransientSolution(2).FloatingArea),...
+ 	(md.results.TransientSolution(2).TotalFloatingBmb),...
+ 	(md.results.TransientSolution(2).TotalGroundedBmb),...
++	(md.results.TransientSolution(2).TotalSmb),...
+ 	(md.results.TransientSolution(3).Vx),...
+ 	(md.results.TransientSolution(3).Vy),...
+ 	(md.results.TransientSolution(3).Vel),...
+@@ -43,6 +49,8 @@
+ 	(md.results.TransientSolution(3).Surface),...
+ 	(md.results.TransientSolution(3).Thickness),...
+ 	(md.results.TransientSolution(3).GroundedArea),...
++	(md.results.TransientSolution(3).FloatingArea),...
+ 	(md.results.TransientSolution(3).TotalFloatingBmb),...
+ 	(md.results.TransientSolution(3).TotalGroundedBmb),...
++	(md.results.TransientSolution(3).TotalSmb),...
+ 	};
+Index: ../trunk-jpl/test/Archives/Archive408.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20214)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20215)
+@@ -3090,7 +3090,7 @@
+ 
+ 	this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
+ 	/* Start  looping on the number of gaussian points: */
+-	gauss = this->NewGauss(point1,fraction1,fraction2,1-mainlyfloating,2);
++	gauss = this->NewGauss(point1,fraction1,fraction2,1-mainlyfloating,3);
+ 	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 
+ 		gauss->GaussPoint(ig);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20214)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20215)
+@@ -1887,6 +1887,10 @@
+ 	return new GaussPenta(area_coordinates,order_horiz,order_vert);
+ }
+ /*}}}*/
++Gauss*     Penta::NewGauss(int point1,IssmDouble fraction1,IssmDouble fraction2,bool mainlyfloating,int order){/*{{{*/
++	return new GaussPenta(point1,fraction1,fraction2,mainlyfloating,order);
++}
++/*}}}*/
+ Gauss*     Penta::NewGaussBase(int order){/*{{{*/
+ 	return new GaussPenta(0,1,2,order);
+ }
+@@ -2637,59 +2641,75 @@
+ }/*}}}*/
+ IssmDouble Penta::TotalFloatingBmb(void){/*{{{*/
+ 
+-	/*The fbmb[Gt yr-1] of one element is area[m2] * floating basal melt [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
+-	IssmDouble base,fbmb,rho_ice;
++	/*The fbmb[kg yr-1] of one element is area[m2] * melting_rate [kg m^-2 yr^-1]*/
++	int        point1;
++	bool       mainlyfloating;
++	IssmDouble fbmb=0;
++	IssmDouble rho_ice,fraction1,fraction2,floatingmelt,Jdet;
+ 	IssmDouble Total_Fbmb=0;
+ 	IssmDouble xyz_list[NUMVERTICES][3];
++	Gauss*     gauss     = NULL;
+ 
++   if(!IsIceInElement() || !IsOnBase())return 0;
++
+ 	/*Get material parameters :*/
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+-
+-	if(!IsIceInElement() || !IsOnBase()) return 0.;
+-
++	Input* floatingmelt_input = this->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(floatingmelt_input); 
++	Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
+ 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+ 
+-	/*First calculate the area of the base (cross section triangle)
+-	 * http://en.wikipedia.org/wiki/Triangle
+-	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
+-	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++	this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
++	/* Start  looping on the number of gaussian points: */
++	gauss = this->NewGauss(point1,fraction1,fraction2,1-mainlyfloating,3);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 
+-	/*Now get the average Floating melt rate over the element*/
+-	Input* fbmb_input = inputs->GetInput(BasalforcingsFloatingiceMeltingRateEnum); _assert_(fbmb_input);
++		gauss->GaussPoint(ig);
++		this->JacobianDeterminantBase(&Jdet,&xyz_list[0][0],gauss);
++		floatingmelt_input->GetInputValue(&floatingmelt,gauss);
++		fbmb+=floatingmelt*Jdet*gauss->weight;
++	}
+ 
+-	fbmb_input->GetInputAverage(&fbmb);
+-	Total_Fbmb=rho_ice*base*fbmb;// floating melt rate on element in kg s-1
++   Total_Fbmb=rho_ice*fbmb;	        // from volume to mass
+ 
+ 	/*Return: */
++	delete gauss;
+ 	return Total_Fbmb;
+ }
+ /*}}}*/
+ IssmDouble Penta::TotalGroundedBmb(void){/*{{{*/
+ 
+-	/*The grounded ice melting rate [Gt yr-1] of one element is area[m2] * grounded melt [ m ice yr^-1] * rho_ice [kg m-3] / 1e+10^12 */
+-	IssmDouble base,gbmb,rho_ice;
++	/*The gbmb[kg yr-1] of one element is area[m2] * gounded melting rate [kg m^-2 yr^-1]*/
++	int        point1;
++	bool       mainlyfloating;
++	IssmDouble gbmb=0;
++	IssmDouble rho_ice,fraction1,fraction2,groundedmelt,Jdet;
+ 	IssmDouble Total_Gbmb=0;
+ 	IssmDouble xyz_list[NUMVERTICES][3];
++	Gauss*     gauss     = NULL;
+ 
++   if(!IsIceInElement() || !IsOnBase())return 0;
++
+ 	/*Get material parameters :*/
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+-
+-	if(!IsIceInElement() || !IsOnBase()) return 0.;
+-
++	Input* groundedmelt_input = this->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(groundedmelt_input); 
++	Input* gllevelset_input = this->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
+ 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+ 
+-	/*First calculate the area of the base (cross section triangle)
+-	 * http://en.wikipedia.org/wiki/Triangle
+-	 * base = 1/2 abs((xA-xC)(yB-yA)-(xA-xB)(yC-yA))*/
+-	base = 1./2. * fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
++	this->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
++	/* Start  looping on the number of gaussian points: */
++	gauss = this->NewGauss(point1,fraction1,fraction2,mainlyfloating,3);
++	for(int ig=gauss->begin();ig<gauss->end();ig++){
+ 
+-	/*Now get the average grounded melt over the element*/
+-	Input* gbmb_input = inputs->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(gbmb_input);
++		gauss->GaussPoint(ig);
++		this->JacobianDeterminantBase(&Jdet,&xyz_list[0][0],gauss);
++		groundedmelt_input->GetInputValue(&groundedmelt,gauss);
++		gbmb+=groundedmelt*Jdet*gauss->weight;
++	}
+ 
+-	gbmb_input->GetInputAverage(&gbmb);
+-	Total_Gbmb=rho_ice*base*gbmb;// grounded melt on element in kg s-1
++   Total_Gbmb=rho_ice*gbmb;	        // from volume to mass
+ 
+ 	/*Return: */
++	delete gauss;
+ 	return Total_Gbmb;
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20214)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20215)
+@@ -119,7 +119,7 @@
+ 		Gauss*         NewGauss(int order);
+ 		Gauss*         NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order){_error_("not implemented yet");};
+ 		Gauss*         NewGauss(IssmDouble* xyz_list, IssmDouble* xyz_list_front,int order_horiz,int order_vert);
+-		Gauss*         NewGauss(int point1,IssmDouble fraction1,IssmDouble fraction2,bool mainlyfloating,int order){_error_("not implemented yet");};
++		Gauss*         NewGauss(int point1,IssmDouble fraction1,IssmDouble fraction2,bool mainlyfloating,int order);
+ 		Gauss*         NewGaussBase(int order);
+ 		Gauss*         NewGaussLine(int vertex1,int vertex2,int order);
+ 		Gauss*         NewGaussTop(int order);
+Index: ../trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 20214)
++++ ../trunk-jpl/src/c/classes/gauss/GaussPenta.cpp	(revision 20215)
+@@ -286,9 +286,9 @@
+ 					_error_("index "<<index<<" not supported yet");
+ 			}
+ 			this->weights[ig] = this->weights[ig]*r1*r2;
+-			this->coords4=xNew<IssmDouble>(numgauss);
+-			for(ig=0;ig<numgauss;ig++) this->coords4[ig]=-1.0;
+ 		}
++		this->coords4=xNew<IssmDouble>(numgauss);
++		for(ig=0;ig<numgauss;ig++) this->coords4[ig]=-1.0;
+ 	}
+ 	else{
+ 		/*Double number of gauss points*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20215-20216.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20215-20216.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20215-20216.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20215)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20216)
+@@ -24,6 +24,7 @@
+ md.cluster=generic('name',oshostname(),'np',3)
+ md.masstransport.requested_outputs=['IceVolume']
+ md.verbose=verbose('autodiff',True)
++md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ #setup autodiff parameters
+ index=1 #this is the scalar component we are checking against
+@@ -84,7 +85,7 @@
+ #retrieve directly
+ dVdh_ad=md.results.MasstransportSolution.AutodiffJacobian
+ 
+-print "dV/dh: analytical:  {0}\n       using adolc:  {1}\n".format(dVdh_an,dVdh_ad)
++print "dV/dh: analytical:  #16.16g\n       using adolc:  #16.16g\n" % (dVdh_an,dVdh_ad)
+ 
+ #Fields and tolerances to track changes
+ field_names     =['dV/dh-dV/dh0']
Index: /issm/oecreview/Archive/19101-20495/ISSM-20216-20217.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20216-20217.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20216-20217.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20216)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20217)
+@@ -2344,8 +2344,7 @@
+ 	if(migration_style==SubelementMigration2Enum){
+ 		gllevelset_input=element->GetInput(MaskGroundediceLevelsetEnum); _assert_(gllevelset_input);
+ 		element->GetGroundedPart(&point1,&fraction1,&fraction2,&mainlyfloating);
+-		//gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
+-		gauss=element->NewGaussBase(2);
++		gauss = element->NewGauss(point1,fraction1,fraction2,mainlyfloating,2);
+ 	}
+ 	else{
+ 		gauss=element->NewGaussBase(2);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20217-20218.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20217-20218.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20217-20218.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20217)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20218)
+@@ -21,7 +21,7 @@
+ md=setmask(md,'all','')
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+-md.cluster=generic('name',oshostname(),'np',3)
++md.cluster=generic('name',oshostname(),'np',1)
+ md.masstransport.requested_outputs=['IceVolume']
+ md.verbose=verbose('autodiff',True)
+ md.toolkits.DefaultAnalysis=issmgslsolver()
Index: /issm/oecreview/Archive/19101-20495/ISSM-20218-20219.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20218-20219.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20218-20219.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/scripts/BinRead.py
+===================================================================
+--- ../trunk-jpl/scripts/BinRead.py	(revision 20218)
++++ ../trunk-jpl/scripts/BinRead.py	(revision 20219)
+@@ -6,9 +6,6 @@
+ import math
+ import struct
+ import argparse
+-from MatlabFuncs import *
+-from EnumDefinitions import *
+-from EnumToString import EnumToString
+ 
+ def BinRead(filin,filout=''): #{{{
+ 
+@@ -164,5 +161,9 @@
+ 	parser.add_argument('-o','--filout', help='optional name of text output file', default='')
+ 	args = parser.parse_args()
+ 
++	from MatlabFuncs import *
++	from EnumDefinitions import *
++	from EnumToString import EnumToString
++
+ 	BinRead(args.filin, args.filout)
+-#}}}
+\ No newline at end of file
++#}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20219-20220.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20219-20220.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20219-20220.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test317.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test317.py	(revision 20219)
++++ ../trunk-jpl/test/NightlyRun/test317.py	(revision 20220)
+@@ -66,6 +66,6 @@
+ 	md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
+ 	md.results.TransientSolution[2].GroundedArea,\
+ 	md.results.TransientSolution[2].FloatingArea,\
+-	md.results.TransientSolution[3].TotalFloatingBmb,\
+-	md.results.TransientSolution[3].TotalGroundedBmb,\
++	md.results.TransientSolution[2].TotalFloatingBmb,\
++	md.results.TransientSolution[2].TotalGroundedBmb,\
+ 	]
+Index: ../trunk-jpl/test/NightlyRun/test408.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.py	(revision 20219)
++++ ../trunk-jpl/test/NightlyRun/test408.py	(revision 20220)
+@@ -12,7 +12,7 @@
+ md=triangle(model(),'../Exp/Square.exp',150000.)
+ md=setmask(md,'../Exp/SquareShelf.exp','')
+ md=parameterize(md,'../Par/SquareSheetShelf.py')
+-md=extrude(md,3,1.)
++md.extrude(3,1.)
+ md=setflowequation(md,'SSA','all')
+ md.transient.isthermal=False
+ md.cluster=generic('name',oshostname(),'np',3)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20220-20221.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20220-20221.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20220-20221.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/test/NightlyRun/test408.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test408.py	(revision 20220)
++++ ../trunk-jpl/test/NightlyRun/test408.py	(revision 20221)
+@@ -1,4 +1,4 @@
+-#Test Name: SquareSheetShelfTranSSA2d
++#Test Name: SquareSheetShelfTranSSA3d
+ import numpy
+ from model import *
+ from EnumDefinitions import *
+@@ -20,7 +20,7 @@
+ md=solve(md,TransientSolutionEnum())
+ 
+ #Fields and tolerances to track changes
+-field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3']
++field_names     =['Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1','TotalFloatingBmb1','TotalGroundedBmb1','TotalSmb1','Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2','TotalFloatingBmb2','TotalGroundedBmb2','TotalSmb2','Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3','TotalFloatingBmb3','TotalGroundedBmb3','TotalSmb3']
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20221-20222.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20221-20222.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20221-20222.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/m/solve/parseresultsfromdisk.py
+===================================================================
+--- ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 20221)
++++ ../trunk-jpl/src/m/solve/parseresultsfromdisk.py	(revision 20222)
+@@ -213,6 +213,10 @@
+ 			field = field*yts
+ 		elif m.strcmp(fieldname,'BasalforcingsGroundediceMeltingRate'):
+ 			field = field*yts
++		elif m.strcmp(fieldname,'TotalFloatingBmb'):
++			field = field/10.**12.*yts #(GigaTon/year)
++		elif m.strcmp(fieldname,'TotalGroundedBmb'):
++			field = field/10.**12.*yts #(GigaTon/year)
+ 		elif m.strcmp(fieldname,'TotalSmb'):
+ 			field = field/10.**12.*yts #(GigaTon/year)
+ 		elif m.strcmp(fieldname,'SmbMassBalance'):
Index: /issm/oecreview/Archive/19101-20495/ISSM-20222-20223.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20222-20223.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20222-20223.diff	(revision 20498)
@@ -0,0 +1,387 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20222)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20223)
+@@ -3,6 +3,8 @@
+ from EnumDefinitions import *
+ from numpy import *
+ from pairoptions import *
++from mesh3dsurface import *
++import subprocess
+ 
+ def gmshplanet(*varargin):
+ #GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo
+@@ -29,8 +31,8 @@
+ 	resolution=options.getfieldvalue('resolution')*1000
+ 
+ 	#initialize mesh: 
+-	#mesh=mesh3dsurface()
+-	mesh=mesh2d()
++	mesh=mesh3dsurface()
++	
+ 
+ 	#create .geo file:  {{{
+ 	fid=open('sphere.geo','w')
+@@ -43,44 +45,44 @@
+ 		fid.write('Mesh.RemeshAlgorithm= 1;\n')
+ 	fid.write('resolution=%g;\n'%resolution)
+ 	fid.write('radius=%g;\n'%radius)
+-	fid.write('Point(1) = [0.0,0.0,0.0,resolution];\n')
+-	fid.write('Point(2) = [radius,0.0,0.0,resolution];\n')
+-	fid.write('Point(3) = [0,radius,0.0,resolution];\n')
+-	fid.write('Circle(1) = [2,1,3];\n')
+-	fid.write('Point(4) = [-radius,0,0.0,resolution];\n')
+-	fid.write('Point(5) = [0,-radius,0.0,resolution];\n')
+-	fid.write('Circle(2) = [3,1,4];\n')
+-	fid.write('Circle(3) = [4,1,5];\n')
+-	fid.write('Circle(4) = [5,1,2];\n')
+-	fid.write('Point(6) = [0,0,-radius,resolution];\n')
+-	fid.write('Point(7) = [0,0,radius,resolution];\n')
+-	fid.write('Circle(5) = [3,1,6];\n')
+-	fid.write('Circle(6) = [6,1,5];\n')
+-	fid.write('Circle(7) = [5,1,7];\n')
+-	fid.write('Circle(8) = [7,1,3];\n')
+-	fid.write('Circle(9) = [2,1,7];\n')
+-	fid.write('Circle(10) = [7,1,4];\n')
+-	fid.write('Circle(11) = [4,1,6];\n')
+-	fid.write('Circle(12) = [6,1,2];\n')
+-	fid.write('Line Loop(13) = [2,8,-10];\n')
+-	fid.write('Ruled Surface(14) = [13];\n')
+-	fid.write('Line Loop(15) = [10,3,7];\n')
+-	fid.write('Ruled Surface(16) = [15];\n')
+-	fid.write('Line Loop(17) = [-8,-9,1];\n')
+-	fid.write('Ruled Surface(18) = [17];\n')
+-	fid.write('Line Loop(19) = [-11,-2,5];\n')
+-	fid.write('Ruled Surface(20) = [19];\n')
+-	fid.write('Line Loop(21) = [-5,-12,-1];\n')
+-	fid.write('Ruled Surface(22) = [21];\n')
+-	fid.write('Line Loop(23) = [-3,11,6];\n')
+-	fid.write('Ruled Surface(24) = [23];\n')
+-	fid.write('Line Loop(25) = [-7,4,9];\n')
+-	fid.write('Ruled Surface(26) = [25];\n')
+-	fid.write('Line Loop(27) = [-4,12,-6];\n')
+-	fid.write('Ruled Surface(28) = [27];\n')
+-	fid.write('Surface Loop(29) = [28,26,16,14,20,24,22,18];\n')
+-	fid.write('Volume(30) = [29];\n')
+-	fid.write('Physical Surface(1) = [28,26,16,14,20,24,22,18];\n')
++	fid.write('Point(1) = {0.0,0.0,0.0,resolution};\n')
++	fid.write('Point(2) = {radius,0.0,0.0,resolution};\n')
++	fid.write('Point(3) = {0,radius,0.0,resolution};\n')
++	fid.write('Circle(1) = {2,1,3};\n')
++	fid.write('Point(4) = {-radius,0,0.0,resolution};\n')
++	fid.write('Point(5) = {0,-radius,0.0,resolution};\n')
++	fid.write('Circle(2) = {3,1,4};\n')
++	fid.write('Circle(3) = {4,1,5};\n')
++	fid.write('Circle(4) = {5,1,2};\n')
++	fid.write('Point(6) = {0,0,-radius,resolution};\n')
++	fid.write('Point(7) = {0,0,radius,resolution};\n')
++	fid.write('Circle(5) = {3,1,6};\n')
++	fid.write('Circle(6) = {6,1,5};\n')
++	fid.write('Circle(7) = {5,1,7};\n')
++	fid.write('Circle(8) = {7,1,3};\n')
++	fid.write('Circle(9) = {2,1,7};\n')
++	fid.write('Circle(10) = {7,1,4};\n')
++	fid.write('Circle(11) = {4,1,6};\n')
++	fid.write('Circle(12) = {6,1,2};\n')
++	fid.write('Line Loop(13) = {2,8,-10};\n')
++	fid.write('Ruled Surface(14) = {13};\n')
++	fid.write('Line Loop(15) = {10,3,7};\n')
++	fid.write('Ruled Surface(16) = {15};\n')
++	fid.write('Line Loop(17) = {-8,-9,1};\n')
++	fid.write('Ruled Surface(18) = {17};\n')
++	fid.write('Line Loop(19) = {-11,-2,5};\n')
++	fid.write('Ruled Surface(20) = {19};\n')
++	fid.write('Line Loop(21) = {-5,-12,-1};\n')
++	fid.write('Ruled Surface(22) = {21};\n')
++	fid.write('Line Loop(23) = {-3,11,6};\n')
++	fid.write('Ruled Surface(24) = {23};\n')
++	fid.write('Line Loop(25) = {-7,4,9};\n')
++	fid.write('Ruled Surface(26) = {25};\n')
++	fid.write('Line Loop(27) = {-4,12,-6};\n')
++	fid.write('Ruled Surface(28) = {27};\n')
++	fid.write('Surface Loop(29) = {28,26,16,14,20,24,22,18};\n')
++	fid.write('Volume(30) = {29};\n')
++	fid.write('Physical Surface(1) = {28,26,16,14,20,24,22,18};\n')
+ 	fid.write('Physical Volume(2) = 30;\n')
+ 	fid.close()
+ 	#}}}
+@@ -107,47 +109,53 @@
+ 
+ 	#call gmsh
+ 	if options.exist('refine'):
+-		eval('!gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos')
++		subprocess.call('gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos',shell=True)
+ 	else:
+ 		#call gmsh
+-		eval('!gmsh -tol 1e-8 -2 sphere.geo')
++		subprocess.call('gmsh -tol 1e-8 -2 sphere.geo',shell=True)
+ 
+ 	#import mesh:  {{{
+ 	fid=open('sphere.msh','r')
+ 
+ 	#Get Mesh format
+-	A=fscanf(fid,'%s',1)
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$MeshFormat'):
+ 		raise RuntimeError(['Expecting $MeshFormat (', A, ')'])
+ 
+-	A=fscanf(fid,'%f %i %i',[1, 3])
+-	A=fscanf(fid,'%s',1)
++	A=fid.readline().split()
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$EndMeshFormat'):
+ 		raise RuntimeError(['Expecting $EndMeshFormat (', A, ')'])
+ 
+ 	#Nodes
+-	A=fscanf(fid,'%s',1)
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$Nodes'):
+ 		raise RuntimeError(['Expecting $Nodes (', A, ')'])
+ 
+-	mesh.numberofvertices=fscanf(fid,'%i',1)
+-	A=fscanf(fid,'%i %f %f %f',[4, mesh.numberofvertices])
+-	mesh.x = transpose(A[1,:])
+-	mesh.y = transpose(A[2,:])
+-	mesh.z = transpose(A[3,:])
++	mesh.numberofvertices=int(fid.readline().strip())
++	mesh.x=empty(mesh.numberofvertices)
++	mesh.y=empty(mesh.numberofvertices)
++	mesh.z=empty(mesh.numberofvertices)
++	for i in range(mesh.numberofvertices):
++		A=fid.readline().split()
++		mesh.x[i]=float(A[0])
++		mesh.y[i]=float(A[1])
++		mesh.z[i]=float(A[2])
+ 
+-	A=fscanf(fid,'%s',1)
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$EndNodes'):
+ 		raise RuntimeError(['Expecting $EndNodes (', A, ')'])
+ 
+ 	#Elements
+-	A=fscanf(fid,'%s',1)
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$Elements'):
+ 		raise RuntimeError(['Expecting $Elements (', A, ')'])
+-	mesh.numberofelements=fscanf(fid,'%i',1)
+-	A=fscanf(fid,'%i %i %i %i %i %i %i %i',[8, mesh.numberofelements])
+-	mesh.elements=transpose(A[6:8,:]) 
+-	A=fscanf(fid,'%s',1)
++	mesh.numberofelements=int(fid.readline().strip())
++	mesh.elements=empty([mesh.numberofelements,3])
++	for i in range(mesh.numberofelements):
++		A=fid.readline().split()
++		mesh.elements[i]=[float(A[5]),float(A[6]),float(A[7])]
++	A=fid.readline().strip()
+ 	if not strcmp(A,'$EndElements'):
+ 		raise RuntimeError(['Expecting $EndElements (', A, ')'])
+ 	fid.close() 
+@@ -155,12 +163,11 @@
+ 
+ 	#figure out other fields in mesh3dsurface: 
+ 	mesh.r=sqrt(mesh.x**2+mesh.y**2+mesh.z**2)
+-	mesh.lat = asin(mesh.z/mesh.r)/pi*180
+-	mesh.long = atan2(mesh.y,mesh.x)/pi*180
++	mesh.lat = arcsin(mesh.z/mesh.r)/pi*180
++	mesh.long = arctan2(mesh.y,mesh.x)/pi*180
+ 
+ 	#erase files: 
+-	eval('!rm -rf sphere.geo sphere.msh sphere.pos')
++	subprocess.call('rm -rf sphere.geo sphere.msh sphere.pos',shell=True)
+ 
+-
+ 	#return mesh: 
+ 	return mesh
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 20223)
+@@ -0,0 +1,188 @@
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++
++class mesh3dsurface(object):
++#MESH3DSURFACE class definition
++#
++#   Usage:
++#      mesh3dsurface=mesh3dsurface();
++	def __init__(self,*args): # {{{
++		self.x                           = NaN
++		self.y                           = NaN
++		self.z                           = NaN
++		self.elements                    = NaN
++		self.numberofelements            = 0
++		self.numberofvertices            = 0
++		self.numberofedges               = 0
++
++		self.lat                         = NaN
++		self.long                        = NaN
++		self.r                           = NaN
++
++		self.vertexonboundary            = NaN
++		self.edges                       = NaN
++		self.segments                    = NaN
++		self.segmentmarkers              = NaN
++		self.vertexconnectivity          = NaN
++		self.elementconnectivity         = NaN
++		self.average_vertex_connectivity = 0
++
++		self.extractedvertices           = NaN
++		self.extractedelements           = NaN
++		
++		if len(args)==0:
++			self.setdefaultparameters()
++		elif len(args)==1:
++			self=mesh3dsurface()
++			arg=args[1]
++			fields=fieldnames(arg)
++			for i in range(len(fields)):
++				field=fields[i]
++				if ismember(field,properties('mesh3dsurface')):
++					self.field=arg.field
++		else:
++			raise RuntimeError('constructor not supported')	
++
++		#set defaults
++		self.setdefaultparameters()
++	#}}}
++	def __repr__(self): # {{{
++		string='   2D tria Mesh (horizontal):'
++		string+='\n      Elements and vertices:'
++		string="%s\n%s"%(string,fielddisplay(self,'numberofelements','number of elements'))
++		string="%s\n%s"%(string,fielddisplay(self,'numberofvertices','number of vertices'))
++		string="%s\n%s"%(string,fielddisplay(self,'elements','vertex indices of the mesh elements'))
++		string="%s\n%s"%(string,fielddisplay(self,'x','vertices x coordinate [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'y','vertices y coordinate [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'z','vertices z coordinate [m]'))
++		string="%s\n%s"%(string,fielddisplay(self,'lat','vertices latitude [degrees]'))
++		string="%s\n%s"%(string,fielddisplay(self,'long','vertices longitude [degrees]'))
++		string="%s\n%s"%(string,fielddisplay(self,'r','vertices radius [m]'))
++		
++		string="%s\n%s"%(string,fielddisplay(self,'edges','edges of the 2d mesh (vertex1 vertex2 element1 element2)'))
++		string="%s\n%s"%(string,fielddisplay(self,'numberofedges','number of edges of the 2d mesh'))
++
++		string+='\n      Properties:'
++		string="%s\n%s"%(string,fielddisplay(self,'vertexonboundary','vertices on the boundary of the domain flag list'))
++		string="%s\n%s"%(string,fielddisplay(self,'segments','edges on domain boundary (vertex1 vertex2 element)'))
++		string="%s\n%s"%(string,fielddisplay(self,'segmentmarkers','number associated to each segment'))
++		string="%s\n%s"%(string,fielddisplay(self,'vertexconnectivity','list of vertices connected to vertex_i'))
++		string="%s\n%s"%(string,fielddisplay(self,'elementconnectivity','list of vertices connected to element_i'))
++		string="%s\n%s"%(string,fielddisplay(self,'average_vertex_connectivity','average number of vertices connected to one vertex'))
++
++		string+='\n      Extracted model():'
++		string="%s\n%s"%(string,fielddisplay(self,'extractedvertices','vertices extracted from the model()'))
++		string="%s\n%s"%(string,fielddisplay(self,'extractedelements','elements extracted from the model()')) 
++		# }}}
++	def loadobj(self): # {{{
++		# This def is directly called by matlab when a model() selfect is
++		# loaded. Update old properties here
++
++		#2014 Oct. 1st
++		if isstruct(self):
++			oldself=self
++			#Assign property values from struct
++			self=structtoobj(mesh3dsurface(),oldself)
++			if isfield(oldself,'hemisphere'):
++				print ('md.mesh.hemisphere has been automatically converted to EPSG code')
++				if strcmpi(oldself.hemisphere,'n'):
++					self.epsg=3413
++				else:
++					self.epsg=3031
++		# }}}
++	def setdefaultparameters(self): # {{{
++
++		#the connectivity is the averaged number of nodes linked to a
++		#given node through an edge. This connectivity is used to initially
++		#allocate memory to the stiffness matrix. A value of 16 seems to
++		#give a good memory/time ration. This value can be checked in
++		#trunk/test/Miscellaneous/runme.m
++		self.average_vertex_connectivity=25
++		return self
++		# }}}
++	def checkconsistency(self,md,solution,analyses): # {{{
++
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
++		if any(not ismember([md.mesh.numberofvertices],sort(unique(md.mesh.elements)))):
++			md = checkmessage(md,'orphan nodes have been found. Check the mesh outline')
++		
++		md = checkfield(md,'fieldname','mesh.numberofelements','>',0)
++		md = checkfield(md,'fieldname','mesh.numberofvertices','>',0)
++		md = checkfield(md,'fieldname','mesh.average_vertex_connectivity','>=',9,'message','"mesh.average_vertex_connectivity" should be at least 9 in 2d')
++
++		if (solution==ThermalSolutionEnum()):
++			md = checkmessage(md,'thermal not supported for 2d mesh');
++			
++		return md
++		# }}}
++	def marshall(self,md,fid): # {{{
++		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain', domaintype(obj)]),'format','Integer')
++		WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension(obj),'format','Integer')
++		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(elementtype(obj)),'format','Integer')
++		WriteData(fid,'object',obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',obj,'class','mesh','fieldname','z','format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshLatEnum(),'data',obj.lat,'format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshLongEnum(),'data',obj.long,'format','DoubleMat','mattype',1)
++		WriteData(fid,'object',obj,'class','mesh','fieldname','r','format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshZEnum(),'data',zeros(obj.numberofvertices,1),'format','DoubleMat','mattype',1)
++		WriteData(fid,'object',obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofelements','format','Integer')
++		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer')
++		WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
++		WriteData(fid,'object',obj,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1)
++		# }}}
++	def domaintype(self): # {{{
++		return '3Dsurface'
++		# }}}
++	def dimension(self): # {{{
++		return 2
++		# }}}
++	def elementtype(self): # {{{
++		return 'Tria'
++		# }}}
++	def processmesh(self,options): # {{{
++	
++		isplanet = 1
++		is2d     = 0
++
++		elements = self.elements
++		x        = self.x
++		y        = self.y
++		z        = self.z
++		return [x, y, z, elements, is2d, isplanet]
++		# }}}
++	def savemodeljs(self,fid,modelname): # {{{
++	
++		fid.write('#s.mesh=new mesh3dsurface()\n'%modelname)
++		writejs1Darray(fid,[modelname, '.mesh.x'],self.x)
++		writejs1Darray(fid,[modelname, '.mesh.y'],self.y)
++		writejs1Darray(fid,[modelname, '.mesh.z'],self.z)
++		writejs2Darray(fid,[modelname, '.mesh.elements'],self.elements)
++		writejsdouble(fid,[modelname, '.mesh.numberofelements'],self.numberofelements)
++		writejsdouble(fid,[modelname, '.mesh.numberofvertices'],self.numberofvertices)
++		writejsdouble(fid,[modelname, '.mesh.numberofedges'],self.numberofedges)
++		writejs1Darray(fid,[modelname, '.mesh.lat'],self.lat)
++		writejs1Darray(fid,[modelname, '.mesh.long'],self.long)
++		writejs1Darray(fid,[modelname, '.mesh.r'],self.r)
++		writejs1Darray(fid,[modelname, '.mesh.vertexonboundary'],self.vertexonboundary)
++		writejs2Darray(fid,[modelname, '.mesh.edges'],self.edges)
++		writejs2Darray(fid,[modelname, '.mesh.segments'],self.segments)
++		writejs2Darray(fid,[modelname, '.mesh.segmentmarkers'],self.segmentmarkers)
++		writejs2Darray(fid,[modelname, '.mesh.vertexconnectivity'],self.vertexconnectivity)
++		writejs2Darray(fid,[modelname, '.mesh.elementconnectivity'],self.elementconnectivity)
++		writejsdouble(fid,[modelname, '.mesh.average_vertex_connectivity'],self.average_vertex_connectivity)
++		writejs1Darray(fid,[modelname, '.mesh.extractedvertices'],self.extractedvertices)
++		writejs1Darray(fid,[modelname, '.mesh.extractedelements'],self.extractedelements)
++
++		# }}}
++	
Index: /issm/oecreview/Archive/19101-20495/ISSM-20223-20224.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20223-20224.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20223-20224.diff	(revision 20498)
@@ -0,0 +1,77 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20223)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20224)
+@@ -1,25 +1,27 @@
+ #Test Name: EarthSlr
+ #Earth Sea Level Rise test. Uses the mesh3dsurface geometry.
+ from MatlabFuncs import *
++from PythonFuncs import *
+ from model import *
+ from EnumDefinitions import *
+ from numpy import *
+ from parameterize import *
+ from solve import *
++from gmshplanet import *
+ 
+ #mesh earth: 
+ md=model() 
+-md.mesh=gmshplanet('radius',6.371012*10^3,'resolution',700) #500 km resolution mesh
++md.mesh=gmshplanet('radius',6.371012*10**3,'resolution',700) #500 km resolution mesh
+ 
+ #parameterize slr solution:
+ #slr loading:  {{{
+-md.slr.deltathickness=zeros(md.mesh.numberofvertices,1)
+-md.slr.sealevel=zeros(md.mesh.numberofvertices,1);
++md.slr.deltathickness=zeros((md.mesh.numberofvertices,1))
++md.slr.sealevel=zeros((md.mesh.numberofvertices,1))
+ #antarctica
+ pos=numpy.nonzero(md.mesh.lat <-80)
+ md.slr.deltathickness[pos]=-100
+ #greenlnd 
+-pos=numpy.nonzero(md.mesh.lat > 70 &  md.mesh.lat < 80 & md.mesh.long>-60 & md.mesh.long<-30)
++pos=numpy.nonzero(logical_and_n(md.mesh.lat > 70,md.mesh.lat < 80,md.mesh.long>-60,md.mesh.long<-30))
+ md.slr.deltathickness[pos]=-100
+ 
+ #elastic loading from love numbers: 
+@@ -33,32 +35,32 @@
+ md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 
+ mask=gmtmask(md.mesh.lat,md.mesh.long) 
+ 
+-icemask=ones(md.mesh.numberofvertices,1)
++icemask=ones((md.mesh.numberofvertices,1))
+ pos=find(mask==0)
+ icemask[pos]=-1
+ pos=find(sum(mask(md.mesh.elements),2)<3)
+ icemask[md.mesh.elements[pos]]=-1
+ 
+ md.mask.ice_levelset=icemask
+-md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1)
++md.mask.ocean_levelset=zeros((md.mesh.numberofvertices,1))
+ pos=numpy.nonzero(md.mask.ice_levelset==1)
+ md.mask.ocean_levelset[pos]=1
+ 
+ #make sure that the ice level set is all inclusive:
+-md.mask.land_levelset=zeros(md.mesh.numberofvertices,1)
+-md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1) 
++md.mask.land_levelset=zeros((md.mesh.numberofvertices,1))
++md.mask.groundedice_levelset=-ones((md.mesh.numberofvertices,1))
+ # }}}
+ #geometry:  {{{
+ di=md.materials.rho_ice/md.materials.rho_water
+-md.geometry.thickness=ones(md.mesh.numberofvertices,1)
+-md.geometry.surface=(1-di)*zeros(md.mesh.numberofvertices,1)
++md.geometry.thickness=ones((md.mesh.numberofvertices,1))
++md.geometry.surface=(1-di)*zeros((md.mesh.numberofvertices,1))
+ md.geometry.base=md.geometry.surface-md.geometry.thickness
+ md.geometry.bed=md.geometry.base
+ # }}}
+ #materials:  {{{
+-md.initialization.temperature=273.25*ones(md.mesh.numberofvertices,1)
++md.initialization.temperature=273.25*ones((md.mesh.numberofvertices,1))
+ md.materials.rheology_B=paterson(md.initialization.temperature)
+-md.materials.rheology_n=3*ones(md.mesh.numberofelements,1)
++md.materials.rheology_n=3*ones((md.mesh.numberofelements,1))
+ # }}}
+ #Miscellaneous: {{{
+ md.miscellaneous.name='slr'
Index: /issm/oecreview/Archive/19101-20495/ISSM-20224-20225.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20224-20225.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20224-20225.diff	(revision 20498)
@@ -0,0 +1,337 @@
+Index: ../trunk-jpl/src/m/classes/maskpsl.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/maskpsl.py	(revision 20225)
+@@ -0,0 +1,102 @@
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++from fielddisplay import fielddisplay
++from checkfield import checkfield
++from WriteData import WriteData
++
++class maskpsl(object):
++#MASKPSL class definition
++#
++#   Usage:
++#      maskpsl=maskpsl();
++	def __init__(self,*args): # {{{
++		self.groundedice_levelset = NaN
++		self.ice_levelset         = NaN
++		self.ocean_levelset = NaN
++		self.land_levelset = NaN
++		
++		if not len(args):
++			self.setdefaultparameters()
++		else:
++			raise RuntimeError('constructor not supported')
++	# }}}
++	def __repr__(self): # {{{
++		string='   masks:'
++		
++		string="%s\n%s"%(string,fielddisplay(self,'groundedice_levelset','is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0'))
++		string="%s\n%s"%(string,fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0'))
++		string="%s\n%s"%(string,fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0'))
++		string="%s\n%s"%(string,fielddisplay(self,'land_levelset','is the vertex on the land ? yes if = 1, no if = 0'))
++	
++		return string
++	# }}}	
++	def loadobj(self): # {{{
++		# This def is directly called by matlab when a model object is
++		# loaded. Update old properties here
++
++		#2014 February 5th
++		if numel(self.ice_levelset)>1 and all(self.ice_levelset>=0):
++			print('WARNING: md.mask.ice_levelset>=0, you probably need to change the sign of this levelset')
++		return self
++	# }}}
++	def setdefaultparameters(self): # {{{
++		return self
++	# }}}
++	def checkconsistency(self,md,solution,analyses): # {{{
++
++		md = checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1])
++		md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1])
++		md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices, 1])
++		md = checkfield(md,'fieldname','mask.land_levelset','size',[md.mesh.numberofvertices, 1])
++		isice=(md.mask.ice_levelset<=0)
++		if sum(isice)==0:
++			print('no ice present in the domain')
++
++		if max(md.mask.ice_levelset)<0:
++			print('no ice front provided')
++
++		icefront=sum(md.mask.ice_levelset[md.mesh.elements.astype(int)-1]==0,axis=1)
++		if (amax(icefront)==3 & strcmp(md.mesh.elementtype(),'Tria')) or (amax(icefront==6) & strcmp(md.mesh.elementtype(),'Penta')):
++			raise RuntimeError('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
++		
++		return md
++	# }}}
++	def extrude(self,md): # {{{
++		self.groundedice_levelset=project3d(md,'vector',self.groundedice_levelset,'type','node')
++		self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node')
++		self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node')
++		self.land_levelset=project3d(md,'vector',self.land_levelset,'type','node')
++		return self
++	# }}}
++	def mask(*args): # {{{
++		if not len(args):
++			self.setdefaultparameters()
++		else:
++			raise RuntimeError('constructor not supported')
++		return self
++	# }}}
++	
++	def marshall(self,md,fid): # {{{
++		WriteData(fid,'object',self,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1)
++
++		# get mask of vertices of elements with ice
++		isice=md.mask.ice_levelset<=0.
++		vlist = zeros(md.mesh.numberofvertices,1)
++		pos=find(sum(isice(md.mesh.elements),2)>0)
++		vlist[md.mesh.elements[pos,:]]=1
++		WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1)
++
++	# }}}
++	def savemodeljs(self,fid,modelname): # {{{
++
++		writejs1Darray(fid,[modelname, '.mask.groundedice_levelset'],self.groundedice_levelset)
++		writejs1Darray(fid,[modelname, '.mask.ice_levelset'],self.ice_levelset)
++		writejs1Darray(fid,[modelname, '.mask.ocean_levelset'],self.ocean_levelset)
++		writejs1Darray(fid,[modelname, '.mask.land_levelset'],self.land_levelset)
++
++	# }}}
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 20224)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 20225)
+@@ -2,6 +2,9 @@
+ from model import *
+ from EnumDefinitions import *
+ from numpy import *
++from fielddisplay import fielddisplay
++from checkfield import checkfield
++from WriteData import WriteData
+ 
+ class mesh3dsurface(object):
+ #MESH3DSURFACE class definition
+@@ -32,7 +35,7 @@
+ 		self.extractedvertices           = NaN
+ 		self.extractedelements           = NaN
+ 		
+-		if len(args)==0:
++		if not len(args):
+ 			self.setdefaultparameters()
+ 		elif len(args)==1:
+ 			self=mesh3dsurface()
+@@ -45,11 +48,10 @@
+ 		else:
+ 			raise RuntimeError('constructor not supported')	
+ 
+-		#set defaults
+-		self.setdefaultparameters()
+-	#}}}
++	# }}}
+ 	def __repr__(self): # {{{
+ 		string='   2D tria Mesh (horizontal):'
++		
+ 		string+='\n      Elements and vertices:'
+ 		string="%s\n%s"%(string,fielddisplay(self,'numberofelements','number of elements'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'numberofvertices','number of vertices'))
+@@ -75,7 +77,9 @@
+ 		string+='\n      Extracted model():'
+ 		string="%s\n%s"%(string,fielddisplay(self,'extractedvertices','vertices extracted from the model()'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'extractedelements','elements extracted from the model()')) 
+-		# }}}
++		
++		return string
++	# }}}
+ 	def loadobj(self): # {{{
+ 		# This def is directly called by matlab when a model() selfect is
+ 		# loaded. Update old properties here
+@@ -91,7 +95,8 @@
+ 					self.epsg=3413
+ 				else:
+ 					self.epsg=3031
+-		# }}}
++		return self
++	# }}}
+ 	def setdefaultparameters(self): # {{{
+ 
+ 		#the connectivity is the averaged number of nodes linked to a
+@@ -101,16 +106,16 @@
+ 		#trunk/test/Miscellaneous/runme.m
+ 		self.average_vertex_connectivity=25
+ 		return self
+-		# }}}
++	# }}}
+ 	def checkconsistency(self,md,solution,analyses): # {{{
+ 
+-		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+-		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.x','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.y','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.z','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.lat','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.long','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.r','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		md = checkfield(md,'fieldname','mesh.elements','NaN',1,'Inf',1,'>',0,'values',arange(1,md.mesh.numberofvertices+1))
+ 		md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements,3])
+ 		if any(not ismember([md.mesh.numberofvertices],sort(unique(md.mesh.elements)))):
+ 			md = checkmessage(md,'orphan nodes have been found. Check the mesh outline')
+@@ -123,33 +128,33 @@
+ 			md = checkmessage(md,'thermal not supported for 2d mesh');
+ 			
+ 		return md
+-		# }}}
++	# }}}
+ 	def marshall(self,md,fid): # {{{
+-		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain', domaintype(obj)]),'format','Integer')
+-		WriteData(fid,'enum',DomainDimensionEnum(),'data',dimension(obj),'format','Integer')
+-		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(elementtype(obj)),'format','Integer')
++		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain', self.domaintype()]),'format','Integer')
++		WriteData(fid,'enum',DomainDimensionEnum(),'data',self.dimension(),'format','Integer')
++		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(self.elementtype()),'format','Integer')
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','z','format','DoubleMat','mattype',1)
+-		WriteData(fid,'enum',MeshLatEnum(),'data',obj.lat,'format','DoubleMat','mattype',1)
+-		WriteData(fid,'enum',MeshLongEnum(),'data',obj.long,'format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshLatEnum(),'data',md.mesh.lat,'format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshLongEnum(),'data',md.mesh.long,'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','r','format','DoubleMat','mattype',1)
+-		WriteData(fid,'enum',MeshZEnum(),'data',zeros(obj.numberofvertices,1),'format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshZEnum(),'data',zeros(md.mesh.numberofvertices,1),'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofelements','format','Integer')
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer')
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
+ 		WriteData(fid,'object',obj,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1)
+-		# }}}
++	# }}}
+ 	def domaintype(self): # {{{
+ 		return '3Dsurface'
+-		# }}}
++	# }}}
+ 	def dimension(self): # {{{
+ 		return 2
+-		# }}}
++	# }}}
+ 	def elementtype(self): # {{{
+ 		return 'Tria'
+-		# }}}
++	# }}}
+ 	def processmesh(self,options): # {{{
+ 	
+ 		isplanet = 1
+@@ -160,7 +165,7 @@
+ 		y        = self.y
+ 		z        = self.z
+ 		return [x, y, z, elements, is2d, isplanet]
+-		# }}}
++	# }}}
+ 	def savemodeljs(self,fid,modelname): # {{{
+ 	
+ 		fid.write('#s.mesh=new mesh3dsurface()\n'%modelname)
+@@ -184,5 +189,5 @@
+ 		writejs1Darray(fid,[modelname, '.mesh.extractedvertices'],self.extractedvertices)
+ 		writejs1Darray(fid,[modelname, '.mesh.extractedelements'],self.extractedelements)
+ 
+-		# }}}
++	# }}}
+ 	
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.py
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 0)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 20225)
+@@ -0,0 +1,81 @@
++from MatlabFuncs import *
++from model import *
++from EnumDefinitions import *
++from numpy import *
++from os import getenv, putenv
++import subprocess
++
++def gmtmask(lat,long,*varargin):
++#GMTMASK - figure out which lat,long points are on the ocean
++#
++#   Usage:
++#      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
++#
++	lenlat=len(lat)
++	mask=empty(lenlat)
++	
++	#are we doing a recursive call? 
++	if len(varargin)==3:
++		recursive=1
++	else:
++		recursive=0
++
++	if recursive:
++		string='             recursing: num vertices #i'+str(lenlat)
++	else:
++		string='gmtmask: num vertices #i'+str(lenlat)
++	
++	#Check lat and long size is not more than 50,000 If so, recursively call gmtmask: 
++
++	if lenlat>50000:
++		for i in range(ceil(lenlat/50000)):
++			j=(i+1)*50000-1
++			if j>lenlat:
++				j=lenlat
++			mask[i:j]=gmtmask(lat[i:j],long[i:j],1)
++		return mask
++	
++	
++	#First, write our lat,long file for gmt:
++	nv=lenlat
++	savetxt('./all_vertices.txt',[long, lat, arange(1,nv+1)],delimiter='\t')
++
++	#Avoid bypassing of the ld library path by Matlab (:()
++	try:
++		issmdir
++	except:
++		issmdir=getenv('ISSM_DIR')
++	try:
++		ismac
++	except:
++		ismac=False	
++
++	if ismac:
++		dyld_library_path_old=getenv('DYLD_LIBRARY_PATH')
++		putenv('DYLD_LIBRARY_PATH',issmdir+'/externalpackages/curl/install/lib:'+issmdir+'/externalpackages/hdf5/install/lib:'+issmdir+'/externalpackages/netcdf/install/lib')
++		
++	#figure out which vertices are on the ocean, which one on the continent:
++	subprocess.call(issmdir+'/externalpackages/gmt/install/bin/gmt gmtselect ./all_vertices.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices.txt',shell=True)
++
++	#reset DYLD_LIBRARY_PATH to what it was: 
++	if ismac:
++		putenv('DYLD_LIBRARY_PATH',dyld_library_path_old)
++	
++	#read the con_vertices.txt file and flag our mesh vertices on the continent
++	fid=open('./oce_vertices.txt','r')
++	line=fid.readline()
++	line=fid.readline()
++	oce_vertices=[]
++	while line:
++		ind=str2num(line.split()[3])
++		oce_vertices.append(ind)
++		line=fid.readline()
++	fid.close()
++
++	mask=zeros([nv,1])
++	mask[oce_vertices]=1
++	
++	subprocess.call('rm -rf ./all_vertices.txt ./oce_vertices.txt ./gmt.history',shell=True)
++	if not recursive:
++		string='gmtmask: done'
++	return mask
Index: /issm/oecreview/Archive/19101-20495/ISSM-20225-20226.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20225-20226.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20225-20226.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20225)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20226)
+@@ -8,6 +8,9 @@
+ from parameterize import *
+ from solve import *
+ from gmshplanet import *
++from maskpsl import *
++from gmtmask import *
++from paterson import *
+ 
+ #mesh earth: 
+ md=model() 
+@@ -25,7 +28,8 @@
+ md.slr.deltathickness[pos]=-100
+ 
+ #elastic loading from love numbers: 
+-love = dlmread('../Data/love_numbers_10k.txt')
++
++love = loadtxt('../Data/love_numbers_10k.txt')
+ nlov=101
+ print love
+ md.slr.love_h = love[1][1:nlov]  # radial displacement (height) 
+@@ -36,10 +40,10 @@
+ mask=gmtmask(md.mesh.lat,md.mesh.long) 
+ 
+ icemask=ones((md.mesh.numberofvertices,1))
+-pos=find(mask==0)
++pos=nonzero(mask==0)
+ icemask[pos]=-1
+-pos=find(sum(mask(md.mesh.elements),2)<3)
+-icemask[md.mesh.elements[pos]]=-1
++pos=nonzero(sum(mask[md.mesh.elements.astype(int)-1],2)<3)
++icemask[md.mesh.elements[pos].astype(int)-1]=-1
+ 
+ md.mask.ice_levelset=icemask
+ md.mask.ocean_levelset=zeros((md.mesh.numberofvertices,1))
Index: /issm/oecreview/Archive/19101-20495/ISSM-20226-20227.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20226-20227.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20226-20227.diff	(revision 20498)
@@ -0,0 +1,36 @@
+Index: ../trunk-jpl/src/m/classes/clusters/lonestar.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20226)
++++ ../trunk-jpl/src/m/classes/clusters/lonestar.m	(revision 20227)
+@@ -166,7 +166,7 @@
+ 			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
+ 
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart,batch)% {{{
+ 
+ 			 disp('launching solution sequence on remote cluster');
+ 			 if ~isempty(restart)
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20226)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20227)
+@@ -19,7 +19,7 @@
+ 		 processor      = 'wes';
+ 		 codepath       = '';
+ 		 executionpath  = '';
+-		 grouplist     = 's1010';
++		 grouplist     = 'g26209';
+ 		 interactive    = 0;
+ 		 bbftp          = 0;
+ 		 numstreams     = 8;
+@@ -150,7 +150,8 @@
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+ 			 fprintf(fid,'module load comp-intel/2015.0.090\n');
+-			 fprintf(fid,'module load mpi-sgi/mpt.2.12r16\n');
++			 fprintf(fid,'module load mpi-sgi/mpt.2.12r26\n');
++			 fprintf(fid,'module load math/intel_mkl_64_10.0.011\n');
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
Index: /issm/oecreview/Archive/19101-20495/ISSM-20227-20228.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20227-20228.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20227-20228.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20227)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20228)
+@@ -19,7 +19,7 @@
+ 		 processor      = 'wes';
+ 		 codepath       = '';
+ 		 executionpath  = '';
+-		 grouplist     = 'g26209';
++		 grouplist     = 's1010';
+ 		 interactive    = 0;
+ 		 bbftp          = 0;
+ 		 numstreams     = 8;
+@@ -150,8 +150,7 @@
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+ 			 fprintf(fid,'module load comp-intel/2015.0.090\n');
+-			 fprintf(fid,'module load mpi-sgi/mpt.2.12r26\n');
+-			 fprintf(fid,'module load math/intel_mkl_64_10.0.011\n');
++			 fprintf(fid,'module load mpi-sgi/mpt.2.12r16\n');
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+ 			 fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
Index: /issm/oecreview/Archive/19101-20495/ISSM-20228-20229.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20228-20229.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20228-20229.diff	(revision 20498)
@@ -0,0 +1,124 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 20229)
+@@ -0,0 +1,58 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.yosemite.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
++      -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
++      -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++      -D LDFLAGS="-std=gnu++11" \
++      -D CXXFLAGS="-std=gnu++11" \
++      -C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++      -C $DAK_SRC/cmake/DakotaDev.cmake \
++      $DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh	(revision 20229)
+@@ -0,0 +1,44 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++python2.7 $ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++patch src/boost/atomic/detail/cas128strong.hpp ./configs/1.55/cas128strong.hpp.patch
++patch src/boost/atomic/detail/gcc-atomic.hpp ./configs/1.55/gcc-atomic.hpp.patch
++patch src/tools/build/v2/user-config.jam ./configs/1.55/user-config.jam.patch
++patch src/tools/build/v2/tools/darwin.jam ./configs/1.55/darwin.jam.patch
++patch src/tools/build/v2/tools/darwin.py ./configs/1.55/darwin.py.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python 
++
++#Compile boost
++# Need gcc with iconv installed in a location that has been added to your path
++export CC=/usr/local/gfortan/bin/gcc 
++export CXX=/usr/local/gfortran/bin/g++
++./bjam toolset=darwin cxxflags=-std=gnu++11 link=static install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20229-20230.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20229-20230.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20229-20230.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20229)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20230)
+@@ -55,6 +55,8 @@
+ 						m1qn3        install.sh    
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh 
++						boost        install-1.55-macosx-el_capitan.sh                
++						dakota       install-6.2-macosx-el_capitan.sh  
+ 						shell2junit  install.sh "
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20230-20231.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20230-20231.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20230-20231.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20230)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20231)
+@@ -50,7 +50,6 @@
+ EXTERNALPACKAGES="autotools    install.sh                
+ 						matlab       install.sh                
+ 						mpich        install-3.0-macosx64.sh    
+-						cmake        install.sh                
+ 						chaco        install-macosx64.sh 
+ 						m1qn3        install.sh    
+ 						petsc        install-3.5-macosx64.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-20231-20232.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20231-20232.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20231-20232.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 20231)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 20232)
+@@ -9,7 +9,7 @@
+ mkdir src build install 
+ 
+ #Download from ISSM server
+-#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
+ 
+ #Untar 
+ tar -zxvf dakota-6.2-public-src.tar.gz
Index: /issm/oecreview/Archive/19101-20495/ISSM-20232-20233.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20232-20233.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20232-20233.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20232)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20233)
+@@ -15,7 +15,7 @@
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-numthreads=8 \
++	--with-numthreads=4 \
+ 	--enable-debugging \
+ 	--enable-development'
+ 
+@@ -47,16 +47,16 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools    install.sh                
+-						matlab       install.sh                
+-						mpich        install-3.0-macosx64.sh    
+-						chaco        install-macosx64.sh 
+-						m1qn3        install.sh    
++EXTERNALPACKAGES="autotools    install.sh
++						matlab       install.sh
++						mpich        install-3.0-macosx64-yosemite-dakota.sh
++						chaco        install-macosx64.sh
++						m1qn3        install.sh
+ 						petsc        install-3.5-macosx64.sh
+-						triangle     install-macosx64.sh 
+-						boost        install-1.55-macosx-el_capitan.sh                
+-						dakota       install-6.2-macosx-el_capitan.sh  
+-						shell2junit  install.sh "
++						triangle     install-macosx64.sh
++						boost        install-1.55-macosx-el_capitan.sh
++						dakota       install-6.2-macosx-el_capitan.sh
++						shell2junit  install.sh"
+ 
+ #---------------------#
+ # 4: ISSM Compilation #
Index: /issm/oecreview/Archive/19101-20495/ISSM-20233-20234.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20233-20234.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20233-20234.diff	(revision 20498)
@@ -0,0 +1,291 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20233)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20234)
+@@ -15,7 +15,7 @@
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+ 	var datamin,datamax,datadelta;
+-	var scale;
++	var scale,zscale,surfacescale;
+ 
+ 	//Process data and model
+ 	var meshresults = processmesh(md,data,options);
+@@ -25,15 +25,25 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+-	var is3d = md.mesh.classname() == 'mesh3dsurface'; //use meshresults once behvaior can be verified
+ 	
+ 	var	dataresults = processdata(md,data,options);
+ 	var	data2 = dataresults[0]; 
+ 	var	datatype = dataresults[1];
+-	
+-	if (!is3d && md.geometry.surface) {
+-		z = md.geometry.surface;
++
++	if (!md.geometry.surface) {
++		md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
+ 	}
++	if (md.mesh.classname() == 'mesh3dsurface') {
++		zscale = 1;
++		surfacescale = options.getfieldvalue('heightscale',1);
++	}
++	else {
++		if (md.geometry.surface) {
++			z=md.geometry.surface;
++		}	
++		zscale = options.getfieldvalue('heightscale',1);
++		surfacescale = 0;
++	}
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -50,12 +60,12 @@
+ 	zmin = zlim[0];
+ 	zmax = zlim[1];
+ 	var caxis;
+-
++	
+ 	//Compute scaling: 
+-	var scale = 1 / (xmax - xmin);
++	scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++	node["scale"] = [scale, scale, scale * zscale];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+@@ -92,17 +102,20 @@
+ 
+ 				vertices.itemSize = 3;
+ 				texcoords.itemSize = 2;
+-				//var height = vec3.create();
+-				//var heightscale = options.getfieldvalue('heightscale',1);
++				
++				var xyz = vec3.create();
++				var direction = vec3.create();
++				var vertex = vec3.create();
++				var magnitude;
++	
+ 				for(var i = 0; i < x.length; i++){
+-					//vec3.normalize(height, vec3.fromValues(x[i], y[i], z[i])); //fix to use normalized earth radius instead of radius+ height
+-					//vec3.scale(height, height, heightscale);
+-					vertices[vertices.length] = x[i];
+-					vertices[vertices.length] = y[i];
+-					vertices[vertices.length] = z[i];
++					xyz = vec3.fromValues(x[i], y[i], z[i]);
++					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
++					vec3.normalize(direction, xyz);
++					vec3.scale(vertex, direction, magnitude);
++					vertices.push.apply(vertices, vertex);
+ 
+-					texcoords[texcoords.length] = 0.5;
+-					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
++					texcoords.push.apply(texcoords, [0.5, (data[i] - datamin) / datadelta]);
+ 				}
+ 
+ 				//linearize the elements array: 
+@@ -134,10 +147,18 @@
+ 			}
+ 			else{ //triangular elements
+ 				vertices.itemSize = 3;
++				
++				var xyz = vec3.create();
++				var direction = vec3.create();
++				var vertex = vec3.create();
++				var magnitude;
++
+ 				for(var i = 0; i < x.length; i++){
+-					vertices[vertices.length] = x[i];
+-					vertices[vertices.length] = y[i];
+-					vertices[vertices.length] = z[i];
++					xyz = vec3.fromValues(x[i], y[i], z[i]);
++					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
++					vec3.normalize(direction, xyz);
++					vec3.scale(vertex, direction, magnitude);
++					vertices.push.apply(vertices, vertex);
+ 				}	
+ 				
+ 				//Transpose data to obtain column addressable data matrix
+@@ -163,8 +184,7 @@
+ 					texcoords[i] = [];
+ 					texcoords[i].itemSize = 2;
+ 					for(var j = 0; j < x.length; j++){
+-						texcoords[i][texcoords[i].length] = 0.5;
+-						texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
++						texcoords.push.apply(texcoords, [0.5, (data[i][j] - datamin) / datadelta]);
+ 					}
+ 				}
+ 				
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20233)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20234)
+@@ -14,6 +14,7 @@
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
++	var scale,zscale,surfacescale;
+ 
+ 	//Process data and model
+ 	var meshresults = processmesh(md,data,options);
+@@ -23,11 +24,21 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+-	var is3d = (md.mesh.classname() == 'mesh3dsurface'); //use meshresults once behvaior can be verified
+-	
+-	if (!is3d && md.geometry.surface) {
+-		z = md.geometry.surface;
++
++	if (!md.geometry.surface) {
++		md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
+ 	}
++	if (md.mesh.classname() == 'mesh3dsurface') {
++		zscale = 1;
++		surfacescale = options.getfieldvalue('heightscale',1);
++	}
++	else {
++		if (md.geometry.surface) {
++			z=md.geometry.surface;
++		}	
++		zscale = options.getfieldvalue('heightscale',1);
++		surfacescale = 0;
++	}
+ 	//}}}
+ 	
+ 	//Compute coordinates and data range:
+@@ -45,10 +56,10 @@
+ 	zmax = zlim[1];
+ 		
+ 	//Compute scaling: 
+-	var scale = 1 / (xmax - xmin);
++	scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "unlit_textured";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++	node["scale"] = [scale, scale, scale * zscale];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+@@ -90,15 +101,22 @@
+ 	
+ 	var xrange = modelxlim[1] - modelxlim[0];
+ 	var yrange = modelylim[1] - modelylim[0];
++	
++	var xyz = vec3.create();
++	var direction = vec3.create();
++	var vertex = vec3.create();
++	var magnitude;
+ 
+ 	//generate mesh:
++	console.log(md);
+ 	for(var i = 0; i < x.length; i++){
+-		vertices[vertices.length] = x[i];
+-		vertices[vertices.length] = y[i];
+-		vertices[vertices.length] = z[i];
++		xyz = vec3.fromValues(x[i], y[i], z[i]);
++		magnitude = vec3.length(xyz);
++		vec3.normalize(direction, xyz);
++		vec3.scale(vertex, direction, magnitude);
++		vertices.push.apply(vertices, vertex);
+ 
+-		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
+-		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
++		texcoords.push.apply(texcoords, [(x[i] - modelxlim[0]) / xrange, (y[i] - modelylim[0]) / yrange]);
+ 	}
+ 
+ 	//linearize the elements array: 
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20233)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20234)
+@@ -12,7 +12,7 @@
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+-	var scale;
++	var scale,zscale,surfacescale;
+ 	
+ 	//Process data and model
+ 	var meshresults = processmesh(md,[],options);
+@@ -22,11 +22,21 @@
+ 	var elements = meshresults[3]; 
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+-	var is3d = md.mesh.classname() == 'mesh3dsurface'; //use meshresults once behvaior can be verified
+-	
+-	if (!is3d && md.geometry.surface) {
+-		z = md.geometry.surface;
++		
++	if (!md.geometry.surface) {
++		md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
+ 	}
++	if (md.mesh.classname() == 'mesh3dsurface') {
++		zscale = 1;
++		surfacescale = options.getfieldvalue('heightscale',1);
++	}
++	else {
++		if (md.geometry.surface) {
++			z=md.geometry.surface;
++		}	
++		zscale = options.getfieldvalue('heightscale',1);
++		surfacescale = 0;
++	}
+ 	//}}}
+ 
+ 	//Compute coordinates and data range:
+@@ -47,7 +57,7 @@
+ 	var scale = 1 / (xmax - xmin);
+ 	node["shaderName"] = "colored";
+ 	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
+-	node["scale"] = [scale, scale, scale*options.getfieldvalue('heightscale',1)];
++	node["scale"] = [scale, scale, scale * zscale];
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
+@@ -71,28 +81,25 @@
+ 	}
+ 	else{ //2D triangular elements
+ 		vertices.itemSize = 3;
++		var xyz = vec3.create();
++		var direction = vec3.create();
++		var vertex = vec3.create();
++		var magnitude;
++		var color = [0.0, 0.0, 0.0, 1.0];
+ 		for(var i = 0; i < x.length; i++){
+-			vertices[vertices.length] = x[i];
+-			vertices[vertices.length] = y[i];
+-			vertices[vertices.length] = z[i];
++			xyz = vec3.fromValues(x[i], y[i], z[i]);
++			magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
++			vec3.normalize(direction, xyz);
++			vec3.scale(vertex, direction, magnitude);
++			vertices.push.apply(vertices, vertex);
+ 
+-			rgbcolor = [0.0, 0.0, 0.0];
+-			colors[colors.length] = rgbcolor[0];
+-			colors[colors.length] = rgbcolor[1];
+-			colors[colors.length] = rgbcolor[2];
+-			colors[colors.length] = 1.0;
++			colors.push.apply(colors, color);
+ 		}
+-
++		
+ 		//linearize the elements array: 
+ 		for(var i = 0; i < elements.length; i++){
+-			//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity
+-			//matlab indices from 1, so decrement indices.
+-			indices[indices.length] = elements[i][0] - 1;
+-			indices[indices.length] = elements[i][1] - 1;
+-			indices[indices.length] = elements[i][1] - 1;
+-			indices[indices.length] = elements[i][2] - 1;
+-			indices[indices.length] = elements[i][2] - 1;
+-			indices[indices.length] = elements[i][0] - 1;
++			//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity matlab indices from 1, so decrement indices.
++			indices.push.apply(indices, [elements[i][0] - 1, elements[i][1] - 1, elements[i][1] - 1, elements[i][2] - 1, elements[i][2] - 1, elements[i][0] - 1]);
+ 		}
+ 		indices.itemSize = 1;
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20234-20235.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20234-20235.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20234-20235.diff	(revision 20498)
@@ -0,0 +1,39 @@
+Index: ../trunk-jpl/src/c/main/issm_slr.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20234)
++++ ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20235)
+@@ -98,7 +98,7 @@
+ 	femmodel->parameters->AddObject(new IntParam(NumModelsEnum,nummodels));
+ 	femmodel->parameters->AddObject(new IntParam(ModelIdEnum,modelid));
+ 	femmodel->parameters->AddObject(new IntParam(EarthIdEnum,earthid));
+-	if(modelid==earthid)femmodel->parameters->AddObject(new IntVecParam(IcecapToEarthCommEnum,fromicecomms,nummodels-1));
++	if(modelid==earthid)femmodel->parameters->AddObject(new IntVecParam(IcecapToEarthCommEnum,(int*)fromicecomms,nummodels-1));
+ 	else femmodel->parameters->AddObject(new IntParam(IcecapToEarthCommEnum,toearthcomm));
+ 
+ 	/*Solve: */
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20234)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20235)
+@@ -108,8 +108,8 @@
+ 	my_rank=IssmComm::GetRank();
+ 	
+ 	/*retrieve the inter communicators that will be used to send data from each ice cap to the earth: */
+-	if(modelid==earthid)femmodel->parameters->FindParam(&fromcomms,&nv,IcecapToEarthCommEnum);
+-	else femmodel->parameters->FindParam(&tocomm, IcecapToEarthCommEnum);
++	if(modelid==earthid)femmodel->parameters->FindParam((int**)(&fromcomms),&nv,IcecapToEarthCommEnum);
++	else femmodel->parameters->FindParam((int*)(&tocomm), IcecapToEarthCommEnum);
+ 
+ 	/*For each icecap, retrieve the forcing vector that will be sent to the earth model: */
+ 	if(modelid!=earthid){
+@@ -227,8 +227,8 @@
+ 	my_rank=IssmComm::GetRank();
+ 	
+ 	/*retrieve the inter communicators that will be used to send data from earth to ice caps:*/
+-	if(modelid==earthid)femmodel->parameters->FindParam(&tocomms,&numcoms,IcecapToEarthCommEnum);
+-	else femmodel->parameters->FindParam(&fromcomm, IcecapToEarthCommEnum);
++	if(modelid==earthid)femmodel->parameters->FindParam((int**)(&tocomms),&numcoms,IcecapToEarthCommEnum);
++	else femmodel->parameters->FindParam((int*)(&fromcomm), IcecapToEarthCommEnum);
+ 
+ 
+ 	/*Retrieve sea-level on earth model: */
Index: /issm/oecreview/Archive/19101-20495/ISSM-20235-20236.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20235-20236.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20235-20236.diff	(revision 20498)
@@ -0,0 +1,96 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20236)
+@@ -0,0 +1,85 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-math77-dir=$ISSM_DIR/externalpackages/math77/install \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-gia=yes \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						math77        install.sh
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=1
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','all','id',[2001:2100]"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross_gia
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20236-20237.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20236-20237.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20236-20237.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20236)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20237)
+@@ -49,7 +49,8 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="matlab        install.sh                
++EXTERNALPACKAGES="autotools     install.sh
++                  matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
Index: /issm/oecreview/Archive/19101-20495/ISSM-20237-20238.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20237-20238.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20237-20238.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20237)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20238)
+@@ -50,11 +50,12 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh
+-                  matlab        install.sh                
++						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						math77        install.sh
++						gmsh          install.sh
+ 						shell2junit   install.sh"
+ 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20238-20239.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20238-20239.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20238-20239.diff	(revision 20498)
@@ -0,0 +1,95 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 0)
++++ ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20239)
+@@ -0,0 +1,84 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR\
++	--disable-static \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-numthreads=4 \
++	--enable-development \
++	--enable-debugging '
++
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/bin/svn'
++SVNVERSION='/usr/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools     install.sh                
++						matlab        install.sh                
++						mpich         install-3.0-linux64.sh    
++						cmake         install.sh                
++						petsc         install-3.5-linux64.sh    
++						triangle      install-linux64.sh        
++						shell2junit   install.sh"
++
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=8
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=1
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++MATLAB_NROPTIONS="'benchmark','all','id',4001"
++PYTHON_NROPTIONS=""
+
+Property changes on: ../trunk-jpl/jenkins/linux64_ross_iceocean
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20239-20240.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20239-20240.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20239-20240.diff	(revision 20498)
@@ -0,0 +1,126 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 0)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20240)
+@@ -0,0 +1,87 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--with-matlab-dir=$MATLAB_DIR \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
++	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
++	--with-numthreads=4 \
++	--enable-debugging \
++	--enable-development'
++
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/local/bin/svn'
++SVNVERSION='/usr/local/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools    install.sh
++						matlab       install.sh
++						mpich        install-3.0-macosx64-yosemite-dakota.sh
++						chaco        install-macosx64.sh
++						m1qn3        install.sh
++						petsc        install-3.5-macosx64.sh
++						triangle     install-macosx64.sh
++						boost        install-1.55-macosx-el_capitan.sh
++						dakota       install-6.2-macosx-el_capitan.sh
++						shell2junit  install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=2
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++##                                                                   bamg mesh   FS                     
++PYTHON_NROPTIONS=""
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
+
+Property changes on: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20239)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20240)
+@@ -14,7 +14,6 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+ 	--with-numthreads=4 \
+ 	--enable-debugging \
+ 	--enable-development'
+@@ -48,14 +47,12 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
++						cmake        install.sh
+ 						matlab       install.sh
+ 						mpich        install-3.0-macosx64-yosemite-dakota.sh
+-						chaco        install-macosx64.sh
+ 						m1qn3        install.sh
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh
+-						boost        install-1.55-macosx-el_capitan.sh
+-						dakota       install-6.2-macosx-el_capitan.sh
+ 						shell2junit  install.sh"
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20240-20241.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20240-20241.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20240-20241.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20240)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20241)
+@@ -49,9 +49,9 @@
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake        install.sh
+ 						matlab       install.sh
+-						mpich        install-3.0-macosx64-yosemite-dakota.sh
++						mpich        install-3.0-macosx64.sh
+ 						m1qn3        install.sh
+-						petsc        install-3.5-macosx64.sh
++						petsc        install-3.6-macosx64.sh
+ 						triangle     install-macosx64.sh
+ 						shell2junit  install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20241-20242.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20241-20242.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20241-20242.diff	(revision 20498)
@@ -0,0 +1,10 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20241)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20242)
+@@ -81,4 +81,4 @@
+ #ex: "'id',[101 102 103]"
+ ##                                                                   bamg mesh   FS                     
+ PYTHON_NROPTIONS=""
+-MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435]"
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435,IdFromString('Dakota')]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20242-20243.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20242-20243.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20242-20243.diff	(revision 20498)
@@ -0,0 +1,56 @@
+Index: ../trunk-jpl/test/NightlyRun/test350.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test350.m	(revision 20242)
++++ ../trunk-jpl/test/NightlyRun/test350.m	(revision 20243)
+@@ -64,7 +64,7 @@
+ 	1e-13, 1e-13, 1e-13,...
+ 	1e-13, 1e-13, 1e-13,...
+ 	1e-13, 1e-13, 1e-13,...
+-	1e-13, 1e-13, 1e-13};
++	1e-13, 1e-13, 1e-12};
+ field_values={...
+ 	md.results.TransientSolution(1).HydrologyHead, ...
+ 	md.results.TransientSolution(1).HydrologyGapHeight,...
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 20242)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 20243)
+@@ -80,8 +80,8 @@
+ 		'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','SmbMonthlytemperatures2','SmbMassBalance2',\
+ 		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,7e-8,1e-13,1e-13,\
+-		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,7e-8,1e-13,1e-13];
++		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-7,1e-13,1e-13,\
++		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-7,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 20242)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 20243)
+@@ -68,8 +68,8 @@
+ 						'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'};
+ field_tolerances={...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
+-	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
+-	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13};
++	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-7,1e-13,1e-13,...
++	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-7,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20242)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20243)
+@@ -79,6 +79,6 @@
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-##                                                                   bamg mesh   FS                     
++##                           bamg mesh   FS                     
+ PYTHON_NROPTIONS=""
+-MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,435,IdFromString('Dakota')]"
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,703,435,IdFromString('Dakota')]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20243-20244.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20243-20244.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20243-20244.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/test/NightlyRun/test350.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test350.m	(revision 20243)
++++ ../trunk-jpl/test/NightlyRun/test350.m	(revision 20244)
+@@ -61,10 +61,10 @@
+ 	'HydrologyHead3','HydrologyGapHeight3',...
+ 	'HydrologyHead4','HydrologyGapHeight4'};
+ field_tolerances={...
+-	1e-13, 1e-13, 1e-13,...
+-	1e-13, 1e-13, 1e-13,...
+-	1e-13, 1e-13, 1e-13,...
+-	1e-13, 1e-13, 1e-12};
++	1e-13, 1e-13,...
++	1e-13, 1e-13,...
++	1e-13, 1e-13,...
++	1e-13, 1e-12};
+ field_values={...
+ 	md.results.TransientSolution(1).HydrologyHead, ...
+ 	md.results.TransientSolution(1).HydrologyGapHeight,...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20244-20245.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20244-20245.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20244-20245.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test404.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test404.py	(revision 20244)
++++ ../trunk-jpl/test/NightlyRun/test404.py	(revision 20245)
+@@ -19,7 +19,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure']
+-field_tolerances=[6e-07,6e-07,2e-06,1e-06,1e-07]
++field_tolerances=[6e-07,6e-07,2e-06,1e-06,3e-07]
+ field_values=[\
+ 	md.results.StressbalanceSolution.Vx,\
+ 	md.results.StressbalanceSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test404.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test404.m	(revision 20244)
++++ ../trunk-jpl/test/NightlyRun/test404.m	(revision 20245)
+@@ -9,7 +9,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure'};
+-field_tolerances={6e-07,6e-07,2e-06,1e-06,1e-07};
++field_tolerances={6e-07,6e-07,2e-06,1e-06,3e-07};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20245-20246.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20245-20246.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20245-20246.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20245)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20246)
+@@ -927,6 +927,8 @@
+ 		case IceMassEnum:                  this->IceMassx(responses); break;
+ 		case IceVolumeEnum:                this->IceVolumex(responses); break;
+ 		case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(responses); break;
++		case GroundedAreaEnum:             this->GroundedAreax(responses); break;
++		case FloatingAreaEnum:             this->FloatingAreax(responses); break;
+ 		case MinVelEnum:                   this->MinVelx(responses); break;
+ 		case MaxVelEnum:                   this->MaxVelx(responses); break;
+ 		case MinVxEnum:                    this->MinVxx(responses); break;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20246-20247.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20246-20247.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20246-20247.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/test/NightlyRun/test124.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test124.m	(revision 20246)
++++ ../trunk-jpl/test/NightlyRun/test124.m	(revision 20247)
+@@ -20,9 +20,9 @@
+ 	'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2',...
+ 	'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3'};
+ field_tolerances={...
+-	2e-09,3.0e-9,3.0e-9,1e-10,1e-13,1e-13,1e-13,...
+-	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10,...
+-	1e-09,3e-10,3e-10,1e-10,1e-10,1e-10,1e-10};
++	2e-09,3.0e-9,3.0e-9,1e-10,1e-13,1e-12,1e-12,...
++	1e-09,3e-10,8e-10,1e-10,1e-10,1e-10,1e-10,...
++	1e-09,3e-10,8e-10,1e-10,1e-10,1e-10,1e-10};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20247-20248.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20247-20248.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20247-20248.diff	(revision 20498)
@@ -0,0 +1,59 @@
+Index: ../trunk-jpl/externalpackages/cvs/install.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/cvs/install.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/cvs/install.sh	(revision 20248)
+@@ -0,0 +1,34 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src
++rm -rf install
++rm -rf cvs-1.11.23
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/cvs-1.11.23.tar.gz' 'cvs-1.11.23.tar.gz'
++
++#Untar 
++tar -zxvf  cvs-1.11.23.tar.gz
++
++#Move subversion into src directory
++mv cvs-1.11.23/* src
++rm -rf cvs-1.11.23
++
++#Patch getline
++cd src
++cat lib/getline.c | sed -e "s/getline /get_line /" > BACK && mv BACK lib/getline.c
++cat lib/getline.h | sed -e "s/getline /get_line /" > BACK && mv BACK lib/getline.h
++
++#Configure
++./configure --prefix="$ISSM_DIR/externalpackages/cvs/install" 
++
++#Compile and install subversion
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/cvs/install.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/etc/environment.sh
+===================================================================
+--- ../trunk-jpl/etc/environment.sh	(revision 20247)
++++ ../trunk-jpl/etc/environment.sh	(revision 20248)
+@@ -281,6 +281,9 @@
+ pathprepend   "$SVN_DIR/bin"
+ libpathappend "$SVN_DIR/lib"
+ 
++CVS_DIR="$ISSM_DIR/externalpackages/cvs/install"
++pathprepend   "$CVS_DIR/bin"
++
+ APR_DIR="$ISSM_DIR/externalpackages/apr/install"
+ pathappend    "$APR_DIR/bin"
+ libpathappend "$APR_DIR/lib"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20248-20249.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20248-20249.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20248-20249.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20248)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20249)
+@@ -737,6 +737,7 @@
+ 	xDelete<IssmDouble>(oldbase);
+ 	xDelete<IssmDouble>(oldsurface);
+ 	xDelete<IssmDouble>(phi);
++	xDelete<IssmDouble>(sealevel);
+ 	xDelete<int>(doflist);
+ 	if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20248)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20249)
+@@ -424,7 +424,7 @@
+ 	if(frictionlaw!=5 && frictionlaw!=1){
+ 		drag_input = element->GetInput(FrictionCoefficientEnum);  _assert_(drag_input);
+ 	}
+-	else{
++	else if(frictionlaw==5){
+ 		friction=new Friction(element,3);
+ 	}
+ 
+@@ -511,7 +511,7 @@
+ 	/*Clean up and return*/
+ 	xDelete<int>(pairindices);
+ 	xDelete<IssmDouble>(xyz_list);
+-	delete friction;
++	if(frictionlaw==5) delete friction;
+ 	return pe;
+ 
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20249-20250.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20249-20250.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20249-20250.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20249)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20250)
+@@ -108,7 +108,6 @@
+ 	var magnitude;
+ 
+ 	//generate mesh:
+-	console.log(md);
+ 	for(var i = 0; i < x.length; i++){
+ 		xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 		magnitude = vec3.length(xyz);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20250-20251.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20250-20251.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20250-20251.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20250)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20251)
+@@ -77,7 +77,8 @@
+ 
+ if JAVASCRIPT
+ if !DEVELOPMENT
+-bin_SCRIPTS +=  ${ISSM_DIR}/src/m/array/arrayoperations.js \
++
++js_scripts =  ${ISSM_DIR}/src/m/array/arrayoperations.js \
+ 				${ISSM_DIR}/src/m/boundaryconditions/SetIceShelfBC.js \
+ 				${ISSM_DIR}/src/m/classes/autodiff.js \
+ 				${ISSM_DIR}/src/m/classes/balancethickness.js \
+@@ -156,6 +157,14 @@
+ 				${ISSM_DIR}/src/m/solve/solve.js \
+ 				${ISSM_DIR}/src/m/solve/WriteData.js \
+ 				${ISSM_DIR}/src/m/solvers/issmgslsolver.js 
++
++bin_SCRIPTS +=  ${js_scripts}
++
++bin_SCRIPTS +=  issm-bin.js
++
++issm-bin.js: ${js_scripts}
++	cat ${js_scripts}  > issm-bin.js
++
+ endif
+ endif
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20251-20252.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20251-20252.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20251-20252.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/m/geometry/GetAreasSphericalTria.m
+===================================================================
+--- ../trunk-jpl/src/m/geometry/GetAreasSphericalTria.m	(revision 0)
++++ ../trunk-jpl/src/m/geometry/GetAreasSphericalTria.m	(revision 20252)
+@@ -0,0 +1,48 @@
++function areas=GetAreasSphericalTria(index,x,y,rad_e,varargin)
++%GETAREASSPHERICALTRIA - compute areas of spherical triangles 
++%
++%   compute areas of spherical trianguls 
++%
++%   Usage:
++%      areas  =GetAreasSphericalTria(index,x,y,r);
++%
++%   Examples:
++%      areas  =GetAreasSphericalTria(md.mesh.elements,md.mesh.lat,md.mesh.long,earth_radius);
++%		 
++
++%get number of elements and number of nodes
++nels=size(index,1); 
++nods=length(x);  
++
++%some checks
++if nargout~=1 | (nargin~=3 & nargin~=4),
++	help GetAreasSphericalTria
++	error('GetAreasSphericalTria error message: bad usage')
++end
++if (length(y)~=nods),
++	error('GetAreasSphericalTria error message: x and y do not have the same length')
++end
++if max(index(:))>nods,
++	error(['GetAreasSphericalTria error message: index should not have values above ' num2str(nods) ])
++end
++
++%initialization
++areas=zeros(nels,1);
++x1=x(index(:,1)); x2=x(index(:,2)); x3=x(index(:,3));
++y1=y(index(:,1)); y2=y(index(:,2)); y3=y(index(:,3));
++
++%compute the volume of each element
++if nargin==4,
++   % arc lengths 
++	arc_12=distance(x1,y1,x2,y2).*pi./180;
++	arc_23=distance(x2,y2,x3,y3).*pi./180;
++	arc_31=distance(x3,y3,x1,y1).*pi./180;
++	% semi perimeter 
++	semi_peri=(arc_12+arc_23+arc_31)./2; 
++	% spherical excess 
++	excess=4*atan(sqrt(tan(semi_peri./2).*tan((semi_peri-arc_12)./2)...
++		.*tan((semi_peri-arc_23)./2).*tan((semi_peri-arc_31)./2))); 
++	% spherical triangle areas 
++	areas=excess.*rad_e.^2; 	
++end 
++
Index: /issm/oecreview/Archive/19101-20495/ISSM-20252-20253.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20252-20253.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20252-20253.diff	(revision 20498)
@@ -0,0 +1,31 @@
+Index: ../trunk-jpl/src/m/os/issmbbftpin.m
+===================================================================
+--- ../trunk-jpl/src/m/os/issmbbftpin.m	(revision 20252)
++++ ../trunk-jpl/src/m/os/issmbbftpin.m	(revision 20253)
+@@ -33,7 +33,7 @@
+ 	for i=1:length(packages),
+ 		command=[command 'get ' packages{i} ';'];
+ 	end
+-	command=[command '''  pfe1.nas.nasa.gov'];
++	command=[command '''  pfe22.nas.nasa.gov'];
+ 
+ 	eval(command);
+ 
+Index: ../trunk-jpl/src/m/os/issmbbftpout.m
+===================================================================
+--- ../trunk-jpl/src/m/os/issmbbftpout.m	(revision 20252)
++++ ../trunk-jpl/src/m/os/issmbbftpout.m	(revision 20253)
+@@ -20,11 +20,11 @@
+ else 
+ 
+ 	%build a string of the type: bbftp -s -u elarour -e 'setnbstream 8; cd /nobackupp10/elarour/Testing/Interactive3/; put Antarctica.tar.gz' pfe1.nas.nasa.gov
+-	command=['!bbftp -s -V -u ' login ' -e ''setnbstream 8; cd ' path '; ']
++	command=['!bbftp -s -V -u ' login ' -e ''setnbstream 8; cd ' path '; '];
+ 	for i=1:length(packages),
+ 		command=[command 'put ' packages{i} ';'];
+ 	end
+-	command=[command '''  pfe1.nas.nasa.gov'];
++	command=[command '''  pfe22.nas.nasa.gov'];
+ 
+ 	eval(command);
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20253-20254.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20253-20254.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20253-20254.diff	(revision 20498)
@@ -0,0 +1,27 @@
+Index: ../trunk-jpl/src/m/js/writejscellarray.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejscellarray.m	(revision 0)
++++ ../trunk-jpl/src/m/js/writejscellarray.m	(revision 20254)
+@@ -0,0 +1,22 @@
++function writejscellarray(fid,prefix,cell)
++
++
++	if ~iscell(cell),
++		fprintf(fid,'%s=%g;\n',prefix,cell);
++	else
++		if length(cell),
++			if length(cell)==1,
++				fprintf(fid,'%s=[''%s''];\n',prefix,cell{1});
++			else
++				fprintf(fid,'%s=[''%s'',',prefix,cell{1});
++				for i=2:length(cell)-1,
++					fprintf(fid,'''%s'',',cell{i});
++				end
++				fprintf(fid,'''%s''];\n',cell{end});
++			end
++		else
++			fprintf(fid,'%s=[];\n',prefix);
++		end
++	end
++
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20254-20255.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20254-20255.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20254-20255.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/m/io/fileptr.js
+===================================================================
+--- ../trunk-jpl/src/m/io/fileptr.js	(revision 20254)
++++ ../trunk-jpl/src/m/io/fileptr.js	(revision 20255)
+@@ -32,7 +32,7 @@
+ 			this.increment=0;
+ 			this.buffersize=0;
+ 			if (this.mode=='w'){
+-				this.increment=options.getfieldvalue('increment',80000); //80000 bytes,  10000 doubles.
++				this.increment=options.getfieldvalue('increment',800000); //80000 bytes,  10000 doubles.
+ 				this.buffer=new ArrayBuffer(this.increment);
+ 				this.view=new DataView(this.buffer);
+ 			}
+@@ -71,7 +71,10 @@
+ 				}
+ 				else{
+ 					if (!IsArray(value[0])){
+-						if(this.ptr+value.length*8>=this.buffer.byteLength)this.resize();
++						if(this.ptr+value.length*8>=this.buffer.byteLength){
++							this.resize();
++							if(this.ptr+value.length*8>=this.buffer.byteLength)throw Error('fileptr.fwrite error: need to increase increment size!');
++						}
+ 						for(var i=0;i<value.length;i++){
+ 							this.view.setFloat64(this.ptr,value[i],true);
+ 							this.ptr+=8;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20255-20256.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20255-20256.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20255-20256.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 20255)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 20256)
+@@ -106,7 +106,7 @@
+ 			fielddisplay(self,'islevelset','LEVEL SET DESCRIPTION...');
+ 			fielddisplay(self,'iscalving','indicates whether calving is used in the transient');
+ 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
+-			fielddisplay(self,'isslr','indicates whether a thermal solution is used in the transient');
++			fielddisplay(self,'isslr','indicates whether a sea-level rise solution is used in the transient');
+ 			fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling');
+ 			fielddisplay(self,'requested_outputs','list of additional outputs requested');
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20256-20257.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20256-20257.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20256-20257.diff	(revision 20498)
@@ -0,0 +1,49 @@
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 20256)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 20257)
+@@ -18,6 +18,8 @@
+ 		this.islevelset      = 0;
+ 		this.iscalving       = 0;
+ 		this.ishydrology     = 0;
++		this.isslr           = 0;
++		this.iscoupler       = 0;
+ 
+ 		//default output
+ 		this.requested_outputs=['default'];
+@@ -37,6 +39,8 @@
+ 		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
+ 		fielddisplay(this,'iscalving','indicates whether calving is used in the transient');
+ 		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
++		fielddisplay(this,'isslr','indicates whether a sea-level rise model is used');
++		fielddisplay(this,'iscoupler','indicates whether different models are being run with need for coupling');
+ 		fielddisplay(this,'requested_outputs','list of additional outputs requested');
+ 
+ 
+@@ -59,6 +63,8 @@
+ 			checkfield(md,'fieldname','trans.islevelset','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.iscalving','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.iscoupler','numel',[1],'values',[0 ,1]);
++			checkfield(md,'fieldname','trans.isslr','numel',[1],'values',[0 ,1]);
+ 			checkfield(md,'fieldname','trans.requested_outputs','stringrow',1);
+ 		} // }}}
+ 		this.marshall=function(md,fid) { //{{{
+@@ -72,6 +78,8 @@
+ 			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','isslr','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','iscoupler','format','Boolean');
+ 
+ 			//process requested outputs
+ 			var outputs = this.requested_outputs;
+@@ -103,6 +111,8 @@
+ 	this.islevelset        = 0;
+ 	this.iscalving         = 0;
+ 	this.ishydrology       = 0;
++	this.isslr             = 0;
++	this.iscoupler         = 0;
+ 	this.requested_outputs = [];
+ 
+ 	this.setdefaultparameters();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20257-20258.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20257-20258.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20257-20258.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20257)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20258)
+@@ -126,4 +126,4 @@
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, texcoords, indices];
+ 	node["buffers"] = initBuffers(gl,node["arrays"]);
+-}
+\ No newline at end of file
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20258-20259.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20258-20259.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20258-20259.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 20258)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.js	(revision 20259)
+@@ -96,6 +96,10 @@
+ 		case FlaimSolutionEnum():
+ 			analyses=[FlaimAnalysisEnum()];
+ 			break;
++	
++		case SealevelriseSolutionEnum():
++			analyses=[SealevelriseAnalysisEnum()];
++			break;
+ 
+ 		case HydrologySolutionEnum():
+ 			analyses=[L2ProjectionBaseAnalysisEnum(),HydrologyShreveAnalysisEnum(),HydrologyDCInefficientAnalysisEnum(),HydrologyDCEfficientAnalysisEnum()];
+Index: ../trunk-jpl/src/m/consistency/checkfield.js
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.js	(revision 20258)
++++ ../trunk-jpl/src/m/consistency/checkfield.js	(revision 20259)
+@@ -101,7 +101,7 @@
+ 	//check Inf
+ 	if (options.getfieldvalue('Inf',0)){
+ 		field2=MatrixToList(field);
+-		if (ArrayAnyEqual(field2,Inf)){
++		if (ArrayAnyEqual(field2,Infinity)){
+ 			md.checkmessage(options.getfieldvalue('message',sprintf("Inf values found in field %s",field)));
+ 		}
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20259-20260.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20259-20260.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20259-20260.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/classes/groundingline.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/groundingline.m	(revision 20259)
++++ ../trunk-jpl/src/m/classes/groundingline.m	(revision 20260)
+@@ -30,11 +30,12 @@
+ 				if isnan(md.geometry.bed),
+ 					md = checkmessage(md,['requesting grounding line migration, but bathymetry is absent!']);
+ 				end
+-				pos=find(md.mask.groundedice_levelset>0.);
++				pos=find(md.mask.groundedice_levelset>0. & md.mask.ice_levelset<=0);
+ 				if any(abs(md.geometry.base(pos)-md.geometry.bed(pos))>10^-10),
+ 					md = checkmessage(md,['base not equal to bed on grounded ice!']);
+ 				end
+-				if any(md.geometry.bed - md.geometry.base > 10^-9),
++				pos=find(md.mask.groundedice_levelset<=0. & md.mask.ice_levelset<=0);
++				if any(md.geometry.bed(pos) - md.geometry.base(pos) > 10^-9),
+ 					md = checkmessage(md,['bed superior to base on floating ice!']);
+ 				end
+ 			end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20260-20261.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20260-20261.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20260-20261.diff	(revision 20498)
@@ -0,0 +1,47 @@
+Index: ../trunk-jpl/src/m/classes/slr.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.js	(revision 20260)
++++ ../trunk-jpl/src/m/classes/slr.js	(revision 20261)
+@@ -53,6 +53,9 @@
+ 		this.defaultoutputs = function(md){ // {{{
+ 			return ['Sealevel'];
+ 		}//}}}
++	this.classname= function(){// {{{
++		return "slr";
++	}// }}}
+ 		this.disp= function(){// {{{
+ 			
+ 		console.log(sprintf('   Sealevelrise solution parameters:'));
+@@ -112,18 +115,19 @@
+ 		}//}}}
+ 	//properties
+ 	//{{{
+-	deltathickness = NaN;
+-	sealevel       = NaN; 
+-	maxiter        = 0;
+-	reltol         = 0;
+-	abstol         = 0;
+-	love_h         = 0; //provided by PREM model
+-	love_k         = 0; //ideam
+-	rigid          = 0;
+-	elastic        = 0;
+-	eustatic       = 0;
+-	degacc         = 0;
+-	requested_outputs = [];
+-	transitions    = [];
++	this.deltathickness = NaN;
++	this.sealevel       = NaN; 
++	this.maxiter        = 0;
++	this.reltol         = 0;
++	this.abstol         = 0;
++	this.love_h         = 0; //provided by PREM model
++	this.love_k         = 0; //ideam
++	this.rigid          = 0;
++	this.elastic        = 0;
++	this.eustatic       = 0;
++	this.degacc         = 0;
++	this.requested_outputs = [];
++	this.transitions    = [];
++	this.setdefaultparameters();
+ 	//}}}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20261-20262.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20261-20262.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20261-20262.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20261)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20262)
+@@ -121,16 +121,17 @@
+ 		
+ 			writejs1Darray(fid,[modelname '.slr.deltathickness'],self.deltathickness);
+ 			writejs1Darray(fid,[modelname '.slr.sealevel'],self.sealevel);
++			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+ 			writejsdouble(fid,[modelname '.slr.reltol'],self.reltol);
+ 			writejsdouble(fid,[modelname '.slr.abstol'],self.abstol);
+-			writejsdouble(fid,[modelname '.slr.maxiter'],self.maxiter);
+ 			writejs1Darray(fid,[modelname '.slr.love_h'],self.love_h);
+ 			writejs1Darray(fid,[modelname '.slr.love_k'],self.love_k);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+ 			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
++			writejsdouble(fid,[modelname '.slr.elastic'],self.elastic);
+ 			writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
+ 			writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
+-
++			writejscellarray(fid,[modelname '.slr.transitions'],self.transitions);
+ 		end % }}}
+ 	end
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20262-20263.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20262-20263.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20262-20263.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/masstransport.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/masstransport.m	(revision 20262)
++++ ../trunk-jpl/src/m/classes/masstransport.m	(revision 20263)
+@@ -136,7 +136,7 @@
+ 			writejs1Darray(fid,[modelname '.masstransport.spcthickness'],self.spcthickness);
+ 			writejsdouble(fid,[modelname '.masstransport.isfreesurface'],self.isfreesurface);
+ 			writejsdouble(fid,[modelname '.masstransport.min_thickness'],self.min_thickness);
+-			writejsdouble(fid,[modelname '.masstransport.hydrostatic_adjustment'],self.hydrostatic_adjustment);
++			writejsstring(fid,[modelname '.masstransport.hydrostatic_adjustment'],self.hydrostatic_adjustment);
+ 			writejsdouble(fid,[modelname '.masstransport.stabilization'],self.stabilization);
+ 			writejs2Darray(fid,[modelname '.masstransport.vertex_pairing'],self.vertex_pairing);
+ 			writejsdouble(fid,[modelname '.masstransport.penalty_factor'],self.penalty_factor);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20263-20264.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20263-20264.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20263-20264.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/sealevelmodel.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 20263)
++++ ../trunk-jpl/src/m/classes/sealevelmodel.m	(revision 20264)
+@@ -31,7 +31,6 @@
+ 			
+ 				%recover all the icecap models: 
+ 				slm.icecaps=getfieldvalues(options,'ice_cap',{}); 
+-				bandwidths=getfieldvalues(options,'bandwidth',{200000});
+ 				
+ 				%recover the earth model:
+ 				slm.earth = getfieldvalue(options,'earth');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20264-20265.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20264-20265.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20264-20265.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/classes/initialization.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/initialization.js	(revision 20264)
++++ ../trunk-jpl/src/m/classes/initialization.js	(revision 20265)
+@@ -84,11 +84,11 @@
+ 
+ 			var yts=365.0*24.0*3600.0;
+ 
+-			WriteData(fid,'data',this.vx.slice(),'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.vy.slice(),'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.vz.slice(),'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts);
+-			WriteData(fid,'data',this.pressure.slice(),'format','DoubleMat','mattype',1,'enum',PressureEnum());
+-			WriteData(fid,'data',this.temperature.slice(),'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
++			WriteData(fid,'data',this.vx,'format','DoubleMat','mattype',1,'enum',VxEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vy,'format','DoubleMat','mattype',1,'enum',VyEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.vz,'format','DoubleMat','mattype',1,'enum',VzEnum(),'scale',1./yts);
++			WriteData(fid,'data',this.pressure,'format','DoubleMat','mattype',1,'enum',PressureEnum());
++			WriteData(fid,'data',this.temperature,'format','DoubleMat','mattype',1,'enum',TemperatureEnum());
+ 			WriteData(fid,'data',this.waterfraction,'format','DoubleMat','mattype',1,'enum',WaterfractionEnum());
+ 			WriteData(fid,'data',this.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum());
+ 			WriteData(fid,'data',this.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum());
Index: /issm/oecreview/Archive/19101-20495/ISSM-20265-20266.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20265-20266.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20265-20266.diff	(revision 20498)
@@ -0,0 +1,110 @@
+Index: ../trunk-jpl/src/m/classes/clusters/pfe.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20265)
++++ ../trunk-jpl/src/m/classes/clusters/pfe.m	(revision 20266)
+@@ -41,7 +41,8 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
+-			 disp(sprintf('    modules: %s',strjoin(cluster.modules,', ')));
++			 modules=''; for i=1:length(cluster.modules), modules=[modules cluster.modules{i} ',']; end; modules=modules(1:end-1); 
++			 disp(sprintf('    modules: %s',modules));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -189,6 +190,95 @@
+ 				 fclose(fid);
+ 			 end
+ 		 end %}}}
++		function BuildQueueScriptMultipleModels(cluster,dirname,modelname,solution,dirnames,modelnames,nps) % {{{
++		
++			%some checks: 
++			if isempty(modelname), error('BuildQueueScriptMultipleModels error message: need a non empty model name!');end
++
++			%what is the executable being called? 
++			executable='issm_slr.exe';
++
++			if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
++			
++			%write queuing script 
++			fid=fopen([modelname '.queue'],'w');
++			
++			fprintf(fid,'#PBS -S /bin/bash\n');
++			fprintf(fid,'#PBS -N %s\n',modelname);
++			fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++			fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
++			fprintf(fid,'#PBS -q %s \n',cluster.queue);
++			fprintf(fid,'#PBS -W group_list=%s\n',cluster.grouplist);
++			fprintf(fid,'#PBS -m e\n');
++			fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
++			fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
++			fprintf(fid,'. /usr/share/modules/init/bash\n\n');
++			fprintf(fid,'module load comp-intel/2015.0.090\n');
++			fprintf(fid,'module load mpi-sgi/mpt.2.12r16\n');
++			fprintf(fid,'export PATH="$PATH:."\n\n');
++			fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
++			fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			fprintf(fid,'cd %s/%s/\n\n',cluster.executionpath,dirname);
++
++			%number of cpus: 
++			mpistring=sprintf('mpiexec -np %i ',cluster.numnodes*cluster.cpuspernode);
++
++			%executable: 
++			mpistring=[mpistring sprintf('%s/%s ',cluster.codepath,executable)];
++			
++			%solution name: 
++			mpistring=[mpistring sprintf('%s ',EnumToString(solution))];
++
++			%execution directory and model name: 
++			mpistring=[mpistring sprintf('%s/%s %s',cluster.executionpath,dirname,modelname)];
++
++			%inform main executable of how many icecaps, glaciers and earth models are being run: 
++			mpistring=[mpistring sprintf(' %i ',length(dirnames))];
++			
++			%icecaps, glaciers and earth location, names and number of processors associated:
++			for i=1:length(dirnames),
++			mpistring=[mpistring sprintf(' %s/%s %s %i ',cluster.executionpath,dirnames{i},modelnames{i},nps{i})];
++			end
++
++			%write this long string to disk: 
++			fprintf(fid,mpistring);
++			fclose(fid);
++			
++			if cluster.interactive,
++				fid=fopen([modelname '.run'],'w');
++				
++				%number of cpus: 
++				mpistring=sprintf('mpiexec -np %i ',cluster.numnodes*cluster.cpuspernode);
++
++				%executable: 
++				mpistring=[mpistring sprintf('%s/%s ',cluster.codepath,executable)];
++
++				%solution name: 
++				mpistring=[mpistring sprintf('%s ',EnumToString(solution))];
++
++				%execution directory and model name: 
++				mpistring=[mpistring sprintf('%s/%s %s',cluster.executionpath,dirname,modelname)];
++
++				%inform main executable of how many icecaps, glaciers and earth models are being run: 
++				mpistring=[mpistring sprintf(' %i ',length(dirnames))];
++
++				%icecaps, glaciers and earth location, names and number of processors associated:
++				for i=1:length(dirnames),
++					mpistring=[mpistring sprintf(' %s/Interactive%i %s %i ',cluster.executionpath,cluster.interactive,modelnames{i},nps{i})];
++				end
++						 
++				%write this long string to disk: 
++				fprintf(fid,mpistring);
++				fclose(fid);
++
++				fid=fopen([modelname '.errlog'],'w');
++				fclose(fid);
++				fid=fopen([modelname '.outlog'],'w');
++				fclose(fid);
++			 end
++		end
++		%}}}
+ 		 function BuildKrigingQueueScript(cluster,modelname,solution,io_gather,isvalgrind,isgprof) % {{{
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20266-20267.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20266-20267.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20266-20267.diff	(revision 20498)
@@ -0,0 +1,95 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20266)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20267)
+@@ -4,36 +4,23 @@
+ //      generic=new generic();
+ 
+ function generic (){
++	//properties 
++	// {{{
++	var args = Array.prototype.slice.call(arguments);
++	var options = new pairoptions(args.slice(0,args.length));
++
++	this.url=options.getfieldvalue('url','');
++	this.np=options.getfieldvalue('np',3);
++	this.codepath=options.getfieldvalue('codepath','issmdir/bin');
++	this.executionpath=options.getfieldvalue('executionpath','issmdir/execution');
++	//}}}
+ 	//methods
+-	this.setdefaultparameters = function(){// {{{
+-		this.name='';
+-		this.login='';
+-		this.np=1;
+-		this.port=0;
+-		this.interactive=1;
+-		this.codepath='issmdir/bin';
+-		this.etcpath='issmdir/etc';
+-		this.executionpath= 'issmdir/execution';
+-		this.valgrind='issmdir/externalpackages/valgrind/install/bin/valgrind';
+-		this.valgrindlib='issmdir/externalpackages/valgrind/install/lib/libmpidebug.so';
+-		this.valgrindsup='issdir/externalpackages/valgrind/issm.supp';
+-		this.verbose=1;
+-		this.shell='/bin/sh';
+-	}// }}}
+ 	this.disp= function(){// {{{
+ 		console.log(sprintf('   generic class echo:'));
+-		console.log(sprintf('    name: %s',this.name));
+-		console.log(sprintf('    login: %s',this.login));
++		console.log(sprintf('    url: "%s"',this.url));
+ 		console.log(sprintf('    np: %i',this.np));
+-		console.log(sprintf('    port: %i',this.port));
+-		console.log(sprintf('    codepath: %s',this.codepath));
+-		console.log(sprintf('    executionpath: %s',this.executionpath));
+-		console.log(sprintf('    etcpath: %s',this.etcpath));
+-		console.log(sprintf('    valgrind: %s',this.valgrind));
+-		console.log(sprintf('    valgrindlib: %s',this.valgrindlib));
+-		console.log(sprintf('    valgrindsup: %s',this.valgrindsup));
+-		console.log(sprintf('    verbose: %s',this.verbose));
+-		console.log(sprintf('    shell: %s',this.shell));
++		console.log(sprintf('    codepath: "%s"',this.codepath));
++		console.log(sprintf('    executionpath: "%s"',this.executionpath));
+ 	}// }}}
+ 	this.classname= function(){// {{{
+ 		return "generic";
+@@ -46,21 +33,22 @@
+ 				md.checkmessage('number of processors should not be NaN!');
+ 			}
+ 		} //}}}
+-	//properties 
+-	// {{{
+-	this.name='';
+-	this.login='';
+-	this.np=NaN;
+-	this.port=NaN;
+-	this.interactive=NaN;
+-	this.codepath='';
+-	this.etcpath='';
+-	this.executionpath='';
+-	this.valgrind='';
+-	this.valgrindlib='';
+-	this.valgrindsup='';
+-	this.verbose=NaN;
+-	this.shell='';
+-	this.setdefaultparameters();
+-	//}}}
+-}
++		this.UploadAndRun = function (fid,toolkitsstring,solutionstring,name) { //{{{
++
++			var oReq = new XMLHttpRequest();
++			oReq.open("POST", this.url, true);
++			oReq.responseType = 'arraybuffer';
++
++			oReq.onload = function (oEvent) {
++				var returnBuffer= oReq.response.slice(); 
++				var returnBuffer_size= returnBuffer.byteLength;
++				md.results= loadresultsfrombuffer(md,returnBuffer,returnBuffer_size); 
++			};
++
++			var blob = new Blob(new Int8Array(fid.buffer), {type: 'text/plain'});
++			oReq.send(blob);
++			return;
++
++		} /*}}}*/
++
++	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20267-20268.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20267-20268.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20267-20268.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/solve/marshall.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/marshall.js	(revision 20267)
++++ ../trunk-jpl/src/m/solve/marshall.js	(revision 20268)
+@@ -12,7 +12,7 @@
+ 	}
+ 
+ 	//open file for binary writing
+-	fid=new fileptr('mode','w');
++	var fid=new fileptr('mode','w');
+ 
+ 	//First, write MaximumNumberOfEnum to make sure that the Enums are synchronized
+ 	WriteData(fid,'enum',MaximumNumberOfDefinitionsEnum(),'data',true,'format','Boolean');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20268-20269.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20268-20269.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20268-20269.diff	(revision 20498)
@@ -0,0 +1,137 @@
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 20268)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 20269)
+@@ -62,6 +62,7 @@
+ 
+ 	//If we are restarting, actually use the provided runtime name:
+ 	restart=options.getfieldvalue('restart','');
++
+ 	//First, build a runtime name that is unique
+ 	if (restart==1 ){
+ 		//Leave the runtimename as is
+@@ -86,18 +87,6 @@
+ 		//md.preqmu(options);
+ 	}
+ 
+-	//flaim analysis (To be removed?)
+-	if (solutionenum == FlaimSolutionEnum()){
+-		//fmdir     = options.getfieldvalue('fmdir',['fm' num2str(feature('GetPid'))]);
+-		//overwrite = options.getfieldvalue('overwrite','n');
+-		//keep      = options.getfieldvalue('keep','y');
+-		//latsgn    = options.getfieldvalue('latsgn',0);
+-		//cmap      = options.getfieldvalue('cmap',[]);
+-		throw  Error("solve error message: flaim runs not supported yet!");
+-		//flaim_sol(md,options);
+-		//md.priv.solution=EnumToString(solutionenum);
+-		//return;
+-	}
+ 
+ 	//Do we load results only?
+ 	if (options.getfieldvalue('loadonly',false)){
+@@ -105,79 +94,15 @@
+ 		return;
+ 	}
+ 
+-	//Write all input files
+-	fid = marshall(md);                                          // bin file
++	//Marshall into a binary array (fid) all the fields of model.
++	var fid = marshall(md);                                          // bin file
++	
++	//deal with toolkits options: 
+ 	toolkitsstring= md.toolkits.ToolkitsFile(md.miscellaneous.name + '.toolkits'); // toolkits file
+ 
+-	if (cluster.classname() != 'local'){ //{{{
+ 
+-		throw Error('non local clusters not supported yet!');
++	if (cluster.classname() == 'local'){  //{{{
+ 
+-		cluster.BuildQueueScript(md.priv.runtimename,md.miscellaneous.name,md.priv.solution,md.settings.io_gather,md.debug.valgrind,md.debug.gprof,md.qmu.isdakota); // queue file
+-
+-		//Stop here if batch mode
+-		if (options.getfieldvalue('batch','no') === 'yes'){
+-			if (md.verbose.solution){
+-				console.log('batch mode requested: not launching job interactively');
+-				console.log('launch solution sequence on remote cluster by hand');
+-			}
+-			return;
+-		}
+-
+-		//Upload all required files
+-		modelname = md.miscellaneous.name;
+-		filelist  = [modelname + '.bin ',modelname + '.toolkits '];
+-		if (ispc){
+-			filelist.push(modelname + '.bat ');
+-		}
+-		else{
+-			filelist.push(modelname + '.queue ');
+-		}
+-
+-		if (md.qmu.isdakota){
+-			filelist.push(modelname + '.qmu.in');
+-		}
+-
+-		if (restart == ''){
+-			cluster.UploadQueueJob(md.miscellaneous.name,md.priv.runtimename,filelist);
+-		}
+-
+-		//launch queue job: 
+-		cluster.LaunchQueueJob(md.miscellaneous.name,md.priv.runtimename,filelist,restart);
+-
+-		//wait on lock
+-		if (md.settings.waitonlock == 'NaN'){
+-			//load when user enters 'y'
+-			console.log('solution launched on remote cluster. log in to detect job completion.');
+-			throw Error("solve error message: user detection of successfull completion of job not support yet!");
+-			/*choice=input('Is the job successfully completed? (y/n)','s');
+-			  if ~strcmp(choice,'y'), 
+-			  console.log('Results not loaded... exiting'); 
+-			  else
+-			  md=loadresultsfromcluster(md);
+-			  end*/
+-		}
+-		else if (md.settings.waitonlock>0){
+-			//we wait for the done file
+-			done=waitonlock(md);
+-			if (md.verbose.solution){
+-				console.log('loading results from cluster');
+-			}
+-			loadresultsfromcluster(md);
+-		}
+-		else if (md.settings.waitonlock==0){
+-			console.log('Model results must be loaded manually with md=loadresultsfromcluster(md);');
+-		}
+-
+-		//post processes qmu results if necessary
+-		if (md.qmu.isdakota){
+-			/*if ~strncmpi(options.getfieldvalue('keep','y'),'y',1)
+-			  system(['rm -rf qmu' num2str(feature('GetPid'))]);
+-			  end*/
+-		}
+-	} //}}}
+-	else{ //if (cluster.classname() == 'local') 
+-
+ 		/*We are running locally on the machine, using the issm module:*/
+ 		console.log('running issm locally');
+ 		
+@@ -188,9 +113,17 @@
+ 		var outputbuffer = outputs[0]; var outputbuffersize = outputs[1];
+ 			
+ 		//Load results: 
+-		var results = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); //loadresults: [array,solution_type]
++		md.results = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); 
++		
++		return md;
+ 
+-		return results;
++	} //}}}
++	else { //{{{
+ 
+-	}
++		/*We are running somewhere else on a computational server. Send the buffer to that server and retrieve output: */
++		cluster.UploadAndRun(fid,toolkitsstring,solutionstring,md.miscellaneous.name);
++
++		return md;
++
++	} //}}}
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20269-20270.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20269-20270.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20269-20270.diff	(revision 20498)
@@ -0,0 +1,74 @@
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 20269)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 20270)
+@@ -22,6 +22,7 @@
+ //      - runtimename : true or false (default is true), makes name unique
+ //      - checkconsistency : 'yes' or 'no' (default is 'yes'), ensures checks on consistency of model
+ //      - restart: 'directory name (relative to the execution directory) where the restart file is located.
++//      - callback: callback function to be called upon receiving the results from the server, or local computations. 
+ //
+ //   Examples:
+ //      md=solve(md,StressbalanceSolutionEnum);
+@@ -100,6 +101,11 @@
+ 	//deal with toolkits options: 
+ 	toolkitsstring= md.toolkits.ToolkitsFile(md.miscellaneous.name + '.toolkits'); // toolkits file
+ 
++	//callback function: 
++	function callbackfunction(){}; //default, do nothing if no callback requested.
++	if (options.getfieldvalue('callback',false)){
++		callbackfunction=options.getfieldvalue('callback');
++	}
+ 
+ 	if (cluster.classname() == 'local'){  //{{{
+ 
+@@ -115,13 +121,16 @@
+ 		//Load results: 
+ 		md.results = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); 
+ 		
++		//Call back? 
++		callbackfunction();
++
+ 		return md;
+ 
+ 	} //}}}
+ 	else { //{{{
+ 
+ 		/*We are running somewhere else on a computational server. Send the buffer to that server and retrieve output: */
+-		cluster.UploadAndRun(fid,toolkitsstring,solutionstring,md.miscellaneous.name);
++		cluster.UploadAndRun(md,callbackfunction,fid,toolkitsstring,solutionstring,md.miscellaneous.name);
+ 
+ 		return md;
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20269)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20270)
+@@ -33,16 +33,17 @@
+ 				md.checkmessage('number of processors should not be NaN!');
+ 			}
+ 		} //}}}
+-		this.UploadAndRun = function (fid,toolkitsstring,solutionstring,name) { //{{{
++		this.UploadAndRun = function (md,callbackfunction,fid,toolkitsstring,solutionstring,name) { //{{{
+ 
+ 			var oReq = new XMLHttpRequest();
+ 			oReq.open("POST", this.url, true);
+ 			oReq.responseType = 'arraybuffer';
+ 
+ 			oReq.onload = function (oEvent) {
+-				var returnBuffer= oReq.response.slice(); 
+-				var returnBuffer_size= returnBuffer.byteLength;
+-				md.results= loadresultsfrombuffer(md,returnBuffer,returnBuffer_size); 
++				var returnBuffer = new Uint8Array(oReq.response.slice());
++				var returnBuffer_size=returnBuffer.byteLength;
++				md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
++				callbackfunction();
+ 			};
+ 
+ 			var blob = new Blob(new Int8Array(fid.buffer), {type: 'text/plain'});
+@@ -50,5 +51,4 @@
+ 			return;
+ 
+ 		} /*}}}*/
+-
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20270-20271.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20270-20271.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20270-20271.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20270)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20271)
+@@ -46,8 +46,7 @@
+ 				callbackfunction();
+ 			};
+ 
+-			var blob = new Blob(new Int8Array(fid.buffer), {type: 'text/plain'});
+-			oReq.send(blob);
++			oReq.send(new Int8Array(fid.buffer));
+ 			return;
+ 
+ 		} /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20271-20272.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20271-20272.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20271-20272.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20271)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20272)
+@@ -820,8 +820,9 @@
+ 	/* implementation of the basal condition decision chart of Aschwanden 2012, Fig.5 */
+ 	if(!element->IsOnBase() || element->IsFloating()) return NULL;
+ 
+-	bool isdynamicbasalspc;
++	bool converged, isdynamicbasalspc;
+ 	int i, state;
++	int enthalpy_enum;
+ 	IssmDouble  dt,Jdet,scalar;
+ 	IssmDouble	enthalpy, enthalpyup, pressure, pressureup, watercolumn, meltingrate;
+ 	IssmDouble	vx,vy,vz;
+@@ -839,10 +840,13 @@
+ 	element->GetVerticesCoordinatesBase(&xyz_list_base);
+ 	element->FindParam(&dt,TimesteppingTimeStepEnum);
+ 	element->FindParam(&isdynamicbasalspc,ThermalIsdynamicbasalspcEnum);
++	element->GetInputValue(&converged,ConvergedEnum);
++	if(dt==0. && !converged) enthalpy_enum=EnthalpyPicardEnum; // use enthalpy from last iteration
++	else enthalpy_enum=EnthalpyEnum; // use enthalpy from last time step
+ 	Input* vx_input             = element->GetInput(VxEnum);                          _assert_(vx_input);
+ 	Input* vy_input             = element->GetInput(VyEnum);                          _assert_(vy_input);
+ 	Input* vz_input             = element->GetInput(VzEnum);                          _assert_(vz_input);
+-	Input* enthalpy_input		 = element->GetInput(EnthalpyPicardEnum);					 _assert_(enthalpy_input);
++	Input* enthalpy_input		 = element->GetInput(enthalpy_enum);					 _assert_(enthalpy_input);
+ 	Input* pressure_input		 = element->GetInput(PressureEnum);							 _assert_(pressure_input);
+ 	Input* watercolumn_input	 = element->GetInput(WatercolumnEnum);							 _assert_(watercolumn_input);
+ 	Input* meltingrate_input	 = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);							 _assert_(meltingrate_input);
+@@ -875,8 +879,11 @@
+ 			state=0;
+ 
+ 		switch (state) {
+-			case 0:
+-				// cold, dry base: apply basal surface forcing
++			case 0: case 1: case 2: case 3:
++				// cold, dry base; cold, wet base; refreezing temperate base; thin temperate base: 
++				// Apply basal surface forcing.
++				// Interpolated values of enthalpy on gauss nodes may indicate cold base, 
++				// although one node might have become temperate. So keep heat flux switched on.
+ 				geothermalflux_input->GetInputValue(&geothermalflux,gauss);
+ 				friction->GetAlpha2(&alpha2,gauss);
+ 				vx_input->GetInputValue(&vx,gauss);
+@@ -889,15 +896,6 @@
+ 				for(i=0;i<numnodes;i++) 
+ 					pe->values[i]+=scalar*basis[i];
+ 				break;
+-			case 1:
+-				// cold, wet base: keep at pressure melting point 
+-				break;
+-			case 2:
+-				// temperate, thin refreezing base: release spc
+-				break;
+-			case 3:
+-				// temperate, thin melting base: set spc
+-				break;
+ 			case 4:
+ 				// temperate, thick melting base: set grad H*n=0
+ 				for(i=0;i<numnodes;i++) 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20272-20273.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20272-20273.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20272-20273.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive327.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20273-20274.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20273-20274.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20273-20274.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/m/plot/quiver_colorbar.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/quiver_colorbar.m	(revision 20273)
++++ ../trunk-jpl/src/m/plot/quiver_colorbar.m	(revision 20274)
+@@ -12,7 +12,7 @@
+ 	for i=1:length(quivers.levels),
+ 		ticklabel{i}=num2str(round_ice(quivers.levels(i),3));
+ 	end
+-	tickpos=1:quivers.numcolors+1;
++	tickpos=1/(quivers.numcolors+1)*[1:quivers.numcolors+1];
+ 
+ 	%remove ticks if to many have been created
+ 	proportion=round(length(quivers.levels)/4);
+@@ -23,6 +23,7 @@
+ 
+ 	%draw colorbar
+ 	set(hcb,'YTickLabel',ticklabel,'YTick',tickpos);
++
+ 	%position
+ 	if exist(options,'colorbarpos'),
+ 		set(hcb,'Position',getfieldvalue(options,'colorbarpos'));
Index: /issm/oecreview/Archive/19101-20495/ISSM-20274-20275.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20274-20275.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20274-20275.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20274)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20275)
+@@ -138,9 +138,9 @@
+ 	mesh.z=empty(mesh.numberofvertices)
+ 	for i in range(mesh.numberofvertices):
+ 		A=fid.readline().split()
+-		mesh.x[i]=float(A[0])
+-		mesh.y[i]=float(A[1])
+-		mesh.z[i]=float(A[2])
++		mesh.x[i]=float(A[1])
++		mesh.y[i]=float(A[2])
++		mesh.z[i]=float(A[3])
+ 
+ 	A=fid.readline().strip()
+ 	if not strcmp(A,'$EndNodes'):
+@@ -152,6 +152,7 @@
+ 		raise RuntimeError(['Expecting $Elements (', A, ')'])
+ 	mesh.numberofelements=int(fid.readline().strip())
+ 	mesh.elements=empty([mesh.numberofelements,3])
++	print mesh.numberofelements
+ 	for i in range(mesh.numberofelements):
+ 		A=fid.readline().split()
+ 		mesh.elements[i]=[float(A[5]),float(A[6]),float(A[7])]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20275-20276.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20275-20276.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20275-20276.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20275)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20276)
+@@ -2586,8 +2586,7 @@
+ 	int  ierr;
+ 
+ 	/*First things first, store the communicator, and set it as a global variable: */
+-	this->comm=incomm;
+-	IssmComm::SetComm(this->comm);
++	IssmComm::SetComm(incomm);
+ 
+ 	/*Start profiler: */
+ 	this->profiler=new Profiler();
+@@ -2600,6 +2599,9 @@
+ 	profiler->Tag(StartInit);
+ 	this->InitFromBuffers((char*)buffer,buffersize,toolkits, solution_type,trace,NULL);
+ 	profiler->Tag(FinishInit);
++	
++	/*Save communicator in the parameters dataset: */
++	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
+ 
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20276-20277.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20276-20277.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20276-20277.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20276)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20277)
+@@ -152,7 +152,6 @@
+ 		raise RuntimeError(['Expecting $Elements (', A, ')'])
+ 	mesh.numberofelements=int(fid.readline().strip())
+ 	mesh.elements=empty([mesh.numberofelements,3])
+-	print mesh.numberofelements
+ 	for i in range(mesh.numberofelements):
+ 		A=fid.readline().split()
+ 		mesh.elements[i]=[float(A[5]),float(A[6]),float(A[7])]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20277-20278.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20277-20278.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20277-20278.diff	(revision 20498)
@@ -0,0 +1,38 @@
+Index: ../trunk-jpl/src/m/classes/mesh3dsurface.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 20277)
++++ ../trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 20278)
+@@ -130,21 +130,21 @@
+ 		return md
+ 	# }}}
+ 	def marshall(self,md,fid): # {{{
+-		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum(['Domain', self.domaintype()]),'format','Integer')
++		WriteData(fid,'enum',DomainTypeEnum(),'data',StringToEnum('Domain' + self.domaintype())[0],'format','Integer')
+ 		WriteData(fid,'enum',DomainDimensionEnum(),'data',self.dimension(),'format','Integer')
+-		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(self.elementtype()),'format','Integer')
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','z','format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshElementtypeEnum(),'data',StringToEnum(self.elementtype())[0],'format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','x','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','y','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','z','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'enum',MeshLatEnum(),'data',md.mesh.lat,'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'enum',MeshLongEnum(),'data',md.mesh.long,'format','DoubleMat','mattype',1)
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','r','format','DoubleMat','mattype',1)
+-		WriteData(fid,'enum',MeshZEnum(),'data',zeros(md.mesh.numberofvertices,1),'format','DoubleMat','mattype',1)
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofelements','format','Integer')
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer')
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
+-		WriteData(fid,'object',obj,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','r','format','DoubleMat','mattype',1)
++		WriteData(fid,'enum',MeshZEnum(),'data',zeros(md.mesh.numberofvertices),'format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','mesh','fieldname','elements','format','DoubleMat','mattype',2)
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofelements','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','numberofvertices','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','average_vertex_connectivity','format','Integer')
++		WriteData(fid,'object',self,'class','mesh','fieldname','vertexonboundary','format','DoubleMat','mattype',1)
+ 	# }}}
+ 	def domaintype(self): # {{{
+ 		return '3Dsurface'
Index: /issm/oecreview/Archive/19101-20495/ISSM-20278-20279.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20278-20279.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20278-20279.diff	(revision 20498)
@@ -0,0 +1,66 @@
+Index: ../trunk-jpl/src/m/classes/maskpsl.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.py	(revision 20278)
++++ ../trunk-jpl/src/m/classes/maskpsl.py	(revision 20279)
+@@ -1,7 +1,7 @@
+-from MatlabFuncs import *
++import numpy
++import MatlabFuncs as m
+ from model import *
+ from EnumDefinitions import *
+-from numpy import *
+ from fielddisplay import fielddisplay
+ from checkfield import checkfield
+ from WriteData import WriteData
+@@ -12,10 +12,10 @@
+ #   Usage:
+ #      maskpsl=maskpsl();
+ 	def __init__(self,*args): # {{{
+-		self.groundedice_levelset = NaN
+-		self.ice_levelset         = NaN
+-		self.ocean_levelset = NaN
+-		self.land_levelset = NaN
++		self.groundedice_levelset = float('NaN')
++		self.ice_levelset         = float('NaN')
++		self.ocean_levelset = float('NaN')
++		self.land_levelset = float('NaN')
+ 		
+ 		if not len(args):
+ 			self.setdefaultparameters()
+@@ -56,9 +56,10 @@
+ 
+ 		if max(md.mask.ice_levelset)<0:
+ 			print('no ice front provided')
+-
+-		icefront=sum(md.mask.ice_levelset[md.mesh.elements.astype(int)-1]==0,axis=1)
+-		if (amax(icefront)==3 & strcmp(md.mesh.elementtype(),'Tria')) or (amax(icefront==6) & strcmp(md.mesh.elementtype(),'Penta')):
++		
++		elements=md.mesh.elements-1; elements=elements.astype(numpy.int32, copy=False);
++		icefront=numpy.sum(md.mask.ice_levelset[elements]==0,axis=1)
++		if (max(icefront)==3 & m.strcmp(md.mesh.elementtype(),'Tria')) or (max(icefront==6) & m.strcmp(md.mesh.elementtype(),'Penta')):
+ 			raise RuntimeError('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
+ 		
+ 		return md
+@@ -77,7 +78,6 @@
+ 			raise RuntimeError('constructor not supported')
+ 		return self
+ 	# }}}
+-	
+ 	def marshall(self,md,fid): # {{{
+ 		WriteData(fid,'object',self,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1)
+@@ -86,9 +86,11 @@
+ 
+ 		# get mask of vertices of elements with ice
+ 		isice=md.mask.ice_levelset<=0.
+-		vlist = zeros(md.mesh.numberofvertices,1)
+-		pos=find(sum(isice(md.mesh.elements),2)>0)
+-		vlist[md.mesh.elements[pos,:]]=1
++		vlist = numpy.zeros((md.mesh.numberofvertices,1), dtype=int)
++		
++		elements=md.mesh.elements-1; elements=elements.astype(numpy.int32, copy=False);
++		pos=numpy.nonzero(numpy.sum(isice[elements],axis=1))[0]
++		vlist[elements[pos,:]-1]=1
+ 		WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1)
+ 
+ 	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20279-20280.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20279-20280.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20279-20280.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/m/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.py	(revision 20279)
++++ ../trunk-jpl/src/m/classes/stressbalance.py	(revision 20280)
+@@ -194,10 +194,17 @@
+ 		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer')
+ 		WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1)
+ 
+-		WriteData(fid,'data',self.loadingforce[:,0],'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
+-		WriteData(fid,'data',self.loadingforce[:,1],'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
+-		WriteData(fid,'data',self.loadingforce[:,2],'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum())
++		if numpy.isnan(self.loadingforce):
++			lx=float('NaN'); ly=float('NaN'); lz=float('NaN');
++		else:
++			lx=self.loadingforce[:,0];
++			ly=self.loadingforce[:,1];
++			lz=self.loadingforce[:,2];
+ 
++		WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
++		WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
++		WriteData(fid,'data',lz,'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum())
++
+ 		#process requested outputs
+ 		outputs = self.requested_outputs
+ 		indices = [i for i, x in enumerate(outputs) if x == 'default']
Index: /issm/oecreview/Archive/19101-20495/ISSM-20280-20281.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20280-20281.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20280-20281.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20280)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20281)
+@@ -104,7 +104,6 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray');
+ 			
+ 			%process requested outputs
+Index: ../trunk-jpl/src/m/classes/slr.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.py	(revision 20280)
++++ ../trunk-jpl/src/m/classes/slr.py	(revision 20281)
+@@ -113,7 +113,6 @@
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
+-		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray')
+ 	
+ 		#process requested outputs
Index: /issm/oecreview/Archive/19101-20495/ISSM-20281-20282.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20281-20282.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20281-20282.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/classes/flowequation.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.py	(revision 20281)
++++ ../trunk-jpl/src/m/classes/flowequation.py	(revision 20282)
+@@ -137,26 +137,28 @@
+ 		WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1)
+ 		#convert approximations to enums
+-		data=copy.deepcopy(self.vertex_equation)
+-		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+-		data[numpy.nonzero(data==1)]=SIAApproximationEnum()
+-		data[numpy.nonzero(data==2)]=SSAApproximationEnum()
+-		data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
+-		data[numpy.nonzero(data==4)]=HOApproximationEnum()
+-		data[numpy.nonzero(data==5)]=FSApproximationEnum()
+-		data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
+-		data[numpy.nonzero(data==7)]=HOFSApproximationEnum()
+-		data[numpy.nonzero(data==8)]=SSAFSApproximationEnum()
++		data=copy.deepcopy(self.vertex_equation); 
++		if numpy.isnan(data)==0:
++			data[numpy.nonzero(data==0)]=NoneApproximationEnum()
++			data[numpy.nonzero(data==1)]=SIAApproximationEnum()
++			data[numpy.nonzero(data==2)]=SSAApproximationEnum()
++			data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
++			data[numpy.nonzero(data==4)]=HOApproximationEnum()
++			data[numpy.nonzero(data==5)]=FSApproximationEnum()
++			data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
++			data[numpy.nonzero(data==7)]=HOFSApproximationEnum()
++			data[numpy.nonzero(data==8)]=SSAFSApproximationEnum()
+ 		WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
+ 		data=copy.deepcopy(self.element_equation)
+-		data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+-		data[numpy.nonzero(data==1)]=SIAApproximationEnum()
+-		data[numpy.nonzero(data==2)]=SSAApproximationEnum()
+-		data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
+-		data[numpy.nonzero(data==4)]=HOApproximationEnum()
+-		data[numpy.nonzero(data==5)]=FSApproximationEnum()
+-		data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
+-		data[numpy.nonzero(data==7)]=SSAFSApproximationEnum()
+-		data[numpy.nonzero(data==8)]=HOFSApproximationEnum()
++		if numpy.isnan(data)==0:
++			data[numpy.nonzero(data==0)]=NoneApproximationEnum()
++			data[numpy.nonzero(data==1)]=SIAApproximationEnum()
++			data[numpy.nonzero(data==2)]=SSAApproximationEnum()
++			data[numpy.nonzero(data==3)]=L1L2ApproximationEnum()
++			data[numpy.nonzero(data==4)]=HOApproximationEnum()
++			data[numpy.nonzero(data==5)]=FSApproximationEnum()
++			data[numpy.nonzero(data==6)]=SSAHOApproximationEnum()
++			data[numpy.nonzero(data==7)]=SSAFSApproximationEnum()
++			data[numpy.nonzero(data==8)]=HOFSApproximationEnum()
+ 		WriteData(fid,'data',data,'enum',FlowequationElementEquationEnum(),'format','DoubleMat','mattype',2)
+ 	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20282-20283.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20282-20283.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20282-20283.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.py
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 20282)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 20283)
+@@ -38,7 +38,7 @@
+ 	
+ 	#First, write our lat,long file for gmt:
+ 	nv=lenlat
+-	savetxt('./all_vertices.txt',[long, lat, arange(1,nv+1)],delimiter='\t')
++	savetxt('./all_vertices.txt',transpose([long, lat, arange(1,nv+1)]),delimiter='\t',fmt='%.10f')
+ 
+ 	#Avoid bypassing of the ld library path by Matlab (:()
+ 	try:
+@@ -67,7 +67,7 @@
+ 	line=fid.readline()
+ 	oce_vertices=[]
+ 	while line:
+-		ind=str2num(line.split()[3])
++		ind=int(float(line.split()[2]))-1;
+ 		oce_vertices.append(ind)
+ 		line=fid.readline()
+ 	fid.close()
+Index: ../trunk-jpl/src/m/coordsystems/gmtmask.m
+===================================================================
+--- ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20282)
++++ ../trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 20283)
+@@ -30,7 +30,7 @@
+ 	
+ 	%First, write our lat,long file for gmt:
+ 	nv=length(lat);
+-	dlmwrite('./all_vertices.txt',[long lat (1:nv)'],'delimiter','\t');
++	dlmwrite('./all_vertices.txt',[long lat (1:nv)'],'delimiter','\t','precision',10);
+ 
+ 	%Avoid bypassing of the ld library path by Matlab (:()
+ 	if ismac,
Index: /issm/oecreview/Archive/19101-20495/ISSM-20283-20284.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20283-20284.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20283-20284.diff	(revision 20498)
@@ -0,0 +1,20030 @@
+Index: ../trunk-jpl/src/m/boundaryconditions/love_numbers.py
+===================================================================
+--- ../trunk-jpl/src/m/boundaryconditions/love_numbers.py	(revision 20283)
++++ ../trunk-jpl/src/m/boundaryconditions/love_numbers.py	(revision 20284)
+@@ -20,10018 +20,10019 @@
+ 	if not ( strcmpi(value,'h') | strcmpi(value,'k') | strcmpi(value,'l') | strcmpi(value,'gamma') | strcmpi(value,'lambda')):
+ 		raise RuntimeError('value should be one of ''h'',''k'',''l'',''gamma'' and ''lambda''')
+ 
+-	love_numbers=[\
+-	-0.28740059, -0.00000000, 0.10141481, 1.28740059, 0.42519882, 0.89858519, 0.00000000,\
+-	-1.00025365, -0.30922675, 0.02060926, 1.69102690, 0.46358648, 0.67016399, 0.61829668,\
+-	-1.06243501, -0.19927948, 0.06801636, 1.86315553, 0.55741597, 0.73270416, 0.56270589,\
+-	-1.06779588, -0.13649834, 0.05667027, 1.93129754, 0.63672498, 0.80683140, 0.51132745,\
+-	-1.10365923, -0.10736896, 0.04401221, 1.99629027, 0.68737906, 0.84861883, 0.48642259,\
+-	-1.16440348, -0.09295485, 0.03638747, 2.07144863, 0.72031283, 0.87065768, 0.47898268,\
+-	-1.23634156, -0.08469861, 0.03202759, 2.15164295, 0.74355796, 0.88327380, 0.47955214,\
+-	-1.31140380, -0.07921412, 0.02937593, 2.23218968, 0.76126493, 0.89140995, 0.48323250,\
+-	-1.38582399, -0.07513541, 0.02762338, 2.31068858, 0.77552290, 0.89724121, 0.48795424,\
+-	-1.45807465, -0.07187005, 0.02638627, 2.38620460, 0.78744212, 0.90174369, 0.49291061,\
+-	-1.52763314, -0.06913154, 0.02547640, 2.45850160, 0.79766475, 0.90539206, 0.49779422,\
+-	-1.59437866, -0.06676258, 0.02479080, 2.52761607, 0.80659635, 0.90844662, 0.50248477,\
+-	-1.65833071, -0.06466619, 0.02426511, 2.59366452, 0.81451271, 0.91106870, 0.50693175,\
+-	-1.71954820, -0.06277732, 0.02385464, 2.65677088, 0.82161167, 0.91336804, 0.51111243,\
+-	-1.77809640, -0.06105001, 0.02352654, 2.71704639, 0.82804049, 0.91542346, 0.51501712,\
+-	-1.83403970, -0.05945081, 0.02325609, 2.77458889, 0.83391153, 0.91729309, 0.51864363,\
+-	-1.88744242, -0.05795502, 0.02302469, 2.82948740, 0.83931209, 0.91902029, 0.52199490,\
+-	-1.93837115, -0.05654418, 0.02281843, 2.88182697, 0.84431095, 0.92063739, 0.52507761,\
+-	-1.98689666, -0.05520447, 0.02262706, 2.93169219, 0.84896295, 0.92216847, 0.52790108,\
+-	-2.03309477, -0.05392545, 0.02244322, 2.97916932, 0.85331225, 0.92363132, 0.53047654,\
+-	-2.07704643, -0.05269926, 0.02226173, 3.02434717, 0.85739480, 0.92503902, 0.53281639,\
+-	-2.11883714, -0.05151988, 0.02207909, 3.06731726, 0.86124014, 0.92640103, 0.53493369,\
+-	-2.15855611, -0.05038274, 0.02189307, 3.10817337, 0.86487276, 0.92772419, 0.53684176,\
+-	-2.19629514, -0.04928430, 0.02170238, 3.14701084, 0.86831322, 0.92901331, 0.53855386,\
+-	-2.23214747, -0.04822179, 0.02150643, 3.18392568, 0.87157886, 0.93027178, 0.54008294,\
+-	-2.26620674, -0.04719301, 0.02130509, 3.21901373, 0.87468453, 0.93150190, 0.54144148,\
+-	-2.29856595, -0.04619619, 0.02109858, 3.25236976, 0.87764301, 0.93270523, 0.54264140,\
+-	-2.32931659, -0.04522983, 0.02088735, 3.28408675, 0.88046543, 0.93388282, 0.54369397,\
+-	-2.35854794, -0.04429270, 0.02067197, 3.31425524, 0.88316156, 0.93503533, 0.54460979,\
+-	-2.38634650, -0.04338368, 0.02045310, 3.34296281, 0.88574004, 0.93616321, 0.54539877,\
+-	-2.41279547, -0.04250179, 0.02023142, 3.37029367, 0.88820859, 0.93726678, 0.54607015,\
+-	-2.43797451, -0.04164613, 0.02000761, 3.39632839, 0.89057416, 0.93834626, 0.54663248,\
+-	-2.46195951, -0.04081583, 0.01978231, 3.42114367, 0.89284301, 0.93940185, 0.54709369,\
+-	-2.48482241, -0.04001011, 0.01955614, 3.44481230, 0.89502085, 0.94043375, 0.54746112,\
+-	-2.50663126, -0.03922817, 0.01932966, 3.46740309, 0.89711291, 0.94144217, 0.54774153,\
+-	-2.52745016, -0.03846928, 0.01910337, 3.48898088, 0.89912397, 0.94242735, 0.54794114,\
+-	-2.54733938, -0.03773269, 0.01887774, 3.50960670, 0.90105847, 0.94338957, 0.54806571,\
+-	-2.56635547, -0.03701769, 0.01865317, 3.52933779, 0.90292050, 0.94432915, 0.54812051,\
+-	-2.58455138, -0.03632358, 0.01843000, 3.54822780, 0.90471386, 0.94524642, 0.54811044,\
+-	-2.60197665, -0.03564968, 0.01820854, 3.56632697, 0.90644209, 0.94614178, 0.54803997,\
+-	-2.61867756, -0.03499532, 0.01798905, 3.58368224, 0.90810850, 0.94701563, 0.54791326,\
+-	-2.63469733, -0.03435985, 0.01777176, 3.60033748, 0.90971616, 0.94786840, 0.54773413,\
+-	-2.65007629, -0.03374263, 0.01755683, 3.61633367, 0.91126798, 0.94870054, 0.54750610,\
+-	-2.66485208, -0.03314303, 0.01734443, 3.63170905, 0.91276665, 0.94951253, 0.54723245,\
+-	-2.67905981, -0.03256047, 0.01713468, 3.64649934, 0.91421471, 0.95030485, 0.54691620,\
+-	-2.69273222, -0.03199435, 0.01692767, 3.66073787, 0.91561457, 0.95107798, 0.54656015,\
+-	-2.70589990, -0.03144411, 0.01672347, 3.67445580, 0.91696845, 0.95183242, 0.54616691,\
+-	-2.71859139, -0.03090919, 0.01652215, 3.68768220, 0.91827849, 0.95256866, 0.54573889,\
+-	-2.73083334, -0.03038907, 0.01632374, 3.70044427, 0.91954667, 0.95328719, 0.54527835,\
+-	-2.74265068, -0.02988323, 0.01612826, 3.71276745, 0.92077487, 0.95398851, 0.54478739,\
+-	-2.75406669, -0.02939118, 0.01593573, 3.72467551, 0.92196486, 0.95467309, 0.54426797,\
+-	-2.76510320, -0.02891245, 0.01574615, 3.73619076, 0.92311833, 0.95534141, 0.54372191,\
+-	-2.77578063, -0.02844656, 0.01555950, 3.74733406, 0.92423685, 0.95599393, 0.54315095,\
+-	-2.78611812, -0.02799309, 0.01537578, 3.75812503, 0.92532192, 0.95663113, 0.54255669,\
+-	-2.79613364, -0.02755161, 0.01519496, 3.76858203, 0.92637496, 0.95725343, 0.54194065,\
+-	-2.80584405, -0.02712170, 0.01501701, 3.77872235, 0.92739730, 0.95786128, 0.54130424,\
+-	-2.81526521, -0.02670298, 0.01484191, 3.78856223, 0.92839022, 0.95845511, 0.54064880,\
+-	-2.82441204, -0.02629506, 0.01466961, 3.79811697, 0.92935491, 0.95903532, 0.53997561,\
+-	-2.83329857, -0.02589759, 0.01450009, 3.80740098, 0.93029251, 0.95960232, 0.53928586,\
+-	-2.84193804, -0.02551021, 0.01433329, 3.81642782, 0.93120412, 0.96015649, 0.53858067,\
+-	-2.85034293, -0.02513260, 0.01416919, 3.82521033, 0.93209074, 0.96069821, 0.53786112,\
+-	-2.85852503, -0.02476443, 0.01400773, 3.83376061, 0.93295337, 0.96122784, 0.53712821,\
+-	-2.86649548, -0.02440538, 0.01384888, 3.84209010, 0.93379291, 0.96174574, 0.53638291,\
+-	-2.87426481, -0.02405518, 0.01369258, 3.85020963, 0.93461026, 0.96225224, 0.53562612,\
+-	-2.88184299, -0.02371352, 0.01353880, 3.85812947, 0.93540625, 0.96274768, 0.53485873,\
+-	-2.88923945, -0.02338014, 0.01338749, 3.86585931, 0.93618168, 0.96323236, 0.53408154,\
+-	-2.89646316, -0.02305478, 0.01323861, 3.87340838, 0.93693730, 0.96370661, 0.53329534,\
+-	-2.90352261, -0.02273718, 0.01309211, 3.88078542, 0.93767383, 0.96417071, 0.53250089,\
+-	-2.91042585, -0.02242710, 0.01294795, 3.88799874, 0.93839197, 0.96462494, 0.53169888,\
+-	-2.91718054, -0.02212431, 0.01280609, 3.89505623, 0.93909236, 0.96506960, 0.53089002,\
+-	-2.92379397, -0.02182859, 0.01266648, 3.90196538, 0.93977564, 0.96550493, 0.53007493,\
+-	-2.93027306, -0.02153971, 0.01252908, 3.90873334, 0.94044240, 0.96593120, 0.52925424,\
+-	-2.93662439, -0.02125748, 0.01239386, 3.91536691, 0.94109322, 0.96634866, 0.52842854,\
+-	-2.94285425, -0.02098169, 0.01226077, 3.92187256, 0.94172863, 0.96675754, 0.52759839,\
+-	-2.94896860, -0.02071215, 0.01212977, 3.92825645, 0.94234915, 0.96715808, 0.52676434,\
+-	-2.95497314, -0.02044868, 0.01200082, 3.93452446, 0.94295529, 0.96755050, 0.52592690,\
+-	-2.96087331, -0.02019110, 0.01187388, 3.94068220, 0.94354752, 0.96793501, 0.52508656,\
+-	-2.96667427, -0.01993924, 0.01174893, 3.94673503, 0.94412630, 0.96831183, 0.52424380,\
+-	-2.97238097, -0.01969293, 0.01162591, 3.95268804, 0.94469206, 0.96868116, 0.52339906,\
+-	-2.97799813, -0.01945201, 0.01150481, 3.95854612, 0.94524521, 0.96904318, 0.52255277,\
+-	-2.98353025, -0.01921634, 0.01138557, 3.96431391, 0.94578617, 0.96939809, 0.52170535,\
+-	-2.98898162, -0.01898576, 0.01126817, 3.96999586, 0.94631531, 0.96974607, 0.52085719,\
+-	-2.99435636, -0.01876014, 0.01115257, 3.97559622, 0.94683300, 0.97008729, 0.52000868,\
+-	-2.99965838, -0.01853932, 0.01103875, 3.98111905, 0.94733959, 0.97042193, 0.51916016,\
+-	-3.00489143, -0.01832319, 0.01092666, 3.98656824, 0.94783543, 0.97075015, 0.51831198,\
+-	-3.01005909, -0.01811161, 0.01081628, 3.99194748, 0.94832084, 0.97107211, 0.51746448,\
+-	-3.01516479, -0.01790446, 0.01070757, 3.99726033, 0.94879613, 0.97138796, 0.51661796,\
+-	-3.02021180, -0.01770162, 0.01060052, 4.00251017, 0.94926160, 0.97169786, 0.51577273,\
+-	-3.02520323, -0.01750298, 0.01049508, 4.00770025, 0.94971755, 0.97200194, 0.51492908,\
+-	-3.03014209, -0.01730842, 0.01039123, 4.01283367, 0.95016424, 0.97230035, 0.51408727,\
+-	-3.03503122, -0.01711783, 0.01028894, 4.01791339, 0.95060195, 0.97259323, 0.51324758,\
+-	-3.03987336, -0.01693111, 0.01018819, 4.02294225, 0.95103094, 0.97288070, 0.51241024,\
+-	-3.04467112, -0.01674816, 0.01008894, 4.02792295, 0.95145145, 0.97316290, 0.51157550,\
+-	-3.04942699, -0.01656889, 0.00999117, 4.03285810, 0.95186373, 0.97343995, 0.51074358,\
+-	-3.05414335, -0.01639319, 0.00989485, 4.03775017, 0.95226799, 0.97371196, 0.50991471,\
+-	-3.05882250, -0.01622097, 0.00979997, 4.04260153, 0.95266447, 0.97397906, 0.50908908,\
+-	-3.06346660, -0.01605215, 0.00970649, 4.04741445, 0.95305338, 0.97424136, 0.50826689,\
+-	-3.06807773, -0.01588664, 0.00961439, 4.05219109, 0.95343492, 0.97449897, 0.50744832,\
+-	-3.07265789, -0.01572436, 0.00952364, 4.05693353, 0.95380929, 0.97475200, 0.50663356,\
+-	-3.07720897, -0.01556522, 0.00943423, 4.06164375, 0.95417670, 0.97500055, 0.50582277,\
+-	-3.08173279, -0.01540916, 0.00934613, 4.06632364, 0.95453731, 0.97524472, 0.50501611,\
+-	-3.08623109, -0.01525608, 0.00925931, 4.07097501, 0.95489131, 0.97548461, 0.50421372,\
+-	-3.09070551, -0.01510592, 0.00917376, 4.07559959, 0.95523888, 0.97572032, 0.50341576,\
+-	-3.09515765, -0.01495861, 0.00908946, 4.08019904, 0.95558018, 0.97595193, 0.50262236,\
+-	-3.09958899, -0.01481408, 0.00900637, 4.08477492, 0.95591537, 0.97617955, 0.50183364,\
+-	-3.10400100, -0.01467225, 0.00892449, 4.08932875, 0.95624461, 0.97640325, 0.50104973,\
+-	-3.10839504, -0.01453308, 0.00884379, 4.09386196, 0.95656806, 0.97662313, 0.50027073,\
+-	-3.11277241, -0.01439648, 0.00876425, 4.09837593, 0.95688585, 0.97683927, 0.49949676,\
+-	-3.11713438, -0.01426240, 0.00868586, 4.10287198, 0.95719812, 0.97705174, 0.49872791,\
+-	-3.12148213, -0.01413079, 0.00860858, 4.10735134, 0.95750503, 0.97726063, 0.49796429,\
+-	-3.12581680, -0.01400157, 0.00853241, 4.11181522, 0.95780669, 0.97746601, 0.49720597,\
+-	-3.13013947, -0.01387471, 0.00845733, 4.11626476, 0.95810324, 0.97766796, 0.49645304,\
+-	-3.13445117, -0.01375013, 0.00838331, 4.12070104, 0.95839480, 0.97786656, 0.49570558,\
+-	-3.13875289, -0.01362779, 0.00831034, 4.12512510, 0.95868150, 0.97806186, 0.49496366,\
+-	-3.14304556, -0.01350764, 0.00823841, 4.12953792, 0.95896344, 0.97825395, 0.49422734,\
+-	-3.14733008, -0.01338963, 0.00816748, 4.13394045, 0.95924075, 0.97844289, 0.49349669,\
+-	-3.15160728, -0.01327370, 0.00809756, 4.13833358, 0.95951352, 0.97862874, 0.49277177,\
+-	-3.15587797, -0.01315981, 0.00802862, 4.14271816, 0.95978188, 0.97881157, 0.49205262,\
+-	-3.16014293, -0.01304792, 0.00796064, 4.14709501, 0.96004592, 0.97899144, 0.49133930,\
+-	-3.16440288, -0.01293797, 0.00789361, 4.15146491, 0.96030574, 0.97916842, 0.49063185,\
+-	-3.16865852, -0.01282993, 0.00782751, 4.15582858, 0.96056144, 0.97934256, 0.48993030,\
+-	-3.17291049, -0.01272375, 0.00776233, 4.16018673, 0.96081312, 0.97951392, 0.48923471,\
+-	-3.17715942, -0.01261940, 0.00769805, 4.16454003, 0.96106086, 0.97968255, 0.48854509,\
+-	-3.18140591, -0.01251682, 0.00763466, 4.16888910, 0.96130476, 0.97984852, 0.48786148,\
+-	-3.18565052, -0.01241598, 0.00757215, 4.17323454, 0.96154490, 0.98001187, 0.48718390,\
+-	-3.18989378, -0.01231685, 0.00751049, 4.17757693, 0.96178137, 0.98017266, 0.48651237,\
+-	-3.19413619, -0.01221938, 0.00744968, 4.18191681, 0.96201424, 0.98033094, 0.48584692,\
+-	-3.19837823, -0.01212354, 0.00738970, 4.18625469, 0.96224360, 0.98048676, 0.48518756,\
+-	-3.20262035, -0.01202930, 0.00733053, 4.19059105, 0.96246952, 0.98064017, 0.48453431,\
+-	-3.20686298, -0.01193661, 0.00727217, 4.19492637, 0.96269208, 0.98079121, 0.48388717,\
+-	-3.21110653, -0.01184546, 0.00721461, 4.19926107, 0.96291135, 0.98093994, 0.48324615,\
+-	-3.21535137, -0.01175579, 0.00715782, 4.20359557, 0.96312741, 0.98108639, 0.48261126,\
+-	-3.21959786, -0.01166759, 0.00710179, 4.20793027, 0.96334031, 0.98123062, 0.48198250,\
+-	-3.22384634, -0.01158082, 0.00704652, 4.21226552, 0.96355014, 0.98137266, 0.48135988,\
+-	-3.22809714, -0.01149545, 0.00699199, 4.21660169, 0.96375694, 0.98151256, 0.48074338,\
+-	-3.23235055, -0.01141146, 0.00693819, 4.22093909, 0.96396080, 0.98165035, 0.48013301,\
+-	-3.23660685, -0.01132880, 0.00688511, 4.22527805, 0.96416176, 0.98178609, 0.47952876,\
+-	-3.24086631, -0.01124746, 0.00683273, 4.22961885, 0.96435989, 0.98191980, 0.47893063,\
+-	-3.24512918, -0.01116741, 0.00678105, 4.23396177, 0.96455525, 0.98205153, 0.47833860,\
+-	-3.24939569, -0.01108862, 0.00673005, 4.23830707, 0.96474789, 0.98218132, 0.47775267,\
+-	-3.25366606, -0.01101107, 0.00667973, 4.24265499, 0.96493787, 0.98230920, 0.47717282,\
+-	-3.25794050, -0.01093473, 0.00663007, 4.24700577, 0.96512525, 0.98243520, 0.47659903,\
+-	-3.26221918, -0.01085957, 0.00658106, 4.25135961, 0.96531007, 0.98255937, 0.47603130,\
+-	-3.26650230, -0.01078557, 0.00653269, 4.25571672, 0.96549239, 0.98268174, 0.47546960,\
+-	-3.27079000, -0.01071272, 0.00648495, 4.26007729, 0.96567225, 0.98280233, 0.47491391,\
+-	-3.27508246, -0.01064097, 0.00643784, 4.26444149, 0.96584971, 0.98292119, 0.47436422,\
+-	-3.27937980, -0.01057032, 0.00639134, 4.26880948, 0.96602482, 0.98303834, 0.47382051,\
+-	-3.28368216, -0.01050074, 0.00634544, 4.27318141, 0.96619761, 0.98315382, 0.47328275,\
+-	-3.28798965, -0.01043222, 0.00630013, 4.27755743, 0.96636814, 0.98326765, 0.47275091,\
+-	-3.29230239, -0.01036472, 0.00625541, 4.28193767, 0.96653645, 0.98337988, 0.47222499,\
+-	-3.29662047, -0.01029823, 0.00621126, 4.28632224, 0.96670258, 0.98349051, 0.47170494,\
+-	-3.30094399, -0.01023273, 0.00616768, 4.29071126, 0.96686657, 0.98359960, 0.47119074,\
+-	-3.30527303, -0.01016819, 0.00612465, 4.29510483, 0.96702847, 0.98370715, 0.47068237,\
+-	-3.30960766, -0.01010461, 0.00608218, 4.29950304, 0.96718831, 0.98381321, 0.47017979,\
+-	-3.31394795, -0.01004197, 0.00604024, 4.30390598, 0.96734614, 0.98391779, 0.46968299,\
+-	-3.31829395, -0.00998024, 0.00599883, 4.30831372, 0.96750198, 0.98402093, 0.46919192,\
+-	-3.32264573, -0.00991940, 0.00595795, 4.31272633, 0.96765588, 0.98412265, 0.46870656,\
+-	-3.32700331, -0.00985945, 0.00591759, 4.31714387, 0.96780788, 0.98422297, 0.46822687,\
+-	-3.33136675, -0.00980035, 0.00587773, 4.32156640, 0.96795801, 0.98432191, 0.46775284,\
+-	-3.33573607, -0.00974211, 0.00583838, 4.32599396, 0.96810630, 0.98441951, 0.46728441,\
+-	-3.34011130, -0.00968470, 0.00579951, 4.33042660, 0.96825278, 0.98451579, 0.46682157,\
+-	-3.34449246, -0.00962810, 0.00576113, 4.33486436, 0.96839750, 0.98461077, 0.46636427,\
+-	-3.34887956, -0.00957230, 0.00572323, 4.33930726, 0.96854048, 0.98470447, 0.46591248,\
+-	-3.35327261, -0.00951729, 0.00568581, 4.34375533, 0.96868175, 0.98479691, 0.46546617,\
+-	-3.35767163, -0.00946304, 0.00564884, 4.34820858, 0.96882135, 0.98488812, 0.46502531,\
+-	-3.36207660, -0.00940956, 0.00561233, 4.35266704, 0.96895930, 0.98497811, 0.46458986,\
+-	-3.36648753, -0.00935681, 0.00557627, 4.35713071, 0.96909563, 0.98506691, 0.46415977,\
+-	-3.37090440, -0.00930480, 0.00554066, 4.36159960, 0.96923037, 0.98515454, 0.46373503,\
+-	-3.37532721, -0.00925350, 0.00550548, 4.36607371, 0.96936355, 0.98524102, 0.46331559,\
+-	-3.37975593, -0.00920290, 0.00547073, 4.37055303, 0.96949520, 0.98532636, 0.46290141,\
+-	-3.38419056, -0.00915300, 0.00543641, 4.37503756, 0.96962535, 0.98541059, 0.46249246,\
+-	-3.38863105, -0.00910377, 0.00540251, 4.37952729, 0.96975401, 0.98549373, 0.46208870,\
+-	-3.39307740, -0.00905520, 0.00536901, 4.38402220, 0.96988122, 0.98557578, 0.46169009,\
+-	-3.39752956, -0.00900729, 0.00533593, 4.38852227, 0.97000699, 0.98565678, 0.46129660,\
+-	-3.40198751, -0.00896002, 0.00530324, 4.39302749, 0.97013137, 0.98573674, 0.46090819,\
+-	-3.40645121, -0.00891338, 0.00527095, 4.39753783, 0.97025435, 0.98581567, 0.46052482,\
+-	-3.41092063, -0.00886736, 0.00523904, 4.40205326, 0.97037598, 0.98589360, 0.46014645,\
+-	-3.41539571, -0.00882195, 0.00520752, 4.40657376, 0.97049628, 0.98597053, 0.45977305,\
+-	-3.41987643, -0.00877713, 0.00517637, 4.41109929, 0.97061526, 0.98604649, 0.45940458,\
+-	-3.42436272, -0.00873290, 0.00514560, 4.41562982, 0.97073295, 0.98612149, 0.45904100,\
+-	-3.42885456, -0.00868925, 0.00511520, 4.42016531, 0.97084936, 0.98619555, 0.45868227,\
+-	-3.43335188, -0.00864617, 0.00508515, 4.42470571, 0.97096453, 0.98626868, 0.45832835,\
+-	-3.43785464, -0.00860364, 0.00505546, 4.42925100, 0.97107847, 0.98634090, 0.45797921,\
+-	-3.44236278, -0.00856166, 0.00502613, 4.43380112, 0.97119120, 0.98641222, 0.45763480,\
+-	-3.44687625, -0.00852021, 0.00499714, 4.43835604, 0.97130274, 0.98648265, 0.45729509,\
+-	-3.45139500, -0.00847930, 0.00496849, 4.44291570, 0.97141311, 0.98655221, 0.45696005,\
+-	-3.45591895, -0.00843890, 0.00494017, 4.44748005, 0.97152233, 0.98662092, 0.45662962,\
+-	-3.46044807, -0.00839902, 0.00491219, 4.45204905, 0.97163042, 0.98668879, 0.45630378,\
+-	-3.46498227, -0.00835964, 0.00488454, 4.45662264, 0.97173739, 0.98675583, 0.45598249,\
+-	-3.46952151, -0.00832075, 0.00485721, 4.46120077, 0.97184326, 0.98682205, 0.45566570,\
+-	-3.47406572, -0.00828234, 0.00483019, 4.46578338, 0.97194805, 0.98688746, 0.45535338,\
+-	-3.47861484, -0.00824442, 0.00480349, 4.47037042, 0.97205179, 0.98695209, 0.45504550,\
+-	-3.48316880, -0.00820696, 0.00477710, 4.47496184, 0.97215447, 0.98701594, 0.45474201,\
+-	-3.48772753, -0.00816996, 0.00475102, 4.47955756, 0.97225612, 0.98707902, 0.45444287,\
+-	-3.49229097, -0.00813342, 0.00472523, 4.48415755, 0.97235676, 0.98714134, 0.45414806,\
+-	-3.49685904, -0.00809733, 0.00469975, 4.48876172, 0.97245640, 0.98720293, 0.45385753,\
+-	-3.50143169, -0.00806167, 0.00467455, 4.49337002, 0.97255506, 0.98726378, 0.45357123,\
+-	-3.50600884, -0.00802644, 0.00464964, 4.49798240, 0.97265275, 0.98732391, 0.45328915,\
+-	-3.51059042, -0.00799164, 0.00462502, 4.50259878, 0.97274949, 0.98738333, 0.45301123,\
+-	-3.51517637, -0.00795726, 0.00460068, 4.50721911, 0.97284528, 0.98744206, 0.45273745,\
+-	-3.51976660, -0.00792329, 0.00457662, 4.51184331, 0.97294015, 0.98750009, 0.45246776,\
+-	-3.52436105, -0.00788972, 0.00455283, 4.51647133, 0.97303411, 0.98755745, 0.45220214,\
+-	-3.52895964, -0.00785655, 0.00452930, 4.52110309, 0.97312718, 0.98761414, 0.45194053,\
+-	-3.53356231, -0.00782377, 0.00450605, 4.52573854, 0.97321936, 0.98767018, 0.45168291,\
+-	-3.53816898, -0.00779138, 0.00448306, 4.53037760, 0.97331067, 0.98772556, 0.45142923,\
+-	-3.54277957, -0.00775937, 0.00446032, 4.53502021, 0.97340111, 0.98778031, 0.45117947,\
+-	-3.54739402, -0.00772773, 0.00443784, 4.53966629, 0.97349072, 0.98783443, 0.45093359,\
+-	-3.55201224, -0.00769645, 0.00441562, 4.54431579, 0.97357949, 0.98788793, 0.45069155,\
+-	-3.55663417, -0.00766554, 0.00439364, 4.54896864, 0.97366744, 0.98794082, 0.45045331,\
+-	-3.56125973, -0.00763498, 0.00437190, 4.55362475, 0.97375458, 0.98799311, 0.45021885,\
+-	-3.56588885, -0.00760478, 0.00435041, 4.55828407, 0.97384092, 0.98804481, 0.44998812,\
+-	-3.57052145, -0.00757491, 0.00432916, 4.56294653, 0.97392648, 0.98809593, 0.44976109,\
+-	-3.57515745, -0.00754539, 0.00430814, 4.56761206, 0.97401126, 0.98814646, 0.44953772,\
+-	-3.57979678, -0.00751620, 0.00428736, 4.57228058, 0.97409528, 0.98819644, 0.44931799,\
+-	-3.58443937, -0.00748734, 0.00426681, 4.57695203, 0.97417854, 0.98824585, 0.44910185,\
+-	-3.58908514, -0.00745880, 0.00424648, 4.58162633, 0.97426107, 0.98829472, 0.44888928,\
+-	-3.59373401, -0.00743059, 0.00422637, 4.58630343, 0.97434286, 0.98834304, 0.44868023,\
+-	-3.59838592, -0.00740268, 0.00420649, 4.59098323, 0.97442393, 0.98839083, 0.44847468,\
+-	-3.60304078, -0.00737509, 0.00418682, 4.59566569, 0.97450428, 0.98843809, 0.44827259,\
+-	-3.60769852, -0.00734780, 0.00416737, 4.60035072, 0.97458394, 0.98848483, 0.44807392,\
+-	-3.61235907, -0.00732081, 0.00414813, 4.60503826, 0.97466290, 0.98853106, 0.44787865,\
+-	-3.61702235, -0.00729411, 0.00412910, 4.60972823, 0.97474118, 0.98857678, 0.44768674,\
+-	-3.62168828, -0.00726771, 0.00411028, 4.61442057, 0.97481879, 0.98862201, 0.44749816,\
+-	-3.62635680, -0.00724159, 0.00409166, 4.61911521, 0.97489573, 0.98866675, 0.44731288,\
+-	-3.63102782, -0.00721575, 0.00407325, 4.62381207, 0.97497202, 0.98871100, 0.44713086,\
+-	-3.63570128, -0.00719020, 0.00405503, 4.62851108, 0.97504766, 0.98875478, 0.44695207,\
+-	-3.64037709, -0.00716491, 0.00403700, 4.63321218, 0.97512267, 0.98879808, 0.44677649,\
+-	-3.64505519, -0.00713990, 0.00401918, 4.63791530, 0.97519704, 0.98884093, 0.44660407,\
+-	-3.64973550, -0.00711515, 0.00400154, 4.64262036, 0.97527080, 0.98888331, 0.44643478,\
+-	-3.65441795, -0.00709066, 0.00398409, 4.64732729, 0.97534394, 0.98892525, 0.44626861,\
+-	-3.65910247, -0.00706643, 0.00396683, 4.65203604, 0.97541648, 0.98896674, 0.44610551,\
+-	-3.66378898, -0.00704246, 0.00394975, 4.65674652, 0.97548842, 0.98900779, 0.44594545,\
+-	-3.66847740, -0.00701873, 0.00393286, 4.66145867, 0.97555978, 0.98904841, 0.44578841,\
+-	-3.67316767, -0.00699526, 0.00391614, 4.66617242, 0.97563055, 0.98908860, 0.44563435,\
+-	-3.67785972, -0.00697202, 0.00389960, 4.67088770, 0.97570076, 0.98912838, 0.44548324,\
+-	-3.68255347, -0.00694903, 0.00388324, 4.67560444, 0.97577039, 0.98916773, 0.44533506,\
+-	-3.68724885, -0.00692627, 0.00386705, 4.68032258, 0.97583947, 0.98920668, 0.44518977,\
+-	-3.69194579, -0.00690374, 0.00385103, 4.68504204, 0.97590800, 0.98924523, 0.44504735,\
+-	-3.69664421, -0.00688145, 0.00383518, 4.68976277, 0.97597598, 0.98928338, 0.44490776,\
+-	-3.70134406, -0.00685938, 0.00381949, 4.69448468, 0.97604342, 0.98932113, 0.44477099,\
+-	-3.70604525, -0.00683753, 0.00380397, 4.69920772, 0.97611034, 0.98935850, 0.44463698,\
+-	-3.71074772, -0.00681590, 0.00378861, 4.70393182, 0.97617673, 0.98939548, 0.44450573,\
+-	-3.71545140, -0.00679449, 0.00377342, 4.70865691, 0.97624261, 0.98943209, 0.44437720,\
+-	-3.72015622, -0.00677330, 0.00375838, 4.71338292, 0.97630797, 0.98946833, 0.44425137,\
+-	-3.72486211, -0.00675231, 0.00374349, 4.71810980, 0.97637283, 0.98950420, 0.44412820,\
+-	-3.72956899, -0.00673153, 0.00372877, 4.72283746, 0.97643720, 0.98953970, 0.44400767,\
+-	-3.73427682, -0.00671096, 0.00371419, 4.72756585, 0.97650107, 0.98957485, 0.44388975,\
+-	-3.73898550, -0.00669059, 0.00369976, 4.73229491, 0.97656446, 0.98960965, 0.44377441,\
+-	-3.74369498, -0.00667042, 0.00368549, 4.73702457, 0.97662737, 0.98964409, 0.44366163,\
+-	-3.74840519, -0.00665044, 0.00367136, 4.74175475, 0.97668980, 0.98967820, 0.44355139,\
+-	-3.75311607, -0.00663066, 0.00365738, 4.74648541, 0.97675177, 0.98971196, 0.44344364,\
+-	-3.75782754, -0.00661107, 0.00364354, 4.75121648, 0.97681327, 0.98974540, 0.44333838,\
+-	-3.76253955, -0.00659167, 0.00362984, 4.75594788, 0.97687432, 0.98977850, 0.44323557,\
+-	-3.76725202, -0.00657245, 0.00361628, 4.76067957, 0.97693492, 0.98981127, 0.44313518,\
+-	-3.77196489, -0.00655341, 0.00360286, 4.76541147, 0.97699508, 0.98984372, 0.44303720,\
+-	-3.77667809, -0.00653456, 0.00358958, 4.77014353, 0.97705479, 0.98987586, 0.44294159,\
+-	-3.78139156, -0.00651589, 0.00357643, 4.77487568, 0.97711407, 0.98990768, 0.44284833,\
+-	-3.78610525, -0.00649739, 0.00356342, 4.77960786, 0.97717292, 0.98993920, 0.44275740,\
+-	-3.79081907, -0.00647906, 0.00355053, 4.78434001, 0.97723134, 0.98997040, 0.44266877,\
+-	-3.79553298, -0.00646091, 0.00353778, 4.78907207, 0.97728935, 0.99000131, 0.44258241,\
+-	-3.80024690, -0.00644292, 0.00352516, 4.79380398, 0.97734694, 0.99003192, 0.44249831,\
+-	-3.80496078, -0.00642510, 0.00351266, 4.79853567, 0.97740413, 0.99006223, 0.44241644,\
+-	-3.80967455, -0.00640745, 0.00350029, 4.80326710, 0.97746090, 0.99009226, 0.44233677,\
+-	-3.81438815, -0.00638996, 0.00348804, 4.80799819, 0.97751728, 0.99012200, 0.44225928,\
+-	-3.81910152, -0.00637262, 0.00347592, 4.81272889, 0.97757326, 0.99015145, 0.44218395,\
+-	-3.82381460, -0.00635545, 0.00346392, 4.81745915, 0.97762886, 0.99018063, 0.44211076,\
+-	-3.82852732, -0.00633843, 0.00345204, 4.82218889, 0.97768406, 0.99020953, 0.44203968,\
+-	-3.83323964, -0.00632157, 0.00344027, 4.82691808, 0.97773889, 0.99023816, 0.44197068,\
+-	-3.83795149, -0.00630485, 0.00342863, 4.83164664, 0.97779333, 0.99026652, 0.44190376,\
+-	-3.84266280, -0.00628829, 0.00341709, 4.83637452, 0.97784741, 0.99029462, 0.44183887,\
+-	-3.84737353, -0.00627187, 0.00340568, 4.84110166, 0.97790111, 0.99032245, 0.44177601,\
+-	-3.85208361, -0.00625560, 0.00339437, 4.84582801, 0.97795446, 0.99035003, 0.44171515,\
+-	-3.85679299, -0.00623948, 0.00338318, 4.85055351, 0.97800744, 0.99037735, 0.44165627,\
+-	-3.86150160, -0.00622349, 0.00337210, 4.85527811, 0.97806006, 0.99040441, 0.44159934,\
+-	-3.86620939, -0.00620765, 0.00336112, 4.86000175, 0.97811233, 0.99043123, 0.44154435,\
+-	-3.87091631, -0.00619194, 0.00335026, 4.86472437, 0.97816426, 0.99045780, 0.44149127,\
+-	-3.87562229, -0.00617637, 0.00333950, 4.86944592, 0.97821584, 0.99048413, 0.44144009,\
+-	-3.88032729, -0.00616094, 0.00332885, 4.87416635, 0.97826708, 0.99051022, 0.44139078,\
+-	-3.88503124, -0.00614564, 0.00331830, 4.87888561, 0.97831798, 0.99053607, 0.44134332,\
+-	-3.88973410, -0.00613047, 0.00330785, 4.88360363, 0.97836855, 0.99056168, 0.44129769,\
+-	-3.89443580, -0.00611543, 0.00329750, 4.88832037, 0.97841879, 0.99058707, 0.44125387,\
+-	-3.89913629, -0.00610051, 0.00328726, 4.89303577, 0.97846870, 0.99061223, 0.44121185,\
+-	-3.90383552, -0.00608573, 0.00327711, 4.89774979, 0.97851829, 0.99063716, 0.44117159,\
+-	-3.90853343, -0.00607107, 0.00326707, 4.90246236, 0.97856756, 0.99066187, 0.44113309,\
+-	-3.91322998, -0.00605653, 0.00325712, 4.90717345, 0.97861652, 0.99068635, 0.44109632,\
+-	-3.91792511, -0.00604212, 0.00324726, 4.91188299, 0.97866516, 0.99071062, 0.44106126,\
+-	-3.92261876, -0.00602782, 0.00323750, 4.91659094, 0.97871350, 0.99073468, 0.44102790,\
+-	-3.92731089, -0.00601364, 0.00322784, 4.92129724, 0.97876153, 0.99075852, 0.44099621,\
+-	-3.93200144, -0.00599958, 0.00321826, 4.92600186, 0.97880926, 0.99078215, 0.44096618,\
+-	-3.93669036, -0.00598564, 0.00320878, 4.93070472, 0.97885669, 0.99080558, 0.44093779,\
+-	-3.94137761, -0.00597181, 0.00319939, 4.93540580, 0.97890383, 0.99082880, 0.44091101,\
+-	-3.94606313, -0.00595809, 0.00319009, 4.94010504, 0.97895067, 0.99085182, 0.44088584,\
+-	-3.95074687, -0.00594449, 0.00318088, 4.94480238, 0.97899722, 0.99087463, 0.44086225,\
+-	-3.95542878, -0.00593099, 0.00317175, 4.94949779, 0.97904349, 0.99089725, 0.44084022,\
+-	-3.96010882, -0.00591761, 0.00316271, 4.95419121, 0.97908947, 0.99091968, 0.44081975,\
+-	-3.96478693, -0.00590433, 0.00315376, 4.95888260, 0.97913517, 0.99094191, 0.44080080,\
+-	-3.96946306, -0.00589116, 0.00314489, 4.96357191, 0.97918060, 0.99096395, 0.44078336,\
+-	-3.97413718, -0.00587809, 0.00313611, 4.96825909, 0.97922575, 0.99098581, 0.44076742,\
+-	-3.97880922, -0.00586512, 0.00312740, 4.97294410, 0.97927063, 0.99100747, 0.44075296,\
+-	-3.98347915, -0.00585226, 0.00311878, 4.97762689, 0.97931524, 0.99102895, 0.44073996,\
+-	-3.98814692, -0.00583950, 0.00311024, 4.98230742, 0.97935959, 0.99105026, 0.44072841,\
+-	-3.99281247, -0.00582684, 0.00310178, 4.98698564, 0.97940367, 0.99107138, 0.44071828,\
+-	-3.99747577, -0.00581428, 0.00309340, 4.99166150, 0.97944749, 0.99109232, 0.44070956,\
+-	-4.00213677, -0.00580181, 0.00308510, 4.99633496, 0.97949105, 0.99111309, 0.44070224,\
+-	-4.00679542, -0.00578944, 0.00307688, 5.00100598, 0.97953436, 0.99113368, 0.44069630,\
+-	-4.01145168, -0.00577717, 0.00306873, 5.00567451, 0.97957741, 0.99115410, 0.44069173,\
+-	-4.01610551, -0.00576499, 0.00306065, 5.01034052, 0.97962021, 0.99117436, 0.44068850,\
+-	-4.02075685, -0.00575290, 0.00305266, 5.01500395, 0.97966277, 0.99119444, 0.44068660,\
+-	-4.02540567, -0.00574091, 0.00304473, 5.01966476, 0.97970508, 0.99121436, 0.44068602,\
+-	-4.03005191, -0.00572900, 0.00303688, 5.02432291, 0.97974715, 0.99123412, 0.44068674,\
+-	-4.03469555, -0.00571719, 0.00302910, 5.02897837, 0.97978897, 0.99125371, 0.44068875,\
+-	-4.03933654, -0.00570546, 0.00302139, 5.03363108, 0.97983056, 0.99127315, 0.44069203,\
+-	-4.04397482, -0.00569382, 0.00301375, 5.03828100, 0.97987192, 0.99129242, 0.44069657,\
+-	-4.04861037, -0.00568227, 0.00300619, 5.04292810, 0.97991304, 0.99131154, 0.44070234,\
+-	-4.05324314, -0.00567080, 0.00299869, 5.04757234, 0.97995393, 0.99133051, 0.44070935,\
+-	-4.05787308, -0.00565942, 0.00299126, 5.05221367, 0.97999459, 0.99134932, 0.44071756,\
+-	-4.06250017, -0.00564812, 0.00298390, 5.05685205, 0.98003502, 0.99136799, 0.44072698,\
+-	-4.06712435, -0.00563690, 0.00297660, 5.06148744, 0.98007523, 0.99138650, 0.44073757,\
+-	-4.07174558, -0.00562577, 0.00296937, 5.06611981, 0.98011522, 0.99140486, 0.44074934,\
+-	-4.07636383, -0.00561471, 0.00296221, 5.07074912, 0.98015498, 0.99142308, 0.44076227,\
+-	-4.08097906, -0.00560374, 0.00295511, 5.07537532, 0.98019453, 0.99144116, 0.44077633,\
+-	-4.08559122, -0.00559284, 0.00294807, 5.07999838, 0.98023386, 0.99145909, 0.44079153,\
+-	-4.09020028, -0.00558202, 0.00294110, 5.08461826, 0.98027298, 0.99147688, 0.44080784,\
+-	-4.09480620, -0.00557128, 0.00293419, 5.08923492, 0.98031189, 0.99149453, 0.44082525,\
+-	-4.09940894, -0.00556061, 0.00292734, 5.09384833, 0.98035059, 0.99151204, 0.44084375,\
+-	-4.10400846, -0.00555002, 0.00292056, 5.09845844, 0.98038908, 0.99152942, 0.44086333,\
+-	-4.10860473, -0.00553950, 0.00291383, 5.10306522, 0.98042736, 0.99154666, 0.44088396,\
+-	-4.11319770, -0.00552906, 0.00290717, 5.10766864, 0.98046544, 0.99156377, 0.44090565,\
+-	-4.11778734, -0.00551869, 0.00290056, 5.11226865, 0.98050332, 0.99158075, 0.44092838,\
+-	-4.12237362, -0.00550839, 0.00289401, 5.11686523, 0.98054100, 0.99159760, 0.44095213,\
+-	-4.12695649, -0.00549816, 0.00288752, 5.12145833, 0.98057848, 0.99161431, 0.44097689,\
+-	-4.13153592, -0.00548801, 0.00288109, 5.12604792, 0.98061577, 0.99163090, 0.44100265,\
+-	-4.13611188, -0.00547792, 0.00287471, 5.13063396, 0.98065286, 0.99164737, 0.44102940,\
+-	-4.14068433, -0.00546790, 0.00286839, 5.13521643, 0.98068975, 0.99166371, 0.44105712,\
+-	-4.14525323, -0.00545795, 0.00286213, 5.13979528, 0.98072646, 0.99167992, 0.44108581,\
+-	-4.14981854, -0.00544806, 0.00285592, 5.14437048, 0.98076298, 0.99169602, 0.44111544,\
+-	-4.15438025, -0.00543824, 0.00284976, 5.14894200, 0.98079931, 0.99171199, 0.44114602,\
+-	-4.15893830, -0.00542849, 0.00284366, 5.15350981, 0.98083545, 0.99172785, 0.44117753,\
+-	-4.16349267, -0.00541880, 0.00283761, 5.15807386, 0.98087141, 0.99174358, 0.44120995,\
+-	-4.16804332, -0.00540918, 0.00283162, 5.16263414, 0.98090719, 0.99175920, 0.44124328,\
+-	-4.17259021, -0.00539962, 0.00282567, 5.16719060, 0.98094278, 0.99177471, 0.44127750,\
+-	-4.17713333, -0.00539012, 0.00281978, 5.17174321, 0.98097820, 0.99179010, 0.44131260,\
+-	-4.18167262, -0.00538069, 0.00281394, 5.17629194, 0.98101344, 0.99180537, 0.44134857,\
+-	-4.18620807, -0.00537131, 0.00280815, 5.18083676, 0.98104851, 0.99182054, 0.44138541,\
+-	-4.19073963, -0.00536200, 0.00280241, 5.18537763, 0.98108340, 0.99183560, 0.44142309,\
+-	-4.19526728, -0.00535274, 0.00279671, 5.18991453, 0.98111811, 0.99185054, 0.44146162,\
+-	-4.19979098, -0.00534355, 0.00279107, 5.19444743, 0.98115266, 0.99186538, 0.44150097,\
+-	-4.20431070, -0.00533441, 0.00278548, 5.19897629, 0.98118704, 0.99188011, 0.44154114,\
+-	-4.20882641, -0.00532534, 0.00277993, 5.20350108, 0.98122125, 0.99189474, 0.44158211,\
+-	-4.21333809, -0.00531632, 0.00277443, 5.20802177, 0.98125529, 0.99190926, 0.44162389,\
+-	-4.21784569, -0.00530735, 0.00276897, 5.21253834, 0.98128916, 0.99192367, 0.44166645,\
+-	-4.22234919, -0.00529845, 0.00276357, 5.21705075, 0.98132288, 0.99193799, 0.44170979,\
+-	-4.22684856, -0.00528959, 0.00275820, 5.22155897, 0.98135643, 0.99195220, 0.44175389,\
+-	-4.23134377, -0.00528080, 0.00275289, 5.22606297, 0.98138982, 0.99196631, 0.44179875,\
+-	-4.23583479, -0.00527206, 0.00274762, 5.23056273, 0.98142305, 0.99198033, 0.44184436,\
+-	-4.24032159, -0.00526337, 0.00274239, 5.23505822, 0.98145612, 0.99199424, 0.44189070,\
+-	-4.24480413, -0.00525473, 0.00273720, 5.23954940, 0.98148904, 0.99200806, 0.44193777,\
+-	-4.24928241, -0.00524615, 0.00273206, 5.24403626, 0.98152180, 0.99202179, 0.44198557,\
+-	-4.25375637, -0.00523762, 0.00272697, 5.24851875, 0.98155440, 0.99203541, 0.44203406,\
+-	-4.25822600, -0.00522914, 0.00272191, 5.25299686, 0.98158685, 0.99204895, 0.44208326,\
+-	-4.26269127, -0.00522071, 0.00271690, 5.25747055, 0.98161916, 0.99206239, 0.44213315,\
+-	-4.26715214, -0.00521233, 0.00271193, 5.26193981, 0.98165131, 0.99207574, 0.44218372,\
+-	-4.27160860, -0.00520401, 0.00270700, 5.26640459, 0.98168331, 0.99208900, 0.44223496,\
+-	-4.27606061, -0.00519573, 0.00270211, 5.27086489, 0.98171516, 0.99210217, 0.44228686,\
+-	-4.28050816, -0.00518750, 0.00269726, 5.27532066, 0.98174687, 0.99211524, 0.44233942,\
+-	-4.28495120, -0.00517932, 0.00269245, 5.27977188, 0.98177844, 0.99212824, 0.44239262,\
+-	-4.28938971, -0.00517119, 0.00268767, 5.28421853, 0.98180986, 0.99214114, 0.44244646,\
+-	-4.29382368, -0.00516310, 0.00268294, 5.28866058, 0.98184113, 0.99215396, 0.44250093,\
+-	-4.29825306, -0.00515506, 0.00267825, 5.29309800, 0.98187227, 0.99216669, 0.44255601,\
+-	-4.30267785, -0.00514707, 0.00267359, 5.29753078, 0.98190326, 0.99217934, 0.44261171,\
+-	-4.30709800, -0.00513912, 0.00266898, 5.30195888, 0.98193412, 0.99219190, 0.44266801,\
+-	-4.31151350, -0.00513122, 0.00266440, 5.30638227, 0.98196483, 0.99220438, 0.44272490,\
+-	-4.31592431, -0.00512337, 0.00265985, 5.31080095, 0.98199542, 0.99221678, 0.44278238,\
+-	-4.32033043, -0.00511555, 0.00265535, 5.31521487, 0.98202586, 0.99222910, 0.44284044,\
+-	-4.32473181, -0.00510779, 0.00265088, 5.31962403, 0.98205617, 0.99224134, 0.44289907,\
+-	-4.32912844, -0.00510006, 0.00264644, 5.32402838, 0.98208635, 0.99225350, 0.44295825,\
+-	-4.33352030, -0.00509238, 0.00264204, 5.32842792, 0.98211639, 0.99226558, 0.44301800,\
+-	-4.33790735, -0.00508474, 0.00263768, 5.33282261, 0.98214630, 0.99227758, 0.44307829,\
+-	-4.34228957, -0.00507715, 0.00263335, 5.33721243, 0.98217609, 0.99228950, 0.44313911,\
+-	-4.34666695, -0.00506959, 0.00262906, 5.34159736, 0.98220574, 0.99230135, 0.44320047,\
+-	-4.35103946, -0.00506208, 0.00262479, 5.34597738, 0.98223526, 0.99231313, 0.44326235,\
+-	-4.35540706, -0.00505461, 0.00262057, 5.35035246, 0.98226466, 0.99232483, 0.44332475,\
+-	-4.35976976, -0.00504718, 0.00261637, 5.35472258, 0.98229393, 0.99233645, 0.44338766,\
+-	-4.36412751, -0.00503978, 0.00261221, 5.35908772, 0.98232308, 0.99234800, 0.44345107,\
+-	-4.36848029, -0.00503243, 0.00260808, 5.36344786, 0.98235210, 0.99235949, 0.44351497,\
+-	-4.37282810, -0.00502512, 0.00260399, 5.36780298, 0.98238100, 0.99237089, 0.44357936,\
+-	-4.37717089, -0.00501785, 0.00259992, 5.37215304, 0.98240977, 0.99238223, 0.44364422,\
+-	-4.38150866, -0.00501061, 0.00259589, 5.37649804, 0.98243843, 0.99239350, 0.44370956,\
+-	-4.38584137, -0.00500341, 0.00259189, 5.38083796, 0.98246696, 0.99240470, 0.44377537,\
+-	-4.39016901, -0.00499626, 0.00258792, 5.38517276, 0.98249538, 0.99241583, 0.44384163,\
+-	-4.39449156, -0.00498913, 0.00258397, 5.38950243, 0.98252368, 0.99242689, 0.44390835,\
+-	-4.39880900, -0.00498205, 0.00258006, 5.39382695, 0.98255186, 0.99243789, 0.44397551,\
+-	-4.40312130, -0.00497500, 0.00257618, 5.39814630, 0.98257992, 0.99244881, 0.44404311,\
+-	-4.40742845, -0.00496799, 0.00257233, 5.40246046, 0.98260787, 0.99245968, 0.44411114,\
+-	-4.41173042, -0.00496101, 0.00256851, 5.40676940, 0.98263570, 0.99247047, 0.44417960,\
+-	-4.41602719, -0.00495407, 0.00256472, 5.41107312, 0.98266342, 0.99248121, 0.44424847,\
+-	-4.42031875, -0.00494717, 0.00256096, 5.41537158, 0.98269102, 0.99249187, 0.44431776,\
+-	-4.42460508, -0.00494030, 0.00255722, 5.41966478, 0.98271852, 0.99250248, 0.44438745,\
+-	-4.42888615, -0.00493346, 0.00255351, 5.42395268, 0.98274590, 0.99251302, 0.44445755,\
+-	-4.43316194, -0.00492666, 0.00254984, 5.42823528, 0.98277317, 0.99252350, 0.44452803,\
+-	-4.43743244, -0.00491989, 0.00254618, 5.43251255, 0.98280033, 0.99253392, 0.44459891,\
+-	-4.44169763, -0.00491316, 0.00254256, 5.43678447, 0.98282738, 0.99254428, 0.44467016,\
+-	-4.44595749, -0.00490646, 0.00253896, 5.44105103, 0.98285433, 0.99255458, 0.44474179,\
+-	-4.45021200, -0.00489979, 0.00253539, 5.44531221, 0.98288117, 0.99256482, 0.44481379,\
+-	-4.45446115, -0.00489316, 0.00253185, 5.44956799, 0.98290790, 0.99257500, 0.44488616,\
+-	-4.45870490, -0.00488655, 0.00252833, 5.45381835, 0.98293452, 0.99258512, 0.44495888,\
+-	-4.46294326, -0.00487998, 0.00252484, 5.45806327, 0.98296105, 0.99259518, 0.44503195,\
+-	-4.46717619, -0.00487344, 0.00252137, 5.46230275, 0.98298746, 0.99260519, 0.44510537,\
+-	-4.47140368, -0.00486693, 0.00251793, 5.46653675, 0.98301378, 0.99261514, 0.44517912,\
+-	-4.47562571, -0.00486046, 0.00251451, 5.47076526, 0.98303999, 0.99262503, 0.44525322,\
+-	-4.47984227, -0.00485401, 0.00251112, 5.47498827, 0.98306610, 0.99263487, 0.44532764,\
+-	-4.48405334, -0.00484759, 0.00250775, 5.47920575, 0.98309211, 0.99264465, 0.44540238,\
+-	-4.48825891, -0.00484121, 0.00250441, 5.48341770, 0.98311802, 0.99265438, 0.44547744,\
+-	-4.49245894, -0.00483485, 0.00250109, 5.48762409, 0.98314383, 0.99266406, 0.44555282,\
+-	-4.49665344, -0.00482852, 0.00249780, 5.49182492, 0.98316954, 0.99267368, 0.44562850,\
+-	-4.50084238, -0.00482223, 0.00249453, 5.49602015, 0.98319515, 0.99268325, 0.44570449,\
+-	-4.50502575, -0.00481596, 0.00249128, 5.50020979, 0.98322067, 0.99269277, 0.44578077,\
+-	-4.50920352, -0.00480972, 0.00248805, 5.50439380, 0.98324609, 0.99270223, 0.44585734,\
+-	-4.51337569, -0.00480350, 0.00248485, 5.50857219, 0.98327141, 0.99271164, 0.44593420,\
+-	-4.51754224, -0.00479732, 0.00248167, 5.51274492, 0.98329664, 0.99272101, 0.44601134,\
+-	-4.52170315, -0.00479117, 0.00247851, 5.51691199, 0.98332177, 0.99273032, 0.44608876,\
+-	-4.52585842, -0.00478504, 0.00247538, 5.52107338, 0.98334681, 0.99273958, 0.44616645,\
+-	-4.53000801, -0.00477894, 0.00247227, 5.52522907, 0.98337176, 0.99274880, 0.44624440,\
+-	-4.53415192, -0.00477286, 0.00246917, 5.52937906, 0.98339661, 0.99275796, 0.44632262,\
+-	-4.53829014, -0.00476682, 0.00246610, 5.53352332, 0.98342137, 0.99276708, 0.44640109,\
+-	-4.54242264, -0.00476080, 0.00246306, 5.53766184, 0.98344605, 0.99277615, 0.44647982,\
+-	-4.54654942, -0.00475480, 0.00246003, 5.54179461, 0.98347063, 0.99278517, 0.44655879,\
+-	-4.55067046, -0.00474884, 0.00245702, 5.54592162, 0.98349512, 0.99279414, 0.44663801,\
+-	-4.55478574, -0.00474290, 0.00245404, 5.55004285, 0.98351952, 0.99280307, 0.44671746,\
+-	-4.55889526, -0.00473698, 0.00245107, 5.55415828, 0.98354383, 0.99281195, 0.44679715,\
+-	-4.56299899, -0.00473109, 0.00244812, 5.55826790, 0.98356806, 0.99282079, 0.44687706,\
+-	-4.56709693, -0.00472522, 0.00244520, 5.56237170, 0.98359219, 0.99282958, 0.44695720,\
+-	-4.57118906, -0.00471938, 0.00244229, 5.56646967, 0.98361625, 0.99283832, 0.44703756,\
+-	-4.57527536, -0.00471357, 0.00243940, 5.57056179, 0.98364021, 0.99284703, 0.44711814,\
+-	-4.57935583, -0.00470778, 0.00243654, 5.57464806, 0.98366409, 0.99285569, 0.44719893,\
+-	-4.58343045, -0.00470201, 0.00243369, 5.57872844, 0.98368788, 0.99286430, 0.44727992,\
+-	-4.58749921, -0.00469627, 0.00243086, 5.58280295, 0.98371159, 0.99287287, 0.44736112,\
+-	-4.59156210, -0.00469055, 0.00242805, 5.58687155, 0.98373522, 0.99288140, 0.44744252,\
+-	-4.59561910, -0.00468485, 0.00242526, 5.59093424, 0.98375876, 0.99288989, 0.44752411,\
+-	-4.59967020, -0.00467918, 0.00242248, 5.59499102, 0.98378222, 0.99289833, 0.44760589,\
+-	-4.60371538, -0.00467353, 0.00241973, 5.59904185, 0.98380560, 0.99290674, 0.44768785,\
+-	-4.60775465, -0.00466791, 0.00241699, 5.60308674, 0.98382890, 0.99291510, 0.44777000,\
+-	-4.61178797, -0.00466230, 0.00241427, 5.60712567, 0.98385211, 0.99292343, 0.44785233,\
+-	-4.61581536, -0.00465672, 0.00241157, 5.61115863, 0.98387525, 0.99293171, 0.44793483,\
+-	-4.61983678, -0.00465116, 0.00240889, 5.61518561, 0.98389830, 0.99293995, 0.44801750,\
+-	-4.62385223, -0.00464563, 0.00240622, 5.61920660, 0.98392128, 0.99294815, 0.44810034,\
+-	-4.62786170, -0.00464011, 0.00240357, 5.62322158, 0.98394418, 0.99295632, 0.44818334,\
+-	-4.63186517, -0.00463462, 0.00240093, 5.62723055, 0.98396700, 0.99296444, 0.44826650,\
+-	-4.63586264, -0.00462915, 0.00239832, 5.63123349, 0.98398974, 0.99297253, 0.44834982,\
+-	-4.63985410, -0.00462370, 0.00239572, 5.63523040, 0.98401240, 0.99298058, 0.44843328,\
+-	-4.64383953, -0.00461827, 0.00239313, 5.63922126, 0.98403499, 0.99298859, 0.44851690,\
+-	-4.64781892, -0.00461286, 0.00239057, 5.64320606, 0.98405750, 0.99299657, 0.44860066,\
+-	-4.65179227, -0.00460748, 0.00238802, 5.64718479, 0.98407993, 0.99300451, 0.44868455,\
+-	-4.65575956, -0.00460211, 0.00238548, 5.65115744, 0.98410229, 0.99301241, 0.44876859,\
+-	-4.65972078, -0.00459677, 0.00238296, 5.65512401, 0.98412458, 0.99302027, 0.44885276,\
+-	-4.66367592, -0.00459144, 0.00238046, 5.65908448, 0.98414679, 0.99302810, 0.44893706,\
+-	-4.66762497, -0.00458614, 0.00237797, 5.66303884, 0.98416893, 0.99303590, 0.44902148,\
+-	-4.67156793, -0.00458085, 0.00237549, 5.66698708, 0.98419099, 0.99304366, 0.44910603,\
+-	-4.67550478, -0.00457558, 0.00237303, 5.67092920, 0.98421298, 0.99305138, 0.44919070,\
+-	-4.67943552, -0.00457034, 0.00237059, 5.67486518, 0.98423490, 0.99305907, 0.44927549,\
+-	-4.68336012, -0.00456511, 0.00236816, 5.67879501, 0.98425675, 0.99306673, 0.44936038,\
+-	-4.68727860, -0.00455990, 0.00236575, 5.68271869, 0.98427852, 0.99307435, 0.44944539,\
+-	-4.69119092, -0.00455472, 0.00236335, 5.68663621, 0.98430023, 0.99308194, 0.44953051,\
+-	-4.69509710, -0.00454955, 0.00236096, 5.69054755, 0.98432186, 0.99308949, 0.44961572,\
+-	-4.69899711, -0.00454440, 0.00235859, 5.69445271, 0.98434343, 0.99309701, 0.44970104,\
+-	-4.70289095, -0.00453926, 0.00235623, 5.69835168, 0.98436492, 0.99310450, 0.44978646,\
+-	-4.70677861, -0.00453415, 0.00235389, 5.70224446, 0.98438635, 0.99311196, 0.44987197,\
+-	-4.71066008, -0.00452905, 0.00235156, 5.70613103, 0.98440771, 0.99311939, 0.44995757,\
+-	-4.71453535, -0.00452398, 0.00234924, 5.71001138, 0.98442899, 0.99312678, 0.45004326,\
+-	-4.71840442, -0.00451892, 0.00234694, 5.71388551, 0.98445021, 0.99313414, 0.45012903,\
+-	-4.72226728, -0.00451387, 0.00234465, 5.71775341, 0.98447137, 0.99314147, 0.45021488,\
+-	-4.72612392, -0.00450885, 0.00234237, 5.72161507, 0.98449245, 0.99314877, 0.45030082,\
+-	-4.72997433, -0.00450384, 0.00234011, 5.72547048, 0.98451347, 0.99315604, 0.45038683,\
+-	-4.73381850, -0.00449885, 0.00233786, 5.72931964, 0.98453443, 0.99316328, 0.45047291,\
+-	-4.73765643, -0.00449388, 0.00233562, 5.73316254, 0.98455532, 0.99317049, 0.45055907,\
+-	-4.74148810, -0.00448893, 0.00233340, 5.73699917, 0.98457614, 0.99317767, 0.45064529,\
+-	-4.74531352, -0.00448399, 0.00233119, 5.74082953, 0.98459690, 0.99318483, 0.45073158,\
+-	-4.74913267, -0.00447907, 0.00232899, 5.74465360, 0.98461759, 0.99319195, 0.45081792,\
+-	-4.75294555, -0.00447416, 0.00232680, 5.74847138, 0.98463822, 0.99319904, 0.45090433,\
+-	-4.75675214, -0.00446927, 0.00232462, 5.75228287, 0.98465878, 0.99320610, 0.45099080,\
+-	-4.76055246, -0.00446440, 0.00232246, 5.75608805, 0.98467929, 0.99321314, 0.45107732,\
+-	-4.76434647, -0.00445955, 0.00232031, 5.75988693, 0.98469973, 0.99322015, 0.45116389,\
+-	-4.76813419, -0.00445471, 0.00231816, 5.76367948, 0.98472010, 0.99322713, 0.45125051,\
+-	-4.77191560, -0.00444988, 0.00231604, 5.76746572, 0.98474042, 0.99323408, 0.45133717,\
+-	-4.77569070, -0.00444507, 0.00231392, 5.77124562, 0.98476067, 0.99324101, 0.45142388,\
+-	-4.77945947, -0.00444028, 0.00231181, 5.77501919, 0.98478086, 0.99324791, 0.45151063,\
+-	-4.78322192, -0.00443550, 0.00230972, 5.77878642, 0.98480099, 0.99325478, 0.45159742,\
+-	-4.78697804, -0.00443074, 0.00230763, 5.78254730, 0.98482106, 0.99326162, 0.45168425,\
+-	-4.79072783, -0.00442600, 0.00230556, 5.78630183, 0.98484107, 0.99326844, 0.45177111,\
+-	-4.79447127, -0.00442127, 0.00230350, 5.79005000, 0.98486102, 0.99327523, 0.45185800,\
+-	-4.79820836, -0.00441655, 0.00230145, 5.79379181, 0.98488091, 0.99328200, 0.45194492,\
+-	-4.80193909, -0.00441185, 0.00229941, 5.79752724, 0.98490074, 0.99328874, 0.45203187,\
+-	-4.80566347, -0.00440716, 0.00229738, 5.80125630, 0.98492051, 0.99329546, 0.45211884,\
+-	-4.80938148, -0.00440249, 0.00229536, 5.80497899, 0.98494022, 0.99330215, 0.45220583,\
+-	-4.81309312, -0.00439783, 0.00229335, 5.80869528, 0.98495988, 0.99330881, 0.45229285,\
+-	-4.81679838, -0.00439319, 0.00229135, 5.81240519, 0.98497947, 0.99331546, 0.45237988,\
+-	-4.82049726, -0.00438856, 0.00228937, 5.81610870, 0.98499901, 0.99332207, 0.45246692,\
+-	-4.82418976, -0.00438395, 0.00228739, 5.81980581, 0.98501850, 0.99332866, 0.45255398,\
+-	-4.82787587, -0.00437935, 0.00228542, 5.82349652, 0.98503792, 0.99333523, 0.45264105,\
+-	-4.83155558, -0.00437476, 0.00228346, 5.82718082, 0.98505729, 0.99334178, 0.45272813,\
+-	-4.83522889, -0.00437019, 0.00228151, 5.83085870, 0.98507660, 0.99334830, 0.45281521,\
+-	-4.83889580, -0.00436563, 0.00227957, 5.83453017, 0.98509586, 0.99335480, 0.45290231,\
+-	-4.84255630, -0.00436109, 0.00227764, 5.83819521, 0.98511506, 0.99336127, 0.45298940,\
+-	-4.84621038, -0.00435656, 0.00227572, 5.84185383, 0.98513421, 0.99336772, 0.45307649,\
+-	-4.84985805, -0.00435204, 0.00227381, 5.84550601, 0.98515330, 0.99337415, 0.45316358,\
+-	-4.85349930, -0.00434753, 0.00227191, 5.84915177, 0.98517233, 0.99338056, 0.45325067,\
+-	-4.85713412, -0.00434304, 0.00227002, 5.85279108, 0.98519132, 0.99338694, 0.45333775,\
+-	-4.86076252, -0.00433856, 0.00226813, 5.85642396, 0.98521024, 0.99339330, 0.45342482,\
+-	-4.86438448, -0.00433410, 0.00226626, 5.86005038, 0.98522912, 0.99339964, 0.45351189,\
+-	-4.86800001, -0.00432965, 0.00226439, 5.86367036, 0.98524794, 0.99340596, 0.45359894,\
+-	-4.87160909, -0.00432521, 0.00226253, 5.86728389, 0.98526671, 0.99341226, 0.45368598,\
+-	-4.87521174, -0.00432078, 0.00226069, 5.87089096, 0.98528542, 0.99341853, 0.45377301,\
+-	-4.87880793, -0.00431637, 0.00225885, 5.87449157, 0.98530409, 0.99342479, 0.45386001,\
+-	-4.88239768, -0.00431196, 0.00225701, 5.87808572, 0.98532270, 0.99343102, 0.45394700,\
+-	-4.88598098, -0.00430758, 0.00225519, 5.88167340, 0.98534126, 0.99343723, 0.45403397,\
+-	-4.88955781, -0.00430320, 0.00225338, 5.88525462, 0.98535976, 0.99344342, 0.45412092,\
+-	-4.89312819, -0.00429883, 0.00225157, 5.88882936, 0.98537822, 0.99344960, 0.45420784,\
+-	-4.89669211, -0.00429448, 0.00224977, 5.89239763, 0.98539662, 0.99345575, 0.45429473,\
+-	-4.90024957, -0.00429014, 0.00224798, 5.89595942, 0.98541498, 0.99346188, 0.45438160,\
+-	-4.90380055, -0.00428581, 0.00224620, 5.89951474, 0.98543328, 0.99346799, 0.45446844,\
+-	-4.90734507, -0.00428150, 0.00224442, 5.90306357, 0.98545154, 0.99347408, 0.45455524,\
+-	-4.91088312, -0.00427719, 0.00224266, 5.90660592, 0.98546974, 0.99348015, 0.45464201,\
+-	-4.91441469, -0.00427290, 0.00224090, 5.91014179, 0.98548790, 0.99348620, 0.45472875,\
+-	-4.91793978, -0.00426862, 0.00223915, 5.91367116, 0.98550600, 0.99349224, 0.45481546,\
+-	-4.92145840, -0.00426435, 0.00223740, 5.91719405, 0.98552406, 0.99349825, 0.45490212,\
+-	-4.92497053, -0.00426009, 0.00223566, 5.92071044, 0.98554206, 0.99350425, 0.45498875,\
+-	-4.92847618, -0.00425584, 0.00223394, 5.92422034, 0.98556002, 0.99351022, 0.45507533,\
+-	-4.93197535, -0.00425160, 0.00223221, 5.92772375, 0.98557793, 0.99351618, 0.45516187,\
+-	-4.93546803, -0.00424738, 0.00223050, 5.93122065, 0.98559579, 0.99352212, 0.45524837,\
+-	-4.93895423, -0.00424317, 0.00222879, 5.93471106, 0.98561361, 0.99352804, 0.45533482,\
+-	-4.94243393, -0.00423896, 0.00222709, 5.93819497, 0.98563138, 0.99353395, 0.45542123,\
+-	-4.94590714, -0.00423477, 0.00222540, 5.94167237, 0.98564910, 0.99353983, 0.45550758,\
+-	-4.94937386, -0.00423059, 0.00222371, 5.94514327, 0.98566677, 0.99354570, 0.45559389,\
+-	-4.95283409, -0.00422642, 0.00222203, 5.94860767, 0.98568439, 0.99355155, 0.45568014,\
+-	-4.95628782, -0.00422226, 0.00222036, 5.95206556, 0.98570197, 0.99355738, 0.45576634,\
+-	-4.95973505, -0.00421811, 0.00221869, 5.95551694, 0.98571951, 0.99356320, 0.45585249,\
+-	-4.96317579, -0.00421397, 0.00221703, 5.95896181, 0.98573699, 0.99356900, 0.45593858,\
+-	-4.96661002, -0.00420984, 0.00221538, 5.96240018, 0.98575444, 0.99357478, 0.45602462,\
+-	-4.97003776, -0.00420573, 0.00221373, 5.96583204, 0.98577183, 0.99358054, 0.45611059,\
+-	-4.97345900, -0.00420162, 0.00221209, 5.96925738, 0.98578918, 0.99358629, 0.45619651,\
+-	-4.97687374, -0.00419752, 0.00221046, 5.97267622, 0.98580649, 0.99359202, 0.45628236,\
+-	-4.98028197, -0.00419344, 0.00220883, 5.97608854, 0.98582375, 0.99359774, 0.45636816,\
+-	-4.98368371, -0.00418936, 0.00220721, 5.97949435, 0.98584096, 0.99360343, 0.45645388,\
+-	-4.98707894, -0.00418529, 0.00220559, 5.98289365, 0.98585814, 0.99360912, 0.45653955,\
+-	-4.99046767, -0.00418123, 0.00220398, 5.98628643, 0.98587526, 0.99361478, 0.45662514,\
+-	-4.99384989, -0.00417719, 0.00220238, 5.98967270, 0.98589235, 0.99362043, 0.45671067,\
+-	-4.99722561, -0.00417315, 0.00220078, 5.99305246, 0.98590939, 0.99362607, 0.45679613,\
+-	-5.00059483, -0.00416912, 0.00219919, 5.99642571, 0.98592638, 0.99363169, 0.45688152,\
+-	-5.00395754, -0.00416511, 0.00219761, 5.99979244, 0.98594334, 0.99363729, 0.45696684,\
+-	-5.00731375, -0.00416110, 0.00219603, 6.00315266, 0.98596025, 0.99364288, 0.45705209,\
+-	-5.01066346, -0.00415710, 0.00219445, 6.00650636, 0.98597712, 0.99364845, 0.45713726,\
+-	-5.01400667, -0.00415311, 0.00219288, 6.00985356, 0.98599394, 0.99365401, 0.45722236,\
+-	-5.01734337, -0.00414913, 0.00219132, 6.01319424, 0.98601072, 0.99365955, 0.45730738,\
+-	-5.02067356, -0.00414516, 0.00218976, 6.01652841, 0.98602746, 0.99366508, 0.45739233,\
+-	-5.02399726, -0.00414120, 0.00218821, 6.01985606, 0.98604416, 0.99367059, 0.45747719,\
+-	-5.02731445, -0.00413724, 0.00218666, 6.02317721, 0.98606082, 0.99367609, 0.45756198,\
+-	-5.03062515, -0.00413330, 0.00218512, 6.02649184, 0.98607744, 0.99368157, 0.45764669,\
+-	-5.03392934, -0.00412937, 0.00218359, 6.02979997, 0.98609401, 0.99368704, 0.45773131,\
+-	-5.03722703, -0.00412544, 0.00218206, 6.03310159, 0.98611054, 0.99369250, 0.45781585,\
+-	-5.04051822, -0.00412153, 0.00218053, 6.03639670, 0.98612704, 0.99369794, 0.45790031,\
+-	-5.04380292, -0.00411762, 0.00217901, 6.03968530, 0.98614349, 0.99370337, 0.45798469,\
+-	-5.04708112, -0.00411372, 0.00217750, 6.04296739, 0.98615990, 0.99370878, 0.45806897,\
+-	-5.05035282, -0.00410983, 0.00217599, 6.04624299, 0.98617627, 0.99371418, 0.45815318,\
+-	-5.05361802, -0.00410595, 0.00217448, 6.04951207, 0.98619260, 0.99371957, 0.45823729,\
+-	-5.05687674, -0.00410208, 0.00217298, 6.05277466, 0.98620889, 0.99372494, 0.45832131,\
+-	-5.06012896, -0.00409821, 0.00217148, 6.05603074, 0.98622514, 0.99373030, 0.45840525,\
+-	-5.06337469, -0.00409436, 0.00216999, 6.05928033, 0.98624135, 0.99373565, 0.45848909,\
+-	-5.06661393, -0.00409051, 0.00216851, 6.06252341, 0.98625753, 0.99374098, 0.45857285,\
+-	-5.06984668, -0.00408668, 0.00216703, 6.06576000, 0.98627366, 0.99374630, 0.45865651,\
+-	-5.07307294, -0.00408285, 0.00216555, 6.06899010, 0.98628975, 0.99375161, 0.45874007,\
+-	-5.07629272, -0.00407902, 0.00216408, 6.07221370, 0.98630581, 0.99375690, 0.45882355,\
+-	-5.07950602, -0.00407521, 0.00216261, 6.07543081, 0.98632182, 0.99376218, 0.45890693,\
+-	-5.08271283, -0.00407141, 0.00216115, 6.07864143, 0.98633780, 0.99376745, 0.45899021,\
+-	-5.08591317, -0.00406761, 0.00215969, 6.08184556, 0.98635374, 0.99377270, 0.45907339,\
+-	-5.08910703, -0.00406382, 0.00215823, 6.08504321, 0.98636965, 0.99377795, 0.45915648,\
+-	-5.09229441, -0.00406004, 0.00215678, 6.08823437, 0.98638551, 0.99378318, 0.45923947,\
+-	-5.09547532, -0.00405627, 0.00215534, 6.09141905, 0.98640134, 0.99378840, 0.45932235,\
+-	-5.09864975, -0.00405250, 0.00215390, 6.09459725, 0.98641713, 0.99379360, 0.45940514,\
+-	-5.10181772, -0.00404874, 0.00215246, 6.09776897, 0.98643288, 0.99379880, 0.45948783,\
+-	-5.10497922, -0.00404500, 0.00215102, 6.10093422, 0.98644859, 0.99380398, 0.45957041,\
+-	-5.10813425, -0.00404125, 0.00214960, 6.10409300, 0.98646427, 0.99380915, 0.45965289,\
+-	-5.11128282, -0.00403752, 0.00214817, 6.10724530, 0.98647991, 0.99381431, 0.45973527,\
+-	-5.11442494, -0.00403379, 0.00214675, 6.11039114, 0.98649552, 0.99381946, 0.45981755,\
+-	-5.11756059, -0.00403008, 0.00214533, 6.11353051, 0.98651108, 0.99382459, 0.45989972,\
+-	-5.12068979, -0.00402637, 0.00214392, 6.11666343, 0.98652662, 0.99382971, 0.45998178,\
+-	-5.12381254, -0.00402266, 0.00214251, 6.11978988, 0.98654211, 0.99383483, 0.46006373,\
+-	-5.12692884, -0.00401897, 0.00214110, 6.12290987, 0.98655757, 0.99383993, 0.46014558,\
+-	-5.13003869, -0.00401528, 0.00213970, 6.12602341, 0.98657300, 0.99384502, 0.46022732,\
+-	-5.13314210, -0.00401160, 0.00213831, 6.12913050, 0.98658838, 0.99385010, 0.46030896,\
+-	-5.13623906, -0.00400792, 0.00213691, 6.13223114, 0.98660374, 0.99385516, 0.46039048,\
+-	-5.13932959, -0.00400426, 0.00213552, 6.13532533, 0.98661906, 0.99386022, 0.46047189,\
+-	-5.14241368, -0.00400060, 0.00213413, 6.13841308, 0.98663434, 0.99386527, 0.46055319,\
+-	-5.14549135, -0.00399695, 0.00213275, 6.14149440, 0.98664959, 0.99387030, 0.46063438,\
+-	-5.14856258, -0.00399330, 0.00213137, 6.14456928, 0.98666480, 0.99387532, 0.46071546,\
+-	-5.15162739, -0.00398967, 0.00213000, 6.14763772, 0.98667998, 0.99388034, 0.46079643,\
+-	-5.15468577, -0.00398604, 0.00212862, 6.15069974, 0.98669512, 0.99388534, 0.46087728,\
+-	-5.15773774, -0.00398241, 0.00212725, 6.15375533, 0.98671023, 0.99389033, 0.46095802,\
+-	-5.16078329, -0.00397880, 0.00212589, 6.15680449, 0.98672531, 0.99389532, 0.46103864,\
+-	-5.16382243, -0.00397519, 0.00212453, 6.15984724, 0.98674035, 0.99390029, 0.46111915,\
+-	-5.16685516, -0.00397159, 0.00212317, 6.16288358, 0.98675535, 0.99390525, 0.46119954,\
+-	-5.16988149, -0.00396799, 0.00212181, 6.16591350, 0.98677033, 0.99391020, 0.46127982,\
+-	-5.17290141, -0.00396440, 0.00212046, 6.16893701, 0.98678527, 0.99391514, 0.46135997,\
+-	-5.17591494, -0.00396082, 0.00211911, 6.17195412, 0.98680017, 0.99392007, 0.46144001,\
+-	-5.17892208, -0.00395724, 0.00211776, 6.17496483, 0.98681505, 0.99392499, 0.46151994,\
+-	-5.18192282, -0.00395368, 0.00211642, 6.17796914, 0.98682989, 0.99392990, 0.46159974,\
+-	-5.18491718, -0.00395011, 0.00211508, 6.18096706, 0.98684470, 0.99393481, 0.46167943,\
+-	-5.18790516, -0.00394656, 0.00211374, 6.18395860, 0.98685947, 0.99393970, 0.46175899,\
+-	-5.19088675, -0.00394301, 0.00211241, 6.18694374, 0.98687421, 0.99394458, 0.46183843,\
+-	-5.19386198, -0.00393947, 0.00211108, 6.18992251, 0.98688892, 0.99394945, 0.46191776,\
+-	-5.19683083, -0.00393593, 0.00210975, 6.19289490, 0.98690360, 0.99395432, 0.46199696,\
+-	-5.19979332, -0.00393241, 0.00210843, 6.19586092, 0.98691824, 0.99395917, 0.46207604,\
+-	-5.20274945, -0.00392888, 0.00210710, 6.19882057, 0.98693285, 0.99396401, 0.46215500,\
+-	-5.20569922, -0.00392537, 0.00210578, 6.20177385, 0.98694743, 0.99396885, 0.46223383,\
+-	-5.20864264, -0.00392186, 0.00210447, 6.20472078, 0.98696198, 0.99397367, 0.46231254,\
+-	-5.21157971, -0.00391835, 0.00210315, 6.20766135, 0.98697650, 0.99397849, 0.46239113,\
+-	-5.21451043, -0.00391486, 0.00210184, 6.21059558, 0.98699098, 0.99398330, 0.46246959,\
+-	-5.21743482, -0.00391137, 0.00210054, 6.21352345, 0.98700544, 0.99398810, 0.46254793,\
+-	-5.22035287, -0.00390788, 0.00209923, 6.21644499, 0.98701986, 0.99399289, 0.46262614,\
+-	-5.22326459, -0.00390440, 0.00209793, 6.21936019, 0.98703425, 0.99399767, 0.46270423,\
+-	-5.22616999, -0.00390093, 0.00209663, 6.22226905, 0.98704861, 0.99400244, 0.46278219,\
+-	-5.22906906, -0.00389747, 0.00209533, 6.22517159, 0.98706294, 0.99400720, 0.46286003,\
+-	-5.23196182, -0.00389401, 0.00209404, 6.22806781, 0.98707724, 0.99401196, 0.46293774,\
+-	-5.23484826, -0.00389055, 0.00209274, 6.23095771, 0.98709151, 0.99401670, 0.46301532,\
+-	-5.23772840, -0.00388711, 0.00209145, 6.23384129, 0.98710574, 0.99402144, 0.46309277,\
+-	-5.24060224, -0.00388366, 0.00209017, 6.23671857, 0.98711995, 0.99402617, 0.46317009,\
+-	-5.24346978, -0.00388023, 0.00208888, 6.23958955, 0.98713413, 0.99403089, 0.46324729,\
+-	-5.24633103, -0.00387680, 0.00208760, 6.24245423, 0.98714827, 0.99403560, 0.46332436,\
+-	-5.24918599, -0.00387338, 0.00208632, 6.24531261, 0.98716239, 0.99404030, 0.46340129,\
+-	-5.25203467, -0.00386996, 0.00208504, 6.24816471, 0.98717648, 0.99404500, 0.46347810,\
+-	-5.25487707, -0.00386655, 0.00208377, 6.25101053, 0.98719053, 0.99404969, 0.46355478,\
+-	-5.25771320, -0.00386314, 0.00208250, 6.25385007, 0.98720456, 0.99405436, 0.46363133,\
+-	-5.26054307, -0.00385974, 0.00208123, 6.25668333, 0.98721856, 0.99405904, 0.46370775,\
+-	-5.26336668, -0.00385634, 0.00207996, 6.25951033, 0.98723253, 0.99406370, 0.46378403,\
+-	-5.26618402, -0.00385295, 0.00207869, 6.26233107, 0.98724646, 0.99406835, 0.46386019,\
+-	-5.26899512, -0.00384957, 0.00207743, 6.26514555, 0.98726037, 0.99407300, 0.46393621,\
+-	-5.27179998, -0.00384619, 0.00207617, 6.26795379, 0.98727425, 0.99407764, 0.46401210,\
+-	-5.27459860, -0.00384282, 0.00207491, 6.27075577, 0.98728810, 0.99408227, 0.46408786,\
+-	-5.27739098, -0.00383945, 0.00207365, 6.27355152, 0.98730193, 0.99408689, 0.46416348,\
+-	-5.28017713, -0.00383609, 0.00207240, 6.27634104, 0.98731572, 0.99409151, 0.46423898,\
+-	-5.28295706, -0.00383274, 0.00207115, 6.27912432, 0.98732949, 0.99409612, 0.46431433,\
+-	-5.28573078, -0.00382939, 0.00206989, 6.28190139, 0.98734322, 0.99410072, 0.46438956,\
+-	-5.28849828, -0.00382604, 0.00206865, 6.28467224, 0.98735693, 0.99410531, 0.46446465,\
+-	-5.29125958, -0.00382271, 0.00206740, 6.28743687, 0.98737061, 0.99410989, 0.46453961,\
+-	-5.29401468, -0.00381937, 0.00206616, 6.29019530, 0.98738426, 0.99411447, 0.46461443,\
+-	-5.29676358, -0.00381604, 0.00206491, 6.29294754, 0.98739789, 0.99411904, 0.46468912,\
+-	-5.29950630, -0.00381272, 0.00206367, 6.29569358, 0.98741148, 0.99412361, 0.46476368,\
+-	-5.30224283, -0.00380940, 0.00206243, 6.29843343, 0.98742505, 0.99412816, 0.46483809,\
+-	-5.30497319, -0.00380609, 0.00206120, 6.30116710, 0.98743859, 0.99413271, 0.46491238,\
+-	-5.30769738, -0.00380279, 0.00205996, 6.30389459, 0.98745210, 0.99413725, 0.46498652,\
+-	-5.31041540, -0.00379948, 0.00205873, 6.30661592, 0.98746559, 0.99414179, 0.46506054,\
+-	-5.31312727, -0.00379619, 0.00205750, 6.30933108, 0.98747905, 0.99414631, 0.46513441,\
+-	-5.31583299, -0.00379290, 0.00205627, 6.31204009, 0.98749248, 0.99415083, 0.46520815,\
+-	-5.31853255, -0.00378961, 0.00205504, 6.31474294, 0.98750588, 0.99415535, 0.46528175,\
+-	-5.32122598, -0.00378633, 0.00205382, 6.31743965, 0.98751926, 0.99415985, 0.46535522,\
+-	-5.32391328, -0.00378306, 0.00205259, 6.32013023, 0.98753261, 0.99416435, 0.46542855,\
+-	-5.32659445, -0.00377979, 0.00205137, 6.32281466, 0.98754593, 0.99416884, 0.46550174,\
+-	-5.32926950, -0.00377652, 0.00205015, 6.32549298, 0.98755923, 0.99417333, 0.46557479,\
+-	-5.33193843, -0.00377326, 0.00204893, 6.32816517, 0.98757249, 0.99417781, 0.46564771,\
+-	-5.33460126, -0.00377000, 0.00204772, 6.33083125, 0.98758574, 0.99418228, 0.46572049,\
+-	-5.33725798, -0.00376675, 0.00204650, 6.33349123, 0.98759895, 0.99418674, 0.46579313,\
+-	-5.33990861, -0.00376351, 0.00204529, 6.33614511, 0.98761214, 0.99419120, 0.46586563,\
+-	-5.34255316, -0.00376027, 0.00204408, 6.33879289, 0.98762531, 0.99419565, 0.46593799,\
+-	-5.34519162, -0.00375703, 0.00204287, 6.34143458, 0.98763844, 0.99420010, 0.46601022,\
+-	-5.34782400, -0.00375380, 0.00204166, 6.34407020, 0.98765155, 0.99420454, 0.46608230,\
+-	-5.35045032, -0.00375058, 0.00204045, 6.34669974, 0.98766464, 0.99420897, 0.46615425,\
+-	-5.35307057, -0.00374736, 0.00203925, 6.34932321, 0.98767770, 0.99421340, 0.46622606,\
+-	-5.35568477, -0.00374414, 0.00203804, 6.35194063, 0.98769073, 0.99421781, 0.46629773,\
+-	-5.35829292, -0.00374093, 0.00203684, 6.35455199, 0.98770374, 0.99422223, 0.46636926,\
+-	-5.36089503, -0.00373773, 0.00203564, 6.35715730, 0.98771672, 0.99422663, 0.46644065,\
+-	-5.36349110, -0.00373453, 0.00203444, 6.35975657, 0.98772968, 0.99423103, 0.46651190,\
+-	-5.36608114, -0.00373133, 0.00203324, 6.36234981, 0.98774261, 0.99423543, 0.46658301,\
+-	-5.36866517, -0.00372814, 0.00203205, 6.36493703, 0.98775552, 0.99423982, 0.46665398,\
+-	-5.37124318, -0.00372495, 0.00203085, 6.36751823, 0.98776840, 0.99424420, 0.46672482,\
+-	-5.37381518, -0.00372177, 0.00202966, 6.37009341, 0.98778125, 0.99424857, 0.46679551,\
+-	-5.37638118, -0.00371859, 0.00202847, 6.37266259, 0.98779408, 0.99425294, 0.46686606,\
+-	-5.37894119, -0.00371542, 0.00202728, 6.37522577, 0.98780689, 0.99425730, 0.46693647,\
+-	-5.38149521, -0.00371225, 0.00202609, 6.37778296, 0.98781967, 0.99426166, 0.46700674,\
+-	-5.38404325, -0.00370909, 0.00202490, 6.38033416, 0.98783243, 0.99426601, 0.46707687,\
+-	-5.38658532, -0.00370593, 0.00202371, 6.38287939, 0.98784516, 0.99427036, 0.46714686,\
+-	-5.38912142, -0.00370278, 0.00202253, 6.38541865, 0.98785786, 0.99427470, 0.46721671,\
+-	-5.39165157, -0.00369963, 0.00202134, 6.38795194, 0.98787055, 0.99427903, 0.46728642,\
+-	-5.39417576, -0.00369648, 0.00202016, 6.39047928, 0.98788320, 0.99428336, 0.46735598,\
+-	-5.39669401, -0.00369334, 0.00201898, 6.39300067, 0.98789584, 0.99428768, 0.46742541,\
+-	-5.39920633, -0.00369021, 0.00201780, 6.39551612, 0.98790845, 0.99429200, 0.46749470,\
+-	-5.40171272, -0.00368707, 0.00201662, 6.39802564, 0.98792103, 0.99429631, 0.46756384,\
+-	-5.40421318, -0.00368395, 0.00201544, 6.40052923, 0.98793359, 0.99430061, 0.46763284,\
+-	-5.40670773, -0.00368082, 0.00201427, 6.40302690, 0.98794613, 0.99430491, 0.46770170,\
+-	-5.40919637, -0.00367771, 0.00201309, 6.40551867, 0.98795864, 0.99430920, 0.46777042,\
+-	-5.41167912, -0.00367459, 0.00201192, 6.40800452, 0.98797113, 0.99431349, 0.46783900,\
+-	-5.41415597, -0.00367148, 0.00201075, 6.41048448, 0.98798360, 0.99431777, 0.46790744,\
+-	-5.41662693, -0.00366838, 0.00200957, 6.41295855, 0.98799604, 0.99432205, 0.46797574,\
+-	-5.41909202, -0.00366528, 0.00200840, 6.41542674, 0.98800846, 0.99432632, 0.46804389,\
+-	-5.42155124, -0.00366218, 0.00200724, 6.41788906, 0.98802085, 0.99433058, 0.46811190,\
+-	-5.42400460, -0.00365909, 0.00200607, 6.42034551, 0.98803323, 0.99433484, 0.46817978,\
+-	-5.42645210, -0.00365600, 0.00200490, 6.42279610, 0.98804557, 0.99433910, 0.46824751,\
+-	-5.42889376, -0.00365292, 0.00200374, 6.42524084, 0.98805790, 0.99434334, 0.46831509,\
+-	-5.43132958, -0.00364984, 0.00200257, 6.42767973, 0.98807020, 0.99434759, 0.46838254,\
+-	-5.43375956, -0.00364677, 0.00200141, 6.43011279, 0.98808248, 0.99435183, 0.46844985,\
+-	-5.43618372, -0.00364370, 0.00200024, 6.43254002, 0.98809474, 0.99435606, 0.46851701,\
+-	-5.43860207, -0.00364063, 0.00199908, 6.43496143, 0.98810697, 0.99436029, 0.46858403,\
+-	-5.44101460, -0.00363757, 0.00199792, 6.43737703, 0.98811918, 0.99436451, 0.46865091,\
+-	-5.44342134, -0.00363451, 0.00199676, 6.43978683, 0.98813137, 0.99436872, 0.46871765,\
+-	-5.44582228, -0.00363146, 0.00199561, 6.44219082, 0.98814353, 0.99437294, 0.46878424,\
+-	-5.44821744, -0.00362841, 0.00199445, 6.44458903, 0.98815567, 0.99437714, 0.46885070,\
+-	-5.45060682, -0.00362536, 0.00199329, 6.44698145, 0.98816779, 0.99438134, 0.46891701,\
+-	-5.45299043, -0.00362232, 0.00199214, 6.44936811, 0.98817989, 0.99438554, 0.46898318,\
+-	-5.45536828, -0.00361929, 0.00199098, 6.45174899, 0.98819196, 0.99438973, 0.46904921,\
+-	-5.45774037, -0.00361625, 0.00198983, 6.45412412, 0.98820402, 0.99439392, 0.46911510,\
+-	-5.46010672, -0.00361323, 0.00198868, 6.45649350, 0.98821605, 0.99439810, 0.46918084,\
+-	-5.46246734, -0.00361020, 0.00198753, 6.45885714, 0.98822805, 0.99440227, 0.46924645,\
+-	-5.46482222, -0.00360718, 0.00198638, 6.46121504, 0.98824004, 0.99440644, 0.46931191,\
+-	-5.46717138, -0.00360417, 0.00198523, 6.46356722, 0.98825200, 0.99441061, 0.46937723,\
+-	-5.46951483, -0.00360115, 0.00198408, 6.46591367, 0.98826395, 0.99441477, 0.46944241,\
+-	-5.47185257, -0.00359814, 0.00198293, 6.46825442, 0.98827587, 0.99441892, 0.46950744,\
+-	-5.47418461, -0.00359514, 0.00198178, 6.47058947, 0.98828776, 0.99442308, 0.46957234,\
+-	-5.47651097, -0.00359214, 0.00198064, 6.47291883, 0.98829964, 0.99442722, 0.46963709,\
+-	-5.47883164, -0.00358914, 0.00197949, 6.47524250, 0.98831150, 0.99443136, 0.46970170,\
+-	-5.48114664, -0.00358615, 0.00197835, 6.47756049, 0.98832333, 0.99443550, 0.46976617,\
+-	-5.48345598, -0.00358316, 0.00197721, 6.47987281, 0.98833514, 0.99443963, 0.46983050,\
+-	-5.48575966, -0.00358018, 0.00197606, 6.48217948, 0.98834693, 0.99444376, 0.46989469,\
+-	-5.48805769, -0.00357720, 0.00197492, 6.48448049, 0.98835870, 0.99444788, 0.46995873,\
+-	-5.49035007, -0.00357422, 0.00197378, 6.48677585, 0.98837045, 0.99445200, 0.47002264,\
+-	-5.49263683, -0.00357125, 0.00197264, 6.48906558, 0.98838217, 0.99445611, 0.47008640,\
+-	-5.49491797, -0.00356828, 0.00197150, 6.49134968, 0.98839388, 0.99446022, 0.47015002,\
+-	-5.49719348, -0.00356532, 0.00197036, 6.49362817, 0.98840556, 0.99446432, 0.47021350,\
+-	-5.49946339, -0.00356236, 0.00196923, 6.49590104, 0.98841723, 0.99446842, 0.47027684,\
+-	-5.50172771, -0.00355940, 0.00196809, 6.49816831, 0.98842887, 0.99447251, 0.47034004,\
+-	-5.50398643, -0.00355645, 0.00196695, 6.50042998, 0.98844049, 0.99447660, 0.47040310,\
+-	-5.50623957, -0.00355350, 0.00196582, 6.50268607, 0.98845209, 0.99448068, 0.47046602,\
+-	-5.50848713, -0.00355055, 0.00196468, 6.50493658, 0.98846367, 0.99448476, 0.47052879,\
+-	-5.51072913, -0.00354761, 0.00196355, 6.50718152, 0.98847523, 0.99448884, 0.47059143,\
+-	-5.51296557, -0.00354467, 0.00196242, 6.50942090, 0.98848677, 0.99449291, 0.47065392,\
+-	-5.51519647, -0.00354174, 0.00196129, 6.51165473, 0.98849828, 0.99449698, 0.47071627,\
+-	-5.51742182, -0.00353881, 0.00196016, 6.51388301, 0.98850978, 0.99450104, 0.47077849,\
+-	-5.51964164, -0.00353588, 0.00195902, 6.51610576, 0.98852126, 0.99450510, 0.47084056,\
+-	-5.52185594, -0.00353296, 0.00195789, 6.51832298, 0.98853271, 0.99450915, 0.47090249,\
+-	-5.52406473, -0.00353004, 0.00195677, 6.52053469, 0.98854415, 0.99451320, 0.47096428,\
+-	-5.52626800, -0.00352712, 0.00195564, 6.52274088, 0.98855556, 0.99451724, 0.47102593,\
+-	-5.52846578, -0.00352421, 0.00195451, 6.52494157, 0.98856696, 0.99452128, 0.47108744,\
+-	-5.53065808, -0.00352130, 0.00195338, 6.52713677, 0.98857834, 0.99452532, 0.47114881,\
+-	-5.53284489, -0.00351840, 0.00195226, 6.52932649, 0.98858969, 0.99452935, 0.47121004,\
+-	-5.53502623, -0.00351550, 0.00195113, 6.53151073, 0.98860103, 0.99453337, 0.47127113,\
+-	-5.53720210, -0.00351260, 0.00195001, 6.53368950, 0.98861234, 0.99453740, 0.47133208,\
+-	-5.53937252, -0.00350971, 0.00194888, 6.53586282, 0.98862364, 0.99454141, 0.47139289,\
+-	-5.54153750, -0.00350682, 0.00194776, 6.53803068, 0.98863491, 0.99454543, 0.47145356,\
+-	-5.54369704, -0.00350393, 0.00194663, 6.54019311, 0.98864617, 0.99454944, 0.47151409,\
+-	-5.54585115, -0.00350105, 0.00194551, 6.54235010, 0.98865740, 0.99455344, 0.47157449,\
+-	-5.54799984, -0.00349817, 0.00194439, 6.54450167, 0.98866862, 0.99455744, 0.47163474,\
+-	-5.55014311, -0.00349529, 0.00194327, 6.54664782, 0.98867982, 0.99456144, 0.47169485,\
+-	-5.55228099, -0.00349242, 0.00194215, 6.54878857, 0.98869099, 0.99456543, 0.47175483,\
+-	-5.55441347, -0.00348955, 0.00194103, 6.55092392, 0.98870215, 0.99456942, 0.47181466,\
+-	-5.55654057, -0.00348669, 0.00193991, 6.55305388, 0.98871329, 0.99457340, 0.47187436,\
+-	-5.55866229, -0.00348383, 0.00193879, 6.55517846, 0.98872441, 0.99457738, 0.47193391,\
+-	-5.56077864, -0.00348097, 0.00193767, 6.55729767, 0.98873551, 0.99458136, 0.47199333,\
+-	-5.56288964, -0.00347811, 0.00193655, 6.55941152, 0.98874659, 0.99458533, 0.47205261,\
+-	-5.56499528, -0.00347526, 0.00193544, 6.56152002, 0.98875765, 0.99458930, 0.47211176,\
+-	-5.56709558, -0.00347242, 0.00193432, 6.56362317, 0.98876869, 0.99459326, 0.47217076,\
+-	-5.56919055, -0.00346957, 0.00193321, 6.56572098, 0.98877972, 0.99459722, 0.47222962,\
+-	-5.57128020, -0.00346673, 0.00193209, 6.56781347, 0.98879072, 0.99460118, 0.47228835,\
+-	-5.57336453, -0.00346390, 0.00193098, 6.56990064, 0.98880171, 0.99460513, 0.47234694,\
+-	-5.57544356, -0.00346106, 0.00192986, 6.57198250, 0.98881267, 0.99460907, 0.47240539,\
+-	-5.57751729, -0.00345823, 0.00192875, 6.57405906, 0.98882362, 0.99461302, 0.47246371,\
+-	-5.57958573, -0.00345541, 0.00192764, 6.57613032, 0.98883455, 0.99461696, 0.47252188,\
+-	-5.58164889, -0.00345259, 0.00192652, 6.57819631, 0.98884546, 0.99462089, 0.47257992,\
+-	-5.58370679, -0.00344977, 0.00192541, 6.58025702, 0.98885635, 0.99462482, 0.47263782,\
+-	-5.58575942, -0.00344695, 0.00192430, 6.58231247, 0.98886722, 0.99462875, 0.47269559,\
+-	-5.58780679, -0.00344414, 0.00192319, 6.58436266, 0.98887808, 0.99463267, 0.47275321,\
+-	-5.58984893, -0.00344133, 0.00192208, 6.58640760, 0.98888891, 0.99463659, 0.47281070,\
+-	-5.59188583, -0.00343852, 0.00192097, 6.58844731, 0.98889973, 0.99464051, 0.47286806,\
+-	-5.59391750, -0.00343572, 0.00191986, 6.59048178, 0.98891053, 0.99464442, 0.47292528,\
+-	-5.59594396, -0.00343292, 0.00191875, 6.59251104, 0.98892131, 0.99464833, 0.47298236,\
+-	-5.59796521, -0.00343013, 0.00191764, 6.59453508, 0.98893207, 0.99465223, 0.47303930,\
+-	-5.59998126, -0.00342733, 0.00191653, 6.59655393, 0.98894281, 0.99465613, 0.47309611,\
+-	-5.60199212, -0.00342455, 0.00191543, 6.59856758, 0.98895354, 0.99466003, 0.47315278,\
+-	-5.60399781, -0.00342176, 0.00191432, 6.60057605, 0.98896425, 0.99466392, 0.47320932,\
+-	-5.60599831, -0.00341898, 0.00191321, 6.60257934, 0.98897493, 0.99466781, 0.47326572,\
+-	-5.60799366, -0.00341620, 0.00191211, 6.60457746, 0.98898561, 0.99467169, 0.47332198,\
+-	-5.60998385, -0.00341342, 0.00191100, 6.60657043, 0.98899626, 0.99467557, 0.47337811,\
+-	-5.61196890, -0.00341065, 0.00190990, 6.60855825, 0.98900689, 0.99467945, 0.47343411,\
+-	-5.61394881, -0.00340788, 0.00190879, 6.61054093, 0.98901751, 0.99468332, 0.47348997,\
+-	-5.61592360, -0.00340512, 0.00190769, 6.61251848, 0.98902811, 0.99468719, 0.47354569,\
+-	-5.61789327, -0.00340235, 0.00190659, 6.61449091, 0.98903869, 0.99469106, 0.47360128,\
+-	-5.61985783, -0.00339960, 0.00190548, 6.61645823, 0.98904926, 0.99469492, 0.47365674,\
+-	-5.62181729, -0.00339684, 0.00190438, 6.61842045, 0.98905980, 0.99469878, 0.47371206,\
+-	-5.62377166, -0.00339409, 0.00190328, 6.62037757, 0.98907033, 0.99470263, 0.47376724,\
+-	-5.62572095, -0.00339134, 0.00190218, 6.62232961, 0.98908084, 0.99470648, 0.47382230,\
+-	-5.62766517, -0.00338859, 0.00190108, 6.62427658, 0.98909133, 0.99471033, 0.47387721,\
+-	-5.62960432, -0.00338585, 0.00189998, 6.62621847, 0.98910181, 0.99471417, 0.47393200,\
+-	-5.63153842, -0.00338311, 0.00189888, 6.62815531, 0.98911227, 0.99471801, 0.47398665,\
+-	-5.63346748, -0.00338037, 0.00189778, 6.63008711, 0.98912271, 0.99472185, 0.47404117,\
+-	-5.63539150, -0.00337764, 0.00189668, 6.63201386, 0.98913313, 0.99472568, 0.47409555,\
+-	-5.63731050, -0.00337491, 0.00189558, 6.63393558, 0.98914354, 0.99472951, 0.47414980,\
+-	-5.63922447, -0.00337218, 0.00189448, 6.63585229, 0.98915393, 0.99473333, 0.47420392,\
+-	-5.64113344, -0.00336946, 0.00189338, 6.63776398, 0.98916430, 0.99473716, 0.47425791,\
+-	-5.64303741, -0.00336674, 0.00189229, 6.63967067, 0.98917466, 0.99474097, 0.47431176,\
+-	-5.64493639, -0.00336402, 0.00189119, 6.64157237, 0.98918499, 0.99474479, 0.47436548,\
+-	-5.64683039, -0.00336131, 0.00189009, 6.64346908, 0.98919531, 0.99474860, 0.47441907,\
+-	-5.64871942, -0.00335860, 0.00188899, 6.64536082, 0.98920562, 0.99475241, 0.47447252,\
+-	-5.65060348, -0.00335589, 0.00188790, 6.64724759, 0.98921590, 0.99475621, 0.47452585,\
+-	-5.65248259, -0.00335319, 0.00188680, 6.64912941, 0.98922617, 0.99476001, 0.47457904,\
+-	-5.65435676, -0.00335049, 0.00188571, 6.65100628, 0.98923642, 0.99476381, 0.47463210,\
+-	-5.65622600, -0.00334779, 0.00188461, 6.65287821, 0.98924666, 0.99476760, 0.47468503,\
+-	-5.65809030, -0.00334509, 0.00188352, 6.65474521, 0.98925688, 0.99477139, 0.47473783,\
+-	-5.65994970, -0.00334240, 0.00188243, 6.65660729, 0.98926708, 0.99477517, 0.47479050,\
+-	-5.66180418, -0.00333971, 0.00188133, 6.65846447, 0.98927727, 0.99477896, 0.47484303,\
+-	-5.66365377, -0.00333703, 0.00188024, 6.66031674, 0.98928744, 0.99478273, 0.47489544,\
+-	-5.66549846, -0.00333434, 0.00187915, 6.66216412, 0.98929759, 0.99478651, 0.47494772,\
+-	-5.66733828, -0.00333166, 0.00187805, 6.66400662, 0.98930772, 0.99479028, 0.47499986,\
+-	-5.66917323, -0.00332899, 0.00187696, 6.66584424, 0.98931784, 0.99479405, 0.47505187,\
+-	-5.67100331, -0.00332631, 0.00187587, 6.66767700, 0.98932794, 0.99479781, 0.47510376,\
+-	-5.67282855, -0.00332364, 0.00187478, 6.66950490, 0.98933803, 0.99480158, 0.47515552,\
+-	-5.67464894, -0.00332098, 0.00187369, 6.67132796, 0.98934810, 0.99480533, 0.47520714,\
+-	-5.67646450, -0.00331831, 0.00187260, 6.67314618, 0.98935815, 0.99480909, 0.47525864,\
+-	-5.67827523, -0.00331565, 0.00187151, 6.67495958, 0.98936819, 0.99481284, 0.47531001,\
+-	-5.68008115, -0.00331299, 0.00187042, 6.67676816, 0.98937821, 0.99481659, 0.47536125,\
+-	-5.68188226, -0.00331034, 0.00186933, 6.67857192, 0.98938821, 0.99482033, 0.47541236,\
+-	-5.68367858, -0.00330769, 0.00186824, 6.68037089, 0.98939820, 0.99482407, 0.47546334,\
+-	-5.68547011, -0.00330504, 0.00186715, 6.68216507, 0.98940817, 0.99482781, 0.47551419,\
+-	-5.68725686, -0.00330239, 0.00186606, 6.68395447, 0.98941813, 0.99483154, 0.47556492,\
+-	-5.68903884, -0.00329975, 0.00186498, 6.68573909, 0.98942807, 0.99483527, 0.47561551,\
+-	-5.69081606, -0.00329711, 0.00186389, 6.68751895, 0.98943799, 0.99483900, 0.47566598,\
+-	-5.69258853, -0.00329447, 0.00186280, 6.68929406, 0.98944790, 0.99484272, 0.47571632,\
+-	-5.69435627, -0.00329184, 0.00186172, 6.69106443, 0.98945779, 0.99484644, 0.47576654,\
+-	-5.69611926, -0.00328921, 0.00186063, 6.69283005, 0.98946767, 0.99485016, 0.47581663,\
+-	-5.69787754, -0.00328658, 0.00185954, 6.69459096, 0.98947753, 0.99485388, 0.47586659,\
+-	-5.69963110, -0.00328396, 0.00185846, 6.69634715, 0.98948737, 0.99485759, 0.47591642,\
+-	-5.70137996, -0.00328133, 0.00185737, 6.69809863, 0.98949720, 0.99486129, 0.47596613,\
+-	-5.70312413, -0.00327872, 0.00185629, 6.69984541, 0.98950701, 0.99486500, 0.47601571,\
+-	-5.70486360, -0.00327610, 0.00185520, 6.70158750, 0.98951681, 0.99486870, 0.47606516,\
+-	-5.70659840, -0.00327349, 0.00185412, 6.70332492, 0.98952659, 0.99487239, 0.47611449,\
+-	-5.70832854, -0.00327088, 0.00185304, 6.70505766, 0.98953636, 0.99487609, 0.47616370,\
+-	-5.71005402, -0.00326827, 0.00185195, 6.70678575, 0.98954611, 0.99487978, 0.47621277,\
+-	-5.71177484, -0.00326567, 0.00185087, 6.70850918, 0.98955584, 0.99488347, 0.47626172,\
+-	-5.71349103, -0.00326306, 0.00184979, 6.71022797, 0.98956556, 0.99488715, 0.47631055,\
+-	-5.71520259, -0.00326047, 0.00184870, 6.71194212, 0.98957526, 0.99489083, 0.47635925,\
+-	-5.71690953, -0.00325787, 0.00184762, 6.71365166, 0.98958495, 0.99489451, 0.47640783,\
+-	-5.71861185, -0.00325528, 0.00184654, 6.71535658, 0.98959462, 0.99489818, 0.47645628,\
+-	-5.72030958, -0.00325269, 0.00184546, 6.71705689, 0.98960428, 0.99490185, 0.47650461,\
+-	-5.72200271, -0.00325010, 0.00184438, 6.71875261, 0.98961392, 0.99490552, 0.47655282,\
+-	-5.72369126, -0.00324752, 0.00184330, 6.72044374, 0.98962355, 0.99490918, 0.47660090,\
+-	-5.72537523, -0.00324494, 0.00184222, 6.72213029, 0.98963316, 0.99491284, 0.47664886,\
+-	-5.72705463, -0.00324236, 0.00184114, 6.72381227, 0.98964276, 0.99491650, 0.47669669,\
+-	-5.72872948, -0.00323979, 0.00184006, 6.72548970, 0.98965234, 0.99492016, 0.47674440,\
+-	-5.73039979, -0.00323721, 0.00183898, 6.72716257, 0.98966190, 0.99492381, 0.47679198,\
+-	-5.73206555, -0.00323464, 0.00183790, 6.72883091, 0.98967145, 0.99492746, 0.47683945,\
+-	-5.73372679, -0.00323208, 0.00183682, 6.73049471, 0.98968099, 0.99493110, 0.47688679,\
+-	-5.73538351, -0.00322952, 0.00183574, 6.73215399, 0.98969051, 0.99493474, 0.47693401,\
+-	-5.73703572, -0.00322695, 0.00183466, 6.73380876, 0.98970002, 0.99493838, 0.47698111,\
+-	-5.73868343, -0.00322440, 0.00183359, 6.73545903, 0.98970951, 0.99494202, 0.47702808,\
+-	-5.74032664, -0.00322184, 0.00183251, 6.73710480, 0.98971898, 0.99494565, 0.47707494,\
+-	-5.74196538, -0.00321929, 0.00183143, 6.73874609, 0.98972844, 0.99494928, 0.47712167,\
+-	-5.74359964, -0.00321674, 0.00183036, 6.74038290, 0.98973789, 0.99495290, 0.47716828,\
+-	-5.74522943, -0.00321419, 0.00182928, 6.74201524, 0.98974732, 0.99495653, 0.47721477,\
+-	-5.74685478, -0.00321165, 0.00182820, 6.74364312, 0.98975674, 0.99496014, 0.47726113,\
+-	-5.74847567, -0.00320911, 0.00182713, 6.74526656, 0.98976614, 0.99496376, 0.47730738,\
+-	-5.75009213, -0.00320657, 0.00182605, 6.74688556, 0.98977552, 0.99496737, 0.47735351,\
+-	-5.75170417, -0.00320404, 0.00182498, 6.74850013, 0.98978490, 0.99497098, 0.47739952,\
+-	-5.75331179, -0.00320151, 0.00182390, 6.75011028, 0.98979425, 0.99497459, 0.47744540,\
+-	-5.75491499, -0.00319898, 0.00182283, 6.75171602, 0.98980360, 0.99497819, 0.47749117,\
+-	-5.75651380, -0.00319645, 0.00182176, 6.75331735, 0.98981293, 0.99498179, 0.47753682,\
+-	-5.75810822, -0.00319393, 0.00182068, 6.75491429, 0.98982224, 0.99498539, 0.47758234,\
+-	-5.75969826, -0.00319141, 0.00181961, 6.75650685, 0.98983154, 0.99498899, 0.47762775,\
+-	-5.76128392, -0.00318889, 0.00181854, 6.75809504, 0.98984082, 0.99499258, 0.47767304,\
+-	-5.76286523, -0.00318637, 0.00181746, 6.75967886, 0.98985009, 0.99499616, 0.47771821,\
+-	-5.76444218, -0.00318386, 0.00181639, 6.76125832, 0.98985935, 0.99499975, 0.47776327,\
+-	-5.76601479, -0.00318135, 0.00181532, 6.76283343, 0.98986859, 0.99500333, 0.47780820,\
+-	-5.76758306, -0.00317884, 0.00181425, 6.76440421, 0.98987782, 0.99500691, 0.47785302,\
+-	-5.76914700, -0.00317634, 0.00181318, 6.76597066, 0.98988703, 0.99501049, 0.47789772,\
+-	-5.77070663, -0.00317384, 0.00181210, 6.76753279, 0.98989623, 0.99501406, 0.47794230,\
+-	-5.77226195, -0.00317134, 0.00181103, 6.76909061, 0.98990542, 0.99501763, 0.47798676,\
+-	-5.77381298, -0.00316884, 0.00180996, 6.77064413, 0.98991459, 0.99502119, 0.47803110,\
+-	-5.77535971, -0.00316635, 0.00180889, 6.77219336, 0.98992374, 0.99502476, 0.47807533,\
+-	-5.77690216, -0.00316386, 0.00180782, 6.77373830, 0.98993289, 0.99502832, 0.47811945,\
+-	-5.77844035, -0.00316137, 0.00180675, 6.77527898, 0.98994201, 0.99503187, 0.47816344,\
+-	-5.77997427, -0.00315889, 0.00180569, 6.77681538, 0.98995113, 0.99503543, 0.47820732,\
+-	-5.78150394, -0.00315640, 0.00180462, 6.77834753, 0.98996023, 0.99503898, 0.47825108,\
+-	-5.78302936, -0.00315393, 0.00180355, 6.77987544, 0.98996931, 0.99504253, 0.47829473,\
+-	-5.78455056, -0.00315145, 0.00180248, 6.78139911, 0.98997839, 0.99504607, 0.47833826,\
+-	-5.78606752, -0.00314897, 0.00180141, 6.78291855, 0.98998744, 0.99504961, 0.47838168,\
+-	-5.78758027, -0.00314650, 0.00180035, 6.78443377, 0.98999649, 0.99505315, 0.47842498,\
+-	-5.78908882, -0.00314403, 0.00179928, 6.78594478, 0.99000552, 0.99505669, 0.47846816,\
+-	-5.79059316, -0.00314157, 0.00179821, 6.78745159, 0.99001453, 0.99506022, 0.47851123,\
+-	-5.79209332, -0.00313911, 0.00179715, 6.78895421, 0.99002354, 0.99506375, 0.47855419,\
+-	-5.79358930, -0.00313665, 0.00179608, 6.79045265, 0.99003253, 0.99506727, 0.47859703,\
+-	-5.79508110, -0.00313419, 0.00179501, 6.79194692, 0.99004150, 0.99507080, 0.47863976,\
+-	-5.79656875, -0.00313173, 0.00179395, 6.79343702, 0.99005046, 0.99507432, 0.47868238,\
+-	-5.79805224, -0.00312928, 0.00179288, 6.79492296, 0.99005941, 0.99507784, 0.47872487,\
+-	-5.79953159, -0.00312683, 0.00179182, 6.79640476, 0.99006834, 0.99508135, 0.47876726,\
+-	-5.80100681, -0.00312438, 0.00179075, 6.79788243, 0.99007726, 0.99508486, 0.47880954,\
+-	-5.80247790, -0.00312194, 0.00178969, 6.79935596, 0.99008617, 0.99508837, 0.47885170,\
+-	-5.80394487, -0.00311950, 0.00178863, 6.80082538, 0.99009506, 0.99509187, 0.47889374,\
+-	-5.80540774, -0.00311706, 0.00178756, 6.80229068, 0.99010394, 0.99509538, 0.47893568,\
+-	-5.80686651, -0.00311462, 0.00178650, 6.80375189, 0.99011281, 0.99509888, 0.47897750,\
+-	-5.80832119, -0.00311219, 0.00178544, 6.80520900, 0.99012166, 0.99510237, 0.47901921,\
+-	-5.80977179, -0.00310976, 0.00178438, 6.80666204, 0.99013050, 0.99510587, 0.47906081,\
+-	-5.81121832, -0.00310733, 0.00178331, 6.80811099, 0.99013933, 0.99510936, 0.47910230,\
+-	-5.81266079, -0.00310490, 0.00178225, 6.80955589, 0.99014814, 0.99511284, 0.47914367,\
+-	-5.81409921, -0.00310248, 0.00178119, 6.81099673, 0.99015694, 0.99511633, 0.47918494,\
+-	-5.81553358, -0.00310006, 0.00178013, 6.81243352, 0.99016573, 0.99511981, 0.47922609,\
+-	-5.81696392, -0.00309764, 0.00177907, 6.81386627, 0.99017450, 0.99512329, 0.47926714,\
+-	-5.81839023, -0.00309523, 0.00177801, 6.81529500, 0.99018326, 0.99512676, 0.47930807,\
+-	-5.81981252, -0.00309282, 0.00177695, 6.81671970, 0.99019200, 0.99513024, 0.47934889,\
+-	-5.82123081, -0.00309041, 0.00177589, 6.81814040, 0.99020074, 0.99513370, 0.47938960,\
+-	-5.82264509, -0.00308800, 0.00177483, 6.81955709, 0.99020946, 0.99513717, 0.47943020,\
+-	-5.82405539, -0.00308560, 0.00177377, 6.82096980, 0.99021816, 0.99514063, 0.47947070,\
+-	-5.82546171, -0.00308319, 0.00177271, 6.82237851, 0.99022686, 0.99514410, 0.47951108,\
+-	-5.82686405, -0.00308079, 0.00177165, 6.82378326, 0.99023554, 0.99514755, 0.47955135,\
+-	-5.82826243, -0.00307840, 0.00177059, 6.82518403, 0.99024421, 0.99515101, 0.47959152,\
+-	-5.82965686, -0.00307600, 0.00176954, 6.82658086, 0.99025286, 0.99515446, 0.47963157,\
+-	-5.83104734, -0.00307361, 0.00176848, 6.82797373, 0.99026150, 0.99515791, 0.47967152,\
+-	-5.83243389, -0.00307122, 0.00176742, 6.82936266, 0.99027013, 0.99516135, 0.47971136,\
+-	-5.83381650, -0.00306884, 0.00176637, 6.83074767, 0.99027875, 0.99516480, 0.47975109,\
+-	-5.83519520, -0.00306645, 0.00176531, 6.83212875, 0.99028735, 0.99516824, 0.47979072,\
+-	-5.83656999, -0.00306407, 0.00176425, 6.83350592, 0.99029594, 0.99517167, 0.47983023,\
+-	-5.83794088, -0.00306169, 0.00176320, 6.83487918, 0.99030451, 0.99517511, 0.47986964,\
+-	-5.83930788, -0.00305932, 0.00176214, 6.83624856, 0.99031308, 0.99517854, 0.47990894,\
+-	-5.84067099, -0.00305695, 0.00176109, 6.83761404, 0.99032163, 0.99518197, 0.47994814,\
+-	-5.84203023, -0.00305458, 0.00176003, 6.83897565, 0.99033017, 0.99518539, 0.47998722,\
+-	-5.84338560, -0.00305221, 0.00175898, 6.84033340, 0.99033869, 0.99518881, 0.48002620,\
+-	-5.84473712, -0.00304984, 0.00175793, 6.84168728, 0.99034721, 0.99519223, 0.48006508,\
+-	-5.84608479, -0.00304748, 0.00175687, 6.84303731, 0.99035571, 0.99519565, 0.48010385,\
+-	-5.84742862, -0.00304512, 0.00175582, 6.84438350, 0.99036419, 0.99519906, 0.48014251,\
+-	-5.84876862, -0.00304276, 0.00175477, 6.84572586, 0.99037267, 0.99520247, 0.48018107,\
+-	-5.85010480, -0.00304041, 0.00175371, 6.84706439, 0.99038113, 0.99520588, 0.48021952,\
+-	-5.85143717, -0.00303805, 0.00175266, 6.84839911, 0.99038958, 0.99520929, 0.48025787,\
+-	-5.85276573, -0.00303570, 0.00175161, 6.84973003, 0.99039802, 0.99521269, 0.48029611,\
+-	-5.85409050, -0.00303336, 0.00175056, 6.85105714, 0.99040644, 0.99521609, 0.48033425,\
+-	-5.85541148, -0.00303101, 0.00174951, 6.85238047, 0.99041485, 0.99521948, 0.48037228,\
+-	-5.85672868, -0.00302867, 0.00174846, 6.85370002, 0.99042325, 0.99522288, 0.48041021,\
+-	-5.85804212, -0.00302633, 0.00174741, 6.85501579, 0.99043164, 0.99522627, 0.48044803,\
+-	-5.85935180, -0.00302399, 0.00174636, 6.85632781, 0.99044002, 0.99522965, 0.48048575,\
+-	-5.86065772, -0.00302166, 0.00174531, 6.85763607, 0.99044838, 0.99523304, 0.48052337,\
+-	-5.86195991, -0.00301932, 0.00174426, 6.85894058, 0.99045673, 0.99523642, 0.48056088,\
+-	-5.86325835, -0.00301699, 0.00174321, 6.86024136, 0.99046507, 0.99523980, 0.48059829,\
+-	-5.86455308, -0.00301467, 0.00174216, 6.86153841, 0.99047339, 0.99524317, 0.48063560,\
+-	-5.86584409, -0.00301234, 0.00174111, 6.86283174, 0.99048171, 0.99524655, 0.48067281,\
+-	-5.86713139, -0.00301002, 0.00174006, 6.86412137, 0.99049001, 0.99524992, 0.48070991,\
+-	-5.86841499, -0.00300770, 0.00173902, 6.86540729, 0.99049829, 0.99525328, 0.48074691,\
+-	-5.86969490, -0.00300538, 0.00173797, 6.86668952, 0.99050657, 0.99525665, 0.48078381,\
+-	-5.87097113, -0.00300307, 0.00173692, 6.86796806, 0.99051483, 0.99526001, 0.48082060,\
+-	-5.87224368, -0.00300076, 0.00173588, 6.86924293, 0.99052309, 0.99526337, 0.48085730,\
+-	-5.87351257, -0.00299845, 0.00173483, 6.87051413, 0.99053133, 0.99526672, 0.48089389,\
+-	-5.87477781, -0.00299614, 0.00173378, 6.87178167, 0.99053955, 0.99527008, 0.48093038,\
+-	-5.87603940, -0.00299383, 0.00173274, 6.87304557, 0.99054777, 0.99527343, 0.48096678,\
+-	-5.87729735, -0.00299153, 0.00173169, 6.87430582, 0.99055597, 0.99527677, 0.48100307,\
+-	-5.87855167, -0.00298923, 0.00173065, 6.87556244, 0.99056416, 0.99528012, 0.48103926,\
+-	-5.87980237, -0.00298694, 0.00172961, 6.87681543, 0.99057234, 0.99528346, 0.48107535,\
+-	-5.88104946, -0.00298464, 0.00172856, 6.87806482, 0.99058051, 0.99528680, 0.48111134,\
+-	-5.88229294, -0.00298235, 0.00172752, 6.87931059, 0.99058867, 0.99529013, 0.48114723,\
+-	-5.88353283, -0.00298006, 0.00172648, 6.88055277, 0.99059681, 0.99529347, 0.48118302,\
+-	-5.88476913, -0.00297777, 0.00172543, 6.88179135, 0.99060494, 0.99529680, 0.48121871,\
+-	-5.88600185, -0.00297549, 0.00172439, 6.88302636, 0.99061306, 0.99530012, 0.48125430,\
+-	-5.88723100, -0.00297320, 0.00172335, 6.88425779, 0.99062117, 0.99530345, 0.48128980,\
+-	-5.88845659, -0.00297093, 0.00172231, 6.88548566, 0.99062927, 0.99530677, 0.48132519,\
+-	-5.88967862, -0.00296865, 0.00172127, 6.88670998, 0.99063735, 0.99531009, 0.48136049,\
+-	-5.89089712, -0.00296637, 0.00172022, 6.88793074, 0.99064542, 0.99531340, 0.48139569,\
+-	-5.89211207, -0.00296410, 0.00171918, 6.88914797, 0.99065348, 0.99531671, 0.48143079,\
+-	-5.89332350, -0.00296183, 0.00171814, 6.89036167, 0.99066153, 0.99532002, 0.48146579,\
+-	-5.89453141, -0.00295956, 0.00171710, 6.89157185, 0.99066957, 0.99532333, 0.48150069,\
+-	-5.89573581, -0.00295730, 0.00171607, 6.89277851, 0.99067760, 0.99532664, 0.48153550,\
+-	-5.89693670, -0.00295504, 0.00171503, 6.89398167, 0.99068561, 0.99532994, 0.48157021,\
+-	-5.89813411, -0.00295278, 0.00171399, 6.89518133, 0.99069361, 0.99533324, 0.48160482,\
+-	-5.89932802, -0.00295052, 0.00171295, 6.89637751, 0.99070160, 0.99533653, 0.48163934,\
+-	-5.90051846, -0.00294826, 0.00171191, 6.89757020, 0.99070958, 0.99533983, 0.48167376,\
+-	-5.90170544, -0.00294601, 0.00171088, 6.89875943, 0.99071755, 0.99534312, 0.48170809,\
+-	-5.90288895, -0.00294376, 0.00170984, 6.89994519, 0.99072550, 0.99534640, 0.48174231,\
+-	-5.90406901, -0.00294151, 0.00170880, 6.90112750, 0.99073345, 0.99534969, 0.48177645,\
+-	-5.90524562, -0.00293927, 0.00170777, 6.90230636, 0.99074138, 0.99535297, 0.48181048,\
+-	-5.90641881, -0.00293702, 0.00170673, 6.90348178, 0.99074930, 0.99535625, 0.48184443,\
+-	-5.90758856, -0.00293478, 0.00170569, 6.90465378, 0.99075721, 0.99535952, 0.48187827,\
+-	-5.90875490, -0.00293254, 0.00170466, 6.90582235, 0.99076511, 0.99536280, 0.48191202,\
+-	-5.90991782, -0.00293031, 0.00170363, 6.90698751, 0.99077300, 0.99536607, 0.48194568,\
+-	-5.91107735, -0.00292807, 0.00170259, 6.90814927, 0.99078087, 0.99536933, 0.48197924,\
+-	-5.91223348, -0.00292584, 0.00170156, 6.90930763, 0.99078874, 0.99537260, 0.48201271,\
+-	-5.91338622, -0.00292362, 0.00170052, 6.91046261, 0.99079659, 0.99537586, 0.48204608,\
+-	-5.91453559, -0.00292139, 0.00169949, 6.91161420, 0.99080443, 0.99537912, 0.48207936,\
+-	-5.91568159, -0.00291917, 0.00169846, 6.91276243, 0.99081226, 0.99538238, 0.48211255,\
+-	-5.91682423, -0.00291694, 0.00169743, 6.91390729, 0.99082008, 0.99538563, 0.48214564,\
+-	-5.91796352, -0.00291472, 0.00169639, 6.91504879, 0.99082789, 0.99538888, 0.48217864,\
+-	-5.91909946, -0.00291251, 0.00169536, 6.91618695, 0.99083569, 0.99539213, 0.48221155,\
+-	-5.92023207, -0.00291029, 0.00169433, 6.91732177, 0.99084347, 0.99539537, 0.48224436,\
+-	-5.92136135, -0.00290808, 0.00169330, 6.91845327, 0.99085124, 0.99539862, 0.48227709,\
+-	-5.92248731, -0.00290587, 0.00169227, 6.91958144, 0.99085901, 0.99540186, 0.48230971,\
+-	-5.92360996, -0.00290367, 0.00169124, 6.92070629, 0.99086676, 0.99540509, 0.48234225,\
+-	-5.92472930, -0.00290146, 0.00169021, 6.92182784, 0.99087450, 0.99540833, 0.48237470,\
+-	-5.92584536, -0.00289926, 0.00168918, 6.92294610, 0.99088223, 0.99541156, 0.48240705,\
+-	-5.92695812, -0.00289706, 0.00168816, 6.92406106, 0.99088995, 0.99541479, 0.48243931,\
+-	-5.92806761, -0.00289486, 0.00168713, 6.92517274, 0.99089766, 0.99541801, 0.48247148,\
+-	-5.92917382, -0.00289267, 0.00168610, 6.92628115, 0.99090535, 0.99542123, 0.48250356,\
+-	-5.93027677, -0.00289047, 0.00168507, 6.92738630, 0.99091304, 0.99542445, 0.48253555,\
+-	-5.93137647, -0.00288828, 0.00168405, 6.92848819, 0.99092071, 0.99542767, 0.48256745,\
+-	-5.93247293, -0.00288610, 0.00168302, 6.92958683, 0.99092837, 0.99543089, 0.48259926,\
+-	-5.93356614, -0.00288391, 0.00168199, 6.93068223, 0.99093603, 0.99543410, 0.48263098,\
+-	-5.93465613, -0.00288173, 0.00168097, 6.93177440, 0.99094367, 0.99543731, 0.48266260,\
+-	-5.93574289, -0.00287955, 0.00167994, 6.93286334, 0.99095130, 0.99544051, 0.48269414,\
+-	-5.93682644, -0.00287737, 0.00167892, 6.93394907, 0.99095892, 0.99544371, 0.48272559,\
+-	-5.93790678, -0.00287519, 0.00167789, 6.93503159, 0.99096653, 0.99544692, 0.48275695,\
+-	-5.93898392, -0.00287302, 0.00167687, 6.93611091, 0.99097412, 0.99545011, 0.48278822,\
+-	-5.94005788, -0.00287085, 0.00167585, 6.93718703, 0.99098171, 0.99545331, 0.48281940,\
+-	-5.94112865, -0.00286868, 0.00167482, 6.93825997, 0.99098929, 0.99545650, 0.48285049,\
+-	-5.94219625, -0.00286651, 0.00167380, 6.93932974, 0.99099685, 0.99545969, 0.48288150,\
+-	-5.94326068, -0.00286435, 0.00167278, 6.94039634, 0.99100441, 0.99546288, 0.48291241,\
+-	-5.94432196, -0.00286218, 0.00167176, 6.94145977, 0.99101195, 0.99546606, 0.48294324,\
+-	-5.94538008, -0.00286002, 0.00167074, 6.94252006, 0.99101949, 0.99546924, 0.48297398,\
+-	-5.94643506, -0.00285787, 0.00166971, 6.94357720, 0.99102701, 0.99547242, 0.48300463,\
+-	-5.94748691, -0.00285571, 0.00166869, 6.94463120, 0.99103452, 0.99547559, 0.48303520,\
+-	-5.94853563, -0.00285356, 0.00166767, 6.94568207, 0.99104202, 0.99547877, 0.48306568,\
+-	-5.94958124, -0.00285141, 0.00166666, 6.94672983, 0.99104951, 0.99548194, 0.48309607,\
+-	-5.95062373, -0.00284926, 0.00166564, 6.94777447, 0.99105699, 0.99548510, 0.48312637,\
+-	-5.95166312, -0.00284711, 0.00166462, 6.94881600, 0.99106446, 0.99548827, 0.48315659,\
+-	-5.95269941, -0.00284497, 0.00166360, 6.94985444, 0.99107192, 0.99549143, 0.48318672,\
+-	-5.95373262, -0.00284283, 0.00166258, 6.95088979, 0.99107937, 0.99549459, 0.48321676,\
+-	-5.95476275, -0.00284069, 0.00166156, 6.95192206, 0.99108681, 0.99549775, 0.48324672,\
+-	-5.95578980, -0.00283855, 0.00166055, 6.95295125, 0.99109423, 0.99550090, 0.48327660,\
+-	-5.95681380, -0.00283642, 0.00165953, 6.95397738, 0.99110165, 0.99550405, 0.48330638,\
+-	-5.95783474, -0.00283429, 0.00165852, 6.95500045, 0.99110906, 0.99550720, 0.48333609,\
+-	-5.95885262, -0.00283216, 0.00165750, 6.95602047, 0.99111645, 0.99551034, 0.48336571,\
+-	-5.95986747, -0.00283003, 0.00165648, 6.95703744, 0.99112384, 0.99551348, 0.48339524,\
+-	-5.96087929, -0.00282791, 0.00165547, 6.95805138, 0.99113121, 0.99551662, 0.48342469,\
+-	-5.96188808, -0.00282578, 0.00165446, 6.95906230, 0.99113858, 0.99551976, 0.48345405,\
+-	-5.96289385, -0.00282366, 0.00165344, 6.96007019, 0.99114593, 0.99552290, 0.48348333,\
+-	-5.96389662, -0.00282154, 0.00165243, 6.96107507, 0.99115327, 0.99552603, 0.48351252,\
+-	-5.96489638, -0.00281943, 0.00165142, 6.96207695, 0.99116061, 0.99552916, 0.48354163,\
+-	-5.96589315, -0.00281732, 0.00165040, 6.96307584, 0.99116793, 0.99553228, 0.48357066,\
+-	-5.96688693, -0.00281520, 0.00164939, 6.96407173, 0.99117524, 0.99553540, 0.48359961,\
+-	-5.96787774, -0.00281310, 0.00164838, 6.96506464, 0.99118255, 0.99553852, 0.48362846,\
+-	-5.96886557, -0.00281099, 0.00164737, 6.96605458, 0.99118984, 0.99554164, 0.48365724,\
+-	-5.96985044, -0.00280888, 0.00164636, 6.96704156, 0.99119712, 0.99554476, 0.48368594,\
+-	-5.97083235, -0.00280678, 0.00164535, 6.96802557, 0.99120439, 0.99554787, 0.48371455,\
+-	-5.97181132, -0.00280468, 0.00164434, 6.96900664, 0.99121165, 0.99555098, 0.48374308,\
+-	-5.97278734, -0.00280258, 0.00164333, 6.96998476, 0.99121891, 0.99555409, 0.48377153,\
+-	-5.97376044, -0.00280049, 0.00164232, 6.97095995, 0.99122615, 0.99555719, 0.48379989,\
+-	-5.97473060, -0.00279840, 0.00164131, 6.97193221, 0.99123338, 0.99556029, 0.48382818,\
+-	-5.97569785, -0.00279631, 0.00164031, 6.97290155, 0.99124060, 0.99556339, 0.48385638,\
+-	-5.97666219, -0.00279422, 0.00163930, 6.97386797, 0.99124781, 0.99556648, 0.48388450,\
+-	-5.97762362, -0.00279213, 0.00163829, 6.97483149, 0.99125501, 0.99556958, 0.48391254,\
+-	-5.97858216, -0.00279005, 0.00163729, 6.97579212, 0.99126220, 0.99557267, 0.48394050,\
+-	-5.97953782, -0.00278796, 0.00163628, 6.97674985, 0.99126938, 0.99557576, 0.48396837,\
+-	-5.98049059, -0.00278589, 0.00163527, 6.97770470, 0.99127655, 0.99557884, 0.48399617,\
+-	-5.98144049, -0.00278381, 0.00163427, 6.97865668, 0.99128371, 0.99558192, 0.48402389,\
+-	-5.98238752, -0.00278173, 0.00163326, 6.97960579, 0.99129087, 0.99558500, 0.48405152,\
+-	-5.98333170, -0.00277966, 0.00163226, 6.98055204, 0.99129801, 0.99558808, 0.48407908,\
+-	-5.98427302, -0.00277759, 0.00163126, 6.98149543, 0.99130514, 0.99559115, 0.48410655,\
+-	-5.98521150, -0.00277552, 0.00163025, 6.98243598, 0.99131226, 0.99559422, 0.48413395,\
+-	-5.98614715, -0.00277346, 0.00162925, 6.98337369, 0.99131937, 0.99559729, 0.48416127,\
+-	-5.98707997, -0.00277139, 0.00162825, 6.98430858, 0.99132647, 0.99560036, 0.48418851,\
+-	-5.98800996, -0.00276933, 0.00162725, 6.98524063, 0.99133356, 0.99560342, 0.48421567,\
+-	-5.98893715, -0.00276727, 0.00162625, 6.98616988, 0.99134064, 0.99560648, 0.48424275,\
+-	-5.98986153, -0.00276521, 0.00162525, 6.98709631, 0.99134771, 0.99560954, 0.48426975,\
+-	-5.99078310, -0.00276316, 0.00162425, 6.98801995, 0.99135477, 0.99561259, 0.48429667,\
+-	-5.99170189, -0.00276111, 0.00162325, 6.98894079, 0.99136183, 0.99561565, 0.48432352,\
+-	-5.99261789, -0.00275906, 0.00162225, 6.98985884, 0.99136887, 0.99561870, 0.48435028,\
+-	-5.99353112, -0.00275701, 0.00162125, 6.99077411, 0.99137590, 0.99562174, 0.48437697,\
+-	-5.99444158, -0.00275496, 0.00162025, 6.99168662, 0.99138292, 0.99562479, 0.48440358,\
+-	-5.99534927, -0.00275292, 0.00161925, 6.99259635, 0.99138994, 0.99562783, 0.48443012,\
+-	-5.99625421, -0.00275088, 0.00161826, 6.99350334, 0.99139694, 0.99563087, 0.48445657,\
+-	-5.99715640, -0.00274884, 0.00161726, 6.99440757, 0.99140393, 0.99563390, 0.48448295,\
+-	-5.99805585, -0.00274680, 0.00161626, 6.99530906, 0.99141092, 0.99563694, 0.48450926,\
+-	-5.99895257, -0.00274476, 0.00161527, 6.99620781, 0.99141789, 0.99563997, 0.48453548,\
+-	-5.99984656, -0.00274273, 0.00161427, 6.99710383, 0.99142485, 0.99564299, 0.48456163,\
+-	-6.00073784, -0.00274070, 0.00161328, 6.99799714, 0.99143181, 0.99564602, 0.48458771,\
+-	-6.00162640, -0.00273867, 0.00161228, 6.99888773, 0.99143875, 0.99564904, 0.48461370,\
+-	-6.00251225, -0.00273665, 0.00161129, 6.99977561, 0.99144569, 0.99565206, 0.48463962,\
+-	-6.00339541, -0.00273462, 0.00161030, 7.00066079, 0.99145261, 0.99565508, 0.48466547,\
+-	-6.00427588, -0.00273260, 0.00160931, 7.00154328, 0.99145953, 0.99565809, 0.48469124,\
+-	-6.00515367, -0.00273058, 0.00160831, 7.00242309, 0.99146644, 0.99566111, 0.48471693,\
+-	-6.00602878, -0.00272856, 0.00160732, 7.00330021, 0.99147334, 0.99566411, 0.48474255,\
+-	-6.00690122, -0.00272655, 0.00160633, 7.00417467, 0.99148022, 0.99566712, 0.48476810,\
+-	-6.00777100, -0.00272454, 0.00160534, 7.00504646, 0.99148710, 0.99567012, 0.48479357,\
+-	-6.00863812, -0.00272252, 0.00160435, 7.00591560, 0.99149397, 0.99567313, 0.48481896,\
+-	-6.00950260, -0.00272052, 0.00160336, 7.00678208, 0.99150083, 0.99567612, 0.48484429,\
+-	-6.01036444, -0.00271851, 0.00160237, 7.00764593, 0.99150768, 0.99567912, 0.48486953,\
+-	-6.01122364, -0.00271651, 0.00160138, 7.00850713, 0.99151452, 0.99568211, 0.48489471,\
+-	-6.01208022, -0.00271450, 0.00160039, 7.00936571, 0.99152135, 0.99568510, 0.48491980,\
+-	-6.01293417, -0.00271250, 0.00159941, 7.01022167, 0.99152817, 0.99568809, 0.48494483,\
+-	-6.01378552, -0.00271051, 0.00159842, 7.01107501, 0.99153498, 0.99569107, 0.48496978,\
+-	-6.01463426, -0.00270851, 0.00159743, 7.01192575, 0.99154179, 0.99569406, 0.48499466,\
+-	-6.01548040, -0.00270652, 0.00159645, 7.01277388, 0.99154858, 0.99569704, 0.48501947,\
+-	-6.01632394, -0.00270453, 0.00159546, 7.01361942, 0.99155537, 0.99570001, 0.48504420,\
+-	-6.01716491, -0.00270254, 0.00159448, 7.01446237, 0.99156214, 0.99570299, 0.48506886,\
+-	-6.01800329, -0.00270055, 0.00159349, 7.01530274, 0.99156891, 0.99570596, 0.48509345,\
+-	-6.01883911, -0.00269856, 0.00159251, 7.01614055, 0.99157566, 0.99570893, 0.48511797,\
+-	-6.01967236, -0.00269658, 0.00159153, 7.01697578, 0.99158241, 0.99571189, 0.48514241,\
+-	-6.02050306, -0.00269460, 0.00159054, 7.01780845, 0.99158915, 0.99571486, 0.48516678,\
+-	-6.02133120, -0.00269262, 0.00158956, 7.01863858, 0.99159588, 0.99571782, 0.48519108,\
+-	-6.02215680, -0.00269065, 0.00158858, 7.01946615, 0.99160260, 0.99572077, 0.48521531,\
+-	-6.02297987, -0.00268867, 0.00158760, 7.02029119, 0.99160931, 0.99572373, 0.48523947,\
+-	-6.02380040, -0.00268670, 0.00158662, 7.02111370, 0.99161601, 0.99572668, 0.48526355,\
+-	-6.02461841, -0.00268473, 0.00158564, 7.02193368, 0.99162270, 0.99572963, 0.48528757,\
+-	-6.02543391, -0.00268276, 0.00158466, 7.02275115, 0.99162938, 0.99573258, 0.48531151,\
+-	-6.02624690, -0.00268080, 0.00158368, 7.02356610, 0.99163606, 0.99573552, 0.48533539,\
+-	-6.02705738, -0.00267883, 0.00158270, 7.02437855, 0.99164272, 0.99573847, 0.48535919,\
+-	-6.02786537, -0.00267687, 0.00158172, 7.02518850, 0.99164938, 0.99574141, 0.48538292,\
+-	-6.02867087, -0.00267491, 0.00158074, 7.02599596, 0.99165602, 0.99574434, 0.48540659,\
+-	-6.02947389, -0.00267296, 0.00157977, 7.02680093, 0.99166266, 0.99574728, 0.48543018,\
+-	-6.03027443, -0.00267100, 0.00157879, 7.02760343, 0.99166929, 0.99575021, 0.48545370,\
+-	-6.03107251, -0.00266905, 0.00157781, 7.02840346, 0.99167591, 0.99575314, 0.48547716,\
+-	-6.03186812, -0.00266710, 0.00157684, 7.02920102, 0.99168252, 0.99575606, 0.48550054,\
+-	-6.03266127, -0.00266515, 0.00157586, 7.02999612, 0.99168912, 0.99575899, 0.48552386,\
+-	-6.03345198, -0.00266320, 0.00157489, 7.03078878, 0.99169571, 0.99576191, 0.48554710,\
+-	-6.03424025, -0.00266126, 0.00157391, 7.03157899, 0.99170230, 0.99576483, 0.48557028,\
+-	-6.03502608, -0.00265932, 0.00157294, 7.03236676, 0.99170887, 0.99576774, 0.48559339,\
+-	-6.03580948, -0.00265738, 0.00157197, 7.03315210, 0.99171544, 0.99577065, 0.48561643,\
+-	-6.03659046, -0.00265544, 0.00157100, 7.03393502, 0.99172199, 0.99577356, 0.48563940,\
+-	-6.03736903, -0.00265350, 0.00157002, 7.03471552, 0.99172854, 0.99577647, 0.48566231,\
+-	-6.03814518, -0.00265157, 0.00156905, 7.03549361, 0.99173508, 0.99577938, 0.48568514,\
+-	-6.03891894, -0.00264964, 0.00156808, 7.03626930, 0.99174161, 0.99578228, 0.48570791,\
+-	-6.03969029, -0.00264771, 0.00156711, 7.03704258, 0.99174813, 0.99578518, 0.48573061,\
+-	-6.04045926, -0.00264578, 0.00156614, 7.03781348, 0.99175464, 0.99578807, 0.48575324,\
+-	-6.04122585, -0.00264386, 0.00156517, 7.03858199, 0.99176115, 0.99579097, 0.48577581,\
+-	-6.04199006, -0.00264193, 0.00156421, 7.03934813, 0.99176764, 0.99579386, 0.48579831,\
+-	-6.04275190, -0.00264001, 0.00156324, 7.04011189, 0.99177413, 0.99579675, 0.48582075,\
+-	-6.04351138, -0.00263809, 0.00156227, 7.04087328, 0.99178061, 0.99579964, 0.48584311,\
+-	-6.04426850, -0.00263618, 0.00156130, 7.04163232, 0.99178707, 0.99580252, 0.48586541,\
+-	-6.04502327, -0.00263426, 0.00156034, 7.04238901, 0.99179353, 0.99580540, 0.48588765,\
+-	-6.04577570, -0.00263235, 0.00155937, 7.04314335, 0.99179998, 0.99580828, 0.48590981,\
+-	-6.04652579, -0.00263044, 0.00155841, 7.04389535, 0.99180643, 0.99581115, 0.48593191,\
+-	-6.04727354, -0.00262853, 0.00155744, 7.04464502, 0.99181286, 0.99581403, 0.48595395,\
+-	-6.04801898, -0.00262662, 0.00155648, 7.04539236, 0.99181929, 0.99581690, 0.48597592,\
+-	-6.04876210, -0.00262472, 0.00155552, 7.04613738, 0.99182570, 0.99581977, 0.48599782,\
+-	-6.04950290, -0.00262282, 0.00155455, 7.04688009, 0.99183211, 0.99582263, 0.48601966,\
+-	-6.05024140, -0.00262092, 0.00155359, 7.04762049, 0.99183851, 0.99582549, 0.48604144,\
+-	-6.05097760, -0.00261902, 0.00155263, 7.04835858, 0.99184490, 0.99582835, 0.48606315,\
+-	-6.05171151, -0.00261712, 0.00155167, 7.04909439, 0.99185128, 0.99583121, 0.48608479,\
+-	-6.05244313, -0.00261523, 0.00155071, 7.04982791, 0.99185765, 0.99583407, 0.48610637,\
+-	-6.05317248, -0.00261334, 0.00154975, 7.05055914, 0.99186402, 0.99583692, 0.48612789,\
+-	-6.05389955, -0.00261145, 0.00154879, 7.05128810, 0.99187037, 0.99583977, 0.48614934,\
+-	-6.05462435, -0.00260956, 0.00154783, 7.05201479, 0.99187672, 0.99584261, 0.48617073,\
+-	-6.05534689, -0.00260767, 0.00154687, 7.05273922, 0.99188306, 0.99584546, 0.48619205,\
+-	-6.05606718, -0.00260579, 0.00154591, 7.05346139, 0.99188939, 0.99584830, 0.48621331,\
+-	-6.05678521, -0.00260391, 0.00154495, 7.05418131, 0.99189571, 0.99585114, 0.48623450,\
+-	-6.05750101, -0.00260203, 0.00154400, 7.05489898, 0.99190203, 0.99585398, 0.48625564,\
+-	-6.05821457, -0.00260015, 0.00154304, 7.05561442, 0.99190833, 0.99585681, 0.48627671,\
+-	-6.05892590, -0.00259827, 0.00154209, 7.05632763, 0.99191463, 0.99585964, 0.48629772,\
+-	-6.05963501, -0.00259640, 0.00154113, 7.05703861, 0.99192092, 0.99586247, 0.48631866,\
+-	-6.06034190, -0.00259453, 0.00154018, 7.05774737, 0.99192720, 0.99586529, 0.48633954,\
+-	-6.06104657, -0.00259266, 0.00153922, 7.05845392, 0.99193347, 0.99586812, 0.48636036,\
+-	-6.06174905, -0.00259079, 0.00153827, 7.05915826, 0.99193973, 0.99587094, 0.48638112,\
+-	-6.06244932, -0.00258893, 0.00153732, 7.05986040, 0.99194598, 0.99587376, 0.48640181,\
+-	-6.06314740, -0.00258706, 0.00153637, 7.06056034, 0.99195223, 0.99587657, 0.48642244,\
+-	-6.06384330, -0.00258520, 0.00153541, 7.06125810, 0.99195847, 0.99587938, 0.48644301,\
+-	-6.06453701, -0.00258334, 0.00153446, 7.06195367, 0.99196470, 0.99588220, 0.48646352,\
+-	-6.06522855, -0.00258148, 0.00153351, 7.06264707, 0.99197092, 0.99588500, 0.48648397,\
+-	-6.06591793, -0.00257963, 0.00153256, 7.06333830, 0.99197713, 0.99588781, 0.48650436,\
+-	-6.06660514, -0.00257778, 0.00153161, 7.06402736, 0.99198334, 0.99589061, 0.48652468,\
+-	-6.06729019, -0.00257592, 0.00153067, 7.06471427, 0.99198953, 0.99589341, 0.48654494,\
+-	-6.06797309, -0.00257408, 0.00152972, 7.06539902, 0.99199572, 0.99589621, 0.48656515,\
+-	-6.06865385, -0.00257223, 0.00152877, 7.06608163, 0.99200190, 0.99589900, 0.48658529,\
+-	-6.06933248, -0.00257038, 0.00152782, 7.06676209, 0.99200807, 0.99590179, 0.48660537,\
+-	-6.07000896, -0.00256854, 0.00152688, 7.06744043, 0.99201424, 0.99590458, 0.48662539,\
+-	-6.07068333, -0.00256670, 0.00152593, 7.06811663, 0.99202039, 0.99590737, 0.48664535,\
+-	-6.07135557, -0.00256486, 0.00152499, 7.06879071, 0.99202654, 0.99591015, 0.48666525,\
+-	-6.07202570, -0.00256302, 0.00152404, 7.06946268, 0.99203268, 0.99591294, 0.48668509,\
+-	-6.07269372, -0.00256119, 0.00152310, 7.07013254, 0.99203881, 0.99591572, 0.48670487,\
+-	-6.07335964, -0.00255935, 0.00152215, 7.07080029, 0.99204493, 0.99591849, 0.48672460,\
+-	-6.07402346, -0.00255752, 0.00152121, 7.07146594, 0.99205104, 0.99592127, 0.48674426,\
+-	-6.07468520, -0.00255569, 0.00152027, 7.07212950, 0.99205715, 0.99592404, 0.48676386,\
+-	-6.07534484, -0.00255387, 0.00151933, 7.07279098, 0.99206325, 0.99592681, 0.48678341,\
+-	-6.07600241, -0.00255204, 0.00151839, 7.07345037, 0.99206934, 0.99592957, 0.48680289,\
+-	-6.07665791, -0.00255022, 0.00151745, 7.07410769, 0.99207542, 0.99593234, 0.48682232,\
+-	-6.07731134, -0.00254840, 0.00151651, 7.07476294, 0.99208149, 0.99593510, 0.48684169,\
+-	-6.07796271, -0.00254658, 0.00151557, 7.07541613, 0.99208756, 0.99593786, 0.48686100,\
+-	-6.07861202, -0.00254476, 0.00151463, 7.07606726, 0.99209362, 0.99594061, 0.48688025,\
+-	-6.07925928, -0.00254294, 0.00151369, 7.07671634, 0.99209967, 0.99594336, 0.48689944,\
+-	-6.07990450, -0.00254113, 0.00151275, 7.07736337, 0.99210571, 0.99594612, 0.48691858,\
+-	-6.08054769, -0.00253932, 0.00151182, 7.07800837, 0.99211174, 0.99594886, 0.48693766,\
+-	-6.08118884, -0.00253751, 0.00151088, 7.07865133, 0.99211777, 0.99595161, 0.48695668,\
+-	-6.08182796, -0.00253570, 0.00150994, 7.07929226, 0.99212379, 0.99595435, 0.48697564,\
+-	-6.08246507, -0.00253390, 0.00150901, 7.07993117, 0.99212980, 0.99595709, 0.48699454,\
+-	-6.08310016, -0.00253210, 0.00150807, 7.08056806, 0.99213580, 0.99595983, 0.48701339,\
+-	-6.08373324, -0.00253029, 0.00150714, 7.08120294, 0.99214179, 0.99596257, 0.48703218,\
+-	-6.08436431, -0.00252849, 0.00150621, 7.08183582, 0.99214778, 0.99596530, 0.48705092,\
+-	-6.08499339, -0.00252670, 0.00150527, 7.08246669, 0.99215376, 0.99596803, 0.48706960,\
+-	-6.08562048, -0.00252490, 0.00150434, 7.08309558, 0.99215973, 0.99597076, 0.48708821,\
+-	-6.08624558, -0.00252311, 0.00150341, 7.08372247, 0.99216569, 0.99597348, 0.48710678,\
+-	-6.08686870, -0.00252132, 0.00150248, 7.08434738, 0.99217164, 0.99597620, 0.48712529,\
+-	-6.08748985, -0.00251953, 0.00150155, 7.08497032, 0.99217759, 0.99597892, 0.48714374,\
+-	-6.08810902, -0.00251774, 0.00150062, 7.08559128, 0.99218353, 0.99598164, 0.48716214,\
+-	-6.08872624, -0.00251595, 0.00149969, 7.08621028, 0.99218946, 0.99598436, 0.48718048,\
+-	-6.08934149, -0.00251417, 0.00149876, 7.08682732, 0.99219538, 0.99598707, 0.48719876,\
+-	-6.08995479, -0.00251239, 0.00149784, 7.08744241, 0.99220130, 0.99598978, 0.48721699,\
+-	-6.09056615, -0.00251061, 0.00149691, 7.08805554, 0.99220721, 0.99599248, 0.48723517,\
+-	-6.09117556, -0.00250883, 0.00149598, 7.08866673, 0.99221310, 0.99599519, 0.48725329,\
+-	-6.09178304, -0.00250705, 0.00149506, 7.08927599, 0.99221900, 0.99599789, 0.48727135,\
+-	-6.09238859, -0.00250528, 0.00149413, 7.08988331, 0.99222488, 0.99600059, 0.48728936,\
+-	-6.09299221, -0.00250351, 0.00149320, 7.09048871, 0.99223076, 0.99600329, 0.48730732,\
+-	-6.09359392, -0.00250174, 0.00149228, 7.09109218, 0.99223663, 0.99600598, 0.48732522,\
+-	-6.09419371, -0.00249997, 0.00149136, 7.09169374, 0.99224249, 0.99600867, 0.48734306,\
+-	-6.09479159, -0.00249820, 0.00149043, 7.09229339, 0.99224834, 0.99601136, 0.48736085,\
+-	-6.09538757, -0.00249644, 0.00148951, 7.09289113, 0.99225419, 0.99601405, 0.48737859,\
+-	-6.09598165, -0.00249468, 0.00148859, 7.09348698, 0.99226003, 0.99601673, 0.48739628,\
+-	-6.09657385, -0.00249292, 0.00148767, 7.09408093, 0.99226586, 0.99601942, 0.48741390,\
+-	-6.09716415, -0.00249116, 0.00148675, 7.09467299, 0.99227168, 0.99602210, 0.48743148,\
+-	-6.09775257, -0.00248940, 0.00148583, 7.09526317, 0.99227749, 0.99602477, 0.48744900,\
+-	-6.09833912, -0.00248765, 0.00148491, 7.09585148, 0.99228330, 0.99602745, 0.48746647,\
+-	-6.09892380, -0.00248589, 0.00148399, 7.09643791, 0.99228910, 0.99603012, 0.48748389,\
+-	-6.09950662, -0.00248414, 0.00148307, 7.09702248, 0.99229489, 0.99603279, 0.48750125,\
+-	-6.10008757, -0.00248239, 0.00148215, 7.09760518, 0.99230068, 0.99603545, 0.48751856,\
+-	-6.10066667, -0.00248065, 0.00148124, 7.09818603, 0.99230646, 0.99603812, 0.48753582,\
+-	-6.10124393, -0.00247890, 0.00148032, 7.09876503, 0.99231223, 0.99604078, 0.48755302,\
+-	-6.10181934, -0.00247716, 0.00147941, 7.09934218, 0.99231799, 0.99604344, 0.48757018,\
+-	-6.10239291, -0.00247542, 0.00147849, 7.09991749, 0.99232374, 0.99604609, 0.48758728,\
+-	-6.10296465, -0.00247368, 0.00147758, 7.10049097, 0.99232949, 0.99604875, 0.48760432,\
+-	-6.10353456, -0.00247194, 0.00147666, 7.10106262, 0.99233523, 0.99605140, 0.48762132,\
+-	-6.10410265, -0.00247020, 0.00147575, 7.10163245, 0.99234096, 0.99605405, 0.48763826,\
+-	-6.10466892, -0.00246847, 0.00147484, 7.10220045, 0.99234669, 0.99605669, 0.48765516,\
+-	-6.10523338, -0.00246674, 0.00147393, 7.10276665, 0.99235240, 0.99605934, 0.48767200,\
+-	-6.10579604, -0.00246501, 0.00147301, 7.10333103, 0.99235811, 0.99606198, 0.48768879,\
+-	-6.10635689, -0.00246328, 0.00147210, 7.10389362, 0.99236382, 0.99606462, 0.48770552,\
+-	-6.10691595, -0.00246155, 0.00147119, 7.10445440, 0.99236951, 0.99606725, 0.48772221,\
+-	-6.10747322, -0.00245983, 0.00147028, 7.10501339, 0.99237520, 0.99606989, 0.48773885,\
+-	-6.10802871, -0.00245811, 0.00146937, 7.10557060, 0.99238088, 0.99607252, 0.48775543,\
+-	-6.10858241, -0.00245639, 0.00146847, 7.10612603, 0.99238655, 0.99607515, 0.48777197,\
+-	-6.10913434, -0.00245467, 0.00146756, 7.10667967, 0.99239222, 0.99607777, 0.48778845,\
+-	-6.10968450, -0.00245295, 0.00146665, 7.10723155, 0.99239787, 0.99608040, 0.48780488,\
+-	-6.11023289, -0.00245123, 0.00146575, 7.10778166, 0.99240353, 0.99608302, 0.48782127,\
+-	-6.11077953, -0.00244952, 0.00146484, 7.10833001, 0.99240917, 0.99608564, 0.48783760,\
+-	-6.11132441, -0.00244781, 0.00146393, 7.10887660, 0.99241480, 0.99608825, 0.48785388,\
+-	-6.11186754, -0.00244610, 0.00146303, 7.10942144, 0.99242043, 0.99609087, 0.48787012,\
+-	-6.11240893, -0.00244439, 0.00146213, 7.10996454, 0.99242605, 0.99609348, 0.48788630,\
+-	-6.11294858, -0.00244269, 0.00146122, 7.11050589, 0.99243167, 0.99609609, 0.48790243,\
+-	-6.11348649, -0.00244098, 0.00146032, 7.11104551, 0.99243728, 0.99609869, 0.48791852,\
+-	-6.11402268, -0.00243928, 0.00145942, 7.11158340, 0.99244288, 0.99610130, 0.48793455,\
+-	-6.11455714, -0.00243758, 0.00145852, 7.11211956, 0.99244847, 0.99610390, 0.48795053,\
+-	-6.11508989, -0.00243588, 0.00145762, 7.11265400, 0.99245405, 0.99610650, 0.48796647,\
+-	-6.11562092, -0.00243419, 0.00145672, 7.11318673, 0.99245963, 0.99610909, 0.48798236,\
+-	-6.11615024, -0.00243249, 0.00145582, 7.11371775, 0.99246520, 0.99611169, 0.48799820,\
+-	-6.11667786, -0.00243080, 0.00145492, 7.11424706, 0.99247077, 0.99611428, 0.48801399,\
+-	-6.11720378, -0.00242911, 0.00145402, 7.11477467, 0.99247632, 0.99611687, 0.48802973,\
+-	-6.11772800, -0.00242742, 0.00145312, 7.11530058, 0.99248187, 0.99611945, 0.48804543,\
+-	-6.11825054, -0.00242574, 0.00145223, 7.11582481, 0.99248741, 0.99612204, 0.48806107,\
+-	-6.11877140, -0.00242405, 0.00145133, 7.11634735, 0.99249295, 0.99612462, 0.48807667,\
+-	-6.11929057, -0.00242237, 0.00145043, 7.11686820, 0.99249847, 0.99612720, 0.48809222,\
+-	-6.11980807, -0.00242069, 0.00144954, 7.11738739, 0.99250400, 0.99612978, 0.48810772,\
+-	-6.12032390, -0.00241901, 0.00144864, 7.11790490, 0.99250951, 0.99613235, 0.48812317,\
+-	-6.12083807, -0.00241733, 0.00144775, 7.11842074, 0.99251501, 0.99613492, 0.48813858,\
+-	-6.12135058, -0.00241565, 0.00144686, 7.11893493, 0.99252051, 0.99613749, 0.48815394,\
+-	-6.12186144, -0.00241398, 0.00144597, 7.11944746, 0.99252601, 0.99614006, 0.48816925,\
+-	-6.12237064, -0.00241231, 0.00144507, 7.11995834, 0.99253149, 0.99614262, 0.48818451,\
+-	-6.12287820, -0.00241064, 0.00144418, 7.12046757, 0.99253697, 0.99614518, 0.48819973,\
+-	-6.12338412, -0.00240897, 0.00144329, 7.12097516, 0.99254244, 0.99614774, 0.48821490,\
+-	-6.12388841, -0.00240730, 0.00144240, 7.12148111, 0.99254790, 0.99615030, 0.48823002,\
+-	-6.12439107, -0.00240563, 0.00144151, 7.12198543, 0.99255336, 0.99615285, 0.48824510,\
+-	-6.12489210, -0.00240397, 0.00144062, 7.12248813, 0.99255881, 0.99615540, 0.48826013,\
+-	-6.12539151, -0.00240231, 0.00143974, 7.12298920, 0.99256425, 0.99615795, 0.48827512,\
+-	-6.12588931, -0.00240065, 0.00143885, 7.12348866, 0.99256969, 0.99616050, 0.48829005,\
+-	-6.12638549, -0.00239899, 0.00143796, 7.12398650, 0.99257512, 0.99616304, 0.48830495,\
+-	-6.12688007, -0.00239734, 0.00143708, 7.12448273, 0.99258054, 0.99616559, 0.48831979,\
+-	-6.12737305, -0.00239568, 0.00143619, 7.12497736, 0.99258596, 0.99616813, 0.48833460,\
+-	-6.12786443, -0.00239403, 0.00143531, 7.12547040, 0.99259136, 0.99617066, 0.48834935,\
+-	-6.12835422, -0.00239238, 0.00143442, 7.12596184, 0.99259676, 0.99617320, 0.48836406,\
+-	-6.12884242, -0.00239073, 0.00143354, 7.12645169, 0.99260216, 0.99617573, 0.48837872,\
+-	-6.12932904, -0.00238908, 0.00143266, 7.12693996, 0.99260755, 0.99617826, 0.48839334,\
+-	-6.12981408, -0.00238744, 0.00143177, 7.12742664, 0.99261293, 0.99618079, 0.48840792,\
+-	-6.13029755, -0.00238580, 0.00143089, 7.12791176, 0.99261830, 0.99618331, 0.48842244,\
+-	-6.13077945, -0.00238416, 0.00143001, 7.12839530, 0.99262367, 0.99618583, 0.48843693,\
+-	-6.13125979, -0.00238252, 0.00142913, 7.12887728, 0.99262903, 0.99618835, 0.48845136,\
+-	-6.13173857, -0.00238088, 0.00142825, 7.12935769, 0.99263438, 0.99619087, 0.48846576,\
+-	-6.13221579, -0.00237924, 0.00142737, 7.12983655, 0.99263972, 0.99619339, 0.48848011,\
+-	-6.13269147, -0.00237761, 0.00142649, 7.13031386, 0.99264506, 0.99619590, 0.48849441,\
+-	-6.13316560, -0.00237598, 0.00142562, 7.13078962, 0.99265040, 0.99619841, 0.48850867,\
+-	-6.13363819, -0.00237434, 0.00142474, 7.13126384, 0.99265572, 0.99620092, 0.48852289,\
+-	-6.13410924, -0.00237272, 0.00142386, 7.13173652, 0.99266104, 0.99620342, 0.48853706,\
+-	-6.13457876, -0.00237109, 0.00142299, 7.13220767, 0.99266635, 0.99620593, 0.48855119,\
+-	-6.13504676, -0.00236946, 0.00142211, 7.13267729, 0.99267166, 0.99620843, 0.48856528,\
+-	-6.13551323, -0.00236784, 0.00142124, 7.13314539, 0.99267696, 0.99621092, 0.48857932,\
+-	-6.13597818, -0.00236622, 0.00142036, 7.13361197, 0.99268225, 0.99621342, 0.48859332,\
+-	-6.13644163, -0.00236460, 0.00141949, 7.13407703, 0.99268753, 0.99621591, 0.48860727,\
+-	-6.13690356, -0.00236298, 0.00141862, 7.13454058, 0.99269281, 0.99621840, 0.48862118,\
+-	-6.13736399, -0.00236136, 0.00141774, 7.13500263, 0.99269808, 0.99622089, 0.48863505,\
+-	-6.13782292, -0.00235975, 0.00141687, 7.13546317, 0.99270335, 0.99622338, 0.48864888,\
+-	-6.13828035, -0.00235814, 0.00141600, 7.13592222, 0.99270861, 0.99622586, 0.48866266,\
+-	-6.13873630, -0.00235652, 0.00141513, 7.13637977, 0.99271386, 0.99622834, 0.48867640,\
+-	-6.13919076, -0.00235492, 0.00141426, 7.13683584, 0.99271910, 0.99623082, 0.48869010,\
+-	-6.13964373, -0.00235331, 0.00141339, 7.13729042, 0.99272434, 0.99623330, 0.48870375,\
+-	-6.14009523, -0.00235170, 0.00141253, 7.13774353, 0.99272957, 0.99623577, 0.48871736,\
+-	-6.14054526, -0.00235010, 0.00141166, 7.13819516, 0.99273480, 0.99623824, 0.48873093,\
+-	-6.14099381, -0.00234850, 0.00141079, 7.13864532, 0.99274001, 0.99624071, 0.48874446,\
+-	-6.14144091, -0.00234689, 0.00140993, 7.13909401, 0.99274523, 0.99624318, 0.48875794,\
+-	-6.14188654, -0.00234530, 0.00140906, 7.13954125, 0.99275043, 0.99624564, 0.48877139,\
+-	-6.14233072, -0.00234370, 0.00140820, 7.13998702, 0.99275563, 0.99624811, 0.48878479,\
+-	-6.14277345, -0.00234210, 0.00140733, 7.14043134, 0.99276082, 0.99625057, 0.48879815,\
+-	-6.14321473, -0.00234051, 0.00140647, 7.14087422, 0.99276601, 0.99625302, 0.48881147,\
+-	-6.14365457, -0.00233892, 0.00140561, 7.14131565, 0.99277118, 0.99625548, 0.48882475,\
+-	-6.14409297, -0.00233733, 0.00140474, 7.14175564, 0.99277636, 0.99625793, 0.48883798,\
+-	-6.14452994, -0.00233574, 0.00140388, 7.14219420, 0.99278152, 0.99626038, 0.48885118,\
+-	-6.14496548, -0.00233415, 0.00140302, 7.14263132, 0.99278668, 0.99626283, 0.48886433,\
+-	-6.14539959, -0.00233257, 0.00140216, 7.14306702, 0.99279183, 0.99626527, 0.48887745,\
+-	-6.14583228, -0.00233098, 0.00140130, 7.14350130, 0.99279698, 0.99626772, 0.48889052,\
+-	-6.14626356, -0.00232940, 0.00140044, 7.14393416, 0.99280212, 0.99627016, 0.48890355,\
+-	-6.14669342, -0.00232782, 0.00139958, 7.14436560, 0.99280725, 0.99627259, 0.48891654,\
+-	-6.14712188, -0.00232625, 0.00139873, 7.14479564, 0.99281238, 0.99627503, 0.48892949,\
+-	-6.14754894, -0.00232467, 0.00139787, 7.14522427, 0.99281750, 0.99627746, 0.48894240,\
+-	-6.14797459, -0.00232309, 0.00139701, 7.14565150, 0.99282261, 0.99627989, 0.48895527,\
+-	-6.14839885, -0.00232152, 0.00139616, 7.14607733, 0.99282772, 0.99628232, 0.48896810,\
+-	-6.14882172, -0.00231995, 0.00139530, 7.14650177, 0.99283282, 0.99628475, 0.48898089,\
+-	-6.14924320, -0.00231838, 0.00139445, 7.14692482, 0.99283791, 0.99628717, 0.48899364,\
+-	-6.14966330, -0.00231681, 0.00139359, 7.14734649, 0.99284300, 0.99628959, 0.48900634,\
+-	-6.15008202, -0.00231525, 0.00139274, 7.14776677, 0.99284808, 0.99629201, 0.48901902,\
+-	-6.15049937, -0.00231368, 0.00139189, 7.14818569, 0.99285316, 0.99629443, 0.48903165,\
+-	-6.15091535, -0.00231212, 0.00139104, 7.14860323, 0.99285823, 0.99629684, 0.48904424,\
+-	-6.15132996, -0.00231056, 0.00139018, 7.14901940, 0.99286329, 0.99629926, 0.48905679,\
+-	-6.15174321, -0.00230900, 0.00138933, 7.14943421, 0.99286834, 0.99630166, 0.48906930,\
+-	-6.15215510, -0.00230744, 0.00138848, 7.14984766, 0.99287339, 0.99630407, 0.48908178,\
+-	-6.15256564, -0.00230589, 0.00138763, 7.15025975, 0.99287844, 0.99630648, 0.48909421,\
+-	-6.15297483, -0.00230433, 0.00138679, 7.15067050, 0.99288347, 0.99630888, 0.48910661,\
+-	-6.15338268, -0.00230278, 0.00138594, 7.15107989, 0.99288850, 0.99631128, 0.48911897,\
+-	-6.15378918, -0.00230123, 0.00138509, 7.15148795, 0.99289353, 0.99631368, 0.48913128,\
+-	-6.15419435, -0.00229968, 0.00138424, 7.15189467, 0.99289855, 0.99631607, 0.48914356,\
+-	-6.15459818, -0.00229814, 0.00138340, 7.15230005, 0.99290356, 0.99631847, 0.48915581,\
+-	-6.15500069, -0.00229659, 0.00138255, 7.15270410, 0.99290856, 0.99632086, 0.48916801,\
+-	-6.15540187, -0.00229505, 0.00138171, 7.15310682, 0.99291356, 0.99632324, 0.48918017,\
+-	-6.15580173, -0.00229350, 0.00138087, 7.15350822, 0.99291855, 0.99632563, 0.48919230,\
+-	-6.15620027, -0.00229196, 0.00138002, 7.15390831, 0.99292354, 0.99632801, 0.48920439,\
+-	-6.15659750, -0.00229042, 0.00137918, 7.15430708, 0.99292852, 0.99633040, 0.48921644,\
+-	-6.15699342, -0.00228889, 0.00137834, 7.15470454, 0.99293349, 0.99633278, 0.48922846,\
+-	-6.15738804, -0.00228735, 0.00137750, 7.15510069, 0.99293846, 0.99633515, 0.48924043,\
+-	-6.15778136, -0.00228582, 0.00137666, 7.15549554, 0.99294342, 0.99633753, 0.48925237,\
+-	-6.15817338, -0.00228429, 0.00137582, 7.15588909, 0.99294838, 0.99633990, 0.48926427,\
+-	-6.15856410, -0.00228276, 0.00137498, 7.15628135, 0.99295333, 0.99634227, 0.48927613,\
+-	-6.15895354, -0.00228123, 0.00137414, 7.15667231, 0.99295827, 0.99634464, 0.48928796,\
+-	-6.15934170, -0.00227970, 0.00137330, 7.15706199, 0.99296321, 0.99634700, 0.48929975,\
+-	-6.15972857, -0.00227818, 0.00137246, 7.15745039, 0.99296814, 0.99634936, 0.48931151,\
+-	-6.16011416, -0.00227665, 0.00137162, 7.15783751, 0.99297306, 0.99635172, 0.48932322,\
+-	-6.16049848, -0.00227513, 0.00137079, 7.15822335, 0.99297798, 0.99635408, 0.48933490,\
+-	-6.16088154, -0.00227361, 0.00136995, 7.15860793, 0.99298289, 0.99635644, 0.48934654,\
+-	-6.16126332, -0.00227209, 0.00136912, 7.15899123, 0.99298780, 0.99635879, 0.48935815,\
+-	-6.16164385, -0.00227057, 0.00136828, 7.15937328, 0.99299270, 0.99636114, 0.48936972,\
+-	-6.16202312, -0.00226906, 0.00136745, 7.15975406, 0.99299759, 0.99636349, 0.48938125,\
+-	-6.16240113, -0.00226754, 0.00136662, 7.16013359, 0.99300248, 0.99636584, 0.48939275,\
+-	-6.16277790, -0.00226603, 0.00136579, 7.16051186, 0.99300736, 0.99636818, 0.48940421,\
+-	-6.16315341, -0.00226452, 0.00136495, 7.16088889, 0.99301224, 0.99637052, 0.48941563,\
+-	-6.16352769, -0.00226301, 0.00136412, 7.16126468, 0.99301711, 0.99637286, 0.48942702,\
+-	-6.16390073, -0.00226151, 0.00136329, 7.16163922, 0.99302197, 0.99637520, 0.48943837,\
+-	-6.16427253, -0.00226000, 0.00136246, 7.16201253, 0.99302683, 0.99637753, 0.48944969,\
+-	-6.16464310, -0.00225850, 0.00136164, 7.16238461, 0.99303168, 0.99637987, 0.48946098,\
+-	-6.16501245, -0.00225700, 0.00136081, 7.16275545, 0.99303653, 0.99638220, 0.48947222,\
+-	-6.16538057, -0.00225549, 0.00135998, 7.16312507, 0.99304136, 0.99638453, 0.48948343,\
+-	-6.16574747, -0.00225400, 0.00135915, 7.16349348, 0.99304620, 0.99638685, 0.48949461,\
+-	-6.16611316, -0.00225250, 0.00135833, 7.16386066, 0.99305103, 0.99638918, 0.48950575,\
+-	-6.16647763, -0.00225100, 0.00135750, 7.16422663, 0.99305585, 0.99639150, 0.48951685,\
+-	-6.16684090, -0.00224951, 0.00135668, 7.16459139, 0.99306066, 0.99639382, 0.48952792,\
+-	-6.16720296, -0.00224802, 0.00135585, 7.16495494, 0.99306547, 0.99639613, 0.48953896,\
+-	-6.16756382, -0.00224653, 0.00135503, 7.16531729, 0.99307027, 0.99639845, 0.48954996,\
+-	-6.16792348, -0.00224504, 0.00135421, 7.16567845, 0.99307507, 0.99640076, 0.48956093,\
+-	-6.16828195, -0.00224355, 0.00135338, 7.16603840, 0.99307986, 0.99640307, 0.48957186,\
+-	-6.16863923, -0.00224206, 0.00135256, 7.16639717, 0.99308465, 0.99640538, 0.48958276,\
+-	-6.16899533, -0.00224058, 0.00135174, 7.16675475, 0.99308943, 0.99640768, 0.48959363,\
+-	-6.16935024, -0.00223910, 0.00135092, 7.16711114, 0.99309420, 0.99640998, 0.48960445,\
+-	-6.16970397, -0.00223762, 0.00135010, 7.16746636, 0.99309897, 0.99641228, 0.48961525,\
+-	-6.17005653, -0.00223614, 0.00134928, 7.16782039, 0.99310373, 0.99641458, 0.48962601,\
+-	-6.17040791, -0.00223466, 0.00134846, 7.16817326, 0.99310849, 0.99641688, 0.48963673,\
+-	-6.17075813, -0.00223318, 0.00134765, 7.16852495, 0.99311324, 0.99641917, 0.48964743,\
+-	-6.17110719, -0.00223171, 0.00134683, 7.16887548, 0.99311798, 0.99642146, 0.48965809,\
+-	-6.17145508, -0.00223024, 0.00134601, 7.16922484, 0.99312272, 0.99642375, 0.48966871,\
+-	-6.17180182, -0.00222876, 0.00134520, 7.16957305, 0.99312745, 0.99642604, 0.48967931,\
+-	-6.17214740, -0.00222729, 0.00134438, 7.16992010, 0.99313218, 0.99642832, 0.48968987,\
+-	-6.17249183, -0.00222583, 0.00134357, 7.17026601, 0.99313690, 0.99643061, 0.48970039,\
+-	-6.17283512, -0.00222436, 0.00134275, 7.17061076, 0.99314162, 0.99643289, 0.48971088,\
+-	-6.17317726, -0.00222289, 0.00134194, 7.17095437, 0.99314633, 0.99643517, 0.48972134,\
+-	-6.17351827, -0.00222143, 0.00134113, 7.17129683, 0.99315103, 0.99643744, 0.48973177,\
+-	-6.17385813, -0.00221997, 0.00134032, 7.17163816, 0.99315573, 0.99643971, 0.48974217,\
+-	-6.17419687, -0.00221851, 0.00133950, 7.17197836, 0.99316042, 0.99644199, 0.48975252,\
+-	-6.17453448, -0.00221705, 0.00133869, 7.17231743, 0.99316511, 0.99644425, 0.48976285,\
+-	-6.17487096, -0.00221559, 0.00133788, 7.17265537, 0.99316979, 0.99644652, 0.48977314,\
+-	-6.17520632, -0.00221414, 0.00133708, 7.17299218, 0.99317446, 0.99644879, 0.48978341,\
+-	-6.17554056, -0.00221269, 0.00133627, 7.17332788, 0.99317913, 0.99645105, 0.48979364,\
+-	-6.17587369, -0.00221123, 0.00133546, 7.17366246, 0.99318379, 0.99645331, 0.48980384,\
+-	-6.17620571, -0.00220978, 0.00133465, 7.17399593, 0.99318845, 0.99645557, 0.48981400,\
+-	-6.17653662, -0.00220833, 0.00133385, 7.17432829, 0.99319310, 0.99645782, 0.48982414,\
+-	-6.17686642, -0.00220689, 0.00133304, 7.17465954, 0.99319775, 0.99646007, 0.48983424,\
+-	-6.17719513, -0.00220544, 0.00133223, 7.17498969, 0.99320239, 0.99646233, 0.48984431,\
+-	-6.17752273, -0.00220400, 0.00133143, 7.17531874, 0.99320702, 0.99646457, 0.48985434,\
+-	-6.17784925, -0.00220255, 0.00133063, 7.17564669, 0.99321165, 0.99646682, 0.48986435,\
+-	-6.17817467, -0.00220111, 0.00132982, 7.17597356, 0.99321628, 0.99646906, 0.48987432,\
+-	-6.17849900, -0.00219967, 0.00132902, 7.17629933, 0.99322089, 0.99647131, 0.48988427,\
+-	-6.17882225, -0.00219823, 0.00132822, 7.17662402, 0.99322551, 0.99647355, 0.48989418,\
+-	-6.17914442, -0.00219680, 0.00132742, 7.17694762, 0.99323011, 0.99647578, 0.48990406,\
+-	-6.17946552, -0.00219536, 0.00132662, 7.17727015, 0.99323471, 0.99647802, 0.48991391,\
+-	-6.17978554, -0.00219393, 0.00132582, 7.17759161, 0.99323931, 0.99648025, 0.48992373,\
+-	-6.18010448, -0.00219250, 0.00132502, 7.17791199, 0.99324390, 0.99648248, 0.48993351,\
+-	-6.18042237, -0.00219107, 0.00132422, 7.17823130, 0.99324848, 0.99648471, 0.48994327,\
+-	-6.18073919, -0.00218964, 0.00132342, 7.17854955, 0.99325306, 0.99648694, 0.48995299,\
+-	-6.18105494, -0.00218821, 0.00132262, 7.17886673, 0.99325763, 0.99648916, 0.48996269,\
+-	-6.18136964, -0.00218679, 0.00132183, 7.17918286, 0.99326220, 0.99649139, 0.48997235,\
+-	-6.18168329, -0.00218536, 0.00132103, 7.17949793, 0.99326676, 0.99649361, 0.48998198,\
+-	-6.18199589, -0.00218394, 0.00132024, 7.17981195, 0.99327132, 0.99649582, 0.48999158,\
+-	-6.18230744, -0.00218252, 0.00131944, 7.18012492, 0.99327587, 0.99649804, 0.49000115,\
+-	-6.18261795, -0.00218110, 0.00131865, 7.18043684, 0.99328041, 0.99650025, 0.49001070,\
+-	-6.18292741, -0.00217968, 0.00131785, 7.18074773, 0.99328495, 0.99650246, 0.49002020,\
+-	-6.18323584, -0.00217827, 0.00131706, 7.18105757, 0.99328949, 0.99650467, 0.49002969,\
+-	-6.18354323, -0.00217685, 0.00131627, 7.18136638, 0.99329401, 0.99650688, 0.49003913,\
+-	-6.18384960, -0.00217544, 0.00131548, 7.18167416, 0.99329854, 0.99650908, 0.49004855,\
+-	-6.18415493, -0.00217403, 0.00131469, 7.18198091, 0.99330305, 0.99651129, 0.49005794,\
+-	-6.18445924, -0.00217262, 0.00131390, 7.18228663, 0.99330757, 0.99651349, 0.49006730,\
+-	-6.18476253, -0.00217121, 0.00131311, 7.18259133, 0.99331207, 0.99651568, 0.49007664,\
+-	-6.18506481, -0.00216980, 0.00131232, 7.18289501, 0.99331657, 0.99651788, 0.49008594,\
+-	-6.18536606, -0.00216840, 0.00131153, 7.18319767, 0.99332107, 0.99652007, 0.49009521,\
+-	-6.18566631, -0.00216699, 0.00131074, 7.18349932, 0.99332556, 0.99652226, 0.49010445,\
+-	-6.18596555, -0.00216559, 0.00130996, 7.18379996, 0.99333004, 0.99652445, 0.49011367,\
+-	-6.18626378, -0.00216419, 0.00130917, 7.18409959, 0.99333452, 0.99652664, 0.49012285,\
+-	-6.18656101, -0.00216279, 0.00130839, 7.18439822, 0.99333900, 0.99652882, 0.49013200,\
+-	-6.18685724, -0.00216139, 0.00130760, 7.18469585, 0.99334346, 0.99653101, 0.49014113,\
+-	-6.18715248, -0.00216000, 0.00130682, 7.18499249, 0.99334793, 0.99653319, 0.49015022,\
+-	-6.18744673, -0.00215860, 0.00130603, 7.18528812, 0.99335238, 0.99653537, 0.49015929,\
+-	-6.18773998, -0.00215721, 0.00130525, 7.18558277, 0.99335684, 0.99653754, 0.49016833,\
+-	-6.18803225, -0.00215582, 0.00130447, 7.18587643, 0.99336128, 0.99653972, 0.49017734,\
+-	-6.18832353, -0.00215443, 0.00130369, 7.18616911, 0.99336572, 0.99654189, 0.49018632,\
+-	-6.18861384, -0.00215304, 0.00130291, 7.18646080, 0.99337016, 0.99654406, 0.49019527,\
+-	-6.18890316, -0.00215165, 0.00130213, 7.18675152, 0.99337459, 0.99654622, 0.49020420,\
+-	-6.18919152, -0.00215026, 0.00130135, 7.18704125, 0.99337901, 0.99654839, 0.49021309,\
+-	-6.18947890, -0.00214888, 0.00130057, 7.18733002, 0.99338343, 0.99655055, 0.49022196,\
+-	-6.18976532, -0.00214750, 0.00129979, 7.18761782, 0.99338785, 0.99655271, 0.49023080,\
+-	-6.19005077, -0.00214612, 0.00129901, 7.18790465, 0.99339226, 0.99655487, 0.49023961,\
+-	-6.19033526, -0.00214474, 0.00129823, 7.18819052, 0.99339666, 0.99655703, 0.49024839,\
+-	-6.19061879, -0.00214336, 0.00129746, 7.18847543, 0.99340106, 0.99655918, 0.49025714,\
+-	-6.19090136, -0.00214198, 0.00129668, 7.18875938, 0.99340545, 0.99656134, 0.49026588,\
+-	-6.19118298, -0.00214061, 0.00129591, 7.18904238, 0.99340984, 0.99656349, 0.49027457,\
+-	-6.19146366, -0.00213923, 0.00129513, 7.18932442, 0.99341422, 0.99656563, 0.49028324,\
+-	-6.19174338, -0.00213786, 0.00129436, 7.18960552, 0.99341860, 0.99656778, 0.49029189,\
+-	-6.19202217, -0.00213649, 0.00129359, 7.18988568, 0.99342297, 0.99656992, 0.49030051,\
+-	-6.19230001, -0.00213512, 0.00129281, 7.19016489, 0.99342734, 0.99657207, 0.49030909,\
+-	-6.19257691, -0.00213375, 0.00129204, 7.19044316, 0.99343170, 0.99657421, 0.49031766,\
+-	-6.19285288, -0.00213239, 0.00129127, 7.19072050, 0.99343606, 0.99657634, 0.49032619,\
+-	-6.19312792, -0.00213102, 0.00129050, 7.19099690, 0.99344041, 0.99657848, 0.49033470,\
+-	-6.19340203, -0.00212966, 0.00128973, 7.19127237, 0.99344475, 0.99658061, 0.49034317,\
+-	-6.19367521, -0.00212830, 0.00128896, 7.19154692, 0.99344909, 0.99658274, 0.49035163,\
+-	-6.19394748, -0.00212694, 0.00128819, 7.19182054, 0.99345343, 0.99658487, 0.49036006,\
+-	-6.19421882, -0.00212558, 0.00128743, 7.19209324, 0.99345776, 0.99658700, 0.49036845,\
+-	-6.19448924, -0.00212422, 0.00128666, 7.19236502, 0.99346208, 0.99658912, 0.49037683,\
+-	-6.19475875, -0.00212286, 0.00128589, 7.19263589, 0.99346640, 0.99659124, 0.49038517,\
+-	-6.19502735, -0.00212151, 0.00128513, 7.19290584, 0.99347072, 0.99659336, 0.49039349,\
+-	-6.19529504, -0.00212016, 0.00128436, 7.19317489, 0.99347503, 0.99659548, 0.49040178,\
+-	-6.19556183, -0.00211880, 0.00128360, 7.19344302, 0.99347933, 0.99659760, 0.49041005,\
+-	-6.19582771, -0.00211745, 0.00128283, 7.19371026, 0.99348363, 0.99659971, 0.49041829,\
+-	-6.19609270, -0.00211611, 0.00128207, 7.19397659, 0.99348792, 0.99660182, 0.49042650,\
+-	-6.19635678, -0.00211476, 0.00128131, 7.19424203, 0.99349221, 0.99660393, 0.49043469,\
+-	-6.19661998, -0.00211341, 0.00128054, 7.19450656, 0.99349650, 0.99660604, 0.49044285,\
+-	-6.19688228, -0.00211207, 0.00127978, 7.19477021, 0.99350077, 0.99660815, 0.49045099,\
+-	-6.19714369, -0.00211073, 0.00127902, 7.19503297, 0.99350505, 0.99661025, 0.49045909,\
+-	-6.19740422, -0.00210938, 0.00127826, 7.19529484, 0.99350932, 0.99661235, 0.49046717,\
+-	-6.19766387, -0.00210804, 0.00127750, 7.19555583, 0.99351358, 0.99661445, 0.49047523,\
+-	-6.19792264, -0.00210671, 0.00127674, 7.19581593, 0.99351784, 0.99661655, 0.49048326,\
+-	-6.19818053, -0.00210537, 0.00127599, 7.19607516, 0.99352209, 0.99661864, 0.49049127,\
+-	-6.19843754, -0.00210403, 0.00127523, 7.19633351, 0.99352634, 0.99662074, 0.49049925,\
+-	-6.19869369, -0.00210270, 0.00127447, 7.19659099, 0.99353058, 0.99662283, 0.49050720,\
+-	-6.19894896, -0.00210137, 0.00127372, 7.19684760, 0.99353482, 0.99662492, 0.49051513,\
+-	-6.19920337, -0.00210004, 0.00127296, 7.19710334, 0.99353905, 0.99662700, 0.49052303,\
+-	-6.19945692, -0.00209871, 0.00127221, 7.19735822, 0.99354328, 0.99662909, 0.49053091,\
+-	-6.19970961, -0.00209738, 0.00127145, 7.19761223, 0.99354750, 0.99663117, 0.49053876,\
+-	-6.19996144, -0.00209605, 0.00127070, 7.19786539, 0.99355172, 0.99663325, 0.49054659,\
+-	-6.20021242, -0.00209473, 0.00126995, 7.19811769, 0.99355593, 0.99663533, 0.49055439,\
+-	-6.20046254, -0.00209340, 0.00126919, 7.19836914, 0.99356014, 0.99663741, 0.49056217,\
+-	-6.20071181, -0.00209208, 0.00126844, 7.19861973, 0.99356434, 0.99663948, 0.49056992,\
+-	-6.20096024, -0.00209076, 0.00126769, 7.19886948, 0.99356854, 0.99664155, 0.49057765,\
+-	-6.20120782, -0.00208944, 0.00126694, 7.19911839, 0.99357273, 0.99664362, 0.49058536,\
+-	-6.20145457, -0.00208812, 0.00126619, 7.19936645, 0.99357692, 0.99664569, 0.49059304,\
+-	-6.20170047, -0.00208680, 0.00126544, 7.19961367, 0.99358110, 0.99664776, 0.49060069,\
+-	-6.20194554, -0.00208549, 0.00126469, 7.19986005, 0.99358528, 0.99664982, 0.49060832,\
+-	-6.20218978, -0.00208417, 0.00126395, 7.20010560, 0.99358945, 0.99665188, 0.49061593,\
+-	-6.20243318, -0.00208286, 0.00126320, 7.20035032, 0.99359362, 0.99665394, 0.49062351,\
+-	-6.20267576, -0.00208155, 0.00126245, 7.20059421, 0.99359778, 0.99665600, 0.49063106,\
+-	-6.20291751, -0.00208024, 0.00126171, 7.20083727, 0.99360194, 0.99665805, 0.49063859,\
+-	-6.20315844, -0.00207893, 0.00126096, 7.20107951, 0.99360609, 0.99666011, 0.49064611,\
+-	-6.20339855, -0.00207762, 0.00126022, 7.20132093, 0.99361024, 0.99666216, 0.49065358,\
+-	-6.20363785, -0.00207632, 0.00125947, 7.20156153, 0.99361438, 0.99666421, 0.49066104,\
+-	-6.20387633, -0.00207501, 0.00125873, 7.20180131, 0.99361852, 0.99666626, 0.49066848,\
+-	-6.20411399, -0.00207371, 0.00125799, 7.20204028, 0.99362265, 0.99666830, 0.49067589,\
+-	-6.20435085, -0.00207241, 0.00125725, 7.20227844, 0.99362678, 0.99667034, 0.49068328,\
+-	-6.20458690, -0.00207111, 0.00125650, 7.20251579, 0.99363090, 0.99667238, 0.49069064,\
+-	-6.20482215, -0.00206981, 0.00125576, 7.20275234, 0.99363502, 0.99667442, 0.49069799,\
+-	-6.20505660, -0.00206852, 0.00125502, 7.20298808, 0.99363914, 0.99667646, 0.49070530,\
+-	-6.20529024, -0.00206722, 0.00125428, 7.20322302, 0.99364325, 0.99667850, 0.49071260,\
+-	-6.20552310, -0.00206593, 0.00125355, 7.20345717, 0.99364735, 0.99668053, 0.49071987,\
+-	-6.20575515, -0.00206463, 0.00125281, 7.20369052, 0.99365145, 0.99668256, 0.49072711,\
+-	-6.20598642, -0.00206334, 0.00125207, 7.20392308, 0.99365554, 0.99668459, 0.49073434,\
+-	-6.20621690, -0.00206205, 0.00125133, 7.20415485, 0.99365963, 0.99668662, 0.49074154,\
+-	-6.20644659, -0.00206076, 0.00125060, 7.20438583, 0.99366372, 0.99668864, 0.49074872,\
+-	-6.20667550, -0.00205947, 0.00124986, 7.20461602, 0.99366780, 0.99669066, 0.49075587,\
+-	-6.20690362, -0.00205819, 0.00124913, 7.20484543, 0.99367187, 0.99669268, 0.49076300,\
+-	-6.20713097, -0.00205690, 0.00124839, 7.20507407, 0.99367594, 0.99669470, 0.49077011,\
+-	-6.20735754, -0.00205562, 0.00124766, 7.20530192, 0.99368001, 0.99669672, 0.49077720,\
+-	-6.20758334, -0.00205434, 0.00124693, 7.20552900, 0.99368407, 0.99669873, 0.49078426,\
+-	-6.20780837, -0.00205306, 0.00124619, 7.20575531, 0.99368812, 0.99670075, 0.49079130,\
+-	-6.20803263, -0.00205178, 0.00124546, 7.20598085, 0.99369217, 0.99670276, 0.49079832,\
+-	-6.20825612, -0.00205050, 0.00124473, 7.20620562, 0.99369622, 0.99670477, 0.49080531,\
+-	-6.20847885, -0.00204923, 0.00124400, 7.20642963, 0.99370026, 0.99670677, 0.49081228,\
+-	-6.20870082, -0.00204795, 0.00124327, 7.20665287, 0.99370430, 0.99670878, 0.49081924,\
+-	-6.20892203, -0.00204668, 0.00124254, 7.20687536, 0.99370833, 0.99671078, 0.49082617,\
+-	-6.20914249, -0.00204540, 0.00124181, 7.20709708, 0.99371236, 0.99671278, 0.49083307,\
+-	-6.20936219, -0.00204413, 0.00124109, 7.20731805, 0.99371638, 0.99671478, 0.49083996,\
+-	-6.20958114, -0.00204286, 0.00124036, 7.20753827, 0.99372040, 0.99671678, 0.49084681,\
+-	-6.20979934, -0.00204160, 0.00123963, 7.20775774, 0.99372441, 0.99671877, 0.49085365,\
+-	-6.21001679, -0.00204033, 0.00123891, 7.20797646, 0.99372842, 0.99672076, 0.49086047,\
+-	-6.21023350, -0.00203906, 0.00123818, 7.20819444, 0.99373242, 0.99672275, 0.49086727,\
+-	-6.21044947, -0.00203780, 0.00123746, 7.20841167, 0.99373642, 0.99672474, 0.49087404,\
+-	-6.21066470, -0.00203654, 0.00123673, 7.20862816, 0.99374042, 0.99672673, 0.49088079,\
+-	-6.21087920, -0.00203528, 0.00123601, 7.20884392, 0.99374441, 0.99672871, 0.49088752,\
+-	-6.21109295, -0.00203402, 0.00123529, 7.20905894, 0.99374839, 0.99673070, 0.49089423,\
+-	-6.21130598, -0.00203276, 0.00123456, 7.20927322, 0.99375237, 0.99673268, 0.49090092,\
+-	-6.21151828, -0.00203150, 0.00123384, 7.20948678, 0.99375635, 0.99673466, 0.49090759,\
+-	-6.21172985, -0.00203024, 0.00123312, 7.20969960, 0.99376032, 0.99673663, 0.49091423,\
+-	-6.21194069, -0.00202899, 0.00123240, 7.20991170, 0.99376428, 0.99673861, 0.49092085,\
+-	-6.21215082, -0.00202774, 0.00123168, 7.21012308, 0.99376825, 0.99674058, 0.49092745,\
+-	-6.21236022, -0.00202648, 0.00123096, 7.21033373, 0.99377220, 0.99674255, 0.49093403,\
+-	-6.21256890, -0.00202523, 0.00123025, 7.21054367, 0.99377616, 0.99674452, 0.49094059,\
+-	-6.21277687, -0.00202398, 0.00122953, 7.21075289, 0.99378010, 0.99674649, 0.49094712,\
+-	-6.21298413, -0.00202274, 0.00122881, 7.21096139, 0.99378405, 0.99674845, 0.49095364,\
+-	-6.21319067, -0.00202149, 0.00122809, 7.21116918, 0.99378798, 0.99675042, 0.49096013,\
+-	-6.21339651, -0.00202025, 0.00122738, 7.21137627, 0.99379192, 0.99675238, 0.49096661,\
+-	-6.21360164, -0.00201900, 0.00122666, 7.21158264, 0.99379585, 0.99675434, 0.49097306,\
+-	-6.21380607, -0.00201776, 0.00122595, 7.21178831, 0.99379977, 0.99675629, 0.49097950,\
+-	-6.21400979, -0.00201652, 0.00122523, 7.21199328, 0.99380369, 0.99675825, 0.49098591,\
+-	-6.21421282, -0.00201528, 0.00122452, 7.21219754, 0.99380761, 0.99676020, 0.49099230,\
+-	-6.21441515, -0.00201404, 0.00122381, 7.21240111, 0.99381152, 0.99676215, 0.49099867,\
+-	-6.21461678, -0.00201280, 0.00122310, 7.21260398, 0.99381543, 0.99676410, 0.49100502,\
+-	-6.21481773, -0.00201157, 0.00122239, 7.21280616, 0.99381933, 0.99676605, 0.49101135,\
+-	-6.21501798, -0.00201033, 0.00122167, 7.21300765, 0.99382323, 0.99676799, 0.49101767,\
+-	-6.21521754, -0.00200910, 0.00122096, 7.21320844, 0.99382712, 0.99676994, 0.49102395,\
+-	-6.21541642, -0.00200787, 0.00122026, 7.21340855, 0.99383101, 0.99677188, 0.49103022,\
+-	-6.21561461, -0.00200664, 0.00121955, 7.21360798, 0.99383489, 0.99677382, 0.49103647,\
+-	-6.21581213, -0.00200541, 0.00121884, 7.21380672, 0.99383877, 0.99677575, 0.49104269,\
+-	-6.21600896, -0.00200418, 0.00121813, 7.21400478, 0.99384265, 0.99677769, 0.49104891,\
+-	-6.21620512, -0.00200295, 0.00121742, 7.21420217, 0.99384652, 0.99677962, 0.49105509,\
+-	-6.21640060, -0.00200173, 0.00121672, 7.21439887, 0.99385038, 0.99678156, 0.49106126,\
+-	-6.21659541, -0.00200050, 0.00121601, 7.21459491, 0.99385424, 0.99678349, 0.49106741,\
+-	-6.21678955, -0.00199928, 0.00121531, 7.21479027, 0.99385810, 0.99678541, 0.49107353,\
+-	-6.21698302, -0.00199806, 0.00121460, 7.21498497, 0.99386195, 0.99678734, 0.49107964,\
+-	-6.21717583, -0.00199684, 0.00121390, 7.21517899, 0.99386580, 0.99678926, 0.49108574,\
+-	-6.21736797, -0.00199562, 0.00121320, 7.21537235, 0.99386965, 0.99679119, 0.49109180,\
+-	-6.21755945, -0.00199440, 0.00121249, 7.21556505, 0.99387349, 0.99679311, 0.49109786,\
+-	-6.21775028, -0.00199319, 0.00121179, 7.21575709, 0.99387732, 0.99679502, 0.49110388,\
+-	-6.21794044, -0.00199197, 0.00121109, 7.21594847, 0.99388115, 0.99679694, 0.49110989,\
+-	-6.21812995, -0.00199076, 0.00121039, 7.21613919, 0.99388498, 0.99679885, 0.49111588,\
+-	-6.21831881, -0.00198955, 0.00120969, 7.21632926, 0.99388880, 0.99680077, 0.49112186,\
+-	-6.21850702, -0.00198833, 0.00120899, 7.21651868, 0.99389261, 0.99680268, 0.49112781,\
+-	-6.21869457, -0.00198712, 0.00120829, 7.21670745, 0.99389643, 0.99680459, 0.49113374,\
+-	-6.21888149, -0.00198592, 0.00120759, 7.21689557, 0.99390024, 0.99680649, 0.49113965,\
+-	-6.21906775, -0.00198471, 0.00120689, 7.21708304, 0.99390404, 0.99680840, 0.49114555,\
+-	-6.21925338, -0.00198350, 0.00120620, 7.21726987, 0.99390784, 0.99681030, 0.49115142,\
+-	-6.21943836, -0.00198230, 0.00120550, 7.21745606, 0.99391163, 0.99681220, 0.49115728,\
+-	-6.21962271, -0.00198110, 0.00120481, 7.21764161, 0.99391542, 0.99681410, 0.49116312,\
+-	-6.21980642, -0.00197989, 0.00120411, 7.21782653, 0.99391921, 0.99681600, 0.49116895,\
+-	-6.21998950, -0.00197869, 0.00120342, 7.21801081, 0.99392299, 0.99681789, 0.49117474,\
+-	-6.22017194, -0.00197749, 0.00120272, 7.21819445, 0.99392677, 0.99681979, 0.49118052,\
+-	-6.22035376, -0.00197630, 0.00120203, 7.21837746, 0.99393054, 0.99682168, 0.49118629,\
+-	-6.22053495, -0.00197510, 0.00120134, 7.21855985, 0.99393431, 0.99682357, 0.49119203,\
+-	-6.22071551, -0.00197390, 0.00120064, 7.21874161, 0.99393808, 0.99682545, 0.49119776,\
+-	-6.22089545, -0.00197271, 0.00119995, 7.21892274, 0.99394184, 0.99682734, 0.49120347,\
+-	-6.22107477, -0.00197152, 0.00119926, 7.21910325, 0.99394559, 0.99682922, 0.49120916,\
+-	-6.22125347, -0.00197032, 0.00119857, 7.21928314, 0.99394935, 0.99683111, 0.49121482,\
+-	-6.22143155, -0.00196913, 0.00119788, 7.21946242, 0.99395309, 0.99683299, 0.49122047,\
+-	-6.22160902, -0.00196794, 0.00119719, 7.21964107, 0.99395684, 0.99683486, 0.49122611,\
+-	-6.22178587, -0.00196676, 0.00119650, 7.21981911, 0.99396058, 0.99683674, 0.49123173,\
+-	-6.22196211, -0.00196557, 0.00119582, 7.21999654, 0.99396431, 0.99683861, 0.49123732,\
+-	-6.22213774, -0.00196438, 0.00119513, 7.22017336, 0.99396804, 0.99684049, 0.49124290,\
+-	-6.22231277, -0.00196320, 0.00119444, 7.22034957, 0.99397177, 0.99684236, 0.49124846,\
+-	-6.22248719, -0.00196202, 0.00119376, 7.22052517, 0.99397549, 0.99684423, 0.49125400,\
+-	-6.22266101, -0.00196083, 0.00119307, 7.22070017, 0.99397920, 0.99684609, 0.49125953,\
+-	-6.22283422, -0.00195965, 0.00119239, 7.22087457, 0.99398292, 0.99684796, 0.49126504,\
+-	-6.22300684, -0.00195848, 0.00119170, 7.22104836, 0.99398663, 0.99684982, 0.49127053,\
+-	-6.22317886, -0.00195730, 0.00119102, 7.22122156, 0.99399033, 0.99685168, 0.49127600,\
+-	-6.22335028, -0.00195612, 0.00119034, 7.22139416, 0.99399403, 0.99685354, 0.49128145,\
+-	-6.22352111, -0.00195495, 0.00118965, 7.22156617, 0.99399773, 0.99685540, 0.49128689,\
+-	-6.22369135, -0.00195377, 0.00118897, 7.22173758, 0.99400142, 0.99685726, 0.49129231,\
+-	-6.22386100, -0.00195260, 0.00118829, 7.22190841, 0.99400511, 0.99685911, 0.49129771,\
+-	-6.22403007, -0.00195143, 0.00118761, 7.22207864, 0.99400879, 0.99686096, 0.49130310,\
+-	-6.22419854, -0.00195026, 0.00118693, 7.22224829, 0.99401247, 0.99686281, 0.49130846,\
+-	-6.22436644, -0.00194909, 0.00118625, 7.22241735, 0.99401615, 0.99686466, 0.49131381,\
+-	-6.22453375, -0.00194792, 0.00118557, 7.22258583, 0.99401982, 0.99686651, 0.49131914,\
+-	-6.22470048, -0.00194675, 0.00118490, 7.22275373, 0.99402348, 0.99686835, 0.49132446,\
+-	-6.22486664, -0.00194559, 0.00118422, 7.22292105, 0.99402715, 0.99687019, 0.49132975,\
+-	-6.22503222, -0.00194442, 0.00118354, 7.22308780, 0.99403081, 0.99687204, 0.49133503,\
+-	-6.22519722, -0.00194326, 0.00118287, 7.22325396, 0.99403446, 0.99687387, 0.49134030,\
+-	-6.22536166, -0.00194210, 0.00118219, 7.22341956, 0.99403811, 0.99687571, 0.49134554,\
+-	-6.22552552, -0.00194094, 0.00118152, 7.22358458, 0.99404176, 0.99687755, 0.49135077,\
+-	-6.22568881, -0.00193978, 0.00118084, 7.22374904, 0.99404540, 0.99687938, 0.49135598,\
+-	-6.22585154, -0.00193862, 0.00118017, 7.22391292, 0.99404904, 0.99688121, 0.49136117,\
+-	-6.22601370, -0.00193746, 0.00117950, 7.22407624, 0.99405267, 0.99688304, 0.49136635,\
+-	-6.22617531, -0.00193631, 0.00117882, 7.22423900, 0.99405630, 0.99688487, 0.49137152,\
+-	-6.22633635, -0.00193515, 0.00117815, 7.22440119, 0.99405992, 0.99688670, 0.49137666,\
+-	-6.22649683, -0.00193400, 0.00117748, 7.22456283, 0.99406354, 0.99688852, 0.49138179,\
+-	-6.22665675, -0.00193285, 0.00117681, 7.22472390, 0.99406716, 0.99689034, 0.49138690,\
+-	-6.22681612, -0.00193170, 0.00117614, 7.22488442, 0.99407077, 0.99689216, 0.49139199,\
+-	-6.22697494, -0.00193055, 0.00117547, 7.22504439, 0.99407438, 0.99689398, 0.49139707,\
+-	-6.22713320, -0.00192940, 0.00117480, 7.22520380, 0.99407799, 0.99689580, 0.49140214,\
+-	-6.22729092, -0.00192825, 0.00117413, 7.22536266, 0.99408159, 0.99689762, 0.49140718,\
+-	-6.22744808, -0.00192711, 0.00117346, 7.22552098, 0.99408519, 0.99689943, 0.49141221,\
+-	-6.22760470, -0.00192596, 0.00117280, 7.22567874, 0.99408878, 0.99690124, 0.49141723,\
+-	-6.22776078, -0.00192482, 0.00117213, 7.22583596, 0.99409237, 0.99690305, 0.49142222,\
+-	-6.22791631, -0.00192368, 0.00117147, 7.22599264, 0.99409595, 0.99690486, 0.49142719,\
+-	-6.22807131, -0.00192253, 0.00117080, 7.22614877, 0.99409953, 0.99690667, 0.49143216,\
+-	-6.22822576, -0.00192139, 0.00117014, 7.22630437, 0.99410311, 0.99690847, 0.49143711,\
+-	-6.22837968, -0.00192026, 0.00116947, 7.22645942, 0.99410668, 0.99691027, 0.49144204,\
+-	-6.22853306, -0.00191912, 0.00116881, 7.22661394, 0.99411025, 0.99691207, 0.49144696,\
+-	-6.22868591, -0.00191798, 0.00116815, 7.22676793, 0.99411381, 0.99691387, 0.49145186,\
+-	-6.22883823, -0.00191685, 0.00116748, 7.22692138, 0.99411737, 0.99691567, 0.49145674,\
+-	-6.22899002, -0.00191571, 0.00116682, 7.22707430, 0.99412093, 0.99691747, 0.49146161,\
+-	-6.22914128, -0.00191458, 0.00116616, 7.22722670, 0.99412448, 0.99691926, 0.49146647,\
+-	-6.22929201, -0.00191345, 0.00116550, 7.22737856, 0.99412803, 0.99692105, 0.49147130,\
+-	-6.22944222, -0.00191232, 0.00116484, 7.22752990, 0.99413157, 0.99692284, 0.49147613,\
+-	-6.22959190, -0.00191119, 0.00116418, 7.22768071, 0.99413511, 0.99692463, 0.49148093,\
+-	-6.22974107, -0.00191006, 0.00116352, 7.22783101, 0.99413865, 0.99692642, 0.49148571,\
+-	-6.22988971, -0.00190893, 0.00116286, 7.22798078, 0.99414218, 0.99692820, 0.49149049,\
+-	-6.23003784, -0.00190781, 0.00116221, 7.22813003, 0.99414571, 0.99692998, 0.49149525,\
+-	-6.23018545, -0.00190669, 0.00116155, 7.22827877, 0.99414924, 0.99693176, 0.49149999,\
+-	-6.23033255, -0.00190556, 0.00116089, 7.22842699, 0.99415276, 0.99693354, 0.49150472,\
+-	-6.23047913, -0.00190444, 0.00116024, 7.22857469, 0.99415627, 0.99693532, 0.49150944,\
+-	-6.23062521, -0.00190332, 0.00115958, 7.22872189, 0.99415978, 0.99693710, 0.49151413,\
+-	-6.23077077, -0.00190220, 0.00115893, 7.22886857, 0.99416329, 0.99693887, 0.49151881,\
+-	-6.23091583, -0.00190108, 0.00115828, 7.22901475, 0.99416680, 0.99694064, 0.49152348,\
+-	-6.23106038, -0.00189996, 0.00115762, 7.22916042, 0.99417030, 0.99694241, 0.49152813,\
+-	-6.23120443, -0.00189885, 0.00115697, 7.22930558, 0.99417379, 0.99694418, 0.49153277,\
+-	-6.23134798, -0.00189773, 0.00115632, 7.22945024, 0.99417729, 0.99694595, 0.49153739,\
+-	-6.23149102, -0.00189662, 0.00115567, 7.22959440, 0.99418078, 0.99694772, 0.49154200,\
+-	-6.23163357, -0.00189551, 0.00115501, 7.22973806, 0.99418426, 0.99694948, 0.49154659,\
+-	-6.23177562, -0.00189439, 0.00115436, 7.22988122, 0.99418774, 0.99695124, 0.49155116,\
+-	-6.23191717, -0.00189328, 0.00115371, 7.23002389, 0.99419122, 0.99695300, 0.49155572,\
+-	-6.23205823, -0.00189218, 0.00115307, 7.23016606, 0.99419469, 0.99695476, 0.49156028,\
+-	-6.23219880, -0.00189107, 0.00115242, 7.23030773, 0.99419816, 0.99695652, 0.49156481,\
+-	-6.23233888, -0.00188996, 0.00115177, 7.23044891, 0.99420163, 0.99695827, 0.49156932,\
+-	-6.23247846, -0.00188886, 0.00115112, 7.23058961, 0.99420509, 0.99696002, 0.49157383,\
+-	-6.23261756, -0.00188775, 0.00115047, 7.23072981, 0.99420855, 0.99696177, 0.49157832,\
+-	-6.23275618, -0.00188665, 0.00114983, 7.23086953, 0.99421200, 0.99696352, 0.49158279,\
+-	-6.23289431, -0.00188555, 0.00114918, 7.23100876, 0.99421545, 0.99696527, 0.49158725,\
+-	-6.23303196, -0.00188444, 0.00114854, 7.23114751, 0.99421890, 0.99696702, 0.49159170,\
+-	-6.23316912, -0.00188334, 0.00114789, 7.23128578, 0.99422234, 0.99696876, 0.49159612,\
+-	-6.23330581, -0.00188225, 0.00114725, 7.23142357, 0.99422578, 0.99697050, 0.49160053,\
+-	-6.23344202, -0.00188115, 0.00114661, 7.23156087, 0.99422921, 0.99697225, 0.49160494,\
+-	-6.23357776, -0.00188005, 0.00114596, 7.23169771, 0.99423264, 0.99697398, 0.49160932,\
+-	-6.23371302, -0.00187896, 0.00114532, 7.23183406, 0.99423607, 0.99697572, 0.49161370,\
+-	-6.23384781, -0.00187786, 0.00114468, 7.23196994, 0.99423949, 0.99697746, 0.49161806,\
+-	-6.23398212, -0.00187677, 0.00114404, 7.23210535, 0.99424291, 0.99697919, 0.49162241,\
+-	-6.23411597, -0.00187568, 0.00114340, 7.23224029, 0.99424633, 0.99698092, 0.49162674,\
+-	-6.23424935, -0.00187459, 0.00114276, 7.23237476, 0.99424974, 0.99698265, 0.49163105,\
+-	-6.23438226, -0.00187350, 0.00114212, 7.23250876, 0.99425315, 0.99698438, 0.49163535,\
+-	-6.23451471, -0.00187241, 0.00114148, 7.23264230, 0.99425655, 0.99698611, 0.49163964,\
+-	-6.23464669, -0.00187132, 0.00114084, 7.23277537, 0.99425995, 0.99698783, 0.49164392,\
+-	-6.23477821, -0.00187024, 0.00114021, 7.23290797, 0.99426335, 0.99698956, 0.49164818,\
+-	-6.23490927, -0.00186915, 0.00113957, 7.23304012, 0.99426674, 0.99699128, 0.49165242,\
+-	-6.23503988, -0.00186807, 0.00113893, 7.23317181, 0.99427013, 0.99699300, 0.49165666,\
+-	-6.23517002, -0.00186698, 0.00113830, 7.23330304, 0.99427352, 0.99699472, 0.49166087,\
+-	-6.23529971, -0.00186590, 0.00113766, 7.23343381, 0.99427690, 0.99699644, 0.49166508,\
+-	-6.23542895, -0.00186482, 0.00113703, 7.23356413, 0.99428028, 0.99699815, 0.49166927,\
+-	-6.23555773, -0.00186374, 0.00113639, 7.23369399, 0.99428365, 0.99699986, 0.49167345,\
+-	-6.23568606, -0.00186267, 0.00113576, 7.23382340, 0.99428702, 0.99700157, 0.49167762,\
+-	-6.23581395, -0.00186159, 0.00113513, 7.23395236, 0.99429039, 0.99700328, 0.49168176,\
+-	-6.23594138, -0.00186051, 0.00113449, 7.23408087, 0.99429375, 0.99700499, 0.49168591,\
+-	-6.23606837, -0.00185944, 0.00113386, 7.23420893, 0.99429711, 0.99700670, 0.49169003,\
+-	-6.23619491, -0.00185836, 0.00113323, 7.23433655, 0.99430047, 0.99700840, 0.49169415,\
+-	-6.23632102, -0.00185729, 0.00113260, 7.23446372, 0.99430382, 0.99701011, 0.49169823,\
+-	-6.23644667, -0.00185622, 0.00113197, 7.23459045, 0.99430717, 0.99701181, 0.49170232,\
+-	-6.23657189, -0.00185515, 0.00113134, 7.23471674, 0.99431051, 0.99701351, 0.49170640,\
+-	-6.23669667, -0.00185408, 0.00113071, 7.23484259, 0.99431385, 0.99701521, 0.49171044,\
+-	-6.23682101, -0.00185301, 0.00113009, 7.23496800, 0.99431719, 0.99701690, 0.49171449,\
+-	-6.23694492, -0.00185195, 0.00112946, 7.23509297, 0.99432052, 0.99701860, 0.49171853,\
+-	-6.23706839, -0.00185088, 0.00112883, 7.23521751, 0.99432385, 0.99702029, 0.49172254,\
+-	-6.23719143, -0.00184981, 0.00112820, 7.23534161, 0.99432718, 0.99702198, 0.49172655,\
+-	-6.23731403, -0.00184875, 0.00112758, 7.23546528, 0.99433050, 0.99702367, 0.49173054,\
+-	-6.23743621, -0.00184769, 0.00112695, 7.23558852, 0.99433382, 0.99702536, 0.49173452,\
+-	-6.23755795, -0.00184663, 0.00112633, 7.23571133, 0.99433713, 0.99702705, 0.49173848,\
+-	-6.23767927, -0.00184557, 0.00112570, 7.23583371, 0.99434044, 0.99702873, 0.49174243,\
+-	-6.23780017, -0.00184451, 0.00112508, 7.23595566, 0.99434375, 0.99703041, 0.49174639,\
+-	-6.23792064, -0.00184345, 0.00112446, 7.23607719, 0.99434706, 0.99703209, 0.49175031,\
+-	-6.23804068, -0.00184239, 0.00112383, 7.23619829, 0.99435036, 0.99703377, 0.49175422,\
+-	-6.23816031, -0.00184134, 0.00112321, 7.23631897, 0.99435365, 0.99703545, 0.49175813,\
+-	-6.23827952, -0.00184028, 0.00112259, 7.23643923, 0.99435695, 0.99703713, 0.49176201,\
+-	-6.23839830, -0.00183923, 0.00112197, 7.23655907, 0.99436024, 0.99703880, 0.49176589,\
+-	-6.23851667, -0.00183817, 0.00112135, 7.23667850, 0.99436352, 0.99704048, 0.49176975,\
+-	-6.23863462, -0.00183712, 0.00112073, 7.23679750, 0.99436680, 0.99704215, 0.49177361,\
+-	-6.23875216, -0.00183607, 0.00112011, 7.23691609, 0.99437008, 0.99704382, 0.49177744,\
+-	-6.23886929, -0.00183502, 0.00111949, 7.23703427, 0.99437336, 0.99704548, 0.49178127,\
+-	-6.23898600, -0.00183398, 0.00111887, 7.23715203, 0.99437663, 0.99704715, 0.49178508,\
+-	-6.23910231, -0.00183293, 0.00111826, 7.23726938, 0.99437990, 0.99704881, 0.49178889,\
+-	-6.23921820, -0.00183188, 0.00111764, 7.23738632, 0.99438316, 0.99705048, 0.49179268,\
+-	-6.23933369, -0.00183084, 0.00111702, 7.23750286, 0.99438642, 0.99705214, 0.49179645,\
+-	-6.23944877, -0.00182979, 0.00111641, 7.23761898, 0.99438968, 0.99705380, 0.49180022,\
+-	-6.23956345, -0.00182875, 0.00111579, 7.23773470, 0.99439293, 0.99705546, 0.49180397,\
+-	-6.23967773, -0.00182771, 0.00111518, 7.23785002, 0.99439618, 0.99705711, 0.49180771,\
+-	-6.23979160, -0.00182667, 0.00111456, 7.23796493, 0.99439943, 0.99705877, 0.49181144,\
+-	-6.23990507, -0.00182563, 0.00111395, 7.23807944, 0.99440267, 0.99706042, 0.49181516,\
+-	-6.24001814, -0.00182459, 0.00111334, 7.23819355, 0.99440591, 0.99706207, 0.49181886,\
+-	-6.24013082, -0.00182355, 0.00111273, 7.23830726, 0.99440915, 0.99706372, 0.49182255,\
+-	-6.24024309, -0.00182251, 0.00111211, 7.23842058, 0.99441238, 0.99706537, 0.49182623,\
+-	-6.24035498, -0.00182148, 0.00111150, 7.23853350, 0.99441561, 0.99706702, 0.49182990,\
+-	-6.24046647, -0.00182045, 0.00111089, 7.23864602, 0.99441884, 0.99706866, 0.49183355,\
+-	-6.24057756, -0.00181941, 0.00111028, 7.23875815, 0.99442206, 0.99707031, 0.49183719,\
+-	-6.24068827, -0.00181838, 0.00110967, 7.23886989, 0.99442528, 0.99707195, 0.49184083,\
+-	-6.24079858, -0.00181735, 0.00110906, 7.23898123, 0.99442849, 0.99707359, 0.49184446,\
+-	-6.24090851, -0.00181632, 0.00110846, 7.23909219, 0.99443170, 0.99707523, 0.49184806,\
+-	-6.24101805, -0.00181529, 0.00110785, 7.23920276, 0.99443491, 0.99707686, 0.49185165,\
+-	-6.24112720, -0.00181426, 0.00110724, 7.23931294, 0.99443812, 0.99707850, 0.49185524,\
+-	-6.24123597, -0.00181324, 0.00110663, 7.23942274, 0.99444132, 0.99708013, 0.49185881,\
+-	-6.24134436, -0.00181221, 0.00110603, 7.23953215, 0.99444451, 0.99708176, 0.49186237,\
+-	-6.24145237, -0.00181118, 0.00110542, 7.23964118, 0.99444771, 0.99708339, 0.49186593,\
+-	-6.24155999, -0.00181016, 0.00110482, 7.23974983, 0.99445090, 0.99708502, 0.49186947,\
+-	-6.24166723, -0.00180914, 0.00110421, 7.23985810, 0.99445408, 0.99708665, 0.49187299,\
+-	-6.24177410, -0.00180812, 0.00110361, 7.23996598, 0.99445727, 0.99708828, 0.49187651,\
+-	-6.24188059, -0.00180710, 0.00110300, 7.24007349, 0.99446045, 0.99708990, 0.49188001,\
+-	-6.24198671, -0.00180608, 0.00110240, 7.24018063, 0.99446363, 0.99709152, 0.49188351,\
+-	-6.24209245, -0.00180506, 0.00110180, 7.24028739, 0.99446680, 0.99709314, 0.49188699,\
+-	-6.24219781, -0.00180404, 0.00110120, 7.24039377, 0.99446997, 0.99709476, 0.49189046,\
+-	-6.24230281, -0.00180302, 0.00110060, 7.24049978, 0.99447313, 0.99709638, 0.49189392,\
+-	-6.24240743, -0.00180201, 0.00110000, 7.24060543, 0.99447630, 0.99709800, 0.49189737,\
+-	-6.24251169, -0.00180100, 0.00109940, 7.24071070, 0.99447946, 0.99709961, 0.49190081,\
+-	-6.24261558, -0.00179998, 0.00109880, 7.24081560, 0.99448261, 0.99710122, 0.49190424,\
+-	-6.24271910, -0.00179897, 0.00109820, 7.24092013, 0.99448577, 0.99710283, 0.49190765,\
+-	-6.24282226, -0.00179796, 0.00109760, 7.24102430, 0.99448891, 0.99710444, 0.49191105,\
+-	-6.24292505, -0.00179695, 0.00109700, 7.24112810, 0.99449206, 0.99710605, 0.49191444,\
+-	-6.24302748, -0.00179594, 0.00109640, 7.24123154, 0.99449520, 0.99710766, 0.49191782,\
+-	-6.24312955, -0.00179493, 0.00109581, 7.24133462, 0.99449834, 0.99710926, 0.49192119,\
+-	-6.24323126, -0.00179392, 0.00109521, 7.24143733, 0.99450148, 0.99711087, 0.49192455,\
+-	-6.24333261, -0.00179292, 0.00109461, 7.24153969, 0.99450461, 0.99711247, 0.49192789,\
+-	-6.24343360, -0.00179191, 0.00109402, 7.24164168, 0.99450774, 0.99711407, 0.49193123,\
+-	-6.24353423, -0.00179091, 0.00109342, 7.24174332, 0.99451086, 0.99711567, 0.49193456,\
+-	-6.24363451, -0.00178991, 0.00109283, 7.24184460, 0.99451399, 0.99711726, 0.49193787,\
+-	-6.24373444, -0.00178891, 0.00109224, 7.24194553, 0.99451711, 0.99711886, 0.49194119,\
+-	-6.24383401, -0.00178790, 0.00109164, 7.24204610, 0.99452022, 0.99712045, 0.49194448,\
+-	-6.24393323, -0.00178690, 0.00109105, 7.24214632, 0.99452333, 0.99712204, 0.49194776,\
+-	-6.24403210, -0.00178591, 0.00109046, 7.24224619, 0.99452644, 0.99712364, 0.49195103,\
+-	-6.24413062, -0.00178491, 0.00108987, 7.24234571, 0.99452955, 0.99712522, 0.49195429,\
+-	-6.24422879, -0.00178391, 0.00108928, 7.24244488, 0.99453265, 0.99712681, 0.49195755,\
+-	-6.24432661, -0.00178292, 0.00108869, 7.24254370, 0.99453575, 0.99712840, 0.49196079,\
+-	-6.24442409, -0.00178192, 0.00108810, 7.24264217, 0.99453884, 0.99712998, 0.49196402,\
+-	-6.24452123, -0.00178093, 0.00108751, 7.24274030, 0.99454194, 0.99713157, 0.49196723,\
+-	-6.24461802, -0.00177993, 0.00108692, 7.24283808, 0.99454502, 0.99713315, 0.49197045,\
+-	-6.24471446, -0.00177894, 0.00108633, 7.24293552, 0.99454811, 0.99713473, 0.49197365,\
+-	-6.24481057, -0.00177795, 0.00108574, 7.24303262, 0.99455119, 0.99713630, 0.49197684,\
+-	-6.24490634, -0.00177696, 0.00108516, 7.24312938, 0.99455427, 0.99713788, 0.49198002,\
+-	-6.24500177, -0.00177597, 0.00108457, 7.24322579, 0.99455735, 0.99713946, 0.49198318,\
+-	-6.24509686, -0.00177499, 0.00108398, 7.24332187, 0.99456042, 0.99714103, 0.49198634,\
+-	-6.24519161, -0.00177400, 0.00108340, 7.24341761, 0.99456349, 0.99714260, 0.49198949,\
+-	-6.24528603, -0.00177301, 0.00108281, 7.24351302, 0.99456655, 0.99714417, 0.49199263,\
+-	-6.24538012, -0.00177203, 0.00108223, 7.24360809, 0.99456961, 0.99714574, 0.49199575,\
+-	-6.24547387, -0.00177105, 0.00108164, 7.24370283, 0.99457267, 0.99714731, 0.49199887,\
+-	-6.24556729, -0.00177006, 0.00108106, 7.24379723, 0.99457573, 0.99714887, 0.49200198,\
+-	-6.24566038, -0.00176908, 0.00108048, 7.24389130, 0.99457878, 0.99715044, 0.49200507,\
+-	-6.24575314, -0.00176810, 0.00107990, 7.24398504, 0.99458183, 0.99715200, 0.49200817,\
+-	-6.24584557, -0.00176712, 0.00107931, 7.24407845, 0.99458488, 0.99715356, 0.49201123,\
+-	-6.24593768, -0.00176614, 0.00107873, 7.24417153, 0.99458792, 0.99715512, 0.49201431,\
+-	-6.24602946, -0.00176517, 0.00107815, 7.24426429, 0.99459096, 0.99715668, 0.49201737,\
+-	-6.24612091, -0.00176419, 0.00107757, 7.24435672, 0.99459400, 0.99715824, 0.49202041,\
+-	-6.24621204, -0.00176321, 0.00107699, 7.24444883, 0.99459703, 0.99715979, 0.49202344,\
+-	-6.24630285, -0.00176224, 0.00107641, 7.24454061, 0.99460006, 0.99716135, 0.49202647,\
+-	-6.24639333, -0.00176127, 0.00107584, 7.24463206, 0.99460309, 0.99716290, 0.49202949,\
+-	-6.24648350, -0.00176029, 0.00107526, 7.24472320, 0.99460611, 0.99716445, 0.49203250,\
+-	-6.24657334, -0.00175932, 0.00107468, 7.24481402, 0.99460913, 0.99716600, 0.49203550,\
+-	-6.24666287, -0.00175835, 0.00107410, 7.24490451, 0.99461215, 0.99716755, 0.49203848,\
+-	-6.24675208, -0.00175738, 0.00107353, 7.24499469, 0.99461516, 0.99716909, 0.49204146,\
+-	-6.24684097, -0.00175641, 0.00107295, 7.24508455, 0.99461817, 0.99717064, 0.49204443,\
+-	-6.24692955, -0.00175545, 0.00107238, 7.24517410, 0.99462118, 0.99717218, 0.49204739,\
+-	-6.24701781, -0.00175448, 0.00107180, 7.24526333, 0.99462418, 0.99717372, 0.49205033,\
+-	-6.24710576, -0.00175351, 0.00107123, 7.24535225, 0.99462718, 0.99717526, 0.49205328,\
+-	-6.24719340, -0.00175255, 0.00107065, 7.24544085, 0.99463018, 0.99717680, 0.49205621,\
+-	-6.24728073, -0.00175158, 0.00107008, 7.24552914, 0.99463317, 0.99717834, 0.49205913,\
+-	-6.24736775, -0.00175062, 0.00106951, 7.24561712, 0.99463617, 0.99717987, 0.49206204,\
+-	-6.24745446, -0.00174966, 0.00106893, 7.24570479, 0.99463915, 0.99718141, 0.49206494,\
+-	-6.24754086, -0.00174870, 0.00106836, 7.24579216, 0.99464214, 0.99718294, 0.49206783,\
+-	-6.24762695, -0.00174774, 0.00106779, 7.24587921, 0.99464512, 0.99718447, 0.49207072,\
+-	-6.24771274, -0.00174678, 0.00106722, 7.24596596, 0.99464810, 0.99718600, 0.49207359,\
+-	-6.24779823, -0.00174582, 0.00106665, 7.24605241, 0.99465108, 0.99718753, 0.49207645,\
+-	-6.24788341, -0.00174487, 0.00106608, 7.24613854, 0.99465405, 0.99718905, 0.49207931,\
+-	-6.24796829, -0.00174391, 0.00106551, 7.24622438, 0.99465702, 0.99719058, 0.49208216,\
+-	-6.24805287, -0.00174296, 0.00106494, 7.24630991, 0.99465998, 0.99719210, 0.49208499,\
+-	-6.24813715, -0.00174200, 0.00106438, 7.24639515, 0.99466295, 0.99719362, 0.49208783,\
+-	-6.24822113, -0.00174105, 0.00106381, 7.24648008, 0.99466591, 0.99719514, 0.49209064,\
+-	-6.24830481, -0.00174010, 0.00106324, 7.24656471, 0.99466886, 0.99719666, 0.49209345,\
+-	-6.24838819, -0.00173915, 0.00106267, 7.24664905, 0.99467182, 0.99719818, 0.49209625,\
+-	-6.24847128, -0.00173819, 0.00106211, 7.24673309, 0.99467477, 0.99719970, 0.49209904,\
+-	-6.24855407, -0.00173725, 0.00106154, 7.24681683, 0.99467771, 0.99720121, 0.49210182,\
+-	-6.24863657, -0.00173630, 0.00106098, 7.24690027, 0.99468066, 0.99720272, 0.49210459,\
+-	-6.24871878, -0.00173535, 0.00106041, 7.24698343, 0.99468360, 0.99720424, 0.49210735,\
+-	-6.24880069, -0.00173440, 0.00105985, 7.24706629, 0.99468654, 0.99720575, 0.49211010,\
+-	-6.24888231, -0.00173346, 0.00105929, 7.24714886, 0.99468947, 0.99720725, 0.49211286,\
+-	-6.24896365, -0.00173251, 0.00105872, 7.24723113, 0.99469240, 0.99720876, 0.49211559,\
+-	-6.24904469, -0.00173157, 0.00105816, 7.24731312, 0.99469533, 0.99721027, 0.49211832,\
+-	-6.24912545, -0.00173063, 0.00105760, 7.24739482, 0.99469826, 0.99721177, 0.49212104,\
+-	-6.24920591, -0.00172969, 0.00105704, 7.24747623, 0.99470118, 0.99721327, 0.49212375,\
+-	-6.24928610, -0.00172875, 0.00105648, 7.24755735, 0.99470410, 0.99721478, 0.49212645,\
+-	-6.24936599, -0.00172781, 0.00105592, 7.24763819, 0.99470702, 0.99721628, 0.49212915,\
+-	-6.24944561, -0.00172687, 0.00105536, 7.24771874, 0.99470993, 0.99721777, 0.49213183,\
+-	-6.24952494, -0.00172593, 0.00105480, 7.24779901, 0.99471284, 0.99721927, 0.49213451,\
+-	-6.24960399, -0.00172499, 0.00105424, 7.24787899, 0.99471575, 0.99722077, 0.49213717,\
+-	-6.24968275, -0.00172406, 0.00105368, 7.24795870, 0.99471865, 0.99722226, 0.49213983,\
+-	-6.24976124, -0.00172312, 0.00105312, 7.24803812, 0.99472155, 0.99722375, 0.49214248,\
+-	-6.24983945, -0.00172219, 0.00105257, 7.24811726, 0.99472445, 0.99722524, 0.49214512,\
+-	-6.24991738, -0.00172126, 0.00105201, 7.24819612, 0.99472735, 0.99722673, 0.49214776,\
+-	-6.24999503, -0.00172032, 0.00105145, 7.24827471, 0.99473024, 0.99722822, 0.49215038,\
+-	-6.25007241, -0.00171939, 0.00105090, 7.24835302, 0.99473313, 0.99722971, 0.49215299,\
+-	-6.25014951, -0.00171846, 0.00105034, 7.24843105, 0.99473601, 0.99723119, 0.49215561,\
+-	-6.25022634, -0.00171753, 0.00104979, 7.24850880, 0.99473890, 0.99723268, 0.49215820,\
+-	-6.25030289, -0.00171660, 0.00104923, 7.24858628, 0.99474178, 0.99723416, 0.49216079,\
+-	-6.25037917, -0.00171568, 0.00104868, 7.24866349, 0.99474465, 0.99723564, 0.49216338,\
+-	-6.25045518, -0.00171475, 0.00104813, 7.24874043, 0.99474753, 0.99723712, 0.49216595,\
+-	-6.25053092, -0.00171382, 0.00104758, 7.24881709, 0.99475040, 0.99723860, 0.49216851,\
+-	-6.25060639, -0.00171290, 0.00104702, 7.24889349, 0.99475327, 0.99724008, 0.49217106,\
+-	-6.25068159, -0.00171198, 0.00104647, 7.24896961, 0.99475613, 0.99724155, 0.49217362,\
+-	-6.25075652, -0.00171105, 0.00104592, 7.24904547, 0.99475899, 0.99724303, 0.49217616,\
+-	-6.25083119, -0.00171013, 0.00104537, 7.24912106, 0.99476185, 0.99724450, 0.49217869,\
+-	-6.25090559, -0.00170921, 0.00104482, 7.24919638, 0.99476471, 0.99724597, 0.49218121,\
+-	-6.25097972, -0.00170829, 0.00104427, 7.24927143, 0.99476756, 0.99724744, 0.49218373,\
+-	-6.25105359, -0.00170737, 0.00104372, 7.24934622, 0.99477041, 0.99724891, 0.49218624,\
+-	-6.25112720, -0.00170645, 0.00104317, 7.24942075, 0.99477326, 0.99725037, 0.49218873,\
+-	-6.25120055, -0.00170554, 0.00104262, 7.24949501, 0.99477610, 0.99725184, 0.49219122,\
+-	-6.25127363, -0.00170462, 0.00104208, 7.24956901, 0.99477894, 0.99725330, 0.49219371,\
+-	-6.25134646, -0.00170370, 0.00104153, 7.24964275, 0.99478178, 0.99725477, 0.49219618,\
+-	-6.25141902, -0.00170279, 0.00104098, 7.24971623, 0.99478462, 0.99725623, 0.49219865,\
+-	-6.25149133, -0.00170188, 0.00104044, 7.24978945, 0.99478745, 0.99725769, 0.49220112,\
+-	-6.25156338, -0.00170096, 0.00103989, 7.24986241, 0.99479028, 0.99725915, 0.49220356,\
+-	-6.25163517, -0.00170005, 0.00103935, 7.24993512, 0.99479311, 0.99726060, 0.49220600,\
+-	-6.25170670, -0.00169914, 0.00103880, 7.25000756, 0.99479593, 0.99726206, 0.49220844,\
+-	-6.25177798, -0.00169823, 0.00103826, 7.25007975, 0.99479875, 0.99726351, 0.49221087,\
+-	-6.25184901, -0.00169732, 0.00103771, 7.25015169, 0.99480157, 0.99726496, 0.49221329,\
+-	-6.25191978, -0.00169641, 0.00103717, 7.25022337, 0.99480438, 0.99726642, 0.49221570,\
+-	-6.25199031, -0.00169551, 0.00103663, 7.25029480, 0.99480719, 0.99726787, 0.49221811,\
+-	-6.25206057, -0.00169460, 0.00103609, 7.25036598, 0.99481000, 0.99726931, 0.49222050,\
+-	-6.25213059, -0.00169369, 0.00103555, 7.25043690, 0.99481281, 0.99727076, 0.49222289,\
+-	-6.25220036, -0.00169279, 0.00103500, 7.25050757, 0.99481561, 0.99727221, 0.49222527,\
+-	-6.25226988, -0.00169189, 0.00103446, 7.25057800, 0.99481841, 0.99727365, 0.49222765,\
+-	-6.25233916, -0.00169098, 0.00103392, 7.25064817, 0.99482121, 0.99727509, 0.49223001,\
+-	-6.25240818, -0.00169008, 0.00103338, 7.25071810, 0.99482400, 0.99727653, 0.49223237,\
+-	-6.25247696, -0.00168918, 0.00103285, 7.25078778, 0.99482680, 0.99727797, 0.49223472,\
+-	-6.25254550, -0.00168828, 0.00103231, 7.25085722, 0.99482958, 0.99727941, 0.49223706,\
+-	-6.25261379, -0.00168738, 0.00103177, 7.25092640, 0.99483237, 0.99728085, 0.49223939,\
+-	-6.25268183, -0.00168648, 0.00103123, 7.25099535, 0.99483515, 0.99728229, 0.49224172,\
+-	-6.25274963, -0.00168559, 0.00103069, 7.25106405, 0.99483793, 0.99728372, 0.49224404,\
+-	-6.25281720, -0.00168469, 0.00103016, 7.25113251, 0.99484071, 0.99728515, 0.49224636,\
+-	-6.25288452, -0.00168379, 0.00102962, 7.25120072, 0.99484348, 0.99728659, 0.49224866,\
+-	-6.25295160, -0.00168290, 0.00102909, 7.25126870, 0.99484626, 0.99728802, 0.49225097,\
+-	-6.25301844, -0.00168200, 0.00102855, 7.25133643, 0.99484902, 0.99728945, 0.49225325,\
+-	-6.25308504, -0.00168111, 0.00102802, 7.25140393, 0.99485179, 0.99729087, 0.49225553,\
+-	-6.25315140, -0.00168022, 0.00102748, 7.25147118, 0.99485455, 0.99729230, 0.49225780,\
+-	-6.25321753, -0.00167933, 0.00102695, 7.25153820, 0.99485731, 0.99729372, 0.49226008,\
+-	-6.25328342, -0.00167844, 0.00102641, 7.25160498, 0.99486007, 0.99729515, 0.49226233,\
+-	-6.25334907, -0.00167755, 0.00102588, 7.25167153, 0.99486282, 0.99729657, 0.49226459,\
+-	-6.25341450, -0.00167666, 0.00102535, 7.25173784, 0.99486558, 0.99729799, 0.49226684,\
+-	-6.25347968, -0.00167577, 0.00102482, 7.25180391, 0.99486832, 0.99729941, 0.49226907,\
+-	-6.25354464, -0.00167489, 0.00102429, 7.25186975, 0.99487107, 0.99730083, 0.49227131,\
+-	-6.25360936, -0.00167400, 0.00102376, 7.25193536, 0.99487381, 0.99730224, 0.49227354,\
+-	-6.25367385, -0.00167312, 0.00102323, 7.25200074, 0.99487655, 0.99730366, 0.49227575,\
+-	-6.25373811, -0.00167223, 0.00102270, 7.25206588, 0.99487929, 0.99730507, 0.49227796,\
+-	-6.25380215, -0.00167135, 0.00102217, 7.25213080, 0.99488202, 0.99730649, 0.49228016,\
+-	-6.25386595, -0.00167047, 0.00102164, 7.25219548, 0.99488476, 0.99730790, 0.49228236,\
+-	-6.25392952, -0.00166958, 0.00102111, 7.25225994, 0.99488749, 0.99730931, 0.49228455,\
+-	-6.25399287, -0.00166870, 0.00102058, 7.25232417, 0.99489021, 0.99731072, 0.49228673,\
+-	-6.25405599, -0.00166782, 0.00102005, 7.25238817, 0.99489294, 0.99731212, 0.49228892,\
+-	-6.25411889, -0.00166694, 0.00101953, 7.25245194, 0.99489566, 0.99731353, 0.49229108,\
+-	-6.25418156, -0.00166607, 0.00101900, 7.25251549, 0.99489837, 0.99731493, 0.49229324,\
+-	-6.25424401, -0.00166519, 0.00101847, 7.25257882, 0.99490109, 0.99731634, 0.49229539,\
+-	-6.25430623, -0.00166431, 0.00101795, 7.25264192, 0.99490380, 0.99731774, 0.49229754,\
+-	-6.25436823, -0.00166344, 0.00101742, 7.25270479, 0.99490651, 0.99731914, 0.49229968,\
+-	-6.25443001, -0.00166256, 0.00101690, 7.25276745, 0.99490922, 0.99732054, 0.49230182,\
+-	-6.25449157, -0.00166169, 0.00101638, 7.25282988, 0.99491192, 0.99732194, 0.49230394,\
+-	-6.25455291, -0.00166082, 0.00101585, 7.25289209, 0.99491462, 0.99732333, 0.49230606,\
+-	-6.25461403, -0.00165994, 0.00101533, 7.25295408, 0.99491732, 0.99732473, 0.49230817,\
+-	-6.25467493, -0.00165907, 0.00101481, 7.25301586, 0.99492002, 0.99732612, 0.49231027,\
+-	-6.25473561, -0.00165820, 0.00101428, 7.25307741, 0.99492271, 0.99732751, 0.49231238,\
+-	-6.25479608, -0.00165733, 0.00101376, 7.25313874, 0.99492540, 0.99732890, 0.49231446,\
+-	-6.25485633, -0.00165647, 0.00101324, 7.25319986, 0.99492809, 0.99733029, 0.49231656,\
+-	-6.25491636, -0.00165560, 0.00101272, 7.25326076, 0.99493077, 0.99733168, 0.49231863,\
+-	-6.25497618, -0.00165473, 0.00101220, 7.25332145, 0.99493345, 0.99733307, 0.49232070,\
+-	-6.25503579, -0.00165386, 0.00101168, 7.25338192, 0.99493613, 0.99733445, 0.49232277,\
+-	-6.25509518, -0.00165300, 0.00101116, 7.25344218, 0.99493881, 0.99733584, 0.49232483,\
+-	-6.25515436, -0.00165214, 0.00101064, 7.25350222, 0.99494148, 0.99733722, 0.49232688,\
+-	-6.25521333, -0.00165127, 0.00101012, 7.25356206, 0.99494415, 0.99733860, 0.49232894,\
+-	-6.25527209, -0.00165041, 0.00100961, 7.25362168, 0.99494682, 0.99733998, 0.49233097,\
+-	-6.25533063, -0.00164955, 0.00100909, 7.25368108, 0.99494949, 0.99734136, 0.49233301,\
+-	-6.25538897, -0.00164869, 0.00100857, 7.25374028, 0.99495215, 0.99734274, 0.49233504,\
+-	-6.25544710, -0.00164783, 0.00100806, 7.25379927, 0.99495481, 0.99734412, 0.49233704,\
+-	-6.25550502, -0.00164697, 0.00100754, 7.25385805, 0.99495747, 0.99734549, 0.49233906,\
+-	-6.25556273, -0.00164611, 0.00100702, 7.25391662, 0.99496012, 0.99734687, 0.49234107,\
+-	-6.25562024, -0.00164525, 0.00100651, 7.25397499, 0.99496278, 0.99734824, 0.49234308,\
+-	-6.25567754, -0.00164440, 0.00100599, 7.25403314, 0.99496543, 0.99734961, 0.49234506,\
+-	-6.25573464, -0.00164354, 0.00100548, 7.25409110, 0.99496807, 0.99735098, 0.49234706,\
+-	-6.25579153, -0.00164268, 0.00100497, 7.25414884, 0.99497072, 0.99735235, 0.49234904,\
+-	-6.25584821, -0.00164183, 0.00100445, 7.25420638, 0.99497336, 0.99735372, 0.49235101,\
+-	-6.25590470, -0.00164098, 0.00100394, 7.25426372, 0.99497600, 0.99735508, 0.49235297,\
+-	-6.25596098, -0.00164012, 0.00100343, 7.25432086, 0.99497863, 0.99735645, 0.49235495,\
+-	-6.25601706, -0.00163927, 0.00100292, 7.25437779, 0.99498127, 0.99735781, 0.49235690,\
+-	-6.25607294, -0.00163842, 0.00100241, 7.25443452, 0.99498390, 0.99735917, 0.49235884,\
+-	-6.25612862, -0.00163757, 0.00100189, 7.25449105, 0.99498652, 0.99736053, 0.49236079,\
+-	-6.25618410, -0.00163672, 0.00100138, 7.25454738, 0.99498915, 0.99736189, 0.49236272,\
+-	-6.25623938, -0.00163587, 0.00100087, 7.25460351, 0.99499177, 0.99736325, 0.49236466,\
+-	-6.25629447, -0.00163503, 0.00100036, 7.25465944, 0.99499439, 0.99736461, 0.49236658,\
+-	-6.25634936, -0.00163418, 0.00099986, 7.25471518, 0.99499701, 0.99736596, 0.49236850,\
+-	-6.25640405, -0.00163333, 0.00099935, 7.25477071, 0.99499963, 0.99736732, 0.49237042,\
+-	-6.25645854, -0.00163249, 0.00099884, 7.25482605, 0.99500224, 0.99736867, 0.49237232,\
+-	-6.25651284, -0.00163164, 0.00099833, 7.25488119, 0.99500485, 0.99737002, 0.49237422,\
+-	-6.25656694, -0.00163080, 0.00099782, 7.25493614, 0.99500745, 0.99737137, 0.49237612,\
+-	-6.25662085, -0.00162996, 0.00099732, 7.25499089, 0.99501006, 0.99737272, 0.49237800,\
+-	-6.25667457, -0.00162912, 0.00099681, 7.25504545, 0.99501266, 0.99737407, 0.49237989,\
+-	-6.25672809, -0.00162828, 0.00099631, 7.25509982, 0.99501526, 0.99737542, 0.49238176,\
+-	-6.25678143, -0.00162744, 0.00099580, 7.25515399, 0.99501786, 0.99737676, 0.49238364,\
+-	-6.25683457, -0.00162660, 0.00099530, 7.25520797, 0.99502045, 0.99737811, 0.49238550,\
+-	-6.25688752, -0.00162576, 0.00099479, 7.25526176, 0.99502304, 0.99737945, 0.49238736,\
+-	-6.25694028, -0.00162492, 0.00099429, 7.25531536, 0.99502563, 0.99738079, 0.49238921,\
+-	-6.25699285, -0.00162408, 0.00099378, 7.25536877, 0.99502822, 0.99738213, 0.49239105,\
+-	-6.25704524, -0.00162325, 0.00099328, 7.25542199, 0.99503080, 0.99738347, 0.49239289,\
+-	-6.25709743, -0.00162241, 0.00099278, 7.25547502, 0.99503338, 0.99738481, 0.49239473,\
+-	-6.25714944, -0.00162158, 0.00099228, 7.25552786, 0.99503596, 0.99738615, 0.49239656,\
+-	-6.25720127, -0.00162074, 0.00099177, 7.25558052, 0.99503853, 0.99738748, 0.49239838,\
+-	-6.25725290, -0.00161991, 0.00099127, 7.25563299, 0.99504111, 0.99738881, 0.49240020,\
+-	-6.25730435, -0.00161908, 0.00099077, 7.25568527, 0.99504368, 0.99739015, 0.49240201,\
+-	-6.25735562, -0.00161825, 0.00099027, 7.25573737, 0.99504625, 0.99739148, 0.49240381,\
+-	-6.25740670, -0.00161742, 0.00098977, 7.25578929, 0.99504881, 0.99739281, 0.49240561,\
+-	-6.25745761, -0.00161659, 0.00098927, 7.25584102, 0.99505137, 0.99739414, 0.49240741,\
+-	-6.25750832, -0.00161576, 0.00098877, 7.25589256, 0.99505393, 0.99739547, 0.49240919,\
+-	-6.25755886, -0.00161493, 0.00098828, 7.25594393, 0.99505649, 0.99739679, 0.49241098,\
+-	-6.25760921, -0.00161411, 0.00098778, 7.25599511, 0.99505905, 0.99739812, 0.49241276,\
+-	-6.25765939, -0.00161328, 0.00098728, 7.25604611, 0.99506160, 0.99739944, 0.49241453,\
+-	-6.25770938, -0.00161245, 0.00098678, 7.25609693, 0.99506415, 0.99740076, 0.49241630,\
+-	-6.25775920, -0.00161163, 0.00098629, 7.25614757, 0.99506670, 0.99740209, 0.49241806,\
+-	-6.25780883, -0.00161080, 0.00098579, 7.25619803, 0.99506924, 0.99740341, 0.49241981,\
+-	-6.25785829, -0.00160998, 0.00098529, 7.25624831, 0.99507179, 0.99740472, 0.49242156,\
+-	-6.25790757, -0.00160916, 0.00098480, 7.25629841, 0.99507433, 0.99740604, 0.49242330,\
+-	-6.25795667, -0.00160834, 0.00098430, 7.25634834, 0.99507686, 0.99740736, 0.49242504,\
+-	-6.25800560, -0.00160752, 0.00098381, 7.25639808, 0.99507940, 0.99740867, 0.49242678,\
+-	-6.25805435, -0.00160670, 0.00098332, 7.25644766, 0.99508193, 0.99740999, 0.49242849,\
+-	-6.25810293, -0.00160588, 0.00098282, 7.25649705, 0.99508446, 0.99741130, 0.49243022,\
+-	-6.25815133, -0.00160506, 0.00098233, 7.25654627, 0.99508699, 0.99741261, 0.49243193,\
+-	-6.25819956, -0.00160424, 0.00098184, 7.25659532, 0.99508951, 0.99741392, 0.49243365,\
+-	-6.25824762, -0.00160342, 0.00098134, 7.25664419, 0.99509203, 0.99741523, 0.49243535,\
+-	-6.25829550, -0.00160261, 0.00098085, 7.25669289, 0.99509455, 0.99741654, 0.49243704,\
+-	-6.25834321, -0.00160179, 0.00098036, 7.25674142, 0.99509707, 0.99741784, 0.49243875,\
+-	-6.25839075, -0.00160098, 0.00097987, 7.25678978, 0.99509959, 0.99741915, 0.49244043,\
+-	-6.25843812, -0.00160017, 0.00097938, 7.25683796, 0.99510210, 0.99742045, 0.49244213,\
+-	-6.25848532, -0.00159935, 0.00097889, 7.25688597, 0.99510461, 0.99742176, 0.49244379,\
+-	-6.25853235, -0.00159854, 0.00097840, 7.25693381, 0.99510712, 0.99742306, 0.49244547,\
+-	-6.25857922, -0.00159773, 0.00097791, 7.25698149, 0.99510962, 0.99742436, 0.49244714,\
+-	-6.25862591, -0.00159692, 0.00097742, 7.25702899, 0.99511212, 0.99742566, 0.49244880,\
+-	-6.25867244, -0.00159611, 0.00097693, 7.25707633, 0.99511462, 0.99742696, 0.49245046,\
+-	-6.25871879, -0.00159530, 0.00097645, 7.25712350, 0.99511712, 0.99742825, 0.49245210,\
+-	-6.25876499, -0.00159449, 0.00097596, 7.25717050, 0.99511962, 0.99742955, 0.49245376,\
+-	-6.25881101, -0.00159368, 0.00097547, 7.25721733, 0.99512211, 0.99743084, 0.49245539,\
+-	-6.25885688, -0.00159288, 0.00097499, 7.25726400, 0.99512460, 0.99743214, 0.49245702,\
+-	-6.25890257, -0.00159207, 0.00097450, 7.25731050, 0.99512709, 0.99743343, 0.49245866,\
+-	-6.25894810, -0.00159127, 0.00097402, 7.25735684, 0.99512957, 0.99743472, 0.49246028,\
+-	-6.25899347, -0.00159046, 0.00097353, 7.25740301, 0.99513205, 0.99743601, 0.49246190,\
+-	-6.25903868, -0.00158966, 0.00097305, 7.25744902, 0.99513453, 0.99743730, 0.49246352,\
+-	-6.25908372, -0.00158886, 0.00097256, 7.25749487, 0.99513701, 0.99743858, 0.49246513,\
+-	-6.25912861, -0.00158805, 0.00097208, 7.25754055, 0.99513949, 0.99743987, 0.49246673,\
+-	-6.25917333, -0.00158725, 0.00097159, 7.25758607, 0.99514196, 0.99744115, 0.49246833,\
+-	-6.25921789, -0.00158645, 0.00097111, 7.25763144, 0.99514443, 0.99744244, 0.49246993,\
+-	-6.25926229, -0.00158565, 0.00097063, 7.25767664, 0.99514690, 0.99744372, 0.49247152,\
+-	-6.25930653, -0.00158485, 0.00097015, 7.25772168, 0.99514936, 0.99744500, 0.49247309,\
+-	-6.25935061, -0.00158406, 0.00096966, 7.25776656, 0.99515183, 0.99744628, 0.49247468,\
+-	-6.25939453, -0.00158326, 0.00096918, 7.25781128, 0.99515429, 0.99744756, 0.49247625,\
+-	-6.25943830, -0.00158246, 0.00096870, 7.25785584, 0.99515675, 0.99744884, 0.49247782,\
+-	-6.25948191, -0.00158167, 0.00096822, 7.25790024, 0.99515920, 0.99745011, 0.49247939,\
+-	-6.25952536, -0.00158087, 0.00096774, 7.25794449, 0.99516165, 0.99745139, 0.49248095,\
+-	-6.25956866, -0.00158008, 0.00096726, 7.25798858, 0.99516411, 0.99745266, 0.49248251,\
+-	-6.25961180, -0.00157928, 0.00096678, 7.25803252, 0.99516655, 0.99745393, 0.49248405,\
+-	-6.25965478, -0.00157849, 0.00096631, 7.25807629, 0.99516900, 0.99745521, 0.49248560,\
+-	-6.25969761, -0.00157770, 0.00096583, 7.25811992, 0.99517144, 0.99745648, 0.49248715,\
+-	-6.25974029, -0.00157691, 0.00096535, 7.25816339, 0.99517389, 0.99745774, 0.49248867,\
+-	-6.25978282, -0.00157612, 0.00096487, 7.25820670, 0.99517633, 0.99745901, 0.49249021,\
+-	-6.25982519, -0.00157533, 0.00096440, 7.25824986, 0.99517876, 0.99746028, 0.49249174,\
+-	-6.25986741, -0.00157454, 0.00096392, 7.25829287, 0.99518120, 0.99746154, 0.49249325,\
+-	-6.25990947, -0.00157375, 0.00096344, 7.25833572, 0.99518363, 0.99746281, 0.49249477,\
+-	-6.25995139, -0.00157296, 0.00096297, 7.25837843, 0.99518606, 0.99746407, 0.49249628,\
+-	-6.25999315, -0.00157217, 0.00096249, 7.25842098, 0.99518848, 0.99746533, 0.49249779,\
+-	-6.26003477, -0.00157139, 0.00096202, 7.25846338, 0.99519091, 0.99746659, 0.49249929,\
+-	-6.26007624, -0.00157060, 0.00096154, 7.25850563, 0.99519333, 0.99746785, 0.49250079,\
+-	-6.26011755, -0.00156982, 0.00096107, 7.25854773, 0.99519575, 0.99746911, 0.49250228,\
+-	-6.26015872, -0.00156903, 0.00096060, 7.25858969, 0.99519817, 0.99747037, 0.49250377,\
+-	-6.26019974, -0.00156825, 0.00096012, 7.25863149, 0.99520058, 0.99747163, 0.49250524,\
+-	-6.26024061, -0.00156747, 0.00095965, 7.25867315, 0.99520300, 0.99747288, 0.49250672,\
+-	-6.26028134, -0.00156669, 0.00095918, 7.25871465, 0.99520541, 0.99747414, 0.49250819,\
+-	-6.26032192, -0.00156591, 0.00095871, 7.25875601, 0.99520782, 0.99747539, 0.49250967,\
+-	-6.26036235, -0.00156513, 0.00095823, 7.25879723, 0.99521022, 0.99747664, 0.49251114,\
+-	-6.26040264, -0.00156435, 0.00095776, 7.25883830, 0.99521263, 0.99747789, 0.49251259,\
+-	-6.26044279, -0.00156357, 0.00095729, 7.25887922, 0.99521503, 0.99747914, 0.49251404,\
+-	-6.26048279, -0.00156279, 0.00095682, 7.25892000, 0.99521743, 0.99748039, 0.49251549,\
+-	-6.26052264, -0.00156201, 0.00095635, 7.25896063, 0.99521982, 0.99748163, 0.49251694,\
+-	-6.26056235, -0.00156124, 0.00095588, 7.25900112, 0.99522222, 0.99748288, 0.49251838,\
+-	-6.26060192, -0.00156046, 0.00095542, 7.25904146, 0.99522461, 0.99748412, 0.49251982,\
+-	-6.26064135, -0.00155969, 0.00095495, 7.25908167, 0.99522700, 0.99748537, 0.49252125,\
+-	-6.26068064, -0.00155891, 0.00095448, 7.25912173, 0.99522939, 0.99748661, 0.49252269,\
+-	-6.26071978, -0.00155814, 0.00095401, 7.25916164, 0.99523177, 0.99748785, 0.49252410,\
+-	-6.26075879, -0.00155737, 0.00095354, 7.25920142, 0.99523415, 0.99748909, 0.49252552,\
+-	-6.26079765, -0.00155659, 0.00095308, 7.25924106, 0.99523653, 0.99749033, 0.49252694,\
+-	-6.26083637, -0.00155582, 0.00095261, 7.25928055, 0.99523891, 0.99749157, 0.49252834,\
+-	-6.26087496, -0.00155505, 0.00095215, 7.25931991, 0.99524129, 0.99749280, 0.49252975,\
+-	-6.26091341, -0.00155428, 0.00095168, 7.25935912, 0.99524366, 0.99749404, 0.49253116,\
+-	-6.26095171, -0.00155351, 0.00095122, 7.25939820, 0.99524603, 0.99749527, 0.49253255,\
+-	-6.26098988, -0.00155274, 0.00095075, 7.25943714, 0.99524840, 0.99749651, 0.49253394,\
+-	-6.26102792, -0.00155198, 0.00095029, 7.25947594, 0.99525077, 0.99749774, 0.49253533,\
+-	-6.26106581, -0.00155121, 0.00094982, 7.25951460, 0.99525313, 0.99749897, 0.49253672,\
+-	-6.26110357, -0.00155044, 0.00094936, 7.25955313, 0.99525549, 0.99750020, 0.49253810,\
+-	-6.26114120, -0.00154968, 0.00094890, 7.25959152, 0.99525785, 0.99750143, 0.49253947,\
+-	-6.26117869, -0.00154891, 0.00094843, 7.25962977, 0.99526021, 0.99750265, 0.49254085,\
+-	-6.26121604, -0.00154815, 0.00094797, 7.25966789, 0.99526256, 0.99750388, 0.49254220,\
+-	-6.26125326, -0.00154739, 0.00094751, 7.25970587, 0.99526492, 0.99750510, 0.49254357,\
+-	-6.26129035, -0.00154662, 0.00094705, 7.25974372, 0.99526727, 0.99750633, 0.49254493,\
+-	-6.26132730, -0.00154586, 0.00094659, 7.25978144, 0.99526962, 0.99750755, 0.49254628,\
+-	-6.26136412, -0.00154510, 0.00094613, 7.25981902, 0.99527196, 0.99750877, 0.49254763,\
+-	-6.26140081, -0.00154434, 0.00094567, 7.25985647, 0.99527431, 0.99750999, 0.49254897,\
+-	-6.26143736, -0.00154358, 0.00094521, 7.25989378, 0.99527665, 0.99751121, 0.49255032,\
+-	-6.26147379, -0.00154282, 0.00094475, 7.25993097, 0.99527899, 0.99751243, 0.49255166,\
+-	-6.26151008, -0.00154206, 0.00094429, 7.25996802, 0.99528132, 0.99751365, 0.49255299,\
+-	-6.26154624, -0.00154131, 0.00094383, 7.26000494, 0.99528366, 0.99751486, 0.49255432,\
+-	-6.26158228, -0.00154055, 0.00094337, 7.26004173, 0.99528599, 0.99751608, 0.49255564,\
+-	-6.26161818, -0.00153979, 0.00094292, 7.26007839, 0.99528832, 0.99751729, 0.49255696,\
+-	-6.26165395, -0.00153904, 0.00094246, 7.26011492, 0.99529065, 0.99751851, 0.49255828,\
+-	-6.26168960, -0.00153828, 0.00094200, 7.26015132, 0.99529297, 0.99751972, 0.49255958,\
+-	-6.26172512, -0.00153753, 0.00094155, 7.26018759, 0.99529530, 0.99752093, 0.49256090,\
+-	-6.26176051, -0.00153677, 0.00094109, 7.26022373, 0.99529762, 0.99752214, 0.49256219,\
+-	-6.26179577, -0.00153602, 0.00094063, 7.26025975, 0.99529994, 0.99752334, 0.49256349,\
+-	-6.26183090, -0.00153527, 0.00094018, 7.26029563, 0.99530226, 0.99752455, 0.49256478,\
+-	-6.26186591, -0.00153452, 0.00093972, 7.26033139, 0.99530457, 0.99752576, 0.49256609,\
+-	-6.26190080, -0.00153377, 0.00093927, 7.26036703, 0.99530688, 0.99752696, 0.49256738,\
+-	-6.26193555, -0.00153302, 0.00093882, 7.26040254, 0.99530919, 0.99752817, 0.49256866,\
+-	-6.26197019, -0.00153227, 0.00093836, 7.26043792, 0.99531150, 0.99752937, 0.49256993,\
+-	-6.26200470, -0.00153152, 0.00093791, 7.26047317, 0.99531381, 0.99753057, 0.49257121,\
+-	-6.26203908, -0.00153077, 0.00093746, 7.26050831, 0.99531611, 0.99753177, 0.49257249,\
+-	-6.26207334, -0.00153003, 0.00093700, 7.26054331, 0.99531841, 0.99753297, 0.49257375,\
+-	-6.26210748, -0.00152928, 0.00093655, 7.26057820, 0.99532071, 0.99753417, 0.49257501,\
+-	-6.26214149, -0.00152853, 0.00093610, 7.26061296, 0.99532301, 0.99753537, 0.49257629,\
+-	-6.26217539, -0.00152779, 0.00093565, 7.26064760, 0.99532530, 0.99753656, 0.49257754,\
+-	-6.26220916, -0.00152705, 0.00093520, 7.26068211, 0.99532759, 0.99753776, 0.49257879,\
+-	-6.26224280, -0.00152630, 0.00093475, 7.26071650, 0.99532988, 0.99753895, 0.49258003,\
+-	-6.26227633, -0.00152556, 0.00093430, 7.26075077, 0.99533217, 0.99754014, 0.49258128,\
+-	-6.26230974, -0.00152482, 0.00093385, 7.26078492, 0.99533446, 0.99754133, 0.49258252,\
+-	-6.26234303, -0.00152408, 0.00093340, 7.26081895, 0.99533674, 0.99754253, 0.49258376,\
+-	-6.26237620, -0.00152333, 0.00093295, 7.26085286, 0.99533902, 0.99754372, 0.49258498,\
+-	-6.26240924, -0.00152259, 0.00093250, 7.26088665, 0.99534130, 0.99754490, 0.49258622,\
+-	-6.26244217, -0.00152186, 0.00093205, 7.26092032, 0.99534358, 0.99754609, 0.49258745,\
+-	-6.26247499, -0.00152112, 0.00093161, 7.26095387, 0.99534586, 0.99754728, 0.49258868,\
+-	-6.26250768, -0.00152038, 0.00093116, 7.26098730, 0.99534813, 0.99754846, 0.49258989,\
+-	-6.26254025, -0.00151964, 0.00093071, 7.26102061, 0.99535040, 0.99754965, 0.49259110,\
+-	-6.26257271, -0.00151890, 0.00093027, 7.26105381, 0.99535267, 0.99755083, 0.49259230,\
+-	-6.26260505, -0.00151817, 0.00092982, 7.26108689, 0.99535493, 0.99755201, 0.49259351,\
+-	-6.26263728, -0.00151743, 0.00092937, 7.26111985, 0.99535720, 0.99755319, 0.49259471,\
+-	-6.26266939, -0.00151670, 0.00092893, 7.26115269, 0.99535946, 0.99755437, 0.49259592,\
+-	-6.26270138, -0.00151596, 0.00092848, 7.26118542, 0.99536172, 0.99755555, 0.49259711,\
+-	-6.26273326, -0.00151523, 0.00092804, 7.26121803, 0.99536398, 0.99755673, 0.49259829,\
+-	-6.26276503, -0.00151450, 0.00092760, 7.26125053, 0.99536623, 0.99755790, 0.49259950,\
+-	-6.26279668, -0.00151377, 0.00092715, 7.26128291, 0.99536849, 0.99755908, 0.49260067,\
+-	-6.26282822, -0.00151304, 0.00092671, 7.26131518, 0.99537074, 0.99756025, 0.49260186,\
+-	-6.26285964, -0.00151231, 0.00092627, 7.26134733, 0.99537299, 0.99756143, 0.49260303,\
+-	-6.26289095, -0.00151158, 0.00092582, 7.26137937, 0.99537524, 0.99756260, 0.49260421,\
+-	-6.26292215, -0.00151085, 0.00092538, 7.26141130, 0.99537748, 0.99756377, 0.49260538,\
+-	-6.26295323, -0.00151012, 0.00092494, 7.26144311, 0.99537972, 0.99756494, 0.49260653,\
+-	-6.26298421, -0.00150939, 0.00092450, 7.26147481, 0.99538196, 0.99756611, 0.49260770,\
+-	-6.26301507, -0.00150866, 0.00092406, 7.26150640, 0.99538420, 0.99756728, 0.49260887,\
+-	-6.26304582, -0.00150794, 0.00092362, 7.26153788, 0.99538644, 0.99756844, 0.49261002,\
+-	-6.26307646, -0.00150721, 0.00092318, 7.26156925, 0.99538867, 0.99756961, 0.49261117,\
+-	-6.26310699, -0.00150649, 0.00092274, 7.26160050, 0.99539091, 0.99757078, 0.49261231,\
+-	-6.26313741, -0.00150576, 0.00092230, 7.26163165, 0.99539314, 0.99757194, 0.49261347,\
+-	-6.26316772, -0.00150504, 0.00092186, 7.26166269, 0.99539536, 0.99757310, 0.49261461,\
+-	-6.26319793, -0.00150431, 0.00092142, 7.26169361, 0.99539759, 0.99757426, 0.49261575,\
+-	-6.26322802, -0.00150359, 0.00092098, 7.26172443, 0.99539981, 0.99757542, 0.49261688,\
+-	-6.26325801, -0.00150287, 0.00092055, 7.26175513, 0.99540204, 0.99757658, 0.49261801,\
+-	-6.26328788, -0.00150215, 0.00092011, 7.26178573, 0.99540426, 0.99757774, 0.49261913,\
+-	-6.26331765, -0.00150143, 0.00091967, 7.26181623, 0.99540647, 0.99757890, 0.49262025,\
+-	-6.26334732, -0.00150071, 0.00091924, 7.26184661, 0.99540869, 0.99758006, 0.49262138,\
+-	-6.26337687, -0.00149999, 0.00091880, 7.26187688, 0.99541090, 0.99758121, 0.49262250,\
+-	-6.26340633, -0.00149927, 0.00091836, 7.26190705, 0.99541311, 0.99758236, 0.49262361,\
+-	-6.26343567, -0.00149855, 0.00091793, 7.26193712, 0.99541532, 0.99758352, 0.49262472,\
+-	-6.26346491, -0.00149784, 0.00091749, 7.26196707, 0.99541753, 0.99758467, 0.49262583,\
+-	-6.26349404, -0.00149712, 0.00091706, 7.26199692, 0.99541974, 0.99758582, 0.49262693,\
+-	-6.26352307, -0.00149640, 0.00091662, 7.26202667, 0.99542194, 0.99758697, 0.49262803,\
+-	-6.26355200, -0.00149569, 0.00091619, 7.26205631, 0.99542414, 0.99758812, 0.49262913,\
+-	-6.26358082, -0.00149498, 0.00091576, 7.26208585, 0.99542634, 0.99758927, 0.49263021,\
+-	-6.26360954, -0.00149426, 0.00091532, 7.26211528, 0.99542854, 0.99759042, 0.49263131,\
+-	-6.26363815, -0.00149355, 0.00091489, 7.26214460, 0.99543073, 0.99759156, 0.49263239,\
+-	-6.26366666, -0.00149284, 0.00091446, 7.26217383, 0.99543292, 0.99759271, 0.49263348,\
+-	-6.26369507, -0.00149212, 0.00091403, 7.26220295, 0.99543511, 0.99759385, 0.49263456,\
+-	-6.26372338, -0.00149141, 0.00091359, 7.26223197, 0.99543730, 0.99759499, 0.49263563,\
+-	-6.26375159, -0.00149070, 0.00091316, 7.26226088, 0.99543949, 0.99759613, 0.49263671,\
+-	-6.26377969, -0.00148999, 0.00091273, 7.26228970, 0.99544167, 0.99759728, 0.49263778,\
+-	-6.26380769, -0.00148928, 0.00091230, 7.26231841, 0.99544386, 0.99759841, 0.49263884,\
+-	-6.26383560, -0.00148857, 0.00091187, 7.26234702, 0.99544604, 0.99759955, 0.49263991,\
+-	-6.26386340, -0.00148787, 0.00091144, 7.26237553, 0.99544821, 0.99760069, 0.49264097,\
+-	-6.26389110, -0.00148716, 0.00091101, 7.26240394, 0.99545039, 0.99760183, 0.49264203,\
+-	-6.26391870, -0.00148645, 0.00091058, 7.26243225, 0.99545257, 0.99760296, 0.49264308,\
+-	-6.26394621, -0.00148575, 0.00091016, 7.26246046, 0.99545474, 0.99760410, 0.49264413,\
+-	-6.26397361, -0.00148504, 0.00090973, 7.26248857, 0.99545691, 0.99760523, 0.49264518,\
+-	-6.26400092, -0.00148434, 0.00090930, 7.26251658, 0.99545908, 0.99760636, 0.49264622,\
+-	-6.26402813, -0.00148363, 0.00090887, 7.26254449, 0.99546124, 0.99760750, 0.49264726,\
+-	-6.26405524, -0.00148293, 0.00090844, 7.26257231, 0.99546341, 0.99760863, 0.49264830,\
+-	-6.26408225, -0.00148223, 0.00090802, 7.26260002, 0.99546557, 0.99760976, 0.49264934,\
+-	-6.26410916, -0.00148152, 0.00090759, 7.26262764, 0.99546773, 0.99761088, 0.49265036,\
+-	-6.26413598, -0.00148082, 0.00090717, 7.26265516, 0.99546989, 0.99761201, 0.49265140,\
+-	-6.26416271, -0.00148012, 0.00090674, 7.26268258, 0.99547204, 0.99761314, 0.49265242,\
+-	-6.26418933, -0.00147942, 0.00090631, 7.26270991, 0.99547420, 0.99761426, 0.49265345,\
+-	-6.26421586, -0.00147872, 0.00090589, 7.26273714, 0.99547635, 0.99761539, 0.49265447,\
+-	-6.26424230, -0.00147802, 0.00090547, 7.26276428, 0.99547850, 0.99761651, 0.49265547,\
+-	-6.26426864, -0.00147733, 0.00090504, 7.26279132, 0.99548065, 0.99761763, 0.49265649,\
+-	-6.26429489, -0.00147663, 0.00090462, 7.26281826, 0.99548279, 0.99761875, 0.49265751,\
+-	-6.26432104, -0.00147593, 0.00090419, 7.26284511, 0.99548494, 0.99761987, 0.49265851,\
+-	-6.26434710, -0.00147523, 0.00090377, 7.26287186, 0.99548708, 0.99762099, 0.49265951,\
+-	-6.26437306, -0.00147454, 0.00090335, 7.26289852, 0.99548922, 0.99762211, 0.49266051,\
+-	-6.26439893, -0.00147384, 0.00090293, 7.26292509, 0.99549136, 0.99762323, 0.49266151,\
+-	-6.26442471, -0.00147315, 0.00090250, 7.26295156, 0.99549349, 0.99762435, 0.49266249,\
+-	-6.26445040, -0.00147246, 0.00090208, 7.26297794, 0.99549563, 0.99762546, 0.49266350,\
+-	-6.26447599, -0.00147176, 0.00090166, 7.26300423, 0.99549776, 0.99762658, 0.49266448,\
+-	-6.26450150, -0.00147107, 0.00090124, 7.26303043, 0.99549989, 0.99762769, 0.49266547,\
+-	-6.26452691, -0.00147038, 0.00090082, 7.26305653, 0.99550202, 0.99762880, 0.49266646,\
+-	-6.26455222, -0.00146969, 0.00090040, 7.26308254, 0.99550415, 0.99762991, 0.49266744,\
+-	-6.26457745, -0.00146900, 0.00089998, 7.26310846, 0.99550627, 0.99763102, 0.49266841,\
+-	-6.26460259, -0.00146831, 0.00089956, 7.26313428, 0.99550839, 0.99763213, 0.49266939,\
+-	-6.26462764, -0.00146762, 0.00089914, 7.26316002, 0.99551051, 0.99763324, 0.49267035,\
+-	-6.26465259, -0.00146693, 0.00089872, 7.26318567, 0.99551263, 0.99763435, 0.49267132,\
+-	-6.26467746, -0.00146624, 0.00089831, 7.26321122, 0.99551475, 0.99763545, 0.49267230,\
+-	-6.26470224, -0.00146555, 0.00089789, 7.26323669, 0.99551686, 0.99763656, 0.49267325,\
+-	-6.26472693, -0.00146486, 0.00089747, 7.26326207, 0.99551898, 0.99763766, 0.49267421,\
+-	-6.26475153, -0.00146418, 0.00089705, 7.26328735, 0.99552109, 0.99763877, 0.49267517,\
+-	-6.26477604, -0.00146349, 0.00089664, 7.26331255, 0.99552319, 0.99763987, 0.49267611,\
+-	-6.26480047, -0.00146281, 0.00089622, 7.26333766, 0.99552530, 0.99764097, 0.49267707,\
+-	-6.26482481, -0.00146212, 0.00089580, 7.26336268, 0.99552741, 0.99764207, 0.49267802,\
+-	-6.26484906, -0.00146144, 0.00089539, 7.26338762, 0.99552951, 0.99764317, 0.49267897,\
+-	-6.26487322, -0.00146076, 0.00089497, 7.26341246, 0.99553161, 0.99764427, 0.49267991,\
+-	-6.26489730, -0.00146007, 0.00089456, 7.26343722, 0.99553371, 0.99764537, 0.49268085,\
+-	-6.26492129, -0.00145939, 0.00089414, 7.26346189, 0.99553581, 0.99764646, 0.49268179,\
+-	-6.26494519, -0.00145871, 0.00089373, 7.26348648, 0.99553790, 0.99764756, 0.49268272,\
+-	-6.26496901, -0.00145803, 0.00089332, 7.26351098, 0.99553999, 0.99764865, 0.49268365,\
+-	-6.26499274, -0.00145735, 0.00089290, 7.26353539, 0.99554209, 0.99764975, 0.49268458,\
+-	-6.26501639, -0.00145667, 0.00089249, 7.26355972, 0.99554417, 0.99765084, 0.49268549,\
+-	-6.26503995, -0.00145599, 0.00089208, 7.26358396, 0.99554626, 0.99765193, 0.49268643,\
+-	-6.26506343, -0.00145531, 0.00089166, 7.26360811, 0.99554835, 0.99765302, 0.49268735,\
+-	-6.26508682, -0.00145463, 0.00089125, 7.26363219, 0.99555043, 0.99765411, 0.49268826,\
+-	-6.26511013, -0.00145396, 0.00089084, 7.26365617, 0.99555251, 0.99765520, 0.49268918,\
+-	-6.26513336, -0.00145328, 0.00089043, 7.26368008, 0.99555459, 0.99765629, 0.49269008,\
+-	-6.26515650, -0.00145261, 0.00089002, 7.26370389, 0.99555667, 0.99765738, 0.49269099,\
+-	-6.26517956, -0.00145193, 0.00088961, 7.26372763, 0.99555875, 0.99765846, 0.49269190,\
+-	-6.26520254, -0.00145126, 0.00088920, 7.26375128, 0.99556082, 0.99765955, 0.49269281,\
+-	-6.26522543, -0.00145058, 0.00088879, 7.26377485, 0.99556289, 0.99766063, 0.49269370,\
+-	-6.26524824, -0.00144991, 0.00088838, 7.26379834, 0.99556496, 0.99766171, 0.49269460,\
+-	-6.26527098, -0.00144924, 0.00088797, 7.26382174, 0.99556703, 0.99766280, 0.49269550,\
+-	-6.26529363, -0.00144856, 0.00088756, 7.26384506, 0.99556910, 0.99766388, 0.49269640,\
+-	-6.26531619, -0.00144789, 0.00088715, 7.26386830, 0.99557116, 0.99766496, 0.49269728,\
+-	-6.26533868, -0.00144722, 0.00088674, 7.26389146, 0.99557323, 0.99766604, 0.49269817,\
+-	-6.26536109, -0.00144655, 0.00088634, 7.26391454, 0.99557529, 0.99766711, 0.49269905,\
+-	-6.26538341, -0.00144588, 0.00088593, 7.26393753, 0.99557735, 0.99766819, 0.49269994,\
+-	-6.26540566, -0.00144521, 0.00088552, 7.26396045, 0.99557940, 0.99766927, 0.49270083,\
+-	-6.26542783, -0.00144454, 0.00088511, 7.26398329, 0.99558146, 0.99767034, 0.49270168,\
+-	-6.26544992, -0.00144387, 0.00088471, 7.26400604, 0.99558351, 0.99767142, 0.49270256,\
+-	-6.26547192, -0.00144321, 0.00088430, 7.26402872, 0.99558556, 0.99767249, 0.49270344,\
+-	-6.26549385, -0.00144254, 0.00088390, 7.26405131, 0.99558761, 0.99767356, 0.49270431,\
+-	-6.26551570, -0.00144187, 0.00088349, 7.26407383, 0.99558966, 0.99767463, 0.49270518,\
+-	-6.26553748, -0.00144121, 0.00088309, 7.26409627, 0.99559171, 0.99767571, 0.49270604,\
+-	-6.26555917, -0.00144054, 0.00088268, 7.26411863, 0.99559375, 0.99767678, 0.49270690,\
+-	-6.26558079, -0.00143988, 0.00088228, 7.26414091, 0.99559579, 0.99767784, 0.49270776,\
+-	-6.26560233, -0.00143922, 0.00088187, 7.26416311, 0.99559783, 0.99767891, 0.49270862,\
+-	-6.26562379, -0.00143855, 0.00088147, 7.26418524, 0.99559987, 0.99767998, 0.49270947,\
+-	-6.26564518, -0.00143789, 0.00088107, 7.26420729, 0.99560191, 0.99768104, 0.49271032,\
+-	-6.26566648, -0.00143723, 0.00088066, 7.26422926, 0.99560394, 0.99768211, 0.49271118,\
+-	-6.26568772, -0.00143657, 0.00088026, 7.26425115, 0.99560598, 0.99768317, 0.49271202,\
+-	-6.26570887, -0.00143590, 0.00087986, 7.26427297, 0.99560801, 0.99768424, 0.49271286,\
+-	-6.26572995, -0.00143524, 0.00087946, 7.26429471, 0.99561004, 0.99768530, 0.49271371,\
+-	-6.26575096, -0.00143458, 0.00087906, 7.26431637, 0.99561206, 0.99768636, 0.49271455,\
+-	-6.26577189, -0.00143393, 0.00087865, 7.26433796, 0.99561409, 0.99768742, 0.49271537,\
+-	-6.26579274, -0.00143327, 0.00087825, 7.26435948, 0.99561611, 0.99768848, 0.49271621,\
+-	-6.26581352, -0.00143261, 0.00087785, 7.26438092, 0.99561813, 0.99768954, 0.49271704,\
+-	-6.26583423, -0.00143195, 0.00087745, 7.26440228, 0.99562015, 0.99769059, 0.49271787,\
+-	-6.26585486, -0.00143130, 0.00087705, 7.26442357, 0.99562217, 0.99769165, 0.49271871,\
+-	-6.26587542, -0.00143064, 0.00087665, 7.26444478, 0.99562419, 0.99769271, 0.49271954,\
+-	-6.26589591, -0.00142998, 0.00087626, 7.26446592, 0.99562620, 0.99769376, 0.49272035,\
+-	-6.26591632, -0.00142933, 0.00087586, 7.26448699, 0.99562822, 0.99769482, 0.49272117,\
+-	-6.26593666, -0.00142867, 0.00087546, 7.26450798, 0.99563023, 0.99769587, 0.49272198,\
+-	-6.26595692, -0.00142802, 0.00087506, 7.26452890, 0.99563224, 0.99769692, 0.49272279,\
+-	-6.26597711, -0.00142737, 0.00087466, 7.26454975, 0.99563424, 0.99769797, 0.49272362,\
+-	-6.26599724, -0.00142671, 0.00087426, 7.26457052, 0.99563625, 0.99769902, 0.49272441,\
+-	-6.26601728, -0.00142606, 0.00087387, 7.26459122, 0.99563825, 0.99770007, 0.49272522,\
+-	-6.26603726, -0.00142541, 0.00087347, 7.26461185, 0.99564025, 0.99770112, 0.49272604,\
+-	-6.26605717, -0.00142476, 0.00087307, 7.26463241, 0.99564225, 0.99770217, 0.49272683,\
+-	-6.26607700, -0.00142411, 0.00087268, 7.26465289, 0.99564425, 0.99770321, 0.49272764,\
+-	-6.26609676, -0.00142346, 0.00087228, 7.26467331, 0.99564625, 0.99770426, 0.49272843,\
+-	-6.26611646, -0.00142281, 0.00087189, 7.26469365, 0.99564824, 0.99770530, 0.49272921,\
+-	-6.26613608, -0.00142216, 0.00087149, 7.26471392, 0.99565024, 0.99770635, 0.49273003,\
+-	-6.26615563, -0.00142151, 0.00087110, 7.26473412, 0.99565223, 0.99770739, 0.49273081,\
+-	-6.26617512, -0.00142087, 0.00087070, 7.26475425, 0.99565422, 0.99770843, 0.49273160,\
+-	-6.26619453, -0.00142022, 0.00087031, 7.26477431, 0.99565620, 0.99770947, 0.49273238,\
+-	-6.26621387, -0.00141957, 0.00086992, 7.26479430, 0.99565819, 0.99771051, 0.49273317,\
+-	-6.26623315, -0.00141893, 0.00086952, 7.26481422, 0.99566017, 0.99771155, 0.49273396,\
+-	-6.26625235, -0.00141828, 0.00086913, 7.26483407, 0.99566216, 0.99771259, 0.49273473,\
+-	-6.26627149, -0.00141764, 0.00086874, 7.26485385, 0.99566414, 0.99771362, 0.49273551,\
+-	-6.26629056, -0.00141699, 0.00086835, 7.26487356, 0.99566612, 0.99771466, 0.49273628,\
+-	-6.26630956, -0.00141635, 0.00086795, 7.26489321, 0.99566809, 0.99771570, 0.49273706,\
+-	-6.26632849, -0.00141571, 0.00086756, 7.26491278, 0.99567007, 0.99771673, 0.49273783,\
+-	-6.26634735, -0.00141506, 0.00086717, 7.26493229, 0.99567204, 0.99771776, 0.49273859,\
+-	-6.26636615, -0.00141442, 0.00086678, 7.26495173, 0.99567401, 0.99771880, 0.49273935,\
+-	-6.26638488, -0.00141378, 0.00086639, 7.26497110, 0.99567598, 0.99771983, 0.49274013,\
+-	-6.26640355, -0.00141314, 0.00086600, 7.26499041, 0.99567795, 0.99772086, 0.49274089,\
+-	-6.26642214, -0.00141250, 0.00086561, 7.26500964, 0.99567992, 0.99772189, 0.49274164,\
+-	-6.26644067, -0.00141186, 0.00086522, 7.26502881, 0.99568188, 0.99772292, 0.49274241,\
+-	-6.26645914, -0.00141122, 0.00086483, 7.26504792, 0.99568384, 0.99772395, 0.49274316,\
+-	-6.26647754, -0.00141058, 0.00086444, 7.26506695, 0.99568580, 0.99772497, 0.49274392,\
+-	-6.26649587, -0.00140995, 0.00086405, 7.26508592, 0.99568776, 0.99772600, 0.49274466,\
+-	-6.26651414, -0.00140931, 0.00086366, 7.26510483, 0.99568972, 0.99772703, 0.49274542,\
+-	-6.26653234, -0.00140867, 0.00086328, 7.26512367, 0.99569168, 0.99772805, 0.49274618,\
+-	-6.26655048, -0.00140804, 0.00086289, 7.26514244, 0.99569363, 0.99772908, 0.49274690,\
+-	-6.26656855, -0.00140740, 0.00086250, 7.26516115, 0.99569558, 0.99773010, 0.49274765,\
+-	-6.26658656, -0.00140677, 0.00086211, 7.26517979, 0.99569753, 0.99773112, 0.49274839,\
+-	-6.26660450, -0.00140613, 0.00086173, 7.26519837, 0.99569948, 0.99773214, 0.49274912,\
+-	-6.26662238, -0.00140550, 0.00086134, 7.26521688, 0.99570143, 0.99773316, 0.49274986,\
+-	-6.26664020, -0.00140486, 0.00086096, 7.26523533, 0.99570337, 0.99773418, 0.49275059,\
+-	-6.26665795, -0.00140423, 0.00086057, 7.26525372, 0.99570532, 0.99773520, 0.49275132,\
+-	-6.26667564, -0.00140360, 0.00086018, 7.26527204, 0.99570726, 0.99773622, 0.49275206,\
+-	-6.26669326, -0.00140297, 0.00085980, 7.26529030, 0.99570920, 0.99773723, 0.49275276,\
+-	-6.26671083, -0.00140234, 0.00085942, 7.26530849, 0.99571114, 0.99773825, 0.49275350,\
+-	-6.26672833, -0.00140171, 0.00085903, 7.26532662, 0.99571307, 0.99773926, 0.49275423,\
+-	-6.26674577, -0.00140108, 0.00085865, 7.26534469, 0.99571501, 0.99774028, 0.49275495,\
+-	-6.26676314, -0.00140045, 0.00085826, 7.26536270, 0.99571694, 0.99774129, 0.49275567,\
+-	-6.26678046, -0.00139982, 0.00085788, 7.26538064, 0.99571887, 0.99774230, 0.49275639,\
+-	-6.26679771, -0.00139919, 0.00085750, 7.26539852, 0.99572080, 0.99774331, 0.49275711,\
+-	-6.26681490, -0.00139856, 0.00085711, 7.26541634, 0.99572273, 0.99774433, 0.49275782,\
+-	-6.26683203, -0.00139793, 0.00085673, 7.26543410, 0.99572466, 0.99774533, 0.49275852,\
+-	-6.26684910, -0.00139731, 0.00085635, 7.26545179, 0.99572658, 0.99774634, 0.49275924,\
+-	-6.26686611, -0.00139668, 0.00085597, 7.26546943, 0.99572851, 0.99774735, 0.49275995,\
+-	-6.26688306, -0.00139605, 0.00085559, 7.26548700, 0.99573043, 0.99774836, 0.49276065,\
+-	-6.26689994, -0.00139543, 0.00085521, 7.26550451, 0.99573235, 0.99774936, 0.49276134,\
+-	-6.26691677, -0.00139481, 0.00085482, 7.26552196, 0.99573426, 0.99775037, 0.49276204,\
+-	-6.26693354, -0.00139418, 0.00085444, 7.26553936, 0.99573618, 0.99775137, 0.49276274,\
+-	-6.26695024, -0.00139356, 0.00085406, 7.26555669, 0.99573809, 0.99775238, 0.49276344,\
+-	-6.26696689, -0.00139293, 0.00085368, 7.26557396, 0.99574001, 0.99775338, 0.49276413,\
+-	-6.26698348, -0.00139231, 0.00085331, 7.26559117, 0.99574192, 0.99775438, 0.49276484,\
+-	-6.26700001, -0.00139169, 0.00085293, 7.26560832, 0.99574383, 0.99775538, 0.49276553,\
+-	-6.26701648, -0.00139107, 0.00085255, 7.26562541, 0.99574574, 0.99775638, 0.49276621,\
+-	-6.26703289, -0.00139045, 0.00085217, 7.26564245, 0.99574764, 0.99775738, 0.49276691,\
+-	-6.26704925, -0.00138983, 0.00085179, 7.26565942, 0.99574955, 0.99775838, 0.49276759,\
+-	-6.26706554, -0.00138921, 0.00085141, 7.26567633, 0.99575145, 0.99775938, 0.49276826,\
+-	-6.26708178, -0.00138859, 0.00085104, 7.26569319, 0.99575335, 0.99776038, 0.49276895,\
+-	-6.26709796, -0.00138797, 0.00085066, 7.26570999, 0.99575525, 0.99776137, 0.49276963,\
+-	-6.26711408, -0.00138735, 0.00085028, 7.26572673, 0.99575715, 0.99776237, 0.49277030,\
+-	-6.26713015, -0.00138674, 0.00084990, 7.26574341, 0.99575904, 0.99776336, 0.49277097,\
+-	-6.26714616, -0.00138612, 0.00084953, 7.26576004, 0.99576094, 0.99776435, 0.49277165,\
+-	-6.26716211, -0.00138550, 0.00084915, 7.26577661, 0.99576283, 0.99776535, 0.49277232,\
+-	-6.26717800, -0.00138489, 0.00084878, 7.26579312, 0.99576472, 0.99776634, 0.49277298,\
+-	-6.26719384, -0.00138427, 0.00084840, 7.26580957, 0.99576661, 0.99776733, 0.49277366,\
+-	-6.26720962, -0.00138366, 0.00084803, 7.26582597, 0.99576850, 0.99776832, 0.49277432,\
+-	-6.26722535, -0.00138304, 0.00084765, 7.26584231, 0.99577038, 0.99776931, 0.49277499,\
+-	-6.26724102, -0.00138243, 0.00084728, 7.26585859, 0.99577227, 0.99777029, 0.49277565,\
+-	-6.26725663, -0.00138181, 0.00084690, 7.26587482, 0.99577415, 0.99777128, 0.49277630,\
+-	-6.26727219, -0.00138120, 0.00084653, 7.26589099, 0.99577603, 0.99777227, 0.49277698,\
+-	-6.26728769, -0.00138059, 0.00084616, 7.26590710, 0.99577791, 0.99777325, 0.49277763,\
+-	-6.26730314, -0.00137998, 0.00084578, 7.26592316, 0.99577979, 0.99777424, 0.49277828,\
+-	-6.26731854, -0.00137937, 0.00084541, 7.26593917, 0.99578166, 0.99777522, 0.49277893,\
+-	-6.26733388, -0.00137876, 0.00084504, 7.26595512, 0.99578354, 0.99777621, 0.49277959,\
+-	-6.26734916, -0.00137815, 0.00084467, 7.26597101, 0.99578541, 0.99777719, 0.49278024,\
+-	-6.26736439, -0.00137754, 0.00084429, 7.26598685, 0.99578728, 0.99777817, 0.49278088,\
+-	-6.26737957, -0.00137693, 0.00084392, 7.26600264, 0.99578915, 0.99777915, 0.49278153,\
+-	-6.26739469, -0.00137632, 0.00084355, 7.26601837, 0.99579102, 0.99778013, 0.49278219,\
+-	-6.26740976, -0.00137571, 0.00084318, 7.26603405, 0.99579289, 0.99778111, 0.49278281,\
+-	-6.26742477, -0.00137510, 0.00084281, 7.26604967, 0.99579475, 0.99778209, 0.49278347,\
+-	-6.26743974, -0.00137450, 0.00084244, 7.26606524, 0.99579661, 0.99778306, 0.49278410,\
+-	-6.26745464, -0.00137389, 0.00084207, 7.26608075, 0.99579847, 0.99778404, 0.49278472,\
+-	-6.26746950, -0.00137328, 0.00084170, 7.26609622, 0.99580033, 0.99778502, 0.49278536,\
+-	-6.26748430, -0.00137268, 0.00084133, 7.26611162, 0.99580219, 0.99778599, 0.49278600,\
+-	-6.26749906, -0.00137207, 0.00084096, 7.26612698, 0.99580405, 0.99778696, 0.49278663,\
+-	-6.26751375, -0.00137147, 0.00084059, 7.26614228, 0.99580590, 0.99778794, 0.49278724,\
+-	-6.26752840, -0.00137087, 0.00084022, 7.26615753, 0.99580776, 0.99778891, 0.49278789,\
+-	-6.26754300, -0.00137026, 0.00083986, 7.26617273, 0.99580961, 0.99778988, 0.49278852,\
+-	-6.26755754, -0.00136966, 0.00083949, 7.26618788, 0.99581146, 0.99779085, 0.49278914,\
+-	-6.26757203, -0.00136906, 0.00083912, 7.26620297, 0.99581331, 0.99779182, 0.49278975,\
+-	-6.26758647, -0.00136846, 0.00083875, 7.26621801, 0.99581515, 0.99779279, 0.49279037,\
+-	-6.26760086, -0.00136786, 0.00083839, 7.26623300, 0.99581700, 0.99779376, 0.49279099,\
+-	-6.26761520, -0.00136725, 0.00083802, 7.26624794, 0.99581884, 0.99779472, 0.49279161,\
+-	-6.26762949, -0.00136665, 0.00083765, 7.26626283, 0.99582068, 0.99779569, 0.49279223,\
+-	-6.26764372, -0.00136605, 0.00083729, 7.26627767, 0.99582252, 0.99779666, 0.49279284,\
+-	-6.26765791, -0.00136546, 0.00083692, 7.26629245, 0.99582436, 0.99779762, 0.49279345,\
+-	-6.26767205, -0.00136486, 0.00083656, 7.26630719, 0.99582620, 0.99779859, 0.49279407,\
+-	-6.26768613, -0.00136426, 0.00083619, 7.26632187, 0.99582804, 0.99779955, 0.49279468,\
+-	-6.26770017, -0.00136366, 0.00083583, 7.26633651, 0.99582987, 0.99780051, 0.49279528,\
+-	-6.26771416, -0.00136306, 0.00083546, 7.26635109, 0.99583170, 0.99780147, 0.49279588,\
+-	-6.26772809, -0.00136247, 0.00083510, 7.26636562, 0.99583353, 0.99780243, 0.49279649,\
+-	-6.26774198, -0.00136187, 0.00083474, 7.26638011, 0.99583536, 0.99780339, 0.49279710,\
+-	-6.26775582, -0.00136128, 0.00083437, 7.26639454, 0.99583719, 0.99780435, 0.49279770,\
+-	-6.26776961, -0.00136068, 0.00083401, 7.26640893, 0.99583902, 0.99780531, 0.49279829,\
+-	-6.26778335, -0.00136009, 0.00083365, 7.26642326, 0.99584084, 0.99780627, 0.49279888,\
+-	-6.26779704, -0.00135949, 0.00083328, 7.26643755, 0.99584266, 0.99780722, 0.49279946,\
+-	-6.26781069, -0.00135890, 0.00083292, 7.26645179, 0.99584449, 0.99780818, 0.49280008,\
+-	-6.26782428, -0.00135831, 0.00083256, 7.26646598, 0.99584631, 0.99780913, 0.49280067,\
+-	-6.26783783, -0.00135771, 0.00083220, 7.26648012, 0.99584812, 0.99781009, 0.49280125,\
+-	-6.26785133, -0.00135712, 0.00083184, 7.26649421, 0.99584994, 0.99781104, 0.49280185,\
+-	-6.26786479, -0.00135653, 0.00083148, 7.26650826, 0.99585175, 0.99781199, 0.49280244,\
+-	-6.26787819, -0.00135594, 0.00083111, 7.26652225, 0.99585357, 0.99781295, 0.49280301,\
+-	-6.26789155, -0.00135535, 0.00083075, 7.26653620, 0.99585538, 0.99781390, 0.49280360,\
+-	-6.26790486, -0.00135476, 0.00083039, 7.26655010, 0.99585719, 0.99781485, 0.49280419,\
+-	-6.26791812, -0.00135417, 0.00083003, 7.26656395, 0.99585900, 0.99781580, 0.49280476,\
+-	-6.26793134, -0.00135358, 0.00082967, 7.26657776, 0.99586081, 0.99781675, 0.49280534,\
+-	-6.26794451, -0.00135299, 0.00082931, 7.26659152, 0.99586261, 0.99781769, 0.49280594,\
+-	-6.26795764, -0.00135240, 0.00082896, 7.26660523, 0.99586442, 0.99781864, 0.49280650,\
+-	-6.26797071, -0.00135182, 0.00082860, 7.26661890, 0.99586622, 0.99781959, 0.49280708,\
+-	-6.26798374, -0.00135123, 0.00082824, 7.26663252, 0.99586802, 0.99782053, 0.49280764,\
+-	-6.26799673, -0.00135064, 0.00082788, 7.26664609, 0.99586982, 0.99782148, 0.49280822,\
+-	-6.26800967, -0.00135006, 0.00082752, 7.26665961, 0.99587162, 0.99782242, 0.49280878,\
+-	-6.26802256, -0.00134947, 0.00082717, 7.26667309, 0.99587341, 0.99782336, 0.49280935,\
+-	-6.26803541, -0.00134889, 0.00082681, 7.26668653, 0.99587521, 0.99782431, 0.49280992,\
+-	-6.26804822, -0.00134830, 0.00082645, 7.26669991, 0.99587700, 0.99782525, 0.49281048,\
+-	-6.26806098, -0.00134772, 0.00082609, 7.26671326, 0.99587879, 0.99782619, 0.49281107,\
+-	-6.26807369, -0.00134713, 0.00082574, 7.26672655, 0.99588058, 0.99782713, 0.49281162,\
+-	-6.26808636, -0.00134655, 0.00082538, 7.26673981, 0.99588237, 0.99782807, 0.49281218,\
+-	-6.26809898, -0.00134597, 0.00082503, 7.26675301, 0.99588416, 0.99782900, 0.49281274,\
+-	-6.26811156, -0.00134539, 0.00082467, 7.26676617, 0.99588595, 0.99782994, 0.49281329,\
+-	-6.26812410, -0.00134481, 0.00082432, 7.26677929, 0.99588773, 0.99783088, 0.49281384,\
+-	-6.26813659, -0.00134422, 0.00082396, 7.26679236, 0.99588951, 0.99783181, 0.49281439,\
+-	-6.26814904, -0.00134364, 0.00082361, 7.26680539, 0.99589129, 0.99783275, 0.49281496,\
+-	-6.26816144, -0.00134306, 0.00082325, 7.26681838, 0.99589307, 0.99783368, 0.49281552,\
+-	-6.26817380, -0.00134248, 0.00082290, 7.26683132, 0.99589485, 0.99783462, 0.49281605,\
+-	-6.26818612, -0.00134191, 0.00082255, 7.26684421, 0.99589663, 0.99783555, 0.49281661,\
+-	-6.26819839, -0.00134133, 0.00082219, 7.26685706, 0.99589840, 0.99783648, 0.49281716,\
+-	-6.26821062, -0.00134075, 0.00082184, 7.26686987, 0.99590018, 0.99783741, 0.49281769,\
+-	-6.26822281, -0.00134017, 0.00082149, 7.26688264, 0.99590195, 0.99783834, 0.49281824,\
+-	-6.26823495, -0.00133959, 0.00082113, 7.26689536, 0.99590372, 0.99783927, 0.49281878,\
+-	-6.26824705, -0.00133902, 0.00082078, 7.26690804, 0.99590549, 0.99784020, 0.49281933,\
+-	-6.26825911, -0.00133844, 0.00082043, 7.26692067, 0.99590725, 0.99784113, 0.49281987,\
+-	-6.26827113, -0.00133787, 0.00082008, 7.26693326, 0.99590902, 0.99784206, 0.49282040,\
+-	-6.26828310, -0.00133729, 0.00081973, 7.26694581, 0.99591078, 0.99784298, 0.49282094,\
+-	-6.26829504, -0.00133672, 0.00081938, 7.26695832, 0.99591255, 0.99784391, 0.49282147,\
+-	-6.26830693, -0.00133614, 0.00081902, 7.26697079, 0.99591431, 0.99784483, 0.49282201,\
+-	-6.26831878, -0.00133557, 0.00081867, 7.26698321, 0.99591607, 0.99784576, 0.49282254,\
+-	-6.26833058, -0.00133499, 0.00081832, 7.26699559, 0.99591783, 0.99784668, 0.49282308,\
+-	-6.26834235, -0.00133442, 0.00081797, 7.26700793, 0.99591958, 0.99784760, 0.49282360,\
+-	-6.26835407, -0.00133385, 0.00081762, 7.26702023, 0.99592134, 0.99784853, 0.49282414,\
+-	-6.26836576, -0.00133328, 0.00081728, 7.26703248, 0.99592309, 0.99784945, 0.49282465,\
+-	-6.26837740, -0.00133271, 0.00081693, 7.26704469, 0.99592485, 0.99785037, 0.49282520,\
+-	-6.26838900, -0.00133214, 0.00081658, 7.26705687, 0.99592660, 0.99785129, 0.49282572,\
+-	-6.26840056, -0.00133157, 0.00081623, 7.26706900, 0.99592835, 0.99785221, 0.49282624,\
+-	-6.26841209, -0.00133100, 0.00081588, 7.26708109, 0.99593009, 0.99785312, 0.49282676,\
+-	-6.26842357, -0.00133043, 0.00081553, 7.26709314, 0.99593184, 0.99785404, 0.49282728,\
+-	-6.26843501, -0.00132986, 0.00081519, 7.26710515, 0.99593359, 0.99785496, 0.49282780,\
+-	-6.26844641, -0.00132929, 0.00081484, 7.26711712, 0.99593533, 0.99785587, 0.49282829,\
+-	-6.26845777, -0.00132872, 0.00081449, 7.26712905, 0.99593707, 0.99785679, 0.49282883,\
+-	-6.26846909, -0.00132815, 0.00081414, 7.26714093, 0.99593881, 0.99785770, 0.49282934,\
+-	-6.26848037, -0.00132759, 0.00081380, 7.26715278, 0.99594055, 0.99785862, 0.49282986,\
+-	-6.26849161, -0.00132702, 0.00081345, 7.26716459, 0.99594229, 0.99785953, 0.49283037,\
+-	-6.26850281, -0.00132645, 0.00081311, 7.26717636, 0.99594402, 0.99786044, 0.49283087,\
+-	-6.26851397, -0.00132589, 0.00081276, 7.26718809, 0.99594576, 0.99786135, 0.49283138,\
+-	-6.26852510, -0.00132532, 0.00081242, 7.26719977, 0.99594749, 0.99786226, 0.49283189,\
+-	-6.26853618, -0.00132476, 0.00081207, 7.26721142, 0.99594922, 0.99786317, 0.49283239,\
+-	-6.26854723, -0.00132419, 0.00081173, 7.26722303, 0.99595095, 0.99786408, 0.49283291,\
+-	-6.26855824, -0.00132363, 0.00081138, 7.26723461, 0.99595268, 0.99786499, 0.49283341,\
+-	-6.26856921, -0.00132307, 0.00081104, 7.26724614, 0.99595441, 0.99786590, 0.49283391,\
+-	-6.26858014, -0.00132251, 0.00081069, 7.26725763, 0.99595614, 0.99786680, 0.49283441,\
+-	-6.26859103, -0.00132194, 0.00081035, 7.26726909, 0.99595786, 0.99786771, 0.49283490,\
+-	-6.26860188, -0.00132138, 0.00081001, 7.26728050, 0.99595958, 0.99786861, 0.49283543,\
+-	-6.26861270, -0.00132082, 0.00080966, 7.26729188, 0.99596131, 0.99786952, 0.49283590,\
+-	-6.26862348, -0.00132026, 0.00080932, 7.26730322, 0.99596303, 0.99787042, 0.49283641,\
+-	-6.26863422, -0.00131970, 0.00080898, 7.26731452, 0.99596474, 0.99787132, 0.49283690,\
+-	-6.26864493, -0.00131914, 0.00080864, 7.26732579, 0.99596646, 0.99787223, 0.49283740,\
+-	-6.26865559, -0.00131858, 0.00080829, 7.26733701, 0.99596818, 0.99787313, 0.49283789,\
+-	-6.26866622, -0.00131802, 0.00080795, 7.26734820, 0.99596989, 0.99787403, 0.49283838,\
+-	-6.26867681, -0.00131746, 0.00080761, 7.26735935, 0.99597160, 0.99787493, 0.49283886,\
+-	-6.26868737, -0.00131690, 0.00080727, 7.26737047, 0.99597332, 0.99787583, 0.49283935,\
+-	-6.26869789, -0.00131635, 0.00080693, 7.26738154, 0.99597503, 0.99787673, 0.49283983,\
+-	-6.26870837, -0.00131579, 0.00080659, 7.26739258, 0.99597673, 0.99787762, 0.49284032,\
+-	-6.26871882, -0.00131523, 0.00080625, 7.26740358, 0.99597844, 0.99787852, 0.49284083,\
+-	-6.26872923, -0.00131468, 0.00080591, 7.26741455, 0.99598015, 0.99787942, 0.49284129,\
+-	-6.26873960, -0.00131412, 0.00080557, 7.26742548, 0.99598185, 0.99788031, 0.49284178,\
+-	-6.26874993, -0.00131357, 0.00080523, 7.26743637, 0.99598355, 0.99788121, 0.49284226,\
+-	-6.26876024, -0.00131301, 0.00080489, 7.26744723, 0.99598526, 0.99788210, 0.49284273,\
+-	-6.26877050, -0.00131246, 0.00080455, 7.26745804, 0.99598696, 0.99788299, 0.49284320,\
+-	-6.26878073, -0.00131190, 0.00080421, 7.26746883, 0.99598865, 0.99788389, 0.49284369,\
+-	-6.26879092, -0.00131135, 0.00080387, 7.26747958, 0.99599035, 0.99788478, 0.49284417,\
+-	-6.26880108, -0.00131080, 0.00080354, 7.26749029, 0.99599205, 0.99788567, 0.49284465,\
+-	-6.26881120, -0.00131024, 0.00080320, 7.26750096, 0.99599374, 0.99788656, 0.49284510,\
+-	-6.26882129, -0.00130969, 0.00080286, 7.26751160, 0.99599543, 0.99788745, 0.49284559,\
+-	-6.26883135, -0.00130914, 0.00080252, 7.26752221, 0.99599713, 0.99788834, 0.49284606,\
+-	-6.26884136, -0.00130859, 0.00080219, 7.26753278, 0.99599882, 0.99788923, 0.49284653,\
+-	-6.26885135, -0.00130804, 0.00080185, 7.26754331, 0.99600050, 0.99789011, 0.49284699,\
+-	-6.26886129, -0.00130749, 0.00080151, 7.26755381, 0.99600219, 0.99789100, 0.49284746,\
+-	-6.26887121, -0.00130694, 0.00080118, 7.26756427, 0.99600388, 0.99789189, 0.49284793,\
+-	-6.26888109, -0.00130639, 0.00080084, 7.26757470, 0.99600556, 0.99789277, 0.49284838,\
+-	-6.26889093, -0.00130584, 0.00080051, 7.26758509, 0.99600724, 0.99789365, 0.49284885,\
+-	-6.26890074, -0.00130529, 0.00080017, 7.26759545, 0.99600893, 0.99789454, 0.49284932,\
+-	-6.26891052, -0.00130474, 0.00079984, 7.26760578, 0.99601061, 0.99789542, 0.49284977,\
+-	-6.26892026, -0.00130420, 0.00079950, 7.26761607, 0.99601228, 0.99789630, 0.49285024,\
+-	-6.26892997, -0.00130365, 0.00079917, 7.26762633, 0.99601396, 0.99789719, 0.49285069,\
+-	-6.26893965, -0.00130310, 0.00079883, 7.26763655, 0.99601564, 0.99789807, 0.49285114,\
+-	-6.26894929, -0.00130256, 0.00079850, 7.26764674, 0.99601731, 0.99789895, 0.49285162,\
+-	-6.26895890, -0.00130201, 0.00079816, 7.26765689, 0.99601899, 0.99789983, 0.49285206,\
+-	-6.26896848, -0.00130146, 0.00079783, 7.26766701, 0.99602066, 0.99790070, 0.49285251,\
+-	-6.26897802, -0.00130092, 0.00079750, 7.26767710, 0.99602233, 0.99790158, 0.49285297,\
+-	-6.26898753, -0.00130038, 0.00079717, 7.26768715, 0.99602400, 0.99790246, 0.49285344,\
+-	-6.26899700, -0.00129983, 0.00079683, 7.26769717, 0.99602566, 0.99790334, 0.49285388,\
+-	-6.26900645, -0.00129929, 0.00079650, 7.26770716, 0.99602733, 0.99790421, 0.49285432,\
+-	-6.26901586, -0.00129875, 0.00079617, 7.26771711, 0.99602900, 0.99790509, 0.49285477,\
+-	-6.26902524, -0.00129820, 0.00079584, 7.26772703, 0.99603066, 0.99790596, 0.49285523,\
+-	-6.26903458, -0.00129766, 0.00079550, 7.26773692, 0.99603232, 0.99790683, 0.49285566,\
+-	-6.26904390, -0.00129712, 0.00079517, 7.26774678, 0.99603398, 0.99790771, 0.49285611,\
+-	-6.26905318, -0.00129658, 0.00079484, 7.26775660, 0.99603564, 0.99790858, 0.49285655,\
+-	-6.26906243, -0.00129604, 0.00079451, 7.26776639, 0.99603730, 0.99790945, 0.49285701,\
+-	-6.26907164, -0.00129550, 0.00079418, 7.26777615, 0.99603896, 0.99791032, 0.49285743,\
+-	-6.26908083, -0.00129496, 0.00079385, 7.26778587, 0.99604061, 0.99791119, 0.49285787,\
+-	-6.26908998, -0.00129442, 0.00079352, 7.26779557, 0.99604227, 0.99791206, 0.49285833,\
+-	-6.26909911, -0.00129388, 0.00079319, 7.26780523, 0.99604392, 0.99791293, 0.49285876,\
+-	-6.26910820, -0.00129334, 0.00079286, 7.26781486, 0.99604557, 0.99791380, 0.49285921,\
+-	-6.26911726, -0.00129280, 0.00079253, 7.26782446, 0.99604722, 0.99791467, 0.49285963,\
+-	-6.26912629, -0.00129226, 0.00079220, 7.26783402, 0.99604887, 0.99791553, 0.49286007,\
+-	-6.26913528, -0.00129173, 0.00079188, 7.26784356, 0.99605051, 0.99791640, 0.49286049,\
+-	-6.26914425, -0.00129119, 0.00079155, 7.26785306, 0.99605216, 0.99791726, 0.49286093,\
+-	-6.26915318, -0.00129065, 0.00079122, 7.26786253, 0.99605380, 0.99791813, 0.49286138,\
+-	-6.26916209, -0.00129012, 0.00079089, 7.26787197, 0.99605545, 0.99791899, 0.49286178,\
+-	-6.26917096, -0.00128958, 0.00079056, 7.26788138, 0.99605709, 0.99791985, 0.49286223,\
+-	-6.26917981, -0.00128905, 0.00079024, 7.26789076, 0.99605873, 0.99792072, 0.49286266,\
+-	-6.26918862, -0.00128851, 0.00078991, 7.26790011, 0.99606037, 0.99792158, 0.49286308,\
+-	-6.26919740, -0.00128798, 0.00078958, 7.26790942, 0.99606201, 0.99792244, 0.49286350,\
+-	-6.26920615, -0.00128744, 0.00078926, 7.26791871, 0.99606364, 0.99792330, 0.49286392,\
+-	-6.26921488, -0.00128691, 0.00078893, 7.26792797, 0.99606528, 0.99792416, 0.49286436,\
+-	-6.26922357, -0.00128638, 0.00078860, 7.26793719, 0.99606691, 0.99792502, 0.49286478,\
+-	-6.26923223, -0.00128585, 0.00078828, 7.26794639, 0.99606854, 0.99792588, 0.49286521,\
+-	-6.26924086, -0.00128531, 0.00078795, 7.26795555, 0.99607017, 0.99792673, 0.49286564,\
+-	-6.26924947, -0.00128478, 0.00078763, 7.26796468, 0.99607180, 0.99792759, 0.49286605,\
+-	-6.26925804, -0.00128425, 0.00078730, 7.26797379, 0.99607343, 0.99792845, 0.49286646,\
+-	-6.26926658, -0.00128372, 0.00078698, 7.26798286, 0.99607506, 0.99792930, 0.49286689,\
+-	-6.26927510, -0.00128319, 0.00078665, 7.26799191, 0.99607668, 0.99793016, 0.49286730,\
+-	-6.26928358, -0.00128266, 0.00078633, 7.26800092, 0.99607831, 0.99793101, 0.49286770,\
+-	-6.26929204, -0.00128213, 0.00078601, 7.26800991, 0.99607993, 0.99793186, 0.49286812,\
+-	-6.26930047, -0.00128160, 0.00078568, 7.26801887, 0.99608155, 0.99793272, 0.49286854,\
+-	-6.26930887, -0.00128107, 0.00078536, 7.26802779, 0.99608317, 0.99793357, 0.49286895,\
+-	-6.26931724, -0.00128054, 0.00078504, 7.26803669, 0.99608479, 0.99793442, 0.49286937,\
+-	-6.26932558, -0.00128002, 0.00078471, 7.26804556, 0.99608641, 0.99793527, 0.49286977,\
+-	-6.26933389, -0.00127949, 0.00078439, 7.26805440, 0.99608802, 0.99793612, 0.49287019,\
+-	-6.26934217, -0.00127896, 0.00078407, 7.26806321, 0.99608964, 0.99793697, 0.49287058,\
+-	-6.26935043, -0.00127844, 0.00078375, 7.26807199, 0.99609125, 0.99793782, 0.49287100,\
+-	-6.26935866, -0.00127791, 0.00078342, 7.26808075, 0.99609287, 0.99793867, 0.49287142,\
+-	-6.26936686, -0.00127738, 0.00078310, 7.26808947, 0.99609448, 0.99793951, 0.49287182,\
+-	-6.26937503, -0.00127686, 0.00078278, 7.26809817, 0.99609609, 0.99794036, 0.49287224,\
+-	-6.26938317, -0.00127634, 0.00078246, 7.26810683, 0.99609769, 0.99794120, 0.49287263,\
+-	-6.26939129, -0.00127581, 0.00078214, 7.26811547, 0.99609930, 0.99794205, 0.49287302,\
+-	-6.26939937, -0.00127529, 0.00078182, 7.26812409, 0.99610091, 0.99794289, 0.49287345,\
+-	-6.26940743, -0.00127476, 0.00078150, 7.26813267, 0.99610251, 0.99794374, 0.49287384,\
+-	-6.26941547, -0.00127424, 0.00078118, 7.26814123, 0.99610411, 0.99794458, 0.49287423,\
+-	-6.26942347, -0.00127372, 0.00078086, 7.26814975, 0.99610572, 0.99794542, 0.49287464,\
+-	-6.26943145, -0.00127320, 0.00078054, 7.26815825, 0.99610732, 0.99794626, 0.49287504,\
+-	-6.26943940, -0.00127267, 0.00078022, 7.26816673, 0.99610892, 0.99794711, 0.49287543,\
+-	-6.26944732, -0.00127215, 0.00077990, 7.26817517, 0.99611051, 0.99794795, 0.49287581,\
+-	-6.26945522, -0.00127163, 0.00077958, 7.26818359, 0.99611211, 0.99794879, 0.49287621,\
+-	-6.26946309, -0.00127111, 0.00077926, 7.26819198, 0.99611370, 0.99794962, 0.49287661,\
+-	-6.26947093, -0.00127059, 0.00077895, 7.26820034, 0.99611530, 0.99795046, 0.49287701,\
+-	-6.26947875, -0.00127007, 0.00077863, 7.26820868, 0.99611689, 0.99795130, 0.49287739,\
+-	-6.26948654, -0.00126955, 0.00077831, 7.26821698, 0.99611848, 0.99795214, 0.49287779,\
+-	-6.26949430, -0.00126903, 0.00077799, 7.26822527, 0.99612007, 0.99795297, 0.49287817,\
+-	-6.26950204, -0.00126852, 0.00077768, 7.26823352, 0.99612166, 0.99795381, 0.49287857,\
+-	-6.26950975, -0.00126800, 0.00077736, 7.26824175, 0.99612325, 0.99795464, 0.49287896,\
+-	-6.26951743, -0.00126748, 0.00077704, 7.26824995, 0.99612484, 0.99795548, 0.49287934,\
+-	-6.26952509, -0.00126696, 0.00077673, 7.26825813, 0.99612642, 0.99795631, 0.49287973,\
+-	-6.26953272, -0.00126645, 0.00077641, 7.26826627, 0.99612800, 0.99795714, 0.49288012,\
+-	-6.26954033, -0.00126593, 0.00077609, 7.26827440, 0.99612959, 0.99795798, 0.49288050,\
+-	-6.26954791, -0.00126541, 0.00077578, 7.26828249, 0.99613117, 0.99795881, 0.49288087,\
+-	-6.26955546, -0.00126490, 0.00077546, 7.26829056, 0.99613275, 0.99795964, 0.49288126,\
+-	-6.26956299, -0.00126438, 0.00077515, 7.26829860, 0.99613433, 0.99796047, 0.49288164,\
+-	-6.26957049, -0.00126387, 0.00077483, 7.26830662, 0.99613590, 0.99796130, 0.49288203,\
+-	-6.26957797, -0.00126335, 0.00077452, 7.26831461, 0.99613748, 0.99796213, 0.49288240,\
+-	-6.26958542, -0.00126284, 0.00077420, 7.26832258, 0.99613905, 0.99796296, 0.49288278,\
+-	-6.26959285, -0.00126233, 0.00077389, 7.26833052, 0.99614063, 0.99796378, 0.49288317,\
+-	-6.26960025, -0.00126181, 0.00077357, 7.26833844, 0.99614220, 0.99796461, 0.49288354,\
+-	-6.26960763, -0.00126130, 0.00077326, 7.26834632, 0.99614377, 0.99796544, 0.49288392,\
+-	-6.26961498, -0.00126079, 0.00077295, 7.26835419, 0.99614534, 0.99796626, 0.49288432,\
+-	-6.26962230, -0.00126028, 0.00077263, 7.26836203, 0.99614691, 0.99796709, 0.49288467,\
+-	-6.26962961, -0.00125977, 0.00077232, 7.26836984, 0.99614847, 0.99796791, 0.49288504,\
+-	-6.26963688, -0.00125926, 0.00077201, 7.26837763, 0.99615004, 0.99796874, 0.49288540,\
+-	-6.26964414, -0.00125874, 0.00077170, 7.26838539, 0.99615160, 0.99796956, 0.49288580,\
+-	-6.26965137, -0.00125823, 0.00077138, 7.26839313, 0.99615317, 0.99797038, 0.49288618,\
+-	-6.26965857, -0.00125772, 0.00077107, 7.26840084, 0.99615473, 0.99797120, 0.49288651,\
+-	-6.26966575, -0.00125722, 0.00077076, 7.26840853, 0.99615629, 0.99797202, 0.49288691,\
+-	-6.26967290, -0.00125671, 0.00077045, 7.26841620, 0.99615785, 0.99797284, 0.49288729,\
+-	-6.26968003, -0.00125620, 0.00077014, 7.26842384, 0.99615941, 0.99797366, 0.49288765,\
+-	-6.26968714, -0.00125569, 0.00076983, 7.26843145, 0.99616097, 0.99797448, 0.49288801,\
+-	-6.26969422, -0.00125518, 0.00076952, 7.26843904, 0.99616252, 0.99797530, 0.49288835,\
+-	-6.26970128, -0.00125468, 0.00076920, 7.26844661, 0.99616408, 0.99797612, 0.49288872,\
+-	-6.26970832, -0.00125417, 0.00076889, 7.26845415, 0.99616563, 0.99797694, 0.49288910,\
+-	-6.26971533, -0.00125366, 0.00076858, 7.26846167, 0.99616718, 0.99797775, 0.49288946,\
+-	-6.26972232, -0.00125316, 0.00076827, 7.26846916, 0.99616873, 0.99797857, 0.49288983,\
+-	-6.26972928, -0.00125265, 0.00076797, 7.26847663, 0.99617028, 0.99797938, 0.49289019,\
+-	-6.26973622, -0.00125214, 0.00076766, 7.26848408, 0.99617183, 0.99798020, 0.49289056,\
+-	-6.26974314, -0.00125164, 0.00076735, 7.26849150, 0.99617338, 0.99798101, 0.49289092,\
+-	-6.26975003, -0.00125114, 0.00076704, 7.26849890, 0.99617492, 0.99798183, 0.49289126,\
+-	-6.26975691, -0.00125063, 0.00076673, 7.26850627, 0.99617647, 0.99798264, 0.49289162,\
+-	-6.26976375, -0.00125013, 0.00076642, 7.26851363, 0.99617801, 0.99798345, 0.49289199,\
+-	-6.26977058, -0.00124962, 0.00076611, 7.26852095, 0.99617955, 0.99798426, 0.49289234,\
+-	-6.26977738, -0.00124912, 0.00076581, 7.26852826, 0.99618109, 0.99798507, 0.49289269,\
+-	-6.26978416, -0.00124862, 0.00076550, 7.26853554, 0.99618263, 0.99798588, 0.49289304,\
+-	-6.26979092, -0.00124812, 0.00076519, 7.26854280, 0.99618417, 0.99798669, 0.49289341,\
+-	-6.26979765, -0.00124762, 0.00076488, 7.26855003, 0.99618571, 0.99798750, 0.49289376,\
+-	-6.26980436, -0.00124711, 0.00076458, 7.26855725, 0.99618724, 0.99798831, 0.49289409,\
+-	-6.26981105, -0.00124661, 0.00076427, 7.26856444, 0.99618878, 0.99798912, 0.49289444,\
+-	-6.26981772, -0.00124611, 0.00076396, 7.26857160, 0.99619031, 0.99798992, 0.49289482,\
+-	-6.26982436, -0.00124561, 0.00076366, 7.26857875, 0.99619184, 0.99799073, 0.49289516,\
+-	-6.26983098, -0.00124511, 0.00076335, 7.26858587, 0.99619337, 0.99799154, 0.49289554,\
+-	-6.26983758, -0.00124461, 0.00076305, 7.26859297, 0.99619490, 0.99799234, 0.49289586,\
+-	-6.26984416, -0.00124412, 0.00076274, 7.26860004, 0.99619643, 0.99799314, 0.49289620,\
+-	-6.26985071, -0.00124362, 0.00076244, 7.26860710, 0.99619796, 0.99799395, 0.49289657,\
+-	-6.26985725, -0.00124312, 0.00076213, 7.26861413, 0.99619949, 0.99799475, 0.49289690,\
+-	-6.26986376, -0.00124262, 0.00076183, 7.26862114, 0.99620101, 0.99799555, 0.49289724,\
+-	-6.26987025, -0.00124212, 0.00076152, 7.26862812, 0.99620253, 0.99799636, 0.49289757,\
+-	-6.26987672, -0.00124163, 0.00076122, 7.26863509, 0.99620406, 0.99799716, 0.49289792,\
+-	-6.26988316, -0.00124113, 0.00076091, 7.26864203, 0.99620558, 0.99799796, 0.49289828,\
+-	-6.26988959, -0.00124063, 0.00076061, 7.26864895, 0.99620710, 0.99799876, 0.49289862,\
+-	-6.26989599, -0.00124014, 0.00076031, 7.26865585, 0.99620862, 0.99799956, 0.49289895,\
+-	-6.26990237, -0.00123964, 0.00076000, 7.26866273, 0.99621013, 0.99800035, 0.49289931,\
+-	-6.26990873, -0.00123915, 0.00075970, 7.26866958, 0.99621165, 0.99800115, 0.49289965,\
+-	-6.26991507, -0.00123865, 0.00075940, 7.26867642, 0.99621317, 0.99800195, 0.49289998,\
+-	-6.26992139, -0.00123816, 0.00075909, 7.26868323, 0.99621468, 0.99800275, 0.49290032,\
+-	-6.26992769, -0.00123767, 0.00075879, 7.26869002, 0.99621619, 0.99800354, 0.49290066,\
+-	-6.26993396, -0.00123717, 0.00075849, 7.26869679, 0.99621770, 0.99800434, 0.49290100,\
+-	-6.26994022, -0.00123668, 0.00075819, 7.26870354, 0.99621921, 0.99800513, 0.49290132,\
+-	-6.26994645, -0.00123619, 0.00075789, 7.26871027, 0.99622072, 0.99800593, 0.49290166,\
+-	-6.26995267, -0.00123569, 0.00075758, 7.26871697, 0.99622223, 0.99800672, 0.49290199,\
+-	-6.26995886, -0.00123520, 0.00075728, 7.26872366, 0.99622374, 0.99800751, 0.49290231,\
+-	-6.26996503, -0.00123471, 0.00075698, 7.26873032, 0.99622524, 0.99800831, 0.49290268,\
+-	-6.26997119, -0.00123422, 0.00075668, 7.26873697, 0.99622675, 0.99800910, 0.49290298,\
+-	-6.26997732, -0.00123373, 0.00075638, 7.26874359, 0.99622825, 0.99800989, 0.49290333,\
+-	-6.26998343, -0.00123324, 0.00075608, 7.26875019, 0.99622975, 0.99801068, 0.49290366,\
+-	-6.26998952, -0.00123275, 0.00075578, 7.26875677, 0.99623126, 0.99801147, 0.49290397,\
+-	-6.26999559, -0.00123226, 0.00075548, 7.26876333, 0.99623275, 0.99801226, 0.49290432,\
+-	-6.27000164, -0.00123177, 0.00075518, 7.26876987, 0.99623425, 0.99801305, 0.49290464,\
+-	-6.27000767, -0.00123128, 0.00075488, 7.26877639, 0.99623575, 0.99801384, 0.49290499,\
+-	-6.27001368, -0.00123079, 0.00075458, 7.26878289, 0.99623725, 0.99801462, 0.49290530,\
+-	-6.27001968, -0.00123031, 0.00075428, 7.26878937, 0.99623874, 0.99801541, 0.49290562,\
+-	-6.27002565, -0.00122982, 0.00075399, 7.26879583, 0.99624024, 0.99801620, 0.49290596,\
+-	-6.27003160, -0.00122933, 0.00075369, 7.26880227, 0.99624173, 0.99801698, 0.49290628,\
+-	-6.27003753, -0.00122884, 0.00075339, 7.26880869, 0.99624322, 0.99801777, 0.49290660,\
+-	-6.27004344, -0.00122836, 0.00075309, 7.26881508, 0.99624471, 0.99801855, 0.49290693,\
+-	-6.27004933, -0.00122787, 0.00075279, 7.26882146, 0.99624620, 0.99801934, 0.49290725,\
+-	-6.27005521, -0.00122739, 0.00075250, 7.26882782, 0.99624769, 0.99802012, 0.49290756,\
+-	-6.27006106, -0.00122690, 0.00075220, 7.26883416, 0.99624917, 0.99802090, 0.49290790,\
+-	-6.27006690, -0.00122642, 0.00075190, 7.26884048, 0.99625066, 0.99802168, 0.49290821,\
+-	-6.27007271, -0.00122593, 0.00075160, 7.26884678, 0.99625214, 0.99802246, 0.49290851,\
+-	-6.27007851, -0.00122545, 0.00075131, 7.26885306, 0.99625363, 0.99802324, 0.49290885,\
+-	-6.27008428, -0.00122496, 0.00075101, 7.26885932, 0.99625511, 0.99802402, 0.49290916,\
+-	-6.27009004, -0.00122448, 0.00075072, 7.26886556, 0.99625659, 0.99802480, 0.49290948,\
+-	-6.27009578, -0.00122400, 0.00075042, 7.26887178, 0.99625807, 0.99802558, 0.49290980,\
+-	-6.27010150, -0.00122351, 0.00075012, 7.26887799, 0.99625955, 0.99802636, 0.49291012,\
+-	-6.27010720, -0.00122303, 0.00074983, 7.26888417, 0.99626102, 0.99802714, 0.49291045,\
+-	-6.27011288, -0.00122255, 0.00074953, 7.26889033, 0.99626250, 0.99802792, 0.49291075,\
+-	-6.27011855, -0.00122207, 0.00074924, 7.26889648, 0.99626398, 0.99802869, 0.49291108,\
+-	-6.27012419, -0.00122159, 0.00074894, 7.26890260, 0.99626545, 0.99802947, 0.49291137,\
+-	-6.27012982, -0.00122111, 0.00074865, 7.26890871, 0.99626692, 0.99803024, 0.49291169,\
+-	-6.27013543, -0.00122063, 0.00074836, 7.26891480, 0.99626839, 0.99803102, 0.49291199,\
+-	-6.27014102, -0.00122015, 0.00074806, 7.26892087, 0.99626986, 0.99803179, 0.49291232,\
+-	-6.27014659, -0.00121967, 0.00074777, 7.26892692, 0.99627133, 0.99803257, 0.49291262,\
+-	-6.27015214, -0.00121919, 0.00074747, 7.26893295, 0.99627280, 0.99803334, 0.49291295,\
+-	-6.27015767, -0.00121871, 0.00074718, 7.26893897, 0.99627427, 0.99803411, 0.49291325,\
+-	-6.27016319, -0.00121823, 0.00074689, 7.26894496, 0.99627574, 0.99803488, 0.49291356,\
+-	-6.27016869, -0.00121775, 0.00074659, 7.26895094, 0.99627720, 0.99803565, 0.49291386,\
+-	-6.27017417, -0.00121727, 0.00074630, 7.26895690, 0.99627866, 0.99803642, 0.49291418,\
+-	-6.27017963, -0.00121680, 0.00074601, 7.26896284, 0.99628013, 0.99803719, 0.49291448,\
+-	-6.27018508, -0.00121632, 0.00074572, 7.26896876, 0.99628159, 0.99803796, 0.49291478,\
+-	-6.27019050, -0.00121584, 0.00074543, 7.26897466, 0.99628305, 0.99803873, 0.49291509,\
+-	-6.27019591, -0.00121537, 0.00074513, 7.26898055, 0.99628451, 0.99803950, 0.49291539,\
+-	-6.27020130, -0.00121489, 0.00074484, 7.26898641, 0.99628596, 0.99804027, 0.49291571,\
+-	-6.27020668, -0.00121441, 0.00074455, 7.26899226, 0.99628742, 0.99804103, 0.49291599,\
+-	-6.27021203, -0.00121394, 0.00074426, 7.26899810, 0.99628888, 0.99804180, 0.49291629,\
+-	-6.27021737, -0.00121346, 0.00074397, 7.26900391, 0.99629033, 0.99804257, 0.49291660,\
+-	-6.27022270, -0.00121299, 0.00074368, 7.26900971, 0.99629178, 0.99804333, 0.49291688,\
+-	-6.27022800, -0.00121252, 0.00074339, 7.26901548, 0.99629324, 0.99804410, 0.49291722,\
+-	-6.27023329, -0.00121204, 0.00074310, 7.26902124, 0.99629469, 0.99804486, 0.49291750,\
+-	-6.27023856, -0.00121157, 0.00074281, 7.26902699, 0.99629614, 0.99804562, 0.49291781,\
+-	-6.27024381, -0.00121110, 0.00074252, 7.26903271, 0.99629759, 0.99804639, 0.49291812,\
+-	-6.27024904, -0.00121062, 0.00074223, 7.26903842, 0.99629903, 0.99804715, 0.49291840,\
+-	-6.27025426, -0.00121015, 0.00074194, 7.26904411, 0.99630048, 0.99804791, 0.49291870,\
+-	-6.27025946, -0.00120968, 0.00074165, 7.26904979, 0.99630193, 0.99804867, 0.49291902,\
+-	-6.27026465, -0.00120921, 0.00074136, 7.26905544, 0.99630337, 0.99804943, 0.49291932,\
+-	-6.27026982, -0.00120874, 0.00074107, 7.26906108, 0.99630481, 0.99805019, 0.49291960,\
+-	-6.27027497, -0.00120827, 0.00074078, 7.26906670, 0.99630626, 0.99805095, 0.49291988,\
+-	-6.27028010, -0.00120780, 0.00074050, 7.26907231, 0.99630770, 0.99805171, 0.49292018,\
+-	-6.27028522, -0.00120732, 0.00074021, 7.26907789, 0.99630914, 0.99805247, 0.49292047,\
+-	-6.27029032, -0.00120686, 0.00073992, 7.26908347, 0.99631057, 0.99805322, 0.49292077,\
+-	-6.27029541, -0.00120639, 0.00073963, 7.26908902, 0.99631201, 0.99805398, 0.49292106,\
+-	-6.27030047, -0.00120592, 0.00073934, 7.26909456, 0.99631345, 0.99805474, 0.49292137,\
+-	-6.27030552, -0.00120545, 0.00073906, 7.26910008, 0.99631488, 0.99805549, 0.49292164,\
+-	-6.27031056, -0.00120498, 0.00073877, 7.26910558, 0.99631632, 0.99805625, 0.49292193,\
+-	-6.27031558, -0.00120451, 0.00073848, 7.26911107, 0.99631775, 0.99805700, 0.49292223,\
+-	-6.27032058, -0.00120404, 0.00073820, 7.26911654, 0.99631918, 0.99805776, 0.49292252,\
+-	-6.27032557, -0.00120358, 0.00073791, 7.26912199, 0.99632061, 0.99805851, 0.49292278,\
+-	-6.27033054, -0.00120311, 0.00073763, 7.26912743, 0.99632204, 0.99805926, 0.49292312,\
+-	-6.27033549, -0.00120264, 0.00073734, 7.26913285, 0.99632347, 0.99806002, 0.49292338,\
+-	-6.27034043, -0.00120218, 0.00073705, 7.26913825, 0.99632490, 0.99806077, 0.49292367,\
+-	-6.27034536, -0.00120171, 0.00073677, 7.26914364, 0.99632633, 0.99806152, 0.49292394,\
+-	-6.27035026, -0.00120125, 0.00073648, 7.26914902, 0.99632775, 0.99806227, 0.49292425,\
+-	-6.27035515, -0.00120078, 0.00073620, 7.26915437, 0.99632918, 0.99806302, 0.49292452,\
+-	-6.27036003, -0.00120032, 0.00073591, 7.26915971, 0.99633060, 0.99806377, 0.49292480,\
+-	-6.27036489, -0.00119985, 0.00073563, 7.26916504, 0.99633202, 0.99806452, 0.49292511,\
+-	-6.27036973, -0.00119939, 0.00073535, 7.26917034, 0.99633344, 0.99806527, 0.49292536,\
+-	-6.27037456, -0.00119892, 0.00073506, 7.26917564, 0.99633486, 0.99806601, 0.49292567,\
+-	-6.27037937, -0.00119846, 0.00073478, 7.26918091, 0.99633628, 0.99806676, 0.49292595,\
+-	-6.27038417, -0.00119800, 0.00073449, 7.26918617, 0.99633770, 0.99806751, 0.49292622,\
+-	-6.27038895, -0.00119754, 0.00073421, 7.26919142, 0.99633912, 0.99806825, 0.49292651,\
+-	-6.27039372, -0.00119707, 0.00073393, 7.26919664, 0.99634053, 0.99806900, 0.49292678,\
+-	-6.27039847, -0.00119661, 0.00073364, 7.26920186, 0.99634195, 0.99806974, 0.49292707,\
+-	-6.27040321, -0.00119615, 0.00073336, 7.26920706, 0.99634336, 0.99807049, 0.49292736,\
+-	-6.27040793, -0.00119569, 0.00073308, 7.26921224, 0.99634477, 0.99807123, 0.49292762,\
+-	-6.27041263, -0.00119523, 0.00073280, 7.26921740, 0.99634618, 0.99807198, 0.49292790,\
+-	-6.27041732, -0.00119477, 0.00073251, 7.26922256, 0.99634759, 0.99807272, 0.49292816,\
+-	-6.27042200, -0.00119431, 0.00073223, 7.26922769, 0.99634900, 0.99807346, 0.49292845,\
+-	-6.27042666, -0.00119385, 0.00073195, 7.26923281, 0.99635041, 0.99807420, 0.49292873,\
+-	-6.27043131, -0.00119339, 0.00073167, 7.26923792, 0.99635182, 0.99807494, 0.49292902,\
+-	-6.27043594, -0.00119293, 0.00073139, 7.26924301, 0.99635322, 0.99807568, 0.49292929,\
+-	-6.27044055, -0.00119247, 0.00073111, 7.26924808, 0.99635463, 0.99807642, 0.49292955,\
+-	-6.27044516, -0.00119201, 0.00073083, 7.26925314, 0.99635603, 0.99807716, 0.49292983,\
+-	-6.27044974, -0.00119155, 0.00073054, 7.26925819, 0.99635743, 0.99807790, 0.49293011,\
+-	-6.27045432, -0.00119110, 0.00073026, 7.26926322, 0.99635884, 0.99807864, 0.49293037,\
+-	-6.27045887, -0.00119064, 0.00072998, 7.26926823, 0.99636024, 0.99807938, 0.49293066,\
+-	-6.27046342, -0.00119018, 0.00072970, 7.26927323, 0.99636164, 0.99808011, 0.49293095,\
+-	-6.27046795, -0.00118973, 0.00072942, 7.26927822, 0.99636303, 0.99808085, 0.49293118,\
+-	-6.27047246, -0.00118927, 0.00072914, 7.26928319, 0.99636443, 0.99808158, 0.49293146,\
+-	-6.27047696, -0.00118881, 0.00072887, 7.26928815, 0.99636583, 0.99808232, 0.49293175,\
+-	-6.27048145, -0.00118836, 0.00072859, 7.26929309, 0.99636722, 0.99808305, 0.49293201,\
+-	-6.27048592, -0.00118790, 0.00072831, 7.26929802, 0.99636862, 0.99808379, 0.49293228,\
+-	-6.27049038, -0.00118745, 0.00072803, 7.26930293, 0.99637001, 0.99808452, 0.49293255,\
+-	-6.27049482, -0.00118699, 0.00072775, 7.26930783, 0.99637140, 0.99808526, 0.49293281,\
+-	-6.27049925, -0.00118654, 0.00072747, 7.26931271, 0.99637279, 0.99808599, 0.49293309,\
+-	-6.27050366, -0.00118609, 0.00072719, 7.26931758, 0.99637418, 0.99808672, 0.49293334,\
+-	-6.27050807, -0.00118563, 0.00072692, 7.26932243, 0.99637557, 0.99808745, 0.49293360,\
+-	-6.27051245, -0.00118518, 0.00072664, 7.26932727, 0.99637696, 0.99808818, 0.49293390,\
+-	-6.27051683, -0.00118473, 0.00072636, 7.26933210, 0.99637835, 0.99808891, 0.49293415,\
+-	-6.27052119, -0.00118427, 0.00072608, 7.26933691, 0.99637973, 0.99808964, 0.49293444,\
+-	-6.27052553, -0.00118382, 0.00072581, 7.26934171, 0.99638112, 0.99809037, 0.49293467,\
+-	-6.27052986, -0.00118337, 0.00072553, 7.26934649, 0.99638250, 0.99809110, 0.49293494,\
+-	-6.27053418, -0.00118292, 0.00072525, 7.26935126, 0.99638388, 0.99809183, 0.49293521,\
+-	-6.27053849, -0.00118247, 0.00072498, 7.26935602, 0.99638526, 0.99809256, 0.49293547,\
+-	-6.27054278, -0.00118202, 0.00072470, 7.26936076, 0.99638664, 0.99809328, 0.49293575,\
+-	-6.27054706, -0.00118157, 0.00072442, 7.26936549, 0.99638802, 0.99809401, 0.49293600,\
+-	-6.27055132, -0.00118112, 0.00072415, 7.26937020, 0.99638940, 0.99809474, 0.49293625,\
+-	-6.27055557, -0.00118067, 0.00072387, 7.26937491, 0.99639078, 0.99809546, 0.49293651,\
+-	-6.27055981, -0.00118022, 0.00072360, 7.26937959, 0.99639215, 0.99809619, 0.49293677,\
+-	-6.27056403, -0.00117977, 0.00072332, 7.26938427, 0.99639353, 0.99809691, 0.49293703,\
+-	-6.27056825, -0.00117932, 0.00072305, 7.26938893, 0.99639490, 0.99809763, 0.49293729,\
+-	-6.27057244, -0.00117887, 0.00072277, 7.26939357, 0.99639628, 0.99809836, 0.49293754,\
+-	-6.27057663, -0.00117842, 0.00072250, 7.26939820, 0.99639765, 0.99809908, 0.49293783,\
+-	-6.27058080, -0.00117798, 0.00072222, 7.26940282, 0.99639902, 0.99809980, 0.49293807,\
+-	-6.27058496, -0.00117753, 0.00072195, 7.26940743, 0.99640039, 0.99810052, 0.49293833,\
+-	-6.27058910, -0.00117708, 0.00072167, 7.26941202, 0.99640176, 0.99810124, 0.49293858,\
+-	-6.27059324, -0.00117663, 0.00072140, 7.26941660, 0.99640312, 0.99810196, 0.49293885,\
+-	-6.27059736, -0.00117619, 0.00072113, 7.26942117, 0.99640449, 0.99810268, 0.49293910,\
+-	-6.27060146, -0.00117574, 0.00072085, 7.26942572, 0.99640586, 0.99810340, 0.49293936,\
+-	-6.27060556, -0.00117530, 0.00072058, 7.26943026, 0.99640722, 0.99810412, 0.49293961,\
+-	-6.27060964, -0.00117485, 0.00072031, 7.26943479, 0.99640859, 0.99810484, 0.49293988,\
+-	-6.27061371, -0.00117441, 0.00072004, 7.26943930, 0.99640995, 0.99810556, 0.49294014,\
+-	-6.27061776, -0.00117396, 0.00071976, 7.26944380, 0.99641131, 0.99810628, 0.49294037,\
+-	-6.27062180, -0.00117352, 0.00071949, 7.26944829, 0.99641267, 0.99810699, 0.49294061,\
+-	-6.27062583, -0.00117307, 0.00071922, 7.26945276, 0.99641403, 0.99810771, 0.49294091,\
+-	-6.27062985, -0.00117263, 0.00071895, 7.26945722, 0.99641539, 0.99810842, 0.49294113,\
+-	-6.27063386, -0.00117219, 0.00071867, 7.26946167, 0.99641675, 0.99810914, 0.49294137,\
+-	-6.27063785, -0.00117174, 0.00071840, 7.26946611, 0.99641810, 0.99810985, 0.49294161,\
+-	-6.27064183, -0.00117130, 0.00071813, 7.26947053, 0.99641946, 0.99811057, 0.49294187,\
+-	-6.27064580, -0.00117086, 0.00071786, 7.26947494, 0.99642081, 0.99811128, 0.49294216,\
+-	-6.27064976, -0.00117042, 0.00071759, 7.26947934, 0.99642217, 0.99811199, 0.49294239,\
+-	-6.27065370, -0.00116997, 0.00071732, 7.26948372, 0.99642352, 0.99811271, 0.49294263,\
+-	-6.27065763, -0.00116953, 0.00071705, 7.26948810, 0.99642487, 0.99811342, 0.49294289,\
+-	-6.27066155, -0.00116909, 0.00071678, 7.26949246, 0.99642622, 0.99811413, 0.49294314,\
+-	-6.27066546, -0.00116865, 0.00071651, 7.26949680, 0.99642757, 0.99811484, 0.49294338,\
+-	-6.27066935, -0.00116821, 0.00071624, 7.26950114, 0.99642892, 0.99811555, 0.49294362,\
+-	-6.27067323, -0.00116777, 0.00071597, 7.26950546, 0.99643026, 0.99811626, 0.49294387,\
+-	-6.27067711, -0.00116733, 0.00071570, 7.26950977, 0.99643161, 0.99811697, 0.49294414,\
+-	-6.27068096, -0.00116689, 0.00071543, 7.26951407, 0.99643296, 0.99811768, 0.49294435,\
+-	-6.27068481, -0.00116645, 0.00071516, 7.26951836, 0.99643430, 0.99811839, 0.49294462,\
+-	-6.27068865, -0.00116601, 0.00071489, 7.26952263, 0.99643564, 0.99811909, 0.49294486,\
+-	-6.27069247, -0.00116558, 0.00071462, 7.26952689, 0.99643699, 0.99811980, 0.49294512,\
+-	-6.27069628, -0.00116514, 0.00071435, 7.26953114, 0.99643833, 0.99812051, 0.49294533,\
+-	-6.27070008, -0.00116470, 0.00071409, 7.26953538, 0.99643967, 0.99812121, 0.49294559,\
+-	-6.27070387, -0.00116426, 0.00071382, 7.26953961, 0.99644101, 0.99812192, 0.49294582,\
+-	-6.27070765, -0.00116383, 0.00071355, 7.26954382, 0.99644235, 0.99812262, 0.49294607,\
+-	-6.27071141, -0.00116339, 0.00071328, 7.26954802, 0.99644368, 0.99812333, 0.49294633,\
+-	-6.27071516, -0.00116295, 0.00071301, 7.26955221, 0.99644502, 0.99812403, 0.49294657,\
+-	-6.27071891, -0.00116252, 0.00071275, 7.26955639, 0.99644635, 0.99812474, 0.49294678,\
+-	-6.27072264, -0.00116208, 0.00071248, 7.26956056, 0.99644769, 0.99812544, 0.49294701,\
+-	-6.27072636, -0.00116165, 0.00071221, 7.26956471, 0.99644902, 0.99812614, 0.49294726,\
+-	-6.27073006, -0.00116121, 0.00071195, 7.26956885, 0.99645035, 0.99812684, 0.49294753,\
+-	-6.27073376, -0.00116078, 0.00071168, 7.26957298, 0.99645169, 0.99812755, 0.49294774,\
+-	-6.27073744, -0.00116034, 0.00071141, 7.26957710, 0.99645302, 0.99812825, 0.49294799,\
+-	-6.27074112, -0.00115991, 0.00071115, 7.26958121, 0.99645434, 0.99812895, 0.49294824,\
+-	-6.27074478, -0.00115947, 0.00071088, 7.26958531, 0.99645567, 0.99812965, 0.49294849,\
+-	-6.27074843, -0.00115904, 0.00071062, 7.26958939, 0.99645700, 0.99813035, 0.49294867,\
+-	-6.27075207, -0.00115861, 0.00071035, 7.26959347, 0.99645833, 0.99813104, 0.49294894,\
+-	-6.27075570, -0.00115817, 0.00071008, 7.26959753, 0.99645965, 0.99813174, 0.49294918,\
+-	-6.27075932, -0.00115774, 0.00070982, 7.26960158, 0.99646098, 0.99813244, 0.49294940,\
+-	-6.27076293, -0.00115731, 0.00070955, 7.26960562, 0.99646230, 0.99813314, 0.49294966,\
+-	-6.27076652, -0.00115688, 0.00070929, 7.26960965, 0.99646362, 0.99813383, 0.49294988,\
+-	-6.27077011, -0.00115644, 0.00070902, 7.26961366, 0.99646494, 0.99813453, 0.49295014,\
+-	-6.27077368, -0.00115601, 0.00070876, 7.26961767, 0.99646626, 0.99813523, 0.49295035,\
+-	-6.27077724, -0.00115558, 0.00070850, 7.26962166, 0.99646758, 0.99813592, 0.49295058,\
+-	-6.27078080, -0.00115515, 0.00070823, 7.26962565, 0.99646890, 0.99813662, 0.49295081,\
+-	-6.27078434, -0.00115472, 0.00070797, 7.26962962, 0.99647022, 0.99813731, 0.49295107,\
+-	-6.27078787, -0.00115429, 0.00070770, 7.26963358, 0.99647154, 0.99813800, 0.49295129,\
+-	-6.27079139, -0.00115386, 0.00070744, 7.26963753, 0.99647285, 0.99813870, 0.49295151,\
+-	-6.27079490, -0.00115343, 0.00070718, 7.26964147, 0.99647417, 0.99813939, 0.49295175,\
+-	-6.27079840, -0.00115300, 0.00070692, 7.26964540, 0.99647548, 0.99814008, 0.49295200,\
+-	-6.27080189, -0.00115257, 0.00070665, 7.26964931, 0.99647679, 0.99814077, 0.49295221,\
+-	-6.27080537, -0.00115215, 0.00070639, 7.26965322, 0.99647810, 0.99814146, 0.49295246,\
+-	-6.27080883, -0.00115172, 0.00070613, 7.26965711, 0.99647941, 0.99814215, 0.49295267,\
+-	-6.27081229, -0.00115129, 0.00070586, 7.26966100, 0.99648072, 0.99814284, 0.49295289,\
+-	-6.27081574, -0.00115086, 0.00070560, 7.26966487, 0.99648203, 0.99814353, 0.49295314,\
+-	-6.27081917, -0.00115044, 0.00070534, 7.26966874, 0.99648334, 0.99814422, 0.49295337,\
+-	-6.27082260, -0.00115001, 0.00070508, 7.26967259, 0.99648465, 0.99814491, 0.49295357,\
+-	-6.27082601, -0.00114958, 0.00070482, 7.26967643, 0.99648595, 0.99814560, 0.49295381,\
+-	-6.27082942, -0.00114916, 0.00070456, 7.26968026, 0.99648726, 0.99814629, 0.49295404,\
+-	-6.27083281, -0.00114873, 0.00070430, 7.26968408, 0.99648856, 0.99814697, 0.49295428,\
+-	-6.27083620, -0.00114830, 0.00070403, 7.26968789, 0.99648986, 0.99814766, 0.49295451,\
+-	-6.27083957, -0.00114788, 0.00070377, 7.26969169, 0.99649117, 0.99814835, 0.49295473,\
+-	-6.27084294, -0.00114745, 0.00070351, 7.26969548, 0.99649247, 0.99814903, 0.49295497,\
+-	-6.27084629, -0.00114703, 0.00070325, 7.26969926, 0.99649377, 0.99814972, 0.49295518,\
+-	-6.27084964, -0.00114661, 0.00070299, 7.26970303, 0.99649507, 0.99815040, 0.49295540,\
+-	-6.27085297, -0.00114618, 0.00070273, 7.26970679, 0.99649636, 0.99815109, 0.49295563,\
+-	-6.27085630, -0.00114576, 0.00070247, 7.26971054, 0.99649766, 0.99815177, 0.49295584,\
+-	-6.27085961, -0.00114533, 0.00070221, 7.26971428, 0.99649896, 0.99815245, 0.49295609,\
+-	-6.27086292, -0.00114491, 0.00070195, 7.26971800, 0.99650025, 0.99815313, 0.49295629,\
+-	-6.27086621, -0.00114449, 0.00070169, 7.26972172, 0.99650155, 0.99815382, 0.49295653,\
+-	-6.27086950, -0.00114407, 0.00070144, 7.26972543, 0.99650284, 0.99815450, 0.49295673,\
+-	-6.27087277, -0.00114364, 0.00070118, 7.26972913, 0.99650413, 0.99815518, 0.49295696,\
+-	-6.27087604, -0.00114322, 0.00070092, 7.26973281, 0.99650542, 0.99815586, 0.49295720,\
+-	-6.27087929, -0.00114280, 0.00070066, 7.26973649, 0.99650671, 0.99815654, 0.49295739,\
+-	-6.27088254, -0.00114238, 0.00070040, 7.26974016, 0.99650800, 0.99815722, 0.49295764,\
+-	-6.27088577, -0.00114196, 0.00070014, 7.26974382, 0.99650929, 0.99815790, 0.49295785,\
+-	-6.27088900, -0.00114154, 0.00069989, 7.26974746, 0.99651058, 0.99815858, 0.49295811,\
+-	-6.27089222, -0.00114112, 0.00069963, 7.26975110, 0.99651187, 0.99815925, 0.49295829,\
+-	-6.27089543, -0.00114070, 0.00069937, 7.26975473, 0.99651315, 0.99815993, 0.49295850,\
+-	-6.27089862, -0.00114028, 0.00069911, 7.26975835, 0.99651444, 0.99816061, 0.49295875,\
+-	-6.27090181, -0.00113986, 0.00069886, 7.26976195, 0.99651572, 0.99816129, 0.49295895,\
+-	-6.27090499, -0.00113944, 0.00069860, 7.26976555, 0.99651700, 0.99816196, 0.49295918,\
+-	-6.27090816, -0.00113902, 0.00069834, 7.26976914, 0.99651829, 0.99816264, 0.49295938,\
+-	-6.27091132, -0.00113860, 0.00069809, 7.26977272, 0.99651957, 0.99816331, 0.49295963,\
+-	-6.27091447, -0.00113818, 0.00069783, 7.26977629, 0.99652085, 0.99816399, 0.49295982,\
+-	-6.27091762, -0.00113777, 0.00069757, 7.26977985, 0.99652213, 0.99816466, 0.49296003,\
+-	-6.27092075, -0.00113735, 0.00069732, 7.26978340, 0.99652340, 0.99816533, 0.49296028,\
+-	-6.27092387, -0.00113693, 0.00069706, 7.26978694, 0.99652468, 0.99816601, 0.49296049,\
+-	-6.27092699, -0.00113651, 0.00069681, 7.26979047, 0.99652596, 0.99816668, 0.49296071,\
+-	-6.27093009, -0.00113610, 0.00069655, 7.26979399, 0.99652723, 0.99816735, 0.49296091,\
+-	-6.27093319, -0.00113568, 0.00069629, 7.26979751, 0.99652851, 0.99816802, 0.49296112,\
+-	-6.27093627, -0.00113527, 0.00069604, 7.26980101, 0.99652978, 0.99816869, 0.49296137,\
+-	-6.27093935, -0.00113485, 0.00069578, 7.26980450, 0.99653105, 0.99816937, 0.49296155,\
+-	-6.27094242, -0.00113443, 0.00069553, 7.26980799, 0.99653232, 0.99817004, 0.49296176,\
+-	-6.27094548, -0.00113402, 0.00069528, 7.26981146, 0.99653360, 0.99817070, 0.49296198,\
+-	-6.27094853, -0.00113360, 0.00069502, 7.26981493, 0.99653487, 0.99817137, 0.49296221,\
+-	-6.27095157, -0.00113319, 0.00069477, 7.26981838, 0.99653613, 0.99817204, 0.49296241,\
+-	-6.27095461, -0.00113278, 0.00069451, 7.26982183, 0.99653740, 0.99817271, 0.49296261,\
+-	-6.27095763, -0.00113236, 0.00069426, 7.26982527, 0.99653867, 0.99817338, 0.49296284,\
+-	-6.27096065, -0.00113195, 0.00069401, 7.26982870, 0.99653994, 0.99817405, 0.49296306,\
+-	-6.27096365, -0.00113154, 0.00069375, 7.26983212, 0.99654120, 0.99817471, 0.49296324,\
+-	-6.27096665, -0.00113112, 0.00069350, 7.26983553, 0.99654246, 0.99817538, 0.49296349,\
+-	-6.27096964, -0.00113071, 0.00069325, 7.26983893, 0.99654373, 0.99817604, 0.49296367,\
+-	-6.27097262, -0.00113030, 0.00069299, 7.26984232, 0.99654499, 0.99817671, 0.49296390,\
+-	-6.27097559, -0.00112989, 0.00069274, 7.26984571, 0.99654625, 0.99817737, 0.49296411,\
+-	-6.27097856, -0.00112947, 0.00069249, 7.26984908, 0.99654751, 0.99817804, 0.49296432,\
+-	-6.27098151, -0.00112906, 0.00069224, 7.26985245, 0.99654877, 0.99817870, 0.49296451,\
+-	-6.27098446, -0.00112865, 0.00069198, 7.26985581, 0.99655003, 0.99817937, 0.49296475,\
+-	-6.27098739, -0.00112824, 0.00069173, 7.26985915, 0.99655129, 0.99818003, 0.49296493,\
+-	-6.27099032, -0.00112783, 0.00069148, 7.26986249, 0.99655255, 0.99818069, 0.49296516,\
+-	-6.27099324, -0.00112742, 0.00069123, 7.26986583, 0.99655380, 0.99818135, 0.49296535,\
+-	-6.27099616, -0.00112701, 0.00069098, 7.26986915, 0.99655506, 0.99818202, 0.49296556,\
+-	-6.27099906, -0.00112660, 0.00069072, 7.26987246, 0.99655631, 0.99818268, 0.49296577,\
+-	-6.27100196, -0.00112619, 0.00069047, 7.26987577, 0.99655756, 0.99818334, 0.49296597,\
+-	-6.27100484, -0.00112578, 0.00069022, 7.26987906, 0.99655882, 0.99818400, 0.49296619,\
+-	-6.27100772, -0.00112537, 0.00068997, 7.26988235, 0.99656007, 0.99818466, 0.49296639,\
+-	-6.27101059, -0.00112496, 0.00068972, 7.26988563, 0.99656132, 0.99818532, 0.49296663,\
+-	-6.27101345, -0.00112455, 0.00068947, 7.26988890, 0.99656257, 0.99818597, 0.49296681,\
+-	-6.27101631, -0.00112415, 0.00068922, 7.26989216, 0.99656382, 0.99818663, 0.49296699,\
+-	-6.27101915, -0.00112374, 0.00068897, 7.26989541, 0.99656506, 0.99818729, 0.49296722,\
+-	-6.27102199, -0.00112333, 0.00068872, 7.26989866, 0.99656631, 0.99818795, 0.49296743,\
+-	-6.27102482, -0.00112292, 0.00068847, 7.26990189, 0.99656756, 0.99818860, 0.49296764,\
+-	-6.27102764, -0.00112252, 0.00068822, 7.26990512, 0.99656880, 0.99818926, 0.49296783,\
+-	-6.27103045, -0.00112211, 0.00068797, 7.26990834, 0.99657005, 0.99818992, 0.49296802,\
+-	-6.27103326, -0.00112171, 0.00068772, 7.26991155, 0.99657129, 0.99819057, 0.49296822,\
+-	-6.27103606, -0.00112130, 0.00068747, 7.26991476, 0.99657253, 0.99819123, 0.49296843,\
+-	-6.27103885, -0.00112089, 0.00068723, 7.26991795, 0.99657377, 0.99819188, 0.49296863,\
+-	-6.27104163, -0.00112049, 0.00068698, 7.26992114, 0.99657501, 0.99819253, 0.49296882,\
+-	-6.27104440, -0.00112008, 0.00068673, 7.26992432, 0.99657625, 0.99819319, 0.49296903,\
+-	-6.27104717, -0.00111968, 0.00068648, 7.26992749, 0.99657749, 0.99819384, 0.49296925,\
+-	-6.27104992, -0.00111927, 0.00068623, 7.26993065, 0.99657873, 0.99819449, 0.49296948,\
+-	-6.27105267, -0.00111887, 0.00068599, 7.26993380, 0.99657997, 0.99819514, 0.49296966,\
+-	-6.27105541, -0.00111847, 0.00068574, 7.26993695, 0.99658120, 0.99819580, 0.49296986,\
+-	-6.27105815, -0.00111806, 0.00068549, 7.26994009, 0.99658244, 0.99819645, 0.49297006,\
+-	-6.27106088, -0.00111766, 0.00068524, 7.26994322, 0.99658367, 0.99819710, 0.49297025,\
+-	-6.27106359, -0.00111726, 0.00068500, 7.26994634, 0.99658491, 0.99819775, 0.49297043,\
+-	-6.27106630, -0.00111685, 0.00068475, 7.26994945, 0.99658614, 0.99819840, 0.49297064,\
+-	-6.27106901, -0.00111645, 0.00068450, 7.26995256, 0.99658737, 0.99819905, 0.49297085,\
+-	-6.27107170, -0.00111605, 0.00068426, 7.26995565, 0.99658860, 0.99819970, 0.49297106,\
+-	-6.27107439, -0.00111565, 0.00068401, 7.26995874, 0.99658983, 0.99820034, 0.49297123,\
+-	-6.27107707, -0.00111525, 0.00068376, 7.26996183, 0.99659106, 0.99820099, 0.49297145,\
+-	-6.27107974, -0.00111484, 0.00068352, 7.26996490, 0.99659229, 0.99820164, 0.49297165,\
+-	-6.27108241, -0.00111444, 0.00068327, 7.26996797, 0.99659352, 0.99820229, 0.49297182,\
+-	-6.27108507, -0.00111404, 0.00068302, 7.26997103, 0.99659474, 0.99820293, 0.49297202,\
+-	-6.27108772, -0.00111364, 0.00068278, 7.26997408, 0.99659597, 0.99820358, 0.49297222,\
+-	-6.27109036, -0.00111324, 0.00068253, 7.26997712, 0.99659719, 0.99820422, 0.49297241,\
+-	-6.27109300, -0.00111284, 0.00068229, 7.26998015, 0.99659842, 0.99820487, 0.49297262,\
+-	-6.27109562, -0.00111244, 0.00068204, 7.26998318, 0.99659964, 0.99820551, 0.49297281,\
+-	-6.27109825, -0.00111204, 0.00068180, 7.26998620, 0.99660086, 0.99820616, 0.49297301,\
+-	-6.27110086, -0.00111164, 0.00068155, 7.26998921, 0.99660208, 0.99820680, 0.49297320,\
+-	-6.27110347, -0.00111125, 0.00068131, 7.26999222, 0.99660330, 0.99820744, 0.49297339,\
+-	-6.27110606, -0.00111085, 0.00068106, 7.26999522, 0.99660452, 0.99820809, 0.49297359,\
+-	-6.27110866, -0.00111045, 0.00068082, 7.26999821, 0.99660574, 0.99820873, 0.49297380,\
+-	-6.27111124, -0.00111005, 0.00068058, 7.27000119, 0.99660696, 0.99820937, 0.49297397,\
+-	-6.27111382, -0.00110965, 0.00068033, 7.27000416, 0.99660818, 0.99821001, 0.49297417,\
+-	-6.27111639, -0.00110926, 0.00068009, 7.27000713, 0.99660939, 0.99821065, 0.49297437,\
+-	-6.27111895, -0.00110886, 0.00067985, 7.27001009, 0.99661061, 0.99821129, 0.49297456,\
+-	-6.27112151, -0.00110846, 0.00067960, 7.27001304, 0.99661182, 0.99821193, 0.49297477,\
+-	-6.27112405, -0.00110807, 0.00067936, 7.27001599, 0.99661303, 0.99821257, 0.49297493,\
+-	-6.27112660, -0.00110767, 0.00067912, 7.27001892, 0.99661425, 0.99821321, 0.49297516,\
+-	-6.27112913, -0.00110728, 0.00067887, 7.27002185, 0.99661546, 0.99821385, 0.49297533,\
+-	-6.27113166, -0.00110688, 0.00067863, 7.27002478, 0.99661667, 0.99821449, 0.49297550,\
+-	-6.27113418, -0.00110648, 0.00067839, 7.27002769, 0.99661788, 0.99821513, 0.49297572,\
+-	-6.27113669, -0.00110609, 0.00067815, 7.27003060, 0.99661909, 0.99821576, 0.49297589,\
+-	-6.27113920, -0.00110569, 0.00067790, 7.27003350, 0.99662030, 0.99821640, 0.49297607,\
+-	-6.27114170, -0.00110530, 0.00067766, 7.27003640, 0.99662150, 0.99821704, 0.49297628,\
+-	-6.27114419, -0.00110491, 0.00067742, 7.27003928, 0.99662271, 0.99821767, 0.49297646,\
+-	-6.27114668, -0.00110451, 0.00067718, 7.27004216, 0.99662392, 0.99821831, 0.49297664,\
+-	-6.27114915, -0.00110412, 0.00067694, 7.27004504, 0.99662512, 0.99821894, 0.49297684,\
+-	-6.27115163, -0.00110372, 0.00067670, 7.27004790, 0.99662632, 0.99821958, 0.49297702,\
+-	-6.27115409, -0.00110333, 0.00067646, 7.27005076, 0.99662753, 0.99822021, 0.49297723,\
+-	-6.27115655, -0.00110294, 0.00067621, 7.27005361, 0.99662873, 0.99822085, 0.49297742,\
+-	-6.27115900, -0.00110255, 0.00067597, 7.27005646, 0.99662993, 0.99822148, 0.49297759,\
+-	-6.27116145, -0.00110215, 0.00067573, 7.27005929, 0.99663113, 0.99822211, 0.49297781,\
+-	-6.27116389, -0.00110176, 0.00067549, 7.27006212, 0.99663233, 0.99822274, 0.49297799,\
+-	-6.27116632, -0.00110137, 0.00067525, 7.27006495, 0.99663353, 0.99822338, 0.49297818,\
+-	-6.27116874, -0.00110098, 0.00067501, 7.27006776, 0.99663473, 0.99822401, 0.49297837,\
+-	-6.27117116, -0.00110059, 0.00067477, 7.27007057, 0.99663592, 0.99822464, 0.49297853,\
+-	-6.27117357, -0.00110020, 0.00067453, 7.27007338, 0.99663712, 0.99822527, 0.49297873,\
+-	-6.27117598, -0.00109981, 0.00067429, 7.27007617, 0.99663832, 0.99822590, 0.49297890,\
+-	-6.27117838, -0.00109942, 0.00067405, 7.27007896, 0.99663951, 0.99822653, 0.49297910,\
+-	-6.27118077, -0.00109903, 0.00067381, 7.27008174, 0.99664070, 0.99822716, 0.49297929,\
+-	-6.27118315, -0.00109864, 0.00067358, 7.27008452, 0.99664190, 0.99822779, 0.49297945,\
+-	-6.27118553, -0.00109825, 0.00067334, 7.27008729, 0.99664309, 0.99822842, 0.49297965,\
+-	-6.27118791, -0.00109786, 0.00067310, 7.27009005, 0.99664428, 0.99822904, 0.49297987,\
+-	-6.27119027, -0.00109747, 0.00067286, 7.27009280, 0.99664547, 0.99822967, 0.49298005,\
+-	-6.27119263, -0.00109708, 0.00067262, 7.27009555, 0.99664666, 0.99823030, 0.49298023,\
+-	-6.27119499, -0.00109669, 0.00067238, 7.27009829, 0.99664785, 0.99823092, 0.49298041,\
+-	-6.27119733, -0.00109630, 0.00067214, 7.27010103, 0.99664904, 0.99823155, 0.49298056,\
+-	-6.27119968, -0.00109592, 0.00067191, 7.27010376, 0.99665022, 0.99823218, 0.49298074,\
+-	-6.27120201, -0.00109553, 0.00067167, 7.27010648, 0.99665141, 0.99823280, 0.49298095,\
+-	-6.27120434, -0.00109514, 0.00067143, 7.27010920, 0.99665259, 0.99823343, 0.49298115,\
+-	-6.27120666, -0.00109475, 0.00067119, 7.27011190, 0.99665378, 0.99823405, 0.49298131,\
+-	-6.27120898, -0.00109437, 0.00067096, 7.27011461, 0.99665496, 0.99823467, 0.49298149,\
+-	-6.27121129, -0.00109398, 0.00067072, 7.27011730, 0.99665614, 0.99823530, 0.49298166,\
+-	-6.27121359, -0.00109360, 0.00067048, 7.27011999, 0.99665733, 0.99823592, 0.49298185,\
+-	-6.27121589, -0.00109321, 0.00067025, 7.27012268, 0.99665851, 0.99823654, 0.49298202,\
+-	-6.27121818, -0.00109282, 0.00067001, 7.27012535, 0.99665969, 0.99823717, 0.49298224,\
+-	-6.27122046, -0.00109244, 0.00066977, 7.27012802, 0.99666087, 0.99823779, 0.49298236,\
+-	-6.27122274, -0.00109205, 0.00066954, 7.27013069, 0.99666205, 0.99823841, 0.49298260,\
+-	-6.27122501, -0.00109167, 0.00066930, 7.27013334, 0.99666322, 0.99823903, 0.49298275,\
+-	-6.27122728, -0.00109128, 0.00066907, 7.27013600, 0.99666440, 0.99823965, 0.49298294,\
+-	-6.27122954, -0.00109090, 0.00066883, 7.27013864, 0.99666558, 0.99824027, 0.49298313,\
+-	-6.27123179, -0.00109052, 0.00066859, 7.27014128, 0.99666675, 0.99824089, 0.49298330,\
+-	-6.27123404, -0.00109013, 0.00066836, 7.27014391, 0.99666793, 0.99824151, 0.49298351,\
+-	-6.27123629, -0.00108975, 0.00066812, 7.27014654, 0.99666910, 0.99824213, 0.49298363,\
+-	-6.27123852, -0.00108937, 0.00066789, 7.27014916, 0.99667027, 0.99824275, 0.49298382,\
+-	-6.27124075, -0.00108898, 0.00066765, 7.27015177, 0.99667144, 0.99824336, 0.49298401,\
+-	-6.27124298, -0.00108860, 0.00066742, 7.27015438, 0.99667261, 0.99824398, 0.49298420,\
+-	-6.27124520, -0.00108822, 0.00066718, 7.27015698, 0.99667379, 0.99824460, 0.49298438,\
+-	-6.27124741, -0.00108784, 0.00066695, 7.27015957, 0.99667495, 0.99824521, 0.49298453,\
+-	-6.27124962, -0.00108745, 0.00066672, 7.27016216, 0.99667612, 0.99824583, 0.49298471,\
+-	-6.27125182, -0.00108707, 0.00066648, 7.27016475, 0.99667729, 0.99824645, 0.49298491,\
+-	-6.27125401, -0.00108669, 0.00066625, 7.27016732, 0.99667846, 0.99824706, 0.49298510,\
+-	-6.27125620, -0.00108631, 0.00066601, 7.27016989, 0.99667962, 0.99824768, 0.49298524,\
+-	-6.27125839, -0.00108593, 0.00066578, 7.27017246, 0.99668079, 0.99824829, 0.49298544,\
+-	-6.27126057, -0.00108555, 0.00066555, 7.27017502, 0.99668195, 0.99824890, 0.49298562,\
+-	-6.27126274, -0.00108517, 0.00066531, 7.27017757, 0.99668312, 0.99824952, 0.49298575,\
+-	-6.27126490, -0.00108479, 0.00066508, 7.27018012, 0.99668428, 0.99825013, 0.49298596,\
+-	-6.27126707, -0.00108441, 0.00066485, 7.27018266, 0.99668544, 0.99825074, 0.49298614,\
+-	-6.27126922, -0.00108403, 0.00066461, 7.27018519, 0.99668660, 0.99825136, 0.49298629,\
+-	-6.27127137, -0.00108365, 0.00066438, 7.27018772, 0.99668776, 0.99825197, 0.49298647,\
+-	-6.27127351, -0.00108327, 0.00066415, 7.27019024, 0.99668892, 0.99825258, 0.49298665,\
+-	-6.27127565, -0.00108289, 0.00066392, 7.27019276, 0.99669008, 0.99825319, 0.49298685,\
+-	-6.27127779, -0.00108251, 0.00066369, 7.27019527, 0.99669124, 0.99825380, 0.49298701,\
+-	-6.27127991, -0.00108214, 0.00066345, 7.27019778, 0.99669240, 0.99825441, 0.49298719,\
+-	-6.27128204, -0.00108176, 0.00066322, 7.27020028, 0.99669356, 0.99825502, 0.49298735,\
+-	-6.27128415, -0.00108138, 0.00066299, 7.27020277, 0.99669471, 0.99825563, 0.49298754,\
+-	-6.27128626, -0.00108100, 0.00066276, 7.27020526, 0.99669587, 0.99825624, 0.49298772,\
+-	-6.27128837, -0.00108063, 0.00066253, 7.27020774, 0.99669702, 0.99825685, 0.49298787,\
+-	-6.27129047, -0.00108025, 0.00066230, 7.27021022, 0.99669817, 0.99825746, 0.49298806,\
+-	-6.27129256, -0.00107987, 0.00066206, 7.27021269, 0.99669933, 0.99825806, 0.49298822,\
+-	-6.27129465, -0.00107950, 0.00066183, 7.27021516, 0.99670048, 0.99825867, 0.49298838,\
+-	-6.27129674, -0.00107912, 0.00066160, 7.27021762, 0.99670163, 0.99825928, 0.49298857,\
+-	-6.27129881, -0.00107874, 0.00066137, 7.27022007, 0.99670278, 0.99825988, 0.49298872,\
+-	-6.27130089, -0.00107837, 0.00066114, 7.27022252, 0.99670393, 0.99826049, 0.49298890,\
+-	-6.27130295, -0.00107799, 0.00066091, 7.27022496, 0.99670508, 0.99826109, 0.49298906,\
+-	-6.27130502, -0.00107762, 0.00066068, 7.27022740, 0.99670622, 0.99826170, 0.49298921,\
+-	-6.27130707, -0.00107724, 0.00066045, 7.27022983, 0.99670737, 0.99826230, 0.49298942,\
+-	-6.27130913, -0.00107687, 0.00066022, 7.27023226, 0.99670852, 0.99826291, 0.49298958,\
+-	-6.27131117, -0.00107649, 0.00065999, 7.27023468, 0.99670966, 0.99826351, 0.49298977,\
+-	-6.27131321, -0.00107612, 0.00065976, 7.27023709, 0.99671081, 0.99826412, 0.49298992,\
+-	-6.27131525, -0.00107575, 0.00065953, 7.27023950, 0.99671195, 0.99826472, 0.49299011,\
+-	-6.27131728, -0.00107537, 0.00065931, 7.27024191, 0.99671309, 0.99826532, 0.49299028,\
+-	-6.27131930, -0.00107500, 0.00065908, 7.27024430, 0.99671423, 0.99826592, 0.49299042,\
+-	-6.27132133, -0.00107463, 0.00065885, 7.27024670, 0.99671538, 0.99826653, 0.49299058,\
+-	-6.27132334, -0.00107425, 0.00065862, 7.27024909, 0.99671652, 0.99826713, 0.49299077,\
+-	-6.27132535, -0.00107388, 0.00065839, 7.27025147, 0.99671766, 0.99826773, 0.49299096,\
+-	-6.27132736, -0.00107351, 0.00065816, 7.27025385, 0.99671879, 0.99826833, 0.49299111,\
+-	-6.27132936, -0.00107314, 0.00065793, 7.27025622, 0.99671993, 0.99826893, 0.49299126,\
+-	-6.27133135, -0.00107277, 0.00065771, 7.27025858, 0.99672107, 0.99826953, 0.49299144,\
+-	-6.27133334, -0.00107239, 0.00065748, 7.27026094, 0.99672221, 0.99827013, 0.49299160,\
+-	-6.27133532, -0.00107202, 0.00065725, 7.27026330, 0.99672334, 0.99827073, 0.49299180,\
+-	-6.27133730, -0.00107165, 0.00065702, 7.27026565, 0.99672448, 0.99827132, 0.49299193,\
+-	-6.27133928, -0.00107128, 0.00065680, 7.27026800, 0.99672561, 0.99827192, 0.49299212,\
+-	-6.27134125, -0.00107091, 0.00065657, 7.27027034, 0.99672674, 0.99827252, 0.49299227,\
+-	-6.27134321, -0.00107054, 0.00065634, 7.27027267, 0.99672788, 0.99827312, 0.49299243,\
+-	-6.27134517, -0.00107017, 0.00065611, 7.27027500, 0.99672901, 0.99827371, 0.49299259,\
+-	-6.27134713, -0.00106980, 0.00065589, 7.27027733, 0.99673014, 0.99827431, 0.49299280,\
+-	-6.27134908, -0.00106943, 0.00065566, 7.27027964, 0.99673127, 0.99827491, 0.49299296,\
+-	-6.27135102, -0.00106906, 0.00065543, 7.27028196, 0.99673240, 0.99827550, 0.49299309,\
+-	-6.27135296, -0.00106870, 0.00065521, 7.27028427, 0.99673353, 0.99827610, 0.49299327,\
+-	-6.27135490, -0.00106833, 0.00065498, 7.27028657, 0.99673466, 0.99827669, 0.49299344,\
+-	-6.27135683, -0.00106796, 0.00065476, 7.27028887, 0.99673578, 0.99827729, 0.49299361,\
+-	-6.27135875, -0.00106759, 0.00065453, 7.27029116, 0.99673691, 0.99827788, 0.49299378,\
+-	-6.27136067, -0.00106722, 0.00065430, 7.27029345, 0.99673804, 0.99827847, 0.49299395,\
+-	-6.27136259, -0.00106685, 0.00065408, 7.27029574, 0.99673916, 0.99827907, 0.49299413,\
+-	-6.27136450, -0.00106649, 0.00065385, 7.27029801, 0.99674028, 0.99827966, 0.49299427,\
+-	-6.27136641, -0.00106612, 0.00065363, 7.27030029, 0.99674141, 0.99828025, 0.49299442,\
+-	-6.27136831, -0.00106575, 0.00065340, 7.27030256, 0.99674253, 0.99828084, 0.49299460,\
+-	-6.27137021, -0.00106539, 0.00065318, 7.27030482, 0.99674365, 0.99828143, 0.49299474,\
+-	-6.27137210, -0.00106502, 0.00065295, 7.27030708, 0.99674477, 0.99828203, 0.49299490,\
+-	-6.27137399, -0.00106465, 0.00065273, 7.27030933, 0.99674589, 0.99828262, 0.49299509,\
+-	-6.27137587, -0.00106429, 0.00065250, 7.27031158, 0.99674701, 0.99828321, 0.49299525,\
+-	-6.27137775, -0.00106392, 0.00065228, 7.27031382, 0.99674813, 0.99828380, 0.49299541,\
+-	-6.27137962, -0.00106356, 0.00065206, 7.27031606, 0.99674925, 0.99828439, 0.49299561,\
+-	-6.27138149, -0.00106319, 0.00065183, 7.27031830, 0.99675037, 0.99828497, 0.49299573,\
+-	-6.27138335, -0.00106283, 0.00065161, 7.27032053, 0.99675148, 0.99828556, 0.49299589,\
+-	-6.27138521, -0.00106246, 0.00065139, 7.27032275, 0.99675260, 0.99828615, 0.49299603,\
+-	-6.27138707, -0.00106210, 0.00065116, 7.27032497, 0.99675371, 0.99828674, 0.49299621,\
+-	-6.27138892, -0.00106173, 0.00065094, 7.27032719, 0.99675483, 0.99828733, 0.49299635,\
+-	-6.27139077, -0.00106137, 0.00065072, 7.27032940, 0.99675594, 0.99828791, 0.49299653,\
+-	-6.27139261, -0.00106101, 0.00065049, 7.27033160, 0.99675705, 0.99828850, 0.49299670,\
+-	-6.27139445, -0.00106064, 0.00065027, 7.27033380, 0.99675816, 0.99828909, 0.49299687,\
+-	-6.27139628, -0.00106028, 0.00065005, 7.27033600, 0.99675928, 0.99828967, 0.49299705,\
+-	-6.27139811, -0.00105992, 0.00064982, 7.27033819, 0.99676039, 0.99829026, 0.49299718,\
+-	-6.27139993, -0.00105956, 0.00064960, 7.27034037, 0.99676150, 0.99829084, 0.49299736,\
+-	-6.27140175, -0.00105919, 0.00064938, 7.27034256, 0.99676260, 0.99829143, 0.49299751,\
+-	-6.27140356, -0.00105883, 0.00064916, 7.27034473, 0.99676371, 0.99829201, 0.49299765,\
+-	-6.27140537, -0.00105847, 0.00064893, 7.27034690, 0.99676482, 0.99829260, 0.49299782,\
+-	-6.27140718, -0.00105811, 0.00064871, 7.27034907, 0.99676593, 0.99829318, 0.49299800,\
+-	-6.27140898, -0.00105775, 0.00064849, 7.27035123, 0.99676703, 0.99829376, 0.49299816,\
+-	-6.27141078, -0.00105739, 0.00064827, 7.27035339, 0.99676814, 0.99829434, 0.49299833,\
+-	-6.27141257, -0.00105702, 0.00064805, 7.27035555, 0.99676924, 0.99829493, 0.49299845,\
+-	-6.27141436, -0.00105666, 0.00064783, 7.27035770, 0.99677034, 0.99829551, 0.49299862,\
+-	-6.27141614, -0.00105630, 0.00064761, 7.27035984, 0.99677145, 0.99829609, 0.49299878,\
+-	-6.27141792, -0.00105594, 0.00064739, 7.27036198, 0.99677255, 0.99829667, 0.49299891,\
+-	-6.27141970, -0.00105558, 0.00064716, 7.27036412, 0.99677365, 0.99829725, 0.49299912,\
+-	-6.27142147, -0.00105522, 0.00064694, 7.27036625, 0.99677475, 0.99829783, 0.49299926,\
+-	-6.27142324, -0.00105486, 0.00064672, 7.27036837, 0.99677585, 0.99829841, 0.49299943,\
+-	-6.27142500, -0.00105451, 0.00064650, 7.27037050, 0.99677695, 0.99829899, 0.49299955,\
+-	-6.27142676, -0.00105415, 0.00064628, 7.27037261, 0.99677805, 0.99829957, 0.49299971,\
+-	-6.27142851, -0.00105379, 0.00064606, 7.27037473, 0.99677914, 0.99830015, 0.49299984,\
+-	-6.27143026, -0.00105343, 0.00064584, 7.27037683, 0.99678024, 0.99830073, 0.49300001,\
+-	-6.27143201, -0.00105307, 0.00064562, 7.27037894, 0.99678134, 0.99830131, 0.49300017,\
+-	-6.27143375, -0.00105271, 0.00064540, 7.27038104, 0.99678243, 0.99830188, 0.49300033,\
+-	-6.27143549, -0.00105236, 0.00064518, 7.27038313, 0.99678353, 0.99830246, 0.49300050,\
+-	-6.27143722, -0.00105200, 0.00064496, 7.27038522, 0.99678462, 0.99830304, 0.49300065,\
+-	-6.27143895, -0.00105164, 0.00064475, 7.27038731, 0.99678571, 0.99830361, 0.49300081,\
+-	-6.27144068, -0.00105128, 0.00064453, 7.27038939, 0.99678681, 0.99830419, 0.49300096,\
+-	-6.27144240, -0.00105093, 0.00064431, 7.27039147, 0.99678790, 0.99830477, 0.49300112,\
+-	-6.27144412, -0.00105057, 0.00064409, 7.27039355, 0.99678899, 0.99830534, 0.49300126,\
+-	-6.27144583, -0.00105021, 0.00064387, 7.27039561, 0.99679008, 0.99830592, 0.49300141,\
+-	-6.27144754, -0.00104986, 0.00064365, 7.27039768, 0.99679117, 0.99830649, 0.49300158,\
+-	-6.27144924, -0.00104950, 0.00064343, 7.27039974, 0.99679226, 0.99830706, 0.49300174,\
+-	-6.27145094, -0.00104915, 0.00064322, 7.27040180, 0.99679334, 0.99830764, 0.49300191,\
+-	-6.27145264, -0.00104879, 0.00064300, 7.27040385, 0.99679443, 0.99830821, 0.49300203,\
+-	-6.27145433, -0.00104844, 0.00064278, 7.27040590, 0.99679552, 0.99830878, 0.49300220,\
+-	-6.27145602, -0.00104808, 0.00064256, 7.27040794, 0.99679660, 0.99830936, 0.49300234,\
+-	-6.27145771, -0.00104773, 0.00064234, 7.27040998, 0.99679769, 0.99830993, 0.49300248,\
+-	-6.27145939, -0.00104737, 0.00064213, 7.27041202, 0.99679877, 0.99831050, 0.49300264,\
+-	-6.27146107, -0.00104702, 0.00064191, 7.27041405, 0.99679986, 0.99831107, 0.49300280,\
+-	-6.27146274, -0.00104667, 0.00064169, 7.27041607, 0.99680094, 0.99831164, 0.49300294,\
+-	-6.27146441, -0.00104631, 0.00064148, 7.27041810, 0.99680202, 0.99831221, 0.49300310,\
+-	-6.27146607, -0.00104596, 0.00064126, 7.27042012, 0.99680310, 0.99831278, 0.49300325,\
+-	-6.27146774, -0.00104561, 0.00064104, 7.27042213, 0.99680418, 0.99831335, 0.49300340,\
+-	-6.27146939, -0.00104525, 0.00064083, 7.27042414, 0.99680526, 0.99831392, 0.49300357,\
+-	-6.27147105, -0.00104490, 0.00064061, 7.27042615, 0.99680634, 0.99831449, 0.49300370,\
+-	-6.27147270, -0.00104455, 0.00064039, 7.27042815, 0.99680742, 0.99831506, 0.49300390,\
+-	-6.27147434, -0.00104420, 0.00064018, 7.27043015, 0.99680850, 0.99831563, 0.49300402,\
+-	-6.27147599, -0.00104384, 0.00063996, 7.27043214, 0.99680957, 0.99831620, 0.49300417,\
+-	-6.27147762, -0.00104349, 0.00063975, 7.27043413, 0.99681065, 0.99831676, 0.49300431,\
+-	-6.27147926, -0.00104314, 0.00063953, 7.27043612, 0.99681172, 0.99831733, 0.49300449,\
+-	-6.27148089, -0.00104279, 0.00063931, 7.27043810, 0.99681280, 0.99831790, 0.49300460,\
+-	-6.27148252, -0.00104244, 0.00063910, 7.27044008, 0.99681387, 0.99831846, 0.49300478,\
+-	-6.27148414, -0.00104209, 0.00063888, 7.27044205, 0.99681495, 0.99831903, 0.49300494,\
+-	-6.27148576, -0.00104174, 0.00063867, 7.27044402, 0.99681602, 0.99831959, 0.49300507,\
+-	-6.27148738, -0.00104139, 0.00063845, 7.27044599, 0.99681709, 0.99832016, 0.49300523,\
+-	-6.27148899, -0.00104104, 0.00063824, 7.27044795, 0.99681816, 0.99832072, 0.49300537,\
+-	-6.27149060, -0.00104069, 0.00063802, 7.27044991, 0.99681923, 0.99832129, 0.49300552,\
+-	-6.27149220, -0.00104034, 0.00063781, 7.27045186, 0.99682030, 0.99832185, 0.49300567,\
+-	-6.27149380, -0.00103999, 0.00063760, 7.27045382, 0.99682137, 0.99832242, 0.49300583,\
+-	-6.27149540, -0.00103964, 0.00063738, 7.27045576, 0.99682244, 0.99832298, 0.49300595,\
+-	-6.27149699, -0.00103929, 0.00063717, 7.27045771, 0.99682351, 0.99832354, 0.49300609,\
+-	-6.27149859, -0.00103894, 0.00063695, 7.27045964, 0.99682457, 0.99832411, 0.49300627,\
+-	-6.27150017, -0.00103859, 0.00063674, 7.27046158, 0.99682564, 0.99832467, 0.49300642,\
+-	-6.27150175, -0.00103824, 0.00063653, 7.27046351, 0.99682670, 0.99832523, 0.49300653,\
+-	-6.27150333, -0.00103790, 0.00063631, 7.27046544, 0.99682777, 0.99832579, 0.49300671,\
+-	-6.27150491, -0.00103755, 0.00063610, 7.27046736, 0.99682883, 0.99832635, 0.49300686,\
+-	-6.27150648, -0.00103720, 0.00063589, 7.27046928, 0.99682990, 0.99832691, 0.49300700,\
+-	-6.27150805, -0.00103685, 0.00063567, 7.27047120, 0.99683096, 0.99832747, 0.49300717,\
+-	-6.27150962, -0.00103651, 0.00063546, 7.27047311, 0.99683202, 0.99832803, 0.49300731,\
+-	-6.27151118, -0.00103616, 0.00063525, 7.27047502, 0.99683308, 0.99832859, 0.49300742,\
+-	-6.27151274, -0.00103581, 0.00063503, 7.27047692, 0.99683414, 0.99832915, 0.49300759,\
+-	-6.27151429, -0.00103547, 0.00063482, 7.27047882, 0.99683520, 0.99832971, 0.49300775,\
+-	-6.27151584, -0.00103512, 0.00063461, 7.27048072, 0.99683626, 0.99833027, 0.49300787,\
+-	-6.27151739, -0.00103478, 0.00063440, 7.27048262, 0.99683732, 0.99833083, 0.49300803,\
+-	-6.27151893, -0.00103443, 0.00063419, 7.27048451, 0.99683838, 0.99833138, 0.49300818,\
+-	-6.27152048, -0.00103408, 0.00063397, 7.27048639, 0.99683943, 0.99833194, 0.49300831,\
+-	-6.27152201, -0.00103374, 0.00063376, 7.27048827, 0.99684049, 0.99833250, 0.49300846,\
+-	-6.27152355, -0.00103339, 0.00063355, 7.27049015, 0.99684154, 0.99833306, 0.49300863,\
+-	-6.27152508, -0.00103305, 0.00063334, 7.27049203, 0.99684260, 0.99833361, 0.49300877,\
+-	-6.27152660, -0.00103270, 0.00063313, 7.27049390, 0.99684365, 0.99833417, 0.49300891,\
+-	-6.27152813, -0.00103236, 0.00063292, 7.27049577, 0.99684471, 0.99833472, 0.49300907,\
+-	-6.27152965, -0.00103202, 0.00063271, 7.27049763, 0.99684576, 0.99833528, 0.49300922,\
+-	-6.27153117, -0.00103167, 0.00063249, 7.27049949, 0.99684681, 0.99833583, 0.49300935,\
+-	-6.27153268, -0.00103133, 0.00063228, 7.27050135, 0.99684786, 0.99833639, 0.49300949,\
+-	-6.27153419, -0.00103099, 0.00063207, 7.27050320, 0.99684891, 0.99833694, 0.49300966,\
+-	-6.27153570, -0.00103064, 0.00063186, 7.27050505, 0.99684996, 0.99833749, 0.49300980,\
+-	-6.27153720, -0.00103030, 0.00063165, 7.27050690, 0.99685101, 0.99833805, 0.49300992,\
+-	-6.27153870, -0.00102996, 0.00063144, 7.27050874, 0.99685206, 0.99833860, 0.49301003,\
+-	-6.27154020, -0.00102961, 0.00063123, 7.27051058, 0.99685311, 0.99833915, 0.49301024,\
+-	-6.27154169, -0.00102927, 0.00063102, 7.27051242, 0.99685415, 0.99833971, 0.49301036,\
+-	-6.27154318, -0.00102893, 0.00063081, 7.27051425, 0.99685520, 0.99834026, 0.49301051,\
+-	-6.27154467, -0.00102859, 0.00063060, 7.27051608, 0.99685625, 0.99834081, 0.49301064,\
+-	-6.27154615, -0.00102825, 0.00063039, 7.27051791, 0.99685729, 0.99834136, 0.49301076,\
+-	-6.27154763, -0.00102791, 0.00063018, 7.27051973, 0.99685834, 0.99834191, 0.49301089,\
+-	-6.27154911, -0.00102756, 0.00062997, 7.27052155, 0.99685938, 0.99834246, 0.49301105,\
+-	-6.27155059, -0.00102722, 0.00062976, 7.27052336, 0.99686042, 0.99834301, 0.49301119,\
+-	-6.27155206, -0.00102688, 0.00062956, 7.27052517, 0.99686146, 0.99834356, 0.49301134,\
+-	-6.27155352, -0.00102654, 0.00062935, 7.27052698, 0.99686251, 0.99834411, 0.49301148,\
+-	-6.27155499, -0.00102620, 0.00062914, 7.27052879, 0.99686355, 0.99834466, 0.49301163,\
+-	-6.27155645, -0.00102586, 0.00062893, 7.27053059, 0.99686459, 0.99834521, 0.49301176,\
+-	-6.27155791, -0.00102552, 0.00062872, 7.27053239, 0.99686563, 0.99834576, 0.49301188,\
+-	-6.27155936, -0.00102518, 0.00062851, 7.27053418, 0.99686666, 0.99834630, 0.49301206,\
+-	-6.27156082, -0.00102484, 0.00062830, 7.27053597, 0.99686770, 0.99834685, 0.49301220,\
+-	-6.27156226, -0.00102451, 0.00062810, 7.27053776, 0.99686874, 0.99834740, 0.49301233,\
+-	-6.27156371, -0.00102417, 0.00062789, 7.27053954, 0.99686978, 0.99834794, 0.49301246,\
+-	-6.27156515, -0.00102383, 0.00062768, 7.27054132, 0.99687081, 0.99834849, 0.49301262,\
+-	-6.27156659, -0.00102349, 0.00062747, 7.27054310, 0.99687185, 0.99834904, 0.49301280,\
+-	-6.27156803, -0.00102315, 0.00062727, 7.27054488, 0.99687288, 0.99834958, 0.49301294,\
+-	-6.27156946, -0.00102281, 0.00062706, 7.27054665, 0.99687392, 0.99835013, 0.49301309,\
+-	-6.27157089, -0.00102248, 0.00062685, 7.27054842, 0.99687495, 0.99835067, 0.49301319,\
+-	-6.27157232, -0.00102214, 0.00062664, 7.27055018, 0.99687598, 0.99835122, 0.49301335,\
+-	-6.27157374, -0.00102180, 0.00062644, 7.27055194, 0.99687701, 0.99835176, 0.49301345,\
+-	-6.27157517, -0.00102146, 0.00062623, 7.27055370, 0.99687805, 0.99835231, 0.49301362,\
+-	-6.27157658, -0.00102113, 0.00062602, 7.27055546, 0.99687908, 0.99835285, 0.49301372,\
+-	-6.27157800, -0.00102079, 0.00062582, 7.27055721, 0.99688011, 0.99835339, 0.49301383,\
+-	-6.27157941, -0.00102045, 0.00062561, 7.27055896, 0.99688113, 0.99835393, 0.49301405,\
+-	-6.27158082, -0.00102012, 0.00062540, 7.27056070, 0.99688216, 0.99835448, 0.49301418,\
+-	-6.27158223, -0.00101978, 0.00062520, 7.27056244, 0.99688319, 0.99835502, 0.49301433,\
+-	-6.27158363, -0.00101945, 0.00062499, 7.27056418, 0.99688422, 0.99835556, 0.49301444,\
+-	-6.27158503, -0.00101911, 0.00062479, 7.27056592, 0.99688524, 0.99835610, 0.49301454,\
+-	-6.27158643, -0.00101878, 0.00062458, 7.27056765, 0.99688627, 0.99835664, 0.49301468,\
+-	-6.27158782, -0.00101844, 0.00062438, 7.27056938, 0.99688730, 0.99835718, 0.49301483,\
+-	-6.27158921, -0.00101811, 0.00062417, 7.27057111, 0.99688832, 0.99835772, 0.49301499,\
+-	-6.27159060, -0.00101777, 0.00062396, 7.27057283, 0.99688934, 0.99835826, 0.49301513,\
+-	-6.27159199, -0.00101744, 0.00062376, 7.27057455, 0.99689037, 0.99835880, 0.49301528,\
+-	-6.27159337, -0.00101710, 0.00062355, 7.27057627, 0.99689139, 0.99835934, 0.49301541,\
+-	-6.27159475, -0.00101677, 0.00062335, 7.27057798, 0.99689241, 0.99835988, 0.49301553,\
+-	-6.27159613, -0.00101644, 0.00062314, 7.27057969, 0.99689343, 0.99836042, 0.49301569,\
+-	-6.27159750, -0.00101610, 0.00062294, 7.27058140, 0.99689445, 0.99836096, 0.49301584,\
+-	-6.27159887, -0.00101577, 0.00062274, 7.27058310, 0.99689547, 0.99836150, 0.49301593,\
+-	-6.27160024, -0.00101544, 0.00062253, 7.27058480, 0.99689649, 0.99836203, 0.49301608,\
+-	-6.27160160, -0.00101510, 0.00062233, 7.27058650, 0.99689751, 0.99836257, 0.49301621,\
+-	-6.27160297, -0.00101477, 0.00062212, 7.27058820, 0.99689853, 0.99836311, 0.49301634,\
+-	-6.27160433, -0.00101444, 0.00062192, 7.27058989, 0.99689954, 0.99836364, 0.49301647,\
+-	-6.27160568, -0.00101410, 0.00062171, 7.27059158, 0.99690056, 0.99836418, 0.49301663,\
+-	-6.27160704, -0.00101377, 0.00062151, 7.27059327, 0.99690158, 0.99836472, 0.49301679,\
+-	-6.27160839, -0.00101344, 0.00062131, 7.27059495, 0.99690259, 0.99836525, 0.49301693,\
+-	-6.27160974, -0.00101311, 0.00062110, 7.27059663, 0.99690361, 0.99836579, 0.49301706,\
+-	-6.27161108, -0.00101278, 0.00062090, 7.27059831, 0.99690462, 0.99836632, 0.49301722,\
+-	-6.27161243, -0.00101245, 0.00062070, 7.27059998, 0.99690563, 0.99836686, 0.49301730,\
+-	-6.27161377, -0.00101212, 0.00062049, 7.27060165, 0.99690664, 0.99836739, 0.49301748,\
+-	-6.27161511, -0.00101179, 0.00062029, 7.27060332, 0.99690766, 0.99836792, 0.49301757,\
+-	-6.27161644, -0.00101146, 0.00062009, 7.27060499, 0.99690867, 0.99836846, 0.49301772,\
+-	-6.27161777, -0.00101112, 0.00061989, 7.27060665, 0.99690968, 0.99836899, 0.49301787,\
+-	-6.27161910, -0.00101079, 0.00061968, 7.27060831, 0.99691069, 0.99836952, 0.49301798,\
+-	-6.27162043, -0.00101046, 0.00061948, 7.27060996, 0.99691170, 0.99837005, 0.49301811,\
+-	-6.27162175, -0.00101014, 0.00061928, 7.27061162, 0.99691271, 0.99837059, 0.49301825,\
+-	-6.27162307, -0.00100981, 0.00061908, 7.27061327, 0.99691371, 0.99837112, 0.49301840,\
+-	-6.27162439, -0.00100948, 0.00061887, 7.27061492, 0.99691472, 0.99837165, 0.49301855,\
+-	-6.27162571, -0.00100915, 0.00061867, 7.27061656, 0.99691573, 0.99837218, 0.49301866,\
+-	-6.27162702, -0.00100882, 0.00061847, 7.27061820, 0.99691673, 0.99837271, 0.49301881,\
+-	-6.27162833, -0.00100849, 0.00061827, 7.27061984, 0.99691774, 0.99837324, 0.49301892,\
+-	-6.27162964, -0.00100816, 0.00061807, 7.27062148, 0.99691874, 0.99837377, 0.49301906,\
+-	-6.27163095, -0.00100783, 0.00061787, 7.27062311, 0.99691975, 0.99837430, 0.49301923,\
+-	-6.27163225, -0.00100751, 0.00061767, 7.27062474, 0.99692075, 0.99837483, 0.49301935,\
+-	-6.27163355, -0.00100718, 0.00061746, 7.27062637, 0.99692175, 0.99837536, 0.49301944,\
+-	-6.27163485, -0.00100685, 0.00061726, 7.27062800, 0.99692275, 0.99837589, 0.49301961,\
+-	-6.27163614, -0.00100652, 0.00061706, 7.27062962, 0.99692375, 0.99837641, 0.49301974,\
+-	-6.27163743, -0.00100620, 0.00061686, 7.27063124, 0.99692476, 0.99837694, 0.49301990,\
+-	-6.27163872, -0.00100587, 0.00061666, 7.27063285, 0.99692576, 0.99837747, 0.49301996,\
+-	-6.27164001, -0.00100554, 0.00061646, 7.27063447, 0.99692675, 0.99837800, 0.49302013,\
+-	-6.27164130, -0.00100522, 0.00061626, 7.27063608, 0.99692775, 0.99837852, 0.49302024,\
+-	-6.27164258, -0.00100489, 0.00061606, 7.27063769, 0.99692875, 0.99837905, 0.49302039,\
+-	-6.27164386, -0.00100456, 0.00061586, 7.27063929, 0.99692975, 0.99837957, 0.49302050,\
+-	-6.27164513, -0.00100424, 0.00061566, 7.27064090, 0.99693075, 0.99838010, 0.49302064,\
+-	-6.27164641, -0.00100391, 0.00061546, 7.27064250, 0.99693174, 0.99838063, 0.49302080,\
+-	-6.27164768, -0.00100359, 0.00061526, 7.27064409, 0.99693274, 0.99838115, 0.49302092,\
+-	-6.27164895, -0.00100326, 0.00061506, 7.27064569, 0.99693373, 0.99838168, 0.49302106,\
+-	-6.27165022, -0.00100294, 0.00061486, 7.27064728, 0.99693473, 0.99838220, 0.49302117,\
+-	-6.27165148, -0.00100261, 0.00061466, 7.27064887, 0.99693572, 0.99838272, 0.49302135,\
+-	-6.27165274, -0.00100229, 0.00061446, 7.27065045, 0.99693671, 0.99838325, 0.49302147,\
+-	-6.27165400, -0.00100196, 0.00061427, 7.27065204, 0.99693770, 0.99838377, 0.49302161,\
+-	-6.27165526, -0.00100164, 0.00061407, 7.27065362, 0.99693870, 0.99838429, 0.49302174,\
+-	-6.27165651, -0.00100132, 0.00061387, 7.27065520, 0.99693969, 0.99838482, 0.49302182,\
+-	-6.27165777, -0.00100099, 0.00061367, 7.27065677, 0.99694068, 0.99838534, 0.49302200,\
+-	-6.27165902, -0.00100067, 0.00061347, 7.27065835, 0.99694167, 0.99838586, 0.49302214,\
+-	-6.27166026, -0.00100035, 0.00061327, 7.27065992, 0.99694266, 0.99838638, 0.49302227,\
+-	-6.27166151, -0.00100002, 0.00061307, 7.27066149, 0.99694364, 0.99838690, 0.49302237,\
+-	-6.27166275, -0.00099970, 0.00061288, 7.27066305, 0.99694463, 0.99838742, 0.49302253,\
+-	-6.27166399, -0.00099938, 0.00061268, 7.27066461, 0.99694562, 0.99838795, 0.49302264,\
+-	-6.27166523, -0.00099905, 0.00061248, 7.27066617, 0.99694660, 0.99838847, 0.49302277,\
+-	-6.27166646, -0.00099873, 0.00061228, 7.27066773, 0.99694759, 0.99838899, 0.49302290,\
+-	-6.27166770, -0.00099841, 0.00061208, 7.27066928, 0.99694858, 0.99838951, 0.49302301,\
+-	-6.27166893, -0.00099809, 0.00061189, 7.27067084, 0.99694956, 0.99839002, 0.49302315,\
+-	-6.27167015, -0.00099777, 0.00061169, 7.27067239, 0.99695054, 0.99839054, 0.49302331,\
+-	-6.27167138, -0.00099745, 0.00061149, 7.27067393, 0.99695153, 0.99839106, 0.49302343,\
+-	-6.27167260, -0.00099712, 0.00061130, 7.27067548, 0.99695251, 0.99839158, 0.49302354,\
+-	-6.27167382, -0.00099680, 0.00061110, 7.27067702, 0.99695349, 0.99839210, 0.49302367,\
+-	-6.27167504, -0.00099648, 0.00061090, 7.27067856, 0.99695447, 0.99839262, 0.49302378,\
+-	-6.27167626, -0.00099616, 0.00061070, 7.27068010, 0.99695545, 0.99839313, 0.49302391,\
+-	-6.27167747, -0.00099584, 0.00061051, 7.27068163, 0.99695643, 0.99839365, 0.49302405,\
+-	-6.27167868, -0.00099552, 0.00061031, 7.27068316, 0.99695741, 0.99839417, 0.49302418,\
+-	-6.27167989, -0.00099520, 0.00061012, 7.27068469, 0.99695839, 0.99839468, 0.49302428,\
+-	-6.27168110, -0.00099488, 0.00060992, 7.27068622, 0.99695937, 0.99839520, 0.49302442,\
+-	-6.27168231, -0.00099456, 0.00060972, 7.27068774, 0.99696035, 0.99839571, 0.49302457,\
+-	-6.27168351, -0.00099424, 0.00060953, 7.27068927, 0.99696133, 0.99839623, 0.49302469,\
+-	-6.27168471, -0.00099392, 0.00060933, 7.27069078, 0.99696230, 0.99839674, 0.49302483,\
+-	-6.27168591, -0.00099360, 0.00060914, 7.27069230, 0.99696328, 0.99839726, 0.49302493,\
+-	-6.27168710, -0.00099329, 0.00060894, 7.27069382, 0.99696425, 0.99839777, 0.49302510,\
+-	-6.27168829, -0.00099297, 0.00060874, 7.27069533, 0.99696523, 0.99839829, 0.49302519,\
+-	-6.27168949, -0.00099265, 0.00060855, 7.27069684, 0.99696620, 0.99839880, 0.49302531,\
+-	-6.27169067, -0.00099233, 0.00060835, 7.27069834, 0.99696717, 0.99839931, 0.49302546,\
+-	-6.27169186, -0.00099201, 0.00060816, 7.27069985, 0.99696815, 0.99839983, 0.49302559,\
+-	-6.27169305, -0.00099170, 0.00060796, 7.27070135, 0.99696912, 0.99840034, 0.49302572,\
+-	-6.27169423, -0.00099138, 0.00060777, 7.27070285, 0.99697009, 0.99840085, 0.49302581,\
+-	-6.27169541, -0.00099106, 0.00060757, 7.27070435, 0.99697106, 0.99840137, 0.49302594,\
+-	-6.27169659, -0.00099074, 0.00060738, 7.27070584, 0.99697203, 0.99840188, 0.49302606,\
+-	-6.27169776, -0.00099043, 0.00060719, 7.27070734, 0.99697300, 0.99840239, 0.49302620,\
+-	-6.27169893, -0.00099011, 0.00060699, 7.27070883, 0.99697397, 0.99840290, 0.49302635,\
+-	-6.27170011, -0.00098979, 0.00060680, 7.27071031, 0.99697494, 0.99840341, 0.49302644,\
+-	-6.27170128, -0.00098948, 0.00060660, 7.27071180, 0.99697590, 0.99840392, 0.49302662,\
+-	-6.27170244, -0.00098916, 0.00060641, 7.27071328, 0.99697687, 0.99840443, 0.49302676,\
+-	-6.27170361, -0.00098884, 0.00060622, 7.27071476, 0.99697784, 0.99840494, 0.49302682,\
+-	-6.27170477, -0.00098853, 0.00060602, 7.27071624, 0.99697880, 0.99840545, 0.49302696,\
+-	-6.27170593, -0.00098821, 0.00060583, 7.27071772, 0.99697977, 0.99840596, 0.49302711,\
+-	-6.27170709, -0.00098790, 0.00060563, 7.27071919, 0.99698073, 0.99840647, 0.49302721,\
+-	-6.27170825, -0.00098758, 0.00060544, 7.27072066, 0.99698170, 0.99840698, 0.49302733,\
+-	-6.27170940, -0.00098727, 0.00060525, 7.27072213, 0.99698266, 0.99840748, 0.49302748,\
+-	-6.27171055, -0.00098695, 0.00060505, 7.27072360, 0.99698362, 0.99840799, 0.49302765,\
+-	-6.27171170, -0.00098664, 0.00060486, 7.27072506, 0.99698459, 0.99840850, 0.49302773,\
+-	-6.27171285, -0.00098633, 0.00060467, 7.27072652, 0.99698555, 0.99840901, 0.49302786,\
+-	-6.27171399, -0.00098601, 0.00060448, 7.27072798, 0.99698651, 0.99840951, 0.49302797,\
+-	-6.27171514, -0.00098570, 0.00060428, 7.27072944, 0.99698747, 0.99841002, 0.49302811,\
+-	-6.27171628, -0.00098538, 0.00060409, 7.27073090, 0.99698843, 0.99841053, 0.49302824,\
+-	-6.27171742, -0.00098507, 0.00060390, 7.27073235, 0.99698939, 0.99841103, 0.49302835,\
+-	-6.27171856, -0.00098476, 0.00060371, 7.27073380, 0.99699035, 0.99841154, 0.49302848,\
+-	-6.27171969, -0.00098444, 0.00060351, 7.27073525, 0.99699130, 0.99841204, 0.49302858,\
+-	-6.27172082, -0.00098413, 0.00060332, 7.27073669, 0.99699226, 0.99841255, 0.49302871,\
+-	-6.27172196, -0.00098382, 0.00060313, 7.27073814, 0.99699322, 0.99841305, 0.49302887,\
+-	-6.27172309, -0.00098351, 0.00060294, 7.27073958, 0.99699417, 0.99841356, 0.49302895,\
+-	-6.27172421, -0.00098319, 0.00060275, 7.27074102, 0.99699513, 0.99841406, 0.49302912,\
+-	-6.27172534, -0.00098288, 0.00060256, 7.27074246, 0.99699608, 0.99841456, 0.49302925,\
+-	-6.27172646, -0.00098257, 0.00060236, 7.27074389, 0.99699704, 0.99841507, 0.49302935,\
+-	-6.27172758, -0.00098226, 0.00060217, 7.27074532, 0.99699799, 0.99841557, 0.49302945,\
+-	-6.27172870, -0.00098195, 0.00060198, 7.27074676, 0.99699894, 0.99841607, 0.49302959,\
+-	-6.27172982, -0.00098163, 0.00060179, 7.27074818, 0.99699990, 0.99841657, 0.49302970,\
+-	-6.27173093, -0.00098132, 0.00060160, 7.27074961, 0.99700085, 0.99841708, 0.49302981,\
+-	-6.27173205, -0.00098101, 0.00060141, 7.27075103, 0.99700180, 0.99841758, 0.49302992,\
+-	-6.27173316, -0.00098070, 0.00060122, 7.27075246, 0.99700275, 0.99841808, 0.49303009,\
+-	-6.27173427, -0.00098039, 0.00060103, 7.27075388, 0.99700370, 0.99841858, 0.49303019,\
+-	-6.27173537, -0.00098008, 0.00060084, 7.27075529, 0.99700465, 0.99841908, 0.49303031,\
+-	-6.27173648, -0.00097977, 0.00060065, 7.27075671, 0.99700560, 0.99841958, 0.49303044,\
+-	-6.27173758, -0.00097946, 0.00060046, 7.27075812, 0.99700655, 0.99842008, 0.49303056,\
+-	-6.27173868, -0.00097915, 0.00060027, 7.27075953, 0.99700749, 0.99842058, 0.49303069,\
+-	-6.27173978, -0.00097884, 0.00060008, 7.27076094, 0.99700844, 0.99842108, 0.49303080,\
+-	-6.27174088, -0.00097853, 0.00059989, 7.27076235, 0.99700939, 0.99842158, 0.49303094,\
+-	-6.27174198, -0.00097822, 0.00059970, 7.27076375, 0.99701033, 0.99842208, 0.49303107,\
+-	-6.27174307, -0.00097791, 0.00059951, 7.27076516, 0.99701128, 0.99842258, 0.49303120,\
+-	-6.27174416, -0.00097761, 0.00059932, 7.27076656, 0.99701222, 0.99842308, 0.49303132,\
+-	-6.27174525, -0.00097730, 0.00059913, 7.27076795, 0.99701317, 0.99842357, 0.49303142,\
+-	-6.27174634, -0.00097699, 0.00059894, 7.27076935, 0.99701411, 0.99842407, 0.49303154,\
+-	-6.27174743, -0.00097668, 0.00059875, 7.27077075, 0.99701505, 0.99842457, 0.49303168,\
+-	-6.27174851, -0.00097637, 0.00059856, 7.27077214, 0.99701599, 0.99842507, 0.49303176,\
+-	-6.27174959, -0.00097606, 0.00059837, 7.27077353, 0.99701693, 0.99842556, 0.49303192,\
+-	-6.27175067, -0.00097576, 0.00059818, 7.27077491, 0.99701788, 0.99842606, 0.49303205,\
+-	-6.27175175, -0.00097545, 0.00059800, 7.27077630, 0.99701882, 0.99842656, 0.49303212,\
+-	-6.27175283, -0.00097514, 0.00059781, 7.27077769, 0.99701976, 0.99842705, 0.49303223,\
+-	-6.27175390, -0.00097484, 0.00059762, 7.27077907, 0.99702070, 0.99842755, 0.49303239,\
+-	-6.27175497, -0.00097453, 0.00059743, 7.27078045, 0.99702163, 0.99842804, 0.49303247,\
+-	-6.27175605, -0.00097422, 0.00059724, 7.27078182, 0.99702257, 0.99842854, 0.49303263,\
+-	-6.27175712, -0.00097392, 0.00059705, 7.27078320, 0.99702351, 0.99842903, 0.49303277,\
+-	-6.27175818, -0.00097361, 0.00059687, 7.27078457, 0.99702445, 0.99842952, 0.49303287,\
+-	-6.27175925, -0.00097330, 0.00059668, 7.27078595, 0.99702538, 0.99843002, 0.49303298,\
+-	-6.27176031, -0.00097300, 0.00059649, 7.27078731, 0.99702632, 0.99843051, 0.49303309,\
+-	-6.27176137, -0.00097269, 0.00059630, 7.27078868, 0.99702725, 0.99843101, 0.49303324,\
+-	-6.27176243, -0.00097239, 0.00059612, 7.27079005, 0.99702819, 0.99843150, 0.49303337,\
+-	-6.27176349, -0.00097208, 0.00059593, 7.27079141, 0.99702912, 0.99843199, 0.49303342,\
+-	-6.27176455, -0.00097178, 0.00059574, 7.27079277, 0.99703005, 0.99843248, 0.49303355,\
+-	-6.27176560, -0.00097147, 0.00059555, 7.27079413, 0.99703099, 0.99843298, 0.49303367,\
+-	-6.27176666, -0.00097117, 0.00059537, 7.27079549, 0.99703192, 0.99843347, 0.49303384,\
+-	-6.27176771, -0.00097086, 0.00059518, 7.27079685, 0.99703285, 0.99843396, 0.49303391,\
+-	-6.27176876, -0.00097056, 0.00059499, 7.27079820, 0.99703378, 0.99843445, 0.49303404,\
+-	-6.27176980, -0.00097025, 0.00059481, 7.27079955, 0.99703471, 0.99843494, 0.49303417,\
+-	-6.27177085, -0.00096995, 0.00059462, 7.27080090, 0.99703564, 0.99843543, 0.49303426,\
+-	-6.27177189, -0.00096965, 0.00059443, 7.27080225, 0.99703657, 0.99843592, 0.49303442,\
+-	-6.27177294, -0.00096934, 0.00059425, 7.27080359, 0.99703750, 0.99843641, 0.49303454,\
+-	-6.27177398, -0.00096904, 0.00059406, 7.27080494, 0.99703843, 0.99843690, 0.49303464,\
+-	-6.27177502, -0.00096874, 0.00059388, 7.27080628, 0.99703936, 0.99843739, 0.49303476,\
+-	-6.27177605, -0.00096843, 0.00059369, 7.27080762, 0.99704028, 0.99843788, 0.49303487,\
+-	-6.27177709, -0.00096813, 0.00059350, 7.27080896, 0.99704121, 0.99843837, 0.49303501,\
+-	-6.27177812, -0.00096783, 0.00059332, 7.27081030, 0.99704213, 0.99843886, 0.49303512,\
+-	-6.27177915, -0.00096752, 0.00059313, 7.27081163, 0.99704306, 0.99843934, 0.49303521,\
+-	-6.27178018, -0.00096722, 0.00059295, 7.27081296, 0.99704398, 0.99843983, 0.49303537,\
+-	-6.27178121, -0.00096692, 0.00059276, 7.27081429, 0.99704491, 0.99844032, 0.49303546,\
+-	-6.27178224, -0.00096662, 0.00059258, 7.27081562, 0.99704583, 0.99844081, 0.49303558,\
+-	-6.27178326, -0.00096632, 0.00059239, 7.27081695, 0.99704675, 0.99844129, 0.49303575,\
+-	-6.27178429, -0.00096602, 0.00059221, 7.27081827, 0.99704768, 0.99844178, 0.49303581,\
+-	-6.27178531, -0.00096571, 0.00059202, 7.27081960, 0.99704860, 0.99844227, 0.49303591,\
+-	-6.27178633, -0.00096541, 0.00059184, 7.27082092, 0.99704952, 0.99844275, 0.49303609,\
+-	-6.27178735, -0.00096511, 0.00059165, 7.27082224, 0.99705044, 0.99844324, 0.49303618,\
+-	-6.27178836, -0.00096481, 0.00059147, 7.27082355, 0.99705136, 0.99844372, 0.49303628,\
+-	-6.27178938, -0.00096451, 0.00059128, 7.27082487, 0.99705228, 0.99844421, 0.49303641,\
+-	-6.27179039, -0.00096421, 0.00059110, 7.27082618, 0.99705320, 0.99844469, 0.49303652,\
+-	-6.27179140, -0.00096391, 0.00059091, 7.27082749, 0.99705412, 0.99844518, 0.49303666,\
+-	-6.27179242, -0.00096361, 0.00059073, 7.27082881, 0.99705503, 0.99844566, 0.49303673,\
+-	-6.27179342, -0.00096331, 0.00059055, 7.27083011, 0.99705595, 0.99844614, 0.49303690,\
+-	-6.27179443, -0.00096301, 0.00059036, 7.27083142, 0.99705687, 0.99844663, 0.49303700,\
+-	-6.27179544, -0.00096271, 0.00059018, 7.27083272, 0.99705778, 0.99844711, 0.49303712,\
+-	-6.27179644, -0.00096241, 0.00058999, 7.27083403, 0.99705870, 0.99844759, 0.49303722,\
+-	-6.27179744, -0.00096211, 0.00058981, 7.27083533, 0.99705961, 0.99844808, 0.49303732,\
+-	-6.27179844, -0.00096181, 0.00058963, 7.27083663, 0.99706053, 0.99844856, 0.49303745,\
+-	-6.27179944, -0.00096152, 0.00058944, 7.27083792, 0.99706144, 0.99844904, 0.49303757,\
+-	-6.27180044, -0.00096122, 0.00058926, 7.27083922, 0.99706235, 0.99844952, 0.49303771,\
+-	-6.27180143, -0.00096092, 0.00058908, 7.27084051, 0.99706327, 0.99845000, 0.49303777,\
+-	-6.27180243, -0.00096062, 0.00058890, 7.27084181, 0.99706418, 0.99845048, 0.49303795,\
+-	-6.27180342, -0.00096032, 0.00058871, 7.27084310, 0.99706509, 0.99845097, 0.49303802,\
+-	-6.27180441, -0.00096002, 0.00058853, 7.27084438, 0.99706600, 0.99845145, 0.49303815,\
+-	-6.27180540, -0.00095973, 0.00058835, 7.27084567, 0.99706691, 0.99845193, 0.49303827,\
+-	-6.27180639, -0.00095943, 0.00058816, 7.27084696, 0.99706782, 0.99845241, 0.49303836,\
+-	-6.27180737, -0.00095913, 0.00058798, 7.27084824, 0.99706873, 0.99845289, 0.49303844,\
+-	-6.27180836, -0.00095884, 0.00058780, 7.27084952, 0.99706964, 0.99845336, 0.49303861,\
+-	-6.27180934, -0.00095854, 0.00058762, 7.27085080, 0.99707055, 0.99845384, 0.49303868,\
+-	-6.27181032, -0.00095824, 0.00058744, 7.27085208, 0.99707145, 0.99845432, 0.49303884,\
+-	-6.27181130, -0.00095795, 0.00058725, 7.27085335, 0.99707236, 0.99845480, 0.49303895,\
+-	-6.27181228, -0.00095765, 0.00058707, 7.27085463, 0.99707327, 0.99845528, 0.49303908,\
+-	-6.27181325, -0.00095735, 0.00058689, 7.27085590, 0.99707417, 0.99845576, 0.49303915,\
+-	-6.27181423, -0.00095706, 0.00058671, 7.27085717, 0.99707508, 0.99845623, 0.49303928,\
+-	-6.27181520, -0.00095676, 0.00058653, 7.27085844, 0.99707598, 0.99845671, 0.49303940,\
+-	-6.27181618, -0.00095647, 0.00058635, 7.27085971, 0.99707689, 0.99845719, 0.49303950,\
+-	-6.27181715, -0.00095617, 0.00058616, 7.27086098, 0.99707779, 0.99845766, 0.49303965,\
+-	-6.27181811, -0.00095588, 0.00058598, 7.27086224, 0.99707869, 0.99845814, 0.49303979,\
+-	-6.27181908, -0.00095558, 0.00058580, 7.27086350, 0.99707960, 0.99845862, 0.49303989,\
+-	-6.27182005, -0.00095529, 0.00058562, 7.27086476, 0.99708050, 0.99845909, 0.49303994,\
+-	-6.27182101, -0.00095499, 0.00058544, 7.27086602, 0.99708140, 0.99845957, 0.49304006,\
+-	-6.27182198, -0.00095470, 0.00058526, 7.27086728, 0.99708230, 0.99846004, 0.49304023,\
+-	-6.27182294, -0.00095440, 0.00058508, 7.27086854, 0.99708320, 0.99846052, 0.49304031,\
+-	-6.27182390, -0.00095411, 0.00058490, 7.27086979, 0.99708410, 0.99846099, 0.49304040,\
+-	-6.27182486, -0.00095381, 0.00058472, 7.27087104, 0.99708500, 0.99846147, 0.49304052,\
+-	-6.27182581, -0.00095352, 0.00058454, 7.27087229, 0.99708590, 0.99846194, 0.49304066,\
+-	-6.27182677, -0.00095323, 0.00058436, 7.27087354, 0.99708680, 0.99846242, 0.49304078,\
+-	-6.27182772, -0.00095293, 0.00058418, 7.27087479, 0.99708769, 0.99846289, 0.49304090,\
+-	-6.27182867, -0.00095264, 0.00058400, 7.27087603, 0.99708859, 0.99846336, 0.49304102,\
+-	-6.27182963, -0.00095235, 0.00058382, 7.27087728, 0.99708949, 0.99846383, 0.49304112,\
+-	-6.27183058, -0.00095205, 0.00058364, 7.27087852, 0.99709038, 0.99846431, 0.49304120,\
+-	-6.27183152, -0.00095176, 0.00058346, 7.27087976, 0.99709128, 0.99846478, 0.49304129,\
+-	-6.27183247, -0.00095147, 0.00058328, 7.27088100, 0.99709217, 0.99846525, 0.49304145,\
+-	-6.27183342, -0.00095118, 0.00058310, 7.27088224, 0.99709307, 0.99846572, 0.49304157,\
+-	-6.27183436, -0.00095088, 0.00058292, 7.27088348, 0.99709396, 0.99846619, 0.49304165,\
+-	-6.27183530, -0.00095059, 0.00058274, 7.27088471, 0.99709485, 0.99846667, 0.49304175,\
+-	-6.27183624, -0.00095030, 0.00058256, 7.27088594, 0.99709575, 0.99846714, 0.49304190,\
+-	-6.27183718, -0.00095001, 0.00058238, 7.27088717, 0.99709664, 0.99846761, 0.49304204,\
+-	-6.27183812, -0.00094972, 0.00058221, 7.27088840, 0.99709753, 0.99846808, 0.49304212,\
+-	-6.27183906, -0.00094943, 0.00058203, 7.27088963, 0.99709842, 0.99846855, 0.49304222,\
+-	-6.27183999, -0.00094914, 0.00058185, 7.27089086, 0.99709931, 0.99846902, 0.49304233,\
+-	-6.27184093, -0.00094884, 0.00058167, 7.27089208, 0.99710020, 0.99846949, 0.49304245,\
+-	-6.27184186, -0.00094855, 0.00058149, 7.27089331, 0.99710109, 0.99846996, 0.49304255,\
+-	-6.27184279, -0.00094826, 0.00058131, 7.27089453, 0.99710198, 0.99847042, 0.49304263,\
+-	-6.27184372, -0.00094797, 0.00058113, 7.27089575, 0.99710287, 0.99847089, 0.49304277,\
+-	-6.27184465, -0.00094768, 0.00058096, 7.27089697, 0.99710375, 0.99847136, 0.49304288,\
+-	-6.27184558, -0.00094739, 0.00058078, 7.27089818, 0.99710464, 0.99847183, 0.49304302,\
+-	-6.27184650, -0.00094710, 0.00058060, 7.27089940, 0.99710553, 0.99847230, 0.49304309,\
+-	-6.27184743, -0.00094681, 0.00058042, 7.27090061, 0.99710641, 0.99847276, 0.49304322,\
+-	-6.27184835, -0.00094652, 0.00058025, 7.27090182, 0.99710730, 0.99847323, 0.49304332,\
+-	-6.27184927, -0.00094623, 0.00058007, 7.27090304, 0.99710818, 0.99847370, 0.49304348,\
+-	-6.27185019, -0.00094595, 0.00057989, 7.27090424, 0.99710907, 0.99847416, 0.49304351,\
+-	-6.27185111, -0.00094566, 0.00057971, 7.27090545, 0.99710995, 0.99847463, 0.49304363,\
+-	-6.27185203, -0.00094537, 0.00057954, 7.27090666, 0.99711083, 0.99847510, 0.49304378,\
+-	-6.27185294, -0.00094508, 0.00057936, 7.27090786, 0.99711172, 0.99847556, 0.49304390,\
+-	-6.27185386, -0.00094479, 0.00057918, 7.27090907, 0.99711260, 0.99847603, 0.49304399,\
+-	-6.27185477, -0.00094450, 0.00057901, 7.27091027, 0.99711348, 0.99847649, 0.49304412,\
+-	-6.27185568, -0.00094421, 0.00057883, 7.27091147, 0.99711436, 0.99847696, 0.49304419,\
+-	-6.27185659, -0.00094393, 0.00057865, 7.27091267, 0.99711524, 0.99847742, 0.49304433,\
+-	-6.27185750, -0.00094364, 0.00057848, 7.27091386, 0.99711612, 0.99847789, 0.49304445,\
+-	-6.27185841, -0.00094335, 0.00057830, 7.27091506, 0.99711700, 0.99847835, 0.49304453,\
+-	-6.27185932, -0.00094306, 0.00057812, 7.27091625, 0.99711788, 0.99847881, 0.49304463,\
+-	-6.27186022, -0.00094278, 0.00057795, 7.27091745, 0.99711876, 0.99847928, 0.49304471,\
+-	-6.27186113, -0.00094249, 0.00057777, 7.27091864, 0.99711964, 0.99847974, 0.49304488,\
+-	-6.27186203, -0.00094220, 0.00057759, 7.27091983, 0.99712051, 0.99848020, 0.49304496,\
+-	-6.27186293, -0.00094192, 0.00057742, 7.27092101, 0.99712139, 0.99848067, 0.49304509,\
+-	-6.27186383, -0.00094163, 0.00057724, 7.27092220, 0.99712227, 0.99848113, 0.49304521,\
+-	-6.27186473, -0.00094134, 0.00057707, 7.27092339, 0.99712314, 0.99848159, 0.49304528,\
+-	-6.27186563, -0.00094106, 0.00057689, 7.27092457, 0.99712402, 0.99848205, 0.49304542,\
+-	-6.27186652, -0.00094077, 0.00057672, 7.27092575, 0.99712489, 0.99848251, 0.49304552,\
+-	-6.27186742, -0.00094049, 0.00057654, 7.27092693, 0.99712577, 0.99848297, 0.49304562,\
+-	-6.27186831, -0.00094020, 0.00057636, 7.27092811, 0.99712664, 0.99848344, 0.49304571,\
+-	-6.27186920, -0.00093991, 0.00057619, 7.27092929, 0.99712751, 0.99848390, 0.49304585,\
+-	-6.27187010, -0.00093963, 0.00057601, 7.27093047, 0.99712839, 0.99848436, 0.49304595,\
+-	-6.27187098, -0.00093934, 0.00057584, 7.27093164, 0.99712926, 0.99848482, 0.49304606,\
+-	-6.27187187, -0.00093906, 0.00057567, 7.27093281, 0.99713013, 0.99848528, 0.49304619,\
+-	-6.27187276, -0.00093877, 0.00057549, 7.27093399, 0.99713100, 0.99848574, 0.49304625,\
+-	-6.27187365, -0.00093849, 0.00057532, 7.27093516, 0.99713187, 0.99848619, 0.49304638,\
+-	-6.27187453, -0.00093821, 0.00057514, 7.27093633, 0.99713274, 0.99848665, 0.49304650,\
+-	-6.27187541, -0.00093792, 0.00057497, 7.27093749, 0.99713361, 0.99848711, 0.49304662,\
+-	-6.27187630, -0.00093764, 0.00057479, 7.27093866, 0.99713448, 0.99848757, 0.49304675,\
+-	-6.27187718, -0.00093735, 0.00057462, 7.27093983, 0.99713535, 0.99848803, 0.49304680,\
+-	-6.27187806, -0.00093707, 0.00057444, 7.27094099, 0.99713622, 0.99848849, 0.49304696,\
+-	-6.27187894, -0.00093679, 0.00057427, 7.27094215, 0.99713708, 0.99848894, 0.49304701,\
+-	-6.27187981, -0.00093650, 0.00057410, 7.27094331, 0.99713795, 0.99848940, 0.49304717,\
+-	-6.27188069, -0.00093622, 0.00057392, 7.27094447, 0.99713882, 0.99848986, 0.49304726,\
+-	-6.27188156, -0.00093594, 0.00057375, 7.27094563, 0.99713968, 0.99849031, 0.49304734,\
+-	-6.27188244, -0.00093565, 0.00057358, 7.27094678, 0.99714055, 0.99849077, 0.49304749,\
+-	-6.27188331, -0.00093537, 0.00057340, 7.27094794, 0.99714141, 0.99849123, 0.49304756,\
+-	-6.27188418, -0.00093509, 0.00057323, 7.27094909, 0.99714228, 0.99849168, 0.49304769,\
+-	-6.27188505, -0.00093481, 0.00057306, 7.27095025, 0.99714314, 0.99849214, 0.49304781,\
+-	-6.27188592, -0.00093452, 0.00057288, 7.27095140, 0.99714400, 0.99849259, 0.49304789,\
+-	-6.27188679, -0.00093424, 0.00057271, 7.27095255, 0.99714486, 0.99849305, 0.49304797,\
+-	-6.27188765, -0.00093396, 0.00057254, 7.27095369, 0.99714573, 0.99849350, 0.49304811,\
+-	-6.27188852, -0.00093368, 0.00057236, 7.27095484, 0.99714659, 0.99849396, 0.49304819,\
+-	-6.27188938, -0.00093340, 0.00057219, 7.27095599, 0.99714745, 0.99849441, 0.49304832,\
+-	-6.27189025, -0.00093312, 0.00057202, 7.27095713, 0.99714831, 0.99849487, 0.49304841,\
+-	-6.27189111, -0.00093283, 0.00057185, 7.27095827, 0.99714917, 0.99849532, 0.49304852,\
+-	-6.27189197, -0.00093255, 0.00057167, 7.27095942, 0.99715003, 0.99849577, 0.49304861,\
+-	-6.27189283, -0.00093227, 0.00057150, 7.27096056, 0.99715089, 0.99849623, 0.49304875,\
+-	-6.27189369, -0.00093199, 0.00057133, 7.27096169, 0.99715175, 0.99849668, 0.49304884,\
+-	-6.27189454, -0.00093171, 0.00057116, 7.27096283, 0.99715260, 0.99849713, 0.49304894,\
+-	-6.27189540, -0.00093143, 0.00057098, 7.27096397, 0.99715346, 0.99849758, 0.49304909,\
+-	-6.27189625, -0.00093115, 0.00057081, 7.27096510, 0.99715432, 0.99849804, 0.49304918,\
+-	-6.27189711, -0.00093087, 0.00057064, 7.27096624, 0.99715517, 0.99849849, 0.49304926,\
+-	-6.27189796, -0.00093059, 0.00057047, 7.27096737, 0.99715603, 0.99849894, 0.49304941,\
+-	-6.27189881, -0.00093031, 0.00057030, 7.27096850, 0.99715689, 0.99849939, 0.49304950,\
+-	-6.27189966, -0.00093003, 0.00057013, 7.27096963, 0.99715774, 0.99849984, 0.49304958,\
+-	-6.27190051, -0.00092975, 0.00056995, 7.27097076, 0.99715860, 0.99850029, 0.49304964,\
+-	-6.27190136, -0.00092947, 0.00056978, 7.27097188, 0.99715945, 0.99850074, 0.49304982,\
+-	-6.27190220, -0.00092919, 0.00056961, 7.27097301, 0.99716030, 0.99850119, 0.49304989,\
+-	-6.27190305, -0.00092892, 0.00056944, 7.27097413, 0.99716115, 0.99850164, 0.49305004,\
+-	-6.27190389, -0.00092864, 0.00056927, 7.27097525, 0.99716201, 0.99850209, 0.49305011,\
+-	-6.27190474, -0.00092836, 0.00056910, 7.27097638, 0.99716286, 0.99850254, 0.49305025,\
+-	-6.27190558, -0.00092808, 0.00056893, 7.27097750, 0.99716371, 0.99850299, 0.49305033,\
+-	-6.27190642, -0.00092780, 0.00056876, 7.27097862, 0.99716456, 0.99850344, 0.49305045,\
+-	-6.27190726, -0.00092752, 0.00056859, 7.27097973, 0.99716541, 0.99850389, 0.49305056,\
+-	-6.27190810, -0.00092725, 0.00056842, 7.27098085, 0.99716626, 0.99850434, 0.49305065,\
+-	-6.27190893, -0.00092697, 0.00056825, 7.27098197, 0.99716711, 0.99850478, 0.49305076,\
+-	-6.27190977, -0.00092669, 0.00056808, 7.27098308, 0.99716796, 0.99850523, 0.49305085,\
+-	-6.27191061, -0.00092641, 0.00056791, 7.27098419, 0.99716881, 0.99850568, 0.49305094,\
+-	-6.27191144, -0.00092614, 0.00056774, 7.27098530, 0.99716965, 0.99850613, 0.49305108,\
+-	-6.27191227, -0.00092586, 0.00056757, 7.27098641, 0.99717050, 0.99850657, 0.49305115,\
+-	-6.27191311, -0.00092558, 0.00056740, 7.27098752, 0.99717135, 0.99850702, 0.49305125,\
+-	-6.27191394, -0.00092531, 0.00056723, 7.27098863, 0.99717219, 0.99850747, 0.49305139,\
+-	-6.27191477, -0.00092503, 0.00056706, 7.27098974, 0.99717304, 0.99850791, 0.49305148,\
+-	-6.27191559, -0.00092475, 0.00056689, 7.27099084, 0.99717389, 0.99850836, 0.49305158,\
+-	-6.27191642, -0.00092448, 0.00056672, 7.27099194, 0.99717473, 0.99850880, 0.49305167,\
+-	-6.27191725, -0.00092420, 0.00056655, 7.27099305, 0.99717557, 0.99850925, 0.49305181,\
+-	-6.27191807, -0.00092393, 0.00056638, 7.27099415, 0.99717642, 0.99850969, 0.49305190,\
+-	-6.27191890, -0.00092365, 0.00056621, 7.27099525, 0.99717726, 0.99851014, 0.49305201,\
+-	-6.27191972, -0.00092338, 0.00056604, 7.27099635, 0.99717810, 0.99851058, 0.49305208,\
+-	-6.27192054, -0.00092310, 0.00056587, 7.27099744, 0.99717895, 0.99851103, 0.49305223,\
+-	-6.27192136, -0.00092282, 0.00056570, 7.27099854, 0.99717979, 0.99851147, 0.49305232,\
+-	-6.27192218, -0.00092255, 0.00056553, 7.27099964, 0.99718063, 0.99851192, 0.49305243,\
+-	-6.27192300, -0.00092227, 0.00056537, 7.27100073, 0.99718147, 0.99851236, 0.49305250,\
+-	-6.27192382, -0.00092200, 0.00056520, 7.27100182, 0.99718231, 0.99851280, 0.49305258,\
+-	-6.27192464, -0.00092173, 0.00056503, 7.27100291, 0.99718315, 0.99851325, 0.49305275,\
+-	-6.27192545, -0.00092145, 0.00056486, 7.27100400, 0.99718399, 0.99851369, 0.49305278,\
+-	-6.27192627, -0.00092118, 0.00056469, 7.27100509, 0.99718483, 0.99851413, 0.49305295,\
+-	-6.27192708, -0.00092090, 0.00056452, 7.27100618, 0.99718566, 0.99851457, 0.49305299,\
+-	-6.27192790, -0.00092063, 0.00056436, 7.27100727, 0.99718650, 0.99851502, 0.49305314,\
+-	-6.27192871, -0.00092036, 0.00056419, 7.27100835, 0.99718734, 0.99851546, 0.49305323,\
+-	-6.27192952, -0.00092008, 0.00056402, 7.27100944, 0.99718818, 0.99851590, 0.49305333,\
+-	-6.27193033, -0.00091981, 0.00056385, 7.27101052, 0.99718901, 0.99851634, 0.49305345,\
+-	-6.27193114, -0.00091954, 0.00056368, 7.27101160, 0.99718985, 0.99851678, 0.49305349,\
+-	-6.27193194, -0.00091926, 0.00056352, 7.27101268, 0.99719068, 0.99851722, 0.49305365,\
+-	-6.27193275, -0.00091899, 0.00056335, 7.27101376, 0.99719152, 0.99851766, 0.49305371,\
+-	-6.27193356, -0.00091872, 0.00056318, 7.27101484, 0.99719235, 0.99851810, 0.49305382,\
+-	-6.27193436, -0.00091844, 0.00056301, 7.27101592, 0.99719318, 0.99851854, 0.49305392,\
+-	-6.27193516, -0.00091817, 0.00056285, 7.27101699, 0.99719402, 0.99851898, 0.49305400,\
+-	-6.27193597, -0.00091790, 0.00056268, 7.27101807, 0.99719485, 0.99851942, 0.49305415,\
+-	-6.27193677, -0.00091763, 0.00056251, 7.27101914, 0.99719568, 0.99851986, 0.49305427,\
+-	-6.27193757, -0.00091736, 0.00056235, 7.27102021, 0.99719651, 0.99852030, 0.49305437,\
+-	-6.27193837, -0.00091708, 0.00056218, 7.27102128, 0.99719735, 0.99852074, 0.49305443,\
+-	-6.27193917, -0.00091681, 0.00056201, 7.27102235, 0.99719818, 0.99852117, 0.49305458,\
+-	-6.27193996, -0.00091654, 0.00056185, 7.27102342, 0.99719901, 0.99852161, 0.49305464,\
+-	-6.27194076, -0.00091627, 0.00056168, 7.27102449, 0.99719984, 0.99852205, 0.49305472,\
+-	-6.27194155, -0.00091600, 0.00056151, 7.27102556, 0.99720066, 0.99852249, 0.49305485,\
+-	-6.27194235, -0.00091573, 0.00056135, 7.27102662, 0.99720149, 0.99852292, 0.49305488,\
+-	-6.27194314, -0.00091546, 0.00056118, 7.27102769, 0.99720232, 0.99852336, 0.49305501,\
+-	-6.27194394, -0.00091519, 0.00056102, 7.27102875, 0.99720315, 0.99852380, 0.49305520,\
+-	-6.27194473, -0.00091492, 0.00056085, 7.27102981, 0.99720398, 0.99852423, 0.49305527,\
+-	-6.27194552, -0.00091465, 0.00056068, 7.27103087, 0.99720480, 0.99852467, 0.49305537,\
+-	-6.27194631, -0.00091438, 0.00056052, 7.27103193, 0.99720563, 0.99852511, 0.49305541,\
+-	-6.27194710, -0.00091411, 0.00056035, 7.27103299, 0.99720646, 0.99852554, 0.49305558,\
+-	-6.27194788, -0.00091384, 0.00056019, 7.27103405, 0.99720728, 0.99852598, 0.49305568,\
+-	-6.27194867, -0.00091357, 0.00056002, 7.27103510, 0.99720811, 0.99852641, 0.49305582,\
+-	-6.27194946, -0.00091330, 0.00055986, 7.27103616, 0.99720893, 0.99852685, 0.49305585,\
+-	-6.27195024, -0.00091303, 0.00055969, 7.27103721, 0.99720975, 0.99852728, 0.49305599,\
+-	-6.27195102, -0.00091276, 0.00055953, 7.27103827, 0.99721058, 0.99852772, 0.49305606,\
+-	-6.27195181, -0.00091249, 0.00055936, 7.27103932, 0.99721140, 0.99852815, 0.49305614,\
+-	-6.27195259, -0.00091222, 0.00055920, 7.27104037, 0.99721222, 0.99852858, 0.49305629,\
+-	-6.27195337, -0.00091195, 0.00055903, 7.27104142, 0.99721304, 0.99852902, 0.49305636,\
+-	-6.27195415, -0.00091168, 0.00055887, 7.27104247, 0.99721387, 0.99852945, 0.49305643,\
+-	-6.27195493, -0.00091141, 0.00055870, 7.27104351, 0.99721469, 0.99852988, 0.49305655,\
+-	-6.27195571, -0.00091115, 0.00055854, 7.27104456, 0.99721551, 0.99853032, 0.49305663,\
+-	-6.27195648, -0.00091088, 0.00055837, 7.27104561, 0.99721633, 0.99853075, 0.49305679,\
+-	-6.27195726, -0.00091061, 0.00055821, 7.27104665, 0.99721715, 0.99853118, 0.49305682,\
+-	-6.27195803, -0.00091034, 0.00055804, 7.27104769, 0.99721796, 0.99853161, 0.49305696,\
+-	-6.27195881, -0.00091007, 0.00055788, 7.27104873, 0.99721878, 0.99853205, 0.49305711,\
+-	-6.27195958, -0.00090981, 0.00055771, 7.27104978, 0.99721960, 0.99853248, 0.49305719,\
+-	-6.27196035, -0.00090954, 0.00055755, 7.27105081, 0.99722042, 0.99853291, 0.49305721,\
+-	-6.27196113, -0.00090927, 0.00055739, 7.27105185, 0.99722124, 0.99853334, 0.49305736,\
+-	-6.27196190, -0.00090901, 0.00055722, 7.27105289, 0.99722205, 0.99853377, 0.49305741,\
+-	-6.27196267, -0.00090874, 0.00055706, 7.27105393, 0.99722287, 0.99853420, 0.49305756,\
+-	-6.27196344, -0.00090847, 0.00055690, 7.27105496, 0.99722368, 0.99853463, 0.49305766,\
+-	-6.27196420, -0.00090821, 0.00055673, 7.27105600, 0.99722450, 0.99853506, 0.49305779,\
+-	-6.27196497, -0.00090794, 0.00055657, 7.27105703, 0.99722531, 0.99853549, 0.49305788,\
+-	-6.27196574, -0.00090767, 0.00055641, 7.27105806, 0.99722613, 0.99853592, 0.49305797,\
+-	-6.27196650, -0.00090741, 0.00055624, 7.27105909, 0.99722694, 0.99853635, 0.49305806,\
+-	-6.27196726, -0.00090714, 0.00055608, 7.27106012, 0.99722776, 0.99853678, 0.49305817,\
+-	-6.27196803, -0.00090688, 0.00055592, 7.27106115, 0.99722857, 0.99853721, 0.49305825,\
+-	-6.27196879, -0.00090661, 0.00055575, 7.27106218, 0.99722938, 0.99853764, 0.49305840,\
+-	-6.27196955, -0.00090634, 0.00055559, 7.27106321, 0.99723019, 0.99853807, 0.49305847,\
+-	-6.27197031, -0.00090608, 0.00055543, 7.27106423, 0.99723100, 0.99853849, 0.49305859,\
+-	-6.27197107, -0.00090581, 0.00055526, 7.27106526, 0.99723181, 0.99853892, 0.49305865,\
+-	-6.27197183, -0.00090555, 0.00055510, 7.27106628, 0.99723262, 0.99853935, 0.49305875,\
+-	-6.27197259, -0.00090528, 0.00055494, 7.27106730, 0.99723343, 0.99853978, 0.49305889,\
+-	-6.27197335, -0.00090502, 0.00055478, 7.27106833, 0.99723424, 0.99854020, 0.49305896,\
+-	-6.27197410, -0.00090476, 0.00055461, 7.27106935, 0.99723505, 0.99854063, 0.49305906,\
+-	-6.27197486, -0.00090449, 0.00055445, 7.27107037, 0.99723586, 0.99854106, 0.49305911,\
+-	-6.27197561, -0.00090423, 0.00055429, 7.27107138, 0.99723667, 0.99854148, 0.49305929,\
+-	-6.27197637, -0.00090396, 0.00055413, 7.27107240, 0.99723748, 0.99854191, 0.49305933,\
+-	-6.27197712, -0.00090370, 0.00055397, 7.27107342, 0.99723828, 0.99854233, 0.49305943,\
+-	-6.27197787, -0.00090344, 0.00055380, 7.27107443, 0.99723909, 0.99854276, 0.49305954,\
+-	-6.27197862, -0.00090317, 0.00055364, 7.27107545, 0.99723990, 0.99854319, 0.49305965,\
+-	-6.27197937, -0.00090291, 0.00055348, 7.27107646, 0.99724070, 0.99854361, 0.49305972,\
+-	-6.27198012, -0.00090264, 0.00055332, 7.27107748, 0.99724151, 0.99854404, 0.49305986,\
+-	-6.27198087, -0.00090238, 0.00055316, 7.27107849, 0.99724231, 0.99854446, 0.49305996,\
+-	-6.27198162, -0.00090212, 0.00055300, 7.27107950, 0.99724312, 0.99854488, 0.49306003,\
+-	-6.27198236, -0.00090186, 0.00055284, 7.27108051, 0.99724392, 0.99854531, 0.49306014,\
+-	-6.27198311, -0.00090159, 0.00055267, 7.27108151, 0.99724472, 0.99854573, 0.49306027,\
+-	-6.27198385, -0.00090133, 0.00055251, 7.27108252, 0.99724553, 0.99854616, 0.49306036,\
+-	-6.27198460, -0.00090107, 0.00055235, 7.27108353, 0.99724633, 0.99854658, 0.49306043,\
+-	-6.27198534, -0.00090081, 0.00055219, 7.27108453, 0.99724713, 0.99854700, 0.49306047,\
+-	-6.27198608, -0.00090054, 0.00055203, 7.27108554, 0.99724793, 0.99854742, 0.49306066,\
+-	-6.27198682, -0.00090028, 0.00055187, 7.27108654, 0.99724873, 0.99854785, 0.49306072,\
+-	-6.27198756, -0.00090002, 0.00055171, 7.27108754, 0.99724953, 0.99854827, 0.49306079,\
+-	-6.27198830, -0.00089976, 0.00055155, 7.27108855, 0.99725033, 0.99854869, 0.49306090,\
+-	-6.27198904, -0.00089950, 0.00055139, 7.27108955, 0.99725113, 0.99854911, 0.49306100,\
+-	-6.27198978, -0.00089924, 0.00055123, 7.27109054, 0.99725193, 0.99854954, 0.49306107,\
+-	-6.27199052, -0.00089898, 0.00055107, 7.27109154, 0.99725273, 0.99854996, 0.49306122,\
+-	-6.27199126, -0.00089871, 0.00055091, 7.27109254, 0.99725353, 0.99855038, 0.49306129,\
+-	-6.27199199, -0.00089845, 0.00055075, 7.27109354, 0.99725433, 0.99855080, 0.49306135,\
+-	-6.27199273, -0.00089819, 0.00055059, 7.27109453, 0.99725512, 0.99855122, 0.49306146,\
+-	-6.27199346, -0.00089793, 0.00055043, 7.27109553, 0.99725592, 0.99855164, 0.49306163,\
+-	-6.27199419, -0.00089767, 0.00055027, 7.27109652, 0.99725672, 0.99855206, 0.49306163,\
+-	-6.27199493, -0.00089741, 0.00055011, 7.27109751, 0.99725751, 0.99855248, 0.49306178,\
+-	-6.27199566, -0.00089715, 0.00054995, 7.27109851, 0.99725831, 0.99855290, 0.49306188,\
+-	-6.27199639, -0.00089689, 0.00054979, 7.27109950, 0.99725910, 0.99855332, 0.49306196,\
+-	-6.27199712, -0.00089663, 0.00054963, 7.27110049, 0.99725990, 0.99855374, 0.49306206,\
+-	-6.27199785, -0.00089637, 0.00054947, 7.27110147, 0.99726069, 0.99855416, 0.49306218,\
+-	-6.27199857, -0.00089611, 0.00054931, 7.27110246, 0.99726149, 0.99855458, 0.49306227,\
+-	-6.27199930, -0.00089585, 0.00054915, 7.27110345, 0.99726228, 0.99855499, 0.49306238,\
+-	-6.27200003, -0.00089559, 0.00054899, 7.27110443, 0.99726307, 0.99855541, 0.49306244,\
+-	-6.27200076, -0.00089534, 0.00054883, 7.27110542, 0.99726386, 0.99855583, 0.49306254,\
+-	-6.27200148, -0.00089508, 0.00054868, 7.27110640, 0.99726465, 0.99855625, 0.49306260,\
+-	-6.27200220, -0.00089482, 0.00054852, 7.27110739, 0.99726545, 0.99855667, 0.49306270,\
+-	-6.27200293, -0.00089456, 0.00054836, 7.27110837, 0.99726624, 0.99855708, 0.49306284,\
+-	-6.27200365, -0.00089430, 0.00054820, 7.27110935, 0.99726703, 0.99855750, 0.49306289,\
+-	-6.27200437, -0.00089404, 0.00054804, 7.27111033, 0.99726782, 0.99855792, 0.49306299,\
+-	-6.27200509, -0.00089378, 0.00054788, 7.27111131, 0.99726861, 0.99855833, 0.49306315,\
+-	-6.27200581, -0.00089353, 0.00054772, 7.27111229, 0.99726940, 0.99855875, 0.49306325,\
+-	-6.27200653, -0.00089327, 0.00054757, 7.27111326, 0.99727018, 0.99855916, 0.49306334,\
+-	-6.27200725, -0.00089301, 0.00054741, 7.27111424, 0.99727097, 0.99855958, 0.49306342,\
+-	-6.27200797, -0.00089275, 0.00054725, 7.27111522, 0.99727176, 0.99856000, 0.49306348,\
+-	-6.27200869, -0.00089250, 0.00054709, 7.27111619, 0.99727255, 0.99856041, 0.49306360,\
+-	-6.27200940, -0.00089224, 0.00054693, 7.27111717, 0.99727333, 0.99856083, 0.49306368,\
+-	-6.27201012, -0.00089198, 0.00054678, 7.27111814, 0.99727412, 0.99856124, 0.49306382,\
+-	-6.27201083, -0.00089172, 0.00054662, 7.27111911, 0.99727491, 0.99856166, 0.49306389,\
+-	-6.27201155, -0.00089147, 0.00054646, 7.27112008, 0.99727569, 0.99856207, 0.49306395,\
+-	-6.27201226, -0.00089121, 0.00054630, 7.27112105, 0.99727648, 0.99856248, 0.49306405,\
+-	-6.27201297, -0.00089095, 0.00054615, 7.27112202, 0.99727726, 0.99856290, 0.49306415,\
+-	-6.27201369, -0.00089070, 0.00054599, 7.27112299, 0.99727804, 0.99856331, 0.49306425,\
+-	-6.27201440, -0.00089044, 0.00054583, 7.27112395, 0.99727883, 0.99856373, 0.49306438,\
+-	-6.27201511, -0.00089019, 0.00054568, 7.27112492, 0.99727961, 0.99856414, 0.49306445,\
+-	-6.27201582, -0.00088993, 0.00054552, 7.27112589, 0.99728039, 0.99856455, 0.49306454,\
+-	-6.27201653, -0.00088967, 0.00054536, 7.27112685, 0.99728118, 0.99856496, 0.49306460,\
+-	-6.27201723, -0.00088942, 0.00054520, 7.27112782, 0.99728196, 0.99856538, 0.49306473,\
+-	-6.27201794, -0.00088916, 0.00054505, 7.27112878, 0.99728274, 0.99856579, 0.49306481,\
+-	-6.27201865, -0.00088891, 0.00054489, 7.27112974, 0.99728352, 0.99856620, 0.49306490,\
+-	-6.27201935, -0.00088865, 0.00054473, 7.27113070, 0.99728430, 0.99856661, 0.49306499,\
+-	-6.27202006, -0.00088840, 0.00054458, 7.27113166, 0.99728508, 0.99856702, 0.49306507,\
+-	-6.27202076, -0.00088814, 0.00054442, 7.27113262, 0.99728586, 0.99856744, 0.49306519,\
+-	-6.27202147, -0.00088789, 0.00054427, 7.27113358, 0.99728664, 0.99856785, 0.49306522,\
+-	-6.27202217, -0.00088763, 0.00054411, 7.27113454, 0.99728742, 0.99856826, 0.49306541,\
+-	-6.27202287, -0.00088738, 0.00054395, 7.27113549, 0.99728820, 0.99856867, 0.49306548,\
+-	-6.27202357, -0.00088713, 0.00054380, 7.27113645, 0.99728897, 0.99856908, 0.49306558,\
+-	-6.27202427, -0.00088687, 0.00054364, 7.27113740, 0.99728975, 0.99856949, 0.49306563,\
+-	-6.27202497, -0.00088662, 0.00054349, 7.27113836, 0.99729053, 0.99856990, 0.49306575,\
+-	-6.27202567, -0.00088636, 0.00054333, 7.27113931, 0.99729130, 0.99857031, 0.49306582,\
+-	-6.27202637, -0.00088611, 0.00054317, 7.27114026, 0.99729208, 0.99857072, 0.49306593,\
+-	-6.27202707, -0.00088586, 0.00054302, 7.27114121, 0.99729285, 0.99857113, 0.49306602,\
+-	-6.27202777, -0.00088560, 0.00054286, 7.27114216, 0.99729363, 0.99857153, 0.49306615,\
+-	-6.27202846, -0.00088535, 0.00054271, 7.27114311, 0.99729440, 0.99857194, 0.49306620,\
+-	-6.27202916, -0.00088510, 0.00054255, 7.27114406, 0.99729518, 0.99857235, 0.49306631,\
+-	-6.27202985, -0.00088484, 0.00054240, 7.27114501, 0.99729595, 0.99857276, 0.49306638,\
+-	-6.27203055, -0.00088459, 0.00054224, 7.27114596, 0.99729673, 0.99857317, 0.49306650,\
+-	-6.27203124, -0.00088434, 0.00054209, 7.27114690, 0.99729750, 0.99857358, 0.49306661,\
+-	-6.27203193, -0.00088409, 0.00054193, 7.27114785, 0.99729827, 0.99857398, 0.49306664,\
+-	-6.27203262, -0.00088383, 0.00054178, 7.27114879, 0.99729904, 0.99857439, 0.49306674,\
+-	-6.27203332, -0.00088358, 0.00054162, 7.27114973, 0.99729981, 0.99857480, 0.49306687,\
+-	-6.27203401, -0.00088333, 0.00054147, 7.27115068, 0.99730059, 0.99857520, 0.49306699,\
+-	-6.27203470, -0.00088308, 0.00054131, 7.27115162, 0.99730136, 0.99857561, 0.49306701,\
+-	-6.27203539, -0.00088282, 0.00054116, 7.27115256, 0.99730213, 0.99857602, 0.49306713,\
+-	-6.27203607, -0.00088257, 0.00054100, 7.27115350, 0.99730290, 0.99857642, 0.49306721,\
+-	-6.27203676, -0.00088232, 0.00054085, 7.27115444, 0.99730366, 0.99857683, 0.49306728,\
+-	-6.27203745, -0.00088207, 0.00054069, 7.27115538, 0.99730443, 0.99857724, 0.49306742,\
+-	-6.27203813, -0.00088182, 0.00054054, 7.27115632, 0.99730520, 0.99857764, 0.49306753,\
+-	-6.27203882, -0.00088157, 0.00054039, 7.27115725, 0.99730597, 0.99857805, 0.49306761,\
+-	-6.27203950, -0.00088132, 0.00054023, 7.27115819, 0.99730674, 0.99857845, 0.49306769,\
+-	-6.27204019, -0.00088107, 0.00054008, 7.27115912, 0.99730750, 0.99857886, 0.49306776,\
+-	-6.27204087, -0.00088082, 0.00053992, 7.27116006, 0.99730827, 0.99857926, 0.49306785,\
+-	-6.27204156, -0.00088056, 0.00053977, 7.27116099, 0.99730904, 0.99857966, 0.49306801,\
+-	-6.27204224, -0.00088031, 0.00053962, 7.27116192, 0.99730980, 0.99858007, 0.49306813,\
+-	-6.27204292, -0.00088006, 0.00053946, 7.27116286, 0.99731057, 0.99858047, 0.49306816,\
+-	-6.27204360, -0.00087981, 0.00053931, 7.27116379, 0.99731133, 0.99858088, 0.49306827,\
+-	-6.27204428, -0.00087956, 0.00053916, 7.27116472, 0.99731210, 0.99858128, 0.49306833,\
+-	-6.27204496, -0.00087931, 0.00053900, 7.27116565, 0.99731286, 0.99858168, 0.49306842,\
+-	-6.27204564, -0.00087906, 0.00053885, 7.27116657, 0.99731363, 0.99858209, 0.49306852,\
+-	-6.27204632, -0.00087881, 0.00053870, 7.27116750, 0.99731439, 0.99858249, 0.49306865,\
+-	-6.27204699, -0.00087857, 0.00053854, 7.27116843, 0.99731515, 0.99858289, 0.49306872,\
+-	-6.27204767, -0.00087832, 0.00053839, 7.27116935, 0.99731591, 0.99858329, 0.49306875,\
+-	-6.27204835, -0.00087807, 0.00053824, 7.27117028, 0.99731668, 0.99858369, 0.49306889,\
+-	-6.27204902, -0.00087782, 0.00053809, 7.27117120, 0.99731744, 0.99858410, 0.49306899,\
+-	-6.27204970, -0.00087757, 0.00053793, 7.27117213, 0.99731820, 0.99858450, 0.49306909,\
+-	-6.27205037, -0.00087732, 0.00053778, 7.27117305, 0.99731896, 0.99858490, 0.49306915,\
+-	-6.27205104, -0.00087707, 0.00053763, 7.27117397, 0.99731972, 0.99858530, 0.49306931,\
+-	-6.27205172, -0.00087682, 0.00053748, 7.27117489, 0.99732048, 0.99858570, 0.49306931,\
+-	-6.27205239, -0.00087658, 0.00053732, 7.27117581, 0.99732124, 0.99858610, 0.49306947,\
+-	-6.27205306, -0.00087633, 0.00053717, 7.27117673, 0.99732200, 0.99858650, 0.49306949,\
+-	-6.27205373, -0.00087608, 0.00053702, 7.27117765, 0.99732276, 0.99858690, 0.49306961,\
+-	-6.27205440, -0.00087583, 0.00053687, 7.27117857, 0.99732351, 0.99858730, 0.49306974,\
+-	-6.27205507, -0.00087558, 0.00053671, 7.27117949, 0.99732427, 0.99858770, 0.49306982,\
+-	-6.27205574, -0.00087534, 0.00053656, 7.27118040, 0.99732503, 0.99858810, 0.49306986,\
+-	-6.27205641, -0.00087509, 0.00053641, 7.27118132, 0.99732579, 0.99858850, 0.49306997,\
+-	-6.27205707, -0.00087484, 0.00053626, 7.27118223, 0.99732654, 0.99858890, 0.49307002,\
+-	-6.27205774, -0.00087459, 0.00053611, 7.27118315, 0.99732730, 0.99858930, 0.49307020,\
+-	-6.27205841, -0.00087435, 0.00053596, 7.27118406, 0.99732805, 0.99858970, 0.49307021,\
+-	-6.27205907, -0.00087410, 0.00053580, 7.27118497, 0.99732881, 0.99859010, 0.49307035,\
+-	-6.27205974, -0.00087385, 0.00053565, 7.27118588, 0.99732956, 0.99859049, 0.49307047,\
+-	-6.27206040, -0.00087361, 0.00053550, 7.27118679, 0.99733032, 0.99859089, 0.49307051,\
+-	-6.27206106, -0.00087336, 0.00053535, 7.27118770, 0.99733107, 0.99859129, 0.49307062,\
+-	-6.27206173, -0.00087311, 0.00053520, 7.27118861, 0.99733182, 0.99859169, 0.49307069,\
+-	-6.27206239, -0.00087287, 0.00053505, 7.27118952, 0.99733258, 0.99859208, 0.49307080,\
+-	-6.27206305, -0.00087262, 0.00053490, 7.27119043, 0.99733333, 0.99859248, 0.49307089,\
+-	-6.27206371, -0.00087238, 0.00053475, 7.27119134, 0.99733408, 0.99859288, 0.49307096,\
+-	-6.27206437, -0.00087213, 0.00053460, 7.27119224, 0.99733483, 0.99859327, 0.49307103,\
+-	-6.27206503, -0.00087188, 0.00053445, 7.27119315, 0.99733558, 0.99859367, 0.49307121,\
+-	-6.27206569, -0.00087164, 0.00053429, 7.27119405, 0.99733633, 0.99859407, 0.49307121,\
+-	-6.27206635, -0.00087139, 0.00053414, 7.27119496, 0.99733709, 0.99859446, 0.49307131,\
+-	-6.27206701, -0.00087115, 0.00053399, 7.27119586, 0.99733783, 0.99859486, 0.49307143,\
+-	-6.27206767, -0.00087090, 0.00053384, 7.27119676, 0.99733858, 0.99859525, 0.49307152,\
+-	-6.27206832, -0.00087066, 0.00053369, 7.27119766, 0.99733933, 0.99859565, 0.49307163,\
+-	-6.27206898, -0.00087041, 0.00053354, 7.27119856, 0.99734008, 0.99859604, 0.49307170,\
+-	-6.27206963, -0.00087017, 0.00053339, 7.27119946, 0.99734083, 0.99859644, 0.49307178,\
+-	-6.27207029, -0.00086992, 0.00053324, 7.27120036, 0.99734158, 0.99859683, 0.49307182,\
+-	-6.27207094, -0.00086968, 0.00053309, 7.27120126, 0.99734233, 0.99859723, 0.49307196,\
+-	-6.27207160, -0.00086944, 0.00053294, 7.27120216, 0.99734307, 0.99859762, 0.49307197,\
+-	-6.27207225, -0.00086919, 0.00053279, 7.27120306, 0.99734382, 0.99859802, 0.49307220,\
+-	-6.27207290, -0.00086895, 0.00053264, 7.27120395, 0.99734457, 0.99859841, 0.49307226,\
+-	-6.27207355, -0.00086870, 0.00053249, 7.27120485, 0.99734531, 0.99859880, 0.49307233,\
+-	-6.27207420, -0.00086846, 0.00053234, 7.27120574, 0.99734606, 0.99859920, 0.49307241,\
+-	-6.27207485, -0.00086822, 0.00053219, 7.27120664, 0.99734680, 0.99859959, 0.49307252,\
+-	-6.27207550, -0.00086797, 0.00053205, 7.27120753, 0.99734755, 0.99859998, 0.49307258,\
+-	-6.27207615, -0.00086773, 0.00053190, 7.27120842, 0.99734829, 0.99860037, 0.49307271,\
+-	-6.27207680, -0.00086749, 0.00053175, 7.27120931, 0.99734903, 0.99860077, 0.49307274,\
+-	-6.27207745, -0.00086724, 0.00053160, 7.27121021, 0.99734978, 0.99860116, 0.49307287,\
+-	-6.27207810, -0.00086700, 0.00053145, 7.27121110, 0.99735052, 0.99860155, 0.49307293,\
+-	-6.27207874, -0.00086676, 0.00053130, 7.27121199, 0.99735126, 0.99860194, 0.49307303,\
+-	-6.27207939, -0.00086652, 0.00053115, 7.27121287, 0.99735200, 0.99860233, 0.49307313,\
+-	-6.27208004, -0.00086627, 0.00053100, 7.27121376, 0.99735275, 0.99860273, 0.49307325,\
+-	-6.27208068, -0.00086603, 0.00053085, 7.27121465, 0.99735349, 0.99860312, 0.49307329,\
+-	-6.27208132, -0.00086579, 0.00053070, 7.27121554, 0.99735423, 0.99860351, 0.49307333,\
+-	-6.27208197, -0.00086555, 0.00053056, 7.27121642, 0.99735497, 0.99860390, 0.49307349,\
+-	-6.27208261, -0.00086530, 0.00053041, 7.27121731, 0.99735571, 0.99860429, 0.49307355,\
+-	-6.27208325, -0.00086506, 0.00053026, 7.27121819, 0.99735645, 0.99860468, 0.49307366,\
+-	-6.27208390, -0.00086482, 0.00053011, 7.27121907, 0.99735719, 0.99860507, 0.49307376,\
+-	-6.27208454, -0.00086458, 0.00052996, 7.27121996, 0.99735792, 0.99860546, 0.49307384,\
+-	-6.27208518, -0.00086434, 0.00052981, 7.27122084, 0.99735866, 0.99860585, 0.49307389,\
+-	-6.27208582, -0.00086410, 0.00052967, 7.27122172, 0.99735940, 0.99860624, 0.49307398,\
+-	-6.27208646, -0.00086386, 0.00052952, 7.27122260, 0.99736014, 0.99860663, 0.49307410,\
+-	-6.27208710, -0.00086361, 0.00052937, 7.27122348, 0.99736088, 0.99860701, 0.49307418,\
+-	-6.27208774, -0.00086337, 0.00052922, 7.27122436, 0.99736161, 0.99860740, 0.49307431,\
+-	-6.27208837, -0.00086313, 0.00052908, 7.27122524, 0.99736235, 0.99860779, 0.49307430,\
+-	-6.27208901, -0.00086289, 0.00052893, 7.27122612, 0.99736308, 0.99860818, 0.49307450,\
+-	-6.27208965, -0.00086265, 0.00052878, 7.27122700, 0.99736382, 0.99860857, 0.49307452,\
+-	-6.27209028, -0.00086241, 0.00052863, 7.27122787, 0.99736455, 0.99860896, 0.49307461,\
+-	-6.27209092, -0.00086217, 0.00052849, 7.27122875, 0.99736529, 0.99860934, 0.49307473,\
+-	-6.27209155, -0.00086193, 0.00052834, 7.27122962, 0.99736602, 0.99860973, 0.49307476,\
+-	-6.27209219, -0.00086169, 0.00052819, 7.27123050, 0.99736676, 0.99861012, 0.49307493,\
+-	-6.27209282, -0.00086145, 0.00052804, 7.27123137, 0.99736749, 0.99861050, 0.49307491,\
+-	-6.27209346, -0.00086121, 0.00052790, 7.27123224, 0.99736822, 0.99861089, 0.49307506,\
+-	-6.27209409, -0.00086097, 0.00052775, 7.27123312, 0.99736896, 0.99861128, 0.49307515,\
+-	-6.27209472, -0.00086073, 0.00052760, 7.27123399, 0.99736969, 0.99861166, 0.49307527,\
+-	-6.27209535, -0.00086049, 0.00052746, 7.27123486, 0.99737042, 0.99861205, 0.49307528,\
+-	-6.27209598, -0.00086025, 0.00052731, 7.27123573, 0.99737115, 0.99861244, 0.49307544,\
+-	-6.27209661, -0.00086002, 0.00052716, 7.27123660, 0.99737188, 0.99861282, 0.49307551,\
+-	-6.27209724, -0.00085978, 0.00052702, 7.27123747, 0.99737261, 0.99861321, 0.49307555,\
+-	-6.27209787, -0.00085954, 0.00052687, 7.27123833, 0.99737334, 0.99861359, 0.49307566,\
+-	-6.27209850, -0.00085930, 0.00052672, 7.27123920, 0.99737407, 0.99861398, 0.49307570,\
+-	-6.27209913, -0.00085906, 0.00052658, 7.27124007, 0.99737480, 0.99861436, 0.49307581,\
+-	-6.27209976, -0.00085882, 0.00052643, 7.27124094, 0.99737553, 0.99861475, 0.49307599,\
+-	-6.27210038, -0.00085858, 0.00052628, 7.27124180, 0.99737626, 0.99861513, 0.49307598,\
+-	-6.27210101, -0.00085835, 0.00052614, 7.27124266, 0.99737699, 0.99861551, 0.49307614,\
+-	-6.27210164, -0.00085811, 0.00052599, 7.27124353, 0.99737771, 0.99861590, 0.49307614,\
+-	-6.27210226, -0.00085787, 0.00052585, 7.27124439, 0.99737844, 0.99861628, 0.49307625,\
+-	-6.27210289, -0.00085763, 0.00052570, 7.27124525, 0.99737917, 0.99861667, 0.49307637,\
+-	-6.27210351, -0.00085740, 0.00052555, 7.27124612, 0.99737989, 0.99861705, 0.49307645,\
+-	-6.27210414, -0.00085716, 0.00052541, 7.27124698, 0.99738062, 0.99861743, 0.49307653,\
+-	-6.27210476, -0.00085692, 0.00052526, 7.27124784, 0.99738135, 0.99861782, 0.49307663,\
+-	-6.27210538, -0.00085668, 0.00052512, 7.27124870, 0.99738207, 0.99861820, 0.49307669,\
+-	-6.27210600, -0.00085645, 0.00052497, 7.27124956, 0.99738280, 0.99861858, 0.49307677,\
+-	-6.27210663, -0.00085621, 0.00052483, 7.27125042, 0.99738352, 0.99861896, 0.49307688,\
+-	-6.27210725, -0.00085597, 0.00052468, 7.27125127, 0.99738424, 0.99861934, 0.49307699,\
+-	-6.27210787, -0.00085574, 0.00052454, 7.27125213, 0.99738497, 0.99861973, 0.49307706,\
+-	-6.27210849, -0.00085550, 0.00052439, 7.27125299, 0.99738569, 0.99862011, 0.49307704,\
+-	-6.27210911, -0.00085526, 0.00052425, 7.27125384, 0.99738641, 0.99862049, 0.49307723,\
+-	-6.27210973, -0.00085503, 0.00052410, 7.27125470, 0.99738714, 0.99862087, 0.49307731,\
+-	-6.27211034, -0.00085479, 0.00052396, 7.27125555, 0.99738786, 0.99862125, 0.49307742,\
+-	-6.27211096, -0.00085456, 0.00052381, 7.27125641, 0.99738858, 0.99862163, 0.49307753,\
+-	-6.27211158, -0.00085432, 0.00052367, 7.27125726, 0.99738930, 0.99862201, 0.49307753,\
+-	-6.27211220, -0.00085408, 0.00052352, 7.27125811, 0.99739002, 0.99862239, 0.49307764,\
+-	-6.27211281, -0.00085385, 0.00052338, 7.27125896, 0.99739074, 0.99862277, 0.49307770,\
+-	-6.27211343, -0.00085361, 0.00052323, 7.27125981, 0.99739146, 0.99862315, 0.49307780,\
+-	-6.27211404, -0.00085338, 0.00052309, 7.27126067, 0.99739218, 0.99862353, 0.49307792,\
+-	-6.27211466, -0.00085314, 0.00052295, 7.27126152, 0.99739290, 0.99862391, 0.49307794,\
+-	-6.27211527, -0.00085291, 0.00052280, 7.27126236, 0.99739362, 0.99862429, 0.49307803,\
+-	-6.27211589, -0.00085267, 0.00052266, 7.27126321, 0.99739434, 0.99862467, 0.49307820,\
+-	-6.27211650, -0.00085244, 0.00052251, 7.27126406, 0.99739506, 0.99862505, 0.49307827,\
+-	-6.27211711, -0.00085220, 0.00052237, 7.27126491, 0.99739577, 0.99862543, 0.49307830,\
+-	-6.27211772, -0.00085197, 0.00052222, 7.27126575, 0.99739649, 0.99862581, 0.49307839,\
+-	-6.27211833, -0.00085173, 0.00052208, 7.27126660, 0.99739721, 0.99862618, 0.49307851,\
+-	-6.27211895, -0.00085150, 0.00052194, 7.27126745, 0.99739792, 0.99862656, 0.49307861,\
+-	-6.27211956, -0.00085127, 0.00052179, 7.27126829, 0.99739864, 0.99862694, 0.49307868,\
+-	-6.27212017, -0.00085103, 0.00052165, 7.27126913, 0.99739936, 0.99862732, 0.49307878,\
+-	-6.27212078, -0.00085080, 0.00052151, 7.27126998, 0.99740007, 0.99862770, 0.49307884,\
+-	-6.27212138, -0.00085056, 0.00052136, 7.27127082, 0.99740079, 0.99862807, 0.49307888,\
+-	-6.27212199, -0.00085033, 0.00052122, 7.27127166, 0.99740150, 0.99862845, 0.49307902,\
+-	-6.27212260, -0.00085010, 0.00052108, 7.27127250, 0.99740221, 0.99862883, 0.49307911,\
+-	-6.27212321, -0.00084986, 0.00052093, 7.27127334, 0.99740293, 0.99862920, 0.49307920,\
+-	-6.27212381, -0.00084963, 0.00052079, 7.27127418, 0.99740364, 0.99862958, 0.49307926,\
+-	-6.27212442, -0.00084940, 0.00052065, 7.27127502, 0.99740435, 0.99862996, 0.49307935,\
+-	-6.27212503, -0.00084916, 0.00052050, 7.27127586, 0.99740507, 0.99863033, 0.49307944,\
+-	-6.27212563, -0.00084893, 0.00052036, 7.27127670, 0.99740578, 0.99863071, 0.49307944,\
+-	-6.27212624, -0.00084870, 0.00052022, 7.27127754, 0.99740649, 0.99863108, 0.49307954,\
+-	-6.27212684, -0.00084847, 0.00052008, 7.27127837, 0.99740720, 0.99863146, 0.49307961,\
+-	-6.27212744, -0.00084823, 0.00051993, 7.27127921, 0.99740791, 0.99863183, 0.49307978,\
+-	-6.27212805, -0.00084800, 0.00051979, 7.27128005, 0.99740862, 0.99863221, 0.49307983,\
+-	-6.27212865, -0.00084777, 0.00051965, 7.27128088, 0.99740933, 0.99863258, 0.49307996,\
+-	-6.27212925, -0.00084754, 0.00051951, 7.27128172, 0.99741004, 0.99863296, 0.49308005,\
+-	-6.27212986, -0.00084730, 0.00051936, 7.27128255, 0.99741075, 0.99863333, 0.49308014,\
+-	-6.27213046, -0.00084707, 0.00051922, 7.27128338, 0.99741146, 0.99863371, 0.49308018,\
+-	-6.27213106, -0.00084684, 0.00051908, 7.27128422, 0.99741217, 0.99863408, 0.49308030,\
+-	-6.27213166, -0.00084661, 0.00051894, 7.27128505, 0.99741288, 0.99863445, 0.49308040,\
+-	-6.27213226, -0.00084638, 0.00051879, 7.27128588, 0.99741359, 0.99863483, 0.49308040,\
+-	-6.27213286, -0.00084615, 0.00051865, 7.27128671, 0.99741429, 0.99863520, 0.49308050,\
+-	-6.27213345, -0.00084592, 0.00051851, 7.27128754, 0.99741500, 0.99863557, 0.49308061,\
+-	-6.27213405, -0.00084568, 0.00051837, 7.27128837, 0.99741571, 0.99863595, 0.49308064,\
+-	-6.27213465, -0.00084545, 0.00051823, 7.27128920, 0.99741641, 0.99863632, 0.49308083,\
+-	-6.27213525, -0.00084522, 0.00051809, 7.27129003, 0.99741712, 0.99863669, 0.49308089,\
+-	-6.27213585, -0.00084499, 0.00051794, 7.27129085, 0.99741783, 0.99863706, 0.49308103,\
+-	-6.27213644, -0.00084476, 0.00051780, 7.27129168, 0.99741853, 0.99863744, 0.49308104,\
+-	-6.27213704, -0.00084453, 0.00051766, 7.27129251, 0.99741924, 0.99863781, 0.49308114,\
+-	-6.27213763, -0.00084430, 0.00051752, 7.27129333, 0.99741994, 0.99863818, 0.49308122,\
+-	-6.27213823, -0.00084407, 0.00051738, 7.27129416, 0.99742064, 0.99863855, 0.49308125,\
+-	-6.27213882, -0.00084384, 0.00051724, 7.27129498, 0.99742135, 0.99863892, 0.49308128,\
+-	-6.27213942, -0.00084361, 0.00051710, 7.27129581, 0.99742205, 0.99863929, 0.49308149,\
+-	-6.27214001, -0.00084338, 0.00051696, 7.27129663, 0.99742275, 0.99863966, 0.49308153,\
+-	-6.27214060, -0.00084315, 0.00051681, 7.27129745, 0.99742346, 0.99864003, 0.49308160,\
+-	-6.27214120, -0.00084292, 0.00051667, 7.27129827, 0.99742416, 0.99864041, 0.49308174,\
+-	-6.27214179, -0.00084269, 0.00051653, 7.27129910, 0.99742486, 0.99864078, 0.49308171,\
+-	-6.27214238, -0.00084246, 0.00051639, 7.27129992, 0.99742556, 0.99864115, 0.49308189,\
+-	-6.27214297, -0.00084223, 0.00051625, 7.27130074, 0.99742626, 0.99864152, 0.49308189,\
+-	-6.27214356, -0.00084200, 0.00051611, 7.27130156, 0.99742696, 0.99864188, 0.49308208,\
+-	-6.27214415, -0.00084178, 0.00051597, 7.27130237, 0.99742766, 0.99864225, 0.49308218,\
+-	-6.27214474, -0.00084155, 0.00051583, 7.27130319, 0.99742836, 0.99864262, 0.49308217,\
+-	-6.27214533, -0.00084132, 0.00051569, 7.27130401, 0.99742906, 0.99864299, 0.49308225,\
+-	-6.27214592, -0.00084109, 0.00051555, 7.27130483, 0.99742976, 0.99864336, 0.49308239,\
+-	-6.27214651, -0.00084086, 0.00051541, 7.27130564, 0.99743046, 0.99864373, 0.49308247,\
+-	-6.27214709, -0.00084063, 0.00051527, 7.27130646, 0.99743116, 0.99864410, 0.49308255,\
+-	-6.27214768, -0.00084040, 0.00051513, 7.27130728, 0.99743186, 0.99864447, 0.49308258,\
+-	-6.27214827, -0.00084018, 0.00051499, 7.27130809, 0.99743255, 0.99864483, 0.49308266,\
+-	-6.27214885, -0.00083995, 0.00051485, 7.27130891, 0.99743325, 0.99864520, 0.49308274,\
+-	-6.27214944, -0.00083972, 0.00051471, 7.27130972, 0.99743395, 0.99864557, 0.49308290,\
+-	-6.27215002, -0.00083949, 0.00051457, 7.27131053, 0.99743464, 0.99864594, 0.49308290,\
+-	-6.27215061, -0.00083926, 0.00051443, 7.27131134, 0.99743534, 0.99864631, 0.49308300,\
+-	-6.27215119, -0.00083904, 0.00051429, 7.27131216, 0.99743604, 0.99864667, 0.49308315,\
+-	-6.27215178, -0.00083881, 0.00051415, 7.27131297, 0.99743673, 0.99864704, 0.49308314,\
+-	-6.27215236, -0.00083858, 0.00051401, 7.27131378, 0.99743743, 0.99864741, 0.49308324,\
+-	-6.27215294, -0.00083836, 0.00051387, 7.27131459, 0.99743812, 0.99864777, 0.49308338,\
+-	-6.27215353, -0.00083813, 0.00051373, 7.27131540, 0.99743881, 0.99864814, 0.49308338,\
+-	-6.27215411, -0.00083790, 0.00051359, 7.27131621, 0.99743951, 0.99864850, 0.49308350,\
+-	-6.27215469, -0.00083768, 0.00051345, 7.27131702, 0.99744020, 0.99864887, 0.49308357,\
+-	-6.27215527, -0.00083745, 0.00051332, 7.27131782, 0.99744089, 0.99864924, 0.49308374,\
+-	-6.27215585, -0.00083722, 0.00051318, 7.27131863, 0.99744159, 0.99864960, 0.49308379,\
+-	-6.27215643, -0.00083700, 0.00051304, 7.27131944, 0.99744228, 0.99864997, 0.49308384,\
+-	-6.27215701, -0.00083677, 0.00051290, 7.27132024, 0.99744297, 0.99865033, 0.49308393,\
+-	-6.27215759, -0.00083654, 0.00051276, 7.27132105, 0.99744366, 0.99865070, 0.49308399,\
+-	-6.27215817, -0.00083632, 0.00051262, 7.27132185, 0.99744435, 0.99865106, 0.49308412,\
+-	-6.27215875, -0.00083609, 0.00051248, 7.27132266, 0.99744504, 0.99865143, 0.49308421,\
+-	-6.27215933, -0.00083587, 0.00051234, 7.27132346, 0.99744574, 0.99865179, 0.49308425,\
+-	-6.27215990, -0.00083564, 0.00051221, 7.27132426, 0.99744643, 0.99865215, 0.49308434,\
+-	-6.27216048, -0.00083541, 0.00051207, 7.27132507, 0.99744711, 0.99865252, 0.49308442,\
+-	-6.27216106, -0.00083519, 0.00051193, 7.27132587, 0.99744780, 0.99865288, 0.49308450,\
+-	-6.27216164, -0.00083496, 0.00051179, 7.27132667, 0.99744849, 0.99865324, 0.49308461,\
+-	-6.27216221, -0.00083474, 0.00051165, 7.27132747, 0.99744918, 0.99865361, 0.49308467,\
+-	-6.27216279, -0.00083451, 0.00051151, 7.27132827, 0.99744987, 0.99865397, 0.49308473,\
+-	-6.27216336, -0.00083429, 0.00051138, 7.27132907, 0.99745056, 0.99865433, 0.49308483,\
+-	-6.27216394, -0.00083406, 0.00051124, 7.27132987, 0.99745124, 0.99865470, 0.49308489,\
+-	-6.27216451, -0.00083384, 0.00051110, 7.27133067, 0.99745193, 0.99865506, 0.49308501,\
+-	-6.27216508, -0.00083361, 0.00051096, 7.27133147, 0.99745262, 0.99865542, 0.49308509,\
+-	-6.27216566, -0.00083339, 0.00051083, 7.27133227, 0.99745330, 0.99865578, 0.49308519,\
+-	-6.27216623, -0.00083317, 0.00051069, 7.27133306, 0.99745399, 0.99865615, 0.49308520,\
+-	-6.27216680, -0.00083294, 0.00051055, 7.27133386, 0.99745468, 0.99865651, 0.49308532,\
+-	-6.27216737, -0.00083272, 0.00051041, 7.27133465, 0.99745536, 0.99865687, 0.49308537,\
+-	-6.27216794, -0.00083249, 0.00051028, 7.27133545, 0.99745605, 0.99865723, 0.49308548,\
+-	-6.27216851, -0.00083227, 0.00051014, 7.27133624, 0.99745673, 0.99865759, 0.49308555,\
+-	-6.27216909, -0.00083205, 0.00051000, 7.27133704, 0.99745741, 0.99865795, 0.49308568,\
+-	-6.27216966, -0.00083182, 0.00050986, 7.27133783, 0.99745810, 0.99865831, 0.49308575,\
+-	-6.27217022, -0.00083160, 0.00050973, 7.27133863, 0.99745878, 0.99865867, 0.49308580,\
+-	-6.27217079, -0.00083138, 0.00050959, 7.27133942, 0.99745946, 0.99865903, 0.49308589,\
+-	-6.27217136, -0.00083115, 0.00050945, 7.27134021, 0.99746015, 0.99865939, 0.49308593,\
+-	-6.27217193, -0.00083093, 0.00050932, 7.27134100, 0.99746083, 0.99865975, 0.49308603,\
+-	-6.27217250, -0.00083071, 0.00050918, 7.27134179, 0.99746151, 0.99866011, 0.49308603,\
+-	-6.27217307, -0.00083048, 0.00050904, 7.27134258, 0.99746219, 0.99866047, 0.49308626,\
+-	-6.27217363, -0.00083026, 0.00050891, 7.27134337, 0.99746287, 0.99866083, 0.49308628,\
+-	-6.27217420, -0.00083004, 0.00050877, 7.27134416, 0.99746355, 0.99866119, 0.49308633,\
+-	-6.27217477, -0.00082982, 0.00050863, 7.27134495, 0.99746424, 0.99866155, 0.49308648,\
+-	-6.27217533, -0.00082959, 0.00050850, 7.27134574, 0.99746492, 0.99866191, 0.49308650,\
+-	-6.27217590, -0.00082937, 0.00050836, 7.27134653, 0.99746559, 0.99866227, 0.49308659,\
+-	-6.27217646, -0.00082915, 0.00050822, 7.27134731, 0.99746627, 0.99866263, 0.49308664,\
+-	-6.27217703, -0.00082893, 0.00050809, 7.27134810, 0.99746695, 0.99866299, 0.49308674,\
+-	-6.27217759, -0.00082871, 0.00050795, 7.27134888, 0.99746763, 0.99866334, 0.49308688,\
+-	-6.27217815, -0.00082848, 0.00050782, 7.27134967, 0.99746831, 0.99866370, 0.49308691,\
+-	-6.27217872, -0.00082826, 0.00050768, 7.27135045, 0.99746899, 0.99866406, 0.49308700,\
+-	-6.27217928, -0.00082804, 0.00050754, 7.27135124, 0.99746967, 0.99866442, 0.49308706,\
+-	-6.27217984, -0.00082782, 0.00050741, 7.27135202, 0.99747034, 0.99866477, 0.49308711,\
+-	-6.27218040, -0.00082760, 0.00050727, 7.27135281, 0.99747102, 0.99866513, 0.49308731,\
+-	-6.27218097, -0.00082738, 0.00050714, 7.27135359, 0.99747170, 0.99866549, 0.49308733,\
+-	-6.27218153, -0.00082716, 0.00050700, 7.27135437, 0.99747237, 0.99866584, 0.49308746,\
+-	-6.27218209, -0.00082693, 0.00050686, 7.27135515, 0.99747305, 0.99866620, 0.49308753,\
+-	-6.27218265, -0.00082671, 0.00050673, 7.27135593, 0.99747372, 0.99866656, 0.49308759,\
+-	-6.27218321, -0.00082649, 0.00050659, 7.27135671, 0.99747440, 0.99866691, 0.49308757,\
+-	-6.27218377, -0.00082627, 0.00050646, 7.27135749, 0.99747507, 0.99866727, 0.49308770,\
+-	-6.27218433, -0.00082605, 0.00050632, 7.27135827, 0.99747575, 0.99866763, 0.49308772,\
+-	-6.27218488, -0.00082583, 0.00050619, 7.27135905, 0.99747642, 0.99866798, 0.49308784,\
+-	-6.27218544, -0.00082561, 0.00050605, 7.27135983, 0.99747709, 0.99866834, 0.49308794,\
+-	-6.27218600, -0.00082539, 0.00050592, 7.27136061, 0.99747777, 0.99866869, 0.49308810,\
+-	-6.27218656, -0.00082517, 0.00050578, 7.27136139, 0.99747844, 0.99866905, 0.49308812,\
+-	-6.27218711, -0.00082495, 0.00050565, 7.27136216, 0.99747911, 0.99866940, 0.49308821,\
+-	-6.27218767, -0.00082473, 0.00050551, 7.27136294, 0.99747978, 0.99866976, 0.49308825,\
+-	-6.27218823, -0.00082451, 0.00050538, 7.27136371, 0.99748046, 0.99867011, 0.49308833,\
+-	-6.27218878, -0.00082429, 0.00050524, 7.27136449, 0.99748113, 0.99867046, 0.49308847,\
+-	-6.27218934, -0.00082407, 0.00050511, 7.27136526, 0.99748180, 0.99867082, 0.49308860,\
+-	-6.27218989, -0.00082385, 0.00050497, 7.27136604, 0.99748247, 0.99867117, 0.49308859,\
+-	-6.27219045, -0.00082363, 0.00050484, 7.27136681, 0.99748314, 0.99867153, 0.49308869,\
+-	-6.27219100, -0.00082341, 0.00050471, 7.27136759, 0.99748381, 0.99867188, 0.49308873,\
+-	-6.27219155, -0.00082320, 0.00050457, 7.27136836, 0.99748448, 0.99867223, 0.49308878,\
+-	-6.27219211, -0.00082298, 0.00050444, 7.27136913, 0.99748515, 0.99867259, 0.49308888,\
+-	-6.27219266, -0.00082276, 0.00050430, 7.27136990, 0.99748582, 0.99867294, 0.49308897,\
+-	-6.27219321, -0.00082254, 0.00050417, 7.27137067, 0.99748649, 0.99867329, 0.49308901,\
+-	-6.27219376, -0.00082232, 0.00050403, 7.27137144, 0.99748715, 0.99867364, 0.49308913,\
+-	-6.27219432, -0.00082210, 0.00050390, 7.27137221, 0.99748782, 0.99867400, 0.49308916,\
+-	-6.27219487, -0.00082188, 0.00050377, 7.27137298, 0.99748849, 0.99867435, 0.49308935,\
+-	-6.27219542, -0.00082167, 0.00050363, 7.27137375, 0.99748916, 0.99867470, 0.49308938,\
+-	-6.27219597, -0.00082145, 0.00050350, 7.27137452, 0.99748982, 0.99867505, 0.49308944,\
+-	-6.27219652, -0.00082123, 0.00050337, 7.27137529, 0.99749049, 0.99867540, 0.49308959,\
+-	-6.27219707, -0.00082101, 0.00050323, 7.27137606, 0.99749116, 0.99867576, 0.49308961,\
+-	-6.27219762, -0.00082080, 0.00050310, 7.27137682, 0.99749182, 0.99867611, 0.49308966,\
+-	-6.27219817, -0.00082058, 0.00050296, 7.27137759, 0.99749249, 0.99867646, 0.49308979,\
+-	-6.27219872, -0.00082036, 0.00050283, 7.27137836, 0.99749315, 0.99867681, 0.49308985,\
+-	-6.27219926, -0.00082014, 0.00050270, 7.27137912, 0.99749382, 0.99867716, 0.49308989,\
+-	-6.27219981, -0.00081993, 0.00050256, 7.27137989, 0.99749448, 0.99867751, 0.49309002,\
+-	-6.27220036, -0.00081971, 0.00050243, 7.27138065, 0.99749514, 0.99867786, 0.49309006,\
+-	-6.27220091, -0.00081949, 0.00050230, 7.27138141, 0.99749581, 0.99867821, 0.49309016,\
+-	-6.27220145, -0.00081927, 0.00050216, 7.27138218, 0.99749647, 0.99867856, 0.49309022,\
+-	-6.27220200, -0.00081906, 0.00050203, 7.27138294, 0.99749713, 0.99867891, 0.49309028,\
+-	-6.27220254, -0.00081884, 0.00050190, 7.27138370, 0.99749780, 0.99867926, 0.49309037,\
+-	-6.27220309, -0.00081862, 0.00050177, 7.27138446, 0.99749846, 0.99867961, 0.49309053,\
+-	-6.27220363, -0.00081841, 0.00050163, 7.27138523, 0.99749912, 0.99867996, 0.49309055,\
+-	-6.27220418, -0.00081819, 0.00050150, 7.27138599, 0.99749978, 0.99868031, 0.49309069,\
+-	-6.27220472, -0.00081798, 0.00050137, 7.27138675, 0.99750044, 0.99868066, 0.49309070,\
+-	-6.27220527, -0.00081776, 0.00050124, 7.27138751, 0.99750110, 0.99868100, 0.49309083,\
+-	-6.27220581, -0.00081754, 0.00050110, 7.27138827, 0.99750176, 0.99868135, 0.49309090,\
+-	-6.27220635, -0.00081733, 0.00050097, 7.27138902, 0.99750242, 0.99868170, 0.49309098,\
+-	-6.27220690, -0.00081711, 0.00050084, 7.27138978, 0.99750308, 0.99868205, 0.49309101,\
+-	-6.27220744, -0.00081690, 0.00050071, 7.27139054, 0.99750374, 0.99868240, 0.49309113,\
+-	-6.27220798, -0.00081668, 0.00050057, 7.27139130, 0.99750440, 0.99868275, 0.49309116,\
+-	-6.27220852, -0.00081647, 0.00050044, 7.27139205, 0.99750506, 0.99868309, 0.49309123,\
+-	-6.27220906, -0.00081625, 0.00050031, 7.27139281, 0.99750572, 0.99868344, 0.49309142,\
+-	-6.27220960, -0.00081604, 0.00050018, 7.27139357, 0.99750638, 0.99868379, 0.49309142,\
+-	-6.27221014, -0.00081582, 0.00050005, 7.27139432, 0.99750703, 0.99868413, 0.49309146,\
+-	-6.27221068, -0.00081561, 0.00049991, 7.27139508, 0.99750769, 0.99868448, 0.49309158,\
+-	-6.27221122, -0.00081539, 0.00049978, 7.27139583, 0.99750835, 0.99868483, 0.49309166,\
+-	-6.27221176, -0.00081518, 0.00049965, 7.27139659, 0.99750901, 0.99868517, 0.49309171,\
+-	-6.27221230, -0.00081496, 0.00049952, 7.27139734, 0.99750966, 0.99868552, 0.49309183,\
+-	-6.27221284, -0.00081475, 0.00049939, 7.27139809, 0.99751032, 0.99868587, 0.49309186,\
+-	-6.27221338, -0.00081453, 0.00049926, 7.27139884, 0.99751097, 0.99868621, 0.49309196,\
+-	-6.27221391, -0.00081432, 0.00049912, 7.27139960, 0.99751163, 0.99868656, 0.49309197,\
+-	-6.27221445, -0.00081410, 0.00049899, 7.27140035, 0.99751228, 0.99868690, 0.49309212,\
+-	-6.27221499, -0.00081389, 0.00049886, 7.27140110, 0.99751294, 0.99868725, 0.49309226,\
+-	-6.27221552, -0.00081368, 0.00049873, 7.27140185, 0.99751359, 0.99868759, 0.49309233,\
+-	-6.27221606, -0.00081346, 0.00049860, 7.27140260, 0.99751425, 0.99868794, 0.49309240,\
+-	-6.27221660, -0.00081325, 0.00049847, 7.27140335, 0.99751490, 0.99868828, 0.49309241,\
+-	-6.27221713, -0.00081303, 0.00049834, 7.27140410, 0.99751555, 0.99868863, 0.49309250,\
+-	-6.27221767, -0.00081282, 0.00049821, 7.27140485, 0.99751621, 0.99868897, 0.49309252,\
+-	-6.27221820, -0.00081261, 0.00049807, 7.27140559, 0.99751686, 0.99868932, 0.49309262,\
+-	-6.27221874, -0.00081239, 0.00049794, 7.27140634, 0.99751751, 0.99868966, 0.49309274,\
+-	-6.27221927, -0.00081218, 0.00049781, 7.27140709, 0.99751816, 0.99869001, 0.49309277,\
+-	-6.27221980, -0.00081197, 0.00049768, 7.27140784, 0.99751881, 0.99869035, 0.49309287,\
+-	-6.27222034, -0.00081176, 0.00049755, 7.27140858, 0.99751946, 0.99869069, 0.49309295,\
+-	-6.27222087, -0.00081154, 0.00049742, 7.27140933, 0.99752012, 0.99869104, 0.49309305,\
+-	-6.27222140, -0.00081133, 0.00049729, 7.27141007, 0.99752077, 0.99869138, 0.49309311,\
+-	-6.27222193, -0.00081112, 0.00049716, 7.27141082, 0.99752142, 0.99869172, 0.49309317,\
+-	-6.27222247, -0.00081090, 0.00049703, 7.27141156, 0.99752207, 0.99869207, 0.49309328,\
+-	-6.27222300, -0.00081069, 0.00049690, 7.27141230, 0.99752271, 0.99869241, 0.49309332,\
+-	-6.27222353, -0.00081048, 0.00049677, 7.27141305, 0.99752336, 0.99869275, 0.49309344,\
+-	-6.27222406, -0.00081027, 0.00049664, 7.27141379, 0.99752401, 0.99869309, 0.49309341,\
+-	-6.27222459, -0.00081006, 0.00049651, 7.27141453, 0.99752466, 0.99869344, 0.49309354,\
+-	-6.27222512, -0.00080984, 0.00049638, 7.27141527, 0.99752531, 0.99869378, 0.49309361,\
+-	-6.27222565, -0.00080963, 0.00049625, 7.27141602, 0.99752596, 0.99869412, 0.49309375,\
+-	-6.27222618, -0.00080942, 0.00049612, 7.27141676, 0.99752660, 0.99869446, 0.49309380,\
+-	-6.27222671, -0.00080921, 0.00049599, 7.27141750, 0.99752725, 0.99869480, 0.49309382,\
+-	-6.27222723, -0.00080900, 0.00049586, 7.27141824, 0.99752790, 0.99869514, 0.49309395,\
+-	-6.27222776, -0.00080879, 0.00049573, 7.27141898, 0.99752854, 0.99869548, 0.49309403,\
+-	-6.27222829, -0.00080857, 0.00049560, 7.27141972, 0.99752919, 0.99869582, 0.49309409,\
+-	-6.27222882, -0.00080836, 0.00049547, 7.27142045, 0.99752984, 0.99869617, 0.49309410,\
+-	-6.27222934, -0.00080815, 0.00049534, 7.27142119, 0.99753048, 0.99869651, 0.49309425,\
+-	-6.27222987, -0.00080794, 0.00049521, 7.27142193, 0.99753113, 0.99869685, 0.49309434,\
+-	-6.27223040, -0.00080773, 0.00049508, 7.27142267, 0.99753177, 0.99869719, 0.49309443,\
+-	-6.27223092, -0.00080752, 0.00049495, 7.27142340, 0.99753241, 0.99869753, 0.49309447,\
+-	-6.27223145, -0.00080731, 0.00049482, 7.27142414, 0.99753306, 0.99869787, 0.49309457,\
+-	-6.27223197, -0.00080710, 0.00049469, 7.27142488, 0.99753370, 0.99869821, 0.49309459,\
+-	-6.27223250, -0.00080689, 0.00049457, 7.27142561, 0.99753435, 0.99869855, 0.49309463,\
+-	-6.27223302, -0.00080668, 0.00049444, 7.27142635, 0.99753499, 0.99869888, 0.49309473,\
+-	-6.27223355, -0.00080647, 0.00049431, 7.27142708, 0.99753563, 0.99869922, 0.49309486,\
+-	-6.27223407, -0.00080626, 0.00049418, 7.27142781, 0.99753627, 0.99869956, 0.49309496,\
+-	-6.27223460, -0.00080605, 0.00049405, 7.27142855, 0.99753692, 0.99869990, 0.49309501,\
+-	-6.27223512, -0.00080584, 0.00049392, 7.27142928, 0.99753756, 0.99870024, 0.49309506,\
+-	-6.27223564, -0.00080563, 0.00049379, 7.27143001, 0.99753820, 0.99870058, 0.49309510,\
+-	-6.27223616, -0.00080542, 0.00049366, 7.27143074, 0.99753884, 0.99870092, 0.49309524,\
+-	-6.27223669, -0.00080521, 0.00049354, 7.27143148, 0.99753948, 0.99870125, 0.49309538,\
+-	-6.27223721, -0.00080500, 0.00049341, 7.27143221, 0.99754012, 0.99870159, 0.49309541,\
+-	-6.27223773, -0.00080479, 0.00049328, 7.27143294, 0.99754076, 0.99870193, 0.49309547,\
+-	-6.27223825, -0.00080458, 0.00049315, 7.27143367, 0.99754140, 0.99870227, 0.49309552,\
+-	-6.27223877, -0.00080437, 0.00049302, 7.27143440, 0.99754204, 0.99870260, 0.49309562,\
+-	-6.27223929, -0.00080416, 0.00049289, 7.27143513, 0.99754268, 0.99870294, 0.49309564,\
+-	-6.27223981, -0.00080395, 0.00049277, 7.27143586, 0.99754332, 0.99870328, 0.49309575,\
+-	-6.27224033, -0.00080375, 0.00049264, 7.27143658, 0.99754395, 0.99870362, 0.49309585,\
+-	-6.27224085, -0.00080354, 0.00049251, 7.27143731, 0.99754459, 0.99870395, 0.49309591,\
+-	-6.27224137, -0.00080333, 0.00049238, 7.27143804, 0.99754523, 0.99870429, 0.49309595,\
+-	-6.27224189, -0.00080312, 0.00049225, 7.27143877, 0.99754587, 0.99870463, 0.49309610,\
+-	-6.27224241, -0.00080291, 0.00049213, 7.27143949, 0.99754650, 0.99870496, 0.49309609,\
+-	-6.27224292, -0.00080270, 0.00049200, 7.27144022, 0.99754714, 0.99870530, 0.49309625,\
+-	-6.27224344, -0.00080250, 0.00049187, 7.27144094, 0.99754778, 0.99870563, 0.49309625,\
+-	-6.27224396, -0.00080229, 0.00049174, 7.27144167, 0.99754841, 0.99870597, 0.49309632,\
+-	-6.27224447, -0.00080208, 0.00049162, 7.27144239, 0.99754905, 0.99870630, 0.49309639,\
+-	-6.27224499, -0.00080187, 0.00049149, 7.27144312, 0.99754968, 0.99870664, 0.49309648,\
+-	-6.27224551, -0.00080166, 0.00049136, 7.27144384, 0.99755032, 0.99870697, 0.49309655,\
+-	-6.27224602, -0.00080146, 0.00049123, 7.27144457, 0.99755095, 0.99870731, 0.49309667,\
+-	-6.27224654, -0.00080125, 0.00049111, 7.27144529, 0.99755159, 0.99870764, 0.49309666,\
+-	-6.27224705, -0.00080104, 0.00049098, 7.27144601, 0.99755222, 0.99870798, 0.49309679,\
+-	-6.27224757, -0.00080084, 0.00049085, 7.27144673, 0.99755286, 0.99870831, 0.49309687,\
+-	-6.27224808, -0.00080063, 0.00049072, 7.27144746, 0.99755349, 0.99870865, 0.49309695,\
+-	-6.27224860, -0.00080042, 0.00049060, 7.27144818, 0.99755412, 0.99870898, 0.49309704,\
+-	-6.27224911, -0.00080021, 0.00049047, 7.27144890, 0.99755476, 0.99870932, 0.49309706,\
+-	-6.27224962, -0.00080001, 0.00049034, 7.27144962, 0.99755539, 0.99870965, 0.49309713,\
+-	-6.27225014, -0.00079980, 0.00049022, 7.27145034, 0.99755602, 0.99870998, 0.49309722,\
+-	-6.27225065, -0.00079959, 0.00049009, 7.27145106, 0.99755665, 0.99871032, 0.49309728,\
+-	-6.27225116, -0.00079939, 0.00048996, 7.27145178, 0.99755728, 0.99871065, 0.49309738,\
+-	-6.27225168, -0.00079918, 0.00048984, 7.27145249, 0.99755791, 0.99871098, 0.49309747,\
+-	-6.27225219, -0.00079897, 0.00048971, 7.27145321, 0.99755854, 0.99871131, 0.49309753,\
+-	-6.27225270, -0.00079877, 0.00048958, 7.27145393, 0.99755918, 0.99871165, 0.49309771,\
+-	-6.27225321, -0.00079856, 0.00048946, 7.27145465, 0.99755981, 0.99871198, 0.49309765,\
+-	-6.27225372, -0.00079836, 0.00048933, 7.27145536, 0.99756044, 0.99871231, 0.49309782,\
+-	-6.27225423, -0.00079815, 0.00048921, 7.27145608, 0.99756106, 0.99871264, 0.49309784,\
+-	-6.27225474, -0.00079795, 0.00048908, 7.27145680, 0.99756169, 0.99871298, 0.49309793,\
+-	-6.27225525, -0.00079774, 0.00048895, 7.27145751, 0.99756232, 0.99871331, 0.49309799,\
+-	-6.27225576, -0.00079753, 0.00048883, 7.27145823, 0.99756295, 0.99871364, 0.49309812,\
+-	-6.27225627, -0.00079733, 0.00048870, 7.27145894, 0.99756358, 0.99871397, 0.49309805,\
+-	-6.27225678, -0.00079712, 0.00048857, 7.27145966, 0.99756421, 0.99871430, 0.49309821,\
+-	-6.27225729, -0.00079692, 0.00048845, 7.27146037, 0.99756483, 0.99871463, 0.49309831,\
+-	-6.27225780, -0.00079671, 0.00048832, 7.27146108, 0.99756546, 0.99871496, 0.49309836,\
+-	-6.27225830, -0.00079651, 0.00048820, 7.27146180, 0.99756609, 0.99871529, 0.49309842,\
+-	-6.27225881, -0.00079630, 0.00048807, 7.27146251, 0.99756671, 0.99871563, 0.49309856,\
+-	-6.27225932, -0.00079610, 0.00048795, 7.27146322, 0.99756734, 0.99871596, 0.49309861,\
+-	-6.27225983, -0.00079589, 0.00048782, 7.27146393, 0.99756797, 0.99871629, 0.49309861,\
+-	-6.27226033, -0.00079569, 0.00048769, 7.27146464, 0.99756859, 0.99871662, 0.49309873,\
+-	-6.27226084, -0.00079548, 0.00048757, 7.27146535, 0.99756922, 0.99871695, 0.49309877,\
+-	-6.27226134, -0.00079528, 0.00048744, 7.27146606, 0.99756984, 0.99871728, 0.49309886,\
+-	-6.27226185, -0.00079508, 0.00048732, 7.27146677, 0.99757047, 0.99871761, 0.49309893,\
+-	-6.27226235, -0.00079487, 0.00048719, 7.27146748, 0.99757109, 0.99871793, 0.49309902,\
+-	-6.27226286, -0.00079467, 0.00048707, 7.27146819, 0.99757172, 0.99871826, 0.49309912,\
+-	-6.27226336, -0.00079446, 0.00048694, 7.27146890, 0.99757234, 0.99871859, 0.49309921,\
+-	-6.27226387, -0.00079426, 0.00048682, 7.27146961, 0.99757296, 0.99871892, 0.49309921,\
+-	-6.27226437, -0.00079406, 0.00048669, 7.27147032, 0.99757359, 0.99871925, 0.49309928,\
+-	-6.27226488, -0.00079385, 0.00048657, 7.27147102, 0.99757421, 0.99871958, 0.49309939,\
+-	-6.27226538, -0.00079365, 0.00048644, 7.27147173, 0.99757483, 0.99871991, 0.49309945,\
+-	-6.27226588, -0.00079345, 0.00048632, 7.27147244, 0.99757545, 0.99872024, 0.49309958,\
+-	-6.27226639, -0.00079324, 0.00048619, 7.27147314, 0.99757607, 0.99872056, 0.49309958,\
+-	-6.27226689, -0.00079304, 0.00048607, 7.27147385, 0.99757670, 0.99872089, 0.49309961,\
+-	-6.27226739, -0.00079284, 0.00048594, 7.27147455, 0.99757732, 0.99872122, 0.49309967,\
+-	-6.27226789, -0.00079263, 0.00048582, 7.27147526, 0.99757794, 0.99872155, 0.49309986,\
+-	-6.27226839, -0.00079243, 0.00048570, 7.27147596, 0.99757856, 0.99872187, 0.49309996,\
+-	-6.27226889, -0.00079223, 0.00048557, 7.27147667, 0.99757918, 0.99872220, 0.49309999,\
+-	-6.27226939, -0.00079202, 0.00048545, 7.27147737, 0.99757980, 0.99872253, 0.49310010,\
+-	-6.27226990, -0.00079182, 0.00048532, 7.27147807, 0.99758042, 0.99872286, 0.49310015,\
+-	-6.27227040, -0.00079162, 0.00048520, 7.27147878, 0.99758104, 0.99872318, 0.49310022,\
+-	-6.27227090, -0.00079142, 0.00048507, 7.27147948, 0.99758166, 0.99872351, 0.49310023,\
+-	-6.27227139, -0.00079121, 0.00048495, 7.27148018, 0.99758227, 0.99872384, 0.49310029,\
+-	-6.27227189, -0.00079101, 0.00048483, 7.27148088, 0.99758289, 0.99872416, 0.49310038,\
+-	-6.27227239, -0.00079081, 0.00048470, 7.27148158, 0.99758351, 0.99872449, 0.49310046,\
+-	-6.27227289, -0.00079061, 0.00048458, 7.27148228, 0.99758413, 0.99872481, 0.49310052,\
+-	-6.27227339, -0.00079041, 0.00048445, 7.27148298, 0.99758474, 0.99872514, 0.49310058,\
+-	-6.27227389, -0.00079020, 0.00048433, 7.27148368, 0.99758536, 0.99872546, 0.49310064,\
+-	-6.27227439, -0.00079000, 0.00048421, 7.27148438, 0.99758598, 0.99872579, 0.49310077,\
+-	-6.27227488, -0.00078980, 0.00048408, 7.27148508, 0.99758659, 0.99872612, 0.49310085,\
+-	-6.27227538, -0.00078960, 0.00048396, 7.27148578, 0.99758721, 0.99872644, 0.49310092,\
+-	-6.27227588, -0.00078940, 0.00048384, 7.27148648, 0.99758783, 0.99872677, 0.49310100,\
+-	-6.27227637, -0.00078920, 0.00048371, 7.27148717, 0.99758844, 0.99872709, 0.49310112,\
+-	-6.27227687, -0.00078900, 0.00048359, 7.27148787, 0.99758906, 0.99872741, 0.49310113,\
+-	-6.27227736, -0.00078880, 0.00048347, 7.27148857, 0.99758967, 0.99872774, 0.49310122,\
+-	-6.27227786, -0.00078859, 0.00048334, 7.27148927, 0.99759029, 0.99872806, 0.49310127,\
+-	-6.27227836, -0.00078839, 0.00048322, 7.27148996, 0.99759090, 0.99872839, 0.49310130,\
+-	-6.27227885, -0.00078819, 0.00048310, 7.27149066, 0.99759151, 0.99872871, 0.49310141,\
+-	-6.27227934, -0.00078799, 0.00048297, 7.27149135, 0.99759213, 0.99872903, 0.49310152,\
+-	-6.27227984, -0.00078779, 0.00048285, 7.27149205, 0.99759274, 0.99872936, 0.49310152,\
+-	-6.27228033, -0.00078759, 0.00048273, 7.27149274, 0.99759335, 0.99872968, 0.49310163,\
+-	-6.27228083, -0.00078739, 0.00048260, 7.27149344, 0.99759397, 0.99873001, 0.49310168,\
+-	-6.27228132, -0.00078719, 0.00048248, 7.27149413, 0.99759458, 0.99873033, 0.49310178,\
+-	-6.27228181, -0.00078699, 0.00048236, 7.27149482, 0.99759519, 0.99873065, 0.49310189,\
+-	-6.27228231, -0.00078679, 0.00048224, 7.27149552, 0.99759580, 0.99873097, 0.49310191,\
+-	-6.27228280, -0.00078659, 0.00048211, 7.27149621, 0.99759641, 0.99873130, 0.49310203,\
+-	-6.27228329, -0.00078639, 0.00048199, 7.27149690, 0.99759702, 0.99873162, 0.49310202,\
+-	-6.27228378, -0.00078619, 0.00048187, 7.27149759, 0.99759763, 0.99873194, 0.49310216,\
+-	-6.27228427, -0.00078599, 0.00048175, 7.27149828, 0.99759825, 0.99873226, 0.49310220,\
+-	-6.27228476, -0.00078579, 0.00048162, 7.27149897, 0.99759886, 0.99873259, 0.49310228,\
+-	-6.27228526, -0.00078559, 0.00048150, 7.27149966, 0.99759946, 0.99873291, 0.49310231,\
+-	-6.27228575, -0.00078539, 0.00048138, 7.27150035, 0.99760007, 0.99873323, 0.49310245,\
+-	-6.27228624, -0.00078519, 0.00048126, 7.27150104, 0.99760068, 0.99873355, 0.49310250,\
+-	-6.27228673, -0.00078500, 0.00048113, 7.27150173, 0.99760129, 0.99873387, 0.49310256,\
+-	-6.27228722, -0.00078480, 0.00048101, 7.27150242, 0.99760190, 0.99873419, 0.49310269,\
+-	-6.27228771, -0.00078460, 0.00048089, 7.27150311, 0.99760251, 0.99873451, 0.49310278,\
+-	-6.27228819, -0.00078440, 0.00048077, 7.27150380, 0.99760312, 0.99873483, 0.49310277,\
+-	-6.27228868, -0.00078420, 0.00048065, 7.27150448, 0.99760372, 0.99873515, 0.49310291,\
+-	-6.27228917, -0.00078400, 0.00048052, 7.27150517, 0.99760433, 0.99873548, 0.49310291,\
+-	-6.27228966, -0.00078380, 0.00048040, 7.27150586, 0.99760494, 0.99873580, 0.49310301,\
+-	-6.27229015, -0.00078360, 0.00048028, 7.27150654, 0.99760555, 0.99873612, 0.49310307,\
+-	-6.27229064, -0.00078341, 0.00048016, 7.27150723, 0.99760615, 0.99873644, 0.49310321,\
+-	-6.27229112, -0.00078321, 0.00048004, 7.27150792, 0.99760676, 0.99873676, 0.49310322,\
+-	-6.27229161, -0.00078301, 0.00047992, 7.27150860, 0.99760736, 0.99873707, 0.49310330,\
+-	-6.27229210, -0.00078281, 0.00047979, 7.27150929, 0.99760797, 0.99873739, 0.49310330,\
+-	-6.27229258, -0.00078261, 0.00047967, 7.27150997, 0.99760857, 0.99873771, 0.49310340,\
+-	-6.27229307, -0.00078242, 0.00047955, 7.27151065, 0.99760918, 0.99873803, 0.49310344,\
+-	-6.27229356, -0.00078222, 0.00047943, 7.27151134, 0.99760978, 0.99873835, 0.49310362,\
+-	-6.27229404, -0.00078202, 0.00047931, 7.27151202, 0.99761039, 0.99873867, 0.49310362,\
+-	-6.27229453, -0.00078182, 0.00047919, 7.27151270, 0.99761099, 0.99873899, 0.49310369,\
+-	-6.27229501, -0.00078163, 0.00047907, 7.27151339, 0.99761160, 0.99873931, 0.49310382,\
+-	-6.27229550, -0.00078143, 0.00047895, 7.27151407, 0.99761220, 0.99873963, 0.49310378,\
+-	-6.27229598, -0.00078123, 0.00047882, 7.27151475, 0.99761280, 0.99873994, 0.49310395,\
+-	-6.27229646, -0.00078103, 0.00047870, 7.27151543, 0.99761340, 0.99874026, 0.49310398,\
+-	-6.27229695, -0.00078084, 0.00047858, 7.27151611, 0.99761401, 0.99874058, 0.49310409,\
+-	-6.27229743, -0.00078064, 0.00047846, 7.27151679, 0.99761461, 0.99874090, 0.49310410,\
+-	-6.27229791, -0.00078044, 0.00047834, 7.27151747, 0.99761521, 0.99874122, 0.49310419,\
+-	-6.27229840, -0.00078025, 0.00047822, 7.27151815, 0.99761581, 0.99874153, 0.49310426,\
+-	-6.27229888, -0.00078005, 0.00047810, 7.27151883, 0.99761641, 0.99874185, 0.49310431,\
+-	-6.27229936, -0.00077985, 0.00047798, 7.27151951, 0.99761701, 0.99874217, 0.49310439,\
+-	-6.27229984, -0.00077966, 0.00047786, 7.27152019, 0.99761762, 0.99874248, 0.49310456,\
+-	-6.27230033, -0.00077946, 0.00047774, 7.27152087, 0.99761822, 0.99874280, 0.49310453,\
+-	-6.27230081, -0.00077926, 0.00047762, 7.27152154, 0.99761882, 0.99874312, 0.49310456,\
+-	-6.27230129, -0.00077907, 0.00047750, 7.27152222, 0.99761942, 0.99874343, 0.49310472,\
+-	-6.27230177, -0.00077887, 0.00047738, 7.27152290, 0.99762001, 0.99874375, 0.49310478,\
+-	-6.27230225, -0.00077868, 0.00047726, 7.27152357, 0.99762061, 0.99874407, 0.49310482,\
+-	-6.27230273, -0.00077848, 0.00047714, 7.27152425, 0.99762121, 0.99874438, 0.49310485,\
+-	-6.27230321, -0.00077828, 0.00047702, 7.27152493, 0.99762181, 0.99874470, 0.49310496,\
+-	-6.27230369, -0.00077809, 0.00047690, 7.27152560, 0.99762241, 0.99874501, 0.49310508,\
+-	-6.27230417, -0.00077789, 0.00047678, 7.27152628, 0.99762301, 0.99874533, 0.49310514,\
+-	-6.27230465, -0.00077770, 0.00047666, 7.27152695, 0.99762360, 0.99874564, 0.49310512,\
+-	-6.27230513, -0.00077750, 0.00047654, 7.27152763, 0.99762420, 0.99874596, 0.49310522,\
+-	-6.27230561, -0.00077731, 0.00047642, 7.27152830, 0.99762480, 0.99874627, 0.49310530,\
+-	-6.27230609, -0.00077711, 0.00047630, 7.27152897, 0.99762540, 0.99874659, 0.49310543,\
+-	-6.27230656, -0.00077692, 0.00047618, 7.27152965, 0.99762599, 0.99874690, 0.49310543,\
+-	-6.27230704, -0.00077672, 0.00047606, 7.27153032, 0.99762659, 0.99874722, 0.49310556,\
+-	-6.27230752, -0.00077653, 0.00047594, 7.27153099, 0.99762718, 0.99874753, 0.49310555,\
+-	-6.27230800, -0.00077633, 0.00047582, 7.27153166, 0.99762778, 0.99874785, 0.49310570,\
+-	-6.27230847, -0.00077614, 0.00047570, 7.27153233, 0.99762837, 0.99874816, 0.49310570,\
+-	-6.27230895, -0.00077594, 0.00047558, 7.27153301, 0.99762897, 0.99874848, 0.49310582,\
+-	-6.27230943, -0.00077575, 0.00047546, 7.27153368, 0.99762956, 0.99874879, 0.49310585,\
+-	-6.27230990, -0.00077556, 0.00047534, 7.27153435, 0.99763016, 0.99874910, 0.49310599,\
+-	-6.27231038, -0.00077536, 0.00047522, 7.27153502, 0.99763075, 0.99874942, 0.49310605,\
+-	-6.27231085, -0.00077517, 0.00047510, 7.27153569, 0.99763135, 0.99874973, 0.49310608,\
+-	-6.27231133, -0.00077497, 0.00047498, 7.27153636, 0.99763194, 0.99875004, 0.49310612,\
+-	-6.27231180, -0.00077478, 0.00047487, 7.27153702, 0.99763253, 0.99875036, 0.49310624,\
+-	-6.27231228, -0.00077458, 0.00047475, 7.27153769, 0.99763312, 0.99875067, 0.49310622,\
+-	-6.27231275, -0.00077439, 0.00047463, 7.27153836, 0.99763372, 0.99875098, 0.49310639,\
+-	-6.27231323, -0.00077420, 0.00047451, 7.27153903, 0.99763431, 0.99875129, 0.49310643,\
+-	-6.27231370, -0.00077400, 0.00047439, 7.27153970, 0.99763490, 0.99875161, 0.49310644,\
+-	-6.27231417, -0.00077381, 0.00047427, 7.27154036, 0.99763549, 0.99875192, 0.49310654,\
+-	-6.27231465, -0.00077362, 0.00047415, 7.27154103, 0.99763608, 0.99875223, 0.49310665,\
+-	-6.27231512, -0.00077342, 0.00047403, 7.27154170, 0.99763668, 0.99875254, 0.49310674,\
+-	-6.27231559, -0.00077323, 0.00047392, 7.27154236, 0.99763727, 0.99875285, 0.49310670,\
+-	-6.27231607, -0.00077304, 0.00047380, 7.27154303, 0.99763786, 0.99875317, 0.49310684,\
+-	-6.27231654, -0.00077284, 0.00047368, 7.27154369, 0.99763845, 0.99875348, 0.49310692,\
+-	-6.27231701, -0.00077265, 0.00047356, 7.27154436, 0.99763904, 0.99875379, 0.49310699,\
+-	-6.27231748, -0.00077246, 0.00047344, 7.27154502, 0.99763963, 0.99875410, 0.49310700,\
+-	-6.27231795, -0.00077227, 0.00047332, 7.27154569, 0.99764021, 0.99875441, 0.49310703,\
+-	-6.27231842, -0.00077207, 0.00047321, 7.27154635, 0.99764080, 0.99875472, 0.49310722,\
+-	-6.27231889, -0.00077188, 0.00047309, 7.27154701, 0.99764139, 0.99875503, 0.49310725,\
+-	-6.27231936, -0.00077169, 0.00047297, 7.27154768, 0.99764198, 0.99875534, 0.49310729,\
+-	-6.27231984, -0.00077150, 0.00047285, 7.27154834, 0.99764257, 0.99875565, 0.49310745,\
+-	-6.27232031, -0.00077130, 0.00047273, 7.27154900, 0.99764316, 0.99875596, 0.49310751,\
+-	-6.27232077, -0.00077111, 0.00047262, 7.27154966, 0.99764374, 0.99875627, 0.49310749,\
+-	-6.27232124, -0.00077092, 0.00047250, 7.27155032, 0.99764433, 0.99875658, 0.49310765,\
+-	-6.27232171, -0.00077073, 0.00047238, 7.27155099, 0.99764492, 0.99875689, 0.49310767,\
+-	-6.27232218, -0.00077054, 0.00047226, 7.27155165, 0.99764550, 0.99875720, 0.49310775,\
+-	-6.27232265, -0.00077034, 0.00047215, 7.27155231, 0.99764609, 0.99875751, 0.49310781,\
+-	-6.27232312, -0.00077015, 0.00047203, 7.27155297, 0.99764668, 0.99875782, 0.49310787,\
+-	-6.27232359, -0.00076996, 0.00047191, 7.27155363, 0.99764726, 0.99875813, 0.49310796,\
+-	-6.27232406, -0.00076977, 0.00047179, 7.27155429, 0.99764785, 0.99875844, 0.49310787,\
+-	-6.27232452, -0.00076958, 0.00047168, 7.27155494, 0.99764843, 0.99875875, 0.49310807,\
+-	-6.27232499, -0.00076939, 0.00047156, 7.27155560, 0.99764902, 0.99875906, 0.49310819,\
+-	-6.27232546, -0.00076920, 0.00047144, 7.27155626, 0.99764960, 0.99875936, 0.49310824,\
+-	-6.27232592, -0.00076900, 0.00047132, 7.27155692, 0.99765019, 0.99875967, 0.49310831,\
+-	-6.27232639, -0.00076881, 0.00047121, 7.27155758, 0.99765077, 0.99875998, 0.49310826,\
+-	-6.27232686, -0.00076862, 0.00047109, 7.27155823, 0.99765135, 0.99876029, 0.49310841,\
+-	-6.27232732, -0.00076843, 0.00047097, 7.27155889, 0.99765194, 0.99876060, 0.49310851,\
+-	-6.27232779, -0.00076824, 0.00047086, 7.27155955, 0.99765252, 0.99876090, 0.49310855,\
+-	-6.27232825, -0.00076805, 0.00047074, 7.27156020, 0.99765310, 0.99876121, 0.49310862,\
+-	-6.27232872, -0.00076786, 0.00047062, 7.27156086, 0.99765369, 0.99876152, 0.49310868,\
+-	-6.27232918, -0.00076767, 0.00047050, 7.27156151, 0.99765427, 0.99876183, 0.49310870,\
+-	-6.27232965, -0.00076748, 0.00047039, 7.27156217, 0.99765485, 0.99876213, 0.49310885,\
+-	-6.27233011, -0.00076729, 0.00047027, 7.27156282, 0.99765543, 0.99876244, 0.49310881,\
+-	-6.27233058, -0.00076710, 0.00047015, 7.27156348, 0.99765601, 0.99876275, 0.49310901,\
+-	-6.27233104, -0.00076691, 0.00047004, 7.27156413, 0.99765660, 0.99876305, 0.49310905,\
+-	-6.27233150, -0.00076672, 0.00046992, 7.27156478, 0.99765718, 0.99876336, 0.49310906,\
+-	-6.27233197, -0.00076653, 0.00046981, 7.27156544, 0.99765776, 0.99876367, 0.49310915,\
+-	-6.27233243, -0.00076634, 0.00046969, 7.27156609, 0.99765834, 0.99876397, 0.49310926,\
+-	-6.27233289, -0.00076615, 0.00046957, 7.27156674, 0.99765892, 0.99876428, 0.49310922,\
+-	-6.27233336, -0.00076596, 0.00046946, 7.27156740, 0.99765950, 0.99876458, 0.49310945,\
+-	-6.27233382, -0.00076577, 0.00046934, 7.27156805, 0.99766008, 0.99876489, 0.49310949,\
+-	-6.27233428, -0.00076558, 0.00046922, 7.27156870, 0.99766065, 0.99876520, 0.49310955,\
+-	-6.27233474, -0.00076539, 0.00046911, 7.27156935, 0.99766123, 0.99876550, 0.49310960,\
+-	-6.27233520, -0.00076520, 0.00046899, 7.27157000, 0.99766181, 0.99876581, 0.49310966,\
+-	-6.27233566, -0.00076501, 0.00046888, 7.27157065, 0.99766239, 0.99876611, 0.49310976,\
+-	-6.27233612, -0.00076482, 0.00046876, 7.27157130, 0.99766297, 0.99876642, 0.49310982,\
+-	-6.27233658, -0.00076464, 0.00046864, 7.27157195, 0.99766355, 0.99876672, 0.49310988,\
+-	-6.27233705, -0.00076445, 0.00046853, 7.27157260, 0.99766412, 0.99876703, 0.49310995,\
+-	-6.27233751, -0.00076426, 0.00046841, 7.27157325, 0.99766470, 0.99876733, 0.49310998,\
+-	-6.27233797, -0.00076407, 0.00046830, 7.27157390, 0.99766528, 0.99876763, 0.49311004,\
+-	-6.27233843, -0.00076388, 0.00046818, 7.27157454, 0.99766585, 0.99876794, 0.49311017,\
+-	-6.27233888, -0.00076369, 0.00046806, 7.27157519, 0.99766643, 0.99876824, 0.49311019,\
+-	-6.27233934, -0.00076350, 0.00046795, 7.27157584, 0.99766701, 0.99876855, 0.49311023,\
+-	-6.27233980, -0.00076332, 0.00046783, 7.27157649, 0.99766758, 0.99876885, 0.49311028,\
+-	-6.27234026, -0.00076313, 0.00046772, 7.27157713, 0.99766816, 0.99876915, 0.49311042,\
+-	-6.27234072, -0.00076294, 0.00046760, 7.27157778, 0.99766873, 0.99876946, 0.49311047,\
+-	-6.27234118, -0.00076275, 0.00046749, 7.27157843, 0.99766931, 0.99876976, 0.49311045,\
+-	-6.27234163, -0.00076256, 0.00046737, 7.27157907, 0.99766988, 0.99877006, 0.49311061,\
+-	-6.27234209, -0.00076238, 0.00046726, 7.27157972, 0.99767046, 0.99877037, 0.49311059,\
+-	-6.27234255, -0.00076219, 0.00046714, 7.27158036, 0.99767103, 0.99877067, 0.49311072,\
+-	-6.27234301, -0.00076200, 0.00046703, 7.27158101, 0.99767160, 0.99877097, 0.49311081,\
+-	-6.27234346, -0.00076181, 0.00046691, 7.27158165, 0.99767218, 0.99877128, 0.49311088,\
+-	-6.27234392, -0.00076163, 0.00046680, 7.27158229, 0.99767275, 0.99877158, 0.49311099,\
+-	-6.27234438, -0.00076144, 0.00046668, 7.27158294, 0.99767332, 0.99877188, 0.49311100,\
+-	-6.27234483, -0.00076125, 0.00046657, 7.27158358, 0.99767389, 0.99877218, 0.49311108,\
+-	-6.27234529, -0.00076106, 0.00046645, 7.27158422, 0.99767447, 0.99877248, 0.49311114,\
+-	-6.27234574, -0.00076088, 0.00046634, 7.27158487, 0.99767504, 0.99877279, 0.49311126,\
+-	-6.27234620, -0.00076069, 0.00046622, 7.27158551, 0.99767561, 0.99877309, 0.49311118,\
+-	-6.27234665, -0.00076050, 0.00046611, 7.27158615, 0.99767618, 0.99877339, 0.49311132,\
+-	-6.27234711, -0.00076032, 0.00046599, 7.27158679, 0.99767675, 0.99877369, 0.49311134,\
+-	-6.27234756, -0.00076013, 0.00046588, 7.27158743, 0.99767732, 0.99877399, 0.49311138,\
+-	-6.27234802, -0.00075994, 0.00046576, 7.27158807, 0.99767789, 0.99877429, 0.49311158,\
+-	-6.27234847, -0.00075976, 0.00046565, 7.27158872, 0.99767846, 0.99877459, 0.49311152,\
+-	-6.27234892, -0.00075957, 0.00046554, 7.27158935, 0.99767903, 0.99877489, 0.49311170,\
+-	-6.27234938, -0.00075938, 0.00046542, 7.27158999, 0.99767960, 0.99877519, 0.49311176,\
+-	-6.27234983, -0.00075920, 0.00046531, 7.27159063, 0.99768017, 0.99877550, 0.49311184,\
+-	-6.27235028, -0.00075901, 0.00046519, 7.27159127, 0.99768074, 0.99877580, 0.49311180,\
+-	-6.27235074, -0.00075882, 0.00046508, 7.27159191, 0.99768131, 0.99877610, 0.49311187,\
+-	-6.27235119, -0.00075864, 0.00046496, 7.27159255, 0.99768188, 0.99877640, 0.49311206,\
+-	-6.27235164, -0.00075845, 0.00046485, 7.27159319, 0.99768245, 0.99877670, 0.49311212,\
+-	-6.27235209, -0.00075827, 0.00046474, 7.27159383, 0.99768302, 0.99877700, 0.49311212,\
+-	-6.27235255, -0.00075808, 0.00046462, 7.27159446, 0.99768358, 0.99877730, 0.49311214,\
+-	-6.27235300, -0.00075790, 0.00046451, 7.27159510, 0.99768415, 0.99877759, 0.49311223,\
+-	-6.27235345, -0.00075771, 0.00046440, 7.27159574, 0.99768472, 0.99877789, 0.49311231,\
+-	-6.27235390, -0.00075753, 0.00046428, 7.27159637, 0.99768529, 0.99877819, 0.49311242,\
+-	-6.27235435, -0.00075734, 0.00046417, 7.27159701, 0.99768585, 0.99877849, 0.49311242,\
+-	-6.27235480, -0.00075715, 0.00046405, 7.27159765, 0.99768642, 0.99877879, 0.49311257,\
+-	-6.27235525, -0.00075697, 0.00046394, 7.27159828, 0.99768699, 0.99877909, 0.49311263,\
+-	-6.27235570, -0.00075678, 0.00046383, 7.27159892, 0.99768755, 0.99877939, 0.49311265,\
+-	-6.27235615, -0.00075660, 0.00046371, 7.27159955, 0.99768812, 0.99877969, 0.49311271,\
+-	-6.27235660, -0.00075641, 0.00046360, 7.27160019, 0.99768868, 0.99877999, 0.49311273,\
+-	-6.27235705, -0.00075623, 0.00046349, 7.27160082, 0.99768925, 0.99878028, 0.49311292,\
+-	-6.27235750, -0.00075605, 0.00046337, 7.27160145, 0.99768981, 0.99878058, 0.49311290,\
+-	-6.27235795, -0.00075586, 0.00046326, 7.27160209, 0.99769038, 0.99878088, 0.49311294,\
+-	-6.27235840, -0.00075568, 0.00046315, 7.27160272, 0.99769094, 0.99878118, 0.49311305,\
+-	-6.27235884, -0.00075549, 0.00046303, 7.27160335, 0.99769150, 0.99878147, 0.49311309,\
+-	-6.27235929, -0.00075531, 0.00046292, 7.27160398, 0.99769207, 0.99878177, 0.49311327,\
+-	-6.27235974, -0.00075512, 0.00046281, 7.27160462, 0.99769263, 0.99878207, 0.49311324,\
+-	-6.27236019, -0.00075494, 0.00046269, 7.27160525, 0.99769319, 0.99878237, 0.49311327,\
+-	-6.27236063, -0.00075475, 0.00046258, 7.27160588, 0.99769376, 0.99878266, 0.49311333,\
+-	-6.27236108, -0.00075457, 0.00046247, 7.27160651, 0.99769432, 0.99878296, 0.49311348,\
+-	-6.27236153, -0.00075439, 0.00046236, 7.27160714, 0.99769488, 0.99878326, 0.49311361,\
+-	-6.27236197, -0.00075420, 0.00046224, 7.27160777, 0.99769544, 0.99878355, 0.49311357,\
+-	-6.27236242, -0.00075402, 0.00046213, 7.27160840, 0.99769601, 0.99878385, 0.49311362,\
+-	-6.27236287, -0.00075384, 0.00046202, 7.27160903, 0.99769657, 0.99878415, 0.49311367,\
+-	-6.27236331, -0.00075365, 0.00046191, 7.27160966, 0.99769713, 0.99878444, 0.49311366,\
+-	-6.27236376, -0.00075347, 0.00046179, 7.27161029, 0.99769769, 0.99878474, 0.49311384,\
+-	-6.27236420, -0.00075329, 0.00046168, 7.27161092, 0.99769825, 0.99878503, 0.49311393,\
+-	-6.27236465, -0.00075310, 0.00046157, 7.27161155, 0.99769881, 0.99878533, 0.49311405,\
+-	-6.27236509, -0.00075292, 0.00046146, 7.27161217, 0.99769937, 0.99878563, 0.49311410,\
+-	-6.27236554, -0.00075274, 0.00046134, 7.27161280, 0.99769993, 0.99878592, 0.49311401,\
+-	-6.27236598, -0.00075255, 0.00046123, 7.27161343, 0.99770049, 0.99878622, 0.49311424,\
+-	-6.27236643, -0.00075237, 0.00046112, 7.27161406, 0.99770105, 0.99878651, 0.49311425,\
+-	-6.27236687, -0.00075219, 0.00046101, 7.27161468, 0.99770161, 0.99878681, 0.49311423,\
+-	-6.27236731, -0.00075200, 0.00046089, 7.27161531, 0.99770217, 0.99878710, 0.49311442,\
+-	-6.27236776, -0.00075182, 0.00046078, 7.27161594, 0.99770272, 0.99878740, 0.49311431,\
+-	-6.27236820, -0.00075164, 0.00046067, 7.27161656, 0.99770328, 0.99878769, 0.49311449,\
+-	-6.27236864, -0.00075146, 0.00046056, 7.27161719, 0.99770384, 0.99878798, 0.49311451,\
+-	-6.27236909, -0.00075127, 0.00046045, 7.27161781, 0.99770440, 0.99878828, 0.49311462,\
+-	-6.27236953, -0.00075109, 0.00046034, 7.27161844, 0.99770496, 0.99878857, 0.49311465,\
+-	-6.27236997, -0.00075091, 0.00046022, 7.27161906, 0.99770551, 0.99878887, 0.49311479,\
+-	-6.27237041, -0.00075073, 0.00046011, 7.27161968, 0.99770607, 0.99878916, 0.49311488,\
+-	-6.27237085, -0.00075055, 0.00046000, 7.27162031, 0.99770663, 0.99878945, 0.49311489,\
+-	-6.27237130, -0.00075036, 0.00045989, 7.27162093, 0.99770718, 0.99878975, 0.49311496,\
+-	-6.27237174, -0.00075018, 0.00045978, 7.27162155, 0.99770774, 0.99879004, 0.49311494,\
+-	-6.27237218, -0.00075000, 0.00045967, 7.27162218, 0.99770829, 0.99879033, 0.49311510,\
+-	-6.27237262, -0.00074982, 0.00045955, 7.27162280, 0.99770885, 0.99879063, 0.49311504,\
+-	-6.27237306, -0.00074964, 0.00045944, 7.27162342, 0.99770941, 0.99879092, 0.49311523,\
+-	-6.27237350, -0.00074946, 0.00045933, 7.27162404, 0.99770996, 0.99879121, 0.49311526,\
+-	-6.27237394, -0.00074927, 0.00045922, 7.27162466, 0.99771051, 0.99879151, 0.49311531,\
+-	-6.27237438, -0.00074909, 0.00045911, 7.27162529, 0.99771107, 0.99879180, 0.49311549,\
+-	-6.27237482, -0.00074891, 0.00045900, 7.27162591, 0.99771162, 0.99879209, 0.49311546,\
+-	-6.27237526, -0.00074873, 0.00045889, 7.27162653, 0.99771218, 0.99879238, 0.49311554,\
+-	-6.27237570, -0.00074855, 0.00045878, 7.27162715, 0.99771273, 0.99879268, 0.49311557,\
+-	-6.27237614, -0.00074837, 0.00045866, 7.27162777, 0.99771328, 0.99879297, 0.49311573,\
+-	-6.27237657, -0.00074819, 0.00045855, 7.27162839, 0.99771384, 0.99879326, 0.49311571,\
+-	-6.27237701, -0.00074801, 0.00045844, 7.27162901, 0.99771439, 0.99879355, 0.49311580,\
+-	-6.27237745, -0.00074783, 0.00045833, 7.27162962, 0.99771494, 0.99879384, 0.49311585,\
+-	-6.27237789, -0.00074765, 0.00045822, 7.27163024, 0.99771549, 0.99879413, 0.49311592,\
+-	-6.27237833, -0.00074747, 0.00045811, 7.27163086, 0.99771605, 0.99879442, 0.49311607,\
+-	-6.27237876, -0.00074728, 0.00045800, 7.27163148, 0.99771660, 0.99879472, 0.49311608,\
+-	-6.27237920, -0.00074710, 0.00045789, 7.27163210, 0.99771715, 0.99879501, 0.49311612,\
+-	-6.27237964, -0.00074692, 0.00045778, 7.27163271, 0.99771770, 0.99879530, 0.49311622,\
+-	-6.27238007, -0.00074674, 0.00045767, 7.27163333, 0.99771825, 0.99879559, 0.49311623,\
+-	-6.27238051, -0.00074656, 0.00045756, 7.27163395, 0.99771880, 0.99879588, 0.49311629,\
+-	-6.27238095, -0.00074638, 0.00045745, 7.27163456, 0.99771935, 0.99879617, 0.49311629,\
+-	-6.27238138, -0.00074620, 0.00045734, 7.27163518, 0.99771990, 0.99879646, 0.49311644,\
+-	-6.27238182, -0.00074602, 0.00045723, 7.27163580, 0.99772045, 0.99879675, 0.49311641,\
+-	-6.27238225, -0.00074584, 0.00045712, 7.27163641, 0.99772100, 0.99879704, 0.49311653,\
+-	-6.27238269, -0.00074566, 0.00045701, 7.27163703, 0.99772155, 0.99879733, 0.49311671,\
+-	-6.27238312, -0.00074548, 0.00045690, 7.27163764, 0.99772210, 0.99879762, 0.49311673,\
+-	-6.27238356, -0.00074531, 0.00045679, 7.27163825, 0.99772265, 0.99879791, 0.49311683,\
+-	-6.27238399, -0.00074513, 0.00045668, 7.27163887, 0.99772320, 0.99879820, 0.49311676,\
+-	-6.27238443, -0.00074495, 0.00045657, 7.27163948, 0.99772375, 0.99879849, 0.49311684,\
+-	-6.27238486, -0.00074477, 0.00045646, 7.27164010, 0.99772429, 0.99879878, 0.49311690,\
+-	-6.27238530, -0.00074459, 0.00045635, 7.27164071, 0.99772484, 0.99879907, 0.49311703,\
+-	-6.27238573, -0.00074441, 0.00045624, 7.27164132, 0.99772539, 0.99879936, 0.49311710,\
+-	-6.27238616, -0.00074423, 0.00045613, 7.27164193, 0.99772594, 0.99879964, 0.49311708,\
+-	-6.27238660, -0.00074405, 0.00045602, 7.27164255, 0.99772648, 0.99879993, 0.49311725,\
+-	-6.27238703, -0.00074387, 0.00045591, 7.27164316, 0.99772703, 0.99880022, 0.49311732,\
+-	-6.27238746, -0.00074369, 0.00045580, 7.27164377, 0.99772758, 0.99880051, 0.49311738,\
+-	-6.27238790, -0.00074352, 0.00045569, 7.27164438, 0.99772812, 0.99880080, 0.49311739,\
+-	-6.27238833, -0.00074334, 0.00045558, 7.27164499, 0.99772867, 0.99880109, 0.49311746,\
+-	-6.27238876, -0.00074316, 0.00045547, 7.27164560, 0.99772921, 0.99880137, 0.49311752,\
+-	-6.27238919, -0.00074298, 0.00045536, 7.27164621, 0.99772976, 0.99880166, 0.49311758,\
+-	-6.27238962, -0.00074280, 0.00045525, 7.27164682, 0.99773030, 0.99880195, 0.49311766,\
+-	-6.27239006, -0.00074262, 0.00045514, 7.27164743, 0.99773085, 0.99880224, 0.49311772,\
+-	-6.27239049, -0.00074245, 0.00045503, 7.27164804, 0.99773139, 0.99880252, 0.49311777,\
+-	-6.27239092, -0.00074227, 0.00045492, 7.27164865, 0.99773194, 0.99880281, 0.49311785,\
+-	-6.27239135, -0.00074209, 0.00045481, 7.27164926, 0.99773248, 0.99880310, 0.49311791,\
+-	-6.27239178, -0.00074191, 0.00045470, 7.27164987, 0.99773303, 0.99880339, 0.49311797,\
+-	-6.27239221, -0.00074173, 0.00045459, 7.27165048, 0.99773357, 0.99880367, 0.49311806,\
+-	-6.27239264, -0.00074156, 0.00045449, 7.27165108, 0.99773411, 0.99880396, 0.49311809,\
+-	-6.27239307, -0.00074138, 0.00045438, 7.27165169, 0.99773466, 0.99880425, 0.49311816,\
+-	-6.27239350, -0.00074120, 0.00045427, 7.27165230, 0.99773520, 0.99880453, 0.49311824,\
+-	-6.27239393, -0.00074102, 0.00045416, 7.27165291, 0.99773574, 0.99880482, 0.49311829,\
+-	-6.27239436, -0.00074085, 0.00045405, 7.27165351, 0.99773628, 0.99880510, 0.49311835,\
+-	-6.27239479, -0.00074067, 0.00045394, 7.27165412, 0.99773683, 0.99880539, 0.49311839,\
+-	-6.27239522, -0.00074049, 0.00045383, 7.27165472, 0.99773737, 0.99880568, 0.49311849,\
+-	-6.27239564, -0.00074031, 0.00045372, 7.27165533, 0.99773791, 0.99880596, 0.49311853,\
+-	-6.27239607, -0.00074014, 0.00045362, 7.27165593, 0.99773845, 0.99880625, 0.49311862,\
+-	-6.27239650, -0.00073996, 0.00045351, 7.27165654, 0.99773899, 0.99880653, 0.49311867,\
+-	-6.27239693, -0.00073978, 0.00045340, 7.27165714, 0.99773953, 0.99880682, 0.49311873,\
+-	-6.27239736, -0.00073961, 0.00045329, 7.27165775, 0.99774007, 0.99880710, 0.49311878,\
+-	-6.27239778, -0.00073943, 0.00045318, 7.27165835, 0.99774061, 0.99880739, 0.49311885,\
+-	-6.27239821, -0.00073925, 0.00045307, 7.27165896, 0.99774115, 0.99880767, 0.49311891,\
+-	-6.27239864, -0.00073908, 0.00045296, 7.27165956, 0.99774169, 0.99880796, 0.49311897,\
+-	-6.27239906, -0.00073890, 0.00045286, 7.27166016, 0.99774223, 0.99880824, 0.49311905,\
+-	-6.27239949, -0.00073872, 0.00045275, 7.27166077, 0.99774277, 0.99880853, 0.49311912,\
+-	-6.27239992, -0.00073855, 0.00045264, 7.27166137, 0.99774331, 0.99880881, 0.49311918,\
+-	-6.27240034, -0.00073837, 0.00045253, 7.27166197, 0.99774385, 0.99880910, 0.49311924,\
+-	-6.27240077, -0.00073820, 0.00045242, 7.27166257, 0.99774439, 0.99880938, 0.49311929,\
+-	-6.27240119, -0.00073802, 0.00045232, 7.27166317, 0.99774492, 0.99880966, 0.49311935,\
+-	-6.27240162, -0.00073784, 0.00045221, 7.27166378, 0.99774546, 0.99880995, 0.49311941,\
+-	-6.27240205, -0.00073767, 0.00045210, 7.27166438, 0.99774600, 0.99881023, 0.49311949,\
+-	-6.27240247, -0.00073749, 0.00045199, 7.27166498, 0.99774654, 0.99881051, 0.49311956,\
+-	-6.27240289, -0.00073732, 0.00045188, 7.27166558, 0.99774707, 0.99881080, 0.49311961,\
+-	-6.27240332, -0.00073714, 0.00045178, 7.27166618, 0.99774761, 0.99881108, 0.49311968,\
+-	-6.27240374, -0.00073697, 0.00045167, 7.27166678, 0.99774815, 0.99881136, 0.49311975,\
+-	-6.27240417, -0.00073679, 0.00045156, 7.27166738, 0.99774868, 0.99881165, 0.49311980,\
+-	-6.27240459, -0.00073662, 0.00045145, 7.27166798, 0.99774922, 0.99881193, 0.49311987,\
+-	-6.27240502, -0.00073644, 0.00045135, 7.27166858, 0.99774976, 0.99881221, 0.49311992,\
+-	-6.27240544, -0.00073626, 0.00045124, 7.27166917, 0.99775029, 0.99881250, 0.49312000,\
+-	-6.27240586, -0.00073609, 0.00045113, 7.27166977, 0.99775083, 0.99881278, 0.49312006,\
+-	-6.27240628, -0.00073591, 0.00045102, 7.27167037, 0.99775136, 0.99881306, 0.49312011,\
+-	-6.27240671, -0.00073574, 0.00045092, 7.27167097, 0.99775190, 0.99881334, 0.49312017,\
+-	-6.27240713, -0.00073556, 0.00045081, 7.27167157, 0.99775243, 0.99881362, 0.49312022,\
+-	-6.27240755, -0.00073539, 0.00045070, 7.27167216, 0.99775297, 0.99881391, 0.49312031,\
+-	-6.27240797, -0.00073522, 0.00045060, 7.27167276, 0.99775350, 0.99881419, 0.49312033,\
+-	-6.27240840, -0.00073504, 0.00045049, 7.27167336, 0.99775403, 0.99881447, 0.49312043,\
+-	-6.27240882, -0.00073487, 0.00045038, 7.27167395, 0.99775457, 0.99881475, 0.49312049,\
+-	-6.27240924, -0.00073469, 0.00045027, 7.27167455, 0.99775510, 0.99881503, 0.49312054,\
+-	-6.27240966, -0.00073452, 0.00045017, 7.27167514, 0.99775563, 0.99881531, 0.49312061,\
+-	-6.27241008, -0.00073434, 0.00045006, 7.27167574, 0.99775617, 0.99881560, 0.49312068,\
+-	-6.27241050, -0.00073417, 0.00044995, 7.27167633, 0.99775670, 0.99881588, 0.49312074,\
+-	-6.27241092, -0.00073400, 0.00044985, 7.27167693, 0.99775723, 0.99881616, 0.49312080,\
+-	-6.27241134, -0.00073382, 0.00044974, 7.27167752, 0.99775776, 0.99881644, 0.49312087,\
+-	-6.27241176, -0.00073365, 0.00044963, 7.27167812, 0.99775829, 0.99881672, 0.49312093,\
+-	-6.27241218, -0.00073347, 0.00044953, 7.27167871, 0.99775883, 0.99881700, 0.49312099,\
+-	-6.27241260, -0.00073330, 0.00044942, 7.27167930, 0.99775936, 0.99881728, 0.49312106,\
+-	-6.27241302, -0.00073313, 0.00044931, 7.27167990, 0.99775989, 0.99881756, 0.49312110,\
+-	-6.27241344, -0.00073295, 0.00044921, 7.27168049, 0.99776042, 0.99881784, 0.49312117,\
+-	-6.27241386, -0.00073278, 0.00044910, 7.27168108, 0.99776095, 0.99881812, 0.49312124,\
+-	-6.27241428, -0.00073261, 0.00044899, 7.27168167, 0.99776148, 0.99881840, 0.49312129,\
+-	-6.27241470, -0.00073243, 0.00044889, 7.27168227, 0.99776201, 0.99881868, 0.49312137,\
+-	-6.27241512, -0.00073226, 0.00044878, 7.27168286, 0.99776254, 0.99881896, 0.49312141,\
+-	-6.27241554, -0.00073209, 0.00044868, 7.27168345, 0.99776307, 0.99881924, 0.49312147,\
+-	-6.27241595, -0.00073191, 0.00044857, 7.27168404, 0.99776360, 0.99881952, 0.49312156,\
+-	-6.27241637, -0.00073174, 0.00044846, 7.27168463, 0.99776413, 0.99881980, 0.49312161,\
+-	-6.27241679, -0.00073157, 0.00044836, 7.27168522, 0.99776466, 0.99882008, 0.49312166,\
+-	-6.27241721, -0.00073139, 0.00044825, 7.27168581, 0.99776518, 0.99882035, 0.49312172,\
+-	-6.27241762, -0.00073122, 0.00044815, 7.27168640, 0.99776571, 0.99882063, 0.49312178,\
+-	-6.27241804, -0.00073105, 0.00044804, 7.27168699, 0.99776624, 0.99882091, 0.49312185,\
+-	-6.27241846, -0.00073088, 0.00044793, 7.27168758, 0.99776677, 0.99882119, 0.49312193,\
+-	-6.27241887, -0.00073070, 0.00044783, 7.27168817, 0.99776730, 0.99882147, 0.49312197,\
+-	-6.27241929, -0.00073053, 0.00044772, 7.27168876, 0.99776782, 0.99882175, 0.49312203,\
+-	-6.27241971, -0.00073036, 0.00044762, 7.27168935, 0.99776835, 0.99882202, 0.49312211,\
+-	-6.27242012, -0.00073019, 0.00044751, 7.27168994, 0.99776888, 0.99882230, 0.49312215,\
+-	-6.27242054, -0.00073001, 0.00044741, 7.27169052, 0.99776940, 0.99882258, 0.49312222,\
+-	-6.27242095, -0.00072984, 0.00044730, 7.27169111, 0.99776993, 0.99882286, 0.49312230,\
+-	-6.27242137, -0.00072967, 0.00044719, 7.27169170, 0.99777045, 0.99882314, 0.49312233,\
+-	-6.27242178, -0.00072950, 0.00044709, 7.27169229, 0.99777098, 0.99882341, 0.49312241,\
+-	-6.27242220, -0.00072933, 0.00044698, 7.27169287, 0.99777151, 0.99882369, 0.49312246,\
+-	-6.27242261, -0.00072915, 0.00044688, 7.27169346, 0.99777203, 0.99882397, 0.49312253,\
+-	-6.27242303, -0.00072898, 0.00044677, 7.27169405, 0.99777256, 0.99882424, 0.49312260,\
+-	-6.27242344, -0.00072881, 0.00044667, 7.27169463, 0.99777308, 0.99882452, 0.49312265,\
+-	-6.27242386, -0.00072864, 0.00044656, 7.27169522, 0.99777361, 0.99882480, 0.49312272,\
+-	-6.27242427, -0.00072847, 0.00044646, 7.27169580, 0.99777413, 0.99882508, 0.49312276,\
+-	-6.27242468, -0.00072830, 0.00044635, 7.27169639, 0.99777465, 0.99882535, 0.49312285,\
+-	-6.27242510, -0.00072813, 0.00044625, 7.27169697, 0.99777518, 0.99882563, 0.49312291,\
+-	-6.27242551, -0.00072795, 0.00044614, 7.27169756, 0.99777570, 0.99882590, 0.49312295,\
+-	-6.27242592, -0.00072778, 0.00044604, 7.27169814, 0.99777622, 0.99882618, 0.49312303,\
+-	-6.27242634, -0.00072761, 0.00044593, 7.27169872, 0.99777675, 0.99882646, 0.49312307,\
+-	-6.27242675, -0.00072744, 0.00044583, 7.27169931, 0.99777727, 0.99882673, 0.49312312,\
+-	-6.27242716, -0.00072727, 0.00044572, 7.27169989, 0.99777779, 0.99882701, 0.49312319,\
+-	-6.27242757, -0.00072710, 0.00044562, 7.27170047, 0.99777831, 0.99882728, 0.49312326,\
+-	-6.27242798, -0.00072693, 0.00044551, 7.27170106, 0.99777884, 0.99882756, 0.49312335,\
+-	-6.27242840, -0.00072676, 0.00044541, 7.27170164, 0.99777936, 0.99882783, 0.49312338,\
+-	-6.27242881, -0.00072659, 0.00044530, 7.27170222, 0.99777988, 0.99882811, 0.49312345,\
+-	-6.27242922, -0.00072642, 0.00044520, 7.27170280, 0.99778040, 0.99882838, 0.49312349,\
+-	-6.27242963, -0.00072625, 0.00044509, 7.27170338, 0.99778092, 0.99882866, 0.49312358,\
+-	-6.27243004, -0.00072608, 0.00044499, 7.27170397, 0.99778144, 0.99882893, 0.49312364,\
+-	-6.27243045, -0.00072591, 0.00044488, 7.27170455, 0.99778196, 0.99882921, 0.49312368,\
+-	-6.27243086, -0.00072574, 0.00044478, 7.27170513, 0.99778248, 0.99882948, 0.49312376,\
+-	-6.27243127, -0.00072557, 0.00044468, 7.27170571, 0.99778300, 0.99882976, 0.49312381,\
+-	-6.27243168, -0.00072540, 0.00044457, 7.27170629, 0.99778352, 0.99883003, 0.49312388,\
+-	-6.27243209, -0.00072523, 0.00044447, 7.27170687, 0.99778404, 0.99883031, 0.49312394,\
+-	-6.27243250, -0.00072506, 0.00044436, 7.27170745, 0.99778456, 0.99883058, 0.49312397,\
+-	-6.27243291, -0.00072489, 0.00044426, 7.27170803, 0.99778508, 0.99883086, 0.49312405,\
+-	-6.27243332, -0.00072472, 0.00044416, 7.27170860, 0.99778560, 0.99883113, 0.49312410,\
+-	-6.27243373, -0.00072455, 0.00044405, 7.27170918, 0.99778612, 0.99883140, 0.49312419,\
+-	-6.27243414, -0.00072438, 0.00044395, 7.27170976, 0.99778664, 0.99883168, 0.49312424,\
+-	-6.27243455, -0.00072421, 0.00044384, 7.27171034, 0.99778716, 0.99883195, 0.49312429,\
+-	-6.27243496, -0.00072404, 0.00044374, 7.27171092, 0.99778767, 0.99883222, 0.49312436,\
+-	-6.27243536, -0.00072387, 0.00044364, 7.27171150, 0.99778819, 0.99883250, 0.49312441,\
+-	-6.27243577, -0.00072370, 0.00044353, 7.27171207, 0.99778871, 0.99883277, 0.49312447,\
+-	-6.27243618, -0.00072353, 0.00044343, 7.27171265, 0.99778923, 0.99883304, 0.49312454,\
+-	-6.27243659, -0.00072336, 0.00044332, 7.27171323, 0.99778974, 0.99883331, 0.49312460,\
+-	-6.27243700, -0.00072319, 0.00044322, 7.27171380, 0.99779026, 0.99883359, 0.49312464,\
+-	-6.27243740, -0.00072302, 0.00044312, 7.27171438, 0.99779078, 0.99883386, 0.49312471,\
+-	-6.27243781, -0.00072285, 0.00044301, 7.27171495, 0.99779129, 0.99883413, 0.49312476,\
+-	-6.27243822, -0.00072269, 0.00044291, 7.27171553, 0.99779181, 0.99883440, 0.49312483,\
+-	-6.27243862, -0.00072252, 0.00044281, 7.27171611, 0.99779232, 0.99883468, 0.49312489,\
+-	-6.27243903, -0.00072235, 0.00044270, 7.27171668, 0.99779284, 0.99883495, 0.49312495,\
+-	-6.27243944, -0.00072218, 0.00044260, 7.27171726, 0.99779336, 0.99883522, 0.49312500,\
+-	-6.27243984, -0.00072201, 0.00044250, 7.27171783, 0.99779387, 0.99883549, 0.49312508,\
+-	-6.27244025, -0.00072184, 0.00044239, 7.27171840, 0.99779438, 0.99883576, 0.49312514,\
+-	-6.27244065, -0.00072167, 0.00044229, 7.27171898, 0.99779490, 0.99883604, 0.49312518,\
+-	-6.27244106, -0.00072151, 0.00044219, 7.27171955, 0.99779541, 0.99883631, 0.49312525,\
+-	-6.27244146, -0.00072134, 0.00044208, 7.27172012, 0.99779593, 0.99883658, 0.49312531,\
+-	-6.27244187, -0.00072117, 0.00044198, 7.27172070, 0.99779644, 0.99883685, 0.49312537,\
+-	-6.27244227, -0.00072100, 0.00044188, 7.27172127, 0.99779696, 0.99883712, 0.49312544,\
+-	-6.27244268, -0.00072083, 0.00044177, 7.27172184, 0.99779747, 0.99883739, 0.49312550,\
+-	-6.27244308, -0.00072067, 0.00044167, 7.27172242, 0.99779798, 0.99883766, 0.49312555,\
+-	-6.27244349, -0.00072050, 0.00044157, 7.27172299, 0.99779849, 0.99883793, 0.49312563,\
+-	-6.27244389, -0.00072033, 0.00044147, 7.27172356, 0.99779901, 0.99883820, 0.49312567,\
+-	-6.27244429, -0.00072016, 0.00044136, 7.27172413, 0.99779952, 0.99883847, 0.49312573,\
+-	-6.27244470, -0.00072000, 0.00044126, 7.27172470, 0.99780003, 0.99883874, 0.49312578,\
+-	-6.27244510, -0.00071983, 0.00044116, 7.27172527, 0.99780054, 0.99883901, 0.49312585,\
+-	-6.27244550, -0.00071966, 0.00044105, 7.27172584, 0.99780105, 0.99883928, 0.49312592,\
+-	-6.27244591, -0.00071949, 0.00044095, 7.27172641, 0.99780157, 0.99883955, 0.49312598,\
+-	-6.27244631, -0.00071933, 0.00044085, 7.27172698, 0.99780208, 0.99883982, 0.49312604,\
+-	-6.27244671, -0.00071916, 0.00044075, 7.27172755, 0.99780259, 0.99884009, 0.49312608,\
+-	-6.27244712, -0.00071899, 0.00044064, 7.27172812, 0.99780310, 0.99884036, 0.49312614,\
+-	-6.27244752, -0.00071883, 0.00044054, 7.27172869, 0.99780361, 0.99884063, 0.49312622,\
+-	-6.27244792, -0.00071866, 0.00044044, 7.27172926, 0.99780412, 0.99884090, 0.49312626,\
+-	-6.27244832, -0.00071849, 0.00044034, 7.27172983, 0.99780463, 0.99884117, 0.49312632,\
+-	-6.27244872, -0.00071833, 0.00044024, 7.27173040, 0.99780514, 0.99884144, 0.49312638,\
+-	-6.27244912, -0.00071816, 0.00044013, 7.27173097, 0.99780565, 0.99884171, 0.49312645,\
+-	-6.27244953, -0.00071799, 0.00044003, 7.27173153, 0.99780616, 0.99884198, 0.49312649,\
+-	-6.27244993, -0.00071783, 0.00043993, 7.27173210, 0.99780667, 0.99884225, 0.49312657,\
+-	-6.27245033, -0.00071766, 0.00043983, 7.27173267, 0.99780718, 0.99884251, 0.49312664,\
+-	-6.27245073, -0.00071749, 0.00043972, 7.27173323, 0.99780768, 0.99884278, 0.49312669,\
+-	-6.27245113, -0.00071733, 0.00043962, 7.27173380, 0.99780819, 0.99884305, 0.49312674,\
+-	-6.27245153, -0.00071716, 0.00043952, 7.27173437, 0.99780870, 0.99884332, 0.49312680,\
+-	-6.27245193, -0.00071699, 0.00043942, 7.27173493, 0.99780921, 0.99884359, 0.49312685,\
+-	-6.27245233, -0.00071683, 0.00043932, 7.27173550, 0.99780972, 0.99884385, 0.49312691,\
+-	-6.27245273, -0.00071666, 0.00043922, 7.27173607, 0.99781022, 0.99884412, 0.49312701,\
+-	-6.27245313, -0.00071650, 0.00043911, 7.27173663, 0.99781073, 0.99884439, 0.49312703,\
+-	-6.27245353, -0.00071633, 0.00043901, 7.27173720, 0.99781124, 0.99884466, 0.49312710,\
+-	-6.27245393, -0.00071617, 0.00043891, 7.27173776, 0.99781174, 0.99884492, 0.49312716,\
+-	-6.27245432, -0.00071600, 0.00043881, 7.27173833, 0.99781225, 0.99884519, 0.49312722,\
+-	-6.27245472, -0.00071583, 0.00043871, 7.27173889, 0.99781276, 0.99884546, 0.49312728,\
+-	-6.27245512, -0.00071567, 0.00043861, 7.27173945, 0.99781326, 0.99884573, 0.49312736,\
+-	-6.27245552, -0.00071550, 0.00043850, 7.27174002, 0.99781377, 0.99884599, 0.49312741,\
+-	-6.27245592, -0.00071534, 0.00043840, 7.27174058, 0.99781427, 0.99884626, 0.49312745,\
+-	-6.27245632, -0.00071517, 0.00043830, 7.27174114, 0.99781478, 0.99884653, 0.49312752,\
+-	-6.27245671, -0.00071501, 0.00043820, 7.27174171, 0.99781528, 0.99884679, 0.49312756,\
+-	-6.27245711, -0.00071484, 0.00043810, 7.27174227, 0.99781579, 0.99884706, 0.49312763,\
+-	-6.27245751, -0.00071468, 0.00043800, 7.27174283, 0.99781629, 0.99884733, 0.49312770,\
+-	-6.27245791, -0.00071451, 0.00043790, 7.27174339, 0.99781680, 0.99884759, 0.49312773,\
+-	-6.27245830, -0.00071435, 0.00043779, 7.27174396, 0.99781730, 0.99884786, 0.49312781,\
+-	-6.27245870, -0.00071418, 0.00043769, 7.27174452, 0.99781781, 0.99884812, 0.49312788,\
+-	-6.27245910, -0.00071402, 0.00043759, 7.27174508, 0.99781831, 0.99884839, 0.49312794,\
+-	-6.27245949, -0.00071385, 0.00043749, 7.27174564, 0.99781881, 0.99884866, 0.49312798,\
+-	-6.27245989, -0.00071369, 0.00043739, 7.27174620, 0.99781932, 0.99884892, 0.49312802,\
+-	-6.27246028, -0.00071352, 0.00043729, 7.27174676, 0.99781982, 0.99884919, 0.49312810,\
+-	-6.27246068, -0.00071336, 0.00043719, 7.27174732, 0.99782032, 0.99884945, 0.49312816,\
+-	-6.27246108, -0.00071320, 0.00043709, 7.27174788, 0.99782083, 0.99884972, 0.49312820,\
+-	-6.27246147, -0.00071303, 0.00043699, 7.27174844, 0.99782133, 0.99884998, 0.49312828,\
+-	-6.27246187, -0.00071287, 0.00043689, 7.27174900, 0.99782183, 0.99885025, 0.49312834,\
+-	-6.27246226, -0.00071270, 0.00043679, 7.27174956, 0.99782233, 0.99885051, 0.49312839,\
+-	-6.27246266, -0.00071254, 0.00043669, 7.27175012, 0.99782283, 0.99885078, 0.49312847,\
+-	-6.27246305, -0.00071237, 0.00043658, 7.27175068, 0.99782333, 0.99885104, 0.49312849,\
+-	-6.27246345, -0.00071221, 0.00043648, 7.27175123, 0.99782384, 0.99885131, 0.49312857,\
+-	-6.27246384, -0.00071205, 0.00043638, 7.27175179, 0.99782434, 0.99885157, 0.49312862,\
+-	-6.27246423, -0.00071188, 0.00043628, 7.27175235, 0.99782484, 0.99885183, 0.49312870,\
+-	-6.27246463, -0.00071172, 0.00043618, 7.27175291, 0.99782534, 0.99885210, 0.49312875,\
+-	-6.27246502, -0.00071156, 0.00043608, 7.27175347, 0.99782584, 0.99885236, 0.49312878,\
+-	-6.27246541, -0.00071139, 0.00043598, 7.27175402, 0.99782634, 0.99885263, 0.49312886,\
+-	-6.27246581, -0.00071123, 0.00043588, 7.27175458, 0.99782684, 0.99885289, 0.49312892,\
+-	-6.27246620, -0.00071107, 0.00043578, 7.27175514, 0.99782734, 0.99885315, 0.49312899,\
+-	-6.27246659, -0.00071090, 0.00043568, 7.27175569, 0.99782784, 0.99885342, 0.49312906,\
+-	-6.27246699, -0.00071074, 0.00043558, 7.27175625, 0.99782833, 0.99885368, 0.49312908,\
+-	-6.27246738, -0.00071058, 0.00043548, 7.27175680, 0.99782883, 0.99885394, 0.49312914,\
+-	-6.27246777, -0.00071041, 0.00043538, 7.27175736, 0.99782933, 0.99885421, 0.49312922,\
+-	-6.27246816, -0.00071025, 0.00043528, 7.27175791, 0.99782983, 0.99885447, 0.49312926,\
+-	-6.27246856, -0.00071009, 0.00043518, 7.27175847, 0.99783033, 0.99885473, 0.49312934,\
+-	-6.27246895, -0.00070992, 0.00043508, 7.27175902, 0.99783083, 0.99885499, 0.49312938,\
+-	-6.27246934, -0.00070976, 0.00043498, 7.27175958, 0.99783132, 0.99885526, 0.49312944,\
+-	-6.27246973, -0.00070960, 0.00043488, 7.27176013, 0.99783182, 0.99885552, 0.49312948,\
+-	-6.27247012, -0.00070944, 0.00043478, 7.27176069, 0.99783232, 0.99885578, 0.49312957,\
+-	-6.27247051, -0.00070927, 0.00043468, 7.27176124, 0.99783282, 0.99885604, 0.49312962,\
+-	-6.27247090, -0.00070911, 0.00043458, 7.27176179, 0.99783331, 0.99885631, 0.49312968,\
+-	-6.27247129, -0.00070895, 0.00043448, 7.27176235, 0.99783381, 0.99885657, 0.49312972,\
+-	-6.27247168, -0.00070879, 0.00043438, 7.27176290, 0.99783431, 0.99885683, 0.49312980,\
+-	-6.27247207, -0.00070862, 0.00043428, 7.27176345, 0.99783480, 0.99885709, 0.49312985,\
+-	-6.27247246, -0.00070846, 0.00043418, 7.27176400, 0.99783530, 0.99885735, 0.49312992,\
+-	-6.27247285, -0.00070830, 0.00043409, 7.27176456, 0.99783579, 0.99885762, 0.49312999,\
+-	-6.27247324, -0.00070814, 0.00043399, 7.27176511, 0.99783629, 0.99885788, 0.49313003,\
+-	-6.27247363, -0.00070798, 0.00043389, 7.27176566, 0.99783678, 0.99885814, 0.49313009,\
+-	-6.27247402, -0.00070781, 0.00043379, 7.27176621, 0.99783728, 0.99885840, 0.49313014,\
+-	-6.27247441, -0.00070765, 0.00043369, 7.27176676, 0.99783777, 0.99885866, 0.49313021,\
+-	-6.27247480, -0.00070749, 0.00043359, 7.27176731, 0.99783827, 0.99885892, 0.49313025,\
+-	-6.27247519, -0.00070733, 0.00043349, 7.27176786, 0.99783876, 0.99885918, 0.49313031,\
+-	-6.27247558, -0.00070717, 0.00043339, 7.27176841, 0.99783926, 0.99885944, 0.49313036,\
+-	-6.27247597, -0.00070701, 0.00043329, 7.27176896, 0.99783975, 0.99885970, 0.49313043,\
+-	-6.27247636, -0.00070684, 0.00043319, 7.27176951, 0.99784024, 0.99885996, 0.49313047,\
+-	-6.27247674, -0.00070668, 0.00043309, 7.27177006, 0.99784074, 0.99886022, 0.49313056,\
+-	-6.27247713, -0.00070652, 0.00043299, 7.27177061, 0.99784123, 0.99886048, 0.49313062,\
+-	-6.27247752, -0.00070636, 0.00043290, 7.27177116, 0.99784172, 0.99886074, 0.49313067,\
+-	-6.27247791, -0.00070620, 0.00043280, 7.27177171, 0.99784222, 0.99886100, 0.49313072,\
+-	-6.27247829, -0.00070604, 0.00043270, 7.27177226, 0.99784271, 0.99886126, 0.49313077,\
+-	-6.27247868, -0.00070588, 0.00043260, 7.27177280, 0.99784320, 0.99886152, 0.49313084,\
+-	-6.27247907, -0.00070572, 0.00043250, 7.27177335, 0.99784369, 0.99886178, 0.49313089,\
+-	-6.27247945, -0.00070556, 0.00043240, 7.27177390, 0.99784418, 0.99886204, 0.49313094,\
+-	-6.27247984, -0.00070539, 0.00043230, 7.27177445, 0.99784468, 0.99886230, 0.49313101,\
+-	-6.27248023, -0.00070523, 0.00043220, 7.27177499, 0.99784517, 0.99886256, 0.49313105,\
+-	-6.27248061, -0.00070507, 0.00043211, 7.27177554, 0.99784566, 0.99886282, 0.49313111,\
+-	-6.27248100, -0.00070491, 0.00043201, 7.27177609, 0.99784615, 0.99886308, 0.49313117,\
+-	-6.27248139, -0.00070475, 0.00043191, 7.27177663, 0.99784664, 0.99886334, 0.49313123,\
+-	-6.27248177, -0.00070459, 0.00043181, 7.27177718, 0.99784713, 0.99886360, 0.49313129,\
+-	-6.27248216, -0.00070443, 0.00043171, 7.27177773, 0.99784762, 0.99886386, 0.49313133,\
+-	-6.27248254, -0.00070427, 0.00043161, 7.27177827, 0.99784811, 0.99886411, 0.49313142,\
+-	-6.27248293, -0.00070411, 0.00043152, 7.27177882, 0.99784860, 0.99886437, 0.49313147,\
+-	-6.27248331, -0.00070395, 0.00043142, 7.27177936, 0.99784909, 0.99886463, 0.49313152,\
+-	-6.27248370, -0.00070379, 0.00043132, 7.27177991, 0.99784958, 0.99886489, 0.49313157,\
+-	-6.27248408, -0.00070363, 0.00043122, 7.27178045, 0.99785007, 0.99886515, 0.49313161,\
+-	-6.27248447, -0.00070347, 0.00043112, 7.27178099, 0.99785056, 0.99886541, 0.49313168,\
+-	-6.27248485, -0.00070331, 0.00043103, 7.27178154, 0.99785104, 0.99886566, 0.49313174,\
+-	-6.27248523, -0.00070315, 0.00043093, 7.27178208, 0.99785153, 0.99886592, 0.49313183,\
+-	-6.27248562, -0.00070299, 0.00043083, 7.27178263, 0.99785202, 0.99886618, 0.49313186,\
+-	-6.27248600, -0.00070283, 0.00043073, 7.27178317, 0.99785251, 0.99886644, 0.49313191,\
+-	-6.27248638, -0.00070267, 0.00043063, 7.27178371, 0.99785300, 0.99886669, 0.49313198,\
+-	-6.27248677, -0.00070251, 0.00043054, 7.27178425, 0.99785348, 0.99886695, 0.49313204,\
+-	-6.27248715, -0.00070235, 0.00043044, 7.27178480, 0.99785397, 0.99886721, 0.49313208,\
+-	-6.27248753, -0.00070219, 0.00043034, 7.27178534, 0.99785446, 0.99886747, 0.49313214,\
+-	-6.27248792, -0.00070203, 0.00043024, 7.27178588, 0.99785495, 0.99886772, 0.49313220,\
+-	-6.27248830, -0.00070188, 0.00043014, 7.27178642, 0.99785543, 0.99886798, 0.49313224,\
+-	-6.27248868, -0.00070172, 0.00043005, 7.27178696, 0.99785592, 0.99886824, 0.49313233,\
+-	-6.27248906, -0.00070156, 0.00042995, 7.27178751, 0.99785641, 0.99886849, 0.49313235,\
+-	-6.27248945, -0.00070140, 0.00042985, 7.27178805, 0.99785689, 0.99886875, 0.49313243,\
+-	-6.27248983, -0.00070124, 0.00042975, 7.27178859, 0.99785738, 0.99886901, 0.49313250,\
+-	-6.27249021, -0.00070108, 0.00042966, 7.27178913, 0.99785786, 0.99886926, 0.49313254,\
+-	-6.27249059, -0.00070092, 0.00042956, 7.27178967, 0.99785835, 0.99886952, 0.49313259,\
+-	-6.27249097, -0.00070076, 0.00042946, 7.27179021, 0.99785883, 0.99886977, 0.49313265,\
+-	-6.27249135, -0.00070060, 0.00042937, 7.27179075, 0.99785932, 0.99887003, 0.49313270,\
+-	-6.27249173, -0.00070045, 0.00042927, 7.27179129, 0.99785980, 0.99887029, 0.49313277,\
+-	-6.27249211, -0.00070029, 0.00042917, 7.27179183, 0.99786029, 0.99887054, 0.49313282,\
+-	-6.27249250, -0.00070013, 0.00042907, 7.27179237, 0.99786077, 0.99887080, 0.49313289,\
+-	-6.27249288, -0.00069997, 0.00042898, 7.27179290, 0.99786126, 0.99887105, 0.49313291,\
+-	-6.27249326, -0.00069981, 0.00042888, 7.27179344, 0.99786174, 0.99887131, 0.49313301,\
+-	-6.27249364, -0.00069965, 0.00042878, 7.27179398, 0.99786222, 0.99887156, 0.49313305,\
+-	-6.27249402, -0.00069950, 0.00042869, 7.27179452, 0.99786271, 0.99887182, 0.49313311,\
+-	-6.27249440, -0.00069934, 0.00042859, 7.27179506, 0.99786319, 0.99887207, 0.49313316,\
+-	-6.27249477, -0.00069918, 0.00042849, 7.27179559, 0.99786367, 0.99887233, 0.49313322,\
+-	-6.27249515, -0.00069902, 0.00042840, 7.27179613, 0.99786415, 0.99887258, 0.49313329,\
+-	-6.27249553, -0.00069887, 0.00042830, 7.27179667, 0.99786464, 0.99887284, 0.49313333,\
+-	-6.27249591, -0.00069871, 0.00042820, 7.27179720, 0.99786512, 0.99887309, 0.49313340,\
+-	-6.27249629, -0.00069855, 0.00042810, 7.27179774, 0.99786560, 0.99887335, 0.49313343,\
+-	-6.27249667, -0.00069839, 0.00042801, 7.27179828, 0.99786608, 0.99887360, 0.49313349,\
+-	-6.27249705, -0.00069823, 0.00042791, 7.27179881, 0.99786656, 0.99887385, 0.49313355,\
+-	-6.27249743, -0.00069808, 0.00042781, 7.27179935, 0.99786705, 0.99887411, 0.49313361,\
+-	-6.27249780, -0.00069792, 0.00042772, 7.27179988, 0.99786753, 0.99887436, 0.49313365,\
+-	-6.27249818, -0.00069776, 0.00042762, 7.27180042, 0.99786801, 0.99887462, 0.49313373,\
+-	-6.27249856, -0.00069761, 0.00042753, 7.27180095, 0.99786849, 0.99887487, 0.49313378,\
+-	-6.27249894, -0.00069745, 0.00042743, 7.27180149, 0.99786897, 0.99887512, 0.49313382,\
+-	-6.27249931, -0.00069729, 0.00042733, 7.27180202, 0.99786945, 0.99887538, 0.49313387,\
+-	-6.27249969, -0.00069713, 0.00042724, 7.27180256, 0.99786993, 0.99887563, 0.49313395,\
+-	-6.27250007, -0.00069698, 0.00042714, 7.27180309, 0.99787041, 0.99887588, 0.49313401,\
+-	-6.27250045, -0.00069682, 0.00042704, 7.27180363, 0.99787089, 0.99887614, 0.49313405,\
+-	-6.27250082, -0.00069666, 0.00042695, 7.27180416, 0.99787137, 0.99887639, 0.49313411,\
+-	-6.27250120, -0.00069651, 0.00042685, 7.27180469, 0.99787185, 0.99887664, 0.49313417,\
+-	-6.27250158, -0.00069635, 0.00042676, 7.27180523, 0.99787233, 0.99887689, 0.49313425,\
+-	-6.27250195, -0.00069619, 0.00042666, 7.27180576, 0.99787281, 0.99887715, 0.49313428,\
+-	-6.27250233, -0.00069604, 0.00042656, 7.27180629, 0.99787328, 0.99887740, 0.49313433,\
+-	-6.27250270, -0.00069588, 0.00042647, 7.27180682, 0.99787376, 0.99887765, 0.49313436,\
+-	-6.27250308, -0.00069572, 0.00042637, 7.27180736, 0.99787424, 0.99887790, 0.49313447,\
+-	-6.27250345, -0.00069557, 0.00042628, 7.27180789, 0.99787472, 0.99887816, 0.49313453,\
+-	-6.27250383, -0.00069541, 0.00042618, 7.27180842, 0.99787520, 0.99887841, 0.49313456,\
+-	-6.27250420, -0.00069525, 0.00042608, 7.27180895, 0.99787567, 0.99887866, 0.49313463,\
+-	-6.27250458, -0.00069510, 0.00042599, 7.27180948, 0.99787615, 0.99887891, 0.49313466,\
+-	-6.27250495, -0.00069494, 0.00042589, 7.27181001, 0.99787663, 0.99887916, 0.49313471,\
+-	-6.27250533, -0.00069479, 0.00042580, 7.27181054, 0.99787711, 0.99887942, 0.49313478,\
+-	-6.27250570, -0.00069463, 0.00042570, 7.27181107, 0.99787758, 0.99887967, 0.49313484,\
+-	-6.27250608, -0.00069447, 0.00042561, 7.27181160, 0.99787806, 0.99887992, 0.49313489,\
+-	-6.27250645, -0.00069432, 0.00042551, 7.27181213, 0.99787854, 0.99888017, 0.49313499,\
+-	-6.27250683, -0.00069416, 0.00042541, 7.27181266, 0.99787901, 0.99888042, 0.49313500,\
+-	-6.27250720, -0.00069401, 0.00042532, 7.27181319, 0.99787949, 0.99888067, 0.49313506,\
+-	-6.27250757, -0.00069385, 0.00042522, 7.27181372, 0.99787996, 0.99888092, 0.49313510,\
+-	-6.27250795, -0.00069370, 0.00042513, 7.27181425, 0.99788044, 0.99888117, 0.49313518,\
+-	-6.27250832, -0.00069354, 0.00042503, 7.27181478, 0.99788091, 0.99888143, 0.49313523,\
+-	-6.27250869, -0.00069339, 0.00042494, 7.27181531, 0.99788139, 0.99888168, 0.49313528,\
+-	-6.27250906, -0.00069323, 0.00042484, 7.27181583, 0.99788186, 0.99888193, 0.49313532,\
+-	-6.27250944, -0.00069308, 0.00042475, 7.27181636, 0.99788234, 0.99888218, 0.49313537,\
+-	-6.27250981, -0.00069292, 0.00042465, 7.27181689, 0.99788281, 0.99888243, 0.49313545,\
+-	-6.27251018, -0.00069277, 0.00042456, 7.27181742, 0.99788329, 0.99888268, 0.49313551,\
+-	-6.27251055, -0.00069261, 0.00042446, 7.27181794, 0.99788376, 0.99888293, 0.49313557,\
+-	-6.27251093, -0.00069246, 0.00042437, 7.27181847, 0.99788423, 0.99888318, 0.49313560,\
+-	-6.27251130, -0.00069230, 0.00042427, 7.27181900, 0.99788471, 0.99888343, 0.49313566,\
+-	-6.27251167, -0.00069215, 0.00042418, 7.27181952, 0.99788518, 0.99888368, 0.49313574,\
+-	-6.27251204, -0.00069199, 0.00042408, 7.27182005, 0.99788565, 0.99888393, 0.49313579,\
+-	-6.27251241, -0.00069184, 0.00042399, 7.27182058, 0.99788613, 0.99888418, 0.49313583,\
+-	-6.27251278, -0.00069168, 0.00042389, 7.27182110, 0.99788660, 0.99888443, 0.49313587,\
+-	-6.27251315, -0.00069153, 0.00042380, 7.27182163, 0.99788707, 0.99888468, 0.49313593,\
+-	-6.27251353, -0.00069137, 0.00042370, 7.27182215, 0.99788754, 0.99888492, 0.49313600,\
+-	-6.27251390, -0.00069122, 0.00042361, 7.27182268, 0.99788801, 0.99888517, 0.49313604,\
+-	-6.27251427, -0.00069106, 0.00042351, 7.27182320, 0.99788849, 0.99888542, 0.49313613,\
+-	-6.27251464, -0.00069091, 0.00042342, 7.27182373, 0.99788896, 0.99888567, 0.49313616,\
+-	-6.27251501, -0.00069076, 0.00042332, 7.27182425, 0.99788943, 0.99888592, 0.49313621,\
+-	-6.27251538, -0.00069060, 0.00042323, 7.27182478, 0.99788990, 0.99888617, 0.49313628,\
+-	-6.27251575, -0.00069045, 0.00042314, 7.27182530, 0.99789037, 0.99888642, 0.49313634,\
+-	-6.27251612, -0.00069029, 0.00042304, 7.27182582, 0.99789084, 0.99888667, 0.49313637,\
+-	-6.27251649, -0.00069014, 0.00042295, 7.27182635, 0.99789131, 0.99888691, 0.49313644,\
+-	-6.27251685, -0.00068999, 0.00042285, 7.27182687, 0.99789178, 0.99888716, 0.49313651,\
+-	-6.27251722, -0.00068983, 0.00042276, 7.27182739, 0.99789225, 0.99888741, 0.49313656,\
+-	-6.27251759, -0.00068968, 0.00042266, 7.27182791, 0.99789272, 0.99888766, 0.49313664,\
+-	-6.27251796, -0.00068952, 0.00042257, 7.27182844, 0.99789319, 0.99888791, 0.49313666,\
+-	-6.27251833, -0.00068937, 0.00042248, 7.27182896, 0.99789366, 0.99888815, 0.49313670,\
+-	-6.27251870, -0.00068922, 0.00042238, 7.27182948, 0.99789413, 0.99888840, 0.49313677,\
+-	-6.27251907, -0.00068906, 0.00042229, 7.27183000, 0.99789460, 0.99888865, 0.49313683,\
+-	-6.27251943, -0.00068891, 0.00042219, 7.27183052, 0.99789507, 0.99888890, 0.49313687,\
+-	-6.27251980, -0.00068876, 0.00042210, 7.27183104, 0.99789554, 0.99888914, 0.49313691,\
+-	-6.27252017, -0.00068860, 0.00042200, 7.27183157, 0.99789601, 0.99888939, 0.49313700,\
+-	-6.27252054, -0.00068845, 0.00042191, 7.27183209, 0.99789647, 0.99888964, 0.49313706,\
+-	-6.27252091, -0.00068830, 0.00042182, 7.27183261, 0.99789694, 0.99888988, 0.49313707,\
+-	-6.27252127, -0.00068815, 0.00042172, 7.27183313, 0.99789741, 0.99889013, 0.49313711,\
+-	-6.27252164, -0.00068799, 0.00042163, 7.27183365, 0.99789788, 0.99889038, 0.49313720,\
+-	-6.27252201, -0.00068784, 0.00042154, 7.27183417, 0.99789835, 0.99889062, 0.49313727,\
+-	-6.27252237, -0.00068769, 0.00042144, 7.27183469, 0.99789881, 0.99889087, 0.49313733,\
+-	-6.27252274, -0.00068753, 0.00042135, 7.27183521, 0.99789928, 0.99889112, 0.49313737,\
+-	-6.27252311, -0.00068738, 0.00042125, 7.27183572, 0.99789975, 0.99889136, 0.49313744,\
+-	-6.27252347, -0.00068723, 0.00042116, 7.27183624, 0.99790021, 0.99889161, 0.49313749,\
+-	-6.27252384, -0.00068708, 0.00042107, 7.27183676, 0.99790068, 0.99889186, 0.49313754,\
+-	-6.27252420, -0.00068692, 0.00042097, 7.27183728, 0.99790115, 0.99889210, 0.49313760,\
+-	-6.27252457, -0.00068677, 0.00042088, 7.27183780, 0.99790161, 0.99889235, 0.49313767,\
+-	-6.27252494, -0.00068662, 0.00042079, 7.27183832, 0.99790208, 0.99889259, 0.49313771,\
+-	-6.27252530, -0.00068647, 0.00042069, 7.27183883, 0.99790254, 0.99889284, 0.49313775,\
+-	-6.27252567, -0.00068631, 0.00042060, 7.27183935, 0.99790301, 0.99889309, 0.49313782,\
+-	-6.27252603, -0.00068616, 0.00042051, 7.27183987, 0.99790347, 0.99889333, 0.49313786,\
+-	-6.27252640, -0.00068601, 0.00042041, 7.27184039, 0.99790394, 0.99889358, 0.49313791,\
+-	-6.27252676, -0.00068586, 0.00042032, 7.27184090, 0.99790440, 0.99889382, 0.49313797,\
+-	-6.27252712, -0.00068571, 0.00042023, 7.27184142, 0.99790487, 0.99889407, 0.49313801,\
+-	-6.27252749, -0.00068555, 0.00042013, 7.27184193, 0.99790533, 0.99889431, 0.49313810,\
+-	-6.27252785, -0.00068540, 0.00042004, 7.27184245, 0.99790579, 0.99889456, 0.49313815,\
+-	-6.27252822, -0.00068525, 0.00041995, 7.27184297, 0.99790626, 0.99889480, 0.49313818,\
+-	-6.27252858, -0.00068510, 0.00041985, 7.27184348, 0.99790672, 0.99889505, 0.49313824,\
+-	-6.27252895, -0.00068495, 0.00041976, 7.27184400, 0.99790719, 0.99889529, 0.49313828,\
+-	-6.27252931, -0.00068480, 0.00041967, 7.27184451, 0.99790765, 0.99889553, 0.49313835,\
+-	-6.27252967, -0.00068464, 0.00041958, 7.27184503, 0.99790811, 0.99889578, 0.49313842,\
+-	-6.27253004, -0.00068449, 0.00041948, 7.27184554, 0.99790857, 0.99889602, 0.49313845,\
+-	-6.27253040, -0.00068434, 0.00041939, 7.27184606, 0.99790904, 0.99889627, 0.49313853,\
+-	-6.27253076, -0.00068419, 0.00041930, 7.27184657, 0.99790950, 0.99889651, 0.49313854,\
+-	-6.27253112, -0.00068404, 0.00041920, 7.27184708, 0.99790996, 0.99889676, 0.49313861,\
+-	-6.27253149, -0.00068389, 0.00041911, 7.27184760, 0.99791042, 0.99889700, 0.49313867,\
+-	-6.27253185, -0.00068374, 0.00041902, 7.27184811, 0.99791089, 0.99889724, 0.49313874,\
+-	-6.27253221, -0.00068359, 0.00041893, 7.27184862, 0.99791135, 0.99889749, 0.49313876,\
+-	-6.27253257, -0.00068344, 0.00041883, 7.27184914, 0.99791181, 0.99889773, 0.49313881,\
+-	-6.27253293, -0.00068328, 0.00041874, 7.27184965, 0.99791227, 0.99889797, 0.49313886,\
+-	-6.27253330, -0.00068313, 0.00041865, 7.27185016, 0.99791273, 0.99889822, 0.49313893,\
+-	-6.27253366, -0.00068298, 0.00041856, 7.27185068, 0.99791319, 0.99889846, 0.49313897,\
+-	-6.27253402, -0.00068283, 0.00041846, 7.27185119, 0.99791365, 0.99889870, 0.49313904,\
+-	-6.27253438, -0.00068268, 0.00041837, 7.27185170, 0.99791411, 0.99889895, 0.49313909,\
+-	-6.27253474, -0.00068253, 0.00041828, 7.27185221, 0.99791457, 0.99889919, 0.49313915,\
+-	-6.27253510, -0.00068238, 0.00041819, 7.27185272, 0.99791503, 0.99889943, 0.49313920,\
+-	-6.27253546, -0.00068223, 0.00041810, 7.27185323, 0.99791549, 0.99889967, 0.49313924,\
+-	-6.27253582, -0.00068208, 0.00041800, 7.27185374, 0.99791595, 0.99889992, 0.49313932,\
+-	-6.27253618, -0.00068193, 0.00041791, 7.27185425, 0.99791641, 0.99890016, 0.49313937,\
+-	-6.27253654, -0.00068178, 0.00041782, 7.27185477, 0.99791687, 0.99890040, 0.49313944,\
+-	-6.27253690, -0.00068163, 0.00041773, 7.27185528, 0.99791733, 0.99890064, 0.49313947,\
+-	-6.27253726, -0.00068148, 0.00041763, 7.27185579, 0.99791779, 0.99890089, 0.49313953,\
+-	-6.27253762, -0.00068133, 0.00041754, 7.27185630, 0.99791825, 0.99890113, 0.49313960,\
+-	-6.27253798, -0.00068118, 0.00041745, 7.27185680, 0.99791871, 0.99890137, 0.49313964,\
+-	-6.27253834, -0.00068103, 0.00041736, 7.27185731, 0.99791916, 0.99890161, 0.49313969,\
+-	-6.27253870, -0.00068088, 0.00041727, 7.27185782, 0.99791962, 0.99890185, 0.49313973,\
+-	-6.27253906, -0.00068073, 0.00041718, 7.27185833, 0.99792008, 0.99890209, 0.49313978,\
+-	-6.27253942, -0.00068058, 0.00041708, 7.27185884, 0.99792054, 0.99890234, 0.49313983,\
+-	-6.27253978, -0.00068043, 0.00041699, 7.27185935, 0.99792099, 0.99890258, 0.49313991,\
+-	-6.27254014, -0.00068028, 0.00041690, 7.27185986, 0.99792145, 0.99890282, 0.49313998,\
+-	-6.27254050, -0.00068013, 0.00041681, 7.27186036, 0.99792191, 0.99890306, 0.49314002,\
+-	-6.27254086, -0.00067998, 0.00041672, 7.27186087, 0.99792237, 0.99890330, 0.49314008,\
+-	-6.27254121, -0.00067983, 0.00041662, 7.27186138, 0.99792282, 0.99890354, 0.49314012,\
+-	-6.27254157, -0.00067968, 0.00041653, 7.27186189, 0.99792328, 0.99890378, 0.49314018,\
+-	-6.27254193, -0.00067953, 0.00041644, 7.27186239, 0.99792373, 0.99890402, 0.49314019,\
+-	-6.27254229, -0.00067939, 0.00041635, 7.27186290, 0.99792419, 0.99890426, 0.49314025,\
+-	-6.27254264, -0.00067924, 0.00041626, 7.27186341, 0.99792465, 0.99890450, 0.49314034,\
+-	-6.27254300, -0.00067909, 0.00041617, 7.27186391, 0.99792510, 0.99890474, 0.49314040,\
+-	-6.27254336, -0.00067894, 0.00041608, 7.27186442, 0.99792556, 0.99890499, 0.49314044,\
+-	-6.27254372, -0.00067879, 0.00041598, 7.27186493, 0.99792601, 0.99890523, 0.49314049,\
+-	-6.27254407, -0.00067864, 0.00041589, 7.27186543, 0.99792647, 0.99890547, 0.49314054,\
+-	-6.27254443, -0.00067849, 0.00041580, 7.27186594, 0.99792692, 0.99890571, 0.49314058,\
+-	-6.27254479, -0.00067834, 0.00041571, 7.27186644, 0.99792738, 0.99890595, 0.49314062,\
+-	-6.27254514, -0.00067819, 0.00041562, 7.27186695, 0.99792783, 0.99890618, 0.49314070,\
+-	-6.27254550, -0.00067805, 0.00041553, 7.27186745, 0.99792828, 0.99890642, 0.49314075,\
+-	-6.27254585, -0.00067790, 0.00041544, 7.27186796, 0.99792874, 0.99890666, 0.49314079,\
+-	-6.27254621, -0.00067775, 0.00041535, 7.27186846, 0.99792919, 0.99890690, 0.49314085,\
+-	-6.27254657, -0.00067760, 0.00041526, 7.27186897, 0.99792965, 0.99890714, 0.49314090,\
+-	-6.27254692, -0.00067745, 0.00041516, 7.27186947, 0.99793010, 0.99890738, 0.49314094,\
+-	-6.27254728, -0.00067730, 0.00041507, 7.27186997, 0.99793055, 0.99890762, 0.49314100,\
+-	-6.27254763, -0.00067716, 0.00041498, 7.27187048, 0.99793101, 0.99890786, 0.49314106,\
+-	-6.27254799, -0.00067701, 0.00041489, 7.27187098, 0.99793146, 0.99890810, 0.49314111,\
+-	-6.27254834, -0.00067686, 0.00041480, 7.27187148, 0.99793191, 0.99890834, 0.49314118,\
+-	-6.27254870, -0.00067671, 0.00041471, 7.27187199, 0.99793236, 0.99890858, 0.49314123,\
+-	-6.27254905, -0.00067656, 0.00041462, 7.27187249, 0.99793282, 0.99890882, 0.49314127,\
+-	-6.27254941, -0.00067642, 0.00041453, 7.27187299, 0.99793327, 0.99890905, 0.49314132,\
+-	-6.27254976, -0.00067627, 0.00041444, 7.27187349, 0.99793372, 0.99890929, 0.49314138,\
+-	-6.27255012, -0.00067612, 0.00041435, 7.27187399, 0.99793417, 0.99890953, 0.49314144,\
+-	-6.27255047, -0.00067597, 0.00041426, 7.27187450, 0.99793462, 0.99890977, 0.49314149,\
+-	-6.27255082, -0.00067583, 0.00041417, 7.27187500, 0.99793507, 0.99891001, 0.49314155,\
+-	-6.27255118, -0.00067568, 0.00041408, 7.27187550, 0.99793552, 0.99891025, 0.49314159,\
+-	-6.27255153, -0.00067553, 0.00041399, 7.27187600, 0.99793597, 0.99891048, 0.49314164,\
+-	-6.27255188, -0.00067538, 0.00041390, 7.27187650, 0.99793643, 0.99891072, 0.49314169,\
+-	-6.27255224, -0.00067524, 0.00041381, 7.27187700, 0.99793688, 0.99891096, 0.49314176,\
+-	-6.27255259, -0.00067509, 0.00041372, 7.27187750, 0.99793733, 0.99891120, 0.49314181,\
+-	-6.27255294, -0.00067494, 0.00041362, 7.27187800, 0.99793778, 0.99891143, 0.49314185,\
+-	-6.27255330, -0.00067479, 0.00041353, 7.27187850, 0.99793823, 0.99891167, 0.49314190,\
+-	-6.27255365, -0.00067465, 0.00041344, 7.27187900, 0.99793868, 0.99891191, 0.49314197,\
+-	-6.27255400, -0.00067450, 0.00041335, 7.27187950, 0.99793912, 0.99891215, 0.49314200,\
+-	-6.27255435, -0.00067435, 0.00041326, 7.27188000, 0.99793957, 0.99891238, 0.49314208,\
+-	-6.27255470, -0.00067421, 0.00041317, 7.27188050, 0.99794002, 0.99891262, 0.49314213,\
+-	-6.27255506, -0.00067406, 0.00041308, 7.27188100, 0.99794047, 0.99891286, 0.49314217,\
+-	-6.27255541, -0.00067391, 0.00041299, 7.27188150, 0.99794092, 0.99891309, 0.49314220,\
+-	-6.27255576, -0.00067377, 0.00041290, 7.27188199, 0.99794137, 0.99891333, 0.49314225,\
+-	-6.27255611, -0.00067362, 0.00041281, 7.27188249, 0.99794182, 0.99891357, 0.49314232,\
+-	-6.27255646, -0.00067347, 0.00041272, 7.27188299, 0.99794227, 0.99891380, 0.49314238,\
+-	-6.27255681, -0.00067333, 0.00041263, 7.27188349, 0.99794271, 0.99891404, 0.49314241,\
+-	-6.27255717, -0.00067318, 0.00041254, 7.27188398, 0.99794316, 0.99891428, 0.49314247,\
+-	-6.27255752, -0.00067303, 0.00041245, 7.27188448, 0.99794361, 0.99891451, 0.49314253,\
+-	-6.27255787, -0.00067289, 0.00041236, 7.27188498, 0.99794406, 0.99891475, 0.49314258,\
+-	-6.27255822, -0.00067274, 0.00041228, 7.27188548, 0.99794450, 0.99891498, 0.49314263,\
+-	-6.27255857, -0.00067260, 0.00041219, 7.27188597, 0.99794495, 0.99891522, 0.49314268,\
+-	-6.27255892, -0.00067245, 0.00041210, 7.27188647, 0.99794540, 0.99891545, 0.49314274,\
+-	-6.27255927, -0.00067230, 0.00041201, 7.27188696, 0.99794584, 0.99891569, 0.49314280,\
+-	-6.27255962, -0.00067216, 0.00041192, 7.27188746, 0.99794629, 0.99891593, 0.49314284,\
+-	-6.27255997, -0.00067201, 0.00041183, 7.27188796, 0.99794673, 0.99891616, 0.49314287,\
+-	-6.27256032, -0.00067187, 0.00041174, 7.27188845, 0.99794718, 0.99891640, 0.49314297,\
+-	-6.27256067, -0.00067172, 0.00041165, 7.27188895, 0.99794763, 0.99891663, 0.49314303,\
+-	-6.27256102, -0.00067157, 0.00041156, 7.27188944, 0.99794807, 0.99891687, 0.49314307,\
+-	-6.27256137, -0.00067143, 0.00041147, 7.27188994, 0.99794852, 0.99891710, 0.49314312,\
+-	-6.27256171, -0.00067128, 0.00041138, 7.27189043, 0.99794896, 0.99891734, 0.49314315,\
+-	-6.27256206, -0.00067114, 0.00041129, 7.27189093, 0.99794941, 0.99891757, 0.49314322,\
+-	-6.27256241, -0.00067099, 0.00041120, 7.27189142, 0.99794985, 0.99891781, 0.49314325,\
+-	-6.27256276, -0.00067085, 0.00041111, 7.27189191, 0.99795030, 0.99891804, 0.49314333,\
+-	-6.27256311, -0.00067070, 0.00041102, 7.27189241, 0.99795074, 0.99891828, 0.49314337,\
+-	-6.27256346, -0.00067056, 0.00041093, 7.27189290, 0.99795119, 0.99891851, 0.49314340,\
+-	-6.27256381, -0.00067041, 0.00041085, 7.27189339, 0.99795163, 0.99891874, 0.49314348,\
+-	-6.27256415, -0.00067027, 0.00041076, 7.27189389, 0.99795207, 0.99891898, 0.49314353,\
+-	-6.27256450, -0.00067012, 0.00041067, 7.27189438, 0.99795252, 0.99891921, 0.49314358,\
+-	-6.27256485, -0.00066998, 0.00041058, 7.27189487, 0.99795296, 0.99891945, 0.49314365,\
+-	-6.27256520, -0.00066983, 0.00041049, 7.27189537, 0.99795340, 0.99891968, 0.49314368,\
+-	-6.27256554, -0.00066969, 0.00041040, 7.27189586, 0.99795385, 0.99891991, 0.49314376,\
+-	-6.27256589, -0.00066954, 0.00041031, 7.27189635, 0.99795429, 0.99892015, 0.49314379,\
+-	-6.27256624, -0.00066940, 0.00041022, 7.27189684, 0.99795473, 0.99892038, 0.49314383,\
+-	-6.27256658, -0.00066925, 0.00041013, 7.27189733, 0.99795517, 0.99892061, 0.49314389,\
+-	-6.27256693, -0.00066911, 0.00041005, 7.27189782, 0.99795562, 0.99892085, 0.49314395,\
+-	-6.27256728, -0.00066896, 0.00040996, 7.27189832, 0.99795606, 0.99892108, 0.49314398,\
+-	-6.27256762, -0.00066882, 0.00040987, 7.27189881, 0.99795650, 0.99892131, 0.49314403,\
+-	-6.27256797, -0.00066867, 0.00040978, 7.27189930, 0.99795694, 0.99892155, 0.49314409,\
+-	-6.27256832, -0.00066853, 0.00040969, 7.27189979, 0.99795738, 0.99892178, 0.49314415,\
+-	-6.27256866, -0.00066838, 0.00040960, 7.27190028, 0.99795782, 0.99892201, 0.49314419,\
+-	-6.27256901, -0.00066824, 0.00040951, 7.27190077, 0.99795827, 0.99892225, 0.49314425,\
+-	-6.27256935, -0.00066810, 0.00040943, 7.27190126, 0.99795871, 0.99892248, 0.49314428,\
+-	-6.27256970, -0.00066795, 0.00040934, 7.27190175, 0.99795915, 0.99892271, 0.49314436,\
+-	-6.27257004, -0.00066781, 0.00040925, 7.27190224, 0.99795959, 0.99892294, 0.49314439,\
+-	-6.27257039, -0.00066766, 0.00040916, 7.27190273, 0.99796003, 0.99892318, 0.49314446,\
+-	-6.27257073, -0.00066752, 0.00040907, 7.27190322, 0.99796047, 0.99892341, 0.49314452,\
+-	-6.27257108, -0.00066738, 0.00040898, 7.27190370, 0.99796091, 0.99892364, 0.49314453,\
+-	-6.27257142, -0.00066723, 0.00040890, 7.27190419, 0.99796135, 0.99892387, 0.49314460,\
+-	-6.27257177, -0.00066709, 0.00040881, 7.27190468, 0.99796179, 0.99892410, 0.49314466,\
+-	-6.27257211, -0.00066694, 0.00040872, 7.27190517, 0.99796223, 0.99892434, 0.49314470,\
+-	-6.27257246, -0.00066680, 0.00040863, 7.27190566, 0.99796267, 0.99892457, 0.49314476,\
+-	-6.27257280, -0.00066666, 0.00040854, 7.27190615, 0.99796311, 0.99892480, 0.49314482,\
+-	-6.27257315, -0.00066651, 0.00040846, 7.27190663, 0.99796354, 0.99892503, 0.49314486,\
+-	-6.27257349, -0.00066637, 0.00040837, 7.27190712, 0.99796398, 0.99892526, 0.49314490,\
+-	-6.27257383, -0.00066623, 0.00040828, 7.27190761, 0.99796442, 0.99892549, 0.49314498,\
+-	-6.27257418, -0.00066608, 0.00040819, 7.27190809, 0.99796486, 0.99892573, 0.49314501,\
+-	-6.27257452, -0.00066594, 0.00040810, 7.27190858, 0.99796530, 0.99892596, 0.49314505,\
+-	-6.27257486, -0.00066580, 0.00040802, 7.27190907, 0.99796574, 0.99892619, 0.49314512,\
+-	-6.27257521, -0.00066565, 0.00040793, 7.27190955, 0.99796617, 0.99892642, 0.49314515,\
+-	-6.27257555, -0.00066551, 0.00040784, 7.27191004, 0.99796661, 0.99892665, 0.49314521,\
+-	-6.27257589, -0.00066537, 0.00040775, 7.27191053, 0.99796705, 0.99892688, 0.49314528,\
+-	-6.27257623, -0.00066522, 0.00040766, 7.27191101, 0.99796748, 0.99892711, 0.49314532,\
+-	-6.27257658, -0.00066508, 0.00040758, 7.27191150, 0.99796792, 0.99892734, 0.49314537,\
+-	-6.27257692, -0.00066494, 0.00040749, 7.27191198, 0.99796836, 0.99892757, 0.49314541,\
+-	-6.27257726, -0.00066480, 0.00040740, 7.27191247, 0.99796880, 0.99892780, 0.49314547,\
+-	-6.27257760, -0.00066465, 0.00040731, 7.27191295, 0.99796923, 0.99892803, 0.49314555,\
+-	-6.27257795, -0.00066451, 0.00040723, 7.27191344, 0.99796967, 0.99892826, 0.49314558,\
+-	-6.27257829, -0.00066437, 0.00040714, 7.27191392, 0.99797010, 0.99892849, 0.49314564,\
+-	-6.27257863, -0.00066422, 0.00040705, 7.27191440, 0.99797054, 0.99892872, 0.49314568,\
+-	-6.27257897, -0.00066408, 0.00040696, 7.27191489, 0.99797098, 0.99892895, 0.49314573,\
+-	-6.27257931, -0.00066394, 0.00040688, 7.27191537, 0.99797141, 0.99892918, 0.49314579,\
+-	-6.27257965, -0.00066380, 0.00040679, 7.27191586, 0.99797185, 0.99892941, 0.49314582,\
+-	-6.27257999, -0.00066366, 0.00040670, 7.27191634, 0.99797228, 0.99892964, 0.49314588,\
+-	-6.27258033, -0.00066351, 0.00040662, 7.27191682, 0.99797272, 0.99892987, 0.49314593,\
+-	-6.27258068, -0.00066337, 0.00040653, 7.27191730, 0.99797315, 0.99893010, 0.49314598,\
+-	-6.27258102, -0.00066323, 0.00040644, 7.27191779, 0.99797358, 0.99893033, 0.49314603,\
+-	-6.27258136, -0.00066309, 0.00040635, 7.27191827, 0.99797402, 0.99893056, 0.49314608,\
+-	-6.27258170, -0.00066294, 0.00040627, 7.27191875, 0.99797445, 0.99893079, 0.49314611,\
+-	-6.27258204, -0.00066280, 0.00040618, 7.27191923, 0.99797489, 0.99893102, 0.49314621,\
+-	-6.27258238, -0.00066266, 0.00040609, 7.27191972, 0.99797532, 0.99893125, 0.49314623,\
+-	-6.27258272, -0.00066252, 0.00040601, 7.27192020, 0.99797575, 0.99893148, 0.49314626,\
+-	-6.27258306, -0.00066238, 0.00040592, 7.27192068, 0.99797619, 0.99893170, 0.49314635,\
+-	-6.27258340, -0.00066224, 0.00040583, 7.27192116, 0.99797662, 0.99893193, 0.49314639,\
+-	-6.27258373, -0.00066209, 0.00040574, 7.27192164, 0.99797705, 0.99893216, 0.49314644,\
+-	-6.27258407, -0.00066195, 0.00040566, 7.27192212, 0.99797749, 0.99893239, 0.49314649,\
+-	-6.27258441, -0.00066181, 0.00040557, 7.27192260, 0.99797792, 0.99893262, 0.49314651,\
+-	-6.27258475, -0.00066167, 0.00040548, 7.27192308, 0.99797835, 0.99893285, 0.49314660,\
+-	-6.27258509, -0.00066153, 0.00040540, 7.27192356, 0.99797878, 0.99893307, 0.49314663,\
+-	-6.27258543, -0.00066139, 0.00040531, 7.27192404, 0.99797922, 0.99893330, 0.49314669,\
+-	-6.27258577, -0.00066125, 0.00040522, 7.27192452, 0.99797965, 0.99893353, 0.49314673,\
+-	-6.27258611, -0.00066110, 0.00040514, 7.27192500, 0.99798008, 0.99893376, 0.49314679,\
+-	-6.27258644, -0.00066096, 0.00040505, 7.27192548, 0.99798051, 0.99893399, 0.49314686,\
+-	-6.27258678, -0.00066082, 0.00040496, 7.27192596, 0.99798094, 0.99893421, 0.49314689,\
+-	-6.27258712, -0.00066068, 0.00040488, 7.27192644, 0.99798137, 0.99893444, 0.49314694,\
+-	-6.27258746, -0.00066054, 0.00040479, 7.27192692, 0.99798181, 0.99893467, 0.49314700,\
+-	-6.27258780, -0.00066040, 0.00040471, 7.27192740, 0.99798224, 0.99893490, 0.49314705,\
+-	-6.27258813, -0.00066026, 0.00040462, 7.27192788, 0.99798267, 0.99893512, 0.49314708,\
+-	-6.27258847, -0.00066012, 0.00040453, 7.27192835, 0.99798310, 0.99893535, 0.49314712,\
+-	-6.27258881, -0.00065998, 0.00040445, 7.27192883, 0.99798353, 0.99893558, 0.49314719,\
+-	-6.27258914, -0.00065984, 0.00040436, 7.27192931, 0.99798396, 0.99893580, 0.49314727,\
+-	-6.27258948, -0.00065970, 0.00040427, 7.27192979, 0.99798439, 0.99893603, 0.49314727,\
+-	-6.27258982, -0.00065955, 0.00040419, 7.27193026, 0.99798482, 0.99893626, 0.49314731,\
+-	-6.27259015, -0.00065941, 0.00040410, 7.27193074, 0.99798525, 0.99893648, 0.49314740,\
+-	-6.27259049, -0.00065927, 0.00040401, 7.27193122, 0.99798568, 0.99893671, 0.49314745,\
+-	-6.27259083, -0.00065913, 0.00040393, 7.27193169, 0.99798610, 0.99893694, 0.49314746,\
+-	-6.27259116, -0.00065899, 0.00040384, 7.27193217, 0.99798653, 0.99893716, 0.49314754,\
+-	-6.27259150, -0.00065885, 0.00040376, 7.27193265, 0.99798696, 0.99893739, 0.49314761,\
+-	-6.27259184, -0.00065871, 0.00040367, 7.27193312, 0.99798739, 0.99893762, 0.49314766,\
+-	-6.27259217, -0.00065857, 0.00040358, 7.27193360, 0.99798782, 0.99893784, 0.49314769,\
+-	-6.27259251, -0.00065843, 0.00040350, 7.27193407, 0.99798825, 0.99893807, 0.49314775,\
+-	-6.27259284, -0.00065829, 0.00040341, 7.27193455, 0.99798868, 0.99893829, 0.49314778,\
+-	-6.27259318, -0.00065815, 0.00040333, 7.27193502, 0.99798910, 0.99893852, 0.49314784,\
+-	-6.27259351, -0.00065801, 0.00040324, 7.27193550, 0.99798953, 0.99893875, 0.49314788,\
+-	-6.27259385, -0.00065787, 0.00040316, 7.27193597, 0.99798996, 0.99893897, 0.49314794,\
+-	-6.27259418, -0.00065773, 0.00040307, 7.27193645, 0.99799039, 0.99893920, 0.49314799,\
+-	-6.27259452, -0.00065759, 0.00040298, 7.27193692, 0.99799081, 0.99893942, 0.49314805,\
+-	-6.27259485, -0.00065745, 0.00040290, 7.27193740, 0.99799124, 0.99893965, 0.49314807,\
+-	-6.27259519, -0.00065731, 0.00040281, 7.27193787, 0.99799167, 0.99893987, 0.49314813,\
+-	-6.27259552, -0.00065717, 0.00040273, 7.27193835, 0.99799209, 0.99894010, 0.49314822,\
+-	-6.27259585, -0.00065703, 0.00040264, 7.27193882, 0.99799252, 0.99894032, 0.49314825,\
+-	-6.27259619, -0.00065690, 0.00040256, 7.27193929, 0.99799295, 0.99894055, 0.49314830,\
+-	-6.27259652, -0.00065676, 0.00040247, 7.27193977, 0.99799337, 0.99894077, 0.49314836,\
+-	-6.27259686, -0.00065662, 0.00040239, 7.27194024, 0.99799380, 0.99894100, 0.49314839,\
+-	-6.27259719, -0.00065648, 0.00040230, 7.27194071, 0.99799422, 0.99894122, 0.49314844,\
+-	-6.27259752, -0.00065634, 0.00040221, 7.27194118, 0.99799465, 0.99894145, 0.49314848,\
+-	-6.27259786, -0.00065620, 0.00040213, 7.27194166, 0.99799507, 0.99894167, 0.49314852,\
+-	-6.27259819, -0.00065606, 0.00040204, 7.27194213, 0.99799550, 0.99894190, 0.49314858,\
+-	-6.27259852, -0.00065592, 0.00040196, 7.27194260, 0.99799593, 0.99894212, 0.49314864,\
+-	-6.27259885, -0.00065578, 0.00040187, 7.27194307, 0.99799635, 0.99894234, 0.49314867,\
+-	-6.27259919, -0.00065564, 0.00040179, 7.27194354, 0.99799677, 0.99894257, 0.49314872,\
+-	-6.27259952, -0.00065550, 0.00040170, 7.27194402, 0.99799720, 0.99894279, 0.49314880,\
+-	-6.27259985, -0.00065537, 0.00040162, 7.27194449, 0.99799762, 0.99894302, 0.49314880,\
+-	-6.27260018, -0.00065523, 0.00040153, 7.27194496, 0.99799805, 0.99894324, 0.49314888,\
+-	-6.27260052, -0.00065509, 0.00040145, 7.27194543, 0.99799847, 0.99894346, 0.49314897,\
+-	-6.27260085, -0.00065495, 0.00040136, 7.27194590, 0.99799889, 0.99894369, 0.49314899,\
+-	-6.27260118, -0.00065481, 0.00040128, 7.27194637, 0.99799932, 0.99894391, 0.49314902,\
+-	-6.27260151, -0.00065467, 0.00040119, 7.27194684, 0.99799974, 0.99894413, 0.49314908,\
+-	-6.27260184, -0.00065453, 0.00040111, 7.27194731, 0.99800016, 0.99894436, 0.49314911,\
+-	-6.27260217, -0.00065440, 0.00040102, 7.27194778, 0.99800059, 0.99894458, 0.49314920,\
+-	-6.27260251, -0.00065426, 0.00040094, 7.27194825, 0.99800101, 0.99894480, 0.49314922,\
+-	-6.27260284, -0.00065412, 0.00040085, 7.27194872, 0.99800143, 0.99894503, 0.49314928,\
+-	-6.27260317, -0.00065398, 0.00040077, 7.27194919, 0.99800186, 0.99894525, 0.49314931,\
+-	-6.27260350, -0.00065384, 0.00040068, 7.27194966, 0.99800228, 0.99894547, 0.49314937,\
+-	-6.27260383, -0.00065370, 0.00040060, 7.27195013, 0.99800270, 0.99894570, 0.49314942,\
+-	-6.27260416, -0.00065357, 0.00040051, 7.27195059, 0.99800312, 0.99894592, 0.49314947,\
+-	-6.27260449, -0.00065343, 0.00040043, 7.27195106, 0.99800354, 0.99894614, 0.49314952,\
+-	-6.27260482, -0.00065329, 0.00040035, 7.27195153, 0.99800397, 0.99894636, 0.49314960,\
+-	-6.27260515, -0.00065315, 0.00040026, 7.27195200, 0.99800439, 0.99894659, 0.49314963,\
+-	-6.27260548, -0.00065302, 0.00040018, 7.27195247, 0.99800481, 0.99894681, 0.49314965,\
+-	-6.27260581, -0.00065288, 0.00040009, 7.27195293, 0.99800523, 0.99894703, 0.49314972,\
+-	-6.27260614, -0.00065274, 0.00040001, 7.27195340, 0.99800565, 0.99894725, 0.49314975,\
+-	-6.27260647, -0.00065260, 0.00039992, 7.27195387, 0.99800607, 0.99894747, 0.49314983,\
+-	-6.27260680, -0.00065246, 0.00039984, 7.27195434, 0.99800649, 0.99894770, 0.49314987,\
+-	-6.27260713, -0.00065233, 0.00039975, 7.27195480, 0.99800691, 0.99894792, 0.49314994,\
+-	-6.27260746, -0.00065219, 0.00039967, 7.27195527, 0.99800733, 0.99894814, 0.49314996,\
+-	-6.27260779, -0.00065205, 0.00039959, 7.27195573, 0.99800775, 0.99894836, 0.49314998,\
+-	-6.27260812, -0.00065192, 0.00039950, 7.27195620, 0.99800817, 0.99894858, 0.49315004,\
+-	-6.27260844, -0.00065178, 0.00039942, 7.27195667, 0.99800859, 0.99894880, 0.49315011,\
+-	-6.27260877, -0.00065164, 0.00039933, 7.27195713, 0.99800901, 0.99894903, 0.49315016,\
+-	-6.27260910, -0.00065150, 0.00039925, 7.27195760, 0.99800943, 0.99894925, 0.49315020,\
+-	-6.27260943, -0.00065137, 0.00039917, 7.27195806, 0.99800985, 0.99894947, 0.49315028,\
+-	-6.27260976, -0.00065123, 0.00039908, 7.27195853, 0.99801027, 0.99894969, 0.49315027,\
+-	-6.27261009, -0.00065109, 0.00039900, 7.27195899, 0.99801069, 0.99894991, 0.49315035,\
+-	-6.27261041, -0.00065096, 0.00039891, 7.27195946, 0.99801110, 0.99895013, 0.49315041,\
+-	-6.27261074, -0.00065082, 0.00039883, 7.27195992, 0.99801152, 0.99895035, 0.49315047,\
+-	-6.27261107, -0.00065068, 0.00039875, 7.27196039, 0.99801194, 0.99895057, 0.49315053,\
+-	-6.27261140, -0.00065055, 0.00039866, 7.27196085, 0.99801236, 0.99895079, 0.49315055,\
+-	-6.27261172, -0.00065041, 0.00039858, 7.27196132, 0.99801278, 0.99895101, 0.49315059,\
+-	-6.27261205, -0.00065027, 0.00039849, 7.27196178, 0.99801320, 0.99895123, 0.49315063,\
+-	-6.27261238, -0.00065014, 0.00039841, 7.27196224, 0.99801361, 0.99895145, 0.49315070,\
+-	-6.27261271, -0.00065000, 0.00039833, 7.27196271, 0.99801403, 0.99895167, 0.49315074,\
+-	-6.27261303, -0.00064986, 0.00039824, 7.27196317, 0.99801445, 0.99895189, 0.49315081,\
+-	-6.27261336, -0.00064973, 0.00039816, 7.27196363, 0.99801486, 0.99895212, 0.49315083,\
+-	-6.27261369, -0.00064959, 0.00039808, 7.27196410, 0.99801528, 0.99895233, 0.49315088,\
+-	-6.27261401, -0.00064945, 0.00039799, 7.27196456, 0.99801570, 0.99895255, 0.49315095,\
+-	-6.27261434, -0.00064932, 0.00039791, 7.27196502, 0.99801611, 0.99895277, 0.49315102,\
+-	-6.27261466, -0.00064918, 0.00039782, 7.27196548, 0.99801653, 0.99895299, 0.49315101,\
+-	-6.27261499, -0.00064904, 0.00039774, 7.27196595, 0.99801695, 0.99895321, 0.49315109,\
+-	-6.27261532, -0.00064891, 0.00039766, 7.27196641, 0.99801736, 0.99895343, 0.49315112,\
+-	-6.27261564, -0.00064877, 0.00039757, 7.27196687, 0.99801778, 0.99895365, 0.49315120,\
+-	-6.27261597, -0.00064864, 0.00039749, 7.27196733, 0.99801819, 0.99895387, 0.49315122,\
+-	-6.27261629, -0.00064850, 0.00039741, 7.27196779, 0.99801861, 0.99895409, 0.49315129,\
+-	-6.27261662, -0.00064836, 0.00039732, 7.27196825, 0.99801902, 0.99895431, 0.49315134,\
+-	-6.27261694, -0.00064823, 0.00039724, 7.27196871, 0.99801944, 0.99895453, 0.49315136,\
+-	-6.27261727, -0.00064809, 0.00039716, 7.27196917, 0.99801985, 0.99895475, 0.49315141,\
+-	-6.27261759, -0.00064796, 0.00039707, 7.27196963, 0.99802027, 0.99895497, 0.49315149,\
+-	-6.27261792, -0.00064782, 0.00039699, 7.27197009, 0.99802068, 0.99895519, 0.49315153,\
+-	-6.27261824, -0.00064769, 0.00039691, 7.27197056, 0.99802110, 0.99895540, 0.49315156,\
+-	-6.27261857, -0.00064755, 0.00039683, 7.27197101, 0.99802151, 0.99895562, 0.49315162,\
+-	-6.27261889, -0.00064742, 0.00039674, 7.27197147, 0.99802193, 0.99895584, 0.49315167,\
+-	-6.27261921, -0.00064728, 0.00039666, 7.27197193, 0.99802234, 0.99895606, 0.49315173,\
+-	-6.27261954, -0.00064715, 0.00039658, 7.27197239, 0.99802275, 0.99895628, 0.49315176,\
+-	-6.27261986, -0.00064701, 0.00039649, 7.27197285, 0.99802317, 0.99895650, 0.49315180,\
+-	-6.27262019, -0.00064687, 0.00039641, 7.27197331, 0.99802358, 0.99895671, 0.49315186,\
+-	-6.27262051, -0.00064674, 0.00039633, 7.27197377, 0.99802399, 0.99895693, 0.49315191,\
+-	-6.27262083, -0.00064660, 0.00039624, 7.27197423, 0.99802441, 0.99895715, 0.49315198,\
+-	-6.27262116, -0.00064647, 0.00039616, 7.27197469, 0.99802482, 0.99895737, 0.49315200,\
+-	-6.27262148, -0.00064633, 0.00039608, 7.27197515, 0.99802523, 0.99895759, 0.49315204,\
+-	-6.27262180, -0.00064620, 0.00039600, 7.27197560, 0.99802564, 0.99895780, 0.49315211,\
+-	-6.27262213, -0.00064606, 0.00039591, 7.27197606, 0.99802606, 0.99895802, 0.49315216,\
+-	-6.27262245, -0.00064593, 0.00039583, 7.27197652, 0.99802647, 0.99895824, 0.49315219,\
+-	-6.27262277, -0.00064579, 0.00039575, 7.27197698, 0.99802688, 0.99895846, 0.49315225,\
+-	-6.27262309, -0.00064566, 0.00039567, 7.27197743, 0.99802729, 0.99895867, 0.49315226,\
+-	-6.27262342, -0.00064553, 0.00039558, 7.27197789, 0.99802770, 0.99895889, 0.49315233,\
+-	-6.27262374, -0.00064539, 0.00039550, 7.27197835, 0.99802812, 0.99895911, 0.49315238,\
+-	-6.27262406, -0.00064526, 0.00039542, 7.27197880, 0.99802853, 0.99895933, 0.49315244,\
+-	-6.27262438, -0.00064512, 0.00039534, 7.27197926, 0.99802894, 0.99895954, 0.49315248,\
+-	-6.27262470, -0.00064499, 0.00039525, 7.27197972, 0.99802935, 0.99895976, 0.49315254,\
+-	-6.27262503, -0.00064485, 0.00039517, 7.27198017, 0.99802976, 0.99895998, 0.49315255,\
+-	-6.27262535, -0.00064472, 0.00039509, 7.27198063, 0.99803017, 0.99896019, 0.49315260,\
+-	-6.27262567, -0.00064458, 0.00039501, 7.27198108, 0.99803058, 0.99896041, 0.49315266,\
+-	-6.27262599, -0.00064445, 0.00039492, 7.27198154, 0.99803099, 0.99896063, 0.49315272,\
+-	-6.27262631, -0.00064432, 0.00039484, 7.27198199, 0.99803140, 0.99896084, 0.49315276,\
+-	-6.27262663, -0.00064418, 0.00039476, 7.27198245, 0.99803181, 0.99896106, 0.49315283,\
+-	-6.27262695, -0.00064405, 0.00039468, 7.27198290, 0.99803222, 0.99896127, 0.49315287,\
+-	-6.27262727, -0.00064391, 0.00039460, 7.27198336, 0.99803263, 0.99896149, 0.49315291,\
+-	-6.27262759, -0.00064378, 0.00039451, 7.27198381, 0.99803304, 0.99896171, 0.49315298,\
+-	-6.27262792, -0.00064365, 0.00039443, 7.27198427, 0.99803345, 0.99896192, 0.49315301,\
+-	-6.27262824, -0.00064351, 0.00039435, 7.27198472, 0.99803386, 0.99896214, 0.49315305,\
+-	-6.27262856, -0.00064338, 0.00039427, 7.27198518, 0.99803427, 0.99896235, 0.49315310,\
+-	-6.27262888, -0.00064325, 0.00039418, 7.27198563, 0.99803468, 0.99896257, 0.49315315,\
+-	-6.27262920, -0.00064311, 0.00039410, 7.27198608, 0.99803508, 0.99896279, 0.49315320,\
+-	-6.27262952, -0.00064298, 0.00039402, 7.27198654, 0.99803549, 0.99896300, 0.49315324,\
+-	-6.27262984, -0.00064284, 0.00039394, 7.27198699, 0.99803590, 0.99896322, 0.49315329,\
+-	-6.27263015, -0.00064271, 0.00039386, 7.27198744, 0.99803631, 0.99896343, 0.49315335,\
+-	-6.27263047, -0.00064258, 0.00039378, 7.27198790, 0.99803672, 0.99896365, 0.49315341,\
+-	-6.27263079, -0.00064244, 0.00039369, 7.27198835, 0.99803712, 0.99896386, 0.49315341,\
+-	-6.27263111, -0.00064231, 0.00039361, 7.27198880, 0.99803753, 0.99896408, 0.49315348,\
+-	-6.27263143, -0.00064218, 0.00039353, 7.27198925, 0.99803794, 0.99896429, 0.49315355,\
+-	-6.27263175, -0.00064204, 0.00039345, 7.27198971, 0.99803835, 0.99896451, 0.49315360,\
+-	-6.27263207, -0.00064191, 0.00039337, 7.27199016, 0.99803875, 0.99896472, 0.49315362,\
+-	-6.27263239, -0.00064178, 0.00039329, 7.27199061, 0.99803916, 0.99896494, 0.49315366,\
+-	-6.27263271, -0.00064165, 0.00039320, 7.27199106, 0.99803957, 0.99896515, 0.49315370,\
+-	-6.27263302, -0.00064151, 0.00039312, 7.27199151, 0.99803997, 0.99896537, 0.49315378,\
+-	-6.27263334, -0.00064138, 0.00039304, 7.27199196, 0.99804038, 0.99896558, 0.49315382,\
+-	-6.27263366, -0.00064125, 0.00039296, 7.27199241, 0.99804079, 0.99896579, 0.49315384,\
+-	-6.27263398, -0.00064111, 0.00039288, 7.27199287, 0.99804119, 0.99896601, 0.49315390,\
+-	-6.27263430, -0.00064098, 0.00039280, 7.27199332, 0.99804160, 0.99896622, 0.49315398,\
+-	-6.27263461, -0.00064085, 0.00039271, 7.27199377, 0.99804200, 0.99896644, 0.49315398,\
+-	-6.27263493, -0.00064072, 0.00039263, 7.27199422, 0.99804241, 0.99896665, 0.49315402,\
+-	-6.27263525, -0.00064058, 0.00039255, 7.27199467, 0.99804281, 0.99896686, 0.49315410,\
+-	-6.27263557, -0.00064045, 0.00039247, 7.27199512, 0.99804322, 0.99896708, 0.49315415,\
+-	-6.27263588, -0.00064032, 0.00039239, 7.27199557, 0.99804362, 0.99896729, 0.49315420,\
+-	-6.27263620, -0.00064019, 0.00039231, 7.27199602, 0.99804403, 0.99896751, 0.49315423,\
+-	-6.27263652, -0.00064005, 0.00039223, 7.27199646, 0.99804443, 0.99896772, 0.49315429,\
+-	-6.27263683, -0.00063992, 0.00039215, 7.27199691, 0.99804484, 0.99896793, 0.49315433,\
+-	-6.27263715, -0.00063979, 0.00039206, 7.27199736, 0.99804524, 0.99896815, 0.49315438,\
+-	-6.27263747, -0.00063966, 0.00039198, 7.27199781, 0.99804565, 0.99896836, 0.49315441,\
+-	-6.27263778, -0.00063952, 0.00039190, 7.27199826, 0.99804605, 0.99896857, 0.49315445,\
+-	-6.27263810, -0.00063939, 0.00039182, 7.27199871, 0.99804645, 0.99896879, 0.49315452,\
+-	-6.27263842, -0.00063926, 0.00039174, 7.27199916, 0.99804686, 0.99896900, 0.49315453,\
+-	-6.27263873, -0.00063913, 0.00039166, 7.27199960, 0.99804726, 0.99896921, 0.49315461,\
+-	-6.27263905, -0.00063900, 0.00039158, 7.27200005, 0.99804766, 0.99896942, 0.49315465,\
+-	-6.27263936, -0.00063886, 0.00039150, 7.27200050, 0.99804807, 0.99896964, 0.49315471,\
+-	-6.27263968, -0.00063873, 0.00039142, 7.27200095, 0.99804847, 0.99896985, 0.49315476,\
+-	-6.27263999, -0.00063860, 0.00039134, 7.27200139, 0.99804887, 0.99897006, 0.49315480,\
+-	-6.27264031, -0.00063847, 0.00039126, 7.27200184, 0.99804928, 0.99897028, 0.49315486,\
+-	-6.27264063, -0.00063834, 0.00039117, 7.27200229, 0.99804968, 0.99897049, 0.49315489,\
+-	-6.27264094, -0.00063821, 0.00039109, 7.27200273, 0.99805008, 0.99897070, 0.49315491,\
+-	-6.27264126, -0.00063807, 0.00039101, 7.27200318, 0.99805048, 0.99897091, 0.49315503,\
+-	-6.27264157, -0.00063794, 0.00039093, 7.27200363, 0.99805088, 0.99897112, 0.49315504,\
+-	-6.27264188, -0.00063781, 0.00039085, 7.27200407, 0.99805129, 0.99897134, 0.49315507,\
+-	-6.27264220, -0.00063768, 0.00039077, 7.27200452, 0.99805169, 0.99897155, 0.49315512,\
+-	-6.27264251, -0.00063755, 0.00039069, 7.27200496, 0.99805209, 0.99897176, 0.49315517,\
+-	-6.27264283, -0.00063742, 0.00039061, 7.27200541, 0.99805249, 0.99897197, 0.49315521,\
+-	-6.27264314, -0.00063729, 0.00039053, 7.27200586, 0.99805289, 0.99897218, 0.49315529,\
+-	-6.27264346, -0.00063716, 0.00039045, 7.27200630, 0.99805329, 0.99897240, 0.49315533,\
+-	-6.27264377, -0.00063702, 0.00039037, 7.27200675, 0.99805369, 0.99897261, 0.49315538,\
+-	-6.27264408, -0.00063689, 0.00039029, 7.27200719, 0.99805409, 0.99897282, 0.49315540,\
+-	-6.27264440, -0.00063676, 0.00039021, 7.27200764, 0.99805450, 0.99897303, 0.49315545,\
+-	-6.27264471, -0.00063663, 0.00039013, 7.27200808, 0.99805490, 0.99897324, 0.49315550,\
+-	-6.27264502, -0.00063650, 0.00039005, 7.27200852, 0.99805530, 0.99897345, 0.49315556,\
+-	-6.27264534, -0.00063637, 0.00038997, 7.27200897, 0.99805570, 0.99897366, 0.49315563,\
+-	-6.27264565, -0.00063624, 0.00038989, 7.27200941, 0.99805610, 0.99897387, 0.49315563,\
+-	-6.27264596, -0.00063611, 0.00038981, 7.27200986, 0.99805649, 0.99897409, 0.49315568,\
+-	-6.27264628, -0.00063598, 0.00038973, 7.27201030, 0.99805689, 0.99897430, 0.49315572,\
+-	-6.27264659, -0.00063585, 0.00038965, 7.27201074, 0.99805729, 0.99897451, 0.49315579,\
+-	-6.27264690, -0.00063572, 0.00038957, 7.27201119, 0.99805769, 0.99897472, 0.49315582,\
+-	-6.27264721, -0.00063559, 0.00038949, 7.27201163, 0.99805809, 0.99897493, 0.49315589,\
+-	-6.27264753, -0.00063545, 0.00038941, 7.27201207, 0.99805849, 0.99897514, 0.49315595,\
+-	-6.27264784, -0.00063532, 0.00038933, 7.27201251, 0.99805889, 0.99897535, 0.49315600,\
+-	-6.27264815, -0.00063519, 0.00038925, 7.27201296, 0.99805929, 0.99897556, 0.49315603,\
+-	-6.27264846, -0.00063506, 0.00038917, 7.27201340, 0.99805969, 0.99897577, 0.49315606,\
+-	-6.27264877, -0.00063493, 0.00038909, 7.27201384, 0.99806008, 0.99897598, 0.49315609,\
+-	-6.27264909, -0.00063480, 0.00038901, 7.27201428, 0.99806048, 0.99897619, 0.49315614,\
+-	-6.27264940, -0.00063467, 0.00038893, 7.27201472, 0.99806088, 0.99897640, 0.49315621,\
+-	-6.27264971, -0.00063454, 0.00038885, 7.27201517, 0.99806128, 0.99897661, 0.49315622,\
+-	-6.27265002, -0.00063441, 0.00038877, 7.27201561, 0.99806168, 0.99897682, 0.49315632,\
+-	-6.27265033, -0.00063428, 0.00038869, 7.27201605, 0.99806207, 0.99897703, 0.49315636,\
+-	-6.27265064, -0.00063415, 0.00038861, 7.27201649, 0.99806247, 0.99897724, 0.49315639,\
+-	-6.27265095, -0.00063402, 0.00038853, 7.27201693, 0.99806287, 0.99897745, 0.49315644,\
+-	-6.27265126, -0.00063389, 0.00038845, 7.27201737, 0.99806326, 0.99897766, 0.49315648,\
+-	-6.27265157, -0.00063376, 0.00038837, 7.27201781, 0.99806366, 0.99897787, 0.49315654,\
+-	-6.27265189, -0.00063363, 0.00038829, 7.27201825, 0.99806406, 0.99897808, 0.49315656,\
+-	-6.27265220, -0.00063350, 0.00038821, 7.27201869, 0.99806445, 0.99897829, 0.49315663,\
+-	-6.27265251, -0.00063337, 0.00038813, 7.27201913, 0.99806485, 0.99897849, 0.49315664,\
+-	-6.27265282, -0.00063324, 0.00038805, 7.27201957, 0.99806525, 0.99897870, 0.49315672,\
+-	-6.27265313, -0.00063312, 0.00038797, 7.27202001, 0.99806564, 0.99897891, 0.49315678,\
+-	-6.27265344, -0.00063299, 0.00038789, 7.27202045, 0.99806604, 0.99897912, 0.49315679,\
+-	-6.27265375, -0.00063286, 0.00038781, 7.27202089, 0.99806643, 0.99897933, 0.49315682,\
+-	-6.27265406, -0.00063273, 0.00038773, 7.27202133, 0.99806683, 0.99897954, 0.49315688,\
+-	-6.27265436, -0.00063260, 0.00038765, 7.27202177, 0.99806722, 0.99897975, 0.49315697,\
+-	-6.27265467, -0.00063247, 0.00038758, 7.27202221, 0.99806762, 0.99897996, 0.49315698,\
+-	-6.27265498, -0.00063234, 0.00038750, 7.27202264, 0.99806801, 0.99898016, 0.49315705,\
+-	-6.27265529, -0.00063221, 0.00038742, 7.27202308, 0.99806841, 0.99898037, 0.49315710,\
+-	-6.27265560, -0.00063208, 0.00038734, 7.27202352, 0.99806880, 0.99898058, 0.49315714,\
+-	-6.27265591, -0.00063195, 0.00038726, 7.27202396, 0.99806920, 0.99898079, 0.49315716,\
+-	-6.27265622, -0.00063182, 0.00038718, 7.27202440, 0.99806959, 0.99898100, 0.49315722,\
+-	-6.27265653, -0.00063169, 0.00038710, 7.27202483, 0.99806999, 0.99898121, 0.49315726,\
+-	-6.27265684, -0.00063157, 0.00038702, 7.27202527, 0.99807038, 0.99898141, 0.49315731,\
+-	-6.27265714, -0.00063144, 0.00038694, 7.27202571, 0.99807077, 0.99898162, 0.49315737,\
+-	-6.27265745, -0.00063131, 0.00038686, 7.27202614, 0.99807117, 0.99898183, 0.49315740,\
+-	-6.27265776, -0.00063118, 0.00038678, 7.27202658, 0.99807156, 0.99898204, 0.49315744,\
+-	-6.27265807, -0.00063105, 0.00038671, 7.27202702, 0.99807195, 0.99898224, 0.49315747,\
+-	-6.27265838, -0.00063092, 0.00038663, 7.27202745, 0.99807235, 0.99898245, 0.49315751,\
+-	-6.27265868, -0.00063079, 0.00038655, 7.27202789, 0.99807274, 0.99898266, 0.49315758,\
+-	-6.27265899, -0.00063066, 0.00038647, 7.27202833, 0.99807313, 0.99898287, 0.49315760,\
+-	-6.27265930, -0.00063054, 0.00038639, 7.27202876, 0.99807353, 0.99898307, 0.49315770,\
+-	-6.27265961, -0.00063041, 0.00038631, 7.27202920, 0.99807392, 0.99898328, 0.49315771,\
+-	-6.27265991, -0.00063028, 0.00038623, 7.27202963, 0.99807431, 0.99898349, 0.49315780,\
+-	-6.27266022, -0.00063015, 0.00038615, 7.27203007, 0.99807470, 0.99898369, 0.49315780,\
+-	-6.27266053, -0.00063002, 0.00038608, 7.27203051, 0.99807510, 0.99898390, 0.49315786,\
+-	-6.27266083, -0.00062989, 0.00038600, 7.27203094, 0.99807549, 0.99898411, 0.49315792,\
+-	-6.27266114, -0.00062977, 0.00038592, 7.27203138, 0.99807588, 0.99898432, 0.49315794,\
+-	-6.27266145, -0.00062964, 0.00038584, 7.27203181, 0.99807627, 0.99898452, 0.49315802,\
+-	-6.27266175, -0.00062951, 0.00038576, 7.27203224, 0.99807666, 0.99898473, 0.49315805,\
+-	-6.27266206, -0.00062938, 0.00038568, 7.27203268, 0.99807705, 0.99898493, 0.49315808,\
+-	-6.27266237, -0.00062925, 0.00038560, 7.27203311, 0.99807744, 0.99898514, 0.49315812,\
+-	-6.27266267, -0.00062913, 0.00038553, 7.27203355, 0.99807784, 0.99898535, 0.49315818,\
+-	-6.27266298, -0.00062900, 0.00038545, 7.27203398, 0.99807823, 0.99898555, 0.49315821,\
+-	-6.27266329, -0.00062887, 0.00038537, 7.27203441, 0.99807862, 0.99898576, 0.49315828,\
+-	-6.27266359, -0.00062874, 0.00038529, 7.27203485, 0.99807901, 0.99898597, 0.49315830,\
+-	-6.27266390, -0.00062862, 0.00038521, 7.27203528, 0.99807940, 0.99898617, 0.49315836,\
+-	-6.27266420, -0.00062849, 0.00038513, 7.27203571, 0.99807979, 0.99898638, 0.49315841,\
+-	-6.27266451, -0.00062836, 0.00038506, 7.27203615, 0.99808018, 0.99898658, 0.49315847,\
+-	-6.27266481, -0.00062823, 0.00038498, 7.27203658, 0.99808057, 0.99898679, 0.49315850,\
+-	-6.27266512, -0.00062811, 0.00038490, 7.27203701, 0.99808096, 0.99898700, 0.49315856,\
+-	-6.27266542, -0.00062798, 0.00038482, 7.27203744, 0.99808135, 0.99898720, 0.49315859,\
+-	-6.27266573, -0.00062785, 0.00038474, 7.27203788, 0.99808174, 0.99898741, 0.49315862,\
+-	-6.27266603, -0.00062772, 0.00038467, 7.27203831, 0.99808213, 0.99898761, 0.49315867,\
+-	-6.27266634, -0.00062760, 0.00038459, 7.27203874, 0.99808251, 0.99898782, 0.49315875,\
+-	-6.27266664, -0.00062747, 0.00038451, 7.27203917, 0.99808290, 0.99898802, 0.49315880,\
+-	-6.27266695, -0.00062734, 0.00038443, 7.27203960, 0.99808329, 0.99898823, 0.49315883,\
+-	-6.27266725, -0.00062721, 0.00038435, 7.27204004, 0.99808368, 0.99898843, 0.49315887,\
+-	-6.27266755, -0.00062709, 0.00038428, 7.27204047, 0.99808407, 0.99898864, 0.49315892,\
+-	-6.27266786, -0.00062696, 0.00038420, 7.27204090, 0.99808446, 0.99898884, 0.49315895,\
+-	-6.27266816, -0.00062683, 0.00038412, 7.27204133, 0.99808485, 0.99898905, 0.49315899,\
+-	-6.27266847, -0.00062671, 0.00038404, 7.27204176, 0.99808523, 0.99898925, 0.49315906,\
+-	-6.27266877, -0.00062658, 0.00038396, 7.27204219, 0.99808562, 0.99898946, 0.49315910,\
+-	-6.27266907, -0.00062645, 0.00038389, 7.27204262, 0.99808601, 0.99898966, 0.49315911,\
+-	-6.27266938, -0.00062633, 0.00038381, 7.27204305, 0.99808640, 0.99898987, 0.49315917,\
+-	-6.27266968, -0.00062620, 0.00038373, 7.27204348, 0.99808678, 0.99899007, 0.49315922,\
+-	-6.27266998, -0.00062607, 0.00038365, 7.27204391, 0.99808717, 0.99899027, 0.49315926,\
+-	-6.27267028, -0.00062595, 0.00038358, 7.27204434, 0.99808756, 0.99899048, 0.49315930,\
+-	-6.27267059, -0.00062582, 0.00038350, 7.27204477, 0.99808794, 0.99899068, 0.49315934,\
+-	-6.27267089, -0.00062569, 0.00038342, 7.27204520, 0.99808833, 0.99899089, 0.49315940,\
+-	-6.27267119, -0.00062557, 0.00038334, 7.27204563, 0.99808872, 0.99899109, 0.49315945,\
+-	-6.27267150, -0.00062544, 0.00038327, 7.27204606, 0.99808910, 0.99899129, 0.49315950,\
+-	-6.27267180, -0.00062531, 0.00038319, 7.27204648, 0.99808949, 0.99899150, 0.49315953,\
+-	-6.27267210, -0.00062519, 0.00038311, 7.27204691, 0.99808988, 0.99899170, 0.49315956,\
+-	-6.27267240, -0.00062506, 0.00038303, 7.27204734, 0.99809026, 0.99899191, 0.49315961,\
+-	-6.27267270, -0.00062494, 0.00038296, 7.27204777, 0.99809065, 0.99899211, 0.49315968,\
+-	-6.27267301, -0.00062481, 0.00038288, 7.27204820, 0.99809103, 0.99899231, 0.49315973,\
+-	-6.27267331, -0.00062468, 0.00038280, 7.27204863, 0.99809142, 0.99899252, 0.49315977,\
+-	-6.27267361, -0.00062456, 0.00038272, 7.27204905, 0.99809180, 0.99899272, 0.49315980,\
+-	-6.27267391, -0.00062443, 0.00038265, 7.27204948, 0.99809219, 0.99899292, 0.49315984,\
+-	-6.27267421, -0.00062431, 0.00038257, 7.27204991, 0.99809257, 0.99899313, 0.49315989,\
+-	-6.27267451, -0.00062418, 0.00038249, 7.27205033, 0.99809296, 0.99899333, 0.49315993,\
+-	-6.27267481, -0.00062405, 0.00038241, 7.27205076, 0.99809334, 0.99899353, 0.49315999,\
+-	-6.27267512, -0.00062393, 0.00038234, 7.27205119, 0.99809373, 0.99899373, 0.49316004,\
+-	-6.27267542, -0.00062380, 0.00038226, 7.27205162, 0.99809411, 0.99899394, 0.49316007,\
+-	-6.27267572, -0.00062368, 0.00038218, 7.27205204, 0.99809450, 0.99899414, 0.49316011,\
+-	-6.27267602, -0.00062355, 0.00038211, 7.27205247, 0.99809488, 0.99899434, 0.49316016,\
+-	-6.27267632, -0.00062342, 0.00038203, 7.27205289, 0.99809527, 0.99899455, 0.49316020,\
+-	-6.27267662, -0.00062330, 0.00038195, 7.27205332, 0.99809565, 0.99899475, 0.49316023,\
+-	-6.27267692, -0.00062317, 0.00038188, 7.27205375, 0.99809603, 0.99899495, 0.49316033,\
+-	-6.27267722, -0.00062305, 0.00038180, 7.27205417, 0.99809642, 0.99899515, 0.49316032,\
+-	-6.27267752, -0.00062292, 0.00038172, 7.27205460, 0.99809680, 0.99899536, 0.49316037,\
+-	-6.27267782, -0.00062280, 0.00038164, 7.27205502, 0.99809718, 0.99899556, 0.49316043,\
+-	-6.27267812, -0.00062267, 0.00038157, 7.27205545, 0.99809757, 0.99899576, 0.49316049,\
+-	-6.27267842, -0.00062255, 0.00038149, 7.27205587, 0.99809795, 0.99899596, 0.49316053,\
+-	-6.27267872, -0.00062242, 0.00038141, 7.27205630, 0.99809833, 0.99899616, 0.49316060,\
+-	-6.27267902, -0.00062230, 0.00038134, 7.27205672, 0.99809871, 0.99899637, 0.49316061,\
+-	-6.27267932, -0.00062217, 0.00038126, 7.27205715, 0.99809910, 0.99899657, 0.49316068,\
+-	-6.27267962, -0.00062205, 0.00038118, 7.27205757, 0.99809948, 0.99899677, 0.49316072,\
+-	-6.27267992, -0.00062192, 0.00038111, 7.27205799, 0.99809986, 0.99899697, 0.49316074,\
+-	-6.27268021, -0.00062180, 0.00038103, 7.27205842, 0.99810024, 0.99899717, 0.49316079,\
+-	-6.27268051, -0.00062167, 0.00038095, 7.27205884, 0.99810062, 0.99899737, 0.49316083,\
+-	-6.27268081, -0.00062155, 0.00038088, 7.27205927, 0.99810100, 0.99899757, 0.49316088,\
+-	-6.27268111, -0.00062142, 0.00038080, 7.27205969, 0.99810139, 0.99899778, 0.49316090,\
+-	-6.27268141, -0.00062130, 0.00038072, 7.27206011, 0.99810177, 0.99899798, 0.49316099,\
+-	-6.27268171, -0.00062117, 0.00038065, 7.27206053, 0.99810215, 0.99899818, 0.49316102,\
+-	-6.27268201, -0.00062105, 0.00038057, 7.27206096, 0.99810253, 0.99899838, 0.49316107,\
+-	-6.27268230, -0.00062092, 0.00038050, 7.27206138, 0.99810291, 0.99899858, 0.49316107,\
+-	-6.27268260, -0.00062080, 0.00038042, 7.27206180, 0.99810329, 0.99899878, 0.49316112,\
+-	-6.27268290, -0.00062067, 0.00038034, 7.27206223, 0.99810367, 0.99899898, 0.49316121,\
+-	-6.27268320, -0.00062055, 0.00038027, 7.27206265, 0.99810405, 0.99899918, 0.49316122,\
+-	-6.27268350, -0.00062043, 0.00038019, 7.27206307, 0.99810443, 0.99899938, 0.49316127,\
+-	-6.27268379, -0.00062030, 0.00038011, 7.27206349, 0.99810481, 0.99899958, 0.49316133,\
+-	-6.27268409, -0.00062018, 0.00038004, 7.27206391, 0.99810519, 0.99899978, 0.49316137,\
+-	-6.27268439, -0.00062005, 0.00037996, 7.27206433, 0.99810557, 0.99899999, 0.49316141,\
+-	-6.27268468, -0.00061993, 0.00037989, 7.27206476, 0.99810595, 0.99900019, 0.49316145,\
+-	-6.27268498, -0.00061980, 0.00037981, 7.27206518, 0.99810633, 0.99900039, 0.49316150,\
+-	-6.27268528, -0.00061968, 0.00037973, 7.27206560, 0.99810671, 0.99900059, 0.49316152,\
+-	-6.27268558, -0.00061956, 0.00037966, 7.27206602, 0.99810709, 0.99900079, 0.49316158,\
+-	-6.27268587, -0.00061943, 0.00037958, 7.27206644, 0.99810747, 0.99900099, 0.49316160,\
+-	-6.27268617, -0.00061931, 0.00037951, 7.27206686, 0.99810785, 0.99900119, 0.49316174,\
+-	-6.27268647, -0.00061919, 0.00037943, 7.27206728, 0.99810823, 0.99900139, 0.49316174,\
+-	-6.27268676, -0.00061906, 0.00037935, 7.27206770, 0.99810860, 0.99900159, 0.49316173,\
+-	-6.27268706, -0.00061894, 0.00037928, 7.27206812, 0.99810898, 0.99900179, 0.49316182,\
+-	-6.27268735, -0.00061881, 0.00037920, 7.27206854, 0.99810936, 0.99900198, 0.49316185,\
+-	-6.27268765, -0.00061869, 0.00037913, 7.27206896, 0.99810974, 0.99900218, 0.49316190,\
+-	-6.27268795, -0.00061857, 0.00037905, 7.27206938, 0.99811012, 0.99900238, 0.49316194,\
+-	-6.27268824, -0.00061844, 0.00037897, 7.27206980, 0.99811049, 0.99900258, 0.49316199,\
+-	-6.27268854, -0.00061832, 0.00037890, 7.27207022, 0.99811087, 0.99900278, 0.49316201,\
+-	-6.27268883, -0.00061820, 0.00037882, 7.27207064, 0.99811125, 0.99900298, 0.49316207,\
+-	-6.27268913, -0.00061807, 0.00037875, 7.27207106, 0.99811163, 0.99900318, 0.49316215,\
+-	-6.27268942, -0.00061795, 0.00037867, 7.27207147, 0.99811200, 0.99900338, 0.49316215,\
+-	-6.27268972, -0.00061783, 0.00037860, 7.27207189, 0.99811238, 0.99900358, 0.49316222,\
+-	-6.27269001, -0.00061770, 0.00037852, 7.27207231, 0.99811276, 0.99900378, 0.49316225,\
+-	-6.27269031, -0.00061758, 0.00037844, 7.27207273, 0.99811313, 0.99900398, 0.49316226,\
+-	-6.27269060, -0.00061746, 0.00037837, 7.27207315, 0.99811351, 0.99900418, 0.49316232,\
+-	-6.27269090, -0.00061733, 0.00037829, 7.27207356, 0.99811389, 0.99900437, 0.49316241,\
+-	-6.27269119, -0.00061721, 0.00037822, 7.27207398, 0.99811426, 0.99900457, 0.49316240,\
+-	-6.27269149, -0.00061709, 0.00037814, 7.27207440, 0.99811464, 0.99900477, 0.49316244,\
+-	-6.27269178, -0.00061696, 0.00037807, 7.27207482, 0.99811502, 0.99900497, 0.49316250,\
+-	-6.27269208, -0.00061684, 0.00037799, 7.27207523, 0.99811539, 0.99900517, 0.49316255,\
+-	-6.27269237, -0.00061672, 0.00037792, 7.27207565, 0.99811577, 0.99900537, 0.49316260,\
+-	-6.27269266, -0.00061660, 0.00037784, 7.27207607, 0.99811614, 0.99900556, 0.49316268,\
+-	-6.27269296, -0.00061647, 0.00037777, 7.27207648, 0.99811652, 0.99900576, 0.49316264,\
+-	-6.27269325, -0.00061635, 0.00037769, 7.27207690, 0.99811689, 0.99900596, 0.49316274,\
+-	-6.27269354, -0.00061623, 0.00037762, 7.27207732, 0.99811727, 0.99900616, 0.49316275,\
+-	-6.27269384, -0.00061610, 0.00037754, 7.27207773, 0.99811764, 0.99900636, 0.49316280,\
+-	-6.27269413, -0.00061598, 0.00037746, 7.27207815, 0.99811802, 0.99900655, 0.49316280,\
+-	-6.27269442, -0.00061586, 0.00037739, 7.27207857, 0.99811839, 0.99900675, 0.49316288,\
+-	-6.27269472, -0.00061574, 0.00037731, 7.27207898, 0.99811877, 0.99900695, 0.49316293,\
+-	-6.27269501, -0.00061561, 0.00037724, 7.27207940, 0.99811914, 0.99900715, 0.49316299,\
+-	-6.27269530, -0.00061549, 0.00037716, 7.27207981, 0.99811952, 0.99900734, 0.49316305,\
+-	-6.27269560, -0.00061537, 0.00037709, 7.27208023, 0.99811989, 0.99900754, 0.49316305,\
+-	-6.27269589, -0.00061525, 0.00037701, 7.27208064, 0.99812026, 0.99900774, 0.49316309,\
+-	-6.27269618, -0.00061512, 0.00037694, 7.27208106, 0.99812064, 0.99900794, 0.49316319,\
+-	-6.27269647, -0.00061500, 0.00037686, 7.27208147, 0.99812101, 0.99900813, 0.49316320,\
+-	-6.27269677, -0.00061488, 0.00037679, 7.27208189, 0.99812138, 0.99900833, 0.49316326,\
+-	-6.27269706, -0.00061476, 0.00037671, 7.27208230, 0.99812176, 0.99900853, 0.49316331,\
+-	-6.27269735, -0.00061464, 0.00037664, 7.27208271, 0.99812213, 0.99900872, 0.49316334,\
+-	-6.27269764, -0.00061451, 0.00037656, 7.27208313, 0.99812250, 0.99900892, 0.49316337,\
+-	-6.27269793, -0.00061439, 0.00037649, 7.27208354, 0.99812288, 0.99900912, 0.49316343,\
+-	-6.27269823, -0.00061427, 0.00037642, 7.27208396, 0.99812325, 0.99900931, 0.49316350,\
+-	-6.27269852, -0.00061415, 0.00037634, 7.27208437, 0.99812362, 0.99900951, 0.49316348,\
+-	-6.27269881, -0.00061403, 0.00037627, 7.27208478, 0.99812399, 0.99900971, 0.49316356,\
+-	-6.27269910, -0.00061390, 0.00037619, 7.27208520, 0.99812437, 0.99900990, 0.49316359,\
+-	-6.27269939, -0.00061378, 0.00037612, 7.27208561, 0.99812474, 0.99901010, 0.49316364,\
+-	-6.27269968, -0.00061366, 0.00037604, 7.27208602, 0.99812511, 0.99901030, 0.49316368,\
+-	-6.27269997, -0.00061354, 0.00037597, 7.27208643, 0.99812548, 0.99901049, 0.49316372,\
+-	-6.27270027, -0.00061342, 0.00037589, 7.27208685, 0.99812585, 0.99901069, 0.49316379,\
+-	-6.27270056, -0.00061330, 0.00037582, 7.27208726, 0.99812623, 0.99901089, 0.49316380,\
+-	-6.27270085, -0.00061318, 0.00037574, 7.27208767, 0.99812660, 0.99901108, 0.49316383,\
+-	-6.27270114, -0.00061305, 0.00037567, 7.27208808, 0.99812697, 0.99901128, 0.49316392,\
+-	-6.27270143, -0.00061293, 0.00037559, 7.27208850, 0.99812734, 0.99901147, 0.49316393,\
+-	-6.27270172, -0.00061281, 0.00037552, 7.27208891, 0.99812771, 0.99901167, 0.49316398,\
+-	-6.27270201, -0.00061269, 0.00037545, 7.27208932, 0.99812808, 0.99901186, 0.49316403,\
+-	-6.27270230, -0.00061257, 0.00037537, 7.27208973, 0.99812845, 0.99901206, 0.49316407,\
+-	-6.27270259, -0.00061245, 0.00037530, 7.27209014, 0.99812882, 0.99901226, 0.49316411,\
+-	-6.27270288, -0.00061233, 0.00037522, 7.27209055, 0.99812919, 0.99901245, 0.49316419,\
+-	-6.27270317, -0.00061221, 0.00037515, 7.27209096, 0.99812956, 0.99901265, 0.49316420,\
+-	-6.27270346, -0.00061208, 0.00037507, 7.27209137, 0.99812993, 0.99901284, 0.49316424,\
+-	-6.27270375, -0.00061196, 0.00037500, 7.27209178, 0.99813030, 0.99901304, 0.49316431,\
+-	-6.27270404, -0.00061184, 0.00037493, 7.27209219, 0.99813067, 0.99901323, 0.49316432,\
+-	-6.27270433, -0.00061172, 0.00037485, 7.27209260, 0.99813104, 0.99901343, 0.49316435,\
+-	-6.27270462, -0.00061160, 0.00037478, 7.27209301, 0.99813141, 0.99901362, 0.49316437,\
+-	-6.27270490, -0.00061148, 0.00037470, 7.27209342, 0.99813178, 0.99901382, 0.49316447,\
+-	-6.27270519, -0.00061136, 0.00037463, 7.27209383, 0.99813215, 0.99901401, 0.49316452,\
+-	-6.27270548, -0.00061124, 0.00037456, 7.27209424, 0.99813252, 0.99901421, 0.49316453,\
+-	-6.27270577, -0.00061112, 0.00037448, 7.27209465, 0.99813289, 0.99901440, 0.49316460,\
+-	-6.27270606, -0.00061100, 0.00037441, 7.27209506, 0.99813326, 0.99901460, 0.49316462,\
+-	-6.27270635, -0.00061088, 0.00037433, 7.27209547, 0.99813362, 0.99901479, 0.49316468,\
+-	-6.27270664, -0.00061076, 0.00037426, 7.27209588, 0.99813399, 0.99901498, 0.49316472,\
+-	-6.27270692, -0.00061064, 0.00037419, 7.27209629, 0.99813436, 0.99901518, 0.49316476,\
+-	-6.27270721, -0.00061051, 0.00037411, 7.27209670, 0.99813473, 0.99901537, 0.49316483,\
+-	-6.27270750, -0.00061039, 0.00037404, 7.27209711, 0.99813510, 0.99901557, 0.49316482,\
+-	-6.27270779, -0.00061027, 0.00037396, 7.27209751, 0.99813547, 0.99901576, 0.49316493,\
+-	-6.27270808, -0.00061015, 0.00037389, 7.27209792, 0.99813583, 0.99901596, 0.49316495,\
+-	-6.27270836, -0.00061003, 0.00037382, 7.27209833, 0.99813620, 0.99901615, 0.49316498,\
+-	-6.27270865, -0.00060991, 0.00037374, 7.27209874, 0.99813657, 0.99901634, 0.49316501,\
+-	-6.27270894, -0.00060979, 0.00037367, 7.27209915, 0.99813694, 0.99901654, 0.49316504,\
+-	-6.27270923, -0.00060967, 0.00037360, 7.27209955, 0.99813730, 0.99901673, 0.49316509,\
+-	-6.27270951, -0.00060955, 0.00037352, 7.27209996, 0.99813767, 0.99901692, 0.49316516,\
+-	-6.27270980, -0.00060943, 0.00037345, 7.27210037, 0.99813804, 0.99901712, 0.49316521,\
+-	-6.27271009, -0.00060931, 0.00037338, 7.27210078, 0.99813840, 0.99901731, 0.49316522,\
+-	-6.27271038, -0.00060919, 0.00037330, 7.27210118, 0.99813877, 0.99901751, 0.49316529,\
+-	-6.27271066, -0.00060907, 0.00037323, 7.27210159, 0.99813914, 0.99901770, 0.49316533,\
+-	-6.27271095, -0.00060895, 0.00037315, 7.27210200, 0.99813950, 0.99901789, 0.49316538,\
+-	-6.27271124, -0.00060883, 0.00037308, 7.27210240, 0.99813987, 0.99901808, 0.49316545,\
+-	-6.27271152, -0.00060871, 0.00037301, 7.27210281, 0.99814023, 0.99901828, 0.49316550,\
+-	-6.27271181, -0.00060859, 0.00037293, 7.27210321, 0.99814060, 0.99901847, 0.49316550,\
+-	-6.27271209, -0.00060847, 0.00037286, 7.27210362, 0.99814097, 0.99901866, 0.49316554,\
+-	-6.27271238, -0.00060836, 0.00037279, 7.27210403, 0.99814133, 0.99901886, 0.49316555,\
+-	-6.27271267, -0.00060824, 0.00037271, 7.27210443, 0.99814170, 0.99901905, 0.49316564,\
+-	-6.27271295, -0.00060812, 0.00037264, 7.27210484, 0.99814206, 0.99901924, 0.49316569,\
+-	-6.27271324, -0.00060800, 0.00037257, 7.27210524, 0.99814243, 0.99901944, 0.49316569,\
+-	-6.27271352, -0.00060788, 0.00037249, 7.27210565, 0.99814279, 0.99901963, 0.49316572,\
+-	-6.27271381, -0.00060776, 0.00037242, 7.27210605, 0.99814316, 0.99901982, 0.49316582,\
+-	-6.27271410, -0.00060764, 0.00037235, 7.27210646, 0.99814352, 0.99902001, 0.49316585,\
+-	-6.27271438, -0.00060752, 0.00037228, 7.27210686, 0.99814389, 0.99902021, 0.49316587,\
+-	-6.27271467, -0.00060740, 0.00037220, 7.27210727, 0.99814425, 0.99902040, 0.49316592,\
+-	-6.27271495, -0.00060728, 0.00037213, 7.27210767, 0.99814461, 0.99902059, 0.49316598,\
+-	-6.27271524, -0.00060716, 0.00037206, 7.27210807, 0.99814498, 0.99902078, 0.49316599,\
+-	-6.27271552, -0.00060704, 0.00037198, 7.27210848, 0.99814534, 0.99902097, 0.49316604,\
+-	-6.27271581, -0.00060692, 0.00037191, 7.27210888, 0.99814571, 0.99902117, 0.49316608,\
+-	-6.27271609, -0.00060680, 0.00037184, 7.27210929, 0.99814607, 0.99902136, 0.49316611,\
+-	-6.27271637, -0.00060669, 0.00037176, 7.27210969, 0.99814643, 0.99902155, 0.49316616,\
+-	-6.27271666, -0.00060657, 0.00037169, 7.27211009, 0.99814680, 0.99902174, 0.49316618,\
+-	-6.27271694, -0.00060645, 0.00037162, 7.27211050, 0.99814716, 0.99902193, 0.49316624,\
+-	-6.27271723, -0.00060633, 0.00037155, 7.27211090, 0.99814752, 0.99902213, 0.49316630,\
+-	-6.27271751, -0.00060621, 0.00037147, 7.27211130, 0.99814789, 0.99902232, 0.49316633,\
+-	-6.27271780, -0.00060609, 0.00037140, 7.27211170, 0.99814825, 0.99902251, 0.49316640,\
+-	-6.27271808, -0.00060597, 0.00037133, 7.27211211, 0.99814861, 0.99902270, 0.49316642,\
+-	-6.27271836, -0.00060585, 0.00037125, 7.27211251, 0.99814897, 0.99902289, 0.49316649,\
+-	-6.27271865, -0.00060574, 0.00037118, 7.27211291, 0.99814934, 0.99902308, 0.49316653,\
+-	-6.27271893, -0.00060562, 0.00037111, 7.27211331, 0.99814970, 0.99902327, 0.49316657,\
+-	-6.27271921, -0.00060550, 0.00037104, 7.27211371, 0.99815006, 0.99902346, 0.49316659,\
+-	-6.27271950, -0.00060538, 0.00037096, 7.27211412, 0.99815042, 0.99902366, 0.49316664,\
+-	-6.27271978, -0.00060526, 0.00037089, 7.27211452, 0.99815079, 0.99902385, 0.49316670,\
+-	-6.27272006, -0.00060514, 0.00037082, 7.27211492, 0.99815115, 0.99902404, 0.49316670,\
+-	-6.27272035, -0.00060503, 0.00037075, 7.27211532, 0.99815151, 0.99902423, 0.49316673,\
+-	-6.27272063, -0.00060491, 0.00037067, 7.27211572, 0.99815187, 0.99902442, 0.49316679,\
+-	-6.27272091, -0.00060479, 0.00037060, 7.27211612, 0.99815223, 0.99902461, 0.49316685,\
+-	-6.27272120, -0.00060467, 0.00037053, 7.27211652, 0.99815259, 0.99902480, 0.49316688,\
+-	-6.27272148, -0.00060455, 0.00037046, 7.27211692, 0.99815295, 0.99902499, 0.49316692,\
+-	-6.27272176, -0.00060444, 0.00037038, 7.27211732, 0.99815331, 0.99902518, 0.49316699,\
+-	-6.27272204, -0.00060432, 0.00037031, 7.27211773, 0.99815367, 0.99902537, 0.49316698,\
+-	-6.27272232, -0.00060420, 0.00037024, 7.27211813, 0.99815404, 0.99902556, 0.49316707,\
+-	-6.27272261, -0.00060408, 0.00037017, 7.27211853, 0.99815440, 0.99902575, 0.49316710,\
+-	-6.27272289, -0.00060396, 0.00037009, 7.27211893, 0.99815476, 0.99902594, 0.49316715,\
+-	-6.27272317, -0.00060385, 0.00037002, 7.27211933, 0.99815512, 0.99902613, 0.49316718,\
+-	-6.27272345, -0.00060373, 0.00036995, 7.27211972, 0.99815548, 0.99902632, 0.49316722,\
+-	-6.27272373, -0.00060361, 0.00036988, 7.27212012, 0.99815584, 0.99902651, 0.49316726,\
+-	-6.27272402, -0.00060349, 0.00036981, 7.27212052, 0.99815620, 0.99902670, 0.49316729,\
+-	-6.27272430, -0.00060337, 0.00036973, 7.27212092, 0.99815656, 0.99902689, 0.49316735,\
+-	-6.27272458, -0.00060326, 0.00036966, 7.27212132, 0.99815691, 0.99902708, 0.49316741,\
+-	-6.27272486, -0.00060314, 0.00036959, 7.27212172, 0.99815727, 0.99902727, 0.49316741,\
+-	-6.27272514, -0.00060302, 0.00036952, 7.27212212, 0.99815763, 0.99902746, 0.49316748,\
+-	-6.27272542, -0.00060290, 0.00036945, 7.27212252, 0.99815799, 0.99902765, 0.49316753,\
+-	-6.27272570, -0.00060279, 0.00036937, 7.27212292, 0.99815835, 0.99902784, 0.49316756,\
+-	-6.27272598, -0.00060267, 0.00036930, 7.27212331, 0.99815871, 0.99902803, 0.49316761,\
+-	-6.27272626, -0.00060255, 0.00036923, 7.27212371, 0.99815907, 0.99902822, 0.49316767,\
+-	-6.27272654, -0.00060244, 0.00036916, 7.27212411, 0.99815943, 0.99902841, 0.49316768,\
+-	-6.27272683, -0.00060232, 0.00036909, 7.27212451, 0.99815978, 0.99902860, 0.49316772,\
+-	-6.27272711, -0.00060220, 0.00036901, 7.27212490, 0.99816014, 0.99902879, 0.49316778,\
+-	-6.27272739, -0.00060208, 0.00036894, 7.27212530, 0.99816050, 0.99902897, 0.49316778,\
+-	-6.27272767, -0.00060197, 0.00036887, 7.27212570, 0.99816086, 0.99902916, 0.49316783,\
+-	-6.27272795, -0.00060185, 0.00036880, 7.27212610, 0.99816122, 0.99902935, 0.49316788,\
+-	-6.27272823, -0.00060173, 0.00036873, 7.27212649, 0.99816157, 0.99902954, 0.49316787,\
+-	-6.27272851, -0.00060162, 0.00036865, 7.27212689, 0.99816193, 0.99902973, 0.49316799,\
+-	-6.27272879, -0.00060150, 0.00036858, 7.27212729, 0.99816229, 0.99902992, 0.49316801,\
+-	-6.27272907, -0.00060138, 0.00036851, 7.27212768, 0.99816265, 0.99903011, 0.49316805,\
+-	-6.27272934, -0.00060127, 0.00036844, 7.27212808, 0.99816300, 0.99903029, 0.49316810,\
+-	-6.27272962, -0.00060115, 0.00036837, 7.27212848, 0.99816336, 0.99903048, 0.49316812,\
+-	-6.27272990, -0.00060103, 0.00036830, 7.27212887, 0.99816372, 0.99903067, 0.49316815,\
+-	-6.27273018, -0.00060092, 0.00036823, 7.27212927, 0.99816407, 0.99903086, 0.49316824,\
+-	-6.27273046, -0.00060080, 0.00036815, 7.27212966, 0.99816443, 0.99903105, 0.49316825,\
+-	-6.27273074, -0.00060068, 0.00036808, 7.27213006, 0.99816479, 0.99903124, 0.49316832,\
+-	-6.27273102, -0.00060057, 0.00036801, 7.27213045, 0.99816514, 0.99903142, 0.49316835,\
+-	-6.27273130, -0.00060045, 0.00036794, 7.27213085, 0.99816550, 0.99903161, 0.49316839,\
+-	-6.27273158, -0.00060033, 0.00036787, 7.27213124, 0.99816585, 0.99903180, 0.49316844,\
+-	-6.27273186, -0.00060022, 0.00036780, 7.27213164, 0.99816621, 0.99903199, 0.49316848,\
+-	-6.27273213, -0.00060010, 0.00036773, 7.27213203, 0.99816657, 0.99903218, 0.49316850,\
+-	-6.27273241, -0.00059998, 0.00036765, 7.27213243, 0.99816692, 0.99903236, 0.49316856,\
+-	-6.27273269, -0.00059987, 0.00036758, 7.27213282, 0.99816728, 0.99903255, 0.49316861,\
+-	-6.27273297, -0.00059975, 0.00036751, 7.27213322, 0.99816763, 0.99903274, 0.49316864,\
+-	-6.27273325, -0.00059963, 0.00036744, 7.27213361, 0.99816799, 0.99903293, 0.49316869,\
+-	-6.27273352, -0.00059952, 0.00036737, 7.27213401, 0.99816834, 0.99903311, 0.49316872,\
+-	-6.27273380, -0.00059940, 0.00036730, 7.27213440, 0.99816870, 0.99903330, 0.49316876,\
+-	-6.27273408, -0.00059929, 0.00036723, 7.27213479, 0.99816905, 0.99903349, 0.49316877,\
+-	-6.27273436, -0.00059917, 0.00036716, 7.27213519, 0.99816941, 0.99903367, 0.49316887,\
+-	-6.27273463, -0.00059905, 0.00036708, 7.27213558, 0.99816976, 0.99903386, 0.49316888,\
+-	-6.27273491, -0.00059894, 0.00036701, 7.27213597, 0.99817012, 0.99903405, 0.49316895,\
+-	-6.27273519, -0.00059882, 0.00036694, 7.27213637, 0.99817047, 0.99903424, 0.49316897,\
+-	-6.27273547, -0.00059871, 0.00036687, 7.27213676, 0.99817082, 0.99903442, 0.49316901,\
+-	-6.27273574, -0.00059859, 0.00036680, 7.27213715, 0.99817118, 0.99903461, 0.49316906,\
+-	-6.27273602, -0.00059848, 0.00036673, 7.27213754, 0.99817153, 0.99903480, 0.49316911,\
+-	-6.27273630, -0.00059836, 0.00036666, 7.27213794, 0.99817189, 0.99903498, 0.49316913,\
+-	-6.27273657, -0.00059824, 0.00036659, 7.27213833, 0.99817224, 0.99903517, 0.49316914,\
+-	-6.27273685, -0.00059813, 0.00036652, 7.27213872, 0.99817259, 0.99903535, 0.49316924,\
+-	-6.27273713, -0.00059801, 0.00036645, 7.27213911, 0.99817295, 0.99903554, 0.49316926,\
+-	-6.27273740, -0.00059790, 0.00036637, 7.27213951, 0.99817330, 0.99903573, 0.49316930,\
+-	-6.27273768, -0.00059778, 0.00036630, 7.27213990, 0.99817365, 0.99903591, 0.49316938,\
+-	-6.27273796, -0.00059767, 0.00036623, 7.27214029, 0.99817400, 0.99903610, 0.49316938,\
+-	-6.27273823, -0.00059755, 0.00036616, 7.27214068, 0.99817436, 0.99903629, 0.49316938,\
+-	-6.27273851, -0.00059744, 0.00036609, 7.27214107, 0.99817471, 0.99903647, 0.49316946,\
+-	-6.27273878, -0.00059732, 0.00036602, 7.27214146, 0.99817506, 0.99903666, 0.49316948,\
+-	-6.27273906, -0.00059721, 0.00036595, 7.27214185, 0.99817541, 0.99903684, 0.49316954,\
+-	-6.27273933, -0.00059709, 0.00036588, 7.27214224, 0.99817577, 0.99903703, 0.49316961,\
+-	-6.27273961, -0.00059698, 0.00036581, 7.27214263, 0.99817612, 0.99903722, 0.49316964,\
+-	-6.27273989, -0.00059686, 0.00036574, 7.27214303, 0.99817647, 0.99903740, 0.49316966,\
+-	-6.27274016, -0.00059674, 0.00036567, 7.27214342, 0.99817682, 0.99903759, 0.49316973,\
+-	-6.27274044, -0.00059663, 0.00036560, 7.27214381, 0.99817717, 0.99903777, 0.49316976,\
+-	-6.27274071, -0.00059651, 0.00036553, 7.27214420, 0.99817752, 0.99903796, 0.49316978,\
+-	-6.27274099, -0.00059640, 0.00036546, 7.27214459, 0.99817788, 0.99903814, 0.49316985,\
+-	-6.27274126, -0.00059629, 0.00036539, 7.27214498, 0.99817823, 0.99903833, 0.49316985,\
+-	-6.27274154, -0.00059617, 0.00036532, 7.27214537, 0.99817858, 0.99903851, 0.49316990,\
+-	-6.27274181, -0.00059606, 0.00036525, 7.27214575, 0.99817893, 0.99903870, 0.49316996,\
+-	-6.27274208, -0.00059594, 0.00036517, 7.27214614, 0.99817928, 0.99903888, 0.49317001,\
+-	-6.27274236, -0.00059583, 0.00036510, 7.27214653, 0.99817963, 0.99903907, 0.49317000,\
+-	-6.27274263, -0.00059571, 0.00036503, 7.27214692, 0.99817998, 0.99903925, 0.49317004,\
+-	-6.27274291, -0.00059560, 0.00036496, 7.27214731, 0.99818033, 0.99903944, 0.49317008,\
+-	-6.27274318, -0.00059548, 0.00036489, 7.27214770, 0.99818068, 0.99903962, 0.49317014,\
+-	-6.27274346, -0.00059537, 0.00036482, 7.27214809, 0.99818103, 0.99903981, 0.49317022,\
+-	-6.27274373, -0.00059525, 0.00036475, 7.27214848, 0.99818138, 0.99903999, 0.49317024,\
+-	-6.27274400, -0.00059514, 0.00036468, 7.27214886, 0.99818173, 0.99904018, 0.49317029,\
+-	-6.27274428, -0.00059502, 0.00036461, 7.27214925, 0.99818208, 0.99904036, 0.49317032,\
+-	-6.27274455, -0.00059491, 0.00036454, 7.27214964, 0.99818243, 0.99904055, 0.49317037,\
+-	-6.27274482, -0.00059480, 0.00036447, 7.27215003, 0.99818278, 0.99904073, 0.49317042,\
+-	-6.27274510, -0.00059468, 0.00036440, 7.27215042, 0.99818313, 0.99904092, 0.49317048,\
+-	-6.27274537, -0.00059457, 0.00036433, 7.27215080, 0.99818348, 0.99904110, 0.49317047,\
+-	-6.27274564, -0.00059445, 0.00036426, 7.27215119, 0.99818383, 0.99904128, 0.49317056,\
+-	-6.27274592, -0.00059434, 0.00036419, 7.27215158, 0.99818418, 0.99904147, 0.49317055,\
+-	-6.27274619, -0.00059422, 0.00036412, 7.27215197, 0.99818452, 0.99904165, 0.49317062,\
+-	-6.27274646, -0.00059411, 0.00036405, 7.27215235, 0.99818487, 0.99904184, 0.49317064,\
+-	-6.27274674, -0.00059400, 0.00036398, 7.27215274, 0.99818522, 0.99904202, 0.49317066,\
+-	-6.27274701, -0.00059388, 0.00036391, 7.27215313, 0.99818557, 0.99904220, 0.49317073,\
+-	-6.27274728, -0.00059377, 0.00036384, 7.27215351, 0.99818592, 0.99904239, 0.49317076,\
+-	-6.27274755, -0.00059365, 0.00036377, 7.27215390, 0.99818627, 0.99904257, 0.49317082,\
+-	-6.27274783, -0.00059354, 0.00036370, 7.27215428, 0.99818661, 0.99904276, 0.49317086,\
+-	-6.27274810, -0.00059343, 0.00036363, 7.27215467, 0.99818696, 0.99904294, 0.49317091,\
+-	-6.27274837, -0.00059331, 0.00036356, 7.27215506, 0.99818731, 0.99904312, 0.49317096,\
+-	-6.27274864, -0.00059320, 0.00036349, 7.27215544, 0.99818766, 0.99904331, 0.49317092,\
+-	-6.27274891, -0.00059309, 0.00036342, 7.27215583, 0.99818800, 0.99904349, 0.49317097,\
+-	-6.27274919, -0.00059297, 0.00036335, 7.27215621, 0.99818835, 0.99904367, 0.49317108,\
+-	-6.27274946, -0.00059286, 0.00036329, 7.27215660, 0.99818870, 0.99904386, 0.49317108,\
+-	-6.27274973, -0.00059275, 0.00036322, 7.27215698, 0.99818905, 0.99904404, 0.49317113,\
+-	-6.27275000, -0.00059263, 0.00036315, 7.27215737, 0.99818939, 0.99904422, 0.49317119,\
+-	-6.27275027, -0.00059252, 0.00036308, 7.27215775, 0.99818974, 0.99904440, 0.49317125,\
+-	-6.27275054, -0.00059241, 0.00036301, 7.27215814, 0.99819009, 0.99904459, 0.49317124,\
+-	-6.27275081, -0.00059229, 0.00036294, 7.27215852, 0.99819043, 0.99904477, 0.49317130,\
+-	-6.27275109, -0.00059218, 0.00036287, 7.27215891, 0.99819078, 0.99904495, 0.49317131,\
+-	-6.27275136, -0.00059207, 0.00036280, 7.27215929, 0.99819113, 0.99904514, 0.49317136,\
+-	-6.27275163, -0.00059195, 0.00036273, 7.27215968, 0.99819147, 0.99904532, 0.49317137,\
+-	-6.27275190, -0.00059184, 0.00036266, 7.27216006, 0.99819182, 0.99904550, 0.49317148,\
+-	-6.27275217, -0.00059173, 0.00036259, 7.27216044, 0.99819216, 0.99904568, 0.49317152,\
+-	-6.27275244, -0.00059161, 0.00036252, 7.27216083, 0.99819251, 0.99904587, 0.49317157,\
+-	-6.27275271, -0.00059150, 0.00036245, 7.27216121, 0.99819285, 0.99904605, 0.49317157,\
+-	-6.27275298, -0.00059139, 0.00036238, 7.27216159, 0.99819320, 0.99904623, 0.49317163,\
+-	-6.27275325, -0.00059127, 0.00036231, 7.27216198, 0.99819355, 0.99904641, 0.49317168,\
+-	-6.27275352, -0.00059116, 0.00036224, 7.27216236, 0.99819389, 0.99904660, 0.49317166,\
+-	-6.27275379, -0.00059105, 0.00036217, 7.27216274, 0.99819424, 0.99904678, 0.49317177,\
+-	-6.27275406, -0.00059094, 0.00036211, 7.27216313, 0.99819458, 0.99904696, 0.49317179,\
+-	-6.27275433, -0.00059082, 0.00036204, 7.27216351, 0.99819493, 0.99904714, 0.49317185,\
+-	-6.27275460, -0.00059071, 0.00036197, 7.27216389, 0.99819527, 0.99904732, 0.49317189,\
+-	-6.27275487, -0.00059060, 0.00036190, 7.27216427, 0.99819561, 0.99904751, 0.49317188,\
+-	-6.27275514, -0.00059048, 0.00036183, 7.27216466, 0.99819596, 0.99904769, 0.49317197,\
+-	-6.27275541, -0.00059037, 0.00036176, 7.27216504, 0.99819630, 0.99904787, 0.49317199,\
+-	-6.27275568, -0.00059026, 0.00036169, 7.27216542, 0.99819665, 0.99904805, 0.49317206,\
+-	-6.27275595, -0.00059015, 0.00036162, 7.27216580, 0.99819699, 0.99904823, 0.49317206,\
+-	-6.27275622, -0.00059003, 0.00036155, 7.27216618, 0.99819733, 0.99904841, 0.49317210,\
+-	-6.27275649, -0.00058992, 0.00036148, 7.27216656, 0.99819768, 0.99904859, 0.49317215,\
+-	-6.27275675, -0.00058981, 0.00036141, 7.27216695, 0.99819802, 0.99904878, 0.49317218,\
+-	-6.27275702, -0.00058970, 0.00036135, 7.27216733, 0.99819837, 0.99904896, 0.49317220,\
+-	-6.27275729, -0.00058958, 0.00036128, 7.27216771, 0.99819871, 0.99904914, 0.49317224,\
+-	-6.27275756, -0.00058947, 0.00036121, 7.27216809, 0.99819905, 0.99904932, 0.49317231,\
+-	-6.27275783, -0.00058936, 0.00036114, 7.27216847, 0.99819939, 0.99904950, 0.49317228,\
+-	-6.27275810, -0.00058925, 0.00036107, 7.27216885, 0.99819974, 0.99904968, 0.49317238,\
+-	-6.27275837, -0.00058914, 0.00036100, 7.27216923, 0.99820008, 0.99904986, 0.49317241,\
+-	-6.27275863, -0.00058902, 0.00036093, 7.27216961, 0.99820042, 0.99905004, 0.49317245,\
+-	-6.27275890, -0.00058891, 0.00036086, 7.27216999, 0.99820077, 0.99905022, 0.49317253,\
+-	-6.27275917, -0.00058880, 0.00036080, 7.27217037, 0.99820111, 0.99905040, 0.49317256,\
+-	-6.27275944, -0.00058869, 0.00036073, 7.27217075, 0.99820145, 0.99905059, 0.49317260,\
+-	-6.27275971, -0.00058858, 0.00036066, 7.27217113, 0.99820179, 0.99905077, 0.49317263,\
+-	-6.27275997, -0.00058846, 0.00036059, 7.27217151, 0.99820213, 0.99905095, 0.49317270,\
+-	-6.27276024, -0.00058835, 0.00036052, 7.27217189, 0.99820248, 0.99905113, 0.49317272,\
+-	-6.27276051, -0.00058824, 0.00036045, 7.27217227, 0.99820282, 0.99905131, 0.49317275,\
+-	-6.27276078, -0.00058813, 0.00036038, 7.27217265, 0.99820316, 0.99905149, 0.49317277,\
+-	-6.27276104, -0.00058802, 0.00036032, 7.27217303, 0.99820350, 0.99905167, 0.49317281,\
+-	-6.27276131, -0.00058790, 0.00036025, 7.27217341, 0.99820384, 0.99905185, 0.49317287,\
+-	-6.27276158, -0.00058779, 0.00036018, 7.27217378, 0.99820418, 0.99905203, 0.49317289,\
+-	-6.27276184, -0.00058768, 0.00036011, 7.27217416, 0.99820453, 0.99905221, 0.49317299,\
+-	-6.27276211, -0.00058757, 0.00036004, 7.27217454, 0.99820487, 0.99905239, 0.49317296,\
+-	-6.27276238, -0.00058746, 0.00035997, 7.27217492, 0.99820521, 0.99905257, 0.49317302,\
+-	-6.27276265, -0.00058735, 0.00035991, 7.27217530, 0.99820555, 0.99905275, 0.49317307,\
+-	-6.27276291, -0.00058724, 0.00035984, 7.27217568, 0.99820589, 0.99905293, 0.49317310,\
+-	-6.27276318, -0.00058712, 0.00035977, 7.27217605, 0.99820623, 0.99905311, 0.49317316,\
+-	-6.27276344, -0.00058701, 0.00035970, 7.27217643, 0.99820657, 0.99905329, 0.49317319,\
+-	-6.27276371, -0.00058690, 0.00035963, 7.27217681, 0.99820691, 0.99905347, 0.49317321,\
+-	-6.27276398, -0.00058679, 0.00035956, 7.27217719, 0.99820725, 0.99905365, 0.49317328,\
+-	-6.27276424, -0.00058668, 0.00035950, 7.27217756, 0.99820759, 0.99905383, 0.49317329,\
+-	-6.27276451, -0.00058657, 0.00035943, 7.27217794, 0.99820793, 0.99905400, 0.49317335,\
+-	-6.27276478, -0.00058646, 0.00035936, 7.27217832, 0.99820827, 0.99905418, 0.49317337,\
+-	-6.27276504, -0.00058635, 0.00035929, 7.27217870, 0.99820861, 0.99905436, 0.49317339,\
+-	-6.27276531, -0.00058623, 0.00035922, 7.27217907, 0.99820895, 0.99905454, 0.49317346,\
+-	-6.27276557, -0.00058612, 0.00035916, 7.27217945, 0.99820929, 0.99905472, 0.49317350,\
+-	-6.27276584, -0.00058601, 0.00035909, 7.27217982, 0.99820963, 0.99905490, 0.49317354,\
+-	-6.27276610, -0.00058590, 0.00035902, 7.27218020, 0.99820997, 0.99905508, 0.49317358,\
+-	-6.27276637, -0.00058579, 0.00035895, 7.27218058, 0.99821030, 0.99905526, 0.49317361,\
+-	-6.27276663, -0.00058568, 0.00035888, 7.27218095, 0.99821064, 0.99905544, 0.49317361,\
+-	-6.27276690, -0.00058557, 0.00035882, 7.27218133, 0.99821098, 0.99905562, 0.49317370,\
+-	-6.27276716, -0.00058546, 0.00035875, 7.27218170, 0.99821132, 0.99905579, 0.49317372,\
+-	-6.27276743, -0.00058535, 0.00035868, 7.27218208, 0.99821166, 0.99905597, 0.49317378,\
+-	-6.27276769, -0.00058524, 0.00035861, 7.27218246, 0.99821200, 0.99905615, 0.49317376,\
+-	-6.27276796, -0.00058513, 0.00035854, 7.27218283, 0.99821233, 0.99905633, 0.49317387,\
+-	-6.27276822, -0.00058502, 0.00035848, 7.27218321, 0.99821267, 0.99905651, 0.49317387,\
+-	-6.27276849, -0.00058491, 0.00035841, 7.27218358, 0.99821301, 0.99905669, 0.49317394,\
+-	-6.27276875, -0.00058480, 0.00035834, 7.27218396, 0.99821335, 0.99905686, 0.49317397,\
+-	-6.27276902, -0.00058468, 0.00035827, 7.27218433, 0.99821369, 0.99905704, 0.49317398,\
+-	-6.27276928, -0.00058457, 0.00035820, 7.27218471, 0.99821402, 0.99905722, 0.49317402,\
+-	-6.27276954, -0.00058446, 0.00035814, 7.27218508, 0.99821436, 0.99905740, 0.49317408,\
+-	-6.27276981, -0.00058435, 0.00035807, 7.27218545, 0.99821470, 0.99905758, 0.49317410,\
+-	-6.27277007, -0.00058424, 0.00035800, 7.27218583, 0.99821504, 0.99905775, 0.49317417,\
+-	-6.27277034, -0.00058413, 0.00035793, 7.27218620, 0.99821537, 0.99905793, 0.49317422,\
+-	-6.27277060, -0.00058402, 0.00035787, 7.27218658, 0.99821571, 0.99905811, 0.49317425,\
+-	-6.27277086, -0.00058391, 0.00035780, 7.27218695, 0.99821605, 0.99905829, 0.49317429,\
+-	-6.27277113, -0.00058380, 0.00035773, 7.27218732, 0.99821638, 0.99905847, 0.49317428,\
+-	-6.27277139, -0.00058369, 0.00035766, 7.27218770, 0.99821672, 0.99905864, 0.49317437,\
+-	-6.27277165, -0.00058358, 0.00035760, 7.27218807, 0.99821706, 0.99905882, 0.49317446,\
+-	-6.27277192, -0.00058347, 0.00035753, 7.27218844, 0.99821739, 0.99905900, 0.49317445,\
+-	-6.27277218, -0.00058336, 0.00035746, 7.27218882, 0.99821773, 0.99905918, 0.49317449,\
+-	-6.27277244, -0.00058325, 0.00035739, 7.27218919, 0.99821806, 0.99905935, 0.49317453,\
+-	-6.27277270, -0.00058314, 0.00035733, 7.27218956, 0.99821840, 0.99905953, 0.49317457,\
+-	-6.27277297, -0.00058303, 0.00035726, 7.27218993, 0.99821874, 0.99905971, 0.49317458,\
+-	-6.27277323, -0.00058292, 0.00035719, 7.27219031, 0.99821907, 0.99905988, 0.49317467,\
+-	-6.27277349, -0.00058281, 0.00035712, 7.27219068, 0.99821941, 0.99906006, 0.49317464,\
+-	-6.27277376, -0.00058270, 0.00035706, 7.27219105, 0.99821974, 0.99906024, 0.49317472,\
+-	-6.27277402, -0.00058259, 0.00035699, 7.27219142, 0.99822008, 0.99906042, 0.49317476,\
+-	-6.27277428, -0.00058248, 0.00035692, 7.27219180, 0.99822041, 0.99906059, 0.49317478,\
+-	-6.27277454, -0.00058237, 0.00035686, 7.27219217, 0.99822075, 0.99906077, 0.49317481,\
+-	-6.27277480, -0.00058227, 0.00035679, 7.27219254, 0.99822108, 0.99906095, 0.49317486,\
+-	-6.27277507, -0.00058216, 0.00035672, 7.27219291, 0.99822142, 0.99906112, 0.49317492,\
+-	-6.27277533, -0.00058205, 0.00035665, 7.27219328, 0.99822175, 0.99906130, 0.49317497,\
+-	-6.27277559, -0.00058194, 0.00035659, 7.27219365, 0.99822209, 0.99906148, 0.49317500,\
+-	-6.27277585, -0.00058183, 0.00035652, 7.27219402, 0.99822242, 0.99906165, 0.49317504,\
+-	-6.27277611, -0.00058172, 0.00035645, 7.27219440, 0.99822275, 0.99906183, 0.49317502,\
+-	-6.27277637, -0.00058161, 0.00035639, 7.27219477, 0.99822309, 0.99906200, 0.49317510,\
+-	-6.27277664, -0.00058150, 0.00035632, 7.27219514, 0.99822342, 0.99906218, 0.49317515,\
+-	-6.27277690, -0.00058139, 0.00035625, 7.27219551, 0.99822376, 0.99906236, 0.49317515,\
+-	-6.27277716, -0.00058128, 0.00035619, 7.27219588, 0.99822409, 0.99906253, 0.49317527,\
+-	-6.27277742, -0.00058117, 0.00035612, 7.27219625, 0.99822442, 0.99906271, 0.49317521,\
+-	-6.27277768, -0.00058106, 0.00035605, 7.27219662, 0.99822476, 0.99906289, 0.49317533,\
+-	-6.27277794, -0.00058095, 0.00035598, 7.27219699, 0.99822509, 0.99906306, 0.49317536,\
+-	-6.27277820, -0.00058084, 0.00035592, 7.27219736, 0.99822542, 0.99906324, 0.49317532,\
+-	-6.27277846, -0.00058074, 0.00035585, 7.27219773, 0.99822576, 0.99906341, 0.49317542,\
+-	-6.27277872, -0.00058063, 0.00035578, 7.27219810, 0.99822609, 0.99906359, 0.49317544,\
+-	-6.27277898, -0.00058052, 0.00035572, 7.27219847, 0.99822642, 0.99906376, 0.49317549,\
+-	-6.27277924, -0.00058041, 0.00035565, 7.27219884, 0.99822675, 0.99906394, 0.49317552,\
+-	-6.27277950, -0.00058030, 0.00035558, 7.27219920, 0.99822709, 0.99906412, 0.49317558,\
+-	-6.27277977, -0.00058019, 0.00035552, 7.27219957, 0.99822742, 0.99906429, 0.49317562,\
+-	-6.27278003, -0.00058008, 0.00035545, 7.27219994, 0.99822775, 0.99906447, 0.49317566,\
+-	-6.27278029, -0.00057997, 0.00035538, 7.27220031, 0.99822808, 0.99906464, 0.49317568,\
+-	-6.27278055, -0.00057987, 0.00035532, 7.27220068, 0.99822842, 0.99906482, 0.49317573,\
+-	-6.27278080, -0.00057976, 0.00035525, 7.27220105, 0.99822875, 0.99906499, 0.49317574,\
+-	-6.27278106, -0.00057965, 0.00035518, 7.27220142, 0.99822908, 0.99906517, 0.49317581,\
+-	-6.27278132, -0.00057954, 0.00035512, 7.27220178, 0.99822941, 0.99906534, 0.49317584,\
+-	-6.27278158, -0.00057943, 0.00035505, 7.27220215, 0.99822974, 0.99906552, 0.49317591,\
+-	-6.27278184, -0.00057932, 0.00035498, 7.27220252, 0.99823008, 0.99906569, 0.49317591,\
+-	-6.27278210, -0.00057921, 0.00035492, 7.27220289, 0.99823041, 0.99906587, 0.49317595,\
+-	-6.27278236, -0.00057911, 0.00035485, 7.27220326, 0.99823074, 0.99906604, 0.49317597,\
+-	-6.27278262, -0.00057900, 0.00035479, 7.27220362, 0.99823107, 0.99906622, 0.49317601,\
+-	-6.27278288, -0.00057889, 0.00035472, 7.27220399, 0.99823140, 0.99906639, 0.49317609,\
+-	-6.27278314, -0.00057878, 0.00035465, 7.27220436, 0.99823173, 0.99906657, 0.49317610,\
+-	-6.27278340, -0.00057867, 0.00035459, 7.27220472, 0.99823206, 0.99906674, 0.49317615,\
+-	-6.27278366, -0.00057857, 0.00035452, 7.27220509, 0.99823239, 0.99906691, 0.49317621,\
+-	-6.27278392, -0.00057846, 0.00035445, 7.27220546, 0.99823272, 0.99906709, 0.49317622,\
+-	-6.27278417, -0.00057835, 0.00035439, 7.27220582, 0.99823305, 0.99906726, 0.49317632,\
+-	-6.27278443, -0.00057824, 0.00035432, 7.27220619, 0.99823338, 0.99906744, 0.49317629,\
+-	-6.27278469, -0.00057813, 0.00035425, 7.27220656, 0.99823371, 0.99906761, 0.49317636,\
+-	-6.27278495, -0.00057802, 0.00035419, 7.27220692, 0.99823404, 0.99906779, 0.49317638,\
+-	-6.27278521, -0.00057792, 0.00035412, 7.27220729, 0.99823437, 0.99906796, 0.49317641,\
+-	-6.27278547, -0.00057781, 0.00035406, 7.27220766, 0.99823470, 0.99906813, 0.49317644,\
+-	-6.27278572, -0.00057770, 0.00035399, 7.27220802, 0.99823503, 0.99906831, 0.49317646,\
+-	-6.27278598, -0.00057759, 0.00035392, 7.27220839, 0.99823536, 0.99906848, 0.49317651,\
+-	-6.27278624, -0.00057749, 0.00035386, 7.27220875, 0.99823569, 0.99906866, 0.49317654,\
+-	-6.27278650, -0.00057738, 0.00035379, 7.27220912, 0.99823602, 0.99906883, 0.49317660,\
+-	-6.27278675, -0.00057727, 0.00035373, 7.27220948, 0.99823635, 0.99906900, 0.49317666,\
+-	-6.27278701, -0.00057716, 0.00035366, 7.27220985, 0.99823668, 0.99906918, 0.49317668,\
+-	-6.27278727, -0.00057706, 0.00035359, 7.27221021, 0.99823701, 0.99906935, 0.49317676,\
+-	-6.27278753, -0.00057695, 0.00035353, 7.27221058, 0.99823734, 0.99906952, 0.49317676,\
+-	-6.27278778, -0.00057684, 0.00035346, 7.27221094, 0.99823766, 0.99906970, 0.49317678,\
+-	-6.27278804, -0.00057673, 0.00035340, 7.27221131, 0.99823799, 0.99906987, 0.49317683,\
+-	-6.27278830, -0.00057663, 0.00035333, 7.27221167, 0.99823832, 0.99907004, 0.49317687,\
+-	-6.27278855, -0.00057652, 0.00035326, 7.27221204, 0.99823865, 0.99907022, 0.49317691,\
+-	-6.27278881, -0.00057641, 0.00035320, 7.27221240, 0.99823898, 0.99907039, 0.49317697,\
+-	-6.27278907, -0.00057630, 0.00035313, 7.27221277, 0.99823931, 0.99907056, 0.49317699,\
+-	-6.27278933, -0.00057620, 0.00035307, 7.27221313, 0.99823963, 0.99907074, 0.49317702,\
+-	-6.27278958, -0.00057609, 0.00035300, 7.27221349, 0.99823996, 0.99907091, 0.49317708,\
+-	-6.27278984, -0.00057598, 0.00035294, 7.27221386, 0.99824029, 0.99907108, 0.49317710,\
+-	-6.27279009, -0.00057587, 0.00035287, 7.27221422, 0.99824062, 0.99907126, 0.49317717,\
+-	-6.27279035, -0.00057577, 0.00035280, 7.27221458, 0.99824094, 0.99907143, 0.49317720,\
+-	-6.27279061, -0.00057566, 0.00035274, 7.27221495, 0.99824127, 0.99907160, 0.49317720,\
+-	-6.27279086, -0.00057555, 0.00035267, 7.27221531, 0.99824160, 0.99907177, 0.49317727,\
+-	-6.27279112, -0.00057545, 0.00035261, 7.27221567, 0.99824193, 0.99907195, 0.49317735,\
+-	-6.27279137, -0.00057534, 0.00035254, 7.27221604, 0.99824225, 0.99907212, 0.49317732,\
+-	-6.27279163, -0.00057523, 0.00035248, 7.27221640, 0.99824258, 0.99907229, 0.49317739,\
+-	-6.27279189, -0.00057513, 0.00035241, 7.27221676, 0.99824291, 0.99907246, 0.49317738,\
+-	-6.27279214, -0.00057502, 0.00035235, 7.27221712, 0.99824323, 0.99907264, 0.49317745,\
+-	-6.27279240, -0.00057491, 0.00035228, 7.27221749, 0.99824356, 0.99907281, 0.49317748,\
+-	-6.27279265, -0.00057480, 0.00035221, 7.27221785, 0.99824389, 0.99907298, 0.49317752,\
+-	-6.27279291, -0.00057470, 0.00035215, 7.27221821, 0.99824421, 0.99907315, 0.49317757,\
+-	-6.27279316, -0.00057459, 0.00035208, 7.27221857, 0.99824454, 0.99907332, 0.49317760,\
+-	-6.27279342, -0.00057448, 0.00035202, 7.27221893, 0.99824486, 0.99907350, 0.49317764,\
+-	-6.27279367, -0.00057438, 0.00035195, 7.27221930, 0.99824519, 0.99907367, 0.49317766,\
+-	-6.27279393, -0.00057427, 0.00035189, 7.27221966, 0.99824551, 0.99907384, 0.49317770,\
+-	-6.27279418, -0.00057417, 0.00035182, 7.27222002, 0.99824584, 0.99907401, 0.49317777,\
+-	-6.27279444, -0.00057406, 0.00035176, 7.27222038, 0.99824617, 0.99907418, 0.49317774,\
+-	-6.27279469, -0.00057395, 0.00035169, 7.27222074, 0.99824649, 0.99907436, 0.49317781,\
+-	-6.27279495, -0.00057385, 0.00035163, 7.27222110, 0.99824682, 0.99907453, 0.49317792,\
+-	-6.27279520, -0.00057374, 0.00035156, 7.27222146, 0.99824714, 0.99907470, 0.49317788,\
+-	-6.27279546, -0.00057363, 0.00035150, 7.27222182, 0.99824747, 0.99907487, 0.49317793,\
+-	-6.27279571, -0.00057353, 0.00035143, 7.27222218, 0.99824779, 0.99907504, 0.49317800,\
+-	-6.27279596, -0.00057342, 0.00035137, 7.27222254, 0.99824812, 0.99907521, 0.49317798,\
+-	-6.27279622, -0.00057331, 0.00035130, 7.27222290, 0.99824844, 0.99907538, 0.49317810,\
+-	-6.27279647, -0.00057321, 0.00035124, 7.27222326, 0.99824877, 0.99907556, 0.49317811,\
+-	-6.27279673, -0.00057310, 0.00035117, 7.27222362, 0.99824909, 0.99907573, 0.49317808,\
+-	-6.27279698, -0.00057300, 0.00035111, 7.27222398, 0.99824941, 0.99907590, 0.49317818,\
+-	-6.27279723, -0.00057289, 0.00035104, 7.27222434, 0.99824974, 0.99907607, 0.49317820,\
+-	-6.27279749, -0.00057278, 0.00035098, 7.27222470, 0.99825006, 0.99907624, 0.49317824,\
+-	-6.27279774, -0.00057268, 0.00035091, 7.27222506, 0.99825039, 0.99907641, 0.49317828,\
+-	-6.27279799, -0.00057257, 0.00035085, 7.27222542, 0.99825071, 0.99907658, 0.49317828,\
+-	-6.27279825, -0.00057247, 0.00035078, 7.27222578, 0.99825103, 0.99907675, 0.49317836,\
+-	-6.27279850, -0.00057236, 0.00035072, 7.27222614, 0.99825136, 0.99907692, 0.49317841,\
+-	-6.27279875, -0.00057225, 0.00035065, 7.27222650, 0.99825168, 0.99907709, 0.49317844,\
+-	-6.27279901, -0.00057215, 0.00035059, 7.27222686, 0.99825200, 0.99907727, 0.49317846,\
+-	-6.27279926, -0.00057204, 0.00035052, 7.27222722, 0.99825233, 0.99907744, 0.49317853,\
+-	-6.27279951, -0.00057194, 0.00035046, 7.27222758, 0.99825265, 0.99907761, 0.49317855,\
+-	-6.27279977, -0.00057183, 0.00035039, 7.27222793, 0.99825297, 0.99907778, 0.49317862,\
+-	-6.27280002, -0.00057173, 0.00035033, 7.27222829, 0.99825330, 0.99907795, 0.49317862,\
+-	-6.27280027, -0.00057162, 0.00035026, 7.27222865, 0.99825362, 0.99907812, 0.49317865,\
+-	-6.27280052, -0.00057152, 0.00035020, 7.27222901, 0.99825394, 0.99907829, 0.49317872,\
+-	-6.27280078, -0.00057141, 0.00035013, 7.27222937, 0.99825426, 0.99907846, 0.49317874,\
+-	-6.27280103, -0.00057130, 0.00035007, 7.27222972, 0.99825459, 0.99907863, 0.49317875,\
+-	-6.27280128, -0.00057120, 0.00035000, 7.27223008, 0.99825491, 0.99907880, 0.49317879,\
+-	-6.27280153, -0.00057109, 0.00034994, 7.27223044, 0.99825523, 0.99907897, 0.49317885,\
+-	-6.27280178, -0.00057099, 0.00034987, 7.27223080, 0.99825555, 0.99907914, 0.49317886,\
+-	-6.27280204, -0.00057088, 0.00034981, 7.27223115, 0.99825587, 0.99907931, 0.49317891,\
+-	-6.27280229, -0.00057078, 0.00034974, 7.27223151, 0.99825620, 0.99907948, 0.49317896,\
+-	-6.27280254, -0.00057067, 0.00034968, 7.27223187, 0.99825652, 0.99907965, 0.49317901,\
+-	-6.27280279, -0.00057057, 0.00034962, 7.27223222, 0.99825684, 0.99907982, 0.49317904,\
+-	-6.27280304, -0.00057046, 0.00034955, 7.27223258, 0.99825716, 0.99907999, 0.49317904,\
+-	-6.27280329, -0.00057036, 0.00034949, 7.27223294, 0.99825748, 0.99908016, 0.49317910,\
+-	-6.27280355, -0.00057025, 0.00034942, 7.27223329, 0.99825780, 0.99908033, 0.49317919,\
+-	-6.27280380, -0.00057015, 0.00034936, 7.27223365, 0.99825812, 0.99908050, 0.49317919,\
+-	-6.27280405, -0.00057004, 0.00034929, 7.27223401, 0.99825844, 0.99908066, 0.49317919,\
+-	-6.27280430, -0.00056994, 0.00034923, 7.27223436, 0.99825877, 0.99908083, 0.49317929,\
+-	-6.27280455, -0.00056983, 0.00034916, 7.27223472, 0.99825909, 0.99908100, 0.49317932,\
+-	-6.27280480, -0.00056973, 0.00034910, 7.27223507, 0.99825941, 0.99908117, 0.49317933,\
+-	-6.27280505, -0.00056962, 0.00034904, 7.27223543, 0.99825973, 0.99908134, 0.49317936,\
+-	-6.27280530, -0.00056952, 0.00034897, 7.27223579, 0.99826005, 0.99908151, 0.49317942,\
+-	-6.27280555, -0.00056941, 0.00034891, 7.27223614, 0.99826037, 0.99908168, 0.49317941,\
+-	-6.27280580, -0.00056931, 0.00034884, 7.27223650, 0.99826069, 0.99908185, 0.49317944,\
+-	-6.27280606, -0.00056920, 0.00034878, 7.27223685, 0.99826101, 0.99908202, 0.49317951,\
+-	-6.27280631, -0.00056910, 0.00034872, 7.27223721, 0.99826133, 0.99908219, 0.49317958,\
+-	-6.27280656, -0.00056899, 0.00034865, 7.27223756, 0.99826165, 0.99908235, 0.49317962,\
+-	-6.27280681, -0.00056889, 0.00034859, 7.27223792, 0.99826197, 0.99908252, 0.49317961,\
+-	-6.27280706, -0.00056878, 0.00034852, 7.27223827, 0.99826229, 0.99908269, 0.49317963,\
+-	-6.27280731, -0.00056868, 0.00034846, 7.27223863, 0.99826261, 0.99908286, 0.49317970,\
+-	-6.27280756, -0.00056858, 0.00034839, 7.27223898, 0.99826293, 0.99908303, 0.49317974,\
+-	-6.27280781, -0.00056847, 0.00034833, 7.27223933, 0.99826324, 0.99908320, 0.49317978,\
+-	-6.27280806, -0.00056837, 0.00034827, 7.27223969, 0.99826356, 0.99908337, 0.49317977,\
+-	-6.27280830, -0.00056826, 0.00034820, 7.27224004, 0.99826388, 0.99908353, 0.49317984,\
+-	-6.27280855, -0.00056816, 0.00034814, 7.27224040, 0.99826420, 0.99908370, 0.49317991,\
+-	-6.27280880, -0.00056805, 0.00034807, 7.27224075, 0.99826452, 0.99908387, 0.49317993,\
+-	-6.27280905, -0.00056795, 0.00034801, 7.27224110, 0.99826484, 0.99908404, 0.49317997,\
+-	-6.27280930, -0.00056785, 0.00034795, 7.27224146, 0.99826516, 0.99908421, 0.49317999,\
+-	-6.27280955, -0.00056774, 0.00034788, 7.27224181, 0.99826547, 0.99908438, 0.49318004,\
+-	-6.27280980, -0.00056764, 0.00034782, 7.27224216, 0.99826579, 0.99908454, 0.49318009,\
+-	-6.27281005, -0.00056753, 0.00034776, 7.27224252, 0.99826611, 0.99908471, 0.49318013,\
+-	-6.27281030, -0.00056743, 0.00034769, 7.27224287, 0.99826643, 0.99908488, 0.49318014,\
+-	-6.27281055, -0.00056733, 0.00034763, 7.27224322, 0.99826675, 0.99908505, 0.49318020,\
+-	-6.27281080, -0.00056722, 0.00034756, 7.27224357, 0.99826706, 0.99908521, 0.49318023,\
+-	-6.27281104, -0.00056712, 0.00034750, 7.27224393, 0.99826738, 0.99908538, 0.49318021,\
+-	-6.27281129, -0.00056701, 0.00034744, 7.27224428, 0.99826770, 0.99908555, 0.49318033,\
+-	-6.27281154, -0.00056691, 0.00034737, 7.27224463, 0.99826802, 0.99908572, 0.49318033,\
+-	-6.27281179, -0.00056681, 0.00034731, 7.27224498, 0.99826833, 0.99908588, 0.49318036,\
+-	-6.27281204, -0.00056670, 0.00034725, 7.27224534, 0.99826865, 0.99908605, 0.49318042,\
+-	-6.27281229, -0.00056660, 0.00034718, 7.27224569, 0.99826897, 0.99908622, 0.49318046,\
+-	-6.27281253, -0.00056649, 0.00034712, 7.27224604, 0.99826929, 0.99908639, 0.49318048,\
+-	-6.27281278, -0.00056639, 0.00034706, 7.27224639, 0.99826960, 0.99908655, 0.49318053,\
+-	-6.27281303, -0.00056629, 0.00034699, 7.27224674, 0.99826992, 0.99908672, 0.49318056,\
+-	-6.27281328, -0.00056618, 0.00034693, 7.27224709, 0.99827024, 0.99908689, 0.49318059,\
+-	-6.27281353, -0.00056608, 0.00034686, 7.27224745, 0.99827055, 0.99908705, 0.49318066,\
+-	-6.27281377, -0.00056598, 0.00034680, 7.27224780, 0.99827087, 0.99908722, 0.49318067,\
+-	-6.27281402, -0.00056587, 0.00034674, 7.27224815, 0.99827119, 0.99908739, 0.49318073,\
+-	-6.27281427, -0.00056577, 0.00034667, 7.27224850, 0.99827150, 0.99908756, 0.49318072,\
+-	-6.27281452, -0.00056567, 0.00034661, 7.27224885, 0.99827182, 0.99908772, 0.49318077,\
+-	-6.27281476, -0.00056556, 0.00034655, 7.27224920, 0.99827213, 0.99908789, 0.49318079,\
+-	-6.27281501, -0.00056546, 0.00034648, 7.27224955, 0.99827245, 0.99908806, 0.49318086,\
+-	-6.27281526, -0.00056536, 0.00034642, 7.27224990, 0.99827276, 0.99908822, 0.49318086,\
+-	-6.27281550, -0.00056525, 0.00034636, 7.27225025, 0.99827308, 0.99908839, 0.49318091,\
+-	-6.27281575, -0.00056515, 0.00034629, 7.27225060, 0.99827340, 0.99908856, 0.49318093,\
+-	-6.27281600, -0.00056505, 0.00034623, 7.27225095, 0.99827371, 0.99908872, 0.49318097,\
+-	-6.27281624, -0.00056494, 0.00034617, 7.27225130, 0.99827403, 0.99908889, 0.49318102,\
+-	-6.27281649, -0.00056484, 0.00034610, 7.27225165, 0.99827434, 0.99908905, 0.49318109,\
+-	-6.27281674, -0.00056474, 0.00034604, 7.27225200, 0.99827466, 0.99908922, 0.49318111,\
+-	-6.27281698, -0.00056463, 0.00034598, 7.27225235, 0.99827497, 0.99908939, 0.49318114,\
+-	-6.27281723, -0.00056453, 0.00034592, 7.27225270, 0.99827529, 0.99908955, 0.49318118,\
+-	-6.27281748, -0.00056443, 0.00034585, 7.27225305, 0.99827560, 0.99908972, 0.49318122,\
+-	-6.27281772, -0.00056433, 0.00034579, 7.27225340, 0.99827591, 0.99908988, 0.49318124,\
+-	-6.27281797, -0.00056422, 0.00034573, 7.27225375, 0.99827623, 0.99909005, 0.49318128,\
+-	-6.27281822, -0.00056412, 0.00034566, 7.27225409, 0.99827654, 0.99909022, 0.49318131,\
+-	-6.27281846, -0.00056402, 0.00034560, 7.27225444, 0.99827686, 0.99909038, 0.49318135,\
+-	-6.27281871, -0.00056391, 0.00034554, 7.27225479, 0.99827717, 0.99909055, 0.49318140,\
+-	-6.27281895, -0.00056381, 0.00034547, 7.27225514, 0.99827749, 0.99909071, 0.49318139,\
+-	-6.27281920, -0.00056371, 0.00034541, 7.27225549, 0.99827780, 0.99909088, 0.49318148,\
+-	-6.27281944, -0.00056361, 0.00034535, 7.27225584, 0.99827811, 0.99909105, 0.49318152,\
+-	-6.27281969, -0.00056350, 0.00034528, 7.27225619, 0.99827843, 0.99909121, 0.49318156,\
+-	-6.27281993, -0.00056340, 0.00034522, 7.27225653, 0.99827874, 0.99909138, 0.49318159,\
+-	-6.27282018, -0.00056330, 0.00034516, 7.27225688, 0.99827905, 0.99909154, 0.49318163,\
+-	-6.27282043, -0.00056320, 0.00034510, 7.27225723, 0.99827937, 0.99909171, 0.49318166,\
+-	-6.27282067, -0.00056309, 0.00034503, 7.27225758, 0.99827968, 0.99909187, 0.49318168,\
+-	-6.27282092, -0.00056299, 0.00034497, 7.27225792, 0.99827999, 0.99909204, 0.49318179,\
+-	-6.27282116, -0.00056289, 0.00034491, 7.27225827, 0.99828031, 0.99909220, 0.49318171,\
+-	-6.27282141, -0.00056279, 0.00034485, 7.27225862, 0.99828062, 0.99909237, 0.49318177,\
+-	-6.27282165, -0.00056268, 0.00034478, 7.27225897, 0.99828093, 0.99909253, 0.49318188,\
+-	-6.27282189, -0.00056258, 0.00034472, 7.27225931, 0.99828124, 0.99909270, 0.49318185,\
+-	-6.27282214, -0.00056248, 0.00034466, 7.27225966, 0.99828156, 0.99909286, 0.49318190,\
+-	-6.27282238, -0.00056238, 0.00034459, 7.27226001, 0.99828187, 0.99909303, 0.49318196,\
+-	-6.27282263, -0.00056228, 0.00034453, 7.27226035, 0.99828218, 0.99909319, 0.49318197,\
+-	-6.27282287, -0.00056217, 0.00034447, 7.27226070, 0.99828249, 0.99909336, 0.49318203,\
+-	-6.27282312, -0.00056207, 0.00034441, 7.27226104, 0.99828281, 0.99909352, 0.49318204,\
+-	-6.27282336, -0.00056197, 0.00034434, 7.27226139, 0.99828312, 0.99909369, 0.49318210,\
+-	-6.27282360, -0.00056187, 0.00034428, 7.27226174, 0.99828343, 0.99909385, 0.49318213,\
+-	-6.27282385, -0.00056177, 0.00034422, 7.27226208, 0.99828374, 0.99909402, 0.49318217,\
+-	-6.27282409, -0.00056166, 0.00034416, 7.27226243, 0.99828405, 0.99909418, 0.49318219,\
+-	-6.27282434, -0.00056156, 0.00034409, 7.27226277, 0.99828436, 0.99909434, 0.49318217,\
+-	-6.27282458, -0.00056146, 0.00034403, 7.27226312, 0.99828467, 0.99909451, 0.49318229,\
+-	-6.27282482, -0.00056136, 0.00034397, 7.27226347, 0.99828499, 0.99909467, 0.49318235,\
+-	-6.27282507, -0.00056126, 0.00034391, 7.27226381, 0.99828530, 0.99909484, 0.49318234,\
+-	-6.27282531, -0.00056115, 0.00034384, 7.27226416, 0.99828561, 0.99909500, 0.49318238,\
+-	-6.27282555, -0.00056105, 0.00034378, 7.27226450, 0.99828592, 0.99909516, 0.49318244,\
+-	-6.27282580, -0.00056095, 0.00034372, 7.27226485, 0.99828623, 0.99909533, 0.49318245,\
+-	-6.27282604, -0.00056085, 0.00034366, 7.27226519, 0.99828654, 0.99909549, 0.49318251,\
+-	-6.27282628, -0.00056075, 0.00034360, 7.27226554, 0.99828685, 0.99909566, 0.49318249,\
+-	-6.27282653, -0.00056065, 0.00034353, 7.27226588, 0.99828716, 0.99909582, 0.49318260,\
+-	-6.27282677, -0.00056055, 0.00034347, 7.27226622, 0.99828747, 0.99909598, 0.49318256,\
+-	-6.27282701, -0.00056044, 0.00034341, 7.27226657, 0.99828778, 0.99909615, 0.49318268,\
+-	-6.27282725, -0.00056034, 0.00034335, 7.27226691, 0.99828809, 0.99909631, 0.49318269,\
+-	-6.27282750, -0.00056024, 0.00034328, 7.27226726, 0.99828840, 0.99909648, 0.49318273,\
+-	-6.27282774, -0.00056014, 0.00034322, 7.27226760, 0.99828871, 0.99909664, 0.49318276,\
+-	-6.27282798, -0.00056004, 0.00034316, 7.27226794, 0.99828902, 0.99909680, 0.49318278,\
+-	-6.27282822, -0.00055994, 0.00034310, 7.27226829, 0.99828933, 0.99909697, 0.49318281,\
+-	-6.27282847, -0.00055984, 0.00034304, 7.27226863, 0.99828964, 0.99909713, 0.49318285,\
+-	-6.27282871, -0.00055973, 0.00034297, 7.27226898, 0.99828995, 0.99909729, 0.49318289,\
+-	-6.27282895, -0.00055963, 0.00034291, 7.27226932, 0.99829026, 0.99909746, 0.49318294,\
+-	-6.27282919, -0.00055953, 0.00034285, 7.27226966, 0.99829057, 0.99909762, 0.49318296,\
+-	-6.27282944, -0.00055943, 0.00034279, 7.27227000, 0.99829088, 0.99909778, 0.49318295,\
+-	-6.27282968, -0.00055933, 0.00034273, 7.27227035, 0.99829119, 0.99909794, 0.49318302,\
+-	-6.27282992, -0.00055923, 0.00034266, 7.27227069, 0.99829150, 0.99909811, 0.49318310,\
+-	-6.27283016, -0.00055913, 0.00034260, 7.27227103, 0.99829180, 0.99909827, 0.49318311,\
+-	-6.27283040, -0.00055903, 0.00034254, 7.27227138, 0.99829211, 0.99909843, 0.49318314,\
+-	-6.27283064, -0.00055893, 0.00034248, 7.27227172, 0.99829242, 0.99909860, 0.49318318,\
+-	-6.27283089, -0.00055882, 0.00034242, 7.27227206, 0.99829273, 0.99909876, 0.49318320,\
+-	-6.27283113, -0.00055872, 0.00034235, 7.27227240, 0.99829304, 0.99909892, 0.49318320,\
+-	-6.27283137, -0.00055862, 0.00034229, 7.27227274, 0.99829335, 0.99909908, 0.49318327,\
+-	-6.27283161, -0.00055852, 0.00034223, 7.27227309, 0.99829365, 0.99909925, 0.49318333,\
+-	-6.27283185, -0.00055842, 0.00034217, 7.27227343, 0.99829396, 0.99909941, 0.49318333,\
+-	-6.27283209, -0.00055832, 0.00034211, 7.27227377, 0.99829427, 0.99909957, 0.49318336,\
+-	-6.27283233, -0.00055822, 0.00034204, 7.27227411, 0.99829458, 0.99909973, 0.49318343,\
+-	-6.27283257, -0.00055812, 0.00034198, 7.27227445, 0.99829489, 0.99909990, 0.49318344,\
+-	-6.27283281, -0.00055802, 0.00034192, 7.27227479, 0.99829519, 0.99910006, 0.49318351,\
+-	-6.27283305, -0.00055792, 0.00034186, 7.27227514, 0.99829550, 0.99910022, 0.49318353,\
+-	-6.27283329, -0.00055782, 0.00034180, 7.27227548, 0.99829581, 0.99910038, 0.49318358,\
+-	-6.27283353, -0.00055772, 0.00034174, 7.27227582, 0.99829611, 0.99910055, 0.49318362,\
+-	-6.27283378, -0.00055762, 0.00034168, 7.27227616, 0.99829642, 0.99910071, 0.49318360,\
+-	-6.27283402, -0.00055752, 0.00034161, 7.27227650, 0.99829673, 0.99910087, 0.49318367,\
+-	-6.27283426, -0.00055742, 0.00034155, 7.27227684, 0.99829704, 0.99910103, 0.49318371,\
+-	-6.27283450, -0.00055732, 0.00034149, 7.27227718, 0.99829734, 0.99910119, 0.49318374,\
+-	-6.27283474, -0.00055722, 0.00034143, 7.27227752, 0.99829765, 0.99910136, 0.49318380,\
+-	-6.27283498, -0.00055712, 0.00034137, 7.27227786, 0.99829796, 0.99910152, 0.49318376,\
+-	-6.27283522, -0.00055701, 0.00034131, 7.27227820, 0.99829826, 0.99910168, 0.49318386,\
+-	-6.27283546, -0.00055691, 0.00034124, 7.27227854, 0.99829857, 0.99910184, 0.49318389,\
+-	-6.27283570, -0.00055681, 0.00034118, 7.27227888, 0.99829887, 0.99910200, 0.49318390,\
+-	-6.27283593, -0.00055671, 0.00034112, 7.27227922, 0.99829918, 0.99910216, 0.49318396,\
+-	-6.27283617, -0.00055661, 0.00034106, 7.27227956, 0.99829949, 0.99910233, 0.49318401,\
+-	-6.27283641, -0.00055651, 0.00034100, 7.27227990, 0.99829979, 0.99910249, 0.49318410,\
+-	-6.27283665, -0.00055641, 0.00034094, 7.27228024, 0.99830010, 0.99910265, 0.49318407,\
+-	-6.27283689, -0.00055631, 0.00034088, 7.27228058, 0.99830040, 0.99910281, 0.49318407,\
+-	-6.27283713, -0.00055621, 0.00034081, 7.27228092, 0.99830071, 0.99910297, 0.49318414,\
+-	-6.27283737, -0.00055611, 0.00034075, 7.27228126, 0.99830101, 0.99910313, 0.49318415,\
+-	-6.27283761, -0.00055601, 0.00034069, 7.27228159, 0.99830132, 0.99910329, 0.49318423,\
+-	-6.27283785, -0.00055591, 0.00034063, 7.27228193, 0.99830163, 0.99910345, 0.49318423,\
+-	-6.27283809, -0.00055581, 0.00034057, 7.27228227, 0.99830193, 0.99910362, 0.49318427,\
+-	-6.27283833, -0.00055571, 0.00034051, 7.27228261, 0.99830224, 0.99910378, 0.49318428,\
+-	-6.27283856, -0.00055562, 0.00034045, 7.27228295, 0.99830254, 0.99910394, 0.49318433,\
+-	-6.27283880, -0.00055552, 0.00034039, 7.27228329, 0.99830285, 0.99910410, 0.49318443,\
+-	-6.27283904, -0.00055542, 0.00034033, 7.27228363, 0.99830315, 0.99910426, 0.49318443,\
+-	-6.27283928, -0.00055532, 0.00034026, 7.27228396, 0.99830345, 0.99910442, 0.49318449,\
+-	-6.27283952, -0.00055522, 0.00034020, 7.27228430, 0.99830376, 0.99910458, 0.49318449,\
+-	-6.27283976, -0.00055512, 0.00034014, 7.27228464, 0.99830406, 0.99910474, 0.49318454,\
+-	-6.27283999, -0.00055502, 0.00034008, 7.27228498, 0.99830437, 0.99910490, 0.49318457,\
+-	-6.27284023, -0.00055492, 0.00034002, 7.27228531, 0.99830467, 0.99910506, 0.49318459,\
+-	-6.27284047, -0.00055482, 0.00033996, 7.27228565, 0.99830498, 0.99910522, 0.49318460,\
+-	-6.27284071, -0.00055472, 0.00033990, 7.27228599, 0.99830528, 0.99910538, 0.49318465,\
+-	-6.27284095, -0.00055462, 0.00033984, 7.27228633, 0.99830558, 0.99910554, 0.49318472,\
+-	-6.27284118, -0.00055452, 0.00033978, 7.27228666, 0.99830589, 0.99910570, 0.49318477,\
+-	-6.27284142, -0.00055442, 0.00033972, 7.27228700, 0.99830619, 0.99910586, 0.49318479,\
+-	-6.27284166, -0.00055432, 0.00033965, 7.27228734, 0.99830649, 0.99910602, 0.49318483,\
+-	-6.27284190, -0.00055422, 0.00033959, 7.27228767, 0.99830680, 0.99910618, 0.49318487,\
+-	-6.27284213, -0.00055412, 0.00033953, 7.27228801, 0.99830710, 0.99910634, 0.49318489,\
+-	-6.27284237, -0.00055402, 0.00033947, 7.27228835, 0.99830740, 0.99910650, 0.49318490,\
+-	-6.27284261, -0.00055393, 0.00033941, 7.27228868, 0.99830771, 0.99910666, 0.49318496,\
+-	-6.27284285, -0.00055383, 0.00033935, 7.27228902, 0.99830801, 0.99910682, 0.49318499,\
+-	-6.27284308, -0.00055373, 0.00033929, 7.27228936, 0.99830831, 0.99910698, 0.49318499,\
+-	-6.27284332, -0.00055363, 0.00033923, 7.27228969, 0.99830861, 0.99910714, 0.49318509,\
+-	-6.27284356, -0.00055353, 0.00033917, 7.27229003, 0.99830892, 0.99910730, 0.49318511,\
+-	-6.27284379, -0.00055343, 0.00033911, 7.27229036, 0.99830922, 0.99910746, 0.49318515,\
+-	-6.27284403, -0.00055333, 0.00033905, 7.27229070, 0.99830952, 0.99910762, 0.49318516,\
+-	-6.27284427, -0.00055323, 0.00033899, 7.27229103, 0.99830982, 0.99910778, 0.49318524,\
+-	-6.27284450, -0.00055313, 0.00033893, 7.27229137, 0.99831013, 0.99910794, 0.49318524,\
+-	-6.27284474, -0.00055303, 0.00033887, 7.27229170, 0.99831043, 0.99910810, 0.49318528,\
+-	-6.27284498, -0.00055294, 0.00033880, 7.27229204, 0.99831073, 0.99910826, 0.49318529,\
+-	-6.27284521, -0.00055284, 0.00033874, 7.27229237, 0.99831103, 0.99910842, 0.49318533,\
+-	-6.27284545, -0.00055274, 0.00033868, 7.27229271, 0.99831133, 0.99910858, 0.49318539,\
+-	-6.27284568, -0.00055264, 0.00033862, 7.27229304, 0.99831164, 0.99910874, 0.49318542,\
+-	-6.27284592, -0.00055254, 0.00033856, 7.27229338, 0.99831194, 0.99910890, 0.49318543,\
+-	-6.27284616, -0.00055244, 0.00033850, 7.27229371, 0.99831224, 0.99910906, 0.49318547,\
+-	-6.27284639, -0.00055234, 0.00033844, 7.27229405, 0.99831254, 0.99910921, 0.49318555,\
+-	-6.27284663, -0.00055225, 0.00033838, 7.27229438, 0.99831284, 0.99910937, 0.49318557,\
+-	-6.27284686, -0.00055215, 0.00033832, 7.27229472, 0.99831314, 0.99910953, 0.49318561,\
+-	-6.27284710, -0.00055205, 0.00033826, 7.27229505, 0.99831344, 0.99910969, 0.49318565,\
+-	-6.27284733, -0.00055195, 0.00033820, 7.27229538, 0.99831374, 0.99910985, 0.49318570,\
+-	-6.27284757, -0.00055185, 0.00033814, 7.27229572, 0.99831404, 0.99911001, 0.49318569,\
+-	-6.27284781, -0.00055175, 0.00033808, 7.27229605, 0.99831435, 0.99911017, 0.49318574,\
+-	-6.27284804, -0.00055165, 0.00033802, 7.27229639, 0.99831465, 0.99911033, 0.49318575,\
+-	-6.27284828, -0.00055156, 0.00033796, 7.27229672, 0.99831495, 0.99911048, 0.49318581,\
+-	-6.27284851, -0.00055146, 0.00033790, 7.27229705, 0.99831525, 0.99911064, 0.49318582,\
+-	-6.27284875, -0.00055136, 0.00033784, 7.27229739, 0.99831555, 0.99911080, 0.49318586,\
+-	-6.27284898, -0.00055126, 0.00033778, 7.27229772, 0.99831585, 0.99911096, 0.49318588,\
+-	-6.27284922, -0.00055116, 0.00033772, 7.27229805, 0.99831615, 0.99911112, 0.49318595,\
+-	-6.27284945, -0.00055107, 0.00033766, 7.27229838, 0.99831645, 0.99911128, 0.49318599,\
+-	-6.27284968, -0.00055097, 0.00033760, 7.27229872, 0.99831675, 0.99911143, 0.49318604,\
+-	-6.27284992, -0.00055087, 0.00033754, 7.27229905, 0.99831705, 0.99911159, 0.49318604,\
+-	-6.27285015, -0.00055077, 0.00033748, 7.27229938, 0.99831735, 0.99911175, 0.49318612,\
+-	-6.27285039, -0.00055067, 0.00033742, 7.27229971, 0.99831765, 0.99911191, 0.49318613,\
+-	-6.27285062, -0.00055058, 0.00033736, 7.27230005, 0.99831794, 0.99911207, 0.49318622,\
+-	-6.27285086, -0.00055048, 0.00033730, 7.27230038, 0.99831824, 0.99911223, 0.49318623,\
+-	-6.27285109, -0.00055038, 0.00033724, 7.27230071, 0.99831854, 0.99911238, 0.49318626,\
+-	-6.27285133, -0.00055028, 0.00033718, 7.27230104, 0.99831884, 0.99911254, 0.49318626,\
+-	-6.27285156, -0.00055018, 0.00033712, 7.27230138, 0.99831914, 0.99911270, 0.49318628,\
+-	-6.27285179, -0.00055009, 0.00033706, 7.27230171, 0.99831944, 0.99911286, 0.49318633,\
+-	-6.27285203, -0.00054999, 0.00033700, 7.27230204, 0.99831974, 0.99911301, 0.49318637,\
+-	-6.27285226, -0.00054989, 0.00033694, 7.27230237, 0.99832004, 0.99911317, 0.49318637,\
+-	-6.27285249, -0.00054979, 0.00033688, 7.27230270, 0.99832034, 0.99911333, 0.49318644,\
+-	-6.27285273, -0.00054970, 0.00033682, 7.27230303, 0.99832063, 0.99911349, 0.49318645,\
+-	-6.27285296, -0.00054960, 0.00033676, 7.27230336, 0.99832093, 0.99911364, 0.49318646,\
+-	-6.27285319, -0.00054950, 0.00033670, 7.27230369, 0.99832123, 0.99911380, 0.49318651,\
+-	-6.27285343, -0.00054940, 0.00033664, 7.27230403, 0.99832153, 0.99911396, 0.49318650,\
+-	-6.27285366, -0.00054931, 0.00033658, 7.27230436, 0.99832183, 0.99911412, 0.49318659,\
+-	-6.27285389, -0.00054921, 0.00033652, 7.27230469, 0.99832212, 0.99911427, 0.49318666,\
+-	-6.27285413, -0.00054911, 0.00033646, 7.27230502, 0.99832242, 0.99911443, 0.49318665,\
+-	-6.27285436, -0.00054901, 0.00033640, 7.27230535, 0.99832272, 0.99911459, 0.49318670,\
+-	-6.27285459, -0.00054892, 0.00033634, 7.27230568, 0.99832302, 0.99911474, 0.49318673,\
+-	-6.27285483, -0.00054882, 0.00033628, 7.27230601, 0.99832332, 0.99911490, 0.49318677,\
+-	-6.27285506, -0.00054872, 0.00033622, 7.27230634, 0.99832361, 0.99911506, 0.49318685,\
+-	-6.27285529, -0.00054862, 0.00033616, 7.27230667, 0.99832391, 0.99911522, 0.49318683,\
+-	-6.27285552, -0.00054853, 0.00033610, 7.27230700, 0.99832421, 0.99911537, 0.49318692,\
+-	-6.27285576, -0.00054843, 0.00033604, 7.27230733, 0.99832450, 0.99911553, 0.49318690,\
+-	-6.27285599, -0.00054833, 0.00033598, 7.27230766, 0.99832480, 0.99911569, 0.49318694,\
+-	-6.27285622, -0.00054824, 0.00033592, 7.27230799, 0.99832510, 0.99911584, 0.49318700,\
+-	-6.27285645, -0.00054814, 0.00033586, 7.27230832, 0.99832539, 0.99911600, 0.49318701,\
+-	-6.27285669, -0.00054804, 0.00033580, 7.27230865, 0.99832569, 0.99911616, 0.49318705,\
+-	-6.27285692, -0.00054794, 0.00033574, 7.27230897, 0.99832599, 0.99911631, 0.49318711,\
+-	-6.27285715, -0.00054785, 0.00033568, 7.27230930, 0.99832628, 0.99911647, 0.49318708,\
+-	-6.27285738, -0.00054775, 0.00033563, 7.27230963, 0.99832658, 0.99911662, 0.49318719,\
+-	-6.27285761, -0.00054765, 0.00033557, 7.27230996, 0.99832688, 0.99911678, 0.49318717,\
+-	-6.27285785, -0.00054756, 0.00033551, 7.27231029, 0.99832717, 0.99911694, 0.49318724,\
+-	-6.27285808, -0.00054746, 0.00033545, 7.27231062, 0.99832747, 0.99911709, 0.49318723,\
+-	-6.27285831, -0.00054736, 0.00033539, 7.27231095, 0.99832776, 0.99911725, 0.49318729,\
+-	-6.27285854, -0.00054727, 0.00033533, 7.27231127, 0.99832806, 0.99911741, 0.49318737,\
+-	-6.27285877, -0.00054717, 0.00033527, 7.27231160, 0.99832836, 0.99911756, 0.49318736,\
+-	-6.27285900, -0.00054707, 0.00033521, 7.27231193, 0.99832865, 0.99911772, 0.49318737,\
+-	-6.27285923, -0.00054698, 0.00033515, 7.27231226, 0.99832895, 0.99911787, 0.49318744,\
+-	-6.27285947, -0.00054688, 0.00033509, 7.27231259, 0.99832924, 0.99911803, 0.49318747,\
+-	-6.27285970, -0.00054678, 0.00033503, 7.27231291, 0.99832954, 0.99911819, 0.49318750,\
+-	-6.27285993, -0.00054669, 0.00033497, 7.27231324, 0.99832983, 0.99911834, 0.49318752,\
+-	-6.27286016, -0.00054659, 0.00033491, 7.27231357, 0.99833013, 0.99911850, 0.49318756,\
+-	-6.27286039, -0.00054649, 0.00033485, 7.27231390, 0.99833042, 0.99911865, 0.49318760,\
+-	-6.27286062, -0.00054640, 0.00033480, 7.27231422, 0.99833072, 0.99911881, 0.49318765,\
+-	-6.27286085, -0.00054630, 0.00033474, 7.27231455, 0.99833101, 0.99911896, 0.49318766,\
+-	-6.27286108, -0.00054620, 0.00033468, 7.27231488, 0.99833131, 0.99911912, 0.49318767,\
+-	-6.27286131, -0.00054611, 0.00033462, 7.27231521, 0.99833160, 0.99911927, 0.49318769,\
+-	-6.27286154, -0.00054601, 0.00033456, 7.27231553, 0.99833190, 0.99911943, 0.49318777,\
+-	-6.27286177, -0.00054591, 0.00033450, 7.27231586, 0.99833219, 0.99911959, 0.49318778,\
+-	-6.27286200, -0.00054582, 0.00033444, 7.27231619, 0.99833248, 0.99911974, 0.49318783,\
+-	-6.27286223, -0.00054572, 0.00033438, 7.27231651, 0.99833278, 0.99911990, 0.49318785,\
+-	-6.27286246, -0.00054563, 0.00033432, 7.27231684, 0.99833307, 0.99912005, 0.49318790,\
+-	-6.27286269, -0.00054553, 0.00033426, 7.27231716, 0.99833337, 0.99912021, 0.49318796,\
+-	-6.27286292, -0.00054543, 0.00033420, 7.27231749, 0.99833366, 0.99912036, 0.49318798,\
+-	-6.27286315, -0.00054534, 0.00033415, 7.27231782, 0.99833395, 0.99912052, 0.49318802,\
+-	-6.27286338, -0.00054524, 0.00033409, 7.27231814, 0.99833425, 0.99912067, 0.49318801,\
+-	-6.27286361, -0.00054515, 0.00033403, 7.27231847, 0.99833454, 0.99912083, 0.49318810,\
+-	-6.27286384, -0.00054505, 0.00033397, 7.27231879, 0.99833483, 0.99912098, 0.49318815,\
+-	-6.27286407, -0.00054495, 0.00033391, 7.27231912, 0.99833513, 0.99912114, 0.49318815,\
+-	-6.27286430, -0.00054486, 0.00033385, 7.27231944, 0.99833542, 0.99912129, 0.49318821,\
+-	-6.27286453, -0.00054476, 0.00033379, 7.27231977, 0.99833571, 0.99912145, 0.49318820,\
+-	-6.27286476, -0.00054467, 0.00033373, 7.27232010, 0.99833601, 0.99912160, 0.49318828,\
+-	-6.27286499, -0.00054457, 0.00033368, 7.27232042, 0.99833630, 0.99912175, 0.49318827,\
+-	-6.27286522, -0.00054447, 0.00033362, 7.27232075, 0.99833659, 0.99912191, 0.49318830,\
+-	-6.27286545, -0.00054438, 0.00033356, 7.27232107, 0.99833689, 0.99912206, 0.49318834,\
+-	-6.27286568, -0.00054428, 0.00033350, 7.27232139, 0.99833718, 0.99912222, 0.49318840,\
+-	-6.27286591, -0.00054419, 0.00033344, 7.27232172, 0.99833747, 0.99912237, 0.49318849,\
+-	-6.27286614, -0.00054409, 0.00033338, 7.27232204, 0.99833776, 0.99912253, 0.49318845,\
+-	-6.27286636, -0.00054400, 0.00033332, 7.27232237, 0.99833805, 0.99912268, 0.49318852,\
+-	-6.27286659, -0.00054390, 0.00033326, 7.27232269, 0.99833835, 0.99912283, 0.49318851,\
+-	-6.27286682, -0.00054380, 0.00033321, 7.27232302, 0.99833864, 0.99912299, 0.49318855,\
+-	-6.27286705, -0.00054371, 0.00033315, 7.27232334, 0.99833893, 0.99912314, 0.49318857,\
+-	-6.27286728, -0.00054361, 0.00033309, 7.27232366, 0.99833922, 0.99912330, 0.49318863,\
+-	-6.27286751, -0.00054352, 0.00033303, 7.27232399, 0.99833951, 0.99912345, 0.49318865,\
+-	-6.27286774, -0.00054342, 0.00033297, 7.27232431, 0.99833981, 0.99912360, 0.49318871,\
+-	-6.27286796, -0.00054333, 0.00033291, 7.27232464, 0.99834010, 0.99912376, 0.49318871,\
+-	-6.27286819, -0.00054323, 0.00033286, 7.27232496, 0.99834039, 0.99912391, 0.49318882,\
+-	-6.27286842, -0.00054314, 0.00033280, 7.27232528, 0.99834068, 0.99912407, 0.49318885,\
+-	-6.27286865, -0.00054304, 0.00033274, 7.27232561, 0.99834097, 0.99912422, 0.49318882,\
+-	-6.27286888, -0.00054295, 0.00033268, 7.27232593, 0.99834126, 0.99912437, 0.49318888,\
+-	-6.27286910, -0.00054285, 0.00033262, 7.27232625, 0.99834155, 0.99912453, 0.49318890,\
+-	-6.27286933, -0.00054276, 0.00033256, 7.27232657, 0.99834184, 0.99912468, 0.49318892,\
+-	-6.27286956, -0.00054266, 0.00033250, 7.27232690, 0.99834214, 0.99912483, 0.49318896,\
+-	-6.27286979, -0.00054257, 0.00033245, 7.27232722, 0.99834243, 0.99912499, 0.49318900,\
+-	-6.27287001, -0.00054247, 0.00033239, 7.27232754, 0.99834272, 0.99912514, 0.49318899,\
+-	-6.27287024, -0.00054238, 0.00033233, 7.27232787, 0.99834301, 0.99912529, 0.49318908,\
+-	-6.27287047, -0.00054228, 0.00033227, 7.27232819, 0.99834330, 0.99912545, 0.49318910,\
+-	-6.27287070, -0.00054219, 0.00033221, 7.27232851, 0.99834359, 0.99912560, 0.49318913,\
+-	-6.27287092, -0.00054209, 0.00033216, 7.27232883, 0.99834388, 0.99912575, 0.49318913,\
+-	-6.27287115, -0.00054200, 0.00033210, 7.27232915, 0.99834417, 0.99912591, 0.49318919,\
+-	-6.27287138, -0.00054190, 0.00033204, 7.27232948, 0.99834446, 0.99912606, 0.49318918,\
+-	-6.27287160, -0.00054181, 0.00033198, 7.27232980, 0.99834475, 0.99912621, 0.49318924,\
+-	-6.27287183, -0.00054171, 0.00033192, 7.27233012, 0.99834504, 0.99912637, 0.49318928,\
+-	-6.27287206, -0.00054162, 0.00033186, 7.27233044, 0.99834533, 0.99912652, 0.49318937,\
+-	-6.27287228, -0.00054152, 0.00033181, 7.27233076, 0.99834562, 0.99912667, 0.49318939,\
+-	-6.27287251, -0.00054143, 0.00033175, 7.27233108, 0.99834591, 0.99912682, 0.49318942,\
+-	-6.27287274, -0.00054133, 0.00033169, 7.27233140, 0.99834620, 0.99912698, 0.49318944,\
+-	-6.27287296, -0.00054124, 0.00033163, 7.27233173, 0.99834649, 0.99912713, 0.49318945,\
+-	-6.27287319, -0.00054114, 0.00033157, 7.27233205, 0.99834677, 0.99912728, 0.49318948,\
+-	-6.27287342, -0.00054105, 0.00033152, 7.27233237, 0.99834706, 0.99912744, 0.49318948,\
+-	-6.27287364, -0.00054095, 0.00033146, 7.27233269, 0.99834735, 0.99912759, 0.49318960,\
+-	-6.27287387, -0.00054086, 0.00033140, 7.27233301, 0.99834764, 0.99912774, 0.49318965,\
+-	-6.27287409, -0.00054076, 0.00033134, 7.27233333, 0.99834793, 0.99912789, 0.49318963,\
+-	-6.27287432, -0.00054067, 0.00033128, 7.27233365, 0.99834822, 0.99912805, 0.49318967,\
+-	-6.27287455, -0.00054058, 0.00033123, 7.27233397, 0.99834851, 0.99912820, 0.49318974,\
+-	-6.27287477, -0.00054048, 0.00033117, 7.27233429, 0.99834880, 0.99912835, 0.49318975,\
+-	-6.27287500, -0.00054039, 0.00033111, 7.27233461, 0.99834908, 0.99912850, 0.49318982,\
+-	-6.27287522, -0.00054029, 0.00033105, 7.27233493, 0.99834937, 0.99912865, 0.49318976,\
+-	-6.27287545, -0.00054020, 0.00033100, 7.27233525, 0.99834966, 0.99912881, 0.49318982,\
+-	-6.27287568, -0.00054010, 0.00033094, 7.27233557, 0.99834995, 0.99912896, 0.49318990,\
+-	-6.27287590, -0.00054001, 0.00033088, 7.27233589, 0.99835024, 0.99912911, 0.49318991,\
+-	-6.27287613, -0.00053992, 0.00033082, 7.27233621, 0.99835052, 0.99912926, 0.49318988,\
+-	-6.27287635, -0.00053982, 0.00033076, 7.27233653, 0.99835081, 0.99912941, 0.49319001,\
+-	-6.27287658, -0.00053973, 0.00033071, 7.27233685, 0.99835110, 0.99912957, 0.49318998,\
+-	-6.27287680, -0.00053963, 0.00033065, 7.27233717, 0.99835139, 0.99912972, 0.49319007,\
+-	-6.27287703, -0.00053954, 0.00033059, 7.27233749, 0.99835168, 0.99912987, 0.49319009,\
+-	-6.27287725, -0.00053945, 0.00033053, 7.27233781, 0.99835196, 0.99913002, 0.49319013,\
+-	-6.27287748, -0.00053935, 0.00033048, 7.27233812, 0.99835225, 0.99913017, 0.49319012,\
+-	-6.27287770, -0.00053926, 0.00033042, 7.27233844, 0.99835254, 0.99913032, 0.49319022,\
+-	-6.27287793, -0.00053916, 0.00033036, 7.27233876, 0.99835282, 0.99913048, 0.49319019,\
+-	-6.27287815, -0.00053907, 0.00033030, 7.27233908, 0.99835311, 0.99913063, 0.49319021,\
+-	-6.27287838, -0.00053898, 0.00033025, 7.27233940, 0.99835340, 0.99913078, 0.49319029,\
+-	-6.27287860, -0.00053888, 0.00033019, 7.27233972, 0.99835368, 0.99913093, 0.49319029,\
+-	-6.27287882, -0.00053879, 0.00033013, 7.27234004, 0.99835397, 0.99913108, 0.49319033,\
+-	-6.27287905, -0.00053869, 0.00033007, 7.27234035, 0.99835426, 0.99913123, 0.49319038,\
+-	-6.27287927, -0.00053860, 0.00033002, 7.27234067, 0.99835454, 0.99913138, 0.49319044,\
+-	-6.27287950, -0.00053851, 0.00032996, 7.27234099, 0.99835483, 0.99913153, 0.49319044,\
+-	-6.27287972, -0.00053841, 0.00032990, 7.27234131, 0.99835512, 0.99913169, 0.49319052,\
+-	-6.27287994, -0.00053832, 0.00032984, 7.27234162, 0.99835540, 0.99913184, 0.49319053,\
+-	-6.27288017, -0.00053823, 0.00032979, 7.27234194, 0.99835569, 0.99913199, 0.49319055,\
+-	-6.27288039, -0.00053813, 0.00032973, 7.27234226, 0.99835598, 0.99913214, 0.49319059,\
+-	-6.27288062, -0.00053804, 0.00032967, 7.27234258, 0.99835626, 0.99913229, 0.49319064,\
+-	-6.27288084, -0.00053795, 0.00032961, 7.27234289, 0.99835655, 0.99913244, 0.49319065,\
+-	-6.27288106, -0.00053785, 0.00032956, 7.27234321, 0.99835683, 0.99913259, 0.49319063,\
+-	-6.27288129, -0.00053776, 0.00032950, 7.27234353, 0.99835712, 0.99913274, 0.49319073,\
+-	-6.27288151, -0.00053767, 0.00032944, 7.27234385, 0.99835740, 0.99913289, 0.49319071,\
+-	-6.27288173, -0.00053757, 0.00032938, 7.27234416, 0.99835769, 0.99913304, 0.49319080,\
+-	-6.27288196, -0.00053748, 0.00032933, 7.27234448, 0.99835797, 0.99913319, 0.49319079,\
+-	-6.27288218, -0.00053739, 0.00032927, 7.27234480, 0.99835826, 0.99913334, 0.49319084,\
+-	-6.27288240, -0.00053729, 0.00032921, 7.27234511, 0.99835854, 0.99913349, 0.49319094,\
+-	-6.27288263, -0.00053720, 0.00032916, 7.27234543, 0.99835883, 0.99913365, 0.49319090,\
+-	-6.27288285, -0.00053711, 0.00032910, 7.27234574, 0.99835911, 0.99913380, 0.49319093,\
+-	-6.27288307, -0.00053701, 0.00032904, 7.27234606, 0.99835940, 0.99913395, 0.49319095,\
+-	-6.27288330, -0.00053692, 0.00032898, 7.27234638, 0.99835968, 0.99913410, 0.49319102,\
+-	-6.27288352, -0.00053683, 0.00032893, 7.27234669, 0.99835997, 0.99913425, 0.49319110,\
+-	-6.27288374, -0.00053673, 0.00032887, 7.27234701, 0.99836025, 0.99913440, 0.49319107,\
+-	-6.27288396, -0.00053664, 0.00032881, 7.27234732, 0.99836054, 0.99913455, 0.49319115,\
+-	-6.27288419, -0.00053655, 0.00032876, 7.27234764, 0.99836082, 0.99913470, 0.49319113,\
+-	-6.27288441, -0.00053645, 0.00032870, 7.27234795, 0.99836111, 0.99913485, 0.49319119,\
+-	-6.27288463, -0.00053636, 0.00032864, 7.27234827, 0.99836139, 0.99913500, 0.49319119,\
+-	-6.27288485, -0.00053627, 0.00032859, 7.27234859, 0.99836167, 0.99913515, 0.49319124,\
+-	-6.27288508, -0.00053618, 0.00032853, 7.27234890, 0.99836196, 0.99913530, 0.49319131,\
+-	-6.27288530, -0.00053608, 0.00032847, 7.27234922, 0.99836224, 0.99913545, 0.49319132,\
+-	-6.27288552, -0.00053599, 0.00032841, 7.27234953, 0.99836253, 0.99913560, 0.49319134,\
+-	-6.27288574, -0.00053590, 0.00032836, 7.27234985, 0.99836281, 0.99913575, 0.49319141,\
+-	-6.27288596, -0.00053580, 0.00032830, 7.27235016, 0.99836309, 0.99913590, 0.49319142,\
+-	-6.27288619, -0.00053571, 0.00032824, 7.27235047, 0.99836338, 0.99913604, 0.49319138,\
+-	-6.27288641, -0.00053562, 0.00032819, 7.27235079, 0.99836366, 0.99913619, 0.49319145,\
+-	-6.27288663, -0.00053553, 0.00032813, 7.27235110, 0.99836394, 0.99913634, 0.49319149,\
+-	-6.27288685, -0.00053543, 0.00032807, 7.27235142, 0.99836423, 0.99913649, 0.49319155,\
+-	-6.27288707, -0.00053534, 0.00032802, 7.27235173, 0.99836451, 0.99913664, 0.49319156,\
+-	-6.27288729, -0.00053525, 0.00032796, 7.27235205, 0.99836479, 0.99913679, 0.49319156,\
+-	-6.27288752, -0.00053516, 0.00032790, 7.27235236, 0.99836507, 0.99913694, 0.49319162,\
+-	-6.27288774, -0.00053506, 0.00032785, 7.27235267, 0.99836536, 0.99913709, 0.49319169,\
+-	-6.27288796, -0.00053497, 0.00032779, 7.27235299, 0.99836564, 0.99913724, 0.49319169,\
+-	-6.27288818, -0.00053488, 0.00032773, 7.27235330, 0.99836592, 0.99913739, 0.49319176,\
+-	-6.27288840, -0.00053479, 0.00032768, 7.27235361, 0.99836620, 0.99913754, 0.49319177,\
+-	-6.27288862, -0.00053469, 0.00032762, 7.27235393, 0.99836649, 0.99913769, 0.49319182,\
+-	-6.27288884, -0.00053460, 0.00032756, 7.27235424, 0.99836677, 0.99913784, 0.49319183,\
+-	-6.27288906, -0.00053451, 0.00032751, 7.27235455, 0.99836705, 0.99913798, 0.49319186,\
+-	-6.27288928, -0.00053442, 0.00032745, 7.27235487, 0.99836733, 0.99913813, 0.49319195,\
+-	-6.27288950, -0.00053432, 0.00032739, 7.27235518, 0.99836762, 0.99913828, 0.49319191,\
+-	-6.27288973, -0.00053423, 0.00032734, 7.27235549, 0.99836790, 0.99913843, 0.49319195,\
+-	-6.27288995, -0.00053414, 0.00032728, 7.27235581, 0.99836818, 0.99913858, 0.49319198,\
+-	-6.27289017, -0.00053405, 0.00032722, 7.27235612, 0.99836846, 0.99913873, 0.49319204,\
+-	-6.27289039, -0.00053396, 0.00032717, 7.27235643, 0.99836874, 0.99913888, 0.49319208,\
+-	-6.27289061, -0.00053386, 0.00032711, 7.27235674, 0.99836902, 0.99913903, 0.49319213,\
+-	-6.27289083, -0.00053377, 0.00032705, 7.27235706, 0.99836931, 0.99913917, 0.49319212,\
+-	-6.27289105, -0.00053368, 0.00032700, 7.27235737, 0.99836959, 0.99913932, 0.49319218,\
+-	-6.27289127, -0.00053359, 0.00032694, 7.27235768, 0.99836987, 0.99913947, 0.49319222,\
+-	-6.27289149, -0.00053350, 0.00032689, 7.27235799, 0.99837015, 0.99913962, 0.49319223,\
+-	-6.27289171, -0.00053340, 0.00032683, 7.27235830, 0.99837043, 0.99913977, 0.49319229,\
+-	-6.27289193, -0.00053331, 0.00032677, 7.27235862, 0.99837071, 0.99913992, 0.49319228,\
+-	-6.27289215, -0.00053322, 0.00032672, 7.27235893, 0.99837099, 0.99914006, 0.49319230,\
+-	-6.27289237, -0.00053313, 0.00032666, 7.27235924, 0.99837127, 0.99914021, 0.49319236,\
+-	-6.27289259, -0.00053304, 0.00032660, 7.27235955, 0.99837155, 0.99914036, 0.49319240,\
+-	-6.27289281, -0.00053294, 0.00032655, 7.27235986, 0.99837183, 0.99914051, 0.49319244,\
+-	-6.27289303, -0.00053285, 0.00032649, 7.27236017, 0.99837211, 0.99914066, 0.49319243,\
+-	-6.27289325, -0.00053276, 0.00032643, 7.27236048, 0.99837239, 0.99914080, 0.49319249,\
+-	-6.27289346, -0.00053267, 0.00032638, 7.27236080, 0.99837267, 0.99914095, 0.49319257,\
+-	-6.27289368, -0.00053258, 0.00032632, 7.27236111, 0.99837295, 0.99914110, 0.49319253,\
+-	-6.27289390, -0.00053249, 0.00032627, 7.27236142, 0.99837323, 0.99914125, 0.49319261,\
+-	-6.27289412, -0.00053239, 0.00032621, 7.27236173, 0.99837351, 0.99914140, 0.49319263,\
+-	-6.27289434, -0.00053230, 0.00032615, 7.27236204, 0.99837379, 0.99914154, 0.49319267,\
+-	-6.27289456, -0.00053221, 0.00032610, 7.27236235, 0.99837407, 0.99914169, 0.49319271,\
+-	-6.27289478, -0.00053212, 0.00032604, 7.27236266, 0.99837435, 0.99914184, 0.49319271,\
+-	-6.27289500, -0.00053203, 0.00032599, 7.27236297, 0.99837463, 0.99914199, 0.49319270,\
+-	-6.27289522, -0.00053194, 0.00032593, 7.27236328, 0.99837491, 0.99914213, 0.49319278,\
+-	-6.27289544, -0.00053185, 0.00032587, 7.27236359, 0.99837519, 0.99914228, 0.49319281,\
+-	-6.27289565, -0.00053175, 0.00032582, 7.27236390, 0.99837547, 0.99914243, 0.49319284,\
+-	-6.27289587, -0.00053166, 0.00032576, 7.27236421, 0.99837575, 0.99914258, 0.49319286,\
+-	-6.27289609, -0.00053157, 0.00032571, 7.27236452, 0.99837603, 0.99914272, 0.49319287,\
+-	-6.27289631, -0.00053148, 0.00032565, 7.27236483, 0.99837631, 0.99914287, 0.49319297,\
+-	-6.27289653, -0.00053139, 0.00032559, 7.27236514, 0.99837659, 0.99914302, 0.49319300,\
+-	-6.27289675, -0.00053130, 0.00032554, 7.27236545, 0.99837687, 0.99914316, 0.49319302,\
+-	-6.27289696, -0.00053121, 0.00032548, 7.27236576, 0.99837714, 0.99914331, 0.49319305,\
+-	-6.27289718, -0.00053112, 0.00032543, 7.27236607, 0.99837742, 0.99914346, 0.49319306,\
+-	-6.27289740, -0.00053102, 0.00032537, 7.27236638, 0.99837770, 0.99914361, 0.49319318,\
+-	-6.27289762, -0.00053093, 0.00032531, 7.27236668, 0.99837798, 0.99914375, 0.49319313,\
+-	-6.27289784, -0.00053084, 0.00032526, 7.27236699, 0.99837826, 0.99914390, 0.49319318,\
+-	-6.27289805, -0.00053075, 0.00032520, 7.27236730, 0.99837854, 0.99914405, 0.49319320,\
+-	-6.27289827, -0.00053066, 0.00032515, 7.27236761, 0.99837881, 0.99914419, 0.49319315,\
+-	-6.27289849, -0.00053057, 0.00032509, 7.27236792, 0.99837909, 0.99914434, 0.49319329,\
+-	-6.27289871, -0.00053048, 0.00032504, 7.27236823, 0.99837937, 0.99914449, 0.49319329,\
+-	-6.27289892, -0.00053039, 0.00032498, 7.27236854, 0.99837965, 0.99914463, 0.49319336,\
+-	-6.27289914, -0.00053030, 0.00032492, 7.27236884, 0.99837993, 0.99914478, 0.49319338,\
+-	-6.27289936, -0.00053021, 0.00032487, 7.27236915, 0.99838020, 0.99914493, 0.49319340,\
+-	-6.27289958, -0.00053012, 0.00032481, 7.27236946, 0.99838048, 0.99914507, 0.49319339,\
+-	-6.27289979, -0.00053002, 0.00032476, 7.27236977, 0.99838076, 0.99914522, 0.49319350,\
+-	-6.27290001, -0.00052993, 0.00032470, 7.27237008, 0.99838104, 0.99914536, 0.49319352,\
+-	-6.27290023, -0.00052984, 0.00032465, 7.27237038, 0.99838131, 0.99914551, 0.49319359,\
+-	-6.27290044, -0.00052975, 0.00032459, 7.27237069, 0.99838159, 0.99914566, 0.49319354,\
+-	-6.27290066, -0.00052966, 0.00032453, 7.27237100, 0.99838187, 0.99914580, 0.49319355,\
+-	-6.27290088, -0.00052957, 0.00032448, 7.27237131, 0.99838214, 0.99914595, 0.49319365,\
+-	-6.27290109, -0.00052948, 0.00032442, 7.27237161, 0.99838242, 0.99914610, 0.49319372,\
+-	-6.27290131, -0.00052939, 0.00032437, 7.27237192, 0.99838270, 0.99914624, 0.49319371,\
+-	-6.27290153, -0.00052930, 0.00032431, 7.27237223, 0.99838297, 0.99914639, 0.49319369,\
+-	-6.27290174, -0.00052921, 0.00032426, 7.27237254, 0.99838325, 0.99914653, 0.49319379,\
+-	-6.27290196, -0.00052912, 0.00032420, 7.27237284, 0.99838353, 0.99914668, 0.49319379,\
+-	-6.27290218, -0.00052903, 0.00032415, 7.27237315, 0.99838380, 0.99914683, 0.49319387,\
+-	-6.27290239, -0.00052894, 0.00032409, 7.27237346, 0.99838408, 0.99914697, 0.49319384,\
+-	-6.27290261, -0.00052885, 0.00032404, 7.27237376, 0.99838436, 0.99914712, 0.49319390,\
+-	-6.27290283, -0.00052876, 0.00032398, 7.27237407, 0.99838463, 0.99914726, 0.49319391,\
+-	-6.27290304, -0.00052867, 0.00032392, 7.27237438, 0.99838491, 0.99914741, 0.49319397,\
+-	-6.27290326, -0.00052858, 0.00032387, 7.27237468, 0.99838518, 0.99914755, 0.49319399,\
+-	-6.27290347, -0.00052849, 0.00032381, 7.27237499, 0.99838546, 0.99914770, 0.49319399,\
+-	-6.27290369, -0.00052840, 0.00032376, 7.27237529, 0.99838574, 0.99914785, 0.49319402,\
+-	-6.27290391, -0.00052831, 0.00032370, 7.27237560, 0.99838601, 0.99914799, 0.49319410,\
+-	-6.27290412, -0.00052822, 0.00032365, 7.27237591, 0.99838629, 0.99914814, 0.49319411,\
+-	-6.27290434, -0.00052813, 0.00032359, 7.27237621, 0.99838656, 0.99914828, 0.49319417,\
+-	-6.27290455, -0.00052804, 0.00032354, 7.27237652, 0.99838684, 0.99914843, 0.49319421,\
+-	-6.27290477, -0.00052795, 0.00032348, 7.27237682, 0.99838711, 0.99914857, 0.49319423,\
+-	-6.27290498, -0.00052786, 0.00032343, 7.27237713, 0.99838739, 0.99914872, 0.49319424,\
+-	-6.27290520, -0.00052777, 0.00032337, 7.27237743, 0.99838766, 0.99914886, 0.49319429,\
+-	-6.27290541, -0.00052768, 0.00032332, 7.27237774, 0.99838794, 0.99914901, 0.49319426,\
+-	-6.27290563, -0.00052759, 0.00032326, 7.27237804, 0.99838821, 0.99914915, 0.49319434,\
+-	-6.27290584, -0.00052750, 0.00032321, 7.27237835, 0.99838849, 0.99914930, 0.49319436,\
+-	-6.27290606, -0.00052741, 0.00032315, 7.27237865, 0.99838876, 0.99914944, 0.49319441,\
+-	-6.27290627, -0.00052732, 0.00032310, 7.27237896, 0.99838904, 0.99914959, 0.49319443,\
+-	-6.27290649, -0.00052723, 0.00032304, 7.27237926, 0.99838931, 0.99914973, 0.49319450,\
+-	-6.27290670, -0.00052714, 0.00032299, 7.27237957, 0.99838959, 0.99914988, 0.49319447,\
+-	-6.27290692, -0.00052705, 0.00032293, 7.27237987, 0.99838986, 0.99915002, 0.49319454,\
+-	-6.27290713, -0.00052696, 0.00032288, 7.27238018, 0.99839013, 0.99915017, 0.49319453,\
+-	-6.27290735, -0.00052687, 0.00032282, 7.27238048, 0.99839041, 0.99915031, 0.49319457,\
+-	-6.27290756, -0.00052678, 0.00032277, 7.27238078, 0.99839068, 0.99915046, 0.49319463,\
+-	-6.27290778, -0.00052669, 0.00032271, 7.27238109, 0.99839096, 0.99915060, 0.49319468,\
+-	-6.27290799, -0.00052660, 0.00032266, 7.27238139, 0.99839123, 0.99915075, 0.49319471,\
+-	-6.27290821, -0.00052651, 0.00032260, 7.27238170, 0.99839150, 0.99915089, 0.49319472,\
+-	-6.27290842, -0.00052642, 0.00032255, 7.27238200, 0.99839178, 0.99915103, 0.49319477,\
+-	-6.27290863, -0.00052633, 0.00032249, 7.27238230, 0.99839205, 0.99915118, 0.49319479,\
+-	-6.27290885, -0.00052624, 0.00032244, 7.27238261, 0.99839232, 0.99915132, 0.49319479,\
+-	-6.27290906, -0.00052615, 0.00032238, 7.27238291, 0.99839260, 0.99915147, 0.49319486,\
+-	-6.27290928, -0.00052606, 0.00032233, 7.27238321, 0.99839287, 0.99915161, 0.49319496,\
+-	-6.27290949, -0.00052597, 0.00032227, 7.27238352, 0.99839314, 0.99915176, 0.49319494,\
+-	-6.27290970, -0.00052588, 0.00032222, 7.27238382, 0.99839342, 0.99915190, 0.49319490,\
+-	-6.27290992, -0.00052579, 0.00032216, 7.27238412, 0.99839369, 0.99915204, 0.49319495,\
+-	-6.27291013, -0.00052570, 0.00032211, 7.27238443, 0.99839396, 0.99915219, 0.49319503,\
+-	-6.27291034, -0.00052561, 0.00032205, 7.27238473, 0.99839424, 0.99915233, 0.49319499,\
+-	-6.27291056, -0.00052553, 0.00032200, 7.27238503, 0.99839451, 0.99915248, 0.49319506,\
+-	-6.27291077, -0.00052544, 0.00032194, 7.27238534, 0.99839478, 0.99915262, 0.49319516,\
+-	-6.27291098, -0.00052535, 0.00032189, 7.27238564, 0.99839505, 0.99915276, 0.49319515,\
+-	-6.27291120, -0.00052526, 0.00032183, 7.27238594, 0.99839533, 0.99915291, 0.49319519,\
+-	-6.27291141, -0.00052517, 0.00032178, 7.27238624, 0.99839560, 0.99915305, 0.49319519,\
+-	-6.27291162, -0.00052508, 0.00032173, 7.27238654, 0.99839587, 0.99915320, 0.49319522,\
+-	-6.27291184, -0.00052499, 0.00032167, 7.27238685, 0.99839614, 0.99915334, 0.49319528,\
+-	-6.27291205, -0.00052490, 0.00032162, 7.27238715, 0.99839642, 0.99915348, 0.49319533,\
+-	-6.27291226, -0.00052481, 0.00032156, 7.27238745, 0.99839669, 0.99915363, 0.49319536,\
+-	-6.27291248, -0.00052472, 0.00032151, 7.27238775, 0.99839696, 0.99915377, 0.49319537,\
+-	-6.27291269, -0.00052463, 0.00032145, 7.27238805, 0.99839723, 0.99915391, 0.49319544,\
+-	-6.27291290, -0.00052455, 0.00032140, 7.27238836, 0.99839750, 0.99915406, 0.49319545,\
+-	-6.27291311, -0.00052446, 0.00032134, 7.27238866, 0.99839777, 0.99915420, 0.49319547,\
+-	-6.27291333, -0.00052437, 0.00032129, 7.27238896, 0.99839805, 0.99915434, 0.49319547,\
+-	-6.27291354, -0.00052428, 0.00032123, 7.27238926, 0.99839832, 0.99915449, 0.49319552,\
+-	-6.27291375, -0.00052419, 0.00032118, 7.27238956, 0.99839859, 0.99915463, 0.49319555,\
+-	-6.27291396, -0.00052410, 0.00032113, 7.27238986, 0.99839886, 0.99915477, 0.49319555,\
+-	-6.27291418, -0.00052401, 0.00032107, 7.27239016, 0.99839913, 0.99915492, 0.49319565,\
+-	-6.27291439, -0.00052392, 0.00032102, 7.27239046, 0.99839940, 0.99915506, 0.49319563,\
+-	-6.27291460, -0.00052384, 0.00032096, 7.27239077, 0.99839967, 0.99915520, 0.49319565,\
+-	-6.27291481, -0.00052375, 0.00032091, 7.27239107, 0.99839994, 0.99915534, 0.49319571,\
+-	-6.27291503, -0.00052366, 0.00032085, 7.27239137, 0.99840021, 0.99915549, 0.49319576,\
+-	-6.27291524, -0.00052357, 0.00032080, 7.27239167, 0.99840049, 0.99915563, 0.49319577,\
+-	-6.27291545, -0.00052348, 0.00032075, 7.27239197, 0.99840076, 0.99915577, 0.49319579,\
+-	-6.27291566, -0.00052339, 0.00032069, 7.27239227, 0.99840103, 0.99915592, 0.49319582,\
+-	-6.27291587, -0.00052330, 0.00032064, 7.27239257, 0.99840130, 0.99915606, 0.49319587,\
+-	-6.27291608, -0.00052322, 0.00032058, 7.27239287, 0.99840157, 0.99915620, 0.49319592,\
+-	-6.27291630, -0.00052313, 0.00032053, 7.27239317, 0.99840184, 0.99915634, 0.49319593,\
+-	-6.27291651, -0.00052304, 0.00032047, 7.27239347, 0.99840211, 0.99915649, 0.49319594,\
+-	-6.27291672, -0.00052295, 0.00032042, 7.27239377, 0.99840238, 0.99915663, 0.49319596,\
+-	-6.27291693, -0.00052286, 0.00032037, 7.27239407, 0.99840265, 0.99915677, 0.49319602,\
+-	-6.27291714, -0.00052277, 0.00032031, 7.27239437, 0.99840292, 0.99915691, 0.49319607,\
+-	-6.27291735, -0.00052269, 0.00032026, 7.27239467, 0.99840319, 0.99915706, 0.49319609,\
+-	-6.27291756, -0.00052260, 0.00032020, 7.27239497, 0.99840346, 0.99915720, 0.49319609,\
+-	-6.27291777, -0.00052251, 0.00032015, 7.27239526, 0.99840373, 0.99915734, 0.49319619,\
+-	-6.27291799, -0.00052242, 0.00032010, 7.27239556, 0.99840400, 0.99915748, 0.49319624,\
+-	-6.27291820, -0.00052233, 0.00032004, 7.27239586, 0.99840427, 0.99915763, 0.49319616,\
+-	-6.27291841, -0.00052225, 0.00031999, 7.27239616, 0.99840453, 0.99915777, 0.49319625,\
+-	-6.27291862, -0.00052216, 0.00031993, 7.27239646, 0.99840480, 0.99915791, 0.49319632,\
+-	-6.27291883, -0.00052207, 0.00031988, 7.27239676, 0.99840507, 0.99915805, 0.49319625,\
+-	-6.27291904, -0.00052198, 0.00031983, 7.27239706, 0.99840534, 0.99915819, 0.49319634,\
+-	-6.27291925, -0.00052189, 0.00031977, 7.27239736, 0.99840561, 0.99915834, 0.49319638,\
+-	-6.27291946, -0.00052180, 0.00031972, 7.27239766, 0.99840588, 0.99915848, 0.49319640,\
+-	-6.27291967, -0.00052172, 0.00031966, 7.27239795, 0.99840615, 0.99915862, 0.49319643,\
+-	-6.27291988, -0.00052163, 0.00031961, 7.27239825, 0.99840642, 0.99915876, 0.49319646,\
+-	-6.27292009, -0.00052154, 0.00031956, 7.27239855, 0.99840669, 0.99915890, 0.49319643,\
+-	-6.27292030, -0.00052145, 0.00031950, 7.27239885, 0.99840695, 0.99915904, 0.49319651,\
+-	-6.27292051, -0.00052137, 0.00031945, 7.27239915, 0.99840722, 0.99915919, 0.49319652,\
+-	-6.27292072, -0.00052128, 0.00031939, 7.27239944, 0.99840749, 0.99915933, 0.49319657,\
+-	-6.27292093, -0.00052119, 0.00031934, 7.27239974, 0.99840776, 0.99915947, 0.49319663,\
+-	-6.27292114, -0.00052110, 0.00031929, 7.27240004, 0.99840803, 0.99915961, 0.49319665,\
+-	-6.27292135, -0.00052101, 0.00031923, 7.27240034, 0.99840830, 0.99915975, 0.49319671,\
+-	-6.27292156, -0.00052093, 0.00031918, 7.27240063, 0.99840856, 0.99915989, 0.49319676,\
+-	-6.27292177, -0.00052084, 0.00031913, 7.27240093, 0.99840883, 0.99916004, 0.49319677,\
+-	-6.27292198, -0.00052075, 0.00031907, 7.27240123, 0.99840910, 0.99916018, 0.49319672,\
+-	-6.27292219, -0.00052066, 0.00031902, 7.27240153, 0.99840937, 0.99916032, 0.49319676,\
+-	-6.27292240, -0.00052058, 0.00031896, 7.27240182, 0.99840964, 0.99916046, 0.49319684,\
+-	-6.27292261, -0.00052049, 0.00031891, 7.27240212, 0.99840990, 0.99916060, 0.49319683,\
+-	-6.27292282, -0.00052040, 0.00031886, 7.27240242, 0.99841017, 0.99916074, 0.49319688,\
+-	-6.27292303, -0.00052031, 0.00031880, 7.27240271, 0.99841044, 0.99916088, 0.49319696,\
+-	-6.27292324, -0.00052023, 0.00031875, 7.27240301, 0.99841070, 0.99916102, 0.49319696,\
+-	-6.27292345, -0.00052014, 0.00031870, 7.27240331, 0.99841097, 0.99916117, 0.49319698,\
+-	-6.27292366, -0.00052005, 0.00031864, 7.27240360, 0.99841124, 0.99916131, 0.49319702,\
+-	-6.27292386, -0.00051996, 0.00031859, 7.27240390, 0.99841151, 0.99916145, 0.49319705,\
+-	-6.27292407, -0.00051988, 0.00031854, 7.27240420, 0.99841177, 0.99916159, 0.49319708,\
+-	-6.27292428, -0.00051979, 0.00031848, 7.27240449, 0.99841204, 0.99916173, 0.49319705,\
+-	-6.27292449, -0.00051970, 0.00031843, 7.27240479, 0.99841231, 0.99916187, 0.49319715,\
+-	-6.27292470, -0.00051962, 0.00031837, 7.27240508, 0.99841257, 0.99916201, 0.49319716,\
+-	-6.27292491, -0.00051953, 0.00031832, 7.27240538, 0.99841284, 0.99916215, 0.49319722,\
+-	-6.27292512, -0.00051944, 0.00031827, 7.27240568, 0.99841311, 0.99916229, 0.49319725,\
+-	-6.27292533, -0.00051935, 0.00031821, 7.27240597, 0.99841337, 0.99916243, 0.49319725,\
+-	-6.27292553, -0.00051927, 0.00031816, 7.27240627, 0.99841364, 0.99916257, 0.49319734,\
+-	-6.27292574, -0.00051918, 0.00031811, 7.27240656, 0.99841390, 0.99916271, 0.49319744,\
+-	-6.27292595, -0.00051909, 0.00031805, 7.27240686, 0.99841417, 0.99916285, 0.49319739,\
+-	-6.27292616, -0.00051901, 0.00031800, 7.27240715, 0.99841444, 0.99916299, 0.49319736,\
+-	-6.27292637, -0.00051892, 0.00031795, 7.27240745, 0.99841470, 0.99916313, 0.49319748,\
+-	-6.27292658, -0.00051883, 0.00031789, 7.27240774, 0.99841497, 0.99916327, 0.49319747,\
+-	-6.27292678, -0.00051874, 0.00031784, 7.27240804, 0.99841523, 0.99916341, 0.49319748,\
+-	-6.27292699, -0.00051866, 0.00031779, 7.27240833, 0.99841550, 0.99916355, 0.49319753,\
+-	-6.27292720, -0.00051857, 0.00031773, 7.27240863, 0.99841577, 0.99916369, 0.49319759,\
+-	-6.27292741, -0.00051848, 0.00031768, 7.27240892, 0.99841603, 0.99916384, 0.49319759,\
+-	-6.27292762, -0.00051840, 0.00031763, 7.27240922, 0.99841630, 0.99916398, 0.49319759,\
+-	-6.27292782, -0.00051831, 0.00031757, 7.27240951, 0.99841656, 0.99916412, 0.49319764,\
+-	-6.27292803, -0.00051822, 0.00031752, 7.27240981, 0.99841683, 0.99916426, 0.49319769,\
+-	-6.27292824, -0.00051814, 0.00031747, 7.27241010, 0.99841709, 0.99916440, 0.49319768,\
+-	-6.27292845, -0.00051805, 0.00031742, 7.27241040, 0.99841736, 0.99916453, 0.49319773,\
+-	-6.27292865, -0.00051796, 0.00031736, 7.27241069, 0.99841762, 0.99916467, 0.49319777,\
+-	-6.27292886, -0.00051788, 0.00031731, 7.27241098, 0.99841789, 0.99916481, 0.49319789,\
+-	-6.27292907, -0.00051779, 0.00031726, 7.27241128, 0.99841815, 0.99916495, 0.49319781,\
+-	-6.27292927, -0.00051770, 0.00031720, 7.27241157, 0.99841842, 0.99916509, 0.49319785,\
+-	-6.27292948, -0.00051762, 0.00031715, 7.27241186, 0.99841868, 0.99916523, 0.49319784,\
+-	-6.27292969, -0.00051753, 0.00031710, 7.27241216, 0.99841895, 0.99916537, 0.49319795,\
+-	-6.27292990, -0.00051744, 0.00031704, 7.27241245, 0.99841921, 0.99916551, 0.49319794,\
+-	-6.27293010, -0.00051736, 0.00031699, 7.27241275, 0.99841947, 0.99916565, 0.49319797,\
+-	-6.27293031, -0.00051727, 0.00031694, 7.27241304, 0.99841974, 0.99916579, 0.49319807,\
+-	-6.27293052, -0.00051718, 0.00031688, 7.27241333, 0.99842000, 0.99916593, 0.49319800,\
+-	-6.27293072, -0.00051710, 0.00031683, 7.27241363, 0.99842027, 0.99916607, 0.49319809,\
+-	-6.27293093, -0.00051701, 0.00031678, 7.27241392, 0.99842053, 0.99916621, 0.49319811,\
+-	-6.27293114, -0.00051693, 0.00031673, 7.27241421, 0.99842079, 0.99916635, 0.49319811,\
+-	-6.27293134, -0.00051684, 0.00031667, 7.27241450, 0.99842106, 0.99916649, 0.49319817,\
+-	-6.27293155, -0.00051675, 0.00031662, 7.27241480, 0.99842132, 0.99916663, 0.49319820,\
+-	-6.27293176, -0.00051667, 0.00031657, 7.27241509, 0.99842159, 0.99916677, 0.49319821,\
+-	-6.27293196, -0.00051658, 0.00031651, 7.27241538, 0.99842185, 0.99916691, 0.49319833,\
+-	-6.27293217, -0.00051649, 0.00031646, 7.27241567, 0.99842211, 0.99916704, 0.49319829,\
+-	-6.27293237, -0.00051641, 0.00031641, 7.27241597, 0.99842238, 0.99916718, 0.49319831,\
+-	-6.27293258, -0.00051632, 0.00031636, 7.27241626, 0.99842264, 0.99916732, 0.49319838,\
+-	-6.27293279, -0.00051624, 0.00031630, 7.27241655, 0.99842290, 0.99916746, 0.49319843,\
+-	-6.27293299, -0.00051615, 0.00031625, 7.27241684, 0.99842316, 0.99916760, 0.49319840,\
+-	-6.27293320, -0.00051606, 0.00031620, 7.27241713, 0.99842343, 0.99916774, 0.49319841,\
+-	-6.27293340, -0.00051598, 0.00031614, 7.27241743, 0.99842369, 0.99916788, 0.49319849,\
+-	-6.27293361, -0.00051589, 0.00031609, 7.27241772, 0.99842395, 0.99916802, 0.49319850,\
+-	-6.27293382, -0.00051581, 0.00031604, 7.27241801, 0.99842422, 0.99916816, 0.49319856,\
+-	-6.27293402, -0.00051572, 0.00031599, 7.27241830, 0.99842448, 0.99916829, 0.49319860,\
+-	-6.27293423, -0.00051563, 0.00031593, 7.27241859, 0.99842474, 0.99916843, 0.49319855,\
+-	-6.27293443, -0.00051555, 0.00031588, 7.27241888, 0.99842500, 0.99916857, 0.49319861,\
+-	-6.27293464, -0.00051546, 0.00031583, 7.27241918, 0.99842527, 0.99916871, 0.49319870,\
+-	-6.27293484, -0.00051538, 0.00031578, 7.27241947, 0.99842553, 0.99916885, 0.49319866,\
+-	-6.27293505, -0.00051529, 0.00031572, 7.27241976, 0.99842579, 0.99916899, 0.49319873,\
+-	-6.27293525, -0.00051520, 0.00031567, 7.27242005, 0.99842605, 0.99916912, 0.49319872,\
+-	-6.27293546, -0.00051512, 0.00031562, 7.27242034, 0.99842632, 0.99916926, 0.49319875,\
+-	-6.27293566, -0.00051503, 0.00031557, 7.27242063, 0.99842658, 0.99916940, 0.49319885,\
+-	-6.27293587, -0.00051495, 0.00031551, 7.27242092, 0.99842684, 0.99916954, 0.49319881,\
+-	-6.27293607, -0.00051486, 0.00031546, 7.27242121, 0.99842710, 0.99916968, 0.49319885,\
+-	-6.27293628, -0.00051478, 0.00031541, 7.27242150, 0.99842736, 0.99916982, 0.49319897,\
+-	-6.27293648, -0.00051469, 0.00031536, 7.27242179, 0.99842762, 0.99916995, 0.49319898,\
+-	-6.27293669, -0.00051461, 0.00031530, 7.27242208, 0.99842789, 0.99917009, 0.49319895,\
+-	-6.27293689, -0.00051452, 0.00031525, 7.27242237, 0.99842815, 0.99917023, 0.49319902,\
+-	-6.27293710, -0.00051443, 0.00031520, 7.27242266, 0.99842841, 0.99917037, 0.49319899,\
+-	-6.27293730, -0.00051435, 0.00031515, 7.27242295, 0.99842867, 0.99917051, 0.49319907,\
+-	-6.27293751, -0.00051426, 0.00031509, 7.27242324, 0.99842893, 0.99917064, 0.49319910,\
+-	-6.27293771, -0.00051418, 0.00031504, 7.27242353, 0.99842919, 0.99917078, 0.49319911,\
+-	-6.27293792, -0.00051409, 0.00031499, 7.27242382, 0.99842945, 0.99917092, 0.49319911,\
+-	-6.27293812, -0.00051401, 0.00031494, 7.27242411, 0.99842971, 0.99917106, 0.49319918,\
+-	-6.27293832, -0.00051392, 0.00031488, 7.27242440, 0.99842997, 0.99917119, 0.49319923,\
+-	-6.27293853, -0.00051384, 0.00031483, 7.27242469, 0.99843024, 0.99917133, 0.49319919,\
+-	-6.27293873, -0.00051375, 0.00031478, 7.27242498, 0.99843050, 0.99917147, 0.49319924,\
+-	-6.27293894, -0.00051367, 0.00031473, 7.27242527, 0.99843076, 0.99917161, 0.49319925,\
+-	-6.27293914, -0.00051358, 0.00031467, 7.27242556, 0.99843102, 0.99917174, 0.49319934,\
+-	-6.27293934, -0.00051350, 0.00031462, 7.27242585, 0.99843128, 0.99917188, 0.49319932,\
+-	-6.27293955, -0.00051341, 0.00031457, 7.27242614, 0.99843154, 0.99917202, 0.49319938,\
+-	-6.27293975, -0.00051333, 0.00031452, 7.27242643, 0.99843180, 0.99917216, 0.49319942,\
+-	-6.27293995, -0.00051324, 0.00031447, 7.27242671, 0.99843206, 0.99917229, 0.49319947,\
+-	-6.27294016, -0.00051315, 0.00031441, 7.27242700, 0.99843232, 0.99917243, 0.49319948,\
+-	-6.27294036, -0.00051307, 0.00031436, 7.27242729, 0.99843258, 0.99917257, 0.49319954,\
+-	-6.27294057, -0.00051298, 0.00031431, 7.27242758, 0.99843284, 0.99917271, 0.49319956,\
+-	-6.27294077, -0.00051290, 0.00031426, 7.27242787, 0.99843310, 0.99917284, 0.49319957,\
+-	-6.27294097, -0.00051281, 0.00031421, 7.27242816, 0.99843336, 0.99917298, 0.49319962,\
+-	-6.27294118, -0.00051273, 0.00031415, 7.27242845, 0.99843362, 0.99917312, 0.49319969,\
+-	-6.27294138, -0.00051265, 0.00031410, 7.27242873, 0.99843388, 0.99917325, 0.49319972,\
+-	-6.27294158, -0.00051256, 0.00031405, 7.27242902, 0.99843414, 0.99917339, 0.49319967,\
+-	-6.27294178, -0.00051248, 0.00031400, 7.27242931, 0.99843439, 0.99917353, 0.49319971,\
+-	-6.27294199, -0.00051239, 0.00031395, 7.27242960, 0.99843465, 0.99917366, 0.49319975,\
+-	-6.27294219, -0.00051231, 0.00031389, 7.27242988, 0.99843491, 0.99917380, 0.49319976,\
+-	-6.27294239, -0.00051222, 0.00031384, 7.27243017, 0.99843517, 0.99917394, 0.49319985,\
+-	-6.27294260, -0.00051214, 0.00031379, 7.27243046, 0.99843543, 0.99917407, 0.49319980,\
+-	-6.27294280, -0.00051205, 0.00031374, 7.27243075, 0.99843569, 0.99917421, 0.49319987,\
+-	-6.27294300, -0.00051197, 0.00031369, 7.27243103, 0.99843595, 0.99917435, 0.49319991,\
+-	-6.27294320, -0.00051188, 0.00031363, 7.27243132, 0.99843621, 0.99917448, 0.49319996,\
+-	-6.27294341, -0.00051180, 0.00031358, 7.27243161, 0.99843647, 0.99917462, 0.49320001,\
+-	-6.27294361, -0.00051171, 0.00031353, 7.27243190, 0.99843673, 0.99917476, 0.49319998,\
+-	-6.27294381, -0.00051163, 0.00031348, 7.27243218, 0.99843698, 0.99917489, 0.49320000,\
+-	-6.27294401, -0.00051154, 0.00031343, 7.27243247, 0.99843724, 0.99917503, 0.49320003,\
+-	-6.27294422, -0.00051146, 0.00031337, 7.27243276, 0.99843750, 0.99917517, 0.49320007,\
+-	-6.27294442, -0.00051137, 0.00031332, 7.27243304, 0.99843776, 0.99917530, 0.49320006,\
+-	-6.27294462, -0.00051129, 0.00031327, 7.27243333, 0.99843802, 0.99917544, 0.49320012,\
+-	-6.27294482, -0.00051121, 0.00031322, 7.27243362, 0.99843827, 0.99917558, 0.49320018,\
+-	-6.27294502, -0.00051112, 0.00031317, 7.27243390, 0.99843853, 0.99917571, 0.49320018,\
+-	-6.27294523, -0.00051104, 0.00031312, 7.27243419, 0.99843879, 0.99917585, 0.49320017,\
+-	-6.27294543, -0.00051095, 0.00031306, 7.27243448, 0.99843905, 0.99917598, 0.49320022,\
+-	-6.27294563, -0.00051087, 0.00031301, 7.27243476, 0.99843931, 0.99917612, 0.49320033,\
+-	-6.27294583, -0.00051078, 0.00031296, 7.27243505, 0.99843956, 0.99917626, 0.49320035,\
+-	-6.27294603, -0.00051070, 0.00031291, 7.27243533, 0.99843982, 0.99917639, 0.49320035,\
+-	-6.27294623, -0.00051062, 0.00031286, 7.27243562, 0.99844008, 0.99917653, 0.49320037,\
+-	-6.27294644, -0.00051053, 0.00031281, 7.27243590, 0.99844034, 0.99917666, 0.49320040,\
+-	-6.27294664, -0.00051045, 0.00031275, 7.27243619, 0.99844059, 0.99917680, 0.49320046,\
+-	-6.27294684, -0.00051036, 0.00031270, 7.27243648, 0.99844085, 0.99917693, 0.49320050,\
+-	-6.27294704, -0.00051028, 0.00031265, 7.27243676, 0.99844111, 0.99917707, 0.49320049,\
+-	-6.27294724, -0.00051019, 0.00031260, 7.27243705, 0.99844136, 0.99917721, 0.49320054,\
+-	-6.27294744, -0.00051011, 0.00031255, 7.27243733, 0.99844162, 0.99917734, 0.49320055,\
+-	-6.27294764, -0.00051003, 0.00031250, 7.27243762, 0.99844188, 0.99917748, 0.49320064,\
+-	-6.27294784, -0.00050994, 0.00031244, 7.27243790, 0.99844214, 0.99917761, 0.49320065,\
+-	-6.27294805, -0.00050986, 0.00031239, 7.27243819, 0.99844239, 0.99917775, 0.49320067,\
+-	-6.27294825, -0.00050977, 0.00031234, 7.27243847, 0.99844265, 0.99917788, 0.49320073,\
+-	-6.27294845, -0.00050969, 0.00031229, 7.27243876, 0.99844291, 0.99917802, 0.49320072,\
+-	-6.27294865, -0.00050961, 0.00031224, 7.27243904, 0.99844316, 0.99917815, 0.49320076,\
+-	-6.27294885, -0.00050952, 0.00031219, 7.27243933, 0.99844342, 0.99917829, 0.49320077,\
+-	-6.27294905, -0.00050944, 0.00031214, 7.27243961, 0.99844367, 0.99917843, 0.49320076,\
+-	-6.27294925, -0.00050936, 0.00031208, 7.27243989, 0.99844393, 0.99917856, 0.49320084,\
+-	-6.27294945, -0.00050927, 0.00031203, 7.27244018, 0.99844419, 0.99917870, 0.49320087,\
+-	-6.27294965, -0.00050919, 0.00031198, 7.27244046, 0.99844444, 0.99917883, 0.49320088,\
+-	-6.27294985, -0.00050910, 0.00031193, 7.27244075, 0.99844470, 0.99917897, 0.49320097,\
+-	-6.27295005, -0.00050902, 0.00031188, 7.27244103, 0.99844495, 0.99917910, 0.49320091,\
+-	-6.27295025, -0.00050894, 0.00031183, 7.27244132, 0.99844521, 0.99917924, 0.49320097,\
+-	-6.27295045, -0.00050885, 0.00031178, 7.27244160, 0.99844547, 0.99917937, 0.49320101,\
+-	-6.27295065, -0.00050877, 0.00031173, 7.27244188, 0.99844572, 0.99917951, 0.49320102,\
+-	-6.27295085, -0.00050869, 0.00031167, 7.27244217, 0.99844598, 0.99917964, 0.49320101,\
+-	-6.27295105, -0.00050860, 0.00031162, 7.27244245, 0.99844623, 0.99917978, 0.49320112,\
+-	-6.27295125, -0.00050852, 0.00031157, 7.27244273, 0.99844649, 0.99917991, 0.49320117,\
+-	-6.27295145, -0.00050844, 0.00031152, 7.27244302, 0.99844674, 0.99918004, 0.49320117,\
+-	-6.27295165, -0.00050835, 0.00031147, 7.27244330, 0.99844700, 0.99918018, 0.49320119,\
+-	-6.27295185, -0.00050827, 0.00031142, 7.27244358, 0.99844725, 0.99918031, 0.49320122,\
+-	-6.27295205, -0.00050818, 0.00031137, 7.27244387, 0.99844751, 0.99918045, 0.49320128,\
+-	-6.27295225, -0.00050810, 0.00031132, 7.27244415, 0.99844776, 0.99918058, 0.49320130,\
+-	-6.27295245, -0.00050802, 0.00031126, 7.27244443, 0.99844802, 0.99918072, 0.49320132,\
+-	-6.27295265, -0.00050793, 0.00031121, 7.27244472, 0.99844827, 0.99918085, 0.49320130,\
+-	-6.27295285, -0.00050785, 0.00031116, 7.27244500, 0.99844853, 0.99918099, 0.49320137,\
+-	-6.27295305, -0.00050777, 0.00031111, 7.27244528, 0.99844878, 0.99918112, 0.49320141,\
+-	-6.27295325, -0.00050768, 0.00031106, 7.27244556, 0.99844904, 0.99918126, 0.49320145,\
+-	-6.27295345, -0.00050760, 0.00031101, 7.27244585, 0.99844929, 0.99918139, 0.49320144,\
+-	-6.27295365, -0.00050752, 0.00031096, 7.27244613, 0.99844955, 0.99918152, 0.49320149,\
+-	-6.27295385, -0.00050743, 0.00031091, 7.27244641, 0.99844980, 0.99918166, 0.49320154,\
+-	-6.27295404, -0.00050735, 0.00031086, 7.27244669, 0.99845005, 0.99918179, 0.49320156,\
+-	-6.27295424, -0.00050727, 0.00031081, 7.27244697, 0.99845031, 0.99918193, 0.49320161,\
+-	-6.27295444, -0.00050719, 0.00031075, 7.27244726, 0.99845056, 0.99918206, 0.49320163,\
+-	-6.27295464, -0.00050710, 0.00031070, 7.27244754, 0.99845082, 0.99918219, 0.49320168,\
+-	-6.27295484, -0.00050702, 0.00031065, 7.27244782, 0.99845107, 0.99918233, 0.49320163,\
+-	-6.27295504, -0.00050694, 0.00031060, 7.27244810, 0.99845132, 0.99918246, 0.49320171,\
+-	-6.27295524, -0.00050685, 0.00031055, 7.27244838, 0.99845158, 0.99918260, 0.49320174,\
+-	-6.27295544, -0.00050677, 0.00031050, 7.27244867, 0.99845183, 0.99918273, 0.49320177,\
+-	-6.27295563, -0.00050669, 0.00031045, 7.27244895, 0.99845208, 0.99918286, 0.49320176,\
+-	-6.27295583, -0.00050660, 0.00031040, 7.27244923, 0.99845234, 0.99918300, 0.49320182,\
+-	-6.27295603, -0.00050652, 0.00031035, 7.27244951, 0.99845259, 0.99918313, 0.49320186,\
+-	-6.27295623, -0.00050644, 0.00031030, 7.27244979, 0.99845284, 0.99918327, 0.49320185,\
+-	-6.27295643, -0.00050636, 0.00031025, 7.27245007, 0.99845310, 0.99918340, 0.49320186,\
+-	-6.27295663, -0.00050627, 0.00031019, 7.27245035, 0.99845335, 0.99918353, 0.49320197,\
+-	-6.27295682, -0.00050619, 0.00031014, 7.27245063, 0.99845360, 0.99918367, 0.49320197,\
+-	-6.27295702, -0.00050611, 0.00031009, 7.27245091, 0.99845386, 0.99918380, 0.49320194,\
+-	-6.27295722, -0.00050602, 0.00031004, 7.27245120, 0.99845411, 0.99918393, 0.49320202,\
+-	-6.27295742, -0.00050594, 0.00030999, 7.27245148, 0.99845436, 0.99918407, 0.49320205,\
+-	-6.27295762, -0.00050586, 0.00030994, 7.27245176, 0.99845462, 0.99918420, 0.49320207,\
+-	-6.27295781, -0.00050578, 0.00030989, 7.27245204, 0.99845487, 0.99918433, 0.49320207,\
+-	-6.27295801, -0.00050569, 0.00030984, 7.27245232, 0.99845512, 0.99918447, 0.49320217,\
+-	-6.27295821, -0.00050561, 0.00030979, 7.27245260, 0.99845537, 0.99918460, 0.49320221,\
+-	-6.27295841, -0.00050553, 0.00030974, 7.27245288, 0.99845563, 0.99918473, 0.49320219,\
+-	-6.27295860, -0.00050545, 0.00030969, 7.27245316, 0.99845588, 0.99918487, 0.49320222,\
+-	-6.27295880, -0.00050536, 0.00030964, 7.27245344, 0.99845613, 0.99918500, 0.49320228,\
+-	-6.27295900, -0.00050528, 0.00030959, 7.27245372, 0.99845638, 0.99918513, 0.49320230,\
+-	-6.27295920, -0.00050520, 0.00030954, 7.27245400, 0.99845663, 0.99918526, 0.49320235,\
+-	-6.27295939, -0.00050512, 0.00030949, 7.27245428, 0.99845689, 0.99918540, 0.49320231,\
+-	-6.27295959, -0.00050503, 0.00030944, 7.27245456, 0.99845714, 0.99918553, 0.49320239,\
+-	-6.27295979, -0.00050495, 0.00030938, 7.27245484, 0.99845739, 0.99918566, 0.49320239,\
+-	-6.27295998, -0.00050487, 0.00030933, 7.27245512, 0.99845764, 0.99918580, 0.49320243,\
+-	-6.27296018, -0.00050479, 0.00030928, 7.27245539, 0.99845789, 0.99918593, 0.49320240,\
+-	-6.27296038, -0.00050470, 0.00030923, 7.27245567, 0.99845814, 0.99918606, 0.49320248,\
+-	-6.27296058, -0.00050462, 0.00030918, 7.27245595, 0.99845840, 0.99918619, 0.49320254,\
+-	-6.27296077, -0.00050454, 0.00030913, 7.27245623, 0.99845865, 0.99918633, 0.49320254,\
+-	-6.27296097, -0.00050446, 0.00030908, 7.27245651, 0.99845890, 0.99918646, 0.49320257,\
+-	-6.27296117, -0.00050438, 0.00030903, 7.27245679, 0.99845915, 0.99918659, 0.49320260,\
+-	-6.27296136, -0.00050429, 0.00030898, 7.27245707, 0.99845940, 0.99918673, 0.49320260,\
+-	-6.27296156, -0.00050421, 0.00030893, 7.27245735, 0.99845965, 0.99918686, 0.49320264,\
+-	-6.27296176, -0.00050413, 0.00030888, 7.27245763, 0.99845990, 0.99918699, 0.49320270,\
+-	-6.27296195, -0.00050405, 0.00030883, 7.27245790, 0.99846015, 0.99918712, 0.49320271,\
+-	-6.27296215, -0.00050397, 0.00030878, 7.27245818, 0.99846040, 0.99918726, 0.49320271,\
+-	-6.27296234, -0.00050388, 0.00030873, 7.27245846, 0.99846066, 0.99918739, 0.49320279,\
+-	-6.27296254, -0.00050380, 0.00030868, 7.27245874, 0.99846091, 0.99918752, 0.49320285,\
+-	-6.27296274, -0.00050372, 0.00030863, 7.27245902, 0.99846116, 0.99918765, 0.49320278,\
+-	-6.27296293, -0.00050364, 0.00030858, 7.27245930, 0.99846141, 0.99918778, 0.49320286,\
+-	-6.27296313, -0.00050356, 0.00030853, 7.27245957, 0.99846166, 0.99918792, 0.49320284,\
+-	-6.27296332, -0.00050347, 0.00030848, 7.27245985, 0.99846191, 0.99918805, 0.49320294,\
+-	-6.27296352, -0.00050339, 0.00030843, 7.27246013, 0.99846216, 0.99918818, 0.49320297,\
+-	-6.27296372, -0.00050331, 0.00030838, 7.27246041, 0.99846241, 0.99918831, 0.49320295,\
+-	-6.27296391, -0.00050323, 0.00030833, 7.27246068, 0.99846266, 0.99918844, 0.49320301,\
+-	-6.27296411, -0.00050315, 0.00030828, 7.27246096, 0.99846291, 0.99918858, 0.49320303,\
+-	-6.27296430, -0.00050306, 0.00030823, 7.27246124, 0.99846316, 0.99918871, 0.49320305,\
+-	-6.27296450, -0.00050298, 0.00030818, 7.27246152, 0.99846341, 0.99918884, 0.49320310,\
+-	-6.27296469, -0.00050290, 0.00030813, 7.27246179, 0.99846366, 0.99918897, 0.49320314,\
+-	-6.27296489, -0.00050282, 0.00030808, 7.27246207, 0.99846391, 0.99918910, 0.49320318,\
+-	-6.27296509, -0.00050274, 0.00030803, 7.27246235, 0.99846416, 0.99918924, 0.49320319,\
+-	-6.27296528, -0.00050266, 0.00030798, 7.27246263, 0.99846441, 0.99918937, 0.49320326,\
+-	-6.27296548, -0.00050257, 0.00030793, 7.27246290, 0.99846466, 0.99918950, 0.49320325,\
+-	-6.27296567, -0.00050249, 0.00030788, 7.27246318, 0.99846490, 0.99918963, 0.49320329,\
+-	-6.27296587, -0.00050241, 0.00030783, 7.27246346, 0.99846515, 0.99918976, 0.49320330,\
+-	-6.27296606, -0.00050233, 0.00030778, 7.27246373, 0.99846540, 0.99918989, 0.49320333,\
+-	-6.27296626, -0.00050225, 0.00030773, 7.27246401, 0.99846565, 0.99919002, 0.49320339,\
+-	-6.27296645, -0.00050217, 0.00030768, 7.27246429, 0.99846590, 0.99919016, 0.49320339,\
+-	-6.27296665, -0.00050209, 0.00030763, 7.27246456, 0.99846615, 0.99919029, 0.49320338,\
+-	-6.27296684, -0.00050200, 0.00030758, 7.27246484, 0.99846640, 0.99919042, 0.49320344,\
+-	-6.27296704, -0.00050192, 0.00030753, 7.27246511, 0.99846665, 0.99919055, 0.49320353,\
+-	-6.27296723, -0.00050184, 0.00030748, 7.27246539, 0.99846690, 0.99919068, 0.49320349,\
+-	-6.27296743, -0.00050176, 0.00030743, 7.27246567, 0.99846715, 0.99919081, 0.49320357,\
+-	-6.27296762, -0.00050168, 0.00030738, 7.27246594, 0.99846739, 0.99919094, 0.49320354,\
+-	-6.27296781, -0.00050160, 0.00030733, 7.27246622, 0.99846764, 0.99919108, 0.49320360,\
+-	-6.27296801, -0.00050152, 0.00030728, 7.27246649, 0.99846789, 0.99919121, 0.49320366,\
+-	-6.27296820, -0.00050143, 0.00030723, 7.27246677, 0.99846814, 0.99919134, 0.49320363,\
+-	-6.27296840, -0.00050135, 0.00030718, 7.27246704, 0.99846839, 0.99919147, 0.49320369,\
+-	-6.27296859, -0.00050127, 0.00030713, 7.27246732, 0.99846864, 0.99919160, 0.49320376,\
+-	-6.27296879, -0.00050119, 0.00030708, 7.27246760, 0.99846888, 0.99919173, 0.49320377,\
+-	-6.27296898, -0.00050111, 0.00030703, 7.27246787, 0.99846913, 0.99919186, 0.49320381,\
+-	-6.27296917, -0.00050103, 0.00030698, 7.27246815, 0.99846938, 0.99919199, 0.49320377,\
+-	-6.27296937, -0.00050095, 0.00030693, 7.27246842, 0.99846963, 0.99919212, 0.49320384,\
+-	-6.27296956, -0.00050087, 0.00030688, 7.27246870, 0.99846987, 0.99919225, 0.49320380,\
+-	-6.27296976, -0.00050079, 0.00030683, 7.27246897, 0.99847012, 0.99919238, 0.49320387,\
+-	-6.27296995, -0.00050070, 0.00030678, 7.27246925, 0.99847037, 0.99919251, 0.49320387,\
+-	-6.27297014, -0.00050062, 0.00030673, 7.27246952, 0.99847062, 0.99919265, 0.49320397,\
+-	-6.27297034, -0.00050054, 0.00030668, 7.27246980, 0.99847086, 0.99919278, 0.49320397,\
+-	-6.27297053, -0.00050046, 0.00030663, 7.27247007, 0.99847111, 0.99919291, 0.49320399,\
+-	-6.27297073, -0.00050038, 0.00030658, 7.27247034, 0.99847136, 0.99919304, 0.49320405,\
+-	-6.27297092, -0.00050030, 0.00030653, 7.27247062, 0.99847161, 0.99919317, 0.49320409,\
+-	-6.27297111, -0.00050022, 0.00030648, 7.27247089, 0.99847185, 0.99919330, 0.49320412,\
+-	-6.27297131, -0.00050014, 0.00030643, 7.27247117, 0.99847210, 0.99919343, 0.49320414,\
+-	-6.27297150, -0.00050006, 0.00030638, 7.27247144, 0.99847235, 0.99919356, 0.49320414,\
+-	-6.27297169, -0.00049998, 0.00030633, 7.27247172, 0.99847259, 0.99919369, 0.49320417,\
+-	-6.27297189, -0.00049990, 0.00030629, 7.27247199, 0.99847284, 0.99919382, 0.49320418,\
+-	-6.27297208, -0.00049982, 0.00030624, 7.27247226, 0.99847309, 0.99919395, 0.49320420,\
+-	-6.27297227, -0.00049973, 0.00030619, 7.27247254, 0.99847333, 0.99919408, 0.49320426,\
+-	-6.27297246, -0.00049965, 0.00030614, 7.27247281, 0.99847358, 0.99919421, 0.49320420,\
+-	-6.27297266, -0.00049957, 0.00030609, 7.27247308, 0.99847383, 0.99919434, 0.49320435,\
+-	-6.27297285, -0.00049949, 0.00030604, 7.27247336, 0.99847407, 0.99919447, 0.49320431,\
+-	-6.27297304, -0.00049941, 0.00030599, 7.27247363, 0.99847432, 0.99919460, 0.49320437,\
+-	-6.27297324, -0.00049933, 0.00030594, 7.27247390, 0.99847457, 0.99919473, 0.49320437,\
+-	-6.27297343, -0.00049925, 0.00030589, 7.27247418, 0.99847481, 0.99919486, 0.49320443,\
+-	-6.27297362, -0.00049917, 0.00030584, 7.27247445, 0.99847506, 0.99919499, 0.49320448,\
+-	-6.27297381, -0.00049909, 0.00030579, 7.27247472, 0.99847530, 0.99919512, 0.49320448,\
+-	-6.27297401, -0.00049901, 0.00030574, 7.27247500, 0.99847555, 0.99919525, 0.49320449,\
+-	-6.27297420, -0.00049893, 0.00030569, 7.27247527, 0.99847580, 0.99919538, 0.49320451,\
+-	-6.27297439, -0.00049885, 0.00030564, 7.27247554, 0.99847604, 0.99919551, 0.49320453,\
+-	-6.27297458, -0.00049877, 0.00030559, 7.27247582, 0.99847629, 0.99919564, 0.49320461,\
+-	-6.27297478, -0.00049869, 0.00030554, 7.27247609, 0.99847653, 0.99919577, 0.49320461,\
+-	-6.27297497, -0.00049861, 0.00030550, 7.27247636, 0.99847678, 0.99919590, 0.49320465,\
+-	-6.27297516, -0.00049853, 0.00030545, 7.27247663, 0.99847702, 0.99919603, 0.49320475,\
+-	-6.27297535, -0.00049845, 0.00030540, 7.27247691, 0.99847727, 0.99919616, 0.49320473,\
+-	-6.27297554, -0.00049837, 0.00030535, 7.27247718, 0.99847751, 0.99919629, 0.49320474,\
+-	-6.27297574, -0.00049829, 0.00030530, 7.27247745, 0.99847776, 0.99919641, 0.49320475,\
+-	-6.27297593, -0.00049821, 0.00030525, 7.27247772, 0.99847800, 0.99919654, 0.49320486,\
+-	-6.27297612, -0.00049813, 0.00030520, 7.27247799, 0.99847825, 0.99919667, 0.49320483,\
+-	-6.27297631, -0.00049805, 0.00030515, 7.27247827, 0.99847849, 0.99919680, 0.49320494,\
+-	-6.27297650, -0.00049797, 0.00030510, 7.27247854, 0.99847874, 0.99919693, 0.49320494,\
+-	-6.27297670, -0.00049789, 0.00030505, 7.27247881, 0.99847898, 0.99919706, 0.49320488,\
+-	-6.27297689, -0.00049781, 0.00030500, 7.27247908, 0.99847923, 0.99919719, 0.49320497,\
+-	-6.27297708, -0.00049773, 0.00030495, 7.27247935, 0.99847947, 0.99919732, 0.49320498,\
+-	-6.27297727, -0.00049765, 0.00030491, 7.27247962, 0.99847972, 0.99919745, 0.49320504,\
+-	-6.27297746, -0.00049757, 0.00030486, 7.27247990, 0.99847996, 0.99919758, 0.49320498,\
+-	-6.27297765, -0.00049749, 0.00030481, 7.27248017, 0.99848021, 0.99919771, 0.49320508,\
+-	-6.27297784, -0.00049741, 0.00030476, 7.27248044, 0.99848045, 0.99919784, 0.49320506,\
+-	-6.27297804, -0.00049733, 0.00030471, 7.27248071, 0.99848070, 0.99919796, 0.49320512,\
+-	-6.27297823, -0.00049725, 0.00030466, 7.27248098, 0.99848094, 0.99919809, 0.49320520,\
+-	-6.27297842, -0.00049717, 0.00030461, 7.27248125, 0.99848118, 0.99919822, 0.49320518,\
+-	-6.27297861, -0.00049709, 0.00030456, 7.27248152, 0.99848143, 0.99919835, 0.49320519,\
+-	-6.27297880, -0.00049701, 0.00030451, 7.27248179, 0.99848167, 0.99919848, 0.49320524,\
+-	-6.27297899, -0.00049693, 0.00030446, 7.27248206, 0.99848192, 0.99919861, 0.49320527,\
+-	-6.27297918, -0.00049685, 0.00030442, 7.27248233, 0.99848216, 0.99919874, 0.49320529,\
+-	-6.27297937, -0.00049677, 0.00030437, 7.27248260, 0.99848240, 0.99919887, 0.49320530,\
+-	-6.27297956, -0.00049669, 0.00030432, 7.27248288, 0.99848265, 0.99919899, 0.49320533,\
+-	-6.27297975, -0.00049661, 0.00030427, 7.27248315, 0.99848289, 0.99919912, 0.49320533,\
+-	-6.27297994, -0.00049653, 0.00030422, 7.27248342, 0.99848313, 0.99919925, 0.49320545,\
+-	-6.27298013, -0.00049645, 0.00030417, 7.27248369, 0.99848338, 0.99919938, 0.49320550,\
+-	-6.27298033, -0.00049637, 0.00030412, 7.27248396, 0.99848362, 0.99919951, 0.49320544,\
+-	-6.27298052, -0.00049629, 0.00030407, 7.27248423, 0.99848386, 0.99919964, 0.49320542,\
+-	-6.27298071, -0.00049621, 0.00030403, 7.27248450, 0.99848411, 0.99919976, 0.49320549,\
+-	-6.27298090, -0.00049613, 0.00030398, 7.27248477, 0.99848435, 0.99919989, 0.49320553,\
+-	-6.27298109, -0.00049605, 0.00030393, 7.27248504, 0.99848459, 0.99920002, 0.49320549,\
+-	-6.27298128, -0.00049597, 0.00030388, 7.27248531, 0.99848484, 0.99920015, 0.49320559,\
+-	-6.27298147, -0.00049589, 0.00030383, 7.27248557, 0.99848508, 0.99920028, 0.49320560,\
+-	-6.27298166, -0.00049581, 0.00030378, 7.27248584, 0.99848532, 0.99920041, 0.49320562,\
+-	-6.27298185, -0.00049573, 0.00030373, 7.27248611, 0.99848556, 0.99920053, 0.49320572,\
+-	-6.27298204, -0.00049565, 0.00030368, 7.27248638, 0.99848581, 0.99920066, 0.49320570,\
+-	-6.27298223, -0.00049557, 0.00030364, 7.27248665, 0.99848605, 0.99920079, 0.49320571,\
+-	-6.27298242, -0.00049550, 0.00030359, 7.27248692, 0.99848629, 0.99920092, 0.49320573,\
+-	-6.27298261, -0.00049542, 0.00030354, 7.27248719, 0.99848653, 0.99920105, 0.49320576,\
+-	-6.27298280, -0.00049534, 0.00030349, 7.27248746, 0.99848678, 0.99920117, 0.49320585,\
+-	-6.27298299, -0.00049526, 0.00030344, 7.27248773, 0.99848702, 0.99920130, 0.49320584,\
+-	-6.27298318, -0.00049518, 0.00030339, 7.27248800, 0.99848726, 0.99920143, 0.49320590,\
+-	-6.27298336, -0.00049510, 0.00030334, 7.27248827, 0.99848750, 0.99920156, 0.49320592,\
+-	-6.27298355, -0.00049502, 0.00030330, 7.27248853, 0.99848774, 0.99920168, 0.49320594,\
+-	-6.27298374, -0.00049494, 0.00030325, 7.27248880, 0.99848799, 0.99920181, 0.49320595,\
+-	-6.27298393, -0.00049486, 0.00030320, 7.27248907, 0.99848823, 0.99920194, 0.49320597,\
+-	-6.27298412, -0.00049478, 0.00030315, 7.27248934, 0.99848847, 0.99920207, 0.49320596,\
+-	-6.27298431, -0.00049470, 0.00030310, 7.27248961, 0.99848871, 0.99920220, 0.49320603,\
+-	-6.27298450, -0.00049462, 0.00030305, 7.27248988, 0.99848895, 0.99920232, 0.49320613,\
+-	-6.27298469, -0.00049455, 0.00030300, 7.27249014, 0.99848919, 0.99920245, 0.49320607,\
+-	-6.27298488, -0.00049447, 0.00030296, 7.27249041, 0.99848944, 0.99920258, 0.49320616,\
+-	-6.27298507, -0.00049439, 0.00030291, 7.27249068, 0.99848968, 0.99920270, 0.49320618,\
+-	-6.27298526, -0.00049431, 0.00030286, 7.27249095, 0.99848992, 0.99920283, 0.49320613,\
+-	-6.27298545, -0.00049423, 0.00030281, 7.27249122, 0.99849016, 0.99920296, 0.49320620,\
+-	-6.27298563, -0.00049415, 0.00030276, 7.27249148, 0.99849040, 0.99920309, 0.49320622,\
+-	-6.27298582, -0.00049407, 0.00030271, 7.27249175, 0.99849064, 0.99920321, 0.49320626,\
+-	-6.27298601, -0.00049399, 0.00030267, 7.27249202, 0.99849088, 0.99920334, 0.49320625,\
+-	-6.27298620, -0.00049391, 0.00030262, 7.27249229, 0.99849112, 0.99920347, 0.49320640,\
+-	-6.27298639, -0.00049384, 0.00030257, 7.27249255, 0.99849136, 0.99920360, 0.49320640,\
+-	-6.27298658, -0.00049376, 0.00030252, 7.27249282, 0.99849161, 0.99920372, 0.49320636,\
+-	-6.27298677, -0.00049368, 0.00030247, 7.27249309, 0.99849185, 0.99920385, 0.49320641,\
+-	-6.27298695, -0.00049360, 0.00030242, 7.27249336, 0.99849209, 0.99920398, 0.49320644,\
+-	-6.27298714, -0.00049352, 0.00030238, 7.27249362, 0.99849233, 0.99920410, 0.49320643,\
+-	-6.27298733, -0.00049344, 0.00030233, 7.27249389, 0.99849257, 0.99920423, 0.49320647,\
+-	-6.27298752, -0.00049336, 0.00030228, 7.27249416, 0.99849281, 0.99920436, 0.49320649,\
+-	-6.27298771, -0.00049328, 0.00030223, 7.27249442, 0.99849305, 0.99920448, 0.49320659,\
+-	-6.27298790, -0.00049321, 0.00030218, 7.27249469, 0.99849329, 0.99920461, 0.49320657,\
+-	-6.27298808, -0.00049313, 0.00030214, 7.27249496, 0.99849353, 0.99920474, 0.49320661,\
+-	-6.27298827, -0.00049305, 0.00030209, 7.27249522, 0.99849377, 0.99920486, 0.49320660,\
+-	-6.27298846, -0.00049297, 0.00030204, 7.27249549, 0.99849401, 0.99920499, 0.49320663,\
+-	-6.27298865, -0.00049289, 0.00030199, 7.27249576, 0.99849425, 0.99920512, 0.49320673,\
+-	-6.27298883, -0.00049281, 0.00030194, 7.27249602, 0.99849449, 0.99920524, 0.49320673,\
+-	-6.27298902, -0.00049273, 0.00030189, 7.27249629, 0.99849473, 0.99920537, 0.49320669,\
+-	-6.27298921, -0.00049266, 0.00030185, 7.27249655, 0.99849497, 0.99920550, 0.49320677,\
+-	-6.27298940, -0.00049258, 0.00030180, 7.27249682, 0.99849521, 0.99920562, 0.49320680,\
+-	-6.27298959, -0.00049250, 0.00030175, 7.27249709, 0.99849545, 0.99920575, 0.49320687,\
+-	-6.27298977, -0.00049242, 0.00030170, 7.27249735, 0.99849569, 0.99920588, 0.49320693,\
+-	-6.27298996, -0.00049234, 0.00030165, 7.27249762, 0.99849593, 0.99920600, 0.49320681,\
+-	-6.27299015, -0.00049226, 0.00030161, 7.27249788, 0.99849616, 0.99920613, 0.49320699,\
+-	-6.27299033, -0.00049219, 0.00030156, 7.27249815, 0.99849640, 0.99920626, 0.49320687,\
+-	-6.27299052, -0.00049211, 0.00030151, 7.27249841, 0.99849664, 0.99920638, 0.49320699,\
+-	-6.27299071, -0.00049203, 0.00030146, 7.27249868, 0.99849688, 0.99920651, 0.49320705,\
+-	-6.27299090, -0.00049195, 0.00030141, 7.27249894, 0.99849712, 0.99920663, 0.49320709,\
+-	-6.27299108, -0.00049187, 0.00030137, 7.27249921, 0.99849736, 0.99920676, 0.49320704,\
+-	-6.27299127, -0.00049180, 0.00030132, 7.27249948, 0.99849760, 0.99920689, 0.49320700,\
+-	-6.27299146, -0.00049172, 0.00030127, 7.27249974, 0.99849784, 0.99920701, 0.49320709,\
+-	-6.27299164, -0.00049164, 0.00030122, 7.27250001, 0.99849808, 0.99920714, 0.49320722,\
+-	-6.27299183, -0.00049156, 0.00030118, 7.27250027, 0.99849831, 0.99920726, 0.49320713,\
+-	-6.27299202, -0.00049148, 0.00030113, 7.27250053, 0.99849855, 0.99920739, 0.49320717,\
+-	-6.27299220, -0.00049140, 0.00030108, 7.27250080, 0.99849879, 0.99920752, 0.49320720,\
+-	-6.27299239, -0.00049133, 0.00030103, 7.27250106, 0.99849903, 0.99920764, 0.49320724,\
+-	-6.27299258, -0.00049125, 0.00030098, 7.27250133, 0.99849927, 0.99920777, 0.49320731,\
+-	-6.27299276, -0.00049117, 0.00030094, 7.27250159, 0.99849951, 0.99920789, 0.49320733,\
+-	-6.27299295, -0.00049109, 0.00030089, 7.27250186, 0.99849974, 0.99920802, 0.49320736,\
+-	-6.27299314, -0.00049102, 0.00030084, 7.27250212, 0.99849998, 0.99920814, 0.49320742,\
+-	-6.27299332, -0.00049094, 0.00030079, 7.27250239, 0.99850022, 0.99920827, 0.49320737,\
+-	-6.27299351, -0.00049086, 0.00030075, 7.27250265, 0.99850046, 0.99920840, 0.49320741,\
+-	-6.27299370, -0.00049078, 0.00030070, 7.27250291, 0.99850070, 0.99920852, 0.49320747,\
+-	-6.27299388, -0.00049070, 0.00030065, 7.27250318, 0.99850093, 0.99920865, 0.49320746,\
+-	-6.27299407, -0.00049063, 0.00030060, 7.27250344, 0.99850117, 0.99920877, 0.49320747,\
+-	-6.27299425, -0.00049055, 0.00030055, 7.27250371, 0.99850141, 0.99920890, 0.49320753,\
+-	-6.27299444, -0.00049047, 0.00030051, 7.27250397, 0.99850165, 0.99920902, 0.49320754,\
+-	-6.27299463, -0.00049039, 0.00030046, 7.27250423, 0.99850188, 0.99920915, 0.49320761,\
+-	-6.27299481, -0.00049032, 0.00030041, 7.27250450, 0.99850212, 0.99920927, 0.49320761,\
+-	-6.27299500, -0.00049024, 0.00030036, 7.27250476, 0.99850236, 0.99920940, 0.49320763,\
+-	-6.27299518, -0.00049016, 0.00030032, 7.27250502, 0.99850260, 0.99920952, 0.49320763,\
+-	-6.27299537, -0.00049008, 0.00030027, 7.27250529, 0.99850283, 0.99920965, 0.49320764,\
+-	-6.27299556, -0.00049000, 0.00030022, 7.27250555, 0.99850307, 0.99920977, 0.49320768,\
+-	-6.27299574, -0.00048993, 0.00030017, 7.27250581, 0.99850331, 0.99920990, 0.49320774,\
+-	-6.27299593, -0.00048985, 0.00030013, 7.27250608, 0.99850354, 0.99921002, 0.49320770,\
+-	-6.27299611, -0.00048977, 0.00030008, 7.27250634, 0.99850378, 0.99921015, 0.49320782,\
+-	-6.27299630, -0.00048969, 0.00030003, 7.27250660, 0.99850402, 0.99921027, 0.49320781,\
+-	-6.27299648, -0.00048962, 0.00029998, 7.27250687, 0.99850426, 0.99921040, 0.49320784,\
+-	-6.27299667, -0.00048954, 0.00029994, 7.27250713, 0.99850449, 0.99921052, 0.49320787,\
+-	-6.27299685, -0.00048946, 0.00029989, 7.27250739, 0.99850473, 0.99921065, 0.49320791,\
+-	-6.27299704, -0.00048938, 0.00029984, 7.27250765, 0.99850496, 0.99921077, 0.49320794,\
+-	-6.27299722, -0.00048931, 0.00029979, 7.27250792, 0.99850520, 0.99921090, 0.49320795,\
+-	-6.27299741, -0.00048923, 0.00029975, 7.27250818, 0.99850544, 0.99921102, 0.49320801,\
+-	-6.27299759, -0.00048915, 0.00029970, 7.27250844, 0.99850567, 0.99921115, 0.49320802,\
+-	-6.27299778, -0.00048908, 0.00029965, 7.27250870, 0.99850591, 0.99921127, 0.49320805,\
+-	-6.27299796, -0.00048900, 0.00029960, 7.27250896, 0.99850615, 0.99921140, 0.49320810,\
+-	-6.27299815, -0.00048892, 0.00029956, 7.27250923, 0.99850638, 0.99921152, 0.49320806,\
+-	-6.27299833, -0.00048884, 0.00029951, 7.27250949, 0.99850662, 0.99921165, 0.49320815,\
+-	-6.27299852, -0.00048877, 0.00029946, 7.27250975, 0.99850685, 0.99921177, 0.49320816,\
+-	-6.27299870, -0.00048869, 0.00029941, 7.27251001, 0.99850709, 0.99921190, 0.49320817,\
+-	-6.27299889, -0.00048861, 0.00029937, 7.27251027, 0.99850733, 0.99921202, 0.49320820,\
+-	-6.27299907, -0.00048854, 0.00029932, 7.27251054, 0.99850756, 0.99921214, 0.49320826,\
+-	-6.27299926, -0.00048846, 0.00029927, 7.27251080, 0.99850780, 0.99921227, 0.49320827,\
+-	-6.27299944, -0.00048838, 0.00029923, 7.27251106, 0.99850803, 0.99921239, 0.49320823,\
+-	-6.27299962, -0.00048830, 0.00029918, 7.27251132, 0.99850827, 0.99921252, 0.49320833,\
+-	-6.27299981, -0.00048823, 0.00029913, 7.27251158, 0.99850850, 0.99921264, 0.49320833,\
+-	-6.27299999, -0.00048815, 0.00029908, 7.27251184, 0.99850874, 0.99921277, 0.49320839,\
+-	-6.27300018, -0.00048807, 0.00029904, 7.27251210, 0.99850897, 0.99921289, 0.49320841,\
+-	-6.27300036, -0.00048800, 0.00029899, 7.27251236, 0.99850921, 0.99921301, 0.49320850,\
+-	-6.27300055, -0.00048792, 0.00029894, 7.27251263, 0.99850944, 0.99921314, 0.49320846,\
+-	-6.27300073, -0.00048784, 0.00029890, 7.27251289, 0.99850968, 0.99921326, 0.49320848,\
+-	-6.27300091, -0.00048777, 0.00029885, 7.27251315, 0.99850991, 0.99921339, 0.49320847,\
+-	-6.27300110, -0.00048769, 0.00029880, 7.27251341, 0.99851015, 0.99921351, 0.49320858,\
+-	-6.27300128, -0.00048761, 0.00029875, 7.27251367, 0.99851038, 0.99921363, 0.49320864,\
+-	-6.27300146, -0.00048754, 0.00029871, 7.27251393, 0.99851062, 0.99921376, 0.49320855,\
+-	-6.27300165, -0.00048746, 0.00029866, 7.27251419, 0.99851085, 0.99921388, 0.49320856,\
+-	-6.27300183, -0.00048738, 0.00029861, 7.27251445, 0.99851109, 0.99921401, 0.49320863,\
+-	-6.27300202, -0.00048730, 0.00029857, 7.27251471, 0.99851132, 0.99921413, 0.49320867,\
+-	-6.27300220, -0.00048723, 0.00029852, 7.27251497, 0.99851156, 0.99921425, 0.49320861,\
+-	-6.27300238, -0.00048715, 0.00029847, 7.27251523, 0.99851179, 0.99921438, 0.49320874,\
+-	-6.27300257, -0.00048707, 0.00029842, 7.27251549, 0.99851202, 0.99921450, 0.49320874,\
+-	-6.27300275, -0.00048700, 0.00029838, 7.27251575, 0.99851226, 0.99921462, 0.49320881,\
+-	-6.27300293, -0.00048692, 0.00029833, 7.27251601, 0.99851249, 0.99921475, 0.49320880,\
+-	-6.27300312, -0.00048685, 0.00029828, 7.27251627, 0.99851273, 0.99921487, 0.49320887,\
+-	-6.27300330, -0.00048677, 0.00029824, 7.27251653, 0.99851296, 0.99921499, 0.49320886,\
+-	-6.27300348, -0.00048669, 0.00029819, 7.27251679, 0.99851320, 0.99921512, 0.49320893,\
+-	-6.27300367, -0.00048662, 0.00029814, 7.27251705, 0.99851343, 0.99921524, 0.49320893,\
+-	-6.27300385, -0.00048654, 0.00029810, 7.27251731, 0.99851366, 0.99921536, 0.49320895,\
+-	-6.27300403, -0.00048646, 0.00029805, 7.27251757, 0.99851390, 0.99921549, 0.49320892,\
+-	-6.27300421, -0.00048639, 0.00029800, 7.27251783, 0.99851413, 0.99921561, 0.49320898,\
+-	-6.27300440, -0.00048631, 0.00029796, 7.27251809, 0.99851436, 0.99921573, 0.49320901,\
+-	-6.27300458, -0.00048623, 0.00029791, 7.27251835, 0.99851460, 0.99921586, 0.49320901,\
+-	-6.27300476, -0.00048616, 0.00029786, 7.27251861, 0.99851483, 0.99921598, 0.49320912,\
+-	-6.27300495, -0.00048608, 0.00029782, 7.27251886, 0.99851506, 0.99921610, 0.49320910,\
+-	-6.27300513, -0.00048600, 0.00029777, 7.27251912, 0.99851530, 0.99921623, 0.49320913,\
+-	-6.27300531, -0.00048593, 0.00029772, 7.27251938, 0.99851553, 0.99921635, 0.49320917,\
+-	-6.27300549, -0.00048585, 0.00029768, 7.27251964, 0.99851576, 0.99921647, 0.49320916,\
+-	-6.27300568, -0.00048578, 0.00029763, 7.27251990, 0.99851600, 0.99921660, 0.49320920,\
+-	-6.27300586, -0.00048570, 0.00029758, 7.27252016, 0.99851623, 0.99921672, 0.49320924,\
+-	-6.27300604, -0.00048562, 0.00029753, 7.27252042, 0.99851646, 0.99921684, 0.49320926,\
+-	-6.27300622, -0.00048555, 0.00029749, 7.27252068, 0.99851669, 0.99921696, 0.49320930,\
+-	-6.27300640, -0.00048547, 0.00029744, 7.27252093, 0.99851693, 0.99921709, 0.49320931,\
+-	-6.27300659, -0.00048539, 0.00029739, 7.27252119, 0.99851716, 0.99921721, 0.49320938,\
+-	-6.27300677, -0.00048532, 0.00029735, 7.27252145, 0.99851739, 0.99921733, 0.49320939,\
+-	-6.27300695, -0.00048524, 0.00029730, 7.27252171, 0.99851763, 0.99921746, 0.49320948,\
+-	-6.27300713, -0.00048517, 0.00029725, 7.27252197, 0.99851786, 0.99921758, 0.49320954,\
+-	-6.27300732, -0.00048509, 0.00029721, 7.27252222, 0.99851809, 0.99921770, 0.49320950,\
+-	-6.27300750, -0.00048501, 0.00029716, 7.27252248, 0.99851832, 0.99921782, 0.49320952,\
+-	-6.27300768, -0.00048494, 0.00029712, 7.27252274, 0.99851855, 0.99921795, 0.49320954,\
+-	-6.27300786, -0.00048486, 0.00029707, 7.27252300, 0.99851879, 0.99921807, 0.49320960,\
+-	-6.27300804, -0.00048479, 0.00029702, 7.27252326, 0.99851902, 0.99921819, 0.49320959,\
+-	-6.27300822, -0.00048471, 0.00029698, 7.27252351, 0.99851925, 0.99921831, 0.49320958,\
+-	-6.27300841, -0.00048463, 0.00029693, 7.27252377, 0.99851948, 0.99921844, 0.49320965,\
+-	-6.27300859, -0.00048456, 0.00029688, 7.27252403, 0.99851971, 0.99921856, 0.49320967,\
+-	-6.27300877, -0.00048448, 0.00029684, 7.27252429, 0.99851995, 0.99921868, 0.49320972,\
+-	-6.27300895, -0.00048441, 0.00029679, 7.27252454, 0.99852018, 0.99921880, 0.49320973,\
+-	-6.27300913, -0.00048433, 0.00029674, 7.27252480, 0.99852041, 0.99921893, 0.49320972,\
+-	-6.27300931, -0.00048426, 0.00029670, 7.27252506, 0.99852064, 0.99921905, 0.49320980,\
+-	-6.27300949, -0.00048418, 0.00029665, 7.27252531, 0.99852087, 0.99921917, 0.49320981,\
+-	-6.27300968, -0.00048410, 0.00029660, 7.27252557, 0.99852110, 0.99921929, 0.49320974,\
+-	-6.27300986, -0.00048403, 0.00029656, 7.27252583, 0.99852134, 0.99921941, 0.49320985,\
+-	-6.27301004, -0.00048395, 0.00029651, 7.27252608, 0.99852157, 0.99921954, 0.49320992,\
+-	-6.27301022, -0.00048388, 0.00029646, 7.27252634, 0.99852180, 0.99921966, 0.49320992,\
+-	-6.27301040, -0.00048380, 0.00029642, 7.27252660, 0.99852203, 0.99921978, 0.49320993,\
+-	-6.27301058, -0.00048373, 0.00029637, 7.27252685, 0.99852226, 0.99921990, 0.49320993,\
+-	-6.27301076, -0.00048365, 0.00029633, 7.27252711, 0.99852249, 0.99922002, 0.49321001,\
+-	-6.27301094, -0.00048357, 0.00029628, 7.27252737, 0.99852272, 0.99922015, 0.49321003,\
+-	-6.27301112, -0.00048350, 0.00029623, 7.27252762, 0.99852295, 0.99922027, 0.49321005,\
+-	-6.27301130, -0.00048342, 0.00029619, 7.27252788, 0.99852318, 0.99922039, 0.49321008,\
+-	-6.27301148, -0.00048335, 0.00029614, 7.27252814, 0.99852341, 0.99922051, 0.49321008,\
+-	-6.27301166, -0.00048327, 0.00029609, 7.27252839, 0.99852364, 0.99922063, 0.49321010,\
+-	-6.27301185, -0.00048320, 0.00029605, 7.27252865, 0.99852388, 0.99922075, 0.49321017,\
+-	-6.27301203, -0.00048312, 0.00029600, 7.27252890, 0.99852411, 0.99922088, 0.49321023,\
+-	-6.27301221, -0.00048305, 0.00029596, 7.27252916, 0.99852434, 0.99922100, 0.49321020,\
+-	-6.27301239, -0.00048297, 0.00029591, 7.27252942, 0.99852457, 0.99922112, 0.49321023,\
+-	-6.27301257, -0.00048290, 0.00029586, 7.27252967, 0.99852480, 0.99922124, 0.49321024,\
+-	-6.27301275, -0.00048282, 0.00029582, 7.27252993, 0.99852503, 0.99922136, 0.49321030,\
+-	-6.27301293, -0.00048275, 0.00029577, 7.27253018, 0.99852526, 0.99922148, 0.49321031,\
+-	-6.27301311, -0.00048267, 0.00029572, 7.27253044, 0.99852549, 0.99922161, 0.49321030,\
+-	-6.27301329, -0.00048259, 0.00029568, 7.27253069, 0.99852572, 0.99922173, 0.49321030,\
+-	-6.27301347, -0.00048252, 0.00029563, 7.27253095, 0.99852595, 0.99922185, 0.49321039,\
+-	-6.27301365, -0.00048244, 0.00029559, 7.27253120, 0.99852618, 0.99922197, 0.49321037,\
+-	-6.27301383, -0.00048237, 0.00029554, 7.27253146, 0.99852641, 0.99922209, 0.49321046,\
+-	-6.27301401, -0.00048229, 0.00029549, 7.27253171, 0.99852664, 0.99922221, 0.49321048,\
+-	-6.27301419, -0.00048222, 0.00029545, 7.27253197, 0.99852687, 0.99922233, 0.49321049,\
+-	-6.27301437, -0.00048214, 0.00029540, 7.27253222, 0.99852710, 0.99922245, 0.49321046,\
+-	-6.27301455, -0.00048207, 0.00029536, 7.27253248, 0.99852732, 0.99922258, 0.49321053,\
+-	-6.27301473, -0.00048199, 0.00029531, 7.27253273, 0.99852755, 0.99922270, 0.49321060,\
+-	-6.27301491, -0.00048192, 0.00029526, 7.27253299, 0.99852778, 0.99922282, 0.49321066,\
+-	-6.27301509, -0.00048184, 0.00029522, 7.27253324, 0.99852801, 0.99922294, 0.49321062,\
+-	-6.27301526, -0.00048177, 0.00029517, 7.27253350, 0.99852824, 0.99922306, 0.49321065,\
+-	-6.27301544, -0.00048169, 0.00029513, 7.27253375, 0.99852847, 0.99922318, 0.49321069,\
+-	-6.27301562, -0.00048162, 0.00029508, 7.27253400, 0.99852870, 0.99922330, 0.49321066,\
+-	-6.27301580, -0.00048154, 0.00029503, 7.27253426, 0.99852893, 0.99922342, 0.49321075,\
+-	-6.27301598, -0.00048147, 0.00029499, 7.27253451, 0.99852916, 0.99922354, 0.49321074,\
+-	-6.27301616, -0.00048139, 0.00029494, 7.27253477, 0.99852939, 0.99922366, 0.49321082,\
+-	-6.27301634, -0.00048132, 0.00029490, 7.27253502, 0.99852962, 0.99922378, 0.49321081,\
+-	-6.27301652, -0.00048124, 0.00029485, 7.27253528, 0.99852984, 0.99922391, 0.49321083,\
+-	-6.27301670, -0.00048117, 0.00029480, 7.27253553, 0.99853007, 0.99922403, 0.49321094,\
+-	-6.27301688, -0.00048109, 0.00029476, 7.27253578, 0.99853030, 0.99922415, 0.49321096,\
+-	-6.27301706, -0.00048102, 0.00029471, 7.27253604, 0.99853053, 0.99922427, 0.49321093,\
+-	-6.27301724, -0.00048095, 0.00029467, 7.27253629, 0.99853076, 0.99922439, 0.49321094,\
+-	-6.27301741, -0.00048087, 0.00029462, 7.27253654, 0.99853099, 0.99922451, 0.49321098,\
+-	-6.27301759, -0.00048080, 0.00029458, 7.27253680, 0.99853121, 0.99922463, 0.49321102,\
+-	-6.27301777, -0.00048072, 0.00029453, 7.27253705, 0.99853144, 0.99922475, 0.49321101,\
+-	-6.27301795, -0.00048065, 0.00029448, 7.27253730, 0.99853167, 0.99922487, 0.49321109,\
+-	-6.27301813, -0.00048057, 0.00029444, 7.27253756, 0.99853190, 0.99922499, 0.49321107,\
+-	-6.27301831, -0.00048050, 0.00029439, 7.27253781, 0.99853213, 0.99922511, 0.49321107,\
+-	-6.27301849, -0.00048042, 0.00029435, 7.27253806, 0.99853235, 0.99922523, 0.49321110,\
+-	-6.27301866, -0.00048035, 0.00029430, 7.27253832, 0.99853258, 0.99922535, 0.49321118,\
+-	-6.27301884, -0.00048027, 0.00029426, 7.27253857, 0.99853281, 0.99922547, 0.49321119,\
+-	-6.27301902, -0.00048020, 0.00029421, 7.27253882, 0.99853304, 0.99922559, 0.49321116,\
+-	-6.27301920, -0.00048012, 0.00029416, 7.27253907, 0.99853327, 0.99922571, 0.49321127,\
+-	-6.27301938, -0.00048005, 0.00029412, 7.27253933, 0.99853349, 0.99922583, 0.49321123,\
+-	-6.27301956, -0.00047998, 0.00029407, 7.27253958, 0.99853372, 0.99922595, 0.49321129,\
+-	-6.27301973, -0.00047990, 0.00029403, 7.27253983, 0.99853395, 0.99922607, 0.49321135,\
+-	-6.27301991, -0.00047983, 0.00029398, 7.27254008, 0.99853418, 0.99922619, 0.49321135,\
+-	-6.27302009, -0.00047975, 0.00029394, 7.27254034, 0.99853440, 0.99922631, 0.49321139,\
+-	-6.27302027, -0.00047968, 0.00029389, 7.27254059, 0.99853463, 0.99922643, 0.49321146,\
+-	-6.27302044, -0.00047960, 0.00029384, 7.27254084, 0.99853486, 0.99922655, 0.49321142,\
+-	-6.27302062, -0.00047953, 0.00029380, 7.27254109, 0.99853508, 0.99922667, 0.49321144,\
+-	-6.27302080, -0.00047946, 0.00029375, 7.27254135, 0.99853531, 0.99922679, 0.49321144,\
+-	-6.27302098, -0.00047938, 0.00029371, 7.27254160, 0.99853554, 0.99922691, 0.49321157,\
+-	-6.27302116, -0.00047931, 0.00029366, 7.27254185, 0.99853577, 0.99922703, 0.49321152,\
+-	-6.27302133, -0.00047923, 0.00029362, 7.27254210, 0.99853599, 0.99922715, 0.49321153,\
+-	-6.27302151, -0.00047916, 0.00029357, 7.27254235, 0.99853622, 0.99922727, 0.49321157,\
+-	-6.27302169, -0.00047908, 0.00029353, 7.27254260, 0.99853645, 0.99922739, 0.49321160,\
+-	-6.27302187, -0.00047901, 0.00029348, 7.27254286, 0.99853667, 0.99922751, 0.49321170,\
+-	-6.27302204, -0.00047894, 0.00029344, 7.27254311, 0.99853690, 0.99922763, 0.49321172,\
+-	-6.27302222, -0.00047886, 0.00029339, 7.27254336, 0.99853712, 0.99922775, 0.49321163,\
+-	-6.27302240, -0.00047879, 0.00029334, 7.27254361, 0.99853735, 0.99922787, 0.49321166,\
+-	-6.27302257, -0.00047871, 0.00029330, 7.27254386, 0.99853758, 0.99922799, 0.49321175,\
+-	-6.27302275, -0.00047864, 0.00029325, 7.27254411, 0.99853780, 0.99922811, 0.49321177,\
+-	-6.27302293, -0.00047857, 0.00029321, 7.27254436, 0.99853803, 0.99922823, 0.49321185,\
+-	-6.27302311, -0.00047849, 0.00029316, 7.27254461, 0.99853826, 0.99922834, 0.49321182,\
+-	-6.27302328, -0.00047842, 0.00029312, 7.27254486, 0.99853848, 0.99922846, 0.49321190,\
+-	-6.27302346, -0.00047834, 0.00029307, 7.27254512, 0.99853871, 0.99922858, 0.49321191,\
+-	-6.27302364, -0.00047827, 0.00029303, 7.27254537, 0.99853893, 0.99922870, 0.49321187,\
+-	-6.27302381, -0.00047820, 0.00029298, 7.27254562, 0.99853916, 0.99922882, 0.49321186,\
+-	-6.27302399, -0.00047812, 0.00029294, 7.27254587, 0.99853939, 0.99922894, 0.49321193,\
+-	-6.27302417, -0.00047805, 0.00029289, 7.27254612, 0.99853961, 0.99922906, 0.49321201,\
+-	-6.27302434, -0.00047797, 0.00029285, 7.27254637, 0.99853984, 0.99922918, 0.49321205,\
+-	-6.27302452, -0.00047790, 0.00029280, 7.27254662, 0.99854006, 0.99922930, 0.49321210,\
+-	-6.27302470, -0.00047783, 0.00029276, 7.27254687, 0.99854029, 0.99922942, 0.49321211,\
+-	-6.27302487, -0.00047775, 0.00029271, 7.27254712, 0.99854051, 0.99922954, 0.49321206,\
+-	-6.27302505, -0.00047768, 0.00029267, 7.27254737, 0.99854074, 0.99922965, 0.49321212,\
+-	-6.27302523, -0.00047761, 0.00029262, 7.27254762, 0.99854096, 0.99922977, 0.49321212,\
+-	-6.27302540, -0.00047753, 0.00029257, 7.27254787, 0.99854119, 0.99922989, 0.49321221,\
+-	-6.27302558, -0.00047746, 0.00029253, 7.27254812, 0.99854141, 0.99923001, 0.49321218,\
+-	-6.27302575, -0.00047739, 0.00029248, 7.27254837, 0.99854164, 0.99923013, 0.49321223,\
+-	-6.27302593, -0.00047731, 0.00029244, 7.27254862, 0.99854186, 0.99923025, 0.49321227,\
+-	-6.27302611, -0.00047724, 0.00029239, 7.27254887, 0.99854209, 0.99923037, 0.49321227,\
+-	-6.27302628, -0.00047716, 0.00029235, 7.27254912, 0.99854231, 0.99923049, 0.49321226,\
+-	-6.27302646, -0.00047709, 0.00029230, 7.27254937, 0.99854254, 0.99923060, 0.49321229,\
+-	-6.27302664, -0.00047702, 0.00029226, 7.27254962, 0.99854276, 0.99923072, 0.49321232,\
+-	-6.27302681, -0.00047694, 0.00029221, 7.27254987, 0.99854299, 0.99923084, 0.49321239,\
+-	-6.27302699, -0.00047687, 0.00029217, 7.27255012, 0.99854321, 0.99923096, 0.49321240,\
+-	-6.27302716, -0.00047680, 0.00029212, 7.27255037, 0.99854344, 0.99923108, 0.49321246,\
+-	-6.27302734, -0.00047672, 0.00029208, 7.27255061, 0.99854366, 0.99923120, 0.49321244,\
+-	-6.27302751, -0.00047665, 0.00029203, 7.27255086, 0.99854388, 0.99923132, 0.49321242,\
+-	-6.27302769, -0.00047658, 0.00029199, 7.27255111, 0.99854411, 0.99923143, 0.49321242,\
+-	-6.27302787, -0.00047650, 0.00029194, 7.27255136, 0.99854433, 0.99923155, 0.49321258,\
+-	-6.27302804, -0.00047643, 0.00029190, 7.27255161, 0.99854456, 0.99923167, 0.49321251,\
+-	-6.27302822, -0.00047636, 0.00029185, 7.27255186, 0.99854478, 0.99923179, 0.49321261,\
+-	-6.27302839, -0.00047628, 0.00029181, 7.27255211, 0.99854501, 0.99923191, 0.49321264,\
+-	-6.27302857, -0.00047621, 0.00029176, 7.27255236, 0.99854523, 0.99923203, 0.49321265,\
+-	-6.27302874, -0.00047614, 0.00029172, 7.27255261, 0.99854545, 0.99923214, 0.49321268,\
+-	-6.27302892, -0.00047606, 0.00029167, 7.27255285, 0.99854568, 0.99923226, 0.49321269,\
+-	-6.27302909, -0.00047599, 0.00029163, 7.27255310, 0.99854590, 0.99923238, 0.49321277,\
+-	-6.27302927, -0.00047592, 0.00029158, 7.27255335, 0.99854612, 0.99923250, 0.49321272,\
+-	-6.27302944, -0.00047584, 0.00029154, 7.27255360, 0.99854635, 0.99923262, 0.49321278,\
+-	-6.27302962, -0.00047577, 0.00029150, 7.27255385, 0.99854657, 0.99923273, 0.49321287,\
+-	-6.27302979, -0.00047570, 0.00029145, 7.27255410, 0.99854679, 0.99923285, 0.49321280,\
+-	-6.27302997, -0.00047562, 0.00029141, 7.27255434, 0.99854702, 0.99923297, 0.49321291,\
+-	-6.27303014, -0.00047555, 0.00029136, 7.27255459, 0.99854724, 0.99923309, 0.49321279,\
+-	-6.27303032, -0.00047548, 0.00029132, 7.27255484, 0.99854746, 0.99923321, 0.49321284,\
+-	-6.27303049, -0.00047541, 0.00029127, 7.27255509, 0.99854769, 0.99923332, 0.49321288,\
+-	-6.27303067, -0.00047533, 0.00029123, 7.27255533, 0.99854791, 0.99923344, 0.49321294,\
+-	-6.27303084, -0.00047526, 0.00029118, 7.27255558, 0.99854813, 0.99923356, 0.49321292,\
+-	-6.27303102, -0.00047519, 0.00029114, 7.27255583, 0.99854836, 0.99923368, 0.49321300,\
+-	-6.27303119, -0.00047511, 0.00029109, 7.27255608, 0.99854858, 0.99923379, 0.49321302,\
+-	-6.27303137, -0.00047504, 0.00029105, 7.27255632, 0.99854880, 0.99923391, 0.49321303,\
+-	-6.27303154, -0.00047497, 0.00029100, 7.27255657, 0.99854903, 0.99923403, 0.49321311,\
+-	-6.27303171, -0.00047490, 0.00029096, 7.27255682, 0.99854925, 0.99923415, 0.49321311,\
+-	-6.27303189, -0.00047482, 0.00029091, 7.27255707, 0.99854947, 0.99923426, 0.49321315,\
+-	-6.27303206, -0.00047475, 0.00029087, 7.27255731, 0.99854969, 0.99923438, 0.49321319,\
+-	-6.27303224, -0.00047468, 0.00029082, 7.27255756, 0.99854992, 0.99923450, 0.49321317,\
+-	-6.27303241, -0.00047460, 0.00029078, 7.27255781, 0.99855014, 0.99923462, 0.49321321,\
+-	-6.27303259, -0.00047453, 0.00029073, 7.27255805, 0.99855036, 0.99923473, 0.49321326,\
+-	-6.27303276, -0.00047446, 0.00029069, 7.27255830, 0.99855058, 0.99923485, 0.49321318,\
+-	-6.27303293, -0.00047439, 0.00029065, 7.27255855, 0.99855081, 0.99923497, 0.49321326,\
+-	-6.27303311, -0.00047431, 0.00029060, 7.27255879, 0.99855103, 0.99923509, 0.49321333,\
+-	-6.27303328, -0.00047424, 0.00029056, 7.27255904, 0.99855125, 0.99923520, 0.49321333,\
+-	-6.27303345, -0.00047417, 0.00029051, 7.27255929, 0.99855147, 0.99923532, 0.49321344,\
+-	-6.27303363, -0.00047410, 0.00029047, 7.27255953, 0.99855169, 0.99923544, 0.49321337,\
+-	-6.27303380, -0.00047402, 0.00029042, 7.27255978, 0.99855192, 0.99923555, 0.49321345,\
+-	-6.27303398, -0.00047395, 0.00029038, 7.27256003, 0.99855214, 0.99923567, 0.49321337,\
+-	-6.27303415, -0.00047388, 0.00029033, 7.27256027, 0.99855236, 0.99923579, 0.49321344,\
+-	-6.27303432, -0.00047380, 0.00029029, 7.27256052, 0.99855258, 0.99923591, 0.49321346,\
+-	-6.27303450, -0.00047373, 0.00029025, 7.27256076, 0.99855280, 0.99923602, 0.49321354,\
+-	-6.27303467, -0.00047366, 0.00029020, 7.27256101, 0.99855302, 0.99923614, 0.49321353,\
+-	-6.27303484, -0.00047359, 0.00029016, 7.27256126, 0.99855325, 0.99923626, 0.49321361,\
+-	-6.27303502, -0.00047351, 0.00029011, 7.27256150, 0.99855347, 0.99923637, 0.49321358,\
+-	-6.27303519, -0.00047344, 0.00029007, 7.27256175, 0.99855369, 0.99923649, 0.49321363,\
+-	-6.27303536, -0.00047337, 0.00029002, 7.27256199, 0.99855391, 0.99923661, 0.49321367,\
+-	-6.27303554, -0.00047330, 0.00028998, 7.27256224, 0.99855413, 0.99923672, 0.49321364,\
+-	-6.27303571, -0.00047323, 0.00028993, 7.27256248, 0.99855435, 0.99923684, 0.49321377,\
+-	-6.27303588, -0.00047315, 0.00028989, 7.27256273, 0.99855457, 0.99923696, 0.49321375,\
+-	-6.27303606, -0.00047308, 0.00028985, 7.27256298, 0.99855479, 0.99923707, 0.49321379,\
+-	-6.27303623, -0.00047301, 0.00028980, 7.27256322, 0.99855501, 0.99923719, 0.49321377,\
+-	-6.27303640, -0.00047294, 0.00028976, 7.27256347, 0.99855524, 0.99923731, 0.49321372,\
+-	-6.27303658, -0.00047286, 0.00028971, 7.27256371, 0.99855546, 0.99923742, 0.49321383,\
+-	-6.27303675, -0.00047279, 0.00028967, 7.27256396, 0.99855568, 0.99923754, 0.49321384,\
+-	-6.27303692, -0.00047272, 0.00028962, 7.27256420, 0.99855590, 0.99923766, 0.49321394,\
+-	-6.27303709, -0.00047265, 0.00028958, 7.27256445, 0.99855612, 0.99923777, 0.49321386,\
+-	-6.27303727, -0.00047258, 0.00028954, 7.27256469, 0.99855634, 0.99923789, 0.49321390,\
+-	-6.27303744, -0.00047250, 0.00028949, 7.27256494, 0.99855656, 0.99923801, 0.49321401,\
+-	-6.27303761, -0.00047243, 0.00028945, 7.27256518, 0.99855678, 0.99923812, 0.49321394,\
+-	-6.27303778, -0.00047236, 0.00028940, 7.27256543, 0.99855700, 0.99923824, 0.49321395,\
+-	-6.27303796, -0.00047229, 0.00028936, 7.27256567, 0.99855722, 0.99923835, 0.49321400,\
+-	-6.27303813, -0.00047221, 0.00028931, 7.27256591, 0.99855744, 0.99923847, 0.49321392,\
+-	-6.27303830, -0.00047214, 0.00028927, 7.27256616, 0.99855766, 0.99923859, 0.49321409,\
+-	-6.27303847, -0.00047207, 0.00028923, 7.27256640, 0.99855788, 0.99923870, 0.49321404,\
+-	-6.27303865, -0.00047200, 0.00028918, 7.27256665, 0.99855810, 0.99923882, 0.49321416,\
+-	-6.27303882, -0.00047193, 0.00028914, 7.27256689, 0.99855832, 0.99923893, 0.49321409,\
+-	-6.27303899, -0.00047185, 0.00028909, 7.27256714, 0.99855854, 0.99923905, 0.49321418,\
+-	-6.27303916, -0.00047178, 0.00028905, 7.27256738, 0.99855876, 0.99923917, 0.49321418,\
+-	-6.27303933, -0.00047171, 0.00028901, 7.27256762, 0.99855898, 0.99923928, 0.49321424,\
+-	-6.27303951, -0.00047164, 0.00028896, 7.27256787, 0.99855920, 0.99923940, 0.49321434,\
+-	-6.27303968, -0.00047157, 0.00028892, 7.27256811, 0.99855942, 0.99923951, 0.49321431,\
+-	-6.27303985, -0.00047150, 0.00028887, 7.27256835, 0.99855964, 0.99923963, 0.49321429,\
+-	-6.27304002, -0.00047142, 0.00028883, 7.27256860, 0.99855986, 0.99923975, 0.49321428,\
+-	-6.27304019, -0.00047135, 0.00028879, 7.27256884, 0.99856008, 0.99923986, 0.49321434,\
+-	-6.27304037, -0.00047128, 0.00028874, 7.27256909, 0.99856030, 0.99923998, 0.49321435,\
+-	-6.27304054, -0.00047121, 0.00028870, 7.27256933, 0.99856052, 0.99924009, 0.49321437,\
+-	-6.27304071, -0.00047114, 0.00028865, 7.27256957, 0.99856073, 0.99924021, 0.49321446,\
+-	-6.27304088, -0.00047106, 0.00028861, 7.27256982, 0.99856095, 0.99924032, 0.49321442,\
+-	-6.27304105, -0.00047099, 0.00028857, 7.27257006, 0.99856117, 0.99924044, 0.49321442,\
+-	-6.27304122, -0.00047092, 0.00028852, 7.27257030, 0.99856139, 0.99924056, 0.49321451,\
+-	-6.27304139, -0.00047085, 0.00028848, 7.27257054, 0.99856161, 0.99924067, 0.49321455,\
+-	-6.27304157, -0.00047078, 0.00028843, 7.27257079, 0.99856183, 0.99924079, 0.49321455,\
+-	-6.27304174, -0.00047071, 0.00028839, 7.27257103, 0.99856205, 0.99924090, 0.49321459,\
+-	-6.27304191, -0.00047064, 0.00028835, 7.27257127, 0.99856227, 0.99924102, 0.49321464,\
+-	-6.27304208, -0.00047056, 0.00028830, 7.27257152, 0.99856249, 0.99924113, 0.49321460,\
+-	-6.27304225, -0.00047049, 0.00028826, 7.27257176, 0.99856270, 0.99924125, 0.49321463,\
+-	-6.27304242, -0.00047042, 0.00028822, 7.27257200, 0.99856292, 0.99924136, 0.49321476,\
+-	-6.27304259, -0.00047035, 0.00028817, 7.27257224, 0.99856314, 0.99924148, 0.49321475,\
+-	-6.27304276, -0.00047028, 0.00028813, 7.27257249, 0.99856336, 0.99924159, 0.49321471,\
+-	-6.27304294, -0.00047021, 0.00028808, 7.27257273, 0.99856358, 0.99924171, 0.49321475,\
+-	-6.27304311, -0.00047013, 0.00028804, 7.27257297, 0.99856380, 0.99924183, 0.49321476,\
+-	-6.27304328, -0.00047006, 0.00028800, 7.27257321, 0.99856401, 0.99924194, 0.49321484,\
+-	-6.27304345, -0.00046999, 0.00028795, 7.27257346, 0.99856423, 0.99924206, 0.49321477,\
+-	-6.27304362, -0.00046992, 0.00028791, 7.27257370, 0.99856445, 0.99924217, 0.49321483,\
+-	-6.27304379, -0.00046985, 0.00028787, 7.27257394, 0.99856467, 0.99924229, 0.49321495,\
+-	-6.27304396, -0.00046978, 0.00028782, 7.27257418, 0.99856489, 0.99924240, 0.49321491,\
+-	-6.27304413, -0.00046971, 0.00028778, 7.27257442, 0.99856510, 0.99924252, 0.49321493,\
+-	-6.27304430, -0.00046964, 0.00028773, 7.27257467, 0.99856532, 0.99924263, 0.49321498,\
+-	-6.27304447, -0.00046956, 0.00028769, 7.27257491, 0.99856554, 0.99924275, 0.49321496,\
+-	-6.27304464, -0.00046949, 0.00028765, 7.27257515, 0.99856576, 0.99924286, 0.49321502,\
+-	-6.27304481, -0.00046942, 0.00028760, 7.27257539, 0.99856597, 0.99924298, 0.49321503,\
+-	-6.27304498, -0.00046935, 0.00028756, 7.27257563, 0.99856619, 0.99924309, 0.49321507,\
+-	-6.27304515, -0.00046928, 0.00028752, 7.27257587, 0.99856641, 0.99924320, 0.49321515,\
+-	-6.27304532, -0.00046921, 0.00028747, 7.27257611, 0.99856663, 0.99924332, 0.49321508,\
+-	-6.27304549, -0.00046914, 0.00028743, 7.27257636, 0.99856684, 0.99924343, 0.49321514,\
+-	-6.27304566, -0.00046907, 0.00028738, 7.27257660, 0.99856706, 0.99924355, 0.49321526,\
+-	-6.27304583, -0.00046900, 0.00028734, 7.27257684, 0.99856728, 0.99924366, 0.49321521,\
+-	-6.27304600, -0.00046892, 0.00028730, 7.27257708, 0.99856750, 0.99924378, 0.49321521,\
+-	-6.27304617, -0.00046885, 0.00028725, 7.27257732, 0.99856771, 0.99924389, 0.49321523,\
+-	-6.27304634, -0.00046878, 0.00028721, 7.27257756, 0.99856793, 0.99924401, 0.49321526,\
+-	-6.27304651, -0.00046871, 0.00028717, 7.27257780, 0.99856815, 0.99924412, 0.49321530,\
+-	-6.27304668, -0.00046864, 0.00028712, 7.27257804, 0.99856836, 0.99924424, 0.49321535,\
+-	-6.27304685, -0.00046857, 0.00028708, 7.27257828, 0.99856858, 0.99924435, 0.49321541,\
+-	-6.27304702, -0.00046850, 0.00028704, 7.27257852, 0.99856880, 0.99924446, 0.49321529,\
+-	-6.27304719, -0.00046843, 0.00028699, 7.27257876, 0.99856901, 0.99924458, 0.49321541,\
+-	-6.27304736, -0.00046836, 0.00028695, 7.27257901, 0.99856923, 0.99924469, 0.49321535,\
+-	-6.27304753, -0.00046829, 0.00028691, 7.27257925, 0.99856945, 0.99924481, 0.49321543,\
+-	-6.27304770, -0.00046821, 0.00028686, 7.27257949, 0.99856966, 0.99924492, 0.49321548,\
+-	-6.27304787, -0.00046814, 0.00028682, 7.27257973, 0.99856988, 0.99924504, 0.49321551,\
+-	-6.27304804, -0.00046807, 0.00028678, 7.27257997, 0.99857010, 0.99924515, 0.49321545,\
+-	-6.27304821, -0.00046800, 0.00028673, 7.27258021, 0.99857031, 0.99924526, 0.49321554,\
+-	-6.27304838, -0.00046793, 0.00028669, 7.27258045, 0.99857053, 0.99924538, 0.49321557,\
+-	-6.27304855, -0.00046786, 0.00028665, 7.27258069, 0.99857074, 0.99924549, 0.49321561,\
+-	-6.27304872, -0.00046779, 0.00028660, 7.27258093, 0.99857096, 0.99924561, 0.49321567,\
+-	-6.27304889, -0.00046772, 0.00028656, 7.27258117, 0.99857118, 0.99924572, 0.49321567,\
+-	-6.27304906, -0.00046765, 0.00028652, 7.27258141, 0.99857139, 0.99924583, 0.49321571,\
+-	-6.27304922, -0.00046758, 0.00028647, 7.27258165, 0.99857161, 0.99924595, 0.49321566,\
+-	-6.27304939, -0.00046751, 0.00028643, 7.27258189, 0.99857182, 0.99924606, 0.49321576,\
+-	-6.27304956, -0.00046744, 0.00028639, 7.27258213, 0.99857204, 0.99924618, 0.49321567,\
+-	-6.27304973, -0.00046737, 0.00028634, 7.27258236, 0.99857226, 0.99924629, 0.49321585,\
+-	-6.27304990, -0.00046730, 0.00028630, 7.27258260, 0.99857247, 0.99924640, 0.49321576,\
+-	-6.27305007, -0.00046723, 0.00028626, 7.27258284, 0.99857269, 0.99924652, 0.49321581,\
+-	-6.27305024, -0.00046715, 0.00028621, 7.27258308, 0.99857290, 0.99924663, 0.49321580,\
+-	-6.27305041, -0.00046708, 0.00028617, 7.27258332, 0.99857312, 0.99924675, 0.49321590,\
+-	-6.27305057, -0.00046701, 0.00028613, 7.27258356, 0.99857333, 0.99924686, 0.49321582,\
+-	-6.27305074, -0.00046694, 0.00028608, 7.27258380, 0.99857355, 0.99924697, 0.49321587,\
+-	-6.27305091, -0.00046687, 0.00028604, 7.27258404, 0.99857376, 0.99924709, 0.49321595,\
+-	-6.27305108, -0.00046680, 0.00028600, 7.27258428, 0.99857398, 0.99924720, 0.49321595,\
+-	-6.27305125, -0.00046673, 0.00028595, 7.27258452, 0.99857419, 0.99924731, 0.49321600,\
+-	-6.27305142, -0.00046666, 0.00028591, 7.27258476, 0.99857441, 0.99924743, 0.49321598,\
+-	-6.27305159, -0.00046659, 0.00028587, 7.27258499, 0.99857462, 0.99924754, 0.49321613,\
+-	-6.27305175, -0.00046652, 0.00028582, 7.27258523, 0.99857484, 0.99924765, 0.49321611,\
+-	-6.27305192, -0.00046645, 0.00028578, 7.27258547, 0.99857505, 0.99924777, 0.49321600,\
+-	-6.27305209, -0.00046638, 0.00028574, 7.27258571, 0.99857527, 0.99924788, 0.49321621,\
+-	-6.27305226, -0.00046631, 0.00028570, 7.27258595, 0.99857548, 0.99924799, 0.49321615,\
+-	-6.27305243, -0.00046624, 0.00028565, 7.27258619, 0.99857570, 0.99924811, 0.49321620,\
+-	-6.27305259, -0.00046617, 0.00028561, 7.27258642, 0.99857591, 0.99924822, 0.49321625,\
+-	-6.27305276, -0.00046610, 0.00028557, 7.27258666, 0.99857613, 0.99924833, 0.49321621,\
+-	-6.27305293, -0.00046603, 0.00028552, 7.27258690, 0.99857634, 0.99924845, 0.49321630,\
+-	-6.27305310, -0.00046596, 0.00028548, 7.27258714, 0.99857656, 0.99924856, 0.49321623,\
+-	-6.27305327, -0.00046589, 0.00028544, 7.27258738, 0.99857677, 0.99924867, 0.49321633,\
+-	-6.27305343, -0.00046582, 0.00028539, 7.27258761, 0.99857698, 0.99924879, 0.49321637,\
+-	-6.27305360, -0.00046575, 0.00028535, 7.27258785, 0.99857720, 0.99924890, 0.49321640,\
+-	-6.27305377, -0.00046568, 0.00028531, 7.27258809, 0.99857741, 0.99924901, 0.49321641,\
+-	-6.27305394, -0.00046561, 0.00028527, 7.27258833, 0.99857763, 0.99924913, 0.49321644,\
+-	-6.27305410, -0.00046554, 0.00028522, 7.27258857, 0.99857784, 0.99924924, 0.49321640,\
+-	-6.27305427, -0.00046547, 0.00028518, 7.27258880, 0.99857805, 0.99924935, 0.49321644,\
+-	-6.27305444, -0.00046540, 0.00028514, 7.27258904, 0.99857827, 0.99924946, 0.49321647,\
+-	-6.27305461, -0.00046533, 0.00028509, 7.27258928, 0.99857848, 0.99924958, 0.49321655,\
+-	-6.27305477, -0.00046526, 0.00028505, 7.27258952, 0.99857870, 0.99924969, 0.49321652,\
+-	-6.27305494, -0.00046519, 0.00028501, 7.27258975, 0.99857891, 0.99924980, 0.49321651,\
+-	-6.27305511, -0.00046512, 0.00028497, 7.27258999, 0.99857912, 0.99924992, 0.49321656,\
+-	-6.27305528, -0.00046505, 0.00028492, 7.27259023, 0.99857934, 0.99925003, 0.49321656,\
+-	-6.27305544, -0.00046498, 0.00028488, 7.27259046, 0.99857955, 0.99925014, 0.49321665,\
+-	-6.27305561, -0.00046491, 0.00028484, 7.27259070, 0.99857976, 0.99925025, 0.49321668,\
+-	-6.27305578, -0.00046484, 0.00028479, 7.27259094, 0.99857998, 0.99925037, 0.49321665,\
+-	-6.27305594, -0.00046477, 0.00028475, 7.27259117, 0.99858019, 0.99925048, 0.49321672,\
+-	-6.27305611, -0.00046470, 0.00028471, 7.27259141, 0.99858040, 0.99925059, 0.49321675,\
+-	-6.27305628, -0.00046463, 0.00028467, 7.27259165, 0.99858062, 0.99925070, 0.49321677,\
+-	-6.27305645, -0.00046456, 0.00028462, 7.27259188, 0.99858083, 0.99925082, 0.49321675,\
+-	-6.27305661, -0.00046449, 0.00028458, 7.27259212, 0.99858104, 0.99925093, 0.49321677,\
+-	-6.27305678, -0.00046442, 0.00028454, 7.27259236, 0.99858126, 0.99925104, 0.49321687,\
+-	-6.27305695, -0.00046435, 0.00028449, 7.27259259, 0.99858147, 0.99925115, 0.49321692,\
+-	-6.27305711, -0.00046428, 0.00028445, 7.27259283, 0.99858168, 0.99925127, 0.49321690,\
+-	-6.27305728, -0.00046421, 0.00028441, 7.27259307, 0.99858189, 0.99925138, 0.49321690,\
+-	-6.27305745, -0.00046414, 0.00028437, 7.27259330, 0.99858211, 0.99925149, 0.49321703,\
+-	-6.27305761, -0.00046407, 0.00028432, 7.27259354, 0.99858232, 0.99925160, 0.49321695,\
+-	-6.27305778, -0.00046400, 0.00028428, 7.27259377, 0.99858253, 0.99925171, 0.49321702,\
+-	-6.27305795, -0.00046393, 0.00028424, 7.27259401, 0.99858275, 0.99925183, 0.49321702,\
+-	-6.27305811, -0.00046386, 0.00028420, 7.27259425, 0.99858296, 0.99925194, 0.49321707,\
+-	-6.27305828, -0.00046380, 0.00028415, 7.27259448, 0.99858317, 0.99925205, 0.49321711,\
+-	-6.27305844, -0.00046373, 0.00028411, 7.27259472, 0.99858338, 0.99925216, 0.49321702,\
+-	-6.27305861, -0.00046366, 0.00028407, 7.27259495, 0.99858359, 0.99925227, 0.49321714,\
+-	-6.27305878, -0.00046359, 0.00028403, 7.27259519, 0.99858381, 0.99925239, 0.49321714,\
+-	-6.27305894, -0.00046352, 0.00028398, 7.27259543, 0.99858402, 0.99925250, 0.49321712,\
+-	-6.27305911, -0.00046345, 0.00028394, 7.27259566, 0.99858423, 0.99925261, 0.49321724,\
+-	-6.27305927, -0.00046338, 0.00028390, 7.27259590, 0.99858444, 0.99925272, 0.49321723,\
+-	-6.27305944, -0.00046331, 0.00028386, 7.27259613, 0.99858465, 0.99925283, 0.49321718,\
+-	-6.27305961, -0.00046324, 0.00028381, 7.27259637, 0.99858487, 0.99925295, 0.49321725,\
+-	-6.27305977, -0.00046317, 0.00028377, 7.27259660, 0.99858508, 0.99925306, 0.49321729,\
+-	-6.27305994, -0.00046310, 0.00028373, 7.27259684, 0.99858529, 0.99925317, 0.49321728,\
+-	-6.27306010, -0.00046303, 0.00028369, 7.27259707, 0.99858550, 0.99925328, 0.49321728,\
+-	-6.27306027, -0.00046296, 0.00028364, 7.27259731, 0.99858571, 0.99925339, 0.49321738,\
+-	-6.27306044, -0.00046289, 0.00028360, 7.27259754, 0.99858593, 0.99925351, 0.49321730,\
+-	-6.27306060, -0.00046282, 0.00028356, 7.27259778, 0.99858614, 0.99925362, 0.49321736,\
+-	-6.27306077, -0.00046276, 0.00028352, 7.27259801, 0.99858635, 0.99925373, 0.49321743,\
+-	-6.27306093, -0.00046269, 0.00028347, 7.27259825, 0.99858656, 0.99925384, 0.49321740,\
+-	-6.27306110, -0.00046262, 0.00028343, 7.27259848, 0.99858677, 0.99925395, 0.49321757,\
+-	-6.27306126, -0.00046255, 0.00028339, 7.27259872, 0.99858698, 0.99925406, 0.49321754,\
+-	-6.27306143, -0.00046248, 0.00028335, 7.27259895, 0.99858719, 0.99925417, 0.49321760,\
+-	-6.27306159, -0.00046241, 0.00028330, 7.27259918, 0.99858740, 0.99925429, 0.49321757,\
+-	-6.27306176, -0.00046234, 0.00028326, 7.27259942, 0.99858762, 0.99925440, 0.49321761,\
+-	-6.27306192, -0.00046227, 0.00028322, 7.27259965, 0.99858783, 0.99925451, 0.49321757,\
+-	-6.27306209, -0.00046220, 0.00028318, 7.27259989, 0.99858804, 0.99925462, 0.49321764,\
+-	-6.27306225, -0.00046213, 0.00028314, 7.27260012, 0.99858825, 0.99925473, 0.49321769,\
+-	-6.27306242, -0.00046206, 0.00028309, 7.27260036, 0.99858846, 0.99925484, 0.49321767,\
+-	-6.27306259, -0.00046200, 0.00028305, 7.27260059, 0.99858867, 0.99925495, 0.49321773,\
+-	-6.27306275, -0.00046193, 0.00028301, 7.27260082, 0.99858888, 0.99925506, 0.49321772,\
+-	-6.27306292, -0.00046186, 0.00028297, 7.27260106, 0.99858909, 0.99925518, 0.49321771,\
+-	-6.27306308, -0.00046179, 0.00028292, 7.27260129, 0.99858930, 0.99925529, 0.49321779,\
+-	-6.27306324, -0.00046172, 0.00028288, 7.27260152, 0.99858951, 0.99925540, 0.49321779,\
+-	-6.27306341, -0.00046165, 0.00028284, 7.27260176, 0.99858972, 0.99925551, 0.49321780,\
+-	-6.27306357, -0.00046158, 0.00028280, 7.27260199, 0.99858993, 0.99925562, 0.49321791,\
+-	-6.27306374, -0.00046151, 0.00028275, 7.27260223, 0.99859014, 0.99925573, 0.49321791,\
+-	-6.27306390, -0.00046144, 0.00028271, 7.27260246, 0.99859035, 0.99925584, 0.49321788,\
+-	-6.27306407, -0.00046138, 0.00028267, 7.27260269, 0.99859056, 0.99925595, 0.49321791,\
+-	-6.27306423, -0.00046131, 0.00028263, 7.27260293, 0.99859077, 0.99925606, 0.49321799,\
+-	-6.27306440, -0.00046124, 0.00028259, 7.27260316, 0.99859098, 0.99925618, 0.49321795,\
+-	-6.27306456, -0.00046117, 0.00028254, 7.27260339, 0.99859119, 0.99925629, 0.49321797,\
+-	-6.27306473, -0.00046110, 0.00028250, 7.27260363, 0.99859140, 0.99925640, 0.49321800,\
+-	-6.27306489, -0.00046103, 0.00028246, 7.27260386, 0.99859161, 0.99925651, 0.49321804,\
+-	-6.27306505, -0.00046096, 0.00028242, 7.27260409, 0.99859182, 0.99925662, 0.49321800,\
+-	-6.27306522, -0.00046090, 0.00028238, 7.27260432, 0.99859203, 0.99925673, 0.49321804,\
+-	-6.27306538, -0.00046083, 0.00028233, 7.27260456, 0.99859224, 0.99925684, 0.49321806,\
+-	-6.27306555, -0.00046076, 0.00028229, 7.27260479, 0.99859245, 0.99925695, 0.49321814,\
+-	-6.27306571, -0.00046069, 0.00028225, 7.27260502, 0.99859266, 0.99925706, 0.49321818,\
+-	-6.27306588, -0.00046062, 0.00028221, 7.27260525, 0.99859287, 0.99925717, 0.49321811,\
+-	-6.27306604, -0.00046055, 0.00028217, 7.27260549, 0.99859308, 0.99925728, 0.49321821,\
+-	-6.27306620, -0.00046048, 0.00028212, 7.27260572, 0.99859329, 0.99925739, 0.49321828,\
+-	-6.27306637, -0.00046042, 0.00028208, 7.27260595, 0.99859350, 0.99925750, 0.49321829,\
+-	-6.27306653, -0.00046035, 0.00028204, 7.27260618, 0.99859371, 0.99925761, 0.49321826,\
+-	-6.27306670, -0.00046028, 0.00028200, 7.27260642, 0.99859392, 0.99925772, 0.49321833,\
+-	-6.27306686, -0.00046021, 0.00028196, 7.27260665, 0.99859413, 0.99925783, 0.49321833,\
+-	-6.27306702, -0.00046014, 0.00028191, 7.27260688, 0.99859434, 0.99925794, 0.49321830,\
+-	-6.27306719, -0.00046007, 0.00028187, 7.27260711, 0.99859455, 0.99925805, 0.49321842,\
+-	-6.27306735, -0.00046000, 0.00028183, 7.27260735, 0.99859475, 0.99925817, 0.49321838,\
+-	-6.27306751, -0.00045994, 0.00028179, 7.27260758, 0.99859496, 0.99925828, 0.49321849,\
+-	-6.27306768, -0.00045987, 0.00028175, 7.27260781, 0.99859517, 0.99925839, 0.49321848,\
+-	-6.27306784, -0.00045980, 0.00028170, 7.27260804, 0.99859538, 0.99925850, 0.49321848,\
+-	-6.27306800, -0.00045973, 0.00028166, 7.27260827, 0.99859559, 0.99925861, 0.49321852,\
+-	-6.27306817, -0.00045966, 0.00028162, 7.27260850, 0.99859580, 0.99925872, 0.49321855,\
+-	-6.27306833, -0.00045959, 0.00028158, 7.27260874, 0.99859601, 0.99925883, 0.49321849,\
+-	-6.27306849, -0.00045953, 0.00028154, 7.27260897, 0.99859622, 0.99925894, 0.49321861,\
+-	-6.27306866, -0.00045946, 0.00028150, 7.27260920, 0.99859642, 0.99925905, 0.49321858,\
+-	-6.27306882, -0.00045939, 0.00028145, 7.27260943, 0.99859663, 0.99925916, 0.49321869,\
+-	-6.27306898, -0.00045932, 0.00028141, 7.27260966, 0.99859684, 0.99925927, 0.49321873,\
+-	-6.27306915, -0.00045925, 0.00028137, 7.27260989, 0.99859705, 0.99925938, 0.49321868,\
+-	-6.27306931, -0.00045919, 0.00028133, 7.27261012, 0.99859726, 0.99925949, 0.49321872,\
+-	-6.27306947, -0.00045912, 0.00028129, 7.27261035, 0.99859746, 0.99925960, 0.49321879,\
+-	-6.27306964, -0.00045905, 0.00028124, 7.27261059, 0.99859767, 0.99925971, 0.49321873,\
+-	-6.27306980, -0.00045898, 0.00028120, 7.27261082, 0.99859788, 0.99925982, 0.49321881,\
+-	-6.27306996, -0.00045891, 0.00028116, 7.27261105, 0.99859809, 0.99925993, 0.49321869,\
+-	-6.27307012, -0.00045885, 0.00028112, 7.27261128, 0.99859830, 0.99926003, 0.49321889,\
+-	-6.27307029, -0.00045878, 0.00028108, 7.27261151, 0.99859850, 0.99926014, 0.49321883,\
+-	-6.27307045, -0.00045871, 0.00028104, 7.27261174, 0.99859871, 0.99926025, 0.49321889,\
+-	-6.27307061, -0.00045864, 0.00028099, 7.27261197, 0.99859892, 0.99926036, 0.49321886,\
+-	-6.27307078, -0.00045857, 0.00028095, 7.27261220, 0.99859913, 0.99926047, 0.49321894,\
+-	-6.27307094, -0.00045851, 0.00028091, 7.27261243, 0.99859934, 0.99926058, 0.49321894,\
+-	-6.27307110, -0.00045844, 0.00028087, 7.27261266, 0.99859954, 0.99926069, 0.49321891,\
+-	-6.27307126, -0.00045837, 0.00028083, 7.27261289, 0.99859975, 0.99926080, 0.49321907,\
+-	-6.27307142, -0.00045830, 0.00028079, 7.27261312, 0.99859996, 0.99926091, 0.49321892,\
+-	-6.27307159, -0.00045823, 0.00028074, 7.27261335, 0.99860016, 0.99926102, 0.49321904,\
+-	-6.27307175, -0.00045817, 0.00028070, 7.27261358, 0.99860037, 0.99926113, 0.49321907,\
+-	-6.27307191, -0.00045810, 0.00028066, 7.27261381, 0.99860058, 0.99926124, 0.49321903,\
+-	-6.27307207, -0.00045803, 0.00028062, 7.27261404, 0.99860079, 0.99926135, 0.49321912,\
+-	-6.27307224, -0.00045796, 0.00028058, 7.27261427, 0.99860099, 0.99926146, 0.49321912,\
+-	-6.27307240, -0.00045790, 0.00028054, 7.27261450, 0.99860120, 0.99926157, 0.49321912,\
+-	-6.27307256, -0.00045783, 0.00028050, 7.27261473, 0.99860141, 0.99926168, 0.49321924,\
+-	-6.27307272, -0.00045776, 0.00028045, 7.27261496, 0.99860161, 0.99926179, 0.49321924,\
+-	-6.27307288, -0.00045769, 0.00028041, 7.27261519, 0.99860182, 0.99926190, 0.49321921,\
+-	-6.27307305, -0.00045762, 0.00028037, 7.27261542, 0.99860203, 0.99926200, 0.49321927,\
+-	-6.27307321, -0.00045756, 0.00028033, 7.27261565, 0.99860223, 0.99926211, 0.49321925,\
+-	-6.27307337, -0.00045749, 0.00028029, 7.27261588, 0.99860244, 0.99926222, 0.49321926,\
+-	-6.27307353, -0.00045742, 0.00028025, 7.27261611, 0.99860265, 0.99926233, 0.49321932,\
+-	-6.27307369, -0.00045735, 0.00028021, 7.27261634, 0.99860285, 0.99926244, 0.49321935,\
+-	-6.27307386, -0.00045729, 0.00028016, 7.27261657, 0.99860306, 0.99926255, 0.49321931,\
+-	-6.27307402, -0.00045722, 0.00028012, 7.27261680, 0.99860327, 0.99926266, 0.49321940,\
+-	-6.27307418, -0.00045715, 0.00028008, 7.27261703, 0.99860347, 0.99926277, 0.49321940,\
+-	-6.27307434, -0.00045708, 0.00028004, 7.27261726, 0.99860368, 0.99926288, 0.49321938,\
+-	-6.27307450, -0.00045702, 0.00028000, 7.27261749, 0.99860389, 0.99926299, 0.49321955,\
+-	-6.27307466, -0.00045695, 0.00027996, 7.27261771, 0.99860409, 0.99926309, 0.49321946,\
+-	-6.27307482, -0.00045688, 0.00027992, 7.27261794, 0.99860430, 0.99926320, 0.49321952,\
+-	-6.27307499, -0.00045681, 0.00027987, 7.27261817, 0.99860450, 0.99926331, 0.49321956,\
+-	-6.27307515, -0.00045675, 0.00027983, 7.27261840, 0.99860471, 0.99926342, 0.49321950,\
+-	-6.27307531, -0.00045668, 0.00027979, 7.27261863, 0.99860492, 0.99926353, 0.49321959,\
+-	-6.27307547, -0.00045661, 0.00027975, 7.27261886, 0.99860512, 0.99926364, 0.49321954,\
+-	-6.27307563, -0.00045654, 0.00027971, 7.27261909, 0.99860533, 0.99926375, 0.49321964,\
+-	-6.27307579, -0.00045648, 0.00027967, 7.27261931, 0.99860553, 0.99926385, 0.49321960,\
+-	-6.27307595, -0.00045641, 0.00027963, 7.27261954, 0.99860574, 0.99926396, 0.49321972,\
+-	-6.27307611, -0.00045634, 0.00027959, 7.27261977, 0.99860595, 0.99926407, 0.49321973,\
+-	-6.27307628, -0.00045628, 0.00027954, 7.27262000, 0.99860615, 0.99926418, 0.49321968,\
+-	-6.27307644, -0.00045621, 0.00027950, 7.27262023, 0.99860636, 0.99926429, 0.49321967,\
+-	-6.27307660, -0.00045614, 0.00027946, 7.27262046, 0.99860656, 0.99926440, 0.49321972,\
+-	-6.27307676, -0.00045607, 0.00027942, 7.27262068, 0.99860677, 0.99926451, 0.49321981,\
+-	-6.27307692, -0.00045601, 0.00027938, 7.27262091, 0.99860697, 0.99926461, 0.49321979,\
+-	-6.27307708, -0.00045594, 0.00027934, 7.27262114, 0.99860718, 0.99926472, 0.49321986,\
+-	-6.27307724, -0.00045587, 0.00027930, 7.27262137, 0.99860738, 0.99926483, 0.49321988,\
+-	-6.27307740, -0.00045581, 0.00027926, 7.27262160, 0.99860759, 0.99926494, 0.49321990,\
+-	-6.27307756, -0.00045574, 0.00027921, 7.27262182, 0.99860779, 0.99926505, 0.49321998,\
+-	-6.27307772, -0.00045567, 0.00027917, 7.27262205, 0.99860800, 0.99926516, 0.49322003,\
+-	-6.27307788, -0.00045560, 0.00027913, 7.27262228, 0.99860820, 0.99926526, 0.49321994,\
+-	-6.27307804, -0.00045554, 0.00027909, 7.27262251, 0.99860841, 0.99926537, 0.49322002,\
+-	-6.27307820, -0.00045547, 0.00027905, 7.27262273, 0.99860861, 0.99926548, 0.49321999,\
+-	-6.27307836, -0.00045540, 0.00027901, 7.27262296, 0.99860882, 0.99926559, 0.49322005,\
+-	-6.27307852, -0.00045534, 0.00027897, 7.27262319, 0.99860902, 0.99926570, 0.49322007,\
+-	-6.27307868, -0.00045527, 0.00027893, 7.27262342, 0.99860923, 0.99926580, 0.49322002,\
+-	-6.27307884, -0.00045520, 0.00027889, 7.27262364, 0.99860943, 0.99926591, 0.49322013,\
+-	-6.27307900, -0.00045514, 0.00027884, 7.27262387, 0.99860964, 0.99926602, 0.49322009,\
+-	-6.27307916, -0.00045507, 0.00027880, 7.27262410, 0.99860984, 0.99926613, 0.49322010,\
+-	-6.27307932, -0.00045500, 0.00027876, 7.27262432, 0.99861004, 0.99926624, 0.49322020,\
+-	-6.27307949, -0.00045493, 0.00027872, 7.27262455, 0.99861025, 0.99926634, 0.49322020,\
+-	-6.27307964, -0.00045487, 0.00027868, 7.27262478, 0.99861045, 0.99926645, 0.49322021,\
+-	-6.27307980, -0.00045480, 0.00027864, 7.27262500, 0.99861066, 0.99926656, 0.49322031,\
+-	-6.27307996, -0.00045473, 0.00027860, 7.27262523, 0.99861086, 0.99926667, 0.49322031,\
+-	-6.27308012, -0.00045467, 0.00027856, 7.27262546, 0.99861107, 0.99926677, 0.49322033,\
+-	-6.27308028, -0.00045460, 0.00027852, 7.27262568, 0.99861127, 0.99926688, 0.49322029,\
+-	-6.27308044, -0.00045453, 0.00027848, 7.27262591, 0.99861147, 0.99926699, 0.49322034,\
+-	-6.27308060, -0.00045447, 0.00027844, 7.27262614, 0.99861168, 0.99926710, 0.49322033,\
+-	-6.27308076, -0.00045440, 0.00027839, 7.27262636, 0.99861188, 0.99926721, 0.49322036,\
+-	-6.27308092, -0.00045433, 0.00027835, 7.27262659, 0.99861209, 0.99926731, 0.49322047,\
+-	-6.27308108, -0.00045427, 0.00027831, 7.27262682, 0.99861229, 0.99926742, 0.49322045,\
+-	-6.27308124, -0.00045420, 0.00027827, 7.27262704, 0.99861249, 0.99926753, 0.49322049,\
+-	-6.27308140, -0.00045413, 0.00027823, 7.27262727, 0.99861270, 0.99926764, 0.49322055,\
+-	-6.27308156, -0.00045407, 0.00027819, 7.27262749, 0.99861290, 0.99926774, 0.49322054,\
+-	-6.27308172, -0.00045400, 0.00027815, 7.27262772, 0.99861310, 0.99926785, 0.49322056,\
+-	-6.27308188, -0.00045393, 0.00027811, 7.27262795, 0.99861331, 0.99926796, 0.49322059,\
+-	-6.27308204, -0.00045387, 0.00027807, 7.27262817, 0.99861351, 0.99926807, 0.49322050,\
+-	-6.27308220, -0.00045380, 0.00027803, 7.27262840, 0.99861371, 0.99926817, 0.49322063,\
+-	-6.27308236, -0.00045373, 0.00027799, 7.27262862, 0.99861392, 0.99926828, 0.49322066,\
+-	-6.27308252, -0.00045367, 0.00027795, 7.27262885, 0.99861412, 0.99926839, 0.49322063,\
+-	-6.27308268, -0.00045360, 0.00027790, 7.27262907, 0.99861432, 0.99926849, 0.49322070,\
+-	-6.27308284, -0.00045353, 0.00027786, 7.27262930, 0.99861453, 0.99926860, 0.49322066,\
+-	-6.27308299, -0.00045347, 0.00027782, 7.27262953, 0.99861473, 0.99926871, 0.49322073,\
+-	-6.27308315, -0.00045340, 0.00027778, 7.27262975, 0.99861493, 0.99926882, 0.49322074,\
+-	-6.27308331, -0.00045334, 0.00027774, 7.27262998, 0.99861514, 0.99926892, 0.49322073,\
+-	-6.27308347, -0.00045327, 0.00027770, 7.27263020, 0.99861534, 0.99926903, 0.49322080,\
+-	-6.27308363, -0.00045320, 0.00027766, 7.27263043, 0.99861554, 0.99926914, 0.49322087,\
+-	-6.27308379, -0.00045314, 0.00027762, 7.27263065, 0.99861574, 0.99926924, 0.49322079,\
+-	-6.27308395, -0.00045307, 0.00027758, 7.27263088, 0.99861595, 0.99926935, 0.49322088,\
+-	-6.27308411, -0.00045300, 0.00027754, 7.27263110, 0.99861615, 0.99926946, 0.49322089,\
+-	-6.27308426, -0.00045294, 0.00027750, 7.27263133, 0.99861635, 0.99926956, 0.49322091,\
+-	-6.27308442, -0.00045287, 0.00027746, 7.27263155, 0.99861655, 0.99926967, 0.49322099,\
+-	-6.27308458, -0.00045281, 0.00027742, 7.27263178, 0.99861676, 0.99926978, 0.49322093,\
+-	-6.27308474, -0.00045274, 0.00027738, 7.27263200, 0.99861696, 0.99926989, 0.49322094,\
+-	-6.27308490, -0.00045267, 0.00027734, 7.27263223, 0.99861716, 0.99926999, 0.49322104,\
+-	-6.27308506, -0.00045261, 0.00027729, 7.27263245, 0.99861736, 0.99927010, 0.49322101,\
+-	-6.27308522, -0.00045254, 0.00027725, 7.27263268, 0.99861757, 0.99927021, 0.49322100,\
+-	-6.27308537, -0.00045247, 0.00027721, 7.27263290, 0.99861777, 0.99927031, 0.49322109,\
+-	-6.27308553, -0.00045241, 0.00027717, 7.27263312, 0.99861797, 0.99927042, 0.49322112,\
+-	-6.27308569, -0.00045234, 0.00027713, 7.27263335, 0.99861817, 0.99927053, 0.49322118,\
+-	-6.27308585, -0.00045228, 0.00027709, 7.27263357, 0.99861837, 0.99927063, 0.49322108,\
+-	-6.27308601, -0.00045221, 0.00027705, 7.27263380, 0.99861858, 0.99927074, 0.49322119,\
+-	-6.27308616, -0.00045214, 0.00027701, 7.27263402, 0.99861878, 0.99927085, 0.49322124,\
+-	-6.27308632, -0.00045208, 0.00027697, 7.27263424, 0.99861898, 0.99927095, 0.49322120,\
+-	-6.27308648, -0.00045201, 0.00027693, 7.27263447, 0.99861918, 0.99927106, 0.49322125,\
+-	-6.27308664, -0.00045195, 0.00027689, 7.27263469, 0.99861938, 0.99927116, 0.49322131,\
+-	-6.27308680, -0.00045188, 0.00027685, 7.27263492, 0.99861959, 0.99927127, 0.49322139,\
+-	-6.27308695, -0.00045181, 0.00027681, 7.27263514, 0.99861979, 0.99927138, 0.49322128,\
+-	-6.27308711, -0.00045175, 0.00027677, 7.27263536, 0.99861999, 0.99927148, 0.49322133,\
+-	-6.27308727, -0.00045168, 0.00027673, 7.27263559, 0.99862019, 0.99927159, 0.49322134,\
+-	-6.27308743, -0.00045162, 0.00027669, 7.27263581, 0.99862039, 0.99927170, 0.49322141,\
+-	-6.27308759, -0.00045155, 0.00027665, 7.27263604, 0.99862059, 0.99927180, 0.49322137,\
+-	-6.27308774, -0.00045148, 0.00027661, 7.27263626, 0.99862079, 0.99927191, 0.49322148,\
+-	-6.27308790, -0.00045142, 0.00027657, 7.27263648, 0.99862099, 0.99927202, 0.49322145,\
+-	-6.27308806, -0.00045135, 0.00027653, 7.27263671, 0.99862120, 0.99927212, 0.49322138,\
+-	-6.27308822, -0.00045129, 0.00027649, 7.27263693, 0.99862140, 0.99927223, 0.49322155,\
+-	-6.27308837, -0.00045122, 0.00027645, 7.27263715, 0.99862160, 0.99927233, 0.49322147,\
+-	-6.27308853, -0.00045116, 0.00027641, 7.27263737, 0.99862180, 0.99927244, 0.49322164,\
+-	-6.27308869, -0.00045109, 0.00027636, 7.27263760, 0.99862200, 0.99927255, 0.49322155,\
+-	-6.27308884, -0.00045102, 0.00027632, 7.27263782, 0.99862220, 0.99927265, 0.49322156,\
+-	-6.27308900, -0.00045096, 0.00027628, 7.27263804, 0.99862240, 0.99927276, 0.49322154,\
+-	-6.27308916, -0.00045089, 0.00027624, 7.27263827, 0.99862260, 0.99927286, 0.49322167,\
+-	-6.27308932, -0.00045083, 0.00027620, 7.27263849, 0.99862280, 0.99927297, 0.49322165,\
+-	-6.27308947, -0.00045076, 0.00027616, 7.27263871, 0.99862300, 0.99927308, 0.49322177,\
+-	-6.27308963, -0.00045070, 0.00027612, 7.27263894, 0.99862320, 0.99927318, 0.49322172,\
+-	-6.27308979, -0.00045063, 0.00027608, 7.27263916, 0.99862340, 0.99927329, 0.49322177,\
+-	-6.27308994, -0.00045056, 0.00027604, 7.27263938, 0.99862360, 0.99927339, 0.49322171,\
+-	-6.27309010, -0.00045050, 0.00027600, 7.27263960, 0.99862381, 0.99927350, 0.49322172,\
+-	-6.27309026, -0.00045043, 0.00027596, 7.27263983, 0.99862401, 0.99927360, 0.49322182,\
+-	-6.27309042, -0.00045037, 0.00027592, 7.27264005, 0.99862421, 0.99927371, 0.49322183,\
+-	-6.27309057, -0.00045030, 0.00027588, 7.27264027, 0.99862441, 0.99927382, 0.49322187,\
+-	-6.27309073, -0.00045024, 0.00027584, 7.27264049, 0.99862461, 0.99927392, 0.49322184,\
+-	-6.27309089, -0.00045017, 0.00027580, 7.27264071, 0.99862481, 0.99927403, 0.49322189,\
+-	-6.27309104, -0.00045011, 0.00027576, 7.27264094, 0.99862501, 0.99927413, 0.49322190,\
+-	-6.27309120, -0.00045004, 0.00027572, 7.27264116, 0.99862521, 0.99927424, 0.49322188,\
+-	-6.27309136, -0.00044997, 0.00027568, 7.27264138, 0.99862541, 0.99927434, 0.49322197,\
+-	-6.27309151, -0.00044991, 0.00027564, 7.27264160, 0.99862561, 0.99927445, 0.49322195,\
+-	-6.27309167, -0.00044984, 0.00027560, 7.27264182, 0.99862581, 0.99927455, 0.49322198,\
+-	-6.27309183, -0.00044978, 0.00027556, 7.27264205, 0.99862601, 0.99927466, 0.49322195,\
+-	-6.27309198, -0.00044971, 0.00027552, 7.27264227, 0.99862621, 0.99927477, 0.49322211,\
+-	-6.27309214, -0.00044965, 0.00027548, 7.27264249, 0.99862641, 0.99927487, 0.49322215,\
+-	-6.27309229, -0.00044958, 0.00027544, 7.27264271, 0.99862660, 0.99927498, 0.49322209,\
+-	-6.27309245, -0.00044952, 0.00027540, 7.27264293, 0.99862680, 0.99927508, 0.49322211,\
+-	-6.27309261, -0.00044945, 0.00027536, 7.27264315, 0.99862700, 0.99927519, 0.49322213,\
+-	-6.27309276, -0.00044939, 0.00027532, 7.27264338, 0.99862720, 0.99927529, 0.49322220,\
+-	-6.27309292, -0.00044932, 0.00027528, 7.27264360, 0.99862740, 0.99927540, 0.49322206,\
+-	-6.27309307, -0.00044926, 0.00027524, 7.27264382, 0.99862760, 0.99927550, 0.49322222,\
+-	-6.27309323, -0.00044919, 0.00027520, 7.27264404, 0.99862780, 0.99927561, 0.49322230,\
+-	-6.27309339, -0.00044913, 0.00027516, 7.27264426, 0.99862800, 0.99927571, 0.49322233,\
+-	-6.27309354, -0.00044906, 0.00027512, 7.27264448, 0.99862820, 0.99927582, 0.49322226,\
+-	-6.27309370, -0.00044900, 0.00027508, 7.27264470, 0.99862840, 0.99927592, 0.49322237,\
+-	-6.27309385, -0.00044893, 0.00027504, 7.27264492, 0.99862860, 0.99927603, 0.49322238,\
+-	-6.27309401, -0.00044887, 0.00027500, 7.27264514, 0.99862880, 0.99927613, 0.49322229,\
+-	-6.27309417, -0.00044880, 0.00027496, 7.27264537, 0.99862899, 0.99927624, 0.49322245,\
+-	-6.27309432, -0.00044874, 0.00027492, 7.27264559, 0.99862919, 0.99927634, 0.49322245,\
+-	-6.27309448, -0.00044867, 0.00027488, 7.27264581, 0.99862939, 0.99927645, 0.49322246,\
+-	-6.27309463, -0.00044861, 0.00027484, 7.27264603, 0.99862959, 0.99927655, 0.49322247,\
+-	-6.27309479, -0.00044854, 0.00027480, 7.27264625, 0.99862979, 0.99927666, 0.49322254,\
+-	-6.27309494, -0.00044848, 0.00027476, 7.27264647, 0.99862999, 0.99927676, 0.49322253,\
+-	-6.27309510, -0.00044841, 0.00027472, 7.27264669, 0.99863019, 0.99927687, 0.49322258,\
+-	-6.27309526, -0.00044835, 0.00027468, 7.27264691, 0.99863039, 0.99927697, 0.49322250,\
+-	-6.27309541, -0.00044828, 0.00027464, 7.27264713, 0.99863058, 0.99927708, 0.49322253,\
+-	-6.27309557, -0.00044822, 0.00027460, 7.27264735, 0.99863078, 0.99927718, 0.49322260,\
+-	-6.27309572, -0.00044815, 0.00027456, 7.27264757, 0.99863098, 0.99927729, 0.49322265,\
+-	-6.27309588, -0.00044809, 0.00027452, 7.27264779, 0.99863118, 0.99927739, 0.49322261,\
+-	-6.27309603, -0.00044802, 0.00027448, 7.27264801, 0.99863138, 0.99927750, 0.49322265,\
+-	-6.27309619, -0.00044796, 0.00027444, 7.27264823, 0.99863158, 0.99927760, 0.49322274,\
+-	-6.27309634, -0.00044789, 0.00027440, 7.27264845, 0.99863177, 0.99927770, 0.49322271,\
+-	-6.27309650, -0.00044783, 0.00027436, 7.27264867, 0.99863197, 0.99927781, 0.49322271,\
+-	-6.27309665, -0.00044776, 0.00027432, 7.27264889, 0.99863217, 0.99927791, 0.49322277,\
+-	-6.27309681, -0.00044770, 0.00027429, 7.27264911, 0.99863237, 0.99927802, 0.49322282,\
+-	-6.27309696, -0.00044763, 0.00027425, 7.27264933, 0.99863256, 0.99927812, 0.49322277,\
+-	-6.27309712, -0.00044757, 0.00027421, 7.27264955, 0.99863276, 0.99927823, 0.49322279,\
+-	-6.27309727, -0.00044750, 0.00027417, 7.27264977, 0.99863296, 0.99927833, 0.49322290,\
+-	-6.27309743, -0.00044744, 0.00027413, 7.27264999, 0.99863316, 0.99927844, 0.49322286,\
+-	-6.27309758, -0.00044737, 0.00027409, 7.27265021, 0.99863336, 0.99927854, 0.49322289,\
+-	-6.27309774, -0.00044731, 0.00027405, 7.27265043, 0.99863355, 0.99927864, 0.49322292,\
+-	-6.27309789, -0.00044724, 0.00027401, 7.27265065, 0.99863375, 0.99927875, 0.49322303,\
+-	-6.27309805, -0.00044718, 0.00027397, 7.27265087, 0.99863395, 0.99927885, 0.49322297,\
+-	-6.27309820, -0.00044712, 0.00027393, 7.27265108, 0.99863415, 0.99927896, 0.49322299,\
+-	-6.27309835, -0.00044705, 0.00027389, 7.27265130, 0.99863434, 0.99927906, 0.49322300,\
+-	-6.27309851, -0.00044699, 0.00027385, 7.27265152, 0.99863454, 0.99927916, 0.49322302,\
+-	-6.27309866, -0.00044692, 0.00027381, 7.27265174, 0.99863474, 0.99927927, 0.49322302,\
+-	-6.27309882, -0.00044686, 0.00027377, 7.27265196, 0.99863493, 0.99927937, 0.49322309,\
+-	-6.27309897, -0.00044679, 0.00027373, 7.27265218, 0.99863513, 0.99927948, 0.49322304,\
+-	-6.27309913, -0.00044673, 0.00027369, 7.27265240, 0.99863533, 0.99927958, 0.49322317,\
+-	-6.27309928, -0.00044666, 0.00027365, 7.27265262, 0.99863553, 0.99927968, 0.49322317,\
+-	-6.27309944, -0.00044660, 0.00027361, 7.27265284, 0.99863572, 0.99927979, 0.49322320,\
+-	-6.27309959, -0.00044653, 0.00027357, 7.27265305, 0.99863592, 0.99927989, 0.49322325,\
+-	-6.27309974, -0.00044647, 0.00027353, 7.27265327, 0.99863612, 0.99928000, 0.49322322,\
+-	-6.27309990, -0.00044641, 0.00027349, 7.27265349, 0.99863631, 0.99928010, 0.49322331,\
+-	-6.27310005, -0.00044634, 0.00027345, 7.27265371, 0.99863651, 0.99928020, 0.49322327,\
+-	-6.27310021, -0.00044628, 0.00027341, 7.27265393, 0.99863671, 0.99928031, 0.49322319,\
+-	-6.27310036, -0.00044621, 0.00027338, 7.27265415, 0.99863690, 0.99928041, 0.49322336,\
+-	-6.27310051, -0.00044615, 0.00027334, 7.27265436, 0.99863710, 0.99928052, 0.49322341,\
+-	-6.27310067, -0.00044608, 0.00027330, 7.27265458, 0.99863730, 0.99928062, 0.49322335,\
+-	-6.27310082, -0.00044602, 0.00027326, 7.27265480, 0.99863749, 0.99928072, 0.49322336,\
+-	-6.27310097, -0.00044596, 0.00027322, 7.27265502, 0.99863769, 0.99928083, 0.49322343,\
+-	-6.27310113, -0.00044589, 0.00027318, 7.27265524, 0.99863789, 0.99928093, 0.49322345,\
+-	-6.27310128, -0.00044583, 0.00027314, 7.27265546, 0.99863808, 0.99928103, 0.49322341,\
+-	-6.27310144, -0.00044576, 0.00027310, 7.27265567, 0.99863828, 0.99928114, 0.49322343,\
+-	-6.27310159, -0.00044570, 0.00027306, 7.27265589, 0.99863847, 0.99928124, 0.49322353,\
+-	-6.27310174, -0.00044563, 0.00027302, 7.27265611, 0.99863867, 0.99928134, 0.49322355,\
+-	-6.27310190, -0.00044557, 0.00027298, 7.27265633, 0.99863887, 0.99928145, 0.49322359,\
+-	-6.27310205, -0.00044551, 0.00027294, 7.27265654, 0.99863906, 0.99928155, 0.49322357,\
+-	-6.27310220, -0.00044544, 0.00027290, 7.27265676, 0.99863926, 0.99928165, 0.49322365,\
+-	-6.27310236, -0.00044538, 0.00027286, 7.27265698, 0.99863945, 0.99928176, 0.49322365,\
+-	-6.27310251, -0.00044531, 0.00027282, 7.27265720, 0.99863965, 0.99928186, 0.49322366,\
+-	-6.27310266, -0.00044525, 0.00027279, 7.27265741, 0.99863984, 0.99928196, 0.49322350,\
+-	-6.27310282, -0.00044519, 0.00027275, 7.27265763, 0.99864004, 0.99928207, 0.49322363,\
+-	-6.27310297, -0.00044512, 0.00027271, 7.27265785, 0.99864024, 0.99928217, 0.49322376,\
+-	-6.27310312, -0.00044506, 0.00027267, 7.27265807, 0.99864043, 0.99928227, 0.49322376,\
+-	-6.27310328, -0.00044499, 0.00027263, 7.27265828, 0.99864063, 0.99928238, 0.49322386,\
+-	-6.27310343, -0.00044493, 0.00027259, 7.27265850, 0.99864082, 0.99928248, 0.49322387,\
+-	-6.27310358, -0.00044487, 0.00027255, 7.27265872, 0.99864102, 0.99928258, 0.49322377,\
+-	-6.27310374, -0.00044480, 0.00027251, 7.27265893, 0.99864121, 0.99928269, 0.49322371,\
+-	-6.27310389, -0.00044474, 0.00027247, 7.27265915, 0.99864141, 0.99928279, 0.49322385,\
+-	-6.27310404, -0.00044467, 0.00027243, 7.27265937, 0.99864160, 0.99928289, 0.49322391,\
+-	-6.27310419, -0.00044461, 0.00027239, 7.27265958, 0.99864180, 0.99928300, 0.49322388,\
+-	-6.27310435, -0.00044455, 0.00027235, 7.27265980, 0.99864199, 0.99928310, 0.49322387,\
+-	-6.27310450, -0.00044448, 0.00027231, 7.27266002, 0.99864219, 0.99928320, 0.49322394,\
+-	-6.27310465, -0.00044442, 0.00027228, 7.27266023, 0.99864238, 0.99928330, 0.49322403,\
+-	-6.27310481, -0.00044436, 0.00027224, 7.27266045, 0.99864258, 0.99928341, 0.49322393,\
+-	-6.27310496, -0.00044429, 0.00027220, 7.27266067, 0.99864277, 0.99928351, 0.49322396,\
+-	-6.27310511, -0.00044423, 0.00027216, 7.27266088, 0.99864297, 0.99928361, 0.49322397,\
+-	-6.27310526, -0.00044416, 0.00027212, 7.27266110, 0.99864316, 0.99928372, 0.49322408,\
+-	-6.27310542, -0.00044410, 0.00027208, 7.27266132, 0.99864336, 0.99928382, 0.49322399,\
+-	-6.27310557, -0.00044404, 0.00027204, 7.27266153, 0.99864355, 0.99928392, 0.49322405,\
+-	-6.27310572, -0.00044397, 0.00027200, 7.27266175, 0.99864375, 0.99928402, 0.49322411,\
+-	-6.27310587, -0.00044391, 0.00027196, 7.27266196, 0.99864394, 0.99928413, 0.49322415,\
+-	-6.27310603, -0.00044385, 0.00027192, 7.27266218, 0.99864414, 0.99928423, 0.49322414,\
+-	-6.27310618, -0.00044378, 0.00027189, 7.27266240, 0.99864433, 0.99928433, 0.49322429,\
+-	-6.27310633, -0.00044372, 0.00027185, 7.27266261, 0.99864453, 0.99928444, 0.49322422,\
+-	-6.27310648, -0.00044365, 0.00027181, 7.27266283, 0.99864472, 0.99928454, 0.49322422,\
+-	-6.27310663, -0.00044359, 0.00027177, 7.27266304, 0.99864491, 0.99928464, 0.49322418,\
+-	-6.27310679, -0.00044353, 0.00027173, 7.27266326, 0.99864511, 0.99928474, 0.49322426,\
+-	-6.27310694, -0.00044346, 0.00027169, 7.27266347, 0.99864530, 0.99928485, 0.49322432,\
+-	-6.27310709, -0.00044340, 0.00027165, 7.27266369, 0.99864550, 0.99928495, 0.49322429,\
+-	-6.27310724, -0.00044334, 0.00027161, 7.27266391, 0.99864569, 0.99928505, 0.49322440,\
+-	-6.27310739, -0.00044327, 0.00027157, 7.27266412, 0.99864589, 0.99928515, 0.49322431,\
+-	-6.27310755, -0.00044321, 0.00027153, 7.27266434, 0.99864608, 0.99928526, 0.49322435,\
+-	-6.27310770, -0.00044315, 0.00027150, 7.27266455, 0.99864627, 0.99928536, 0.49322446,\
+-	-6.27310785, -0.00044308, 0.00027146, 7.27266477, 0.99864647, 0.99928546, 0.49322440,\
+-	-6.27310800, -0.00044302, 0.00027142, 7.27266498, 0.99864666, 0.99928556, 0.49322441,\
+-	-6.27310815, -0.00044296, 0.00027138, 7.27266520, 0.99864685, 0.99928566, 0.49322447,\
+-	-6.27310831, -0.00044289, 0.00027134, 7.27266541, 0.99864705, 0.99928577, 0.49322449,\
+-	-6.27310846, -0.00044283, 0.00027130, 7.27266563, 0.99864724, 0.99928587, 0.49322455,\
+-	-6.27310861, -0.00044277, 0.00027126, 7.27266584, 0.99864744, 0.99928597, 0.49322455,\
+-	-6.27310876, -0.00044270, 0.00027122, 7.27266606, 0.99864763, 0.99928607, 0.49322448,\
+-	-6.27310891, -0.00044264, 0.00027119, 7.27266627, 0.99864782, 0.99928618, 0.49322460,\
+-	-6.27310906, -0.00044258, 0.00027115, 7.27266649, 0.99864802, 0.99928628, 0.49322463,\
+-	-6.27310921, -0.00044251, 0.00027111, 7.27266670, 0.99864821, 0.99928638, 0.49322466,\
+-	-6.27310937, -0.00044245, 0.00027107, 7.27266692, 0.99864840, 0.99928648, 0.49322476,\
+-	-6.27310952, -0.00044239, 0.00027103, 7.27266713, 0.99864860, 0.99928658, 0.49322465,\
+-	-6.27310967, -0.00044232, 0.00027099, 7.27266735, 0.99864879, 0.99928669, 0.49322471,\
+-	-6.27310982, -0.00044226, 0.00027095, 7.27266756, 0.99864898, 0.99928679, 0.49322475,\
+-	-6.27310997, -0.00044220, 0.00027091, 7.27266777, 0.99864917, 0.99928689, 0.49322474,\
+-	-6.27311012, -0.00044213, 0.00027088, 7.27266799, 0.99864937, 0.99928699, 0.49322474,\
+-	-6.27311027, -0.00044207, 0.00027084, 7.27266820, 0.99864956, 0.99928709, 0.49322480,\
+-	-6.27311042, -0.00044201, 0.00027080, 7.27266842, 0.99864975, 0.99928719, 0.49322485,\
+-	-6.27311058, -0.00044194, 0.00027076, 7.27266863, 0.99864995, 0.99928730, 0.49322481,\
+-	-6.27311073, -0.00044188, 0.00027072, 7.27266884, 0.99865014, 0.99928740, 0.49322488,\
+-	-6.27311088, -0.00044182, 0.00027068, 7.27266906, 0.99865033, 0.99928750, 0.49322485,\
+-	-6.27311103, -0.00044176, 0.00027064, 7.27266927, 0.99865052, 0.99928760, 0.49322488,\
+-	-6.27311118, -0.00044169, 0.00027060, 7.27266949, 0.99865072, 0.99928770, 0.49322494,\
+-	-6.27311133, -0.00044163, 0.00027057, 7.27266970, 0.99865091, 0.99928780, 0.49322492,\
+-	-6.27311148, -0.00044157, 0.00027053, 7.27266991, 0.99865110, 0.99928791, 0.49322499,\
+-	-6.27311163, -0.00044150, 0.00027049, 7.27267013, 0.99865129, 0.99928801, 0.49322490,\
+-	-6.27311178, -0.00044144, 0.00027045, 7.27267034, 0.99865149, 0.99928811, 0.49322494,\
+-	-6.27311193, -0.00044138, 0.00027041, 7.27267056, 0.99865168, 0.99928821, 0.49322503,\
+-	-6.27311208, -0.00044131, 0.00027037, 7.27267077, 0.99865187, 0.99928831, 0.49322507,\
+-	-6.27311223, -0.00044125, 0.00027033, 7.27267098, 0.99865206, 0.99928841, 0.49322506,\
+-	-6.27311238, -0.00044119, 0.00027030, 7.27267120, 0.99865226, 0.99928852, 0.49322507,\
+-	-6.27311253, -0.00044113, 0.00027026, 7.27267141, 0.99865245, 0.99928862, 0.49322511,\
+-	-6.27311269, -0.00044106, 0.00027022, 7.27267162, 0.99865264, 0.99928872, 0.49322515,\
+-	-6.27311284, -0.00044100, 0.00027018, 7.27267184, 0.99865283, 0.99928882, 0.49322525,\
+-	-6.27311299, -0.00044094, 0.00027014, 7.27267205, 0.99865302, 0.99928892, 0.49322511,\
+-	-6.27311314, -0.00044087, 0.00027010, 7.27267226, 0.99865322, 0.99928902, 0.49322518,\
+-	-6.27311329, -0.00044081, 0.00027006, 7.27267247, 0.99865341, 0.99928912, 0.49322526,\
+-	-6.27311344, -0.00044075, 0.00027003, 7.27267269, 0.99865360, 0.99928922, 0.49322521,\
+-	-6.27311359, -0.00044069, 0.00026999, 7.27267290, 0.99865379, 0.99928933, 0.49322528,\
+-	-6.27311374, -0.00044062, 0.00026995, 7.27267311, 0.99865398, 0.99928943, 0.49322529,\
+-	-6.27311389, -0.00044056, 0.00026991, 7.27267333, 0.99865418, 0.99928953, 0.49322527,\
+-	-6.27311404, -0.00044050, 0.00026987, 7.27267354, 0.99865437, 0.99928963, 0.49322539,\
+-	-6.27311419, -0.00044044, 0.00026983, 7.27267375, 0.99865456, 0.99928973, 0.49322538,\
+-	-6.27311434, -0.00044037, 0.00026980, 7.27267396, 0.99865475, 0.99928983, 0.49322547,\
+-	-6.27311449, -0.00044031, 0.00026976, 7.27267418, 0.99865494, 0.99928993, 0.49322544,\
+-	-6.27311464, -0.00044025, 0.00026972, 7.27267439, 0.99865513, 0.99929003, 0.49322545,\
+-	-6.27311479, -0.00044018, 0.00026968, 7.27267460, 0.99865532, 0.99929013, 0.49322545,\
+-	-6.27311494, -0.00044012, 0.00026964, 7.27267481, 0.99865551, 0.99929024, 0.49322537,\
+-	-6.27311509, -0.00044006, 0.00026960, 7.27267503, 0.99865571, 0.99929034, 0.49322549,\
+-	-6.27311524, -0.00044000, 0.00026957, 7.27267524, 0.99865590, 0.99929044, 0.49322552,\
+-	-6.27311539, -0.00043993, 0.00026953, 7.27267545, 0.99865609, 0.99929054, 0.49322561,\
+-	-6.27311554, -0.00043987, 0.00026949, 7.27267566, 0.99865628, 0.99929064, 0.49322551,\
+-	-6.27311569, -0.00043981, 0.00026945, 7.27267588, 0.99865647, 0.99929074, 0.49322559,\
+-	-6.27311583, -0.00043975, 0.00026941, 7.27267609, 0.99865666, 0.99929084, 0.49322564,\
+-	-6.27311598, -0.00043968, 0.00026937, 7.27267630, 0.99865685, 0.99929094, 0.49322558,\
+-	-6.27311613, -0.00043962, 0.00026934, 7.27267651, 0.99865704, 0.99929104, 0.49322567,\
+-	-6.27311628, -0.00043956, 0.00026930, 7.27267672, 0.99865723, 0.99929114, 0.49322564,\
+-	-6.27311643, -0.00043950, 0.00026926, 7.27267693, 0.99865742, 0.99929124, 0.49322573,\
+-	-6.27311658, -0.00043944, 0.00026922, 7.27267715, 0.99865762, 0.99929134, 0.49322571,\
+-	-6.27311673, -0.00043937, 0.00026918, 7.27267736, 0.99865781, 0.99929144, 0.49322569,\
+-	-6.27311688, -0.00043931, 0.00026914, 7.27267757, 0.99865800, 0.99929155, 0.49322578,\
+-	-6.27311703, -0.00043925, 0.00026911, 7.27267778, 0.99865819, 0.99929165, 0.49322578,\
+-	-6.27311718, -0.00043919, 0.00026907, 7.27267799, 0.99865838, 0.99929175, 0.49322584,\
+-	-6.27311733, -0.00043912, 0.00026903, 7.27267820, 0.99865857, 0.99929185, 0.49322586,\
+-	-6.27311748, -0.00043906, 0.00026899, 7.27267842, 0.99865876, 0.99929195, 0.49322590,\
+-	-6.27311763, -0.00043900, 0.00026895, 7.27267863, 0.99865895, 0.99929205, 0.49322588,\
+-	-6.27311777, -0.00043894, 0.00026892, 7.27267884, 0.99865914, 0.99929215, 0.49322594,\
+-	-6.27311792, -0.00043887, 0.00026888, 7.27267905, 0.99865933, 0.99929225, 0.49322584,\
+-	-6.27311807, -0.00043881, 0.00026884, 7.27267926, 0.99865952, 0.99929235, 0.49322593,\
+-	-6.27311822, -0.00043875, 0.00026880, 7.27267947, 0.99865971, 0.99929245, 0.49322593,\
+-	-6.27311837, -0.00043869, 0.00026876, 7.27267968, 0.99865990, 0.99929255, 0.49322599,\
+-	-6.27311852, -0.00043863, 0.00026872, 7.27267989, 0.99866009, 0.99929265, 0.49322601,\
+-	-6.27311867, -0.00043856, 0.00026869, 7.27268010, 0.99866028, 0.99929275, 0.49322609,\
+-	-6.27311882, -0.00043850, 0.00026865, 7.27268032, 0.99866047, 0.99929285, 0.49322605,\
+-	-6.27311897, -0.00043844, 0.00026861, 7.27268053, 0.99866066, 0.99929295, 0.49322609,\
+-	-6.27311911, -0.00043838, 0.00026857, 7.27268074, 0.99866085, 0.99929305, 0.49322609,\
+-	-6.27311926, -0.00043832, 0.00026853, 7.27268095, 0.99866104, 0.99929315, 0.49322617,\
+-	-6.27311941, -0.00043825, 0.00026850, 7.27268116, 0.99866123, 0.99929325, 0.49322622,\
+-	-6.27311956, -0.00043819, 0.00026846, 7.27268137, 0.99866142, 0.99929335, 0.49322614,\
+-	-6.27311971, -0.00043813, 0.00026842, 7.27268158, 0.99866161, 0.99929345, 0.49322631,\
+-	-6.27311986, -0.00043807, 0.00026838, 7.27268179, 0.99866180, 0.99929355, 0.49322620,\
+-	-6.27312000, -0.00043800, 0.00026834, 7.27268200, 0.99866199, 0.99929365, 0.49322616,\
+-	-6.27312015, -0.00043794, 0.00026831, 7.27268221, 0.99866217, 0.99929375, 0.49322624,\
+-	-6.27312030, -0.00043788, 0.00026827, 7.27268242, 0.99866236, 0.99929385, 0.49322623,\
+-	-6.27312045, -0.00043782, 0.00026823, 7.27268263, 0.99866255, 0.99929395, 0.49322635,\
+-	-6.27312060, -0.00043776, 0.00026819, 7.27268284, 0.99866274, 0.99929405, 0.49322632,\
+-	-6.27312075, -0.00043770, 0.00026815, 7.27268305, 0.99866293, 0.99929415, 0.49322635,\
+-	-6.27312089, -0.00043763, 0.00026812, 7.27268326, 0.99866312, 0.99929425, 0.49322639,\
+-	-6.27312104, -0.00043757, 0.00026808, 7.27268347, 0.99866331, 0.99929435, 0.49322639,\
+-	-6.27312119, -0.00043751, 0.00026804, 7.27268368, 0.99866350, 0.99929445, 0.49322638,\
+-	-6.27312134, -0.00043745, 0.00026800, 7.27268389, 0.99866369, 0.99929455, 0.49322647,\
+-	-6.27312149, -0.00043739, 0.00026796, 7.27268410, 0.99866388, 0.99929465, 0.49322642,\
+-	-6.27312163, -0.00043732, 0.00026793, 7.27268431, 0.99866407, 0.99929475, 0.49322644,\
+-	-6.27312178, -0.00043726, 0.00026789, 7.27268452, 0.99866425, 0.99929485, 0.49322646,\
+-	-6.27312193, -0.00043720, 0.00026785, 7.27268473, 0.99866444, 0.99929495, 0.49322653,\
+-	-6.27312208, -0.00043714, 0.00026781, 7.27268494, 0.99866463, 0.99929505, 0.49322663,\
+-	-6.27312223, -0.00043708, 0.00026778, 7.27268515, 0.99866482, 0.99929515, 0.49322655,\
+-	-6.27312237, -0.00043702, 0.00026774, 7.27268536, 0.99866501, 0.99929525, 0.49322658,\
+-	-6.27312252, -0.00043695, 0.00026770, 7.27268557, 0.99866520, 0.99929535, 0.49322660,\
+-	-6.27312267, -0.00043689, 0.00026766, 7.27268578, 0.99866539, 0.99929545, 0.49322666,\
+-	-6.27312282, -0.00043683, 0.00026762, 7.27268599, 0.99866557, 0.99929555, 0.49322663,\
+-	-6.27312296, -0.00043677, 0.00026759, 7.27268619, 0.99866576, 0.99929564, 0.49322672,\
+-	-6.27312311, -0.00043671, 0.00026755, 7.27268640, 0.99866595, 0.99929574, 0.49322669,\
+-	-6.27312326, -0.00043665, 0.00026751, 7.27268661, 0.99866614, 0.99929584, 0.49322667,\
+-	-6.27312341, -0.00043658, 0.00026747, 7.27268682, 0.99866633, 0.99929594, 0.49322665,\
+-	-6.27312355, -0.00043652, 0.00026744, 7.27268703, 0.99866652, 0.99929604, 0.49322678,\
+-	-6.27312370, -0.00043646, 0.00026740, 7.27268724, 0.99866670, 0.99929614, 0.49322680,\
+-	-6.27312385, -0.00043640, 0.00026736, 7.27268745, 0.99866689, 0.99929624, 0.49322677,\
+-	-6.27312399, -0.00043634, 0.00026732, 7.27268766, 0.99866708, 0.99929634, 0.49322687,\
+-	-6.27312414, -0.00043628, 0.00026728, 7.27268787, 0.99866727, 0.99929644, 0.49322695,\
+-	-6.27312429, -0.00043622, 0.00026725, 7.27268807, 0.99866746, 0.99929654, 0.49322684,\
+-	-6.27312444, -0.00043615, 0.00026721, 7.27268828, 0.99866764, 0.99929664, 0.49322695,\
+-	-6.27312458, -0.00043609, 0.00026717, 7.27268849, 0.99866783, 0.99929674, 0.49322694,\
+-	-6.27312473, -0.00043603, 0.00026713, 7.27268870, 0.99866802, 0.99929684, 0.49322694,\
+-	-6.27312488, -0.00043597, 0.00026710, 7.27268891, 0.99866821, 0.99929693, 0.49322692,\
+-	-6.27312502, -0.00043591, 0.00026706, 7.27268912, 0.99866839, 0.99929703, 0.49322694,\
+-	-6.27312517, -0.00043585, 0.00026702, 7.27268932, 0.99866858, 0.99929713, 0.49322699,\
+-	-6.27312532, -0.00043579, 0.00026698, 7.27268953, 0.99866877, 0.99929723, 0.49322697,\
+-	-6.27312546, -0.00043572, 0.00026695, 7.27268974, 0.99866896, 0.99929733, 0.49322709,\
+-	-6.27312561, -0.00043566, 0.00026691, 7.27268995, 0.99866914, 0.99929743, 0.49322698,\
+-	-6.27312576, -0.00043560, 0.00026687, 7.27269016, 0.99866933, 0.99929753, 0.49322713,\
+-	-6.27312590, -0.00043554, 0.00026683, 7.27269037, 0.99866952, 0.99929763, 0.49322708,\
+-	-6.27312605, -0.00043548, 0.00026680, 7.27269057, 0.99866971, 0.99929773, 0.49322723,\
+-	-6.27312620, -0.00043542, 0.00026676, 7.27269078, 0.99866989, 0.99929782, 0.49322717,\
+-	-6.27312634, -0.00043536, 0.00026672, 7.27269099, 0.99867008, 0.99929792, 0.49322722,\
+-	-6.27312649, -0.00043529, 0.00026668, 7.27269120, 0.99867027, 0.99929802, 0.49322714,\
+-	-6.27312664, -0.00043523, 0.00026665, 7.27269140, 0.99867045, 0.99929812, 0.49322725,\
+-	-6.27312678, -0.00043517, 0.00026661, 7.27269161, 0.99867064, 0.99929822, 0.49322739,\
+-	-6.27312693, -0.00043511, 0.00026657, 7.27269182, 0.99867083, 0.99929832, 0.49322721,\
+-	-6.27312708, -0.00043505, 0.00026653, 7.27269203, 0.99867101, 0.99929842, 0.49322728,\
+-	-6.27312722, -0.00043499, 0.00026650, 7.27269223, 0.99867120, 0.99929852, 0.49322731,\
+-	-6.27312737, -0.00043493, 0.00026646, 7.27269244, 0.99867139, 0.99929861, 0.49322735,\
+-	-6.27312752, -0.00043487, 0.00026642, 7.27269265, 0.99867158, 0.99929871, 0.49322737,\
+-	-6.27312766, -0.00043481, 0.00026638, 7.27269286, 0.99867176, 0.99929881, 0.49322735,\
+-	-6.27312781, -0.00043474, 0.00026635, 7.27269306, 0.99867195, 0.99929891, 0.49322744,\
+-	-6.27312795, -0.00043468, 0.00026631, 7.27269327, 0.99867214, 0.99929901, 0.49322745,\
+-	-6.27312810, -0.00043462, 0.00026627, 7.27269348, 0.99867232, 0.99929911, 0.49322747,\
+-	-6.27312825, -0.00043456, 0.00026623, 7.27269368, 0.99867251, 0.99929920, 0.49322750,\
+-	-6.27312839, -0.00043450, 0.00026620, 7.27269389, 0.99867269, 0.99929930, 0.49322745,\
+-	-6.27312854, -0.00043444, 0.00026616, 7.27269410, 0.99867288, 0.99929940, 0.49322761,\
+-	-6.27312868, -0.00043438, 0.00026612, 7.27269431, 0.99867307, 0.99929950, 0.49322746,\
+-	-6.27312883, -0.00043432, 0.00026608, 7.27269451, 0.99867325, 0.99929960, 0.49322757,\
+-	-6.27312898, -0.00043426, 0.00026605, 7.27269472, 0.99867344, 0.99929970, 0.49322765,\
+-	-6.27312912, -0.00043420, 0.00026601, 7.27269493, 0.99867363, 0.99929979, 0.49322763,\
+-	-6.27312927, -0.00043413, 0.00026597, 7.27269513, 0.99867381, 0.99929989, 0.49322751,\
+-	-6.27312941, -0.00043407, 0.00026593, 7.27269534, 0.99867400, 0.99929999, 0.49322758,\
+-	-6.27312956, -0.00043401, 0.00026590, 7.27269555, 0.99867418, 0.99930009, 0.49322771,\
+-	-6.27312970, -0.00043395, 0.00026586, 7.27269575, 0.99867437, 0.99930019, 0.49322770,\
+-	-6.27312985, -0.00043389, 0.00026582, 7.27269596, 0.99867456, 0.99930029, 0.49322772,\
+-	-6.27313000, -0.00043383, 0.00026579, 7.27269616, 0.99867474, 0.99930038, 0.49322775,\
+-	-6.27313014, -0.00043377, 0.00026575, 7.27269637, 0.99867493, 0.99930048, 0.49322776,\
+-	-6.27313029, -0.00043371, 0.00026571, 7.27269658, 0.99867511, 0.99930058, 0.49322779,\
+-	-6.27313043, -0.00043365, 0.00026567, 7.27269678, 0.99867530, 0.99930068, 0.49322775,\
+-	-6.27313058, -0.00043359, 0.00026564, 7.27269699, 0.99867548, 0.99930078, 0.49322782,\
+-	-6.27313072, -0.00043353, 0.00026560, 7.27269720, 0.99867567, 0.99930087, 0.49322777,\
+-	-6.27313087, -0.00043347, 0.00026556, 7.27269740, 0.99867586, 0.99930097, 0.49322785,\
+-	-6.27313101, -0.00043341, 0.00026552, 7.27269761, 0.99867604, 0.99930107, 0.49322785,\
+-	-6.27313116, -0.00043335, 0.00026549, 7.27269781, 0.99867623, 0.99930117, 0.49322792,\
+-	-6.27313130, -0.00043328, 0.00026545, 7.27269802, 0.99867641, 0.99930127, 0.49322802,\
+-	-6.27313145, -0.00043322, 0.00026541, 7.27269823, 0.99867660, 0.99930136, 0.49322800,\
+-	-6.27313159, -0.00043316, 0.00026538, 7.27269843, 0.99867678, 0.99930146, 0.49322801,\
+-	-6.27313174, -0.00043310, 0.00026534, 7.27269864, 0.99867697, 0.99930156, 0.49322793,\
+-	-6.27313188, -0.00043304, 0.00026530, 7.27269884, 0.99867715, 0.99930166, 0.49322797,\
+-	-6.27313203, -0.00043298, 0.00026526, 7.27269905, 0.99867734, 0.99930175, 0.49322808,\
+-	-6.27313217, -0.00043292, 0.00026523, 7.27269925, 0.99867752, 0.99930185, 0.49322805,\
+-	-6.27313232, -0.00043286, 0.00026519, 7.27269946, 0.99867771, 0.99930195, 0.49322811,\
+-	-6.27313246, -0.00043280, 0.00026515, 7.27269966, 0.99867789, 0.99930205, 0.49322809,\
+-	-6.27313261, -0.00043274, 0.00026512, 7.27269987, 0.99867808, 0.99930214, 0.49322806,\
+-	-6.27313275, -0.00043268, 0.00026508, 7.27270007, 0.99867826, 0.99930224, 0.49322819,\
+-	-6.27313290, -0.00043262, 0.00026504, 7.27270028, 0.99867845, 0.99930234, 0.49322820,\
+-	-6.27313304, -0.00043256, 0.00026501, 7.27270049, 0.99867863, 0.99930244, 0.49322821,\
+-	-6.27313319, -0.00043250, 0.00026497, 7.27270069, 0.99867882, 0.99930253, 0.49322826,\
+-	-6.27313333, -0.00043244, 0.00026493, 7.27270090, 0.99867900, 0.99930263, 0.49322825,\
+-	-6.27313348, -0.00043238, 0.00026489, 7.27270110, 0.99867919, 0.99930273, 0.49322828,\
+-	-6.27313362, -0.00043232, 0.00026486, 7.27270131, 0.99867937, 0.99930283, 0.49322824,\
+-	-6.27313377, -0.00043226, 0.00026482, 7.27270151, 0.99867955, 0.99930292, 0.49322829,\
+-	-6.27313391, -0.00043220, 0.00026478, 7.27270171, 0.99867974, 0.99930302, 0.49322833,\
+-	-6.27313405, -0.00043214, 0.00026475, 7.27270192, 0.99867992, 0.99930312, 0.49322832,\
+-	-6.27313420, -0.00043207, 0.00026471, 7.27270212, 0.99868011, 0.99930322, 0.49322832,\
+-	-6.27313434, -0.00043201, 0.00026467, 7.27270233, 0.99868029, 0.99930331, 0.49322841,\
+-	-6.27313449, -0.00043195, 0.00026464, 7.27270253, 0.99868048, 0.99930341, 0.49322842,\
+-	-6.27313463, -0.00043189, 0.00026460, 7.27270274, 0.99868066, 0.99930351, 0.49322850,\
+-	-6.27313478, -0.00043183, 0.00026456, 7.27270294, 0.99868084, 0.99930360, 0.49322849,\
+-	-6.27313492, -0.00043177, 0.00026452, 7.27270315, 0.99868103, 0.99930370, 0.49322832,\
+-	-6.27313506, -0.00043171, 0.00026449, 7.27270335, 0.99868121, 0.99930380, 0.49322850,\
+-	-6.27313521, -0.00043165, 0.00026445, 7.27270356, 0.99868140, 0.99930390, 0.49322849,\
+-	-6.27313535, -0.00043159, 0.00026441, 7.27270376, 0.99868158, 0.99930399, 0.49322851,\
+-	-6.27313550, -0.00043153, 0.00026438, 7.27270396, 0.99868176, 0.99930409, 0.49322842,\
+-	-6.27313564, -0.00043147, 0.00026434, 7.27270417, 0.99868195, 0.99930419, 0.49322856,\
+-	-6.27313578, -0.00043141, 0.00026430, 7.27270437, 0.99868213, 0.99930428, 0.49322852,\
+-	-6.27313593, -0.00043135, 0.00026427, 7.27270458, 0.99868232, 0.99930438, 0.49322857,\
+-	-6.27313607, -0.00043129, 0.00026423, 7.27270478, 0.99868250, 0.99930448, 0.49322857,\
+-	-6.27313622, -0.00043123, 0.00026419, 7.27270498, 0.99868268, 0.99930458, 0.49322862,\
+-	-6.27313636, -0.00043117, 0.00026416, 7.27270519, 0.99868287, 0.99930467, 0.49322867,\
+-	-6.27313650, -0.00043111, 0.00026412, 7.27270539, 0.99868305, 0.99930477, 0.49322876,\
+-	-6.27313665, -0.00043105, 0.00026408, 7.27270560, 0.99868323, 0.99930487, 0.49322877,\
+-	-6.27313679, -0.00043099, 0.00026405, 7.27270580, 0.99868342, 0.99930496, 0.49322873,\
+-	-6.27313693, -0.00043093, 0.00026401, 7.27270600, 0.99868360, 0.99930506, 0.49322870,\
+-	-6.27313708, -0.00043087, 0.00026397, 7.27270621, 0.99868378, 0.99930516, 0.49322877,\
+-	-6.27313722, -0.00043081, 0.00026394, 7.27270641, 0.99868397, 0.99930525, 0.49322879,\
+-	-6.27313737, -0.00043075, 0.00026390, 7.27270661, 0.99868415, 0.99930535, 0.49322891,\
+-	-6.27313751, -0.00043069, 0.00026386, 7.27270682, 0.99868433, 0.99930545, 0.49322887,\
+-	-6.27313765, -0.00043063, 0.00026382, 7.27270702, 0.99868452, 0.99930554, 0.49322881,\
+-	-6.27313780, -0.00043057, 0.00026379, 7.27270722, 0.99868470, 0.99930564, 0.49322892,\
+-	-6.27313794, -0.00043051, 0.00026375, 7.27270743, 0.99868488, 0.99930574, 0.49322891,\
+-	-6.27313808, -0.00043045, 0.00026371, 7.27270763, 0.99868507, 0.99930583, 0.49322891,\
+-	-6.27313823, -0.00043039, 0.00026368, 7.27270783, 0.99868525, 0.99930593, 0.49322893,\
+-	-6.27313837, -0.00043033, 0.00026364, 7.27270804, 0.99868543, 0.99930603, 0.49322886,\
+-	-6.27313851, -0.00043027, 0.00026360, 7.27270824, 0.99868561, 0.99930612, 0.49322902,\
+-	-6.27313865, -0.00043021, 0.00026357, 7.27270844, 0.99868580, 0.99930622, 0.49322900,\
+-	-6.27313880, -0.00043015, 0.00026353, 7.27270864, 0.99868598, 0.99930632, 0.49322904,\
+-	-6.27313894, -0.00043009, 0.00026349, 7.27270885, 0.99868616, 0.99930641, 0.49322903,\
+-	-6.27313908, -0.00043003, 0.00026346, 7.27270905, 0.99868634, 0.99930651, 0.49322900,\
+-	-6.27313923, -0.00042997, 0.00026342, 7.27270925, 0.99868653, 0.99930660, 0.49322904,\
+-	-6.27313937, -0.00042991, 0.00026338, 7.27270946, 0.99868671, 0.99930670, 0.49322912,\
+-	-6.27313951, -0.00042985, 0.00026335, 7.27270966, 0.99868689, 0.99930680, 0.49322917,\
+-	-6.27313966, -0.00042980, 0.00026331, 7.27270986, 0.99868707, 0.99930689, 0.49322903,\
+-	-6.27313980, -0.00042974, 0.00026328, 7.27271006, 0.99868726, 0.99930699, 0.49322919,\
+-	-6.27313994, -0.00042968, 0.00026324, 7.27271027, 0.99868744, 0.99930709, 0.49322915,\
+-	-6.27314008, -0.00042962, 0.00026320, 7.27271047, 0.99868762, 0.99930718, 0.49322921,\
+-	-6.27314023, -0.00042956, 0.00026317, 7.27271067, 0.99868780, 0.99930728, 0.49322918,\
+-	-6.27314037, -0.00042950, 0.00026313, 7.27271087, 0.99868799, 0.99930737, 0.49322930,\
+-	-6.27314051, -0.00042944, 0.00026309, 7.27271107, 0.99868817, 0.99930747, 0.49322927,\
+-	-6.27314065, -0.00042938, 0.00026306, 7.27271128, 0.99868835, 0.99930757, 0.49322931,\
+-	-6.27314080, -0.00042932, 0.00026302, 7.27271148, 0.99868853, 0.99930766, 0.49322934,\
+-	-6.27314094, -0.00042926, 0.00026298, 7.27271168, 0.99868871, 0.99930776, 0.49322928,\
+-	-6.27314108, -0.00042920, 0.00026295, 7.27271188, 0.99868890, 0.99930785, 0.49322942,\
+-	-6.27314122, -0.00042914, 0.00026291, 7.27271208, 0.99868908, 0.99930795, 0.49322942,\
+-	-6.27314137, -0.00042908, 0.00026287, 7.27271229, 0.99868926, 0.99930805, 0.49322944,\
+-	-6.27314151, -0.00042902, 0.00026284, 7.27271249, 0.99868944, 0.99930814, 0.49322951,\
+-	-6.27314165, -0.00042896, 0.00026280, 7.27271269, 0.99868962, 0.99930824, 0.49322944,\
+-	-6.27314179, -0.00042890, 0.00026276, 7.27271289, 0.99868980, 0.99930833, 0.49322951,\
+-	-6.27314194, -0.00042884, 0.00026273, 7.27271309, 0.99868999, 0.99930843, 0.49322954,\
+-	-6.27314208, -0.00042878, 0.00026269, 7.27271329, 0.99869017, 0.99930853, 0.49322961,\
+-	-6.27314222, -0.00042872, 0.00026265, 7.27271350, 0.99869035, 0.99930862, 0.49322958,\
+-	-6.27314236, -0.00042866, 0.00026262, 7.27271370, 0.99869053, 0.99930872, 0.49322958,\
+-	-6.27314250, -0.00042861, 0.00026258, 7.27271390, 0.99869071, 0.99930881, 0.49322960,\
+-	-6.27314265, -0.00042855, 0.00026255, 7.27271410, 0.99869089, 0.99930891, 0.49322954,\
+-	-6.27314279, -0.00042849, 0.00026251, 7.27271430, 0.99869107, 0.99930900, 0.49322960,\
+-	-6.27314293, -0.00042843, 0.00026247, 7.27271450, 0.99869125, 0.99930910, 0.49322964,\
+-	-6.27314307, -0.00042837, 0.00026244, 7.27271470, 0.99869144, 0.99930920, 0.49322967,\
+-	-6.27314321, -0.00042831, 0.00026240, 7.27271491, 0.99869162, 0.99930929, 0.49322963,\
+-	-6.27314336, -0.00042825, 0.00026236, 7.27271511, 0.99869180, 0.99930939, 0.49322972,\
+-	-6.27314350, -0.00042819, 0.00026233, 7.27271531, 0.99869198, 0.99930948, 0.49322962,\
+-	-6.27314364, -0.00042813, 0.00026229, 7.27271551, 0.99869216, 0.99930958, 0.49322977,\
+-	-6.27314378, -0.00042807, 0.00026226, 7.27271571, 0.99869234, 0.99930967, 0.49322982,\
+-	-6.27314392, -0.00042801, 0.00026222, 7.27271591, 0.99869252, 0.99930977, 0.49322974,\
+-	-6.27314406, -0.00042795, 0.00026218, 7.27271611, 0.99869270, 0.99930986, 0.49322983,\
+-	-6.27314421, -0.00042789, 0.00026215, 7.27271631, 0.99869288, 0.99930996, 0.49322981,\
+-	-6.27314435, -0.00042783, 0.00026211, 7.27271651, 0.99869306, 0.99931005, 0.49322987,\
+-	-6.27314449, -0.00042778, 0.00026207, 7.27271671, 0.99869325, 0.99931015, 0.49322991,\
+-	-6.27314463, -0.00042772, 0.00026204, 7.27271691, 0.99869343, 0.99931025, 0.49322985,\
+-	-6.27314477, -0.00042766, 0.00026200, 7.27271711, 0.99869361, 0.99931034, 0.49322989,\
+-	-6.27314491, -0.00042760, 0.00026197, 7.27271731, 0.99869379, 0.99931044, 0.49322995,\
+-	-6.27314505, -0.00042754, 0.00026193, 7.27271752, 0.99869397, 0.99931053, 0.49322998,\
+-	-6.27314520, -0.00042748, 0.00026189, 7.27271772, 0.99869415, 0.99931063, 0.49322992,\
+-	-6.27314534, -0.00042742, 0.00026186, 7.27271792, 0.99869433, 0.99931072, 0.49322999,\
+-	-6.27314548, -0.00042736, 0.00026182, 7.27271812, 0.99869451, 0.99931082, 0.49323014,\
+-	-6.27314562, -0.00042730, 0.00026178, 7.27271832, 0.99869469, 0.99931091, 0.49323001,\
+-	-6.27314576, -0.00042724, 0.00026175, 7.27271852, 0.99869487, 0.99931101, 0.49323007,\
+-	-6.27314590, -0.00042719, 0.00026171, 7.27271872, 0.99869505, 0.99931110, 0.49323010,\
+-	-6.27314604, -0.00042713, 0.00026168, 7.27271892, 0.99869523, 0.99931120, 0.49323018,\
+-	-6.27314618, -0.00042707, 0.00026164, 7.27271912, 0.99869541, 0.99931129, 0.49323018,\
+-	-6.27314633, -0.00042701, 0.00026160, 7.27271932, 0.99869559, 0.99931139, 0.49323016,\
+-	-6.27314647, -0.00042695, 0.00026157, 7.27271952, 0.99869577, 0.99931148, 0.49323007,\
+-	-6.27314661, -0.00042689, 0.00026153, 7.27271972, 0.99869595, 0.99931158, 0.49323022,\
+-	-6.27314675, -0.00042683, 0.00026150, 7.27271992, 0.99869613, 0.99931167, 0.49323025,\
+-	-6.27314689, -0.00042677, 0.00026146, 7.27272012, 0.99869631, 0.99931177, 0.49323030,\
+-	-6.27314703, -0.00042671, 0.00026142, 7.27272032, 0.99869649, 0.99931186, 0.49323027,\
+-	-6.27314717, -0.00042666, 0.00026139, 7.27272051, 0.99869667, 0.99931196, 0.49323031,\
+-	-6.27314731, -0.00042660, 0.00026135, 7.27272071, 0.99869685, 0.99931205, 0.49323029,\
+-	-6.27314745, -0.00042654, 0.00026132, 7.27272091, 0.99869703, 0.99931215, 0.49323033,\
+-	-6.27314759, -0.00042648, 0.00026128, 7.27272111, 0.99869721, 0.99931224, 0.49323043,\
+-	-6.27314773, -0.00042642, 0.00026124, 7.27272131, 0.99869739, 0.99931234, 0.49323035,\
+-	-6.27314787, -0.00042636, 0.00026121, 7.27272151, 0.99869757, 0.99931243, 0.49323032,\
+-	-6.27314801, -0.00042630, 0.00026117, 7.27272171, 0.99869775, 0.99931253, 0.49323043,\
+-	-6.27314815, -0.00042624, 0.00026114, 7.27272191, 0.99869792, 0.99931262, 0.49323038,\
+-	-6.27314830, -0.00042619, 0.00026110, 7.27272211, 0.99869810, 0.99931272, 0.49323055,\
+-	-6.27314844, -0.00042613, 0.00026106, 7.27272231, 0.99869828, 0.99931281, 0.49323047,\
+-	-6.27314858, -0.00042607, 0.00026103, 7.27272251, 0.99869846, 0.99931290, 0.49323039,\
+-	-6.27314872, -0.00042601, 0.00026099, 7.27272271, 0.99869864, 0.99931300, 0.49323039,\
+-	-6.27314886, -0.00042595, 0.00026096, 7.27272291, 0.99869882, 0.99931309, 0.49323057,\
+-	-6.27314900, -0.00042589, 0.00026092, 7.27272310, 0.99869900, 0.99931319, 0.49323051,\
+-	-6.27314914, -0.00042583, 0.00026088, 7.27272330, 0.99869918, 0.99931328, 0.49323056,\
+-	-6.27314928, -0.00042578, 0.00026085, 7.27272350, 0.99869936, 0.99931338, 0.49323064,\
+-	-6.27314942, -0.00042572, 0.00026081, 7.27272370, 0.99869954, 0.99931347, 0.49323065,\
+-	-6.27314956, -0.00042566, 0.00026078, 7.27272390, 0.99869972, 0.99931357, 0.49323065,\
+-	-6.27314970, -0.00042560, 0.00026074, 7.27272410, 0.99869989, 0.99931366, 0.49323070,\
+-	-6.27314984, -0.00042554, 0.00026070, 7.27272430, 0.99870007, 0.99931375, 0.49323062,\
+-	-6.27314998, -0.00042548, 0.00026067, 7.27272450, 0.99870025, 0.99931385, 0.49323063,\
+-	-6.27315012, -0.00042542, 0.00026063, 7.27272469, 0.99870043, 0.99931394, 0.49323075,\
+-	-6.27315026, -0.00042537, 0.00026060, 7.27272489, 0.99870061, 0.99931404, 0.49323074,\
+-	-6.27315040, -0.00042531, 0.00026056, 7.27272509, 0.99870079, 0.99931413, 0.49323081,\
+-	-6.27315054, -0.00042525, 0.00026052, 7.27272529, 0.99870097, 0.99931423, 0.49323082,\
+-	-6.27315068, -0.00042519, 0.00026049, 7.27272549, 0.99870115, 0.99931432, 0.49323079,\
+-	-6.27315082, -0.00042513, 0.00026045, 7.27272569, 0.99870132, 0.99931441, 0.49323072,\
+-	-6.27315096, -0.00042507, 0.00026042, 7.27272588, 0.99870150, 0.99931451, 0.49323088,\
+-	-6.27315110, -0.00042502, 0.00026038, 7.27272608, 0.99870168, 0.99931460, 0.49323096,\
+-	-6.27315124, -0.00042496, 0.00026035, 7.27272628, 0.99870186, 0.99931470, 0.49323088,\
+-	-6.27315138, -0.00042490, 0.00026031, 7.27272648, 0.99870204, 0.99931479, 0.49323085,\
+-	-6.27315152, -0.00042484, 0.00026027, 7.27272668, 0.99870222, 0.99931489, 0.49323089,\
+-	-6.27315165, -0.00042478, 0.00026024, 7.27272687, 0.99870239, 0.99931498, 0.49323085,\
+-	-6.27315179, -0.00042472, 0.00026020, 7.27272707, 0.99870257, 0.99931507, 0.49323101,\
+-	-6.27315193, -0.00042467, 0.00026017, 7.27272727, 0.99870275, 0.99931517, 0.49323094,\
+-	-6.27315207, -0.00042461, 0.00026013, 7.27272747, 0.99870293, 0.99931526, 0.49323104,\
+-	-6.27315221, -0.00042455, 0.00026010, 7.27272766, 0.99870311, 0.99931535, 0.49323100,\
+-	-6.27315235, -0.00042449, 0.00026006, 7.27272786, 0.99870328, 0.99931545, 0.49323105,\
+-	-6.27315249, -0.00042443, 0.00026002, 7.27272806, 0.99870346, 0.99931554, 0.49323112,\
+-	-6.27315263, -0.00042437, 0.00025999, 7.27272826, 0.99870364, 0.99931564, 0.49323100,\
+-	-6.27315277, -0.00042432, 0.00025995, 7.27272845, 0.99870382, 0.99931573, 0.49323104,\
+-	-6.27315291, -0.00042426, 0.00025992, 7.27272865, 0.99870399, 0.99931582, 0.49323113,\
+-	-6.27315305, -0.00042420, 0.00025988, 7.27272885, 0.99870417, 0.99931592, 0.49323100,\
+-	-6.27315319, -0.00042414, 0.00025985, 7.27272905, 0.99870435, 0.99931601, 0.49323118,\
+-	-6.27315333, -0.00042408, 0.00025981, 7.27272924, 0.99870453, 0.99931611, 0.49323122,\
+-	-6.27315347, -0.00042403, 0.00025978, 7.27272944, 0.99870470, 0.99931620, 0.49323123,\
+-	-6.27315360, -0.00042397, 0.00025974, 7.27272964, 0.99870488, 0.99931629, 0.49323124,\
+-	-6.27315374, -0.00042391, 0.00025970, 7.27272983, 0.99870506, 0.99931639, 0.49323127,\
+-	-6.27315388, -0.00042385, 0.00025967, 7.27273003, 0.99870524, 0.99931648, 0.49323133,\
+-	-6.27315402, -0.00042379, 0.00025963, 7.27273023, 0.99870541, 0.99931657, 0.49323140,\
+-	-6.27315416, -0.00042374, 0.00025960, 7.27273042, 0.99870559, 0.99931667, 0.49323133,\
+-	-6.27315430, -0.00042368, 0.00025956, 7.27273062, 0.99870577, 0.99931676, 0.49323138,\
+-	-6.27315444, -0.00042362, 0.00025953, 7.27273082, 0.99870595, 0.99931685, 0.49323140,\
+-	-6.27315458, -0.00042356, 0.00025949, 7.27273101, 0.99870612, 0.99931695, 0.49323145,\
+-	-6.27315472, -0.00042350, 0.00025946, 7.27273121, 0.99870630, 0.99931704, 0.49323139,\
+-	-6.27315485, -0.00042345, 0.00025942, 7.27273141, 0.99870648, 0.99931713, 0.49323136,\
+-	-6.27315499, -0.00042339, 0.00025938, 7.27273160, 0.99870665, 0.99931723, 0.49323144,\
+-	-6.27315513, -0.00042333, 0.00025935, 7.27273180, 0.99870683, 0.99931732, 0.49323141,\
+-	-6.27315527, -0.00042327, 0.00025931, 7.27273200, 0.99870701, 0.99931741, 0.49323140,\
+-	-6.27315541, -0.00042321, 0.00025928, 7.27273219, 0.99870719, 0.99931751, 0.49323155,\
+-	-6.27315555, -0.00042316, 0.00025924, 7.27273239, 0.99870736, 0.99931760, 0.49323157,\
+-	-6.27315569, -0.00042310, 0.00025921, 7.27273259, 0.99870754, 0.99931769, 0.49323161,\
+-	-6.27315582, -0.00042304, 0.00025917, 7.27273278, 0.99870772, 0.99931779, 0.49323157,\
+-	-6.27315596, -0.00042298, 0.00025914, 7.27273298, 0.99870789, 0.99931788, 0.49323162,\
+-	-6.27315610, -0.00042292, 0.00025910, 7.27273318, 0.99870807, 0.99931797, 0.49323164,\
+-	-6.27315624, -0.00042287, 0.00025907, 7.27273337, 0.99870825, 0.99931807, 0.49323172,\
+-	-6.27315638, -0.00042281, 0.00025903, 7.27273357, 0.99870842, 0.99931816, 0.49323163,\
+-	-6.27315652, -0.00042275, 0.00025899, 7.27273376, 0.99870860, 0.99931825, 0.49323158,\
+-	-6.27315665, -0.00042269, 0.00025896, 7.27273396, 0.99870877, 0.99931835, 0.49323168,\
+-	-6.27315679, -0.00042264, 0.00025892, 7.27273416, 0.99870895, 0.99931844, 0.49323175,\
+-	-6.27315693, -0.00042258, 0.00025889, 7.27273435, 0.99870913, 0.99931853, 0.49323172,\
+-	-6.27315707, -0.00042252, 0.00025885, 7.27273455, 0.99870930, 0.99931863, 0.49323175,\
+-	-6.27315721, -0.00042246, 0.00025882, 7.27273474, 0.99870948, 0.99931872, 0.49323179,\
+-	-6.27315734, -0.00042241, 0.00025878, 7.27273494, 0.99870966, 0.99931881, 0.49323178,\
+-	-6.27315748, -0.00042235, 0.00025875, 7.27273513, 0.99870983, 0.99931891, 0.49323183,\
+-	-6.27315762, -0.00042229, 0.00025871, 7.27273533, 0.99871001, 0.99931900, 0.49323180,\
+-	-6.27315776, -0.00042223, 0.00025868, 7.27273552, 0.99871018, 0.99931909, 0.49323181,\
+-	-6.27315790, -0.00042218, 0.00025864, 7.27273572, 0.99871036, 0.99931918, 0.49323188,\
+-	-6.27315803, -0.00042212, 0.00025861, 7.27273592, 0.99871054, 0.99931928, 0.49323197,\
+-	-6.27315817, -0.00042206, 0.00025857, 7.27273611, 0.99871071, 0.99931937, 0.49323190,\
+-	-6.27315831, -0.00042200, 0.00025854, 7.27273631, 0.99871089, 0.99931946, 0.49323185,\
+-	-6.27315845, -0.00042194, 0.00025850, 7.27273650, 0.99871106, 0.99931956, 0.49323199,\
+-	-6.27315858, -0.00042189, 0.00025846, 7.27273670, 0.99871124, 0.99931965, 0.49323204,\
+-	-6.27315872, -0.00042183, 0.00025843, 7.27273689, 0.99871141, 0.99931974, 0.49323191,\
+-	-6.27315886, -0.00042177, 0.00025839, 7.27273709, 0.99871159, 0.99931983, 0.49323202,\
+-	-6.27315900, -0.00042171, 0.00025836, 7.27273728, 0.99871177, 0.99931993, 0.49323199,\
+-	-6.27315913, -0.00042166, 0.00025832, 7.27273748, 0.99871194, 0.99932002, 0.49323200,\
+-	-6.27315927, -0.00042160, 0.00025829, 7.27273767, 0.99871212, 0.99932011, 0.49323212,\
+-	-6.27315941, -0.00042154, 0.00025825, 7.27273787, 0.99871229, 0.99932020, 0.49323215,\
+-	-6.27315955, -0.00042149, 0.00025822, 7.27273806, 0.99871247, 0.99932030, 0.49323211,\
+-	-6.27315968, -0.00042143, 0.00025818, 7.27273826, 0.99871264, 0.99932039, 0.49323217,\
+-	-6.27315982, -0.00042137, 0.00025815, 7.27273845, 0.99871282, 0.99932048, 0.49323219,\
+-	-6.27315996, -0.00042131, 0.00025811, 7.27273864, 0.99871299, 0.99932057, 0.49323223,\
+-	-6.27316010, -0.00042126, 0.00025808, 7.27273884, 0.99871317, 0.99932067, 0.49323224,\
+-	-6.27316023, -0.00042120, 0.00025804, 7.27273903, 0.99871334, 0.99932076, 0.49323221,\
+-	-6.27316037, -0.00042114, 0.00025801, 7.27273923, 0.99871352, 0.99932085, 0.49323224,\
+-	-6.27316051, -0.00042108, 0.00025797, 7.27273942, 0.99871369, 0.99932094, 0.49323220,\
+-	-6.27316064, -0.00042103, 0.00025794, 7.27273962, 0.99871387, 0.99932104, 0.49323229,\
+-	-6.27316078, -0.00042097, 0.00025790, 7.27273981, 0.99871404, 0.99932113, 0.49323228,\
+-	-6.27316092, -0.00042091, 0.00025787, 7.27274001, 0.99871422, 0.99932122, 0.49323228,\
+-	-6.27316105, -0.00042085, 0.00025783, 7.27274020, 0.99871439, 0.99932131, 0.49323234,\
+-	-6.27316119, -0.00042080, 0.00025780, 7.27274039, 0.99871457, 0.99932141, 0.49323243,\
+-	-6.27316133, -0.00042074, 0.00025776, 7.27274059, 0.99871474, 0.99932150, 0.49323241,\
+-	-6.27316147, -0.00042068, 0.00025773, 7.27274078, 0.99871492, 0.99932159, 0.49323242,\
+-	-6.27316160, -0.00042063, 0.00025769, 7.27274098, 0.99871509, 0.99932168, 0.49323234,\
+-	-6.27316174, -0.00042057, 0.00025766, 7.27274117, 0.99871527, 0.99932177, 0.49323243,\
+-	-6.27316188, -0.00042051, 0.00025762, 7.27274136, 0.99871544, 0.99932187, 0.49323249,\
+-	-6.27316201, -0.00042045, 0.00025759, 7.27274156, 0.99871562, 0.99932196, 0.49323249,\
+-	-6.27316215, -0.00042040, 0.00025755, 7.27274175, 0.99871579, 0.99932205, 0.49323255,\
+-	-6.27316229, -0.00042034, 0.00025752, 7.27274195, 0.99871597, 0.99932214, 0.49323261,\
+-	-6.27316242, -0.00042028, 0.00025748, 7.27274214, 0.99871614, 0.99932223, 0.49323266,\
+-	-6.27316256, -0.00042023, 0.00025745, 7.27274233, 0.99871631, 0.99932233, 0.49323261,\
+-	-6.27316270, -0.00042017, 0.00025741, 7.27274253, 0.99871649, 0.99932242, 0.49323265,\
+-	-6.27316283, -0.00042011, 0.00025738, 7.27274272, 0.99871666, 0.99932251, 0.49323261,\
+-	-6.27316297, -0.00042006, 0.00025734, 7.27274291, 0.99871684, 0.99932260, 0.49323268,\
+-	-6.27316311, -0.00042000, 0.00025731, 7.27274311, 0.99871701, 0.99932269, 0.49323261,\
+-	-6.27316324, -0.00041994, 0.00025727, 7.27274330, 0.99871719, 0.99932279, 0.49323277,\
+-	-6.27316338, -0.00041988, 0.00025724, 7.27274349, 0.99871736, 0.99932288, 0.49323278,\
+-	-6.27316351, -0.00041983, 0.00025720, 7.27274369, 0.99871753, 0.99932297, 0.49323270,\
+-	-6.27316365, -0.00041977, 0.00025717, 7.27274388, 0.99871771, 0.99932306, 0.49323262,\
+-	-6.27316379, -0.00041971, 0.00025713, 7.27274407, 0.99871788, 0.99932315, 0.49323267,\
+-	-6.27316392, -0.00041966, 0.00025710, 7.27274427, 0.99871806, 0.99932325, 0.49323282,\
+-	-6.27316406, -0.00041960, 0.00025706, 7.27274446, 0.99871823, 0.99932334, 0.49323274,\
+-	-6.27316420, -0.00041954, 0.00025703, 7.27274465, 0.99871840, 0.99932343, 0.49323276,\
+-	-6.27316433, -0.00041949, 0.00025699, 7.27274485, 0.99871858, 0.99932352, 0.49323279,\
+-	-6.27316447, -0.00041943, 0.00025696, 7.27274504, 0.99871875, 0.99932361, 0.49323285,\
+-	-6.27316460, -0.00041937, 0.00025692, 7.27274523, 0.99871892, 0.99932370, 0.49323286,\
+-	-6.27316474, -0.00041932, 0.00025689, 7.27274542, 0.99871910, 0.99932380, 0.49323296,\
+-	-6.27316488, -0.00041926, 0.00025685, 7.27274562, 0.99871927, 0.99932389, 0.49323294,\
+-	-6.27316501, -0.00041920, 0.00025682, 7.27274581, 0.99871944, 0.99932398, 0.49323292,\
+-	-6.27316515, -0.00041915, 0.00025678, 7.27274600, 0.99871962, 0.99932407, 0.49323285,\
+-	-6.27316528, -0.00041909, 0.00025675, 7.27274619, 0.99871979, 0.99932416, 0.49323292,\
+-	-6.27316542, -0.00041903, 0.00025671, 7.27274639, 0.99871996, 0.99932425, 0.49323303,\
+-	-6.27316555, -0.00041898, 0.00025668, 7.27274658, 0.99872014, 0.99932435, 0.49323312,\
+-	-6.27316569, -0.00041892, 0.00025664, 7.27274677, 0.99872031, 0.99932444, 0.49323326,\
+-	-6.27316583, -0.00041886, 0.00025661, 7.27274696, 0.99872048, 0.99932453, 0.49323308,\
+-	-6.27316596, -0.00041881, 0.00025658, 7.27274716, 0.99872066, 0.99932462, 0.49323307,\
+-	-6.27316610, -0.00041875, 0.00025654, 7.27274735, 0.99872083, 0.99932471, 0.49323314,\
+-	-6.27316623, -0.00041869, 0.00025651, 7.27274754, 0.99872100, 0.99932480, 0.49323312,\
+-	-6.27316637, -0.00041864, 0.00025647, 7.27274773, 0.99872118, 0.99932489, 0.49323320,\
+-	-6.27316650, -0.00041858, 0.00025644, 7.27274793, 0.99872135, 0.99932498, 0.49323311,\
+-	-6.27316664, -0.00041852, 0.00025640, 7.27274812, 0.99872152, 0.99932508, 0.49323311,\
+-	-6.27316677, -0.00041847, 0.00025637, 7.27274831, 0.99872170, 0.99932517, 0.49323317,\
+-	-6.27316691, -0.00041841, 0.00025633, 7.27274850, 0.99872187, 0.99932526, 0.49323323,\
+-	-6.27316705, -0.00041835, 0.00025630, 7.27274869, 0.99872204, 0.99932535, 0.49323325,\
+-	-6.27316718, -0.00041830, 0.00025626, 7.27274888, 0.99872221, 0.99932544, 0.49323334,\
+-	-6.27316732, -0.00041824, 0.00025623, 7.27274908, 0.99872239, 0.99932553, 0.49323332,\
+-	-6.27316745, -0.00041818, 0.00025619, 7.27274927, 0.99872256, 0.99932562, 0.49323331,\
+-	-6.27316759, -0.00041813, 0.00025616, 7.27274946, 0.99872273, 0.99932571, 0.49323331,\
+-	-6.27316772, -0.00041807, 0.00025612, 7.27274965, 0.99872290, 0.99932581, 0.49323346,\
+-	-6.27316786, -0.00041801, 0.00025609, 7.27274984, 0.99872308, 0.99932590, 0.49323331,\
+-	-6.27316799, -0.00041796, 0.00025606, 7.27275003, 0.99872325, 0.99932599, 0.49323339,\
+-	-6.27316813, -0.00041790, 0.00025602, 7.27275023, 0.99872342, 0.99932608, 0.49323343,\
+-	-6.27316826, -0.00041784, 0.00025599, 7.27275042, 0.99872359, 0.99932617, 0.49323337,\
+-	-6.27316840, -0.00041779, 0.00025595, 7.27275061, 0.99872377, 0.99932626, 0.49323342,\
+-	-6.27316853, -0.00041773, 0.00025592, 7.27275080, 0.99872394, 0.99932635, 0.49323347,\
+-	-6.27316867, -0.00041768, 0.00025588, 7.27275099, 0.99872411, 0.99932644, 0.49323353,\
+-	-6.27316880, -0.00041762, 0.00025585, 7.27275118, 0.99872428, 0.99932653, 0.49323349,\
+-	-6.27316894, -0.00041756, 0.00025581, 7.27275137, 0.99872446, 0.99932662, 0.49323358,\
+-	-6.27316907, -0.00041751, 0.00025578, 7.27275157, 0.99872463, 0.99932671, 0.49323354,\
+-	-6.27316921, -0.00041745, 0.00025574, 7.27275176, 0.99872480, 0.99932681, 0.49323350,\
+-	-6.27316934, -0.00041739, 0.00025571, 7.27275195, 0.99872497, 0.99932690, 0.49323356,\
+-	-6.27316948, -0.00041734, 0.00025568, 7.27275214, 0.99872514, 0.99932699, 0.49323355,\
+-	-6.27316961, -0.00041728, 0.00025564, 7.27275233, 0.99872532, 0.99932708, 0.49323359,\
+-	-6.27316974, -0.00041722, 0.00025561, 7.27275252, 0.99872549, 0.99932717, 0.49323360,\
+-	-6.27316988, -0.00041717, 0.00025557, 7.27275271, 0.99872566, 0.99932726, 0.49323362,\
+-	-6.27317001, -0.00041711, 0.00025554, 7.27275290, 0.99872583, 0.99932735, 0.49323369,\
+-	-6.27317015, -0.00041706, 0.00025550, 7.27275309, 0.99872600, 0.99932744, 0.49323369,\
+-	-6.27317028, -0.00041700, 0.00025547, 7.27275328, 0.99872617, 0.99932753, 0.49323368,\
+-	-6.27317042, -0.00041694, 0.00025543, 7.27275347, 0.99872635, 0.99932762, 0.49323375,\
+-	-6.27317055, -0.00041689, 0.00025540, 7.27275366, 0.99872652, 0.99932771, 0.49323378,\
+-	-6.27317069, -0.00041683, 0.00025537, 7.27275385, 0.99872669, 0.99932780, 0.49323373,\
+-	-6.27317082, -0.00041678, 0.00025533, 7.27275405, 0.99872686, 0.99932789, 0.49323370,\
+-	-6.27317095, -0.00041672, 0.00025530, 7.27275424, 0.99872703, 0.99932798, 0.49323379,\
+-	-6.27317109, -0.00041666, 0.00025526, 7.27275443, 0.99872720, 0.99932807, 0.49323375,\
+-	-6.27317122, -0.00041661, 0.00025523, 7.27275462, 0.99872738, 0.99932816, 0.49323392,\
+-	-6.27317136, -0.00041655, 0.00025519, 7.27275481, 0.99872755, 0.99932826, 0.49323391,\
+-	-6.27317149, -0.00041649, 0.00025516, 7.27275500, 0.99872772, 0.99932835, 0.49323391,\
+-	-6.27317163, -0.00041644, 0.00025512, 7.27275519, 0.99872789, 0.99932844, 0.49323388,\
+-	-6.27317176, -0.00041638, 0.00025509, 7.27275538, 0.99872806, 0.99932853, 0.49323395,\
+-	-6.27317189, -0.00041633, 0.00025506, 7.27275557, 0.99872823, 0.99932862, 0.49323385,\
+-	-6.27317203, -0.00041627, 0.00025502, 7.27275576, 0.99872840, 0.99932871, 0.49323392,\
+-	-6.27317216, -0.00041621, 0.00025499, 7.27275595, 0.99872857, 0.99932880, 0.49323402,\
+-	-6.27317230, -0.00041616, 0.00025495, 7.27275614, 0.99872874, 0.99932889, 0.49323405,\
+-	-6.27317243, -0.00041610, 0.00025492, 7.27275633, 0.99872892, 0.99932898, 0.49323405,\
+-	-6.27317256, -0.00041605, 0.00025488, 7.27275652, 0.99872909, 0.99932907, 0.49323408,\
+-	-6.27317270, -0.00041599, 0.00025485, 7.27275671, 0.99872926, 0.99932916, 0.49323410,\
+-	-6.27317283, -0.00041594, 0.00025482, 7.27275690, 0.99872943, 0.99932925, 0.49323410,\
+-	-6.27317297, -0.00041588, 0.00025478, 7.27275709, 0.99872960, 0.99932934, 0.49323416,\
+-	-6.27317310, -0.00041582, 0.00025475, 7.27275728, 0.99872977, 0.99932943, 0.49323413,\
+-	-6.27317323, -0.00041577, 0.00025471, 7.27275746, 0.99872994, 0.99932952, 0.49323409,\
+-	-6.27317337, -0.00041571, 0.00025468, 7.27275765, 0.99873011, 0.99932961, 0.49323425,\
+-	-6.27317350, -0.00041566, 0.00025465, 7.27275784, 0.99873028, 0.99932970, 0.49323426,\
+-	-6.27317363, -0.00041560, 0.00025461, 7.27275803, 0.99873045, 0.99932979, 0.49323421,\
+-	-6.27317377, -0.00041554, 0.00025458, 7.27275822, 0.99873062, 0.99932988, 0.49323430,\
+-	-6.27317390, -0.00041549, 0.00025454, 7.27275841, 0.99873079, 0.99932997, 0.49323422,\
+-	-6.27317403, -0.00041543, 0.00025451, 7.27275860, 0.99873096, 0.99933006, 0.49323429,\
+-	-6.27317417, -0.00041538, 0.00025447, 7.27275879, 0.99873113, 0.99933015, 0.49323420,\
+-	-6.27317430, -0.00041532, 0.00025444, 7.27275898, 0.99873130, 0.99933024, 0.49323427,\
+-	-6.27317443, -0.00041527, 0.00025441, 7.27275917, 0.99873147, 0.99933033, 0.49323431,\
+-	-6.27317457, -0.00041521, 0.00025437, 7.27275936, 0.99873164, 0.99933042, 0.49323443,\
+-	-6.27317470, -0.00041515, 0.00025434, 7.27275955, 0.99873181, 0.99933051, 0.49323428,\
+-	-6.27317483, -0.00041510, 0.00025430, 7.27275974, 0.99873198, 0.99933060, 0.49323443,\
+-	-6.27317497, -0.00041504, 0.00025427, 7.27275992, 0.99873215, 0.99933069, 0.49323437,\
+-	-6.27317510, -0.00041499, 0.00025424, 7.27276011, 0.99873232, 0.99933078, 0.49323454,\
+-	-6.27317523, -0.00041493, 0.00025420, 7.27276030, 0.99873249, 0.99933087, 0.49323446,\
+-	-6.27317537, -0.00041488, 0.00025417, 7.27276049, 0.99873266, 0.99933096, 0.49323436,\
+-	-6.27317550, -0.00041482, 0.00025413, 7.27276068, 0.99873283, 0.99933105, 0.49323455,\
+-	-6.27317563, -0.00041476, 0.00025410, 7.27276087, 0.99873300, 0.99933114, 0.49323443,\
+-	-6.27317577, -0.00041471, 0.00025406, 7.27276106, 0.99873317, 0.99933123, 0.49323444,\
+-	-6.27317590, -0.00041465, 0.00025403, 7.27276124, 0.99873334, 0.99933132, 0.49323452,\
+-	-6.27317603, -0.00041460, 0.00025400, 7.27276143, 0.99873351, 0.99933140, 0.49323465,\
+-	-6.27317616, -0.00041454, 0.00025396, 7.27276162, 0.99873368, 0.99933149, 0.49323452,\
+-	-6.27317630, -0.00041449, 0.00025393, 7.27276181, 0.99873385, 0.99933158, 0.49323459,\
+-	-6.27317643, -0.00041443, 0.00025389, 7.27276200, 0.99873402, 0.99933167, 0.49323462,\
+-	-6.27317656, -0.00041438, 0.00025386, 7.27276219, 0.99873419, 0.99933176, 0.49323457,\
+-	-6.27317670, -0.00041432, 0.00025383, 7.27276237, 0.99873436, 0.99933185, 0.49323468,\
+-	-6.27317683, -0.00041427, 0.00025379, 7.27276256, 0.99873453, 0.99933194, 0.49323479,\
+-	-6.27317696, -0.00041421, 0.00025376, 7.27276275, 0.99873470, 0.99933203, 0.49323481,\
+-	-6.27317709, -0.00041415, 0.00025372, 7.27276294, 0.99873487, 0.99933212, 0.49323465,\
+-	-6.27317723, -0.00041410, 0.00025369, 7.27276313, 0.99873504, 0.99933221, 0.49323467,\
+-	-6.27317736, -0.00041404, 0.00025366, 7.27276332, 0.99873521, 0.99933230, 0.49323474,\
+-	-6.27317749, -0.00041399, 0.00025362, 7.27276350, 0.99873538, 0.99933239, 0.49323475,\
+-	-6.27317762, -0.00041393, 0.00025359, 7.27276369, 0.99873555, 0.99933248, 0.49323489,\
+-	-6.27317776, -0.00041388, 0.00025355, 7.27276388, 0.99873572, 0.99933257, 0.49323478,\
+-	-6.27317789, -0.00041382, 0.00025352, 7.27276407, 0.99873588, 0.99933266, 0.49323490,\
+-	-6.27317802, -0.00041377, 0.00025349, 7.27276425, 0.99873605, 0.99933275, 0.49323500,\
+-	-6.27317815, -0.00041371, 0.00025345, 7.27276444, 0.99873622, 0.99933283, 0.49323486,\
+-	-6.27317829, -0.00041366, 0.00025342, 7.27276463, 0.99873639, 0.99933292, 0.49323491,\
+-	-6.27317842, -0.00041360, 0.00025339, 7.27276482, 0.99873656, 0.99933301, 0.49323473,\
+-	-6.27317855, -0.00041355, 0.00025335, 7.27276500, 0.99873673, 0.99933310, 0.49323495,\
+-	-6.27317868, -0.00041349, 0.00025332, 7.27276519, 0.99873690, 0.99933319, 0.49323495,\
+-	-6.27317882, -0.00041344, 0.00025328, 7.27276538, 0.99873707, 0.99933328, 0.49323487,\
+-	-6.27317895, -0.00041338, 0.00025325, 7.27276557, 0.99873724, 0.99933337, 0.49323500,\
+-	-6.27317908, -0.00041333, 0.00025322, 7.27276575, 0.99873740, 0.99933346, 0.49323493,\
+-	-6.27317921, -0.00041327, 0.00025318, 7.27276594, 0.99873757, 0.99933355, 0.49323497,\
+-	-6.27317934, -0.00041321, 0.00025315, 7.27276613, 0.99873774, 0.99933364, 0.49323507,\
+-	-6.27317948, -0.00041316, 0.00025311, 7.27276632, 0.99873791, 0.99933373, 0.49323512,\
+-	-6.27317961, -0.00041310, 0.00025308, 7.27276650, 0.99873808, 0.99933381, 0.49323500,\
+-	-6.27317974, -0.00041305, 0.00025305, 7.27276669, 0.99873825, 0.99933390, 0.49323510,\
+-	-6.27317987, -0.00041299, 0.00025301, 7.27276688, 0.99873842, 0.99933399, 0.49323520,\
+-	-6.27318000, -0.00041294, 0.00025298, 7.27276706, 0.99873858, 0.99933408, 0.49323515,\
+-	-6.27318014, -0.00041288, 0.00025295, 7.27276725, 0.99873875, 0.99933417, 0.49323523,\
+-	-6.27318027, -0.00041283, 0.00025291, 7.27276744, 0.99873892, 0.99933426, 0.49323516,\
+-	-6.27318040, -0.00041277, 0.00025288, 7.27276762, 0.99873909, 0.99933435, 0.49323517,\
+-	-6.27318053, -0.00041272, 0.00025284, 7.27276781, 0.99873926, 0.99933444, 0.49323519,\
+-	-6.27318066, -0.00041266, 0.00025281, 7.27276800, 0.99873942, 0.99933453, 0.49323515,\
+-	-6.27318079, -0.00041261, 0.00025278, 7.27276818, 0.99873959, 0.99933461, 0.49323538,\
+-	-6.27318093, -0.00041255, 0.00025274, 7.27276837, 0.99873976, 0.99933470, 0.49323529,\
+-	-6.27318106, -0.00041250, 0.00025271, 7.27276856, 0.99873993, 0.99933479, 0.49323537,\
+-	-6.27318119, -0.00041244, 0.00025268, 7.27276874, 0.99874010, 0.99933488, 0.49323534,\
+-	-6.27318132, -0.00041239, 0.00025264, 7.27276893, 0.99874026, 0.99933497, 0.49323537,\
+-	-6.27318145, -0.00041233, 0.00025261, 7.27276912, 0.99874043, 0.99933506, 0.49323540,\
+-	-6.27318158, -0.00041228, 0.00025258, 7.27276930, 0.99874060, 0.99933515, 0.49323539,\
+-	-6.27318171, -0.00041222, 0.00025254, 7.27276949, 0.99874077, 0.99933523, 0.49323536,\
+-	-6.27318185, -0.00041217, 0.00025251, 7.27276968, 0.99874094, 0.99933532, 0.49323541,\
+-	-6.27318198, -0.00041211, 0.00025247, 7.27276986, 0.99874110, 0.99933541, 0.49323529,\
+-	-6.27318211, -0.00041206, 0.00025244, 7.27277005, 0.99874127, 0.99933550, 0.49323554,\
+-	-6.27318224, -0.00041200, 0.00025241, 7.27277023, 0.99874144, 0.99933559, 0.49323556,\
+-	-6.27318237, -0.00041195, 0.00025237, 7.27277042, 0.99874161, 0.99933568, 0.49323548,\
+-	-6.27318250, -0.00041190, 0.00025234, 7.27277061, 0.99874177, 0.99933577, 0.49323555,\
+-	-6.27318263, -0.00041184, 0.00025231, 7.27277079, 0.99874194, 0.99933585, 0.49323555,\
+-	-6.27318276, -0.00041179, 0.00025227, 7.27277098, 0.99874211, 0.99933594, 0.49323566,\
+-	-6.27318290, -0.00041173, 0.00025224, 7.27277117, 0.99874228, 0.99933603, 0.49323552,\
+-	-6.27318303, -0.00041168, 0.00025221, 7.27277135, 0.99874244, 0.99933612, 0.49323561,\
+-	-6.27318316, -0.00041162, 0.00025217, 7.27277154, 0.99874261, 0.99933621, 0.49323566,\
+-	-6.27318329, -0.00041157, 0.00025214, 7.27277172, 0.99874278, 0.99933630, 0.49323555,\
+-	-6.27318342, -0.00041151, 0.00025210, 7.27277191, 0.99874294, 0.99933638, 0.49323560,\
+-	-6.27318355, -0.00041146, 0.00025207, 7.27277209, 0.99874311, 0.99933647, 0.49323570,\
+-	-6.27318368, -0.00041140, 0.00025204, 7.27277228, 0.99874328, 0.99933656, 0.49323566,\
+-	-6.27318381, -0.00041135, 0.00025200, 7.27277246, 0.99874345, 0.99933665, 0.49323580,\
+-	-6.27318394, -0.00041129, 0.00025197, 7.27277265, 0.99874361, 0.99933674, 0.49323573,\
+-	-6.27318407, -0.00041124, 0.00025194, 7.27277284, 0.99874378, 0.99933682, 0.49323588,\
+-	-6.27318420, -0.00041118, 0.00025190, 7.27277302, 0.99874395, 0.99933691, 0.49323574,\
+-	-6.27318434, -0.00041113, 0.00025187, 7.27277321, 0.99874411, 0.99933700, 0.49323584,\
+-	-6.27318447, -0.00041107, 0.00025184, 7.27277339, 0.99874428, 0.99933709, 0.49323574,\
+-	-6.27318460, -0.00041102, 0.00025180, 7.27277358, 0.99874445, 0.99933718, 0.49323586,\
+-	-6.27318473, -0.00041097, 0.00025177, 7.27277376, 0.99874461, 0.99933726, 0.49323593,\
+-	-6.27318486, -0.00041091, 0.00025174, 7.27277395, 0.99874478, 0.99933735, 0.49323592,\
+-	-6.27318499, -0.00041086, 0.00025170, 7.27277413, 0.99874495, 0.99933744, 0.49323598,\
+-	-6.27318512, -0.00041080, 0.00025167, 7.27277432, 0.99874511, 0.99933753, 0.49323589,\
+-	-6.27318525, -0.00041075, 0.00025164, 7.27277450, 0.99874528, 0.99933762, 0.49323587,\
+-	-6.27318538, -0.00041069, 0.00025160, 7.27277469, 0.99874545, 0.99933770, 0.49323605,\
+-	-6.27318551, -0.00041064, 0.00025157, 7.27277487, 0.99874561, 0.99933779, 0.49323594,\
+-	-6.27318564, -0.00041058, 0.00025154, 7.27277506, 0.99874578, 0.99933788, 0.49323599,\
+-	-6.27318577, -0.00041053, 0.00025150, 7.27277524, 0.99874595, 0.99933797, 0.49323604,\
+-	-6.27318590, -0.00041048, 0.00025147, 7.27277543, 0.99874611, 0.99933806, 0.49323602,\
+-	-6.27318603, -0.00041042, 0.00025144, 7.27277561, 0.99874628, 0.99933814, 0.49323601,\
+-	-6.27318616, -0.00041037, 0.00025140, 7.27277580, 0.99874645, 0.99933823, 0.49323601,\
+-	-6.27318629, -0.00041031, 0.00025137, 7.27277598, 0.99874661, 0.99933832, 0.49323608,\
+-	-6.27318642, -0.00041026, 0.00025134, 7.27277616, 0.99874678, 0.99933841, 0.49323616,\
+-	-6.27318655, -0.00041020, 0.00025130, 7.27277635, 0.99874694, 0.99933849, 0.49323617,\
+-	-6.27318668, -0.00041015, 0.00025127, 7.27277653, 0.99874711, 0.99933858, 0.49323615,\
+-	-6.27318681, -0.00041009, 0.00025124, 7.27277672, 0.99874728, 0.99933867, 0.49323614,\
+-	-6.27318694, -0.00041004, 0.00025120, 7.27277690, 0.99874744, 0.99933876, 0.49323615,\
+-	-6.27318707, -0.00040999, 0.00025117, 7.27277709, 0.99874761, 0.99933884, 0.49323610,\
+-	-6.27318720, -0.00040993, 0.00025114, 7.27277727, 0.99874777, 0.99933893, 0.49323628,\
+-	-6.27318733, -0.00040988, 0.00025110, 7.27277746, 0.99874794, 0.99933902, 0.49323634,\
+-	-6.27318746, -0.00040982, 0.00025107, 7.27277764, 0.99874811, 0.99933911, 0.49323627,\
+-	-6.27318759, -0.00040977, 0.00025104, 7.27277782, 0.99874827, 0.99933919, 0.49323622,\
+-	-6.27318772, -0.00040971, 0.00025100, 7.27277801, 0.99874844, 0.99933928, 0.49323631,\
+-	-6.27318785, -0.00040966, 0.00025097, 7.27277819, 0.99874860, 0.99933937, 0.49323628,\
+-	-6.27318798, -0.00040961, 0.00025094, 7.27277838, 0.99874877, 0.99933946, 0.49323627,\
+-	-6.27318811, -0.00040955, 0.00025090, 7.27277856, 0.99874893, 0.99933954, 0.49323637,\
+-	-6.27318824, -0.00040950, 0.00025087, 7.27277874, 0.99874910, 0.99933963, 0.49323632,\
+-	-6.27318837, -0.00040944, 0.00025084, 7.27277893, 0.99874927, 0.99933972, 0.49323640,\
+-	-6.27318850, -0.00040939, 0.00025080, 7.27277911, 0.99874943, 0.99933981, 0.49323651,\
+-	-6.27318863, -0.00040934, 0.00025077, 7.27277929, 0.99874960, 0.99933989, 0.49323644,\
+-	-6.27318876, -0.00040928, 0.00025074, 7.27277948, 0.99874976, 0.99933998, 0.49323637,\
+-	-6.27318889, -0.00040923, 0.00025070, 7.27277966, 0.99874993, 0.99934007, 0.49323647,\
+-	-6.27318902, -0.00040917, 0.00025067, 7.27277985, 0.99875009, 0.99934016, 0.49323644,\
+-	-6.27318915, -0.00040912, 0.00025064, 7.27278003, 0.99875026, 0.99934024, 0.49323643,\
+-	-6.27318928, -0.00040906, 0.00025060, 7.27278021, 0.99875042, 0.99934033, 0.49323648,\
+-	-6.27318941, -0.00040901, 0.00025057, 7.27278040, 0.99875059, 0.99934042, 0.49323655,\
+-	-6.27318954, -0.00040896, 0.00025054, 7.27278058, 0.99875075, 0.99934050, 0.49323657,\
+-	-6.27318967, -0.00040890, 0.00025051, 7.27278076, 0.99875092, 0.99934059, 0.49323664,\
+-	-6.27318979, -0.00040885, 0.00025047, 7.27278095, 0.99875108, 0.99934068, 0.49323657,\
+-	-6.27318992, -0.00040879, 0.00025044, 7.27278113, 0.99875125, 0.99934077, 0.49323666,\
+-	-6.27319005, -0.00040874, 0.00025041, 7.27278131, 0.99875141, 0.99934085, 0.49323663,\
+-	-6.27319018, -0.00040869, 0.00025037, 7.27278150, 0.99875158, 0.99934094, 0.49323672,\
+-	-6.27319031, -0.00040863, 0.00025034, 7.27278168, 0.99875174, 0.99934103, 0.49323665,\
+-	-6.27319044, -0.00040858, 0.00025031, 7.27278186, 0.99875191, 0.99934111, 0.49323670,\
+-	-6.27319057, -0.00040852, 0.00025027, 7.27278204, 0.99875207, 0.99934120, 0.49323671,\
+-	-6.27319070, -0.00040847, 0.00025024, 7.27278223, 0.99875224, 0.99934129, 0.49323673,\
+-	-6.27319083, -0.00040842, 0.00025021, 7.27278241, 0.99875240, 0.99934137, 0.49323684,\
+-	-6.27319096, -0.00040836, 0.00025017, 7.27278259, 0.99875257, 0.99934146, 0.49323687,\
+-	-6.27319109, -0.00040831, 0.00025014, 7.27278278, 0.99875273, 0.99934155, 0.49323685,\
+-	-6.27319121, -0.00040826, 0.00025011, 7.27278296, 0.99875290, 0.99934164, 0.49323688,\
+-	-6.27319134, -0.00040820, 0.00025008, 7.27278314, 0.99875306, 0.99934172, 0.49323675,\
+-	-6.27319147, -0.00040815, 0.00025004, 7.27278332, 0.99875322, 0.99934181, 0.49323678,\
+-	-6.27319160, -0.00040809, 0.00025001, 7.27278351, 0.99875339, 0.99934190, 0.49323687,\
+-	-6.27319173, -0.00040804, 0.00024998, 7.27278369, 0.99875355, 0.99934198, 0.49323686,\
+-	-6.27319186, -0.00040799, 0.00024994, 7.27278387, 0.99875372, 0.99934207, 0.49323698,\
+-	-6.27319199, -0.00040793, 0.00024991, 7.27278405, 0.99875388, 0.99934216, 0.49323692,\
+-	-6.27319212, -0.00040788, 0.00024988, 7.27278424, 0.99875405, 0.99934224, 0.49323708,\
+-	-6.27319224, -0.00040783, 0.00024985, 7.27278442, 0.99875421, 0.99934233, 0.49323704,\
+-	-6.27319237, -0.00040777, 0.00024981, 7.27278460, 0.99875437, 0.99934242, 0.49323700,\
+-	-6.27319250, -0.00040772, 0.00024978, 7.27278478, 0.99875454, 0.99934250, 0.49323693,\
+-	-6.27319263, -0.00040766, 0.00024975, 7.27278497, 0.99875470, 0.99934259, 0.49323702,\
+-	-6.27319276, -0.00040761, 0.00024971, 7.27278515, 0.99875487, 0.99934268, 0.49323716,\
+-	-6.27319289, -0.00040756, 0.00024968, 7.27278533, 0.99875503, 0.99934276, 0.49323703,\
+-	-6.27319302, -0.00040750, 0.00024965, 7.27278551, 0.99875519, 0.99934285, 0.49323706,\
+-	-6.27319314, -0.00040745, 0.00024961, 7.27278569, 0.99875536, 0.99934294, 0.49323706,\
+-	-6.27319327, -0.00040740, 0.00024958, 7.27278588, 0.99875552, 0.99934302, 0.49323714,\
+-	-6.27319340, -0.00040734, 0.00024955, 7.27278606, 0.99875569, 0.99934311, 0.49323706,\
+-	-6.27319353, -0.00040729, 0.00024952, 7.27278624, 0.99875585, 0.99934320, 0.49323708,\
+-	-6.27319366, -0.00040724, 0.00024948, 7.27278642, 0.99875601, 0.99934328, 0.49323729,\
+-	-6.27319379, -0.00040718, 0.00024945, 7.27278660, 0.99875618, 0.99934337, 0.49323724,\
+-	-6.27319391, -0.00040713, 0.00024942, 7.27278679, 0.99875634, 0.99934345, 0.49323721,\
+-	-6.27319404, -0.00040707, 0.00024938, 7.27278697, 0.99875650, 0.99934354, 0.49323728,\
+-	-6.27319417, -0.00040702, 0.00024935, 7.27278715, 0.99875667, 0.99934363, 0.49323732,\
+-	-6.27319430, -0.00040697, 0.00024932, 7.27278733, 0.99875683, 0.99934371, 0.49323735,\
+-	-6.27319443, -0.00040691, 0.00024929, 7.27278751, 0.99875700, 0.99934380, 0.49323736,\
+-	-6.27319455, -0.00040686, 0.00024925, 7.27278769, 0.99875716, 0.99934389, 0.49323725,\
+-	-6.27319468, -0.00040681, 0.00024922, 7.27278788, 0.99875732, 0.99934397, 0.49323738,\
+-	-6.27319481, -0.00040675, 0.00024919, 7.27278806, 0.99875749, 0.99934406, 0.49323735,\
+-	-6.27319494, -0.00040670, 0.00024916, 7.27278824, 0.99875765, 0.99934414, 0.49323731,\
+-	-6.27319507, -0.00040665, 0.00024912, 7.27278842, 0.99875781, 0.99934423, 0.49323743,\
+-	-6.27319519, -0.00040659, 0.00024909, 7.27278860, 0.99875798, 0.99934432, 0.49323750,\
+-	-6.27319532, -0.00040654, 0.00024906, 7.27278878, 0.99875814, 0.99934440, 0.49323738,\
+-	-6.27319545, -0.00040649, 0.00024902, 7.27278896, 0.99875830, 0.99934449, 0.49323751,\
+-	-6.27319558, -0.00040643, 0.00024899, 7.27278914, 0.99875846, 0.99934457, 0.49323752,\
+-	-6.27319571, -0.00040638, 0.00024896, 7.27278933, 0.99875863, 0.99934466, 0.49323741,\
+-	-6.27319583, -0.00040633, 0.00024893, 7.27278951, 0.99875879, 0.99934475, 0.49323749,\
+-	-6.27319596, -0.00040627, 0.00024889, 7.27278969, 0.99875895, 0.99934483, 0.49323755,\
+-	-6.27319609, -0.00040622, 0.00024886, 7.27278987, 0.99875912, 0.99934492, 0.49323762,\
+-	-6.27319622, -0.00040617, 0.00024883, 7.27279005, 0.99875928, 0.99934501, 0.49323759,\
+-	-6.27319634, -0.00040611, 0.00024880, 7.27279023, 0.99875944, 0.99934509, 0.49323760,\
+-	-6.27319647, -0.00040606, 0.00024876, 7.27279041, 0.99875960, 0.99934518, 0.49323757,\
+-	-6.27319660, -0.00040601, 0.00024873, 7.27279059, 0.99875977, 0.99934526, 0.49323761,\
+-	-6.27319673, -0.00040595, 0.00024870, 7.27279077, 0.99875993, 0.99934535, 0.49323762,\
+-	-6.27319685, -0.00040590, 0.00024867, 7.27279095, 0.99876009, 0.99934543, 0.49323771,\
+-	-6.27319698, -0.00040585, 0.00024863, 7.27279113, 0.99876026, 0.99934552, 0.49323775,\
+-	-6.27319711, -0.00040579, 0.00024860, 7.27279131, 0.99876042, 0.99934561, 0.49323777,\
+-	-6.27319724, -0.00040574, 0.00024857, 7.27279149, 0.99876058, 0.99934569, 0.49323761,\
+-	-6.27319736, -0.00040569, 0.00024853, 7.27279168, 0.99876074, 0.99934578, 0.49323772,\
+-	-6.27319749, -0.00040563, 0.00024850, 7.27279186, 0.99876091, 0.99934586, 0.49323767,\
+-	-6.27319762, -0.00040558, 0.00024847, 7.27279204, 0.99876107, 0.99934595, 0.49323779,\
+-	-6.27319774, -0.00040553, 0.00024844, 7.27279222, 0.99876123, 0.99934603, 0.49323782,\
+-	-6.27319787, -0.00040547, 0.00024840, 7.27279240, 0.99876139, 0.99934612, 0.49323776,\
+-	-6.27319800, -0.00040542, 0.00024837, 7.27279258, 0.99876156, 0.99934621, 0.49323782,\
+-	-6.27319813, -0.00040537, 0.00024834, 7.27279276, 0.99876172, 0.99934629, 0.49323787,\
+-	-6.27319825, -0.00040532, 0.00024831, 7.27279294, 0.99876188, 0.99934638, 0.49323783,\
+-	-6.27319838, -0.00040526, 0.00024827, 7.27279312, 0.99876204, 0.99934646, 0.49323795,\
+-	-6.27319851, -0.00040521, 0.00024824, 7.27279330, 0.99876220, 0.99934655, 0.49323788,\
+-	-6.27319863, -0.00040516, 0.00024821, 7.27279348, 0.99876237, 0.99934663, 0.49323798,\
+-	-6.27319876, -0.00040510, 0.00024818, 7.27279366, 0.99876253, 0.99934672, 0.49323799,\
+-	-6.27319889, -0.00040505, 0.00024814, 7.27279384, 0.99876269, 0.99934681, 0.49323794,\
+-	-6.27319901, -0.00040500, 0.00024811, 7.27279402, 0.99876285, 0.99934689, 0.49323812,\
+-	-6.27319914, -0.00040494, 0.00024808, 7.27279420, 0.99876301, 0.99934698, 0.49323800,\
+-	-6.27319927, -0.00040489, 0.00024805, 7.27279438, 0.99876318, 0.99934706, 0.49323799,\
+-	-6.27319939, -0.00040484, 0.00024801, 7.27279456, 0.99876334, 0.99934715, 0.49323807,\
+-	-6.27319952, -0.00040479, 0.00024798, 7.27279474, 0.99876350, 0.99934723, 0.49323804,\
+-	-6.27319965, -0.00040473, 0.00024795, 7.27279492, 0.99876366, 0.99934732, 0.49323807,\
+-	-6.27319977, -0.00040468, 0.00024792, 7.27279510, 0.99876382, 0.99934740, 0.49323796,\
+-	-6.27319990, -0.00040463, 0.00024788, 7.27279527, 0.99876398, 0.99934749, 0.49323820,\
+-	-6.27320003, -0.00040457, 0.00024785, 7.27279545, 0.99876415, 0.99934757, 0.49323815,\
+-	-6.27320015, -0.00040452, 0.00024782, 7.27279563, 0.99876431, 0.99934766, 0.49323813,\
+-	-6.27320028, -0.00040447, 0.00024779, 7.27279581, 0.99876447, 0.99934774, 0.49323819,\
+-	-6.27320041, -0.00040442, 0.00024776, 7.27279599, 0.99876463, 0.99934783, 0.49323817,\
+-	-6.27320053, -0.00040436, 0.00024772, 7.27279617, 0.99876479, 0.99934791, 0.49323809,\
+-	-6.27320066, -0.00040431, 0.00024769, 7.27279635, 0.99876495, 0.99934800, 0.49323823,\
+-	-6.27320079, -0.00040426, 0.00024766, 7.27279653, 0.99876511, 0.99934809, 0.49323818,\
+-	-6.27320091, -0.00040420, 0.00024763, 7.27279671, 0.99876528, 0.99934817, 0.49323822,\
+-	-6.27320104, -0.00040415, 0.00024759, 7.27279689, 0.99876544, 0.99934826, 0.49323828,\
+-	-6.27320117, -0.00040410, 0.00024756, 7.27279707, 0.99876560, 0.99934834, 0.49323852,\
+-	-6.27320129, -0.00040405, 0.00024753, 7.27279725, 0.99876576, 0.99934843, 0.49323826,\
+-	-6.27320142, -0.00040399, 0.00024750, 7.27279743, 0.99876592, 0.99934851, 0.49323833,\
+-	-6.27320154, -0.00040394, 0.00024746, 7.27279760, 0.99876608, 0.99934860, 0.49323832,\
+-	-6.27320167, -0.00040389, 0.00024743, 7.27279778, 0.99876624, 0.99934868, 0.49323839,\
+-	-6.27320180, -0.00040383, 0.00024740, 7.27279796, 0.99876640, 0.99934877, 0.49323831,\
+-	-6.27320192, -0.00040378, 0.00024737, 7.27279814, 0.99876656, 0.99934885, 0.49323847,\
+-	-6.27320205, -0.00040373, 0.00024733, 7.27279832, 0.99876673, 0.99934894, 0.49323846,\
+-	-6.27320217, -0.00040368, 0.00024730, 7.27279850, 0.99876689, 0.99934902, 0.49323853,\
+-	-6.27320230, -0.00040362, 0.00024727, 7.27279868, 0.99876705, 0.99934911, 0.49323849,\
+-	-6.27320243, -0.00040357, 0.00024724, 7.27279886, 0.99876721, 0.99934919, 0.49323847,\
+-	-6.27320255, -0.00040352, 0.00024721, 7.27279903, 0.99876737, 0.99934928, 0.49323843,\
+-	-6.27320268, -0.00040347, 0.00024717, 7.27279921, 0.99876753, 0.99934936, 0.49323854,\
+-	-6.27320280, -0.00040341, 0.00024714, 7.27279939, 0.99876769, 0.99934944, 0.49323862,\
+-	-6.27320293, -0.00040336, 0.00024711, 7.27279957, 0.99876785, 0.99934953, 0.49323861,\
+-	-6.27320306, -0.00040331, 0.00024708, 7.27279975, 0.99876801, 0.99934961, 0.49323862,\
+-	-6.27320318, -0.00040326, 0.00024704, 7.27279993, 0.99876817, 0.99934970, 0.49323859,\
+-	-6.27320331, -0.00040320, 0.00024701, 7.27280010, 0.99876833, 0.99934978, 0.49323864,\
+-	-6.27320343, -0.00040315, 0.00024698, 7.27280028, 0.99876849, 0.99934987, 0.49323872,\
+-	-6.27320356, -0.00040310, 0.00024695, 7.27280046, 0.99876865, 0.99934995, 0.49323853,\
+-	-6.27320368, -0.00040305, 0.00024692, 7.27280064, 0.99876881, 0.99935004, 0.49323874,\
+-	-6.27320381, -0.00040299, 0.00024688, 7.27280082, 0.99876897, 0.99935012, 0.49323866,\
+-	-6.27320394, -0.00040294, 0.00024685, 7.27280099, 0.99876913, 0.99935021, 0.49323878,\
+-	-6.27320406, -0.00040289, 0.00024682, 7.27280117, 0.99876929, 0.99935029, 0.49323872,\
+-	-6.27320419, -0.00040284, 0.00024679, 7.27280135, 0.99876945, 0.99935038, 0.49323872,\
+-	-6.27320431, -0.00040278, 0.00024676, 7.27280153, 0.99876961, 0.99935046, 0.49323876,\
+-	-6.27320444, -0.00040273, 0.00024672, 7.27280171, 0.99876978, 0.99935055, 0.49323884,\
+-	-6.27320456, -0.00040268, 0.00024669, 7.27280188, 0.99876994, 0.99935063, 0.49323875,\
+-	-6.27320469, -0.00040263, 0.00024666, 7.27280206, 0.99877010, 0.99935071, 0.49323881,\
+-	-6.27320481, -0.00040257, 0.00024663, 7.27280224, 0.99877026, 0.99935080, 0.49323883,\
+-	-6.27320494, -0.00040252, 0.00024659, 7.27280242, 0.99877042, 0.99935088, 0.49323893,\
+-	-6.27320506, -0.00040247, 0.00024656, 7.27280259, 0.99877058, 0.99935097, 0.49323897,\
+-	-6.27320519, -0.00040242, 0.00024653, 7.27280277, 0.99877073, 0.99935105, 0.49323888,\
+-	-6.27320532, -0.00040237, 0.00024650, 7.27280295, 0.99877089, 0.99935114, 0.49323894,\
+-	-6.27320544, -0.00040231, 0.00024647, 7.27280313, 0.99877105, 0.99935122, 0.49323891,\
+-	-6.27320557, -0.00040226, 0.00024643, 7.27280330, 0.99877121, 0.99935130, 0.49323883,\
+-	-6.27320569, -0.00040221, 0.00024640, 7.27280348, 0.99877137, 0.99935139, 0.49323900,\
+-	-6.27320582, -0.00040216, 0.00024637, 7.27280366, 0.99877153, 0.99935147, 0.49323894,\
+-	-6.27320594, -0.00040210, 0.00024634, 7.27280384, 0.99877169, 0.99935156, 0.49323913,\
+-	-6.27320607, -0.00040205, 0.00024631, 7.27280401, 0.99877185, 0.99935164, 0.49323892,\
+-	-6.27320619, -0.00040200, 0.00024627, 7.27280419, 0.99877201, 0.99935173, 0.49323905,\
+-	-6.27320632, -0.00040195, 0.00024624, 7.27280437, 0.99877217, 0.99935181, 0.49323908,\
+-	-6.27320644, -0.00040190, 0.00024621, 7.27280455, 0.99877233, 0.99935189, 0.49323912,\
+-	-6.27320657, -0.00040184, 0.00024618, 7.27280472, 0.99877249, 0.99935198, 0.49323907,\
+-	-6.27320669, -0.00040179, 0.00024615, 7.27280490, 0.99877265, 0.99935206, 0.49323901,\
+-	-6.27320682, -0.00040174, 0.00024611, 7.27280508, 0.99877281, 0.99935215, 0.49323923,\
+-	-6.27320694, -0.00040169, 0.00024608, 7.27280525, 0.99877297, 0.99935223, 0.49323914,\
+-	-6.27320706, -0.00040163, 0.00024605, 7.27280543, 0.99877313, 0.99935231, 0.49323921,\
+-	-6.27320719, -0.00040158, 0.00024602, 7.27280561, 0.99877329, 0.99935240, 0.49323926,\
+-	-6.27320731, -0.00040153, 0.00024599, 7.27280578, 0.99877345, 0.99935248, 0.49323926,\
+-	-6.27320744, -0.00040148, 0.00024595, 7.27280596, 0.99877361, 0.99935257, 0.49323918,\
+-	-6.27320756, -0.00040143, 0.00024592, 7.27280614, 0.99877376, 0.99935265, 0.49323936,\
+-	-6.27320769, -0.00040137, 0.00024589, 7.27280631, 0.99877392, 0.99935273, 0.49323929,\
+-	-6.27320781, -0.00040132, 0.00024586, 7.27280649, 0.99877408, 0.99935282, 0.49323934,\
+-	-6.27320794, -0.00040127, 0.00024583, 7.27280667, 0.99877424, 0.99935290, 0.49323932,\
+-	-6.27320806, -0.00040122, 0.00024580, 7.27280684, 0.99877440, 0.99935299, 0.49323931,\
+-	-6.27320819, -0.00040117, 0.00024576, 7.27280702, 0.99877456, 0.99935307, 0.49323926,\
+-	-6.27320831, -0.00040111, 0.00024573, 7.27280720, 0.99877472, 0.99935315, 0.49323938,\
+-	-6.27320843, -0.00040106, 0.00024570, 7.27280737, 0.99877488, 0.99935324, 0.49323939,\
+-	-6.27320856, -0.00040101, 0.00024567, 7.27280755, 0.99877504, 0.99935332, 0.49323934,\
+-	-6.27320868, -0.00040096, 0.00024564, 7.27280773, 0.99877519, 0.99935341, 0.49323939,\
+-	-6.27320881, -0.00040091, 0.00024560, 7.27280790, 0.99877535, 0.99935349, 0.49323943,\
+-	-6.27320893, -0.00040085, 0.00024557, 7.27280808, 0.99877551, 0.99935357, 0.49323942,\
+-	-6.27320906, -0.00040080, 0.00024554, 7.27280825, 0.99877567, 0.99935366, 0.49323947,\
+-	-6.27320918, -0.00040075, 0.00024551, 7.27280843, 0.99877583, 0.99935374, 0.49323951,\
+-	-6.27320930, -0.00040070, 0.00024548, 7.27280861, 0.99877599, 0.99935382, 0.49323953,\
+-	-6.27320943, -0.00040065, 0.00024545, 7.27280878, 0.99877615, 0.99935391, 0.49323955,\
+-	-6.27320955, -0.00040059, 0.00024541, 7.27280896, 0.99877630, 0.99935399, 0.49323962,\
+-	-6.27320968, -0.00040054, 0.00024538, 7.27280913, 0.99877646, 0.99935408, 0.49323956,\
+-	-6.27320980, -0.00040049, 0.00024535, 7.27280931, 0.99877662, 0.99935416, 0.49323962,\
+-	-6.27320993, -0.00040044, 0.00024532, 7.27280949, 0.99877678, 0.99935424, 0.49323958,\
+-	-6.27321005, -0.00040039, 0.00024529, 7.27280966, 0.99877694, 0.99935433, 0.49323965,\
+-	-6.27321017, -0.00040034, 0.00024525, 7.27280984, 0.99877710, 0.99935441, 0.49323969,\
+-	-6.27321030, -0.00040028, 0.00024522, 7.27281001, 0.99877725, 0.99935449, 0.49323976,\
+-	-6.27321042, -0.00040023, 0.00024519, 7.27281019, 0.99877741, 0.99935458, 0.49323970,\
+-	-6.27321054, -0.00040018, 0.00024516, 7.27281036, 0.99877757, 0.99935466, 0.49323974,\
+-	-6.27321067, -0.00040013, 0.00024513, 7.27281054, 0.99877773, 0.99935474, 0.49323974,\
+-	-6.27321079, -0.00040008, 0.00024510, 7.27281072, 0.99877789, 0.99935483, 0.49323966,\
+-	-6.27321092, -0.00040003, 0.00024506, 7.27281089, 0.99877804, 0.99935491, 0.49323980,\
+-	-6.27321104, -0.00039997, 0.00024503, 7.27281107, 0.99877820, 0.99935499, 0.49323982,\
+-	-6.27321116, -0.00039992, 0.00024500, 7.27281124, 0.99877836, 0.99935508, 0.49323984,\
+-	-6.27321129, -0.00039987, 0.00024497, 7.27281142, 0.99877852, 0.99935516, 0.49323979,\
+-	-6.27321141, -0.00039982, 0.00024494, 7.27281159, 0.99877868, 0.99935524, 0.49323984,\
+-	-6.27321153, -0.00039977, 0.00024491, 7.27281177, 0.99877883, 0.99935533, 0.49323987,\
+-	-6.27321166, -0.00039972, 0.00024487, 7.27281194, 0.99877899, 0.99935541, 0.49323994,\
+-	-6.27321178, -0.00039966, 0.00024484, 7.27281212, 0.99877915, 0.99935549, 0.49323989,\
+-	-6.27321191, -0.00039961, 0.00024481, 7.27281229, 0.99877931, 0.99935558, 0.49323986,\
+-	-6.27321203, -0.00039956, 0.00024478, 7.27281247, 0.99877946, 0.99935566, 0.49323995,\
+-	-6.27321215, -0.00039951, 0.00024475, 7.27281264, 0.99877962, 0.99935574, 0.49323997,\
+-	-6.27321228, -0.00039946, 0.00024472, 7.27281282, 0.99877978, 0.99935583, 0.49323996,\
+-	-6.27321240, -0.00039941, 0.00024468, 7.27281299, 0.99877994, 0.99935591, 0.49323998,\
+-	-6.27321252, -0.00039935, 0.00024465, 7.27281317, 0.99878009, 0.99935599, 0.49323996,\
+-	-6.27321265, -0.00039930, 0.00024462, 7.27281334, 0.99878025, 0.99935608, 0.49324002,\
+-	-6.27321277, -0.00039925, 0.00024459, 7.27281352, 0.99878041, 0.99935616, 0.49323998,\
+-	-6.27321289, -0.00039920, 0.00024456, 7.27281369, 0.99878057, 0.99935624, 0.49324001,\
+-	-6.27321302, -0.00039915, 0.00024453, 7.27281387, 0.99878072, 0.99935632, 0.49324014,\
+-	-6.27321314, -0.00039910, 0.00024450, 7.27281404, 0.99878088, 0.99935641, 0.49324019,\
+-	-6.27321326, -0.00039905, 0.00024446, 7.27281422, 0.99878104, 0.99935649, 0.49324012,\
+-	-6.27321338, -0.00039899, 0.00024443, 7.27281439, 0.99878120, 0.99935657, 0.49324003,\
+-	-6.27321351, -0.00039894, 0.00024440, 7.27281457, 0.99878135, 0.99935666, 0.49324013,\
+-	-6.27321363, -0.00039889, 0.00024437, 7.27281474, 0.99878151, 0.99935674, 0.49324013,\
+-	-6.27321375, -0.00039884, 0.00024434, 7.27281491, 0.99878167, 0.99935682, 0.49324017,\
+-	-6.27321388, -0.00039879, 0.00024431, 7.27281509, 0.99878182, 0.99935690, 0.49324022,\
+-	-6.27321400, -0.00039874, 0.00024427, 7.27281526, 0.99878198, 0.99935699, 0.49324015,\
+-	-6.27321412, -0.00039869, 0.00024424, 7.27281544, 0.99878214, 0.99935707, 0.49324036,\
+-	-6.27321425, -0.00039863, 0.00024421, 7.27281561, 0.99878229, 0.99935715, 0.49324026,\
+-	-6.27321437, -0.00039858, 0.00024418, 7.27281579, 0.99878245, 0.99935724, 0.49324022,\
+-	-6.27321449, -0.00039853, 0.00024415, 7.27281596, 0.99878261, 0.99935732, 0.49324031,\
+-	-6.27321461, -0.00039848, 0.00024412, 7.27281613, 0.99878277, 0.99935740, 0.49324028,\
+-	-6.27321474, -0.00039843, 0.00024409, 7.27281631, 0.99878292, 0.99935748, 0.49324030,\
+-	-6.27321486, -0.00039838, 0.00024405, 7.27281648, 0.99878308, 0.99935757, 0.49324023,\
+-	-6.27321498, -0.00039833, 0.00024402, 7.27281666, 0.99878324, 0.99935765, 0.49324037,\
+-	-6.27321511, -0.00039828, 0.00024399, 7.27281683, 0.99878339, 0.99935773, 0.49324036,\
+-	-6.27321523, -0.00039822, 0.00024396, 7.27281700, 0.99878355, 0.99935782, 0.49324044,\
+-	-6.27321535, -0.00039817, 0.00024393, 7.27281718, 0.99878370, 0.99935790, 0.49324039,\
+-	-6.27321547, -0.00039812, 0.00024390, 7.27281735, 0.99878386, 0.99935798, 0.49324042,\
+-	-6.27321560, -0.00039807, 0.00024387, 7.27281752, 0.99878402, 0.99935806, 0.49324055,\
+-	-6.27321572, -0.00039802, 0.00024383, 7.27281770, 0.99878417, 0.99935815, 0.49324042,\
+-	-6.27321584, -0.00039797, 0.00024380, 7.27281787, 0.99878433, 0.99935823, 0.49324044,\
+-	-6.27321596, -0.00039792, 0.00024377, 7.27281805, 0.99878449, 0.99935831, 0.49324041,\
+-	-6.27321609, -0.00039787, 0.00024374, 7.27281822, 0.99878464, 0.99935839, 0.49324060,\
+-	-6.27321621, -0.00039781, 0.00024371, 7.27281839, 0.99878480, 0.99935848, 0.49324044,\
+-	-6.27321633, -0.00039776, 0.00024368, 7.27281857, 0.99878496, 0.99935856, 0.49324054,\
+-	-6.27321645, -0.00039771, 0.00024365, 7.27281874, 0.99878511, 0.99935864, 0.49324046,\
+-	-6.27321658, -0.00039766, 0.00024362, 7.27281891, 0.99878527, 0.99935872, 0.49324052,\
+-	-6.27321670, -0.00039761, 0.00024358, 7.27281909, 0.99878542, 0.99935881, 0.49324063,\
+-	-6.27321682, -0.00039756, 0.00024355, 7.27281926, 0.99878558, 0.99935889, 0.49324081,\
+-	-6.27321694, -0.00039751, 0.00024352, 7.27281943, 0.99878574, 0.99935897, 0.49324067,\
+-	-6.27321706, -0.00039746, 0.00024349, 7.27281961, 0.99878589, 0.99935905, 0.49324080,\
+-	-6.27321719, -0.00039741, 0.00024346, 7.27281978, 0.99878605, 0.99935913, 0.49324070,\
+-	-6.27321731, -0.00039736, 0.00024343, 7.27281995, 0.99878620, 0.99935922, 0.49324061,\
+-	-6.27321743, -0.00039730, 0.00024340, 7.27282013, 0.99878636, 0.99935930, 0.49324072,\
+-	-6.27321755, -0.00039725, 0.00024337, 7.27282030, 0.99878652, 0.99935938, 0.49324071,\
+-	-6.27321767, -0.00039720, 0.00024333, 7.27282047, 0.99878667, 0.99935946, 0.49324076,\
+-	-6.27321780, -0.00039715, 0.00024330, 7.27282064, 0.99878683, 0.99935955, 0.49324084,\
+-	-6.27321792, -0.00039710, 0.00024327, 7.27282082, 0.99878698, 0.99935963, 0.49324086,\
+-	-6.27321804, -0.00039705, 0.00024324, 7.27282099, 0.99878714, 0.99935971, 0.49324068,\
+-	-6.27321816, -0.00039700, 0.00024321, 7.27282116, 0.99878729, 0.99935979, 0.49324078,\
+-	-6.27321828, -0.00039695, 0.00024318, 7.27282134, 0.99878745, 0.99935987, 0.49324088,\
+-	-6.27321841, -0.00039690, 0.00024315, 7.27282151, 0.99878760, 0.99935996, 0.49324077,\
+-	-6.27321853, -0.00039685, 0.00024312, 7.27282168, 0.99878776, 0.99936004, 0.49324091,\
+-	-6.27321865, -0.00039680, 0.00024308, 7.27282185, 0.99878792, 0.99936012, 0.49324089,\
+-	-6.27321877, -0.00039674, 0.00024305, 7.27282203, 0.99878807, 0.99936020, 0.49324098,\
+-	-6.27321889, -0.00039669, 0.00024302, 7.27282220, 0.99878823, 0.99936028, 0.49324089,\
+-	-6.27321901, -0.00039664, 0.00024299, 7.27282237, 0.99878838, 0.99936037, 0.49324096,\
+-	-6.27321914, -0.00039659, 0.00024296, 7.27282254, 0.99878854, 0.99936045, 0.49324110,\
+-	-6.27321926, -0.00039654, 0.00024293, 7.27282272, 0.99878869, 0.99936053, 0.49324104,\
+-	-6.27321938, -0.00039649, 0.00024290, 7.27282289, 0.99878885, 0.99936061, 0.49324115,\
+-	-6.27321950, -0.00039644, 0.00024287, 7.27282306, 0.99878900, 0.99936069, 0.49324105,\
+-	-6.27321962, -0.00039639, 0.00024284, 7.27282323, 0.99878916, 0.99936078, 0.49324108,\
+-	-6.27321974, -0.00039634, 0.00024280, 7.27282341, 0.99878931, 0.99936086, 0.49324101,\
+-	-6.27321987, -0.00039629, 0.00024277, 7.27282358, 0.99878947, 0.99936094, 0.49324102,\
+-	-6.27321999, -0.00039624, 0.00024274, 7.27282375, 0.99878962, 0.99936102, 0.49324113,\
+-	-6.27322011, -0.00039619, 0.00024271, 7.27282392, 0.99878978, 0.99936110, 0.49324108,\
+-	-6.27322023, -0.00039613, 0.00024268, 7.27282409, 0.99878993, 0.99936119, 0.49324117,\
+-	-6.27322035, -0.00039608, 0.00024265, 7.27282427, 0.99879009, 0.99936127, 0.49324125,\
+-	-6.27322047, -0.00039603, 0.00024262, 7.27282444, 0.99879024, 0.99936135, 0.49324106,\
+-	-6.27322059, -0.00039598, 0.00024259, 7.27282461, 0.99879040, 0.99936143, 0.49324119,\
+-	-6.27322071, -0.00039593, 0.00024256, 7.27282478, 0.99879055, 0.99936151, 0.49324110,\
+-	-6.27322084, -0.00039588, 0.00024252, 7.27282495, 0.99879071, 0.99936159, 0.49324126,\
+-	-6.27322096, -0.00039583, 0.00024249, 7.27282513, 0.99879086, 0.99936168, 0.49324122,\
+-	-6.27322108, -0.00039578, 0.00024246, 7.27282530, 0.99879102, 0.99936176, 0.49324129,\
+-	-6.27322120, -0.00039573, 0.00024243, 7.27282547, 0.99879117, 0.99936184, 0.49324129,\
+-	-6.27322132, -0.00039568, 0.00024240, 7.27282564, 0.99879133, 0.99936192, 0.49324124,\
+-	-6.27322144, -0.00039563, 0.00024237, 7.27282581, 0.99879148, 0.99936200, 0.49324135,\
+-	-6.27322156, -0.00039558, 0.00024234, 7.27282598, 0.99879163, 0.99936208, 0.49324138,\
+-	-6.27322168, -0.00039553, 0.00024231, 7.27282616, 0.99879179, 0.99936216, 0.49324133,\
+-	-6.27322180, -0.00039548, 0.00024228, 7.27282633, 0.99879194, 0.99936225, 0.49324140,\
+-	-6.27322193, -0.00039543, 0.00024225, 7.27282650, 0.99879210, 0.99936233, 0.49324130,\
+-	-6.27322205, -0.00039538, 0.00024221, 7.27282667, 0.99879225, 0.99936241, 0.49324149,\
+-	-6.27322217, -0.00039533, 0.00024218, 7.27282684, 0.99879241, 0.99936249, 0.49324143,\
+-	-6.27322229, -0.00039528, 0.00024215, 7.27282701, 0.99879256, 0.99936257, 0.49324140,\
+-	-6.27322241, -0.00039522, 0.00024212, 7.27282718, 0.99879271, 0.99936265, 0.49324158,\
+-	-6.27322253, -0.00039517, 0.00024209, 7.27282736, 0.99879287, 0.99936273, 0.49324147,\
+-	-6.27322265, -0.00039512, 0.00024206, 7.27282753, 0.99879302, 0.99936282, 0.49324156,\
+-	-6.27322277, -0.00039507, 0.00024203, 7.27282770, 0.99879318, 0.99936290, 0.49324153,\
+-	-6.27322289, -0.00039502, 0.00024200, 7.27282787, 0.99879333, 0.99936298, 0.49324143,\
+-	-6.27322301, -0.00039497, 0.00024197, 7.27282804, 0.99879349, 0.99936306, 0.49324134,\
+-	-6.27322313, -0.00039492, 0.00024194, 7.27282821, 0.99879364, 0.99936314, 0.49324161,\
+-	-6.27322325, -0.00039487, 0.00024191, 7.27282838, 0.99879379, 0.99936322, 0.49324161,\
+-	-6.27322337, -0.00039482, 0.00024187, 7.27282855, 0.99879395, 0.99936330, 0.49324164,\
+-	-6.27322349, -0.00039477, 0.00024184, 7.27282872, 0.99879410, 0.99936339, 0.49324176,\
+-	-6.27322362, -0.00039472, 0.00024181, 7.27282889, 0.99879425, 0.99936347, 0.49324160,\
+-	-6.27322374, -0.00039467, 0.00024178, 7.27282907, 0.99879441, 0.99936355, 0.49324157,\
+-	-6.27322386, -0.00039462, 0.00024175, 7.27282924, 0.99879456, 0.99936363, 0.49324158,\
+-	-6.27322398, -0.00039457, 0.00024172, 7.27282941, 0.99879472, 0.99936371, 0.49324166,\
+-	-6.27322410, -0.00039452, 0.00024169, 7.27282958, 0.99879487, 0.99936379, 0.49324172,\
+-	-6.27322422, -0.00039447, 0.00024166, 7.27282975, 0.99879502, 0.99936387, 0.49324177,\
+-	-6.27322434, -0.00039442, 0.00024163, 7.27282992, 0.99879518, 0.99936395, 0.49324175,\
+-	-6.27322446, -0.00039437, 0.00024160, 7.27283009, 0.99879533, 0.99936403, 0.49324173,\
+-	-6.27322458, -0.00039432, 0.00024157, 7.27283026, 0.99879548, 0.99936412, 0.49324183,\
+-	-6.27322470, -0.00039427, 0.00024154, 7.27283043, 0.99879564, 0.99936420, 0.49324189,\
+-	-6.27322482, -0.00039422, 0.00024150, 7.27283060, 0.99879579, 0.99936428, 0.49324183,\
+-	-6.27322494, -0.00039417, 0.00024147, 7.27283077, 0.99879594, 0.99936436, 0.49324176,\
+-	-6.27322506, -0.00039412, 0.00024144, 7.27283094, 0.99879610, 0.99936444, 0.49324183,\
+-	-6.27322518, -0.00039407, 0.00024141, 7.27283111, 0.99879625, 0.99936452, 0.49324186,\
+-	-6.27322530, -0.00039402, 0.00024138, 7.27283128, 0.99879640, 0.99936460, 0.49324198,\
+-	-6.27322542, -0.00039397, 0.00024135, 7.27283145, 0.99879656, 0.99936468, 0.49324210,\
+-	-6.27322554, -0.00039392, 0.00024132, 7.27283162, 0.99879671, 0.99936476, 0.49324198,\
+-	-6.27322566, -0.00039387, 0.00024129, 7.27283179, 0.99879686, 0.99936484, 0.49324205,\
+-	-6.27322578, -0.00039382, 0.00024126, 7.27283196, 0.99879702, 0.99936492, 0.49324207,\
+-	-6.27322590, -0.00039377, 0.00024123, 7.27283213, 0.99879717, 0.99936501, 0.49324191,\
+-	-6.27322602, -0.00039372, 0.00024120, 7.27283230, 0.99879732, 0.99936509, 0.49324201,\
+-	-6.27322614, -0.00039367, 0.00024117, 7.27283247, 0.99879748, 0.99936517, 0.49324194,\
+-	-6.27322626, -0.00039362, 0.00024114, 7.27283264, 0.99879763, 0.99936525, 0.49324211,\
+-	-6.27322638, -0.00039357, 0.00024111, 7.27283281, 0.99879778, 0.99936533, 0.49324210,\
+-	-6.27322650, -0.00039352, 0.00024107, 7.27283298, 0.99879793, 0.99936541, 0.49324195,\
+-	-6.27322662, -0.00039347, 0.00024104, 7.27283315, 0.99879809, 0.99936549, 0.49324205,\
+-	-6.27322674, -0.00039342, 0.00024101, 7.27283332, 0.99879824, 0.99936557, 0.49324210,\
+-	-6.27322686, -0.00039337, 0.00024098, 7.27283349, 0.99879839, 0.99936565, 0.49324214,\
+-	-6.27322698, -0.00039332, 0.00024095, 7.27283366, 0.99879855, 0.99936573, 0.49324202,\
+-	-6.27322710, -0.00039327, 0.00024092, 7.27283383, 0.99879870, 0.99936581, 0.49324209,\
+-	-6.27322722, -0.00039322, 0.00024089, 7.27283400, 0.99879885, 0.99936589, 0.49324208,\
+-	-6.27322734, -0.00039317, 0.00024086, 7.27283417, 0.99879900, 0.99936597, 0.49324207,\
+-	-6.27322746, -0.00039312, 0.00024083, 7.27283434, 0.99879916, 0.99936605, 0.49324215,\
+-	-6.27322757, -0.00039307, 0.00024080, 7.27283451, 0.99879931, 0.99936613, 0.49324220,\
+-	-6.27322769, -0.00039302, 0.00024077, 7.27283468, 0.99879946, 0.99936621, 0.49324229,\
+-	-6.27322781, -0.00039297, 0.00024074, 7.27283485, 0.99879961, 0.99936630, 0.49324226,\
+-	-6.27322793, -0.00039292, 0.00024071, 7.27283502, 0.99879977, 0.99936638, 0.49324230,\
+-	-6.27322805, -0.00039287, 0.00024068, 7.27283519, 0.99879992, 0.99936646, 0.49324236,\
+-	-6.27322817, -0.00039282, 0.00024065, 7.27283535, 0.99880007, 0.99936654, 0.49324229,\
+-	-6.27322829, -0.00039277, 0.00024062, 7.27283552, 0.99880022, 0.99936662, 0.49324245,\
+-	-6.27322841, -0.00039272, 0.00024059, 7.27283569, 0.99880038, 0.99936670, 0.49324230,\
+-	-6.27322853, -0.00039267, 0.00024055, 7.27283586, 0.99880053, 0.99936678, 0.49324241,\
+-	-6.27322865, -0.00039262, 0.00024052, 7.27283603, 0.99880068, 0.99936686, 0.49324234,\
+-	-6.27322877, -0.00039257, 0.00024049, 7.27283620, 0.99880083, 0.99936694, 0.49324231,\
+-	-6.27322889, -0.00039252, 0.00024046, 7.27283637, 0.99880098, 0.99936702, 0.49324244,\
+-	-6.27322901, -0.00039247, 0.00024043, 7.27283654, 0.99880114, 0.99936710, 0.49324243,\
+-	-6.27322913, -0.00039242, 0.00024040, 7.27283671, 0.99880129, 0.99936718, 0.49324251,\
+-	-6.27322924, -0.00039237, 0.00024037, 7.27283688, 0.99880144, 0.99936726, 0.49324242,\
+-	-6.27322936, -0.00039232, 0.00024034, 7.27283704, 0.99880159, 0.99936734, 0.49324245,\
+-	-6.27322948, -0.00039227, 0.00024031, 7.27283721, 0.99880174, 0.99936742, 0.49324248,\
+-	-6.27322960, -0.00039222, 0.00024028, 7.27283738, 0.99880190, 0.99936750, 0.49324240,\
+-	-6.27322972, -0.00039217, 0.00024025, 7.27283755, 0.99880205, 0.99936758, 0.49324256,\
+-	-6.27322984, -0.00039212, 0.00024022, 7.27283772, 0.99880220, 0.99936766, 0.49324270,\
+-	-6.27322996, -0.00039207, 0.00024019, 7.27283789, 0.99880235, 0.99936774, 0.49324265,\
+-	-6.27323008, -0.00039202, 0.00024016, 7.27283806, 0.99880250, 0.99936782, 0.49324254,\
+-	-6.27323020, -0.00039197, 0.00024013, 7.27283822, 0.99880265, 0.99936790, 0.49324268,\
+-	-6.27323032, -0.00039192, 0.00024010, 7.27283839, 0.99880281, 0.99936798, 0.49324263,\
+-	-6.27323043, -0.00039187, 0.00024007, 7.27283856, 0.99880296, 0.99936806, 0.49324257,\
+-	-6.27323055, -0.00039182, 0.00024004, 7.27283873, 0.99880311, 0.99936814, 0.49324271,\
+-	-6.27323067, -0.00039177, 0.00024001, 7.27283890, 0.99880326, 0.99936822, 0.49324263,\
+-	-6.27323079, -0.00039172, 0.00023998, 7.27283907, 0.99880341, 0.99936830, 0.49324259,\
+-	-6.27323091, -0.00039167, 0.00023995, 7.27283923, 0.99880356, 0.99936838, 0.49324272,\
+-	-6.27323103, -0.00039162, 0.00023992, 7.27283940, 0.99880372, 0.99936846, 0.49324266,\
+-	-6.27323115, -0.00039158, 0.00023989, 7.27283957, 0.99880387, 0.99936854, 0.49324277,\
+-	-6.27323126, -0.00039153, 0.00023985, 7.27283974, 0.99880402, 0.99936862, 0.49324283,\
+-	-6.27323138, -0.00039148, 0.00023982, 7.27283991, 0.99880417, 0.99936870, 0.49324288,\
+-	-6.27323150, -0.00039143, 0.00023979, 7.27284008, 0.99880432, 0.99936878, 0.49324274,\
+-	-6.27323162, -0.00039138, 0.00023976, 7.27284024, 0.99880447, 0.99936886, 0.49324289,\
+-	-6.27323174, -0.00039133, 0.00023973, 7.27284041, 0.99880462, 0.99936894, 0.49324287,\
+-	-6.27323186, -0.00039128, 0.00023970, 7.27284058, 0.99880477, 0.99936902, 0.49324285,\
+-	-6.27323198, -0.00039123, 0.00023967, 7.27284075, 0.99880493, 0.99936910, 0.49324283,\
+-	-6.27323209, -0.00039118, 0.00023964, 7.27284091, 0.99880508, 0.99936918, 0.49324290,\
+-	-6.27323221, -0.00039113, 0.00023961, 7.27284108, 0.99880523, 0.99936926, 0.49324280,\
+-	-6.27323233, -0.00039108, 0.00023958, 7.27284125, 0.99880538, 0.99936934, 0.49324296,\
+-	-6.27323245, -0.00039103, 0.00023955, 7.27284142, 0.99880553, 0.99936942, 0.49324284,\
+-	-6.27323257, -0.00039098, 0.00023952, 7.27284159, 0.99880568, 0.99936950, 0.49324285,\
+-	-6.27323268, -0.00039093, 0.00023949, 7.27284175, 0.99880583, 0.99936958, 0.49324302,\
+-	-6.27323280, -0.00039088, 0.00023946, 7.27284192, 0.99880598, 0.99936966, 0.49324295,\
+-	-6.27323292, -0.00039083, 0.00023943, 7.27284209, 0.99880613, 0.99936974, 0.49324320,\
+-	-6.27323304, -0.00039078, 0.00023940, 7.27284226, 0.99880628, 0.99936982, 0.49324315,\
+-	-6.27323316, -0.00039073, 0.00023937, 7.27284242, 0.99880643, 0.99936990, 0.49324296,\
+-	-6.27323328, -0.00039069, 0.00023934, 7.27284259, 0.99880658, 0.99936997, 0.49324298,\
+-	-6.27323339, -0.00039064, 0.00023931, 7.27284276, 0.99880674, 0.99937005, 0.49324310,\
+-	-6.27323351, -0.00039059, 0.00023928, 7.27284292, 0.99880689, 0.99937013, 0.49324316,\
+-	-6.27323363, -0.00039054, 0.00023925, 7.27284309, 0.99880704, 0.99937021, 0.49324305,\
+-	-6.27323375, -0.00039049, 0.00023922, 7.27284326, 0.99880719, 0.99937029, 0.49324317,\
+-	-6.27323387, -0.00039044, 0.00023919, 7.27284343, 0.99880734, 0.99937037, 0.49324316,\
+-	-6.27323398, -0.00039039, 0.00023916, 7.27284359, 0.99880749, 0.99937045, 0.49324322,\
+-	-6.27323410, -0.00039034, 0.00023913, 7.27284376, 0.99880764, 0.99937053, 0.49324310,\
+-	-6.27323422, -0.00039029, 0.00023910, 7.27284393, 0.99880779, 0.99937061, 0.49324325,\
+-	-6.27323434, -0.00039024, 0.00023907, 7.27284409, 0.99880794, 0.99937069, 0.49324319,\
+-	-6.27323445, -0.00039019, 0.00023904, 7.27284426, 0.99880809, 0.99937077, 0.49324326,\
+-	-6.27323457, -0.00039014, 0.00023901, 7.27284443, 0.99880824, 0.99937085, 0.49324329,\
+-	-6.27323469, -0.00039009, 0.00023898, 7.27284460, 0.99880839, 0.99937093, 0.49324333,\
+-	-6.27323481, -0.00039005, 0.00023895, 7.27284476, 0.99880854, 0.99937101, 0.49324318,\
+-	-6.27323493, -0.00039000, 0.00023892, 7.27284493, 0.99880869, 0.99937109, 0.49324318,\
+-	-6.27323504, -0.00038995, 0.00023889, 7.27284510, 0.99880884, 0.99937117, 0.49324337,\
+-	-6.27323516, -0.00038990, 0.00023886, 7.27284526, 0.99880899, 0.99937124, 0.49324337,\
+-	-6.27323528, -0.00038985, 0.00023883, 7.27284543, 0.99880914, 0.99937132, 0.49324350,\
+-	-6.27323540, -0.00038980, 0.00023880, 7.27284560, 0.99880929, 0.99937140, 0.49324334,\
+-	-6.27323551, -0.00038975, 0.00023877, 7.27284576, 0.99880944, 0.99937148, 0.49324341,\
+-	-6.27323563, -0.00038970, 0.00023874, 7.27284593, 0.99880959, 0.99937156, 0.49324338,\
+-	-6.27323575, -0.00038965, 0.00023871, 7.27284609, 0.99880974, 0.99937164, 0.49324344,\
+-	-6.27323587, -0.00038960, 0.00023868, 7.27284626, 0.99880989, 0.99937172, 0.49324362,\
+-	-6.27323598, -0.00038955, 0.00023865, 7.27284643, 0.99881004, 0.99937180, 0.49324347,\
+-	-6.27323610, -0.00038951, 0.00023862, 7.27284659, 0.99881019, 0.99937188, 0.49324345,\
+-	-6.27323622, -0.00038946, 0.00023859, 7.27284676, 0.99881034, 0.99937196, 0.49324353,\
+-	-6.27323633, -0.00038941, 0.00023856, 7.27284693, 0.99881049, 0.99937204, 0.49324361,\
+-	-6.27323645, -0.00038936, 0.00023853, 7.27284709, 0.99881064, 0.99937211, 0.49324364,\
+-	-6.27323657, -0.00038931, 0.00023850, 7.27284726, 0.99881079, 0.99937219, 0.49324360,\
+-	-6.27323669, -0.00038926, 0.00023847, 7.27284743, 0.99881094, 0.99937227, 0.49324354,\
+-	-6.27323680, -0.00038921, 0.00023844, 7.27284759, 0.99881109, 0.99937235, 0.49324359,\
+-	-6.27323692, -0.00038916, 0.00023841, 7.27284776, 0.99881124, 0.99937243, 0.49324355,\
+-	-6.27323704, -0.00038911, 0.00023838, 7.27284792, 0.99881139, 0.99937251, 0.49324369,\
+-	-6.27323715, -0.00038907, 0.00023835, 7.27284809, 0.99881154, 0.99937259, 0.49324366,\
+-	-6.27323727, -0.00038902, 0.00023832, 7.27284826, 0.99881169, 0.99937267, 0.49324363,\
+-	-6.27323739, -0.00038897, 0.00023829, 7.27284842, 0.99881184, 0.99937275, 0.49324368,\
+-	-6.27323751, -0.00038892, 0.00023826, 7.27284859, 0.99881198, 0.99937282, 0.49324385,\
+-	-6.27323762, -0.00038887, 0.00023823, 7.27284875, 0.99881213, 0.99937290, 0.49324375,\
+-	-6.27323774, -0.00038882, 0.00023820, 7.27284892, 0.99881228, 0.99937298, 0.49324381,\
+-	-6.27323786, -0.00038877, 0.00023817, 7.27284908, 0.99881243, 0.99937306, 0.49324383,\
+-	-6.27323797, -0.00038872, 0.00023814, 7.27284925, 0.99881258, 0.99937314, 0.49324389,\
+-	-6.27323809, -0.00038867, 0.00023811, 7.27284942, 0.99881273, 0.99937322, 0.49324387,\
+-	-6.27323821, -0.00038863, 0.00023808, 7.27284958, 0.99881288, 0.99937330, 0.49324385,\
+-	-6.27323832, -0.00038858, 0.00023805, 7.27284975, 0.99881303, 0.99937338, 0.49324378,\
+-	-6.27323844, -0.00038853, 0.00023802, 7.27284991, 0.99881318, 0.99937345, 0.49324377,\
+-	-6.27323856, -0.00038848, 0.00023799, 7.27285008, 0.99881333, 0.99937353, 0.49324388,\
+-	-6.27323867, -0.00038843, 0.00023796, 7.27285024, 0.99881348, 0.99937361, 0.49324392,\
+-	-6.27323879, -0.00038838, 0.00023793, 7.27285041, 0.99881362, 0.99937369, 0.49324396,\
+-	-6.27323891, -0.00038833, 0.00023790, 7.27285057, 0.99881377, 0.99937377, 0.49324387,\
+-	-6.27323902, -0.00038828, 0.00023787, 7.27285074, 0.99881392, 0.99937385, 0.49324395,\
+-	-6.27323914, -0.00038824, 0.00023784, 7.27285090, 0.99881407, 0.99937393, 0.49324401,\
+-	-6.27323926, -0.00038819, 0.00023781, 7.27285107, 0.99881422, 0.99937400, 0.49324397,\
+-	-6.27323937, -0.00038814, 0.00023778, 7.27285124, 0.99881437, 0.99937408, 0.49324409,\
+-	-6.27323949, -0.00038809, 0.00023775, 7.27285140, 0.99881452, 0.99937416, 0.49324390,\
+-	-6.27323961, -0.00038804, 0.00023772, 7.27285157, 0.99881467, 0.99937424, 0.49324412,\
+-	-6.27323972, -0.00038799, 0.00023769, 7.27285173, 0.99881481, 0.99937432, 0.49324405,\
+-	-6.27323984, -0.00038794, 0.00023766, 7.27285190, 0.99881496, 0.99937440, 0.49324413,\
+-	-6.27323996, -0.00038789, 0.00023763, 7.27285206, 0.99881511, 0.99937448, 0.49324398,\
+-	-6.27324007, -0.00038785, 0.00023760, 7.27285223, 0.99881526, 0.99937455, 0.49324408,\
+-	-6.27324019, -0.00038780, 0.00023757, 7.27285239, 0.99881541, 0.99937463, 0.49324411,\
+-	-6.27324030, -0.00038775, 0.00023754, 7.27285256, 0.99881556, 0.99937471, 0.49324404,\
+-	-6.27324042, -0.00038770, 0.00023751, 7.27285272, 0.99881571, 0.99937479, 0.49324417,\
+-	-6.27324054, -0.00038765, 0.00023748, 7.27285289, 0.99881585, 0.99937487, 0.49324417,\
+-	-6.27324065, -0.00038760, 0.00023745, 7.27285305, 0.99881600, 0.99937495, 0.49324417,\
+-	-6.27324077, -0.00038755, 0.00023742, 7.27285321, 0.99881615, 0.99937502, 0.49324410,\
+-	-6.27324089, -0.00038751, 0.00023739, 7.27285338, 0.99881630, 0.99937510, 0.49324415,\
+-	-6.27324100, -0.00038746, 0.00023736, 7.27285354, 0.99881645, 0.99937518, 0.49324415,\
+-	-6.27324112, -0.00038741, 0.00023733, 7.27285371, 0.99881660, 0.99937526, 0.49324428,\
+-	-6.27324123, -0.00038736, 0.00023730, 7.27285387, 0.99881674, 0.99937534, 0.49324427,\
+-	-6.27324135, -0.00038731, 0.00023727, 7.27285404, 0.99881689, 0.99937541, 0.49324429,\
+-	-6.27324147, -0.00038726, 0.00023724, 7.27285420, 0.99881704, 0.99937549, 0.49324429,\
+-	-6.27324158, -0.00038722, 0.00023721, 7.27285437, 0.99881719, 0.99937557, 0.49324431,\
+-	-6.27324170, -0.00038717, 0.00023718, 7.27285453, 0.99881734, 0.99937565, 0.49324418,\
+-	-6.27324181, -0.00038712, 0.00023715, 7.27285469, 0.99881748, 0.99937573, 0.49324436,\
+-	-6.27324193, -0.00038707, 0.00023712, 7.27285486, 0.99881763, 0.99937581, 0.49324427,\
+-	-6.27324205, -0.00038702, 0.00023709, 7.27285502, 0.99881778, 0.99937588, 0.49324438,\
+-	-6.27324216, -0.00038697, 0.00023706, 7.27285519, 0.99881793, 0.99937596, 0.49324441,\
+-	-6.27324228, -0.00038693, 0.00023704, 7.27285535, 0.99881807, 0.99937604, 0.49324425,\
+-	-6.27324239, -0.00038688, 0.00023701, 7.27285552, 0.99881822, 0.99937612, 0.49324444,\
+-	-6.27324251, -0.00038683, 0.00023698, 7.27285568, 0.99881837, 0.99937620, 0.49324437,\
+-	-6.27324262, -0.00038678, 0.00023695, 7.27285584, 0.99881852, 0.99937627, 0.49324451,\
+-	-6.27324274, -0.00038673, 0.00023692, 7.27285601, 0.99881867, 0.99937635, 0.49324443,\
+-	-6.27324286, -0.00038668, 0.00023689, 7.27285617, 0.99881881, 0.99937643, 0.49324463,\
+-	-6.27324297, -0.00038664, 0.00023686, 7.27285634, 0.99881896, 0.99937651, 0.49324464,\
+-	-6.27324309, -0.00038659, 0.00023683, 7.27285650, 0.99881911, 0.99937659, 0.49324460,\
+-	-6.27324320, -0.00038654, 0.00023680, 7.27285666, 0.99881926, 0.99937666, 0.49324474,\
+-	-6.27324332, -0.00038649, 0.00023677, 7.27285683, 0.99881940, 0.99937674, 0.49324457,\
+-	-6.27324343, -0.00038644, 0.00023674, 7.27285699, 0.99881955, 0.99937682, 0.49324464,\
+-	-6.27324355, -0.00038639, 0.00023671, 7.27285716, 0.99881970, 0.99937690, 0.49324452,\
+-	-6.27324366, -0.00038635, 0.00023668, 7.27285732, 0.99881985, 0.99937697, 0.49324451,\
+-	-6.27324378, -0.00038630, 0.00023665, 7.27285748, 0.99881999, 0.99937705, 0.49324463,\
+-	-6.27324390, -0.00038625, 0.00023662, 7.27285765, 0.99882014, 0.99937713, 0.49324460,\
+-	-6.27324401, -0.00038620, 0.00023659, 7.27285781, 0.99882029, 0.99937721, 0.49324461,\
+-	-6.27324413, -0.00038615, 0.00023656, 7.27285797, 0.99882043, 0.99937729, 0.49324473,\
+-	-6.27324424, -0.00038610, 0.00023653, 7.27285814, 0.99882058, 0.99937736, 0.49324474,\
+-	-6.27324436, -0.00038606, 0.00023650, 7.27285830, 0.99882073, 0.99937744, 0.49324465,\
+-	-6.27324447, -0.00038601, 0.00023647, 7.27285846, 0.99882088, 0.99937752, 0.49324475,\
+-	-6.27324459, -0.00038596, 0.00023644, 7.27285863, 0.99882102, 0.99937760, 0.49324482,\
+-	-6.27324470, -0.00038591, 0.00023641, 7.27285879, 0.99882117, 0.99937767, 0.49324468,\
+-	-6.27324482, -0.00038586, 0.00023638, 7.27285895, 0.99882132, 0.99937775, 0.49324472,\
+-	-6.27324493, -0.00038582, 0.00023636, 7.27285912, 0.99882146, 0.99937783, 0.49324478,\
+-	-6.27324505, -0.00038577, 0.00023633, 7.27285928, 0.99882161, 0.99937791, 0.49324486,\
+-	-6.27324516, -0.00038572, 0.00023630, 7.27285944, 0.99882176, 0.99937798, 0.49324500,\
+-	-6.27324528, -0.00038567, 0.00023627, 7.27285961, 0.99882190, 0.99937806, 0.49324482,\
+-	-6.27324539, -0.00038562, 0.00023624, 7.27285977, 0.99882205, 0.99937814, 0.49324496,\
+-	-6.27324551, -0.00038558, 0.00023621, 7.27285993, 0.99882220, 0.99937822, 0.49324495,\
+-	-6.27324562, -0.00038553, 0.00023618, 7.27286009, 0.99882234, 0.99937829, 0.49324492,\
+-	-6.27324574, -0.00038548, 0.00023615, 7.27286026, 0.99882249, 0.99937837, 0.49324476,\
+-	-6.27324585, -0.00038543, 0.00023612, 7.27286042, 0.99882264, 0.99937845, 0.49324499,\
+-	-6.27324597, -0.00038538, 0.00023609, 7.27286058, 0.99882278, 0.99937853, 0.49324495,\
+-	-6.27324608, -0.00038534, 0.00023606, 7.27286075, 0.99882293, 0.99937860, 0.49324497,\
+-	-6.27324620, -0.00038529, 0.00023603, 7.27286091, 0.99882308, 0.99937868, 0.49324499,\
+-	-6.27324631, -0.00038524, 0.00023600, 7.27286107, 0.99882322, 0.99937876, 0.49324496,\
+-	-6.27324643, -0.00038519, 0.00023597, 7.27286123, 0.99882337, 0.99937884, 0.49324507,\
+-	-6.27324654, -0.00038514, 0.00023594, 7.27286140, 0.99882352, 0.99937891, 0.49324506,\
+-	-6.27324666, -0.00038510, 0.00023591, 7.27286156, 0.99882366, 0.99937899, 0.49324519,\
+-	-6.27324677, -0.00038505, 0.00023588, 7.27286172, 0.99882381, 0.99937907, 0.49324510,\
+-	-6.27324689, -0.00038500, 0.00023586, 7.27286188, 0.99882396, 0.99937914, 0.49324509,\
+-	-6.27324700, -0.00038495, 0.00023583, 7.27286205, 0.99882410, 0.99937922, 0.49324510,\
+-	-6.27324711, -0.00038490, 0.00023580, 7.27286221, 0.99882425, 0.99937930, 0.49324517,\
+-	-6.27324723, -0.00038486, 0.00023577, 7.27286237, 0.99882440, 0.99937938, 0.49324527,\
+-	-6.27324734, -0.00038481, 0.00023574, 7.27286253, 0.99882454, 0.99937945, 0.49324519,\
+-	-6.27324746, -0.00038476, 0.00023571, 7.27286270, 0.99882469, 0.99937953, 0.49324516,\
+-	-6.27324757, -0.00038471, 0.00023568, 7.27286286, 0.99882483, 0.99937961, 0.49324513,\
+-	-6.27324769, -0.00038467, 0.00023565, 7.27286302, 0.99882498, 0.99937968, 0.49324519,\
+-	-6.27324780, -0.00038462, 0.00023562, 7.27286318, 0.99882513, 0.99937976, 0.49324509,\
+-	-6.27324792, -0.00038457, 0.00023559, 7.27286335, 0.99882527, 0.99937984, 0.49324532,\
+-	-6.27324803, -0.00038452, 0.00023556, 7.27286351, 0.99882542, 0.99937992, 0.49324518,\
+-	-6.27324814, -0.00038447, 0.00023553, 7.27286367, 0.99882556, 0.99937999, 0.49324537,\
+-	-6.27324826, -0.00038443, 0.00023550, 7.27286383, 0.99882571, 0.99938007, 0.49324536,\
+-	-6.27324837, -0.00038438, 0.00023547, 7.27286399, 0.99882586, 0.99938015, 0.49324540,\
+-	-6.27324849, -0.00038433, 0.00023545, 7.27286416, 0.99882600, 0.99938022, 0.49324531,\
+-	-6.27324860, -0.00038428, 0.00023542, 7.27286432, 0.99882615, 0.99938030, 0.49324544,\
+-	-6.27324872, -0.00038424, 0.00023539, 7.27286448, 0.99882629, 0.99938038, 0.49324534,\
+-	-6.27324883, -0.00038419, 0.00023536, 7.27286464, 0.99882644, 0.99938045, 0.49324551,\
+-	-6.27324894, -0.00038414, 0.00023533, 7.27286480, 0.99882658, 0.99938053, 0.49324541,\
+-	-6.27324906, -0.00038409, 0.00023530, 7.27286497, 0.99882673, 0.99938061, 0.49324551,\
+-	-6.27324917, -0.00038405, 0.00023527, 7.27286513, 0.99882688, 0.99938068, 0.49324541,\
+-	-6.27324929, -0.00038400, 0.00023524, 7.27286529, 0.99882702, 0.99938076, 0.49324543,\
+-	-6.27324940, -0.00038395, 0.00023521, 7.27286545, 0.99882717, 0.99938084, 0.49324548,\
+-	-6.27324951, -0.00038390, 0.00023518, 7.27286561, 0.99882731, 0.99938092, 0.49324547,\
+-	-6.27324963, -0.00038385, 0.00023515, 7.27286577, 0.99882746, 0.99938099, 0.49324552,\
+-	-6.27324974, -0.00038381, 0.00023512, 7.27286594, 0.99882760, 0.99938107, 0.49324561,\
+-	-6.27324986, -0.00038376, 0.00023509, 7.27286610, 0.99882775, 0.99938115, 0.49324575,\
+-	-6.27324997, -0.00038371, 0.00023507, 7.27286626, 0.99882789, 0.99938122, 0.49324555,\
+-	-6.27325008, -0.00038366, 0.00023504, 7.27286642, 0.99882804, 0.99938130, 0.49324561,\
+-	-6.27325020, -0.00038362, 0.00023501, 7.27286658, 0.99882818, 0.99938138, 0.49324560,\
+-	-6.27325031, -0.00038357, 0.00023498, 7.27286674, 0.99882833, 0.99938145, 0.49324567,\
+-	-6.27325043, -0.00038352, 0.00023495, 7.27286690, 0.99882847, 0.99938153, 0.49324557,\
+-	-6.27325054, -0.00038347, 0.00023492, 7.27286706, 0.99882862, 0.99938161, 0.49324572,\
+-	-6.27325065, -0.00038343, 0.00023489, 7.27286723, 0.99882877, 0.99938168, 0.49324570,\
+-	-6.27325077, -0.00038338, 0.00023486, 7.27286739, 0.99882891, 0.99938176, 0.49324576,\
+-	-6.27325088, -0.00038333, 0.00023483, 7.27286755, 0.99882906, 0.99938184, 0.49324591,\
+-	-6.27325099, -0.00038328, 0.00023480, 7.27286771, 0.99882920, 0.99938191, 0.49324569,\
+-	-6.27325111, -0.00038324, 0.00023477, 7.27286787, 0.99882935, 0.99938199, 0.49324559,\
+-	-6.27325122, -0.00038319, 0.00023475, 7.27286803, 0.99882949, 0.99938207, 0.49324564,\
+-	-6.27325133, -0.00038314, 0.00023472, 7.27286819, 0.99882964, 0.99938214, 0.49324576,\
+-	-6.27325145, -0.00038309, 0.00023469, 7.27286835, 0.99882978, 0.99938222, 0.49324581,\
+-	-6.27325156, -0.00038305, 0.00023466, 7.27286851, 0.99882993, 0.99938229, 0.49324590,\
+-	-6.27325168, -0.00038300, 0.00023463, 7.27286868, 0.99883007, 0.99938237, 0.49324573,\
+-	-6.27325179, -0.00038295, 0.00023460, 7.27286884, 0.99883021, 0.99938245, 0.49324578,\
+-	-6.27325190, -0.00038291, 0.00023457, 7.27286900, 0.99883036, 0.99938252, 0.49324585,\
+-	-6.27325202, -0.00038286, 0.00023454, 7.27286916, 0.99883050, 0.99938260, 0.49324579,\
+-	-6.27325213, -0.00038281, 0.00023451, 7.27286932, 0.99883065, 0.99938268, 0.49324589,\
+-	-6.27325224, -0.00038276, 0.00023448, 7.27286948, 0.99883079, 0.99938275, 0.49324588,\
+-	-6.27325236, -0.00038272, 0.00023446, 7.27286964, 0.99883094, 0.99938283, 0.49324586,\
+-	-6.27325247, -0.00038267, 0.00023443, 7.27286980, 0.99883108, 0.99938291, 0.49324588,\
+-	-6.27325258, -0.00038262, 0.00023440, 7.27286996, 0.99883123, 0.99938298, 0.49324600,\
+-	-6.27325269, -0.00038257, 0.00023437, 7.27287012, 0.99883137, 0.99938306, 0.49324602,\
+-	-6.27325281, -0.00038253, 0.00023434, 7.27287028, 0.99883152, 0.99938313, 0.49324593,\
+-	-6.27325292, -0.00038248, 0.00023431, 7.27287044, 0.99883166, 0.99938321, 0.49324600,\
+-	-6.27325303, -0.00038243, 0.00023428, 7.27287060, 0.99883180, 0.99938329, 0.49324594,\
+-	-6.27325315, -0.00038238, 0.00023425, 7.27287076, 0.99883195, 0.99938336, 0.49324594,\
+-	-6.27325326, -0.00038234, 0.00023422, 7.27287092, 0.99883209, 0.99938344, 0.49324616,\
+-	-6.27325337, -0.00038229, 0.00023419, 7.27287108, 0.99883224, 0.99938352, 0.49324609,\
+-	-6.27325349, -0.00038224, 0.00023417, 7.27287124, 0.99883238, 0.99938359, 0.49324615,\
+-	-6.27325360, -0.00038220, 0.00023414, 7.27287140, 0.99883253, 0.99938367, 0.49324616,\
+-	-6.27325371, -0.00038215, 0.00023411, 7.27287156, 0.99883267, 0.99938374, 0.49324616,\
+-	-6.27325383, -0.00038210, 0.00023408, 7.27287172, 0.99883281, 0.99938382, 0.49324603,\
+-	-6.27325394, -0.00038205, 0.00023405, 7.27287188, 0.99883296, 0.99938390, 0.49324614,\
+-	-6.27325405, -0.00038201, 0.00023402, 7.27287204, 0.99883310, 0.99938397, 0.49324629,\
+-	-6.27325416, -0.00038196, 0.00023399, 7.27287220, 0.99883325, 0.99938405, 0.49324628,\
+-	-6.27325428, -0.00038191, 0.00023396, 7.27287236, 0.99883339, 0.99938412, 0.49324634,\
+-	-6.27325439, -0.00038187, 0.00023393, 7.27287252, 0.99883353, 0.99938420, 0.49324618,\
+-	-6.27325450, -0.00038182, 0.00023391, 7.27287268, 0.99883368, 0.99938428, 0.49324620,\
+-	-6.27325462, -0.00038177, 0.00023388, 7.27287284, 0.99883382, 0.99938435, 0.49324621,\
+-	-6.27325473, -0.00038172, 0.00023385, 7.27287300, 0.99883397, 0.99938443, 0.49324620,\
+-	-6.27325484, -0.00038168, 0.00023382, 7.27287316, 0.99883411, 0.99938450, 0.49324631,\
+-	-6.27325495, -0.00038163, 0.00023379, 7.27287332, 0.99883425, 0.99938458, 0.49324616,\
+-	-6.27325507, -0.00038158, 0.00023376, 7.27287348, 0.99883440, 0.99938466, 0.49324629,\
+-	-6.27325518, -0.00038154, 0.00023373, 7.27287364, 0.99883454, 0.99938473, 0.49324635,\
+-	-6.27325529, -0.00038149, 0.00023370, 7.27287380, 0.99883469, 0.99938481, 0.49324648,\
+-	-6.27325540, -0.00038144, 0.00023367, 7.27287396, 0.99883483, 0.99938488, 0.49324638,\
+-	-6.27325552, -0.00038140, 0.00023365, 7.27287412, 0.99883497, 0.99938496, 0.49324637,\
+-	-6.27325563, -0.00038135, 0.00023362, 7.27287428, 0.99883512, 0.99938503, 0.49324641,\
+-	-6.27325574, -0.00038130, 0.00023359, 7.27287444, 0.99883526, 0.99938511, 0.49324645,\
+-	-6.27325585, -0.00038125, 0.00023356, 7.27287460, 0.99883540, 0.99938519, 0.49324647,\
+-	-6.27325597, -0.00038121, 0.00023353, 7.27287476, 0.99883555, 0.99938526, 0.49324642,\
+-	-6.27325608, -0.00038116, 0.00023350, 7.27287492, 0.99883569, 0.99938534, 0.49324651,\
+-	-6.27325619, -0.00038111, 0.00023347, 7.27287508, 0.99883583, 0.99938541, 0.49324649,\
+-	-6.27325630, -0.00038107, 0.00023344, 7.27287524, 0.99883598, 0.99938549, 0.49324647,\
+-	-6.27325642, -0.00038102, 0.00023342, 7.27287540, 0.99883612, 0.99938556, 0.49324658,\
+-	-6.27325653, -0.00038097, 0.00023339, 7.27287555, 0.99883626, 0.99938564, 0.49324664,\
+-	-6.27325664, -0.00038093, 0.00023336, 7.27287571, 0.99883641, 0.99938572, 0.49324649,\
+-	-6.27325675, -0.00038088, 0.00023333, 7.27287587, 0.99883655, 0.99938579, 0.49324658,\
+-	-6.27325686, -0.00038083, 0.00023330, 7.27287603, 0.99883669, 0.99938587, 0.49324653,\
+-	-6.27325698, -0.00038079, 0.00023327, 7.27287619, 0.99883684, 0.99938594, 0.49324658,\
+-	-6.27325709, -0.00038074, 0.00023324, 7.27287635, 0.99883698, 0.99938602, 0.49324649,\
+-	-6.27325720, -0.00038069, 0.00023321, 7.27287651, 0.99883712, 0.99938609, 0.49324663,\
+-	-6.27325731, -0.00038065, 0.00023319, 7.27287667, 0.99883727, 0.99938617, 0.49324670,\
+-	-6.27325742, -0.00038060, 0.00023316, 7.27287683, 0.99883741, 0.99938624, 0.49324665,\
+-	-6.27325754, -0.00038055, 0.00023313, 7.27287699, 0.99883755, 0.99938632, 0.49324681,\
+-	-6.27325765, -0.00038050, 0.00023310, 7.27287714, 0.99883769, 0.99938640, 0.49324678,\
+-	-6.27325776, -0.00038046, 0.00023307, 7.27287730, 0.99883784, 0.99938647, 0.49324668,\
+-	-6.27325787, -0.00038041, 0.00023304, 7.27287746, 0.99883798, 0.99938655, 0.49324676,\
+-	-6.27325798, -0.00038036, 0.00023301, 7.27287762, 0.99883812, 0.99938662, 0.49324679,\
+-	-6.27325810, -0.00038032, 0.00023299, 7.27287778, 0.99883827, 0.99938670, 0.49324680,\
+-	-6.27325821, -0.00038027, 0.00023296, 7.27287794, 0.99883841, 0.99938677, 0.49324686,\
+-	-6.27325832, -0.00038022, 0.00023293, 7.27287810, 0.99883855, 0.99938685, 0.49324703,\
+-	-6.27325843, -0.00038018, 0.00023290, 7.27287825, 0.99883869, 0.99938692, 0.49324683,\
+-	-6.27325854, -0.00038013, 0.00023287, 7.27287841, 0.99883884, 0.99938700, 0.49324688,\
+-	-6.27325866, -0.00038008, 0.00023284, 7.27287857, 0.99883898, 0.99938707, 0.49324687,\
+-	-6.27325877, -0.00038004, 0.00023281, 7.27287873, 0.99883912, 0.99938715, 0.49324692,\
+-	-6.27325888, -0.00037999, 0.00023279, 7.27287889, 0.99883926, 0.99938722, 0.49324678,\
+-	-6.27325899, -0.00037994, 0.00023276, 7.27287905, 0.99883941, 0.99938730, 0.49324693,\
+-	-6.27325910, -0.00037990, 0.00023273, 7.27287920, 0.99883955, 0.99938737, 0.49324693,\
+-	-6.27325921, -0.00037985, 0.00023270, 7.27287936, 0.99883969, 0.99938745, 0.49324695,\
+-	-6.27325932, -0.00037980, 0.00023267, 7.27287952, 0.99883983, 0.99938752, 0.49324704,\
+-	-6.27325944, -0.00037976, 0.00023264, 7.27287968, 0.99883998, 0.99938760, 0.49324699,\
+-	-6.27325955, -0.00037971, 0.00023261, 7.27287984, 0.99884012, 0.99938768, 0.49324702,\
+-	-6.27325966, -0.00037966, 0.00023259, 7.27287999, 0.99884026, 0.99938775, 0.49324694,\
+-	-6.27325977, -0.00037962, 0.00023256, 7.27288015, 0.99884040, 0.99938783, 0.49324708,\
+-	-6.27325988, -0.00037957, 0.00023253, 7.27288031, 0.99884055, 0.99938790, 0.49324716,\
+-	-6.27325999, -0.00037953, 0.00023250, 7.27288047, 0.99884069, 0.99938798, 0.49324712,\
+-	-6.27326011, -0.00037948, 0.00023247, 7.27288063, 0.99884083, 0.99938805, 0.49324715,\
+-	-6.27326022, -0.00037943, 0.00023244, 7.27288078, 0.99884097, 0.99938813, 0.49324707,\
+-	-6.27326033, -0.00037939, 0.00023241, 7.27288094, 0.99884111, 0.99938820, 0.49324704,\
+-	-6.27326044, -0.00037934, 0.00023239, 7.27288110, 0.99884126, 0.99938828, 0.49324718,\
+-	-6.27326055, -0.00037929, 0.00023236, 7.27288126, 0.99884140, 0.99938835, 0.49324714,\
+-	-6.27326066, -0.00037925, 0.00023233, 7.27288142, 0.99884154, 0.99938843, 0.49324726,\
+-	-6.27326077, -0.00037920, 0.00023230, 7.27288157, 0.99884168, 0.99938850, 0.49324702,\
+-	-6.27326088, -0.00037915, 0.00023227, 7.27288173, 0.99884182, 0.99938858, 0.49324721,\
+-	-6.27326100, -0.00037911, 0.00023224, 7.27288189, 0.99884197, 0.99938865, 0.49324723,\
+-	-6.27326111, -0.00037906, 0.00023221, 7.27288205, 0.99884211, 0.99938873, 0.49324718,\
+-	-6.27326122, -0.00037901, 0.00023219, 7.27288220, 0.99884225, 0.99938880, 0.49324712,\
+-	-6.27326133, -0.00037897, 0.00023216, 7.27288236, 0.99884239, 0.99938887, 0.49324742,\
+-	-6.27326144, -0.00037892, 0.00023213, 7.27288252, 0.99884253, 0.99938895, 0.49324731,\
+-	-6.27326155, -0.00037887, 0.00023210, 7.27288268, 0.99884267, 0.99938902, 0.49324731,\
+-	-6.27326166, -0.00037883, 0.00023207, 7.27288283, 0.99884282, 0.99938910, 0.49324735,\
+-	-6.27326177, -0.00037878, 0.00023204, 7.27288299, 0.99884296, 0.99938917, 0.49324724,\
+-	-6.27326188, -0.00037874, 0.00023202, 7.27288315, 0.99884310, 0.99938925, 0.49324733,\
+-	-6.27326199, -0.00037869, 0.00023199, 7.27288331, 0.99884324, 0.99938932, 0.49324726,\
+-	-6.27326211, -0.00037864, 0.00023196, 7.27288346, 0.99884338, 0.99938940, 0.49324734,\
+-	-6.27326222, -0.00037860, 0.00023193, 7.27288362, 0.99884352, 0.99938947, 0.49324737,\
+-	-6.27326233, -0.00037855, 0.00023190, 7.27288378, 0.99884367, 0.99938955, 0.49324746,\
+-	-6.27326244, -0.00037850, 0.00023187, 7.27288393, 0.99884381, 0.99938962, 0.49324742,\
+-	-6.27326255, -0.00037846, 0.00023185, 7.27288409, 0.99884395, 0.99938970, 0.49324750,\
+-	-6.27326266, -0.00037841, 0.00023182, 7.27288425, 0.99884409, 0.99938977, 0.49324754,\
+-	-6.27326277, -0.00037837, 0.00023179, 7.27288441, 0.99884423, 0.99938985, 0.49324741,\
+-	-6.27326288, -0.00037832, 0.00023176, 7.27288456, 0.99884437, 0.99938992, 0.49324760,\
+-	-6.27326299, -0.00037827, 0.00023173, 7.27288472, 0.99884451, 0.99939000, 0.49324751,\
+-	-6.27326310, -0.00037823, 0.00023170, 7.27288488, 0.99884466, 0.99939007, 0.49324747,\
+-	-6.27326321, -0.00037818, 0.00023168, 7.27288503, 0.99884480, 0.99939014, 0.49324756,\
+-	-6.27326332, -0.00037813, 0.00023165, 7.27288519, 0.99884494, 0.99939022, 0.49324744,\
+-	-6.27326343, -0.00037809, 0.00023162, 7.27288535, 0.99884508, 0.99939029, 0.49324765,\
+-	-6.27326354, -0.00037804, 0.00023159, 7.27288550, 0.99884522, 0.99939037, 0.49324755,\
+-	-6.27326366, -0.00037800, 0.00023156, 7.27288566, 0.99884536, 0.99939044, 0.49324760,\
+-	-6.27326377, -0.00037795, 0.00023153, 7.27288582, 0.99884550, 0.99939052, 0.49324764,\
+-	-6.27326388, -0.00037790, 0.00023151, 7.27288597, 0.99884564, 0.99939059, 0.49324764,\
+-	-6.27326399, -0.00037786, 0.00023148, 7.27288613, 0.99884578, 0.99939067, 0.49324768,\
+-	-6.27326410, -0.00037781, 0.00023145, 7.27288629, 0.99884592, 0.99939074, 0.49324772,\
+-	-6.27326421, -0.00037777, 0.00023142, 7.27288644, 0.99884607, 0.99939081, 0.49324775,\
+-	-6.27326432, -0.00037772, 0.00023139, 7.27288660, 0.99884621, 0.99939089, 0.49324763,\
+-	-6.27326443, -0.00037767, 0.00023136, 7.27288676, 0.99884635, 0.99939096, 0.49324773,\
+-	-6.27326454, -0.00037763, 0.00023134, 7.27288691, 0.99884649, 0.99939104, 0.49324770,\
+-	-6.27326465, -0.00037758, 0.00023131, 7.27288707, 0.99884663, 0.99939111, 0.49324772,\
+-	-6.27326476, -0.00037753, 0.00023128, 7.27288722, 0.99884677, 0.99939119, 0.49324778,\
+-	-6.27326487, -0.00037749, 0.00023125, 7.27288738, 0.99884691, 0.99939126, 0.49324783,\
+-	-6.27326498, -0.00037744, 0.00023122, 7.27288754, 0.99884705, 0.99939133, 0.49324780,\
+-	-6.27326509, -0.00037740, 0.00023120, 7.27288769, 0.99884719, 0.99939141, 0.49324776,\
+-	-6.27326520, -0.00037735, 0.00023117, 7.27288785, 0.99884733, 0.99939148, 0.49324786,\
+-	-6.27326531, -0.00037730, 0.00023114, 7.27288801, 0.99884747, 0.99939156, 0.49324788,\
+-	-6.27326542, -0.00037726, 0.00023111, 7.27288816, 0.99884761, 0.99939163, 0.49324776,\
+-	-6.27326553, -0.00037721, 0.00023108, 7.27288832, 0.99884775, 0.99939171, 0.49324788,\
+-	-6.27326564, -0.00037717, 0.00023105, 7.27288847, 0.99884789, 0.99939178, 0.49324801,\
+-	-6.27326575, -0.00037712, 0.00023103, 7.27288863, 0.99884803, 0.99939185, 0.49324790,\
+-	-6.27326586, -0.00037707, 0.00023100, 7.27288879, 0.99884817, 0.99939193, 0.49324783,\
+-	-6.27326597, -0.00037703, 0.00023097, 7.27288894, 0.99884831, 0.99939200, 0.49324795,\
+-	-6.27326608, -0.00037698, 0.00023094, 7.27288910, 0.99884846, 0.99939208, 0.49324808,\
+-	-6.27326619, -0.00037694, 0.00023091, 7.27288925, 0.99884860, 0.99939215, 0.49324796,\
+-	-6.27326630, -0.00037689, 0.00023089, 7.27288941, 0.99884874, 0.99939222, 0.49324802,\
+-	-6.27326641, -0.00037685, 0.00023086, 7.27288956, 0.99884888, 0.99939230, 0.49324786,\
+-	-6.27326652, -0.00037680, 0.00023083, 7.27288972, 0.99884902, 0.99939237, 0.49324795,\
+-	-6.27326663, -0.00037675, 0.00023080, 7.27288988, 0.99884916, 0.99939245, 0.49324822,\
+-	-6.27326674, -0.00037671, 0.00023077, 7.27289003, 0.99884930, 0.99939252, 0.49324803,\
+-	-6.27326685, -0.00037666, 0.00023074, 7.27289019, 0.99884944, 0.99939259, 0.49324799,\
+-	-6.27326696, -0.00037662, 0.00023072, 7.27289034, 0.99884958, 0.99939267, 0.49324798,\
+-	-6.27326707, -0.00037657, 0.00023069, 7.27289050, 0.99884972, 0.99939274, 0.49324802,\
+-	-6.27326718, -0.00037652, 0.00023066, 7.27289065, 0.99884986, 0.99939282, 0.49324803,\
+-	-6.27326729, -0.00037648, 0.00023063, 7.27289081, 0.99885000, 0.99939289, 0.49324811,\
+-	-6.27326740, -0.00037643, 0.00023060, 7.27289096, 0.99885014, 0.99939296, 0.49324817,\
+-	-6.27326751, -0.00037639, 0.00023058, 7.27289112, 0.99885028, 0.99939304, 0.49324821,\
+-	-6.27326762, -0.00037634, 0.00023055, 7.27289127, 0.99885042, 0.99939311, 0.49324821,\
+-	-6.27326773, -0.00037630, 0.00023052, 7.27289143, 0.99885056, 0.99939318, 0.49324827,\
+-	-6.27326783, -0.00037625, 0.00023049, 7.27289159, 0.99885070, 0.99939326, 0.49324820,\
+-	-6.27326794, -0.00037620, 0.00023046, 7.27289174, 0.99885084, 0.99939333, 0.49324832,\
+-	-6.27326805, -0.00037616, 0.00023044, 7.27289190, 0.99885097, 0.99939341, 0.49324834,\
+-	-6.27326816, -0.00037611, 0.00023041, 7.27289205, 0.99885111, 0.99939348, 0.49324841,\
+-	-6.27326827, -0.00037607, 0.00023038, 7.27289221, 0.99885125, 0.99939355, 0.49324834,\
+-	-6.27326838, -0.00037602, 0.00023035, 7.27289236, 0.99885139, 0.99939363, 0.49324834,\
+-	-6.27326849, -0.00037598, 0.00023032, 7.27289252, 0.99885153, 0.99939370, 0.49324836,\
+-	-6.27326860, -0.00037593, 0.00023030, 7.27289267, 0.99885167, 0.99939377, 0.49324838,\
+-	-6.27326871, -0.00037588, 0.00023027, 7.27289283, 0.99885181, 0.99939385, 0.49324843,\
+-	-6.27326882, -0.00037584, 0.00023024, 7.27289298, 0.99885195, 0.99939392, 0.49324818,\
+-	-6.27326893, -0.00037579, 0.00023021, 7.27289314, 0.99885209, 0.99939399, 0.49324852,\
+-	-6.27326904, -0.00037575, 0.00023018, 7.27289329, 0.99885223, 0.99939407, 0.49324850,\
+-	-6.27326915, -0.00037570, 0.00023016, 7.27289345, 0.99885237, 0.99939414, 0.49324851,\
+-	-6.27326926, -0.00037566, 0.00023013, 7.27289360, 0.99885251, 0.99939422, 0.49324838,\
+-	-6.27326937, -0.00037561, 0.00023010, 7.27289375, 0.99885265, 0.99939429, 0.49324847,\
+-	-6.27326947, -0.00037557, 0.00023007, 7.27289391, 0.99885279, 0.99939436, 0.49324849,\
+-	-6.27326958, -0.00037552, 0.00023004, 7.27289406, 0.99885293, 0.99939444, 0.49324851,\
+-	-6.27326969, -0.00037547, 0.00023002, 7.27289422, 0.99885307, 0.99939451, 0.49324844,\
+-	-6.27326980, -0.00037543, 0.00022999, 7.27289437, 0.99885321, 0.99939458, 0.49324862,\
+-	-6.27326991, -0.00037538, 0.00022996, 7.27289453, 0.99885334, 0.99939466, 0.49324845,\
+-	-6.27327002, -0.00037534, 0.00022993, 7.27289468, 0.99885348, 0.99939473, 0.49324866,\
+-	-6.27327013, -0.00037529, 0.00022991, 7.27289484, 0.99885362, 0.99939480, 0.49324850,\
+-	-6.27327024, -0.00037525, 0.00022988, 7.27289499, 0.99885376, 0.99939488, 0.49324874,\
+-	-6.27327035, -0.00037520, 0.00022985, 7.27289514, 0.99885390, 0.99939495, 0.49324863,\
+-	-6.27327045, -0.00037516, 0.00022982, 7.27289530, 0.99885404, 0.99939502, 0.49324861,\
+-	-6.27327056, -0.00037511, 0.00022979, 7.27289545, 0.99885418, 0.99939510, 0.49324863,\
+-	-6.27327067, -0.00037506, 0.00022977, 7.27289561, 0.99885432, 0.99939517, 0.49324878,\
+-	-6.27327078, -0.00037502, 0.00022974, 7.27289576, 0.99885446, 0.99939524, 0.49324852,\
+-	-6.27327089, -0.00037497, 0.00022971, 7.27289592, 0.99885459, 0.99939532, 0.49324868,\
+-	-6.27327100, -0.00037493, 0.00022968, 7.27289607, 0.99885473, 0.99939539, 0.49324870,\
+-	-6.27327111, -0.00037488, 0.00022965, 7.27289622, 0.99885487, 0.99939546, 0.49324867,\
+-	-6.27327122, -0.00037484, 0.00022963, 7.27289638, 0.99885501, 0.99939554, 0.49324861,\
+-	-6.27327132, -0.00037479, 0.00022960, 7.27289653, 0.99885515, 0.99939561, 0.49324879,\
+-	-6.27327143, -0.00037475, 0.00022957, 7.27289669, 0.99885529, 0.99939568, 0.49324878,\
+-	-6.27327154, -0.00037470, 0.00022954, 7.27289684, 0.99885543, 0.99939576, 0.49324873,\
+-	-6.27327165, -0.00037466, 0.00022952, 7.27289699, 0.99885557, 0.99939583, 0.49324877,\
+-	-6.27327176, -0.00037461, 0.00022949, 7.27289715, 0.99885570, 0.99939590, 0.49324893,\
+-	-6.27327187, -0.00037457, 0.00022946, 7.27289730, 0.99885584, 0.99939597, 0.49324876,\
+-	-6.27327198, -0.00037452, 0.00022943, 7.27289746, 0.99885598, 0.99939605, 0.49324876,\
+-	-6.27327208, -0.00037447, 0.00022940, 7.27289761, 0.99885612, 0.99939612, 0.49324883,\
+-	-6.27327219, -0.00037443, 0.00022938, 7.27289776, 0.99885626, 0.99939619, 0.49324897,\
+-	-6.27327230, -0.00037438, 0.00022935, 7.27289792, 0.99885640, 0.99939627, 0.49324903,\
+-	-6.27327241, -0.00037434, 0.00022932, 7.27289807, 0.99885653, 0.99939634, 0.49324897,\
+-	-6.27327252, -0.00037429, 0.00022929, 7.27289822, 0.99885667, 0.99939641, 0.49324915,\
+-	-6.27327263, -0.00037425, 0.00022927, 7.27289838, 0.99885681, 0.99939649, 0.49324899,\
+-	-6.27327273, -0.00037420, 0.00022924, 7.27289853, 0.99885695, 0.99939656, 0.49324895,\
+-	-6.27327284, -0.00037416, 0.00022921, 7.27289869, 0.99885709, 0.99939663, 0.49324901,\
+-	-6.27327295, -0.00037411, 0.00022918, 7.27289884, 0.99885723, 0.99939671, 0.49324899,\
+-	-6.27327306, -0.00037407, 0.00022915, 7.27289899, 0.99885736, 0.99939678, 0.49324910,\
+-	-6.27327317, -0.00037402, 0.00022913, 7.27289915, 0.99885750, 0.99939685, 0.49324893,\
+-	-6.27327328, -0.00037398, 0.00022910, 7.27289930, 0.99885764, 0.99939692, 0.49324897,\
+-	-6.27327338, -0.00037393, 0.00022907, 7.27289945, 0.99885778, 0.99939700, 0.49324903,\
+-	-6.27327349, -0.00037389, 0.00022904, 7.27289961, 0.99885792, 0.99939707, 0.49324907,\
+-	-6.27327360, -0.00037384, 0.00022902, 7.27289976, 0.99885805, 0.99939714, 0.49324912,\
+-	-6.27327371, -0.00037380, 0.00022899, 7.27289991, 0.99885819, 0.99939722, 0.49324911,\
+-	-6.27327382, -0.00037375, 0.00022896, 7.27290007, 0.99885833, 0.99939729, 0.49324918,\
+-	-6.27327392, -0.00037371, 0.00022893, 7.27290022, 0.99885847, 0.99939736, 0.49324911,\
+-	-6.27327403, -0.00037366, 0.00022891, 7.27290037, 0.99885861, 0.99939743, 0.49324922,\
+-	-6.27327414, -0.00037362, 0.00022888, 7.27290052, 0.99885874, 0.99939751, 0.49324912,\
+-	-6.27327425, -0.00037357, 0.00022885, 7.27290068, 0.99885888, 0.99939758, 0.49324914,\
+-	-6.27327436, -0.00037353, 0.00022882, 7.27290083, 0.99885902, 0.99939765, 0.49324919,\
+-	-6.27327446, -0.00037348, 0.00022880, 7.27290098, 0.99885916, 0.99939772, 0.49324915,\
+-	-6.27327457, -0.00037344, 0.00022877, 7.27290114, 0.99885929, 0.99939780, 0.49324920,\
+-	-6.27327468, -0.00037339, 0.00022874, 7.27290129, 0.99885943, 0.99939787, 0.49324914,\
+-	-6.27327479, -0.00037335, 0.00022871, 7.27290144, 0.99885957, 0.99939794, 0.49324927,\
+-	-6.27327490, -0.00037330, 0.00022868, 7.27290160, 0.99885971, 0.99939801, 0.49324924,\
+-	-6.27327500, -0.00037326, 0.00022866, 7.27290175, 0.99885984, 0.99939809, 0.49324926,\
+-	-6.27327511, -0.00037321, 0.00022863, 7.27290190, 0.99885998, 0.99939816, 0.49324920,\
+-	-6.27327522, -0.00037317, 0.00022860, 7.27290205, 0.99886012, 0.99939823, 0.49324932,\
+-	-6.27327533, -0.00037312, 0.00022857, 7.27290221, 0.99886026, 0.99939831, 0.49324939,\
+-	-6.27327543, -0.00037308, 0.00022855, 7.27290236, 0.99886039, 0.99939838, 0.49324946,\
+-	-6.27327554, -0.00037303, 0.00022852, 7.27290251, 0.99886053, 0.99939845, 0.49324935,\
+-	-6.27327565, -0.00037299, 0.00022849, 7.27290266, 0.99886067, 0.99939852, 0.49324930,\
+-	-6.27327576, -0.00037294, 0.00022846, 7.27290282, 0.99886081, 0.99939860, 0.49324950,\
+-	-6.27327586, -0.00037290, 0.00022844, 7.27290297, 0.99886094, 0.99939867, 0.49324938,\
+-	-6.27327597, -0.00037285, 0.00022841, 7.27290312, 0.99886108, 0.99939874, 0.49324942,\
+-	-6.27327608, -0.00037281, 0.00022838, 7.27290327, 0.99886122, 0.99939881, 0.49324944,\
+-	-6.27327619, -0.00037276, 0.00022835, 7.27290343, 0.99886136, 0.99939888, 0.49324942,\
+-	-6.27327629, -0.00037272, 0.00022833, 7.27290358, 0.99886149, 0.99939896, 0.49324940,\
+-	-6.27327640, -0.00037267, 0.00022830, 7.27290373, 0.99886163, 0.99939903, 0.49324954,\
+-	-6.27327651, -0.00037263, 0.00022827, 7.27290388, 0.99886177, 0.99939910, 0.49324936,\
+-	-6.27327662, -0.00037258, 0.00022824, 7.27290404, 0.99886190, 0.99939917, 0.49324945,\
+-	-6.27327672, -0.00037254, 0.00022822, 7.27290419, 0.99886204, 0.99939925, 0.49324953,\
+-	-6.27327683, -0.00037249, 0.00022819, 7.27290434, 0.99886218, 0.99939932, 0.49324957,\
+-	-6.27327694, -0.00037245, 0.00022816, 7.27290449, 0.99886231, 0.99939939, 0.49324952,\
+-	-6.27327705, -0.00037240, 0.00022813, 7.27290464, 0.99886245, 0.99939946, 0.49324959,\
+-	-6.27327715, -0.00037236, 0.00022811, 7.27290480, 0.99886259, 0.99939954, 0.49324957,\
+-	-6.27327726, -0.00037231, 0.00022808, 7.27290495, 0.99886273, 0.99939961, 0.49324964,\
+-	-6.27327737, -0.00037227, 0.00022805, 7.27290510, 0.99886286, 0.99939968, 0.49324963,\
+-	-6.27327747, -0.00037222, 0.00022802, 7.27290525, 0.99886300, 0.99939975, 0.49324974,\
+-	-6.27327758, -0.00037218, 0.00022800, 7.27290540, 0.99886314, 0.99939982, 0.49324966,\
+-	-6.27327769, -0.00037213, 0.00022797, 7.27290556, 0.99886327, 0.99939990, 0.49324952,\
+-	-6.27327780, -0.00037209, 0.00022794, 7.27290571, 0.99886341, 0.99939997, 0.49324969,\
+-	-6.27327790, -0.00037204, 0.00022791, 7.27290586, 0.99886355, 0.99940004, 0.49324970,\
+-	-6.27327801, -0.00037200, 0.00022789, 7.27290601, 0.99886368, 0.99940011, 0.49324976,\
+-	-6.27327812, -0.00037195, 0.00022786, 7.27290616, 0.99886382, 0.99940019, 0.49324984,\
+-	-6.27327822, -0.00037191, 0.00022783, 7.27290631, 0.99886396, 0.99940026, 0.49324963,\
+-	-6.27327833, -0.00037187, 0.00022781, 7.27290647, 0.99886409, 0.99940033, 0.49324968,\
+-	-6.27327844, -0.00037182, 0.00022778, 7.27290662, 0.99886423, 0.99940040, 0.49324978,\
+-	-6.27327855, -0.00037178, 0.00022775, 7.27290677, 0.99886436, 0.99940047, 0.49324985,\
+-	-6.27327865, -0.00037173, 0.00022772, 7.27290692, 0.99886450, 0.99940055, 0.49325000,\
+-	-6.27327876, -0.00037169, 0.00022770, 7.27290707, 0.99886464, 0.99940062, 0.49324984,\
+-	-6.27327887, -0.00037164, 0.00022767, 7.27290722, 0.99886477, 0.99940069, 0.49324982,\
+-	-6.27327897, -0.00037160, 0.00022764, 7.27290737, 0.99886491, 0.99940076, 0.49324988,\
+-	-6.27327908, -0.00037155, 0.00022761, 7.27290753, 0.99886505, 0.99940083, 0.49325015,\
+-	-6.27327919, -0.00037151, 0.00022759, 7.27290768, 0.99886518, 0.99940091, 0.49324977,\
+-	-6.27327929, -0.00037146, 0.00022756, 7.27290783, 0.99886532, 0.99940098, 0.49324993,\
+-	-6.27327940, -0.00037142, 0.00022753, 7.27290798, 0.99886546, 0.99940105, 0.49325002,\
+-	-6.27327951, -0.00037137, 0.00022750, 7.27290813, 0.99886559, 0.99940112, 0.49324999,\
+-	-6.27327961, -0.00037133, 0.00022748, 7.27290828, 0.99886573, 0.99940119, 0.49325000,\
+-	-6.27327972, -0.00037129, 0.00022745, 7.27290843, 0.99886586, 0.99940126, 0.49325006,\
+-	-6.27327983, -0.00037124, 0.00022742, 7.27290858, 0.99886600, 0.99940134, 0.49324994,\
+-	-6.27327993, -0.00037120, 0.00022740, 7.27290874, 0.99886614, 0.99940141, 0.49324986,\
+-	-6.27328004, -0.00037115, 0.00022737, 7.27290889, 0.99886627, 0.99940148, 0.49325009,\
+-	-6.27328015, -0.00037111, 0.00022734, 7.27290904, 0.99886641, 0.99940155, 0.49325012,\
+-	-6.27328025, -0.00037106, 0.00022731, 7.27290919, 0.99886654, 0.99940162, 0.49325015,\
+-	-6.27328036, -0.00037102, 0.00022729, 7.27290934, 0.99886668, 0.99940170, 0.49325010,\
+-	-6.27328047, -0.00037097, 0.00022726, 7.27290949, 0.99886682, 0.99940177, 0.49325020,\
+-	-6.27328057, -0.00037093, 0.00022723, 7.27290964, 0.99886695, 0.99940184, 0.49325004,\
+-	-6.27328068, -0.00037089, 0.00022720, 7.27290979, 0.99886709, 0.99940191, 0.49325014,\
+-	-6.27328078, -0.00037084, 0.00022718, 7.27290994, 0.99886722, 0.99940198, 0.49325025,\
+-	-6.27328089, -0.00037080, 0.00022715, 7.27291009, 0.99886736, 0.99940205, 0.49325008,\
+-	-6.27328100, -0.00037075, 0.00022712, 7.27291024, 0.99886749, 0.99940213, 0.49325032,\
+-	-6.27328110, -0.00037071, 0.00022710, 7.27291040, 0.99886763, 0.99940220, 0.49325016,\
+-	-6.27328121, -0.00037066, 0.00022707, 7.27291055, 0.99886777, 0.99940227, 0.49325010,\
+-	-6.27328132, -0.00037062, 0.00022704, 7.27291070, 0.99886790, 0.99940234, 0.49325006,\
+-	-6.27328142, -0.00037057, 0.00022701, 7.27291085, 0.99886804, 0.99940241, 0.49325022,\
+-	-6.27328153, -0.00037053, 0.00022699, 7.27291100, 0.99886817, 0.99940248, 0.49325031,\
+-	-6.27328163, -0.00037049, 0.00022696, 7.27291115, 0.99886831, 0.99940255, 0.49325037,\
+-	-6.27328174, -0.00037044, 0.00022693, 7.27291130, 0.99886844, 0.99940263, 0.49325027,\
+-	-6.27328185, -0.00037040, 0.00022691, 7.27291145, 0.99886858, 0.99940270, 0.49325034,\
+-	-6.27328195, -0.00037035, 0.00022688, 7.27291160, 0.99886871, 0.99940277, 0.49325020,\
+-	-6.27328206, -0.00037031, 0.00022685, 7.27291175, 0.99886885, 0.99940284, 0.49325035,\
+-	-6.27328217, -0.00037026, 0.00022682, 7.27291190, 0.99886898, 0.99940291, 0.49325022,\
+-	-6.27328227, -0.00037022, 0.00022680, 7.27291205, 0.99886912, 0.99940298, 0.49325038,\
+-	-6.27328238, -0.00037018, 0.00022677, 7.27291220, 0.99886926, 0.99940305, 0.49325045,\
+-	-6.27328248, -0.00037013, 0.00022674, 7.27291235, 0.99886939, 0.99940313, 0.49325055,\
+-	-6.27328259, -0.00037009, 0.00022672, 7.27291250, 0.99886953, 0.99940320, 0.49325042,\
+-	-6.27328269, -0.00037004, 0.00022669, 7.27291265, 0.99886966, 0.99940327, 0.49325036,\
+-	-6.27328280, -0.00037000, 0.00022666, 7.27291280, 0.99886980, 0.99940334, 0.49325057,\
+-	-6.27328291, -0.00036995, 0.00022663, 7.27291295, 0.99886993, 0.99940341, 0.49325047,\
+-	-6.27328301, -0.00036991, 0.00022661, 7.27291310, 0.99887007, 0.99940348, 0.49325050,\
+-	-6.27328312, -0.00036987, 0.00022658, 7.27291325, 0.99887020, 0.99940355, 0.49325044,\
+-	-6.27328322, -0.00036982, 0.00022655, 7.27291340, 0.99887034, 0.99940363, 0.49325060,\
+-	-6.27328333, -0.00036978, 0.00022653, 7.27291355, 0.99887047, 0.99940370, 0.49325046,\
+-	-6.27328344, -0.00036973, 0.00022650, 7.27291370, 0.99887061, 0.99940377, 0.49325049,\
+-	-6.27328354, -0.00036969, 0.00022647, 7.27291385, 0.99887074, 0.99940384, 0.49325054,\
+-	-6.27328365, -0.00036965, 0.00022644, 7.27291400, 0.99887088, 0.99940391, 0.49325051,\
+-	-6.27328375, -0.00036960, 0.00022642, 7.27291415, 0.99887101, 0.99940398, 0.49325068,\
+-	-6.27328386, -0.00036956, 0.00022639, 7.27291430, 0.99887115, 0.99940405, 0.49325059,\
+-	-6.27328396, -0.00036951, 0.00022636, 7.27291445, 0.99887128, 0.99940412, 0.49325082,\
+-	-6.27328407, -0.00036947, 0.00022634, 7.27291460, 0.99887142, 0.99940419, 0.49325077,\
+-	-6.27328418, -0.00036942, 0.00022631, 7.27291475, 0.99887155, 0.99940427, 0.49325076,\
+-	-6.27328428, -0.00036938, 0.00022628, 7.27291490, 0.99887168, 0.99940434, 0.49325073,\
+-	-6.27328439, -0.00036934, 0.00022626, 7.27291505, 0.99887182, 0.99940441, 0.49325073,\
+-	-6.27328449, -0.00036929, 0.00022623, 7.27291520, 0.99887195, 0.99940448, 0.49325059,\
+-	-6.27328460, -0.00036925, 0.00022620, 7.27291535, 0.99887209, 0.99940455, 0.49325071,\
+-	-6.27328470, -0.00036920, 0.00022617, 7.27291550, 0.99887222, 0.99940462, 0.49325075,\
+-	-6.27328481, -0.00036916, 0.00022615, 7.27291565, 0.99887236, 0.99940469, 0.49325074,\
+-	-6.27328491, -0.00036912, 0.00022612, 7.27291580, 0.99887249, 0.99940476, 0.49325076,\
+-	-6.27328502, -0.00036907, 0.00022609, 7.27291595, 0.99887263, 0.99940483, 0.49325069,\
+-	-6.27328512, -0.00036903, 0.00022607, 7.27291610, 0.99887276, 0.99940491, 0.49325089,\
+-	-6.27328523, -0.00036898, 0.00022604, 7.27291624, 0.99887290, 0.99940498, 0.49325087,\
+-	-6.27328533, -0.00036894, 0.00022601, 7.27291639, 0.99887303, 0.99940505, 0.49325089,\
+-	-6.27328544, -0.00036890, 0.00022599, 7.27291654, 0.99887316, 0.99940512, 0.49325087,\
+-	-6.27328555, -0.00036885, 0.00022596, 7.27291669, 0.99887330, 0.99940519, 0.49325085,\
+-	-6.27328565, -0.00036881, 0.00022593, 7.27291684, 0.99887343, 0.99940526, 0.49325080,\
+-	-6.27328576, -0.00036876, 0.00022590, 7.27291699, 0.99887357, 0.99940533, 0.49325071,\
+-	-6.27328586, -0.00036872, 0.00022588, 7.27291714, 0.99887370, 0.99940540, 0.49325095,\
+-	-6.27328597, -0.00036868, 0.00022585, 7.27291729, 0.99887384, 0.99940547, 0.49325080,\
+-	-6.27328607, -0.00036863, 0.00022582, 7.27291744, 0.99887397, 0.99940554, 0.49325088,\
+-	-6.27328618, -0.00036859, 0.00022580, 7.27291759, 0.99887410, 0.99940561, 0.49325100,\
+-	-6.27328628, -0.00036855, 0.00022577, 7.27291774, 0.99887424, 0.99940568, 0.49325106,\
+-	-6.27328639, -0.00036850, 0.00022574, 7.27291789, 0.99887437, 0.99940576, 0.49325085,\
+-	-6.27328649, -0.00036846, 0.00022572, 7.27291803, 0.99887451, 0.99940583, 0.49325087,\
+-	-6.27328660, -0.00036841, 0.00022569, 7.27291818, 0.99887464, 0.99940590, 0.49325084,\
+-	-6.27328670, -0.00036837, 0.00022566, 7.27291833, 0.99887477, 0.99940597, 0.49325118,\
+-	-6.27328681, -0.00036833, 0.00022564, 7.27291848, 0.99887491, 0.99940604, 0.49325112,\
+-	-6.27328691, -0.00036828, 0.00022561, 7.27291863, 0.99887504, 0.99940611, 0.49325104,\
+-	-6.27328702, -0.00036824, 0.00022558, 7.27291878, 0.99887518, 0.99940618, 0.49325104,\
+-	-6.27328712, -0.00036819, 0.00022556, 7.27291893, 0.99887531, 0.99940625, 0.49325116,\
+-	-6.27328723, -0.00036815, 0.00022553, 7.27291907, 0.99887544, 0.99940632, 0.49325111,\
+-	-6.27328733, -0.00036811, 0.00022550, 7.27291922, 0.99887558, 0.99940639, 0.49325116,\
+-	-6.27328744, -0.00036806, 0.00022547, 7.27291937, 0.99887571, 0.99940646, 0.49325108,\
+-	-6.27328754, -0.00036802, 0.00022545, 7.27291952, 0.99887584, 0.99940653, 0.49325111,\
+-	-6.27328764, -0.00036798, 0.00022542, 7.27291967, 0.99887598, 0.99940660, 0.49325113,\
+-	-6.27328775, -0.00036793, 0.00022539, 7.27291982, 0.99887611, 0.99940667, 0.49325130,\
+-	-6.27328785, -0.00036789, 0.00022537, 7.27291997, 0.99887625, 0.99940674, 0.49325114,\
+-	-6.27328796, -0.00036784, 0.00022534, 7.27292011, 0.99887638, 0.99940681, 0.49325125,\
+-	-6.27328806, -0.00036780, 0.00022531, 7.27292026, 0.99887651, 0.99940689, 0.49325120,\
+-	-6.27328817, -0.00036776, 0.00022529, 7.27292041, 0.99887665, 0.99940696, 0.49325118,\
+-	-6.27328827, -0.00036771, 0.00022526, 7.27292056, 0.99887678, 0.99940703, 0.49325120,\
+-	-6.27328838, -0.00036767, 0.00022523, 7.27292071, 0.99887691, 0.99940710, 0.49325135,\
+-	-6.27328848, -0.00036763, 0.00022521, 7.27292086, 0.99887705, 0.99940717, 0.49325134,\
+-	-6.27328859, -0.00036758, 0.00022518, 7.27292100, 0.99887718, 0.99940724, 0.49325139,\
+-	-6.27328869, -0.00036754, 0.00022515, 7.27292115, 0.99887731, 0.99940731, 0.49325135,\
+-	-6.27328880, -0.00036749, 0.00022513, 7.27292130, 0.99887745, 0.99940738, 0.49325126,\
+-	-6.27328890, -0.00036745, 0.00022510, 7.27292145, 0.99887758, 0.99940745, 0.49325131,\
+-	-6.27328900, -0.00036741, 0.00022507, 7.27292160, 0.99887771, 0.99940752, 0.49325136,\
+-	-6.27328911, -0.00036736, 0.00022505, 7.27292174, 0.99887785, 0.99940759, 0.49325152,\
+-	-6.27328921, -0.00036732, 0.00022502, 7.27292189, 0.99887798, 0.99940766, 0.49325159,\
+-	-6.27328932, -0.00036728, 0.00022499, 7.27292204, 0.99887811, 0.99940773, 0.49325140,\
+-	-6.27328942, -0.00036723, 0.00022497, 7.27292219, 0.99887825, 0.99940780, 0.49325141,\
+-	-6.27328953, -0.00036719, 0.00022494, 7.27292234, 0.99887838, 0.99940787, 0.49325131,\
+-	-6.27328963, -0.00036715, 0.00022491, 7.27292248, 0.99887851, 0.99940794, 0.49325145,\
+-	-6.27328973, -0.00036710, 0.00022489, 7.27292263, 0.99887864, 0.99940801, 0.49325145,\
+-	-6.27328984, -0.00036706, 0.00022486, 7.27292278, 0.99887878, 0.99940808, 0.49325157,\
+-	-6.27328994, -0.00036702, 0.00022483, 7.27292293, 0.99887891, 0.99940815, 0.49325149,\
+-	-6.27329005, -0.00036697, 0.00022481, 7.27292307, 0.99887904, 0.99940822, 0.49325164,\
+-	-6.27329015, -0.00036693, 0.00022478, 7.27292322, 0.99887918, 0.99940829, 0.49325155,\
+-	-6.27329025, -0.00036689, 0.00022475, 7.27292337, 0.99887931, 0.99940836, 0.49325164,\
+-	-6.27329036, -0.00036684, 0.00022473, 7.27292352, 0.99887944, 0.99940843, 0.49325151,\
+-	-6.27329046, -0.00036680, 0.00022470, 7.27292366, 0.99887958, 0.99940850, 0.49325168,\
+-	-6.27329057, -0.00036675, 0.00022467, 7.27292381, 0.99887971, 0.99940857, 0.49325138,\
+-	-6.27329067, -0.00036671, 0.00022465, 7.27292396, 0.99887984, 0.99940864, 0.49325171,\
+-	-6.27329078, -0.00036667, 0.00022462, 7.27292411, 0.99887997, 0.99940871, 0.49325159,\
+-	-6.27329088, -0.00036662, 0.00022459, 7.27292425, 0.99888011, 0.99940878, 0.49325160,\
+-	-6.27329098, -0.00036658, 0.00022457, 7.27292440, 0.99888024, 0.99940885, 0.49325177,\
+-	-6.27329109, -0.00036654, 0.00022454, 7.27292455, 0.99888037, 0.99940892, 0.49325177,\
+-	-6.27329119, -0.00036649, 0.00022451, 7.27292470, 0.99888050, 0.99940899, 0.49325164,\
+-	-6.27329129, -0.00036645, 0.00022449, 7.27292484, 0.99888064, 0.99940906, 0.49325172,\
+-	-6.27329140, -0.00036641, 0.00022446, 7.27292499, 0.99888077, 0.99940913, 0.49325179,\
+-	-6.27329150, -0.00036636, 0.00022443, 7.27292514, 0.99888090, 0.99940920, 0.49325181,\
+-	-6.27329161, -0.00036632, 0.00022441, 7.27292529, 0.99888103, 0.99940927, 0.49325178,\
+-	-6.27329171, -0.00036628, 0.00022438, 7.27292543, 0.99888117, 0.99940934, 0.49325178,\
+-	-6.27329181, -0.00036623, 0.00022435, 7.27292558, 0.99888130, 0.99940941, 0.49325183,\
+-	-6.27329192, -0.00036619, 0.00022433, 7.27292573, 0.99888143, 0.99940948, 0.49325179,\
+-	-6.27329202, -0.00036615, 0.00022430, 7.27292587, 0.99888156, 0.99940955, 0.49325183,\
+-	-6.27329212, -0.00036610, 0.00022427, 7.27292602, 0.99888170, 0.99940962, 0.49325178,\
+-	-6.27329223, -0.00036606, 0.00022425, 7.27292617, 0.99888183, 0.99940969, 0.49325167,\
+-	-6.27329233, -0.00036602, 0.00022422, 7.27292631, 0.99888196, 0.99940976, 0.49325180,\
+-	-6.27329244, -0.00036597, 0.00022419, 7.27292646, 0.99888209, 0.99940983, 0.49325201,\
+-	-6.27329254, -0.00036593, 0.00022417, 7.27292661, 0.99888222, 0.99940990, 0.49325190,\
+-	-6.27329264, -0.00036589, 0.00022414, 7.27292675, 0.99888236, 0.99940997, 0.49325201,\
+-	-6.27329275, -0.00036584, 0.00022412, 7.27292690, 0.99888249, 0.99941004, 0.49325203,\
+-	-6.27329285, -0.00036580, 0.00022409, 7.27292705, 0.99888262, 0.99941011, 0.49325195,\
+-	-6.27329295, -0.00036576, 0.00022406, 7.27292720, 0.99888275, 0.99941018, 0.49325194,\
+-	-6.27329306, -0.00036571, 0.00022404, 7.27292734, 0.99888289, 0.99941025, 0.49325187,\
+-	-6.27329316, -0.00036567, 0.00022401, 7.27292749, 0.99888302, 0.99941032, 0.49325203,\
+-	-6.27329326, -0.00036563, 0.00022398, 7.27292764, 0.99888315, 0.99941039, 0.49325193,\
+-	-6.27329337, -0.00036559, 0.00022396, 7.27292778, 0.99888328, 0.99941046, 0.49325192,\
+-	-6.27329347, -0.00036554, 0.00022393, 7.27292793, 0.99888341, 0.99941053, 0.49325212,\
+-	-6.27329357, -0.00036550, 0.00022390, 7.27292807, 0.99888355, 0.99941060, 0.49325192,\
+-	-6.27329368, -0.00036546, 0.00022388, 7.27292822, 0.99888368, 0.99941067, 0.49325204,\
+-	-6.27329378, -0.00036541, 0.00022385, 7.27292837, 0.99888381, 0.99941074, 0.49325210,\
+-	-6.27329388, -0.00036537, 0.00022382, 7.27292851, 0.99888394, 0.99941081, 0.49325200,\
+-	-6.27329399, -0.00036533, 0.00022380, 7.27292866, 0.99888407, 0.99941088, 0.49325216,\
+-	-6.27329409, -0.00036528, 0.00022377, 7.27292881, 0.99888420, 0.99941095, 0.49325212,\
+-	-6.27329419, -0.00036524, 0.00022374, 7.27292895, 0.99888434, 0.99941102, 0.49325214,\
+-	-6.27329430, -0.00036520, 0.00022372, 7.27292910, 0.99888447, 0.99941108, 0.49325208,\
+-	-6.27329440, -0.00036515, 0.00022369, 7.27292925, 0.99888460, 0.99941115, 0.49325230,\
+-	-6.27329450, -0.00036511, 0.00022367, 7.27292939, 0.99888473, 0.99941122, 0.49325225,\
+-	-6.27329461, -0.00036507, 0.00022364, 7.27292954, 0.99888486, 0.99941129, 0.49325212,\
+-	-6.27329471, -0.00036502, 0.00022361, 7.27292968, 0.99888499, 0.99941136, 0.49325221,\
+-	-6.27329481, -0.00036498, 0.00022359, 7.27292983, 0.99888513, 0.99941143, 0.49325215,\
+-	-6.27329491, -0.00036494, 0.00022356, 7.27292998, 0.99888526, 0.99941150, 0.49325228,\
+-	-6.27329502, -0.00036490, 0.00022353, 7.27293012, 0.99888539, 0.99941157, 0.49325236,\
+-	-6.27329512, -0.00036485, 0.00022351, 7.27293027, 0.99888552, 0.99941164, 0.49325238,\
+-	-6.27329522, -0.00036481, 0.00022348, 7.27293041, 0.99888565, 0.99941171, 0.49325230,\
+-	-6.27329533, -0.00036477, 0.00022345, 7.27293056, 0.99888578, 0.99941178, 0.49325233,\
+-	-6.27329543, -0.00036472, 0.00022343, 7.27293071, 0.99888591, 0.99941185, 0.49325243,\
+-	-6.27329553, -0.00036468, 0.00022340, 7.27293085, 0.99888605, 0.99941192, 0.49325248,\
+-	-6.27329564, -0.00036464, 0.00022338, 7.27293100, 0.99888618, 0.99941199, 0.49325226,\
+-	-6.27329574, -0.00036460, 0.00022335, 7.27293114, 0.99888631, 0.99941206, 0.49325247,\
+-	-6.27329584, -0.00036455, 0.00022332, 7.27293129, 0.99888644, 0.99941213, 0.49325235,\
+-	-6.27329594, -0.00036451, 0.00022330, 7.27293143, 0.99888657, 0.99941219, 0.49325238,\
+-	-6.27329605, -0.00036447, 0.00022327, 7.27293158, 0.99888670, 0.99941226, 0.49325236,\
+-	-6.27329615, -0.00036442, 0.00022324, 7.27293173, 0.99888683, 0.99941233, 0.49325251,\
+-	-6.27329625, -0.00036438, 0.00022322, 7.27293187, 0.99888696, 0.99941240, 0.49325244,\
+-	-6.27329635, -0.00036434, 0.00022319, 7.27293202, 0.99888709, 0.99941247, 0.49325243,\
+-	-6.27329646, -0.00036429, 0.00022317, 7.27293216, 0.99888723, 0.99941254, 0.49325235,\
+-	-6.27329656, -0.00036425, 0.00022314, 7.27293231, 0.99888736, 0.99941261, 0.49325265,\
+-	-6.27329666, -0.00036421, 0.00022311, 7.27293245, 0.99888749, 0.99941268, 0.49325266,\
+-	-6.27329677, -0.00036417, 0.00022309, 7.27293260, 0.99888762, 0.99941275, 0.49325241,\
+-	-6.27329687, -0.00036412, 0.00022306, 7.27293274, 0.99888775, 0.99941282, 0.49325251,\
+-	-6.27329697, -0.00036408, 0.00022303, 7.27293289, 0.99888788, 0.99941289, 0.49325244,\
+-	-6.27329707, -0.00036404, 0.00022301, 7.27293304, 0.99888801, 0.99941295, 0.49325256,\
+-	-6.27329718, -0.00036399, 0.00022298, 7.27293318, 0.99888814, 0.99941302, 0.49325261,\
+-	-6.27329728, -0.00036395, 0.00022296, 7.27293333, 0.99888827, 0.99941309, 0.49325262,\
+-	-6.27329738, -0.00036391, 0.00022293, 7.27293347, 0.99888840, 0.99941316, 0.49325272,\
+-	-6.27329748, -0.00036387, 0.00022290, 7.27293362, 0.99888853, 0.99941323, 0.49325264,\
+-	-6.27329758, -0.00036382, 0.00022288, 7.27293376, 0.99888866, 0.99941330, 0.49325271,\
+-	-6.27329769, -0.00036378, 0.00022285, 7.27293391, 0.99888879, 0.99941337, 0.49325250,\
+-	-6.27329779, -0.00036374, 0.00022282, 7.27293405, 0.99888893, 0.99941344, 0.49325276,\
+-	-6.27329789, -0.00036370, 0.00022280, 7.27293420, 0.99888906, 0.99941351, 0.49325279,\
+-	-6.27329799, -0.00036365, 0.00022277, 7.27293434, 0.99888919, 0.99941358, 0.49325256,\
+-	-6.27329810, -0.00036361, 0.00022275, 7.27293449, 0.99888932, 0.99941364, 0.49325269,\
+-	-6.27329820, -0.00036357, 0.00022272, 7.27293463, 0.99888945, 0.99941371, 0.49325274,\
+-	-6.27329830, -0.00036352, 0.00022269, 7.27293478, 0.99888958, 0.99941378, 0.49325276,\
+-	-6.27329840, -0.00036348, 0.00022267, 7.27293492, 0.99888971, 0.99941385, 0.49325275,\
+-	-6.27329851, -0.00036344, 0.00022264, 7.27293507, 0.99888984, 0.99941392, 0.49325266,\
+-	-6.27329861, -0.00036340, 0.00022261, 7.27293521, 0.99888997, 0.99941399, 0.49325274,\
+-	-6.27329871, -0.00036335, 0.00022259, 7.27293536, 0.99889010, 0.99941406, 0.49325275,\
+-	-6.27329881, -0.00036331, 0.00022256, 7.27293550, 0.99889023, 0.99941413, 0.49325279,\
+-	-6.27329891, -0.00036327, 0.00022254, 7.27293565, 0.99889036, 0.99941420, 0.49325277,\
+-	-6.27329902, -0.00036323, 0.00022251, 7.27293579, 0.99889049, 0.99941426, 0.49325299,\
+-	-6.27329912, -0.00036318, 0.00022248, 7.27293593, 0.99889062, 0.99941433, 0.49325298,\
+-	-6.27329922, -0.00036314, 0.00022246, 7.27293608, 0.99889075, 0.99941440, 0.49325274,\
+-	-6.27329932, -0.00036310, 0.00022243, 7.27293622, 0.99889088, 0.99941447, 0.49325294,\
+-	-6.27329942, -0.00036306, 0.00022241, 7.27293637, 0.99889101, 0.99941454, 0.49325297,\
+-	-6.27329953, -0.00036301, 0.00022238, 7.27293651, 0.99889114, 0.99941461, 0.49325278,\
+-	-6.27329963, -0.00036297, 0.00022235, 7.27293666, 0.99889127, 0.99941468, 0.49325281,\
+-	-6.27329973, -0.00036293, 0.00022233, 7.27293680, 0.99889140, 0.99941474, 0.49325304,\
+-	-6.27329983, -0.00036289, 0.00022230, 7.27293695, 0.99889153, 0.99941481, 0.49325295,\
+-	-6.27329993, -0.00036284, 0.00022228, 7.27293709, 0.99889166, 0.99941488, 0.49325311,\
+-	-6.27330004, -0.00036280, 0.00022225, 7.27293723, 0.99889179, 0.99941495, 0.49325291,\
+-	-6.27330014, -0.00036276, 0.00022222, 7.27293738, 0.99889192, 0.99941502, 0.49325317,\
+-	-6.27330024, -0.00036272, 0.00022220, 7.27293752, 0.99889205, 0.99941509, 0.49325298,\
+-	-6.27330034, -0.00036267, 0.00022217, 7.27293767, 0.99889218, 0.99941516, 0.49325316,\
+-	-6.27330044, -0.00036263, 0.00022215, 7.27293781, 0.99889231, 0.99941522, 0.49325310,\
+-	-6.27330054, -0.00036259, 0.00022212, 7.27293796, 0.99889244, 0.99941529, 0.49325314,\
+-	-6.27330065, -0.00036255, 0.00022209, 7.27293810, 0.99889257, 0.99941536, 0.49325310,\
+-	-6.27330075, -0.00036250, 0.00022207, 7.27293824, 0.99889270, 0.99941543, 0.49325300,\
+-	-6.27330085, -0.00036246, 0.00022204, 7.27293839, 0.99889283, 0.99941550, 0.49325323,\
+-	-6.27330095, -0.00036242, 0.00022202, 7.27293853, 0.99889296, 0.99941557, 0.49325313,\
+-	-6.27330105, -0.00036238, 0.00022199, 7.27293868, 0.99889309, 0.99941564, 0.49325318,\
+-	-6.27330115, -0.00036233, 0.00022196, 7.27293882, 0.99889322, 0.99941570, 0.49325325,\
+-	-6.27330126, -0.00036229, 0.00022194, 7.27293896, 0.99889335, 0.99941577, 0.49325315,\
+-	-6.27330136, -0.00036225, 0.00022191, 7.27293911, 0.99889348, 0.99941584, 0.49325312,\
+-	-6.27330146, -0.00036221, 0.00022189, 7.27293925, 0.99889361, 0.99941591, 0.49325327,\
+-	-6.27330156, -0.00036216, 0.00022186, 7.27293940, 0.99889374, 0.99941598, 0.49325334,\
+-	-6.27330166, -0.00036212, 0.00022183, 7.27293954, 0.99889387, 0.99941605, 0.49325318,\
+-	-6.27330176, -0.00036208, 0.00022181, 7.27293968, 0.99889400, 0.99941611, 0.49325339,\
+-	-6.27330186, -0.00036204, 0.00022178, 7.27293983, 0.99889412, 0.99941618, 0.49325320,\
+-	-6.27330197, -0.00036199, 0.00022176, 7.27293997, 0.99889425, 0.99941625, 0.49325327,\
+-	-6.27330207, -0.00036195, 0.00022173, 7.27294011, 0.99889438, 0.99941632, 0.49325329,\
+-	-6.27330217, -0.00036191, 0.00022170, 7.27294026, 0.99889451, 0.99941639, 0.49325333,\
+-	-6.27330227, -0.00036187, 0.00022168, 7.27294040, 0.99889464, 0.99941646, 0.49325330,\
+-	-6.27330237, -0.00036182, 0.00022165, 7.27294055, 0.99889477, 0.99941652, 0.49325321,\
+-	-6.27330247, -0.00036178, 0.00022163, 7.27294069, 0.99889490, 0.99941659, 0.49325343,\
+-	-6.27330257, -0.00036174, 0.00022160, 7.27294083, 0.99889503, 0.99941666, 0.49325334,\
+-	-6.27330267, -0.00036170, 0.00022157, 7.27294098, 0.99889516, 0.99941673, 0.49325333,\
+-	-6.27330278, -0.00036166, 0.00022155, 7.27294112, 0.99889529, 0.99941680, 0.49325328,\
+-	-6.27330288, -0.00036161, 0.00022152, 7.27294126, 0.99889542, 0.99941686, 0.49325344,\
+-	-6.27330298, -0.00036157, 0.00022150, 7.27294141, 0.99889555, 0.99941693, 0.49325340,\
+-	-6.27330308, -0.00036153, 0.00022147, 7.27294155, 0.99889568, 0.99941700, 0.49325337,\
+-	-6.27330318, -0.00036149, 0.00022144, 7.27294169, 0.99889580, 0.99941707, 0.49325346,\
+-	-6.27330328, -0.00036144, 0.00022142, 7.27294184, 0.99889593, 0.99941714, 0.49325350,\
+-	-6.27330338, -0.00036140, 0.00022139, 7.27294198, 0.99889606, 0.99941720, 0.49325355,\
+-	-6.27330348, -0.00036136, 0.00022137, 7.27294212, 0.99889619, 0.99941727, 0.49325362,\
+-	-6.27330358, -0.00036132, 0.00022134, 7.27294227, 0.99889632, 0.99941734, 0.49325356,\
+-	-6.27330368, -0.00036128, 0.00022132, 7.27294241, 0.99889645, 0.99941741, 0.49325360,\
+-	-6.27330379, -0.00036123, 0.00022129, 7.27294255, 0.99889658, 0.99941748, 0.49325348,\
+-	-6.27330389, -0.00036119, 0.00022126, 7.27294269, 0.99889671, 0.99941754, 0.49325378,\
+-	-6.27330399, -0.00036115, 0.00022124, 7.27294284, 0.99889684, 0.99941761, 0.49325364,\
+-	-6.27330409, -0.00036111, 0.00022121, 7.27294298, 0.99889696, 0.99941768, 0.49325361,\
+-	-6.27330419, -0.00036107, 0.00022119, 7.27294312, 0.99889709, 0.99941775, 0.49325386,\
+-	-6.27330429, -0.00036102, 0.00022116, 7.27294327, 0.99889722, 0.99941782, 0.49325359,\
+-	-6.27330439, -0.00036098, 0.00022113, 7.27294341, 0.99889735, 0.99941788, 0.49325371,\
+-	-6.27330449, -0.00036094, 0.00022111, 7.27294355, 0.99889748, 0.99941795, 0.49325375,\
+-	-6.27330459, -0.00036090, 0.00022108, 7.27294370, 0.99889761, 0.99941802, 0.49325371,\
+-	-6.27330469, -0.00036085, 0.00022106, 7.27294384, 0.99889774, 0.99941809, 0.49325378,\
+-	-6.27330479, -0.00036081, 0.00022103, 7.27294398, 0.99889786, 0.99941816, 0.49325370,\
+-	-6.27330489, -0.00036077, 0.00022101, 7.27294412, 0.99889799, 0.99941822, 0.49325364,\
+-	-6.27330499, -0.00036073, 0.00022098, 7.27294427, 0.99889812, 0.99941829, 0.49325373,\
+-	-6.27330510, -0.00036069, 0.00022095, 7.27294441, 0.99889825, 0.99941836, 0.49325372,\
+-	-6.27330520, -0.00036064, 0.00022093, 7.27294455, 0.99889838, 0.99941843, 0.49325391,\
+-	-6.27330530, -0.00036060, 0.00022090, 7.27294469, 0.99889851, 0.99941849, 0.49325378,\
+-	-6.27330540, -0.00036056, 0.00022088, 7.27294484, 0.99889863, 0.99941856, 0.49325387,\
+-	-6.27330550, -0.00036052, 0.00022085, 7.27294498, 0.99889876, 0.99941863, 0.49325370,\
+-	-6.27330560, -0.00036048, 0.00022083, 7.27294512, 0.99889889, 0.99941870, 0.49325386,\
+-	-6.27330570, -0.00036043, 0.00022080, 7.27294526, 0.99889902, 0.99941877, 0.49325387,\
+-	-6.27330580, -0.00036039, 0.00022077, 7.27294541, 0.99889915, 0.99941883, 0.49325384,\
+-	-6.27330590, -0.00036035, 0.00022075, 7.27294555, 0.99889928, 0.99941890, 0.49325392,\
+-	-6.27330600, -0.00036031, 0.00022072, 7.27294569, 0.99889940, 0.99941897, 0.49325387,\
+-	-6.27330610, -0.00036027, 0.00022070, 7.27294583, 0.99889953, 0.99941904, 0.49325390,\
+-	-6.27330620, -0.00036023, 0.00022067, 7.27294598, 0.99889966, 0.99941910, 0.49325400,\
+-	-6.27330630, -0.00036018, 0.00022065, 7.27294612, 0.99889979, 0.99941917, 0.49325409,\
+-	-6.27330640, -0.00036014, 0.00022062, 7.27294626, 0.99889992, 0.99941924, 0.49325386,\
+-	-6.27330650, -0.00036010, 0.00022059, 7.27294640, 0.99890004, 0.99941931, 0.49325408,\
+-	-6.27330660, -0.00036006, 0.00022057, 7.27294654, 0.99890017, 0.99941937, 0.49325391,\
+-	-6.27330670, -0.00036002, 0.00022054, 7.27294669, 0.99890030, 0.99941944, 0.49325389,\
+-	-6.27330680, -0.00035997, 0.00022052, 7.27294683, 0.99890043, 0.99941951, 0.49325379,\
+-	-6.27330690, -0.00035993, 0.00022049, 7.27294697, 0.99890056, 0.99941958, 0.49325409,\
+-	-6.27330700, -0.00035989, 0.00022047, 7.27294711, 0.99890068, 0.99941964, 0.49325388,\
+-	-6.27330710, -0.00035985, 0.00022044, 7.27294726, 0.99890081, 0.99941971, 0.49325402,\
+-	-6.27330720, -0.00035981, 0.00022041, 7.27294740, 0.99890094, 0.99941978, 0.49325423,\
+-	-6.27330730, -0.00035976, 0.00022039, 7.27294754, 0.99890107, 0.99941985, 0.49325405,\
+-	-6.27330740, -0.00035972, 0.00022036, 7.27294768, 0.99890119, 0.99941991, 0.49325402,\
+-	-6.27330750, -0.00035968, 0.00022034, 7.27294782, 0.99890132, 0.99941998, 0.49325409,\
+-	-6.27330760, -0.00035964, 0.00022031, 7.27294796, 0.99890145, 0.99942005, 0.49325408,\
+-	-6.27330770, -0.00035960, 0.00022029, 7.27294811, 0.99890158, 0.99942012, 0.49325430,\
+-	-6.27330780, -0.00035956, 0.00022026, 7.27294825, 0.99890171, 0.99942018, 0.49325412,\
+-	-6.27330790, -0.00035951, 0.00022024, 7.27294839, 0.99890183, 0.99942025, 0.49325410,\
+-	-6.27330800, -0.00035947, 0.00022021, 7.27294853, 0.99890196, 0.99942032, 0.49325444,\
+-	-6.27330810, -0.00035943, 0.00022018, 7.27294867, 0.99890209, 0.99942039, 0.49325431,\
+-	-6.27330820, -0.00035939, 0.00022016, 7.27294882, 0.99890222, 0.99942045, 0.49325422,\
+-	-6.27330830, -0.00035935, 0.00022013, 7.27294896, 0.99890234, 0.99942052, 0.49325435,\
+-	-6.27330840, -0.00035931, 0.00022011, 7.27294910, 0.99890247, 0.99942059, 0.49325426,\
+-	-6.27330850, -0.00035926, 0.00022008, 7.27294924, 0.99890260, 0.99942065, 0.49325433,\
+-	-6.27330860, -0.00035922, 0.00022006, 7.27294938, 0.99890273, 0.99942072, 0.49325432,\
+-	-6.27330870, -0.00035918, 0.00022003, 7.27294952, 0.99890285, 0.99942079, 0.49325444,\
+-	-6.27330880, -0.00035914, 0.00022001, 7.27294966, 0.99890298, 0.99942086, 0.49325435,\
+-	-6.27330890, -0.00035910, 0.00021998, 7.27294981, 0.99890311, 0.99942092, 0.49325422,\
+-	-6.27330900, -0.00035906, 0.00021995, 7.27294995, 0.99890323, 0.99942099, 0.49325439,\
+-	-6.27330910, -0.00035901, 0.00021993, 7.27295009, 0.99890336, 0.99942106, 0.49325438,\
+-	-6.27330920, -0.00035897, 0.00021990, 7.27295023, 0.99890349, 0.99942113, 0.49325454,\
+-	-6.27330930, -0.00035893, 0.00021988, 7.27295037, 0.99890362, 0.99942119, 0.49325448,\
+-	-6.27330940, -0.00035889, 0.00021985, 7.27295051, 0.99890374, 0.99942126, 0.49325441,\
+-	-6.27330950, -0.00035885, 0.00021983, 7.27295065, 0.99890387, 0.99942133, 0.49325438,\
+-	-6.27330960, -0.00035881, 0.00021980, 7.27295079, 0.99890400, 0.99942139, 0.49325444,\
+-	-6.27330970, -0.00035876, 0.00021978, 7.27295094, 0.99890412, 0.99942146, 0.49325455,\
+-	-6.27330980, -0.00035872, 0.00021975, 7.27295108, 0.99890425, 0.99942153, 0.49325435,\
+-	-6.27330990, -0.00035868, 0.00021972, 7.27295122, 0.99890438, 0.99942159, 0.49325446,\
+-	-6.27331000, -0.00035864, 0.00021970, 7.27295136, 0.99890451, 0.99942166, 0.49325463,\
+-	-6.27331010, -0.00035860, 0.00021967, 7.27295150, 0.99890463, 0.99942173, 0.49325459,\
+-	-6.27331020, -0.00035856, 0.00021965, 7.27295164, 0.99890476, 0.99942180, 0.49325444,\
+-	-6.27331030, -0.00035851, 0.00021962, 7.27295178, 0.99890489, 0.99942186, 0.49325446,\
+-	-6.27331040, -0.00035847, 0.00021960, 7.27295192, 0.99890501, 0.99942193, 0.49325470,\
+-	-6.27331050, -0.00035843, 0.00021957, 7.27295206, 0.99890514, 0.99942200, 0.49325447,\
+-	-6.27331059, -0.00035839, 0.00021955, 7.27295220, 0.99890527, 0.99942206, 0.49325451,\
+-	-6.27331069, -0.00035835, 0.00021952, 7.27295235, 0.99890539, 0.99942213, 0.49325471,\
+-	-6.27331079, -0.00035831, 0.00021950, 7.27295249, 0.99890552, 0.99942220, 0.49325479,\
+-	-6.27331089, -0.00035827, 0.00021947, 7.27295263, 0.99890565, 0.99942226, 0.49325465,\
+-	-6.27331099, -0.00035822, 0.00021944, 7.27295277, 0.99890577, 0.99942233, 0.49325460,\
+-	-6.27331109, -0.00035818, 0.00021942, 7.27295291, 0.99890590, 0.99942240, 0.49325463,\
+-	-6.27331119, -0.00035814, 0.00021939, 7.27295305, 0.99890603, 0.99942246, 0.49325475,\
+-	-6.27331129, -0.00035810, 0.00021937, 7.27295319, 0.99890615, 0.99942253, 0.49325484,\
+-	-6.27331139, -0.00035806, 0.00021934, 7.27295333, 0.99890628, 0.99942260, 0.49325478,\
+-	-6.27331149, -0.00035802, 0.00021932, 7.27295347, 0.99890641, 0.99942267, 0.49325476,\
+-	-6.27331159, -0.00035798, 0.00021929, 7.27295361, 0.99890653, 0.99942273, 0.49325474,\
+-	-6.27331169, -0.00035793, 0.00021927, 7.27295375, 0.99890666, 0.99942280, 0.49325471,\
+-	-6.27331179, -0.00035789, 0.00021924, 7.27295389, 0.99890679, 0.99942287, 0.49325479,\
+-	-6.27331188, -0.00035785, 0.00021922, 7.27295403, 0.99890691, 0.99942293, 0.49325475,\
+-	-6.27331198, -0.00035781, 0.00021919, 7.27295417, 0.99890704, 0.99942300, 0.49325483,\
+-	-6.27331208, -0.00035777, 0.00021917, 7.27295431, 0.99890717, 0.99942307, 0.49325488,\
+-	-6.27331218, -0.00035773, 0.00021914, 7.27295445, 0.99890729, 0.99942313, 0.49325468,\
+-	-6.27331228, -0.00035769, 0.00021911, 7.27295459, 0.99890742, 0.99942320, 0.49325487,\
+-	-6.27331238, -0.00035764, 0.00021909, 7.27295473, 0.99890754, 0.99942327, 0.49325491,\
+-	-6.27331248, -0.00035760, 0.00021906, 7.27295487, 0.99890767, 0.99942333, 0.49325485,\
+-	-6.27331258, -0.00035756, 0.00021904, 7.27295501, 0.99890780, 0.99942340, 0.49325494,\
+-	-6.27331268, -0.00035752, 0.00021901, 7.27295515, 0.99890792, 0.99942347, 0.49325489,\
+-	-6.27331277, -0.00035748, 0.00021899, 7.27295529, 0.99890805, 0.99942353, 0.49325507,\
+-	-6.27331287, -0.00035744, 0.00021896, 7.27295544, 0.99890818, 0.99942360, 0.49325487,\
+-	-6.27331297, -0.00035740, 0.00021894, 7.27295558, 0.99890830, 0.99942367, 0.49325485,\
+-	-6.27331307, -0.00035736, 0.00021891, 7.27295572, 0.99890843, 0.99942373, 0.49325494,\
+-	-6.27331317, -0.00035731, 0.00021889, 7.27295586, 0.99890855, 0.99942380, 0.49325502,\
+-	-6.27331327, -0.00035727, 0.00021886, 7.27295600, 0.99890868, 0.99942386, 0.49325506,\
+-	-6.27331337, -0.00035723, 0.00021884, 7.27295614, 0.99890881, 0.99942393, 0.49325501,\
+-	-6.27331347, -0.00035719, 0.00021881, 7.27295628, 0.99890893, 0.99942400, 0.49325503,\
+-	-6.27331356, -0.00035715, 0.00021879, 7.27295642, 0.99890906, 0.99942406, 0.49325490,\
+-	-6.27331366, -0.00035711, 0.00021876, 7.27295655, 0.99890918, 0.99942413, 0.49325500,\
+-	-6.27331376, -0.00035707, 0.00021874, 7.27295669, 0.99890931, 0.99942420, 0.49325510,\
+-	-6.27331386, -0.00035703, 0.00021871, 7.27295683, 0.99890943, 0.99942426, 0.49325499,\
+-	-6.27331396, -0.00035698, 0.00021869, 7.27295697, 0.99890956, 0.99942433, 0.49325505,\
+-	-6.27331406, -0.00035694, 0.00021866, 7.27295711, 0.99890969, 0.99942440, 0.49325506,\
+-	-6.27331416, -0.00035690, 0.00021863, 7.27295725, 0.99890981, 0.99942446, 0.49325523,\
+-	-6.27331425, -0.00035686, 0.00021861, 7.27295739, 0.99890994, 0.99942453, 0.49325511,\
+-	-6.27331435, -0.00035682, 0.00021858, 7.27295753, 0.99891006, 0.99942460, 0.49325502,\
+-	-6.27331445, -0.00035678, 0.00021856, 7.27295767, 0.99891019, 0.99942466, 0.49325512,\
+-	-6.27331455, -0.00035674, 0.00021853, 7.27295781, 0.99891032, 0.99942473, 0.49325535,\
+-	-6.27331465, -0.00035670, 0.00021851, 7.27295795, 0.99891044, 0.99942479, 0.49325526,\
+-	-6.27331475, -0.00035666, 0.00021848, 7.27295809, 0.99891057, 0.99942486, 0.49325504,\
+-	-6.27331485, -0.00035661, 0.00021846, 7.27295823, 0.99891069, 0.99942493, 0.49325512,\
+-	-6.27331494, -0.00035657, 0.00021843, 7.27295837, 0.99891082, 0.99942499, 0.49325533,\
+-	-6.27331504, -0.00035653, 0.00021841, 7.27295851, 0.99891094, 0.99942506, 0.49325523,\
+-	-6.27331514, -0.00035649, 0.00021838, 7.27295865, 0.99891107, 0.99942513, 0.49325528,\
+-	-6.27331524, -0.00035645, 0.00021836, 7.27295879, 0.99891119, 0.99942519, 0.49325526,\
+-	-6.27331534, -0.00035641, 0.00021833, 7.27295893, 0.99891132, 0.99942526, 0.49325527,\
+-	-6.27331543, -0.00035637, 0.00021831, 7.27295907, 0.99891144, 0.99942532, 0.49325541,\
+-	-6.27331553, -0.00035633, 0.00021828, 7.27295921, 0.99891157, 0.99942539, 0.49325526,\
+-	-6.27331563, -0.00035629, 0.00021826, 7.27295935, 0.99891169, 0.99942546, 0.49325518,\
+-	-6.27331573, -0.00035625, 0.00021823, 7.27295948, 0.99891182, 0.99942552, 0.49325527,\
+-	-6.27331583, -0.00035620, 0.00021821, 7.27295962, 0.99891195, 0.99942559, 0.49325543,\
+-	-6.27331593, -0.00035616, 0.00021818, 7.27295976, 0.99891207, 0.99942566, 0.49325535,\
+-	-6.27331602, -0.00035612, 0.00021816, 7.27295990, 0.99891220, 0.99942572, 0.49325531,\
+-	-6.27331612, -0.00035608, 0.00021813, 7.27296004, 0.99891232, 0.99942579, 0.49325537,\
+-	-6.27331622, -0.00035604, 0.00021811, 7.27296018, 0.99891245, 0.99942585, 0.49325536,\
+-	-6.27331632, -0.00035600, 0.00021808, 7.27296032, 0.99891257, 0.99942592, 0.49325546,\
+-	-6.27331642, -0.00035596, 0.00021806, 7.27296046, 0.99891270, 0.99942599, 0.49325549,\
+-	-6.27331651, -0.00035592, 0.00021803, 7.27296060, 0.99891282, 0.99942605, 0.49325546,\
+-	-6.27331661, -0.00035588, 0.00021801, 7.27296074, 0.99891295, 0.99942612, 0.49325542,\
+-	-6.27331671, -0.00035584, 0.00021798, 7.27296087, 0.99891307, 0.99942618, 0.49325537,\
+-	-6.27331681, -0.00035579, 0.00021796, 7.27296101, 0.99891320, 0.99942625, 0.49325535,\
+-	-6.27331691, -0.00035575, 0.00021793, 7.27296115, 0.99891332, 0.99942632, 0.49325540,\
+-	-6.27331700, -0.00035571, 0.00021791, 7.27296129, 0.99891345, 0.99942638, 0.49325546,\
+-	-6.27331710, -0.00035567, 0.00021788, 7.27296143, 0.99891357, 0.99942645, 0.49325545,\
+-	-6.27331720, -0.00035563, 0.00021786, 7.27296157, 0.99891370, 0.99942651, 0.49325569,\
+-	-6.27331730, -0.00035559, 0.00021783, 7.27296171, 0.99891382, 0.99942658, 0.49325550,\
+-	-6.27331740, -0.00035555, 0.00021781, 7.27296185, 0.99891395, 0.99942664, 0.49325563,\
+-	-6.27331749, -0.00035551, 0.00021778, 7.27296198, 0.99891407, 0.99942671, 0.49325568,\
+-	-6.27331759, -0.00035547, 0.00021776, 7.27296212, 0.99891420, 0.99942678, 0.49325547,\
+-	-6.27331769, -0.00035543, 0.00021773, 7.27296226, 0.99891432, 0.99942684, 0.49325550,\
+-	-6.27331779, -0.00035539, 0.00021771, 7.27296240, 0.99891444, 0.99942691, 0.49325571,\
+-	-6.27331788, -0.00035535, 0.00021768, 7.27296254, 0.99891457, 0.99942697, 0.49325568,\
+-	-6.27331798, -0.00035530, 0.00021766, 7.27296268, 0.99891469, 0.99942704, 0.49325562,\
+-	-6.27331808, -0.00035526, 0.00021763, 7.27296281, 0.99891482, 0.99942711, 0.49325569,\
+-	-6.27331818, -0.00035522, 0.00021761, 7.27296295, 0.99891494, 0.99942717, 0.49325576,\
+-	-6.27331827, -0.00035518, 0.00021758, 7.27296309, 0.99891507, 0.99942724, 0.49325584,\
+-	-6.27331837, -0.00035514, 0.00021756, 7.27296323, 0.99891519, 0.99942730, 0.49325572,\
+-	-6.27331847, -0.00035510, 0.00021753, 7.27296337, 0.99891532, 0.99942737, 0.49325557,\
+-	-6.27331857, -0.00035506, 0.00021751, 7.27296351, 0.99891544, 0.99942743, 0.49325555,\
+-	-6.27331866, -0.00035502, 0.00021748, 7.27296364, 0.99891557, 0.99942750, 0.49325590,\
+-	-6.27331876, -0.00035498, 0.00021746, 7.27296378, 0.99891569, 0.99942757, 0.49325582,\
+-	-6.27331886, -0.00035494, 0.00021743, 7.27296392, 0.99891581, 0.99942763, 0.49325599,\
+-	-6.27331896, -0.00035490, 0.00021741, 7.27296406, 0.99891594, 0.99942770, 0.49325596,\
+-	-6.27331905, -0.00035486, 0.00021738, 7.27296420, 0.99891606, 0.99942776, 0.49325600,\
+-	-6.27331915, -0.00035482, 0.00021736, 7.27296434, 0.99891619, 0.99942783, 0.49325578,\
+-	-6.27331925, -0.00035478, 0.00021733, 7.27296447, 0.99891631, 0.99942789, 0.49325597,\
+-	-6.27331935, -0.00035473, 0.00021731, 7.27296461, 0.99891644, 0.99942796, 0.49325578,\
+-	-6.27331944, -0.00035469, 0.00021728, 7.27296475, 0.99891656, 0.99942802, 0.49325601,\
+-	-6.27331954, -0.00035465, 0.00021726, 7.27296489, 0.99891668, 0.99942809, 0.49325574,\
+-	-6.27331964, -0.00035461, 0.00021723, 7.27296503, 0.99891681, 0.99942816, 0.49325598,\
+-	-6.27331974, -0.00035457, 0.00021721, 7.27296516, 0.99891693, 0.99942822, 0.49325602,\
+-	-6.27331983, -0.00035453, 0.00021718, 7.27296530, 0.99891706, 0.99942829, 0.49325595,\
+-	-6.27331993, -0.00035449, 0.00021716, 7.27296544, 0.99891718, 0.99942835, 0.49325608,\
+-	-6.27332003, -0.00035445, 0.00021713, 7.27296558, 0.99891730, 0.99942842, 0.49325597,\
+-	-6.27332012, -0.00035441, 0.00021711, 7.27296571, 0.99891743, 0.99942848, 0.49325598,\
+-	-6.27332022, -0.00035437, 0.00021708, 7.27296585, 0.99891755, 0.99942855, 0.49325613,\
+-	-6.27332032, -0.00035433, 0.00021706, 7.27296599, 0.99891768, 0.99942861, 0.49325588,\
+-	-6.27332042, -0.00035429, 0.00021703, 7.27296613, 0.99891780, 0.99942868, 0.49325598,\
+-	-6.27332051, -0.00035425, 0.00021701, 7.27296626, 0.99891792, 0.99942874, 0.49325592,\
+-	-6.27332061, -0.00035421, 0.00021698, 7.27296640, 0.99891805, 0.99942881, 0.49325612,\
+-	-6.27332071, -0.00035417, 0.00021696, 7.27296654, 0.99891817, 0.99942888, 0.49325620,\
+-	-6.27332080, -0.00035413, 0.00021693, 7.27296668, 0.99891830, 0.99942894, 0.49325610,\
+-	-6.27332090, -0.00035409, 0.00021691, 7.27296681, 0.99891842, 0.99942901, 0.49325614,\
+-	-6.27332100, -0.00035405, 0.00021688, 7.27296695, 0.99891854, 0.99942907, 0.49325612,\
+-	-6.27332109, -0.00035400, 0.00021686, 7.27296709, 0.99891867, 0.99942914, 0.49325613,\
+-	-6.27332119, -0.00035396, 0.00021683, 7.27296723, 0.99891879, 0.99942920, 0.49325604,\
+-	-6.27332129, -0.00035392, 0.00021681, 7.27296736, 0.99891891, 0.99942927, 0.49325626,\
+-	-6.27332139, -0.00035388, 0.00021678, 7.27296750, 0.99891904, 0.99942933, 0.49325625,\
+-	-6.27332148, -0.00035384, 0.00021676, 7.27296764, 0.99891916, 0.99942940, 0.49325605,\
+-	-6.27332158, -0.00035380, 0.00021673, 7.27296778, 0.99891928, 0.99942946, 0.49325626,\
+-	-6.27332168, -0.00035376, 0.00021671, 7.27296791, 0.99891941, 0.99942953, 0.49325629,\
+-	-6.27332177, -0.00035372, 0.00021669, 7.27296805, 0.99891953, 0.99942959, 0.49325630,\
+-	-6.27332187, -0.00035368, 0.00021666, 7.27296819, 0.99891966, 0.99942966, 0.49325628,\
+-	-6.27332197, -0.00035364, 0.00021664, 7.27296833, 0.99891978, 0.99942972, 0.49325635,\
+-	-6.27332206, -0.00035360, 0.00021661, 7.27296846, 0.99891990, 0.99942979, 0.49325625,\
+-	-6.27332216, -0.00035356, 0.00021659, 7.27296860, 0.99892003, 0.99942985, 0.49325617,\
+-	-6.27332226, -0.00035352, 0.00021656, 7.27296874, 0.99892015, 0.99942992, 0.49325641,\
+-	-6.27332235, -0.00035348, 0.00021654, 7.27296887, 0.99892027, 0.99942998, 0.49325636,\
+-	-6.27332245, -0.00035344, 0.00021651, 7.27296901, 0.99892040, 0.99943005, 0.49325630,\
+-	-6.27332255, -0.00035340, 0.00021649, 7.27296915, 0.99892052, 0.99943011, 0.49325637,\
+-	-6.27332264, -0.00035336, 0.00021646, 7.27296928, 0.99892064, 0.99943018, 0.49325631,\
+-	-6.27332274, -0.00035332, 0.00021644, 7.27296942, 0.99892077, 0.99943024, 0.49325656,\
+-	-6.27332284, -0.00035328, 0.00021641, 7.27296956, 0.99892089, 0.99943031, 0.49325631,\
+-	-6.27332293, -0.00035324, 0.00021639, 7.27296970, 0.99892101, 0.99943037, 0.49325638,\
+-	-6.27332303, -0.00035320, 0.00021636, 7.27296983, 0.99892114, 0.99943044, 0.49325647,\
+-	-6.27332313, -0.00035316, 0.00021634, 7.27296997, 0.99892126, 0.99943050, 0.49325639,\
+-	-6.27332322, -0.00035312, 0.00021631, 7.27297011, 0.99892138, 0.99943057, 0.49325638,\
+-	-6.27332332, -0.00035308, 0.00021629, 7.27297024, 0.99892150, 0.99943063, 0.49325638,\
+-	-6.27332341, -0.00035304, 0.00021626, 7.27297038, 0.99892163, 0.99943070, 0.49325643,\
+-	-6.27332351, -0.00035300, 0.00021624, 7.27297052, 0.99892175, 0.99943076, 0.49325659,\
+-	-6.27332361, -0.00035296, 0.00021622, 7.27297065, 0.99892187, 0.99943083, 0.49325672,\
+-	-6.27332370, -0.00035291, 0.00021619, 7.27297079, 0.99892200, 0.99943089, 0.49325654,\
+-	-6.27332380, -0.00035287, 0.00021617, 7.27297093, 0.99892212, 0.99943096, 0.49325642,\
+-	-6.27332390, -0.00035283, 0.00021614, 7.27297106, 0.99892224, 0.99943102, 0.49325660,\
+-	-6.27332399, -0.00035279, 0.00021612, 7.27297120, 0.99892237, 0.99943109, 0.49325667,\
+-	-6.27332409, -0.00035275, 0.00021609, 7.27297133, 0.99892249, 0.99943115, 0.49325649,\
+-	-6.27332418, -0.00035271, 0.00021607, 7.27297147, 0.99892261, 0.99943122, 0.49325655,\
+-	-6.27332428, -0.00035267, 0.00021604, 7.27297161, 0.99892273, 0.99943128, 0.49325662,\
+-	-6.27332438, -0.00035263, 0.00021602, 7.27297174, 0.99892286, 0.99943135, 0.49325664,\
+-	-6.27332447, -0.00035259, 0.00021599, 7.27297188, 0.99892298, 0.99943141, 0.49325657,\
+-	-6.27332457, -0.00035255, 0.00021597, 7.27297202, 0.99892310, 0.99943148, 0.49325670,\
+-	-6.27332467, -0.00035251, 0.00021594, 7.27297215, 0.99892322, 0.99943154, 0.49325664,\
+-	-6.27332476, -0.00035247, 0.00021592, 7.27297229, 0.99892335, 0.99943161, 0.49325680,\
+-	-6.27332486, -0.00035243, 0.00021590, 7.27297243, 0.99892347, 0.99943167, 0.49325677,\
+-	-6.27332495, -0.00035239, 0.00021587, 7.27297256, 0.99892359, 0.99943174, 0.49325674,\
+-	-6.27332505, -0.00035235, 0.00021585, 7.27297270, 0.99892371, 0.99943180, 0.49325673,\
+-	-6.27332515, -0.00035231, 0.00021582, 7.27297283, 0.99892384, 0.99943187, 0.49325687,\
+-	-6.27332524, -0.00035227, 0.00021580, 7.27297297, 0.99892396, 0.99943193, 0.49325676,\
+-	-6.27332534, -0.00035223, 0.00021577, 7.27297311, 0.99892408, 0.99943200, 0.49325694,\
+-	-6.27332543, -0.00035219, 0.00021575, 7.27297324, 0.99892420, 0.99943206, 0.49325684,\
+-	-6.27332553, -0.00035215, 0.00021572, 7.27297338, 0.99892433, 0.99943212, 0.49325673,\
+-	-6.27332563, -0.00035211, 0.00021570, 7.27297351, 0.99892445, 0.99943219, 0.49325679,\
+-	-6.27332572, -0.00035207, 0.00021567, 7.27297365, 0.99892457, 0.99943225, 0.49325687,\
+-	-6.27332582, -0.00035203, 0.00021565, 7.27297379, 0.99892469, 0.99943232, 0.49325682,\
+-	-6.27332591, -0.00035199, 0.00021563, 7.27297392, 0.99892482, 0.99943238, 0.49325693,\
+-	-6.27332601, -0.00035195, 0.00021560, 7.27297406, 0.99892494, 0.99943245, 0.49325706,\
+-	-6.27332611, -0.00035191, 0.00021558, 7.27297419, 0.99892506, 0.99943251, 0.49325679,\
+-	-6.27332620, -0.00035187, 0.00021555, 7.27297433, 0.99892518, 0.99943258, 0.49325693,\
+-	-6.27332630, -0.00035183, 0.00021553, 7.27297446, 0.99892531, 0.99943264, 0.49325690,\
+-	-6.27332639, -0.00035179, 0.00021550, 7.27297460, 0.99892543, 0.99943271, 0.49325679,\
+-	-6.27332649, -0.00035175, 0.00021548, 7.27297474, 0.99892555, 0.99943277, 0.49325703,\
+-	-6.27332658, -0.00035171, 0.00021545, 7.27297487, 0.99892567, 0.99943283, 0.49325709,\
+-	-6.27332668, -0.00035167, 0.00021543, 7.27297501, 0.99892579, 0.99943290, 0.49325716,\
+-	-6.27332678, -0.00035163, 0.00021540, 7.27297514, 0.99892592, 0.99943296, 0.49325688,\
+-	-6.27332687, -0.00035159, 0.00021538, 7.27297528, 0.99892604, 0.99943303, 0.49325701,\
+-	-6.27332697, -0.00035155, 0.00021536, 7.27297541, 0.99892616, 0.99943309, 0.49325699,\
+-	-6.27332706, -0.00035151, 0.00021533, 7.27297555, 0.99892628, 0.99943316, 0.49325716,\
+-	-6.27332716, -0.00035147, 0.00021531, 7.27297569, 0.99892640, 0.99943322, 0.49325705,\
+-	-6.27332725, -0.00035143, 0.00021528, 7.27297582, 0.99892653, 0.99943329, 0.49325714,\
+-	-6.27332735, -0.00035139, 0.00021526, 7.27297596, 0.99892665, 0.99943335, 0.49325697,\
+-	-6.27332744, -0.00035135, 0.00021523, 7.27297609, 0.99892677, 0.99943341, 0.49325706,\
+-	-6.27332754, -0.00035131, 0.00021521, 7.27297623, 0.99892689, 0.99943348, 0.49325710,\
+-	-6.27332763, -0.00035127, 0.00021518, 7.27297636, 0.99892701, 0.99943354, 0.49325718,\
+-	-6.27332773, -0.00035123, 0.00021516, 7.27297650, 0.99892714, 0.99943361, 0.49325714,\
+-	-6.27332783, -0.00035119, 0.00021514, 7.27297663, 0.99892726, 0.99943367, 0.49325704,\
+-	-6.27332792, -0.00035115, 0.00021511, 7.27297677, 0.99892738, 0.99943374, 0.49325724,\
+-	-6.27332802, -0.00035111, 0.00021509, 7.27297690, 0.99892750, 0.99943380, 0.49325727,\
+-	-6.27332811, -0.00035107, 0.00021506, 7.27297704, 0.99892762, 0.99943386, 0.49325718,\
+-	-6.27332821, -0.00035103, 0.00021504, 7.27297717, 0.99892774, 0.99943393, 0.49325715,\
+-	-6.27332830, -0.00035099, 0.00021501, 7.27297731, 0.99892787, 0.99943399, 0.49325736,\
+-	-6.27332840, -0.00035095, 0.00021499, 7.27297744, 0.99892799, 0.99943406, 0.49325725,\
+-	-6.27332849, -0.00035091, 0.00021496, 7.27297758, 0.99892811, 0.99943412, 0.49325737,\
+-	-6.27332859, -0.00035087, 0.00021494, 7.27297771, 0.99892823, 0.99943418, 0.49325733,\
+-	-6.27332868, -0.00035084, 0.00021492, 7.27297785, 0.99892835, 0.99943425, 0.49325727,\
+-	-6.27332878, -0.00035080, 0.00021489, 7.27297798, 0.99892847, 0.99943431, 0.49325722,\
+-	-6.27332887, -0.00035076, 0.00021487, 7.27297812, 0.99892859, 0.99943438, 0.49325726,\
+-	-6.27332897, -0.00035072, 0.00021484, 7.27297825, 0.99892872, 0.99943444, 0.49325746,\
+-	-6.27332906, -0.00035068, 0.00021482, 7.27297839, 0.99892884, 0.99943451, 0.49325735,\
+-	-6.27332916, -0.00035064, 0.00021479, 7.27297852, 0.99892896, 0.99943457, 0.49325729,\
+-	-6.27332925, -0.00035060, 0.00021477, 7.27297866, 0.99892908, 0.99943463, 0.49325733,\
+-	-6.27332935, -0.00035056, 0.00021475, 7.27297879, 0.99892920, 0.99943470, 0.49325743,\
+-	-6.27332944, -0.00035052, 0.00021472, 7.27297893, 0.99892932, 0.99943476, 0.49325745,\
+-	-6.27332954, -0.00035048, 0.00021470, 7.27297906, 0.99892944, 0.99943483, 0.49325763,\
+-	-6.27332963, -0.00035044, 0.00021467, 7.27297920, 0.99892956, 0.99943489, 0.49325734,\
+-	-6.27332973, -0.00035040, 0.00021465, 7.27297933, 0.99892969, 0.99943495, 0.49325743,\
+-	-6.27332982, -0.00035036, 0.00021462, 7.27297947, 0.99892981, 0.99943502, 0.49325746,\
+-	-6.27332992, -0.00035032, 0.00021460, 7.27297960, 0.99892993, 0.99943508, 0.49325750,\
+-	-6.27333001, -0.00035028, 0.00021458, 7.27297973, 0.99893005, 0.99943515, 0.49325754,\
+-	-6.27333011, -0.00035024, 0.00021455, 7.27297987, 0.99893017, 0.99943521, 0.49325751,\
+-	-6.27333020, -0.00035020, 0.00021453, 7.27298000, 0.99893029, 0.99943527, 0.49325761,\
+-	-6.27333030, -0.00035016, 0.00021450, 7.27298014, 0.99893041, 0.99943534, 0.49325752,\
+-	-6.27333039, -0.00035012, 0.00021448, 7.27298027, 0.99893053, 0.99943540, 0.49325748,\
+-	-6.27333049, -0.00035008, 0.00021445, 7.27298041, 0.99893065, 0.99943546, 0.49325770,\
+-	-6.27333058, -0.00035004, 0.00021443, 7.27298054, 0.99893078, 0.99943553, 0.49325749,\
+-	-6.27333068, -0.00035000, 0.00021441, 7.27298068, 0.99893090, 0.99943559, 0.49325754,\
+-	-6.27333077, -0.00034996, 0.00021438, 7.27298081, 0.99893102, 0.99943566, 0.49325757,\
+-	-6.27333087, -0.00034992, 0.00021436, 7.27298094, 0.99893114, 0.99943572, 0.49325772,\
+-	-6.27333096, -0.00034988, 0.00021433, 7.27298108, 0.99893126, 0.99943578, 0.49325749,\
+-	-6.27333106, -0.00034984, 0.00021431, 7.27298121, 0.99893138, 0.99943585, 0.49325746,\
+-	-6.27333115, -0.00034980, 0.00021428, 7.27298135, 0.99893150, 0.99943591, 0.49325763,\
+-	-6.27333125, -0.00034976, 0.00021426, 7.27298148, 0.99893162, 0.99943597, 0.49325780,\
+-	-6.27333134, -0.00034973, 0.00021424, 7.27298162, 0.99893174, 0.99943604, 0.49325773,\
+-	-6.27333144, -0.00034969, 0.00021421, 7.27298175, 0.99893186, 0.99943610, 0.49325774,\
+-	-6.27333153, -0.00034965, 0.00021419, 7.27298188, 0.99893198, 0.99943617, 0.49325768,\
+-	-6.27333162, -0.00034961, 0.00021416, 7.27298202, 0.99893210, 0.99943623, 0.49325772,\
+-	-6.27333172, -0.00034957, 0.00021414, 7.27298215, 0.99893223, 0.99943629, 0.49325780,\
+-	-6.27333181, -0.00034953, 0.00021412, 7.27298229, 0.99893235, 0.99943636, 0.49325790,\
+-	-6.27333191, -0.00034949, 0.00021409, 7.27298242, 0.99893247, 0.99943642, 0.49325769,\
+-	-6.27333200, -0.00034945, 0.00021407, 7.27298255, 0.99893259, 0.99943648, 0.49325784,\
+-	-6.27333210, -0.00034941, 0.00021404, 7.27298269, 0.99893271, 0.99943655, 0.49325781,\
+-	-6.27333219, -0.00034937, 0.00021402, 7.27298282, 0.99893283, 0.99943661, 0.49325781,\
+-	-6.27333229, -0.00034933, 0.00021399, 7.27298296, 0.99893295, 0.99943668, 0.49325775,\
+-	-6.27333238, -0.00034929, 0.00021397, 7.27298309, 0.99893307, 0.99943674, 0.49325777,\
+-	-6.27333247, -0.00034925, 0.00021395, 7.27298322, 0.99893319, 0.99943680, 0.49325794,\
+-	-6.27333257, -0.00034921, 0.00021392, 7.27298336, 0.99893331, 0.99943687, 0.49325786,\
+-	-6.27333266, -0.00034917, 0.00021390, 7.27298349, 0.99893343, 0.99943693, 0.49325783,\
+-	-6.27333276, -0.00034913, 0.00021387, 7.27298362, 0.99893355, 0.99943699, 0.49325777,\
+-	-6.27333285, -0.00034909, 0.00021385, 7.27298376, 0.99893367, 0.99943706, 0.49325800,\
+-	-6.27333295, -0.00034905, 0.00021383, 7.27298389, 0.99893379, 0.99943712, 0.49325788,\
+-	-6.27333304, -0.00034902, 0.00021380, 7.27298402, 0.99893391, 0.99943718, 0.49325796,\
+-	-6.27333313, -0.00034898, 0.00021378, 7.27298416, 0.99893403, 0.99943725, 0.49325777,\
+-	-6.27333323, -0.00034894, 0.00021375, 7.27298429, 0.99893415, 0.99943731, 0.49325803,\
+-	-6.27333332, -0.00034890, 0.00021373, 7.27298443, 0.99893427, 0.99943737, 0.49325799,\
+-	-6.27333342, -0.00034886, 0.00021370, 7.27298456, 0.99893439, 0.99943744, 0.49325815,\
+-	-6.27333351, -0.00034882, 0.00021368, 7.27298469, 0.99893451, 0.99943750, 0.49325810,\
+-	-6.27333360, -0.00034878, 0.00021366, 7.27298483, 0.99893463, 0.99943756, 0.49325805,\
+-	-6.27333370, -0.00034874, 0.00021363, 7.27298496, 0.99893475, 0.99943763, 0.49325805,\
+-	-6.27333379, -0.00034870, 0.00021361, 7.27298509, 0.99893487, 0.99943769, 0.49325810,\
+-	-6.27333389, -0.00034866, 0.00021358, 7.27298523, 0.99893499, 0.99943775, 0.49325812,\
+-	-6.27333398, -0.00034862, 0.00021356, 7.27298536, 0.99893511, 0.99943782, 0.49325800,\
+-	-6.27333408, -0.00034858, 0.00021354, 7.27298549, 0.99893523, 0.99943788, 0.49325798,\
+-	-6.27333417, -0.00034854, 0.00021351, 7.27298563, 0.99893535, 0.99943794, 0.49325819,\
+-	-6.27333426, -0.00034850, 0.00021349, 7.27298576, 0.99893547, 0.99943801, 0.49325809,\
+-	-6.27333436, -0.00034847, 0.00021346, 7.27298589, 0.99893559, 0.99943807, 0.49325811,\
+-	-6.27333445, -0.00034843, 0.00021344, 7.27298602, 0.99893571, 0.99943813, 0.49325804,\
+-	-6.27333454, -0.00034839, 0.00021342, 7.27298616, 0.99893583, 0.99943820, 0.49325814,\
+-	-6.27333464, -0.00034835, 0.00021339, 7.27298629, 0.99893595, 0.99943826, 0.49325817,\
+-	-6.27333473, -0.00034831, 0.00021337, 7.27298642, 0.99893607, 0.99943832, 0.49325810,\
+-	-6.27333483, -0.00034827, 0.00021334, 7.27298656, 0.99893619, 0.99943839, 0.49325810,\
+-	-6.27333492, -0.00034823, 0.00021332, 7.27298669, 0.99893631, 0.99943845, 0.49325813,\
+-	-6.27333501, -0.00034819, 0.00021330, 7.27298682, 0.99893643, 0.99943851, 0.49325821,\
+-	-6.27333511, -0.00034815, 0.00021327, 7.27298696, 0.99893655, 0.99943858, 0.49325825,\
+-	-6.27333520, -0.00034811, 0.00021325, 7.27298709, 0.99893667, 0.99943864, 0.49325802,\
+-	-6.27333530, -0.00034807, 0.00021322, 7.27298722, 0.99893679, 0.99943870, 0.49325839,\
+-	-6.27333539, -0.00034803, 0.00021320, 7.27298735, 0.99893691, 0.99943877, 0.49325824,\
+-	-6.27333548, -0.00034800, 0.00021318, 7.27298749, 0.99893703, 0.99943883, 0.49325827,\
+-	-6.27333558, -0.00034796, 0.00021315, 7.27298762, 0.99893715, 0.99943889, 0.49325830,\
+-	-6.27333567, -0.00034792, 0.00021313, 7.27298775, 0.99893727, 0.99943895, 0.49325817,\
+-	-6.27333576, -0.00034788, 0.00021310, 7.27298789, 0.99893739, 0.99943902, 0.49325841,\
+-	-6.27333586, -0.00034784, 0.00021308, 7.27298802, 0.99893751, 0.99943908, 0.49325836,\
+-	-6.27333595, -0.00034780, 0.00021306, 7.27298815, 0.99893763, 0.99943914, 0.49325836,\
+-	-6.27333604, -0.00034776, 0.00021303, 7.27298828, 0.99893774, 0.99943921, 0.49325838,\
+-	-6.27333614, -0.00034772, 0.00021301, 7.27298842, 0.99893786, 0.99943927, 0.49325845,\
+-	-6.27333623, -0.00034768, 0.00021298, 7.27298855, 0.99893798, 0.99943933, 0.49325848,\
+-	-6.27333632, -0.00034764, 0.00021296, 7.27298868, 0.99893810, 0.99943940, 0.49325833,\
+-	-6.27333642, -0.00034760, 0.00021294, 7.27298881, 0.99893822, 0.99943946, 0.49325843,\
+-	-6.27333651, -0.00034757, 0.00021291, 7.27298895, 0.99893834, 0.99943952, 0.49325849,\
+-	-6.27333661, -0.00034753, 0.00021289, 7.27298908, 0.99893846, 0.99943958, 0.49325841,\
+-	-6.27333670, -0.00034749, 0.00021286, 7.27298921, 0.99893858, 0.99943965, 0.49325856,\
+-	-6.27333679, -0.00034745, 0.00021284, 7.27298934, 0.99893870, 0.99943971, 0.49325841,\
+-	-6.27333689, -0.00034741, 0.00021282, 7.27298948, 0.99893882, 0.99943977, 0.49325845,\
+-	-6.27333698, -0.00034737, 0.00021279, 7.27298961, 0.99893894, 0.99943984, 0.49325852,\
+-	-6.27333707, -0.00034733, 0.00021277, 7.27298974, 0.99893906, 0.99943990, 0.49325863,\
+-	-6.27333717, -0.00034729, 0.00021275, 7.27298987, 0.99893918, 0.99943996, 0.49325866,\
+-	-6.27333726, -0.00034725, 0.00021272, 7.27299000, 0.99893929, 0.99944002, 0.49325856,\
+-	-6.27333735, -0.00034721, 0.00021270, 7.27299014, 0.99893941, 0.99944009, 0.49325854,\
+-	-6.27333745, -0.00034718, 0.00021267, 7.27299027, 0.99893953, 0.99944015, 0.49325858,\
+-	-6.27333754, -0.00034714, 0.00021265, 7.27299040, 0.99893965, 0.99944021, 0.49325856,\
+-	-6.27333763, -0.00034710, 0.00021263, 7.27299053, 0.99893977, 0.99944028, 0.49325873,\
+-	-6.27333772, -0.00034706, 0.00021260, 7.27299067, 0.99893989, 0.99944034, 0.49325877,\
+-	-6.27333782, -0.00034702, 0.00021258, 7.27299080, 0.99894001, 0.99944040, 0.49325864,\
+-	-6.27333791, -0.00034698, 0.00021255, 7.27299093, 0.99894013, 0.99944046, 0.49325857,\
+-	-6.27333800, -0.00034694, 0.00021253, 7.27299106, 0.99894025, 0.99944053, 0.49325852,\
+-	-6.27333810, -0.00034690, 0.00021251, 7.27299119, 0.99894036, 0.99944059, 0.49325872,\
+-	-6.27333819, -0.00034686, 0.00021248, 7.27299133, 0.99894048, 0.99944065, 0.49325865,\
+-	-6.27333828, -0.00034683, 0.00021246, 7.27299146, 0.99894060, 0.99944072, 0.49325884,\
+-	-6.27333838, -0.00034679, 0.00021244, 7.27299159, 0.99894072, 0.99944078, 0.49325864,\
+-	-6.27333847, -0.00034675, 0.00021241, 7.27299172, 0.99894084, 0.99944084, 0.49325865,\
+-	-6.27333856, -0.00034671, 0.00021239, 7.27299185, 0.99894096, 0.99944090, 0.49325871,\
+-	-6.27333866, -0.00034667, 0.00021236, 7.27299199, 0.99894108, 0.99944097, 0.49325862,\
+-	-6.27333875, -0.00034663, 0.00021234, 7.27299212, 0.99894120, 0.99944103, 0.49325892,\
+-	-6.27333884, -0.00034659, 0.00021232, 7.27299225, 0.99894131, 0.99944109, 0.49325886,\
+-	-6.27333893, -0.00034655, 0.00021229, 7.27299238, 0.99894143, 0.99944115, 0.49325892,\
+-	-6.27333903, -0.00034652, 0.00021227, 7.27299251, 0.99894155, 0.99944122, 0.49325878,\
+-	-6.27333912, -0.00034648, 0.00021225, 7.27299264, 0.99894167, 0.99944128, 0.49325893,\
+-	-6.27333921, -0.00034644, 0.00021222, 7.27299278, 0.99894179, 0.99944134, 0.49325882,\
+-	-6.27333931, -0.00034640, 0.00021220, 7.27299291, 0.99894191, 0.99944140, 0.49325880,\
+-	-6.27333940, -0.00034636, 0.00021217, 7.27299304, 0.99894202, 0.99944147, 0.49325884,\
+-	-6.27333949, -0.00034632, 0.00021215, 7.27299317, 0.99894214, 0.99944153, 0.49325871,\
+-	-6.27333958, -0.00034628, 0.00021213, 7.27299330, 0.99894226, 0.99944159, 0.49325888,\
+-	-6.27333968, -0.00034624, 0.00021210, 7.27299343, 0.99894238, 0.99944165, 0.49325907,\
+-	-6.27333977, -0.00034620, 0.00021208, 7.27299356, 0.99894250, 0.99944172, 0.49325884,\
+-	-6.27333986, -0.00034617, 0.00021206, 7.27299370, 0.99894262, 0.99944178, 0.49325906,\
+-	-6.27333995, -0.00034613, 0.00021203, 7.27299383, 0.99894273, 0.99944184, 0.49325903,\
+-	-6.27334005, -0.00034609, 0.00021201, 7.27299396, 0.99894285, 0.99944190, 0.49325895,\
+-	-6.27334014, -0.00034605, 0.00021198, 7.27299409, 0.99894297, 0.99944197, 0.49325883,\
+-	-6.27334023, -0.00034601, 0.00021196, 7.27299422, 0.99894309, 0.99944203, 0.49325893,\
+-	-6.27334033, -0.00034597, 0.00021194, 7.27299435, 0.99894321, 0.99944209, 0.49325903,\
+-	-6.27334042, -0.00034593, 0.00021191, 7.27299448, 0.99894333, 0.99944215, 0.49325919,\
+-	-6.27334051, -0.00034590, 0.00021189, 7.27299461, 0.99894344, 0.99944222, 0.49325911,\
+-	-6.27334060, -0.00034586, 0.00021187, 7.27299475, 0.99894356, 0.99944228, 0.49325916,\
+-	-6.27334070, -0.00034582, 0.00021184, 7.27299488, 0.99894368, 0.99944234, 0.49325910,\
+-	-6.27334079, -0.00034578, 0.00021182, 7.27299501, 0.99894380, 0.99944240, 0.49325905,\
+-	-6.27334088, -0.00034574, 0.00021179, 7.27299514, 0.99894392, 0.99944246, 0.49325907,\
+-	-6.27334097, -0.00034570, 0.00021177, 7.27299527, 0.99894403, 0.99944253, 0.49325918,\
+-	-6.27334107, -0.00034566, 0.00021175, 7.27299540, 0.99894415, 0.99944259, 0.49325910,\
+-	-6.27334116, -0.00034563, 0.00021172, 7.27299553, 0.99894427, 0.99944265, 0.49325909,\
+-	-6.27334125, -0.00034559, 0.00021170, 7.27299566, 0.99894439, 0.99944271, 0.49325903,\
+-	-6.27334134, -0.00034555, 0.00021168, 7.27299579, 0.99894451, 0.99944278, 0.49325934,\
+-	-6.27334143, -0.00034551, 0.00021165, 7.27299593, 0.99894462, 0.99944284, 0.49325921,\
+-	-6.27334153, -0.00034547, 0.00021163, 7.27299606, 0.99894474, 0.99944290, 0.49325916,\
+-	-6.27334162, -0.00034543, 0.00021161, 7.27299619, 0.99894486, 0.99944296, 0.49325905,\
+-	-6.27334171, -0.00034539, 0.00021158, 7.27299632, 0.99894498, 0.99944302, 0.49325932,\
+-	-6.27334180, -0.00034536, 0.00021156, 7.27299645, 0.99894509, 0.99944309, 0.49325918,\
+-	-6.27334190, -0.00034532, 0.00021153, 7.27299658, 0.99894521, 0.99944315, 0.49325928,\
+-	-6.27334199, -0.00034528, 0.00021151, 7.27299671, 0.99894533, 0.99944321, 0.49325927,\
+-	-6.27334208, -0.00034524, 0.00021149, 7.27299684, 0.99894545, 0.99944327, 0.49325910,\
+-	-6.27334217, -0.00034520, 0.00021146, 7.27299697, 0.99894557, 0.99944334, 0.49325933,\
+-	-6.27334226, -0.00034516, 0.00021144, 7.27299710, 0.99894568, 0.99944340, 0.49325931,\
+-	-6.27334236, -0.00034512, 0.00021142, 7.27299723, 0.99894580, 0.99944346, 0.49325913,\
+-	-6.27334245, -0.00034509, 0.00021139, 7.27299736, 0.99894592, 0.99944352, 0.49325935,\
+-	-6.27334254, -0.00034505, 0.00021137, 7.27299749, 0.99894604, 0.99944358, 0.49325926,\
+-	-6.27334263, -0.00034501, 0.00021135, 7.27299762, 0.99894615, 0.99944365, 0.49325931,\
+-	-6.27334273, -0.00034497, 0.00021132, 7.27299776, 0.99894627, 0.99944371, 0.49325923,\
+-	-6.27334282, -0.00034493, 0.00021130, 7.27299789, 0.99894639, 0.99944377, 0.49325932,\
+-	-6.27334291, -0.00034489, 0.00021128, 7.27299802, 0.99894651, 0.99944383, 0.49325937,\
+-	-6.27334300, -0.00034486, 0.00021125, 7.27299815, 0.99894662, 0.99944389, 0.49325925,\
+-	-6.27334309, -0.00034482, 0.00021123, 7.27299828, 0.99894674, 0.99944396, 0.49325938,\
+-	-6.27334319, -0.00034478, 0.00021120, 7.27299841, 0.99894686, 0.99944402, 0.49325937,\
+-	-6.27334328, -0.00034474, 0.00021118, 7.27299854, 0.99894697, 0.99944408, 0.49325933,\
+-	-6.27334337, -0.00034470, 0.00021116, 7.27299867, 0.99894709, 0.99944414, 0.49325964,\
+-	-6.27334346, -0.00034466, 0.00021113, 7.27299880, 0.99894721, 0.99944420, 0.49325932,\
+-	-6.27334355, -0.00034462, 0.00021111, 7.27299893, 0.99894733, 0.99944426, 0.49325939,\
+-	-6.27334364, -0.00034459, 0.00021109, 7.27299906, 0.99894744, 0.99944433, 0.49325953,\
+-	-6.27334374, -0.00034455, 0.00021106, 7.27299919, 0.99894756, 0.99944439, 0.49325955,\
+-	-6.27334383, -0.00034451, 0.00021104, 7.27299932, 0.99894768, 0.99944445, 0.49325952,\
+-	-6.27334392, -0.00034447, 0.00021102, 7.27299945, 0.99894780, 0.99944451, 0.49325957,\
+-	-6.27334401, -0.00034443, 0.00021099, 7.27299958, 0.99894791, 0.99944457, 0.49325952,\
+-	-6.27334410, -0.00034439, 0.00021097, 7.27299971, 0.99894803, 0.99944464, 0.49325948,\
+-	-6.27334420, -0.00034436, 0.00021095, 7.27299984, 0.99894815, 0.99944470, 0.49325953,\
+-	-6.27334429, -0.00034432, 0.00021092, 7.27299997, 0.99894826, 0.99944476, 0.49325969,\
+-	-6.27334438, -0.00034428, 0.00021090, 7.27300010, 0.99894838, 0.99944482, 0.49325951,\
+-	-6.27334447, -0.00034424, 0.00021088, 7.27300023, 0.99894850, 0.99944488, 0.49325964,\
+-	-6.27334456, -0.00034420, 0.00021085, 7.27300036, 0.99894861, 0.99944494, 0.49325959,\
+-	-6.27334465, -0.00034417, 0.00021083, 7.27300049, 0.99894873, 0.99944501, 0.49325984,\
+-	-6.27334475, -0.00034413, 0.00021081, 7.27300062, 0.99894885, 0.99944507, 0.49325961,\
+-	-6.27334484, -0.00034409, 0.00021078, 7.27300075, 0.99894897, 0.99944513, 0.49325970,\
+-	-6.27334493, -0.00034405, 0.00021076, 7.27300088, 0.99894908, 0.99944519, 0.49325973,\
+-	-6.27334502, -0.00034401, 0.00021073, 7.27300101, 0.99894920, 0.99944525, 0.49325965,\
+-	-6.27334511, -0.00034397, 0.00021071, 7.27300114, 0.99894932, 0.99944531, 0.49325961,\
+-	-6.27334520, -0.00034394, 0.00021069, 7.27300127, 0.99894943, 0.99944538, 0.49325970,\
+-	-6.27334529, -0.00034390, 0.00021066, 7.27300140, 0.99894955, 0.99944544, 0.49325947,\
+-	-6.27334539, -0.00034386, 0.00021064, 7.27300153, 0.99894967, 0.99944550, 0.49325970,\
+-	-6.27334548, -0.00034382, 0.00021062, 7.27300166, 0.99894978, 0.99944556, 0.49325986,\
+-	-6.27334557, -0.00034378, 0.00021059, 7.27300179, 0.99894990, 0.99944562, 0.49325975,\
+-	-6.27334566, -0.00034374, 0.00021057, 7.27300192, 0.99895002, 0.99944568, 0.49325973,\
+-	-6.27334575, -0.00034371, 0.00021055, 7.27300205, 0.99895013, 0.99944575, 0.49325990,\
+-	-6.27334584, -0.00034367, 0.00021052, 7.27300217, 0.99895025, 0.99944581, 0.49325987,\
+-	-6.27334593, -0.00034363, 0.00021050, 7.27300230, 0.99895037, 0.99944587, 0.49325975,\
+-	-6.27334603, -0.00034359, 0.00021048, 7.27300243, 0.99895048, 0.99944593, 0.49325986,\
+-	-6.27334612, -0.00034355, 0.00021045, 7.27300256, 0.99895060, 0.99944599, 0.49325980,\
+-	-6.27334621, -0.00034352, 0.00021043, 7.27300269, 0.99895072, 0.99944605, 0.49325999,\
+-	-6.27334630, -0.00034348, 0.00021041, 7.27300282, 0.99895083, 0.99944611, 0.49326005,\
+-	-6.27334639, -0.00034344, 0.00021038, 7.27300295, 0.99895095, 0.99944618, 0.49325989,\
+-	-6.27334648, -0.00034340, 0.00021036, 7.27300308, 0.99895106, 0.99944624, 0.49325982,\
+-	-6.27334657, -0.00034336, 0.00021034, 7.27300321, 0.99895118, 0.99944630, 0.49326004,\
+-	-6.27334666, -0.00034333, 0.00021031, 7.27300334, 0.99895130, 0.99944636, 0.49325987,\
+-	-6.27334676, -0.00034329, 0.00021029, 7.27300347, 0.99895141, 0.99944642, 0.49326003,\
+-	-6.27334685, -0.00034325, 0.00021027, 7.27300360, 0.99895153, 0.99944648, 0.49325986,\
+-	-6.27334694, -0.00034321, 0.00021024, 7.27300373, 0.99895165, 0.99944654, 0.49326013,\
+-	-6.27334703, -0.00034317, 0.00021022, 7.27300386, 0.99895176, 0.99944661, 0.49326001,\
+-	-6.27334712, -0.00034313, 0.00021020, 7.27300399, 0.99895188, 0.99944667, 0.49325997,\
+-	-6.27334721, -0.00034310, 0.00021017, 7.27300411, 0.99895199, 0.99944673, 0.49325982,\
+-	-6.27334730, -0.00034306, 0.00021015, 7.27300424, 0.99895211, 0.99944679, 0.49326004,\
+-	-6.27334739, -0.00034302, 0.00021013, 7.27300437, 0.99895223, 0.99944685, 0.49326000,\
+-	-6.27334748, -0.00034298, 0.00021010, 7.27300450, 0.99895234, 0.99944691, 0.49326002,\
+-	-6.27334758, -0.00034294, 0.00021008, 7.27300463, 0.99895246, 0.99944697, 0.49326019,\
+-	-6.27334767, -0.00034291, 0.00021006, 7.27300476, 0.99895258, 0.99944704, 0.49326022,\
+-	-6.27334776, -0.00034287, 0.00021003, 7.27300489, 0.99895269, 0.99944710, 0.49325991,\
+-	-6.27334785, -0.00034283, 0.00021001, 7.27300502, 0.99895281, 0.99944716, 0.49326017,\
+-	-6.27334794, -0.00034279, 0.00020999, 7.27300515, 0.99895292, 0.99944722, 0.49326012,\
+-	-6.27334803, -0.00034276, 0.00020996, 7.27300527, 0.99895304, 0.99944728, 0.49326022,\
+-	-6.27334812, -0.00034272, 0.00020994, 7.27300540, 0.99895316, 0.99944734, 0.49326001,\
+-	-6.27334821, -0.00034268, 0.00020992, 7.27300553, 0.99895327, 0.99944740, 0.49326024,\
+-	-6.27334830, -0.00034264, 0.00020989, 7.27300566, 0.99895339, 0.99944746, 0.49326021,\
+-	-6.27334839, -0.00034260, 0.00020987, 7.27300579, 0.99895350, 0.99944753, 0.49326029,\
+-	-6.27334848, -0.00034257, 0.00020985, 7.27300592, 0.99895362, 0.99944759, 0.49326016,\
+-	-6.27334857, -0.00034253, 0.00020983, 7.27300605, 0.99895373, 0.99944765, 0.49326016,\
+-	-6.27334867, -0.00034249, 0.00020980, 7.27300618, 0.99895385, 0.99944771, 0.49326045,\
+-	-6.27334876, -0.00034245, 0.00020978, 7.27300630, 0.99895397, 0.99944777, 0.49326011,\
+-	-6.27334885, -0.00034241, 0.00020976, 7.27300643, 0.99895408, 0.99944783, 0.49326023,\
+-	-6.27334894, -0.00034238, 0.00020973, 7.27300656, 0.99895420, 0.99944789, 0.49326007,\
+-	-6.27334903, -0.00034234, 0.00020971, 7.27300669, 0.99895431, 0.99944795, 0.49326021,\
+-	-6.27334912, -0.00034230, 0.00020969, 7.27300682, 0.99895443, 0.99944801, 0.49326027,\
+-	-6.27334921, -0.00034226, 0.00020966, 7.27300695, 0.99895454, 0.99944807, 0.49326040,\
+-	-6.27334930, -0.00034222, 0.00020964, 7.27300708, 0.99895466, 0.99944814, 0.49326032,\
+-	-6.27334939, -0.00034219, 0.00020962, 7.27300720, 0.99895478, 0.99944820, 0.49326028,\
+-	-6.27334948, -0.00034215, 0.00020959, 7.27300733, 0.99895489, 0.99944826, 0.49326022,\
+-	-6.27334957, -0.00034211, 0.00020957, 7.27300746, 0.99895501, 0.99944832, 0.49326044,\
+-	-6.27334966, -0.00034207, 0.00020955, 7.27300759, 0.99895512, 0.99944838, 0.49326036,\
+-	-6.27334975, -0.00034204, 0.00020952, 7.27300772, 0.99895524, 0.99944844, 0.49326052,\
+-	-6.27334984, -0.00034200, 0.00020950, 7.27300785, 0.99895535, 0.99944850, 0.49326050,\
+-	-6.27334993, -0.00034196, 0.00020948, 7.27300797, 0.99895547, 0.99944856, 0.49326047,\
+-	-6.27335002, -0.00034192, 0.00020945, 7.27300810, 0.99895558, 0.99944862, 0.49326049,\
+-	-6.27335011, -0.00034188, 0.00020943, 7.27300823, 0.99895570, 0.99944868, 0.49326038,\
+-	-6.27335021, -0.00034185, 0.00020941, 7.27300836, 0.99895582, 0.99944875, 0.49326054,\
+-	-6.27335030, -0.00034181, 0.00020938, 7.27300849, 0.99895593, 0.99944881, 0.49326041,\
+-	-6.27335039, -0.00034177, 0.00020936, 7.27300861, 0.99895605, 0.99944887, 0.49326059,\
+-	-6.27335048, -0.00034173, 0.00020934, 7.27300874, 0.99895616, 0.99944893, 0.49326058,\
+-	-6.27335057, -0.00034170, 0.00020932, 7.27300887, 0.99895628, 0.99944899, 0.49326043,\
+-	-6.27335066, -0.00034166, 0.00020929, 7.27300900, 0.99895639, 0.99944905, 0.49326062,\
+-	-6.27335075, -0.00034162, 0.00020927, 7.27300913, 0.99895651, 0.99944911, 0.49326067,\
+-	-6.27335084, -0.00034158, 0.00020925, 7.27300925, 0.99895662, 0.99944917, 0.49326078,\
+-	-6.27335093, -0.00034154, 0.00020922, 7.27300938, 0.99895674, 0.99944923, 0.49326065,\
+-	-6.27335102, -0.00034151, 0.00020920, 7.27300951, 0.99895685, 0.99944929, 0.49326059,\
+-	-6.27335111, -0.00034147, 0.00020918, 7.27300964, 0.99895697, 0.99944935, 0.49326055,\
+-	-6.27335120, -0.00034143, 0.00020915, 7.27300977, 0.99895708, 0.99944941, 0.49326066,\
+-	-6.27335129, -0.00034139, 0.00020913, 7.27300989, 0.99895720, 0.99944948, 0.49326077,\
+-	-6.27335138, -0.00034136, 0.00020911, 7.27301002, 0.99895731, 0.99944954, 0.49326066,\
+-	-6.27335147, -0.00034132, 0.00020908, 7.27301015, 0.99895743, 0.99944960, 0.49326075,\
+-	-6.27335156, -0.00034128, 0.00020906, 7.27301028, 0.99895754, 0.99944966, 0.49326055,\
+-	-6.27335165, -0.00034124, 0.00020904, 7.27301040, 0.99895766, 0.99944972, 0.49326086,\
+-	-6.27335174, -0.00034121, 0.00020902, 7.27301053, 0.99895777, 0.99944978, 0.49326055,\
+-	-6.27335183, -0.00034117, 0.00020899, 7.27301066, 0.99895789, 0.99944984, 0.49326069,\
+-	-6.27335192, -0.00034113, 0.00020897, 7.27301079, 0.99895800, 0.99944990, 0.49326076,\
+-	-6.27335201, -0.00034109, 0.00020895, 7.27301092, 0.99895812, 0.99944996, 0.49326064,\
+-	-6.27335210, -0.00034106, 0.00020892, 7.27301104, 0.99895823, 0.99945002, 0.49326064,\
+-	-6.27335219, -0.00034102, 0.00020890, 7.27301117, 0.99895835, 0.99945008, 0.49326079,\
+-	-6.27335228, -0.00034098, 0.00020888, 7.27301130, 0.99895846, 0.99945014, 0.49326094,\
+-	-6.27335237, -0.00034094, 0.00020885, 7.27301143, 0.99895858, 0.99945020, 0.49326073,\
+-	-6.27335246, -0.00034091, 0.00020883, 7.27301155, 0.99895869, 0.99945026, 0.49326067,\
+-	-6.27335255, -0.00034087, 0.00020881, 7.27301168, 0.99895881, 0.99945032, 0.49326096,\
+-	-6.27335264, -0.00034083, 0.00020878, 7.27301181, 0.99895892, 0.99945038, 0.49326074,\
+-	-6.27335273, -0.00034079, 0.00020876, 7.27301194, 0.99895903, 0.99945045, 0.49326072,\
+-	-6.27335282, -0.00034076, 0.00020874, 7.27301206, 0.99895915, 0.99945051, 0.49326097,\
+-	-6.27335291, -0.00034072, 0.00020872, 7.27301219, 0.99895926, 0.99945057, 0.49326095,\
+-	-6.27335300, -0.00034068, 0.00020869, 7.27301232, 0.99895938, 0.99945063, 0.49326083,\
+-	-6.27335309, -0.00034064, 0.00020867, 7.27301244, 0.99895949, 0.99945069, 0.49326094,\
+-	-6.27335318, -0.00034061, 0.00020865, 7.27301257, 0.99895961, 0.99945075, 0.49326071,\
+-	-6.27335327, -0.00034057, 0.00020862, 7.27301270, 0.99895972, 0.99945081, 0.49326094,\
+-	-6.27335336, -0.00034053, 0.00020860, 7.27301283, 0.99895984, 0.99945087, 0.49326119,\
+-	-6.27335345, -0.00034049, 0.00020858, 7.27301295, 0.99895995, 0.99945093, 0.49326102,\
+-	-6.27335354, -0.00034046, 0.00020856, 7.27301308, 0.99896007, 0.99945099, 0.49326095,\
+-	-6.27335363, -0.00034042, 0.00020853, 7.27301321, 0.99896018, 0.99945105, 0.49326111,\
+-	-6.27335372, -0.00034038, 0.00020851, 7.27301333, 0.99896029, 0.99945111, 0.49326093,\
+-	-6.27335380, -0.00034034, 0.00020849, 7.27301346, 0.99896041, 0.99945117, 0.49326092,\
+-	-6.27335389, -0.00034031, 0.00020846, 7.27301359, 0.99896052, 0.99945123, 0.49326086,\
+-	-6.27335398, -0.00034027, 0.00020844, 7.27301372, 0.99896064, 0.99945129, 0.49326111,\
+-	-6.27335407, -0.00034023, 0.00020842, 7.27301384, 0.99896075, 0.99945135, 0.49326085,\
+-	-6.27335416, -0.00034019, 0.00020839, 7.27301397, 0.99896087, 0.99945141, 0.49326107,\
+-	-6.27335425, -0.00034016, 0.00020837, 7.27301410, 0.99896098, 0.99945147, 0.49326138,\
+-	-6.27335434, -0.00034012, 0.00020835, 7.27301422, 0.99896109, 0.99945153, 0.49326107,\
+-	-6.27335443, -0.00034008, 0.00020833, 7.27301435, 0.99896121, 0.99945159, 0.49326110,\
+-	-6.27335452, -0.00034004, 0.00020830, 7.27301448, 0.99896132, 0.99945165, 0.49326107,\
+-	-6.27335461, -0.00034001, 0.00020828, 7.27301460, 0.99896144, 0.99945171, 0.49326111,\
+-	-6.27335470, -0.00033997, 0.00020826, 7.27301473, 0.99896155, 0.99945177, 0.49326094,\
+-	-6.27335479, -0.00033993, 0.00020823, 7.27301486, 0.99896166, 0.99945183, 0.49326116,\
+-	-6.27335488, -0.00033989, 0.00020821, 7.27301498, 0.99896178, 0.99945189, 0.49326119,\
+-	-6.27335497, -0.00033986, 0.00020819, 7.27301511, 0.99896189, 0.99945195, 0.49326130,\
+-	-6.27335506, -0.00033982, 0.00020817, 7.27301524, 0.99896201, 0.99945201, 0.49326119,\
+-	-6.27335515, -0.00033978, 0.00020814, 7.27301536, 0.99896212, 0.99945207, 0.49326105,\
+-	-6.27335524, -0.00033975, 0.00020812, 7.27301549, 0.99896223, 0.99945213, 0.49326119,\
+-	-6.27335533, -0.00033971, 0.00020810, 7.27301562, 0.99896235, 0.99945219, 0.49326118,\
+-	-6.27335541, -0.00033967, 0.00020807, 7.27301574, 0.99896246, 0.99945225, 0.49326126,\
+-	-6.27335550, -0.00033963, 0.00020805, 7.27301587, 0.99896258, 0.99945231, 0.49326104,\
+-	-6.27335559, -0.00033960, 0.00020803, 7.27301600, 0.99896269, 0.99945237, 0.49326124,\
+-	-6.27335568, -0.00033956, 0.00020801, 7.27301612, 0.99896280, 0.99945243, 0.49326121,\
+-	-6.27335577, -0.00033952, 0.00020798, 7.27301625, 0.99896292, 0.99945249, 0.49326126,\
+-	-6.27335586, -0.00033948, 0.00020796, 7.27301638, 0.99896303, 0.99945255, 0.49326146,\
+-	-6.27335595, -0.00033945, 0.00020794, 7.27301650, 0.99896315, 0.99945261, 0.49326123,\
+-	-6.27335604, -0.00033941, 0.00020791, 7.27301663, 0.99896326, 0.99945267, 0.49326137,\
+-	-6.27335613, -0.00033937, 0.00020789, 7.27301675, 0.99896337, 0.99945274, 0.49326124,\
+-	-6.27335622, -0.00033934, 0.00020787, 7.27301688, 0.99896349, 0.99945279, 0.49326144,\
+-	-6.27335631, -0.00033930, 0.00020785, 7.27301701, 0.99896360, 0.99945286, 0.49326118,\
+-	-6.27335639, -0.00033926, 0.00020782, 7.27301713, 0.99896371, 0.99945291, 0.49326131,\
+-	-6.27335648, -0.00033922, 0.00020780, 7.27301726, 0.99896383, 0.99945297, 0.49326131,\
+-	-6.27335657, -0.00033919, 0.00020778, 7.27301739, 0.99896394, 0.99945303, 0.49326137,\
+-	-6.27335666, -0.00033915, 0.00020776, 7.27301751, 0.99896405, 0.99945309, 0.49326160,\
+-	-6.27335675, -0.00033911, 0.00020773, 7.27301764, 0.99896417, 0.99945315, 0.49326160,\
+-	-6.27335684, -0.00033908, 0.00020771, 7.27301776, 0.99896428, 0.99945321, 0.49326123,\
+-	-6.27335693, -0.00033904, 0.00020769, 7.27301789, 0.99896439, 0.99945327, 0.49326161,\
+-	-6.27335702, -0.00033900, 0.00020766, 7.27301802, 0.99896451, 0.99945333, 0.49326152,\
+-	-6.27335711, -0.00033896, 0.00020764, 7.27301814, 0.99896462, 0.99945339, 0.49326143,\
+-	-6.27335720, -0.00033893, 0.00020762, 7.27301827, 0.99896473, 0.99945345, 0.49326145,\
+-	-6.27335728, -0.00033889, 0.00020760, 7.27301839, 0.99896485, 0.99945351, 0.49326173,\
+-	-6.27335737, -0.00033885, 0.00020757, 7.27301852, 0.99896496, 0.99945357, 0.49326144,\
+-	-6.27335746, -0.00033882, 0.00020755, 7.27301865, 0.99896507, 0.99945363, 0.49326151,\
+-	-6.27335755, -0.00033878, 0.00020753, 7.27301877, 0.99896519, 0.99945369, 0.49326137,\
+-	-6.27335764, -0.00033874, 0.00020751, 7.27301890, 0.99896530, 0.99945375, 0.49326159,\
+-	-6.27335773, -0.00033870, 0.00020748, 7.27301902, 0.99896541, 0.99945381, 0.49326170,\
+-	-6.27335782, -0.00033867, 0.00020746, 7.27301915, 0.99896553, 0.99945387, 0.49326167,\
+-	-6.27335791, -0.00033863, 0.00020744, 7.27301927, 0.99896564, 0.99945393, 0.49326166,\
+-	-6.27335799, -0.00033859, 0.00020741, 7.27301940, 0.99896575, 0.99945399, 0.49326169,\
+-	-6.27335808, -0.00033856, 0.00020739, 7.27301953, 0.99896587, 0.99945405, 0.49326162,\
+-	-6.27335817, -0.00033852, 0.00020737, 7.27301965, 0.99896598, 0.99945411, 0.49326183,\
+-	-6.27335826, -0.00033848, 0.00020735, 7.27301978, 0.99896609, 0.99945417, 0.49326173,\
+-	-6.27335835, -0.00033845, 0.00020732, 7.27301990, 0.99896621, 0.99945423, 0.49326171,\
+-	-6.27335844, -0.00033841, 0.00020730, 7.27302003, 0.99896632, 0.99945429, 0.49326166,\
+-	-6.27335853, -0.00033837, 0.00020728, 7.27302015, 0.99896643, 0.99945435, 0.49326165,\
+-	-6.27335861, -0.00033833, 0.00020726, 7.27302028, 0.99896655, 0.99945441, 0.49326181,\
+-	-6.27335870, -0.00033830, 0.00020723, 7.27302041, 0.99896666, 0.99945447, 0.49326156,\
+-	-6.27335879, -0.00033826, 0.00020721, 7.27302053, 0.99896677, 0.99945453, 0.49326193,\
+-	-6.27335888, -0.00033822, 0.00020719, 7.27302066, 0.99896688, 0.99945459, 0.49326181,\
+-	-6.27335897, -0.00033819, 0.00020716, 7.27302078, 0.99896700, 0.99945465, 0.49326163,\
+-	-6.27335906, -0.00033815, 0.00020714, 7.27302091, 0.99896711, 0.99945471, 0.49326173,\
+-	-6.27335915, -0.00033811, 0.00020712, 7.27302103, 0.99896722, 0.99945477, 0.49326188,\
+-	-6.27335923, -0.00033808, 0.00020710, 7.27302116, 0.99896734, 0.99945483, 0.49326193,\
+-	-6.27335932, -0.00033804, 0.00020707, 7.27302128, 0.99896745, 0.99945489, 0.49326203,\
+-	-6.27335941, -0.00033800, 0.00020705, 7.27302141, 0.99896756, 0.99945495, 0.49326181,\
+-	-6.27335950, -0.00033797, 0.00020703, 7.27302153, 0.99896767, 0.99945501, 0.49326178,\
+-	-6.27335959, -0.00033793, 0.00020701, 7.27302166, 0.99896779, 0.99945507, 0.49326183,\
+-	-6.27335968, -0.00033789, 0.00020698, 7.27302178, 0.99896790, 0.99945512, 0.49326183,\
+-	-6.27335976, -0.00033785, 0.00020696, 7.27302191, 0.99896801, 0.99945518, 0.49326190,\
+-	-6.27335985, -0.00033782, 0.00020694, 7.27302203, 0.99896813, 0.99945524, 0.49326204,\
+-	-6.27335994, -0.00033778, 0.00020692, 7.27302216, 0.99896824, 0.99945530, 0.49326197,\
+-	-6.27336003, -0.00033774, 0.00020689, 7.27302228, 0.99896835, 0.99945536, 0.49326200,\
+-	-6.27336012, -0.00033771, 0.00020687, 7.27302241, 0.99896846, 0.99945542, 0.49326187,\
+-	-6.27336021, -0.00033767, 0.00020685, 7.27302253, 0.99896858, 0.99945548, 0.49326214,\
+-	-6.27336029, -0.00033763, 0.00020683, 7.27302266, 0.99896869, 0.99945554, 0.49326210,\
+-	-6.27336038, -0.00033760, 0.00020680, 7.27302278, 0.99896880, 0.99945560, 0.49326210,\
+-	-6.27336047, -0.00033756, 0.00020678, 7.27302291, 0.99896891, 0.99945566, 0.49326201,\
+-	-6.27336056, -0.00033752, 0.00020676, 7.27302303, 0.99896903, 0.99945572, 0.49326223,\
+-	-6.27336065, -0.00033749, 0.00020674, 7.27302316, 0.99896914, 0.99945578, 0.49326214,\
+-	-6.27336073, -0.00033745, 0.00020671, 7.27302328, 0.99896925, 0.99945584, 0.49326184,\
+-	-6.27336082, -0.00033741, 0.00020669, 7.27302341, 0.99896936, 0.99945590, 0.49326190,\
+-	-6.27336091, -0.00033738, 0.00020667, 7.27302353, 0.99896948, 0.99945596, 0.49326192,\
+-	-6.27336100, -0.00033734, 0.00020665, 7.27302366, 0.99896959, 0.99945602, 0.49326215,\
+-	-6.27336109, -0.00033730, 0.00020662, 7.27302378, 0.99896970, 0.99945607, 0.49326198,\
+-	-6.27336117, -0.00033727, 0.00020660, 7.27302391, 0.99896981, 0.99945613, 0.49326211,\
+-	-6.27336126, -0.00033723, 0.00020658, 7.27302403, 0.99896992, 0.99945619, 0.49326202,\
+-	-6.27336135, -0.00033719, 0.00020656, 7.27302416, 0.99897004, 0.99945625, 0.49326208,\
+-	-6.27336144, -0.00033716, 0.00020653, 7.27302428, 0.99897015, 0.99945631, 0.49326216,\
+-	-6.27336153, -0.00033712, 0.00020651, 7.27302441, 0.99897026, 0.99945637, 0.49326199,\
+-	-6.27336161, -0.00033708, 0.00020649, 7.27302453, 0.99897037, 0.99945643, 0.49326218,\
+-	-6.27336170, -0.00033705, 0.00020647, 7.27302466, 0.99897049, 0.99945649, 0.49326214,\
+-	-6.27336179, -0.00033701, 0.00020644, 7.27302478, 0.99897060, 0.99945655, 0.49326240,\
+-	-6.27336188, -0.00033697, 0.00020642, 7.27302491, 0.99897071, 0.99945661, 0.49326199,\
+-	-6.27336197, -0.00033694, 0.00020640, 7.27302503, 0.99897082, 0.99945667, 0.49326203,\
+-	-6.27336205, -0.00033690, 0.00020638, 7.27302515, 0.99897093, 0.99945673, 0.49326224,\
+-	-6.27336214, -0.00033686, 0.00020635, 7.27302528, 0.99897105, 0.99945679, 0.49326220,\
+-	-6.27336223, -0.00033683, 0.00020633, 7.27302540, 0.99897116, 0.99945684, 0.49326222,\
+-	-6.27336232, -0.00033679, 0.00020631, 7.27302553, 0.99897127, 0.99945690, 0.49326242,\
+-	-6.27336240, -0.00033675, 0.00020629, 7.27302565, 0.99897138, 0.99945696, 0.49326213,\
+-	-6.27336249, -0.00033672, 0.00020626, 7.27302578, 0.99897149, 0.99945702, 0.49326219,\
+-	-6.27336258, -0.00033668, 0.00020624, 7.27302590, 0.99897161, 0.99945708, 0.49326219,\
+-	-6.27336267, -0.00033664, 0.00020622, 7.27302603, 0.99897172, 0.99945714, 0.49326250,\
+-	-6.27336275, -0.00033661, 0.00020620, 7.27302615, 0.99897183, 0.99945720, 0.49326244,\
+-	-6.27336284, -0.00033657, 0.00020617, 7.27302627, 0.99897194, 0.99945726, 0.49326221,\
+-	-6.27336293, -0.00033653, 0.00020615, 7.27302640, 0.99897205, 0.99945732, 0.49326264,\
+-	-6.27336302, -0.00033650, 0.00020613, 7.27302652, 0.99897216, 0.99945738, 0.49326232,\
+-	-6.27336311, -0.00033646, 0.00020611, 7.27302665, 0.99897228, 0.99945743, 0.49326230,\
+-	-6.27336319, -0.00033642, 0.00020608, 7.27302677, 0.99897239, 0.99945749, 0.49326227,\
+-	-6.27336328, -0.00033639, 0.00020606, 7.27302689, 0.99897250, 0.99945755, 0.49326245,\
+-	-6.27336337, -0.00033635, 0.00020604, 7.27302702, 0.99897261, 0.99945761, 0.49326242,\
+-	-6.27336346, -0.00033631, 0.00020602, 7.27302714, 0.99897272, 0.99945767, 0.49326246,\
+-	-6.27336354, -0.00033628, 0.00020599, 7.27302727, 0.99897283, 0.99945773, 0.49326241,\
+-	-6.27336363, -0.00033624, 0.00020597, 7.27302739, 0.99897295, 0.99945779, 0.49326240,\
+-	-6.27336372, -0.00033620, 0.00020595, 7.27302751, 0.99897306, 0.99945785, 0.49326249,\
+-	-6.27336381, -0.00033617, 0.00020593, 7.27302764, 0.99897317, 0.99945791, 0.49326270,\
+-	-6.27336389, -0.00033613, 0.00020590, 7.27302776, 0.99897328, 0.99945797, 0.49326235,\
+-	-6.27336398, -0.00033609, 0.00020588, 7.27302789, 0.99897339, 0.99945802, 0.49326239,\
+-	-6.27336407, -0.00033606, 0.00020586, 7.27302801, 0.99897350, 0.99945808, 0.49326248,\
+-	-6.27336415, -0.00033602, 0.00020584, 7.27302813, 0.99897362, 0.99945814, 0.49326264,\
+-	-6.27336424, -0.00033598, 0.00020582, 7.27302826, 0.99897373, 0.99945820, 0.49326263,\
+-	-6.27336433, -0.00033595, 0.00020579, 7.27302838, 0.99897384, 0.99945826, 0.49326243,\
+-	-6.27336442, -0.00033591, 0.00020577, 7.27302851, 0.99897395, 0.99945832, 0.49326267,\
+-	-6.27336450, -0.00033587, 0.00020575, 7.27302863, 0.99897406, 0.99945838, 0.49326234,\
+-	-6.27336459, -0.00033584, 0.00020573, 7.27302875, 0.99897417, 0.99945844, 0.49326251,\
+-	-6.27336468, -0.00033580, 0.00020570, 7.27302888, 0.99897428, 0.99945849, 0.49326259,\
+-	-6.27336477, -0.00033577, 0.00020568, 7.27302900, 0.99897439, 0.99945855, 0.49326266,\
+-	-6.27336485, -0.00033573, 0.00020566, 7.27302912, 0.99897451, 0.99945861, 0.49326257,\
+-	-6.27336494, -0.00033569, 0.00020564, 7.27302925, 0.99897462, 0.99945867, 0.49326257,\
+-	-6.27336503, -0.00033566, 0.00020561, 7.27302937, 0.99897473, 0.99945873, 0.49326264,\
+-	-6.27336511, -0.00033562, 0.00020559, 7.27302949, 0.99897484, 0.99945879, 0.49326274,\
+-	-6.27336520, -0.00033558, 0.00020557, 7.27302962, 0.99897495, 0.99945885, 0.49326286,\
+-	-6.27336529, -0.00033555, 0.00020555, 7.27302974, 0.99897506, 0.99945891, 0.49326289,\
+-	-6.27336538, -0.00033551, 0.00020553, 7.27302986, 0.99897517, 0.99945896, 0.49326274,\
+-	-6.27336546, -0.00033547, 0.00020550, 7.27302999, 0.99897528, 0.99945902, 0.49326267,\
+-	-6.27336555, -0.00033544, 0.00020548, 7.27303011, 0.99897540, 0.99945908, 0.49326282,\
+-	-6.27336564, -0.00033540, 0.00020546, 7.27303023, 0.99897551, 0.99945914, 0.49326268,\
+-	-6.27336572, -0.00033537, 0.00020544, 7.27303036, 0.99897562, 0.99945920, 0.49326305,\
+-	-6.27336581, -0.00033533, 0.00020541, 7.27303048, 0.99897573, 0.99945926, 0.49326276,\
+-	-6.27336590, -0.00033529, 0.00020539, 7.27303060, 0.99897584, 0.99945932, 0.49326281,\
+-	-6.27336598, -0.00033526, 0.00020537, 7.27303073, 0.99897595, 0.99945937, 0.49326294,\
+-	-6.27336607, -0.00033522, 0.00020535, 7.27303085, 0.99897606, 0.99945943, 0.49326286,\
+-	-6.27336616, -0.00033518, 0.00020532, 7.27303097, 0.99897617, 0.99945949, 0.49326281,\
+-	-6.27336625, -0.00033515, 0.00020530, 7.27303110, 0.99897628, 0.99945955, 0.49326286,\
+-	-6.27336633, -0.00033511, 0.00020528, 7.27303122, 0.99897639, 0.99945961, 0.49326297,\
+-	-6.27336642, -0.00033508, 0.00020526, 7.27303134, 0.99897650, 0.99945967, 0.49326279,\
+-	-6.27336651, -0.00033504, 0.00020524, 7.27303147, 0.99897662, 0.99945973, 0.49326311,\
+-	-6.27336659, -0.00033500, 0.00020521, 7.27303159, 0.99897673, 0.99945978, 0.49326289,\
+-	-6.27336668, -0.00033497, 0.00020519, 7.27303171, 0.99897684, 0.99945984, 0.49326305,\
+-	-6.27336677, -0.00033493, 0.00020517, 7.27303184, 0.99897695, 0.99945990, 0.49326297,\
+-	-6.27336685, -0.00033489, 0.00020515, 7.27303196, 0.99897706, 0.99945996, 0.49326277,\
+-	-6.27336694, -0.00033486, 0.00020512, 7.27303208, 0.99897717, 0.99946002, 0.49326308,\
+-	-6.27336703, -0.00033482, 0.00020510, 7.27303221, 0.99897728, 0.99946008, 0.49326289,\
+-	-6.27336711, -0.00033479, 0.00020508, 7.27303233, 0.99897739, 0.99946013, 0.49326298,\
+-	-6.27336720, -0.00033475, 0.00020506, 7.27303245, 0.99897750, 0.99946019, 0.49326300,\
+-	-6.27336729, -0.00033471, 0.00020504, 7.27303257, 0.99897761, 0.99946025, 0.49326304,\
+-	-6.27336737, -0.00033468, 0.00020501, 7.27303270, 0.99897772, 0.99946031, 0.49326311,\
+-	-6.27336746, -0.00033464, 0.00020499, 7.27303282, 0.99897783, 0.99946037, 0.49326309,\
+-	-6.27336755, -0.00033460, 0.00020497, 7.27303294, 0.99897794, 0.99946043, 0.49326303,\
+-	-6.27336763, -0.00033457, 0.00020495, 7.27303306, 0.99897805, 0.99946048, 0.49326308,\
+-	-6.27336772, -0.00033453, 0.00020493, 7.27303319, 0.99897816, 0.99946054, 0.49326287,\
+-	-6.27336781, -0.00033450, 0.00020490, 7.27303331, 0.99897827, 0.99946060, 0.49326314,\
+-	-6.27336789, -0.00033446, 0.00020488, 7.27303343, 0.99897839, 0.99946066, 0.49326307,\
+-	-6.27336798, -0.00033442, 0.00020486, 7.27303356, 0.99897850, 0.99946072, 0.49326307,\
+-	-6.27336807, -0.00033439, 0.00020484, 7.27303368, 0.99897861, 0.99946078, 0.49326322,\
+-	-6.27336815, -0.00033435, 0.00020481, 7.27303380, 0.99897872, 0.99946083, 0.49326311,\
+-	-6.27336824, -0.00033432, 0.00020479, 7.27303392, 0.99897883, 0.99946089, 0.49326322,\
+-	-6.27336833, -0.00033428, 0.00020477, 7.27303405, 0.99897894, 0.99946095, 0.49326339,\
+-	-6.27336841, -0.00033424, 0.00020475, 7.27303417, 0.99897905, 0.99946101, 0.49326319,\
+-	-6.27336850, -0.00033421, 0.00020473, 7.27303429, 0.99897916, 0.99946107, 0.49326315,\
+-	-6.27336858, -0.00033417, 0.00020470, 7.27303441, 0.99897927, 0.99946113, 0.49326326,\
+-	-6.27336867, -0.00033413, 0.00020468, 7.27303454, 0.99897938, 0.99946118, 0.49326320,\
+-	-6.27336876, -0.00033410, 0.00020466, 7.27303466, 0.99897949, 0.99946124, 0.49326335,\
+-	-6.27336884, -0.00033406, 0.00020464, 7.27303478, 0.99897960, 0.99946130, 0.49326321,\
+-	-6.27336893, -0.00033403, 0.00020462, 7.27303490, 0.99897971, 0.99946136, 0.49326341,\
+-	-6.27336902, -0.00033399, 0.00020459, 7.27303503, 0.99897982, 0.99946142, 0.49326319,\
+-	-6.27336910, -0.00033395, 0.00020457, 7.27303515, 0.99897993, 0.99946147, 0.49326349,\
+-	-6.27336919, -0.00033392, 0.00020455, 7.27303527, 0.99898004, 0.99946153, 0.49326330,\
+-	-6.27336927, -0.00033388, 0.00020453, 7.27303539, 0.99898015, 0.99946159, 0.49326316,\
+-	-6.27336936, -0.00033385, 0.00020451, 7.27303551, 0.99898026, 0.99946165, 0.49326319,\
+-	-6.27336945, -0.00033381, 0.00020448, 7.27303564, 0.99898037, 0.99946171, 0.49326337,\
+-	-6.27336953, -0.00033377, 0.00020446, 7.27303576, 0.99898048, 0.99946176, 0.49326350,\
+-	-6.27336962, -0.00033374, 0.00020444, 7.27303588, 0.99898059, 0.99946182, 0.49326333,\
+-	-6.27336971, -0.00033370, 0.00020442, 7.27303600, 0.99898070, 0.99946188, 0.49326343,\
+-	-6.27336979, -0.00033367, 0.00020439, 7.27303613, 0.99898081, 0.99946194, 0.49326342,\
+-	-6.27336988, -0.00033363, 0.00020437, 7.27303625, 0.99898092, 0.99946200, 0.49326348,\
+-	-6.27336996, -0.00033359, 0.00020435, 7.27303637, 0.99898103, 0.99946205, 0.49326358,\
+-	-6.27337005, -0.00033356, 0.00020433, 7.27303649, 0.99898114, 0.99946211, 0.49326344,\
+-	-6.27337014, -0.00033352, 0.00020431, 7.27303661, 0.99898125, 0.99946217, 0.49326333,\
+-	-6.27337022, -0.00033349, 0.00020428, 7.27303674, 0.99898136, 0.99946223, 0.49326344,\
+-	-6.27337031, -0.00033345, 0.00020426, 7.27303686, 0.99898147, 0.99946229, 0.49326346,\
+-	-6.27337039, -0.00033342, 0.00020424, 7.27303698, 0.99898158, 0.99946234, 0.49326354,\
+-	-6.27337048, -0.00033338, 0.00020422, 7.27303710, 0.99898169, 0.99946240, 0.49326336,\
+-	-6.27337057, -0.00033334, 0.00020420, 7.27303722, 0.99898180, 0.99946246, 0.49326349,\
+-	-6.27337065, -0.00033331, 0.00020417, 7.27303734, 0.99898191, 0.99946252, 0.49326348,\
+-	-6.27337074, -0.00033327, 0.00020415, 7.27303747, 0.99898202, 0.99946258, 0.49326342,\
+-	-6.27337082, -0.00033324, 0.00020413, 7.27303759, 0.99898213, 0.99946263, 0.49326343,\
+-	-6.27337091, -0.00033320, 0.00020411, 7.27303771, 0.99898224, 0.99946269, 0.49326362,\
+-	-6.27337100, -0.00033316, 0.00020409, 7.27303783, 0.99898234, 0.99946275, 0.49326356,\
+-	-6.27337108, -0.00033313, 0.00020406, 7.27303795, 0.99898245, 0.99946281, 0.49326362,\
+-	-6.27337117, -0.00033309, 0.00020404, 7.27303808, 0.99898256, 0.99946287, 0.49326353,\
+-	-6.27337125, -0.00033306, 0.00020402, 7.27303820, 0.99898267, 0.99946292, 0.49326384,\
+-	-6.27337134, -0.00033302, 0.00020400, 7.27303832, 0.99898278, 0.99946298, 0.49326355,\
+-	-6.27337142, -0.00033298, 0.00020398, 7.27303844, 0.99898289, 0.99946304, 0.49326361,\
+-	-6.27337151, -0.00033295, 0.00020395, 7.27303856, 0.99898300, 0.99946310, 0.49326362,\
+-	-6.27337160, -0.00033291, 0.00020393, 7.27303868, 0.99898311, 0.99946315, 0.49326349,\
+-	-6.27337168, -0.00033288, 0.00020391, 7.27303880, 0.99898322, 0.99946321, 0.49326369,\
+-	-6.27337177, -0.00033284, 0.00020389, 7.27303893, 0.99898333, 0.99946327, 0.49326369,\
+-	-6.27337185, -0.00033281, 0.00020387, 7.27303905, 0.99898344, 0.99946333, 0.49326369,\
+-	-6.27337194, -0.00033277, 0.00020385, 7.27303917, 0.99898355, 0.99946338, 0.49326367,\
+-	-6.27337202, -0.00033273, 0.00020382, 7.27303929, 0.99898366, 0.99946344, 0.49326359,\
+-	-6.27337211, -0.00033270, 0.00020380, 7.27303941, 0.99898377, 0.99946350, 0.49326376,\
+-	-6.27337220, -0.00033266, 0.00020378, 7.27303953, 0.99898388, 0.99946356, 0.49326382,\
+-	-6.27337228, -0.00033263, 0.00020376, 7.27303965, 0.99898399, 0.99946362, 0.49326384,\
+-	-6.27337237, -0.00033259, 0.00020374, 7.27303978, 0.99898409, 0.99946367, 0.49326379,\
+-	-6.27337245, -0.00033256, 0.00020371, 7.27303990, 0.99898420, 0.99946373, 0.49326389,\
+-	-6.27337254, -0.00033252, 0.00020369, 7.27304002, 0.99898431, 0.99946379, 0.49326390,\
+-	-6.27337262, -0.00033248, 0.00020367, 7.27304014, 0.99898442, 0.99946385, 0.49326379,\
+-	-6.27337271, -0.00033245, 0.00020365, 7.27304026, 0.99898453, 0.99946390, 0.49326384,\
+-	-6.27337279, -0.00033241, 0.00020363, 7.27304038, 0.99898464, 0.99946396, 0.49326381,\
+-	-6.27337288, -0.00033238, 0.00020360, 7.27304050, 0.99898475, 0.99946402, 0.49326372,\
+-	-6.27337297, -0.00033234, 0.00020358, 7.27304062, 0.99898486, 0.99946408, 0.49326377,\
+-	-6.27337305, -0.00033231, 0.00020356, 7.27304075, 0.99898497, 0.99946413, 0.49326406,\
+-	-6.27337314, -0.00033227, 0.00020354, 7.27304087, 0.99898508, 0.99946419, 0.49326380,\
+-	-6.27337322, -0.00033223, 0.00020352, 7.27304099, 0.99898519, 0.99946425, 0.49326407,\
+-	-6.27337331, -0.00033220, 0.00020350, 7.27304111, 0.99898529, 0.99946431, 0.49326377,\
+-	-6.27337339, -0.00033216, 0.00020347, 7.27304123, 0.99898540, 0.99946436, 0.49326399,\
+-	-6.27337348, -0.00033213, 0.00020345, 7.27304135, 0.99898551, 0.99946442, 0.49326392,\
+-	-6.27337356, -0.00033209, 0.00020343, 7.27304147, 0.99898562, 0.99946448, 0.49326402,\
+-	-6.27337365, -0.00033206, 0.00020341, 7.27304159, 0.99898573, 0.99946454, 0.49326407,\
+-	-6.27337373, -0.00033202, 0.00020339, 7.27304171, 0.99898584, 0.99946459, 0.49326397,\
+-	-6.27337382, -0.00033198, 0.00020336, 7.27304183, 0.99898595, 0.99946465, 0.49326388,\
+-	-6.27337390, -0.00033195, 0.00020334, 7.27304196, 0.99898606, 0.99946471, 0.49326400,\
+-	-6.27337399, -0.00033191, 0.00020332, 7.27304208, 0.99898616, 0.99946477, 0.49326405,\
+-	-6.27337407, -0.00033188, 0.00020330, 7.27304220, 0.99898627, 0.99946482, 0.49326405,\
+-	-6.27337416, -0.00033184, 0.00020328, 7.27304232, 0.99898638, 0.99946488, 0.49326395,\
+-	-6.27337425, -0.00033181, 0.00020326, 7.27304244, 0.99898649, 0.99946494, 0.49326406,\
+-	-6.27337433, -0.00033177, 0.00020323, 7.27304256, 0.99898660, 0.99946500, 0.49326412,\
+-	-6.27337442, -0.00033174, 0.00020321, 7.27304268, 0.99898671, 0.99946505, 0.49326418,\
+-	-6.27337450, -0.00033170, 0.00020319, 7.27304280, 0.99898682, 0.99946511, 0.49326405,\
+-	-6.27337459, -0.00033166, 0.00020317, 7.27304292, 0.99898693, 0.99946517, 0.49326394,\
+-	-6.27337467, -0.00033163, 0.00020315, 7.27304304, 0.99898703, 0.99946522, 0.49326407,\
+-	-6.27337476, -0.00033159, 0.00020312, 7.27304316, 0.99898714, 0.99946528, 0.49326381,\
+-	-6.27337484, -0.00033156, 0.00020310, 7.27304328, 0.99898725, 0.99946534, 0.49326400,\
+-	-6.27337493, -0.00033152, 0.00020308, 7.27304340, 0.99898736, 0.99946540, 0.49326414,\
+-	-6.27337501, -0.00033149, 0.00020306, 7.27304352, 0.99898747, 0.99946545, 0.49326426,\
+-	-6.27337510, -0.00033145, 0.00020304, 7.27304364, 0.99898758, 0.99946551, 0.49326422,\
+-	-6.27337518, -0.00033142, 0.00020302, 7.27304376, 0.99898768, 0.99946557, 0.49326412,\
+-	-6.27337527, -0.00033138, 0.00020299, 7.27304389, 0.99898779, 0.99946563, 0.49326410,\
+-	-6.27337535, -0.00033135, 0.00020297, 7.27304401, 0.99898790, 0.99946568, 0.49326415,\
+-	-6.27337544, -0.00033131, 0.00020295, 7.27304413, 0.99898801, 0.99946574, 0.49326422,\
+-	-6.27337552, -0.00033127, 0.00020293, 7.27304425, 0.99898812, 0.99946580, 0.49326416,\
+-	-6.27337561, -0.00033124, 0.00020291, 7.27304437, 0.99898823, 0.99946585, 0.49326449,\
+-	-6.27337569, -0.00033120, 0.00020289, 7.27304449, 0.99898833, 0.99946591, 0.49326425,\
+-	-6.27337578, -0.00033117, 0.00020286, 7.27304461, 0.99898844, 0.99946597, 0.49326435,\
+-	-6.27337586, -0.00033113, 0.00020284, 7.27304473, 0.99898855, 0.99946603, 0.49326445,\
+-	-6.27337594, -0.00033110, 0.00020282, 7.27304485, 0.99898866, 0.99946608, 0.49326455,\
+-	-6.27337603, -0.00033106, 0.00020280, 7.27304497, 0.99898877, 0.99946614, 0.49326433,\
+-	-6.27337611, -0.00033103, 0.00020278, 7.27304509, 0.99898888, 0.99946620, 0.49326418,\
+-	-6.27337620, -0.00033099, 0.00020275, 7.27304521, 0.99898898, 0.99946625, 0.49326429,\
+-	-6.27337628, -0.00033096, 0.00020273, 7.27304533, 0.99898909, 0.99946631, 0.49326433,\
+-	-6.27337637, -0.00033092, 0.00020271, 7.27304545, 0.99898920, 0.99946637, 0.49326438,\
+-	-6.27337645, -0.00033088, 0.00020269, 7.27304557, 0.99898931, 0.99946643, 0.49326440,\
+-	-6.27337654, -0.00033085, 0.00020267, 7.27304569, 0.99898942, 0.99946648, 0.49326448,\
+-	-6.27337662, -0.00033081, 0.00020265, 7.27304581, 0.99898952, 0.99946654, 0.49326440,\
+-	-6.27337671, -0.00033078, 0.00020262, 7.27304593, 0.99898963, 0.99946660, 0.49326441,\
+-	-6.27337679, -0.00033074, 0.00020260, 7.27304605, 0.99898974, 0.99946665, 0.49326439,\
+-	-6.27337688, -0.00033071, 0.00020258, 7.27304617, 0.99898985, 0.99946671, 0.49326444,\
+-	-6.27337696, -0.00033067, 0.00020256, 7.27304629, 0.99898996, 0.99946677, 0.49326437,\
+-	-6.27337705, -0.00033064, 0.00020254, 7.27304641, 0.99899006, 0.99946682, 0.49326463,\
+-	-6.27337713, -0.00033060, 0.00020252, 7.27304653, 0.99899017, 0.99946688, 0.49326433,\
+-	-6.27337721, -0.00033057, 0.00020250, 7.27304665, 0.99899028, 0.99946694, 0.49326452,\
+-	-6.27337730, -0.00033053, 0.00020247, 7.27304677, 0.99899039, 0.99946700, 0.49326464,\
+-	-6.27337738, -0.00033050, 0.00020245, 7.27304689, 0.99899050, 0.99946705, 0.49326462,\
+-	-6.27337747, -0.00033046, 0.00020243, 7.27304701, 0.99899060, 0.99946711, 0.49326446,\
+-	-6.27337755, -0.00033043, 0.00020241, 7.27304713, 0.99899071, 0.99946717, 0.49326448,\
+-	-6.27337764, -0.00033039, 0.00020239, 7.27304725, 0.99899082, 0.99946722, 0.49326479,\
+-	-6.27337772, -0.00033035, 0.00020237, 7.27304737, 0.99899093, 0.99946728, 0.49326445,\
+-	-6.27337781, -0.00033032, 0.00020234, 7.27304749, 0.99899103, 0.99946734, 0.49326446,\
+-	-6.27337789, -0.00033028, 0.00020232, 7.27304761, 0.99899114, 0.99946739, 0.49326446,\
+-	-6.27337797, -0.00033025, 0.00020230, 7.27304773, 0.99899125, 0.99946745, 0.49326456,\
+-	-6.27337806, -0.00033021, 0.00020228, 7.27304785, 0.99899136, 0.99946751, 0.49326462,\
+-	-6.27337814, -0.00033018, 0.00020226, 7.27304796, 0.99899146, 0.99946756, 0.49326466,\
+-	-6.27337823, -0.00033014, 0.00020224, 7.27304808, 0.99899157, 0.99946762, 0.49326469,\
+-	-6.27337831, -0.00033011, 0.00020221, 7.27304820, 0.99899168, 0.99946768, 0.49326455,\
+-	-6.27337840, -0.00033007, 0.00020219, 7.27304832, 0.99899179, 0.99946773, 0.49326445,\
+-	-6.27337848, -0.00033004, 0.00020217, 7.27304844, 0.99899190, 0.99946779, 0.49326466,\
+-	-6.27337856, -0.00033000, 0.00020215, 7.27304856, 0.99899200, 0.99946785, 0.49326467,\
+-	-6.27337865, -0.00032997, 0.00020213, 7.27304868, 0.99899211, 0.99946790, 0.49326472,\
+-	-6.27337873, -0.00032993, 0.00020211, 7.27304880, 0.99899222, 0.99946796, 0.49326465,\
+-	-6.27337882, -0.00032990, 0.00020208, 7.27304892, 0.99899233, 0.99946802, 0.49326487,\
+-	-6.27337890, -0.00032986, 0.00020206, 7.27304904, 0.99899243, 0.99946807, 0.49326453,\
+-	-6.27337899, -0.00032983, 0.00020204, 7.27304916, 0.99899254, 0.99946813, 0.49326462,\
+-	-6.27337907, -0.00032979, 0.00020202, 7.27304928, 0.99899265, 0.99946819, 0.49326466,\
+-	-6.27337915, -0.00032976, 0.00020200, 7.27304940, 0.99899275, 0.99946824, 0.49326470,\
+-	-6.27337924, -0.00032972, 0.00020198, 7.27304952, 0.99899286, 0.99946830, 0.49326485,\
+-	-6.27337932, -0.00032969, 0.00020196, 7.27304964, 0.99899297, 0.99946836, 0.49326493,\
+-	-6.27337941, -0.00032965, 0.00020193, 7.27304976, 0.99899308, 0.99946841, 0.49326472,\
+-	-6.27337949, -0.00032962, 0.00020191, 7.27304987, 0.99899318, 0.99946847, 0.49326466,\
+-	-6.27337957, -0.00032958, 0.00020189, 7.27304999, 0.99899329, 0.99946853, 0.49326475,\
+-	-6.27337966, -0.00032955, 0.00020187, 7.27305011, 0.99899340, 0.99946858, 0.49326474,\
+-	-6.27337974, -0.00032951, 0.00020185, 7.27305023, 0.99899351, 0.99946864, 0.49326494,\
+-	-6.27337983, -0.00032948, 0.00020183, 7.27305035, 0.99899361, 0.99946870, 0.49326475,\
+-	-6.27337991, -0.00032944, 0.00020181, 7.27305047, 0.99899372, 0.99946875, 0.49326504,\
+-	-6.27337999, -0.00032941, 0.00020178, 7.27305059, 0.99899383, 0.99946881, 0.49326510,\
+-	-6.27338008, -0.00032937, 0.00020176, 7.27305071, 0.99899393, 0.99946887, 0.49326506,\
+-	-6.27338016, -0.00032934, 0.00020174, 7.27305083, 0.99899404, 0.99946892, 0.49326491,\
+-	-6.27338025, -0.00032930, 0.00020172, 7.27305095, 0.99899415, 0.99946898, 0.49326495,\
+-	-6.27338033, -0.00032927, 0.00020170, 7.27305106, 0.99899425, 0.99946904, 0.49326488,\
+-	-6.27338041, -0.00032923, 0.00020168, 7.27305118, 0.99899436, 0.99946909, 0.49326492,\
+-	-6.27338050, -0.00032920, 0.00020165, 7.27305130, 0.99899447, 0.99946915, 0.49326492,\
+-	-6.27338058, -0.00032916, 0.00020163, 7.27305142, 0.99899458, 0.99946921, 0.49326493,\
+-	-6.27338067, -0.00032913, 0.00020161, 7.27305154, 0.99899468, 0.99946926, 0.49326498,\
+-	-6.27338075, -0.00032909, 0.00020159, 7.27305166, 0.99899479, 0.99946932, 0.49326509,\
+-	-6.27338083, -0.00032906, 0.00020157, 7.27305178, 0.99899490, 0.99946938, 0.49326511,\
+-	-6.27338092, -0.00032902, 0.00020155, 7.27305190, 0.99899500, 0.99946943, 0.49326491,\
+-	-6.27338100, -0.00032899, 0.00020153, 7.27305201, 0.99899511, 0.99946949, 0.49326497,\
+-	-6.27338108, -0.00032895, 0.00020150, 7.27305213, 0.99899522, 0.99946954, 0.49326517,\
+-	-6.27338117, -0.00032892, 0.00020148, 7.27305225, 0.99899532, 0.99946960, 0.49326501,\
+-	-6.27338125, -0.00032888, 0.00020146, 7.27305237, 0.99899543, 0.99946966, 0.49326506,\
+-	-6.27338134, -0.00032885, 0.00020144, 7.27305249, 0.99899554, 0.99946971, 0.49326507,\
+-	-6.27338142, -0.00032881, 0.00020142, 7.27305261, 0.99899564, 0.99946977, 0.49326497,\
+-	-6.27338150, -0.00032878, 0.00020140, 7.27305273, 0.99899575, 0.99946983, 0.49326508,\
+-	-6.27338159, -0.00032874, 0.00020138, 7.27305284, 0.99899586, 0.99946988, 0.49326522,\
+-	-6.27338167, -0.00032871, 0.00020135, 7.27305296, 0.99899596, 0.99946994, 0.49326525,\
+-	-6.27338175, -0.00032867, 0.00020133, 7.27305308, 0.99899607, 0.99946999, 0.49326527,\
+-	-6.27338184, -0.00032864, 0.00020131, 7.27305320, 0.99899618, 0.99947005, 0.49326512,\
+-	-6.27338192, -0.00032860, 0.00020129, 7.27305332, 0.99899628, 0.99947011, 0.49326544,\
+-	-6.27338200, -0.00032857, 0.00020127, 7.27305344, 0.99899639, 0.99947016, 0.49326511,\
+-	-6.27338209, -0.00032853, 0.00020125, 7.27305356, 0.99899650, 0.99947022, 0.49326525,\
+-	-6.27338217, -0.00032850, 0.00020123, 7.27305367, 0.99899660, 0.99947028, 0.49326517,\
+-	-6.27338225, -0.00032846, 0.00020121, 7.27305379, 0.99899671, 0.99947033, 0.49326515,\
+-	-6.27338234, -0.00032843, 0.00020118, 7.27305391, 0.99899682, 0.99947039, 0.49326512,\
+-	-6.27338242, -0.00032839, 0.00020116, 7.27305403, 0.99899692, 0.99947045, 0.49326510,\
+-	-6.27338250, -0.00032836, 0.00020114, 7.27305415, 0.99899703, 0.99947050, 0.49326538,\
+-	-6.27338259, -0.00032832, 0.00020112, 7.27305427, 0.99899714, 0.99947056, 0.49326526,\
+-	-6.27338267, -0.00032829, 0.00020110, 7.27305438, 0.99899724, 0.99947061, 0.49326555,\
+-	-6.27338275, -0.00032825, 0.00020108, 7.27305450, 0.99899735, 0.99947067, 0.49326559,\
+-	-6.27338284, -0.00032822, 0.00020106, 7.27305462, 0.99899745, 0.99947073, 0.49326528,\
+-	-6.27338292, -0.00032818, 0.00020103, 7.27305474, 0.99899756, 0.99947078, 0.49326542,\
+-	-6.27338300, -0.00032815, 0.00020101, 7.27305486, 0.99899767, 0.99947084, 0.49326519,\
+-	-6.27338309, -0.00032811, 0.00020099, 7.27305497, 0.99899777, 0.99947089, 0.49326536,\
+-	-6.27338317, -0.00032808, 0.00020097, 7.27305509, 0.99899788, 0.99947095, 0.49326533,\
+-	-6.27338325, -0.00032804, 0.00020095, 7.27305521, 0.99899799, 0.99947101, 0.49326540,\
+-	-6.27338334, -0.00032801, 0.00020093, 7.27305533, 0.99899809, 0.99947106, 0.49326552,\
+-	-6.27338342, -0.00032797, 0.00020091, 7.27305545, 0.99899820, 0.99947112, 0.49326543,\
+-	-6.27338350, -0.00032794, 0.00020089, 7.27305556, 0.99899830, 0.99947117, 0.49326548,\
+-	-6.27338359, -0.00032791, 0.00020086, 7.27305568, 0.99899841, 0.99947123, 0.49326555,\
+-	-6.27338367, -0.00032787, 0.00020084, 7.27305580, 0.99899852, 0.99947129, 0.49326550,\
+-	-6.27338375, -0.00032784, 0.00020082, 7.27305592, 0.99899862, 0.99947134, 0.49326539,\
+-	-6.27338384, -0.00032780, 0.00020080, 7.27305604, 0.99899873, 0.99947140, 0.49326537,\
+-	-6.27338392, -0.00032777, 0.00020078, 7.27305615, 0.99899884, 0.99947145, 0.49326540,\
+-	-6.27338400, -0.00032773, 0.00020076, 7.27305627, 0.99899894, 0.99947151, 0.49326552,\
+-	-6.27338409, -0.00032770, 0.00020074, 7.27305639, 0.99899905, 0.99947157, 0.49326544,\
+-	-6.27338417, -0.00032766, 0.00020072, 7.27305651, 0.99899915, 0.99947162, 0.49326541,\
+-	-6.27338425, -0.00032763, 0.00020069, 7.27305662, 0.99899926, 0.99947168, 0.49326544,\
+-	-6.27338433, -0.00032759, 0.00020067, 7.27305674, 0.99899937, 0.99947173, 0.49326555,\
+-	-6.27338442, -0.00032756, 0.00020065, 7.27305686, 0.99899947, 0.99947179, 0.49326592,\
+-	-6.27338450, -0.00032752, 0.00020063, 7.27305698, 0.99899958, 0.99947185, 0.49326555,\
+-	-6.27338458, -0.00032749, 0.00020061, 7.27305709, 0.99899968, 0.99947190, 0.49326556,\
+-	-6.27338467, -0.00032745, 0.00020059, 7.27305721, 0.99899979, 0.99947196, 0.49326577,\
+-	-6.27338475, -0.00032742, 0.00020057, 7.27305733, 0.99899989, 0.99947201, 0.49326572,\
+-	-6.27338483, -0.00032739, 0.00020055, 7.27305745, 0.99900000, 0.99947207, 0.49326564,\
+-	-6.27338492, -0.00032735, 0.00020052, 7.27305756, 0.99900011, 0.99947213, 0.49326574,\
+-	-6.27338500, -0.00032732, 0.00020050, 7.27305768, 0.99900021, 0.99947218, 0.49326570,\
+-	-6.27338508, -0.00032728, 0.00020048, 7.27305780, 0.99900032, 0.99947224, 0.49326585,\
+-	-6.27338516, -0.00032725, 0.00020046, 7.27305792, 0.99900042, 0.99947229, 0.49326561,\
+-	-6.27338525, -0.00032721, 0.00020044, 7.27305804, 0.99900053, 0.99947235, 0.49326554,\
+-	-6.27338533, -0.00032718, 0.00020042, 7.27305815, 0.99900063, 0.99947240, 0.49326565,\
+-	-6.27338541, -0.00032714, 0.00020040, 7.27305827, 0.99900074, 0.99947246, 0.49326560,\
+-	-6.27338550, -0.00032711, 0.00020038, 7.27305839, 0.99900085, 0.99947252, 0.49326561,\
+-	-6.27338558, -0.00032707, 0.00020035, 7.27305850, 0.99900095, 0.99947257, 0.49326588,\
+-	-6.27338566, -0.00032704, 0.00020033, 7.27305862, 0.99900106, 0.99947263, 0.49326567,\
+-	-6.27338574, -0.00032700, 0.00020031, 7.27305874, 0.99900116, 0.99947268, 0.49326573,\
+-	-6.27338583, -0.00032697, 0.00020029, 7.27305886, 0.99900127, 0.99947274, 0.49326588,\
+-	-6.27338591, -0.00032694, 0.00020027, 7.27305897, 0.99900137, 0.99947279, 0.49326587,\
+-	-6.27338599, -0.00032690, 0.00020025, 7.27305909, 0.99900148, 0.99947285, 0.49326591,\
+-	-6.27338607, -0.00032687, 0.00020023, 7.27305921, 0.99900158, 0.99947291, 0.49326568,\
+-	-6.27338616, -0.00032683, 0.00020021, 7.27305932, 0.99900169, 0.99947296, 0.49326586,\
+-	-6.27338624, -0.00032680, 0.00020019, 7.27305944, 0.99900180, 0.99947302, 0.49326595,\
+-	-6.27338632, -0.00032676, 0.00020016, 7.27305956, 0.99900190, 0.99947307, 0.49326594,\
+-	-6.27338640, -0.00032673, 0.00020014, 7.27305968, 0.99900201, 0.99947313, 0.49326576,\
+-	-6.27338649, -0.00032669, 0.00020012, 7.27305979, 0.99900211, 0.99947318, 0.49326600,\
+-	-6.27338657, -0.00032666, 0.00020010, 7.27305991, 0.99900222, 0.99947324, 0.49326567,\
+-	-6.27338665, -0.00032663, 0.00020008, 7.27306003, 0.99900232, 0.99947330, 0.49326591,\
+-	-6.27338674, -0.00032659, 0.00020006, 7.27306014, 0.99900243, 0.99947335, 0.49326584,\
+-	-6.27338682, -0.00032656, 0.00020004, 7.27306026, 0.99900253, 0.99947341, 0.49326591,\
+-	-6.27338690, -0.00032652, 0.00020002, 7.27306038, 0.99900264, 0.99947346, 0.49326598,\
+-	-6.27338698, -0.00032649, 0.00020000, 7.27306050, 0.99900274, 0.99947352, 0.49326605,\
+-	-6.27338706, -0.00032645, 0.00019997, 7.27306061, 0.99900285, 0.99947357, 0.49326584,\
+-	-6.27338715, -0.00032642, 0.00019995, 7.27306073, 0.99900295, 0.99947363, 0.49326610,\
+-	-6.27338723, -0.00032638, 0.00019993, 7.27306085, 0.99900306, 0.99947368, 0.49326584,\
+-	-6.27338731, -0.00032635, 0.00019991, 7.27306096, 0.99900316, 0.99947374, 0.49326595,\
+-	-6.27338739, -0.00032632, 0.00019989, 7.27306108, 0.99900327, 0.99947379, 0.49326574,\
+-	-6.27338748, -0.00032628, 0.00019987, 7.27306120, 0.99900337, 0.99947385, 0.49326593,\
+-	-6.27338756, -0.00032625, 0.00019985, 7.27306131, 0.99900348, 0.99947391, 0.49326617,\
+-	-6.27338764, -0.00032621, 0.00019983, 7.27306143, 0.99900358, 0.99947396, 0.49326608,\
+-	-6.27338772, -0.00032618, 0.00019981, 7.27306155, 0.99900369, 0.99947402, 0.49326601,\
+-	-6.27338781, -0.00032614, 0.00019978, 7.27306166, 0.99900379, 0.99947407, 0.49326595,\
+-	-6.27338789, -0.00032611, 0.00019976, 7.27306178, 0.99900390, 0.99947413, 0.49326615,\
+-	-6.27338797, -0.00032607, 0.00019974, 7.27306190, 0.99900400, 0.99947418, 0.49326594,\
+-	-6.27338805, -0.00032604, 0.00019972, 7.27306201, 0.99900411, 0.99947424, 0.49326623,\
+-	-6.27338814, -0.00032601, 0.00019970, 7.27306213, 0.99900421, 0.99947429, 0.49326628,\
+-	-6.27338822, -0.00032597, 0.00019968, 7.27306225, 0.99900432, 0.99947435, 0.49326618,\
+-	-6.27338830, -0.00032594, 0.00019966, 7.27306236, 0.99900442, 0.99947440, 0.49326621,\
+-	-6.27338838, -0.00032590, 0.00019964, 7.27306248, 0.99900453, 0.99947446, 0.49326598,\
+-	-6.27338846, -0.00032587, 0.00019962, 7.27306260, 0.99900463, 0.99947452, 0.49326615,\
+-	-6.27338855, -0.00032583, 0.00019960, 7.27306271, 0.99900474, 0.99947457, 0.49326647,\
+-	-6.27338863, -0.00032580, 0.00019957, 7.27306283, 0.99900484, 0.99947463, 0.49326621,\
+-	-6.27338871, -0.00032577, 0.00019955, 7.27306294, 0.99900495, 0.99947468, 0.49326643,\
+-	-6.27338879, -0.00032573, 0.00019953, 7.27306306, 0.99900505, 0.99947474, 0.49326629,\
+-	-6.27338887, -0.00032570, 0.00019951, 7.27306318, 0.99900516, 0.99947479, 0.49326635,\
+-	-6.27338896, -0.00032566, 0.00019949, 7.27306329, 0.99900526, 0.99947485, 0.49326632,\
+-	-6.27338904, -0.00032563, 0.00019947, 7.27306341, 0.99900537, 0.99947490, 0.49326626,\
+-	-6.27338912, -0.00032559, 0.00019945, 7.27306353, 0.99900547, 0.99947496, 0.49326639,\
+-	-6.27338920, -0.00032556, 0.00019943, 7.27306364, 0.99900558, 0.99947501, 0.49326627,\
+-	-6.27338928, -0.00032553, 0.00019941, 7.27306376, 0.99900568, 0.99947507, 0.49326645,\
+-	-6.27338937, -0.00032549, 0.00019939, 7.27306387, 0.99900578, 0.99947512, 0.49326623,\
+-	-6.27338945, -0.00032546, 0.00019936, 7.27306399, 0.99900589, 0.99947518, 0.49326607,\
+-	-6.27338953, -0.00032542, 0.00019934, 7.27306411, 0.99900599, 0.99947523, 0.49326641,\
+-	-6.27338961, -0.00032539, 0.00019932, 7.27306422, 0.99900610, 0.99947529, 0.49326644,\
+-	-6.27338969, -0.00032536, 0.00019930, 7.27306434, 0.99900620, 0.99947534, 0.49326635,\
+-	-6.27338978, -0.00032532, 0.00019928, 7.27306446, 0.99900631, 0.99947540, 0.49326617,\
+-	-6.27338986, -0.00032529, 0.00019926, 7.27306457, 0.99900641, 0.99947545, 0.49326647,\
+-	-6.27338994, -0.00032525, 0.00019924, 7.27306469, 0.99900652, 0.99947551, 0.49326638,\
+-	-6.27339002, -0.00032522, 0.00019922, 7.27306480, 0.99900662, 0.99947556, 0.49326625,\
+-	-6.27339010, -0.00032518, 0.00019920, 7.27306492, 0.99900673, 0.99947562, 0.49326654,\
+-	-6.27339019, -0.00032515, 0.00019918, 7.27306504, 0.99900683, 0.99947567, 0.49326643,\
+-	-6.27339027, -0.00032512, 0.00019915, 7.27306515, 0.99900693, 0.99947573, 0.49326639,\
+-	-6.27339035, -0.00032508, 0.00019913, 7.27306527, 0.99900704, 0.99947578, 0.49326643,\
+-	-6.27339043, -0.00032505, 0.00019911, 7.27306538, 0.99900714, 0.99947584, 0.49326613,\
+-	-6.27339051, -0.00032501, 0.00019909, 7.27306550, 0.99900725, 0.99947589, 0.49326635,\
+-	-6.27339059, -0.00032498, 0.00019907, 7.27306561, 0.99900735, 0.99947595, 0.49326654,\
+-	-6.27339068, -0.00032495, 0.00019905, 7.27306573, 0.99900746, 0.99947600, 0.49326649,\
+-	-6.27339076, -0.00032491, 0.00019903, 7.27306585, 0.99900756, 0.99947606, 0.49326645,\
+-	-6.27339084, -0.00032488, 0.00019901, 7.27306596, 0.99900766, 0.99947611, 0.49326635,\
+-	-6.27339092, -0.00032484, 0.00019899, 7.27306608, 0.99900777, 0.99947617, 0.49326646,\
+-	-6.27339100, -0.00032481, 0.00019897, 7.27306619, 0.99900787, 0.99947622, 0.49326660,\
+-	-6.27339108, -0.00032477, 0.00019895, 7.27306631, 0.99900798, 0.99947628, 0.49326653,\
+-	-6.27339117, -0.00032474, 0.00019892, 7.27306642, 0.99900808, 0.99947633, 0.49326655,\
+-	-6.27339125, -0.00032471, 0.00019890, 7.27306654, 0.99900818, 0.99947639, 0.49326642,\
+-	-6.27339133, -0.00032467, 0.00019888, 7.27306666, 0.99900829, 0.99947644, 0.49326648,\
+-	-6.27339141, -0.00032464, 0.00019886, 7.27306677, 0.99900839, 0.99947650, 0.49326679,\
+-	-6.27339149, -0.00032460, 0.00019884, 7.27306689, 0.99900850, 0.99947655, 0.49326686,\
+-	-6.27339157, -0.00032457, 0.00019882, 7.27306700, 0.99900860, 0.99947661, 0.49326656,\
+-	-6.27339165, -0.00032454, 0.00019880, 7.27306712, 0.99900870, 0.99947666, 0.49326662,\
+-	-6.27339174, -0.00032450, 0.00019878, 7.27306723, 0.99900881, 0.99947672, 0.49326679,\
+-	-6.27339182, -0.00032447, 0.00019876, 7.27306735, 0.99900891, 0.99947677, 0.49326673,\
+-	-6.27339190, -0.00032443, 0.00019874, 7.27306746, 0.99900902, 0.99947683, 0.49326675,\
+-	-6.27339198, -0.00032440, 0.00019872, 7.27306758, 0.99900912, 0.99947688, 0.49326682,\
+-	-6.27339206, -0.00032437, 0.00019870, 7.27306770, 0.99900922, 0.99947694, 0.49326647,\
+-	-6.27339214, -0.00032433, 0.00019867, 7.27306781, 0.99900933, 0.99947699, 0.49326653,\
+-	-6.27339222, -0.00032430, 0.00019865, 7.27306793, 0.99900943, 0.99947705, 0.49326669,\
+-	-6.27339231, -0.00032426, 0.00019863, 7.27306804, 0.99900954, 0.99947710, 0.49326657,\
+-	-6.27339239, -0.00032423, 0.00019861, 7.27306816, 0.99900964, 0.99947716, 0.49326679,\
+-	-6.27339247, -0.00032420, 0.00019859, 7.27306827, 0.99900974, 0.99947721, 0.49326690,\
+-	-6.27339255, -0.00032416, 0.00019857, 7.27306839, 0.99900985, 0.99947727, 0.49326680,\
+-	-6.27339263, -0.00032413, 0.00019855, 7.27306850, 0.99900995, 0.99947732, 0.49326670,\
+-	-6.27339271, -0.00032409, 0.00019853, 7.27306862, 0.99901005, 0.99947738, 0.49326690,\
+-	-6.27339279, -0.00032406, 0.00019851, 7.27306873, 0.99901016, 0.99947743, 0.49326682,\
+-	-6.27339287, -0.00032403, 0.00019849, 7.27306885, 0.99901026, 0.99947749, 0.49326670,\
+-	-6.27339296, -0.00032399, 0.00019847, 7.27306896, 0.99901036, 0.99947754, 0.49326689,\
+-	-6.27339304, -0.00032396, 0.00019845, 7.27306908, 0.99901047, 0.99947760, 0.49326683,\
+-	-6.27339312, -0.00032393, 0.00019843, 7.27306919, 0.99901057, 0.99947765, 0.49326682,\
+-	-6.27339320, -0.00032389, 0.00019840, 7.27306931, 0.99901068, 0.99947770, 0.49326694,\
+-	-6.27339328, -0.00032386, 0.00019838, 7.27306942, 0.99901078, 0.99947776, 0.49326682,\
+-	-6.27339336, -0.00032382, 0.00019836, 7.27306954, 0.99901088, 0.99947781, 0.49326696,\
+-	-6.27339344, -0.00032379, 0.00019834, 7.27306965, 0.99901099, 0.99947787, 0.49326703,\
+-	-6.27339352, -0.00032376, 0.00019832, 7.27306977, 0.99901109, 0.99947792, 0.49326705,\
+-	-6.27339360, -0.00032372, 0.00019830, 7.27306988, 0.99901119, 0.99947798, 0.49326683,\
+-	-6.27339369, -0.00032369, 0.00019828, 7.27307000, 0.99901130, 0.99947803, 0.49326692,\
+-	-6.27339377, -0.00032365, 0.00019826, 7.27307011, 0.99901140, 0.99947809, 0.49326694,\
+-	-6.27339385, -0.00032362, 0.00019824, 7.27307023, 0.99901150, 0.99947814, 0.49326688,\
+-	-6.27339393, -0.00032359, 0.00019822, 7.27307034, 0.99901161, 0.99947820, 0.49326687,\
+-	-6.27339401, -0.00032355, 0.00019820, 7.27307046, 0.99901171, 0.99947825, 0.49326697,\
+-	-6.27339409, -0.00032352, 0.00019818, 7.27307057, 0.99901181, 0.99947830, 0.49326717,\
+-	-6.27339417, -0.00032349, 0.00019816, 7.27307069, 0.99901192, 0.99947836, 0.49326712,\
+-	-6.27339425, -0.00032345, 0.00019813, 7.27307080, 0.99901202, 0.99947841, 0.49326703,\
+-	-6.27339433, -0.00032342, 0.00019811, 7.27307092, 0.99901212, 0.99947847, 0.49326706,\
+-	-6.27339441, -0.00032338, 0.00019809, 7.27307103, 0.99901223, 0.99947852, 0.49326716,\
+-	-6.27339450, -0.00032335, 0.00019807, 7.27307115, 0.99901233, 0.99947858, 0.49326689,\
+-	-6.27339458, -0.00032332, 0.00019805, 7.27307126, 0.99901243, 0.99947863, 0.49326699,\
+-	-6.27339466, -0.00032328, 0.00019803, 7.27307137, 0.99901254, 0.99947869, 0.49326696,\
+-	-6.27339474, -0.00032325, 0.00019801, 7.27307149, 0.99901264, 0.99947874, 0.49326718,\
+-	-6.27339482, -0.00032321, 0.00019799, 7.27307160, 0.99901274, 0.99947880, 0.49326717,\
+-	-6.27339490, -0.00032318, 0.00019797, 7.27307172, 0.99901285, 0.99947885, 0.49326705,\
+-	-6.27339498, -0.00032315, 0.00019795, 7.27307183, 0.99901295, 0.99947890, 0.49326716,\
+-	-6.27339506, -0.00032311, 0.00019793, 7.27307195, 0.99901305, 0.99947896, 0.49326730,\
+-	-6.27339514, -0.00032308, 0.00019791, 7.27307206, 0.99901315, 0.99947901, 0.49326718,\
+-	-6.27339522, -0.00032305, 0.00019789, 7.27307218, 0.99901326, 0.99947907, 0.49326722,\
+-	-6.27339530, -0.00032301, 0.00019787, 7.27307229, 0.99901336, 0.99947912, 0.49326715,\
+-	-6.27339538, -0.00032298, 0.00019785, 7.27307241, 0.99901346, 0.99947918, 0.49326728,\
+-	-6.27339546, -0.00032295, 0.00019782, 7.27307252, 0.99901357, 0.99947923, 0.49326724,\
+-	-6.27339555, -0.00032291, 0.00019780, 7.27307263, 0.99901367, 0.99947928, 0.49326701,\
+-	-6.27339563, -0.00032288, 0.00019778, 7.27307275, 0.99901377, 0.99947934, 0.49326708,\
+-	-6.27339571, -0.00032284, 0.00019776, 7.27307286, 0.99901388, 0.99947939, 0.49326726,\
+-	-6.27339579, -0.00032281, 0.00019774, 7.27307298, 0.99901398, 0.99947945, 0.49326720,\
+-	-6.27339587, -0.00032278, 0.00019772, 7.27307309, 0.99901408, 0.99947950, 0.49326714,\
+-	-6.27339595, -0.00032274, 0.00019770, 7.27307321, 0.99901418, 0.99947956, 0.49326729,\
+-	-6.27339603, -0.00032271, 0.00019768, 7.27307332, 0.99901429, 0.99947961, 0.49326744,\
+-	-6.27339611, -0.00032268, 0.00019766, 7.27307343, 0.99901439, 0.99947966, 0.49326726,\
+-	-6.27339619, -0.00032264, 0.00019764, 7.27307355, 0.99901449, 0.99947972, 0.49326746,\
+-	-6.27339627, -0.00032261, 0.00019762, 7.27307366, 0.99901459, 0.99947977, 0.49326747,\
+-	-6.27339635, -0.00032258, 0.00019760, 7.27307378, 0.99901470, 0.99947983, 0.49326746,\
+-	-6.27339643, -0.00032254, 0.00019758, 7.27307389, 0.99901480, 0.99947988, 0.49326737,\
+-	-6.27339651, -0.00032251, 0.00019756, 7.27307400, 0.99901490, 0.99947994, 0.49326725,\
+-	-6.27339659, -0.00032247, 0.00019754, 7.27307412, 0.99901501, 0.99947999, 0.49326744,\
+-	-6.27339667, -0.00032244, 0.00019752, 7.27307423, 0.99901511, 0.99948004, 0.49326734,\
+-	-6.27339675, -0.00032241, 0.00019749, 7.27307435, 0.99901521, 0.99948010, 0.49326748,\
+-	-6.27339683, -0.00032237, 0.00019747, 7.27307446, 0.99901531, 0.99948015, 0.49326735,\
+-	-6.27339691, -0.00032234, 0.00019745, 7.27307457, 0.99901542, 0.99948021, 0.49326718,\
+-	-6.27339699, -0.00032231, 0.00019743, 7.27307469, 0.99901552, 0.99948026, 0.49326726,\
+-	-6.27339708, -0.00032227, 0.00019741, 7.27307480, 0.99901562, 0.99948031, 0.49326739,\
+-	-6.27339716, -0.00032224, 0.00019739, 7.27307492, 0.99901572, 0.99948037, 0.49326736,\
+-	-6.27339724, -0.00032221, 0.00019737, 7.27307503, 0.99901583, 0.99948042, 0.49326751,\
+-	-6.27339732, -0.00032217, 0.00019735, 7.27307514, 0.99901593, 0.99948048, 0.49326746,\
+-	-6.27339740, -0.00032214, 0.00019733, 7.27307526, 0.99901603, 0.99948053, 0.49326750,\
+-	-6.27339748, -0.00032210, 0.00019731, 7.27307537, 0.99901613, 0.99948059, 0.49326720,\
+-	-6.27339756, -0.00032207, 0.00019729, 7.27307549, 0.99901624, 0.99948064, 0.49326742,\
+-	-6.27339764, -0.00032204, 0.00019727, 7.27307560, 0.99901634, 0.99948069, 0.49326770,\
+-	-6.27339772, -0.00032200, 0.00019725, 7.27307571, 0.99901644, 0.99948075, 0.49326757,\
+-	-6.27339780, -0.00032197, 0.00019723, 7.27307583, 0.99901654, 0.99948080, 0.49326750,\
+-	-6.27339788, -0.00032194, 0.00019721, 7.27307594, 0.99901664, 0.99948086, 0.49326781,\
+-	-6.27339796, -0.00032190, 0.00019719, 7.27307605, 0.99901675, 0.99948091, 0.49326776,\
+-	-6.27339804, -0.00032187, 0.00019717, 7.27307617, 0.99901685, 0.99948096, 0.49326747,\
+-	-6.27339812, -0.00032184, 0.00019715, 7.27307628, 0.99901695, 0.99948102, 0.49326778,\
+-	-6.27339820, -0.00032180, 0.00019713, 7.27307639, 0.99901705, 0.99948107, 0.49326749,\
+-	-6.27339828, -0.00032177, 0.00019710, 7.27307651, 0.99901716, 0.99948113, 0.49326751,\
+-	-6.27339836, -0.00032174, 0.00019708, 7.27307662, 0.99901726, 0.99948118, 0.49326780,\
+-	-6.27339844, -0.00032170, 0.00019706, 7.27307674, 0.99901736, 0.99948123, 0.49326747,\
+-	-6.27339852, -0.00032167, 0.00019704, 7.27307685, 0.99901746, 0.99948129, 0.49326772,\
+-	-6.27339860, -0.00032164, 0.00019702, 7.27307696, 0.99901756, 0.99948134, 0.49326768,\
+-	-6.27339868, -0.00032160, 0.00019700, 7.27307708, 0.99901767, 0.99948139, 0.49326756,\
+-	-6.27339876, -0.00032157, 0.00019698, 7.27307719, 0.99901777, 0.99948145, 0.49326753,\
+-	-6.27339884, -0.00032154, 0.00019696, 7.27307730, 0.99901787, 0.99948150, 0.49326754,\
+-	-6.27339892, -0.00032150, 0.00019694, 7.27307742, 0.99901797, 0.99948156, 0.49326763,\
+-	-6.27339900, -0.00032147, 0.00019692, 7.27307753, 0.99901807, 0.99948161, 0.49326773,\
+-	-6.27339908, -0.00032144, 0.00019690, 7.27307764, 0.99901818, 0.99948166, 0.49326760,\
+-	-6.27339916, -0.00032140, 0.00019688, 7.27307776, 0.99901828, 0.99948172, 0.49326795,\
+-	-6.27339924, -0.00032137, 0.00019686, 7.27307787, 0.99901838, 0.99948177, 0.49326781,\
+-	-6.27339932, -0.00032134, 0.00019684, 7.27307798, 0.99901848, 0.99948183, 0.49326791,\
+-	-6.27339940, -0.00032130, 0.00019682, 7.27307810, 0.99901858, 0.99948188, 0.49326782,\
+-	-6.27339948, -0.00032127, 0.00019680, 7.27307821, 0.99901869, 0.99948193, 0.49326774,\
+-	-6.27339956, -0.00032124, 0.00019678, 7.27307832, 0.99901879, 0.99948199, 0.49326801,\
+-	-6.27339964, -0.00032120, 0.00019676, 7.27307843, 0.99901889, 0.99948204, 0.49326796,\
+-	-6.27339972, -0.00032117, 0.00019674, 7.27307855, 0.99901899, 0.99948209, 0.49326796,\
+-	-6.27339980, -0.00032114, 0.00019672, 7.27307866, 0.99901909, 0.99948215, 0.49326764,\
+-	-6.27339988, -0.00032110, 0.00019670, 7.27307877, 0.99901920, 0.99948220, 0.49326786,\
+-	-6.27339996, -0.00032107, 0.00019668, 7.27307889, 0.99901930, 0.99948226, 0.49326797,\
+-	-6.27340004, -0.00032104, 0.00019665, 7.27307900, 0.99901940, 0.99948231, 0.49326772,\
+-	-6.27340012, -0.00032100, 0.00019663, 7.27307911, 0.99901950, 0.99948236, 0.49326808,\
+-	-6.27340020, -0.00032097, 0.00019661, 7.27307923, 0.99901960, 0.99948242, 0.49326793,\
+-	-6.27340028, -0.00032094, 0.00019659, 7.27307934, 0.99901970, 0.99948247, 0.49326800,\
+-	-6.27340036, -0.00032090, 0.00019657, 7.27307945, 0.99901981, 0.99948252, 0.49326818,\
+-	-6.27340043, -0.00032087, 0.00019655, 7.27307956, 0.99901991, 0.99948258, 0.49326800,\
+-	-6.27340051, -0.00032084, 0.00019653, 7.27307968, 0.99902001, 0.99948263, 0.49326833,\
+-	-6.27340059, -0.00032080, 0.00019651, 7.27307979, 0.99902011, 0.99948268, 0.49326799,\
+-	-6.27340067, -0.00032077, 0.00019649, 7.27307990, 0.99902021, 0.99948274, 0.49326805,\
+-	-6.27340075, -0.00032074, 0.00019647, 7.27308002, 0.99902031, 0.99948279, 0.49326790,\
+-	-6.27340083, -0.00032070, 0.00019645, 7.27308013, 0.99902042, 0.99948285, 0.49326822,\
+-	-6.27340091, -0.00032067, 0.00019643, 7.27308024, 0.99902052, 0.99948290, 0.49326817,\
+-	-6.27340099, -0.00032064, 0.00019641, 7.27308035, 0.99902062, 0.99948295, 0.49326820,\
+-	-6.27340107, -0.00032060, 0.00019639, 7.27308047, 0.99902072, 0.99948301, 0.49326814,\
+-	-6.27340115, -0.00032057, 0.00019637, 7.27308058, 0.99902082, 0.99948306, 0.49326794,\
+-	-6.27340123, -0.00032054, 0.00019635, 7.27308069, 0.99902092, 0.99948311, 0.49326788,\
+-	-6.27340131, -0.00032050, 0.00019633, 7.27308081, 0.99902102, 0.99948317, 0.49326824,\
+-	-6.27340139, -0.00032047, 0.00019631, 7.27308092, 0.99902113, 0.99948322, 0.49326821,\
+-	-6.27340147, -0.00032044, 0.00019629, 7.27308103, 0.99902123, 0.99948327, 0.49326804,\
+-	-6.27340155, -0.00032040, 0.00019627, 7.27308114, 0.99902133, 0.99948333, 0.49326826,\
+-	-6.27340163, -0.00032037, 0.00019625, 7.27308126, 0.99902143, 0.99948338, 0.49326837,\
+-	-6.27340171, -0.00032034, 0.00019623, 7.27308137, 0.99902153, 0.99948343, 0.49326808,\
+-	-6.27340179, -0.00032031, 0.00019621, 7.27308148, 0.99902163, 0.99948349, 0.49326814,\
+-	-6.27340187, -0.00032027, 0.00019619, 7.27308159, 0.99902173, 0.99948354, 0.49326823,\
+-	-6.27340194, -0.00032024, 0.00019617, 7.27308171, 0.99902183, 0.99948359, 0.49326820,\
+-	-6.27340202, -0.00032021, 0.00019615, 7.27308182, 0.99902194, 0.99948365, 0.49326819,\
+-	-6.27340210, -0.00032017, 0.00019613, 7.27308193, 0.99902204, 0.99948370, 0.49326828,\
+-	-6.27340218, -0.00032014, 0.00019611, 7.27308204, 0.99902214, 0.99948376, 0.49326815,\
+-	-6.27340226, -0.00032011, 0.00019608, 7.27308216, 0.99902224, 0.99948381, 0.49326833,\
+-	-6.27340234, -0.00032007, 0.00019606, 7.27308227, 0.99902234, 0.99948386, 0.49326820,\
+-	-6.27340242, -0.00032004, 0.00019604, 7.27308238, 0.99902244, 0.99948392, 0.49326839,\
+-	-6.27340250, -0.00032001, 0.00019602, 7.27308249, 0.99902254, 0.99948397, 0.49326825,\
+-	-6.27340258, -0.00031997, 0.00019600, 7.27308261, 0.99902264, 0.99948402, 0.49326820,\
+-	-6.27340266, -0.00031994, 0.00019598, 7.27308272, 0.99902274, 0.99948408, 0.49326829,\
+-	-6.27340274, -0.00031991, 0.00019596, 7.27308283, 0.99902285, 0.99948413, 0.49326838,\
+-	-6.27340282, -0.00031987, 0.00019594, 7.27308294, 0.99902295, 0.99948418, 0.49326829,\
+-	-6.27340290, -0.00031984, 0.00019592, 7.27308305, 0.99902305, 0.99948424, 0.49326812,\
+-	-6.27340297, -0.00031981, 0.00019590, 7.27308317, 0.99902315, 0.99948429, 0.49326825,\
+-	-6.27340305, -0.00031978, 0.00019588, 7.27308328, 0.99902325, 0.99948434, 0.49326844,\
+-	-6.27340313, -0.00031974, 0.00019586, 7.27308339, 0.99902335, 0.99948440, 0.49326822,\
+-	-6.27340321, -0.00031971, 0.00019584, 7.27308350, 0.99902345, 0.99948445, 0.49326848,\
+-	-6.27340329, -0.00031968, 0.00019582, 7.27308361, 0.99902355, 0.99948450, 0.49326823,\
+-	-6.27340337, -0.00031964, 0.00019580, 7.27308373, 0.99902365, 0.99948455, 0.49326831,\
+-	-6.27340345, -0.00031961, 0.00019578, 7.27308384, 0.99902375, 0.99948461, 0.49326842,\
+-	-6.27340353, -0.00031958, 0.00019576, 7.27308395, 0.99902385, 0.99948466, 0.49326833,\
+-	-6.27340361, -0.00031954, 0.00019574, 7.27308406, 0.99902396, 0.99948471, 0.49326844,\
+-	-6.27340369, -0.00031951, 0.00019572, 7.27308417, 0.99902406, 0.99948477, 0.49326841,\
+-	-6.27340377, -0.00031948, 0.00019570, 7.27308429, 0.99902416, 0.99948482, 0.49326813,\
+-	-6.27340384, -0.00031945, 0.00019568, 7.27308440, 0.99902426, 0.99948487, 0.49326861,\
+-	-6.27340392, -0.00031941, 0.00019566, 7.27308451, 0.99902436, 0.99948493, 0.49326836,\
+-	-6.27340400, -0.00031938, 0.00019564, 7.27308462, 0.99902446, 0.99948498, 0.49326869,\
+-	-6.27340408, -0.00031935, 0.00019562, 7.27308473, 0.99902456, 0.99948503, 0.49326883,\
+-	-6.27340416, -0.00031931, 0.00019560, 7.27308485, 0.99902466, 0.99948509, 0.49326857,\
+-	-6.27340424, -0.00031928, 0.00019558, 7.27308496, 0.99902476, 0.99948514, 0.49326861,\
+-	-6.27340432, -0.00031925, 0.00019556, 7.27308507, 0.99902486, 0.99948519, 0.49326841,\
+-	-6.27340440, -0.00031922, 0.00019554, 7.27308518, 0.99902496, 0.99948525, 0.49326856,\
+-	-6.27340448, -0.00031918, 0.00019552, 7.27308529, 0.99902506, 0.99948530, 0.49326867,\
+-	-6.27340455, -0.00031915, 0.00019550, 7.27308540, 0.99902516, 0.99948535, 0.49326859,\
+-	-6.27340463, -0.00031912, 0.00019548, 7.27308552, 0.99902526, 0.99948541, 0.49326854,\
+-	-6.27340471, -0.00031908, 0.00019546, 7.27308563, 0.99902536, 0.99948546, 0.49326869,\
+-	-6.27340479, -0.00031905, 0.00019544, 7.27308574, 0.99902546, 0.99948551, 0.49326853,\
+-	-6.27340487, -0.00031902, 0.00019542, 7.27308585, 0.99902557, 0.99948556, 0.49326880,\
+-	-6.27340495, -0.00031899, 0.00019540, 7.27308596, 0.99902567, 0.99948562, 0.49326872,\
+-	-6.27340503, -0.00031895, 0.00019538, 7.27308607, 0.99902577, 0.99948567, 0.49326861,\
+-	-6.27340511, -0.00031892, 0.00019536, 7.27308619, 0.99902587, 0.99948572, 0.49326878,\
+-	-6.27340518, -0.00031889, 0.00019534, 7.27308630, 0.99902597, 0.99948578, 0.49326876,\
+-	-6.27340526, -0.00031885, 0.00019532, 7.27308641, 0.99902607, 0.99948583, 0.49326873,\
+-	-6.27340534, -0.00031882, 0.00019530, 7.27308652, 0.99902617, 0.99948588, 0.49326869,\
+-	-6.27340542, -0.00031879, 0.00019528, 7.27308663, 0.99902627, 0.99948594, 0.49326868,\
+-	-6.27340550, -0.00031876, 0.00019526, 7.27308674, 0.99902637, 0.99948599, 0.49326886,\
+-	-6.27340558, -0.00031872, 0.00019524, 7.27308685, 0.99902647, 0.99948604, 0.49326868,\
+-	-6.27340566, -0.00031869, 0.00019522, 7.27308697, 0.99902657, 0.99948609, 0.49326883,\
+-	-6.27340573, -0.00031866, 0.00019520, 7.27308708, 0.99902667, 0.99948615, 0.49326876,\
+-	-6.27340581, -0.00031862, 0.00019518, 7.27308719, 0.99902677, 0.99948620, 0.49326874,\
+-	-6.27340589, -0.00031859, 0.00019516, 7.27308730, 0.99902687, 0.99948625, 0.49326882,\
+-	-6.27340597, -0.00031856, 0.00019514, 7.27308741, 0.99902697, 0.99948631, 0.49326866,\
+-	-6.27340605, -0.00031853, 0.00019512, 7.27308752, 0.99902707, 0.99948636, 0.49326860,\
+-	-6.27340613, -0.00031849, 0.00019510, 7.27308763, 0.99902717, 0.99948641, 0.49326865,\
+-	-6.27340621, -0.00031846, 0.00019508, 7.27308775, 0.99902727, 0.99948646, 0.49326872,\
+-	-6.27340628, -0.00031843, 0.00019506, 7.27308786, 0.99902737, 0.99948652, 0.49326863,\
+-	-6.27340636, -0.00031839, 0.00019504, 7.27308797, 0.99902747, 0.99948657, 0.49326869,\
+-	-6.27340644, -0.00031836, 0.00019502, 7.27308808, 0.99902757, 0.99948662, 0.49326888,\
+-	-6.27340652, -0.00031833, 0.00019500, 7.27308819, 0.99902767, 0.99948668, 0.49326895,\
+-	-6.27340660, -0.00031830, 0.00019498, 7.27308830, 0.99902777, 0.99948673, 0.49326876,\
+-	-6.27340668, -0.00031826, 0.00019496, 7.27308841, 0.99902787, 0.99948678, 0.49326889,\
+-	-6.27340675, -0.00031823, 0.00019494, 7.27308852, 0.99902797, 0.99948683, 0.49326878,\
+-	-6.27340683, -0.00031820, 0.00019492, 7.27308863, 0.99902807, 0.99948689, 0.49326887,\
+-	-6.27340691, -0.00031817, 0.00019490, 7.27308875, 0.99902817, 0.99948694, 0.49326916,\
+-	-6.27340699, -0.00031813, 0.00019488, 7.27308886, 0.99902827, 0.99948699, 0.49326908,\
+-	-6.27340707, -0.00031810, 0.00019486, 7.27308897, 0.99902837, 0.99948704, 0.49326893,\
+-	-6.27340715, -0.00031807, 0.00019484, 7.27308908, 0.99902847, 0.99948710, 0.49326890,\
+-	-6.27340722, -0.00031803, 0.00019482, 7.27308919, 0.99902857, 0.99948715, 0.49326887,\
+-	-6.27340730, -0.00031800, 0.00019480, 7.27308930, 0.99902867, 0.99948720, 0.49326878,\
+-	-6.27340738, -0.00031797, 0.00019478, 7.27308941, 0.99902877, 0.99948726, 0.49326894,\
+-	-6.27340746, -0.00031794, 0.00019476, 7.27308952, 0.99902887, 0.99948731, 0.49326894,\
+-	-6.27340754, -0.00031790, 0.00019474, 7.27308963, 0.99902897, 0.99948736, 0.49326908,\
+-	-6.27340761, -0.00031787, 0.00019472, 7.27308974, 0.99902907, 0.99948741, 0.49326876,\
+-	-6.27340769, -0.00031784, 0.00019470, 7.27308985, 0.99902917, 0.99948747, 0.49326912,\
+-	-6.27340777, -0.00031781, 0.00019468, 7.27308996, 0.99902927, 0.99948752, 0.49326904,\
+-	-6.27340785, -0.00031777, 0.00019466, 7.27309008, 0.99902937, 0.99948757, 0.49326901,\
+-	-6.27340793, -0.00031774, 0.00019464, 7.27309019, 0.99902947, 0.99948762, 0.49326930,\
+-	-6.27340801, -0.00031771, 0.00019462, 7.27309030, 0.99902957, 0.99948768, 0.49326907,\
+-	-6.27340808, -0.00031768, 0.00019460, 7.27309041, 0.99902967, 0.99948773, 0.49326924,\
+-	-6.27340816, -0.00031764, 0.00019458, 7.27309052, 0.99902977, 0.99948778, 0.49326904,\
+-	-6.27340824, -0.00031761, 0.00019456, 7.27309063, 0.99902987, 0.99948783, 0.49326893,\
+-	-6.27340832, -0.00031758, 0.00019454, 7.27309074, 0.99902997, 0.99948789, 0.49326909,\
+-	-6.27340840, -0.00031755, 0.00019452, 7.27309085, 0.99903006, 0.99948794, 0.49326930,\
+-	-6.27340847, -0.00031751, 0.00019450, 7.27309096, 0.99903016, 0.99948799, 0.49326922,\
+-	-6.27340855, -0.00031748, 0.00019448, 7.27309107, 0.99903026, 0.99948804, 0.49326913,\
+-	-6.27340863, -0.00031745, 0.00019446, 7.27309118, 0.99903036, 0.99948810, 0.49326905,\
+-	-6.27340871, -0.00031742, 0.00019444, 7.27309129, 0.99903046, 0.99948815, 0.49326923,\
+-	-6.27340879, -0.00031738, 0.00019442, 7.27309140, 0.99903056, 0.99948820, 0.49326938,\
+-	-6.27340886, -0.00031735, 0.00019440, 7.27309151, 0.99903066, 0.99948825, 0.49326909,\
+-	-6.27340894, -0.00031732, 0.00019438, 7.27309162, 0.99903076, 0.99948831, 0.49326912,\
+-	-6.27340902, -0.00031728, 0.00019436, 7.27309173, 0.99903086, 0.99948836, 0.49326920,\
+-	-6.27340910, -0.00031725, 0.00019434, 7.27309184, 0.99903096, 0.99948841, 0.49326917,\
+-	-6.27340917, -0.00031722, 0.00019432, 7.27309196, 0.99903106, 0.99948846, 0.49326921,\
+-	-6.27340925, -0.00031719, 0.00019430, 7.27309207, 0.99903116, 0.99948852, 0.49326919,\
+-	-6.27340933, -0.00031715, 0.00019428, 7.27309218, 0.99903126, 0.99948857, 0.49326928,\
+-	-6.27340941, -0.00031712, 0.00019426, 7.27309229, 0.99903136, 0.99948862, 0.49326918,\
+-	-6.27340949, -0.00031709, 0.00019424, 7.27309240, 0.99903146, 0.99948867, 0.49326958,\
+-	-6.27340956, -0.00031706, 0.00019422, 7.27309251, 0.99903156, 0.99948873, 0.49326936,\
+-	-6.27340964, -0.00031702, 0.00019420, 7.27309262, 0.99903165, 0.99948878, 0.49326927,\
+-	-6.27340972, -0.00031699, 0.00019418, 7.27309273, 0.99903175, 0.99948883, 0.49326942,\
+-	-6.27340980, -0.00031696, 0.00019416, 7.27309284, 0.99903185, 0.99948888, 0.49326912,\
+-	-6.27340987, -0.00031693, 0.00019414, 7.27309295, 0.99903195, 0.99948894, 0.49326924,\
+-	-6.27340995, -0.00031690, 0.00019412, 7.27309306, 0.99903205, 0.99948899, 0.49326951,\
+-	-6.27341003, -0.00031686, 0.00019410, 7.27309317, 0.99903215, 0.99948904, 0.49326942,\
+-	-6.27341011, -0.00031683, 0.00019408, 7.27309328, 0.99903225, 0.99948909, 0.49326925,\
+-	-6.27341019, -0.00031680, 0.00019406, 7.27309339, 0.99903235, 0.99948914, 0.49326927,\
+-	-6.27341026, -0.00031677, 0.00019404, 7.27309350, 0.99903245, 0.99948920, 0.49326936,\
+-	-6.27341034, -0.00031673, 0.00019402, 7.27309361, 0.99903255, 0.99948925, 0.49326944,\
+-	-6.27341042, -0.00031670, 0.00019400, 7.27309372, 0.99903265, 0.99948930, 0.49326949,\
+-	-6.27341050, -0.00031667, 0.00019398, 7.27309383, 0.99903274, 0.99948935, 0.49326915,\
+-	-6.27341057, -0.00031664, 0.00019396, 7.27309394, 0.99903284, 0.99948941, 0.49326929,\
+-	-6.27341065, -0.00031660, 0.00019394, 7.27309405, 0.99903294, 0.99948946, 0.49326955,\
+-	-6.27341073, -0.00031657, 0.00019392, 7.27309416, 0.99903304, 0.99948951, 0.49326921,\
+-	-6.27341081, -0.00031654, 0.00019390, 7.27309427, 0.99903314, 0.99948956, 0.49326941,\
+-	-6.27341088, -0.00031651, 0.00019388, 7.27309438, 0.99903324, 0.99948961, 0.49326954,\
+-	-6.27341096, -0.00031647, 0.00019386, 7.27309449, 0.99903334, 0.99948967, 0.49326935,\
+-	-6.27341104, -0.00031644, 0.00019384, 7.27309460, 0.99903344, 0.99948972, 0.49326969,\
+-	-6.27341112, -0.00031641, 0.00019382, 7.27309471, 0.99903354, 0.99948977, 0.49326971,\
+-	-6.27341119, -0.00031638, 0.00019380, 7.27309482, 0.99903363, 0.99948982, 0.49326945,\
+-	-6.27341127, -0.00031634, 0.00019378, 7.27309493, 0.99903373, 0.99948988, 0.49326964,\
+-	-6.27341135, -0.00031631, 0.00019376, 7.27309504, 0.99903383, 0.99948993, 0.49326955,\
+-	-6.27341143, -0.00031628, 0.00019374, 7.27309515, 0.99903393, 0.99948998, 0.49326931,\
+-	-6.27341150, -0.00031625, 0.00019372, 7.27309526, 0.99903403, 0.99949003, 0.49326939,\
+-	-6.27341158, -0.00031622, 0.00019370, 7.27309537, 0.99903413, 0.99949008, 0.49326953,\
+-	-6.27341166, -0.00031618, 0.00019368, 7.27309547, 0.99903423, 0.99949014, 0.49326974,\
+-	-6.27341173, -0.00031615, 0.00019366, 7.27309558, 0.99903433, 0.99949019, 0.49326980,\
+-	-6.27341181, -0.00031612, 0.00019364, 7.27309569, 0.99903442, 0.99949024, 0.49326965,\
+-	-6.27341189, -0.00031609, 0.00019362, 7.27309580, 0.99903452, 0.99949029, 0.49326969,\
+-	-6.27341197, -0.00031605, 0.00019360, 7.27309591, 0.99903462, 0.99949034, 0.49326954,\
+-	-6.27341204, -0.00031602, 0.00019358, 7.27309602, 0.99903472, 0.99949040, 0.49326953,\
+-	-6.27341212, -0.00031599, 0.00019356, 7.27309613, 0.99903482, 0.99949045, 0.49326986,\
+-	-6.27341220, -0.00031596, 0.00019354, 7.27309624, 0.99903492, 0.99949050, 0.49326990,\
+-	-6.27341228, -0.00031592, 0.00019352, 7.27309635, 0.99903502, 0.99949055, 0.49326950,\
+-	-6.27341235, -0.00031589, 0.00019350, 7.27309646, 0.99903511, 0.99949060, 0.49326968,\
+-	-6.27341243, -0.00031586, 0.00019348, 7.27309657, 0.99903521, 0.99949066, 0.49326946,\
+-	-6.27341251, -0.00031583, 0.00019346, 7.27309668, 0.99903531, 0.99949071, 0.49326958,\
+-	-6.27341258, -0.00031580, 0.00019344, 7.27309679, 0.99903541, 0.99949076, 0.49326990,\
+-	-6.27341266, -0.00031576, 0.00019342, 7.27309690, 0.99903551, 0.99949081, 0.49326972,\
+-	-6.27341274, -0.00031573, 0.00019340, 7.27309701, 0.99903561, 0.99949086, 0.49326980,\
+-	-6.27341282, -0.00031570, 0.00019338, 7.27309712, 0.99903570, 0.99949092, 0.49327001,\
+-	-6.27341289, -0.00031567, 0.00019336, 7.27309723, 0.99903580, 0.99949097, 0.49326985,\
+-	-6.27341297, -0.00031563, 0.00019334, 7.27309734, 0.99903590, 0.99949102, 0.49326983,\
+-	-6.27341305, -0.00031560, 0.00019333, 7.27309744, 0.99903600, 0.99949107, 0.49326985,\
+-	-6.27341312, -0.00031557, 0.00019331, 7.27309755, 0.99903610, 0.99949112, 0.49327005,\
+-	-6.27341320, -0.00031554, 0.00019329, 7.27309766, 0.99903620, 0.99949118, 0.49326985,\
+-	-6.27341328, -0.00031551, 0.00019327, 7.27309777, 0.99903629, 0.99949123, 0.49326980,\
+-	-6.27341336, -0.00031547, 0.00019325, 7.27309788, 0.99903639, 0.99949128, 0.49326990,\
+-	-6.27341343, -0.00031544, 0.00019323, 7.27309799, 0.99903649, 0.99949133, 0.49326985,\
+-	-6.27341351, -0.00031541, 0.00019321, 7.27309810, 0.99903659, 0.99949138, 0.49326999,\
+-	-6.27341359, -0.00031538, 0.00019319, 7.27309821, 0.99903669, 0.99949144, 0.49326989,\
+-	-6.27341366, -0.00031535, 0.00019317, 7.27309832, 0.99903679, 0.99949149, 0.49326987,\
+-	-6.27341374, -0.00031531, 0.00019315, 7.27309843, 0.99903688, 0.99949154, 0.49327012,\
+-	-6.27341382, -0.00031528, 0.00019313, 7.27309854, 0.99903698, 0.99949159, 0.49326994,\
+-	-6.27341389, -0.00031525, 0.00019311, 7.27309864, 0.99903708, 0.99949164, 0.49327001,\
+-	-6.27341397, -0.00031522, 0.00019309, 7.27309875, 0.99903718, 0.99949169, 0.49327008,\
+-	-6.27341405, -0.00031519, 0.00019307, 7.27309886, 0.99903728, 0.99949175, 0.49327008,\
+-	-6.27341412, -0.00031515, 0.00019305, 7.27309897, 0.99903737, 0.99949180, 0.49326970,\
+-	-6.27341420, -0.00031512, 0.00019303, 7.27309908, 0.99903747, 0.99949185, 0.49326989,\
+-	-6.27341428, -0.00031509, 0.00019301, 7.27309919, 0.99903757, 0.99949190, 0.49326992,\
+-	-6.27341435, -0.00031506, 0.00019299, 7.27309930, 0.99903767, 0.99949195, 0.49327000,\
+-	-6.27341443, -0.00031502, 0.00019297, 7.27309941, 0.99903777, 0.99949200, 0.49327006,\
+-	-6.27341451, -0.00031499, 0.00019295, 7.27309952, 0.99903786, 0.99949206, 0.49327023,\
+-	-6.27341459, -0.00031496, 0.00019293, 7.27309962, 0.99903796, 0.99949211, 0.49327002,\
+-	-6.27341466, -0.00031493, 0.00019291, 7.27309973, 0.99903806, 0.99949216, 0.49327004,\
+-	-6.27341474, -0.00031490, 0.00019289, 7.27309984, 0.99903816, 0.99949221, 0.49327010,\
+-	-6.27341482, -0.00031486, 0.00019287, 7.27309995, 0.99903826, 0.99949226, 0.49327000,\
+-	-6.27341489, -0.00031483, 0.00019285, 7.27310006, 0.99903835, 0.99949231, 0.49326994,\
+-	-6.27341497, -0.00031480, 0.00019283, 7.27310017, 0.99903845, 0.99949237, 0.49327008,\
+-	-6.27341505, -0.00031477, 0.00019281, 7.27310028, 0.99903855, 0.99949242, 0.49327002,\
+-	-6.27341512, -0.00031474, 0.00019279, 7.27310039, 0.99903865, 0.99949247, 0.49327015,\
+-	-6.27341520, -0.00031470, 0.00019277, 7.27310049, 0.99903874, 0.99949252, 0.49326998,\
+-	-6.27341528, -0.00031467, 0.00019275, 7.27310060, 0.99903884, 0.99949257, 0.49327030,\
+-	-6.27341535, -0.00031464, 0.00019274, 7.27310071, 0.99903894, 0.99949262, 0.49326995,\
+-	-6.27341543, -0.00031461, 0.00019272, 7.27310082, 0.99903904, 0.99949268, 0.49327013,\
+-	-6.27341550, -0.00031458, 0.00019270, 7.27310093, 0.99903914, 0.99949273, 0.49327030,\
+-	-6.27341558, -0.00031454, 0.00019268, 7.27310104, 0.99903923, 0.99949278, 0.49327016,\
+-	-6.27341566, -0.00031451, 0.00019266, 7.27310115, 0.99903933, 0.99949283, 0.49327003,\
+-	-6.27341573, -0.00031448, 0.00019264, 7.27310125, 0.99903943, 0.99949288, 0.49327020,\
+-	-6.27341581, -0.00031445, 0.00019262, 7.27310136, 0.99903953, 0.99949293, 0.49327016,\
+-	-6.27341589, -0.00031442, 0.00019260, 7.27310147, 0.99903962, 0.99949298, 0.49327038,\
+-	-6.27341596, -0.00031438, 0.00019258, 7.27310158, 0.99903972, 0.99949304, 0.49327020,\
+-	-6.27341604, -0.00031435, 0.00019256, 7.27310169, 0.99903982, 0.99949309, 0.49326989,\
+-	-6.27341612, -0.00031432, 0.00019254, 7.27310180, 0.99903992, 0.99949314, 0.49327033,\
+-	-6.27341619, -0.00031429, 0.00019252, 7.27310190, 0.99904001, 0.99949319, 0.49327021,\
+-	-6.27341627, -0.00031426, 0.00019250, 7.27310201, 0.99904011, 0.99949324, 0.49327047,\
+-	-6.27341635, -0.00031423, 0.00019248, 7.27310212, 0.99904021, 0.99949329, 0.49327024,\
+-	-6.27341642, -0.00031419, 0.00019246, 7.27310223, 0.99904031, 0.99949335, 0.49327034,\
+-	-6.27341650, -0.00031416, 0.00019244, 7.27310234, 0.99904040, 0.99949340, 0.49327024,\
+-	-6.27341658, -0.00031413, 0.00019242, 7.27310245, 0.99904050, 0.99949345, 0.49327049,\
+-	-6.27341665, -0.00031410, 0.00019240, 7.27310255, 0.99904060, 0.99949350, 0.49327029,\
+-	-6.27341673, -0.00031407, 0.00019238, 7.27310266, 0.99904070, 0.99949355, 0.49327027,\
+-	-6.27341680, -0.00031403, 0.00019236, 7.27310277, 0.99904079, 0.99949360, 0.49327052,\
+-	-6.27341688, -0.00031400, 0.00019234, 7.27310288, 0.99904089, 0.99949365, 0.49327062,\
+-	-6.27341696, -0.00031397, 0.00019232, 7.27310299, 0.99904099, 0.99949370, 0.49327051,\
+-	-6.27341703, -0.00031394, 0.00019231, 7.27310309, 0.99904108, 0.99949376, 0.49327035,\
+-	-6.27341711, -0.00031391, 0.00019229, 7.27310320, 0.99904118, 0.99949381, 0.49327029,\
+-	-6.27341719, -0.00031387, 0.00019227, 7.27310331, 0.99904128, 0.99949386, 0.49327040,\
+-	-6.27341726, -0.00031384, 0.00019225, 7.27310342, 0.99904138, 0.99949391, 0.49327054,\
+-	-6.27341734, -0.00031381, 0.00019223, 7.27310353, 0.99904147, 0.99949396, 0.49327057,\
+-	-6.27341741, -0.00031378, 0.00019221, 7.27310363, 0.99904157, 0.99949401, 0.49327065,\
+-	-6.27341749, -0.00031375, 0.00019219, 7.27310374, 0.99904167, 0.99949406, 0.49327055,\
+-	-6.27341757, -0.00031372, 0.00019217, 7.27310385, 0.99904177, 0.99949412, 0.49327044,\
+-	-6.27341764, -0.00031368, 0.00019215, 7.27310396, 0.99904186, 0.99949417, 0.49327060,\
+-	-6.27341772, -0.00031365, 0.00019213, 7.27310407, 0.99904196, 0.99949422, 0.49327062,\
+-	-6.27341779, -0.00031362, 0.00019211, 7.27310417, 0.99904206, 0.99949427, 0.49327057,\
+-	-6.27341787, -0.00031359, 0.00019209, 7.27310428, 0.99904215, 0.99949432, 0.49327068,\
+-	-6.27341795, -0.00031356, 0.00019207, 7.27310439, 0.99904225, 0.99949437, 0.49327087,\
+-	-6.27341802, -0.00031353, 0.00019205, 7.27310450, 0.99904235, 0.99949442, 0.49327065,\
+-	-6.27341810, -0.00031349, 0.00019203, 7.27310461, 0.99904244, 0.99949447, 0.49327040,\
+-	-6.27341817, -0.00031346, 0.00019201, 7.27310471, 0.99904254, 0.99949453, 0.49327056,\
+-	-6.27341825, -0.00031343, 0.00019199, 7.27310482, 0.99904264, 0.99949458, 0.49327057,\
+-	-6.27341833, -0.00031340, 0.00019197, 7.27310493, 0.99904274, 0.99949463, 0.49327059,\
+-	-6.27341840, -0.00031337, 0.00019195, 7.27310504, 0.99904283, 0.99949468, 0.49327075,\
+-	-6.27341848, -0.00031333, 0.00019194, 7.27310514, 0.99904293, 0.99949473, 0.49327058,\
+-	-6.27341855, -0.00031330, 0.00019192, 7.27310525, 0.99904303, 0.99949478, 0.49327073,\
+-	-6.27341863, -0.00031327, 0.00019190, 7.27310536, 0.99904312, 0.99949483, 0.49327054,\
+-	-6.27341871, -0.00031324, 0.00019188, 7.27310547, 0.99904322, 0.99949488, 0.49327048,\
+-	-6.27341878, -0.00031321, 0.00019186, 7.27310557, 0.99904332, 0.99949493, 0.49327086,\
+-	-6.27341886, -0.00031318, 0.00019184, 7.27310568, 0.99904341, 0.99949499, 0.49327056,\
+-	-6.27341893, -0.00031314, 0.00019182, 7.27310579, 0.99904351, 0.99949504, 0.49327071,\
+-	-6.27341901, -0.00031311, 0.00019180, 7.27310590, 0.99904361, 0.99949509, 0.49327045,\
+-	-6.27341909, -0.00031308, 0.00019178, 7.27310600, 0.99904370, 0.99949514, 0.49327067,\
+-	-6.27341916, -0.00031305, 0.00019176, 7.27310611, 0.99904380, 0.99949519, 0.49327067,\
+-	-6.27341924, -0.00031302, 0.00019174, 7.27310622, 0.99904390, 0.99949524, 0.49327074,\
+-	-6.27341931, -0.00031299, 0.00019172, 7.27310633, 0.99904399, 0.99949529, 0.49327107,\
+-	-6.27341939, -0.00031295, 0.00019170, 7.27310643, 0.99904409, 0.99949534, 0.49327064,\
+-	-6.27341946, -0.00031292, 0.00019168, 7.27310654, 0.99904419, 0.99949539, 0.49327063,\
+-	-6.27341954, -0.00031289, 0.00019166, 7.27310665, 0.99904428, 0.99949545, 0.49327050,\
+-	-6.27341962, -0.00031286, 0.00019164, 7.27310676, 0.99904438, 0.99949550, 0.49327069,\
+-	-6.27341969, -0.00031283, 0.00019162, 7.27310686, 0.99904448, 0.99949555, 0.49327081,\
+-	-6.27341977, -0.00031280, 0.00019161, 7.27310697, 0.99904457, 0.99949560, 0.49327077,\
+-	-6.27341984, -0.00031276, 0.00019159, 7.27310708, 0.99904467, 0.99949565, 0.49327081,\
+-	-6.27341992, -0.00031273, 0.00019157, 7.27310719, 0.99904477, 0.99949570, 0.49327088,\
+-	-6.27341999, -0.00031270, 0.00019155, 7.27310729, 0.99904486, 0.99949575, 0.49327082,\
+-	-6.27342007, -0.00031267, 0.00019153, 7.27310740, 0.99904496, 0.99949580, 0.49327067,\
+-	-6.27342015, -0.00031264, 0.00019151, 7.27310751, 0.99904506, 0.99949585, 0.49327061,\
+-	-6.27342022, -0.00031261, 0.00019149, 7.27310761, 0.99904515, 0.99949590, 0.49327079,\
+-	-6.27342030, -0.00031258, 0.00019147, 7.27310772, 0.99904525, 0.99949595, 0.49327103,\
+-	-6.27342037, -0.00031254, 0.00019145, 7.27310783, 0.99904535, 0.99949601, 0.49327107,\
+-	-6.27342045, -0.00031251, 0.00019143, 7.27310794, 0.99904544, 0.99949606, 0.49327084,\
+-	-6.27342052, -0.00031248, 0.00019141, 7.27310804, 0.99904554, 0.99949611, 0.49327096,\
+-	-6.27342060, -0.00031245, 0.00019139, 7.27310815, 0.99904563, 0.99949616, 0.49327062,\
+-	-6.27342067, -0.00031242, 0.00019137, 7.27310826, 0.99904573, 0.99949621, 0.49327088,\
+-	-6.27342075, -0.00031239, 0.00019135, 7.27310836, 0.99904583, 0.99949626, 0.49327094,\
+-	-6.27342083, -0.00031235, 0.00019133, 7.27310847, 0.99904592, 0.99949631, 0.49327095,\
+-	-6.27342090, -0.00031232, 0.00019132, 7.27310858, 0.99904602, 0.99949636, 0.49327111,\
+-	-6.27342098, -0.00031229, 0.00019130, 7.27310869, 0.99904612, 0.99949641, 0.49327066,\
+-	-6.27342105, -0.00031226, 0.00019128, 7.27310879, 0.99904621, 0.99949646, 0.49327112,\
+-	-6.27342113, -0.00031223, 0.00019126, 7.27310890, 0.99904631, 0.99949651, 0.49327094,\
+-	-6.27342120, -0.00031220, 0.00019124, 7.27310901, 0.99904641, 0.99949656, 0.49327097,\
+-	-6.27342128, -0.00031217, 0.00019122, 7.27310911, 0.99904650, 0.99949662, 0.49327094,\
+-	-6.27342135, -0.00031213, 0.00019120, 7.27310922, 0.99904660, 0.99949667, 0.49327120,\
+-	-6.27342143, -0.00031210, 0.00019118, 7.27310933, 0.99904669, 0.99949672, 0.49327123,\
+-	-6.27342150, -0.00031207, 0.00019116, 7.27310943, 0.99904679, 0.99949677, 0.49327124,\
+-	-6.27342158, -0.00031204, 0.00019114, 7.27310954, 0.99904689, 0.99949682, 0.49327089,\
+-	-6.27342166, -0.00031201, 0.00019112, 7.27310965, 0.99904698, 0.99949687, 0.49327096,\
+-	-6.27342173, -0.00031198, 0.00019110, 7.27310975, 0.99904708, 0.99949692, 0.49327093,\
+-	-6.27342181, -0.00031195, 0.00019108, 7.27310986, 0.99904717, 0.99949697, 0.49327128,\
+-	-6.27342188, -0.00031191, 0.00019106, 7.27310997, 0.99904727, 0.99949702, 0.49327122,\
+-	-6.27342196, -0.00031188, 0.00019105, 7.27311007, 0.99904737, 0.99949707, 0.49327128,\
+-	-6.27342203, -0.00031185, 0.00019103, 7.27311018, 0.99904746, 0.99949712, 0.49327113,\
+-	-6.27342211, -0.00031182, 0.00019101, 7.27311029, 0.99904756, 0.99949717, 0.49327121,\
+-	-6.27342218, -0.00031179, 0.00019099, 7.27311039, 0.99904765, 0.99949722, 0.49327115,\
+-	-6.27342226, -0.00031176, 0.00019097, 7.27311050, 0.99904775, 0.99949727, 0.49327114,\
+-	-6.27342233, -0.00031173, 0.00019095, 7.27311061, 0.99904785, 0.99949733, 0.49327102,\
+-	-6.27342241, -0.00031169, 0.00019093, 7.27311071, 0.99904794, 0.99949738, 0.49327120,\
+-	-6.27342248, -0.00031166, 0.00019091, 7.27311082, 0.99904804, 0.99949743, 0.49327130,\
+-	-6.27342256, -0.00031163, 0.00019089, 7.27311093, 0.99904813, 0.99949748, 0.49327109,\
+-	-6.27342263, -0.00031160, 0.00019087, 7.27311103, 0.99904823, 0.99949753, 0.49327132,\
+-	-6.27342271, -0.00031157, 0.00019085, 7.27311114, 0.99904833, 0.99949758, 0.49327146,\
+-	-6.27342278, -0.00031154, 0.00019083, 7.27311125, 0.99904842, 0.99949763, 0.49327090,\
+-	-6.27342286, -0.00031151, 0.00019081, 7.27311135, 0.99904852, 0.99949768, 0.49327123,\
+-	-6.27342293, -0.00031147, 0.00019080, 7.27311146, 0.99904861, 0.99949773, 0.49327134,\
+-	-6.27342301, -0.00031144, 0.00019078, 7.27311156, 0.99904871, 0.99949778, 0.49327133,\
+-	-6.27342308, -0.00031141, 0.00019076, 7.27311167, 0.99904880, 0.99949783, 0.49327117,\
+-	-6.27342316, -0.00031138, 0.00019074, 7.27311178, 0.99904890, 0.99949788, 0.49327124,\
+-	-6.27342323, -0.00031135, 0.00019072, 7.27311188, 0.99904900, 0.99949793, 0.49327116,\
+-	-6.27342331, -0.00031132, 0.00019070, 7.27311199, 0.99904909, 0.99949798, 0.49327125,\
+-	-6.27342338, -0.00031129, 0.00019068, 7.27311210, 0.99904919, 0.99949803, 0.49327132,\
+-	-6.27342346, -0.00031126, 0.00019066, 7.27311220, 0.99904928, 0.99949808, 0.49327161,\
+-	-6.27342353, -0.00031122, 0.00019064, 7.27311231, 0.99904938, 0.99949813, 0.49327137,\
+-	-6.27342361, -0.00031119, 0.00019062, 7.27311242, 0.99904947, 0.99949818, 0.49327141,\
+-	-6.27342368, -0.00031116, 0.00019060, 7.27311252, 0.99904957, 0.99949824, 0.49327151,\
+-	-6.27342376, -0.00031113, 0.00019058, 7.27311263, 0.99904966, 0.99949829, 0.49327147,\
+-	-6.27342383, -0.00031110, 0.00019057, 7.27311273, 0.99904976, 0.99949834, 0.49327157,\
+-	-6.27342391, -0.00031107, 0.00019055, 7.27311284, 0.99904986, 0.99949839, 0.49327158,\
+-	-6.27342398, -0.00031104, 0.00019053, 7.27311295, 0.99904995, 0.99949844, 0.49327140,\
+-	-6.27342406, -0.00031101, 0.00019051, 7.27311305, 0.99905005, 0.99949849, 0.49327149,\
+-	-6.27342413, -0.00031097, 0.00019049, 7.27311316, 0.99905014, 0.99949854, 0.49327130,\
+-	-6.27342421, -0.00031094, 0.00019047, 7.27311326, 0.99905024, 0.99949859, 0.49327138,\
+-	-6.27342428, -0.00031091, 0.00019045, 7.27311337, 0.99905033, 0.99949864, 0.49327154,\
+-	-6.27342436, -0.00031088, 0.00019043, 7.27311348, 0.99905043, 0.99949869, 0.49327144,\
+-	-6.27342443, -0.00031085, 0.00019041, 7.27311358, 0.99905052, 0.99949874, 0.49327149,\
+-	-6.27342451, -0.00031082, 0.00019039, 7.27311369, 0.99905062, 0.99949879, 0.49327160,\
+-	-6.27342458, -0.00031079, 0.00019037, 7.27311379, 0.99905071, 0.99949884, 0.49327162,\
+-	-6.27342466, -0.00031076, 0.00019035, 7.27311390, 0.99905081, 0.99949889, 0.49327146,\
+-	-6.27342473, -0.00031072, 0.00019034, 7.27311401, 0.99905091, 0.99949894, 0.49327178,\
+-	-6.27342480, -0.00031069, 0.00019032, 7.27311411, 0.99905100, 0.99949899, 0.49327156,\
+-	-6.27342488, -0.00031066, 0.00019030, 7.27311422, 0.99905110, 0.99949904, 0.49327151,\
+-	-6.27342495, -0.00031063, 0.00019028, 7.27311432, 0.99905119, 0.99949909, 0.49327157,\
+-	-6.27342503, -0.00031060, 0.00019026, 7.27311443, 0.99905129, 0.99949914, 0.49327162,\
+-	-6.27342510, -0.00031057, 0.00019024, 7.27311453, 0.99905138, 0.99949919, 0.49327180,\
+-	-6.27342518, -0.00031054, 0.00019022, 7.27311464, 0.99905148, 0.99949924, 0.49327153,\
+-	-6.27342525, -0.00031051, 0.00019020, 7.27311475, 0.99905157, 0.99949929, 0.49327170,\
+-	-6.27342533, -0.00031047, 0.00019018, 7.27311485, 0.99905167, 0.99949934, 0.49327164,\
+-	-6.27342540, -0.00031044, 0.00019016, 7.27311496, 0.99905176, 0.99949939, 0.49327177,\
+-	-6.27342548, -0.00031041, 0.00019014, 7.27311506, 0.99905186, 0.99949944, 0.49327171,\
+-	-6.27342555, -0.00031038, 0.00019013, 7.27311517, 0.99905195, 0.99949949, 0.49327163,\
+-	-6.27342563, -0.00031035, 0.00019011, 7.27311527, 0.99905205, 0.99949954, 0.49327148,\
+-	-6.27342570, -0.00031032, 0.00019009, 7.27311538, 0.99905214, 0.99949959, 0.49327177,\
+-	-6.27342577, -0.00031029, 0.00019007, 7.27311549, 0.99905224, 0.99949964, 0.49327190,\
+-	-6.27342585, -0.00031026, 0.00019005, 7.27311559, 0.99905233, 0.99949969, 0.49327174,\
+-	-6.27342592, -0.00031023, 0.00019003, 7.27311570, 0.99905243, 0.99949974, 0.49327179,\
+-	-6.27342600, -0.00031019, 0.00019001, 7.27311580, 0.99905252, 0.99949979, 0.49327165,\
+-	-6.27342607, -0.00031016, 0.00018999, 7.27311591, 0.99905262, 0.99949984, 0.49327180,\
+-	-6.27342615, -0.00031013, 0.00018997, 7.27311601, 0.99905271, 0.99949989, 0.49327176,\
+-	-6.27342622, -0.00031010, 0.00018995, 7.27311612, 0.99905281, 0.99949994, 0.49327155,\
+-	-6.27342630, -0.00031007, 0.00018993, 7.27311622, 0.99905290, 0.99949999, 0.49327169,\
+-	-6.27342637, -0.00031004, 0.00018992, 7.27311633, 0.99905300, 0.99950004, 0.49327184,\
+-	-6.27342644, -0.00031001, 0.00018990, 7.27311644, 0.99905309, 0.99950009, 0.49327184,\
+-	-6.27342652, -0.00030998, 0.00018988, 7.27311654, 0.99905319, 0.99950014, 0.49327176,\
+-	-6.27342659, -0.00030995, 0.00018986, 7.27311665, 0.99905328, 0.99950019, 0.49327184,\
+-	-6.27342667, -0.00030992, 0.00018984, 7.27311675, 0.99905338, 0.99950024, 0.49327166,\
+-	-6.27342674, -0.00030988, 0.00018982, 7.27311686, 0.99905347, 0.99950029, 0.49327222,\
+-	-6.27342682, -0.00030985, 0.00018980, 7.27311696, 0.99905357, 0.99950034, 0.49327211,\
+-	-6.27342689, -0.00030982, 0.00018978, 7.27311707, 0.99905366, 0.99950039, 0.49327202,\
+-	-6.27342696, -0.00030979, 0.00018976, 7.27311717, 0.99905376, 0.99950044, 0.49327179,\
+-	-6.27342704, -0.00030976, 0.00018974, 7.27311728, 0.99905385, 0.99950049, 0.49327176,\
+-	-6.27342711, -0.00030973, 0.00018973, 7.27311738, 0.99905394, 0.99950054, 0.49327202,\
+-	-6.27342719, -0.00030970, 0.00018971, 7.27311749, 0.99905404, 0.99950059, 0.49327184,\
+-	-6.27342726, -0.00030967, 0.00018969, 7.27311759, 0.99905413, 0.99950064, 0.49327198,\
+-	-6.27342733, -0.00030964, 0.00018967, 7.27311770, 0.99905423, 0.99950069, 0.49327205,\
+-	-6.27342741, -0.00030961, 0.00018965, 7.27311780, 0.99905432, 0.99950074, 0.49327200,\
+-	-6.27342748, -0.00030957, 0.00018963, 7.27311791, 0.99905442, 0.99950079, 0.49327197,\
+-	-6.27342756, -0.00030954, 0.00018961, 7.27311801, 0.99905451, 0.99950084, 0.49327183,\
+-	-6.27342763, -0.00030951, 0.00018959, 7.27311812, 0.99905461, 0.99950089, 0.49327208,\
+-	-6.27342771, -0.00030948, 0.00018957, 7.27311822, 0.99905470, 0.99950094, 0.49327205,\
+-	-6.27342778, -0.00030945, 0.00018956, 7.27311833, 0.99905480, 0.99950099, 0.49327194]
++	love_numbers=array([\
++[    0         , 0          ,0          ,0          ,0          ,0          ,0          ],\
++[	-1.28740059,-1.00000000,-0.89858519,1.28740059, 0.42519882  ,0.89858519 ,0.00000000 ],\
++[	-1.00025365, -0.30922675, 0.02060926, 1.69102690, 0.46358648, 0.67016399, 0.61829668],\
++[	-1.06243501, -0.19927948, 0.06801636, 1.86315553, 0.55741597, 0.73270416, 0.56270589],\
++[	-1.06779588, -0.13649834, 0.05667027, 1.93129754, 0.63672498, 0.80683140, 0.51132745],\
++[	-1.10365923, -0.10736896, 0.04401221, 1.99629027, 0.68737906, 0.84861883, 0.48642259],\
++[	-1.16440348, -0.09295485, 0.03638747, 2.07144863, 0.72031283, 0.87065768, 0.47898268],\
++[	-1.23634156, -0.08469861, 0.03202759, 2.15164295, 0.74355796, 0.88327380, 0.47955214],\
++[	-1.31140380, -0.07921412, 0.02937593, 2.23218968, 0.76126493, 0.89140995, 0.48323250],\
++[	-1.38582399, -0.07513541, 0.02762338, 2.31068858, 0.77552290, 0.89724121, 0.48795424],\
++[	-1.45807465, -0.07187005, 0.02638627, 2.38620460, 0.78744212, 0.90174369, 0.49291061],\
++[	-1.52763314, -0.06913154, 0.02547640, 2.45850160, 0.79766475, 0.90539206, 0.49779422],\
++[	-1.59437866, -0.06676258, 0.02479080, 2.52761607, 0.80659635, 0.90844662, 0.50248477],\
++[	-1.65833071, -0.06466619, 0.02426511, 2.59366452, 0.81451271, 0.91106870, 0.50693175],\
++[	-1.71954820, -0.06277732, 0.02385464, 2.65677088, 0.82161167, 0.91336804, 0.51111243],\
++[	-1.77809640, -0.06105001, 0.02352654, 2.71704639, 0.82804049, 0.91542346, 0.51501712],\
++[	-1.83403970, -0.05945081, 0.02325609, 2.77458889, 0.83391153, 0.91729309, 0.51864363],\
++[	-1.88744242, -0.05795502, 0.02302469, 2.82948740, 0.83931209, 0.91902029, 0.52199490],\
++[	-1.93837115, -0.05654418, 0.02281843, 2.88182697, 0.84431095, 0.92063739, 0.52507761],\
++[	-1.98689666, -0.05520447, 0.02262706, 2.93169219, 0.84896295, 0.92216847, 0.52790108],\
++[	-2.03309477, -0.05392545, 0.02244322, 2.97916932, 0.85331225, 0.92363132, 0.53047654],\
++[	-2.07704643, -0.05269926, 0.02226173, 3.02434717, 0.85739480, 0.92503902, 0.53281639],\
++[	-2.11883714, -0.05151988, 0.02207909, 3.06731726, 0.86124014, 0.92640103, 0.53493369],\
++[	-2.15855611, -0.05038274, 0.02189307, 3.10817337, 0.86487276, 0.92772419, 0.53684176],\
++[	-2.19629514, -0.04928430, 0.02170238, 3.14701084, 0.86831322, 0.92901331, 0.53855386],\
++[	-2.23214747, -0.04822179, 0.02150643, 3.18392568, 0.87157886, 0.93027178, 0.54008294],\
++[	-2.26620674, -0.04719301, 0.02130509, 3.21901373, 0.87468453, 0.93150190, 0.54144148],\
++[	-2.29856595, -0.04619619, 0.02109858, 3.25236976, 0.87764301, 0.93270523, 0.54264140],\
++[	-2.32931659, -0.04522983, 0.02088735, 3.28408675, 0.88046543, 0.93388282, 0.54369397],\
++[	-2.35854794, -0.04429270, 0.02067197, 3.31425524, 0.88316156, 0.93503533, 0.54460979],\
++[	-2.38634650, -0.04338368, 0.02045310, 3.34296281, 0.88574004, 0.93616321, 0.54539877],\
++[	-2.41279547, -0.04250179, 0.02023142, 3.37029367, 0.88820859, 0.93726678, 0.54607015],\
++[	-2.43797451, -0.04164613, 0.02000761, 3.39632839, 0.89057416, 0.93834626, 0.54663248],\
++[	-2.46195951, -0.04081583, 0.01978231, 3.42114367, 0.89284301, 0.93940185, 0.54709369],\
++[	-2.48482241, -0.04001011, 0.01955614, 3.44481230, 0.89502085, 0.94043375, 0.54746112],\
++[	-2.50663126, -0.03922817, 0.01932966, 3.46740309, 0.89711291, 0.94144217, 0.54774153],\
++[	-2.52745016, -0.03846928, 0.01910337, 3.48898088, 0.89912397, 0.94242735, 0.54794114],\
++[	-2.54733938, -0.03773269, 0.01887774, 3.50960670, 0.90105847, 0.94338957, 0.54806571],\
++[	-2.56635547, -0.03701769, 0.01865317, 3.52933779, 0.90292050, 0.94432915, 0.54812051],\
++[	-2.58455138, -0.03632358, 0.01843000, 3.54822780, 0.90471386, 0.94524642, 0.54811044],\
++[	-2.60197665, -0.03564968, 0.01820854, 3.56632697, 0.90644209, 0.94614178, 0.54803997],\
++[	-2.61867756, -0.03499532, 0.01798905, 3.58368224, 0.90810850, 0.94701563, 0.54791326],\
++[	-2.63469733, -0.03435985, 0.01777176, 3.60033748, 0.90971616, 0.94786840, 0.54773413],\
++[	-2.65007629, -0.03374263, 0.01755683, 3.61633367, 0.91126798, 0.94870054, 0.54750610],\
++[	-2.66485208, -0.03314303, 0.01734443, 3.63170905, 0.91276665, 0.94951253, 0.54723245],\
++[	-2.67905981, -0.03256047, 0.01713468, 3.64649934, 0.91421471, 0.95030485, 0.54691620],\
++[	-2.69273222, -0.03199435, 0.01692767, 3.66073787, 0.91561457, 0.95107798, 0.54656015],\
++[	-2.70589990, -0.03144411, 0.01672347, 3.67445580, 0.91696845, 0.95183242, 0.54616691],\
++[	-2.71859139, -0.03090919, 0.01652215, 3.68768220, 0.91827849, 0.95256866, 0.54573889],\
++[	-2.73083334, -0.03038907, 0.01632374, 3.70044427, 0.91954667, 0.95328719, 0.54527835],\
++[	-2.74265068, -0.02988323, 0.01612826, 3.71276745, 0.92077487, 0.95398851, 0.54478739],\
++[	-2.75406669, -0.02939118, 0.01593573, 3.72467551, 0.92196486, 0.95467309, 0.54426797],\
++[	-2.76510320, -0.02891245, 0.01574615, 3.73619076, 0.92311833, 0.95534141, 0.54372191],\
++[	-2.77578063, -0.02844656, 0.01555950, 3.74733406, 0.92423685, 0.95599393, 0.54315095],\
++[	-2.78611812, -0.02799309, 0.01537578, 3.75812503, 0.92532192, 0.95663113, 0.54255669],\
++[	-2.79613364, -0.02755161, 0.01519496, 3.76858203, 0.92637496, 0.95725343, 0.54194065],\
++[	-2.80584405, -0.02712170, 0.01501701, 3.77872235, 0.92739730, 0.95786128, 0.54130424],\
++[	-2.81526521, -0.02670298, 0.01484191, 3.78856223, 0.92839022, 0.95845511, 0.54064880],\
++[	-2.82441204, -0.02629506, 0.01466961, 3.79811697, 0.92935491, 0.95903532, 0.53997561],\
++[	-2.83329857, -0.02589759, 0.01450009, 3.80740098, 0.93029251, 0.95960232, 0.53928586],\
++[	-2.84193804, -0.02551021, 0.01433329, 3.81642782, 0.93120412, 0.96015649, 0.53858067],\
++[	-2.85034293, -0.02513260, 0.01416919, 3.82521033, 0.93209074, 0.96069821, 0.53786112],\
++[	-2.85852503, -0.02476443, 0.01400773, 3.83376061, 0.93295337, 0.96122784, 0.53712821],\
++[	-2.86649548, -0.02440538, 0.01384888, 3.84209010, 0.93379291, 0.96174574, 0.53638291],\
++[	-2.87426481, -0.02405518, 0.01369258, 3.85020963, 0.93461026, 0.96225224, 0.53562612],\
++[	-2.88184299, -0.02371352, 0.01353880, 3.85812947, 0.93540625, 0.96274768, 0.53485873],\
++[	-2.88923945, -0.02338014, 0.01338749, 3.86585931, 0.93618168, 0.96323236, 0.53408154],\
++[	-2.89646316, -0.02305478, 0.01323861, 3.87340838, 0.93693730, 0.96370661, 0.53329534],\
++[	-2.90352261, -0.02273718, 0.01309211, 3.88078542, 0.93767383, 0.96417071, 0.53250089],\
++[	-2.91042585, -0.02242710, 0.01294795, 3.88799874, 0.93839197, 0.96462494, 0.53169888],\
++[	-2.91718054, -0.02212431, 0.01280609, 3.89505623, 0.93909236, 0.96506960, 0.53089002],\
++[	-2.92379397, -0.02182859, 0.01266648, 3.90196538, 0.93977564, 0.96550493, 0.53007493],\
++[	-2.93027306, -0.02153971, 0.01252908, 3.90873334, 0.94044240, 0.96593120, 0.52925424],\
++[	-2.93662439, -0.02125748, 0.01239386, 3.91536691, 0.94109322, 0.96634866, 0.52842854],\
++[	-2.94285425, -0.02098169, 0.01226077, 3.92187256, 0.94172863, 0.96675754, 0.52759839],\
++[	-2.94896860, -0.02071215, 0.01212977, 3.92825645, 0.94234915, 0.96715808, 0.52676434],\
++[	-2.95497314, -0.02044868, 0.01200082, 3.93452446, 0.94295529, 0.96755050, 0.52592690],\
++[	-2.96087331, -0.02019110, 0.01187388, 3.94068220, 0.94354752, 0.96793501, 0.52508656],\
++[	-2.96667427, -0.01993924, 0.01174893, 3.94673503, 0.94412630, 0.96831183, 0.52424380],\
++[	-2.97238097, -0.01969293, 0.01162591, 3.95268804, 0.94469206, 0.96868116, 0.52339906],\
++[	-2.97799813, -0.01945201, 0.01150481, 3.95854612, 0.94524521, 0.96904318, 0.52255277],\
++[	-2.98353025, -0.01921634, 0.01138557, 3.96431391, 0.94578617, 0.96939809, 0.52170535],\
++[	-2.98898162, -0.01898576, 0.01126817, 3.96999586, 0.94631531, 0.96974607, 0.52085719],\
++[	-2.99435636, -0.01876014, 0.01115257, 3.97559622, 0.94683300, 0.97008729, 0.52000868],\
++[	-2.99965838, -0.01853932, 0.01103875, 3.98111905, 0.94733959, 0.97042193, 0.51916016],\
++[	-3.00489143, -0.01832319, 0.01092666, 3.98656824, 0.94783543, 0.97075015, 0.51831198],\
++[	-3.01005909, -0.01811161, 0.01081628, 3.99194748, 0.94832084, 0.97107211, 0.51746448],\
++[	-3.01516479, -0.01790446, 0.01070757, 3.99726033, 0.94879613, 0.97138796, 0.51661796],\
++[	-3.02021180, -0.01770162, 0.01060052, 4.00251017, 0.94926160, 0.97169786, 0.51577273],\
++[	-3.02520323, -0.01750298, 0.01049508, 4.00770025, 0.94971755, 0.97200194, 0.51492908],\
++[	-3.03014209, -0.01730842, 0.01039123, 4.01283367, 0.95016424, 0.97230035, 0.51408727],\
++[	-3.03503122, -0.01711783, 0.01028894, 4.01791339, 0.95060195, 0.97259323, 0.51324758],\
++[	-3.03987336, -0.01693111, 0.01018819, 4.02294225, 0.95103094, 0.97288070, 0.51241024],\
++[	-3.04467112, -0.01674816, 0.01008894, 4.02792295, 0.95145145, 0.97316290, 0.51157550],\
++[	-3.04942699, -0.01656889, 0.00999117, 4.03285810, 0.95186373, 0.97343995, 0.51074358],\
++[	-3.05414335, -0.01639319, 0.00989485, 4.03775017, 0.95226799, 0.97371196, 0.50991471],\
++[	-3.05882250, -0.01622097, 0.00979997, 4.04260153, 0.95266447, 0.97397906, 0.50908908],\
++[	-3.06346660, -0.01605215, 0.00970649, 4.04741445, 0.95305338, 0.97424136, 0.50826689],\
++[	-3.06807773, -0.01588664, 0.00961439, 4.05219109, 0.95343492, 0.97449897, 0.50744832],\
++[	-3.07265789, -0.01572436, 0.00952364, 4.05693353, 0.95380929, 0.97475200, 0.50663356],\
++[	-3.07720897, -0.01556522, 0.00943423, 4.06164375, 0.95417670, 0.97500055, 0.50582277],\
++[	-3.08173279, -0.01540916, 0.00934613, 4.06632364, 0.95453731, 0.97524472, 0.50501611],\
++[	-3.08623109, -0.01525608, 0.00925931, 4.07097501, 0.95489131, 0.97548461, 0.50421372],\
++[	-3.09070551, -0.01510592, 0.00917376, 4.07559959, 0.95523888, 0.97572032, 0.50341576],\
++[	-3.09515765, -0.01495861, 0.00908946, 4.08019904, 0.95558018, 0.97595193, 0.50262236],\
++[	-3.09958899, -0.01481408, 0.00900637, 4.08477492, 0.95591537, 0.97617955, 0.50183364],\
++[	-3.10400100, -0.01467225, 0.00892449, 4.08932875, 0.95624461, 0.97640325, 0.50104973],\
++[	-3.10839504, -0.01453308, 0.00884379, 4.09386196, 0.95656806, 0.97662313, 0.50027073],\
++[	-3.11277241, -0.01439648, 0.00876425, 4.09837593, 0.95688585, 0.97683927, 0.49949676],\
++[	-3.11713438, -0.01426240, 0.00868586, 4.10287198, 0.95719812, 0.97705174, 0.49872791],\
++[	-3.12148213, -0.01413079, 0.00860858, 4.10735134, 0.95750503, 0.97726063, 0.49796429],\
++[	-3.12581680, -0.01400157, 0.00853241, 4.11181522, 0.95780669, 0.97746601, 0.49720597],\
++[	-3.13013947, -0.01387471, 0.00845733, 4.11626476, 0.95810324, 0.97766796, 0.49645304],\
++[	-3.13445117, -0.01375013, 0.00838331, 4.12070104, 0.95839480, 0.97786656, 0.49570558],\
++[	-3.13875289, -0.01362779, 0.00831034, 4.12512510, 0.95868150, 0.97806186, 0.49496366],\
++[	-3.14304556, -0.01350764, 0.00823841, 4.12953792, 0.95896344, 0.97825395, 0.49422734],\
++[	-3.14733008, -0.01338963, 0.00816748, 4.13394045, 0.95924075, 0.97844289, 0.49349669],\
++[	-3.15160728, -0.01327370, 0.00809756, 4.13833358, 0.95951352, 0.97862874, 0.49277177],\
++[	-3.15587797, -0.01315981, 0.00802862, 4.14271816, 0.95978188, 0.97881157, 0.49205262],\
++[	-3.16014293, -0.01304792, 0.00796064, 4.14709501, 0.96004592, 0.97899144, 0.49133930],\
++[	-3.16440288, -0.01293797, 0.00789361, 4.15146491, 0.96030574, 0.97916842, 0.49063185],\
++[	-3.16865852, -0.01282993, 0.00782751, 4.15582858, 0.96056144, 0.97934256, 0.48993030],\
++[	-3.17291049, -0.01272375, 0.00776233, 4.16018673, 0.96081312, 0.97951392, 0.48923471],\
++[	-3.17715942, -0.01261940, 0.00769805, 4.16454003, 0.96106086, 0.97968255, 0.48854509],\
++[	-3.18140591, -0.01251682, 0.00763466, 4.16888910, 0.96130476, 0.97984852, 0.48786148],\
++[	-3.18565052, -0.01241598, 0.00757215, 4.17323454, 0.96154490, 0.98001187, 0.48718390],\
++[	-3.18989378, -0.01231685, 0.00751049, 4.17757693, 0.96178137, 0.98017266, 0.48651237],\
++[	-3.19413619, -0.01221938, 0.00744968, 4.18191681, 0.96201424, 0.98033094, 0.48584692],\
++[	-3.19837823, -0.01212354, 0.00738970, 4.18625469, 0.96224360, 0.98048676, 0.48518756],\
++[	-3.20262035, -0.01202930, 0.00733053, 4.19059105, 0.96246952, 0.98064017, 0.48453431],\
++[	-3.20686298, -0.01193661, 0.00727217, 4.19492637, 0.96269208, 0.98079121, 0.48388717],\
++[	-3.21110653, -0.01184546, 0.00721461, 4.19926107, 0.96291135, 0.98093994, 0.48324615],\
++[	-3.21535137, -0.01175579, 0.00715782, 4.20359557, 0.96312741, 0.98108639, 0.48261126],\
++[	-3.21959786, -0.01166759, 0.00710179, 4.20793027, 0.96334031, 0.98123062, 0.48198250],\
++[	-3.22384634, -0.01158082, 0.00704652, 4.21226552, 0.96355014, 0.98137266, 0.48135988],\
++[	-3.22809714, -0.01149545, 0.00699199, 4.21660169, 0.96375694, 0.98151256, 0.48074338],\
++[	-3.23235055, -0.01141146, 0.00693819, 4.22093909, 0.96396080, 0.98165035, 0.48013301],\
++[	-3.23660685, -0.01132880, 0.00688511, 4.22527805, 0.96416176, 0.98178609, 0.47952876],\
++[	-3.24086631, -0.01124746, 0.00683273, 4.22961885, 0.96435989, 0.98191980, 0.47893063],\
++[	-3.24512918, -0.01116741, 0.00678105, 4.23396177, 0.96455525, 0.98205153, 0.47833860],\
++[	-3.24939569, -0.01108862, 0.00673005, 4.23830707, 0.96474789, 0.98218132, 0.47775267],\
++[	-3.25366606, -0.01101107, 0.00667973, 4.24265499, 0.96493787, 0.98230920, 0.47717282],\
++[	-3.25794050, -0.01093473, 0.00663007, 4.24700577, 0.96512525, 0.98243520, 0.47659903],\
++[	-3.26221918, -0.01085957, 0.00658106, 4.25135961, 0.96531007, 0.98255937, 0.47603130],\
++[	-3.26650230, -0.01078557, 0.00653269, 4.25571672, 0.96549239, 0.98268174, 0.47546960],\
++[	-3.27079000, -0.01071272, 0.00648495, 4.26007729, 0.96567225, 0.98280233, 0.47491391],\
++[	-3.27508246, -0.01064097, 0.00643784, 4.26444149, 0.96584971, 0.98292119, 0.47436422],\
++[	-3.27937980, -0.01057032, 0.00639134, 4.26880948, 0.96602482, 0.98303834, 0.47382051],\
++[	-3.28368216, -0.01050074, 0.00634544, 4.27318141, 0.96619761, 0.98315382, 0.47328275],\
++[	-3.28798965, -0.01043222, 0.00630013, 4.27755743, 0.96636814, 0.98326765, 0.47275091],\
++[	-3.29230239, -0.01036472, 0.00625541, 4.28193767, 0.96653645, 0.98337988, 0.47222499],\
++[	-3.29662047, -0.01029823, 0.00621126, 4.28632224, 0.96670258, 0.98349051, 0.47170494],\
++[	-3.30094399, -0.01023273, 0.00616768, 4.29071126, 0.96686657, 0.98359960, 0.47119074],\
++[	-3.30527303, -0.01016819, 0.00612465, 4.29510483, 0.96702847, 0.98370715, 0.47068237],\
++[	-3.30960766, -0.01010461, 0.00608218, 4.29950304, 0.96718831, 0.98381321, 0.47017979],\
++[	-3.31394795, -0.01004197, 0.00604024, 4.30390598, 0.96734614, 0.98391779, 0.46968299],\
++[	-3.31829395, -0.00998024, 0.00599883, 4.30831372, 0.96750198, 0.98402093, 0.46919192],\
++[	-3.32264573, -0.00991940, 0.00595795, 4.31272633, 0.96765588, 0.98412265, 0.46870656],\
++[	-3.32700331, -0.00985945, 0.00591759, 4.31714387, 0.96780788, 0.98422297, 0.46822687],\
++[	-3.33136675, -0.00980035, 0.00587773, 4.32156640, 0.96795801, 0.98432191, 0.46775284],\
++[	-3.33573607, -0.00974211, 0.00583838, 4.32599396, 0.96810630, 0.98441951, 0.46728441],\
++[	-3.34011130, -0.00968470, 0.00579951, 4.33042660, 0.96825278, 0.98451579, 0.46682157],\
++[	-3.34449246, -0.00962810, 0.00576113, 4.33486436, 0.96839750, 0.98461077, 0.46636427],\
++[	-3.34887956, -0.00957230, 0.00572323, 4.33930726, 0.96854048, 0.98470447, 0.46591248],\
++[	-3.35327261, -0.00951729, 0.00568581, 4.34375533, 0.96868175, 0.98479691, 0.46546617],\
++[	-3.35767163, -0.00946304, 0.00564884, 4.34820858, 0.96882135, 0.98488812, 0.46502531],\
++[	-3.36207660, -0.00940956, 0.00561233, 4.35266704, 0.96895930, 0.98497811, 0.46458986],\
++[	-3.36648753, -0.00935681, 0.00557627, 4.35713071, 0.96909563, 0.98506691, 0.46415977],\
++[	-3.37090440, -0.00930480, 0.00554066, 4.36159960, 0.96923037, 0.98515454, 0.46373503],\
++[	-3.37532721, -0.00925350, 0.00550548, 4.36607371, 0.96936355, 0.98524102, 0.46331559],\
++[	-3.37975593, -0.00920290, 0.00547073, 4.37055303, 0.96949520, 0.98532636, 0.46290141],\
++[	-3.38419056, -0.00915300, 0.00543641, 4.37503756, 0.96962535, 0.98541059, 0.46249246],\
++[	-3.38863105, -0.00910377, 0.00540251, 4.37952729, 0.96975401, 0.98549373, 0.46208870],\
++[	-3.39307740, -0.00905520, 0.00536901, 4.38402220, 0.96988122, 0.98557578, 0.46169009],\
++[	-3.39752956, -0.00900729, 0.00533593, 4.38852227, 0.97000699, 0.98565678, 0.46129660],\
++[	-3.40198751, -0.00896002, 0.00530324, 4.39302749, 0.97013137, 0.98573674, 0.46090819],\
++[	-3.40645121, -0.00891338, 0.00527095, 4.39753783, 0.97025435, 0.98581567, 0.46052482],\
++[	-3.41092063, -0.00886736, 0.00523904, 4.40205326, 0.97037598, 0.98589360, 0.46014645],\
++[	-3.41539571, -0.00882195, 0.00520752, 4.40657376, 0.97049628, 0.98597053, 0.45977305],\
++[	-3.41987643, -0.00877713, 0.00517637, 4.41109929, 0.97061526, 0.98604649, 0.45940458],\
++[	-3.42436272, -0.00873290, 0.00514560, 4.41562982, 0.97073295, 0.98612149, 0.45904100],\
++[	-3.42885456, -0.00868925, 0.00511520, 4.42016531, 0.97084936, 0.98619555, 0.45868227],\
++[	-3.43335188, -0.00864617, 0.00508515, 4.42470571, 0.97096453, 0.98626868, 0.45832835],\
++[	-3.43785464, -0.00860364, 0.00505546, 4.42925100, 0.97107847, 0.98634090, 0.45797921],\
++[	-3.44236278, -0.00856166, 0.00502613, 4.43380112, 0.97119120, 0.98641222, 0.45763480],\
++[	-3.44687625, -0.00852021, 0.00499714, 4.43835604, 0.97130274, 0.98648265, 0.45729509],\
++[	-3.45139500, -0.00847930, 0.00496849, 4.44291570, 0.97141311, 0.98655221, 0.45696005],\
++[	-3.45591895, -0.00843890, 0.00494017, 4.44748005, 0.97152233, 0.98662092, 0.45662962],\
++[	-3.46044807, -0.00839902, 0.00491219, 4.45204905, 0.97163042, 0.98668879, 0.45630378],\
++[	-3.46498227, -0.00835964, 0.00488454, 4.45662264, 0.97173739, 0.98675583, 0.45598249],\
++[	-3.46952151, -0.00832075, 0.00485721, 4.46120077, 0.97184326, 0.98682205, 0.45566570],\
++[	-3.47406572, -0.00828234, 0.00483019, 4.46578338, 0.97194805, 0.98688746, 0.45535338],\
++[	-3.47861484, -0.00824442, 0.00480349, 4.47037042, 0.97205179, 0.98695209, 0.45504550],\
++[	-3.48316880, -0.00820696, 0.00477710, 4.47496184, 0.97215447, 0.98701594, 0.45474201],\
++[	-3.48772753, -0.00816996, 0.00475102, 4.47955756, 0.97225612, 0.98707902, 0.45444287],\
++[	-3.49229097, -0.00813342, 0.00472523, 4.48415755, 0.97235676, 0.98714134, 0.45414806],\
++[	-3.49685904, -0.00809733, 0.00469975, 4.48876172, 0.97245640, 0.98720293, 0.45385753],\
++[	-3.50143169, -0.00806167, 0.00467455, 4.49337002, 0.97255506, 0.98726378, 0.45357123],\
++[	-3.50600884, -0.00802644, 0.00464964, 4.49798240, 0.97265275, 0.98732391, 0.45328915],\
++[	-3.51059042, -0.00799164, 0.00462502, 4.50259878, 0.97274949, 0.98738333, 0.45301123],\
++[	-3.51517637, -0.00795726, 0.00460068, 4.50721911, 0.97284528, 0.98744206, 0.45273745],\
++[	-3.51976660, -0.00792329, 0.00457662, 4.51184331, 0.97294015, 0.98750009, 0.45246776],\
++[	-3.52436105, -0.00788972, 0.00455283, 4.51647133, 0.97303411, 0.98755745, 0.45220214],\
++[	-3.52895964, -0.00785655, 0.00452930, 4.52110309, 0.97312718, 0.98761414, 0.45194053],\
++[	-3.53356231, -0.00782377, 0.00450605, 4.52573854, 0.97321936, 0.98767018, 0.45168291],\
++[	-3.53816898, -0.00779138, 0.00448306, 4.53037760, 0.97331067, 0.98772556, 0.45142923],\
++[	-3.54277957, -0.00775937, 0.00446032, 4.53502021, 0.97340111, 0.98778031, 0.45117947],\
++[	-3.54739402, -0.00772773, 0.00443784, 4.53966629, 0.97349072, 0.98783443, 0.45093359],\
++[	-3.55201224, -0.00769645, 0.00441562, 4.54431579, 0.97357949, 0.98788793, 0.45069155],\
++[	-3.55663417, -0.00766554, 0.00439364, 4.54896864, 0.97366744, 0.98794082, 0.45045331],\
++[	-3.56125973, -0.00763498, 0.00437190, 4.55362475, 0.97375458, 0.98799311, 0.45021885],\
++[	-3.56588885, -0.00760478, 0.00435041, 4.55828407, 0.97384092, 0.98804481, 0.44998812],\
++[	-3.57052145, -0.00757491, 0.00432916, 4.56294653, 0.97392648, 0.98809593, 0.44976109],\
++[	-3.57515745, -0.00754539, 0.00430814, 4.56761206, 0.97401126, 0.98814646, 0.44953772],\
++[	-3.57979678, -0.00751620, 0.00428736, 4.57228058, 0.97409528, 0.98819644, 0.44931799],\
++[	-3.58443937, -0.00748734, 0.00426681, 4.57695203, 0.97417854, 0.98824585, 0.44910185],\
++[	-3.58908514, -0.00745880, 0.00424648, 4.58162633, 0.97426107, 0.98829472, 0.44888928],\
++[	-3.59373401, -0.00743059, 0.00422637, 4.58630343, 0.97434286, 0.98834304, 0.44868023],\
++[	-3.59838592, -0.00740268, 0.00420649, 4.59098323, 0.97442393, 0.98839083, 0.44847468],\
++[	-3.60304078, -0.00737509, 0.00418682, 4.59566569, 0.97450428, 0.98843809, 0.44827259],\
++[	-3.60769852, -0.00734780, 0.00416737, 4.60035072, 0.97458394, 0.98848483, 0.44807392],\
++[	-3.61235907, -0.00732081, 0.00414813, 4.60503826, 0.97466290, 0.98853106, 0.44787865],\
++[	-3.61702235, -0.00729411, 0.00412910, 4.60972823, 0.97474118, 0.98857678, 0.44768674],\
++[	-3.62168828, -0.00726771, 0.00411028, 4.61442057, 0.97481879, 0.98862201, 0.44749816],\
++[	-3.62635680, -0.00724159, 0.00409166, 4.61911521, 0.97489573, 0.98866675, 0.44731288],\
++[	-3.63102782, -0.00721575, 0.00407325, 4.62381207, 0.97497202, 0.98871100, 0.44713086],\
++[	-3.63570128, -0.00719020, 0.00405503, 4.62851108, 0.97504766, 0.98875478, 0.44695207],\
++[	-3.64037709, -0.00716491, 0.00403700, 4.63321218, 0.97512267, 0.98879808, 0.44677649],\
++[	-3.64505519, -0.00713990, 0.00401918, 4.63791530, 0.97519704, 0.98884093, 0.44660407],\
++[	-3.64973550, -0.00711515, 0.00400154, 4.64262036, 0.97527080, 0.98888331, 0.44643478],\
++[	-3.65441795, -0.00709066, 0.00398409, 4.64732729, 0.97534394, 0.98892525, 0.44626861],\
++[	-3.65910247, -0.00706643, 0.00396683, 4.65203604, 0.97541648, 0.98896674, 0.44610551],\
++[	-3.66378898, -0.00704246, 0.00394975, 4.65674652, 0.97548842, 0.98900779, 0.44594545],\
++[	-3.66847740, -0.00701873, 0.00393286, 4.66145867, 0.97555978, 0.98904841, 0.44578841],\
++[	-3.67316767, -0.00699526, 0.00391614, 4.66617242, 0.97563055, 0.98908860, 0.44563435],\
++[	-3.67785972, -0.00697202, 0.00389960, 4.67088770, 0.97570076, 0.98912838, 0.44548324],\
++[	-3.68255347, -0.00694903, 0.00388324, 4.67560444, 0.97577039, 0.98916773, 0.44533506],\
++[	-3.68724885, -0.00692627, 0.00386705, 4.68032258, 0.97583947, 0.98920668, 0.44518977],\
++[	-3.69194579, -0.00690374, 0.00385103, 4.68504204, 0.97590800, 0.98924523, 0.44504735],\
++[	-3.69664421, -0.00688145, 0.00383518, 4.68976277, 0.97597598, 0.98928338, 0.44490776],\
++[	-3.70134406, -0.00685938, 0.00381949, 4.69448468, 0.97604342, 0.98932113, 0.44477099],\
++[	-3.70604525, -0.00683753, 0.00380397, 4.69920772, 0.97611034, 0.98935850, 0.44463698],\
++[	-3.71074772, -0.00681590, 0.00378861, 4.70393182, 0.97617673, 0.98939548, 0.44450573],\
++[	-3.71545140, -0.00679449, 0.00377342, 4.70865691, 0.97624261, 0.98943209, 0.44437720],\
++[	-3.72015622, -0.00677330, 0.00375838, 4.71338292, 0.97630797, 0.98946833, 0.44425137],\
++[	-3.72486211, -0.00675231, 0.00374349, 4.71810980, 0.97637283, 0.98950420, 0.44412820],\
++[	-3.72956899, -0.00673153, 0.00372877, 4.72283746, 0.97643720, 0.98953970, 0.44400767],\
++[	-3.73427682, -0.00671096, 0.00371419, 4.72756585, 0.97650107, 0.98957485, 0.44388975],\
++[	-3.73898550, -0.00669059, 0.00369976, 4.73229491, 0.97656446, 0.98960965, 0.44377441],\
++[	-3.74369498, -0.00667042, 0.00368549, 4.73702457, 0.97662737, 0.98964409, 0.44366163],\
++[	-3.74840519, -0.00665044, 0.00367136, 4.74175475, 0.97668980, 0.98967820, 0.44355139],\
++[	-3.75311607, -0.00663066, 0.00365738, 4.74648541, 0.97675177, 0.98971196, 0.44344364],\
++[	-3.75782754, -0.00661107, 0.00364354, 4.75121648, 0.97681327, 0.98974540, 0.44333838],\
++[	-3.76253955, -0.00659167, 0.00362984, 4.75594788, 0.97687432, 0.98977850, 0.44323557],\
++[	-3.76725202, -0.00657245, 0.00361628, 4.76067957, 0.97693492, 0.98981127, 0.44313518],\
++[	-3.77196489, -0.00655341, 0.00360286, 4.76541147, 0.97699508, 0.98984372, 0.44303720],\
++[	-3.77667809, -0.00653456, 0.00358958, 4.77014353, 0.97705479, 0.98987586, 0.44294159],\
++[	-3.78139156, -0.00651589, 0.00357643, 4.77487568, 0.97711407, 0.98990768, 0.44284833],\
++[	-3.78610525, -0.00649739, 0.00356342, 4.77960786, 0.97717292, 0.98993920, 0.44275740],\
++[	-3.79081907, -0.00647906, 0.00355053, 4.78434001, 0.97723134, 0.98997040, 0.44266877],\
++[	-3.79553298, -0.00646091, 0.00353778, 4.78907207, 0.97728935, 0.99000131, 0.44258241],\
++[	-3.80024690, -0.00644292, 0.00352516, 4.79380398, 0.97734694, 0.99003192, 0.44249831],\
++[	-3.80496078, -0.00642510, 0.00351266, 4.79853567, 0.97740413, 0.99006223, 0.44241644],\
++[	-3.80967455, -0.00640745, 0.00350029, 4.80326710, 0.97746090, 0.99009226, 0.44233677],\
++[	-3.81438815, -0.00638996, 0.00348804, 4.80799819, 0.97751728, 0.99012200, 0.44225928],\
++[	-3.81910152, -0.00637262, 0.00347592, 4.81272889, 0.97757326, 0.99015145, 0.44218395],\
++[	-3.82381460, -0.00635545, 0.00346392, 4.81745915, 0.97762886, 0.99018063, 0.44211076],\
++[	-3.82852732, -0.00633843, 0.00345204, 4.82218889, 0.97768406, 0.99020953, 0.44203968],\
++[	-3.83323964, -0.00632157, 0.00344027, 4.82691808, 0.97773889, 0.99023816, 0.44197068],\
++[	-3.83795149, -0.00630485, 0.00342863, 4.83164664, 0.97779333, 0.99026652, 0.44190376],\
++[	-3.84266280, -0.00628829, 0.00341709, 4.83637452, 0.97784741, 0.99029462, 0.44183887],\
++[	-3.84737353, -0.00627187, 0.00340568, 4.84110166, 0.97790111, 0.99032245, 0.44177601],\
++[	-3.85208361, -0.00625560, 0.00339437, 4.84582801, 0.97795446, 0.99035003, 0.44171515],\
++[	-3.85679299, -0.00623948, 0.00338318, 4.85055351, 0.97800744, 0.99037735, 0.44165627],\
++[	-3.86150160, -0.00622349, 0.00337210, 4.85527811, 0.97806006, 0.99040441, 0.44159934],\
++[	-3.86620939, -0.00620765, 0.00336112, 4.86000175, 0.97811233, 0.99043123, 0.44154435],\
++[	-3.87091631, -0.00619194, 0.00335026, 4.86472437, 0.97816426, 0.99045780, 0.44149127],\
++[	-3.87562229, -0.00617637, 0.00333950, 4.86944592, 0.97821584, 0.99048413, 0.44144009],\
++[	-3.88032729, -0.00616094, 0.00332885, 4.87416635, 0.97826708, 0.99051022, 0.44139078],\
++[	-3.88503124, -0.00614564, 0.00331830, 4.87888561, 0.97831798, 0.99053607, 0.44134332],\
++[	-3.88973410, -0.00613047, 0.00330785, 4.88360363, 0.97836855, 0.99056168, 0.44129769],\
++[	-3.89443580, -0.00611543, 0.00329750, 4.88832037, 0.97841879, 0.99058707, 0.44125387],\
++[	-3.89913629, -0.00610051, 0.00328726, 4.89303577, 0.97846870, 0.99061223, 0.44121185],\
++[	-3.90383552, -0.00608573, 0.00327711, 4.89774979, 0.97851829, 0.99063716, 0.44117159],\
++[	-3.90853343, -0.00607107, 0.00326707, 4.90246236, 0.97856756, 0.99066187, 0.44113309],\
++[	-3.91322998, -0.00605653, 0.00325712, 4.90717345, 0.97861652, 0.99068635, 0.44109632],\
++[	-3.91792511, -0.00604212, 0.00324726, 4.91188299, 0.97866516, 0.99071062, 0.44106126],\
++[	-3.92261876, -0.00602782, 0.00323750, 4.91659094, 0.97871350, 0.99073468, 0.44102790],\
++[	-3.92731089, -0.00601364, 0.00322784, 4.92129724, 0.97876153, 0.99075852, 0.44099621],\
++[	-3.93200144, -0.00599958, 0.00321826, 4.92600186, 0.97880926, 0.99078215, 0.44096618],\
++[	-3.93669036, -0.00598564, 0.00320878, 4.93070472, 0.97885669, 0.99080558, 0.44093779],\
++[	-3.94137761, -0.00597181, 0.00319939, 4.93540580, 0.97890383, 0.99082880, 0.44091101],\
++[	-3.94606313, -0.00595809, 0.00319009, 4.94010504, 0.97895067, 0.99085182, 0.44088584],\
++[	-3.95074687, -0.00594449, 0.00318088, 4.94480238, 0.97899722, 0.99087463, 0.44086225],\
++[	-3.95542878, -0.00593099, 0.00317175, 4.94949779, 0.97904349, 0.99089725, 0.44084022],\
++[	-3.96010882, -0.00591761, 0.00316271, 4.95419121, 0.97908947, 0.99091968, 0.44081975],\
++[	-3.96478693, -0.00590433, 0.00315376, 4.95888260, 0.97913517, 0.99094191, 0.44080080],\
++[	-3.96946306, -0.00589116, 0.00314489, 4.96357191, 0.97918060, 0.99096395, 0.44078336],\
++[	-3.97413718, -0.00587809, 0.00313611, 4.96825909, 0.97922575, 0.99098581, 0.44076742],\
++[	-3.97880922, -0.00586512, 0.00312740, 4.97294410, 0.97927063, 0.99100747, 0.44075296],\
++[	-3.98347915, -0.00585226, 0.00311878, 4.97762689, 0.97931524, 0.99102895, 0.44073996],\
++[	-3.98814692, -0.00583950, 0.00311024, 4.98230742, 0.97935959, 0.99105026, 0.44072841],\
++[	-3.99281247, -0.00582684, 0.00310178, 4.98698564, 0.97940367, 0.99107138, 0.44071828],\
++[	-3.99747577, -0.00581428, 0.00309340, 4.99166150, 0.97944749, 0.99109232, 0.44070956],\
++[	-4.00213677, -0.00580181, 0.00308510, 4.99633496, 0.97949105, 0.99111309, 0.44070224],\
++[	-4.00679542, -0.00578944, 0.00307688, 5.00100598, 0.97953436, 0.99113368, 0.44069630],\
++[	-4.01145168, -0.00577717, 0.00306873, 5.00567451, 0.97957741, 0.99115410, 0.44069173],\
++[	-4.01610551, -0.00576499, 0.00306065, 5.01034052, 0.97962021, 0.99117436, 0.44068850],\
++[	-4.02075685, -0.00575290, 0.00305266, 5.01500395, 0.97966277, 0.99119444, 0.44068660],\
++[	-4.02540567, -0.00574091, 0.00304473, 5.01966476, 0.97970508, 0.99121436, 0.44068602],\
++[	-4.03005191, -0.00572900, 0.00303688, 5.02432291, 0.97974715, 0.99123412, 0.44068674],\
++[	-4.03469555, -0.00571719, 0.00302910, 5.02897837, 0.97978897, 0.99125371, 0.44068875],\
++[	-4.03933654, -0.00570546, 0.00302139, 5.03363108, 0.97983056, 0.99127315, 0.44069203],\
++[	-4.04397482, -0.00569382, 0.00301375, 5.03828100, 0.97987192, 0.99129242, 0.44069657],\
++[	-4.04861037, -0.00568227, 0.00300619, 5.04292810, 0.97991304, 0.99131154, 0.44070234],\
++[	-4.05324314, -0.00567080, 0.00299869, 5.04757234, 0.97995393, 0.99133051, 0.44070935],\
++[	-4.05787308, -0.00565942, 0.00299126, 5.05221367, 0.97999459, 0.99134932, 0.44071756],\
++[	-4.06250017, -0.00564812, 0.00298390, 5.05685205, 0.98003502, 0.99136799, 0.44072698],\
++[	-4.06712435, -0.00563690, 0.00297660, 5.06148744, 0.98007523, 0.99138650, 0.44073757],\
++[	-4.07174558, -0.00562577, 0.00296937, 5.06611981, 0.98011522, 0.99140486, 0.44074934],\
++[	-4.07636383, -0.00561471, 0.00296221, 5.07074912, 0.98015498, 0.99142308, 0.44076227],\
++[	-4.08097906, -0.00560374, 0.00295511, 5.07537532, 0.98019453, 0.99144116, 0.44077633],\
++[	-4.08559122, -0.00559284, 0.00294807, 5.07999838, 0.98023386, 0.99145909, 0.44079153],\
++[	-4.09020028, -0.00558202, 0.00294110, 5.08461826, 0.98027298, 0.99147688, 0.44080784],\
++[	-4.09480620, -0.00557128, 0.00293419, 5.08923492, 0.98031189, 0.99149453, 0.44082525],\
++[	-4.09940894, -0.00556061, 0.00292734, 5.09384833, 0.98035059, 0.99151204, 0.44084375],\
++[	-4.10400846, -0.00555002, 0.00292056, 5.09845844, 0.98038908, 0.99152942, 0.44086333],\
++[	-4.10860473, -0.00553950, 0.00291383, 5.10306522, 0.98042736, 0.99154666, 0.44088396],\
++[	-4.11319770, -0.00552906, 0.00290717, 5.10766864, 0.98046544, 0.99156377, 0.44090565],\
++[	-4.11778734, -0.00551869, 0.00290056, 5.11226865, 0.98050332, 0.99158075, 0.44092838],\
++[	-4.12237362, -0.00550839, 0.00289401, 5.11686523, 0.98054100, 0.99159760, 0.44095213],\
++[	-4.12695649, -0.00549816, 0.00288752, 5.12145833, 0.98057848, 0.99161431, 0.44097689],\
++[	-4.13153592, -0.00548801, 0.00288109, 5.12604792, 0.98061577, 0.99163090, 0.44100265],\
++[	-4.13611188, -0.00547792, 0.00287471, 5.13063396, 0.98065286, 0.99164737, 0.44102940],\
++[	-4.14068433, -0.00546790, 0.00286839, 5.13521643, 0.98068975, 0.99166371, 0.44105712],\
++[	-4.14525323, -0.00545795, 0.00286213, 5.13979528, 0.98072646, 0.99167992, 0.44108581],\
++[	-4.14981854, -0.00544806, 0.00285592, 5.14437048, 0.98076298, 0.99169602, 0.44111544],\
++[	-4.15438025, -0.00543824, 0.00284976, 5.14894200, 0.98079931, 0.99171199, 0.44114602],\
++[	-4.15893830, -0.00542849, 0.00284366, 5.15350981, 0.98083545, 0.99172785, 0.44117753],\
++[	-4.16349267, -0.00541880, 0.00283761, 5.15807386, 0.98087141, 0.99174358, 0.44120995],\
++[	-4.16804332, -0.00540918, 0.00283162, 5.16263414, 0.98090719, 0.99175920, 0.44124328],\
++[	-4.17259021, -0.00539962, 0.00282567, 5.16719060, 0.98094278, 0.99177471, 0.44127750],\
++[	-4.17713333, -0.00539012, 0.00281978, 5.17174321, 0.98097820, 0.99179010, 0.44131260],\
++[	-4.18167262, -0.00538069, 0.00281394, 5.17629194, 0.98101344, 0.99180537, 0.44134857],\
++[	-4.18620807, -0.00537131, 0.00280815, 5.18083676, 0.98104851, 0.99182054, 0.44138541],\
++[	-4.19073963, -0.00536200, 0.00280241, 5.18537763, 0.98108340, 0.99183560, 0.44142309],\
++[	-4.19526728, -0.00535274, 0.00279671, 5.18991453, 0.98111811, 0.99185054, 0.44146162],\
++[	-4.19979098, -0.00534355, 0.00279107, 5.19444743, 0.98115266, 0.99186538, 0.44150097],\
++[	-4.20431070, -0.00533441, 0.00278548, 5.19897629, 0.98118704, 0.99188011, 0.44154114],\
++[	-4.20882641, -0.00532534, 0.00277993, 5.20350108, 0.98122125, 0.99189474, 0.44158211],\
++[	-4.21333809, -0.00531632, 0.00277443, 5.20802177, 0.98125529, 0.99190926, 0.44162389],\
++[	-4.21784569, -0.00530735, 0.00276897, 5.21253834, 0.98128916, 0.99192367, 0.44166645],\
++[	-4.22234919, -0.00529845, 0.00276357, 5.21705075, 0.98132288, 0.99193799, 0.44170979],\
++[	-4.22684856, -0.00528959, 0.00275820, 5.22155897, 0.98135643, 0.99195220, 0.44175389],\
++[	-4.23134377, -0.00528080, 0.00275289, 5.22606297, 0.98138982, 0.99196631, 0.44179875],\
++[	-4.23583479, -0.00527206, 0.00274762, 5.23056273, 0.98142305, 0.99198033, 0.44184436],\
++[	-4.24032159, -0.00526337, 0.00274239, 5.23505822, 0.98145612, 0.99199424, 0.44189070],\
++[	-4.24480413, -0.00525473, 0.00273720, 5.23954940, 0.98148904, 0.99200806, 0.44193777],\
++[	-4.24928241, -0.00524615, 0.00273206, 5.24403626, 0.98152180, 0.99202179, 0.44198557],\
++[	-4.25375637, -0.00523762, 0.00272697, 5.24851875, 0.98155440, 0.99203541, 0.44203406],\
++[	-4.25822600, -0.00522914, 0.00272191, 5.25299686, 0.98158685, 0.99204895, 0.44208326],\
++[	-4.26269127, -0.00522071, 0.00271690, 5.25747055, 0.98161916, 0.99206239, 0.44213315],\
++[	-4.26715214, -0.00521233, 0.00271193, 5.26193981, 0.98165131, 0.99207574, 0.44218372],\
++[	-4.27160860, -0.00520401, 0.00270700, 5.26640459, 0.98168331, 0.99208900, 0.44223496],\
++[	-4.27606061, -0.00519573, 0.00270211, 5.27086489, 0.98171516, 0.99210217, 0.44228686],\
++[	-4.28050816, -0.00518750, 0.00269726, 5.27532066, 0.98174687, 0.99211524, 0.44233942],\
++[	-4.28495120, -0.00517932, 0.00269245, 5.27977188, 0.98177844, 0.99212824, 0.44239262],\
++[	-4.28938971, -0.00517119, 0.00268767, 5.28421853, 0.98180986, 0.99214114, 0.44244646],\
++[	-4.29382368, -0.00516310, 0.00268294, 5.28866058, 0.98184113, 0.99215396, 0.44250093],\
++[	-4.29825306, -0.00515506, 0.00267825, 5.29309800, 0.98187227, 0.99216669, 0.44255601],\
++[	-4.30267785, -0.00514707, 0.00267359, 5.29753078, 0.98190326, 0.99217934, 0.44261171],\
++[	-4.30709800, -0.00513912, 0.00266898, 5.30195888, 0.98193412, 0.99219190, 0.44266801],\
++[	-4.31151350, -0.00513122, 0.00266440, 5.30638227, 0.98196483, 0.99220438, 0.44272490],\
++[	-4.31592431, -0.00512337, 0.00265985, 5.31080095, 0.98199542, 0.99221678, 0.44278238],\
++[	-4.32033043, -0.00511555, 0.00265535, 5.31521487, 0.98202586, 0.99222910, 0.44284044],\
++[	-4.32473181, -0.00510779, 0.00265088, 5.31962403, 0.98205617, 0.99224134, 0.44289907],\
++[	-4.32912844, -0.00510006, 0.00264644, 5.32402838, 0.98208635, 0.99225350, 0.44295825],\
++[	-4.33352030, -0.00509238, 0.00264204, 5.32842792, 0.98211639, 0.99226558, 0.44301800],\
++[	-4.33790735, -0.00508474, 0.00263768, 5.33282261, 0.98214630, 0.99227758, 0.44307829],\
++[	-4.34228957, -0.00507715, 0.00263335, 5.33721243, 0.98217609, 0.99228950, 0.44313911],\
++[	-4.34666695, -0.00506959, 0.00262906, 5.34159736, 0.98220574, 0.99230135, 0.44320047],\
++[	-4.35103946, -0.00506208, 0.00262479, 5.34597738, 0.98223526, 0.99231313, 0.44326235],\
++[	-4.35540706, -0.00505461, 0.00262057, 5.35035246, 0.98226466, 0.99232483, 0.44332475],\
++[	-4.35976976, -0.00504718, 0.00261637, 5.35472258, 0.98229393, 0.99233645, 0.44338766],\
++[	-4.36412751, -0.00503978, 0.00261221, 5.35908772, 0.98232308, 0.99234800, 0.44345107],\
++[	-4.36848029, -0.00503243, 0.00260808, 5.36344786, 0.98235210, 0.99235949, 0.44351497],\
++[	-4.37282810, -0.00502512, 0.00260399, 5.36780298, 0.98238100, 0.99237089, 0.44357936],\
++[	-4.37717089, -0.00501785, 0.00259992, 5.37215304, 0.98240977, 0.99238223, 0.44364422],\
++[	-4.38150866, -0.00501061, 0.00259589, 5.37649804, 0.98243843, 0.99239350, 0.44370956],\
++[	-4.38584137, -0.00500341, 0.00259189, 5.38083796, 0.98246696, 0.99240470, 0.44377537],\
++[	-4.39016901, -0.00499626, 0.00258792, 5.38517276, 0.98249538, 0.99241583, 0.44384163],\
++[	-4.39449156, -0.00498913, 0.00258397, 5.38950243, 0.98252368, 0.99242689, 0.44390835],\
++[	-4.39880900, -0.00498205, 0.00258006, 5.39382695, 0.98255186, 0.99243789, 0.44397551],\
++[	-4.40312130, -0.00497500, 0.00257618, 5.39814630, 0.98257992, 0.99244881, 0.44404311],\
++[	-4.40742845, -0.00496799, 0.00257233, 5.40246046, 0.98260787, 0.99245968, 0.44411114],\
++[	-4.41173042, -0.00496101, 0.00256851, 5.40676940, 0.98263570, 0.99247047, 0.44417960],\
++[	-4.41602719, -0.00495407, 0.00256472, 5.41107312, 0.98266342, 0.99248121, 0.44424847],\
++[	-4.42031875, -0.00494717, 0.00256096, 5.41537158, 0.98269102, 0.99249187, 0.44431776],\
++[	-4.42460508, -0.00494030, 0.00255722, 5.41966478, 0.98271852, 0.99250248, 0.44438745],\
++[	-4.42888615, -0.00493346, 0.00255351, 5.42395268, 0.98274590, 0.99251302, 0.44445755],\
++[	-4.43316194, -0.00492666, 0.00254984, 5.42823528, 0.98277317, 0.99252350, 0.44452803],\
++[	-4.43743244, -0.00491989, 0.00254618, 5.43251255, 0.98280033, 0.99253392, 0.44459891],\
++[	-4.44169763, -0.00491316, 0.00254256, 5.43678447, 0.98282738, 0.99254428, 0.44467016],\
++[	-4.44595749, -0.00490646, 0.00253896, 5.44105103, 0.98285433, 0.99255458, 0.44474179],\
++[	-4.45021200, -0.00489979, 0.00253539, 5.44531221, 0.98288117, 0.99256482, 0.44481379],\
++[	-4.45446115, -0.00489316, 0.00253185, 5.44956799, 0.98290790, 0.99257500, 0.44488616],\
++[	-4.45870490, -0.00488655, 0.00252833, 5.45381835, 0.98293452, 0.99258512, 0.44495888],\
++[	-4.46294326, -0.00487998, 0.00252484, 5.45806327, 0.98296105, 0.99259518, 0.44503195],\
++[	-4.46717619, -0.00487344, 0.00252137, 5.46230275, 0.98298746, 0.99260519, 0.44510537],\
++[	-4.47140368, -0.00486693, 0.00251793, 5.46653675, 0.98301378, 0.99261514, 0.44517912],\
++[	-4.47562571, -0.00486046, 0.00251451, 5.47076526, 0.98303999, 0.99262503, 0.44525322],\
++[	-4.47984227, -0.00485401, 0.00251112, 5.47498827, 0.98306610, 0.99263487, 0.44532764],\
++[	-4.48405334, -0.00484759, 0.00250775, 5.47920575, 0.98309211, 0.99264465, 0.44540238],\
++[	-4.48825891, -0.00484121, 0.00250441, 5.48341770, 0.98311802, 0.99265438, 0.44547744],\
++[	-4.49245894, -0.00483485, 0.00250109, 5.48762409, 0.98314383, 0.99266406, 0.44555282],\
++[	-4.49665344, -0.00482852, 0.00249780, 5.49182492, 0.98316954, 0.99267368, 0.44562850],\
++[	-4.50084238, -0.00482223, 0.00249453, 5.49602015, 0.98319515, 0.99268325, 0.44570449],\
++[	-4.50502575, -0.00481596, 0.00249128, 5.50020979, 0.98322067, 0.99269277, 0.44578077],\
++[	-4.50920352, -0.00480972, 0.00248805, 5.50439380, 0.98324609, 0.99270223, 0.44585734],\
++[	-4.51337569, -0.00480350, 0.00248485, 5.50857219, 0.98327141, 0.99271164, 0.44593420],\
++[	-4.51754224, -0.00479732, 0.00248167, 5.51274492, 0.98329664, 0.99272101, 0.44601134],\
++[	-4.52170315, -0.00479117, 0.00247851, 5.51691199, 0.98332177, 0.99273032, 0.44608876],\
++[	-4.52585842, -0.00478504, 0.00247538, 5.52107338, 0.98334681, 0.99273958, 0.44616645],\
++[	-4.53000801, -0.00477894, 0.00247227, 5.52522907, 0.98337176, 0.99274880, 0.44624440],\
++[	-4.53415192, -0.00477286, 0.00246917, 5.52937906, 0.98339661, 0.99275796, 0.44632262],\
++[	-4.53829014, -0.00476682, 0.00246610, 5.53352332, 0.98342137, 0.99276708, 0.44640109],\
++[	-4.54242264, -0.00476080, 0.00246306, 5.53766184, 0.98344605, 0.99277615, 0.44647982],\
++[	-4.54654942, -0.00475480, 0.00246003, 5.54179461, 0.98347063, 0.99278517, 0.44655879],\
++[	-4.55067046, -0.00474884, 0.00245702, 5.54592162, 0.98349512, 0.99279414, 0.44663801],\
++[	-4.55478574, -0.00474290, 0.00245404, 5.55004285, 0.98351952, 0.99280307, 0.44671746],\
++[	-4.55889526, -0.00473698, 0.00245107, 5.55415828, 0.98354383, 0.99281195, 0.44679715],\
++[	-4.56299899, -0.00473109, 0.00244812, 5.55826790, 0.98356806, 0.99282079, 0.44687706],\
++[	-4.56709693, -0.00472522, 0.00244520, 5.56237170, 0.98359219, 0.99282958, 0.44695720],\
++[	-4.57118906, -0.00471938, 0.00244229, 5.56646967, 0.98361625, 0.99283832, 0.44703756],\
++[	-4.57527536, -0.00471357, 0.00243940, 5.57056179, 0.98364021, 0.99284703, 0.44711814],\
++[	-4.57935583, -0.00470778, 0.00243654, 5.57464806, 0.98366409, 0.99285569, 0.44719893],\
++[	-4.58343045, -0.00470201, 0.00243369, 5.57872844, 0.98368788, 0.99286430, 0.44727992],\
++[	-4.58749921, -0.00469627, 0.00243086, 5.58280295, 0.98371159, 0.99287287, 0.44736112],\
++[	-4.59156210, -0.00469055, 0.00242805, 5.58687155, 0.98373522, 0.99288140, 0.44744252],\
++[	-4.59561910, -0.00468485, 0.00242526, 5.59093424, 0.98375876, 0.99288989, 0.44752411],\
++[	-4.59967020, -0.00467918, 0.00242248, 5.59499102, 0.98378222, 0.99289833, 0.44760589],\
++[	-4.60371538, -0.00467353, 0.00241973, 5.59904185, 0.98380560, 0.99290674, 0.44768785],\
++[	-4.60775465, -0.00466791, 0.00241699, 5.60308674, 0.98382890, 0.99291510, 0.44777000],\
++[	-4.61178797, -0.00466230, 0.00241427, 5.60712567, 0.98385211, 0.99292343, 0.44785233],\
++[	-4.61581536, -0.00465672, 0.00241157, 5.61115863, 0.98387525, 0.99293171, 0.44793483],\
++[	-4.61983678, -0.00465116, 0.00240889, 5.61518561, 0.98389830, 0.99293995, 0.44801750],\
++[	-4.62385223, -0.00464563, 0.00240622, 5.61920660, 0.98392128, 0.99294815, 0.44810034],\
++[	-4.62786170, -0.00464011, 0.00240357, 5.62322158, 0.98394418, 0.99295632, 0.44818334],\
++[	-4.63186517, -0.00463462, 0.00240093, 5.62723055, 0.98396700, 0.99296444, 0.44826650],\
++[	-4.63586264, -0.00462915, 0.00239832, 5.63123349, 0.98398974, 0.99297253, 0.44834982],\
++[	-4.63985410, -0.00462370, 0.00239572, 5.63523040, 0.98401240, 0.99298058, 0.44843328],\
++[	-4.64383953, -0.00461827, 0.00239313, 5.63922126, 0.98403499, 0.99298859, 0.44851690],\
++[	-4.64781892, -0.00461286, 0.00239057, 5.64320606, 0.98405750, 0.99299657, 0.44860066],\
++[	-4.65179227, -0.00460748, 0.00238802, 5.64718479, 0.98407993, 0.99300451, 0.44868455],\
++[	-4.65575956, -0.00460211, 0.00238548, 5.65115744, 0.98410229, 0.99301241, 0.44876859],\
++[	-4.65972078, -0.00459677, 0.00238296, 5.65512401, 0.98412458, 0.99302027, 0.44885276],\
++[	-4.66367592, -0.00459144, 0.00238046, 5.65908448, 0.98414679, 0.99302810, 0.44893706],\
++[	-4.66762497, -0.00458614, 0.00237797, 5.66303884, 0.98416893, 0.99303590, 0.44902148],\
++[	-4.67156793, -0.00458085, 0.00237549, 5.66698708, 0.98419099, 0.99304366, 0.44910603],\
++[	-4.67550478, -0.00457558, 0.00237303, 5.67092920, 0.98421298, 0.99305138, 0.44919070],\
++[	-4.67943552, -0.00457034, 0.00237059, 5.67486518, 0.98423490, 0.99305907, 0.44927549],\
++[	-4.68336012, -0.00456511, 0.00236816, 5.67879501, 0.98425675, 0.99306673, 0.44936038],\
++[	-4.68727860, -0.00455990, 0.00236575, 5.68271869, 0.98427852, 0.99307435, 0.44944539],\
++[	-4.69119092, -0.00455472, 0.00236335, 5.68663621, 0.98430023, 0.99308194, 0.44953051],\
++[	-4.69509710, -0.00454955, 0.00236096, 5.69054755, 0.98432186, 0.99308949, 0.44961572],\
++[	-4.69899711, -0.00454440, 0.00235859, 5.69445271, 0.98434343, 0.99309701, 0.44970104],\
++[	-4.70289095, -0.00453926, 0.00235623, 5.69835168, 0.98436492, 0.99310450, 0.44978646],\
++[	-4.70677861, -0.00453415, 0.00235389, 5.70224446, 0.98438635, 0.99311196, 0.44987197],\
++[	-4.71066008, -0.00452905, 0.00235156, 5.70613103, 0.98440771, 0.99311939, 0.44995757],\
++[	-4.71453535, -0.00452398, 0.00234924, 5.71001138, 0.98442899, 0.99312678, 0.45004326],\
++[	-4.71840442, -0.00451892, 0.00234694, 5.71388551, 0.98445021, 0.99313414, 0.45012903],\
++[	-4.72226728, -0.00451387, 0.00234465, 5.71775341, 0.98447137, 0.99314147, 0.45021488],\
++[	-4.72612392, -0.00450885, 0.00234237, 5.72161507, 0.98449245, 0.99314877, 0.45030082],\
++[	-4.72997433, -0.00450384, 0.00234011, 5.72547048, 0.98451347, 0.99315604, 0.45038683],\
++[	-4.73381850, -0.00449885, 0.00233786, 5.72931964, 0.98453443, 0.99316328, 0.45047291],\
++[	-4.73765643, -0.00449388, 0.00233562, 5.73316254, 0.98455532, 0.99317049, 0.45055907],\
++[	-4.74148810, -0.00448893, 0.00233340, 5.73699917, 0.98457614, 0.99317767, 0.45064529],\
++[	-4.74531352, -0.00448399, 0.00233119, 5.74082953, 0.98459690, 0.99318483, 0.45073158],\
++[	-4.74913267, -0.00447907, 0.00232899, 5.74465360, 0.98461759, 0.99319195, 0.45081792],\
++[	-4.75294555, -0.00447416, 0.00232680, 5.74847138, 0.98463822, 0.99319904, 0.45090433],\
++[	-4.75675214, -0.00446927, 0.00232462, 5.75228287, 0.98465878, 0.99320610, 0.45099080],\
++[	-4.76055246, -0.00446440, 0.00232246, 5.75608805, 0.98467929, 0.99321314, 0.45107732],\
++[	-4.76434647, -0.00445955, 0.00232031, 5.75988693, 0.98469973, 0.99322015, 0.45116389],\
++[	-4.76813419, -0.00445471, 0.00231816, 5.76367948, 0.98472010, 0.99322713, 0.45125051],\
++[	-4.77191560, -0.00444988, 0.00231604, 5.76746572, 0.98474042, 0.99323408, 0.45133717],\
++[	-4.77569070, -0.00444507, 0.00231392, 5.77124562, 0.98476067, 0.99324101, 0.45142388],\
++[	-4.77945947, -0.00444028, 0.00231181, 5.77501919, 0.98478086, 0.99324791, 0.45151063],\
++[	-4.78322192, -0.00443550, 0.00230972, 5.77878642, 0.98480099, 0.99325478, 0.45159742],\
++[	-4.78697804, -0.00443074, 0.00230763, 5.78254730, 0.98482106, 0.99326162, 0.45168425],\
++[	-4.79072783, -0.00442600, 0.00230556, 5.78630183, 0.98484107, 0.99326844, 0.45177111],\
++[	-4.79447127, -0.00442127, 0.00230350, 5.79005000, 0.98486102, 0.99327523, 0.45185800],\
++[	-4.79820836, -0.00441655, 0.00230145, 5.79379181, 0.98488091, 0.99328200, 0.45194492],\
++[	-4.80193909, -0.00441185, 0.00229941, 5.79752724, 0.98490074, 0.99328874, 0.45203187],\
++[	-4.80566347, -0.00440716, 0.00229738, 5.80125630, 0.98492051, 0.99329546, 0.45211884],\
++[	-4.80938148, -0.00440249, 0.00229536, 5.80497899, 0.98494022, 0.99330215, 0.45220583],\
++[	-4.81309312, -0.00439783, 0.00229335, 5.80869528, 0.98495988, 0.99330881, 0.45229285],\
++[	-4.81679838, -0.00439319, 0.00229135, 5.81240519, 0.98497947, 0.99331546, 0.45237988],\
++[	-4.82049726, -0.00438856, 0.00228937, 5.81610870, 0.98499901, 0.99332207, 0.45246692],\
++[	-4.82418976, -0.00438395, 0.00228739, 5.81980581, 0.98501850, 0.99332866, 0.45255398],\
++[	-4.82787587, -0.00437935, 0.00228542, 5.82349652, 0.98503792, 0.99333523, 0.45264105],\
++[	-4.83155558, -0.00437476, 0.00228346, 5.82718082, 0.98505729, 0.99334178, 0.45272813],\
++[	-4.83522889, -0.00437019, 0.00228151, 5.83085870, 0.98507660, 0.99334830, 0.45281521],\
++[	-4.83889580, -0.00436563, 0.00227957, 5.83453017, 0.98509586, 0.99335480, 0.45290231],\
++[	-4.84255630, -0.00436109, 0.00227764, 5.83819521, 0.98511506, 0.99336127, 0.45298940],\
++[	-4.84621038, -0.00435656, 0.00227572, 5.84185383, 0.98513421, 0.99336772, 0.45307649],\
++[	-4.84985805, -0.00435204, 0.00227381, 5.84550601, 0.98515330, 0.99337415, 0.45316358],\
++[	-4.85349930, -0.00434753, 0.00227191, 5.84915177, 0.98517233, 0.99338056, 0.45325067],\
++[	-4.85713412, -0.00434304, 0.00227002, 5.85279108, 0.98519132, 0.99338694, 0.45333775],\
++[	-4.86076252, -0.00433856, 0.00226813, 5.85642396, 0.98521024, 0.99339330, 0.45342482],\
++[	-4.86438448, -0.00433410, 0.00226626, 5.86005038, 0.98522912, 0.99339964, 0.45351189],\
++[	-4.86800001, -0.00432965, 0.00226439, 5.86367036, 0.98524794, 0.99340596, 0.45359894],\
++[	-4.87160909, -0.00432521, 0.00226253, 5.86728389, 0.98526671, 0.99341226, 0.45368598],\
++[	-4.87521174, -0.00432078, 0.00226069, 5.87089096, 0.98528542, 0.99341853, 0.45377301],\
++[	-4.87880793, -0.00431637, 0.00225885, 5.87449157, 0.98530409, 0.99342479, 0.45386001],\
++[	-4.88239768, -0.00431196, 0.00225701, 5.87808572, 0.98532270, 0.99343102, 0.45394700],\
++[	-4.88598098, -0.00430758, 0.00225519, 5.88167340, 0.98534126, 0.99343723, 0.45403397],\
++[	-4.88955781, -0.00430320, 0.00225338, 5.88525462, 0.98535976, 0.99344342, 0.45412092],\
++[	-4.89312819, -0.00429883, 0.00225157, 5.88882936, 0.98537822, 0.99344960, 0.45420784],\
++[	-4.89669211, -0.00429448, 0.00224977, 5.89239763, 0.98539662, 0.99345575, 0.45429473],\
++[	-4.90024957, -0.00429014, 0.00224798, 5.89595942, 0.98541498, 0.99346188, 0.45438160],\
++[	-4.90380055, -0.00428581, 0.00224620, 5.89951474, 0.98543328, 0.99346799, 0.45446844],\
++[	-4.90734507, -0.00428150, 0.00224442, 5.90306357, 0.98545154, 0.99347408, 0.45455524],\
++[	-4.91088312, -0.00427719, 0.00224266, 5.90660592, 0.98546974, 0.99348015, 0.45464201],\
++[	-4.91441469, -0.00427290, 0.00224090, 5.91014179, 0.98548790, 0.99348620, 0.45472875],\
++[	-4.91793978, -0.00426862, 0.00223915, 5.91367116, 0.98550600, 0.99349224, 0.45481546],\
++[	-4.92145840, -0.00426435, 0.00223740, 5.91719405, 0.98552406, 0.99349825, 0.45490212],\
++[	-4.92497053, -0.00426009, 0.00223566, 5.92071044, 0.98554206, 0.99350425, 0.45498875],\
++[	-4.92847618, -0.00425584, 0.00223394, 5.92422034, 0.98556002, 0.99351022, 0.45507533],\
++[	-4.93197535, -0.00425160, 0.00223221, 5.92772375, 0.98557793, 0.99351618, 0.45516187],\
++[	-4.93546803, -0.00424738, 0.00223050, 5.93122065, 0.98559579, 0.99352212, 0.45524837],\
++[	-4.93895423, -0.00424317, 0.00222879, 5.93471106, 0.98561361, 0.99352804, 0.45533482],\
++[	-4.94243393, -0.00423896, 0.00222709, 5.93819497, 0.98563138, 0.99353395, 0.45542123],\
++[	-4.94590714, -0.00423477, 0.00222540, 5.94167237, 0.98564910, 0.99353983, 0.45550758],\
++[	-4.94937386, -0.00423059, 0.00222371, 5.94514327, 0.98566677, 0.99354570, 0.45559389],\
++[	-4.95283409, -0.00422642, 0.00222203, 5.94860767, 0.98568439, 0.99355155, 0.45568014],\
++[	-4.95628782, -0.00422226, 0.00222036, 5.95206556, 0.98570197, 0.99355738, 0.45576634],\
++[	-4.95973505, -0.00421811, 0.00221869, 5.95551694, 0.98571951, 0.99356320, 0.45585249],\
++[	-4.96317579, -0.00421397, 0.00221703, 5.95896181, 0.98573699, 0.99356900, 0.45593858],\
++[	-4.96661002, -0.00420984, 0.00221538, 5.96240018, 0.98575444, 0.99357478, 0.45602462],\
++[	-4.97003776, -0.00420573, 0.00221373, 5.96583204, 0.98577183, 0.99358054, 0.45611059],\
++[	-4.97345900, -0.00420162, 0.00221209, 5.96925738, 0.98578918, 0.99358629, 0.45619651],\
++[	-4.97687374, -0.00419752, 0.00221046, 5.97267622, 0.98580649, 0.99359202, 0.45628236],\
++[	-4.98028197, -0.00419344, 0.00220883, 5.97608854, 0.98582375, 0.99359774, 0.45636816],\
++[	-4.98368371, -0.00418936, 0.00220721, 5.97949435, 0.98584096, 0.99360343, 0.45645388],\
++[	-4.98707894, -0.00418529, 0.00220559, 5.98289365, 0.98585814, 0.99360912, 0.45653955],\
++[	-4.99046767, -0.00418123, 0.00220398, 5.98628643, 0.98587526, 0.99361478, 0.45662514],\
++[	-4.99384989, -0.00417719, 0.00220238, 5.98967270, 0.98589235, 0.99362043, 0.45671067],\
++[	-4.99722561, -0.00417315, 0.00220078, 5.99305246, 0.98590939, 0.99362607, 0.45679613],\
++[	-5.00059483, -0.00416912, 0.00219919, 5.99642571, 0.98592638, 0.99363169, 0.45688152],\
++[	-5.00395754, -0.00416511, 0.00219761, 5.99979244, 0.98594334, 0.99363729, 0.45696684],\
++[	-5.00731375, -0.00416110, 0.00219603, 6.00315266, 0.98596025, 0.99364288, 0.45705209],\
++[	-5.01066346, -0.00415710, 0.00219445, 6.00650636, 0.98597712, 0.99364845, 0.45713726],\
++[	-5.01400667, -0.00415311, 0.00219288, 6.00985356, 0.98599394, 0.99365401, 0.45722236],\
++[	-5.01734337, -0.00414913, 0.00219132, 6.01319424, 0.98601072, 0.99365955, 0.45730738],\
++[	-5.02067356, -0.00414516, 0.00218976, 6.01652841, 0.98602746, 0.99366508, 0.45739233],\
++[	-5.02399726, -0.00414120, 0.00218821, 6.01985606, 0.98604416, 0.99367059, 0.45747719],\
++[	-5.02731445, -0.00413724, 0.00218666, 6.02317721, 0.98606082, 0.99367609, 0.45756198],\
++[	-5.03062515, -0.00413330, 0.00218512, 6.02649184, 0.98607744, 0.99368157, 0.45764669],\
++[	-5.03392934, -0.00412937, 0.00218359, 6.02979997, 0.98609401, 0.99368704, 0.45773131],\
++[	-5.03722703, -0.00412544, 0.00218206, 6.03310159, 0.98611054, 0.99369250, 0.45781585],\
++[	-5.04051822, -0.00412153, 0.00218053, 6.03639670, 0.98612704, 0.99369794, 0.45790031],\
++[	-5.04380292, -0.00411762, 0.00217901, 6.03968530, 0.98614349, 0.99370337, 0.45798469],\
++[	-5.04708112, -0.00411372, 0.00217750, 6.04296739, 0.98615990, 0.99370878, 0.45806897],\
++[	-5.05035282, -0.00410983, 0.00217599, 6.04624299, 0.98617627, 0.99371418, 0.45815318],\
++[	-5.05361802, -0.00410595, 0.00217448, 6.04951207, 0.98619260, 0.99371957, 0.45823729],\
++[	-5.05687674, -0.00410208, 0.00217298, 6.05277466, 0.98620889, 0.99372494, 0.45832131],\
++[	-5.06012896, -0.00409821, 0.00217148, 6.05603074, 0.98622514, 0.99373030, 0.45840525],\
++[	-5.06337469, -0.00409436, 0.00216999, 6.05928033, 0.98624135, 0.99373565, 0.45848909],\
++[	-5.06661393, -0.00409051, 0.00216851, 6.06252341, 0.98625753, 0.99374098, 0.45857285],\
++[	-5.06984668, -0.00408668, 0.00216703, 6.06576000, 0.98627366, 0.99374630, 0.45865651],\
++[	-5.07307294, -0.00408285, 0.00216555, 6.06899010, 0.98628975, 0.99375161, 0.45874007],\
++[	-5.07629272, -0.00407902, 0.00216408, 6.07221370, 0.98630581, 0.99375690, 0.45882355],\
++[	-5.07950602, -0.00407521, 0.00216261, 6.07543081, 0.98632182, 0.99376218, 0.45890693],\
++[	-5.08271283, -0.00407141, 0.00216115, 6.07864143, 0.98633780, 0.99376745, 0.45899021],\
++[	-5.08591317, -0.00406761, 0.00215969, 6.08184556, 0.98635374, 0.99377270, 0.45907339],\
++[	-5.08910703, -0.00406382, 0.00215823, 6.08504321, 0.98636965, 0.99377795, 0.45915648],\
++[	-5.09229441, -0.00406004, 0.00215678, 6.08823437, 0.98638551, 0.99378318, 0.45923947],\
++[	-5.09547532, -0.00405627, 0.00215534, 6.09141905, 0.98640134, 0.99378840, 0.45932235],\
++[	-5.09864975, -0.00405250, 0.00215390, 6.09459725, 0.98641713, 0.99379360, 0.45940514],\
++[	-5.10181772, -0.00404874, 0.00215246, 6.09776897, 0.98643288, 0.99379880, 0.45948783],\
++[	-5.10497922, -0.00404500, 0.00215102, 6.10093422, 0.98644859, 0.99380398, 0.45957041],\
++[	-5.10813425, -0.00404125, 0.00214960, 6.10409300, 0.98646427, 0.99380915, 0.45965289],\
++[	-5.11128282, -0.00403752, 0.00214817, 6.10724530, 0.98647991, 0.99381431, 0.45973527],\
++[	-5.11442494, -0.00403379, 0.00214675, 6.11039114, 0.98649552, 0.99381946, 0.45981755],\
++[	-5.11756059, -0.00403008, 0.00214533, 6.11353051, 0.98651108, 0.99382459, 0.45989972],\
++[	-5.12068979, -0.00402637, 0.00214392, 6.11666343, 0.98652662, 0.99382971, 0.45998178],\
++[	-5.12381254, -0.00402266, 0.00214251, 6.11978988, 0.98654211, 0.99383483, 0.46006373],\
++[	-5.12692884, -0.00401897, 0.00214110, 6.12290987, 0.98655757, 0.99383993, 0.46014558],\
++[	-5.13003869, -0.00401528, 0.00213970, 6.12602341, 0.98657300, 0.99384502, 0.46022732],\
++[	-5.13314210, -0.00401160, 0.00213831, 6.12913050, 0.98658838, 0.99385010, 0.46030896],\
++[	-5.13623906, -0.00400792, 0.00213691, 6.13223114, 0.98660374, 0.99385516, 0.46039048],\
++[	-5.13932959, -0.00400426, 0.00213552, 6.13532533, 0.98661906, 0.99386022, 0.46047189],\
++[	-5.14241368, -0.00400060, 0.00213413, 6.13841308, 0.98663434, 0.99386527, 0.46055319],\
++[	-5.14549135, -0.00399695, 0.00213275, 6.14149440, 0.98664959, 0.99387030, 0.46063438],\
++[	-5.14856258, -0.00399330, 0.00213137, 6.14456928, 0.98666480, 0.99387532, 0.46071546],\
++[	-5.15162739, -0.00398967, 0.00213000, 6.14763772, 0.98667998, 0.99388034, 0.46079643],\
++[	-5.15468577, -0.00398604, 0.00212862, 6.15069974, 0.98669512, 0.99388534, 0.46087728],\
++[	-5.15773774, -0.00398241, 0.00212725, 6.15375533, 0.98671023, 0.99389033, 0.46095802],\
++[	-5.16078329, -0.00397880, 0.00212589, 6.15680449, 0.98672531, 0.99389532, 0.46103864],\
++[	-5.16382243, -0.00397519, 0.00212453, 6.15984724, 0.98674035, 0.99390029, 0.46111915],\
++[	-5.16685516, -0.00397159, 0.00212317, 6.16288358, 0.98675535, 0.99390525, 0.46119954],\
++[	-5.16988149, -0.00396799, 0.00212181, 6.16591350, 0.98677033, 0.99391020, 0.46127982],\
++[	-5.17290141, -0.00396440, 0.00212046, 6.16893701, 0.98678527, 0.99391514, 0.46135997],\
++[	-5.17591494, -0.00396082, 0.00211911, 6.17195412, 0.98680017, 0.99392007, 0.46144001],\
++[	-5.17892208, -0.00395724, 0.00211776, 6.17496483, 0.98681505, 0.99392499, 0.46151994],\
++[	-5.18192282, -0.00395368, 0.00211642, 6.17796914, 0.98682989, 0.99392990, 0.46159974],\
++[	-5.18491718, -0.00395011, 0.00211508, 6.18096706, 0.98684470, 0.99393481, 0.46167943],\
++[	-5.18790516, -0.00394656, 0.00211374, 6.18395860, 0.98685947, 0.99393970, 0.46175899],\
++[	-5.19088675, -0.00394301, 0.00211241, 6.18694374, 0.98687421, 0.99394458, 0.46183843],\
++[	-5.19386198, -0.00393947, 0.00211108, 6.18992251, 0.98688892, 0.99394945, 0.46191776],\
++[	-5.19683083, -0.00393593, 0.00210975, 6.19289490, 0.98690360, 0.99395432, 0.46199696],\
++[	-5.19979332, -0.00393241, 0.00210843, 6.19586092, 0.98691824, 0.99395917, 0.46207604],\
++[	-5.20274945, -0.00392888, 0.00210710, 6.19882057, 0.98693285, 0.99396401, 0.46215500],\
++[	-5.20569922, -0.00392537, 0.00210578, 6.20177385, 0.98694743, 0.99396885, 0.46223383],\
++[	-5.20864264, -0.00392186, 0.00210447, 6.20472078, 0.98696198, 0.99397367, 0.46231254],\
++[	-5.21157971, -0.00391835, 0.00210315, 6.20766135, 0.98697650, 0.99397849, 0.46239113],\
++[	-5.21451043, -0.00391486, 0.00210184, 6.21059558, 0.98699098, 0.99398330, 0.46246959],\
++[	-5.21743482, -0.00391137, 0.00210054, 6.21352345, 0.98700544, 0.99398810, 0.46254793],\
++[	-5.22035287, -0.00390788, 0.00209923, 6.21644499, 0.98701986, 0.99399289, 0.46262614],\
++[	-5.22326459, -0.00390440, 0.00209793, 6.21936019, 0.98703425, 0.99399767, 0.46270423],\
++[	-5.22616999, -0.00390093, 0.00209663, 6.22226905, 0.98704861, 0.99400244, 0.46278219],\
++[	-5.22906906, -0.00389747, 0.00209533, 6.22517159, 0.98706294, 0.99400720, 0.46286003],\
++[	-5.23196182, -0.00389401, 0.00209404, 6.22806781, 0.98707724, 0.99401196, 0.46293774],\
++[	-5.23484826, -0.00389055, 0.00209274, 6.23095771, 0.98709151, 0.99401670, 0.46301532],\
++[	-5.23772840, -0.00388711, 0.00209145, 6.23384129, 0.98710574, 0.99402144, 0.46309277],\
++[	-5.24060224, -0.00388366, 0.00209017, 6.23671857, 0.98711995, 0.99402617, 0.46317009],\
++[	-5.24346978, -0.00388023, 0.00208888, 6.23958955, 0.98713413, 0.99403089, 0.46324729],\
++[	-5.24633103, -0.00387680, 0.00208760, 6.24245423, 0.98714827, 0.99403560, 0.46332436],\
++[	-5.24918599, -0.00387338, 0.00208632, 6.24531261, 0.98716239, 0.99404030, 0.46340129],\
++[	-5.25203467, -0.00386996, 0.00208504, 6.24816471, 0.98717648, 0.99404500, 0.46347810],\
++[	-5.25487707, -0.00386655, 0.00208377, 6.25101053, 0.98719053, 0.99404969, 0.46355478],\
++[	-5.25771320, -0.00386314, 0.00208250, 6.25385007, 0.98720456, 0.99405436, 0.46363133],\
++[	-5.26054307, -0.00385974, 0.00208123, 6.25668333, 0.98721856, 0.99405904, 0.46370775],\
++[	-5.26336668, -0.00385634, 0.00207996, 6.25951033, 0.98723253, 0.99406370, 0.46378403],\
++[	-5.26618402, -0.00385295, 0.00207869, 6.26233107, 0.98724646, 0.99406835, 0.46386019],\
++[	-5.26899512, -0.00384957, 0.00207743, 6.26514555, 0.98726037, 0.99407300, 0.46393621],\
++[	-5.27179998, -0.00384619, 0.00207617, 6.26795379, 0.98727425, 0.99407764, 0.46401210],\
++[	-5.27459860, -0.00384282, 0.00207491, 6.27075577, 0.98728810, 0.99408227, 0.46408786],\
++[	-5.27739098, -0.00383945, 0.00207365, 6.27355152, 0.98730193, 0.99408689, 0.46416348],\
++[	-5.28017713, -0.00383609, 0.00207240, 6.27634104, 0.98731572, 0.99409151, 0.46423898],\
++[	-5.28295706, -0.00383274, 0.00207115, 6.27912432, 0.98732949, 0.99409612, 0.46431433],\
++[	-5.28573078, -0.00382939, 0.00206989, 6.28190139, 0.98734322, 0.99410072, 0.46438956],\
++[	-5.28849828, -0.00382604, 0.00206865, 6.28467224, 0.98735693, 0.99410531, 0.46446465],\
++[	-5.29125958, -0.00382271, 0.00206740, 6.28743687, 0.98737061, 0.99410989, 0.46453961],\
++[	-5.29401468, -0.00381937, 0.00206616, 6.29019530, 0.98738426, 0.99411447, 0.46461443],\
++[	-5.29676358, -0.00381604, 0.00206491, 6.29294754, 0.98739789, 0.99411904, 0.46468912],\
++[	-5.29950630, -0.00381272, 0.00206367, 6.29569358, 0.98741148, 0.99412361, 0.46476368],\
++[	-5.30224283, -0.00380940, 0.00206243, 6.29843343, 0.98742505, 0.99412816, 0.46483809],\
++[	-5.30497319, -0.00380609, 0.00206120, 6.30116710, 0.98743859, 0.99413271, 0.46491238],\
++[	-5.30769738, -0.00380279, 0.00205996, 6.30389459, 0.98745210, 0.99413725, 0.46498652],\
++[	-5.31041540, -0.00379948, 0.00205873, 6.30661592, 0.98746559, 0.99414179, 0.46506054],\
++[	-5.31312727, -0.00379619, 0.00205750, 6.30933108, 0.98747905, 0.99414631, 0.46513441],\
++[	-5.31583299, -0.00379290, 0.00205627, 6.31204009, 0.98749248, 0.99415083, 0.46520815],\
++[	-5.31853255, -0.00378961, 0.00205504, 6.31474294, 0.98750588, 0.99415535, 0.46528175],\
++[	-5.32122598, -0.00378633, 0.00205382, 6.31743965, 0.98751926, 0.99415985, 0.46535522],\
++[	-5.32391328, -0.00378306, 0.00205259, 6.32013023, 0.98753261, 0.99416435, 0.46542855],\
++[	-5.32659445, -0.00377979, 0.00205137, 6.32281466, 0.98754593, 0.99416884, 0.46550174],\
++[	-5.32926950, -0.00377652, 0.00205015, 6.32549298, 0.98755923, 0.99417333, 0.46557479],\
++[	-5.33193843, -0.00377326, 0.00204893, 6.32816517, 0.98757249, 0.99417781, 0.46564771],\
++[	-5.33460126, -0.00377000, 0.00204772, 6.33083125, 0.98758574, 0.99418228, 0.46572049],\
++[	-5.33725798, -0.00376675, 0.00204650, 6.33349123, 0.98759895, 0.99418674, 0.46579313],\
++[	-5.33990861, -0.00376351, 0.00204529, 6.33614511, 0.98761214, 0.99419120, 0.46586563],\
++[	-5.34255316, -0.00376027, 0.00204408, 6.33879289, 0.98762531, 0.99419565, 0.46593799],\
++[	-5.34519162, -0.00375703, 0.00204287, 6.34143458, 0.98763844, 0.99420010, 0.46601022],\
++[	-5.34782400, -0.00375380, 0.00204166, 6.34407020, 0.98765155, 0.99420454, 0.46608230],\
++[	-5.35045032, -0.00375058, 0.00204045, 6.34669974, 0.98766464, 0.99420897, 0.46615425],\
++[	-5.35307057, -0.00374736, 0.00203925, 6.34932321, 0.98767770, 0.99421340, 0.46622606],\
++[	-5.35568477, -0.00374414, 0.00203804, 6.35194063, 0.98769073, 0.99421781, 0.46629773],\
++[	-5.35829292, -0.00374093, 0.00203684, 6.35455199, 0.98770374, 0.99422223, 0.46636926],\
++[	-5.36089503, -0.00373773, 0.00203564, 6.35715730, 0.98771672, 0.99422663, 0.46644065],\
++[	-5.36349110, -0.00373453, 0.00203444, 6.35975657, 0.98772968, 0.99423103, 0.46651190],\
++[	-5.36608114, -0.00373133, 0.00203324, 6.36234981, 0.98774261, 0.99423543, 0.46658301],\
++[	-5.36866517, -0.00372814, 0.00203205, 6.36493703, 0.98775552, 0.99423982, 0.46665398],\
++[	-5.37124318, -0.00372495, 0.00203085, 6.36751823, 0.98776840, 0.99424420, 0.46672482],\
++[	-5.37381518, -0.00372177, 0.00202966, 6.37009341, 0.98778125, 0.99424857, 0.46679551],\
++[	-5.37638118, -0.00371859, 0.00202847, 6.37266259, 0.98779408, 0.99425294, 0.46686606],\
++[	-5.37894119, -0.00371542, 0.00202728, 6.37522577, 0.98780689, 0.99425730, 0.46693647],\
++[	-5.38149521, -0.00371225, 0.00202609, 6.37778296, 0.98781967, 0.99426166, 0.46700674],\
++[	-5.38404325, -0.00370909, 0.00202490, 6.38033416, 0.98783243, 0.99426601, 0.46707687],\
++[	-5.38658532, -0.00370593, 0.00202371, 6.38287939, 0.98784516, 0.99427036, 0.46714686],\
++[	-5.38912142, -0.00370278, 0.00202253, 6.38541865, 0.98785786, 0.99427470, 0.46721671],\
++[	-5.39165157, -0.00369963, 0.00202134, 6.38795194, 0.98787055, 0.99427903, 0.46728642],\
++[	-5.39417576, -0.00369648, 0.00202016, 6.39047928, 0.98788320, 0.99428336, 0.46735598],\
++[	-5.39669401, -0.00369334, 0.00201898, 6.39300067, 0.98789584, 0.99428768, 0.46742541],\
++[	-5.39920633, -0.00369021, 0.00201780, 6.39551612, 0.98790845, 0.99429200, 0.46749470],\
++[	-5.40171272, -0.00368707, 0.00201662, 6.39802564, 0.98792103, 0.99429631, 0.46756384],\
++[	-5.40421318, -0.00368395, 0.00201544, 6.40052923, 0.98793359, 0.99430061, 0.46763284],\
++[	-5.40670773, -0.00368082, 0.00201427, 6.40302690, 0.98794613, 0.99430491, 0.46770170],\
++[	-5.40919637, -0.00367771, 0.00201309, 6.40551867, 0.98795864, 0.99430920, 0.46777042],\
++[	-5.41167912, -0.00367459, 0.00201192, 6.40800452, 0.98797113, 0.99431349, 0.46783900],\
++[	-5.41415597, -0.00367148, 0.00201075, 6.41048448, 0.98798360, 0.99431777, 0.46790744],\
++[	-5.41662693, -0.00366838, 0.00200957, 6.41295855, 0.98799604, 0.99432205, 0.46797574],\
++[	-5.41909202, -0.00366528, 0.00200840, 6.41542674, 0.98800846, 0.99432632, 0.46804389],\
++[	-5.42155124, -0.00366218, 0.00200724, 6.41788906, 0.98802085, 0.99433058, 0.46811190],\
++[	-5.42400460, -0.00365909, 0.00200607, 6.42034551, 0.98803323, 0.99433484, 0.46817978],\
++[	-5.42645210, -0.00365600, 0.00200490, 6.42279610, 0.98804557, 0.99433910, 0.46824751],\
++[	-5.42889376, -0.00365292, 0.00200374, 6.42524084, 0.98805790, 0.99434334, 0.46831509],\
++[	-5.43132958, -0.00364984, 0.00200257, 6.42767973, 0.98807020, 0.99434759, 0.46838254],\
++[	-5.43375956, -0.00364677, 0.00200141, 6.43011279, 0.98808248, 0.99435183, 0.46844985],\
++[	-5.43618372, -0.00364370, 0.00200024, 6.43254002, 0.98809474, 0.99435606, 0.46851701],\
++[	-5.43860207, -0.00364063, 0.00199908, 6.43496143, 0.98810697, 0.99436029, 0.46858403],\
++[	-5.44101460, -0.00363757, 0.00199792, 6.43737703, 0.98811918, 0.99436451, 0.46865091],\
++[	-5.44342134, -0.00363451, 0.00199676, 6.43978683, 0.98813137, 0.99436872, 0.46871765],\
++[	-5.44582228, -0.00363146, 0.00199561, 6.44219082, 0.98814353, 0.99437294, 0.46878424],\
++[	-5.44821744, -0.00362841, 0.00199445, 6.44458903, 0.98815567, 0.99437714, 0.46885070],\
++[	-5.45060682, -0.00362536, 0.00199329, 6.44698145, 0.98816779, 0.99438134, 0.46891701],\
++[	-5.45299043, -0.00362232, 0.00199214, 6.44936811, 0.98817989, 0.99438554, 0.46898318],\
++[	-5.45536828, -0.00361929, 0.00199098, 6.45174899, 0.98819196, 0.99438973, 0.46904921],\
++[	-5.45774037, -0.00361625, 0.00198983, 6.45412412, 0.98820402, 0.99439392, 0.46911510],\
++[	-5.46010672, -0.00361323, 0.00198868, 6.45649350, 0.98821605, 0.99439810, 0.46918084],\
++[	-5.46246734, -0.00361020, 0.00198753, 6.45885714, 0.98822805, 0.99440227, 0.46924645],\
++[	-5.46482222, -0.00360718, 0.00198638, 6.46121504, 0.98824004, 0.99440644, 0.46931191],\
++[	-5.46717138, -0.00360417, 0.00198523, 6.46356722, 0.98825200, 0.99441061, 0.46937723],\
++[	-5.46951483, -0.00360115, 0.00198408, 6.46591367, 0.98826395, 0.99441477, 0.46944241],\
++[	-5.47185257, -0.00359814, 0.00198293, 6.46825442, 0.98827587, 0.99441892, 0.46950744],\
++[	-5.47418461, -0.00359514, 0.00198178, 6.47058947, 0.98828776, 0.99442308, 0.46957234],\
++[	-5.47651097, -0.00359214, 0.00198064, 6.47291883, 0.98829964, 0.99442722, 0.46963709],\
++[	-5.47883164, -0.00358914, 0.00197949, 6.47524250, 0.98831150, 0.99443136, 0.46970170],\
++[	-5.48114664, -0.00358615, 0.00197835, 6.47756049, 0.98832333, 0.99443550, 0.46976617],\
++[	-5.48345598, -0.00358316, 0.00197721, 6.47987281, 0.98833514, 0.99443963, 0.46983050],\
++[	-5.48575966, -0.00358018, 0.00197606, 6.48217948, 0.98834693, 0.99444376, 0.46989469],\
++[	-5.48805769, -0.00357720, 0.00197492, 6.48448049, 0.98835870, 0.99444788, 0.46995873],\
++[	-5.49035007, -0.00357422, 0.00197378, 6.48677585, 0.98837045, 0.99445200, 0.47002264],\
++[	-5.49263683, -0.00357125, 0.00197264, 6.48906558, 0.98838217, 0.99445611, 0.47008640],\
++[	-5.49491797, -0.00356828, 0.00197150, 6.49134968, 0.98839388, 0.99446022, 0.47015002],\
++[	-5.49719348, -0.00356532, 0.00197036, 6.49362817, 0.98840556, 0.99446432, 0.47021350],\
++[	-5.49946339, -0.00356236, 0.00196923, 6.49590104, 0.98841723, 0.99446842, 0.47027684],\
++[	-5.50172771, -0.00355940, 0.00196809, 6.49816831, 0.98842887, 0.99447251, 0.47034004],\
++[	-5.50398643, -0.00355645, 0.00196695, 6.50042998, 0.98844049, 0.99447660, 0.47040310],\
++[	-5.50623957, -0.00355350, 0.00196582, 6.50268607, 0.98845209, 0.99448068, 0.47046602],\
++[	-5.50848713, -0.00355055, 0.00196468, 6.50493658, 0.98846367, 0.99448476, 0.47052879],\
++[	-5.51072913, -0.00354761, 0.00196355, 6.50718152, 0.98847523, 0.99448884, 0.47059143],\
++[	-5.51296557, -0.00354467, 0.00196242, 6.50942090, 0.98848677, 0.99449291, 0.47065392],\
++[	-5.51519647, -0.00354174, 0.00196129, 6.51165473, 0.98849828, 0.99449698, 0.47071627],\
++[	-5.51742182, -0.00353881, 0.00196016, 6.51388301, 0.98850978, 0.99450104, 0.47077849],\
++[	-5.51964164, -0.00353588, 0.00195902, 6.51610576, 0.98852126, 0.99450510, 0.47084056],\
++[	-5.52185594, -0.00353296, 0.00195789, 6.51832298, 0.98853271, 0.99450915, 0.47090249],\
++[	-5.52406473, -0.00353004, 0.00195677, 6.52053469, 0.98854415, 0.99451320, 0.47096428],\
++[	-5.52626800, -0.00352712, 0.00195564, 6.52274088, 0.98855556, 0.99451724, 0.47102593],\
++[	-5.52846578, -0.00352421, 0.00195451, 6.52494157, 0.98856696, 0.99452128, 0.47108744],\
++[	-5.53065808, -0.00352130, 0.00195338, 6.52713677, 0.98857834, 0.99452532, 0.47114881],\
++[	-5.53284489, -0.00351840, 0.00195226, 6.52932649, 0.98858969, 0.99452935, 0.47121004],\
++[	-5.53502623, -0.00351550, 0.00195113, 6.53151073, 0.98860103, 0.99453337, 0.47127113],\
++[	-5.53720210, -0.00351260, 0.00195001, 6.53368950, 0.98861234, 0.99453740, 0.47133208],\
++[	-5.53937252, -0.00350971, 0.00194888, 6.53586282, 0.98862364, 0.99454141, 0.47139289],\
++[	-5.54153750, -0.00350682, 0.00194776, 6.53803068, 0.98863491, 0.99454543, 0.47145356],\
++[	-5.54369704, -0.00350393, 0.00194663, 6.54019311, 0.98864617, 0.99454944, 0.47151409],\
++[	-5.54585115, -0.00350105, 0.00194551, 6.54235010, 0.98865740, 0.99455344, 0.47157449],\
++[	-5.54799984, -0.00349817, 0.00194439, 6.54450167, 0.98866862, 0.99455744, 0.47163474],\
++[	-5.55014311, -0.00349529, 0.00194327, 6.54664782, 0.98867982, 0.99456144, 0.47169485],\
++[	-5.55228099, -0.00349242, 0.00194215, 6.54878857, 0.98869099, 0.99456543, 0.47175483],\
++[	-5.55441347, -0.00348955, 0.00194103, 6.55092392, 0.98870215, 0.99456942, 0.47181466],\
++[	-5.55654057, -0.00348669, 0.00193991, 6.55305388, 0.98871329, 0.99457340, 0.47187436],\
++[	-5.55866229, -0.00348383, 0.00193879, 6.55517846, 0.98872441, 0.99457738, 0.47193391],\
++[	-5.56077864, -0.00348097, 0.00193767, 6.55729767, 0.98873551, 0.99458136, 0.47199333],\
++[	-5.56288964, -0.00347811, 0.00193655, 6.55941152, 0.98874659, 0.99458533, 0.47205261],\
++[	-5.56499528, -0.00347526, 0.00193544, 6.56152002, 0.98875765, 0.99458930, 0.47211176],\
++[	-5.56709558, -0.00347242, 0.00193432, 6.56362317, 0.98876869, 0.99459326, 0.47217076],\
++[	-5.56919055, -0.00346957, 0.00193321, 6.56572098, 0.98877972, 0.99459722, 0.47222962],\
++[	-5.57128020, -0.00346673, 0.00193209, 6.56781347, 0.98879072, 0.99460118, 0.47228835],\
++[	-5.57336453, -0.00346390, 0.00193098, 6.56990064, 0.98880171, 0.99460513, 0.47234694],\
++[	-5.57544356, -0.00346106, 0.00192986, 6.57198250, 0.98881267, 0.99460907, 0.47240539],\
++[	-5.57751729, -0.00345823, 0.00192875, 6.57405906, 0.98882362, 0.99461302, 0.47246371],\
++[	-5.57958573, -0.00345541, 0.00192764, 6.57613032, 0.98883455, 0.99461696, 0.47252188],\
++[	-5.58164889, -0.00345259, 0.00192652, 6.57819631, 0.98884546, 0.99462089, 0.47257992],\
++[	-5.58370679, -0.00344977, 0.00192541, 6.58025702, 0.98885635, 0.99462482, 0.47263782],\
++[	-5.58575942, -0.00344695, 0.00192430, 6.58231247, 0.98886722, 0.99462875, 0.47269559],\
++[	-5.58780679, -0.00344414, 0.00192319, 6.58436266, 0.98887808, 0.99463267, 0.47275321],\
++[	-5.58984893, -0.00344133, 0.00192208, 6.58640760, 0.98888891, 0.99463659, 0.47281070],\
++[	-5.59188583, -0.00343852, 0.00192097, 6.58844731, 0.98889973, 0.99464051, 0.47286806],\
++[	-5.59391750, -0.00343572, 0.00191986, 6.59048178, 0.98891053, 0.99464442, 0.47292528],\
++[	-5.59594396, -0.00343292, 0.00191875, 6.59251104, 0.98892131, 0.99464833, 0.47298236],\
++[	-5.59796521, -0.00343013, 0.00191764, 6.59453508, 0.98893207, 0.99465223, 0.47303930],\
++[	-5.59998126, -0.00342733, 0.00191653, 6.59655393, 0.98894281, 0.99465613, 0.47309611],\
++[	-5.60199212, -0.00342455, 0.00191543, 6.59856758, 0.98895354, 0.99466003, 0.47315278],\
++[	-5.60399781, -0.00342176, 0.00191432, 6.60057605, 0.98896425, 0.99466392, 0.47320932],\
++[	-5.60599831, -0.00341898, 0.00191321, 6.60257934, 0.98897493, 0.99466781, 0.47326572],\
++[	-5.60799366, -0.00341620, 0.00191211, 6.60457746, 0.98898561, 0.99467169, 0.47332198],\
++[	-5.60998385, -0.00341342, 0.00191100, 6.60657043, 0.98899626, 0.99467557, 0.47337811],\
++[	-5.61196890, -0.00341065, 0.00190990, 6.60855825, 0.98900689, 0.99467945, 0.47343411],\
++[	-5.61394881, -0.00340788, 0.00190879, 6.61054093, 0.98901751, 0.99468332, 0.47348997],\
++[	-5.61592360, -0.00340512, 0.00190769, 6.61251848, 0.98902811, 0.99468719, 0.47354569],\
++[	-5.61789327, -0.00340235, 0.00190659, 6.61449091, 0.98903869, 0.99469106, 0.47360128],\
++[	-5.61985783, -0.00339960, 0.00190548, 6.61645823, 0.98904926, 0.99469492, 0.47365674],\
++[	-5.62181729, -0.00339684, 0.00190438, 6.61842045, 0.98905980, 0.99469878, 0.47371206],\
++[	-5.62377166, -0.00339409, 0.00190328, 6.62037757, 0.98907033, 0.99470263, 0.47376724],\
++[	-5.62572095, -0.00339134, 0.00190218, 6.62232961, 0.98908084, 0.99470648, 0.47382230],\
++[	-5.62766517, -0.00338859, 0.00190108, 6.62427658, 0.98909133, 0.99471033, 0.47387721],\
++[	-5.62960432, -0.00338585, 0.00189998, 6.62621847, 0.98910181, 0.99471417, 0.47393200],\
++[	-5.63153842, -0.00338311, 0.00189888, 6.62815531, 0.98911227, 0.99471801, 0.47398665],\
++[	-5.63346748, -0.00338037, 0.00189778, 6.63008711, 0.98912271, 0.99472185, 0.47404117],\
++[	-5.63539150, -0.00337764, 0.00189668, 6.63201386, 0.98913313, 0.99472568, 0.47409555],\
++[	-5.63731050, -0.00337491, 0.00189558, 6.63393558, 0.98914354, 0.99472951, 0.47414980],\
++[	-5.63922447, -0.00337218, 0.00189448, 6.63585229, 0.98915393, 0.99473333, 0.47420392],\
++[	-5.64113344, -0.00336946, 0.00189338, 6.63776398, 0.98916430, 0.99473716, 0.47425791],\
++[	-5.64303741, -0.00336674, 0.00189229, 6.63967067, 0.98917466, 0.99474097, 0.47431176],\
++[	-5.64493639, -0.00336402, 0.00189119, 6.64157237, 0.98918499, 0.99474479, 0.47436548],\
++[	-5.64683039, -0.00336131, 0.00189009, 6.64346908, 0.98919531, 0.99474860, 0.47441907],\
++[	-5.64871942, -0.00335860, 0.00188899, 6.64536082, 0.98920562, 0.99475241, 0.47447252],\
++[	-5.65060348, -0.00335589, 0.00188790, 6.64724759, 0.98921590, 0.99475621, 0.47452585],\
++[	-5.65248259, -0.00335319, 0.00188680, 6.64912941, 0.98922617, 0.99476001, 0.47457904],\
++[	-5.65435676, -0.00335049, 0.00188571, 6.65100628, 0.98923642, 0.99476381, 0.47463210],\
++[	-5.65622600, -0.00334779, 0.00188461, 6.65287821, 0.98924666, 0.99476760, 0.47468503],\
++[	-5.65809030, -0.00334509, 0.00188352, 6.65474521, 0.98925688, 0.99477139, 0.47473783],\
++[	-5.65994970, -0.00334240, 0.00188243, 6.65660729, 0.98926708, 0.99477517, 0.47479050],\
++[	-5.66180418, -0.00333971, 0.00188133, 6.65846447, 0.98927727, 0.99477896, 0.47484303],\
++[	-5.66365377, -0.00333703, 0.00188024, 6.66031674, 0.98928744, 0.99478273, 0.47489544],\
++[	-5.66549846, -0.00333434, 0.00187915, 6.66216412, 0.98929759, 0.99478651, 0.47494772],\
++[	-5.66733828, -0.00333166, 0.00187805, 6.66400662, 0.98930772, 0.99479028, 0.47499986],\
++[	-5.66917323, -0.00332899, 0.00187696, 6.66584424, 0.98931784, 0.99479405, 0.47505187],\
++[	-5.67100331, -0.00332631, 0.00187587, 6.66767700, 0.98932794, 0.99479781, 0.47510376],\
++[	-5.67282855, -0.00332364, 0.00187478, 6.66950490, 0.98933803, 0.99480158, 0.47515552],\
++[	-5.67464894, -0.00332098, 0.00187369, 6.67132796, 0.98934810, 0.99480533, 0.47520714],\
++[	-5.67646450, -0.00331831, 0.00187260, 6.67314618, 0.98935815, 0.99480909, 0.47525864],\
++[	-5.67827523, -0.00331565, 0.00187151, 6.67495958, 0.98936819, 0.99481284, 0.47531001],\
++[	-5.68008115, -0.00331299, 0.00187042, 6.67676816, 0.98937821, 0.99481659, 0.47536125],\
++[	-5.68188226, -0.00331034, 0.00186933, 6.67857192, 0.98938821, 0.99482033, 0.47541236],\
++[	-5.68367858, -0.00330769, 0.00186824, 6.68037089, 0.98939820, 0.99482407, 0.47546334],\
++[	-5.68547011, -0.00330504, 0.00186715, 6.68216507, 0.98940817, 0.99482781, 0.47551419],\
++[	-5.68725686, -0.00330239, 0.00186606, 6.68395447, 0.98941813, 0.99483154, 0.47556492],\
++[	-5.68903884, -0.00329975, 0.00186498, 6.68573909, 0.98942807, 0.99483527, 0.47561551],\
++[	-5.69081606, -0.00329711, 0.00186389, 6.68751895, 0.98943799, 0.99483900, 0.47566598],\
++[	-5.69258853, -0.00329447, 0.00186280, 6.68929406, 0.98944790, 0.99484272, 0.47571632],\
++[	-5.69435627, -0.00329184, 0.00186172, 6.69106443, 0.98945779, 0.99484644, 0.47576654],\
++[	-5.69611926, -0.00328921, 0.00186063, 6.69283005, 0.98946767, 0.99485016, 0.47581663],\
++[	-5.69787754, -0.00328658, 0.00185954, 6.69459096, 0.98947753, 0.99485388, 0.47586659],\
++[	-5.69963110, -0.00328396, 0.00185846, 6.69634715, 0.98948737, 0.99485759, 0.47591642],\
++[	-5.70137996, -0.00328133, 0.00185737, 6.69809863, 0.98949720, 0.99486129, 0.47596613],\
++[	-5.70312413, -0.00327872, 0.00185629, 6.69984541, 0.98950701, 0.99486500, 0.47601571],\
++[	-5.70486360, -0.00327610, 0.00185520, 6.70158750, 0.98951681, 0.99486870, 0.47606516],\
++[	-5.70659840, -0.00327349, 0.00185412, 6.70332492, 0.98952659, 0.99487239, 0.47611449],\
++[	-5.70832854, -0.00327088, 0.00185304, 6.70505766, 0.98953636, 0.99487609, 0.47616370],\
++[	-5.71005402, -0.00326827, 0.00185195, 6.70678575, 0.98954611, 0.99487978, 0.47621277],\
++[	-5.71177484, -0.00326567, 0.00185087, 6.70850918, 0.98955584, 0.99488347, 0.47626172],\
++[	-5.71349103, -0.00326306, 0.00184979, 6.71022797, 0.98956556, 0.99488715, 0.47631055],\
++[	-5.71520259, -0.00326047, 0.00184870, 6.71194212, 0.98957526, 0.99489083, 0.47635925],\
++[	-5.71690953, -0.00325787, 0.00184762, 6.71365166, 0.98958495, 0.99489451, 0.47640783],\
++[	-5.71861185, -0.00325528, 0.00184654, 6.71535658, 0.98959462, 0.99489818, 0.47645628],\
++[	-5.72030958, -0.00325269, 0.00184546, 6.71705689, 0.98960428, 0.99490185, 0.47650461],\
++[	-5.72200271, -0.00325010, 0.00184438, 6.71875261, 0.98961392, 0.99490552, 0.47655282],\
++[	-5.72369126, -0.00324752, 0.00184330, 6.72044374, 0.98962355, 0.99490918, 0.47660090],\
++[	-5.72537523, -0.00324494, 0.00184222, 6.72213029, 0.98963316, 0.99491284, 0.47664886],\
++[	-5.72705463, -0.00324236, 0.00184114, 6.72381227, 0.98964276, 0.99491650, 0.47669669],\
++[	-5.72872948, -0.00323979, 0.00184006, 6.72548970, 0.98965234, 0.99492016, 0.47674440],\
++[	-5.73039979, -0.00323721, 0.00183898, 6.72716257, 0.98966190, 0.99492381, 0.47679198],\
++[	-5.73206555, -0.00323464, 0.00183790, 6.72883091, 0.98967145, 0.99492746, 0.47683945],\
++[	-5.73372679, -0.00323208, 0.00183682, 6.73049471, 0.98968099, 0.99493110, 0.47688679],\
++[	-5.73538351, -0.00322952, 0.00183574, 6.73215399, 0.98969051, 0.99493474, 0.47693401],\
++[	-5.73703572, -0.00322695, 0.00183466, 6.73380876, 0.98970002, 0.99493838, 0.47698111],\
++[	-5.73868343, -0.00322440, 0.00183359, 6.73545903, 0.98970951, 0.99494202, 0.47702808],\
++[	-5.74032664, -0.00322184, 0.00183251, 6.73710480, 0.98971898, 0.99494565, 0.47707494],\
++[	-5.74196538, -0.00321929, 0.00183143, 6.73874609, 0.98972844, 0.99494928, 0.47712167],\
++[	-5.74359964, -0.00321674, 0.00183036, 6.74038290, 0.98973789, 0.99495290, 0.47716828],\
++[	-5.74522943, -0.00321419, 0.00182928, 6.74201524, 0.98974732, 0.99495653, 0.47721477],\
++[	-5.74685478, -0.00321165, 0.00182820, 6.74364312, 0.98975674, 0.99496014, 0.47726113],\
++[	-5.74847567, -0.00320911, 0.00182713, 6.74526656, 0.98976614, 0.99496376, 0.47730738],\
++[	-5.75009213, -0.00320657, 0.00182605, 6.74688556, 0.98977552, 0.99496737, 0.47735351],\
++[	-5.75170417, -0.00320404, 0.00182498, 6.74850013, 0.98978490, 0.99497098, 0.47739952],\
++[	-5.75331179, -0.00320151, 0.00182390, 6.75011028, 0.98979425, 0.99497459, 0.47744540],\
++[	-5.75491499, -0.00319898, 0.00182283, 6.75171602, 0.98980360, 0.99497819, 0.47749117],\
++[	-5.75651380, -0.00319645, 0.00182176, 6.75331735, 0.98981293, 0.99498179, 0.47753682],\
++[	-5.75810822, -0.00319393, 0.00182068, 6.75491429, 0.98982224, 0.99498539, 0.47758234],\
++[	-5.75969826, -0.00319141, 0.00181961, 6.75650685, 0.98983154, 0.99498899, 0.47762775],\
++[	-5.76128392, -0.00318889, 0.00181854, 6.75809504, 0.98984082, 0.99499258, 0.47767304],\
++[	-5.76286523, -0.00318637, 0.00181746, 6.75967886, 0.98985009, 0.99499616, 0.47771821],\
++[	-5.76444218, -0.00318386, 0.00181639, 6.76125832, 0.98985935, 0.99499975, 0.47776327],\
++[	-5.76601479, -0.00318135, 0.00181532, 6.76283343, 0.98986859, 0.99500333, 0.47780820],\
++[	-5.76758306, -0.00317884, 0.00181425, 6.76440421, 0.98987782, 0.99500691, 0.47785302],\
++[	-5.76914700, -0.00317634, 0.00181318, 6.76597066, 0.98988703, 0.99501049, 0.47789772],\
++[	-5.77070663, -0.00317384, 0.00181210, 6.76753279, 0.98989623, 0.99501406, 0.47794230],\
++[	-5.77226195, -0.00317134, 0.00181103, 6.76909061, 0.98990542, 0.99501763, 0.47798676],\
++[	-5.77381298, -0.00316884, 0.00180996, 6.77064413, 0.98991459, 0.99502119, 0.47803110],\
++[	-5.77535971, -0.00316635, 0.00180889, 6.77219336, 0.98992374, 0.99502476, 0.47807533],\
++[	-5.77690216, -0.00316386, 0.00180782, 6.77373830, 0.98993289, 0.99502832, 0.47811945],\
++[	-5.77844035, -0.00316137, 0.00180675, 6.77527898, 0.98994201, 0.99503187, 0.47816344],\
++[	-5.77997427, -0.00315889, 0.00180569, 6.77681538, 0.98995113, 0.99503543, 0.47820732],\
++[	-5.78150394, -0.00315640, 0.00180462, 6.77834753, 0.98996023, 0.99503898, 0.47825108],\
++[	-5.78302936, -0.00315393, 0.00180355, 6.77987544, 0.98996931, 0.99504253, 0.47829473],\
++[	-5.78455056, -0.00315145, 0.00180248, 6.78139911, 0.98997839, 0.99504607, 0.47833826],\
++[	-5.78606752, -0.00314897, 0.00180141, 6.78291855, 0.98998744, 0.99504961, 0.47838168],\
++[	-5.78758027, -0.00314650, 0.00180035, 6.78443377, 0.98999649, 0.99505315, 0.47842498],\
++[	-5.78908882, -0.00314403, 0.00179928, 6.78594478, 0.99000552, 0.99505669, 0.47846816],\
++[	-5.79059316, -0.00314157, 0.00179821, 6.78745159, 0.99001453, 0.99506022, 0.47851123],\
++[	-5.79209332, -0.00313911, 0.00179715, 6.78895421, 0.99002354, 0.99506375, 0.47855419],\
++[	-5.79358930, -0.00313665, 0.00179608, 6.79045265, 0.99003253, 0.99506727, 0.47859703],\
++[	-5.79508110, -0.00313419, 0.00179501, 6.79194692, 0.99004150, 0.99507080, 0.47863976],\
++[	-5.79656875, -0.00313173, 0.00179395, 6.79343702, 0.99005046, 0.99507432, 0.47868238],\
++[	-5.79805224, -0.00312928, 0.00179288, 6.79492296, 0.99005941, 0.99507784, 0.47872487],\
++[	-5.79953159, -0.00312683, 0.00179182, 6.79640476, 0.99006834, 0.99508135, 0.47876726],\
++[	-5.80100681, -0.00312438, 0.00179075, 6.79788243, 0.99007726, 0.99508486, 0.47880954],\
++[	-5.80247790, -0.00312194, 0.00178969, 6.79935596, 0.99008617, 0.99508837, 0.47885170],\
++[	-5.80394487, -0.00311950, 0.00178863, 6.80082538, 0.99009506, 0.99509187, 0.47889374],\
++[	-5.80540774, -0.00311706, 0.00178756, 6.80229068, 0.99010394, 0.99509538, 0.47893568],\
++[	-5.80686651, -0.00311462, 0.00178650, 6.80375189, 0.99011281, 0.99509888, 0.47897750],\
++[	-5.80832119, -0.00311219, 0.00178544, 6.80520900, 0.99012166, 0.99510237, 0.47901921],\
++[	-5.80977179, -0.00310976, 0.00178438, 6.80666204, 0.99013050, 0.99510587, 0.47906081],\
++[	-5.81121832, -0.00310733, 0.00178331, 6.80811099, 0.99013933, 0.99510936, 0.47910230],\
++[	-5.81266079, -0.00310490, 0.00178225, 6.80955589, 0.99014814, 0.99511284, 0.47914367],\
++[	-5.81409921, -0.00310248, 0.00178119, 6.81099673, 0.99015694, 0.99511633, 0.47918494],\
++[	-5.81553358, -0.00310006, 0.00178013, 6.81243352, 0.99016573, 0.99511981, 0.47922609],\
++[	-5.81696392, -0.00309764, 0.00177907, 6.81386627, 0.99017450, 0.99512329, 0.47926714],\
++[	-5.81839023, -0.00309523, 0.00177801, 6.81529500, 0.99018326, 0.99512676, 0.47930807],\
++[	-5.81981252, -0.00309282, 0.00177695, 6.81671970, 0.99019200, 0.99513024, 0.47934889],\
++[	-5.82123081, -0.00309041, 0.00177589, 6.81814040, 0.99020074, 0.99513370, 0.47938960],\
++[	-5.82264509, -0.00308800, 0.00177483, 6.81955709, 0.99020946, 0.99513717, 0.47943020],\
++[	-5.82405539, -0.00308560, 0.00177377, 6.82096980, 0.99021816, 0.99514063, 0.47947070],\
++[	-5.82546171, -0.00308319, 0.00177271, 6.82237851, 0.99022686, 0.99514410, 0.47951108],\
++[	-5.82686405, -0.00308079, 0.00177165, 6.82378326, 0.99023554, 0.99514755, 0.47955135],\
++[	-5.82826243, -0.00307840, 0.00177059, 6.82518403, 0.99024421, 0.99515101, 0.47959152],\
++[	-5.82965686, -0.00307600, 0.00176954, 6.82658086, 0.99025286, 0.99515446, 0.47963157],\
++[	-5.83104734, -0.00307361, 0.00176848, 6.82797373, 0.99026150, 0.99515791, 0.47967152],\
++[	-5.83243389, -0.00307122, 0.00176742, 6.82936266, 0.99027013, 0.99516135, 0.47971136],\
++[	-5.83381650, -0.00306884, 0.00176637, 6.83074767, 0.99027875, 0.99516480, 0.47975109],\
++[	-5.83519520, -0.00306645, 0.00176531, 6.83212875, 0.99028735, 0.99516824, 0.47979072],\
++[	-5.83656999, -0.00306407, 0.00176425, 6.83350592, 0.99029594, 0.99517167, 0.47983023],\
++[	-5.83794088, -0.00306169, 0.00176320, 6.83487918, 0.99030451, 0.99517511, 0.47986964],\
++[	-5.83930788, -0.00305932, 0.00176214, 6.83624856, 0.99031308, 0.99517854, 0.47990894],\
++[	-5.84067099, -0.00305695, 0.00176109, 6.83761404, 0.99032163, 0.99518197, 0.47994814],\
++[	-5.84203023, -0.00305458, 0.00176003, 6.83897565, 0.99033017, 0.99518539, 0.47998722],\
++[	-5.84338560, -0.00305221, 0.00175898, 6.84033340, 0.99033869, 0.99518881, 0.48002620],\
++[	-5.84473712, -0.00304984, 0.00175793, 6.84168728, 0.99034721, 0.99519223, 0.48006508],\
++[	-5.84608479, -0.00304748, 0.00175687, 6.84303731, 0.99035571, 0.99519565, 0.48010385],\
++[	-5.84742862, -0.00304512, 0.00175582, 6.84438350, 0.99036419, 0.99519906, 0.48014251],\
++[	-5.84876862, -0.00304276, 0.00175477, 6.84572586, 0.99037267, 0.99520247, 0.48018107],\
++[	-5.85010480, -0.00304041, 0.00175371, 6.84706439, 0.99038113, 0.99520588, 0.48021952],\
++[	-5.85143717, -0.00303805, 0.00175266, 6.84839911, 0.99038958, 0.99520929, 0.48025787],\
++[	-5.85276573, -0.00303570, 0.00175161, 6.84973003, 0.99039802, 0.99521269, 0.48029611],\
++[	-5.85409050, -0.00303336, 0.00175056, 6.85105714, 0.99040644, 0.99521609, 0.48033425],\
++[	-5.85541148, -0.00303101, 0.00174951, 6.85238047, 0.99041485, 0.99521948, 0.48037228],\
++[	-5.85672868, -0.00302867, 0.00174846, 6.85370002, 0.99042325, 0.99522288, 0.48041021],\
++[	-5.85804212, -0.00302633, 0.00174741, 6.85501579, 0.99043164, 0.99522627, 0.48044803],\
++[	-5.85935180, -0.00302399, 0.00174636, 6.85632781, 0.99044002, 0.99522965, 0.48048575],\
++[	-5.86065772, -0.00302166, 0.00174531, 6.85763607, 0.99044838, 0.99523304, 0.48052337],\
++[	-5.86195991, -0.00301932, 0.00174426, 6.85894058, 0.99045673, 0.99523642, 0.48056088],\
++[	-5.86325835, -0.00301699, 0.00174321, 6.86024136, 0.99046507, 0.99523980, 0.48059829],\
++[	-5.86455308, -0.00301467, 0.00174216, 6.86153841, 0.99047339, 0.99524317, 0.48063560],\
++[	-5.86584409, -0.00301234, 0.00174111, 6.86283174, 0.99048171, 0.99524655, 0.48067281],\
++[	-5.86713139, -0.00301002, 0.00174006, 6.86412137, 0.99049001, 0.99524992, 0.48070991],\
++[	-5.86841499, -0.00300770, 0.00173902, 6.86540729, 0.99049829, 0.99525328, 0.48074691],\
++[	-5.86969490, -0.00300538, 0.00173797, 6.86668952, 0.99050657, 0.99525665, 0.48078381],\
++[	-5.87097113, -0.00300307, 0.00173692, 6.86796806, 0.99051483, 0.99526001, 0.48082060],\
++[	-5.87224368, -0.00300076, 0.00173588, 6.86924293, 0.99052309, 0.99526337, 0.48085730],\
++[	-5.87351257, -0.00299845, 0.00173483, 6.87051413, 0.99053133, 0.99526672, 0.48089389],\
++[	-5.87477781, -0.00299614, 0.00173378, 6.87178167, 0.99053955, 0.99527008, 0.48093038],\
++[	-5.87603940, -0.00299383, 0.00173274, 6.87304557, 0.99054777, 0.99527343, 0.48096678],\
++[	-5.87729735, -0.00299153, 0.00173169, 6.87430582, 0.99055597, 0.99527677, 0.48100307],\
++[	-5.87855167, -0.00298923, 0.00173065, 6.87556244, 0.99056416, 0.99528012, 0.48103926],\
++[	-5.87980237, -0.00298694, 0.00172961, 6.87681543, 0.99057234, 0.99528346, 0.48107535],\
++[	-5.88104946, -0.00298464, 0.00172856, 6.87806482, 0.99058051, 0.99528680, 0.48111134],\
++[	-5.88229294, -0.00298235, 0.00172752, 6.87931059, 0.99058867, 0.99529013, 0.48114723],\
++[	-5.88353283, -0.00298006, 0.00172648, 6.88055277, 0.99059681, 0.99529347, 0.48118302],\
++[	-5.88476913, -0.00297777, 0.00172543, 6.88179135, 0.99060494, 0.99529680, 0.48121871],\
++[	-5.88600185, -0.00297549, 0.00172439, 6.88302636, 0.99061306, 0.99530012, 0.48125430],\
++[	-5.88723100, -0.00297320, 0.00172335, 6.88425779, 0.99062117, 0.99530345, 0.48128980],\
++[	-5.88845659, -0.00297093, 0.00172231, 6.88548566, 0.99062927, 0.99530677, 0.48132519],\
++[	-5.88967862, -0.00296865, 0.00172127, 6.88670998, 0.99063735, 0.99531009, 0.48136049],\
++[	-5.89089712, -0.00296637, 0.00172022, 6.88793074, 0.99064542, 0.99531340, 0.48139569],\
++[	-5.89211207, -0.00296410, 0.00171918, 6.88914797, 0.99065348, 0.99531671, 0.48143079],\
++[	-5.89332350, -0.00296183, 0.00171814, 6.89036167, 0.99066153, 0.99532002, 0.48146579],\
++[	-5.89453141, -0.00295956, 0.00171710, 6.89157185, 0.99066957, 0.99532333, 0.48150069],\
++[	-5.89573581, -0.00295730, 0.00171607, 6.89277851, 0.99067760, 0.99532664, 0.48153550],\
++[	-5.89693670, -0.00295504, 0.00171503, 6.89398167, 0.99068561, 0.99532994, 0.48157021],\
++[	-5.89813411, -0.00295278, 0.00171399, 6.89518133, 0.99069361, 0.99533324, 0.48160482],\
++[	-5.89932802, -0.00295052, 0.00171295, 6.89637751, 0.99070160, 0.99533653, 0.48163934],\
++[	-5.90051846, -0.00294826, 0.00171191, 6.89757020, 0.99070958, 0.99533983, 0.48167376],\
++[	-5.90170544, -0.00294601, 0.00171088, 6.89875943, 0.99071755, 0.99534312, 0.48170809],\
++[	-5.90288895, -0.00294376, 0.00170984, 6.89994519, 0.99072550, 0.99534640, 0.48174231],\
++[	-5.90406901, -0.00294151, 0.00170880, 6.90112750, 0.99073345, 0.99534969, 0.48177645],\
++[	-5.90524562, -0.00293927, 0.00170777, 6.90230636, 0.99074138, 0.99535297, 0.48181048],\
++[	-5.90641881, -0.00293702, 0.00170673, 6.90348178, 0.99074930, 0.99535625, 0.48184443],\
++[	-5.90758856, -0.00293478, 0.00170569, 6.90465378, 0.99075721, 0.99535952, 0.48187827],\
++[	-5.90875490, -0.00293254, 0.00170466, 6.90582235, 0.99076511, 0.99536280, 0.48191202],\
++[	-5.90991782, -0.00293031, 0.00170363, 6.90698751, 0.99077300, 0.99536607, 0.48194568],\
++[	-5.91107735, -0.00292807, 0.00170259, 6.90814927, 0.99078087, 0.99536933, 0.48197924],\
++[	-5.91223348, -0.00292584, 0.00170156, 6.90930763, 0.99078874, 0.99537260, 0.48201271],\
++[	-5.91338622, -0.00292362, 0.00170052, 6.91046261, 0.99079659, 0.99537586, 0.48204608],\
++[	-5.91453559, -0.00292139, 0.00169949, 6.91161420, 0.99080443, 0.99537912, 0.48207936],\
++[	-5.91568159, -0.00291917, 0.00169846, 6.91276243, 0.99081226, 0.99538238, 0.48211255],\
++[	-5.91682423, -0.00291694, 0.00169743, 6.91390729, 0.99082008, 0.99538563, 0.48214564],\
++[	-5.91796352, -0.00291472, 0.00169639, 6.91504879, 0.99082789, 0.99538888, 0.48217864],\
++[	-5.91909946, -0.00291251, 0.00169536, 6.91618695, 0.99083569, 0.99539213, 0.48221155],\
++[	-5.92023207, -0.00291029, 0.00169433, 6.91732177, 0.99084347, 0.99539537, 0.48224436],\
++[	-5.92136135, -0.00290808, 0.00169330, 6.91845327, 0.99085124, 0.99539862, 0.48227709],\
++[	-5.92248731, -0.00290587, 0.00169227, 6.91958144, 0.99085901, 0.99540186, 0.48230971],\
++[	-5.92360996, -0.00290367, 0.00169124, 6.92070629, 0.99086676, 0.99540509, 0.48234225],\
++[	-5.92472930, -0.00290146, 0.00169021, 6.92182784, 0.99087450, 0.99540833, 0.48237470],\
++[	-5.92584536, -0.00289926, 0.00168918, 6.92294610, 0.99088223, 0.99541156, 0.48240705],\
++[	-5.92695812, -0.00289706, 0.00168816, 6.92406106, 0.99088995, 0.99541479, 0.48243931],\
++[	-5.92806761, -0.00289486, 0.00168713, 6.92517274, 0.99089766, 0.99541801, 0.48247148],\
++[	-5.92917382, -0.00289267, 0.00168610, 6.92628115, 0.99090535, 0.99542123, 0.48250356],\
++[	-5.93027677, -0.00289047, 0.00168507, 6.92738630, 0.99091304, 0.99542445, 0.48253555],\
++[	-5.93137647, -0.00288828, 0.00168405, 6.92848819, 0.99092071, 0.99542767, 0.48256745],\
++[	-5.93247293, -0.00288610, 0.00168302, 6.92958683, 0.99092837, 0.99543089, 0.48259926],\
++[	-5.93356614, -0.00288391, 0.00168199, 6.93068223, 0.99093603, 0.99543410, 0.48263098],\
++[	-5.93465613, -0.00288173, 0.00168097, 6.93177440, 0.99094367, 0.99543731, 0.48266260],\
++[	-5.93574289, -0.00287955, 0.00167994, 6.93286334, 0.99095130, 0.99544051, 0.48269414],\
++[	-5.93682644, -0.00287737, 0.00167892, 6.93394907, 0.99095892, 0.99544371, 0.48272559],\
++[	-5.93790678, -0.00287519, 0.00167789, 6.93503159, 0.99096653, 0.99544692, 0.48275695],\
++[	-5.93898392, -0.00287302, 0.00167687, 6.93611091, 0.99097412, 0.99545011, 0.48278822],\
++[	-5.94005788, -0.00287085, 0.00167585, 6.93718703, 0.99098171, 0.99545331, 0.48281940],\
++[	-5.94112865, -0.00286868, 0.00167482, 6.93825997, 0.99098929, 0.99545650, 0.48285049],\
++[	-5.94219625, -0.00286651, 0.00167380, 6.93932974, 0.99099685, 0.99545969, 0.48288150],\
++[	-5.94326068, -0.00286435, 0.00167278, 6.94039634, 0.99100441, 0.99546288, 0.48291241],\
++[	-5.94432196, -0.00286218, 0.00167176, 6.94145977, 0.99101195, 0.99546606, 0.48294324],\
++[	-5.94538008, -0.00286002, 0.00167074, 6.94252006, 0.99101949, 0.99546924, 0.48297398],\
++[	-5.94643506, -0.00285787, 0.00166971, 6.94357720, 0.99102701, 0.99547242, 0.48300463],\
++[	-5.94748691, -0.00285571, 0.00166869, 6.94463120, 0.99103452, 0.99547559, 0.48303520],\
++[	-5.94853563, -0.00285356, 0.00166767, 6.94568207, 0.99104202, 0.99547877, 0.48306568],\
++[	-5.94958124, -0.00285141, 0.00166666, 6.94672983, 0.99104951, 0.99548194, 0.48309607],\
++[	-5.95062373, -0.00284926, 0.00166564, 6.94777447, 0.99105699, 0.99548510, 0.48312637],\
++[	-5.95166312, -0.00284711, 0.00166462, 6.94881600, 0.99106446, 0.99548827, 0.48315659],\
++[	-5.95269941, -0.00284497, 0.00166360, 6.94985444, 0.99107192, 0.99549143, 0.48318672],\
++[	-5.95373262, -0.00284283, 0.00166258, 6.95088979, 0.99107937, 0.99549459, 0.48321676],\
++[	-5.95476275, -0.00284069, 0.00166156, 6.95192206, 0.99108681, 0.99549775, 0.48324672],\
++[	-5.95578980, -0.00283855, 0.00166055, 6.95295125, 0.99109423, 0.99550090, 0.48327660],\
++[	-5.95681380, -0.00283642, 0.00165953, 6.95397738, 0.99110165, 0.99550405, 0.48330638],\
++[	-5.95783474, -0.00283429, 0.00165852, 6.95500045, 0.99110906, 0.99550720, 0.48333609],\
++[	-5.95885262, -0.00283216, 0.00165750, 6.95602047, 0.99111645, 0.99551034, 0.48336571],\
++[	-5.95986747, -0.00283003, 0.00165648, 6.95703744, 0.99112384, 0.99551348, 0.48339524],\
++[	-5.96087929, -0.00282791, 0.00165547, 6.95805138, 0.99113121, 0.99551662, 0.48342469],\
++[	-5.96188808, -0.00282578, 0.00165446, 6.95906230, 0.99113858, 0.99551976, 0.48345405],\
++[	-5.96289385, -0.00282366, 0.00165344, 6.96007019, 0.99114593, 0.99552290, 0.48348333],\
++[	-5.96389662, -0.00282154, 0.00165243, 6.96107507, 0.99115327, 0.99552603, 0.48351252],\
++[	-5.96489638, -0.00281943, 0.00165142, 6.96207695, 0.99116061, 0.99552916, 0.48354163],\
++[	-5.96589315, -0.00281732, 0.00165040, 6.96307584, 0.99116793, 0.99553228, 0.48357066],\
++[	-5.96688693, -0.00281520, 0.00164939, 6.96407173, 0.99117524, 0.99553540, 0.48359961],\
++[	-5.96787774, -0.00281310, 0.00164838, 6.96506464, 0.99118255, 0.99553852, 0.48362846],\
++[	-5.96886557, -0.00281099, 0.00164737, 6.96605458, 0.99118984, 0.99554164, 0.48365724],\
++[	-5.96985044, -0.00280888, 0.00164636, 6.96704156, 0.99119712, 0.99554476, 0.48368594],\
++[	-5.97083235, -0.00280678, 0.00164535, 6.96802557, 0.99120439, 0.99554787, 0.48371455],\
++[	-5.97181132, -0.00280468, 0.00164434, 6.96900664, 0.99121165, 0.99555098, 0.48374308],\
++[	-5.97278734, -0.00280258, 0.00164333, 6.96998476, 0.99121891, 0.99555409, 0.48377153],\
++[	-5.97376044, -0.00280049, 0.00164232, 6.97095995, 0.99122615, 0.99555719, 0.48379989],\
++[	-5.97473060, -0.00279840, 0.00164131, 6.97193221, 0.99123338, 0.99556029, 0.48382818],\
++[	-5.97569785, -0.00279631, 0.00164031, 6.97290155, 0.99124060, 0.99556339, 0.48385638],\
++[	-5.97666219, -0.00279422, 0.00163930, 6.97386797, 0.99124781, 0.99556648, 0.48388450],\
++[	-5.97762362, -0.00279213, 0.00163829, 6.97483149, 0.99125501, 0.99556958, 0.48391254],\
++[	-5.97858216, -0.00279005, 0.00163729, 6.97579212, 0.99126220, 0.99557267, 0.48394050],\
++[	-5.97953782, -0.00278796, 0.00163628, 6.97674985, 0.99126938, 0.99557576, 0.48396837],\
++[	-5.98049059, -0.00278589, 0.00163527, 6.97770470, 0.99127655, 0.99557884, 0.48399617],\
++[	-5.98144049, -0.00278381, 0.00163427, 6.97865668, 0.99128371, 0.99558192, 0.48402389],\
++[	-5.98238752, -0.00278173, 0.00163326, 6.97960579, 0.99129087, 0.99558500, 0.48405152],\
++[	-5.98333170, -0.00277966, 0.00163226, 6.98055204, 0.99129801, 0.99558808, 0.48407908],\
++[	-5.98427302, -0.00277759, 0.00163126, 6.98149543, 0.99130514, 0.99559115, 0.48410655],\
++[	-5.98521150, -0.00277552, 0.00163025, 6.98243598, 0.99131226, 0.99559422, 0.48413395],\
++[	-5.98614715, -0.00277346, 0.00162925, 6.98337369, 0.99131937, 0.99559729, 0.48416127],\
++[	-5.98707997, -0.00277139, 0.00162825, 6.98430858, 0.99132647, 0.99560036, 0.48418851],\
++[	-5.98800996, -0.00276933, 0.00162725, 6.98524063, 0.99133356, 0.99560342, 0.48421567],\
++[	-5.98893715, -0.00276727, 0.00162625, 6.98616988, 0.99134064, 0.99560648, 0.48424275],\
++[	-5.98986153, -0.00276521, 0.00162525, 6.98709631, 0.99134771, 0.99560954, 0.48426975],\
++[	-5.99078310, -0.00276316, 0.00162425, 6.98801995, 0.99135477, 0.99561259, 0.48429667],\
++[	-5.99170189, -0.00276111, 0.00162325, 6.98894079, 0.99136183, 0.99561565, 0.48432352],\
++[	-5.99261789, -0.00275906, 0.00162225, 6.98985884, 0.99136887, 0.99561870, 0.48435028],\
++[	-5.99353112, -0.00275701, 0.00162125, 6.99077411, 0.99137590, 0.99562174, 0.48437697],\
++[	-5.99444158, -0.00275496, 0.00162025, 6.99168662, 0.99138292, 0.99562479, 0.48440358],\
++[	-5.99534927, -0.00275292, 0.00161925, 6.99259635, 0.99138994, 0.99562783, 0.48443012],\
++[	-5.99625421, -0.00275088, 0.00161826, 6.99350334, 0.99139694, 0.99563087, 0.48445657],\
++[	-5.99715640, -0.00274884, 0.00161726, 6.99440757, 0.99140393, 0.99563390, 0.48448295],\
++[	-5.99805585, -0.00274680, 0.00161626, 6.99530906, 0.99141092, 0.99563694, 0.48450926],\
++[	-5.99895257, -0.00274476, 0.00161527, 6.99620781, 0.99141789, 0.99563997, 0.48453548],\
++[	-5.99984656, -0.00274273, 0.00161427, 6.99710383, 0.99142485, 0.99564299, 0.48456163],\
++[	-6.00073784, -0.00274070, 0.00161328, 6.99799714, 0.99143181, 0.99564602, 0.48458771],\
++[	-6.00162640, -0.00273867, 0.00161228, 6.99888773, 0.99143875, 0.99564904, 0.48461370],\
++[	-6.00251225, -0.00273665, 0.00161129, 6.99977561, 0.99144569, 0.99565206, 0.48463962],\
++[	-6.00339541, -0.00273462, 0.00161030, 7.00066079, 0.99145261, 0.99565508, 0.48466547],\
++[	-6.00427588, -0.00273260, 0.00160931, 7.00154328, 0.99145953, 0.99565809, 0.48469124],\
++[	-6.00515367, -0.00273058, 0.00160831, 7.00242309, 0.99146644, 0.99566111, 0.48471693],\
++[	-6.00602878, -0.00272856, 0.00160732, 7.00330021, 0.99147334, 0.99566411, 0.48474255],\
++[	-6.00690122, -0.00272655, 0.00160633, 7.00417467, 0.99148022, 0.99566712, 0.48476810],\
++[	-6.00777100, -0.00272454, 0.00160534, 7.00504646, 0.99148710, 0.99567012, 0.48479357],\
++[	-6.00863812, -0.00272252, 0.00160435, 7.00591560, 0.99149397, 0.99567313, 0.48481896],\
++[	-6.00950260, -0.00272052, 0.00160336, 7.00678208, 0.99150083, 0.99567612, 0.48484429],\
++[	-6.01036444, -0.00271851, 0.00160237, 7.00764593, 0.99150768, 0.99567912, 0.48486953],\
++[	-6.01122364, -0.00271651, 0.00160138, 7.00850713, 0.99151452, 0.99568211, 0.48489471],\
++[	-6.01208022, -0.00271450, 0.00160039, 7.00936571, 0.99152135, 0.99568510, 0.48491980],\
++[	-6.01293417, -0.00271250, 0.00159941, 7.01022167, 0.99152817, 0.99568809, 0.48494483],\
++[	-6.01378552, -0.00271051, 0.00159842, 7.01107501, 0.99153498, 0.99569107, 0.48496978],\
++[	-6.01463426, -0.00270851, 0.00159743, 7.01192575, 0.99154179, 0.99569406, 0.48499466],\
++[	-6.01548040, -0.00270652, 0.00159645, 7.01277388, 0.99154858, 0.99569704, 0.48501947],\
++[	-6.01632394, -0.00270453, 0.00159546, 7.01361942, 0.99155537, 0.99570001, 0.48504420],\
++[	-6.01716491, -0.00270254, 0.00159448, 7.01446237, 0.99156214, 0.99570299, 0.48506886],\
++[	-6.01800329, -0.00270055, 0.00159349, 7.01530274, 0.99156891, 0.99570596, 0.48509345],\
++[	-6.01883911, -0.00269856, 0.00159251, 7.01614055, 0.99157566, 0.99570893, 0.48511797],\
++[	-6.01967236, -0.00269658, 0.00159153, 7.01697578, 0.99158241, 0.99571189, 0.48514241],\
++[	-6.02050306, -0.00269460, 0.00159054, 7.01780845, 0.99158915, 0.99571486, 0.48516678],\
++[	-6.02133120, -0.00269262, 0.00158956, 7.01863858, 0.99159588, 0.99571782, 0.48519108],\
++[	-6.02215680, -0.00269065, 0.00158858, 7.01946615, 0.99160260, 0.99572077, 0.48521531],\
++[	-6.02297987, -0.00268867, 0.00158760, 7.02029119, 0.99160931, 0.99572373, 0.48523947],\
++[	-6.02380040, -0.00268670, 0.00158662, 7.02111370, 0.99161601, 0.99572668, 0.48526355],\
++[	-6.02461841, -0.00268473, 0.00158564, 7.02193368, 0.99162270, 0.99572963, 0.48528757],\
++[	-6.02543391, -0.00268276, 0.00158466, 7.02275115, 0.99162938, 0.99573258, 0.48531151],\
++[	-6.02624690, -0.00268080, 0.00158368, 7.02356610, 0.99163606, 0.99573552, 0.48533539],\
++[	-6.02705738, -0.00267883, 0.00158270, 7.02437855, 0.99164272, 0.99573847, 0.48535919],\
++[	-6.02786537, -0.00267687, 0.00158172, 7.02518850, 0.99164938, 0.99574141, 0.48538292],\
++[	-6.02867087, -0.00267491, 0.00158074, 7.02599596, 0.99165602, 0.99574434, 0.48540659],\
++[	-6.02947389, -0.00267296, 0.00157977, 7.02680093, 0.99166266, 0.99574728, 0.48543018],\
++[	-6.03027443, -0.00267100, 0.00157879, 7.02760343, 0.99166929, 0.99575021, 0.48545370],\
++[	-6.03107251, -0.00266905, 0.00157781, 7.02840346, 0.99167591, 0.99575314, 0.48547716],\
++[	-6.03186812, -0.00266710, 0.00157684, 7.02920102, 0.99168252, 0.99575606, 0.48550054],\
++[	-6.03266127, -0.00266515, 0.00157586, 7.02999612, 0.99168912, 0.99575899, 0.48552386],\
++[	-6.03345198, -0.00266320, 0.00157489, 7.03078878, 0.99169571, 0.99576191, 0.48554710],\
++[	-6.03424025, -0.00266126, 0.00157391, 7.03157899, 0.99170230, 0.99576483, 0.48557028],\
++[	-6.03502608, -0.00265932, 0.00157294, 7.03236676, 0.99170887, 0.99576774, 0.48559339],\
++[	-6.03580948, -0.00265738, 0.00157197, 7.03315210, 0.99171544, 0.99577065, 0.48561643],\
++[	-6.03659046, -0.00265544, 0.00157100, 7.03393502, 0.99172199, 0.99577356, 0.48563940],\
++[	-6.03736903, -0.00265350, 0.00157002, 7.03471552, 0.99172854, 0.99577647, 0.48566231],\
++[	-6.03814518, -0.00265157, 0.00156905, 7.03549361, 0.99173508, 0.99577938, 0.48568514],\
++[	-6.03891894, -0.00264964, 0.00156808, 7.03626930, 0.99174161, 0.99578228, 0.48570791],\
++[	-6.03969029, -0.00264771, 0.00156711, 7.03704258, 0.99174813, 0.99578518, 0.48573061],\
++[	-6.04045926, -0.00264578, 0.00156614, 7.03781348, 0.99175464, 0.99578807, 0.48575324],\
++[	-6.04122585, -0.00264386, 0.00156517, 7.03858199, 0.99176115, 0.99579097, 0.48577581],\
++[	-6.04199006, -0.00264193, 0.00156421, 7.03934813, 0.99176764, 0.99579386, 0.48579831],\
++[	-6.04275190, -0.00264001, 0.00156324, 7.04011189, 0.99177413, 0.99579675, 0.48582075],\
++[	-6.04351138, -0.00263809, 0.00156227, 7.04087328, 0.99178061, 0.99579964, 0.48584311],\
++[	-6.04426850, -0.00263618, 0.00156130, 7.04163232, 0.99178707, 0.99580252, 0.48586541],\
++[	-6.04502327, -0.00263426, 0.00156034, 7.04238901, 0.99179353, 0.99580540, 0.48588765],\
++[	-6.04577570, -0.00263235, 0.00155937, 7.04314335, 0.99179998, 0.99580828, 0.48590981],\
++[	-6.04652579, -0.00263044, 0.00155841, 7.04389535, 0.99180643, 0.99581115, 0.48593191],\
++[	-6.04727354, -0.00262853, 0.00155744, 7.04464502, 0.99181286, 0.99581403, 0.48595395],\
++[	-6.04801898, -0.00262662, 0.00155648, 7.04539236, 0.99181929, 0.99581690, 0.48597592],\
++[	-6.04876210, -0.00262472, 0.00155552, 7.04613738, 0.99182570, 0.99581977, 0.48599782],\
++[	-6.04950290, -0.00262282, 0.00155455, 7.04688009, 0.99183211, 0.99582263, 0.48601966],\
++[	-6.05024140, -0.00262092, 0.00155359, 7.04762049, 0.99183851, 0.99582549, 0.48604144],\
++[	-6.05097760, -0.00261902, 0.00155263, 7.04835858, 0.99184490, 0.99582835, 0.48606315],\
++[	-6.05171151, -0.00261712, 0.00155167, 7.04909439, 0.99185128, 0.99583121, 0.48608479],\
++[	-6.05244313, -0.00261523, 0.00155071, 7.04982791, 0.99185765, 0.99583407, 0.48610637],\
++[	-6.05317248, -0.00261334, 0.00154975, 7.05055914, 0.99186402, 0.99583692, 0.48612789],\
++[	-6.05389955, -0.00261145, 0.00154879, 7.05128810, 0.99187037, 0.99583977, 0.48614934],\
++[	-6.05462435, -0.00260956, 0.00154783, 7.05201479, 0.99187672, 0.99584261, 0.48617073],\
++[	-6.05534689, -0.00260767, 0.00154687, 7.05273922, 0.99188306, 0.99584546, 0.48619205],\
++[	-6.05606718, -0.00260579, 0.00154591, 7.05346139, 0.99188939, 0.99584830, 0.48621331],\
++[	-6.05678521, -0.00260391, 0.00154495, 7.05418131, 0.99189571, 0.99585114, 0.48623450],\
++[	-6.05750101, -0.00260203, 0.00154400, 7.05489898, 0.99190203, 0.99585398, 0.48625564],\
++[	-6.05821457, -0.00260015, 0.00154304, 7.05561442, 0.99190833, 0.99585681, 0.48627671],\
++[	-6.05892590, -0.00259827, 0.00154209, 7.05632763, 0.99191463, 0.99585964, 0.48629772],\
++[	-6.05963501, -0.00259640, 0.00154113, 7.05703861, 0.99192092, 0.99586247, 0.48631866],\
++[	-6.06034190, -0.00259453, 0.00154018, 7.05774737, 0.99192720, 0.99586529, 0.48633954],\
++[	-6.06104657, -0.00259266, 0.00153922, 7.05845392, 0.99193347, 0.99586812, 0.48636036],\
++[	-6.06174905, -0.00259079, 0.00153827, 7.05915826, 0.99193973, 0.99587094, 0.48638112],\
++[	-6.06244932, -0.00258893, 0.00153732, 7.05986040, 0.99194598, 0.99587376, 0.48640181],\
++[	-6.06314740, -0.00258706, 0.00153637, 7.06056034, 0.99195223, 0.99587657, 0.48642244],\
++[	-6.06384330, -0.00258520, 0.00153541, 7.06125810, 0.99195847, 0.99587938, 0.48644301],\
++[	-6.06453701, -0.00258334, 0.00153446, 7.06195367, 0.99196470, 0.99588220, 0.48646352],\
++[	-6.06522855, -0.00258148, 0.00153351, 7.06264707, 0.99197092, 0.99588500, 0.48648397],\
++[	-6.06591793, -0.00257963, 0.00153256, 7.06333830, 0.99197713, 0.99588781, 0.48650436],\
++[	-6.06660514, -0.00257778, 0.00153161, 7.06402736, 0.99198334, 0.99589061, 0.48652468],\
++[	-6.06729019, -0.00257592, 0.00153067, 7.06471427, 0.99198953, 0.99589341, 0.48654494],\
++[	-6.06797309, -0.00257408, 0.00152972, 7.06539902, 0.99199572, 0.99589621, 0.48656515],\
++[	-6.06865385, -0.00257223, 0.00152877, 7.06608163, 0.99200190, 0.99589900, 0.48658529],\
++[	-6.06933248, -0.00257038, 0.00152782, 7.06676209, 0.99200807, 0.99590179, 0.48660537],\
++[	-6.07000896, -0.00256854, 0.00152688, 7.06744043, 0.99201424, 0.99590458, 0.48662539],\
++[	-6.07068333, -0.00256670, 0.00152593, 7.06811663, 0.99202039, 0.99590737, 0.48664535],\
++[	-6.07135557, -0.00256486, 0.00152499, 7.06879071, 0.99202654, 0.99591015, 0.48666525],\
++[	-6.07202570, -0.00256302, 0.00152404, 7.06946268, 0.99203268, 0.99591294, 0.48668509],\
++[	-6.07269372, -0.00256119, 0.00152310, 7.07013254, 0.99203881, 0.99591572, 0.48670487],\
++[	-6.07335964, -0.00255935, 0.00152215, 7.07080029, 0.99204493, 0.99591849, 0.48672460],\
++[	-6.07402346, -0.00255752, 0.00152121, 7.07146594, 0.99205104, 0.99592127, 0.48674426],\
++[	-6.07468520, -0.00255569, 0.00152027, 7.07212950, 0.99205715, 0.99592404, 0.48676386],\
++[	-6.07534484, -0.00255387, 0.00151933, 7.07279098, 0.99206325, 0.99592681, 0.48678341],\
++[	-6.07600241, -0.00255204, 0.00151839, 7.07345037, 0.99206934, 0.99592957, 0.48680289],\
++[	-6.07665791, -0.00255022, 0.00151745, 7.07410769, 0.99207542, 0.99593234, 0.48682232],\
++[	-6.07731134, -0.00254840, 0.00151651, 7.07476294, 0.99208149, 0.99593510, 0.48684169],\
++[	-6.07796271, -0.00254658, 0.00151557, 7.07541613, 0.99208756, 0.99593786, 0.48686100],\
++[	-6.07861202, -0.00254476, 0.00151463, 7.07606726, 0.99209362, 0.99594061, 0.48688025],\
++[	-6.07925928, -0.00254294, 0.00151369, 7.07671634, 0.99209967, 0.99594336, 0.48689944],\
++[	-6.07990450, -0.00254113, 0.00151275, 7.07736337, 0.99210571, 0.99594612, 0.48691858],\
++[	-6.08054769, -0.00253932, 0.00151182, 7.07800837, 0.99211174, 0.99594886, 0.48693766],\
++[	-6.08118884, -0.00253751, 0.00151088, 7.07865133, 0.99211777, 0.99595161, 0.48695668],\
++[	-6.08182796, -0.00253570, 0.00150994, 7.07929226, 0.99212379, 0.99595435, 0.48697564],\
++[	-6.08246507, -0.00253390, 0.00150901, 7.07993117, 0.99212980, 0.99595709, 0.48699454],\
++[	-6.08310016, -0.00253210, 0.00150807, 7.08056806, 0.99213580, 0.99595983, 0.48701339],\
++[	-6.08373324, -0.00253029, 0.00150714, 7.08120294, 0.99214179, 0.99596257, 0.48703218],\
++[	-6.08436431, -0.00252849, 0.00150621, 7.08183582, 0.99214778, 0.99596530, 0.48705092],\
++[	-6.08499339, -0.00252670, 0.00150527, 7.08246669, 0.99215376, 0.99596803, 0.48706960],\
++[	-6.08562048, -0.00252490, 0.00150434, 7.08309558, 0.99215973, 0.99597076, 0.48708821],\
++[	-6.08624558, -0.00252311, 0.00150341, 7.08372247, 0.99216569, 0.99597348, 0.48710678],\
++[	-6.08686870, -0.00252132, 0.00150248, 7.08434738, 0.99217164, 0.99597620, 0.48712529],\
++[	-6.08748985, -0.00251953, 0.00150155, 7.08497032, 0.99217759, 0.99597892, 0.48714374],\
++[	-6.08810902, -0.00251774, 0.00150062, 7.08559128, 0.99218353, 0.99598164, 0.48716214],\
++[	-6.08872624, -0.00251595, 0.00149969, 7.08621028, 0.99218946, 0.99598436, 0.48718048],\
++[	-6.08934149, -0.00251417, 0.00149876, 7.08682732, 0.99219538, 0.99598707, 0.48719876],\
++[	-6.08995479, -0.00251239, 0.00149784, 7.08744241, 0.99220130, 0.99598978, 0.48721699],\
++[	-6.09056615, -0.00251061, 0.00149691, 7.08805554, 0.99220721, 0.99599248, 0.48723517],\
++[	-6.09117556, -0.00250883, 0.00149598, 7.08866673, 0.99221310, 0.99599519, 0.48725329],\
++[	-6.09178304, -0.00250705, 0.00149506, 7.08927599, 0.99221900, 0.99599789, 0.48727135],\
++[	-6.09238859, -0.00250528, 0.00149413, 7.08988331, 0.99222488, 0.99600059, 0.48728936],\
++[	-6.09299221, -0.00250351, 0.00149320, 7.09048871, 0.99223076, 0.99600329, 0.48730732],\
++[	-6.09359392, -0.00250174, 0.00149228, 7.09109218, 0.99223663, 0.99600598, 0.48732522],\
++[	-6.09419371, -0.00249997, 0.00149136, 7.09169374, 0.99224249, 0.99600867, 0.48734306],\
++[	-6.09479159, -0.00249820, 0.00149043, 7.09229339, 0.99224834, 0.99601136, 0.48736085],\
++[	-6.09538757, -0.00249644, 0.00148951, 7.09289113, 0.99225419, 0.99601405, 0.48737859],\
++[	-6.09598165, -0.00249468, 0.00148859, 7.09348698, 0.99226003, 0.99601673, 0.48739628],\
++[	-6.09657385, -0.00249292, 0.00148767, 7.09408093, 0.99226586, 0.99601942, 0.48741390],\
++[	-6.09716415, -0.00249116, 0.00148675, 7.09467299, 0.99227168, 0.99602210, 0.48743148],\
++[	-6.09775257, -0.00248940, 0.00148583, 7.09526317, 0.99227749, 0.99602477, 0.48744900],\
++[	-6.09833912, -0.00248765, 0.00148491, 7.09585148, 0.99228330, 0.99602745, 0.48746647],\
++[	-6.09892380, -0.00248589, 0.00148399, 7.09643791, 0.99228910, 0.99603012, 0.48748389],\
++[	-6.09950662, -0.00248414, 0.00148307, 7.09702248, 0.99229489, 0.99603279, 0.48750125],\
++[	-6.10008757, -0.00248239, 0.00148215, 7.09760518, 0.99230068, 0.99603545, 0.48751856],\
++[	-6.10066667, -0.00248065, 0.00148124, 7.09818603, 0.99230646, 0.99603812, 0.48753582],\
++[	-6.10124393, -0.00247890, 0.00148032, 7.09876503, 0.99231223, 0.99604078, 0.48755302],\
++[	-6.10181934, -0.00247716, 0.00147941, 7.09934218, 0.99231799, 0.99604344, 0.48757018],\
++[	-6.10239291, -0.00247542, 0.00147849, 7.09991749, 0.99232374, 0.99604609, 0.48758728],\
++[	-6.10296465, -0.00247368, 0.00147758, 7.10049097, 0.99232949, 0.99604875, 0.48760432],\
++[	-6.10353456, -0.00247194, 0.00147666, 7.10106262, 0.99233523, 0.99605140, 0.48762132],\
++[	-6.10410265, -0.00247020, 0.00147575, 7.10163245, 0.99234096, 0.99605405, 0.48763826],\
++[	-6.10466892, -0.00246847, 0.00147484, 7.10220045, 0.99234669, 0.99605669, 0.48765516],\
++[	-6.10523338, -0.00246674, 0.00147393, 7.10276665, 0.99235240, 0.99605934, 0.48767200],\
++[	-6.10579604, -0.00246501, 0.00147301, 7.10333103, 0.99235811, 0.99606198, 0.48768879],\
++[	-6.10635689, -0.00246328, 0.00147210, 7.10389362, 0.99236382, 0.99606462, 0.48770552],\
++[	-6.10691595, -0.00246155, 0.00147119, 7.10445440, 0.99236951, 0.99606725, 0.48772221],\
++[	-6.10747322, -0.00245983, 0.00147028, 7.10501339, 0.99237520, 0.99606989, 0.48773885],\
++[	-6.10802871, -0.00245811, 0.00146937, 7.10557060, 0.99238088, 0.99607252, 0.48775543],\
++[	-6.10858241, -0.00245639, 0.00146847, 7.10612603, 0.99238655, 0.99607515, 0.48777197],\
++[	-6.10913434, -0.00245467, 0.00146756, 7.10667967, 0.99239222, 0.99607777, 0.48778845],\
++[	-6.10968450, -0.00245295, 0.00146665, 7.10723155, 0.99239787, 0.99608040, 0.48780488],\
++[	-6.11023289, -0.00245123, 0.00146575, 7.10778166, 0.99240353, 0.99608302, 0.48782127],\
++[	-6.11077953, -0.00244952, 0.00146484, 7.10833001, 0.99240917, 0.99608564, 0.48783760],\
++[	-6.11132441, -0.00244781, 0.00146393, 7.10887660, 0.99241480, 0.99608825, 0.48785388],\
++[	-6.11186754, -0.00244610, 0.00146303, 7.10942144, 0.99242043, 0.99609087, 0.48787012],\
++[	-6.11240893, -0.00244439, 0.00146213, 7.10996454, 0.99242605, 0.99609348, 0.48788630],\
++[	-6.11294858, -0.00244269, 0.00146122, 7.11050589, 0.99243167, 0.99609609, 0.48790243],\
++[	-6.11348649, -0.00244098, 0.00146032, 7.11104551, 0.99243728, 0.99609869, 0.48791852],\
++[	-6.11402268, -0.00243928, 0.00145942, 7.11158340, 0.99244288, 0.99610130, 0.48793455],\
++[	-6.11455714, -0.00243758, 0.00145852, 7.11211956, 0.99244847, 0.99610390, 0.48795053],\
++[	-6.11508989, -0.00243588, 0.00145762, 7.11265400, 0.99245405, 0.99610650, 0.48796647],\
++[	-6.11562092, -0.00243419, 0.00145672, 7.11318673, 0.99245963, 0.99610909, 0.48798236],\
++[	-6.11615024, -0.00243249, 0.00145582, 7.11371775, 0.99246520, 0.99611169, 0.48799820],\
++[	-6.11667786, -0.00243080, 0.00145492, 7.11424706, 0.99247077, 0.99611428, 0.48801399],\
++[	-6.11720378, -0.00242911, 0.00145402, 7.11477467, 0.99247632, 0.99611687, 0.48802973],\
++[	-6.11772800, -0.00242742, 0.00145312, 7.11530058, 0.99248187, 0.99611945, 0.48804543],\
++[	-6.11825054, -0.00242574, 0.00145223, 7.11582481, 0.99248741, 0.99612204, 0.48806107],\
++[	-6.11877140, -0.00242405, 0.00145133, 7.11634735, 0.99249295, 0.99612462, 0.48807667],\
++[	-6.11929057, -0.00242237, 0.00145043, 7.11686820, 0.99249847, 0.99612720, 0.48809222],\
++[	-6.11980807, -0.00242069, 0.00144954, 7.11738739, 0.99250400, 0.99612978, 0.48810772],\
++[	-6.12032390, -0.00241901, 0.00144864, 7.11790490, 0.99250951, 0.99613235, 0.48812317],\
++[	-6.12083807, -0.00241733, 0.00144775, 7.11842074, 0.99251501, 0.99613492, 0.48813858],\
++[	-6.12135058, -0.00241565, 0.00144686, 7.11893493, 0.99252051, 0.99613749, 0.48815394],\
++[	-6.12186144, -0.00241398, 0.00144597, 7.11944746, 0.99252601, 0.99614006, 0.48816925],\
++[	-6.12237064, -0.00241231, 0.00144507, 7.11995834, 0.99253149, 0.99614262, 0.48818451],\
++[	-6.12287820, -0.00241064, 0.00144418, 7.12046757, 0.99253697, 0.99614518, 0.48819973],\
++[	-6.12338412, -0.00240897, 0.00144329, 7.12097516, 0.99254244, 0.99614774, 0.48821490],\
++[	-6.12388841, -0.00240730, 0.00144240, 7.12148111, 0.99254790, 0.99615030, 0.48823002],\
++[	-6.12439107, -0.00240563, 0.00144151, 7.12198543, 0.99255336, 0.99615285, 0.48824510],\
++[	-6.12489210, -0.00240397, 0.00144062, 7.12248813, 0.99255881, 0.99615540, 0.48826013],\
++[	-6.12539151, -0.00240231, 0.00143974, 7.12298920, 0.99256425, 0.99615795, 0.48827512],\
++[	-6.12588931, -0.00240065, 0.00143885, 7.12348866, 0.99256969, 0.99616050, 0.48829005],\
++[	-6.12638549, -0.00239899, 0.00143796, 7.12398650, 0.99257512, 0.99616304, 0.48830495],\
++[	-6.12688007, -0.00239734, 0.00143708, 7.12448273, 0.99258054, 0.99616559, 0.48831979],\
++[	-6.12737305, -0.00239568, 0.00143619, 7.12497736, 0.99258596, 0.99616813, 0.48833460],\
++[	-6.12786443, -0.00239403, 0.00143531, 7.12547040, 0.99259136, 0.99617066, 0.48834935],\
++[	-6.12835422, -0.00239238, 0.00143442, 7.12596184, 0.99259676, 0.99617320, 0.48836406],\
++[	-6.12884242, -0.00239073, 0.00143354, 7.12645169, 0.99260216, 0.99617573, 0.48837872],\
++[	-6.12932904, -0.00238908, 0.00143266, 7.12693996, 0.99260755, 0.99617826, 0.48839334],\
++[	-6.12981408, -0.00238744, 0.00143177, 7.12742664, 0.99261293, 0.99618079, 0.48840792],\
++[	-6.13029755, -0.00238580, 0.00143089, 7.12791176, 0.99261830, 0.99618331, 0.48842244],\
++[	-6.13077945, -0.00238416, 0.00143001, 7.12839530, 0.99262367, 0.99618583, 0.48843693],\
++[	-6.13125979, -0.00238252, 0.00142913, 7.12887728, 0.99262903, 0.99618835, 0.48845136],\
++[	-6.13173857, -0.00238088, 0.00142825, 7.12935769, 0.99263438, 0.99619087, 0.48846576],\
++[	-6.13221579, -0.00237924, 0.00142737, 7.12983655, 0.99263972, 0.99619339, 0.48848011],\
++[	-6.13269147, -0.00237761, 0.00142649, 7.13031386, 0.99264506, 0.99619590, 0.48849441],\
++[	-6.13316560, -0.00237598, 0.00142562, 7.13078962, 0.99265040, 0.99619841, 0.48850867],\
++[	-6.13363819, -0.00237434, 0.00142474, 7.13126384, 0.99265572, 0.99620092, 0.48852289],\
++[	-6.13410924, -0.00237272, 0.00142386, 7.13173652, 0.99266104, 0.99620342, 0.48853706],\
++[	-6.13457876, -0.00237109, 0.00142299, 7.13220767, 0.99266635, 0.99620593, 0.48855119],\
++[	-6.13504676, -0.00236946, 0.00142211, 7.13267729, 0.99267166, 0.99620843, 0.48856528],\
++[	-6.13551323, -0.00236784, 0.00142124, 7.13314539, 0.99267696, 0.99621092, 0.48857932],\
++[	-6.13597818, -0.00236622, 0.00142036, 7.13361197, 0.99268225, 0.99621342, 0.48859332],\
++[	-6.13644163, -0.00236460, 0.00141949, 7.13407703, 0.99268753, 0.99621591, 0.48860727],\
++[	-6.13690356, -0.00236298, 0.00141862, 7.13454058, 0.99269281, 0.99621840, 0.48862118],\
++[	-6.13736399, -0.00236136, 0.00141774, 7.13500263, 0.99269808, 0.99622089, 0.48863505],\
++[	-6.13782292, -0.00235975, 0.00141687, 7.13546317, 0.99270335, 0.99622338, 0.48864888],\
++[	-6.13828035, -0.00235814, 0.00141600, 7.13592222, 0.99270861, 0.99622586, 0.48866266],\
++[	-6.13873630, -0.00235652, 0.00141513, 7.13637977, 0.99271386, 0.99622834, 0.48867640],\
++[	-6.13919076, -0.00235492, 0.00141426, 7.13683584, 0.99271910, 0.99623082, 0.48869010],\
++[	-6.13964373, -0.00235331, 0.00141339, 7.13729042, 0.99272434, 0.99623330, 0.48870375],\
++[	-6.14009523, -0.00235170, 0.00141253, 7.13774353, 0.99272957, 0.99623577, 0.48871736],\
++[	-6.14054526, -0.00235010, 0.00141166, 7.13819516, 0.99273480, 0.99623824, 0.48873093],\
++[	-6.14099381, -0.00234850, 0.00141079, 7.13864532, 0.99274001, 0.99624071, 0.48874446],\
++[	-6.14144091, -0.00234689, 0.00140993, 7.13909401, 0.99274523, 0.99624318, 0.48875794],\
++[	-6.14188654, -0.00234530, 0.00140906, 7.13954125, 0.99275043, 0.99624564, 0.48877139],\
++[	-6.14233072, -0.00234370, 0.00140820, 7.13998702, 0.99275563, 0.99624811, 0.48878479],\
++[	-6.14277345, -0.00234210, 0.00140733, 7.14043134, 0.99276082, 0.99625057, 0.48879815],\
++[	-6.14321473, -0.00234051, 0.00140647, 7.14087422, 0.99276601, 0.99625302, 0.48881147],\
++[	-6.14365457, -0.00233892, 0.00140561, 7.14131565, 0.99277118, 0.99625548, 0.48882475],\
++[	-6.14409297, -0.00233733, 0.00140474, 7.14175564, 0.99277636, 0.99625793, 0.48883798],\
++[	-6.14452994, -0.00233574, 0.00140388, 7.14219420, 0.99278152, 0.99626038, 0.48885118],\
++[	-6.14496548, -0.00233415, 0.00140302, 7.14263132, 0.99278668, 0.99626283, 0.48886433],\
++[	-6.14539959, -0.00233257, 0.00140216, 7.14306702, 0.99279183, 0.99626527, 0.48887745],\
++[	-6.14583228, -0.00233098, 0.00140130, 7.14350130, 0.99279698, 0.99626772, 0.48889052],\
++[	-6.14626356, -0.00232940, 0.00140044, 7.14393416, 0.99280212, 0.99627016, 0.48890355],\
++[	-6.14669342, -0.00232782, 0.00139958, 7.14436560, 0.99280725, 0.99627259, 0.48891654],\
++[	-6.14712188, -0.00232625, 0.00139873, 7.14479564, 0.99281238, 0.99627503, 0.48892949],\
++[	-6.14754894, -0.00232467, 0.00139787, 7.14522427, 0.99281750, 0.99627746, 0.48894240],\
++[	-6.14797459, -0.00232309, 0.00139701, 7.14565150, 0.99282261, 0.99627989, 0.48895527],\
++[	-6.14839885, -0.00232152, 0.00139616, 7.14607733, 0.99282772, 0.99628232, 0.48896810],\
++[	-6.14882172, -0.00231995, 0.00139530, 7.14650177, 0.99283282, 0.99628475, 0.48898089],\
++[	-6.14924320, -0.00231838, 0.00139445, 7.14692482, 0.99283791, 0.99628717, 0.48899364],\
++[	-6.14966330, -0.00231681, 0.00139359, 7.14734649, 0.99284300, 0.99628959, 0.48900634],\
++[	-6.15008202, -0.00231525, 0.00139274, 7.14776677, 0.99284808, 0.99629201, 0.48901902],\
++[	-6.15049937, -0.00231368, 0.00139189, 7.14818569, 0.99285316, 0.99629443, 0.48903165],\
++[	-6.15091535, -0.00231212, 0.00139104, 7.14860323, 0.99285823, 0.99629684, 0.48904424],\
++[	-6.15132996, -0.00231056, 0.00139018, 7.14901940, 0.99286329, 0.99629926, 0.48905679],\
++[	-6.15174321, -0.00230900, 0.00138933, 7.14943421, 0.99286834, 0.99630166, 0.48906930],\
++[	-6.15215510, -0.00230744, 0.00138848, 7.14984766, 0.99287339, 0.99630407, 0.48908178],\
++[	-6.15256564, -0.00230589, 0.00138763, 7.15025975, 0.99287844, 0.99630648, 0.48909421],\
++[	-6.15297483, -0.00230433, 0.00138679, 7.15067050, 0.99288347, 0.99630888, 0.48910661],\
++[	-6.15338268, -0.00230278, 0.00138594, 7.15107989, 0.99288850, 0.99631128, 0.48911897],\
++[	-6.15378918, -0.00230123, 0.00138509, 7.15148795, 0.99289353, 0.99631368, 0.48913128],\
++[	-6.15419435, -0.00229968, 0.00138424, 7.15189467, 0.99289855, 0.99631607, 0.48914356],\
++[	-6.15459818, -0.00229814, 0.00138340, 7.15230005, 0.99290356, 0.99631847, 0.48915581],\
++[	-6.15500069, -0.00229659, 0.00138255, 7.15270410, 0.99290856, 0.99632086, 0.48916801],\
++[	-6.15540187, -0.00229505, 0.00138171, 7.15310682, 0.99291356, 0.99632324, 0.48918017],\
++[	-6.15580173, -0.00229350, 0.00138087, 7.15350822, 0.99291855, 0.99632563, 0.48919230],\
++[	-6.15620027, -0.00229196, 0.00138002, 7.15390831, 0.99292354, 0.99632801, 0.48920439],\
++[	-6.15659750, -0.00229042, 0.00137918, 7.15430708, 0.99292852, 0.99633040, 0.48921644],\
++[	-6.15699342, -0.00228889, 0.00137834, 7.15470454, 0.99293349, 0.99633278, 0.48922846],\
++[	-6.15738804, -0.00228735, 0.00137750, 7.15510069, 0.99293846, 0.99633515, 0.48924043],\
++[	-6.15778136, -0.00228582, 0.00137666, 7.15549554, 0.99294342, 0.99633753, 0.48925237],\
++[	-6.15817338, -0.00228429, 0.00137582, 7.15588909, 0.99294838, 0.99633990, 0.48926427],\
++[	-6.15856410, -0.00228276, 0.00137498, 7.15628135, 0.99295333, 0.99634227, 0.48927613],\
++[	-6.15895354, -0.00228123, 0.00137414, 7.15667231, 0.99295827, 0.99634464, 0.48928796],\
++[	-6.15934170, -0.00227970, 0.00137330, 7.15706199, 0.99296321, 0.99634700, 0.48929975],\
++[	-6.15972857, -0.00227818, 0.00137246, 7.15745039, 0.99296814, 0.99634936, 0.48931151],\
++[	-6.16011416, -0.00227665, 0.00137162, 7.15783751, 0.99297306, 0.99635172, 0.48932322],\
++[	-6.16049848, -0.00227513, 0.00137079, 7.15822335, 0.99297798, 0.99635408, 0.48933490],\
++[	-6.16088154, -0.00227361, 0.00136995, 7.15860793, 0.99298289, 0.99635644, 0.48934654],\
++[	-6.16126332, -0.00227209, 0.00136912, 7.15899123, 0.99298780, 0.99635879, 0.48935815],\
++[	-6.16164385, -0.00227057, 0.00136828, 7.15937328, 0.99299270, 0.99636114, 0.48936972],\
++[	-6.16202312, -0.00226906, 0.00136745, 7.15975406, 0.99299759, 0.99636349, 0.48938125],\
++[	-6.16240113, -0.00226754, 0.00136662, 7.16013359, 0.99300248, 0.99636584, 0.48939275],\
++[	-6.16277790, -0.00226603, 0.00136579, 7.16051186, 0.99300736, 0.99636818, 0.48940421],\
++[	-6.16315341, -0.00226452, 0.00136495, 7.16088889, 0.99301224, 0.99637052, 0.48941563],\
++[	-6.16352769, -0.00226301, 0.00136412, 7.16126468, 0.99301711, 0.99637286, 0.48942702],\
++[	-6.16390073, -0.00226151, 0.00136329, 7.16163922, 0.99302197, 0.99637520, 0.48943837],\
++[	-6.16427253, -0.00226000, 0.00136246, 7.16201253, 0.99302683, 0.99637753, 0.48944969],\
++[	-6.16464310, -0.00225850, 0.00136164, 7.16238461, 0.99303168, 0.99637987, 0.48946098],\
++[	-6.16501245, -0.00225700, 0.00136081, 7.16275545, 0.99303653, 0.99638220, 0.48947222],\
++[	-6.16538057, -0.00225549, 0.00135998, 7.16312507, 0.99304136, 0.99638453, 0.48948343],\
++[	-6.16574747, -0.00225400, 0.00135915, 7.16349348, 0.99304620, 0.99638685, 0.48949461],\
++[	-6.16611316, -0.00225250, 0.00135833, 7.16386066, 0.99305103, 0.99638918, 0.48950575],\
++[	-6.16647763, -0.00225100, 0.00135750, 7.16422663, 0.99305585, 0.99639150, 0.48951685],\
++[	-6.16684090, -0.00224951, 0.00135668, 7.16459139, 0.99306066, 0.99639382, 0.48952792],\
++[	-6.16720296, -0.00224802, 0.00135585, 7.16495494, 0.99306547, 0.99639613, 0.48953896],\
++[	-6.16756382, -0.00224653, 0.00135503, 7.16531729, 0.99307027, 0.99639845, 0.48954996],\
++[	-6.16792348, -0.00224504, 0.00135421, 7.16567845, 0.99307507, 0.99640076, 0.48956093],\
++[	-6.16828195, -0.00224355, 0.00135338, 7.16603840, 0.99307986, 0.99640307, 0.48957186],\
++[	-6.16863923, -0.00224206, 0.00135256, 7.16639717, 0.99308465, 0.99640538, 0.48958276],\
++[	-6.16899533, -0.00224058, 0.00135174, 7.16675475, 0.99308943, 0.99640768, 0.48959363],\
++[	-6.16935024, -0.00223910, 0.00135092, 7.16711114, 0.99309420, 0.99640998, 0.48960445],\
++[	-6.16970397, -0.00223762, 0.00135010, 7.16746636, 0.99309897, 0.99641228, 0.48961525],\
++[	-6.17005653, -0.00223614, 0.00134928, 7.16782039, 0.99310373, 0.99641458, 0.48962601],\
++[	-6.17040791, -0.00223466, 0.00134846, 7.16817326, 0.99310849, 0.99641688, 0.48963673],\
++[	-6.17075813, -0.00223318, 0.00134765, 7.16852495, 0.99311324, 0.99641917, 0.48964743],\
++[	-6.17110719, -0.00223171, 0.00134683, 7.16887548, 0.99311798, 0.99642146, 0.48965809],\
++[	-6.17145508, -0.00223024, 0.00134601, 7.16922484, 0.99312272, 0.99642375, 0.48966871],\
++[	-6.17180182, -0.00222876, 0.00134520, 7.16957305, 0.99312745, 0.99642604, 0.48967931],\
++[	-6.17214740, -0.00222729, 0.00134438, 7.16992010, 0.99313218, 0.99642832, 0.48968987],\
++[	-6.17249183, -0.00222583, 0.00134357, 7.17026601, 0.99313690, 0.99643061, 0.48970039],\
++[	-6.17283512, -0.00222436, 0.00134275, 7.17061076, 0.99314162, 0.99643289, 0.48971088],\
++[	-6.17317726, -0.00222289, 0.00134194, 7.17095437, 0.99314633, 0.99643517, 0.48972134],\
++[	-6.17351827, -0.00222143, 0.00134113, 7.17129683, 0.99315103, 0.99643744, 0.48973177],\
++[	-6.17385813, -0.00221997, 0.00134032, 7.17163816, 0.99315573, 0.99643971, 0.48974217],\
++[	-6.17419687, -0.00221851, 0.00133950, 7.17197836, 0.99316042, 0.99644199, 0.48975252],\
++[	-6.17453448, -0.00221705, 0.00133869, 7.17231743, 0.99316511, 0.99644425, 0.48976285],\
++[	-6.17487096, -0.00221559, 0.00133788, 7.17265537, 0.99316979, 0.99644652, 0.48977314],\
++[	-6.17520632, -0.00221414, 0.00133708, 7.17299218, 0.99317446, 0.99644879, 0.48978341],\
++[	-6.17554056, -0.00221269, 0.00133627, 7.17332788, 0.99317913, 0.99645105, 0.48979364],\
++[	-6.17587369, -0.00221123, 0.00133546, 7.17366246, 0.99318379, 0.99645331, 0.48980384],\
++[	-6.17620571, -0.00220978, 0.00133465, 7.17399593, 0.99318845, 0.99645557, 0.48981400],\
++[	-6.17653662, -0.00220833, 0.00133385, 7.17432829, 0.99319310, 0.99645782, 0.48982414],\
++[	-6.17686642, -0.00220689, 0.00133304, 7.17465954, 0.99319775, 0.99646007, 0.48983424],\
++[	-6.17719513, -0.00220544, 0.00133223, 7.17498969, 0.99320239, 0.99646233, 0.48984431],\
++[	-6.17752273, -0.00220400, 0.00133143, 7.17531874, 0.99320702, 0.99646457, 0.48985434],\
++[	-6.17784925, -0.00220255, 0.00133063, 7.17564669, 0.99321165, 0.99646682, 0.48986435],\
++[	-6.17817467, -0.00220111, 0.00132982, 7.17597356, 0.99321628, 0.99646906, 0.48987432],\
++[	-6.17849900, -0.00219967, 0.00132902, 7.17629933, 0.99322089, 0.99647131, 0.48988427],\
++[	-6.17882225, -0.00219823, 0.00132822, 7.17662402, 0.99322551, 0.99647355, 0.48989418],\
++[	-6.17914442, -0.00219680, 0.00132742, 7.17694762, 0.99323011, 0.99647578, 0.48990406],\
++[	-6.17946552, -0.00219536, 0.00132662, 7.17727015, 0.99323471, 0.99647802, 0.48991391],\
++[	-6.17978554, -0.00219393, 0.00132582, 7.17759161, 0.99323931, 0.99648025, 0.48992373],\
++[	-6.18010448, -0.00219250, 0.00132502, 7.17791199, 0.99324390, 0.99648248, 0.48993351],\
++[	-6.18042237, -0.00219107, 0.00132422, 7.17823130, 0.99324848, 0.99648471, 0.48994327],\
++[	-6.18073919, -0.00218964, 0.00132342, 7.17854955, 0.99325306, 0.99648694, 0.48995299],\
++[	-6.18105494, -0.00218821, 0.00132262, 7.17886673, 0.99325763, 0.99648916, 0.48996269],\
++[	-6.18136964, -0.00218679, 0.00132183, 7.17918286, 0.99326220, 0.99649139, 0.48997235],\
++[	-6.18168329, -0.00218536, 0.00132103, 7.17949793, 0.99326676, 0.99649361, 0.48998198],\
++[	-6.18199589, -0.00218394, 0.00132024, 7.17981195, 0.99327132, 0.99649582, 0.48999158],\
++[	-6.18230744, -0.00218252, 0.00131944, 7.18012492, 0.99327587, 0.99649804, 0.49000115],\
++[	-6.18261795, -0.00218110, 0.00131865, 7.18043684, 0.99328041, 0.99650025, 0.49001070],\
++[	-6.18292741, -0.00217968, 0.00131785, 7.18074773, 0.99328495, 0.99650246, 0.49002020],\
++[	-6.18323584, -0.00217827, 0.00131706, 7.18105757, 0.99328949, 0.99650467, 0.49002969],\
++[	-6.18354323, -0.00217685, 0.00131627, 7.18136638, 0.99329401, 0.99650688, 0.49003913],\
++[	-6.18384960, -0.00217544, 0.00131548, 7.18167416, 0.99329854, 0.99650908, 0.49004855],\
++[	-6.18415493, -0.00217403, 0.00131469, 7.18198091, 0.99330305, 0.99651129, 0.49005794],\
++[	-6.18445924, -0.00217262, 0.00131390, 7.18228663, 0.99330757, 0.99651349, 0.49006730],\
++[	-6.18476253, -0.00217121, 0.00131311, 7.18259133, 0.99331207, 0.99651568, 0.49007664],\
++[	-6.18506481, -0.00216980, 0.00131232, 7.18289501, 0.99331657, 0.99651788, 0.49008594],\
++[	-6.18536606, -0.00216840, 0.00131153, 7.18319767, 0.99332107, 0.99652007, 0.49009521],\
++[	-6.18566631, -0.00216699, 0.00131074, 7.18349932, 0.99332556, 0.99652226, 0.49010445],\
++[	-6.18596555, -0.00216559, 0.00130996, 7.18379996, 0.99333004, 0.99652445, 0.49011367],\
++[	-6.18626378, -0.00216419, 0.00130917, 7.18409959, 0.99333452, 0.99652664, 0.49012285],\
++[	-6.18656101, -0.00216279, 0.00130839, 7.18439822, 0.99333900, 0.99652882, 0.49013200],\
++[	-6.18685724, -0.00216139, 0.00130760, 7.18469585, 0.99334346, 0.99653101, 0.49014113],\
++[	-6.18715248, -0.00216000, 0.00130682, 7.18499249, 0.99334793, 0.99653319, 0.49015022],\
++[	-6.18744673, -0.00215860, 0.00130603, 7.18528812, 0.99335238, 0.99653537, 0.49015929],\
++[	-6.18773998, -0.00215721, 0.00130525, 7.18558277, 0.99335684, 0.99653754, 0.49016833],\
++[	-6.18803225, -0.00215582, 0.00130447, 7.18587643, 0.99336128, 0.99653972, 0.49017734],\
++[	-6.18832353, -0.00215443, 0.00130369, 7.18616911, 0.99336572, 0.99654189, 0.49018632],\
++[	-6.18861384, -0.00215304, 0.00130291, 7.18646080, 0.99337016, 0.99654406, 0.49019527],\
++[	-6.18890316, -0.00215165, 0.00130213, 7.18675152, 0.99337459, 0.99654622, 0.49020420],\
++[	-6.18919152, -0.00215026, 0.00130135, 7.18704125, 0.99337901, 0.99654839, 0.49021309],\
++[	-6.18947890, -0.00214888, 0.00130057, 7.18733002, 0.99338343, 0.99655055, 0.49022196],\
++[	-6.18976532, -0.00214750, 0.00129979, 7.18761782, 0.99338785, 0.99655271, 0.49023080],\
++[	-6.19005077, -0.00214612, 0.00129901, 7.18790465, 0.99339226, 0.99655487, 0.49023961],\
++[	-6.19033526, -0.00214474, 0.00129823, 7.18819052, 0.99339666, 0.99655703, 0.49024839],\
++[	-6.19061879, -0.00214336, 0.00129746, 7.18847543, 0.99340106, 0.99655918, 0.49025714],\
++[	-6.19090136, -0.00214198, 0.00129668, 7.18875938, 0.99340545, 0.99656134, 0.49026588],\
++[	-6.19118298, -0.00214061, 0.00129591, 7.18904238, 0.99340984, 0.99656349, 0.49027457],\
++[	-6.19146366, -0.00213923, 0.00129513, 7.18932442, 0.99341422, 0.99656563, 0.49028324],\
++[	-6.19174338, -0.00213786, 0.00129436, 7.18960552, 0.99341860, 0.99656778, 0.49029189],\
++[	-6.19202217, -0.00213649, 0.00129359, 7.18988568, 0.99342297, 0.99656992, 0.49030051],\
++[	-6.19230001, -0.00213512, 0.00129281, 7.19016489, 0.99342734, 0.99657207, 0.49030909],\
++[	-6.19257691, -0.00213375, 0.00129204, 7.19044316, 0.99343170, 0.99657421, 0.49031766],\
++[	-6.19285288, -0.00213239, 0.00129127, 7.19072050, 0.99343606, 0.99657634, 0.49032619],\
++[	-6.19312792, -0.00213102, 0.00129050, 7.19099690, 0.99344041, 0.99657848, 0.49033470],\
++[	-6.19340203, -0.00212966, 0.00128973, 7.19127237, 0.99344475, 0.99658061, 0.49034317],\
++[	-6.19367521, -0.00212830, 0.00128896, 7.19154692, 0.99344909, 0.99658274, 0.49035163],\
++[	-6.19394748, -0.00212694, 0.00128819, 7.19182054, 0.99345343, 0.99658487, 0.49036006],\
++[	-6.19421882, -0.00212558, 0.00128743, 7.19209324, 0.99345776, 0.99658700, 0.49036845],\
++[	-6.19448924, -0.00212422, 0.00128666, 7.19236502, 0.99346208, 0.99658912, 0.49037683],\
++[	-6.19475875, -0.00212286, 0.00128589, 7.19263589, 0.99346640, 0.99659124, 0.49038517],\
++[	-6.19502735, -0.00212151, 0.00128513, 7.19290584, 0.99347072, 0.99659336, 0.49039349],\
++[	-6.19529504, -0.00212016, 0.00128436, 7.19317489, 0.99347503, 0.99659548, 0.49040178],\
++[	-6.19556183, -0.00211880, 0.00128360, 7.19344302, 0.99347933, 0.99659760, 0.49041005],\
++[	-6.19582771, -0.00211745, 0.00128283, 7.19371026, 0.99348363, 0.99659971, 0.49041829],\
++[	-6.19609270, -0.00211611, 0.00128207, 7.19397659, 0.99348792, 0.99660182, 0.49042650],\
++[	-6.19635678, -0.00211476, 0.00128131, 7.19424203, 0.99349221, 0.99660393, 0.49043469],\
++[	-6.19661998, -0.00211341, 0.00128054, 7.19450656, 0.99349650, 0.99660604, 0.49044285],\
++[	-6.19688228, -0.00211207, 0.00127978, 7.19477021, 0.99350077, 0.99660815, 0.49045099],\
++[	-6.19714369, -0.00211073, 0.00127902, 7.19503297, 0.99350505, 0.99661025, 0.49045909],\
++[	-6.19740422, -0.00210938, 0.00127826, 7.19529484, 0.99350932, 0.99661235, 0.49046717],\
++[	-6.19766387, -0.00210804, 0.00127750, 7.19555583, 0.99351358, 0.99661445, 0.49047523],\
++[	-6.19792264, -0.00210671, 0.00127674, 7.19581593, 0.99351784, 0.99661655, 0.49048326],\
++[	-6.19818053, -0.00210537, 0.00127599, 7.19607516, 0.99352209, 0.99661864, 0.49049127],\
++[	-6.19843754, -0.00210403, 0.00127523, 7.19633351, 0.99352634, 0.99662074, 0.49049925],\
++[	-6.19869369, -0.00210270, 0.00127447, 7.19659099, 0.99353058, 0.99662283, 0.49050720],\
++[	-6.19894896, -0.00210137, 0.00127372, 7.19684760, 0.99353482, 0.99662492, 0.49051513],\
++[	-6.19920337, -0.00210004, 0.00127296, 7.19710334, 0.99353905, 0.99662700, 0.49052303],\
++[	-6.19945692, -0.00209871, 0.00127221, 7.19735822, 0.99354328, 0.99662909, 0.49053091],\
++[	-6.19970961, -0.00209738, 0.00127145, 7.19761223, 0.99354750, 0.99663117, 0.49053876],\
++[	-6.19996144, -0.00209605, 0.00127070, 7.19786539, 0.99355172, 0.99663325, 0.49054659],\
++[	-6.20021242, -0.00209473, 0.00126995, 7.19811769, 0.99355593, 0.99663533, 0.49055439],\
++[	-6.20046254, -0.00209340, 0.00126919, 7.19836914, 0.99356014, 0.99663741, 0.49056217],\
++[	-6.20071181, -0.00209208, 0.00126844, 7.19861973, 0.99356434, 0.99663948, 0.49056992],\
++[	-6.20096024, -0.00209076, 0.00126769, 7.19886948, 0.99356854, 0.99664155, 0.49057765],\
++[	-6.20120782, -0.00208944, 0.00126694, 7.19911839, 0.99357273, 0.99664362, 0.49058536],\
++[	-6.20145457, -0.00208812, 0.00126619, 7.19936645, 0.99357692, 0.99664569, 0.49059304],\
++[	-6.20170047, -0.00208680, 0.00126544, 7.19961367, 0.99358110, 0.99664776, 0.49060069],\
++[	-6.20194554, -0.00208549, 0.00126469, 7.19986005, 0.99358528, 0.99664982, 0.49060832],\
++[	-6.20218978, -0.00208417, 0.00126395, 7.20010560, 0.99358945, 0.99665188, 0.49061593],\
++[	-6.20243318, -0.00208286, 0.00126320, 7.20035032, 0.99359362, 0.99665394, 0.49062351],\
++[	-6.20267576, -0.00208155, 0.00126245, 7.20059421, 0.99359778, 0.99665600, 0.49063106],\
++[	-6.20291751, -0.00208024, 0.00126171, 7.20083727, 0.99360194, 0.99665805, 0.49063859],\
++[	-6.20315844, -0.00207893, 0.00126096, 7.20107951, 0.99360609, 0.99666011, 0.49064611],\
++[	-6.20339855, -0.00207762, 0.00126022, 7.20132093, 0.99361024, 0.99666216, 0.49065358],\
++[	-6.20363785, -0.00207632, 0.00125947, 7.20156153, 0.99361438, 0.99666421, 0.49066104],\
++[	-6.20387633, -0.00207501, 0.00125873, 7.20180131, 0.99361852, 0.99666626, 0.49066848],\
++[	-6.20411399, -0.00207371, 0.00125799, 7.20204028, 0.99362265, 0.99666830, 0.49067589],\
++[	-6.20435085, -0.00207241, 0.00125725, 7.20227844, 0.99362678, 0.99667034, 0.49068328],\
++[	-6.20458690, -0.00207111, 0.00125650, 7.20251579, 0.99363090, 0.99667238, 0.49069064],\
++[	-6.20482215, -0.00206981, 0.00125576, 7.20275234, 0.99363502, 0.99667442, 0.49069799],\
++[	-6.20505660, -0.00206852, 0.00125502, 7.20298808, 0.99363914, 0.99667646, 0.49070530],\
++[	-6.20529024, -0.00206722, 0.00125428, 7.20322302, 0.99364325, 0.99667850, 0.49071260],\
++[	-6.20552310, -0.00206593, 0.00125355, 7.20345717, 0.99364735, 0.99668053, 0.49071987],\
++[	-6.20575515, -0.00206463, 0.00125281, 7.20369052, 0.99365145, 0.99668256, 0.49072711],\
++[	-6.20598642, -0.00206334, 0.00125207, 7.20392308, 0.99365554, 0.99668459, 0.49073434],\
++[	-6.20621690, -0.00206205, 0.00125133, 7.20415485, 0.99365963, 0.99668662, 0.49074154],\
++[	-6.20644659, -0.00206076, 0.00125060, 7.20438583, 0.99366372, 0.99668864, 0.49074872],\
++[	-6.20667550, -0.00205947, 0.00124986, 7.20461602, 0.99366780, 0.99669066, 0.49075587],\
++[	-6.20690362, -0.00205819, 0.00124913, 7.20484543, 0.99367187, 0.99669268, 0.49076300],\
++[	-6.20713097, -0.00205690, 0.00124839, 7.20507407, 0.99367594, 0.99669470, 0.49077011],\
++[	-6.20735754, -0.00205562, 0.00124766, 7.20530192, 0.99368001, 0.99669672, 0.49077720],\
++[	-6.20758334, -0.00205434, 0.00124693, 7.20552900, 0.99368407, 0.99669873, 0.49078426],\
++[	-6.20780837, -0.00205306, 0.00124619, 7.20575531, 0.99368812, 0.99670075, 0.49079130],\
++[	-6.20803263, -0.00205178, 0.00124546, 7.20598085, 0.99369217, 0.99670276, 0.49079832],\
++[	-6.20825612, -0.00205050, 0.00124473, 7.20620562, 0.99369622, 0.99670477, 0.49080531],\
++[	-6.20847885, -0.00204923, 0.00124400, 7.20642963, 0.99370026, 0.99670677, 0.49081228],\
++[	-6.20870082, -0.00204795, 0.00124327, 7.20665287, 0.99370430, 0.99670878, 0.49081924],\
++[	-6.20892203, -0.00204668, 0.00124254, 7.20687536, 0.99370833, 0.99671078, 0.49082617],\
++[	-6.20914249, -0.00204540, 0.00124181, 7.20709708, 0.99371236, 0.99671278, 0.49083307],\
++[	-6.20936219, -0.00204413, 0.00124109, 7.20731805, 0.99371638, 0.99671478, 0.49083996],\
++[	-6.20958114, -0.00204286, 0.00124036, 7.20753827, 0.99372040, 0.99671678, 0.49084681],\
++[	-6.20979934, -0.00204160, 0.00123963, 7.20775774, 0.99372441, 0.99671877, 0.49085365],\
++[	-6.21001679, -0.00204033, 0.00123891, 7.20797646, 0.99372842, 0.99672076, 0.49086047],\
++[	-6.21023350, -0.00203906, 0.00123818, 7.20819444, 0.99373242, 0.99672275, 0.49086727],\
++[	-6.21044947, -0.00203780, 0.00123746, 7.20841167, 0.99373642, 0.99672474, 0.49087404],\
++[	-6.21066470, -0.00203654, 0.00123673, 7.20862816, 0.99374042, 0.99672673, 0.49088079],\
++[	-6.21087920, -0.00203528, 0.00123601, 7.20884392, 0.99374441, 0.99672871, 0.49088752],\
++[	-6.21109295, -0.00203402, 0.00123529, 7.20905894, 0.99374839, 0.99673070, 0.49089423],\
++[	-6.21130598, -0.00203276, 0.00123456, 7.20927322, 0.99375237, 0.99673268, 0.49090092],\
++[	-6.21151828, -0.00203150, 0.00123384, 7.20948678, 0.99375635, 0.99673466, 0.49090759],\
++[	-6.21172985, -0.00203024, 0.00123312, 7.20969960, 0.99376032, 0.99673663, 0.49091423],\
++[	-6.21194069, -0.00202899, 0.00123240, 7.20991170, 0.99376428, 0.99673861, 0.49092085],\
++[	-6.21215082, -0.00202774, 0.00123168, 7.21012308, 0.99376825, 0.99674058, 0.49092745],\
++[	-6.21236022, -0.00202648, 0.00123096, 7.21033373, 0.99377220, 0.99674255, 0.49093403],\
++[	-6.21256890, -0.00202523, 0.00123025, 7.21054367, 0.99377616, 0.99674452, 0.49094059],\
++[	-6.21277687, -0.00202398, 0.00122953, 7.21075289, 0.99378010, 0.99674649, 0.49094712],\
++[	-6.21298413, -0.00202274, 0.00122881, 7.21096139, 0.99378405, 0.99674845, 0.49095364],\
++[	-6.21319067, -0.00202149, 0.00122809, 7.21116918, 0.99378798, 0.99675042, 0.49096013],\
++[	-6.21339651, -0.00202025, 0.00122738, 7.21137627, 0.99379192, 0.99675238, 0.49096661],\
++[	-6.21360164, -0.00201900, 0.00122666, 7.21158264, 0.99379585, 0.99675434, 0.49097306],\
++[	-6.21380607, -0.00201776, 0.00122595, 7.21178831, 0.99379977, 0.99675629, 0.49097950],\
++[	-6.21400979, -0.00201652, 0.00122523, 7.21199328, 0.99380369, 0.99675825, 0.49098591],\
++[	-6.21421282, -0.00201528, 0.00122452, 7.21219754, 0.99380761, 0.99676020, 0.49099230],\
++[	-6.21441515, -0.00201404, 0.00122381, 7.21240111, 0.99381152, 0.99676215, 0.49099867],\
++[	-6.21461678, -0.00201280, 0.00122310, 7.21260398, 0.99381543, 0.99676410, 0.49100502],\
++[	-6.21481773, -0.00201157, 0.00122239, 7.21280616, 0.99381933, 0.99676605, 0.49101135],\
++[	-6.21501798, -0.00201033, 0.00122167, 7.21300765, 0.99382323, 0.99676799, 0.49101767],\
++[	-6.21521754, -0.00200910, 0.00122096, 7.21320844, 0.99382712, 0.99676994, 0.49102395],\
++[	-6.21541642, -0.00200787, 0.00122026, 7.21340855, 0.99383101, 0.99677188, 0.49103022],\
++[	-6.21561461, -0.00200664, 0.00121955, 7.21360798, 0.99383489, 0.99677382, 0.49103647],\
++[	-6.21581213, -0.00200541, 0.00121884, 7.21380672, 0.99383877, 0.99677575, 0.49104269],\
++[	-6.21600896, -0.00200418, 0.00121813, 7.21400478, 0.99384265, 0.99677769, 0.49104891],\
++[	-6.21620512, -0.00200295, 0.00121742, 7.21420217, 0.99384652, 0.99677962, 0.49105509],\
++[	-6.21640060, -0.00200173, 0.00121672, 7.21439887, 0.99385038, 0.99678156, 0.49106126],\
++[	-6.21659541, -0.00200050, 0.00121601, 7.21459491, 0.99385424, 0.99678349, 0.49106741],\
++[	-6.21678955, -0.00199928, 0.00121531, 7.21479027, 0.99385810, 0.99678541, 0.49107353],\
++[	-6.21698302, -0.00199806, 0.00121460, 7.21498497, 0.99386195, 0.99678734, 0.49107964],\
++[	-6.21717583, -0.00199684, 0.00121390, 7.21517899, 0.99386580, 0.99678926, 0.49108574],\
++[	-6.21736797, -0.00199562, 0.00121320, 7.21537235, 0.99386965, 0.99679119, 0.49109180],\
++[	-6.21755945, -0.00199440, 0.00121249, 7.21556505, 0.99387349, 0.99679311, 0.49109786],\
++[	-6.21775028, -0.00199319, 0.00121179, 7.21575709, 0.99387732, 0.99679502, 0.49110388],\
++[	-6.21794044, -0.00199197, 0.00121109, 7.21594847, 0.99388115, 0.99679694, 0.49110989],\
++[	-6.21812995, -0.00199076, 0.00121039, 7.21613919, 0.99388498, 0.99679885, 0.49111588],\
++[	-6.21831881, -0.00198955, 0.00120969, 7.21632926, 0.99388880, 0.99680077, 0.49112186],\
++[	-6.21850702, -0.00198833, 0.00120899, 7.21651868, 0.99389261, 0.99680268, 0.49112781],\
++[	-6.21869457, -0.00198712, 0.00120829, 7.21670745, 0.99389643, 0.99680459, 0.49113374],\
++[	-6.21888149, -0.00198592, 0.00120759, 7.21689557, 0.99390024, 0.99680649, 0.49113965],\
++[	-6.21906775, -0.00198471, 0.00120689, 7.21708304, 0.99390404, 0.99680840, 0.49114555],\
++[	-6.21925338, -0.00198350, 0.00120620, 7.21726987, 0.99390784, 0.99681030, 0.49115142],\
++[	-6.21943836, -0.00198230, 0.00120550, 7.21745606, 0.99391163, 0.99681220, 0.49115728],\
++[	-6.21962271, -0.00198110, 0.00120481, 7.21764161, 0.99391542, 0.99681410, 0.49116312],\
++[	-6.21980642, -0.00197989, 0.00120411, 7.21782653, 0.99391921, 0.99681600, 0.49116895],\
++[	-6.21998950, -0.00197869, 0.00120342, 7.21801081, 0.99392299, 0.99681789, 0.49117474],\
++[	-6.22017194, -0.00197749, 0.00120272, 7.21819445, 0.99392677, 0.99681979, 0.49118052],\
++[	-6.22035376, -0.00197630, 0.00120203, 7.21837746, 0.99393054, 0.99682168, 0.49118629],\
++[	-6.22053495, -0.00197510, 0.00120134, 7.21855985, 0.99393431, 0.99682357, 0.49119203],\
++[	-6.22071551, -0.00197390, 0.00120064, 7.21874161, 0.99393808, 0.99682545, 0.49119776],\
++[	-6.22089545, -0.00197271, 0.00119995, 7.21892274, 0.99394184, 0.99682734, 0.49120347],\
++[	-6.22107477, -0.00197152, 0.00119926, 7.21910325, 0.99394559, 0.99682922, 0.49120916],\
++[	-6.22125347, -0.00197032, 0.00119857, 7.21928314, 0.99394935, 0.99683111, 0.49121482],\
++[	-6.22143155, -0.00196913, 0.00119788, 7.21946242, 0.99395309, 0.99683299, 0.49122047],\
++[	-6.22160902, -0.00196794, 0.00119719, 7.21964107, 0.99395684, 0.99683486, 0.49122611],\
++[	-6.22178587, -0.00196676, 0.00119650, 7.21981911, 0.99396058, 0.99683674, 0.49123173],\
++[	-6.22196211, -0.00196557, 0.00119582, 7.21999654, 0.99396431, 0.99683861, 0.49123732],\
++[	-6.22213774, -0.00196438, 0.00119513, 7.22017336, 0.99396804, 0.99684049, 0.49124290],\
++[	-6.22231277, -0.00196320, 0.00119444, 7.22034957, 0.99397177, 0.99684236, 0.49124846],\
++[	-6.22248719, -0.00196202, 0.00119376, 7.22052517, 0.99397549, 0.99684423, 0.49125400],\
++[	-6.22266101, -0.00196083, 0.00119307, 7.22070017, 0.99397920, 0.99684609, 0.49125953],\
++[	-6.22283422, -0.00195965, 0.00119239, 7.22087457, 0.99398292, 0.99684796, 0.49126504],\
++[	-6.22300684, -0.00195848, 0.00119170, 7.22104836, 0.99398663, 0.99684982, 0.49127053],\
++[	-6.22317886, -0.00195730, 0.00119102, 7.22122156, 0.99399033, 0.99685168, 0.49127600],\
++[	-6.22335028, -0.00195612, 0.00119034, 7.22139416, 0.99399403, 0.99685354, 0.49128145],\
++[	-6.22352111, -0.00195495, 0.00118965, 7.22156617, 0.99399773, 0.99685540, 0.49128689],\
++[	-6.22369135, -0.00195377, 0.00118897, 7.22173758, 0.99400142, 0.99685726, 0.49129231],\
++[	-6.22386100, -0.00195260, 0.00118829, 7.22190841, 0.99400511, 0.99685911, 0.49129771],\
++[	-6.22403007, -0.00195143, 0.00118761, 7.22207864, 0.99400879, 0.99686096, 0.49130310],\
++[	-6.22419854, -0.00195026, 0.00118693, 7.22224829, 0.99401247, 0.99686281, 0.49130846],\
++[	-6.22436644, -0.00194909, 0.00118625, 7.22241735, 0.99401615, 0.99686466, 0.49131381],\
++[	-6.22453375, -0.00194792, 0.00118557, 7.22258583, 0.99401982, 0.99686651, 0.49131914],\
++[	-6.22470048, -0.00194675, 0.00118490, 7.22275373, 0.99402348, 0.99686835, 0.49132446],\
++[	-6.22486664, -0.00194559, 0.00118422, 7.22292105, 0.99402715, 0.99687019, 0.49132975],\
++[	-6.22503222, -0.00194442, 0.00118354, 7.22308780, 0.99403081, 0.99687204, 0.49133503],\
++[	-6.22519722, -0.00194326, 0.00118287, 7.22325396, 0.99403446, 0.99687387, 0.49134030],\
++[	-6.22536166, -0.00194210, 0.00118219, 7.22341956, 0.99403811, 0.99687571, 0.49134554],\
++[	-6.22552552, -0.00194094, 0.00118152, 7.22358458, 0.99404176, 0.99687755, 0.49135077],\
++[	-6.22568881, -0.00193978, 0.00118084, 7.22374904, 0.99404540, 0.99687938, 0.49135598],\
++[	-6.22585154, -0.00193862, 0.00118017, 7.22391292, 0.99404904, 0.99688121, 0.49136117],\
++[	-6.22601370, -0.00193746, 0.00117950, 7.22407624, 0.99405267, 0.99688304, 0.49136635],\
++[	-6.22617531, -0.00193631, 0.00117882, 7.22423900, 0.99405630, 0.99688487, 0.49137152],\
++[	-6.22633635, -0.00193515, 0.00117815, 7.22440119, 0.99405992, 0.99688670, 0.49137666],\
++[	-6.22649683, -0.00193400, 0.00117748, 7.22456283, 0.99406354, 0.99688852, 0.49138179],\
++[	-6.22665675, -0.00193285, 0.00117681, 7.22472390, 0.99406716, 0.99689034, 0.49138690],\
++[	-6.22681612, -0.00193170, 0.00117614, 7.22488442, 0.99407077, 0.99689216, 0.49139199],\
++[	-6.22697494, -0.00193055, 0.00117547, 7.22504439, 0.99407438, 0.99689398, 0.49139707],\
++[	-6.22713320, -0.00192940, 0.00117480, 7.22520380, 0.99407799, 0.99689580, 0.49140214],\
++[	-6.22729092, -0.00192825, 0.00117413, 7.22536266, 0.99408159, 0.99689762, 0.49140718],\
++[	-6.22744808, -0.00192711, 0.00117346, 7.22552098, 0.99408519, 0.99689943, 0.49141221],\
++[	-6.22760470, -0.00192596, 0.00117280, 7.22567874, 0.99408878, 0.99690124, 0.49141723],\
++[	-6.22776078, -0.00192482, 0.00117213, 7.22583596, 0.99409237, 0.99690305, 0.49142222],\
++[	-6.22791631, -0.00192368, 0.00117147, 7.22599264, 0.99409595, 0.99690486, 0.49142719],\
++[	-6.22807131, -0.00192253, 0.00117080, 7.22614877, 0.99409953, 0.99690667, 0.49143216],\
++[	-6.22822576, -0.00192139, 0.00117014, 7.22630437, 0.99410311, 0.99690847, 0.49143711],\
++[	-6.22837968, -0.00192026, 0.00116947, 7.22645942, 0.99410668, 0.99691027, 0.49144204],\
++[	-6.22853306, -0.00191912, 0.00116881, 7.22661394, 0.99411025, 0.99691207, 0.49144696],\
++[	-6.22868591, -0.00191798, 0.00116815, 7.22676793, 0.99411381, 0.99691387, 0.49145186],\
++[	-6.22883823, -0.00191685, 0.00116748, 7.22692138, 0.99411737, 0.99691567, 0.49145674],\
++[	-6.22899002, -0.00191571, 0.00116682, 7.22707430, 0.99412093, 0.99691747, 0.49146161],\
++[	-6.22914128, -0.00191458, 0.00116616, 7.22722670, 0.99412448, 0.99691926, 0.49146647],\
++[	-6.22929201, -0.00191345, 0.00116550, 7.22737856, 0.99412803, 0.99692105, 0.49147130],\
++[	-6.22944222, -0.00191232, 0.00116484, 7.22752990, 0.99413157, 0.99692284, 0.49147613],\
++[	-6.22959190, -0.00191119, 0.00116418, 7.22768071, 0.99413511, 0.99692463, 0.49148093],\
++[	-6.22974107, -0.00191006, 0.00116352, 7.22783101, 0.99413865, 0.99692642, 0.49148571],\
++[	-6.22988971, -0.00190893, 0.00116286, 7.22798078, 0.99414218, 0.99692820, 0.49149049],\
++[	-6.23003784, -0.00190781, 0.00116221, 7.22813003, 0.99414571, 0.99692998, 0.49149525],\
++[	-6.23018545, -0.00190669, 0.00116155, 7.22827877, 0.99414924, 0.99693176, 0.49149999],\
++[	-6.23033255, -0.00190556, 0.00116089, 7.22842699, 0.99415276, 0.99693354, 0.49150472],\
++[	-6.23047913, -0.00190444, 0.00116024, 7.22857469, 0.99415627, 0.99693532, 0.49150944],\
++[	-6.23062521, -0.00190332, 0.00115958, 7.22872189, 0.99415978, 0.99693710, 0.49151413],\
++[	-6.23077077, -0.00190220, 0.00115893, 7.22886857, 0.99416329, 0.99693887, 0.49151881],\
++[	-6.23091583, -0.00190108, 0.00115828, 7.22901475, 0.99416680, 0.99694064, 0.49152348],\
++[	-6.23106038, -0.00189996, 0.00115762, 7.22916042, 0.99417030, 0.99694241, 0.49152813],\
++[	-6.23120443, -0.00189885, 0.00115697, 7.22930558, 0.99417379, 0.99694418, 0.49153277],\
++[	-6.23134798, -0.00189773, 0.00115632, 7.22945024, 0.99417729, 0.99694595, 0.49153739],\
++[	-6.23149102, -0.00189662, 0.00115567, 7.22959440, 0.99418078, 0.99694772, 0.49154200],\
++[	-6.23163357, -0.00189551, 0.00115501, 7.22973806, 0.99418426, 0.99694948, 0.49154659],\
++[	-6.23177562, -0.00189439, 0.00115436, 7.22988122, 0.99418774, 0.99695124, 0.49155116],\
++[	-6.23191717, -0.00189328, 0.00115371, 7.23002389, 0.99419122, 0.99695300, 0.49155572],\
++[	-6.23205823, -0.00189218, 0.00115307, 7.23016606, 0.99419469, 0.99695476, 0.49156028],\
++[	-6.23219880, -0.00189107, 0.00115242, 7.23030773, 0.99419816, 0.99695652, 0.49156481],\
++[	-6.23233888, -0.00188996, 0.00115177, 7.23044891, 0.99420163, 0.99695827, 0.49156932],\
++[	-6.23247846, -0.00188886, 0.00115112, 7.23058961, 0.99420509, 0.99696002, 0.49157383],\
++[	-6.23261756, -0.00188775, 0.00115047, 7.23072981, 0.99420855, 0.99696177, 0.49157832],\
++[	-6.23275618, -0.00188665, 0.00114983, 7.23086953, 0.99421200, 0.99696352, 0.49158279],\
++[	-6.23289431, -0.00188555, 0.00114918, 7.23100876, 0.99421545, 0.99696527, 0.49158725],\
++[	-6.23303196, -0.00188444, 0.00114854, 7.23114751, 0.99421890, 0.99696702, 0.49159170],\
++[	-6.23316912, -0.00188334, 0.00114789, 7.23128578, 0.99422234, 0.99696876, 0.49159612],\
++[	-6.23330581, -0.00188225, 0.00114725, 7.23142357, 0.99422578, 0.99697050, 0.49160053],\
++[	-6.23344202, -0.00188115, 0.00114661, 7.23156087, 0.99422921, 0.99697225, 0.49160494],\
++[	-6.23357776, -0.00188005, 0.00114596, 7.23169771, 0.99423264, 0.99697398, 0.49160932],\
++[	-6.23371302, -0.00187896, 0.00114532, 7.23183406, 0.99423607, 0.99697572, 0.49161370],\
++[	-6.23384781, -0.00187786, 0.00114468, 7.23196994, 0.99423949, 0.99697746, 0.49161806],\
++[	-6.23398212, -0.00187677, 0.00114404, 7.23210535, 0.99424291, 0.99697919, 0.49162241],\
++[	-6.23411597, -0.00187568, 0.00114340, 7.23224029, 0.99424633, 0.99698092, 0.49162674],\
++[	-6.23424935, -0.00187459, 0.00114276, 7.23237476, 0.99424974, 0.99698265, 0.49163105],\
++[	-6.23438226, -0.00187350, 0.00114212, 7.23250876, 0.99425315, 0.99698438, 0.49163535],\
++[	-6.23451471, -0.00187241, 0.00114148, 7.23264230, 0.99425655, 0.99698611, 0.49163964],\
++[	-6.23464669, -0.00187132, 0.00114084, 7.23277537, 0.99425995, 0.99698783, 0.49164392],\
++[	-6.23477821, -0.00187024, 0.00114021, 7.23290797, 0.99426335, 0.99698956, 0.49164818],\
++[	-6.23490927, -0.00186915, 0.00113957, 7.23304012, 0.99426674, 0.99699128, 0.49165242],\
++[	-6.23503988, -0.00186807, 0.00113893, 7.23317181, 0.99427013, 0.99699300, 0.49165666],\
++[	-6.23517002, -0.00186698, 0.00113830, 7.23330304, 0.99427352, 0.99699472, 0.49166087],\
++[	-6.23529971, -0.00186590, 0.00113766, 7.23343381, 0.99427690, 0.99699644, 0.49166508],\
++[	-6.23542895, -0.00186482, 0.00113703, 7.23356413, 0.99428028, 0.99699815, 0.49166927],\
++[	-6.23555773, -0.00186374, 0.00113639, 7.23369399, 0.99428365, 0.99699986, 0.49167345],\
++[	-6.23568606, -0.00186267, 0.00113576, 7.23382340, 0.99428702, 0.99700157, 0.49167762],\
++[	-6.23581395, -0.00186159, 0.00113513, 7.23395236, 0.99429039, 0.99700328, 0.49168176],\
++[	-6.23594138, -0.00186051, 0.00113449, 7.23408087, 0.99429375, 0.99700499, 0.49168591],\
++[	-6.23606837, -0.00185944, 0.00113386, 7.23420893, 0.99429711, 0.99700670, 0.49169003],\
++[	-6.23619491, -0.00185836, 0.00113323, 7.23433655, 0.99430047, 0.99700840, 0.49169415],\
++[	-6.23632102, -0.00185729, 0.00113260, 7.23446372, 0.99430382, 0.99701011, 0.49169823],\
++[	-6.23644667, -0.00185622, 0.00113197, 7.23459045, 0.99430717, 0.99701181, 0.49170232],\
++[	-6.23657189, -0.00185515, 0.00113134, 7.23471674, 0.99431051, 0.99701351, 0.49170640],\
++[	-6.23669667, -0.00185408, 0.00113071, 7.23484259, 0.99431385, 0.99701521, 0.49171044],\
++[	-6.23682101, -0.00185301, 0.00113009, 7.23496800, 0.99431719, 0.99701690, 0.49171449],\
++[	-6.23694492, -0.00185195, 0.00112946, 7.23509297, 0.99432052, 0.99701860, 0.49171853],\
++[	-6.23706839, -0.00185088, 0.00112883, 7.23521751, 0.99432385, 0.99702029, 0.49172254],\
++[	-6.23719143, -0.00184981, 0.00112820, 7.23534161, 0.99432718, 0.99702198, 0.49172655],\
++[	-6.23731403, -0.00184875, 0.00112758, 7.23546528, 0.99433050, 0.99702367, 0.49173054],\
++[	-6.23743621, -0.00184769, 0.00112695, 7.23558852, 0.99433382, 0.99702536, 0.49173452],\
++[	-6.23755795, -0.00184663, 0.00112633, 7.23571133, 0.99433713, 0.99702705, 0.49173848],\
++[	-6.23767927, -0.00184557, 0.00112570, 7.23583371, 0.99434044, 0.99702873, 0.49174243],\
++[	-6.23780017, -0.00184451, 0.00112508, 7.23595566, 0.99434375, 0.99703041, 0.49174639],\
++[	-6.23792064, -0.00184345, 0.00112446, 7.23607719, 0.99434706, 0.99703209, 0.49175031],\
++[	-6.23804068, -0.00184239, 0.00112383, 7.23619829, 0.99435036, 0.99703377, 0.49175422],\
++[	-6.23816031, -0.00184134, 0.00112321, 7.23631897, 0.99435365, 0.99703545, 0.49175813],\
++[	-6.23827952, -0.00184028, 0.00112259, 7.23643923, 0.99435695, 0.99703713, 0.49176201],\
++[	-6.23839830, -0.00183923, 0.00112197, 7.23655907, 0.99436024, 0.99703880, 0.49176589],\
++[	-6.23851667, -0.00183817, 0.00112135, 7.23667850, 0.99436352, 0.99704048, 0.49176975],\
++[	-6.23863462, -0.00183712, 0.00112073, 7.23679750, 0.99436680, 0.99704215, 0.49177361],\
++[	-6.23875216, -0.00183607, 0.00112011, 7.23691609, 0.99437008, 0.99704382, 0.49177744],\
++[	-6.23886929, -0.00183502, 0.00111949, 7.23703427, 0.99437336, 0.99704548, 0.49178127],\
++[	-6.23898600, -0.00183398, 0.00111887, 7.23715203, 0.99437663, 0.99704715, 0.49178508],\
++[	-6.23910231, -0.00183293, 0.00111826, 7.23726938, 0.99437990, 0.99704881, 0.49178889],\
++[	-6.23921820, -0.00183188, 0.00111764, 7.23738632, 0.99438316, 0.99705048, 0.49179268],\
++[	-6.23933369, -0.00183084, 0.00111702, 7.23750286, 0.99438642, 0.99705214, 0.49179645],\
++[	-6.23944877, -0.00182979, 0.00111641, 7.23761898, 0.99438968, 0.99705380, 0.49180022],\
++[	-6.23956345, -0.00182875, 0.00111579, 7.23773470, 0.99439293, 0.99705546, 0.49180397],\
++[	-6.23967773, -0.00182771, 0.00111518, 7.23785002, 0.99439618, 0.99705711, 0.49180771],\
++[	-6.23979160, -0.00182667, 0.00111456, 7.23796493, 0.99439943, 0.99705877, 0.49181144],\
++[	-6.23990507, -0.00182563, 0.00111395, 7.23807944, 0.99440267, 0.99706042, 0.49181516],\
++[	-6.24001814, -0.00182459, 0.00111334, 7.23819355, 0.99440591, 0.99706207, 0.49181886],\
++[	-6.24013082, -0.00182355, 0.00111273, 7.23830726, 0.99440915, 0.99706372, 0.49182255],\
++[	-6.24024309, -0.00182251, 0.00111211, 7.23842058, 0.99441238, 0.99706537, 0.49182623],\
++[	-6.24035498, -0.00182148, 0.00111150, 7.23853350, 0.99441561, 0.99706702, 0.49182990],\
++[	-6.24046647, -0.00182045, 0.00111089, 7.23864602, 0.99441884, 0.99706866, 0.49183355],\
++[	-6.24057756, -0.00181941, 0.00111028, 7.23875815, 0.99442206, 0.99707031, 0.49183719],\
++[	-6.24068827, -0.00181838, 0.00110967, 7.23886989, 0.99442528, 0.99707195, 0.49184083],\
++[	-6.24079858, -0.00181735, 0.00110906, 7.23898123, 0.99442849, 0.99707359, 0.49184446],\
++[	-6.24090851, -0.00181632, 0.00110846, 7.23909219, 0.99443170, 0.99707523, 0.49184806],\
++[	-6.24101805, -0.00181529, 0.00110785, 7.23920276, 0.99443491, 0.99707686, 0.49185165],\
++[	-6.24112720, -0.00181426, 0.00110724, 7.23931294, 0.99443812, 0.99707850, 0.49185524],\
++[	-6.24123597, -0.00181324, 0.00110663, 7.23942274, 0.99444132, 0.99708013, 0.49185881],\
++[	-6.24134436, -0.00181221, 0.00110603, 7.23953215, 0.99444451, 0.99708176, 0.49186237],\
++[	-6.24145237, -0.00181118, 0.00110542, 7.23964118, 0.99444771, 0.99708339, 0.49186593],\
++[	-6.24155999, -0.00181016, 0.00110482, 7.23974983, 0.99445090, 0.99708502, 0.49186947],\
++[	-6.24166723, -0.00180914, 0.00110421, 7.23985810, 0.99445408, 0.99708665, 0.49187299],\
++[	-6.24177410, -0.00180812, 0.00110361, 7.23996598, 0.99445727, 0.99708828, 0.49187651],\
++[	-6.24188059, -0.00180710, 0.00110300, 7.24007349, 0.99446045, 0.99708990, 0.49188001],\
++[	-6.24198671, -0.00180608, 0.00110240, 7.24018063, 0.99446363, 0.99709152, 0.49188351],\
++[	-6.24209245, -0.00180506, 0.00110180, 7.24028739, 0.99446680, 0.99709314, 0.49188699],\
++[	-6.24219781, -0.00180404, 0.00110120, 7.24039377, 0.99446997, 0.99709476, 0.49189046],\
++[	-6.24230281, -0.00180302, 0.00110060, 7.24049978, 0.99447313, 0.99709638, 0.49189392],\
++[	-6.24240743, -0.00180201, 0.00110000, 7.24060543, 0.99447630, 0.99709800, 0.49189737],\
++[	-6.24251169, -0.00180100, 0.00109940, 7.24071070, 0.99447946, 0.99709961, 0.49190081],\
++[	-6.24261558, -0.00179998, 0.00109880, 7.24081560, 0.99448261, 0.99710122, 0.49190424],\
++[	-6.24271910, -0.00179897, 0.00109820, 7.24092013, 0.99448577, 0.99710283, 0.49190765],\
++[	-6.24282226, -0.00179796, 0.00109760, 7.24102430, 0.99448891, 0.99710444, 0.49191105],\
++[	-6.24292505, -0.00179695, 0.00109700, 7.24112810, 0.99449206, 0.99710605, 0.49191444],\
++[	-6.24302748, -0.00179594, 0.00109640, 7.24123154, 0.99449520, 0.99710766, 0.49191782],\
++[	-6.24312955, -0.00179493, 0.00109581, 7.24133462, 0.99449834, 0.99710926, 0.49192119],\
++[	-6.24323126, -0.00179392, 0.00109521, 7.24143733, 0.99450148, 0.99711087, 0.49192455],\
++[	-6.24333261, -0.00179292, 0.00109461, 7.24153969, 0.99450461, 0.99711247, 0.49192789],\
++[	-6.24343360, -0.00179191, 0.00109402, 7.24164168, 0.99450774, 0.99711407, 0.49193123],\
++[	-6.24353423, -0.00179091, 0.00109342, 7.24174332, 0.99451086, 0.99711567, 0.49193456],\
++[	-6.24363451, -0.00178991, 0.00109283, 7.24184460, 0.99451399, 0.99711726, 0.49193787],\
++[	-6.24373444, -0.00178891, 0.00109224, 7.24194553, 0.99451711, 0.99711886, 0.49194119],\
++[	-6.24383401, -0.00178790, 0.00109164, 7.24204610, 0.99452022, 0.99712045, 0.49194448],\
++[	-6.24393323, -0.00178690, 0.00109105, 7.24214632, 0.99452333, 0.99712204, 0.49194776],\
++[	-6.24403210, -0.00178591, 0.00109046, 7.24224619, 0.99452644, 0.99712364, 0.49195103],\
++[	-6.24413062, -0.00178491, 0.00108987, 7.24234571, 0.99452955, 0.99712522, 0.49195429],\
++[	-6.24422879, -0.00178391, 0.00108928, 7.24244488, 0.99453265, 0.99712681, 0.49195755],\
++[	-6.24432661, -0.00178292, 0.00108869, 7.24254370, 0.99453575, 0.99712840, 0.49196079],\
++[	-6.24442409, -0.00178192, 0.00108810, 7.24264217, 0.99453884, 0.99712998, 0.49196402],\
++[	-6.24452123, -0.00178093, 0.00108751, 7.24274030, 0.99454194, 0.99713157, 0.49196723],\
++[	-6.24461802, -0.00177993, 0.00108692, 7.24283808, 0.99454502, 0.99713315, 0.49197045],\
++[	-6.24471446, -0.00177894, 0.00108633, 7.24293552, 0.99454811, 0.99713473, 0.49197365],\
++[	-6.24481057, -0.00177795, 0.00108574, 7.24303262, 0.99455119, 0.99713630, 0.49197684],\
++[	-6.24490634, -0.00177696, 0.00108516, 7.24312938, 0.99455427, 0.99713788, 0.49198002],\
++[	-6.24500177, -0.00177597, 0.00108457, 7.24322579, 0.99455735, 0.99713946, 0.49198318],\
++[	-6.24509686, -0.00177499, 0.00108398, 7.24332187, 0.99456042, 0.99714103, 0.49198634],\
++[	-6.24519161, -0.00177400, 0.00108340, 7.24341761, 0.99456349, 0.99714260, 0.49198949],\
++[	-6.24528603, -0.00177301, 0.00108281, 7.24351302, 0.99456655, 0.99714417, 0.49199263],\
++[	-6.24538012, -0.00177203, 0.00108223, 7.24360809, 0.99456961, 0.99714574, 0.49199575],\
++[	-6.24547387, -0.00177105, 0.00108164, 7.24370283, 0.99457267, 0.99714731, 0.49199887],\
++[	-6.24556729, -0.00177006, 0.00108106, 7.24379723, 0.99457573, 0.99714887, 0.49200198],\
++[	-6.24566038, -0.00176908, 0.00108048, 7.24389130, 0.99457878, 0.99715044, 0.49200507],\
++[	-6.24575314, -0.00176810, 0.00107990, 7.24398504, 0.99458183, 0.99715200, 0.49200817],\
++[	-6.24584557, -0.00176712, 0.00107931, 7.24407845, 0.99458488, 0.99715356, 0.49201123],\
++[	-6.24593768, -0.00176614, 0.00107873, 7.24417153, 0.99458792, 0.99715512, 0.49201431],\
++[	-6.24602946, -0.00176517, 0.00107815, 7.24426429, 0.99459096, 0.99715668, 0.49201737],\
++[	-6.24612091, -0.00176419, 0.00107757, 7.24435672, 0.99459400, 0.99715824, 0.49202041],\
++[	-6.24621204, -0.00176321, 0.00107699, 7.24444883, 0.99459703, 0.99715979, 0.49202344],\
++[	-6.24630285, -0.00176224, 0.00107641, 7.24454061, 0.99460006, 0.99716135, 0.49202647],\
++[	-6.24639333, -0.00176127, 0.00107584, 7.24463206, 0.99460309, 0.99716290, 0.49202949],\
++[	-6.24648350, -0.00176029, 0.00107526, 7.24472320, 0.99460611, 0.99716445, 0.49203250],\
++[	-6.24657334, -0.00175932, 0.00107468, 7.24481402, 0.99460913, 0.99716600, 0.49203550],\
++[	-6.24666287, -0.00175835, 0.00107410, 7.24490451, 0.99461215, 0.99716755, 0.49203848],\
++[	-6.24675208, -0.00175738, 0.00107353, 7.24499469, 0.99461516, 0.99716909, 0.49204146],\
++[	-6.24684097, -0.00175641, 0.00107295, 7.24508455, 0.99461817, 0.99717064, 0.49204443],\
++[	-6.24692955, -0.00175545, 0.00107238, 7.24517410, 0.99462118, 0.99717218, 0.49204739],\
++[	-6.24701781, -0.00175448, 0.00107180, 7.24526333, 0.99462418, 0.99717372, 0.49205033],\
++[	-6.24710576, -0.00175351, 0.00107123, 7.24535225, 0.99462718, 0.99717526, 0.49205328],\
++[	-6.24719340, -0.00175255, 0.00107065, 7.24544085, 0.99463018, 0.99717680, 0.49205621],\
++[	-6.24728073, -0.00175158, 0.00107008, 7.24552914, 0.99463317, 0.99717834, 0.49205913],\
++[	-6.24736775, -0.00175062, 0.00106951, 7.24561712, 0.99463617, 0.99717987, 0.49206204],\
++[	-6.24745446, -0.00174966, 0.00106893, 7.24570479, 0.99463915, 0.99718141, 0.49206494],\
++[	-6.24754086, -0.00174870, 0.00106836, 7.24579216, 0.99464214, 0.99718294, 0.49206783],\
++[	-6.24762695, -0.00174774, 0.00106779, 7.24587921, 0.99464512, 0.99718447, 0.49207072],\
++[	-6.24771274, -0.00174678, 0.00106722, 7.24596596, 0.99464810, 0.99718600, 0.49207359],\
++[	-6.24779823, -0.00174582, 0.00106665, 7.24605241, 0.99465108, 0.99718753, 0.49207645],\
++[	-6.24788341, -0.00174487, 0.00106608, 7.24613854, 0.99465405, 0.99718905, 0.49207931],\
++[	-6.24796829, -0.00174391, 0.00106551, 7.24622438, 0.99465702, 0.99719058, 0.49208216],\
++[	-6.24805287, -0.00174296, 0.00106494, 7.24630991, 0.99465998, 0.99719210, 0.49208499],\
++[	-6.24813715, -0.00174200, 0.00106438, 7.24639515, 0.99466295, 0.99719362, 0.49208783],\
++[	-6.24822113, -0.00174105, 0.00106381, 7.24648008, 0.99466591, 0.99719514, 0.49209064],\
++[	-6.24830481, -0.00174010, 0.00106324, 7.24656471, 0.99466886, 0.99719666, 0.49209345],\
++[	-6.24838819, -0.00173915, 0.00106267, 7.24664905, 0.99467182, 0.99719818, 0.49209625],\
++[	-6.24847128, -0.00173819, 0.00106211, 7.24673309, 0.99467477, 0.99719970, 0.49209904],\
++[	-6.24855407, -0.00173725, 0.00106154, 7.24681683, 0.99467771, 0.99720121, 0.49210182],\
++[	-6.24863657, -0.00173630, 0.00106098, 7.24690027, 0.99468066, 0.99720272, 0.49210459],\
++[	-6.24871878, -0.00173535, 0.00106041, 7.24698343, 0.99468360, 0.99720424, 0.49210735],\
++[	-6.24880069, -0.00173440, 0.00105985, 7.24706629, 0.99468654, 0.99720575, 0.49211010],\
++[	-6.24888231, -0.00173346, 0.00105929, 7.24714886, 0.99468947, 0.99720725, 0.49211286],\
++[	-6.24896365, -0.00173251, 0.00105872, 7.24723113, 0.99469240, 0.99720876, 0.49211559],\
++[	-6.24904469, -0.00173157, 0.00105816, 7.24731312, 0.99469533, 0.99721027, 0.49211832],\
++[	-6.24912545, -0.00173063, 0.00105760, 7.24739482, 0.99469826, 0.99721177, 0.49212104],\
++[	-6.24920591, -0.00172969, 0.00105704, 7.24747623, 0.99470118, 0.99721327, 0.49212375],\
++[	-6.24928610, -0.00172875, 0.00105648, 7.24755735, 0.99470410, 0.99721478, 0.49212645],\
++[	-6.24936599, -0.00172781, 0.00105592, 7.24763819, 0.99470702, 0.99721628, 0.49212915],\
++[	-6.24944561, -0.00172687, 0.00105536, 7.24771874, 0.99470993, 0.99721777, 0.49213183],\
++[	-6.24952494, -0.00172593, 0.00105480, 7.24779901, 0.99471284, 0.99721927, 0.49213451],\
++[	-6.24960399, -0.00172499, 0.00105424, 7.24787899, 0.99471575, 0.99722077, 0.49213717],\
++[	-6.24968275, -0.00172406, 0.00105368, 7.24795870, 0.99471865, 0.99722226, 0.49213983],\
++[	-6.24976124, -0.00172312, 0.00105312, 7.24803812, 0.99472155, 0.99722375, 0.49214248],\
++[	-6.24983945, -0.00172219, 0.00105257, 7.24811726, 0.99472445, 0.99722524, 0.49214512],\
++[	-6.24991738, -0.00172126, 0.00105201, 7.24819612, 0.99472735, 0.99722673, 0.49214776],\
++[	-6.24999503, -0.00172032, 0.00105145, 7.24827471, 0.99473024, 0.99722822, 0.49215038],\
++[	-6.25007241, -0.00171939, 0.00105090, 7.24835302, 0.99473313, 0.99722971, 0.49215299],\
++[	-6.25014951, -0.00171846, 0.00105034, 7.24843105, 0.99473601, 0.99723119, 0.49215561],\
++[	-6.25022634, -0.00171753, 0.00104979, 7.24850880, 0.99473890, 0.99723268, 0.49215820],\
++[	-6.25030289, -0.00171660, 0.00104923, 7.24858628, 0.99474178, 0.99723416, 0.49216079],\
++[	-6.25037917, -0.00171568, 0.00104868, 7.24866349, 0.99474465, 0.99723564, 0.49216338],\
++[	-6.25045518, -0.00171475, 0.00104813, 7.24874043, 0.99474753, 0.99723712, 0.49216595],\
++[	-6.25053092, -0.00171382, 0.00104758, 7.24881709, 0.99475040, 0.99723860, 0.49216851],\
++[	-6.25060639, -0.00171290, 0.00104702, 7.24889349, 0.99475327, 0.99724008, 0.49217106],\
++[	-6.25068159, -0.00171198, 0.00104647, 7.24896961, 0.99475613, 0.99724155, 0.49217362],\
++[	-6.25075652, -0.00171105, 0.00104592, 7.24904547, 0.99475899, 0.99724303, 0.49217616],\
++[	-6.25083119, -0.00171013, 0.00104537, 7.24912106, 0.99476185, 0.99724450, 0.49217869],\
++[	-6.25090559, -0.00170921, 0.00104482, 7.24919638, 0.99476471, 0.99724597, 0.49218121],\
++[	-6.25097972, -0.00170829, 0.00104427, 7.24927143, 0.99476756, 0.99724744, 0.49218373],\
++[	-6.25105359, -0.00170737, 0.00104372, 7.24934622, 0.99477041, 0.99724891, 0.49218624],\
++[	-6.25112720, -0.00170645, 0.00104317, 7.24942075, 0.99477326, 0.99725037, 0.49218873],\
++[	-6.25120055, -0.00170554, 0.00104262, 7.24949501, 0.99477610, 0.99725184, 0.49219122],\
++[	-6.25127363, -0.00170462, 0.00104208, 7.24956901, 0.99477894, 0.99725330, 0.49219371],\
++[	-6.25134646, -0.00170370, 0.00104153, 7.24964275, 0.99478178, 0.99725477, 0.49219618],\
++[	-6.25141902, -0.00170279, 0.00104098, 7.24971623, 0.99478462, 0.99725623, 0.49219865],\
++[	-6.25149133, -0.00170188, 0.00104044, 7.24978945, 0.99478745, 0.99725769, 0.49220112],\
++[	-6.25156338, -0.00170096, 0.00103989, 7.24986241, 0.99479028, 0.99725915, 0.49220356],\
++[	-6.25163517, -0.00170005, 0.00103935, 7.24993512, 0.99479311, 0.99726060, 0.49220600],\
++[	-6.25170670, -0.00169914, 0.00103880, 7.25000756, 0.99479593, 0.99726206, 0.49220844],\
++[	-6.25177798, -0.00169823, 0.00103826, 7.25007975, 0.99479875, 0.99726351, 0.49221087],\
++[	-6.25184901, -0.00169732, 0.00103771, 7.25015169, 0.99480157, 0.99726496, 0.49221329],\
++[	-6.25191978, -0.00169641, 0.00103717, 7.25022337, 0.99480438, 0.99726642, 0.49221570],\
++[	-6.25199031, -0.00169551, 0.00103663, 7.25029480, 0.99480719, 0.99726787, 0.49221811],\
++[	-6.25206057, -0.00169460, 0.00103609, 7.25036598, 0.99481000, 0.99726931, 0.49222050],\
++[	-6.25213059, -0.00169369, 0.00103555, 7.25043690, 0.99481281, 0.99727076, 0.49222289],\
++[	-6.25220036, -0.00169279, 0.00103500, 7.25050757, 0.99481561, 0.99727221, 0.49222527],\
++[	-6.25226988, -0.00169189, 0.00103446, 7.25057800, 0.99481841, 0.99727365, 0.49222765],\
++[	-6.25233916, -0.00169098, 0.00103392, 7.25064817, 0.99482121, 0.99727509, 0.49223001],\
++[	-6.25240818, -0.00169008, 0.00103338, 7.25071810, 0.99482400, 0.99727653, 0.49223237],\
++[	-6.25247696, -0.00168918, 0.00103285, 7.25078778, 0.99482680, 0.99727797, 0.49223472],\
++[	-6.25254550, -0.00168828, 0.00103231, 7.25085722, 0.99482958, 0.99727941, 0.49223706],\
++[	-6.25261379, -0.00168738, 0.00103177, 7.25092640, 0.99483237, 0.99728085, 0.49223939],\
++[	-6.25268183, -0.00168648, 0.00103123, 7.25099535, 0.99483515, 0.99728229, 0.49224172],\
++[	-6.25274963, -0.00168559, 0.00103069, 7.25106405, 0.99483793, 0.99728372, 0.49224404],\
++[	-6.25281720, -0.00168469, 0.00103016, 7.25113251, 0.99484071, 0.99728515, 0.49224636],\
++[	-6.25288452, -0.00168379, 0.00102962, 7.25120072, 0.99484348, 0.99728659, 0.49224866],\
++[	-6.25295160, -0.00168290, 0.00102909, 7.25126870, 0.99484626, 0.99728802, 0.49225097],\
++[	-6.25301844, -0.00168200, 0.00102855, 7.25133643, 0.99484902, 0.99728945, 0.49225325],\
++[	-6.25308504, -0.00168111, 0.00102802, 7.25140393, 0.99485179, 0.99729087, 0.49225553],\
++[	-6.25315140, -0.00168022, 0.00102748, 7.25147118, 0.99485455, 0.99729230, 0.49225780],\
++[	-6.25321753, -0.00167933, 0.00102695, 7.25153820, 0.99485731, 0.99729372, 0.49226008],\
++[	-6.25328342, -0.00167844, 0.00102641, 7.25160498, 0.99486007, 0.99729515, 0.49226233],\
++[	-6.25334907, -0.00167755, 0.00102588, 7.25167153, 0.99486282, 0.99729657, 0.49226459],\
++[	-6.25341450, -0.00167666, 0.00102535, 7.25173784, 0.99486558, 0.99729799, 0.49226684],\
++[	-6.25347968, -0.00167577, 0.00102482, 7.25180391, 0.99486832, 0.99729941, 0.49226907],\
++[	-6.25354464, -0.00167489, 0.00102429, 7.25186975, 0.99487107, 0.99730083, 0.49227131],\
++[	-6.25360936, -0.00167400, 0.00102376, 7.25193536, 0.99487381, 0.99730224, 0.49227354],\
++[	-6.25367385, -0.00167312, 0.00102323, 7.25200074, 0.99487655, 0.99730366, 0.49227575],\
++[	-6.25373811, -0.00167223, 0.00102270, 7.25206588, 0.99487929, 0.99730507, 0.49227796],\
++[	-6.25380215, -0.00167135, 0.00102217, 7.25213080, 0.99488202, 0.99730649, 0.49228016],\
++[	-6.25386595, -0.00167047, 0.00102164, 7.25219548, 0.99488476, 0.99730790, 0.49228236],\
++[	-6.25392952, -0.00166958, 0.00102111, 7.25225994, 0.99488749, 0.99730931, 0.49228455],\
++[	-6.25399287, -0.00166870, 0.00102058, 7.25232417, 0.99489021, 0.99731072, 0.49228673],\
++[	-6.25405599, -0.00166782, 0.00102005, 7.25238817, 0.99489294, 0.99731212, 0.49228892],\
++[	-6.25411889, -0.00166694, 0.00101953, 7.25245194, 0.99489566, 0.99731353, 0.49229108],\
++[	-6.25418156, -0.00166607, 0.00101900, 7.25251549, 0.99489837, 0.99731493, 0.49229324],\
++[	-6.25424401, -0.00166519, 0.00101847, 7.25257882, 0.99490109, 0.99731634, 0.49229539],\
++[	-6.25430623, -0.00166431, 0.00101795, 7.25264192, 0.99490380, 0.99731774, 0.49229754],\
++[	-6.25436823, -0.00166344, 0.00101742, 7.25270479, 0.99490651, 0.99731914, 0.49229968],\
++[	-6.25443001, -0.00166256, 0.00101690, 7.25276745, 0.99490922, 0.99732054, 0.49230182],\
++[	-6.25449157, -0.00166169, 0.00101638, 7.25282988, 0.99491192, 0.99732194, 0.49230394],\
++[	-6.25455291, -0.00166082, 0.00101585, 7.25289209, 0.99491462, 0.99732333, 0.49230606],\
++[	-6.25461403, -0.00165994, 0.00101533, 7.25295408, 0.99491732, 0.99732473, 0.49230817],\
++[	-6.25467493, -0.00165907, 0.00101481, 7.25301586, 0.99492002, 0.99732612, 0.49231027],\
++[	-6.25473561, -0.00165820, 0.00101428, 7.25307741, 0.99492271, 0.99732751, 0.49231238],\
++[	-6.25479608, -0.00165733, 0.00101376, 7.25313874, 0.99492540, 0.99732890, 0.49231446],\
++[	-6.25485633, -0.00165647, 0.00101324, 7.25319986, 0.99492809, 0.99733029, 0.49231656],\
++[	-6.25491636, -0.00165560, 0.00101272, 7.25326076, 0.99493077, 0.99733168, 0.49231863],\
++[	-6.25497618, -0.00165473, 0.00101220, 7.25332145, 0.99493345, 0.99733307, 0.49232070],\
++[	-6.25503579, -0.00165386, 0.00101168, 7.25338192, 0.99493613, 0.99733445, 0.49232277],\
++[	-6.25509518, -0.00165300, 0.00101116, 7.25344218, 0.99493881, 0.99733584, 0.49232483],\
++[	-6.25515436, -0.00165214, 0.00101064, 7.25350222, 0.99494148, 0.99733722, 0.49232688],\
++[	-6.25521333, -0.00165127, 0.00101012, 7.25356206, 0.99494415, 0.99733860, 0.49232894],\
++[	-6.25527209, -0.00165041, 0.00100961, 7.25362168, 0.99494682, 0.99733998, 0.49233097],\
++[	-6.25533063, -0.00164955, 0.00100909, 7.25368108, 0.99494949, 0.99734136, 0.49233301],\
++[	-6.25538897, -0.00164869, 0.00100857, 7.25374028, 0.99495215, 0.99734274, 0.49233504],\
++[	-6.25544710, -0.00164783, 0.00100806, 7.25379927, 0.99495481, 0.99734412, 0.49233704],\
++[	-6.25550502, -0.00164697, 0.00100754, 7.25385805, 0.99495747, 0.99734549, 0.49233906],\
++[	-6.25556273, -0.00164611, 0.00100702, 7.25391662, 0.99496012, 0.99734687, 0.49234107],\
++[	-6.25562024, -0.00164525, 0.00100651, 7.25397499, 0.99496278, 0.99734824, 0.49234308],\
++[	-6.25567754, -0.00164440, 0.00100599, 7.25403314, 0.99496543, 0.99734961, 0.49234506],\
++[	-6.25573464, -0.00164354, 0.00100548, 7.25409110, 0.99496807, 0.99735098, 0.49234706],\
++[	-6.25579153, -0.00164268, 0.00100497, 7.25414884, 0.99497072, 0.99735235, 0.49234904],\
++[	-6.25584821, -0.00164183, 0.00100445, 7.25420638, 0.99497336, 0.99735372, 0.49235101],\
++[	-6.25590470, -0.00164098, 0.00100394, 7.25426372, 0.99497600, 0.99735508, 0.49235297],\
++[	-6.25596098, -0.00164012, 0.00100343, 7.25432086, 0.99497863, 0.99735645, 0.49235495],\
++[	-6.25601706, -0.00163927, 0.00100292, 7.25437779, 0.99498127, 0.99735781, 0.49235690],\
++[	-6.25607294, -0.00163842, 0.00100241, 7.25443452, 0.99498390, 0.99735917, 0.49235884],\
++[	-6.25612862, -0.00163757, 0.00100189, 7.25449105, 0.99498652, 0.99736053, 0.49236079],\
++[	-6.25618410, -0.00163672, 0.00100138, 7.25454738, 0.99498915, 0.99736189, 0.49236272],\
++[	-6.25623938, -0.00163587, 0.00100087, 7.25460351, 0.99499177, 0.99736325, 0.49236466],\
++[	-6.25629447, -0.00163503, 0.00100036, 7.25465944, 0.99499439, 0.99736461, 0.49236658],\
++[	-6.25634936, -0.00163418, 0.00099986, 7.25471518, 0.99499701, 0.99736596, 0.49236850],\
++[	-6.25640405, -0.00163333, 0.00099935, 7.25477071, 0.99499963, 0.99736732, 0.49237042],\
++[	-6.25645854, -0.00163249, 0.00099884, 7.25482605, 0.99500224, 0.99736867, 0.49237232],\
++[	-6.25651284, -0.00163164, 0.00099833, 7.25488119, 0.99500485, 0.99737002, 0.49237422],\
++[	-6.25656694, -0.00163080, 0.00099782, 7.25493614, 0.99500745, 0.99737137, 0.49237612],\
++[	-6.25662085, -0.00162996, 0.00099732, 7.25499089, 0.99501006, 0.99737272, 0.49237800],\
++[	-6.25667457, -0.00162912, 0.00099681, 7.25504545, 0.99501266, 0.99737407, 0.49237989],\
++[	-6.25672809, -0.00162828, 0.00099631, 7.25509982, 0.99501526, 0.99737542, 0.49238176],\
++[	-6.25678143, -0.00162744, 0.00099580, 7.25515399, 0.99501786, 0.99737676, 0.49238364],\
++[	-6.25683457, -0.00162660, 0.00099530, 7.25520797, 0.99502045, 0.99737811, 0.49238550],\
++[	-6.25688752, -0.00162576, 0.00099479, 7.25526176, 0.99502304, 0.99737945, 0.49238736],\
++[	-6.25694028, -0.00162492, 0.00099429, 7.25531536, 0.99502563, 0.99738079, 0.49238921],\
++[	-6.25699285, -0.00162408, 0.00099378, 7.25536877, 0.99502822, 0.99738213, 0.49239105],\
++[	-6.25704524, -0.00162325, 0.00099328, 7.25542199, 0.99503080, 0.99738347, 0.49239289],\
++[	-6.25709743, -0.00162241, 0.00099278, 7.25547502, 0.99503338, 0.99738481, 0.49239473],\
++[	-6.25714944, -0.00162158, 0.00099228, 7.25552786, 0.99503596, 0.99738615, 0.49239656],\
++[	-6.25720127, -0.00162074, 0.00099177, 7.25558052, 0.99503853, 0.99738748, 0.49239838],\
++[	-6.25725290, -0.00161991, 0.00099127, 7.25563299, 0.99504111, 0.99738881, 0.49240020],\
++[	-6.25730435, -0.00161908, 0.00099077, 7.25568527, 0.99504368, 0.99739015, 0.49240201],\
++[	-6.25735562, -0.00161825, 0.00099027, 7.25573737, 0.99504625, 0.99739148, 0.49240381],\
++[	-6.25740670, -0.00161742, 0.00098977, 7.25578929, 0.99504881, 0.99739281, 0.49240561],\
++[	-6.25745761, -0.00161659, 0.00098927, 7.25584102, 0.99505137, 0.99739414, 0.49240741],\
++[	-6.25750832, -0.00161576, 0.00098877, 7.25589256, 0.99505393, 0.99739547, 0.49240919],\
++[	-6.25755886, -0.00161493, 0.00098828, 7.25594393, 0.99505649, 0.99739679, 0.49241098],\
++[	-6.25760921, -0.00161411, 0.00098778, 7.25599511, 0.99505905, 0.99739812, 0.49241276],\
++[	-6.25765939, -0.00161328, 0.00098728, 7.25604611, 0.99506160, 0.99739944, 0.49241453],\
++[	-6.25770938, -0.00161245, 0.00098678, 7.25609693, 0.99506415, 0.99740076, 0.49241630],\
++[	-6.25775920, -0.00161163, 0.00098629, 7.25614757, 0.99506670, 0.99740209, 0.49241806],\
++[	-6.25780883, -0.00161080, 0.00098579, 7.25619803, 0.99506924, 0.99740341, 0.49241981],\
++[	-6.25785829, -0.00160998, 0.00098529, 7.25624831, 0.99507179, 0.99740472, 0.49242156],\
++[	-6.25790757, -0.00160916, 0.00098480, 7.25629841, 0.99507433, 0.99740604, 0.49242330],\
++[	-6.25795667, -0.00160834, 0.00098430, 7.25634834, 0.99507686, 0.99740736, 0.49242504],\
++[	-6.25800560, -0.00160752, 0.00098381, 7.25639808, 0.99507940, 0.99740867, 0.49242678],\
++[	-6.25805435, -0.00160670, 0.00098332, 7.25644766, 0.99508193, 0.99740999, 0.49242849],\
++[	-6.25810293, -0.00160588, 0.00098282, 7.25649705, 0.99508446, 0.99741130, 0.49243022],\
++[	-6.25815133, -0.00160506, 0.00098233, 7.25654627, 0.99508699, 0.99741261, 0.49243193],\
++[	-6.25819956, -0.00160424, 0.00098184, 7.25659532, 0.99508951, 0.99741392, 0.49243365],\
++[	-6.25824762, -0.00160342, 0.00098134, 7.25664419, 0.99509203, 0.99741523, 0.49243535],\
++[	-6.25829550, -0.00160261, 0.00098085, 7.25669289, 0.99509455, 0.99741654, 0.49243704],\
++[	-6.25834321, -0.00160179, 0.00098036, 7.25674142, 0.99509707, 0.99741784, 0.49243875],\
++[	-6.25839075, -0.00160098, 0.00097987, 7.25678978, 0.99509959, 0.99741915, 0.49244043],\
++[	-6.25843812, -0.00160017, 0.00097938, 7.25683796, 0.99510210, 0.99742045, 0.49244213],\
++[	-6.25848532, -0.00159935, 0.00097889, 7.25688597, 0.99510461, 0.99742176, 0.49244379],\
++[	-6.25853235, -0.00159854, 0.00097840, 7.25693381, 0.99510712, 0.99742306, 0.49244547],\
++[	-6.25857922, -0.00159773, 0.00097791, 7.25698149, 0.99510962, 0.99742436, 0.49244714],\
++[	-6.25862591, -0.00159692, 0.00097742, 7.25702899, 0.99511212, 0.99742566, 0.49244880],\
++[	-6.25867244, -0.00159611, 0.00097693, 7.25707633, 0.99511462, 0.99742696, 0.49245046],\
++[	-6.25871879, -0.00159530, 0.00097645, 7.25712350, 0.99511712, 0.99742825, 0.49245210],\
++[	-6.25876499, -0.00159449, 0.00097596, 7.25717050, 0.99511962, 0.99742955, 0.49245376],\
++[	-6.25881101, -0.00159368, 0.00097547, 7.25721733, 0.99512211, 0.99743084, 0.49245539],\
++[	-6.25885688, -0.00159288, 0.00097499, 7.25726400, 0.99512460, 0.99743214, 0.49245702],\
++[	-6.25890257, -0.00159207, 0.00097450, 7.25731050, 0.99512709, 0.99743343, 0.49245866],\
++[	-6.25894810, -0.00159127, 0.00097402, 7.25735684, 0.99512957, 0.99743472, 0.49246028],\
++[	-6.25899347, -0.00159046, 0.00097353, 7.25740301, 0.99513205, 0.99743601, 0.49246190],\
++[	-6.25903868, -0.00158966, 0.00097305, 7.25744902, 0.99513453, 0.99743730, 0.49246352],\
++[	-6.25908372, -0.00158886, 0.00097256, 7.25749487, 0.99513701, 0.99743858, 0.49246513],\
++[	-6.25912861, -0.00158805, 0.00097208, 7.25754055, 0.99513949, 0.99743987, 0.49246673],\
++[	-6.25917333, -0.00158725, 0.00097159, 7.25758607, 0.99514196, 0.99744115, 0.49246833],\
++[	-6.25921789, -0.00158645, 0.00097111, 7.25763144, 0.99514443, 0.99744244, 0.49246993],\
++[	-6.25926229, -0.00158565, 0.00097063, 7.25767664, 0.99514690, 0.99744372, 0.49247152],\
++[	-6.25930653, -0.00158485, 0.00097015, 7.25772168, 0.99514936, 0.99744500, 0.49247309],\
++[	-6.25935061, -0.00158406, 0.00096966, 7.25776656, 0.99515183, 0.99744628, 0.49247468],\
++[	-6.25939453, -0.00158326, 0.00096918, 7.25781128, 0.99515429, 0.99744756, 0.49247625],\
++[	-6.25943830, -0.00158246, 0.00096870, 7.25785584, 0.99515675, 0.99744884, 0.49247782],\
++[	-6.25948191, -0.00158167, 0.00096822, 7.25790024, 0.99515920, 0.99745011, 0.49247939],\
++[	-6.25952536, -0.00158087, 0.00096774, 7.25794449, 0.99516165, 0.99745139, 0.49248095],\
++[	-6.25956866, -0.00158008, 0.00096726, 7.25798858, 0.99516411, 0.99745266, 0.49248251],\
++[	-6.25961180, -0.00157928, 0.00096678, 7.25803252, 0.99516655, 0.99745393, 0.49248405],\
++[	-6.25965478, -0.00157849, 0.00096631, 7.25807629, 0.99516900, 0.99745521, 0.49248560],\
++[	-6.25969761, -0.00157770, 0.00096583, 7.25811992, 0.99517144, 0.99745648, 0.49248715],\
++[	-6.25974029, -0.00157691, 0.00096535, 7.25816339, 0.99517389, 0.99745774, 0.49248867],\
++[	-6.25978282, -0.00157612, 0.00096487, 7.25820670, 0.99517633, 0.99745901, 0.49249021],\
++[	-6.25982519, -0.00157533, 0.00096440, 7.25824986, 0.99517876, 0.99746028, 0.49249174],\
++[	-6.25986741, -0.00157454, 0.00096392, 7.25829287, 0.99518120, 0.99746154, 0.49249325],\
++[	-6.25990947, -0.00157375, 0.00096344, 7.25833572, 0.99518363, 0.99746281, 0.49249477],\
++[	-6.25995139, -0.00157296, 0.00096297, 7.25837843, 0.99518606, 0.99746407, 0.49249628],\
++[	-6.25999315, -0.00157217, 0.00096249, 7.25842098, 0.99518848, 0.99746533, 0.49249779],\
++[	-6.26003477, -0.00157139, 0.00096202, 7.25846338, 0.99519091, 0.99746659, 0.49249929],\
++[	-6.26007624, -0.00157060, 0.00096154, 7.25850563, 0.99519333, 0.99746785, 0.49250079],\
++[	-6.26011755, -0.00156982, 0.00096107, 7.25854773, 0.99519575, 0.99746911, 0.49250228],\
++[	-6.26015872, -0.00156903, 0.00096060, 7.25858969, 0.99519817, 0.99747037, 0.49250377],\
++[	-6.26019974, -0.00156825, 0.00096012, 7.25863149, 0.99520058, 0.99747163, 0.49250524],\
++[	-6.26024061, -0.00156747, 0.00095965, 7.25867315, 0.99520300, 0.99747288, 0.49250672],\
++[	-6.26028134, -0.00156669, 0.00095918, 7.25871465, 0.99520541, 0.99747414, 0.49250819],\
++[	-6.26032192, -0.00156591, 0.00095871, 7.25875601, 0.99520782, 0.99747539, 0.49250967],\
++[	-6.26036235, -0.00156513, 0.00095823, 7.25879723, 0.99521022, 0.99747664, 0.49251114],\
++[	-6.26040264, -0.00156435, 0.00095776, 7.25883830, 0.99521263, 0.99747789, 0.49251259],\
++[	-6.26044279, -0.00156357, 0.00095729, 7.25887922, 0.99521503, 0.99747914, 0.49251404],\
++[	-6.26048279, -0.00156279, 0.00095682, 7.25892000, 0.99521743, 0.99748039, 0.49251549],\
++[	-6.26052264, -0.00156201, 0.00095635, 7.25896063, 0.99521982, 0.99748163, 0.49251694],\
++[	-6.26056235, -0.00156124, 0.00095588, 7.25900112, 0.99522222, 0.99748288, 0.49251838],\
++[	-6.26060192, -0.00156046, 0.00095542, 7.25904146, 0.99522461, 0.99748412, 0.49251982],\
++[	-6.26064135, -0.00155969, 0.00095495, 7.25908167, 0.99522700, 0.99748537, 0.49252125],\
++[	-6.26068064, -0.00155891, 0.00095448, 7.25912173, 0.99522939, 0.99748661, 0.49252269],\
++[	-6.26071978, -0.00155814, 0.00095401, 7.25916164, 0.99523177, 0.99748785, 0.49252410],\
++[	-6.26075879, -0.00155737, 0.00095354, 7.25920142, 0.99523415, 0.99748909, 0.49252552],\
++[	-6.26079765, -0.00155659, 0.00095308, 7.25924106, 0.99523653, 0.99749033, 0.49252694],\
++[	-6.26083637, -0.00155582, 0.00095261, 7.25928055, 0.99523891, 0.99749157, 0.49252834],\
++[	-6.26087496, -0.00155505, 0.00095215, 7.25931991, 0.99524129, 0.99749280, 0.49252975],\
++[	-6.26091341, -0.00155428, 0.00095168, 7.25935912, 0.99524366, 0.99749404, 0.49253116],\
++[	-6.26095171, -0.00155351, 0.00095122, 7.25939820, 0.99524603, 0.99749527, 0.49253255],\
++[	-6.26098988, -0.00155274, 0.00095075, 7.25943714, 0.99524840, 0.99749651, 0.49253394],\
++[	-6.26102792, -0.00155198, 0.00095029, 7.25947594, 0.99525077, 0.99749774, 0.49253533],\
++[	-6.26106581, -0.00155121, 0.00094982, 7.25951460, 0.99525313, 0.99749897, 0.49253672],\
++[	-6.26110357, -0.00155044, 0.00094936, 7.25955313, 0.99525549, 0.99750020, 0.49253810],\
++[	-6.26114120, -0.00154968, 0.00094890, 7.25959152, 0.99525785, 0.99750143, 0.49253947],\
++[	-6.26117869, -0.00154891, 0.00094843, 7.25962977, 0.99526021, 0.99750265, 0.49254085],\
++[	-6.26121604, -0.00154815, 0.00094797, 7.25966789, 0.99526256, 0.99750388, 0.49254220],\
++[	-6.26125326, -0.00154739, 0.00094751, 7.25970587, 0.99526492, 0.99750510, 0.49254357],\
++[	-6.26129035, -0.00154662, 0.00094705, 7.25974372, 0.99526727, 0.99750633, 0.49254493],\
++[	-6.26132730, -0.00154586, 0.00094659, 7.25978144, 0.99526962, 0.99750755, 0.49254628],\
++[	-6.26136412, -0.00154510, 0.00094613, 7.25981902, 0.99527196, 0.99750877, 0.49254763],\
++[	-6.26140081, -0.00154434, 0.00094567, 7.25985647, 0.99527431, 0.99750999, 0.49254897],\
++[	-6.26143736, -0.00154358, 0.00094521, 7.25989378, 0.99527665, 0.99751121, 0.49255032],\
++[	-6.26147379, -0.00154282, 0.00094475, 7.25993097, 0.99527899, 0.99751243, 0.49255166],\
++[	-6.26151008, -0.00154206, 0.00094429, 7.25996802, 0.99528132, 0.99751365, 0.49255299],\
++[	-6.26154624, -0.00154131, 0.00094383, 7.26000494, 0.99528366, 0.99751486, 0.49255432],\
++[	-6.26158228, -0.00154055, 0.00094337, 7.26004173, 0.99528599, 0.99751608, 0.49255564],\
++[	-6.26161818, -0.00153979, 0.00094292, 7.26007839, 0.99528832, 0.99751729, 0.49255696],\
++[	-6.26165395, -0.00153904, 0.00094246, 7.26011492, 0.99529065, 0.99751851, 0.49255828],\
++[	-6.26168960, -0.00153828, 0.00094200, 7.26015132, 0.99529297, 0.99751972, 0.49255958],\
++[	-6.26172512, -0.00153753, 0.00094155, 7.26018759, 0.99529530, 0.99752093, 0.49256090],\
++[	-6.26176051, -0.00153677, 0.00094109, 7.26022373, 0.99529762, 0.99752214, 0.49256219],\
++[	-6.26179577, -0.00153602, 0.00094063, 7.26025975, 0.99529994, 0.99752334, 0.49256349],\
++[	-6.26183090, -0.00153527, 0.00094018, 7.26029563, 0.99530226, 0.99752455, 0.49256478],\
++[	-6.26186591, -0.00153452, 0.00093972, 7.26033139, 0.99530457, 0.99752576, 0.49256609],\
++[	-6.26190080, -0.00153377, 0.00093927, 7.26036703, 0.99530688, 0.99752696, 0.49256738],\
++[	-6.26193555, -0.00153302, 0.00093882, 7.26040254, 0.99530919, 0.99752817, 0.49256866],\
++[	-6.26197019, -0.00153227, 0.00093836, 7.26043792, 0.99531150, 0.99752937, 0.49256993],\
++[	-6.26200470, -0.00153152, 0.00093791, 7.26047317, 0.99531381, 0.99753057, 0.49257121],\
++[	-6.26203908, -0.00153077, 0.00093746, 7.26050831, 0.99531611, 0.99753177, 0.49257249],\
++[	-6.26207334, -0.00153003, 0.00093700, 7.26054331, 0.99531841, 0.99753297, 0.49257375],\
++[	-6.26210748, -0.00152928, 0.00093655, 7.26057820, 0.99532071, 0.99753417, 0.49257501],\
++[	-6.26214149, -0.00152853, 0.00093610, 7.26061296, 0.99532301, 0.99753537, 0.49257629],\
++[	-6.26217539, -0.00152779, 0.00093565, 7.26064760, 0.99532530, 0.99753656, 0.49257754],\
++[	-6.26220916, -0.00152705, 0.00093520, 7.26068211, 0.99532759, 0.99753776, 0.49257879],\
++[	-6.26224280, -0.00152630, 0.00093475, 7.26071650, 0.99532988, 0.99753895, 0.49258003],\
++[	-6.26227633, -0.00152556, 0.00093430, 7.26075077, 0.99533217, 0.99754014, 0.49258128],\
++[	-6.26230974, -0.00152482, 0.00093385, 7.26078492, 0.99533446, 0.99754133, 0.49258252],\
++[	-6.26234303, -0.00152408, 0.00093340, 7.26081895, 0.99533674, 0.99754253, 0.49258376],\
++[	-6.26237620, -0.00152333, 0.00093295, 7.26085286, 0.99533902, 0.99754372, 0.49258498],\
++[	-6.26240924, -0.00152259, 0.00093250, 7.26088665, 0.99534130, 0.99754490, 0.49258622],\
++[	-6.26244217, -0.00152186, 0.00093205, 7.26092032, 0.99534358, 0.99754609, 0.49258745],\
++[	-6.26247499, -0.00152112, 0.00093161, 7.26095387, 0.99534586, 0.99754728, 0.49258868],\
++[	-6.26250768, -0.00152038, 0.00093116, 7.26098730, 0.99534813, 0.99754846, 0.49258989],\
++[	-6.26254025, -0.00151964, 0.00093071, 7.26102061, 0.99535040, 0.99754965, 0.49259110],\
++[	-6.26257271, -0.00151890, 0.00093027, 7.26105381, 0.99535267, 0.99755083, 0.49259230],\
++[	-6.26260505, -0.00151817, 0.00092982, 7.26108689, 0.99535493, 0.99755201, 0.49259351],\
++[	-6.26263728, -0.00151743, 0.00092937, 7.26111985, 0.99535720, 0.99755319, 0.49259471],\
++[	-6.26266939, -0.00151670, 0.00092893, 7.26115269, 0.99535946, 0.99755437, 0.49259592],\
++[	-6.26270138, -0.00151596, 0.00092848, 7.26118542, 0.99536172, 0.99755555, 0.49259711],\
++[	-6.26273326, -0.00151523, 0.00092804, 7.26121803, 0.99536398, 0.99755673, 0.49259829],\
++[	-6.26276503, -0.00151450, 0.00092760, 7.26125053, 0.99536623, 0.99755790, 0.49259950],\
++[	-6.26279668, -0.00151377, 0.00092715, 7.26128291, 0.99536849, 0.99755908, 0.49260067],\
++[	-6.26282822, -0.00151304, 0.00092671, 7.26131518, 0.99537074, 0.99756025, 0.49260186],\
++[	-6.26285964, -0.00151231, 0.00092627, 7.26134733, 0.99537299, 0.99756143, 0.49260303],\
++[	-6.26289095, -0.00151158, 0.00092582, 7.26137937, 0.99537524, 0.99756260, 0.49260421],\
++[	-6.26292215, -0.00151085, 0.00092538, 7.26141130, 0.99537748, 0.99756377, 0.49260538],\
++[	-6.26295323, -0.00151012, 0.00092494, 7.26144311, 0.99537972, 0.99756494, 0.49260653],\
++[	-6.26298421, -0.00150939, 0.00092450, 7.26147481, 0.99538196, 0.99756611, 0.49260770],\
++[	-6.26301507, -0.00150866, 0.00092406, 7.26150640, 0.99538420, 0.99756728, 0.49260887],\
++[	-6.26304582, -0.00150794, 0.00092362, 7.26153788, 0.99538644, 0.99756844, 0.49261002],\
++[	-6.26307646, -0.00150721, 0.00092318, 7.26156925, 0.99538867, 0.99756961, 0.49261117],\
++[	-6.26310699, -0.00150649, 0.00092274, 7.26160050, 0.99539091, 0.99757078, 0.49261231],\
++[	-6.26313741, -0.00150576, 0.00092230, 7.26163165, 0.99539314, 0.99757194, 0.49261347],\
++[	-6.26316772, -0.00150504, 0.00092186, 7.26166269, 0.99539536, 0.99757310, 0.49261461],\
++[	-6.26319793, -0.00150431, 0.00092142, 7.26169361, 0.99539759, 0.99757426, 0.49261575],\
++[	-6.26322802, -0.00150359, 0.00092098, 7.26172443, 0.99539981, 0.99757542, 0.49261688],\
++[	-6.26325801, -0.00150287, 0.00092055, 7.26175513, 0.99540204, 0.99757658, 0.49261801],\
++[	-6.26328788, -0.00150215, 0.00092011, 7.26178573, 0.99540426, 0.99757774, 0.49261913],\
++[	-6.26331765, -0.00150143, 0.00091967, 7.26181623, 0.99540647, 0.99757890, 0.49262025],\
++[	-6.26334732, -0.00150071, 0.00091924, 7.26184661, 0.99540869, 0.99758006, 0.49262138],\
++[	-6.26337687, -0.00149999, 0.00091880, 7.26187688, 0.99541090, 0.99758121, 0.49262250],\
++[	-6.26340633, -0.00149927, 0.00091836, 7.26190705, 0.99541311, 0.99758236, 0.49262361],\
++[	-6.26343567, -0.00149855, 0.00091793, 7.26193712, 0.99541532, 0.99758352, 0.49262472],\
++[	-6.26346491, -0.00149784, 0.00091749, 7.26196707, 0.99541753, 0.99758467, 0.49262583],\
++[	-6.26349404, -0.00149712, 0.00091706, 7.26199692, 0.99541974, 0.99758582, 0.49262693],\
++[	-6.26352307, -0.00149640, 0.00091662, 7.26202667, 0.99542194, 0.99758697, 0.49262803],\
++[	-6.26355200, -0.00149569, 0.00091619, 7.26205631, 0.99542414, 0.99758812, 0.49262913],\
++[	-6.26358082, -0.00149498, 0.00091576, 7.26208585, 0.99542634, 0.99758927, 0.49263021],\
++[	-6.26360954, -0.00149426, 0.00091532, 7.26211528, 0.99542854, 0.99759042, 0.49263131],\
++[	-6.26363815, -0.00149355, 0.00091489, 7.26214460, 0.99543073, 0.99759156, 0.49263239],\
++[	-6.26366666, -0.00149284, 0.00091446, 7.26217383, 0.99543292, 0.99759271, 0.49263348],\
++[	-6.26369507, -0.00149212, 0.00091403, 7.26220295, 0.99543511, 0.99759385, 0.49263456],\
++[	-6.26372338, -0.00149141, 0.00091359, 7.26223197, 0.99543730, 0.99759499, 0.49263563],\
++[	-6.26375159, -0.00149070, 0.00091316, 7.26226088, 0.99543949, 0.99759613, 0.49263671],\
++[	-6.26377969, -0.00148999, 0.00091273, 7.26228970, 0.99544167, 0.99759728, 0.49263778],\
++[	-6.26380769, -0.00148928, 0.00091230, 7.26231841, 0.99544386, 0.99759841, 0.49263884],\
++[	-6.26383560, -0.00148857, 0.00091187, 7.26234702, 0.99544604, 0.99759955, 0.49263991],\
++[	-6.26386340, -0.00148787, 0.00091144, 7.26237553, 0.99544821, 0.99760069, 0.49264097],\
++[	-6.26389110, -0.00148716, 0.00091101, 7.26240394, 0.99545039, 0.99760183, 0.49264203],\
++[	-6.26391870, -0.00148645, 0.00091058, 7.26243225, 0.99545257, 0.99760296, 0.49264308],\
++[	-6.26394621, -0.00148575, 0.00091016, 7.26246046, 0.99545474, 0.99760410, 0.49264413],\
++[	-6.26397361, -0.00148504, 0.00090973, 7.26248857, 0.99545691, 0.99760523, 0.49264518],\
++[	-6.26400092, -0.00148434, 0.00090930, 7.26251658, 0.99545908, 0.99760636, 0.49264622],\
++[	-6.26402813, -0.00148363, 0.00090887, 7.26254449, 0.99546124, 0.99760750, 0.49264726],\
++[	-6.26405524, -0.00148293, 0.00090844, 7.26257231, 0.99546341, 0.99760863, 0.49264830],\
++[	-6.26408225, -0.00148223, 0.00090802, 7.26260002, 0.99546557, 0.99760976, 0.49264934],\
++[	-6.26410916, -0.00148152, 0.00090759, 7.26262764, 0.99546773, 0.99761088, 0.49265036],\
++[	-6.26413598, -0.00148082, 0.00090717, 7.26265516, 0.99546989, 0.99761201, 0.49265140],\
++[	-6.26416271, -0.00148012, 0.00090674, 7.26268258, 0.99547204, 0.99761314, 0.49265242],\
++[	-6.26418933, -0.00147942, 0.00090631, 7.26270991, 0.99547420, 0.99761426, 0.49265345],\
++[	-6.26421586, -0.00147872, 0.00090589, 7.26273714, 0.99547635, 0.99761539, 0.49265447],\
++[	-6.26424230, -0.00147802, 0.00090547, 7.26276428, 0.99547850, 0.99761651, 0.49265547],\
++[	-6.26426864, -0.00147733, 0.00090504, 7.26279132, 0.99548065, 0.99761763, 0.49265649],\
++[	-6.26429489, -0.00147663, 0.00090462, 7.26281826, 0.99548279, 0.99761875, 0.49265751],\
++[	-6.26432104, -0.00147593, 0.00090419, 7.26284511, 0.99548494, 0.99761987, 0.49265851],\
++[	-6.26434710, -0.00147523, 0.00090377, 7.26287186, 0.99548708, 0.99762099, 0.49265951],\
++[	-6.26437306, -0.00147454, 0.00090335, 7.26289852, 0.99548922, 0.99762211, 0.49266051],\
++[	-6.26439893, -0.00147384, 0.00090293, 7.26292509, 0.99549136, 0.99762323, 0.49266151],\
++[	-6.26442471, -0.00147315, 0.00090250, 7.26295156, 0.99549349, 0.99762435, 0.49266249],\
++[	-6.26445040, -0.00147246, 0.00090208, 7.26297794, 0.99549563, 0.99762546, 0.49266350],\
++[	-6.26447599, -0.00147176, 0.00090166, 7.26300423, 0.99549776, 0.99762658, 0.49266448],\
++[	-6.26450150, -0.00147107, 0.00090124, 7.26303043, 0.99549989, 0.99762769, 0.49266547],\
++[	-6.26452691, -0.00147038, 0.00090082, 7.26305653, 0.99550202, 0.99762880, 0.49266646],\
++[	-6.26455222, -0.00146969, 0.00090040, 7.26308254, 0.99550415, 0.99762991, 0.49266744],\
++[	-6.26457745, -0.00146900, 0.00089998, 7.26310846, 0.99550627, 0.99763102, 0.49266841],\
++[	-6.26460259, -0.00146831, 0.00089956, 7.26313428, 0.99550839, 0.99763213, 0.49266939],\
++[	-6.26462764, -0.00146762, 0.00089914, 7.26316002, 0.99551051, 0.99763324, 0.49267035],\
++[	-6.26465259, -0.00146693, 0.00089872, 7.26318567, 0.99551263, 0.99763435, 0.49267132],\
++[	-6.26467746, -0.00146624, 0.00089831, 7.26321122, 0.99551475, 0.99763545, 0.49267230],\
++[	-6.26470224, -0.00146555, 0.00089789, 7.26323669, 0.99551686, 0.99763656, 0.49267325],\
++[	-6.26472693, -0.00146486, 0.00089747, 7.26326207, 0.99551898, 0.99763766, 0.49267421],\
++[	-6.26475153, -0.00146418, 0.00089705, 7.26328735, 0.99552109, 0.99763877, 0.49267517],\
++[	-6.26477604, -0.00146349, 0.00089664, 7.26331255, 0.99552319, 0.99763987, 0.49267611],\
++[	-6.26480047, -0.00146281, 0.00089622, 7.26333766, 0.99552530, 0.99764097, 0.49267707],\
++[	-6.26482481, -0.00146212, 0.00089580, 7.26336268, 0.99552741, 0.99764207, 0.49267802],\
++[	-6.26484906, -0.00146144, 0.00089539, 7.26338762, 0.99552951, 0.99764317, 0.49267897],\
++[	-6.26487322, -0.00146076, 0.00089497, 7.26341246, 0.99553161, 0.99764427, 0.49267991],\
++[	-6.26489730, -0.00146007, 0.00089456, 7.26343722, 0.99553371, 0.99764537, 0.49268085],\
++[	-6.26492129, -0.00145939, 0.00089414, 7.26346189, 0.99553581, 0.99764646, 0.49268179],\
++[	-6.26494519, -0.00145871, 0.00089373, 7.26348648, 0.99553790, 0.99764756, 0.49268272],\
++[	-6.26496901, -0.00145803, 0.00089332, 7.26351098, 0.99553999, 0.99764865, 0.49268365],\
++[	-6.26499274, -0.00145735, 0.00089290, 7.26353539, 0.99554209, 0.99764975, 0.49268458],\
++[	-6.26501639, -0.00145667, 0.00089249, 7.26355972, 0.99554417, 0.99765084, 0.49268549],\
++[	-6.26503995, -0.00145599, 0.00089208, 7.26358396, 0.99554626, 0.99765193, 0.49268643],\
++[	-6.26506343, -0.00145531, 0.00089166, 7.26360811, 0.99554835, 0.99765302, 0.49268735],\
++[	-6.26508682, -0.00145463, 0.00089125, 7.26363219, 0.99555043, 0.99765411, 0.49268826],\
++[	-6.26511013, -0.00145396, 0.00089084, 7.26365617, 0.99555251, 0.99765520, 0.49268918],\
++[	-6.26513336, -0.00145328, 0.00089043, 7.26368008, 0.99555459, 0.99765629, 0.49269008],\
++[	-6.26515650, -0.00145261, 0.00089002, 7.26370389, 0.99555667, 0.99765738, 0.49269099],\
++[	-6.26517956, -0.00145193, 0.00088961, 7.26372763, 0.99555875, 0.99765846, 0.49269190],\
++[	-6.26520254, -0.00145126, 0.00088920, 7.26375128, 0.99556082, 0.99765955, 0.49269281],\
++[	-6.26522543, -0.00145058, 0.00088879, 7.26377485, 0.99556289, 0.99766063, 0.49269370],\
++[	-6.26524824, -0.00144991, 0.00088838, 7.26379834, 0.99556496, 0.99766171, 0.49269460],\
++[	-6.26527098, -0.00144924, 0.00088797, 7.26382174, 0.99556703, 0.99766280, 0.49269550],\
++[	-6.26529363, -0.00144856, 0.00088756, 7.26384506, 0.99556910, 0.99766388, 0.49269640],\
++[	-6.26531619, -0.00144789, 0.00088715, 7.26386830, 0.99557116, 0.99766496, 0.49269728],\
++[	-6.26533868, -0.00144722, 0.00088674, 7.26389146, 0.99557323, 0.99766604, 0.49269817],\
++[	-6.26536109, -0.00144655, 0.00088634, 7.26391454, 0.99557529, 0.99766711, 0.49269905],\
++[	-6.26538341, -0.00144588, 0.00088593, 7.26393753, 0.99557735, 0.99766819, 0.49269994],\
++[	-6.26540566, -0.00144521, 0.00088552, 7.26396045, 0.99557940, 0.99766927, 0.49270083],\
++[	-6.26542783, -0.00144454, 0.00088511, 7.26398329, 0.99558146, 0.99767034, 0.49270168],\
++[	-6.26544992, -0.00144387, 0.00088471, 7.26400604, 0.99558351, 0.99767142, 0.49270256],\
++[	-6.26547192, -0.00144321, 0.00088430, 7.26402872, 0.99558556, 0.99767249, 0.49270344],\
++[	-6.26549385, -0.00144254, 0.00088390, 7.26405131, 0.99558761, 0.99767356, 0.49270431],\
++[	-6.26551570, -0.00144187, 0.00088349, 7.26407383, 0.99558966, 0.99767463, 0.49270518],\
++[	-6.26553748, -0.00144121, 0.00088309, 7.26409627, 0.99559171, 0.99767571, 0.49270604],\
++[	-6.26555917, -0.00144054, 0.00088268, 7.26411863, 0.99559375, 0.99767678, 0.49270690],\
++[	-6.26558079, -0.00143988, 0.00088228, 7.26414091, 0.99559579, 0.99767784, 0.49270776],\
++[	-6.26560233, -0.00143922, 0.00088187, 7.26416311, 0.99559783, 0.99767891, 0.49270862],\
++[	-6.26562379, -0.00143855, 0.00088147, 7.26418524, 0.99559987, 0.99767998, 0.49270947],\
++[	-6.26564518, -0.00143789, 0.00088107, 7.26420729, 0.99560191, 0.99768104, 0.49271032],\
++[	-6.26566648, -0.00143723, 0.00088066, 7.26422926, 0.99560394, 0.99768211, 0.49271118],\
++[	-6.26568772, -0.00143657, 0.00088026, 7.26425115, 0.99560598, 0.99768317, 0.49271202],\
++[	-6.26570887, -0.00143590, 0.00087986, 7.26427297, 0.99560801, 0.99768424, 0.49271286],\
++[	-6.26572995, -0.00143524, 0.00087946, 7.26429471, 0.99561004, 0.99768530, 0.49271371],\
++[	-6.26575096, -0.00143458, 0.00087906, 7.26431637, 0.99561206, 0.99768636, 0.49271455],\
++[	-6.26577189, -0.00143393, 0.00087865, 7.26433796, 0.99561409, 0.99768742, 0.49271537],\
++[	-6.26579274, -0.00143327, 0.00087825, 7.26435948, 0.99561611, 0.99768848, 0.49271621],\
++[	-6.26581352, -0.00143261, 0.00087785, 7.26438092, 0.99561813, 0.99768954, 0.49271704],\
++[	-6.26583423, -0.00143195, 0.00087745, 7.26440228, 0.99562015, 0.99769059, 0.49271787],\
++[	-6.26585486, -0.00143130, 0.00087705, 7.26442357, 0.99562217, 0.99769165, 0.49271871],\
++[	-6.26587542, -0.00143064, 0.00087665, 7.26444478, 0.99562419, 0.99769271, 0.49271954],\
++[	-6.26589591, -0.00142998, 0.00087626, 7.26446592, 0.99562620, 0.99769376, 0.49272035],\
++[	-6.26591632, -0.00142933, 0.00087586, 7.26448699, 0.99562822, 0.99769482, 0.49272117],\
++[	-6.26593666, -0.00142867, 0.00087546, 7.26450798, 0.99563023, 0.99769587, 0.49272198],\
++[	-6.26595692, -0.00142802, 0.00087506, 7.26452890, 0.99563224, 0.99769692, 0.49272279],\
++[	-6.26597711, -0.00142737, 0.00087466, 7.26454975, 0.99563424, 0.99769797, 0.49272362],\
++[	-6.26599724, -0.00142671, 0.00087426, 7.26457052, 0.99563625, 0.99769902, 0.49272441],\
++[	-6.26601728, -0.00142606, 0.00087387, 7.26459122, 0.99563825, 0.99770007, 0.49272522],\
++[	-6.26603726, -0.00142541, 0.00087347, 7.26461185, 0.99564025, 0.99770112, 0.49272604],\
++[	-6.26605717, -0.00142476, 0.00087307, 7.26463241, 0.99564225, 0.99770217, 0.49272683],\
++[	-6.26607700, -0.00142411, 0.00087268, 7.26465289, 0.99564425, 0.99770321, 0.49272764],\
++[	-6.26609676, -0.00142346, 0.00087228, 7.26467331, 0.99564625, 0.99770426, 0.49272843],\
++[	-6.26611646, -0.00142281, 0.00087189, 7.26469365, 0.99564824, 0.99770530, 0.49272921],\
++[	-6.26613608, -0.00142216, 0.00087149, 7.26471392, 0.99565024, 0.99770635, 0.49273003],\
++[	-6.26615563, -0.00142151, 0.00087110, 7.26473412, 0.99565223, 0.99770739, 0.49273081],\
++[	-6.26617512, -0.00142087, 0.00087070, 7.26475425, 0.99565422, 0.99770843, 0.49273160],\
++[	-6.26619453, -0.00142022, 0.00087031, 7.26477431, 0.99565620, 0.99770947, 0.49273238],\
++[	-6.26621387, -0.00141957, 0.00086992, 7.26479430, 0.99565819, 0.99771051, 0.49273317],\
++[	-6.26623315, -0.00141893, 0.00086952, 7.26481422, 0.99566017, 0.99771155, 0.49273396],\
++[	-6.26625235, -0.00141828, 0.00086913, 7.26483407, 0.99566216, 0.99771259, 0.49273473],\
++[	-6.26627149, -0.00141764, 0.00086874, 7.26485385, 0.99566414, 0.99771362, 0.49273551],\
++[	-6.26629056, -0.00141699, 0.00086835, 7.26487356, 0.99566612, 0.99771466, 0.49273628],\
++[	-6.26630956, -0.00141635, 0.00086795, 7.26489321, 0.99566809, 0.99771570, 0.49273706],\
++[	-6.26632849, -0.00141571, 0.00086756, 7.26491278, 0.99567007, 0.99771673, 0.49273783],\
++[	-6.26634735, -0.00141506, 0.00086717, 7.26493229, 0.99567204, 0.99771776, 0.49273859],\
++[	-6.26636615, -0.00141442, 0.00086678, 7.26495173, 0.99567401, 0.99771880, 0.49273935],\
++[	-6.26638488, -0.00141378, 0.00086639, 7.26497110, 0.99567598, 0.99771983, 0.49274013],\
++[	-6.26640355, -0.00141314, 0.00086600, 7.26499041, 0.99567795, 0.99772086, 0.49274089],\
++[	-6.26642214, -0.00141250, 0.00086561, 7.26500964, 0.99567992, 0.99772189, 0.49274164],\
++[	-6.26644067, -0.00141186, 0.00086522, 7.26502881, 0.99568188, 0.99772292, 0.49274241],\
++[	-6.26645914, -0.00141122, 0.00086483, 7.26504792, 0.99568384, 0.99772395, 0.49274316],\
++[	-6.26647754, -0.00141058, 0.00086444, 7.26506695, 0.99568580, 0.99772497, 0.49274392],\
++[	-6.26649587, -0.00140995, 0.00086405, 7.26508592, 0.99568776, 0.99772600, 0.49274466],\
++[	-6.26651414, -0.00140931, 0.00086366, 7.26510483, 0.99568972, 0.99772703, 0.49274542],\
++[	-6.26653234, -0.00140867, 0.00086328, 7.26512367, 0.99569168, 0.99772805, 0.49274618],\
++[	-6.26655048, -0.00140804, 0.00086289, 7.26514244, 0.99569363, 0.99772908, 0.49274690],\
++[	-6.26656855, -0.00140740, 0.00086250, 7.26516115, 0.99569558, 0.99773010, 0.49274765],\
++[	-6.26658656, -0.00140677, 0.00086211, 7.26517979, 0.99569753, 0.99773112, 0.49274839],\
++[	-6.26660450, -0.00140613, 0.00086173, 7.26519837, 0.99569948, 0.99773214, 0.49274912],\
++[	-6.26662238, -0.00140550, 0.00086134, 7.26521688, 0.99570143, 0.99773316, 0.49274986],\
++[	-6.26664020, -0.00140486, 0.00086096, 7.26523533, 0.99570337, 0.99773418, 0.49275059],\
++[	-6.26665795, -0.00140423, 0.00086057, 7.26525372, 0.99570532, 0.99773520, 0.49275132],\
++[	-6.26667564, -0.00140360, 0.00086018, 7.26527204, 0.99570726, 0.99773622, 0.49275206],\
++[	-6.26669326, -0.00140297, 0.00085980, 7.26529030, 0.99570920, 0.99773723, 0.49275276],\
++[	-6.26671083, -0.00140234, 0.00085942, 7.26530849, 0.99571114, 0.99773825, 0.49275350],\
++[	-6.26672833, -0.00140171, 0.00085903, 7.26532662, 0.99571307, 0.99773926, 0.49275423],\
++[	-6.26674577, -0.00140108, 0.00085865, 7.26534469, 0.99571501, 0.99774028, 0.49275495],\
++[	-6.26676314, -0.00140045, 0.00085826, 7.26536270, 0.99571694, 0.99774129, 0.49275567],\
++[	-6.26678046, -0.00139982, 0.00085788, 7.26538064, 0.99571887, 0.99774230, 0.49275639],\
++[	-6.26679771, -0.00139919, 0.00085750, 7.26539852, 0.99572080, 0.99774331, 0.49275711],\
++[	-6.26681490, -0.00139856, 0.00085711, 7.26541634, 0.99572273, 0.99774433, 0.49275782],\
++[	-6.26683203, -0.00139793, 0.00085673, 7.26543410, 0.99572466, 0.99774533, 0.49275852],\
++[	-6.26684910, -0.00139731, 0.00085635, 7.26545179, 0.99572658, 0.99774634, 0.49275924],\
++[	-6.26686611, -0.00139668, 0.00085597, 7.26546943, 0.99572851, 0.99774735, 0.49275995],\
++[	-6.26688306, -0.00139605, 0.00085559, 7.26548700, 0.99573043, 0.99774836, 0.49276065],\
++[	-6.26689994, -0.00139543, 0.00085521, 7.26550451, 0.99573235, 0.99774936, 0.49276134],\
++[	-6.26691677, -0.00139481, 0.00085482, 7.26552196, 0.99573426, 0.99775037, 0.49276204],\
++[	-6.26693354, -0.00139418, 0.00085444, 7.26553936, 0.99573618, 0.99775137, 0.49276274],\
++[	-6.26695024, -0.00139356, 0.00085406, 7.26555669, 0.99573809, 0.99775238, 0.49276344],\
++[	-6.26696689, -0.00139293, 0.00085368, 7.26557396, 0.99574001, 0.99775338, 0.49276413],\
++[	-6.26698348, -0.00139231, 0.00085331, 7.26559117, 0.99574192, 0.99775438, 0.49276484],\
++[	-6.26700001, -0.00139169, 0.00085293, 7.26560832, 0.99574383, 0.99775538, 0.49276553],\
++[	-6.26701648, -0.00139107, 0.00085255, 7.26562541, 0.99574574, 0.99775638, 0.49276621],\
++[	-6.26703289, -0.00139045, 0.00085217, 7.26564245, 0.99574764, 0.99775738, 0.49276691],\
++[	-6.26704925, -0.00138983, 0.00085179, 7.26565942, 0.99574955, 0.99775838, 0.49276759],\
++[	-6.26706554, -0.00138921, 0.00085141, 7.26567633, 0.99575145, 0.99775938, 0.49276826],\
++[	-6.26708178, -0.00138859, 0.00085104, 7.26569319, 0.99575335, 0.99776038, 0.49276895],\
++[	-6.26709796, -0.00138797, 0.00085066, 7.26570999, 0.99575525, 0.99776137, 0.49276963],\
++[	-6.26711408, -0.00138735, 0.00085028, 7.26572673, 0.99575715, 0.99776237, 0.49277030],\
++[	-6.26713015, -0.00138674, 0.00084990, 7.26574341, 0.99575904, 0.99776336, 0.49277097],\
++[	-6.26714616, -0.00138612, 0.00084953, 7.26576004, 0.99576094, 0.99776435, 0.49277165],\
++[	-6.26716211, -0.00138550, 0.00084915, 7.26577661, 0.99576283, 0.99776535, 0.49277232],\
++[	-6.26717800, -0.00138489, 0.00084878, 7.26579312, 0.99576472, 0.99776634, 0.49277298],\
++[	-6.26719384, -0.00138427, 0.00084840, 7.26580957, 0.99576661, 0.99776733, 0.49277366],\
++[	-6.26720962, -0.00138366, 0.00084803, 7.26582597, 0.99576850, 0.99776832, 0.49277432],\
++[	-6.26722535, -0.00138304, 0.00084765, 7.26584231, 0.99577038, 0.99776931, 0.49277499],\
++[	-6.26724102, -0.00138243, 0.00084728, 7.26585859, 0.99577227, 0.99777029, 0.49277565],\
++[	-6.26725663, -0.00138181, 0.00084690, 7.26587482, 0.99577415, 0.99777128, 0.49277630],\
++[	-6.26727219, -0.00138120, 0.00084653, 7.26589099, 0.99577603, 0.99777227, 0.49277698],\
++[	-6.26728769, -0.00138059, 0.00084616, 7.26590710, 0.99577791, 0.99777325, 0.49277763],\
++[	-6.26730314, -0.00137998, 0.00084578, 7.26592316, 0.99577979, 0.99777424, 0.49277828],\
++[	-6.26731854, -0.00137937, 0.00084541, 7.26593917, 0.99578166, 0.99777522, 0.49277893],\
++[	-6.26733388, -0.00137876, 0.00084504, 7.26595512, 0.99578354, 0.99777621, 0.49277959],\
++[	-6.26734916, -0.00137815, 0.00084467, 7.26597101, 0.99578541, 0.99777719, 0.49278024],\
++[	-6.26736439, -0.00137754, 0.00084429, 7.26598685, 0.99578728, 0.99777817, 0.49278088],\
++[	-6.26737957, -0.00137693, 0.00084392, 7.26600264, 0.99578915, 0.99777915, 0.49278153],\
++[	-6.26739469, -0.00137632, 0.00084355, 7.26601837, 0.99579102, 0.99778013, 0.49278219],\
++[	-6.26740976, -0.00137571, 0.00084318, 7.26603405, 0.99579289, 0.99778111, 0.49278281],\
++[	-6.26742477, -0.00137510, 0.00084281, 7.26604967, 0.99579475, 0.99778209, 0.49278347],\
++[	-6.26743974, -0.00137450, 0.00084244, 7.26606524, 0.99579661, 0.99778306, 0.49278410],\
++[	-6.26745464, -0.00137389, 0.00084207, 7.26608075, 0.99579847, 0.99778404, 0.49278472],\
++[	-6.26746950, -0.00137328, 0.00084170, 7.26609622, 0.99580033, 0.99778502, 0.49278536],\
++[	-6.26748430, -0.00137268, 0.00084133, 7.26611162, 0.99580219, 0.99778599, 0.49278600],\
++[	-6.26749906, -0.00137207, 0.00084096, 7.26612698, 0.99580405, 0.99778696, 0.49278663],\
++[	-6.26751375, -0.00137147, 0.00084059, 7.26614228, 0.99580590, 0.99778794, 0.49278724],\
++[	-6.26752840, -0.00137087, 0.00084022, 7.26615753, 0.99580776, 0.99778891, 0.49278789],\
++[	-6.26754300, -0.00137026, 0.00083986, 7.26617273, 0.99580961, 0.99778988, 0.49278852],\
++[	-6.26755754, -0.00136966, 0.00083949, 7.26618788, 0.99581146, 0.99779085, 0.49278914],\
++[	-6.26757203, -0.00136906, 0.00083912, 7.26620297, 0.99581331, 0.99779182, 0.49278975],\
++[	-6.26758647, -0.00136846, 0.00083875, 7.26621801, 0.99581515, 0.99779279, 0.49279037],\
++[	-6.26760086, -0.00136786, 0.00083839, 7.26623300, 0.99581700, 0.99779376, 0.49279099],\
++[	-6.26761520, -0.00136725, 0.00083802, 7.26624794, 0.99581884, 0.99779472, 0.49279161],\
++[	-6.26762949, -0.00136665, 0.00083765, 7.26626283, 0.99582068, 0.99779569, 0.49279223],\
++[	-6.26764372, -0.00136605, 0.00083729, 7.26627767, 0.99582252, 0.99779666, 0.49279284],\
++[	-6.26765791, -0.00136546, 0.00083692, 7.26629245, 0.99582436, 0.99779762, 0.49279345],\
++[	-6.26767205, -0.00136486, 0.00083656, 7.26630719, 0.99582620, 0.99779859, 0.49279407],\
++[	-6.26768613, -0.00136426, 0.00083619, 7.26632187, 0.99582804, 0.99779955, 0.49279468],\
++[	-6.26770017, -0.00136366, 0.00083583, 7.26633651, 0.99582987, 0.99780051, 0.49279528],\
++[	-6.26771416, -0.00136306, 0.00083546, 7.26635109, 0.99583170, 0.99780147, 0.49279588],\
++[	-6.26772809, -0.00136247, 0.00083510, 7.26636562, 0.99583353, 0.99780243, 0.49279649],\
++[	-6.26774198, -0.00136187, 0.00083474, 7.26638011, 0.99583536, 0.99780339, 0.49279710],\
++[	-6.26775582, -0.00136128, 0.00083437, 7.26639454, 0.99583719, 0.99780435, 0.49279770],\
++[	-6.26776961, -0.00136068, 0.00083401, 7.26640893, 0.99583902, 0.99780531, 0.49279829],\
++[	-6.26778335, -0.00136009, 0.00083365, 7.26642326, 0.99584084, 0.99780627, 0.49279888],\
++[	-6.26779704, -0.00135949, 0.00083328, 7.26643755, 0.99584266, 0.99780722, 0.49279946],\
++[	-6.26781069, -0.00135890, 0.00083292, 7.26645179, 0.99584449, 0.99780818, 0.49280008],\
++[	-6.26782428, -0.00135831, 0.00083256, 7.26646598, 0.99584631, 0.99780913, 0.49280067],\
++[	-6.26783783, -0.00135771, 0.00083220, 7.26648012, 0.99584812, 0.99781009, 0.49280125],\
++[	-6.26785133, -0.00135712, 0.00083184, 7.26649421, 0.99584994, 0.99781104, 0.49280185],\
++[	-6.26786479, -0.00135653, 0.00083148, 7.26650826, 0.99585175, 0.99781199, 0.49280244],\
++[	-6.26787819, -0.00135594, 0.00083111, 7.26652225, 0.99585357, 0.99781295, 0.49280301],\
++[	-6.26789155, -0.00135535, 0.00083075, 7.26653620, 0.99585538, 0.99781390, 0.49280360],\
++[	-6.26790486, -0.00135476, 0.00083039, 7.26655010, 0.99585719, 0.99781485, 0.49280419],\
++[	-6.26791812, -0.00135417, 0.00083003, 7.26656395, 0.99585900, 0.99781580, 0.49280476],\
++[	-6.26793134, -0.00135358, 0.00082967, 7.26657776, 0.99586081, 0.99781675, 0.49280534],\
++[	-6.26794451, -0.00135299, 0.00082931, 7.26659152, 0.99586261, 0.99781769, 0.49280594],\
++[	-6.26795764, -0.00135240, 0.00082896, 7.26660523, 0.99586442, 0.99781864, 0.49280650],\
++[	-6.26797071, -0.00135182, 0.00082860, 7.26661890, 0.99586622, 0.99781959, 0.49280708],\
++[	-6.26798374, -0.00135123, 0.00082824, 7.26663252, 0.99586802, 0.99782053, 0.49280764],\
++[	-6.26799673, -0.00135064, 0.00082788, 7.26664609, 0.99586982, 0.99782148, 0.49280822],\
++[	-6.26800967, -0.00135006, 0.00082752, 7.26665961, 0.99587162, 0.99782242, 0.49280878],\
++[	-6.26802256, -0.00134947, 0.00082717, 7.26667309, 0.99587341, 0.99782336, 0.49280935],\
++[	-6.26803541, -0.00134889, 0.00082681, 7.26668653, 0.99587521, 0.99782431, 0.49280992],\
++[	-6.26804822, -0.00134830, 0.00082645, 7.26669991, 0.99587700, 0.99782525, 0.49281048],\
++[	-6.26806098, -0.00134772, 0.00082609, 7.26671326, 0.99587879, 0.99782619, 0.49281107],\
++[	-6.26807369, -0.00134713, 0.00082574, 7.26672655, 0.99588058, 0.99782713, 0.49281162],\
++[	-6.26808636, -0.00134655, 0.00082538, 7.26673981, 0.99588237, 0.99782807, 0.49281218],\
++[	-6.26809898, -0.00134597, 0.00082503, 7.26675301, 0.99588416, 0.99782900, 0.49281274],\
++[	-6.26811156, -0.00134539, 0.00082467, 7.26676617, 0.99588595, 0.99782994, 0.49281329],\
++[	-6.26812410, -0.00134481, 0.00082432, 7.26677929, 0.99588773, 0.99783088, 0.49281384],\
++[	-6.26813659, -0.00134422, 0.00082396, 7.26679236, 0.99588951, 0.99783181, 0.49281439],\
++[	-6.26814904, -0.00134364, 0.00082361, 7.26680539, 0.99589129, 0.99783275, 0.49281496],\
++[	-6.26816144, -0.00134306, 0.00082325, 7.26681838, 0.99589307, 0.99783368, 0.49281552],\
++[	-6.26817380, -0.00134248, 0.00082290, 7.26683132, 0.99589485, 0.99783462, 0.49281605],\
++[	-6.26818612, -0.00134191, 0.00082255, 7.26684421, 0.99589663, 0.99783555, 0.49281661],\
++[	-6.26819839, -0.00134133, 0.00082219, 7.26685706, 0.99589840, 0.99783648, 0.49281716],\
++[	-6.26821062, -0.00134075, 0.00082184, 7.26686987, 0.99590018, 0.99783741, 0.49281769],\
++[	-6.26822281, -0.00134017, 0.00082149, 7.26688264, 0.99590195, 0.99783834, 0.49281824],\
++[	-6.26823495, -0.00133959, 0.00082113, 7.26689536, 0.99590372, 0.99783927, 0.49281878],\
++[	-6.26824705, -0.00133902, 0.00082078, 7.26690804, 0.99590549, 0.99784020, 0.49281933],\
++[	-6.26825911, -0.00133844, 0.00082043, 7.26692067, 0.99590725, 0.99784113, 0.49281987],\
++[	-6.26827113, -0.00133787, 0.00082008, 7.26693326, 0.99590902, 0.99784206, 0.49282040],\
++[	-6.26828310, -0.00133729, 0.00081973, 7.26694581, 0.99591078, 0.99784298, 0.49282094],\
++[	-6.26829504, -0.00133672, 0.00081938, 7.26695832, 0.99591255, 0.99784391, 0.49282147],\
++[	-6.26830693, -0.00133614, 0.00081902, 7.26697079, 0.99591431, 0.99784483, 0.49282201],\
++[	-6.26831878, -0.00133557, 0.00081867, 7.26698321, 0.99591607, 0.99784576, 0.49282254],\
++[	-6.26833058, -0.00133499, 0.00081832, 7.26699559, 0.99591783, 0.99784668, 0.49282308],\
++[	-6.26834235, -0.00133442, 0.00081797, 7.26700793, 0.99591958, 0.99784760, 0.49282360],\
++[	-6.26835407, -0.00133385, 0.00081762, 7.26702023, 0.99592134, 0.99784853, 0.49282414],\
++[	-6.26836576, -0.00133328, 0.00081728, 7.26703248, 0.99592309, 0.99784945, 0.49282465],\
++[	-6.26837740, -0.00133271, 0.00081693, 7.26704469, 0.99592485, 0.99785037, 0.49282520],\
++[	-6.26838900, -0.00133214, 0.00081658, 7.26705687, 0.99592660, 0.99785129, 0.49282572],\
++[	-6.26840056, -0.00133157, 0.00081623, 7.26706900, 0.99592835, 0.99785221, 0.49282624],\
++[	-6.26841209, -0.00133100, 0.00081588, 7.26708109, 0.99593009, 0.99785312, 0.49282676],\
++[	-6.26842357, -0.00133043, 0.00081553, 7.26709314, 0.99593184, 0.99785404, 0.49282728],\
++[	-6.26843501, -0.00132986, 0.00081519, 7.26710515, 0.99593359, 0.99785496, 0.49282780],\
++[	-6.26844641, -0.00132929, 0.00081484, 7.26711712, 0.99593533, 0.99785587, 0.49282829],\
++[	-6.26845777, -0.00132872, 0.00081449, 7.26712905, 0.99593707, 0.99785679, 0.49282883],\
++[	-6.26846909, -0.00132815, 0.00081414, 7.26714093, 0.99593881, 0.99785770, 0.49282934],\
++[	-6.26848037, -0.00132759, 0.00081380, 7.26715278, 0.99594055, 0.99785862, 0.49282986],\
++[	-6.26849161, -0.00132702, 0.00081345, 7.26716459, 0.99594229, 0.99785953, 0.49283037],\
++[	-6.26850281, -0.00132645, 0.00081311, 7.26717636, 0.99594402, 0.99786044, 0.49283087],\
++[	-6.26851397, -0.00132589, 0.00081276, 7.26718809, 0.99594576, 0.99786135, 0.49283138],\
++[	-6.26852510, -0.00132532, 0.00081242, 7.26719977, 0.99594749, 0.99786226, 0.49283189],\
++[	-6.26853618, -0.00132476, 0.00081207, 7.26721142, 0.99594922, 0.99786317, 0.49283239],\
++[	-6.26854723, -0.00132419, 0.00081173, 7.26722303, 0.99595095, 0.99786408, 0.49283291],\
++[	-6.26855824, -0.00132363, 0.00081138, 7.26723461, 0.99595268, 0.99786499, 0.49283341],\
++[	-6.26856921, -0.00132307, 0.00081104, 7.26724614, 0.99595441, 0.99786590, 0.49283391],\
++[	-6.26858014, -0.00132251, 0.00081069, 7.26725763, 0.99595614, 0.99786680, 0.49283441],\
++[	-6.26859103, -0.00132194, 0.00081035, 7.26726909, 0.99595786, 0.99786771, 0.49283490],\
++[	-6.26860188, -0.00132138, 0.00081001, 7.26728050, 0.99595958, 0.99786861, 0.49283543],\
++[	-6.26861270, -0.00132082, 0.00080966, 7.26729188, 0.99596131, 0.99786952, 0.49283590],\
++[	-6.26862348, -0.00132026, 0.00080932, 7.26730322, 0.99596303, 0.99787042, 0.49283641],\
++[	-6.26863422, -0.00131970, 0.00080898, 7.26731452, 0.99596474, 0.99787132, 0.49283690],\
++[	-6.26864493, -0.00131914, 0.00080864, 7.26732579, 0.99596646, 0.99787223, 0.49283740],\
++[	-6.26865559, -0.00131858, 0.00080829, 7.26733701, 0.99596818, 0.99787313, 0.49283789],\
++[	-6.26866622, -0.00131802, 0.00080795, 7.26734820, 0.99596989, 0.99787403, 0.49283838],\
++[	-6.26867681, -0.00131746, 0.00080761, 7.26735935, 0.99597160, 0.99787493, 0.49283886],\
++[	-6.26868737, -0.00131690, 0.00080727, 7.26737047, 0.99597332, 0.99787583, 0.49283935],\
++[	-6.26869789, -0.00131635, 0.00080693, 7.26738154, 0.99597503, 0.99787673, 0.49283983],\
++[	-6.26870837, -0.00131579, 0.00080659, 7.26739258, 0.99597673, 0.99787762, 0.49284032],\
++[	-6.26871882, -0.00131523, 0.00080625, 7.26740358, 0.99597844, 0.99787852, 0.49284083],\
++[	-6.26872923, -0.00131468, 0.00080591, 7.26741455, 0.99598015, 0.99787942, 0.49284129],\
++[	-6.26873960, -0.00131412, 0.00080557, 7.26742548, 0.99598185, 0.99788031, 0.49284178],\
++[	-6.26874993, -0.00131357, 0.00080523, 7.26743637, 0.99598355, 0.99788121, 0.49284226],\
++[	-6.26876024, -0.00131301, 0.00080489, 7.26744723, 0.99598526, 0.99788210, 0.49284273],\
++[	-6.26877050, -0.00131246, 0.00080455, 7.26745804, 0.99598696, 0.99788299, 0.49284320],\
++[	-6.26878073, -0.00131190, 0.00080421, 7.26746883, 0.99598865, 0.99788389, 0.49284369],\
++[	-6.26879092, -0.00131135, 0.00080387, 7.26747958, 0.99599035, 0.99788478, 0.49284417],\
++[	-6.26880108, -0.00131080, 0.00080354, 7.26749029, 0.99599205, 0.99788567, 0.49284465],\
++[	-6.26881120, -0.00131024, 0.00080320, 7.26750096, 0.99599374, 0.99788656, 0.49284510],\
++[	-6.26882129, -0.00130969, 0.00080286, 7.26751160, 0.99599543, 0.99788745, 0.49284559],\
++[	-6.26883135, -0.00130914, 0.00080252, 7.26752221, 0.99599713, 0.99788834, 0.49284606],\
++[	-6.26884136, -0.00130859, 0.00080219, 7.26753278, 0.99599882, 0.99788923, 0.49284653],\
++[	-6.26885135, -0.00130804, 0.00080185, 7.26754331, 0.99600050, 0.99789011, 0.49284699],\
++[	-6.26886129, -0.00130749, 0.00080151, 7.26755381, 0.99600219, 0.99789100, 0.49284746],\
++[	-6.26887121, -0.00130694, 0.00080118, 7.26756427, 0.99600388, 0.99789189, 0.49284793],\
++[	-6.26888109, -0.00130639, 0.00080084, 7.26757470, 0.99600556, 0.99789277, 0.49284838],\
++[	-6.26889093, -0.00130584, 0.00080051, 7.26758509, 0.99600724, 0.99789365, 0.49284885],\
++[	-6.26890074, -0.00130529, 0.00080017, 7.26759545, 0.99600893, 0.99789454, 0.49284932],\
++[	-6.26891052, -0.00130474, 0.00079984, 7.26760578, 0.99601061, 0.99789542, 0.49284977],\
++[	-6.26892026, -0.00130420, 0.00079950, 7.26761607, 0.99601228, 0.99789630, 0.49285024],\
++[	-6.26892997, -0.00130365, 0.00079917, 7.26762633, 0.99601396, 0.99789719, 0.49285069],\
++[	-6.26893965, -0.00130310, 0.00079883, 7.26763655, 0.99601564, 0.99789807, 0.49285114],\
++[	-6.26894929, -0.00130256, 0.00079850, 7.26764674, 0.99601731, 0.99789895, 0.49285162],\
++[	-6.26895890, -0.00130201, 0.00079816, 7.26765689, 0.99601899, 0.99789983, 0.49285206],\
++[	-6.26896848, -0.00130146, 0.00079783, 7.26766701, 0.99602066, 0.99790070, 0.49285251],\
++[	-6.26897802, -0.00130092, 0.00079750, 7.26767710, 0.99602233, 0.99790158, 0.49285297],\
++[	-6.26898753, -0.00130038, 0.00079717, 7.26768715, 0.99602400, 0.99790246, 0.49285344],\
++[	-6.26899700, -0.00129983, 0.00079683, 7.26769717, 0.99602566, 0.99790334, 0.49285388],\
++[	-6.26900645, -0.00129929, 0.00079650, 7.26770716, 0.99602733, 0.99790421, 0.49285432],\
++[	-6.26901586, -0.00129875, 0.00079617, 7.26771711, 0.99602900, 0.99790509, 0.49285477],\
++[	-6.26902524, -0.00129820, 0.00079584, 7.26772703, 0.99603066, 0.99790596, 0.49285523],\
++[	-6.26903458, -0.00129766, 0.00079550, 7.26773692, 0.99603232, 0.99790683, 0.49285566],\
++[	-6.26904390, -0.00129712, 0.00079517, 7.26774678, 0.99603398, 0.99790771, 0.49285611],\
++[	-6.26905318, -0.00129658, 0.00079484, 7.26775660, 0.99603564, 0.99790858, 0.49285655],\
++[	-6.26906243, -0.00129604, 0.00079451, 7.26776639, 0.99603730, 0.99790945, 0.49285701],\
++[	-6.26907164, -0.00129550, 0.00079418, 7.26777615, 0.99603896, 0.99791032, 0.49285743],\
++[	-6.26908083, -0.00129496, 0.00079385, 7.26778587, 0.99604061, 0.99791119, 0.49285787],\
++[	-6.26908998, -0.00129442, 0.00079352, 7.26779557, 0.99604227, 0.99791206, 0.49285833],\
++[	-6.26909911, -0.00129388, 0.00079319, 7.26780523, 0.99604392, 0.99791293, 0.49285876],\
++[	-6.26910820, -0.00129334, 0.00079286, 7.26781486, 0.99604557, 0.99791380, 0.49285921],\
++[	-6.26911726, -0.00129280, 0.00079253, 7.26782446, 0.99604722, 0.99791467, 0.49285963],\
++[	-6.26912629, -0.00129226, 0.00079220, 7.26783402, 0.99604887, 0.99791553, 0.49286007],\
++[	-6.26913528, -0.00129173, 0.00079188, 7.26784356, 0.99605051, 0.99791640, 0.49286049],\
++[	-6.26914425, -0.00129119, 0.00079155, 7.26785306, 0.99605216, 0.99791726, 0.49286093],\
++[	-6.26915318, -0.00129065, 0.00079122, 7.26786253, 0.99605380, 0.99791813, 0.49286138],\
++[	-6.26916209, -0.00129012, 0.00079089, 7.26787197, 0.99605545, 0.99791899, 0.49286178],\
++[	-6.26917096, -0.00128958, 0.00079056, 7.26788138, 0.99605709, 0.99791985, 0.49286223],\
++[	-6.26917981, -0.00128905, 0.00079024, 7.26789076, 0.99605873, 0.99792072, 0.49286266],\
++[	-6.26918862, -0.00128851, 0.00078991, 7.26790011, 0.99606037, 0.99792158, 0.49286308],\
++[	-6.26919740, -0.00128798, 0.00078958, 7.26790942, 0.99606201, 0.99792244, 0.49286350],\
++[	-6.26920615, -0.00128744, 0.00078926, 7.26791871, 0.99606364, 0.99792330, 0.49286392],\
++[	-6.26921488, -0.00128691, 0.00078893, 7.26792797, 0.99606528, 0.99792416, 0.49286436],\
++[	-6.26922357, -0.00128638, 0.00078860, 7.26793719, 0.99606691, 0.99792502, 0.49286478],\
++[	-6.26923223, -0.00128585, 0.00078828, 7.26794639, 0.99606854, 0.99792588, 0.49286521],\
++[	-6.26924086, -0.00128531, 0.00078795, 7.26795555, 0.99607017, 0.99792673, 0.49286564],\
++[	-6.26924947, -0.00128478, 0.00078763, 7.26796468, 0.99607180, 0.99792759, 0.49286605],\
++[	-6.26925804, -0.00128425, 0.00078730, 7.26797379, 0.99607343, 0.99792845, 0.49286646],\
++[	-6.26926658, -0.00128372, 0.00078698, 7.26798286, 0.99607506, 0.99792930, 0.49286689],\
++[	-6.26927510, -0.00128319, 0.00078665, 7.26799191, 0.99607668, 0.99793016, 0.49286730],\
++[	-6.26928358, -0.00128266, 0.00078633, 7.26800092, 0.99607831, 0.99793101, 0.49286770],\
++[	-6.26929204, -0.00128213, 0.00078601, 7.26800991, 0.99607993, 0.99793186, 0.49286812],\
++[	-6.26930047, -0.00128160, 0.00078568, 7.26801887, 0.99608155, 0.99793272, 0.49286854],\
++[	-6.26930887, -0.00128107, 0.00078536, 7.26802779, 0.99608317, 0.99793357, 0.49286895],\
++[	-6.26931724, -0.00128054, 0.00078504, 7.26803669, 0.99608479, 0.99793442, 0.49286937],\
++[	-6.26932558, -0.00128002, 0.00078471, 7.26804556, 0.99608641, 0.99793527, 0.49286977],\
++[	-6.26933389, -0.00127949, 0.00078439, 7.26805440, 0.99608802, 0.99793612, 0.49287019],\
++[	-6.26934217, -0.00127896, 0.00078407, 7.26806321, 0.99608964, 0.99793697, 0.49287058],\
++[	-6.26935043, -0.00127844, 0.00078375, 7.26807199, 0.99609125, 0.99793782, 0.49287100],\
++[	-6.26935866, -0.00127791, 0.00078342, 7.26808075, 0.99609287, 0.99793867, 0.49287142],\
++[	-6.26936686, -0.00127738, 0.00078310, 7.26808947, 0.99609448, 0.99793951, 0.49287182],\
++[	-6.26937503, -0.00127686, 0.00078278, 7.26809817, 0.99609609, 0.99794036, 0.49287224],\
++[	-6.26938317, -0.00127634, 0.00078246, 7.26810683, 0.99609769, 0.99794120, 0.49287263],\
++[	-6.26939129, -0.00127581, 0.00078214, 7.26811547, 0.99609930, 0.99794205, 0.49287302],\
++[	-6.26939937, -0.00127529, 0.00078182, 7.26812409, 0.99610091, 0.99794289, 0.49287345],\
++[	-6.26940743, -0.00127476, 0.00078150, 7.26813267, 0.99610251, 0.99794374, 0.49287384],\
++[	-6.26941547, -0.00127424, 0.00078118, 7.26814123, 0.99610411, 0.99794458, 0.49287423],\
++[	-6.26942347, -0.00127372, 0.00078086, 7.26814975, 0.99610572, 0.99794542, 0.49287464],\
++[	-6.26943145, -0.00127320, 0.00078054, 7.26815825, 0.99610732, 0.99794626, 0.49287504],\
++[	-6.26943940, -0.00127267, 0.00078022, 7.26816673, 0.99610892, 0.99794711, 0.49287543],\
++[	-6.26944732, -0.00127215, 0.00077990, 7.26817517, 0.99611051, 0.99794795, 0.49287581],\
++[	-6.26945522, -0.00127163, 0.00077958, 7.26818359, 0.99611211, 0.99794879, 0.49287621],\
++[	-6.26946309, -0.00127111, 0.00077926, 7.26819198, 0.99611370, 0.99794962, 0.49287661],\
++[	-6.26947093, -0.00127059, 0.00077895, 7.26820034, 0.99611530, 0.99795046, 0.49287701],\
++[	-6.26947875, -0.00127007, 0.00077863, 7.26820868, 0.99611689, 0.99795130, 0.49287739],\
++[	-6.26948654, -0.00126955, 0.00077831, 7.26821698, 0.99611848, 0.99795214, 0.49287779],\
++[	-6.26949430, -0.00126903, 0.00077799, 7.26822527, 0.99612007, 0.99795297, 0.49287817],\
++[	-6.26950204, -0.00126852, 0.00077768, 7.26823352, 0.99612166, 0.99795381, 0.49287857],\
++[	-6.26950975, -0.00126800, 0.00077736, 7.26824175, 0.99612325, 0.99795464, 0.49287896],\
++[	-6.26951743, -0.00126748, 0.00077704, 7.26824995, 0.99612484, 0.99795548, 0.49287934],\
++[	-6.26952509, -0.00126696, 0.00077673, 7.26825813, 0.99612642, 0.99795631, 0.49287973],\
++[	-6.26953272, -0.00126645, 0.00077641, 7.26826627, 0.99612800, 0.99795714, 0.49288012],\
++[	-6.26954033, -0.00126593, 0.00077609, 7.26827440, 0.99612959, 0.99795798, 0.49288050],\
++[	-6.26954791, -0.00126541, 0.00077578, 7.26828249, 0.99613117, 0.99795881, 0.49288087],\
++[	-6.26955546, -0.00126490, 0.00077546, 7.26829056, 0.99613275, 0.99795964, 0.49288126],\
++[	-6.26956299, -0.00126438, 0.00077515, 7.26829860, 0.99613433, 0.99796047, 0.49288164],\
++[	-6.26957049, -0.00126387, 0.00077483, 7.26830662, 0.99613590, 0.99796130, 0.49288203],\
++[	-6.26957797, -0.00126335, 0.00077452, 7.26831461, 0.99613748, 0.99796213, 0.49288240],\
++[	-6.26958542, -0.00126284, 0.00077420, 7.26832258, 0.99613905, 0.99796296, 0.49288278],\
++[	-6.26959285, -0.00126233, 0.00077389, 7.26833052, 0.99614063, 0.99796378, 0.49288317],\
++[	-6.26960025, -0.00126181, 0.00077357, 7.26833844, 0.99614220, 0.99796461, 0.49288354],\
++[	-6.26960763, -0.00126130, 0.00077326, 7.26834632, 0.99614377, 0.99796544, 0.49288392],\
++[	-6.26961498, -0.00126079, 0.00077295, 7.26835419, 0.99614534, 0.99796626, 0.49288432],\
++[	-6.26962230, -0.00126028, 0.00077263, 7.26836203, 0.99614691, 0.99796709, 0.49288467],\
++[	-6.26962961, -0.00125977, 0.00077232, 7.26836984, 0.99614847, 0.99796791, 0.49288504],\
++[	-6.26963688, -0.00125926, 0.00077201, 7.26837763, 0.99615004, 0.99796874, 0.49288540],\
++[	-6.26964414, -0.00125874, 0.00077170, 7.26838539, 0.99615160, 0.99796956, 0.49288580],\
++[	-6.26965137, -0.00125823, 0.00077138, 7.26839313, 0.99615317, 0.99797038, 0.49288618],\
++[	-6.26965857, -0.00125772, 0.00077107, 7.26840084, 0.99615473, 0.99797120, 0.49288651],\
++[	-6.26966575, -0.00125722, 0.00077076, 7.26840853, 0.99615629, 0.99797202, 0.49288691],\
++[	-6.26967290, -0.00125671, 0.00077045, 7.26841620, 0.99615785, 0.99797284, 0.49288729],\
++[	-6.26968003, -0.00125620, 0.00077014, 7.26842384, 0.99615941, 0.99797366, 0.49288765],\
++[	-6.26968714, -0.00125569, 0.00076983, 7.26843145, 0.99616097, 0.99797448, 0.49288801],\
++[	-6.26969422, -0.00125518, 0.00076952, 7.26843904, 0.99616252, 0.99797530, 0.49288835],\
++[	-6.26970128, -0.00125468, 0.00076920, 7.26844661, 0.99616408, 0.99797612, 0.49288872],\
++[	-6.26970832, -0.00125417, 0.00076889, 7.26845415, 0.99616563, 0.99797694, 0.49288910],\
++[	-6.26971533, -0.00125366, 0.00076858, 7.26846167, 0.99616718, 0.99797775, 0.49288946],\
++[	-6.26972232, -0.00125316, 0.00076827, 7.26846916, 0.99616873, 0.99797857, 0.49288983],\
++[	-6.26972928, -0.00125265, 0.00076797, 7.26847663, 0.99617028, 0.99797938, 0.49289019],\
++[	-6.26973622, -0.00125214, 0.00076766, 7.26848408, 0.99617183, 0.99798020, 0.49289056],\
++[	-6.26974314, -0.00125164, 0.00076735, 7.26849150, 0.99617338, 0.99798101, 0.49289092],\
++[	-6.26975003, -0.00125114, 0.00076704, 7.26849890, 0.99617492, 0.99798183, 0.49289126],\
++[	-6.26975691, -0.00125063, 0.00076673, 7.26850627, 0.99617647, 0.99798264, 0.49289162],\
++[	-6.26976375, -0.00125013, 0.00076642, 7.26851363, 0.99617801, 0.99798345, 0.49289199],\
++[	-6.26977058, -0.00124962, 0.00076611, 7.26852095, 0.99617955, 0.99798426, 0.49289234],\
++[	-6.26977738, -0.00124912, 0.00076581, 7.26852826, 0.99618109, 0.99798507, 0.49289269],\
++[	-6.26978416, -0.00124862, 0.00076550, 7.26853554, 0.99618263, 0.99798588, 0.49289304],\
++[	-6.26979092, -0.00124812, 0.00076519, 7.26854280, 0.99618417, 0.99798669, 0.49289341],\
++[	-6.26979765, -0.00124762, 0.00076488, 7.26855003, 0.99618571, 0.99798750, 0.49289376],\
++[	-6.26980436, -0.00124711, 0.00076458, 7.26855725, 0.99618724, 0.99798831, 0.49289409],\
++[	-6.26981105, -0.00124661, 0.00076427, 7.26856444, 0.99618878, 0.99798912, 0.49289444],\
++[	-6.26981772, -0.00124611, 0.00076396, 7.26857160, 0.99619031, 0.99798992, 0.49289482],\
++[	-6.26982436, -0.00124561, 0.00076366, 7.26857875, 0.99619184, 0.99799073, 0.49289516],\
++[	-6.26983098, -0.00124511, 0.00076335, 7.26858587, 0.99619337, 0.99799154, 0.49289554],\
++[	-6.26983758, -0.00124461, 0.00076305, 7.26859297, 0.99619490, 0.99799234, 0.49289586],\
++[	-6.26984416, -0.00124412, 0.00076274, 7.26860004, 0.99619643, 0.99799314, 0.49289620],\
++[	-6.26985071, -0.00124362, 0.00076244, 7.26860710, 0.99619796, 0.99799395, 0.49289657],\
++[	-6.26985725, -0.00124312, 0.00076213, 7.26861413, 0.99619949, 0.99799475, 0.49289690],\
++[	-6.26986376, -0.00124262, 0.00076183, 7.26862114, 0.99620101, 0.99799555, 0.49289724],\
++[	-6.26987025, -0.00124212, 0.00076152, 7.26862812, 0.99620253, 0.99799636, 0.49289757],\
++[	-6.26987672, -0.00124163, 0.00076122, 7.26863509, 0.99620406, 0.99799716, 0.49289792],\
++[	-6.26988316, -0.00124113, 0.00076091, 7.26864203, 0.99620558, 0.99799796, 0.49289828],\
++[	-6.26988959, -0.00124063, 0.00076061, 7.26864895, 0.99620710, 0.99799876, 0.49289862],\
++[	-6.26989599, -0.00124014, 0.00076031, 7.26865585, 0.99620862, 0.99799956, 0.49289895],\
++[	-6.26990237, -0.00123964, 0.00076000, 7.26866273, 0.99621013, 0.99800035, 0.49289931],\
++[	-6.26990873, -0.00123915, 0.00075970, 7.26866958, 0.99621165, 0.99800115, 0.49289965],\
++[	-6.26991507, -0.00123865, 0.00075940, 7.26867642, 0.99621317, 0.99800195, 0.49289998],\
++[	-6.26992139, -0.00123816, 0.00075909, 7.26868323, 0.99621468, 0.99800275, 0.49290032],\
++[	-6.26992769, -0.00123767, 0.00075879, 7.26869002, 0.99621619, 0.99800354, 0.49290066],\
++[	-6.26993396, -0.00123717, 0.00075849, 7.26869679, 0.99621770, 0.99800434, 0.49290100],\
++[	-6.26994022, -0.00123668, 0.00075819, 7.26870354, 0.99621921, 0.99800513, 0.49290132],\
++[	-6.26994645, -0.00123619, 0.00075789, 7.26871027, 0.99622072, 0.99800593, 0.49290166],\
++[	-6.26995267, -0.00123569, 0.00075758, 7.26871697, 0.99622223, 0.99800672, 0.49290199],\
++[	-6.26995886, -0.00123520, 0.00075728, 7.26872366, 0.99622374, 0.99800751, 0.49290231],\
++[	-6.26996503, -0.00123471, 0.00075698, 7.26873032, 0.99622524, 0.99800831, 0.49290268],\
++[	-6.26997119, -0.00123422, 0.00075668, 7.26873697, 0.99622675, 0.99800910, 0.49290298],\
++[	-6.26997732, -0.00123373, 0.00075638, 7.26874359, 0.99622825, 0.99800989, 0.49290333],\
++[	-6.26998343, -0.00123324, 0.00075608, 7.26875019, 0.99622975, 0.99801068, 0.49290366],\
++[	-6.26998952, -0.00123275, 0.00075578, 7.26875677, 0.99623126, 0.99801147, 0.49290397],\
++[	-6.26999559, -0.00123226, 0.00075548, 7.26876333, 0.99623275, 0.99801226, 0.49290432],\
++[	-6.27000164, -0.00123177, 0.00075518, 7.26876987, 0.99623425, 0.99801305, 0.49290464],\
++[	-6.27000767, -0.00123128, 0.00075488, 7.26877639, 0.99623575, 0.99801384, 0.49290499],\
++[	-6.27001368, -0.00123079, 0.00075458, 7.26878289, 0.99623725, 0.99801462, 0.49290530],\
++[	-6.27001968, -0.00123031, 0.00075428, 7.26878937, 0.99623874, 0.99801541, 0.49290562],\
++[	-6.27002565, -0.00122982, 0.00075399, 7.26879583, 0.99624024, 0.99801620, 0.49290596],\
++[	-6.27003160, -0.00122933, 0.00075369, 7.26880227, 0.99624173, 0.99801698, 0.49290628],\
++[	-6.27003753, -0.00122884, 0.00075339, 7.26880869, 0.99624322, 0.99801777, 0.49290660],\
++[	-6.27004344, -0.00122836, 0.00075309, 7.26881508, 0.99624471, 0.99801855, 0.49290693],\
++[	-6.27004933, -0.00122787, 0.00075279, 7.26882146, 0.99624620, 0.99801934, 0.49290725],\
++[	-6.27005521, -0.00122739, 0.00075250, 7.26882782, 0.99624769, 0.99802012, 0.49290756],\
++[	-6.27006106, -0.00122690, 0.00075220, 7.26883416, 0.99624917, 0.99802090, 0.49290790],\
++[	-6.27006690, -0.00122642, 0.00075190, 7.26884048, 0.99625066, 0.99802168, 0.49290821],\
++[	-6.27007271, -0.00122593, 0.00075160, 7.26884678, 0.99625214, 0.99802246, 0.49290851],\
++[	-6.27007851, -0.00122545, 0.00075131, 7.26885306, 0.99625363, 0.99802324, 0.49290885],\
++[	-6.27008428, -0.00122496, 0.00075101, 7.26885932, 0.99625511, 0.99802402, 0.49290916],\
++[	-6.27009004, -0.00122448, 0.00075072, 7.26886556, 0.99625659, 0.99802480, 0.49290948],\
++[	-6.27009578, -0.00122400, 0.00075042, 7.26887178, 0.99625807, 0.99802558, 0.49290980],\
++[	-6.27010150, -0.00122351, 0.00075012, 7.26887799, 0.99625955, 0.99802636, 0.49291012],\
++[	-6.27010720, -0.00122303, 0.00074983, 7.26888417, 0.99626102, 0.99802714, 0.49291045],\
++[	-6.27011288, -0.00122255, 0.00074953, 7.26889033, 0.99626250, 0.99802792, 0.49291075],\
++[	-6.27011855, -0.00122207, 0.00074924, 7.26889648, 0.99626398, 0.99802869, 0.49291108],\
++[	-6.27012419, -0.00122159, 0.00074894, 7.26890260, 0.99626545, 0.99802947, 0.49291137],\
++[	-6.27012982, -0.00122111, 0.00074865, 7.26890871, 0.99626692, 0.99803024, 0.49291169],\
++[	-6.27013543, -0.00122063, 0.00074836, 7.26891480, 0.99626839, 0.99803102, 0.49291199],\
++[	-6.27014102, -0.00122015, 0.00074806, 7.26892087, 0.99626986, 0.99803179, 0.49291232],\
++[	-6.27014659, -0.00121967, 0.00074777, 7.26892692, 0.99627133, 0.99803257, 0.49291262],\
++[	-6.27015214, -0.00121919, 0.00074747, 7.26893295, 0.99627280, 0.99803334, 0.49291295],\
++[	-6.27015767, -0.00121871, 0.00074718, 7.26893897, 0.99627427, 0.99803411, 0.49291325],\
++[	-6.27016319, -0.00121823, 0.00074689, 7.26894496, 0.99627574, 0.99803488, 0.49291356],\
++[	-6.27016869, -0.00121775, 0.00074659, 7.26895094, 0.99627720, 0.99803565, 0.49291386],\
++[	-6.27017417, -0.00121727, 0.00074630, 7.26895690, 0.99627866, 0.99803642, 0.49291418],\
++[	-6.27017963, -0.00121680, 0.00074601, 7.26896284, 0.99628013, 0.99803719, 0.49291448],\
++[	-6.27018508, -0.00121632, 0.00074572, 7.26896876, 0.99628159, 0.99803796, 0.49291478],\
++[	-6.27019050, -0.00121584, 0.00074543, 7.26897466, 0.99628305, 0.99803873, 0.49291509],\
++[	-6.27019591, -0.00121537, 0.00074513, 7.26898055, 0.99628451, 0.99803950, 0.49291539],\
++[	-6.27020130, -0.00121489, 0.00074484, 7.26898641, 0.99628596, 0.99804027, 0.49291571],\
++[	-6.27020668, -0.00121441, 0.00074455, 7.26899226, 0.99628742, 0.99804103, 0.49291599],\
++[	-6.27021203, -0.00121394, 0.00074426, 7.26899810, 0.99628888, 0.99804180, 0.49291629],\
++[	-6.27021737, -0.00121346, 0.00074397, 7.26900391, 0.99629033, 0.99804257, 0.49291660],\
++[	-6.27022270, -0.00121299, 0.00074368, 7.26900971, 0.99629178, 0.99804333, 0.49291688],\
++[	-6.27022800, -0.00121252, 0.00074339, 7.26901548, 0.99629324, 0.99804410, 0.49291722],\
++[	-6.27023329, -0.00121204, 0.00074310, 7.26902124, 0.99629469, 0.99804486, 0.49291750],\
++[	-6.27023856, -0.00121157, 0.00074281, 7.26902699, 0.99629614, 0.99804562, 0.49291781],\
++[	-6.27024381, -0.00121110, 0.00074252, 7.26903271, 0.99629759, 0.99804639, 0.49291812],\
++[	-6.27024904, -0.00121062, 0.00074223, 7.26903842, 0.99629903, 0.99804715, 0.49291840],\
++[	-6.27025426, -0.00121015, 0.00074194, 7.26904411, 0.99630048, 0.99804791, 0.49291870],\
++[	-6.27025946, -0.00120968, 0.00074165, 7.26904979, 0.99630193, 0.99804867, 0.49291902],\
++[	-6.27026465, -0.00120921, 0.00074136, 7.26905544, 0.99630337, 0.99804943, 0.49291932],\
++[	-6.27026982, -0.00120874, 0.00074107, 7.26906108, 0.99630481, 0.99805019, 0.49291960],\
++[	-6.27027497, -0.00120827, 0.00074078, 7.26906670, 0.99630626, 0.99805095, 0.49291988],\
++[	-6.27028010, -0.00120780, 0.00074050, 7.26907231, 0.99630770, 0.99805171, 0.49292018],\
++[	-6.27028522, -0.00120732, 0.00074021, 7.26907789, 0.99630914, 0.99805247, 0.49292047],\
++[	-6.27029032, -0.00120686, 0.00073992, 7.26908347, 0.99631057, 0.99805322, 0.49292077],\
++[	-6.27029541, -0.00120639, 0.00073963, 7.26908902, 0.99631201, 0.99805398, 0.49292106],\
++[	-6.27030047, -0.00120592, 0.00073934, 7.26909456, 0.99631345, 0.99805474, 0.49292137],\
++[	-6.27030552, -0.00120545, 0.00073906, 7.26910008, 0.99631488, 0.99805549, 0.49292164],\
++[	-6.27031056, -0.00120498, 0.00073877, 7.26910558, 0.99631632, 0.99805625, 0.49292193],\
++[	-6.27031558, -0.00120451, 0.00073848, 7.26911107, 0.99631775, 0.99805700, 0.49292223],\
++[	-6.27032058, -0.00120404, 0.00073820, 7.26911654, 0.99631918, 0.99805776, 0.49292252],\
++[	-6.27032557, -0.00120358, 0.00073791, 7.26912199, 0.99632061, 0.99805851, 0.49292278],\
++[	-6.27033054, -0.00120311, 0.00073763, 7.26912743, 0.99632204, 0.99805926, 0.49292312],\
++[	-6.27033549, -0.00120264, 0.00073734, 7.26913285, 0.99632347, 0.99806002, 0.49292338],\
++[	-6.27034043, -0.00120218, 0.00073705, 7.26913825, 0.99632490, 0.99806077, 0.49292367],\
++[	-6.27034536, -0.00120171, 0.00073677, 7.26914364, 0.99632633, 0.99806152, 0.49292394],\
++[	-6.27035026, -0.00120125, 0.00073648, 7.26914902, 0.99632775, 0.99806227, 0.49292425],\
++[	-6.27035515, -0.00120078, 0.00073620, 7.26915437, 0.99632918, 0.99806302, 0.49292452],\
++[	-6.27036003, -0.00120032, 0.00073591, 7.26915971, 0.99633060, 0.99806377, 0.49292480],\
++[	-6.27036489, -0.00119985, 0.00073563, 7.26916504, 0.99633202, 0.99806452, 0.49292511],\
++[	-6.27036973, -0.00119939, 0.00073535, 7.26917034, 0.99633344, 0.99806527, 0.49292536],\
++[	-6.27037456, -0.00119892, 0.00073506, 7.26917564, 0.99633486, 0.99806601, 0.49292567],\
++[	-6.27037937, -0.00119846, 0.00073478, 7.26918091, 0.99633628, 0.99806676, 0.49292595],\
++[	-6.27038417, -0.00119800, 0.00073449, 7.26918617, 0.99633770, 0.99806751, 0.49292622],\
++[	-6.27038895, -0.00119754, 0.00073421, 7.26919142, 0.99633912, 0.99806825, 0.49292651],\
++[	-6.27039372, -0.00119707, 0.00073393, 7.26919664, 0.99634053, 0.99806900, 0.49292678],\
++[	-6.27039847, -0.00119661, 0.00073364, 7.26920186, 0.99634195, 0.99806974, 0.49292707],\
++[	-6.27040321, -0.00119615, 0.00073336, 7.26920706, 0.99634336, 0.99807049, 0.49292736],\
++[	-6.27040793, -0.00119569, 0.00073308, 7.26921224, 0.99634477, 0.99807123, 0.49292762],\
++[	-6.27041263, -0.00119523, 0.00073280, 7.26921740, 0.99634618, 0.99807198, 0.49292790],\
++[	-6.27041732, -0.00119477, 0.00073251, 7.26922256, 0.99634759, 0.99807272, 0.49292816],\
++[	-6.27042200, -0.00119431, 0.00073223, 7.26922769, 0.99634900, 0.99807346, 0.49292845],\
++[	-6.27042666, -0.00119385, 0.00073195, 7.26923281, 0.99635041, 0.99807420, 0.49292873],\
++[	-6.27043131, -0.00119339, 0.00073167, 7.26923792, 0.99635182, 0.99807494, 0.49292902],\
++[	-6.27043594, -0.00119293, 0.00073139, 7.26924301, 0.99635322, 0.99807568, 0.49292929],\
++[	-6.27044055, -0.00119247, 0.00073111, 7.26924808, 0.99635463, 0.99807642, 0.49292955],\
++[	-6.27044516, -0.00119201, 0.00073083, 7.26925314, 0.99635603, 0.99807716, 0.49292983],\
++[	-6.27044974, -0.00119155, 0.00073054, 7.26925819, 0.99635743, 0.99807790, 0.49293011],\
++[	-6.27045432, -0.00119110, 0.00073026, 7.26926322, 0.99635884, 0.99807864, 0.49293037],\
++[	-6.27045887, -0.00119064, 0.00072998, 7.26926823, 0.99636024, 0.99807938, 0.49293066],\
++[	-6.27046342, -0.00119018, 0.00072970, 7.26927323, 0.99636164, 0.99808011, 0.49293095],\
++[	-6.27046795, -0.00118973, 0.00072942, 7.26927822, 0.99636303, 0.99808085, 0.49293118],\
++[	-6.27047246, -0.00118927, 0.00072914, 7.26928319, 0.99636443, 0.99808158, 0.49293146],\
++[	-6.27047696, -0.00118881, 0.00072887, 7.26928815, 0.99636583, 0.99808232, 0.49293175],\
++[	-6.27048145, -0.00118836, 0.00072859, 7.26929309, 0.99636722, 0.99808305, 0.49293201],\
++[	-6.27048592, -0.00118790, 0.00072831, 7.26929802, 0.99636862, 0.99808379, 0.49293228],\
++[	-6.27049038, -0.00118745, 0.00072803, 7.26930293, 0.99637001, 0.99808452, 0.49293255],\
++[	-6.27049482, -0.00118699, 0.00072775, 7.26930783, 0.99637140, 0.99808526, 0.49293281],\
++[	-6.27049925, -0.00118654, 0.00072747, 7.26931271, 0.99637279, 0.99808599, 0.49293309],\
++[	-6.27050366, -0.00118609, 0.00072719, 7.26931758, 0.99637418, 0.99808672, 0.49293334],\
++[	-6.27050807, -0.00118563, 0.00072692, 7.26932243, 0.99637557, 0.99808745, 0.49293360],\
++[	-6.27051245, -0.00118518, 0.00072664, 7.26932727, 0.99637696, 0.99808818, 0.49293390],\
++[	-6.27051683, -0.00118473, 0.00072636, 7.26933210, 0.99637835, 0.99808891, 0.49293415],\
++[	-6.27052119, -0.00118427, 0.00072608, 7.26933691, 0.99637973, 0.99808964, 0.49293444],\
++[	-6.27052553, -0.00118382, 0.00072581, 7.26934171, 0.99638112, 0.99809037, 0.49293467],\
++[	-6.27052986, -0.00118337, 0.00072553, 7.26934649, 0.99638250, 0.99809110, 0.49293494],\
++[	-6.27053418, -0.00118292, 0.00072525, 7.26935126, 0.99638388, 0.99809183, 0.49293521],\
++[	-6.27053849, -0.00118247, 0.00072498, 7.26935602, 0.99638526, 0.99809256, 0.49293547],\
++[	-6.27054278, -0.00118202, 0.00072470, 7.26936076, 0.99638664, 0.99809328, 0.49293575],\
++[	-6.27054706, -0.00118157, 0.00072442, 7.26936549, 0.99638802, 0.99809401, 0.49293600],\
++[	-6.27055132, -0.00118112, 0.00072415, 7.26937020, 0.99638940, 0.99809474, 0.49293625],\
++[	-6.27055557, -0.00118067, 0.00072387, 7.26937491, 0.99639078, 0.99809546, 0.49293651],\
++[	-6.27055981, -0.00118022, 0.00072360, 7.26937959, 0.99639215, 0.99809619, 0.49293677],\
++[	-6.27056403, -0.00117977, 0.00072332, 7.26938427, 0.99639353, 0.99809691, 0.49293703],\
++[	-6.27056825, -0.00117932, 0.00072305, 7.26938893, 0.99639490, 0.99809763, 0.49293729],\
++[	-6.27057244, -0.00117887, 0.00072277, 7.26939357, 0.99639628, 0.99809836, 0.49293754],\
++[	-6.27057663, -0.00117842, 0.00072250, 7.26939820, 0.99639765, 0.99809908, 0.49293783],\
++[	-6.27058080, -0.00117798, 0.00072222, 7.26940282, 0.99639902, 0.99809980, 0.49293807],\
++[	-6.27058496, -0.00117753, 0.00072195, 7.26940743, 0.99640039, 0.99810052, 0.49293833],\
++[	-6.27058910, -0.00117708, 0.00072167, 7.26941202, 0.99640176, 0.99810124, 0.49293858],\
++[	-6.27059324, -0.00117663, 0.00072140, 7.26941660, 0.99640312, 0.99810196, 0.49293885],\
++[	-6.27059736, -0.00117619, 0.00072113, 7.26942117, 0.99640449, 0.99810268, 0.49293910],\
++[	-6.27060146, -0.00117574, 0.00072085, 7.26942572, 0.99640586, 0.99810340, 0.49293936],\
++[	-6.27060556, -0.00117530, 0.00072058, 7.26943026, 0.99640722, 0.99810412, 0.49293961],\
++[	-6.27060964, -0.00117485, 0.00072031, 7.26943479, 0.99640859, 0.99810484, 0.49293988],\
++[	-6.27061371, -0.00117441, 0.00072004, 7.26943930, 0.99640995, 0.99810556, 0.49294014],\
++[	-6.27061776, -0.00117396, 0.00071976, 7.26944380, 0.99641131, 0.99810628, 0.49294037],\
++[	-6.27062180, -0.00117352, 0.00071949, 7.26944829, 0.99641267, 0.99810699, 0.49294061],\
++[	-6.27062583, -0.00117307, 0.00071922, 7.26945276, 0.99641403, 0.99810771, 0.49294091],\
++[	-6.27062985, -0.00117263, 0.00071895, 7.26945722, 0.99641539, 0.99810842, 0.49294113],\
++[	-6.27063386, -0.00117219, 0.00071867, 7.26946167, 0.99641675, 0.99810914, 0.49294137],\
++[	-6.27063785, -0.00117174, 0.00071840, 7.26946611, 0.99641810, 0.99810985, 0.49294161],\
++[	-6.27064183, -0.00117130, 0.00071813, 7.26947053, 0.99641946, 0.99811057, 0.49294187],\
++[	-6.27064580, -0.00117086, 0.00071786, 7.26947494, 0.99642081, 0.99811128, 0.49294216],\
++[	-6.27064976, -0.00117042, 0.00071759, 7.26947934, 0.99642217, 0.99811199, 0.49294239],\
++[	-6.27065370, -0.00116997, 0.00071732, 7.26948372, 0.99642352, 0.99811271, 0.49294263],\
++[	-6.27065763, -0.00116953, 0.00071705, 7.26948810, 0.99642487, 0.99811342, 0.49294289],\
++[	-6.27066155, -0.00116909, 0.00071678, 7.26949246, 0.99642622, 0.99811413, 0.49294314],\
++[	-6.27066546, -0.00116865, 0.00071651, 7.26949680, 0.99642757, 0.99811484, 0.49294338],\
++[	-6.27066935, -0.00116821, 0.00071624, 7.26950114, 0.99642892, 0.99811555, 0.49294362],\
++[	-6.27067323, -0.00116777, 0.00071597, 7.26950546, 0.99643026, 0.99811626, 0.49294387],\
++[	-6.27067711, -0.00116733, 0.00071570, 7.26950977, 0.99643161, 0.99811697, 0.49294414],\
++[	-6.27068096, -0.00116689, 0.00071543, 7.26951407, 0.99643296, 0.99811768, 0.49294435],\
++[	-6.27068481, -0.00116645, 0.00071516, 7.26951836, 0.99643430, 0.99811839, 0.49294462],\
++[	-6.27068865, -0.00116601, 0.00071489, 7.26952263, 0.99643564, 0.99811909, 0.49294486],\
++[	-6.27069247, -0.00116558, 0.00071462, 7.26952689, 0.99643699, 0.99811980, 0.49294512],\
++[	-6.27069628, -0.00116514, 0.00071435, 7.26953114, 0.99643833, 0.99812051, 0.49294533],\
++[	-6.27070008, -0.00116470, 0.00071409, 7.26953538, 0.99643967, 0.99812121, 0.49294559],\
++[	-6.27070387, -0.00116426, 0.00071382, 7.26953961, 0.99644101, 0.99812192, 0.49294582],\
++[	-6.27070765, -0.00116383, 0.00071355, 7.26954382, 0.99644235, 0.99812262, 0.49294607],\
++[	-6.27071141, -0.00116339, 0.00071328, 7.26954802, 0.99644368, 0.99812333, 0.49294633],\
++[	-6.27071516, -0.00116295, 0.00071301, 7.26955221, 0.99644502, 0.99812403, 0.49294657],\
++[	-6.27071891, -0.00116252, 0.00071275, 7.26955639, 0.99644635, 0.99812474, 0.49294678],\
++[	-6.27072264, -0.00116208, 0.00071248, 7.26956056, 0.99644769, 0.99812544, 0.49294701],\
++[	-6.27072636, -0.00116165, 0.00071221, 7.26956471, 0.99644902, 0.99812614, 0.49294726],\
++[	-6.27073006, -0.00116121, 0.00071195, 7.26956885, 0.99645035, 0.99812684, 0.49294753],\
++[	-6.27073376, -0.00116078, 0.00071168, 7.26957298, 0.99645169, 0.99812755, 0.49294774],\
++[	-6.27073744, -0.00116034, 0.00071141, 7.26957710, 0.99645302, 0.99812825, 0.49294799],\
++[	-6.27074112, -0.00115991, 0.00071115, 7.26958121, 0.99645434, 0.99812895, 0.49294824],\
++[	-6.27074478, -0.00115947, 0.00071088, 7.26958531, 0.99645567, 0.99812965, 0.49294849],\
++[	-6.27074843, -0.00115904, 0.00071062, 7.26958939, 0.99645700, 0.99813035, 0.49294867],\
++[	-6.27075207, -0.00115861, 0.00071035, 7.26959347, 0.99645833, 0.99813104, 0.49294894],\
++[	-6.27075570, -0.00115817, 0.00071008, 7.26959753, 0.99645965, 0.99813174, 0.49294918],\
++[	-6.27075932, -0.00115774, 0.00070982, 7.26960158, 0.99646098, 0.99813244, 0.49294940],\
++[	-6.27076293, -0.00115731, 0.00070955, 7.26960562, 0.99646230, 0.99813314, 0.49294966],\
++[	-6.27076652, -0.00115688, 0.00070929, 7.26960965, 0.99646362, 0.99813383, 0.49294988],\
++[	-6.27077011, -0.00115644, 0.00070902, 7.26961366, 0.99646494, 0.99813453, 0.49295014],\
++[	-6.27077368, -0.00115601, 0.00070876, 7.26961767, 0.99646626, 0.99813523, 0.49295035],\
++[	-6.27077724, -0.00115558, 0.00070850, 7.26962166, 0.99646758, 0.99813592, 0.49295058],\
++[	-6.27078080, -0.00115515, 0.00070823, 7.26962565, 0.99646890, 0.99813662, 0.49295081],\
++[	-6.27078434, -0.00115472, 0.00070797, 7.26962962, 0.99647022, 0.99813731, 0.49295107],\
++[	-6.27078787, -0.00115429, 0.00070770, 7.26963358, 0.99647154, 0.99813800, 0.49295129],\
++[	-6.27079139, -0.00115386, 0.00070744, 7.26963753, 0.99647285, 0.99813870, 0.49295151],\
++[	-6.27079490, -0.00115343, 0.00070718, 7.26964147, 0.99647417, 0.99813939, 0.49295175],\
++[	-6.27079840, -0.00115300, 0.00070692, 7.26964540, 0.99647548, 0.99814008, 0.49295200],\
++[	-6.27080189, -0.00115257, 0.00070665, 7.26964931, 0.99647679, 0.99814077, 0.49295221],\
++[	-6.27080537, -0.00115215, 0.00070639, 7.26965322, 0.99647810, 0.99814146, 0.49295246],\
++[	-6.27080883, -0.00115172, 0.00070613, 7.26965711, 0.99647941, 0.99814215, 0.49295267],\
++[	-6.27081229, -0.00115129, 0.00070586, 7.26966100, 0.99648072, 0.99814284, 0.49295289],\
++[	-6.27081574, -0.00115086, 0.00070560, 7.26966487, 0.99648203, 0.99814353, 0.49295314],\
++[	-6.27081917, -0.00115044, 0.00070534, 7.26966874, 0.99648334, 0.99814422, 0.49295337],\
++[	-6.27082260, -0.00115001, 0.00070508, 7.26967259, 0.99648465, 0.99814491, 0.49295357],\
++[	-6.27082601, -0.00114958, 0.00070482, 7.26967643, 0.99648595, 0.99814560, 0.49295381],\
++[	-6.27082942, -0.00114916, 0.00070456, 7.26968026, 0.99648726, 0.99814629, 0.49295404],\
++[	-6.27083281, -0.00114873, 0.00070430, 7.26968408, 0.99648856, 0.99814697, 0.49295428],\
++[	-6.27083620, -0.00114830, 0.00070403, 7.26968789, 0.99648986, 0.99814766, 0.49295451],\
++[	-6.27083957, -0.00114788, 0.00070377, 7.26969169, 0.99649117, 0.99814835, 0.49295473],\
++[	-6.27084294, -0.00114745, 0.00070351, 7.26969548, 0.99649247, 0.99814903, 0.49295497],\
++[	-6.27084629, -0.00114703, 0.00070325, 7.26969926, 0.99649377, 0.99814972, 0.49295518],\
++[	-6.27084964, -0.00114661, 0.00070299, 7.26970303, 0.99649507, 0.99815040, 0.49295540],\
++[	-6.27085297, -0.00114618, 0.00070273, 7.26970679, 0.99649636, 0.99815109, 0.49295563],\
++[	-6.27085630, -0.00114576, 0.00070247, 7.26971054, 0.99649766, 0.99815177, 0.49295584],\
++[	-6.27085961, -0.00114533, 0.00070221, 7.26971428, 0.99649896, 0.99815245, 0.49295609],\
++[	-6.27086292, -0.00114491, 0.00070195, 7.26971800, 0.99650025, 0.99815313, 0.49295629],\
++[	-6.27086621, -0.00114449, 0.00070169, 7.26972172, 0.99650155, 0.99815382, 0.49295653],\
++[	-6.27086950, -0.00114407, 0.00070144, 7.26972543, 0.99650284, 0.99815450, 0.49295673],\
++[	-6.27087277, -0.00114364, 0.00070118, 7.26972913, 0.99650413, 0.99815518, 0.49295696],\
++[	-6.27087604, -0.00114322, 0.00070092, 7.26973281, 0.99650542, 0.99815586, 0.49295720],\
++[	-6.27087929, -0.00114280, 0.00070066, 7.26973649, 0.99650671, 0.99815654, 0.49295739],\
++[	-6.27088254, -0.00114238, 0.00070040, 7.26974016, 0.99650800, 0.99815722, 0.49295764],\
++[	-6.27088577, -0.00114196, 0.00070014, 7.26974382, 0.99650929, 0.99815790, 0.49295785],\
++[	-6.27088900, -0.00114154, 0.00069989, 7.26974746, 0.99651058, 0.99815858, 0.49295811],\
++[	-6.27089222, -0.00114112, 0.00069963, 7.26975110, 0.99651187, 0.99815925, 0.49295829],\
++[	-6.27089543, -0.00114070, 0.00069937, 7.26975473, 0.99651315, 0.99815993, 0.49295850],\
++[	-6.27089862, -0.00114028, 0.00069911, 7.26975835, 0.99651444, 0.99816061, 0.49295875],\
++[	-6.27090181, -0.00113986, 0.00069886, 7.26976195, 0.99651572, 0.99816129, 0.49295895],\
++[	-6.27090499, -0.00113944, 0.00069860, 7.26976555, 0.99651700, 0.99816196, 0.49295918],\
++[	-6.27090816, -0.00113902, 0.00069834, 7.26976914, 0.99651829, 0.99816264, 0.49295938],\
++[	-6.27091132, -0.00113860, 0.00069809, 7.26977272, 0.99651957, 0.99816331, 0.49295963],\
++[	-6.27091447, -0.00113818, 0.00069783, 7.26977629, 0.99652085, 0.99816399, 0.49295982],\
++[	-6.27091762, -0.00113777, 0.00069757, 7.26977985, 0.99652213, 0.99816466, 0.49296003],\
++[	-6.27092075, -0.00113735, 0.00069732, 7.26978340, 0.99652340, 0.99816533, 0.49296028],\
++[	-6.27092387, -0.00113693, 0.00069706, 7.26978694, 0.99652468, 0.99816601, 0.49296049],\
++[	-6.27092699, -0.00113651, 0.00069681, 7.26979047, 0.99652596, 0.99816668, 0.49296071],\
++[	-6.27093009, -0.00113610, 0.00069655, 7.26979399, 0.99652723, 0.99816735, 0.49296091],\
++[	-6.27093319, -0.00113568, 0.00069629, 7.26979751, 0.99652851, 0.99816802, 0.49296112],\
++[	-6.27093627, -0.00113527, 0.00069604, 7.26980101, 0.99652978, 0.99816869, 0.49296137],\
++[	-6.27093935, -0.00113485, 0.00069578, 7.26980450, 0.99653105, 0.99816937, 0.49296155],\
++[	-6.27094242, -0.00113443, 0.00069553, 7.26980799, 0.99653232, 0.99817004, 0.49296176],\
++[	-6.27094548, -0.00113402, 0.00069528, 7.26981146, 0.99653360, 0.99817070, 0.49296198],\
++[	-6.27094853, -0.00113360, 0.00069502, 7.26981493, 0.99653487, 0.99817137, 0.49296221],\
++[	-6.27095157, -0.00113319, 0.00069477, 7.26981838, 0.99653613, 0.99817204, 0.49296241],\
++[	-6.27095461, -0.00113278, 0.00069451, 7.26982183, 0.99653740, 0.99817271, 0.49296261],\
++[	-6.27095763, -0.00113236, 0.00069426, 7.26982527, 0.99653867, 0.99817338, 0.49296284],\
++[	-6.27096065, -0.00113195, 0.00069401, 7.26982870, 0.99653994, 0.99817405, 0.49296306],\
++[	-6.27096365, -0.00113154, 0.00069375, 7.26983212, 0.99654120, 0.99817471, 0.49296324],\
++[	-6.27096665, -0.00113112, 0.00069350, 7.26983553, 0.99654246, 0.99817538, 0.49296349],\
++[	-6.27096964, -0.00113071, 0.00069325, 7.26983893, 0.99654373, 0.99817604, 0.49296367],\
++[	-6.27097262, -0.00113030, 0.00069299, 7.26984232, 0.99654499, 0.99817671, 0.49296390],\
++[	-6.27097559, -0.00112989, 0.00069274, 7.26984571, 0.99654625, 0.99817737, 0.49296411],\
++[	-6.27097856, -0.00112947, 0.00069249, 7.26984908, 0.99654751, 0.99817804, 0.49296432],\
++[	-6.27098151, -0.00112906, 0.00069224, 7.26985245, 0.99654877, 0.99817870, 0.49296451],\
++[	-6.27098446, -0.00112865, 0.00069198, 7.26985581, 0.99655003, 0.99817937, 0.49296475],\
++[	-6.27098739, -0.00112824, 0.00069173, 7.26985915, 0.99655129, 0.99818003, 0.49296493],\
++[	-6.27099032, -0.00112783, 0.00069148, 7.26986249, 0.99655255, 0.99818069, 0.49296516],\
++[	-6.27099324, -0.00112742, 0.00069123, 7.26986583, 0.99655380, 0.99818135, 0.49296535],\
++[	-6.27099616, -0.00112701, 0.00069098, 7.26986915, 0.99655506, 0.99818202, 0.49296556],\
++[	-6.27099906, -0.00112660, 0.00069072, 7.26987246, 0.99655631, 0.99818268, 0.49296577],\
++[	-6.27100196, -0.00112619, 0.00069047, 7.26987577, 0.99655756, 0.99818334, 0.49296597],\
++[	-6.27100484, -0.00112578, 0.00069022, 7.26987906, 0.99655882, 0.99818400, 0.49296619],\
++[	-6.27100772, -0.00112537, 0.00068997, 7.26988235, 0.99656007, 0.99818466, 0.49296639],\
++[	-6.27101059, -0.00112496, 0.00068972, 7.26988563, 0.99656132, 0.99818532, 0.49296663],\
++[	-6.27101345, -0.00112455, 0.00068947, 7.26988890, 0.99656257, 0.99818597, 0.49296681],\
++[	-6.27101631, -0.00112415, 0.00068922, 7.26989216, 0.99656382, 0.99818663, 0.49296699],\
++[	-6.27101915, -0.00112374, 0.00068897, 7.26989541, 0.99656506, 0.99818729, 0.49296722],\
++[	-6.27102199, -0.00112333, 0.00068872, 7.26989866, 0.99656631, 0.99818795, 0.49296743],\
++[	-6.27102482, -0.00112292, 0.00068847, 7.26990189, 0.99656756, 0.99818860, 0.49296764],\
++[	-6.27102764, -0.00112252, 0.00068822, 7.26990512, 0.99656880, 0.99818926, 0.49296783],\
++[	-6.27103045, -0.00112211, 0.00068797, 7.26990834, 0.99657005, 0.99818992, 0.49296802],\
++[	-6.27103326, -0.00112171, 0.00068772, 7.26991155, 0.99657129, 0.99819057, 0.49296822],\
++[	-6.27103606, -0.00112130, 0.00068747, 7.26991476, 0.99657253, 0.99819123, 0.49296843],\
++[	-6.27103885, -0.00112089, 0.00068723, 7.26991795, 0.99657377, 0.99819188, 0.49296863],\
++[	-6.27104163, -0.00112049, 0.00068698, 7.26992114, 0.99657501, 0.99819253, 0.49296882],\
++[	-6.27104440, -0.00112008, 0.00068673, 7.26992432, 0.99657625, 0.99819319, 0.49296903],\
++[	-6.27104717, -0.00111968, 0.00068648, 7.26992749, 0.99657749, 0.99819384, 0.49296925],\
++[	-6.27104992, -0.00111927, 0.00068623, 7.26993065, 0.99657873, 0.99819449, 0.49296948],\
++[	-6.27105267, -0.00111887, 0.00068599, 7.26993380, 0.99657997, 0.99819514, 0.49296966],\
++[	-6.27105541, -0.00111847, 0.00068574, 7.26993695, 0.99658120, 0.99819580, 0.49296986],\
++[	-6.27105815, -0.00111806, 0.00068549, 7.26994009, 0.99658244, 0.99819645, 0.49297006],\
++[	-6.27106088, -0.00111766, 0.00068524, 7.26994322, 0.99658367, 0.99819710, 0.49297025],\
++[	-6.27106359, -0.00111726, 0.00068500, 7.26994634, 0.99658491, 0.99819775, 0.49297043],\
++[	-6.27106630, -0.00111685, 0.00068475, 7.26994945, 0.99658614, 0.99819840, 0.49297064],\
++[	-6.27106901, -0.00111645, 0.00068450, 7.26995256, 0.99658737, 0.99819905, 0.49297085],\
++[	-6.27107170, -0.00111605, 0.00068426, 7.26995565, 0.99658860, 0.99819970, 0.49297106],\
++[	-6.27107439, -0.00111565, 0.00068401, 7.26995874, 0.99658983, 0.99820034, 0.49297123],\
++[	-6.27107707, -0.00111525, 0.00068376, 7.26996183, 0.99659106, 0.99820099, 0.49297145],\
++[	-6.27107974, -0.00111484, 0.00068352, 7.26996490, 0.99659229, 0.99820164, 0.49297165],\
++[	-6.27108241, -0.00111444, 0.00068327, 7.26996797, 0.99659352, 0.99820229, 0.49297182],\
++[	-6.27108507, -0.00111404, 0.00068302, 7.26997103, 0.99659474, 0.99820293, 0.49297202],\
++[	-6.27108772, -0.00111364, 0.00068278, 7.26997408, 0.99659597, 0.99820358, 0.49297222],\
++[	-6.27109036, -0.00111324, 0.00068253, 7.26997712, 0.99659719, 0.99820422, 0.49297241],\
++[	-6.27109300, -0.00111284, 0.00068229, 7.26998015, 0.99659842, 0.99820487, 0.49297262],\
++[	-6.27109562, -0.00111244, 0.00068204, 7.26998318, 0.99659964, 0.99820551, 0.49297281],\
++[	-6.27109825, -0.00111204, 0.00068180, 7.26998620, 0.99660086, 0.99820616, 0.49297301],\
++[	-6.27110086, -0.00111164, 0.00068155, 7.26998921, 0.99660208, 0.99820680, 0.49297320],\
++[	-6.27110347, -0.00111125, 0.00068131, 7.26999222, 0.99660330, 0.99820744, 0.49297339],\
++[	-6.27110606, -0.00111085, 0.00068106, 7.26999522, 0.99660452, 0.99820809, 0.49297359],\
++[	-6.27110866, -0.00111045, 0.00068082, 7.26999821, 0.99660574, 0.99820873, 0.49297380],\
++[	-6.27111124, -0.00111005, 0.00068058, 7.27000119, 0.99660696, 0.99820937, 0.49297397],\
++[	-6.27111382, -0.00110965, 0.00068033, 7.27000416, 0.99660818, 0.99821001, 0.49297417],\
++[	-6.27111639, -0.00110926, 0.00068009, 7.27000713, 0.99660939, 0.99821065, 0.49297437],\
++[	-6.27111895, -0.00110886, 0.00067985, 7.27001009, 0.99661061, 0.99821129, 0.49297456],\
++[	-6.27112151, -0.00110846, 0.00067960, 7.27001304, 0.99661182, 0.99821193, 0.49297477],\
++[	-6.27112405, -0.00110807, 0.00067936, 7.27001599, 0.99661303, 0.99821257, 0.49297493],\
++[	-6.27112660, -0.00110767, 0.00067912, 7.27001892, 0.99661425, 0.99821321, 0.49297516],\
++[	-6.27112913, -0.00110728, 0.00067887, 7.27002185, 0.99661546, 0.99821385, 0.49297533],\
++[	-6.27113166, -0.00110688, 0.00067863, 7.27002478, 0.99661667, 0.99821449, 0.49297550],\
++[	-6.27113418, -0.00110648, 0.00067839, 7.27002769, 0.99661788, 0.99821513, 0.49297572],\
++[	-6.27113669, -0.00110609, 0.00067815, 7.27003060, 0.99661909, 0.99821576, 0.49297589],\
++[	-6.27113920, -0.00110569, 0.00067790, 7.27003350, 0.99662030, 0.99821640, 0.49297607],\
++[	-6.27114170, -0.00110530, 0.00067766, 7.27003640, 0.99662150, 0.99821704, 0.49297628],\
++[	-6.27114419, -0.00110491, 0.00067742, 7.27003928, 0.99662271, 0.99821767, 0.49297646],\
++[	-6.27114668, -0.00110451, 0.00067718, 7.27004216, 0.99662392, 0.99821831, 0.49297664],\
++[	-6.27114915, -0.00110412, 0.00067694, 7.27004504, 0.99662512, 0.99821894, 0.49297684],\
++[	-6.27115163, -0.00110372, 0.00067670, 7.27004790, 0.99662632, 0.99821958, 0.49297702],\
++[	-6.27115409, -0.00110333, 0.00067646, 7.27005076, 0.99662753, 0.99822021, 0.49297723],\
++[	-6.27115655, -0.00110294, 0.00067621, 7.27005361, 0.99662873, 0.99822085, 0.49297742],\
++[	-6.27115900, -0.00110255, 0.00067597, 7.27005646, 0.99662993, 0.99822148, 0.49297759],\
++[	-6.27116145, -0.00110215, 0.00067573, 7.27005929, 0.99663113, 0.99822211, 0.49297781],\
++[	-6.27116389, -0.00110176, 0.00067549, 7.27006212, 0.99663233, 0.99822274, 0.49297799],\
++[	-6.27116632, -0.00110137, 0.00067525, 7.27006495, 0.99663353, 0.99822338, 0.49297818],\
++[	-6.27116874, -0.00110098, 0.00067501, 7.27006776, 0.99663473, 0.99822401, 0.49297837],\
++[	-6.27117116, -0.00110059, 0.00067477, 7.27007057, 0.99663592, 0.99822464, 0.49297853],\
++[	-6.27117357, -0.00110020, 0.00067453, 7.27007338, 0.99663712, 0.99822527, 0.49297873],\
++[	-6.27117598, -0.00109981, 0.00067429, 7.27007617, 0.99663832, 0.99822590, 0.49297890],\
++[	-6.27117838, -0.00109942, 0.00067405, 7.27007896, 0.99663951, 0.99822653, 0.49297910],\
++[	-6.27118077, -0.00109903, 0.00067381, 7.27008174, 0.99664070, 0.99822716, 0.49297929],\
++[	-6.27118315, -0.00109864, 0.00067358, 7.27008452, 0.99664190, 0.99822779, 0.49297945],\
++[	-6.27118553, -0.00109825, 0.00067334, 7.27008729, 0.99664309, 0.99822842, 0.49297965],\
++[	-6.27118791, -0.00109786, 0.00067310, 7.27009005, 0.99664428, 0.99822904, 0.49297987],\
++[	-6.27119027, -0.00109747, 0.00067286, 7.27009280, 0.99664547, 0.99822967, 0.49298005],\
++[	-6.27119263, -0.00109708, 0.00067262, 7.27009555, 0.99664666, 0.99823030, 0.49298023],\
++[	-6.27119499, -0.00109669, 0.00067238, 7.27009829, 0.99664785, 0.99823092, 0.49298041],\
++[	-6.27119733, -0.00109630, 0.00067214, 7.27010103, 0.99664904, 0.99823155, 0.49298056],\
++[	-6.27119968, -0.00109592, 0.00067191, 7.27010376, 0.99665022, 0.99823218, 0.49298074],\
++[	-6.27120201, -0.00109553, 0.00067167, 7.27010648, 0.99665141, 0.99823280, 0.49298095],\
++[	-6.27120434, -0.00109514, 0.00067143, 7.27010920, 0.99665259, 0.99823343, 0.49298115],\
++[	-6.27120666, -0.00109475, 0.00067119, 7.27011190, 0.99665378, 0.99823405, 0.49298131],\
++[	-6.27120898, -0.00109437, 0.00067096, 7.27011461, 0.99665496, 0.99823467, 0.49298149],\
++[	-6.27121129, -0.00109398, 0.00067072, 7.27011730, 0.99665614, 0.99823530, 0.49298166],\
++[	-6.27121359, -0.00109360, 0.00067048, 7.27011999, 0.99665733, 0.99823592, 0.49298185],\
++[	-6.27121589, -0.00109321, 0.00067025, 7.27012268, 0.99665851, 0.99823654, 0.49298202],\
++[	-6.27121818, -0.00109282, 0.00067001, 7.27012535, 0.99665969, 0.99823717, 0.49298224],\
++[	-6.27122046, -0.00109244, 0.00066977, 7.27012802, 0.99666087, 0.99823779, 0.49298236],\
++[	-6.27122274, -0.00109205, 0.00066954, 7.27013069, 0.99666205, 0.99823841, 0.49298260],\
++[	-6.27122501, -0.00109167, 0.00066930, 7.27013334, 0.99666322, 0.99823903, 0.49298275],\
++[	-6.27122728, -0.00109128, 0.00066907, 7.27013600, 0.99666440, 0.99823965, 0.49298294],\
++[	-6.27122954, -0.00109090, 0.00066883, 7.27013864, 0.99666558, 0.99824027, 0.49298313],\
++[	-6.27123179, -0.00109052, 0.00066859, 7.27014128, 0.99666675, 0.99824089, 0.49298330],\
++[	-6.27123404, -0.00109013, 0.00066836, 7.27014391, 0.99666793, 0.99824151, 0.49298351],\
++[	-6.27123629, -0.00108975, 0.00066812, 7.27014654, 0.99666910, 0.99824213, 0.49298363],\
++[	-6.27123852, -0.00108937, 0.00066789, 7.27014916, 0.99667027, 0.99824275, 0.49298382],\
++[	-6.27124075, -0.00108898, 0.00066765, 7.27015177, 0.99667144, 0.99824336, 0.49298401],\
++[	-6.27124298, -0.00108860, 0.00066742, 7.27015438, 0.99667261, 0.99824398, 0.49298420],\
++[	-6.27124520, -0.00108822, 0.00066718, 7.27015698, 0.99667379, 0.99824460, 0.49298438],\
++[	-6.27124741, -0.00108784, 0.00066695, 7.27015957, 0.99667495, 0.99824521, 0.49298453],\
++[	-6.27124962, -0.00108745, 0.00066672, 7.27016216, 0.99667612, 0.99824583, 0.49298471],\
++[	-6.27125182, -0.00108707, 0.00066648, 7.27016475, 0.99667729, 0.99824645, 0.49298491],\
++[	-6.27125401, -0.00108669, 0.00066625, 7.27016732, 0.99667846, 0.99824706, 0.49298510],\
++[	-6.27125620, -0.00108631, 0.00066601, 7.27016989, 0.99667962, 0.99824768, 0.49298524],\
++[	-6.27125839, -0.00108593, 0.00066578, 7.27017246, 0.99668079, 0.99824829, 0.49298544],\
++[	-6.27126057, -0.00108555, 0.00066555, 7.27017502, 0.99668195, 0.99824890, 0.49298562],\
++[	-6.27126274, -0.00108517, 0.00066531, 7.27017757, 0.99668312, 0.99824952, 0.49298575],\
++[	-6.27126490, -0.00108479, 0.00066508, 7.27018012, 0.99668428, 0.99825013, 0.49298596],\
++[	-6.27126707, -0.00108441, 0.00066485, 7.27018266, 0.99668544, 0.99825074, 0.49298614],\
++[	-6.27126922, -0.00108403, 0.00066461, 7.27018519, 0.99668660, 0.99825136, 0.49298629],\
++[	-6.27127137, -0.00108365, 0.00066438, 7.27018772, 0.99668776, 0.99825197, 0.49298647],\
++[	-6.27127351, -0.00108327, 0.00066415, 7.27019024, 0.99668892, 0.99825258, 0.49298665],\
++[	-6.27127565, -0.00108289, 0.00066392, 7.27019276, 0.99669008, 0.99825319, 0.49298685],\
++[	-6.27127779, -0.00108251, 0.00066369, 7.27019527, 0.99669124, 0.99825380, 0.49298701],\
++[	-6.27127991, -0.00108214, 0.00066345, 7.27019778, 0.99669240, 0.99825441, 0.49298719],\
++[	-6.27128204, -0.00108176, 0.00066322, 7.27020028, 0.99669356, 0.99825502, 0.49298735],\
++[	-6.27128415, -0.00108138, 0.00066299, 7.27020277, 0.99669471, 0.99825563, 0.49298754],\
++[	-6.27128626, -0.00108100, 0.00066276, 7.27020526, 0.99669587, 0.99825624, 0.49298772],\
++[	-6.27128837, -0.00108063, 0.00066253, 7.27020774, 0.99669702, 0.99825685, 0.49298787],\
++[	-6.27129047, -0.00108025, 0.00066230, 7.27021022, 0.99669817, 0.99825746, 0.49298806],\
++[	-6.27129256, -0.00107987, 0.00066206, 7.27021269, 0.99669933, 0.99825806, 0.49298822],\
++[	-6.27129465, -0.00107950, 0.00066183, 7.27021516, 0.99670048, 0.99825867, 0.49298838],\
++[	-6.27129674, -0.00107912, 0.00066160, 7.27021762, 0.99670163, 0.99825928, 0.49298857],\
++[	-6.27129881, -0.00107874, 0.00066137, 7.27022007, 0.99670278, 0.99825988, 0.49298872],\
++[	-6.27130089, -0.00107837, 0.00066114, 7.27022252, 0.99670393, 0.99826049, 0.49298890],\
++[	-6.27130295, -0.00107799, 0.00066091, 7.27022496, 0.99670508, 0.99826109, 0.49298906],\
++[	-6.27130502, -0.00107762, 0.00066068, 7.27022740, 0.99670622, 0.99826170, 0.49298921],\
++[	-6.27130707, -0.00107724, 0.00066045, 7.27022983, 0.99670737, 0.99826230, 0.49298942],\
++[	-6.27130913, -0.00107687, 0.00066022, 7.27023226, 0.99670852, 0.99826291, 0.49298958],\
++[	-6.27131117, -0.00107649, 0.00065999, 7.27023468, 0.99670966, 0.99826351, 0.49298977],\
++[	-6.27131321, -0.00107612, 0.00065976, 7.27023709, 0.99671081, 0.99826412, 0.49298992],\
++[	-6.27131525, -0.00107575, 0.00065953, 7.27023950, 0.99671195, 0.99826472, 0.49299011],\
++[	-6.27131728, -0.00107537, 0.00065931, 7.27024191, 0.99671309, 0.99826532, 0.49299028],\
++[	-6.27131930, -0.00107500, 0.00065908, 7.27024430, 0.99671423, 0.99826592, 0.49299042],\
++[	-6.27132133, -0.00107463, 0.00065885, 7.27024670, 0.99671538, 0.99826653, 0.49299058],\
++[	-6.27132334, -0.00107425, 0.00065862, 7.27024909, 0.99671652, 0.99826713, 0.49299077],\
++[	-6.27132535, -0.00107388, 0.00065839, 7.27025147, 0.99671766, 0.99826773, 0.49299096],\
++[	-6.27132736, -0.00107351, 0.00065816, 7.27025385, 0.99671879, 0.99826833, 0.49299111],\
++[	-6.27132936, -0.00107314, 0.00065793, 7.27025622, 0.99671993, 0.99826893, 0.49299126],\
++[	-6.27133135, -0.00107277, 0.00065771, 7.27025858, 0.99672107, 0.99826953, 0.49299144],\
++[	-6.27133334, -0.00107239, 0.00065748, 7.27026094, 0.99672221, 0.99827013, 0.49299160],\
++[	-6.27133532, -0.00107202, 0.00065725, 7.27026330, 0.99672334, 0.99827073, 0.49299180],\
++[	-6.27133730, -0.00107165, 0.00065702, 7.27026565, 0.99672448, 0.99827132, 0.49299193],\
++[	-6.27133928, -0.00107128, 0.00065680, 7.27026800, 0.99672561, 0.99827192, 0.49299212],\
++[	-6.27134125, -0.00107091, 0.00065657, 7.27027034, 0.99672674, 0.99827252, 0.49299227],\
++[	-6.27134321, -0.00107054, 0.00065634, 7.27027267, 0.99672788, 0.99827312, 0.49299243],\
++[	-6.27134517, -0.00107017, 0.00065611, 7.27027500, 0.99672901, 0.99827371, 0.49299259],\
++[	-6.27134713, -0.00106980, 0.00065589, 7.27027733, 0.99673014, 0.99827431, 0.49299280],\
++[	-6.27134908, -0.00106943, 0.00065566, 7.27027964, 0.99673127, 0.99827491, 0.49299296],\
++[	-6.27135102, -0.00106906, 0.00065543, 7.27028196, 0.99673240, 0.99827550, 0.49299309],\
++[	-6.27135296, -0.00106870, 0.00065521, 7.27028427, 0.99673353, 0.99827610, 0.49299327],\
++[	-6.27135490, -0.00106833, 0.00065498, 7.27028657, 0.99673466, 0.99827669, 0.49299344],\
++[	-6.27135683, -0.00106796, 0.00065476, 7.27028887, 0.99673578, 0.99827729, 0.49299361],\
++[	-6.27135875, -0.00106759, 0.00065453, 7.27029116, 0.99673691, 0.99827788, 0.49299378],\
++[	-6.27136067, -0.00106722, 0.00065430, 7.27029345, 0.99673804, 0.99827847, 0.49299395],\
++[	-6.27136259, -0.00106685, 0.00065408, 7.27029574, 0.99673916, 0.99827907, 0.49299413],\
++[	-6.27136450, -0.00106649, 0.00065385, 7.27029801, 0.99674028, 0.99827966, 0.49299427],\
++[	-6.27136641, -0.00106612, 0.00065363, 7.27030029, 0.99674141, 0.99828025, 0.49299442],\
++[	-6.27136831, -0.00106575, 0.00065340, 7.27030256, 0.99674253, 0.99828084, 0.49299460],\
++[	-6.27137021, -0.00106539, 0.00065318, 7.27030482, 0.99674365, 0.99828143, 0.49299474],\
++[	-6.27137210, -0.00106502, 0.00065295, 7.27030708, 0.99674477, 0.99828203, 0.49299490],\
++[	-6.27137399, -0.00106465, 0.00065273, 7.27030933, 0.99674589, 0.99828262, 0.49299509],\
++[	-6.27137587, -0.00106429, 0.00065250, 7.27031158, 0.99674701, 0.99828321, 0.49299525],\
++[	-6.27137775, -0.00106392, 0.00065228, 7.27031382, 0.99674813, 0.99828380, 0.49299541],\
++[	-6.27137962, -0.00106356, 0.00065206, 7.27031606, 0.99674925, 0.99828439, 0.49299561],\
++[	-6.27138149, -0.00106319, 0.00065183, 7.27031830, 0.99675037, 0.99828497, 0.49299573],\
++[	-6.27138335, -0.00106283, 0.00065161, 7.27032053, 0.99675148, 0.99828556, 0.49299589],\
++[	-6.27138521, -0.00106246, 0.00065139, 7.27032275, 0.99675260, 0.99828615, 0.49299603],\
++[	-6.27138707, -0.00106210, 0.00065116, 7.27032497, 0.99675371, 0.99828674, 0.49299621],\
++[	-6.27138892, -0.00106173, 0.00065094, 7.27032719, 0.99675483, 0.99828733, 0.49299635],\
++[	-6.27139077, -0.00106137, 0.00065072, 7.27032940, 0.99675594, 0.99828791, 0.49299653],\
++[	-6.27139261, -0.00106101, 0.00065049, 7.27033160, 0.99675705, 0.99828850, 0.49299670],\
++[	-6.27139445, -0.00106064, 0.00065027, 7.27033380, 0.99675816, 0.99828909, 0.49299687],\
++[	-6.27139628, -0.00106028, 0.00065005, 7.27033600, 0.99675928, 0.99828967, 0.49299705],\
++[	-6.27139811, -0.00105992, 0.00064982, 7.27033819, 0.99676039, 0.99829026, 0.49299718],\
++[	-6.27139993, -0.00105956, 0.00064960, 7.27034037, 0.99676150, 0.99829084, 0.49299736],\
++[	-6.27140175, -0.00105919, 0.00064938, 7.27034256, 0.99676260, 0.99829143, 0.49299751],\
++[	-6.27140356, -0.00105883, 0.00064916, 7.27034473, 0.99676371, 0.99829201, 0.49299765],\
++[	-6.27140537, -0.00105847, 0.00064893, 7.27034690, 0.99676482, 0.99829260, 0.49299782],\
++[	-6.27140718, -0.00105811, 0.00064871, 7.27034907, 0.99676593, 0.99829318, 0.49299800],\
++[	-6.27140898, -0.00105775, 0.00064849, 7.27035123, 0.99676703, 0.99829376, 0.49299816],\
++[	-6.27141078, -0.00105739, 0.00064827, 7.27035339, 0.99676814, 0.99829434, 0.49299833],\
++[	-6.27141257, -0.00105702, 0.00064805, 7.27035555, 0.99676924, 0.99829493, 0.49299845],\
++[	-6.27141436, -0.00105666, 0.00064783, 7.27035770, 0.99677034, 0.99829551, 0.49299862],\
++[	-6.27141614, -0.00105630, 0.00064761, 7.27035984, 0.99677145, 0.99829609, 0.49299878],\
++[	-6.27141792, -0.00105594, 0.00064739, 7.27036198, 0.99677255, 0.99829667, 0.49299891],\
++[	-6.27141970, -0.00105558, 0.00064716, 7.27036412, 0.99677365, 0.99829725, 0.49299912],\
++[	-6.27142147, -0.00105522, 0.00064694, 7.27036625, 0.99677475, 0.99829783, 0.49299926],\
++[	-6.27142324, -0.00105486, 0.00064672, 7.27036837, 0.99677585, 0.99829841, 0.49299943],\
++[	-6.27142500, -0.00105451, 0.00064650, 7.27037050, 0.99677695, 0.99829899, 0.49299955],\
++[	-6.27142676, -0.00105415, 0.00064628, 7.27037261, 0.99677805, 0.99829957, 0.49299971],\
++[	-6.27142851, -0.00105379, 0.00064606, 7.27037473, 0.99677914, 0.99830015, 0.49299984],\
++[	-6.27143026, -0.00105343, 0.00064584, 7.27037683, 0.99678024, 0.99830073, 0.49300001],\
++[	-6.27143201, -0.00105307, 0.00064562, 7.27037894, 0.99678134, 0.99830131, 0.49300017],\
++[	-6.27143375, -0.00105271, 0.00064540, 7.27038104, 0.99678243, 0.99830188, 0.49300033],\
++[	-6.27143549, -0.00105236, 0.00064518, 7.27038313, 0.99678353, 0.99830246, 0.49300050],\
++[	-6.27143722, -0.00105200, 0.00064496, 7.27038522, 0.99678462, 0.99830304, 0.49300065],\
++[	-6.27143895, -0.00105164, 0.00064475, 7.27038731, 0.99678571, 0.99830361, 0.49300081],\
++[	-6.27144068, -0.00105128, 0.00064453, 7.27038939, 0.99678681, 0.99830419, 0.49300096],\
++[	-6.27144240, -0.00105093, 0.00064431, 7.27039147, 0.99678790, 0.99830477, 0.49300112],\
++[	-6.27144412, -0.00105057, 0.00064409, 7.27039355, 0.99678899, 0.99830534, 0.49300126],\
++[	-6.27144583, -0.00105021, 0.00064387, 7.27039561, 0.99679008, 0.99830592, 0.49300141],\
++[	-6.27144754, -0.00104986, 0.00064365, 7.27039768, 0.99679117, 0.99830649, 0.49300158],\
++[	-6.27144924, -0.00104950, 0.00064343, 7.27039974, 0.99679226, 0.99830706, 0.49300174],\
++[	-6.27145094, -0.00104915, 0.00064322, 7.27040180, 0.99679334, 0.99830764, 0.49300191],\
++[	-6.27145264, -0.00104879, 0.00064300, 7.27040385, 0.99679443, 0.99830821, 0.49300203],\
++[	-6.27145433, -0.00104844, 0.00064278, 7.27040590, 0.99679552, 0.99830878, 0.49300220],\
++[	-6.27145602, -0.00104808, 0.00064256, 7.27040794, 0.99679660, 0.99830936, 0.49300234],\
++[	-6.27145771, -0.00104773, 0.00064234, 7.27040998, 0.99679769, 0.99830993, 0.49300248],\
++[	-6.27145939, -0.00104737, 0.00064213, 7.27041202, 0.99679877, 0.99831050, 0.49300264],\
++[	-6.27146107, -0.00104702, 0.00064191, 7.27041405, 0.99679986, 0.99831107, 0.49300280],\
++[	-6.27146274, -0.00104667, 0.00064169, 7.27041607, 0.99680094, 0.99831164, 0.49300294],\
++[	-6.27146441, -0.00104631, 0.00064148, 7.27041810, 0.99680202, 0.99831221, 0.49300310],\
++[	-6.27146607, -0.00104596, 0.00064126, 7.27042012, 0.99680310, 0.99831278, 0.49300325],\
++[	-6.27146774, -0.00104561, 0.00064104, 7.27042213, 0.99680418, 0.99831335, 0.49300340],\
++[	-6.27146939, -0.00104525, 0.00064083, 7.27042414, 0.99680526, 0.99831392, 0.49300357],\
++[	-6.27147105, -0.00104490, 0.00064061, 7.27042615, 0.99680634, 0.99831449, 0.49300370],\
++[	-6.27147270, -0.00104455, 0.00064039, 7.27042815, 0.99680742, 0.99831506, 0.49300390],\
++[	-6.27147434, -0.00104420, 0.00064018, 7.27043015, 0.99680850, 0.99831563, 0.49300402],\
++[	-6.27147599, -0.00104384, 0.00063996, 7.27043214, 0.99680957, 0.99831620, 0.49300417],\
++[	-6.27147762, -0.00104349, 0.00063975, 7.27043413, 0.99681065, 0.99831676, 0.49300431],\
++[	-6.27147926, -0.00104314, 0.00063953, 7.27043612, 0.99681172, 0.99831733, 0.49300449],\
++[	-6.27148089, -0.00104279, 0.00063931, 7.27043810, 0.99681280, 0.99831790, 0.49300460],\
++[	-6.27148252, -0.00104244, 0.00063910, 7.27044008, 0.99681387, 0.99831846, 0.49300478],\
++[	-6.27148414, -0.00104209, 0.00063888, 7.27044205, 0.99681495, 0.99831903, 0.49300494],\
++[	-6.27148576, -0.00104174, 0.00063867, 7.27044402, 0.99681602, 0.99831959, 0.49300507],\
++[	-6.27148738, -0.00104139, 0.00063845, 7.27044599, 0.99681709, 0.99832016, 0.49300523],\
++[	-6.27148899, -0.00104104, 0.00063824, 7.27044795, 0.99681816, 0.99832072, 0.49300537],\
++[	-6.27149060, -0.00104069, 0.00063802, 7.27044991, 0.99681923, 0.99832129, 0.49300552],\
++[	-6.27149220, -0.00104034, 0.00063781, 7.27045186, 0.99682030, 0.99832185, 0.49300567],\
++[	-6.27149380, -0.00103999, 0.00063760, 7.27045382, 0.99682137, 0.99832242, 0.49300583],\
++[	-6.27149540, -0.00103964, 0.00063738, 7.27045576, 0.99682244, 0.99832298, 0.49300595],\
++[	-6.27149699, -0.00103929, 0.00063717, 7.27045771, 0.99682351, 0.99832354, 0.49300609],\
++[	-6.27149859, -0.00103894, 0.00063695, 7.27045964, 0.99682457, 0.99832411, 0.49300627],\
++[	-6.27150017, -0.00103859, 0.00063674, 7.27046158, 0.99682564, 0.99832467, 0.49300642],\
++[	-6.27150175, -0.00103824, 0.00063653, 7.27046351, 0.99682670, 0.99832523, 0.49300653],\
++[	-6.27150333, -0.00103790, 0.00063631, 7.27046544, 0.99682777, 0.99832579, 0.49300671],\
++[	-6.27150491, -0.00103755, 0.00063610, 7.27046736, 0.99682883, 0.99832635, 0.49300686],\
++[	-6.27150648, -0.00103720, 0.00063589, 7.27046928, 0.99682990, 0.99832691, 0.49300700],\
++[	-6.27150805, -0.00103685, 0.00063567, 7.27047120, 0.99683096, 0.99832747, 0.49300717],\
++[	-6.27150962, -0.00103651, 0.00063546, 7.27047311, 0.99683202, 0.99832803, 0.49300731],\
++[	-6.27151118, -0.00103616, 0.00063525, 7.27047502, 0.99683308, 0.99832859, 0.49300742],\
++[	-6.27151274, -0.00103581, 0.00063503, 7.27047692, 0.99683414, 0.99832915, 0.49300759],\
++[	-6.27151429, -0.00103547, 0.00063482, 7.27047882, 0.99683520, 0.99832971, 0.49300775],\
++[	-6.27151584, -0.00103512, 0.00063461, 7.27048072, 0.99683626, 0.99833027, 0.49300787],\
++[	-6.27151739, -0.00103478, 0.00063440, 7.27048262, 0.99683732, 0.99833083, 0.49300803],\
++[	-6.27151893, -0.00103443, 0.00063419, 7.27048451, 0.99683838, 0.99833138, 0.49300818],\
++[	-6.27152048, -0.00103408, 0.00063397, 7.27048639, 0.99683943, 0.99833194, 0.49300831],\
++[	-6.27152201, -0.00103374, 0.00063376, 7.27048827, 0.99684049, 0.99833250, 0.49300846],\
++[	-6.27152355, -0.00103339, 0.00063355, 7.27049015, 0.99684154, 0.99833306, 0.49300863],\
++[	-6.27152508, -0.00103305, 0.00063334, 7.27049203, 0.99684260, 0.99833361, 0.49300877],\
++[	-6.27152660, -0.00103270, 0.00063313, 7.27049390, 0.99684365, 0.99833417, 0.49300891],\
++[	-6.27152813, -0.00103236, 0.00063292, 7.27049577, 0.99684471, 0.99833472, 0.49300907],\
++[	-6.27152965, -0.00103202, 0.00063271, 7.27049763, 0.99684576, 0.99833528, 0.49300922],\
++[	-6.27153117, -0.00103167, 0.00063249, 7.27049949, 0.99684681, 0.99833583, 0.49300935],\
++[	-6.27153268, -0.00103133, 0.00063228, 7.27050135, 0.99684786, 0.99833639, 0.49300949],\
++[	-6.27153419, -0.00103099, 0.00063207, 7.27050320, 0.99684891, 0.99833694, 0.49300966],\
++[	-6.27153570, -0.00103064, 0.00063186, 7.27050505, 0.99684996, 0.99833749, 0.49300980],\
++[	-6.27153720, -0.00103030, 0.00063165, 7.27050690, 0.99685101, 0.99833805, 0.49300992],\
++[	-6.27153870, -0.00102996, 0.00063144, 7.27050874, 0.99685206, 0.99833860, 0.49301003],\
++[	-6.27154020, -0.00102961, 0.00063123, 7.27051058, 0.99685311, 0.99833915, 0.49301024],\
++[	-6.27154169, -0.00102927, 0.00063102, 7.27051242, 0.99685415, 0.99833971, 0.49301036],\
++[	-6.27154318, -0.00102893, 0.00063081, 7.27051425, 0.99685520, 0.99834026, 0.49301051],\
++[	-6.27154467, -0.00102859, 0.00063060, 7.27051608, 0.99685625, 0.99834081, 0.49301064],\
++[	-6.27154615, -0.00102825, 0.00063039, 7.27051791, 0.99685729, 0.99834136, 0.49301076],\
++[	-6.27154763, -0.00102791, 0.00063018, 7.27051973, 0.99685834, 0.99834191, 0.49301089],\
++[	-6.27154911, -0.00102756, 0.00062997, 7.27052155, 0.99685938, 0.99834246, 0.49301105],\
++[	-6.27155059, -0.00102722, 0.00062976, 7.27052336, 0.99686042, 0.99834301, 0.49301119],\
++[	-6.27155206, -0.00102688, 0.00062956, 7.27052517, 0.99686146, 0.99834356, 0.49301134],\
++[	-6.27155352, -0.00102654, 0.00062935, 7.27052698, 0.99686251, 0.99834411, 0.49301148],\
++[	-6.27155499, -0.00102620, 0.00062914, 7.27052879, 0.99686355, 0.99834466, 0.49301163],\
++[	-6.27155645, -0.00102586, 0.00062893, 7.27053059, 0.99686459, 0.99834521, 0.49301176],\
++[	-6.27155791, -0.00102552, 0.00062872, 7.27053239, 0.99686563, 0.99834576, 0.49301188],\
++[	-6.27155936, -0.00102518, 0.00062851, 7.27053418, 0.99686666, 0.99834630, 0.49301206],\
++[	-6.27156082, -0.00102484, 0.00062830, 7.27053597, 0.99686770, 0.99834685, 0.49301220],\
++[	-6.27156226, -0.00102451, 0.00062810, 7.27053776, 0.99686874, 0.99834740, 0.49301233],\
++[	-6.27156371, -0.00102417, 0.00062789, 7.27053954, 0.99686978, 0.99834794, 0.49301246],\
++[	-6.27156515, -0.00102383, 0.00062768, 7.27054132, 0.99687081, 0.99834849, 0.49301262],\
++[	-6.27156659, -0.00102349, 0.00062747, 7.27054310, 0.99687185, 0.99834904, 0.49301280],\
++[	-6.27156803, -0.00102315, 0.00062727, 7.27054488, 0.99687288, 0.99834958, 0.49301294],\
++[	-6.27156946, -0.00102281, 0.00062706, 7.27054665, 0.99687392, 0.99835013, 0.49301309],\
++[	-6.27157089, -0.00102248, 0.00062685, 7.27054842, 0.99687495, 0.99835067, 0.49301319],\
++[	-6.27157232, -0.00102214, 0.00062664, 7.27055018, 0.99687598, 0.99835122, 0.49301335],\
++[	-6.27157374, -0.00102180, 0.00062644, 7.27055194, 0.99687701, 0.99835176, 0.49301345],\
++[	-6.27157517, -0.00102146, 0.00062623, 7.27055370, 0.99687805, 0.99835231, 0.49301362],\
++[	-6.27157658, -0.00102113, 0.00062602, 7.27055546, 0.99687908, 0.99835285, 0.49301372],\
++[	-6.27157800, -0.00102079, 0.00062582, 7.27055721, 0.99688011, 0.99835339, 0.49301383],\
++[	-6.27157941, -0.00102045, 0.00062561, 7.27055896, 0.99688113, 0.99835393, 0.49301405],\
++[	-6.27158082, -0.00102012, 0.00062540, 7.27056070, 0.99688216, 0.99835448, 0.49301418],\
++[	-6.27158223, -0.00101978, 0.00062520, 7.27056244, 0.99688319, 0.99835502, 0.49301433],\
++[	-6.27158363, -0.00101945, 0.00062499, 7.27056418, 0.99688422, 0.99835556, 0.49301444],\
++[	-6.27158503, -0.00101911, 0.00062479, 7.27056592, 0.99688524, 0.99835610, 0.49301454],\
++[	-6.27158643, -0.00101878, 0.00062458, 7.27056765, 0.99688627, 0.99835664, 0.49301468],\
++[	-6.27158782, -0.00101844, 0.00062438, 7.27056938, 0.99688730, 0.99835718, 0.49301483],\
++[	-6.27158921, -0.00101811, 0.00062417, 7.27057111, 0.99688832, 0.99835772, 0.49301499],\
++[	-6.27159060, -0.00101777, 0.00062396, 7.27057283, 0.99688934, 0.99835826, 0.49301513],\
++[	-6.27159199, -0.00101744, 0.00062376, 7.27057455, 0.99689037, 0.99835880, 0.49301528],\
++[	-6.27159337, -0.00101710, 0.00062355, 7.27057627, 0.99689139, 0.99835934, 0.49301541],\
++[	-6.27159475, -0.00101677, 0.00062335, 7.27057798, 0.99689241, 0.99835988, 0.49301553],\
++[	-6.27159613, -0.00101644, 0.00062314, 7.27057969, 0.99689343, 0.99836042, 0.49301569],\
++[	-6.27159750, -0.00101610, 0.00062294, 7.27058140, 0.99689445, 0.99836096, 0.49301584],\
++[	-6.27159887, -0.00101577, 0.00062274, 7.27058310, 0.99689547, 0.99836150, 0.49301593],\
++[	-6.27160024, -0.00101544, 0.00062253, 7.27058480, 0.99689649, 0.99836203, 0.49301608],\
++[	-6.27160160, -0.00101510, 0.00062233, 7.27058650, 0.99689751, 0.99836257, 0.49301621],\
++[	-6.27160297, -0.00101477, 0.00062212, 7.27058820, 0.99689853, 0.99836311, 0.49301634],\
++[	-6.27160433, -0.00101444, 0.00062192, 7.27058989, 0.99689954, 0.99836364, 0.49301647],\
++[	-6.27160568, -0.00101410, 0.00062171, 7.27059158, 0.99690056, 0.99836418, 0.49301663],\
++[	-6.27160704, -0.00101377, 0.00062151, 7.27059327, 0.99690158, 0.99836472, 0.49301679],\
++[	-6.27160839, -0.00101344, 0.00062131, 7.27059495, 0.99690259, 0.99836525, 0.49301693],\
++[	-6.27160974, -0.00101311, 0.00062110, 7.27059663, 0.99690361, 0.99836579, 0.49301706],\
++[	-6.27161108, -0.00101278, 0.00062090, 7.27059831, 0.99690462, 0.99836632, 0.49301722],\
++[	-6.27161243, -0.00101245, 0.00062070, 7.27059998, 0.99690563, 0.99836686, 0.49301730],\
++[	-6.27161377, -0.00101212, 0.00062049, 7.27060165, 0.99690664, 0.99836739, 0.49301748],\
++[	-6.27161511, -0.00101179, 0.00062029, 7.27060332, 0.99690766, 0.99836792, 0.49301757],\
++[	-6.27161644, -0.00101146, 0.00062009, 7.27060499, 0.99690867, 0.99836846, 0.49301772],\
++[	-6.27161777, -0.00101112, 0.00061989, 7.27060665, 0.99690968, 0.99836899, 0.49301787],\
++[	-6.27161910, -0.00101079, 0.00061968, 7.27060831, 0.99691069, 0.99836952, 0.49301798],\
++[	-6.27162043, -0.00101046, 0.00061948, 7.27060996, 0.99691170, 0.99837005, 0.49301811],\
++[	-6.27162175, -0.00101014, 0.00061928, 7.27061162, 0.99691271, 0.99837059, 0.49301825],\
++[	-6.27162307, -0.00100981, 0.00061908, 7.27061327, 0.99691371, 0.99837112, 0.49301840],\
++[	-6.27162439, -0.00100948, 0.00061887, 7.27061492, 0.99691472, 0.99837165, 0.49301855],\
++[	-6.27162571, -0.00100915, 0.00061867, 7.27061656, 0.99691573, 0.99837218, 0.49301866],\
++[	-6.27162702, -0.00100882, 0.00061847, 7.27061820, 0.99691673, 0.99837271, 0.49301881],\
++[	-6.27162833, -0.00100849, 0.00061827, 7.27061984, 0.99691774, 0.99837324, 0.49301892],\
++[	-6.27162964, -0.00100816, 0.00061807, 7.27062148, 0.99691874, 0.99837377, 0.49301906],\
++[	-6.27163095, -0.00100783, 0.00061787, 7.27062311, 0.99691975, 0.99837430, 0.49301923],\
++[	-6.27163225, -0.00100751, 0.00061767, 7.27062474, 0.99692075, 0.99837483, 0.49301935],\
++[	-6.27163355, -0.00100718, 0.00061746, 7.27062637, 0.99692175, 0.99837536, 0.49301944],\
++[	-6.27163485, -0.00100685, 0.00061726, 7.27062800, 0.99692275, 0.99837589, 0.49301961],\
++[	-6.27163614, -0.00100652, 0.00061706, 7.27062962, 0.99692375, 0.99837641, 0.49301974],\
++[	-6.27163743, -0.00100620, 0.00061686, 7.27063124, 0.99692476, 0.99837694, 0.49301990],\
++[	-6.27163872, -0.00100587, 0.00061666, 7.27063285, 0.99692576, 0.99837747, 0.49301996],\
++[	-6.27164001, -0.00100554, 0.00061646, 7.27063447, 0.99692675, 0.99837800, 0.49302013],\
++[	-6.27164130, -0.00100522, 0.00061626, 7.27063608, 0.99692775, 0.99837852, 0.49302024],\
++[	-6.27164258, -0.00100489, 0.00061606, 7.27063769, 0.99692875, 0.99837905, 0.49302039],\
++[	-6.27164386, -0.00100456, 0.00061586, 7.27063929, 0.99692975, 0.99837957, 0.49302050],\
++[	-6.27164513, -0.00100424, 0.00061566, 7.27064090, 0.99693075, 0.99838010, 0.49302064],\
++[	-6.27164641, -0.00100391, 0.00061546, 7.27064250, 0.99693174, 0.99838063, 0.49302080],\
++[	-6.27164768, -0.00100359, 0.00061526, 7.27064409, 0.99693274, 0.99838115, 0.49302092],\
++[	-6.27164895, -0.00100326, 0.00061506, 7.27064569, 0.99693373, 0.99838168, 0.49302106],\
++[	-6.27165022, -0.00100294, 0.00061486, 7.27064728, 0.99693473, 0.99838220, 0.49302117],\
++[	-6.27165148, -0.00100261, 0.00061466, 7.27064887, 0.99693572, 0.99838272, 0.49302135],\
++[	-6.27165274, -0.00100229, 0.00061446, 7.27065045, 0.99693671, 0.99838325, 0.49302147],\
++[	-6.27165400, -0.00100196, 0.00061427, 7.27065204, 0.99693770, 0.99838377, 0.49302161],\
++[	-6.27165526, -0.00100164, 0.00061407, 7.27065362, 0.99693870, 0.99838429, 0.49302174],\
++[	-6.27165651, -0.00100132, 0.00061387, 7.27065520, 0.99693969, 0.99838482, 0.49302182],\
++[	-6.27165777, -0.00100099, 0.00061367, 7.27065677, 0.99694068, 0.99838534, 0.49302200],\
++[	-6.27165902, -0.00100067, 0.00061347, 7.27065835, 0.99694167, 0.99838586, 0.49302214],\
++[	-6.27166026, -0.00100035, 0.00061327, 7.27065992, 0.99694266, 0.99838638, 0.49302227],\
++[	-6.27166151, -0.00100002, 0.00061307, 7.27066149, 0.99694364, 0.99838690, 0.49302237],\
++[	-6.27166275, -0.00099970, 0.00061288, 7.27066305, 0.99694463, 0.99838742, 0.49302253],\
++[	-6.27166399, -0.00099938, 0.00061268, 7.27066461, 0.99694562, 0.99838795, 0.49302264],\
++[	-6.27166523, -0.00099905, 0.00061248, 7.27066617, 0.99694660, 0.99838847, 0.49302277],\
++[	-6.27166646, -0.00099873, 0.00061228, 7.27066773, 0.99694759, 0.99838899, 0.49302290],\
++[	-6.27166770, -0.00099841, 0.00061208, 7.27066928, 0.99694858, 0.99838951, 0.49302301],\
++[	-6.27166893, -0.00099809, 0.00061189, 7.27067084, 0.99694956, 0.99839002, 0.49302315],\
++[	-6.27167015, -0.00099777, 0.00061169, 7.27067239, 0.99695054, 0.99839054, 0.49302331],\
++[	-6.27167138, -0.00099745, 0.00061149, 7.27067393, 0.99695153, 0.99839106, 0.49302343],\
++[	-6.27167260, -0.00099712, 0.00061130, 7.27067548, 0.99695251, 0.99839158, 0.49302354],\
++[	-6.27167382, -0.00099680, 0.00061110, 7.27067702, 0.99695349, 0.99839210, 0.49302367],\
++[	-6.27167504, -0.00099648, 0.00061090, 7.27067856, 0.99695447, 0.99839262, 0.49302378],\
++[	-6.27167626, -0.00099616, 0.00061070, 7.27068010, 0.99695545, 0.99839313, 0.49302391],\
++[	-6.27167747, -0.00099584, 0.00061051, 7.27068163, 0.99695643, 0.99839365, 0.49302405],\
++[	-6.27167868, -0.00099552, 0.00061031, 7.27068316, 0.99695741, 0.99839417, 0.49302418],\
++[	-6.27167989, -0.00099520, 0.00061012, 7.27068469, 0.99695839, 0.99839468, 0.49302428],\
++[	-6.27168110, -0.00099488, 0.00060992, 7.27068622, 0.99695937, 0.99839520, 0.49302442],\
++[	-6.27168231, -0.00099456, 0.00060972, 7.27068774, 0.99696035, 0.99839571, 0.49302457],\
++[	-6.27168351, -0.00099424, 0.00060953, 7.27068927, 0.99696133, 0.99839623, 0.49302469],\
++[	-6.27168471, -0.00099392, 0.00060933, 7.27069078, 0.99696230, 0.99839674, 0.49302483],\
++[	-6.27168591, -0.00099360, 0.00060914, 7.27069230, 0.99696328, 0.99839726, 0.49302493],\
++[	-6.27168710, -0.00099329, 0.00060894, 7.27069382, 0.99696425, 0.99839777, 0.49302510],\
++[	-6.27168829, -0.00099297, 0.00060874, 7.27069533, 0.99696523, 0.99839829, 0.49302519],\
++[	-6.27168949, -0.00099265, 0.00060855, 7.27069684, 0.99696620, 0.99839880, 0.49302531],\
++[	-6.27169067, -0.00099233, 0.00060835, 7.27069834, 0.99696717, 0.99839931, 0.49302546],\
++[	-6.27169186, -0.00099201, 0.00060816, 7.27069985, 0.99696815, 0.99839983, 0.49302559],\
++[	-6.27169305, -0.00099170, 0.00060796, 7.27070135, 0.99696912, 0.99840034, 0.49302572],\
++[	-6.27169423, -0.00099138, 0.00060777, 7.27070285, 0.99697009, 0.99840085, 0.49302581],\
++[	-6.27169541, -0.00099106, 0.00060757, 7.27070435, 0.99697106, 0.99840137, 0.49302594],\
++[	-6.27169659, -0.00099074, 0.00060738, 7.27070584, 0.99697203, 0.99840188, 0.49302606],\
++[	-6.27169776, -0.00099043, 0.00060719, 7.27070734, 0.99697300, 0.99840239, 0.49302620],\
++[	-6.27169893, -0.00099011, 0.00060699, 7.27070883, 0.99697397, 0.99840290, 0.49302635],\
++[	-6.27170011, -0.00098979, 0.00060680, 7.27071031, 0.99697494, 0.99840341, 0.49302644],\
++[	-6.27170128, -0.00098948, 0.00060660, 7.27071180, 0.99697590, 0.99840392, 0.49302662],\
++[	-6.27170244, -0.00098916, 0.00060641, 7.27071328, 0.99697687, 0.99840443, 0.49302676],\
++[	-6.27170361, -0.00098884, 0.00060622, 7.27071476, 0.99697784, 0.99840494, 0.49302682],\
++[	-6.27170477, -0.00098853, 0.00060602, 7.27071624, 0.99697880, 0.99840545, 0.49302696],\
++[	-6.27170593, -0.00098821, 0.00060583, 7.27071772, 0.99697977, 0.99840596, 0.49302711],\
++[	-6.27170709, -0.00098790, 0.00060563, 7.27071919, 0.99698073, 0.99840647, 0.49302721],\
++[	-6.27170825, -0.00098758, 0.00060544, 7.27072066, 0.99698170, 0.99840698, 0.49302733],\
++[	-6.27170940, -0.00098727, 0.00060525, 7.27072213, 0.99698266, 0.99840748, 0.49302748],\
++[	-6.27171055, -0.00098695, 0.00060505, 7.27072360, 0.99698362, 0.99840799, 0.49302765],\
++[	-6.27171170, -0.00098664, 0.00060486, 7.27072506, 0.99698459, 0.99840850, 0.49302773],\
++[	-6.27171285, -0.00098633, 0.00060467, 7.27072652, 0.99698555, 0.99840901, 0.49302786],\
++[	-6.27171399, -0.00098601, 0.00060448, 7.27072798, 0.99698651, 0.99840951, 0.49302797],\
++[	-6.27171514, -0.00098570, 0.00060428, 7.27072944, 0.99698747, 0.99841002, 0.49302811],\
++[	-6.27171628, -0.00098538, 0.00060409, 7.27073090, 0.99698843, 0.99841053, 0.49302824],\
++[	-6.27171742, -0.00098507, 0.00060390, 7.27073235, 0.99698939, 0.99841103, 0.49302835],\
++[	-6.27171856, -0.00098476, 0.00060371, 7.27073380, 0.99699035, 0.99841154, 0.49302848],\
++[	-6.27171969, -0.00098444, 0.00060351, 7.27073525, 0.99699130, 0.99841204, 0.49302858],\
++[	-6.27172082, -0.00098413, 0.00060332, 7.27073669, 0.99699226, 0.99841255, 0.49302871],\
++[	-6.27172196, -0.00098382, 0.00060313, 7.27073814, 0.99699322, 0.99841305, 0.49302887],\
++[	-6.27172309, -0.00098351, 0.00060294, 7.27073958, 0.99699417, 0.99841356, 0.49302895],\
++[	-6.27172421, -0.00098319, 0.00060275, 7.27074102, 0.99699513, 0.99841406, 0.49302912],\
++[	-6.27172534, -0.00098288, 0.00060256, 7.27074246, 0.99699608, 0.99841456, 0.49302925],\
++[	-6.27172646, -0.00098257, 0.00060236, 7.27074389, 0.99699704, 0.99841507, 0.49302935],\
++[	-6.27172758, -0.00098226, 0.00060217, 7.27074532, 0.99699799, 0.99841557, 0.49302945],\
++[	-6.27172870, -0.00098195, 0.00060198, 7.27074676, 0.99699894, 0.99841607, 0.49302959],\
++[	-6.27172982, -0.00098163, 0.00060179, 7.27074818, 0.99699990, 0.99841657, 0.49302970],\
++[	-6.27173093, -0.00098132, 0.00060160, 7.27074961, 0.99700085, 0.99841708, 0.49302981],\
++[	-6.27173205, -0.00098101, 0.00060141, 7.27075103, 0.99700180, 0.99841758, 0.49302992],\
++[	-6.27173316, -0.00098070, 0.00060122, 7.27075246, 0.99700275, 0.99841808, 0.49303009],\
++[	-6.27173427, -0.00098039, 0.00060103, 7.27075388, 0.99700370, 0.99841858, 0.49303019],\
++[	-6.27173537, -0.00098008, 0.00060084, 7.27075529, 0.99700465, 0.99841908, 0.49303031],\
++[	-6.27173648, -0.00097977, 0.00060065, 7.27075671, 0.99700560, 0.99841958, 0.49303044],\
++[	-6.27173758, -0.00097946, 0.00060046, 7.27075812, 0.99700655, 0.99842008, 0.49303056],\
++[	-6.27173868, -0.00097915, 0.00060027, 7.27075953, 0.99700749, 0.99842058, 0.49303069],\
++[	-6.27173978, -0.00097884, 0.00060008, 7.27076094, 0.99700844, 0.99842108, 0.49303080],\
++[	-6.27174088, -0.00097853, 0.00059989, 7.27076235, 0.99700939, 0.99842158, 0.49303094],\
++[	-6.27174198, -0.00097822, 0.00059970, 7.27076375, 0.99701033, 0.99842208, 0.49303107],\
++[	-6.27174307, -0.00097791, 0.00059951, 7.27076516, 0.99701128, 0.99842258, 0.49303120],\
++[	-6.27174416, -0.00097761, 0.00059932, 7.27076656, 0.99701222, 0.99842308, 0.49303132],\
++[	-6.27174525, -0.00097730, 0.00059913, 7.27076795, 0.99701317, 0.99842357, 0.49303142],\
++[	-6.27174634, -0.00097699, 0.00059894, 7.27076935, 0.99701411, 0.99842407, 0.49303154],\
++[	-6.27174743, -0.00097668, 0.00059875, 7.27077075, 0.99701505, 0.99842457, 0.49303168],\
++[	-6.27174851, -0.00097637, 0.00059856, 7.27077214, 0.99701599, 0.99842507, 0.49303176],\
++[	-6.27174959, -0.00097606, 0.00059837, 7.27077353, 0.99701693, 0.99842556, 0.49303192],\
++[	-6.27175067, -0.00097576, 0.00059818, 7.27077491, 0.99701788, 0.99842606, 0.49303205],\
++[	-6.27175175, -0.00097545, 0.00059800, 7.27077630, 0.99701882, 0.99842656, 0.49303212],\
++[	-6.27175283, -0.00097514, 0.00059781, 7.27077769, 0.99701976, 0.99842705, 0.49303223],\
++[	-6.27175390, -0.00097484, 0.00059762, 7.27077907, 0.99702070, 0.99842755, 0.49303239],\
++[	-6.27175497, -0.00097453, 0.00059743, 7.27078045, 0.99702163, 0.99842804, 0.49303247],\
++[	-6.27175605, -0.00097422, 0.00059724, 7.27078182, 0.99702257, 0.99842854, 0.49303263],\
++[	-6.27175712, -0.00097392, 0.00059705, 7.27078320, 0.99702351, 0.99842903, 0.49303277],\
++[	-6.27175818, -0.00097361, 0.00059687, 7.27078457, 0.99702445, 0.99842952, 0.49303287],\
++[	-6.27175925, -0.00097330, 0.00059668, 7.27078595, 0.99702538, 0.99843002, 0.49303298],\
++[	-6.27176031, -0.00097300, 0.00059649, 7.27078731, 0.99702632, 0.99843051, 0.49303309],\
++[	-6.27176137, -0.00097269, 0.00059630, 7.27078868, 0.99702725, 0.99843101, 0.49303324],\
++[	-6.27176243, -0.00097239, 0.00059612, 7.27079005, 0.99702819, 0.99843150, 0.49303337],\
++[	-6.27176349, -0.00097208, 0.00059593, 7.27079141, 0.99702912, 0.99843199, 0.49303342],\
++[	-6.27176455, -0.00097178, 0.00059574, 7.27079277, 0.99703005, 0.99843248, 0.49303355],\
++[	-6.27176560, -0.00097147, 0.00059555, 7.27079413, 0.99703099, 0.99843298, 0.49303367],\
++[	-6.27176666, -0.00097117, 0.00059537, 7.27079549, 0.99703192, 0.99843347, 0.49303384],\
++[	-6.27176771, -0.00097086, 0.00059518, 7.27079685, 0.99703285, 0.99843396, 0.49303391],\
++[	-6.27176876, -0.00097056, 0.00059499, 7.27079820, 0.99703378, 0.99843445, 0.49303404],\
++[	-6.27176980, -0.00097025, 0.00059481, 7.27079955, 0.99703471, 0.99843494, 0.49303417],\
++[	-6.27177085, -0.00096995, 0.00059462, 7.27080090, 0.99703564, 0.99843543, 0.49303426],\
++[	-6.27177189, -0.00096965, 0.00059443, 7.27080225, 0.99703657, 0.99843592, 0.49303442],\
++[	-6.27177294, -0.00096934, 0.00059425, 7.27080359, 0.99703750, 0.99843641, 0.49303454],\
++[	-6.27177398, -0.00096904, 0.00059406, 7.27080494, 0.99703843, 0.99843690, 0.49303464],\
++[	-6.27177502, -0.00096874, 0.00059388, 7.27080628, 0.99703936, 0.99843739, 0.49303476],\
++[	-6.27177605, -0.00096843, 0.00059369, 7.27080762, 0.99704028, 0.99843788, 0.49303487],\
++[	-6.27177709, -0.00096813, 0.00059350, 7.27080896, 0.99704121, 0.99843837, 0.49303501],\
++[	-6.27177812, -0.00096783, 0.00059332, 7.27081030, 0.99704213, 0.99843886, 0.49303512],\
++[	-6.27177915, -0.00096752, 0.00059313, 7.27081163, 0.99704306, 0.99843934, 0.49303521],\
++[	-6.27178018, -0.00096722, 0.00059295, 7.27081296, 0.99704398, 0.99843983, 0.49303537],\
++[	-6.27178121, -0.00096692, 0.00059276, 7.27081429, 0.99704491, 0.99844032, 0.49303546],\
++[	-6.27178224, -0.00096662, 0.00059258, 7.27081562, 0.99704583, 0.99844081, 0.49303558],\
++[	-6.27178326, -0.00096632, 0.00059239, 7.27081695, 0.99704675, 0.99844129, 0.49303575],\
++[	-6.27178429, -0.00096602, 0.00059221, 7.27081827, 0.99704768, 0.99844178, 0.49303581],\
++[	-6.27178531, -0.00096571, 0.00059202, 7.27081960, 0.99704860, 0.99844227, 0.49303591],\
++[	-6.27178633, -0.00096541, 0.00059184, 7.27082092, 0.99704952, 0.99844275, 0.49303609],\
++[	-6.27178735, -0.00096511, 0.00059165, 7.27082224, 0.99705044, 0.99844324, 0.49303618],\
++[	-6.27178836, -0.00096481, 0.00059147, 7.27082355, 0.99705136, 0.99844372, 0.49303628],\
++[	-6.27178938, -0.00096451, 0.00059128, 7.27082487, 0.99705228, 0.99844421, 0.49303641],\
++[	-6.27179039, -0.00096421, 0.00059110, 7.27082618, 0.99705320, 0.99844469, 0.49303652],\
++[	-6.27179140, -0.00096391, 0.00059091, 7.27082749, 0.99705412, 0.99844518, 0.49303666],\
++[	-6.27179242, -0.00096361, 0.00059073, 7.27082881, 0.99705503, 0.99844566, 0.49303673],\
++[	-6.27179342, -0.00096331, 0.00059055, 7.27083011, 0.99705595, 0.99844614, 0.49303690],\
++[	-6.27179443, -0.00096301, 0.00059036, 7.27083142, 0.99705687, 0.99844663, 0.49303700],\
++[	-6.27179544, -0.00096271, 0.00059018, 7.27083272, 0.99705778, 0.99844711, 0.49303712],\
++[	-6.27179644, -0.00096241, 0.00058999, 7.27083403, 0.99705870, 0.99844759, 0.49303722],\
++[	-6.27179744, -0.00096211, 0.00058981, 7.27083533, 0.99705961, 0.99844808, 0.49303732],\
++[	-6.27179844, -0.00096181, 0.00058963, 7.27083663, 0.99706053, 0.99844856, 0.49303745],\
++[	-6.27179944, -0.00096152, 0.00058944, 7.27083792, 0.99706144, 0.99844904, 0.49303757],\
++[	-6.27180044, -0.00096122, 0.00058926, 7.27083922, 0.99706235, 0.99844952, 0.49303771],\
++[	-6.27180143, -0.00096092, 0.00058908, 7.27084051, 0.99706327, 0.99845000, 0.49303777],\
++[	-6.27180243, -0.00096062, 0.00058890, 7.27084181, 0.99706418, 0.99845048, 0.49303795],\
++[	-6.27180342, -0.00096032, 0.00058871, 7.27084310, 0.99706509, 0.99845097, 0.49303802],\
++[	-6.27180441, -0.00096002, 0.00058853, 7.27084438, 0.99706600, 0.99845145, 0.49303815],\
++[	-6.27180540, -0.00095973, 0.00058835, 7.27084567, 0.99706691, 0.99845193, 0.49303827],\
++[	-6.27180639, -0.00095943, 0.00058816, 7.27084696, 0.99706782, 0.99845241, 0.49303836],\
++[	-6.27180737, -0.00095913, 0.00058798, 7.27084824, 0.99706873, 0.99845289, 0.49303844],\
++[	-6.27180836, -0.00095884, 0.00058780, 7.27084952, 0.99706964, 0.99845336, 0.49303861],\
++[	-6.27180934, -0.00095854, 0.00058762, 7.27085080, 0.99707055, 0.99845384, 0.49303868],\
++[	-6.27181032, -0.00095824, 0.00058744, 7.27085208, 0.99707145, 0.99845432, 0.49303884],\
++[	-6.27181130, -0.00095795, 0.00058725, 7.27085335, 0.99707236, 0.99845480, 0.49303895],\
++[	-6.27181228, -0.00095765, 0.00058707, 7.27085463, 0.99707327, 0.99845528, 0.49303908],\
++[	-6.27181325, -0.00095735, 0.00058689, 7.27085590, 0.99707417, 0.99845576, 0.49303915],\
++[	-6.27181423, -0.00095706, 0.00058671, 7.27085717, 0.99707508, 0.99845623, 0.49303928],\
++[	-6.27181520, -0.00095676, 0.00058653, 7.27085844, 0.99707598, 0.99845671, 0.49303940],\
++[	-6.27181618, -0.00095647, 0.00058635, 7.27085971, 0.99707689, 0.99845719, 0.49303950],\
++[	-6.27181715, -0.00095617, 0.00058616, 7.27086098, 0.99707779, 0.99845766, 0.49303965],\
++[	-6.27181811, -0.00095588, 0.00058598, 7.27086224, 0.99707869, 0.99845814, 0.49303979],\
++[	-6.27181908, -0.00095558, 0.00058580, 7.27086350, 0.99707960, 0.99845862, 0.49303989],\
++[	-6.27182005, -0.00095529, 0.00058562, 7.27086476, 0.99708050, 0.99845909, 0.49303994],\
++[	-6.27182101, -0.00095499, 0.00058544, 7.27086602, 0.99708140, 0.99845957, 0.49304006],\
++[	-6.27182198, -0.00095470, 0.00058526, 7.27086728, 0.99708230, 0.99846004, 0.49304023],\
++[	-6.27182294, -0.00095440, 0.00058508, 7.27086854, 0.99708320, 0.99846052, 0.49304031],\
++[	-6.27182390, -0.00095411, 0.00058490, 7.27086979, 0.99708410, 0.99846099, 0.49304040],\
++[	-6.27182486, -0.00095381, 0.00058472, 7.27087104, 0.99708500, 0.99846147, 0.49304052],\
++[	-6.27182581, -0.00095352, 0.00058454, 7.27087229, 0.99708590, 0.99846194, 0.49304066],\
++[	-6.27182677, -0.00095323, 0.00058436, 7.27087354, 0.99708680, 0.99846242, 0.49304078],\
++[	-6.27182772, -0.00095293, 0.00058418, 7.27087479, 0.99708769, 0.99846289, 0.49304090],\
++[	-6.27182867, -0.00095264, 0.00058400, 7.27087603, 0.99708859, 0.99846336, 0.49304102],\
++[	-6.27182963, -0.00095235, 0.00058382, 7.27087728, 0.99708949, 0.99846383, 0.49304112],\
++[	-6.27183058, -0.00095205, 0.00058364, 7.27087852, 0.99709038, 0.99846431, 0.49304120],\
++[	-6.27183152, -0.00095176, 0.00058346, 7.27087976, 0.99709128, 0.99846478, 0.49304129],\
++[	-6.27183247, -0.00095147, 0.00058328, 7.27088100, 0.99709217, 0.99846525, 0.49304145],\
++[	-6.27183342, -0.00095118, 0.00058310, 7.27088224, 0.99709307, 0.99846572, 0.49304157],\
++[	-6.27183436, -0.00095088, 0.00058292, 7.27088348, 0.99709396, 0.99846619, 0.49304165],\
++[	-6.27183530, -0.00095059, 0.00058274, 7.27088471, 0.99709485, 0.99846667, 0.49304175],\
++[	-6.27183624, -0.00095030, 0.00058256, 7.27088594, 0.99709575, 0.99846714, 0.49304190],\
++[	-6.27183718, -0.00095001, 0.00058238, 7.27088717, 0.99709664, 0.99846761, 0.49304204],\
++[	-6.27183812, -0.00094972, 0.00058221, 7.27088840, 0.99709753, 0.99846808, 0.49304212],\
++[	-6.27183906, -0.00094943, 0.00058203, 7.27088963, 0.99709842, 0.99846855, 0.49304222],\
++[	-6.27183999, -0.00094914, 0.00058185, 7.27089086, 0.99709931, 0.99846902, 0.49304233],\
++[	-6.27184093, -0.00094884, 0.00058167, 7.27089208, 0.99710020, 0.99846949, 0.49304245],\
++[	-6.27184186, -0.00094855, 0.00058149, 7.27089331, 0.99710109, 0.99846996, 0.49304255],\
++[	-6.27184279, -0.00094826, 0.00058131, 7.27089453, 0.99710198, 0.99847042, 0.49304263],\
++[	-6.27184372, -0.00094797, 0.00058113, 7.27089575, 0.99710287, 0.99847089, 0.49304277],\
++[	-6.27184465, -0.00094768, 0.00058096, 7.27089697, 0.99710375, 0.99847136, 0.49304288],\
++[	-6.27184558, -0.00094739, 0.00058078, 7.27089818, 0.99710464, 0.99847183, 0.49304302],\
++[	-6.27184650, -0.00094710, 0.00058060, 7.27089940, 0.99710553, 0.99847230, 0.49304309],\
++[	-6.27184743, -0.00094681, 0.00058042, 7.27090061, 0.99710641, 0.99847276, 0.49304322],\
++[	-6.27184835, -0.00094652, 0.00058025, 7.27090182, 0.99710730, 0.99847323, 0.49304332],\
++[	-6.27184927, -0.00094623, 0.00058007, 7.27090304, 0.99710818, 0.99847370, 0.49304348],\
++[	-6.27185019, -0.00094595, 0.00057989, 7.27090424, 0.99710907, 0.99847416, 0.49304351],\
++[	-6.27185111, -0.00094566, 0.00057971, 7.27090545, 0.99710995, 0.99847463, 0.49304363],\
++[	-6.27185203, -0.00094537, 0.00057954, 7.27090666, 0.99711083, 0.99847510, 0.49304378],\
++[	-6.27185294, -0.00094508, 0.00057936, 7.27090786, 0.99711172, 0.99847556, 0.49304390],\
++[	-6.27185386, -0.00094479, 0.00057918, 7.27090907, 0.99711260, 0.99847603, 0.49304399],\
++[	-6.27185477, -0.00094450, 0.00057901, 7.27091027, 0.99711348, 0.99847649, 0.49304412],\
++[	-6.27185568, -0.00094421, 0.00057883, 7.27091147, 0.99711436, 0.99847696, 0.49304419],\
++[	-6.27185659, -0.00094393, 0.00057865, 7.27091267, 0.99711524, 0.99847742, 0.49304433],\
++[	-6.27185750, -0.00094364, 0.00057848, 7.27091386, 0.99711612, 0.99847789, 0.49304445],\
++[	-6.27185841, -0.00094335, 0.00057830, 7.27091506, 0.99711700, 0.99847835, 0.49304453],\
++[	-6.27185932, -0.00094306, 0.00057812, 7.27091625, 0.99711788, 0.99847881, 0.49304463],\
++[	-6.27186022, -0.00094278, 0.00057795, 7.27091745, 0.99711876, 0.99847928, 0.49304471],\
++[	-6.27186113, -0.00094249, 0.00057777, 7.27091864, 0.99711964, 0.99847974, 0.49304488],\
++[	-6.27186203, -0.00094220, 0.00057759, 7.27091983, 0.99712051, 0.99848020, 0.49304496],\
++[	-6.27186293, -0.00094192, 0.00057742, 7.27092101, 0.99712139, 0.99848067, 0.49304509],\
++[	-6.27186383, -0.00094163, 0.00057724, 7.27092220, 0.99712227, 0.99848113, 0.49304521],\
++[	-6.27186473, -0.00094134, 0.00057707, 7.27092339, 0.99712314, 0.99848159, 0.49304528],\
++[	-6.27186563, -0.00094106, 0.00057689, 7.27092457, 0.99712402, 0.99848205, 0.49304542],\
++[	-6.27186652, -0.00094077, 0.00057672, 7.27092575, 0.99712489, 0.99848251, 0.49304552],\
++[	-6.27186742, -0.00094049, 0.00057654, 7.27092693, 0.99712577, 0.99848297, 0.49304562],\
++[	-6.27186831, -0.00094020, 0.00057636, 7.27092811, 0.99712664, 0.99848344, 0.49304571],\
++[	-6.27186920, -0.00093991, 0.00057619, 7.27092929, 0.99712751, 0.99848390, 0.49304585],\
++[	-6.27187010, -0.00093963, 0.00057601, 7.27093047, 0.99712839, 0.99848436, 0.49304595],\
++[	-6.27187098, -0.00093934, 0.00057584, 7.27093164, 0.99712926, 0.99848482, 0.49304606],\
++[	-6.27187187, -0.00093906, 0.00057567, 7.27093281, 0.99713013, 0.99848528, 0.49304619],\
++[	-6.27187276, -0.00093877, 0.00057549, 7.27093399, 0.99713100, 0.99848574, 0.49304625],\
++[	-6.27187365, -0.00093849, 0.00057532, 7.27093516, 0.99713187, 0.99848619, 0.49304638],\
++[	-6.27187453, -0.00093821, 0.00057514, 7.27093633, 0.99713274, 0.99848665, 0.49304650],\
++[	-6.27187541, -0.00093792, 0.00057497, 7.27093749, 0.99713361, 0.99848711, 0.49304662],\
++[	-6.27187630, -0.00093764, 0.00057479, 7.27093866, 0.99713448, 0.99848757, 0.49304675],\
++[	-6.27187718, -0.00093735, 0.00057462, 7.27093983, 0.99713535, 0.99848803, 0.49304680],\
++[	-6.27187806, -0.00093707, 0.00057444, 7.27094099, 0.99713622, 0.99848849, 0.49304696],\
++[	-6.27187894, -0.00093679, 0.00057427, 7.27094215, 0.99713708, 0.99848894, 0.49304701],\
++[	-6.27187981, -0.00093650, 0.00057410, 7.27094331, 0.99713795, 0.99848940, 0.49304717],\
++[	-6.27188069, -0.00093622, 0.00057392, 7.27094447, 0.99713882, 0.99848986, 0.49304726],\
++[	-6.27188156, -0.00093594, 0.00057375, 7.27094563, 0.99713968, 0.99849031, 0.49304734],\
++[	-6.27188244, -0.00093565, 0.00057358, 7.27094678, 0.99714055, 0.99849077, 0.49304749],\
++[	-6.27188331, -0.00093537, 0.00057340, 7.27094794, 0.99714141, 0.99849123, 0.49304756],\
++[	-6.27188418, -0.00093509, 0.00057323, 7.27094909, 0.99714228, 0.99849168, 0.49304769],\
++[	-6.27188505, -0.00093481, 0.00057306, 7.27095025, 0.99714314, 0.99849214, 0.49304781],\
++[	-6.27188592, -0.00093452, 0.00057288, 7.27095140, 0.99714400, 0.99849259, 0.49304789],\
++[	-6.27188679, -0.00093424, 0.00057271, 7.27095255, 0.99714486, 0.99849305, 0.49304797],\
++[	-6.27188765, -0.00093396, 0.00057254, 7.27095369, 0.99714573, 0.99849350, 0.49304811],\
++[	-6.27188852, -0.00093368, 0.00057236, 7.27095484, 0.99714659, 0.99849396, 0.49304819],\
++[	-6.27188938, -0.00093340, 0.00057219, 7.27095599, 0.99714745, 0.99849441, 0.49304832],\
++[	-6.27189025, -0.00093312, 0.00057202, 7.27095713, 0.99714831, 0.99849487, 0.49304841],\
++[	-6.27189111, -0.00093283, 0.00057185, 7.27095827, 0.99714917, 0.99849532, 0.49304852],\
++[	-6.27189197, -0.00093255, 0.00057167, 7.27095942, 0.99715003, 0.99849577, 0.49304861],\
++[	-6.27189283, -0.00093227, 0.00057150, 7.27096056, 0.99715089, 0.99849623, 0.49304875],\
++[	-6.27189369, -0.00093199, 0.00057133, 7.27096169, 0.99715175, 0.99849668, 0.49304884],\
++[	-6.27189454, -0.00093171, 0.00057116, 7.27096283, 0.99715260, 0.99849713, 0.49304894],\
++[	-6.27189540, -0.00093143, 0.00057098, 7.27096397, 0.99715346, 0.99849758, 0.49304909],\
++[	-6.27189625, -0.00093115, 0.00057081, 7.27096510, 0.99715432, 0.99849804, 0.49304918],\
++[	-6.27189711, -0.00093087, 0.00057064, 7.27096624, 0.99715517, 0.99849849, 0.49304926],\
++[	-6.27189796, -0.00093059, 0.00057047, 7.27096737, 0.99715603, 0.99849894, 0.49304941],\
++[	-6.27189881, -0.00093031, 0.00057030, 7.27096850, 0.99715689, 0.99849939, 0.49304950],\
++[	-6.27189966, -0.00093003, 0.00057013, 7.27096963, 0.99715774, 0.99849984, 0.49304958],\
++[	-6.27190051, -0.00092975, 0.00056995, 7.27097076, 0.99715860, 0.99850029, 0.49304964],\
++[	-6.27190136, -0.00092947, 0.00056978, 7.27097188, 0.99715945, 0.99850074, 0.49304982],\
++[	-6.27190220, -0.00092919, 0.00056961, 7.27097301, 0.99716030, 0.99850119, 0.49304989],\
++[	-6.27190305, -0.00092892, 0.00056944, 7.27097413, 0.99716115, 0.99850164, 0.49305004],\
++[	-6.27190389, -0.00092864, 0.00056927, 7.27097525, 0.99716201, 0.99850209, 0.49305011],\
++[	-6.27190474, -0.00092836, 0.00056910, 7.27097638, 0.99716286, 0.99850254, 0.49305025],\
++[	-6.27190558, -0.00092808, 0.00056893, 7.27097750, 0.99716371, 0.99850299, 0.49305033],\
++[	-6.27190642, -0.00092780, 0.00056876, 7.27097862, 0.99716456, 0.99850344, 0.49305045],\
++[	-6.27190726, -0.00092752, 0.00056859, 7.27097973, 0.99716541, 0.99850389, 0.49305056],\
++[	-6.27190810, -0.00092725, 0.00056842, 7.27098085, 0.99716626, 0.99850434, 0.49305065],\
++[	-6.27190893, -0.00092697, 0.00056825, 7.27098197, 0.99716711, 0.99850478, 0.49305076],\
++[	-6.27190977, -0.00092669, 0.00056808, 7.27098308, 0.99716796, 0.99850523, 0.49305085],\
++[	-6.27191061, -0.00092641, 0.00056791, 7.27098419, 0.99716881, 0.99850568, 0.49305094],\
++[	-6.27191144, -0.00092614, 0.00056774, 7.27098530, 0.99716965, 0.99850613, 0.49305108],\
++[	-6.27191227, -0.00092586, 0.00056757, 7.27098641, 0.99717050, 0.99850657, 0.49305115],\
++[	-6.27191311, -0.00092558, 0.00056740, 7.27098752, 0.99717135, 0.99850702, 0.49305125],\
++[	-6.27191394, -0.00092531, 0.00056723, 7.27098863, 0.99717219, 0.99850747, 0.49305139],\
++[	-6.27191477, -0.00092503, 0.00056706, 7.27098974, 0.99717304, 0.99850791, 0.49305148],\
++[	-6.27191559, -0.00092475, 0.00056689, 7.27099084, 0.99717389, 0.99850836, 0.49305158],\
++[	-6.27191642, -0.00092448, 0.00056672, 7.27099194, 0.99717473, 0.99850880, 0.49305167],\
++[	-6.27191725, -0.00092420, 0.00056655, 7.27099305, 0.99717557, 0.99850925, 0.49305181],\
++[	-6.27191807, -0.00092393, 0.00056638, 7.27099415, 0.99717642, 0.99850969, 0.49305190],\
++[	-6.27191890, -0.00092365, 0.00056621, 7.27099525, 0.99717726, 0.99851014, 0.49305201],\
++[	-6.27191972, -0.00092338, 0.00056604, 7.27099635, 0.99717810, 0.99851058, 0.49305208],\
++[	-6.27192054, -0.00092310, 0.00056587, 7.27099744, 0.99717895, 0.99851103, 0.49305223],\
++[	-6.27192136, -0.00092282, 0.00056570, 7.27099854, 0.99717979, 0.99851147, 0.49305232],\
++[	-6.27192218, -0.00092255, 0.00056553, 7.27099964, 0.99718063, 0.99851192, 0.49305243],\
++[	-6.27192300, -0.00092227, 0.00056537, 7.27100073, 0.99718147, 0.99851236, 0.49305250],\
++[	-6.27192382, -0.00092200, 0.00056520, 7.27100182, 0.99718231, 0.99851280, 0.49305258],\
++[	-6.27192464, -0.00092173, 0.00056503, 7.27100291, 0.99718315, 0.99851325, 0.49305275],\
++[	-6.27192545, -0.00092145, 0.00056486, 7.27100400, 0.99718399, 0.99851369, 0.49305278],\
++[	-6.27192627, -0.00092118, 0.00056469, 7.27100509, 0.99718483, 0.99851413, 0.49305295],\
++[	-6.27192708, -0.00092090, 0.00056452, 7.27100618, 0.99718566, 0.99851457, 0.49305299],\
++[	-6.27192790, -0.00092063, 0.00056436, 7.27100727, 0.99718650, 0.99851502, 0.49305314],\
++[	-6.27192871, -0.00092036, 0.00056419, 7.27100835, 0.99718734, 0.99851546, 0.49305323],\
++[	-6.27192952, -0.00092008, 0.00056402, 7.27100944, 0.99718818, 0.99851590, 0.49305333],\
++[	-6.27193033, -0.00091981, 0.00056385, 7.27101052, 0.99718901, 0.99851634, 0.49305345],\
++[	-6.27193114, -0.00091954, 0.00056368, 7.27101160, 0.99718985, 0.99851678, 0.49305349],\
++[	-6.27193194, -0.00091926, 0.00056352, 7.27101268, 0.99719068, 0.99851722, 0.49305365],\
++[	-6.27193275, -0.00091899, 0.00056335, 7.27101376, 0.99719152, 0.99851766, 0.49305371],\
++[	-6.27193356, -0.00091872, 0.00056318, 7.27101484, 0.99719235, 0.99851810, 0.49305382],\
++[	-6.27193436, -0.00091844, 0.00056301, 7.27101592, 0.99719318, 0.99851854, 0.49305392],\
++[	-6.27193516, -0.00091817, 0.00056285, 7.27101699, 0.99719402, 0.99851898, 0.49305400],\
++[	-6.27193597, -0.00091790, 0.00056268, 7.27101807, 0.99719485, 0.99851942, 0.49305415],\
++[	-6.27193677, -0.00091763, 0.00056251, 7.27101914, 0.99719568, 0.99851986, 0.49305427],\
++[	-6.27193757, -0.00091736, 0.00056235, 7.27102021, 0.99719651, 0.99852030, 0.49305437],\
++[	-6.27193837, -0.00091708, 0.00056218, 7.27102128, 0.99719735, 0.99852074, 0.49305443],\
++[	-6.27193917, -0.00091681, 0.00056201, 7.27102235, 0.99719818, 0.99852117, 0.49305458],\
++[	-6.27193996, -0.00091654, 0.00056185, 7.27102342, 0.99719901, 0.99852161, 0.49305464],\
++[	-6.27194076, -0.00091627, 0.00056168, 7.27102449, 0.99719984, 0.99852205, 0.49305472],\
++[	-6.27194155, -0.00091600, 0.00056151, 7.27102556, 0.99720066, 0.99852249, 0.49305485],\
++[	-6.27194235, -0.00091573, 0.00056135, 7.27102662, 0.99720149, 0.99852292, 0.49305488],\
++[	-6.27194314, -0.00091546, 0.00056118, 7.27102769, 0.99720232, 0.99852336, 0.49305501],\
++[	-6.27194394, -0.00091519, 0.00056102, 7.27102875, 0.99720315, 0.99852380, 0.49305520],\
++[	-6.27194473, -0.00091492, 0.00056085, 7.27102981, 0.99720398, 0.99852423, 0.49305527],\
++[	-6.27194552, -0.00091465, 0.00056068, 7.27103087, 0.99720480, 0.99852467, 0.49305537],\
++[	-6.27194631, -0.00091438, 0.00056052, 7.27103193, 0.99720563, 0.99852511, 0.49305541],\
++[	-6.27194710, -0.00091411, 0.00056035, 7.27103299, 0.99720646, 0.99852554, 0.49305558],\
++[	-6.27194788, -0.00091384, 0.00056019, 7.27103405, 0.99720728, 0.99852598, 0.49305568],\
++[	-6.27194867, -0.00091357, 0.00056002, 7.27103510, 0.99720811, 0.99852641, 0.49305582],\
++[	-6.27194946, -0.00091330, 0.00055986, 7.27103616, 0.99720893, 0.99852685, 0.49305585],\
++[	-6.27195024, -0.00091303, 0.00055969, 7.27103721, 0.99720975, 0.99852728, 0.49305599],\
++[	-6.27195102, -0.00091276, 0.00055953, 7.27103827, 0.99721058, 0.99852772, 0.49305606],\
++[	-6.27195181, -0.00091249, 0.00055936, 7.27103932, 0.99721140, 0.99852815, 0.49305614],\
++[	-6.27195259, -0.00091222, 0.00055920, 7.27104037, 0.99721222, 0.99852858, 0.49305629],\
++[	-6.27195337, -0.00091195, 0.00055903, 7.27104142, 0.99721304, 0.99852902, 0.49305636],\
++[	-6.27195415, -0.00091168, 0.00055887, 7.27104247, 0.99721387, 0.99852945, 0.49305643],\
++[	-6.27195493, -0.00091141, 0.00055870, 7.27104351, 0.99721469, 0.99852988, 0.49305655],\
++[	-6.27195571, -0.00091115, 0.00055854, 7.27104456, 0.99721551, 0.99853032, 0.49305663],\
++[	-6.27195648, -0.00091088, 0.00055837, 7.27104561, 0.99721633, 0.99853075, 0.49305679],\
++[	-6.27195726, -0.00091061, 0.00055821, 7.27104665, 0.99721715, 0.99853118, 0.49305682],\
++[	-6.27195803, -0.00091034, 0.00055804, 7.27104769, 0.99721796, 0.99853161, 0.49305696],\
++[	-6.27195881, -0.00091007, 0.00055788, 7.27104873, 0.99721878, 0.99853205, 0.49305711],\
++[	-6.27195958, -0.00090981, 0.00055771, 7.27104978, 0.99721960, 0.99853248, 0.49305719],\
++[	-6.27196035, -0.00090954, 0.00055755, 7.27105081, 0.99722042, 0.99853291, 0.49305721],\
++[	-6.27196113, -0.00090927, 0.00055739, 7.27105185, 0.99722124, 0.99853334, 0.49305736],\
++[	-6.27196190, -0.00090901, 0.00055722, 7.27105289, 0.99722205, 0.99853377, 0.49305741],\
++[	-6.27196267, -0.00090874, 0.00055706, 7.27105393, 0.99722287, 0.99853420, 0.49305756],\
++[	-6.27196344, -0.00090847, 0.00055690, 7.27105496, 0.99722368, 0.99853463, 0.49305766],\
++[	-6.27196420, -0.00090821, 0.00055673, 7.27105600, 0.99722450, 0.99853506, 0.49305779],\
++[	-6.27196497, -0.00090794, 0.00055657, 7.27105703, 0.99722531, 0.99853549, 0.49305788],\
++[	-6.27196574, -0.00090767, 0.00055641, 7.27105806, 0.99722613, 0.99853592, 0.49305797],\
++[	-6.27196650, -0.00090741, 0.00055624, 7.27105909, 0.99722694, 0.99853635, 0.49305806],\
++[	-6.27196726, -0.00090714, 0.00055608, 7.27106012, 0.99722776, 0.99853678, 0.49305817],\
++[	-6.27196803, -0.00090688, 0.00055592, 7.27106115, 0.99722857, 0.99853721, 0.49305825],\
++[	-6.27196879, -0.00090661, 0.00055575, 7.27106218, 0.99722938, 0.99853764, 0.49305840],\
++[	-6.27196955, -0.00090634, 0.00055559, 7.27106321, 0.99723019, 0.99853807, 0.49305847],\
++[	-6.27197031, -0.00090608, 0.00055543, 7.27106423, 0.99723100, 0.99853849, 0.49305859],\
++[	-6.27197107, -0.00090581, 0.00055526, 7.27106526, 0.99723181, 0.99853892, 0.49305865],\
++[	-6.27197183, -0.00090555, 0.00055510, 7.27106628, 0.99723262, 0.99853935, 0.49305875],\
++[	-6.27197259, -0.00090528, 0.00055494, 7.27106730, 0.99723343, 0.99853978, 0.49305889],\
++[	-6.27197335, -0.00090502, 0.00055478, 7.27106833, 0.99723424, 0.99854020, 0.49305896],\
++[	-6.27197410, -0.00090476, 0.00055461, 7.27106935, 0.99723505, 0.99854063, 0.49305906],\
++[	-6.27197486, -0.00090449, 0.00055445, 7.27107037, 0.99723586, 0.99854106, 0.49305911],\
++[	-6.27197561, -0.00090423, 0.00055429, 7.27107138, 0.99723667, 0.99854148, 0.49305929],\
++[	-6.27197637, -0.00090396, 0.00055413, 7.27107240, 0.99723748, 0.99854191, 0.49305933],\
++[	-6.27197712, -0.00090370, 0.00055397, 7.27107342, 0.99723828, 0.99854233, 0.49305943],\
++[	-6.27197787, -0.00090344, 0.00055380, 7.27107443, 0.99723909, 0.99854276, 0.49305954],\
++[	-6.27197862, -0.00090317, 0.00055364, 7.27107545, 0.99723990, 0.99854319, 0.49305965],\
++[	-6.27197937, -0.00090291, 0.00055348, 7.27107646, 0.99724070, 0.99854361, 0.49305972],\
++[	-6.27198012, -0.00090264, 0.00055332, 7.27107748, 0.99724151, 0.99854404, 0.49305986],\
++[	-6.27198087, -0.00090238, 0.00055316, 7.27107849, 0.99724231, 0.99854446, 0.49305996],\
++[	-6.27198162, -0.00090212, 0.00055300, 7.27107950, 0.99724312, 0.99854488, 0.49306003],\
++[	-6.27198236, -0.00090186, 0.00055284, 7.27108051, 0.99724392, 0.99854531, 0.49306014],\
++[	-6.27198311, -0.00090159, 0.00055267, 7.27108151, 0.99724472, 0.99854573, 0.49306027],\
++[	-6.27198385, -0.00090133, 0.00055251, 7.27108252, 0.99724553, 0.99854616, 0.49306036],\
++[	-6.27198460, -0.00090107, 0.00055235, 7.27108353, 0.99724633, 0.99854658, 0.49306043],\
++[	-6.27198534, -0.00090081, 0.00055219, 7.27108453, 0.99724713, 0.99854700, 0.49306047],\
++[	-6.27198608, -0.00090054, 0.00055203, 7.27108554, 0.99724793, 0.99854742, 0.49306066],\
++[	-6.27198682, -0.00090028, 0.00055187, 7.27108654, 0.99724873, 0.99854785, 0.49306072],\
++[	-6.27198756, -0.00090002, 0.00055171, 7.27108754, 0.99724953, 0.99854827, 0.49306079],\
++[	-6.27198830, -0.00089976, 0.00055155, 7.27108855, 0.99725033, 0.99854869, 0.49306090],\
++[	-6.27198904, -0.00089950, 0.00055139, 7.27108955, 0.99725113, 0.99854911, 0.49306100],\
++[	-6.27198978, -0.00089924, 0.00055123, 7.27109054, 0.99725193, 0.99854954, 0.49306107],\
++[	-6.27199052, -0.00089898, 0.00055107, 7.27109154, 0.99725273, 0.99854996, 0.49306122],\
++[	-6.27199126, -0.00089871, 0.00055091, 7.27109254, 0.99725353, 0.99855038, 0.49306129],\
++[	-6.27199199, -0.00089845, 0.00055075, 7.27109354, 0.99725433, 0.99855080, 0.49306135],\
++[	-6.27199273, -0.00089819, 0.00055059, 7.27109453, 0.99725512, 0.99855122, 0.49306146],\
++[	-6.27199346, -0.00089793, 0.00055043, 7.27109553, 0.99725592, 0.99855164, 0.49306163],\
++[	-6.27199419, -0.00089767, 0.00055027, 7.27109652, 0.99725672, 0.99855206, 0.49306163],\
++[	-6.27199493, -0.00089741, 0.00055011, 7.27109751, 0.99725751, 0.99855248, 0.49306178],\
++[	-6.27199566, -0.00089715, 0.00054995, 7.27109851, 0.99725831, 0.99855290, 0.49306188],\
++[	-6.27199639, -0.00089689, 0.00054979, 7.27109950, 0.99725910, 0.99855332, 0.49306196],\
++[	-6.27199712, -0.00089663, 0.00054963, 7.27110049, 0.99725990, 0.99855374, 0.49306206],\
++[	-6.27199785, -0.00089637, 0.00054947, 7.27110147, 0.99726069, 0.99855416, 0.49306218],\
++[	-6.27199857, -0.00089611, 0.00054931, 7.27110246, 0.99726149, 0.99855458, 0.49306227],\
++[	-6.27199930, -0.00089585, 0.00054915, 7.27110345, 0.99726228, 0.99855499, 0.49306238],\
++[	-6.27200003, -0.00089559, 0.00054899, 7.27110443, 0.99726307, 0.99855541, 0.49306244],\
++[	-6.27200076, -0.00089534, 0.00054883, 7.27110542, 0.99726386, 0.99855583, 0.49306254],\
++[	-6.27200148, -0.00089508, 0.00054868, 7.27110640, 0.99726465, 0.99855625, 0.49306260],\
++[	-6.27200220, -0.00089482, 0.00054852, 7.27110739, 0.99726545, 0.99855667, 0.49306270],\
++[	-6.27200293, -0.00089456, 0.00054836, 7.27110837, 0.99726624, 0.99855708, 0.49306284],\
++[	-6.27200365, -0.00089430, 0.00054820, 7.27110935, 0.99726703, 0.99855750, 0.49306289],\
++[	-6.27200437, -0.00089404, 0.00054804, 7.27111033, 0.99726782, 0.99855792, 0.49306299],\
++[	-6.27200509, -0.00089378, 0.00054788, 7.27111131, 0.99726861, 0.99855833, 0.49306315],\
++[	-6.27200581, -0.00089353, 0.00054772, 7.27111229, 0.99726940, 0.99855875, 0.49306325],\
++[	-6.27200653, -0.00089327, 0.00054757, 7.27111326, 0.99727018, 0.99855916, 0.49306334],\
++[	-6.27200725, -0.00089301, 0.00054741, 7.27111424, 0.99727097, 0.99855958, 0.49306342],\
++[	-6.27200797, -0.00089275, 0.00054725, 7.27111522, 0.99727176, 0.99856000, 0.49306348],\
++[	-6.27200869, -0.00089250, 0.00054709, 7.27111619, 0.99727255, 0.99856041, 0.49306360],\
++[	-6.27200940, -0.00089224, 0.00054693, 7.27111717, 0.99727333, 0.99856083, 0.49306368],\
++[	-6.27201012, -0.00089198, 0.00054678, 7.27111814, 0.99727412, 0.99856124, 0.49306382],\
++[	-6.27201083, -0.00089172, 0.00054662, 7.27111911, 0.99727491, 0.99856166, 0.49306389],\
++[	-6.27201155, -0.00089147, 0.00054646, 7.27112008, 0.99727569, 0.99856207, 0.49306395],\
++[	-6.27201226, -0.00089121, 0.00054630, 7.27112105, 0.99727648, 0.99856248, 0.49306405],\
++[	-6.27201297, -0.00089095, 0.00054615, 7.27112202, 0.99727726, 0.99856290, 0.49306415],\
++[	-6.27201369, -0.00089070, 0.00054599, 7.27112299, 0.99727804, 0.99856331, 0.49306425],\
++[	-6.27201440, -0.00089044, 0.00054583, 7.27112395, 0.99727883, 0.99856373, 0.49306438],\
++[	-6.27201511, -0.00089019, 0.00054568, 7.27112492, 0.99727961, 0.99856414, 0.49306445],\
++[	-6.27201582, -0.00088993, 0.00054552, 7.27112589, 0.99728039, 0.99856455, 0.49306454],\
++[	-6.27201653, -0.00088967, 0.00054536, 7.27112685, 0.99728118, 0.99856496, 0.49306460],\
++[	-6.27201723, -0.00088942, 0.00054520, 7.27112782, 0.99728196, 0.99856538, 0.49306473],\
++[	-6.27201794, -0.00088916, 0.00054505, 7.27112878, 0.99728274, 0.99856579, 0.49306481],\
++[	-6.27201865, -0.00088891, 0.00054489, 7.27112974, 0.99728352, 0.99856620, 0.49306490],\
++[	-6.27201935, -0.00088865, 0.00054473, 7.27113070, 0.99728430, 0.99856661, 0.49306499],\
++[	-6.27202006, -0.00088840, 0.00054458, 7.27113166, 0.99728508, 0.99856702, 0.49306507],\
++[	-6.27202076, -0.00088814, 0.00054442, 7.27113262, 0.99728586, 0.99856744, 0.49306519],\
++[	-6.27202147, -0.00088789, 0.00054427, 7.27113358, 0.99728664, 0.99856785, 0.49306522],\
++[	-6.27202217, -0.00088763, 0.00054411, 7.27113454, 0.99728742, 0.99856826, 0.49306541],\
++[	-6.27202287, -0.00088738, 0.00054395, 7.27113549, 0.99728820, 0.99856867, 0.49306548],\
++[	-6.27202357, -0.00088713, 0.00054380, 7.27113645, 0.99728897, 0.99856908, 0.49306558],\
++[	-6.27202427, -0.00088687, 0.00054364, 7.27113740, 0.99728975, 0.99856949, 0.49306563],\
++[	-6.27202497, -0.00088662, 0.00054349, 7.27113836, 0.99729053, 0.99856990, 0.49306575],\
++[	-6.27202567, -0.00088636, 0.00054333, 7.27113931, 0.99729130, 0.99857031, 0.49306582],\
++[	-6.27202637, -0.00088611, 0.00054317, 7.27114026, 0.99729208, 0.99857072, 0.49306593],\
++[	-6.27202707, -0.00088586, 0.00054302, 7.27114121, 0.99729285, 0.99857113, 0.49306602],\
++[	-6.27202777, -0.00088560, 0.00054286, 7.27114216, 0.99729363, 0.99857153, 0.49306615],\
++[	-6.27202846, -0.00088535, 0.00054271, 7.27114311, 0.99729440, 0.99857194, 0.49306620],\
++[	-6.27202916, -0.00088510, 0.00054255, 7.27114406, 0.99729518, 0.99857235, 0.49306631],\
++[	-6.27202985, -0.00088484, 0.00054240, 7.27114501, 0.99729595, 0.99857276, 0.49306638],\
++[	-6.27203055, -0.00088459, 0.00054224, 7.27114596, 0.99729673, 0.99857317, 0.49306650],\
++[	-6.27203124, -0.00088434, 0.00054209, 7.27114690, 0.99729750, 0.99857358, 0.49306661],\
++[	-6.27203193, -0.00088409, 0.00054193, 7.27114785, 0.99729827, 0.99857398, 0.49306664],\
++[	-6.27203262, -0.00088383, 0.00054178, 7.27114879, 0.99729904, 0.99857439, 0.49306674],\
++[	-6.27203332, -0.00088358, 0.00054162, 7.27114973, 0.99729981, 0.99857480, 0.49306687],\
++[	-6.27203401, -0.00088333, 0.00054147, 7.27115068, 0.99730059, 0.99857520, 0.49306699],\
++[	-6.27203470, -0.00088308, 0.00054131, 7.27115162, 0.99730136, 0.99857561, 0.49306701],\
++[	-6.27203539, -0.00088282, 0.00054116, 7.27115256, 0.99730213, 0.99857602, 0.49306713],\
++[	-6.27203607, -0.00088257, 0.00054100, 7.27115350, 0.99730290, 0.99857642, 0.49306721],\
++[	-6.27203676, -0.00088232, 0.00054085, 7.27115444, 0.99730366, 0.99857683, 0.49306728],\
++[	-6.27203745, -0.00088207, 0.00054069, 7.27115538, 0.99730443, 0.99857724, 0.49306742],\
++[	-6.27203813, -0.00088182, 0.00054054, 7.27115632, 0.99730520, 0.99857764, 0.49306753],\
++[	-6.27203882, -0.00088157, 0.00054039, 7.27115725, 0.99730597, 0.99857805, 0.49306761],\
++[	-6.27203950, -0.00088132, 0.00054023, 7.27115819, 0.99730674, 0.99857845, 0.49306769],\
++[	-6.27204019, -0.00088107, 0.00054008, 7.27115912, 0.99730750, 0.99857886, 0.49306776],\
++[	-6.27204087, -0.00088082, 0.00053992, 7.27116006, 0.99730827, 0.99857926, 0.49306785],\
++[	-6.27204156, -0.00088056, 0.00053977, 7.27116099, 0.99730904, 0.99857966, 0.49306801],\
++[	-6.27204224, -0.00088031, 0.00053962, 7.27116192, 0.99730980, 0.99858007, 0.49306813],\
++[	-6.27204292, -0.00088006, 0.00053946, 7.27116286, 0.99731057, 0.99858047, 0.49306816],\
++[	-6.27204360, -0.00087981, 0.00053931, 7.27116379, 0.99731133, 0.99858088, 0.49306827],\
++[	-6.27204428, -0.00087956, 0.00053916, 7.27116472, 0.99731210, 0.99858128, 0.49306833],\
++[	-6.27204496, -0.00087931, 0.00053900, 7.27116565, 0.99731286, 0.99858168, 0.49306842],\
++[	-6.27204564, -0.00087906, 0.00053885, 7.27116657, 0.99731363, 0.99858209, 0.49306852],\
++[	-6.27204632, -0.00087881, 0.00053870, 7.27116750, 0.99731439, 0.99858249, 0.49306865],\
++[	-6.27204699, -0.00087857, 0.00053854, 7.27116843, 0.99731515, 0.99858289, 0.49306872],\
++[	-6.27204767, -0.00087832, 0.00053839, 7.27116935, 0.99731591, 0.99858329, 0.49306875],\
++[	-6.27204835, -0.00087807, 0.00053824, 7.27117028, 0.99731668, 0.99858369, 0.49306889],\
++[	-6.27204902, -0.00087782, 0.00053809, 7.27117120, 0.99731744, 0.99858410, 0.49306899],\
++[	-6.27204970, -0.00087757, 0.00053793, 7.27117213, 0.99731820, 0.99858450, 0.49306909],\
++[	-6.27205037, -0.00087732, 0.00053778, 7.27117305, 0.99731896, 0.99858490, 0.49306915],\
++[	-6.27205104, -0.00087707, 0.00053763, 7.27117397, 0.99731972, 0.99858530, 0.49306931],\
++[	-6.27205172, -0.00087682, 0.00053748, 7.27117489, 0.99732048, 0.99858570, 0.49306931],\
++[	-6.27205239, -0.00087658, 0.00053732, 7.27117581, 0.99732124, 0.99858610, 0.49306947],\
++[	-6.27205306, -0.00087633, 0.00053717, 7.27117673, 0.99732200, 0.99858650, 0.49306949],\
++[	-6.27205373, -0.00087608, 0.00053702, 7.27117765, 0.99732276, 0.99858690, 0.49306961],\
++[	-6.27205440, -0.00087583, 0.00053687, 7.27117857, 0.99732351, 0.99858730, 0.49306974],\
++[	-6.27205507, -0.00087558, 0.00053671, 7.27117949, 0.99732427, 0.99858770, 0.49306982],\
++[	-6.27205574, -0.00087534, 0.00053656, 7.27118040, 0.99732503, 0.99858810, 0.49306986],\
++[	-6.27205641, -0.00087509, 0.00053641, 7.27118132, 0.99732579, 0.99858850, 0.49306997],\
++[	-6.27205707, -0.00087484, 0.00053626, 7.27118223, 0.99732654, 0.99858890, 0.49307002],\
++[	-6.27205774, -0.00087459, 0.00053611, 7.27118315, 0.99732730, 0.99858930, 0.49307020],\
++[	-6.27205841, -0.00087435, 0.00053596, 7.27118406, 0.99732805, 0.99858970, 0.49307021],\
++[	-6.27205907, -0.00087410, 0.00053580, 7.27118497, 0.99732881, 0.99859010, 0.49307035],\
++[	-6.27205974, -0.00087385, 0.00053565, 7.27118588, 0.99732956, 0.99859049, 0.49307047],\
++[	-6.27206040, -0.00087361, 0.00053550, 7.27118679, 0.99733032, 0.99859089, 0.49307051],\
++[	-6.27206106, -0.00087336, 0.00053535, 7.27118770, 0.99733107, 0.99859129, 0.49307062],\
++[	-6.27206173, -0.00087311, 0.00053520, 7.27118861, 0.99733182, 0.99859169, 0.49307069],\
++[	-6.27206239, -0.00087287, 0.00053505, 7.27118952, 0.99733258, 0.99859208, 0.49307080],\
++[	-6.27206305, -0.00087262, 0.00053490, 7.27119043, 0.99733333, 0.99859248, 0.49307089],\
++[	-6.27206371, -0.00087238, 0.00053475, 7.27119134, 0.99733408, 0.99859288, 0.49307096],\
++[	-6.27206437, -0.00087213, 0.00053460, 7.27119224, 0.99733483, 0.99859327, 0.49307103],\
++[	-6.27206503, -0.00087188, 0.00053445, 7.27119315, 0.99733558, 0.99859367, 0.49307121],\
++[	-6.27206569, -0.00087164, 0.00053429, 7.27119405, 0.99733633, 0.99859407, 0.49307121],\
++[	-6.27206635, -0.00087139, 0.00053414, 7.27119496, 0.99733709, 0.99859446, 0.49307131],\
++[	-6.27206701, -0.00087115, 0.00053399, 7.27119586, 0.99733783, 0.99859486, 0.49307143],\
++[	-6.27206767, -0.00087090, 0.00053384, 7.27119676, 0.99733858, 0.99859525, 0.49307152],\
++[	-6.27206832, -0.00087066, 0.00053369, 7.27119766, 0.99733933, 0.99859565, 0.49307163],\
++[	-6.27206898, -0.00087041, 0.00053354, 7.27119856, 0.99734008, 0.99859604, 0.49307170],\
++[	-6.27206963, -0.00087017, 0.00053339, 7.27119946, 0.99734083, 0.99859644, 0.49307178],\
++[	-6.27207029, -0.00086992, 0.00053324, 7.27120036, 0.99734158, 0.99859683, 0.49307182],\
++[	-6.27207094, -0.00086968, 0.00053309, 7.27120126, 0.99734233, 0.99859723, 0.49307196],\
++[	-6.27207160, -0.00086944, 0.00053294, 7.27120216, 0.99734307, 0.99859762, 0.49307197],\
++[	-6.27207225, -0.00086919, 0.00053279, 7.27120306, 0.99734382, 0.99859802, 0.49307220],\
++[	-6.27207290, -0.00086895, 0.00053264, 7.27120395, 0.99734457, 0.99859841, 0.49307226],\
++[	-6.27207355, -0.00086870, 0.00053249, 7.27120485, 0.99734531, 0.99859880, 0.49307233],\
++[	-6.27207420, -0.00086846, 0.00053234, 7.27120574, 0.99734606, 0.99859920, 0.49307241],\
++[	-6.27207485, -0.00086822, 0.00053219, 7.27120664, 0.99734680, 0.99859959, 0.49307252],\
++[	-6.27207550, -0.00086797, 0.00053205, 7.27120753, 0.99734755, 0.99859998, 0.49307258],\
++[	-6.27207615, -0.00086773, 0.00053190, 7.27120842, 0.99734829, 0.99860037, 0.49307271],\
++[	-6.27207680, -0.00086749, 0.00053175, 7.27120931, 0.99734903, 0.99860077, 0.49307274],\
++[	-6.27207745, -0.00086724, 0.00053160, 7.27121021, 0.99734978, 0.99860116, 0.49307287],\
++[	-6.27207810, -0.00086700, 0.00053145, 7.27121110, 0.99735052, 0.99860155, 0.49307293],\
++[	-6.27207874, -0.00086676, 0.00053130, 7.27121199, 0.99735126, 0.99860194, 0.49307303],\
++[	-6.27207939, -0.00086652, 0.00053115, 7.27121287, 0.99735200, 0.99860233, 0.49307313],\
++[	-6.27208004, -0.00086627, 0.00053100, 7.27121376, 0.99735275, 0.99860273, 0.49307325],\
++[	-6.27208068, -0.00086603, 0.00053085, 7.27121465, 0.99735349, 0.99860312, 0.49307329],\
++[	-6.27208132, -0.00086579, 0.00053070, 7.27121554, 0.99735423, 0.99860351, 0.49307333],\
++[	-6.27208197, -0.00086555, 0.00053056, 7.27121642, 0.99735497, 0.99860390, 0.49307349],\
++[	-6.27208261, -0.00086530, 0.00053041, 7.27121731, 0.99735571, 0.99860429, 0.49307355],\
++[	-6.27208325, -0.00086506, 0.00053026, 7.27121819, 0.99735645, 0.99860468, 0.49307366],\
++[	-6.27208390, -0.00086482, 0.00053011, 7.27121907, 0.99735719, 0.99860507, 0.49307376],\
++[	-6.27208454, -0.00086458, 0.00052996, 7.27121996, 0.99735792, 0.99860546, 0.49307384],\
++[	-6.27208518, -0.00086434, 0.00052981, 7.27122084, 0.99735866, 0.99860585, 0.49307389],\
++[	-6.27208582, -0.00086410, 0.00052967, 7.27122172, 0.99735940, 0.99860624, 0.49307398],\
++[	-6.27208646, -0.00086386, 0.00052952, 7.27122260, 0.99736014, 0.99860663, 0.49307410],\
++[	-6.27208710, -0.00086361, 0.00052937, 7.27122348, 0.99736088, 0.99860701, 0.49307418],\
++[	-6.27208774, -0.00086337, 0.00052922, 7.27122436, 0.99736161, 0.99860740, 0.49307431],\
++[	-6.27208837, -0.00086313, 0.00052908, 7.27122524, 0.99736235, 0.99860779, 0.49307430],\
++[	-6.27208901, -0.00086289, 0.00052893, 7.27122612, 0.99736308, 0.99860818, 0.49307450],\
++[	-6.27208965, -0.00086265, 0.00052878, 7.27122700, 0.99736382, 0.99860857, 0.49307452],\
++[	-6.27209028, -0.00086241, 0.00052863, 7.27122787, 0.99736455, 0.99860896, 0.49307461],\
++[	-6.27209092, -0.00086217, 0.00052849, 7.27122875, 0.99736529, 0.99860934, 0.49307473],\
++[	-6.27209155, -0.00086193, 0.00052834, 7.27122962, 0.99736602, 0.99860973, 0.49307476],\
++[	-6.27209219, -0.00086169, 0.00052819, 7.27123050, 0.99736676, 0.99861012, 0.49307493],\
++[	-6.27209282, -0.00086145, 0.00052804, 7.27123137, 0.99736749, 0.99861050, 0.49307491],\
++[	-6.27209346, -0.00086121, 0.00052790, 7.27123224, 0.99736822, 0.99861089, 0.49307506],\
++[	-6.27209409, -0.00086097, 0.00052775, 7.27123312, 0.99736896, 0.99861128, 0.49307515],\
++[	-6.27209472, -0.00086073, 0.00052760, 7.27123399, 0.99736969, 0.99861166, 0.49307527],\
++[	-6.27209535, -0.00086049, 0.00052746, 7.27123486, 0.99737042, 0.99861205, 0.49307528],\
++[	-6.27209598, -0.00086025, 0.00052731, 7.27123573, 0.99737115, 0.99861244, 0.49307544],\
++[	-6.27209661, -0.00086002, 0.00052716, 7.27123660, 0.99737188, 0.99861282, 0.49307551],\
++[	-6.27209724, -0.00085978, 0.00052702, 7.27123747, 0.99737261, 0.99861321, 0.49307555],\
++[	-6.27209787, -0.00085954, 0.00052687, 7.27123833, 0.99737334, 0.99861359, 0.49307566],\
++[	-6.27209850, -0.00085930, 0.00052672, 7.27123920, 0.99737407, 0.99861398, 0.49307570],\
++[	-6.27209913, -0.00085906, 0.00052658, 7.27124007, 0.99737480, 0.99861436, 0.49307581],\
++[	-6.27209976, -0.00085882, 0.00052643, 7.27124094, 0.99737553, 0.99861475, 0.49307599],\
++[	-6.27210038, -0.00085858, 0.00052628, 7.27124180, 0.99737626, 0.99861513, 0.49307598],\
++[	-6.27210101, -0.00085835, 0.00052614, 7.27124266, 0.99737699, 0.99861551, 0.49307614],\
++[	-6.27210164, -0.00085811, 0.00052599, 7.27124353, 0.99737771, 0.99861590, 0.49307614],\
++[	-6.27210226, -0.00085787, 0.00052585, 7.27124439, 0.99737844, 0.99861628, 0.49307625],\
++[	-6.27210289, -0.00085763, 0.00052570, 7.27124525, 0.99737917, 0.99861667, 0.49307637],\
++[	-6.27210351, -0.00085740, 0.00052555, 7.27124612, 0.99737989, 0.99861705, 0.49307645],\
++[	-6.27210414, -0.00085716, 0.00052541, 7.27124698, 0.99738062, 0.99861743, 0.49307653],\
++[	-6.27210476, -0.00085692, 0.00052526, 7.27124784, 0.99738135, 0.99861782, 0.49307663],\
++[	-6.27210538, -0.00085668, 0.00052512, 7.27124870, 0.99738207, 0.99861820, 0.49307669],\
++[	-6.27210600, -0.00085645, 0.00052497, 7.27124956, 0.99738280, 0.99861858, 0.49307677],\
++[	-6.27210663, -0.00085621, 0.00052483, 7.27125042, 0.99738352, 0.99861896, 0.49307688],\
++[	-6.27210725, -0.00085597, 0.00052468, 7.27125127, 0.99738424, 0.99861934, 0.49307699],\
++[	-6.27210787, -0.00085574, 0.00052454, 7.27125213, 0.99738497, 0.99861973, 0.49307706],\
++[	-6.27210849, -0.00085550, 0.00052439, 7.27125299, 0.99738569, 0.99862011, 0.49307704],\
++[	-6.27210911, -0.00085526, 0.00052425, 7.27125384, 0.99738641, 0.99862049, 0.49307723],\
++[	-6.27210973, -0.00085503, 0.00052410, 7.27125470, 0.99738714, 0.99862087, 0.49307731],\
++[	-6.27211034, -0.00085479, 0.00052396, 7.27125555, 0.99738786, 0.99862125, 0.49307742],\
++[	-6.27211096, -0.00085456, 0.00052381, 7.27125641, 0.99738858, 0.99862163, 0.49307753],\
++[	-6.27211158, -0.00085432, 0.00052367, 7.27125726, 0.99738930, 0.99862201, 0.49307753],\
++[	-6.27211220, -0.00085408, 0.00052352, 7.27125811, 0.99739002, 0.99862239, 0.49307764],\
++[	-6.27211281, -0.00085385, 0.00052338, 7.27125896, 0.99739074, 0.99862277, 0.49307770],\
++[	-6.27211343, -0.00085361, 0.00052323, 7.27125981, 0.99739146, 0.99862315, 0.49307780],\
++[	-6.27211404, -0.00085338, 0.00052309, 7.27126067, 0.99739218, 0.99862353, 0.49307792],\
++[	-6.27211466, -0.00085314, 0.00052295, 7.27126152, 0.99739290, 0.99862391, 0.49307794],\
++[	-6.27211527, -0.00085291, 0.00052280, 7.27126236, 0.99739362, 0.99862429, 0.49307803],\
++[	-6.27211589, -0.00085267, 0.00052266, 7.27126321, 0.99739434, 0.99862467, 0.49307820],\
++[	-6.27211650, -0.00085244, 0.00052251, 7.27126406, 0.99739506, 0.99862505, 0.49307827],\
++[	-6.27211711, -0.00085220, 0.00052237, 7.27126491, 0.99739577, 0.99862543, 0.49307830],\
++[	-6.27211772, -0.00085197, 0.00052222, 7.27126575, 0.99739649, 0.99862581, 0.49307839],\
++[	-6.27211833, -0.00085173, 0.00052208, 7.27126660, 0.99739721, 0.99862618, 0.49307851],\
++[	-6.27211895, -0.00085150, 0.00052194, 7.27126745, 0.99739792, 0.99862656, 0.49307861],\
++[	-6.27211956, -0.00085127, 0.00052179, 7.27126829, 0.99739864, 0.99862694, 0.49307868],\
++[	-6.27212017, -0.00085103, 0.00052165, 7.27126913, 0.99739936, 0.99862732, 0.49307878],\
++[	-6.27212078, -0.00085080, 0.00052151, 7.27126998, 0.99740007, 0.99862770, 0.49307884],\
++[	-6.27212138, -0.00085056, 0.00052136, 7.27127082, 0.99740079, 0.99862807, 0.49307888],\
++[	-6.27212199, -0.00085033, 0.00052122, 7.27127166, 0.99740150, 0.99862845, 0.49307902],\
++[	-6.27212260, -0.00085010, 0.00052108, 7.27127250, 0.99740221, 0.99862883, 0.49307911],\
++[	-6.27212321, -0.00084986, 0.00052093, 7.27127334, 0.99740293, 0.99862920, 0.49307920],\
++[	-6.27212381, -0.00084963, 0.00052079, 7.27127418, 0.99740364, 0.99862958, 0.49307926],\
++[	-6.27212442, -0.00084940, 0.00052065, 7.27127502, 0.99740435, 0.99862996, 0.49307935],\
++[	-6.27212503, -0.00084916, 0.00052050, 7.27127586, 0.99740507, 0.99863033, 0.49307944],\
++[	-6.27212563, -0.00084893, 0.00052036, 7.27127670, 0.99740578, 0.99863071, 0.49307944],\
++[	-6.27212624, -0.00084870, 0.00052022, 7.27127754, 0.99740649, 0.99863108, 0.49307954],\
++[	-6.27212684, -0.00084847, 0.00052008, 7.27127837, 0.99740720, 0.99863146, 0.49307961],\
++[	-6.27212744, -0.00084823, 0.00051993, 7.27127921, 0.99740791, 0.99863183, 0.49307978],\
++[	-6.27212805, -0.00084800, 0.00051979, 7.27128005, 0.99740862, 0.99863221, 0.49307983],\
++[	-6.27212865, -0.00084777, 0.00051965, 7.27128088, 0.99740933, 0.99863258, 0.49307996],\
++[	-6.27212925, -0.00084754, 0.00051951, 7.27128172, 0.99741004, 0.99863296, 0.49308005],\
++[	-6.27212986, -0.00084730, 0.00051936, 7.27128255, 0.99741075, 0.99863333, 0.49308014],\
++[	-6.27213046, -0.00084707, 0.00051922, 7.27128338, 0.99741146, 0.99863371, 0.49308018],\
++[	-6.27213106, -0.00084684, 0.00051908, 7.27128422, 0.99741217, 0.99863408, 0.49308030],\
++[	-6.27213166, -0.00084661, 0.00051894, 7.27128505, 0.99741288, 0.99863445, 0.49308040],\
++[	-6.27213226, -0.00084638, 0.00051879, 7.27128588, 0.99741359, 0.99863483, 0.49308040],\
++[	-6.27213286, -0.00084615, 0.00051865, 7.27128671, 0.99741429, 0.99863520, 0.49308050],\
++[	-6.27213345, -0.00084592, 0.00051851, 7.27128754, 0.99741500, 0.99863557, 0.49308061],\
++[	-6.27213405, -0.00084568, 0.00051837, 7.27128837, 0.99741571, 0.99863595, 0.49308064],\
++[	-6.27213465, -0.00084545, 0.00051823, 7.27128920, 0.99741641, 0.99863632, 0.49308083],\
++[	-6.27213525, -0.00084522, 0.00051809, 7.27129003, 0.99741712, 0.99863669, 0.49308089],\
++[	-6.27213585, -0.00084499, 0.00051794, 7.27129085, 0.99741783, 0.99863706, 0.49308103],\
++[	-6.27213644, -0.00084476, 0.00051780, 7.27129168, 0.99741853, 0.99863744, 0.49308104],\
++[	-6.27213704, -0.00084453, 0.00051766, 7.27129251, 0.99741924, 0.99863781, 0.49308114],\
++[	-6.27213763, -0.00084430, 0.00051752, 7.27129333, 0.99741994, 0.99863818, 0.49308122],\
++[	-6.27213823, -0.00084407, 0.00051738, 7.27129416, 0.99742064, 0.99863855, 0.49308125],\
++[	-6.27213882, -0.00084384, 0.00051724, 7.27129498, 0.99742135, 0.99863892, 0.49308128],\
++[	-6.27213942, -0.00084361, 0.00051710, 7.27129581, 0.99742205, 0.99863929, 0.49308149],\
++[	-6.27214001, -0.00084338, 0.00051696, 7.27129663, 0.99742275, 0.99863966, 0.49308153],\
++[	-6.27214060, -0.00084315, 0.00051681, 7.27129745, 0.99742346, 0.99864003, 0.49308160],\
++[	-6.27214120, -0.00084292, 0.00051667, 7.27129827, 0.99742416, 0.99864041, 0.49308174],\
++[	-6.27214179, -0.00084269, 0.00051653, 7.27129910, 0.99742486, 0.99864078, 0.49308171],\
++[	-6.27214238, -0.00084246, 0.00051639, 7.27129992, 0.99742556, 0.99864115, 0.49308189],\
++[	-6.27214297, -0.00084223, 0.00051625, 7.27130074, 0.99742626, 0.99864152, 0.49308189],\
++[	-6.27214356, -0.00084200, 0.00051611, 7.27130156, 0.99742696, 0.99864188, 0.49308208],\
++[	-6.27214415, -0.00084178, 0.00051597, 7.27130237, 0.99742766, 0.99864225, 0.49308218],\
++[	-6.27214474, -0.00084155, 0.00051583, 7.27130319, 0.99742836, 0.99864262, 0.49308217],\
++[	-6.27214533, -0.00084132, 0.00051569, 7.27130401, 0.99742906, 0.99864299, 0.49308225],\
++[	-6.27214592, -0.00084109, 0.00051555, 7.27130483, 0.99742976, 0.99864336, 0.49308239],\
++[	-6.27214651, -0.00084086, 0.00051541, 7.27130564, 0.99743046, 0.99864373, 0.49308247],\
++[	-6.27214709, -0.00084063, 0.00051527, 7.27130646, 0.99743116, 0.99864410, 0.49308255],\
++[	-6.27214768, -0.00084040, 0.00051513, 7.27130728, 0.99743186, 0.99864447, 0.49308258],\
++[	-6.27214827, -0.00084018, 0.00051499, 7.27130809, 0.99743255, 0.99864483, 0.49308266],\
++[	-6.27214885, -0.00083995, 0.00051485, 7.27130891, 0.99743325, 0.99864520, 0.49308274],\
++[	-6.27214944, -0.00083972, 0.00051471, 7.27130972, 0.99743395, 0.99864557, 0.49308290],\
++[	-6.27215002, -0.00083949, 0.00051457, 7.27131053, 0.99743464, 0.99864594, 0.49308290],\
++[	-6.27215061, -0.00083926, 0.00051443, 7.27131134, 0.99743534, 0.99864631, 0.49308300],\
++[	-6.27215119, -0.00083904, 0.00051429, 7.27131216, 0.99743604, 0.99864667, 0.49308315],\
++[	-6.27215178, -0.00083881, 0.00051415, 7.27131297, 0.99743673, 0.99864704, 0.49308314],\
++[	-6.27215236, -0.00083858, 0.00051401, 7.27131378, 0.99743743, 0.99864741, 0.49308324],\
++[	-6.27215294, -0.00083836, 0.00051387, 7.27131459, 0.99743812, 0.99864777, 0.49308338],\
++[	-6.27215353, -0.00083813, 0.00051373, 7.27131540, 0.99743881, 0.99864814, 0.49308338],\
++[	-6.27215411, -0.00083790, 0.00051359, 7.27131621, 0.99743951, 0.99864850, 0.49308350],\
++[	-6.27215469, -0.00083768, 0.00051345, 7.27131702, 0.99744020, 0.99864887, 0.49308357],\
++[	-6.27215527, -0.00083745, 0.00051332, 7.27131782, 0.99744089, 0.99864924, 0.49308374],\
++[	-6.27215585, -0.00083722, 0.00051318, 7.27131863, 0.99744159, 0.99864960, 0.49308379],\
++[	-6.27215643, -0.00083700, 0.00051304, 7.27131944, 0.99744228, 0.99864997, 0.49308384],\
++[	-6.27215701, -0.00083677, 0.00051290, 7.27132024, 0.99744297, 0.99865033, 0.49308393],\
++[	-6.27215759, -0.00083654, 0.00051276, 7.27132105, 0.99744366, 0.99865070, 0.49308399],\
++[	-6.27215817, -0.00083632, 0.00051262, 7.27132185, 0.99744435, 0.99865106, 0.49308412],\
++[	-6.27215875, -0.00083609, 0.00051248, 7.27132266, 0.99744504, 0.99865143, 0.49308421],\
++[	-6.27215933, -0.00083587, 0.00051234, 7.27132346, 0.99744574, 0.99865179, 0.49308425],\
++[	-6.27215990, -0.00083564, 0.00051221, 7.27132426, 0.99744643, 0.99865215, 0.49308434],\
++[	-6.27216048, -0.00083541, 0.00051207, 7.27132507, 0.99744711, 0.99865252, 0.49308442],\
++[	-6.27216106, -0.00083519, 0.00051193, 7.27132587, 0.99744780, 0.99865288, 0.49308450],\
++[	-6.27216164, -0.00083496, 0.00051179, 7.27132667, 0.99744849, 0.99865324, 0.49308461],\
++[	-6.27216221, -0.00083474, 0.00051165, 7.27132747, 0.99744918, 0.99865361, 0.49308467],\
++[	-6.27216279, -0.00083451, 0.00051151, 7.27132827, 0.99744987, 0.99865397, 0.49308473],\
++[	-6.27216336, -0.00083429, 0.00051138, 7.27132907, 0.99745056, 0.99865433, 0.49308483],\
++[	-6.27216394, -0.00083406, 0.00051124, 7.27132987, 0.99745124, 0.99865470, 0.49308489],\
++[	-6.27216451, -0.00083384, 0.00051110, 7.27133067, 0.99745193, 0.99865506, 0.49308501],\
++[	-6.27216508, -0.00083361, 0.00051096, 7.27133147, 0.99745262, 0.99865542, 0.49308509],\
++[	-6.27216566, -0.00083339, 0.00051083, 7.27133227, 0.99745330, 0.99865578, 0.49308519],\
++[	-6.27216623, -0.00083317, 0.00051069, 7.27133306, 0.99745399, 0.99865615, 0.49308520],\
++[	-6.27216680, -0.00083294, 0.00051055, 7.27133386, 0.99745468, 0.99865651, 0.49308532],\
++[	-6.27216737, -0.00083272, 0.00051041, 7.27133465, 0.99745536, 0.99865687, 0.49308537],\
++[	-6.27216794, -0.00083249, 0.00051028, 7.27133545, 0.99745605, 0.99865723, 0.49308548],\
++[	-6.27216851, -0.00083227, 0.00051014, 7.27133624, 0.99745673, 0.99865759, 0.49308555],\
++[	-6.27216909, -0.00083205, 0.00051000, 7.27133704, 0.99745741, 0.99865795, 0.49308568],\
++[	-6.27216966, -0.00083182, 0.00050986, 7.27133783, 0.99745810, 0.99865831, 0.49308575],\
++[	-6.27217022, -0.00083160, 0.00050973, 7.27133863, 0.99745878, 0.99865867, 0.49308580],\
++[	-6.27217079, -0.00083138, 0.00050959, 7.27133942, 0.99745946, 0.99865903, 0.49308589],\
++[	-6.27217136, -0.00083115, 0.00050945, 7.27134021, 0.99746015, 0.99865939, 0.49308593],\
++[	-6.27217193, -0.00083093, 0.00050932, 7.27134100, 0.99746083, 0.99865975, 0.49308603],\
++[	-6.27217250, -0.00083071, 0.00050918, 7.27134179, 0.99746151, 0.99866011, 0.49308603],\
++[	-6.27217307, -0.00083048, 0.00050904, 7.27134258, 0.99746219, 0.99866047, 0.49308626],\
++[	-6.27217363, -0.00083026, 0.00050891, 7.27134337, 0.99746287, 0.99866083, 0.49308628],\
++[	-6.27217420, -0.00083004, 0.00050877, 7.27134416, 0.99746355, 0.99866119, 0.49308633],\
++[	-6.27217477, -0.00082982, 0.00050863, 7.27134495, 0.99746424, 0.99866155, 0.49308648],\
++[	-6.27217533, -0.00082959, 0.00050850, 7.27134574, 0.99746492, 0.99866191, 0.49308650],\
++[	-6.27217590, -0.00082937, 0.00050836, 7.27134653, 0.99746559, 0.99866227, 0.49308659],\
++[	-6.27217646, -0.00082915, 0.00050822, 7.27134731, 0.99746627, 0.99866263, 0.49308664],\
++[	-6.27217703, -0.00082893, 0.00050809, 7.27134810, 0.99746695, 0.99866299, 0.49308674],\
++[	-6.27217759, -0.00082871, 0.00050795, 7.27134888, 0.99746763, 0.99866334, 0.49308688],\
++[	-6.27217815, -0.00082848, 0.00050782, 7.27134967, 0.99746831, 0.99866370, 0.49308691],\
++[	-6.27217872, -0.00082826, 0.00050768, 7.27135045, 0.99746899, 0.99866406, 0.49308700],\
++[	-6.27217928, -0.00082804, 0.00050754, 7.27135124, 0.99746967, 0.99866442, 0.49308706],\
++[	-6.27217984, -0.00082782, 0.00050741, 7.27135202, 0.99747034, 0.99866477, 0.49308711],\
++[	-6.27218040, -0.00082760, 0.00050727, 7.27135281, 0.99747102, 0.99866513, 0.49308731],\
++[	-6.27218097, -0.00082738, 0.00050714, 7.27135359, 0.99747170, 0.99866549, 0.49308733],\
++[	-6.27218153, -0.00082716, 0.00050700, 7.27135437, 0.99747237, 0.99866584, 0.49308746],\
++[	-6.27218209, -0.00082693, 0.00050686, 7.27135515, 0.99747305, 0.99866620, 0.49308753],\
++[	-6.27218265, -0.00082671, 0.00050673, 7.27135593, 0.99747372, 0.99866656, 0.49308759],\
++[	-6.27218321, -0.00082649, 0.00050659, 7.27135671, 0.99747440, 0.99866691, 0.49308757],\
++[	-6.27218377, -0.00082627, 0.00050646, 7.27135749, 0.99747507, 0.99866727, 0.49308770],\
++[	-6.27218433, -0.00082605, 0.00050632, 7.27135827, 0.99747575, 0.99866763, 0.49308772],\
++[	-6.27218488, -0.00082583, 0.00050619, 7.27135905, 0.99747642, 0.99866798, 0.49308784],\
++[	-6.27218544, -0.00082561, 0.00050605, 7.27135983, 0.99747709, 0.99866834, 0.49308794],\
++[	-6.27218600, -0.00082539, 0.00050592, 7.27136061, 0.99747777, 0.99866869, 0.49308810],\
++[	-6.27218656, -0.00082517, 0.00050578, 7.27136139, 0.99747844, 0.99866905, 0.49308812],\
++[	-6.27218711, -0.00082495, 0.00050565, 7.27136216, 0.99747911, 0.99866940, 0.49308821],\
++[	-6.27218767, -0.00082473, 0.00050551, 7.27136294, 0.99747978, 0.99866976, 0.49308825],\
++[	-6.27218823, -0.00082451, 0.00050538, 7.27136371, 0.99748046, 0.99867011, 0.49308833],\
++[	-6.27218878, -0.00082429, 0.00050524, 7.27136449, 0.99748113, 0.99867046, 0.49308847],\
++[	-6.27218934, -0.00082407, 0.00050511, 7.27136526, 0.99748180, 0.99867082, 0.49308860],\
++[	-6.27218989, -0.00082385, 0.00050497, 7.27136604, 0.99748247, 0.99867117, 0.49308859],\
++[	-6.27219045, -0.00082363, 0.00050484, 7.27136681, 0.99748314, 0.99867153, 0.49308869],\
++[	-6.27219100, -0.00082341, 0.00050471, 7.27136759, 0.99748381, 0.99867188, 0.49308873],\
++[	-6.27219155, -0.00082320, 0.00050457, 7.27136836, 0.99748448, 0.99867223, 0.49308878],\
++[	-6.27219211, -0.00082298, 0.00050444, 7.27136913, 0.99748515, 0.99867259, 0.49308888],\
++[	-6.27219266, -0.00082276, 0.00050430, 7.27136990, 0.99748582, 0.99867294, 0.49308897],\
++[	-6.27219321, -0.00082254, 0.00050417, 7.27137067, 0.99748649, 0.99867329, 0.49308901],\
++[	-6.27219376, -0.00082232, 0.00050403, 7.27137144, 0.99748715, 0.99867364, 0.49308913],\
++[	-6.27219432, -0.00082210, 0.00050390, 7.27137221, 0.99748782, 0.99867400, 0.49308916],\
++[	-6.27219487, -0.00082188, 0.00050377, 7.27137298, 0.99748849, 0.99867435, 0.49308935],\
++[	-6.27219542, -0.00082167, 0.00050363, 7.27137375, 0.99748916, 0.99867470, 0.49308938],\
++[	-6.27219597, -0.00082145, 0.00050350, 7.27137452, 0.99748982, 0.99867505, 0.49308944],\
++[	-6.27219652, -0.00082123, 0.00050337, 7.27137529, 0.99749049, 0.99867540, 0.49308959],\
++[	-6.27219707, -0.00082101, 0.00050323, 7.27137606, 0.99749116, 0.99867576, 0.49308961],\
++[	-6.27219762, -0.00082080, 0.00050310, 7.27137682, 0.99749182, 0.99867611, 0.49308966],\
++[	-6.27219817, -0.00082058, 0.00050296, 7.27137759, 0.99749249, 0.99867646, 0.49308979],\
++[	-6.27219872, -0.00082036, 0.00050283, 7.27137836, 0.99749315, 0.99867681, 0.49308985],\
++[	-6.27219926, -0.00082014, 0.00050270, 7.27137912, 0.99749382, 0.99867716, 0.49308989],\
++[	-6.27219981, -0.00081993, 0.00050256, 7.27137989, 0.99749448, 0.99867751, 0.49309002],\
++[	-6.27220036, -0.00081971, 0.00050243, 7.27138065, 0.99749514, 0.99867786, 0.49309006],\
++[	-6.27220091, -0.00081949, 0.00050230, 7.27138141, 0.99749581, 0.99867821, 0.49309016],\
++[	-6.27220145, -0.00081927, 0.00050216, 7.27138218, 0.99749647, 0.99867856, 0.49309022],\
++[	-6.27220200, -0.00081906, 0.00050203, 7.27138294, 0.99749713, 0.99867891, 0.49309028],\
++[	-6.27220254, -0.00081884, 0.00050190, 7.27138370, 0.99749780, 0.99867926, 0.49309037],\
++[	-6.27220309, -0.00081862, 0.00050177, 7.27138446, 0.99749846, 0.99867961, 0.49309053],\
++[	-6.27220363, -0.00081841, 0.00050163, 7.27138523, 0.99749912, 0.99867996, 0.49309055],\
++[	-6.27220418, -0.00081819, 0.00050150, 7.27138599, 0.99749978, 0.99868031, 0.49309069],\
++[	-6.27220472, -0.00081798, 0.00050137, 7.27138675, 0.99750044, 0.99868066, 0.49309070],\
++[	-6.27220527, -0.00081776, 0.00050124, 7.27138751, 0.99750110, 0.99868100, 0.49309083],\
++[	-6.27220581, -0.00081754, 0.00050110, 7.27138827, 0.99750176, 0.99868135, 0.49309090],\
++[	-6.27220635, -0.00081733, 0.00050097, 7.27138902, 0.99750242, 0.99868170, 0.49309098],\
++[	-6.27220690, -0.00081711, 0.00050084, 7.27138978, 0.99750308, 0.99868205, 0.49309101],\
++[	-6.27220744, -0.00081690, 0.00050071, 7.27139054, 0.99750374, 0.99868240, 0.49309113],\
++[	-6.27220798, -0.00081668, 0.00050057, 7.27139130, 0.99750440, 0.99868275, 0.49309116],\
++[	-6.27220852, -0.00081647, 0.00050044, 7.27139205, 0.99750506, 0.99868309, 0.49309123],\
++[	-6.27220906, -0.00081625, 0.00050031, 7.27139281, 0.99750572, 0.99868344, 0.49309142],\
++[	-6.27220960, -0.00081604, 0.00050018, 7.27139357, 0.99750638, 0.99868379, 0.49309142],\
++[	-6.27221014, -0.00081582, 0.00050005, 7.27139432, 0.99750703, 0.99868413, 0.49309146],\
++[	-6.27221068, -0.00081561, 0.00049991, 7.27139508, 0.99750769, 0.99868448, 0.49309158],\
++[	-6.27221122, -0.00081539, 0.00049978, 7.27139583, 0.99750835, 0.99868483, 0.49309166],\
++[	-6.27221176, -0.00081518, 0.00049965, 7.27139659, 0.99750901, 0.99868517, 0.49309171],\
++[	-6.27221230, -0.00081496, 0.00049952, 7.27139734, 0.99750966, 0.99868552, 0.49309183],\
++[	-6.27221284, -0.00081475, 0.00049939, 7.27139809, 0.99751032, 0.99868587, 0.49309186],\
++[	-6.27221338, -0.00081453, 0.00049926, 7.27139884, 0.99751097, 0.99868621, 0.49309196],\
++[	-6.27221391, -0.00081432, 0.00049912, 7.27139960, 0.99751163, 0.99868656, 0.49309197],\
++[	-6.27221445, -0.00081410, 0.00049899, 7.27140035, 0.99751228, 0.99868690, 0.49309212],\
++[	-6.27221499, -0.00081389, 0.00049886, 7.27140110, 0.99751294, 0.99868725, 0.49309226],\
++[	-6.27221552, -0.00081368, 0.00049873, 7.27140185, 0.99751359, 0.99868759, 0.49309233],\
++[	-6.27221606, -0.00081346, 0.00049860, 7.27140260, 0.99751425, 0.99868794, 0.49309240],\
++[	-6.27221660, -0.00081325, 0.00049847, 7.27140335, 0.99751490, 0.99868828, 0.49309241],\
++[	-6.27221713, -0.00081303, 0.00049834, 7.27140410, 0.99751555, 0.99868863, 0.49309250],\
++[	-6.27221767, -0.00081282, 0.00049821, 7.27140485, 0.99751621, 0.99868897, 0.49309252],\
++[	-6.27221820, -0.00081261, 0.00049807, 7.27140559, 0.99751686, 0.99868932, 0.49309262],\
++[	-6.27221874, -0.00081239, 0.00049794, 7.27140634, 0.99751751, 0.99868966, 0.49309274],\
++[	-6.27221927, -0.00081218, 0.00049781, 7.27140709, 0.99751816, 0.99869001, 0.49309277],\
++[	-6.27221980, -0.00081197, 0.00049768, 7.27140784, 0.99751881, 0.99869035, 0.49309287],\
++[	-6.27222034, -0.00081176, 0.00049755, 7.27140858, 0.99751946, 0.99869069, 0.49309295],\
++[	-6.27222087, -0.00081154, 0.00049742, 7.27140933, 0.99752012, 0.99869104, 0.49309305],\
++[	-6.27222140, -0.00081133, 0.00049729, 7.27141007, 0.99752077, 0.99869138, 0.49309311],\
++[	-6.27222193, -0.00081112, 0.00049716, 7.27141082, 0.99752142, 0.99869172, 0.49309317],\
++[	-6.27222247, -0.00081090, 0.00049703, 7.27141156, 0.99752207, 0.99869207, 0.49309328],\
++[	-6.27222300, -0.00081069, 0.00049690, 7.27141230, 0.99752271, 0.99869241, 0.49309332],\
++[	-6.27222353, -0.00081048, 0.00049677, 7.27141305, 0.99752336, 0.99869275, 0.49309344],\
++[	-6.27222406, -0.00081027, 0.00049664, 7.27141379, 0.99752401, 0.99869309, 0.49309341],\
++[	-6.27222459, -0.00081006, 0.00049651, 7.27141453, 0.99752466, 0.99869344, 0.49309354],\
++[	-6.27222512, -0.00080984, 0.00049638, 7.27141527, 0.99752531, 0.99869378, 0.49309361],\
++[	-6.27222565, -0.00080963, 0.00049625, 7.27141602, 0.99752596, 0.99869412, 0.49309375],\
++[	-6.27222618, -0.00080942, 0.00049612, 7.27141676, 0.99752660, 0.99869446, 0.49309380],\
++[	-6.27222671, -0.00080921, 0.00049599, 7.27141750, 0.99752725, 0.99869480, 0.49309382],\
++[	-6.27222723, -0.00080900, 0.00049586, 7.27141824, 0.99752790, 0.99869514, 0.49309395],\
++[	-6.27222776, -0.00080879, 0.00049573, 7.27141898, 0.99752854, 0.99869548, 0.49309403],\
++[	-6.27222829, -0.00080857, 0.00049560, 7.27141972, 0.99752919, 0.99869582, 0.49309409],\
++[	-6.27222882, -0.00080836, 0.00049547, 7.27142045, 0.99752984, 0.99869617, 0.49309410],\
++[	-6.27222934, -0.00080815, 0.00049534, 7.27142119, 0.99753048, 0.99869651, 0.49309425],\
++[	-6.27222987, -0.00080794, 0.00049521, 7.27142193, 0.99753113, 0.99869685, 0.49309434],\
++[	-6.27223040, -0.00080773, 0.00049508, 7.27142267, 0.99753177, 0.99869719, 0.49309443],\
++[	-6.27223092, -0.00080752, 0.00049495, 7.27142340, 0.99753241, 0.99869753, 0.49309447],\
++[	-6.27223145, -0.00080731, 0.00049482, 7.27142414, 0.99753306, 0.99869787, 0.49309457],\
++[	-6.27223197, -0.00080710, 0.00049469, 7.27142488, 0.99753370, 0.99869821, 0.49309459],\
++[	-6.27223250, -0.00080689, 0.00049457, 7.27142561, 0.99753435, 0.99869855, 0.49309463],\
++[	-6.27223302, -0.00080668, 0.00049444, 7.27142635, 0.99753499, 0.99869888, 0.49309473],\
++[	-6.27223355, -0.00080647, 0.00049431, 7.27142708, 0.99753563, 0.99869922, 0.49309486],\
++[	-6.27223407, -0.00080626, 0.00049418, 7.27142781, 0.99753627, 0.99869956, 0.49309496],\
++[	-6.27223460, -0.00080605, 0.00049405, 7.27142855, 0.99753692, 0.99869990, 0.49309501],\
++[	-6.27223512, -0.00080584, 0.00049392, 7.27142928, 0.99753756, 0.99870024, 0.49309506],\
++[	-6.27223564, -0.00080563, 0.00049379, 7.27143001, 0.99753820, 0.99870058, 0.49309510],\
++[	-6.27223616, -0.00080542, 0.00049366, 7.27143074, 0.99753884, 0.99870092, 0.49309524],\
++[	-6.27223669, -0.00080521, 0.00049354, 7.27143148, 0.99753948, 0.99870125, 0.49309538],\
++[	-6.27223721, -0.00080500, 0.00049341, 7.27143221, 0.99754012, 0.99870159, 0.49309541],\
++[	-6.27223773, -0.00080479, 0.00049328, 7.27143294, 0.99754076, 0.99870193, 0.49309547],\
++[	-6.27223825, -0.00080458, 0.00049315, 7.27143367, 0.99754140, 0.99870227, 0.49309552],\
++[	-6.27223877, -0.00080437, 0.00049302, 7.27143440, 0.99754204, 0.99870260, 0.49309562],\
++[	-6.27223929, -0.00080416, 0.00049289, 7.27143513, 0.99754268, 0.99870294, 0.49309564],\
++[	-6.27223981, -0.00080395, 0.00049277, 7.27143586, 0.99754332, 0.99870328, 0.49309575],\
++[	-6.27224033, -0.00080375, 0.00049264, 7.27143658, 0.99754395, 0.99870362, 0.49309585],\
++[	-6.27224085, -0.00080354, 0.00049251, 7.27143731, 0.99754459, 0.99870395, 0.49309591],\
++[	-6.27224137, -0.00080333, 0.00049238, 7.27143804, 0.99754523, 0.99870429, 0.49309595],\
++[	-6.27224189, -0.00080312, 0.00049225, 7.27143877, 0.99754587, 0.99870463, 0.49309610],\
++[	-6.27224241, -0.00080291, 0.00049213, 7.27143949, 0.99754650, 0.99870496, 0.49309609],\
++[	-6.27224292, -0.00080270, 0.00049200, 7.27144022, 0.99754714, 0.99870530, 0.49309625],\
++[	-6.27224344, -0.00080250, 0.00049187, 7.27144094, 0.99754778, 0.99870563, 0.49309625],\
++[	-6.27224396, -0.00080229, 0.00049174, 7.27144167, 0.99754841, 0.99870597, 0.49309632],\
++[	-6.27224447, -0.00080208, 0.00049162, 7.27144239, 0.99754905, 0.99870630, 0.49309639],\
++[	-6.27224499, -0.00080187, 0.00049149, 7.27144312, 0.99754968, 0.99870664, 0.49309648],\
++[	-6.27224551, -0.00080166, 0.00049136, 7.27144384, 0.99755032, 0.99870697, 0.49309655],\
++[	-6.27224602, -0.00080146, 0.00049123, 7.27144457, 0.99755095, 0.99870731, 0.49309667],\
++[	-6.27224654, -0.00080125, 0.00049111, 7.27144529, 0.99755159, 0.99870764, 0.49309666],\
++[	-6.27224705, -0.00080104, 0.00049098, 7.27144601, 0.99755222, 0.99870798, 0.49309679],\
++[	-6.27224757, -0.00080084, 0.00049085, 7.27144673, 0.99755286, 0.99870831, 0.49309687],\
++[	-6.27224808, -0.00080063, 0.00049072, 7.27144746, 0.99755349, 0.99870865, 0.49309695],\
++[	-6.27224860, -0.00080042, 0.00049060, 7.27144818, 0.99755412, 0.99870898, 0.49309704],\
++[	-6.27224911, -0.00080021, 0.00049047, 7.27144890, 0.99755476, 0.99870932, 0.49309706],\
++[	-6.27224962, -0.00080001, 0.00049034, 7.27144962, 0.99755539, 0.99870965, 0.49309713],\
++[	-6.27225014, -0.00079980, 0.00049022, 7.27145034, 0.99755602, 0.99870998, 0.49309722],\
++[	-6.27225065, -0.00079959, 0.00049009, 7.27145106, 0.99755665, 0.99871032, 0.49309728],\
++[	-6.27225116, -0.00079939, 0.00048996, 7.27145178, 0.99755728, 0.99871065, 0.49309738],\
++[	-6.27225168, -0.00079918, 0.00048984, 7.27145249, 0.99755791, 0.99871098, 0.49309747],\
++[	-6.27225219, -0.00079897, 0.00048971, 7.27145321, 0.99755854, 0.99871131, 0.49309753],\
++[	-6.27225270, -0.00079877, 0.00048958, 7.27145393, 0.99755918, 0.99871165, 0.49309771],\
++[	-6.27225321, -0.00079856, 0.00048946, 7.27145465, 0.99755981, 0.99871198, 0.49309765],\
++[	-6.27225372, -0.00079836, 0.00048933, 7.27145536, 0.99756044, 0.99871231, 0.49309782],\
++[	-6.27225423, -0.00079815, 0.00048921, 7.27145608, 0.99756106, 0.99871264, 0.49309784],\
++[	-6.27225474, -0.00079795, 0.00048908, 7.27145680, 0.99756169, 0.99871298, 0.49309793],\
++[	-6.27225525, -0.00079774, 0.00048895, 7.27145751, 0.99756232, 0.99871331, 0.49309799],\
++[	-6.27225576, -0.00079753, 0.00048883, 7.27145823, 0.99756295, 0.99871364, 0.49309812],\
++[	-6.27225627, -0.00079733, 0.00048870, 7.27145894, 0.99756358, 0.99871397, 0.49309805],\
++[	-6.27225678, -0.00079712, 0.00048857, 7.27145966, 0.99756421, 0.99871430, 0.49309821],\
++[	-6.27225729, -0.00079692, 0.00048845, 7.27146037, 0.99756483, 0.99871463, 0.49309831],\
++[	-6.27225780, -0.00079671, 0.00048832, 7.27146108, 0.99756546, 0.99871496, 0.49309836],\
++[	-6.27225830, -0.00079651, 0.00048820, 7.27146180, 0.99756609, 0.99871529, 0.49309842],\
++[	-6.27225881, -0.00079630, 0.00048807, 7.27146251, 0.99756671, 0.99871563, 0.49309856],\
++[	-6.27225932, -0.00079610, 0.00048795, 7.27146322, 0.99756734, 0.99871596, 0.49309861],\
++[	-6.27225983, -0.00079589, 0.00048782, 7.27146393, 0.99756797, 0.99871629, 0.49309861],\
++[	-6.27226033, -0.00079569, 0.00048769, 7.27146464, 0.99756859, 0.99871662, 0.49309873],\
++[	-6.27226084, -0.00079548, 0.00048757, 7.27146535, 0.99756922, 0.99871695, 0.49309877],\
++[	-6.27226134, -0.00079528, 0.00048744, 7.27146606, 0.99756984, 0.99871728, 0.49309886],\
++[	-6.27226185, -0.00079508, 0.00048732, 7.27146677, 0.99757047, 0.99871761, 0.49309893],\
++[	-6.27226235, -0.00079487, 0.00048719, 7.27146748, 0.99757109, 0.99871793, 0.49309902],\
++[	-6.27226286, -0.00079467, 0.00048707, 7.27146819, 0.99757172, 0.99871826, 0.49309912],\
++[	-6.27226336, -0.00079446, 0.00048694, 7.27146890, 0.99757234, 0.99871859, 0.49309921],\
++[	-6.27226387, -0.00079426, 0.00048682, 7.27146961, 0.99757296, 0.99871892, 0.49309921],\
++[	-6.27226437, -0.00079406, 0.00048669, 7.27147032, 0.99757359, 0.99871925, 0.49309928],\
++[	-6.27226488, -0.00079385, 0.00048657, 7.27147102, 0.99757421, 0.99871958, 0.49309939],\
++[	-6.27226538, -0.00079365, 0.00048644, 7.27147173, 0.99757483, 0.99871991, 0.49309945],\
++[	-6.27226588, -0.00079345, 0.00048632, 7.27147244, 0.99757545, 0.99872024, 0.49309958],\
++[	-6.27226639, -0.00079324, 0.00048619, 7.27147314, 0.99757607, 0.99872056, 0.49309958],\
++[	-6.27226689, -0.00079304, 0.00048607, 7.27147385, 0.99757670, 0.99872089, 0.49309961],\
++[	-6.27226739, -0.00079284, 0.00048594, 7.27147455, 0.99757732, 0.99872122, 0.49309967],\
++[	-6.27226789, -0.00079263, 0.00048582, 7.27147526, 0.99757794, 0.99872155, 0.49309986],\
++[	-6.27226839, -0.00079243, 0.00048570, 7.27147596, 0.99757856, 0.99872187, 0.49309996],\
++[	-6.27226889, -0.00079223, 0.00048557, 7.27147667, 0.99757918, 0.99872220, 0.49309999],\
++[	-6.27226939, -0.00079202, 0.00048545, 7.27147737, 0.99757980, 0.99872253, 0.49310010],\
++[	-6.27226990, -0.00079182, 0.00048532, 7.27147807, 0.99758042, 0.99872286, 0.49310015],\
++[	-6.27227040, -0.00079162, 0.00048520, 7.27147878, 0.99758104, 0.99872318, 0.49310022],\
++[	-6.27227090, -0.00079142, 0.00048507, 7.27147948, 0.99758166, 0.99872351, 0.49310023],\
++[	-6.27227139, -0.00079121, 0.00048495, 7.27148018, 0.99758227, 0.99872384, 0.49310029],\
++[	-6.27227189, -0.00079101, 0.00048483, 7.27148088, 0.99758289, 0.99872416, 0.49310038],\
++[	-6.27227239, -0.00079081, 0.00048470, 7.27148158, 0.99758351, 0.99872449, 0.49310046],\
++[	-6.27227289, -0.00079061, 0.00048458, 7.27148228, 0.99758413, 0.99872481, 0.49310052],\
++[	-6.27227339, -0.00079041, 0.00048445, 7.27148298, 0.99758474, 0.99872514, 0.49310058],\
++[	-6.27227389, -0.00079020, 0.00048433, 7.27148368, 0.99758536, 0.99872546, 0.49310064],\
++[	-6.27227439, -0.00079000, 0.00048421, 7.27148438, 0.99758598, 0.99872579, 0.49310077],\
++[	-6.27227488, -0.00078980, 0.00048408, 7.27148508, 0.99758659, 0.99872612, 0.49310085],\
++[	-6.27227538, -0.00078960, 0.00048396, 7.27148578, 0.99758721, 0.99872644, 0.49310092],\
++[	-6.27227588, -0.00078940, 0.00048384, 7.27148648, 0.99758783, 0.99872677, 0.49310100],\
++[	-6.27227637, -0.00078920, 0.00048371, 7.27148717, 0.99758844, 0.99872709, 0.49310112],\
++[	-6.27227687, -0.00078900, 0.00048359, 7.27148787, 0.99758906, 0.99872741, 0.49310113],\
++[	-6.27227736, -0.00078880, 0.00048347, 7.27148857, 0.99758967, 0.99872774, 0.49310122],\
++[	-6.27227786, -0.00078859, 0.00048334, 7.27148927, 0.99759029, 0.99872806, 0.49310127],\
++[	-6.27227836, -0.00078839, 0.00048322, 7.27148996, 0.99759090, 0.99872839, 0.49310130],\
++[	-6.27227885, -0.00078819, 0.00048310, 7.27149066, 0.99759151, 0.99872871, 0.49310141],\
++[	-6.27227934, -0.00078799, 0.00048297, 7.27149135, 0.99759213, 0.99872903, 0.49310152],\
++[	-6.27227984, -0.00078779, 0.00048285, 7.27149205, 0.99759274, 0.99872936, 0.49310152],\
++[	-6.27228033, -0.00078759, 0.00048273, 7.27149274, 0.99759335, 0.99872968, 0.49310163],\
++[	-6.27228083, -0.00078739, 0.00048260, 7.27149344, 0.99759397, 0.99873001, 0.49310168],\
++[	-6.27228132, -0.00078719, 0.00048248, 7.27149413, 0.99759458, 0.99873033, 0.49310178],\
++[	-6.27228181, -0.00078699, 0.00048236, 7.27149482, 0.99759519, 0.99873065, 0.49310189],\
++[	-6.27228231, -0.00078679, 0.00048224, 7.27149552, 0.99759580, 0.99873097, 0.49310191],\
++[	-6.27228280, -0.00078659, 0.00048211, 7.27149621, 0.99759641, 0.99873130, 0.49310203],\
++[	-6.27228329, -0.00078639, 0.00048199, 7.27149690, 0.99759702, 0.99873162, 0.49310202],\
++[	-6.27228378, -0.00078619, 0.00048187, 7.27149759, 0.99759763, 0.99873194, 0.49310216],\
++[	-6.27228427, -0.00078599, 0.00048175, 7.27149828, 0.99759825, 0.99873226, 0.49310220],\
++[	-6.27228476, -0.00078579, 0.00048162, 7.27149897, 0.99759886, 0.99873259, 0.49310228],\
++[	-6.27228526, -0.00078559, 0.00048150, 7.27149966, 0.99759946, 0.99873291, 0.49310231],\
++[	-6.27228575, -0.00078539, 0.00048138, 7.27150035, 0.99760007, 0.99873323, 0.49310245],\
++[	-6.27228624, -0.00078519, 0.00048126, 7.27150104, 0.99760068, 0.99873355, 0.49310250],\
++[	-6.27228673, -0.00078500, 0.00048113, 7.27150173, 0.99760129, 0.99873387, 0.49310256],\
++[	-6.27228722, -0.00078480, 0.00048101, 7.27150242, 0.99760190, 0.99873419, 0.49310269],\
++[	-6.27228771, -0.00078460, 0.00048089, 7.27150311, 0.99760251, 0.99873451, 0.49310278],\
++[	-6.27228819, -0.00078440, 0.00048077, 7.27150380, 0.99760312, 0.99873483, 0.49310277],\
++[	-6.27228868, -0.00078420, 0.00048065, 7.27150448, 0.99760372, 0.99873515, 0.49310291],\
++[	-6.27228917, -0.00078400, 0.00048052, 7.27150517, 0.99760433, 0.99873548, 0.49310291],\
++[	-6.27228966, -0.00078380, 0.00048040, 7.27150586, 0.99760494, 0.99873580, 0.49310301],\
++[	-6.27229015, -0.00078360, 0.00048028, 7.27150654, 0.99760555, 0.99873612, 0.49310307],\
++[	-6.27229064, -0.00078341, 0.00048016, 7.27150723, 0.99760615, 0.99873644, 0.49310321],\
++[	-6.27229112, -0.00078321, 0.00048004, 7.27150792, 0.99760676, 0.99873676, 0.49310322],\
++[	-6.27229161, -0.00078301, 0.00047992, 7.27150860, 0.99760736, 0.99873707, 0.49310330],\
++[	-6.27229210, -0.00078281, 0.00047979, 7.27150929, 0.99760797, 0.99873739, 0.49310330],\
++[	-6.27229258, -0.00078261, 0.00047967, 7.27150997, 0.99760857, 0.99873771, 0.49310340],\
++[	-6.27229307, -0.00078242, 0.00047955, 7.27151065, 0.99760918, 0.99873803, 0.49310344],\
++[	-6.27229356, -0.00078222, 0.00047943, 7.27151134, 0.99760978, 0.99873835, 0.49310362],\
++[	-6.27229404, -0.00078202, 0.00047931, 7.27151202, 0.99761039, 0.99873867, 0.49310362],\
++[	-6.27229453, -0.00078182, 0.00047919, 7.27151270, 0.99761099, 0.99873899, 0.49310369],\
++[	-6.27229501, -0.00078163, 0.00047907, 7.27151339, 0.99761160, 0.99873931, 0.49310382],\
++[	-6.27229550, -0.00078143, 0.00047895, 7.27151407, 0.99761220, 0.99873963, 0.49310378],\
++[	-6.27229598, -0.00078123, 0.00047882, 7.27151475, 0.99761280, 0.99873994, 0.49310395],\
++[	-6.27229646, -0.00078103, 0.00047870, 7.27151543, 0.99761340, 0.99874026, 0.49310398],\
++[	-6.27229695, -0.00078084, 0.00047858, 7.27151611, 0.99761401, 0.99874058, 0.49310409],\
++[	-6.27229743, -0.00078064, 0.00047846, 7.27151679, 0.99761461, 0.99874090, 0.49310410],\
++[	-6.27229791, -0.00078044, 0.00047834, 7.27151747, 0.99761521, 0.99874122, 0.49310419],\
++[	-6.27229840, -0.00078025, 0.00047822, 7.27151815, 0.99761581, 0.99874153, 0.49310426],\
++[	-6.27229888, -0.00078005, 0.00047810, 7.27151883, 0.99761641, 0.99874185, 0.49310431],\
++[	-6.27229936, -0.00077985, 0.00047798, 7.27151951, 0.99761701, 0.99874217, 0.49310439],\
++[	-6.27229984, -0.00077966, 0.00047786, 7.27152019, 0.99761762, 0.99874248, 0.49310456],\
++[	-6.27230033, -0.00077946, 0.00047774, 7.27152087, 0.99761822, 0.99874280, 0.49310453],\
++[	-6.27230081, -0.00077926, 0.00047762, 7.27152154, 0.99761882, 0.99874312, 0.49310456],\
++[	-6.27230129, -0.00077907, 0.00047750, 7.27152222, 0.99761942, 0.99874343, 0.49310472],\
++[	-6.27230177, -0.00077887, 0.00047738, 7.27152290, 0.99762001, 0.99874375, 0.49310478],\
++[	-6.27230225, -0.00077868, 0.00047726, 7.27152357, 0.99762061, 0.99874407, 0.49310482],\
++[	-6.27230273, -0.00077848, 0.00047714, 7.27152425, 0.99762121, 0.99874438, 0.49310485],\
++[	-6.27230321, -0.00077828, 0.00047702, 7.27152493, 0.99762181, 0.99874470, 0.49310496],\
++[	-6.27230369, -0.00077809, 0.00047690, 7.27152560, 0.99762241, 0.99874501, 0.49310508],\
++[	-6.27230417, -0.00077789, 0.00047678, 7.27152628, 0.99762301, 0.99874533, 0.49310514],\
++[	-6.27230465, -0.00077770, 0.00047666, 7.27152695, 0.99762360, 0.99874564, 0.49310512],\
++[	-6.27230513, -0.00077750, 0.00047654, 7.27152763, 0.99762420, 0.99874596, 0.49310522],\
++[	-6.27230561, -0.00077731, 0.00047642, 7.27152830, 0.99762480, 0.99874627, 0.49310530],\
++[	-6.27230609, -0.00077711, 0.00047630, 7.27152897, 0.99762540, 0.99874659, 0.49310543],\
++[	-6.27230656, -0.00077692, 0.00047618, 7.27152965, 0.99762599, 0.99874690, 0.49310543],\
++[	-6.27230704, -0.00077672, 0.00047606, 7.27153032, 0.99762659, 0.99874722, 0.49310556],\
++[	-6.27230752, -0.00077653, 0.00047594, 7.27153099, 0.99762718, 0.99874753, 0.49310555],\
++[	-6.27230800, -0.00077633, 0.00047582, 7.27153166, 0.99762778, 0.99874785, 0.49310570],\
++[	-6.27230847, -0.00077614, 0.00047570, 7.27153233, 0.99762837, 0.99874816, 0.49310570],\
++[	-6.27230895, -0.00077594, 0.00047558, 7.27153301, 0.99762897, 0.99874848, 0.49310582],\
++[	-6.27230943, -0.00077575, 0.00047546, 7.27153368, 0.99762956, 0.99874879, 0.49310585],\
++[	-6.27230990, -0.00077556, 0.00047534, 7.27153435, 0.99763016, 0.99874910, 0.49310599],\
++[	-6.27231038, -0.00077536, 0.00047522, 7.27153502, 0.99763075, 0.99874942, 0.49310605],\
++[	-6.27231085, -0.00077517, 0.00047510, 7.27153569, 0.99763135, 0.99874973, 0.49310608],\
++[	-6.27231133, -0.00077497, 0.00047498, 7.27153636, 0.99763194, 0.99875004, 0.49310612],\
++[	-6.27231180, -0.00077478, 0.00047487, 7.27153702, 0.99763253, 0.99875036, 0.49310624],\
++[	-6.27231228, -0.00077458, 0.00047475, 7.27153769, 0.99763312, 0.99875067, 0.49310622],\
++[	-6.27231275, -0.00077439, 0.00047463, 7.27153836, 0.99763372, 0.99875098, 0.49310639],\
++[	-6.27231323, -0.00077420, 0.00047451, 7.27153903, 0.99763431, 0.99875129, 0.49310643],\
++[	-6.27231370, -0.00077400, 0.00047439, 7.27153970, 0.99763490, 0.99875161, 0.49310644],\
++[	-6.27231417, -0.00077381, 0.00047427, 7.27154036, 0.99763549, 0.99875192, 0.49310654],\
++[	-6.27231465, -0.00077362, 0.00047415, 7.27154103, 0.99763608, 0.99875223, 0.49310665],\
++[	-6.27231512, -0.00077342, 0.00047403, 7.27154170, 0.99763668, 0.99875254, 0.49310674],\
++[	-6.27231559, -0.00077323, 0.00047392, 7.27154236, 0.99763727, 0.99875285, 0.49310670],\
++[	-6.27231607, -0.00077304, 0.00047380, 7.27154303, 0.99763786, 0.99875317, 0.49310684],\
++[	-6.27231654, -0.00077284, 0.00047368, 7.27154369, 0.99763845, 0.99875348, 0.49310692],\
++[	-6.27231701, -0.00077265, 0.00047356, 7.27154436, 0.99763904, 0.99875379, 0.49310699],\
++[	-6.27231748, -0.00077246, 0.00047344, 7.27154502, 0.99763963, 0.99875410, 0.49310700],\
++[	-6.27231795, -0.00077227, 0.00047332, 7.27154569, 0.99764021, 0.99875441, 0.49310703],\
++[	-6.27231842, -0.00077207, 0.00047321, 7.27154635, 0.99764080, 0.99875472, 0.49310722],\
++[	-6.27231889, -0.00077188, 0.00047309, 7.27154701, 0.99764139, 0.99875503, 0.49310725],\
++[	-6.27231936, -0.00077169, 0.00047297, 7.27154768, 0.99764198, 0.99875534, 0.49310729],\
++[	-6.27231984, -0.00077150, 0.00047285, 7.27154834, 0.99764257, 0.99875565, 0.49310745],\
++[	-6.27232031, -0.00077130, 0.00047273, 7.27154900, 0.99764316, 0.99875596, 0.49310751],\
++[	-6.27232077, -0.00077111, 0.00047262, 7.27154966, 0.99764374, 0.99875627, 0.49310749],\
++[	-6.27232124, -0.00077092, 0.00047250, 7.27155032, 0.99764433, 0.99875658, 0.49310765],\
++[	-6.27232171, -0.00077073, 0.00047238, 7.27155099, 0.99764492, 0.99875689, 0.49310767],\
++[	-6.27232218, -0.00077054, 0.00047226, 7.27155165, 0.99764550, 0.99875720, 0.49310775],\
++[	-6.27232265, -0.00077034, 0.00047215, 7.27155231, 0.99764609, 0.99875751, 0.49310781],\
++[	-6.27232312, -0.00077015, 0.00047203, 7.27155297, 0.99764668, 0.99875782, 0.49310787],\
++[	-6.27232359, -0.00076996, 0.00047191, 7.27155363, 0.99764726, 0.99875813, 0.49310796],\
++[	-6.27232406, -0.00076977, 0.00047179, 7.27155429, 0.99764785, 0.99875844, 0.49310787],\
++[	-6.27232452, -0.00076958, 0.00047168, 7.27155494, 0.99764843, 0.99875875, 0.49310807],\
++[	-6.27232499, -0.00076939, 0.00047156, 7.27155560, 0.99764902, 0.99875906, 0.49310819],\
++[	-6.27232546, -0.00076920, 0.00047144, 7.27155626, 0.99764960, 0.99875936, 0.49310824],\
++[	-6.27232592, -0.00076900, 0.00047132, 7.27155692, 0.99765019, 0.99875967, 0.49310831],\
++[	-6.27232639, -0.00076881, 0.00047121, 7.27155758, 0.99765077, 0.99875998, 0.49310826],\
++[	-6.27232686, -0.00076862, 0.00047109, 7.27155823, 0.99765135, 0.99876029, 0.49310841],\
++[	-6.27232732, -0.00076843, 0.00047097, 7.27155889, 0.99765194, 0.99876060, 0.49310851],\
++[	-6.27232779, -0.00076824, 0.00047086, 7.27155955, 0.99765252, 0.99876090, 0.49310855],\
++[	-6.27232825, -0.00076805, 0.00047074, 7.27156020, 0.99765310, 0.99876121, 0.49310862],\
++[	-6.27232872, -0.00076786, 0.00047062, 7.27156086, 0.99765369, 0.99876152, 0.49310868],\
++[	-6.27232918, -0.00076767, 0.00047050, 7.27156151, 0.99765427, 0.99876183, 0.49310870],\
++[	-6.27232965, -0.00076748, 0.00047039, 7.27156217, 0.99765485, 0.99876213, 0.49310885],\
++[	-6.27233011, -0.00076729, 0.00047027, 7.27156282, 0.99765543, 0.99876244, 0.49310881],\
++[	-6.27233058, -0.00076710, 0.00047015, 7.27156348, 0.99765601, 0.99876275, 0.49310901],\
++[	-6.27233104, -0.00076691, 0.00047004, 7.27156413, 0.99765660, 0.99876305, 0.49310905],\
++[	-6.27233150, -0.00076672, 0.00046992, 7.27156478, 0.99765718, 0.99876336, 0.49310906],\
++[	-6.27233197, -0.00076653, 0.00046981, 7.27156544, 0.99765776, 0.99876367, 0.49310915],\
++[	-6.27233243, -0.00076634, 0.00046969, 7.27156609, 0.99765834, 0.99876397, 0.49310926],\
++[	-6.27233289, -0.00076615, 0.00046957, 7.27156674, 0.99765892, 0.99876428, 0.49310922],\
++[	-6.27233336, -0.00076596, 0.00046946, 7.27156740, 0.99765950, 0.99876458, 0.49310945],\
++[	-6.27233382, -0.00076577, 0.00046934, 7.27156805, 0.99766008, 0.99876489, 0.49310949],\
++[	-6.27233428, -0.00076558, 0.00046922, 7.27156870, 0.99766065, 0.99876520, 0.49310955],\
++[	-6.27233474, -0.00076539, 0.00046911, 7.27156935, 0.99766123, 0.99876550, 0.49310960],\
++[	-6.27233520, -0.00076520, 0.00046899, 7.27157000, 0.99766181, 0.99876581, 0.49310966],\
++[	-6.27233566, -0.00076501, 0.00046888, 7.27157065, 0.99766239, 0.99876611, 0.49310976],\
++[	-6.27233612, -0.00076482, 0.00046876, 7.27157130, 0.99766297, 0.99876642, 0.49310982],\
++[	-6.27233658, -0.00076464, 0.00046864, 7.27157195, 0.99766355, 0.99876672, 0.49310988],\
++[	-6.27233705, -0.00076445, 0.00046853, 7.27157260, 0.99766412, 0.99876703, 0.49310995],\
++[	-6.27233751, -0.00076426, 0.00046841, 7.27157325, 0.99766470, 0.99876733, 0.49310998],\
++[	-6.27233797, -0.00076407, 0.00046830, 7.27157390, 0.99766528, 0.99876763, 0.49311004],\
++[	-6.27233843, -0.00076388, 0.00046818, 7.27157454, 0.99766585, 0.99876794, 0.49311017],\
++[	-6.27233888, -0.00076369, 0.00046806, 7.27157519, 0.99766643, 0.99876824, 0.49311019],\
++[	-6.27233934, -0.00076350, 0.00046795, 7.27157584, 0.99766701, 0.99876855, 0.49311023],\
++[	-6.27233980, -0.00076332, 0.00046783, 7.27157649, 0.99766758, 0.99876885, 0.49311028],\
++[	-6.27234026, -0.00076313, 0.00046772, 7.27157713, 0.99766816, 0.99876915, 0.49311042],\
++[	-6.27234072, -0.00076294, 0.00046760, 7.27157778, 0.99766873, 0.99876946, 0.49311047],\
++[	-6.27234118, -0.00076275, 0.00046749, 7.27157843, 0.99766931, 0.99876976, 0.49311045],\
++[	-6.27234163, -0.00076256, 0.00046737, 7.27157907, 0.99766988, 0.99877006, 0.49311061],\
++[	-6.27234209, -0.00076238, 0.00046726, 7.27157972, 0.99767046, 0.99877037, 0.49311059],\
++[	-6.27234255, -0.00076219, 0.00046714, 7.27158036, 0.99767103, 0.99877067, 0.49311072],\
++[	-6.27234301, -0.00076200, 0.00046703, 7.27158101, 0.99767160, 0.99877097, 0.49311081],\
++[	-6.27234346, -0.00076181, 0.00046691, 7.27158165, 0.99767218, 0.99877128, 0.49311088],\
++[	-6.27234392, -0.00076163, 0.00046680, 7.27158229, 0.99767275, 0.99877158, 0.49311099],\
++[	-6.27234438, -0.00076144, 0.00046668, 7.27158294, 0.99767332, 0.99877188, 0.49311100],\
++[	-6.27234483, -0.00076125, 0.00046657, 7.27158358, 0.99767389, 0.99877218, 0.49311108],\
++[	-6.27234529, -0.00076106, 0.00046645, 7.27158422, 0.99767447, 0.99877248, 0.49311114],\
++[	-6.27234574, -0.00076088, 0.00046634, 7.27158487, 0.99767504, 0.99877279, 0.49311126],\
++[	-6.27234620, -0.00076069, 0.00046622, 7.27158551, 0.99767561, 0.99877309, 0.49311118],\
++[	-6.27234665, -0.00076050, 0.00046611, 7.27158615, 0.99767618, 0.99877339, 0.49311132],\
++[	-6.27234711, -0.00076032, 0.00046599, 7.27158679, 0.99767675, 0.99877369, 0.49311134],\
++[	-6.27234756, -0.00076013, 0.00046588, 7.27158743, 0.99767732, 0.99877399, 0.49311138],\
++[	-6.27234802, -0.00075994, 0.00046576, 7.27158807, 0.99767789, 0.99877429, 0.49311158],\
++[	-6.27234847, -0.00075976, 0.00046565, 7.27158872, 0.99767846, 0.99877459, 0.49311152],\
++[	-6.27234892, -0.00075957, 0.00046554, 7.27158935, 0.99767903, 0.99877489, 0.49311170],\
++[	-6.27234938, -0.00075938, 0.00046542, 7.27158999, 0.99767960, 0.99877519, 0.49311176],\
++[	-6.27234983, -0.00075920, 0.00046531, 7.27159063, 0.99768017, 0.99877550, 0.49311184],\
++[	-6.27235028, -0.00075901, 0.00046519, 7.27159127, 0.99768074, 0.99877580, 0.49311180],\
++[	-6.27235074, -0.00075882, 0.00046508, 7.27159191, 0.99768131, 0.99877610, 0.49311187],\
++[	-6.27235119, -0.00075864, 0.00046496, 7.27159255, 0.99768188, 0.99877640, 0.49311206],\
++[	-6.27235164, -0.00075845, 0.00046485, 7.27159319, 0.99768245, 0.99877670, 0.49311212],\
++[	-6.27235209, -0.00075827, 0.00046474, 7.27159383, 0.99768302, 0.99877700, 0.49311212],\
++[	-6.27235255, -0.00075808, 0.00046462, 7.27159446, 0.99768358, 0.99877730, 0.49311214],\
++[	-6.27235300, -0.00075790, 0.00046451, 7.27159510, 0.99768415, 0.99877759, 0.49311223],\
++[	-6.27235345, -0.00075771, 0.00046440, 7.27159574, 0.99768472, 0.99877789, 0.49311231],\
++[	-6.27235390, -0.00075753, 0.00046428, 7.27159637, 0.99768529, 0.99877819, 0.49311242],\
++[	-6.27235435, -0.00075734, 0.00046417, 7.27159701, 0.99768585, 0.99877849, 0.49311242],\
++[	-6.27235480, -0.00075715, 0.00046405, 7.27159765, 0.99768642, 0.99877879, 0.49311257],\
++[	-6.27235525, -0.00075697, 0.00046394, 7.27159828, 0.99768699, 0.99877909, 0.49311263],\
++[	-6.27235570, -0.00075678, 0.00046383, 7.27159892, 0.99768755, 0.99877939, 0.49311265],\
++[	-6.27235615, -0.00075660, 0.00046371, 7.27159955, 0.99768812, 0.99877969, 0.49311271],\
++[	-6.27235660, -0.00075641, 0.00046360, 7.27160019, 0.99768868, 0.99877999, 0.49311273],\
++[	-6.27235705, -0.00075623, 0.00046349, 7.27160082, 0.99768925, 0.99878028, 0.49311292],\
++[	-6.27235750, -0.00075605, 0.00046337, 7.27160145, 0.99768981, 0.99878058, 0.49311290],\
++[	-6.27235795, -0.00075586, 0.00046326, 7.27160209, 0.99769038, 0.99878088, 0.49311294],\
++[	-6.27235840, -0.00075568, 0.00046315, 7.27160272, 0.99769094, 0.99878118, 0.49311305],\
++[	-6.27235884, -0.00075549, 0.00046303, 7.27160335, 0.99769150, 0.99878147, 0.49311309],\
++[	-6.27235929, -0.00075531, 0.00046292, 7.27160398, 0.99769207, 0.99878177, 0.49311327],\
++[	-6.27235974, -0.00075512, 0.00046281, 7.27160462, 0.99769263, 0.99878207, 0.49311324],\
++[	-6.27236019, -0.00075494, 0.00046269, 7.27160525, 0.99769319, 0.99878237, 0.49311327],\
++[	-6.27236063, -0.00075475, 0.00046258, 7.27160588, 0.99769376, 0.99878266, 0.49311333],\
++[	-6.27236108, -0.00075457, 0.00046247, 7.27160651, 0.99769432, 0.99878296, 0.49311348],\
++[	-6.27236153, -0.00075439, 0.00046236, 7.27160714, 0.99769488, 0.99878326, 0.49311361],\
++[	-6.27236197, -0.00075420, 0.00046224, 7.27160777, 0.99769544, 0.99878355, 0.49311357],\
++[	-6.27236242, -0.00075402, 0.00046213, 7.27160840, 0.99769601, 0.99878385, 0.49311362],\
++[	-6.27236287, -0.00075384, 0.00046202, 7.27160903, 0.99769657, 0.99878415, 0.49311367],\
++[	-6.27236331, -0.00075365, 0.00046191, 7.27160966, 0.99769713, 0.99878444, 0.49311366],\
++[	-6.27236376, -0.00075347, 0.00046179, 7.27161029, 0.99769769, 0.99878474, 0.49311384],\
++[	-6.27236420, -0.00075329, 0.00046168, 7.27161092, 0.99769825, 0.99878503, 0.49311393],\
++[	-6.27236465, -0.00075310, 0.00046157, 7.27161155, 0.99769881, 0.99878533, 0.49311405],\
++[	-6.27236509, -0.00075292, 0.00046146, 7.27161217, 0.99769937, 0.99878563, 0.49311410],\
++[	-6.27236554, -0.00075274, 0.00046134, 7.27161280, 0.99769993, 0.99878592, 0.49311401],\
++[	-6.27236598, -0.00075255, 0.00046123, 7.27161343, 0.99770049, 0.99878622, 0.49311424],\
++[	-6.27236643, -0.00075237, 0.00046112, 7.27161406, 0.99770105, 0.99878651, 0.49311425],\
++[	-6.27236687, -0.00075219, 0.00046101, 7.27161468, 0.99770161, 0.99878681, 0.49311423],\
++[	-6.27236731, -0.00075200, 0.00046089, 7.27161531, 0.99770217, 0.99878710, 0.49311442],\
++[	-6.27236776, -0.00075182, 0.00046078, 7.27161594, 0.99770272, 0.99878740, 0.49311431],\
++[	-6.27236820, -0.00075164, 0.00046067, 7.27161656, 0.99770328, 0.99878769, 0.49311449],\
++[	-6.27236864, -0.00075146, 0.00046056, 7.27161719, 0.99770384, 0.99878798, 0.49311451],\
++[	-6.27236909, -0.00075127, 0.00046045, 7.27161781, 0.99770440, 0.99878828, 0.49311462],\
++[	-6.27236953, -0.00075109, 0.00046034, 7.27161844, 0.99770496, 0.99878857, 0.49311465],\
++[	-6.27236997, -0.00075091, 0.00046022, 7.27161906, 0.99770551, 0.99878887, 0.49311479],\
++[	-6.27237041, -0.00075073, 0.00046011, 7.27161968, 0.99770607, 0.99878916, 0.49311488],\
++[	-6.27237085, -0.00075055, 0.00046000, 7.27162031, 0.99770663, 0.99878945, 0.49311489],\
++[	-6.27237130, -0.00075036, 0.00045989, 7.27162093, 0.99770718, 0.99878975, 0.49311496],\
++[	-6.27237174, -0.00075018, 0.00045978, 7.27162155, 0.99770774, 0.99879004, 0.49311494],\
++[	-6.27237218, -0.00075000, 0.00045967, 7.27162218, 0.99770829, 0.99879033, 0.49311510],\
++[	-6.27237262, -0.00074982, 0.00045955, 7.27162280, 0.99770885, 0.99879063, 0.49311504],\
++[	-6.27237306, -0.00074964, 0.00045944, 7.27162342, 0.99770941, 0.99879092, 0.49311523],\
++[	-6.27237350, -0.00074946, 0.00045933, 7.27162404, 0.99770996, 0.99879121, 0.49311526],\
++[	-6.27237394, -0.00074927, 0.00045922, 7.27162466, 0.99771051, 0.99879151, 0.49311531],\
++[	-6.27237438, -0.00074909, 0.00045911, 7.27162529, 0.99771107, 0.99879180, 0.49311549],\
++[	-6.27237482, -0.00074891, 0.00045900, 7.27162591, 0.99771162, 0.99879209, 0.49311546],\
++[	-6.27237526, -0.00074873, 0.00045889, 7.27162653, 0.99771218, 0.99879238, 0.49311554],\
++[	-6.27237570, -0.00074855, 0.00045878, 7.27162715, 0.99771273, 0.99879268, 0.49311557],\
++[	-6.27237614, -0.00074837, 0.00045866, 7.27162777, 0.99771328, 0.99879297, 0.49311573],\
++[	-6.27237657, -0.00074819, 0.00045855, 7.27162839, 0.99771384, 0.99879326, 0.49311571],\
++[	-6.27237701, -0.00074801, 0.00045844, 7.27162901, 0.99771439, 0.99879355, 0.49311580],\
++[	-6.27237745, -0.00074783, 0.00045833, 7.27162962, 0.99771494, 0.99879384, 0.49311585],\
++[	-6.27237789, -0.00074765, 0.00045822, 7.27163024, 0.99771549, 0.99879413, 0.49311592],\
++[	-6.27237833, -0.00074747, 0.00045811, 7.27163086, 0.99771605, 0.99879442, 0.49311607],\
++[	-6.27237876, -0.00074728, 0.00045800, 7.27163148, 0.99771660, 0.99879472, 0.49311608],\
++[	-6.27237920, -0.00074710, 0.00045789, 7.27163210, 0.99771715, 0.99879501, 0.49311612],\
++[	-6.27237964, -0.00074692, 0.00045778, 7.27163271, 0.99771770, 0.99879530, 0.49311622],\
++[	-6.27238007, -0.00074674, 0.00045767, 7.27163333, 0.99771825, 0.99879559, 0.49311623],\
++[	-6.27238051, -0.00074656, 0.00045756, 7.27163395, 0.99771880, 0.99879588, 0.49311629],\
++[	-6.27238095, -0.00074638, 0.00045745, 7.27163456, 0.99771935, 0.99879617, 0.49311629],\
++[	-6.27238138, -0.00074620, 0.00045734, 7.27163518, 0.99771990, 0.99879646, 0.49311644],\
++[	-6.27238182, -0.00074602, 0.00045723, 7.27163580, 0.99772045, 0.99879675, 0.49311641],\
++[	-6.27238225, -0.00074584, 0.00045712, 7.27163641, 0.99772100, 0.99879704, 0.49311653],\
++[	-6.27238269, -0.00074566, 0.00045701, 7.27163703, 0.99772155, 0.99879733, 0.49311671],\
++[	-6.27238312, -0.00074548, 0.00045690, 7.27163764, 0.99772210, 0.99879762, 0.49311673],\
++[	-6.27238356, -0.00074531, 0.00045679, 7.27163825, 0.99772265, 0.99879791, 0.49311683],\
++[	-6.27238399, -0.00074513, 0.00045668, 7.27163887, 0.99772320, 0.99879820, 0.49311676],\
++[	-6.27238443, -0.00074495, 0.00045657, 7.27163948, 0.99772375, 0.99879849, 0.49311684],\
++[	-6.27238486, -0.00074477, 0.00045646, 7.27164010, 0.99772429, 0.99879878, 0.49311690],\
++[	-6.27238530, -0.00074459, 0.00045635, 7.27164071, 0.99772484, 0.99879907, 0.49311703],\
++[	-6.27238573, -0.00074441, 0.00045624, 7.27164132, 0.99772539, 0.99879936, 0.49311710],\
++[	-6.27238616, -0.00074423, 0.00045613, 7.27164193, 0.99772594, 0.99879964, 0.49311708],\
++[	-6.27238660, -0.00074405, 0.00045602, 7.27164255, 0.99772648, 0.99879993, 0.49311725],\
++[	-6.27238703, -0.00074387, 0.00045591, 7.27164316, 0.99772703, 0.99880022, 0.49311732],\
++[	-6.27238746, -0.00074369, 0.00045580, 7.27164377, 0.99772758, 0.99880051, 0.49311738],\
++[	-6.27238790, -0.00074352, 0.00045569, 7.27164438, 0.99772812, 0.99880080, 0.49311739],\
++[	-6.27238833, -0.00074334, 0.00045558, 7.27164499, 0.99772867, 0.99880109, 0.49311746],\
++[	-6.27238876, -0.00074316, 0.00045547, 7.27164560, 0.99772921, 0.99880137, 0.49311752],\
++[	-6.27238919, -0.00074298, 0.00045536, 7.27164621, 0.99772976, 0.99880166, 0.49311758],\
++[	-6.27238962, -0.00074280, 0.00045525, 7.27164682, 0.99773030, 0.99880195, 0.49311766],\
++[	-6.27239006, -0.00074262, 0.00045514, 7.27164743, 0.99773085, 0.99880224, 0.49311772],\
++[	-6.27239049, -0.00074245, 0.00045503, 7.27164804, 0.99773139, 0.99880252, 0.49311777],\
++[	-6.27239092, -0.00074227, 0.00045492, 7.27164865, 0.99773194, 0.99880281, 0.49311785],\
++[	-6.27239135, -0.00074209, 0.00045481, 7.27164926, 0.99773248, 0.99880310, 0.49311791],\
++[	-6.27239178, -0.00074191, 0.00045470, 7.27164987, 0.99773303, 0.99880339, 0.49311797],\
++[	-6.27239221, -0.00074173, 0.00045459, 7.27165048, 0.99773357, 0.99880367, 0.49311806],\
++[	-6.27239264, -0.00074156, 0.00045449, 7.27165108, 0.99773411, 0.99880396, 0.49311809],\
++[	-6.27239307, -0.00074138, 0.00045438, 7.27165169, 0.99773466, 0.99880425, 0.49311816],\
++[	-6.27239350, -0.00074120, 0.00045427, 7.27165230, 0.99773520, 0.99880453, 0.49311824],\
++[	-6.27239393, -0.00074102, 0.00045416, 7.27165291, 0.99773574, 0.99880482, 0.49311829],\
++[	-6.27239436, -0.00074085, 0.00045405, 7.27165351, 0.99773628, 0.99880510, 0.49311835],\
++[	-6.27239479, -0.00074067, 0.00045394, 7.27165412, 0.99773683, 0.99880539, 0.49311839],\
++[	-6.27239522, -0.00074049, 0.00045383, 7.27165472, 0.99773737, 0.99880568, 0.49311849],\
++[	-6.27239564, -0.00074031, 0.00045372, 7.27165533, 0.99773791, 0.99880596, 0.49311853],\
++[	-6.27239607, -0.00074014, 0.00045362, 7.27165593, 0.99773845, 0.99880625, 0.49311862],\
++[	-6.27239650, -0.00073996, 0.00045351, 7.27165654, 0.99773899, 0.99880653, 0.49311867],\
++[	-6.27239693, -0.00073978, 0.00045340, 7.27165714, 0.99773953, 0.99880682, 0.49311873],\
++[	-6.27239736, -0.00073961, 0.00045329, 7.27165775, 0.99774007, 0.99880710, 0.49311878],\
++[	-6.27239778, -0.00073943, 0.00045318, 7.27165835, 0.99774061, 0.99880739, 0.49311885],\
++[	-6.27239821, -0.00073925, 0.00045307, 7.27165896, 0.99774115, 0.99880767, 0.49311891],\
++[	-6.27239864, -0.00073908, 0.00045296, 7.27165956, 0.99774169, 0.99880796, 0.49311897],\
++[	-6.27239906, -0.00073890, 0.00045286, 7.27166016, 0.99774223, 0.99880824, 0.49311905],\
++[	-6.27239949, -0.00073872, 0.00045275, 7.27166077, 0.99774277, 0.99880853, 0.49311912],\
++[	-6.27239992, -0.00073855, 0.00045264, 7.27166137, 0.99774331, 0.99880881, 0.49311918],\
++[	-6.27240034, -0.00073837, 0.00045253, 7.27166197, 0.99774385, 0.99880910, 0.49311924],\
++[	-6.27240077, -0.00073820, 0.00045242, 7.27166257, 0.99774439, 0.99880938, 0.49311929],\
++[	-6.27240119, -0.00073802, 0.00045232, 7.27166317, 0.99774492, 0.99880966, 0.49311935],\
++[	-6.27240162, -0.00073784, 0.00045221, 7.27166378, 0.99774546, 0.99880995, 0.49311941],\
++[	-6.27240205, -0.00073767, 0.00045210, 7.27166438, 0.99774600, 0.99881023, 0.49311949],\
++[	-6.27240247, -0.00073749, 0.00045199, 7.27166498, 0.99774654, 0.99881051, 0.49311956],\
++[	-6.27240289, -0.00073732, 0.00045188, 7.27166558, 0.99774707, 0.99881080, 0.49311961],\
++[	-6.27240332, -0.00073714, 0.00045178, 7.27166618, 0.99774761, 0.99881108, 0.49311968],\
++[	-6.27240374, -0.00073697, 0.00045167, 7.27166678, 0.99774815, 0.99881136, 0.49311975],\
++[	-6.27240417, -0.00073679, 0.00045156, 7.27166738, 0.99774868, 0.99881165, 0.49311980],\
++[	-6.27240459, -0.00073662, 0.00045145, 7.27166798, 0.99774922, 0.99881193, 0.49311987],\
++[	-6.27240502, -0.00073644, 0.00045135, 7.27166858, 0.99774976, 0.99881221, 0.49311992],\
++[	-6.27240544, -0.00073626, 0.00045124, 7.27166917, 0.99775029, 0.99881250, 0.49312000],\
++[	-6.27240586, -0.00073609, 0.00045113, 7.27166977, 0.99775083, 0.99881278, 0.49312006],\
++[	-6.27240628, -0.00073591, 0.00045102, 7.27167037, 0.99775136, 0.99881306, 0.49312011],\
++[	-6.27240671, -0.00073574, 0.00045092, 7.27167097, 0.99775190, 0.99881334, 0.49312017],\
++[	-6.27240713, -0.00073556, 0.00045081, 7.27167157, 0.99775243, 0.99881362, 0.49312022],\
++[	-6.27240755, -0.00073539, 0.00045070, 7.27167216, 0.99775297, 0.99881391, 0.49312031],\
++[	-6.27240797, -0.00073522, 0.00045060, 7.27167276, 0.99775350, 0.99881419, 0.49312033],\
++[	-6.27240840, -0.00073504, 0.00045049, 7.27167336, 0.99775403, 0.99881447, 0.49312043],\
++[	-6.27240882, -0.00073487, 0.00045038, 7.27167395, 0.99775457, 0.99881475, 0.49312049],\
++[	-6.27240924, -0.00073469, 0.00045027, 7.27167455, 0.99775510, 0.99881503, 0.49312054],\
++[	-6.27240966, -0.00073452, 0.00045017, 7.27167514, 0.99775563, 0.99881531, 0.49312061],\
++[	-6.27241008, -0.00073434, 0.00045006, 7.27167574, 0.99775617, 0.99881560, 0.49312068],\
++[	-6.27241050, -0.00073417, 0.00044995, 7.27167633, 0.99775670, 0.99881588, 0.49312074],\
++[	-6.27241092, -0.00073400, 0.00044985, 7.27167693, 0.99775723, 0.99881616, 0.49312080],\
++[	-6.27241134, -0.00073382, 0.00044974, 7.27167752, 0.99775776, 0.99881644, 0.49312087],\
++[	-6.27241176, -0.00073365, 0.00044963, 7.27167812, 0.99775829, 0.99881672, 0.49312093],\
++[	-6.27241218, -0.00073347, 0.00044953, 7.27167871, 0.99775883, 0.99881700, 0.49312099],\
++[	-6.27241260, -0.00073330, 0.00044942, 7.27167930, 0.99775936, 0.99881728, 0.49312106],\
++[	-6.27241302, -0.00073313, 0.00044931, 7.27167990, 0.99775989, 0.99881756, 0.49312110],\
++[	-6.27241344, -0.00073295, 0.00044921, 7.27168049, 0.99776042, 0.99881784, 0.49312117],\
++[	-6.27241386, -0.00073278, 0.00044910, 7.27168108, 0.99776095, 0.99881812, 0.49312124],\
++[	-6.27241428, -0.00073261, 0.00044899, 7.27168167, 0.99776148, 0.99881840, 0.49312129],\
++[	-6.27241470, -0.00073243, 0.00044889, 7.27168227, 0.99776201, 0.99881868, 0.49312137],\
++[	-6.27241512, -0.00073226, 0.00044878, 7.27168286, 0.99776254, 0.99881896, 0.49312141],\
++[	-6.27241554, -0.00073209, 0.00044868, 7.27168345, 0.99776307, 0.99881924, 0.49312147],\
++[	-6.27241595, -0.00073191, 0.00044857, 7.27168404, 0.99776360, 0.99881952, 0.49312156],\
++[	-6.27241637, -0.00073174, 0.00044846, 7.27168463, 0.99776413, 0.99881980, 0.49312161],\
++[	-6.27241679, -0.00073157, 0.00044836, 7.27168522, 0.99776466, 0.99882008, 0.49312166],\
++[	-6.27241721, -0.00073139, 0.00044825, 7.27168581, 0.99776518, 0.99882035, 0.49312172],\
++[	-6.27241762, -0.00073122, 0.00044815, 7.27168640, 0.99776571, 0.99882063, 0.49312178],\
++[	-6.27241804, -0.00073105, 0.00044804, 7.27168699, 0.99776624, 0.99882091, 0.49312185],\
++[	-6.27241846, -0.00073088, 0.00044793, 7.27168758, 0.99776677, 0.99882119, 0.49312193],\
++[	-6.27241887, -0.00073070, 0.00044783, 7.27168817, 0.99776730, 0.99882147, 0.49312197],\
++[	-6.27241929, -0.00073053, 0.00044772, 7.27168876, 0.99776782, 0.99882175, 0.49312203],\
++[	-6.27241971, -0.00073036, 0.00044762, 7.27168935, 0.99776835, 0.99882202, 0.49312211],\
++[	-6.27242012, -0.00073019, 0.00044751, 7.27168994, 0.99776888, 0.99882230, 0.49312215],\
++[	-6.27242054, -0.00073001, 0.00044741, 7.27169052, 0.99776940, 0.99882258, 0.49312222],\
++[	-6.27242095, -0.00072984, 0.00044730, 7.27169111, 0.99776993, 0.99882286, 0.49312230],\
++[	-6.27242137, -0.00072967, 0.00044719, 7.27169170, 0.99777045, 0.99882314, 0.49312233],\
++[	-6.27242178, -0.00072950, 0.00044709, 7.27169229, 0.99777098, 0.99882341, 0.49312241],\
++[	-6.27242220, -0.00072933, 0.00044698, 7.27169287, 0.99777151, 0.99882369, 0.49312246],\
++[	-6.27242261, -0.00072915, 0.00044688, 7.27169346, 0.99777203, 0.99882397, 0.49312253],\
++[	-6.27242303, -0.00072898, 0.00044677, 7.27169405, 0.99777256, 0.99882424, 0.49312260],\
++[	-6.27242344, -0.00072881, 0.00044667, 7.27169463, 0.99777308, 0.99882452, 0.49312265],\
++[	-6.27242386, -0.00072864, 0.00044656, 7.27169522, 0.99777361, 0.99882480, 0.49312272],\
++[	-6.27242427, -0.00072847, 0.00044646, 7.27169580, 0.99777413, 0.99882508, 0.49312276],\
++[	-6.27242468, -0.00072830, 0.00044635, 7.27169639, 0.99777465, 0.99882535, 0.49312285],\
++[	-6.27242510, -0.00072813, 0.00044625, 7.27169697, 0.99777518, 0.99882563, 0.49312291],\
++[	-6.27242551, -0.00072795, 0.00044614, 7.27169756, 0.99777570, 0.99882590, 0.49312295],\
++[	-6.27242592, -0.00072778, 0.00044604, 7.27169814, 0.99777622, 0.99882618, 0.49312303],\
++[	-6.27242634, -0.00072761, 0.00044593, 7.27169872, 0.99777675, 0.99882646, 0.49312307],\
++[	-6.27242675, -0.00072744, 0.00044583, 7.27169931, 0.99777727, 0.99882673, 0.49312312],\
++[	-6.27242716, -0.00072727, 0.00044572, 7.27169989, 0.99777779, 0.99882701, 0.49312319],\
++[	-6.27242757, -0.00072710, 0.00044562, 7.27170047, 0.99777831, 0.99882728, 0.49312326],\
++[	-6.27242798, -0.00072693, 0.00044551, 7.27170106, 0.99777884, 0.99882756, 0.49312335],\
++[	-6.27242840, -0.00072676, 0.00044541, 7.27170164, 0.99777936, 0.99882783, 0.49312338],\
++[	-6.27242881, -0.00072659, 0.00044530, 7.27170222, 0.99777988, 0.99882811, 0.49312345],\
++[	-6.27242922, -0.00072642, 0.00044520, 7.27170280, 0.99778040, 0.99882838, 0.49312349],\
++[	-6.27242963, -0.00072625, 0.00044509, 7.27170338, 0.99778092, 0.99882866, 0.49312358],\
++[	-6.27243004, -0.00072608, 0.00044499, 7.27170397, 0.99778144, 0.99882893, 0.49312364],\
++[	-6.27243045, -0.00072591, 0.00044488, 7.27170455, 0.99778196, 0.99882921, 0.49312368],\
++[	-6.27243086, -0.00072574, 0.00044478, 7.27170513, 0.99778248, 0.99882948, 0.49312376],\
++[	-6.27243127, -0.00072557, 0.00044468, 7.27170571, 0.99778300, 0.99882976, 0.49312381],\
++[	-6.27243168, -0.00072540, 0.00044457, 7.27170629, 0.99778352, 0.99883003, 0.49312388],\
++[	-6.27243209, -0.00072523, 0.00044447, 7.27170687, 0.99778404, 0.99883031, 0.49312394],\
++[	-6.27243250, -0.00072506, 0.00044436, 7.27170745, 0.99778456, 0.99883058, 0.49312397],\
++[	-6.27243291, -0.00072489, 0.00044426, 7.27170803, 0.99778508, 0.99883086, 0.49312405],\
++[	-6.27243332, -0.00072472, 0.00044416, 7.27170860, 0.99778560, 0.99883113, 0.49312410],\
++[	-6.27243373, -0.00072455, 0.00044405, 7.27170918, 0.99778612, 0.99883140, 0.49312419],\
++[	-6.27243414, -0.00072438, 0.00044395, 7.27170976, 0.99778664, 0.99883168, 0.49312424],\
++[	-6.27243455, -0.00072421, 0.00044384, 7.27171034, 0.99778716, 0.99883195, 0.49312429],\
++[	-6.27243496, -0.00072404, 0.00044374, 7.27171092, 0.99778767, 0.99883222, 0.49312436],\
++[	-6.27243536, -0.00072387, 0.00044364, 7.27171150, 0.99778819, 0.99883250, 0.49312441],\
++[	-6.27243577, -0.00072370, 0.00044353, 7.27171207, 0.99778871, 0.99883277, 0.49312447],\
++[	-6.27243618, -0.00072353, 0.00044343, 7.27171265, 0.99778923, 0.99883304, 0.49312454],\
++[	-6.27243659, -0.00072336, 0.00044332, 7.27171323, 0.99778974, 0.99883331, 0.49312460],\
++[	-6.27243700, -0.00072319, 0.00044322, 7.27171380, 0.99779026, 0.99883359, 0.49312464],\
++[	-6.27243740, -0.00072302, 0.00044312, 7.27171438, 0.99779078, 0.99883386, 0.49312471],\
++[	-6.27243781, -0.00072285, 0.00044301, 7.27171495, 0.99779129, 0.99883413, 0.49312476],\
++[	-6.27243822, -0.00072269, 0.00044291, 7.27171553, 0.99779181, 0.99883440, 0.49312483],\
++[	-6.27243862, -0.00072252, 0.00044281, 7.27171611, 0.99779232, 0.99883468, 0.49312489],\
++[	-6.27243903, -0.00072235, 0.00044270, 7.27171668, 0.99779284, 0.99883495, 0.49312495],\
++[	-6.27243944, -0.00072218, 0.00044260, 7.27171726, 0.99779336, 0.99883522, 0.49312500],\
++[	-6.27243984, -0.00072201, 0.00044250, 7.27171783, 0.99779387, 0.99883549, 0.49312508],\
++[	-6.27244025, -0.00072184, 0.00044239, 7.27171840, 0.99779438, 0.99883576, 0.49312514],\
++[	-6.27244065, -0.00072167, 0.00044229, 7.27171898, 0.99779490, 0.99883604, 0.49312518],\
++[	-6.27244106, -0.00072151, 0.00044219, 7.27171955, 0.99779541, 0.99883631, 0.49312525],\
++[	-6.27244146, -0.00072134, 0.00044208, 7.27172012, 0.99779593, 0.99883658, 0.49312531],\
++[	-6.27244187, -0.00072117, 0.00044198, 7.27172070, 0.99779644, 0.99883685, 0.49312537],\
++[	-6.27244227, -0.00072100, 0.00044188, 7.27172127, 0.99779696, 0.99883712, 0.49312544],\
++[	-6.27244268, -0.00072083, 0.00044177, 7.27172184, 0.99779747, 0.99883739, 0.49312550],\
++[	-6.27244308, -0.00072067, 0.00044167, 7.27172242, 0.99779798, 0.99883766, 0.49312555],\
++[	-6.27244349, -0.00072050, 0.00044157, 7.27172299, 0.99779849, 0.99883793, 0.49312563],\
++[	-6.27244389, -0.00072033, 0.00044147, 7.27172356, 0.99779901, 0.99883820, 0.49312567],\
++[	-6.27244429, -0.00072016, 0.00044136, 7.27172413, 0.99779952, 0.99883847, 0.49312573],\
++[	-6.27244470, -0.00072000, 0.00044126, 7.27172470, 0.99780003, 0.99883874, 0.49312578],\
++[	-6.27244510, -0.00071983, 0.00044116, 7.27172527, 0.99780054, 0.99883901, 0.49312585],\
++[	-6.27244550, -0.00071966, 0.00044105, 7.27172584, 0.99780105, 0.99883928, 0.49312592],\
++[	-6.27244591, -0.00071949, 0.00044095, 7.27172641, 0.99780157, 0.99883955, 0.49312598],\
++[	-6.27244631, -0.00071933, 0.00044085, 7.27172698, 0.99780208, 0.99883982, 0.49312604],\
++[	-6.27244671, -0.00071916, 0.00044075, 7.27172755, 0.99780259, 0.99884009, 0.49312608],\
++[	-6.27244712, -0.00071899, 0.00044064, 7.27172812, 0.99780310, 0.99884036, 0.49312614],\
++[	-6.27244752, -0.00071883, 0.00044054, 7.27172869, 0.99780361, 0.99884063, 0.49312622],\
++[	-6.27244792, -0.00071866, 0.00044044, 7.27172926, 0.99780412, 0.99884090, 0.49312626],\
++[	-6.27244832, -0.00071849, 0.00044034, 7.27172983, 0.99780463, 0.99884117, 0.49312632],\
++[	-6.27244872, -0.00071833, 0.00044024, 7.27173040, 0.99780514, 0.99884144, 0.49312638],\
++[	-6.27244912, -0.00071816, 0.00044013, 7.27173097, 0.99780565, 0.99884171, 0.49312645],\
++[	-6.27244953, -0.00071799, 0.00044003, 7.27173153, 0.99780616, 0.99884198, 0.49312649],\
++[	-6.27244993, -0.00071783, 0.00043993, 7.27173210, 0.99780667, 0.99884225, 0.49312657],\
++[	-6.27245033, -0.00071766, 0.00043983, 7.27173267, 0.99780718, 0.99884251, 0.49312664],\
++[	-6.27245073, -0.00071749, 0.00043972, 7.27173323, 0.99780768, 0.99884278, 0.49312669],\
++[	-6.27245113, -0.00071733, 0.00043962, 7.27173380, 0.99780819, 0.99884305, 0.49312674],\
++[	-6.27245153, -0.00071716, 0.00043952, 7.27173437, 0.99780870, 0.99884332, 0.49312680],\
++[	-6.27245193, -0.00071699, 0.00043942, 7.27173493, 0.99780921, 0.99884359, 0.49312685],\
++[	-6.27245233, -0.00071683, 0.00043932, 7.27173550, 0.99780972, 0.99884385, 0.49312691],\
++[	-6.27245273, -0.00071666, 0.00043922, 7.27173607, 0.99781022, 0.99884412, 0.49312701],\
++[	-6.27245313, -0.00071650, 0.00043911, 7.27173663, 0.99781073, 0.99884439, 0.49312703],\
++[	-6.27245353, -0.00071633, 0.00043901, 7.27173720, 0.99781124, 0.99884466, 0.49312710],\
++[	-6.27245393, -0.00071617, 0.00043891, 7.27173776, 0.99781174, 0.99884492, 0.49312716],\
++[	-6.27245432, -0.00071600, 0.00043881, 7.27173833, 0.99781225, 0.99884519, 0.49312722],\
++[	-6.27245472, -0.00071583, 0.00043871, 7.27173889, 0.99781276, 0.99884546, 0.49312728],\
++[	-6.27245512, -0.00071567, 0.00043861, 7.27173945, 0.99781326, 0.99884573, 0.49312736],\
++[	-6.27245552, -0.00071550, 0.00043850, 7.27174002, 0.99781377, 0.99884599, 0.49312741],\
++[	-6.27245592, -0.00071534, 0.00043840, 7.27174058, 0.99781427, 0.99884626, 0.49312745],\
++[	-6.27245632, -0.00071517, 0.00043830, 7.27174114, 0.99781478, 0.99884653, 0.49312752],\
++[	-6.27245671, -0.00071501, 0.00043820, 7.27174171, 0.99781528, 0.99884679, 0.49312756],\
++[	-6.27245711, -0.00071484, 0.00043810, 7.27174227, 0.99781579, 0.99884706, 0.49312763],\
++[	-6.27245751, -0.00071468, 0.00043800, 7.27174283, 0.99781629, 0.99884733, 0.49312770],\
++[	-6.27245791, -0.00071451, 0.00043790, 7.27174339, 0.99781680, 0.99884759, 0.49312773],\
++[	-6.27245830, -0.00071435, 0.00043779, 7.27174396, 0.99781730, 0.99884786, 0.49312781],\
++[	-6.27245870, -0.00071418, 0.00043769, 7.27174452, 0.99781781, 0.99884812, 0.49312788],\
++[	-6.27245910, -0.00071402, 0.00043759, 7.27174508, 0.99781831, 0.99884839, 0.49312794],\
++[	-6.27245949, -0.00071385, 0.00043749, 7.27174564, 0.99781881, 0.99884866, 0.49312798],\
++[	-6.27245989, -0.00071369, 0.00043739, 7.27174620, 0.99781932, 0.99884892, 0.49312802],\
++[	-6.27246028, -0.00071352, 0.00043729, 7.27174676, 0.99781982, 0.99884919, 0.49312810],\
++[	-6.27246068, -0.00071336, 0.00043719, 7.27174732, 0.99782032, 0.99884945, 0.49312816],\
++[	-6.27246108, -0.00071320, 0.00043709, 7.27174788, 0.99782083, 0.99884972, 0.49312820],\
++[	-6.27246147, -0.00071303, 0.00043699, 7.27174844, 0.99782133, 0.99884998, 0.49312828],\
++[	-6.27246187, -0.00071287, 0.00043689, 7.27174900, 0.99782183, 0.99885025, 0.49312834],\
++[	-6.27246226, -0.00071270, 0.00043679, 7.27174956, 0.99782233, 0.99885051, 0.49312839],\
++[	-6.27246266, -0.00071254, 0.00043669, 7.27175012, 0.99782283, 0.99885078, 0.49312847],\
++[	-6.27246305, -0.00071237, 0.00043658, 7.27175068, 0.99782333, 0.99885104, 0.49312849],\
++[	-6.27246345, -0.00071221, 0.00043648, 7.27175123, 0.99782384, 0.99885131, 0.49312857],\
++[	-6.27246384, -0.00071205, 0.00043638, 7.27175179, 0.99782434, 0.99885157, 0.49312862],\
++[	-6.27246423, -0.00071188, 0.00043628, 7.27175235, 0.99782484, 0.99885183, 0.49312870],\
++[	-6.27246463, -0.00071172, 0.00043618, 7.27175291, 0.99782534, 0.99885210, 0.49312875],\
++[	-6.27246502, -0.00071156, 0.00043608, 7.27175347, 0.99782584, 0.99885236, 0.49312878],\
++[	-6.27246541, -0.00071139, 0.00043598, 7.27175402, 0.99782634, 0.99885263, 0.49312886],\
++[	-6.27246581, -0.00071123, 0.00043588, 7.27175458, 0.99782684, 0.99885289, 0.49312892],\
++[	-6.27246620, -0.00071107, 0.00043578, 7.27175514, 0.99782734, 0.99885315, 0.49312899],\
++[	-6.27246659, -0.00071090, 0.00043568, 7.27175569, 0.99782784, 0.99885342, 0.49312906],\
++[	-6.27246699, -0.00071074, 0.00043558, 7.27175625, 0.99782833, 0.99885368, 0.49312908],\
++[	-6.27246738, -0.00071058, 0.00043548, 7.27175680, 0.99782883, 0.99885394, 0.49312914],\
++[	-6.27246777, -0.00071041, 0.00043538, 7.27175736, 0.99782933, 0.99885421, 0.49312922],\
++[	-6.27246816, -0.00071025, 0.00043528, 7.27175791, 0.99782983, 0.99885447, 0.49312926],\
++[	-6.27246856, -0.00071009, 0.00043518, 7.27175847, 0.99783033, 0.99885473, 0.49312934],\
++[	-6.27246895, -0.00070992, 0.00043508, 7.27175902, 0.99783083, 0.99885499, 0.49312938],\
++[	-6.27246934, -0.00070976, 0.00043498, 7.27175958, 0.99783132, 0.99885526, 0.49312944],\
++[	-6.27246973, -0.00070960, 0.00043488, 7.27176013, 0.99783182, 0.99885552, 0.49312948],\
++[	-6.27247012, -0.00070944, 0.00043478, 7.27176069, 0.99783232, 0.99885578, 0.49312957],\
++[	-6.27247051, -0.00070927, 0.00043468, 7.27176124, 0.99783282, 0.99885604, 0.49312962],\
++[	-6.27247090, -0.00070911, 0.00043458, 7.27176179, 0.99783331, 0.99885631, 0.49312968],\
++[	-6.27247129, -0.00070895, 0.00043448, 7.27176235, 0.99783381, 0.99885657, 0.49312972],\
++[	-6.27247168, -0.00070879, 0.00043438, 7.27176290, 0.99783431, 0.99885683, 0.49312980],\
++[	-6.27247207, -0.00070862, 0.00043428, 7.27176345, 0.99783480, 0.99885709, 0.49312985],\
++[	-6.27247246, -0.00070846, 0.00043418, 7.27176400, 0.99783530, 0.99885735, 0.49312992],\
++[	-6.27247285, -0.00070830, 0.00043409, 7.27176456, 0.99783579, 0.99885762, 0.49312999],\
++[	-6.27247324, -0.00070814, 0.00043399, 7.27176511, 0.99783629, 0.99885788, 0.49313003],\
++[	-6.27247363, -0.00070798, 0.00043389, 7.27176566, 0.99783678, 0.99885814, 0.49313009],\
++[	-6.27247402, -0.00070781, 0.00043379, 7.27176621, 0.99783728, 0.99885840, 0.49313014],\
++[	-6.27247441, -0.00070765, 0.00043369, 7.27176676, 0.99783777, 0.99885866, 0.49313021],\
++[	-6.27247480, -0.00070749, 0.00043359, 7.27176731, 0.99783827, 0.99885892, 0.49313025],\
++[	-6.27247519, -0.00070733, 0.00043349, 7.27176786, 0.99783876, 0.99885918, 0.49313031],\
++[	-6.27247558, -0.00070717, 0.00043339, 7.27176841, 0.99783926, 0.99885944, 0.49313036],\
++[	-6.27247597, -0.00070701, 0.00043329, 7.27176896, 0.99783975, 0.99885970, 0.49313043],\
++[	-6.27247636, -0.00070684, 0.00043319, 7.27176951, 0.99784024, 0.99885996, 0.49313047],\
++[	-6.27247674, -0.00070668, 0.00043309, 7.27177006, 0.99784074, 0.99886022, 0.49313056],\
++[	-6.27247713, -0.00070652, 0.00043299, 7.27177061, 0.99784123, 0.99886048, 0.49313062],\
++[	-6.27247752, -0.00070636, 0.00043290, 7.27177116, 0.99784172, 0.99886074, 0.49313067],\
++[	-6.27247791, -0.00070620, 0.00043280, 7.27177171, 0.99784222, 0.99886100, 0.49313072],\
++[	-6.27247829, -0.00070604, 0.00043270, 7.27177226, 0.99784271, 0.99886126, 0.49313077],\
++[	-6.27247868, -0.00070588, 0.00043260, 7.27177280, 0.99784320, 0.99886152, 0.49313084],\
++[	-6.27247907, -0.00070572, 0.00043250, 7.27177335, 0.99784369, 0.99886178, 0.49313089],\
++[	-6.27247945, -0.00070556, 0.00043240, 7.27177390, 0.99784418, 0.99886204, 0.49313094],\
++[	-6.27247984, -0.00070539, 0.00043230, 7.27177445, 0.99784468, 0.99886230, 0.49313101],\
++[	-6.27248023, -0.00070523, 0.00043220, 7.27177499, 0.99784517, 0.99886256, 0.49313105],\
++[	-6.27248061, -0.00070507, 0.00043211, 7.27177554, 0.99784566, 0.99886282, 0.49313111],\
++[	-6.27248100, -0.00070491, 0.00043201, 7.27177609, 0.99784615, 0.99886308, 0.49313117],\
++[	-6.27248139, -0.00070475, 0.00043191, 7.27177663, 0.99784664, 0.99886334, 0.49313123],\
++[	-6.27248177, -0.00070459, 0.00043181, 7.27177718, 0.99784713, 0.99886360, 0.49313129],\
++[	-6.27248216, -0.00070443, 0.00043171, 7.27177773, 0.99784762, 0.99886386, 0.49313133],\
++[	-6.27248254, -0.00070427, 0.00043161, 7.27177827, 0.99784811, 0.99886411, 0.49313142],\
++[	-6.27248293, -0.00070411, 0.00043152, 7.27177882, 0.99784860, 0.99886437, 0.49313147],\
++[	-6.27248331, -0.00070395, 0.00043142, 7.27177936, 0.99784909, 0.99886463, 0.49313152],\
++[	-6.27248370, -0.00070379, 0.00043132, 7.27177991, 0.99784958, 0.99886489, 0.49313157],\
++[	-6.27248408, -0.00070363, 0.00043122, 7.27178045, 0.99785007, 0.99886515, 0.49313161],\
++[	-6.27248447, -0.00070347, 0.00043112, 7.27178099, 0.99785056, 0.99886541, 0.49313168],\
++[	-6.27248485, -0.00070331, 0.00043103, 7.27178154, 0.99785104, 0.99886566, 0.49313174],\
++[	-6.27248523, -0.00070315, 0.00043093, 7.27178208, 0.99785153, 0.99886592, 0.49313183],\
++[	-6.27248562, -0.00070299, 0.00043083, 7.27178263, 0.99785202, 0.99886618, 0.49313186],\
++[	-6.27248600, -0.00070283, 0.00043073, 7.27178317, 0.99785251, 0.99886644, 0.49313191],\
++[	-6.27248638, -0.00070267, 0.00043063, 7.27178371, 0.99785300, 0.99886669, 0.49313198],\
++[	-6.27248677, -0.00070251, 0.00043054, 7.27178425, 0.99785348, 0.99886695, 0.49313204],\
++[	-6.27248715, -0.00070235, 0.00043044, 7.27178480, 0.99785397, 0.99886721, 0.49313208],\
++[	-6.27248753, -0.00070219, 0.00043034, 7.27178534, 0.99785446, 0.99886747, 0.49313214],\
++[	-6.27248792, -0.00070203, 0.00043024, 7.27178588, 0.99785495, 0.99886772, 0.49313220],\
++[	-6.27248830, -0.00070188, 0.00043014, 7.27178642, 0.99785543, 0.99886798, 0.49313224],\
++[	-6.27248868, -0.00070172, 0.00043005, 7.27178696, 0.99785592, 0.99886824, 0.49313233],\
++[	-6.27248906, -0.00070156, 0.00042995, 7.27178751, 0.99785641, 0.99886849, 0.49313235],\
++[	-6.27248945, -0.00070140, 0.00042985, 7.27178805, 0.99785689, 0.99886875, 0.49313243],\
++[	-6.27248983, -0.00070124, 0.00042975, 7.27178859, 0.99785738, 0.99886901, 0.49313250],\
++[	-6.27249021, -0.00070108, 0.00042966, 7.27178913, 0.99785786, 0.99886926, 0.49313254],\
++[	-6.27249059, -0.00070092, 0.00042956, 7.27178967, 0.99785835, 0.99886952, 0.49313259],\
++[	-6.27249097, -0.00070076, 0.00042946, 7.27179021, 0.99785883, 0.99886977, 0.49313265],\
++[	-6.27249135, -0.00070060, 0.00042937, 7.27179075, 0.99785932, 0.99887003, 0.49313270],\
++[	-6.27249173, -0.00070045, 0.00042927, 7.27179129, 0.99785980, 0.99887029, 0.49313277],\
++[	-6.27249211, -0.00070029, 0.00042917, 7.27179183, 0.99786029, 0.99887054, 0.49313282],\
++[	-6.27249250, -0.00070013, 0.00042907, 7.27179237, 0.99786077, 0.99887080, 0.49313289],\
++[	-6.27249288, -0.00069997, 0.00042898, 7.27179290, 0.99786126, 0.99887105, 0.49313291],\
++[	-6.27249326, -0.00069981, 0.00042888, 7.27179344, 0.99786174, 0.99887131, 0.49313301],\
++[	-6.27249364, -0.00069965, 0.00042878, 7.27179398, 0.99786222, 0.99887156, 0.49313305],\
++[	-6.27249402, -0.00069950, 0.00042869, 7.27179452, 0.99786271, 0.99887182, 0.49313311],\
++[	-6.27249440, -0.00069934, 0.00042859, 7.27179506, 0.99786319, 0.99887207, 0.49313316],\
++[	-6.27249477, -0.00069918, 0.00042849, 7.27179559, 0.99786367, 0.99887233, 0.49313322],\
++[	-6.27249515, -0.00069902, 0.00042840, 7.27179613, 0.99786415, 0.99887258, 0.49313329],\
++[	-6.27249553, -0.00069887, 0.00042830, 7.27179667, 0.99786464, 0.99887284, 0.49313333],\
++[	-6.27249591, -0.00069871, 0.00042820, 7.27179720, 0.99786512, 0.99887309, 0.49313340],\
++[	-6.27249629, -0.00069855, 0.00042810, 7.27179774, 0.99786560, 0.99887335, 0.49313343],\
++[	-6.27249667, -0.00069839, 0.00042801, 7.27179828, 0.99786608, 0.99887360, 0.49313349],\
++[	-6.27249705, -0.00069823, 0.00042791, 7.27179881, 0.99786656, 0.99887385, 0.49313355],\
++[	-6.27249743, -0.00069808, 0.00042781, 7.27179935, 0.99786705, 0.99887411, 0.49313361],\
++[	-6.27249780, -0.00069792, 0.00042772, 7.27179988, 0.99786753, 0.99887436, 0.49313365],\
++[	-6.27249818, -0.00069776, 0.00042762, 7.27180042, 0.99786801, 0.99887462, 0.49313373],\
++[	-6.27249856, -0.00069761, 0.00042753, 7.27180095, 0.99786849, 0.99887487, 0.49313378],\
++[	-6.27249894, -0.00069745, 0.00042743, 7.27180149, 0.99786897, 0.99887512, 0.49313382],\
++[	-6.27249931, -0.00069729, 0.00042733, 7.27180202, 0.99786945, 0.99887538, 0.49313387],\
++[	-6.27249969, -0.00069713, 0.00042724, 7.27180256, 0.99786993, 0.99887563, 0.49313395],\
++[	-6.27250007, -0.00069698, 0.00042714, 7.27180309, 0.99787041, 0.99887588, 0.49313401],\
++[	-6.27250045, -0.00069682, 0.00042704, 7.27180363, 0.99787089, 0.99887614, 0.49313405],\
++[	-6.27250082, -0.00069666, 0.00042695, 7.27180416, 0.99787137, 0.99887639, 0.49313411],\
++[	-6.27250120, -0.00069651, 0.00042685, 7.27180469, 0.99787185, 0.99887664, 0.49313417],\
++[	-6.27250158, -0.00069635, 0.00042676, 7.27180523, 0.99787233, 0.99887689, 0.49313425],\
++[	-6.27250195, -0.00069619, 0.00042666, 7.27180576, 0.99787281, 0.99887715, 0.49313428],\
++[	-6.27250233, -0.00069604, 0.00042656, 7.27180629, 0.99787328, 0.99887740, 0.49313433],\
++[	-6.27250270, -0.00069588, 0.00042647, 7.27180682, 0.99787376, 0.99887765, 0.49313436],\
++[	-6.27250308, -0.00069572, 0.00042637, 7.27180736, 0.99787424, 0.99887790, 0.49313447],\
++[	-6.27250345, -0.00069557, 0.00042628, 7.27180789, 0.99787472, 0.99887816, 0.49313453],\
++[	-6.27250383, -0.00069541, 0.00042618, 7.27180842, 0.99787520, 0.99887841, 0.49313456],\
++[	-6.27250420, -0.00069525, 0.00042608, 7.27180895, 0.99787567, 0.99887866, 0.49313463],\
++[	-6.27250458, -0.00069510, 0.00042599, 7.27180948, 0.99787615, 0.99887891, 0.49313466],\
++[	-6.27250495, -0.00069494, 0.00042589, 7.27181001, 0.99787663, 0.99887916, 0.49313471],\
++[	-6.27250533, -0.00069479, 0.00042580, 7.27181054, 0.99787711, 0.99887942, 0.49313478],\
++[	-6.27250570, -0.00069463, 0.00042570, 7.27181107, 0.99787758, 0.99887967, 0.49313484],\
++[	-6.27250608, -0.00069447, 0.00042561, 7.27181160, 0.99787806, 0.99887992, 0.49313489],\
++[	-6.27250645, -0.00069432, 0.00042551, 7.27181213, 0.99787854, 0.99888017, 0.49313499],\
++[	-6.27250683, -0.00069416, 0.00042541, 7.27181266, 0.99787901, 0.99888042, 0.49313500],\
++[	-6.27250720, -0.00069401, 0.00042532, 7.27181319, 0.99787949, 0.99888067, 0.49313506],\
++[	-6.27250757, -0.00069385, 0.00042522, 7.27181372, 0.99787996, 0.99888092, 0.49313510],\
++[	-6.27250795, -0.00069370, 0.00042513, 7.27181425, 0.99788044, 0.99888117, 0.49313518],\
++[	-6.27250832, -0.00069354, 0.00042503, 7.27181478, 0.99788091, 0.99888143, 0.49313523],\
++[	-6.27250869, -0.00069339, 0.00042494, 7.27181531, 0.99788139, 0.99888168, 0.49313528],\
++[	-6.27250906, -0.00069323, 0.00042484, 7.27181583, 0.99788186, 0.99888193, 0.49313532],\
++[	-6.27250944, -0.00069308, 0.00042475, 7.27181636, 0.99788234, 0.99888218, 0.49313537],\
++[	-6.27250981, -0.00069292, 0.00042465, 7.27181689, 0.99788281, 0.99888243, 0.49313545],\
++[	-6.27251018, -0.00069277, 0.00042456, 7.27181742, 0.99788329, 0.99888268, 0.49313551],\
++[	-6.27251055, -0.00069261, 0.00042446, 7.27181794, 0.99788376, 0.99888293, 0.49313557],\
++[	-6.27251093, -0.00069246, 0.00042437, 7.27181847, 0.99788423, 0.99888318, 0.49313560],\
++[	-6.27251130, -0.00069230, 0.00042427, 7.27181900, 0.99788471, 0.99888343, 0.49313566],\
++[	-6.27251167, -0.00069215, 0.00042418, 7.27181952, 0.99788518, 0.99888368, 0.49313574],\
++[	-6.27251204, -0.00069199, 0.00042408, 7.27182005, 0.99788565, 0.99888393, 0.49313579],\
++[	-6.27251241, -0.00069184, 0.00042399, 7.27182058, 0.99788613, 0.99888418, 0.49313583],\
++[	-6.27251278, -0.00069168, 0.00042389, 7.27182110, 0.99788660, 0.99888443, 0.49313587],\
++[	-6.27251315, -0.00069153, 0.00042380, 7.27182163, 0.99788707, 0.99888468, 0.49313593],\
++[	-6.27251353, -0.00069137, 0.00042370, 7.27182215, 0.99788754, 0.99888492, 0.49313600],\
++[	-6.27251390, -0.00069122, 0.00042361, 7.27182268, 0.99788801, 0.99888517, 0.49313604],\
++[	-6.27251427, -0.00069106, 0.00042351, 7.27182320, 0.99788849, 0.99888542, 0.49313613],\
++[	-6.27251464, -0.00069091, 0.00042342, 7.27182373, 0.99788896, 0.99888567, 0.49313616],\
++[	-6.27251501, -0.00069076, 0.00042332, 7.27182425, 0.99788943, 0.99888592, 0.49313621],\
++[	-6.27251538, -0.00069060, 0.00042323, 7.27182478, 0.99788990, 0.99888617, 0.49313628],\
++[	-6.27251575, -0.00069045, 0.00042314, 7.27182530, 0.99789037, 0.99888642, 0.49313634],\
++[	-6.27251612, -0.00069029, 0.00042304, 7.27182582, 0.99789084, 0.99888667, 0.49313637],\
++[	-6.27251649, -0.00069014, 0.00042295, 7.27182635, 0.99789131, 0.99888691, 0.49313644],\
++[	-6.27251685, -0.00068999, 0.00042285, 7.27182687, 0.99789178, 0.99888716, 0.49313651],\
++[	-6.27251722, -0.00068983, 0.00042276, 7.27182739, 0.99789225, 0.99888741, 0.49313656],\
++[	-6.27251759, -0.00068968, 0.00042266, 7.27182791, 0.99789272, 0.99888766, 0.49313664],\
++[	-6.27251796, -0.00068952, 0.00042257, 7.27182844, 0.99789319, 0.99888791, 0.49313666],\
++[	-6.27251833, -0.00068937, 0.00042248, 7.27182896, 0.99789366, 0.99888815, 0.49313670],\
++[	-6.27251870, -0.00068922, 0.00042238, 7.27182948, 0.99789413, 0.99888840, 0.49313677],\
++[	-6.27251907, -0.00068906, 0.00042229, 7.27183000, 0.99789460, 0.99888865, 0.49313683],\
++[	-6.27251943, -0.00068891, 0.00042219, 7.27183052, 0.99789507, 0.99888890, 0.49313687],\
++[	-6.27251980, -0.00068876, 0.00042210, 7.27183104, 0.99789554, 0.99888914, 0.49313691],\
++[	-6.27252017, -0.00068860, 0.00042200, 7.27183157, 0.99789601, 0.99888939, 0.49313700],\
++[	-6.27252054, -0.00068845, 0.00042191, 7.27183209, 0.99789647, 0.99888964, 0.49313706],\
++[	-6.27252091, -0.00068830, 0.00042182, 7.27183261, 0.99789694, 0.99888988, 0.49313707],\
++[	-6.27252127, -0.00068815, 0.00042172, 7.27183313, 0.99789741, 0.99889013, 0.49313711],\
++[	-6.27252164, -0.00068799, 0.00042163, 7.27183365, 0.99789788, 0.99889038, 0.49313720],\
++[	-6.27252201, -0.00068784, 0.00042154, 7.27183417, 0.99789835, 0.99889062, 0.49313727],\
++[	-6.27252237, -0.00068769, 0.00042144, 7.27183469, 0.99789881, 0.99889087, 0.49313733],\
++[	-6.27252274, -0.00068753, 0.00042135, 7.27183521, 0.99789928, 0.99889112, 0.49313737],\
++[	-6.27252311, -0.00068738, 0.00042125, 7.27183572, 0.99789975, 0.99889136, 0.49313744],\
++[	-6.27252347, -0.00068723, 0.00042116, 7.27183624, 0.99790021, 0.99889161, 0.49313749],\
++[	-6.27252384, -0.00068708, 0.00042107, 7.27183676, 0.99790068, 0.99889186, 0.49313754],\
++[	-6.27252420, -0.00068692, 0.00042097, 7.27183728, 0.99790115, 0.99889210, 0.49313760],\
++[	-6.27252457, -0.00068677, 0.00042088, 7.27183780, 0.99790161, 0.99889235, 0.49313767],\
++[	-6.27252494, -0.00068662, 0.00042079, 7.27183832, 0.99790208, 0.99889259, 0.49313771],\
++[	-6.27252530, -0.00068647, 0.00042069, 7.27183883, 0.99790254, 0.99889284, 0.49313775],\
++[	-6.27252567, -0.00068631, 0.00042060, 7.27183935, 0.99790301, 0.99889309, 0.49313782],\
++[	-6.27252603, -0.00068616, 0.00042051, 7.27183987, 0.99790347, 0.99889333, 0.49313786],\
++[	-6.27252640, -0.00068601, 0.00042041, 7.27184039, 0.99790394, 0.99889358, 0.49313791],\
++[	-6.27252676, -0.00068586, 0.00042032, 7.27184090, 0.99790440, 0.99889382, 0.49313797],\
++[	-6.27252712, -0.00068571, 0.00042023, 7.27184142, 0.99790487, 0.99889407, 0.49313801],\
++[	-6.27252749, -0.00068555, 0.00042013, 7.27184193, 0.99790533, 0.99889431, 0.49313810],\
++[	-6.27252785, -0.00068540, 0.00042004, 7.27184245, 0.99790579, 0.99889456, 0.49313815],\
++[	-6.27252822, -0.00068525, 0.00041995, 7.27184297, 0.99790626, 0.99889480, 0.49313818],\
++[	-6.27252858, -0.00068510, 0.00041985, 7.27184348, 0.99790672, 0.99889505, 0.49313824],\
++[	-6.27252895, -0.00068495, 0.00041976, 7.27184400, 0.99790719, 0.99889529, 0.49313828],\
++[	-6.27252931, -0.00068480, 0.00041967, 7.27184451, 0.99790765, 0.99889553, 0.49313835],\
++[	-6.27252967, -0.00068464, 0.00041958, 7.27184503, 0.99790811, 0.99889578, 0.49313842],\
++[	-6.27253004, -0.00068449, 0.00041948, 7.27184554, 0.99790857, 0.99889602, 0.49313845],\
++[	-6.27253040, -0.00068434, 0.00041939, 7.27184606, 0.99790904, 0.99889627, 0.49313853],\
++[	-6.27253076, -0.00068419, 0.00041930, 7.27184657, 0.99790950, 0.99889651, 0.49313854],\
++[	-6.27253112, -0.00068404, 0.00041920, 7.27184708, 0.99790996, 0.99889676, 0.49313861],\
++[	-6.27253149, -0.00068389, 0.00041911, 7.27184760, 0.99791042, 0.99889700, 0.49313867],\
++[	-6.27253185, -0.00068374, 0.00041902, 7.27184811, 0.99791089, 0.99889724, 0.49313874],\
++[	-6.27253221, -0.00068359, 0.00041893, 7.27184862, 0.99791135, 0.99889749, 0.49313876],\
++[	-6.27253257, -0.00068344, 0.00041883, 7.27184914, 0.99791181, 0.99889773, 0.49313881],\
++[	-6.27253293, -0.00068328, 0.00041874, 7.27184965, 0.99791227, 0.99889797, 0.49313886],\
++[	-6.27253330, -0.00068313, 0.00041865, 7.27185016, 0.99791273, 0.99889822, 0.49313893],\
++[	-6.27253366, -0.00068298, 0.00041856, 7.27185068, 0.99791319, 0.99889846, 0.49313897],\
++[	-6.27253402, -0.00068283, 0.00041846, 7.27185119, 0.99791365, 0.99889870, 0.49313904],\
++[	-6.27253438, -0.00068268, 0.00041837, 7.27185170, 0.99791411, 0.99889895, 0.49313909],\
++[	-6.27253474, -0.00068253, 0.00041828, 7.27185221, 0.99791457, 0.99889919, 0.49313915],\
++[	-6.27253510, -0.00068238, 0.00041819, 7.27185272, 0.99791503, 0.99889943, 0.49313920],\
++[	-6.27253546, -0.00068223, 0.00041810, 7.27185323, 0.99791549, 0.99889967, 0.49313924],\
++[	-6.27253582, -0.00068208, 0.00041800, 7.27185374, 0.99791595, 0.99889992, 0.49313932],\
++[	-6.27253618, -0.00068193, 0.00041791, 7.27185425, 0.99791641, 0.99890016, 0.49313937],\
++[	-6.27253654, -0.00068178, 0.00041782, 7.27185477, 0.99791687, 0.99890040, 0.49313944],\
++[	-6.27253690, -0.00068163, 0.00041773, 7.27185528, 0.99791733, 0.99890064, 0.49313947],\
++[	-6.27253726, -0.00068148, 0.00041763, 7.27185579, 0.99791779, 0.99890089, 0.49313953],\
++[	-6.27253762, -0.00068133, 0.00041754, 7.27185630, 0.99791825, 0.99890113, 0.49313960],\
++[	-6.27253798, -0.00068118, 0.00041745, 7.27185680, 0.99791871, 0.99890137, 0.49313964],\
++[	-6.27253834, -0.00068103, 0.00041736, 7.27185731, 0.99791916, 0.99890161, 0.49313969],\
++[	-6.27253870, -0.00068088, 0.00041727, 7.27185782, 0.99791962, 0.99890185, 0.49313973],\
++[	-6.27253906, -0.00068073, 0.00041718, 7.27185833, 0.99792008, 0.99890209, 0.49313978],\
++[	-6.27253942, -0.00068058, 0.00041708, 7.27185884, 0.99792054, 0.99890234, 0.49313983],\
++[	-6.27253978, -0.00068043, 0.00041699, 7.27185935, 0.99792099, 0.99890258, 0.49313991],\
++[	-6.27254014, -0.00068028, 0.00041690, 7.27185986, 0.99792145, 0.99890282, 0.49313998],\
++[	-6.27254050, -0.00068013, 0.00041681, 7.27186036, 0.99792191, 0.99890306, 0.49314002],\
++[	-6.27254086, -0.00067998, 0.00041672, 7.27186087, 0.99792237, 0.99890330, 0.49314008],\
++[	-6.27254121, -0.00067983, 0.00041662, 7.27186138, 0.99792282, 0.99890354, 0.49314012],\
++[	-6.27254157, -0.00067968, 0.00041653, 7.27186189, 0.99792328, 0.99890378, 0.49314018],\
++[	-6.27254193, -0.00067953, 0.00041644, 7.27186239, 0.99792373, 0.99890402, 0.49314019],\
++[	-6.27254229, -0.00067939, 0.00041635, 7.27186290, 0.99792419, 0.99890426, 0.49314025],\
++[	-6.27254264, -0.00067924, 0.00041626, 7.27186341, 0.99792465, 0.99890450, 0.49314034],\
++[	-6.27254300, -0.00067909, 0.00041617, 7.27186391, 0.99792510, 0.99890474, 0.49314040],\
++[	-6.27254336, -0.00067894, 0.00041608, 7.27186442, 0.99792556, 0.99890499, 0.49314044],\
++[	-6.27254372, -0.00067879, 0.00041598, 7.27186493, 0.99792601, 0.99890523, 0.49314049],\
++[	-6.27254407, -0.00067864, 0.00041589, 7.27186543, 0.99792647, 0.99890547, 0.49314054],\
++[	-6.27254443, -0.00067849, 0.00041580, 7.27186594, 0.99792692, 0.99890571, 0.49314058],\
++[	-6.27254479, -0.00067834, 0.00041571, 7.27186644, 0.99792738, 0.99890595, 0.49314062],\
++[	-6.27254514, -0.00067819, 0.00041562, 7.27186695, 0.99792783, 0.99890618, 0.49314070],\
++[	-6.27254550, -0.00067805, 0.00041553, 7.27186745, 0.99792828, 0.99890642, 0.49314075],\
++[	-6.27254585, -0.00067790, 0.00041544, 7.27186796, 0.99792874, 0.99890666, 0.49314079],\
++[	-6.27254621, -0.00067775, 0.00041535, 7.27186846, 0.99792919, 0.99890690, 0.49314085],\
++[	-6.27254657, -0.00067760, 0.00041526, 7.27186897, 0.99792965, 0.99890714, 0.49314090],\
++[	-6.27254692, -0.00067745, 0.00041516, 7.27186947, 0.99793010, 0.99890738, 0.49314094],\
++[	-6.27254728, -0.00067730, 0.00041507, 7.27186997, 0.99793055, 0.99890762, 0.49314100],\
++[	-6.27254763, -0.00067716, 0.00041498, 7.27187048, 0.99793101, 0.99890786, 0.49314106],\
++[	-6.27254799, -0.00067701, 0.00041489, 7.27187098, 0.99793146, 0.99890810, 0.49314111],\
++[	-6.27254834, -0.00067686, 0.00041480, 7.27187148, 0.99793191, 0.99890834, 0.49314118],\
++[	-6.27254870, -0.00067671, 0.00041471, 7.27187199, 0.99793236, 0.99890858, 0.49314123],\
++[	-6.27254905, -0.00067656, 0.00041462, 7.27187249, 0.99793282, 0.99890882, 0.49314127],\
++[	-6.27254941, -0.00067642, 0.00041453, 7.27187299, 0.99793327, 0.99890905, 0.49314132],\
++[	-6.27254976, -0.00067627, 0.00041444, 7.27187349, 0.99793372, 0.99890929, 0.49314138],\
++[	-6.27255012, -0.00067612, 0.00041435, 7.27187399, 0.99793417, 0.99890953, 0.49314144],\
++[	-6.27255047, -0.00067597, 0.00041426, 7.27187450, 0.99793462, 0.99890977, 0.49314149],\
++[	-6.27255082, -0.00067583, 0.00041417, 7.27187500, 0.99793507, 0.99891001, 0.49314155],\
++[	-6.27255118, -0.00067568, 0.00041408, 7.27187550, 0.99793552, 0.99891025, 0.49314159],\
++[	-6.27255153, -0.00067553, 0.00041399, 7.27187600, 0.99793597, 0.99891048, 0.49314164],\
++[	-6.27255188, -0.00067538, 0.00041390, 7.27187650, 0.99793643, 0.99891072, 0.49314169],\
++[	-6.27255224, -0.00067524, 0.00041381, 7.27187700, 0.99793688, 0.99891096, 0.49314176],\
++[	-6.27255259, -0.00067509, 0.00041372, 7.27187750, 0.99793733, 0.99891120, 0.49314181],\
++[	-6.27255294, -0.00067494, 0.00041362, 7.27187800, 0.99793778, 0.99891143, 0.49314185],\
++[	-6.27255330, -0.00067479, 0.00041353, 7.27187850, 0.99793823, 0.99891167, 0.49314190],\
++[	-6.27255365, -0.00067465, 0.00041344, 7.27187900, 0.99793868, 0.99891191, 0.49314197],\
++[	-6.27255400, -0.00067450, 0.00041335, 7.27187950, 0.99793912, 0.99891215, 0.49314200],\
++[	-6.27255435, -0.00067435, 0.00041326, 7.27188000, 0.99793957, 0.99891238, 0.49314208],\
++[	-6.27255470, -0.00067421, 0.00041317, 7.27188050, 0.99794002, 0.99891262, 0.49314213],\
++[	-6.27255506, -0.00067406, 0.00041308, 7.27188100, 0.99794047, 0.99891286, 0.49314217],\
++[	-6.27255541, -0.00067391, 0.00041299, 7.27188150, 0.99794092, 0.99891309, 0.49314220],\
++[	-6.27255576, -0.00067377, 0.00041290, 7.27188199, 0.99794137, 0.99891333, 0.49314225],\
++[	-6.27255611, -0.00067362, 0.00041281, 7.27188249, 0.99794182, 0.99891357, 0.49314232],\
++[	-6.27255646, -0.00067347, 0.00041272, 7.27188299, 0.99794227, 0.99891380, 0.49314238],\
++[	-6.27255681, -0.00067333, 0.00041263, 7.27188349, 0.99794271, 0.99891404, 0.49314241],\
++[	-6.27255717, -0.00067318, 0.00041254, 7.27188398, 0.99794316, 0.99891428, 0.49314247],\
++[	-6.27255752, -0.00067303, 0.00041245, 7.27188448, 0.99794361, 0.99891451, 0.49314253],\
++[	-6.27255787, -0.00067289, 0.00041236, 7.27188498, 0.99794406, 0.99891475, 0.49314258],\
++[	-6.27255822, -0.00067274, 0.00041228, 7.27188548, 0.99794450, 0.99891498, 0.49314263],\
++[	-6.27255857, -0.00067260, 0.00041219, 7.27188597, 0.99794495, 0.99891522, 0.49314268],\
++[	-6.27255892, -0.00067245, 0.00041210, 7.27188647, 0.99794540, 0.99891545, 0.49314274],\
++[	-6.27255927, -0.00067230, 0.00041201, 7.27188696, 0.99794584, 0.99891569, 0.49314280],\
++[	-6.27255962, -0.00067216, 0.00041192, 7.27188746, 0.99794629, 0.99891593, 0.49314284],\
++[	-6.27255997, -0.00067201, 0.00041183, 7.27188796, 0.99794673, 0.99891616, 0.49314287],\
++[	-6.27256032, -0.00067187, 0.00041174, 7.27188845, 0.99794718, 0.99891640, 0.49314297],\
++[	-6.27256067, -0.00067172, 0.00041165, 7.27188895, 0.99794763, 0.99891663, 0.49314303],\
++[	-6.27256102, -0.00067157, 0.00041156, 7.27188944, 0.99794807, 0.99891687, 0.49314307],\
++[	-6.27256137, -0.00067143, 0.00041147, 7.27188994, 0.99794852, 0.99891710, 0.49314312],\
++[	-6.27256171, -0.00067128, 0.00041138, 7.27189043, 0.99794896, 0.99891734, 0.49314315],\
++[	-6.27256206, -0.00067114, 0.00041129, 7.27189093, 0.99794941, 0.99891757, 0.49314322],\
++[	-6.27256241, -0.00067099, 0.00041120, 7.27189142, 0.99794985, 0.99891781, 0.49314325],\
++[	-6.27256276, -0.00067085, 0.00041111, 7.27189191, 0.99795030, 0.99891804, 0.49314333],\
++[	-6.27256311, -0.00067070, 0.00041102, 7.27189241, 0.99795074, 0.99891828, 0.49314337],\
++[	-6.27256346, -0.00067056, 0.00041093, 7.27189290, 0.99795119, 0.99891851, 0.49314340],\
++[	-6.27256381, -0.00067041, 0.00041085, 7.27189339, 0.99795163, 0.99891874, 0.49314348],\
++[	-6.27256415, -0.00067027, 0.00041076, 7.27189389, 0.99795207, 0.99891898, 0.49314353],\
++[	-6.27256450, -0.00067012, 0.00041067, 7.27189438, 0.99795252, 0.99891921, 0.49314358],\
++[	-6.27256485, -0.00066998, 0.00041058, 7.27189487, 0.99795296, 0.99891945, 0.49314365],\
++[	-6.27256520, -0.00066983, 0.00041049, 7.27189537, 0.99795340, 0.99891968, 0.49314368],\
++[	-6.27256554, -0.00066969, 0.00041040, 7.27189586, 0.99795385, 0.99891991, 0.49314376],\
++[	-6.27256589, -0.00066954, 0.00041031, 7.27189635, 0.99795429, 0.99892015, 0.49314379],\
++[	-6.27256624, -0.00066940, 0.00041022, 7.27189684, 0.99795473, 0.99892038, 0.49314383],\
++[	-6.27256658, -0.00066925, 0.00041013, 7.27189733, 0.99795517, 0.99892061, 0.49314389],\
++[	-6.27256693, -0.00066911, 0.00041005, 7.27189782, 0.99795562, 0.99892085, 0.49314395],\
++[	-6.27256728, -0.00066896, 0.00040996, 7.27189832, 0.99795606, 0.99892108, 0.49314398],\
++[	-6.27256762, -0.00066882, 0.00040987, 7.27189881, 0.99795650, 0.99892131, 0.49314403],\
++[	-6.27256797, -0.00066867, 0.00040978, 7.27189930, 0.99795694, 0.99892155, 0.49314409],\
++[	-6.27256832, -0.00066853, 0.00040969, 7.27189979, 0.99795738, 0.99892178, 0.49314415],\
++[	-6.27256866, -0.00066838, 0.00040960, 7.27190028, 0.99795782, 0.99892201, 0.49314419],\
++[	-6.27256901, -0.00066824, 0.00040951, 7.27190077, 0.99795827, 0.99892225, 0.49314425],\
++[	-6.27256935, -0.00066810, 0.00040943, 7.27190126, 0.99795871, 0.99892248, 0.49314428],\
++[	-6.27256970, -0.00066795, 0.00040934, 7.27190175, 0.99795915, 0.99892271, 0.49314436],\
++[	-6.27257004, -0.00066781, 0.00040925, 7.27190224, 0.99795959, 0.99892294, 0.49314439],\
++[	-6.27257039, -0.00066766, 0.00040916, 7.27190273, 0.99796003, 0.99892318, 0.49314446],\
++[	-6.27257073, -0.00066752, 0.00040907, 7.27190322, 0.99796047, 0.99892341, 0.49314452],\
++[	-6.27257108, -0.00066738, 0.00040898, 7.27190370, 0.99796091, 0.99892364, 0.49314453],\
++[	-6.27257142, -0.00066723, 0.00040890, 7.27190419, 0.99796135, 0.99892387, 0.49314460],\
++[	-6.27257177, -0.00066709, 0.00040881, 7.27190468, 0.99796179, 0.99892410, 0.49314466],\
++[	-6.27257211, -0.00066694, 0.00040872, 7.27190517, 0.99796223, 0.99892434, 0.49314470],\
++[	-6.27257246, -0.00066680, 0.00040863, 7.27190566, 0.99796267, 0.99892457, 0.49314476],\
++[	-6.27257280, -0.00066666, 0.00040854, 7.27190615, 0.99796311, 0.99892480, 0.49314482],\
++[	-6.27257315, -0.00066651, 0.00040846, 7.27190663, 0.99796354, 0.99892503, 0.49314486],\
++[	-6.27257349, -0.00066637, 0.00040837, 7.27190712, 0.99796398, 0.99892526, 0.49314490],\
++[	-6.27257383, -0.00066623, 0.00040828, 7.27190761, 0.99796442, 0.99892549, 0.49314498],\
++[	-6.27257418, -0.00066608, 0.00040819, 7.27190809, 0.99796486, 0.99892573, 0.49314501],\
++[	-6.27257452, -0.00066594, 0.00040810, 7.27190858, 0.99796530, 0.99892596, 0.49314505],\
++[	-6.27257486, -0.00066580, 0.00040802, 7.27190907, 0.99796574, 0.99892619, 0.49314512],\
++[	-6.27257521, -0.00066565, 0.00040793, 7.27190955, 0.99796617, 0.99892642, 0.49314515],\
++[	-6.27257555, -0.00066551, 0.00040784, 7.27191004, 0.99796661, 0.99892665, 0.49314521],\
++[	-6.27257589, -0.00066537, 0.00040775, 7.27191053, 0.99796705, 0.99892688, 0.49314528],\
++[	-6.27257623, -0.00066522, 0.00040766, 7.27191101, 0.99796748, 0.99892711, 0.49314532],\
++[	-6.27257658, -0.00066508, 0.00040758, 7.27191150, 0.99796792, 0.99892734, 0.49314537],\
++[	-6.27257692, -0.00066494, 0.00040749, 7.27191198, 0.99796836, 0.99892757, 0.49314541],\
++[	-6.27257726, -0.00066480, 0.00040740, 7.27191247, 0.99796880, 0.99892780, 0.49314547],\
++[	-6.27257760, -0.00066465, 0.00040731, 7.27191295, 0.99796923, 0.99892803, 0.49314555],\
++[	-6.27257795, -0.00066451, 0.00040723, 7.27191344, 0.99796967, 0.99892826, 0.49314558],\
++[	-6.27257829, -0.00066437, 0.00040714, 7.27191392, 0.99797010, 0.99892849, 0.49314564],\
++[	-6.27257863, -0.00066422, 0.00040705, 7.27191440, 0.99797054, 0.99892872, 0.49314568],\
++[	-6.27257897, -0.00066408, 0.00040696, 7.27191489, 0.99797098, 0.99892895, 0.49314573],\
++[	-6.27257931, -0.00066394, 0.00040688, 7.27191537, 0.99797141, 0.99892918, 0.49314579],\
++[	-6.27257965, -0.00066380, 0.00040679, 7.27191586, 0.99797185, 0.99892941, 0.49314582],\
++[	-6.27257999, -0.00066366, 0.00040670, 7.27191634, 0.99797228, 0.99892964, 0.49314588],\
++[	-6.27258033, -0.00066351, 0.00040662, 7.27191682, 0.99797272, 0.99892987, 0.49314593],\
++[	-6.27258068, -0.00066337, 0.00040653, 7.27191730, 0.99797315, 0.99893010, 0.49314598],\
++[	-6.27258102, -0.00066323, 0.00040644, 7.27191779, 0.99797358, 0.99893033, 0.49314603],\
++[	-6.27258136, -0.00066309, 0.00040635, 7.27191827, 0.99797402, 0.99893056, 0.49314608],\
++[	-6.27258170, -0.00066294, 0.00040627, 7.27191875, 0.99797445, 0.99893079, 0.49314611],\
++[	-6.27258204, -0.00066280, 0.00040618, 7.27191923, 0.99797489, 0.99893102, 0.49314621],\
++[	-6.27258238, -0.00066266, 0.00040609, 7.27191972, 0.99797532, 0.99893125, 0.49314623],\
++[	-6.27258272, -0.00066252, 0.00040601, 7.27192020, 0.99797575, 0.99893148, 0.49314626],\
++[	-6.27258306, -0.00066238, 0.00040592, 7.27192068, 0.99797619, 0.99893170, 0.49314635],\
++[	-6.27258340, -0.00066224, 0.00040583, 7.27192116, 0.99797662, 0.99893193, 0.49314639],\
++[	-6.27258373, -0.00066209, 0.00040574, 7.27192164, 0.99797705, 0.99893216, 0.49314644],\
++[	-6.27258407, -0.00066195, 0.00040566, 7.27192212, 0.99797749, 0.99893239, 0.49314649],\
++[	-6.27258441, -0.00066181, 0.00040557, 7.27192260, 0.99797792, 0.99893262, 0.49314651],\
++[	-6.27258475, -0.00066167, 0.00040548, 7.27192308, 0.99797835, 0.99893285, 0.49314660],\
++[	-6.27258509, -0.00066153, 0.00040540, 7.27192356, 0.99797878, 0.99893307, 0.49314663],\
++[	-6.27258543, -0.00066139, 0.00040531, 7.27192404, 0.99797922, 0.99893330, 0.49314669],\
++[	-6.27258577, -0.00066125, 0.00040522, 7.27192452, 0.99797965, 0.99893353, 0.49314673],\
++[	-6.27258611, -0.00066110, 0.00040514, 7.27192500, 0.99798008, 0.99893376, 0.49314679],\
++[	-6.27258644, -0.00066096, 0.00040505, 7.27192548, 0.99798051, 0.99893399, 0.49314686],\
++[	-6.27258678, -0.00066082, 0.00040496, 7.27192596, 0.99798094, 0.99893421, 0.49314689],\
++[	-6.27258712, -0.00066068, 0.00040488, 7.27192644, 0.99798137, 0.99893444, 0.49314694],\
++[	-6.27258746, -0.00066054, 0.00040479, 7.27192692, 0.99798181, 0.99893467, 0.49314700],\
++[	-6.27258780, -0.00066040, 0.00040471, 7.27192740, 0.99798224, 0.99893490, 0.49314705],\
++[	-6.27258813, -0.00066026, 0.00040462, 7.27192788, 0.99798267, 0.99893512, 0.49314708],\
++[	-6.27258847, -0.00066012, 0.00040453, 7.27192835, 0.99798310, 0.99893535, 0.49314712],\
++[	-6.27258881, -0.00065998, 0.00040445, 7.27192883, 0.99798353, 0.99893558, 0.49314719],\
++[	-6.27258914, -0.00065984, 0.00040436, 7.27192931, 0.99798396, 0.99893580, 0.49314727],\
++[	-6.27258948, -0.00065970, 0.00040427, 7.27192979, 0.99798439, 0.99893603, 0.49314727],\
++[	-6.27258982, -0.00065955, 0.00040419, 7.27193026, 0.99798482, 0.99893626, 0.49314731],\
++[	-6.27259015, -0.00065941, 0.00040410, 7.27193074, 0.99798525, 0.99893648, 0.49314740],\
++[	-6.27259049, -0.00065927, 0.00040401, 7.27193122, 0.99798568, 0.99893671, 0.49314745],\
++[	-6.27259083, -0.00065913, 0.00040393, 7.27193169, 0.99798610, 0.99893694, 0.49314746],\
++[	-6.27259116, -0.00065899, 0.00040384, 7.27193217, 0.99798653, 0.99893716, 0.49314754],\
++[	-6.27259150, -0.00065885, 0.00040376, 7.27193265, 0.99798696, 0.99893739, 0.49314761],\
++[	-6.27259184, -0.00065871, 0.00040367, 7.27193312, 0.99798739, 0.99893762, 0.49314766],\
++[	-6.27259217, -0.00065857, 0.00040358, 7.27193360, 0.99798782, 0.99893784, 0.49314769],\
++[	-6.27259251, -0.00065843, 0.00040350, 7.27193407, 0.99798825, 0.99893807, 0.49314775],\
++[	-6.27259284, -0.00065829, 0.00040341, 7.27193455, 0.99798868, 0.99893829, 0.49314778],\
++[	-6.27259318, -0.00065815, 0.00040333, 7.27193502, 0.99798910, 0.99893852, 0.49314784],\
++[	-6.27259351, -0.00065801, 0.00040324, 7.27193550, 0.99798953, 0.99893875, 0.49314788],\
++[	-6.27259385, -0.00065787, 0.00040316, 7.27193597, 0.99798996, 0.99893897, 0.49314794],\
++[	-6.27259418, -0.00065773, 0.00040307, 7.27193645, 0.99799039, 0.99893920, 0.49314799],\
++[	-6.27259452, -0.00065759, 0.00040298, 7.27193692, 0.99799081, 0.99893942, 0.49314805],\
++[	-6.27259485, -0.00065745, 0.00040290, 7.27193740, 0.99799124, 0.99893965, 0.49314807],\
++[	-6.27259519, -0.00065731, 0.00040281, 7.27193787, 0.99799167, 0.99893987, 0.49314813],\
++[	-6.27259552, -0.00065717, 0.00040273, 7.27193835, 0.99799209, 0.99894010, 0.49314822],\
++[	-6.27259585, -0.00065703, 0.00040264, 7.27193882, 0.99799252, 0.99894032, 0.49314825],\
++[	-6.27259619, -0.00065690, 0.00040256, 7.27193929, 0.99799295, 0.99894055, 0.49314830],\
++[	-6.27259652, -0.00065676, 0.00040247, 7.27193977, 0.99799337, 0.99894077, 0.49314836],\
++[	-6.27259686, -0.00065662, 0.00040239, 7.27194024, 0.99799380, 0.99894100, 0.49314839],\
++[	-6.27259719, -0.00065648, 0.00040230, 7.27194071, 0.99799422, 0.99894122, 0.49314844],\
++[	-6.27259752, -0.00065634, 0.00040221, 7.27194118, 0.99799465, 0.99894145, 0.49314848],\
++[	-6.27259786, -0.00065620, 0.00040213, 7.27194166, 0.99799507, 0.99894167, 0.49314852],\
++[	-6.27259819, -0.00065606, 0.00040204, 7.27194213, 0.99799550, 0.99894190, 0.49314858],\
++[	-6.27259852, -0.00065592, 0.00040196, 7.27194260, 0.99799593, 0.99894212, 0.49314864],\
++[	-6.27259885, -0.00065578, 0.00040187, 7.27194307, 0.99799635, 0.99894234, 0.49314867],\
++[	-6.27259919, -0.00065564, 0.00040179, 7.27194354, 0.99799677, 0.99894257, 0.49314872],\
++[	-6.27259952, -0.00065550, 0.00040170, 7.27194402, 0.99799720, 0.99894279, 0.49314880],\
++[	-6.27259985, -0.00065537, 0.00040162, 7.27194449, 0.99799762, 0.99894302, 0.49314880],\
++[	-6.27260018, -0.00065523, 0.00040153, 7.27194496, 0.99799805, 0.99894324, 0.49314888],\
++[	-6.27260052, -0.00065509, 0.00040145, 7.27194543, 0.99799847, 0.99894346, 0.49314897],\
++[	-6.27260085, -0.00065495, 0.00040136, 7.27194590, 0.99799889, 0.99894369, 0.49314899],\
++[	-6.27260118, -0.00065481, 0.00040128, 7.27194637, 0.99799932, 0.99894391, 0.49314902],\
++[	-6.27260151, -0.00065467, 0.00040119, 7.27194684, 0.99799974, 0.99894413, 0.49314908],\
++[	-6.27260184, -0.00065453, 0.00040111, 7.27194731, 0.99800016, 0.99894436, 0.49314911],\
++[	-6.27260217, -0.00065440, 0.00040102, 7.27194778, 0.99800059, 0.99894458, 0.49314920],\
++[	-6.27260251, -0.00065426, 0.00040094, 7.27194825, 0.99800101, 0.99894480, 0.49314922],\
++[	-6.27260284, -0.00065412, 0.00040085, 7.27194872, 0.99800143, 0.99894503, 0.49314928],\
++[	-6.27260317, -0.00065398, 0.00040077, 7.27194919, 0.99800186, 0.99894525, 0.49314931],\
++[	-6.27260350, -0.00065384, 0.00040068, 7.27194966, 0.99800228, 0.99894547, 0.49314937],\
++[	-6.27260383, -0.00065370, 0.00040060, 7.27195013, 0.99800270, 0.99894570, 0.49314942],\
++[	-6.27260416, -0.00065357, 0.00040051, 7.27195059, 0.99800312, 0.99894592, 0.49314947],\
++[	-6.27260449, -0.00065343, 0.00040043, 7.27195106, 0.99800354, 0.99894614, 0.49314952],\
++[	-6.27260482, -0.00065329, 0.00040035, 7.27195153, 0.99800397, 0.99894636, 0.49314960],\
++[	-6.27260515, -0.00065315, 0.00040026, 7.27195200, 0.99800439, 0.99894659, 0.49314963],\
++[	-6.27260548, -0.00065302, 0.00040018, 7.27195247, 0.99800481, 0.99894681, 0.49314965],\
++[	-6.27260581, -0.00065288, 0.00040009, 7.27195293, 0.99800523, 0.99894703, 0.49314972],\
++[	-6.27260614, -0.00065274, 0.00040001, 7.27195340, 0.99800565, 0.99894725, 0.49314975],\
++[	-6.27260647, -0.00065260, 0.00039992, 7.27195387, 0.99800607, 0.99894747, 0.49314983],\
++[	-6.27260680, -0.00065246, 0.00039984, 7.27195434, 0.99800649, 0.99894770, 0.49314987],\
++[	-6.27260713, -0.00065233, 0.00039975, 7.27195480, 0.99800691, 0.99894792, 0.49314994],\
++[	-6.27260746, -0.00065219, 0.00039967, 7.27195527, 0.99800733, 0.99894814, 0.49314996],\
++[	-6.27260779, -0.00065205, 0.00039959, 7.27195573, 0.99800775, 0.99894836, 0.49314998],\
++[	-6.27260812, -0.00065192, 0.00039950, 7.27195620, 0.99800817, 0.99894858, 0.49315004],\
++[	-6.27260844, -0.00065178, 0.00039942, 7.27195667, 0.99800859, 0.99894880, 0.49315011],\
++[	-6.27260877, -0.00065164, 0.00039933, 7.27195713, 0.99800901, 0.99894903, 0.49315016],\
++[	-6.27260910, -0.00065150, 0.00039925, 7.27195760, 0.99800943, 0.99894925, 0.49315020],\
++[	-6.27260943, -0.00065137, 0.00039917, 7.27195806, 0.99800985, 0.99894947, 0.49315028],\
++[	-6.27260976, -0.00065123, 0.00039908, 7.27195853, 0.99801027, 0.99894969, 0.49315027],\
++[	-6.27261009, -0.00065109, 0.00039900, 7.27195899, 0.99801069, 0.99894991, 0.49315035],\
++[	-6.27261041, -0.00065096, 0.00039891, 7.27195946, 0.99801110, 0.99895013, 0.49315041],\
++[	-6.27261074, -0.00065082, 0.00039883, 7.27195992, 0.99801152, 0.99895035, 0.49315047],\
++[	-6.27261107, -0.00065068, 0.00039875, 7.27196039, 0.99801194, 0.99895057, 0.49315053],\
++[	-6.27261140, -0.00065055, 0.00039866, 7.27196085, 0.99801236, 0.99895079, 0.49315055],\
++[	-6.27261172, -0.00065041, 0.00039858, 7.27196132, 0.99801278, 0.99895101, 0.49315059],\
++[	-6.27261205, -0.00065027, 0.00039849, 7.27196178, 0.99801320, 0.99895123, 0.49315063],\
++[	-6.27261238, -0.00065014, 0.00039841, 7.27196224, 0.99801361, 0.99895145, 0.49315070],\
++[	-6.27261271, -0.00065000, 0.00039833, 7.27196271, 0.99801403, 0.99895167, 0.49315074],\
++[	-6.27261303, -0.00064986, 0.00039824, 7.27196317, 0.99801445, 0.99895189, 0.49315081],\
++[	-6.27261336, -0.00064973, 0.00039816, 7.27196363, 0.99801486, 0.99895212, 0.49315083],\
++[	-6.27261369, -0.00064959, 0.00039808, 7.27196410, 0.99801528, 0.99895233, 0.49315088],\
++[	-6.27261401, -0.00064945, 0.00039799, 7.27196456, 0.99801570, 0.99895255, 0.49315095],\
++[	-6.27261434, -0.00064932, 0.00039791, 7.27196502, 0.99801611, 0.99895277, 0.49315102],\
++[	-6.27261466, -0.00064918, 0.00039782, 7.27196548, 0.99801653, 0.99895299, 0.49315101],\
++[	-6.27261499, -0.00064904, 0.00039774, 7.27196595, 0.99801695, 0.99895321, 0.49315109],\
++[	-6.27261532, -0.00064891, 0.00039766, 7.27196641, 0.99801736, 0.99895343, 0.49315112],\
++[	-6.27261564, -0.00064877, 0.00039757, 7.27196687, 0.99801778, 0.99895365, 0.49315120],\
++[	-6.27261597, -0.00064864, 0.00039749, 7.27196733, 0.99801819, 0.99895387, 0.49315122],\
++[	-6.27261629, -0.00064850, 0.00039741, 7.27196779, 0.99801861, 0.99895409, 0.49315129],\
++[	-6.27261662, -0.00064836, 0.00039732, 7.27196825, 0.99801902, 0.99895431, 0.49315134],\
++[	-6.27261694, -0.00064823, 0.00039724, 7.27196871, 0.99801944, 0.99895453, 0.49315136],\
++[	-6.27261727, -0.00064809, 0.00039716, 7.27196917, 0.99801985, 0.99895475, 0.49315141],\
++[	-6.27261759, -0.00064796, 0.00039707, 7.27196963, 0.99802027, 0.99895497, 0.49315149],\
++[	-6.27261792, -0.00064782, 0.00039699, 7.27197009, 0.99802068, 0.99895519, 0.49315153],\
++[	-6.27261824, -0.00064769, 0.00039691, 7.27197056, 0.99802110, 0.99895540, 0.49315156],\
++[	-6.27261857, -0.00064755, 0.00039683, 7.27197101, 0.99802151, 0.99895562, 0.49315162],\
++[	-6.27261889, -0.00064742, 0.00039674, 7.27197147, 0.99802193, 0.99895584, 0.49315167],\
++[	-6.27261921, -0.00064728, 0.00039666, 7.27197193, 0.99802234, 0.99895606, 0.49315173],\
++[	-6.27261954, -0.00064715, 0.00039658, 7.27197239, 0.99802275, 0.99895628, 0.49315176],\
++[	-6.27261986, -0.00064701, 0.00039649, 7.27197285, 0.99802317, 0.99895650, 0.49315180],\
++[	-6.27262019, -0.00064687, 0.00039641, 7.27197331, 0.99802358, 0.99895671, 0.49315186],\
++[	-6.27262051, -0.00064674, 0.00039633, 7.27197377, 0.99802399, 0.99895693, 0.49315191],\
++[	-6.27262083, -0.00064660, 0.00039624, 7.27197423, 0.99802441, 0.99895715, 0.49315198],\
++[	-6.27262116, -0.00064647, 0.00039616, 7.27197469, 0.99802482, 0.99895737, 0.49315200],\
++[	-6.27262148, -0.00064633, 0.00039608, 7.27197515, 0.99802523, 0.99895759, 0.49315204],\
++[	-6.27262180, -0.00064620, 0.00039600, 7.27197560, 0.99802564, 0.99895780, 0.49315211],\
++[	-6.27262213, -0.00064606, 0.00039591, 7.27197606, 0.99802606, 0.99895802, 0.49315216],\
++[	-6.27262245, -0.00064593, 0.00039583, 7.27197652, 0.99802647, 0.99895824, 0.49315219],\
++[	-6.27262277, -0.00064579, 0.00039575, 7.27197698, 0.99802688, 0.99895846, 0.49315225],\
++[	-6.27262309, -0.00064566, 0.00039567, 7.27197743, 0.99802729, 0.99895867, 0.49315226],\
++[	-6.27262342, -0.00064553, 0.00039558, 7.27197789, 0.99802770, 0.99895889, 0.49315233],\
++[	-6.27262374, -0.00064539, 0.00039550, 7.27197835, 0.99802812, 0.99895911, 0.49315238],\
++[	-6.27262406, -0.00064526, 0.00039542, 7.27197880, 0.99802853, 0.99895933, 0.49315244],\
++[	-6.27262438, -0.00064512, 0.00039534, 7.27197926, 0.99802894, 0.99895954, 0.49315248],\
++[	-6.27262470, -0.00064499, 0.00039525, 7.27197972, 0.99802935, 0.99895976, 0.49315254],\
++[	-6.27262503, -0.00064485, 0.00039517, 7.27198017, 0.99802976, 0.99895998, 0.49315255],\
++[	-6.27262535, -0.00064472, 0.00039509, 7.27198063, 0.99803017, 0.99896019, 0.49315260],\
++[	-6.27262567, -0.00064458, 0.00039501, 7.27198108, 0.99803058, 0.99896041, 0.49315266],\
++[	-6.27262599, -0.00064445, 0.00039492, 7.27198154, 0.99803099, 0.99896063, 0.49315272],\
++[	-6.27262631, -0.00064432, 0.00039484, 7.27198199, 0.99803140, 0.99896084, 0.49315276],\
++[	-6.27262663, -0.00064418, 0.00039476, 7.27198245, 0.99803181, 0.99896106, 0.49315283],\
++[	-6.27262695, -0.00064405, 0.00039468, 7.27198290, 0.99803222, 0.99896127, 0.49315287],\
++[	-6.27262727, -0.00064391, 0.00039460, 7.27198336, 0.99803263, 0.99896149, 0.49315291],\
++[	-6.27262759, -0.00064378, 0.00039451, 7.27198381, 0.99803304, 0.99896171, 0.49315298],\
++[	-6.27262792, -0.00064365, 0.00039443, 7.27198427, 0.99803345, 0.99896192, 0.49315301],\
++[	-6.27262824, -0.00064351, 0.00039435, 7.27198472, 0.99803386, 0.99896214, 0.49315305],\
++[	-6.27262856, -0.00064338, 0.00039427, 7.27198518, 0.99803427, 0.99896235, 0.49315310],\
++[	-6.27262888, -0.00064325, 0.00039418, 7.27198563, 0.99803468, 0.99896257, 0.49315315],\
++[	-6.27262920, -0.00064311, 0.00039410, 7.27198608, 0.99803508, 0.99896279, 0.49315320],\
++[	-6.27262952, -0.00064298, 0.00039402, 7.27198654, 0.99803549, 0.99896300, 0.49315324],\
++[	-6.27262984, -0.00064284, 0.00039394, 7.27198699, 0.99803590, 0.99896322, 0.49315329],\
++[	-6.27263015, -0.00064271, 0.00039386, 7.27198744, 0.99803631, 0.99896343, 0.49315335],\
++[	-6.27263047, -0.00064258, 0.00039378, 7.27198790, 0.99803672, 0.99896365, 0.49315341],\
++[	-6.27263079, -0.00064244, 0.00039369, 7.27198835, 0.99803712, 0.99896386, 0.49315341],\
++[	-6.27263111, -0.00064231, 0.00039361, 7.27198880, 0.99803753, 0.99896408, 0.49315348],\
++[	-6.27263143, -0.00064218, 0.00039353, 7.27198925, 0.99803794, 0.99896429, 0.49315355],\
++[	-6.27263175, -0.00064204, 0.00039345, 7.27198971, 0.99803835, 0.99896451, 0.49315360],\
++[	-6.27263207, -0.00064191, 0.00039337, 7.27199016, 0.99803875, 0.99896472, 0.49315362],\
++[	-6.27263239, -0.00064178, 0.00039329, 7.27199061, 0.99803916, 0.99896494, 0.49315366],\
++[	-6.27263271, -0.00064165, 0.00039320, 7.27199106, 0.99803957, 0.99896515, 0.49315370],\
++[	-6.27263302, -0.00064151, 0.00039312, 7.27199151, 0.99803997, 0.99896537, 0.49315378],\
++[	-6.27263334, -0.00064138, 0.00039304, 7.27199196, 0.99804038, 0.99896558, 0.49315382],\
++[	-6.27263366, -0.00064125, 0.00039296, 7.27199241, 0.99804079, 0.99896579, 0.49315384],\
++[	-6.27263398, -0.00064111, 0.00039288, 7.27199287, 0.99804119, 0.99896601, 0.49315390],\
++[	-6.27263430, -0.00064098, 0.00039280, 7.27199332, 0.99804160, 0.99896622, 0.49315398],\
++[	-6.27263461, -0.00064085, 0.00039271, 7.27199377, 0.99804200, 0.99896644, 0.49315398],\
++[	-6.27263493, -0.00064072, 0.00039263, 7.27199422, 0.99804241, 0.99896665, 0.49315402],\
++[	-6.27263525, -0.00064058, 0.00039255, 7.27199467, 0.99804281, 0.99896686, 0.49315410],\
++[	-6.27263557, -0.00064045, 0.00039247, 7.27199512, 0.99804322, 0.99896708, 0.49315415],\
++[	-6.27263588, -0.00064032, 0.00039239, 7.27199557, 0.99804362, 0.99896729, 0.49315420],\
++[	-6.27263620, -0.00064019, 0.00039231, 7.27199602, 0.99804403, 0.99896751, 0.49315423],\
++[	-6.27263652, -0.00064005, 0.00039223, 7.27199646, 0.99804443, 0.99896772, 0.49315429],\
++[	-6.27263683, -0.00063992, 0.00039215, 7.27199691, 0.99804484, 0.99896793, 0.49315433],\
++[	-6.27263715, -0.00063979, 0.00039206, 7.27199736, 0.99804524, 0.99896815, 0.49315438],\
++[	-6.27263747, -0.00063966, 0.00039198, 7.27199781, 0.99804565, 0.99896836, 0.49315441],\
++[	-6.27263778, -0.00063952, 0.00039190, 7.27199826, 0.99804605, 0.99896857, 0.49315445],\
++[	-6.27263810, -0.00063939, 0.00039182, 7.27199871, 0.99804645, 0.99896879, 0.49315452],\
++[	-6.27263842, -0.00063926, 0.00039174, 7.27199916, 0.99804686, 0.99896900, 0.49315453],\
++[	-6.27263873, -0.00063913, 0.00039166, 7.27199960, 0.99804726, 0.99896921, 0.49315461],\
++[	-6.27263905, -0.00063900, 0.00039158, 7.27200005, 0.99804766, 0.99896942, 0.49315465],\
++[	-6.27263936, -0.00063886, 0.00039150, 7.27200050, 0.99804807, 0.99896964, 0.49315471],\
++[	-6.27263968, -0.00063873, 0.00039142, 7.27200095, 0.99804847, 0.99896985, 0.49315476],\
++[	-6.27263999, -0.00063860, 0.00039134, 7.27200139, 0.99804887, 0.99897006, 0.49315480],\
++[	-6.27264031, -0.00063847, 0.00039126, 7.27200184, 0.99804928, 0.99897028, 0.49315486],\
++[	-6.27264063, -0.00063834, 0.00039117, 7.27200229, 0.99804968, 0.99897049, 0.49315489],\
++[	-6.27264094, -0.00063821, 0.00039109, 7.27200273, 0.99805008, 0.99897070, 0.49315491],\
++[	-6.27264126, -0.00063807, 0.00039101, 7.27200318, 0.99805048, 0.99897091, 0.49315503],\
++[	-6.27264157, -0.00063794, 0.00039093, 7.27200363, 0.99805088, 0.99897112, 0.49315504],\
++[	-6.27264188, -0.00063781, 0.00039085, 7.27200407, 0.99805129, 0.99897134, 0.49315507],\
++[	-6.27264220, -0.00063768, 0.00039077, 7.27200452, 0.99805169, 0.99897155, 0.49315512],\
++[	-6.27264251, -0.00063755, 0.00039069, 7.27200496, 0.99805209, 0.99897176, 0.49315517],\
++[	-6.27264283, -0.00063742, 0.00039061, 7.27200541, 0.99805249, 0.99897197, 0.49315521],\
++[	-6.27264314, -0.00063729, 0.00039053, 7.27200586, 0.99805289, 0.99897218, 0.49315529],\
++[	-6.27264346, -0.00063716, 0.00039045, 7.27200630, 0.99805329, 0.99897240, 0.49315533],\
++[	-6.27264377, -0.00063702, 0.00039037, 7.27200675, 0.99805369, 0.99897261, 0.49315538],\
++[	-6.27264408, -0.00063689, 0.00039029, 7.27200719, 0.99805409, 0.99897282, 0.49315540],\
++[	-6.27264440, -0.00063676, 0.00039021, 7.27200764, 0.99805450, 0.99897303, 0.49315545],\
++[	-6.27264471, -0.00063663, 0.00039013, 7.27200808, 0.99805490, 0.99897324, 0.49315550],\
++[	-6.27264502, -0.00063650, 0.00039005, 7.27200852, 0.99805530, 0.99897345, 0.49315556],\
++[	-6.27264534, -0.00063637, 0.00038997, 7.27200897, 0.99805570, 0.99897366, 0.49315563],\
++[	-6.27264565, -0.00063624, 0.00038989, 7.27200941, 0.99805610, 0.99897387, 0.49315563],\
++[	-6.27264596, -0.00063611, 0.00038981, 7.27200986, 0.99805649, 0.99897409, 0.49315568],\
++[	-6.27264628, -0.00063598, 0.00038973, 7.27201030, 0.99805689, 0.99897430, 0.49315572],\
++[	-6.27264659, -0.00063585, 0.00038965, 7.27201074, 0.99805729, 0.99897451, 0.49315579],\
++[	-6.27264690, -0.00063572, 0.00038957, 7.27201119, 0.99805769, 0.99897472, 0.49315582],\
++[	-6.27264721, -0.00063559, 0.00038949, 7.27201163, 0.99805809, 0.99897493, 0.49315589],\
++[	-6.27264753, -0.00063545, 0.00038941, 7.27201207, 0.99805849, 0.99897514, 0.49315595],\
++[	-6.27264784, -0.00063532, 0.00038933, 7.27201251, 0.99805889, 0.99897535, 0.49315600],\
++[	-6.27264815, -0.00063519, 0.00038925, 7.27201296, 0.99805929, 0.99897556, 0.49315603],\
++[	-6.27264846, -0.00063506, 0.00038917, 7.27201340, 0.99805969, 0.99897577, 0.49315606],\
++[	-6.27264877, -0.00063493, 0.00038909, 7.27201384, 0.99806008, 0.99897598, 0.49315609],\
++[	-6.27264909, -0.00063480, 0.00038901, 7.27201428, 0.99806048, 0.99897619, 0.49315614],\
++[	-6.27264940, -0.00063467, 0.00038893, 7.27201472, 0.99806088, 0.99897640, 0.49315621],\
++[	-6.27264971, -0.00063454, 0.00038885, 7.27201517, 0.99806128, 0.99897661, 0.49315622],\
++[	-6.27265002, -0.00063441, 0.00038877, 7.27201561, 0.99806168, 0.99897682, 0.49315632],\
++[	-6.27265033, -0.00063428, 0.00038869, 7.27201605, 0.99806207, 0.99897703, 0.49315636],\
++[	-6.27265064, -0.00063415, 0.00038861, 7.27201649, 0.99806247, 0.99897724, 0.49315639],\
++[	-6.27265095, -0.00063402, 0.00038853, 7.27201693, 0.99806287, 0.99897745, 0.49315644],\
++[	-6.27265126, -0.00063389, 0.00038845, 7.27201737, 0.99806326, 0.99897766, 0.49315648],\
++[	-6.27265157, -0.00063376, 0.00038837, 7.27201781, 0.99806366, 0.99897787, 0.49315654],\
++[	-6.27265189, -0.00063363, 0.00038829, 7.27201825, 0.99806406, 0.99897808, 0.49315656],\
++[	-6.27265220, -0.00063350, 0.00038821, 7.27201869, 0.99806445, 0.99897829, 0.49315663],\
++[	-6.27265251, -0.00063337, 0.00038813, 7.27201913, 0.99806485, 0.99897849, 0.49315664],\
++[	-6.27265282, -0.00063324, 0.00038805, 7.27201957, 0.99806525, 0.99897870, 0.49315672],\
++[	-6.27265313, -0.00063312, 0.00038797, 7.27202001, 0.99806564, 0.99897891, 0.49315678],\
++[	-6.27265344, -0.00063299, 0.00038789, 7.27202045, 0.99806604, 0.99897912, 0.49315679],\
++[	-6.27265375, -0.00063286, 0.00038781, 7.27202089, 0.99806643, 0.99897933, 0.49315682],\
++[	-6.27265406, -0.00063273, 0.00038773, 7.27202133, 0.99806683, 0.99897954, 0.49315688],\
++[	-6.27265436, -0.00063260, 0.00038765, 7.27202177, 0.99806722, 0.99897975, 0.49315697],\
++[	-6.27265467, -0.00063247, 0.00038758, 7.27202221, 0.99806762, 0.99897996, 0.49315698],\
++[	-6.27265498, -0.00063234, 0.00038750, 7.27202264, 0.99806801, 0.99898016, 0.49315705],\
++[	-6.27265529, -0.00063221, 0.00038742, 7.27202308, 0.99806841, 0.99898037, 0.49315710],\
++[	-6.27265560, -0.00063208, 0.00038734, 7.27202352, 0.99806880, 0.99898058, 0.49315714],\
++[	-6.27265591, -0.00063195, 0.00038726, 7.27202396, 0.99806920, 0.99898079, 0.49315716],\
++[	-6.27265622, -0.00063182, 0.00038718, 7.27202440, 0.99806959, 0.99898100, 0.49315722],\
++[	-6.27265653, -0.00063169, 0.00038710, 7.27202483, 0.99806999, 0.99898121, 0.49315726],\
++[	-6.27265684, -0.00063157, 0.00038702, 7.27202527, 0.99807038, 0.99898141, 0.49315731],\
++[	-6.27265714, -0.00063144, 0.00038694, 7.27202571, 0.99807077, 0.99898162, 0.49315737],\
++[	-6.27265745, -0.00063131, 0.00038686, 7.27202614, 0.99807117, 0.99898183, 0.49315740],\
++[	-6.27265776, -0.00063118, 0.00038678, 7.27202658, 0.99807156, 0.99898204, 0.49315744],\
++[	-6.27265807, -0.00063105, 0.00038671, 7.27202702, 0.99807195, 0.99898224, 0.49315747],\
++[	-6.27265838, -0.00063092, 0.00038663, 7.27202745, 0.99807235, 0.99898245, 0.49315751],\
++[	-6.27265868, -0.00063079, 0.00038655, 7.27202789, 0.99807274, 0.99898266, 0.49315758],\
++[	-6.27265899, -0.00063066, 0.00038647, 7.27202833, 0.99807313, 0.99898287, 0.49315760],\
++[	-6.27265930, -0.00063054, 0.00038639, 7.27202876, 0.99807353, 0.99898307, 0.49315770],\
++[	-6.27265961, -0.00063041, 0.00038631, 7.27202920, 0.99807392, 0.99898328, 0.49315771],\
++[	-6.27265991, -0.00063028, 0.00038623, 7.27202963, 0.99807431, 0.99898349, 0.49315780],\
++[	-6.27266022, -0.00063015, 0.00038615, 7.27203007, 0.99807470, 0.99898369, 0.49315780],\
++[	-6.27266053, -0.00063002, 0.00038608, 7.27203051, 0.99807510, 0.99898390, 0.49315786],\
++[	-6.27266083, -0.00062989, 0.00038600, 7.27203094, 0.99807549, 0.99898411, 0.49315792],\
++[	-6.27266114, -0.00062977, 0.00038592, 7.27203138, 0.99807588, 0.99898432, 0.49315794],\
++[	-6.27266145, -0.00062964, 0.00038584, 7.27203181, 0.99807627, 0.99898452, 0.49315802],\
++[	-6.27266175, -0.00062951, 0.00038576, 7.27203224, 0.99807666, 0.99898473, 0.49315805],\
++[	-6.27266206, -0.00062938, 0.00038568, 7.27203268, 0.99807705, 0.99898493, 0.49315808],\
++[	-6.27266237, -0.00062925, 0.00038560, 7.27203311, 0.99807744, 0.99898514, 0.49315812],\
++[	-6.27266267, -0.00062913, 0.00038553, 7.27203355, 0.99807784, 0.99898535, 0.49315818],\
++[	-6.27266298, -0.00062900, 0.00038545, 7.27203398, 0.99807823, 0.99898555, 0.49315821],\
++[	-6.27266329, -0.00062887, 0.00038537, 7.27203441, 0.99807862, 0.99898576, 0.49315828],\
++[	-6.27266359, -0.00062874, 0.00038529, 7.27203485, 0.99807901, 0.99898597, 0.49315830],\
++[	-6.27266390, -0.00062862, 0.00038521, 7.27203528, 0.99807940, 0.99898617, 0.49315836],\
++[	-6.27266420, -0.00062849, 0.00038513, 7.27203571, 0.99807979, 0.99898638, 0.49315841],\
++[	-6.27266451, -0.00062836, 0.00038506, 7.27203615, 0.99808018, 0.99898658, 0.49315847],\
++[	-6.27266481, -0.00062823, 0.00038498, 7.27203658, 0.99808057, 0.99898679, 0.49315850],\
++[	-6.27266512, -0.00062811, 0.00038490, 7.27203701, 0.99808096, 0.99898700, 0.49315856],\
++[	-6.27266542, -0.00062798, 0.00038482, 7.27203744, 0.99808135, 0.99898720, 0.49315859],\
++[	-6.27266573, -0.00062785, 0.00038474, 7.27203788, 0.99808174, 0.99898741, 0.49315862],\
++[	-6.27266603, -0.00062772, 0.00038467, 7.27203831, 0.99808213, 0.99898761, 0.49315867],\
++[	-6.27266634, -0.00062760, 0.00038459, 7.27203874, 0.99808251, 0.99898782, 0.49315875],\
++[	-6.27266664, -0.00062747, 0.00038451, 7.27203917, 0.99808290, 0.99898802, 0.49315880],\
++[	-6.27266695, -0.00062734, 0.00038443, 7.27203960, 0.99808329, 0.99898823, 0.49315883],\
++[	-6.27266725, -0.00062721, 0.00038435, 7.27204004, 0.99808368, 0.99898843, 0.49315887],\
++[	-6.27266755, -0.00062709, 0.00038428, 7.27204047, 0.99808407, 0.99898864, 0.49315892],\
++[	-6.27266786, -0.00062696, 0.00038420, 7.27204090, 0.99808446, 0.99898884, 0.49315895],\
++[	-6.27266816, -0.00062683, 0.00038412, 7.27204133, 0.99808485, 0.99898905, 0.49315899],\
++[	-6.27266847, -0.00062671, 0.00038404, 7.27204176, 0.99808523, 0.99898925, 0.49315906],\
++[	-6.27266877, -0.00062658, 0.00038396, 7.27204219, 0.99808562, 0.99898946, 0.49315910],\
++[	-6.27266907, -0.00062645, 0.00038389, 7.27204262, 0.99808601, 0.99898966, 0.49315911],\
++[	-6.27266938, -0.00062633, 0.00038381, 7.27204305, 0.99808640, 0.99898987, 0.49315917],\
++[	-6.27266968, -0.00062620, 0.00038373, 7.27204348, 0.99808678, 0.99899007, 0.49315922],\
++[	-6.27266998, -0.00062607, 0.00038365, 7.27204391, 0.99808717, 0.99899027, 0.49315926],\
++[	-6.27267028, -0.00062595, 0.00038358, 7.27204434, 0.99808756, 0.99899048, 0.49315930],\
++[	-6.27267059, -0.00062582, 0.00038350, 7.27204477, 0.99808794, 0.99899068, 0.49315934],\
++[	-6.27267089, -0.00062569, 0.00038342, 7.27204520, 0.99808833, 0.99899089, 0.49315940],\
++[	-6.27267119, -0.00062557, 0.00038334, 7.27204563, 0.99808872, 0.99899109, 0.49315945],\
++[	-6.27267150, -0.00062544, 0.00038327, 7.27204606, 0.99808910, 0.99899129, 0.49315950],\
++[	-6.27267180, -0.00062531, 0.00038319, 7.27204648, 0.99808949, 0.99899150, 0.49315953],\
++[	-6.27267210, -0.00062519, 0.00038311, 7.27204691, 0.99808988, 0.99899170, 0.49315956],\
++[	-6.27267240, -0.00062506, 0.00038303, 7.27204734, 0.99809026, 0.99899191, 0.49315961],\
++[	-6.27267270, -0.00062494, 0.00038296, 7.27204777, 0.99809065, 0.99899211, 0.49315968],\
++[	-6.27267301, -0.00062481, 0.00038288, 7.27204820, 0.99809103, 0.99899231, 0.49315973],\
++[	-6.27267331, -0.00062468, 0.00038280, 7.27204863, 0.99809142, 0.99899252, 0.49315977],\
++[	-6.27267361, -0.00062456, 0.00038272, 7.27204905, 0.99809180, 0.99899272, 0.49315980],\
++[	-6.27267391, -0.00062443, 0.00038265, 7.27204948, 0.99809219, 0.99899292, 0.49315984],\
++[	-6.27267421, -0.00062431, 0.00038257, 7.27204991, 0.99809257, 0.99899313, 0.49315989],\
++[	-6.27267451, -0.00062418, 0.00038249, 7.27205033, 0.99809296, 0.99899333, 0.49315993],\
++[	-6.27267481, -0.00062405, 0.00038241, 7.27205076, 0.99809334, 0.99899353, 0.49315999],\
++[	-6.27267512, -0.00062393, 0.00038234, 7.27205119, 0.99809373, 0.99899373, 0.49316004],\
++[	-6.27267542, -0.00062380, 0.00038226, 7.27205162, 0.99809411, 0.99899394, 0.49316007],\
++[	-6.27267572, -0.00062368, 0.00038218, 7.27205204, 0.99809450, 0.99899414, 0.49316011],\
++[	-6.27267602, -0.00062355, 0.00038211, 7.27205247, 0.99809488, 0.99899434, 0.49316016],\
++[	-6.27267632, -0.00062342, 0.00038203, 7.27205289, 0.99809527, 0.99899455, 0.49316020],\
++[	-6.27267662, -0.00062330, 0.00038195, 7.27205332, 0.99809565, 0.99899475, 0.49316023],\
++[	-6.27267692, -0.00062317, 0.00038188, 7.27205375, 0.99809603, 0.99899495, 0.49316033],\
++[	-6.27267722, -0.00062305, 0.00038180, 7.27205417, 0.99809642, 0.99899515, 0.49316032],\
++[	-6.27267752, -0.00062292, 0.00038172, 7.27205460, 0.99809680, 0.99899536, 0.49316037],\
++[	-6.27267782, -0.00062280, 0.00038164, 7.27205502, 0.99809718, 0.99899556, 0.49316043],\
++[	-6.27267812, -0.00062267, 0.00038157, 7.27205545, 0.99809757, 0.99899576, 0.49316049],\
++[	-6.27267842, -0.00062255, 0.00038149, 7.27205587, 0.99809795, 0.99899596, 0.49316053],\
++[	-6.27267872, -0.00062242, 0.00038141, 7.27205630, 0.99809833, 0.99899616, 0.49316060],\
++[	-6.27267902, -0.00062230, 0.00038134, 7.27205672, 0.99809871, 0.99899637, 0.49316061],\
++[	-6.27267932, -0.00062217, 0.00038126, 7.27205715, 0.99809910, 0.99899657, 0.49316068],\
++[	-6.27267962, -0.00062205, 0.00038118, 7.27205757, 0.99809948, 0.99899677, 0.49316072],\
++[	-6.27267992, -0.00062192, 0.00038111, 7.27205799, 0.99809986, 0.99899697, 0.49316074],\
++[	-6.27268021, -0.00062180, 0.00038103, 7.27205842, 0.99810024, 0.99899717, 0.49316079],\
++[	-6.27268051, -0.00062167, 0.00038095, 7.27205884, 0.99810062, 0.99899737, 0.49316083],\
++[	-6.27268081, -0.00062155, 0.00038088, 7.27205927, 0.99810100, 0.99899757, 0.49316088],\
++[	-6.27268111, -0.00062142, 0.00038080, 7.27205969, 0.99810139, 0.99899778, 0.49316090],\
++[	-6.27268141, -0.00062130, 0.00038072, 7.27206011, 0.99810177, 0.99899798, 0.49316099],\
++[	-6.27268171, -0.00062117, 0.00038065, 7.27206053, 0.99810215, 0.99899818, 0.49316102],\
++[	-6.27268201, -0.00062105, 0.00038057, 7.27206096, 0.99810253, 0.99899838, 0.49316107],\
++[	-6.27268230, -0.00062092, 0.00038050, 7.27206138, 0.99810291, 0.99899858, 0.49316107],\
++[	-6.27268260, -0.00062080, 0.00038042, 7.27206180, 0.99810329, 0.99899878, 0.49316112],\
++[	-6.27268290, -0.00062067, 0.00038034, 7.27206223, 0.99810367, 0.99899898, 0.49316121],\
++[	-6.27268320, -0.00062055, 0.00038027, 7.27206265, 0.99810405, 0.99899918, 0.49316122],\
++[	-6.27268350, -0.00062043, 0.00038019, 7.27206307, 0.99810443, 0.99899938, 0.49316127],\
++[	-6.27268379, -0.00062030, 0.00038011, 7.27206349, 0.99810481, 0.99899958, 0.49316133],\
++[	-6.27268409, -0.00062018, 0.00038004, 7.27206391, 0.99810519, 0.99899978, 0.49316137],\
++[	-6.27268439, -0.00062005, 0.00037996, 7.27206433, 0.99810557, 0.99899999, 0.49316141],\
++[	-6.27268468, -0.00061993, 0.00037989, 7.27206476, 0.99810595, 0.99900019, 0.49316145],\
++[	-6.27268498, -0.00061980, 0.00037981, 7.27206518, 0.99810633, 0.99900039, 0.49316150],\
++[	-6.27268528, -0.00061968, 0.00037973, 7.27206560, 0.99810671, 0.99900059, 0.49316152],\
++[	-6.27268558, -0.00061956, 0.00037966, 7.27206602, 0.99810709, 0.99900079, 0.49316158],\
++[	-6.27268587, -0.00061943, 0.00037958, 7.27206644, 0.99810747, 0.99900099, 0.49316160],\
++[	-6.27268617, -0.00061931, 0.00037951, 7.27206686, 0.99810785, 0.99900119, 0.49316174],\
++[	-6.27268647, -0.00061919, 0.00037943, 7.27206728, 0.99810823, 0.99900139, 0.49316174],\
++[	-6.27268676, -0.00061906, 0.00037935, 7.27206770, 0.99810860, 0.99900159, 0.49316173],\
++[	-6.27268706, -0.00061894, 0.00037928, 7.27206812, 0.99810898, 0.99900179, 0.49316182],\
++[	-6.27268735, -0.00061881, 0.00037920, 7.27206854, 0.99810936, 0.99900198, 0.49316185],\
++[	-6.27268765, -0.00061869, 0.00037913, 7.27206896, 0.99810974, 0.99900218, 0.49316190],\
++[	-6.27268795, -0.00061857, 0.00037905, 7.27206938, 0.99811012, 0.99900238, 0.49316194],\
++[	-6.27268824, -0.00061844, 0.00037897, 7.27206980, 0.99811049, 0.99900258, 0.49316199],\
++[	-6.27268854, -0.00061832, 0.00037890, 7.27207022, 0.99811087, 0.99900278, 0.49316201],\
++[	-6.27268883, -0.00061820, 0.00037882, 7.27207064, 0.99811125, 0.99900298, 0.49316207],\
++[	-6.27268913, -0.00061807, 0.00037875, 7.27207106, 0.99811163, 0.99900318, 0.49316215],\
++[	-6.27268942, -0.00061795, 0.00037867, 7.27207147, 0.99811200, 0.99900338, 0.49316215],\
++[	-6.27268972, -0.00061783, 0.00037860, 7.27207189, 0.99811238, 0.99900358, 0.49316222],\
++[	-6.27269001, -0.00061770, 0.00037852, 7.27207231, 0.99811276, 0.99900378, 0.49316225],\
++[	-6.27269031, -0.00061758, 0.00037844, 7.27207273, 0.99811313, 0.99900398, 0.49316226],\
++[	-6.27269060, -0.00061746, 0.00037837, 7.27207315, 0.99811351, 0.99900418, 0.49316232],\
++[	-6.27269090, -0.00061733, 0.00037829, 7.27207356, 0.99811389, 0.99900437, 0.49316241],\
++[	-6.27269119, -0.00061721, 0.00037822, 7.27207398, 0.99811426, 0.99900457, 0.49316240],\
++[	-6.27269149, -0.00061709, 0.00037814, 7.27207440, 0.99811464, 0.99900477, 0.49316244],\
++[	-6.27269178, -0.00061696, 0.00037807, 7.27207482, 0.99811502, 0.99900497, 0.49316250],\
++[	-6.27269208, -0.00061684, 0.00037799, 7.27207523, 0.99811539, 0.99900517, 0.49316255],\
++[	-6.27269237, -0.00061672, 0.00037792, 7.27207565, 0.99811577, 0.99900537, 0.49316260],\
++[	-6.27269266, -0.00061660, 0.00037784, 7.27207607, 0.99811614, 0.99900556, 0.49316268],\
++[	-6.27269296, -0.00061647, 0.00037777, 7.27207648, 0.99811652, 0.99900576, 0.49316264],\
++[	-6.27269325, -0.00061635, 0.00037769, 7.27207690, 0.99811689, 0.99900596, 0.49316274],\
++[	-6.27269354, -0.00061623, 0.00037762, 7.27207732, 0.99811727, 0.99900616, 0.49316275],\
++[	-6.27269384, -0.00061610, 0.00037754, 7.27207773, 0.99811764, 0.99900636, 0.49316280],\
++[	-6.27269413, -0.00061598, 0.00037746, 7.27207815, 0.99811802, 0.99900655, 0.49316280],\
++[	-6.27269442, -0.00061586, 0.00037739, 7.27207857, 0.99811839, 0.99900675, 0.49316288],\
++[	-6.27269472, -0.00061574, 0.00037731, 7.27207898, 0.99811877, 0.99900695, 0.49316293],\
++[	-6.27269501, -0.00061561, 0.00037724, 7.27207940, 0.99811914, 0.99900715, 0.49316299],\
++[	-6.27269530, -0.00061549, 0.00037716, 7.27207981, 0.99811952, 0.99900734, 0.49316305],\
++[	-6.27269560, -0.00061537, 0.00037709, 7.27208023, 0.99811989, 0.99900754, 0.49316305],\
++[	-6.27269589, -0.00061525, 0.00037701, 7.27208064, 0.99812026, 0.99900774, 0.49316309],\
++[	-6.27269618, -0.00061512, 0.00037694, 7.27208106, 0.99812064, 0.99900794, 0.49316319],\
++[	-6.27269647, -0.00061500, 0.00037686, 7.27208147, 0.99812101, 0.99900813, 0.49316320],\
++[	-6.27269677, -0.00061488, 0.00037679, 7.27208189, 0.99812138, 0.99900833, 0.49316326],\
++[	-6.27269706, -0.00061476, 0.00037671, 7.27208230, 0.99812176, 0.99900853, 0.49316331],\
++[	-6.27269735, -0.00061464, 0.00037664, 7.27208271, 0.99812213, 0.99900872, 0.49316334],\
++[	-6.27269764, -0.00061451, 0.00037656, 7.27208313, 0.99812250, 0.99900892, 0.49316337],\
++[	-6.27269793, -0.00061439, 0.00037649, 7.27208354, 0.99812288, 0.99900912, 0.49316343],\
++[	-6.27269823, -0.00061427, 0.00037642, 7.27208396, 0.99812325, 0.99900931, 0.49316350],\
++[	-6.27269852, -0.00061415, 0.00037634, 7.27208437, 0.99812362, 0.99900951, 0.49316348],\
++[	-6.27269881, -0.00061403, 0.00037627, 7.27208478, 0.99812399, 0.99900971, 0.49316356],\
++[	-6.27269910, -0.00061390, 0.00037619, 7.27208520, 0.99812437, 0.99900990, 0.49316359],\
++[	-6.27269939, -0.00061378, 0.00037612, 7.27208561, 0.99812474, 0.99901010, 0.49316364],\
++[	-6.27269968, -0.00061366, 0.00037604, 7.27208602, 0.99812511, 0.99901030, 0.49316368],\
++[	-6.27269997, -0.00061354, 0.00037597, 7.27208643, 0.99812548, 0.99901049, 0.49316372],\
++[	-6.27270027, -0.00061342, 0.00037589, 7.27208685, 0.99812585, 0.99901069, 0.49316379],\
++[	-6.27270056, -0.00061330, 0.00037582, 7.27208726, 0.99812623, 0.99901089, 0.49316380],\
++[	-6.27270085, -0.00061318, 0.00037574, 7.27208767, 0.99812660, 0.99901108, 0.49316383],\
++[	-6.27270114, -0.00061305, 0.00037567, 7.27208808, 0.99812697, 0.99901128, 0.49316392],\
++[	-6.27270143, -0.00061293, 0.00037559, 7.27208850, 0.99812734, 0.99901147, 0.49316393],\
++[	-6.27270172, -0.00061281, 0.00037552, 7.27208891, 0.99812771, 0.99901167, 0.49316398],\
++[	-6.27270201, -0.00061269, 0.00037545, 7.27208932, 0.99812808, 0.99901186, 0.49316403],\
++[	-6.27270230, -0.00061257, 0.00037537, 7.27208973, 0.99812845, 0.99901206, 0.49316407],\
++[	-6.27270259, -0.00061245, 0.00037530, 7.27209014, 0.99812882, 0.99901226, 0.49316411],\
++[	-6.27270288, -0.00061233, 0.00037522, 7.27209055, 0.99812919, 0.99901245, 0.49316419],\
++[	-6.27270317, -0.00061221, 0.00037515, 7.27209096, 0.99812956, 0.99901265, 0.49316420],\
++[	-6.27270346, -0.00061208, 0.00037507, 7.27209137, 0.99812993, 0.99901284, 0.49316424],\
++[	-6.27270375, -0.00061196, 0.00037500, 7.27209178, 0.99813030, 0.99901304, 0.49316431],\
++[	-6.27270404, -0.00061184, 0.00037493, 7.27209219, 0.99813067, 0.99901323, 0.49316432],\
++[	-6.27270433, -0.00061172, 0.00037485, 7.27209260, 0.99813104, 0.99901343, 0.49316435],\
++[	-6.27270462, -0.00061160, 0.00037478, 7.27209301, 0.99813141, 0.99901362, 0.49316437],\
++[	-6.27270490, -0.00061148, 0.00037470, 7.27209342, 0.99813178, 0.99901382, 0.49316447],\
++[	-6.27270519, -0.00061136, 0.00037463, 7.27209383, 0.99813215, 0.99901401, 0.49316452],\
++[	-6.27270548, -0.00061124, 0.00037456, 7.27209424, 0.99813252, 0.99901421, 0.49316453],\
++[	-6.27270577, -0.00061112, 0.00037448, 7.27209465, 0.99813289, 0.99901440, 0.49316460],\
++[	-6.27270606, -0.00061100, 0.00037441, 7.27209506, 0.99813326, 0.99901460, 0.49316462],\
++[	-6.27270635, -0.00061088, 0.00037433, 7.27209547, 0.99813362, 0.99901479, 0.49316468],\
++[	-6.27270664, -0.00061076, 0.00037426, 7.27209588, 0.99813399, 0.99901498, 0.49316472],\
++[	-6.27270692, -0.00061064, 0.00037419, 7.27209629, 0.99813436, 0.99901518, 0.49316476],\
++[	-6.27270721, -0.00061051, 0.00037411, 7.27209670, 0.99813473, 0.99901537, 0.49316483],\
++[	-6.27270750, -0.00061039, 0.00037404, 7.27209711, 0.99813510, 0.99901557, 0.49316482],\
++[	-6.27270779, -0.00061027, 0.00037396, 7.27209751, 0.99813547, 0.99901576, 0.49316493],\
++[	-6.27270808, -0.00061015, 0.00037389, 7.27209792, 0.99813583, 0.99901596, 0.49316495],\
++[	-6.27270836, -0.00061003, 0.00037382, 7.27209833, 0.99813620, 0.99901615, 0.49316498],\
++[	-6.27270865, -0.00060991, 0.00037374, 7.27209874, 0.99813657, 0.99901634, 0.49316501],\
++[	-6.27270894, -0.00060979, 0.00037367, 7.27209915, 0.99813694, 0.99901654, 0.49316504],\
++[	-6.27270923, -0.00060967, 0.00037360, 7.27209955, 0.99813730, 0.99901673, 0.49316509],\
++[	-6.27270951, -0.00060955, 0.00037352, 7.27209996, 0.99813767, 0.99901692, 0.49316516],\
++[	-6.27270980, -0.00060943, 0.00037345, 7.27210037, 0.99813804, 0.99901712, 0.49316521],\
++[	-6.27271009, -0.00060931, 0.00037338, 7.27210078, 0.99813840, 0.99901731, 0.49316522],\
++[	-6.27271038, -0.00060919, 0.00037330, 7.27210118, 0.99813877, 0.99901751, 0.49316529],\
++[	-6.27271066, -0.00060907, 0.00037323, 7.27210159, 0.99813914, 0.99901770, 0.49316533],\
++[	-6.27271095, -0.00060895, 0.00037315, 7.27210200, 0.99813950, 0.99901789, 0.49316538],\
++[	-6.27271124, -0.00060883, 0.00037308, 7.27210240, 0.99813987, 0.99901808, 0.49316545],\
++[	-6.27271152, -0.00060871, 0.00037301, 7.27210281, 0.99814023, 0.99901828, 0.49316550],\
++[	-6.27271181, -0.00060859, 0.00037293, 7.27210321, 0.99814060, 0.99901847, 0.49316550],\
++[	-6.27271209, -0.00060847, 0.00037286, 7.27210362, 0.99814097, 0.99901866, 0.49316554],\
++[	-6.27271238, -0.00060836, 0.00037279, 7.27210403, 0.99814133, 0.99901886, 0.49316555],\
++[	-6.27271267, -0.00060824, 0.00037271, 7.27210443, 0.99814170, 0.99901905, 0.49316564],\
++[	-6.27271295, -0.00060812, 0.00037264, 7.27210484, 0.99814206, 0.99901924, 0.49316569],\
++[	-6.27271324, -0.00060800, 0.00037257, 7.27210524, 0.99814243, 0.99901944, 0.49316569],\
++[	-6.27271352, -0.00060788, 0.00037249, 7.27210565, 0.99814279, 0.99901963, 0.49316572],\
++[	-6.27271381, -0.00060776, 0.00037242, 7.27210605, 0.99814316, 0.99901982, 0.49316582],\
++[	-6.27271410, -0.00060764, 0.00037235, 7.27210646, 0.99814352, 0.99902001, 0.49316585],\
++[	-6.27271438, -0.00060752, 0.00037228, 7.27210686, 0.99814389, 0.99902021, 0.49316587],\
++[	-6.27271467, -0.00060740, 0.00037220, 7.27210727, 0.99814425, 0.99902040, 0.49316592],\
++[	-6.27271495, -0.00060728, 0.00037213, 7.27210767, 0.99814461, 0.99902059, 0.49316598],\
++[	-6.27271524, -0.00060716, 0.00037206, 7.27210807, 0.99814498, 0.99902078, 0.49316599],\
++[	-6.27271552, -0.00060704, 0.00037198, 7.27210848, 0.99814534, 0.99902097, 0.49316604],\
++[	-6.27271581, -0.00060692, 0.00037191, 7.27210888, 0.99814571, 0.99902117, 0.49316608],\
++[	-6.27271609, -0.00060680, 0.00037184, 7.27210929, 0.99814607, 0.99902136, 0.49316611],\
++[	-6.27271637, -0.00060669, 0.00037176, 7.27210969, 0.99814643, 0.99902155, 0.49316616],\
++[	-6.27271666, -0.00060657, 0.00037169, 7.27211009, 0.99814680, 0.99902174, 0.49316618],\
++[	-6.27271694, -0.00060645, 0.00037162, 7.27211050, 0.99814716, 0.99902193, 0.49316624],\
++[	-6.27271723, -0.00060633, 0.00037155, 7.27211090, 0.99814752, 0.99902213, 0.49316630],\
++[	-6.27271751, -0.00060621, 0.00037147, 7.27211130, 0.99814789, 0.99902232, 0.49316633],\
++[	-6.27271780, -0.00060609, 0.00037140, 7.27211170, 0.99814825, 0.99902251, 0.49316640],\
++[	-6.27271808, -0.00060597, 0.00037133, 7.27211211, 0.99814861, 0.99902270, 0.49316642],\
++[	-6.27271836, -0.00060585, 0.00037125, 7.27211251, 0.99814897, 0.99902289, 0.49316649],\
++[	-6.27271865, -0.00060574, 0.00037118, 7.27211291, 0.99814934, 0.99902308, 0.49316653],\
++[	-6.27271893, -0.00060562, 0.00037111, 7.27211331, 0.99814970, 0.99902327, 0.49316657],\
++[	-6.27271921, -0.00060550, 0.00037104, 7.27211371, 0.99815006, 0.99902346, 0.49316659],\
++[	-6.27271950, -0.00060538, 0.00037096, 7.27211412, 0.99815042, 0.99902366, 0.49316664],\
++[	-6.27271978, -0.00060526, 0.00037089, 7.27211452, 0.99815079, 0.99902385, 0.49316670],\
++[	-6.27272006, -0.00060514, 0.00037082, 7.27211492, 0.99815115, 0.99902404, 0.49316670],\
++[	-6.27272035, -0.00060503, 0.00037075, 7.27211532, 0.99815151, 0.99902423, 0.49316673],\
++[	-6.27272063, -0.00060491, 0.00037067, 7.27211572, 0.99815187, 0.99902442, 0.49316679],\
++[	-6.27272091, -0.00060479, 0.00037060, 7.27211612, 0.99815223, 0.99902461, 0.49316685],\
++[	-6.27272120, -0.00060467, 0.00037053, 7.27211652, 0.99815259, 0.99902480, 0.49316688],\
++[	-6.27272148, -0.00060455, 0.00037046, 7.27211692, 0.99815295, 0.99902499, 0.49316692],\
++[	-6.27272176, -0.00060444, 0.00037038, 7.27211732, 0.99815331, 0.99902518, 0.49316699],\
++[	-6.27272204, -0.00060432, 0.00037031, 7.27211773, 0.99815367, 0.99902537, 0.49316698],\
++[	-6.27272232, -0.00060420, 0.00037024, 7.27211813, 0.99815404, 0.99902556, 0.49316707],\
++[	-6.27272261, -0.00060408, 0.00037017, 7.27211853, 0.99815440, 0.99902575, 0.49316710],\
++[	-6.27272289, -0.00060396, 0.00037009, 7.27211893, 0.99815476, 0.99902594, 0.49316715],\
++[	-6.27272317, -0.00060385, 0.00037002, 7.27211933, 0.99815512, 0.99902613, 0.49316718],\
++[	-6.27272345, -0.00060373, 0.00036995, 7.27211972, 0.99815548, 0.99902632, 0.49316722],\
++[	-6.27272373, -0.00060361, 0.00036988, 7.27212012, 0.99815584, 0.99902651, 0.49316726],\
++[	-6.27272402, -0.00060349, 0.00036981, 7.27212052, 0.99815620, 0.99902670, 0.49316729],\
++[	-6.27272430, -0.00060337, 0.00036973, 7.27212092, 0.99815656, 0.99902689, 0.49316735],\
++[	-6.27272458, -0.00060326, 0.00036966, 7.27212132, 0.99815691, 0.99902708, 0.49316741],\
++[	-6.27272486, -0.00060314, 0.00036959, 7.27212172, 0.99815727, 0.99902727, 0.49316741],\
++[	-6.27272514, -0.00060302, 0.00036952, 7.27212212, 0.99815763, 0.99902746, 0.49316748],\
++[	-6.27272542, -0.00060290, 0.00036945, 7.27212252, 0.99815799, 0.99902765, 0.49316753],\
++[	-6.27272570, -0.00060279, 0.00036937, 7.27212292, 0.99815835, 0.99902784, 0.49316756],\
++[	-6.27272598, -0.00060267, 0.00036930, 7.27212331, 0.99815871, 0.99902803, 0.49316761],\
++[	-6.27272626, -0.00060255, 0.00036923, 7.27212371, 0.99815907, 0.99902822, 0.49316767],\
++[	-6.27272654, -0.00060244, 0.00036916, 7.27212411, 0.99815943, 0.99902841, 0.49316768],\
++[	-6.27272683, -0.00060232, 0.00036909, 7.27212451, 0.99815978, 0.99902860, 0.49316772],\
++[	-6.27272711, -0.00060220, 0.00036901, 7.27212490, 0.99816014, 0.99902879, 0.49316778],\
++[	-6.27272739, -0.00060208, 0.00036894, 7.27212530, 0.99816050, 0.99902897, 0.49316778],\
++[	-6.27272767, -0.00060197, 0.00036887, 7.27212570, 0.99816086, 0.99902916, 0.49316783],\
++[	-6.27272795, -0.00060185, 0.00036880, 7.27212610, 0.99816122, 0.99902935, 0.49316788],\
++[	-6.27272823, -0.00060173, 0.00036873, 7.27212649, 0.99816157, 0.99902954, 0.49316787],\
++[	-6.27272851, -0.00060162, 0.00036865, 7.27212689, 0.99816193, 0.99902973, 0.49316799],\
++[	-6.27272879, -0.00060150, 0.00036858, 7.27212729, 0.99816229, 0.99902992, 0.49316801],\
++[	-6.27272907, -0.00060138, 0.00036851, 7.27212768, 0.99816265, 0.99903011, 0.49316805],\
++[	-6.27272934, -0.00060127, 0.00036844, 7.27212808, 0.99816300, 0.99903029, 0.49316810],\
++[	-6.27272962, -0.00060115, 0.00036837, 7.27212848, 0.99816336, 0.99903048, 0.49316812],\
++[	-6.27272990, -0.00060103, 0.00036830, 7.27212887, 0.99816372, 0.99903067, 0.49316815],\
++[	-6.27273018, -0.00060092, 0.00036823, 7.27212927, 0.99816407, 0.99903086, 0.49316824],\
++[	-6.27273046, -0.00060080, 0.00036815, 7.27212966, 0.99816443, 0.99903105, 0.49316825],\
++[	-6.27273074, -0.00060068, 0.00036808, 7.27213006, 0.99816479, 0.99903124, 0.49316832],\
++[	-6.27273102, -0.00060057, 0.00036801, 7.27213045, 0.99816514, 0.99903142, 0.49316835],\
++[	-6.27273130, -0.00060045, 0.00036794, 7.27213085, 0.99816550, 0.99903161, 0.49316839],\
++[	-6.27273158, -0.00060033, 0.00036787, 7.27213124, 0.99816585, 0.99903180, 0.49316844],\
++[	-6.27273186, -0.00060022, 0.00036780, 7.27213164, 0.99816621, 0.99903199, 0.49316848],\
++[	-6.27273213, -0.00060010, 0.00036773, 7.27213203, 0.99816657, 0.99903218, 0.49316850],\
++[	-6.27273241, -0.00059998, 0.00036765, 7.27213243, 0.99816692, 0.99903236, 0.49316856],\
++[	-6.27273269, -0.00059987, 0.00036758, 7.27213282, 0.99816728, 0.99903255, 0.49316861],\
++[	-6.27273297, -0.00059975, 0.00036751, 7.27213322, 0.99816763, 0.99903274, 0.49316864],\
++[	-6.27273325, -0.00059963, 0.00036744, 7.27213361, 0.99816799, 0.99903293, 0.49316869],\
++[	-6.27273352, -0.00059952, 0.00036737, 7.27213401, 0.99816834, 0.99903311, 0.49316872],\
++[	-6.27273380, -0.00059940, 0.00036730, 7.27213440, 0.99816870, 0.99903330, 0.49316876],\
++[	-6.27273408, -0.00059929, 0.00036723, 7.27213479, 0.99816905, 0.99903349, 0.49316877],\
++[	-6.27273436, -0.00059917, 0.00036716, 7.27213519, 0.99816941, 0.99903367, 0.49316887],\
++[	-6.27273463, -0.00059905, 0.00036708, 7.27213558, 0.99816976, 0.99903386, 0.49316888],\
++[	-6.27273491, -0.00059894, 0.00036701, 7.27213597, 0.99817012, 0.99903405, 0.49316895],\
++[	-6.27273519, -0.00059882, 0.00036694, 7.27213637, 0.99817047, 0.99903424, 0.49316897],\
++[	-6.27273547, -0.00059871, 0.00036687, 7.27213676, 0.99817082, 0.99903442, 0.49316901],\
++[	-6.27273574, -0.00059859, 0.00036680, 7.27213715, 0.99817118, 0.99903461, 0.49316906],\
++[	-6.27273602, -0.00059848, 0.00036673, 7.27213754, 0.99817153, 0.99903480, 0.49316911],\
++[	-6.27273630, -0.00059836, 0.00036666, 7.27213794, 0.99817189, 0.99903498, 0.49316913],\
++[	-6.27273657, -0.00059824, 0.00036659, 7.27213833, 0.99817224, 0.99903517, 0.49316914],\
++[	-6.27273685, -0.00059813, 0.00036652, 7.27213872, 0.99817259, 0.99903535, 0.49316924],\
++[	-6.27273713, -0.00059801, 0.00036645, 7.27213911, 0.99817295, 0.99903554, 0.49316926],\
++[	-6.27273740, -0.00059790, 0.00036637, 7.27213951, 0.99817330, 0.99903573, 0.49316930],\
++[	-6.27273768, -0.00059778, 0.00036630, 7.27213990, 0.99817365, 0.99903591, 0.49316938],\
++[	-6.27273796, -0.00059767, 0.00036623, 7.27214029, 0.99817400, 0.99903610, 0.49316938],\
++[	-6.27273823, -0.00059755, 0.00036616, 7.27214068, 0.99817436, 0.99903629, 0.49316938],\
++[	-6.27273851, -0.00059744, 0.00036609, 7.27214107, 0.99817471, 0.99903647, 0.49316946],\
++[	-6.27273878, -0.00059732, 0.00036602, 7.27214146, 0.99817506, 0.99903666, 0.49316948],\
++[	-6.27273906, -0.00059721, 0.00036595, 7.27214185, 0.99817541, 0.99903684, 0.49316954],\
++[	-6.27273933, -0.00059709, 0.00036588, 7.27214224, 0.99817577, 0.99903703, 0.49316961],\
++[	-6.27273961, -0.00059698, 0.00036581, 7.27214263, 0.99817612, 0.99903722, 0.49316964],\
++[	-6.27273989, -0.00059686, 0.00036574, 7.27214303, 0.99817647, 0.99903740, 0.49316966],\
++[	-6.27274016, -0.00059674, 0.00036567, 7.27214342, 0.99817682, 0.99903759, 0.49316973],\
++[	-6.27274044, -0.00059663, 0.00036560, 7.27214381, 0.99817717, 0.99903777, 0.49316976],\
++[	-6.27274071, -0.00059651, 0.00036553, 7.27214420, 0.99817752, 0.99903796, 0.49316978],\
++[	-6.27274099, -0.00059640, 0.00036546, 7.27214459, 0.99817788, 0.99903814, 0.49316985],\
++[	-6.27274126, -0.00059629, 0.00036539, 7.27214498, 0.99817823, 0.99903833, 0.49316985],\
++[	-6.27274154, -0.00059617, 0.00036532, 7.27214537, 0.99817858, 0.99903851, 0.49316990],\
++[	-6.27274181, -0.00059606, 0.00036525, 7.27214575, 0.99817893, 0.99903870, 0.49316996],\
++[	-6.27274208, -0.00059594, 0.00036517, 7.27214614, 0.99817928, 0.99903888, 0.49317001],\
++[	-6.27274236, -0.00059583, 0.00036510, 7.27214653, 0.99817963, 0.99903907, 0.49317000],\
++[	-6.27274263, -0.00059571, 0.00036503, 7.27214692, 0.99817998, 0.99903925, 0.49317004],\
++[	-6.27274291, -0.00059560, 0.00036496, 7.27214731, 0.99818033, 0.99903944, 0.49317008],\
++[	-6.27274318, -0.00059548, 0.00036489, 7.27214770, 0.99818068, 0.99903962, 0.49317014],\
++[	-6.27274346, -0.00059537, 0.00036482, 7.27214809, 0.99818103, 0.99903981, 0.49317022],\
++[	-6.27274373, -0.00059525, 0.00036475, 7.27214848, 0.99818138, 0.99903999, 0.49317024],\
++[	-6.27274400, -0.00059514, 0.00036468, 7.27214886, 0.99818173, 0.99904018, 0.49317029],\
++[	-6.27274428, -0.00059502, 0.00036461, 7.27214925, 0.99818208, 0.99904036, 0.49317032],\
++[	-6.27274455, -0.00059491, 0.00036454, 7.27214964, 0.99818243, 0.99904055, 0.49317037],\
++[	-6.27274482, -0.00059480, 0.00036447, 7.27215003, 0.99818278, 0.99904073, 0.49317042],\
++[	-6.27274510, -0.00059468, 0.00036440, 7.27215042, 0.99818313, 0.99904092, 0.49317048],\
++[	-6.27274537, -0.00059457, 0.00036433, 7.27215080, 0.99818348, 0.99904110, 0.49317047],\
++[	-6.27274564, -0.00059445, 0.00036426, 7.27215119, 0.99818383, 0.99904128, 0.49317056],\
++[	-6.27274592, -0.00059434, 0.00036419, 7.27215158, 0.99818418, 0.99904147, 0.49317055],\
++[	-6.27274619, -0.00059422, 0.00036412, 7.27215197, 0.99818452, 0.99904165, 0.49317062],\
++[	-6.27274646, -0.00059411, 0.00036405, 7.27215235, 0.99818487, 0.99904184, 0.49317064],\
++[	-6.27274674, -0.00059400, 0.00036398, 7.27215274, 0.99818522, 0.99904202, 0.49317066],\
++[	-6.27274701, -0.00059388, 0.00036391, 7.27215313, 0.99818557, 0.99904220, 0.49317073],\
++[	-6.27274728, -0.00059377, 0.00036384, 7.27215351, 0.99818592, 0.99904239, 0.49317076],\
++[	-6.27274755, -0.00059365, 0.00036377, 7.27215390, 0.99818627, 0.99904257, 0.49317082],\
++[	-6.27274783, -0.00059354, 0.00036370, 7.27215428, 0.99818661, 0.99904276, 0.49317086],\
++[	-6.27274810, -0.00059343, 0.00036363, 7.27215467, 0.99818696, 0.99904294, 0.49317091],\
++[	-6.27274837, -0.00059331, 0.00036356, 7.27215506, 0.99818731, 0.99904312, 0.49317096],\
++[	-6.27274864, -0.00059320, 0.00036349, 7.27215544, 0.99818766, 0.99904331, 0.49317092],\
++[	-6.27274891, -0.00059309, 0.00036342, 7.27215583, 0.99818800, 0.99904349, 0.49317097],\
++[	-6.27274919, -0.00059297, 0.00036335, 7.27215621, 0.99818835, 0.99904367, 0.49317108],\
++[	-6.27274946, -0.00059286, 0.00036329, 7.27215660, 0.99818870, 0.99904386, 0.49317108],\
++[	-6.27274973, -0.00059275, 0.00036322, 7.27215698, 0.99818905, 0.99904404, 0.49317113],\
++[	-6.27275000, -0.00059263, 0.00036315, 7.27215737, 0.99818939, 0.99904422, 0.49317119],\
++[	-6.27275027, -0.00059252, 0.00036308, 7.27215775, 0.99818974, 0.99904440, 0.49317125],\
++[	-6.27275054, -0.00059241, 0.00036301, 7.27215814, 0.99819009, 0.99904459, 0.49317124],\
++[	-6.27275081, -0.00059229, 0.00036294, 7.27215852, 0.99819043, 0.99904477, 0.49317130],\
++[	-6.27275109, -0.00059218, 0.00036287, 7.27215891, 0.99819078, 0.99904495, 0.49317131],\
++[	-6.27275136, -0.00059207, 0.00036280, 7.27215929, 0.99819113, 0.99904514, 0.49317136],\
++[	-6.27275163, -0.00059195, 0.00036273, 7.27215968, 0.99819147, 0.99904532, 0.49317137],\
++[	-6.27275190, -0.00059184, 0.00036266, 7.27216006, 0.99819182, 0.99904550, 0.49317148],\
++[	-6.27275217, -0.00059173, 0.00036259, 7.27216044, 0.99819216, 0.99904568, 0.49317152],\
++[	-6.27275244, -0.00059161, 0.00036252, 7.27216083, 0.99819251, 0.99904587, 0.49317157],\
++[	-6.27275271, -0.00059150, 0.00036245, 7.27216121, 0.99819285, 0.99904605, 0.49317157],\
++[	-6.27275298, -0.00059139, 0.00036238, 7.27216159, 0.99819320, 0.99904623, 0.49317163],\
++[	-6.27275325, -0.00059127, 0.00036231, 7.27216198, 0.99819355, 0.99904641, 0.49317168],\
++[	-6.27275352, -0.00059116, 0.00036224, 7.27216236, 0.99819389, 0.99904660, 0.49317166],\
++[	-6.27275379, -0.00059105, 0.00036217, 7.27216274, 0.99819424, 0.99904678, 0.49317177],\
++[	-6.27275406, -0.00059094, 0.00036211, 7.27216313, 0.99819458, 0.99904696, 0.49317179],\
++[	-6.27275433, -0.00059082, 0.00036204, 7.27216351, 0.99819493, 0.99904714, 0.49317185],\
++[	-6.27275460, -0.00059071, 0.00036197, 7.27216389, 0.99819527, 0.99904732, 0.49317189],\
++[	-6.27275487, -0.00059060, 0.00036190, 7.27216427, 0.99819561, 0.99904751, 0.49317188],\
++[	-6.27275514, -0.00059048, 0.00036183, 7.27216466, 0.99819596, 0.99904769, 0.49317197],\
++[	-6.27275541, -0.00059037, 0.00036176, 7.27216504, 0.99819630, 0.99904787, 0.49317199],\
++[	-6.27275568, -0.00059026, 0.00036169, 7.27216542, 0.99819665, 0.99904805, 0.49317206],\
++[	-6.27275595, -0.00059015, 0.00036162, 7.27216580, 0.99819699, 0.99904823, 0.49317206],\
++[	-6.27275622, -0.00059003, 0.00036155, 7.27216618, 0.99819733, 0.99904841, 0.49317210],\
++[	-6.27275649, -0.00058992, 0.00036148, 7.27216656, 0.99819768, 0.99904859, 0.49317215],\
++[	-6.27275675, -0.00058981, 0.00036141, 7.27216695, 0.99819802, 0.99904878, 0.49317218],\
++[	-6.27275702, -0.00058970, 0.00036135, 7.27216733, 0.99819837, 0.99904896, 0.49317220],\
++[	-6.27275729, -0.00058958, 0.00036128, 7.27216771, 0.99819871, 0.99904914, 0.49317224],\
++[	-6.27275756, -0.00058947, 0.00036121, 7.27216809, 0.99819905, 0.99904932, 0.49317231],\
++[	-6.27275783, -0.00058936, 0.00036114, 7.27216847, 0.99819939, 0.99904950, 0.49317228],\
++[	-6.27275810, -0.00058925, 0.00036107, 7.27216885, 0.99819974, 0.99904968, 0.49317238],\
++[	-6.27275837, -0.00058914, 0.00036100, 7.27216923, 0.99820008, 0.99904986, 0.49317241],\
++[	-6.27275863, -0.00058902, 0.00036093, 7.27216961, 0.99820042, 0.99905004, 0.49317245],\
++[	-6.27275890, -0.00058891, 0.00036086, 7.27216999, 0.99820077, 0.99905022, 0.49317253],\
++[	-6.27275917, -0.00058880, 0.00036080, 7.27217037, 0.99820111, 0.99905040, 0.49317256],\
++[	-6.27275944, -0.00058869, 0.00036073, 7.27217075, 0.99820145, 0.99905059, 0.49317260],\
++[	-6.27275971, -0.00058858, 0.00036066, 7.27217113, 0.99820179, 0.99905077, 0.49317263],\
++[	-6.27275997, -0.00058846, 0.00036059, 7.27217151, 0.99820213, 0.99905095, 0.49317270],\
++[	-6.27276024, -0.00058835, 0.00036052, 7.27217189, 0.99820248, 0.99905113, 0.49317272],\
++[	-6.27276051, -0.00058824, 0.00036045, 7.27217227, 0.99820282, 0.99905131, 0.49317275],\
++[	-6.27276078, -0.00058813, 0.00036038, 7.27217265, 0.99820316, 0.99905149, 0.49317277],\
++[	-6.27276104, -0.00058802, 0.00036032, 7.27217303, 0.99820350, 0.99905167, 0.49317281],\
++[	-6.27276131, -0.00058790, 0.00036025, 7.27217341, 0.99820384, 0.99905185, 0.49317287],\
++[	-6.27276158, -0.00058779, 0.00036018, 7.27217378, 0.99820418, 0.99905203, 0.49317289],\
++[	-6.27276184, -0.00058768, 0.00036011, 7.27217416, 0.99820453, 0.99905221, 0.49317299],\
++[	-6.27276211, -0.00058757, 0.00036004, 7.27217454, 0.99820487, 0.99905239, 0.49317296],\
++[	-6.27276238, -0.00058746, 0.00035997, 7.27217492, 0.99820521, 0.99905257, 0.49317302],\
++[	-6.27276265, -0.00058735, 0.00035991, 7.27217530, 0.99820555, 0.99905275, 0.49317307],\
++[	-6.27276291, -0.00058724, 0.00035984, 7.27217568, 0.99820589, 0.99905293, 0.49317310],\
++[	-6.27276318, -0.00058712, 0.00035977, 7.27217605, 0.99820623, 0.99905311, 0.49317316],\
++[	-6.27276344, -0.00058701, 0.00035970, 7.27217643, 0.99820657, 0.99905329, 0.49317319],\
++[	-6.27276371, -0.00058690, 0.00035963, 7.27217681, 0.99820691, 0.99905347, 0.49317321],\
++[	-6.27276398, -0.00058679, 0.00035956, 7.27217719, 0.99820725, 0.99905365, 0.49317328],\
++[	-6.27276424, -0.00058668, 0.00035950, 7.27217756, 0.99820759, 0.99905383, 0.49317329],\
++[	-6.27276451, -0.00058657, 0.00035943, 7.27217794, 0.99820793, 0.99905400, 0.49317335],\
++[	-6.27276478, -0.00058646, 0.00035936, 7.27217832, 0.99820827, 0.99905418, 0.49317337],\
++[	-6.27276504, -0.00058635, 0.00035929, 7.27217870, 0.99820861, 0.99905436, 0.49317339],\
++[	-6.27276531, -0.00058623, 0.00035922, 7.27217907, 0.99820895, 0.99905454, 0.49317346],\
++[	-6.27276557, -0.00058612, 0.00035916, 7.27217945, 0.99820929, 0.99905472, 0.49317350],\
++[	-6.27276584, -0.00058601, 0.00035909, 7.27217982, 0.99820963, 0.99905490, 0.49317354],\
++[	-6.27276610, -0.00058590, 0.00035902, 7.27218020, 0.99820997, 0.99905508, 0.49317358],\
++[	-6.27276637, -0.00058579, 0.00035895, 7.27218058, 0.99821030, 0.99905526, 0.49317361],\
++[	-6.27276663, -0.00058568, 0.00035888, 7.27218095, 0.99821064, 0.99905544, 0.49317361],\
++[	-6.27276690, -0.00058557, 0.00035882, 7.27218133, 0.99821098, 0.99905562, 0.49317370],\
++[	-6.27276716, -0.00058546, 0.00035875, 7.27218170, 0.99821132, 0.99905579, 0.49317372],\
++[	-6.27276743, -0.00058535, 0.00035868, 7.27218208, 0.99821166, 0.99905597, 0.49317378],\
++[	-6.27276769, -0.00058524, 0.00035861, 7.27218246, 0.99821200, 0.99905615, 0.49317376],\
++[	-6.27276796, -0.00058513, 0.00035854, 7.27218283, 0.99821233, 0.99905633, 0.49317387],\
++[	-6.27276822, -0.00058502, 0.00035848, 7.27218321, 0.99821267, 0.99905651, 0.49317387],\
++[	-6.27276849, -0.00058491, 0.00035841, 7.27218358, 0.99821301, 0.99905669, 0.49317394],\
++[	-6.27276875, -0.00058480, 0.00035834, 7.27218396, 0.99821335, 0.99905686, 0.49317397],\
++[	-6.27276902, -0.00058468, 0.00035827, 7.27218433, 0.99821369, 0.99905704, 0.49317398],\
++[	-6.27276928, -0.00058457, 0.00035820, 7.27218471, 0.99821402, 0.99905722, 0.49317402],\
++[	-6.27276954, -0.00058446, 0.00035814, 7.27218508, 0.99821436, 0.99905740, 0.49317408],\
++[	-6.27276981, -0.00058435, 0.00035807, 7.27218545, 0.99821470, 0.99905758, 0.49317410],\
++[	-6.27277007, -0.00058424, 0.00035800, 7.27218583, 0.99821504, 0.99905775, 0.49317417],\
++[	-6.27277034, -0.00058413, 0.00035793, 7.27218620, 0.99821537, 0.99905793, 0.49317422],\
++[	-6.27277060, -0.00058402, 0.00035787, 7.27218658, 0.99821571, 0.99905811, 0.49317425],\
++[	-6.27277086, -0.00058391, 0.00035780, 7.27218695, 0.99821605, 0.99905829, 0.49317429],\
++[	-6.27277113, -0.00058380, 0.00035773, 7.27218732, 0.99821638, 0.99905847, 0.49317428],\
++[	-6.27277139, -0.00058369, 0.00035766, 7.27218770, 0.99821672, 0.99905864, 0.49317437],\
++[	-6.27277165, -0.00058358, 0.00035760, 7.27218807, 0.99821706, 0.99905882, 0.49317446],\
++[	-6.27277192, -0.00058347, 0.00035753, 7.27218844, 0.99821739, 0.99905900, 0.49317445],\
++[	-6.27277218, -0.00058336, 0.00035746, 7.27218882, 0.99821773, 0.99905918, 0.49317449],\
++[	-6.27277244, -0.00058325, 0.00035739, 7.27218919, 0.99821806, 0.99905935, 0.49317453],\
++[	-6.27277270, -0.00058314, 0.00035733, 7.27218956, 0.99821840, 0.99905953, 0.49317457],\
++[	-6.27277297, -0.00058303, 0.00035726, 7.27218993, 0.99821874, 0.99905971, 0.49317458],\
++[	-6.27277323, -0.00058292, 0.00035719, 7.27219031, 0.99821907, 0.99905988, 0.49317467],\
++[	-6.27277349, -0.00058281, 0.00035712, 7.27219068, 0.99821941, 0.99906006, 0.49317464],\
++[	-6.27277376, -0.00058270, 0.00035706, 7.27219105, 0.99821974, 0.99906024, 0.49317472],\
++[	-6.27277402, -0.00058259, 0.00035699, 7.27219142, 0.99822008, 0.99906042, 0.49317476],\
++[	-6.27277428, -0.00058248, 0.00035692, 7.27219180, 0.99822041, 0.99906059, 0.49317478],\
++[	-6.27277454, -0.00058237, 0.00035686, 7.27219217, 0.99822075, 0.99906077, 0.49317481],\
++[	-6.27277480, -0.00058227, 0.00035679, 7.27219254, 0.99822108, 0.99906095, 0.49317486],\
++[	-6.27277507, -0.00058216, 0.00035672, 7.27219291, 0.99822142, 0.99906112, 0.49317492],\
++[	-6.27277533, -0.00058205, 0.00035665, 7.27219328, 0.99822175, 0.99906130, 0.49317497],\
++[	-6.27277559, -0.00058194, 0.00035659, 7.27219365, 0.99822209, 0.99906148, 0.49317500],\
++[	-6.27277585, -0.00058183, 0.00035652, 7.27219402, 0.99822242, 0.99906165, 0.49317504],\
++[	-6.27277611, -0.00058172, 0.00035645, 7.27219440, 0.99822275, 0.99906183, 0.49317502],\
++[	-6.27277637, -0.00058161, 0.00035639, 7.27219477, 0.99822309, 0.99906200, 0.49317510],\
++[	-6.27277664, -0.00058150, 0.00035632, 7.27219514, 0.99822342, 0.99906218, 0.49317515],\
++[	-6.27277690, -0.00058139, 0.00035625, 7.27219551, 0.99822376, 0.99906236, 0.49317515],\
++[	-6.27277716, -0.00058128, 0.00035619, 7.27219588, 0.99822409, 0.99906253, 0.49317527],\
++[	-6.27277742, -0.00058117, 0.00035612, 7.27219625, 0.99822442, 0.99906271, 0.49317521],\
++[	-6.27277768, -0.00058106, 0.00035605, 7.27219662, 0.99822476, 0.99906289, 0.49317533],\
++[	-6.27277794, -0.00058095, 0.00035598, 7.27219699, 0.99822509, 0.99906306, 0.49317536],\
++[	-6.27277820, -0.00058084, 0.00035592, 7.27219736, 0.99822542, 0.99906324, 0.49317532],\
++[	-6.27277846, -0.00058074, 0.00035585, 7.27219773, 0.99822576, 0.99906341, 0.49317542],\
++[	-6.27277872, -0.00058063, 0.00035578, 7.27219810, 0.99822609, 0.99906359, 0.49317544],\
++[	-6.27277898, -0.00058052, 0.00035572, 7.27219847, 0.99822642, 0.99906376, 0.49317549],\
++[	-6.27277924, -0.00058041, 0.00035565, 7.27219884, 0.99822675, 0.99906394, 0.49317552],\
++[	-6.27277950, -0.00058030, 0.00035558, 7.27219920, 0.99822709, 0.99906412, 0.49317558],\
++[	-6.27277977, -0.00058019, 0.00035552, 7.27219957, 0.99822742, 0.99906429, 0.49317562],\
++[	-6.27278003, -0.00058008, 0.00035545, 7.27219994, 0.99822775, 0.99906447, 0.49317566],\
++[	-6.27278029, -0.00057997, 0.00035538, 7.27220031, 0.99822808, 0.99906464, 0.49317568],\
++[	-6.27278055, -0.00057987, 0.00035532, 7.27220068, 0.99822842, 0.99906482, 0.49317573],\
++[	-6.27278080, -0.00057976, 0.00035525, 7.27220105, 0.99822875, 0.99906499, 0.49317574],\
++[	-6.27278106, -0.00057965, 0.00035518, 7.27220142, 0.99822908, 0.99906517, 0.49317581],\
++[	-6.27278132, -0.00057954, 0.00035512, 7.27220178, 0.99822941, 0.99906534, 0.49317584],\
++[	-6.27278158, -0.00057943, 0.00035505, 7.27220215, 0.99822974, 0.99906552, 0.49317591],\
++[	-6.27278184, -0.00057932, 0.00035498, 7.27220252, 0.99823008, 0.99906569, 0.49317591],\
++[	-6.27278210, -0.00057921, 0.00035492, 7.27220289, 0.99823041, 0.99906587, 0.49317595],\
++[	-6.27278236, -0.00057911, 0.00035485, 7.27220326, 0.99823074, 0.99906604, 0.49317597],\
++[	-6.27278262, -0.00057900, 0.00035479, 7.27220362, 0.99823107, 0.99906622, 0.49317601],\
++[	-6.27278288, -0.00057889, 0.00035472, 7.27220399, 0.99823140, 0.99906639, 0.49317609],\
++[	-6.27278314, -0.00057878, 0.00035465, 7.27220436, 0.99823173, 0.99906657, 0.49317610],\
++[	-6.27278340, -0.00057867, 0.00035459, 7.27220472, 0.99823206, 0.99906674, 0.49317615],\
++[	-6.27278366, -0.00057857, 0.00035452, 7.27220509, 0.99823239, 0.99906691, 0.49317621],\
++[	-6.27278392, -0.00057846, 0.00035445, 7.27220546, 0.99823272, 0.99906709, 0.49317622],\
++[	-6.27278417, -0.00057835, 0.00035439, 7.27220582, 0.99823305, 0.99906726, 0.49317632],\
++[	-6.27278443, -0.00057824, 0.00035432, 7.27220619, 0.99823338, 0.99906744, 0.49317629],\
++[	-6.27278469, -0.00057813, 0.00035425, 7.27220656, 0.99823371, 0.99906761, 0.49317636],\
++[	-6.27278495, -0.00057802, 0.00035419, 7.27220692, 0.99823404, 0.99906779, 0.49317638],\
++[	-6.27278521, -0.00057792, 0.00035412, 7.27220729, 0.99823437, 0.99906796, 0.49317641],\
++[	-6.27278547, -0.00057781, 0.00035406, 7.27220766, 0.99823470, 0.99906813, 0.49317644],\
++[	-6.27278572, -0.00057770, 0.00035399, 7.27220802, 0.99823503, 0.99906831, 0.49317646],\
++[	-6.27278598, -0.00057759, 0.00035392, 7.27220839, 0.99823536, 0.99906848, 0.49317651],\
++[	-6.27278624, -0.00057749, 0.00035386, 7.27220875, 0.99823569, 0.99906866, 0.49317654],\
++[	-6.27278650, -0.00057738, 0.00035379, 7.27220912, 0.99823602, 0.99906883, 0.49317660],\
++[	-6.27278675, -0.00057727, 0.00035373, 7.27220948, 0.99823635, 0.99906900, 0.49317666],\
++[	-6.27278701, -0.00057716, 0.00035366, 7.27220985, 0.99823668, 0.99906918, 0.49317668],\
++[	-6.27278727, -0.00057706, 0.00035359, 7.27221021, 0.99823701, 0.99906935, 0.49317676],\
++[	-6.27278753, -0.00057695, 0.00035353, 7.27221058, 0.99823734, 0.99906952, 0.49317676],\
++[	-6.27278778, -0.00057684, 0.00035346, 7.27221094, 0.99823766, 0.99906970, 0.49317678],\
++[	-6.27278804, -0.00057673, 0.00035340, 7.27221131, 0.99823799, 0.99906987, 0.49317683],\
++[	-6.27278830, -0.00057663, 0.00035333, 7.27221167, 0.99823832, 0.99907004, 0.49317687],\
++[	-6.27278855, -0.00057652, 0.00035326, 7.27221204, 0.99823865, 0.99907022, 0.49317691],\
++[	-6.27278881, -0.00057641, 0.00035320, 7.27221240, 0.99823898, 0.99907039, 0.49317697],\
++[	-6.27278907, -0.00057630, 0.00035313, 7.27221277, 0.99823931, 0.99907056, 0.49317699],\
++[	-6.27278933, -0.00057620, 0.00035307, 7.27221313, 0.99823963, 0.99907074, 0.49317702],\
++[	-6.27278958, -0.00057609, 0.00035300, 7.27221349, 0.99823996, 0.99907091, 0.49317708],\
++[	-6.27278984, -0.00057598, 0.00035294, 7.27221386, 0.99824029, 0.99907108, 0.49317710],\
++[	-6.27279009, -0.00057587, 0.00035287, 7.27221422, 0.99824062, 0.99907126, 0.49317717],\
++[	-6.27279035, -0.00057577, 0.00035280, 7.27221458, 0.99824094, 0.99907143, 0.49317720],\
++[	-6.27279061, -0.00057566, 0.00035274, 7.27221495, 0.99824127, 0.99907160, 0.49317720],\
++[	-6.27279086, -0.00057555, 0.00035267, 7.27221531, 0.99824160, 0.99907177, 0.49317727],\
++[	-6.27279112, -0.00057545, 0.00035261, 7.27221567, 0.99824193, 0.99907195, 0.49317735],\
++[	-6.27279137, -0.00057534, 0.00035254, 7.27221604, 0.99824225, 0.99907212, 0.49317732],\
++[	-6.27279163, -0.00057523, 0.00035248, 7.27221640, 0.99824258, 0.99907229, 0.49317739],\
++[	-6.27279189, -0.00057513, 0.00035241, 7.27221676, 0.99824291, 0.99907246, 0.49317738],\
++[	-6.27279214, -0.00057502, 0.00035235, 7.27221712, 0.99824323, 0.99907264, 0.49317745],\
++[	-6.27279240, -0.00057491, 0.00035228, 7.27221749, 0.99824356, 0.99907281, 0.49317748],\
++[	-6.27279265, -0.00057480, 0.00035221, 7.27221785, 0.99824389, 0.99907298, 0.49317752],\
++[	-6.27279291, -0.00057470, 0.00035215, 7.27221821, 0.99824421, 0.99907315, 0.49317757],\
++[	-6.27279316, -0.00057459, 0.00035208, 7.27221857, 0.99824454, 0.99907332, 0.49317760],\
++[	-6.27279342, -0.00057448, 0.00035202, 7.27221893, 0.99824486, 0.99907350, 0.49317764],\
++[	-6.27279367, -0.00057438, 0.00035195, 7.27221930, 0.99824519, 0.99907367, 0.49317766],\
++[	-6.27279393, -0.00057427, 0.00035189, 7.27221966, 0.99824551, 0.99907384, 0.49317770],\
++[	-6.27279418, -0.00057417, 0.00035182, 7.27222002, 0.99824584, 0.99907401, 0.49317777],\
++[	-6.27279444, -0.00057406, 0.00035176, 7.27222038, 0.99824617, 0.99907418, 0.49317774],\
++[	-6.27279469, -0.00057395, 0.00035169, 7.27222074, 0.99824649, 0.99907436, 0.49317781],\
++[	-6.27279495, -0.00057385, 0.00035163, 7.27222110, 0.99824682, 0.99907453, 0.49317792],\
++[	-6.27279520, -0.00057374, 0.00035156, 7.27222146, 0.99824714, 0.99907470, 0.49317788],\
++[	-6.27279546, -0.00057363, 0.00035150, 7.27222182, 0.99824747, 0.99907487, 0.49317793],\
++[	-6.27279571, -0.00057353, 0.00035143, 7.27222218, 0.99824779, 0.99907504, 0.49317800],\
++[	-6.27279596, -0.00057342, 0.00035137, 7.27222254, 0.99824812, 0.99907521, 0.49317798],\
++[	-6.27279622, -0.00057331, 0.00035130, 7.27222290, 0.99824844, 0.99907538, 0.49317810],\
++[	-6.27279647, -0.00057321, 0.00035124, 7.27222326, 0.99824877, 0.99907556, 0.49317811],\
++[	-6.27279673, -0.00057310, 0.00035117, 7.27222362, 0.99824909, 0.99907573, 0.49317808],\
++[	-6.27279698, -0.00057300, 0.00035111, 7.27222398, 0.99824941, 0.99907590, 0.49317818],\
++[	-6.27279723, -0.00057289, 0.00035104, 7.27222434, 0.99824974, 0.99907607, 0.49317820],\
++[	-6.27279749, -0.00057278, 0.00035098, 7.27222470, 0.99825006, 0.99907624, 0.49317824],\
++[	-6.27279774, -0.00057268, 0.00035091, 7.27222506, 0.99825039, 0.99907641, 0.49317828],\
++[	-6.27279799, -0.00057257, 0.00035085, 7.27222542, 0.99825071, 0.99907658, 0.49317828],\
++[	-6.27279825, -0.00057247, 0.00035078, 7.27222578, 0.99825103, 0.99907675, 0.49317836],\
++[	-6.27279850, -0.00057236, 0.00035072, 7.27222614, 0.99825136, 0.99907692, 0.49317841],\
++[	-6.27279875, -0.00057225, 0.00035065, 7.27222650, 0.99825168, 0.99907709, 0.49317844],\
++[	-6.27279901, -0.00057215, 0.00035059, 7.27222686, 0.99825200, 0.99907727, 0.49317846],\
++[	-6.27279926, -0.00057204, 0.00035052, 7.27222722, 0.99825233, 0.99907744, 0.49317853],\
++[	-6.27279951, -0.00057194, 0.00035046, 7.27222758, 0.99825265, 0.99907761, 0.49317855],\
++[	-6.27279977, -0.00057183, 0.00035039, 7.27222793, 0.99825297, 0.99907778, 0.49317862],\
++[	-6.27280002, -0.00057173, 0.00035033, 7.27222829, 0.99825330, 0.99907795, 0.49317862],\
++[	-6.27280027, -0.00057162, 0.00035026, 7.27222865, 0.99825362, 0.99907812, 0.49317865],\
++[	-6.27280052, -0.00057152, 0.00035020, 7.27222901, 0.99825394, 0.99907829, 0.49317872],\
++[	-6.27280078, -0.00057141, 0.00035013, 7.27222937, 0.99825426, 0.99907846, 0.49317874],\
++[	-6.27280103, -0.00057130, 0.00035007, 7.27222972, 0.99825459, 0.99907863, 0.49317875],\
++[	-6.27280128, -0.00057120, 0.00035000, 7.27223008, 0.99825491, 0.99907880, 0.49317879],\
++[	-6.27280153, -0.00057109, 0.00034994, 7.27223044, 0.99825523, 0.99907897, 0.49317885],\
++[	-6.27280178, -0.00057099, 0.00034987, 7.27223080, 0.99825555, 0.99907914, 0.49317886],\
++[	-6.27280204, -0.00057088, 0.00034981, 7.27223115, 0.99825587, 0.99907931, 0.49317891],\
++[	-6.27280229, -0.00057078, 0.00034974, 7.27223151, 0.99825620, 0.99907948, 0.49317896],\
++[	-6.27280254, -0.00057067, 0.00034968, 7.27223187, 0.99825652, 0.99907965, 0.49317901],\
++[	-6.27280279, -0.00057057, 0.00034962, 7.27223222, 0.99825684, 0.99907982, 0.49317904],\
++[	-6.27280304, -0.00057046, 0.00034955, 7.27223258, 0.99825716, 0.99907999, 0.49317904],\
++[	-6.27280329, -0.00057036, 0.00034949, 7.27223294, 0.99825748, 0.99908016, 0.49317910],\
++[	-6.27280355, -0.00057025, 0.00034942, 7.27223329, 0.99825780, 0.99908033, 0.49317919],\
++[	-6.27280380, -0.00057015, 0.00034936, 7.27223365, 0.99825812, 0.99908050, 0.49317919],\
++[	-6.27280405, -0.00057004, 0.00034929, 7.27223401, 0.99825844, 0.99908066, 0.49317919],\
++[	-6.27280430, -0.00056994, 0.00034923, 7.27223436, 0.99825877, 0.99908083, 0.49317929],\
++[	-6.27280455, -0.00056983, 0.00034916, 7.27223472, 0.99825909, 0.99908100, 0.49317932],\
++[	-6.27280480, -0.00056973, 0.00034910, 7.27223507, 0.99825941, 0.99908117, 0.49317933],\
++[	-6.27280505, -0.00056962, 0.00034904, 7.27223543, 0.99825973, 0.99908134, 0.49317936],\
++[	-6.27280530, -0.00056952, 0.00034897, 7.27223579, 0.99826005, 0.99908151, 0.49317942],\
++[	-6.27280555, -0.00056941, 0.00034891, 7.27223614, 0.99826037, 0.99908168, 0.49317941],\
++[	-6.27280580, -0.00056931, 0.00034884, 7.27223650, 0.99826069, 0.99908185, 0.49317944],\
++[	-6.27280606, -0.00056920, 0.00034878, 7.27223685, 0.99826101, 0.99908202, 0.49317951],\
++[	-6.27280631, -0.00056910, 0.00034872, 7.27223721, 0.99826133, 0.99908219, 0.49317958],\
++[	-6.27280656, -0.00056899, 0.00034865, 7.27223756, 0.99826165, 0.99908235, 0.49317962],\
++[	-6.27280681, -0.00056889, 0.00034859, 7.27223792, 0.99826197, 0.99908252, 0.49317961],\
++[	-6.27280706, -0.00056878, 0.00034852, 7.27223827, 0.99826229, 0.99908269, 0.49317963],\
++[	-6.27280731, -0.00056868, 0.00034846, 7.27223863, 0.99826261, 0.99908286, 0.49317970],\
++[	-6.27280756, -0.00056858, 0.00034839, 7.27223898, 0.99826293, 0.99908303, 0.49317974],\
++[	-6.27280781, -0.00056847, 0.00034833, 7.27223933, 0.99826324, 0.99908320, 0.49317978],\
++[	-6.27280806, -0.00056837, 0.00034827, 7.27223969, 0.99826356, 0.99908337, 0.49317977],\
++[	-6.27280830, -0.00056826, 0.00034820, 7.27224004, 0.99826388, 0.99908353, 0.49317984],\
++[	-6.27280855, -0.00056816, 0.00034814, 7.27224040, 0.99826420, 0.99908370, 0.49317991],\
++[	-6.27280880, -0.00056805, 0.00034807, 7.27224075, 0.99826452, 0.99908387, 0.49317993],\
++[	-6.27280905, -0.00056795, 0.00034801, 7.27224110, 0.99826484, 0.99908404, 0.49317997],\
++[	-6.27280930, -0.00056785, 0.00034795, 7.27224146, 0.99826516, 0.99908421, 0.49317999],\
++[	-6.27280955, -0.00056774, 0.00034788, 7.27224181, 0.99826547, 0.99908438, 0.49318004],\
++[	-6.27280980, -0.00056764, 0.00034782, 7.27224216, 0.99826579, 0.99908454, 0.49318009],\
++[	-6.27281005, -0.00056753, 0.00034776, 7.27224252, 0.99826611, 0.99908471, 0.49318013],\
++[	-6.27281030, -0.00056743, 0.00034769, 7.27224287, 0.99826643, 0.99908488, 0.49318014],\
++[	-6.27281055, -0.00056733, 0.00034763, 7.27224322, 0.99826675, 0.99908505, 0.49318020],\
++[	-6.27281080, -0.00056722, 0.00034756, 7.27224357, 0.99826706, 0.99908521, 0.49318023],\
++[	-6.27281104, -0.00056712, 0.00034750, 7.27224393, 0.99826738, 0.99908538, 0.49318021],\
++[	-6.27281129, -0.00056701, 0.00034744, 7.27224428, 0.99826770, 0.99908555, 0.49318033],\
++[	-6.27281154, -0.00056691, 0.00034737, 7.27224463, 0.99826802, 0.99908572, 0.49318033],\
++[	-6.27281179, -0.00056681, 0.00034731, 7.27224498, 0.99826833, 0.99908588, 0.49318036],\
++[	-6.27281204, -0.00056670, 0.00034725, 7.27224534, 0.99826865, 0.99908605, 0.49318042],\
++[	-6.27281229, -0.00056660, 0.00034718, 7.27224569, 0.99826897, 0.99908622, 0.49318046],\
++[	-6.27281253, -0.00056649, 0.00034712, 7.27224604, 0.99826929, 0.99908639, 0.49318048],\
++[	-6.27281278, -0.00056639, 0.00034706, 7.27224639, 0.99826960, 0.99908655, 0.49318053],\
++[	-6.27281303, -0.00056629, 0.00034699, 7.27224674, 0.99826992, 0.99908672, 0.49318056],\
++[	-6.27281328, -0.00056618, 0.00034693, 7.27224709, 0.99827024, 0.99908689, 0.49318059],\
++[	-6.27281353, -0.00056608, 0.00034686, 7.27224745, 0.99827055, 0.99908705, 0.49318066],\
++[	-6.27281377, -0.00056598, 0.00034680, 7.27224780, 0.99827087, 0.99908722, 0.49318067],\
++[	-6.27281402, -0.00056587, 0.00034674, 7.27224815, 0.99827119, 0.99908739, 0.49318073],\
++[	-6.27281427, -0.00056577, 0.00034667, 7.27224850, 0.99827150, 0.99908756, 0.49318072],\
++[	-6.27281452, -0.00056567, 0.00034661, 7.27224885, 0.99827182, 0.99908772, 0.49318077],\
++[	-6.27281476, -0.00056556, 0.00034655, 7.27224920, 0.99827213, 0.99908789, 0.49318079],\
++[	-6.27281501, -0.00056546, 0.00034648, 7.27224955, 0.99827245, 0.99908806, 0.49318086],\
++[	-6.27281526, -0.00056536, 0.00034642, 7.27224990, 0.99827276, 0.99908822, 0.49318086],\
++[	-6.27281550, -0.00056525, 0.00034636, 7.27225025, 0.99827308, 0.99908839, 0.49318091],\
++[	-6.27281575, -0.00056515, 0.00034629, 7.27225060, 0.99827340, 0.99908856, 0.49318093],\
++[	-6.27281600, -0.00056505, 0.00034623, 7.27225095, 0.99827371, 0.99908872, 0.49318097],\
++[	-6.27281624, -0.00056494, 0.00034617, 7.27225130, 0.99827403, 0.99908889, 0.49318102],\
++[	-6.27281649, -0.00056484, 0.00034610, 7.27225165, 0.99827434, 0.99908905, 0.49318109],\
++[	-6.27281674, -0.00056474, 0.00034604, 7.27225200, 0.99827466, 0.99908922, 0.49318111],\
++[	-6.27281698, -0.00056463, 0.00034598, 7.27225235, 0.99827497, 0.99908939, 0.49318114],\
++[	-6.27281723, -0.00056453, 0.00034592, 7.27225270, 0.99827529, 0.99908955, 0.49318118],\
++[	-6.27281748, -0.00056443, 0.00034585, 7.27225305, 0.99827560, 0.99908972, 0.49318122],\
++[	-6.27281772, -0.00056433, 0.00034579, 7.27225340, 0.99827591, 0.99908988, 0.49318124],\
++[	-6.27281797, -0.00056422, 0.00034573, 7.27225375, 0.99827623, 0.99909005, 0.49318128],\
++[	-6.27281822, -0.00056412, 0.00034566, 7.27225409, 0.99827654, 0.99909022, 0.49318131],\
++[	-6.27281846, -0.00056402, 0.00034560, 7.27225444, 0.99827686, 0.99909038, 0.49318135],\
++[	-6.27281871, -0.00056391, 0.00034554, 7.27225479, 0.99827717, 0.99909055, 0.49318140],\
++[	-6.27281895, -0.00056381, 0.00034547, 7.27225514, 0.99827749, 0.99909071, 0.49318139],\
++[	-6.27281920, -0.00056371, 0.00034541, 7.27225549, 0.99827780, 0.99909088, 0.49318148],\
++[	-6.27281944, -0.00056361, 0.00034535, 7.27225584, 0.99827811, 0.99909105, 0.49318152],\
++[	-6.27281969, -0.00056350, 0.00034528, 7.27225619, 0.99827843, 0.99909121, 0.49318156],\
++[	-6.27281993, -0.00056340, 0.00034522, 7.27225653, 0.99827874, 0.99909138, 0.49318159],\
++[	-6.27282018, -0.00056330, 0.00034516, 7.27225688, 0.99827905, 0.99909154, 0.49318163],\
++[	-6.27282043, -0.00056320, 0.00034510, 7.27225723, 0.99827937, 0.99909171, 0.49318166],\
++[	-6.27282067, -0.00056309, 0.00034503, 7.27225758, 0.99827968, 0.99909187, 0.49318168],\
++[	-6.27282092, -0.00056299, 0.00034497, 7.27225792, 0.99827999, 0.99909204, 0.49318179],\
++[	-6.27282116, -0.00056289, 0.00034491, 7.27225827, 0.99828031, 0.99909220, 0.49318171],\
++[	-6.27282141, -0.00056279, 0.00034485, 7.27225862, 0.99828062, 0.99909237, 0.49318177],\
++[	-6.27282165, -0.00056268, 0.00034478, 7.27225897, 0.99828093, 0.99909253, 0.49318188],\
++[	-6.27282189, -0.00056258, 0.00034472, 7.27225931, 0.99828124, 0.99909270, 0.49318185],\
++[	-6.27282214, -0.00056248, 0.00034466, 7.27225966, 0.99828156, 0.99909286, 0.49318190],\
++[	-6.27282238, -0.00056238, 0.00034459, 7.27226001, 0.99828187, 0.99909303, 0.49318196],\
++[	-6.27282263, -0.00056228, 0.00034453, 7.27226035, 0.99828218, 0.99909319, 0.49318197],\
++[	-6.27282287, -0.00056217, 0.00034447, 7.27226070, 0.99828249, 0.99909336, 0.49318203],\
++[	-6.27282312, -0.00056207, 0.00034441, 7.27226104, 0.99828281, 0.99909352, 0.49318204],\
++[	-6.27282336, -0.00056197, 0.00034434, 7.27226139, 0.99828312, 0.99909369, 0.49318210],\
++[	-6.27282360, -0.00056187, 0.00034428, 7.27226174, 0.99828343, 0.99909385, 0.49318213],\
++[	-6.27282385, -0.00056177, 0.00034422, 7.27226208, 0.99828374, 0.99909402, 0.49318217],\
++[	-6.27282409, -0.00056166, 0.00034416, 7.27226243, 0.99828405, 0.99909418, 0.49318219],\
++[	-6.27282434, -0.00056156, 0.00034409, 7.27226277, 0.99828436, 0.99909434, 0.49318217],\
++[	-6.27282458, -0.00056146, 0.00034403, 7.27226312, 0.99828467, 0.99909451, 0.49318229],\
++[	-6.27282482, -0.00056136, 0.00034397, 7.27226347, 0.99828499, 0.99909467, 0.49318235],\
++[	-6.27282507, -0.00056126, 0.00034391, 7.27226381, 0.99828530, 0.99909484, 0.49318234],\
++[	-6.27282531, -0.00056115, 0.00034384, 7.27226416, 0.99828561, 0.99909500, 0.49318238],\
++[	-6.27282555, -0.00056105, 0.00034378, 7.27226450, 0.99828592, 0.99909516, 0.49318244],\
++[	-6.27282580, -0.00056095, 0.00034372, 7.27226485, 0.99828623, 0.99909533, 0.49318245],\
++[	-6.27282604, -0.00056085, 0.00034366, 7.27226519, 0.99828654, 0.99909549, 0.49318251],\
++[	-6.27282628, -0.00056075, 0.00034360, 7.27226554, 0.99828685, 0.99909566, 0.49318249],\
++[	-6.27282653, -0.00056065, 0.00034353, 7.27226588, 0.99828716, 0.99909582, 0.49318260],\
++[	-6.27282677, -0.00056055, 0.00034347, 7.27226622, 0.99828747, 0.99909598, 0.49318256],\
++[	-6.27282701, -0.00056044, 0.00034341, 7.27226657, 0.99828778, 0.99909615, 0.49318268],\
++[	-6.27282725, -0.00056034, 0.00034335, 7.27226691, 0.99828809, 0.99909631, 0.49318269],\
++[	-6.27282750, -0.00056024, 0.00034328, 7.27226726, 0.99828840, 0.99909648, 0.49318273],\
++[	-6.27282774, -0.00056014, 0.00034322, 7.27226760, 0.99828871, 0.99909664, 0.49318276],\
++[	-6.27282798, -0.00056004, 0.00034316, 7.27226794, 0.99828902, 0.99909680, 0.49318278],\
++[	-6.27282822, -0.00055994, 0.00034310, 7.27226829, 0.99828933, 0.99909697, 0.49318281],\
++[	-6.27282847, -0.00055984, 0.00034304, 7.27226863, 0.99828964, 0.99909713, 0.49318285],\
++[	-6.27282871, -0.00055973, 0.00034297, 7.27226898, 0.99828995, 0.99909729, 0.49318289],\
++[	-6.27282895, -0.00055963, 0.00034291, 7.27226932, 0.99829026, 0.99909746, 0.49318294],\
++[	-6.27282919, -0.00055953, 0.00034285, 7.27226966, 0.99829057, 0.99909762, 0.49318296],\
++[	-6.27282944, -0.00055943, 0.00034279, 7.27227000, 0.99829088, 0.99909778, 0.49318295],\
++[	-6.27282968, -0.00055933, 0.00034273, 7.27227035, 0.99829119, 0.99909794, 0.49318302],\
++[	-6.27282992, -0.00055923, 0.00034266, 7.27227069, 0.99829150, 0.99909811, 0.49318310],\
++[	-6.27283016, -0.00055913, 0.00034260, 7.27227103, 0.99829180, 0.99909827, 0.49318311],\
++[	-6.27283040, -0.00055903, 0.00034254, 7.27227138, 0.99829211, 0.99909843, 0.49318314],\
++[	-6.27283064, -0.00055893, 0.00034248, 7.27227172, 0.99829242, 0.99909860, 0.49318318],\
++[	-6.27283089, -0.00055882, 0.00034242, 7.27227206, 0.99829273, 0.99909876, 0.49318320],\
++[	-6.27283113, -0.00055872, 0.00034235, 7.27227240, 0.99829304, 0.99909892, 0.49318320],\
++[	-6.27283137, -0.00055862, 0.00034229, 7.27227274, 0.99829335, 0.99909908, 0.49318327],\
++[	-6.27283161, -0.00055852, 0.00034223, 7.27227309, 0.99829365, 0.99909925, 0.49318333],\
++[	-6.27283185, -0.00055842, 0.00034217, 7.27227343, 0.99829396, 0.99909941, 0.49318333],\
++[	-6.27283209, -0.00055832, 0.00034211, 7.27227377, 0.99829427, 0.99909957, 0.49318336],\
++[	-6.27283233, -0.00055822, 0.00034204, 7.27227411, 0.99829458, 0.99909973, 0.49318343],\
++[	-6.27283257, -0.00055812, 0.00034198, 7.27227445, 0.99829489, 0.99909990, 0.49318344],\
++[	-6.27283281, -0.00055802, 0.00034192, 7.27227479, 0.99829519, 0.99910006, 0.49318351],\
++[	-6.27283305, -0.00055792, 0.00034186, 7.27227514, 0.99829550, 0.99910022, 0.49318353],\
++[	-6.27283329, -0.00055782, 0.00034180, 7.27227548, 0.99829581, 0.99910038, 0.49318358],\
++[	-6.27283353, -0.00055772, 0.00034174, 7.27227582, 0.99829611, 0.99910055, 0.49318362],\
++[	-6.27283378, -0.00055762, 0.00034168, 7.27227616, 0.99829642, 0.99910071, 0.49318360],\
++[	-6.27283402, -0.00055752, 0.00034161, 7.27227650, 0.99829673, 0.99910087, 0.49318367],\
++[	-6.27283426, -0.00055742, 0.00034155, 7.27227684, 0.99829704, 0.99910103, 0.49318371],\
++[	-6.27283450, -0.00055732, 0.00034149, 7.27227718, 0.99829734, 0.99910119, 0.49318374],\
++[	-6.27283474, -0.00055722, 0.00034143, 7.27227752, 0.99829765, 0.99910136, 0.49318380],\
++[	-6.27283498, -0.00055712, 0.00034137, 7.27227786, 0.99829796, 0.99910152, 0.49318376],\
++[	-6.27283522, -0.00055701, 0.00034131, 7.27227820, 0.99829826, 0.99910168, 0.49318386],\
++[	-6.27283546, -0.00055691, 0.00034124, 7.27227854, 0.99829857, 0.99910184, 0.49318389],\
++[	-6.27283570, -0.00055681, 0.00034118, 7.27227888, 0.99829887, 0.99910200, 0.49318390],\
++[	-6.27283593, -0.00055671, 0.00034112, 7.27227922, 0.99829918, 0.99910216, 0.49318396],\
++[	-6.27283617, -0.00055661, 0.00034106, 7.27227956, 0.99829949, 0.99910233, 0.49318401],\
++[	-6.27283641, -0.00055651, 0.00034100, 7.27227990, 0.99829979, 0.99910249, 0.49318410],\
++[	-6.27283665, -0.00055641, 0.00034094, 7.27228024, 0.99830010, 0.99910265, 0.49318407],\
++[	-6.27283689, -0.00055631, 0.00034088, 7.27228058, 0.99830040, 0.99910281, 0.49318407],\
++[	-6.27283713, -0.00055621, 0.00034081, 7.27228092, 0.99830071, 0.99910297, 0.49318414],\
++[	-6.27283737, -0.00055611, 0.00034075, 7.27228126, 0.99830101, 0.99910313, 0.49318415],\
++[	-6.27283761, -0.00055601, 0.00034069, 7.27228159, 0.99830132, 0.99910329, 0.49318423],\
++[	-6.27283785, -0.00055591, 0.00034063, 7.27228193, 0.99830163, 0.99910345, 0.49318423],\
++[	-6.27283809, -0.00055581, 0.00034057, 7.27228227, 0.99830193, 0.99910362, 0.49318427],\
++[	-6.27283833, -0.00055571, 0.00034051, 7.27228261, 0.99830224, 0.99910378, 0.49318428],\
++[	-6.27283856, -0.00055562, 0.00034045, 7.27228295, 0.99830254, 0.99910394, 0.49318433],\
++[	-6.27283880, -0.00055552, 0.00034039, 7.27228329, 0.99830285, 0.99910410, 0.49318443],\
++[	-6.27283904, -0.00055542, 0.00034033, 7.27228363, 0.99830315, 0.99910426, 0.49318443],\
++[	-6.27283928, -0.00055532, 0.00034026, 7.27228396, 0.99830345, 0.99910442, 0.49318449],\
++[	-6.27283952, -0.00055522, 0.00034020, 7.27228430, 0.99830376, 0.99910458, 0.49318449],\
++[	-6.27283976, -0.00055512, 0.00034014, 7.27228464, 0.99830406, 0.99910474, 0.49318454],\
++[	-6.27283999, -0.00055502, 0.00034008, 7.27228498, 0.99830437, 0.99910490, 0.49318457],\
++[	-6.27284023, -0.00055492, 0.00034002, 7.27228531, 0.99830467, 0.99910506, 0.49318459],\
++[	-6.27284047, -0.00055482, 0.00033996, 7.27228565, 0.99830498, 0.99910522, 0.49318460],\
++[	-6.27284071, -0.00055472, 0.00033990, 7.27228599, 0.99830528, 0.99910538, 0.49318465],\
++[	-6.27284095, -0.00055462, 0.00033984, 7.27228633, 0.99830558, 0.99910554, 0.49318472],\
++[	-6.27284118, -0.00055452, 0.00033978, 7.27228666, 0.99830589, 0.99910570, 0.49318477],\
++[	-6.27284142, -0.00055442, 0.00033972, 7.27228700, 0.99830619, 0.99910586, 0.49318479],\
++[	-6.27284166, -0.00055432, 0.00033965, 7.27228734, 0.99830649, 0.99910602, 0.49318483],\
++[	-6.27284190, -0.00055422, 0.00033959, 7.27228767, 0.99830680, 0.99910618, 0.49318487],\
++[	-6.27284213, -0.00055412, 0.00033953, 7.27228801, 0.99830710, 0.99910634, 0.49318489],\
++[	-6.27284237, -0.00055402, 0.00033947, 7.27228835, 0.99830740, 0.99910650, 0.49318490],\
++[	-6.27284261, -0.00055393, 0.00033941, 7.27228868, 0.99830771, 0.99910666, 0.49318496],\
++[	-6.27284285, -0.00055383, 0.00033935, 7.27228902, 0.99830801, 0.99910682, 0.49318499],\
++[	-6.27284308, -0.00055373, 0.00033929, 7.27228936, 0.99830831, 0.99910698, 0.49318499],\
++[	-6.27284332, -0.00055363, 0.00033923, 7.27228969, 0.99830861, 0.99910714, 0.49318509],\
++[	-6.27284356, -0.00055353, 0.00033917, 7.27229003, 0.99830892, 0.99910730, 0.49318511],\
++[	-6.27284379, -0.00055343, 0.00033911, 7.27229036, 0.99830922, 0.99910746, 0.49318515],\
++[	-6.27284403, -0.00055333, 0.00033905, 7.27229070, 0.99830952, 0.99910762, 0.49318516],\
++[	-6.27284427, -0.00055323, 0.00033899, 7.27229103, 0.99830982, 0.99910778, 0.49318524],\
++[	-6.27284450, -0.00055313, 0.00033893, 7.27229137, 0.99831013, 0.99910794, 0.49318524],\
++[	-6.27284474, -0.00055303, 0.00033887, 7.27229170, 0.99831043, 0.99910810, 0.49318528],\
++[	-6.27284498, -0.00055294, 0.00033880, 7.27229204, 0.99831073, 0.99910826, 0.49318529],\
++[	-6.27284521, -0.00055284, 0.00033874, 7.27229237, 0.99831103, 0.99910842, 0.49318533],\
++[	-6.27284545, -0.00055274, 0.00033868, 7.27229271, 0.99831133, 0.99910858, 0.49318539],\
++[	-6.27284568, -0.00055264, 0.00033862, 7.27229304, 0.99831164, 0.99910874, 0.49318542],\
++[	-6.27284592, -0.00055254, 0.00033856, 7.27229338, 0.99831194, 0.99910890, 0.49318543],\
++[	-6.27284616, -0.00055244, 0.00033850, 7.27229371, 0.99831224, 0.99910906, 0.49318547],\
++[	-6.27284639, -0.00055234, 0.00033844, 7.27229405, 0.99831254, 0.99910921, 0.49318555],\
++[	-6.27284663, -0.00055225, 0.00033838, 7.27229438, 0.99831284, 0.99910937, 0.49318557],\
++[	-6.27284686, -0.00055215, 0.00033832, 7.27229472, 0.99831314, 0.99910953, 0.49318561],\
++[	-6.27284710, -0.00055205, 0.00033826, 7.27229505, 0.99831344, 0.99910969, 0.49318565],\
++[	-6.27284733, -0.00055195, 0.00033820, 7.27229538, 0.99831374, 0.99910985, 0.49318570],\
++[	-6.27284757, -0.00055185, 0.00033814, 7.27229572, 0.99831404, 0.99911001, 0.49318569],\
++[	-6.27284781, -0.00055175, 0.00033808, 7.27229605, 0.99831435, 0.99911017, 0.49318574],\
++[	-6.27284804, -0.00055165, 0.00033802, 7.27229639, 0.99831465, 0.99911033, 0.49318575],\
++[	-6.27284828, -0.00055156, 0.00033796, 7.27229672, 0.99831495, 0.99911048, 0.49318581],\
++[	-6.27284851, -0.00055146, 0.00033790, 7.27229705, 0.99831525, 0.99911064, 0.49318582],\
++[	-6.27284875, -0.00055136, 0.00033784, 7.27229739, 0.99831555, 0.99911080, 0.49318586],\
++[	-6.27284898, -0.00055126, 0.00033778, 7.27229772, 0.99831585, 0.99911096, 0.49318588],\
++[	-6.27284922, -0.00055116, 0.00033772, 7.27229805, 0.99831615, 0.99911112, 0.49318595],\
++[	-6.27284945, -0.00055107, 0.00033766, 7.27229838, 0.99831645, 0.99911128, 0.49318599],\
++[	-6.27284968, -0.00055097, 0.00033760, 7.27229872, 0.99831675, 0.99911143, 0.49318604],\
++[	-6.27284992, -0.00055087, 0.00033754, 7.27229905, 0.99831705, 0.99911159, 0.49318604],\
++[	-6.27285015, -0.00055077, 0.00033748, 7.27229938, 0.99831735, 0.99911175, 0.49318612],\
++[	-6.27285039, -0.00055067, 0.00033742, 7.27229971, 0.99831765, 0.99911191, 0.49318613],\
++[	-6.27285062, -0.00055058, 0.00033736, 7.27230005, 0.99831794, 0.99911207, 0.49318622],\
++[	-6.27285086, -0.00055048, 0.00033730, 7.27230038, 0.99831824, 0.99911223, 0.49318623],\
++[	-6.27285109, -0.00055038, 0.00033724, 7.27230071, 0.99831854, 0.99911238, 0.49318626],\
++[	-6.27285133, -0.00055028, 0.00033718, 7.27230104, 0.99831884, 0.99911254, 0.49318626],\
++[	-6.27285156, -0.00055018, 0.00033712, 7.27230138, 0.99831914, 0.99911270, 0.49318628],\
++[	-6.27285179, -0.00055009, 0.00033706, 7.27230171, 0.99831944, 0.99911286, 0.49318633],\
++[	-6.27285203, -0.00054999, 0.00033700, 7.27230204, 0.99831974, 0.99911301, 0.49318637],\
++[	-6.27285226, -0.00054989, 0.00033694, 7.27230237, 0.99832004, 0.99911317, 0.49318637],\
++[	-6.27285249, -0.00054979, 0.00033688, 7.27230270, 0.99832034, 0.99911333, 0.49318644],\
++[	-6.27285273, -0.00054970, 0.00033682, 7.27230303, 0.99832063, 0.99911349, 0.49318645],\
++[	-6.27285296, -0.00054960, 0.00033676, 7.27230336, 0.99832093, 0.99911364, 0.49318646],\
++[	-6.27285319, -0.00054950, 0.00033670, 7.27230369, 0.99832123, 0.99911380, 0.49318651],\
++[	-6.27285343, -0.00054940, 0.00033664, 7.27230403, 0.99832153, 0.99911396, 0.49318650],\
++[	-6.27285366, -0.00054931, 0.00033658, 7.27230436, 0.99832183, 0.99911412, 0.49318659],\
++[	-6.27285389, -0.00054921, 0.00033652, 7.27230469, 0.99832212, 0.99911427, 0.49318666],\
++[	-6.27285413, -0.00054911, 0.00033646, 7.27230502, 0.99832242, 0.99911443, 0.49318665],\
++[	-6.27285436, -0.00054901, 0.00033640, 7.27230535, 0.99832272, 0.99911459, 0.49318670],\
++[	-6.27285459, -0.00054892, 0.00033634, 7.27230568, 0.99832302, 0.99911474, 0.49318673],\
++[	-6.27285483, -0.00054882, 0.00033628, 7.27230601, 0.99832332, 0.99911490, 0.49318677],\
++[	-6.27285506, -0.00054872, 0.00033622, 7.27230634, 0.99832361, 0.99911506, 0.49318685],\
++[	-6.27285529, -0.00054862, 0.00033616, 7.27230667, 0.99832391, 0.99911522, 0.49318683],\
++[	-6.27285552, -0.00054853, 0.00033610, 7.27230700, 0.99832421, 0.99911537, 0.49318692],\
++[	-6.27285576, -0.00054843, 0.00033604, 7.27230733, 0.99832450, 0.99911553, 0.49318690],\
++[	-6.27285599, -0.00054833, 0.00033598, 7.27230766, 0.99832480, 0.99911569, 0.49318694],\
++[	-6.27285622, -0.00054824, 0.00033592, 7.27230799, 0.99832510, 0.99911584, 0.49318700],\
++[	-6.27285645, -0.00054814, 0.00033586, 7.27230832, 0.99832539, 0.99911600, 0.49318701],\
++[	-6.27285669, -0.00054804, 0.00033580, 7.27230865, 0.99832569, 0.99911616, 0.49318705],\
++[	-6.27285692, -0.00054794, 0.00033574, 7.27230897, 0.99832599, 0.99911631, 0.49318711],\
++[	-6.27285715, -0.00054785, 0.00033568, 7.27230930, 0.99832628, 0.99911647, 0.49318708],\
++[	-6.27285738, -0.00054775, 0.00033563, 7.27230963, 0.99832658, 0.99911662, 0.49318719],\
++[	-6.27285761, -0.00054765, 0.00033557, 7.27230996, 0.99832688, 0.99911678, 0.49318717],\
++[	-6.27285785, -0.00054756, 0.00033551, 7.27231029, 0.99832717, 0.99911694, 0.49318724],\
++[	-6.27285808, -0.00054746, 0.00033545, 7.27231062, 0.99832747, 0.99911709, 0.49318723],\
++[	-6.27285831, -0.00054736, 0.00033539, 7.27231095, 0.99832776, 0.99911725, 0.49318729],\
++[	-6.27285854, -0.00054727, 0.00033533, 7.27231127, 0.99832806, 0.99911741, 0.49318737],\
++[	-6.27285877, -0.00054717, 0.00033527, 7.27231160, 0.99832836, 0.99911756, 0.49318736],\
++[	-6.27285900, -0.00054707, 0.00033521, 7.27231193, 0.99832865, 0.99911772, 0.49318737],\
++[	-6.27285923, -0.00054698, 0.00033515, 7.27231226, 0.99832895, 0.99911787, 0.49318744],\
++[	-6.27285947, -0.00054688, 0.00033509, 7.27231259, 0.99832924, 0.99911803, 0.49318747],\
++[	-6.27285970, -0.00054678, 0.00033503, 7.27231291, 0.99832954, 0.99911819, 0.49318750],\
++[	-6.27285993, -0.00054669, 0.00033497, 7.27231324, 0.99832983, 0.99911834, 0.49318752],\
++[	-6.27286016, -0.00054659, 0.00033491, 7.27231357, 0.99833013, 0.99911850, 0.49318756],\
++[	-6.27286039, -0.00054649, 0.00033485, 7.27231390, 0.99833042, 0.99911865, 0.49318760],\
++[	-6.27286062, -0.00054640, 0.00033480, 7.27231422, 0.99833072, 0.99911881, 0.49318765],\
++[	-6.27286085, -0.00054630, 0.00033474, 7.27231455, 0.99833101, 0.99911896, 0.49318766],\
++[	-6.27286108, -0.00054620, 0.00033468, 7.27231488, 0.99833131, 0.99911912, 0.49318767],\
++[	-6.27286131, -0.00054611, 0.00033462, 7.27231521, 0.99833160, 0.99911927, 0.49318769],\
++[	-6.27286154, -0.00054601, 0.00033456, 7.27231553, 0.99833190, 0.99911943, 0.49318777],\
++[	-6.27286177, -0.00054591, 0.00033450, 7.27231586, 0.99833219, 0.99911959, 0.49318778],\
++[	-6.27286200, -0.00054582, 0.00033444, 7.27231619, 0.99833248, 0.99911974, 0.49318783],\
++[	-6.27286223, -0.00054572, 0.00033438, 7.27231651, 0.99833278, 0.99911990, 0.49318785],\
++[	-6.27286246, -0.00054563, 0.00033432, 7.27231684, 0.99833307, 0.99912005, 0.49318790],\
++[	-6.27286269, -0.00054553, 0.00033426, 7.27231716, 0.99833337, 0.99912021, 0.49318796],\
++[	-6.27286292, -0.00054543, 0.00033420, 7.27231749, 0.99833366, 0.99912036, 0.49318798],\
++[	-6.27286315, -0.00054534, 0.00033415, 7.27231782, 0.99833395, 0.99912052, 0.49318802],\
++[	-6.27286338, -0.00054524, 0.00033409, 7.27231814, 0.99833425, 0.99912067, 0.49318801],\
++[	-6.27286361, -0.00054515, 0.00033403, 7.27231847, 0.99833454, 0.99912083, 0.49318810],\
++[	-6.27286384, -0.00054505, 0.00033397, 7.27231879, 0.99833483, 0.99912098, 0.49318815],\
++[	-6.27286407, -0.00054495, 0.00033391, 7.27231912, 0.99833513, 0.99912114, 0.49318815],\
++[	-6.27286430, -0.00054486, 0.00033385, 7.27231944, 0.99833542, 0.99912129, 0.49318821],\
++[	-6.27286453, -0.00054476, 0.00033379, 7.27231977, 0.99833571, 0.99912145, 0.49318820],\
++[	-6.27286476, -0.00054467, 0.00033373, 7.27232010, 0.99833601, 0.99912160, 0.49318828],\
++[	-6.27286499, -0.00054457, 0.00033368, 7.27232042, 0.99833630, 0.99912175, 0.49318827],\
++[	-6.27286522, -0.00054447, 0.00033362, 7.27232075, 0.99833659, 0.99912191, 0.49318830],\
++[	-6.27286545, -0.00054438, 0.00033356, 7.27232107, 0.99833689, 0.99912206, 0.49318834],\
++[	-6.27286568, -0.00054428, 0.00033350, 7.27232139, 0.99833718, 0.99912222, 0.49318840],\
++[	-6.27286591, -0.00054419, 0.00033344, 7.27232172, 0.99833747, 0.99912237, 0.49318849],\
++[	-6.27286614, -0.00054409, 0.00033338, 7.27232204, 0.99833776, 0.99912253, 0.49318845],\
++[	-6.27286636, -0.00054400, 0.00033332, 7.27232237, 0.99833805, 0.99912268, 0.49318852],\
++[	-6.27286659, -0.00054390, 0.00033326, 7.27232269, 0.99833835, 0.99912283, 0.49318851],\
++[	-6.27286682, -0.00054380, 0.00033321, 7.27232302, 0.99833864, 0.99912299, 0.49318855],\
++[	-6.27286705, -0.00054371, 0.00033315, 7.27232334, 0.99833893, 0.99912314, 0.49318857],\
++[	-6.27286728, -0.00054361, 0.00033309, 7.27232366, 0.99833922, 0.99912330, 0.49318863],\
++[	-6.27286751, -0.00054352, 0.00033303, 7.27232399, 0.99833951, 0.99912345, 0.49318865],\
++[	-6.27286774, -0.00054342, 0.00033297, 7.27232431, 0.99833981, 0.99912360, 0.49318871],\
++[	-6.27286796, -0.00054333, 0.00033291, 7.27232464, 0.99834010, 0.99912376, 0.49318871],\
++[	-6.27286819, -0.00054323, 0.00033286, 7.27232496, 0.99834039, 0.99912391, 0.49318882],\
++[	-6.27286842, -0.00054314, 0.00033280, 7.27232528, 0.99834068, 0.99912407, 0.49318885],\
++[	-6.27286865, -0.00054304, 0.00033274, 7.27232561, 0.99834097, 0.99912422, 0.49318882],\
++[	-6.27286888, -0.00054295, 0.00033268, 7.27232593, 0.99834126, 0.99912437, 0.49318888],\
++[	-6.27286910, -0.00054285, 0.00033262, 7.27232625, 0.99834155, 0.99912453, 0.49318890],\
++[	-6.27286933, -0.00054276, 0.00033256, 7.27232657, 0.99834184, 0.99912468, 0.49318892],\
++[	-6.27286956, -0.00054266, 0.00033250, 7.27232690, 0.99834214, 0.99912483, 0.49318896],\
++[	-6.27286979, -0.00054257, 0.00033245, 7.27232722, 0.99834243, 0.99912499, 0.49318900],\
++[	-6.27287001, -0.00054247, 0.00033239, 7.27232754, 0.99834272, 0.99912514, 0.49318899],\
++[	-6.27287024, -0.00054238, 0.00033233, 7.27232787, 0.99834301, 0.99912529, 0.49318908],\
++[	-6.27287047, -0.00054228, 0.00033227, 7.27232819, 0.99834330, 0.99912545, 0.49318910],\
++[	-6.27287070, -0.00054219, 0.00033221, 7.27232851, 0.99834359, 0.99912560, 0.49318913],\
++[	-6.27287092, -0.00054209, 0.00033216, 7.27232883, 0.99834388, 0.99912575, 0.49318913],\
++[	-6.27287115, -0.00054200, 0.00033210, 7.27232915, 0.99834417, 0.99912591, 0.49318919],\
++[	-6.27287138, -0.00054190, 0.00033204, 7.27232948, 0.99834446, 0.99912606, 0.49318918],\
++[	-6.27287160, -0.00054181, 0.00033198, 7.27232980, 0.99834475, 0.99912621, 0.49318924],\
++[	-6.27287183, -0.00054171, 0.00033192, 7.27233012, 0.99834504, 0.99912637, 0.49318928],\
++[	-6.27287206, -0.00054162, 0.00033186, 7.27233044, 0.99834533, 0.99912652, 0.49318937],\
++[	-6.27287228, -0.00054152, 0.00033181, 7.27233076, 0.99834562, 0.99912667, 0.49318939],\
++[	-6.27287251, -0.00054143, 0.00033175, 7.27233108, 0.99834591, 0.99912682, 0.49318942],\
++[	-6.27287274, -0.00054133, 0.00033169, 7.27233140, 0.99834620, 0.99912698, 0.49318944],\
++[	-6.27287296, -0.00054124, 0.00033163, 7.27233173, 0.99834649, 0.99912713, 0.49318945],\
++[	-6.27287319, -0.00054114, 0.00033157, 7.27233205, 0.99834677, 0.99912728, 0.49318948],\
++[	-6.27287342, -0.00054105, 0.00033152, 7.27233237, 0.99834706, 0.99912744, 0.49318948],\
++[	-6.27287364, -0.00054095, 0.00033146, 7.27233269, 0.99834735, 0.99912759, 0.49318960],\
++[	-6.27287387, -0.00054086, 0.00033140, 7.27233301, 0.99834764, 0.99912774, 0.49318965],\
++[	-6.27287409, -0.00054076, 0.00033134, 7.27233333, 0.99834793, 0.99912789, 0.49318963],\
++[	-6.27287432, -0.00054067, 0.00033128, 7.27233365, 0.99834822, 0.99912805, 0.49318967],\
++[	-6.27287455, -0.00054058, 0.00033123, 7.27233397, 0.99834851, 0.99912820, 0.49318974],\
++[	-6.27287477, -0.00054048, 0.00033117, 7.27233429, 0.99834880, 0.99912835, 0.49318975],\
++[	-6.27287500, -0.00054039, 0.00033111, 7.27233461, 0.99834908, 0.99912850, 0.49318982],\
++[	-6.27287522, -0.00054029, 0.00033105, 7.27233493, 0.99834937, 0.99912865, 0.49318976],\
++[	-6.27287545, -0.00054020, 0.00033100, 7.27233525, 0.99834966, 0.99912881, 0.49318982],\
++[	-6.27287568, -0.00054010, 0.00033094, 7.27233557, 0.99834995, 0.99912896, 0.49318990],\
++[	-6.27287590, -0.00054001, 0.00033088, 7.27233589, 0.99835024, 0.99912911, 0.49318991],\
++[	-6.27287613, -0.00053992, 0.00033082, 7.27233621, 0.99835052, 0.99912926, 0.49318988],\
++[	-6.27287635, -0.00053982, 0.00033076, 7.27233653, 0.99835081, 0.99912941, 0.49319001],\
++[	-6.27287658, -0.00053973, 0.00033071, 7.27233685, 0.99835110, 0.99912957, 0.49318998],\
++[	-6.27287680, -0.00053963, 0.00033065, 7.27233717, 0.99835139, 0.99912972, 0.49319007],\
++[	-6.27287703, -0.00053954, 0.00033059, 7.27233749, 0.99835168, 0.99912987, 0.49319009],\
++[	-6.27287725, -0.00053945, 0.00033053, 7.27233781, 0.99835196, 0.99913002, 0.49319013],\
++[	-6.27287748, -0.00053935, 0.00033048, 7.27233812, 0.99835225, 0.99913017, 0.49319012],\
++[	-6.27287770, -0.00053926, 0.00033042, 7.27233844, 0.99835254, 0.99913032, 0.49319022],\
++[	-6.27287793, -0.00053916, 0.00033036, 7.27233876, 0.99835282, 0.99913048, 0.49319019],\
++[	-6.27287815, -0.00053907, 0.00033030, 7.27233908, 0.99835311, 0.99913063, 0.49319021],\
++[	-6.27287838, -0.00053898, 0.00033025, 7.27233940, 0.99835340, 0.99913078, 0.49319029],\
++[	-6.27287860, -0.00053888, 0.00033019, 7.27233972, 0.99835368, 0.99913093, 0.49319029],\
++[	-6.27287882, -0.00053879, 0.00033013, 7.27234004, 0.99835397, 0.99913108, 0.49319033],\
++[	-6.27287905, -0.00053869, 0.00033007, 7.27234035, 0.99835426, 0.99913123, 0.49319038],\
++[	-6.27287927, -0.00053860, 0.00033002, 7.27234067, 0.99835454, 0.99913138, 0.49319044],\
++[	-6.27287950, -0.00053851, 0.00032996, 7.27234099, 0.99835483, 0.99913153, 0.49319044],\
++[	-6.27287972, -0.00053841, 0.00032990, 7.27234131, 0.99835512, 0.99913169, 0.49319052],\
++[	-6.27287994, -0.00053832, 0.00032984, 7.27234162, 0.99835540, 0.99913184, 0.49319053],\
++[	-6.27288017, -0.00053823, 0.00032979, 7.27234194, 0.99835569, 0.99913199, 0.49319055],\
++[	-6.27288039, -0.00053813, 0.00032973, 7.27234226, 0.99835598, 0.99913214, 0.49319059],\
++[	-6.27288062, -0.00053804, 0.00032967, 7.27234258, 0.99835626, 0.99913229, 0.49319064],\
++[	-6.27288084, -0.00053795, 0.00032961, 7.27234289, 0.99835655, 0.99913244, 0.49319065],\
++[	-6.27288106, -0.00053785, 0.00032956, 7.27234321, 0.99835683, 0.99913259, 0.49319063],\
++[	-6.27288129, -0.00053776, 0.00032950, 7.27234353, 0.99835712, 0.99913274, 0.49319073],\
++[	-6.27288151, -0.00053767, 0.00032944, 7.27234385, 0.99835740, 0.99913289, 0.49319071],\
++[	-6.27288173, -0.00053757, 0.00032938, 7.27234416, 0.99835769, 0.99913304, 0.49319080],\
++[	-6.27288196, -0.00053748, 0.00032933, 7.27234448, 0.99835797, 0.99913319, 0.49319079],\
++[	-6.27288218, -0.00053739, 0.00032927, 7.27234480, 0.99835826, 0.99913334, 0.49319084],\
++[	-6.27288240, -0.00053729, 0.00032921, 7.27234511, 0.99835854, 0.99913349, 0.49319094],\
++[	-6.27288263, -0.00053720, 0.00032916, 7.27234543, 0.99835883, 0.99913365, 0.49319090],\
++[	-6.27288285, -0.00053711, 0.00032910, 7.27234574, 0.99835911, 0.99913380, 0.49319093],\
++[	-6.27288307, -0.00053701, 0.00032904, 7.27234606, 0.99835940, 0.99913395, 0.49319095],\
++[	-6.27288330, -0.00053692, 0.00032898, 7.27234638, 0.99835968, 0.99913410, 0.49319102],\
++[	-6.27288352, -0.00053683, 0.00032893, 7.27234669, 0.99835997, 0.99913425, 0.49319110],\
++[	-6.27288374, -0.00053673, 0.00032887, 7.27234701, 0.99836025, 0.99913440, 0.49319107],\
++[	-6.27288396, -0.00053664, 0.00032881, 7.27234732, 0.99836054, 0.99913455, 0.49319115],\
++[	-6.27288419, -0.00053655, 0.00032876, 7.27234764, 0.99836082, 0.99913470, 0.49319113],\
++[	-6.27288441, -0.00053645, 0.00032870, 7.27234795, 0.99836111, 0.99913485, 0.49319119],\
++[	-6.27288463, -0.00053636, 0.00032864, 7.27234827, 0.99836139, 0.99913500, 0.49319119],\
++[	-6.27288485, -0.00053627, 0.00032859, 7.27234859, 0.99836167, 0.99913515, 0.49319124],\
++[	-6.27288508, -0.00053618, 0.00032853, 7.27234890, 0.99836196, 0.99913530, 0.49319131],\
++[	-6.27288530, -0.00053608, 0.00032847, 7.27234922, 0.99836224, 0.99913545, 0.49319132],\
++[	-6.27288552, -0.00053599, 0.00032841, 7.27234953, 0.99836253, 0.99913560, 0.49319134],\
++[	-6.27288574, -0.00053590, 0.00032836, 7.27234985, 0.99836281, 0.99913575, 0.49319141],\
++[	-6.27288596, -0.00053580, 0.00032830, 7.27235016, 0.99836309, 0.99913590, 0.49319142],\
++[	-6.27288619, -0.00053571, 0.00032824, 7.27235047, 0.99836338, 0.99913604, 0.49319138],\
++[	-6.27288641, -0.00053562, 0.00032819, 7.27235079, 0.99836366, 0.99913619, 0.49319145],\
++[	-6.27288663, -0.00053553, 0.00032813, 7.27235110, 0.99836394, 0.99913634, 0.49319149],\
++[	-6.27288685, -0.00053543, 0.00032807, 7.27235142, 0.99836423, 0.99913649, 0.49319155],\
++[	-6.27288707, -0.00053534, 0.00032802, 7.27235173, 0.99836451, 0.99913664, 0.49319156],\
++[	-6.27288729, -0.00053525, 0.00032796, 7.27235205, 0.99836479, 0.99913679, 0.49319156],\
++[	-6.27288752, -0.00053516, 0.00032790, 7.27235236, 0.99836507, 0.99913694, 0.49319162],\
++[	-6.27288774, -0.00053506, 0.00032785, 7.27235267, 0.99836536, 0.99913709, 0.49319169],\
++[	-6.27288796, -0.00053497, 0.00032779, 7.27235299, 0.99836564, 0.99913724, 0.49319169],\
++[	-6.27288818, -0.00053488, 0.00032773, 7.27235330, 0.99836592, 0.99913739, 0.49319176],\
++[	-6.27288840, -0.00053479, 0.00032768, 7.27235361, 0.99836620, 0.99913754, 0.49319177],\
++[	-6.27288862, -0.00053469, 0.00032762, 7.27235393, 0.99836649, 0.99913769, 0.49319182],\
++[	-6.27288884, -0.00053460, 0.00032756, 7.27235424, 0.99836677, 0.99913784, 0.49319183],\
++[	-6.27288906, -0.00053451, 0.00032751, 7.27235455, 0.99836705, 0.99913798, 0.49319186],\
++[	-6.27288928, -0.00053442, 0.00032745, 7.27235487, 0.99836733, 0.99913813, 0.49319195],\
++[	-6.27288950, -0.00053432, 0.00032739, 7.27235518, 0.99836762, 0.99913828, 0.49319191],\
++[	-6.27288973, -0.00053423, 0.00032734, 7.27235549, 0.99836790, 0.99913843, 0.49319195],\
++[	-6.27288995, -0.00053414, 0.00032728, 7.27235581, 0.99836818, 0.99913858, 0.49319198],\
++[	-6.27289017, -0.00053405, 0.00032722, 7.27235612, 0.99836846, 0.99913873, 0.49319204],\
++[	-6.27289039, -0.00053396, 0.00032717, 7.27235643, 0.99836874, 0.99913888, 0.49319208],\
++[	-6.27289061, -0.00053386, 0.00032711, 7.27235674, 0.99836902, 0.99913903, 0.49319213],\
++[	-6.27289083, -0.00053377, 0.00032705, 7.27235706, 0.99836931, 0.99913917, 0.49319212],\
++[	-6.27289105, -0.00053368, 0.00032700, 7.27235737, 0.99836959, 0.99913932, 0.49319218],\
++[	-6.27289127, -0.00053359, 0.00032694, 7.27235768, 0.99836987, 0.99913947, 0.49319222],\
++[	-6.27289149, -0.00053350, 0.00032689, 7.27235799, 0.99837015, 0.99913962, 0.49319223],\
++[	-6.27289171, -0.00053340, 0.00032683, 7.27235830, 0.99837043, 0.99913977, 0.49319229],\
++[	-6.27289193, -0.00053331, 0.00032677, 7.27235862, 0.99837071, 0.99913992, 0.49319228],\
++[	-6.27289215, -0.00053322, 0.00032672, 7.27235893, 0.99837099, 0.99914006, 0.49319230],\
++[	-6.27289237, -0.00053313, 0.00032666, 7.27235924, 0.99837127, 0.99914021, 0.49319236],\
++[	-6.27289259, -0.00053304, 0.00032660, 7.27235955, 0.99837155, 0.99914036, 0.49319240],\
++[	-6.27289281, -0.00053294, 0.00032655, 7.27235986, 0.99837183, 0.99914051, 0.49319244],\
++[	-6.27289303, -0.00053285, 0.00032649, 7.27236017, 0.99837211, 0.99914066, 0.49319243],\
++[	-6.27289325, -0.00053276, 0.00032643, 7.27236048, 0.99837239, 0.99914080, 0.49319249],\
++[	-6.27289346, -0.00053267, 0.00032638, 7.27236080, 0.99837267, 0.99914095, 0.49319257],\
++[	-6.27289368, -0.00053258, 0.00032632, 7.27236111, 0.99837295, 0.99914110, 0.49319253],\
++[	-6.27289390, -0.00053249, 0.00032627, 7.27236142, 0.99837323, 0.99914125, 0.49319261],\
++[	-6.27289412, -0.00053239, 0.00032621, 7.27236173, 0.99837351, 0.99914140, 0.49319263],\
++[	-6.27289434, -0.00053230, 0.00032615, 7.27236204, 0.99837379, 0.99914154, 0.49319267],\
++[	-6.27289456, -0.00053221, 0.00032610, 7.27236235, 0.99837407, 0.99914169, 0.49319271],\
++[	-6.27289478, -0.00053212, 0.00032604, 7.27236266, 0.99837435, 0.99914184, 0.49319271],\
++[	-6.27289500, -0.00053203, 0.00032599, 7.27236297, 0.99837463, 0.99914199, 0.49319270],\
++[	-6.27289522, -0.00053194, 0.00032593, 7.27236328, 0.99837491, 0.99914213, 0.49319278],\
++[	-6.27289544, -0.00053185, 0.00032587, 7.27236359, 0.99837519, 0.99914228, 0.49319281],\
++[	-6.27289565, -0.00053175, 0.00032582, 7.27236390, 0.99837547, 0.99914243, 0.49319284],\
++[	-6.27289587, -0.00053166, 0.00032576, 7.27236421, 0.99837575, 0.99914258, 0.49319286],\
++[	-6.27289609, -0.00053157, 0.00032571, 7.27236452, 0.99837603, 0.99914272, 0.49319287],\
++[	-6.27289631, -0.00053148, 0.00032565, 7.27236483, 0.99837631, 0.99914287, 0.49319297],\
++[	-6.27289653, -0.00053139, 0.00032559, 7.27236514, 0.99837659, 0.99914302, 0.49319300],\
++[	-6.27289675, -0.00053130, 0.00032554, 7.27236545, 0.99837687, 0.99914316, 0.49319302],\
++[	-6.27289696, -0.00053121, 0.00032548, 7.27236576, 0.99837714, 0.99914331, 0.49319305],\
++[	-6.27289718, -0.00053112, 0.00032543, 7.27236607, 0.99837742, 0.99914346, 0.49319306],\
++[	-6.27289740, -0.00053102, 0.00032537, 7.27236638, 0.99837770, 0.99914361, 0.49319318],\
++[	-6.27289762, -0.00053093, 0.00032531, 7.27236668, 0.99837798, 0.99914375, 0.49319313],\
++[	-6.27289784, -0.00053084, 0.00032526, 7.27236699, 0.99837826, 0.99914390, 0.49319318],\
++[	-6.27289805, -0.00053075, 0.00032520, 7.27236730, 0.99837854, 0.99914405, 0.49319320],\
++[	-6.27289827, -0.00053066, 0.00032515, 7.27236761, 0.99837881, 0.99914419, 0.49319315],\
++[	-6.27289849, -0.00053057, 0.00032509, 7.27236792, 0.99837909, 0.99914434, 0.49319329],\
++[	-6.27289871, -0.00053048, 0.00032504, 7.27236823, 0.99837937, 0.99914449, 0.49319329],\
++[	-6.27289892, -0.00053039, 0.00032498, 7.27236854, 0.99837965, 0.99914463, 0.49319336],\
++[	-6.27289914, -0.00053030, 0.00032492, 7.27236884, 0.99837993, 0.99914478, 0.49319338],\
++[	-6.27289936, -0.00053021, 0.00032487, 7.27236915, 0.99838020, 0.99914493, 0.49319340],\
++[	-6.27289958, -0.00053012, 0.00032481, 7.27236946, 0.99838048, 0.99914507, 0.49319339],\
++[	-6.27289979, -0.00053002, 0.00032476, 7.27236977, 0.99838076, 0.99914522, 0.49319350],\
++[	-6.27290001, -0.00052993, 0.00032470, 7.27237008, 0.99838104, 0.99914536, 0.49319352],\
++[	-6.27290023, -0.00052984, 0.00032465, 7.27237038, 0.99838131, 0.99914551, 0.49319359],\
++[	-6.27290044, -0.00052975, 0.00032459, 7.27237069, 0.99838159, 0.99914566, 0.49319354],\
++[	-6.27290066, -0.00052966, 0.00032453, 7.27237100, 0.99838187, 0.99914580, 0.49319355],\
++[	-6.27290088, -0.00052957, 0.00032448, 7.27237131, 0.99838214, 0.99914595, 0.49319365],\
++[	-6.27290109, -0.00052948, 0.00032442, 7.27237161, 0.99838242, 0.99914610, 0.49319372],\
++[	-6.27290131, -0.00052939, 0.00032437, 7.27237192, 0.99838270, 0.99914624, 0.49319371],\
++[	-6.27290153, -0.00052930, 0.00032431, 7.27237223, 0.99838297, 0.99914639, 0.49319369],\
++[	-6.27290174, -0.00052921, 0.00032426, 7.27237254, 0.99838325, 0.99914653, 0.49319379],\
++[	-6.27290196, -0.00052912, 0.00032420, 7.27237284, 0.99838353, 0.99914668, 0.49319379],\
++[	-6.27290218, -0.00052903, 0.00032415, 7.27237315, 0.99838380, 0.99914683, 0.49319387],\
++[	-6.27290239, -0.00052894, 0.00032409, 7.27237346, 0.99838408, 0.99914697, 0.49319384],\
++[	-6.27290261, -0.00052885, 0.00032404, 7.27237376, 0.99838436, 0.99914712, 0.49319390],\
++[	-6.27290283, -0.00052876, 0.00032398, 7.27237407, 0.99838463, 0.99914726, 0.49319391],\
++[	-6.27290304, -0.00052867, 0.00032392, 7.27237438, 0.99838491, 0.99914741, 0.49319397],\
++[	-6.27290326, -0.00052858, 0.00032387, 7.27237468, 0.99838518, 0.99914755, 0.49319399],\
++[	-6.27290347, -0.00052849, 0.00032381, 7.27237499, 0.99838546, 0.99914770, 0.49319399],\
++[	-6.27290369, -0.00052840, 0.00032376, 7.27237529, 0.99838574, 0.99914785, 0.49319402],\
++[	-6.27290391, -0.00052831, 0.00032370, 7.27237560, 0.99838601, 0.99914799, 0.49319410],\
++[	-6.27290412, -0.00052822, 0.00032365, 7.27237591, 0.99838629, 0.99914814, 0.49319411],\
++[	-6.27290434, -0.00052813, 0.00032359, 7.27237621, 0.99838656, 0.99914828, 0.49319417],\
++[	-6.27290455, -0.00052804, 0.00032354, 7.27237652, 0.99838684, 0.99914843, 0.49319421],\
++[	-6.27290477, -0.00052795, 0.00032348, 7.27237682, 0.99838711, 0.99914857, 0.49319423],\
++[	-6.27290498, -0.00052786, 0.00032343, 7.27237713, 0.99838739, 0.99914872, 0.49319424],\
++[	-6.27290520, -0.00052777, 0.00032337, 7.27237743, 0.99838766, 0.99914886, 0.49319429],\
++[	-6.27290541, -0.00052768, 0.00032332, 7.27237774, 0.99838794, 0.99914901, 0.49319426],\
++[	-6.27290563, -0.00052759, 0.00032326, 7.27237804, 0.99838821, 0.99914915, 0.49319434],\
++[	-6.27290584, -0.00052750, 0.00032321, 7.27237835, 0.99838849, 0.99914930, 0.49319436],\
++[	-6.27290606, -0.00052741, 0.00032315, 7.27237865, 0.99838876, 0.99914944, 0.49319441],\
++[	-6.27290627, -0.00052732, 0.00032310, 7.27237896, 0.99838904, 0.99914959, 0.49319443],\
++[	-6.27290649, -0.00052723, 0.00032304, 7.27237926, 0.99838931, 0.99914973, 0.49319450],\
++[	-6.27290670, -0.00052714, 0.00032299, 7.27237957, 0.99838959, 0.99914988, 0.49319447],\
++[	-6.27290692, -0.00052705, 0.00032293, 7.27237987, 0.99838986, 0.99915002, 0.49319454],\
++[	-6.27290713, -0.00052696, 0.00032288, 7.27238018, 0.99839013, 0.99915017, 0.49319453],\
++[	-6.27290735, -0.00052687, 0.00032282, 7.27238048, 0.99839041, 0.99915031, 0.49319457],\
++[	-6.27290756, -0.00052678, 0.00032277, 7.27238078, 0.99839068, 0.99915046, 0.49319463],\
++[	-6.27290778, -0.00052669, 0.00032271, 7.27238109, 0.99839096, 0.99915060, 0.49319468],\
++[	-6.27290799, -0.00052660, 0.00032266, 7.27238139, 0.99839123, 0.99915075, 0.49319471],\
++[	-6.27290821, -0.00052651, 0.00032260, 7.27238170, 0.99839150, 0.99915089, 0.49319472],\
++[	-6.27290842, -0.00052642, 0.00032255, 7.27238200, 0.99839178, 0.99915103, 0.49319477],\
++[	-6.27290863, -0.00052633, 0.00032249, 7.27238230, 0.99839205, 0.99915118, 0.49319479],\
++[	-6.27290885, -0.00052624, 0.00032244, 7.27238261, 0.99839232, 0.99915132, 0.49319479],\
++[	-6.27290906, -0.00052615, 0.00032238, 7.27238291, 0.99839260, 0.99915147, 0.49319486],\
++[	-6.27290928, -0.00052606, 0.00032233, 7.27238321, 0.99839287, 0.99915161, 0.49319496],\
++[	-6.27290949, -0.00052597, 0.00032227, 7.27238352, 0.99839314, 0.99915176, 0.49319494],\
++[	-6.27290970, -0.00052588, 0.00032222, 7.27238382, 0.99839342, 0.99915190, 0.49319490],\
++[	-6.27290992, -0.00052579, 0.00032216, 7.27238412, 0.99839369, 0.99915204, 0.49319495],\
++[	-6.27291013, -0.00052570, 0.00032211, 7.27238443, 0.99839396, 0.99915219, 0.49319503],\
++[	-6.27291034, -0.00052561, 0.00032205, 7.27238473, 0.99839424, 0.99915233, 0.49319499],\
++[	-6.27291056, -0.00052553, 0.00032200, 7.27238503, 0.99839451, 0.99915248, 0.49319506],\
++[	-6.27291077, -0.00052544, 0.00032194, 7.27238534, 0.99839478, 0.99915262, 0.49319516],\
++[	-6.27291098, -0.00052535, 0.00032189, 7.27238564, 0.99839505, 0.99915276, 0.49319515],\
++[	-6.27291120, -0.00052526, 0.00032183, 7.27238594, 0.99839533, 0.99915291, 0.49319519],\
++[	-6.27291141, -0.00052517, 0.00032178, 7.27238624, 0.99839560, 0.99915305, 0.49319519],\
++[	-6.27291162, -0.00052508, 0.00032173, 7.27238654, 0.99839587, 0.99915320, 0.49319522],\
++[	-6.27291184, -0.00052499, 0.00032167, 7.27238685, 0.99839614, 0.99915334, 0.49319528],\
++[	-6.27291205, -0.00052490, 0.00032162, 7.27238715, 0.99839642, 0.99915348, 0.49319533],\
++[	-6.27291226, -0.00052481, 0.00032156, 7.27238745, 0.99839669, 0.99915363, 0.49319536],\
++[	-6.27291248, -0.00052472, 0.00032151, 7.27238775, 0.99839696, 0.99915377, 0.49319537],\
++[	-6.27291269, -0.00052463, 0.00032145, 7.27238805, 0.99839723, 0.99915391, 0.49319544],\
++[	-6.27291290, -0.00052455, 0.00032140, 7.27238836, 0.99839750, 0.99915406, 0.49319545],\
++[	-6.27291311, -0.00052446, 0.00032134, 7.27238866, 0.99839777, 0.99915420, 0.49319547],\
++[	-6.27291333, -0.00052437, 0.00032129, 7.27238896, 0.99839805, 0.99915434, 0.49319547],\
++[	-6.27291354, -0.00052428, 0.00032123, 7.27238926, 0.99839832, 0.99915449, 0.49319552],\
++[	-6.27291375, -0.00052419, 0.00032118, 7.27238956, 0.99839859, 0.99915463, 0.49319555],\
++[	-6.27291396, -0.00052410, 0.00032113, 7.27238986, 0.99839886, 0.99915477, 0.49319555],\
++[	-6.27291418, -0.00052401, 0.00032107, 7.27239016, 0.99839913, 0.99915492, 0.49319565],\
++[	-6.27291439, -0.00052392, 0.00032102, 7.27239046, 0.99839940, 0.99915506, 0.49319563],\
++[	-6.27291460, -0.00052384, 0.00032096, 7.27239077, 0.99839967, 0.99915520, 0.49319565],\
++[	-6.27291481, -0.00052375, 0.00032091, 7.27239107, 0.99839994, 0.99915534, 0.49319571],\
++[	-6.27291503, -0.00052366, 0.00032085, 7.27239137, 0.99840021, 0.99915549, 0.49319576],\
++[	-6.27291524, -0.00052357, 0.00032080, 7.27239167, 0.99840049, 0.99915563, 0.49319577],\
++[	-6.27291545, -0.00052348, 0.00032075, 7.27239197, 0.99840076, 0.99915577, 0.49319579],\
++[	-6.27291566, -0.00052339, 0.00032069, 7.27239227, 0.99840103, 0.99915592, 0.49319582],\
++[	-6.27291587, -0.00052330, 0.00032064, 7.27239257, 0.99840130, 0.99915606, 0.49319587],\
++[	-6.27291608, -0.00052322, 0.00032058, 7.27239287, 0.99840157, 0.99915620, 0.49319592],\
++[	-6.27291630, -0.00052313, 0.00032053, 7.27239317, 0.99840184, 0.99915634, 0.49319593],\
++[	-6.27291651, -0.00052304, 0.00032047, 7.27239347, 0.99840211, 0.99915649, 0.49319594],\
++[	-6.27291672, -0.00052295, 0.00032042, 7.27239377, 0.99840238, 0.99915663, 0.49319596],\
++[	-6.27291693, -0.00052286, 0.00032037, 7.27239407, 0.99840265, 0.99915677, 0.49319602],\
++[	-6.27291714, -0.00052277, 0.00032031, 7.27239437, 0.99840292, 0.99915691, 0.49319607],\
++[	-6.27291735, -0.00052269, 0.00032026, 7.27239467, 0.99840319, 0.99915706, 0.49319609],\
++[	-6.27291756, -0.00052260, 0.00032020, 7.27239497, 0.99840346, 0.99915720, 0.49319609],\
++[	-6.27291777, -0.00052251, 0.00032015, 7.27239526, 0.99840373, 0.99915734, 0.49319619],\
++[	-6.27291799, -0.00052242, 0.00032010, 7.27239556, 0.99840400, 0.99915748, 0.49319624],\
++[	-6.27291820, -0.00052233, 0.00032004, 7.27239586, 0.99840427, 0.99915763, 0.49319616],\
++[	-6.27291841, -0.00052225, 0.00031999, 7.27239616, 0.99840453, 0.99915777, 0.49319625],\
++[	-6.27291862, -0.00052216, 0.00031993, 7.27239646, 0.99840480, 0.99915791, 0.49319632],\
++[	-6.27291883, -0.00052207, 0.00031988, 7.27239676, 0.99840507, 0.99915805, 0.49319625],\
++[	-6.27291904, -0.00052198, 0.00031983, 7.27239706, 0.99840534, 0.99915819, 0.49319634],\
++[	-6.27291925, -0.00052189, 0.00031977, 7.27239736, 0.99840561, 0.99915834, 0.49319638],\
++[	-6.27291946, -0.00052180, 0.00031972, 7.27239766, 0.99840588, 0.99915848, 0.49319640],\
++[	-6.27291967, -0.00052172, 0.00031966, 7.27239795, 0.99840615, 0.99915862, 0.49319643],\
++[	-6.27291988, -0.00052163, 0.00031961, 7.27239825, 0.99840642, 0.99915876, 0.49319646],\
++[	-6.27292009, -0.00052154, 0.00031956, 7.27239855, 0.99840669, 0.99915890, 0.49319643],\
++[	-6.27292030, -0.00052145, 0.00031950, 7.27239885, 0.99840695, 0.99915904, 0.49319651],\
++[	-6.27292051, -0.00052137, 0.00031945, 7.27239915, 0.99840722, 0.99915919, 0.49319652],\
++[	-6.27292072, -0.00052128, 0.00031939, 7.27239944, 0.99840749, 0.99915933, 0.49319657],\
++[	-6.27292093, -0.00052119, 0.00031934, 7.27239974, 0.99840776, 0.99915947, 0.49319663],\
++[	-6.27292114, -0.00052110, 0.00031929, 7.27240004, 0.99840803, 0.99915961, 0.49319665],\
++[	-6.27292135, -0.00052101, 0.00031923, 7.27240034, 0.99840830, 0.99915975, 0.49319671],\
++[	-6.27292156, -0.00052093, 0.00031918, 7.27240063, 0.99840856, 0.99915989, 0.49319676],\
++[	-6.27292177, -0.00052084, 0.00031913, 7.27240093, 0.99840883, 0.99916004, 0.49319677],\
++[	-6.27292198, -0.00052075, 0.00031907, 7.27240123, 0.99840910, 0.99916018, 0.49319672],\
++[	-6.27292219, -0.00052066, 0.00031902, 7.27240153, 0.99840937, 0.99916032, 0.49319676],\
++[	-6.27292240, -0.00052058, 0.00031896, 7.27240182, 0.99840964, 0.99916046, 0.49319684],\
++[	-6.27292261, -0.00052049, 0.00031891, 7.27240212, 0.99840990, 0.99916060, 0.49319683],\
++[	-6.27292282, -0.00052040, 0.00031886, 7.27240242, 0.99841017, 0.99916074, 0.49319688],\
++[	-6.27292303, -0.00052031, 0.00031880, 7.27240271, 0.99841044, 0.99916088, 0.49319696],\
++[	-6.27292324, -0.00052023, 0.00031875, 7.27240301, 0.99841070, 0.99916102, 0.49319696],\
++[	-6.27292345, -0.00052014, 0.00031870, 7.27240331, 0.99841097, 0.99916117, 0.49319698],\
++[	-6.27292366, -0.00052005, 0.00031864, 7.27240360, 0.99841124, 0.99916131, 0.49319702],\
++[	-6.27292386, -0.00051996, 0.00031859, 7.27240390, 0.99841151, 0.99916145, 0.49319705],\
++[	-6.27292407, -0.00051988, 0.00031854, 7.27240420, 0.99841177, 0.99916159, 0.49319708],\
++[	-6.27292428, -0.00051979, 0.00031848, 7.27240449, 0.99841204, 0.99916173, 0.49319705],\
++[	-6.27292449, -0.00051970, 0.00031843, 7.27240479, 0.99841231, 0.99916187, 0.49319715],\
++[	-6.27292470, -0.00051962, 0.00031837, 7.27240508, 0.99841257, 0.99916201, 0.49319716],\
++[	-6.27292491, -0.00051953, 0.00031832, 7.27240538, 0.99841284, 0.99916215, 0.49319722],\
++[	-6.27292512, -0.00051944, 0.00031827, 7.27240568, 0.99841311, 0.99916229, 0.49319725],\
++[	-6.27292533, -0.00051935, 0.00031821, 7.27240597, 0.99841337, 0.99916243, 0.49319725],\
++[	-6.27292553, -0.00051927, 0.00031816, 7.27240627, 0.99841364, 0.99916257, 0.49319734],\
++[	-6.27292574, -0.00051918, 0.00031811, 7.27240656, 0.99841390, 0.99916271, 0.49319744],\
++[	-6.27292595, -0.00051909, 0.00031805, 7.27240686, 0.99841417, 0.99916285, 0.49319739],\
++[	-6.27292616, -0.00051901, 0.00031800, 7.27240715, 0.99841444, 0.99916299, 0.49319736],\
++[	-6.27292637, -0.00051892, 0.00031795, 7.27240745, 0.99841470, 0.99916313, 0.49319748],\
++[	-6.27292658, -0.00051883, 0.00031789, 7.27240774, 0.99841497, 0.99916327, 0.49319747],\
++[	-6.27292678, -0.00051874, 0.00031784, 7.27240804, 0.99841523, 0.99916341, 0.49319748],\
++[	-6.27292699, -0.00051866, 0.00031779, 7.27240833, 0.99841550, 0.99916355, 0.49319753],\
++[	-6.27292720, -0.00051857, 0.00031773, 7.27240863, 0.99841577, 0.99916369, 0.49319759],\
++[	-6.27292741, -0.00051848, 0.00031768, 7.27240892, 0.99841603, 0.99916384, 0.49319759],\
++[	-6.27292762, -0.00051840, 0.00031763, 7.27240922, 0.99841630, 0.99916398, 0.49319759],\
++[	-6.27292782, -0.00051831, 0.00031757, 7.27240951, 0.99841656, 0.99916412, 0.49319764],\
++[	-6.27292803, -0.00051822, 0.00031752, 7.27240981, 0.99841683, 0.99916426, 0.49319769],\
++[	-6.27292824, -0.00051814, 0.00031747, 7.27241010, 0.99841709, 0.99916440, 0.49319768],\
++[	-6.27292845, -0.00051805, 0.00031742, 7.27241040, 0.99841736, 0.99916453, 0.49319773],\
++[	-6.27292865, -0.00051796, 0.00031736, 7.27241069, 0.99841762, 0.99916467, 0.49319777],\
++[	-6.27292886, -0.00051788, 0.00031731, 7.27241098, 0.99841789, 0.99916481, 0.49319789],\
++[	-6.27292907, -0.00051779, 0.00031726, 7.27241128, 0.99841815, 0.99916495, 0.49319781],\
++[	-6.27292927, -0.00051770, 0.00031720, 7.27241157, 0.99841842, 0.99916509, 0.49319785],\
++[	-6.27292948, -0.00051762, 0.00031715, 7.27241186, 0.99841868, 0.99916523, 0.49319784],\
++[	-6.27292969, -0.00051753, 0.00031710, 7.27241216, 0.99841895, 0.99916537, 0.49319795],\
++[	-6.27292990, -0.00051744, 0.00031704, 7.27241245, 0.99841921, 0.99916551, 0.49319794],\
++[	-6.27293010, -0.00051736, 0.00031699, 7.27241275, 0.99841947, 0.99916565, 0.49319797],\
++[	-6.27293031, -0.00051727, 0.00031694, 7.27241304, 0.99841974, 0.99916579, 0.49319807],\
++[	-6.27293052, -0.00051718, 0.00031688, 7.27241333, 0.99842000, 0.99916593, 0.49319800],\
++[	-6.27293072, -0.00051710, 0.00031683, 7.27241363, 0.99842027, 0.99916607, 0.49319809],\
++[	-6.27293093, -0.00051701, 0.00031678, 7.27241392, 0.99842053, 0.99916621, 0.49319811],\
++[	-6.27293114, -0.00051693, 0.00031673, 7.27241421, 0.99842079, 0.99916635, 0.49319811],\
++[	-6.27293134, -0.00051684, 0.00031667, 7.27241450, 0.99842106, 0.99916649, 0.49319817],\
++[	-6.27293155, -0.00051675, 0.00031662, 7.27241480, 0.99842132, 0.99916663, 0.49319820],\
++[	-6.27293176, -0.00051667, 0.00031657, 7.27241509, 0.99842159, 0.99916677, 0.49319821],\
++[	-6.27293196, -0.00051658, 0.00031651, 7.27241538, 0.99842185, 0.99916691, 0.49319833],\
++[	-6.27293217, -0.00051649, 0.00031646, 7.27241567, 0.99842211, 0.99916704, 0.49319829],\
++[	-6.27293237, -0.00051641, 0.00031641, 7.27241597, 0.99842238, 0.99916718, 0.49319831],\
++[	-6.27293258, -0.00051632, 0.00031636, 7.27241626, 0.99842264, 0.99916732, 0.49319838],\
++[	-6.27293279, -0.00051624, 0.00031630, 7.27241655, 0.99842290, 0.99916746, 0.49319843],\
++[	-6.27293299, -0.00051615, 0.00031625, 7.27241684, 0.99842316, 0.99916760, 0.49319840],\
++[	-6.27293320, -0.00051606, 0.00031620, 7.27241713, 0.99842343, 0.99916774, 0.49319841],\
++[	-6.27293340, -0.00051598, 0.00031614, 7.27241743, 0.99842369, 0.99916788, 0.49319849],\
++[	-6.27293361, -0.00051589, 0.00031609, 7.27241772, 0.99842395, 0.99916802, 0.49319850],\
++[	-6.27293382, -0.00051581, 0.00031604, 7.27241801, 0.99842422, 0.99916816, 0.49319856],\
++[	-6.27293402, -0.00051572, 0.00031599, 7.27241830, 0.99842448, 0.99916829, 0.49319860],\
++[	-6.27293423, -0.00051563, 0.00031593, 7.27241859, 0.99842474, 0.99916843, 0.49319855],\
++[	-6.27293443, -0.00051555, 0.00031588, 7.27241888, 0.99842500, 0.99916857, 0.49319861],\
++[	-6.27293464, -0.00051546, 0.00031583, 7.27241918, 0.99842527, 0.99916871, 0.49319870],\
++[	-6.27293484, -0.00051538, 0.00031578, 7.27241947, 0.99842553, 0.99916885, 0.49319866],\
++[	-6.27293505, -0.00051529, 0.00031572, 7.27241976, 0.99842579, 0.99916899, 0.49319873],\
++[	-6.27293525, -0.00051520, 0.00031567, 7.27242005, 0.99842605, 0.99916912, 0.49319872],\
++[	-6.27293546, -0.00051512, 0.00031562, 7.27242034, 0.99842632, 0.99916926, 0.49319875],\
++[	-6.27293566, -0.00051503, 0.00031557, 7.27242063, 0.99842658, 0.99916940, 0.49319885],\
++[	-6.27293587, -0.00051495, 0.00031551, 7.27242092, 0.99842684, 0.99916954, 0.49319881],\
++[	-6.27293607, -0.00051486, 0.00031546, 7.27242121, 0.99842710, 0.99916968, 0.49319885],\
++[	-6.27293628, -0.00051478, 0.00031541, 7.27242150, 0.99842736, 0.99916982, 0.49319897],\
++[	-6.27293648, -0.00051469, 0.00031536, 7.27242179, 0.99842762, 0.99916995, 0.49319898],\
++[	-6.27293669, -0.00051461, 0.00031530, 7.27242208, 0.99842789, 0.99917009, 0.49319895],\
++[	-6.27293689, -0.00051452, 0.00031525, 7.27242237, 0.99842815, 0.99917023, 0.49319902],\
++[	-6.27293710, -0.00051443, 0.00031520, 7.27242266, 0.99842841, 0.99917037, 0.49319899],\
++[	-6.27293730, -0.00051435, 0.00031515, 7.27242295, 0.99842867, 0.99917051, 0.49319907],\
++[	-6.27293751, -0.00051426, 0.00031509, 7.27242324, 0.99842893, 0.99917064, 0.49319910],\
++[	-6.27293771, -0.00051418, 0.00031504, 7.27242353, 0.99842919, 0.99917078, 0.49319911],\
++[	-6.27293792, -0.00051409, 0.00031499, 7.27242382, 0.99842945, 0.99917092, 0.49319911],\
++[	-6.27293812, -0.00051401, 0.00031494, 7.27242411, 0.99842971, 0.99917106, 0.49319918],\
++[	-6.27293832, -0.00051392, 0.00031488, 7.27242440, 0.99842997, 0.99917119, 0.49319923],\
++[	-6.27293853, -0.00051384, 0.00031483, 7.27242469, 0.99843024, 0.99917133, 0.49319919],\
++[	-6.27293873, -0.00051375, 0.00031478, 7.27242498, 0.99843050, 0.99917147, 0.49319924],\
++[	-6.27293894, -0.00051367, 0.00031473, 7.27242527, 0.99843076, 0.99917161, 0.49319925],\
++[	-6.27293914, -0.00051358, 0.00031467, 7.27242556, 0.99843102, 0.99917174, 0.49319934],\
++[	-6.27293934, -0.00051350, 0.00031462, 7.27242585, 0.99843128, 0.99917188, 0.49319932],\
++[	-6.27293955, -0.00051341, 0.00031457, 7.27242614, 0.99843154, 0.99917202, 0.49319938],\
++[	-6.27293975, -0.00051333, 0.00031452, 7.27242643, 0.99843180, 0.99917216, 0.49319942],\
++[	-6.27293995, -0.00051324, 0.00031447, 7.27242671, 0.99843206, 0.99917229, 0.49319947],\
++[	-6.27294016, -0.00051315, 0.00031441, 7.27242700, 0.99843232, 0.99917243, 0.49319948],\
++[	-6.27294036, -0.00051307, 0.00031436, 7.27242729, 0.99843258, 0.99917257, 0.49319954],\
++[	-6.27294057, -0.00051298, 0.00031431, 7.27242758, 0.99843284, 0.99917271, 0.49319956],\
++[	-6.27294077, -0.00051290, 0.00031426, 7.27242787, 0.99843310, 0.99917284, 0.49319957],\
++[	-6.27294097, -0.00051281, 0.00031421, 7.27242816, 0.99843336, 0.99917298, 0.49319962],\
++[	-6.27294118, -0.00051273, 0.00031415, 7.27242845, 0.99843362, 0.99917312, 0.49319969],\
++[	-6.27294138, -0.00051265, 0.00031410, 7.27242873, 0.99843388, 0.99917325, 0.49319972],\
++[	-6.27294158, -0.00051256, 0.00031405, 7.27242902, 0.99843414, 0.99917339, 0.49319967],\
++[	-6.27294178, -0.00051248, 0.00031400, 7.27242931, 0.99843439, 0.99917353, 0.49319971],\
++[	-6.27294199, -0.00051239, 0.00031395, 7.27242960, 0.99843465, 0.99917366, 0.49319975],\
++[	-6.27294219, -0.00051231, 0.00031389, 7.27242988, 0.99843491, 0.99917380, 0.49319976],\
++[	-6.27294239, -0.00051222, 0.00031384, 7.27243017, 0.99843517, 0.99917394, 0.49319985],\
++[	-6.27294260, -0.00051214, 0.00031379, 7.27243046, 0.99843543, 0.99917407, 0.49319980],\
++[	-6.27294280, -0.00051205, 0.00031374, 7.27243075, 0.99843569, 0.99917421, 0.49319987],\
++[	-6.27294300, -0.00051197, 0.00031369, 7.27243103, 0.99843595, 0.99917435, 0.49319991],\
++[	-6.27294320, -0.00051188, 0.00031363, 7.27243132, 0.99843621, 0.99917448, 0.49319996],\
++[	-6.27294341, -0.00051180, 0.00031358, 7.27243161, 0.99843647, 0.99917462, 0.49320001],\
++[	-6.27294361, -0.00051171, 0.00031353, 7.27243190, 0.99843673, 0.99917476, 0.49319998],\
++[	-6.27294381, -0.00051163, 0.00031348, 7.27243218, 0.99843698, 0.99917489, 0.49320000],\
++[	-6.27294401, -0.00051154, 0.00031343, 7.27243247, 0.99843724, 0.99917503, 0.49320003],\
++[	-6.27294422, -0.00051146, 0.00031337, 7.27243276, 0.99843750, 0.99917517, 0.49320007],\
++[	-6.27294442, -0.00051137, 0.00031332, 7.27243304, 0.99843776, 0.99917530, 0.49320006],\
++[	-6.27294462, -0.00051129, 0.00031327, 7.27243333, 0.99843802, 0.99917544, 0.49320012],\
++[	-6.27294482, -0.00051121, 0.00031322, 7.27243362, 0.99843827, 0.99917558, 0.49320018],\
++[	-6.27294502, -0.00051112, 0.00031317, 7.27243390, 0.99843853, 0.99917571, 0.49320018],\
++[	-6.27294523, -0.00051104, 0.00031312, 7.27243419, 0.99843879, 0.99917585, 0.49320017],\
++[	-6.27294543, -0.00051095, 0.00031306, 7.27243448, 0.99843905, 0.99917598, 0.49320022],\
++[	-6.27294563, -0.00051087, 0.00031301, 7.27243476, 0.99843931, 0.99917612, 0.49320033],\
++[	-6.27294583, -0.00051078, 0.00031296, 7.27243505, 0.99843956, 0.99917626, 0.49320035],\
++[	-6.27294603, -0.00051070, 0.00031291, 7.27243533, 0.99843982, 0.99917639, 0.49320035],\
++[	-6.27294623, -0.00051062, 0.00031286, 7.27243562, 0.99844008, 0.99917653, 0.49320037],\
++[	-6.27294644, -0.00051053, 0.00031281, 7.27243590, 0.99844034, 0.99917666, 0.49320040],\
++[	-6.27294664, -0.00051045, 0.00031275, 7.27243619, 0.99844059, 0.99917680, 0.49320046],\
++[	-6.27294684, -0.00051036, 0.00031270, 7.27243648, 0.99844085, 0.99917693, 0.49320050],\
++[	-6.27294704, -0.00051028, 0.00031265, 7.27243676, 0.99844111, 0.99917707, 0.49320049],\
++[	-6.27294724, -0.00051019, 0.00031260, 7.27243705, 0.99844136, 0.99917721, 0.49320054],\
++[	-6.27294744, -0.00051011, 0.00031255, 7.27243733, 0.99844162, 0.99917734, 0.49320055],\
++[	-6.27294764, -0.00051003, 0.00031250, 7.27243762, 0.99844188, 0.99917748, 0.49320064],\
++[	-6.27294784, -0.00050994, 0.00031244, 7.27243790, 0.99844214, 0.99917761, 0.49320065],\
++[	-6.27294805, -0.00050986, 0.00031239, 7.27243819, 0.99844239, 0.99917775, 0.49320067],\
++[	-6.27294825, -0.00050977, 0.00031234, 7.27243847, 0.99844265, 0.99917788, 0.49320073],\
++[	-6.27294845, -0.00050969, 0.00031229, 7.27243876, 0.99844291, 0.99917802, 0.49320072],\
++[	-6.27294865, -0.00050961, 0.00031224, 7.27243904, 0.99844316, 0.99917815, 0.49320076],\
++[	-6.27294885, -0.00050952, 0.00031219, 7.27243933, 0.99844342, 0.99917829, 0.49320077],\
++[	-6.27294905, -0.00050944, 0.00031214, 7.27243961, 0.99844367, 0.99917843, 0.49320076],\
++[	-6.27294925, -0.00050936, 0.00031208, 7.27243989, 0.99844393, 0.99917856, 0.49320084],\
++[	-6.27294945, -0.00050927, 0.00031203, 7.27244018, 0.99844419, 0.99917870, 0.49320087],\
++[	-6.27294965, -0.00050919, 0.00031198, 7.27244046, 0.99844444, 0.99917883, 0.49320088],\
++[	-6.27294985, -0.00050910, 0.00031193, 7.27244075, 0.99844470, 0.99917897, 0.49320097],\
++[	-6.27295005, -0.00050902, 0.00031188, 7.27244103, 0.99844495, 0.99917910, 0.49320091],\
++[	-6.27295025, -0.00050894, 0.00031183, 7.27244132, 0.99844521, 0.99917924, 0.49320097],\
++[	-6.27295045, -0.00050885, 0.00031178, 7.27244160, 0.99844547, 0.99917937, 0.49320101],\
++[	-6.27295065, -0.00050877, 0.00031173, 7.27244188, 0.99844572, 0.99917951, 0.49320102],\
++[	-6.27295085, -0.00050869, 0.00031167, 7.27244217, 0.99844598, 0.99917964, 0.49320101],\
++[	-6.27295105, -0.00050860, 0.00031162, 7.27244245, 0.99844623, 0.99917978, 0.49320112],\
++[	-6.27295125, -0.00050852, 0.00031157, 7.27244273, 0.99844649, 0.99917991, 0.49320117],\
++[	-6.27295145, -0.00050844, 0.00031152, 7.27244302, 0.99844674, 0.99918004, 0.49320117],\
++[	-6.27295165, -0.00050835, 0.00031147, 7.27244330, 0.99844700, 0.99918018, 0.49320119],\
++[	-6.27295185, -0.00050827, 0.00031142, 7.27244358, 0.99844725, 0.99918031, 0.49320122],\
++[	-6.27295205, -0.00050818, 0.00031137, 7.27244387, 0.99844751, 0.99918045, 0.49320128],\
++[	-6.27295225, -0.00050810, 0.00031132, 7.27244415, 0.99844776, 0.99918058, 0.49320130],\
++[	-6.27295245, -0.00050802, 0.00031126, 7.27244443, 0.99844802, 0.99918072, 0.49320132],\
++[	-6.27295265, -0.00050793, 0.00031121, 7.27244472, 0.99844827, 0.99918085, 0.49320130],\
++[	-6.27295285, -0.00050785, 0.00031116, 7.27244500, 0.99844853, 0.99918099, 0.49320137],\
++[	-6.27295305, -0.00050777, 0.00031111, 7.27244528, 0.99844878, 0.99918112, 0.49320141],\
++[	-6.27295325, -0.00050768, 0.00031106, 7.27244556, 0.99844904, 0.99918126, 0.49320145],\
++[	-6.27295345, -0.00050760, 0.00031101, 7.27244585, 0.99844929, 0.99918139, 0.49320144],\
++[	-6.27295365, -0.00050752, 0.00031096, 7.27244613, 0.99844955, 0.99918152, 0.49320149],\
++[	-6.27295385, -0.00050743, 0.00031091, 7.27244641, 0.99844980, 0.99918166, 0.49320154],\
++[	-6.27295404, -0.00050735, 0.00031086, 7.27244669, 0.99845005, 0.99918179, 0.49320156],\
++[	-6.27295424, -0.00050727, 0.00031081, 7.27244697, 0.99845031, 0.99918193, 0.49320161],\
++[	-6.27295444, -0.00050719, 0.00031075, 7.27244726, 0.99845056, 0.99918206, 0.49320163],\
++[	-6.27295464, -0.00050710, 0.00031070, 7.27244754, 0.99845082, 0.99918219, 0.49320168],\
++[	-6.27295484, -0.00050702, 0.00031065, 7.27244782, 0.99845107, 0.99918233, 0.49320163],\
++[	-6.27295504, -0.00050694, 0.00031060, 7.27244810, 0.99845132, 0.99918246, 0.49320171],\
++[	-6.27295524, -0.00050685, 0.00031055, 7.27244838, 0.99845158, 0.99918260, 0.49320174],\
++[	-6.27295544, -0.00050677, 0.00031050, 7.27244867, 0.99845183, 0.99918273, 0.49320177],\
++[	-6.27295563, -0.00050669, 0.00031045, 7.27244895, 0.99845208, 0.99918286, 0.49320176],\
++[	-6.27295583, -0.00050660, 0.00031040, 7.27244923, 0.99845234, 0.99918300, 0.49320182],\
++[	-6.27295603, -0.00050652, 0.00031035, 7.27244951, 0.99845259, 0.99918313, 0.49320186],\
++[	-6.27295623, -0.00050644, 0.00031030, 7.27244979, 0.99845284, 0.99918327, 0.49320185],\
++[	-6.27295643, -0.00050636, 0.00031025, 7.27245007, 0.99845310, 0.99918340, 0.49320186],\
++[	-6.27295663, -0.00050627, 0.00031019, 7.27245035, 0.99845335, 0.99918353, 0.49320197],\
++[	-6.27295682, -0.00050619, 0.00031014, 7.27245063, 0.99845360, 0.99918367, 0.49320197],\
++[	-6.27295702, -0.00050611, 0.00031009, 7.27245091, 0.99845386, 0.99918380, 0.49320194],\
++[	-6.27295722, -0.00050602, 0.00031004, 7.27245120, 0.99845411, 0.99918393, 0.49320202],\
++[	-6.27295742, -0.00050594, 0.00030999, 7.27245148, 0.99845436, 0.99918407, 0.49320205],\
++[	-6.27295762, -0.00050586, 0.00030994, 7.27245176, 0.99845462, 0.99918420, 0.49320207],\
++[	-6.27295781, -0.00050578, 0.00030989, 7.27245204, 0.99845487, 0.99918433, 0.49320207],\
++[	-6.27295801, -0.00050569, 0.00030984, 7.27245232, 0.99845512, 0.99918447, 0.49320217],\
++[	-6.27295821, -0.00050561, 0.00030979, 7.27245260, 0.99845537, 0.99918460, 0.49320221],\
++[	-6.27295841, -0.00050553, 0.00030974, 7.27245288, 0.99845563, 0.99918473, 0.49320219],\
++[	-6.27295860, -0.00050545, 0.00030969, 7.27245316, 0.99845588, 0.99918487, 0.49320222],\
++[	-6.27295880, -0.00050536, 0.00030964, 7.27245344, 0.99845613, 0.99918500, 0.49320228],\
++[	-6.27295900, -0.00050528, 0.00030959, 7.27245372, 0.99845638, 0.99918513, 0.49320230],\
++[	-6.27295920, -0.00050520, 0.00030954, 7.27245400, 0.99845663, 0.99918526, 0.49320235],\
++[	-6.27295939, -0.00050512, 0.00030949, 7.27245428, 0.99845689, 0.99918540, 0.49320231],\
++[	-6.27295959, -0.00050503, 0.00030944, 7.27245456, 0.99845714, 0.99918553, 0.49320239],\
++[	-6.27295979, -0.00050495, 0.00030938, 7.27245484, 0.99845739, 0.99918566, 0.49320239],\
++[	-6.27295998, -0.00050487, 0.00030933, 7.27245512, 0.99845764, 0.99918580, 0.49320243],\
++[	-6.27296018, -0.00050479, 0.00030928, 7.27245539, 0.99845789, 0.99918593, 0.49320240],\
++[	-6.27296038, -0.00050470, 0.00030923, 7.27245567, 0.99845814, 0.99918606, 0.49320248],\
++[	-6.27296058, -0.00050462, 0.00030918, 7.27245595, 0.99845840, 0.99918619, 0.49320254],\
++[	-6.27296077, -0.00050454, 0.00030913, 7.27245623, 0.99845865, 0.99918633, 0.49320254],\
++[	-6.27296097, -0.00050446, 0.00030908, 7.27245651, 0.99845890, 0.99918646, 0.49320257],\
++[	-6.27296117, -0.00050438, 0.00030903, 7.27245679, 0.99845915, 0.99918659, 0.49320260],\
++[	-6.27296136, -0.00050429, 0.00030898, 7.27245707, 0.99845940, 0.99918673, 0.49320260],\
++[	-6.27296156, -0.00050421, 0.00030893, 7.27245735, 0.99845965, 0.99918686, 0.49320264],\
++[	-6.27296176, -0.00050413, 0.00030888, 7.27245763, 0.99845990, 0.99918699, 0.49320270],\
++[	-6.27296195, -0.00050405, 0.00030883, 7.27245790, 0.99846015, 0.99918712, 0.49320271],\
++[	-6.27296215, -0.00050397, 0.00030878, 7.27245818, 0.99846040, 0.99918726, 0.49320271],\
++[	-6.27296234, -0.00050388, 0.00030873, 7.27245846, 0.99846066, 0.99918739, 0.49320279],\
++[	-6.27296254, -0.00050380, 0.00030868, 7.27245874, 0.99846091, 0.99918752, 0.49320285],\
++[	-6.27296274, -0.00050372, 0.00030863, 7.27245902, 0.99846116, 0.99918765, 0.49320278],\
++[	-6.27296293, -0.00050364, 0.00030858, 7.27245930, 0.99846141, 0.99918778, 0.49320286],\
++[	-6.27296313, -0.00050356, 0.00030853, 7.27245957, 0.99846166, 0.99918792, 0.49320284],\
++[	-6.27296332, -0.00050347, 0.00030848, 7.27245985, 0.99846191, 0.99918805, 0.49320294],\
++[	-6.27296352, -0.00050339, 0.00030843, 7.27246013, 0.99846216, 0.99918818, 0.49320297],\
++[	-6.27296372, -0.00050331, 0.00030838, 7.27246041, 0.99846241, 0.99918831, 0.49320295],\
++[	-6.27296391, -0.00050323, 0.00030833, 7.27246068, 0.99846266, 0.99918844, 0.49320301],\
++[	-6.27296411, -0.00050315, 0.00030828, 7.27246096, 0.99846291, 0.99918858, 0.49320303],\
++[	-6.27296430, -0.00050306, 0.00030823, 7.27246124, 0.99846316, 0.99918871, 0.49320305],\
++[	-6.27296450, -0.00050298, 0.00030818, 7.27246152, 0.99846341, 0.99918884, 0.49320310],\
++[	-6.27296469, -0.00050290, 0.00030813, 7.27246179, 0.99846366, 0.99918897, 0.49320314],\
++[	-6.27296489, -0.00050282, 0.00030808, 7.27246207, 0.99846391, 0.99918910, 0.49320318],\
++[	-6.27296509, -0.00050274, 0.00030803, 7.27246235, 0.99846416, 0.99918924, 0.49320319],\
++[	-6.27296528, -0.00050266, 0.00030798, 7.27246263, 0.99846441, 0.99918937, 0.49320326],\
++[	-6.27296548, -0.00050257, 0.00030793, 7.27246290, 0.99846466, 0.99918950, 0.49320325],\
++[	-6.27296567, -0.00050249, 0.00030788, 7.27246318, 0.99846490, 0.99918963, 0.49320329],\
++[	-6.27296587, -0.00050241, 0.00030783, 7.27246346, 0.99846515, 0.99918976, 0.49320330],\
++[	-6.27296606, -0.00050233, 0.00030778, 7.27246373, 0.99846540, 0.99918989, 0.49320333],\
++[	-6.27296626, -0.00050225, 0.00030773, 7.27246401, 0.99846565, 0.99919002, 0.49320339],\
++[	-6.27296645, -0.00050217, 0.00030768, 7.27246429, 0.99846590, 0.99919016, 0.49320339],\
++[	-6.27296665, -0.00050209, 0.00030763, 7.27246456, 0.99846615, 0.99919029, 0.49320338],\
++[	-6.27296684, -0.00050200, 0.00030758, 7.27246484, 0.99846640, 0.99919042, 0.49320344],\
++[	-6.27296704, -0.00050192, 0.00030753, 7.27246511, 0.99846665, 0.99919055, 0.49320353],\
++[	-6.27296723, -0.00050184, 0.00030748, 7.27246539, 0.99846690, 0.99919068, 0.49320349],\
++[	-6.27296743, -0.00050176, 0.00030743, 7.27246567, 0.99846715, 0.99919081, 0.49320357],\
++[	-6.27296762, -0.00050168, 0.00030738, 7.27246594, 0.99846739, 0.99919094, 0.49320354],\
++[	-6.27296781, -0.00050160, 0.00030733, 7.27246622, 0.99846764, 0.99919108, 0.49320360],\
++[	-6.27296801, -0.00050152, 0.00030728, 7.27246649, 0.99846789, 0.99919121, 0.49320366],\
++[	-6.27296820, -0.00050143, 0.00030723, 7.27246677, 0.99846814, 0.99919134, 0.49320363],\
++[	-6.27296840, -0.00050135, 0.00030718, 7.27246704, 0.99846839, 0.99919147, 0.49320369],\
++[	-6.27296859, -0.00050127, 0.00030713, 7.27246732, 0.99846864, 0.99919160, 0.49320376],\
++[	-6.27296879, -0.00050119, 0.00030708, 7.27246760, 0.99846888, 0.99919173, 0.49320377],\
++[	-6.27296898, -0.00050111, 0.00030703, 7.27246787, 0.99846913, 0.99919186, 0.49320381],\
++[	-6.27296917, -0.00050103, 0.00030698, 7.27246815, 0.99846938, 0.99919199, 0.49320377],\
++[	-6.27296937, -0.00050095, 0.00030693, 7.27246842, 0.99846963, 0.99919212, 0.49320384],\
++[	-6.27296956, -0.00050087, 0.00030688, 7.27246870, 0.99846987, 0.99919225, 0.49320380],\
++[	-6.27296976, -0.00050079, 0.00030683, 7.27246897, 0.99847012, 0.99919238, 0.49320387],\
++[	-6.27296995, -0.00050070, 0.00030678, 7.27246925, 0.99847037, 0.99919251, 0.49320387],\
++[	-6.27297014, -0.00050062, 0.00030673, 7.27246952, 0.99847062, 0.99919265, 0.49320397],\
++[	-6.27297034, -0.00050054, 0.00030668, 7.27246980, 0.99847086, 0.99919278, 0.49320397],\
++[	-6.27297053, -0.00050046, 0.00030663, 7.27247007, 0.99847111, 0.99919291, 0.49320399],\
++[	-6.27297073, -0.00050038, 0.00030658, 7.27247034, 0.99847136, 0.99919304, 0.49320405],\
++[	-6.27297092, -0.00050030, 0.00030653, 7.27247062, 0.99847161, 0.99919317, 0.49320409],\
++[	-6.27297111, -0.00050022, 0.00030648, 7.27247089, 0.99847185, 0.99919330, 0.49320412],\
++[	-6.27297131, -0.00050014, 0.00030643, 7.27247117, 0.99847210, 0.99919343, 0.49320414],\
++[	-6.27297150, -0.00050006, 0.00030638, 7.27247144, 0.99847235, 0.99919356, 0.49320414],\
++[	-6.27297169, -0.00049998, 0.00030633, 7.27247172, 0.99847259, 0.99919369, 0.49320417],\
++[	-6.27297189, -0.00049990, 0.00030629, 7.27247199, 0.99847284, 0.99919382, 0.49320418],\
++[	-6.27297208, -0.00049982, 0.00030624, 7.27247226, 0.99847309, 0.99919395, 0.49320420],\
++[	-6.27297227, -0.00049973, 0.00030619, 7.27247254, 0.99847333, 0.99919408, 0.49320426],\
++[	-6.27297246, -0.00049965, 0.00030614, 7.27247281, 0.99847358, 0.99919421, 0.49320420],\
++[	-6.27297266, -0.00049957, 0.00030609, 7.27247308, 0.99847383, 0.99919434, 0.49320435],\
++[	-6.27297285, -0.00049949, 0.00030604, 7.27247336, 0.99847407, 0.99919447, 0.49320431],\
++[	-6.27297304, -0.00049941, 0.00030599, 7.27247363, 0.99847432, 0.99919460, 0.49320437],\
++[	-6.27297324, -0.00049933, 0.00030594, 7.27247390, 0.99847457, 0.99919473, 0.49320437],\
++[	-6.27297343, -0.00049925, 0.00030589, 7.27247418, 0.99847481, 0.99919486, 0.49320443],\
++[	-6.27297362, -0.00049917, 0.00030584, 7.27247445, 0.99847506, 0.99919499, 0.49320448],\
++[	-6.27297381, -0.00049909, 0.00030579, 7.27247472, 0.99847530, 0.99919512, 0.49320448],\
++[	-6.27297401, -0.00049901, 0.00030574, 7.27247500, 0.99847555, 0.99919525, 0.49320449],\
++[	-6.27297420, -0.00049893, 0.00030569, 7.27247527, 0.99847580, 0.99919538, 0.49320451],\
++[	-6.27297439, -0.00049885, 0.00030564, 7.27247554, 0.99847604, 0.99919551, 0.49320453],\
++[	-6.27297458, -0.00049877, 0.00030559, 7.27247582, 0.99847629, 0.99919564, 0.49320461],\
++[	-6.27297478, -0.00049869, 0.00030554, 7.27247609, 0.99847653, 0.99919577, 0.49320461],\
++[	-6.27297497, -0.00049861, 0.00030550, 7.27247636, 0.99847678, 0.99919590, 0.49320465],\
++[	-6.27297516, -0.00049853, 0.00030545, 7.27247663, 0.99847702, 0.99919603, 0.49320475],\
++[	-6.27297535, -0.00049845, 0.00030540, 7.27247691, 0.99847727, 0.99919616, 0.49320473],\
++[	-6.27297554, -0.00049837, 0.00030535, 7.27247718, 0.99847751, 0.99919629, 0.49320474],\
++[	-6.27297574, -0.00049829, 0.00030530, 7.27247745, 0.99847776, 0.99919641, 0.49320475],\
++[	-6.27297593, -0.00049821, 0.00030525, 7.27247772, 0.99847800, 0.99919654, 0.49320486],\
++[	-6.27297612, -0.00049813, 0.00030520, 7.27247799, 0.99847825, 0.99919667, 0.49320483],\
++[	-6.27297631, -0.00049805, 0.00030515, 7.27247827, 0.99847849, 0.99919680, 0.49320494],\
++[	-6.27297650, -0.00049797, 0.00030510, 7.27247854, 0.99847874, 0.99919693, 0.49320494],\
++[	-6.27297670, -0.00049789, 0.00030505, 7.27247881, 0.99847898, 0.99919706, 0.49320488],\
++[	-6.27297689, -0.00049781, 0.00030500, 7.27247908, 0.99847923, 0.99919719, 0.49320497],\
++[	-6.27297708, -0.00049773, 0.00030495, 7.27247935, 0.99847947, 0.99919732, 0.49320498],\
++[	-6.27297727, -0.00049765, 0.00030491, 7.27247962, 0.99847972, 0.99919745, 0.49320504],\
++[	-6.27297746, -0.00049757, 0.00030486, 7.27247990, 0.99847996, 0.99919758, 0.49320498],\
++[	-6.27297765, -0.00049749, 0.00030481, 7.27248017, 0.99848021, 0.99919771, 0.49320508],\
++[	-6.27297784, -0.00049741, 0.00030476, 7.27248044, 0.99848045, 0.99919784, 0.49320506],\
++[	-6.27297804, -0.00049733, 0.00030471, 7.27248071, 0.99848070, 0.99919796, 0.49320512],\
++[	-6.27297823, -0.00049725, 0.00030466, 7.27248098, 0.99848094, 0.99919809, 0.49320520],\
++[	-6.27297842, -0.00049717, 0.00030461, 7.27248125, 0.99848118, 0.99919822, 0.49320518],\
++[	-6.27297861, -0.00049709, 0.00030456, 7.27248152, 0.99848143, 0.99919835, 0.49320519],\
++[	-6.27297880, -0.00049701, 0.00030451, 7.27248179, 0.99848167, 0.99919848, 0.49320524],\
++[	-6.27297899, -0.00049693, 0.00030446, 7.27248206, 0.99848192, 0.99919861, 0.49320527],\
++[	-6.27297918, -0.00049685, 0.00030442, 7.27248233, 0.99848216, 0.99919874, 0.49320529],\
++[	-6.27297937, -0.00049677, 0.00030437, 7.27248260, 0.99848240, 0.99919887, 0.49320530],\
++[	-6.27297956, -0.00049669, 0.00030432, 7.27248288, 0.99848265, 0.99919899, 0.49320533],\
++[	-6.27297975, -0.00049661, 0.00030427, 7.27248315, 0.99848289, 0.99919912, 0.49320533],\
++[	-6.27297994, -0.00049653, 0.00030422, 7.27248342, 0.99848313, 0.99919925, 0.49320545],\
++[	-6.27298013, -0.00049645, 0.00030417, 7.27248369, 0.99848338, 0.99919938, 0.49320550],\
++[	-6.27298033, -0.00049637, 0.00030412, 7.27248396, 0.99848362, 0.99919951, 0.49320544],\
++[	-6.27298052, -0.00049629, 0.00030407, 7.27248423, 0.99848386, 0.99919964, 0.49320542],\
++[	-6.27298071, -0.00049621, 0.00030403, 7.27248450, 0.99848411, 0.99919976, 0.49320549],\
++[	-6.27298090, -0.00049613, 0.00030398, 7.27248477, 0.99848435, 0.99919989, 0.49320553],\
++[	-6.27298109, -0.00049605, 0.00030393, 7.27248504, 0.99848459, 0.99920002, 0.49320549],\
++[	-6.27298128, -0.00049597, 0.00030388, 7.27248531, 0.99848484, 0.99920015, 0.49320559],\
++[	-6.27298147, -0.00049589, 0.00030383, 7.27248557, 0.99848508, 0.99920028, 0.49320560],\
++[	-6.27298166, -0.00049581, 0.00030378, 7.27248584, 0.99848532, 0.99920041, 0.49320562],\
++[	-6.27298185, -0.00049573, 0.00030373, 7.27248611, 0.99848556, 0.99920053, 0.49320572],\
++[	-6.27298204, -0.00049565, 0.00030368, 7.27248638, 0.99848581, 0.99920066, 0.49320570],\
++[	-6.27298223, -0.00049557, 0.00030364, 7.27248665, 0.99848605, 0.99920079, 0.49320571],\
++[	-6.27298242, -0.00049550, 0.00030359, 7.27248692, 0.99848629, 0.99920092, 0.49320573],\
++[	-6.27298261, -0.00049542, 0.00030354, 7.27248719, 0.99848653, 0.99920105, 0.49320576],\
++[	-6.27298280, -0.00049534, 0.00030349, 7.27248746, 0.99848678, 0.99920117, 0.49320585],\
++[	-6.27298299, -0.00049526, 0.00030344, 7.27248773, 0.99848702, 0.99920130, 0.49320584],\
++[	-6.27298318, -0.00049518, 0.00030339, 7.27248800, 0.99848726, 0.99920143, 0.49320590],\
++[	-6.27298336, -0.00049510, 0.00030334, 7.27248827, 0.99848750, 0.99920156, 0.49320592],\
++[	-6.27298355, -0.00049502, 0.00030330, 7.27248853, 0.99848774, 0.99920168, 0.49320594],\
++[	-6.27298374, -0.00049494, 0.00030325, 7.27248880, 0.99848799, 0.99920181, 0.49320595],\
++[	-6.27298393, -0.00049486, 0.00030320, 7.27248907, 0.99848823, 0.99920194, 0.49320597],\
++[	-6.27298412, -0.00049478, 0.00030315, 7.27248934, 0.99848847, 0.99920207, 0.49320596],\
++[	-6.27298431, -0.00049470, 0.00030310, 7.27248961, 0.99848871, 0.99920220, 0.49320603],\
++[	-6.27298450, -0.00049462, 0.00030305, 7.27248988, 0.99848895, 0.99920232, 0.49320613],\
++[	-6.27298469, -0.00049455, 0.00030300, 7.27249014, 0.99848919, 0.99920245, 0.49320607],\
++[	-6.27298488, -0.00049447, 0.00030296, 7.27249041, 0.99848944, 0.99920258, 0.49320616],\
++[	-6.27298507, -0.00049439, 0.00030291, 7.27249068, 0.99848968, 0.99920270, 0.49320618],\
++[	-6.27298526, -0.00049431, 0.00030286, 7.27249095, 0.99848992, 0.99920283, 0.49320613],\
++[	-6.27298545, -0.00049423, 0.00030281, 7.27249122, 0.99849016, 0.99920296, 0.49320620],\
++[	-6.27298563, -0.00049415, 0.00030276, 7.27249148, 0.99849040, 0.99920309, 0.49320622],\
++[	-6.27298582, -0.00049407, 0.00030271, 7.27249175, 0.99849064, 0.99920321, 0.49320626],\
++[	-6.27298601, -0.00049399, 0.00030267, 7.27249202, 0.99849088, 0.99920334, 0.49320625],\
++[	-6.27298620, -0.00049391, 0.00030262, 7.27249229, 0.99849112, 0.99920347, 0.49320640],\
++[	-6.27298639, -0.00049384, 0.00030257, 7.27249255, 0.99849136, 0.99920360, 0.49320640],\
++[	-6.27298658, -0.00049376, 0.00030252, 7.27249282, 0.99849161, 0.99920372, 0.49320636],\
++[	-6.27298677, -0.00049368, 0.00030247, 7.27249309, 0.99849185, 0.99920385, 0.49320641],\
++[	-6.27298695, -0.00049360, 0.00030242, 7.27249336, 0.99849209, 0.99920398, 0.49320644],\
++[	-6.27298714, -0.00049352, 0.00030238, 7.27249362, 0.99849233, 0.99920410, 0.49320643],\
++[	-6.27298733, -0.00049344, 0.00030233, 7.27249389, 0.99849257, 0.99920423, 0.49320647],\
++[	-6.27298752, -0.00049336, 0.00030228, 7.27249416, 0.99849281, 0.99920436, 0.49320649],\
++[	-6.27298771, -0.00049328, 0.00030223, 7.27249442, 0.99849305, 0.99920448, 0.49320659],\
++[	-6.27298790, -0.00049321, 0.00030218, 7.27249469, 0.99849329, 0.99920461, 0.49320657],\
++[	-6.27298808, -0.00049313, 0.00030214, 7.27249496, 0.99849353, 0.99920474, 0.49320661],\
++[	-6.27298827, -0.00049305, 0.00030209, 7.27249522, 0.99849377, 0.99920486, 0.49320660],\
++[	-6.27298846, -0.00049297, 0.00030204, 7.27249549, 0.99849401, 0.99920499, 0.49320663],\
++[	-6.27298865, -0.00049289, 0.00030199, 7.27249576, 0.99849425, 0.99920512, 0.49320673],\
++[	-6.27298883, -0.00049281, 0.00030194, 7.27249602, 0.99849449, 0.99920524, 0.49320673],\
++[	-6.27298902, -0.00049273, 0.00030189, 7.27249629, 0.99849473, 0.99920537, 0.49320669],\
++[	-6.27298921, -0.00049266, 0.00030185, 7.27249655, 0.99849497, 0.99920550, 0.49320677],\
++[	-6.27298940, -0.00049258, 0.00030180, 7.27249682, 0.99849521, 0.99920562, 0.49320680],\
++[	-6.27298959, -0.00049250, 0.00030175, 7.27249709, 0.99849545, 0.99920575, 0.49320687],\
++[	-6.27298977, -0.00049242, 0.00030170, 7.27249735, 0.99849569, 0.99920588, 0.49320693],\
++[	-6.27298996, -0.00049234, 0.00030165, 7.27249762, 0.99849593, 0.99920600, 0.49320681],\
++[	-6.27299015, -0.00049226, 0.00030161, 7.27249788, 0.99849616, 0.99920613, 0.49320699],\
++[	-6.27299033, -0.00049219, 0.00030156, 7.27249815, 0.99849640, 0.99920626, 0.49320687],\
++[	-6.27299052, -0.00049211, 0.00030151, 7.27249841, 0.99849664, 0.99920638, 0.49320699],\
++[	-6.27299071, -0.00049203, 0.00030146, 7.27249868, 0.99849688, 0.99920651, 0.49320705],\
++[	-6.27299090, -0.00049195, 0.00030141, 7.27249894, 0.99849712, 0.99920663, 0.49320709],\
++[	-6.27299108, -0.00049187, 0.00030137, 7.27249921, 0.99849736, 0.99920676, 0.49320704],\
++[	-6.27299127, -0.00049180, 0.00030132, 7.27249948, 0.99849760, 0.99920689, 0.49320700],\
++[	-6.27299146, -0.00049172, 0.00030127, 7.27249974, 0.99849784, 0.99920701, 0.49320709],\
++[	-6.27299164, -0.00049164, 0.00030122, 7.27250001, 0.99849808, 0.99920714, 0.49320722],\
++[	-6.27299183, -0.00049156, 0.00030118, 7.27250027, 0.99849831, 0.99920726, 0.49320713],\
++[	-6.27299202, -0.00049148, 0.00030113, 7.27250053, 0.99849855, 0.99920739, 0.49320717],\
++[	-6.27299220, -0.00049140, 0.00030108, 7.27250080, 0.99849879, 0.99920752, 0.49320720],\
++[	-6.27299239, -0.00049133, 0.00030103, 7.27250106, 0.99849903, 0.99920764, 0.49320724],\
++[	-6.27299258, -0.00049125, 0.00030098, 7.27250133, 0.99849927, 0.99920777, 0.49320731],\
++[	-6.27299276, -0.00049117, 0.00030094, 7.27250159, 0.99849951, 0.99920789, 0.49320733],\
++[	-6.27299295, -0.00049109, 0.00030089, 7.27250186, 0.99849974, 0.99920802, 0.49320736],\
++[	-6.27299314, -0.00049102, 0.00030084, 7.27250212, 0.99849998, 0.99920814, 0.49320742],\
++[	-6.27299332, -0.00049094, 0.00030079, 7.27250239, 0.99850022, 0.99920827, 0.49320737],\
++[	-6.27299351, -0.00049086, 0.00030075, 7.27250265, 0.99850046, 0.99920840, 0.49320741],\
++[	-6.27299370, -0.00049078, 0.00030070, 7.27250291, 0.99850070, 0.99920852, 0.49320747],\
++[	-6.27299388, -0.00049070, 0.00030065, 7.27250318, 0.99850093, 0.99920865, 0.49320746],\
++[	-6.27299407, -0.00049063, 0.00030060, 7.27250344, 0.99850117, 0.99920877, 0.49320747],\
++[	-6.27299425, -0.00049055, 0.00030055, 7.27250371, 0.99850141, 0.99920890, 0.49320753],\
++[	-6.27299444, -0.00049047, 0.00030051, 7.27250397, 0.99850165, 0.99920902, 0.49320754],\
++[	-6.27299463, -0.00049039, 0.00030046, 7.27250423, 0.99850188, 0.99920915, 0.49320761],\
++[	-6.27299481, -0.00049032, 0.00030041, 7.27250450, 0.99850212, 0.99920927, 0.49320761],\
++[	-6.27299500, -0.00049024, 0.00030036, 7.27250476, 0.99850236, 0.99920940, 0.49320763],\
++[	-6.27299518, -0.00049016, 0.00030032, 7.27250502, 0.99850260, 0.99920952, 0.49320763],\
++[	-6.27299537, -0.00049008, 0.00030027, 7.27250529, 0.99850283, 0.99920965, 0.49320764],\
++[	-6.27299556, -0.00049000, 0.00030022, 7.27250555, 0.99850307, 0.99920977, 0.49320768],\
++[	-6.27299574, -0.00048993, 0.00030017, 7.27250581, 0.99850331, 0.99920990, 0.49320774],\
++[	-6.27299593, -0.00048985, 0.00030013, 7.27250608, 0.99850354, 0.99921002, 0.49320770],\
++[	-6.27299611, -0.00048977, 0.00030008, 7.27250634, 0.99850378, 0.99921015, 0.49320782],\
++[	-6.27299630, -0.00048969, 0.00030003, 7.27250660, 0.99850402, 0.99921027, 0.49320781],\
++[	-6.27299648, -0.00048962, 0.00029998, 7.27250687, 0.99850426, 0.99921040, 0.49320784],\
++[	-6.27299667, -0.00048954, 0.00029994, 7.27250713, 0.99850449, 0.99921052, 0.49320787],\
++[	-6.27299685, -0.00048946, 0.00029989, 7.27250739, 0.99850473, 0.99921065, 0.49320791],\
++[	-6.27299704, -0.00048938, 0.00029984, 7.27250765, 0.99850496, 0.99921077, 0.49320794],\
++[	-6.27299722, -0.00048931, 0.00029979, 7.27250792, 0.99850520, 0.99921090, 0.49320795],\
++[	-6.27299741, -0.00048923, 0.00029975, 7.27250818, 0.99850544, 0.99921102, 0.49320801],\
++[	-6.27299759, -0.00048915, 0.00029970, 7.27250844, 0.99850567, 0.99921115, 0.49320802],\
++[	-6.27299778, -0.00048908, 0.00029965, 7.27250870, 0.99850591, 0.99921127, 0.49320805],\
++[	-6.27299796, -0.00048900, 0.00029960, 7.27250896, 0.99850615, 0.99921140, 0.49320810],\
++[	-6.27299815, -0.00048892, 0.00029956, 7.27250923, 0.99850638, 0.99921152, 0.49320806],\
++[	-6.27299833, -0.00048884, 0.00029951, 7.27250949, 0.99850662, 0.99921165, 0.49320815],\
++[	-6.27299852, -0.00048877, 0.00029946, 7.27250975, 0.99850685, 0.99921177, 0.49320816],\
++[	-6.27299870, -0.00048869, 0.00029941, 7.27251001, 0.99850709, 0.99921190, 0.49320817],\
++[	-6.27299889, -0.00048861, 0.00029937, 7.27251027, 0.99850733, 0.99921202, 0.49320820],\
++[	-6.27299907, -0.00048854, 0.00029932, 7.27251054, 0.99850756, 0.99921214, 0.49320826],\
++[	-6.27299926, -0.00048846, 0.00029927, 7.27251080, 0.99850780, 0.99921227, 0.49320827],\
++[	-6.27299944, -0.00048838, 0.00029923, 7.27251106, 0.99850803, 0.99921239, 0.49320823],\
++[	-6.27299962, -0.00048830, 0.00029918, 7.27251132, 0.99850827, 0.99921252, 0.49320833],\
++[	-6.27299981, -0.00048823, 0.00029913, 7.27251158, 0.99850850, 0.99921264, 0.49320833],\
++[	-6.27299999, -0.00048815, 0.00029908, 7.27251184, 0.99850874, 0.99921277, 0.49320839],\
++[	-6.27300018, -0.00048807, 0.00029904, 7.27251210, 0.99850897, 0.99921289, 0.49320841],\
++[	-6.27300036, -0.00048800, 0.00029899, 7.27251236, 0.99850921, 0.99921301, 0.49320850],\
++[	-6.27300055, -0.00048792, 0.00029894, 7.27251263, 0.99850944, 0.99921314, 0.49320846],\
++[	-6.27300073, -0.00048784, 0.00029890, 7.27251289, 0.99850968, 0.99921326, 0.49320848],\
++[	-6.27300091, -0.00048777, 0.00029885, 7.27251315, 0.99850991, 0.99921339, 0.49320847],\
++[	-6.27300110, -0.00048769, 0.00029880, 7.27251341, 0.99851015, 0.99921351, 0.49320858],\
++[	-6.27300128, -0.00048761, 0.00029875, 7.27251367, 0.99851038, 0.99921363, 0.49320864],\
++[	-6.27300146, -0.00048754, 0.00029871, 7.27251393, 0.99851062, 0.99921376, 0.49320855],\
++[	-6.27300165, -0.00048746, 0.00029866, 7.27251419, 0.99851085, 0.99921388, 0.49320856],\
++[	-6.27300183, -0.00048738, 0.00029861, 7.27251445, 0.99851109, 0.99921401, 0.49320863],\
++[	-6.27300202, -0.00048730, 0.00029857, 7.27251471, 0.99851132, 0.99921413, 0.49320867],\
++[	-6.27300220, -0.00048723, 0.00029852, 7.27251497, 0.99851156, 0.99921425, 0.49320861],\
++[	-6.27300238, -0.00048715, 0.00029847, 7.27251523, 0.99851179, 0.99921438, 0.49320874],\
++[	-6.27300257, -0.00048707, 0.00029842, 7.27251549, 0.99851202, 0.99921450, 0.49320874],\
++[	-6.27300275, -0.00048700, 0.00029838, 7.27251575, 0.99851226, 0.99921462, 0.49320881],\
++[	-6.27300293, -0.00048692, 0.00029833, 7.27251601, 0.99851249, 0.99921475, 0.49320880],\
++[	-6.27300312, -0.00048685, 0.00029828, 7.27251627, 0.99851273, 0.99921487, 0.49320887],\
++[	-6.27300330, -0.00048677, 0.00029824, 7.27251653, 0.99851296, 0.99921499, 0.49320886],\
++[	-6.27300348, -0.00048669, 0.00029819, 7.27251679, 0.99851320, 0.99921512, 0.49320893],\
++[	-6.27300367, -0.00048662, 0.00029814, 7.27251705, 0.99851343, 0.99921524, 0.49320893],\
++[	-6.27300385, -0.00048654, 0.00029810, 7.27251731, 0.99851366, 0.99921536, 0.49320895],\
++[	-6.27300403, -0.00048646, 0.00029805, 7.27251757, 0.99851390, 0.99921549, 0.49320892],\
++[	-6.27300421, -0.00048639, 0.00029800, 7.27251783, 0.99851413, 0.99921561, 0.49320898],\
++[	-6.27300440, -0.00048631, 0.00029796, 7.27251809, 0.99851436, 0.99921573, 0.49320901],\
++[	-6.27300458, -0.00048623, 0.00029791, 7.27251835, 0.99851460, 0.99921586, 0.49320901],\
++[	-6.27300476, -0.00048616, 0.00029786, 7.27251861, 0.99851483, 0.99921598, 0.49320912],\
++[	-6.27300495, -0.00048608, 0.00029782, 7.27251886, 0.99851506, 0.99921610, 0.49320910],\
++[	-6.27300513, -0.00048600, 0.00029777, 7.27251912, 0.99851530, 0.99921623, 0.49320913],\
++[	-6.27300531, -0.00048593, 0.00029772, 7.27251938, 0.99851553, 0.99921635, 0.49320917],\
++[	-6.27300549, -0.00048585, 0.00029768, 7.27251964, 0.99851576, 0.99921647, 0.49320916],\
++[	-6.27300568, -0.00048578, 0.00029763, 7.27251990, 0.99851600, 0.99921660, 0.49320920],\
++[	-6.27300586, -0.00048570, 0.00029758, 7.27252016, 0.99851623, 0.99921672, 0.49320924],\
++[	-6.27300604, -0.00048562, 0.00029753, 7.27252042, 0.99851646, 0.99921684, 0.49320926],\
++[	-6.27300622, -0.00048555, 0.00029749, 7.27252068, 0.99851669, 0.99921696, 0.49320930],\
++[	-6.27300640, -0.00048547, 0.00029744, 7.27252093, 0.99851693, 0.99921709, 0.49320931],\
++[	-6.27300659, -0.00048539, 0.00029739, 7.27252119, 0.99851716, 0.99921721, 0.49320938],\
++[	-6.27300677, -0.00048532, 0.00029735, 7.27252145, 0.99851739, 0.99921733, 0.49320939],\
++[	-6.27300695, -0.00048524, 0.00029730, 7.27252171, 0.99851763, 0.99921746, 0.49320948],\
++[	-6.27300713, -0.00048517, 0.00029725, 7.27252197, 0.99851786, 0.99921758, 0.49320954],\
++[	-6.27300732, -0.00048509, 0.00029721, 7.27252222, 0.99851809, 0.99921770, 0.49320950],\
++[	-6.27300750, -0.00048501, 0.00029716, 7.27252248, 0.99851832, 0.99921782, 0.49320952],\
++[	-6.27300768, -0.00048494, 0.00029712, 7.27252274, 0.99851855, 0.99921795, 0.49320954],\
++[	-6.27300786, -0.00048486, 0.00029707, 7.27252300, 0.99851879, 0.99921807, 0.49320960],\
++[	-6.27300804, -0.00048479, 0.00029702, 7.27252326, 0.99851902, 0.99921819, 0.49320959],\
++[	-6.27300822, -0.00048471, 0.00029698, 7.27252351, 0.99851925, 0.99921831, 0.49320958],\
++[	-6.27300841, -0.00048463, 0.00029693, 7.27252377, 0.99851948, 0.99921844, 0.49320965],\
++[	-6.27300859, -0.00048456, 0.00029688, 7.27252403, 0.99851971, 0.99921856, 0.49320967],\
++[	-6.27300877, -0.00048448, 0.00029684, 7.27252429, 0.99851995, 0.99921868, 0.49320972],\
++[	-6.27300895, -0.00048441, 0.00029679, 7.27252454, 0.99852018, 0.99921880, 0.49320973],\
++[	-6.27300913, -0.00048433, 0.00029674, 7.27252480, 0.99852041, 0.99921893, 0.49320972],\
++[	-6.27300931, -0.00048426, 0.00029670, 7.27252506, 0.99852064, 0.99921905, 0.49320980],\
++[	-6.27300949, -0.00048418, 0.00029665, 7.27252531, 0.99852087, 0.99921917, 0.49320981],\
++[	-6.27300968, -0.00048410, 0.00029660, 7.27252557, 0.99852110, 0.99921929, 0.49320974],\
++[	-6.27300986, -0.00048403, 0.00029656, 7.27252583, 0.99852134, 0.99921941, 0.49320985],\
++[	-6.27301004, -0.00048395, 0.00029651, 7.27252608, 0.99852157, 0.99921954, 0.49320992],\
++[	-6.27301022, -0.00048388, 0.00029646, 7.27252634, 0.99852180, 0.99921966, 0.49320992],\
++[	-6.27301040, -0.00048380, 0.00029642, 7.27252660, 0.99852203, 0.99921978, 0.49320993],\
++[	-6.27301058, -0.00048373, 0.00029637, 7.27252685, 0.99852226, 0.99921990, 0.49320993],\
++[	-6.27301076, -0.00048365, 0.00029633, 7.27252711, 0.99852249, 0.99922002, 0.49321001],\
++[	-6.27301094, -0.00048357, 0.00029628, 7.27252737, 0.99852272, 0.99922015, 0.49321003],\
++[	-6.27301112, -0.00048350, 0.00029623, 7.27252762, 0.99852295, 0.99922027, 0.49321005],\
++[	-6.27301130, -0.00048342, 0.00029619, 7.27252788, 0.99852318, 0.99922039, 0.49321008],\
++[	-6.27301148, -0.00048335, 0.00029614, 7.27252814, 0.99852341, 0.99922051, 0.49321008],\
++[	-6.27301166, -0.00048327, 0.00029609, 7.27252839, 0.99852364, 0.99922063, 0.49321010],\
++[	-6.27301185, -0.00048320, 0.00029605, 7.27252865, 0.99852388, 0.99922075, 0.49321017],\
++[	-6.27301203, -0.00048312, 0.00029600, 7.27252890, 0.99852411, 0.99922088, 0.49321023],\
++[	-6.27301221, -0.00048305, 0.00029596, 7.27252916, 0.99852434, 0.99922100, 0.49321020],\
++[	-6.27301239, -0.00048297, 0.00029591, 7.27252942, 0.99852457, 0.99922112, 0.49321023],\
++[	-6.27301257, -0.00048290, 0.00029586, 7.27252967, 0.99852480, 0.99922124, 0.49321024],\
++[	-6.27301275, -0.00048282, 0.00029582, 7.27252993, 0.99852503, 0.99922136, 0.49321030],\
++[	-6.27301293, -0.00048275, 0.00029577, 7.27253018, 0.99852526, 0.99922148, 0.49321031],\
++[	-6.27301311, -0.00048267, 0.00029572, 7.27253044, 0.99852549, 0.99922161, 0.49321030],\
++[	-6.27301329, -0.00048259, 0.00029568, 7.27253069, 0.99852572, 0.99922173, 0.49321030],\
++[	-6.27301347, -0.00048252, 0.00029563, 7.27253095, 0.99852595, 0.99922185, 0.49321039],\
++[	-6.27301365, -0.00048244, 0.00029559, 7.27253120, 0.99852618, 0.99922197, 0.49321037],\
++[	-6.27301383, -0.00048237, 0.00029554, 7.27253146, 0.99852641, 0.99922209, 0.49321046],\
++[	-6.27301401, -0.00048229, 0.00029549, 7.27253171, 0.99852664, 0.99922221, 0.49321048],\
++[	-6.27301419, -0.00048222, 0.00029545, 7.27253197, 0.99852687, 0.99922233, 0.49321049],\
++[	-6.27301437, -0.00048214, 0.00029540, 7.27253222, 0.99852710, 0.99922245, 0.49321046],\
++[	-6.27301455, -0.00048207, 0.00029536, 7.27253248, 0.99852732, 0.99922258, 0.49321053],\
++[	-6.27301473, -0.00048199, 0.00029531, 7.27253273, 0.99852755, 0.99922270, 0.49321060],\
++[	-6.27301491, -0.00048192, 0.00029526, 7.27253299, 0.99852778, 0.99922282, 0.49321066],\
++[	-6.27301509, -0.00048184, 0.00029522, 7.27253324, 0.99852801, 0.99922294, 0.49321062],\
++[	-6.27301526, -0.00048177, 0.00029517, 7.27253350, 0.99852824, 0.99922306, 0.49321065],\
++[	-6.27301544, -0.00048169, 0.00029513, 7.27253375, 0.99852847, 0.99922318, 0.49321069],\
++[	-6.27301562, -0.00048162, 0.00029508, 7.27253400, 0.99852870, 0.99922330, 0.49321066],\
++[	-6.27301580, -0.00048154, 0.00029503, 7.27253426, 0.99852893, 0.99922342, 0.49321075],\
++[	-6.27301598, -0.00048147, 0.00029499, 7.27253451, 0.99852916, 0.99922354, 0.49321074],\
++[	-6.27301616, -0.00048139, 0.00029494, 7.27253477, 0.99852939, 0.99922366, 0.49321082],\
++[	-6.27301634, -0.00048132, 0.00029490, 7.27253502, 0.99852962, 0.99922378, 0.49321081],\
++[	-6.27301652, -0.00048124, 0.00029485, 7.27253528, 0.99852984, 0.99922391, 0.49321083],\
++[	-6.27301670, -0.00048117, 0.00029480, 7.27253553, 0.99853007, 0.99922403, 0.49321094],\
++[	-6.27301688, -0.00048109, 0.00029476, 7.27253578, 0.99853030, 0.99922415, 0.49321096],\
++[	-6.27301706, -0.00048102, 0.00029471, 7.27253604, 0.99853053, 0.99922427, 0.49321093],\
++[	-6.27301724, -0.00048095, 0.00029467, 7.27253629, 0.99853076, 0.99922439, 0.49321094],\
++[	-6.27301741, -0.00048087, 0.00029462, 7.27253654, 0.99853099, 0.99922451, 0.49321098],\
++[	-6.27301759, -0.00048080, 0.00029458, 7.27253680, 0.99853121, 0.99922463, 0.49321102],\
++[	-6.27301777, -0.00048072, 0.00029453, 7.27253705, 0.99853144, 0.99922475, 0.49321101],\
++[	-6.27301795, -0.00048065, 0.00029448, 7.27253730, 0.99853167, 0.99922487, 0.49321109],\
++[	-6.27301813, -0.00048057, 0.00029444, 7.27253756, 0.99853190, 0.99922499, 0.49321107],\
++[	-6.27301831, -0.00048050, 0.00029439, 7.27253781, 0.99853213, 0.99922511, 0.49321107],\
++[	-6.27301849, -0.00048042, 0.00029435, 7.27253806, 0.99853235, 0.99922523, 0.49321110],\
++[	-6.27301866, -0.00048035, 0.00029430, 7.27253832, 0.99853258, 0.99922535, 0.49321118],\
++[	-6.27301884, -0.00048027, 0.00029426, 7.27253857, 0.99853281, 0.99922547, 0.49321119],\
++[	-6.27301902, -0.00048020, 0.00029421, 7.27253882, 0.99853304, 0.99922559, 0.49321116],\
++[	-6.27301920, -0.00048012, 0.00029416, 7.27253907, 0.99853327, 0.99922571, 0.49321127],\
++[	-6.27301938, -0.00048005, 0.00029412, 7.27253933, 0.99853349, 0.99922583, 0.49321123],\
++[	-6.27301956, -0.00047998, 0.00029407, 7.27253958, 0.99853372, 0.99922595, 0.49321129],\
++[	-6.27301973, -0.00047990, 0.00029403, 7.27253983, 0.99853395, 0.99922607, 0.49321135],\
++[	-6.27301991, -0.00047983, 0.00029398, 7.27254008, 0.99853418, 0.99922619, 0.49321135],\
++[	-6.27302009, -0.00047975, 0.00029394, 7.27254034, 0.99853440, 0.99922631, 0.49321139],\
++[	-6.27302027, -0.00047968, 0.00029389, 7.27254059, 0.99853463, 0.99922643, 0.49321146],\
++[	-6.27302044, -0.00047960, 0.00029384, 7.27254084, 0.99853486, 0.99922655, 0.49321142],\
++[	-6.27302062, -0.00047953, 0.00029380, 7.27254109, 0.99853508, 0.99922667, 0.49321144],\
++[	-6.27302080, -0.00047946, 0.00029375, 7.27254135, 0.99853531, 0.99922679, 0.49321144],\
++[	-6.27302098, -0.00047938, 0.00029371, 7.27254160, 0.99853554, 0.99922691, 0.49321157],\
++[	-6.27302116, -0.00047931, 0.00029366, 7.27254185, 0.99853577, 0.99922703, 0.49321152],\
++[	-6.27302133, -0.00047923, 0.00029362, 7.27254210, 0.99853599, 0.99922715, 0.49321153],\
++[	-6.27302151, -0.00047916, 0.00029357, 7.27254235, 0.99853622, 0.99922727, 0.49321157],\
++[	-6.27302169, -0.00047908, 0.00029353, 7.27254260, 0.99853645, 0.99922739, 0.49321160],\
++[	-6.27302187, -0.00047901, 0.00029348, 7.27254286, 0.99853667, 0.99922751, 0.49321170],\
++[	-6.27302204, -0.00047894, 0.00029344, 7.27254311, 0.99853690, 0.99922763, 0.49321172],\
++[	-6.27302222, -0.00047886, 0.00029339, 7.27254336, 0.99853712, 0.99922775, 0.49321163],\
++[	-6.27302240, -0.00047879, 0.00029334, 7.27254361, 0.99853735, 0.99922787, 0.49321166],\
++[	-6.27302257, -0.00047871, 0.00029330, 7.27254386, 0.99853758, 0.99922799, 0.49321175],\
++[	-6.27302275, -0.00047864, 0.00029325, 7.27254411, 0.99853780, 0.99922811, 0.49321177],\
++[	-6.27302293, -0.00047857, 0.00029321, 7.27254436, 0.99853803, 0.99922823, 0.49321185],\
++[	-6.27302311, -0.00047849, 0.00029316, 7.27254461, 0.99853826, 0.99922834, 0.49321182],\
++[	-6.27302328, -0.00047842, 0.00029312, 7.27254486, 0.99853848, 0.99922846, 0.49321190],\
++[	-6.27302346, -0.00047834, 0.00029307, 7.27254512, 0.99853871, 0.99922858, 0.49321191],\
++[	-6.27302364, -0.00047827, 0.00029303, 7.27254537, 0.99853893, 0.99922870, 0.49321187],\
++[	-6.27302381, -0.00047820, 0.00029298, 7.27254562, 0.99853916, 0.99922882, 0.49321186],\
++[	-6.27302399, -0.00047812, 0.00029294, 7.27254587, 0.99853939, 0.99922894, 0.49321193],\
++[	-6.27302417, -0.00047805, 0.00029289, 7.27254612, 0.99853961, 0.99922906, 0.49321201],\
++[	-6.27302434, -0.00047797, 0.00029285, 7.27254637, 0.99853984, 0.99922918, 0.49321205],\
++[	-6.27302452, -0.00047790, 0.00029280, 7.27254662, 0.99854006, 0.99922930, 0.49321210],\
++[	-6.27302470, -0.00047783, 0.00029276, 7.27254687, 0.99854029, 0.99922942, 0.49321211],\
++[	-6.27302487, -0.00047775, 0.00029271, 7.27254712, 0.99854051, 0.99922954, 0.49321206],\
++[	-6.27302505, -0.00047768, 0.00029267, 7.27254737, 0.99854074, 0.99922965, 0.49321212],\
++[	-6.27302523, -0.00047761, 0.00029262, 7.27254762, 0.99854096, 0.99922977, 0.49321212],\
++[	-6.27302540, -0.00047753, 0.00029257, 7.27254787, 0.99854119, 0.99922989, 0.49321221],\
++[	-6.27302558, -0.00047746, 0.00029253, 7.27254812, 0.99854141, 0.99923001, 0.49321218],\
++[	-6.27302575, -0.00047739, 0.00029248, 7.27254837, 0.99854164, 0.99923013, 0.49321223],\
++[	-6.27302593, -0.00047731, 0.00029244, 7.27254862, 0.99854186, 0.99923025, 0.49321227],\
++[	-6.27302611, -0.00047724, 0.00029239, 7.27254887, 0.99854209, 0.99923037, 0.49321227],\
++[	-6.27302628, -0.00047716, 0.00029235, 7.27254912, 0.99854231, 0.99923049, 0.49321226],\
++[	-6.27302646, -0.00047709, 0.00029230, 7.27254937, 0.99854254, 0.99923060, 0.49321229],\
++[	-6.27302664, -0.00047702, 0.00029226, 7.27254962, 0.99854276, 0.99923072, 0.49321232],\
++[	-6.27302681, -0.00047694, 0.00029221, 7.27254987, 0.99854299, 0.99923084, 0.49321239],\
++[	-6.27302699, -0.00047687, 0.00029217, 7.27255012, 0.99854321, 0.99923096, 0.49321240],\
++[	-6.27302716, -0.00047680, 0.00029212, 7.27255037, 0.99854344, 0.99923108, 0.49321246],\
++[	-6.27302734, -0.00047672, 0.00029208, 7.27255061, 0.99854366, 0.99923120, 0.49321244],\
++[	-6.27302751, -0.00047665, 0.00029203, 7.27255086, 0.99854388, 0.99923132, 0.49321242],\
++[	-6.27302769, -0.00047658, 0.00029199, 7.27255111, 0.99854411, 0.99923143, 0.49321242],\
++[	-6.27302787, -0.00047650, 0.00029194, 7.27255136, 0.99854433, 0.99923155, 0.49321258],\
++[	-6.27302804, -0.00047643, 0.00029190, 7.27255161, 0.99854456, 0.99923167, 0.49321251],\
++[	-6.27302822, -0.00047636, 0.00029185, 7.27255186, 0.99854478, 0.99923179, 0.49321261],\
++[	-6.27302839, -0.00047628, 0.00029181, 7.27255211, 0.99854501, 0.99923191, 0.49321264],\
++[	-6.27302857, -0.00047621, 0.00029176, 7.27255236, 0.99854523, 0.99923203, 0.49321265],\
++[	-6.27302874, -0.00047614, 0.00029172, 7.27255261, 0.99854545, 0.99923214, 0.49321268],\
++[	-6.27302892, -0.00047606, 0.00029167, 7.27255285, 0.99854568, 0.99923226, 0.49321269],\
++[	-6.27302909, -0.00047599, 0.00029163, 7.27255310, 0.99854590, 0.99923238, 0.49321277],\
++[	-6.27302927, -0.00047592, 0.00029158, 7.27255335, 0.99854612, 0.99923250, 0.49321272],\
++[	-6.27302944, -0.00047584, 0.00029154, 7.27255360, 0.99854635, 0.99923262, 0.49321278],\
++[	-6.27302962, -0.00047577, 0.00029150, 7.27255385, 0.99854657, 0.99923273, 0.49321287],\
++[	-6.27302979, -0.00047570, 0.00029145, 7.27255410, 0.99854679, 0.99923285, 0.49321280],\
++[	-6.27302997, -0.00047562, 0.00029141, 7.27255434, 0.99854702, 0.99923297, 0.49321291],\
++[	-6.27303014, -0.00047555, 0.00029136, 7.27255459, 0.99854724, 0.99923309, 0.49321279],\
++[	-6.27303032, -0.00047548, 0.00029132, 7.27255484, 0.99854746, 0.99923321, 0.49321284],\
++[	-6.27303049, -0.00047541, 0.00029127, 7.27255509, 0.99854769, 0.99923332, 0.49321288],\
++[	-6.27303067, -0.00047533, 0.00029123, 7.27255533, 0.99854791, 0.99923344, 0.49321294],\
++[	-6.27303084, -0.00047526, 0.00029118, 7.27255558, 0.99854813, 0.99923356, 0.49321292],\
++[	-6.27303102, -0.00047519, 0.00029114, 7.27255583, 0.99854836, 0.99923368, 0.49321300],\
++[	-6.27303119, -0.00047511, 0.00029109, 7.27255608, 0.99854858, 0.99923379, 0.49321302],\
++[	-6.27303137, -0.00047504, 0.00029105, 7.27255632, 0.99854880, 0.99923391, 0.49321303],\
++[	-6.27303154, -0.00047497, 0.00029100, 7.27255657, 0.99854903, 0.99923403, 0.49321311],\
++[	-6.27303171, -0.00047490, 0.00029096, 7.27255682, 0.99854925, 0.99923415, 0.49321311],\
++[	-6.27303189, -0.00047482, 0.00029091, 7.27255707, 0.99854947, 0.99923426, 0.49321315],\
++[	-6.27303206, -0.00047475, 0.00029087, 7.27255731, 0.99854969, 0.99923438, 0.49321319],\
++[	-6.27303224, -0.00047468, 0.00029082, 7.27255756, 0.99854992, 0.99923450, 0.49321317],\
++[	-6.27303241, -0.00047460, 0.00029078, 7.27255781, 0.99855014, 0.99923462, 0.49321321],\
++[	-6.27303259, -0.00047453, 0.00029073, 7.27255805, 0.99855036, 0.99923473, 0.49321326],\
++[	-6.27303276, -0.00047446, 0.00029069, 7.27255830, 0.99855058, 0.99923485, 0.49321318],\
++[	-6.27303293, -0.00047439, 0.00029065, 7.27255855, 0.99855081, 0.99923497, 0.49321326],\
++[	-6.27303311, -0.00047431, 0.00029060, 7.27255879, 0.99855103, 0.99923509, 0.49321333],\
++[	-6.27303328, -0.00047424, 0.00029056, 7.27255904, 0.99855125, 0.99923520, 0.49321333],\
++[	-6.27303345, -0.00047417, 0.00029051, 7.27255929, 0.99855147, 0.99923532, 0.49321344],\
++[	-6.27303363, -0.00047410, 0.00029047, 7.27255953, 0.99855169, 0.99923544, 0.49321337],\
++[	-6.27303380, -0.00047402, 0.00029042, 7.27255978, 0.99855192, 0.99923555, 0.49321345],\
++[	-6.27303398, -0.00047395, 0.00029038, 7.27256003, 0.99855214, 0.99923567, 0.49321337],\
++[	-6.27303415, -0.00047388, 0.00029033, 7.27256027, 0.99855236, 0.99923579, 0.49321344],\
++[	-6.27303432, -0.00047380, 0.00029029, 7.27256052, 0.99855258, 0.99923591, 0.49321346],\
++[	-6.27303450, -0.00047373, 0.00029025, 7.27256076, 0.99855280, 0.99923602, 0.49321354],\
++[	-6.27303467, -0.00047366, 0.00029020, 7.27256101, 0.99855302, 0.99923614, 0.49321353],\
++[	-6.27303484, -0.00047359, 0.00029016, 7.27256126, 0.99855325, 0.99923626, 0.49321361],\
++[	-6.27303502, -0.00047351, 0.00029011, 7.27256150, 0.99855347, 0.99923637, 0.49321358],\
++[	-6.27303519, -0.00047344, 0.00029007, 7.27256175, 0.99855369, 0.99923649, 0.49321363],\
++[	-6.27303536, -0.00047337, 0.00029002, 7.27256199, 0.99855391, 0.99923661, 0.49321367],\
++[	-6.27303554, -0.00047330, 0.00028998, 7.27256224, 0.99855413, 0.99923672, 0.49321364],\
++[	-6.27303571, -0.00047323, 0.00028993, 7.27256248, 0.99855435, 0.99923684, 0.49321377],\
++[	-6.27303588, -0.00047315, 0.00028989, 7.27256273, 0.99855457, 0.99923696, 0.49321375],\
++[	-6.27303606, -0.00047308, 0.00028985, 7.27256298, 0.99855479, 0.99923707, 0.49321379],\
++[	-6.27303623, -0.00047301, 0.00028980, 7.27256322, 0.99855501, 0.99923719, 0.49321377],\
++[	-6.27303640, -0.00047294, 0.00028976, 7.27256347, 0.99855524, 0.99923731, 0.49321372],\
++[	-6.27303658, -0.00047286, 0.00028971, 7.27256371, 0.99855546, 0.99923742, 0.49321383],\
++[	-6.27303675, -0.00047279, 0.00028967, 7.27256396, 0.99855568, 0.99923754, 0.49321384],\
++[	-6.27303692, -0.00047272, 0.00028962, 7.27256420, 0.99855590, 0.99923766, 0.49321394],\
++[	-6.27303709, -0.00047265, 0.00028958, 7.27256445, 0.99855612, 0.99923777, 0.49321386],\
++[	-6.27303727, -0.00047258, 0.00028954, 7.27256469, 0.99855634, 0.99923789, 0.49321390],\
++[	-6.27303744, -0.00047250, 0.00028949, 7.27256494, 0.99855656, 0.99923801, 0.49321401],\
++[	-6.27303761, -0.00047243, 0.00028945, 7.27256518, 0.99855678, 0.99923812, 0.49321394],\
++[	-6.27303778, -0.00047236, 0.00028940, 7.27256543, 0.99855700, 0.99923824, 0.49321395],\
++[	-6.27303796, -0.00047229, 0.00028936, 7.27256567, 0.99855722, 0.99923835, 0.49321400],\
++[	-6.27303813, -0.00047221, 0.00028931, 7.27256591, 0.99855744, 0.99923847, 0.49321392],\
++[	-6.27303830, -0.00047214, 0.00028927, 7.27256616, 0.99855766, 0.99923859, 0.49321409],\
++[	-6.27303847, -0.00047207, 0.00028923, 7.27256640, 0.99855788, 0.99923870, 0.49321404],\
++[	-6.27303865, -0.00047200, 0.00028918, 7.27256665, 0.99855810, 0.99923882, 0.49321416],\
++[	-6.27303882, -0.00047193, 0.00028914, 7.27256689, 0.99855832, 0.99923893, 0.49321409],\
++[	-6.27303899, -0.00047185, 0.00028909, 7.27256714, 0.99855854, 0.99923905, 0.49321418],\
++[	-6.27303916, -0.00047178, 0.00028905, 7.27256738, 0.99855876, 0.99923917, 0.49321418],\
++[	-6.27303933, -0.00047171, 0.00028901, 7.27256762, 0.99855898, 0.99923928, 0.49321424],\
++[	-6.27303951, -0.00047164, 0.00028896, 7.27256787, 0.99855920, 0.99923940, 0.49321434],\
++[	-6.27303968, -0.00047157, 0.00028892, 7.27256811, 0.99855942, 0.99923951, 0.49321431],\
++[	-6.27303985, -0.00047150, 0.00028887, 7.27256835, 0.99855964, 0.99923963, 0.49321429],\
++[	-6.27304002, -0.00047142, 0.00028883, 7.27256860, 0.99855986, 0.99923975, 0.49321428],\
++[	-6.27304019, -0.00047135, 0.00028879, 7.27256884, 0.99856008, 0.99923986, 0.49321434],\
++[	-6.27304037, -0.00047128, 0.00028874, 7.27256909, 0.99856030, 0.99923998, 0.49321435],\
++[	-6.27304054, -0.00047121, 0.00028870, 7.27256933, 0.99856052, 0.99924009, 0.49321437],\
++[	-6.27304071, -0.00047114, 0.00028865, 7.27256957, 0.99856073, 0.99924021, 0.49321446],\
++[	-6.27304088, -0.00047106, 0.00028861, 7.27256982, 0.99856095, 0.99924032, 0.49321442],\
++[	-6.27304105, -0.00047099, 0.00028857, 7.27257006, 0.99856117, 0.99924044, 0.49321442],\
++[	-6.27304122, -0.00047092, 0.00028852, 7.27257030, 0.99856139, 0.99924056, 0.49321451],\
++[	-6.27304139, -0.00047085, 0.00028848, 7.27257054, 0.99856161, 0.99924067, 0.49321455],\
++[	-6.27304157, -0.00047078, 0.00028843, 7.27257079, 0.99856183, 0.99924079, 0.49321455],\
++[	-6.27304174, -0.00047071, 0.00028839, 7.27257103, 0.99856205, 0.99924090, 0.49321459],\
++[	-6.27304191, -0.00047064, 0.00028835, 7.27257127, 0.99856227, 0.99924102, 0.49321464],\
++[	-6.27304208, -0.00047056, 0.00028830, 7.27257152, 0.99856249, 0.99924113, 0.49321460],\
++[	-6.27304225, -0.00047049, 0.00028826, 7.27257176, 0.99856270, 0.99924125, 0.49321463],\
++[	-6.27304242, -0.00047042, 0.00028822, 7.27257200, 0.99856292, 0.99924136, 0.49321476],\
++[	-6.27304259, -0.00047035, 0.00028817, 7.27257224, 0.99856314, 0.99924148, 0.49321475],\
++[	-6.27304276, -0.00047028, 0.00028813, 7.27257249, 0.99856336, 0.99924159, 0.49321471],\
++[	-6.27304294, -0.00047021, 0.00028808, 7.27257273, 0.99856358, 0.99924171, 0.49321475],\
++[	-6.27304311, -0.00047013, 0.00028804, 7.27257297, 0.99856380, 0.99924183, 0.49321476],\
++[	-6.27304328, -0.00047006, 0.00028800, 7.27257321, 0.99856401, 0.99924194, 0.49321484],\
++[	-6.27304345, -0.00046999, 0.00028795, 7.27257346, 0.99856423, 0.99924206, 0.49321477],\
++[	-6.27304362, -0.00046992, 0.00028791, 7.27257370, 0.99856445, 0.99924217, 0.49321483],\
++[	-6.27304379, -0.00046985, 0.00028787, 7.27257394, 0.99856467, 0.99924229, 0.49321495],\
++[	-6.27304396, -0.00046978, 0.00028782, 7.27257418, 0.99856489, 0.99924240, 0.49321491],\
++[	-6.27304413, -0.00046971, 0.00028778, 7.27257442, 0.99856510, 0.99924252, 0.49321493],\
++[	-6.27304430, -0.00046964, 0.00028773, 7.27257467, 0.99856532, 0.99924263, 0.49321498],\
++[	-6.27304447, -0.00046956, 0.00028769, 7.27257491, 0.99856554, 0.99924275, 0.49321496],\
++[	-6.27304464, -0.00046949, 0.00028765, 7.27257515, 0.99856576, 0.99924286, 0.49321502],\
++[	-6.27304481, -0.00046942, 0.00028760, 7.27257539, 0.99856597, 0.99924298, 0.49321503],\
++[	-6.27304498, -0.00046935, 0.00028756, 7.27257563, 0.99856619, 0.99924309, 0.49321507],\
++[	-6.27304515, -0.00046928, 0.00028752, 7.27257587, 0.99856641, 0.99924320, 0.49321515],\
++[	-6.27304532, -0.00046921, 0.00028747, 7.27257611, 0.99856663, 0.99924332, 0.49321508],\
++[	-6.27304549, -0.00046914, 0.00028743, 7.27257636, 0.99856684, 0.99924343, 0.49321514],\
++[	-6.27304566, -0.00046907, 0.00028738, 7.27257660, 0.99856706, 0.99924355, 0.49321526],\
++[	-6.27304583, -0.00046900, 0.00028734, 7.27257684, 0.99856728, 0.99924366, 0.49321521],\
++[	-6.27304600, -0.00046892, 0.00028730, 7.27257708, 0.99856750, 0.99924378, 0.49321521],\
++[	-6.27304617, -0.00046885, 0.00028725, 7.27257732, 0.99856771, 0.99924389, 0.49321523],\
++[	-6.27304634, -0.00046878, 0.00028721, 7.27257756, 0.99856793, 0.99924401, 0.49321526],\
++[	-6.27304651, -0.00046871, 0.00028717, 7.27257780, 0.99856815, 0.99924412, 0.49321530],\
++[	-6.27304668, -0.00046864, 0.00028712, 7.27257804, 0.99856836, 0.99924424, 0.49321535],\
++[	-6.27304685, -0.00046857, 0.00028708, 7.27257828, 0.99856858, 0.99924435, 0.49321541],\
++[	-6.27304702, -0.00046850, 0.00028704, 7.27257852, 0.99856880, 0.99924446, 0.49321529],\
++[	-6.27304719, -0.00046843, 0.00028699, 7.27257876, 0.99856901, 0.99924458, 0.49321541],\
++[	-6.27304736, -0.00046836, 0.00028695, 7.27257901, 0.99856923, 0.99924469, 0.49321535],\
++[	-6.27304753, -0.00046829, 0.00028691, 7.27257925, 0.99856945, 0.99924481, 0.49321543],\
++[	-6.27304770, -0.00046821, 0.00028686, 7.27257949, 0.99856966, 0.99924492, 0.49321548],\
++[	-6.27304787, -0.00046814, 0.00028682, 7.27257973, 0.99856988, 0.99924504, 0.49321551],\
++[	-6.27304804, -0.00046807, 0.00028678, 7.27257997, 0.99857010, 0.99924515, 0.49321545],\
++[	-6.27304821, -0.00046800, 0.00028673, 7.27258021, 0.99857031, 0.99924526, 0.49321554],\
++[	-6.27304838, -0.00046793, 0.00028669, 7.27258045, 0.99857053, 0.99924538, 0.49321557],\
++[	-6.27304855, -0.00046786, 0.00028665, 7.27258069, 0.99857074, 0.99924549, 0.49321561],\
++[	-6.27304872, -0.00046779, 0.00028660, 7.27258093, 0.99857096, 0.99924561, 0.49321567],\
++[	-6.27304889, -0.00046772, 0.00028656, 7.27258117, 0.99857118, 0.99924572, 0.49321567],\
++[	-6.27304906, -0.00046765, 0.00028652, 7.27258141, 0.99857139, 0.99924583, 0.49321571],\
++[	-6.27304922, -0.00046758, 0.00028647, 7.27258165, 0.99857161, 0.99924595, 0.49321566],\
++[	-6.27304939, -0.00046751, 0.00028643, 7.27258189, 0.99857182, 0.99924606, 0.49321576],\
++[	-6.27304956, -0.00046744, 0.00028639, 7.27258213, 0.99857204, 0.99924618, 0.49321567],\
++[	-6.27304973, -0.00046737, 0.00028634, 7.27258236, 0.99857226, 0.99924629, 0.49321585],\
++[	-6.27304990, -0.00046730, 0.00028630, 7.27258260, 0.99857247, 0.99924640, 0.49321576],\
++[	-6.27305007, -0.00046723, 0.00028626, 7.27258284, 0.99857269, 0.99924652, 0.49321581],\
++[	-6.27305024, -0.00046715, 0.00028621, 7.27258308, 0.99857290, 0.99924663, 0.49321580],\
++[	-6.27305041, -0.00046708, 0.00028617, 7.27258332, 0.99857312, 0.99924675, 0.49321590],\
++[	-6.27305057, -0.00046701, 0.00028613, 7.27258356, 0.99857333, 0.99924686, 0.49321582],\
++[	-6.27305074, -0.00046694, 0.00028608, 7.27258380, 0.99857355, 0.99924697, 0.49321587],\
++[	-6.27305091, -0.00046687, 0.00028604, 7.27258404, 0.99857376, 0.99924709, 0.49321595],\
++[	-6.27305108, -0.00046680, 0.00028600, 7.27258428, 0.99857398, 0.99924720, 0.49321595],\
++[	-6.27305125, -0.00046673, 0.00028595, 7.27258452, 0.99857419, 0.99924731, 0.49321600],\
++[	-6.27305142, -0.00046666, 0.00028591, 7.27258476, 0.99857441, 0.99924743, 0.49321598],\
++[	-6.27305159, -0.00046659, 0.00028587, 7.27258499, 0.99857462, 0.99924754, 0.49321613],\
++[	-6.27305175, -0.00046652, 0.00028582, 7.27258523, 0.99857484, 0.99924765, 0.49321611],\
++[	-6.27305192, -0.00046645, 0.00028578, 7.27258547, 0.99857505, 0.99924777, 0.49321600],\
++[	-6.27305209, -0.00046638, 0.00028574, 7.27258571, 0.99857527, 0.99924788, 0.49321621],\
++[	-6.27305226, -0.00046631, 0.00028570, 7.27258595, 0.99857548, 0.99924799, 0.49321615],\
++[	-6.27305243, -0.00046624, 0.00028565, 7.27258619, 0.99857570, 0.99924811, 0.49321620],\
++[	-6.27305259, -0.00046617, 0.00028561, 7.27258642, 0.99857591, 0.99924822, 0.49321625],\
++[	-6.27305276, -0.00046610, 0.00028557, 7.27258666, 0.99857613, 0.99924833, 0.49321621],\
++[	-6.27305293, -0.00046603, 0.00028552, 7.27258690, 0.99857634, 0.99924845, 0.49321630],\
++[	-6.27305310, -0.00046596, 0.00028548, 7.27258714, 0.99857656, 0.99924856, 0.49321623],\
++[	-6.27305327, -0.00046589, 0.00028544, 7.27258738, 0.99857677, 0.99924867, 0.49321633],\
++[	-6.27305343, -0.00046582, 0.00028539, 7.27258761, 0.99857698, 0.99924879, 0.49321637],\
++[	-6.27305360, -0.00046575, 0.00028535, 7.27258785, 0.99857720, 0.99924890, 0.49321640],\
++[	-6.27305377, -0.00046568, 0.00028531, 7.27258809, 0.99857741, 0.99924901, 0.49321641],\
++[	-6.27305394, -0.00046561, 0.00028527, 7.27258833, 0.99857763, 0.99924913, 0.49321644],\
++[	-6.27305410, -0.00046554, 0.00028522, 7.27258857, 0.99857784, 0.99924924, 0.49321640],\
++[	-6.27305427, -0.00046547, 0.00028518, 7.27258880, 0.99857805, 0.99924935, 0.49321644],\
++[	-6.27305444, -0.00046540, 0.00028514, 7.27258904, 0.99857827, 0.99924946, 0.49321647],\
++[	-6.27305461, -0.00046533, 0.00028509, 7.27258928, 0.99857848, 0.99924958, 0.49321655],\
++[	-6.27305477, -0.00046526, 0.00028505, 7.27258952, 0.99857870, 0.99924969, 0.49321652],\
++[	-6.27305494, -0.00046519, 0.00028501, 7.27258975, 0.99857891, 0.99924980, 0.49321651],\
++[	-6.27305511, -0.00046512, 0.00028497, 7.27258999, 0.99857912, 0.99924992, 0.49321656],\
++[	-6.27305528, -0.00046505, 0.00028492, 7.27259023, 0.99857934, 0.99925003, 0.49321656],\
++[	-6.27305544, -0.00046498, 0.00028488, 7.27259046, 0.99857955, 0.99925014, 0.49321665],\
++[	-6.27305561, -0.00046491, 0.00028484, 7.27259070, 0.99857976, 0.99925025, 0.49321668],\
++[	-6.27305578, -0.00046484, 0.00028479, 7.27259094, 0.99857998, 0.99925037, 0.49321665],\
++[	-6.27305594, -0.00046477, 0.00028475, 7.27259117, 0.99858019, 0.99925048, 0.49321672],\
++[	-6.27305611, -0.00046470, 0.00028471, 7.27259141, 0.99858040, 0.99925059, 0.49321675],\
++[	-6.27305628, -0.00046463, 0.00028467, 7.27259165, 0.99858062, 0.99925070, 0.49321677],\
++[	-6.27305645, -0.00046456, 0.00028462, 7.27259188, 0.99858083, 0.99925082, 0.49321675],\
++[	-6.27305661, -0.00046449, 0.00028458, 7.27259212, 0.99858104, 0.99925093, 0.49321677],\
++[	-6.27305678, -0.00046442, 0.00028454, 7.27259236, 0.99858126, 0.99925104, 0.49321687],\
++[	-6.27305695, -0.00046435, 0.00028449, 7.27259259, 0.99858147, 0.99925115, 0.49321692],\
++[	-6.27305711, -0.00046428, 0.00028445, 7.27259283, 0.99858168, 0.99925127, 0.49321690],\
++[	-6.27305728, -0.00046421, 0.00028441, 7.27259307, 0.99858189, 0.99925138, 0.49321690],\
++[	-6.27305745, -0.00046414, 0.00028437, 7.27259330, 0.99858211, 0.99925149, 0.49321703],\
++[	-6.27305761, -0.00046407, 0.00028432, 7.27259354, 0.99858232, 0.99925160, 0.49321695],\
++[	-6.27305778, -0.00046400, 0.00028428, 7.27259377, 0.99858253, 0.99925171, 0.49321702],\
++[	-6.27305795, -0.00046393, 0.00028424, 7.27259401, 0.99858275, 0.99925183, 0.49321702],\
++[	-6.27305811, -0.00046386, 0.00028420, 7.27259425, 0.99858296, 0.99925194, 0.49321707],\
++[	-6.27305828, -0.00046380, 0.00028415, 7.27259448, 0.99858317, 0.99925205, 0.49321711],\
++[	-6.27305844, -0.00046373, 0.00028411, 7.27259472, 0.99858338, 0.99925216, 0.49321702],\
++[	-6.27305861, -0.00046366, 0.00028407, 7.27259495, 0.99858359, 0.99925227, 0.49321714],\
++[	-6.27305878, -0.00046359, 0.00028403, 7.27259519, 0.99858381, 0.99925239, 0.49321714],\
++[	-6.27305894, -0.00046352, 0.00028398, 7.27259543, 0.99858402, 0.99925250, 0.49321712],\
++[	-6.27305911, -0.00046345, 0.00028394, 7.27259566, 0.99858423, 0.99925261, 0.49321724],\
++[	-6.27305927, -0.00046338, 0.00028390, 7.27259590, 0.99858444, 0.99925272, 0.49321723],\
++[	-6.27305944, -0.00046331, 0.00028386, 7.27259613, 0.99858465, 0.99925283, 0.49321718],\
++[	-6.27305961, -0.00046324, 0.00028381, 7.27259637, 0.99858487, 0.99925295, 0.49321725],\
++[	-6.27305977, -0.00046317, 0.00028377, 7.27259660, 0.99858508, 0.99925306, 0.49321729],\
++[	-6.27305994, -0.00046310, 0.00028373, 7.27259684, 0.99858529, 0.99925317, 0.49321728],\
++[	-6.27306010, -0.00046303, 0.00028369, 7.27259707, 0.99858550, 0.99925328, 0.49321728],\
++[	-6.27306027, -0.00046296, 0.00028364, 7.27259731, 0.99858571, 0.99925339, 0.49321738],\
++[	-6.27306044, -0.00046289, 0.00028360, 7.27259754, 0.99858593, 0.99925351, 0.49321730],\
++[	-6.27306060, -0.00046282, 0.00028356, 7.27259778, 0.99858614, 0.99925362, 0.49321736],\
++[	-6.27306077, -0.00046276, 0.00028352, 7.27259801, 0.99858635, 0.99925373, 0.49321743],\
++[	-6.27306093, -0.00046269, 0.00028347, 7.27259825, 0.99858656, 0.99925384, 0.49321740],\
++[	-6.27306110, -0.00046262, 0.00028343, 7.27259848, 0.99858677, 0.99925395, 0.49321757],\
++[	-6.27306126, -0.00046255, 0.00028339, 7.27259872, 0.99858698, 0.99925406, 0.49321754],\
++[	-6.27306143, -0.00046248, 0.00028335, 7.27259895, 0.99858719, 0.99925417, 0.49321760],\
++[	-6.27306159, -0.00046241, 0.00028330, 7.27259918, 0.99858740, 0.99925429, 0.49321757],\
++[	-6.27306176, -0.00046234, 0.00028326, 7.27259942, 0.99858762, 0.99925440, 0.49321761],\
++[	-6.27306192, -0.00046227, 0.00028322, 7.27259965, 0.99858783, 0.99925451, 0.49321757],\
++[	-6.27306209, -0.00046220, 0.00028318, 7.27259989, 0.99858804, 0.99925462, 0.49321764],\
++[	-6.27306225, -0.00046213, 0.00028314, 7.27260012, 0.99858825, 0.99925473, 0.49321769],\
++[	-6.27306242, -0.00046206, 0.00028309, 7.27260036, 0.99858846, 0.99925484, 0.49321767],\
++[	-6.27306259, -0.00046200, 0.00028305, 7.27260059, 0.99858867, 0.99925495, 0.49321773],\
++[	-6.27306275, -0.00046193, 0.00028301, 7.27260082, 0.99858888, 0.99925506, 0.49321772],\
++[	-6.27306292, -0.00046186, 0.00028297, 7.27260106, 0.99858909, 0.99925518, 0.49321771],\
++[	-6.27306308, -0.00046179, 0.00028292, 7.27260129, 0.99858930, 0.99925529, 0.49321779],\
++[	-6.27306324, -0.00046172, 0.00028288, 7.27260152, 0.99858951, 0.99925540, 0.49321779],\
++[	-6.27306341, -0.00046165, 0.00028284, 7.27260176, 0.99858972, 0.99925551, 0.49321780],\
++[	-6.27306357, -0.00046158, 0.00028280, 7.27260199, 0.99858993, 0.99925562, 0.49321791],\
++[	-6.27306374, -0.00046151, 0.00028275, 7.27260223, 0.99859014, 0.99925573, 0.49321791],\
++[	-6.27306390, -0.00046144, 0.00028271, 7.27260246, 0.99859035, 0.99925584, 0.49321788],\
++[	-6.27306407, -0.00046138, 0.00028267, 7.27260269, 0.99859056, 0.99925595, 0.49321791],\
++[	-6.27306423, -0.00046131, 0.00028263, 7.27260293, 0.99859077, 0.99925606, 0.49321799],\
++[	-6.27306440, -0.00046124, 0.00028259, 7.27260316, 0.99859098, 0.99925618, 0.49321795],\
++[	-6.27306456, -0.00046117, 0.00028254, 7.27260339, 0.99859119, 0.99925629, 0.49321797],\
++[	-6.27306473, -0.00046110, 0.00028250, 7.27260363, 0.99859140, 0.99925640, 0.49321800],\
++[	-6.27306489, -0.00046103, 0.00028246, 7.27260386, 0.99859161, 0.99925651, 0.49321804],\
++[	-6.27306505, -0.00046096, 0.00028242, 7.27260409, 0.99859182, 0.99925662, 0.49321800],\
++[	-6.27306522, -0.00046090, 0.00028238, 7.27260432, 0.99859203, 0.99925673, 0.49321804],\
++[	-6.27306538, -0.00046083, 0.00028233, 7.27260456, 0.99859224, 0.99925684, 0.49321806],\
++[	-6.27306555, -0.00046076, 0.00028229, 7.27260479, 0.99859245, 0.99925695, 0.49321814],\
++[	-6.27306571, -0.00046069, 0.00028225, 7.27260502, 0.99859266, 0.99925706, 0.49321818],\
++[	-6.27306588, -0.00046062, 0.00028221, 7.27260525, 0.99859287, 0.99925717, 0.49321811],\
++[	-6.27306604, -0.00046055, 0.00028217, 7.27260549, 0.99859308, 0.99925728, 0.49321821],\
++[	-6.27306620, -0.00046048, 0.00028212, 7.27260572, 0.99859329, 0.99925739, 0.49321828],\
++[	-6.27306637, -0.00046042, 0.00028208, 7.27260595, 0.99859350, 0.99925750, 0.49321829],\
++[	-6.27306653, -0.00046035, 0.00028204, 7.27260618, 0.99859371, 0.99925761, 0.49321826],\
++[	-6.27306670, -0.00046028, 0.00028200, 7.27260642, 0.99859392, 0.99925772, 0.49321833],\
++[	-6.27306686, -0.00046021, 0.00028196, 7.27260665, 0.99859413, 0.99925783, 0.49321833],\
++[	-6.27306702, -0.00046014, 0.00028191, 7.27260688, 0.99859434, 0.99925794, 0.49321830],\
++[	-6.27306719, -0.00046007, 0.00028187, 7.27260711, 0.99859455, 0.99925805, 0.49321842],\
++[	-6.27306735, -0.00046000, 0.00028183, 7.27260735, 0.99859475, 0.99925817, 0.49321838],\
++[	-6.27306751, -0.00045994, 0.00028179, 7.27260758, 0.99859496, 0.99925828, 0.49321849],\
++[	-6.27306768, -0.00045987, 0.00028175, 7.27260781, 0.99859517, 0.99925839, 0.49321848],\
++[	-6.27306784, -0.00045980, 0.00028170, 7.27260804, 0.99859538, 0.99925850, 0.49321848],\
++[	-6.27306800, -0.00045973, 0.00028166, 7.27260827, 0.99859559, 0.99925861, 0.49321852],\
++[	-6.27306817, -0.00045966, 0.00028162, 7.27260850, 0.99859580, 0.99925872, 0.49321855],\
++[	-6.27306833, -0.00045959, 0.00028158, 7.27260874, 0.99859601, 0.99925883, 0.49321849],\
++[	-6.27306849, -0.00045953, 0.00028154, 7.27260897, 0.99859622, 0.99925894, 0.49321861],\
++[	-6.27306866, -0.00045946, 0.00028150, 7.27260920, 0.99859642, 0.99925905, 0.49321858],\
++[	-6.27306882, -0.00045939, 0.00028145, 7.27260943, 0.99859663, 0.99925916, 0.49321869],\
++[	-6.27306898, -0.00045932, 0.00028141, 7.27260966, 0.99859684, 0.99925927, 0.49321873],\
++[	-6.27306915, -0.00045925, 0.00028137, 7.27260989, 0.99859705, 0.99925938, 0.49321868],\
++[	-6.27306931, -0.00045919, 0.00028133, 7.27261012, 0.99859726, 0.99925949, 0.49321872],\
++[	-6.27306947, -0.00045912, 0.00028129, 7.27261035, 0.99859746, 0.99925960, 0.49321879],\
++[	-6.27306964, -0.00045905, 0.00028124, 7.27261059, 0.99859767, 0.99925971, 0.49321873],\
++[	-6.27306980, -0.00045898, 0.00028120, 7.27261082, 0.99859788, 0.99925982, 0.49321881],\
++[	-6.27306996, -0.00045891, 0.00028116, 7.27261105, 0.99859809, 0.99925993, 0.49321869],\
++[	-6.27307012, -0.00045885, 0.00028112, 7.27261128, 0.99859830, 0.99926003, 0.49321889],\
++[	-6.27307029, -0.00045878, 0.00028108, 7.27261151, 0.99859850, 0.99926014, 0.49321883],\
++[	-6.27307045, -0.00045871, 0.00028104, 7.27261174, 0.99859871, 0.99926025, 0.49321889],\
++[	-6.27307061, -0.00045864, 0.00028099, 7.27261197, 0.99859892, 0.99926036, 0.49321886],\
++[	-6.27307078, -0.00045857, 0.00028095, 7.27261220, 0.99859913, 0.99926047, 0.49321894],\
++[	-6.27307094, -0.00045851, 0.00028091, 7.27261243, 0.99859934, 0.99926058, 0.49321894],\
++[	-6.27307110, -0.00045844, 0.00028087, 7.27261266, 0.99859954, 0.99926069, 0.49321891],\
++[	-6.27307126, -0.00045837, 0.00028083, 7.27261289, 0.99859975, 0.99926080, 0.49321907],\
++[	-6.27307142, -0.00045830, 0.00028079, 7.27261312, 0.99859996, 0.99926091, 0.49321892],\
++[	-6.27307159, -0.00045823, 0.00028074, 7.27261335, 0.99860016, 0.99926102, 0.49321904],\
++[	-6.27307175, -0.00045817, 0.00028070, 7.27261358, 0.99860037, 0.99926113, 0.49321907],\
++[	-6.27307191, -0.00045810, 0.00028066, 7.27261381, 0.99860058, 0.99926124, 0.49321903],\
++[	-6.27307207, -0.00045803, 0.00028062, 7.27261404, 0.99860079, 0.99926135, 0.49321912],\
++[	-6.27307224, -0.00045796, 0.00028058, 7.27261427, 0.99860099, 0.99926146, 0.49321912],\
++[	-6.27307240, -0.00045790, 0.00028054, 7.27261450, 0.99860120, 0.99926157, 0.49321912],\
++[	-6.27307256, -0.00045783, 0.00028050, 7.27261473, 0.99860141, 0.99926168, 0.49321924],\
++[	-6.27307272, -0.00045776, 0.00028045, 7.27261496, 0.99860161, 0.99926179, 0.49321924],\
++[	-6.27307288, -0.00045769, 0.00028041, 7.27261519, 0.99860182, 0.99926190, 0.49321921],\
++[	-6.27307305, -0.00045762, 0.00028037, 7.27261542, 0.99860203, 0.99926200, 0.49321927],\
++[	-6.27307321, -0.00045756, 0.00028033, 7.27261565, 0.99860223, 0.99926211, 0.49321925],\
++[	-6.27307337, -0.00045749, 0.00028029, 7.27261588, 0.99860244, 0.99926222, 0.49321926],\
++[	-6.27307353, -0.00045742, 0.00028025, 7.27261611, 0.99860265, 0.99926233, 0.49321932],\
++[	-6.27307369, -0.00045735, 0.00028021, 7.27261634, 0.99860285, 0.99926244, 0.49321935],\
++[	-6.27307386, -0.00045729, 0.00028016, 7.27261657, 0.99860306, 0.99926255, 0.49321931],\
++[	-6.27307402, -0.00045722, 0.00028012, 7.27261680, 0.99860327, 0.99926266, 0.49321940],\
++[	-6.27307418, -0.00045715, 0.00028008, 7.27261703, 0.99860347, 0.99926277, 0.49321940],\
++[	-6.27307434, -0.00045708, 0.00028004, 7.27261726, 0.99860368, 0.99926288, 0.49321938],\
++[	-6.27307450, -0.00045702, 0.00028000, 7.27261749, 0.99860389, 0.99926299, 0.49321955],\
++[	-6.27307466, -0.00045695, 0.00027996, 7.27261771, 0.99860409, 0.99926309, 0.49321946],\
++[	-6.27307482, -0.00045688, 0.00027992, 7.27261794, 0.99860430, 0.99926320, 0.49321952],\
++[	-6.27307499, -0.00045681, 0.00027987, 7.27261817, 0.99860450, 0.99926331, 0.49321956],\
++[	-6.27307515, -0.00045675, 0.00027983, 7.27261840, 0.99860471, 0.99926342, 0.49321950],\
++[	-6.27307531, -0.00045668, 0.00027979, 7.27261863, 0.99860492, 0.99926353, 0.49321959],\
++[	-6.27307547, -0.00045661, 0.00027975, 7.27261886, 0.99860512, 0.99926364, 0.49321954],\
++[	-6.27307563, -0.00045654, 0.00027971, 7.27261909, 0.99860533, 0.99926375, 0.49321964],\
++[	-6.27307579, -0.00045648, 0.00027967, 7.27261931, 0.99860553, 0.99926385, 0.49321960],\
++[	-6.27307595, -0.00045641, 0.00027963, 7.27261954, 0.99860574, 0.99926396, 0.49321972],\
++[	-6.27307611, -0.00045634, 0.00027959, 7.27261977, 0.99860595, 0.99926407, 0.49321973],\
++[	-6.27307628, -0.00045628, 0.00027954, 7.27262000, 0.99860615, 0.99926418, 0.49321968],\
++[	-6.27307644, -0.00045621, 0.00027950, 7.27262023, 0.99860636, 0.99926429, 0.49321967],\
++[	-6.27307660, -0.00045614, 0.00027946, 7.27262046, 0.99860656, 0.99926440, 0.49321972],\
++[	-6.27307676, -0.00045607, 0.00027942, 7.27262068, 0.99860677, 0.99926451, 0.49321981],\
++[	-6.27307692, -0.00045601, 0.00027938, 7.27262091, 0.99860697, 0.99926461, 0.49321979],\
++[	-6.27307708, -0.00045594, 0.00027934, 7.27262114, 0.99860718, 0.99926472, 0.49321986],\
++[	-6.27307724, -0.00045587, 0.00027930, 7.27262137, 0.99860738, 0.99926483, 0.49321988],\
++[	-6.27307740, -0.00045581, 0.00027926, 7.27262160, 0.99860759, 0.99926494, 0.49321990],\
++[	-6.27307756, -0.00045574, 0.00027921, 7.27262182, 0.99860779, 0.99926505, 0.49321998],\
++[	-6.27307772, -0.00045567, 0.00027917, 7.27262205, 0.99860800, 0.99926516, 0.49322003],\
++[	-6.27307788, -0.00045560, 0.00027913, 7.27262228, 0.99860820, 0.99926526, 0.49321994],\
++[	-6.27307804, -0.00045554, 0.00027909, 7.27262251, 0.99860841, 0.99926537, 0.49322002],\
++[	-6.27307820, -0.00045547, 0.00027905, 7.27262273, 0.99860861, 0.99926548, 0.49321999],\
++[	-6.27307836, -0.00045540, 0.00027901, 7.27262296, 0.99860882, 0.99926559, 0.49322005],\
++[	-6.27307852, -0.00045534, 0.00027897, 7.27262319, 0.99860902, 0.99926570, 0.49322007],\
++[	-6.27307868, -0.00045527, 0.00027893, 7.27262342, 0.99860923, 0.99926580, 0.49322002],\
++[	-6.27307884, -0.00045520, 0.00027889, 7.27262364, 0.99860943, 0.99926591, 0.49322013],\
++[	-6.27307900, -0.00045514, 0.00027884, 7.27262387, 0.99860964, 0.99926602, 0.49322009],\
++[	-6.27307916, -0.00045507, 0.00027880, 7.27262410, 0.99860984, 0.99926613, 0.49322010],\
++[	-6.27307932, -0.00045500, 0.00027876, 7.27262432, 0.99861004, 0.99926624, 0.49322020],\
++[	-6.27307949, -0.00045493, 0.00027872, 7.27262455, 0.99861025, 0.99926634, 0.49322020],\
++[	-6.27307964, -0.00045487, 0.00027868, 7.27262478, 0.99861045, 0.99926645, 0.49322021],\
++[	-6.27307980, -0.00045480, 0.00027864, 7.27262500, 0.99861066, 0.99926656, 0.49322031],\
++[	-6.27307996, -0.00045473, 0.00027860, 7.27262523, 0.99861086, 0.99926667, 0.49322031],\
++[	-6.27308012, -0.00045467, 0.00027856, 7.27262546, 0.99861107, 0.99926677, 0.49322033],\
++[	-6.27308028, -0.00045460, 0.00027852, 7.27262568, 0.99861127, 0.99926688, 0.49322029],\
++[	-6.27308044, -0.00045453, 0.00027848, 7.27262591, 0.99861147, 0.99926699, 0.49322034],\
++[	-6.27308060, -0.00045447, 0.00027844, 7.27262614, 0.99861168, 0.99926710, 0.49322033],\
++[	-6.27308076, -0.00045440, 0.00027839, 7.27262636, 0.99861188, 0.99926721, 0.49322036],\
++[	-6.27308092, -0.00045433, 0.00027835, 7.27262659, 0.99861209, 0.99926731, 0.49322047],\
++[	-6.27308108, -0.00045427, 0.00027831, 7.27262682, 0.99861229, 0.99926742, 0.49322045],\
++[	-6.27308124, -0.00045420, 0.00027827, 7.27262704, 0.99861249, 0.99926753, 0.49322049],\
++[	-6.27308140, -0.00045413, 0.00027823, 7.27262727, 0.99861270, 0.99926764, 0.49322055],\
++[	-6.27308156, -0.00045407, 0.00027819, 7.27262749, 0.99861290, 0.99926774, 0.49322054],\
++[	-6.27308172, -0.00045400, 0.00027815, 7.27262772, 0.99861310, 0.99926785, 0.49322056],\
++[	-6.27308188, -0.00045393, 0.00027811, 7.27262795, 0.99861331, 0.99926796, 0.49322059],\
++[	-6.27308204, -0.00045387, 0.00027807, 7.27262817, 0.99861351, 0.99926807, 0.49322050],\
++[	-6.27308220, -0.00045380, 0.00027803, 7.27262840, 0.99861371, 0.99926817, 0.49322063],\
++[	-6.27308236, -0.00045373, 0.00027799, 7.27262862, 0.99861392, 0.99926828, 0.49322066],\
++[	-6.27308252, -0.00045367, 0.00027795, 7.27262885, 0.99861412, 0.99926839, 0.49322063],\
++[	-6.27308268, -0.00045360, 0.00027790, 7.27262907, 0.99861432, 0.99926849, 0.49322070],\
++[	-6.27308284, -0.00045353, 0.00027786, 7.27262930, 0.99861453, 0.99926860, 0.49322066],\
++[	-6.27308299, -0.00045347, 0.00027782, 7.27262953, 0.99861473, 0.99926871, 0.49322073],\
++[	-6.27308315, -0.00045340, 0.00027778, 7.27262975, 0.99861493, 0.99926882, 0.49322074],\
++[	-6.27308331, -0.00045334, 0.00027774, 7.27262998, 0.99861514, 0.99926892, 0.49322073],\
++[	-6.27308347, -0.00045327, 0.00027770, 7.27263020, 0.99861534, 0.99926903, 0.49322080],\
++[	-6.27308363, -0.00045320, 0.00027766, 7.27263043, 0.99861554, 0.99926914, 0.49322087],\
++[	-6.27308379, -0.00045314, 0.00027762, 7.27263065, 0.99861574, 0.99926924, 0.49322079],\
++[	-6.27308395, -0.00045307, 0.00027758, 7.27263088, 0.99861595, 0.99926935, 0.49322088],\
++[	-6.27308411, -0.00045300, 0.00027754, 7.27263110, 0.99861615, 0.99926946, 0.49322089],\
++[	-6.27308426, -0.00045294, 0.00027750, 7.27263133, 0.99861635, 0.99926956, 0.49322091],\
++[	-6.27308442, -0.00045287, 0.00027746, 7.27263155, 0.99861655, 0.99926967, 0.49322099],\
++[	-6.27308458, -0.00045281, 0.00027742, 7.27263178, 0.99861676, 0.99926978, 0.49322093],\
++[	-6.27308474, -0.00045274, 0.00027738, 7.27263200, 0.99861696, 0.99926989, 0.49322094],\
++[	-6.27308490, -0.00045267, 0.00027734, 7.27263223, 0.99861716, 0.99926999, 0.49322104],\
++[	-6.27308506, -0.00045261, 0.00027729, 7.27263245, 0.99861736, 0.99927010, 0.49322101],\
++[	-6.27308522, -0.00045254, 0.00027725, 7.27263268, 0.99861757, 0.99927021, 0.49322100],\
++[	-6.27308537, -0.00045247, 0.00027721, 7.27263290, 0.99861777, 0.99927031, 0.49322109],\
++[	-6.27308553, -0.00045241, 0.00027717, 7.27263312, 0.99861797, 0.99927042, 0.49322112],\
++[	-6.27308569, -0.00045234, 0.00027713, 7.27263335, 0.99861817, 0.99927053, 0.49322118],\
++[	-6.27308585, -0.00045228, 0.00027709, 7.27263357, 0.99861837, 0.99927063, 0.49322108],\
++[	-6.27308601, -0.00045221, 0.00027705, 7.27263380, 0.99861858, 0.99927074, 0.49322119],\
++[	-6.27308616, -0.00045214, 0.00027701, 7.27263402, 0.99861878, 0.99927085, 0.49322124],\
++[	-6.27308632, -0.00045208, 0.00027697, 7.27263424, 0.99861898, 0.99927095, 0.49322120],\
++[	-6.27308648, -0.00045201, 0.00027693, 7.27263447, 0.99861918, 0.99927106, 0.49322125],\
++[	-6.27308664, -0.00045195, 0.00027689, 7.27263469, 0.99861938, 0.99927116, 0.49322131],\
++[	-6.27308680, -0.00045188, 0.00027685, 7.27263492, 0.99861959, 0.99927127, 0.49322139],\
++[	-6.27308695, -0.00045181, 0.00027681, 7.27263514, 0.99861979, 0.99927138, 0.49322128],\
++[	-6.27308711, -0.00045175, 0.00027677, 7.27263536, 0.99861999, 0.99927148, 0.49322133],\
++[	-6.27308727, -0.00045168, 0.00027673, 7.27263559, 0.99862019, 0.99927159, 0.49322134],\
++[	-6.27308743, -0.00045162, 0.00027669, 7.27263581, 0.99862039, 0.99927170, 0.49322141],\
++[	-6.27308759, -0.00045155, 0.00027665, 7.27263604, 0.99862059, 0.99927180, 0.49322137],\
++[	-6.27308774, -0.00045148, 0.00027661, 7.27263626, 0.99862079, 0.99927191, 0.49322148],\
++[	-6.27308790, -0.00045142, 0.00027657, 7.27263648, 0.99862099, 0.99927202, 0.49322145],\
++[	-6.27308806, -0.00045135, 0.00027653, 7.27263671, 0.99862120, 0.99927212, 0.49322138],\
++[	-6.27308822, -0.00045129, 0.00027649, 7.27263693, 0.99862140, 0.99927223, 0.49322155],\
++[	-6.27308837, -0.00045122, 0.00027645, 7.27263715, 0.99862160, 0.99927233, 0.49322147],\
++[	-6.27308853, -0.00045116, 0.00027641, 7.27263737, 0.99862180, 0.99927244, 0.49322164],\
++[	-6.27308869, -0.00045109, 0.00027636, 7.27263760, 0.99862200, 0.99927255, 0.49322155],\
++[	-6.27308884, -0.00045102, 0.00027632, 7.27263782, 0.99862220, 0.99927265, 0.49322156],\
++[	-6.27308900, -0.00045096, 0.00027628, 7.27263804, 0.99862240, 0.99927276, 0.49322154],\
++[	-6.27308916, -0.00045089, 0.00027624, 7.27263827, 0.99862260, 0.99927286, 0.49322167],\
++[	-6.27308932, -0.00045083, 0.00027620, 7.27263849, 0.99862280, 0.99927297, 0.49322165],\
++[	-6.27308947, -0.00045076, 0.00027616, 7.27263871, 0.99862300, 0.99927308, 0.49322177],\
++[	-6.27308963, -0.00045070, 0.00027612, 7.27263894, 0.99862320, 0.99927318, 0.49322172],\
++[	-6.27308979, -0.00045063, 0.00027608, 7.27263916, 0.99862340, 0.99927329, 0.49322177],\
++[	-6.27308994, -0.00045056, 0.00027604, 7.27263938, 0.99862360, 0.99927339, 0.49322171],\
++[	-6.27309010, -0.00045050, 0.00027600, 7.27263960, 0.99862381, 0.99927350, 0.49322172],\
++[	-6.27309026, -0.00045043, 0.00027596, 7.27263983, 0.99862401, 0.99927360, 0.49322182],\
++[	-6.27309042, -0.00045037, 0.00027592, 7.27264005, 0.99862421, 0.99927371, 0.49322183],\
++[	-6.27309057, -0.00045030, 0.00027588, 7.27264027, 0.99862441, 0.99927382, 0.49322187],\
++[	-6.27309073, -0.00045024, 0.00027584, 7.27264049, 0.99862461, 0.99927392, 0.49322184],\
++[	-6.27309089, -0.00045017, 0.00027580, 7.27264071, 0.99862481, 0.99927403, 0.49322189],\
++[	-6.27309104, -0.00045011, 0.00027576, 7.27264094, 0.99862501, 0.99927413, 0.49322190],\
++[	-6.27309120, -0.00045004, 0.00027572, 7.27264116, 0.99862521, 0.99927424, 0.49322188],\
++[	-6.27309136, -0.00044997, 0.00027568, 7.27264138, 0.99862541, 0.99927434, 0.49322197],\
++[	-6.27309151, -0.00044991, 0.00027564, 7.27264160, 0.99862561, 0.99927445, 0.49322195],\
++[	-6.27309167, -0.00044984, 0.00027560, 7.27264182, 0.99862581, 0.99927455, 0.49322198],\
++[	-6.27309183, -0.00044978, 0.00027556, 7.27264205, 0.99862601, 0.99927466, 0.49322195],\
++[	-6.27309198, -0.00044971, 0.00027552, 7.27264227, 0.99862621, 0.99927477, 0.49322211],\
++[	-6.27309214, -0.00044965, 0.00027548, 7.27264249, 0.99862641, 0.99927487, 0.49322215],\
++[	-6.27309229, -0.00044958, 0.00027544, 7.27264271, 0.99862660, 0.99927498, 0.49322209],\
++[	-6.27309245, -0.00044952, 0.00027540, 7.27264293, 0.99862680, 0.99927508, 0.49322211],\
++[	-6.27309261, -0.00044945, 0.00027536, 7.27264315, 0.99862700, 0.99927519, 0.49322213],\
++[	-6.27309276, -0.00044939, 0.00027532, 7.27264338, 0.99862720, 0.99927529, 0.49322220],\
++[	-6.27309292, -0.00044932, 0.00027528, 7.27264360, 0.99862740, 0.99927540, 0.49322206],\
++[	-6.27309307, -0.00044926, 0.00027524, 7.27264382, 0.99862760, 0.99927550, 0.49322222],\
++[	-6.27309323, -0.00044919, 0.00027520, 7.27264404, 0.99862780, 0.99927561, 0.49322230],\
++[	-6.27309339, -0.00044913, 0.00027516, 7.27264426, 0.99862800, 0.99927571, 0.49322233],\
++[	-6.27309354, -0.00044906, 0.00027512, 7.27264448, 0.99862820, 0.99927582, 0.49322226],\
++[	-6.27309370, -0.00044900, 0.00027508, 7.27264470, 0.99862840, 0.99927592, 0.49322237],\
++[	-6.27309385, -0.00044893, 0.00027504, 7.27264492, 0.99862860, 0.99927603, 0.49322238],\
++[	-6.27309401, -0.00044887, 0.00027500, 7.27264514, 0.99862880, 0.99927613, 0.49322229],\
++[	-6.27309417, -0.00044880, 0.00027496, 7.27264537, 0.99862899, 0.99927624, 0.49322245],\
++[	-6.27309432, -0.00044874, 0.00027492, 7.27264559, 0.99862919, 0.99927634, 0.49322245],\
++[	-6.27309448, -0.00044867, 0.00027488, 7.27264581, 0.99862939, 0.99927645, 0.49322246],\
++[	-6.27309463, -0.00044861, 0.00027484, 7.27264603, 0.99862959, 0.99927655, 0.49322247],\
++[	-6.27309479, -0.00044854, 0.00027480, 7.27264625, 0.99862979, 0.99927666, 0.49322254],\
++[	-6.27309494, -0.00044848, 0.00027476, 7.27264647, 0.99862999, 0.99927676, 0.49322253],\
++[	-6.27309510, -0.00044841, 0.00027472, 7.27264669, 0.99863019, 0.99927687, 0.49322258],\
++[	-6.27309526, -0.00044835, 0.00027468, 7.27264691, 0.99863039, 0.99927697, 0.49322250],\
++[	-6.27309541, -0.00044828, 0.00027464, 7.27264713, 0.99863058, 0.99927708, 0.49322253],\
++[	-6.27309557, -0.00044822, 0.00027460, 7.27264735, 0.99863078, 0.99927718, 0.49322260],\
++[	-6.27309572, -0.00044815, 0.00027456, 7.27264757, 0.99863098, 0.99927729, 0.49322265],\
++[	-6.27309588, -0.00044809, 0.00027452, 7.27264779, 0.99863118, 0.99927739, 0.49322261],\
++[	-6.27309603, -0.00044802, 0.00027448, 7.27264801, 0.99863138, 0.99927750, 0.49322265],\
++[	-6.27309619, -0.00044796, 0.00027444, 7.27264823, 0.99863158, 0.99927760, 0.49322274],\
++[	-6.27309634, -0.00044789, 0.00027440, 7.27264845, 0.99863177, 0.99927770, 0.49322271],\
++[	-6.27309650, -0.00044783, 0.00027436, 7.27264867, 0.99863197, 0.99927781, 0.49322271],\
++[	-6.27309665, -0.00044776, 0.00027432, 7.27264889, 0.99863217, 0.99927791, 0.49322277],\
++[	-6.27309681, -0.00044770, 0.00027429, 7.27264911, 0.99863237, 0.99927802, 0.49322282],\
++[	-6.27309696, -0.00044763, 0.00027425, 7.27264933, 0.99863256, 0.99927812, 0.49322277],\
++[	-6.27309712, -0.00044757, 0.00027421, 7.27264955, 0.99863276, 0.99927823, 0.49322279],\
++[	-6.27309727, -0.00044750, 0.00027417, 7.27264977, 0.99863296, 0.99927833, 0.49322290],\
++[	-6.27309743, -0.00044744, 0.00027413, 7.27264999, 0.99863316, 0.99927844, 0.49322286],\
++[	-6.27309758, -0.00044737, 0.00027409, 7.27265021, 0.99863336, 0.99927854, 0.49322289],\
++[	-6.27309774, -0.00044731, 0.00027405, 7.27265043, 0.99863355, 0.99927864, 0.49322292],\
++[	-6.27309789, -0.00044724, 0.00027401, 7.27265065, 0.99863375, 0.99927875, 0.49322303],\
++[	-6.27309805, -0.00044718, 0.00027397, 7.27265087, 0.99863395, 0.99927885, 0.49322297],\
++[	-6.27309820, -0.00044712, 0.00027393, 7.27265108, 0.99863415, 0.99927896, 0.49322299],\
++[	-6.27309835, -0.00044705, 0.00027389, 7.27265130, 0.99863434, 0.99927906, 0.49322300],\
++[	-6.27309851, -0.00044699, 0.00027385, 7.27265152, 0.99863454, 0.99927916, 0.49322302],\
++[	-6.27309866, -0.00044692, 0.00027381, 7.27265174, 0.99863474, 0.99927927, 0.49322302],\
++[	-6.27309882, -0.00044686, 0.00027377, 7.27265196, 0.99863493, 0.99927937, 0.49322309],\
++[	-6.27309897, -0.00044679, 0.00027373, 7.27265218, 0.99863513, 0.99927948, 0.49322304],\
++[	-6.27309913, -0.00044673, 0.00027369, 7.27265240, 0.99863533, 0.99927958, 0.49322317],\
++[	-6.27309928, -0.00044666, 0.00027365, 7.27265262, 0.99863553, 0.99927968, 0.49322317],\
++[	-6.27309944, -0.00044660, 0.00027361, 7.27265284, 0.99863572, 0.99927979, 0.49322320],\
++[	-6.27309959, -0.00044653, 0.00027357, 7.27265305, 0.99863592, 0.99927989, 0.49322325],\
++[	-6.27309974, -0.00044647, 0.00027353, 7.27265327, 0.99863612, 0.99928000, 0.49322322],\
++[	-6.27309990, -0.00044641, 0.00027349, 7.27265349, 0.99863631, 0.99928010, 0.49322331],\
++[	-6.27310005, -0.00044634, 0.00027345, 7.27265371, 0.99863651, 0.99928020, 0.49322327],\
++[	-6.27310021, -0.00044628, 0.00027341, 7.27265393, 0.99863671, 0.99928031, 0.49322319],\
++[	-6.27310036, -0.00044621, 0.00027338, 7.27265415, 0.99863690, 0.99928041, 0.49322336],\
++[	-6.27310051, -0.00044615, 0.00027334, 7.27265436, 0.99863710, 0.99928052, 0.49322341],\
++[	-6.27310067, -0.00044608, 0.00027330, 7.27265458, 0.99863730, 0.99928062, 0.49322335],\
++[	-6.27310082, -0.00044602, 0.00027326, 7.27265480, 0.99863749, 0.99928072, 0.49322336],\
++[	-6.27310097, -0.00044596, 0.00027322, 7.27265502, 0.99863769, 0.99928083, 0.49322343],\
++[	-6.27310113, -0.00044589, 0.00027318, 7.27265524, 0.99863789, 0.99928093, 0.49322345],\
++[	-6.27310128, -0.00044583, 0.00027314, 7.27265546, 0.99863808, 0.99928103, 0.49322341],\
++[	-6.27310144, -0.00044576, 0.00027310, 7.27265567, 0.99863828, 0.99928114, 0.49322343],\
++[	-6.27310159, -0.00044570, 0.00027306, 7.27265589, 0.99863847, 0.99928124, 0.49322353],\
++[	-6.27310174, -0.00044563, 0.00027302, 7.27265611, 0.99863867, 0.99928134, 0.49322355],\
++[	-6.27310190, -0.00044557, 0.00027298, 7.27265633, 0.99863887, 0.99928145, 0.49322359],\
++[	-6.27310205, -0.00044551, 0.00027294, 7.27265654, 0.99863906, 0.99928155, 0.49322357],\
++[	-6.27310220, -0.00044544, 0.00027290, 7.27265676, 0.99863926, 0.99928165, 0.49322365],\
++[	-6.27310236, -0.00044538, 0.00027286, 7.27265698, 0.99863945, 0.99928176, 0.49322365],\
++[	-6.27310251, -0.00044531, 0.00027282, 7.27265720, 0.99863965, 0.99928186, 0.49322366],\
++[	-6.27310266, -0.00044525, 0.00027279, 7.27265741, 0.99863984, 0.99928196, 0.49322350],\
++[	-6.27310282, -0.00044519, 0.00027275, 7.27265763, 0.99864004, 0.99928207, 0.49322363],\
++[	-6.27310297, -0.00044512, 0.00027271, 7.27265785, 0.99864024, 0.99928217, 0.49322376],\
++[	-6.27310312, -0.00044506, 0.00027267, 7.27265807, 0.99864043, 0.99928227, 0.49322376],\
++[	-6.27310328, -0.00044499, 0.00027263, 7.27265828, 0.99864063, 0.99928238, 0.49322386],\
++[	-6.27310343, -0.00044493, 0.00027259, 7.27265850, 0.99864082, 0.99928248, 0.49322387],\
++[	-6.27310358, -0.00044487, 0.00027255, 7.27265872, 0.99864102, 0.99928258, 0.49322377],\
++[	-6.27310374, -0.00044480, 0.00027251, 7.27265893, 0.99864121, 0.99928269, 0.49322371],\
++[	-6.27310389, -0.00044474, 0.00027247, 7.27265915, 0.99864141, 0.99928279, 0.49322385],\
++[	-6.27310404, -0.00044467, 0.00027243, 7.27265937, 0.99864160, 0.99928289, 0.49322391],\
++[	-6.27310419, -0.00044461, 0.00027239, 7.27265958, 0.99864180, 0.99928300, 0.49322388],\
++[	-6.27310435, -0.00044455, 0.00027235, 7.27265980, 0.99864199, 0.99928310, 0.49322387],\
++[	-6.27310450, -0.00044448, 0.00027231, 7.27266002, 0.99864219, 0.99928320, 0.49322394],\
++[	-6.27310465, -0.00044442, 0.00027228, 7.27266023, 0.99864238, 0.99928330, 0.49322403],\
++[	-6.27310481, -0.00044436, 0.00027224, 7.27266045, 0.99864258, 0.99928341, 0.49322393],\
++[	-6.27310496, -0.00044429, 0.00027220, 7.27266067, 0.99864277, 0.99928351, 0.49322396],\
++[	-6.27310511, -0.00044423, 0.00027216, 7.27266088, 0.99864297, 0.99928361, 0.49322397],\
++[	-6.27310526, -0.00044416, 0.00027212, 7.27266110, 0.99864316, 0.99928372, 0.49322408],\
++[	-6.27310542, -0.00044410, 0.00027208, 7.27266132, 0.99864336, 0.99928382, 0.49322399],\
++[	-6.27310557, -0.00044404, 0.00027204, 7.27266153, 0.99864355, 0.99928392, 0.49322405],\
++[	-6.27310572, -0.00044397, 0.00027200, 7.27266175, 0.99864375, 0.99928402, 0.49322411],\
++[	-6.27310587, -0.00044391, 0.00027196, 7.27266196, 0.99864394, 0.99928413, 0.49322415],\
++[	-6.27310603, -0.00044385, 0.00027192, 7.27266218, 0.99864414, 0.99928423, 0.49322414],\
++[	-6.27310618, -0.00044378, 0.00027189, 7.27266240, 0.99864433, 0.99928433, 0.49322429],\
++[	-6.27310633, -0.00044372, 0.00027185, 7.27266261, 0.99864453, 0.99928444, 0.49322422],\
++[	-6.27310648, -0.00044365, 0.00027181, 7.27266283, 0.99864472, 0.99928454, 0.49322422],\
++[	-6.27310663, -0.00044359, 0.00027177, 7.27266304, 0.99864491, 0.99928464, 0.49322418],\
++[	-6.27310679, -0.00044353, 0.00027173, 7.27266326, 0.99864511, 0.99928474, 0.49322426],\
++[	-6.27310694, -0.00044346, 0.00027169, 7.27266347, 0.99864530, 0.99928485, 0.49322432],\
++[	-6.27310709, -0.00044340, 0.00027165, 7.27266369, 0.99864550, 0.99928495, 0.49322429],\
++[	-6.27310724, -0.00044334, 0.00027161, 7.27266391, 0.99864569, 0.99928505, 0.49322440],\
++[	-6.27310739, -0.00044327, 0.00027157, 7.27266412, 0.99864589, 0.99928515, 0.49322431],\
++[	-6.27310755, -0.00044321, 0.00027153, 7.27266434, 0.99864608, 0.99928526, 0.49322435],\
++[	-6.27310770, -0.00044315, 0.00027150, 7.27266455, 0.99864627, 0.99928536, 0.49322446],\
++[	-6.27310785, -0.00044308, 0.00027146, 7.27266477, 0.99864647, 0.99928546, 0.49322440],\
++[	-6.27310800, -0.00044302, 0.00027142, 7.27266498, 0.99864666, 0.99928556, 0.49322441],\
++[	-6.27310815, -0.00044296, 0.00027138, 7.27266520, 0.99864685, 0.99928566, 0.49322447],\
++[	-6.27310831, -0.00044289, 0.00027134, 7.27266541, 0.99864705, 0.99928577, 0.49322449],\
++[	-6.27310846, -0.00044283, 0.00027130, 7.27266563, 0.99864724, 0.99928587, 0.49322455],\
++[	-6.27310861, -0.00044277, 0.00027126, 7.27266584, 0.99864744, 0.99928597, 0.49322455],\
++[	-6.27310876, -0.00044270, 0.00027122, 7.27266606, 0.99864763, 0.99928607, 0.49322448],\
++[	-6.27310891, -0.00044264, 0.00027119, 7.27266627, 0.99864782, 0.99928618, 0.49322460],\
++[	-6.27310906, -0.00044258, 0.00027115, 7.27266649, 0.99864802, 0.99928628, 0.49322463],\
++[	-6.27310921, -0.00044251, 0.00027111, 7.27266670, 0.99864821, 0.99928638, 0.49322466],\
++[	-6.27310937, -0.00044245, 0.00027107, 7.27266692, 0.99864840, 0.99928648, 0.49322476],\
++[	-6.27310952, -0.00044239, 0.00027103, 7.27266713, 0.99864860, 0.99928658, 0.49322465],\
++[	-6.27310967, -0.00044232, 0.00027099, 7.27266735, 0.99864879, 0.99928669, 0.49322471],\
++[	-6.27310982, -0.00044226, 0.00027095, 7.27266756, 0.99864898, 0.99928679, 0.49322475],\
++[	-6.27310997, -0.00044220, 0.00027091, 7.27266777, 0.99864917, 0.99928689, 0.49322474],\
++[	-6.27311012, -0.00044213, 0.00027088, 7.27266799, 0.99864937, 0.99928699, 0.49322474],\
++[	-6.27311027, -0.00044207, 0.00027084, 7.27266820, 0.99864956, 0.99928709, 0.49322480],\
++[	-6.27311042, -0.00044201, 0.00027080, 7.27266842, 0.99864975, 0.99928719, 0.49322485],\
++[	-6.27311058, -0.00044194, 0.00027076, 7.27266863, 0.99864995, 0.99928730, 0.49322481],\
++[	-6.27311073, -0.00044188, 0.00027072, 7.27266884, 0.99865014, 0.99928740, 0.49322488],\
++[	-6.27311088, -0.00044182, 0.00027068, 7.27266906, 0.99865033, 0.99928750, 0.49322485],\
++[	-6.27311103, -0.00044176, 0.00027064, 7.27266927, 0.99865052, 0.99928760, 0.49322488],\
++[	-6.27311118, -0.00044169, 0.00027060, 7.27266949, 0.99865072, 0.99928770, 0.49322494],\
++[	-6.27311133, -0.00044163, 0.00027057, 7.27266970, 0.99865091, 0.99928780, 0.49322492],\
++[	-6.27311148, -0.00044157, 0.00027053, 7.27266991, 0.99865110, 0.99928791, 0.49322499],\
++[	-6.27311163, -0.00044150, 0.00027049, 7.27267013, 0.99865129, 0.99928801, 0.49322490],\
++[	-6.27311178, -0.00044144, 0.00027045, 7.27267034, 0.99865149, 0.99928811, 0.49322494],\
++[	-6.27311193, -0.00044138, 0.00027041, 7.27267056, 0.99865168, 0.99928821, 0.49322503],\
++[	-6.27311208, -0.00044131, 0.00027037, 7.27267077, 0.99865187, 0.99928831, 0.49322507],\
++[	-6.27311223, -0.00044125, 0.00027033, 7.27267098, 0.99865206, 0.99928841, 0.49322506],\
++[	-6.27311238, -0.00044119, 0.00027030, 7.27267120, 0.99865226, 0.99928852, 0.49322507],\
++[	-6.27311253, -0.00044113, 0.00027026, 7.27267141, 0.99865245, 0.99928862, 0.49322511],\
++[	-6.27311269, -0.00044106, 0.00027022, 7.27267162, 0.99865264, 0.99928872, 0.49322515],\
++[	-6.27311284, -0.00044100, 0.00027018, 7.27267184, 0.99865283, 0.99928882, 0.49322525],\
++[	-6.27311299, -0.00044094, 0.00027014, 7.27267205, 0.99865302, 0.99928892, 0.49322511],\
++[	-6.27311314, -0.00044087, 0.00027010, 7.27267226, 0.99865322, 0.99928902, 0.49322518],\
++[	-6.27311329, -0.00044081, 0.00027006, 7.27267247, 0.99865341, 0.99928912, 0.49322526],\
++[	-6.27311344, -0.00044075, 0.00027003, 7.27267269, 0.99865360, 0.99928922, 0.49322521],\
++[	-6.27311359, -0.00044069, 0.00026999, 7.27267290, 0.99865379, 0.99928933, 0.49322528],\
++[	-6.27311374, -0.00044062, 0.00026995, 7.27267311, 0.99865398, 0.99928943, 0.49322529],\
++[	-6.27311389, -0.00044056, 0.00026991, 7.27267333, 0.99865418, 0.99928953, 0.49322527],\
++[	-6.27311404, -0.00044050, 0.00026987, 7.27267354, 0.99865437, 0.99928963, 0.49322539],\
++[	-6.27311419, -0.00044044, 0.00026983, 7.27267375, 0.99865456, 0.99928973, 0.49322538],\
++[	-6.27311434, -0.00044037, 0.00026980, 7.27267396, 0.99865475, 0.99928983, 0.49322547],\
++[	-6.27311449, -0.00044031, 0.00026976, 7.27267418, 0.99865494, 0.99928993, 0.49322544],\
++[	-6.27311464, -0.00044025, 0.00026972, 7.27267439, 0.99865513, 0.99929003, 0.49322545],\
++[	-6.27311479, -0.00044018, 0.00026968, 7.27267460, 0.99865532, 0.99929013, 0.49322545],\
++[	-6.27311494, -0.00044012, 0.00026964, 7.27267481, 0.99865551, 0.99929024, 0.49322537],\
++[	-6.27311509, -0.00044006, 0.00026960, 7.27267503, 0.99865571, 0.99929034, 0.49322549],\
++[	-6.27311524, -0.00044000, 0.00026957, 7.27267524, 0.99865590, 0.99929044, 0.49322552],\
++[	-6.27311539, -0.00043993, 0.00026953, 7.27267545, 0.99865609, 0.99929054, 0.49322561],\
++[	-6.27311554, -0.00043987, 0.00026949, 7.27267566, 0.99865628, 0.99929064, 0.49322551],\
++[	-6.27311569, -0.00043981, 0.00026945, 7.27267588, 0.99865647, 0.99929074, 0.49322559],\
++[	-6.27311583, -0.00043975, 0.00026941, 7.27267609, 0.99865666, 0.99929084, 0.49322564],\
++[	-6.27311598, -0.00043968, 0.00026937, 7.27267630, 0.99865685, 0.99929094, 0.49322558],\
++[	-6.27311613, -0.00043962, 0.00026934, 7.27267651, 0.99865704, 0.99929104, 0.49322567],\
++[	-6.27311628, -0.00043956, 0.00026930, 7.27267672, 0.99865723, 0.99929114, 0.49322564],\
++[	-6.27311643, -0.00043950, 0.00026926, 7.27267693, 0.99865742, 0.99929124, 0.49322573],\
++[	-6.27311658, -0.00043944, 0.00026922, 7.27267715, 0.99865762, 0.99929134, 0.49322571],\
++[	-6.27311673, -0.00043937, 0.00026918, 7.27267736, 0.99865781, 0.99929144, 0.49322569],\
++[	-6.27311688, -0.00043931, 0.00026914, 7.27267757, 0.99865800, 0.99929155, 0.49322578],\
++[	-6.27311703, -0.00043925, 0.00026911, 7.27267778, 0.99865819, 0.99929165, 0.49322578],\
++[	-6.27311718, -0.00043919, 0.00026907, 7.27267799, 0.99865838, 0.99929175, 0.49322584],\
++[	-6.27311733, -0.00043912, 0.00026903, 7.27267820, 0.99865857, 0.99929185, 0.49322586],\
++[	-6.27311748, -0.00043906, 0.00026899, 7.27267842, 0.99865876, 0.99929195, 0.49322590],\
++[	-6.27311763, -0.00043900, 0.00026895, 7.27267863, 0.99865895, 0.99929205, 0.49322588],\
++[	-6.27311777, -0.00043894, 0.00026892, 7.27267884, 0.99865914, 0.99929215, 0.49322594],\
++[	-6.27311792, -0.00043887, 0.00026888, 7.27267905, 0.99865933, 0.99929225, 0.49322584],\
++[	-6.27311807, -0.00043881, 0.00026884, 7.27267926, 0.99865952, 0.99929235, 0.49322593],\
++[	-6.27311822, -0.00043875, 0.00026880, 7.27267947, 0.99865971, 0.99929245, 0.49322593],\
++[	-6.27311837, -0.00043869, 0.00026876, 7.27267968, 0.99865990, 0.99929255, 0.49322599],\
++[	-6.27311852, -0.00043863, 0.00026872, 7.27267989, 0.99866009, 0.99929265, 0.49322601],\
++[	-6.27311867, -0.00043856, 0.00026869, 7.27268010, 0.99866028, 0.99929275, 0.49322609],\
++[	-6.27311882, -0.00043850, 0.00026865, 7.27268032, 0.99866047, 0.99929285, 0.49322605],\
++[	-6.27311897, -0.00043844, 0.00026861, 7.27268053, 0.99866066, 0.99929295, 0.49322609],\
++[	-6.27311911, -0.00043838, 0.00026857, 7.27268074, 0.99866085, 0.99929305, 0.49322609],\
++[	-6.27311926, -0.00043832, 0.00026853, 7.27268095, 0.99866104, 0.99929315, 0.49322617],\
++[	-6.27311941, -0.00043825, 0.00026850, 7.27268116, 0.99866123, 0.99929325, 0.49322622],\
++[	-6.27311956, -0.00043819, 0.00026846, 7.27268137, 0.99866142, 0.99929335, 0.49322614],\
++[	-6.27311971, -0.00043813, 0.00026842, 7.27268158, 0.99866161, 0.99929345, 0.49322631],\
++[	-6.27311986, -0.00043807, 0.00026838, 7.27268179, 0.99866180, 0.99929355, 0.49322620],\
++[	-6.27312000, -0.00043800, 0.00026834, 7.27268200, 0.99866199, 0.99929365, 0.49322616],\
++[	-6.27312015, -0.00043794, 0.00026831, 7.27268221, 0.99866217, 0.99929375, 0.49322624],\
++[	-6.27312030, -0.00043788, 0.00026827, 7.27268242, 0.99866236, 0.99929385, 0.49322623],\
++[	-6.27312045, -0.00043782, 0.00026823, 7.27268263, 0.99866255, 0.99929395, 0.49322635],\
++[	-6.27312060, -0.00043776, 0.00026819, 7.27268284, 0.99866274, 0.99929405, 0.49322632],\
++[	-6.27312075, -0.00043770, 0.00026815, 7.27268305, 0.99866293, 0.99929415, 0.49322635],\
++[	-6.27312089, -0.00043763, 0.00026812, 7.27268326, 0.99866312, 0.99929425, 0.49322639],\
++[	-6.27312104, -0.00043757, 0.00026808, 7.27268347, 0.99866331, 0.99929435, 0.49322639],\
++[	-6.27312119, -0.00043751, 0.00026804, 7.27268368, 0.99866350, 0.99929445, 0.49322638],\
++[	-6.27312134, -0.00043745, 0.00026800, 7.27268389, 0.99866369, 0.99929455, 0.49322647],\
++[	-6.27312149, -0.00043739, 0.00026796, 7.27268410, 0.99866388, 0.99929465, 0.49322642],\
++[	-6.27312163, -0.00043732, 0.00026793, 7.27268431, 0.99866407, 0.99929475, 0.49322644],\
++[	-6.27312178, -0.00043726, 0.00026789, 7.27268452, 0.99866425, 0.99929485, 0.49322646],\
++[	-6.27312193, -0.00043720, 0.00026785, 7.27268473, 0.99866444, 0.99929495, 0.49322653],\
++[	-6.27312208, -0.00043714, 0.00026781, 7.27268494, 0.99866463, 0.99929505, 0.49322663],\
++[	-6.27312223, -0.00043708, 0.00026778, 7.27268515, 0.99866482, 0.99929515, 0.49322655],\
++[	-6.27312237, -0.00043702, 0.00026774, 7.27268536, 0.99866501, 0.99929525, 0.49322658],\
++[	-6.27312252, -0.00043695, 0.00026770, 7.27268557, 0.99866520, 0.99929535, 0.49322660],\
++[	-6.27312267, -0.00043689, 0.00026766, 7.27268578, 0.99866539, 0.99929545, 0.49322666],\
++[	-6.27312282, -0.00043683, 0.00026762, 7.27268599, 0.99866557, 0.99929555, 0.49322663],\
++[	-6.27312296, -0.00043677, 0.00026759, 7.27268619, 0.99866576, 0.99929564, 0.49322672],\
++[	-6.27312311, -0.00043671, 0.00026755, 7.27268640, 0.99866595, 0.99929574, 0.49322669],\
++[	-6.27312326, -0.00043665, 0.00026751, 7.27268661, 0.99866614, 0.99929584, 0.49322667],\
++[	-6.27312341, -0.00043658, 0.00026747, 7.27268682, 0.99866633, 0.99929594, 0.49322665],\
++[	-6.27312355, -0.00043652, 0.00026744, 7.27268703, 0.99866652, 0.99929604, 0.49322678],\
++[	-6.27312370, -0.00043646, 0.00026740, 7.27268724, 0.99866670, 0.99929614, 0.49322680],\
++[	-6.27312385, -0.00043640, 0.00026736, 7.27268745, 0.99866689, 0.99929624, 0.49322677],\
++[	-6.27312399, -0.00043634, 0.00026732, 7.27268766, 0.99866708, 0.99929634, 0.49322687],\
++[	-6.27312414, -0.00043628, 0.00026728, 7.27268787, 0.99866727, 0.99929644, 0.49322695],\
++[	-6.27312429, -0.00043622, 0.00026725, 7.27268807, 0.99866746, 0.99929654, 0.49322684],\
++[	-6.27312444, -0.00043615, 0.00026721, 7.27268828, 0.99866764, 0.99929664, 0.49322695],\
++[	-6.27312458, -0.00043609, 0.00026717, 7.27268849, 0.99866783, 0.99929674, 0.49322694],\
++[	-6.27312473, -0.00043603, 0.00026713, 7.27268870, 0.99866802, 0.99929684, 0.49322694],\
++[	-6.27312488, -0.00043597, 0.00026710, 7.27268891, 0.99866821, 0.99929693, 0.49322692],\
++[	-6.27312502, -0.00043591, 0.00026706, 7.27268912, 0.99866839, 0.99929703, 0.49322694],\
++[	-6.27312517, -0.00043585, 0.00026702, 7.27268932, 0.99866858, 0.99929713, 0.49322699],\
++[	-6.27312532, -0.00043579, 0.00026698, 7.27268953, 0.99866877, 0.99929723, 0.49322697],\
++[	-6.27312546, -0.00043572, 0.00026695, 7.27268974, 0.99866896, 0.99929733, 0.49322709],\
++[	-6.27312561, -0.00043566, 0.00026691, 7.27268995, 0.99866914, 0.99929743, 0.49322698],\
++[	-6.27312576, -0.00043560, 0.00026687, 7.27269016, 0.99866933, 0.99929753, 0.49322713],\
++[	-6.27312590, -0.00043554, 0.00026683, 7.27269037, 0.99866952, 0.99929763, 0.49322708],\
++[	-6.27312605, -0.00043548, 0.00026680, 7.27269057, 0.99866971, 0.99929773, 0.49322723],\
++[	-6.27312620, -0.00043542, 0.00026676, 7.27269078, 0.99866989, 0.99929782, 0.49322717],\
++[	-6.27312634, -0.00043536, 0.00026672, 7.27269099, 0.99867008, 0.99929792, 0.49322722],\
++[	-6.27312649, -0.00043529, 0.00026668, 7.27269120, 0.99867027, 0.99929802, 0.49322714],\
++[	-6.27312664, -0.00043523, 0.00026665, 7.27269140, 0.99867045, 0.99929812, 0.49322725],\
++[	-6.27312678, -0.00043517, 0.00026661, 7.27269161, 0.99867064, 0.99929822, 0.49322739],\
++[	-6.27312693, -0.00043511, 0.00026657, 7.27269182, 0.99867083, 0.99929832, 0.49322721],\
++[	-6.27312708, -0.00043505, 0.00026653, 7.27269203, 0.99867101, 0.99929842, 0.49322728],\
++[	-6.27312722, -0.00043499, 0.00026650, 7.27269223, 0.99867120, 0.99929852, 0.49322731],\
++[	-6.27312737, -0.00043493, 0.00026646, 7.27269244, 0.99867139, 0.99929861, 0.49322735],\
++[	-6.27312752, -0.00043487, 0.00026642, 7.27269265, 0.99867158, 0.99929871, 0.49322737],\
++[	-6.27312766, -0.00043481, 0.00026638, 7.27269286, 0.99867176, 0.99929881, 0.49322735],\
++[	-6.27312781, -0.00043474, 0.00026635, 7.27269306, 0.99867195, 0.99929891, 0.49322744],\
++[	-6.27312795, -0.00043468, 0.00026631, 7.27269327, 0.99867214, 0.99929901, 0.49322745],\
++[	-6.27312810, -0.00043462, 0.00026627, 7.27269348, 0.99867232, 0.99929911, 0.49322747],\
++[	-6.27312825, -0.00043456, 0.00026623, 7.27269368, 0.99867251, 0.99929920, 0.49322750],\
++[	-6.27312839, -0.00043450, 0.00026620, 7.27269389, 0.99867269, 0.99929930, 0.49322745],\
++[	-6.27312854, -0.00043444, 0.00026616, 7.27269410, 0.99867288, 0.99929940, 0.49322761],\
++[	-6.27312868, -0.00043438, 0.00026612, 7.27269431, 0.99867307, 0.99929950, 0.49322746],\
++[	-6.27312883, -0.00043432, 0.00026608, 7.27269451, 0.99867325, 0.99929960, 0.49322757],\
++[	-6.27312898, -0.00043426, 0.00026605, 7.27269472, 0.99867344, 0.99929970, 0.49322765],\
++[	-6.27312912, -0.00043420, 0.00026601, 7.27269493, 0.99867363, 0.99929979, 0.49322763],\
++[	-6.27312927, -0.00043413, 0.00026597, 7.27269513, 0.99867381, 0.99929989, 0.49322751],\
++[	-6.27312941, -0.00043407, 0.00026593, 7.27269534, 0.99867400, 0.99929999, 0.49322758],\
++[	-6.27312956, -0.00043401, 0.00026590, 7.27269555, 0.99867418, 0.99930009, 0.49322771],\
++[	-6.27312970, -0.00043395, 0.00026586, 7.27269575, 0.99867437, 0.99930019, 0.49322770],\
++[	-6.27312985, -0.00043389, 0.00026582, 7.27269596, 0.99867456, 0.99930029, 0.49322772],\
++[	-6.27313000, -0.00043383, 0.00026579, 7.27269616, 0.99867474, 0.99930038, 0.49322775],\
++[	-6.27313014, -0.00043377, 0.00026575, 7.27269637, 0.99867493, 0.99930048, 0.49322776],\
++[	-6.27313029, -0.00043371, 0.00026571, 7.27269658, 0.99867511, 0.99930058, 0.49322779],\
++[	-6.27313043, -0.00043365, 0.00026567, 7.27269678, 0.99867530, 0.99930068, 0.49322775],\
++[	-6.27313058, -0.00043359, 0.00026564, 7.27269699, 0.99867548, 0.99930078, 0.49322782],\
++[	-6.27313072, -0.00043353, 0.00026560, 7.27269720, 0.99867567, 0.99930087, 0.49322777],\
++[	-6.27313087, -0.00043347, 0.00026556, 7.27269740, 0.99867586, 0.99930097, 0.49322785],\
++[	-6.27313101, -0.00043341, 0.00026552, 7.27269761, 0.99867604, 0.99930107, 0.49322785],\
++[	-6.27313116, -0.00043335, 0.00026549, 7.27269781, 0.99867623, 0.99930117, 0.49322792],\
++[	-6.27313130, -0.00043328, 0.00026545, 7.27269802, 0.99867641, 0.99930127, 0.49322802],\
++[	-6.27313145, -0.00043322, 0.00026541, 7.27269823, 0.99867660, 0.99930136, 0.49322800],\
++[	-6.27313159, -0.00043316, 0.00026538, 7.27269843, 0.99867678, 0.99930146, 0.49322801],\
++[	-6.27313174, -0.00043310, 0.00026534, 7.27269864, 0.99867697, 0.99930156, 0.49322793],\
++[	-6.27313188, -0.00043304, 0.00026530, 7.27269884, 0.99867715, 0.99930166, 0.49322797],\
++[	-6.27313203, -0.00043298, 0.00026526, 7.27269905, 0.99867734, 0.99930175, 0.49322808],\
++[	-6.27313217, -0.00043292, 0.00026523, 7.27269925, 0.99867752, 0.99930185, 0.49322805],\
++[	-6.27313232, -0.00043286, 0.00026519, 7.27269946, 0.99867771, 0.99930195, 0.49322811],\
++[	-6.27313246, -0.00043280, 0.00026515, 7.27269966, 0.99867789, 0.99930205, 0.49322809],\
++[	-6.27313261, -0.00043274, 0.00026512, 7.27269987, 0.99867808, 0.99930214, 0.49322806],\
++[	-6.27313275, -0.00043268, 0.00026508, 7.27270007, 0.99867826, 0.99930224, 0.49322819],\
++[	-6.27313290, -0.00043262, 0.00026504, 7.27270028, 0.99867845, 0.99930234, 0.49322820],\
++[	-6.27313304, -0.00043256, 0.00026501, 7.27270049, 0.99867863, 0.99930244, 0.49322821],\
++[	-6.27313319, -0.00043250, 0.00026497, 7.27270069, 0.99867882, 0.99930253, 0.49322826],\
++[	-6.27313333, -0.00043244, 0.00026493, 7.27270090, 0.99867900, 0.99930263, 0.49322825],\
++[	-6.27313348, -0.00043238, 0.00026489, 7.27270110, 0.99867919, 0.99930273, 0.49322828],\
++[	-6.27313362, -0.00043232, 0.00026486, 7.27270131, 0.99867937, 0.99930283, 0.49322824],\
++[	-6.27313377, -0.00043226, 0.00026482, 7.27270151, 0.99867955, 0.99930292, 0.49322829],\
++[	-6.27313391, -0.00043220, 0.00026478, 7.27270171, 0.99867974, 0.99930302, 0.49322833],\
++[	-6.27313405, -0.00043214, 0.00026475, 7.27270192, 0.99867992, 0.99930312, 0.49322832],\
++[	-6.27313420, -0.00043207, 0.00026471, 7.27270212, 0.99868011, 0.99930322, 0.49322832],\
++[	-6.27313434, -0.00043201, 0.00026467, 7.27270233, 0.99868029, 0.99930331, 0.49322841],\
++[	-6.27313449, -0.00043195, 0.00026464, 7.27270253, 0.99868048, 0.99930341, 0.49322842],\
++[	-6.27313463, -0.00043189, 0.00026460, 7.27270274, 0.99868066, 0.99930351, 0.49322850],\
++[	-6.27313478, -0.00043183, 0.00026456, 7.27270294, 0.99868084, 0.99930360, 0.49322849],\
++[	-6.27313492, -0.00043177, 0.00026452, 7.27270315, 0.99868103, 0.99930370, 0.49322832],\
++[	-6.27313506, -0.00043171, 0.00026449, 7.27270335, 0.99868121, 0.99930380, 0.49322850],\
++[	-6.27313521, -0.00043165, 0.00026445, 7.27270356, 0.99868140, 0.99930390, 0.49322849],\
++[	-6.27313535, -0.00043159, 0.00026441, 7.27270376, 0.99868158, 0.99930399, 0.49322851],\
++[	-6.27313550, -0.00043153, 0.00026438, 7.27270396, 0.99868176, 0.99930409, 0.49322842],\
++[	-6.27313564, -0.00043147, 0.00026434, 7.27270417, 0.99868195, 0.99930419, 0.49322856],\
++[	-6.27313578, -0.00043141, 0.00026430, 7.27270437, 0.99868213, 0.99930428, 0.49322852],\
++[	-6.27313593, -0.00043135, 0.00026427, 7.27270458, 0.99868232, 0.99930438, 0.49322857],\
++[	-6.27313607, -0.00043129, 0.00026423, 7.27270478, 0.99868250, 0.99930448, 0.49322857],\
++[	-6.27313622, -0.00043123, 0.00026419, 7.27270498, 0.99868268, 0.99930458, 0.49322862],\
++[	-6.27313636, -0.00043117, 0.00026416, 7.27270519, 0.99868287, 0.99930467, 0.49322867],\
++[	-6.27313650, -0.00043111, 0.00026412, 7.27270539, 0.99868305, 0.99930477, 0.49322876],\
++[	-6.27313665, -0.00043105, 0.00026408, 7.27270560, 0.99868323, 0.99930487, 0.49322877],\
++[	-6.27313679, -0.00043099, 0.00026405, 7.27270580, 0.99868342, 0.99930496, 0.49322873],\
++[	-6.27313693, -0.00043093, 0.00026401, 7.27270600, 0.99868360, 0.99930506, 0.49322870],\
++[	-6.27313708, -0.00043087, 0.00026397, 7.27270621, 0.99868378, 0.99930516, 0.49322877],\
++[	-6.27313722, -0.00043081, 0.00026394, 7.27270641, 0.99868397, 0.99930525, 0.49322879],\
++[	-6.27313737, -0.00043075, 0.00026390, 7.27270661, 0.99868415, 0.99930535, 0.49322891],\
++[	-6.27313751, -0.00043069, 0.00026386, 7.27270682, 0.99868433, 0.99930545, 0.49322887],\
++[	-6.27313765, -0.00043063, 0.00026382, 7.27270702, 0.99868452, 0.99930554, 0.49322881],\
++[	-6.27313780, -0.00043057, 0.00026379, 7.27270722, 0.99868470, 0.99930564, 0.49322892],\
++[	-6.27313794, -0.00043051, 0.00026375, 7.27270743, 0.99868488, 0.99930574, 0.49322891],\
++[	-6.27313808, -0.00043045, 0.00026371, 7.27270763, 0.99868507, 0.99930583, 0.49322891],\
++[	-6.27313823, -0.00043039, 0.00026368, 7.27270783, 0.99868525, 0.99930593, 0.49322893],\
++[	-6.27313837, -0.00043033, 0.00026364, 7.27270804, 0.99868543, 0.99930603, 0.49322886],\
++[	-6.27313851, -0.00043027, 0.00026360, 7.27270824, 0.99868561, 0.99930612, 0.49322902],\
++[	-6.27313865, -0.00043021, 0.00026357, 7.27270844, 0.99868580, 0.99930622, 0.49322900],\
++[	-6.27313880, -0.00043015, 0.00026353, 7.27270864, 0.99868598, 0.99930632, 0.49322904],\
++[	-6.27313894, -0.00043009, 0.00026349, 7.27270885, 0.99868616, 0.99930641, 0.49322903],\
++[	-6.27313908, -0.00043003, 0.00026346, 7.27270905, 0.99868634, 0.99930651, 0.49322900],\
++[	-6.27313923, -0.00042997, 0.00026342, 7.27270925, 0.99868653, 0.99930660, 0.49322904],\
++[	-6.27313937, -0.00042991, 0.00026338, 7.27270946, 0.99868671, 0.99930670, 0.49322912],\
++[	-6.27313951, -0.00042985, 0.00026335, 7.27270966, 0.99868689, 0.99930680, 0.49322917],\
++[	-6.27313966, -0.00042980, 0.00026331, 7.27270986, 0.99868707, 0.99930689, 0.49322903],\
++[	-6.27313980, -0.00042974, 0.00026328, 7.27271006, 0.99868726, 0.99930699, 0.49322919],\
++[	-6.27313994, -0.00042968, 0.00026324, 7.27271027, 0.99868744, 0.99930709, 0.49322915],\
++[	-6.27314008, -0.00042962, 0.00026320, 7.27271047, 0.99868762, 0.99930718, 0.49322921],\
++[	-6.27314023, -0.00042956, 0.00026317, 7.27271067, 0.99868780, 0.99930728, 0.49322918],\
++[	-6.27314037, -0.00042950, 0.00026313, 7.27271087, 0.99868799, 0.99930737, 0.49322930],\
++[	-6.27314051, -0.00042944, 0.00026309, 7.27271107, 0.99868817, 0.99930747, 0.49322927],\
++[	-6.27314065, -0.00042938, 0.00026306, 7.27271128, 0.99868835, 0.99930757, 0.49322931],\
++[	-6.27314080, -0.00042932, 0.00026302, 7.27271148, 0.99868853, 0.99930766, 0.49322934],\
++[	-6.27314094, -0.00042926, 0.00026298, 7.27271168, 0.99868871, 0.99930776, 0.49322928],\
++[	-6.27314108, -0.00042920, 0.00026295, 7.27271188, 0.99868890, 0.99930785, 0.49322942],\
++[	-6.27314122, -0.00042914, 0.00026291, 7.27271208, 0.99868908, 0.99930795, 0.49322942],\
++[	-6.27314137, -0.00042908, 0.00026287, 7.27271229, 0.99868926, 0.99930805, 0.49322944],\
++[	-6.27314151, -0.00042902, 0.00026284, 7.27271249, 0.99868944, 0.99930814, 0.49322951],\
++[	-6.27314165, -0.00042896, 0.00026280, 7.27271269, 0.99868962, 0.99930824, 0.49322944],\
++[	-6.27314179, -0.00042890, 0.00026276, 7.27271289, 0.99868980, 0.99930833, 0.49322951],\
++[	-6.27314194, -0.00042884, 0.00026273, 7.27271309, 0.99868999, 0.99930843, 0.49322954],\
++[	-6.27314208, -0.00042878, 0.00026269, 7.27271329, 0.99869017, 0.99930853, 0.49322961],\
++[	-6.27314222, -0.00042872, 0.00026265, 7.27271350, 0.99869035, 0.99930862, 0.49322958],\
++[	-6.27314236, -0.00042866, 0.00026262, 7.27271370, 0.99869053, 0.99930872, 0.49322958],\
++[	-6.27314250, -0.00042861, 0.00026258, 7.27271390, 0.99869071, 0.99930881, 0.49322960],\
++[	-6.27314265, -0.00042855, 0.00026255, 7.27271410, 0.99869089, 0.99930891, 0.49322954],\
++[	-6.27314279, -0.00042849, 0.00026251, 7.27271430, 0.99869107, 0.99930900, 0.49322960],\
++[	-6.27314293, -0.00042843, 0.00026247, 7.27271450, 0.99869125, 0.99930910, 0.49322964],\
++[	-6.27314307, -0.00042837, 0.00026244, 7.27271470, 0.99869144, 0.99930920, 0.49322967],\
++[	-6.27314321, -0.00042831, 0.00026240, 7.27271491, 0.99869162, 0.99930929, 0.49322963],\
++[	-6.27314336, -0.00042825, 0.00026236, 7.27271511, 0.99869180, 0.99930939, 0.49322972],\
++[	-6.27314350, -0.00042819, 0.00026233, 7.27271531, 0.99869198, 0.99930948, 0.49322962],\
++[	-6.27314364, -0.00042813, 0.00026229, 7.27271551, 0.99869216, 0.99930958, 0.49322977],\
++[	-6.27314378, -0.00042807, 0.00026226, 7.27271571, 0.99869234, 0.99930967, 0.49322982],\
++[	-6.27314392, -0.00042801, 0.00026222, 7.27271591, 0.99869252, 0.99930977, 0.49322974],\
++[	-6.27314406, -0.00042795, 0.00026218, 7.27271611, 0.99869270, 0.99930986, 0.49322983],\
++[	-6.27314421, -0.00042789, 0.00026215, 7.27271631, 0.99869288, 0.99930996, 0.49322981],\
++[	-6.27314435, -0.00042783, 0.00026211, 7.27271651, 0.99869306, 0.99931005, 0.49322987],\
++[	-6.27314449, -0.00042778, 0.00026207, 7.27271671, 0.99869325, 0.99931015, 0.49322991],\
++[	-6.27314463, -0.00042772, 0.00026204, 7.27271691, 0.99869343, 0.99931025, 0.49322985],\
++[	-6.27314477, -0.00042766, 0.00026200, 7.27271711, 0.99869361, 0.99931034, 0.49322989],\
++[	-6.27314491, -0.00042760, 0.00026197, 7.27271731, 0.99869379, 0.99931044, 0.49322995],\
++[	-6.27314505, -0.00042754, 0.00026193, 7.27271752, 0.99869397, 0.99931053, 0.49322998],\
++[	-6.27314520, -0.00042748, 0.00026189, 7.27271772, 0.99869415, 0.99931063, 0.49322992],\
++[	-6.27314534, -0.00042742, 0.00026186, 7.27271792, 0.99869433, 0.99931072, 0.49322999],\
++[	-6.27314548, -0.00042736, 0.00026182, 7.27271812, 0.99869451, 0.99931082, 0.49323014],\
++[	-6.27314562, -0.00042730, 0.00026178, 7.27271832, 0.99869469, 0.99931091, 0.49323001],\
++[	-6.27314576, -0.00042724, 0.00026175, 7.27271852, 0.99869487, 0.99931101, 0.49323007],\
++[	-6.27314590, -0.00042719, 0.00026171, 7.27271872, 0.99869505, 0.99931110, 0.49323010],\
++[	-6.27314604, -0.00042713, 0.00026168, 7.27271892, 0.99869523, 0.99931120, 0.49323018],\
++[	-6.27314618, -0.00042707, 0.00026164, 7.27271912, 0.99869541, 0.99931129, 0.49323018],\
++[	-6.27314633, -0.00042701, 0.00026160, 7.27271932, 0.99869559, 0.99931139, 0.49323016],\
++[	-6.27314647, -0.00042695, 0.00026157, 7.27271952, 0.99869577, 0.99931148, 0.49323007],\
++[	-6.27314661, -0.00042689, 0.00026153, 7.27271972, 0.99869595, 0.99931158, 0.49323022],\
++[	-6.27314675, -0.00042683, 0.00026150, 7.27271992, 0.99869613, 0.99931167, 0.49323025],\
++[	-6.27314689, -0.00042677, 0.00026146, 7.27272012, 0.99869631, 0.99931177, 0.49323030],\
++[	-6.27314703, -0.00042671, 0.00026142, 7.27272032, 0.99869649, 0.99931186, 0.49323027],\
++[	-6.27314717, -0.00042666, 0.00026139, 7.27272051, 0.99869667, 0.99931196, 0.49323031],\
++[	-6.27314731, -0.00042660, 0.00026135, 7.27272071, 0.99869685, 0.99931205, 0.49323029],\
++[	-6.27314745, -0.00042654, 0.00026132, 7.27272091, 0.99869703, 0.99931215, 0.49323033],\
++[	-6.27314759, -0.00042648, 0.00026128, 7.27272111, 0.99869721, 0.99931224, 0.49323043],\
++[	-6.27314773, -0.00042642, 0.00026124, 7.27272131, 0.99869739, 0.99931234, 0.49323035],\
++[	-6.27314787, -0.00042636, 0.00026121, 7.27272151, 0.99869757, 0.99931243, 0.49323032],\
++[	-6.27314801, -0.00042630, 0.00026117, 7.27272171, 0.99869775, 0.99931253, 0.49323043],\
++[	-6.27314815, -0.00042624, 0.00026114, 7.27272191, 0.99869792, 0.99931262, 0.49323038],\
++[	-6.27314830, -0.00042619, 0.00026110, 7.27272211, 0.99869810, 0.99931272, 0.49323055],\
++[	-6.27314844, -0.00042613, 0.00026106, 7.27272231, 0.99869828, 0.99931281, 0.49323047],\
++[	-6.27314858, -0.00042607, 0.00026103, 7.27272251, 0.99869846, 0.99931290, 0.49323039],\
++[	-6.27314872, -0.00042601, 0.00026099, 7.27272271, 0.99869864, 0.99931300, 0.49323039],\
++[	-6.27314886, -0.00042595, 0.00026096, 7.27272291, 0.99869882, 0.99931309, 0.49323057],\
++[	-6.27314900, -0.00042589, 0.00026092, 7.27272310, 0.99869900, 0.99931319, 0.49323051],\
++[	-6.27314914, -0.00042583, 0.00026088, 7.27272330, 0.99869918, 0.99931328, 0.49323056],\
++[	-6.27314928, -0.00042578, 0.00026085, 7.27272350, 0.99869936, 0.99931338, 0.49323064],\
++[	-6.27314942, -0.00042572, 0.00026081, 7.27272370, 0.99869954, 0.99931347, 0.49323065],\
++[	-6.27314956, -0.00042566, 0.00026078, 7.27272390, 0.99869972, 0.99931357, 0.49323065],\
++[	-6.27314970, -0.00042560, 0.00026074, 7.27272410, 0.99869989, 0.99931366, 0.49323070],\
++[	-6.27314984, -0.00042554, 0.00026070, 7.27272430, 0.99870007, 0.99931375, 0.49323062],\
++[	-6.27314998, -0.00042548, 0.00026067, 7.27272450, 0.99870025, 0.99931385, 0.49323063],\
++[	-6.27315012, -0.00042542, 0.00026063, 7.27272469, 0.99870043, 0.99931394, 0.49323075],\
++[	-6.27315026, -0.00042537, 0.00026060, 7.27272489, 0.99870061, 0.99931404, 0.49323074],\
++[	-6.27315040, -0.00042531, 0.00026056, 7.27272509, 0.99870079, 0.99931413, 0.49323081],\
++[	-6.27315054, -0.00042525, 0.00026052, 7.27272529, 0.99870097, 0.99931423, 0.49323082],\
++[	-6.27315068, -0.00042519, 0.00026049, 7.27272549, 0.99870115, 0.99931432, 0.49323079],\
++[	-6.27315082, -0.00042513, 0.00026045, 7.27272569, 0.99870132, 0.99931441, 0.49323072],\
++[	-6.27315096, -0.00042507, 0.00026042, 7.27272588, 0.99870150, 0.99931451, 0.49323088],\
++[	-6.27315110, -0.00042502, 0.00026038, 7.27272608, 0.99870168, 0.99931460, 0.49323096],\
++[	-6.27315124, -0.00042496, 0.00026035, 7.27272628, 0.99870186, 0.99931470, 0.49323088],\
++[	-6.27315138, -0.00042490, 0.00026031, 7.27272648, 0.99870204, 0.99931479, 0.49323085],\
++[	-6.27315152, -0.00042484, 0.00026027, 7.27272668, 0.99870222, 0.99931489, 0.49323089],\
++[	-6.27315165, -0.00042478, 0.00026024, 7.27272687, 0.99870239, 0.99931498, 0.49323085],\
++[	-6.27315179, -0.00042472, 0.00026020, 7.27272707, 0.99870257, 0.99931507, 0.49323101],\
++[	-6.27315193, -0.00042467, 0.00026017, 7.27272727, 0.99870275, 0.99931517, 0.49323094],\
++[	-6.27315207, -0.00042461, 0.00026013, 7.27272747, 0.99870293, 0.99931526, 0.49323104],\
++[	-6.27315221, -0.00042455, 0.00026010, 7.27272766, 0.99870311, 0.99931535, 0.49323100],\
++[	-6.27315235, -0.00042449, 0.00026006, 7.27272786, 0.99870328, 0.99931545, 0.49323105],\
++[	-6.27315249, -0.00042443, 0.00026002, 7.27272806, 0.99870346, 0.99931554, 0.49323112],\
++[	-6.27315263, -0.00042437, 0.00025999, 7.27272826, 0.99870364, 0.99931564, 0.49323100],\
++[	-6.27315277, -0.00042432, 0.00025995, 7.27272845, 0.99870382, 0.99931573, 0.49323104],\
++[	-6.27315291, -0.00042426, 0.00025992, 7.27272865, 0.99870399, 0.99931582, 0.49323113],\
++[	-6.27315305, -0.00042420, 0.00025988, 7.27272885, 0.99870417, 0.99931592, 0.49323100],\
++[	-6.27315319, -0.00042414, 0.00025985, 7.27272905, 0.99870435, 0.99931601, 0.49323118],\
++[	-6.27315333, -0.00042408, 0.00025981, 7.27272924, 0.99870453, 0.99931611, 0.49323122],\
++[	-6.27315347, -0.00042403, 0.00025978, 7.27272944, 0.99870470, 0.99931620, 0.49323123],\
++[	-6.27315360, -0.00042397, 0.00025974, 7.27272964, 0.99870488, 0.99931629, 0.49323124],\
++[	-6.27315374, -0.00042391, 0.00025970, 7.27272983, 0.99870506, 0.99931639, 0.49323127],\
++[	-6.27315388, -0.00042385, 0.00025967, 7.27273003, 0.99870524, 0.99931648, 0.49323133],\
++[	-6.27315402, -0.00042379, 0.00025963, 7.27273023, 0.99870541, 0.99931657, 0.49323140],\
++[	-6.27315416, -0.00042374, 0.00025960, 7.27273042, 0.99870559, 0.99931667, 0.49323133],\
++[	-6.27315430, -0.00042368, 0.00025956, 7.27273062, 0.99870577, 0.99931676, 0.49323138],\
++[	-6.27315444, -0.00042362, 0.00025953, 7.27273082, 0.99870595, 0.99931685, 0.49323140],\
++[	-6.27315458, -0.00042356, 0.00025949, 7.27273101, 0.99870612, 0.99931695, 0.49323145],\
++[	-6.27315472, -0.00042350, 0.00025946, 7.27273121, 0.99870630, 0.99931704, 0.49323139],\
++[	-6.27315485, -0.00042345, 0.00025942, 7.27273141, 0.99870648, 0.99931713, 0.49323136],\
++[	-6.27315499, -0.00042339, 0.00025938, 7.27273160, 0.99870665, 0.99931723, 0.49323144],\
++[	-6.27315513, -0.00042333, 0.00025935, 7.27273180, 0.99870683, 0.99931732, 0.49323141],\
++[	-6.27315527, -0.00042327, 0.00025931, 7.27273200, 0.99870701, 0.99931741, 0.49323140],\
++[	-6.27315541, -0.00042321, 0.00025928, 7.27273219, 0.99870719, 0.99931751, 0.49323155],\
++[	-6.27315555, -0.00042316, 0.00025924, 7.27273239, 0.99870736, 0.99931760, 0.49323157],\
++[	-6.27315569, -0.00042310, 0.00025921, 7.27273259, 0.99870754, 0.99931769, 0.49323161],\
++[	-6.27315582, -0.00042304, 0.00025917, 7.27273278, 0.99870772, 0.99931779, 0.49323157],\
++[	-6.27315596, -0.00042298, 0.00025914, 7.27273298, 0.99870789, 0.99931788, 0.49323162],\
++[	-6.27315610, -0.00042292, 0.00025910, 7.27273318, 0.99870807, 0.99931797, 0.49323164],\
++[	-6.27315624, -0.00042287, 0.00025907, 7.27273337, 0.99870825, 0.99931807, 0.49323172],\
++[	-6.27315638, -0.00042281, 0.00025903, 7.27273357, 0.99870842, 0.99931816, 0.49323163],\
++[	-6.27315652, -0.00042275, 0.00025899, 7.27273376, 0.99870860, 0.99931825, 0.49323158],\
++[	-6.27315665, -0.00042269, 0.00025896, 7.27273396, 0.99870877, 0.99931835, 0.49323168],\
++[	-6.27315679, -0.00042264, 0.00025892, 7.27273416, 0.99870895, 0.99931844, 0.49323175],\
++[	-6.27315693, -0.00042258, 0.00025889, 7.27273435, 0.99870913, 0.99931853, 0.49323172],\
++[	-6.27315707, -0.00042252, 0.00025885, 7.27273455, 0.99870930, 0.99931863, 0.49323175],\
++[	-6.27315721, -0.00042246, 0.00025882, 7.27273474, 0.99870948, 0.99931872, 0.49323179],\
++[	-6.27315734, -0.00042241, 0.00025878, 7.27273494, 0.99870966, 0.99931881, 0.49323178],\
++[	-6.27315748, -0.00042235, 0.00025875, 7.27273513, 0.99870983, 0.99931891, 0.49323183],\
++[	-6.27315762, -0.00042229, 0.00025871, 7.27273533, 0.99871001, 0.99931900, 0.49323180],\
++[	-6.27315776, -0.00042223, 0.00025868, 7.27273552, 0.99871018, 0.99931909, 0.49323181],\
++[	-6.27315790, -0.00042218, 0.00025864, 7.27273572, 0.99871036, 0.99931918, 0.49323188],\
++[	-6.27315803, -0.00042212, 0.00025861, 7.27273592, 0.99871054, 0.99931928, 0.49323197],\
++[	-6.27315817, -0.00042206, 0.00025857, 7.27273611, 0.99871071, 0.99931937, 0.49323190],\
++[	-6.27315831, -0.00042200, 0.00025854, 7.27273631, 0.99871089, 0.99931946, 0.49323185],\
++[	-6.27315845, -0.00042194, 0.00025850, 7.27273650, 0.99871106, 0.99931956, 0.49323199],\
++[	-6.27315858, -0.00042189, 0.00025846, 7.27273670, 0.99871124, 0.99931965, 0.49323204],\
++[	-6.27315872, -0.00042183, 0.00025843, 7.27273689, 0.99871141, 0.99931974, 0.49323191],\
++[	-6.27315886, -0.00042177, 0.00025839, 7.27273709, 0.99871159, 0.99931983, 0.49323202],\
++[	-6.27315900, -0.00042171, 0.00025836, 7.27273728, 0.99871177, 0.99931993, 0.49323199],\
++[	-6.27315913, -0.00042166, 0.00025832, 7.27273748, 0.99871194, 0.99932002, 0.49323200],\
++[	-6.27315927, -0.00042160, 0.00025829, 7.27273767, 0.99871212, 0.99932011, 0.49323212],\
++[	-6.27315941, -0.00042154, 0.00025825, 7.27273787, 0.99871229, 0.99932020, 0.49323215],\
++[	-6.27315955, -0.00042149, 0.00025822, 7.27273806, 0.99871247, 0.99932030, 0.49323211],\
++[	-6.27315968, -0.00042143, 0.00025818, 7.27273826, 0.99871264, 0.99932039, 0.49323217],\
++[	-6.27315982, -0.00042137, 0.00025815, 7.27273845, 0.99871282, 0.99932048, 0.49323219],\
++[	-6.27315996, -0.00042131, 0.00025811, 7.27273864, 0.99871299, 0.99932057, 0.49323223],\
++[	-6.27316010, -0.00042126, 0.00025808, 7.27273884, 0.99871317, 0.99932067, 0.49323224],\
++[	-6.27316023, -0.00042120, 0.00025804, 7.27273903, 0.99871334, 0.99932076, 0.49323221],\
++[	-6.27316037, -0.00042114, 0.00025801, 7.27273923, 0.99871352, 0.99932085, 0.49323224],\
++[	-6.27316051, -0.00042108, 0.00025797, 7.27273942, 0.99871369, 0.99932094, 0.49323220],\
++[	-6.27316064, -0.00042103, 0.00025794, 7.27273962, 0.99871387, 0.99932104, 0.49323229],\
++[	-6.27316078, -0.00042097, 0.00025790, 7.27273981, 0.99871404, 0.99932113, 0.49323228],\
++[	-6.27316092, -0.00042091, 0.00025787, 7.27274001, 0.99871422, 0.99932122, 0.49323228],\
++[	-6.27316105, -0.00042085, 0.00025783, 7.27274020, 0.99871439, 0.99932131, 0.49323234],\
++[	-6.27316119, -0.00042080, 0.00025780, 7.27274039, 0.99871457, 0.99932141, 0.49323243],\
++[	-6.27316133, -0.00042074, 0.00025776, 7.27274059, 0.99871474, 0.99932150, 0.49323241],\
++[	-6.27316147, -0.00042068, 0.00025773, 7.27274078, 0.99871492, 0.99932159, 0.49323242],\
++[	-6.27316160, -0.00042063, 0.00025769, 7.27274098, 0.99871509, 0.99932168, 0.49323234],\
++[	-6.27316174, -0.00042057, 0.00025766, 7.27274117, 0.99871527, 0.99932177, 0.49323243],\
++[	-6.27316188, -0.00042051, 0.00025762, 7.27274136, 0.99871544, 0.99932187, 0.49323249],\
++[	-6.27316201, -0.00042045, 0.00025759, 7.27274156, 0.99871562, 0.99932196, 0.49323249],\
++[	-6.27316215, -0.00042040, 0.00025755, 7.27274175, 0.99871579, 0.99932205, 0.49323255],\
++[	-6.27316229, -0.00042034, 0.00025752, 7.27274195, 0.99871597, 0.99932214, 0.49323261],\
++[	-6.27316242, -0.00042028, 0.00025748, 7.27274214, 0.99871614, 0.99932223, 0.49323266],\
++[	-6.27316256, -0.00042023, 0.00025745, 7.27274233, 0.99871631, 0.99932233, 0.49323261],\
++[	-6.27316270, -0.00042017, 0.00025741, 7.27274253, 0.99871649, 0.99932242, 0.49323265],\
++[	-6.27316283, -0.00042011, 0.00025738, 7.27274272, 0.99871666, 0.99932251, 0.49323261],\
++[	-6.27316297, -0.00042006, 0.00025734, 7.27274291, 0.99871684, 0.99932260, 0.49323268],\
++[	-6.27316311, -0.00042000, 0.00025731, 7.27274311, 0.99871701, 0.99932269, 0.49323261],\
++[	-6.27316324, -0.00041994, 0.00025727, 7.27274330, 0.99871719, 0.99932279, 0.49323277],\
++[	-6.27316338, -0.00041988, 0.00025724, 7.27274349, 0.99871736, 0.99932288, 0.49323278],\
++[	-6.27316351, -0.00041983, 0.00025720, 7.27274369, 0.99871753, 0.99932297, 0.49323270],\
++[	-6.27316365, -0.00041977, 0.00025717, 7.27274388, 0.99871771, 0.99932306, 0.49323262],\
++[	-6.27316379, -0.00041971, 0.00025713, 7.27274407, 0.99871788, 0.99932315, 0.49323267],\
++[	-6.27316392, -0.00041966, 0.00025710, 7.27274427, 0.99871806, 0.99932325, 0.49323282],\
++[	-6.27316406, -0.00041960, 0.00025706, 7.27274446, 0.99871823, 0.99932334, 0.49323274],\
++[	-6.27316420, -0.00041954, 0.00025703, 7.27274465, 0.99871840, 0.99932343, 0.49323276],\
++[	-6.27316433, -0.00041949, 0.00025699, 7.27274485, 0.99871858, 0.99932352, 0.49323279],\
++[	-6.27316447, -0.00041943, 0.00025696, 7.27274504, 0.99871875, 0.99932361, 0.49323285],\
++[	-6.27316460, -0.00041937, 0.00025692, 7.27274523, 0.99871892, 0.99932370, 0.49323286],\
++[	-6.27316474, -0.00041932, 0.00025689, 7.27274542, 0.99871910, 0.99932380, 0.49323296],\
++[	-6.27316488, -0.00041926, 0.00025685, 7.27274562, 0.99871927, 0.99932389, 0.49323294],\
++[	-6.27316501, -0.00041920, 0.00025682, 7.27274581, 0.99871944, 0.99932398, 0.49323292],\
++[	-6.27316515, -0.00041915, 0.00025678, 7.27274600, 0.99871962, 0.99932407, 0.49323285],\
++[	-6.27316528, -0.00041909, 0.00025675, 7.27274619, 0.99871979, 0.99932416, 0.49323292],\
++[	-6.27316542, -0.00041903, 0.00025671, 7.27274639, 0.99871996, 0.99932425, 0.49323303],\
++[	-6.27316555, -0.00041898, 0.00025668, 7.27274658, 0.99872014, 0.99932435, 0.49323312],\
++[	-6.27316569, -0.00041892, 0.00025664, 7.27274677, 0.99872031, 0.99932444, 0.49323326],\
++[	-6.27316583, -0.00041886, 0.00025661, 7.27274696, 0.99872048, 0.99932453, 0.49323308],\
++[	-6.27316596, -0.00041881, 0.00025658, 7.27274716, 0.99872066, 0.99932462, 0.49323307],\
++[	-6.27316610, -0.00041875, 0.00025654, 7.27274735, 0.99872083, 0.99932471, 0.49323314],\
++[	-6.27316623, -0.00041869, 0.00025651, 7.27274754, 0.99872100, 0.99932480, 0.49323312],\
++[	-6.27316637, -0.00041864, 0.00025647, 7.27274773, 0.99872118, 0.99932489, 0.49323320],\
++[	-6.27316650, -0.00041858, 0.00025644, 7.27274793, 0.99872135, 0.99932498, 0.49323311],\
++[	-6.27316664, -0.00041852, 0.00025640, 7.27274812, 0.99872152, 0.99932508, 0.49323311],\
++[	-6.27316677, -0.00041847, 0.00025637, 7.27274831, 0.99872170, 0.99932517, 0.49323317],\
++[	-6.27316691, -0.00041841, 0.00025633, 7.27274850, 0.99872187, 0.99932526, 0.49323323],\
++[	-6.27316705, -0.00041835, 0.00025630, 7.27274869, 0.99872204, 0.99932535, 0.49323325],\
++[	-6.27316718, -0.00041830, 0.00025626, 7.27274888, 0.99872221, 0.99932544, 0.49323334],\
++[	-6.27316732, -0.00041824, 0.00025623, 7.27274908, 0.99872239, 0.99932553, 0.49323332],\
++[	-6.27316745, -0.00041818, 0.00025619, 7.27274927, 0.99872256, 0.99932562, 0.49323331],\
++[	-6.27316759, -0.00041813, 0.00025616, 7.27274946, 0.99872273, 0.99932571, 0.49323331],\
++[	-6.27316772, -0.00041807, 0.00025612, 7.27274965, 0.99872290, 0.99932581, 0.49323346],\
++[	-6.27316786, -0.00041801, 0.00025609, 7.27274984, 0.99872308, 0.99932590, 0.49323331],\
++[	-6.27316799, -0.00041796, 0.00025606, 7.27275003, 0.99872325, 0.99932599, 0.49323339],\
++[	-6.27316813, -0.00041790, 0.00025602, 7.27275023, 0.99872342, 0.99932608, 0.49323343],\
++[	-6.27316826, -0.00041784, 0.00025599, 7.27275042, 0.99872359, 0.99932617, 0.49323337],\
++[	-6.27316840, -0.00041779, 0.00025595, 7.27275061, 0.99872377, 0.99932626, 0.49323342],\
++[	-6.27316853, -0.00041773, 0.00025592, 7.27275080, 0.99872394, 0.99932635, 0.49323347],\
++[	-6.27316867, -0.00041768, 0.00025588, 7.27275099, 0.99872411, 0.99932644, 0.49323353],\
++[	-6.27316880, -0.00041762, 0.00025585, 7.27275118, 0.99872428, 0.99932653, 0.49323349],\
++[	-6.27316894, -0.00041756, 0.00025581, 7.27275137, 0.99872446, 0.99932662, 0.49323358],\
++[	-6.27316907, -0.00041751, 0.00025578, 7.27275157, 0.99872463, 0.99932671, 0.49323354],\
++[	-6.27316921, -0.00041745, 0.00025574, 7.27275176, 0.99872480, 0.99932681, 0.49323350],\
++[	-6.27316934, -0.00041739, 0.00025571, 7.27275195, 0.99872497, 0.99932690, 0.49323356],\
++[	-6.27316948, -0.00041734, 0.00025568, 7.27275214, 0.99872514, 0.99932699, 0.49323355],\
++[	-6.27316961, -0.00041728, 0.00025564, 7.27275233, 0.99872532, 0.99932708, 0.49323359],\
++[	-6.27316974, -0.00041722, 0.00025561, 7.27275252, 0.99872549, 0.99932717, 0.49323360],\
++[	-6.27316988, -0.00041717, 0.00025557, 7.27275271, 0.99872566, 0.99932726, 0.49323362],\
++[	-6.27317001, -0.00041711, 0.00025554, 7.27275290, 0.99872583, 0.99932735, 0.49323369],\
++[	-6.27317015, -0.00041706, 0.00025550, 7.27275309, 0.99872600, 0.99932744, 0.49323369],\
++[	-6.27317028, -0.00041700, 0.00025547, 7.27275328, 0.99872617, 0.99932753, 0.49323368],\
++[	-6.27317042, -0.00041694, 0.00025543, 7.27275347, 0.99872635, 0.99932762, 0.49323375],\
++[	-6.27317055, -0.00041689, 0.00025540, 7.27275366, 0.99872652, 0.99932771, 0.49323378],\
++[	-6.27317069, -0.00041683, 0.00025537, 7.27275385, 0.99872669, 0.99932780, 0.49323373],\
++[	-6.27317082, -0.00041678, 0.00025533, 7.27275405, 0.99872686, 0.99932789, 0.49323370],\
++[	-6.27317095, -0.00041672, 0.00025530, 7.27275424, 0.99872703, 0.99932798, 0.49323379],\
++[	-6.27317109, -0.00041666, 0.00025526, 7.27275443, 0.99872720, 0.99932807, 0.49323375],\
++[	-6.27317122, -0.00041661, 0.00025523, 7.27275462, 0.99872738, 0.99932816, 0.49323392],\
++[	-6.27317136, -0.00041655, 0.00025519, 7.27275481, 0.99872755, 0.99932826, 0.49323391],\
++[	-6.27317149, -0.00041649, 0.00025516, 7.27275500, 0.99872772, 0.99932835, 0.49323391],\
++[	-6.27317163, -0.00041644, 0.00025512, 7.27275519, 0.99872789, 0.99932844, 0.49323388],\
++[	-6.27317176, -0.00041638, 0.00025509, 7.27275538, 0.99872806, 0.99932853, 0.49323395],\
++[	-6.27317189, -0.00041633, 0.00025506, 7.27275557, 0.99872823, 0.99932862, 0.49323385],\
++[	-6.27317203, -0.00041627, 0.00025502, 7.27275576, 0.99872840, 0.99932871, 0.49323392],\
++[	-6.27317216, -0.00041621, 0.00025499, 7.27275595, 0.99872857, 0.99932880, 0.49323402],\
++[	-6.27317230, -0.00041616, 0.00025495, 7.27275614, 0.99872874, 0.99932889, 0.49323405],\
++[	-6.27317243, -0.00041610, 0.00025492, 7.27275633, 0.99872892, 0.99932898, 0.49323405],\
++[	-6.27317256, -0.00041605, 0.00025488, 7.27275652, 0.99872909, 0.99932907, 0.49323408],\
++[	-6.27317270, -0.00041599, 0.00025485, 7.27275671, 0.99872926, 0.99932916, 0.49323410],\
++[	-6.27317283, -0.00041594, 0.00025482, 7.27275690, 0.99872943, 0.99932925, 0.49323410],\
++[	-6.27317297, -0.00041588, 0.00025478, 7.27275709, 0.99872960, 0.99932934, 0.49323416],\
++[	-6.27317310, -0.00041582, 0.00025475, 7.27275728, 0.99872977, 0.99932943, 0.49323413],\
++[	-6.27317323, -0.00041577, 0.00025471, 7.27275746, 0.99872994, 0.99932952, 0.49323409],\
++[	-6.27317337, -0.00041571, 0.00025468, 7.27275765, 0.99873011, 0.99932961, 0.49323425],\
++[	-6.27317350, -0.00041566, 0.00025465, 7.27275784, 0.99873028, 0.99932970, 0.49323426],\
++[	-6.27317363, -0.00041560, 0.00025461, 7.27275803, 0.99873045, 0.99932979, 0.49323421],\
++[	-6.27317377, -0.00041554, 0.00025458, 7.27275822, 0.99873062, 0.99932988, 0.49323430],\
++[	-6.27317390, -0.00041549, 0.00025454, 7.27275841, 0.99873079, 0.99932997, 0.49323422],\
++[	-6.27317403, -0.00041543, 0.00025451, 7.27275860, 0.99873096, 0.99933006, 0.49323429],\
++[	-6.27317417, -0.00041538, 0.00025447, 7.27275879, 0.99873113, 0.99933015, 0.49323420],\
++[	-6.27317430, -0.00041532, 0.00025444, 7.27275898, 0.99873130, 0.99933024, 0.49323427],\
++[	-6.27317443, -0.00041527, 0.00025441, 7.27275917, 0.99873147, 0.99933033, 0.49323431],\
++[	-6.27317457, -0.00041521, 0.00025437, 7.27275936, 0.99873164, 0.99933042, 0.49323443],\
++[	-6.27317470, -0.00041515, 0.00025434, 7.27275955, 0.99873181, 0.99933051, 0.49323428],\
++[	-6.27317483, -0.00041510, 0.00025430, 7.27275974, 0.99873198, 0.99933060, 0.49323443],\
++[	-6.27317497, -0.00041504, 0.00025427, 7.27275992, 0.99873215, 0.99933069, 0.49323437],\
++[	-6.27317510, -0.00041499, 0.00025424, 7.27276011, 0.99873232, 0.99933078, 0.49323454],\
++[	-6.27317523, -0.00041493, 0.00025420, 7.27276030, 0.99873249, 0.99933087, 0.49323446],\
++[	-6.27317537, -0.00041488, 0.00025417, 7.27276049, 0.99873266, 0.99933096, 0.49323436],\
++[	-6.27317550, -0.00041482, 0.00025413, 7.27276068, 0.99873283, 0.99933105, 0.49323455],\
++[	-6.27317563, -0.00041476, 0.00025410, 7.27276087, 0.99873300, 0.99933114, 0.49323443],\
++[	-6.27317577, -0.00041471, 0.00025406, 7.27276106, 0.99873317, 0.99933123, 0.49323444],\
++[	-6.27317590, -0.00041465, 0.00025403, 7.27276124, 0.99873334, 0.99933132, 0.49323452],\
++[	-6.27317603, -0.00041460, 0.00025400, 7.27276143, 0.99873351, 0.99933140, 0.49323465],\
++[	-6.27317616, -0.00041454, 0.00025396, 7.27276162, 0.99873368, 0.99933149, 0.49323452],\
++[	-6.27317630, -0.00041449, 0.00025393, 7.27276181, 0.99873385, 0.99933158, 0.49323459],\
++[	-6.27317643, -0.00041443, 0.00025389, 7.27276200, 0.99873402, 0.99933167, 0.49323462],\
++[	-6.27317656, -0.00041438, 0.00025386, 7.27276219, 0.99873419, 0.99933176, 0.49323457],\
++[	-6.27317670, -0.00041432, 0.00025383, 7.27276237, 0.99873436, 0.99933185, 0.49323468],\
++[	-6.27317683, -0.00041427, 0.00025379, 7.27276256, 0.99873453, 0.99933194, 0.49323479],\
++[	-6.27317696, -0.00041421, 0.00025376, 7.27276275, 0.99873470, 0.99933203, 0.49323481],\
++[	-6.27317709, -0.00041415, 0.00025372, 7.27276294, 0.99873487, 0.99933212, 0.49323465],\
++[	-6.27317723, -0.00041410, 0.00025369, 7.27276313, 0.99873504, 0.99933221, 0.49323467],\
++[	-6.27317736, -0.00041404, 0.00025366, 7.27276332, 0.99873521, 0.99933230, 0.49323474],\
++[	-6.27317749, -0.00041399, 0.00025362, 7.27276350, 0.99873538, 0.99933239, 0.49323475],\
++[	-6.27317762, -0.00041393, 0.00025359, 7.27276369, 0.99873555, 0.99933248, 0.49323489],\
++[	-6.27317776, -0.00041388, 0.00025355, 7.27276388, 0.99873572, 0.99933257, 0.49323478],\
++[	-6.27317789, -0.00041382, 0.00025352, 7.27276407, 0.99873588, 0.99933266, 0.49323490],\
++[	-6.27317802, -0.00041377, 0.00025349, 7.27276425, 0.99873605, 0.99933275, 0.49323500],\
++[	-6.27317815, -0.00041371, 0.00025345, 7.27276444, 0.99873622, 0.99933283, 0.49323486],\
++[	-6.27317829, -0.00041366, 0.00025342, 7.27276463, 0.99873639, 0.99933292, 0.49323491],\
++[	-6.27317842, -0.00041360, 0.00025339, 7.27276482, 0.99873656, 0.99933301, 0.49323473],\
++[	-6.27317855, -0.00041355, 0.00025335, 7.27276500, 0.99873673, 0.99933310, 0.49323495],\
++[	-6.27317868, -0.00041349, 0.00025332, 7.27276519, 0.99873690, 0.99933319, 0.49323495],\
++[	-6.27317882, -0.00041344, 0.00025328, 7.27276538, 0.99873707, 0.99933328, 0.49323487],\
++[	-6.27317895, -0.00041338, 0.00025325, 7.27276557, 0.99873724, 0.99933337, 0.49323500],\
++[	-6.27317908, -0.00041333, 0.00025322, 7.27276575, 0.99873740, 0.99933346, 0.49323493],\
++[	-6.27317921, -0.00041327, 0.00025318, 7.27276594, 0.99873757, 0.99933355, 0.49323497],\
++[	-6.27317934, -0.00041321, 0.00025315, 7.27276613, 0.99873774, 0.99933364, 0.49323507],\
++[	-6.27317948, -0.00041316, 0.00025311, 7.27276632, 0.99873791, 0.99933373, 0.49323512],\
++[	-6.27317961, -0.00041310, 0.00025308, 7.27276650, 0.99873808, 0.99933381, 0.49323500],\
++[	-6.27317974, -0.00041305, 0.00025305, 7.27276669, 0.99873825, 0.99933390, 0.49323510],\
++[	-6.27317987, -0.00041299, 0.00025301, 7.27276688, 0.99873842, 0.99933399, 0.49323520],\
++[	-6.27318000, -0.00041294, 0.00025298, 7.27276706, 0.99873858, 0.99933408, 0.49323515],\
++[	-6.27318014, -0.00041288, 0.00025295, 7.27276725, 0.99873875, 0.99933417, 0.49323523],\
++[	-6.27318027, -0.00041283, 0.00025291, 7.27276744, 0.99873892, 0.99933426, 0.49323516],\
++[	-6.27318040, -0.00041277, 0.00025288, 7.27276762, 0.99873909, 0.99933435, 0.49323517],\
++[	-6.27318053, -0.00041272, 0.00025284, 7.27276781, 0.99873926, 0.99933444, 0.49323519],\
++[	-6.27318066, -0.00041266, 0.00025281, 7.27276800, 0.99873942, 0.99933453, 0.49323515],\
++[	-6.27318079, -0.00041261, 0.00025278, 7.27276818, 0.99873959, 0.99933461, 0.49323538],\
++[	-6.27318093, -0.00041255, 0.00025274, 7.27276837, 0.99873976, 0.99933470, 0.49323529],\
++[	-6.27318106, -0.00041250, 0.00025271, 7.27276856, 0.99873993, 0.99933479, 0.49323537],\
++[	-6.27318119, -0.00041244, 0.00025268, 7.27276874, 0.99874010, 0.99933488, 0.49323534],\
++[	-6.27318132, -0.00041239, 0.00025264, 7.27276893, 0.99874026, 0.99933497, 0.49323537],\
++[	-6.27318145, -0.00041233, 0.00025261, 7.27276912, 0.99874043, 0.99933506, 0.49323540],\
++[	-6.27318158, -0.00041228, 0.00025258, 7.27276930, 0.99874060, 0.99933515, 0.49323539],\
++[	-6.27318171, -0.00041222, 0.00025254, 7.27276949, 0.99874077, 0.99933523, 0.49323536],\
++[	-6.27318185, -0.00041217, 0.00025251, 7.27276968, 0.99874094, 0.99933532, 0.49323541],\
++[	-6.27318198, -0.00041211, 0.00025247, 7.27276986, 0.99874110, 0.99933541, 0.49323529],\
++[	-6.27318211, -0.00041206, 0.00025244, 7.27277005, 0.99874127, 0.99933550, 0.49323554],\
++[	-6.27318224, -0.00041200, 0.00025241, 7.27277023, 0.99874144, 0.99933559, 0.49323556],\
++[	-6.27318237, -0.00041195, 0.00025237, 7.27277042, 0.99874161, 0.99933568, 0.49323548],\
++[	-6.27318250, -0.00041190, 0.00025234, 7.27277061, 0.99874177, 0.99933577, 0.49323555],\
++[	-6.27318263, -0.00041184, 0.00025231, 7.27277079, 0.99874194, 0.99933585, 0.49323555],\
++[	-6.27318276, -0.00041179, 0.00025227, 7.27277098, 0.99874211, 0.99933594, 0.49323566],\
++[	-6.27318290, -0.00041173, 0.00025224, 7.27277117, 0.99874228, 0.99933603, 0.49323552],\
++[	-6.27318303, -0.00041168, 0.00025221, 7.27277135, 0.99874244, 0.99933612, 0.49323561],\
++[	-6.27318316, -0.00041162, 0.00025217, 7.27277154, 0.99874261, 0.99933621, 0.49323566],\
++[	-6.27318329, -0.00041157, 0.00025214, 7.27277172, 0.99874278, 0.99933630, 0.49323555],\
++[	-6.27318342, -0.00041151, 0.00025210, 7.27277191, 0.99874294, 0.99933638, 0.49323560],\
++[	-6.27318355, -0.00041146, 0.00025207, 7.27277209, 0.99874311, 0.99933647, 0.49323570],\
++[	-6.27318368, -0.00041140, 0.00025204, 7.27277228, 0.99874328, 0.99933656, 0.49323566],\
++[	-6.27318381, -0.00041135, 0.00025200, 7.27277246, 0.99874345, 0.99933665, 0.49323580],\
++[	-6.27318394, -0.00041129, 0.00025197, 7.27277265, 0.99874361, 0.99933674, 0.49323573],\
++[	-6.27318407, -0.00041124, 0.00025194, 7.27277284, 0.99874378, 0.99933682, 0.49323588],\
++[	-6.27318420, -0.00041118, 0.00025190, 7.27277302, 0.99874395, 0.99933691, 0.49323574],\
++[	-6.27318434, -0.00041113, 0.00025187, 7.27277321, 0.99874411, 0.99933700, 0.49323584],\
++[	-6.27318447, -0.00041107, 0.00025184, 7.27277339, 0.99874428, 0.99933709, 0.49323574],\
++[	-6.27318460, -0.00041102, 0.00025180, 7.27277358, 0.99874445, 0.99933718, 0.49323586],\
++[	-6.27318473, -0.00041097, 0.00025177, 7.27277376, 0.99874461, 0.99933726, 0.49323593],\
++[	-6.27318486, -0.00041091, 0.00025174, 7.27277395, 0.99874478, 0.99933735, 0.49323592],\
++[	-6.27318499, -0.00041086, 0.00025170, 7.27277413, 0.99874495, 0.99933744, 0.49323598],\
++[	-6.27318512, -0.00041080, 0.00025167, 7.27277432, 0.99874511, 0.99933753, 0.49323589],\
++[	-6.27318525, -0.00041075, 0.00025164, 7.27277450, 0.99874528, 0.99933762, 0.49323587],\
++[	-6.27318538, -0.00041069, 0.00025160, 7.27277469, 0.99874545, 0.99933770, 0.49323605],\
++[	-6.27318551, -0.00041064, 0.00025157, 7.27277487, 0.99874561, 0.99933779, 0.49323594],\
++[	-6.27318564, -0.00041058, 0.00025154, 7.27277506, 0.99874578, 0.99933788, 0.49323599],\
++[	-6.27318577, -0.00041053, 0.00025150, 7.27277524, 0.99874595, 0.99933797, 0.49323604],\
++[	-6.27318590, -0.00041048, 0.00025147, 7.27277543, 0.99874611, 0.99933806, 0.49323602],\
++[	-6.27318603, -0.00041042, 0.00025144, 7.27277561, 0.99874628, 0.99933814, 0.49323601],\
++[	-6.27318616, -0.00041037, 0.00025140, 7.27277580, 0.99874645, 0.99933823, 0.49323601],\
++[	-6.27318629, -0.00041031, 0.00025137, 7.27277598, 0.99874661, 0.99933832, 0.49323608],\
++[	-6.27318642, -0.00041026, 0.00025134, 7.27277616, 0.99874678, 0.99933841, 0.49323616],\
++[	-6.27318655, -0.00041020, 0.00025130, 7.27277635, 0.99874694, 0.99933849, 0.49323617],\
++[	-6.27318668, -0.00041015, 0.00025127, 7.27277653, 0.99874711, 0.99933858, 0.49323615],\
++[	-6.27318681, -0.00041009, 0.00025124, 7.27277672, 0.99874728, 0.99933867, 0.49323614],\
++[	-6.27318694, -0.00041004, 0.00025120, 7.27277690, 0.99874744, 0.99933876, 0.49323615],\
++[	-6.27318707, -0.00040999, 0.00025117, 7.27277709, 0.99874761, 0.99933884, 0.49323610],\
++[	-6.27318720, -0.00040993, 0.00025114, 7.27277727, 0.99874777, 0.99933893, 0.49323628],\
++[	-6.27318733, -0.00040988, 0.00025110, 7.27277746, 0.99874794, 0.99933902, 0.49323634],\
++[	-6.27318746, -0.00040982, 0.00025107, 7.27277764, 0.99874811, 0.99933911, 0.49323627],\
++[	-6.27318759, -0.00040977, 0.00025104, 7.27277782, 0.99874827, 0.99933919, 0.49323622],\
++[	-6.27318772, -0.00040971, 0.00025100, 7.27277801, 0.99874844, 0.99933928, 0.49323631],\
++[	-6.27318785, -0.00040966, 0.00025097, 7.27277819, 0.99874860, 0.99933937, 0.49323628],\
++[	-6.27318798, -0.00040961, 0.00025094, 7.27277838, 0.99874877, 0.99933946, 0.49323627],\
++[	-6.27318811, -0.00040955, 0.00025090, 7.27277856, 0.99874893, 0.99933954, 0.49323637],\
++[	-6.27318824, -0.00040950, 0.00025087, 7.27277874, 0.99874910, 0.99933963, 0.49323632],\
++[	-6.27318837, -0.00040944, 0.00025084, 7.27277893, 0.99874927, 0.99933972, 0.49323640],\
++[	-6.27318850, -0.00040939, 0.00025080, 7.27277911, 0.99874943, 0.99933981, 0.49323651],\
++[	-6.27318863, -0.00040934, 0.00025077, 7.27277929, 0.99874960, 0.99933989, 0.49323644],\
++[	-6.27318876, -0.00040928, 0.00025074, 7.27277948, 0.99874976, 0.99933998, 0.49323637],\
++[	-6.27318889, -0.00040923, 0.00025070, 7.27277966, 0.99874993, 0.99934007, 0.49323647],\
++[	-6.27318902, -0.00040917, 0.00025067, 7.27277985, 0.99875009, 0.99934016, 0.49323644],\
++[	-6.27318915, -0.00040912, 0.00025064, 7.27278003, 0.99875026, 0.99934024, 0.49323643],\
++[	-6.27318928, -0.00040906, 0.00025060, 7.27278021, 0.99875042, 0.99934033, 0.49323648],\
++[	-6.27318941, -0.00040901, 0.00025057, 7.27278040, 0.99875059, 0.99934042, 0.49323655],\
++[	-6.27318954, -0.00040896, 0.00025054, 7.27278058, 0.99875075, 0.99934050, 0.49323657],\
++[	-6.27318967, -0.00040890, 0.00025051, 7.27278076, 0.99875092, 0.99934059, 0.49323664],\
++[	-6.27318979, -0.00040885, 0.00025047, 7.27278095, 0.99875108, 0.99934068, 0.49323657],\
++[	-6.27318992, -0.00040879, 0.00025044, 7.27278113, 0.99875125, 0.99934077, 0.49323666],\
++[	-6.27319005, -0.00040874, 0.00025041, 7.27278131, 0.99875141, 0.99934085, 0.49323663],\
++[	-6.27319018, -0.00040869, 0.00025037, 7.27278150, 0.99875158, 0.99934094, 0.49323672],\
++[	-6.27319031, -0.00040863, 0.00025034, 7.27278168, 0.99875174, 0.99934103, 0.49323665],\
++[	-6.27319044, -0.00040858, 0.00025031, 7.27278186, 0.99875191, 0.99934111, 0.49323670],\
++[	-6.27319057, -0.00040852, 0.00025027, 7.27278204, 0.99875207, 0.99934120, 0.49323671],\
++[	-6.27319070, -0.00040847, 0.00025024, 7.27278223, 0.99875224, 0.99934129, 0.49323673],\
++[	-6.27319083, -0.00040842, 0.00025021, 7.27278241, 0.99875240, 0.99934137, 0.49323684],\
++[	-6.27319096, -0.00040836, 0.00025017, 7.27278259, 0.99875257, 0.99934146, 0.49323687],\
++[	-6.27319109, -0.00040831, 0.00025014, 7.27278278, 0.99875273, 0.99934155, 0.49323685],\
++[	-6.27319121, -0.00040826, 0.00025011, 7.27278296, 0.99875290, 0.99934164, 0.49323688],\
++[	-6.27319134, -0.00040820, 0.00025008, 7.27278314, 0.99875306, 0.99934172, 0.49323675],\
++[	-6.27319147, -0.00040815, 0.00025004, 7.27278332, 0.99875322, 0.99934181, 0.49323678],\
++[	-6.27319160, -0.00040809, 0.00025001, 7.27278351, 0.99875339, 0.99934190, 0.49323687],\
++[	-6.27319173, -0.00040804, 0.00024998, 7.27278369, 0.99875355, 0.99934198, 0.49323686],\
++[	-6.27319186, -0.00040799, 0.00024994, 7.27278387, 0.99875372, 0.99934207, 0.49323698],\
++[	-6.27319199, -0.00040793, 0.00024991, 7.27278405, 0.99875388, 0.99934216, 0.49323692],\
++[	-6.27319212, -0.00040788, 0.00024988, 7.27278424, 0.99875405, 0.99934224, 0.49323708],\
++[	-6.27319224, -0.00040783, 0.00024985, 7.27278442, 0.99875421, 0.99934233, 0.49323704],\
++[	-6.27319237, -0.00040777, 0.00024981, 7.27278460, 0.99875437, 0.99934242, 0.49323700],\
++[	-6.27319250, -0.00040772, 0.00024978, 7.27278478, 0.99875454, 0.99934250, 0.49323693],\
++[	-6.27319263, -0.00040766, 0.00024975, 7.27278497, 0.99875470, 0.99934259, 0.49323702],\
++[	-6.27319276, -0.00040761, 0.00024971, 7.27278515, 0.99875487, 0.99934268, 0.49323716],\
++[	-6.27319289, -0.00040756, 0.00024968, 7.27278533, 0.99875503, 0.99934276, 0.49323703],\
++[	-6.27319302, -0.00040750, 0.00024965, 7.27278551, 0.99875519, 0.99934285, 0.49323706],\
++[	-6.27319314, -0.00040745, 0.00024961, 7.27278569, 0.99875536, 0.99934294, 0.49323706],\
++[	-6.27319327, -0.00040740, 0.00024958, 7.27278588, 0.99875552, 0.99934302, 0.49323714],\
++[	-6.27319340, -0.00040734, 0.00024955, 7.27278606, 0.99875569, 0.99934311, 0.49323706],\
++[	-6.27319353, -0.00040729, 0.00024952, 7.27278624, 0.99875585, 0.99934320, 0.49323708],\
++[	-6.27319366, -0.00040724, 0.00024948, 7.27278642, 0.99875601, 0.99934328, 0.49323729],\
++[	-6.27319379, -0.00040718, 0.00024945, 7.27278660, 0.99875618, 0.99934337, 0.49323724],\
++[	-6.27319391, -0.00040713, 0.00024942, 7.27278679, 0.99875634, 0.99934345, 0.49323721],\
++[	-6.27319404, -0.00040707, 0.00024938, 7.27278697, 0.99875650, 0.99934354, 0.49323728],\
++[	-6.27319417, -0.00040702, 0.00024935, 7.27278715, 0.99875667, 0.99934363, 0.49323732],\
++[	-6.27319430, -0.00040697, 0.00024932, 7.27278733, 0.99875683, 0.99934371, 0.49323735],\
++[	-6.27319443, -0.00040691, 0.00024929, 7.27278751, 0.99875700, 0.99934380, 0.49323736],\
++[	-6.27319455, -0.00040686, 0.00024925, 7.27278769, 0.99875716, 0.99934389, 0.49323725],\
++[	-6.27319468, -0.00040681, 0.00024922, 7.27278788, 0.99875732, 0.99934397, 0.49323738],\
++[	-6.27319481, -0.00040675, 0.00024919, 7.27278806, 0.99875749, 0.99934406, 0.49323735],\
++[	-6.27319494, -0.00040670, 0.00024916, 7.27278824, 0.99875765, 0.99934414, 0.49323731],\
++[	-6.27319507, -0.00040665, 0.00024912, 7.27278842, 0.99875781, 0.99934423, 0.49323743],\
++[	-6.27319519, -0.00040659, 0.00024909, 7.27278860, 0.99875798, 0.99934432, 0.49323750],\
++[	-6.27319532, -0.00040654, 0.00024906, 7.27278878, 0.99875814, 0.99934440, 0.49323738],\
++[	-6.27319545, -0.00040649, 0.00024902, 7.27278896, 0.99875830, 0.99934449, 0.49323751],\
++[	-6.27319558, -0.00040643, 0.00024899, 7.27278914, 0.99875846, 0.99934457, 0.49323752],\
++[	-6.27319571, -0.00040638, 0.00024896, 7.27278933, 0.99875863, 0.99934466, 0.49323741],\
++[	-6.27319583, -0.00040633, 0.00024893, 7.27278951, 0.99875879, 0.99934475, 0.49323749],\
++[	-6.27319596, -0.00040627, 0.00024889, 7.27278969, 0.99875895, 0.99934483, 0.49323755],\
++[	-6.27319609, -0.00040622, 0.00024886, 7.27278987, 0.99875912, 0.99934492, 0.49323762],\
++[	-6.27319622, -0.00040617, 0.00024883, 7.27279005, 0.99875928, 0.99934501, 0.49323759],\
++[	-6.27319634, -0.00040611, 0.00024880, 7.27279023, 0.99875944, 0.99934509, 0.49323760],\
++[	-6.27319647, -0.00040606, 0.00024876, 7.27279041, 0.99875960, 0.99934518, 0.49323757],\
++[	-6.27319660, -0.00040601, 0.00024873, 7.27279059, 0.99875977, 0.99934526, 0.49323761],\
++[	-6.27319673, -0.00040595, 0.00024870, 7.27279077, 0.99875993, 0.99934535, 0.49323762],\
++[	-6.27319685, -0.00040590, 0.00024867, 7.27279095, 0.99876009, 0.99934543, 0.49323771],\
++[	-6.27319698, -0.00040585, 0.00024863, 7.27279113, 0.99876026, 0.99934552, 0.49323775],\
++[	-6.27319711, -0.00040579, 0.00024860, 7.27279131, 0.99876042, 0.99934561, 0.49323777],\
++[	-6.27319724, -0.00040574, 0.00024857, 7.27279149, 0.99876058, 0.99934569, 0.49323761],\
++[	-6.27319736, -0.00040569, 0.00024853, 7.27279168, 0.99876074, 0.99934578, 0.49323772],\
++[	-6.27319749, -0.00040563, 0.00024850, 7.27279186, 0.99876091, 0.99934586, 0.49323767],\
++[	-6.27319762, -0.00040558, 0.00024847, 7.27279204, 0.99876107, 0.99934595, 0.49323779],\
++[	-6.27319774, -0.00040553, 0.00024844, 7.27279222, 0.99876123, 0.99934603, 0.49323782],\
++[	-6.27319787, -0.00040547, 0.00024840, 7.27279240, 0.99876139, 0.99934612, 0.49323776],\
++[	-6.27319800, -0.00040542, 0.00024837, 7.27279258, 0.99876156, 0.99934621, 0.49323782],\
++[	-6.27319813, -0.00040537, 0.00024834, 7.27279276, 0.99876172, 0.99934629, 0.49323787],\
++[	-6.27319825, -0.00040532, 0.00024831, 7.27279294, 0.99876188, 0.99934638, 0.49323783],\
++[	-6.27319838, -0.00040526, 0.00024827, 7.27279312, 0.99876204, 0.99934646, 0.49323795],\
++[	-6.27319851, -0.00040521, 0.00024824, 7.27279330, 0.99876220, 0.99934655, 0.49323788],\
++[	-6.27319863, -0.00040516, 0.00024821, 7.27279348, 0.99876237, 0.99934663, 0.49323798],\
++[	-6.27319876, -0.00040510, 0.00024818, 7.27279366, 0.99876253, 0.99934672, 0.49323799],\
++[	-6.27319889, -0.00040505, 0.00024814, 7.27279384, 0.99876269, 0.99934681, 0.49323794],\
++[	-6.27319901, -0.00040500, 0.00024811, 7.27279402, 0.99876285, 0.99934689, 0.49323812],\
++[	-6.27319914, -0.00040494, 0.00024808, 7.27279420, 0.99876301, 0.99934698, 0.49323800],\
++[	-6.27319927, -0.00040489, 0.00024805, 7.27279438, 0.99876318, 0.99934706, 0.49323799],\
++[	-6.27319939, -0.00040484, 0.00024801, 7.27279456, 0.99876334, 0.99934715, 0.49323807],\
++[	-6.27319952, -0.00040479, 0.00024798, 7.27279474, 0.99876350, 0.99934723, 0.49323804],\
++[	-6.27319965, -0.00040473, 0.00024795, 7.27279492, 0.99876366, 0.99934732, 0.49323807],\
++[	-6.27319977, -0.00040468, 0.00024792, 7.27279510, 0.99876382, 0.99934740, 0.49323796],\
++[	-6.27319990, -0.00040463, 0.00024788, 7.27279527, 0.99876398, 0.99934749, 0.49323820],\
++[	-6.27320003, -0.00040457, 0.00024785, 7.27279545, 0.99876415, 0.99934757, 0.49323815],\
++[	-6.27320015, -0.00040452, 0.00024782, 7.27279563, 0.99876431, 0.99934766, 0.49323813],\
++[	-6.27320028, -0.00040447, 0.00024779, 7.27279581, 0.99876447, 0.99934774, 0.49323819],\
++[	-6.27320041, -0.00040442, 0.00024776, 7.27279599, 0.99876463, 0.99934783, 0.49323817],\
++[	-6.27320053, -0.00040436, 0.00024772, 7.27279617, 0.99876479, 0.99934791, 0.49323809],\
++[	-6.27320066, -0.00040431, 0.00024769, 7.27279635, 0.99876495, 0.99934800, 0.49323823],\
++[	-6.27320079, -0.00040426, 0.00024766, 7.27279653, 0.99876511, 0.99934809, 0.49323818],\
++[	-6.27320091, -0.00040420, 0.00024763, 7.27279671, 0.99876528, 0.99934817, 0.49323822],\
++[	-6.27320104, -0.00040415, 0.00024759, 7.27279689, 0.99876544, 0.99934826, 0.49323828],\
++[	-6.27320117, -0.00040410, 0.00024756, 7.27279707, 0.99876560, 0.99934834, 0.49323852],\
++[	-6.27320129, -0.00040405, 0.00024753, 7.27279725, 0.99876576, 0.99934843, 0.49323826],\
++[	-6.27320142, -0.00040399, 0.00024750, 7.27279743, 0.99876592, 0.99934851, 0.49323833],\
++[	-6.27320154, -0.00040394, 0.00024746, 7.27279760, 0.99876608, 0.99934860, 0.49323832],\
++[	-6.27320167, -0.00040389, 0.00024743, 7.27279778, 0.99876624, 0.99934868, 0.49323839],\
++[	-6.27320180, -0.00040383, 0.00024740, 7.27279796, 0.99876640, 0.99934877, 0.49323831],\
++[	-6.27320192, -0.00040378, 0.00024737, 7.27279814, 0.99876656, 0.99934885, 0.49323847],\
++[	-6.27320205, -0.00040373, 0.00024733, 7.27279832, 0.99876673, 0.99934894, 0.49323846],\
++[	-6.27320217, -0.00040368, 0.00024730, 7.27279850, 0.99876689, 0.99934902, 0.49323853],\
++[	-6.27320230, -0.00040362, 0.00024727, 7.27279868, 0.99876705, 0.99934911, 0.49323849],\
++[	-6.27320243, -0.00040357, 0.00024724, 7.27279886, 0.99876721, 0.99934919, 0.49323847],\
++[	-6.27320255, -0.00040352, 0.00024721, 7.27279903, 0.99876737, 0.99934928, 0.49323843],\
++[	-6.27320268, -0.00040347, 0.00024717, 7.27279921, 0.99876753, 0.99934936, 0.49323854],\
++[	-6.27320280, -0.00040341, 0.00024714, 7.27279939, 0.99876769, 0.99934944, 0.49323862],\
++[	-6.27320293, -0.00040336, 0.00024711, 7.27279957, 0.99876785, 0.99934953, 0.49323861],\
++[	-6.27320306, -0.00040331, 0.00024708, 7.27279975, 0.99876801, 0.99934961, 0.49323862],\
++[	-6.27320318, -0.00040326, 0.00024704, 7.27279993, 0.99876817, 0.99934970, 0.49323859],\
++[	-6.27320331, -0.00040320, 0.00024701, 7.27280010, 0.99876833, 0.99934978, 0.49323864],\
++[	-6.27320343, -0.00040315, 0.00024698, 7.27280028, 0.99876849, 0.99934987, 0.49323872],\
++[	-6.27320356, -0.00040310, 0.00024695, 7.27280046, 0.99876865, 0.99934995, 0.49323853],\
++[	-6.27320368, -0.00040305, 0.00024692, 7.27280064, 0.99876881, 0.99935004, 0.49323874],\
++[	-6.27320381, -0.00040299, 0.00024688, 7.27280082, 0.99876897, 0.99935012, 0.49323866],\
++[	-6.27320394, -0.00040294, 0.00024685, 7.27280099, 0.99876913, 0.99935021, 0.49323878],\
++[	-6.27320406, -0.00040289, 0.00024682, 7.27280117, 0.99876929, 0.99935029, 0.49323872],\
++[	-6.27320419, -0.00040284, 0.00024679, 7.27280135, 0.99876945, 0.99935038, 0.49323872],\
++[	-6.27320431, -0.00040278, 0.00024676, 7.27280153, 0.99876961, 0.99935046, 0.49323876],\
++[	-6.27320444, -0.00040273, 0.00024672, 7.27280171, 0.99876978, 0.99935055, 0.49323884],\
++[	-6.27320456, -0.00040268, 0.00024669, 7.27280188, 0.99876994, 0.99935063, 0.49323875],\
++[	-6.27320469, -0.00040263, 0.00024666, 7.27280206, 0.99877010, 0.99935071, 0.49323881],\
++[	-6.27320481, -0.00040257, 0.00024663, 7.27280224, 0.99877026, 0.99935080, 0.49323883],\
++[	-6.27320494, -0.00040252, 0.00024659, 7.27280242, 0.99877042, 0.99935088, 0.49323893],\
++[	-6.27320506, -0.00040247, 0.00024656, 7.27280259, 0.99877058, 0.99935097, 0.49323897],\
++[	-6.27320519, -0.00040242, 0.00024653, 7.27280277, 0.99877073, 0.99935105, 0.49323888],\
++[	-6.27320532, -0.00040237, 0.00024650, 7.27280295, 0.99877089, 0.99935114, 0.49323894],\
++[	-6.27320544, -0.00040231, 0.00024647, 7.27280313, 0.99877105, 0.99935122, 0.49323891],\
++[	-6.27320557, -0.00040226, 0.00024643, 7.27280330, 0.99877121, 0.99935130, 0.49323883],\
++[	-6.27320569, -0.00040221, 0.00024640, 7.27280348, 0.99877137, 0.99935139, 0.49323900],\
++[	-6.27320582, -0.00040216, 0.00024637, 7.27280366, 0.99877153, 0.99935147, 0.49323894],\
++[	-6.27320594, -0.00040210, 0.00024634, 7.27280384, 0.99877169, 0.99935156, 0.49323913],\
++[	-6.27320607, -0.00040205, 0.00024631, 7.27280401, 0.99877185, 0.99935164, 0.49323892],\
++[	-6.27320619, -0.00040200, 0.00024627, 7.27280419, 0.99877201, 0.99935173, 0.49323905],\
++[	-6.27320632, -0.00040195, 0.00024624, 7.27280437, 0.99877217, 0.99935181, 0.49323908],\
++[	-6.27320644, -0.00040190, 0.00024621, 7.27280455, 0.99877233, 0.99935189, 0.49323912],\
++[	-6.27320657, -0.00040184, 0.00024618, 7.27280472, 0.99877249, 0.99935198, 0.49323907],\
++[	-6.27320669, -0.00040179, 0.00024615, 7.27280490, 0.99877265, 0.99935206, 0.49323901],\
++[	-6.27320682, -0.00040174, 0.00024611, 7.27280508, 0.99877281, 0.99935215, 0.49323923],\
++[	-6.27320694, -0.00040169, 0.00024608, 7.27280525, 0.99877297, 0.99935223, 0.49323914],\
++[	-6.27320706, -0.00040163, 0.00024605, 7.27280543, 0.99877313, 0.99935231, 0.49323921],\
++[	-6.27320719, -0.00040158, 0.00024602, 7.27280561, 0.99877329, 0.99935240, 0.49323926],\
++[	-6.27320731, -0.00040153, 0.00024599, 7.27280578, 0.99877345, 0.99935248, 0.49323926],\
++[	-6.27320744, -0.00040148, 0.00024595, 7.27280596, 0.99877361, 0.99935257, 0.49323918],\
++[	-6.27320756, -0.00040143, 0.00024592, 7.27280614, 0.99877376, 0.99935265, 0.49323936],\
++[	-6.27320769, -0.00040137, 0.00024589, 7.27280631, 0.99877392, 0.99935273, 0.49323929],\
++[	-6.27320781, -0.00040132, 0.00024586, 7.27280649, 0.99877408, 0.99935282, 0.49323934],\
++[	-6.27320794, -0.00040127, 0.00024583, 7.27280667, 0.99877424, 0.99935290, 0.49323932],\
++[	-6.27320806, -0.00040122, 0.00024580, 7.27280684, 0.99877440, 0.99935299, 0.49323931],\
++[	-6.27320819, -0.00040117, 0.00024576, 7.27280702, 0.99877456, 0.99935307, 0.49323926],\
++[	-6.27320831, -0.00040111, 0.00024573, 7.27280720, 0.99877472, 0.99935315, 0.49323938],\
++[	-6.27320843, -0.00040106, 0.00024570, 7.27280737, 0.99877488, 0.99935324, 0.49323939],\
++[	-6.27320856, -0.00040101, 0.00024567, 7.27280755, 0.99877504, 0.99935332, 0.49323934],\
++[	-6.27320868, -0.00040096, 0.00024564, 7.27280773, 0.99877519, 0.99935341, 0.49323939],\
++[	-6.27320881, -0.00040091, 0.00024560, 7.27280790, 0.99877535, 0.99935349, 0.49323943],\
++[	-6.27320893, -0.00040085, 0.00024557, 7.27280808, 0.99877551, 0.99935357, 0.49323942],\
++[	-6.27320906, -0.00040080, 0.00024554, 7.27280825, 0.99877567, 0.99935366, 0.49323947],\
++[	-6.27320918, -0.00040075, 0.00024551, 7.27280843, 0.99877583, 0.99935374, 0.49323951],\
++[	-6.27320930, -0.00040070, 0.00024548, 7.27280861, 0.99877599, 0.99935382, 0.49323953],\
++[	-6.27320943, -0.00040065, 0.00024545, 7.27280878, 0.99877615, 0.99935391, 0.49323955],\
++[	-6.27320955, -0.00040059, 0.00024541, 7.27280896, 0.99877630, 0.99935399, 0.49323962],\
++[	-6.27320968, -0.00040054, 0.00024538, 7.27280913, 0.99877646, 0.99935408, 0.49323956],\
++[	-6.27320980, -0.00040049, 0.00024535, 7.27280931, 0.99877662, 0.99935416, 0.49323962],\
++[	-6.27320993, -0.00040044, 0.00024532, 7.27280949, 0.99877678, 0.99935424, 0.49323958],\
++[	-6.27321005, -0.00040039, 0.00024529, 7.27280966, 0.99877694, 0.99935433, 0.49323965],\
++[	-6.27321017, -0.00040034, 0.00024525, 7.27280984, 0.99877710, 0.99935441, 0.49323969],\
++[	-6.27321030, -0.00040028, 0.00024522, 7.27281001, 0.99877725, 0.99935449, 0.49323976],\
++[	-6.27321042, -0.00040023, 0.00024519, 7.27281019, 0.99877741, 0.99935458, 0.49323970],\
++[	-6.27321054, -0.00040018, 0.00024516, 7.27281036, 0.99877757, 0.99935466, 0.49323974],\
++[	-6.27321067, -0.00040013, 0.00024513, 7.27281054, 0.99877773, 0.99935474, 0.49323974],\
++[	-6.27321079, -0.00040008, 0.00024510, 7.27281072, 0.99877789, 0.99935483, 0.49323966],\
++[	-6.27321092, -0.00040003, 0.00024506, 7.27281089, 0.99877804, 0.99935491, 0.49323980],\
++[	-6.27321104, -0.00039997, 0.00024503, 7.27281107, 0.99877820, 0.99935499, 0.49323982],\
++[	-6.27321116, -0.00039992, 0.00024500, 7.27281124, 0.99877836, 0.99935508, 0.49323984],\
++[	-6.27321129, -0.00039987, 0.00024497, 7.27281142, 0.99877852, 0.99935516, 0.49323979],\
++[	-6.27321141, -0.00039982, 0.00024494, 7.27281159, 0.99877868, 0.99935524, 0.49323984],\
++[	-6.27321153, -0.00039977, 0.00024491, 7.27281177, 0.99877883, 0.99935533, 0.49323987],\
++[	-6.27321166, -0.00039972, 0.00024487, 7.27281194, 0.99877899, 0.99935541, 0.49323994],\
++[	-6.27321178, -0.00039966, 0.00024484, 7.27281212, 0.99877915, 0.99935549, 0.49323989],\
++[	-6.27321191, -0.00039961, 0.00024481, 7.27281229, 0.99877931, 0.99935558, 0.49323986],\
++[	-6.27321203, -0.00039956, 0.00024478, 7.27281247, 0.99877946, 0.99935566, 0.49323995],\
++[	-6.27321215, -0.00039951, 0.00024475, 7.27281264, 0.99877962, 0.99935574, 0.49323997],\
++[	-6.27321228, -0.00039946, 0.00024472, 7.27281282, 0.99877978, 0.99935583, 0.49323996],\
++[	-6.27321240, -0.00039941, 0.00024468, 7.27281299, 0.99877994, 0.99935591, 0.49323998],\
++[	-6.27321252, -0.00039935, 0.00024465, 7.27281317, 0.99878009, 0.99935599, 0.49323996],\
++[	-6.27321265, -0.00039930, 0.00024462, 7.27281334, 0.99878025, 0.99935608, 0.49324002],\
++[	-6.27321277, -0.00039925, 0.00024459, 7.27281352, 0.99878041, 0.99935616, 0.49323998],\
++[	-6.27321289, -0.00039920, 0.00024456, 7.27281369, 0.99878057, 0.99935624, 0.49324001],\
++[	-6.27321302, -0.00039915, 0.00024453, 7.27281387, 0.99878072, 0.99935632, 0.49324014],\
++[	-6.27321314, -0.00039910, 0.00024450, 7.27281404, 0.99878088, 0.99935641, 0.49324019],\
++[	-6.27321326, -0.00039905, 0.00024446, 7.27281422, 0.99878104, 0.99935649, 0.49324012],\
++[	-6.27321338, -0.00039899, 0.00024443, 7.27281439, 0.99878120, 0.99935657, 0.49324003],\
++[	-6.27321351, -0.00039894, 0.00024440, 7.27281457, 0.99878135, 0.99935666, 0.49324013],\
++[	-6.27321363, -0.00039889, 0.00024437, 7.27281474, 0.99878151, 0.99935674, 0.49324013],\
++[	-6.27321375, -0.00039884, 0.00024434, 7.27281491, 0.99878167, 0.99935682, 0.49324017],\
++[	-6.27321388, -0.00039879, 0.00024431, 7.27281509, 0.99878182, 0.99935690, 0.49324022],\
++[	-6.27321400, -0.00039874, 0.00024427, 7.27281526, 0.99878198, 0.99935699, 0.49324015],\
++[	-6.27321412, -0.00039869, 0.00024424, 7.27281544, 0.99878214, 0.99935707, 0.49324036],\
++[	-6.27321425, -0.00039863, 0.00024421, 7.27281561, 0.99878229, 0.99935715, 0.49324026],\
++[	-6.27321437, -0.00039858, 0.00024418, 7.27281579, 0.99878245, 0.99935724, 0.49324022],\
++[	-6.27321449, -0.00039853, 0.00024415, 7.27281596, 0.99878261, 0.99935732, 0.49324031],\
++[	-6.27321461, -0.00039848, 0.00024412, 7.27281613, 0.99878277, 0.99935740, 0.49324028],\
++[	-6.27321474, -0.00039843, 0.00024409, 7.27281631, 0.99878292, 0.99935748, 0.49324030],\
++[	-6.27321486, -0.00039838, 0.00024405, 7.27281648, 0.99878308, 0.99935757, 0.49324023],\
++[	-6.27321498, -0.00039833, 0.00024402, 7.27281666, 0.99878324, 0.99935765, 0.49324037],\
++[	-6.27321511, -0.00039828, 0.00024399, 7.27281683, 0.99878339, 0.99935773, 0.49324036],\
++[	-6.27321523, -0.00039822, 0.00024396, 7.27281700, 0.99878355, 0.99935782, 0.49324044],\
++[	-6.27321535, -0.00039817, 0.00024393, 7.27281718, 0.99878370, 0.99935790, 0.49324039],\
++[	-6.27321547, -0.00039812, 0.00024390, 7.27281735, 0.99878386, 0.99935798, 0.49324042],\
++[	-6.27321560, -0.00039807, 0.00024387, 7.27281752, 0.99878402, 0.99935806, 0.49324055],\
++[	-6.27321572, -0.00039802, 0.00024383, 7.27281770, 0.99878417, 0.99935815, 0.49324042],\
++[	-6.27321584, -0.00039797, 0.00024380, 7.27281787, 0.99878433, 0.99935823, 0.49324044],\
++[	-6.27321596, -0.00039792, 0.00024377, 7.27281805, 0.99878449, 0.99935831, 0.49324041],\
++[	-6.27321609, -0.00039787, 0.00024374, 7.27281822, 0.99878464, 0.99935839, 0.49324060],\
++[	-6.27321621, -0.00039781, 0.00024371, 7.27281839, 0.99878480, 0.99935848, 0.49324044],\
++[	-6.27321633, -0.00039776, 0.00024368, 7.27281857, 0.99878496, 0.99935856, 0.49324054],\
++[	-6.27321645, -0.00039771, 0.00024365, 7.27281874, 0.99878511, 0.99935864, 0.49324046],\
++[	-6.27321658, -0.00039766, 0.00024362, 7.27281891, 0.99878527, 0.99935872, 0.49324052],\
++[	-6.27321670, -0.00039761, 0.00024358, 7.27281909, 0.99878542, 0.99935881, 0.49324063],\
++[	-6.27321682, -0.00039756, 0.00024355, 7.27281926, 0.99878558, 0.99935889, 0.49324081],\
++[	-6.27321694, -0.00039751, 0.00024352, 7.27281943, 0.99878574, 0.99935897, 0.49324067],\
++[	-6.27321706, -0.00039746, 0.00024349, 7.27281961, 0.99878589, 0.99935905, 0.49324080],\
++[	-6.27321719, -0.00039741, 0.00024346, 7.27281978, 0.99878605, 0.99935913, 0.49324070],\
++[	-6.27321731, -0.00039736, 0.00024343, 7.27281995, 0.99878620, 0.99935922, 0.49324061],\
++[	-6.27321743, -0.00039730, 0.00024340, 7.27282013, 0.99878636, 0.99935930, 0.49324072],\
++[	-6.27321755, -0.00039725, 0.00024337, 7.27282030, 0.99878652, 0.99935938, 0.49324071],\
++[	-6.27321767, -0.00039720, 0.00024333, 7.27282047, 0.99878667, 0.99935946, 0.49324076],\
++[	-6.27321780, -0.00039715, 0.00024330, 7.27282064, 0.99878683, 0.99935955, 0.49324084],\
++[	-6.27321792, -0.00039710, 0.00024327, 7.27282082, 0.99878698, 0.99935963, 0.49324086],\
++[	-6.27321804, -0.00039705, 0.00024324, 7.27282099, 0.99878714, 0.99935971, 0.49324068],\
++[	-6.27321816, -0.00039700, 0.00024321, 7.27282116, 0.99878729, 0.99935979, 0.49324078],\
++[	-6.27321828, -0.00039695, 0.00024318, 7.27282134, 0.99878745, 0.99935987, 0.49324088],\
++[	-6.27321841, -0.00039690, 0.00024315, 7.27282151, 0.99878760, 0.99935996, 0.49324077],\
++[	-6.27321853, -0.00039685, 0.00024312, 7.27282168, 0.99878776, 0.99936004, 0.49324091],\
++[	-6.27321865, -0.00039680, 0.00024308, 7.27282185, 0.99878792, 0.99936012, 0.49324089],\
++[	-6.27321877, -0.00039674, 0.00024305, 7.27282203, 0.99878807, 0.99936020, 0.49324098],\
++[	-6.27321889, -0.00039669, 0.00024302, 7.27282220, 0.99878823, 0.99936028, 0.49324089],\
++[	-6.27321901, -0.00039664, 0.00024299, 7.27282237, 0.99878838, 0.99936037, 0.49324096],\
++[	-6.27321914, -0.00039659, 0.00024296, 7.27282254, 0.99878854, 0.99936045, 0.49324110],\
++[	-6.27321926, -0.00039654, 0.00024293, 7.27282272, 0.99878869, 0.99936053, 0.49324104],\
++[	-6.27321938, -0.00039649, 0.00024290, 7.27282289, 0.99878885, 0.99936061, 0.49324115],\
++[	-6.27321950, -0.00039644, 0.00024287, 7.27282306, 0.99878900, 0.99936069, 0.49324105],\
++[	-6.27321962, -0.00039639, 0.00024284, 7.27282323, 0.99878916, 0.99936078, 0.49324108],\
++[	-6.27321974, -0.00039634, 0.00024280, 7.27282341, 0.99878931, 0.99936086, 0.49324101],\
++[	-6.27321987, -0.00039629, 0.00024277, 7.27282358, 0.99878947, 0.99936094, 0.49324102],\
++[	-6.27321999, -0.00039624, 0.00024274, 7.27282375, 0.99878962, 0.99936102, 0.49324113],\
++[	-6.27322011, -0.00039619, 0.00024271, 7.27282392, 0.99878978, 0.99936110, 0.49324108],\
++[	-6.27322023, -0.00039613, 0.00024268, 7.27282409, 0.99878993, 0.99936119, 0.49324117],\
++[	-6.27322035, -0.00039608, 0.00024265, 7.27282427, 0.99879009, 0.99936127, 0.49324125],\
++[	-6.27322047, -0.00039603, 0.00024262, 7.27282444, 0.99879024, 0.99936135, 0.49324106],\
++[	-6.27322059, -0.00039598, 0.00024259, 7.27282461, 0.99879040, 0.99936143, 0.49324119],\
++[	-6.27322071, -0.00039593, 0.00024256, 7.27282478, 0.99879055, 0.99936151, 0.49324110],\
++[	-6.27322084, -0.00039588, 0.00024252, 7.27282495, 0.99879071, 0.99936159, 0.49324126],\
++[	-6.27322096, -0.00039583, 0.00024249, 7.27282513, 0.99879086, 0.99936168, 0.49324122],\
++[	-6.27322108, -0.00039578, 0.00024246, 7.27282530, 0.99879102, 0.99936176, 0.49324129],\
++[	-6.27322120, -0.00039573, 0.00024243, 7.27282547, 0.99879117, 0.99936184, 0.49324129],\
++[	-6.27322132, -0.00039568, 0.00024240, 7.27282564, 0.99879133, 0.99936192, 0.49324124],\
++[	-6.27322144, -0.00039563, 0.00024237, 7.27282581, 0.99879148, 0.99936200, 0.49324135],\
++[	-6.27322156, -0.00039558, 0.00024234, 7.27282598, 0.99879163, 0.99936208, 0.49324138],\
++[	-6.27322168, -0.00039553, 0.00024231, 7.27282616, 0.99879179, 0.99936216, 0.49324133],\
++[	-6.27322180, -0.00039548, 0.00024228, 7.27282633, 0.99879194, 0.99936225, 0.49324140],\
++[	-6.27322193, -0.00039543, 0.00024225, 7.27282650, 0.99879210, 0.99936233, 0.49324130],\
++[	-6.27322205, -0.00039538, 0.00024221, 7.27282667, 0.99879225, 0.99936241, 0.49324149],\
++[	-6.27322217, -0.00039533, 0.00024218, 7.27282684, 0.99879241, 0.99936249, 0.49324143],\
++[	-6.27322229, -0.00039528, 0.00024215, 7.27282701, 0.99879256, 0.99936257, 0.49324140],\
++[	-6.27322241, -0.00039522, 0.00024212, 7.27282718, 0.99879271, 0.99936265, 0.49324158],\
++[	-6.27322253, -0.00039517, 0.00024209, 7.27282736, 0.99879287, 0.99936273, 0.49324147],\
++[	-6.27322265, -0.00039512, 0.00024206, 7.27282753, 0.99879302, 0.99936282, 0.49324156],\
++[	-6.27322277, -0.00039507, 0.00024203, 7.27282770, 0.99879318, 0.99936290, 0.49324153],\
++[	-6.27322289, -0.00039502, 0.00024200, 7.27282787, 0.99879333, 0.99936298, 0.49324143],\
++[	-6.27322301, -0.00039497, 0.00024197, 7.27282804, 0.99879349, 0.99936306, 0.49324134],\
++[	-6.27322313, -0.00039492, 0.00024194, 7.27282821, 0.99879364, 0.99936314, 0.49324161],\
++[	-6.27322325, -0.00039487, 0.00024191, 7.27282838, 0.99879379, 0.99936322, 0.49324161],\
++[	-6.27322337, -0.00039482, 0.00024187, 7.27282855, 0.99879395, 0.99936330, 0.49324164],\
++[	-6.27322349, -0.00039477, 0.00024184, 7.27282872, 0.99879410, 0.99936339, 0.49324176],\
++[	-6.27322362, -0.00039472, 0.00024181, 7.27282889, 0.99879425, 0.99936347, 0.49324160],\
++[	-6.27322374, -0.00039467, 0.00024178, 7.27282907, 0.99879441, 0.99936355, 0.49324157],\
++[	-6.27322386, -0.00039462, 0.00024175, 7.27282924, 0.99879456, 0.99936363, 0.49324158],\
++[	-6.27322398, -0.00039457, 0.00024172, 7.27282941, 0.99879472, 0.99936371, 0.49324166],\
++[	-6.27322410, -0.00039452, 0.00024169, 7.27282958, 0.99879487, 0.99936379, 0.49324172],\
++[	-6.27322422, -0.00039447, 0.00024166, 7.27282975, 0.99879502, 0.99936387, 0.49324177],\
++[	-6.27322434, -0.00039442, 0.00024163, 7.27282992, 0.99879518, 0.99936395, 0.49324175],\
++[	-6.27322446, -0.00039437, 0.00024160, 7.27283009, 0.99879533, 0.99936403, 0.49324173],\
++[	-6.27322458, -0.00039432, 0.00024157, 7.27283026, 0.99879548, 0.99936412, 0.49324183],\
++[	-6.27322470, -0.00039427, 0.00024154, 7.27283043, 0.99879564, 0.99936420, 0.49324189],\
++[	-6.27322482, -0.00039422, 0.00024150, 7.27283060, 0.99879579, 0.99936428, 0.49324183],\
++[	-6.27322494, -0.00039417, 0.00024147, 7.27283077, 0.99879594, 0.99936436, 0.49324176],\
++[	-6.27322506, -0.00039412, 0.00024144, 7.27283094, 0.99879610, 0.99936444, 0.49324183],\
++[	-6.27322518, -0.00039407, 0.00024141, 7.27283111, 0.99879625, 0.99936452, 0.49324186],\
++[	-6.27322530, -0.00039402, 0.00024138, 7.27283128, 0.99879640, 0.99936460, 0.49324198],\
++[	-6.27322542, -0.00039397, 0.00024135, 7.27283145, 0.99879656, 0.99936468, 0.49324210],\
++[	-6.27322554, -0.00039392, 0.00024132, 7.27283162, 0.99879671, 0.99936476, 0.49324198],\
++[	-6.27322566, -0.00039387, 0.00024129, 7.27283179, 0.99879686, 0.99936484, 0.49324205],\
++[	-6.27322578, -0.00039382, 0.00024126, 7.27283196, 0.99879702, 0.99936492, 0.49324207],\
++[	-6.27322590, -0.00039377, 0.00024123, 7.27283213, 0.99879717, 0.99936501, 0.49324191],\
++[	-6.27322602, -0.00039372, 0.00024120, 7.27283230, 0.99879732, 0.99936509, 0.49324201],\
++[	-6.27322614, -0.00039367, 0.00024117, 7.27283247, 0.99879748, 0.99936517, 0.49324194],\
++[	-6.27322626, -0.00039362, 0.00024114, 7.27283264, 0.99879763, 0.99936525, 0.49324211],\
++[	-6.27322638, -0.00039357, 0.00024111, 7.27283281, 0.99879778, 0.99936533, 0.49324210],\
++[	-6.27322650, -0.00039352, 0.00024107, 7.27283298, 0.99879793, 0.99936541, 0.49324195],\
++[	-6.27322662, -0.00039347, 0.00024104, 7.27283315, 0.99879809, 0.99936549, 0.49324205],\
++[	-6.27322674, -0.00039342, 0.00024101, 7.27283332, 0.99879824, 0.99936557, 0.49324210],\
++[	-6.27322686, -0.00039337, 0.00024098, 7.27283349, 0.99879839, 0.99936565, 0.49324214],\
++[	-6.27322698, -0.00039332, 0.00024095, 7.27283366, 0.99879855, 0.99936573, 0.49324202],\
++[	-6.27322710, -0.00039327, 0.00024092, 7.27283383, 0.99879870, 0.99936581, 0.49324209],\
++[	-6.27322722, -0.00039322, 0.00024089, 7.27283400, 0.99879885, 0.99936589, 0.49324208],\
++[	-6.27322734, -0.00039317, 0.00024086, 7.27283417, 0.99879900, 0.99936597, 0.49324207],\
++[	-6.27322746, -0.00039312, 0.00024083, 7.27283434, 0.99879916, 0.99936605, 0.49324215],\
++[	-6.27322757, -0.00039307, 0.00024080, 7.27283451, 0.99879931, 0.99936613, 0.49324220],\
++[	-6.27322769, -0.00039302, 0.00024077, 7.27283468, 0.99879946, 0.99936621, 0.49324229],\
++[	-6.27322781, -0.00039297, 0.00024074, 7.27283485, 0.99879961, 0.99936630, 0.49324226],\
++[	-6.27322793, -0.00039292, 0.00024071, 7.27283502, 0.99879977, 0.99936638, 0.49324230],\
++[	-6.27322805, -0.00039287, 0.00024068, 7.27283519, 0.99879992, 0.99936646, 0.49324236],\
++[	-6.27322817, -0.00039282, 0.00024065, 7.27283535, 0.99880007, 0.99936654, 0.49324229],\
++[	-6.27322829, -0.00039277, 0.00024062, 7.27283552, 0.99880022, 0.99936662, 0.49324245],\
++[	-6.27322841, -0.00039272, 0.00024059, 7.27283569, 0.99880038, 0.99936670, 0.49324230],\
++[	-6.27322853, -0.00039267, 0.00024055, 7.27283586, 0.99880053, 0.99936678, 0.49324241],\
++[	-6.27322865, -0.00039262, 0.00024052, 7.27283603, 0.99880068, 0.99936686, 0.49324234],\
++[	-6.27322877, -0.00039257, 0.00024049, 7.27283620, 0.99880083, 0.99936694, 0.49324231],\
++[	-6.27322889, -0.00039252, 0.00024046, 7.27283637, 0.99880098, 0.99936702, 0.49324244],\
++[	-6.27322901, -0.00039247, 0.00024043, 7.27283654, 0.99880114, 0.99936710, 0.49324243],\
++[	-6.27322913, -0.00039242, 0.00024040, 7.27283671, 0.99880129, 0.99936718, 0.49324251],\
++[	-6.27322924, -0.00039237, 0.00024037, 7.27283688, 0.99880144, 0.99936726, 0.49324242],\
++[	-6.27322936, -0.00039232, 0.00024034, 7.27283704, 0.99880159, 0.99936734, 0.49324245],\
++[	-6.27322948, -0.00039227, 0.00024031, 7.27283721, 0.99880174, 0.99936742, 0.49324248],\
++[	-6.27322960, -0.00039222, 0.00024028, 7.27283738, 0.99880190, 0.99936750, 0.49324240],\
++[	-6.27322972, -0.00039217, 0.00024025, 7.27283755, 0.99880205, 0.99936758, 0.49324256],\
++[	-6.27322984, -0.00039212, 0.00024022, 7.27283772, 0.99880220, 0.99936766, 0.49324270],\
++[	-6.27322996, -0.00039207, 0.00024019, 7.27283789, 0.99880235, 0.99936774, 0.49324265],\
++[	-6.27323008, -0.00039202, 0.00024016, 7.27283806, 0.99880250, 0.99936782, 0.49324254],\
++[	-6.27323020, -0.00039197, 0.00024013, 7.27283822, 0.99880265, 0.99936790, 0.49324268],\
++[	-6.27323032, -0.00039192, 0.00024010, 7.27283839, 0.99880281, 0.99936798, 0.49324263],\
++[	-6.27323043, -0.00039187, 0.00024007, 7.27283856, 0.99880296, 0.99936806, 0.49324257],\
++[	-6.27323055, -0.00039182, 0.00024004, 7.27283873, 0.99880311, 0.99936814, 0.49324271],\
++[	-6.27323067, -0.00039177, 0.00024001, 7.27283890, 0.99880326, 0.99936822, 0.49324263],\
++[	-6.27323079, -0.00039172, 0.00023998, 7.27283907, 0.99880341, 0.99936830, 0.49324259],\
++[	-6.27323091, -0.00039167, 0.00023995, 7.27283923, 0.99880356, 0.99936838, 0.49324272],\
++[	-6.27323103, -0.00039162, 0.00023992, 7.27283940, 0.99880372, 0.99936846, 0.49324266],\
++[	-6.27323115, -0.00039158, 0.00023989, 7.27283957, 0.99880387, 0.99936854, 0.49324277],\
++[	-6.27323126, -0.00039153, 0.00023985, 7.27283974, 0.99880402, 0.99936862, 0.49324283],\
++[	-6.27323138, -0.00039148, 0.00023982, 7.27283991, 0.99880417, 0.99936870, 0.49324288],\
++[	-6.27323150, -0.00039143, 0.00023979, 7.27284008, 0.99880432, 0.99936878, 0.49324274],\
++[	-6.27323162, -0.00039138, 0.00023976, 7.27284024, 0.99880447, 0.99936886, 0.49324289],\
++[	-6.27323174, -0.00039133, 0.00023973, 7.27284041, 0.99880462, 0.99936894, 0.49324287],\
++[	-6.27323186, -0.00039128, 0.00023970, 7.27284058, 0.99880477, 0.99936902, 0.49324285],\
++[	-6.27323198, -0.00039123, 0.00023967, 7.27284075, 0.99880493, 0.99936910, 0.49324283],\
++[	-6.27323209, -0.00039118, 0.00023964, 7.27284091, 0.99880508, 0.99936918, 0.49324290],\
++[	-6.27323221, -0.00039113, 0.00023961, 7.27284108, 0.99880523, 0.99936926, 0.49324280],\
++[	-6.27323233, -0.00039108, 0.00023958, 7.27284125, 0.99880538, 0.99936934, 0.49324296],\
++[	-6.27323245, -0.00039103, 0.00023955, 7.27284142, 0.99880553, 0.99936942, 0.49324284],\
++[	-6.27323257, -0.00039098, 0.00023952, 7.27284159, 0.99880568, 0.99936950, 0.49324285],\
++[	-6.27323268, -0.00039093, 0.00023949, 7.27284175, 0.99880583, 0.99936958, 0.49324302],\
++[	-6.27323280, -0.00039088, 0.00023946, 7.27284192, 0.99880598, 0.99936966, 0.49324295],\
++[	-6.27323292, -0.00039083, 0.00023943, 7.27284209, 0.99880613, 0.99936974, 0.49324320],\
++[	-6.27323304, -0.00039078, 0.00023940, 7.27284226, 0.99880628, 0.99936982, 0.49324315],\
++[	-6.27323316, -0.00039073, 0.00023937, 7.27284242, 0.99880643, 0.99936990, 0.49324296],\
++[	-6.27323328, -0.00039069, 0.00023934, 7.27284259, 0.99880658, 0.99936997, 0.49324298],\
++[	-6.27323339, -0.00039064, 0.00023931, 7.27284276, 0.99880674, 0.99937005, 0.49324310],\
++[	-6.27323351, -0.00039059, 0.00023928, 7.27284292, 0.99880689, 0.99937013, 0.49324316],\
++[	-6.27323363, -0.00039054, 0.00023925, 7.27284309, 0.99880704, 0.99937021, 0.49324305],\
++[	-6.27323375, -0.00039049, 0.00023922, 7.27284326, 0.99880719, 0.99937029, 0.49324317],\
++[	-6.27323387, -0.00039044, 0.00023919, 7.27284343, 0.99880734, 0.99937037, 0.49324316],\
++[	-6.27323398, -0.00039039, 0.00023916, 7.27284359, 0.99880749, 0.99937045, 0.49324322],\
++[	-6.27323410, -0.00039034, 0.00023913, 7.27284376, 0.99880764, 0.99937053, 0.49324310],\
++[	-6.27323422, -0.00039029, 0.00023910, 7.27284393, 0.99880779, 0.99937061, 0.49324325],\
++[	-6.27323434, -0.00039024, 0.00023907, 7.27284409, 0.99880794, 0.99937069, 0.49324319],\
++[	-6.27323445, -0.00039019, 0.00023904, 7.27284426, 0.99880809, 0.99937077, 0.49324326],\
++[	-6.27323457, -0.00039014, 0.00023901, 7.27284443, 0.99880824, 0.99937085, 0.49324329],\
++[	-6.27323469, -0.00039009, 0.00023898, 7.27284460, 0.99880839, 0.99937093, 0.49324333],\
++[	-6.27323481, -0.00039005, 0.00023895, 7.27284476, 0.99880854, 0.99937101, 0.49324318],\
++[	-6.27323493, -0.00039000, 0.00023892, 7.27284493, 0.99880869, 0.99937109, 0.49324318],\
++[	-6.27323504, -0.00038995, 0.00023889, 7.27284510, 0.99880884, 0.99937117, 0.49324337],\
++[	-6.27323516, -0.00038990, 0.00023886, 7.27284526, 0.99880899, 0.99937124, 0.49324337],\
++[	-6.27323528, -0.00038985, 0.00023883, 7.27284543, 0.99880914, 0.99937132, 0.49324350],\
++[	-6.27323540, -0.00038980, 0.00023880, 7.27284560, 0.99880929, 0.99937140, 0.49324334],\
++[	-6.27323551, -0.00038975, 0.00023877, 7.27284576, 0.99880944, 0.99937148, 0.49324341],\
++[	-6.27323563, -0.00038970, 0.00023874, 7.27284593, 0.99880959, 0.99937156, 0.49324338],\
++[	-6.27323575, -0.00038965, 0.00023871, 7.27284609, 0.99880974, 0.99937164, 0.49324344],\
++[	-6.27323587, -0.00038960, 0.00023868, 7.27284626, 0.99880989, 0.99937172, 0.49324362],\
++[	-6.27323598, -0.00038955, 0.00023865, 7.27284643, 0.99881004, 0.99937180, 0.49324347],\
++[	-6.27323610, -0.00038951, 0.00023862, 7.27284659, 0.99881019, 0.99937188, 0.49324345],\
++[	-6.27323622, -0.00038946, 0.00023859, 7.27284676, 0.99881034, 0.99937196, 0.49324353],\
++[	-6.27323633, -0.00038941, 0.00023856, 7.27284693, 0.99881049, 0.99937204, 0.49324361],\
++[	-6.27323645, -0.00038936, 0.00023853, 7.27284709, 0.99881064, 0.99937211, 0.49324364],\
++[	-6.27323657, -0.00038931, 0.00023850, 7.27284726, 0.99881079, 0.99937219, 0.49324360],\
++[	-6.27323669, -0.00038926, 0.00023847, 7.27284743, 0.99881094, 0.99937227, 0.49324354],\
++[	-6.27323680, -0.00038921, 0.00023844, 7.27284759, 0.99881109, 0.99937235, 0.49324359],\
++[	-6.27323692, -0.00038916, 0.00023841, 7.27284776, 0.99881124, 0.99937243, 0.49324355],\
++[	-6.27323704, -0.00038911, 0.00023838, 7.27284792, 0.99881139, 0.99937251, 0.49324369],\
++[	-6.27323715, -0.00038907, 0.00023835, 7.27284809, 0.99881154, 0.99937259, 0.49324366],\
++[	-6.27323727, -0.00038902, 0.00023832, 7.27284826, 0.99881169, 0.99937267, 0.49324363],\
++[	-6.27323739, -0.00038897, 0.00023829, 7.27284842, 0.99881184, 0.99937275, 0.49324368],\
++[	-6.27323751, -0.00038892, 0.00023826, 7.27284859, 0.99881198, 0.99937282, 0.49324385],\
++[	-6.27323762, -0.00038887, 0.00023823, 7.27284875, 0.99881213, 0.99937290, 0.49324375],\
++[	-6.27323774, -0.00038882, 0.00023820, 7.27284892, 0.99881228, 0.99937298, 0.49324381],\
++[	-6.27323786, -0.00038877, 0.00023817, 7.27284908, 0.99881243, 0.99937306, 0.49324383],\
++[	-6.27323797, -0.00038872, 0.00023814, 7.27284925, 0.99881258, 0.99937314, 0.49324389],\
++[	-6.27323809, -0.00038867, 0.00023811, 7.27284942, 0.99881273, 0.99937322, 0.49324387],\
++[	-6.27323821, -0.00038863, 0.00023808, 7.27284958, 0.99881288, 0.99937330, 0.49324385],\
++[	-6.27323832, -0.00038858, 0.00023805, 7.27284975, 0.99881303, 0.99937338, 0.49324378],\
++[	-6.27323844, -0.00038853, 0.00023802, 7.27284991, 0.99881318, 0.99937345, 0.49324377],\
++[	-6.27323856, -0.00038848, 0.00023799, 7.27285008, 0.99881333, 0.99937353, 0.49324388],\
++[	-6.27323867, -0.00038843, 0.00023796, 7.27285024, 0.99881348, 0.99937361, 0.49324392],\
++[	-6.27323879, -0.00038838, 0.00023793, 7.27285041, 0.99881362, 0.99937369, 0.49324396],\
++[	-6.27323891, -0.00038833, 0.00023790, 7.27285057, 0.99881377, 0.99937377, 0.49324387],\
++[	-6.27323902, -0.00038828, 0.00023787, 7.27285074, 0.99881392, 0.99937385, 0.49324395],\
++[	-6.27323914, -0.00038824, 0.00023784, 7.27285090, 0.99881407, 0.99937393, 0.49324401],\
++[	-6.27323926, -0.00038819, 0.00023781, 7.27285107, 0.99881422, 0.99937400, 0.49324397],\
++[	-6.27323937, -0.00038814, 0.00023778, 7.27285124, 0.99881437, 0.99937408, 0.49324409],\
++[	-6.27323949, -0.00038809, 0.00023775, 7.27285140, 0.99881452, 0.99937416, 0.49324390],\
++[	-6.27323961, -0.00038804, 0.00023772, 7.27285157, 0.99881467, 0.99937424, 0.49324412],\
++[	-6.27323972, -0.00038799, 0.00023769, 7.27285173, 0.99881481, 0.99937432, 0.49324405],\
++[	-6.27323984, -0.00038794, 0.00023766, 7.27285190, 0.99881496, 0.99937440, 0.49324413],\
++[	-6.27323996, -0.00038789, 0.00023763, 7.27285206, 0.99881511, 0.99937448, 0.49324398],\
++[	-6.27324007, -0.00038785, 0.00023760, 7.27285223, 0.99881526, 0.99937455, 0.49324408],\
++[	-6.27324019, -0.00038780, 0.00023757, 7.27285239, 0.99881541, 0.99937463, 0.49324411],\
++[	-6.27324030, -0.00038775, 0.00023754, 7.27285256, 0.99881556, 0.99937471, 0.49324404],\
++[	-6.27324042, -0.00038770, 0.00023751, 7.27285272, 0.99881571, 0.99937479, 0.49324417],\
++[	-6.27324054, -0.00038765, 0.00023748, 7.27285289, 0.99881585, 0.99937487, 0.49324417],\
++[	-6.27324065, -0.00038760, 0.00023745, 7.27285305, 0.99881600, 0.99937495, 0.49324417],\
++[	-6.27324077, -0.00038755, 0.00023742, 7.27285321, 0.99881615, 0.99937502, 0.49324410],\
++[	-6.27324089, -0.00038751, 0.00023739, 7.27285338, 0.99881630, 0.99937510, 0.49324415],\
++[	-6.27324100, -0.00038746, 0.00023736, 7.27285354, 0.99881645, 0.99937518, 0.49324415],\
++[	-6.27324112, -0.00038741, 0.00023733, 7.27285371, 0.99881660, 0.99937526, 0.49324428],\
++[	-6.27324123, -0.00038736, 0.00023730, 7.27285387, 0.99881674, 0.99937534, 0.49324427],\
++[	-6.27324135, -0.00038731, 0.00023727, 7.27285404, 0.99881689, 0.99937541, 0.49324429],\
++[	-6.27324147, -0.00038726, 0.00023724, 7.27285420, 0.99881704, 0.99937549, 0.49324429],\
++[	-6.27324158, -0.00038722, 0.00023721, 7.27285437, 0.99881719, 0.99937557, 0.49324431],\
++[	-6.27324170, -0.00038717, 0.00023718, 7.27285453, 0.99881734, 0.99937565, 0.49324418],\
++[	-6.27324181, -0.00038712, 0.00023715, 7.27285469, 0.99881748, 0.99937573, 0.49324436],\
++[	-6.27324193, -0.00038707, 0.00023712, 7.27285486, 0.99881763, 0.99937581, 0.49324427],\
++[	-6.27324205, -0.00038702, 0.00023709, 7.27285502, 0.99881778, 0.99937588, 0.49324438],\
++[	-6.27324216, -0.00038697, 0.00023706, 7.27285519, 0.99881793, 0.99937596, 0.49324441],\
++[	-6.27324228, -0.00038693, 0.00023704, 7.27285535, 0.99881807, 0.99937604, 0.49324425],\
++[	-6.27324239, -0.00038688, 0.00023701, 7.27285552, 0.99881822, 0.99937612, 0.49324444],\
++[	-6.27324251, -0.00038683, 0.00023698, 7.27285568, 0.99881837, 0.99937620, 0.49324437],\
++[	-6.27324262, -0.00038678, 0.00023695, 7.27285584, 0.99881852, 0.99937627, 0.49324451],\
++[	-6.27324274, -0.00038673, 0.00023692, 7.27285601, 0.99881867, 0.99937635, 0.49324443],\
++[	-6.27324286, -0.00038668, 0.00023689, 7.27285617, 0.99881881, 0.99937643, 0.49324463],\
++[	-6.27324297, -0.00038664, 0.00023686, 7.27285634, 0.99881896, 0.99937651, 0.49324464],\
++[	-6.27324309, -0.00038659, 0.00023683, 7.27285650, 0.99881911, 0.99937659, 0.49324460],\
++[	-6.27324320, -0.00038654, 0.00023680, 7.27285666, 0.99881926, 0.99937666, 0.49324474],\
++[	-6.27324332, -0.00038649, 0.00023677, 7.27285683, 0.99881940, 0.99937674, 0.49324457],\
++[	-6.27324343, -0.00038644, 0.00023674, 7.27285699, 0.99881955, 0.99937682, 0.49324464],\
++[	-6.27324355, -0.00038639, 0.00023671, 7.27285716, 0.99881970, 0.99937690, 0.49324452],\
++[	-6.27324366, -0.00038635, 0.00023668, 7.27285732, 0.99881985, 0.99937697, 0.49324451],\
++[	-6.27324378, -0.00038630, 0.00023665, 7.27285748, 0.99881999, 0.99937705, 0.49324463],\
++[	-6.27324390, -0.00038625, 0.00023662, 7.27285765, 0.99882014, 0.99937713, 0.49324460],\
++[	-6.27324401, -0.00038620, 0.00023659, 7.27285781, 0.99882029, 0.99937721, 0.49324461],\
++[	-6.27324413, -0.00038615, 0.00023656, 7.27285797, 0.99882043, 0.99937729, 0.49324473],\
++[	-6.27324424, -0.00038610, 0.00023653, 7.27285814, 0.99882058, 0.99937736, 0.49324474],\
++[	-6.27324436, -0.00038606, 0.00023650, 7.27285830, 0.99882073, 0.99937744, 0.49324465],\
++[	-6.27324447, -0.00038601, 0.00023647, 7.27285846, 0.99882088, 0.99937752, 0.49324475],\
++[	-6.27324459, -0.00038596, 0.00023644, 7.27285863, 0.99882102, 0.99937760, 0.49324482],\
++[	-6.27324470, -0.00038591, 0.00023641, 7.27285879, 0.99882117, 0.99937767, 0.49324468],\
++[	-6.27324482, -0.00038586, 0.00023638, 7.27285895, 0.99882132, 0.99937775, 0.49324472],\
++[	-6.27324493, -0.00038582, 0.00023636, 7.27285912, 0.99882146, 0.99937783, 0.49324478],\
++[	-6.27324505, -0.00038577, 0.00023633, 7.27285928, 0.99882161, 0.99937791, 0.49324486],\
++[	-6.27324516, -0.00038572, 0.00023630, 7.27285944, 0.99882176, 0.99937798, 0.49324500],\
++[	-6.27324528, -0.00038567, 0.00023627, 7.27285961, 0.99882190, 0.99937806, 0.49324482],\
++[	-6.27324539, -0.00038562, 0.00023624, 7.27285977, 0.99882205, 0.99937814, 0.49324496],\
++[	-6.27324551, -0.00038558, 0.00023621, 7.27285993, 0.99882220, 0.99937822, 0.49324495],\
++[	-6.27324562, -0.00038553, 0.00023618, 7.27286009, 0.99882234, 0.99937829, 0.49324492],\
++[	-6.27324574, -0.00038548, 0.00023615, 7.27286026, 0.99882249, 0.99937837, 0.49324476],\
++[	-6.27324585, -0.00038543, 0.00023612, 7.27286042, 0.99882264, 0.99937845, 0.49324499],\
++[	-6.27324597, -0.00038538, 0.00023609, 7.27286058, 0.99882278, 0.99937853, 0.49324495],\
++[	-6.27324608, -0.00038534, 0.00023606, 7.27286075, 0.99882293, 0.99937860, 0.49324497],\
++[	-6.27324620, -0.00038529, 0.00023603, 7.27286091, 0.99882308, 0.99937868, 0.49324499],\
++[	-6.27324631, -0.00038524, 0.00023600, 7.27286107, 0.99882322, 0.99937876, 0.49324496],\
++[	-6.27324643, -0.00038519, 0.00023597, 7.27286123, 0.99882337, 0.99937884, 0.49324507],\
++[	-6.27324654, -0.00038514, 0.00023594, 7.27286140, 0.99882352, 0.99937891, 0.49324506],\
++[	-6.27324666, -0.00038510, 0.00023591, 7.27286156, 0.99882366, 0.99937899, 0.49324519],\
++[	-6.27324677, -0.00038505, 0.00023588, 7.27286172, 0.99882381, 0.99937907, 0.49324510],\
++[	-6.27324689, -0.00038500, 0.00023586, 7.27286188, 0.99882396, 0.99937914, 0.49324509],\
++[	-6.27324700, -0.00038495, 0.00023583, 7.27286205, 0.99882410, 0.99937922, 0.49324510],\
++[	-6.27324711, -0.00038490, 0.00023580, 7.27286221, 0.99882425, 0.99937930, 0.49324517],\
++[	-6.27324723, -0.00038486, 0.00023577, 7.27286237, 0.99882440, 0.99937938, 0.49324527],\
++[	-6.27324734, -0.00038481, 0.00023574, 7.27286253, 0.99882454, 0.99937945, 0.49324519],\
++[	-6.27324746, -0.00038476, 0.00023571, 7.27286270, 0.99882469, 0.99937953, 0.49324516],\
++[	-6.27324757, -0.00038471, 0.00023568, 7.27286286, 0.99882483, 0.99937961, 0.49324513],\
++[	-6.27324769, -0.00038467, 0.00023565, 7.27286302, 0.99882498, 0.99937968, 0.49324519],\
++[	-6.27324780, -0.00038462, 0.00023562, 7.27286318, 0.99882513, 0.99937976, 0.49324509],\
++[	-6.27324792, -0.00038457, 0.00023559, 7.27286335, 0.99882527, 0.99937984, 0.49324532],\
++[	-6.27324803, -0.00038452, 0.00023556, 7.27286351, 0.99882542, 0.99937992, 0.49324518],\
++[	-6.27324814, -0.00038447, 0.00023553, 7.27286367, 0.99882556, 0.99937999, 0.49324537],\
++[	-6.27324826, -0.00038443, 0.00023550, 7.27286383, 0.99882571, 0.99938007, 0.49324536],\
++[	-6.27324837, -0.00038438, 0.00023547, 7.27286399, 0.99882586, 0.99938015, 0.49324540],\
++[	-6.27324849, -0.00038433, 0.00023545, 7.27286416, 0.99882600, 0.99938022, 0.49324531],\
++[	-6.27324860, -0.00038428, 0.00023542, 7.27286432, 0.99882615, 0.99938030, 0.49324544],\
++[	-6.27324872, -0.00038424, 0.00023539, 7.27286448, 0.99882629, 0.99938038, 0.49324534],\
++[	-6.27324883, -0.00038419, 0.00023536, 7.27286464, 0.99882644, 0.99938045, 0.49324551],\
++[	-6.27324894, -0.00038414, 0.00023533, 7.27286480, 0.99882658, 0.99938053, 0.49324541],\
++[	-6.27324906, -0.00038409, 0.00023530, 7.27286497, 0.99882673, 0.99938061, 0.49324551],\
++[	-6.27324917, -0.00038405, 0.00023527, 7.27286513, 0.99882688, 0.99938068, 0.49324541],\
++[	-6.27324929, -0.00038400, 0.00023524, 7.27286529, 0.99882702, 0.99938076, 0.49324543],\
++[	-6.27324940, -0.00038395, 0.00023521, 7.27286545, 0.99882717, 0.99938084, 0.49324548],\
++[	-6.27324951, -0.00038390, 0.00023518, 7.27286561, 0.99882731, 0.99938092, 0.49324547],\
++[	-6.27324963, -0.00038385, 0.00023515, 7.27286577, 0.99882746, 0.99938099, 0.49324552],\
++[	-6.27324974, -0.00038381, 0.00023512, 7.27286594, 0.99882760, 0.99938107, 0.49324561],\
++[	-6.27324986, -0.00038376, 0.00023509, 7.27286610, 0.99882775, 0.99938115, 0.49324575],\
++[	-6.27324997, -0.00038371, 0.00023507, 7.27286626, 0.99882789, 0.99938122, 0.49324555],\
++[	-6.27325008, -0.00038366, 0.00023504, 7.27286642, 0.99882804, 0.99938130, 0.49324561],\
++[	-6.27325020, -0.00038362, 0.00023501, 7.27286658, 0.99882818, 0.99938138, 0.49324560],\
++[	-6.27325031, -0.00038357, 0.00023498, 7.27286674, 0.99882833, 0.99938145, 0.49324567],\
++[	-6.27325043, -0.00038352, 0.00023495, 7.27286690, 0.99882847, 0.99938153, 0.49324557],\
++[	-6.27325054, -0.00038347, 0.00023492, 7.27286706, 0.99882862, 0.99938161, 0.49324572],\
++[	-6.27325065, -0.00038343, 0.00023489, 7.27286723, 0.99882877, 0.99938168, 0.49324570],\
++[	-6.27325077, -0.00038338, 0.00023486, 7.27286739, 0.99882891, 0.99938176, 0.49324576],\
++[	-6.27325088, -0.00038333, 0.00023483, 7.27286755, 0.99882906, 0.99938184, 0.49324591],\
++[	-6.27325099, -0.00038328, 0.00023480, 7.27286771, 0.99882920, 0.99938191, 0.49324569],\
++[	-6.27325111, -0.00038324, 0.00023477, 7.27286787, 0.99882935, 0.99938199, 0.49324559],\
++[	-6.27325122, -0.00038319, 0.00023475, 7.27286803, 0.99882949, 0.99938207, 0.49324564],\
++[	-6.27325133, -0.00038314, 0.00023472, 7.27286819, 0.99882964, 0.99938214, 0.49324576],\
++[	-6.27325145, -0.00038309, 0.00023469, 7.27286835, 0.99882978, 0.99938222, 0.49324581],\
++[	-6.27325156, -0.00038305, 0.00023466, 7.27286851, 0.99882993, 0.99938229, 0.49324590],\
++[	-6.27325168, -0.00038300, 0.00023463, 7.27286868, 0.99883007, 0.99938237, 0.49324573],\
++[	-6.27325179, -0.00038295, 0.00023460, 7.27286884, 0.99883021, 0.99938245, 0.49324578],\
++[	-6.27325190, -0.00038291, 0.00023457, 7.27286900, 0.99883036, 0.99938252, 0.49324585],\
++[	-6.27325202, -0.00038286, 0.00023454, 7.27286916, 0.99883050, 0.99938260, 0.49324579],\
++[	-6.27325213, -0.00038281, 0.00023451, 7.27286932, 0.99883065, 0.99938268, 0.49324589],\
++[	-6.27325224, -0.00038276, 0.00023448, 7.27286948, 0.99883079, 0.99938275, 0.49324588],\
++[	-6.27325236, -0.00038272, 0.00023446, 7.27286964, 0.99883094, 0.99938283, 0.49324586],\
++[	-6.27325247, -0.00038267, 0.00023443, 7.27286980, 0.99883108, 0.99938291, 0.49324588],\
++[	-6.27325258, -0.00038262, 0.00023440, 7.27286996, 0.99883123, 0.99938298, 0.49324600],\
++[	-6.27325269, -0.00038257, 0.00023437, 7.27287012, 0.99883137, 0.99938306, 0.49324602],\
++[	-6.27325281, -0.00038253, 0.00023434, 7.27287028, 0.99883152, 0.99938313, 0.49324593],\
++[	-6.27325292, -0.00038248, 0.00023431, 7.27287044, 0.99883166, 0.99938321, 0.49324600],\
++[	-6.27325303, -0.00038243, 0.00023428, 7.27287060, 0.99883180, 0.99938329, 0.49324594],\
++[	-6.27325315, -0.00038238, 0.00023425, 7.27287076, 0.99883195, 0.99938336, 0.49324594],\
++[	-6.27325326, -0.00038234, 0.00023422, 7.27287092, 0.99883209, 0.99938344, 0.49324616],\
++[	-6.27325337, -0.00038229, 0.00023419, 7.27287108, 0.99883224, 0.99938352, 0.49324609],\
++[	-6.27325349, -0.00038224, 0.00023417, 7.27287124, 0.99883238, 0.99938359, 0.49324615],\
++[	-6.27325360, -0.00038220, 0.00023414, 7.27287140, 0.99883253, 0.99938367, 0.49324616],\
++[	-6.27325371, -0.00038215, 0.00023411, 7.27287156, 0.99883267, 0.99938374, 0.49324616],\
++[	-6.27325383, -0.00038210, 0.00023408, 7.27287172, 0.99883281, 0.99938382, 0.49324603],\
++[	-6.27325394, -0.00038205, 0.00023405, 7.27287188, 0.99883296, 0.99938390, 0.49324614],\
++[	-6.27325405, -0.00038201, 0.00023402, 7.27287204, 0.99883310, 0.99938397, 0.49324629],\
++[	-6.27325416, -0.00038196, 0.00023399, 7.27287220, 0.99883325, 0.99938405, 0.49324628],\
++[	-6.27325428, -0.00038191, 0.00023396, 7.27287236, 0.99883339, 0.99938412, 0.49324634],\
++[	-6.27325439, -0.00038187, 0.00023393, 7.27287252, 0.99883353, 0.99938420, 0.49324618],\
++[	-6.27325450, -0.00038182, 0.00023391, 7.27287268, 0.99883368, 0.99938428, 0.49324620],\
++[	-6.27325462, -0.00038177, 0.00023388, 7.27287284, 0.99883382, 0.99938435, 0.49324621],\
++[	-6.27325473, -0.00038172, 0.00023385, 7.27287300, 0.99883397, 0.99938443, 0.49324620],\
++[	-6.27325484, -0.00038168, 0.00023382, 7.27287316, 0.99883411, 0.99938450, 0.49324631],\
++[	-6.27325495, -0.00038163, 0.00023379, 7.27287332, 0.99883425, 0.99938458, 0.49324616],\
++[	-6.27325507, -0.00038158, 0.00023376, 7.27287348, 0.99883440, 0.99938466, 0.49324629],\
++[	-6.27325518, -0.00038154, 0.00023373, 7.27287364, 0.99883454, 0.99938473, 0.49324635],\
++[	-6.27325529, -0.00038149, 0.00023370, 7.27287380, 0.99883469, 0.99938481, 0.49324648],\
++[	-6.27325540, -0.00038144, 0.00023367, 7.27287396, 0.99883483, 0.99938488, 0.49324638],\
++[	-6.27325552, -0.00038140, 0.00023365, 7.27287412, 0.99883497, 0.99938496, 0.49324637],\
++[	-6.27325563, -0.00038135, 0.00023362, 7.27287428, 0.99883512, 0.99938503, 0.49324641],\
++[	-6.27325574, -0.00038130, 0.00023359, 7.27287444, 0.99883526, 0.99938511, 0.49324645],\
++[	-6.27325585, -0.00038125, 0.00023356, 7.27287460, 0.99883540, 0.99938519, 0.49324647],\
++[	-6.27325597, -0.00038121, 0.00023353, 7.27287476, 0.99883555, 0.99938526, 0.49324642],\
++[	-6.27325608, -0.00038116, 0.00023350, 7.27287492, 0.99883569, 0.99938534, 0.49324651],\
++[	-6.27325619, -0.00038111, 0.00023347, 7.27287508, 0.99883583, 0.99938541, 0.49324649],\
++[	-6.27325630, -0.00038107, 0.00023344, 7.27287524, 0.99883598, 0.99938549, 0.49324647],\
++[	-6.27325642, -0.00038102, 0.00023342, 7.27287540, 0.99883612, 0.99938556, 0.49324658],\
++[	-6.27325653, -0.00038097, 0.00023339, 7.27287555, 0.99883626, 0.99938564, 0.49324664],\
++[	-6.27325664, -0.00038093, 0.00023336, 7.27287571, 0.99883641, 0.99938572, 0.49324649],\
++[	-6.27325675, -0.00038088, 0.00023333, 7.27287587, 0.99883655, 0.99938579, 0.49324658],\
++[	-6.27325686, -0.00038083, 0.00023330, 7.27287603, 0.99883669, 0.99938587, 0.49324653],\
++[	-6.27325698, -0.00038079, 0.00023327, 7.27287619, 0.99883684, 0.99938594, 0.49324658],\
++[	-6.27325709, -0.00038074, 0.00023324, 7.27287635, 0.99883698, 0.99938602, 0.49324649],\
++[	-6.27325720, -0.00038069, 0.00023321, 7.27287651, 0.99883712, 0.99938609, 0.49324663],\
++[	-6.27325731, -0.00038065, 0.00023319, 7.27287667, 0.99883727, 0.99938617, 0.49324670],\
++[	-6.27325742, -0.00038060, 0.00023316, 7.27287683, 0.99883741, 0.99938624, 0.49324665],\
++[	-6.27325754, -0.00038055, 0.00023313, 7.27287699, 0.99883755, 0.99938632, 0.49324681],\
++[	-6.27325765, -0.00038050, 0.00023310, 7.27287714, 0.99883769, 0.99938640, 0.49324678],\
++[	-6.27325776, -0.00038046, 0.00023307, 7.27287730, 0.99883784, 0.99938647, 0.49324668],\
++[	-6.27325787, -0.00038041, 0.00023304, 7.27287746, 0.99883798, 0.99938655, 0.49324676],\
++[	-6.27325798, -0.00038036, 0.00023301, 7.27287762, 0.99883812, 0.99938662, 0.49324679],\
++[	-6.27325810, -0.00038032, 0.00023299, 7.27287778, 0.99883827, 0.99938670, 0.49324680],\
++[	-6.27325821, -0.00038027, 0.00023296, 7.27287794, 0.99883841, 0.99938677, 0.49324686],\
++[	-6.27325832, -0.00038022, 0.00023293, 7.27287810, 0.99883855, 0.99938685, 0.49324703],\
++[	-6.27325843, -0.00038018, 0.00023290, 7.27287825, 0.99883869, 0.99938692, 0.49324683],\
++[	-6.27325854, -0.00038013, 0.00023287, 7.27287841, 0.99883884, 0.99938700, 0.49324688],\
++[	-6.27325866, -0.00038008, 0.00023284, 7.27287857, 0.99883898, 0.99938707, 0.49324687],\
++[	-6.27325877, -0.00038004, 0.00023281, 7.27287873, 0.99883912, 0.99938715, 0.49324692],\
++[	-6.27325888, -0.00037999, 0.00023279, 7.27287889, 0.99883926, 0.99938722, 0.49324678],\
++[	-6.27325899, -0.00037994, 0.00023276, 7.27287905, 0.99883941, 0.99938730, 0.49324693],\
++[	-6.27325910, -0.00037990, 0.00023273, 7.27287920, 0.99883955, 0.99938737, 0.49324693],\
++[	-6.27325921, -0.00037985, 0.00023270, 7.27287936, 0.99883969, 0.99938745, 0.49324695],\
++[	-6.27325932, -0.00037980, 0.00023267, 7.27287952, 0.99883983, 0.99938752, 0.49324704],\
++[	-6.27325944, -0.00037976, 0.00023264, 7.27287968, 0.99883998, 0.99938760, 0.49324699],\
++[	-6.27325955, -0.00037971, 0.00023261, 7.27287984, 0.99884012, 0.99938768, 0.49324702],\
++[	-6.27325966, -0.00037966, 0.00023259, 7.27287999, 0.99884026, 0.99938775, 0.49324694],\
++[	-6.27325977, -0.00037962, 0.00023256, 7.27288015, 0.99884040, 0.99938783, 0.49324708],\
++[	-6.27325988, -0.00037957, 0.00023253, 7.27288031, 0.99884055, 0.99938790, 0.49324716],\
++[	-6.27325999, -0.00037953, 0.00023250, 7.27288047, 0.99884069, 0.99938798, 0.49324712],\
++[	-6.27326011, -0.00037948, 0.00023247, 7.27288063, 0.99884083, 0.99938805, 0.49324715],\
++[	-6.27326022, -0.00037943, 0.00023244, 7.27288078, 0.99884097, 0.99938813, 0.49324707],\
++[	-6.27326033, -0.00037939, 0.00023241, 7.27288094, 0.99884111, 0.99938820, 0.49324704],\
++[	-6.27326044, -0.00037934, 0.00023239, 7.27288110, 0.99884126, 0.99938828, 0.49324718],\
++[	-6.27326055, -0.00037929, 0.00023236, 7.27288126, 0.99884140, 0.99938835, 0.49324714],\
++[	-6.27326066, -0.00037925, 0.00023233, 7.27288142, 0.99884154, 0.99938843, 0.49324726],\
++[	-6.27326077, -0.00037920, 0.00023230, 7.27288157, 0.99884168, 0.99938850, 0.49324702],\
++[	-6.27326088, -0.00037915, 0.00023227, 7.27288173, 0.99884182, 0.99938858, 0.49324721],\
++[	-6.27326100, -0.00037911, 0.00023224, 7.27288189, 0.99884197, 0.99938865, 0.49324723],\
++[	-6.27326111, -0.00037906, 0.00023221, 7.27288205, 0.99884211, 0.99938873, 0.49324718],\
++[	-6.27326122, -0.00037901, 0.00023219, 7.27288220, 0.99884225, 0.99938880, 0.49324712],\
++[	-6.27326133, -0.00037897, 0.00023216, 7.27288236, 0.99884239, 0.99938887, 0.49324742],\
++[	-6.27326144, -0.00037892, 0.00023213, 7.27288252, 0.99884253, 0.99938895, 0.49324731],\
++[	-6.27326155, -0.00037887, 0.00023210, 7.27288268, 0.99884267, 0.99938902, 0.49324731],\
++[	-6.27326166, -0.00037883, 0.00023207, 7.27288283, 0.99884282, 0.99938910, 0.49324735],\
++[	-6.27326177, -0.00037878, 0.00023204, 7.27288299, 0.99884296, 0.99938917, 0.49324724],\
++[	-6.27326188, -0.00037874, 0.00023202, 7.27288315, 0.99884310, 0.99938925, 0.49324733],\
++[	-6.27326199, -0.00037869, 0.00023199, 7.27288331, 0.99884324, 0.99938932, 0.49324726],\
++[	-6.27326211, -0.00037864, 0.00023196, 7.27288346, 0.99884338, 0.99938940, 0.49324734],\
++[	-6.27326222, -0.00037860, 0.00023193, 7.27288362, 0.99884352, 0.99938947, 0.49324737],\
++[	-6.27326233, -0.00037855, 0.00023190, 7.27288378, 0.99884367, 0.99938955, 0.49324746],\
++[	-6.27326244, -0.00037850, 0.00023187, 7.27288393, 0.99884381, 0.99938962, 0.49324742],\
++[	-6.27326255, -0.00037846, 0.00023185, 7.27288409, 0.99884395, 0.99938970, 0.49324750],\
++[	-6.27326266, -0.00037841, 0.00023182, 7.27288425, 0.99884409, 0.99938977, 0.49324754],\
++[	-6.27326277, -0.00037837, 0.00023179, 7.27288441, 0.99884423, 0.99938985, 0.49324741],\
++[	-6.27326288, -0.00037832, 0.00023176, 7.27288456, 0.99884437, 0.99938992, 0.49324760],\
++[	-6.27326299, -0.00037827, 0.00023173, 7.27288472, 0.99884451, 0.99939000, 0.49324751],\
++[	-6.27326310, -0.00037823, 0.00023170, 7.27288488, 0.99884466, 0.99939007, 0.49324747],\
++[	-6.27326321, -0.00037818, 0.00023168, 7.27288503, 0.99884480, 0.99939014, 0.49324756],\
++[	-6.27326332, -0.00037813, 0.00023165, 7.27288519, 0.99884494, 0.99939022, 0.49324744],\
++[	-6.27326343, -0.00037809, 0.00023162, 7.27288535, 0.99884508, 0.99939029, 0.49324765],\
++[	-6.27326354, -0.00037804, 0.00023159, 7.27288550, 0.99884522, 0.99939037, 0.49324755],\
++[	-6.27326366, -0.00037800, 0.00023156, 7.27288566, 0.99884536, 0.99939044, 0.49324760],\
++[	-6.27326377, -0.00037795, 0.00023153, 7.27288582, 0.99884550, 0.99939052, 0.49324764],\
++[	-6.27326388, -0.00037790, 0.00023151, 7.27288597, 0.99884564, 0.99939059, 0.49324764],\
++[	-6.27326399, -0.00037786, 0.00023148, 7.27288613, 0.99884578, 0.99939067, 0.49324768],\
++[	-6.27326410, -0.00037781, 0.00023145, 7.27288629, 0.99884592, 0.99939074, 0.49324772],\
++[	-6.27326421, -0.00037777, 0.00023142, 7.27288644, 0.99884607, 0.99939081, 0.49324775],\
++[	-6.27326432, -0.00037772, 0.00023139, 7.27288660, 0.99884621, 0.99939089, 0.49324763],\
++[	-6.27326443, -0.00037767, 0.00023136, 7.27288676, 0.99884635, 0.99939096, 0.49324773],\
++[	-6.27326454, -0.00037763, 0.00023134, 7.27288691, 0.99884649, 0.99939104, 0.49324770],\
++[	-6.27326465, -0.00037758, 0.00023131, 7.27288707, 0.99884663, 0.99939111, 0.49324772],\
++[	-6.27326476, -0.00037753, 0.00023128, 7.27288722, 0.99884677, 0.99939119, 0.49324778],\
++[	-6.27326487, -0.00037749, 0.00023125, 7.27288738, 0.99884691, 0.99939126, 0.49324783],\
++[	-6.27326498, -0.00037744, 0.00023122, 7.27288754, 0.99884705, 0.99939133, 0.49324780],\
++[	-6.27326509, -0.00037740, 0.00023120, 7.27288769, 0.99884719, 0.99939141, 0.49324776],\
++[	-6.27326520, -0.00037735, 0.00023117, 7.27288785, 0.99884733, 0.99939148, 0.49324786],\
++[	-6.27326531, -0.00037730, 0.00023114, 7.27288801, 0.99884747, 0.99939156, 0.49324788],\
++[	-6.27326542, -0.00037726, 0.00023111, 7.27288816, 0.99884761, 0.99939163, 0.49324776],\
++[	-6.27326553, -0.00037721, 0.00023108, 7.27288832, 0.99884775, 0.99939171, 0.49324788],\
++[	-6.27326564, -0.00037717, 0.00023105, 7.27288847, 0.99884789, 0.99939178, 0.49324801],\
++[	-6.27326575, -0.00037712, 0.00023103, 7.27288863, 0.99884803, 0.99939185, 0.49324790],\
++[	-6.27326586, -0.00037707, 0.00023100, 7.27288879, 0.99884817, 0.99939193, 0.49324783],\
++[	-6.27326597, -0.00037703, 0.00023097, 7.27288894, 0.99884831, 0.99939200, 0.49324795],\
++[	-6.27326608, -0.00037698, 0.00023094, 7.27288910, 0.99884846, 0.99939208, 0.49324808],\
++[	-6.27326619, -0.00037694, 0.00023091, 7.27288925, 0.99884860, 0.99939215, 0.49324796],\
++[	-6.27326630, -0.00037689, 0.00023089, 7.27288941, 0.99884874, 0.99939222, 0.49324802],\
++[	-6.27326641, -0.00037685, 0.00023086, 7.27288956, 0.99884888, 0.99939230, 0.49324786],\
++[	-6.27326652, -0.00037680, 0.00023083, 7.27288972, 0.99884902, 0.99939237, 0.49324795],\
++[	-6.27326663, -0.00037675, 0.00023080, 7.27288988, 0.99884916, 0.99939245, 0.49324822],\
++[	-6.27326674, -0.00037671, 0.00023077, 7.27289003, 0.99884930, 0.99939252, 0.49324803],\
++[	-6.27326685, -0.00037666, 0.00023074, 7.27289019, 0.99884944, 0.99939259, 0.49324799],\
++[	-6.27326696, -0.00037662, 0.00023072, 7.27289034, 0.99884958, 0.99939267, 0.49324798],\
++[	-6.27326707, -0.00037657, 0.00023069, 7.27289050, 0.99884972, 0.99939274, 0.49324802],\
++[	-6.27326718, -0.00037652, 0.00023066, 7.27289065, 0.99884986, 0.99939282, 0.49324803],\
++[	-6.27326729, -0.00037648, 0.00023063, 7.27289081, 0.99885000, 0.99939289, 0.49324811],\
++[	-6.27326740, -0.00037643, 0.00023060, 7.27289096, 0.99885014, 0.99939296, 0.49324817],\
++[	-6.27326751, -0.00037639, 0.00023058, 7.27289112, 0.99885028, 0.99939304, 0.49324821],\
++[	-6.27326762, -0.00037634, 0.00023055, 7.27289127, 0.99885042, 0.99939311, 0.49324821],\
++[	-6.27326773, -0.00037630, 0.00023052, 7.27289143, 0.99885056, 0.99939318, 0.49324827],\
++[	-6.27326783, -0.00037625, 0.00023049, 7.27289159, 0.99885070, 0.99939326, 0.49324820],\
++[	-6.27326794, -0.00037620, 0.00023046, 7.27289174, 0.99885084, 0.99939333, 0.49324832],\
++[	-6.27326805, -0.00037616, 0.00023044, 7.27289190, 0.99885097, 0.99939341, 0.49324834],\
++[	-6.27326816, -0.00037611, 0.00023041, 7.27289205, 0.99885111, 0.99939348, 0.49324841],\
++[	-6.27326827, -0.00037607, 0.00023038, 7.27289221, 0.99885125, 0.99939355, 0.49324834],\
++[	-6.27326838, -0.00037602, 0.00023035, 7.27289236, 0.99885139, 0.99939363, 0.49324834],\
++[	-6.27326849, -0.00037598, 0.00023032, 7.27289252, 0.99885153, 0.99939370, 0.49324836],\
++[	-6.27326860, -0.00037593, 0.00023030, 7.27289267, 0.99885167, 0.99939377, 0.49324838],\
++[	-6.27326871, -0.00037588, 0.00023027, 7.27289283, 0.99885181, 0.99939385, 0.49324843],\
++[	-6.27326882, -0.00037584, 0.00023024, 7.27289298, 0.99885195, 0.99939392, 0.49324818],\
++[	-6.27326893, -0.00037579, 0.00023021, 7.27289314, 0.99885209, 0.99939399, 0.49324852],\
++[	-6.27326904, -0.00037575, 0.00023018, 7.27289329, 0.99885223, 0.99939407, 0.49324850],\
++[	-6.27326915, -0.00037570, 0.00023016, 7.27289345, 0.99885237, 0.99939414, 0.49324851],\
++[	-6.27326926, -0.00037566, 0.00023013, 7.27289360, 0.99885251, 0.99939422, 0.49324838],\
++[	-6.27326937, -0.00037561, 0.00023010, 7.27289375, 0.99885265, 0.99939429, 0.49324847],\
++[	-6.27326947, -0.00037557, 0.00023007, 7.27289391, 0.99885279, 0.99939436, 0.49324849],\
++[	-6.27326958, -0.00037552, 0.00023004, 7.27289406, 0.99885293, 0.99939444, 0.49324851],\
++[	-6.27326969, -0.00037547, 0.00023002, 7.27289422, 0.99885307, 0.99939451, 0.49324844],\
++[	-6.27326980, -0.00037543, 0.00022999, 7.27289437, 0.99885321, 0.99939458, 0.49324862],\
++[	-6.27326991, -0.00037538, 0.00022996, 7.27289453, 0.99885334, 0.99939466, 0.49324845],\
++[	-6.27327002, -0.00037534, 0.00022993, 7.27289468, 0.99885348, 0.99939473, 0.49324866],\
++[	-6.27327013, -0.00037529, 0.00022991, 7.27289484, 0.99885362, 0.99939480, 0.49324850],\
++[	-6.27327024, -0.00037525, 0.00022988, 7.27289499, 0.99885376, 0.99939488, 0.49324874],\
++[	-6.27327035, -0.00037520, 0.00022985, 7.27289514, 0.99885390, 0.99939495, 0.49324863],\
++[	-6.27327045, -0.00037516, 0.00022982, 7.27289530, 0.99885404, 0.99939502, 0.49324861],\
++[	-6.27327056, -0.00037511, 0.00022979, 7.27289545, 0.99885418, 0.99939510, 0.49324863],\
++[	-6.27327067, -0.00037506, 0.00022977, 7.27289561, 0.99885432, 0.99939517, 0.49324878],\
++[	-6.27327078, -0.00037502, 0.00022974, 7.27289576, 0.99885446, 0.99939524, 0.49324852],\
++[	-6.27327089, -0.00037497, 0.00022971, 7.27289592, 0.99885459, 0.99939532, 0.49324868],\
++[	-6.27327100, -0.00037493, 0.00022968, 7.27289607, 0.99885473, 0.99939539, 0.49324870],\
++[	-6.27327111, -0.00037488, 0.00022965, 7.27289622, 0.99885487, 0.99939546, 0.49324867],\
++[	-6.27327122, -0.00037484, 0.00022963, 7.27289638, 0.99885501, 0.99939554, 0.49324861],\
++[	-6.27327132, -0.00037479, 0.00022960, 7.27289653, 0.99885515, 0.99939561, 0.49324879],\
++[	-6.27327143, -0.00037475, 0.00022957, 7.27289669, 0.99885529, 0.99939568, 0.49324878],\
++[	-6.27327154, -0.00037470, 0.00022954, 7.27289684, 0.99885543, 0.99939576, 0.49324873],\
++[	-6.27327165, -0.00037466, 0.00022952, 7.27289699, 0.99885557, 0.99939583, 0.49324877],\
++[	-6.27327176, -0.00037461, 0.00022949, 7.27289715, 0.99885570, 0.99939590, 0.49324893],\
++[	-6.27327187, -0.00037457, 0.00022946, 7.27289730, 0.99885584, 0.99939597, 0.49324876],\
++[	-6.27327198, -0.00037452, 0.00022943, 7.27289746, 0.99885598, 0.99939605, 0.49324876],\
++[	-6.27327208, -0.00037447, 0.00022940, 7.27289761, 0.99885612, 0.99939612, 0.49324883],\
++[	-6.27327219, -0.00037443, 0.00022938, 7.27289776, 0.99885626, 0.99939619, 0.49324897],\
++[	-6.27327230, -0.00037438, 0.00022935, 7.27289792, 0.99885640, 0.99939627, 0.49324903],\
++[	-6.27327241, -0.00037434, 0.00022932, 7.27289807, 0.99885653, 0.99939634, 0.49324897],\
++[	-6.27327252, -0.00037429, 0.00022929, 7.27289822, 0.99885667, 0.99939641, 0.49324915],\
++[	-6.27327263, -0.00037425, 0.00022927, 7.27289838, 0.99885681, 0.99939649, 0.49324899],\
++[	-6.27327273, -0.00037420, 0.00022924, 7.27289853, 0.99885695, 0.99939656, 0.49324895],\
++[	-6.27327284, -0.00037416, 0.00022921, 7.27289869, 0.99885709, 0.99939663, 0.49324901],\
++[	-6.27327295, -0.00037411, 0.00022918, 7.27289884, 0.99885723, 0.99939671, 0.49324899],\
++[	-6.27327306, -0.00037407, 0.00022915, 7.27289899, 0.99885736, 0.99939678, 0.49324910],\
++[	-6.27327317, -0.00037402, 0.00022913, 7.27289915, 0.99885750, 0.99939685, 0.49324893],\
++[	-6.27327328, -0.00037398, 0.00022910, 7.27289930, 0.99885764, 0.99939692, 0.49324897],\
++[	-6.27327338, -0.00037393, 0.00022907, 7.27289945, 0.99885778, 0.99939700, 0.49324903],\
++[	-6.27327349, -0.00037389, 0.00022904, 7.27289961, 0.99885792, 0.99939707, 0.49324907],\
++[	-6.27327360, -0.00037384, 0.00022902, 7.27289976, 0.99885805, 0.99939714, 0.49324912],\
++[	-6.27327371, -0.00037380, 0.00022899, 7.27289991, 0.99885819, 0.99939722, 0.49324911],\
++[	-6.27327382, -0.00037375, 0.00022896, 7.27290007, 0.99885833, 0.99939729, 0.49324918],\
++[	-6.27327392, -0.00037371, 0.00022893, 7.27290022, 0.99885847, 0.99939736, 0.49324911],\
++[	-6.27327403, -0.00037366, 0.00022891, 7.27290037, 0.99885861, 0.99939743, 0.49324922],\
++[	-6.27327414, -0.00037362, 0.00022888, 7.27290052, 0.99885874, 0.99939751, 0.49324912],\
++[	-6.27327425, -0.00037357, 0.00022885, 7.27290068, 0.99885888, 0.99939758, 0.49324914],\
++[	-6.27327436, -0.00037353, 0.00022882, 7.27290083, 0.99885902, 0.99939765, 0.49324919],\
++[	-6.27327446, -0.00037348, 0.00022880, 7.27290098, 0.99885916, 0.99939772, 0.49324915],\
++[	-6.27327457, -0.00037344, 0.00022877, 7.27290114, 0.99885929, 0.99939780, 0.49324920],\
++[	-6.27327468, -0.00037339, 0.00022874, 7.27290129, 0.99885943, 0.99939787, 0.49324914],\
++[	-6.27327479, -0.00037335, 0.00022871, 7.27290144, 0.99885957, 0.99939794, 0.49324927],\
++[	-6.27327490, -0.00037330, 0.00022868, 7.27290160, 0.99885971, 0.99939801, 0.49324924],\
++[	-6.27327500, -0.00037326, 0.00022866, 7.27290175, 0.99885984, 0.99939809, 0.49324926],\
++[	-6.27327511, -0.00037321, 0.00022863, 7.27290190, 0.99885998, 0.99939816, 0.49324920],\
++[	-6.27327522, -0.00037317, 0.00022860, 7.27290205, 0.99886012, 0.99939823, 0.49324932],\
++[	-6.27327533, -0.00037312, 0.00022857, 7.27290221, 0.99886026, 0.99939831, 0.49324939],\
++[	-6.27327543, -0.00037308, 0.00022855, 7.27290236, 0.99886039, 0.99939838, 0.49324946],\
++[	-6.27327554, -0.00037303, 0.00022852, 7.27290251, 0.99886053, 0.99939845, 0.49324935],\
++[	-6.27327565, -0.00037299, 0.00022849, 7.27290266, 0.99886067, 0.99939852, 0.49324930],\
++[	-6.27327576, -0.00037294, 0.00022846, 7.27290282, 0.99886081, 0.99939860, 0.49324950],\
++[	-6.27327586, -0.00037290, 0.00022844, 7.27290297, 0.99886094, 0.99939867, 0.49324938],\
++[	-6.27327597, -0.00037285, 0.00022841, 7.27290312, 0.99886108, 0.99939874, 0.49324942],\
++[	-6.27327608, -0.00037281, 0.00022838, 7.27290327, 0.99886122, 0.99939881, 0.49324944],\
++[	-6.27327619, -0.00037276, 0.00022835, 7.27290343, 0.99886136, 0.99939888, 0.49324942],\
++[	-6.27327629, -0.00037272, 0.00022833, 7.27290358, 0.99886149, 0.99939896, 0.49324940],\
++[	-6.27327640, -0.00037267, 0.00022830, 7.27290373, 0.99886163, 0.99939903, 0.49324954],\
++[	-6.27327651, -0.00037263, 0.00022827, 7.27290388, 0.99886177, 0.99939910, 0.49324936],\
++[	-6.27327662, -0.00037258, 0.00022824, 7.27290404, 0.99886190, 0.99939917, 0.49324945],\
++[	-6.27327672, -0.00037254, 0.00022822, 7.27290419, 0.99886204, 0.99939925, 0.49324953],\
++[	-6.27327683, -0.00037249, 0.00022819, 7.27290434, 0.99886218, 0.99939932, 0.49324957],\
++[	-6.27327694, -0.00037245, 0.00022816, 7.27290449, 0.99886231, 0.99939939, 0.49324952],\
++[	-6.27327705, -0.00037240, 0.00022813, 7.27290464, 0.99886245, 0.99939946, 0.49324959],\
++[	-6.27327715, -0.00037236, 0.00022811, 7.27290480, 0.99886259, 0.99939954, 0.49324957],\
++[	-6.27327726, -0.00037231, 0.00022808, 7.27290495, 0.99886273, 0.99939961, 0.49324964],\
++[	-6.27327737, -0.00037227, 0.00022805, 7.27290510, 0.99886286, 0.99939968, 0.49324963],\
++[	-6.27327747, -0.00037222, 0.00022802, 7.27290525, 0.99886300, 0.99939975, 0.49324974],\
++[	-6.27327758, -0.00037218, 0.00022800, 7.27290540, 0.99886314, 0.99939982, 0.49324966],\
++[	-6.27327769, -0.00037213, 0.00022797, 7.27290556, 0.99886327, 0.99939990, 0.49324952],\
++[	-6.27327780, -0.00037209, 0.00022794, 7.27290571, 0.99886341, 0.99939997, 0.49324969],\
++[	-6.27327790, -0.00037204, 0.00022791, 7.27290586, 0.99886355, 0.99940004, 0.49324970],\
++[	-6.27327801, -0.00037200, 0.00022789, 7.27290601, 0.99886368, 0.99940011, 0.49324976],\
++[	-6.27327812, -0.00037195, 0.00022786, 7.27290616, 0.99886382, 0.99940019, 0.49324984],\
++[	-6.27327822, -0.00037191, 0.00022783, 7.27290631, 0.99886396, 0.99940026, 0.49324963],\
++[	-6.27327833, -0.00037187, 0.00022781, 7.27290647, 0.99886409, 0.99940033, 0.49324968],\
++[	-6.27327844, -0.00037182, 0.00022778, 7.27290662, 0.99886423, 0.99940040, 0.49324978],\
++[	-6.27327855, -0.00037178, 0.00022775, 7.27290677, 0.99886436, 0.99940047, 0.49324985],\
++[	-6.27327865, -0.00037173, 0.00022772, 7.27290692, 0.99886450, 0.99940055, 0.49325000],\
++[	-6.27327876, -0.00037169, 0.00022770, 7.27290707, 0.99886464, 0.99940062, 0.49324984],\
++[	-6.27327887, -0.00037164, 0.00022767, 7.27290722, 0.99886477, 0.99940069, 0.49324982],\
++[	-6.27327897, -0.00037160, 0.00022764, 7.27290737, 0.99886491, 0.99940076, 0.49324988],\
++[	-6.27327908, -0.00037155, 0.00022761, 7.27290753, 0.99886505, 0.99940083, 0.49325015],\
++[	-6.27327919, -0.00037151, 0.00022759, 7.27290768, 0.99886518, 0.99940091, 0.49324977],\
++[	-6.27327929, -0.00037146, 0.00022756, 7.27290783, 0.99886532, 0.99940098, 0.49324993],\
++[	-6.27327940, -0.00037142, 0.00022753, 7.27290798, 0.99886546, 0.99940105, 0.49325002],\
++[	-6.27327951, -0.00037137, 0.00022750, 7.27290813, 0.99886559, 0.99940112, 0.49324999],\
++[	-6.27327961, -0.00037133, 0.00022748, 7.27290828, 0.99886573, 0.99940119, 0.49325000],\
++[	-6.27327972, -0.00037129, 0.00022745, 7.27290843, 0.99886586, 0.99940126, 0.49325006],\
++[	-6.27327983, -0.00037124, 0.00022742, 7.27290858, 0.99886600, 0.99940134, 0.49324994],\
++[	-6.27327993, -0.00037120, 0.00022740, 7.27290874, 0.99886614, 0.99940141, 0.49324986],\
++[	-6.27328004, -0.00037115, 0.00022737, 7.27290889, 0.99886627, 0.99940148, 0.49325009],\
++[	-6.27328015, -0.00037111, 0.00022734, 7.27290904, 0.99886641, 0.99940155, 0.49325012],\
++[	-6.27328025, -0.00037106, 0.00022731, 7.27290919, 0.99886654, 0.99940162, 0.49325015],\
++[	-6.27328036, -0.00037102, 0.00022729, 7.27290934, 0.99886668, 0.99940170, 0.49325010],\
++[	-6.27328047, -0.00037097, 0.00022726, 7.27290949, 0.99886682, 0.99940177, 0.49325020],\
++[	-6.27328057, -0.00037093, 0.00022723, 7.27290964, 0.99886695, 0.99940184, 0.49325004],\
++[	-6.27328068, -0.00037089, 0.00022720, 7.27290979, 0.99886709, 0.99940191, 0.49325014],\
++[	-6.27328078, -0.00037084, 0.00022718, 7.27290994, 0.99886722, 0.99940198, 0.49325025],\
++[	-6.27328089, -0.00037080, 0.00022715, 7.27291009, 0.99886736, 0.99940205, 0.49325008],\
++[	-6.27328100, -0.00037075, 0.00022712, 7.27291024, 0.99886749, 0.99940213, 0.49325032],\
++[	-6.27328110, -0.00037071, 0.00022710, 7.27291040, 0.99886763, 0.99940220, 0.49325016],\
++[	-6.27328121, -0.00037066, 0.00022707, 7.27291055, 0.99886777, 0.99940227, 0.49325010],\
++[	-6.27328132, -0.00037062, 0.00022704, 7.27291070, 0.99886790, 0.99940234, 0.49325006],\
++[	-6.27328142, -0.00037057, 0.00022701, 7.27291085, 0.99886804, 0.99940241, 0.49325022],\
++[	-6.27328153, -0.00037053, 0.00022699, 7.27291100, 0.99886817, 0.99940248, 0.49325031],\
++[	-6.27328163, -0.00037049, 0.00022696, 7.27291115, 0.99886831, 0.99940255, 0.49325037],\
++[	-6.27328174, -0.00037044, 0.00022693, 7.27291130, 0.99886844, 0.99940263, 0.49325027],\
++[	-6.27328185, -0.00037040, 0.00022691, 7.27291145, 0.99886858, 0.99940270, 0.49325034],\
++[	-6.27328195, -0.00037035, 0.00022688, 7.27291160, 0.99886871, 0.99940277, 0.49325020],\
++[	-6.27328206, -0.00037031, 0.00022685, 7.27291175, 0.99886885, 0.99940284, 0.49325035],\
++[	-6.27328217, -0.00037026, 0.00022682, 7.27291190, 0.99886898, 0.99940291, 0.49325022],\
++[	-6.27328227, -0.00037022, 0.00022680, 7.27291205, 0.99886912, 0.99940298, 0.49325038],\
++[	-6.27328238, -0.00037018, 0.00022677, 7.27291220, 0.99886926, 0.99940305, 0.49325045],\
++[	-6.27328248, -0.00037013, 0.00022674, 7.27291235, 0.99886939, 0.99940313, 0.49325055],\
++[	-6.27328259, -0.00037009, 0.00022672, 7.27291250, 0.99886953, 0.99940320, 0.49325042],\
++[	-6.27328269, -0.00037004, 0.00022669, 7.27291265, 0.99886966, 0.99940327, 0.49325036],\
++[	-6.27328280, -0.00037000, 0.00022666, 7.27291280, 0.99886980, 0.99940334, 0.49325057],\
++[	-6.27328291, -0.00036995, 0.00022663, 7.27291295, 0.99886993, 0.99940341, 0.49325047],\
++[	-6.27328301, -0.00036991, 0.00022661, 7.27291310, 0.99887007, 0.99940348, 0.49325050],\
++[	-6.27328312, -0.00036987, 0.00022658, 7.27291325, 0.99887020, 0.99940355, 0.49325044],\
++[	-6.27328322, -0.00036982, 0.00022655, 7.27291340, 0.99887034, 0.99940363, 0.49325060],\
++[	-6.27328333, -0.00036978, 0.00022653, 7.27291355, 0.99887047, 0.99940370, 0.49325046],\
++[	-6.27328344, -0.00036973, 0.00022650, 7.27291370, 0.99887061, 0.99940377, 0.49325049],\
++[	-6.27328354, -0.00036969, 0.00022647, 7.27291385, 0.99887074, 0.99940384, 0.49325054],\
++[	-6.27328365, -0.00036965, 0.00022644, 7.27291400, 0.99887088, 0.99940391, 0.49325051],\
++[	-6.27328375, -0.00036960, 0.00022642, 7.27291415, 0.99887101, 0.99940398, 0.49325068],\
++[	-6.27328386, -0.00036956, 0.00022639, 7.27291430, 0.99887115, 0.99940405, 0.49325059],\
++[	-6.27328396, -0.00036951, 0.00022636, 7.27291445, 0.99887128, 0.99940412, 0.49325082],\
++[	-6.27328407, -0.00036947, 0.00022634, 7.27291460, 0.99887142, 0.99940419, 0.49325077],\
++[	-6.27328418, -0.00036942, 0.00022631, 7.27291475, 0.99887155, 0.99940427, 0.49325076],\
++[	-6.27328428, -0.00036938, 0.00022628, 7.27291490, 0.99887168, 0.99940434, 0.49325073],\
++[	-6.27328439, -0.00036934, 0.00022626, 7.27291505, 0.99887182, 0.99940441, 0.49325073],\
++[	-6.27328449, -0.00036929, 0.00022623, 7.27291520, 0.99887195, 0.99940448, 0.49325059],\
++[	-6.27328460, -0.00036925, 0.00022620, 7.27291535, 0.99887209, 0.99940455, 0.49325071],\
++[	-6.27328470, -0.00036920, 0.00022617, 7.27291550, 0.99887222, 0.99940462, 0.49325075],\
++[	-6.27328481, -0.00036916, 0.00022615, 7.27291565, 0.99887236, 0.99940469, 0.49325074],\
++[	-6.27328491, -0.00036912, 0.00022612, 7.27291580, 0.99887249, 0.99940476, 0.49325076],\
++[	-6.27328502, -0.00036907, 0.00022609, 7.27291595, 0.99887263, 0.99940483, 0.49325069],\
++[	-6.27328512, -0.00036903, 0.00022607, 7.27291610, 0.99887276, 0.99940491, 0.49325089],\
++[	-6.27328523, -0.00036898, 0.00022604, 7.27291624, 0.99887290, 0.99940498, 0.49325087],\
++[	-6.27328533, -0.00036894, 0.00022601, 7.27291639, 0.99887303, 0.99940505, 0.49325089],\
++[	-6.27328544, -0.00036890, 0.00022599, 7.27291654, 0.99887316, 0.99940512, 0.49325087],\
++[	-6.27328555, -0.00036885, 0.00022596, 7.27291669, 0.99887330, 0.99940519, 0.49325085],\
++[	-6.27328565, -0.00036881, 0.00022593, 7.27291684, 0.99887343, 0.99940526, 0.49325080],\
++[	-6.27328576, -0.00036876, 0.00022590, 7.27291699, 0.99887357, 0.99940533, 0.49325071],\
++[	-6.27328586, -0.00036872, 0.00022588, 7.27291714, 0.99887370, 0.99940540, 0.49325095],\
++[	-6.27328597, -0.00036868, 0.00022585, 7.27291729, 0.99887384, 0.99940547, 0.49325080],\
++[	-6.27328607, -0.00036863, 0.00022582, 7.27291744, 0.99887397, 0.99940554, 0.49325088],\
++[	-6.27328618, -0.00036859, 0.00022580, 7.27291759, 0.99887410, 0.99940561, 0.49325100],\
++[	-6.27328628, -0.00036855, 0.00022577, 7.27291774, 0.99887424, 0.99940568, 0.49325106],\
++[	-6.27328639, -0.00036850, 0.00022574, 7.27291789, 0.99887437, 0.99940576, 0.49325085],\
++[	-6.27328649, -0.00036846, 0.00022572, 7.27291803, 0.99887451, 0.99940583, 0.49325087],\
++[	-6.27328660, -0.00036841, 0.00022569, 7.27291818, 0.99887464, 0.99940590, 0.49325084],\
++[	-6.27328670, -0.00036837, 0.00022566, 7.27291833, 0.99887477, 0.99940597, 0.49325118],\
++[	-6.27328681, -0.00036833, 0.00022564, 7.27291848, 0.99887491, 0.99940604, 0.49325112],\
++[	-6.27328691, -0.00036828, 0.00022561, 7.27291863, 0.99887504, 0.99940611, 0.49325104],\
++[	-6.27328702, -0.00036824, 0.00022558, 7.27291878, 0.99887518, 0.99940618, 0.49325104],\
++[	-6.27328712, -0.00036819, 0.00022556, 7.27291893, 0.99887531, 0.99940625, 0.49325116],\
++[	-6.27328723, -0.00036815, 0.00022553, 7.27291907, 0.99887544, 0.99940632, 0.49325111],\
++[	-6.27328733, -0.00036811, 0.00022550, 7.27291922, 0.99887558, 0.99940639, 0.49325116],\
++[	-6.27328744, -0.00036806, 0.00022547, 7.27291937, 0.99887571, 0.99940646, 0.49325108],\
++[	-6.27328754, -0.00036802, 0.00022545, 7.27291952, 0.99887584, 0.99940653, 0.49325111],\
++[	-6.27328764, -0.00036798, 0.00022542, 7.27291967, 0.99887598, 0.99940660, 0.49325113],\
++[	-6.27328775, -0.00036793, 0.00022539, 7.27291982, 0.99887611, 0.99940667, 0.49325130],\
++[	-6.27328785, -0.00036789, 0.00022537, 7.27291997, 0.99887625, 0.99940674, 0.49325114],\
++[	-6.27328796, -0.00036784, 0.00022534, 7.27292011, 0.99887638, 0.99940681, 0.49325125],\
++[	-6.27328806, -0.00036780, 0.00022531, 7.27292026, 0.99887651, 0.99940689, 0.49325120],\
++[	-6.27328817, -0.00036776, 0.00022529, 7.27292041, 0.99887665, 0.99940696, 0.49325118],\
++[	-6.27328827, -0.00036771, 0.00022526, 7.27292056, 0.99887678, 0.99940703, 0.49325120],\
++[	-6.27328838, -0.00036767, 0.00022523, 7.27292071, 0.99887691, 0.99940710, 0.49325135],\
++[	-6.27328848, -0.00036763, 0.00022521, 7.27292086, 0.99887705, 0.99940717, 0.49325134],\
++[	-6.27328859, -0.00036758, 0.00022518, 7.27292100, 0.99887718, 0.99940724, 0.49325139],\
++[	-6.27328869, -0.00036754, 0.00022515, 7.27292115, 0.99887731, 0.99940731, 0.49325135],\
++[	-6.27328880, -0.00036749, 0.00022513, 7.27292130, 0.99887745, 0.99940738, 0.49325126],\
++[	-6.27328890, -0.00036745, 0.00022510, 7.27292145, 0.99887758, 0.99940745, 0.49325131],\
++[	-6.27328900, -0.00036741, 0.00022507, 7.27292160, 0.99887771, 0.99940752, 0.49325136],\
++[	-6.27328911, -0.00036736, 0.00022505, 7.27292174, 0.99887785, 0.99940759, 0.49325152],\
++[	-6.27328921, -0.00036732, 0.00022502, 7.27292189, 0.99887798, 0.99940766, 0.49325159],\
++[	-6.27328932, -0.00036728, 0.00022499, 7.27292204, 0.99887811, 0.99940773, 0.49325140],\
++[	-6.27328942, -0.00036723, 0.00022497, 7.27292219, 0.99887825, 0.99940780, 0.49325141],\
++[	-6.27328953, -0.00036719, 0.00022494, 7.27292234, 0.99887838, 0.99940787, 0.49325131],\
++[	-6.27328963, -0.00036715, 0.00022491, 7.27292248, 0.99887851, 0.99940794, 0.49325145],\
++[	-6.27328973, -0.00036710, 0.00022489, 7.27292263, 0.99887864, 0.99940801, 0.49325145],\
++[	-6.27328984, -0.00036706, 0.00022486, 7.27292278, 0.99887878, 0.99940808, 0.49325157],\
++[	-6.27328994, -0.00036702, 0.00022483, 7.27292293, 0.99887891, 0.99940815, 0.49325149],\
++[	-6.27329005, -0.00036697, 0.00022481, 7.27292307, 0.99887904, 0.99940822, 0.49325164],\
++[	-6.27329015, -0.00036693, 0.00022478, 7.27292322, 0.99887918, 0.99940829, 0.49325155],\
++[	-6.27329025, -0.00036689, 0.00022475, 7.27292337, 0.99887931, 0.99940836, 0.49325164],\
++[	-6.27329036, -0.00036684, 0.00022473, 7.27292352, 0.99887944, 0.99940843, 0.49325151],\
++[	-6.27329046, -0.00036680, 0.00022470, 7.27292366, 0.99887958, 0.99940850, 0.49325168],\
++[	-6.27329057, -0.00036675, 0.00022467, 7.27292381, 0.99887971, 0.99940857, 0.49325138],\
++[	-6.27329067, -0.00036671, 0.00022465, 7.27292396, 0.99887984, 0.99940864, 0.49325171],\
++[	-6.27329078, -0.00036667, 0.00022462, 7.27292411, 0.99887997, 0.99940871, 0.49325159],\
++[	-6.27329088, -0.00036662, 0.00022459, 7.27292425, 0.99888011, 0.99940878, 0.49325160],\
++[	-6.27329098, -0.00036658, 0.00022457, 7.27292440, 0.99888024, 0.99940885, 0.49325177],\
++[	-6.27329109, -0.00036654, 0.00022454, 7.27292455, 0.99888037, 0.99940892, 0.49325177],\
++[	-6.27329119, -0.00036649, 0.00022451, 7.27292470, 0.99888050, 0.99940899, 0.49325164],\
++[	-6.27329129, -0.00036645, 0.00022449, 7.27292484, 0.99888064, 0.99940906, 0.49325172],\
++[	-6.27329140, -0.00036641, 0.00022446, 7.27292499, 0.99888077, 0.99940913, 0.49325179],\
++[	-6.27329150, -0.00036636, 0.00022443, 7.27292514, 0.99888090, 0.99940920, 0.49325181],\
++[	-6.27329161, -0.00036632, 0.00022441, 7.27292529, 0.99888103, 0.99940927, 0.49325178],\
++[	-6.27329171, -0.00036628, 0.00022438, 7.27292543, 0.99888117, 0.99940934, 0.49325178],\
++[	-6.27329181, -0.00036623, 0.00022435, 7.27292558, 0.99888130, 0.99940941, 0.49325183],\
++[	-6.27329192, -0.00036619, 0.00022433, 7.27292573, 0.99888143, 0.99940948, 0.49325179],\
++[	-6.27329202, -0.00036615, 0.00022430, 7.27292587, 0.99888156, 0.99940955, 0.49325183],\
++[	-6.27329212, -0.00036610, 0.00022427, 7.27292602, 0.99888170, 0.99940962, 0.49325178],\
++[	-6.27329223, -0.00036606, 0.00022425, 7.27292617, 0.99888183, 0.99940969, 0.49325167],\
++[	-6.27329233, -0.00036602, 0.00022422, 7.27292631, 0.99888196, 0.99940976, 0.49325180],\
++[	-6.27329244, -0.00036597, 0.00022419, 7.27292646, 0.99888209, 0.99940983, 0.49325201],\
++[	-6.27329254, -0.00036593, 0.00022417, 7.27292661, 0.99888222, 0.99940990, 0.49325190],\
++[	-6.27329264, -0.00036589, 0.00022414, 7.27292675, 0.99888236, 0.99940997, 0.49325201],\
++[	-6.27329275, -0.00036584, 0.00022412, 7.27292690, 0.99888249, 0.99941004, 0.49325203],\
++[	-6.27329285, -0.00036580, 0.00022409, 7.27292705, 0.99888262, 0.99941011, 0.49325195],\
++[	-6.27329295, -0.00036576, 0.00022406, 7.27292720, 0.99888275, 0.99941018, 0.49325194],\
++[	-6.27329306, -0.00036571, 0.00022404, 7.27292734, 0.99888289, 0.99941025, 0.49325187],\
++[	-6.27329316, -0.00036567, 0.00022401, 7.27292749, 0.99888302, 0.99941032, 0.49325203],\
++[	-6.27329326, -0.00036563, 0.00022398, 7.27292764, 0.99888315, 0.99941039, 0.49325193],\
++[	-6.27329337, -0.00036559, 0.00022396, 7.27292778, 0.99888328, 0.99941046, 0.49325192],\
++[	-6.27329347, -0.00036554, 0.00022393, 7.27292793, 0.99888341, 0.99941053, 0.49325212],\
++[	-6.27329357, -0.00036550, 0.00022390, 7.27292807, 0.99888355, 0.99941060, 0.49325192],\
++[	-6.27329368, -0.00036546, 0.00022388, 7.27292822, 0.99888368, 0.99941067, 0.49325204],\
++[	-6.27329378, -0.00036541, 0.00022385, 7.27292837, 0.99888381, 0.99941074, 0.49325210],\
++[	-6.27329388, -0.00036537, 0.00022382, 7.27292851, 0.99888394, 0.99941081, 0.49325200],\
++[	-6.27329399, -0.00036533, 0.00022380, 7.27292866, 0.99888407, 0.99941088, 0.49325216],\
++[	-6.27329409, -0.00036528, 0.00022377, 7.27292881, 0.99888420, 0.99941095, 0.49325212],\
++[	-6.27329419, -0.00036524, 0.00022374, 7.27292895, 0.99888434, 0.99941102, 0.49325214],\
++[	-6.27329430, -0.00036520, 0.00022372, 7.27292910, 0.99888447, 0.99941108, 0.49325208],\
++[	-6.27329440, -0.00036515, 0.00022369, 7.27292925, 0.99888460, 0.99941115, 0.49325230],\
++[	-6.27329450, -0.00036511, 0.00022367, 7.27292939, 0.99888473, 0.99941122, 0.49325225],\
++[	-6.27329461, -0.00036507, 0.00022364, 7.27292954, 0.99888486, 0.99941129, 0.49325212],\
++[	-6.27329471, -0.00036502, 0.00022361, 7.27292968, 0.99888499, 0.99941136, 0.49325221],\
++[	-6.27329481, -0.00036498, 0.00022359, 7.27292983, 0.99888513, 0.99941143, 0.49325215],\
++[	-6.27329491, -0.00036494, 0.00022356, 7.27292998, 0.99888526, 0.99941150, 0.49325228],\
++[	-6.27329502, -0.00036490, 0.00022353, 7.27293012, 0.99888539, 0.99941157, 0.49325236],\
++[	-6.27329512, -0.00036485, 0.00022351, 7.27293027, 0.99888552, 0.99941164, 0.49325238],\
++[	-6.27329522, -0.00036481, 0.00022348, 7.27293041, 0.99888565, 0.99941171, 0.49325230],\
++[	-6.27329533, -0.00036477, 0.00022345, 7.27293056, 0.99888578, 0.99941178, 0.49325233],\
++[	-6.27329543, -0.00036472, 0.00022343, 7.27293071, 0.99888591, 0.99941185, 0.49325243],\
++[	-6.27329553, -0.00036468, 0.00022340, 7.27293085, 0.99888605, 0.99941192, 0.49325248],\
++[	-6.27329564, -0.00036464, 0.00022338, 7.27293100, 0.99888618, 0.99941199, 0.49325226],\
++[	-6.27329574, -0.00036460, 0.00022335, 7.27293114, 0.99888631, 0.99941206, 0.49325247],\
++[	-6.27329584, -0.00036455, 0.00022332, 7.27293129, 0.99888644, 0.99941213, 0.49325235],\
++[	-6.27329594, -0.00036451, 0.00022330, 7.27293143, 0.99888657, 0.99941219, 0.49325238],\
++[	-6.27329605, -0.00036447, 0.00022327, 7.27293158, 0.99888670, 0.99941226, 0.49325236],\
++[	-6.27329615, -0.00036442, 0.00022324, 7.27293173, 0.99888683, 0.99941233, 0.49325251],\
++[	-6.27329625, -0.00036438, 0.00022322, 7.27293187, 0.99888696, 0.99941240, 0.49325244],\
++[	-6.27329635, -0.00036434, 0.00022319, 7.27293202, 0.99888709, 0.99941247, 0.49325243],\
++[	-6.27329646, -0.00036429, 0.00022317, 7.27293216, 0.99888723, 0.99941254, 0.49325235],\
++[	-6.27329656, -0.00036425, 0.00022314, 7.27293231, 0.99888736, 0.99941261, 0.49325265],\
++[	-6.27329666, -0.00036421, 0.00022311, 7.27293245, 0.99888749, 0.99941268, 0.49325266],\
++[	-6.27329677, -0.00036417, 0.00022309, 7.27293260, 0.99888762, 0.99941275, 0.49325241],\
++[	-6.27329687, -0.00036412, 0.00022306, 7.27293274, 0.99888775, 0.99941282, 0.49325251],\
++[	-6.27329697, -0.00036408, 0.00022303, 7.27293289, 0.99888788, 0.99941289, 0.49325244],\
++[	-6.27329707, -0.00036404, 0.00022301, 7.27293304, 0.99888801, 0.99941295, 0.49325256],\
++[	-6.27329718, -0.00036399, 0.00022298, 7.27293318, 0.99888814, 0.99941302, 0.49325261],\
++[	-6.27329728, -0.00036395, 0.00022296, 7.27293333, 0.99888827, 0.99941309, 0.49325262],\
++[	-6.27329738, -0.00036391, 0.00022293, 7.27293347, 0.99888840, 0.99941316, 0.49325272],\
++[	-6.27329748, -0.00036387, 0.00022290, 7.27293362, 0.99888853, 0.99941323, 0.49325264],\
++[	-6.27329758, -0.00036382, 0.00022288, 7.27293376, 0.99888866, 0.99941330, 0.49325271],\
++[	-6.27329769, -0.00036378, 0.00022285, 7.27293391, 0.99888879, 0.99941337, 0.49325250],\
++[	-6.27329779, -0.00036374, 0.00022282, 7.27293405, 0.99888893, 0.99941344, 0.49325276],\
++[	-6.27329789, -0.00036370, 0.00022280, 7.27293420, 0.99888906, 0.99941351, 0.49325279],\
++[	-6.27329799, -0.00036365, 0.00022277, 7.27293434, 0.99888919, 0.99941358, 0.49325256],\
++[	-6.27329810, -0.00036361, 0.00022275, 7.27293449, 0.99888932, 0.99941364, 0.49325269],\
++[	-6.27329820, -0.00036357, 0.00022272, 7.27293463, 0.99888945, 0.99941371, 0.49325274],\
++[	-6.27329830, -0.00036352, 0.00022269, 7.27293478, 0.99888958, 0.99941378, 0.49325276],\
++[	-6.27329840, -0.00036348, 0.00022267, 7.27293492, 0.99888971, 0.99941385, 0.49325275],\
++[	-6.27329851, -0.00036344, 0.00022264, 7.27293507, 0.99888984, 0.99941392, 0.49325266],\
++[	-6.27329861, -0.00036340, 0.00022261, 7.27293521, 0.99888997, 0.99941399, 0.49325274],\
++[	-6.27329871, -0.00036335, 0.00022259, 7.27293536, 0.99889010, 0.99941406, 0.49325275],\
++[	-6.27329881, -0.00036331, 0.00022256, 7.27293550, 0.99889023, 0.99941413, 0.49325279],\
++[	-6.27329891, -0.00036327, 0.00022254, 7.27293565, 0.99889036, 0.99941420, 0.49325277],\
++[	-6.27329902, -0.00036323, 0.00022251, 7.27293579, 0.99889049, 0.99941426, 0.49325299],\
++[	-6.27329912, -0.00036318, 0.00022248, 7.27293593, 0.99889062, 0.99941433, 0.49325298],\
++[	-6.27329922, -0.00036314, 0.00022246, 7.27293608, 0.99889075, 0.99941440, 0.49325274],\
++[	-6.27329932, -0.00036310, 0.00022243, 7.27293622, 0.99889088, 0.99941447, 0.49325294],\
++[	-6.27329942, -0.00036306, 0.00022241, 7.27293637, 0.99889101, 0.99941454, 0.49325297],\
++[	-6.27329953, -0.00036301, 0.00022238, 7.27293651, 0.99889114, 0.99941461, 0.49325278],\
++[	-6.27329963, -0.00036297, 0.00022235, 7.27293666, 0.99889127, 0.99941468, 0.49325281],\
++[	-6.27329973, -0.00036293, 0.00022233, 7.27293680, 0.99889140, 0.99941474, 0.49325304],\
++[	-6.27329983, -0.00036289, 0.00022230, 7.27293695, 0.99889153, 0.99941481, 0.49325295],\
++[	-6.27329993, -0.00036284, 0.00022228, 7.27293709, 0.99889166, 0.99941488, 0.49325311],\
++[	-6.27330004, -0.00036280, 0.00022225, 7.27293723, 0.99889179, 0.99941495, 0.49325291],\
++[	-6.27330014, -0.00036276, 0.00022222, 7.27293738, 0.99889192, 0.99941502, 0.49325317],\
++[	-6.27330024, -0.00036272, 0.00022220, 7.27293752, 0.99889205, 0.99941509, 0.49325298],\
++[	-6.27330034, -0.00036267, 0.00022217, 7.27293767, 0.99889218, 0.99941516, 0.49325316],\
++[	-6.27330044, -0.00036263, 0.00022215, 7.27293781, 0.99889231, 0.99941522, 0.49325310],\
++[	-6.27330054, -0.00036259, 0.00022212, 7.27293796, 0.99889244, 0.99941529, 0.49325314],\
++[	-6.27330065, -0.00036255, 0.00022209, 7.27293810, 0.99889257, 0.99941536, 0.49325310],\
++[	-6.27330075, -0.00036250, 0.00022207, 7.27293824, 0.99889270, 0.99941543, 0.49325300],\
++[	-6.27330085, -0.00036246, 0.00022204, 7.27293839, 0.99889283, 0.99941550, 0.49325323],\
++[	-6.27330095, -0.00036242, 0.00022202, 7.27293853, 0.99889296, 0.99941557, 0.49325313],\
++[	-6.27330105, -0.00036238, 0.00022199, 7.27293868, 0.99889309, 0.99941564, 0.49325318],\
++[	-6.27330115, -0.00036233, 0.00022196, 7.27293882, 0.99889322, 0.99941570, 0.49325325],\
++[	-6.27330126, -0.00036229, 0.00022194, 7.27293896, 0.99889335, 0.99941577, 0.49325315],\
++[	-6.27330136, -0.00036225, 0.00022191, 7.27293911, 0.99889348, 0.99941584, 0.49325312],\
++[	-6.27330146, -0.00036221, 0.00022189, 7.27293925, 0.99889361, 0.99941591, 0.49325327],\
++[	-6.27330156, -0.00036216, 0.00022186, 7.27293940, 0.99889374, 0.99941598, 0.49325334],\
++[	-6.27330166, -0.00036212, 0.00022183, 7.27293954, 0.99889387, 0.99941605, 0.49325318],\
++[	-6.27330176, -0.00036208, 0.00022181, 7.27293968, 0.99889400, 0.99941611, 0.49325339],\
++[	-6.27330186, -0.00036204, 0.00022178, 7.27293983, 0.99889412, 0.99941618, 0.49325320],\
++[	-6.27330197, -0.00036199, 0.00022176, 7.27293997, 0.99889425, 0.99941625, 0.49325327],\
++[	-6.27330207, -0.00036195, 0.00022173, 7.27294011, 0.99889438, 0.99941632, 0.49325329],\
++[	-6.27330217, -0.00036191, 0.00022170, 7.27294026, 0.99889451, 0.99941639, 0.49325333],\
++[	-6.27330227, -0.00036187, 0.00022168, 7.27294040, 0.99889464, 0.99941646, 0.49325330],\
++[	-6.27330237, -0.00036182, 0.00022165, 7.27294055, 0.99889477, 0.99941652, 0.49325321],\
++[	-6.27330247, -0.00036178, 0.00022163, 7.27294069, 0.99889490, 0.99941659, 0.49325343],\
++[	-6.27330257, -0.00036174, 0.00022160, 7.27294083, 0.99889503, 0.99941666, 0.49325334],\
++[	-6.27330267, -0.00036170, 0.00022157, 7.27294098, 0.99889516, 0.99941673, 0.49325333],\
++[	-6.27330278, -0.00036166, 0.00022155, 7.27294112, 0.99889529, 0.99941680, 0.49325328],\
++[	-6.27330288, -0.00036161, 0.00022152, 7.27294126, 0.99889542, 0.99941686, 0.49325344],\
++[	-6.27330298, -0.00036157, 0.00022150, 7.27294141, 0.99889555, 0.99941693, 0.49325340],\
++[	-6.27330308, -0.00036153, 0.00022147, 7.27294155, 0.99889568, 0.99941700, 0.49325337],\
++[	-6.27330318, -0.00036149, 0.00022144, 7.27294169, 0.99889580, 0.99941707, 0.49325346],\
++[	-6.27330328, -0.00036144, 0.00022142, 7.27294184, 0.99889593, 0.99941714, 0.49325350],\
++[	-6.27330338, -0.00036140, 0.00022139, 7.27294198, 0.99889606, 0.99941720, 0.49325355],\
++[	-6.27330348, -0.00036136, 0.00022137, 7.27294212, 0.99889619, 0.99941727, 0.49325362],\
++[	-6.27330358, -0.00036132, 0.00022134, 7.27294227, 0.99889632, 0.99941734, 0.49325356],\
++[	-6.27330368, -0.00036128, 0.00022132, 7.27294241, 0.99889645, 0.99941741, 0.49325360],\
++[	-6.27330379, -0.00036123, 0.00022129, 7.27294255, 0.99889658, 0.99941748, 0.49325348],\
++[	-6.27330389, -0.00036119, 0.00022126, 7.27294269, 0.99889671, 0.99941754, 0.49325378],\
++[	-6.27330399, -0.00036115, 0.00022124, 7.27294284, 0.99889684, 0.99941761, 0.49325364],\
++[	-6.27330409, -0.00036111, 0.00022121, 7.27294298, 0.99889696, 0.99941768, 0.49325361],\
++[	-6.27330419, -0.00036107, 0.00022119, 7.27294312, 0.99889709, 0.99941775, 0.49325386],\
++[	-6.27330429, -0.00036102, 0.00022116, 7.27294327, 0.99889722, 0.99941782, 0.49325359],\
++[	-6.27330439, -0.00036098, 0.00022113, 7.27294341, 0.99889735, 0.99941788, 0.49325371],\
++[	-6.27330449, -0.00036094, 0.00022111, 7.27294355, 0.99889748, 0.99941795, 0.49325375],\
++[	-6.27330459, -0.00036090, 0.00022108, 7.27294370, 0.99889761, 0.99941802, 0.49325371],\
++[	-6.27330469, -0.00036085, 0.00022106, 7.27294384, 0.99889774, 0.99941809, 0.49325378],\
++[	-6.27330479, -0.00036081, 0.00022103, 7.27294398, 0.99889786, 0.99941816, 0.49325370],\
++[	-6.27330489, -0.00036077, 0.00022101, 7.27294412, 0.99889799, 0.99941822, 0.49325364],\
++[	-6.27330499, -0.00036073, 0.00022098, 7.27294427, 0.99889812, 0.99941829, 0.49325373],\
++[	-6.27330510, -0.00036069, 0.00022095, 7.27294441, 0.99889825, 0.99941836, 0.49325372],\
++[	-6.27330520, -0.00036064, 0.00022093, 7.27294455, 0.99889838, 0.99941843, 0.49325391],\
++[	-6.27330530, -0.00036060, 0.00022090, 7.27294469, 0.99889851, 0.99941849, 0.49325378],\
++[	-6.27330540, -0.00036056, 0.00022088, 7.27294484, 0.99889863, 0.99941856, 0.49325387],\
++[	-6.27330550, -0.00036052, 0.00022085, 7.27294498, 0.99889876, 0.99941863, 0.49325370],\
++[	-6.27330560, -0.00036048, 0.00022083, 7.27294512, 0.99889889, 0.99941870, 0.49325386],\
++[	-6.27330570, -0.00036043, 0.00022080, 7.27294526, 0.99889902, 0.99941877, 0.49325387],\
++[	-6.27330580, -0.00036039, 0.00022077, 7.27294541, 0.99889915, 0.99941883, 0.49325384],\
++[	-6.27330590, -0.00036035, 0.00022075, 7.27294555, 0.99889928, 0.99941890, 0.49325392],\
++[	-6.27330600, -0.00036031, 0.00022072, 7.27294569, 0.99889940, 0.99941897, 0.49325387],\
++[	-6.27330610, -0.00036027, 0.00022070, 7.27294583, 0.99889953, 0.99941904, 0.49325390],\
++[	-6.27330620, -0.00036023, 0.00022067, 7.27294598, 0.99889966, 0.99941910, 0.49325400],\
++[	-6.27330630, -0.00036018, 0.00022065, 7.27294612, 0.99889979, 0.99941917, 0.49325409],\
++[	-6.27330640, -0.00036014, 0.00022062, 7.27294626, 0.99889992, 0.99941924, 0.49325386],\
++[	-6.27330650, -0.00036010, 0.00022059, 7.27294640, 0.99890004, 0.99941931, 0.49325408],\
++[	-6.27330660, -0.00036006, 0.00022057, 7.27294654, 0.99890017, 0.99941937, 0.49325391],\
++[	-6.27330670, -0.00036002, 0.00022054, 7.27294669, 0.99890030, 0.99941944, 0.49325389],\
++[	-6.27330680, -0.00035997, 0.00022052, 7.27294683, 0.99890043, 0.99941951, 0.49325379],\
++[	-6.27330690, -0.00035993, 0.00022049, 7.27294697, 0.99890056, 0.99941958, 0.49325409],\
++[	-6.27330700, -0.00035989, 0.00022047, 7.27294711, 0.99890068, 0.99941964, 0.49325388],\
++[	-6.27330710, -0.00035985, 0.00022044, 7.27294726, 0.99890081, 0.99941971, 0.49325402],\
++[	-6.27330720, -0.00035981, 0.00022041, 7.27294740, 0.99890094, 0.99941978, 0.49325423],\
++[	-6.27330730, -0.00035976, 0.00022039, 7.27294754, 0.99890107, 0.99941985, 0.49325405],\
++[	-6.27330740, -0.00035972, 0.00022036, 7.27294768, 0.99890119, 0.99941991, 0.49325402],\
++[	-6.27330750, -0.00035968, 0.00022034, 7.27294782, 0.99890132, 0.99941998, 0.49325409],\
++[	-6.27330760, -0.00035964, 0.00022031, 7.27294796, 0.99890145, 0.99942005, 0.49325408],\
++[	-6.27330770, -0.00035960, 0.00022029, 7.27294811, 0.99890158, 0.99942012, 0.49325430],\
++[	-6.27330780, -0.00035956, 0.00022026, 7.27294825, 0.99890171, 0.99942018, 0.49325412],\
++[	-6.27330790, -0.00035951, 0.00022024, 7.27294839, 0.99890183, 0.99942025, 0.49325410],\
++[	-6.27330800, -0.00035947, 0.00022021, 7.27294853, 0.99890196, 0.99942032, 0.49325444],\
++[	-6.27330810, -0.00035943, 0.00022018, 7.27294867, 0.99890209, 0.99942039, 0.49325431],\
++[	-6.27330820, -0.00035939, 0.00022016, 7.27294882, 0.99890222, 0.99942045, 0.49325422],\
++[	-6.27330830, -0.00035935, 0.00022013, 7.27294896, 0.99890234, 0.99942052, 0.49325435],\
++[	-6.27330840, -0.00035931, 0.00022011, 7.27294910, 0.99890247, 0.99942059, 0.49325426],\
++[	-6.27330850, -0.00035926, 0.00022008, 7.27294924, 0.99890260, 0.99942065, 0.49325433],\
++[	-6.27330860, -0.00035922, 0.00022006, 7.27294938, 0.99890273, 0.99942072, 0.49325432],\
++[	-6.27330870, -0.00035918, 0.00022003, 7.27294952, 0.99890285, 0.99942079, 0.49325444],\
++[	-6.27330880, -0.00035914, 0.00022001, 7.27294966, 0.99890298, 0.99942086, 0.49325435],\
++[	-6.27330890, -0.00035910, 0.00021998, 7.27294981, 0.99890311, 0.99942092, 0.49325422],\
++[	-6.27330900, -0.00035906, 0.00021995, 7.27294995, 0.99890323, 0.99942099, 0.49325439],\
++[	-6.27330910, -0.00035901, 0.00021993, 7.27295009, 0.99890336, 0.99942106, 0.49325438],\
++[	-6.27330920, -0.00035897, 0.00021990, 7.27295023, 0.99890349, 0.99942113, 0.49325454],\
++[	-6.27330930, -0.00035893, 0.00021988, 7.27295037, 0.99890362, 0.99942119, 0.49325448],\
++[	-6.27330940, -0.00035889, 0.00021985, 7.27295051, 0.99890374, 0.99942126, 0.49325441],\
++[	-6.27330950, -0.00035885, 0.00021983, 7.27295065, 0.99890387, 0.99942133, 0.49325438],\
++[	-6.27330960, -0.00035881, 0.00021980, 7.27295079, 0.99890400, 0.99942139, 0.49325444],\
++[	-6.27330970, -0.00035876, 0.00021978, 7.27295094, 0.99890412, 0.99942146, 0.49325455],\
++[	-6.27330980, -0.00035872, 0.00021975, 7.27295108, 0.99890425, 0.99942153, 0.49325435],\
++[	-6.27330990, -0.00035868, 0.00021972, 7.27295122, 0.99890438, 0.99942159, 0.49325446],\
++[	-6.27331000, -0.00035864, 0.00021970, 7.27295136, 0.99890451, 0.99942166, 0.49325463],\
++[	-6.27331010, -0.00035860, 0.00021967, 7.27295150, 0.99890463, 0.99942173, 0.49325459],\
++[	-6.27331020, -0.00035856, 0.00021965, 7.27295164, 0.99890476, 0.99942180, 0.49325444],\
++[	-6.27331030, -0.00035851, 0.00021962, 7.27295178, 0.99890489, 0.99942186, 0.49325446],\
++[	-6.27331040, -0.00035847, 0.00021960, 7.27295192, 0.99890501, 0.99942193, 0.49325470],\
++[	-6.27331050, -0.00035843, 0.00021957, 7.27295206, 0.99890514, 0.99942200, 0.49325447],\
++[	-6.27331059, -0.00035839, 0.00021955, 7.27295220, 0.99890527, 0.99942206, 0.49325451],\
++[	-6.27331069, -0.00035835, 0.00021952, 7.27295235, 0.99890539, 0.99942213, 0.49325471],\
++[	-6.27331079, -0.00035831, 0.00021950, 7.27295249, 0.99890552, 0.99942220, 0.49325479],\
++[	-6.27331089, -0.00035827, 0.00021947, 7.27295263, 0.99890565, 0.99942226, 0.49325465],\
++[	-6.27331099, -0.00035822, 0.00021944, 7.27295277, 0.99890577, 0.99942233, 0.49325460],\
++[	-6.27331109, -0.00035818, 0.00021942, 7.27295291, 0.99890590, 0.99942240, 0.49325463],\
++[	-6.27331119, -0.00035814, 0.00021939, 7.27295305, 0.99890603, 0.99942246, 0.49325475],\
++[	-6.27331129, -0.00035810, 0.00021937, 7.27295319, 0.99890615, 0.99942253, 0.49325484],\
++[	-6.27331139, -0.00035806, 0.00021934, 7.27295333, 0.99890628, 0.99942260, 0.49325478],\
++[	-6.27331149, -0.00035802, 0.00021932, 7.27295347, 0.99890641, 0.99942267, 0.49325476],\
++[	-6.27331159, -0.00035798, 0.00021929, 7.27295361, 0.99890653, 0.99942273, 0.49325474],\
++[	-6.27331169, -0.00035793, 0.00021927, 7.27295375, 0.99890666, 0.99942280, 0.49325471],\
++[	-6.27331179, -0.00035789, 0.00021924, 7.27295389, 0.99890679, 0.99942287, 0.49325479],\
++[	-6.27331188, -0.00035785, 0.00021922, 7.27295403, 0.99890691, 0.99942293, 0.49325475],\
++[	-6.27331198, -0.00035781, 0.00021919, 7.27295417, 0.99890704, 0.99942300, 0.49325483],\
++[	-6.27331208, -0.00035777, 0.00021917, 7.27295431, 0.99890717, 0.99942307, 0.49325488],\
++[	-6.27331218, -0.00035773, 0.00021914, 7.27295445, 0.99890729, 0.99942313, 0.49325468],\
++[	-6.27331228, -0.00035769, 0.00021911, 7.27295459, 0.99890742, 0.99942320, 0.49325487],\
++[	-6.27331238, -0.00035764, 0.00021909, 7.27295473, 0.99890754, 0.99942327, 0.49325491],\
++[	-6.27331248, -0.00035760, 0.00021906, 7.27295487, 0.99890767, 0.99942333, 0.49325485],\
++[	-6.27331258, -0.00035756, 0.00021904, 7.27295501, 0.99890780, 0.99942340, 0.49325494],\
++[	-6.27331268, -0.00035752, 0.00021901, 7.27295515, 0.99890792, 0.99942347, 0.49325489],\
++[	-6.27331277, -0.00035748, 0.00021899, 7.27295529, 0.99890805, 0.99942353, 0.49325507],\
++[	-6.27331287, -0.00035744, 0.00021896, 7.27295544, 0.99890818, 0.99942360, 0.49325487],\
++[	-6.27331297, -0.00035740, 0.00021894, 7.27295558, 0.99890830, 0.99942367, 0.49325485],\
++[	-6.27331307, -0.00035736, 0.00021891, 7.27295572, 0.99890843, 0.99942373, 0.49325494],\
++[	-6.27331317, -0.00035731, 0.00021889, 7.27295586, 0.99890855, 0.99942380, 0.49325502],\
++[	-6.27331327, -0.00035727, 0.00021886, 7.27295600, 0.99890868, 0.99942386, 0.49325506],\
++[	-6.27331337, -0.00035723, 0.00021884, 7.27295614, 0.99890881, 0.99942393, 0.49325501],\
++[	-6.27331347, -0.00035719, 0.00021881, 7.27295628, 0.99890893, 0.99942400, 0.49325503],\
++[	-6.27331356, -0.00035715, 0.00021879, 7.27295642, 0.99890906, 0.99942406, 0.49325490],\
++[	-6.27331366, -0.00035711, 0.00021876, 7.27295655, 0.99890918, 0.99942413, 0.49325500],\
++[	-6.27331376, -0.00035707, 0.00021874, 7.27295669, 0.99890931, 0.99942420, 0.49325510],\
++[	-6.27331386, -0.00035703, 0.00021871, 7.27295683, 0.99890943, 0.99942426, 0.49325499],\
++[	-6.27331396, -0.00035698, 0.00021869, 7.27295697, 0.99890956, 0.99942433, 0.49325505],\
++[	-6.27331406, -0.00035694, 0.00021866, 7.27295711, 0.99890969, 0.99942440, 0.49325506],\
++[	-6.27331416, -0.00035690, 0.00021863, 7.27295725, 0.99890981, 0.99942446, 0.49325523],\
++[	-6.27331425, -0.00035686, 0.00021861, 7.27295739, 0.99890994, 0.99942453, 0.49325511],\
++[	-6.27331435, -0.00035682, 0.00021858, 7.27295753, 0.99891006, 0.99942460, 0.49325502],\
++[	-6.27331445, -0.00035678, 0.00021856, 7.27295767, 0.99891019, 0.99942466, 0.49325512],\
++[	-6.27331455, -0.00035674, 0.00021853, 7.27295781, 0.99891032, 0.99942473, 0.49325535],\
++[	-6.27331465, -0.00035670, 0.00021851, 7.27295795, 0.99891044, 0.99942479, 0.49325526],\
++[	-6.27331475, -0.00035666, 0.00021848, 7.27295809, 0.99891057, 0.99942486, 0.49325504],\
++[	-6.27331485, -0.00035661, 0.00021846, 7.27295823, 0.99891069, 0.99942493, 0.49325512],\
++[	-6.27331494, -0.00035657, 0.00021843, 7.27295837, 0.99891082, 0.99942499, 0.49325533],\
++[	-6.27331504, -0.00035653, 0.00021841, 7.27295851, 0.99891094, 0.99942506, 0.49325523],\
++[	-6.27331514, -0.00035649, 0.00021838, 7.27295865, 0.99891107, 0.99942513, 0.49325528],\
++[	-6.27331524, -0.00035645, 0.00021836, 7.27295879, 0.99891119, 0.99942519, 0.49325526],\
++[	-6.27331534, -0.00035641, 0.00021833, 7.27295893, 0.99891132, 0.99942526, 0.49325527],\
++[	-6.27331543, -0.00035637, 0.00021831, 7.27295907, 0.99891144, 0.99942532, 0.49325541],\
++[	-6.27331553, -0.00035633, 0.00021828, 7.27295921, 0.99891157, 0.99942539, 0.49325526],\
++[	-6.27331563, -0.00035629, 0.00021826, 7.27295935, 0.99891169, 0.99942546, 0.49325518],\
++[	-6.27331573, -0.00035625, 0.00021823, 7.27295948, 0.99891182, 0.99942552, 0.49325527],\
++[	-6.27331583, -0.00035620, 0.00021821, 7.27295962, 0.99891195, 0.99942559, 0.49325543],\
++[	-6.27331593, -0.00035616, 0.00021818, 7.27295976, 0.99891207, 0.99942566, 0.49325535],\
++[	-6.27331602, -0.00035612, 0.00021816, 7.27295990, 0.99891220, 0.99942572, 0.49325531],\
++[	-6.27331612, -0.00035608, 0.00021813, 7.27296004, 0.99891232, 0.99942579, 0.49325537],\
++[	-6.27331622, -0.00035604, 0.00021811, 7.27296018, 0.99891245, 0.99942585, 0.49325536],\
++[	-6.27331632, -0.00035600, 0.00021808, 7.27296032, 0.99891257, 0.99942592, 0.49325546],\
++[	-6.27331642, -0.00035596, 0.00021806, 7.27296046, 0.99891270, 0.99942599, 0.49325549],\
++[	-6.27331651, -0.00035592, 0.00021803, 7.27296060, 0.99891282, 0.99942605, 0.49325546],\
++[	-6.27331661, -0.00035588, 0.00021801, 7.27296074, 0.99891295, 0.99942612, 0.49325542],\
++[	-6.27331671, -0.00035584, 0.00021798, 7.27296087, 0.99891307, 0.99942618, 0.49325537],\
++[	-6.27331681, -0.00035579, 0.00021796, 7.27296101, 0.99891320, 0.99942625, 0.49325535],\
++[	-6.27331691, -0.00035575, 0.00021793, 7.27296115, 0.99891332, 0.99942632, 0.49325540],\
++[	-6.27331700, -0.00035571, 0.00021791, 7.27296129, 0.99891345, 0.99942638, 0.49325546],\
++[	-6.27331710, -0.00035567, 0.00021788, 7.27296143, 0.99891357, 0.99942645, 0.49325545],\
++[	-6.27331720, -0.00035563, 0.00021786, 7.27296157, 0.99891370, 0.99942651, 0.49325569],\
++[	-6.27331730, -0.00035559, 0.00021783, 7.27296171, 0.99891382, 0.99942658, 0.49325550],\
++[	-6.27331740, -0.00035555, 0.00021781, 7.27296185, 0.99891395, 0.99942664, 0.49325563],\
++[	-6.27331749, -0.00035551, 0.00021778, 7.27296198, 0.99891407, 0.99942671, 0.49325568],\
++[	-6.27331759, -0.00035547, 0.00021776, 7.27296212, 0.99891420, 0.99942678, 0.49325547],\
++[	-6.27331769, -0.00035543, 0.00021773, 7.27296226, 0.99891432, 0.99942684, 0.49325550],\
++[	-6.27331779, -0.00035539, 0.00021771, 7.27296240, 0.99891444, 0.99942691, 0.49325571],\
++[	-6.27331788, -0.00035535, 0.00021768, 7.27296254, 0.99891457, 0.99942697, 0.49325568],\
++[	-6.27331798, -0.00035530, 0.00021766, 7.27296268, 0.99891469, 0.99942704, 0.49325562],\
++[	-6.27331808, -0.00035526, 0.00021763, 7.27296281, 0.99891482, 0.99942711, 0.49325569],\
++[	-6.27331818, -0.00035522, 0.00021761, 7.27296295, 0.99891494, 0.99942717, 0.49325576],\
++[	-6.27331827, -0.00035518, 0.00021758, 7.27296309, 0.99891507, 0.99942724, 0.49325584],\
++[	-6.27331837, -0.00035514, 0.00021756, 7.27296323, 0.99891519, 0.99942730, 0.49325572],\
++[	-6.27331847, -0.00035510, 0.00021753, 7.27296337, 0.99891532, 0.99942737, 0.49325557],\
++[	-6.27331857, -0.00035506, 0.00021751, 7.27296351, 0.99891544, 0.99942743, 0.49325555],\
++[	-6.27331866, -0.00035502, 0.00021748, 7.27296364, 0.99891557, 0.99942750, 0.49325590],\
++[	-6.27331876, -0.00035498, 0.00021746, 7.27296378, 0.99891569, 0.99942757, 0.49325582],\
++[	-6.27331886, -0.00035494, 0.00021743, 7.27296392, 0.99891581, 0.99942763, 0.49325599],\
++[	-6.27331896, -0.00035490, 0.00021741, 7.27296406, 0.99891594, 0.99942770, 0.49325596],\
++[	-6.27331905, -0.00035486, 0.00021738, 7.27296420, 0.99891606, 0.99942776, 0.49325600],\
++[	-6.27331915, -0.00035482, 0.00021736, 7.27296434, 0.99891619, 0.99942783, 0.49325578],\
++[	-6.27331925, -0.00035478, 0.00021733, 7.27296447, 0.99891631, 0.99942789, 0.49325597],\
++[	-6.27331935, -0.00035473, 0.00021731, 7.27296461, 0.99891644, 0.99942796, 0.49325578],\
++[	-6.27331944, -0.00035469, 0.00021728, 7.27296475, 0.99891656, 0.99942802, 0.49325601],\
++[	-6.27331954, -0.00035465, 0.00021726, 7.27296489, 0.99891668, 0.99942809, 0.49325574],\
++[	-6.27331964, -0.00035461, 0.00021723, 7.27296503, 0.99891681, 0.99942816, 0.49325598],\
++[	-6.27331974, -0.00035457, 0.00021721, 7.27296516, 0.99891693, 0.99942822, 0.49325602],\
++[	-6.27331983, -0.00035453, 0.00021718, 7.27296530, 0.99891706, 0.99942829, 0.49325595],\
++[	-6.27331993, -0.00035449, 0.00021716, 7.27296544, 0.99891718, 0.99942835, 0.49325608],\
++[	-6.27332003, -0.00035445, 0.00021713, 7.27296558, 0.99891730, 0.99942842, 0.49325597],\
++[	-6.27332012, -0.00035441, 0.00021711, 7.27296571, 0.99891743, 0.99942848, 0.49325598],\
++[	-6.27332022, -0.00035437, 0.00021708, 7.27296585, 0.99891755, 0.99942855, 0.49325613],\
++[	-6.27332032, -0.00035433, 0.00021706, 7.27296599, 0.99891768, 0.99942861, 0.49325588],\
++[	-6.27332042, -0.00035429, 0.00021703, 7.27296613, 0.99891780, 0.99942868, 0.49325598],\
++[	-6.27332051, -0.00035425, 0.00021701, 7.27296626, 0.99891792, 0.99942874, 0.49325592],\
++[	-6.27332061, -0.00035421, 0.00021698, 7.27296640, 0.99891805, 0.99942881, 0.49325612],\
++[	-6.27332071, -0.00035417, 0.00021696, 7.27296654, 0.99891817, 0.99942888, 0.49325620],\
++[	-6.27332080, -0.00035413, 0.00021693, 7.27296668, 0.99891830, 0.99942894, 0.49325610],\
++[	-6.27332090, -0.00035409, 0.00021691, 7.27296681, 0.99891842, 0.99942901, 0.49325614],\
++[	-6.27332100, -0.00035405, 0.00021688, 7.27296695, 0.99891854, 0.99942907, 0.49325612],\
++[	-6.27332109, -0.00035400, 0.00021686, 7.27296709, 0.99891867, 0.99942914, 0.49325613],\
++[	-6.27332119, -0.00035396, 0.00021683, 7.27296723, 0.99891879, 0.99942920, 0.49325604],\
++[	-6.27332129, -0.00035392, 0.00021681, 7.27296736, 0.99891891, 0.99942927, 0.49325626],\
++[	-6.27332139, -0.00035388, 0.00021678, 7.27296750, 0.99891904, 0.99942933, 0.49325625],\
++[	-6.27332148, -0.00035384, 0.00021676, 7.27296764, 0.99891916, 0.99942940, 0.49325605],\
++[	-6.27332158, -0.00035380, 0.00021673, 7.27296778, 0.99891928, 0.99942946, 0.49325626],\
++[	-6.27332168, -0.00035376, 0.00021671, 7.27296791, 0.99891941, 0.99942953, 0.49325629],\
++[	-6.27332177, -0.00035372, 0.00021669, 7.27296805, 0.99891953, 0.99942959, 0.49325630],\
++[	-6.27332187, -0.00035368, 0.00021666, 7.27296819, 0.99891966, 0.99942966, 0.49325628],\
++[	-6.27332197, -0.00035364, 0.00021664, 7.27296833, 0.99891978, 0.99942972, 0.49325635],\
++[	-6.27332206, -0.00035360, 0.00021661, 7.27296846, 0.99891990, 0.99942979, 0.49325625],\
++[	-6.27332216, -0.00035356, 0.00021659, 7.27296860, 0.99892003, 0.99942985, 0.49325617],\
++[	-6.27332226, -0.00035352, 0.00021656, 7.27296874, 0.99892015, 0.99942992, 0.49325641],\
++[	-6.27332235, -0.00035348, 0.00021654, 7.27296887, 0.99892027, 0.99942998, 0.49325636],\
++[	-6.27332245, -0.00035344, 0.00021651, 7.27296901, 0.99892040, 0.99943005, 0.49325630],\
++[	-6.27332255, -0.00035340, 0.00021649, 7.27296915, 0.99892052, 0.99943011, 0.49325637],\
++[	-6.27332264, -0.00035336, 0.00021646, 7.27296928, 0.99892064, 0.99943018, 0.49325631],\
++[	-6.27332274, -0.00035332, 0.00021644, 7.27296942, 0.99892077, 0.99943024, 0.49325656],\
++[	-6.27332284, -0.00035328, 0.00021641, 7.27296956, 0.99892089, 0.99943031, 0.49325631],\
++[	-6.27332293, -0.00035324, 0.00021639, 7.27296970, 0.99892101, 0.99943037, 0.49325638],\
++[	-6.27332303, -0.00035320, 0.00021636, 7.27296983, 0.99892114, 0.99943044, 0.49325647],\
++[	-6.27332313, -0.00035316, 0.00021634, 7.27296997, 0.99892126, 0.99943050, 0.49325639],\
++[	-6.27332322, -0.00035312, 0.00021631, 7.27297011, 0.99892138, 0.99943057, 0.49325638],\
++[	-6.27332332, -0.00035308, 0.00021629, 7.27297024, 0.99892150, 0.99943063, 0.49325638],\
++[	-6.27332341, -0.00035304, 0.00021626, 7.27297038, 0.99892163, 0.99943070, 0.49325643],\
++[	-6.27332351, -0.00035300, 0.00021624, 7.27297052, 0.99892175, 0.99943076, 0.49325659],\
++[	-6.27332361, -0.00035296, 0.00021622, 7.27297065, 0.99892187, 0.99943083, 0.49325672],\
++[	-6.27332370, -0.00035291, 0.00021619, 7.27297079, 0.99892200, 0.99943089, 0.49325654],\
++[	-6.27332380, -0.00035287, 0.00021617, 7.27297093, 0.99892212, 0.99943096, 0.49325642],\
++[	-6.27332390, -0.00035283, 0.00021614, 7.27297106, 0.99892224, 0.99943102, 0.49325660],\
++[	-6.27332399, -0.00035279, 0.00021612, 7.27297120, 0.99892237, 0.99943109, 0.49325667],\
++[	-6.27332409, -0.00035275, 0.00021609, 7.27297133, 0.99892249, 0.99943115, 0.49325649],\
++[	-6.27332418, -0.00035271, 0.00021607, 7.27297147, 0.99892261, 0.99943122, 0.49325655],\
++[	-6.27332428, -0.00035267, 0.00021604, 7.27297161, 0.99892273, 0.99943128, 0.49325662],\
++[	-6.27332438, -0.00035263, 0.00021602, 7.27297174, 0.99892286, 0.99943135, 0.49325664],\
++[	-6.27332447, -0.00035259, 0.00021599, 7.27297188, 0.99892298, 0.99943141, 0.49325657],\
++[	-6.27332457, -0.00035255, 0.00021597, 7.27297202, 0.99892310, 0.99943148, 0.49325670],\
++[	-6.27332467, -0.00035251, 0.00021594, 7.27297215, 0.99892322, 0.99943154, 0.49325664],\
++[	-6.27332476, -0.00035247, 0.00021592, 7.27297229, 0.99892335, 0.99943161, 0.49325680],\
++[	-6.27332486, -0.00035243, 0.00021590, 7.27297243, 0.99892347, 0.99943167, 0.49325677],\
++[	-6.27332495, -0.00035239, 0.00021587, 7.27297256, 0.99892359, 0.99943174, 0.49325674],\
++[	-6.27332505, -0.00035235, 0.00021585, 7.27297270, 0.99892371, 0.99943180, 0.49325673],\
++[	-6.27332515, -0.00035231, 0.00021582, 7.27297283, 0.99892384, 0.99943187, 0.49325687],\
++[	-6.27332524, -0.00035227, 0.00021580, 7.27297297, 0.99892396, 0.99943193, 0.49325676],\
++[	-6.27332534, -0.00035223, 0.00021577, 7.27297311, 0.99892408, 0.99943200, 0.49325694],\
++[	-6.27332543, -0.00035219, 0.00021575, 7.27297324, 0.99892420, 0.99943206, 0.49325684],\
++[	-6.27332553, -0.00035215, 0.00021572, 7.27297338, 0.99892433, 0.99943212, 0.49325673],\
++[	-6.27332563, -0.00035211, 0.00021570, 7.27297351, 0.99892445, 0.99943219, 0.49325679],\
++[	-6.27332572, -0.00035207, 0.00021567, 7.27297365, 0.99892457, 0.99943225, 0.49325687],\
++[	-6.27332582, -0.00035203, 0.00021565, 7.27297379, 0.99892469, 0.99943232, 0.49325682],\
++[	-6.27332591, -0.00035199, 0.00021563, 7.27297392, 0.99892482, 0.99943238, 0.49325693],\
++[	-6.27332601, -0.00035195, 0.00021560, 7.27297406, 0.99892494, 0.99943245, 0.49325706],\
++[	-6.27332611, -0.00035191, 0.00021558, 7.27297419, 0.99892506, 0.99943251, 0.49325679],\
++[	-6.27332620, -0.00035187, 0.00021555, 7.27297433, 0.99892518, 0.99943258, 0.49325693],\
++[	-6.27332630, -0.00035183, 0.00021553, 7.27297446, 0.99892531, 0.99943264, 0.49325690],\
++[	-6.27332639, -0.00035179, 0.00021550, 7.27297460, 0.99892543, 0.99943271, 0.49325679],\
++[	-6.27332649, -0.00035175, 0.00021548, 7.27297474, 0.99892555, 0.99943277, 0.49325703],\
++[	-6.27332658, -0.00035171, 0.00021545, 7.27297487, 0.99892567, 0.99943283, 0.49325709],\
++[	-6.27332668, -0.00035167, 0.00021543, 7.27297501, 0.99892579, 0.99943290, 0.49325716],\
++[	-6.27332678, -0.00035163, 0.00021540, 7.27297514, 0.99892592, 0.99943296, 0.49325688],\
++[	-6.27332687, -0.00035159, 0.00021538, 7.27297528, 0.99892604, 0.99943303, 0.49325701],\
++[	-6.27332697, -0.00035155, 0.00021536, 7.27297541, 0.99892616, 0.99943309, 0.49325699],\
++[	-6.27332706, -0.00035151, 0.00021533, 7.27297555, 0.99892628, 0.99943316, 0.49325716],\
++[	-6.27332716, -0.00035147, 0.00021531, 7.27297569, 0.99892640, 0.99943322, 0.49325705],\
++[	-6.27332725, -0.00035143, 0.00021528, 7.27297582, 0.99892653, 0.99943329, 0.49325714],\
++[	-6.27332735, -0.00035139, 0.00021526, 7.27297596, 0.99892665, 0.99943335, 0.49325697],\
++[	-6.27332744, -0.00035135, 0.00021523, 7.27297609, 0.99892677, 0.99943341, 0.49325706],\
++[	-6.27332754, -0.00035131, 0.00021521, 7.27297623, 0.99892689, 0.99943348, 0.49325710],\
++[	-6.27332763, -0.00035127, 0.00021518, 7.27297636, 0.99892701, 0.99943354, 0.49325718],\
++[	-6.27332773, -0.00035123, 0.00021516, 7.27297650, 0.99892714, 0.99943361, 0.49325714],\
++[	-6.27332783, -0.00035119, 0.00021514, 7.27297663, 0.99892726, 0.99943367, 0.49325704],\
++[	-6.27332792, -0.00035115, 0.00021511, 7.27297677, 0.99892738, 0.99943374, 0.49325724],\
++[	-6.27332802, -0.00035111, 0.00021509, 7.27297690, 0.99892750, 0.99943380, 0.49325727],\
++[	-6.27332811, -0.00035107, 0.00021506, 7.27297704, 0.99892762, 0.99943386, 0.49325718],\
++[	-6.27332821, -0.00035103, 0.00021504, 7.27297717, 0.99892774, 0.99943393, 0.49325715],\
++[	-6.27332830, -0.00035099, 0.00021501, 7.27297731, 0.99892787, 0.99943399, 0.49325736],\
++[	-6.27332840, -0.00035095, 0.00021499, 7.27297744, 0.99892799, 0.99943406, 0.49325725],\
++[	-6.27332849, -0.00035091, 0.00021496, 7.27297758, 0.99892811, 0.99943412, 0.49325737],\
++[	-6.27332859, -0.00035087, 0.00021494, 7.27297771, 0.99892823, 0.99943418, 0.49325733],\
++[	-6.27332868, -0.00035084, 0.00021492, 7.27297785, 0.99892835, 0.99943425, 0.49325727],\
++[	-6.27332878, -0.00035080, 0.00021489, 7.27297798, 0.99892847, 0.99943431, 0.49325722],\
++[	-6.27332887, -0.00035076, 0.00021487, 7.27297812, 0.99892859, 0.99943438, 0.49325726],\
++[	-6.27332897, -0.00035072, 0.00021484, 7.27297825, 0.99892872, 0.99943444, 0.49325746],\
++[	-6.27332906, -0.00035068, 0.00021482, 7.27297839, 0.99892884, 0.99943451, 0.49325735],\
++[	-6.27332916, -0.00035064, 0.00021479, 7.27297852, 0.99892896, 0.99943457, 0.49325729],\
++[	-6.27332925, -0.00035060, 0.00021477, 7.27297866, 0.99892908, 0.99943463, 0.49325733],\
++[	-6.27332935, -0.00035056, 0.00021475, 7.27297879, 0.99892920, 0.99943470, 0.49325743],\
++[	-6.27332944, -0.00035052, 0.00021472, 7.27297893, 0.99892932, 0.99943476, 0.49325745],\
++[	-6.27332954, -0.00035048, 0.00021470, 7.27297906, 0.99892944, 0.99943483, 0.49325763],\
++[	-6.27332963, -0.00035044, 0.00021467, 7.27297920, 0.99892956, 0.99943489, 0.49325734],\
++[	-6.27332973, -0.00035040, 0.00021465, 7.27297933, 0.99892969, 0.99943495, 0.49325743],\
++[	-6.27332982, -0.00035036, 0.00021462, 7.27297947, 0.99892981, 0.99943502, 0.49325746],\
++[	-6.27332992, -0.00035032, 0.00021460, 7.27297960, 0.99892993, 0.99943508, 0.49325750],\
++[	-6.27333001, -0.00035028, 0.00021458, 7.27297973, 0.99893005, 0.99943515, 0.49325754],\
++[	-6.27333011, -0.00035024, 0.00021455, 7.27297987, 0.99893017, 0.99943521, 0.49325751],\
++[	-6.27333020, -0.00035020, 0.00021453, 7.27298000, 0.99893029, 0.99943527, 0.49325761],\
++[	-6.27333030, -0.00035016, 0.00021450, 7.27298014, 0.99893041, 0.99943534, 0.49325752],\
++[	-6.27333039, -0.00035012, 0.00021448, 7.27298027, 0.99893053, 0.99943540, 0.49325748],\
++[	-6.27333049, -0.00035008, 0.00021445, 7.27298041, 0.99893065, 0.99943546, 0.49325770],\
++[	-6.27333058, -0.00035004, 0.00021443, 7.27298054, 0.99893078, 0.99943553, 0.49325749],\
++[	-6.27333068, -0.00035000, 0.00021441, 7.27298068, 0.99893090, 0.99943559, 0.49325754],\
++[	-6.27333077, -0.00034996, 0.00021438, 7.27298081, 0.99893102, 0.99943566, 0.49325757],\
++[	-6.27333087, -0.00034992, 0.00021436, 7.27298094, 0.99893114, 0.99943572, 0.49325772],\
++[	-6.27333096, -0.00034988, 0.00021433, 7.27298108, 0.99893126, 0.99943578, 0.49325749],\
++[	-6.27333106, -0.00034984, 0.00021431, 7.27298121, 0.99893138, 0.99943585, 0.49325746],\
++[	-6.27333115, -0.00034980, 0.00021428, 7.27298135, 0.99893150, 0.99943591, 0.49325763],\
++[	-6.27333125, -0.00034976, 0.00021426, 7.27298148, 0.99893162, 0.99943597, 0.49325780],\
++[	-6.27333134, -0.00034973, 0.00021424, 7.27298162, 0.99893174, 0.99943604, 0.49325773],\
++[	-6.27333144, -0.00034969, 0.00021421, 7.27298175, 0.99893186, 0.99943610, 0.49325774],\
++[	-6.27333153, -0.00034965, 0.00021419, 7.27298188, 0.99893198, 0.99943617, 0.49325768],\
++[	-6.27333162, -0.00034961, 0.00021416, 7.27298202, 0.99893210, 0.99943623, 0.49325772],\
++[	-6.27333172, -0.00034957, 0.00021414, 7.27298215, 0.99893223, 0.99943629, 0.49325780],\
++[	-6.27333181, -0.00034953, 0.00021412, 7.27298229, 0.99893235, 0.99943636, 0.49325790],\
++[	-6.27333191, -0.00034949, 0.00021409, 7.27298242, 0.99893247, 0.99943642, 0.49325769],\
++[	-6.27333200, -0.00034945, 0.00021407, 7.27298255, 0.99893259, 0.99943648, 0.49325784],\
++[	-6.27333210, -0.00034941, 0.00021404, 7.27298269, 0.99893271, 0.99943655, 0.49325781],\
++[	-6.27333219, -0.00034937, 0.00021402, 7.27298282, 0.99893283, 0.99943661, 0.49325781],\
++[	-6.27333229, -0.00034933, 0.00021399, 7.27298296, 0.99893295, 0.99943668, 0.49325775],\
++[	-6.27333238, -0.00034929, 0.00021397, 7.27298309, 0.99893307, 0.99943674, 0.49325777],\
++[	-6.27333247, -0.00034925, 0.00021395, 7.27298322, 0.99893319, 0.99943680, 0.49325794],\
++[	-6.27333257, -0.00034921, 0.00021392, 7.27298336, 0.99893331, 0.99943687, 0.49325786],\
++[	-6.27333266, -0.00034917, 0.00021390, 7.27298349, 0.99893343, 0.99943693, 0.49325783],\
++[	-6.27333276, -0.00034913, 0.00021387, 7.27298362, 0.99893355, 0.99943699, 0.49325777],\
++[	-6.27333285, -0.00034909, 0.00021385, 7.27298376, 0.99893367, 0.99943706, 0.49325800],\
++[	-6.27333295, -0.00034905, 0.00021383, 7.27298389, 0.99893379, 0.99943712, 0.49325788],\
++[	-6.27333304, -0.00034902, 0.00021380, 7.27298402, 0.99893391, 0.99943718, 0.49325796],\
++[	-6.27333313, -0.00034898, 0.00021378, 7.27298416, 0.99893403, 0.99943725, 0.49325777],\
++[	-6.27333323, -0.00034894, 0.00021375, 7.27298429, 0.99893415, 0.99943731, 0.49325803],\
++[	-6.27333332, -0.00034890, 0.00021373, 7.27298443, 0.99893427, 0.99943737, 0.49325799],\
++[	-6.27333342, -0.00034886, 0.00021370, 7.27298456, 0.99893439, 0.99943744, 0.49325815],\
++[	-6.27333351, -0.00034882, 0.00021368, 7.27298469, 0.99893451, 0.99943750, 0.49325810],\
++[	-6.27333360, -0.00034878, 0.00021366, 7.27298483, 0.99893463, 0.99943756, 0.49325805],\
++[	-6.27333370, -0.00034874, 0.00021363, 7.27298496, 0.99893475, 0.99943763, 0.49325805],\
++[	-6.27333379, -0.00034870, 0.00021361, 7.27298509, 0.99893487, 0.99943769, 0.49325810],\
++[	-6.27333389, -0.00034866, 0.00021358, 7.27298523, 0.99893499, 0.99943775, 0.49325812],\
++[	-6.27333398, -0.00034862, 0.00021356, 7.27298536, 0.99893511, 0.99943782, 0.49325800],\
++[	-6.27333408, -0.00034858, 0.00021354, 7.27298549, 0.99893523, 0.99943788, 0.49325798],\
++[	-6.27333417, -0.00034854, 0.00021351, 7.27298563, 0.99893535, 0.99943794, 0.49325819],\
++[	-6.27333426, -0.00034850, 0.00021349, 7.27298576, 0.99893547, 0.99943801, 0.49325809],\
++[	-6.27333436, -0.00034847, 0.00021346, 7.27298589, 0.99893559, 0.99943807, 0.49325811],\
++[	-6.27333445, -0.00034843, 0.00021344, 7.27298602, 0.99893571, 0.99943813, 0.49325804],\
++[	-6.27333454, -0.00034839, 0.00021342, 7.27298616, 0.99893583, 0.99943820, 0.49325814],\
++[	-6.27333464, -0.00034835, 0.00021339, 7.27298629, 0.99893595, 0.99943826, 0.49325817],\
++[	-6.27333473, -0.00034831, 0.00021337, 7.27298642, 0.99893607, 0.99943832, 0.49325810],\
++[	-6.27333483, -0.00034827, 0.00021334, 7.27298656, 0.99893619, 0.99943839, 0.49325810],\
++[	-6.27333492, -0.00034823, 0.00021332, 7.27298669, 0.99893631, 0.99943845, 0.49325813],\
++[	-6.27333501, -0.00034819, 0.00021330, 7.27298682, 0.99893643, 0.99943851, 0.49325821],\
++[	-6.27333511, -0.00034815, 0.00021327, 7.27298696, 0.99893655, 0.99943858, 0.49325825],\
++[	-6.27333520, -0.00034811, 0.00021325, 7.27298709, 0.99893667, 0.99943864, 0.49325802],\
++[	-6.27333530, -0.00034807, 0.00021322, 7.27298722, 0.99893679, 0.99943870, 0.49325839],\
++[	-6.27333539, -0.00034803, 0.00021320, 7.27298735, 0.99893691, 0.99943877, 0.49325824],\
++[	-6.27333548, -0.00034800, 0.00021318, 7.27298749, 0.99893703, 0.99943883, 0.49325827],\
++[	-6.27333558, -0.00034796, 0.00021315, 7.27298762, 0.99893715, 0.99943889, 0.49325830],\
++[	-6.27333567, -0.00034792, 0.00021313, 7.27298775, 0.99893727, 0.99943895, 0.49325817],\
++[	-6.27333576, -0.00034788, 0.00021310, 7.27298789, 0.99893739, 0.99943902, 0.49325841],\
++[	-6.27333586, -0.00034784, 0.00021308, 7.27298802, 0.99893751, 0.99943908, 0.49325836],\
++[	-6.27333595, -0.00034780, 0.00021306, 7.27298815, 0.99893763, 0.99943914, 0.49325836],\
++[	-6.27333604, -0.00034776, 0.00021303, 7.27298828, 0.99893774, 0.99943921, 0.49325838],\
++[	-6.27333614, -0.00034772, 0.00021301, 7.27298842, 0.99893786, 0.99943927, 0.49325845],\
++[	-6.27333623, -0.00034768, 0.00021298, 7.27298855, 0.99893798, 0.99943933, 0.49325848],\
++[	-6.27333632, -0.00034764, 0.00021296, 7.27298868, 0.99893810, 0.99943940, 0.49325833],\
++[	-6.27333642, -0.00034760, 0.00021294, 7.27298881, 0.99893822, 0.99943946, 0.49325843],\
++[	-6.27333651, -0.00034757, 0.00021291, 7.27298895, 0.99893834, 0.99943952, 0.49325849],\
++[	-6.27333661, -0.00034753, 0.00021289, 7.27298908, 0.99893846, 0.99943958, 0.49325841],\
++[	-6.27333670, -0.00034749, 0.00021286, 7.27298921, 0.99893858, 0.99943965, 0.49325856],\
++[	-6.27333679, -0.00034745, 0.00021284, 7.27298934, 0.99893870, 0.99943971, 0.49325841],\
++[	-6.27333689, -0.00034741, 0.00021282, 7.27298948, 0.99893882, 0.99943977, 0.49325845],\
++[	-6.27333698, -0.00034737, 0.00021279, 7.27298961, 0.99893894, 0.99943984, 0.49325852],\
++[	-6.27333707, -0.00034733, 0.00021277, 7.27298974, 0.99893906, 0.99943990, 0.49325863],\
++[	-6.27333717, -0.00034729, 0.00021275, 7.27298987, 0.99893918, 0.99943996, 0.49325866],\
++[	-6.27333726, -0.00034725, 0.00021272, 7.27299000, 0.99893929, 0.99944002, 0.49325856],\
++[	-6.27333735, -0.00034721, 0.00021270, 7.27299014, 0.99893941, 0.99944009, 0.49325854],\
++[	-6.27333745, -0.00034718, 0.00021267, 7.27299027, 0.99893953, 0.99944015, 0.49325858],\
++[	-6.27333754, -0.00034714, 0.00021265, 7.27299040, 0.99893965, 0.99944021, 0.49325856],\
++[	-6.27333763, -0.00034710, 0.00021263, 7.27299053, 0.99893977, 0.99944028, 0.49325873],\
++[	-6.27333772, -0.00034706, 0.00021260, 7.27299067, 0.99893989, 0.99944034, 0.49325877],\
++[	-6.27333782, -0.00034702, 0.00021258, 7.27299080, 0.99894001, 0.99944040, 0.49325864],\
++[	-6.27333791, -0.00034698, 0.00021255, 7.27299093, 0.99894013, 0.99944046, 0.49325857],\
++[	-6.27333800, -0.00034694, 0.00021253, 7.27299106, 0.99894025, 0.99944053, 0.49325852],\
++[	-6.27333810, -0.00034690, 0.00021251, 7.27299119, 0.99894036, 0.99944059, 0.49325872],\
++[	-6.27333819, -0.00034686, 0.00021248, 7.27299133, 0.99894048, 0.99944065, 0.49325865],\
++[	-6.27333828, -0.00034683, 0.00021246, 7.27299146, 0.99894060, 0.99944072, 0.49325884],\
++[	-6.27333838, -0.00034679, 0.00021244, 7.27299159, 0.99894072, 0.99944078, 0.49325864],\
++[	-6.27333847, -0.00034675, 0.00021241, 7.27299172, 0.99894084, 0.99944084, 0.49325865],\
++[	-6.27333856, -0.00034671, 0.00021239, 7.27299185, 0.99894096, 0.99944090, 0.49325871],\
++[	-6.27333866, -0.00034667, 0.00021236, 7.27299199, 0.99894108, 0.99944097, 0.49325862],\
++[	-6.27333875, -0.00034663, 0.00021234, 7.27299212, 0.99894120, 0.99944103, 0.49325892],\
++[	-6.27333884, -0.00034659, 0.00021232, 7.27299225, 0.99894131, 0.99944109, 0.49325886],\
++[	-6.27333893, -0.00034655, 0.00021229, 7.27299238, 0.99894143, 0.99944115, 0.49325892],\
++[	-6.27333903, -0.00034652, 0.00021227, 7.27299251, 0.99894155, 0.99944122, 0.49325878],\
++[	-6.27333912, -0.00034648, 0.00021225, 7.27299264, 0.99894167, 0.99944128, 0.49325893],\
++[	-6.27333921, -0.00034644, 0.00021222, 7.27299278, 0.99894179, 0.99944134, 0.49325882],\
++[	-6.27333931, -0.00034640, 0.00021220, 7.27299291, 0.99894191, 0.99944140, 0.49325880],\
++[	-6.27333940, -0.00034636, 0.00021217, 7.27299304, 0.99894202, 0.99944147, 0.49325884],\
++[	-6.27333949, -0.00034632, 0.00021215, 7.27299317, 0.99894214, 0.99944153, 0.49325871],\
++[	-6.27333958, -0.00034628, 0.00021213, 7.27299330, 0.99894226, 0.99944159, 0.49325888],\
++[	-6.27333968, -0.00034624, 0.00021210, 7.27299343, 0.99894238, 0.99944165, 0.49325907],\
++[	-6.27333977, -0.00034620, 0.00021208, 7.27299356, 0.99894250, 0.99944172, 0.49325884],\
++[	-6.27333986, -0.00034617, 0.00021206, 7.27299370, 0.99894262, 0.99944178, 0.49325906],\
++[	-6.27333995, -0.00034613, 0.00021203, 7.27299383, 0.99894273, 0.99944184, 0.49325903],\
++[	-6.27334005, -0.00034609, 0.00021201, 7.27299396, 0.99894285, 0.99944190, 0.49325895],\
++[	-6.27334014, -0.00034605, 0.00021198, 7.27299409, 0.99894297, 0.99944197, 0.49325883],\
++[	-6.27334023, -0.00034601, 0.00021196, 7.27299422, 0.99894309, 0.99944203, 0.49325893],\
++[	-6.27334033, -0.00034597, 0.00021194, 7.27299435, 0.99894321, 0.99944209, 0.49325903],\
++[	-6.27334042, -0.00034593, 0.00021191, 7.27299448, 0.99894333, 0.99944215, 0.49325919],\
++[	-6.27334051, -0.00034590, 0.00021189, 7.27299461, 0.99894344, 0.99944222, 0.49325911],\
++[	-6.27334060, -0.00034586, 0.00021187, 7.27299475, 0.99894356, 0.99944228, 0.49325916],\
++[	-6.27334070, -0.00034582, 0.00021184, 7.27299488, 0.99894368, 0.99944234, 0.49325910],\
++[	-6.27334079, -0.00034578, 0.00021182, 7.27299501, 0.99894380, 0.99944240, 0.49325905],\
++[	-6.27334088, -0.00034574, 0.00021179, 7.27299514, 0.99894392, 0.99944246, 0.49325907],\
++[	-6.27334097, -0.00034570, 0.00021177, 7.27299527, 0.99894403, 0.99944253, 0.49325918],\
++[	-6.27334107, -0.00034566, 0.00021175, 7.27299540, 0.99894415, 0.99944259, 0.49325910],\
++[	-6.27334116, -0.00034563, 0.00021172, 7.27299553, 0.99894427, 0.99944265, 0.49325909],\
++[	-6.27334125, -0.00034559, 0.00021170, 7.27299566, 0.99894439, 0.99944271, 0.49325903],\
++[	-6.27334134, -0.00034555, 0.00021168, 7.27299579, 0.99894451, 0.99944278, 0.49325934],\
++[	-6.27334143, -0.00034551, 0.00021165, 7.27299593, 0.99894462, 0.99944284, 0.49325921],\
++[	-6.27334153, -0.00034547, 0.00021163, 7.27299606, 0.99894474, 0.99944290, 0.49325916],\
++[	-6.27334162, -0.00034543, 0.00021161, 7.27299619, 0.99894486, 0.99944296, 0.49325905],\
++[	-6.27334171, -0.00034539, 0.00021158, 7.27299632, 0.99894498, 0.99944302, 0.49325932],\
++[	-6.27334180, -0.00034536, 0.00021156, 7.27299645, 0.99894509, 0.99944309, 0.49325918],\
++[	-6.27334190, -0.00034532, 0.00021153, 7.27299658, 0.99894521, 0.99944315, 0.49325928],\
++[	-6.27334199, -0.00034528, 0.00021151, 7.27299671, 0.99894533, 0.99944321, 0.49325927],\
++[	-6.27334208, -0.00034524, 0.00021149, 7.27299684, 0.99894545, 0.99944327, 0.49325910],\
++[	-6.27334217, -0.00034520, 0.00021146, 7.27299697, 0.99894557, 0.99944334, 0.49325933],\
++[	-6.27334226, -0.00034516, 0.00021144, 7.27299710, 0.99894568, 0.99944340, 0.49325931],\
++[	-6.27334236, -0.00034512, 0.00021142, 7.27299723, 0.99894580, 0.99944346, 0.49325913],\
++[	-6.27334245, -0.00034509, 0.00021139, 7.27299736, 0.99894592, 0.99944352, 0.49325935],\
++[	-6.27334254, -0.00034505, 0.00021137, 7.27299749, 0.99894604, 0.99944358, 0.49325926],\
++[	-6.27334263, -0.00034501, 0.00021135, 7.27299762, 0.99894615, 0.99944365, 0.49325931],\
++[	-6.27334273, -0.00034497, 0.00021132, 7.27299776, 0.99894627, 0.99944371, 0.49325923],\
++[	-6.27334282, -0.00034493, 0.00021130, 7.27299789, 0.99894639, 0.99944377, 0.49325932],\
++[	-6.27334291, -0.00034489, 0.00021128, 7.27299802, 0.99894651, 0.99944383, 0.49325937],\
++[	-6.27334300, -0.00034486, 0.00021125, 7.27299815, 0.99894662, 0.99944389, 0.49325925],\
++[	-6.27334309, -0.00034482, 0.00021123, 7.27299828, 0.99894674, 0.99944396, 0.49325938],\
++[	-6.27334319, -0.00034478, 0.00021120, 7.27299841, 0.99894686, 0.99944402, 0.49325937],\
++[	-6.27334328, -0.00034474, 0.00021118, 7.27299854, 0.99894697, 0.99944408, 0.49325933],\
++[	-6.27334337, -0.00034470, 0.00021116, 7.27299867, 0.99894709, 0.99944414, 0.49325964],\
++[	-6.27334346, -0.00034466, 0.00021113, 7.27299880, 0.99894721, 0.99944420, 0.49325932],\
++[	-6.27334355, -0.00034462, 0.00021111, 7.27299893, 0.99894733, 0.99944426, 0.49325939],\
++[	-6.27334364, -0.00034459, 0.00021109, 7.27299906, 0.99894744, 0.99944433, 0.49325953],\
++[	-6.27334374, -0.00034455, 0.00021106, 7.27299919, 0.99894756, 0.99944439, 0.49325955],\
++[	-6.27334383, -0.00034451, 0.00021104, 7.27299932, 0.99894768, 0.99944445, 0.49325952],\
++[	-6.27334392, -0.00034447, 0.00021102, 7.27299945, 0.99894780, 0.99944451, 0.49325957],\
++[	-6.27334401, -0.00034443, 0.00021099, 7.27299958, 0.99894791, 0.99944457, 0.49325952],\
++[	-6.27334410, -0.00034439, 0.00021097, 7.27299971, 0.99894803, 0.99944464, 0.49325948],\
++[	-6.27334420, -0.00034436, 0.00021095, 7.27299984, 0.99894815, 0.99944470, 0.49325953],\
++[	-6.27334429, -0.00034432, 0.00021092, 7.27299997, 0.99894826, 0.99944476, 0.49325969],\
++[	-6.27334438, -0.00034428, 0.00021090, 7.27300010, 0.99894838, 0.99944482, 0.49325951],\
++[	-6.27334447, -0.00034424, 0.00021088, 7.27300023, 0.99894850, 0.99944488, 0.49325964],\
++[	-6.27334456, -0.00034420, 0.00021085, 7.27300036, 0.99894861, 0.99944494, 0.49325959],\
++[	-6.27334465, -0.00034417, 0.00021083, 7.27300049, 0.99894873, 0.99944501, 0.49325984],\
++[	-6.27334475, -0.00034413, 0.00021081, 7.27300062, 0.99894885, 0.99944507, 0.49325961],\
++[	-6.27334484, -0.00034409, 0.00021078, 7.27300075, 0.99894897, 0.99944513, 0.49325970],\
++[	-6.27334493, -0.00034405, 0.00021076, 7.27300088, 0.99894908, 0.99944519, 0.49325973],\
++[	-6.27334502, -0.00034401, 0.00021073, 7.27300101, 0.99894920, 0.99944525, 0.49325965],\
++[	-6.27334511, -0.00034397, 0.00021071, 7.27300114, 0.99894932, 0.99944531, 0.49325961],\
++[	-6.27334520, -0.00034394, 0.00021069, 7.27300127, 0.99894943, 0.99944538, 0.49325970],\
++[	-6.27334529, -0.00034390, 0.00021066, 7.27300140, 0.99894955, 0.99944544, 0.49325947],\
++[	-6.27334539, -0.00034386, 0.00021064, 7.27300153, 0.99894967, 0.99944550, 0.49325970],\
++[	-6.27334548, -0.00034382, 0.00021062, 7.27300166, 0.99894978, 0.99944556, 0.49325986],\
++[	-6.27334557, -0.00034378, 0.00021059, 7.27300179, 0.99894990, 0.99944562, 0.49325975],\
++[	-6.27334566, -0.00034374, 0.00021057, 7.27300192, 0.99895002, 0.99944568, 0.49325973],\
++[	-6.27334575, -0.00034371, 0.00021055, 7.27300205, 0.99895013, 0.99944575, 0.49325990],\
++[	-6.27334584, -0.00034367, 0.00021052, 7.27300217, 0.99895025, 0.99944581, 0.49325987],\
++[	-6.27334593, -0.00034363, 0.00021050, 7.27300230, 0.99895037, 0.99944587, 0.49325975],\
++[	-6.27334603, -0.00034359, 0.00021048, 7.27300243, 0.99895048, 0.99944593, 0.49325986],\
++[	-6.27334612, -0.00034355, 0.00021045, 7.27300256, 0.99895060, 0.99944599, 0.49325980],\
++[	-6.27334621, -0.00034352, 0.00021043, 7.27300269, 0.99895072, 0.99944605, 0.49325999],\
++[	-6.27334630, -0.00034348, 0.00021041, 7.27300282, 0.99895083, 0.99944611, 0.49326005],\
++[	-6.27334639, -0.00034344, 0.00021038, 7.27300295, 0.99895095, 0.99944618, 0.49325989],\
++[	-6.27334648, -0.00034340, 0.00021036, 7.27300308, 0.99895106, 0.99944624, 0.49325982],\
++[	-6.27334657, -0.00034336, 0.00021034, 7.27300321, 0.99895118, 0.99944630, 0.49326004],\
++[	-6.27334666, -0.00034333, 0.00021031, 7.27300334, 0.99895130, 0.99944636, 0.49325987],\
++[	-6.27334676, -0.00034329, 0.00021029, 7.27300347, 0.99895141, 0.99944642, 0.49326003],\
++[	-6.27334685, -0.00034325, 0.00021027, 7.27300360, 0.99895153, 0.99944648, 0.49325986],\
++[	-6.27334694, -0.00034321, 0.00021024, 7.27300373, 0.99895165, 0.99944654, 0.49326013],\
++[	-6.27334703, -0.00034317, 0.00021022, 7.27300386, 0.99895176, 0.99944661, 0.49326001],\
++[	-6.27334712, -0.00034313, 0.00021020, 7.27300399, 0.99895188, 0.99944667, 0.49325997],\
++[	-6.27334721, -0.00034310, 0.00021017, 7.27300411, 0.99895199, 0.99944673, 0.49325982],\
++[	-6.27334730, -0.00034306, 0.00021015, 7.27300424, 0.99895211, 0.99944679, 0.49326004],\
++[	-6.27334739, -0.00034302, 0.00021013, 7.27300437, 0.99895223, 0.99944685, 0.49326000],\
++[	-6.27334748, -0.00034298, 0.00021010, 7.27300450, 0.99895234, 0.99944691, 0.49326002],\
++[	-6.27334758, -0.00034294, 0.00021008, 7.27300463, 0.99895246, 0.99944697, 0.49326019],\
++[	-6.27334767, -0.00034291, 0.00021006, 7.27300476, 0.99895258, 0.99944704, 0.49326022],\
++[	-6.27334776, -0.00034287, 0.00021003, 7.27300489, 0.99895269, 0.99944710, 0.49325991],\
++[	-6.27334785, -0.00034283, 0.00021001, 7.27300502, 0.99895281, 0.99944716, 0.49326017],\
++[	-6.27334794, -0.00034279, 0.00020999, 7.27300515, 0.99895292, 0.99944722, 0.49326012],\
++[	-6.27334803, -0.00034276, 0.00020996, 7.27300527, 0.99895304, 0.99944728, 0.49326022],\
++[	-6.27334812, -0.00034272, 0.00020994, 7.27300540, 0.99895316, 0.99944734, 0.49326001],\
++[	-6.27334821, -0.00034268, 0.00020992, 7.27300553, 0.99895327, 0.99944740, 0.49326024],\
++[	-6.27334830, -0.00034264, 0.00020989, 7.27300566, 0.99895339, 0.99944746, 0.49326021],\
++[	-6.27334839, -0.00034260, 0.00020987, 7.27300579, 0.99895350, 0.99944753, 0.49326029],\
++[	-6.27334848, -0.00034257, 0.00020985, 7.27300592, 0.99895362, 0.99944759, 0.49326016],\
++[	-6.27334857, -0.00034253, 0.00020983, 7.27300605, 0.99895373, 0.99944765, 0.49326016],\
++[	-6.27334867, -0.00034249, 0.00020980, 7.27300618, 0.99895385, 0.99944771, 0.49326045],\
++[	-6.27334876, -0.00034245, 0.00020978, 7.27300630, 0.99895397, 0.99944777, 0.49326011],\
++[	-6.27334885, -0.00034241, 0.00020976, 7.27300643, 0.99895408, 0.99944783, 0.49326023],\
++[	-6.27334894, -0.00034238, 0.00020973, 7.27300656, 0.99895420, 0.99944789, 0.49326007],\
++[	-6.27334903, -0.00034234, 0.00020971, 7.27300669, 0.99895431, 0.99944795, 0.49326021],\
++[	-6.27334912, -0.00034230, 0.00020969, 7.27300682, 0.99895443, 0.99944801, 0.49326027],\
++[	-6.27334921, -0.00034226, 0.00020966, 7.27300695, 0.99895454, 0.99944807, 0.49326040],\
++[	-6.27334930, -0.00034222, 0.00020964, 7.27300708, 0.99895466, 0.99944814, 0.49326032],\
++[	-6.27334939, -0.00034219, 0.00020962, 7.27300720, 0.99895478, 0.99944820, 0.49326028],\
++[	-6.27334948, -0.00034215, 0.00020959, 7.27300733, 0.99895489, 0.99944826, 0.49326022],\
++[	-6.27334957, -0.00034211, 0.00020957, 7.27300746, 0.99895501, 0.99944832, 0.49326044],\
++[	-6.27334966, -0.00034207, 0.00020955, 7.27300759, 0.99895512, 0.99944838, 0.49326036],\
++[	-6.27334975, -0.00034204, 0.00020952, 7.27300772, 0.99895524, 0.99944844, 0.49326052],\
++[	-6.27334984, -0.00034200, 0.00020950, 7.27300785, 0.99895535, 0.99944850, 0.49326050],\
++[	-6.27334993, -0.00034196, 0.00020948, 7.27300797, 0.99895547, 0.99944856, 0.49326047],\
++[	-6.27335002, -0.00034192, 0.00020945, 7.27300810, 0.99895558, 0.99944862, 0.49326049],\
++[	-6.27335011, -0.00034188, 0.00020943, 7.27300823, 0.99895570, 0.99944868, 0.49326038],\
++[	-6.27335021, -0.00034185, 0.00020941, 7.27300836, 0.99895582, 0.99944875, 0.49326054],\
++[	-6.27335030, -0.00034181, 0.00020938, 7.27300849, 0.99895593, 0.99944881, 0.49326041],\
++[	-6.27335039, -0.00034177, 0.00020936, 7.27300861, 0.99895605, 0.99944887, 0.49326059],\
++[	-6.27335048, -0.00034173, 0.00020934, 7.27300874, 0.99895616, 0.99944893, 0.49326058],\
++[	-6.27335057, -0.00034170, 0.00020932, 7.27300887, 0.99895628, 0.99944899, 0.49326043],\
++[	-6.27335066, -0.00034166, 0.00020929, 7.27300900, 0.99895639, 0.99944905, 0.49326062],\
++[	-6.27335075, -0.00034162, 0.00020927, 7.27300913, 0.99895651, 0.99944911, 0.49326067],\
++[	-6.27335084, -0.00034158, 0.00020925, 7.27300925, 0.99895662, 0.99944917, 0.49326078],\
++[	-6.27335093, -0.00034154, 0.00020922, 7.27300938, 0.99895674, 0.99944923, 0.49326065],\
++[	-6.27335102, -0.00034151, 0.00020920, 7.27300951, 0.99895685, 0.99944929, 0.49326059],\
++[	-6.27335111, -0.00034147, 0.00020918, 7.27300964, 0.99895697, 0.99944935, 0.49326055],\
++[	-6.27335120, -0.00034143, 0.00020915, 7.27300977, 0.99895708, 0.99944941, 0.49326066],\
++[	-6.27335129, -0.00034139, 0.00020913, 7.27300989, 0.99895720, 0.99944948, 0.49326077],\
++[	-6.27335138, -0.00034136, 0.00020911, 7.27301002, 0.99895731, 0.99944954, 0.49326066],\
++[	-6.27335147, -0.00034132, 0.00020908, 7.27301015, 0.99895743, 0.99944960, 0.49326075],\
++[	-6.27335156, -0.00034128, 0.00020906, 7.27301028, 0.99895754, 0.99944966, 0.49326055],\
++[	-6.27335165, -0.00034124, 0.00020904, 7.27301040, 0.99895766, 0.99944972, 0.49326086],\
++[	-6.27335174, -0.00034121, 0.00020902, 7.27301053, 0.99895777, 0.99944978, 0.49326055],\
++[	-6.27335183, -0.00034117, 0.00020899, 7.27301066, 0.99895789, 0.99944984, 0.49326069],\
++[	-6.27335192, -0.00034113, 0.00020897, 7.27301079, 0.99895800, 0.99944990, 0.49326076],\
++[	-6.27335201, -0.00034109, 0.00020895, 7.27301092, 0.99895812, 0.99944996, 0.49326064],\
++[	-6.27335210, -0.00034106, 0.00020892, 7.27301104, 0.99895823, 0.99945002, 0.49326064],\
++[	-6.27335219, -0.00034102, 0.00020890, 7.27301117, 0.99895835, 0.99945008, 0.49326079],\
++[	-6.27335228, -0.00034098, 0.00020888, 7.27301130, 0.99895846, 0.99945014, 0.49326094],\
++[	-6.27335237, -0.00034094, 0.00020885, 7.27301143, 0.99895858, 0.99945020, 0.49326073],\
++[	-6.27335246, -0.00034091, 0.00020883, 7.27301155, 0.99895869, 0.99945026, 0.49326067],\
++[	-6.27335255, -0.00034087, 0.00020881, 7.27301168, 0.99895881, 0.99945032, 0.49326096],\
++[	-6.27335264, -0.00034083, 0.00020878, 7.27301181, 0.99895892, 0.99945038, 0.49326074],\
++[	-6.27335273, -0.00034079, 0.00020876, 7.27301194, 0.99895903, 0.99945045, 0.49326072],\
++[	-6.27335282, -0.00034076, 0.00020874, 7.27301206, 0.99895915, 0.99945051, 0.49326097],\
++[	-6.27335291, -0.00034072, 0.00020872, 7.27301219, 0.99895926, 0.99945057, 0.49326095],\
++[	-6.27335300, -0.00034068, 0.00020869, 7.27301232, 0.99895938, 0.99945063, 0.49326083],\
++[	-6.27335309, -0.00034064, 0.00020867, 7.27301244, 0.99895949, 0.99945069, 0.49326094],\
++[	-6.27335318, -0.00034061, 0.00020865, 7.27301257, 0.99895961, 0.99945075, 0.49326071],\
++[	-6.27335327, -0.00034057, 0.00020862, 7.27301270, 0.99895972, 0.99945081, 0.49326094],\
++[	-6.27335336, -0.00034053, 0.00020860, 7.27301283, 0.99895984, 0.99945087, 0.49326119],\
++[	-6.27335345, -0.00034049, 0.00020858, 7.27301295, 0.99895995, 0.99945093, 0.49326102],\
++[	-6.27335354, -0.00034046, 0.00020856, 7.27301308, 0.99896007, 0.99945099, 0.49326095],\
++[	-6.27335363, -0.00034042, 0.00020853, 7.27301321, 0.99896018, 0.99945105, 0.49326111],\
++[	-6.27335372, -0.00034038, 0.00020851, 7.27301333, 0.99896029, 0.99945111, 0.49326093],\
++[	-6.27335380, -0.00034034, 0.00020849, 7.27301346, 0.99896041, 0.99945117, 0.49326092],\
++[	-6.27335389, -0.00034031, 0.00020846, 7.27301359, 0.99896052, 0.99945123, 0.49326086],\
++[	-6.27335398, -0.00034027, 0.00020844, 7.27301372, 0.99896064, 0.99945129, 0.49326111],\
++[	-6.27335407, -0.00034023, 0.00020842, 7.27301384, 0.99896075, 0.99945135, 0.49326085],\
++[	-6.27335416, -0.00034019, 0.00020839, 7.27301397, 0.99896087, 0.99945141, 0.49326107],\
++[	-6.27335425, -0.00034016, 0.00020837, 7.27301410, 0.99896098, 0.99945147, 0.49326138],\
++[	-6.27335434, -0.00034012, 0.00020835, 7.27301422, 0.99896109, 0.99945153, 0.49326107],\
++[	-6.27335443, -0.00034008, 0.00020833, 7.27301435, 0.99896121, 0.99945159, 0.49326110],\
++[	-6.27335452, -0.00034004, 0.00020830, 7.27301448, 0.99896132, 0.99945165, 0.49326107],\
++[	-6.27335461, -0.00034001, 0.00020828, 7.27301460, 0.99896144, 0.99945171, 0.49326111],\
++[	-6.27335470, -0.00033997, 0.00020826, 7.27301473, 0.99896155, 0.99945177, 0.49326094],\
++[	-6.27335479, -0.00033993, 0.00020823, 7.27301486, 0.99896166, 0.99945183, 0.49326116],\
++[	-6.27335488, -0.00033989, 0.00020821, 7.27301498, 0.99896178, 0.99945189, 0.49326119],\
++[	-6.27335497, -0.00033986, 0.00020819, 7.27301511, 0.99896189, 0.99945195, 0.49326130],\
++[	-6.27335506, -0.00033982, 0.00020817, 7.27301524, 0.99896201, 0.99945201, 0.49326119],\
++[	-6.27335515, -0.00033978, 0.00020814, 7.27301536, 0.99896212, 0.99945207, 0.49326105],\
++[	-6.27335524, -0.00033975, 0.00020812, 7.27301549, 0.99896223, 0.99945213, 0.49326119],\
++[	-6.27335533, -0.00033971, 0.00020810, 7.27301562, 0.99896235, 0.99945219, 0.49326118],\
++[	-6.27335541, -0.00033967, 0.00020807, 7.27301574, 0.99896246, 0.99945225, 0.49326126],\
++[	-6.27335550, -0.00033963, 0.00020805, 7.27301587, 0.99896258, 0.99945231, 0.49326104],\
++[	-6.27335559, -0.00033960, 0.00020803, 7.27301600, 0.99896269, 0.99945237, 0.49326124],\
++[	-6.27335568, -0.00033956, 0.00020801, 7.27301612, 0.99896280, 0.99945243, 0.49326121],\
++[	-6.27335577, -0.00033952, 0.00020798, 7.27301625, 0.99896292, 0.99945249, 0.49326126],\
++[	-6.27335586, -0.00033948, 0.00020796, 7.27301638, 0.99896303, 0.99945255, 0.49326146],\
++[	-6.27335595, -0.00033945, 0.00020794, 7.27301650, 0.99896315, 0.99945261, 0.49326123],\
++[	-6.27335604, -0.00033941, 0.00020791, 7.27301663, 0.99896326, 0.99945267, 0.49326137],\
++[	-6.27335613, -0.00033937, 0.00020789, 7.27301675, 0.99896337, 0.99945274, 0.49326124],\
++[	-6.27335622, -0.00033934, 0.00020787, 7.27301688, 0.99896349, 0.99945279, 0.49326144],\
++[	-6.27335631, -0.00033930, 0.00020785, 7.27301701, 0.99896360, 0.99945286, 0.49326118],\
++[	-6.27335639, -0.00033926, 0.00020782, 7.27301713, 0.99896371, 0.99945291, 0.49326131],\
++[	-6.27335648, -0.00033922, 0.00020780, 7.27301726, 0.99896383, 0.99945297, 0.49326131],\
++[	-6.27335657, -0.00033919, 0.00020778, 7.27301739, 0.99896394, 0.99945303, 0.49326137],\
++[	-6.27335666, -0.00033915, 0.00020776, 7.27301751, 0.99896405, 0.99945309, 0.49326160],\
++[	-6.27335675, -0.00033911, 0.00020773, 7.27301764, 0.99896417, 0.99945315, 0.49326160],\
++[	-6.27335684, -0.00033908, 0.00020771, 7.27301776, 0.99896428, 0.99945321, 0.49326123],\
++[	-6.27335693, -0.00033904, 0.00020769, 7.27301789, 0.99896439, 0.99945327, 0.49326161],\
++[	-6.27335702, -0.00033900, 0.00020766, 7.27301802, 0.99896451, 0.99945333, 0.49326152],\
++[	-6.27335711, -0.00033896, 0.00020764, 7.27301814, 0.99896462, 0.99945339, 0.49326143],\
++[	-6.27335720, -0.00033893, 0.00020762, 7.27301827, 0.99896473, 0.99945345, 0.49326145],\
++[	-6.27335728, -0.00033889, 0.00020760, 7.27301839, 0.99896485, 0.99945351, 0.49326173],\
++[	-6.27335737, -0.00033885, 0.00020757, 7.27301852, 0.99896496, 0.99945357, 0.49326144],\
++[	-6.27335746, -0.00033882, 0.00020755, 7.27301865, 0.99896507, 0.99945363, 0.49326151],\
++[	-6.27335755, -0.00033878, 0.00020753, 7.27301877, 0.99896519, 0.99945369, 0.49326137],\
++[	-6.27335764, -0.00033874, 0.00020751, 7.27301890, 0.99896530, 0.99945375, 0.49326159],\
++[	-6.27335773, -0.00033870, 0.00020748, 7.27301902, 0.99896541, 0.99945381, 0.49326170],\
++[	-6.27335782, -0.00033867, 0.00020746, 7.27301915, 0.99896553, 0.99945387, 0.49326167],\
++[	-6.27335791, -0.00033863, 0.00020744, 7.27301927, 0.99896564, 0.99945393, 0.49326166],\
++[	-6.27335799, -0.00033859, 0.00020741, 7.27301940, 0.99896575, 0.99945399, 0.49326169],\
++[	-6.27335808, -0.00033856, 0.00020739, 7.27301953, 0.99896587, 0.99945405, 0.49326162],\
++[	-6.27335817, -0.00033852, 0.00020737, 7.27301965, 0.99896598, 0.99945411, 0.49326183],\
++[	-6.27335826, -0.00033848, 0.00020735, 7.27301978, 0.99896609, 0.99945417, 0.49326173],\
++[	-6.27335835, -0.00033845, 0.00020732, 7.27301990, 0.99896621, 0.99945423, 0.49326171],\
++[	-6.27335844, -0.00033841, 0.00020730, 7.27302003, 0.99896632, 0.99945429, 0.49326166],\
++[	-6.27335853, -0.00033837, 0.00020728, 7.27302015, 0.99896643, 0.99945435, 0.49326165],\
++[	-6.27335861, -0.00033833, 0.00020726, 7.27302028, 0.99896655, 0.99945441, 0.49326181],\
++[	-6.27335870, -0.00033830, 0.00020723, 7.27302041, 0.99896666, 0.99945447, 0.49326156],\
++[	-6.27335879, -0.00033826, 0.00020721, 7.27302053, 0.99896677, 0.99945453, 0.49326193],\
++[	-6.27335888, -0.00033822, 0.00020719, 7.27302066, 0.99896688, 0.99945459, 0.49326181],\
++[	-6.27335897, -0.00033819, 0.00020716, 7.27302078, 0.99896700, 0.99945465, 0.49326163],\
++[	-6.27335906, -0.00033815, 0.00020714, 7.27302091, 0.99896711, 0.99945471, 0.49326173],\
++[	-6.27335915, -0.00033811, 0.00020712, 7.27302103, 0.99896722, 0.99945477, 0.49326188],\
++[	-6.27335923, -0.00033808, 0.00020710, 7.27302116, 0.99896734, 0.99945483, 0.49326193],\
++[	-6.27335932, -0.00033804, 0.00020707, 7.27302128, 0.99896745, 0.99945489, 0.49326203],\
++[	-6.27335941, -0.00033800, 0.00020705, 7.27302141, 0.99896756, 0.99945495, 0.49326181],\
++[	-6.27335950, -0.00033797, 0.00020703, 7.27302153, 0.99896767, 0.99945501, 0.49326178],\
++[	-6.27335959, -0.00033793, 0.00020701, 7.27302166, 0.99896779, 0.99945507, 0.49326183],\
++[	-6.27335968, -0.00033789, 0.00020698, 7.27302178, 0.99896790, 0.99945512, 0.49326183],\
++[	-6.27335976, -0.00033785, 0.00020696, 7.27302191, 0.99896801, 0.99945518, 0.49326190],\
++[	-6.27335985, -0.00033782, 0.00020694, 7.27302203, 0.99896813, 0.99945524, 0.49326204],\
++[	-6.27335994, -0.00033778, 0.00020692, 7.27302216, 0.99896824, 0.99945530, 0.49326197],\
++[	-6.27336003, -0.00033774, 0.00020689, 7.27302228, 0.99896835, 0.99945536, 0.49326200],\
++[	-6.27336012, -0.00033771, 0.00020687, 7.27302241, 0.99896846, 0.99945542, 0.49326187],\
++[	-6.27336021, -0.00033767, 0.00020685, 7.27302253, 0.99896858, 0.99945548, 0.49326214],\
++[	-6.27336029, -0.00033763, 0.00020683, 7.27302266, 0.99896869, 0.99945554, 0.49326210],\
++[	-6.27336038, -0.00033760, 0.00020680, 7.27302278, 0.99896880, 0.99945560, 0.49326210],\
++[	-6.27336047, -0.00033756, 0.00020678, 7.27302291, 0.99896891, 0.99945566, 0.49326201],\
++[	-6.27336056, -0.00033752, 0.00020676, 7.27302303, 0.99896903, 0.99945572, 0.49326223],\
++[	-6.27336065, -0.00033749, 0.00020674, 7.27302316, 0.99896914, 0.99945578, 0.49326214],\
++[	-6.27336073, -0.00033745, 0.00020671, 7.27302328, 0.99896925, 0.99945584, 0.49326184],\
++[	-6.27336082, -0.00033741, 0.00020669, 7.27302341, 0.99896936, 0.99945590, 0.49326190],\
++[	-6.27336091, -0.00033738, 0.00020667, 7.27302353, 0.99896948, 0.99945596, 0.49326192],\
++[	-6.27336100, -0.00033734, 0.00020665, 7.27302366, 0.99896959, 0.99945602, 0.49326215],\
++[	-6.27336109, -0.00033730, 0.00020662, 7.27302378, 0.99896970, 0.99945607, 0.49326198],\
++[	-6.27336117, -0.00033727, 0.00020660, 7.27302391, 0.99896981, 0.99945613, 0.49326211],\
++[	-6.27336126, -0.00033723, 0.00020658, 7.27302403, 0.99896992, 0.99945619, 0.49326202],\
++[	-6.27336135, -0.00033719, 0.00020656, 7.27302416, 0.99897004, 0.99945625, 0.49326208],\
++[	-6.27336144, -0.00033716, 0.00020653, 7.27302428, 0.99897015, 0.99945631, 0.49326216],\
++[	-6.27336153, -0.00033712, 0.00020651, 7.27302441, 0.99897026, 0.99945637, 0.49326199],\
++[	-6.27336161, -0.00033708, 0.00020649, 7.27302453, 0.99897037, 0.99945643, 0.49326218],\
++[	-6.27336170, -0.00033705, 0.00020647, 7.27302466, 0.99897049, 0.99945649, 0.49326214],\
++[	-6.27336179, -0.00033701, 0.00020644, 7.27302478, 0.99897060, 0.99945655, 0.49326240],\
++[	-6.27336188, -0.00033697, 0.00020642, 7.27302491, 0.99897071, 0.99945661, 0.49326199],\
++[	-6.27336197, -0.00033694, 0.00020640, 7.27302503, 0.99897082, 0.99945667, 0.49326203],\
++[	-6.27336205, -0.00033690, 0.00020638, 7.27302515, 0.99897093, 0.99945673, 0.49326224],\
++[	-6.27336214, -0.00033686, 0.00020635, 7.27302528, 0.99897105, 0.99945679, 0.49326220],\
++[	-6.27336223, -0.00033683, 0.00020633, 7.27302540, 0.99897116, 0.99945684, 0.49326222],\
++[	-6.27336232, -0.00033679, 0.00020631, 7.27302553, 0.99897127, 0.99945690, 0.49326242],\
++[	-6.27336240, -0.00033675, 0.00020629, 7.27302565, 0.99897138, 0.99945696, 0.49326213],\
++[	-6.27336249, -0.00033672, 0.00020626, 7.27302578, 0.99897149, 0.99945702, 0.49326219],\
++[	-6.27336258, -0.00033668, 0.00020624, 7.27302590, 0.99897161, 0.99945708, 0.49326219],\
++[	-6.27336267, -0.00033664, 0.00020622, 7.27302603, 0.99897172, 0.99945714, 0.49326250],\
++[	-6.27336275, -0.00033661, 0.00020620, 7.27302615, 0.99897183, 0.99945720, 0.49326244],\
++[	-6.27336284, -0.00033657, 0.00020617, 7.27302627, 0.99897194, 0.99945726, 0.49326221],\
++[	-6.27336293, -0.00033653, 0.00020615, 7.27302640, 0.99897205, 0.99945732, 0.49326264],\
++[	-6.27336302, -0.00033650, 0.00020613, 7.27302652, 0.99897216, 0.99945738, 0.49326232],\
++[	-6.27336311, -0.00033646, 0.00020611, 7.27302665, 0.99897228, 0.99945743, 0.49326230],\
++[	-6.27336319, -0.00033642, 0.00020608, 7.27302677, 0.99897239, 0.99945749, 0.49326227],\
++[	-6.27336328, -0.00033639, 0.00020606, 7.27302689, 0.99897250, 0.99945755, 0.49326245],\
++[	-6.27336337, -0.00033635, 0.00020604, 7.27302702, 0.99897261, 0.99945761, 0.49326242],\
++[	-6.27336346, -0.00033631, 0.00020602, 7.27302714, 0.99897272, 0.99945767, 0.49326246],\
++[	-6.27336354, -0.00033628, 0.00020599, 7.27302727, 0.99897283, 0.99945773, 0.49326241],\
++[	-6.27336363, -0.00033624, 0.00020597, 7.27302739, 0.99897295, 0.99945779, 0.49326240],\
++[	-6.27336372, -0.00033620, 0.00020595, 7.27302751, 0.99897306, 0.99945785, 0.49326249],\
++[	-6.27336381, -0.00033617, 0.00020593, 7.27302764, 0.99897317, 0.99945791, 0.49326270],\
++[	-6.27336389, -0.00033613, 0.00020590, 7.27302776, 0.99897328, 0.99945797, 0.49326235],\
++[	-6.27336398, -0.00033609, 0.00020588, 7.27302789, 0.99897339, 0.99945802, 0.49326239],\
++[	-6.27336407, -0.00033606, 0.00020586, 7.27302801, 0.99897350, 0.99945808, 0.49326248],\
++[	-6.27336415, -0.00033602, 0.00020584, 7.27302813, 0.99897362, 0.99945814, 0.49326264],\
++[	-6.27336424, -0.00033598, 0.00020582, 7.27302826, 0.99897373, 0.99945820, 0.49326263],\
++[	-6.27336433, -0.00033595, 0.00020579, 7.27302838, 0.99897384, 0.99945826, 0.49326243],\
++[	-6.27336442, -0.00033591, 0.00020577, 7.27302851, 0.99897395, 0.99945832, 0.49326267],\
++[	-6.27336450, -0.00033587, 0.00020575, 7.27302863, 0.99897406, 0.99945838, 0.49326234],\
++[	-6.27336459, -0.00033584, 0.00020573, 7.27302875, 0.99897417, 0.99945844, 0.49326251],\
++[	-6.27336468, -0.00033580, 0.00020570, 7.27302888, 0.99897428, 0.99945849, 0.49326259],\
++[	-6.27336477, -0.00033577, 0.00020568, 7.27302900, 0.99897439, 0.99945855, 0.49326266],\
++[	-6.27336485, -0.00033573, 0.00020566, 7.27302912, 0.99897451, 0.99945861, 0.49326257],\
++[	-6.27336494, -0.00033569, 0.00020564, 7.27302925, 0.99897462, 0.99945867, 0.49326257],\
++[	-6.27336503, -0.00033566, 0.00020561, 7.27302937, 0.99897473, 0.99945873, 0.49326264],\
++[	-6.27336511, -0.00033562, 0.00020559, 7.27302949, 0.99897484, 0.99945879, 0.49326274],\
++[	-6.27336520, -0.00033558, 0.00020557, 7.27302962, 0.99897495, 0.99945885, 0.49326286],\
++[	-6.27336529, -0.00033555, 0.00020555, 7.27302974, 0.99897506, 0.99945891, 0.49326289],\
++[	-6.27336538, -0.00033551, 0.00020553, 7.27302986, 0.99897517, 0.99945896, 0.49326274],\
++[	-6.27336546, -0.00033547, 0.00020550, 7.27302999, 0.99897528, 0.99945902, 0.49326267],\
++[	-6.27336555, -0.00033544, 0.00020548, 7.27303011, 0.99897540, 0.99945908, 0.49326282],\
++[	-6.27336564, -0.00033540, 0.00020546, 7.27303023, 0.99897551, 0.99945914, 0.49326268],\
++[	-6.27336572, -0.00033537, 0.00020544, 7.27303036, 0.99897562, 0.99945920, 0.49326305],\
++[	-6.27336581, -0.00033533, 0.00020541, 7.27303048, 0.99897573, 0.99945926, 0.49326276],\
++[	-6.27336590, -0.00033529, 0.00020539, 7.27303060, 0.99897584, 0.99945932, 0.49326281],\
++[	-6.27336598, -0.00033526, 0.00020537, 7.27303073, 0.99897595, 0.99945937, 0.49326294],\
++[	-6.27336607, -0.00033522, 0.00020535, 7.27303085, 0.99897606, 0.99945943, 0.49326286],\
++[	-6.27336616, -0.00033518, 0.00020532, 7.27303097, 0.99897617, 0.99945949, 0.49326281],\
++[	-6.27336625, -0.00033515, 0.00020530, 7.27303110, 0.99897628, 0.99945955, 0.49326286],\
++[	-6.27336633, -0.00033511, 0.00020528, 7.27303122, 0.99897639, 0.99945961, 0.49326297],\
++[	-6.27336642, -0.00033508, 0.00020526, 7.27303134, 0.99897650, 0.99945967, 0.49326279],\
++[	-6.27336651, -0.00033504, 0.00020524, 7.27303147, 0.99897662, 0.99945973, 0.49326311],\
++[	-6.27336659, -0.00033500, 0.00020521, 7.27303159, 0.99897673, 0.99945978, 0.49326289],\
++[	-6.27336668, -0.00033497, 0.00020519, 7.27303171, 0.99897684, 0.99945984, 0.49326305],\
++[	-6.27336677, -0.00033493, 0.00020517, 7.27303184, 0.99897695, 0.99945990, 0.49326297],\
++[	-6.27336685, -0.00033489, 0.00020515, 7.27303196, 0.99897706, 0.99945996, 0.49326277],\
++[	-6.27336694, -0.00033486, 0.00020512, 7.27303208, 0.99897717, 0.99946002, 0.49326308],\
++[	-6.27336703, -0.00033482, 0.00020510, 7.27303221, 0.99897728, 0.99946008, 0.49326289],\
++[	-6.27336711, -0.00033479, 0.00020508, 7.27303233, 0.99897739, 0.99946013, 0.49326298],\
++[	-6.27336720, -0.00033475, 0.00020506, 7.27303245, 0.99897750, 0.99946019, 0.49326300],\
++[	-6.27336729, -0.00033471, 0.00020504, 7.27303257, 0.99897761, 0.99946025, 0.49326304],\
++[	-6.27336737, -0.00033468, 0.00020501, 7.27303270, 0.99897772, 0.99946031, 0.49326311],\
++[	-6.27336746, -0.00033464, 0.00020499, 7.27303282, 0.99897783, 0.99946037, 0.49326309],\
++[	-6.27336755, -0.00033460, 0.00020497, 7.27303294, 0.99897794, 0.99946043, 0.49326303],\
++[	-6.27336763, -0.00033457, 0.00020495, 7.27303306, 0.99897805, 0.99946048, 0.49326308],\
++[	-6.27336772, -0.00033453, 0.00020493, 7.27303319, 0.99897816, 0.99946054, 0.49326287],\
++[	-6.27336781, -0.00033450, 0.00020490, 7.27303331, 0.99897827, 0.99946060, 0.49326314],\
++[	-6.27336789, -0.00033446, 0.00020488, 7.27303343, 0.99897839, 0.99946066, 0.49326307],\
++[	-6.27336798, -0.00033442, 0.00020486, 7.27303356, 0.99897850, 0.99946072, 0.49326307],\
++[	-6.27336807, -0.00033439, 0.00020484, 7.27303368, 0.99897861, 0.99946078, 0.49326322],\
++[	-6.27336815, -0.00033435, 0.00020481, 7.27303380, 0.99897872, 0.99946083, 0.49326311],\
++[	-6.27336824, -0.00033432, 0.00020479, 7.27303392, 0.99897883, 0.99946089, 0.49326322],\
++[	-6.27336833, -0.00033428, 0.00020477, 7.27303405, 0.99897894, 0.99946095, 0.49326339],\
++[	-6.27336841, -0.00033424, 0.00020475, 7.27303417, 0.99897905, 0.99946101, 0.49326319],\
++[	-6.27336850, -0.00033421, 0.00020473, 7.27303429, 0.99897916, 0.99946107, 0.49326315],\
++[	-6.27336858, -0.00033417, 0.00020470, 7.27303441, 0.99897927, 0.99946113, 0.49326326],\
++[	-6.27336867, -0.00033413, 0.00020468, 7.27303454, 0.99897938, 0.99946118, 0.49326320],\
++[	-6.27336876, -0.00033410, 0.00020466, 7.27303466, 0.99897949, 0.99946124, 0.49326335],\
++[	-6.27336884, -0.00033406, 0.00020464, 7.27303478, 0.99897960, 0.99946130, 0.49326321],\
++[	-6.27336893, -0.00033403, 0.00020462, 7.27303490, 0.99897971, 0.99946136, 0.49326341],\
++[	-6.27336902, -0.00033399, 0.00020459, 7.27303503, 0.99897982, 0.99946142, 0.49326319],\
++[	-6.27336910, -0.00033395, 0.00020457, 7.27303515, 0.99897993, 0.99946147, 0.49326349],\
++[	-6.27336919, -0.00033392, 0.00020455, 7.27303527, 0.99898004, 0.99946153, 0.49326330],\
++[	-6.27336927, -0.00033388, 0.00020453, 7.27303539, 0.99898015, 0.99946159, 0.49326316],\
++[	-6.27336936, -0.00033385, 0.00020451, 7.27303551, 0.99898026, 0.99946165, 0.49326319],\
++[	-6.27336945, -0.00033381, 0.00020448, 7.27303564, 0.99898037, 0.99946171, 0.49326337],\
++[	-6.27336953, -0.00033377, 0.00020446, 7.27303576, 0.99898048, 0.99946176, 0.49326350],\
++[	-6.27336962, -0.00033374, 0.00020444, 7.27303588, 0.99898059, 0.99946182, 0.49326333],\
++[	-6.27336971, -0.00033370, 0.00020442, 7.27303600, 0.99898070, 0.99946188, 0.49326343],\
++[	-6.27336979, -0.00033367, 0.00020439, 7.27303613, 0.99898081, 0.99946194, 0.49326342],\
++[	-6.27336988, -0.00033363, 0.00020437, 7.27303625, 0.99898092, 0.99946200, 0.49326348],\
++[	-6.27336996, -0.00033359, 0.00020435, 7.27303637, 0.99898103, 0.99946205, 0.49326358],\
++[	-6.27337005, -0.00033356, 0.00020433, 7.27303649, 0.99898114, 0.99946211, 0.49326344],\
++[	-6.27337014, -0.00033352, 0.00020431, 7.27303661, 0.99898125, 0.99946217, 0.49326333],\
++[	-6.27337022, -0.00033349, 0.00020428, 7.27303674, 0.99898136, 0.99946223, 0.49326344],\
++[	-6.27337031, -0.00033345, 0.00020426, 7.27303686, 0.99898147, 0.99946229, 0.49326346],\
++[	-6.27337039, -0.00033342, 0.00020424, 7.27303698, 0.99898158, 0.99946234, 0.49326354],\
++[	-6.27337048, -0.00033338, 0.00020422, 7.27303710, 0.99898169, 0.99946240, 0.49326336],\
++[	-6.27337057, -0.00033334, 0.00020420, 7.27303722, 0.99898180, 0.99946246, 0.49326349],\
++[	-6.27337065, -0.00033331, 0.00020417, 7.27303734, 0.99898191, 0.99946252, 0.49326348],\
++[	-6.27337074, -0.00033327, 0.00020415, 7.27303747, 0.99898202, 0.99946258, 0.49326342],\
++[	-6.27337082, -0.00033324, 0.00020413, 7.27303759, 0.99898213, 0.99946263, 0.49326343],\
++[	-6.27337091, -0.00033320, 0.00020411, 7.27303771, 0.99898224, 0.99946269, 0.49326362],\
++[	-6.27337100, -0.00033316, 0.00020409, 7.27303783, 0.99898234, 0.99946275, 0.49326356],\
++[	-6.27337108, -0.00033313, 0.00020406, 7.27303795, 0.99898245, 0.99946281, 0.49326362],\
++[	-6.27337117, -0.00033309, 0.00020404, 7.27303808, 0.99898256, 0.99946287, 0.49326353],\
++[	-6.27337125, -0.00033306, 0.00020402, 7.27303820, 0.99898267, 0.99946292, 0.49326384],\
++[	-6.27337134, -0.00033302, 0.00020400, 7.27303832, 0.99898278, 0.99946298, 0.49326355],\
++[	-6.27337142, -0.00033298, 0.00020398, 7.27303844, 0.99898289, 0.99946304, 0.49326361],\
++[	-6.27337151, -0.00033295, 0.00020395, 7.27303856, 0.99898300, 0.99946310, 0.49326362],\
++[	-6.27337160, -0.00033291, 0.00020393, 7.27303868, 0.99898311, 0.99946315, 0.49326349],\
++[	-6.27337168, -0.00033288, 0.00020391, 7.27303880, 0.99898322, 0.99946321, 0.49326369],\
++[	-6.27337177, -0.00033284, 0.00020389, 7.27303893, 0.99898333, 0.99946327, 0.49326369],\
++[	-6.27337185, -0.00033281, 0.00020387, 7.27303905, 0.99898344, 0.99946333, 0.49326369],\
++[	-6.27337194, -0.00033277, 0.00020385, 7.27303917, 0.99898355, 0.99946338, 0.49326367],\
++[	-6.27337202, -0.00033273, 0.00020382, 7.27303929, 0.99898366, 0.99946344, 0.49326359],\
++[	-6.27337211, -0.00033270, 0.00020380, 7.27303941, 0.99898377, 0.99946350, 0.49326376],\
++[	-6.27337220, -0.00033266, 0.00020378, 7.27303953, 0.99898388, 0.99946356, 0.49326382],\
++[	-6.27337228, -0.00033263, 0.00020376, 7.27303965, 0.99898399, 0.99946362, 0.49326384],\
++[	-6.27337237, -0.00033259, 0.00020374, 7.27303978, 0.99898409, 0.99946367, 0.49326379],\
++[	-6.27337245, -0.00033256, 0.00020371, 7.27303990, 0.99898420, 0.99946373, 0.49326389],\
++[	-6.27337254, -0.00033252, 0.00020369, 7.27304002, 0.99898431, 0.99946379, 0.49326390],\
++[	-6.27337262, -0.00033248, 0.00020367, 7.27304014, 0.99898442, 0.99946385, 0.49326379],\
++[	-6.27337271, -0.00033245, 0.00020365, 7.27304026, 0.99898453, 0.99946390, 0.49326384],\
++[	-6.27337279, -0.00033241, 0.00020363, 7.27304038, 0.99898464, 0.99946396, 0.49326381],\
++[	-6.27337288, -0.00033238, 0.00020360, 7.27304050, 0.99898475, 0.99946402, 0.49326372],\
++[	-6.27337297, -0.00033234, 0.00020358, 7.27304062, 0.99898486, 0.99946408, 0.49326377],\
++[	-6.27337305, -0.00033231, 0.00020356, 7.27304075, 0.99898497, 0.99946413, 0.49326406],\
++[	-6.27337314, -0.00033227, 0.00020354, 7.27304087, 0.99898508, 0.99946419, 0.49326380],\
++[	-6.27337322, -0.00033223, 0.00020352, 7.27304099, 0.99898519, 0.99946425, 0.49326407],\
++[	-6.27337331, -0.00033220, 0.00020350, 7.27304111, 0.99898529, 0.99946431, 0.49326377],\
++[	-6.27337339, -0.00033216, 0.00020347, 7.27304123, 0.99898540, 0.99946436, 0.49326399],\
++[	-6.27337348, -0.00033213, 0.00020345, 7.27304135, 0.99898551, 0.99946442, 0.49326392],\
++[	-6.27337356, -0.00033209, 0.00020343, 7.27304147, 0.99898562, 0.99946448, 0.49326402],\
++[	-6.27337365, -0.00033206, 0.00020341, 7.27304159, 0.99898573, 0.99946454, 0.49326407],\
++[	-6.27337373, -0.00033202, 0.00020339, 7.27304171, 0.99898584, 0.99946459, 0.49326397],\
++[	-6.27337382, -0.00033198, 0.00020336, 7.27304183, 0.99898595, 0.99946465, 0.49326388],\
++[	-6.27337390, -0.00033195, 0.00020334, 7.27304196, 0.99898606, 0.99946471, 0.49326400],\
++[	-6.27337399, -0.00033191, 0.00020332, 7.27304208, 0.99898616, 0.99946477, 0.49326405],\
++[	-6.27337407, -0.00033188, 0.00020330, 7.27304220, 0.99898627, 0.99946482, 0.49326405],\
++[	-6.27337416, -0.00033184, 0.00020328, 7.27304232, 0.99898638, 0.99946488, 0.49326395],\
++[	-6.27337425, -0.00033181, 0.00020326, 7.27304244, 0.99898649, 0.99946494, 0.49326406],\
++[	-6.27337433, -0.00033177, 0.00020323, 7.27304256, 0.99898660, 0.99946500, 0.49326412],\
++[	-6.27337442, -0.00033174, 0.00020321, 7.27304268, 0.99898671, 0.99946505, 0.49326418],\
++[	-6.27337450, -0.00033170, 0.00020319, 7.27304280, 0.99898682, 0.99946511, 0.49326405],\
++[	-6.27337459, -0.00033166, 0.00020317, 7.27304292, 0.99898693, 0.99946517, 0.49326394],\
++[	-6.27337467, -0.00033163, 0.00020315, 7.27304304, 0.99898703, 0.99946522, 0.49326407],\
++[	-6.27337476, -0.00033159, 0.00020312, 7.27304316, 0.99898714, 0.99946528, 0.49326381],\
++[	-6.27337484, -0.00033156, 0.00020310, 7.27304328, 0.99898725, 0.99946534, 0.49326400],\
++[	-6.27337493, -0.00033152, 0.00020308, 7.27304340, 0.99898736, 0.99946540, 0.49326414],\
++[	-6.27337501, -0.00033149, 0.00020306, 7.27304352, 0.99898747, 0.99946545, 0.49326426],\
++[	-6.27337510, -0.00033145, 0.00020304, 7.27304364, 0.99898758, 0.99946551, 0.49326422],\
++[	-6.27337518, -0.00033142, 0.00020302, 7.27304376, 0.99898768, 0.99946557, 0.49326412],\
++[	-6.27337527, -0.00033138, 0.00020299, 7.27304389, 0.99898779, 0.99946563, 0.49326410],\
++[	-6.27337535, -0.00033135, 0.00020297, 7.27304401, 0.99898790, 0.99946568, 0.49326415],\
++[	-6.27337544, -0.00033131, 0.00020295, 7.27304413, 0.99898801, 0.99946574, 0.49326422],\
++[	-6.27337552, -0.00033127, 0.00020293, 7.27304425, 0.99898812, 0.99946580, 0.49326416],\
++[	-6.27337561, -0.00033124, 0.00020291, 7.27304437, 0.99898823, 0.99946585, 0.49326449],\
++[	-6.27337569, -0.00033120, 0.00020289, 7.27304449, 0.99898833, 0.99946591, 0.49326425],\
++[	-6.27337578, -0.00033117, 0.00020286, 7.27304461, 0.99898844, 0.99946597, 0.49326435],\
++[	-6.27337586, -0.00033113, 0.00020284, 7.27304473, 0.99898855, 0.99946603, 0.49326445],\
++[	-6.27337594, -0.00033110, 0.00020282, 7.27304485, 0.99898866, 0.99946608, 0.49326455],\
++[	-6.27337603, -0.00033106, 0.00020280, 7.27304497, 0.99898877, 0.99946614, 0.49326433],\
++[	-6.27337611, -0.00033103, 0.00020278, 7.27304509, 0.99898888, 0.99946620, 0.49326418],\
++[	-6.27337620, -0.00033099, 0.00020275, 7.27304521, 0.99898898, 0.99946625, 0.49326429],\
++[	-6.27337628, -0.00033096, 0.00020273, 7.27304533, 0.99898909, 0.99946631, 0.49326433],\
++[	-6.27337637, -0.00033092, 0.00020271, 7.27304545, 0.99898920, 0.99946637, 0.49326438],\
++[	-6.27337645, -0.00033088, 0.00020269, 7.27304557, 0.99898931, 0.99946643, 0.49326440],\
++[	-6.27337654, -0.00033085, 0.00020267, 7.27304569, 0.99898942, 0.99946648, 0.49326448],\
++[	-6.27337662, -0.00033081, 0.00020265, 7.27304581, 0.99898952, 0.99946654, 0.49326440],\
++[	-6.27337671, -0.00033078, 0.00020262, 7.27304593, 0.99898963, 0.99946660, 0.49326441],\
++[	-6.27337679, -0.00033074, 0.00020260, 7.27304605, 0.99898974, 0.99946665, 0.49326439],\
++[	-6.27337688, -0.00033071, 0.00020258, 7.27304617, 0.99898985, 0.99946671, 0.49326444],\
++[	-6.27337696, -0.00033067, 0.00020256, 7.27304629, 0.99898996, 0.99946677, 0.49326437],\
++[	-6.27337705, -0.00033064, 0.00020254, 7.27304641, 0.99899006, 0.99946682, 0.49326463],\
++[	-6.27337713, -0.00033060, 0.00020252, 7.27304653, 0.99899017, 0.99946688, 0.49326433],\
++[	-6.27337721, -0.00033057, 0.00020250, 7.27304665, 0.99899028, 0.99946694, 0.49326452],\
++[	-6.27337730, -0.00033053, 0.00020247, 7.27304677, 0.99899039, 0.99946700, 0.49326464],\
++[	-6.27337738, -0.00033050, 0.00020245, 7.27304689, 0.99899050, 0.99946705, 0.49326462],\
++[	-6.27337747, -0.00033046, 0.00020243, 7.27304701, 0.99899060, 0.99946711, 0.49326446],\
++[	-6.27337755, -0.00033043, 0.00020241, 7.27304713, 0.99899071, 0.99946717, 0.49326448],\
++[	-6.27337764, -0.00033039, 0.00020239, 7.27304725, 0.99899082, 0.99946722, 0.49326479],\
++[	-6.27337772, -0.00033035, 0.00020237, 7.27304737, 0.99899093, 0.99946728, 0.49326445],\
++[	-6.27337781, -0.00033032, 0.00020234, 7.27304749, 0.99899103, 0.99946734, 0.49326446],\
++[	-6.27337789, -0.00033028, 0.00020232, 7.27304761, 0.99899114, 0.99946739, 0.49326446],\
++[	-6.27337797, -0.00033025, 0.00020230, 7.27304773, 0.99899125, 0.99946745, 0.49326456],\
++[	-6.27337806, -0.00033021, 0.00020228, 7.27304785, 0.99899136, 0.99946751, 0.49326462],\
++[	-6.27337814, -0.00033018, 0.00020226, 7.27304796, 0.99899146, 0.99946756, 0.49326466],\
++[	-6.27337823, -0.00033014, 0.00020224, 7.27304808, 0.99899157, 0.99946762, 0.49326469],\
++[	-6.27337831, -0.00033011, 0.00020221, 7.27304820, 0.99899168, 0.99946768, 0.49326455],\
++[	-6.27337840, -0.00033007, 0.00020219, 7.27304832, 0.99899179, 0.99946773, 0.49326445],\
++[	-6.27337848, -0.00033004, 0.00020217, 7.27304844, 0.99899190, 0.99946779, 0.49326466],\
++[	-6.27337856, -0.00033000, 0.00020215, 7.27304856, 0.99899200, 0.99946785, 0.49326467],\
++[	-6.27337865, -0.00032997, 0.00020213, 7.27304868, 0.99899211, 0.99946790, 0.49326472],\
++[	-6.27337873, -0.00032993, 0.00020211, 7.27304880, 0.99899222, 0.99946796, 0.49326465],\
++[	-6.27337882, -0.00032990, 0.00020208, 7.27304892, 0.99899233, 0.99946802, 0.49326487],\
++[	-6.27337890, -0.00032986, 0.00020206, 7.27304904, 0.99899243, 0.99946807, 0.49326453],\
++[	-6.27337899, -0.00032983, 0.00020204, 7.27304916, 0.99899254, 0.99946813, 0.49326462],\
++[	-6.27337907, -0.00032979, 0.00020202, 7.27304928, 0.99899265, 0.99946819, 0.49326466],\
++[	-6.27337915, -0.00032976, 0.00020200, 7.27304940, 0.99899275, 0.99946824, 0.49326470],\
++[	-6.27337924, -0.00032972, 0.00020198, 7.27304952, 0.99899286, 0.99946830, 0.49326485],\
++[	-6.27337932, -0.00032969, 0.00020196, 7.27304964, 0.99899297, 0.99946836, 0.49326493],\
++[	-6.27337941, -0.00032965, 0.00020193, 7.27304976, 0.99899308, 0.99946841, 0.49326472],\
++[	-6.27337949, -0.00032962, 0.00020191, 7.27304987, 0.99899318, 0.99946847, 0.49326466],\
++[	-6.27337957, -0.00032958, 0.00020189, 7.27304999, 0.99899329, 0.99946853, 0.49326475],\
++[	-6.27337966, -0.00032955, 0.00020187, 7.27305011, 0.99899340, 0.99946858, 0.49326474],\
++[	-6.27337974, -0.00032951, 0.00020185, 7.27305023, 0.99899351, 0.99946864, 0.49326494],\
++[	-6.27337983, -0.00032948, 0.00020183, 7.27305035, 0.99899361, 0.99946870, 0.49326475],\
++[	-6.27337991, -0.00032944, 0.00020181, 7.27305047, 0.99899372, 0.99946875, 0.49326504],\
++[	-6.27337999, -0.00032941, 0.00020178, 7.27305059, 0.99899383, 0.99946881, 0.49326510],\
++[	-6.27338008, -0.00032937, 0.00020176, 7.27305071, 0.99899393, 0.99946887, 0.49326506],\
++[	-6.27338016, -0.00032934, 0.00020174, 7.27305083, 0.99899404, 0.99946892, 0.49326491],\
++[	-6.27338025, -0.00032930, 0.00020172, 7.27305095, 0.99899415, 0.99946898, 0.49326495],\
++[	-6.27338033, -0.00032927, 0.00020170, 7.27305106, 0.99899425, 0.99946904, 0.49326488],\
++[	-6.27338041, -0.00032923, 0.00020168, 7.27305118, 0.99899436, 0.99946909, 0.49326492],\
++[	-6.27338050, -0.00032920, 0.00020165, 7.27305130, 0.99899447, 0.99946915, 0.49326492],\
++[	-6.27338058, -0.00032916, 0.00020163, 7.27305142, 0.99899458, 0.99946921, 0.49326493],\
++[	-6.27338067, -0.00032913, 0.00020161, 7.27305154, 0.99899468, 0.99946926, 0.49326498],\
++[	-6.27338075, -0.00032909, 0.00020159, 7.27305166, 0.99899479, 0.99946932, 0.49326509],\
++[	-6.27338083, -0.00032906, 0.00020157, 7.27305178, 0.99899490, 0.99946938, 0.49326511],\
++[	-6.27338092, -0.00032902, 0.00020155, 7.27305190, 0.99899500, 0.99946943, 0.49326491],\
++[	-6.27338100, -0.00032899, 0.00020153, 7.27305201, 0.99899511, 0.99946949, 0.49326497],\
++[	-6.27338108, -0.00032895, 0.00020150, 7.27305213, 0.99899522, 0.99946954, 0.49326517],\
++[	-6.27338117, -0.00032892, 0.00020148, 7.27305225, 0.99899532, 0.99946960, 0.49326501],\
++[	-6.27338125, -0.00032888, 0.00020146, 7.27305237, 0.99899543, 0.99946966, 0.49326506],\
++[	-6.27338134, -0.00032885, 0.00020144, 7.27305249, 0.99899554, 0.99946971, 0.49326507],\
++[	-6.27338142, -0.00032881, 0.00020142, 7.27305261, 0.99899564, 0.99946977, 0.49326497],\
++[	-6.27338150, -0.00032878, 0.00020140, 7.27305273, 0.99899575, 0.99946983, 0.49326508],\
++[	-6.27338159, -0.00032874, 0.00020138, 7.27305284, 0.99899586, 0.99946988, 0.49326522],\
++[	-6.27338167, -0.00032871, 0.00020135, 7.27305296, 0.99899596, 0.99946994, 0.49326525],\
++[	-6.27338175, -0.00032867, 0.00020133, 7.27305308, 0.99899607, 0.99946999, 0.49326527],\
++[	-6.27338184, -0.00032864, 0.00020131, 7.27305320, 0.99899618, 0.99947005, 0.49326512],\
++[	-6.27338192, -0.00032860, 0.00020129, 7.27305332, 0.99899628, 0.99947011, 0.49326544],\
++[	-6.27338200, -0.00032857, 0.00020127, 7.27305344, 0.99899639, 0.99947016, 0.49326511],\
++[	-6.27338209, -0.00032853, 0.00020125, 7.27305356, 0.99899650, 0.99947022, 0.49326525],\
++[	-6.27338217, -0.00032850, 0.00020123, 7.27305367, 0.99899660, 0.99947028, 0.49326517],\
++[	-6.27338225, -0.00032846, 0.00020121, 7.27305379, 0.99899671, 0.99947033, 0.49326515],\
++[	-6.27338234, -0.00032843, 0.00020118, 7.27305391, 0.99899682, 0.99947039, 0.49326512],\
++[	-6.27338242, -0.00032839, 0.00020116, 7.27305403, 0.99899692, 0.99947045, 0.49326510],\
++[	-6.27338250, -0.00032836, 0.00020114, 7.27305415, 0.99899703, 0.99947050, 0.49326538],\
++[	-6.27338259, -0.00032832, 0.00020112, 7.27305427, 0.99899714, 0.99947056, 0.49326526],\
++[	-6.27338267, -0.00032829, 0.00020110, 7.27305438, 0.99899724, 0.99947061, 0.49326555],\
++[	-6.27338275, -0.00032825, 0.00020108, 7.27305450, 0.99899735, 0.99947067, 0.49326559],\
++[	-6.27338284, -0.00032822, 0.00020106, 7.27305462, 0.99899745, 0.99947073, 0.49326528],\
++[	-6.27338292, -0.00032818, 0.00020103, 7.27305474, 0.99899756, 0.99947078, 0.49326542],\
++[	-6.27338300, -0.00032815, 0.00020101, 7.27305486, 0.99899767, 0.99947084, 0.49326519],\
++[	-6.27338309, -0.00032811, 0.00020099, 7.27305497, 0.99899777, 0.99947089, 0.49326536],\
++[	-6.27338317, -0.00032808, 0.00020097, 7.27305509, 0.99899788, 0.99947095, 0.49326533],\
++[	-6.27338325, -0.00032804, 0.00020095, 7.27305521, 0.99899799, 0.99947101, 0.49326540],\
++[	-6.27338334, -0.00032801, 0.00020093, 7.27305533, 0.99899809, 0.99947106, 0.49326552],\
++[	-6.27338342, -0.00032797, 0.00020091, 7.27305545, 0.99899820, 0.99947112, 0.49326543],\
++[	-6.27338350, -0.00032794, 0.00020089, 7.27305556, 0.99899830, 0.99947117, 0.49326548],\
++[	-6.27338359, -0.00032791, 0.00020086, 7.27305568, 0.99899841, 0.99947123, 0.49326555],\
++[	-6.27338367, -0.00032787, 0.00020084, 7.27305580, 0.99899852, 0.99947129, 0.49326550],\
++[	-6.27338375, -0.00032784, 0.00020082, 7.27305592, 0.99899862, 0.99947134, 0.49326539],\
++[	-6.27338384, -0.00032780, 0.00020080, 7.27305604, 0.99899873, 0.99947140, 0.49326537],\
++[	-6.27338392, -0.00032777, 0.00020078, 7.27305615, 0.99899884, 0.99947145, 0.49326540],\
++[	-6.27338400, -0.00032773, 0.00020076, 7.27305627, 0.99899894, 0.99947151, 0.49326552],\
++[	-6.27338409, -0.00032770, 0.00020074, 7.27305639, 0.99899905, 0.99947157, 0.49326544],\
++[	-6.27338417, -0.00032766, 0.00020072, 7.27305651, 0.99899915, 0.99947162, 0.49326541],\
++[	-6.27338425, -0.00032763, 0.00020069, 7.27305662, 0.99899926, 0.99947168, 0.49326544],\
++[	-6.27338433, -0.00032759, 0.00020067, 7.27305674, 0.99899937, 0.99947173, 0.49326555],\
++[	-6.27338442, -0.00032756, 0.00020065, 7.27305686, 0.99899947, 0.99947179, 0.49326592],\
++[	-6.27338450, -0.00032752, 0.00020063, 7.27305698, 0.99899958, 0.99947185, 0.49326555],\
++[	-6.27338458, -0.00032749, 0.00020061, 7.27305709, 0.99899968, 0.99947190, 0.49326556],\
++[	-6.27338467, -0.00032745, 0.00020059, 7.27305721, 0.99899979, 0.99947196, 0.49326577],\
++[	-6.27338475, -0.00032742, 0.00020057, 7.27305733, 0.99899989, 0.99947201, 0.49326572],\
++[	-6.27338483, -0.00032739, 0.00020055, 7.27305745, 0.99900000, 0.99947207, 0.49326564],\
++[	-6.27338492, -0.00032735, 0.00020052, 7.27305756, 0.99900011, 0.99947213, 0.49326574],\
++[	-6.27338500, -0.00032732, 0.00020050, 7.27305768, 0.99900021, 0.99947218, 0.49326570],\
++[	-6.27338508, -0.00032728, 0.00020048, 7.27305780, 0.99900032, 0.99947224, 0.49326585],\
++[	-6.27338516, -0.00032725, 0.00020046, 7.27305792, 0.99900042, 0.99947229, 0.49326561],\
++[	-6.27338525, -0.00032721, 0.00020044, 7.27305804, 0.99900053, 0.99947235, 0.49326554],\
++[	-6.27338533, -0.00032718, 0.00020042, 7.27305815, 0.99900063, 0.99947240, 0.49326565],\
++[	-6.27338541, -0.00032714, 0.00020040, 7.27305827, 0.99900074, 0.99947246, 0.49326560],\
++[	-6.27338550, -0.00032711, 0.00020038, 7.27305839, 0.99900085, 0.99947252, 0.49326561],\
++[	-6.27338558, -0.00032707, 0.00020035, 7.27305850, 0.99900095, 0.99947257, 0.49326588],\
++[	-6.27338566, -0.00032704, 0.00020033, 7.27305862, 0.99900106, 0.99947263, 0.49326567],\
++[	-6.27338574, -0.00032700, 0.00020031, 7.27305874, 0.99900116, 0.99947268, 0.49326573],\
++[	-6.27338583, -0.00032697, 0.00020029, 7.27305886, 0.99900127, 0.99947274, 0.49326588],\
++[	-6.27338591, -0.00032694, 0.00020027, 7.27305897, 0.99900137, 0.99947279, 0.49326587],\
++[	-6.27338599, -0.00032690, 0.00020025, 7.27305909, 0.99900148, 0.99947285, 0.49326591],\
++[	-6.27338607, -0.00032687, 0.00020023, 7.27305921, 0.99900158, 0.99947291, 0.49326568],\
++[	-6.27338616, -0.00032683, 0.00020021, 7.27305932, 0.99900169, 0.99947296, 0.49326586],\
++[	-6.27338624, -0.00032680, 0.00020019, 7.27305944, 0.99900180, 0.99947302, 0.49326595],\
++[	-6.27338632, -0.00032676, 0.00020016, 7.27305956, 0.99900190, 0.99947307, 0.49326594],\
++[	-6.27338640, -0.00032673, 0.00020014, 7.27305968, 0.99900201, 0.99947313, 0.49326576],\
++[	-6.27338649, -0.00032669, 0.00020012, 7.27305979, 0.99900211, 0.99947318, 0.49326600],\
++[	-6.27338657, -0.00032666, 0.00020010, 7.27305991, 0.99900222, 0.99947324, 0.49326567],\
++[	-6.27338665, -0.00032663, 0.00020008, 7.27306003, 0.99900232, 0.99947330, 0.49326591],\
++[	-6.27338674, -0.00032659, 0.00020006, 7.27306014, 0.99900243, 0.99947335, 0.49326584],\
++[	-6.27338682, -0.00032656, 0.00020004, 7.27306026, 0.99900253, 0.99947341, 0.49326591],\
++[	-6.27338690, -0.00032652, 0.00020002, 7.27306038, 0.99900264, 0.99947346, 0.49326598],\
++[	-6.27338698, -0.00032649, 0.00020000, 7.27306050, 0.99900274, 0.99947352, 0.49326605],\
++[	-6.27338706, -0.00032645, 0.00019997, 7.27306061, 0.99900285, 0.99947357, 0.49326584],\
++[	-6.27338715, -0.00032642, 0.00019995, 7.27306073, 0.99900295, 0.99947363, 0.49326610],\
++[	-6.27338723, -0.00032638, 0.00019993, 7.27306085, 0.99900306, 0.99947368, 0.49326584],\
++[	-6.27338731, -0.00032635, 0.00019991, 7.27306096, 0.99900316, 0.99947374, 0.49326595],\
++[	-6.27338739, -0.00032632, 0.00019989, 7.27306108, 0.99900327, 0.99947379, 0.49326574],\
++[	-6.27338748, -0.00032628, 0.00019987, 7.27306120, 0.99900337, 0.99947385, 0.49326593],\
++[	-6.27338756, -0.00032625, 0.00019985, 7.27306131, 0.99900348, 0.99947391, 0.49326617],\
++[	-6.27338764, -0.00032621, 0.00019983, 7.27306143, 0.99900358, 0.99947396, 0.49326608],\
++[	-6.27338772, -0.00032618, 0.00019981, 7.27306155, 0.99900369, 0.99947402, 0.49326601],\
++[	-6.27338781, -0.00032614, 0.00019978, 7.27306166, 0.99900379, 0.99947407, 0.49326595],\
++[	-6.27338789, -0.00032611, 0.00019976, 7.27306178, 0.99900390, 0.99947413, 0.49326615],\
++[	-6.27338797, -0.00032607, 0.00019974, 7.27306190, 0.99900400, 0.99947418, 0.49326594],\
++[	-6.27338805, -0.00032604, 0.00019972, 7.27306201, 0.99900411, 0.99947424, 0.49326623],\
++[	-6.27338814, -0.00032601, 0.00019970, 7.27306213, 0.99900421, 0.99947429, 0.49326628],\
++[	-6.27338822, -0.00032597, 0.00019968, 7.27306225, 0.99900432, 0.99947435, 0.49326618],\
++[	-6.27338830, -0.00032594, 0.00019966, 7.27306236, 0.99900442, 0.99947440, 0.49326621],\
++[	-6.27338838, -0.00032590, 0.00019964, 7.27306248, 0.99900453, 0.99947446, 0.49326598],\
++[	-6.27338846, -0.00032587, 0.00019962, 7.27306260, 0.99900463, 0.99947452, 0.49326615],\
++[	-6.27338855, -0.00032583, 0.00019960, 7.27306271, 0.99900474, 0.99947457, 0.49326647],\
++[	-6.27338863, -0.00032580, 0.00019957, 7.27306283, 0.99900484, 0.99947463, 0.49326621],\
++[	-6.27338871, -0.00032577, 0.00019955, 7.27306294, 0.99900495, 0.99947468, 0.49326643],\
++[	-6.27338879, -0.00032573, 0.00019953, 7.27306306, 0.99900505, 0.99947474, 0.49326629],\
++[	-6.27338887, -0.00032570, 0.00019951, 7.27306318, 0.99900516, 0.99947479, 0.49326635],\
++[	-6.27338896, -0.00032566, 0.00019949, 7.27306329, 0.99900526, 0.99947485, 0.49326632],\
++[	-6.27338904, -0.00032563, 0.00019947, 7.27306341, 0.99900537, 0.99947490, 0.49326626],\
++[	-6.27338912, -0.00032559, 0.00019945, 7.27306353, 0.99900547, 0.99947496, 0.49326639],\
++[	-6.27338920, -0.00032556, 0.00019943, 7.27306364, 0.99900558, 0.99947501, 0.49326627],\
++[	-6.27338928, -0.00032553, 0.00019941, 7.27306376, 0.99900568, 0.99947507, 0.49326645],\
++[	-6.27338937, -0.00032549, 0.00019939, 7.27306387, 0.99900578, 0.99947512, 0.49326623],\
++[	-6.27338945, -0.00032546, 0.00019936, 7.27306399, 0.99900589, 0.99947518, 0.49326607],\
++[	-6.27338953, -0.00032542, 0.00019934, 7.27306411, 0.99900599, 0.99947523, 0.49326641],\
++[	-6.27338961, -0.00032539, 0.00019932, 7.27306422, 0.99900610, 0.99947529, 0.49326644],\
++[	-6.27338969, -0.00032536, 0.00019930, 7.27306434, 0.99900620, 0.99947534, 0.49326635],\
++[	-6.27338978, -0.00032532, 0.00019928, 7.27306446, 0.99900631, 0.99947540, 0.49326617],\
++[	-6.27338986, -0.00032529, 0.00019926, 7.27306457, 0.99900641, 0.99947545, 0.49326647],\
++[	-6.27338994, -0.00032525, 0.00019924, 7.27306469, 0.99900652, 0.99947551, 0.49326638],\
++[	-6.27339002, -0.00032522, 0.00019922, 7.27306480, 0.99900662, 0.99947556, 0.49326625],\
++[	-6.27339010, -0.00032518, 0.00019920, 7.27306492, 0.99900673, 0.99947562, 0.49326654],\
++[	-6.27339019, -0.00032515, 0.00019918, 7.27306504, 0.99900683, 0.99947567, 0.49326643],\
++[	-6.27339027, -0.00032512, 0.00019915, 7.27306515, 0.99900693, 0.99947573, 0.49326639],\
++[	-6.27339035, -0.00032508, 0.00019913, 7.27306527, 0.99900704, 0.99947578, 0.49326643],\
++[	-6.27339043, -0.00032505, 0.00019911, 7.27306538, 0.99900714, 0.99947584, 0.49326613],\
++[	-6.27339051, -0.00032501, 0.00019909, 7.27306550, 0.99900725, 0.99947589, 0.49326635],\
++[	-6.27339059, -0.00032498, 0.00019907, 7.27306561, 0.99900735, 0.99947595, 0.49326654],\
++[	-6.27339068, -0.00032495, 0.00019905, 7.27306573, 0.99900746, 0.99947600, 0.49326649],\
++[	-6.27339076, -0.00032491, 0.00019903, 7.27306585, 0.99900756, 0.99947606, 0.49326645],\
++[	-6.27339084, -0.00032488, 0.00019901, 7.27306596, 0.99900766, 0.99947611, 0.49326635],\
++[	-6.27339092, -0.00032484, 0.00019899, 7.27306608, 0.99900777, 0.99947617, 0.49326646],\
++[	-6.27339100, -0.00032481, 0.00019897, 7.27306619, 0.99900787, 0.99947622, 0.49326660],\
++[	-6.27339108, -0.00032477, 0.00019895, 7.27306631, 0.99900798, 0.99947628, 0.49326653],\
++[	-6.27339117, -0.00032474, 0.00019892, 7.27306642, 0.99900808, 0.99947633, 0.49326655],\
++[	-6.27339125, -0.00032471, 0.00019890, 7.27306654, 0.99900818, 0.99947639, 0.49326642],\
++[	-6.27339133, -0.00032467, 0.00019888, 7.27306666, 0.99900829, 0.99947644, 0.49326648],\
++[	-6.27339141, -0.00032464, 0.00019886, 7.27306677, 0.99900839, 0.99947650, 0.49326679],\
++[	-6.27339149, -0.00032460, 0.00019884, 7.27306689, 0.99900850, 0.99947655, 0.49326686],\
++[	-6.27339157, -0.00032457, 0.00019882, 7.27306700, 0.99900860, 0.99947661, 0.49326656],\
++[	-6.27339165, -0.00032454, 0.00019880, 7.27306712, 0.99900870, 0.99947666, 0.49326662],\
++[	-6.27339174, -0.00032450, 0.00019878, 7.27306723, 0.99900881, 0.99947672, 0.49326679],\
++[	-6.27339182, -0.00032447, 0.00019876, 7.27306735, 0.99900891, 0.99947677, 0.49326673],\
++[	-6.27339190, -0.00032443, 0.00019874, 7.27306746, 0.99900902, 0.99947683, 0.49326675],\
++[	-6.27339198, -0.00032440, 0.00019872, 7.27306758, 0.99900912, 0.99947688, 0.49326682],\
++[	-6.27339206, -0.00032437, 0.00019870, 7.27306770, 0.99900922, 0.99947694, 0.49326647],\
++[	-6.27339214, -0.00032433, 0.00019867, 7.27306781, 0.99900933, 0.99947699, 0.49326653],\
++[	-6.27339222, -0.00032430, 0.00019865, 7.27306793, 0.99900943, 0.99947705, 0.49326669],\
++[	-6.27339231, -0.00032426, 0.00019863, 7.27306804, 0.99900954, 0.99947710, 0.49326657],\
++[	-6.27339239, -0.00032423, 0.00019861, 7.27306816, 0.99900964, 0.99947716, 0.49326679],\
++[	-6.27339247, -0.00032420, 0.00019859, 7.27306827, 0.99900974, 0.99947721, 0.49326690],\
++[	-6.27339255, -0.00032416, 0.00019857, 7.27306839, 0.99900985, 0.99947727, 0.49326680],\
++[	-6.27339263, -0.00032413, 0.00019855, 7.27306850, 0.99900995, 0.99947732, 0.49326670],\
++[	-6.27339271, -0.00032409, 0.00019853, 7.27306862, 0.99901005, 0.99947738, 0.49326690],\
++[	-6.27339279, -0.00032406, 0.00019851, 7.27306873, 0.99901016, 0.99947743, 0.49326682],\
++[	-6.27339287, -0.00032403, 0.00019849, 7.27306885, 0.99901026, 0.99947749, 0.49326670],\
++[	-6.27339296, -0.00032399, 0.00019847, 7.27306896, 0.99901036, 0.99947754, 0.49326689],\
++[	-6.27339304, -0.00032396, 0.00019845, 7.27306908, 0.99901047, 0.99947760, 0.49326683],\
++[	-6.27339312, -0.00032393, 0.00019843, 7.27306919, 0.99901057, 0.99947765, 0.49326682],\
++[	-6.27339320, -0.00032389, 0.00019840, 7.27306931, 0.99901068, 0.99947770, 0.49326694],\
++[	-6.27339328, -0.00032386, 0.00019838, 7.27306942, 0.99901078, 0.99947776, 0.49326682],\
++[	-6.27339336, -0.00032382, 0.00019836, 7.27306954, 0.99901088, 0.99947781, 0.49326696],\
++[	-6.27339344, -0.00032379, 0.00019834, 7.27306965, 0.99901099, 0.99947787, 0.49326703],\
++[	-6.27339352, -0.00032376, 0.00019832, 7.27306977, 0.99901109, 0.99947792, 0.49326705],\
++[	-6.27339360, -0.00032372, 0.00019830, 7.27306988, 0.99901119, 0.99947798, 0.49326683],\
++[	-6.27339369, -0.00032369, 0.00019828, 7.27307000, 0.99901130, 0.99947803, 0.49326692],\
++[	-6.27339377, -0.00032365, 0.00019826, 7.27307011, 0.99901140, 0.99947809, 0.49326694],\
++[	-6.27339385, -0.00032362, 0.00019824, 7.27307023, 0.99901150, 0.99947814, 0.49326688],\
++[	-6.27339393, -0.00032359, 0.00019822, 7.27307034, 0.99901161, 0.99947820, 0.49326687],\
++[	-6.27339401, -0.00032355, 0.00019820, 7.27307046, 0.99901171, 0.99947825, 0.49326697],\
++[	-6.27339409, -0.00032352, 0.00019818, 7.27307057, 0.99901181, 0.99947830, 0.49326717],\
++[	-6.27339417, -0.00032349, 0.00019816, 7.27307069, 0.99901192, 0.99947836, 0.49326712],\
++[	-6.27339425, -0.00032345, 0.00019813, 7.27307080, 0.99901202, 0.99947841, 0.49326703],\
++[	-6.27339433, -0.00032342, 0.00019811, 7.27307092, 0.99901212, 0.99947847, 0.49326706],\
++[	-6.27339441, -0.00032338, 0.00019809, 7.27307103, 0.99901223, 0.99947852, 0.49326716],\
++[	-6.27339450, -0.00032335, 0.00019807, 7.27307115, 0.99901233, 0.99947858, 0.49326689],\
++[	-6.27339458, -0.00032332, 0.00019805, 7.27307126, 0.99901243, 0.99947863, 0.49326699],\
++[	-6.27339466, -0.00032328, 0.00019803, 7.27307137, 0.99901254, 0.99947869, 0.49326696],\
++[	-6.27339474, -0.00032325, 0.00019801, 7.27307149, 0.99901264, 0.99947874, 0.49326718],\
++[	-6.27339482, -0.00032321, 0.00019799, 7.27307160, 0.99901274, 0.99947880, 0.49326717],\
++[	-6.27339490, -0.00032318, 0.00019797, 7.27307172, 0.99901285, 0.99947885, 0.49326705],\
++[	-6.27339498, -0.00032315, 0.00019795, 7.27307183, 0.99901295, 0.99947890, 0.49326716],\
++[	-6.27339506, -0.00032311, 0.00019793, 7.27307195, 0.99901305, 0.99947896, 0.49326730],\
++[	-6.27339514, -0.00032308, 0.00019791, 7.27307206, 0.99901315, 0.99947901, 0.49326718],\
++[	-6.27339522, -0.00032305, 0.00019789, 7.27307218, 0.99901326, 0.99947907, 0.49326722],\
++[	-6.27339530, -0.00032301, 0.00019787, 7.27307229, 0.99901336, 0.99947912, 0.49326715],\
++[	-6.27339538, -0.00032298, 0.00019785, 7.27307241, 0.99901346, 0.99947918, 0.49326728],\
++[	-6.27339546, -0.00032295, 0.00019782, 7.27307252, 0.99901357, 0.99947923, 0.49326724],\
++[	-6.27339555, -0.00032291, 0.00019780, 7.27307263, 0.99901367, 0.99947928, 0.49326701],\
++[	-6.27339563, -0.00032288, 0.00019778, 7.27307275, 0.99901377, 0.99947934, 0.49326708],\
++[	-6.27339571, -0.00032284, 0.00019776, 7.27307286, 0.99901388, 0.99947939, 0.49326726],\
++[	-6.27339579, -0.00032281, 0.00019774, 7.27307298, 0.99901398, 0.99947945, 0.49326720],\
++[	-6.27339587, -0.00032278, 0.00019772, 7.27307309, 0.99901408, 0.99947950, 0.49326714],\
++[	-6.27339595, -0.00032274, 0.00019770, 7.27307321, 0.99901418, 0.99947956, 0.49326729],\
++[	-6.27339603, -0.00032271, 0.00019768, 7.27307332, 0.99901429, 0.99947961, 0.49326744],\
++[	-6.27339611, -0.00032268, 0.00019766, 7.27307343, 0.99901439, 0.99947966, 0.49326726],\
++[	-6.27339619, -0.00032264, 0.00019764, 7.27307355, 0.99901449, 0.99947972, 0.49326746],\
++[	-6.27339627, -0.00032261, 0.00019762, 7.27307366, 0.99901459, 0.99947977, 0.49326747],\
++[	-6.27339635, -0.00032258, 0.00019760, 7.27307378, 0.99901470, 0.99947983, 0.49326746],\
++[	-6.27339643, -0.00032254, 0.00019758, 7.27307389, 0.99901480, 0.99947988, 0.49326737],\
++[	-6.27339651, -0.00032251, 0.00019756, 7.27307400, 0.99901490, 0.99947994, 0.49326725],\
++[	-6.27339659, -0.00032247, 0.00019754, 7.27307412, 0.99901501, 0.99947999, 0.49326744],\
++[	-6.27339667, -0.00032244, 0.00019752, 7.27307423, 0.99901511, 0.99948004, 0.49326734],\
++[	-6.27339675, -0.00032241, 0.00019749, 7.27307435, 0.99901521, 0.99948010, 0.49326748],\
++[	-6.27339683, -0.00032237, 0.00019747, 7.27307446, 0.99901531, 0.99948015, 0.49326735],\
++[	-6.27339691, -0.00032234, 0.00019745, 7.27307457, 0.99901542, 0.99948021, 0.49326718],\
++[	-6.27339699, -0.00032231, 0.00019743, 7.27307469, 0.99901552, 0.99948026, 0.49326726],\
++[	-6.27339708, -0.00032227, 0.00019741, 7.27307480, 0.99901562, 0.99948031, 0.49326739],\
++[	-6.27339716, -0.00032224, 0.00019739, 7.27307492, 0.99901572, 0.99948037, 0.49326736],\
++[	-6.27339724, -0.00032221, 0.00019737, 7.27307503, 0.99901583, 0.99948042, 0.49326751],\
++[	-6.27339732, -0.00032217, 0.00019735, 7.27307514, 0.99901593, 0.99948048, 0.49326746],\
++[	-6.27339740, -0.00032214, 0.00019733, 7.27307526, 0.99901603, 0.99948053, 0.49326750],\
++[	-6.27339748, -0.00032210, 0.00019731, 7.27307537, 0.99901613, 0.99948059, 0.49326720],\
++[	-6.27339756, -0.00032207, 0.00019729, 7.27307549, 0.99901624, 0.99948064, 0.49326742],\
++[	-6.27339764, -0.00032204, 0.00019727, 7.27307560, 0.99901634, 0.99948069, 0.49326770],\
++[	-6.27339772, -0.00032200, 0.00019725, 7.27307571, 0.99901644, 0.99948075, 0.49326757],\
++[	-6.27339780, -0.00032197, 0.00019723, 7.27307583, 0.99901654, 0.99948080, 0.49326750],\
++[	-6.27339788, -0.00032194, 0.00019721, 7.27307594, 0.99901664, 0.99948086, 0.49326781],\
++[	-6.27339796, -0.00032190, 0.00019719, 7.27307605, 0.99901675, 0.99948091, 0.49326776],\
++[	-6.27339804, -0.00032187, 0.00019717, 7.27307617, 0.99901685, 0.99948096, 0.49326747],\
++[	-6.27339812, -0.00032184, 0.00019715, 7.27307628, 0.99901695, 0.99948102, 0.49326778],\
++[	-6.27339820, -0.00032180, 0.00019713, 7.27307639, 0.99901705, 0.99948107, 0.49326749],\
++[	-6.27339828, -0.00032177, 0.00019710, 7.27307651, 0.99901716, 0.99948113, 0.49326751],\
++[	-6.27339836, -0.00032174, 0.00019708, 7.27307662, 0.99901726, 0.99948118, 0.49326780],\
++[	-6.27339844, -0.00032170, 0.00019706, 7.27307674, 0.99901736, 0.99948123, 0.49326747],\
++[	-6.27339852, -0.00032167, 0.00019704, 7.27307685, 0.99901746, 0.99948129, 0.49326772],\
++[	-6.27339860, -0.00032164, 0.00019702, 7.27307696, 0.99901756, 0.99948134, 0.49326768],\
++[	-6.27339868, -0.00032160, 0.00019700, 7.27307708, 0.99901767, 0.99948139, 0.49326756],\
++[	-6.27339876, -0.00032157, 0.00019698, 7.27307719, 0.99901777, 0.99948145, 0.49326753],\
++[	-6.27339884, -0.00032154, 0.00019696, 7.27307730, 0.99901787, 0.99948150, 0.49326754],\
++[	-6.27339892, -0.00032150, 0.00019694, 7.27307742, 0.99901797, 0.99948156, 0.49326763],\
++[	-6.27339900, -0.00032147, 0.00019692, 7.27307753, 0.99901807, 0.99948161, 0.49326773],\
++[	-6.27339908, -0.00032144, 0.00019690, 7.27307764, 0.99901818, 0.99948166, 0.49326760],\
++[	-6.27339916, -0.00032140, 0.00019688, 7.27307776, 0.99901828, 0.99948172, 0.49326795],\
++[	-6.27339924, -0.00032137, 0.00019686, 7.27307787, 0.99901838, 0.99948177, 0.49326781],\
++[	-6.27339932, -0.00032134, 0.00019684, 7.27307798, 0.99901848, 0.99948183, 0.49326791],\
++[	-6.27339940, -0.00032130, 0.00019682, 7.27307810, 0.99901858, 0.99948188, 0.49326782],\
++[	-6.27339948, -0.00032127, 0.00019680, 7.27307821, 0.99901869, 0.99948193, 0.49326774],\
++[	-6.27339956, -0.00032124, 0.00019678, 7.27307832, 0.99901879, 0.99948199, 0.49326801],\
++[	-6.27339964, -0.00032120, 0.00019676, 7.27307843, 0.99901889, 0.99948204, 0.49326796],\
++[	-6.27339972, -0.00032117, 0.00019674, 7.27307855, 0.99901899, 0.99948209, 0.49326796],\
++[	-6.27339980, -0.00032114, 0.00019672, 7.27307866, 0.99901909, 0.99948215, 0.49326764],\
++[	-6.27339988, -0.00032110, 0.00019670, 7.27307877, 0.99901920, 0.99948220, 0.49326786],\
++[	-6.27339996, -0.00032107, 0.00019668, 7.27307889, 0.99901930, 0.99948226, 0.49326797],\
++[	-6.27340004, -0.00032104, 0.00019665, 7.27307900, 0.99901940, 0.99948231, 0.49326772],\
++[	-6.27340012, -0.00032100, 0.00019663, 7.27307911, 0.99901950, 0.99948236, 0.49326808],\
++[	-6.27340020, -0.00032097, 0.00019661, 7.27307923, 0.99901960, 0.99948242, 0.49326793],\
++[	-6.27340028, -0.00032094, 0.00019659, 7.27307934, 0.99901970, 0.99948247, 0.49326800],\
++[	-6.27340036, -0.00032090, 0.00019657, 7.27307945, 0.99901981, 0.99948252, 0.49326818],\
++[	-6.27340043, -0.00032087, 0.00019655, 7.27307956, 0.99901991, 0.99948258, 0.49326800],\
++[	-6.27340051, -0.00032084, 0.00019653, 7.27307968, 0.99902001, 0.99948263, 0.49326833],\
++[	-6.27340059, -0.00032080, 0.00019651, 7.27307979, 0.99902011, 0.99948268, 0.49326799],\
++[	-6.27340067, -0.00032077, 0.00019649, 7.27307990, 0.99902021, 0.99948274, 0.49326805],\
++[	-6.27340075, -0.00032074, 0.00019647, 7.27308002, 0.99902031, 0.99948279, 0.49326790],\
++[	-6.27340083, -0.00032070, 0.00019645, 7.27308013, 0.99902042, 0.99948285, 0.49326822],\
++[	-6.27340091, -0.00032067, 0.00019643, 7.27308024, 0.99902052, 0.99948290, 0.49326817],\
++[	-6.27340099, -0.00032064, 0.00019641, 7.27308035, 0.99902062, 0.99948295, 0.49326820],\
++[	-6.27340107, -0.00032060, 0.00019639, 7.27308047, 0.99902072, 0.99948301, 0.49326814],\
++[	-6.27340115, -0.00032057, 0.00019637, 7.27308058, 0.99902082, 0.99948306, 0.49326794],\
++[	-6.27340123, -0.00032054, 0.00019635, 7.27308069, 0.99902092, 0.99948311, 0.49326788],\
++[	-6.27340131, -0.00032050, 0.00019633, 7.27308081, 0.99902102, 0.99948317, 0.49326824],\
++[	-6.27340139, -0.00032047, 0.00019631, 7.27308092, 0.99902113, 0.99948322, 0.49326821],\
++[	-6.27340147, -0.00032044, 0.00019629, 7.27308103, 0.99902123, 0.99948327, 0.49326804],\
++[	-6.27340155, -0.00032040, 0.00019627, 7.27308114, 0.99902133, 0.99948333, 0.49326826],\
++[	-6.27340163, -0.00032037, 0.00019625, 7.27308126, 0.99902143, 0.99948338, 0.49326837],\
++[	-6.27340171, -0.00032034, 0.00019623, 7.27308137, 0.99902153, 0.99948343, 0.49326808],\
++[	-6.27340179, -0.00032031, 0.00019621, 7.27308148, 0.99902163, 0.99948349, 0.49326814],\
++[	-6.27340187, -0.00032027, 0.00019619, 7.27308159, 0.99902173, 0.99948354, 0.49326823],\
++[	-6.27340194, -0.00032024, 0.00019617, 7.27308171, 0.99902183, 0.99948359, 0.49326820],\
++[	-6.27340202, -0.00032021, 0.00019615, 7.27308182, 0.99902194, 0.99948365, 0.49326819],\
++[	-6.27340210, -0.00032017, 0.00019613, 7.27308193, 0.99902204, 0.99948370, 0.49326828],\
++[	-6.27340218, -0.00032014, 0.00019611, 7.27308204, 0.99902214, 0.99948376, 0.49326815],\
++[	-6.27340226, -0.00032011, 0.00019608, 7.27308216, 0.99902224, 0.99948381, 0.49326833],\
++[	-6.27340234, -0.00032007, 0.00019606, 7.27308227, 0.99902234, 0.99948386, 0.49326820],\
++[	-6.27340242, -0.00032004, 0.00019604, 7.27308238, 0.99902244, 0.99948392, 0.49326839],\
++[	-6.27340250, -0.00032001, 0.00019602, 7.27308249, 0.99902254, 0.99948397, 0.49326825],\
++[	-6.27340258, -0.00031997, 0.00019600, 7.27308261, 0.99902264, 0.99948402, 0.49326820],\
++[	-6.27340266, -0.00031994, 0.00019598, 7.27308272, 0.99902274, 0.99948408, 0.49326829],\
++[	-6.27340274, -0.00031991, 0.00019596, 7.27308283, 0.99902285, 0.99948413, 0.49326838],\
++[	-6.27340282, -0.00031987, 0.00019594, 7.27308294, 0.99902295, 0.99948418, 0.49326829],\
++[	-6.27340290, -0.00031984, 0.00019592, 7.27308305, 0.99902305, 0.99948424, 0.49326812],\
++[	-6.27340297, -0.00031981, 0.00019590, 7.27308317, 0.99902315, 0.99948429, 0.49326825],\
++[	-6.27340305, -0.00031978, 0.00019588, 7.27308328, 0.99902325, 0.99948434, 0.49326844],\
++[	-6.27340313, -0.00031974, 0.00019586, 7.27308339, 0.99902335, 0.99948440, 0.49326822],\
++[	-6.27340321, -0.00031971, 0.00019584, 7.27308350, 0.99902345, 0.99948445, 0.49326848],\
++[	-6.27340329, -0.00031968, 0.00019582, 7.27308361, 0.99902355, 0.99948450, 0.49326823],\
++[	-6.27340337, -0.00031964, 0.00019580, 7.27308373, 0.99902365, 0.99948455, 0.49326831],\
++[	-6.27340345, -0.00031961, 0.00019578, 7.27308384, 0.99902375, 0.99948461, 0.49326842],\
++[	-6.27340353, -0.00031958, 0.00019576, 7.27308395, 0.99902385, 0.99948466, 0.49326833],\
++[	-6.27340361, -0.00031954, 0.00019574, 7.27308406, 0.99902396, 0.99948471, 0.49326844],\
++[	-6.27340369, -0.00031951, 0.00019572, 7.27308417, 0.99902406, 0.99948477, 0.49326841],\
++[	-6.27340377, -0.00031948, 0.00019570, 7.27308429, 0.99902416, 0.99948482, 0.49326813],\
++[	-6.27340384, -0.00031945, 0.00019568, 7.27308440, 0.99902426, 0.99948487, 0.49326861],\
++[	-6.27340392, -0.00031941, 0.00019566, 7.27308451, 0.99902436, 0.99948493, 0.49326836],\
++[	-6.27340400, -0.00031938, 0.00019564, 7.27308462, 0.99902446, 0.99948498, 0.49326869],\
++[	-6.27340408, -0.00031935, 0.00019562, 7.27308473, 0.99902456, 0.99948503, 0.49326883],\
++[	-6.27340416, -0.00031931, 0.00019560, 7.27308485, 0.99902466, 0.99948509, 0.49326857],\
++[	-6.27340424, -0.00031928, 0.00019558, 7.27308496, 0.99902476, 0.99948514, 0.49326861],\
++[	-6.27340432, -0.00031925, 0.00019556, 7.27308507, 0.99902486, 0.99948519, 0.49326841],\
++[	-6.27340440, -0.00031922, 0.00019554, 7.27308518, 0.99902496, 0.99948525, 0.49326856],\
++[	-6.27340448, -0.00031918, 0.00019552, 7.27308529, 0.99902506, 0.99948530, 0.49326867],\
++[	-6.27340455, -0.00031915, 0.00019550, 7.27308540, 0.99902516, 0.99948535, 0.49326859],\
++[	-6.27340463, -0.00031912, 0.00019548, 7.27308552, 0.99902526, 0.99948541, 0.49326854],\
++[	-6.27340471, -0.00031908, 0.00019546, 7.27308563, 0.99902536, 0.99948546, 0.49326869],\
++[	-6.27340479, -0.00031905, 0.00019544, 7.27308574, 0.99902546, 0.99948551, 0.49326853],\
++[	-6.27340487, -0.00031902, 0.00019542, 7.27308585, 0.99902557, 0.99948556, 0.49326880],\
++[	-6.27340495, -0.00031899, 0.00019540, 7.27308596, 0.99902567, 0.99948562, 0.49326872],\
++[	-6.27340503, -0.00031895, 0.00019538, 7.27308607, 0.99902577, 0.99948567, 0.49326861],\
++[	-6.27340511, -0.00031892, 0.00019536, 7.27308619, 0.99902587, 0.99948572, 0.49326878],\
++[	-6.27340518, -0.00031889, 0.00019534, 7.27308630, 0.99902597, 0.99948578, 0.49326876],\
++[	-6.27340526, -0.00031885, 0.00019532, 7.27308641, 0.99902607, 0.99948583, 0.49326873],\
++[	-6.27340534, -0.00031882, 0.00019530, 7.27308652, 0.99902617, 0.99948588, 0.49326869],\
++[	-6.27340542, -0.00031879, 0.00019528, 7.27308663, 0.99902627, 0.99948594, 0.49326868],\
++[	-6.27340550, -0.00031876, 0.00019526, 7.27308674, 0.99902637, 0.99948599, 0.49326886],\
++[	-6.27340558, -0.00031872, 0.00019524, 7.27308685, 0.99902647, 0.99948604, 0.49326868],\
++[	-6.27340566, -0.00031869, 0.00019522, 7.27308697, 0.99902657, 0.99948609, 0.49326883],\
++[	-6.27340573, -0.00031866, 0.00019520, 7.27308708, 0.99902667, 0.99948615, 0.49326876],\
++[	-6.27340581, -0.00031862, 0.00019518, 7.27308719, 0.99902677, 0.99948620, 0.49326874],\
++[	-6.27340589, -0.00031859, 0.00019516, 7.27308730, 0.99902687, 0.99948625, 0.49326882],\
++[	-6.27340597, -0.00031856, 0.00019514, 7.27308741, 0.99902697, 0.99948631, 0.49326866],\
++[	-6.27340605, -0.00031853, 0.00019512, 7.27308752, 0.99902707, 0.99948636, 0.49326860],\
++[	-6.27340613, -0.00031849, 0.00019510, 7.27308763, 0.99902717, 0.99948641, 0.49326865],\
++[	-6.27340621, -0.00031846, 0.00019508, 7.27308775, 0.99902727, 0.99948646, 0.49326872],\
++[	-6.27340628, -0.00031843, 0.00019506, 7.27308786, 0.99902737, 0.99948652, 0.49326863],\
++[	-6.27340636, -0.00031839, 0.00019504, 7.27308797, 0.99902747, 0.99948657, 0.49326869],\
++[	-6.27340644, -0.00031836, 0.00019502, 7.27308808, 0.99902757, 0.99948662, 0.49326888],\
++[	-6.27340652, -0.00031833, 0.00019500, 7.27308819, 0.99902767, 0.99948668, 0.49326895],\
++[	-6.27340660, -0.00031830, 0.00019498, 7.27308830, 0.99902777, 0.99948673, 0.49326876],\
++[	-6.27340668, -0.00031826, 0.00019496, 7.27308841, 0.99902787, 0.99948678, 0.49326889],\
++[	-6.27340675, -0.00031823, 0.00019494, 7.27308852, 0.99902797, 0.99948683, 0.49326878],\
++[	-6.27340683, -0.00031820, 0.00019492, 7.27308863, 0.99902807, 0.99948689, 0.49326887],\
++[	-6.27340691, -0.00031817, 0.00019490, 7.27308875, 0.99902817, 0.99948694, 0.49326916],\
++[	-6.27340699, -0.00031813, 0.00019488, 7.27308886, 0.99902827, 0.99948699, 0.49326908],\
++[	-6.27340707, -0.00031810, 0.00019486, 7.27308897, 0.99902837, 0.99948704, 0.49326893],\
++[	-6.27340715, -0.00031807, 0.00019484, 7.27308908, 0.99902847, 0.99948710, 0.49326890],\
++[	-6.27340722, -0.00031803, 0.00019482, 7.27308919, 0.99902857, 0.99948715, 0.49326887],\
++[	-6.27340730, -0.00031800, 0.00019480, 7.27308930, 0.99902867, 0.99948720, 0.49326878],\
++[	-6.27340738, -0.00031797, 0.00019478, 7.27308941, 0.99902877, 0.99948726, 0.49326894],\
++[	-6.27340746, -0.00031794, 0.00019476, 7.27308952, 0.99902887, 0.99948731, 0.49326894],\
++[	-6.27340754, -0.00031790, 0.00019474, 7.27308963, 0.99902897, 0.99948736, 0.49326908],\
++[	-6.27340761, -0.00031787, 0.00019472, 7.27308974, 0.99902907, 0.99948741, 0.49326876],\
++[	-6.27340769, -0.00031784, 0.00019470, 7.27308985, 0.99902917, 0.99948747, 0.49326912],\
++[	-6.27340777, -0.00031781, 0.00019468, 7.27308996, 0.99902927, 0.99948752, 0.49326904],\
++[	-6.27340785, -0.00031777, 0.00019466, 7.27309008, 0.99902937, 0.99948757, 0.49326901],\
++[	-6.27340793, -0.00031774, 0.00019464, 7.27309019, 0.99902947, 0.99948762, 0.49326930],\
++[	-6.27340801, -0.00031771, 0.00019462, 7.27309030, 0.99902957, 0.99948768, 0.49326907],\
++[	-6.27340808, -0.00031768, 0.00019460, 7.27309041, 0.99902967, 0.99948773, 0.49326924],\
++[	-6.27340816, -0.00031764, 0.00019458, 7.27309052, 0.99902977, 0.99948778, 0.49326904],\
++[	-6.27340824, -0.00031761, 0.00019456, 7.27309063, 0.99902987, 0.99948783, 0.49326893],\
++[	-6.27340832, -0.00031758, 0.00019454, 7.27309074, 0.99902997, 0.99948789, 0.49326909],\
++[	-6.27340840, -0.00031755, 0.00019452, 7.27309085, 0.99903006, 0.99948794, 0.49326930],\
++[	-6.27340847, -0.00031751, 0.00019450, 7.27309096, 0.99903016, 0.99948799, 0.49326922],\
++[	-6.27340855, -0.00031748, 0.00019448, 7.27309107, 0.99903026, 0.99948804, 0.49326913],\
++[	-6.27340863, -0.00031745, 0.00019446, 7.27309118, 0.99903036, 0.99948810, 0.49326905],\
++[	-6.27340871, -0.00031742, 0.00019444, 7.27309129, 0.99903046, 0.99948815, 0.49326923],\
++[	-6.27340879, -0.00031738, 0.00019442, 7.27309140, 0.99903056, 0.99948820, 0.49326938],\
++[	-6.27340886, -0.00031735, 0.00019440, 7.27309151, 0.99903066, 0.99948825, 0.49326909],\
++[	-6.27340894, -0.00031732, 0.00019438, 7.27309162, 0.99903076, 0.99948831, 0.49326912],\
++[	-6.27340902, -0.00031728, 0.00019436, 7.27309173, 0.99903086, 0.99948836, 0.49326920],\
++[	-6.27340910, -0.00031725, 0.00019434, 7.27309184, 0.99903096, 0.99948841, 0.49326917],\
++[	-6.27340917, -0.00031722, 0.00019432, 7.27309196, 0.99903106, 0.99948846, 0.49326921],\
++[	-6.27340925, -0.00031719, 0.00019430, 7.27309207, 0.99903116, 0.99948852, 0.49326919],\
++[	-6.27340933, -0.00031715, 0.00019428, 7.27309218, 0.99903126, 0.99948857, 0.49326928],\
++[	-6.27340941, -0.00031712, 0.00019426, 7.27309229, 0.99903136, 0.99948862, 0.49326918],\
++[	-6.27340949, -0.00031709, 0.00019424, 7.27309240, 0.99903146, 0.99948867, 0.49326958],\
++[	-6.27340956, -0.00031706, 0.00019422, 7.27309251, 0.99903156, 0.99948873, 0.49326936],\
++[	-6.27340964, -0.00031702, 0.00019420, 7.27309262, 0.99903165, 0.99948878, 0.49326927],\
++[	-6.27340972, -0.00031699, 0.00019418, 7.27309273, 0.99903175, 0.99948883, 0.49326942],\
++[	-6.27340980, -0.00031696, 0.00019416, 7.27309284, 0.99903185, 0.99948888, 0.49326912],\
++[	-6.27340987, -0.00031693, 0.00019414, 7.27309295, 0.99903195, 0.99948894, 0.49326924],\
++[	-6.27340995, -0.00031690, 0.00019412, 7.27309306, 0.99903205, 0.99948899, 0.49326951],\
++[	-6.27341003, -0.00031686, 0.00019410, 7.27309317, 0.99903215, 0.99948904, 0.49326942],\
++[	-6.27341011, -0.00031683, 0.00019408, 7.27309328, 0.99903225, 0.99948909, 0.49326925],\
++[	-6.27341019, -0.00031680, 0.00019406, 7.27309339, 0.99903235, 0.99948914, 0.49326927],\
++[	-6.27341026, -0.00031677, 0.00019404, 7.27309350, 0.99903245, 0.99948920, 0.49326936],\
++[	-6.27341034, -0.00031673, 0.00019402, 7.27309361, 0.99903255, 0.99948925, 0.49326944],\
++[	-6.27341042, -0.00031670, 0.00019400, 7.27309372, 0.99903265, 0.99948930, 0.49326949],\
++[	-6.27341050, -0.00031667, 0.00019398, 7.27309383, 0.99903274, 0.99948935, 0.49326915],\
++[	-6.27341057, -0.00031664, 0.00019396, 7.27309394, 0.99903284, 0.99948941, 0.49326929],\
++[	-6.27341065, -0.00031660, 0.00019394, 7.27309405, 0.99903294, 0.99948946, 0.49326955],\
++[	-6.27341073, -0.00031657, 0.00019392, 7.27309416, 0.99903304, 0.99948951, 0.49326921],\
++[	-6.27341081, -0.00031654, 0.00019390, 7.27309427, 0.99903314, 0.99948956, 0.49326941],\
++[	-6.27341088, -0.00031651, 0.00019388, 7.27309438, 0.99903324, 0.99948961, 0.49326954],\
++[	-6.27341096, -0.00031647, 0.00019386, 7.27309449, 0.99903334, 0.99948967, 0.49326935],\
++[	-6.27341104, -0.00031644, 0.00019384, 7.27309460, 0.99903344, 0.99948972, 0.49326969],\
++[	-6.27341112, -0.00031641, 0.00019382, 7.27309471, 0.99903354, 0.99948977, 0.49326971],\
++[	-6.27341119, -0.00031638, 0.00019380, 7.27309482, 0.99903363, 0.99948982, 0.49326945],\
++[	-6.27341127, -0.00031634, 0.00019378, 7.27309493, 0.99903373, 0.99948988, 0.49326964],\
++[	-6.27341135, -0.00031631, 0.00019376, 7.27309504, 0.99903383, 0.99948993, 0.49326955],\
++[	-6.27341143, -0.00031628, 0.00019374, 7.27309515, 0.99903393, 0.99948998, 0.49326931],\
++[	-6.27341150, -0.00031625, 0.00019372, 7.27309526, 0.99903403, 0.99949003, 0.49326939],\
++[	-6.27341158, -0.00031622, 0.00019370, 7.27309537, 0.99903413, 0.99949008, 0.49326953],\
++[	-6.27341166, -0.00031618, 0.00019368, 7.27309547, 0.99903423, 0.99949014, 0.49326974],\
++[	-6.27341173, -0.00031615, 0.00019366, 7.27309558, 0.99903433, 0.99949019, 0.49326980],\
++[	-6.27341181, -0.00031612, 0.00019364, 7.27309569, 0.99903442, 0.99949024, 0.49326965],\
++[	-6.27341189, -0.00031609, 0.00019362, 7.27309580, 0.99903452, 0.99949029, 0.49326969],\
++[	-6.27341197, -0.00031605, 0.00019360, 7.27309591, 0.99903462, 0.99949034, 0.49326954],\
++[	-6.27341204, -0.00031602, 0.00019358, 7.27309602, 0.99903472, 0.99949040, 0.49326953],\
++[	-6.27341212, -0.00031599, 0.00019356, 7.27309613, 0.99903482, 0.99949045, 0.49326986],\
++[	-6.27341220, -0.00031596, 0.00019354, 7.27309624, 0.99903492, 0.99949050, 0.49326990],\
++[	-6.27341228, -0.00031592, 0.00019352, 7.27309635, 0.99903502, 0.99949055, 0.49326950],\
++[	-6.27341235, -0.00031589, 0.00019350, 7.27309646, 0.99903511, 0.99949060, 0.49326968],\
++[	-6.27341243, -0.00031586, 0.00019348, 7.27309657, 0.99903521, 0.99949066, 0.49326946],\
++[	-6.27341251, -0.00031583, 0.00019346, 7.27309668, 0.99903531, 0.99949071, 0.49326958],\
++[	-6.27341258, -0.00031580, 0.00019344, 7.27309679, 0.99903541, 0.99949076, 0.49326990],\
++[	-6.27341266, -0.00031576, 0.00019342, 7.27309690, 0.99903551, 0.99949081, 0.49326972],\
++[	-6.27341274, -0.00031573, 0.00019340, 7.27309701, 0.99903561, 0.99949086, 0.49326980],\
++[	-6.27341282, -0.00031570, 0.00019338, 7.27309712, 0.99903570, 0.99949092, 0.49327001],\
++[	-6.27341289, -0.00031567, 0.00019336, 7.27309723, 0.99903580, 0.99949097, 0.49326985],\
++[	-6.27341297, -0.00031563, 0.00019334, 7.27309734, 0.99903590, 0.99949102, 0.49326983],\
++[	-6.27341305, -0.00031560, 0.00019333, 7.27309744, 0.99903600, 0.99949107, 0.49326985],\
++[	-6.27341312, -0.00031557, 0.00019331, 7.27309755, 0.99903610, 0.99949112, 0.49327005],\
++[	-6.27341320, -0.00031554, 0.00019329, 7.27309766, 0.99903620, 0.99949118, 0.49326985],\
++[	-6.27341328, -0.00031551, 0.00019327, 7.27309777, 0.99903629, 0.99949123, 0.49326980],\
++[	-6.27341336, -0.00031547, 0.00019325, 7.27309788, 0.99903639, 0.99949128, 0.49326990],\
++[	-6.27341343, -0.00031544, 0.00019323, 7.27309799, 0.99903649, 0.99949133, 0.49326985],\
++[	-6.27341351, -0.00031541, 0.00019321, 7.27309810, 0.99903659, 0.99949138, 0.49326999],\
++[	-6.27341359, -0.00031538, 0.00019319, 7.27309821, 0.99903669, 0.99949144, 0.49326989],\
++[	-6.27341366, -0.00031535, 0.00019317, 7.27309832, 0.99903679, 0.99949149, 0.49326987],\
++[	-6.27341374, -0.00031531, 0.00019315, 7.27309843, 0.99903688, 0.99949154, 0.49327012],\
++[	-6.27341382, -0.00031528, 0.00019313, 7.27309854, 0.99903698, 0.99949159, 0.49326994],\
++[	-6.27341389, -0.00031525, 0.00019311, 7.27309864, 0.99903708, 0.99949164, 0.49327001],\
++[	-6.27341397, -0.00031522, 0.00019309, 7.27309875, 0.99903718, 0.99949169, 0.49327008],\
++[	-6.27341405, -0.00031519, 0.00019307, 7.27309886, 0.99903728, 0.99949175, 0.49327008],\
++[	-6.27341412, -0.00031515, 0.00019305, 7.27309897, 0.99903737, 0.99949180, 0.49326970],\
++[	-6.27341420, -0.00031512, 0.00019303, 7.27309908, 0.99903747, 0.99949185, 0.49326989],\
++[	-6.27341428, -0.00031509, 0.00019301, 7.27309919, 0.99903757, 0.99949190, 0.49326992],\
++[	-6.27341435, -0.00031506, 0.00019299, 7.27309930, 0.99903767, 0.99949195, 0.49327000],\
++[	-6.27341443, -0.00031502, 0.00019297, 7.27309941, 0.99903777, 0.99949200, 0.49327006],\
++[	-6.27341451, -0.00031499, 0.00019295, 7.27309952, 0.99903786, 0.99949206, 0.49327023],\
++[	-6.27341459, -0.00031496, 0.00019293, 7.27309962, 0.99903796, 0.99949211, 0.49327002],\
++[	-6.27341466, -0.00031493, 0.00019291, 7.27309973, 0.99903806, 0.99949216, 0.49327004],\
++[	-6.27341474, -0.00031490, 0.00019289, 7.27309984, 0.99903816, 0.99949221, 0.49327010],\
++[	-6.27341482, -0.00031486, 0.00019287, 7.27309995, 0.99903826, 0.99949226, 0.49327000],\
++[	-6.27341489, -0.00031483, 0.00019285, 7.27310006, 0.99903835, 0.99949231, 0.49326994],\
++[	-6.27341497, -0.00031480, 0.00019283, 7.27310017, 0.99903845, 0.99949237, 0.49327008],\
++[	-6.27341505, -0.00031477, 0.00019281, 7.27310028, 0.99903855, 0.99949242, 0.49327002],\
++[	-6.27341512, -0.00031474, 0.00019279, 7.27310039, 0.99903865, 0.99949247, 0.49327015],\
++[	-6.27341520, -0.00031470, 0.00019277, 7.27310049, 0.99903874, 0.99949252, 0.49326998],\
++[	-6.27341528, -0.00031467, 0.00019275, 7.27310060, 0.99903884, 0.99949257, 0.49327030],\
++[	-6.27341535, -0.00031464, 0.00019274, 7.27310071, 0.99903894, 0.99949262, 0.49326995],\
++[	-6.27341543, -0.00031461, 0.00019272, 7.27310082, 0.99903904, 0.99949268, 0.49327013],\
++[	-6.27341550, -0.00031458, 0.00019270, 7.27310093, 0.99903914, 0.99949273, 0.49327030],\
++[	-6.27341558, -0.00031454, 0.00019268, 7.27310104, 0.99903923, 0.99949278, 0.49327016],\
++[	-6.27341566, -0.00031451, 0.00019266, 7.27310115, 0.99903933, 0.99949283, 0.49327003],\
++[	-6.27341573, -0.00031448, 0.00019264, 7.27310125, 0.99903943, 0.99949288, 0.49327020],\
++[	-6.27341581, -0.00031445, 0.00019262, 7.27310136, 0.99903953, 0.99949293, 0.49327016],\
++[	-6.27341589, -0.00031442, 0.00019260, 7.27310147, 0.99903962, 0.99949298, 0.49327038],\
++[	-6.27341596, -0.00031438, 0.00019258, 7.27310158, 0.99903972, 0.99949304, 0.49327020],\
++[	-6.27341604, -0.00031435, 0.00019256, 7.27310169, 0.99903982, 0.99949309, 0.49326989],\
++[	-6.27341612, -0.00031432, 0.00019254, 7.27310180, 0.99903992, 0.99949314, 0.49327033],\
++[	-6.27341619, -0.00031429, 0.00019252, 7.27310190, 0.99904001, 0.99949319, 0.49327021],\
++[	-6.27341627, -0.00031426, 0.00019250, 7.27310201, 0.99904011, 0.99949324, 0.49327047],\
++[	-6.27341635, -0.00031423, 0.00019248, 7.27310212, 0.99904021, 0.99949329, 0.49327024],\
++[	-6.27341642, -0.00031419, 0.00019246, 7.27310223, 0.99904031, 0.99949335, 0.49327034],\
++[	-6.27341650, -0.00031416, 0.00019244, 7.27310234, 0.99904040, 0.99949340, 0.49327024],\
++[	-6.27341658, -0.00031413, 0.00019242, 7.27310245, 0.99904050, 0.99949345, 0.49327049],\
++[	-6.27341665, -0.00031410, 0.00019240, 7.27310255, 0.99904060, 0.99949350, 0.49327029],\
++[	-6.27341673, -0.00031407, 0.00019238, 7.27310266, 0.99904070, 0.99949355, 0.49327027],\
++[	-6.27341680, -0.00031403, 0.00019236, 7.27310277, 0.99904079, 0.99949360, 0.49327052],\
++[	-6.27341688, -0.00031400, 0.00019234, 7.27310288, 0.99904089, 0.99949365, 0.49327062],\
++[	-6.27341696, -0.00031397, 0.00019232, 7.27310299, 0.99904099, 0.99949370, 0.49327051],\
++[	-6.27341703, -0.00031394, 0.00019231, 7.27310309, 0.99904108, 0.99949376, 0.49327035],\
++[	-6.27341711, -0.00031391, 0.00019229, 7.27310320, 0.99904118, 0.99949381, 0.49327029],\
++[	-6.27341719, -0.00031387, 0.00019227, 7.27310331, 0.99904128, 0.99949386, 0.49327040],\
++[	-6.27341726, -0.00031384, 0.00019225, 7.27310342, 0.99904138, 0.99949391, 0.49327054],\
++[	-6.27341734, -0.00031381, 0.00019223, 7.27310353, 0.99904147, 0.99949396, 0.49327057],\
++[	-6.27341741, -0.00031378, 0.00019221, 7.27310363, 0.99904157, 0.99949401, 0.49327065],\
++[	-6.27341749, -0.00031375, 0.00019219, 7.27310374, 0.99904167, 0.99949406, 0.49327055],\
++[	-6.27341757, -0.00031372, 0.00019217, 7.27310385, 0.99904177, 0.99949412, 0.49327044],\
++[	-6.27341764, -0.00031368, 0.00019215, 7.27310396, 0.99904186, 0.99949417, 0.49327060],\
++[	-6.27341772, -0.00031365, 0.00019213, 7.27310407, 0.99904196, 0.99949422, 0.49327062],\
++[	-6.27341779, -0.00031362, 0.00019211, 7.27310417, 0.99904206, 0.99949427, 0.49327057],\
++[	-6.27341787, -0.00031359, 0.00019209, 7.27310428, 0.99904215, 0.99949432, 0.49327068],\
++[	-6.27341795, -0.00031356, 0.00019207, 7.27310439, 0.99904225, 0.99949437, 0.49327087],\
++[	-6.27341802, -0.00031353, 0.00019205, 7.27310450, 0.99904235, 0.99949442, 0.49327065],\
++[	-6.27341810, -0.00031349, 0.00019203, 7.27310461, 0.99904244, 0.99949447, 0.49327040],\
++[	-6.27341817, -0.00031346, 0.00019201, 7.27310471, 0.99904254, 0.99949453, 0.49327056],\
++[	-6.27341825, -0.00031343, 0.00019199, 7.27310482, 0.99904264, 0.99949458, 0.49327057],\
++[	-6.27341833, -0.00031340, 0.00019197, 7.27310493, 0.99904274, 0.99949463, 0.49327059],\
++[	-6.27341840, -0.00031337, 0.00019195, 7.27310504, 0.99904283, 0.99949468, 0.49327075],\
++[	-6.27341848, -0.00031333, 0.00019194, 7.27310514, 0.99904293, 0.99949473, 0.49327058],\
++[	-6.27341855, -0.00031330, 0.00019192, 7.27310525, 0.99904303, 0.99949478, 0.49327073],\
++[	-6.27341863, -0.00031327, 0.00019190, 7.27310536, 0.99904312, 0.99949483, 0.49327054],\
++[	-6.27341871, -0.00031324, 0.00019188, 7.27310547, 0.99904322, 0.99949488, 0.49327048],\
++[	-6.27341878, -0.00031321, 0.00019186, 7.27310557, 0.99904332, 0.99949493, 0.49327086],\
++[	-6.27341886, -0.00031318, 0.00019184, 7.27310568, 0.99904341, 0.99949499, 0.49327056],\
++[	-6.27341893, -0.00031314, 0.00019182, 7.27310579, 0.99904351, 0.99949504, 0.49327071],\
++[	-6.27341901, -0.00031311, 0.00019180, 7.27310590, 0.99904361, 0.99949509, 0.49327045],\
++[	-6.27341909, -0.00031308, 0.00019178, 7.27310600, 0.99904370, 0.99949514, 0.49327067],\
++[	-6.27341916, -0.00031305, 0.00019176, 7.27310611, 0.99904380, 0.99949519, 0.49327067],\
++[	-6.27341924, -0.00031302, 0.00019174, 7.27310622, 0.99904390, 0.99949524, 0.49327074],\
++[	-6.27341931, -0.00031299, 0.00019172, 7.27310633, 0.99904399, 0.99949529, 0.49327107],\
++[	-6.27341939, -0.00031295, 0.00019170, 7.27310643, 0.99904409, 0.99949534, 0.49327064],\
++[	-6.27341946, -0.00031292, 0.00019168, 7.27310654, 0.99904419, 0.99949539, 0.49327063],\
++[	-6.27341954, -0.00031289, 0.00019166, 7.27310665, 0.99904428, 0.99949545, 0.49327050],\
++[	-6.27341962, -0.00031286, 0.00019164, 7.27310676, 0.99904438, 0.99949550, 0.49327069],\
++[	-6.27341969, -0.00031283, 0.00019162, 7.27310686, 0.99904448, 0.99949555, 0.49327081],\
++[	-6.27341977, -0.00031280, 0.00019161, 7.27310697, 0.99904457, 0.99949560, 0.49327077],\
++[	-6.27341984, -0.00031276, 0.00019159, 7.27310708, 0.99904467, 0.99949565, 0.49327081],\
++[	-6.27341992, -0.00031273, 0.00019157, 7.27310719, 0.99904477, 0.99949570, 0.49327088],\
++[	-6.27341999, -0.00031270, 0.00019155, 7.27310729, 0.99904486, 0.99949575, 0.49327082],\
++[	-6.27342007, -0.00031267, 0.00019153, 7.27310740, 0.99904496, 0.99949580, 0.49327067],\
++[	-6.27342015, -0.00031264, 0.00019151, 7.27310751, 0.99904506, 0.99949585, 0.49327061],\
++[	-6.27342022, -0.00031261, 0.00019149, 7.27310761, 0.99904515, 0.99949590, 0.49327079],\
++[	-6.27342030, -0.00031258, 0.00019147, 7.27310772, 0.99904525, 0.99949595, 0.49327103],\
++[	-6.27342037, -0.00031254, 0.00019145, 7.27310783, 0.99904535, 0.99949601, 0.49327107],\
++[	-6.27342045, -0.00031251, 0.00019143, 7.27310794, 0.99904544, 0.99949606, 0.49327084],\
++[	-6.27342052, -0.00031248, 0.00019141, 7.27310804, 0.99904554, 0.99949611, 0.49327096],\
++[	-6.27342060, -0.00031245, 0.00019139, 7.27310815, 0.99904563, 0.99949616, 0.49327062],\
++[	-6.27342067, -0.00031242, 0.00019137, 7.27310826, 0.99904573, 0.99949621, 0.49327088],\
++[	-6.27342075, -0.00031239, 0.00019135, 7.27310836, 0.99904583, 0.99949626, 0.49327094],\
++[	-6.27342083, -0.00031235, 0.00019133, 7.27310847, 0.99904592, 0.99949631, 0.49327095],\
++[	-6.27342090, -0.00031232, 0.00019132, 7.27310858, 0.99904602, 0.99949636, 0.49327111],\
++[	-6.27342098, -0.00031229, 0.00019130, 7.27310869, 0.99904612, 0.99949641, 0.49327066],\
++[	-6.27342105, -0.00031226, 0.00019128, 7.27310879, 0.99904621, 0.99949646, 0.49327112],\
++[	-6.27342113, -0.00031223, 0.00019126, 7.27310890, 0.99904631, 0.99949651, 0.49327094],\
++[	-6.27342120, -0.00031220, 0.00019124, 7.27310901, 0.99904641, 0.99949656, 0.49327097],\
++[	-6.27342128, -0.00031217, 0.00019122, 7.27310911, 0.99904650, 0.99949662, 0.49327094],\
++[	-6.27342135, -0.00031213, 0.00019120, 7.27310922, 0.99904660, 0.99949667, 0.49327120],\
++[	-6.27342143, -0.00031210, 0.00019118, 7.27310933, 0.99904669, 0.99949672, 0.49327123],\
++[	-6.27342150, -0.00031207, 0.00019116, 7.27310943, 0.99904679, 0.99949677, 0.49327124],\
++[	-6.27342158, -0.00031204, 0.00019114, 7.27310954, 0.99904689, 0.99949682, 0.49327089],\
++[	-6.27342166, -0.00031201, 0.00019112, 7.27310965, 0.99904698, 0.99949687, 0.49327096],\
++[	-6.27342173, -0.00031198, 0.00019110, 7.27310975, 0.99904708, 0.99949692, 0.49327093],\
++[	-6.27342181, -0.00031195, 0.00019108, 7.27310986, 0.99904717, 0.99949697, 0.49327128],\
++[	-6.27342188, -0.00031191, 0.00019106, 7.27310997, 0.99904727, 0.99949702, 0.49327122],\
++[	-6.27342196, -0.00031188, 0.00019105, 7.27311007, 0.99904737, 0.99949707, 0.49327128],\
++[	-6.27342203, -0.00031185, 0.00019103, 7.27311018, 0.99904746, 0.99949712, 0.49327113],\
++[	-6.27342211, -0.00031182, 0.00019101, 7.27311029, 0.99904756, 0.99949717, 0.49327121],\
++[	-6.27342218, -0.00031179, 0.00019099, 7.27311039, 0.99904765, 0.99949722, 0.49327115],\
++[	-6.27342226, -0.00031176, 0.00019097, 7.27311050, 0.99904775, 0.99949727, 0.49327114],\
++[	-6.27342233, -0.00031173, 0.00019095, 7.27311061, 0.99904785, 0.99949733, 0.49327102],\
++[	-6.27342241, -0.00031169, 0.00019093, 7.27311071, 0.99904794, 0.99949738, 0.49327120],\
++[	-6.27342248, -0.00031166, 0.00019091, 7.27311082, 0.99904804, 0.99949743, 0.49327130],\
++[	-6.27342256, -0.00031163, 0.00019089, 7.27311093, 0.99904813, 0.99949748, 0.49327109],\
++[	-6.27342263, -0.00031160, 0.00019087, 7.27311103, 0.99904823, 0.99949753, 0.49327132],\
++[	-6.27342271, -0.00031157, 0.00019085, 7.27311114, 0.99904833, 0.99949758, 0.49327146],\
++[	-6.27342278, -0.00031154, 0.00019083, 7.27311125, 0.99904842, 0.99949763, 0.49327090],\
++[	-6.27342286, -0.00031151, 0.00019081, 7.27311135, 0.99904852, 0.99949768, 0.49327123],\
++[	-6.27342293, -0.00031147, 0.00019080, 7.27311146, 0.99904861, 0.99949773, 0.49327134],\
++[	-6.27342301, -0.00031144, 0.00019078, 7.27311156, 0.99904871, 0.99949778, 0.49327133],\
++[	-6.27342308, -0.00031141, 0.00019076, 7.27311167, 0.99904880, 0.99949783, 0.49327117],\
++[	-6.27342316, -0.00031138, 0.00019074, 7.27311178, 0.99904890, 0.99949788, 0.49327124],\
++[	-6.27342323, -0.00031135, 0.00019072, 7.27311188, 0.99904900, 0.99949793, 0.49327116],\
++[	-6.27342331, -0.00031132, 0.00019070, 7.27311199, 0.99904909, 0.99949798, 0.49327125],\
++[	-6.27342338, -0.00031129, 0.00019068, 7.27311210, 0.99904919, 0.99949803, 0.49327132],\
++[	-6.27342346, -0.00031126, 0.00019066, 7.27311220, 0.99904928, 0.99949808, 0.49327161],\
++[	-6.27342353, -0.00031122, 0.00019064, 7.27311231, 0.99904938, 0.99949813, 0.49327137],\
++[	-6.27342361, -0.00031119, 0.00019062, 7.27311242, 0.99904947, 0.99949818, 0.49327141],\
++[	-6.27342368, -0.00031116, 0.00019060, 7.27311252, 0.99904957, 0.99949824, 0.49327151],\
++[	-6.27342376, -0.00031113, 0.00019058, 7.27311263, 0.99904966, 0.99949829, 0.49327147],\
++[	-6.27342383, -0.00031110, 0.00019057, 7.27311273, 0.99904976, 0.99949834, 0.49327157],\
++[	-6.27342391, -0.00031107, 0.00019055, 7.27311284, 0.99904986, 0.99949839, 0.49327158],\
++[	-6.27342398, -0.00031104, 0.00019053, 7.27311295, 0.99904995, 0.99949844, 0.49327140],\
++[	-6.27342406, -0.00031101, 0.00019051, 7.27311305, 0.99905005, 0.99949849, 0.49327149],\
++[	-6.27342413, -0.00031097, 0.00019049, 7.27311316, 0.99905014, 0.99949854, 0.49327130],\
++[	-6.27342421, -0.00031094, 0.00019047, 7.27311326, 0.99905024, 0.99949859, 0.49327138],\
++[	-6.27342428, -0.00031091, 0.00019045, 7.27311337, 0.99905033, 0.99949864, 0.49327154],\
++[	-6.27342436, -0.00031088, 0.00019043, 7.27311348, 0.99905043, 0.99949869, 0.49327144],\
++[	-6.27342443, -0.00031085, 0.00019041, 7.27311358, 0.99905052, 0.99949874, 0.49327149],\
++[	-6.27342451, -0.00031082, 0.00019039, 7.27311369, 0.99905062, 0.99949879, 0.49327160],\
++[	-6.27342458, -0.00031079, 0.00019037, 7.27311379, 0.99905071, 0.99949884, 0.49327162],\
++[	-6.27342466, -0.00031076, 0.00019035, 7.27311390, 0.99905081, 0.99949889, 0.49327146],\
++[	-6.27342473, -0.00031072, 0.00019034, 7.27311401, 0.99905091, 0.99949894, 0.49327178],\
++[	-6.27342480, -0.00031069, 0.00019032, 7.27311411, 0.99905100, 0.99949899, 0.49327156],\
++[	-6.27342488, -0.00031066, 0.00019030, 7.27311422, 0.99905110, 0.99949904, 0.49327151],\
++[	-6.27342495, -0.00031063, 0.00019028, 7.27311432, 0.99905119, 0.99949909, 0.49327157],\
++[	-6.27342503, -0.00031060, 0.00019026, 7.27311443, 0.99905129, 0.99949914, 0.49327162],\
++[	-6.27342510, -0.00031057, 0.00019024, 7.27311453, 0.99905138, 0.99949919, 0.49327180],\
++[	-6.27342518, -0.00031054, 0.00019022, 7.27311464, 0.99905148, 0.99949924, 0.49327153],\
++[	-6.27342525, -0.00031051, 0.00019020, 7.27311475, 0.99905157, 0.99949929, 0.49327170],\
++[	-6.27342533, -0.00031047, 0.00019018, 7.27311485, 0.99905167, 0.99949934, 0.49327164],\
++[	-6.27342540, -0.00031044, 0.00019016, 7.27311496, 0.99905176, 0.99949939, 0.49327177],\
++[	-6.27342548, -0.00031041, 0.00019014, 7.27311506, 0.99905186, 0.99949944, 0.49327171],\
++[	-6.27342555, -0.00031038, 0.00019013, 7.27311517, 0.99905195, 0.99949949, 0.49327163],\
++[	-6.27342563, -0.00031035, 0.00019011, 7.27311527, 0.99905205, 0.99949954, 0.49327148],\
++[	-6.27342570, -0.00031032, 0.00019009, 7.27311538, 0.99905214, 0.99949959, 0.49327177],\
++[	-6.27342577, -0.00031029, 0.00019007, 7.27311549, 0.99905224, 0.99949964, 0.49327190],\
++[	-6.27342585, -0.00031026, 0.00019005, 7.27311559, 0.99905233, 0.99949969, 0.49327174],\
++[	-6.27342592, -0.00031023, 0.00019003, 7.27311570, 0.99905243, 0.99949974, 0.49327179],\
++[	-6.27342600, -0.00031019, 0.00019001, 7.27311580, 0.99905252, 0.99949979, 0.49327165],\
++[	-6.27342607, -0.00031016, 0.00018999, 7.27311591, 0.99905262, 0.99949984, 0.49327180],\
++[	-6.27342615, -0.00031013, 0.00018997, 7.27311601, 0.99905271, 0.99949989, 0.49327176],\
++[	-6.27342622, -0.00031010, 0.00018995, 7.27311612, 0.99905281, 0.99949994, 0.49327155],\
++[	-6.27342630, -0.00031007, 0.00018993, 7.27311622, 0.99905290, 0.99949999, 0.49327169],\
++[	-6.27342637, -0.00031004, 0.00018992, 7.27311633, 0.99905300, 0.99950004, 0.49327184],\
++[	-6.27342644, -0.00031001, 0.00018990, 7.27311644, 0.99905309, 0.99950009, 0.49327184],\
++[	-6.27342652, -0.00030998, 0.00018988, 7.27311654, 0.99905319, 0.99950014, 0.49327176],\
++[	-6.27342659, -0.00030995, 0.00018986, 7.27311665, 0.99905328, 0.99950019, 0.49327184],\
++[	-6.27342667, -0.00030992, 0.00018984, 7.27311675, 0.99905338, 0.99950024, 0.49327166],\
++[	-6.27342674, -0.00030988, 0.00018982, 7.27311686, 0.99905347, 0.99950029, 0.49327222],\
++[	-6.27342682, -0.00030985, 0.00018980, 7.27311696, 0.99905357, 0.99950034, 0.49327211],\
++[	-6.27342689, -0.00030982, 0.00018978, 7.27311707, 0.99905366, 0.99950039, 0.49327202],\
++[	-6.27342696, -0.00030979, 0.00018976, 7.27311717, 0.99905376, 0.99950044, 0.49327179],\
++[	-6.27342704, -0.00030976, 0.00018974, 7.27311728, 0.99905385, 0.99950049, 0.49327176],\
++[	-6.27342711, -0.00030973, 0.00018973, 7.27311738, 0.99905394, 0.99950054, 0.49327202],\
++[	-6.27342719, -0.00030970, 0.00018971, 7.27311749, 0.99905404, 0.99950059, 0.49327184],\
++[	-6.27342726, -0.00030967, 0.00018969, 7.27311759, 0.99905413, 0.99950064, 0.49327198],\
++[	-6.27342733, -0.00030964, 0.00018967, 7.27311770, 0.99905423, 0.99950069, 0.49327205],\
++[	-6.27342741, -0.00030961, 0.00018965, 7.27311780, 0.99905432, 0.99950074, 0.49327200],\
++[	-6.27342748, -0.00030957, 0.00018963, 7.27311791, 0.99905442, 0.99950079, 0.49327197],\
++[	-6.27342756, -0.00030954, 0.00018961, 7.27311801, 0.99905451, 0.99950084, 0.49327183],\
++[	-6.27342763, -0.00030951, 0.00018959, 7.27311812, 0.99905461, 0.99950089, 0.49327208],\
++[	-6.27342771, -0.00030948, 0.00018957, 7.27311822, 0.99905470, 0.99950094, 0.49327205],\
++[	-6.27342778, -0.00030945, 0.00018956, 7.27311833, 0.99905480, 0.99950099, 0.49327194]]);
+ 
+ 	if value=='h':
+-		series=love_numbers[:,1]
++		series=love_numbers[:,0];
+ 	elif value=='k':
+-		series=love_numbers[:,2]
++		series=love_numbers[:,1];
+ 	elif value=='l':
+-		series=love_numbers[:,3]
++		series=love_numbers[:,2];
+ 	elif value=='gamma':
+-		series=love_numbers[:,4]
++		series=love_numbers[:,3];
+ 	elif value=='lambda':
+-		series=love_numbers[:,5]
++		series=love_numbers[:,4];
+ 	else:
+ 		raise RuntimeError(['love_numbers error message: unknow value:', value])
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20284-20285.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20284-20285.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20284-20285.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m	(revision 20284)
++++ ../trunk-jpl/src/m/contrib/larour/resultstomatrix.m	(revision 20285)
+@@ -42,7 +42,7 @@
+ 		if ~isempty(results(i).(field)),
+ 			count=count+1;
+ 			matrix(1:end-1,count)=results(i).(field);
+-			matrix(end,count)=results(i).time/md.constants.yts;
++			matrix(end,count)=results(i).time;
+ 		end
+ 	end
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20285-20286.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20285-20286.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20285-20286.diff	(revision 20498)
@@ -0,0 +1,68 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20285)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20286)
+@@ -11,6 +11,7 @@
+ from maskpsl import *
+ from gmtmask import *
+ from paterson import *
++from love_numbers import *
+ 
+ #mesh earth: 
+ md=model() 
+@@ -28,24 +29,21 @@
+ md.slr.deltathickness[pos]=-100
+ 
+ #elastic loading from love numbers: 
+-
+-love = loadtxt('../Data/love_numbers_10k.txt')
+ nlov=101
+-print love
+-md.slr.love_h = love[1][1:nlov]  # radial displacement (height) 
+-md.slr.love_k = love[2][1:nlov]  # gravitational potential (phi) 
++md.slr.love_h = love_numbers('h')[:nlov];
++md.slr.love_k = love_numbers('k')[:nlov];
++
+ #}}}
+ #mask:  {{{
+ md.mask=maskpsl() # use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset 
+ mask=gmtmask(md.mesh.lat,md.mesh.long) 
+ 
+ icemask=ones((md.mesh.numberofvertices,1))
+-pos=nonzero(mask==0)
+-icemask[pos]=-1
+-pos=nonzero(sum(mask[md.mesh.elements.astype(int)-1],2)<3)
++pos=nonzero(mask==0);  icemask[pos]=-1
++pos=nonzero(sum(mask[md.mesh.elements.astype(int)-1],axis=1)<3)
+ icemask[md.mesh.elements[pos].astype(int)-1]=-1
+-
+ md.mask.ice_levelset=icemask
++
+ md.mask.ocean_levelset=zeros((md.mesh.numberofvertices,1))
+ pos=numpy.nonzero(md.mask.ice_levelset==1)
+ md.mask.ocean_levelset[pos]=1
+@@ -79,21 +77,21 @@
+ md.slr.rigid=0
+ md.slr.elastic=0
+ md=solve(md,SealevelriseSolutionEnum())
+-Seustatic=md.results.SealevelriseSolution.SealevelriseS
++Seustatic=md.results.SealevelriseSolution.Sealevel;
+ 
+ #eustatic + rigid run: 
+ md.slr.eustatic=1
+ md.slr.rigid=1
+ md.slr.elastic=0
+ md=solve(md,SealevelriseSolutionEnum())
+-Srigid=md.results.SealevelriseSolution.SealevelriseS
++Srigid=md.results.SealevelriseSolution.Sealevel;
+ 
+ #eustatic + rigid + elastic run: 
+ md.slr.eustatic=1
+ md.slr.rigid=1
+ md.slr.elastic=1
+ md=solve(md,SealevelriseSolutionEnum())
+-Selastic=md.results.SealevelriseSolution.SealevelriseS
++Selastic=md.results.SealevelriseSolution.Sealevel;
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Eustatic','Rigid','Elastic']
Index: /issm/oecreview/Archive/19101-20495/ISSM-20286-20287.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20286-20287.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20286-20287.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20286)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20287)
+@@ -25,7 +25,7 @@
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+-PYTHON_TEST=0
++PYTHON_TEST=1
+ 
+ #execution path used for parallel runs
+ EXECUTION_PATH=$ISSM_DIR/execution
+@@ -85,5 +85,5 @@
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-PYTHON_NROPTIONS=""
++PYTHON_NROPTIONS="--benchmark=slr"
+ MATLAB_NROPTIONS="'benchmark','slr'"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20287-20288.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20287-20288.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20287-20288.diff	(revision 20498)
@@ -0,0 +1,45 @@
+Index: ../trunk-jpl/src/m/classes/flowequation.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/flowequation.py	(revision 20287)
++++ ../trunk-jpl/src/m/classes/flowequation.py	(revision 20288)
+@@ -138,7 +138,8 @@
+ 		WriteData(fid,'object',self,'fieldname','borderFS','format','DoubleMat','mattype',1)
+ 		#convert approximations to enums
+ 		data=copy.deepcopy(self.vertex_equation); 
+-		if numpy.isnan(data)==0:
++
++		if isinstance(data, (list, tuple, numpy.ndarray)):
+ 			data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+ 			data[numpy.nonzero(data==1)]=SIAApproximationEnum()
+ 			data[numpy.nonzero(data==2)]=SSAApproximationEnum()
+@@ -150,7 +151,7 @@
+ 			data[numpy.nonzero(data==8)]=SSAFSApproximationEnum()
+ 		WriteData(fid,'data',data,'enum',FlowequationVertexEquationEnum(),'format','DoubleMat','mattype',1)
+ 		data=copy.deepcopy(self.element_equation)
+-		if numpy.isnan(data)==0:
++		if isinstance(data, (list, tuple, numpy.ndarray)):
+ 			data[numpy.nonzero(data==0)]=NoneApproximationEnum()
+ 			data[numpy.nonzero(data==1)]=SIAApproximationEnum()
+ 			data[numpy.nonzero(data==2)]=SSAApproximationEnum()
+Index: ../trunk-jpl/src/m/classes/stressbalance.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.py	(revision 20287)
++++ ../trunk-jpl/src/m/classes/stressbalance.py	(revision 20288)
+@@ -193,13 +193,13 @@
+ 		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_lock','format','Integer')
+ 		WriteData(fid,'object',self,'class','stressbalance','fieldname','rift_penalty_threshold','format','Integer')
+ 		WriteData(fid,'object',self,'class','stressbalance','fieldname','referential','format','DoubleMat','mattype',1)
+-
+-		if numpy.isnan(self.loadingforce):
+-			lx=float('NaN'); ly=float('NaN'); lz=float('NaN');
+-		else:
++		
++		if isinstance(self.loadingforce, (list, tuple, numpy.ndarray)):
+ 			lx=self.loadingforce[:,0];
+ 			ly=self.loadingforce[:,1];
+ 			lz=self.loadingforce[:,2];
++		else:
++			lx=float('NaN'); ly=float('NaN'); lz=float('NaN');
+ 
+ 		WriteData(fid,'data',lx,'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum())
+ 		WriteData(fid,'data',ly,'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum())
Index: /issm/oecreview/Archive/19101-20495/ISSM-20288-20289.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20288-20289.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20288-20289.diff	(revision 20498)
@@ -0,0 +1,111 @@
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 20288)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 20289)
+@@ -130,7 +130,7 @@
+ 	else { //{{{
+ 
+ 		/*We are running somewhere else on a computational server. Send the buffer to that server and retrieve output: */
+-		cluster.UploadAndRun(md,callbackfunction,fid,toolkitsstring,solutionstring,md.miscellaneous.name);
++		cluster.UploadAndRun(md,callbackfunction,fid,toolkitsstring,solutionstring,md.miscellaneous.name,md.priv.runtimename);
+ 
+ 		return md;
+ 
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20288)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20289)
+@@ -25,29 +25,72 @@
+ 	this.classname= function(){// {{{
+ 		return "generic";
+ 	}// }}}
+-		this.checkconsistency = function (md,solution,analyses) { //{{{
+-			if (cluster.np<1){
+-				md.checkmessage('number of processors should be at least 1');
+-			}
+-			if (isNaN(cluster.np)){
+-				md.checkmessage('number of processors should not be NaN!');
+-			}
+-		} //}}}
+-		this.UploadAndRun = function (md,callbackfunction,fid,toolkitsstring,solutionstring,name) { //{{{
++	this.checkconsistency = function (md,solution,analyses) { //{{{
++		if (cluster.np<1){
++			md.checkmessage('number of processors should be at least 1');
++		}
++		if (isNaN(cluster.np)){
++			md.checkmessage('number of processors should not be NaN!');
++		}
++	} //}}}
++	this.BuildQueueScript = function (cluster,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota) { // {{{
+ 
+-			var oReq = new XMLHttpRequest();
+-			oReq.open("POST", this.url, true);
+-			oReq.responseType = 'arraybuffer';
++			//write queuing script 
++			//what is the executable being called? 
++			executable='issm.exe';
+ 
+-			oReq.onload = function (oEvent) {
+-				var returnBuffer = new Uint8Array(oReq.response.slice());
+-				var returnBuffer_size=returnBuffer.byteLength;
+-				md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
+-				callbackfunction();
+-			};
++			fid=fopen(modelname+'.queue','w');
++			fprintf(fid,'#!%s\n',cluster.shell);
++			fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,EnumToString(solution),cluster.executionpath+'/'+dirname,modelname,modelname,modelname);					
++			fclose(fid);
++	} //{{{
++	this.UploadAndRun = function (md,callbackfunction,fid,toolkitsstring,solutionstring,name,runtimename) { //{{{
+ 
+-			oReq.send(new Int8Array(fid.buffer));
+-			return;
++		var oReq = new XMLHttpRequest();
++		oReq.open("POST", this.url, true);
++		oReq.responseType = 'arraybuffer';
+ 
+-		} /*}}}*/
++		oReq.onload = function (oEvent) {
++			var returnBuffer = new Uint8Array(oReq.response.slice());
++			var returnBuffer_size=returnBuffer.byteLength;
++			md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
++			callbackfunction();
++		};
++
++		var runtimenamebuffer = this.str2ab(runtimename);
++		var runtimenamelength = new Uint32Array(1);
++		runtimenamelength[0] = runtimenamebuffer.byteLength;
++		
++		var namebuffer = this.str2ab(name);
++		var namelength = new Uint32Array(1);
++		namelength[0] = namebuffer.byteLength;
++		
++		var toolkitsbuffer = this.str2ab(toolkitsstring);
++		var toolkitslength = new Uint32Array(1);
++		toolkitslength[0] = toolkitsbuffer.byteLength;
++		
++		var solutionbuffer = this.str2ab(solutionstring);
++		var solutionlength = new Uint32Array(1);
++		solutionlength[0] = solutionbuffer.byteLength;
++		
++		var binbuffer = new Uint16Array(fid.buffer);
++		var binlength = new Uint32Array(1);
++		binlength[0] = binbuffer.byteLength;
++		
++		var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
++		//console.log([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
++		oReq.send(data);
++		return;
++
++	} //}}}
++	this.ab2str = function(buf) {
++		return String.fromCharCode.apply(null, new Uint16Array(buf));
+ 	}
++	this.str2ab = function(str) {
++		var buf = new Uint8Array(str.length);
++		for (var i=0, strLen=str.length; i < strLen; i++) {
++			buf[i] = str.charCodeAt(i);
++		}
++		return buf;
++	}
++}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20289-20290.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20289-20290.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20289-20290.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20289)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20290)
+@@ -78,8 +78,10 @@
+ 		binlength[0] = binbuffer.byteLength;
+ 		
+ 		var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
+-		//console.log([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
++		//console.log(fid.buffer);
++		if (typeof(download) != "undefined") download(fid.buffer);
+ 		oReq.send(data);
++		
+ 		return;
+ 
+ 	} //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20290-20291.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20290-20291.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20290-20291.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20290)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20291)
+@@ -43,7 +43,7 @@
+ 			fprintf(fid,'#!%s\n',cluster.shell);
+ 			fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,EnumToString(solution),cluster.executionpath+'/'+dirname,modelname,modelname,modelname);					
+ 			fclose(fid);
+-	} //{{{
++	} //}}}
+ 	this.UploadAndRun = function (md,callbackfunction,fid,toolkitsstring,solutionstring,name,runtimename) { //{{{
+ 
+ 		var oReq = new XMLHttpRequest();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20291-20292.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20291-20292.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20291-20292.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/m/js/writejscellarray.m
+===================================================================
+--- ../trunk-jpl/src/m/js/writejscellarray.m	(revision 20291)
++++ ../trunk-jpl/src/m/js/writejscellarray.m	(revision 20292)
+@@ -4,19 +4,18 @@
+ 	if ~iscell(cell),
+ 		fprintf(fid,'%s=%g;\n',prefix,cell);
+ 	else
+-		if length(cell),
+-			if length(cell)==1,
+-				fprintf(fid,'%s=[''%s''];\n',prefix,cell{1});
+-			else
+-				fprintf(fid,'%s=[''%s'',',prefix,cell{1});
+-				for i=2:length(cell)-1,
+-					fprintf(fid,'''%s'',',cell{i});
+-				end
+-				fprintf(fid,'''%s''];\n',cell{end});
++		fprintf(fid,'%s=[',prefix);
++		for i=1:length(cell),
++			array=cell{i};
++			fprintf(fid,'[');
++			for j=1:length(array)-1,
++				fprintf(fid,'%g,',array(j));
+ 			end
+-		else
+-			fprintf(fid,'%s=[];\n',prefix);
++			fprintf(fid,'%g]',array(end));
++			if i<length(cell), fprintf(fid,','); end
+ 		end
++		fprintf(fid,'];\n');
+ 	end
+ 
++
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20292-20293.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20292-20293.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20292-20293.diff	(revision 20498)
@@ -0,0 +1,147 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20292)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20293)
+@@ -525,8 +525,8 @@
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+-				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+-					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -llhs -llhs_mods -loptpp -lsurfpack -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -lamplsolver -lcport -ldfftpack -lfsudace -lhopspack -lnidr -lpecos -lpsuade -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 20292)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx-el_capitan.sh	(revision 20293)
+@@ -1,58 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf Dakota
+-rm -rf src 
+-rm -rf build 
+-rm -rf install 
+-mkdir src build install 
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
+-
+-#Untar 
+-tar -zxvf dakota-6.2-public-src.tar.gz
+-
+-#Move Dakota to src directory
+-mv dakota-6.2.0.src/* src
+-rm -rf dakota-6.2.0.src
+-
+-#Set up Dakota cmake variables and config
+-export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+-export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+-export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
+-cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+-patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.yosemite.patch
+-patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
+-patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.patch
+-
+-#Apply patches
+-patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
+-patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
+-patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
+-
+-#Configure dakota
+-cd $DAK_BUILD
+-
+-cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+-      -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+-      -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-      -D LDFLAGS="-std=gnu++11" \
+-      -D CXXFLAGS="-std=gnu++11" \
+-      -C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+-      -C $DAK_SRC/cmake/DakotaDev.cmake \
+-      $DAK_SRC
+-cd ..
+-
+-#Compile and install dakota
+-cd $DAK_BUILD
+-if [ $# -eq 0 ];
+-then
+-	make
+-	make install
+-else
+-	make -j $1
+-	make -j $1 install
+-fi
+-cd ..
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 20292)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh	(revision 20293)
+@@ -44,7 +44,9 @@
+ 	-D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+ 	-D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+ 	-D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
+-	-D LDFLAGS="-std=gnu++0x" \
++	-D CMAKE_CXX_FLAGS=-fdelayed-template-parsing \
++	-DHAVE_ACRO=off \
++	-DHAVE_JEGA=off \
+ 	-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+ 	-C $DAK_SRC/cmake/DakotaDev.cmake \
+ 	$DAK_SRC
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh	(revision 20292)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-macosx-el_capitan.sh	(revision 20293)
+@@ -35,9 +35,9 @@
+ 
+ #Compile boost
+ # Need gcc with iconv installed in a location that has been added to your path
+-export CC=/usr/local/gfortan/bin/gcc 
+-export CXX=/usr/local/gfortran/bin/g++
+-./bjam toolset=darwin cxxflags=-std=gnu++11 link=static install
++# export CC=/usr/local/gfortan/bin/gcc 
++# export CXX=/usr/local/gfortran/bin/g++
++./bjam toolset=darwin link=static install
+ 
+ #put bjam into install also: 
+ mkdir ../install/bin
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20292)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20293)
+@@ -14,13 +14,15 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install \
++	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+ 	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+ 	--with-numthreads=4 \
+ 	--enable-debugging \
+ 	--enable-development'
+ 
+ #MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
++MATLAB_PATH="/Applications/MATLAB_R2015a.app/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -49,13 +51,13 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						matlab       install.sh
+-						mpich        install-3.0-macosx64-yosemite-dakota.sh
++						mpich        install-3.0-macosx64.sh
+ 						chaco        install-macosx64.sh
+ 						m1qn3        install.sh
+ 						petsc        install-3.5-macosx64.sh
+ 						triangle     install-macosx64.sh
+ 						boost        install-1.55-macosx-el_capitan.sh
+-						dakota       install-6.2-macosx-el_capitan.sh
++						dakota       install-6.2-macosx64.sh
+ 						shell2junit  install.sh"
+ 
+ #---------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20293-20294.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20293-20294.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20293-20294.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20293)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20294)
+@@ -50,6 +50,7 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
++						cmake 		 install.sh
+ 						matlab       install.sh
+ 						mpich        install-3.0-macosx64.sh
+ 						chaco        install-macosx64.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-20294-20295.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20294-20295.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20294-20295.diff	(revision 20498)
@@ -0,0 +1,167 @@
+Index: ../trunk-jpl/src/m/classes/maskpsl.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/maskpsl.js	(revision 20295)
+@@ -0,0 +1,89 @@
++//MASKPSL class definition
++//
++//   Usage:
++//      maskpsl= new maskpsl();
++
++function maskpsl () {
++	//properties 
++	// {{{
++		this.groundedice_levelset                           = NaN;
++		this.ice_levelset                           = NaN;
++		this.land_levelset                           = NaN;
++		this.ocean_levelset                           = NaN;
++		//}}}
++	//methods 
++		this.setdefaultparameters = function (){ //{{{
++		} // }}}
++		this.disp = function () { //{{{
++			console.log(sprintf("   mask:")); 
++
++			fielddisplay(this,"groundedice_levelset","is ice grounded ? grounded ice if > 0, grounding line position if = 0, floating ice if < 0");
++			fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
++			fielddisplay(this,"ocean_levelset","is the vertex on the ocean? yes if = 1, no if = 0");
++			fielddisplay(this,"land_levelset","is the vertex on land? yes if = 1, no if = 0");
++		} //}}}
++		this.classname = function () { //{{{
++			return "maskpsl";
++		} //}}}
++		this.checkconsistency = function(md,solution,analyses){ //{{{
++
++			checkfield(md,'fieldname','mask.groundedice_levelset','size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mask.ocean_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
++			checkfield(md,'fieldname','mask.land_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
++			
++			var isice=NewArrayFill(md.mesh.numberofvertices,0); 
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
++			if (ArraySum(isice)==0){
++				console.log('no ice present in the domain');
++			}
++			if (ArrayMax(md.mask.ice_levelset)<0){
++				console.log('no ice front provided');
++			}
++				
++			var icefront=NewArrayFill(md.mesh.numberofelements,0);
++			for(var i=0;i<md.mesh.numberofelements;i++){
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0);
++				}
++			}
++			if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
++				if (md.mesh.elementtype()=='Tria'){
++					var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
++				}
++				else if (md.mesh.elementtype() == 'Penta'){
++					var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
++				}
++				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
++			}
++		} // }}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',this,'class','mask','fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
++
++			// get mask of vertices of elements with ice
++			var isice= NewArrayFill(md.mesh.numberofvertices,0);
++			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
++			
++			var vlist = NewArrayFill(md.mesh.numberofvertices,0);
++			var pos=[];
++			for(var i=0;i<md.mesh.numberofelements;i++){
++				var sum=0;
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					sum+=isice[md.mesh.elements[i][j]-1];
++				}
++				if(sum>0)pos.push(i);
++			}
++			for(var i=0;i<pos.length;i++){
++				for(var j=0;j<md.mesh.elements[0].length;j++){
++					vlist[md.mesh.elements[pos[i]][j]-1]=1;
++				}
++			}
++			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
++		}//}}}
++		this.fix=function() { //{{{
++		}//}}}
++
++}
+Index: ../trunk-jpl/src/m/classes/outputdefinition.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 20294)
++++ ../trunk-jpl/src/m/classes/outputdefinition.m	(revision 20295)
+@@ -49,7 +49,8 @@
+ 		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+-		
++
++			fprintf(fid,'%s.outputdefinition.definitions=[];\n',modelname);
+ 			if ~isempty(self.definitions),
+ 				error('outputdefinition savemodeljs error message: not supported yet!');
+ 			end
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20294)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20295)
+@@ -82,6 +82,7 @@
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
++			fprintf(fid,'%s.mask=new maskpsl();\n',modelname);
+ 			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
+ 			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
+ 			writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20294)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20295)
+@@ -73,19 +73,19 @@
+ 		var solutionlength = new Uint32Array(1);
+ 		solutionlength[0] = solutionbuffer.byteLength;
+ 		
+-		var binbuffer = new Uint16Array(fid.buffer);
++		var binbuffer = new Uint16Array(fid.rawbuffer());
++
+ 		var binlength = new Uint32Array(1);
+ 		binlength[0] = binbuffer.byteLength;
+ 		
+ 		var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
+-		//console.log(fid.buffer);
+-		if (typeof(download) != "undefined") download(fid.buffer);
++		if (typeof(download) != "undefined") download(fid.rawbuffer());
+ 		oReq.send(data);
+ 		
+ 		return;
+ 
+ 	} //}}}
+-	this.ab2str = function(buf) {
++	this.ab2str = function(buf) { //{{{
+ 		return String.fromCharCode.apply(null, new Uint16Array(buf));
+ 	}
+ 	this.str2ab = function(str) {
+@@ -94,5 +94,5 @@
+ 			buf[i] = str.charCodeAt(i);
+ 		}
+ 		return buf;
+-	}
++	} //}}}
+ }
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20294)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20295)
+@@ -99,6 +99,7 @@
+ 				${ISSM_DIR}/src/m/classes/initialization.js \
+ 				${ISSM_DIR}/src/m/classes/inversion.js \
+ 				${ISSM_DIR}/src/m/classes/mask.js \
++				${ISSM_DIR}/src/m/classes/maskpsl.js \
+ 				${ISSM_DIR}/src/m/classes/masstransport.js \
+ 				${ISSM_DIR}/src/m/classes/matice.js \
+ 				${ISSM_DIR}/src/m/classes/mesh2d.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20295-20296.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20295-20296.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20295-20296.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20295)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20296)
+@@ -79,7 +79,7 @@
+ 		binlength[0] = binbuffer.byteLength;
+ 		
+ 		var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
+-		if (typeof(download) != "undefined") download(fid.rawbuffer());
++		//if (typeof(download) != "undefined") download(fid.rawbuffer());
+ 		oReq.send(data);
+ 		
+ 		return;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20296-20297.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20296-20297.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20296-20297.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/classes/outputdefinition.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 20296)
++++ ../trunk-jpl/src/m/classes/outputdefinition.js	(revision 20297)
+@@ -36,6 +36,7 @@
+ 			enums[i]=StringToEnum(classdefinition);
+ 		}
+ 		enums=ArrayUnique(enums);
++		if (enums.length==0){ enums=NaN; }
+ 		WriteData(fid,'data',enums,'enum',OutputdefinitionListEnum(),'format','DoubleMat','mattype',1);
+ 		}//}}}
+ 		this.fix=function() { //{{{
+Index: ../trunk-jpl/src/m/classes/qmu.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/qmu.js	(revision 20296)
++++ ../trunk-jpl/src/m/classes/qmu.js	(revision 20297)
+@@ -102,20 +102,21 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','isdakota','format','Boolean');
+ 			if (!this.isdakota){
+-				WriteData(fid,'data',false,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+-				return; 
++				WriteData(fid,'data',0,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 			}
+-			WriteData(fid,'object',this,'fieldname','partition','format','DoubleMat','mattype',2);
+-			WriteData(fid,'object',this,'fieldname','numberofpartitions','format','Integer');
+-			WriteData(fid,'object',this,'fieldname','numberofresponses','format','Integer');
+-			WriteData(fid,'object',this,'fieldname','variabledescriptors','format','StringArray');
+-			WriteData(fid,'object',this,'fieldname','responsedescriptors','format','StringArray');
+-			if (this.mass_flux_segments.length){
+-				WriteData(fid,'data',this.mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
+-				flag=true; 
++			else{
++				WriteData(fid,'object',this,'fieldname','partition','format','DoubleMat','mattype',2);
++				WriteData(fid,'object',this,'fieldname','numberofpartitions','format','Integer');
++				WriteData(fid,'object',this,'fieldname','numberofresponses','format','Integer');
++				WriteData(fid,'object',this,'fieldname','variabledescriptors','format','StringArray');
++				WriteData(fid,'object',this,'fieldname','responsedescriptors','format','StringArray');
++				if (this.mass_flux_segments.length){
++					WriteData(fid,'data',this.mass_flux_segments,'enum',MassFluxSegmentsEnum(),'format','MatArray');
++					flag=true; 
++				}
++				else flag=false; 
++				WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 			}
+-			else flag=false; 
+-			WriteData(fid,'data',flag,'enum',QmuMassFluxSegmentsPresentEnum(),'format','Boolean');
+ 		}//}}}
+ 		this.fix=function() { //{{{
+ 		}//}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20297-20298.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20297-20298.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20297-20298.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20297)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20298)
+@@ -56,6 +56,10 @@
+ 			md.results= parseresultsfrombuffer(returnBuffer,returnBuffer_size);
+ 			callbackfunction();
+ 		};
++		
++		var npbuffer = this.str2ab(md.cluster.np.toString());
++		var nplength = new Uint32Array(1);
++		nplength[0] = npbuffer.byteLength;
+ 
+ 		var runtimenamebuffer = this.str2ab(runtimename);
+ 		var runtimenamelength = new Uint32Array(1);
+@@ -78,7 +82,7 @@
+ 		var binlength = new Uint32Array(1);
+ 		binlength[0] = binbuffer.byteLength;
+ 		
+-		var data = new Blob([runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
++		var data = new Blob([nplength,npbuffer,runtimenamelength,runtimenamebuffer,namelength,namebuffer,toolkitslength,toolkitsbuffer,solutionlength,solutionbuffer,binlength,binbuffer]);
+ 		//if (typeof(download) != "undefined") download(fid.rawbuffer());
+ 		oReq.send(data);
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20298-20299.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20298-20299.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20298-20299.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 20298)
++++ ../trunk-jpl/src/m/solve/loadresultsfrombuffer.js	(revision 20299)
+@@ -12,8 +12,15 @@
+ 		//initialize md.results if not a structure yet
+ 		if (MapIsEmpty(md.results)) md.results={};
+ 
+-		//load results onto model
+-		return parseresultsfrombuffer(buffer,buffersize);
++		//load results: 
++		structure=parseresultsfrombuffer(buffer,buffersize);
++
++		//load structure onto results: 
++		solutiontype=structure[0].SolutionType;
++		md.results[solutiontype]=structure;
++
++		return md;
++
+ 	}
+ 	else throw Error('loadresultsfrombuffer error message: qmu results not supported yet!');
+ }
+Index: ../trunk-jpl/src/m/solve/solve.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/solve.js	(revision 20298)
++++ ../trunk-jpl/src/m/solve/solve.js	(revision 20299)
+@@ -119,7 +119,7 @@
+ 		var outputbuffer = outputs[0]; var outputbuffersize = outputs[1];
+ 			
+ 		//Load results: 
+-		md.results = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); 
++		md = loadresultsfrombuffer(md,outputbuffer,outputbuffersize); 
+ 		
+ 		//Call back? 
+ 		callbackfunction();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20299-20300.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20299-20300.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20299-20300.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20299)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20300)
+@@ -159,8 +159,6 @@
+ 				${ISSM_DIR}/src/m/solve/WriteData.js \
+ 				${ISSM_DIR}/src/m/solvers/issmgslsolver.js 
+ 
+-bin_SCRIPTS +=  ${js_scripts}
+-
+ bin_SCRIPTS +=  issm-bin.js
+ 
+ issm-bin.js: ${js_scripts}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20300-20301.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20300-20301.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20300-20301.diff	(revision 20498)
@@ -0,0 +1,212 @@
+Index: ../trunk-jpl/src/m/classes/clusters/vilje.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/vilje.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/clusters/vilje.py	(revision 20301)
+@@ -0,0 +1,148 @@
++import subprocess
++from fielddisplay import fielddisplay
++from EnumToString import EnumToString
++from pairoptions import pairoptions
++from issmssh import issmssh
++from issmscpin import issmscpin
++from issmscpout import issmscpout
++from QueueRequirements import QueueRequirements
++import datetime
++try:
++	from vilje_settings import vilje_settings
++except ImportError:
++	print 'You need vilje_settings.py to proceed, check presence and sys.path'
++	
++class vilje(object):
++	"""
++	Vilje cluster class definition
++ 
++	   Usage:
++	      cluster=vilje();
++	"""
++
++	def __init__(self,*args):
++		# {{{
++		self.name           = 'vilje'
++		self.login          = ''
++		self.numnodes       = 2
++		self.cpuspernode    = 32
++                self.procspernodes  = 16
++                self.mem            = 28
++		self.queue          = 'workq'
++		self.time           = 2*60
++		self.codepath       = ''
++		self.executionpath  = ''
++		self.interactive    = 0
++                self.port           = []
++                self.accountname    = ''
++
++		#use provided options to change fields
++		options=pairoptions(*args)
++
++		#initialize cluster using user settings if provided
++		self=vilje_settings(self)
++		self.np=self.numnodes*self.procspernodes
++		#OK get other fields
++		self=options.AssignObjectFields(self)
++		
++		# }}}
++
++	def __repr__(self):
++		# {{{
++		#  display the object
++		s = "class vilje object:"
++		s = "%s\n%s"%(s,fielddisplay(self,'name','name of the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'login','login'))
++		s = "%s\n%s"%(s,fielddisplay(self,'numnodes','number of nodes'))
++		s = "%s\n%s"%(s,fielddisplay(self,'cpuspernode','number of nodes per CPUs (32)'))
++		s = "%s\n%s"%(s,fielddisplay(self,'procspernodes','number of mpi procs per nodes'))
++		s = "%s\n%s"%(s,fielddisplay(self,'mem','node memory'))
++		s = "%s\n%s"%(s,fielddisplay(self,'queue','name of the queue'))
++		s = "%s\n%s"%(s,fielddisplay(self,'time','walltime requested in minutes'))
++		s = "%s\n%s"%(s,fielddisplay(self,'codepath','code path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'executionpath','execution path on the cluster'))
++		s = "%s\n%s"%(s,fielddisplay(self,'interactive',''))
++		s = "%s\n%s"%(s,fielddisplay(self,'accountname','your cluster account'))
++		return s
++                # }}}
++
++	def checkconsistency(self,md,solution,analyses):
++		# {{{
++                #Queue dictionarry  gives queu name as key and max walltime and cpus as var
++		queuedict = {'workq'  :[5*24*60, 30]}
++		QueueRequirements(queuedict,self.queue,self.np,self.time)
++
++		#Miscelaneous
++		if not self.login:
++			md = md.checkmessage('login empty')
++		if not self.codepath:
++			md = md.checkmessage('codepath empty')
++		if not self.executionpath:
++			md = md.checkmessage('executionpath empty')
++		if self.interactive==1:
++			md = md.checkmessage('interactive mode not implemented')
++		return self
++                # }}}
++	def BuildQueueScript(self,dirname,modelname,solution,io_gather,isvalgrind,isgprof,isdakota):
++		# {{{
++
++		executable='issm.exe'
++		if isdakota:
++			version=IssmConfig('_DAKOTA_VERSION_')[0:2]
++			version=float(version)
++			if version>=6:
++				executable='issm_dakota.exe'
++
++		#write queuing script 
++                shortname=modelname[0:min(12,len(modelname))]
++		fid=open(modelname+'.queue','w')
++		fid.write('#PBS -S /bin/bash\n')
++		fid.write('#PBS -N %s \n' % shortname)
++		fid.write('#PBS -q %s \n' % self.queue)
++		fid.write('#PBS -l select=%i:ncpus=%i:mpiprocs=%s\n' % (self.numnodes,self.cpuspernode,self.procspernodes))
++                timestring= str(datetime.timedelta(minutes=self.time))
++		fid.write('#PBS -l walltime=%s\n' % timestring) #walltime is hh:mm:ss
++		#fid.write('#PBS -l mem=%igb\n' % self.mem)
++		fid.write('#PBS -A %s\n' % self.accountname) 
++		fid.write('#PBS -o %s/%s/%s.outlog \n' % (self.executionpath,dirname,modelname))
++		fid.write('#PBS -e %s/%s/%s.errlog \n\n' % (self.executionpath,dirname,modelname))
++		fid.write('export PATH="$PATH:."\n\n')
++		fid.write('export MPI_GROUP_MAX=64\n\n')
++		fid.write('export ISSM_DIR="%s/../"\n' % self.codepath)
++		fid.write('source $ISSM_DIR/etc/environment.sh\n')
++		fid.write('cd %s/%s/\n\n' % (self.executionpath,dirname))
++		fid.write('mpiexec -np %i %s/%s %s %s/%s %s\n' % (self.np,self.codepath,executable,str(EnumToString(solution)[0]),self.executionpath,dirname,modelname))
++                fid.close()
++
++                # }}}
++	def UploadQueueJob(self,modelname,dirname,filelist):
++                # {{{
++
++		#compress the files into one zip.
++		compressstring='tar -zcf %s.tar.gz ' % dirname
++		for file in filelist:
++                        compressstring += ' %s' % file
++		subprocess.call(compressstring,shell=True)
++
++		print 'uploading input file and queueing script'
++		issmscpout(self.name,self.executionpath,self.login,self.port,[dirname+'.tar.gz'])
++
++		# }}}
++	def LaunchQueueJob(self,modelname,dirname,filelist,restart,batch):
++                # {{{
++
++		print 'launching solution sequence on remote cluster'
++		if restart:
++			launchcommand='cd %s && cd %s && qsub %s.queue' % (self.executionpath,dirname,modelname)
++		else:
++			launchcommand='cd %s && rm -rf ./%s && mkdir %s && cd %s && mv ../%s.tar.gz ./ && tar -zxf %s.tar.gz  && qsub %s.queue' % (self.executionpath,dirname,dirname,dirname,dirname,dirname,modelname)
++		issmssh(self.name,self.login,self.port,launchcommand)
++
++		# }}}
++	def Download(self,dirname,filelist):
++		# {{{
++
++		#copy files from cluster to current directory
++		directory='%s/%s/' % (self.executionpath,dirname)
++		issmscpin(self.name,self.login,self.port,directory,filelist)
++                # }}}
+Index: ../trunk-jpl/src/m/classes/clusters/vilje.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20300)
++++ ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20301)
+@@ -10,7 +10,7 @@
+ 		 % {{{
+ 		 name          = 'vilje'
+ 		 login         = '';
+-                 accountname    ='';
++		 accountname    ='';
+ 		 numnodes      = 20;
+ 		 cpuspernode   = 8;
+ 		 port          = 8000;
+@@ -40,7 +40,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
+-                         disp(sprintf('    accountname: %s',cluster.accountname));
++			 disp(sprintf('    accountname: %s',cluster.accountname));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -63,7 +63,7 @@
+ 
+ 			 %Miscelaneous
+ 			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
+-                         if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
++			 if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
+ 			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
+ 			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
+ 
+@@ -81,12 +81,11 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+ 			 fprintf(fid,'#PBS -N %s\n',modelname);
+-                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-                         fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60);  %walltime is hh:mm:ss
++			 fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+ 			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+ 			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+-%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+@@ -112,9 +111,9 @@
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+ 			 fprintf(fid,'#PBS -N %s\n',modelname);
+ 			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
++			 fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+ 			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++			 fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+ 			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+ %			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20301-20302.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20301-20302.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20301-20302.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 20301)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 20302)
+@@ -31,6 +31,7 @@
+ from toolkits import toolkits
+ from generic import generic
+ from pfe import pfe
++from vilje import vilje
+ from balancethickness import balancethickness
+ from stressbalance import stressbalance
+ from groundingline import groundingline
Index: /issm/oecreview/Archive/19101-20495/ISSM-20302-20303.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20302-20303.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20302-20303.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 20302)
++++ ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 20303)
+@@ -47,12 +47,10 @@
+ 	MODULEBOOT();
+ 
+ 	/*checks on arguments on the matlab side: */
+-	#ifdef _HAVE_MATLAB_MODULES_
+-	if((nlhs!=NLHS) || (nrhs!=6 && nrhs!=7)){
++	if(nrhs!=6 && nrhs!=7){
+ 		InterpFromGridToMeshUsage();
+-		_error_("usage. See above");
++		_error_("Wrong usage. See above");
+ 	}
+-	#endif
+ 
+ 	/*Input datasets: */
+ 	FetchData(&x,&x_rows,NULL,XHANDLE);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20303-20304.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20303-20304.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20303-20304.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 20303)
++++ ../trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp	(revision 20304)
+@@ -73,5 +73,10 @@
+ 	WriteData(DATAMESH,data_mesh);
+ 
+ 	/*end module: */
++	xDelete<double>(x);
++	xDelete<double>(y);
++	xDelete<double>(data);
++	xDelete<double>(x_mesh);
++	xDelete<double>(y_mesh);
+ 	MODULEEND();
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20304-20305.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20304-20305.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20304-20305.diff	(revision 20498)
@@ -0,0 +1,53 @@
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 20304)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 20305)
+@@ -99,5 +99,15 @@
+ 	WriteData(DATAPRIME,data_prime);
+ 
+ 	/*end module: */
++	xDelete<double>(index_data);
++	xDelete<double>(x_data);
++	xDelete<double>(y_data);
++	xDelete<double>(z_data);
++	xDelete<double>(data);
++	xDelete<double>(x_prime);
++	xDelete<double>(y_prime);
++	xDelete<double>(z_prime);
++
++	/*end module: */
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/PointCloudFindNeighbors/PointCloudFindNeighbors.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/PointCloudFindNeighbors/PointCloudFindNeighbors.cpp	(revision 20304)
++++ ../trunk-jpl/src/wrappers/PointCloudFindNeighbors/PointCloudFindNeighbors.cpp	(revision 20305)
+@@ -47,5 +47,9 @@
+ 	WriteData(FLAGS,flags);
+ 
+ 	/*end module: */
++	xDelete<double>(x);
++	xDelete<double>(y);
++
++	/*end module: */
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/InterpFromMesh2d/InterpFromMesh2d.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMesh2d/InterpFromMesh2d.cpp	(revision 20304)
++++ ../trunk-jpl/src/wrappers/InterpFromMesh2d/InterpFromMesh2d.cpp	(revision 20305)
+@@ -138,5 +138,14 @@
+ 	WriteData(DATAPRIME,data_prime);
+ 
+ 	/*end module: */
++	xDelete<double>(index_data);
++	xDelete<double>(x_data);
++	xDelete<double>(y_data);
++	xDelete<double>(data);
++	xDelete<double>(x_prime);
++	xDelete<double>(y_prime);
++	xDelete<double>(default_values);
++
++	/*end module: */
+ 	MODULEEND();
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20305-20306.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20305-20306.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20305-20306.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/classes/frictiontemp.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/frictiontemp.m	(revision 20305)
++++ ../trunk-jpl/src/m/classes/frictiontemp.m	(revision 20306)
+@@ -11,6 +11,11 @@
+ 		q           = NaN;
+ 	end
+ 	methods
++		function self = extrude(self,md) % {{{
++			self.coefficient=project3d(md,'vector',self.coefficient,'type','node','layer',1);
++			self.p=project3d(md,'vector',self.p,'type','element');
++			self.q=project3d(md,'vector',self.q,'type','element');
++		end % }}}
+ 		function self = frictiontemp(varargin) % {{{
+ 			switch nargin
+ 				case 0
Index: /issm/oecreview/Archive/19101-20495/ISSM-20306-20307.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20306-20307.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20306-20307.diff	(revision 20498)
@@ -0,0 +1,111 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20306)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20307)
+@@ -196,6 +196,7 @@
+ 	if(iscalving){
+ 		switch(calvinglaw){
+ 			case DefaultCalvingEnum:
++			case CalvingDevEnum:
+ 				lsf_slopex_input  = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
+ 				if(dim==2) lsf_slopey_input  = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
+ 				calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
+@@ -235,23 +236,6 @@
+ 				}
+ 				meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
+ 				break;
+-			case CalvingDevEnum:
+-				switch(domaintype){
+-					case Domain2DverticalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						break;
+-					case Domain2DhorizontalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
+-						break;
+-					case Domain3DEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
+-						break;
+-					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+-				}
+-				meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
+-				break;
+ 			default:
+ 				_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 		}
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20306)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20307)
+@@ -507,7 +507,7 @@
+ 	Input* gmb_input           = element->GetInput(BasalforcingsGroundediceMeltingRateEnum);  _assert_(gmb_input);
+ 	Input* fmb_input           = element->GetInput(BasalforcingsFloatingiceMeltingRateEnum);  _assert_(fmb_input);
+ 	Input* groundedice_input   = element->GetInput(MaskGroundediceLevelsetEnum);              _assert_(groundedice_input);
+-	Input* ms_input            = element->GetInput(SmbMassBalanceEnum);           _assert_(ms_input);
++	Input* ms_input            = element->GetInput(SmbMassBalanceEnum);                       _assert_(ms_input);
+ 	Input* thickness_input     = element->GetInput(ThicknessEnum);                            _assert_(thickness_input);
+ 
+ 	/* Start  looping on the number of gaussian points: */
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20306)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20307)
+@@ -349,7 +349,7 @@
+ 	IssmDouble  calvingratey[NUMVERTICES];
+ 	IssmDouble  calvingrate[NUMVERTICES];
+ 	IssmDouble  lambda1,lambda2,ex,ey,vx,vy,vel;
+-	IssmDouble  sigma_vm,sigma_max,epse_2;
++	IssmDouble  sigma_vm,sigma_max,epse_2,groundedice;
+ 
+ 	/* Get node coordinates and dof list: */
+ 	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+@@ -357,6 +357,7 @@
+ 	/*Retrieve all inputs and parameters we will need*/
+ 	Input* vx_input = inputs->GetInput(VxEnum); _assert_(vx_input);
+ 	Input* vy_input = inputs->GetInput(VyEnum); _assert_(vy_input);
++	Input* gr_input = inputs->GetInput(MaskGroundediceLevelsetEnum); _assert_(gr_input);
+ 	IssmDouble  B   = this->GetMaterialParameter(MaterialsRheologyBbarEnum);
+ 	IssmDouble  n   = this->GetMaterialParameter(MaterialsRheologyNEnum);
+ 
+@@ -368,6 +369,7 @@
+ 		/*Get velocity components and thickness*/
+ 		vx_input->GetInputValue(&vx,gauss);
+ 		vy_input->GetInputValue(&vy,gauss);
++		gr_input->GetInputValue(&groundedice,gauss);
+ 		vel=sqrt(vx*vx+vy*vy)+1.e-14;
+ 
+ 		/*Compute strain rate and viscosity: */
+@@ -389,10 +391,16 @@
+ 		sigma_max = 350.e+3;
+ 		sigma_max = 450.e+3;
+ 		sigma_max = 800.e+3; //too much
+-		sigma_max = 700.e+3;
+-		sigma_max = 670.e+3;
++		//sigma_max = 700.e+3;
++		//sigma_max = 670.e+3;
+ 		//sigma_max = 550.e+3;
++		sigma_max = 750.e+3; //too high
++		sigma_max = 850.e+3; //too low
++		sigma_max = 800.e+3; //IUGG previous test
++		sigma_max = 1000.e+3; //850 seems small
+ 
++		if(groundedice<0) sigma_max=200.e+3;
++
+ 		/*Assign values*/
+ 		calvingratex[iv]=vx*sigma_vm/sigma_max;
+ 		calvingratey[iv]=vy*sigma_vm/sigma_max;
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20306)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20307)
+@@ -1996,6 +1996,9 @@
+ 				case CalvingPiEnum:
+ 					this->CalvingRatePi();
+ 					break;
++				case CalvingDevEnum:
++					this->CalvingRateDev();
++					break;
+ 				default:
+ 					_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 			}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20307-20308.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20307-20308.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20307-20308.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test273.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test273.m	(revision 20307)
++++ ../trunk-jpl/test/NightlyRun/test273.m	(revision 20308)
+@@ -9,7 +9,7 @@
+ md=setflowequation(md,'SSA','all');
+ md.cluster=generic('name',oshostname(),'np',3);
+ 
+-md.stressbalance.requested_outputs={'default','NewDamage'}
++md.stressbalance.requested_outputs={'default','NewDamage'};
+ md.damage.stress_threshold=1.3e5;
+ md.damage.kappa=2.8;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20308-20309.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20308-20309.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20308-20309.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20308)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20309)
+@@ -216,6 +216,7 @@
+ 	xDelete<IssmDouble>(eps_xy);
+ 	xDelete<IssmDouble>(eps_xz);
+ 	xDelete<IssmDouble>(eps_yz);
++	xDelete<IssmDouble>(eps_ef);
+ 
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20309-20310.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20309-20310.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20309-20310.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20309)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20310)
+@@ -85,7 +85,7 @@
+ #retrieve directly
+ dVdh_ad=md.results.MasstransportSolution.AutodiffJacobian
+ 
+-print "dV/dh: analytical:  #16.16g\n       using adolc:  #16.16g\n" % (dVdh_an,dVdh_ad)
++print "dV/dh: analytical:  %16.16g\n       using adolc:  %16.16g\n" % (dVdh_an,dVdh_ad)
+ 
+ #Fields and tolerances to track changes
+ field_names     =['dV/dh-dV/dh0']
Index: /issm/oecreview/Archive/19101-20495/ISSM-20310-20311.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20310-20311.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20310-20311.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20310)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20311)
+@@ -24,7 +24,6 @@
+ md.cluster=generic('name',oshostname(),'np',1)
+ md.masstransport.requested_outputs=['IceVolume']
+ md.verbose=verbose('autodiff',True)
+-md.toolkits.DefaultAnalysis=issmgslsolver()
+ 
+ #setup autodiff parameters
+ index=1 #this is the scalar component we are checking against
Index: /issm/oecreview/Archive/19101-20495/ISSM-20311-20312.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20311-20312.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20311-20312.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20311)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20312)
+@@ -78,5 +78,9 @@
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
+-PYTHON_NROPTIONS="--benchmark=adolc"
++#MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
++#PYTHON_NROPTIONS="--benchmark=adolc"
++#
++#Temporary deactivating some tests
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
++PYTHON_NROPTIONS="--benchmark='adolc' -i 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3101 3102 3103 3104 3105 3106 3107 3108 3109 3119"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20312-20313.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20312-20313.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20312-20313.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/test/NightlyRun/test3015.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20312)
++++ ../trunk-jpl/test/NightlyRun/test3015.py	(revision 20313)
+@@ -36,6 +36,9 @@
+ 	]
+ md.autodiff.driver='fos_forward'
+ 
++#PYTHON: indices start at 0, make sure to offset index
++index=index-1
++
+ #parameters for the step-wise derivative
+ delta=0.001
+ h1=md.geometry.thickness[index]
+Index: ../trunk-jpl/test/NightlyRun/test3020.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3020.py	(revision 20312)
++++ ../trunk-jpl/test/NightlyRun/test3020.py	(revision 20313)
+@@ -38,6 +38,9 @@
+ 	]
+ md.autodiff.driver='fos_forward'
+ 
++#PYTHON: indices start at 0, make sure to offset index
++index=index-1
++
+ #parameters for the step-wise derivative
+ delta=0.00001
+ h1=md.geometry.thickness[index]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20313-20314.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20313-20314.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20313-20314.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20313)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20314)
+@@ -78,9 +78,5 @@
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+-#MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
+-#PYTHON_NROPTIONS="--benchmark=adolc"
+-#
+-#Temporary deactivating some tests
+-MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
+-PYTHON_NROPTIONS="--benchmark='adolc' -i 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3101 3102 3103 3104 3105 3106 3107 3108 3109 3119"
++MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
++PYTHON_NROPTIONS="--benchmark=adolc"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20314-20315.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20314-20315.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20314-20315.diff	(revision 20498)
@@ -0,0 +1,104 @@
+Index: ../trunk-jpl/src/m/classes/clusters/vilje.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20314)
++++ ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20315)
+@@ -5,20 +5,20 @@
+ %      cluster=greenplanet('np',3);
+ %      cluster=greenplanet('np',3,'login','username');
+ 
+-classdef greenplanet
++classdef vilje
+     properties (SetAccess=public)  
+ 		 % {{{
+ 		 name          = 'vilje'
+ 		 login         = '';
+-		 accountname    ='';
++         accountname    ='';
+ 		 numnodes      = 20;
+-		 cpuspernode   = 8;
+-		 port          = 8000;
++		 cpuspernode   = '';
++		 port          = '';
+ 		 queue         = '';
+ 		 codepath      = '';
+ 		 executionpath = '';
+ 		 interactive   = 0;
+-		 time          = 24*60;
++		 time          = '';
+ 		 memory        = 2;
+ 	 end
+ 	 properties (SetAccess=private) 
+@@ -40,7 +40,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
+-			 disp(sprintf('    accountname: %s',cluster.accountname));
++                         disp(sprintf('    accountname: %s',cluster.accountname));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -59,11 +59,11 @@
+ 			 queue_requirements_time=[Inf Inf];
+ 			 queue_requirements_np=[80 80];
+ 
+-			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++			% QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
+ 
+ 			 %Miscelaneous
+ 			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
+-			 if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
++                         if isempty(cluster.accountname), md = checkmessage(md,'accountname empty'); end
+ 			 if isempty(cluster.codepath), md = checkmessage(md,'codepath empty'); end
+ 			 if isempty(cluster.executionpath), md = checkmessage(md,'executionpath empty'); end
+ 
+@@ -81,17 +81,18 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+ 			 fprintf(fid,'#PBS -N %s\n',modelname);
+-			 fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60);  %walltime is hh:mm:ss
+-			 fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+-			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++                         fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,16);
++                         fprintf(fid,'#PBS -l walltime=%s\n',cluster.time); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++%			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++%			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,modelname);
+-			 fprintf(fid,'mpiexec -np %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
++			 fprintf(fid,'mpiexec_mpt -n %i %s/kriging.exe %s %s\n',cluster.np,cluster.codepath,[cluster.executionpath '/' modelname],modelname);
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 			 end
+@@ -110,18 +111,19 @@
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+ 			 fprintf(fid,'#PBS -N %s\n',modelname);
+-			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-			 fprintf(fid,'#PBS -l select=%i:ncpus=%i:model=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-			 fprintf(fid,'#PBS -l walltime=%i\n',cluster.time*60); %walltime is in seconds.
+-			 fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+-			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
++%			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++             fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,16);
++             %fprintf(fid,'#PBS -l select=%i:ncpus=%i\n',cluster.numnodes,cluster.cpuspernode);
++			 fprintf(fid,'#PBS -l walltime=%s\n',cluster.time); %walltime is in seconds.
++                         fprintf(fid,'#PBS -A %s\n',cluster.accountname);
++%			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+ %			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+ 			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+ 			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
+-			 fprintf(fid,'mpiexec -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 fprintf(fid,'mpiexec_mpt -n %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 			 end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20315-20316.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20315-20316.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20315-20316.diff	(revision 20498)
@@ -0,0 +1,161 @@
+Index: ../trunk-jpl/src/m/classes/clusters/vilje.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20315)
++++ ../trunk-jpl/src/m/classes/clusters/vilje.m	(revision 20316)
+@@ -8,21 +8,24 @@
+ classdef vilje
+     properties (SetAccess=public)  
+ 		 % {{{
+-		 name          = 'vilje'
+-		 login         = '';
+-         accountname    ='';
+-		 numnodes      = 20;
+-		 cpuspernode   = '';
+-		 port          = '';
+-		 queue         = '';
+-		 codepath      = '';
+-		 executionpath = '';
+-		 interactive   = 0;
+-		 time          = '';
+-		 memory        = 2;
++                 name           = 'vilje';
++		 login          = '';
++		 numnodes       = 2;
++		 cpuspernode    = 32;
++                 procspernodes  = 16;
++                 mem            = 28;
++		 queue          = 'workq';
++		 time           = 2*60;
++		 codepath       = '';
++		 executionpath  = '';
++		 interactive    = 0;
++                 port           = [];
++                 accountname    = '';
++
++
+ 	 end
+ 	 properties (SetAccess=private) 
+-		 np=20*8;
++		 np=numnodes*procspernodes;
+ 		 % }}}
+ 	 end
+ 	 methods
+@@ -41,25 +44,26 @@
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
+                          disp(sprintf('    accountname: %s',cluster.accountname));
+-			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+-			 disp(sprintf('    np: %i',cluster.cpuspernode*cluster.numnodes));
++			 disp(sprintf('    np: %i', ...
++                                      cluster.cpuspernode*cluster.numnodes));
++			 disp(sprintf('    procspernodes: %i',cluster.procspernodes));
+ 			 disp(sprintf('    queue: %s',cluster.queue));
+ 			 disp(sprintf('    codepath: %s',cluster.codepath));
+ 			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+ 			 disp(sprintf('    interactive: %i',cluster.interactive));
+ 			 disp(sprintf('    time: %i',cluster.time));
+-			 disp(sprintf('    memory: %i',cluster.memory));
++			 disp(sprintf('    memory: %i',cluster.mem));
+ 		 end
+ 		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+-			 available_queues={'c6145','default'};
+-			 queue_requirements_time=[Inf Inf];
+-			 queue_requirements_np=[80 80];
++			 available_queues={'workq'};
++			 queue_requirements_time=[5*24*60];
++			 queue_requirements_np=[30];
+ 
+-			% QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
++			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,1)
+ 
+ 			 %Miscelaneous
+ 			 if isempty(cluster.login), md = checkmessage(md,'login empty'); end
+@@ -104,26 +108,36 @@
+ 			 if(isvalgrind), disp('valgrind not supported by cluster, ignoring...'); end
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
++			 executable='issm.exe';
++			 if isdakota,
++				 version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
++				 if (version>=6),
++					 executable='issm_dakota.exe';
++				 end
++			 end
++
+ 			 %compute number of processors
+ 			 cluster.np=cluster.numnodes*cluster.cpuspernode;
+ 
++                         
++                         shortname = substring(modelname,1,min(12,length(modelname)));
++
+ 			 %write queuing script 
+ 			 fid=fopen([modelname '.queue'],'w');
+ 			 fprintf(fid,'#PBS -S /bin/bash\n');
+-			 fprintf(fid,'#PBS -N %s\n',modelname);
+-%			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
+-             fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,16);
+-             %fprintf(fid,'#PBS -l select=%i:ncpus=%i\n',cluster.numnodes,cluster.cpuspernode);
+-			 fprintf(fid,'#PBS -l walltime=%s\n',cluster.time); %walltime is in seconds.
++			 fprintf(fid,'#PBS -N %s\n',shortname);
++			 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++             fprintf(fid,'#PBS -l select=%i:ncpus=%i:mpiprocs=%i\n',cluster.numnodes,cluster.cpuspernode,cluster.procspernodes);
++			 fprintf(fid,'#PBS -l walltime=%s\n',duration(0,cluster.time,0)); %walltime is in minutes.
+                          fprintf(fid,'#PBS -A %s\n',cluster.accountname);
+-%			 fprintf(fid,'#PBS -l mem=%igb\n',cluster.memory);
+-%			 fprintf(fid,'#PBS -M mmorligh@uci.edu\n');
+-			 fprintf(fid,'#PBS -o %s.outlog \n',modelname);
+-			 fprintf(fid,'#PBS -e %s.errlog \n\n',modelname);
++			 fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
++			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
+ 			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+-			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
+-			 fprintf(fid,'mpiexec_mpt -n %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 fprintf(fid,'cd %s/%s\n\n', ...
++                                 cluster.executionpath,dirname);
++                         fprintf(fid,'mpiexec -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 			 end
+@@ -143,21 +157,31 @@
+ 				 fclose(fid);
+ 			 end
+ 		 end %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
+ 
++
++		 function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 %compress the files into one zip.
+ 			 compressstring=['tar -zcf ' dirname '.tar.gz '];
+ 			 for i=1:numel(filelist),
+ 				 compressstring = [compressstring ' ' filelist{i}];
+ 			 end
+-			 if cluster.interactive,
+-				 compressstring = [compressstring ' ' modelname '.errlog ' modelname '.outlog '];
+-			 end
++			 
+ 			 system(compressstring);
+ 
+ 			 disp('uploading input file and queueing script');
+-			 issmscpout(cluster.name,cluster.executionpath,cluster.login,cluster.port,{[dirname '.tar.gz']});
++			
++			 directory=cluster.executionpath;
+ 
++			 issmbbftpout(cluster.name,directory, ...
++                                      cluster.login,cluster.port,cluster.numstreams,{[dirname '.tar.gz']});
++
++		 end
++		 %}}}
++
++
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist)% {{{
++
+ 			 disp('launching solution sequence on remote cluster');
+ 			  launchcommand=['cd ' cluster.executionpath ' && rm -rf ./' dirname ' && mkdir ' dirname ...
+ 											 ' && cd ' dirname ' && mv ../' dirname '.tar.gz ./ && tar -zxf ' dirname '.tar.gz  && hostname && qsub ' modelname '.queue '];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20316-20317.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20316-20317.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20316-20317.diff	(revision 20498)
@@ -0,0 +1,44 @@
+Index: ../trunk-jpl/externalpackages/mpich/install-3.0-cyclone.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/mpich/install-3.0-cyclone.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/mpich/install-3.0-cyclone.sh	(revision 20317)
+@@ -0,0 +1,33 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf src install mpich-3.0.4
++mkdir src install
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/mpich-3.0.4.tar.gz' 'mpich-3.0.4.tar.gz'
++
++#Untar 
++tar -zxvf  mpich-3.0.4.tar.gz
++
++#Move mpich into src directory
++mv mpich-3.0.4/* src
++rm -rf mpich-3.0.4
++
++#Configure mpich
++cd src
++./configure \
++	--prefix="$ISSM_DIR/externalpackages/mpich/install" \
++	--enable-shared \
++	--enable-sharedlibs=gcc\
++    CC=gcc \
++    CXX=g++
++
++#Compile mpich (this new version supports parallel make)
++if [ $# -eq 0 ]; then
++	make
++else
++	make -j $1
++fi
++make install 
+
+Property changes on: ../trunk-jpl/externalpackages/mpich/install-3.0-cyclone.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20317-20318.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20317-20318.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20317-20318.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/configs/config-linux64-cyclone.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-cyclone.sh	(revision 0)
++++ ../trunk-jpl/configs/config-linux64-cyclone.sh	(revision 20318)
+@@ -0,0 +1,22 @@
++#!/bin/sh
++
++#Default configuration script
++#automake 1.14
++#petsc 3.6
++#mpich 3.0
++
++./configure \
++		--prefix=$ISSM_DIR \
++		--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++		--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
++		--with-m1qn3-dir="$ISSM_DIR/externalpackages/m1qn3/install" \
++		--with-mpi-include="$ISSM_DIR/externalpackages/mpich/install/include"  \
++		--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich -lmpl" \
++		--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
++		--with-metis-dir="$ISSM_DIR/externalpackages/petsc/install" \
++		--with-scalapack-dir="$ISSM_DIR/externalpackages/petsc/install/" \
++		--with-mumps-dir="$ISSM_DIR/externalpackages/petsc/install/" \
++		--with-fortran-lib="-L/opt/intel/intelcompiler-12.04/composerxe-2011.4.191/compiler/lib/intel64 -lifport -lifcore -limf -lsvml -lintlc "\
++		--enable-development \
++		CC=mpicc \
++		CXX=mpic++
+\ No newline at end of file
+
+Property changes on: ../trunk-jpl/configs/config-linux64-cyclone.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20318-20319.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20318-20319.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20318-20319.diff	(revision 20498)
@@ -0,0 +1,259 @@
+Index: ../trunk-jpl/externalpackages/autotools/install-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/autotools/install-discover.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/autotools/install-discover.sh	(revision 20319)
+@@ -0,0 +1,57 @@
++#!/bin/bash
++set -eu
++
++rm -rf install
++mkdir install
++
++export PATH="$ISSM_DIR/externalpackages/autotools/install/bin:$PATH"
++
++#install m4
++echo " === INSTALLING M4 =="
++rm -rf src
++wget http://ftp.gnu.org/gnu/m4/m4-latest.tar.gz
++tar zxvf m4*
++rm m4-latest.tar.gz
++mv m4-* src
++cd src
++./configure --prefix="$ISSM_DIR/externalpackages/autotools/install"
++make
++make install
++cd ../
++
++#install autoconf
++echo " === INSTALLING AUTOCONF =="
++rm -rf src
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/autoconf-2.69.tar.gz' 'autoconf-2.69.tar.gz'
++tar -zxvf autoconf-2.69.tar.gz
++mv autoconf-2.69 src
++cd src 
++./configure --prefix="$ISSM_DIR/externalpackages/autotools/install" 
++make  
++make install
++cd ..
++
++#install automake
++echo " === INSTALLING AUTOMAKE =="
++rm -rf src
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/automake-1.14.tar.gz' 'automake-1.14.tar.gz'
++tar -zxvf  automake-1.14.tar.gz
++mv automake-1.14 src
++cd src 
++./configure --prefix="$ISSM_DIR/externalpackages/autotools/install" 
++make  
++make install
++cd ..
++
++#install libtool
++echo " === INSTALLING LIBTOOL =="
++rm -rf src
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/libtool-2.4.2.tar.gz' 'libtool-2.4.2.tar.gz'
++tar -zxvf  libtool-2.4.2.tar.gz
++rm libtool-2.4.2.tar.gz
++mv libtool-2.4.2 src
++cd src 
++./configure --prefix="$ISSM_DIR/externalpackages/autotools/install" 
++make  
++make install
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/autotools/install-discover.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.discover.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.discover.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.discover.patch	(revision 20319)
+@@ -0,0 +1,35 @@
++54,55c54,55
++< #set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} <flag>"
++< #     CACHE STRING "CXX Flags for my platform" )
++---
++> set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPICH_IGNORE_CXX_SEEK"
++>      CACHE STRING "CXX Flags for my platform" )
++67a68,75
++> set( DAKOTA_HAVE_MPI ON
++>  CACHE BOOL "Always build with MPI enabled" FORCE)
++> set( MPI_INCLUDE_PATH
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/include"
++>  CACHE FILEPATH "Use installed MPI headers" FORCE)
++> set( MPI_LIBRARY
++>  "$ENV{ISSM_DIR}/externalpackages/mpich/install/lib/libmpich.so"
++>  CACHE FILEPATH "Use installed MPI library" FORCE)
++73,77c73,77
++< #set(BOOST_ROOT
++< #    "path/to/custom/Boost/install/directory"
++< #    CACHE PATH "Use non-standard Boost install" FORCE)
++< #set( Boost_NO_SYSTEM_PATHS TRUE
++< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++---
++> set(BOOST_ROOT
++>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
++>     CACHE PATH "Use non-standard Boost install" FORCE)
++> set( Boost_NO_SYSTEM_PATHS TRUE
++>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
++91,93c91,93
++< #set( CMAKE_INSTALL_PREFIX
++< #     "/path/to/Dakota/installation"
++< #     CACHE PATH "Path to Dakota installation" )
++---
++> set( CMAKE_INSTALL_PREFIX
++>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
++>      CACHE PATH "Path to Dakota installation" )
+Index: ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.discover.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.discover.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.discover.patch	(revision 20319)
+@@ -0,0 +1,6 @@
++156c153,155
++< # TODO: Can't this be integrated into the following logic?
++---
++> # TODO: Can't this be integrated into the following logic?
++> set(BLAS_LIBS "-L/usr/local/intel/Composer/composer_xe_2015.0.090/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
++> set(LAPACK_LIBS "-L/usr/local/intel/Composer/composer_xe_2015.0.090/mkl/lib/intel64/ -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm")
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-intel15-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-intel15-discover.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-intel15-discover.sh	(revision 20319)
+@@ -0,0 +1,56 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf Dakota
++rm -rf src 
++rm -rf build 
++rm -rf install 
++mkdir src build install 
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-6.2-public.src.tar.gz' 'dakota-6.2-public-src.tar.gz'
++
++#Untar 
++tar -zxvf dakota-6.2-public-src.tar.gz
++
++#Move Dakota to src directory
++mv dakota-6.2.0.src/* src
++rm -rf dakota-6.2.0.src
++
++#Set up Dakota cmake variables and config
++export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
++export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
++export MPIHOME=$ISSM_DIR/externalpackages/mpich/install
++cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
++patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/6.2/BuildDakotaCustom.cmake.discover.patch
++patch $DAK_SRC/cmake/DakotaDev.cmake configs/6.2/DakotaDev.cmake.patch
++patch $DAK_SRC/CMakeLists.txt configs/6.2/CMakeLists.txt.discover.patch
++
++#Apply patches
++patch src/src/NonDSampling.cpp configs/6.2/NonDSampling.cpp.patch
++patch src/src/NonDLocalReliability.cpp configs/6.2/NonDLocalReliability.cpp.patch
++patch src/packages/pecos/src/pecos_global_defs.hpp configs/6.2/pecos_global_defs.hpp.patch
++
++#Configure dakota
++cd $DAK_BUILD
++
++cmake -D CMAKE_C_COMPILER=mpicc \
++	   -D CMAKE_CXX_COMPILER=mpicxx \
++	   -D CMAKE_Fortran_COMPILER=/usr/bin/gfortran \
++		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
++		-C $DAK_SRC/cmake/DakotaDev.cmake \
++		$DAK_SRC
++cd ..
++
++#Compile and install dakota
++cd $DAK_BUILD
++if [ $# -eq 0 ];
++then
++	make
++	make install
++else
++	make -j $1
++	make -j $1 install
++fi
++cd ..
+
+Property changes on: ../trunk-jpl/externalpackages/dakota/install-6.2-intel15-discover.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh	(revision 20319)
+@@ -0,0 +1,62 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.0.tar.gz
++mv petsc-3.6.0/* src/
++rm -rf petsc-3.6.0
++
++#--with-cc=icc --with-cxx=icpc --with-fc=ifort --with-f77=ifort \
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-blas-lapack-dir="/usr/local/intel/Composer/composer_xe_2015.0.090/mkl/" \
++	--with-mpi-lib="/usr/local/intel/mpi/4.0.3.008/lib64/libmpi.so" \
++	--with-mpi-include="/usr/local/intel/mpi/4.0.3.008/intel64/include/" \
++	--known-mpi-shared-libraries=1 \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-batch=1  \
++	--with-shared-libraries=1 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1 
++
++#prepare script to reconfigure petsc
++cat > script.queue << EOF
++#!/bin/bash
++#SBATCH -J petscinstall # Job Name
++#SBATCH -N 1
++#SBATCH -n 1
++#SBATCH -A s1010
++#SBATCH -t 00:01:00 # Run time (hh:mm:ss) - 1.5 hours
++#SBATCH --qos=debug
++#SBATCH -o petscinstall.outlog
++#SBATCH -e petscinstall.errlog
++
++. /usr/share/modules/init/bash
++module load comp/intel-15.0.0.090
++module load mpi/impi-4.0.3.008
++
++export PATH="$PATH:."
++export MPI_GROUP_MAX=64
++mpirun -np 1 ./conftest-arch-linux2-c-opt
++EOF
++
++#print instructions
++echo "== Now: cd src/ "
++echo "== sbatch script.queue "
++echo "== Then run reconfigure script generated by PETSc and follow instructions"
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20319-20320.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20319-20320.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20319-20320.diff	(revision 20498)
@@ -0,0 +1,130 @@
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 20319)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 20320)
+@@ -10,11 +10,12 @@
+ 		 % {{{
+ 		 name=oshostname();
+ 		 login='';
++		 modules        = {};
+ 		 numnodes=20;
+ 		 cpuspernode=8; 
+ 		 port=0;
+ 		 queue='general';
+-		 time=12*60;
++		 time=12*60*60;
+ 		 processor='west';
+ 		 codepath='';
+ 		 executionpath='';
+@@ -22,6 +23,7 @@
+ 		 bbftp=0;
+ 		 numstreams=8;
+ 		 hyperthreading=0;
++		 email='';
+ 	 end
+ 	 %}}}
+ 	 methods
+@@ -39,6 +41,7 @@
+ 			 disp(sprintf('class ''%s'' object ''%s'' = ',class(cluster),inputname(1)));
+ 			 disp(sprintf('    name: %s',cluster.name));
+ 			 disp(sprintf('    login: %s',cluster.login));
++			 disp(sprintf('    modules: %s',strjoin(cluster.modules,', ')));
+ 			 disp(sprintf('    port: %i',cluster.port));
+ 			 disp(sprintf('    numnodes: %i',cluster.numnodes));
+ 			 disp(sprintf('    cpuspernode: %i',cluster.cpuspernode));
+@@ -50,6 +53,7 @@
+ 			 disp(sprintf('    executionpath: %s',cluster.executionpath));
+ 			 disp(sprintf('    interactive: %i',cluster.interactive));
+ 			 disp(sprintf('    hyperthreading: %i',cluster.hyperthreading));
++			 disp(sprintf('    email: %s',cluster.email));
+ 		 end
+ 		 %}}}
+ 		 function numprocs=np(cluster) % {{{
+@@ -59,9 +63,9 @@
+ 		 %}}}
+ 		 function md = checkconsistency(cluster,md,solution,analyses) % {{{
+ 
+-			 available_queues={'general_long','general','debug'};
+-			 queue_requirements_time=[24*60 12*60 60];
+-			 queue_requirements_np=[516 1024 32];
++			 available_queues={'long','general','debug'};
++			 queue_requirements_time=[24*60*60 12*60*60 60];
++			 queue_requirements_np=[4116 532 532];
+ 
+ 			 QueueRequirements(available_queues,queue_requirements_time,queue_requirements_np,cluster.queue,cluster.np,cluster.time)
+ 
+@@ -70,12 +74,12 @@
+ 				 if ((cluster.cpuspernode>16 ) | (cluster.cpuspernode<1)),
+ 					 md = checkmessage(md,'cpuspernode should be between 1 and 16 for ''sand'' processors');
+ 				 end
+-			 elseif strcmpi(cluster.processor,'west'),
+-				 if ((cluster.cpuspernode>12 ) | (cluster.cpuspernode<1)),
+-					 md = checkmessage(md,'cpuspernode should be between 1 and 12 for ''west'' processors');
++			 elseif strcmpi(cluster.processor,'hasw'),
++				 if ((cluster.cpuspernode>28 ) | (cluster.cpuspernode<1)),
++					 md = checkmessage(md,'cpuspernode should be between 1 and 28 for ''hasw'' processors');
+ 				 end
+ 			 else
+-				 md = checkmessage(md,'unknown processor type, should be ''sand'' or ''west'' ');
++				 md = checkmessage(md,'unknown processor type, should be ''sand'' or ''hasw'' ');
+ 			 end
+ 
+ 			 %Miscelaneous
+@@ -89,27 +93,33 @@
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
+-			 %write queuing script 
++			 %write queuing script
+ 			 fid=fopen([modelname '.queue'],'w');
++
+ 			 fprintf(fid,'#!/bin/bash\n');
+-%			 fprintf(fid,'#PBS -N %s\n',modelname);
+-			 fprintf(fid,'#PBS -l select=%i:mpiprocs=%i:proc=%s\n',cluster.numnodes,cluster.cpuspernode,cluster.processor);
+-			 fprintf(fid,'#PBS -l walltime=%i:00\n',cluster.time); %SLURM walltime is in minutes:
+-			 if ~strcmp(cluster.queue,'general'),
+-				 fprintf(fid,'#PBS -q %s \n',cluster.queue);
++			 fprintf(fid,'#SBATCH -J %s \n',modelname);
++			 fprintf(fid,'#SBATCH --qos=%s \n',cluster.queue);
++			 fprintf(fid,'#SBATCH -o %s.outlog \n',modelname);
++			 fprintf(fid,'#SBATCH -e %s.errlog \n',modelname);
++			 fprintf(fid,'#SBATCH -n %i \n',cluster.numnodes*cluster.cpuspernode);
++			 fprintf(fid,'#SBATCH -N %i \n',cluster.numnodes);
++			 fprintf(fid,'#SBATCH -t %02i:%02i:00 \n',floor(cluster.time/3600),floor(mod(cluster.time,3600)/60));
++			 fprintf(fid,'#SBATCH -A s1010 \n\n');
++			 for i=1:numel(cluster.modules),
++				 fprintf(fid,['module load ' cluster.modules{i} '\n']);
+ 			 end
+-			 fprintf(fid,'#PBS -W group_list=s1010\n');
+-			 fprintf(fid,'#PBS -m e\n');
+-			 fprintf(fid,'#PBS -o %s.outlog \n',[cluster.executionpath '/' dirname '/' modelname]);
+-			 fprintf(fid,'#PBS -e %s.errlog \n\n',[cluster.executionpath '/' dirname '/' modelname]);
++			 if length(find(cluster.email=='@'))>0
++				 fprintf(fid,'#SBATCH --mail-user=%s \n',cluster.email);
++				 fprintf(fid,'#SBATCH --mail-type=end \n\n');
++			 end
+ 			 fprintf(fid,'. /usr/share/modules/init/bash\n\n');
+-			 fprintf(fid,'module purge\n');
+-			 fprintf(fid,'module load comp/intel-11.1.038\n');
++			 fprintf(fid,'module load comp/intel-15.0.0.090\n');
+ 			 fprintf(fid,'module load mpi/impi-4.0.3.008\n');
+-			 fprintf(fid,'module load lib/mkl-10.1.2.024\n\n');
+ 			 fprintf(fid,'export PATH="$PATH:."\n\n');
+-			 fprintf(fid,'export MPI_GROUP_MAX=64\n\n');
+-			 fprintf(fid,'cd %s/%s/\n\n',cluster.executionpath,dirname);
++			 fprintf(fid,'export ISSM_DIR="%s/../"\n',cluster.codepath); %FIXME
++			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
++			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
++
+ 			 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+@@ -161,7 +171,7 @@
+ 
+ 		 end
+ 		 %}}}
+-		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++		 function LaunchQueueJob(cluster,modelname,dirname,filelist,restart,batch)% {{{
+ 
+ 			 if ~cluster.interactive, 
+ 				 if ~isempty(restart)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20320-20321.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20320-20321.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20320-20321.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20320)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20321)
+@@ -3620,7 +3620,7 @@
+ 
+ 	/*recover material parameters: */
+ 	rho_ice=matpar->GetMaterialParameter(MaterialsRhoIceEnum);
+-	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	rho_water=matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
+ 	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
+ 
+ 	/*recover love numbers and computational flags: */
+@@ -3771,7 +3771,7 @@
+ 	if(!computerigid && !computeelastic) return;
+ 
+ 	/*recover material parameters: */
+-	rho_water=matpar->GetMaterialParameter(MaterialsRhoSeawaterEnum);
++	rho_water=matpar->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
+ 	rho_earth=matpar->GetMaterialParameter(MaterialsEarthDensityEnum);
+ 
+ 	/*how many dofs are we working with here? */
Index: /issm/oecreview/Archive/19101-20495/ISSM-20321-20322.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20321-20322.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20321-20322.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20321)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20322)
+@@ -55,7 +55,8 @@
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 			if ~ismember(SealevelriseAnalysisEnum(),analyses), return; end
+-			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
++			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
++			%md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
+@@ -70,6 +71,14 @@
+ 				error('slr error message: love numbers should be provided at the same level of accuracy');
+ 			end
+ 
++			%cross check that whereever we have an ice load, the mask is <0 on each vertex: 
++			pos=find(self.deltathickness);
++			maskpos=md.mask.ice_levelset(md.mesh.elements(pos,:)); 
++			[els,vertices]=find(maskpos>0);
++			if length(els),
++				error('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!');
++			end
++
+ 		end % }}}
+ 		function list=defaultoutputs(self,md) % {{{
+ 			list = {'Sealevel'};
+@@ -93,7 +102,8 @@
+ 
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',2);
++			%WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'data',self.sealevel,'mattype',1,'format','DoubleMat','enum',SealevelEnum(),'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','abstol','format','Double');
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 20321)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 20322)
+@@ -512,7 +512,7 @@
+ 			end
+ 
+ 			%recreate segments
+-			if isa(md1.mesh,'mesh2d'),
++			if isa(md1.mesh,'mesh2d') | isa(md1.mesh','mesh3dsurface'),
+ 				md2.mesh.vertexconnectivity=NodeConnectivity(md2.mesh.elements,md2.mesh.numberofvertices);
+ 				md2.mesh.elementconnectivity=ElementConnectivity(md2.mesh.elements,md2.mesh.vertexconnectivity);
+ 				md2.mesh.segments=contourenvelope(md2.mesh);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20322-20323.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20322-20323.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20322-20323.diff	(revision 20498)
@@ -0,0 +1,117 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20322)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20323)
+@@ -1396,9 +1396,9 @@
+ 	 dnl look at $ISSM_DIR/externalpackages/petsc/install/lib/petsc/conf/petscvariables BLASLAPACK_LIB
+ 		MKLINCL=""
+ 		if test x$VENDOR = xintel-pleiades; then
+-		   MKLLIB="-Wl,-rpath,/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -L/nasa/intel/Compiler/2015.0.090/composer_xe_2015.0.090/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
++         MKLLIB="-Wl,-rpath,$MKL_ROOT -L/$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		elif test x$VENDOR = xintel-discover; then
+-			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread"
++			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -L/usr/lib64/ -lpthread -lm"
+ 		elif test x$VENDOR = xintel-acenet; then
+ 			MKLLIB=-L"$MKL_ROOT -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm"
+ 		elif test x$VENDOR = xintel-gp; then
+Index: ../trunk-jpl/externalpackages/boost/install-1.55-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/install-1.55-discover.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/install-1.55-discover.sh	(revision 20323)
+@@ -0,0 +1,38 @@
++#!/bin/bash
++set -eu
++
++#Note of caution:  stop after boostrap phase, and run 
++#bjam --debug-configuration, to figure out which paths boost is using to include 
++#python. make sure everyone of these paths is covered by python. If not, just make 
++#symlinks in externalpackages/python to what boost is expecting. Ther is NO WAY 
++#to get the boost library to include python support without doing that. 
++
++#Some cleanup
++rm -rf install boost_1_55_0 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/boost_1_55_0.tar.gz' 'boost_1_55_0.tar.gz'
++
++#Untar 
++tar -zxvf  boost_1_55_0.tar.gz
++
++#Move boost into install directory
++mv boost_1_55_0/* src
++rm -rf boost_1_55_0
++
++patch src/boost/mpl/aux_/config/adl.hpp ./configs/1.55/adl.hpp.patch
++
++#Configure and compile
++cd src 
++./bootstrap.sh \
++	--prefix="$ISSM_DIR/externalpackages/boost/install" \
++	--with-python=python2.7 \
++	--with-python-root="$ISSM_DIR/externalpackages/python/install" 
++
++#Compile boost
++./bjam install
++
++#put bjam into install also: 
++mkdir ../install/bin
++cp bjam ../install/bin
+
+Property changes on: ../trunk-jpl/externalpackages/boost/install-1.55-discover.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.patch
+===================================================================
+--- ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.patch	(revision 0)
++++ ../trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.patch	(revision 20323)
+@@ -0,0 +1,7 @@
++33,34c33,35
++<         || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
++<         )
++---
++> 		 )
++> //        || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
++> //        )
+Index: ../trunk-jpl/src/m/classes/clusters/discover.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 20322)
++++ ../trunk-jpl/src/m/classes/clusters/discover.m	(revision 20323)
+@@ -93,6 +93,14 @@
+ 
+ 			 if(isgprof),    disp('gprof not supported by cluster, ignoring...'); end
+ 
++			 executable='issm.exe';
++			 if isdakota,
++				 version=IssmConfig('_DAKOTA_VERSION_'); version=str2num(version(1:3));
++				 if (version>=6),
++					 executable='issm_dakota.exe';
++				 end
++			 end
++
+ 			 %write queuing script
+ 			 fid=fopen([modelname '.queue'],'w');
+ 
+@@ -120,7 +128,7 @@
+ 			 fprintf(fid,'source $ISSM_DIR/etc/environment.sh\n');       %FIXME
+ 			 fprintf(fid,'cd %s/%s\n\n',cluster.executionpath,dirname);
+ 
+-			 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++			 fprintf(fid,'mpirun -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 			 if ~io_gather, %concatenate the output files:
+ 				 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
+ 			 end
+@@ -130,9 +138,9 @@
+ 			 if cluster.interactive,
+ 				 fid=fopen([modelname '.run'],'w');
+ 				 if ~isvalgrind,
+-					 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++					 fprintf(fid,'mpirun -np %i %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 				 else
+-					 fprintf(fid,'mpirun -np %i valgrind --leak-check=full %s/issm.exe %s %s %s\n',cluster.np,cluster.codepath,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
++					 fprintf(fid,'mpirun -np %i valgrind --leak-check=full %s/%s %s %s %s\n',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname);
+ 				 end
+ 				 if ~io_gather, %concatenate the output files:
+ 					 fprintf(fid,'cat %s.outbin.* > %s.outbin',modelname,modelname);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20323-20324.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20323-20324.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20323-20324.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m	(revision 20323)
++++ ../trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m	(revision 20324)
+@@ -1,21 +1,18 @@
+ function exportVTK(filename,model,varargin)
+-% vtk export
+-% function exportVTK(filename,model)
+-% creates a directory with the vtk files for displays in paraview
+-% (only work for triangle and wedges based on their number of nodes)
++%EXPORTVTK -  vtk export
+ %
+-%Give only the results for nw but could be extended to geometry, mask... 
++%   function exportVTK(filename,model)
++%   creates a directory with the vtk files for displays in paraview
++%   (only work for triangle and wedges based on their number of nodes)
++%   By default only the results are exported, you can add whichever
++%   field you need as a string:
++%   add 'geometry' to export md.geometry
+ %
+-% input: filename   destination 
+-%                   (string)
+-%------------------------------------------------------------------
+-%        model      this is md 
+-%------------------------------------------------------------------
+-% By default only the results are exported, you can add whichever
+-% field you need as a string:
+-% add 'geometry' to export md.geometry
++%   USAGE:
++%      exportVTK(filename,model,varargin)
+ %
+-% Basile de Fleurian:
++%   EXAMPLE:
++%      exportVTK('ResultSimulation1',md)
+ 
+ [path,name,ext]=fileparts(filename);
+ separator=filesep;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20324-20325.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20324-20325.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20324-20325.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/m/exp/expwrite.m
+===================================================================
+--- ../trunk-jpl/src/m/exp/expwrite.m	(revision 20324)
++++ ../trunk-jpl/src/m/exp/expwrite.m	(revision 20325)
+@@ -27,6 +27,14 @@
+ end
+ 
+ fid=fopen(filename,'w');
++if fid==-1,
++	choice=input(['WARNING: file ' filename ' could not be created, would you like to save your exp as ./temp_expwrite.exp? (y/n)'],'s');
++	if ~strcmpi(choice,'y'),
++		disp('no file written... exiting');
++		return
++	end
++	fid=fopen('./temp_expwrite.exp','w');
++end
+ for n=1:length(a),
+ 	if(length(a(n).x)~=length(a(n).y)),
+ 		error('contours x and y coordinates must be of identical size');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20325-20326.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20325-20326.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20325-20326.diff	(revision 20498)
@@ -0,0 +1,52 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20325)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20326)
+@@ -7,13 +7,15 @@
+ 	
+ 	%parameterize slr solution:
+ 	%slr loading:  {{{
+-	md.slr.deltathickness=zeros(md.mesh.numberofvertices,1);
++	md.slr.deltathickness=zeros(md.mesh.numberofelements,1);
+ 	md.slr.sealevel=zeros(md.mesh.numberofvertices,1);
+ 	%antarctica
+-	pos=find(md.mesh.lat <-80);
++	late=sum(md.mesh.lat(md.mesh.elements),2)/3;
++	longe=sum(md.mesh.long(md.mesh.elements),2)/3;
++	pos=find(late <-80);
+ 	md.slr.deltathickness(pos)=-100;
+ 	%greenlnd 
+-	pos=find(md.mesh.lat > 70 &  md.mesh.lat < 80 & md.mesh.long>-60 & md.mesh.long<-30);
++	pos=find(late > 70 &  late < 80 & longe>-60 & longe<-30);
+ 	md.slr.deltathickness(pos)=-100;
+ 	
+ 	%elastic loading from love numbers: 
+@@ -37,6 +39,10 @@
+ 	%make sure that the ice level set is all inclusive:
+ 	md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
+ 	md.mask.groundedice_levelset=-ones(md.mesh.numberofvertices,1); 
++
++	%make sure wherever there is an ice load, that the mask is set to ice: 
++	pos=find(md.slr.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
++
+ 	% }}}
+ 	%geometry:  {{{
+ 	di=md.materials.rho_ice/md.materials.rho_water;
+@@ -72,9 +78,13 @@
+ 	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1;
+ 	md=solve(md,SealevelriseSolutionEnum);
+ 	Selastic=md.results.SealevelriseSolution.Sealevel;
++	
++	%eustatic + rigid + elastic + rotation run: 
++	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1; md.slr.rotation=1;
++	md=solve(md,SealevelriseSolutionEnum);
++	Srotation=md.results.SealevelriseSolution.Sealevel;
+ 
+-
+ 	%Fields and tolerances to track changes
+-	field_names     ={'Eustatic','Rigid','Elastic'};
+-	field_tolerances={1e-13,1e-13,1e-13};
+-	field_values={Seustatic,Srigid,Selastic};
++	field_names     ={'Eustatic','Rigid','Elastic','Rotation'};
++	field_tolerances={1e-13,1e-13,1e-13,1e-13};
++	field_values={Seustatic,Srigid,Selastic,Srotation};
Index: /issm/oecreview/Archive/19101-20495/ISSM-20326-20327.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20326-20327.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20326-20327.diff	(revision 20498)
@@ -0,0 +1,4 @@
+Index: ../trunk-jpl/test/Archives/Archive2002.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20327-20328.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20327-20328.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20327-20328.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/etc/environment.sh
+===================================================================
+--- ../trunk-jpl/etc/environment.sh	(revision 20327)
++++ ../trunk-jpl/etc/environment.sh	(revision 20328)
+@@ -95,8 +95,10 @@
+ export MPI_INC_DIR="$MPI_DIR/include"
+ 
+ PETSC_DIR="$ISSM_DIR/externalpackages/petsc/install"
+-export PETSC_DIR
+-libpathappend "$PETSC_DIR/lib"
++if [ -d "$PETSC_DIR" ]; then
++	export PETSC_DIR
++	libpathappend "$PETSC_DIR/lib"
++fi
+ 
+ SLEPC_DIR="$ISSM_DIR/externalpackages/slepc/install"
+ libpathappend "$SLEPC_DIR/lib"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20328-20329.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20328-20329.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20328-20329.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20328)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20329)
+@@ -1073,6 +1073,9 @@
+ 					PETSCLIB="-L$PETSC_ROOT/lib -lpetsc -ldl"
+ 					if test $PETSC_MAJOR -gt 3 || test $PETSC_MINOR -ge 3; then PETSCLIB+=" -lmetis"; fi
+ 				fi
++				if test "$host_os_version"=="3.0.101-0.31.1_1.0502.8394-cray_gem_s" ; then
++					PETSCLIB="-L$PETSC_ROOT/lib -lcraypetsc_gnu_real -lmetis"
++				fi 
+ 				;;
+ 				*darwin*)
+ 				if test $PETSC_MAJOR -lt 3 ; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-20329-20330.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20329-20330.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20329-20330.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/configs/config-linux64-hexagon.sh
+===================================================================
+--- ../trunk-jpl/configs/config-linux64-hexagon.sh	(revision 0)
++++ ../trunk-jpl/configs/config-linux64-hexagon.sh	(revision 20330)
+@@ -0,0 +1,14 @@
++#!/bin/sh
++
++#need to swap to GNU environment
++#need to change the petsc libflag to lcraypetsc...
++./configure \
++		--prefix=/work/bfl022/issm_install \
++		--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++		--with-petsc-dir=$PETSC_DIR \
++		--with-metis-dir=$CRAY_TPSL_PREFIX_DIR \
++		--with-mumps-dir=$CRAY_TPSL_PREFIX_DIR \
++		--with-mpi-include="$CRAY_MPICH2_DIR/include" \
++		--with-mpi-libflags="-L$CRAY_MPICH2_DIR/lib -lmpich -lmpl -lfmpich -lmpichcxx -lmpichf90" \
++		--with-gsl-dir="/work/apps/gsl/1.16-gnu/" \
++		--enable-development
+
+Property changes on: ../trunk-jpl/configs/config-linux64-hexagon.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20330-20331.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20330-20331.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20330-20331.diff	(revision 20498)
@@ -0,0 +1,33 @@
+Index: ../trunk-jpl/src/m/psl/shlm_element.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm_element.m	(revision 20330)
++++ ../trunk-jpl/src/m/psl/shlm_element.m	(revision 20331)
+@@ -24,5 +24,3 @@
+    end
+ end 
+ sh_lm = sh_lm*4*pi/sum(areas);
+-
+-
+Index: ../trunk-jpl/src/m/psl/shlm.m
+===================================================================
+--- ../trunk-jpl/src/m/psl/shlm.m	(revision 20330)
++++ ../trunk-jpl/src/m/psl/shlm.m	(revision 20331)
+@@ -14,18 +14,15 @@
+ p = 0; 
+ 
+ sh_lm = zeros((lMax+1)^2,1); 
+-%sh_lm = zeros(1,(lMax+1)^2); 
+ 
+ % weighted area integration over the unit sphere 
+ for l=0:lMax
+    for m=-l:l
+-      %func0 = sh(:,1+p).*(func<1); 
+       func0 = sh(:,1+p).*func; 
+       sh_lm(1+p) = sum(mean(func0(index),2).*areas); 
+       p = p+1;
+    end
+ end 
+-%sh_lm = sh_lm/sum(areas);
+ sh_lm = sh_lm*4*pi/sum(areas);
+ 
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20331-20332.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20331-20332.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20331-20332.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20331)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20332)
+@@ -1073,7 +1073,7 @@
+ 					PETSCLIB="-L$PETSC_ROOT/lib -lpetsc -ldl"
+ 					if test $PETSC_MAJOR -gt 3 || test $PETSC_MINOR -ge 3; then PETSCLIB+=" -lmetis"; fi
+ 				fi
+-				if test "$host_os_version"=="3.0.101-0.31.1_1.0502.8394-cray_gem_s" ; then
++				if test "x$host_os_version"=="x3.0.101-0.31.1_1.0502.8394-cray_gem_s" ; then
+ 					PETSCLIB="-L$PETSC_ROOT/lib -lcraypetsc_gnu_real -lmetis"
+ 				fi 
+ 				;;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20332-20333.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20332-20333.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20332-20333.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20332)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20333)
+@@ -1073,7 +1073,7 @@
+ 					PETSCLIB="-L$PETSC_ROOT/lib -lpetsc -ldl"
+ 					if test $PETSC_MAJOR -gt 3 || test $PETSC_MINOR -ge 3; then PETSCLIB+=" -lmetis"; fi
+ 				fi
+-				if test "x$host_os_version"=="x3.0.101-0.31.1_1.0502.8394-cray_gem_s" ; then
++				if test "x$host_os_version" = "x3.0.101-0.31.1_1.0502.8394-cray_gem_s" ; then
+ 					PETSCLIB="-L$PETSC_ROOT/lib -lcraypetsc_gnu_real -lmetis"
+ 				fi 
+ 				;;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20333-20334.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20333-20334.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20333-20334.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/test/NightlyRun/test4001.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test4001.m	(revision 20333)
++++ ../trunk-jpl/test/NightlyRun/test4001.m	(revision 20334)
+@@ -10,7 +10,6 @@
+ org=organizer('repository','Models/','prefix','IceOcean.','steps',steps);
+ 
+ presentdirectory=pwd; 
+-addpath(recursivepath([pwd '/../MITgcm']));
+ 
+ % {{{ Parameters: 
+ if perform(org,'Parameters'),
+@@ -169,6 +168,7 @@
+ 	 system(['../MITgcm/build.sh generic ' pwd]);
+ end
+ % }}}
++addpath(recursivepath([pwd '/../MITgcm']));
+ % {{{ RunUncoupledMITgcm: 
+ if perform(org,'RunUncoupledMITgcm'),
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20334-20335.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20334-20335.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20334-20335.diff	(revision 20498)
@@ -0,0 +1,51 @@
+Index: ../trunk-jpl/test/NightlyRun/test341.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test341.py	(revision 0)
++++ ../trunk-jpl/test/NightlyRun/test341.py	(revision 20335)
+@@ -0,0 +1,46 @@
++#Test Name: SquareSheetConstrainedCMm1qn3DragHO
++import numpy
++from model import *
++from m1qn3inversion import *
++from triangle import *
++from setmask import *
++from parameterize import *
++from setflowequation import *
++from EnumDefinitions import *
++from solve import *
++from MatlabFuncs import *
++
++md=triangle(model(),'../Exp/Square.exp',200000.);
++md=setmask(md,'','');
++md=parameterize(md,'../Par/SquareSheetConstrained.py');
++md.extrude(3,1.)
++md=setflowequation(md,'HO','all');
++
++#control parameters
++md.inversion=m1qn3inversion(md.inversion);
++md.inversion.iscontrol=1;
++md.inversion.control_parameters=['FrictionCoefficient']
++md.inversion.min_parameters=1.*numpy.ones((md.mesh.numberofvertices,1))
++md.inversion.max_parameters=200.*numpy.ones((md.mesh.numberofvertices,1))
++md.inversion.maxsteps=2
++md.inversion.maxiter=6
++md.inversion.cost_functions=[102,501]
++md.inversion.cost_functions_coefficients=numpy.ones((md.mesh.numberofvertices,2))
++md.inversion.cost_functions_coefficients[:,1]=2.*10**-7
++md.inversion.vx_obs=md.initialization.vx;
++md.inversion.vy_obs=md.initialization.vy;
++
++md.cluster=generic('name',oshostname(),'np',3);
++md=solve(md,StressbalanceSolutionEnum());
++
++#Fields and tolerances to track changes
++field_names     =['Gradient','FrictionCoefficient','Pressure','Vel','Vx','Vy']
++field_tolerances=[1e-08,1e-9,1e-10,1e-09,1e-09,1e-09]
++field_values=[\
++	md.results.StressbalanceSolution.Gradient1,\
++	md.results.StressbalanceSolution.FrictionCoefficient,\
++	md.results.StressbalanceSolution.Pressure,\
++	md.results.StressbalanceSolution.Vel,\
++	md.results.StressbalanceSolution.Vx,\
++	md.results.StressbalanceSolution.Vy,\
++]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20335-20336.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20335-20336.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20335-20336.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20335)
++++ ../trunk-jpl/jenkins/windows	(revision 20336)
+@@ -18,7 +18,9 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni"'
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni"' \
++	--enable-development \
++	--enable-debugging '
+ 
+ #MATLAB path
+ MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20336-20337.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20336-20337.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20336-20337.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20336)
++++ ../trunk-jpl/jenkins/windows	(revision 20337)
+@@ -18,7 +18,7 @@
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/lib/  \
+ 	--with-mpi-libdir="$ISSM_DIR/externalpackages/petsc/install/lib" \
+ 	--with-mpi-libflags="-Wl,libpetsc.lib" \
+-	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni"' \
++	--with-mpi-include="$ISSM_DIR/externalpackages/petsc/install/include/petsc/mpiuni" \
+ 	--enable-development \
+ 	--enable-debugging '
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20337-20338.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20337-20338.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20337-20338.diff	(revision 20498)
@@ -0,0 +1,799 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -24,9 +27,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+@@ -54,7 +54,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20338)
+@@ -3,10 +3,13 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -25,9 +28,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+@@ -55,7 +55,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 				--disable-static \
+@@ -12,10 +15,7 @@
+ 				--without-Gia \
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_DIR \
+-				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
++				--with-matlab-dir=$MATLAB_PATH 
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -43,7 +43,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20338)
+@@ -24,6 +24,7 @@
+ 	--enable-debugging '
+ 
+ #MATLAB path
++MATLAB_PATH=''
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=0
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20338)
+@@ -1,3 +1,4 @@
++
+ #-------------------------------#
+ # 1: ISSM general configuration #
+ #-------------------------------#
+@@ -2,2 +3,5 @@
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+@@ -11,7 +15,7 @@
+ 				 --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				 --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+ 				 --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
+-				 --with-matlab-dir=$MATLAB_DIR \
++				 --with-matlab-dir=$MATLAB_PATH \
+ 				 --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 				 --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 				 --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+@@ -23,9 +27,6 @@
+ 				 --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 				 --enable-development '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -52,7 +53,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 				--prefix=$ISSM_DIR \
+@@ -11,10 +14,7 @@
+ 				--without-Gia \
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_DIR \
+-				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
++				--with-matlab-dir=$MATLAB_PATH 
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -43,7 +43,6 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 cmake install.sh 
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 				--disable-static \
+@@ -12,12 +15,9 @@
+ 				--without-Gia \
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_DIR \
++				--with-matlab-dir=$MATLAB_PATH \
+ 				--with-python-dir=/usr\
+ 				--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+-				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -45,7 +45,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 				  --without-kriging \
+@@ -11,7 +14,7 @@
+ 				  --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				  --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+ 				  --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
+-				  --with-matlab-dir=$MATLAB_DIR \
++				  --with-matlab-dir=$MATLAB_PATH \
+ 				  --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 				  --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 				  --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+@@ -22,9 +25,6 @@
+ 				  --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 				  --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+ 				  --enable-development \
+-				  --enable-debugging CXXFLAGS="-g -O0" '
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -53,7 +53,6 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 cmake install.sh 
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20338)
+@@ -1,3 +1,4 @@
++#
+ #-------------------------------#
+ # 1: ISSM general configuration #
+ #-------------------------------#
+@@ -2,2 +3,5 @@
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+@@ -11,7 +15,7 @@
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+ 				--with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
+-				--with-matlab-dir=$MATLAB_DIR \
++				--with-matlab-dir=$MATLAB_PATH \
+ 				--with-python-dir=/usr\
+ 				--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+ 				--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+@@ -25,9 +29,6 @@
+ 				--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 				--enable-development '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+@@ -54,7 +55,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+-					 matlab install.sh 
+ 					 mpich install-3.0-linux64.sh
+ 					 petsc install-3.5-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20337)
++++ ../trunk-jpl/jenkins/windows	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--with-vendor=MSVC-Win64  \
+@@ -11,7 +14,7 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
+-	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+@@ -22,9 +25,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -52,7 +52,6 @@
+ 						petsc       install-3.6-win10.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+-						matlab      install.sh
+ 						shell2junit install.sh"
+ 
+ #---------------------#
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20338)
+@@ -3,10 +3,13 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -21,9 +24,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -50,7 +50,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+Index: ../trunk-jpl/jenkins/linux64_murdo_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -20,9 +23,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -49,7 +49,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20337)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2015a.app/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
+@@ -21,9 +24,6 @@
+ 	--enable-debugging \
+ 	--enable-development'
+ 
+-#MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2015a.app/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -51,7 +51,6 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake 		 install.sh
+-						matlab       install.sh
+ 						mpich        install-3.0-macosx64.sh
+ 						chaco        install-macosx64.sh
+ 						m1qn3        install.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/matlab80/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -18,9 +21,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -47,7 +47,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_ross_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20338)
+@@ -3,10 +3,13 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -19,9 +22,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -48,7 +48,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						cmake         install.sh                
+ 						petsc         install-3.5-linux64.sh    
+Index: ../trunk-jpl/jenkins/imac-012301-gil
+===================================================================
+--- ../trunk-jpl/jenkins/imac-012301-gil	(revision 20337)
++++ ../trunk-jpl/jenkins/imac-012301-gil	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2011b.app/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
+@@ -18,9 +21,6 @@
+ 	--enable-debugging \
+ 	--enable-development'
+ 
+-#MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2011b.app/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -45,7 +45,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+-						matlab    install.sh                
+ 						mpich     install-3.0-macosx64.sh    
+ 						cmake     install.sh                
+ 						m1qn3     install.sh    
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20338)
+@@ -3,10 +3,13 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -20,9 +23,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+@@ -50,7 +50,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20337)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20338)
+@@ -29,15 +29,6 @@
+ fi
+ #}}}
+ 
+-#Installation ISSM
+-#create matlab's installation sript {{{
+-cat << END > $ISSM_DIR/externalpackages/matlab/install.sh
+-#!/bin/bash
+-rm -rf install
+-ln -s $MATLAB_PATH install
+-END
+-#}}}
+-
+ #SVN version issue requires that we set SVN and SVNVERSION explicitly in order
+ #to remain compatible with the version used by Jenkins to do checkouts
+ #{{{
+@@ -226,9 +217,9 @@
+ EOF
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	if [ "$OS" = "win" ]; then
+-		$ISSM_DIR_WIN/externalpackages/matlab/install/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR_WIN/src/m/dev; devpath; addpath $ISSM_DIR_WIN/nightlylog/; matlab_run$i" -logfile $ISSM_DIR_WIN/nightlylog/matlab_log$i.log &
++		$MATLAB_PATH/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR_WIN/src/m/dev; devpath; addpath $ISSM_DIR_WIN/nightlylog/; matlab_run$i" -logfile $ISSM_DIR_WIN/nightlylog/matlab_log$i.log &
+ 	else
+-		$ISSM_DIR/externalpackages/matlab/install/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
++		$MATLAB_PATH/bin/matlab -nojvm -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
+ 	fi
+ done
+ 
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 20337)
++++ ../trunk-jpl/jenkins/windows-par	(revision 20338)
+@@ -3,6 +3,9 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--with-vendor=MSVC-Win64  \
+@@ -11,7 +14,7 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
+-	--with-matlab-dir="$ISSM_DIR/externalpackages/matlab/install" \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/metis/install \
+@@ -21,9 +24,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/cygdrive/c/Programs/MATLAB/R2015a/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -47,11 +47,10 @@
+ EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+ 
+ #List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="				autotools   install-win.sh
++EXTERNALPACKAGES="autotools   install-win.sh
+ 						petsc       install-dev-win10-par.sh
+ 						metis       install-4.0-win7.sh
+ 						triangle    install-win7.sh        
+-						matlab      install.sh
+ 						shell2junit install.sh"
+ 
+ #---------------------#
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 20338)
+@@ -3,10 +3,13 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+@@ -25,9 +28,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+@@ -55,7 +55,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20337)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20338)
+@@ -3,9 +3,12 @@
+ # 1: ISSM general configuration #
+ #-------------------------------#
+ 
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
+@@ -18,9 +21,6 @@
+ 	--enable-debugging \
+ 	--enable-development'
+ 
+-#MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
+-
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+@@ -48,7 +48,6 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake        install.sh
+-						matlab       install.sh
+ 						mpich        install-3.0-macosx64.sh
+ 						m1qn3        install.sh
+ 						petsc        install-3.6-macosx64.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_test
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_test	(revision 20337)
++++ ../trunk-jpl/jenkins/linux64_ross_test	(revision 20338)
+@@ -1,3 +1,4 @@
++#
+ #-------------------------------#
+ # 1: ISSM general configuration #
+ #-------------------------------#
+@@ -2,6 +3,9 @@
+ 
++#MATLAB path
++MATLAB_PATH="/usr/local/MATLAB/R2015a"
++
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+-	--with-matlab-dir=$MATLAB_DIR \
++	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+@@ -24,9 +28,6 @@
+ 	--enable-development \
+ 	--enable-debugging '
+ 
+-#MATLAB path
+-MATLAB_PATH="/usr/local/MATLAB/R2015a"
+-
+ #PYTHON and MATLAB testing
+ #MATLAB_TEST=1
+ #PYTHON_TEST=1
+@@ -54,7 +55,6 @@
+ 
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+-						matlab        install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						petsc         install-3.5-linux64.sh    
+ 						triangle      install-linux64.sh        
Index: /issm/oecreview/Archive/19101-20495/ISSM-20338-20339.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20338-20339.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20338-20339.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20338)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20339)
+@@ -161,6 +161,10 @@
+ 	make distclean
+ 	./scripts/automakererun.sh
+ 	cat > configure.sh << EOF
++#Define MATLAB path first:
++MATLAB_PATH=$MATLAB_PATH
++
++#Configure options:
+ ./configure $ISSM_CONFIG
+ EOF
+ 	chmod 700 configure.sh
Index: /issm/oecreview/Archive/19101-20495/ISSM-20339-20340.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20339-20340.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20339-20340.diff	(revision 20498)
@@ -0,0 +1,78 @@
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20339)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20340)
+@@ -15,7 +15,8 @@
+ 				--without-Gia \
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_PATH 
++				--with-matlab-dir=$MATLAB_PATH \
++				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20339)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20340)
+@@ -14,7 +14,8 @@
+ 				--without-Gia \
+ 				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+ 				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_PATH 
++				--with-matlab-dir=$MATLAB_PATH \
++				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20339)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20340)
+@@ -18,6 +18,7 @@
+ 				--with-matlab-dir=$MATLAB_PATH \
+ 				--with-python-dir=/usr\
+ 				--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
++				--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20339)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20340)
+@@ -156,20 +156,21 @@
+ if [ "$ISSM_COMPILATION" == "yes" ]
+ then
+ 	cd $ISSM_DIR
+-	make uninstall
+-	make clean
+-	make distclean
++	#make uninstall
++	#make clean
++	#make distclean
+ 	./scripts/automakererun.sh
+-	cat > configure.sh << EOF
+-#Define MATLAB path first:
+-MATLAB_PATH=$MATLAB_PATH
++#	cat > configure.sh << EOF
++##Define MATLAB path first:
++#MATLAB_PATH=$MATLAB_PATH
++#
++##Configure options:
++#./configure $ISSM_CONFIG
++#EOF
++#	chmod 700 configure.sh
++#	./configure.sh
++   eval "./configure $ISSM_CONFIG"
+ 
+-#Configure options:
+-./configure $ISSM_CONFIG
+-EOF
+-	chmod 700 configure.sh
+-	./configure.sh
+-
+ 	#4: compile and install ISSM
+ 	if [ $NUMCPUS_INSTALL -gt 1 ]; then
+ 		echo "Making with " $NUMCPUS_INSTALL " cpus"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20340-20341.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20340-20341.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20340-20341.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20340)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20341)
+@@ -156,19 +156,9 @@
+ if [ "$ISSM_COMPILATION" == "yes" ]
+ then
+ 	cd $ISSM_DIR
+-	#make uninstall
+-	#make clean
+-	#make distclean
++	make uninstall
++	make distclean
+ 	./scripts/automakererun.sh
+-#	cat > configure.sh << EOF
+-##Define MATLAB path first:
+-#MATLAB_PATH=$MATLAB_PATH
+-#
+-##Configure options:
+-#./configure $ISSM_CONFIG
+-#EOF
+-#	chmod 700 configure.sh
+-#	./configure.sh
+    eval "./configure $ISSM_CONFIG"
+ 
+ 	#4: compile and install ISSM
Index: /issm/oecreview/Archive/19101-20495/ISSM-20341-20342.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20341-20342.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20341-20342.diff	(revision 20498)
@@ -0,0 +1,201 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20341)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20342)
+@@ -1054,15 +1054,18 @@
+ 	SealevelriseSolutionEnum,
+ 	SealevelriseAnalysisEnum,
+ 	SealevelEnum,
++	SealevelEustaticEnum,
+ 	SealevelriseDeltathicknessEnum,
+ 	SealevelriseMaxiterEnum,
+ 	SealevelriseReltolEnum,
+ 	SealevelriseAbstolEnum,
+ 	SealevelriseLoveHEnum,
+ 	SealevelriseLoveKEnum,
++	SealevelriseTideLoveHEnum,
++	SealevelriseTideLoveKEnum,
+ 	SealevelriseRigidEnum,
+ 	SealevelriseElasticEnum,
+-	SealevelriseEustaticEnum,
++	SealevelriseRotationEnum,
+ 	SealevelriseGElasticEnum,
+ 	SealevelriseDegaccEnum,
+ 	SealevelriseTransitionsEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20341)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20342)
+@@ -1006,15 +1006,18 @@
+ 		case SealevelriseSolutionEnum : return "SealevelriseSolution";
+ 		case SealevelriseAnalysisEnum : return "SealevelriseAnalysis";
+ 		case SealevelEnum : return "Sealevel";
++		case SealevelEustaticEnum : return "SealevelEustatic";
+ 		case SealevelriseDeltathicknessEnum : return "SealevelriseDeltathickness";
+ 		case SealevelriseMaxiterEnum : return "SealevelriseMaxiter";
+ 		case SealevelriseReltolEnum : return "SealevelriseReltol";
+ 		case SealevelriseAbstolEnum : return "SealevelriseAbstol";
+ 		case SealevelriseLoveHEnum : return "SealevelriseLoveH";
+ 		case SealevelriseLoveKEnum : return "SealevelriseLoveK";
++		case SealevelriseTideLoveHEnum : return "SealevelriseTideLoveH";
++		case SealevelriseTideLoveKEnum : return "SealevelriseTideLoveK";
+ 		case SealevelriseRigidEnum : return "SealevelriseRigid";
+ 		case SealevelriseElasticEnum : return "SealevelriseElastic";
+-		case SealevelriseEustaticEnum : return "SealevelriseEustatic";
++		case SealevelriseRotationEnum : return "SealevelriseRotation";
+ 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
+ 		case SealevelriseDegaccEnum : return "SealevelriseDegacc";
+ 		case SealevelriseTransitionsEnum : return "SealevelriseTransitions";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20341)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20342)
+@@ -1030,15 +1030,18 @@
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+ 	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+ 	      else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
++	      else if (strcmp(name,"SealevelEustatic")==0) return SealevelEustaticEnum;
+ 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
+ 	      else if (strcmp(name,"SealevelriseMaxiter")==0) return SealevelriseMaxiterEnum;
+ 	      else if (strcmp(name,"SealevelriseReltol")==0) return SealevelriseReltolEnum;
+ 	      else if (strcmp(name,"SealevelriseAbstol")==0) return SealevelriseAbstolEnum;
+ 	      else if (strcmp(name,"SealevelriseLoveH")==0) return SealevelriseLoveHEnum;
+ 	      else if (strcmp(name,"SealevelriseLoveK")==0) return SealevelriseLoveKEnum;
++	      else if (strcmp(name,"SealevelriseTideLoveH")==0) return SealevelriseTideLoveHEnum;
++	      else if (strcmp(name,"SealevelriseTideLoveK")==0) return SealevelriseTideLoveKEnum;
+ 	      else if (strcmp(name,"SealevelriseRigid")==0) return SealevelriseRigidEnum;
+ 	      else if (strcmp(name,"SealevelriseElastic")==0) return SealevelriseElasticEnum;
+-	      else if (strcmp(name,"SealevelriseEustatic")==0) return SealevelriseEustaticEnum;
++	      else if (strcmp(name,"SealevelriseRotation")==0) return SealevelriseRotationEnum;
+ 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
+ 	      else if (strcmp(name,"SealevelriseDegacc")==0) return SealevelriseDegaccEnum;
+ 	      else if (strcmp(name,"SealevelriseTransitions")==0) return SealevelriseTransitionsEnum;
+Index: ../trunk-jpl/src/m/enum/SealevelriseTideLoveKEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseTideLoveKEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseTideLoveKEnum.m	(revision 20342)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseTideLoveKEnum()
++%SEALEVELRISETIDELOVEKENUM - Enum of SealevelriseTideLoveK
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseTideLoveKEnum()
++
++macro=StringToEnum('SealevelriseTideLoveK');
+Index: ../trunk-jpl/src/m/enum/SealevelEustaticEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelEustaticEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelEustaticEnum.m	(revision 20342)
+@@ -0,0 +1,11 @@
++function macro=SealevelEustaticEnum()
++%SEALEVELEUSTATICENUM - Enum of SealevelEustatic
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelEustaticEnum()
++
++macro=StringToEnum('SealevelEustatic');
+Index: ../trunk-jpl/src/m/enum/SealevelriseTideLoveHEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseTideLoveHEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseTideLoveHEnum.m	(revision 20342)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseTideLoveHEnum()
++%SEALEVELRISETIDELOVEHENUM - Enum of SealevelriseTideLoveH
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseTideLoveHEnum()
++
++macro=StringToEnum('SealevelriseTideLoveH');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20341)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20342)
+@@ -991,18 +991,21 @@
+ function SealevelriseSolutionEnum(){ return 987;}
+ function SealevelriseAnalysisEnum(){ return 988;}
+ function SealevelEnum(){ return 989;}
+-function SealevelriseDeltathicknessEnum(){ return 990;}
+-function SealevelriseMaxiterEnum(){ return 991;}
+-function SealevelriseReltolEnum(){ return 992;}
+-function SealevelriseAbstolEnum(){ return 993;}
+-function SealevelriseLoveHEnum(){ return 994;}
+-function SealevelriseLoveKEnum(){ return 995;}
+-function SealevelriseRigidEnum(){ return 996;}
+-function SealevelriseElasticEnum(){ return 997;}
+-function SealevelriseEustaticEnum(){ return 998;}
+-function SealevelriseGElasticEnum(){ return 999;}
+-function SealevelriseDegaccEnum(){ return 1000;}
+-function SealevelriseTransitionsEnum(){ return 1001;}
+-function SealevelriseRequestedOutputsEnum(){ return 1002;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 1003;}
+-function MaximumNumberOfDefinitionsEnum(){ return 1004;}
++function SealevelEustaticEnum(){ return 990;}
++function SealevelriseDeltathicknessEnum(){ return 991;}
++function SealevelriseMaxiterEnum(){ return 992;}
++function SealevelriseReltolEnum(){ return 993;}
++function SealevelriseAbstolEnum(){ return 994;}
++function SealevelriseLoveHEnum(){ return 995;}
++function SealevelriseLoveKEnum(){ return 996;}
++function SealevelriseTideLoveHEnum(){ return 997;}
++function SealevelriseTideLoveKEnum(){ return 998;}
++function SealevelriseRigidEnum(){ return 999;}
++function SealevelriseElasticEnum(){ return 1000;}
++function SealevelriseRotationEnum(){ return 1001;}
++function SealevelriseGElasticEnum(){ return 1002;}
++function SealevelriseDegaccEnum(){ return 1003;}
++function SealevelriseTransitionsEnum(){ return 1004;}
++function SealevelriseRequestedOutputsEnum(){ return 1005;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1006;}
++function MaximumNumberOfDefinitionsEnum(){ return 1007;}
+Index: ../trunk-jpl/src/m/enum/SealevelriseRotationEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SealevelriseRotationEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SealevelriseRotationEnum.m	(revision 20342)
+@@ -0,0 +1,11 @@
++function macro=SealevelriseRotationEnum()
++%SEALEVELRISEROTATIONENUM - Enum of SealevelriseRotation
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SealevelriseRotationEnum()
++
++macro=StringToEnum('SealevelriseRotation');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20341)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20342)
+@@ -998,15 +998,18 @@
+ def SealevelriseSolutionEnum(): return StringToEnum("SealevelriseSolution")[0]
+ def SealevelriseAnalysisEnum(): return StringToEnum("SealevelriseAnalysis")[0]
+ def SealevelEnum(): return StringToEnum("Sealevel")[0]
++def SealevelEustaticEnum(): return StringToEnum("SealevelEustatic")[0]
+ def SealevelriseDeltathicknessEnum(): return StringToEnum("SealevelriseDeltathickness")[0]
+ def SealevelriseMaxiterEnum(): return StringToEnum("SealevelriseMaxiter")[0]
+ def SealevelriseReltolEnum(): return StringToEnum("SealevelriseReltol")[0]
+ def SealevelriseAbstolEnum(): return StringToEnum("SealevelriseAbstol")[0]
+ def SealevelriseLoveHEnum(): return StringToEnum("SealevelriseLoveH")[0]
+ def SealevelriseLoveKEnum(): return StringToEnum("SealevelriseLoveK")[0]
++def SealevelriseTideLoveHEnum(): return StringToEnum("SealevelriseTideLoveH")[0]
++def SealevelriseTideLoveKEnum(): return StringToEnum("SealevelriseTideLoveK")[0]
+ def SealevelriseRigidEnum(): return StringToEnum("SealevelriseRigid")[0]
+ def SealevelriseElasticEnum(): return StringToEnum("SealevelriseElastic")[0]
+-def SealevelriseEustaticEnum(): return StringToEnum("SealevelriseEustatic")[0]
++def SealevelriseRotationEnum(): return StringToEnum("SealevelriseRotation")[0]
+ def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
+ def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
+ def SealevelriseTransitionsEnum(): return StringToEnum("SealevelriseTransitions")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20342-20343.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20342-20343.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20342-20343.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20342)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20343)
+@@ -1531,6 +1531,7 @@
+ 				name==MaterialsRheologyBbarEnum ||
+ 				name==MaterialsRheologyNEnum ||
+ 				name==SealevelEnum || 
++				name==SealevelEustaticEnum || 
+ 				name==SealevelriseDeltathicknessEnum || 
+ 				name==GiaWEnum || 
+ 				name==GiadWdtEnum ||
Index: /issm/oecreview/Archive/19101-20495/ISSM-20343-20344.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20343-20344.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20343-20344.diff	(revision 20498)
@@ -0,0 +1,80 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20343)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20344)
+@@ -3609,11 +3609,9 @@
+ 	/*Computational flags:*/
+ 	bool computerigid = true;
+ 	bool computeelastic= true;
+-	bool computeeustatic = true;
+-
+ 	
+ 	/*early return if we are not on an ice cap:*/
+-	if(IsWaterInElement() | !IsIceInElement()){
++	if(!(this->inputs->Max(MaskIceLevelsetEnum)<0)){
+ 		*peustatic=0; //do not forget to assign this pointer, otherwise, global eustatic will be garbage!
+ 		return;
+ 	}
+@@ -3626,7 +3624,6 @@
+ 	/*recover love numbers and computational flags: */
+ 	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+-	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
+ 
+ 	/*recover elastic green function:*/
+ 	if(computeelastic){
+@@ -3638,10 +3635,11 @@
+ 	/*how many dofs are we working with here? */
+ 	this->parameters->FindParam(&gsize,MeshNumberofverticesEnum);
+ 
++	/* Where is the centroid of this element?:{{{*/
++	
+ 	/*retrieve coordinates: */
+ 	::GetVerticesCoordinates(&llr_list[0][0],this->vertices,NUMVERTICES,spherical);
+ 	
+-	/* Where is the centroid of this element?:*/
+ 	IssmDouble minlong=400;
+ 	IssmDouble maxlong=-20;
+ 	for (int i=0;i<NUMVERTICES;i++){
+@@ -3674,6 +3672,7 @@
+ 
+ 	late=late/180*PI;
+ 	longe=longe/180*PI;
++	/*}}}*/
+ 
+ 	/*Compute area of element:*/
+ 	area=GetArea3D();
+@@ -3684,7 +3683,7 @@
+ 	deltathickness_input->GetInputAverage(&I);
+ 
+ 	/*Compute eustatic compoent:*/
+-	if(computeeustatic) eustatic += rho_ice*area*I/(oceanarea*rho_water); 
++	eustatic += rho_ice*area*I/(oceanarea*rho_water); 
+ 
+ 	if(computeelastic | computerigid){
+ 		int* indices=xNew<int>(gsize);
+@@ -3757,7 +3756,6 @@
+ 	/*Computational flags:*/
+ 	bool computerigid = true;
+ 	bool computeelastic= true;
+-	bool computeeustatic = true;
+ 
+ 	/*early return if we are not on the ocean:*/
+ 	if (!IsWaterInElement())return;
+@@ -3765,7 +3763,6 @@
+ 	/*recover computational flags: */
+ 	this->parameters->FindParam(&computerigid,SealevelriseRigidEnum);
+ 	this->parameters->FindParam(&computeelastic,SealevelriseElasticEnum);
+-	this->parameters->FindParam(&computeeustatic,SealevelriseEustaticEnum);
+ 	
+ 	/*early return if rigid or elastic not requested:*/
+ 	if(!computerigid && !computeelastic) return;
+@@ -3857,7 +3854,7 @@
+ 			}
+ 		}
+ 
+-		/*Add all components to the pSgi or pSgo solution vectors:*/
++		/*Add all components to the pSgo solution vectors:*/
+ 		if(computerigid)values[i]+=3*rho_water/rho_earth*area/eartharea*I*G_rigid[i];
+ 		if(computeelastic)values[i]+=3*rho_water/rho_earth*area/eartharea*I*G_elastic[i];
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20344-20345.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20344-20345.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20344-20345.diff	(revision 20498)
@@ -0,0 +1,54 @@
+Index: ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20344)
++++ ../trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 20345)
+@@ -64,7 +64,6 @@
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseMaxiterEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseRigidEnum));
+ 	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseElasticEnum));
+-	parameters->AddObject(iomodel->CopyConstantObject(SealevelriseEustaticEnum));
+ 
+ 	iomodel->FetchData(&elastic,SealevelriseElasticEnum);
+ 	if(elastic){
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20344)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20345)
+@@ -78,8 +78,9 @@
+ 	profiler->Tag(FinishInit);
+ 
+ 	/*Save communicator in the parameters dataset: */
+-	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
++	this->parameters->AddObject(new GenericParam<ISSM_MPI_Comm>(incomm,FemModelCommEnum));
+ 
++
+ 	/*Free resources */
+ 	xDelete<char>(lockfilename);
+ 	xDelete<char>(binfilename);
+@@ -103,7 +104,7 @@
+ 	this->InitFromFiles(rootpath,inputfilename,outputfilename,toolkitsfilename,lockfilename,restartfilename, solution_type,traceon,X);
+ 	
+ 	/*Save communicator in the parameters dataset: */
+-	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
++	this->parameters->AddObject(new GenericParam<ISSM_MPI_Comm>(incomm,FemModelCommEnum));
+ 
+ }
+ /*}}}*/
+@@ -2323,7 +2324,7 @@
+ 	}
+ 	ISSM_MPI_Reduce (&oceanarea_cpu,&oceanarea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
+ 	ISSM_MPI_Bcast(&oceanarea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+-	
++
+ 	ISSM_MPI_Reduce (&eartharea_cpu,&eartharea,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
+ 	ISSM_MPI_Bcast(&eartharea,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
+ 
+@@ -2601,7 +2602,7 @@
+ 	profiler->Tag(FinishInit);
+ 	
+ 	/*Save communicator in the parameters dataset: */
+-	this->parameters->AddObject(new IntParam(FemModelCommEnum,incomm));
++	this->parameters->AddObject(new GenericParam<ISSM_MPI_Comm>(incomm,FemModelCommEnum));
+ 
+ }
+ /*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20345-20346.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20345-20346.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20345-20346.diff	(revision 20498)
@@ -0,0 +1,20 @@
+Index: ../trunk-jpl/src/c/main/issm_slr.cpp
+===================================================================
+--- ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20345)
++++ ../trunk-jpl/src/c/main/issm_slr.cpp	(revision 20346)
+@@ -94,12 +94,12 @@
+ 	FemModel *femmodel = new FemModel(4,arguments,modelcomm);
+ 	
+ 	/*Now that the models are initialized, keep communicator information in the parameters datasets of each model: */
+-	femmodel->parameters->AddObject(new IntParam(WorldCommEnum,worldcomm));
++	femmodel->parameters->AddObject(new GenericParam<ISSM_MPI_Comm>(worldcomm,WorldCommEnum));
+ 	femmodel->parameters->AddObject(new IntParam(NumModelsEnum,nummodels));
+ 	femmodel->parameters->AddObject(new IntParam(ModelIdEnum,modelid));
+ 	femmodel->parameters->AddObject(new IntParam(EarthIdEnum,earthid));
+-	if(modelid==earthid)femmodel->parameters->AddObject(new IntVecParam(IcecapToEarthCommEnum,(int*)fromicecomms,nummodels-1));
+-	else femmodel->parameters->AddObject(new IntParam(IcecapToEarthCommEnum,toearthcomm));
++	if(modelid==earthid) femmodel->parameters->AddObject(new GenericParam<ISSM_MPI_Comm*>(fromicecomms,IcecapToEarthCommEnum));
++	else femmodel->parameters->AddObject(new GenericParam<ISSM_MPI_Comm>(toearthcomm,IcecapToEarthCommEnum));
+ 
+ 	/*Solve: */
+ 	femmodel->Solve();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20346-20347.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20346-20347.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20346-20347.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20346)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20347)
+@@ -47,6 +47,9 @@
+ 	 * presence of ice (terms 1 and 4 in Eq.4 of Farrel and Clarke):*/
+ 	Sgi->Shift(-eustatic-Sgi_oceanaverage);
+ 
++	/*save eustatic value for results: */
++	femmodel->results->AddResult(new GenericExternalResult<IssmPDouble>(femmodel->results->Size()+1,SealevelEustaticEnum,-eustatic));
++
+ 	xDelete<IssmDouble>(latitude);
+ 	xDelete<IssmDouble>(longitude);
+ 	xDelete<IssmDouble>(radius);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20347-20348.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20347-20348.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20347-20348.diff	(revision 20498)
@@ -0,0 +1,32 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20347)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core.cpp	(revision 20348)
+@@ -55,7 +55,7 @@
+ 	if(isslr){
+ 		Sg_eustatic=sealevelrise_core_eustatic(femmodel); //generalized eustatic (Farrel and Clark, Eq 4, 1st, 3rd and 4rd terms on the RHS.
+ 
+-		Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //sea-level rise dependent terms (2nd and 5th terms on the RHS)
++		Sg=sealevelrise_core_noneustatic(femmodel,Sg_eustatic); //ocean loading tems  (2nd and 5th terms on the RHS of Farrel and Clark)
+ 
+ 		/*get results into elements:*/
+ 		InputUpdateFromSolutionx(femmodel,Sg);
+@@ -108,8 +108,16 @@
+ 	my_rank=IssmComm::GetRank();
+ 	
+ 	/*retrieve the inter communicators that will be used to send data from each ice cap to the earth: */
+-	if(modelid==earthid)femmodel->parameters->FindParam((int**)(&fromcomms),&nv,IcecapToEarthCommEnum);
+-	else femmodel->parameters->FindParam((int*)(&tocomm), IcecapToEarthCommEnum);
++	if(modelid==earthid){
++		GenericParam<ISSM_MPI_Comm*>* parcoms = dynamic_cast<GenericParam<ISSM_MPI_Comm*>*>(femmodel->parameters->FindParamObject(IcecapToEarthCommEnum));
++		if(!parcoms)_error_("TransferForcing error message: could not find IcecapToEarthComm communicator");
++		fromcomms=parcoms->GetParameterValue();
++	}
++	else {
++		GenericParam<ISSM_MPI_Comm>* parcom = dynamic_cast<GenericParam<ISSM_MPI_Comm>*>(femmodel->parameters->FindParamObject(IcecapToEarthCommEnum));
++		if(!parcom)_error_("TransferForcing error message: could not find IcecapToEarthComm communicator");
++		tocomm=parcom->GetParameterValue();
++	}
+ 
+ 	/*For each icecap, retrieve the forcing vector that will be sent to the earth model: */
+ 	if(modelid!=earthid){
Index: /issm/oecreview/Archive/19101-20495/ISSM-20348-20349.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20348-20349.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20348-20349.diff	(revision 20498)
@@ -0,0 +1,227 @@
+Index: ../trunk-jpl/src/m/classes/slr.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.m	(revision 20348)
++++ ../trunk-jpl/src/m/classes/slr.m	(revision 20349)
+@@ -12,9 +12,11 @@
+ 		abstol         = 0;
+ 		love_h         = 0; %provided by PREM model
+ 		love_k         = 0; %ideam
+-		rigid         = 0;
+-		elastic         = 0;
+-		eustatic         = 0;
++		tide_love_k    = 0; %ideam
++		tide_love_h    = 0; %ideam
++		rigid          = 0;
++		elastic        = 0;
++		rotation       = 0;
+ 		degacc         = 0;
+ 		requested_outputs      = {};
+ 		transitions    = {};
+@@ -40,8 +42,12 @@
+ 		%computational flags: 
+ 		self.rigid=1;
+ 		self.elastic=1;
+-		self.eustatic=1;
++		self.rotation=1;
+ 
++		%tidal love numbers: 
++		self.tide_love_h=0.6149; %degree 2
++		self.tide_love_k=0.3055; % degree 2
++
+ 		%numerical discretization accuracy
+ 		self.degacc=.01;
+ 		
+@@ -60,6 +66,9 @@
+ 			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1 1],'>=',1);
+@@ -93,9 +102,11 @@
+ 			fielddisplay(self,'maxiter','maximum number of nonlinear iterations');
+ 			fielddisplay(self,'love_h','love load number for radial displacement');
+ 			fielddisplay(self,'love_k','love load number for gravitational potential perturbation');
++			fielddisplay(self,'tide_love_k','tidal love number (deg 2)');
++			fielddisplay(self,'tide_love_h','tidal love number (deg 2)');
++			fielddisplay(self,'rotation','earth rotational potential perturbation');
+ 			fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
+ 			fielddisplay(self,'elastic','elastic earth graviational potential perturbation');
+-			fielddisplay(self,'eustatic','eustatic sea level rise');
+ 			fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
+ 			fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps');
+ 			fielddisplay(self,'requested_outputs','additional outputs requested');
+@@ -110,9 +121,11 @@
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','tide_love_k','format','Double');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','tide_love_h','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean');
+-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',self,'class','sealevelrise','fieldname','rotation','format','Boolean');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double');
+ 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray');
+ 			
+@@ -135,8 +148,10 @@
+ 			writejsdouble(fid,[modelname '.slr.abstol'],self.abstol);
+ 			writejs1Darray(fid,[modelname '.slr.love_h'],self.love_h);
+ 			writejs1Darray(fid,[modelname '.slr.love_k'],self.love_k);
++			writejsdouble(fid,[modelname '.slr.tide_love_k'],self.tide_love_k);
++			writejsdouble(fid,[modelname '.slr.tide_love_h'],self.tide_love_h);
+ 			writejsdouble(fid,[modelname '.slr.rigid'],self.rigid);
+-			writejsdouble(fid,[modelname '.slr.eustatic'],self.eustatic);
++			writejsdouble(fid,[modelname '.slr.rotation'],self.rotation);
+ 			writejsdouble(fid,[modelname '.slr.elastic'],self.elastic);
+ 			writejsdouble(fid,[modelname '.slr.degacc'],self.degacc);
+ 			writejscellstring(fid,[modelname '.slr.requested_outputs'],self.requested_outputs);
+Index: ../trunk-jpl/src/m/classes/slr.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.py	(revision 20348)
++++ ../trunk-jpl/src/m/classes/slr.py	(revision 20349)
+@@ -22,9 +22,11 @@
+ 		self.abstol         		= 0
+ 		self.love_h         	= 0 #provided by PREM model()
+ 		self.love_k         	= 0 #ideam
++		self.tide_love_h        = 0 
++		self.tide_love_k        = 0 
+ 		self.rigid         		= 0
+ 		self.elastic         	= 0
+-		self.eustatic         	= 0
++		self.rotation         	= 0
+ 		self.degacc         	= 0
+ 		self.requested_outputs 	= []
+ 		self.transitions    	= []
+@@ -40,9 +42,11 @@
+ 			string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'love_h','love load number for radial displacement'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'love_k','love load number for gravitational potential perturbation'))
++			string="%s\n%s"%(string,fielddisplay(self,'tide_love_k','tidal love load number (degree 2)'))
++			string="%s\n%s"%(string,fielddisplay(self,'tide_love_h','tidal love load number (degree 2)'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'rigid','rigid earth graviational potential perturbation'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'elastic','elastic earth graviational potential perturbation'))
+-			string="%s\n%s"%(string,fielddisplay(self,'eustatic','eustatic sea level rise'))
++			string="%s\n%s"%(string,fielddisplay(self,'rotation','earth rotational potential perturbation'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'transitions','indices into parts of the mesh that will be icecaps'))
+ 			string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','additional outputs requested'))
+@@ -61,8 +65,12 @@
+ 		#computational flags: 
+ 		self.rigid=1
+ 		self.elastic=1
+-		self.eustatic=1
++		self.rotation=1
+ 
++		#tidal love numbers: 
++		self.tide_love_h=0.6149; #degree 2
++		self.tide_love_k=0.3055; #degree 2
++
+ 		#numerical discretization accuracy
+ 		self.degacc=.01
+ 		
+@@ -86,6 +94,8 @@
+ 		md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1])
+ 		md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1)
++		md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1)
+ 		md = checkfield(md,'fieldname','slr.reltol','size',[1,1])
+ 		md = checkfield(md,'fieldname','slr.abstol','size',[1,1])
+ 		md = checkfield(md,'fieldname','slr.maxiter','size',[1,1],'>=',1)
+@@ -109,9 +119,11 @@
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','maxiter','format','Integer')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1)
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','tide_love_h','format','Double');
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','tide_love_k','format','Double');
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','rigid','format','Boolean')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','elastic','format','Boolean')
+-		WriteData(fid,'object',self,'class','sealevelrise','fieldname','eustatic','format','Boolean')
++		WriteData(fid,'object',self,'class','sealevelrise','fieldname','rotation','format','Boolean')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','degacc','format','Double')
+ 		WriteData(fid,'object',self,'class','sealevelrise','fieldname','transitions','format','MatArray')
+ 	
+Index: ../trunk-jpl/src/m/classes/slr.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/slr.js	(revision 20348)
++++ ../trunk-jpl/src/m/classes/slr.js	(revision 20349)
+@@ -17,7 +17,11 @@
+ 		//computational flags: 
+ 		this.rigid=1;
+ 		this.elastic=1;
+-		this.eustatic=1;
++		this.rotation=1;
++		
++		//tidal love numbers: 
++		self.tide_love_h=0.6149; //degree 2
++		self.tide_love_k=0.3055; //degree 2
+ 
+ 		//numerical discretization accuracy
+ 		this.degacc=.01;
+@@ -38,6 +42,8 @@
+ 			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
+ 			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1);
++			md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','slr.reltol','size',[1, 1]);
+ 			md = checkfield(md,'fieldname','slr.abstol','size',[1, 1]);
+ 			md = checkfield(md,'fieldname','slr.maxiter','size',[1, 1],'>=',1);
+@@ -67,9 +73,11 @@
+ 		fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
+ 		fielddisplay(this,'love_h','love load number for radial displacement');
+ 		fielddisplay(this,'love_k','love load number for gravitational potential perturbation');
++		fielddisplay(this,'tide_love_h','tidal love number (degree 2)');
++		fielddisplay(this,'tide_love_k','tidal love number (degree 2)');
+ 		fielddisplay(this,'rigid','rigid earth graviational potential perturbation');
+ 		fielddisplay(this,'elastic','elastic earth graviational potential perturbation');
+-		fielddisplay(this,'eustatic','eustatic sea level rise');
++		fielddisplay(this,'rotation','rotational earth potential perturbation');
+ 		fielddisplay(this,'degacc',"accuracy (default .01 deg) for numerical discretization of the Green's functions");
+ 		fielddisplay(this,'transitions','indices into parts of the mesh that will be icecaps');
+ 		fielddisplay(this,'requested_outputs','additional outputs requested');
+@@ -83,9 +91,11 @@
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','maxiter','format','Integer');
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','love_h','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','love_k','format','DoubleMat','mattype',1);
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','tide_love_h','format','Double');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','tide_love_k','format','Double');
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','rigid','format','Boolean');
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','elastic','format','Boolean');
+-			WriteData(fid,'object',this,'class','sealevelrise','fieldname','eustatic','format','Boolean');
++			WriteData(fid,'object',this,'class','sealevelrise','fieldname','rotation','format','Boolean');
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','degacc','format','Double');
+ 			WriteData(fid,'object',this,'class','sealevelrise','fieldname','transitions','format','MatArray');
+ 			
+@@ -108,9 +118,11 @@
+ 			this.abstol=NullFix(this.abstol,NaN);
+ 			this.love_h=NullFix(this.love_h,NaN);
+ 			this.love_k=NullFix(this.love_k,NaN);
++			this.tide_love_h=NullFix(this.tide_love_h,NaN);
++			this.tide_love_k=NullFix(this.tide_love_k,NaN);
+ 			this.rigid=NullFix(this.rigid,NaN);
+ 			this.elastic=NullFix(this.elastic,NaN);
+-			this.eustatic=NullFix(this.eustatic,NaN);
++			this.rotation=NullFix(this.rotation,NaN);
+ 			this.degacc=NullFix(this.degacc,NaN);
+ 		}//}}}
+ 	//properties
+@@ -121,10 +133,12 @@
+ 	this.reltol         = 0;
+ 	this.abstol         = 0;
+ 	this.love_h         = 0; //provided by PREM model
+-	this.love_k         = 0; //ideam
++	this.love_k         = 0; //idam
++	this.tide_love_h    = 0; 
++	this.tide_love_k    = 0; 
+ 	this.rigid          = 0;
+ 	this.elastic        = 0;
+-	this.eustatic       = 0;
++	this.rotation       = 0;
+ 	this.degacc         = 0;
+ 	this.requested_outputs = [];
+ 	this.transitions    = [];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20349-20350.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20349-20350.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20349-20350.diff	(revision 20498)
@@ -0,0 +1,84 @@
+Index: ../trunk-jpl/test/NightlyRun/test243.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test243.m	(revision 20349)
++++ ../trunk-jpl/test/NightlyRun/test243.m	(revision 20350)
+@@ -1,31 +1,25 @@
+ %Test Name: SquareShelfSMBGemb
+-md=triangle(model(),'../Exp/Square.exp',500000.);
++md=triangle(model(),'../Exp/Square.exp',200000.);
+ md=setmask(md,'all','');
+ md=parameterize(md,'../Par/SquareShelf.par');
+ md=setflowequation(md,'SSA','all');
+-md.cluster=generic('name',oshostname(),'np',4); % 3 for the cluster
++md.materials.rho_ice=910;
++md.cluster=generic('name',oshostname(),'np',3);
+ 
+-%md.verbose=verbose('all');
+-
+ % Use of Gemb method for SMB computation
+ md.smb = SMBgemb(md.mesh,md.geometry);
+ 
+ %load hourly surface forcing date from 1979 to 2009:
+ inputs=load('../Data/gemb_input.mat');
+ 
+-%setup the time line: 
+-deltatindays=(inputs.dateN(2) - inputs.dateN(1));
+-dateN=(1979:deltatindays/365.25:2011)';
+-dateN(length(inputs.dateN)+1:end)=[];
+-
+ %setup the inputs: 
+-md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);dateN'];
+-md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);dateN'];
+-md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);dateN'];
+-md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);dateN'];
+-md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);dateN'];
+-md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);dateN'];
+-md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);dateN'];
++md.smb.Ta=[repmat(inputs.Ta0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.V=[repmat(inputs.V0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.dswrf=[repmat(inputs.dsw0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.dlwrf=[repmat(inputs.dlw0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.P=[repmat(inputs.P0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.eAir=[repmat(inputs.eAir0',md.mesh.numberofelements,1);inputs.dateN'];
++md.smb.pAir=[repmat(inputs.pAir0',md.mesh.numberofelements,1);inputs.dateN'];
+ md.smb.Vz=repmat(inputs.LP.Vz,md.mesh.numberofelements,1);
+ md.smb.Tz=repmat(inputs.LP.Tz,md.mesh.numberofelements,1);
+ md.smb.Tmean=repmat(inputs.LP.Tmean,md.mesh.numberofelements,1);
+@@ -34,9 +28,6 @@
+ %smb settings
+ md.smb.requested_outputs={'SmbDz','SmbT','SmbD','SmbRe','SmbGdn','SmbGsp','SmbEC','SmbA','SmbMassBalance'};
+ 
+-md.materials.rho_ice=910;
+-md.timestepping.interp_forcings=0;
+-
+ %only run smb core: 
+ md.transient.isstressbalance=0;
+ md.transient.ismasstransport=0;
+@@ -45,14 +36,15 @@
+ %time stepping: 
+ md.timestepping.start_time=1979;
+ md.timestepping.final_time=1980;
+-md.timestepping.time_step=.1;
++md.timestepping.time_step=.5;
++md.timestepping.interp_forcings=0;
+ 
+ %Run transient
+-%md=solve(md,TransientSolutionEnum());
++md=solve(md,TransientSolutionEnum());
+ 
+ %Fields and tolerances to track changes
+-field_names          ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance'};
+-field_tolerances     ={'1e-13','1e-13','1e-13','1e-13','1e-13' ,'1e-13' ,'1e-13','1e-13','1e-13'};
++field_names      ={'SmbDz','SmbT' ,'SmbD' ,'SmbRe','SmbGdn','SmbGsp','SmbA' ,'SmbEC','SmbMassBalance'};
++field_tolerances ={'1e-13','1e-13','1e-13','1e-13','1e-13' ,'1e-13' ,'1e-13','1e-13','1e-13'};
+ 
+ field_values={...
+ 	(md.results.TransientSolution(end).SmbDz(1,:)),...
+Index: ../trunk-jpl/test/Archives/Archive243.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Data/gemb_input.mat
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20350-20351.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20350-20351.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20350-20351.diff	(revision 20498)
@@ -0,0 +1,132 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 20350)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 20351)
+@@ -1,100 +1,20 @@
+-<!DOCTYPE html><!--{{{-->
++<!DOCTYPE html>
+ <html>
+ <head><title>ISSM Web APP &mdash; Beta</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
++<script type="text/javascript" src="../../build-js/bin/issm-bin.js"> </script>
++<script type="text/javascript" src="../../build-js/bin/issm-prebin.js"> </script>
++<script type="text/javascript" src="../../build-js/bin/IssmModule.js"></script>
+ <script type="text/javascript" src="../Exp/Square.js"></script>
+ <script type="text/javascript" src="../Par/SquareShelfConstrained.js"></script>
+ <script type="text/javascript" src="../Data/SquareShelfConstrained.data.js"></script>
+-<script type="text/javascript" src="../../src/m/miscellaneous/fielddisplay.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/model.js"></script>
+-<script type="text/javascript" src="../../src/m/mesh/triangle.js"></script>
+-<script type="text/javascript" src="../../src/m/array/arrayoperations.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/mesh2d.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/geometry.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/matice.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/constants.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/mask.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/initialization.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/SMBforcing.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/timestepping.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/basalforcings.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/groundingline.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/damage.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/flowequation.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/debug.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/verbose.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/settings.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/toolkits.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/stressbalance.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/balancethickness.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/hydrologyshreve.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/masstransport.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/thermal.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/calving.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/gia.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/autodiff.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/flaim.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/inversion.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/qmu.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/radaroverlay.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/outputdefinition.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/miscellaneous.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/priv.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/steadystate.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/rifts.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/friction.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/plotoptions.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/pairoptions.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/trans.js"></script>
+-<script type="text/javascript" src="../../src/m/boundaryconditions/SetIceShelfBC.js"></script>
+-<script type="text/javascript" src="../../src/m/parameterization/setflowequation.js"></script>
+-<script type="text/javascript" src="../../src/m/classes/clusters/local.js"></script>
+-<script type="text/javascript" src="../../src/m/parameterization/setmask.js"></script>
+-<script type="text/javascript" src="../../src/m/consistency/ismodelselfconsistent.js"></script>
+-<script type="text/javascript" src="../../src/m/consistency/checkfield.js"></script>
+-<script type="text/javascript" src="../../src/m/miscellaneous/rgbcolor.js"></script>
+-<script type="text/javascript" src="../../src/m/materials/paterson.js"></script>
+-<script type="text/javascript" src="../../src/m/miscellaneous/colorbars.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/processmesh.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/processdata.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/webgl.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/plotmodel.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/plot_unit.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/plot_mesh.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/checkplotoptions.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/applyoptions.js"></script>
+-<script type="text/javascript" src="../../src/m/plot/plot_manager.js"></script>
+-<script type="text/javascript" src="../../src/m/geometry/FlagElements.js"></script>
+-<script type="text/javascript" src="../../src/m/enum/EnumDefinitions.js"></script>
+-<script type="text/javascript" src="../../src/m/solvers/issmgslsolver.js"></script>
+-<script type="text/javascript" src="../../src/m/io/fileptr.js"></script>
+-<script type="text/javascript" src="../../src/m/solve/solve.js"></script>
+-<script type="text/javascript" src="../../src/m/inversions/marshallcostfunctions.js"></script>
+-<script type="text/javascript" src="../../src/m/solve/marshall.js"></script>
+-<script type="text/javascript" src="../../src/m/solve/loadresultsfrombuffer.js"></script>
+-<script type="text/javascript" src="../../src/m/solve/parseresultsfrombuffer.js"></script>
+-<script type="text/javascript" src="../../src/m/solve/WriteData.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/TriMesh/TriMesh.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/EnumToString/EnumToString.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/StringToEnum/StringToEnum.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/IssmConfig/IssmConfig.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/NodeConnectivity/NodeConnectivity.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/ElementConnectivity/ElementConnectivity.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/ContourToMesh/ContourToMesh.js"></script>
+-<script type="text/javascript" src="../../src/wrappers/Issm/issm.js"></script>
+-<script type="text/javascript" src="../../build-js/src/wrappers/javascript/IssmModule.js"></script>
+-<script type="text/javascript" src="../../externalpackages/javascript/src/sprintf.js"></script>
+-<script type="text/javascript" src="../../externalpackages/javascript/src/jquery.min.js"></script>
+-<script type="text/javascript" src="../../externalpackages/javascript/src/gl-matrix-min.js"></script>
+-<script type="text/javascript" src="../../externalpackages/javascript/src/hammer.min.js"></script>
+ <!-- Includes }}}-->
+ </head>
+ <body> 
+-	
+-<script type="text/javascript" async><!--}}}-->
+ 
++<script type="text/javascript" async>
++
+ 	console.log('creating model'); 
+ 	var md = new model();
+ 
+@@ -105,14 +25,13 @@
+ 	setmask(md,'all','');
+ 	parameterize(md);
+ 	setflowequation(md,'SSA','all');
+-	md.verbose.solution=1;  md.verbose.convergence=0;
++	md.verbose.solution=2;  md.verbose.convergence=0;
+ 
+ 	console.log('solve');
+-	md.results=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
++	md=solve(md,StressbalanceSolutionEnum(),'checkconsistency','no');
++	
++	console.log(md.results['StressbalanceSolution'][0]['Vel']);
+ 
+-	console.log('plotting');
+-	plotmodel(md,'data',md.results[0]['Vel'],'colorbar#1','on','colorbarheight',.5);
+-
+-</script> <!--{{{-->
++</script>
+ </body> 
+-</html><!--}}}-->
++</html>
Index: /issm/oecreview/Archive/19101-20495/ISSM-20351-20352.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20351-20352.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20351-20352.diff	(revision 20498)
@@ -0,0 +1,249 @@
+Index: ../trunk-jpl/src/wrappers/javascript/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 20351)
++++ ../trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 20352)
+@@ -6,16 +6,20 @@
+ #define prefix (from http://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Defining-Directories.html)
+ AM_CPPFLAGS+=  -DISSM_PREFIX='"$(prefix)"'
+ 
+-bin_SCRIPTS = 
+-bin_SCRIPTS += ../TriMesh/TriMesh.js  \
+-			   ../NodeConnectivity/NodeConnectivity.js\
+-			   ../ContourToMesh/ContourToMesh.js\
+-			   ../ElementConnectivity/ElementConnectivity.js\
+-			   ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
+-			   ../IssmConfig/IssmConfig.js\
+-			   ../EnumToString/EnumToString.js\
+-			   ../StringToEnum/StringToEnum.js\
+-			   ../Issm/issm.js
++js_scripts = ${ISSM_DIR}/src/wrappers/TriMesh/TriMesh.js  \
++			 ${ISSM_DIR}/src/wrappers/NodeConnectivity/NodeConnectivity.js\
++			 ${ISSM_DIR}/src/wrappers/ContourToMesh/ContourToMesh.js\
++			 ${ISSM_DIR}/src/wrappers/ElementConnectivity/ElementConnectivity.js\
++			 ${ISSM_DIR}/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js\
++			 ${ISSM_DIR}/src/wrappers/IssmConfig/IssmConfig.js\
++			 ${ISSM_DIR}/src/wrappers/EnumToString/EnumToString.js\
++			 ${ISSM_DIR}/src/wrappers/StringToEnum/StringToEnum.js\
++			 ${ISSM_DIR}/src/wrappers/Issm/issm.js
++
++bin_SCRIPTS =  issm-prebin.js
++
++issm-prebin.js: ${js_scripts}
++	cat ${js_scripts}  > issm-prebin.js
+ 	
+ #javascript io{{{
+ if !WINDOWS
+Index: ../trunk-jpl/src/m/print/sprintf.js
+===================================================================
+--- ../trunk-jpl/src/m/print/sprintf.js	(revision 0)
++++ ../trunk-jpl/src/m/print/sprintf.js	(revision 20352)
+@@ -0,0 +1,190 @@
++function sprintf() {
++  //  discuss at: http://phpjs.org/functions/sprintf/
++  // original by: Ash Searle (http://hexmen.com/blog/)
++  // improved by: Michael White (http://getsprink.com)
++  // improved by: Jack
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
++  // improved by: Dj
++  // improved by: Allidylls
++  //    input by: Paulo Freitas
++  //    input by: Brett Zamir (http://brett-zamir.me)
++  //   example 1: sprintf("%01.2f", 123.1);
++  //   returns 1: 123.10
++  //   example 2: sprintf("[%10s]", 'monkey');
++  //   returns 2: '[    monkey]'
++  //   example 3: sprintf("[%'#10s]", 'monkey');
++  //   returns 3: '[####monkey]'
++  //   example 4: sprintf("%d", 123456789012345);
++  //   returns 4: '123456789012345'
++  //   example 5: sprintf('%-03s', 'E');
++  //   returns 5: 'E00'
++
++  var regex = /%%|%(\d+\$)?([\-+\'#0 ]*)(\*\d+\$|\*|\d+)?(?:\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g;
++  var a = arguments;
++  var i = 0;
++  var format = a[i++];
++
++  // pad()
++  var pad = function(str, len, chr, leftJustify) {
++    if (!chr) {
++      chr = ' ';
++    }
++    var padding = (str.length >= len) ? '' : new Array(1 + len - str.length >>> 0)
++      .join(chr);
++    return leftJustify ? str + padding : padding + str;
++  };
++
++  // justify()
++  var justify = function(value, prefix, leftJustify, minWidth, zeroPad, customPadChar) {
++    var diff = minWidth - value.length;
++    if (diff > 0) {
++      if (leftJustify || !zeroPad) {
++        value = pad(value, minWidth, customPadChar, leftJustify);
++      } else {
++        value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);
++      }
++    }
++    return value;
++  };
++
++  // formatBaseX()
++  var formatBaseX = function(value, base, prefix, leftJustify, minWidth, precision, zeroPad) {
++    // Note: casts negative numbers to positive ones
++    var number = value >>> 0;
++    prefix = (prefix && number && {
++      '2'  : '0b',
++      '8'  : '0',
++      '16' : '0x'
++    }[base]) || '';
++    value = prefix + pad(number.toString(base), precision || 0, '0', false);
++    return justify(value, prefix, leftJustify, minWidth, zeroPad);
++  };
++
++  // formatString()
++  var formatString = function(value, leftJustify, minWidth, precision, zeroPad, customPadChar) {
++    if (precision !== null && precision !== undefined) {
++      value = value.slice(0, precision);
++    }
++    return justify(value, '', leftJustify, minWidth, zeroPad, customPadChar);
++  };
++
++  // doFormat()
++  var doFormat = function(substring, valueIndex, flags, minWidth, precision, type) {
++    var number, prefix, method, textTransform, value;
++
++    if (substring === '%%') {
++      return '%';
++    }
++
++    // parse flags
++    var leftJustify = false;
++    var positivePrefix = '';
++    var zeroPad = false;
++    var prefixBaseX = false;
++    var customPadChar = ' ';
++    var flagsl = flags.length;
++    var j;
++    for (j = 0; flags && j < flagsl; j++) {
++      switch (flags.charAt(j)) {
++      case ' ':
++        positivePrefix = ' ';
++        break;
++      case '+':
++        positivePrefix = '+';
++        break;
++      case '-':
++        leftJustify = true;
++        break;
++      case "'":
++        customPadChar = flags.charAt(j + 1);
++        break;
++      case '0':
++        zeroPad = true;
++        customPadChar = '0';
++        break;
++      case '#':
++        prefixBaseX = true;
++        break;
++      }
++    }
++
++    // parameters may be null, undefined, empty-string or real valued
++    // we want to ignore null, undefined and empty-string values
++    if (!minWidth) {
++      minWidth = 0;
++    } else if (minWidth === '*') {
++      minWidth = +a[i++];
++    } else if (minWidth.charAt(0) === '*') {
++      minWidth = +a[minWidth.slice(1, -1)];
++    } else {
++      minWidth = +minWidth;
++    }
++
++    // Note: undocumented perl feature:
++    if (minWidth < 0) {
++      minWidth = -minWidth;
++      leftJustify = true;
++    }
++
++    if (!isFinite(minWidth)) {
++      throw new Error('sprintf: (minimum-)width must be finite');
++    }
++
++    if (!precision) {
++      precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type === 'd') ? 0 : undefined;
++    } else if (precision === '*') {
++      precision = +a[i++];
++    } else if (precision.charAt(0) === '*') {
++      precision = +a[precision.slice(1, -1)];
++    } else {
++      precision = +precision;
++    }
++
++    // grab value using valueIndex if required?
++    value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];
++
++    switch (type) {
++    case 's':
++      return formatString(String(value), leftJustify, minWidth, precision, zeroPad, customPadChar);
++    case 'c':
++      return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad);
++    case 'b':
++      return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'o':
++      return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'x':
++      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'X':
++      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
++        .toUpperCase();
++    case 'u':
++      return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
++    case 'i':
++    case 'd':
++      number = +value || 0;
++      // Plain Math.round doesn't just truncate
++      number = Math.round(number - number % 1);
++      prefix = number < 0 ? '-' : positivePrefix;
++      value = prefix + pad(String(Math.abs(number)), precision, '0', false);
++      return justify(value, prefix, leftJustify, minWidth, zeroPad);
++    case 'e':
++    case 'E':
++    case 'f': // Should handle locales (as per setlocale)
++    case 'F':
++    case 'g':
++    case 'G':
++      number = +value;
++      prefix = number < 0 ? '-' : positivePrefix;
++      method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];
++      textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];
++      value = prefix + Math.abs(number)[method](precision);
++      return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]();
++    default:
++      return substring;
++    }
++  };
++
++  return format.replace(regex, doFormat);
++}
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20351)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20352)
+@@ -152,13 +152,13 @@
+ 				${ISSM_DIR}/src/m/plot/processmesh.js \
+ 				${ISSM_DIR}/src/m/plot/gauge.js \
+ 				${ISSM_DIR}/src/m/plot/webgl.js \
++				${ISSM_DIR}/src/m/print/sprintf.js \
+ 				${ISSM_DIR}/src/m/solve/loadresultsfrombuffer.js \
+ 				${ISSM_DIR}/src/m/solve/marshall.js \
+ 				${ISSM_DIR}/src/m/solve/parseresultsfrombuffer.js \
+ 				${ISSM_DIR}/src/m/solve/solve.js \
+ 				${ISSM_DIR}/src/m/solve/WriteData.js \
+ 				${ISSM_DIR}/src/m/solvers/issmgslsolver.js 
+-
+ bin_SCRIPTS +=  issm-bin.js
+ 
+ issm-bin.js: ${js_scripts}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20352-20353.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20352-20353.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20352-20353.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20352)
++++ ../trunk-jpl/src/m/classes/clusters/generic.js	(revision 20353)
+@@ -77,8 +77,10 @@
+ 		var solutionlength = new Uint32Array(1);
+ 		solutionlength[0] = solutionbuffer.byteLength;
+ 		
+-		var binbuffer = new Uint16Array(fid.rawbuffer());
++		var binbuffer = new Uint8Array(fid.rawbuffer());
++		//var binbuffer = new Uint16Array(fid.rawbuffer()); seems that 16 array bytes length could be incompatible.
+ 
++
+ 		var binlength = new Uint32Array(1);
+ 		binlength[0] = binbuffer.byteLength;
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20353-20354.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20353-20354.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20353-20354.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20353)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20354)
+@@ -174,7 +174,7 @@
+ 						caxis = options.getfieldvalue('caxis');
+ 					}
+ 					else {
+-						caxis = [ArrayMin(data[i].slice(0,-1)),ArrayMax(data[i].slice(0,-1))];
++						caxis = [ArrayMin(data[i]),ArrayMax(data[i].slice(0,-1))];
+ 					}
+ 					datamin = caxis[0];
+ 					datamax = caxis[1];
+@@ -184,7 +184,8 @@
+ 					texcoords[i] = [];
+ 					texcoords[i].itemSize = 2;
+ 					for(var j = 0; j < x.length; j++){
+-						texcoords.push.apply(texcoords, [0.5, (data[i][j] - datamin) / datadelta]);
++						texcoords[i][texcoords[i].length] = 0.5;
++						texcoords[i][texcoords[i].length] = (data[i][j] - datamin) / datadelta;
+ 					}
+ 				}
+ 				
Index: /issm/oecreview/Archive/19101-20495/ISSM-20354-20355.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20354-20355.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20354-20355.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20354)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20355)
+@@ -33,8 +33,9 @@
+ 	
+ 	// Add context state variables
+ 	//TODO:Group variables in objects for organization and naming
+-	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0,100.0]);
++	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0.001,100.0]);
+ 	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]);
++	console.log(canvas.zoomFactor);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+ 	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.0]);
+@@ -362,8 +363,8 @@
+ } //}}}
+ function onZoom(ev,canvas,displaylog) { //{{{
+ 	ev.preventDefault();
+-	var delta = 1/10 * clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1);
+-	canvas.zoomFactor = clamp(canvas.zoomFactor + delta / canvas.zoomFactor, canvas.zoomBounds[0], canvas.zoomBounds[1]);
++	var delta = clamp(clamp(ev.scale || ev.wheelDelta || -ev.detail, -1, 1) / (1000  * canvas.zoomFactor), -0.1, 0.1);
++	canvas.zoomFactor = clamp(canvas.zoomFactor + delta, canvas.zoomBounds[0], canvas.zoomBounds[1]);
+ 	
+ 	if (displaylog) console.log(canvas.zoomFactor);
+ } //}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20355-20356.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20355-20356.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20355-20356.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 20355)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 20356)
+@@ -8,6 +8,8 @@
+ 	var args = Array.prototype.slice.call(arguments);
+ 	var options = new pairoptions(args.slice(1,args.length));
+ 	var enumm;
++	var dataini;
++	var data;
+ 
+ 	//Get data properties
+ 	if (options.exist('object')){
+@@ -21,13 +23,19 @@
+ 			classname = options.getfieldvalue('class',obj.classname());
+ 			enumm = BuildEnum(classname  + '_' + fieldname);
+ 		}
+-		data  = obj[fieldname];
++		dataini  = obj[fieldname];
+ 	}
+ 	else{
+ 		//No processing required
+-		data = options.getfieldvalue('data');
++		dataini = options.getfieldvalue('data');
+ 		enumm = options.getfieldvalue('enum');
+ 	}
++	if (IsArray(dataini)){
++	   data=dataini.slice(0);
++	}
++	else{
++		data=dataini;
++	}
+ 
+ 	format  = options.getfieldvalue('format');
+ 	mattype = options.getfieldvalue('mattype',0);    //only required for matrices
Index: /issm/oecreview/Archive/19101-20495/ISSM-20356-20357.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20356-20357.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20356-20357.diff	(revision 20498)
@@ -0,0 +1,30 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20356)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20357)
+@@ -72,11 +72,10 @@
+ 					ccanvas = $('#'+ccanvasid);
+ 					if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
+ 						//store actual colobar size
+-						cwidth = ccanvas.width();
+-						cheight = ccanvas.height();
++						cwidth = ccanvashtml.clientWidth;
++						cheight = ccanvashtml.clientHeight;
++						ccanvas.attr({width:cwidth+cheightoffset*4,height:cheight+cheightoffset*2}).css({width:cwidth+cheightoffset*4,height:cheight+cheightoffset*2});
+ 						//get html object instead of jqurey object to modify height/width to accomodate labels
+-						ccanvashtml.width = ccanvas.width()+cheightoffset*6;
+-						ccanvashtml.height = cheight+cheightoffset*2;
+ 						ccanvashtml.cwidth = cwidth;
+ 						ccanvashtml.cheight = cheight;
+ 						ccanvashtml.init = true;
+@@ -145,8 +144,8 @@
+ 					ccanvas = $('#'+ccanvasid);
+ 					if (options.exist('colorbarcanvasid')&&!ccanvashtml.hasOwnProperty('init')){
+ 						//store actual colobar size
+-						cwidth = ccanvas.width();
+-						cheight = ccanvas.height();
++						cwidth = ccanvashtml.clientWidth;
++						cheight = ccanvashtml.clientHeight;
+ 						//get html object instead of jqurey object to modify height/width to accomodate labels
+ 						ccanvashtml.width = cwidth+cheightoffset*6;
+ 						ccanvashtml.height = cheight+cheightoffset*5/2;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20357-20358.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20357-20358.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20357-20358.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20357)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20358)
+@@ -21,7 +21,6 @@
+ 					})
+ 				});
+ 				data = data[node['movieFrame']].slice(0,-1);
+-				console.log(data);
+ 			} //}}}
+ 			//Variable options initialization {{{
+ 			var caxis = options.getfieldvalue('caxis',[ArrayMin(data),ArrayMax(data)]);
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20357)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20358)
+@@ -35,7 +35,6 @@
+ 	//TODO:Group variables in objects for organization and naming
+ 	canvas.zoomBounds = options.getfieldvalue('zoombounds',[0.001,100.0]);
+ 	canvas.zoomFactor = clamp(options.getfieldvalue('zoomfactor',1.0), canvas.zoomBounds[0], canvas.zoomBounds[1]);
+-	console.log(canvas.zoomFactor);
+ 	canvas.zoomLast = canvas.zoomFactor;
+ 	canvas.cameraMatrix = mat4.create();
+ 	canvas.translation = options.getfieldvalue('centeroffset',[0,0,0.0]);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20358-20359.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20358-20359.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20358-20359.diff	(revision 20498)
@@ -0,0 +1,96 @@
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 20358)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 20359)
+@@ -1,47 +1,52 @@
+-function slider(initialvalue,functionvalue,slidername){
++function slider(){
+ 	
+ 	//Convert arguments to options
+ 	var args = Array.prototype.slice.call(arguments);
+-	var  options = new pairoptions(args.slice(3,args.length));
++	var  options = new pairoptions(args.slice());
+ 
+ 	//Recover option values:
+-	min=options.getfieldvalue('min',.6*initialvalue);
+-	max=options.getfieldvalue('max',1.4*initialvalue);
+-	sliderheight=options.getfieldvalue('sliderheight',32);
+-	message=options.getfieldvalue('message','');
+-	startmessage=options.getfieldvalue('startmessage',message);
+-	middlemessage=options.getfieldvalue('middlemessage',message);
+-	endmessage=options.getfieldvalue('endmessage',message);
+-	color=options.getfieldvalue('color','#bbbbbb');
+-	precision=options.getfieldvalue('precision',3);
+-	step=options.getfieldvalue('step',1);
+-	slidersdiv=options.getfieldvalue('slidersdiv','slidersdiv');
++	var value = options.getfieldvalue('value',0);
++	var callback = options.getfieldvalue('callback',function(){});
++	var name = options.getfieldvalue('name','');
++	var min = options.getfieldvalue('min',0.6*value);
++	var max = options.getfieldvalue('max',1.4*value);
++	var width = options.getfieldvalue('width','auto');
++	var height = options.getfieldvalue('height',32);
++	var message = options.getfieldvalue('message','');
++	var startmessage = options.getfieldvalue('startmessage',message);
++	var middlemessage = options.getfieldvalue('middlemessage',message);
++	var endmessage = options.getfieldvalue('endmessage',message);
++	var color = options.getfieldvalue('color','#bbbbbb');
++	var precision = options.getfieldvalue('precision',3);
++	var step = options.getfieldvalue('step',1);
++	var slidersdiv = options.getfieldvalue('slidersdiv','slidersdiv');
+ 
+-	$('<div id="slider'+slidername+'"></div>').appendTo('#'+slidersdiv);
+-	$('<div id="info'+slidername+'">'+startmessage[0]+initialvalue.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
+-	var info=$('#info'+slidername);
+-	$('#slider'+slidername).slider({
++	$('#'+slidersdiv).css({width:width});
++	$('<div class="slider'+name+'"></div>').appendTo('#'+slidersdiv);
++	$('<div class="info'+name+'">'+startmessage[0]+value.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
++	var info=$('.info'+name);
++	$('.slider'+name).slider({
+ 		range:'min',
+-		value:initialvalue,
++		value:value,
+ 		min:min,
+ 		max:max,
+ 		step:step,
+ 		slide:function(event,ui){
+-			moveSlide(event,ui,info,middlemessage);
++			moveSlide(event,ui,info,middlemessage,precision);
+ 		},
+ 		stop:function(event,ui){
+-			stopSlide(event,ui,info,functionvalue,middlemessage,endmessage);
++			stopSlide(event,ui,info,callback,middlemessage,endmessage,precision);
+ 		},
+ 	});
+ 	$('.ui-slider').css({
+-		width:'90%',
+-		height:sliderheight,
++		width:'auto',
++		height:height,
+ 		background:color,
+-		margin:'8px 12px'
++		margin:'8px'
+ 	});
+ 	$('.ui-slider-handle').css({
+ 		background:color,
+-		height:sliderheight*1.3
++		height:parseInt(height)+8
+ 	});
+ 	$('.ui-slider-range').css({
+ 		background:color
+@@ -49,12 +54,12 @@
+ 
+ }
+ 
+-function moveSlide(event,ui,info,middlemessage){
++function moveSlide(event,ui,info,middlemessage,precision){
+ 	var val=ui.value;
+ 	info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
+ }
+ 
+-function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage){
++function stopSlide(event,ui,info,functionvalue,middlemessage,endmessage,precision){
+ 	var val=ui.value;
+ 	info.text(middlemessage[0]+val.toPrecision(precision).toString()+middlemessage[1]);
+ 	functionvalue(val);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20359-20360.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20359-20360.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20359-20360.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 20359)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 20360)
+@@ -81,7 +81,7 @@
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+ 			writejs1Darray(fid,[modelname '.mask.groundedice_levelset'],self.groundedice_levelset);
+-			writejs2Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
++			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
+ 
+ 		end % }}}
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20360-20361.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20360-20361.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20360-20361.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/m/solve/WriteData.js
+===================================================================
+--- ../trunk-jpl/src/m/solve/WriteData.js	(revision 20360)
++++ ../trunk-jpl/src/m/solve/WriteData.js	(revision 20361)
+@@ -59,7 +59,8 @@
+ 			}
+ 		}
+ 		else{
+-			ArrayScale(data,scale);
++			if (!IsArray(data)) data=data*scale;
++			else ArrayScale(data,scale);
+ 		}
+ 	}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20361-20362.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20361-20362.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20361-20362.diff	(revision 20498)
@@ -0,0 +1,64 @@
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20361)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20362)
+@@ -45,7 +45,7 @@
+                 }
+                 void  Echo() {DeepEcho();};
+                 int   Id(){ return -1; };
+-                int   ObjectEnum() {return AdolcParamEnum;};
++                int   ObjectEnum() {return GenericParamEnum;};
+ 
+                 // the "copy"  has to implement the base class abstract function
+                 // but I would prefer to drop this not to hide a "new" in here because
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20361)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20362)
+@@ -734,15 +734,15 @@
+ 		delete this->elements;
+ 		xDelete<int>(this->analysis_type_list);
+ 
+-		this->profiler = new Profiler();
+-		this->loads = new Loads();
+-		this->materials = new Materials();
+-		this->parameters = new Parameters();
++		this->profiler    = new Profiler();
++		this->loads       = new Loads();
++		this->materials   = new Materials();
++		this->parameters  = new Parameters();
+ 		this->constraints = new Constraints();
+-		this->results = new Results();
+-		this->nodes = new Nodes();
+-		this->vertices = new Vertices();
+-		this->elements = new Elements();
++		this->results     = new Results();
++		this->nodes       = new Nodes();
++		this->vertices    = new Vertices();
++		this->elements    = new Elements();
+ 	}
+ 
+ 	MARSHALLING_ENUM(FemModelEnum);
+Index: ../trunk-jpl/src/c/datastructures/DataSet.cpp
+===================================================================
+--- ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 20361)
++++ ../trunk-jpl/src/c/datastructures/DataSet.cpp	(revision 20362)
+@@ -121,7 +121,7 @@
+ 		MARSHALLING(obj_size);
+ 
+ 		/*Go through our objects, and marshall them into the buffer: */
+-		for ( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
++		for( obj=this->objects.begin() ; obj < this->objects.end(); obj++ ){
+ 			obj_enum=(*obj)->ObjectEnum();
+ 			MARSHALLING(obj_enum);
+ 			(*obj)->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+@@ -240,6 +240,9 @@
+ 				transparam->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
+ 				this->AddObject(transparam);
+ 			}
++			else if(obj_enum==GenericParamEnum){
++				/*Skip for now (we don't want to Marhsall Comms*/
++			}
+ 			else if(obj_enum==MaticeEnum){
+ 				Matice* matice=NULL;
+ 				matice=new Matice();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20362-20363.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20362-20363.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20362-20363.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20362)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20363)
+@@ -52,7 +52,10 @@
+                 // it does not clarify  ownership of the newed up instance...
+                 // use the default copy constructor instead
+                 Object* copy() { return new GenericParam<P>(*this); };
+-					 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
++					 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){
++						 /*Nothing for now*/
++					 }
++
+                 /*}}}*/
+                 /*Param vritual function definitions: {{{*/
+                 int   InstanceEnum(){return myEnumVal;}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20363-20364.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20363-20364.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20363-20364.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20363)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20364)
+@@ -53,6 +53,7 @@
+                 // use the default copy constructor instead
+                 Object* copy() { return new GenericParam<P>(*this); };
+ 					 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){
++						 _printf_("   WARNING: parameter %s is a GenericParam and cannot be marshalled\n",EnumToStringx(this->myEnumVal));
+ 						 /*Nothing for now*/
+ 					 }
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20364-20365.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20364-20365.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20364-20365.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/classes/Params/GenericParam.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20364)
++++ ../trunk-jpl/src/c/classes/Params/GenericParam.h	(revision 20365)
+@@ -53,7 +53,7 @@
+                 // use the default copy constructor instead
+                 Object* copy() { return new GenericParam<P>(*this); };
+ 					 void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){
+-						 _printf_("   WARNING: parameter %s is a GenericParam and cannot be marshalled\n",EnumToStringx(this->myEnumVal));
++						 _printf_("   WARNING: parameter "<<EnumToStringx(this->myEnumVal)<<" is a GenericParam and cannot be marshalled\n");
+ 						 /*Nothing for now*/
+ 					 }
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20365-20366.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20365-20366.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20365-20366.diff	(revision 20498)
@@ -0,0 +1,108 @@
+Index: ../trunk-jpl/test/NightlyRun/test315.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test315.py	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test315.py	(revision 20366)
+@@ -21,8 +21,8 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	1e-10,2e-13,2e-13,2e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
++	1e-10,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++	1e-10,2e-13,5e-13,2e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test324.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.py	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test324.py	(revision 20366)
+@@ -24,7 +24,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	5*1e-11,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+ 	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+Index: ../trunk-jpl/test/NightlyRun/test315.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test315.m	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test315.m	(revision 20366)
+@@ -12,8 +12,8 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',...
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...,
+-	1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	1e-10,2e-13,2e-13,2e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
++	1e-10,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	1e-10,2e-13,5e-13,2e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test324.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.m	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test324.m	(revision 20366)
+@@ -14,7 +14,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',...
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	5*1e-11,1e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+ 	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 20366)
+@@ -51,7 +51,7 @@
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','StrainRateparallel3','StrainRateperpendicular3','CalvingCalvingrate3']
+ field_tolerances=[1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,\
+ 		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,\
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11]
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,5e-11,5e-11,1e-11]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 20366)
+@@ -40,7 +40,7 @@
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','StrainRateparallel3','StrainRateperpendicular3','CalvingCalvingrate3'};
+ field_tolerances={1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+ 		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,...
+-		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
++		2e-11,2e-11,2e-11,1e-11,1e-11,1e-11,1e-11,5e-11,5e-11,5e-11};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+ 	md.results.TransientSolution(1).Vy,...
+Index: ../trunk-jpl/test/NightlyRun/test237.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.py	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test237.py	(revision 20366)
+@@ -81,7 +81,7 @@
+ 		'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','SmbMonthlytemperatures3','SmbMassBalance3'];
+ field_tolerances=[1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,\
+ 		1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-7,1e-13,1e-13,\
+-		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,1e-7,1e-13,1e-13];
++		1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,7e-13,5e-7,1e-13,1e-13];
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+ 	md.results.TransientSolution[0].Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test237.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test237.m	(revision 20365)
++++ ../trunk-jpl/test/NightlyRun/test237.m	(revision 20366)
+@@ -69,7 +69,7 @@
+ field_tolerances={...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-8,1e-13,1e-13,...
+ 	1e-13,1e-13,1e-13,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-7,1e-13,1e-13,...
+-	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,1e-7,1e-13,1e-13};
++	1e-13,1e-13,1e-08,1e-13,1e-13,1e-8,1e-8,1e-8,1e-13,5e-7,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
+ 	(md.results.TransientSolution(1).Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20366-20367.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20366-20367.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20366-20367.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20366)
++++ ../trunk-jpl/src/c/cores/sealevelrise_core_eustatic.cpp	(revision 20367)
+@@ -48,7 +48,7 @@
+ 	Sgi->Shift(-eustatic-Sgi_oceanaverage);
+ 
+ 	/*save eustatic value for results: */
+-	femmodel->results->AddResult(new GenericExternalResult<IssmPDouble>(femmodel->results->Size()+1,SealevelEustaticEnum,-eustatic));
++	femmodel->results->AddResult(new GenericExternalResult<IssmDouble>(femmodel->results->Size()+1,SealevelEustaticEnum,-eustatic));
+ 
+ 	xDelete<IssmDouble>(latitude);
+ 	xDelete<IssmDouble>(longitude);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20367-20368.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20367-20368.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20367-20368.diff	(revision 20498)
@@ -0,0 +1,46 @@
+Index: ../trunk-jpl/test/NightlyRun/test3019.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test3019.py	(revision 20367)
++++ ../trunk-jpl/test/NightlyRun/test3019.py	(revision 20368)
+@@ -16,7 +16,7 @@
+ md=setmask(md,'all','')
+ md=parameterize(md,'../Par/SquareShelfConstrained.py')
+ md=setflowequation(md,'SSA','all')
+-md.cluster=generic('name',oshostname(),'np',3)
++md.cluster=generic('name',oshostname(),'np',1)
+ 
+ md.autodiff.isautodiff=True
+ md.verbose.autodiff=True
+@@ -43,5 +43,5 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Jac Forward','Jac Reverse','Jac Forward - Reverse']
+-field_tolerances=[1e-13,1e-13,1e-13]
++field_tolerances=[1e-8,1e-8,1e-6]
+ field_values=[jac_forward,jac_reverse,jac_forward-jac_reverse]
+Index: ../trunk-jpl/test/NightlyRun/test324.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.py	(revision 20367)
++++ ../trunk-jpl/test/NightlyRun/test324.py	(revision 20368)
+@@ -24,7 +24,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',\
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
+-	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,\
++	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,5e-13,1e-13,1e-13,1e-13,\
+ 	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
+Index: ../trunk-jpl/test/NightlyRun/test324.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test324.m	(revision 20367)
++++ ../trunk-jpl/test/NightlyRun/test324.m	(revision 20368)
+@@ -14,7 +14,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2',...
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={1e-13,  1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
+-	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,...
++	5*1e-11,1e-13,5e-13,1e-13,1e-13,1e-13,5e-13,1e-13,1e-13,1e-13,...
+ 	1e-10,  1e-12,1e-12,1e-12,1e-13,1e-13,1e-12,1e-12,1e-13,1e-13};
+ field_values={...
+ 	(md.results.TransientSolution(1).Vx),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20368-20369.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20368-20369.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20368-20369.diff	(revision 20498)
@@ -0,0 +1,97 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 0)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20369)
+@@ -0,0 +1,86 @@
++
++#-------------------------------#
++# 1: ISSM general configuration #
++#-------------------------------#
++
++#MATLAB path
++MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
++
++#ISSM CONFIGURATION 
++ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--disable-shared \
++	--enable-standalone-executables \
++	--enable-standalone-modules \
++	--with-matlab-dir=$MATLAB_PATH \
++	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
++	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
++	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
++	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
++	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-numthreads=4 \
++	--enable-debugging \
++	--enable-development'
++
++#PYTHON and MATLAB testing
++MATLAB_TEST=1
++PYTHON_TEST=0
++
++#execution path used for parallel runs
++EXECUTION_PATH=$ISSM_DIR/execution
++
++#repo:
++REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
++SVN='/usr/local/bin/svn'
++SVNVERSION='/usr/local/bin/svnversion'
++
++#-----------------------------------#
++# 3: External packages installation #
++#-----------------------------------#
++
++#ISSM_EXTERNALPACKAGES can have 3 values:
++# - "install" install all external packages listed below
++# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
++# - "none"    leave external packages as is
++#             ->skip to section 4
++ISSM_EXTERNALPACKAGES="install"
++EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
++
++#List of external pakages to be installed and their installation scripts
++EXTERNALPACKAGES="autotools    install.sh
++						cmake        install.sh
++						mpich        install-3.0-macosx64.sh
++						m1qn3        install.sh
++						petsc        install-3.6-macosx64.sh
++						triangle     install-macosx64.sh
++						shell2junit  install.sh"
++
++#---------------------#
++# 4: ISSM Compilation #
++#---------------------#
++
++#ISSM_COMPILATION can have 2 values:
++# - "yes" compile ISSM
++# - "no"  do not compile ISSM
++ISSM_COMPILATION="yes"
++
++#------------------------#
++# 5: Nightly run options #
++#------------------------#
++
++#number of cpus used in ISSM installation and compilation (one is usually
++#safer as some packages are very sensitive to parallel compilation)
++NUMCPUS_INSTALL=4
++
++#number of cpus used in the nightly runs.
++NUMCPUS_RUN=2
++
++#Nightly run options. The matlab routine runme.m will be called
++#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
++#by Matlab and runme.m
++#ex: "'id',[101 102 103]"
++##                           bamg mesh   FS                     
++PYTHON_NROPTIONS=""
++MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,703,435,IdFromString('Dakota')]"
+
+Property changes on: ../trunk-jpl/jenkins/macosx_pine-island_static
+___________________________________________________________________
+Added: svn:executable
+   + *
+
Index: /issm/oecreview/Archive/19101-20495/ISSM-20369-20370.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20369-20370.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20369-20370.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20369)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20370)
+@@ -10,6 +10,7 @@
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--disable-shared \
+ 	--enable-standalone-executables \
++	--enable-standalone-libraries \
+ 	--enable-standalone-modules \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20370-20371.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20370-20371.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20370-20371.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20370)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20371)
+@@ -21,6 +21,7 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
++	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-numthreads=4 \
+ 	--enable-debugging \
+ 	--enable-development'
Index: /issm/oecreview/Archive/19101-20495/ISSM-20371-20372.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20371-20372.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20371-20372.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20371)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20372)
+@@ -21,7 +21,7 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
++	--with-fortran-lib="-L/usr/local/gfortran/lib -lgfortran" \
+ 	--with-numthreads=4 \
+ 	--enable-debugging \
+ 	--enable-development'
Index: /issm/oecreview/Archive/19101-20495/ISSM-20372-20373.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20372-20373.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20372-20373.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20372)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20373)
+@@ -11,7 +11,6 @@
+ 	--disable-shared \
+ 	--enable-standalone-executables \
+ 	--enable-standalone-libraries \
+-	--enable-standalone-modules \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20373-20374.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20373-20374.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20373-20374.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20373)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20374)
+@@ -8,7 +8,6 @@
+ 
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+-	--disable-shared \
+ 	--enable-standalone-executables \
+ 	--enable-standalone-libraries \
+ 	--with-matlab-dir=$MATLAB_PATH \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20374-20375.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20374-20375.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20374-20375.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20374)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20375)
+@@ -10,6 +10,7 @@
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--enable-standalone-executables \
+ 	--enable-standalone-libraries \
++	--enable-standalone-modules \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20375-20376.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20375-20376.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20375-20376.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic_static.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 20375)
++++ ../trunk-jpl/src/m/classes/clusters/generic_static.m	(revision 20376)
+@@ -65,7 +65,7 @@
+ 
+ 			%do nothing
+ 		end %}}}
+-		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart)% {{{
++		function LaunchQueueJob(cluster,modelname,dirname,filelist,restart,batch)% {{{
+ 
+ 			if ~ispc,
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20376-20377.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20376-20377.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20376-20377.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/os/issmdir.m
+===================================================================
+--- ../trunk-jpl/src/m/os/issmdir.m	(revision 20376)
++++ ../trunk-jpl/src/m/os/issmdir.m	(revision 20377)
+@@ -4,15 +4,23 @@
+ %   Usage:
+ %      ISSM_DIR=issmdir()
+ 
+-if ~ispc(),
+-	ISSM_DIR =getenv('ISSM_DIR');
++%Initialize output ISSM_DIR
++ISSM_DIR='';
++
++%Get ISSM_DIR from function path (we do not want to force users to edit their bashrc)
++path=which('issmdir');
++
++%issmdir might be in bin,
++pos=strfind(path,'bin/issmdir.m');
++if ~isempty(pos),
++	ISSM_DIR=path(1:pos-1);
+ else
+-	ISSM_DIR =getenv('ISSM_DIR_WIN');
+-	if strcmpi(ISSM_DIR(end),'/') | strcmpi(ISSM_DIR(end),'\'),
+-		ISSM_DIR = ISSM_DIR(1:end-1); %shave off the last '/'
++	pos=strfind(path,'src/m/os/issmdir.m');
++	if ~isempty(pos),
++		ISSM_DIR=path(1:pos-1);
+ 	end
+ end
+ 
+-if (isempty(ISSM_DIR)),
+-	error('issmdir error message: ''ISSM_DIR'' environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!');
++if isempty(ISSM_DIR),
++	error('Could not determine the location of ISSM...');
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20377-20378.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20377-20378.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20377-20378.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/dev/issmversion.py
+===================================================================
+--- ../trunk-jpl/src/m/dev/issmversion.py	(revision 20377)
++++ ../trunk-jpl/src/m/dev/issmversion.py	(revision 20378)
+@@ -14,7 +14,7 @@
+ print '(website: '+IssmConfig('PACKAGE_URL')[0]+' contact: '+IssmConfig('PACKAGE_BUGREPORT')[0]+')'
+ print ' '
+ print 'Build date: '+IssmConfig('PACKAGE_BUILD_DATE')[0]
+-print 'Copyright (c) 2009-2015 California Institute of Technology'
++print 'Copyright (c) 2009-2016 California Institute of Technology'
+ print ' '
+ print '    to get started type: issmdoc'
+ print ' '
+Index: ../trunk-jpl/src/m/dev/issmversion.m
+===================================================================
+--- ../trunk-jpl/src/m/dev/issmversion.m	(revision 20377)
++++ ../trunk-jpl/src/m/dev/issmversion.m	(revision 20378)
+@@ -16,7 +16,7 @@
+ disp(['Build date: ' IssmConfig('PACKAGE_BUILD_DATE')]);
+ disp(['Compiled on ' IssmConfig('HOST_VENDOR') ' ' IssmConfig('HOST_OS') ' ' IssmConfig('HOST_ARCH') ' by ' IssmConfig('USER_NAME')]);
+ disp([' ']);
+-disp(['Copyright (c) 2009-2015 California Institute of Technology']);
++disp(['Copyright (c) 2009-2016 California Institute of Technology']);
+ disp([' ']);
+ disp(['    to get started type: issmdoc']);
+ disp([' ']);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20378-20379.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20378-20379.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20378-20379.diff	(revision 20498)
@@ -0,0 +1,23 @@
+Index: ../trunk-jpl/src/m/plot/quiver_colorbar.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/quiver_colorbar.m	(revision 20378)
++++ ../trunk-jpl/src/m/plot/quiver_colorbar.m	(revision 20379)
+@@ -6,13 +6,16 @@
+ 
+ if  strcmpi(getfieldvalue(options,'colorbar','on'),'on'),
+ 
++	%Create colorbar
++	hcb=colorbar('peer',gca,'location','EastOutside');
++	caxis([1 quivers.numcolors+1]);
++
+ 	%build ticks
+-	hcb=colorbar('peer',gca,'location','EastOutside');
+ 	ticklabel=cell(1,length(quivers.levels));
+ 	for i=1:length(quivers.levels),
+ 		ticklabel{i}=num2str(round_ice(quivers.levels(i),3));
+ 	end
+-	tickpos=1/(quivers.numcolors+1)*[1:quivers.numcolors+1];
++	tickpos=1:quivers.numcolors+1;
+ 
+ 	%remove ticks if to many have been created
+ 	proportion=round(length(quivers.levels)/4);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20379-20380.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20379-20380.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20379-20380.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.py
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.py	(revision 20379)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.py	(revision 20380)
+@@ -13,7 +13,7 @@
+ 		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum()]
+ 
+ 	elif solutiontype == SteadystateSolutionEnum():
+-		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()]
++		analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum(),EnthalpyAnalysisEnum()]
+ 
+ 	elif solutiontype == ThermalSolutionEnum():
+ 		analyses=[EnthalpyAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()]
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 20379)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 20380)
+@@ -49,7 +49,7 @@
+ 		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum()];
+ 
+ 	case SteadystateSolutionEnum(),
+-		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum()];
++		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum(),EnthalpyAnalysisEnum()];
+ 
+ 	case ThermalSolutionEnum(),
+ 		analyses=[EnthalpyAnalysisEnum;ThermalAnalysisEnum();MeltingAnalysisEnum()];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20380-20381.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20380-20381.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20380-20381.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 20380)
++++ ../trunk-jpl/src/m/consistency/ismodelselfconsistent.m	(revision 20381)
+@@ -49,7 +49,7 @@
+ 		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum()];
+ 
+ 	case SteadystateSolutionEnum(),
+-		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum(),EnthalpyAnalysisEnum()];
++		analyses=[StressbalanceAnalysisEnum();StressbalanceVerticalAnalysisEnum();StressbalanceSIAAnalysisEnum();L2ProjectionBaseAnalysisEnum();ThermalAnalysisEnum();MeltingAnalysisEnum();EnthalpyAnalysisEnum()];
+ 
+ 	case ThermalSolutionEnum(),
+ 		analyses=[EnthalpyAnalysisEnum;ThermalAnalysisEnum();MeltingAnalysisEnum()];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20381-20382.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20381-20382.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20381-20382.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/m/os/issmdir.m
+===================================================================
+--- ../trunk-jpl/src/m/os/issmdir.m	(revision 20381)
++++ ../trunk-jpl/src/m/os/issmdir.m	(revision 20382)
+@@ -6,16 +6,17 @@
+ 
+ %Initialize output ISSM_DIR
+ ISSM_DIR='';
++slash=filesep();
+ 
+ %Get ISSM_DIR from function path (we do not want to force users to edit their bashrc)
+ path=which('issmdir');
+ 
+ %issmdir might be in bin,
+-pos=strfind(path,'bin/issmdir.m');
++pos=strfind(path,['bin' slash 'issmdir.m']);
+ if ~isempty(pos),
+ 	ISSM_DIR=path(1:pos-1);
+ else
+-	pos=strfind(path,'src/m/os/issmdir.m');
++	pos=strfind(path,['src' slash 'm' slash 'os' slash 'issmdir.m']);
+ 	if ~isempty(pos),
+ 		ISSM_DIR=path(1:pos-1);
+ 	end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20382-20383.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20382-20383.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20382-20383.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/constants.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/constants.h	(revision 20382)
++++ ../trunk-jpl/src/c/shared/Numerics/constants.h	(revision 20383)
+@@ -22,20 +22,18 @@
+ /*Windows specific typefefs: */
+ #ifdef _INTEL_WIN_
+ 
+-/*Complicated way, which does not handle INFINITY though: */
+-/*#ifndef NAN
+-	static const unsigned long __nan[2] = {0xffffffff, 0x7fffffff};
+-	#define NAN (*(const float *) __nan)
+-#endif*/
+-
++#ifndef NAN
+ //For reference, for Intel compile on win64
+ //#define NAN 0.0/0.0 
+-//#define INFINITY 1.0/0.0
+-
+-//Most generic way it would seem:
+-#define INFINITY (DBL_MAX+DBL_MAX)
+ #define NAN (INFINITY-INFINITY)
++#endif
+ 
++#ifndef INFINITY
++//For reference, for Intel compile on win64
++//#define INFINITY 1.0/0.0
++#define INFINITY (DBL_MAX+DBL_MAX)
+ #endif
+ 
+-#endif //ifndef _ISSMTYPEDEFS_H_
++#endif /*_INTEL_WIN_*/
++
++#endif /*_ISSM_CONSTANTS_H_*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20383-20384.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20383-20384.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20383-20384.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20383)
++++ ../trunk-jpl/jenkins/windows	(revision 20384)
+@@ -14,6 +14,7 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
++	--without-kml \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 20383)
++++ ../trunk-jpl/jenkins/windows-par	(revision 20384)
+@@ -14,6 +14,7 @@
+ 	--with-fortran=no  \
+ 	--without-Gia \
+ 	--without-kriging \
++	--without-kml \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir="$ISSM_DIR/externalpackages/triangle/install" \
+ 	--with-petsc-dir="$ISSM_DIR/externalpackages/petsc/install" \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20384-20385.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20384-20385.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20384-20385.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20384)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20385)
+@@ -44,6 +44,12 @@
+ fi
+ #}}}
+ 
++#testing
++ISSM_EXTERNALPACKAGES="none"
++ISSM_COMPILATION="no"
++echo "Current svn version is $SVN_REVISION_1"
++echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
++
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
Index: /issm/oecreview/Archive/19101-20495/ISSM-20385-20386.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20385-20386.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20385-20386.diff	(revision 20498)
@@ -0,0 +1,98 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20385)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20386)
+@@ -1995,7 +1995,7 @@
+ 	dnl bypass standard optimization -g -O2 ? 
+ 	AC_ARG_WITH([cxxoptflags],
+ 	  AS_HELP_STRING([--with-cxxoptflags = CXXOPTFLAGS], [optimization using CXX flags, ex: --with-cxxoptflags=-march=opteron -O3]),
+-	  [CXXOPTFLAGS=$withval],[CXXOPTFLAGS="-g -O2"]) 
++	  [CXXOPTFLAGS=$withval],[CXXOPTFLAGS="-g -O2 -fPIC"]) 
+ 	AC_MSG_CHECKING(for c++ optimization flags)
+ 	AC_SUBST([CXXOPTFLAGS])
+ 	AC_MSG_RESULT(done)
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20385)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20386)
+@@ -584,7 +584,7 @@
+ endif
+ #}}}
+ #Library flags and sources {{{
+-ALLCXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) 
++ALLCXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) 
+ 
+ libISSMCore_la_SOURCES  = $(issm_sources)
+ libISSMCore_la_CXXFLAGS = $(ALLCXXFLAGS) $(DAKOTAFLAGS)
+@@ -642,7 +642,7 @@
+ #Overload library, to overload any non-standard symbols. {{{
+ libISSMOverload_la_SOURCES = ./shared/String/ApiPrintf.cpp
+ 
+-libISSMOverload_la_CFLAGS  = -fPIC -D_C_ $(COPTFLAGS) $(CFLAGS)
++libISSMOverload_la_CFLAGS  = -D_C_ -fPIC $(COPTFLAGS) $(CFLAGS)
+ #}}}
+ 
+ #Executable {{{
+@@ -674,22 +674,22 @@
+ endif
+ 
+ issm_SOURCES = main/issm.cpp
+-issm_CXXFLAGS= -fPIC
++issm_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
+ 
+ issm_slr_SOURCES = main/issm_slr.cpp
+-issm_slr_CXXFLAGS= -fPIC
++issm_slr_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
+ 
+ 
+ if KRIGING
+ bin_PROGRAMS += kriging
+ kriging_SOURCES = main/kriging.cpp
+-kriging_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
++kriging_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+ endif
+ 
+ if ISSM_DAKOTA
+ bin_PROGRAMS += issm_dakota
+ issm_dakota_SOURCES = main/issm_dakota.cpp
+-issm_dakota_CXXFLAGS= -fPIC $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
++issm_dakota_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+ issm_dakota_LDADD= $(LDADD)
+ endif
+ 
+@@ -705,13 +705,13 @@
+ #ADIC2 library, for automatic differentiation 
+ #libAD_a_SOURCES = ./mini1.ad.c
+ libAD_la_SOURCES = 
+-libAD_la_CFLAGS = -fPIC -D_C_ $(COPTFLAGS)
++libAD_la_CFLAGS = -D_C_ -fPIC $(COPTFLAGS)
+ 
+ #test rose preprocessing 
+ %.r2cpp.cpp : %.cpp
+ 	testTranslator -rose:o $@ -rose:skipfinalCompileStep -DHAVE_CONFIG_H -D_C_ -I. -I../.. $(INCLUDES) $<
+ libISSMRose_la_SOURCES = $(libISSMCore_a_SOURCES:.cpp=.r2cpp.cpp)
+-libISSMRose_la_CXXFLAGS= -fPIC -D_C_ $(CXXOPTFLAGS)
++libISSMRose_la_CXXFLAGS= -D_C_ $(CXXOPTFLAGS)
+ 
+ #Automatic differentiation rules: 
+ %.ad.c: %.c
+@@ -721,6 +721,6 @@
+ bin_PROGRAMS +=  issmRose.exe
+ issmRose_exe_LDADD = ./libISSMRose.a $(LDADD)
+ issmRose_exe_SOURCES = main/issm.cpp
+-issmRose_exe_CXXFLAGS= -fPIC $(CXXOPTFLAGS) $(COPTFLAGS) 
++issmRose_exe_CXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS) $(COPTFLAGS) 
+ LDADD +=  $(ADIC2LIB) 
+ endif #}}}
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20385)
++++ ../trunk-jpl/jenkins/windows	(revision 20386)
+@@ -9,6 +9,7 @@
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--with-vendor=MSVC-Win64  \
++	--with-cxxoptflags='' \
+    --disable-static \
+ 	--enable-standalone-libraries \
+ 	--with-fortran=no  \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20386-20387.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20386-20387.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20386-20387.diff	(revision 20498)
@@ -0,0 +1,92 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20386)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20387)
+@@ -44,11 +44,59 @@
+ fi
+ #}}}
+ 
+-#testing
++#testing {{{
++echo "======================================================";
++echo "             Determining Installation type            "
++echo "======================================================";
+ ISSM_EXTERNALPACKAGES="none"
++ISSM_RECONFIGURE="no"
+ ISSM_COMPILATION="no"
+-echo "Current svn version is $SVN_REVISION_1"
++if [ -a $ISSM_DIR/svn_revision_old ]
++then
++	SVN_PREVIOUS=$(cat $ISSM_DIR/svn_revision_old)
++	SVN_CURRENT=`$SVNVERSION`
++	echo "Previous revision number: $SVN_PREVIOUS"
++	echo "Current  revision number: $SVN_CURRENT"
++
++	svn diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize $ISSM_DIR > $ISSM_DIR/TEMP
++	echo "List of changed files"
++	cat $ISSM_DIR/TEMP
++
++	#Do we need to reinstall externalpackages?
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ] ; then
++		echo "  -- checking for changed externalpackages... yes";
++		ISSM_EXTERNALPACKAGES="install"
++	else
++		echo "  -- checking for changed externalpackages... no";
++		ISSM_EXTERNALPACKAGES="none"
++	fi
++
++	#Do we need to reconfigure
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "Makefile.am" -e "m4" )" ] ; then
++		echo "  -- checking for reconfiguration... yes";
++		ISSM_RECONFIGURE="yes"
++	else
++		echo "  -- checking for reconfiguration... no";
++		ISSM_RECONFIGURE="no"
++	fi
++
++	#Do we need to recompile
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] ; then
++		echo "  -- checking for recompilation... yes";
++		ISSM_COMPILATION="yes"
++	else
++		echo "  -- checking for recompilation... no";
++		ISSM_COMPILATION="no"
++	fi
++
++else
++	ISSM_EXTERNALPACKAGES="install"
++	ISSM_RECONFIGURE="yes"
++	ISSM_COMPILATION="yes"
++fi
++echo "Recording current svn version: $SVN_REVISION_1"
+ echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
++#}}}
+ 
+ #install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+@@ -162,12 +210,21 @@
+ if [ "$ISSM_COMPILATION" == "yes" ]
+ then
+ 	cd $ISSM_DIR
+-	make uninstall
+-	make distclean
+-	./scripts/automakererun.sh
+-   eval "./configure $ISSM_CONFIG"
++	if [ "$ISSM_RECONFIGURE" == "yes" ]
++	then
++		echo "======================================================";
++		echo "             Cleaning up and reconfiguring            "
++		echo "======================================================";
++		make uninstall
++		make distclean
++		./scripts/automakererun.sh
++		eval "./configure $ISSM_CONFIG"
++	fi
+ 
+ 	#4: compile and install ISSM
++	echo "======================================================";
++	echo "                    Compiling ISSM                    "
++	echo "======================================================";
+ 	if [ $NUMCPUS_INSTALL -gt 1 ]; then
+ 		echo "Making with " $NUMCPUS_INSTALL " cpus"
+ 		make -j $NUMCPUS_INSTALL
Index: /issm/oecreview/Archive/19101-20495/ISSM-20387-20388.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20387-20388.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20387-20388.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20387)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20388)
+@@ -44,6 +44,7 @@
+ fi
+ #}}}
+ 
++PYTHON_TEST=0
+ #testing {{{
+ echo "======================================================";
+ echo "             Determining Installation type            "
Index: /issm/oecreview/Archive/19101-20495/ISSM-20388-20389.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20388-20389.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20388-20389.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20388)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20389)
+@@ -55,7 +55,7 @@
+ if [ -a $ISSM_DIR/svn_revision_old ]
+ then
+ 	SVN_PREVIOUS=$(cat $ISSM_DIR/svn_revision_old)
+-	SVN_CURRENT=`$SVNVERSION`
++	SVN_CURRENT=`$SVN_REVISION_1`
+ 	echo "Previous revision number: $SVN_PREVIOUS"
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20389-20390.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20389-20390.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20389-20390.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20389)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20390)
+@@ -55,7 +55,7 @@
+ if [ -a $ISSM_DIR/svn_revision_old ]
+ then
+ 	SVN_PREVIOUS=$(cat $ISSM_DIR/svn_revision_old)
+-	SVN_CURRENT=`$SVN_REVISION_1`
++	SVN_CURRENT=$SVN_REVISION_1
+ 	echo "Previous revision number: $SVN_PREVIOUS"
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20390-20391.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20390-20391.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20390-20391.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20390)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20391)
+@@ -59,7 +59,10 @@
+ 	echo "Previous revision number: $SVN_PREVIOUS"
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
+-	svn diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize $ISSM_DIR > $ISSM_DIR/TEMP
++	svn diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize http://issm.ess.uci.edu/svn/issm/issm/trunk-jpl > $ISSM_DIR/TEMP
++	if [ $? -neq  ]; then
++		echo "WARNING: svn command failed!!!"
++	fi
+ 	echo "List of changed files"
+ 	cat $ISSM_DIR/TEMP
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20391-20392.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20391-20392.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20391-20392.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20391)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20392)
+@@ -60,7 +60,7 @@
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
+ 	svn diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize http://issm.ess.uci.edu/svn/issm/issm/trunk-jpl > $ISSM_DIR/TEMP
+-	if [ $? -neq  ]; then
++	if [ $? -ne 0 ]; then
+ 		echo "WARNING: svn command failed!!!"
+ 	fi
+ 	echo "List of changed files"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20392-20393.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20392-20393.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20392-20393.diff	(revision 20498)
@@ -0,0 +1,18 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20392)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20393)
+@@ -59,11 +59,8 @@
+ 	echo "Previous revision number: $SVN_PREVIOUS"
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
+-	svn diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize http://issm.ess.uci.edu/svn/issm/issm/trunk-jpl > $ISSM_DIR/TEMP
+-	if [ $? -ne 0 ]; then
+-		echo "WARNING: svn command failed!!!"
+-	fi
+-	echo "List of changed files"
++	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes
++	cat changes | grep "The file was modified" > $ISSM_DIR/TEMP
+ 	cat $ISSM_DIR/TEMP
+ 
+ 	#Do we need to reinstall externalpackages?
Index: /issm/oecreview/Archive/19101-20495/ISSM-20393-20394.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20393-20394.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20393-20394.diff	(revision 20498)
@@ -0,0 +1,747 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 20394)
+@@ -35,23 +35,12 @@
+ EXECUTION_PATH=$ISSM_DIR/execution
+ 
+ #repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+@@ -74,7 +63,6 @@
+ 						netcdf-python install.sh
+ 						shell2junit   install.sh"
+ 
+-
+ #---------------------#
+ # 4: ISSM Compilation #
+ #---------------------#
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20394)
+@@ -38,21 +38,11 @@
+ #repo:
+ #We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20394)
+@@ -27,21 +27,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 mpich install-3.0-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20394)
+@@ -36,21 +36,11 @@
+ #repo:
+ #We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20394)
+@@ -36,21 +36,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 mpich install-3.0-linux64.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20394)
+@@ -26,21 +26,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 cmake install.sh 
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20394)
+@@ -29,21 +29,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 mpich install-3.0-linux64.sh
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20393)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20394)
+@@ -34,21 +34,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/local/bin/svn'
+-SVNVERSION='/usr/local/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake        install.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20394)
+@@ -35,21 +35,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 cmake install.sh 
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20394)
+@@ -38,21 +38,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 mpich install-3.0-linux64.sh
+Index: ../trunk-jpl/jenkins/windows_test
+===================================================================
+--- ../trunk-jpl/jenkins/windows_test	(revision 20393)
++++ ../trunk-jpl/jenkins/windows_test	(revision 20394)
+@@ -17,14 +17,6 @@
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="none"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #---------------------#
+ # 4: ISSM Compilation #
+ #---------------------#
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20393)
++++ ../trunk-jpl/jenkins/windows	(revision 20394)
+@@ -41,14 +41,6 @@
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools   install-win.sh
+ 						petsc       install-3.6-win10.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20394)
+@@ -40,14 +40,6 @@
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_murdo_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20394)
+@@ -32,21 +32,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20393)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20394)
+@@ -33,21 +33,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/local/bin/svn'
+-SVNVERSION='/usr/local/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake 		 install.sh
+Index: ../trunk-jpl/jenkins/linux64_murdo_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20394)
+@@ -30,21 +30,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/linux64_ross_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20394)
+@@ -31,21 +31,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/imac-012301-gil
+===================================================================
+--- ../trunk-jpl/jenkins/imac-012301-gil	(revision 20393)
++++ ../trunk-jpl/jenkins/imac-012301-gil	(revision 20394)
+@@ -35,14 +35,6 @@
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 						mpich     install-3.0-macosx64.sh    
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20394)
+@@ -31,23 +31,12 @@
+ EXECUTION_PATH=$ISSM_DIR/execution
+ 
+ #repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20393)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20394)
+@@ -29,29 +29,11 @@
+ fi
+ #}}}
+ 
+-#SVN version issue requires that we set SVN and SVNVERSION explicitly in order
+-#to remain compatible with the version used by Jenkins to do checkouts
+-#{{{
+-if [[ -z $SVN ]]; then
+-	echo "SVN variable is not set!"
+-	echo "Defaulting to SVN found in path..."
+-	SVN='svn'
+-fi
+-if [[ -z $SVNVERSION ]]; then
+-	echo "SVNVERSION variable is not set!"
+-	echo "Defaulting to SVNVERSION found in path..."
+-	SVNVERSION='svnversion'
+-fi
+-#}}}
+ 
+-PYTHON_TEST=0
+-#testing {{{
++#Determinig Installation type depending on svn changes{{{
+ echo "======================================================";
+ echo "             Determining Installation type            "
+ echo "======================================================";
+-ISSM_EXTERNALPACKAGES="none"
+-ISSM_RECONFIGURE="no"
+-ISSM_COMPILATION="no"
+ if [ -a $ISSM_DIR/svn_revision_old ]
+ then
+ 	SVN_PREVIOUS=$(cat $ISSM_DIR/svn_revision_old)
+@@ -59,8 +41,11 @@
+ 	echo "Previous revision number: $SVN_PREVIOUS"
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
+-	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes
+-	cat changes | grep "The file was modified" > $ISSM_DIR/TEMP
++	#Get changes from jenkins itself (svn requires credentials)
++	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
++
++	#Process html page and get the list of files that has changed
++	cat changes | grep "The file was modified" | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr><\/table>.*/\1/' > $ISSM_DIR/TEMP
+ 	cat $ISSM_DIR/TEMP
+ 
+ 	#Do we need to reinstall externalpackages?
+@@ -91,6 +76,10 @@
+ 	fi
+ 
+ else
++	echo "Previous revision not found, this must be a fresh install"
++	echo "  -- checking for changed externalpackages... yes";
++	echo "  -- checking for reconfiguration... yes";
++	echo "  -- checking for recompilation... yes";
+ 	ISSM_EXTERNALPACKAGES="install"
+ 	ISSM_RECONFIGURE="yes"
+ 	ISSM_COMPILATION="yes"
+@@ -99,7 +88,7 @@
+ echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
+ #}}}
+ 
+-#install/copy/none external packages    (ISSM_EXTERNALPACKAGES){{{
++#install/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
+ 	#number of packages: 
+@@ -118,78 +107,27 @@
+ 		PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
+ 
+ 		cd $ISSM_DIR/externalpackages/$PACKAGENAME
+-		#tricky part here. We do not want to reinstall this package if it's already installed
+-		#and the svn file which does the install has not be modified! To keep track of 
+-		#this, we check the current svn version against the "last changed" revision number.  If they 
+-		#are the same, we reinstall the package. 
+-		current_version=`$SVNVERSION`
+-		last_changed_version=`$SVN info $PACKAGEINST | grep "Last Changed Rev" | awk '{printf("%s\n",$4);}'`
+-
+-		if [[ $current_version == $last_changed_version ]]; then 
+-			#go ahead and reinstall. 
+-			echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
+-			echo "Triggering new install of $PACKAGENAME"
+-			install_test=1
+-		else
+-			#ok, we want to skip, unless the package is not installed: 
+-			if [ -d install ]; then 
+-				#could be empty, signaling a failed previous install: 
+-				if [ "$(ls -A install)" ];then
+-					echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
+-					echo "and install directory exists, so skipping install of $PACKAGENAME"
+-					install_test=0;
+-				else
+-					echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
+-					echo "and install directory exists, however, it is empty, so triggering install of $PACKAGENAME"
+-					install_test=1;
+-				fi
+-			else
+-				echo "For $PACKAGENAME: svn current_version  is $current_version and last changed version is $last_changed_version"
+-				echo "However, install directory does not exist, so triggering install of $PACKAGENAME"
+-				install_test=1;
+-			fi
+-		fi
+-
+-		if [[ $install_test == 1 ]]; then 
++		echo "======================================================";
++		echo "       Installing $PACKAGENAME                        ";
++		echo "======================================================";
++		./$PACKAGEINST |  tee compil.log
++		if [ $? -ne 0 ]; then
+ 			echo "======================================================";
+-			echo "       Installing $PACKAGENAME                        ";
++			echo "    ERROR: installation of $PACKAGENAME failed        ";
+ 			echo "======================================================";
+-			./$PACKAGEINST |  tee compil.log
+-			if [ $? -ne 0 ]; then
+-				echo "======================================================";
+-				echo "    ERROR: installation of $PACKAGENAME failed        ";
+-				echo "======================================================";
+-				#erase install directory, so that next time, we still try and compile this!
+-				rm -rf install
+-				echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE
+-				echo '<failure message="failure">External packages did not install right. Check it.</failure>' >> $EXTERNAL_TEST_FILE
+-				echo '</testcase>' >> $EXTERNAL_TEST_FILE
+-			else
+-				echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+-			fi
+-			source $ISSM_DIR/etc/environment.sh
++			#erase install directory, so that next time, we still try and compile this!
++			rm -rf install
++			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\">" >> $EXTERNAL_TEST_FILE
++			echo '<failure message="failure">External packages did not install right. Check it.</failure>' >> $EXTERNAL_TEST_FILE
++			echo '</testcase>' >> $EXTERNAL_TEST_FILE
+ 		else
+-			echo "======================================================";
+-			echo "       Skipping install of $PACKAGENAME               ";
+-			echo "======================================================";
+-			source $ISSM_DIR/etc/environment.sh #for good measure :)
+-
+ 			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
++		source $ISSM_DIR/etc/environment.sh
+ 		cd ..
+ 	done
+ 	echo '</testsuite>' >> $EXTERNAL_TEST_FILE
+ 
+-elif [ "$ISSM_EXTERNALPACKAGES" == "copy" ]
+-then
+-	cd $ISSM_DIR
+-	rm -rf externalpackages
+-	cp -Rf $EXTERNALPACKAGESDIR ./
+-elif [ "$ISSM_EXTERNALPACKAGES" == "link" ]
+-then
+-	cd $ISSM_DIR
+-	rm -rf externalpackages
+-	ln -s  $EXTERNALPACKAGESDIR  .
+ elif [ "$ISSM_EXTERNALPACKAGES" == "none" ]
+ then
+ 	echo "Skipping external packages installation"
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 20393)
++++ ../trunk-jpl/jenkins/windows-par	(revision 20394)
+@@ -39,14 +39,6 @@
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools   install-win.sh
+ 						petsc       install-dev-win10-par.sh
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 20394)
+@@ -36,23 +36,12 @@
+ EXECUTION_PATH=$ISSM_DIR/execution
+ 
+ #repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+@@ -64,7 +53,6 @@
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
+-
+ #---------------------#
+ # 4: ISSM Compilation #
+ #---------------------#
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20393)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20394)
+@@ -30,21 +30,11 @@
+ 
+ #repo:
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/local/bin/svn'
+-SVNVERSION='/usr/local/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake        install.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_test
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_test	(revision 20393)
++++ ../trunk-jpl/jenkins/linux64_ross_test	(revision 20394)
+@@ -36,23 +36,12 @@
+ EXECUTION_PATH=$ISSM_DIR/execution
+ 
+ #repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+ REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+ 
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#ISSM_EXTERNALPACKAGES can have 3 values:
+-# - "install" install all external packages listed below
+-# - "copy"    copy existing directories (EXTERNALPACKAGESDIR)
+-# - "none"    leave external packages as is
+-#             ->skip to section 4
+-#ISSM_EXTERNALPACKAGES="install"
+-EXTERNALPACKAGESDIR=$ISSM_DIR/externalpackages
+-
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
Index: /issm/oecreview/Archive/19101-20495/ISSM-20394-20395.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20394-20395.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20394-20395.diff	(revision 20498)
@@ -0,0 +1,90 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 20394)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 20395)
+@@ -31,12 +31,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+Index: ../trunk-jpl/jenkins/imac-012301-gil
+===================================================================
+--- ../trunk-jpl/jenkins/imac-012301-gil	(revision 20394)
++++ ../trunk-jpl/jenkins/imac-012301-gil	(revision 20395)
+@@ -25,12 +25,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20394)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20395)
+@@ -29,7 +29,7 @@
+ fi
+ #}}}
+ 
+-
++#Install ISSM
+ #Determinig Installation type depending on svn changes{{{
+ echo "======================================================";
+ echo "             Determining Installation type            "
+@@ -44,10 +44,14 @@
+ 	#Get changes from jenkins itself (svn requires credentials)
+ 	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
+ 
+-	#Process html page and get the list of files that has changed
+-	cat changes | grep "The file was modified" | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr><\/table>.*/\1/' > $ISSM_DIR/TEMP
+-	cat $ISSM_DIR/TEMP
++	#Process html page and get the list of files that has changed (tricky...)
+ 
++	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
++		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
++	if [ -z "$(cat $ISSM_DIR/TEMP)" ] ; then
++		echo "ERROR: file list is empty!"
++	fi
++
+ 	#Do we need to reinstall externalpackages?
+ 	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ] ; then
+ 		echo "  -- checking for changed externalpackages... yes";
+@@ -87,7 +91,6 @@
+ echo "Recording current svn version: $SVN_REVISION_1"
+ echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
+ #}}}
+-
+ #install/none external packages    (ISSM_EXTERNALPACKAGES){{{
+ if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+ then
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20394)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20395)
+@@ -25,12 +25,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
Index: /issm/oecreview/Archive/19101-20495/ISSM-20395-20396.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20395-20396.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20395-20396.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20395)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20396)
+@@ -45,11 +45,13 @@
+ 	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
+ 
+ 	#Process html page and get the list of files that has changed (tricky...)
+-
+ 	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
+ 		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
+ 	if [ -z "$(cat $ISSM_DIR/TEMP)" ] ; then
+ 		echo "ERROR: file list is empty!"
++	else
++		echo "List of changed files"
++		cat TEMP
+ 	fi
+ 
+ 	#Do we need to reinstall externalpackages?
Index: /issm/oecreview/Archive/19101-20495/ISSM-20396-20397.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20396-20397.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20396-20397.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20396)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20397)
+@@ -48,7 +48,10 @@
+ 	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
+ 		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
+ 	if [ -z "$(cat $ISSM_DIR/TEMP)" ] ; then
+-		echo "ERROR: file list is empty!"
++		echo "ERROR: file list is empty! Triggering full install"
++		ISSM_EXTERNALPACKAGES="install"
++		ISSM_RECONFIGURE="yes"
++		ISSM_COMPILATION="yes"
+ 	else
+ 		echo "List of changed files"
+ 		cat TEMP
Index: /issm/oecreview/Archive/19101-20495/ISSM-20397-20398.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20397-20398.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20397-20398.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20397)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20398)
+@@ -46,15 +46,17 @@
+ 
+ 	#Process html page and get the list of files that has changed (tricky...)
+ 	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
+-		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
++		/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
+ 	if [ -z "$(cat $ISSM_DIR/TEMP)" ] ; then
++		echo "List of changed files"
++		cat $ISSM_DIR/TEMP
+ 		echo "ERROR: file list is empty! Triggering full install"
+ 		ISSM_EXTERNALPACKAGES="install"
+ 		ISSM_RECONFIGURE="yes"
+ 		ISSM_COMPILATION="yes"
+ 	else
+ 		echo "List of changed files"
+-		cat TEMP
++		cat $ISSM_DIR/TEMP
+ 	fi
+ 
+ 	#Do we need to reinstall externalpackages?
Index: /issm/oecreview/Archive/19101-20495/ISSM-20398-20399.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20398-20399.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20398-20399.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20398)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20399)
+@@ -44,6 +44,11 @@
+ 	#Get changes from jenkins itself (svn requires credentials)
+ 	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
+ 
++	#Print list of files
++	echo "   "
++	echo "List of changed files"
++	cat $ISSM_DIR/TEMP
++
+ 	#Process html page and get the list of files that has changed (tricky...)
+ 	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
+ 		/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
Index: /issm/oecreview/Archive/19101-20495/ISSM-20399-20400.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20399-20400.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20399-20400.diff	(revision 20498)
@@ -0,0 +1,37 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20399)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20400)
+@@ -44,26 +44,16 @@
+ 	#Get changes from jenkins itself (svn requires credentials)
+ 	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
+ 
+-	#Print list of files
+-	echo "   "
+-	echo "List of changed files"
+-	cat $ISSM_DIR/TEMP
+-
+ 	#Process html page and get the list of files that has changed (tricky...)
+ 	cat changes | grep 'alt="The file was modified"' |sed -e 's/alt="The file was modified"/\
+ 		/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v '"The file was modified"' > $ISSM_DIR/TEMP
+-	if [ -z "$(cat $ISSM_DIR/TEMP)" ] ; then
+-		echo "List of changed files"
+-		cat $ISSM_DIR/TEMP
+-		echo "ERROR: file list is empty! Triggering full install"
+-		ISSM_EXTERNALPACKAGES="install"
+-		ISSM_RECONFIGURE="yes"
+-		ISSM_COMPILATION="yes"
+-	else
+-		echo "List of changed files"
+-		cat $ISSM_DIR/TEMP
+-	fi
+ 
++	#Print list of files
++	echo "   "
++	echo "List of updated files"
++	cat $ISSM_DIR/TEMP
++	echo "   "
++
+ 	#Do we need to reinstall externalpackages?
+ 	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ] ; then
+ 		echo "  -- checking for changed externalpackages... yes";
Index: /issm/oecreview/Archive/19101-20495/ISSM-20400-20401.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20400-20401.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20400-20401.diff	(revision 20498)
@@ -0,0 +1,629 @@
+Index: ../trunk-jpl/src/m/plot/applyoptions.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/applyoptions.js	(revision 20401)
+@@ -10,6 +10,10 @@
+ 	if (options.exist('colorbar')) {
+ 		if (options.getfieldvalue('colorbar')==1) {
+ 			//Handle movie data {{{
++			if (typeof data == 'string') {
++				//throw Error('plot error message: data of type string');
++				return;
++			}
+ 			var	dataresults = processdata(md,data,options);
+ 			var	data2 = dataresults[0]; 
+ 			var	datatype = dataresults[1];
+Index: ../trunk-jpl/src/m/plot/plot_quiver.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 20401)
+@@ -0,0 +1,117 @@
++function plot_quiver(md,options,canvas,gl,node) {
++	//PLOT_QUIVER - quiver plot with colors
++	//
++	//   Usage:
++	//      plot_quiver(md,options,canvas,gl,node)
++	//
++
++	//declare variables:  {{{
++	var vertices = [];
++	var indices = [];
++	var colors = [];
++	var rgbcolor = [];
++	var xmin,xmax;
++	var ymin,ymax;
++	var zmin,zmax;
++	var scale,zscale,surfacescale;
++	
++	//Process data and model
++	var meshresults = processmesh(md,[],options);
++	var x = meshresults[0]; 
++	var y = meshresults[1]; 
++	var z = meshresults[2]; 
++	var elements = meshresults[3]; 
++	var is2d = meshresults[4]; 
++	var isplanet = meshresults[5];
++	var vx = md.initialization.vx; 
++	var vy = md.initialization.vy; 
++		
++	if (!md.geometry.surface) {
++		md.geometry.surface=NewArrayFill(md.mesh.x.length,0);
++	}
++	if (md.mesh.classname() == 'mesh3dsurface') {
++		zscale = 1;
++		surfacescale = options.getfieldvalue('heightscale',1);
++	}
++	else {
++		if (md.geometry.surface) {
++			z=md.geometry.surface;
++		}	
++		zscale = options.getfieldvalue('heightscale',1);
++		surfacescale = 0;
++	}
++	//}}}
++
++	//Compute coordinates and data range:
++	var modelxlim = [ArrayMin(x),ArrayMax(x)];
++	var modelylim = [ArrayMin(y),ArrayMax(y)];
++	var modelzlim = [ArrayMin(z),ArrayMax(z)];
++	var xlim = options.getfieldvalue('xlim',modelxlim);
++	var ylim = options.getfieldvalue('ylim',modelylim);
++	var zlim = options.getfieldvalue('zlim',modelzlim);
++	xmin = xlim[0];
++	xmax = xlim[1];
++	ymin = ylim[0];
++	ymax = ylim[1];
++	zmin = zlim[0];
++	zmax = zlim[1];
++
++	//Compute scaling: 
++	var scale = 1 / (xmax - xmin);
++	node["shaderName"] = "colored";
++	node["shader"] = gl["shaders"][node["shaderName"]]["program"];
++	node["scale"] = [scale, scale, scale * zscale];
++	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
++	node["modelMatrix"] = recalculateModelMatrix(node);
++	node["drawMode"] = gl.LINES;
++	node["useIndexBuffer"] = false;
++	node["drawOrder"] = 0;
++	node["maskEnabled"] = options.exist('mask');
++	node["maskHeight"] = options.getfieldvalue('maskheight',150.0)*options.getfieldvalue('heightscale',1);
++	node["maskColor"] = options.getfieldvalue('maskcolor',[0.0,0.0,1.0,1.0]);
++				
++	//some defaults:
++	colors.itemSize = 4;
++
++	//retrieve some options
++	var linewidth=options.getfieldvalue('linewidth',1);
++	var edgecolor=options.getfieldvalue('edgecolor',[0.0,0.0,0.0,1.0]); //have RGBColor switch with array color?
++	//var edgecolor=options.getfieldvalue('edgecolor','black'); //have RGBColor switch with array color?
++
++	//node plot {{{
++	if (elements[0].length==6){ //prisms
++	}
++	else if (elements[0].length==4){ //tetras
++	}
++	else{ //2D triangular elements
++		vertices.itemSize = 3;
++		var xyz = vec3.create();
++		var direction = vec3.create();
++		var vertex = vec3.create();
++		var magnitude;
++		var color = edgecolor;
++		for(var i = 0; i < x.length; i++){
++			xyz1 = vec3.fromValues(x[i], y[i], z[i]);
++			magnitude = vec3.length(xyz1) + md.geometry.surface[i] * surfacescale;
++			vec3.normalize(direction, xyz1);
++			vec3.scale(vertex, direction, magnitude);
++			vertices.push.apply(vertices, vertex);
++			
++			xyz2 = vec3.fromValues(vx[i], vy[i], 0.0);
++			magnitude = 100.0; //mesh resolution
++			vec3.normalize(direction, xyz2);
++			vec3.scale(direction, direction, magnitude);
++			vec3.add(vertex, direction, vertex);
++			vertices.push.apply(vertices, vertex);
++			
++			colors.push.apply(colors, color);
++			colors.push.apply(colors, color);
++		}
++	}
++	//}}}
++
++	/*Initalize buffers: */
++	node["arrays"] = [vertices, colors];
++	node["buffers"] = initBuffers(gl, node["arrays"]);
++	if (canvas.requestDrawing)	draw(gl,options,canvas);
++}
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20401)
+@@ -69,7 +69,6 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["alpha"] = options.getfieldvalue('alpha',1.0);
+-	node["overlay"] = options.getfieldvalue('overlay','off') == 'on';
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.getfieldvalue('innermask','off') == 'on';
+ 	node["maskHeight"] = options.getfieldvalue('innermaskheight',150.0);
+@@ -199,12 +198,34 @@
+ 				node["movieLength"] = data.length-1;
+ 				node["movieFrame"] = 0;
+ 				node["movieHandler"] = function () {
+-						node["movieFrame"] = (node["movieFrame"] + 1) % (node["movieLength"]);
+-						var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
+-						node["buffers"] = initBuffers(gl,array);
++						if (canvas["moviePlay"]) {
++							node["movieFrame"] = canvas["movieFrame"];
++							if (canvas["movieIncrement"]) {
++								if (canvas["movieReverse"]) {
++									node["movieFrame"] = (((node["movieFrame"] - 1) % node["movieLength"]) + node["movieLength"]) % node["movieLength"]; //Handle negative modulus
++								}
++								else {
++									node["movieFrame"] = (((node["movieFrame"] + 1) % node["movieLength"]) + node["movieLength"]) % node["movieLength"]; //Handle negative modulus
++								}
++							}
++							if (canvas["timeLabel"]) {
++								canvas["timeLabel"].html(String(node["movieFrame"]) + "/" +  String(node["movieLength"] - 1));
++							}
++							if (canvas["progressBar"]) {
++								canvas["progressBar"].slider("value", node["movieFrame"]);
++							}
++							var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
++							node["buffers"] = initBuffers(gl,array);
++							canvas["movieFrame"] = node["movieFrame"];
++						}
+ 						setTimeout(node["movieHandler"], node["movieInterval"]);
+ 					};
+ 				setTimeout(node["movieHandler"], node["movieInterval"]);
++				if (canvas["progressBar"]) {
++					canvas["movieFrame"] = 0;
++					canvas["progressBar"].slider("value", 0);
++					canvas["progressBar"].slider("option", {max: node["movieLength"]-1});
++				}
+ 			}
+ 			
+ 			//Initalize buffers
+@@ -215,4 +236,5 @@
+ 		default:
+ 			throw Error(sprintf("%s%i%s\n",'case ',datatype,' not supported'));
+ 	}
++	if (canvas.requestDrawing) draw(gl,options,canvas);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_manager.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_manager.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/plot_manager.js	(revision 20401)
+@@ -11,28 +11,33 @@
+ 	//get data to be displayed
+ 	var data=options.getfieldvalue('data');
+ 	
+-	//standard plot: initialize open Gl for each canvas, if needed: 
+-	var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
+-	canvas.css({'height':String(options.getfieldvalue('canvassize',480)+'px')});
+-	if ($('#'+options.getfieldvalue('canvasid')).length == 0) {
+-		canvas.appendTo('body');
+-	}
+-	canvas=document.getElementById(options.getfieldvalue('canvasid'));
+-	//Initialize the buffer structure when first data is drawn to mesh:
+-	var requestDrawing = false;
+-	var gl = canvas.gl;
+-	if (!canvas.hasOwnProperty("nodes")) {
+-		canvas.nodes = {};
+-		canvas.datalength = 0;
+-		requestDrawing = true;
+-		//Initialize the GL context: 
+-		gl = initWebGL(canvas,options);
+-		if (!gl) {
+-			throw Error("plotmodel error message: could not initialize open Gl!");
++	//TODO: Move into webgl.js? 
++	function initCanvas() {
++		//standard plot: initialize open Gl for each canvas, if needed: 
++		var canvas = $('<div><canvas id="'+options.getfieldvalue('canvasid')+'" width="'+options.getfieldvalue('canvassize',480)+'" height="'+options.getfieldvalue('canvassize',480)+'"></canvas></div>)')
++		canvas.css({'height':String(options.getfieldvalue('canvassize',480)+'px')});
++		if ($('#'+options.getfieldvalue('canvasid')).length == 0) {
++			canvas.appendTo('body');
+ 		}
+-		canvas.gl = gl;
++		canvas=document.getElementById(options.getfieldvalue('canvasid'));
++		//Initialize the buffer structure when first data is drawn to mesh:
++		canvas.requestDrawing = false;
++		var gl = canvas.gl;
++		if (!canvas.hasOwnProperty("nodes")) {
++			canvas.nodes = {};
++			canvas.datalength = 0;
++			canvas.requestDrawing = true;
++			//Initialize the GL context: 
++			gl = initWebGL(canvas,options);
++			if (!gl) {
++				throw Error("plotmodel error message: could not initialize open Gl!");
++			}
++			canvas.gl = gl;
++		}
++		canvas.nodes["data"+String(++canvas.datalength)] = Node(gl,options);
++		return canvas;
+ 	}
+-	canvas.nodes["data"+String(++canvas.datalength)] = Node(gl,options);
++	var canvas = initCanvas();
+ 
+ 	//figure out if this is a special plot
+ 	if (typeof data === 'string'){
+@@ -41,111 +46,111 @@
+ 
+ 			case 'boundaries':
+ 				plot_boundaries(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'BC':
+ 				plot_BC(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'edges':
+ 				plot_edges(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'elementnumbering':
+ 				plot_elementnumbering(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'highlightelements':
+ 				plot_highlightelements(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'qmumean':
+ 				plot_qmumean(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'qmustddev':
+ 				plot_qmustddev(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'qmuhistnorm':
+ 				plot_qmuhistnorm(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'qmu_mass_flux_segments':
+ 				plot_qmu_mass_flux_segments(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'part_hist':
+ 				plot_parthist(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'part_hist_n':
+ 				plot_parthistn(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'part_hist_w':
+ 				plot_parthistw(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'elements_type':
+ 				plot_elementstype(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'vertexnumbering':
+ 				plot_vertexnumbering(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'highlightvertices':
+ 				plot_highlightvertices(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'basal_drag':
+ 				plot_basaldrag(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'basal_dragx':
+ 				plot_basaldrag(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'basal_dragy':
+ 				plot_basaldrag(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'driving_stress':
+ 				plot_drivingstress(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'mesh':
+ 				plot_mesh(md,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+-				break;
++				return;
+ 			case 'none':
+ 				if (!(options.exist('overlay'))){
+ 					plot_none(md,options,nlines,ncols,i);
+ 				}
+-				break;
++				return;
+ 			case 'penalties':
+ 				plot_penalties(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'partition':
+ 				plot_partition(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'referential':
+ 				plot_referential(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'riftvel':
+ 				plot_riftvel(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'riftnumbering':
+ 				plot_riftnumbering(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'rifts':
+ 				plot_rifts(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'riftrelvel':
+ 				plot_riftrelvel(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'riftpenetration':
+ 				plot_riftpenetration(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'riftfraction':
+ 				plot_riftfraction(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'sarpwr':
+ 				plot_sarpwr(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'time_dependant':
+ 				plot_vstime(md,options,nlines,ncols,i);
+-				break;
++				return;
+ 			case 'icefront':
+ 				plot_icefront(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'segments':
+ 				plot_segments(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'quiver':
+-				data=[md.initialization.vx, md.initialization.vy]; //Go ahead and try plot_unit
+-
++				plot_quiver(md,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
++				return;
+ 			case 'strainrate_tensor':
+ 			case 'strainrate':
+ 			case 'strainrate_principal':
+@@ -165,19 +170,19 @@
+ 			case 'deviatoricstress_principalaxis2':
+ 			case 'deviatoricstress_principalaxis3':
+ 				plot_tensor(md,options,subplotwidth,i,data);
+-				break;
++				return;
+ 			case 'thermaltransient_results':
+ 				plot_thermaltransient_results(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'transient_movie':
+ 				plot_transient_movie(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'transient_results':
+ 				plot_transient_results(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			case 'transient_field':
+ 				plot_transient_field(md,options,subplotwidth,i);
+-				break;
++				return;
+ 			default:
+ 				if (data in md){
+ 					data=md[data];
+@@ -217,14 +222,11 @@
+ 		plot_profile(md,data,options,nlines,ncols,i);
+ 		return;
+ 	}
+-
++	
+ 	if (typeof data !== 'string'){
+ 		//plot unit
+ 		plot_unit(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+ 	}
+ 
+ 	applyoptions(md,data,options,canvas,gl,canvas.nodes["data"+String(canvas.datalength)]);
+-	
+-	//Draw into the canvas if needed:
+-	if (requestDrawing)	draw(gl,options,canvas);
+ }
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20401)
+@@ -64,7 +64,6 @@
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["texture"] = initTexture(gl,options.getfieldvalue('image'));
+ 	node["alpha"] = options.getfieldvalue('outeralpha',1.0);
+-	node["overlay"] = false;
+ 	node["drawOrder"] = 1;
+ 	node["maskEnabled"] = options.getfieldvalue('outermask','off') == 'on';
+ 	node["maskHeight"] = options.getfieldvalue('outermaskheight',150.0);
+@@ -126,4 +125,5 @@
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, texcoords, indices];
+ 	node["buffers"] = initBuffers(gl,node["arrays"]);
++	if (canvas.requestDrawing)	draw(gl,options,canvas);
+ }
+Index: ../trunk-jpl/src/m/plot/slider.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/slider.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/slider.js	(revision 20401)
+@@ -22,10 +22,10 @@
+ 	var slidersdiv = options.getfieldvalue('slidersdiv','slidersdiv');
+ 
+ 	$('#'+slidersdiv).css({width:width});
+-	$('<div class="slider'+name+'"></div>').appendTo('#'+slidersdiv);
++	$('<div class="'+name+'-slider"></div>').appendTo('#'+slidersdiv);
+ 	$('<div class="info'+name+'">'+startmessage[0]+value.toString()+startmessage[1]+'</div>').appendTo('#'+slidersdiv);
+ 	var info=$('.info'+name);
+-	$('.slider'+name).slider({
++	$('.'+name+'-slider').slider({
+ 		range:'min',
+ 		value:value,
+ 		min:min,
+@@ -36,22 +36,21 @@
+ 		},
+ 		stop:function(event,ui){
+ 			stopSlide(event,ui,info,callback,middlemessage,endmessage,precision);
+-		},
++		}
+ 	});
+-	$('.ui-slider').css({
++	$('.'+name+'-slider.ui-slider').css({
+ 		width:'auto',
+ 		height:height,
+ 		background:color,
+ 		margin:'8px'
+ 	});
+-	$('.ui-slider-handle').css({
++	$('.'+name+'-slider .ui-slider-handle').css({
+ 		background:color,
+ 		height:parseInt(height)+8
+ 	});
+-	$('.ui-slider-range').css({
++	$('.'+name+'-slider .ui-slider-range').css({
+ 		background:color
+ 	});
+-
+ }
+ 
+ function moveSlide(event,ui,info,middlemessage,precision){
+@@ -65,3 +64,93 @@
+ 	functionvalue(val);
+ 	info.text(endmessage[0]+val.toPrecision(precision).toString()+endmessage[1]);
+ }
++
++function progress(){
++	//Convert arguments to options
++	var args = Array.prototype.slice.call(arguments);
++	var  options = new pairoptions(args.slice());
++	
++	var value = options.getfieldvalue('value',0);
++	var name = options.getfieldvalue('name','hma');
++	var min = options.getfieldvalue('min',0.6*value);
++	var max = options.getfieldvalue('max',1.4*value);
++	var width = options.getfieldvalue('width','auto');
++	var height = options.getfieldvalue('height',32);
++	var color = options.getfieldvalue('color','#bbbbbb');
++	var progressdiv = options.getfieldvalue('progressdiv','progressdiv');
++	
++	var canvas = $('#'+name)[0];
++	var progressbar = $('#'+name+'-progressbar');
++	var playbutton = $('#'+name+'-playbutton');
++	var reversebutton = $('#'+name+'-reversebutton');
++	var timelabel = $('#'+name+'-timelabel');
++
++	
++	playbutton.click(function() {
++		canvas.moviePlay = !canvas.moviePlay;
++		if (canvas.moviePlay) {
++			$("#playButton").html("&#10074&#10074");
++		}
++		else {
++			$("#playButton").html("&#9654");
++		}
++	});
++	reversebutton.click(function() {
++		canvas.movieReverse = !canvas.movieReverse;
++		if (canvas.movieReverse) {
++			reversebutton.html("&#9664&#9664");
++		}
++		else {
++			reversebutton.html("&#9654&#9654");
++		}
++	});
++	canvas.timeLabel = timelabel;
++	
++	$('#'+progressdiv).css({width:width});
++	$('<div class="'+name+'-progressbar"></div>').prependTo('#'+progressdiv);
++	$('.'+name+'-progressbar').slider({
++		range:'min',
++		value:0,
++		min:0,
++		max:1,
++		step:1,
++		start:function(event,ui){
++			startProgress(event,ui,canvas);
++		},
++		slide:function(event,ui){
++			moveProgress(event,ui,canvas);
++		},
++		stop:function(event,ui){
++			stopProgress(event,ui,canvas);
++		}
++	});
++	$('.'+name+'-progressbar.ui-slider').css({
++		width:'auto',
++		height:height,
++		background:color,
++		margin:'8px'
++	});
++	$('.'+name+'-progressbar .ui-slider-handle').css({
++		background:color,
++		height:parseInt(height)+8
++	});
++	$('.'+name+'-progressbar .ui-slider-range').css({
++		background:'red'
++	});
++	
++	canvas.progressBar = $('.'+name+'-progressbar');
++}
++
++function startProgress(event,ui,canvas){
++	canvas.movieFrame = ui.value;
++	canvas.movieIncrement = false;
++}
++
++function moveProgress(event,ui,canvas){
++	canvas.movieFrame = ui.value;
++}
++
++function stopProgress(event,ui,canvas){
++	canvas.movieFrame = ui.value;
++	canvas.movieIncrement = true;
++}
+\ No newline at end of file
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20401)
+@@ -61,7 +61,6 @@
+ 	node["translation"] = [(xmin + xmax) / (-2 / scale), (ymin + ymax) / (-2 / scale), (zmin + zmax) / (2 / scale)];
+ 	node["modelMatrix"] = recalculateModelMatrix(node);
+ 	node["drawMode"] = gl.LINES;
+-	node["overlay"] = false;
+ 	node["drawOrder"] = 0;
+ 	node["maskEnabled"] = options.exist('mask');
+ 	node["maskHeight"] = options.getfieldvalue('maskheight',150.0)*options.getfieldvalue('heightscale',1);
+@@ -108,4 +107,5 @@
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, colors, indices];
+ 	node["buffers"] = initBuffers(gl, node["arrays"]);
++	if (canvas.requestDrawing)	draw(gl,options,canvas);
+ }
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20400)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20401)
+@@ -44,6 +44,9 @@
+ 	canvas.rotation = canvas.rotationDefault;
+ 	canvas.controlsensitivity = 1;
+ 	canvas.twod = options.getfieldvalue('2d','off') == 'on';
++	canvas.moviePlay = true;
++	canvas.movieReverse = false;
++	canvas.movieIncrement = true;
+ 
+ 	if (canvas.twod) {
+ 		canvas.rotationAzimuthBounds = [0,0];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20401-20402.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20401-20402.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20401-20402.diff	(revision 20498)
@@ -0,0 +1,1251 @@
+Index: ../trunk-jpl/jenkins/linux64_murdo
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo	(revision 20402)
+@@ -1,85 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_PATH \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
+-	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+-	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-numthreads=18 \
+-	--enable-development \
+-	--enable-debugging '
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=1
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools     install.sh                
+-						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
+-						triangle      install-linux64.sh        
+-						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
+-						chaco         install.sh 
+-						python        install-2.7.3-linux64.sh    
+-						nose          install-linux64-python2.sh  
+-						blas          install-linux64.sh          
+-						lapack        install-linux64.sh          
+-						git           install.sh                  
+-						m1qn3         install.sh          
+-						numpy         install-linux64.sh          
+-						scipy         install-linux64.sh          
+-						hdf5          install.sh                  
+-						netcdf        install.sh                  
+-						netcdf-python install.sh
+-						shell2junit   install.sh"
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=8
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'exclude',[119,514,701,702,435]"
+-PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+Index: ../trunk-jpl/jenkins/linux64_murdo_python
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo_python	(revision 20402)
+@@ -1,91 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-python-dir=$ISSM_DIR/externalpackages/python/install\
+-	--with-python-numpy-dir=$ISSM_DIR/externalpackages/python/install/lib/python2.7/site-packages/numpy/core/include/numpy\
+-	--with-chaco-dir="$ISSM_DIR/externalpackages/chaco/install" \
+-	--with-dakota-dir=$ISSM_DIR/externalpackages/dakota/install \
+-	--with-boost-dir=$ISSM_DIR/externalpackages/boost/install/ \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-numthreads=18 \
+-	--enable-development \
+-	--enable-debugging '
+-
+-#MATLAB path
+-MATLAB_PATH=''
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=0
+-PYTHON_TEST=1
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools     install.sh                
+-						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
+-						triangle      install-linux64.sh        
+-						boost         install.sh                
+-						dakota        install-5.3.1-linux64.sh  
+-						chaco         install.sh 
+-						python        install-2.7.3-linux64.sh    
+-						nose          install-linux64-python2.sh  
+-						blas          install-linux64.sh          
+-						lapack        install-linux64.sh          
+-						git           install.sh                  
+-						m1qn3         install.sh          
+-						numpy         install-linux64.sh          
+-						scipy         install-linux64.sh          
+-						hdf5          install.sh                  
+-						netcdf        install.sh                  
+-						netcdf-python install.sh
+-						shell2junit   install.sh"
+-
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=8
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-PYTHON_NROPTIONS="--exclude 119 514 701 702 435"
+Index: ../trunk-jpl/jenkins/linux64_murdo_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo_ad	(revision 20402)
+@@ -1,70 +0,0 @@
+-#
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-				--prefix=$ISSM_DIR \
+-				--without-kriging \
+-				--without-kml \
+-				--without-Gia \
+-				--with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+-				--with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				--with-matlab-dir=$MATLAB_PATH \
+-				 --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install '
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=0
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools install.sh                
+-					 cmake install.sh 
+-					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
+-					 metis install-5.0.1-linux64.sh
+-					 triangle install-linux64.sh 
+-					 gsl install-linux64.sh 
+-					 adolc install.sh
+-					 shell2junit install.sh"
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=8
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'benchmark','adolc','id',[3001:3019]"
+-PYTHON_NROPTIONS=""
+Index: ../trunk-jpl/jenkins/linux64_murdo_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo_ampi	(revision 20402)
+@@ -1,81 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-				  --without-kriging \
+-				  --without-kml \
+-				  --without-Gia \
+-				  --with-gsl-dir=$ISSM_DIR/externalpackages/gsl/install \
+-				  --with-adolc-dir=$ISSM_DIR/externalpackages/adolc/install \
+-				  --with-ampi-dir=$ISSM_DIR/externalpackages/adjoinablempi/install \
+-				  --with-matlab-dir=$MATLAB_PATH \
+-				  --with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-				  --with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-				  --with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib/ -lmpich" \
+-				  --with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-				  --with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-				  --with-numthreads=18  \
+-				  --with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-				  --with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-				  --with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+-				  --enable-development \
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=0
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools install.sh 
+-					 cmake install.sh 
+-					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
+-					 metis install-5.0.1-linux64.sh
+-					 triangle install-linux64.sh 
+-					 gsl install-linux64.sh 
+-					 mercurial install.sh
+-					 adjoinablempi install.sh
+-					 adolc install-withampi.sh
+-					 shell2junit install.sh"
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=1
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=8
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'benchmark','adolc','id',[3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3119]"
+-PYTHON_NROPTIONS=""
+Index: ../trunk-jpl/jenkins/execute_shell
+===================================================================
+--- ../trunk-jpl/jenkins/execute_shell	(revision 20401)
++++ ../trunk-jpl/jenkins/execute_shell	(revision 20402)
+@@ -1,20 +0,0 @@
+-#!/bin/bash
+-
+-#some exports required
+-export ISSM_DIR="$WORKSPACE"
+-
+-#which configuration are we using?
+-case $Platform in
+-	master )
+-		configfile=linux64_murdo ;;
+-	imac-012301-gil )
+-		configfile=imac-012301-gil ;;
+-	windows )
+-		configfile=windows
+-		export PATH=/cygdrive/c/Cygwin/usr/bin:/cygdrive/c/Cygwin/bin:$PATH ;;
+-
+-esac
+-
+-#run
+-cd "$WORKSPACE"
+-source $ISSM_DIR/jenkins/jenkins.sh $ISSM_DIR/jenkins/$configfile
+Index: ../trunk-jpl/jenkins/execute_shell_ad
+===================================================================
+--- ../trunk-jpl/jenkins/execute_shell_ad	(revision 20401)
++++ ../trunk-jpl/jenkins/execute_shell_ad	(revision 20402)
+@@ -1,16 +0,0 @@
+-#!/bin/bash
+-
+-#some exports required
+-export ISSM_DIR="$WORKSPACE"
+-
+-#which configuration are we using? 
+-case $AMPI in 
+-	ampion ) 
+-		configfile=linux64_murdo_ampi ;;
+-	ampioff )
+-		configfile=linux64_murdo_ad ;;
+-esac 
+-
+-#run
+-cd "$WORKSPACE"
+-source $ISSM_DIR/jenkins/jenkins.sh $ISSM_DIR/jenkins/$configfile
+Index: ../trunk-jpl/jenkins/linux64_murdo_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo_gia	(revision 20402)
+@@ -1,75 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_PATH \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-math77-dir=$ISSM_DIR/externalpackages/math77/install \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+-	--with-gia=yes \
+-	--with-numthreads=18 \
+-	--enable-development \
+-	--enable-debugging '
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=0
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools     install.sh                
+-						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
+-						triangle      install-linux64.sh        
+-						math77        install.sh
+-						shell2junit   install.sh"
+-
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'benchmark','all','id',[2001:2100]"
+-PYTHON_NROPTIONS=""
+Index: ../trunk-jpl/jenkins/linux64_murdo_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_murdo_iceocean	(revision 20402)
+@@ -1,72 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/usr/local/matlab80/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR\
+-	--with-matlab-dir=$MATLAB_PATH \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.6/ -lgfortran" \
+-	--with-numthreads=18 \
+-	--enable-development \
+-	--enable-debugging '
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=0
+-
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools     install.sh                
+-						mpich         install-3.0-linux64.sh    
+-						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
+-						triangle      install-linux64.sh        
+-						shell2junit   install.sh"
+-
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-MATLAB_NROPTIONS="'benchmark','all','id',4001"
+-PYTHON_NROPTIONS=""
+Index: ../trunk-jpl/jenkins/imac-012301-gil
+===================================================================
+--- ../trunk-jpl/jenkins/imac-012301-gil	(revision 20401)
++++ ../trunk-jpl/jenkins/imac-012301-gil	(revision 20402)
+@@ -1,67 +0,0 @@
+-
+-#-------------------------------#
+-# 1: ISSM general configuration #
+-#-------------------------------#
+-
+-#MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2011b.app/"
+-
+-#ISSM CONFIGURATION 
+-ISSM_CONFIG='--prefix=$ISSM_DIR \
+-	--with-matlab-dir=$MATLAB_PATH \
+-	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+-	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+-	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
+-	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
+-	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+-	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+-	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-numthreads=8 \
+-	--enable-debugging \
+-	--enable-development'
+-
+-#PYTHON and MATLAB testing
+-MATLAB_TEST=1
+-PYTHON_TEST=0
+-
+-#-----------------------------------#
+-# 3: External packages installation #
+-#-----------------------------------#
+-
+-#List of external pakages to be installed and their installation scripts
+-EXTERNALPACKAGES="autotools install.sh                
+-						mpich     install-3.0-macosx64.sh    
+-						cmake     install.sh                
+-						m1qn3     install.sh    
+-						petsc     install-3.5-macosx64.sh
+-						triangle  install-macosx64.sh 
+-						shell2junit  install.sh "
+-
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+-#number of cpus used in ISSM installation and compilation (one is usually
+-#safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=8
+-
+-#number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
+-
+-#Nightly run options. The matlab routine runme.m will be called
+-#as follows: runme($MATLAB_NROPTIONS). The options must be understandable
+-#by Matlab and runme.m
+-#ex: "'id',[101 102 103]"
+-##                                                                   bamg mesh   FS                     
+-MATLAB_NROPTIONS="'exclude',[218 234 235 412 413 414 417 418 420 514 701 702 703 422 404 421 503 507 510]"
+-PYTHON_NROPTIONS=""
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20402)
+@@ -32,13 +32,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-#We have had issues with upgrading SVN versions. As such, it is nescessary to specify which SVN to use.
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -54,20 +47,10 @@
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=10
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20402)
+@@ -22,12 +22,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -42,19 +36,10 @@
+ 					 adolc install.sh
+ 					 shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=2
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20402)
+@@ -31,12 +31,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -52,19 +46,10 @@
+ 					 adolc install-withampi.sh
+ 					 shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=2
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20402)
+@@ -24,12 +24,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -44,19 +38,10 @@
+ 					 adolc install.sh
+ 					 shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=5
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20401)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20402)
+@@ -29,12 +29,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -48,19 +42,10 @@
+ 						triangle     install-macosx64.sh
+ 						shell2junit  install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=4
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20402)
+@@ -33,12 +33,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -54,19 +48,10 @@
+ 					 adolc install-withampi.sh
+ 					 shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=5
+Index: ../trunk-jpl/jenkins/windows_test
+===================================================================
+--- ../trunk-jpl/jenkins/windows_test	(revision 20401)
++++ ../trunk-jpl/jenkins/windows_test	(revision 20402)
+@@ -9,27 +9,14 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="no"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=4
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20401)
++++ ../trunk-jpl/jenkins/windows	(revision 20402)
+@@ -31,12 +31,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -48,19 +42,10 @@
+ 						triangle    install-win7.sh        
+ 						shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=5
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20402)
+@@ -28,14 +28,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-SVN='/usr/bin/svn'
+-SVNVERSION='/usr/bin/svnversion'
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -49,20 +41,10 @@
+ 						gmsh          install.sh
+ 						shell2junit   install.sh"
+ 
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=8
+Index: ../trunk-jpl/jenkins/macosx_pine-island_dakota
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20401)
++++ ../trunk-jpl/jenkins/macosx_pine-island_dakota	(revision 20402)
+@@ -28,12 +28,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -50,19 +44,10 @@
+ 						dakota       install-6.2-macosx64.sh
+ 						shell2junit  install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=4
+Index: ../trunk-jpl/jenkins/linux64_ross_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20402)
+@@ -26,12 +26,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -44,20 +38,10 @@
+ 						triangle      install-linux64.sh        
+ 						shell2junit   install.sh"
+ 
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=8
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20402)
+@@ -27,12 +27,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -49,19 +43,10 @@
+ 						gmsh          install.sh
+ 						shell2junit   install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=5
+Index: ../trunk-jpl/jenkins/windows-par
+===================================================================
+--- ../trunk-jpl/jenkins/windows-par	(revision 20401)
++++ ../trunk-jpl/jenkins/windows-par	(revision 20402)
+@@ -29,12 +29,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=0
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -46,19 +40,10 @@
+ 						triangle    install-win7.sh        
+ 						shell2junit install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=8
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 20402)
+@@ -32,12 +32,6 @@
+ MATLAB_TEST=1
+ PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -53,19 +47,10 @@
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: Test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=4
+Index: ../trunk-jpl/jenkins/macosx_pine-island
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island	(revision 20401)
++++ ../trunk-jpl/jenkins/macosx_pine-island	(revision 20402)
+@@ -38,19 +38,10 @@
+ 						triangle     install-macosx64.sh
+ 						shell2junit  install.sh"
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=4
+Index: ../trunk-jpl/jenkins/linux64_ross_test
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_test	(revision 20401)
++++ ../trunk-jpl/jenkins/linux64_ross_test	(revision 20402)
+@@ -32,12 +32,6 @@
+ #MATLAB_TEST=1
+ #PYTHON_TEST=1
+ 
+-#execution path used for parallel runs
+-EXECUTION_PATH=$ISSM_DIR/execution
+-
+-#repo:
+-REPOSITORY="https://issm.ess.uci.edu/svn/issm/issm/trunk-jpl"
+-
+ #-----------------------------------#
+ # 3: External packages installation #
+ #-----------------------------------#
+@@ -53,20 +47,10 @@
+ 						m1qn3         install.sh          
+ 						shell2junit   install.sh"
+ 
++#-----------------#
++# 4: test options #
++#-----------------#
+ 
+-#---------------------#
+-# 4: ISSM Compilation #
+-#---------------------#
+-
+-#ISSM_COMPILATION can have 2 values:
+-# - "yes" compile ISSM
+-# - "no"  do not compile ISSM
+-#ISSM_COMPILATION="yes"
+-
+-#------------------------#
+-# 5: Nightly run options #
+-#------------------------#
+-
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+ NUMCPUS_INSTALL=6
Index: /issm/oecreview/Archive/19101-20495/ISSM-20402-20403.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20402-20403.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20402-20403.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20402)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20403)
+@@ -280,7 +280,6 @@
+ 	if test "x$HAVE_MATLAB" = "xyes"; then
+ 
+ 		AC_DEFINE([_HAVE_MATLAB_],[1],[with matlab in ISSM src])
+-  		MATLABINCL="-I$MATLAB_ROOT/extern/include/"
+ 		
+ 		dnl 4. get MEXLIB MEXLINK and MEXEXT (experimental) except for windows
+ 		AC_MSG_CHECKING([matlab's mex compilation flags])
+@@ -298,10 +297,12 @@
+   				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+                MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
++  					MATLABINCL="-I`cygpath -m $MATLAB_ROOT/extern/include/`"
+ 					MEXEXT=".mexw64"
+   				fi
+   			;;
+ 		   *)
++           MATLABINCL="-I$MATLAB_ROOT/extern/include/"
+            MEXLINK=$($MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS     | sed -e "s/         LDFLAGS            = //g")
+ 			  MEXLIB=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS     | sed -e "s/         CXXLIBS            = //g")
+ 		     MEXEXT=$( $MATLAB_ROOT/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
Index: /issm/oecreview/Archive/19101-20495/ISSM-20403-20404.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20403-20404.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20403-20404.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20403)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20404)
+@@ -42,6 +42,7 @@
+ 	echo "Current  revision number: $SVN_CURRENT"
+ 
+ 	#Get changes from jenkins itself (svn requires credentials)
++	rm -rf changes
+ 	wget http://ross.ics.uci.edu:8080/job/$JOB_NAME/$BUILD_NUMBER/changes > /dev/null 2>&1
+ 
+ 	#Process html page and get the list of files that has changed (tricky...)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20404-20405.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20404-20405.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20404-20405.diff	(revision 20498)
@@ -0,0 +1,58 @@
+Index: ../trunk-jpl/src/c/shared/Numerics/constants.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Numerics/constants.h	(revision 20404)
++++ ../trunk-jpl/src/c/shared/Numerics/constants.h	(revision 20405)
+@@ -16,24 +16,21 @@
+ #define NDOF3 3
+ #define NDOF4 4
+ 
+-#define DIM2 2
+-#define DIM3 3
++// /*Windows specific typefefs: */
++// #ifdef _INTEL_WIN_
++// 
++// #ifndef NAN
++// //For reference, for Intel compile on win64
++// //#define NAN 0.0/0.0 
++// #define NAN (INFINITY-INFINITY)
++// #endif
++// 
++// #ifndef INFINITY
++// //For reference, for Intel compile on win64
++// //#define INFINITY 1.0/0.0
++// #define INFINITY (DBL_MAX+DBL_MAX)
++// #endif
++// 
++// #endif /*_INTEL_WIN_*/
+ 
+-/*Windows specific typefefs: */
+-#ifdef _INTEL_WIN_
+-
+-#ifndef NAN
+-//For reference, for Intel compile on win64
+-//#define NAN 0.0/0.0 
+-#define NAN (INFINITY-INFINITY)
+-#endif
+-
+-#ifndef INFINITY
+-//For reference, for Intel compile on win64
+-//#define INFINITY 1.0/0.0
+-#define INFINITY (DBL_MAX+DBL_MAX)
+-#endif
+-
+-#endif /*_INTEL_WIN_*/
+-
+ #endif /*_ISSM_CONSTANTS_H_*/
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20404)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20405)
+@@ -267,7 +267,7 @@
+ #}}}
+ #DAKOTA sources  {{{
+ if DAKOTA
+-issm_sources +=       ./classes/Dakota/IssmDirectApplicInterface.h\
++issm_sources +=  ./classes/Dakota/IssmDirectApplicInterface.h\
+ 					  ./classes/Dakota/IssmParallelDirectApplicInterface.cpp\
+ 					  ./modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp\
+ 					  ./modules/InputUpdateFromVectorDakotax/InputUpdateFromVectorDakotax.cpp\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20405-20406.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20405-20406.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20405-20406.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20405)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20406)
+@@ -296,7 +296,7 @@
+ 					MEXEXT=".mexw64"
+   				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
+   					MATLABINCL="-I`cygpath -m $MATLAB_ROOT/extern/include/`"
+ 					MEXEXT=".mexw64"
+   				fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-20406-20407.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20406-20407.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20406-20407.diff	(revision 20498)
@@ -0,0 +1,224 @@
+Index: ../trunk-jpl/src/m/classes/thermal.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/thermal.m	(revision 20406)
++++ ../trunk-jpl/src/m/classes/thermal.m	(revision 20407)
+@@ -74,11 +74,17 @@
+ 			if (~ismember(ThermalAnalysisEnum(),analyses) & ~ismember(EnthalpyAnalysisEnum(),analyses)) | (solution==TransientSolutionEnum() & md.transient.isthermal==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 1 2]);
+-			md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1,'>=',0);
+ 			if (ismember(EnthalpyAnalysisEnum(),analyses) & md.thermal.isenthalpy & dimension(md.mesh)==3),
+-				pos=find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN);
++
++				%Make sure the spc are less than melting point
++				TEMP=md.thermal.spctemperature(1:md.mesh.numberofvertices,:);
+ 				replicate=repmat(md.geometry.surface-md.mesh.z,1,size(md.thermal.spctemperature,2));
+-				md = checkfield(md,'fieldname','thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<=',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos)+10^-5,'message','spctemperature should be less or equal than the adjusted melting point');
++				pos=find(~isnan(TEMP));
++				md = checkfield(md,'fieldname','thermal.spctemperature','field',TEMP(pos)',...
++					'<=',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos)+10^-5,...
++					'message','spctemperature should be less or equal than the adjusted melting point');
++
+ 				md = checkfield(md,'fieldname','thermal.isenthalpy','numel',[1],'values',[0 1]);
+ 				md = checkfield(md,'fieldname','thermal.isdynamicbasalspc','numel', [1],'values',[0 1]);
+ 				if(md.thermal.isenthalpy)
+Index: ../trunk-jpl/src/m/classes/stressbalance.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/stressbalance.m	(revision 20406)
++++ ../trunk-jpl/src/m/classes/stressbalance.m	(revision 20407)
+@@ -106,7 +106,6 @@
+ 
+ 			%singular solution
+ 			if ((~(any(~isnan(md.stressbalance.spcvx)) | any(~isnan(md.stressbalance.spcvy)))) & ~any(md.mask.groundedice_levelset>0)),
+-				md = checkmessage(md,['model is not well posed (singular). You need at least one node with fixed velocity!']);
+ 				disp(sprintf('\n !!! Warning: no spc applied, model might not be well posed if no basal friction is applied, check for solution crash\n'));
+ 			end
+ 			%CHECK THAT EACH LINES CONTAINS ONLY NAN VALUES OR NO NAN VALUES
+Index: ../trunk-jpl/src/m/classes/SMBgemb.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 20406)
++++ ../trunk-jpl/src/m/classes/SMBgemb.m	(revision 20407)
+@@ -140,60 +140,60 @@
+ 		self.K = 7;
+ 
+ 		end % }}}
+-function md = checkconsistency(self,md,solution,analyses) % {{{
++		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 
+ 
+-		md = checkfield(md,'fieldname','smb.isgraingrowth','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isalbedo','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isshortwave','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isthermal','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isaccumulation','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.ismelt','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isdensification','values',[0 1]);
+-		md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]);
+-		
+-		md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<',45); %max 500 km/h
+-		md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1400);
+-		md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'Inf',1,'>=',0);
+-		md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',100);
+-		md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1,'Inf',1);
+-		
+-		md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
+-		md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0); 
+-		md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
+-		md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
+-		
+-		md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[1,2,3,4]);
+-		md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]);
+-		md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5]);
+-		
+-		md = checkfield(md,'fieldname','smb.zTop','NaN',1,'Inf',1,'>=',0);
+-		md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'Inf',1,'>',0);
+-		md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'Inf',1,'>',0);
+-		md = checkfield(md,'fieldname','smb.zY','NaN',1,'Inf',1,'>=',1);
+-		md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365); %10 years max 
+-		md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'>=',0,'<=',1);
+-		
+-		switch self.aIdx,
+-		case {1 2}
+-			md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'Inf',1,'>=',.64,'<=',.89);
+-			md = checkfield(md,'fieldname','smb.aIce','NaN',1,'Inf',1,'>=',.27,'<=',.58);
+-		case 3
+-			md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'Inf',1,'>=',0,'<=',1);
+-		case 4
+-			md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'Inf',1,'>=',15,'<=',21.9);
+-			md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'Inf',1,'>=',30,'<=',30);
+-			md = checkfield(md,'fieldname','smb.K','NaN',1,'Inf',1,'>=',7,'<=',7);
+-		end
+-		
+-		%check zTop is < local thickness:
+-		he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
+-		if any(he<self.zTop),
+-			error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
+-		end
+-		md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++			md = checkfield(md,'fieldname','smb.isgraingrowth','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isalbedo','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isshortwave','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isthermal','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isaccumulation','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.ismelt','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isdensification','values',[0 1]);
++			md = checkfield(md,'fieldname','smb.isturbulentflux','values',[0 1]);
+ 
++			md = checkfield(md,'fieldname','smb.Ta','timeseries',1,'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
++			md = checkfield(md,'fieldname','smb.V','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<',45); %max 500 km/h
++			md = checkfield(md,'fieldname','smb.dswrf','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',1400);
++			md = checkfield(md,'fieldname','smb.dlwrf','timeseries',1,'NaN',1,'Inf',1,'>=',0);
++			md = checkfield(md,'fieldname','smb.P','timeseries',1,'NaN',1,'Inf',1,'>=',0,'<=',100);
++			md = checkfield(md,'fieldname','smb.eAir','timeseries',1,'NaN',1,'Inf',1);
++
++			md = checkfield(md,'fieldname','smb.Tmean','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>',273-60,'<',273+60); %60 celsius max value
++			md = checkfield(md,'fieldname','smb.C','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0); 
++			md = checkfield(md,'fieldname','smb.Tz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
++			md = checkfield(md,'fieldname','smb.Vz','size',[md.mesh.numberofelements 1],'NaN',1,'Inf',1,'>=',0,'<=',5000); 
++
++			md = checkfield(md,'fieldname','smb.aIdx','NaN',1,'Inf',1,'values',[1,2,3,4]);
++			md = checkfield(md,'fieldname','smb.swIdx','NaN',1,'Inf',1,'values',[0,1]);
++			md = checkfield(md,'fieldname','smb.denIdx','NaN',1,'Inf',1,'values',[1,2,3,4,5]);
++
++			md = checkfield(md,'fieldname','smb.zTop','NaN',1,'Inf',1,'>=',0);
++			md = checkfield(md,'fieldname','smb.dzTop','NaN',1,'Inf',1,'>',0);
++			md = checkfield(md,'fieldname','smb.dzMin','NaN',1,'Inf',1,'>',0);
++			md = checkfield(md,'fieldname','smb.zY','NaN',1,'Inf',1,'>=',1);
++			md = checkfield(md,'fieldname','smb.outputFreq','NaN',1,'Inf',1,'>',0,'<',10*365); %10 years max 
++			md = checkfield(md,'fieldname','smb.InitDensityScaling','NaN',1,'Inf',1,'>=',0,'<=',1);
++
++			switch self.aIdx,
++				case {1 2}
++					md = checkfield(md,'fieldname','smb.aSnow','NaN',1,'Inf',1,'>=',.64,'<=',.89);
++					md = checkfield(md,'fieldname','smb.aIce','NaN',1,'Inf',1,'>=',.27,'<=',.58);
++				case 3
++					md = checkfield(md,'fieldname','smb.cldFrac','NaN',1,'Inf',1,'>=',0,'<=',1);
++				case 4
++					md = checkfield(md,'fieldname','smb.t0wet','NaN',1,'Inf',1,'>=',15,'<=',21.9);
++					md = checkfield(md,'fieldname','smb.t0dry','NaN',1,'Inf',1,'>=',30,'<=',30);
++					md = checkfield(md,'fieldname','smb.K','NaN',1,'Inf',1,'>=',7,'<=',7);
++			end
++
++			%check zTop is < local thickness:
++			he=sum(md.geometry.thickness(md.mesh.elements),2)/size(md.mesh.elements,2);
++			if any(he<self.zTop),
++				error('SMBgemb consistency check error: zTop should be smaller than local ice thickness');
++			end
++			md = checkfield(md,'fieldname','smb.requested_outputs','stringrow',1);
++
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			
+@@ -272,37 +272,37 @@
+ 			WriteData(fid,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
+ 			WriteData(fid,'object',self,'class','smb','fieldname','isgraingrowth','format','Boolean');
+ 			
+-			WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',2,'scale',1,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Ta','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','V','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dswrf','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','dlwrf','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','P','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','eAir','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
++			WriteData(fid,'object',self,'class','smb','fieldname','pAir','format','DoubleMat','mattype',2,'timeserieslength',md.mesh.numberofelements+1);
+ 			
+-			WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','C','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',2,'scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',2,'scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','Tmean','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','C','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','Tz','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','Vz','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','zTop','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzTop','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','dzMin','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','zY','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMax','format','DoubleMat','mattype',2);
++			WriteData(fid,'object',self,'class','smb','fieldname','zMin','format','DoubleMat','mattype',2);
+ 		
+-			WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','aIdx','format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','swIdx','format','Integer');
++			WriteData(fid,'object',self,'class','smb','fieldname','denIdx','format','Integer');
+ 			WriteData(fid,'object',self,'class','smb','fieldname','InitDensityScaling','format','Double');
+ 
+-			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','aIce','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','cldFrac','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','t0wet','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','t0dry','format','Double','scale',1);
+-			WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double','scale',1);
++			WriteData(fid,'object',self,'class','smb','fieldname','outputFreq','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','aSnow','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','aIce','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','cldFrac','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','t0wet','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','t0dry','format','Double');
++			WriteData(fid,'object',self,'class','smb','fieldname','K','format','Double');
+ 
+ 			%figure out dt from forcings: 
+ 			time=self.Ta(end,:); %assume all forcings are on the same time step
+@@ -320,4 +320,4 @@
+ 			WriteData(fid,'data',outputs,'enum',SmbRequestedOutputsEnum,'format','StringArray');
+ 		end % }}}
+ 	end
+-end		
++end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20407-20408.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20407-20408.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20407-20408.diff	(revision 20498)
@@ -0,0 +1,57 @@
+Index: ../trunk-jpl/test/NightlyRun/test2002.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20407)
++++ ../trunk-jpl/test/NightlyRun/test2002.py	(revision 20408)
+@@ -73,21 +73,18 @@
+ #}}}
+ 
+ #eustatic run: 
+-md.slr.eustatic=1
+ md.slr.rigid=0
+ md.slr.elastic=0
+ md=solve(md,SealevelriseSolutionEnum())
+ Seustatic=md.results.SealevelriseSolution.Sealevel;
+ 
+ #eustatic + rigid run: 
+-md.slr.eustatic=1
+ md.slr.rigid=1
+ md.slr.elastic=0
+ md=solve(md,SealevelriseSolutionEnum())
+ Srigid=md.results.SealevelriseSolution.Sealevel;
+ 
+ #eustatic + rigid + elastic run: 
+-md.slr.eustatic=1
+ md.slr.rigid=1
+ md.slr.elastic=1
+ md=solve(md,SealevelriseSolutionEnum())
+Index: ../trunk-jpl/test/NightlyRun/test2002.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20407)
++++ ../trunk-jpl/test/NightlyRun/test2002.m	(revision 20408)
+@@ -65,22 +65,22 @@
+ 	%}}}
+ 
+ 	%eustatic run: 
+-	md.slr.eustatic=1; md.slr.rigid=0; md.slr.elastic=0;
++	 md.slr.rigid=0; md.slr.elastic=0;
+ 	md=solve(md,SealevelriseSolutionEnum);
+ 	Seustatic=md.results.SealevelriseSolution.Sealevel;
+ 	
+ 	%eustatic + rigid run: 
+-	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=0;
++	md.slr.rigid=1; md.slr.elastic=0;
+ 	md=solve(md,SealevelriseSolutionEnum);
+ 	Srigid=md.results.SealevelriseSolution.Sealevel;
+ 	
+ 	%eustatic + rigid + elastic run: 
+-	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1;
++	md.slr.rigid=1; md.slr.elastic=1;
+ 	md=solve(md,SealevelriseSolutionEnum);
+ 	Selastic=md.results.SealevelriseSolution.Sealevel;
+ 	
+ 	%eustatic + rigid + elastic + rotation run: 
+-	md.slr.eustatic=1; md.slr.rigid=1; md.slr.elastic=1; md.slr.rotation=1;
++	md.slr.rigid=1; md.slr.elastic=1; md.slr.rotation=1;
+ 	md=solve(md,SealevelriseSolutionEnum);
+ 	Srotation=md.results.SealevelriseSolution.Sealevel;
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20408-20409.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20408-20409.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20408-20409.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20408)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20409)
+@@ -274,11 +274,11 @@
+ #Launch all tests on different cpus {{{
+ PYTHON_START_TIME=$(timer);
+ export PYTHONSTARTUP=$ISSM_DIR/src/m/dev/devpath.py
++export PYTHONUNBUFFERED=1 #we don't want python to buffer otherwise issm.exe output is not captured
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+-	#./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS
+ 	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log &
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
Index: /issm/oecreview/Archive/19101-20495/ISSM-20409-20410.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20409-20410.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20409-20410.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20409)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20410)
+@@ -279,7 +279,7 @@
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+-	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log &
++	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS | tee $ISSM_DIR/nightlylog/python_log$i.log &
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
+@@ -296,7 +296,6 @@
+ for (( i=1;i<=$NUMCPUS_RUN;i++ ))
+ do
+ 	echo "This is the concatenation phase for rank: python_log$i.log"
+-	#cat python_log$i.log
+ 	cat python_log$i.log >> python_log.log
+ done
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20410-20411.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20410-20411.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20410-20411.diff	(revision 20498)
@@ -0,0 +1,77 @@
+Index: ../trunk-jpl/test/NightlyRun/runme.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.py	(revision 20410)
++++ ../trunk-jpl/test/NightlyRun/runme.py	(revision 20411)
+@@ -1,10 +1,11 @@
+-#! /usr/bin/env python
++#!/usr/bin/env python
+ import os
+ import glob
+ import socket
+ import numpy
+ import netCDF4
+ import sys
++import traceback
+ 
+ def runme(id=None,exclude=None,benchmark='nightly',procedure='check',output='none',rank=1,numprocs=1):
+ 	"""
+@@ -62,7 +63,7 @@
+ 		procedure='check'
+ 	# }}}
+ 	#GET output {{{
+-	if not ismember(output,['nightly','daily','none']):
++	if not ismember(output,['nightly','none']):
+ 		print "runme warning: output '%s' not supported, defaulting to test 'none'." % output
+ 		output='none'
+ 	# }}}
+@@ -198,46 +199,34 @@
+ 							print 'SUCCESS difference: %-7.2g < %7.2g test id: %i test name: %s field: %s' % \
+ 								(error_diff,tolerance,id,id_string,fieldname)
+ 
+-					except Exception as me2:
++					except Exception as message:
+ 
+ 						#something went wrong, print failure message:
++						print traceback.format_exc()
+ 						directory=os.getcwd().split('/')    #  not used?
+-						message=me2
+ 						if   strcmpi(output,'nightly'):
+ 							fid=open(os.path.join(ISSM_DIR,'nightlylog','pythonerror.log'), 'a')
+ 							fid.write('%s' % message)
+ 							fid.write('\n------------------------------------------------------------------\n')
+ 							fid.close()
+ 							print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname)
+-						elif strcmpi(output,'daily'):
+-							fid=open(os.path.join(ISSM_DIR,'dailylog','pythonerror.log'), 'a')
+-							fid.write('%s' % message)
+-							fid.write('\n------------------------------------------------------------------\n')
+-							fid.close()
+-							print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname)
+ 						else:
+ 							print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname)
+ 							raise RuntimeError(me2)
+ 
+ 				f.close()
+ 
+-		except Exception as me:
++		except Exception as message:
+ 
+ 			#something went wrong, print failure message:
++			print traceback.format_exc()
+ 			directory=os.getcwd().split('/')    #  not used?
+-			message=me
+ 			if   strcmpi(output,'nightly'):
+ 				fid=open(os.path.join(ISSM_DIR,'nightlylog','pythonerror.log'), 'a')
+ 				fid.write('%s' % message)
+ 				fid.write('\n------------------------------------------------------------------\n')
+ 				fid.close()
+ 				print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A')
+-			elif strcmpi(output,'daily'):
+-				fid=open(os.path.join(ISSM_DIR,'dailylog','pythonerror.log'), 'a')
+-				fid.write('%s' % message)
+-				fid.write('\n------------------------------------------------------------------\n')
+-				fid.close()
+-				print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A')
+ 			else:
+ 				print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A')
+ 				raise RuntimeError(me)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20411-20412.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20411-20412.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20411-20412.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20411)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20412)
+@@ -296,7 +296,7 @@
+ 					MEXEXT=".mexw64"
+   				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
++               MEXLINK="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
+   					MATLABINCL="-I`cygpath -m $MATLAB_ROOT/extern/include/`"
+ 					MEXEXT=".mexw64"
+   				fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-20412-20413.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20412-20413.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20412-20413.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20412)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20413)
+@@ -74,7 +74,7 @@
+ 	fi
+ 
+ 	#Do we need to recompile
+-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] ; then
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] || [ "$ISSM_RECONFIGURE" == "yes"] ; then
+ 		echo "  -- checking for recompilation... yes";
+ 		ISSM_COMPILATION="yes"
+ 	else
Index: /issm/oecreview/Archive/19101-20495/ISSM-20413-20414.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20413-20414.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20413-20414.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20413)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20414)
+@@ -287,12 +287,12 @@
+   			*cygwin*) 
+   				if  test $VENDOR = intel-win7-32; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
+ 					MEXEXT=`$MATLAB_ROOT/bin/mexext.bat`
+ 					MEXEXT=".$MEXEXT"
+   				elif test $VENDOR = intel-win7-64; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
+-               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_DIR}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
++               MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL" 
+ 					MEXEXT=".mexw64"
+   				elif test $VENDOR = MSVC-Win64 || test $VENDOR = MSVC-Win64-par; then
+   					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib" 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20414-20415.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20414-20415.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20414-20415.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20414)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20415)
+@@ -74,7 +74,7 @@
+ 	fi
+ 
+ 	#Do we need to recompile
+-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] || [ "$ISSM_RECONFIGURE" == "yes"] ; then
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] || [ "$ISSM_RECONFIGURE" == "yes" ] ; then
+ 		echo "  -- checking for recompilation... yes";
+ 		ISSM_COMPILATION="yes"
+ 	else
Index: /issm/oecreview/Archive/19101-20495/ISSM-20415-20416.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20415-20416.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20415-20416.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/test/NightlyRun/test2001.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test2001.py	(revision 20415)
++++ ../trunk-jpl/test/NightlyRun/test2001.py	(revision 20416)
+@@ -22,17 +22,16 @@
+ #Define loading history (see test2001.m for the description)
+ md.timestepping.start_time=2400000 # 2,400 kyr
+ md.timestepping.final_time=2500000 # 2,500 kyr
+-md.geometry.thickness=[\
+-	[md.geometry.thickness*0.0; 0.0],\
+-	[md.geometry.thickness/2.0; 0.1],\
+-	[md.geometry.thickness; 0.2],\
+-	[md.geometry.thickness; 1.0],\
+-	[md.geometry.thickness; md.timestepping.start_time],\
+-	]
++md.geometry.thickness=numpy.hstack((\
++		numpy.vstack((md.geometry.thickness*0.0, 0.0)),\
++		numpy.vstack((md.geometry.thickness/2.0, 0.1)),\
++		numpy.vstack((md.geometry.thickness, 0.2)),\
++		numpy.vstack((md.geometry.thickness, 1.0)),\
++		numpy.vstack((md.geometry.thickness, md.timestepping.start_time)),\
++		))
+ 
+ #Solve for GIA deflection 
+ md.cluster=generic('name',oshostname(),'np',3)
+-md.verbose=verbose('1111111')
+ md=solve(md,GiaSolutionEnum())
+ 
+ #Fields and tolerances to track changes
Index: /issm/oecreview/Archive/19101-20495/ISSM-20416-20417.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20416-20417.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20416-20417.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/test/NightlyRun/runme.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/runme.py	(revision 20416)
++++ ../trunk-jpl/test/NightlyRun/runme.py	(revision 20417)
+@@ -212,7 +212,7 @@
+ 							print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname)
+ 						else:
+ 							print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,fieldname)
+-							raise RuntimeError(me2)
++							raise RuntimeError(message)
+ 
+ 				f.close()
+ 
+@@ -229,7 +229,7 @@
+ 				print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A')
+ 			else:
+ 				print 'FAILURE difference: N/A test id: %i test name: %s field: %s' % (id,id_string,'N/A')
+-				raise RuntimeError(me)
++				raise RuntimeError(message)
+ 
+ 		print "----------------finished:%i-----------------------" % id
+ 	return
Index: /issm/oecreview/Archive/19101-20495/ISSM-20417-20418.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20417-20418.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20417-20418.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/src/c/cores/steadystate_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20417)
++++ ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20418)
+@@ -48,12 +48,15 @@
+ 	for(;;){
+ 
+ 		/* Compute first velocity, then temperature due to high sensitivity of temperature to velocity. */
++		if(VerboseSolution()) _printf0_("\n=============================================================\n");
+ 		if(VerboseSolution()) _printf0_("   computing velocity and temperature for step: " << step << "\n");
++		if(VerboseSolution()) _printf0_("=============================================================\n");
+ 
+-		if(VerboseSolution()) _printf0_("   computing new velocity\n");
++		if(VerboseSolution()) _printf0_("\n   -- computing new velocity\n");
+ 		stressbalance_core(femmodel);
+ 		GetSolutionFromInputsx(&ug,femmodel);
+ 
++		if(VerboseSolution()) _printf0_("\n   -- computing new temperature\n");
+ 		thermal_core(femmodel);
+ 		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
+ 		GetSolutionFromInputsx(&tg,femmodel);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20418-20419.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20418-20419.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20418-20419.diff	(revision 20498)
@@ -0,0 +1,14 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20418)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20419)
+@@ -67,6 +67,9 @@
+ 						 Xy2ll.la\
+ 						 Chaco.la
+ 
++if CHACO
++lib_LTLIBRARIES += Chaco.la
++endif
+ if KRIGING
+ lib_LTLIBRARIES +=  Kriging.la
+ endif
Index: /issm/oecreview/Archive/19101-20495/ISSM-20419-20420.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20419-20420.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20419-20420.diff	(revision 20498)
@@ -0,0 +1,25 @@
+Index: ../trunk-jpl/src/wrappers/matlab/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20419)
++++ ../trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 20420)
+@@ -64,8 +64,7 @@
+ 						 TriMesh.la\
+ 						 TriMeshProcessRifts.la\
+ 						 Scotch.la\
+-						 Xy2ll.la\
+-						 Chaco.la
++						 Xy2ll.la
+ 
+ if CHACO
+ lib_LTLIBRARIES += Chaco.la
+@@ -151,8 +150,10 @@
+ BamgTriangulate_la_SOURCES = ../BamgTriangulate/BamgTriangulate.cpp
+ BamgTriangulate_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(GSLLIB) $(PROJ4LIB)
+ 
++if CHACO
+ Chaco_la_SOURCES = ../Chaco/Chaco.cpp
+ Chaco_la_LIBADD = ${deps} $(MPILIB) $(CHACOLIB) $(GSLLIB) $(PROJ4LIB) $(PETSCLIB)
++endif
+ 
+ ContourToMesh_la_SOURCES = ../ContourToMesh/ContourToMesh.cpp
+ ContourToMesh_la_LIBADD = ${deps} $(MPILIB) $(PETSCLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20420-20421.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20420-20421.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20420-20421.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 20420)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 20421)
+@@ -27,7 +27,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',...
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3'};
+ field_tolerances={1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,...
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,...
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,...
+ 		1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11,1e-11};
+ field_values={...
+ 	md.results.TransientSolution(1).Vx,...
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 20420)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 20421)
+@@ -37,7 +37,7 @@
+ 		'Vx2','Vy2','Vel2','Pressure2','Thickness2','Surface2','MaskIceLevelset2','Temperature2',\
+ 		'Vx3','Vy3','Vel3','Pressure3','Thickness3','Surface3','MaskIceLevelset3','Temperature3']
+ field_tolerances=[1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,1e-12,\
+-		1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,\
++		1e-9,1e-9,1e-10,1e-10,1e-10,1e-10,1e-10,1e-9,\
+ 		1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10]
+ field_values=[\
+ 	md.results.TransientSolution[0].Vx,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20421-20422.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20421-20422.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20421-20422.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test227.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test227.py	(revision 20421)
++++ ../trunk-jpl/test/NightlyRun/test227.py	(revision 20422)
+@@ -23,7 +23,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', \
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3']
+ field_tolerances=[\
+-	1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,\
++	1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,\
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06,\
+ 	1e-08,1e-08,1e-08,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-05]
+ field_values=[\
+Index: ../trunk-jpl/test/NightlyRun/test227.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test227.m	(revision 20421)
++++ ../trunk-jpl/test/NightlyRun/test227.m	(revision 20422)
+@@ -14,7 +14,7 @@
+ 	'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2', ...
+ 	'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3'};
+ field_tolerances={...
+-	1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,...
++	1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,...
+ 	1e-09,1e-09,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-09,1e-06,...
+ 	1e-08,1e-08,1e-08,1e-08,1e-09,1e-09,1e-09,1e-09,1e-09,1e-05};
+ field_values={...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20422-20423.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20422-20423.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20422-20423.diff	(revision 20498)
@@ -0,0 +1,17 @@
+Index: ../trunk-jpl/jenkins/windows
+===================================================================
+--- ../trunk-jpl/jenkins/windows	(revision 20422)
++++ ../trunk-jpl/jenkins/windows	(revision 20423)
+@@ -48,10 +48,10 @@
+ 
+ #number of cpus used in ISSM installation and compilation (one is usually
+ #safer as some packages are very sensitive to parallel compilation)
+-NUMCPUS_INSTALL=5
++NUMCPUS_INSTALL=6
+ 
+ #number of cpus used in the nightly runs.
+-NUMCPUS_RUN=1
++NUMCPUS_RUN=2
+ 
+ #Nightly run options. The matlab routine runme.m will be called
+ #as follows: runme($MATLAB_NROPTIONS). The options must be understandable
Index: /issm/oecreview/Archive/19101-20495/ISSM-20423-20424.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20423-20424.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20423-20424.diff	(revision 20498)
@@ -0,0 +1,1250 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-cosmos.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-cosmos.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-cosmos.sh	(revision 20424)
+@@ -1,36 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-batch=1  \
+-	--ISSM_ARCH=$ISSM_ARCH \
+-	--with-debugging=no COPTFLAGS=-O3 FOPTFLAGS=-O3 \
+-	--with-blas-lapack-dir=/opt/intel/mkl/10.0.5.025/ \
+-	--with-mpi-dir=/opt/mpich/gm/intel10.1/  \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes  \
+-	--download-plapack=yes \
+-	--FFLAGS=-I/usr/include  \
+-	--with-mpi-shared=0  \
+-	--download-parmetis=yes
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-macosx64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-macosx64.sh	(revision 20424)
+@@ -1,35 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-  --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-  --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-  --PETSC_ARCH="macosx-gnu" \
+-  --with-mpi-dir="$ISSM_DIR/externalpackages/mpich/install" \
+-  --with-debugging=0 \
+-  --with-shared-libraries=1 \
+-  --download-mumps=yes \
+-  --download-scalapack=yes \
+-  --download-blacs=yes \
+-  --download-blas=yes \
+-  --download-plapack=no  \
+-  --download-parmetis=yes \
+-  --download-f-blas-lapack=yes 
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.3-walgreen.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.3-walgreen.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.3-walgreen.sh	(revision 20424)
+@@ -1,36 +0,0 @@
+-#!/bin/bash
+-
+-#Some cleanup
+-rm -rf install petsc-3.3-p6 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.3-p6.tar.gz' 'petsc-3.3-p6.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.3-p6.tar.gz
+-mv petsc-3.3-p6/* src/
+-rm -rf petsc-3.3-p6
+-
+-#configure
+-cd src
+-./config/configure.py \
+- --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+- --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+- --with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+- --with-debugging=0 \
+- --with-shared-libraries=1 \
+- --with-blas-lapack-dir=/opt/intel/mkl/10.0.1.014/ \
+- --download-mumps=yes \
+- --download-blacs=yes  \
+- --download-blas=yes \
+- --download-f-blas-lapack=yes \
+- --download-scalapack=yes \
+- --download-parmetis=yes \
+- --download-metis=yes \
+- --download-superlu=yes \
+- #--download-hypre=yes 
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.3-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.3-macosx64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.3-macosx64.sh	(revision 20424)
+@@ -1,37 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.3-p6 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.3-p6.tar.gz' 'petsc-3.3-p6.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.3-p6.tar.gz
+-mv petsc-3.3-p6/* src/
+-rm -rf petsc-3.3-p6
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+-	--PETSC_ARCH="macosx-gnu" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-f-blas-lapack=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--download-metis=yes \
+-	--with-debugging=yes
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.3-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.3-linux64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.3-linux64.sh	(revision 20424)
+@@ -1,37 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.3-p6 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.3-p6.tar.gz' 'petsc-3.3-p6.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.3-p6.tar.gz
+-mv petsc-3.3-p6/* src/
+-rm -rf petsc-3.3-p6
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+-	--PETSC_ARCH=linux-gnu-amd64 \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-f-blas-lapack=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--download-metis=yes \
+-	--with-pic=1
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-win7.sh	(revision 20424)
+@@ -1,67 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
+-export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
+-
+-
+-# Version 3.1 of Petsc is really old. As such, it is likely that newer machines
+-# will not be recognized. As such, the build will fail during configuration.
+-# This can be resolved by simply updated the scripts 'config.guess' and 
+-# 'config.sub'.
+-cp ./../autotools/install/share/libtool/config/config.guess ./src/config/configarch/
+-cp ./../autotools/install/share/libtool/config/config.guess ./src/config/BuildSystem/config/packages/
+-cp ./../autotools/install/share/libtool/config/config.sub ./src/config/configarch/
+-cp ./../autotools/install/share/libtool/config/config.sub ./src/config/BuildSystem/config/packages/
+-
+-#configure
+-cd src
+-./config/configure.py  \
+-	--with-parallel-no \
+-	--prefix=$PREFIX_DIR \
+-	--PETSC_ARCH=cygwin-intel \
+-	--PETSC_DIR=$PETSC_DIR \
+-	--with-debugging=0 \
+-	--with-mpi=0 \
+-	--download-c-blas-lapack=yes \
+-	--with-cc='win32fe cl' \
+-	--with-fc=0 \
+-	--with-cxx='win32fe cl' \
+-	--with-clanguage=cxx 
+-
+-#./config/configure.py  \
+-# --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-# --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-# --PETSC_ARCH=macosx-gnu \
+-# --with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+-# --with-debugging=0 \
+-# --with-shared=0 \
+-# --download-mumps=yes \
+-# --download-scalapack=yes \
+-# --download-blacs=yes \
+-# --download-blas=yes \
+-# --download-f-blas-lapack=yes \
+-# --download-plapack=yes \
+-# --FFLAGS="-I$ISSM_DIR/externalpackages/mpich/install/include -arch i386" \
+-# --COPTFLAGS="-march=opteron -O2 -arch i386" \
+-# --FOPTFLAGS="-march=opteron -O2 -arch i386" \
+-# --CXXOPTFLAGS="-march=opteron -O2 -arch i386" \
+-# --download-parmetis=yes
+-
+-#Compile petsc and install it
+-make
+-make install
+-
+-patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh	(revision 20424)
+@@ -1,45 +0,0 @@
+-#!/bin/bash
+-
+-#Get number of cpus on current platform
+-NUMCPUS=$1;
+-
+-#version of petsc?
+-#version='2.3.2-p3';
+-version='3.1-p7'
+-#version='3.2-p3'
+-
+-#Some cleanup
+-rm -rf install petsc-$version src
+-
+-#Create src and install directories
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar 
+-tar -zxvf  petsc-$version.tar.gz
+-
+-#Move petsc to install directory or src depending on the version
+-if [[ $version != "2.3.2-p3" ]]
+-then	
+-	mv petsc-$version/* src/
+-	rm -rf petsc-$version
+-	cd src
+-else
+-	mv petsc-$version/* install/
+-	rm -rf petsc-$version
+-	cd install
+-fi
+-
+-#configure
+-../configure.sh
+-
+-#Compile petsc and install it
+-if [ -z $NUMCPUS ];
+-then
+-	make
+-else
+-	make -j $NUMCPUS
+-fi
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-pleiades.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-pleiades.sh	(revision 20424)
+@@ -1,73 +0,0 @@
+-#!/bin/bash
+-set -eu
+-#Step 1: unzip and install
+-#Step 2: After Plapack implodes
+-STEP=0
+-
+-if [ $STEP -eq 1 ]; then
+-	#Some cleanup
+-	rm -rf install petsc-3.1-p7 src
+-	mkdir install src
+-
+-	#Download from ISSM server
+-	$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-	#Untar and move petsc to install directory
+-	tar -zxvf  petsc-3.1-p7.tar.gz
+-	mv petsc-3.1-p7/* install/
+-	rm -rf petsc-3.1-p7
+-
+-	#configure
+-	cd src
+-	./config/configure.py \
+-		--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-		--with-batch=1  \
+-		--PETSC_ARCH="$ISSM_ARCH" \
+-		--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-		--with-debugging=no \
+-		--with-shared=0 \
+-		--with-blas-lapack-dir=/nasa/intel/mkl/10.0.011/ \
+-		--with-mpi-lib=/nasa/sgi/mpt/1.25/lib/libmpi.so \
+-		--with-mpi-include=/nasa/sgi/mpt/1.25/include  \
+-		--known-mpi-shared=0 \
+-		--download-mumps=yes \
+-		--download-scalapack=yes \
+-		--download-blacs=yes  \
+-		--download-plapack=yes \
+-		--FFLAGS=-I/usr/include \
+-		--with-cc=icc \
+-		--with-fc=ifort \
+-		--COPTFLAGS=" -O3 -xS" \
+-		--FOPTFLAGS=" -O3 -xS" \
+-		--CXXOPTFLAGS=" -O3 -xS" \
+-		--with-pic=1
+-	echo "== Fix Plapack compilation manually (http://issm.jpl.nasa.gov/installation/compilationtroubleshooting/petsc31/) =="
+-	echo "== Then run STEP=2 =="
+-fi
+-if [ $STEP -eq 2 ]; then
+-	cd src
+-	./config/configure.py \
+-	 --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	 --with-batch=1  \
+-	 --PETSC_ARCH="$ISSM_ARCH" \
+-	 --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	 --with-debugging=no \
+-	 --with-shared=0 \
+-	 --with-blas-lapack-dir=/nasa/intel/mkl/10.0.011/ \
+-	 --with-mpi-lib=/nasa/sgi/mpt/1.25/lib/libmpi.so \
+-	 --with-mpi-include=/nasa/sgi/mpt/1.25/include  \
+-	 --known-mpi-shared=0 \
+-	 --download-mumps=yes \
+-	 --download-scalapack=yes \
+-	 --download-blacs=yes  \
+-	 --with-plapack-dir=$ISSM_DIR/externalpackages/petsc/src/$ISSM_ARCH \
+-	 --download-parmetis=yes \
+-	 --FFLAGS=-I/usr/include \
+-	 --with-cc=icc \
+-	 --with-fc=ifort \
+-	 --COPTFLAGS=" -O3 -xS" \
+-	 --FOPTFLAGS=" -O3 -xS" \
+-	 --CXXOPTFLAGS=" -O3 -xS" \
+-	 --with-pic=1
+-	echo "== Follow PETSc's instructions"
+-fi
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-pleiades.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-pleiades.sh	(revision 20424)
+@@ -1,88 +0,0 @@
+-#!/bin/bash
+-set -eu
+-#Step 1: unzip and install
+-#Step 2: After Plapack implodes
+-STEP=2
+-
+-if [ $STEP -eq 1 ]; then
+-	#Some cleanup
+-	rm -rf install petsc-3.2-p3 src
+-	mkdir install src
+-
+-	#Download from ISSM server
+-	$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-	#Untar and move petsc to install directory
+-	tar -zxvf  petsc-3.2-p3.tar.gz
+-	mv petsc-3.2-p3/* src/
+-	rm -rf petsc-3.2-p3
+-
+-	#configure
+-	cd src
+-	./config/configure.py \
+-		--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-		--with-batch=1  \
+-		--PETSC_ARCH="$ISSM_ARCH" \
+-		--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-		--with-debugging=0 \
+-		--with-shared-libraries=1 \
+-		--with-blas-lapack-dir=/nasa/intel/mkl/10.0.011/ \
+-		--known-mpi-shared-libraries=1 \
+-		--with-mpi-lib=/nasa/sgi/mpt/1.25/lib/libmpi.so \
+-		--with-mpi-include=/nasa/sgi/mpt/1.25/include  \
+-		--download-mumps=yes \
+-		--download-scalapack=yes \
+-		--download-blacs=yes  \
+-		--download-plapack=yes \
+-		--FFLAGS=-I/usr/include \
+-		--with-cc=icc \
+-		--with-fc=ifort \
+-		--COPTFLAGS=" -O3 -xS" \
+-		--FOPTFLAGS=" -O3 -xS" \
+-		--CXXOPTFLAGS=" -O3 -xS" \
+-		--with-pic=1
+-	echo "== Fix Plapack compilation manually (http://issm.jpl.nasa.gov/documentation/faq/petsc32/) =="
+-	echo "== Then run STEP=2 =="
+-fi
+-if [ $STEP -eq 2 ]; then
+-	cd src
+-	./config/configure.py \
+-	 --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	 --with-batch=1  \
+-	 --PETSC_ARCH="$ISSM_ARCH" \
+-	 --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	 --with-debugging=0 \
+-	 --with-shared-libraries=1 \
+-	 --with-blas-lapack-dir=/nasa/intel/mkl/10.0.011/ \
+-	 --with-mpi-lib=/nasa/sgi/mpt/1.25/lib/libmpi.so \
+-	 --with-mpi-include=/nasa/sgi/mpt/1.25/include  \
+-	 --known-mpi-shared-libraries=1 \
+-	 --download-mumps=yes \
+-	 --download-scalapack=yes \
+-	 --download-blacs=yes  \
+-	 --with-plapack-dir=$ISSM_DIR/externalpackages/petsc/src/$ISSM_ARCH \
+-	 --download-parmetis=yes \
+-	 --FFLAGS=-I/usr/include \
+-	 --with-cc=icc \
+-	 --with-fc=ifort \
+-	 --COPTFLAGS=" -O3 -xS" \
+-	 --FOPTFLAGS=" -O3 -xS" \
+-	 --CXXOPTFLAGS=" -O3 -xS" \
+-	 --with-pic=1
+-	 cat > src/script.queue << EOF
+-#PBS -S /bin/bash
+-#PBS -q debug 
+-#PBS -l select=1:ncpus=1:model=har 
+-#PBS -l walltime=200 
+-#PBS -W group_list=s1010 
+-#PBS -m e 
+-. /usr/share/modules/init/bash 
+-module load comp-intel/11.1.046 
+-module load mpi/mpt.1.25 
+-module load math/intel_mkl_64_10.0.011 
+-export PATH="$PATH:." 
+-export MPI_GROUP_MAX=64 
+-mpiexec -np 1 ./conftest-linux-gnu-ia64-intel.py
+-EOF
+-	echo "== Follow PETSc's instructions"
+-fi
+Index: ../trunk-jpl/externalpackages/petsc/install-3.3-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.3-pleiades.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.3-pleiades.sh	(revision 20424)
+@@ -1,61 +0,0 @@
+-#!/bin/bash
+-
+-#Some cleanup
+-rm -rf install petsc-3.3-p6 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.3-p6.tar.gz' 'petsc-3.3-p6.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.3-p6.tar.gz
+-mv petsc-3.3-p6/* src/
+-rm -rf petsc-3.3-p6
+-
+-#configure
+-cd src
+-./config/configure.py \
+- --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+- --PETSC_ARCH="$ISSM_ARCH" \
+- --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+- --with-batch=1  \
+- --with-debugging=0 \
+- --with-shared-libraries=1 \
+- --known-mpi-shared-libraries=1 \
+- --with-mpi=1 \
+- --with-mpi-lib="/nasa/sgi/mpt/2.06rp16/lib/libmpi.so" \
+- --with-mpi-include="/nasa/sgi/mpt/2.06rp16/include" \
+- --with-blas-lapack-dir="/nasa/intel/Compiler/2013.1.117/composer_xe_2013.1.117/mkl/lib/intel64" \
+- --download-scalapack=yes \
+- --download-blacs=yes \
+- --download-mumps=yes \
+- --download-metis=yes \
+- --download-parmetis=yes \
+- --download-trilinos=yes \
+- --download-euclid=yes \
+- --download-hypre=yes \
+- --COPTFLAGS="-lmpi -O3" \
+- --FOPTFLAGS="-lmpi -O3" \
+- --CXXOPTFLAGS="-lmpi -O3"
+-
+-#prepare script to reconfigure petsc
+-cat > script.queue << EOF
+-#PBS -S /bin/bash
+-#PBS -l select=1:ncpus=1:model=wes 
+-#PBS -l walltime=200 
+-#PBS -W group_list=s1010
+-#PBS -m e 
+-
+-. /usr/share/modules/init/bash 
+-module load comp-intel/2013.1.117
+-module load mpi-sgi/mpt.2.06rp16
+-
+-export PATH="$PATH:." 
+-export MPI_GROUP_MAX=64 
+-mpiexec -np 1 ./conftest-linux-gnu-ia64-intel.py
+-EOF
+-
+-#print instructions
+-echo "== Now: cd src/ "
+-echo "== qsub -q devel script.queue "
+-echo "== Then run reconfigure script generated by PETSc and follow instructions"
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-discover-intel13.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-discover-intel13.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-discover-intel13.sh	(revision 20424)
+@@ -1,39 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--PETSC_ARCH="$ISSM_ARCH" \
+-	--with-batch=1 \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--known-mpi-shared-libraries=1 \
+-	--with-mpi-dir=/usr/local/intel/mpi/4.0.3.008/lib64/ \
+-	--with-blas-lapack-dir=/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/ \
+-	--with-scalapack-lib=/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_scalapack_lp64.a \
+-	--with-scalapack-include=/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/include/ \
+-	--with-blacs-lib=/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a \
+-	--with-blacs-include=/usr/local/intel/Composer/composer_xe_2013.3.163/mkl/include/ \
+-	--download-mumps=yes \
+-	--download-scalapack=no \
+-	--download-blacs=no \
+-	--download-plapack=no \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-echo "== Follow PETSc's instructions"
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-hoffman2.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-hoffman2.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-hoffman2.sh	(revision 20424)
+@@ -1,35 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-mpi=1 \
+-	--PETSC_ARCH=linux-gnu-amd64 \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-f-blas-lapack=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-greenplanet.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-greenplanet.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-greenplanet.sh	(revision 20424)
+@@ -1,35 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--PETSC_ARCH="$ISSM_ARCH" \
+-	--with-batch=1 \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--known-mpi-shared-libraries=1 \
+-	--with-mpi-dir=/sopt/mpi/openmpi-1.5.4_psm/intel/ \
+-	--with-blas-lapack-dir=/opt/intel/mkl/10.2.4.032/ \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-echo "== Follow PETSc's instructions"
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-ogive.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-ogive.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-ogive.sh	(revision 20424)
+@@ -1,40 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+-	--PETSC_ARCH=macosx-gnu \
+-	--with-fc=/usr/local/bin/gfortran \
+-	--with-debugging=0 \
+-	--with-shared=0 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-plapack=yes  \
+-	--download-parmetis=yes \
+-	--download-f-blas-lapack=yes \
+-	--COPTFLAGS="-march=opteron -O2 " \
+-	--FOPTFLAGS="-march=opteron -O2 " \
+-	--CXXOPTFLAGS="-march=opteron -O2 " \
+-	--FFLAGS="-I$ISSM_DIR/externalpackages/mpich/install/include -L$ISSM_DIR/externalpackages/mpich/install/lib -L/usr/local/bin -lmpich -lpmpich -lgfortran " 
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-linux64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-linux64.sh	(revision 20424)
+@@ -1,37 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-mpi-dir="$ISSM_DIR/externalpackages/mpich/install" \
+-	--with-clanguage=C++ \
+-	--PETSC_ARCH=linux-gnu-amd64 \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-f-blas-lapack=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-win7-parallel.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-win7-parallel.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-win7-parallel.sh	(revision 20424)
+@@ -1,35 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-cd src
+-./config/configure.py  \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_ARCH=cygwin-intel \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--download-c-blas-lapack=yes \
+-	--with-cc='win32fe cl' \
+-	--with-fc=0 \
+-	--with-cxx='win32fe cl' \
+-	--with-clanguage=cxx  \
+-	--with-mpi-include="/cygdrive/c/MPICH2/include" \
+-	--with-mpi-lib="/cygdrive/c/MPICH2/lib/mpi.lib"
+-
+-
+-#Compile petsc and install it
+-make
+-make install
+-
+-patch ../install/include/petscfix.h ../configs/3.1/win7/petscfix.h.patch
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-discover.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-discover.sh	(revision 20424)
+@@ -1,39 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--PETSC_ARCH="$ISSM_ARCH" \
+-	--with-batch=1 \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--known-mpi-shared-libraries=1 \
+-	--with-mpi-dir=/usr/local/intel/mpi/4.0.3.008/lib64/ \
+-	--with-blas-lapack-dir=/usr/local/intel/mkl/10.1.2.024/lib/64/ \
+-	--with-scalapack-lib=/usr/local/intel/mkl/10.1.2.024/lib/64/libmkl_scalapack_lp64.a \
+-	--with-scalapack-include=/usr/local/intel/mkl/10.1.2.024/include/ \
+-	--with-blacs-lib=/usr/local/intel/mkl/10.1.2.024/lib/64/libmkl_blacs_intelmpi_lp64.a \
+-	--with-blacs-include=/usr/local/intel/mkl/10.1.2.024/include/ \
+-	--download-mumps=yes \
+-	--download-scalapack=no \
+-	--download-blacs=no \
+-	--download-plapack=no \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-echo "== Follow PETSc's instructions"
+Index: ../trunk-jpl/externalpackages/petsc/README
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/README	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/README	(revision 20424)
+@@ -1,27 +0,0 @@
+-petsc carries a version of Blas that uses int arguments (int32) type, while 
+-Matlab carries a version of Blas that uses int64_t arguments (hidden behing 
+-a ptrdiff_t type (check MATLAB_DIR/extern/include/blas.h). 
+-In serial mode, Matlab discards the Petsc Blas library (even when it was statically 
+-linked against the mex files!) symbols, and replaces them with its version. 
+-Because the prototypes conflict (32 vs 64), crashes ensue whenever using a Blas 
+-routine (for ex: VecAXPY calls BLASaxpy_, which calls daxpy). 
+-
+-To avoid that, we have to recompile Petsc with a 64 bit prototype. Luckily, 
+-Petsc did a good job, and hid the Blas int type into the typedef BLASint (check
+-in include/petsc.h). Just typedef it back from int to int64_t, and recompile, 
+-and that does the trick. Don't forget the #include "inttypes.h" at the top of petsc.h,
+-otherwise, crashes during the compile.
+-
+-Same problem may arise for using the lapack library.
+-
+-Now, Petsc pretends it can compile in --with-64-bit-pointers. That sets PetscInt to long long 
+-The only problem, it says MUMPS, Scalapack, blacs, Plapack don't support 64 bit indexing. 
+-Mumps looks like it might. 
+-
+-If compiling --with-64-bit-pointers,  all prototypes in Petsc ask for PetscInt = long long 
+-which Issm does not know. Can't compile with this option. Unless we switch to 64 bit integers 
+-in ISSM. Started to put this framework into place: we now have IssmInt, IssmDouble, IssmChar 
+-in types.h. They rely on ISSM_USE_64_BIT_INDEXING symbol, define in config.h, instantiated by 
+-autotools with --with-64bit-pointers=1 in configure.sh
+-
+-Recomendation: wait until MUMPS implements 64 bit indexing. 
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-altix64-castor.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-altix64-castor.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-altix64-castor.sh	(revision 20424)
+@@ -1,66 +0,0 @@
+-#!/bin/bash
+-set -eu
+-#Step 1: unzip and install
+-#Step 2: After Plapack implodes
+-STEP=0
+-
+-if [ $STEP -eq 1 ]; then
+-	#Some cleanup
+-	rm -rf install petsc-3.1-p7 src
+-	mkdir install src
+-
+-	#Download from ISSM server
+-	$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-	#Untar and move petsc to install directory
+-	tar -zxvf  petsc-3.1-p7.tar.gz
+-	mv petsc-3.1-p7/* install/
+-	rm -rf petsc-3.1-p7
+-
+-	#configure
+-	cd src
+-	./config/configure.py \
+-	  --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	  --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	  --ISSM_ARCH=$ISSM_ARCH \
+-	  --with-debugging=no \
+-	  --with-shared=0 COPTFLAGS=-O3 FOPTFLAGS=-O3 \
+-	  --with-blas-lapack-dir=/opt/intel/mkl/9.1.023 \
+-	  --with-mpi-lib=/usr/lib/libmpi.so \
+-	  --with-mpi-include=/usr/include  \
+-	  --with-mpi-shared=0 \
+-	  --download-mumps=yes \
+-	  --download-scalapack=yes \
+-	  --download-blacs=yes  \
+-	  --download-plapack=yes \
+-	  --FFLAGS=-I/usr/include \
+-	  --with-cc=icc \
+-	  --with-fc=ifort  \
+-	  --download-parmetis=yes
+-
+-	echo "== Fix Plapack compilation manually (http://issm.jpl.nasa.gov/installation/compilationtroubleshooting/petsc31/) =="
+-	echo "== Then run STEP=2 =="
+-fi
+-if [ $STEP -eq 2 ]; then
+-	cd src
+-	./config/configure.py \
+-		--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-		--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-		--with-batch=1  \
+-		--ISSM_ARCH=$ISSM_ARCH \
+-		--with-debugging=no \
+-		--with-shared=0 COPTFLAGS=-O3 FOPTFLAGS=-O3 \
+-		--with-blas-lapack-dir=/opt/intel/mkl/9.1.023 \
+-		--with-mpi-lib=/usr/lib/libmpi.so \
+-		--with-mpi-include=/usr/include  \
+-		--with-mpi-shared=0 \
+-		--download-mumps=yes \
+-		--download-scalapack=yes \
+-		--download-blacs=yes  \
+-		--with-plapack-dir=$PETSC_DIR/externalpackages/PLAPACKR32-hg/$ISSM_ARCH \
+-		--FFLAGS=-I/usr/include \
+-		--with-cc=icc \
+-		--with-fc=ifort  \
+-		--download-parmetis=yes
+-	echo "== Follow PETSc's instructions"
+-fi
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-mathieu.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-mathieu.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-macosx32-mathieu.sh	(revision 20424)
+@@ -1,39 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-#configure
+-cd src
+-./config/configure.py  \
+- --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+- --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+- --PETSC_ARCH=macosx-gnu \
+- --with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+- --with-debugging=0 \
+- --with-shared=0 \
+- --download-mumps=yes \
+- --download-scalapack=yes \
+- --download-blacs=yes \
+- --download-blas=yes \
+- --download-f-blas-lapack=yes \
+- --download-plapack=yes \
+- --FFLAGS="-I$ISSM_DIR/externalpackages/mpich/install/include -arch i386" \
+- --COPTFLAGS="-march=opteron -O2 -arch i386" \
+- --FOPTFLAGS="-march=opteron -O2 -arch i386" \
+- --CXXOPTFLAGS="-march=opteron -O2 -arch i386" \
+- --download-parmetis=yes
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.1-ubuntu64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.1-ubuntu64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.1-ubuntu64.sh	(revision 20424)
+@@ -1,40 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.1-p7 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.1-p7.tar.gz' 'petsc-3.1-p7.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.1-p7.tar.gz
+-mv petsc-3.1-p7/* src/
+-rm -rf petsc-3.1-p7
+-
+-#configure
+-cd src
+-./config/configure.py \
+- --prefix="$ISSM_DIR/externalpackages/petsc/install" \
+- --with-mpi-dir=$ISSM_DIR/externalpackages/mpich/install \
+- --PETSC_ARCH=linux-gnu\
+- --PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+- --with-debugging=0 \
+- --with-shared=0 \
+- --download-mumps=yes \
+- --download-scalapack=yes \
+- --download-blacs=yes \
+- --download-blas=yes \
+- --download-f-blas-lapack=yes \
+- --download-parmetis=yes \
+- --FFLAGS=-I$ISSM_DIR/externalpackages/mpich/install/include \
+- --download-plapack=yes \
+- --COPTFLAGS="-O2" \
+- --FOPTFLAGS="-O2" \
+- --CXXOPTFLAGS="-O2" \
+- --with-pic=1
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.2-ubuntu64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.2-ubuntu64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.2-ubuntu64.sh	(revision 20424)
+@@ -1,37 +0,0 @@
+-#!/bin/bash
+-set -eu
+-
+-#Some cleanup
+-rm -rf install petsc-3.2-p3 src
+-mkdir install src
+-
+-#Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-3.2-p3.tar.gz' 'petsc-3.2-p3.tar.gz'
+-
+-#Untar and move petsc to install directory
+-tar -zxvf  petsc-3.2-p3.tar.gz
+-mv petsc-3.2-p3/* src/
+-rm -rf petsc-3.2-p3
+-
+-#configure
+-cd src
+-./config/configure.py \
+-	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
+-	--with-mpi-dir=/usr/lib/mpich \
+-	--with-clanguage=C++ \
+-	--PETSC_ARCH=linux-gnu-amd64 \
+-	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
+-	--with-debugging=0 \
+-	--with-shared-libraries=1 \
+-	--download-mumps=yes \
+-	--download-scalapack=yes \
+-	--download-blacs=yes \
+-	--download-blas=yes \
+-	--download-f-blas-lapack=yes \
+-	--download-plapack=yes \
+-	--download-parmetis=yes \
+-	--with-pic=1
+-
+-#Compile petsc and install it
+-make
+-make install
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.0 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.0.tar.gz
+-mv petsc-3.6.0/* src/
+-rm -rf petsc-3.6.0
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ #configure
+ cd src
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.0 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.0.tar.gz
+-mv petsc-3.6.0/* src/
+-rm -rf petsc-3.6.0
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ #configure
+ cd src
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.2 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.2.tar.gz' 'petsc-3.6.2.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.2.tar.gz
+-mv petsc-3.6.2/* src/
+-rm -rf petsc-3.6.2
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
+ export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.0 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.0.tar.gz
+-mv petsc-3.6.0/* src/
+-rm -rf petsc-3.6.0
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ #configure
+ cd src
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-discover.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.0 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.0.tar.gz
+-mv petsc-3.6.0/* src/
+-rm -rf petsc-3.6.0
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ #--with-cc=icc --with-cxx=icpc --with-fc=ifort --with-f77=ifort \
+ 
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 20423)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh	(revision 20424)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.0 src
++rm -rf install petsc-3.6.3 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.0.tar.gz' 'petsc-3.6.0.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.0.tar.gz
+-mv petsc-3.6.0/* src/
+-rm -rf petsc-3.6.0
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
+ 
+ #configure
+ cd src
Index: /issm/oecreview/Archive/19101-20495/ISSM-20424-20425.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20424-20425.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20424-20425.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20424)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20425)
+@@ -56,6 +56,7 @@
+ 	echo "   "
+ 
+ 	#Do we need to reinstall externalpackages?
++	echo "Determining installation type"
+ 	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ] ; then
+ 		echo "  -- checking for changed externalpackages... yes";
+ 		ISSM_EXTERNALPACKAGES="install"
+@@ -65,7 +66,7 @@
+ 	fi
+ 
+ 	#Do we need to reconfigure
+-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "Makefile.am" -e "m4" )" ] ; then
++	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "Makefile.am" -e "m4" )" ] || [ "$ISSM_EXTERNALPACKAGES" == "yes" ] ; then
+ 		echo "  -- checking for reconfiguration... yes";
+ 		ISSM_RECONFIGURE="yes"
+ 	else
+@@ -91,6 +92,7 @@
+ 	ISSM_RECONFIGURE="yes"
+ 	ISSM_COMPILATION="yes"
+ fi
++echo " "
+ echo "Recording current svn version: $SVN_REVISION_1"
+ echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
+ #}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20425-20426.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20425-20426.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20425-20426.diff	(revision 20498)
@@ -0,0 +1,24 @@
+Index: ../trunk-jpl/src/c/cores/steadystate_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20425)
++++ ../trunk-jpl/src/c/cores/steadystate_core.cpp	(revision 20426)
+@@ -48,15 +48,15 @@
+ 	for(;;){
+ 
+ 		/* Compute first velocity, then temperature due to high sensitivity of temperature to velocity. */
+-		if(VerboseSolution()) _printf0_("\n=============================================================\n");
++		if(VerboseSolution()) _printf0_("\n======================================================\n");
+ 		if(VerboseSolution()) _printf0_("   computing velocity and temperature for step: " << step << "\n");
+-		if(VerboseSolution()) _printf0_("=============================================================\n");
++		if(VerboseSolution()) _printf0_("====================================================\n");
+ 
+-		if(VerboseSolution()) _printf0_("\n   -- computing new velocity\n");
++		if(VerboseSolution()) _printf0_("\n   -- computing new velocity -- \n\n");
+ 		stressbalance_core(femmodel);
+ 		GetSolutionFromInputsx(&ug,femmodel);
+ 
+-		if(VerboseSolution()) _printf0_("\n   -- computing new temperature\n");
++		if(VerboseSolution()) _printf0_("\n   -- computing new temperature --\n\n");
+ 		thermal_core(femmodel);
+ 		if(!isenthalpy)femmodel->SetCurrentConfiguration(ThermalAnalysisEnum);/*Could be MeltingAnalysis...*/
+ 		GetSolutionFromInputsx(&tg,femmodel);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20426-20427.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20426-20427.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20426-20427.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 20426)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-win10.sh	(revision 20427)
+@@ -2,16 +2,16 @@
+ set -eu
+ 
+ #Some cleanup
+-rm -rf install petsc-3.6.3 src
++rm -rf install petsc-3.6.2 src
+ mkdir install src
+ 
+ #Download from ISSM server
+-$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.2.tar.gz' 'petsc-3.6.2.tar.gz'
+ 
+ #Untar and move petsc to install directory
+-tar -zxvf  petsc-3.6.3.tar.gz
+-mv petsc-3.6.3/* src/
+-rm -rf petsc-3.6.3
++tar -zxvf  petsc-3.6.2.tar.gz
++mv petsc-3.6.2/* src/
++rm -rf petsc-3.6.2
+ 
+ export PETSC_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/src"`
+ export PREFIX_DIR=`cygpath -u "$ISSM_DIR/externalpackages/petsc/install"`
Index: /issm/oecreview/Archive/19101-20495/ISSM-20427-20428.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20427-20428.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20427-20428.diff	(revision 20498)
@@ -0,0 +1,80 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20427)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20428)
+@@ -97,24 +97,26 @@
+ echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
+ #}}}
+ #install/none external packages    (ISSM_EXTERNALPACKAGES){{{
+-if [ "$ISSM_EXTERNALPACKAGES" == "install" ]
+-then
+-	#number of packages: 
+-	NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
+-	EXTERNAL_TEST_FILE="$ISSM_DIR/nightlylog/results/external.xml"
+ 
+-	mkdir -p $ISSM_DIR/nightlylog/results
++#Jenkins xml files for individual packages
++EXTERNAL_TEST_FILE="$ISSM_DIR/nightlylog/results/external.xml"
++mkdir -p $ISSM_DIR/nightlylog/results
++echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
+ 
+-	echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
++#number of packages: 
++NUMPACKAGES=$(($(echo $EXTERNALPACKAGES | wc -w )/2))
++for ((i=1;i<=$NUMPACKAGES;i++))
++do
++	NUM1=$((2*$i-1))
++	NUM2=$((2*$i))
++	PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
++	PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
+ 
+-	for ((i=1;i<=$NUMPACKAGES;i++))
+-	do
+-		NUM1=$((2*$i-1))
+-		NUM2=$((2*$i))
+-		PACKAGENAME=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM1-$NUM1)
+-		PACKAGEINST=$(echo $EXTERNALPACKAGES | cut -d " " -f $NUM2-$NUM2)
++	cd $ISSM_DIR/externalpackages/$PACKAGENAME
+ 
+-		cd $ISSM_DIR/externalpackages/$PACKAGENAME
++	#install if requested or if install does not exist
++	if [ "$ISSM_EXTERNALPACKAGES" == "install" ] || [ ! -d install ];
++	then
+ 		echo "======================================================";
+ 		echo "       Installing $PACKAGENAME                        ";
+ 		echo "======================================================";
+@@ -132,26 +134,21 @@
+ 			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
+ 		source $ISSM_DIR/etc/environment.sh
+-		cd ..
+-	done
+-	echo '</testsuite>' >> $EXTERNAL_TEST_FILE
++	else
++		echo "======================================================";
++		echo "       Skipping $PACKAGENAME                          ";
++		echo "======================================================";
++	fi
++done
++echo '</testsuite>' >> $EXTERNAL_TEST_FILE
+ 
+-elif [ "$ISSM_EXTERNALPACKAGES" == "none" ]
+-then
+-	echo "Skipping external packages installation"
+-else
+-	echo "ISSM_EXTERNALPACKAGES supported values are: install, copy and none. Exiting..." >&2 # Error message to stderr.
+-	exit 1
+-fi
+-
+ source $ISSM_DIR/etc/environment.sh
+ 
+ if [ "$OS" == "win" ]
+ then
+-	echo "WINDOWS ENVIRONMENT DETECTED"
++	echo " == WINDOWS ENVIRONMENT DETECTED =="
+ 	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+ fi
+-
+ #}}}
+ #ISSM compilation yes/no                (ISSM_COMPILATION) {{{
+ if [ "$ISSM_COMPILATION" == "yes" ]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20428-20429.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20428-20429.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20428-20429.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20428)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20429)
+@@ -278,7 +278,7 @@
+ do
+ 	cd $ISSM_DIR/test/NightlyRun
+ 	echo "--------------Running Python test for Rank $i---------------------"
+-	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS | tee $ISSM_DIR/nightlylog/python_log$i.log &
++	./runme.py --output=nightly --rank=$i --numprocs=$NUMCPUS_RUN $PYTHON_NROPTIONS &> $ISSM_DIR/nightlylog/python_log$i.log &
+ 	echo "--------------Running Python test for Rank $i---------------------"
+ done
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20429-20430.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20429-20430.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20429-20430.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/classes/clusters/generic.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 20429)
++++ ../trunk-jpl/src/m/classes/clusters/generic.m	(revision 20430)
+@@ -96,9 +96,9 @@
+ 						end
+ 					else
+ 						if IssmConfig('_HAVE_MPI_'),
+-							fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
++							fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog &',cluster.np,cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						else
+-							fprintf(fid,'%s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
++							fprintf(fid,'%s/%s %s %s %s 2> %s.errlog >%s.outlog &',cluster.codepath,executable,EnumToString(solution),[cluster.executionpath '/' dirname],modelname,modelname,modelname);
+ 						end
+ 					end
+ 				elseif isgprof,
Index: /issm/oecreview/Archive/19101-20495/ISSM-20430-20431.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20430-20431.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20430-20431.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20430)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20431)
+@@ -147,6 +147,7 @@
+ 				${ISSM_DIR}/src/m/plot/plot_mesh.js \
+ 				${ISSM_DIR}/src/m/plot/plot_overlay.js \
+ 				${ISSM_DIR}/src/m/plot/plot_unit.js \
++				${ISSM_DIR}/src/m/plot/plot_quiver.js \
+ 				${ISSM_DIR}/src/m/plot/plotmodel.js \
+ 				${ISSM_DIR}/src/m/plot/processdata.js \
+ 				${ISSM_DIR}/src/m/plot/processmesh.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20431-20432.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20431-20432.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20431-20432.diff	(revision 20498)
@@ -0,0 +1,29 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20431)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20432)
+@@ -197,7 +197,11 @@
+ 				node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
+ 				node["movieLength"] = data.length-1;
+ 				node["movieFrame"] = 0;
+-				node["movieHandler"] = function () {
++				console.log(canvas["movieHandler"]);
++				if (canvas["movieHandler"])	{
++					clearInterval(canvas["movieHandler"]);
++				}
++				canvas["movieHandler"] = setInterval(function () {
+ 						if (canvas["moviePlay"]) {
+ 							node["movieFrame"] = canvas["movieFrame"];
+ 							if (canvas["movieIncrement"]) {
+@@ -218,9 +222,8 @@
+ 							node["buffers"] = initBuffers(gl,array);
+ 							canvas["movieFrame"] = node["movieFrame"];
+ 						}
+-						setTimeout(node["movieHandler"], node["movieInterval"]);
+-					};
+-				setTimeout(node["movieHandler"], node["movieInterval"]);
++					}, node["movieInterval"]);
++				console.log(canvas["movieHandler"]);
+ 				if (canvas["progressBar"]) {
+ 					canvas["movieFrame"] = 0;
+ 					canvas["progressBar"].slider("value", 0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20432-20433.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20432-20433.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20432-20433.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20432)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20433)
+@@ -667,7 +667,7 @@
+ endif
+ 
+ #External packages
+-LDADD += $(PETSCLIB) $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB)  $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJ4LIB)
++LDADD +=  $(TAOLIB) $(M1QN3LIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(PETSCLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB)  $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJ4LIB)
+ 
+ if FORTRAN
+ LDADD += $(FLIBS) $(FORTRANLIB)
Index: /issm/oecreview/Archive/19101-20495/ISSM-20433-20434.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20433-20434.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20433-20434.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20433)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20434)
+@@ -115,7 +115,7 @@
+ 	cd $ISSM_DIR/externalpackages/$PACKAGENAME
+ 
+ 	#install if requested or if install does not exist
+-	if [ "$ISSM_EXTERNALPACKAGES" == "install" ] || [ ! -d install ];
++	if [ "$ISSM_EXTERNALPACKAGES" == "install" ] || [ ! -d install ] || [ ! "$(ls -A install)" ];
+ 	then
+ 		echo "======================================================";
+ 		echo "       Installing $PACKAGENAME                        ";
Index: /issm/oecreview/Archive/19101-20495/ISSM-20434-20435.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20434-20435.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20434-20435.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20434)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20435)
+@@ -133,6 +133,10 @@
+ 		else
+ 			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
++		if [ "$ISSM_EXTERNALPACKAGES" == "none" ];
++		then
++			ISSM_COMPILATION = "yes"
++		fi
+ 		source $ISSM_DIR/etc/environment.sh
+ 	else
+ 		echo "======================================================";
Index: /issm/oecreview/Archive/19101-20495/ISSM-20435-20436.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20435-20436.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20435-20436.diff	(revision 20498)
@@ -0,0 +1,69 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20435)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20436)
+@@ -151,6 +151,7 @@
+ 				var direction = vec3.create();
+ 				var vertex = vec3.create();
+ 				var magnitude;
++				var timestamps = data[data.length-1];
+ 
+ 				for(var i = 0; i < x.length; i++){
+ 					xyz = vec3.fromValues(x[i], y[i], z[i]);
+@@ -167,7 +168,7 @@
+ 					})
+ 				});
+ 				
+-				for(var i = 0; i < data.length-1; i++){
++				for(var i = 0; i < data.length; i++){
+ 					//Prevent evaluation of datasubarray min/max if caxis exists
+ 					if (options.exist('caxis')) {
+ 						caxis = options.getfieldvalue('caxis');
+@@ -179,7 +180,7 @@
+ 					datamax = caxis[1];
+ 					datadelta = datamax - datamin;
+ 
+-					//Precalculate arrays for each datasubarray
++					//Precalculate arrays for each datasubarray, trimming off timestamp value by using x.length instead of data[i].length
+ 					texcoords[i] = [];
+ 					texcoords[i].itemSize = 2;
+ 					for(var j = 0; j < x.length; j++){
+@@ -195,12 +196,11 @@
+ 				
+ 				//Initialize movie loop
+ 				node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
+-				node["movieLength"] = data.length-1;
++				node["movieTimestamps"] = timestamps;
++				node["movieLength"] = timestamps.length;
+ 				node["movieFrame"] = 0;
+-				console.log(canvas["movieHandler"]);
+-				if (canvas["movieHandler"])	{
+-					clearInterval(canvas["movieHandler"]);
+-				}
++			
++				if (canvas["movieHandler"])	clearInterval(canvas["movieHandler"]);
+ 				canvas["movieHandler"] = setInterval(function () {
+ 						if (canvas["moviePlay"]) {
+ 							node["movieFrame"] = canvas["movieFrame"];
+@@ -212,18 +212,12 @@
+ 									node["movieFrame"] = (((node["movieFrame"] + 1) % node["movieLength"]) + node["movieLength"]) % node["movieLength"]; //Handle negative modulus
+ 								}
+ 							}
+-							if (canvas["timeLabel"]) {
+-								canvas["timeLabel"].html(String(node["movieFrame"]) + "/" +  String(node["movieLength"] - 1));
+-							}
+-							if (canvas["progressBar"]) {
+-								canvas["progressBar"].slider("value", node["movieFrame"]);
+-							}
+-							var array = [node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]];
+-							node["buffers"] = initBuffers(gl,array);
++							if (canvas["timeLabel"]) canvas["timeLabel"].html(String(node["movieTimestamps"][node["movieFrame"]]) + "/" +  String(node["movieTimestamps"][node["movieLength"]-1]));
++							if (canvas["progressBar"]) canvas["progressBar"].slider("value", node["movieFrame"]);
++							node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]]);
+ 							canvas["movieFrame"] = node["movieFrame"];
+ 						}
+ 					}, node["movieInterval"]);
+-				console.log(canvas["movieHandler"]);
+ 				if (canvas["progressBar"]) {
+ 					canvas["movieFrame"] = 0;
+ 					canvas["progressBar"].slider("value", 0);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20436-20437.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20436-20437.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20436-20437.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20436)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20437)
+@@ -212,7 +212,7 @@
+ 									node["movieFrame"] = (((node["movieFrame"] + 1) % node["movieLength"]) + node["movieLength"]) % node["movieLength"]; //Handle negative modulus
+ 								}
+ 							}
+-							if (canvas["timeLabel"]) canvas["timeLabel"].html(String(node["movieTimestamps"][node["movieFrame"]]) + "/" +  String(node["movieTimestamps"][node["movieLength"]-1]));
++							if (canvas["timeLabel"]) canvas["timeLabel"].html(String(node["movieTimestamps"][node["movieFrame"]]) + " " + options.getfieldvalue("movietimeunit","yr"));
+ 							if (canvas["progressBar"]) canvas["progressBar"].slider("value", node["movieFrame"]);
+ 							node["buffers"] = initBuffers(gl,[node["arrays"][0],node["arrays"][1][node["movieFrame"]],node["arrays"][2]]);
+ 							canvas["movieFrame"] = node["movieFrame"];
Index: /issm/oecreview/Archive/19101-20495/ISSM-20437-20438.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20437-20438.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20437-20438.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/jenkins/jenkins.sh
+===================================================================
+--- ../trunk-jpl/jenkins/jenkins.sh	(revision 20437)
++++ ../trunk-jpl/jenkins/jenkins.sh	(revision 20438)
+@@ -133,11 +133,10 @@
+ 		else
+ 			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
+ 		fi
+-		if [ "$ISSM_EXTERNALPACKAGES" == "none" ];
+-		then
+-			ISSM_COMPILATION = "yes"
+-		fi
+ 		source $ISSM_DIR/etc/environment.sh
++
++		#If external package is rebuilt, we also need to recompile
++		ISSM_COMPILATION = "yes"
+ 	else
+ 		echo "======================================================";
+ 		echo "       Skipping $PACKAGENAME                          ";
Index: /issm/oecreview/Archive/19101-20495/ISSM-20438-20439.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20438-20439.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20438-20439.diff	(revision 20498)
@@ -0,0 +1,28 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20438)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20439)
+@@ -502,8 +502,8 @@
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+-				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+-					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -lscolib -ljega_fe -llhs -lpebbl -lcolin -linterfaces -llhs_mods -lmoga -loptpp -lsoga -lsurfpack -lutilib -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -l3po -lamplsolver -lcport -ldfftpack -leutils -lfsudace -lhopspack -ljega -lnidr -lpecos -lpsuade -ltinyxml -lutilities -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
++				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
++					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota_src -ldream -lfsudace -lddace -lnomad -lpecos_src -llhs -llhs_mods -loptpp -lsurfpack -lconmin -ldakota_src_fortran -llhs_mod -lncsuopt -lsurfpack_fortran -lteuchos -lamplsolver -lcport -ldfftpack -lfsudace -lhopspack -lnidr -lpecos -lpsuade -lsparsegrid -lboost_serialization -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					AC_DEFINE([DISABLE_DAKOTA_CONFIG_H],[1],[disabling DAKOTA_CONFIG_H])
+ 					AC_DEFINE([DAKOTA_HAVE_MPI],[1],[enabling parallel MPI])
+ 				else
+Index: ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh	(revision 20438)
++++ ../trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh	(revision 20439)
+@@ -37,6 +37,8 @@
+ cmake -D CMAKE_C_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicc \
+ 	   -D CMAKE_CXX_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpicxx \
+ 	   -D CMAKE_Fortran_COMPILER=$ISSM_DIR/externalpackages/mpich/install/bin/mpif77 \
++		-DHAVE_ACRO=off \
++		-DHAVE_JEGA=off \
+ 		-C $DAK_SRC/cmake/BuildDakotaCustom.cmake \
+ 		-C $DAK_SRC/cmake/DakotaDev.cmake \
+ 		$DAK_SRC
Index: /issm/oecreview/Archive/19101-20495/ISSM-20439-20440.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20439-20440.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20439-20440.diff	(revision 20498)
@@ -0,0 +1,41 @@
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20439)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20440)
+@@ -131,7 +131,6 @@
+ 		ElementVector*     NewElementVector(int approximation_enum=NoneApproximationEnum);
+ 		void               PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm,bool ismungsm);
+ 		IssmDouble         PureIceEnthalpy(IssmDouble pressure);
+-		void               ResetIceLevelset(void);
+ 		void               ResultInterpolation(int* pinterpolation,int*nodesperelement,int* parray_size, int output_enum);
+ 		void               ResultToPatch(IssmDouble* values,int nodesperelement,int output_enum);
+ 		void               ResultToMatrix(IssmDouble* values,int ncols,int output_enum);
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20439)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20440)
+@@ -1934,24 +1934,6 @@
+ IssmDouble Element::PureIceEnthalpy(IssmDouble pressure){/*{{{*/
+ 	return this->matpar->PureIceEnthalpy(pressure);
+ }/*}}}*/
+-void       Element::ResetIceLevelset(void){/*{{{*/
+-
+-	/*Get Ice Levelset on vertices*/
+-	int         numvertices = this->GetNumberOfVertices();
+-	IssmDouble *values      = xNew<IssmDouble>(numvertices);
+-	this->GetInputListOnVertices(values,MaskIceLevelsetEnum);
+-
+-	/*Project on {-1,+1}*/
+-	for(int i=0;i<numvertices;i++){
+-		if(values[i]>0) values[i]=+1.;
+-		else            values[i]=-1.;
+-	}
+-	this->AddInput(MaskIceLevelsetEnum,values,P1Enum);
+-
+-	/*Cleanup and return*/
+-	xDelete<IssmDouble>(values);
+-
+-}/*}}}*/
+ void       Element::ResultInterpolation(int* pinterpolation,int* pnodesperelement,int* parray_size, int output_enum){/*{{{*/
+ 
+ 	/*Some intputs need to be computed, even if they are already in inputs, they might not be up to date!*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20440-20441.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20440-20441.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20440-20441.diff	(revision 20498)
@@ -0,0 +1,45 @@
+Index: ../trunk-jpl/src/m/plot/tooltips.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/tooltips.js	(revision 0)
++++ ../trunk-jpl/src/m/plot/tooltips.js	(revision 20441)
+@@ -0,0 +1,28 @@
++function tooltip(){
++	
++	//Convert arguments to options
++	var args = Array.prototype.slice.call(arguments);
++	var  options = new pairoptions(args.slice());
++
++	//Recover option values:
++	var value = options.getfieldvalue('value','');
++	var tooltipdiv = options.getfieldvalue('tooltipdiv','tooltipdiv');
++
++	$('<div class="container-div">' + value + '</div>').appendTo('#'+tooltipdiv);	
++	$("#"+tooltipdiv).hover(function() {
++		var tooltip = $("> div", this).show();
++		var pos = tooltip.offset();
++		tooltip.hide();
++		var right = pos.left + tooltip.width();
++		var pageWidth = $(document).width();
++		if (pos.left < 0) {
++			tooltip.css("marginLeft", "+=" + (-pos.left) + "px");
++		}
++		else if (right > pageWidth) {
++			tooltip.css("marginLeft", "-=" + (right - pageWidth));
++		}
++		tooltip.fadeIn();
++		}, function() {
++		$("> div", this).fadeOut(function() {$(this).css("marginLeft", "");});
++	});
++}
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20440)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20441)
+@@ -141,6 +141,7 @@
+ 				${ISSM_DIR}/src/m/parameterization/setflowequation.js \
+ 				${ISSM_DIR}/src/m/parameterization/setmask.js \
+ 				${ISSM_DIR}/src/m/plot/slider.js \
++				${ISSM_DIR}/src/m/plot/tooltips.js \
+ 				${ISSM_DIR}/src/m/plot/applyoptions.js \
+ 				${ISSM_DIR}/src/m/plot/checkplotoptions.js \
+ 				${ISSM_DIR}/src/m/plot/plot_manager.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20441-20442.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20441-20442.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20441-20442.diff	(revision 20498)
@@ -0,0 +1,79 @@
+Index: ../trunk-jpl/src/m/os/oshostname.m
+===================================================================
+--- ../trunk-jpl/src/m/os/oshostname.m	(revision 20441)
++++ ../trunk-jpl/src/m/os/oshostname.m	(revision 20442)
+@@ -1,25 +1,20 @@
+ function hostname=oshostname()
+-%OSHOSTNAME figure out hostname, irrespective of os type
++%OSHOSTNAME - Determine hostname, irrespective of os type
+ %
+-%   usage: hostname=oshostname();
+-%
+-%
++%   Usage:
++%      hostname=oshostname();
+ 
+-if ispc(),
+-	[status,hostname]=system('hostname');
+-	if status, 
+-		error('oshostname error message: could not run hostname command on windows os');
+-	end
++% Find computer name from environment
++if ispc
++	hostname = getenv('COMPUTERNAME');
+ else
+-	%See http://www.mathworks.com/help/matlab/ref/system.html "tips" section
+-	%We need to add < /dev/null otherwise what is in the clipboard is added
+-	[status,hostname]=system('hostname < /dev/null');
+-	hostname = strrep(hostname,'-','');
+-	if status, 
+-		error('oshostname error message: could not run hostname command on *nix os');
+-	end
++	hostname = getenv('HOSTNAME');
+ end
+ 
+-%remove carriage return and blank spaces
+-hostname=hostname(1:end-1);
+-hostname=ddewhite(hostname);
++% Take out minus signs
++hostname = strrep(hostname,'-','');
++
++% Check that machine name is not empty
++if isempty(hostname),
++	error('Cannot determine machine name');
++end
+Index: ../trunk-jpl/src/m/string/ddewhite.m
+===================================================================
+--- ../trunk-jpl/src/m/string/ddewhite.m	(revision 20441)
++++ ../trunk-jpl/src/m/string/ddewhite.m	(revision 20442)
+@@ -1,30 +0,0 @@
+-function sout = ddewhite(s)
+-%DDEWHITE Double dewhite. Strip both leading and trailing whitespace.
+-%
+-%   DDEWHITE(S) removes leading and trailing white space and any null
+-%   characters from the string S.  A null character is one that has an absolute
+-%   value of 0.
+-%
+-%   See also DEWHITE, DEBLANK, DDEBLANK.
+-
+-%   Author:      Peter J. Acklam
+-%   Time-stamp:  2003-10-13 11:12:57 +0200
+-%   E-mail:      pjacklam@online.no
+-%   URL:         http://home.online.no/~pjacklam
+-
+-   error(nargchk(1, 1, nargin));
+-   if ~ischar(s)
+-      error('Input must be a string (char array).');
+-   end
+-
+-   if isempty(s)
+-      sout = s;
+-      return;
+-   end
+-
+-   [r, c] = find(~isspace(s));
+-   if size(s, 1) == 1
+-      sout = s(min(c) : max(c));
+-   else
+-      sout = s(:, min(c) : max(c));
+-   end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20442-20443.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20442-20443.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20442-20443.diff	(revision 20498)
@@ -0,0 +1,35 @@
+Index: ../trunk-jpl/src/m/os/oshostname.m
+===================================================================
+--- ../trunk-jpl/src/m/os/oshostname.m	(revision 20442)
++++ ../trunk-jpl/src/m/os/oshostname.m	(revision 20443)
+@@ -4,16 +4,25 @@
+ %   Usage:
+ %      hostname=oshostname();
+ 
+-% Find computer name from environment
+-if ispc
+-	hostname = getenv('COMPUTERNAME');
+-else
+-	hostname = getenv('HOSTNAME');
++%See http://www.mathworks.com/help/matlab/ref/system.html "tips" section
++%We need to add < /dev/null otherwise what is in the clipboard is added
++[status,hostname]=system('hostname < /dev/null');
++
++% If that command did not work, we have an alternative
++if status~=0,
++	if ispc
++		hostname = getenv('COMPUTERNAME');
++	else
++		hostname = getenv('HOSTNAME');
++	end
+ end
+ 
+ % Take out minus signs
+ hostname = strrep(hostname,'-','');
+ 
++% Trim and lower case
++hostname = strtrim(lower(hostname));
++
+ % Check that machine name is not empty
+ if isempty(hostname),
+ 	error('Cannot determine machine name');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20443-20444.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20443-20444.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20443-20444.diff	(revision 20498)
@@ -0,0 +1,82 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh	(revision 0)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh	(revision 20444)
+@@ -0,0 +1,34 @@
++#!/bin/bash
++set -eu
++
++#Some cleanup
++rm -rf install petsc-3.6.3 src
++mkdir install src
++
++#Download from ISSM server
++$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/petsc-lite-3.6.3.tar.gz' 'petsc-3.6.3.tar.gz'
++
++#Untar and move petsc to install directory
++tar -zxvf  petsc-3.6.3.tar.gz
++mv petsc-3.6.3/* src/
++rm -rf petsc-3.6.3
++
++#configure
++cd src
++./config/configure.py \
++	--prefix="$ISSM_DIR/externalpackages/petsc/install" \
++	--with-mpi-dir="$ISSM_DIR/externalpackages/mpich/install" \
++	--PETSC_DIR="$ISSM_DIR/externalpackages/petsc/src" \
++	--with-debugging=0 \
++	--with-valgrind=0 \
++	--with-x=0 \
++	--with-ssl=0 \
++	--with-shared-libraries=0 \
++	--download-metis=1 \
++	--download-parmetis=1 \
++	--download-mumps=1 \
++	--download-scalapack=1
++
++#Compile and intall
++make
++make install
+
+Property changes on: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh
+___________________________________________________________________
+Added: svn:executable
+   + *
+
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20443)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20444)
+@@ -10,7 +10,6 @@
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
+ 	--enable-standalone-executables \
+ 	--enable-standalone-libraries \
+-	--enable-standalone-modules \
+ 	--with-matlab-dir=$MATLAB_PATH \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+@@ -20,10 +19,9 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-fortran-lib="-L/usr/local/gfortran/lib -lgfortran" \
++	--with-fortran-lib="/usr/local/gfortran/lib/libgfortran.a" \
+ 	--with-numthreads=4 \
+-	--enable-debugging \
+-	--enable-development'
++	--enable-debugging'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
+@@ -36,9 +34,9 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools    install.sh
+ 						cmake        install.sh
+-						mpich        install-3.0-macosx64.sh
++						mpich        install-3.0-macosx64-static.sh
+ 						m1qn3        install.sh
+-						petsc        install-3.6-macosx64.sh
++						petsc        install-3.6-macosx64-static.sh
+ 						triangle     install-macosx64.sh
+ 						shell2junit  install.sh"
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20444-20445.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20444-20445.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20444-20445.diff	(revision 20498)
@@ -0,0 +1,43 @@
+Index: ../trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 20444)
++++ ../trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 20445)
+@@ -97,7 +97,7 @@
+ 
+ 		/*partition loop across threads: */
+ 		for(int idx=my_rank;idx<n_interp;idx+=num_procs){
+-			_printf0_("      interpolation progress: "<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
++			_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
+ 			observations->InterpolationNearestNeighbor(&predictions[idx],x_interp[idx],y_interp[idx],radius);
+ 		}
+ 		_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<100.<<"%  \n");
+@@ -110,7 +110,7 @@
+ 
+ 		/*partition loop across threads: */
+ 		for(int idx=my_rank;idx<n_interp;idx+=num_procs){
+-			_printf0_("      interpolation progress: "<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
++			_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
+ 			observations->Distances(&predictions[idx],&x_interp[idx],&y_interp[idx],1,radius);
+ 		}
+ 		_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<100.<<"%  \n");
+@@ -125,7 +125,7 @@
+ 
+ 		/*partition loop across threads: */
+ 		for(int idx=my_rank;idx<n_interp;idx+=num_procs){
+-			_printf0_("      interpolation progress: "<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
++			_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<double(idx)/double(n_interp)*100.<<"%  \n");
+ 			observations->InterpolationIDW(&predictions[idx],x_interp[idx],y_interp[idx],radius,mindata,maxdata,power);
+ 		}
+ 		_printf0_("      interpolation progress: "<<fixed<<setw(6)<<setprecision(4)<<100.<<"%  \n");
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20444)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp	(revision 20445)
+@@ -31,6 +31,7 @@
+ 	iomodel->Constant(&domaintype,DomainTypeEnum);
+ 	for(int i=0;i<num_cost_functions;i++){
+ 		cost_function= reCast<int,IssmDouble>(iomodel->Data(InversionCostFunctionsEnum)[i]);
++		//iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		if(     cost_function==ThicknessAbsMisfitEnum) iomodel->FetchDataToInput(elements,InversionThicknessObsEnum);
+ 		else if(cost_function==SurfaceAbsMisfitEnum)   iomodel->FetchDataToInput(elements,InversionSurfaceObsEnum);
+ 		else if(cost_function==SurfaceAbsVelMisfitEnum
Index: /issm/oecreview/Archive/19101-20495/ISSM-20445-20446.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20445-20446.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20445-20446.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m
+===================================================================
+--- ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 20445)
++++ ../trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 20446)
+@@ -41,7 +41,7 @@
+ %Launch job on remote cluster
+ BuildKrigingQueueScript(cluster,name,'',1,0,0); %gather, valgrind, gprof
+ UploadQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']})
+-LaunchQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']},'');
++LaunchQueueJob(cluster,name,name,{[name '.bin'] [name '.queue']},'',0);
+ 
+ %Call waitonlock
+ md=model; md.cluster=cluster; md.settings.waitonlock=Inf; md.private.runtimename=name;md.miscellaneous.name=name;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20446-20447.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20446-20447.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20446-20447.diff	(revision 20498)
@@ -0,0 +1,40 @@
+Index: ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
+===================================================================
+--- ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20446)
++++ ../trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 20447)
+@@ -32,7 +32,6 @@
+ 
+ 	#initialize mesh: 
+ 	mesh=mesh3dsurface()
+-	
+ 
+ 	#create .geo file:  {{{
+ 	fid=open('sphere.geo','w')
+Index: ../trunk-jpl/src/m/classes/geometry.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/geometry.py	(revision 20446)
++++ ../trunk-jpl/src/m/classes/geometry.py	(revision 20447)
+@@ -45,13 +45,16 @@
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+-		md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+-		md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
+-		if any(abs(self.thickness-self.surface+self.base)>10**-9):
+-			md.checkmessage("equality thickness=surface-base violated")
+-		if solution==TransientSolutionEnum() and md.transient.isgroundingline:
+-			md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++		if (solution==TransientSolutionEnum() and md.transient.isgia) or (solution==GiaSolutionEnum()):
++			md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'>=',0,'timeseries',1)
++		else:
++			md = checkfield(md,'fieldname','geometry.surface'  ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','geometry.base'      ,'NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
++			md = checkfield(md,'fieldname','geometry.thickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>',0,'timeseries',1)
++			if any(abs(self.thickness-self.surface+self.base)>10**-9):
++				md.checkmessage("equality thickness=surface-base violated")
++			if solution==TransientSolutionEnum() and md.transient.isgroundingline:
++				md = checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices])
+ 
+ 		return md
+ 	# }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20447-20448.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20447-20448.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20447-20448.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/src/m/inversions/MisfitDeinterlace.m
+===================================================================
+--- ../trunk-jpl/src/m/inversions/MisfitDeinterlace.m	(revision 20447)
++++ ../trunk-jpl/src/m/inversions/MisfitDeinterlace.m	(revision 20448)
+@@ -1,21 +0,0 @@
+-function Jstruct=MisfitDeinterlace(misfit,type)
+-%MISFITDEINTERLACE - deinterlace misfits that are mixed together, using type.
+-%
+-%   Usage:
+-%      Jstruct=MisfitDeinterlace(misfit,type)
+-%
+-%   Example:
+-%      Jstruct=MisfitDeinterlace(md.results.stressbalance.J,md.fit)
+-%
+-%
+-Jstruct=struct();
+-
+-count=1;
+-for i=0:max(type),
+-	pos=find(type==i);
+-	if length(pos),
+-		Jstruct(count).type=i;
+-		Jstruct(count).J=misfit(pos);
+-		count=count+1;
+-	end
+-end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20448-20449.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20448-20449.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20448-20449.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 20448)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 20449)
+@@ -45,7 +45,7 @@
+ 				warning('no ice present in the domain');
+ 			end
+ 			if max(md.mask.ice_levelset)<0,
+-				warning('no ice front provided');
++				disp('WARNING: no ice front provided');
+ 			end
+ 			icefront=sum(md.mask.ice_levelset(md.mesh.elements)==0,2);
+ 			if (max(icefront)==3 & strcmp(elementtype(md.mesh),'Tria')) | (max(icefront==6) & strcmp(elementtype(md.mesh),'Penta')),
Index: /issm/oecreview/Archive/19101-20495/ISSM-20449-20450.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20449-20450.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20449-20450.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/m/consistency/checkfield.m
+===================================================================
+--- ../trunk-jpl/src/m/consistency/checkfield.m	(revision 20449)
++++ ../trunk-jpl/src/m/consistency/checkfield.m	(revision 20450)
+@@ -36,7 +36,6 @@
+ 	eval(['field=md.' fieldname ';']);
+ end
+ 
+-
+ %check empty
+ if exist(options,'empty')
+ 	if isempty(field),
Index: /issm/oecreview/Archive/19101-20495/ISSM-20450-20451.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20450-20451.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20450-20451.diff	(revision 20498)
@@ -0,0 +1,72 @@
+Index: ../trunk-jpl/src/m/plot/manualcb.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/manualcb.m	(revision 20450)
++++ ../trunk-jpl/src/m/plot/manualcb.m	(revision 20451)
+@@ -49,8 +49,8 @@
+ 	height = position(4);
+ end
+ axes('Units','normalized','Position',[xstart ystart width height],'XTickLabel','','YTickLabel','','Visible','on');
+-xlim([0 1]);
+-ylim([0 1]);
++xlim([-0.5 1.5]);
++ylim([-0.5 1.5]);
+ 
+ %Prepare ticks
+ if ~exist(options,'log'),
+@@ -59,34 +59,35 @@
+ 	if (any(ztick>zmax) | any(ztick<zmin)),
+ 		error('one or more specified tick values falls outside of [zmin,zmax]');
+ 	end
+-	ytick  = (ztick-zmin)/(zmax-zmin);
++	ytick  = (ztick-zmin)/(zmax-zmin)*2-0.5;
+ else
+ 	ztick = getfieldvalue(options,'tick',round(logspace(log(zmin)/log(10),log(zmax)/log(10),8)));
+-	ytick = linspace(0,1,numel(ztick));
++	ytick = linspace(-0.5,1.5,numel(ztick));
+ end
+ 
+ %Display colorbar
+ hold on
+ if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'),
+-	image_rgb = ind2rgb(repmat(uint16(1:length(cmap))',1,2),cmap);
++	image_rgb = ind2rgb(repmat((1:size(cmap,1))',1,2),cmap);
+ else
+-	image_rgb = ind2rgb(repmat(uint16(1:length(cmap))',1,2)',cmap);
++	image_rgb = ind2rgb(repmat((1:size(cmap,1))',1,2)',cmap);
+ end
+-imagesc([0 1],[0 1],image_rgb);
+-patch([0,0,1,1],[0,1,1,0],'k','FaceColor','none','Clipping','off')
++imagesc([-0.5 1.5],[-0.5 1.5],image_rgb);
++patch([-.5,-.5,1.5,1.5],[-0.5,1.5,1.5,-0.5],'k','FaceColor','none','Clipping','off')
++ytick
+ 
+ %Add ticks
+ if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'),
+ 	%Use FOR LOOP otherwise numbers are not correcly centered
+ 	if getfieldvalue(options,'inverttickposition',0)==1,
+-		for i=1:length(ytick), text(-0.5,ytick(i),num2str(ztick(i)),'HorizontalAlignment','right','VerticalAlignment','middle','FontSize',fontsize); end
++		for i=1:length(ytick), text(-0.8,ytick(i),num2str(ztick(i)),'HorizontalAlignment','right','VerticalAlignment','middle','FontSize',fontsize); end
+ 	else
+-		for i=1:length(ytick), text(1.5,ytick(i),num2str(ztick(i)),'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',fontsize); end
++		for i=1:length(ytick), text(1.8,ytick(i),num2str(ztick(i)),'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',fontsize); end
+ 	end
+ 	if smallbars,
+ 		for i=1:numel(ztick)
+-			patch([0.8 1.0],[ytick(i) ytick(i)],'k')
+-			patch([0.0 0.2],[ytick(i) ytick(i)],'k')
++			patch([1.3 1.5],  [ytick(i) ytick(i)],'k')
++			patch([-0.5 -0.3],[ytick(i) ytick(i)],'k')
+ 		end
+ 	end
+ else
+@@ -94,8 +95,8 @@
+ 	for i=1:length(ytick), text(ytick(i),-0.5,num2str(ztick(i)),'HorizontalAlignment','center','VerticalAlignment','top','FontSize',fontsize); end
+ 	if smallbars,
+ 		for i=1:numel(ztick)
+-			patch([ytick(i) ytick(i)],[0.8 1.0],[ytick(i) ytick(i)],'k')
+-			patch([ytick(i) ytick(i)],[0.0 0.2],[ytick(i) ytick(i)],'k')
++			patch([ytick(i) ytick(i)],[1.3 1.5],[ytick(i) ytick(i)],'k')
++			patch([ytick(i) ytick(i)],[-0.5 -0.3],[ytick(i) ytick(i)],'k')
+ 		end
+ 	end
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20451-20452.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20451-20452.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20451-20452.diff	(revision 20498)
@@ -0,0 +1,681 @@
+Index: ../trunk-jpl/test/NightlyRun/test801.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test801.m	(revision 20452)
+@@ -8,7 +8,7 @@
+ %Transient;
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=0;
+Index: ../trunk-jpl/test/NightlyRun/test803.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test803.py	(revision 20452)
+@@ -25,7 +25,7 @@
+ #Transient
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+-md.transient.iscalving=True
++md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=True
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 20452)
+@@ -13,7 +13,7 @@
+ %Transient
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=1;
+Index: ../trunk-jpl/test/NightlyRun/test804.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test804.py	(revision 20452)
+@@ -23,7 +23,7 @@
+ md.transient.isthermal=False
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+-md.transient.iscalving=True;
++md.transient.ismovingfront=True;
+ 
+ md.calving.calvingrate=1000.*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=numpy.zeros((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test803.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test803.m	(revision 20452)
+@@ -15,7 +15,7 @@
+ %Transient
+ md.transient.isstressbalance=1;
+ md.transient.islevelset=1;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=1;
+Index: ../trunk-jpl/test/NightlyRun/test804.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test804.m	(revision 20452)
+@@ -13,7 +13,7 @@
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ 
+ md.calving.calvingrate=1000.*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test805.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test805.py	(revision 20452)
+@@ -30,7 +30,7 @@
+ md.transient.isthermal=True
+ md.transient.isgroundingline=True
+ md.transient.isgia=False
+-md.transient.iscalving=True;
++md.transient.ismovingfront=True;
+ 
+ md.calving.calvingrate=1000.*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=numpy.zeros((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test805.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test805.m	(revision 20452)
+@@ -20,7 +20,7 @@
+ md.transient.isthermal=1;
+ md.transient.isgroundingline=1;
+ md.transient.isgia=0;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ 
+ md.calving.calvingrate=1000.*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 20452)
+@@ -34,7 +34,7 @@
+ md.transient.isthermal=False
+ md.transient.isgroundingline=False
+ md.transient.isgia=False
+-md.transient.iscalving=True;
++md.transient.ismovingfront=True;
+ 
+ md.calving=calvinglevermann()
+ md.calving.coeff=4.89e13*numpy.ones((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 20452)
+@@ -23,7 +23,7 @@
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=0;
+ md.transient.isgia=0;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ 
+ md.calving=calvinglevermann();
+ md.calving.coeff=4.89e13*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test801.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test801.py	(revision 20452)
+@@ -18,7 +18,7 @@
+ #Transient
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+-md.transient.iscalving=True
++md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=False
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 20452)
+@@ -23,7 +23,7 @@
+ md.transient.isthermal=0;
+ md.transient.isgroundingline=0;
+ md.transient.isgia=0;
+-md.transient.iscalving=1;
++md.transient.ismovingfront=1;
+ 
+ md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=10000*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 20452)
+@@ -34,7 +34,7 @@
+ md.transient.isthermal=False
+ md.transient.isgroundingline=False
+ md.transient.isgia=False
+-md.transient.iscalving=True;
++md.transient.ismovingfront=True;
+ 
+ md.calving.calvingrate=numpy.zeros((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=10000*numpy.ones((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 20451)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 20452)
+@@ -23,7 +23,7 @@
+ #Transient
+ md.transient.isstressbalance=True
+ md.transient.islevelset=True
+-md.transient.iscalving=True
++md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=True
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20452)
+@@ -47,13 +47,13 @@
+ 	iomodel->FetchDataToInput(elements,VxEnum);
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 
+-	/*Get calving parameters*/
+-	bool iscalving;
++	/*Get moving front parameters*/
++	bool ismovingfront;
+ 	int  calvinglaw;
+-	iomodel->Constant(&iscalving,TransientIscalvingEnum);
+-	if(iscalving){
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
++	if(ismovingfront){
+ 		iomodel->Constant(&calvinglaw,CalvingLawEnum);
+-		iomodel->Constant(&iscalving,TransientIscalvingEnum);
++		iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 		switch(calvinglaw){
+ 			case DefaultCalvingEnum:
+ 				iomodel->FetchDataToInput(elements,CalvingCalvingrateEnum);
+@@ -128,7 +128,7 @@
+ 
+ 	/*Intermediaries */
+ 	int  stabilization,dim, domaintype, calvinglaw;
+-	bool iscalving;
++	bool ismovingfront;
+ 	int i, row, col;
+ 	IssmDouble kappa;
+ 	IssmDouble Jdet, dt, D_scalar;
+@@ -137,8 +137,8 @@
+ 	IssmDouble norm_dlsf, norm_calving, calvingrate, meltingrate;
+ 	IssmDouble* xyz_list = NULL;
+ 
+-	/*Get problem dimension and whether there is calving or not*/
+-	basalelement->FindParam(&iscalving,TransientIscalvingEnum);
++	/*Get problem dimension and whether there is moving front or not*/
++	basalelement->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	basalelement->FindParam(&domaintype,DomainTypeEnum);
+ 	basalelement->FindParam(&calvinglaw,CalvingLawEnum);
+ 	basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
+@@ -193,7 +193,7 @@
+ 	}
+ 
+ 	/*Load calving inputs*/
+-	if(iscalving){
++	if(ismovingfront){
+ 		switch(calvinglaw){
+ 			case DefaultCalvingEnum:
+ 			case CalvingDevEnum:
+@@ -266,7 +266,7 @@
+ 		vy_input->GetInputValue(&v[1],gauss); 
+ 
+ 		/*Get calving speed*/
+-		if(iscalving){
++		if(ismovingfront){
+ 			switch(calvinglaw){
+ 				case DefaultCalvingEnum:
+ 					lsf_slopex_input->GetInputValue(&dlsf[0],gauss);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20451)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20452)
+@@ -375,7 +375,7 @@
+ 	TransientIsgiaEnum,
+ 	TransientIsdamageevolutionEnum,
+ 	TransientIshydrologyEnum,
+-	TransientIscalvingEnum,
++	TransientIsmovingfrontEnum,
+ 	TransientIsslrEnum,
+ 	TransientNumRequestedOutputsEnum,
+ 	TransientRequestedOutputsEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20452)
+@@ -379,7 +379,7 @@
+ 		case TransientIsgiaEnum : return "TransientIsgia";
+ 		case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
+ 		case TransientIshydrologyEnum : return "TransientIshydrology";
+-		case TransientIscalvingEnum : return "TransientIscalving";
++		case TransientIsmovingfrontEnum : return "TransientIsmovingfront";
+ 		case TransientIsslrEnum : return "TransientIsslr";
+ 		case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
+ 		case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20452)
+@@ -388,7 +388,7 @@
+ 	      if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
+ 	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
+ 	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
+-	      else if (strcmp(name,"TransientIscalving")==0) return TransientIscalvingEnum;
++	      else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
+ 	      else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
+ 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+ 	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20452)
+@@ -82,7 +82,7 @@
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIslevelsetEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsdamageevolutionEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIshydrologyEnum));
+-		parameters->AddObject(iomodel->CopyConstantObject(TransientIscalvingEnum));
++		parameters->AddObject(iomodel->CopyConstantObject(TransientIsmovingfrontEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsslrEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIscouplerEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(MaterialsRheologyLawEnum));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20452)
+@@ -20,7 +20,7 @@
+ 
+ 	/*parameters: */
+ 	IssmDouble starttime,finaltime,dt,yts;
+-	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isslr,iscoupler,islevelset,isdamageevolution,ishydrology,iscalving;
++	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isslr,iscoupler,islevelset,isdamageevolution,ishydrology,ismovingfront;
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
+@@ -57,7 +57,7 @@
+ 	femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
+ 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+ 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
+-	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
++	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+Index: ../trunk-jpl/src/c/cores/levelset_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 20451)
++++ ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 20452)
+@@ -12,7 +12,7 @@
+ void levelset_core(FemModel* femmodel){
+ 
+ 	/* intermediaries */
+-	bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,iscalving;
++	bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,ismovingfront;
+ 	int domaintype, num_extrapol_vars, index;
+ 	int* extrapol_vars=NULL;
+ 	Analysis  *analysis=NULL;
+@@ -24,13 +24,13 @@
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+ 	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
+ 	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	femmodel->parameters->FindParam(&iscalving,TransientIscalvingEnum);
++	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
+ 
+ 	if(!islevelset) return;
+ 
+ 	/* start the work from here */
+-	if(iscalving) Calvingx(femmodel);
++	if(ismovingfront) Calvingx(femmodel);
+ 	if(VerboseSolution()) _printf0_("   computing levelset transport\n");
+ 	/* smoothen slope of lsf for computation of normal on ice domain*/
+ 	levelsetfunctionslope_core(femmodel);
+Index: ../trunk-jpl/src/m/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.py	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calving.py	(revision 20452)
+@@ -49,7 +49,7 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		#Early return
+-		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
++		if (solution!=TransientSolutionEnum()) or (not md.transient.ismovingfront):
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20452)
+@@ -49,7 +49,7 @@
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+ 
+ 		#Early return
+-		if (solution!=TransientSolutionEnum()) or (not md.transient.iscalving):
++		if (solution!=TransientSolutionEnum()) or (not md.transient.ismovingfront):
+ 			return md
+ 
+ 		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 20452)
+@@ -25,7 +25,7 @@
+ 	}// }}}
+ 	this.checkconsistency = function(md,solution,analyses) { // {{{
+ 		//Early return
+-		if (solution!=TransientSolutionEnum() | md.trans.iscalving==0) return;
++		if (solution!=TransientSolutionEnum() | md.trans.ismovingfront==0) return;
+ 
+ 		checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 20451)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 20452)
+@@ -13,10 +13,10 @@
+ 		isgia             = 0;
+ 		isdamageevolution = 0;
+ 		islevelset        = 0;
+-		iscalving         = 0;
++		ismovingfront     = 0;
+ 		ishydrology       = 0;
+ 		isslr             = 0;
+-		iscoupler             = 0;
++		iscoupler         = 0;
+ 		requested_outputs = {};
+ 	end
+ 	methods
+@@ -39,10 +39,10 @@
+ 			self.isgia           = 0;
+ 			self.isdamageevolution = 0;
+ 			self.islevelset      = 0;
+-			self.iscalving       =0;
++			self.ismovingfront   =0;
+ 			self.ishydrology     = 0;
+ 			self.isslr           = 0;
+-			self.iscoupler           = 0;
++			self.iscoupler       = 0;
+ 
+ 			%default output
+ 			self.requested_outputs={};
+@@ -58,10 +58,10 @@
+ 			self.isgia           = 0;
+ 			self.isdamageevolution = 0;
+ 			self.islevelset      = 0;
+-			self.iscalving       = 0;
++			self.ismovingfront   = 0;
+ 			self.ishydrology     = 0;
+ 			self.isslr           = 0;
+-			self.iscoupler           = 0;
++			self.iscoupler       = 0;
+ 
+ 			%default output
+ 			self.requested_outputs={'default'};
+@@ -86,7 +86,7 @@
+ 			md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0 1]);
+-			md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0 1]);
++			md = checkfield(md,'fieldname','transient.ismovingfront','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
+ 			md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0 1]);
+@@ -104,7 +104,7 @@
+ 			fielddisplay(self,'isgia','indicates whether a postglacial rebound model is used in the transient');
+ 			fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient');
+ 			fielddisplay(self,'islevelset','LEVEL SET DESCRIPTION...');
+-			fielddisplay(self,'iscalving','indicates whether calving is used in the transient');
++			fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient');
+ 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
+ 			fielddisplay(self,'isslr','indicates whether a sea-level rise solution is used in the transient');
+ 			fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling');
+@@ -121,7 +121,7 @@
+ 			WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean');
+-			WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean');
++			WriteData(fid,'object',self,'fieldname','ismovingfront','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','isslr','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean');
+ 
+@@ -144,7 +144,7 @@
+ 			writejsdouble(fid,[modelname '.trans.isgia'],self.isgia);
+ 			writejsdouble(fid,[modelname '.trans.isdamageevolution'],self.isdamageevolution);
+ 			writejsdouble(fid,[modelname '.trans.islevelset'],self.islevelset);
+-			writejsdouble(fid,[modelname '.trans.iscalving'],self.iscalving);
++			writejsdouble(fid,[modelname '.trans.ismovingfront'],self.ismovingfront);
+ 			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
+ 			writejsdouble(fid,[modelname '.trans.isslr'],self.isslr);
+ 			writejsdouble(fid,[modelname '.trans.iscoupler'],self.iscoupler);
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 20452)
+@@ -42,7 +42,7 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			%Early return
+-			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
++			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+Index: ../trunk-jpl/src/m/classes/calvingpi.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingpi.m	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calvingpi.m	(revision 20452)
+@@ -44,7 +44,7 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			%Early return
+-			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
++			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20452)
+@@ -44,7 +44,7 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			%Early return
+-			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
++			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20451)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20452)
+@@ -44,7 +44,7 @@
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			%Early return
+-			if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
++			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+ 			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+ 			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+Index: ../trunk-jpl/src/m/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.py	(revision 20451)
++++ ../trunk-jpl/src/m/classes/transient.py	(revision 20452)
+@@ -20,7 +20,7 @@
+ 		self.isgia             = False
+ 		self.isdamageevolution = False
+ 		self.islevelset        = False
+-		self.iscalving         = False
++		self.ismovingfront     = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
+ 		self.iscoupler         = False
+@@ -40,7 +40,7 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
+-		string="%s\n%s"%(string,fielddisplay(self,'iscalving','indicates whether calving is used in the transient'))
++		string="%s\n%s"%(string,fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'iscoupler','indicates whether different models are being run with need for coupling'))
+@@ -66,7 +66,7 @@
+ 		self.isgia             = False
+ 		self.isdamageevolution = False
+ 		self.islevelset        = False
+-		self.iscalving         = False
++		self.ismovingfront     = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
+ 		self.iscoupler         = False
+@@ -86,7 +86,7 @@
+ 		self.isgia           = False
+ 		self.isdamageevolution = False
+ 		self.islevelset      = False
+-		self.iscalving       = False
++		self.ismovingfront   = False
+ 		self.ishydrology     = False
+ 		self.isslr           = False
+ 		self.iscoupler       = False
+@@ -110,7 +110,7 @@
+ 		md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
+-		md = checkfield(md,'fieldname','transient.iscalving','numel',[1],'values',[0,1]);
++		md = checkfield(md,'fieldname','transient.ismovingfront','numel',[1],'values',[0,1]);
+ 		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.iscoupler','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
+@@ -127,7 +127,7 @@
+ 		WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
+-		WriteData(fid,'object',self,'fieldname','iscalving','format','Boolean')
++		WriteData(fid,'object',self,'fieldname','ismovingfront','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isslr','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean')
+ 
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 20451)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 20452)
+@@ -16,7 +16,7 @@
+ 		this.isgia           = 0;
+ 		this.isdamageevolution = 0;
+ 		this.islevelset      = 0;
+-		this.iscalving       = 0;
++		this.ismovingfront   = 0;
+ 		this.ishydrology     = 0;
+ 		this.isslr           = 0;
+ 		this.iscoupler       = 0;
+@@ -37,7 +37,7 @@
+ 		fielddisplay(this,'isgia','indicates whether a postglacial rebound model is used in the transient');
+ 		fielddisplay(this,'isdamageevolution','indicates whether damage evolution is used in the transient');
+ 		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
+-		fielddisplay(this,'iscalving','indicates whether calving is used in the transient');
++		fielddisplay(this,'ismovingfront','indicates whether a moving front capability is used in the transient');
+ 		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
+ 		fielddisplay(this,'isslr','indicates whether a sea-level rise model is used');
+ 		fielddisplay(this,'iscoupler','indicates whether different models are being run with need for coupling');
+@@ -61,7 +61,7 @@
+ 			checkfield(md,'fieldname','trans.isgia','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.isdamageevolution','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.islevelset','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','trans.iscalving','numel',[1],'values',[0, 1]);
++			checkfield(md,'fieldname','trans.ismovingfront','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0 ,1]);
+ 			checkfield(md,'fieldname','trans.iscoupler','numel',[1],'values',[0 ,1]);
+ 			checkfield(md,'fieldname','trans.isslr','numel',[1],'values',[0 ,1]);
+@@ -77,7 +77,7 @@
+ 			WriteData(fid,'object',this,'fieldname','isdamageevolution','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','iscalving','format','Boolean');
++			WriteData(fid,'object',this,'fieldname','ismovingfront','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','isslr','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','iscoupler','format','Boolean');
+ 
+@@ -109,7 +109,7 @@
+ 	this.isgia             = 0;
+ 	this.isdamageevolution = 0;
+ 	this.islevelset        = 0;
+-	this.iscalving         = 0;
++	this.ismovingfront     = 0;
+ 	this.ishydrology       = 0;
+ 	this.isslr             = 0;
+ 	this.iscoupler         = 0;
+Index: ../trunk-jpl/src/m/enum/TransientIscalvingEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIscalvingEnum.m	(revision 20451)
++++ ../trunk-jpl/src/m/enum/TransientIscalvingEnum.m	(revision 20452)
+@@ -1,11 +0,0 @@
+-function macro=TransientIscalvingEnum()
+-%TRANSIENTISCALVINGENUM - Enum of TransientIscalving
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=TransientIscalvingEnum()
+-
+-macro=StringToEnum('TransientIscalving');
+Index: ../trunk-jpl/src/m/enum/TransientIsmovingfrontEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIsmovingfrontEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/TransientIsmovingfrontEnum.m	(revision 20452)
+@@ -0,0 +1,11 @@
++function macro=TransientIsmovingfrontEnum()
++%TRANSIENTISMOVINGFRONTENUM - Enum of TransientIsmovingfront
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=TransientIsmovingfrontEnum()
++
++macro=StringToEnum('TransientIsmovingfront');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20451)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20452)
+@@ -364,7 +364,7 @@
+ function TransientIsgiaEnum(){ return 360;}
+ function TransientIsdamageevolutionEnum(){ return 361;}
+ function TransientIshydrologyEnum(){ return 362;}
+-function TransientIscalvingEnum(){ return 363;}
++function TransientIsmovingfrontEnum(){ return 363;}
+ function TransientIsslrEnum(){ return 364;}
+ function TransientNumRequestedOutputsEnum(){ return 365;}
+ function TransientRequestedOutputsEnum(){ return 366;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20451)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20452)
+@@ -371,7 +371,7 @@
+ def TransientIsgiaEnum(): return StringToEnum("TransientIsgia")[0]
+ def TransientIsdamageevolutionEnum(): return StringToEnum("TransientIsdamageevolution")[0]
+ def TransientIshydrologyEnum(): return StringToEnum("TransientIshydrology")[0]
+-def TransientIscalvingEnum(): return StringToEnum("TransientIscalving")[0]
++def TransientIsmovingfrontEnum(): return StringToEnum("TransientIsmovingfront")[0]
+ def TransientIsslrEnum(): return StringToEnum("TransientIsslr")[0]
+ def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
+ def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20452-20453.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20452-20453.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20452-20453.diff	(revision 20498)
@@ -0,0 +1,353 @@
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20453)
+@@ -166,13 +166,6 @@
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
+ 	}
+-
+-	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+-	}
+-
+-	
+-
+ }/*}}}*/
+ void MasstransportAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ 
+@@ -742,13 +735,7 @@
+ 	if(domaintype!=Domain2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
+ }/*}}}*/
+ void           MasstransportAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+ 
+ /*Flux Correction Transport*/
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20453)
+@@ -166,7 +166,6 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+ 	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 		if(iomodel->domaintype!=Domain2DhorizontalEnum)
+ 			iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+@@ -636,11 +635,5 @@
+ 	xDelete<int>(doflist);
+ }/*}}}*/
+ void           StressbalanceSIAAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20453)
+@@ -780,9 +780,6 @@
+ 		iomodel->FetchDataToInput(elements,PressureEnum,0.);
+ 		iomodel->FetchDataToInput(elements,BasalforcingsFloatingiceMeltingRateEnum,0.);
+ 	}
+-	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+-	}
+ 	/*LATH parameters*/
+ 	iomodel->Constant(&fe_FS,FlowequationFeFSEnum);
+ 	if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){
+@@ -1147,13 +1144,7 @@
+ 	}
+ }/*}}}*/
+ void           StressbalanceAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-	/*Default, do nothing*/
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+ 
+ /*SSA*/
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20453)
+@@ -116,7 +116,6 @@
+ 	InputUpdateFromConstantx(elements,0.,VyMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VzMeshEnum);
+ 	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+ 	/*Basal forcings variables*/
+@@ -797,11 +796,5 @@
+ 	xDelete<int>(doflist);
+ }/*}}}*/
+ void           ThermalAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 20453)
+@@ -65,10 +65,6 @@
+ 	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ 	iomodel->FetchDataToInput(elements,PressureEnum);
+ 
+-	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+-	}
+-
+ }/*}}}*/
+ void DamageEvolutionAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ 
+@@ -668,13 +664,7 @@
+ 	xDelete<int>(doflist);
+ }/*}}}*/
+ void           DamageEvolutionAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-	/*Default, do nothing*/
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+ 
+ /*Flux Correction Transport*/
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20453)
+@@ -159,7 +159,6 @@
+ 	InputUpdateFromConstantx(elements,0.,VyMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VzMeshEnum);
+ 	if(islevelset){
+-		iomodel->FetchDataToInput(elements,IceMaskNodeActivationEnum);
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+ 
+@@ -1584,11 +1583,5 @@
+ 	xDelete<IssmDouble>(serial_spc);
+ }/*}}}*/
+ void           EnthalpyAnalysis::UpdateConstraints(FemModel* femmodel){/*{{{*/
+-
+-	bool islevelset;
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	if(islevelset){
+-		SetActiveNodesLSMx(femmodel);
+-	}
+-	return;
++	SetActiveNodesLSMx(femmodel);
+ }/*}}}*/
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20452)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20453)
+@@ -182,6 +182,7 @@
+ 	/*create datasets for all analyses*/
+ 	ModelProcessorx(&this->elements,&this->nodes,&this->vertices,&this->materials,&this->constraints,&this->loads,&this->parameters,iomodel,toolkitsoptionsfid,rootpath,this->solution_type,this->nummodels,this->analysis_type_list);
+ 
++
+ 	/*do the post-processing of the datasets to get an FemModel that can actually run analyses: */
+ 	for(i=0;i<nummodels;i++){
+ 
+@@ -189,9 +190,15 @@
+ 		analysis_type=analysis_type_list[i];
+ 		this->SetCurrentConfiguration(analysis_type);
+ 
++		if(VerboseMProcessor()) _printf0_("      configuring element and loads\n");
++		ConfigureObjectsx(elements, loads, nodes, vertices, materials,parameters);
++
+ 		if(i==0){
+ 			if(VerboseMProcessor()) _printf0_("      creating vertex PIDs\n");
+-			VerticesDofx(vertices,parameters); //only call once, we only have one set of vertices
++			VerticesDofx(vertices,parameters); 
++
++			if(VerboseMProcessor()) _printf0_("      detecting active vertices\n");
++			GetMaskOfIceVerticesLSMx(this);
+ 		}
+ 
+ 		if(VerboseMProcessor()) _printf0_("      resolving node constraints\n");
+@@ -199,9 +206,6 @@
+ 
+ 		if(VerboseMProcessor()) _printf0_("      creating nodal degrees of freedom\n");
+ 		NodesDofx(nodes,parameters,analysis_type);
+-
+-		if(VerboseMProcessor()) _printf0_("      configuring element and loads\n");
+-		ConfigureObjectsx(elements, loads, nodes, vertices, materials,parameters);
+ 	}
+ 
+ 	/*Close input file and toolkits file descriptors: */
+Index: ../trunk-jpl/src/m/classes/maskpsl.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.py	(revision 20452)
++++ ../trunk-jpl/src/m/classes/maskpsl.py	(revision 20453)
+@@ -83,16 +83,6 @@
+ 		WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1)
+-
+-		# get mask of vertices of elements with ice
+-		isice=md.mask.ice_levelset<=0.
+-		vlist = numpy.zeros((md.mesh.numberofvertices,1), dtype=int)
+-		
+-		elements=md.mesh.elements-1; elements=elements.astype(numpy.int32, copy=False);
+-		pos=numpy.nonzero(numpy.sum(isice[elements],axis=1))[0]
+-		vlist[elements[pos,:]-1]=1
+-		WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1)
+-
+ 	# }}}
+ 	def savemodeljs(self,fid,modelname): # {{{
+ 
+Index: ../trunk-jpl/src/m/classes/mask.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.py	(revision 20452)
++++ ../trunk-jpl/src/m/classes/mask.py	(revision 20453)
+@@ -53,11 +53,4 @@
+ 	def marshall(self,md,fid):    # {{{
+ 		WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1)
+-
+-		# get mask of vertices of elements with ice
+-		isice=numpy.array(md.mask.ice_levelset<0.,int)
+-		vlist = numpy.zeros((md.mesh.numberofvertices,1), dtype=int)
+-		pos=numpy.nonzero(numpy.sum(isice[md.mesh.elements-1],axis=1))[0]
+-		vlist[md.mesh.elements[pos,:]-1]=1
+-		WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/maskpsl.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.js	(revision 20452)
++++ ../trunk-jpl/src/m/classes/maskpsl.js	(revision 20453)
+@@ -62,26 +62,6 @@
+ 			WriteData(fid,'object',this,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
+-
+-			// get mask of vertices of elements with ice
+-			var isice= NewArrayFill(md.mesh.numberofvertices,0);
+-			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
+-			
+-			var vlist = NewArrayFill(md.mesh.numberofvertices,0);
+-			var pos=[];
+-			for(var i=0;i<md.mesh.numberofelements;i++){
+-				var sum=0;
+-				for(var j=0;j<md.mesh.elements[0].length;j++){
+-					sum+=isice[md.mesh.elements[i][j]-1];
+-				}
+-				if(sum>0)pos.push(i);
+-			}
+-			for(var i=0;i<pos.length;i++){
+-				for(var j=0;j<md.mesh.elements[0].length;j++){
+-					vlist[md.mesh.elements[pos[i]][j]-1]=1;
+-				}
+-			}
+-			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 		}//}}}
+ 		this.fix=function() { //{{{
+ 		}//}}}
+Index: ../trunk-jpl/src/m/classes/maskpsl.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20452)
++++ ../trunk-jpl/src/m/classes/maskpsl.m	(revision 20453)
+@@ -71,14 +71,6 @@
+ 			WriteData(fid,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
+-
+-			% get mask of vertices of elements with ice
+-			isice=md.mask.ice_levelset<=0.;
+-			vlist = zeros(md.mesh.numberofvertices,1);
+-			pos=find(sum(isice(md.mesh.elements),2)>0);
+-			vlist(md.mesh.elements(pos,:))=1;
+-			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+-
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+Index: ../trunk-jpl/src/m/classes/mask.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.js	(revision 20452)
++++ ../trunk-jpl/src/m/classes/mask.js	(revision 20453)
+@@ -53,26 +53,6 @@
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',this,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',this,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+-
+-			// get mask of vertices of elements with ice
+-			var isice= NewArrayFill(md.mesh.numberofvertices,0);
+-			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
+-			
+-			var vlist = NewArrayFill(md.mesh.numberofvertices,0);
+-			var pos=[];
+-			for(var i=0;i<md.mesh.numberofelements;i++){
+-				var sum=0;
+-				for(var j=0;j<md.mesh.elements[0].length;j++){
+-					sum+=isice[md.mesh.elements[i][j]-1];
+-				}
+-				if(sum>0)pos.push(i);
+-			}
+-			for(var i=0;i<pos.length;i++){
+-				for(var j=0;j<md.mesh.elements[0].length;j++){
+-					vlist[md.mesh.elements[pos[i]][j]-1]=1;
+-				}
+-			}
+-			WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+ 		}//}}}
+ 		this.fix=function() { //{{{
+ 		}//}}}
+Index: ../trunk-jpl/src/m/classes/mask.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/mask.m	(revision 20452)
++++ ../trunk-jpl/src/m/classes/mask.m	(revision 20453)
+@@ -60,23 +60,7 @@
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'fieldname','groundedice_levelset','format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
+-
+-			% get mask of vertices of elements with ice
+-			if size(md.mask.ice_levelset,1)==md.mesh.numberofvertices,
+-				isice=md.mask.ice_levelset<=0.;
+-				vlist = zeros(md.mesh.numberofvertices,1);
+-				pos=find(sum(isice(md.mesh.elements),2)>0);
+-				vlist(md.mesh.elements(pos,:))=1;
+-				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+-			else
+-				isice=md.mask.ice_levelset(1:end-1,1)<=0.;
+-				vlist = zeros(md.mesh.numberofvertices,1);
+-				pos=find(sum(isice(md.mesh.elements),2)>0);
+-				vlist(md.mesh.elements(pos,:))=1;
+-				WriteData(fid,'data',vlist,'enum',IceMaskNodeActivationEnum(),'format','DoubleMat','mattype',1);
+-			end
+-
++			WriteData(fid,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1,'NaN',1);
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20453-20454.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20453-20454.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20453-20454.diff	(revision 20498)
@@ -0,0 +1,205 @@
+Index: ../trunk-jpl/src/c/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/c/Makefile.am	(revision 20453)
++++ ../trunk-jpl/src/c/Makefile.am	(revision 20454)
+@@ -256,7 +256,7 @@
+ 					./cores/meshdeformation_core.cpp\
+ 					./cores/damage_core.cpp\
+ 					./cores/levelsetfunctionslope_core.cpp\
+-					./cores/levelset_core.cpp\
++					./cores/movingfront_core.cpp\
+ 					./modules/GroundinglineMigrationx/GroundinglineMigrationx.cpp\
+ 					./classes/Loads/Riftfront.cpp\
+ 					./modules/ConstraintsStatex/RiftConstraintsState.cpp\
+Index: ../trunk-jpl/src/c/cores/levelset_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 20453)
++++ ../trunk-jpl/src/c/cores/levelset_core.cpp	(revision 20454)
+@@ -1,78 +0,0 @@
+-/*!\file: levelset_core.cpp
+- * \brief: levelset-module to update the ice domain
+- */ 
+-
+-#include "./cores.h"
+-#include "../toolkits/toolkits.h"
+-#include "../classes/classes.h"
+-#include "../shared/shared.h"
+-#include "../solutionsequences/solutionsequences.h"
+-#include "../modules/modules.h"
+-
+-void levelset_core(FemModel* femmodel){
+-
+-	/* intermediaries */
+-	bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,ismovingfront;
+-	int domaintype, num_extrapol_vars, index;
+-	int* extrapol_vars=NULL;
+-	Analysis  *analysis=NULL;
+-
+-	/* recover parameters */
+-	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
+-	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
+-	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+-	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+-	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+-	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+-	if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
+-
+-	if(!islevelset) return;
+-
+-	/* start the work from here */
+-	if(ismovingfront) Calvingx(femmodel);
+-	if(VerboseSolution()) _printf0_("   computing levelset transport\n");
+-	/* smoothen slope of lsf for computation of normal on ice domain*/
+-	levelsetfunctionslope_core(femmodel);
+-
+-	/* determine variables for extrapolation */
+-	num_extrapol_vars=0;
+-	if(isstressbalance) num_extrapol_vars+=2;
+-	if(ismasstransport) num_extrapol_vars+=1;
+-	if(isthermal && domaintype==Domain3DEnum) num_extrapol_vars+=1;
+-	extrapol_vars=xNew<int>(num_extrapol_vars);
+-	index=0;
+-	if(isstressbalance){
+-		extrapol_vars[index]=VxEnum; index++;
+-		extrapol_vars[index]=VyEnum; index++;
+-	}
+-	if(ismasstransport){extrapol_vars[index]=ThicknessEnum; index++;}
+-	if(isthermal && domaintype==Domain3DEnum){
+-		if(isenthalpy){extrapol_vars[index]=EnthalpyEnum;}
+-		else{extrapol_vars[index]=TemperatureEnum;}
+-		index++;
+-	}
+-
+-	/* extrapolate */
+-	analysis = new ExtrapolationAnalysis();
+-	for(int iv=0;iv<num_extrapol_vars;iv++){
+-		femmodel->parameters->SetParam(extrapol_vars[iv],ExtrapolationVariableEnum); 
+-		analysis->Core(femmodel);
+-	}
+-	xDelete<int>(extrapol_vars);
+-	delete analysis;	
+-
+-	/* solve level set equation */
+-	analysis = new LevelsetAnalysis();
+-	analysis->Core(femmodel);
+-	delete analysis;
+-
+-	/* update vertices included for next calculation */
+-	GetMaskOfIceVerticesLSMx(femmodel);
+-
+-	/* add computation domain mask to outputs */
+-	if(save_results){
+-		int outputs[1] = {IceMaskNodeActivationEnum};
+-		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
+-	}
+-}
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20453)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20454)
+@@ -103,7 +103,7 @@
+ 
+ 		if(isdamageevolution) damage_core(femmodel);
+ 
+-		if(islevelset)	levelset_core(femmodel);
++		if(islevelset)	movingfront_core(femmodel);
+ 
+ 		/* from here on, prepare geometry for next time step*/
+ 		if(issmb)smb_core(femmodel);
+Index: ../trunk-jpl/src/c/cores/movingfront_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 0)
++++ ../trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 20454)
+@@ -0,0 +1,78 @@
++/*!\file: levelset_core.cpp
++ * \brief: levelset-module to update the ice domain
++ */ 
++
++#include "./cores.h"
++#include "../toolkits/toolkits.h"
++#include "../classes/classes.h"
++#include "../shared/shared.h"
++#include "../solutionsequences/solutionsequences.h"
++#include "../modules/modules.h"
++
++void movingfront_core(FemModel* femmodel){
++
++	/* intermediaries */
++	bool save_results,isstressbalance,ismasstransport,isthermal,isenthalpy,islevelset,ismovingfront;
++	int domaintype, num_extrapol_vars, index;
++	int* extrapol_vars=NULL;
++	Analysis  *analysis=NULL;
++
++	/* recover parameters */
++	femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
++	femmodel->parameters->FindParam(&save_results,SaveResultsEnum);
++	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
++	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
++	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
++	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
++	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
++	if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
++
++	if(!islevelset) return;
++
++	/* start the work from here */
++	if(ismovingfront) Calvingx(femmodel);
++	if(VerboseSolution()) _printf0_("   computing levelset transport\n");
++	/* smoothen slope of lsf for computation of normal on ice domain*/
++	levelsetfunctionslope_core(femmodel);
++
++	/* determine variables for extrapolation */
++	num_extrapol_vars=0;
++	if(isstressbalance) num_extrapol_vars+=2;
++	if(ismasstransport) num_extrapol_vars+=1;
++	if(isthermal && domaintype==Domain3DEnum) num_extrapol_vars+=1;
++	extrapol_vars=xNew<int>(num_extrapol_vars);
++	index=0;
++	if(isstressbalance){
++		extrapol_vars[index]=VxEnum; index++;
++		extrapol_vars[index]=VyEnum; index++;
++	}
++	if(ismasstransport){extrapol_vars[index]=ThicknessEnum; index++;}
++	if(isthermal && domaintype==Domain3DEnum){
++		if(isenthalpy){extrapol_vars[index]=EnthalpyEnum;}
++		else{extrapol_vars[index]=TemperatureEnum;}
++		index++;
++	}
++
++	/* extrapolate */
++	analysis = new ExtrapolationAnalysis();
++	for(int iv=0;iv<num_extrapol_vars;iv++){
++		femmodel->parameters->SetParam(extrapol_vars[iv],ExtrapolationVariableEnum); 
++		analysis->Core(femmodel);
++	}
++	xDelete<int>(extrapol_vars);
++	delete analysis;	
++
++	/* solve level set equation */
++	analysis = new LevelsetAnalysis();
++	analysis->Core(femmodel);
++	delete analysis;
++
++	/* update vertices included for next calculation */
++	GetMaskOfIceVerticesLSMx(femmodel);
++
++	/* add computation domain mask to outputs */
++	if(save_results){
++		int outputs[1] = {IceMaskNodeActivationEnum};
++		femmodel->RequestedOutputsx(&femmodel->results,&outputs[0],1);
++	}
++}
+Index: ../trunk-jpl/src/c/cores/cores.h
+===================================================================
+--- ../trunk-jpl/src/c/cores/cores.h	(revision 20453)
++++ ../trunk-jpl/src/c/cores/cores.h	(revision 20454)
+@@ -23,7 +23,7 @@
+ void thermal_core(FemModel* femmodel);
+ void surfaceslope_core(FemModel* femmodel);
+ void levelsetfunctionslope_core(FemModel* femmodel);
+-void levelset_core(FemModel* femmodel);
++void movingfront_core(FemModel* femmodel);
+ void bedslope_core(FemModel* femmodel);
+ void meshdeformation_core(FemModel* femmodel);
+ void control_core(FemModel* femmodel);
Index: /issm/oecreview/Archive/19101-20495/ISSM-20454-20455.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20454-20455.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20454-20455.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh
+===================================================================
+--- ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh	(revision 20454)
++++ ../trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh	(revision 20455)
+@@ -27,6 +27,7 @@
+ 	--download-metis=1 \
+ 	--download-parmetis=1 \
+ 	--download-mumps=1 \
++	--download-fblaslapack=1 \
+ 	--download-scalapack=1
+ 
+ #Compile and intall
Index: /issm/oecreview/Archive/19101-20495/ISSM-20455-20456.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20455-20456.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20455-20456.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20455)
++++ ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20456)
+@@ -26,7 +26,7 @@
+ 		IssmDouble *mask     = xNew<IssmDouble>(numnodes);
+ 		// include switch for elements with multiple different sets of nodes
+ 		switch(element->GetElementType()){
+-			case MINIEnum:case TaylorHoodEnum:{
++			case MINIEnum:case TaylorHoodEnum:case LATaylorHoodEnum:case LACrouzeixRaviartEnum:case MINIcondensedEnum:{
+ 				Input* input=element->GetInput(IceMaskNodeActivationEnum);
+ 				if(!input) _error_("Input " << EnumToStringx(IceMaskNodeActivationEnum) << " not found in element");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20456-20457.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20456-20457.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20456-20457.diff	(revision 20498)
@@ -0,0 +1,74 @@
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20456)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20457)
+@@ -1900,6 +1900,9 @@
+ /*L1L2*/
+ ElementMatrix* StressbalanceAnalysis::CreateKMatrixL1L2(Element* element){/*{{{*/
+ 
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
+ 	/*compute all stiffness matrices for this element*/
+ 	ElementMatrix* Ke1=CreateKMatrixL1L2Viscous(element);
+ 	ElementMatrix* Ke2=CreateKMatrixL1L2Friction(element);
+@@ -1982,6 +1985,9 @@
+ }/*}}}*/
+ ElementVector* StressbalanceAnalysis::CreatePVectorL1L2(Element* element){/*{{{*/
+ 
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
+ 	/*Intermediaries*/
+ 	int      domaintype;
+ 	Element* basalelement;
+@@ -2968,6 +2974,9 @@
+ }/*}}}*/
+ ElementMatrix* StressbalanceAnalysis::CreateKMatrixFS(Element* element){/*{{{*/
+ 
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
+ 	/*Get type of algorithm*/
+ 	int fe_FS;
+ 	element->FindParam(&fe_FS,FlowequationFeFSEnum);
+@@ -3400,6 +3409,9 @@
+ }/*}}}*/
+ ElementVector* StressbalanceAnalysis::CreatePVectorFS(Element* element){/*{{{*/
+ 
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
+ 	ElementVector* pe = NULL;
+ 
+ 	ElementVector* pe1=CreatePVectorFSViscous(element);
+@@ -3685,8 +3697,10 @@
+ }/*}}}*/
+ ElementVector* StressbalanceAnalysis::CreatePVectorFS(Element* element){/*{{{*/
+ 
++	/* Check if ice in element */
++	if(!element->IsIceInElement()) return NULL;
++
+ 	ElementVector* pe = NULL;
+-
+ 	int fe_FS;
+ 	element->FindParam(&fe_FS,FlowequationFeFSEnum);
+ 
+Index: ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20456)
++++ ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20457)
+@@ -65,10 +65,11 @@
+ 					){ solvein2d=true;}
+ 
+ 			if(analysis_type==StressbalanceAnalysisEnum){
+-				bool isSIA,isSSA;
++				bool isSIA,isSSA,isL1L2;
+ 				femmodel->parameters->FindParam(&isSIA,FlowequationIsSIAEnum);
+ 				femmodel->parameters->FindParam(&isSSA,FlowequationIsSSAEnum);
+-				if(isSIA || isSSA)
++				femmodel->parameters->FindParam(&isL1L2,FlowequationIsL1L2Enum);
++				if(isSIA || isSSA || isL1L2)
+ 					solvein2d=true;
+ 			}
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20457-20458.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20457-20458.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20457-20458.diff	(revision 20498)
@@ -0,0 +1,130 @@
+Index: ../trunk-jpl/jenkins/linux64_ross
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross	(revision 20458)
+@@ -39,7 +39,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+ 						dakota        install-6.2-linux64.sh  
+Index: ../trunk-jpl/jenkins/linux64_caladan_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_caladan_ad	(revision 20458)
+@@ -29,7 +29,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
++					 petsc install-3.6-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/linux64_caladan_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_caladan_ampi	(revision 20458)
+@@ -38,7 +38,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
++					 petsc install-3.6-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/linux64_ross_ad
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_ad	(revision 20458)
+@@ -31,7 +31,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh                
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
++					 petsc install-3.6-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/linux64_ross_ampi
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_ampi	(revision 20458)
+@@ -40,7 +40,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools install.sh 
+ 					 mpich install-3.0-linux64.sh
+-					 petsc install-3.5-linux64.sh
++					 petsc install-3.6-linux64.sh
+ 					 metis install-5.0.1-linux64.sh
+ 					 triangle install-linux64.sh 
+ 					 gsl install-linux64.sh 
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20458)
+@@ -35,7 +35,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh
+ 						mpich         install-3.0-linux64.sh    
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						math77        install.sh
+ 						gmsh          install.sh
+Index: ../trunk-jpl/jenkins/linux64_ross_iceocean
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_iceocean	(revision 20458)
+@@ -34,7 +34,7 @@
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+ 						cmake         install.sh                
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						shell2junit   install.sh"
+ 
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20458)
+@@ -34,7 +34,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+ 						gshhg         install.sh
+Index: ../trunk-jpl/jenkins/linux64_caladan
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_caladan	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_caladan	(revision 20458)
+@@ -39,7 +39,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+ 						dakota        install-6.2-linux64.sh  
+Index: ../trunk-jpl/jenkins/linux64_ross_test
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_test	(revision 20457)
++++ ../trunk-jpl/jenkins/linux64_ross_test	(revision 20458)
+@@ -39,7 +39,7 @@
+ #List of external pakages to be installed and their installation scripts
+ EXTERNALPACKAGES="autotools     install.sh                
+ 						mpich         install-3.0-linux64.sh    
+-						petsc         install-3.5-linux64.sh    
++						petsc         install-3.6-linux64.sh    
+ 						triangle      install-linux64.sh        
+ 						boost         install.sh                
+ 						dakota        install-6.2-linux64.sh  
Index: /issm/oecreview/Archive/19101-20495/ISSM-20458-20459.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20458-20459.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20458-20459.diff	(revision 20498)
@@ -0,0 +1,1019 @@
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 20458)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 20459)
+@@ -60,7 +60,7 @@
+ 
+ %Transient
+ md.transient.isstressbalance = 1;
+-md.transient.islevelset = 1;
++md.transient.ismovingfront = 1;
+ md.transient.ismasstransport = 0;
+ md.transient.isthermal = 0;
+ md.transient.isgroundingline = 1;
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 20458)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 20459)
+@@ -67,7 +67,7 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
++md.transient.ismovingfront=True
+ md.transient.ismasstransport=False
+ md.transient.isthermal=False
+ md.transient.isgroundingline=True
+Index: ../trunk-jpl/test/NightlyRun/test801.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test801.m	(revision 20459)
+@@ -7,7 +7,6 @@
+ 
+ %Transient;
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+Index: ../trunk-jpl/test/NightlyRun/test803.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test803.py	(revision 20459)
+@@ -24,7 +24,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+Index: ../trunk-jpl/test/NightlyRun/test802.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test802.m	(revision 20459)
+@@ -12,7 +12,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+Index: ../trunk-jpl/test/NightlyRun/test804.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test804.py	(revision 20459)
+@@ -17,7 +17,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=False
+Index: ../trunk-jpl/test/NightlyRun/test803.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test803.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test803.m	(revision 20459)
+@@ -14,7 +14,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismovingfront=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+Index: ../trunk-jpl/test/NightlyRun/test804.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test804.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test804.m	(revision 20459)
+@@ -7,7 +7,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=0;
+Index: ../trunk-jpl/test/NightlyRun/test805.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test805.py	(revision 20459)
+@@ -24,7 +24,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=True
+Index: ../trunk-jpl/test/NightlyRun/test805.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test805.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test805.m	(revision 20459)
+@@ -14,7 +14,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=1;
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 20459)
+@@ -28,7 +28,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=False
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 20459)
+@@ -17,7 +17,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=0;
+Index: ../trunk-jpl/test/NightlyRun/test801.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test801.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test801.py	(revision 20459)
+@@ -17,7 +17,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 20459)
+@@ -17,7 +17,6 @@
+ 
+ %Transient
+ md.transient.isstressbalance=1;
+-md.transient.islevelset=1;
+ md.transient.ismasstransport=1;
+ md.transient.issmb=1;
+ md.transient.isthermal=0;
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 20459)
+@@ -28,7 +28,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+ md.transient.isthermal=False
+Index: ../trunk-jpl/test/NightlyRun/test802.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test802.py	(revision 20458)
++++ ../trunk-jpl/test/NightlyRun/test802.py	(revision 20459)
+@@ -22,7 +22,6 @@
+ 
+ #Transient
+ md.transient.isstressbalance=True
+-md.transient.islevelset=True
+ md.transient.ismovingfront=True
+ md.transient.ismasstransport=True
+ md.transient.issmb=True
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20459)
+@@ -48,32 +48,27 @@
+ 	iomodel->FetchDataToInput(elements,VyEnum);
+ 
+ 	/*Get moving front parameters*/
+-	bool ismovingfront;
+ 	int  calvinglaw;
+-	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+-	if(ismovingfront){
+-		iomodel->Constant(&calvinglaw,CalvingLawEnum);
+-		iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+-		switch(calvinglaw){
+-			case DefaultCalvingEnum:
+-				iomodel->FetchDataToInput(elements,CalvingCalvingrateEnum);
+-				iomodel->FetchDataToInput(elements,CalvingMeltingrateEnum);
+-				break;
+-			case CalvingLevermannEnum:
+-				iomodel->FetchDataToInput(elements,CalvinglevermannCoeffEnum);
+-				iomodel->FetchDataToInput(elements,CalvinglevermannMeltingrateEnum);
+-				break;
+-			case CalvingPiEnum:
+-				iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
+-				iomodel->FetchDataToInput(elements,CalvingpiMeltingrateEnum);
+-				break;
+-			case CalvingDevEnum:
+-				iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
+-				iomodel->FetchDataToInput(elements,CalvingMeltingrateEnum);
+-				break;
+-			default:
+-				_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+-		}
++	iomodel->Constant(&calvinglaw,CalvingLawEnum);
++	switch(calvinglaw){
++		case DefaultCalvingEnum:
++			iomodel->FetchDataToInput(elements,CalvingCalvingrateEnum);
++			iomodel->FetchDataToInput(elements,CalvingMeltingrateEnum);
++			break;
++		case CalvingLevermannEnum:
++			iomodel->FetchDataToInput(elements,CalvinglevermannCoeffEnum);
++			iomodel->FetchDataToInput(elements,CalvinglevermannMeltingrateEnum);
++			break;
++		case CalvingPiEnum:
++			iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
++			iomodel->FetchDataToInput(elements,CalvingpiMeltingrateEnum);
++			break;
++		case CalvingDevEnum:
++			iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
++			iomodel->FetchDataToInput(elements,CalvingMeltingrateEnum);
++			break;
++		default:
++			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 	}
+ }
+ /*}}}*/
+@@ -128,7 +123,6 @@
+ 
+ 	/*Intermediaries */
+ 	int  stabilization,dim, domaintype, calvinglaw;
+-	bool ismovingfront;
+ 	int i, row, col;
+ 	IssmDouble kappa;
+ 	IssmDouble Jdet, dt, D_scalar;
+@@ -138,7 +132,6 @@
+ 	IssmDouble* xyz_list = NULL;
+ 
+ 	/*Get problem dimension and whether there is moving front or not*/
+-	basalelement->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	basalelement->FindParam(&domaintype,DomainTypeEnum);
+ 	basalelement->FindParam(&calvinglaw,CalvingLawEnum);
+ 	basalelement->FindParam(&stabilization,LevelsetStabilizationEnum);
+@@ -193,52 +186,50 @@
+ 	}
+ 
+ 	/*Load calving inputs*/
+-	if(ismovingfront){
+-		switch(calvinglaw){
+-			case DefaultCalvingEnum:
+-			case CalvingDevEnum:
+-				lsf_slopex_input  = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
+-				if(dim==2) lsf_slopey_input  = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
+-				calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
+-				meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
+-				break;
+-			case CalvingLevermannEnum:
+-				switch(domaintype){
+-					case Domain2DverticalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						break;
+-					case Domain2DhorizontalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
+-						break;
+-					case Domain3DEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
+-						break;
+-					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+-				}
+-				meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
+-				break;
+-			case CalvingPiEnum:
+-				switch(domaintype){
+-					case Domain2DverticalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						break;
+-					case Domain2DhorizontalEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
+-						break;
+-					case Domain3DEnum:
+-						calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
+-						calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
+-						break;
+-					default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+-				}
+-				meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
+-				break;
+-			default:
+-				_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+-		}
++	switch(calvinglaw){
++		case DefaultCalvingEnum:
++		case CalvingDevEnum:
++			lsf_slopex_input  = basalelement->GetInput(LevelsetfunctionSlopeXEnum); _assert_(lsf_slopex_input);
++			if(dim==2) lsf_slopey_input  = basalelement->GetInput(LevelsetfunctionSlopeYEnum); _assert_(lsf_slopey_input);
++			calvingrate_input = basalelement->GetInput(CalvingCalvingrateEnum);     _assert_(calvingrate_input);
++			meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
++			break;
++		case CalvingLevermannEnum:
++			switch(domaintype){
++				case Domain2DverticalEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++					break;
++				case Domain2DhorizontalEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++					calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
++					break;
++				case Domain3DEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
++					calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
++					break;
++				default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++			}
++			meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
++			break;
++		case CalvingPiEnum:
++			switch(domaintype){
++				case Domain2DverticalEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++					break;
++				case Domain2DhorizontalEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
++					calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
++					break;
++				case Domain3DEnum:
++					calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
++					calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
++					break;
++				default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
++			}
++			meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
++			break;
++		default:
++			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 	}
+ 
+ 	/* Start  looping on the number of gaussian points: */
+@@ -266,43 +257,41 @@
+ 		vy_input->GetInputValue(&v[1],gauss); 
+ 
+ 		/*Get calving speed*/
+-		if(ismovingfront){
+-			switch(calvinglaw){
+-				case DefaultCalvingEnum:
+-					lsf_slopex_input->GetInputValue(&dlsf[0],gauss);
+-					if(dim==2) lsf_slopey_input->GetInputValue(&dlsf[1],gauss);
+-					calvingrate_input->GetInputValue(&calvingrate,gauss);
+-					meltingrate_input->GetInputValue(&meltingrate,gauss);
++		switch(calvinglaw){
++			case DefaultCalvingEnum:
++				lsf_slopex_input->GetInputValue(&dlsf[0],gauss);
++				if(dim==2) lsf_slopey_input->GetInputValue(&dlsf[1],gauss);
++				calvingrate_input->GetInputValue(&calvingrate,gauss);
++				meltingrate_input->GetInputValue(&meltingrate,gauss);
+ 
+-					norm_dlsf=0.;
+-					for(i=0;i<dim;i++) norm_dlsf+=pow(dlsf[i],2);
+-					norm_dlsf=sqrt(norm_dlsf);
++				norm_dlsf=0.;
++				for(i=0;i<dim;i++) norm_dlsf+=pow(dlsf[i],2);
++				norm_dlsf=sqrt(norm_dlsf);
+ 
+-					if(norm_dlsf>1.e-10)
+-					 for(i=0;i<dim;i++){ 
+-					  c[i]=calvingrate*dlsf[i]/norm_dlsf; m[i]=meltingrate*dlsf[i]/norm_dlsf;
+-					 }
+-					else
+-					 for(i=0;i<dim;i++){
+-						 c[i]=0.; m[i]=0.;
+-					 }
+-					break;
++				if(norm_dlsf>1.e-10)
++				 for(i=0;i<dim;i++){ 
++					 c[i]=calvingrate*dlsf[i]/norm_dlsf; m[i]=meltingrate*dlsf[i]/norm_dlsf;
++				 }
++				else
++				 for(i=0;i<dim;i++){
++					 c[i]=0.; m[i]=0.;
++				 }
++				break;
+ 
+-				case CalvingLevermannEnum:
+-				case CalvingPiEnum:
+-				case CalvingDevEnum:
+-					calvingratex_input->GetInputValue(&c[0],gauss);
+-					if(dim==2) calvingratey_input->GetInputValue(&c[1],gauss);
+-					meltingrate_input->GetInputValue(&meltingrate,gauss);
+-					norm_calving=0.;
+-					for(i=0;i<dim;i++) norm_calving+=pow(c[i],2);
+-					norm_calving=sqrt(norm_calving)+1.e-14;
+-					for(i=0;i<dim;i++) m[i]=meltingrate*c[i]/norm_calving;
+-					break;
++			case CalvingLevermannEnum:
++			case CalvingPiEnum:
++			case CalvingDevEnum:
++				calvingratex_input->GetInputValue(&c[0],gauss);
++				if(dim==2) calvingratey_input->GetInputValue(&c[1],gauss);
++				meltingrate_input->GetInputValue(&meltingrate,gauss);
++				norm_calving=0.;
++				for(i=0;i<dim;i++) norm_calving+=pow(c[i],2);
++				norm_calving=sqrt(norm_calving)+1.e-14;
++				for(i=0;i<dim;i++) m[i]=meltingrate*c[i]/norm_calving;
++				break;
+ 
+-				default:
+-					_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+-			}
++			default:
++				_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 		}
+ 
+ 		/*Levelset speed is ice velocity - calving rate*/
+Index: ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp	(revision 20459)
+@@ -120,13 +120,13 @@
+ 	int    stabilization,finiteelement;
+ 	bool   dakota_analysis;
+ 	bool   isgroundingline;
+-	bool   islevelset;
++	bool   ismovingfront;
+ 
+ 	/*Fetch data needed: */
+ 	iomodel->Constant(&stabilization,MasstransportStabilizationEnum);
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+ 	iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 
+ 	/*Finite element type*/
+ 	finiteelement = P1Enum;
+Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp	(revision 20459)
+@@ -121,10 +121,10 @@
+ 
+ 	/*Fetch data needed: */
+ 	bool   isSIA;
+-	bool   islevelset;
++	bool   ismovingfront;
+ 	int    frictionlaw;
+ 	iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 
+ 	/*Now, is the flag SIA on? otherwise, do nothing: */
+@@ -165,7 +165,7 @@
+ 
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,MaskGroundediceLevelsetEnum);
+-	if(islevelset){
++	if(ismovingfront){
+ 		if(iomodel->domaintype!=Domain2DhorizontalEnum)
+ 			iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp	(revision 20459)
+@@ -677,7 +677,7 @@
+ 	bool   isSSA,isL1L2,isHO,isFS,iscoupling;
+ 	bool   control_analysis;
+ 	bool   dakota_analysis;
+-	bool   islevelset;
++	bool   ismovingfront;
+ 	bool   isdamage;
+ 
+ 	/*Fetch constants needed: */
+@@ -688,7 +688,7 @@
+ 	iomodel->Constant(&control_analysis,InversionIscontrolEnum);
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+ 	iomodel->Constant(&materials_type,MaterialsEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 
+ 	/*return if no processing required*/
+Index: ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/ThermalAnalysis.cpp	(revision 20459)
+@@ -88,9 +88,9 @@
+ 		}
+ 	}
+ 
+-	bool dakota_analysis, islevelset;
++	bool dakota_analysis, ismovingfront;
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+@@ -115,7 +115,7 @@
+ 	InputUpdateFromConstantx(elements,0.,VxMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VyMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VzMeshEnum);
+-	if(islevelset){
++	if(ismovingfront){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+ 	/*Basal forcings variables*/
+Index: ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp	(revision 20459)
+@@ -42,10 +42,10 @@
+ void DamageEvolutionAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+ 	int finiteelement;
+-	bool   islevelset;
++	bool   ismovingfront;
+ 
+ 	iomodel->Constant(&finiteelement,DamageElementinterpEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 
+ 	/*Update elements: */
+ 	int counter=0;
+Index: ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp	(revision 20459)
+@@ -106,7 +106,7 @@
+ }/*}}}*/
+ void EnthalpyAnalysis::UpdateElements(Elements* elements,IoModel* iomodel,int analysis_counter,int analysis_type){/*{{{*/
+ 
+-	bool dakota_analysis,islevelset,isenthalpy;
++	bool dakota_analysis,ismovingfront,isenthalpy;
+ 	int frictionlaw,basalforcing_model;
+ 	int FrictionCoupling;
+ 	
+@@ -131,7 +131,7 @@
+ 	}
+ 
+ 	iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum);
+-	iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++	iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 	iomodel->Constant(&frictionlaw,FrictionLawEnum);
+ 
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+@@ -158,7 +158,7 @@
+ 	InputUpdateFromConstantx(elements,0.,VxMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VyMeshEnum);
+ 	InputUpdateFromConstantx(elements,0.,VzMeshEnum);
+-	if(islevelset){
++	if(ismovingfront){
+ 		iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum); // required for updating active nodes
+ 	}
+ 
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20458)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20459)
+@@ -1042,7 +1042,6 @@
+ 	LliboutryDuvalEnum,
+ 	/*}}}*/
+ 	/*Levelset related enums (will be moved to appropriate place when finished){{{*/
+-	TransientIslevelsetEnum,
+ 	SpcLevelsetEnum,
+ 	ExtrapolationVariableEnum,
+ 	IceMaskNodeActivationEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20459)
+@@ -996,7 +996,6 @@
+ 		case PatersonEnum : return "Paterson";
+ 		case ArrheniusEnum : return "Arrhenius";
+ 		case LliboutryDuvalEnum : return "LliboutryDuval";
+-		case TransientIslevelsetEnum : return "TransientIslevelset";
+ 		case SpcLevelsetEnum : return "SpcLevelset";
+ 		case ExtrapolationVariableEnum : return "ExtrapolationVariable";
+ 		case IceMaskNodeActivationEnum : return "IceMaskNodeActivation";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20459)
+@@ -1020,7 +1020,6 @@
+ 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
+ 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+ 	      else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
+-	      else if (strcmp(name,"TransientIslevelset")==0) return TransientIslevelsetEnum;
+ 	      else if (strcmp(name,"SpcLevelset")==0) return SpcLevelsetEnum;
+ 	      else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
+ 	      else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 20459)
+@@ -79,7 +79,6 @@
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsthermalEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsgroundinglineEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsgiaEnum));
+-		parameters->AddObject(iomodel->CopyConstantObject(TransientIslevelsetEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsdamageevolutionEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIshydrologyEnum));
+ 		parameters->AddObject(iomodel->CopyConstantObject(TransientIsmovingfrontEnum));
+Index: ../trunk-jpl/src/c/cores/transient_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/cores/transient_core.cpp	(revision 20459)
+@@ -20,7 +20,7 @@
+ 
+ 	/*parameters: */
+ 	IssmDouble starttime,finaltime,dt,yts;
+-	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isslr,iscoupler,islevelset,isdamageevolution,ishydrology,ismovingfront;
++	bool       isstressbalance,ismasstransport,issmb,isFS,isthermal,isgroundingline,isgia,isslr,iscoupler,ismovingfront,isdamageevolution,ishydrology;
+ 	bool       save_results,dakota_analysis;
+ 	bool       time_adapt;
+ 	int        output_frequency;
+@@ -53,11 +53,10 @@
+ 	femmodel->parameters->FindParam(&isslr,TransientIsslrEnum);
+ 	femmodel->parameters->FindParam(&iscoupler,TransientIscouplerEnum);
+ 	femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
++	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
+ 	femmodel->parameters->FindParam(&ishydrology,TransientIshydrologyEnum);
+ 	femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
+-	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
+ 	femmodel->parameters->FindParam(&numoutputs,TransientNumRequestedOutputsEnum);
+ 	if(numoutputs) femmodel->parameters->FindParam(&requested_outputs,&numoutputs,TransientRequestedOutputsEnum);
+@@ -103,7 +102,7 @@
+ 
+ 		if(isdamageevolution) damage_core(femmodel);
+ 
+-		if(islevelset)	movingfront_core(femmodel);
++		if(ismovingfront)	movingfront_core(femmodel);
+ 
+ 		/* from here on, prepare geometry for next time step*/
+ 		if(issmb)smb_core(femmodel);
+Index: ../trunk-jpl/src/c/cores/movingfront_core.cpp
+===================================================================
+--- ../trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/cores/movingfront_core.cpp	(revision 20459)
+@@ -23,14 +23,13 @@
+ 	femmodel->parameters->FindParam(&isstressbalance,TransientIsstressbalanceEnum);
+ 	femmodel->parameters->FindParam(&ismasstransport,TransientIsmasstransportEnum);
+ 	femmodel->parameters->FindParam(&isthermal,TransientIsthermalEnum);
+-	femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
+ 	femmodel->parameters->FindParam(&ismovingfront,TransientIsmovingfrontEnum);
+ 	if(isthermal && domaintype==Domain3DEnum) femmodel->parameters->FindParam(&isenthalpy,ThermalIsenthalpyEnum);
+ 
+-	if(!islevelset) return;
++	if(!ismovingfront) return;
+ 
+ 	/* start the work from here */
+-	if(ismovingfront) Calvingx(femmodel);
++	Calvingx(femmodel);
+ 	if(VerboseSolution()) _printf0_("   computing levelset transport\n");
+ 	/* smoothen slope of lsf for computation of normal on ice domain*/
+ 	levelsetfunctionslope_core(femmodel);
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20458)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20459)
+@@ -545,12 +545,12 @@
+ 			break;
+ 
+ 		case TransientSolutionEnum:{
+-			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,islevelset,ishydrology,isdamage,issmb,isslr;
++			bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslr;
+ 			iomodel->Constant(&isSIA,FlowequationIsSIAEnum);
+ 			iomodel->Constant(&isFS,FlowequationIsFSEnum);
+ 			iomodel->Constant(&isthermal,TransientIsthermalEnum);
+ 			iomodel->Constant(&isenthalpy,ThermalIsenthalpyEnum);
+-			iomodel->Constant(&islevelset,TransientIslevelsetEnum);
++			iomodel->Constant(&ismovingfront,TransientIsmovingfrontEnum);
+ 			iomodel->Constant(&ismasstransport,TransientIsmasstransportEnum);
+ 			iomodel->Constant(&isstressbalance,TransientIsstressbalanceEnum);
+ 			iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
+@@ -584,7 +584,7 @@
+ 				analyses_temp[numanalyses++]=MasstransportAnalysisEnum;
+ 			}
+ 			if(issmb) analyses_temp[numanalyses++]=SmbAnalysisEnum;
+-			if(islevelset){
++			if(ismovingfront){
+ 				analyses_temp[numanalyses++]=LevelsetAnalysisEnum;
+ 				analyses_temp[numanalyses++]=ExtrapolationAnalysisEnum;
+ 				analyses_temp[numanalyses++]=LsfReinitializationAnalysisEnum;
+Index: ../trunk-jpl/src/m/classes/calvingpi.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingpi.m	(revision 20458)
++++ ../trunk-jpl/src/m/classes/calvingpi.m	(revision 20459)
+@@ -1,71 +0,0 @@
+-%CALVINGPI class definition
+-%
+-%   Usage:
+-%      calvingpi=calvingpi();
+-
+-classdef calvingpi
+-	properties (SetAccess=public) 
+-		stabilization = 0;
+-		spclevelset   = NaN;
+-		coeff         = NaN;
+-		meltingrate   = NaN;
+-	end
+-	methods
+-		function self = calvingpi(varargin) % {{{
+-			switch nargin
+-				case 0
+-					self=setdefaultparameters(self);
+-				case 1
+-					inputstruct=varargin{1};
+-					list1 = properties('calvingpi');
+-					list2 = fieldnames(inputstruct);
+-					for i=1:length(list1)
+-						fieldname = list1{i};
+-						if ismember(fieldname,list2),
+-							self.(fieldname) = inputstruct.(fieldname);
+-						end
+-					end
+-				otherwise
+-					error('constructor not supported');
+-			end
+-		end % }}}
+-		function self = extrude(self,md) % {{{
+-			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+-			self.coeff=project3d(md,'vector',self.coeff,'type','node');
+-			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+-		end % }}}
+-		function self = setdefaultparameters(self) % {{{
+-
+-			%stabilization = 2 by default
+-			self.stabilization = 2;
+-
+-			%Proportionality coefficient in Pi model
+-			self.coeff=2e13;
+-		end % }}}
+-		function md = checkconsistency(self,md,solution,analyses) % {{{
+-			%Early return
+-			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+-
+-			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+-			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+-			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+-		end % }}}
+-		function disp(self) % {{{
+-			disp(sprintf('   Calving Pi parameters:'));
+-			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+-			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+-			fielddisplay(self,'coeff','proportionality coefficient in Pi model');
+-			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+-
+-		end % }}}
+-		function marshall(self,md,fid) % {{{
+-			yts=365.0*24.0*3600.0;
+-			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingPiEnum(),'format','Integer');
+-			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+-			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+-		end % }}}
+-	end
+-end
+Index: ../trunk-jpl/src/m/classes/transient.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.m	(revision 20458)
++++ ../trunk-jpl/src/m/classes/transient.m	(revision 20459)
+@@ -12,7 +12,6 @@
+ 		isgroundingline   = 0;
+ 		isgia             = 0;
+ 		isdamageevolution = 0;
+-		islevelset        = 0;
+ 		ismovingfront     = 0;
+ 		ishydrology       = 0;
+ 		isslr             = 0;
+@@ -38,7 +37,6 @@
+ 			self.isgroundingline = 0;
+ 			self.isgia           = 0;
+ 			self.isdamageevolution = 0;
+-			self.islevelset      = 0;
+ 			self.ismovingfront   =0;
+ 			self.ishydrology     = 0;
+ 			self.isslr           = 0;
+@@ -57,7 +55,6 @@
+ 			self.isgroundingline = 0;
+ 			self.isgia           = 0;
+ 			self.isdamageevolution = 0;
+-			self.islevelset      = 0;
+ 			self.ismovingfront   = 0;
+ 			self.ishydrology     = 0;
+ 			self.isslr           = 0;
+@@ -85,7 +82,6 @@
+ 			md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0 1]);
+-			md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.ismovingfront','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0 1]);
+ 			md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1);
+@@ -103,7 +99,6 @@
+ 			fielddisplay(self,'isgroundingline','indicates whether a groundingline migration is used in the transient');
+ 			fielddisplay(self,'isgia','indicates whether a postglacial rebound model is used in the transient');
+ 			fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient');
+-			fielddisplay(self,'islevelset','LEVEL SET DESCRIPTION...');
+ 			fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient');
+ 			fielddisplay(self,'ishydrology','indicates whether an hydrology model is used');
+ 			fielddisplay(self,'isslr','indicates whether a sea-level rise solution is used in the transient');
+@@ -120,7 +115,6 @@
+ 			WriteData(fid,'object',self,'fieldname','isgia','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean');
+-			WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','ismovingfront','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','isslr','format','Boolean');
+ 			WriteData(fid,'object',self,'fieldname','iscoupler','format','Boolean');
+@@ -143,7 +137,6 @@
+ 			writejsdouble(fid,[modelname '.trans.isgroundingline'],self.isgroundingline);
+ 			writejsdouble(fid,[modelname '.trans.isgia'],self.isgia);
+ 			writejsdouble(fid,[modelname '.trans.isdamageevolution'],self.isdamageevolution);
+-			writejsdouble(fid,[modelname '.trans.islevelset'],self.islevelset);
+ 			writejsdouble(fid,[modelname '.trans.ismovingfront'],self.ismovingfront);
+ 			writejsdouble(fid,[modelname '.trans.ishydrology'],self.ishydrology);
+ 			writejsdouble(fid,[modelname '.trans.isslr'],self.isslr);
+Index: ../trunk-jpl/src/m/classes/transient.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/transient.py	(revision 20458)
++++ ../trunk-jpl/src/m/classes/transient.py	(revision 20459)
+@@ -19,7 +19,6 @@
+ 		self.isgroundingline   = False
+ 		self.isgia             = False
+ 		self.isdamageevolution = False
+-		self.islevelset        = False
+ 		self.ismovingfront     = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
+@@ -39,7 +38,6 @@
+ 		string="%s\n%s"%(string,fielddisplay(self,'isgroundingline','indicates if a groundingline migration is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))
+-		string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ismovingfront','indicates whether a moving front capability is used in the transient'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'ishydrology','indicates whether an hydrology model is used'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'isslr','indicates if a sea level rise solution is used in the transient'))
+@@ -65,7 +63,6 @@
+ 		self.isgroundingline   = False
+ 		self.isgia             = False
+ 		self.isdamageevolution = False
+-		self.islevelset        = False
+ 		self.ismovingfront     = False
+ 		self.ishydrology       = False
+ 		self.isslr             = False
+@@ -85,7 +82,6 @@
+ 		self.isgroundingline = False
+ 		self.isgia           = False
+ 		self.isdamageevolution = False
+-		self.islevelset      = False
+ 		self.ismovingfront   = False
+ 		self.ishydrology     = False
+ 		self.isslr           = False
+@@ -108,7 +104,6 @@
+ 		md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])
+-		md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.ishydrology','numel',[1],'values',[0,1])
+ 		md = checkfield(md,'fieldname','transient.ismovingfront','numel',[1],'values',[0,1]);
+ 		md = checkfield(md,'fieldname','transient.isslr','numel',[1],'values',[0,1])
+@@ -125,7 +120,6 @@
+ 		WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean')
+-		WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','ishydrology','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','ismovingfront','format','Boolean')
+ 		WriteData(fid,'object',self,'fieldname','isslr','format','Boolean')
+Index: ../trunk-jpl/src/m/classes/trans.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/trans.js	(revision 20458)
++++ ../trunk-jpl/src/m/classes/trans.js	(revision 20459)
+@@ -15,7 +15,6 @@
+ 		this.isgroundingline = 0;
+ 		this.isgia           = 0;
+ 		this.isdamageevolution = 0;
+-		this.islevelset      = 0;
+ 		this.ismovingfront   = 0;
+ 		this.ishydrology     = 0;
+ 		this.isslr           = 0;
+@@ -36,7 +35,6 @@
+ 		fielddisplay(this,'isgroundingline','indicates whether a groundingline migration is used in the transient');
+ 		fielddisplay(this,'isgia','indicates whether a postglacial rebound model is used in the transient');
+ 		fielddisplay(this,'isdamageevolution','indicates whether damage evolution is used in the transient');
+-		fielddisplay(this,'islevelset','LEVEL SET DESCRIPTION...');
+ 		fielddisplay(this,'ismovingfront','indicates whether a moving front capability is used in the transient');
+ 		fielddisplay(this,'ishydrology','indicates whether an hydrology model is used');
+ 		fielddisplay(this,'isslr','indicates whether a sea-level rise model is used');
+@@ -60,7 +58,6 @@
+ 			checkfield(md,'fieldname','trans.isgroundingline','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.isgia','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.isdamageevolution','numel',[1],'values',[0, 1]);
+-			checkfield(md,'fieldname','trans.islevelset','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.ismovingfront','numel',[1],'values',[0, 1]);
+ 			checkfield(md,'fieldname','trans.ishydrology','numel',[1],'values',[0 ,1]);
+ 			checkfield(md,'fieldname','trans.iscoupler','numel',[1],'values',[0 ,1]);
+@@ -76,7 +73,6 @@
+ 			WriteData(fid,'object',this,'fieldname','isgia','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','isdamageevolution','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','ishydrology','format','Boolean');
+-			WriteData(fid,'object',this,'fieldname','islevelset','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','ismovingfront','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','isslr','format','Boolean');
+ 			WriteData(fid,'object',this,'fieldname','iscoupler','format','Boolean');
+@@ -108,7 +104,6 @@
+ 	this.isgroundingline   = 0;
+ 	this.isgia             = 0;
+ 	this.isdamageevolution = 0;
+-	this.islevelset        = 0;
+ 	this.ismovingfront     = 0;
+ 	this.ishydrology       = 0;
+ 	this.isslr             = 0;
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20458)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20459)
+@@ -981,31 +981,30 @@
+ function PatersonEnum(){ return 977;}
+ function ArrheniusEnum(){ return 978;}
+ function LliboutryDuvalEnum(){ return 979;}
+-function TransientIslevelsetEnum(){ return 980;}
+-function SpcLevelsetEnum(){ return 981;}
+-function ExtrapolationVariableEnum(){ return 982;}
+-function IceMaskNodeActivationEnum(){ return 983;}
+-function LevelsetfunctionSlopeXEnum(){ return 984;}
+-function LevelsetfunctionSlopeYEnum(){ return 985;}
+-function LevelsetfunctionPicardEnum(){ return 986;}
+-function SealevelriseSolutionEnum(){ return 987;}
+-function SealevelriseAnalysisEnum(){ return 988;}
+-function SealevelEnum(){ return 989;}
+-function SealevelEustaticEnum(){ return 990;}
+-function SealevelriseDeltathicknessEnum(){ return 991;}
+-function SealevelriseMaxiterEnum(){ return 992;}
+-function SealevelriseReltolEnum(){ return 993;}
+-function SealevelriseAbstolEnum(){ return 994;}
+-function SealevelriseLoveHEnum(){ return 995;}
+-function SealevelriseLoveKEnum(){ return 996;}
+-function SealevelriseTideLoveHEnum(){ return 997;}
+-function SealevelriseTideLoveKEnum(){ return 998;}
+-function SealevelriseRigidEnum(){ return 999;}
+-function SealevelriseElasticEnum(){ return 1000;}
+-function SealevelriseRotationEnum(){ return 1001;}
+-function SealevelriseGElasticEnum(){ return 1002;}
+-function SealevelriseDegaccEnum(){ return 1003;}
+-function SealevelriseTransitionsEnum(){ return 1004;}
+-function SealevelriseRequestedOutputsEnum(){ return 1005;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 1006;}
+-function MaximumNumberOfDefinitionsEnum(){ return 1007;}
++function SpcLevelsetEnum(){ return 980;}
++function ExtrapolationVariableEnum(){ return 981;}
++function IceMaskNodeActivationEnum(){ return 982;}
++function LevelsetfunctionSlopeXEnum(){ return 983;}
++function LevelsetfunctionSlopeYEnum(){ return 984;}
++function LevelsetfunctionPicardEnum(){ return 985;}
++function SealevelriseSolutionEnum(){ return 986;}
++function SealevelriseAnalysisEnum(){ return 987;}
++function SealevelEnum(){ return 988;}
++function SealevelEustaticEnum(){ return 989;}
++function SealevelriseDeltathicknessEnum(){ return 990;}
++function SealevelriseMaxiterEnum(){ return 991;}
++function SealevelriseReltolEnum(){ return 992;}
++function SealevelriseAbstolEnum(){ return 993;}
++function SealevelriseLoveHEnum(){ return 994;}
++function SealevelriseLoveKEnum(){ return 995;}
++function SealevelriseTideLoveHEnum(){ return 996;}
++function SealevelriseTideLoveKEnum(){ return 997;}
++function SealevelriseRigidEnum(){ return 998;}
++function SealevelriseElasticEnum(){ return 999;}
++function SealevelriseRotationEnum(){ return 1000;}
++function SealevelriseGElasticEnum(){ return 1001;}
++function SealevelriseDegaccEnum(){ return 1002;}
++function SealevelriseTransitionsEnum(){ return 1003;}
++function SealevelriseRequestedOutputsEnum(){ return 1004;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1005;}
++function MaximumNumberOfDefinitionsEnum(){ return 1006;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20458)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20459)
+@@ -988,7 +988,6 @@
+ def PatersonEnum(): return StringToEnum("Paterson")[0]
+ def ArrheniusEnum(): return StringToEnum("Arrhenius")[0]
+ def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
+-def TransientIslevelsetEnum(): return StringToEnum("TransientIslevelset")[0]
+ def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
+ def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
+ def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20459-20460.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20459-20460.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20459-20460.diff	(revision 20498)
@@ -0,0 +1,756 @@
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20459)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20460)
+@@ -1048,6 +1048,7 @@
+ 	LevelsetfunctionSlopeXEnum,
+ 	LevelsetfunctionSlopeYEnum,
+ 	LevelsetfunctionPicardEnum,
++	LevelsetReinitFrequencyEnum,
+ 	/*}}}*/
+ 	/*Sea Level Rise{{{*/
+ 	SealevelriseSolutionEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20459)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20460)
+@@ -1002,6 +1002,7 @@
+ 		case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX";
+ 		case LevelsetfunctionSlopeYEnum : return "LevelsetfunctionSlopeY";
+ 		case LevelsetfunctionPicardEnum : return "LevelsetfunctionPicard";
++		case LevelsetReinitFrequencyEnum : return "LevelsetReinitFrequency";
+ 		case SealevelriseSolutionEnum : return "SealevelriseSolution";
+ 		case SealevelriseAnalysisEnum : return "SealevelriseAnalysis";
+ 		case SealevelEnum : return "Sealevel";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20459)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20460)
+@@ -1026,6 +1026,7 @@
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
++	      else if (strcmp(name,"LevelsetReinitFrequency")==0) return LevelsetReinitFrequencyEnum;
+ 	      else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
+ 	      else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
+ 	      else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
+Index: ../trunk-jpl/src/m/classes/levelset.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.js	(revision 0)
++++ ../trunk-jpl/src/m/classes/levelset.js	(revision 20460)
+@@ -0,0 +1,51 @@
++//LEVELSET class definition
++//
++//   Usage:
++//      levelset=new levelset();
++
++function levelset (){
++	//methods
++	this.setdefaultparameters = function(){// {{{
++
++		//stabilization = 2 by default
++		this.stabilization		= 2;
++		this.reinit_frequency	= NaN;
++	
++	}// }}}
++	this.disp= function(){// {{{
++
++		console.log(sprintf('   Level-set parameters:'));
++		fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++		fielddisplay(this,'spclevelset','Levelset constraints (NaN means no constraint)');
++		fielddisplay(this,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized (NaN: no re-initialization).');
++
++	}// }}}
++	this.classname= function(){// {{{
++		return "levelset";
++	}// }}}
++	this.checkconsistency = function(md,solution,analyses) { // {{{
++		//Early return
++		if (solution!=TransientSolutionEnum() | md.trans.ismovingfront==0) return;
++
++		checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1);
++		checkfield(md,'fieldname','levelset.stabilization','values',[0,1,2]);
++	} //}}}
++		this.marshall=function(md,fid) { //{{{
++			WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
++			WriteData(fid,'enum',SpcLevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','levelset','fieldname','reinit_frequency','format','Integer');
++
++		}//}}}
++		this.fix=function() { //{{{
++			this.spclevelset=NullFix(this.spclevelset,NaN);
++		}//}}}
++	//properties 
++	// {{{
++
++	this.stabilization		= 0;
++	this.spclevelset			= NaN;
++	this.reinit_frequency	= NaN;
++
++	this.setdefaultparameters();
++	//}}}
++}
+Index: ../trunk-jpl/src/m/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.py	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calving.py	(revision 20460)
+@@ -15,8 +15,6 @@
+ 
+ 	def __init__(self): # {{{
+ 
+-		self.stabilization = 0
+-		self.spclevelset   = float('NaN')
+ 		self.calvingrate   = float('NaN')
+ 		self.meltingrate   = float('NaN')
+ 
+@@ -26,24 +24,18 @@
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string='   Calving parameters:'
+-		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
+-		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
+ 
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+-		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
+ 		self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
+ 		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
+ 		return self
+ 	#}}}
+ 	def setdefaultparameters(self): # {{{
+ 
+-		#stabilization = 2 by default
+-		self.stabilization = 2
+-
+ 		return self
+ 	#}}}
+ 	def checkconsistency(self,md,solution,analyses):    # {{{
+@@ -52,8 +44,6 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.ismovingfront):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+-		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 
+@@ -64,8 +54,6 @@
+ 		yts=365.*24.*3600.
+ 
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+-		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/levelset.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.m	(revision 0)
++++ ../trunk-jpl/src/m/classes/levelset.m	(revision 20460)
+@@ -0,0 +1,69 @@
++%LEVELSET class definition
++%
++%   Usage:
++%      levelset=levelset();
++
++classdef levelset
++	properties (SetAccess=public) 
++		stabilization		= 0;
++		spclevelset			= NaN;
++		reinit_frequency	= NaN;
++	end
++	methods
++		function self = levelset(varargin) % {{{
++			switch nargin
++				case 0
++					self=setdefaultparameters(self);
++				case 1
++					inputstruct=varargin{1};
++					list1 = properties('levelset');
++					list2 = fieldnames(inputstruct);
++					for i=1:length(list1)
++						fieldname = list1{i};
++						if ismember(fieldname,list2),
++							self.(fieldname) = inputstruct.(fieldname);
++						end
++					end
++				otherwise
++					error('constructor not supported');
++			end
++		end % }}}
++		function self = extrude(self,md) % {{{
++
++			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
++		end % }}}
++		function self = setdefaultparameters(self) % {{{
++
++			%stabilization = 2 by default
++			self.stabilization = 2;
++			self.reinit_frequency = NaN;
++
++		end % }}}
++		function md = checkconsistency(self,md,solution,analyses) % {{{
++			%Early return
++			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
++
++			md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1);
++			md = checkfield(md,'fieldname','levelset.stabilization','values',[0 1 2]);
++		end % }}}
++		function disp(self) % {{{
++			disp(sprintf('   Level-set parameters:'));
++			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
++			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
++			fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized (NaN: no re-initialization).');
++		end % }}}
++		function marshall(self,md,fid) % {{{
++			WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
++			WriteData(fid,'enum',SpclevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'object',self,'class','levelset','fieldname','reinit_frequency','format','Integer');
++		end % }}}
++		function savemodeljs(self,fid,modelname) % {{{
++		
++			writejsdouble(fid,[modelname '.levelset.stabilization'],self.stabilization);
++			writejs1Darray(fid,[modelname '.levelset.spclevelset'],self.spclevelset);
++			writejs1Darray(fid,[modelname '.levelset.reinit_frequency'],self.reinit_frequency);
++
++		end % }}}
++	end
++end
++
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.py	(revision 20460)
+@@ -14,8 +14,6 @@
+ 
+ 	def __init__(self): # {{{
+ 
+-		self.stabilization = 0
+-		self.spclevelset   = float('NaN')
+ 		self.coeff         = float('NaN')
+ 		self.meltingrate   = float('NaN')
+ 
+@@ -25,24 +23,18 @@
+ 		#}}}
+ 	def __repr__(self): # {{{
+ 		string='   Calving Levermann parameters:'
+-		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
+-		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'coeff','proportionality coefficient in Levermann model'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
+ 
+ 		return string
+ 		#}}}
+ 	def extrude(self,md): # {{{
+-		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
+ 		self.coeff=project3d(md,'vector',self.coeff,'type','node')
+ 		self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
+ 		return self
+ 	#}}}
+ 	def setdefaultparameters(self): # {{{
+ 
+-		#stabilization = 2 by default
+-		self.stabilization = 2
+-
+ 		#Proportionality coefficient in Levermann model
+ 		self.coeff=2e13;
+ 	#}}}
+@@ -52,8 +44,6 @@
+ 		if (solution!=TransientSolutionEnum()) or (not md.transient.ismovingfront):
+ 			return md
+ 
+-		md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1)
+-		md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		md = checkfield(md,'fieldname','calving.coeff','size',[md.mesh.numberofvertices],'>',0)
+ 		md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices],'>=',0)
+ 		return md
+@@ -61,8 +51,6 @@
+ 	def marshall(self,md,fid):    # {{{
+ 		yts=365.*24.*3600.
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
+-		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/m/classes/calving.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.js	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calving.js	(revision 20460)
+@@ -7,15 +7,10 @@
+ 	//methods
+ 	this.setdefaultparameters = function(){// {{{
+ 
+-		//stabilization = 2 by default
+-		this.stabilization = 2;
+-	
+ 	}// }}}
+ 	this.disp= function(){// {{{
+ 
+ 		console.log(sprintf('   Calving parameters:'));
+-		fielddisplay(this,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+-		fielddisplay(this,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 		fielddisplay(this,'calvingrate','calving rate at given location [m/a]');
+ 		fielddisplay(this,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -27,29 +22,22 @@
+ 		//Early return
+ 		if (solution!=TransientSolutionEnum() | md.trans.ismovingfront==0) return;
+ 
+-		checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+-		checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
+ 		checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 	} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+ 			var yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+-			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',this.stabilization,'format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',this,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 			WriteData(fid,'object',this,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		}//}}}
+ 		this.fix=function() { //{{{
+-			this.spclevelset=NullFix(this.spclevelset,NaN);
+ 			this.calvingrate=NullFix(this.calvingrate,NaN);
+ 			this.meltingrate=NullFix(this.meltingrate,NaN);
+ 		}//}}}
+ 	//properties 
+ 	// {{{
+ 
+-	this.stabilization = 0;
+-	this.spclevelset   = NaN;
+ 	this.calvingrate   = NaN;
+ 	this.meltingrate   = NaN;
+ 
+Index: ../trunk-jpl/src/m/classes/calving.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calving.m	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calving.m	(revision 20460)
+@@ -5,8 +5,6 @@
+ 
+ classdef calving
+ 	properties (SetAccess=public) 
+-		stabilization = 0;
+-		spclevelset   = NaN;
+ 		calvingrate   = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -30,44 +28,32 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+-			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+ 
+-			%stabilization = 2 by default
+-			self.stabilization = 2;
+-
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 			md = checkfield(md,'fieldname','calving.meltingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving parameters:'));
+-			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+-			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'calvingrate','calving rate at given location [m/a]');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+-			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+ 		function savemodeljs(self,fid,modelname) % {{{
+ 		
+-			writejsdouble(fid,[modelname '.calving.stabilization'],self.stabilization);
+-			writejs1Darray(fid,[modelname '.calving.spclevelset'],self.spclevelset);
+ 			writejs1Darray(fid,[modelname '.calving.calvingrate'],self.calvingrate);
+ 			writejs1Darray(fid,[modelname '.calving.meltingrate'],self.meltingrate);
+ 
+Index: ../trunk-jpl/src/m/classes/model.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.m	(revision 20459)
++++ ../trunk-jpl/src/m/classes/model.m	(revision 20460)
+@@ -37,6 +37,7 @@
+ 		thermal          = 0;
+ 		steadystate      = 0;
+ 		transient        = 0;
++		levelset			  = 0;
+ 		calving          = 0;
+ 		gia              = 0;
+ 
+@@ -126,6 +127,7 @@
+ 			if isa(md.slr,'double');
+ 				md.slr=slr();
+ 			end
++
+ 		end% }}}
+ 	end
+ 	methods
+@@ -751,6 +753,7 @@
+ 			md.stressbalance=extrude(md.stressbalance,md);
+ 			md.thermal=md.thermal.extrude(md);
+ 			md.masstransport=md.masstransport.extrude(md);
++			md.levelset=extrude(md.levelset,md);
+ 			md.calving=extrude(md.calving,md);
+ 			md.hydrology = extrude(md.hydrology,md);
+ 
+@@ -1086,6 +1089,7 @@
+ 			md.thermal          = thermal();
+ 			md.steadystate      = steadystate();
+ 			md.transient        = transient();
++			md.levelset			  = levelset();
+ 			md.calving          = calving();
+ 			md.gia              = gia();
+ 			md.autodiff         = autodiff();
+@@ -1257,6 +1261,7 @@
+ 			disp(sprintf('%19s: %-22s -- %s','thermal'         ,['[1x1 ' class(self.thermal) ']'],'parameters for thermal solution'));
+ 			disp(sprintf('%19s: %-22s -- %s','steadystate'     ,['[1x1 ' class(self.steadystate) ']'],'parameters for steadystate solution'));
+ 			disp(sprintf('%19s: %-22s -- %s','transient'       ,['[1x1 ' class(self.transient) ']'],'parameters for transient solution'));
++			disp(sprintf('%19s: %-22s -- %s','levelset'         ,['[1x1 ' class(self.levelset) ']'],'parameters for moving boundaries (level-set method)'));
+ 			disp(sprintf('%19s: %-22s -- %s','calving'         ,['[1x1 ' class(self.calving) ']'],'parameters for calving'));
+ 			disp(sprintf('%19s: %-22s -- %s','gia'             ,['[1x1 ' class(self.gia) ']'],'parameters for gia solution'));
+ 			disp(sprintf('%19s: %-22s -- %s','autodiff'        ,['[1x1 ' class(self.autodiff) ']'],'automatic differentiation parameters'));
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20460)
+@@ -5,8 +5,6 @@
+ 
+ classdef calvingdev
+ 	properties (SetAccess=public) 
+-		stabilization = 0;
+-		spclevelset   = NaN;
+ 		coeff         = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -30,15 +28,11 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+-			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.coeff=project3d(md,'vector',self.coeff,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+ 
+-			%stabilization = 2 by default
+-			self.stabilization = 2;
+-
+ 			%Proportionality coefficient in Pi model
+ 			self.coeff=2e13;
+ 		end % }}}
+@@ -46,15 +40,11 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Pi parameters:'));
+-			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+-			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'coeff','proportionality coefficient in Pi model');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -62,8 +52,6 @@
+ 		function marshall(self,md,fid) % {{{
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingDevEnum(),'format','Integer');
+-			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'class','calving','object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/calvinglevermann.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20459)
++++ ../trunk-jpl/src/m/classes/calvinglevermann.m	(revision 20460)
+@@ -5,8 +5,6 @@
+ 
+ classdef calvinglevermann
+ 	properties (SetAccess=public) 
+-		stabilization = 0;
+-		spclevelset   = NaN;
+ 		coeff         = NaN;
+ 		meltingrate   = NaN;
+ 	end
+@@ -30,15 +28,11 @@
+ 			end
+ 		end % }}}
+ 		function self = extrude(self,md) % {{{
+-			self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
+ 			self.coeff=project3d(md,'vector',self.coeff,'type','node');
+ 			self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
+ 		end % }}}
+ 		function self = setdefaultparameters(self) % {{{
+ 
+-			%stabilization = 2 by default
+-			self.stabilization = 2;
+-
+ 			%Proportionality coefficient in Levermann model
+ 			self.coeff=2e13;
+ 		end % }}}
+@@ -46,15 +40,11 @@
+ 			%Early return
+ 			if (solution~=TransientSolutionEnum() | md.transient.ismovingfront==0), return; end
+ 
+-			md = checkfield(md,'fieldname','calving.spclevelset','Inf',1,'timeseries',1);
+-			md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
+ 			md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
+ 			md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
+ 		end % }}}
+ 		function disp(self) % {{{
+ 			disp(sprintf('   Calving Levermann parameters:'));
+-			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+-			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+ 			fielddisplay(self,'coeff','proportionality coefficient in Levermann model');
+ 			fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
+ 
+@@ -62,8 +52,6 @@
+ 		function marshall(self,md,fid) % {{{
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
+-			WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+Index: ../trunk-jpl/src/m/classes/model.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.py	(revision 20459)
++++ ../trunk-jpl/src/m/classes/model.py	(revision 20460)
+@@ -15,6 +15,7 @@
+ from SMBmeltcomponents import SMBmeltcomponents
+ from basalforcings import basalforcings
+ from matice import matice
++from levelset import levelset 
+ from calving import calving
+ from calvinglevermann import calvinglevermann
+ #from calvingpi import calvingpi
+@@ -102,6 +103,7 @@
+ 		self.thermal          = thermal()
+ 		self.steadystate      = steadystate()
+ 		self.transient        = transient()
++		self.levelset         = levelset()
+ 		self.calving          = calving()
+ 		self.gia              = gia()
+ 
+@@ -145,6 +147,7 @@
+ 		        'thermal',\
+ 		        'steadystate',\
+ 		        'transient',\
++		        'levelset',\
+ 		        'calving',\
+ 						'gia',\
+ 		        'autodiff',\
+@@ -186,6 +189,7 @@
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("thermal","[%s,%s]" % ("1x1",obj.thermal.__class__.__name__),"parameters for thermal solution"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("steadystate","[%s,%s]" % ("1x1",obj.steadystate.__class__.__name__),"parameters for steadystate solution"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution"))
++		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("levelset","[%s,%s]" % ("1x1",obj.levelset.__class__.__name__),"parameters for moving boundaries (level-set method)"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters"))
+ 		string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))
+@@ -623,6 +627,7 @@
+ 
+ 		# Calving variables
+ 		md.hydrology.extrude(md)
++		md.levelset.extrude(md)
+ 		md.calving.extrude(md)
+ 
+ 		#connectivity
+Index: ../trunk-jpl/src/m/classes/levelset.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.py	(revision 0)
++++ ../trunk-jpl/src/m/classes/levelset.py	(revision 20460)
+@@ -0,0 +1,62 @@
++from fielddisplay import fielddisplay
++from project3d import project3d
++from EnumDefinitions import *
++from StringToEnum import StringToEnum
++from checkfield import checkfield
++from WriteData import WriteData
++
++class levelset(object):
++	"""
++	LEVELSET class definition
++
++	   Usage:
++	      levelset=levelset();
++	"""
++
++	def __init__(self): # {{{
++
++		self.stabilization = 0
++		self.spclevelset   = float('NaN')
++		self.reinit_frequency = float('NaN')
++
++		#set defaults
++		self.setdefaultparameters()
++
++		#}}}
++	def __repr__(self): # {{{
++		string='   Level-set parameters:'
++		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
++		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
++		string="%s\n%s"%(string,fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized (NaN: no re-initialization).'))
++
++		return string
++		#}}}
++	def extrude(self,md): # {{{
++		self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
++		return self
++	#}}}
++	def setdefaultparameters(self): # {{{
++
++		#stabilization = 2 by default
++		self.stabilization = 2
++		self.reinit_frequency = float('NaN')
++
++		return self
++	#}}}
++	def checkconsistency(self,md,solution,analyses):    # {{{
++
++		#Early return
++		if (solution!=TransientSolutionEnum()) or (not md.transient.ismovingfront):
++			return md
++
++		md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1)
++		md = checkfield(md,'fieldname','levelset.stabilization','values',[0,1,2]);
++
++		return md
++	# }}}
++	def marshall(self,md,fid):    # {{{
++
++		WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
++		WriteData(fid,'enum',SpclevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		WriteData(fid,'object',self,'class','levelset','fieldname','reinit_frequency','format','Integer');
++	# }}}
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 20459)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 20460)
+@@ -34,6 +34,7 @@
+ 			console.log(sprintf("%19s: %-22s -- %s","thermal"         ,"[1x1 " + typeof(this.thermal) + "]","parameters for thermal solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","steadystate"     ,"[1x1 " + typeof(this.steadystate) + "]","parameters for steadystate solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","trans"       ,"[1x1 " + typeof(this.trans) + "]","parameters for trans solution"));
++			console.log(sprintf("%19s: %-22s -- %s","levelset"        ,"[1x1 " + typeof(this.levelset) + "]","parameters for moving boundaries (level-set method)"));
+ 			console.log(sprintf("%19s: %-22s -- %s","calving"         ,"[1x1 " + typeof(this.calving) + "]","parameters for calving"));
+ 			console.log(sprintf("%19s: %-22s -- %s","gia"             ,"[1x1 " + typeof(this.gia) + "]","parameters for gia solution"));
+ 			console.log(sprintf("%19s: %-22s -- %s","autodiff"        ,"[1x1 " + typeof(this.autodiff) + "]","automatic differentiation parameters"));
+@@ -75,6 +76,7 @@
+ 			this.thermal          = new thermal();
+ 			this.steadystate      = new steadystate();
+ 			this.trans            = new trans();
++			this.levelset			 = new levelset();
+ 			this.calving          = new calving();
+ 			this.gia              = new gia();
+ 			this.autodiff         = new autodiff();
+@@ -141,6 +143,7 @@
+ 		this.thermal          = 0;
+ 		this.steadystate      = 0;
+ 		this.trans            = 0;
++		this.levelset= 0;
+ 		this.calving          = 0;
+ 		this.gia              = 0;
+ 
+Index: ../trunk-jpl/src/m/enum/LevelsetReinitFrequencyEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/LevelsetReinitFrequencyEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/LevelsetReinitFrequencyEnum.m	(revision 20460)
+@@ -0,0 +1,11 @@
++function macro=LevelsetReinitFrequencyEnum()
++%LEVELSETREINITFREQUENCYENUM - Enum of LevelsetReinitFrequency
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=LevelsetReinitFrequencyEnum()
++
++macro=StringToEnum('LevelsetReinitFrequency');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20459)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20460)
+@@ -987,24 +987,25 @@
+ function LevelsetfunctionSlopeXEnum(){ return 983;}
+ function LevelsetfunctionSlopeYEnum(){ return 984;}
+ function LevelsetfunctionPicardEnum(){ return 985;}
+-function SealevelriseSolutionEnum(){ return 986;}
+-function SealevelriseAnalysisEnum(){ return 987;}
+-function SealevelEnum(){ return 988;}
+-function SealevelEustaticEnum(){ return 989;}
+-function SealevelriseDeltathicknessEnum(){ return 990;}
+-function SealevelriseMaxiterEnum(){ return 991;}
+-function SealevelriseReltolEnum(){ return 992;}
+-function SealevelriseAbstolEnum(){ return 993;}
+-function SealevelriseLoveHEnum(){ return 994;}
+-function SealevelriseLoveKEnum(){ return 995;}
+-function SealevelriseTideLoveHEnum(){ return 996;}
+-function SealevelriseTideLoveKEnum(){ return 997;}
+-function SealevelriseRigidEnum(){ return 998;}
+-function SealevelriseElasticEnum(){ return 999;}
+-function SealevelriseRotationEnum(){ return 1000;}
+-function SealevelriseGElasticEnum(){ return 1001;}
+-function SealevelriseDegaccEnum(){ return 1002;}
+-function SealevelriseTransitionsEnum(){ return 1003;}
+-function SealevelriseRequestedOutputsEnum(){ return 1004;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 1005;}
+-function MaximumNumberOfDefinitionsEnum(){ return 1006;}
++function LevelsetReinitFrequencyEnum(){ return 986;}
++function SealevelriseSolutionEnum(){ return 987;}
++function SealevelriseAnalysisEnum(){ return 988;}
++function SealevelEnum(){ return 989;}
++function SealevelEustaticEnum(){ return 990;}
++function SealevelriseDeltathicknessEnum(){ return 991;}
++function SealevelriseMaxiterEnum(){ return 992;}
++function SealevelriseReltolEnum(){ return 993;}
++function SealevelriseAbstolEnum(){ return 994;}
++function SealevelriseLoveHEnum(){ return 995;}
++function SealevelriseLoveKEnum(){ return 996;}
++function SealevelriseTideLoveHEnum(){ return 997;}
++function SealevelriseTideLoveKEnum(){ return 998;}
++function SealevelriseRigidEnum(){ return 999;}
++function SealevelriseElasticEnum(){ return 1000;}
++function SealevelriseRotationEnum(){ return 1001;}
++function SealevelriseGElasticEnum(){ return 1002;}
++function SealevelriseDegaccEnum(){ return 1003;}
++function SealevelriseTransitionsEnum(){ return 1004;}
++function SealevelriseRequestedOutputsEnum(){ return 1005;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1006;}
++function MaximumNumberOfDefinitionsEnum(){ return 1007;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20459)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20460)
+@@ -994,6 +994,7 @@
+ def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
+ def LevelsetfunctionSlopeYEnum(): return StringToEnum("LevelsetfunctionSlopeY")[0]
+ def LevelsetfunctionPicardEnum(): return StringToEnum("LevelsetfunctionPicard")[0]
++def LevelsetReinitFrequencyEnum(): return StringToEnum("LevelsetReinitFrequency")[0]
+ def SealevelriseSolutionEnum(): return StringToEnum("SealevelriseSolution")[0]
+ def SealevelriseAnalysisEnum(): return StringToEnum("SealevelriseAnalysis")[0]
+ def SealevelEnum(): return StringToEnum("Sealevel")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20460-20461.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20460-20461.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20460-20461.diff	(revision 20498)
@@ -0,0 +1,2151 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20461)
+@@ -59,12 +59,8 @@
+ 			iomodel->FetchDataToInput(elements,CalvinglevermannCoeffEnum);
+ 			iomodel->FetchDataToInput(elements,CalvinglevermannMeltingrateEnum);
+ 			break;
+-		case CalvingPiEnum:
+-			iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
+-			iomodel->FetchDataToInput(elements,CalvingpiMeltingrateEnum);
+-			break;
+ 		case CalvingDevEnum:
+-			iomodel->FetchDataToInput(elements,CalvingpiCoeffEnum);
++			iomodel->FetchDataToInput(elements,CalvingdevCoeffEnum);
+ 			iomodel->FetchDataToInput(elements,CalvingMeltingrateEnum);
+ 			break;
+ 		default:
+@@ -211,23 +207,6 @@
+ 			}
+ 			meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
+ 			break;
+-		case CalvingPiEnum:
+-			switch(domaintype){
+-				case Domain2DverticalEnum:
+-					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-					break;
+-				case Domain2DhorizontalEnum:
+-					calvingratex_input=basalelement->GetInput(CalvingratexEnum); _assert_(calvingratex_input);
+-					calvingratey_input=basalelement->GetInput(CalvingrateyEnum); _assert_(calvingratey_input);
+-					break;
+-				case Domain3DEnum:
+-					calvingratex_input=basalelement->GetInput(CalvingratexAverageEnum); _assert_(calvingratex_input);
+-					calvingratey_input=basalelement->GetInput(CalvingrateyAverageEnum); _assert_(calvingratey_input);
+-					break;
+-				default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
+-			}
+-			meltingrate_input = basalelement->GetInput(CalvingpiMeltingrateEnum);     _assert_(meltingrate_input);
+-			break;
+ 		default:
+ 			_error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
+ 	}
+@@ -279,7 +258,6 @@
+ 				break;
+ 
+ 			case CalvingLevermannEnum:
+-			case CalvingPiEnum:
+ 			case CalvingDevEnum:
+ 				calvingratex_input->GetInputValue(&c[0],gauss);
+ 				if(dim==2) calvingratey_input->GetInputValue(&c[1],gauss);
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20460)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20461)
+@@ -256,14 +256,12 @@
+ 	CalvingCalvingrateEnum,
+ 	CalvingMeltingrateEnum,
+ 	CalvingLevermannEnum,
+-	CalvingPiEnum,
+ 	CalvingDevEnum,
+ 	DefaultCalvingEnum,
+ 	CalvingRequestedOutputsEnum,
+ 	CalvinglevermannCoeffEnum,
+ 	CalvinglevermannMeltingrateEnum,
+-	CalvingpiCoeffEnum,
+-	CalvingpiMeltingrateEnum,
++	CalvingdevCoeffEnum,
+ 	CalvingratexEnum,
+ 	CalvingrateyEnum,
+ 	CalvingratexAverageEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20461)
+@@ -260,14 +260,12 @@
+ 		case CalvingCalvingrateEnum : return "CalvingCalvingrate";
+ 		case CalvingMeltingrateEnum : return "CalvingMeltingrate";
+ 		case CalvingLevermannEnum : return "CalvingLevermann";
+-		case CalvingPiEnum : return "CalvingPi";
+ 		case CalvingDevEnum : return "CalvingDev";
+ 		case DefaultCalvingEnum : return "DefaultCalving";
+ 		case CalvingRequestedOutputsEnum : return "CalvingRequestedOutputs";
+ 		case CalvinglevermannCoeffEnum : return "CalvinglevermannCoeff";
+ 		case CalvinglevermannMeltingrateEnum : return "CalvinglevermannMeltingrate";
+-		case CalvingpiCoeffEnum : return "CalvingpiCoeff";
+-		case CalvingpiMeltingrateEnum : return "CalvingpiMeltingrate";
++		case CalvingdevCoeffEnum : return "CalvingdevCoeff";
+ 		case CalvingratexEnum : return "Calvingratex";
+ 		case CalvingrateyEnum : return "Calvingratey";
+ 		case CalvingratexAverageEnum : return "CalvingratexAverage";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20461)
+@@ -266,14 +266,12 @@
+ 	      else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
+ 	      else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
+ 	      else if (strcmp(name,"CalvingLevermann")==0) return CalvingLevermannEnum;
+-	      else if (strcmp(name,"CalvingPi")==0) return CalvingPiEnum;
+ 	      else if (strcmp(name,"CalvingDev")==0) return CalvingDevEnum;
+ 	      else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
+ 	      else if (strcmp(name,"CalvingRequestedOutputs")==0) return CalvingRequestedOutputsEnum;
+ 	      else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
+ 	      else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
+-	      else if (strcmp(name,"CalvingpiCoeff")==0) return CalvingpiCoeffEnum;
+-	      else if (strcmp(name,"CalvingpiMeltingrate")==0) return CalvingpiMeltingrateEnum;
++	      else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum;
+ 	      else if (strcmp(name,"Calvingratex")==0) return CalvingratexEnum;
+ 	      else if (strcmp(name,"Calvingratey")==0) return CalvingrateyEnum;
+ 	      else if (strcmp(name,"CalvingratexAverage")==0) return CalvingratexAverageEnum;
+@@ -382,12 +380,12 @@
+ 	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
+ 	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
+ 	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
++	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
++	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
+          else stage=4;
+    }
+    if(stage==4){
+-	      if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
+-	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
+-	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
++	      if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
+ 	      else if (strcmp(name,"TransientIsmovingfront")==0) return TransientIsmovingfrontEnum;
+ 	      else if (strcmp(name,"TransientIsslr")==0) return TransientIsslrEnum;
+ 	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
+@@ -505,12 +503,12 @@
+ 	      else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
++	      else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
++	      else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
+          else stage=5;
+    }
+    if(stage==5){
+-	      if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
+-	      else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
+-	      else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum;
++	      if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum;
+ 	      else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
+ 	      else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
+ 	      else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
+@@ -628,12 +626,12 @@
+ 	      else if (strcmp(name,"MassconaxpbyNamex")==0) return MassconaxpbyNamexEnum;
+ 	      else if (strcmp(name,"MassconaxpbyNamey")==0) return MassconaxpbyNameyEnum;
+ 	      else if (strcmp(name,"MassconaxpbyAlpha")==0) return MassconaxpbyAlphaEnum;
++	      else if (strcmp(name,"MassconaxpbyBeta")==0) return MassconaxpbyBetaEnum;
++	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+          else stage=6;
+    }
+    if(stage==6){
+-	      if (strcmp(name,"MassconaxpbyBeta")==0) return MassconaxpbyBetaEnum;
+-	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+-	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
++	      if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
+ 	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
+ 	      else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
+ 	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
+@@ -751,12 +749,12 @@
+ 	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
+ 	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
+ 	      else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
++	      else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
++	      else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
+          else stage=7;
+    }
+    if(stage==7){
+-	      if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
+-	      else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
+-	      else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
++	      if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
+ 	      else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
+ 	      else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
+ 	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
+@@ -874,12 +872,12 @@
+ 	      else if (strcmp(name,"Outputdefinition76")==0) return Outputdefinition76Enum;
+ 	      else if (strcmp(name,"Outputdefinition77")==0) return Outputdefinition77Enum;
+ 	      else if (strcmp(name,"Outputdefinition78")==0) return Outputdefinition78Enum;
++	      else if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum;
++	      else if (strcmp(name,"Outputdefinition80")==0) return Outputdefinition80Enum;
+          else stage=8;
+    }
+    if(stage==8){
+-	      if (strcmp(name,"Outputdefinition79")==0) return Outputdefinition79Enum;
+-	      else if (strcmp(name,"Outputdefinition80")==0) return Outputdefinition80Enum;
+-	      else if (strcmp(name,"Outputdefinition81")==0) return Outputdefinition81Enum;
++	      if (strcmp(name,"Outputdefinition81")==0) return Outputdefinition81Enum;
+ 	      else if (strcmp(name,"Outputdefinition82")==0) return Outputdefinition82Enum;
+ 	      else if (strcmp(name,"Outputdefinition83")==0) return Outputdefinition83Enum;
+ 	      else if (strcmp(name,"Outputdefinition84")==0) return Outputdefinition84Enum;
+@@ -997,12 +995,12 @@
+ 	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
+ 	      else if (strcmp(name,"Sset")==0) return SsetEnum;
+ 	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
++	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
++	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+          else stage=9;
+    }
+    if(stage==9){
+-	      if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
+-	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
+-	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
++	      if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
+ 	      else if (strcmp(name,"XY")==0) return XYEnum;
+ 	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
+ 	      else if (strcmp(name,"Dense")==0) return DenseEnum;
+Index: ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp	(revision 20461)
+@@ -22,12 +22,6 @@
+ 			femmodel->StrainRateperpendicularx();
+ 			femmodel->CalvingRateLevermannx();
+ 			break;
+-		case CalvingPiEnum:
+-			if(VerboseModule()) _printf0_("   computing Pi's calving rate\n");
+-			femmodel->StrainRateparallelx();
+-			femmodel->DeviatoricStressx();
+-			femmodel->CalvingRatePix();
+-			break;
+ 		case CalvingDevEnum:
+ 			femmodel->CalvingRateDevx();
+ 			femmodel->ElementOperationx(&Element::CalvingRateDev);
+Index: ../trunk-jpl/src/c/classes/FemModel.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/classes/FemModel.cpp	(revision 20461)
+@@ -2152,14 +2152,6 @@
+ 	}
+ }
+ /*}}}*/
+-void FemModel::CalvingRatePix(){/*{{{*/
+-
+-	for(int i=0;i<elements->Size();i++){
+-		Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));
+-		element->CalvingRatePi();
+-	}
+-}
+-/*}}}*/
+ void FemModel::CalvingRateDevx(){/*{{{*/
+ 
+ 	for(int i=0;i<elements->Size();i++){
+Index: ../trunk-jpl/src/c/classes/Elements/Element.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Element.h	(revision 20461)
+@@ -180,7 +180,6 @@
+ 		virtual void       AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
+ 		virtual void       AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part)=0;
+ 		virtual void	    CalvingRateLevermann(void)=0;
+-		virtual void       CalvingRatePi(void)=0;
+ 		virtual void       CalvingRateDev(void){_error_("not implemented yet");};
+ 		virtual void       WriteLevelsetSegment(DataSet* segments){_error_("not implemented yet");};
+ 		virtual void       ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 20461)
+@@ -262,85 +262,6 @@
+ 
+ }
+ /*}}}*/
+-void       Tria::CalvingRatePi(){/*{{{*/
+-
+-	IssmDouble  xyz_list[NUMVERTICES][3];
+-	GaussTria* gauss=NULL;
+-	IssmDouble  vx,vy,vel;
+-	IssmDouble  strainparallel;
+-	IssmDouble  sxx;
+-	IssmDouble  sxy;
+-	IssmDouble  syy;
+-	IssmDouble  sigVM;
+-	IssmDouble  thickness;
+-	IssmDouble  base;
+-	IssmDouble  hAB;
+-	IssmDouble  propcoeff;
+-	IssmDouble  calvingratex[NUMVERTICES];
+-	IssmDouble  calvingratey[NUMVERTICES];
+-	IssmDouble  calvingrate[NUMVERTICES];
+-
+-
+-	/* Get node coordinates and dof list: */
+-	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+-
+-	/*Retrieve all inputs and parameters we will need*/
+-	Input* vx_input=inputs->GetInput(VxEnum);                                                    _assert_(vx_input);
+-	Input* vy_input=inputs->GetInput(VyEnum);                                                    _assert_(vy_input);
+-	Input* strainparallel_input=inputs->GetInput(StrainRateparallelEnum);                        _assert_(strainparallel_input);
+-	Input* sxx_input=inputs->GetInput(DeviatoricStressxxEnum);                                   _assert_(sxx_input);
+-	Input* sxy_input=inputs->GetInput(DeviatoricStressxyEnum);                                   _assert_(sxy_input);
+-	Input* syy_input=inputs->GetInput(DeviatoricStressyyEnum);                                   _assert_(syy_input);
+-	Input* thickness_input=inputs->GetInput(ThicknessEnum);                                      _assert_(thickness_input);
+-	Input* base_input=inputs->GetInput(BaseEnum);                                                _assert_(base_input);
+-	Input* picoeff_input=inputs->GetInput(CalvingpiCoeffEnum);                                   _assert_(picoeff_input);
+-
+-
+-
+-	/* Start looping on the number of vertices: */
+-	gauss=new GaussTria();
+-	for (int iv=0;iv<NUMVERTICES;iv++){
+-		gauss->GaussVertex(iv);
+-
+-		/* Get the value we need*/
+-		vx_input->GetInputValue(&vx,gauss);
+-		vy_input->GetInputValue(&vy,gauss);
+-		vel=vx*vx+vy*vy;
+-		strainparallel_input->GetInputValue(&strainparallel,gauss);
+-		sxx_input->GetInputValue(&sxx,gauss);
+-		sxy_input->GetInputValue(&sxy,gauss);
+-		syy_input->GetInputValue(&syy,gauss);
+-		thickness_input->GetInputValue(&thickness,gauss);
+-		base_input->GetInputValue(&base,gauss);
+-		picoeff_input->GetInputValue(&propcoeff,gauss);
+-
+-		/* Computing sigma Von Mises*/
+-		sigVM=sqrt(sxx*sxx+syy*syy+3*sxy*sxy-sxx*syy);
+-
+-		/* Computing heigth above buoyancy*/
+-		hAB=thickness+1028/920*base;
+-
+-		/*Calving rate for Pi criterion proportionnal to the product of the strain rate along the ice flow direction and the Von Mises stress and the square of the glacier width (hardcoded) divided by the height above buoyancy and the max of the ice velocity power 3 and the ice density (ignored here)*/
+-
+-		calvingrate[iv]=propcoeff*strainparallel*sigVM*25.e6/hAB/1e9;
+-		if(calvingrate[iv]<0){
+-			calvingrate[iv]=0;
+-		}
+-		calvingrate[iv]=pow(calvingrate[iv],0.3);
+-		calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-14);
+-		calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-14);
+-	}
+-
+-	/*Add input*/
+-	this->inputs->AddInput(new TriaInput(CalvingratexEnum,&calvingratex[0],P1Enum));
+-	this->inputs->AddInput(new TriaInput(CalvingrateyEnum,&calvingratey[0],P1Enum));
+-	this->inputs->AddInput(new TriaInput(CalvingCalvingrateEnum,&calvingrate[0],P1Enum));
+-
+-	/*Clean up and return*/
+-	delete gauss;
+-
+-}
+-/*}}}*/
+ void       Tria::CalvingRateDev(){/*{{{*/
+ 
+ 	IssmDouble  xyz_list[NUMVERTICES][3];
+Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Tria.h	(revision 20461)
+@@ -52,7 +52,6 @@
+ 		/*Element virtual functions definitions: {{{*/
+ 		void        AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
+ 		void			CalvingRateLevermann();
+-		void			CalvingRatePi();
+ 		void			CalvingRateDev();
+ 		void			WriteLevelsetSegment(DataSet* segments);
+ 		void        ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments);
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 20461)
+@@ -230,81 +230,6 @@
+ 
+ }
+ /*}}}*/
+-void       Penta::CalvingRatePi(){/*{{{*/
+-
+-	IssmDouble  xyz_list[NUMVERTICES][3];
+-	GaussPenta* gauss=NULL;
+-	IssmDouble  vx,vy,vel;
+-	IssmDouble  strainparallel;
+-	IssmDouble  sxx;
+-	IssmDouble  sxy;
+-	IssmDouble  syy;
+-	IssmDouble  sigVM;
+-	IssmDouble  thickness;
+-	IssmDouble  base;
+-	IssmDouble  hAB;
+-	IssmDouble  propcoeff;
+-	IssmDouble  calvingratex[NUMVERTICES];
+-	IssmDouble  calvingratey[NUMVERTICES];
+-	IssmDouble  calvingrate[NUMVERTICES];
+-
+-
+-	/* Get node coordinates and dof list: */
+-	::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
+-
+-	/*Retrieve all inputs and parameters we will need*/
+-	Input* vx_input=inputs->GetInput(VxEnum);                                                    _assert_(vx_input);
+-	Input* vy_input=inputs->GetInput(VyEnum);                                                    _assert_(vy_input);
+-	Input* strainparallel_input=inputs->GetInput(StrainRateparallelEnum);                        _assert_(strainparallel_input);
+-	Input* sxx_input=inputs->GetInput(DeviatoricStressxxEnum);                                   _assert_(sxx_input);
+-	Input* sxy_input=inputs->GetInput(DeviatoricStressxyEnum);                                   _assert_(sxy_input);
+-	Input* syy_input=inputs->GetInput(DeviatoricStressyyEnum);                                   _assert_(syy_input);
+-	Input* thickness_input=inputs->GetInput(ThicknessEnum);                                      _assert_(thickness_input);
+-	Input* base_input=inputs->GetInput(BaseEnum);                                                _assert_(base_input);
+-	Input* picoeff_input=inputs->GetInput(CalvingpiCoeffEnum);                                   _assert_(picoeff_input);
+-
+-	/* Start looping on the number of vertices: */
+-	gauss=new GaussPenta();
+-	for (int iv=0;iv<NUMVERTICES;iv++){
+-		gauss->GaussVertex(iv);
+-
+-		/* Get the value we need*/
+-		vx_input->GetInputValue(&vx,gauss);
+-		vy_input->GetInputValue(&vy,gauss);
+-		vel=vx*vx+vy*vy;
+-		strainparallel_input->GetInputValue(&strainparallel,gauss);
+-		sxx_input->GetInputValue(&sxx,gauss);
+-		sxy_input->GetInputValue(&sxy,gauss);
+-		syy_input->GetInputValue(&syy,gauss);
+-		thickness_input->GetInputValue(&thickness,gauss);
+-		base_input->GetInputValue(&base,gauss);
+-		picoeff_input->GetInputValue(&propcoeff,gauss);
+-
+-		/* Computing sigma Von Mises*/
+-		sigVM=sqrt(sxx*sxx+syy*syy+3*sxy*sxy-sxx*syy);
+-
+-		/* Computing heigth above buoyancy*/
+-		hAB=thickness+1028/920*base;
+-
+-		/*Calving rate for Pi criterion proportionnal to the product of the strain rate along the ice flow direction and the Von Mises stress and the square of the glacier width (hardcoded) divided by the height above buoyancy and the max of the ice velocity power 3 and the ice density (ignored here)*/
+-		calvingrate[iv]=propcoeff*strainparallel*sigVM*25.e6/hAB/1e9;
+-		if(calvingrate[iv]<0){
+-			calvingrate[iv]=0;
+-		}
+-		calvingratex[iv]=calvingrate[iv]*vx/(sqrt(vel)+1.e-6);
+-		calvingratey[iv]=calvingrate[iv]*vy/(sqrt(vel)+1.e-6);
+-	}
+-
+-	/*Add input*/
+-	this->inputs->AddInput(new PentaInput(CalvingratexEnum,&calvingratex[0],P1Enum));
+-	this->inputs->AddInput(new PentaInput(CalvingrateyEnum,&calvingratey[0],P1Enum));
+-	this->inputs->AddInput(new PentaInput(CalvingCalvingrateEnum,&calvingrate[0],P1Enum));
+-
+-	/*Clean up and return*/
+-	delete gauss;
+-
+-}
+-/*}}}*/
+ void       Penta::ComputeBasalStress(Vector<IssmDouble>* sigma_b){/*{{{*/
+ 
+ 	int         i,j;
+Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Penta.h	(revision 20461)
+@@ -49,7 +49,6 @@
+ 		void           AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
+ 		IssmDouble     CharacteristicLength(void){_error_("not implemented yet");};
+ 		void           CalvingRateLevermann();
+-		void           CalvingRatePi();
+ 		void           ComputeBasalStress(Vector<IssmDouble>* sigma_b);
+ 		void           ComputeDeviatoricStressTensor();
+ 		void           ComputeSigmaNN(){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Seg.h	(revision 20461)
+@@ -49,7 +49,6 @@
+ 		void        ComputeDeviatoricStressTensor(){_error_("not implemented yet");};
+ 		void        ComputeSigmaNN(){_error_("not implemented yet");};
+ 		void        ComputeStressTensor(){_error_("not implemented yet");};
+-		void        CalvingRatePi(void){_error_("not implemented yet");};
+ 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters){_error_("not implemented yet");};
+ 		void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Tetra.h	(revision 20461)
+@@ -49,7 +49,6 @@
+ 		void        ComputeSigmaNN(){_error_("not implemented yet");};
+ 		void        ComputeStressTensor(){_error_("not implemented yet");};
+ 		void        ComputeDeviatoricStressTensor(){_error_("not implemented yet");};
+-		void        CalvingRatePi(void){_error_("not implemented yet");};
+ 		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
+ 		void        ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");};
+ 		void        ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
+Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20460)
++++ ../trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 20461)
+@@ -1977,9 +1977,6 @@
+ 				case CalvingLevermannEnum:
+ 					this->CalvingRateLevermann();
+ 					break;
+-				case CalvingPiEnum:
+-					this->CalvingRatePi();
+-					break;
+ 				case CalvingDevEnum:
+ 					this->CalvingRateDev();
+ 					break;
+Index: ../trunk-jpl/src/c/classes/FemModel.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/FemModel.h	(revision 20460)
++++ ../trunk-jpl/src/c/classes/FemModel.h	(revision 20461)
+@@ -93,7 +93,6 @@
+ 		void StrainRateperpendicularx();
+ 		void DeviatoricStressx();
+ 		void CalvingRateLevermannx();
+-		void CalvingRatePix();
+ 		void CalvingRateDevx();
+ 		void ResetLevelset();
+ 		#ifdef  _HAVE_DAKOTA_
+Index: ../trunk-jpl/src/m/classes/calvingdev.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20460)
++++ ../trunk-jpl/src/m/classes/calvingdev.m	(revision 20461)
+@@ -52,7 +52,7 @@
+ 		function marshall(self,md,fid) % {{{
+ 			yts=365.0*24.0*3600.0;
+ 			WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingDevEnum(),'format','Integer');
+-			WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
++			WriteData(fid,'enum',CalvingdevCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
+ 			WriteData(fid,'class','calving','object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
+ 		end % }}}
+ 	end
+Index: ../trunk-jpl/src/m/enum/CalvingpiCoeffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/CalvingpiCoeffEnum.m	(revision 20460)
++++ ../trunk-jpl/src/m/enum/CalvingpiCoeffEnum.m	(revision 20461)
+@@ -1,11 +0,0 @@
+-function macro=CalvingpiCoeffEnum()
+-%CALVINGPICOEFFENUM - Enum of CalvingpiCoeff
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=CalvingpiCoeffEnum()
+-
+-macro=StringToEnum('CalvingpiCoeff');
+Index: ../trunk-jpl/src/m/enum/CalvingPiEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/CalvingPiEnum.m	(revision 20460)
++++ ../trunk-jpl/src/m/enum/CalvingPiEnum.m	(revision 20461)
+@@ -1,11 +0,0 @@
+-function macro=CalvingPiEnum()
+-%CALVINGPIENUM - Enum of CalvingPi
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=CalvingPiEnum()
+-
+-macro=StringToEnum('CalvingPi');
+Index: ../trunk-jpl/src/m/enum/TransientIslevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/TransientIslevelsetEnum.m	(revision 20460)
++++ ../trunk-jpl/src/m/enum/TransientIslevelsetEnum.m	(revision 20461)
+@@ -1,11 +0,0 @@
+-function macro=TransientIslevelsetEnum()
+-%TRANSIENTISLEVELSETENUM - Enum of TransientIslevelset
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=TransientIslevelsetEnum()
+-
+-macro=StringToEnum('TransientIslevelset');
+Index: ../trunk-jpl/src/m/enum/CalvingpiMeltingrateEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/CalvingpiMeltingrateEnum.m	(revision 20460)
++++ ../trunk-jpl/src/m/enum/CalvingpiMeltingrateEnum.m	(revision 20461)
+@@ -1,11 +0,0 @@
+-function macro=CalvingpiMeltingrateEnum()
+-%CALVINGPIMELTINGRATEENUM - Enum of CalvingpiMeltingrate
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=CalvingpiMeltingrateEnum()
+-
+-macro=StringToEnum('CalvingpiMeltingrate');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20460)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20461)
+@@ -245,767 +245,765 @@
+ function CalvingCalvingrateEnum(){ return 241;}
+ function CalvingMeltingrateEnum(){ return 242;}
+ function CalvingLevermannEnum(){ return 243;}
+-function CalvingPiEnum(){ return 244;}
+-function CalvingDevEnum(){ return 245;}
+-function DefaultCalvingEnum(){ return 246;}
+-function CalvingRequestedOutputsEnum(){ return 247;}
+-function CalvinglevermannCoeffEnum(){ return 248;}
+-function CalvinglevermannMeltingrateEnum(){ return 249;}
+-function CalvingpiCoeffEnum(){ return 250;}
+-function CalvingpiMeltingrateEnum(){ return 251;}
+-function CalvingratexEnum(){ return 252;}
+-function CalvingrateyEnum(){ return 253;}
+-function CalvingratexAverageEnum(){ return 254;}
+-function CalvingrateyAverageEnum(){ return 255;}
+-function StrainRateparallelEnum(){ return 256;}
+-function StrainRateperpendicularEnum(){ return 257;}
+-function StrainRateeffectiveEnum(){ return 258;}
+-function MaterialsRhoIceEnum(){ return 259;}
+-function MaterialsRhoSeawaterEnum(){ return 260;}
+-function MaterialsRhoFreshwaterEnum(){ return 261;}
+-function MaterialsMuWaterEnum(){ return 262;}
+-function MaterialsThermalExchangeVelocityEnum(){ return 263;}
+-function MaterialsThermalconductivityEnum(){ return 264;}
+-function MaterialsTemperateiceconductivityEnum(){ return 265;}
+-function MaterialsLithosphereShearModulusEnum(){ return 266;}
+-function MaterialsLithosphereDensityEnum(){ return 267;}
+-function MaterialsMantleShearModulusEnum(){ return 268;}
+-function MaterialsMantleDensityEnum(){ return 269;}
+-function MaterialsEarthDensityEnum(){ return 270;}
+-function MeshAverageVertexConnectivityEnum(){ return 271;}
+-function MeshElements2dEnum(){ return 272;}
+-function MeshElementsEnum(){ return 273;}
+-function MeshLowerelementsEnum(){ return 274;}
+-function MeshNumberofelements2dEnum(){ return 275;}
+-function MeshNumberofelementsEnum(){ return 276;}
+-function MeshNumberoflayersEnum(){ return 277;}
+-function MeshNumberofvertices2dEnum(){ return 278;}
+-function MeshNumberofverticesEnum(){ return 279;}
+-function MeshUpperelementsEnum(){ return 280;}
+-function MeshVertexonbaseEnum(){ return 281;}
+-function MeshVertexonsurfaceEnum(){ return 282;}
+-function MeshVertexonboundaryEnum(){ return 283;}
+-function MeshXEnum(){ return 284;}
+-function MeshYEnum(){ return 285;}
+-function MeshZEnum(){ return 286;}
+-function MeshLatEnum(){ return 287;}
+-function MeshLongEnum(){ return 288;}
+-function MeshREnum(){ return 289;}
+-function MeshElementtypeEnum(){ return 290;}
+-function MeshSegmentsEnum(){ return 291;}
+-function DomainTypeEnum(){ return 292;}
+-function DomainDimensionEnum(){ return 293;}
+-function Domain2DhorizontalEnum(){ return 294;}
+-function Domain2DverticalEnum(){ return 295;}
+-function Domain3DEnum(){ return 296;}
+-function Domain3DsurfaceEnum(){ return 297;}
+-function MiscellaneousNameEnum(){ return 298;}
+-function MasstransportHydrostaticAdjustmentEnum(){ return 299;}
+-function MasstransportIsfreesurfaceEnum(){ return 300;}
+-function MasstransportMinThicknessEnum(){ return 301;}
+-function MasstransportPenaltyFactorEnum(){ return 302;}
+-function MasstransportSpcthicknessEnum(){ return 303;}
+-function MasstransportStabilizationEnum(){ return 304;}
+-function MasstransportVertexPairingEnum(){ return 305;}
+-function MasstransportNumRequestedOutputsEnum(){ return 306;}
+-function MasstransportRequestedOutputsEnum(){ return 307;}
+-function QmuIsdakotaEnum(){ return 308;}
+-function MassFluxSegmentsEnum(){ return 309;}
+-function MassFluxSegmentsPresentEnum(){ return 310;}
+-function QmuMassFluxSegmentsPresentEnum(){ return 311;}
+-function QmuNumberofpartitionsEnum(){ return 312;}
+-function QmuNumberofresponsesEnum(){ return 313;}
+-function QmuPartitionEnum(){ return 314;}
+-function QmuResponsedescriptorsEnum(){ return 315;}
+-function QmuVariabledescriptorsEnum(){ return 316;}
+-function RiftsNumriftsEnum(){ return 317;}
+-function RiftsRiftstructEnum(){ return 318;}
+-function SettingsResultsOnNodesEnum(){ return 319;}
+-function SettingsIoGatherEnum(){ return 320;}
+-function SettingsLowmemEnum(){ return 321;}
+-function SettingsOutputFrequencyEnum(){ return 322;}
+-function SettingsRecordingFrequencyEnum(){ return 323;}
+-function SettingsWaitonlockEnum(){ return 324;}
+-function DebugProfilingEnum(){ return 325;}
+-function ProfilingCurrentMemEnum(){ return 326;}
+-function ProfilingCurrentFlopsEnum(){ return 327;}
+-function ProfilingSolutionTimeEnum(){ return 328;}
+-function SteadystateMaxiterEnum(){ return 329;}
+-function SteadystateNumRequestedOutputsEnum(){ return 330;}
+-function SteadystateReltolEnum(){ return 331;}
+-function SteadystateRequestedOutputsEnum(){ return 332;}
+-function SurfaceEnum(){ return 333;}
+-function ThermalIsenthalpyEnum(){ return 334;}
+-function ThermalIsdynamicbasalspcEnum(){ return 335;}
+-function ThermalReltolEnum(){ return 336;}
+-function ThermalMaxiterEnum(){ return 337;}
+-function ThermalPenaltyFactorEnum(){ return 338;}
+-function ThermalPenaltyLockEnum(){ return 339;}
+-function ThermalPenaltyThresholdEnum(){ return 340;}
+-function ThermalSpctemperatureEnum(){ return 341;}
+-function ThermalStabilizationEnum(){ return 342;}
+-function ThermalNumRequestedOutputsEnum(){ return 343;}
+-function ThermalRequestedOutputsEnum(){ return 344;}
+-function GiaMantleViscosityEnum(){ return 345;}
+-function GiaLithosphereThicknessEnum(){ return 346;}
+-function ThicknessEnum(){ return 347;}
+-function TimesteppingStartTimeEnum(){ return 348;}
+-function TimesteppingFinalTimeEnum(){ return 349;}
+-function TimesteppingCflCoefficientEnum(){ return 350;}
+-function TimesteppingTimeAdaptEnum(){ return 351;}
+-function TimesteppingTimeStepEnum(){ return 352;}
+-function TimesteppingInterpForcingsEnum(){ return 353;}
+-function TransientIssmbEnum(){ return 354;}
+-function TransientIscouplerEnum(){ return 355;}
+-function TransientIsstressbalanceEnum(){ return 356;}
+-function TransientIsgroundinglineEnum(){ return 357;}
+-function TransientIsmasstransportEnum(){ return 358;}
+-function TransientIsthermalEnum(){ return 359;}
+-function TransientIsgiaEnum(){ return 360;}
+-function TransientIsdamageevolutionEnum(){ return 361;}
+-function TransientIshydrologyEnum(){ return 362;}
+-function TransientIsmovingfrontEnum(){ return 363;}
+-function TransientIsslrEnum(){ return 364;}
+-function TransientNumRequestedOutputsEnum(){ return 365;}
+-function TransientRequestedOutputsEnum(){ return 366;}
+-function PotentialEnum(){ return 367;}
+-function BalancethicknessSpcpotentialEnum(){ return 368;}
+-function BalancethicknessApparentMassbalanceEnum(){ return 369;}
+-function Balancethickness2MisfitEnum(){ return 370;}
+-function BalancethicknessDiffusionCoefficientEnum(){ return 371;}
+-function BalancethicknessCmuEnum(){ return 372;}
+-function BalancethicknessOmegaEnum(){ return 373;}
+-function BalancethicknessD0Enum(){ return 374;}
+-function SmbEnum(){ return 375;}
+-function SmbAnalysisEnum(){ return 376;}
+-function SmbSolutionEnum(){ return 377;}
+-function SmbNumRequestedOutputsEnum(){ return 378;}
+-function SmbRequestedOutputsEnum(){ return 379;}
+-function SmbIsInitializedEnum(){ return 380;}
+-function SMBforcingEnum(){ return 381;}
+-function SmbMassBalanceEnum(){ return 382;}
+-function SMBgembEnum(){ return 383;}
+-function SmbInitDensityScalingEnum(){ return 384;}
+-function SmbTaEnum(){ return 385;}
+-function SmbVEnum(){ return 386;}
+-function SmbDswrfEnum(){ return 387;}
+-function SmbDlwrfEnum(){ return 388;}
+-function SmbPEnum(){ return 389;}
+-function SmbSwfEnum(){ return 390;}
+-function SmbEAirEnum(){ return 391;}
+-function SmbPAirEnum(){ return 392;}
+-function SmbTmeanEnum(){ return 393;}
+-function SmbCEnum(){ return 394;}
+-function SmbTzEnum(){ return 395;}
+-function SmbVzEnum(){ return 396;}
+-function SmbDtEnum(){ return 397;}
+-function SmbDzEnum(){ return 398;}
+-function SmbAIdxEnum(){ return 399;}
+-function SmbSwIdxEnum(){ return 400;}
+-function SmbDenIdxEnum(){ return 401;}
+-function SmbZTopEnum(){ return 402;}
+-function SmbDzTopEnum(){ return 403;}
+-function SmbDzMinEnum(){ return 404;}
+-function SmbZYEnum(){ return 405;}
+-function SmbZMaxEnum(){ return 406;}
+-function SmbZMinEnum(){ return 407;}
+-function SmbOutputFreqEnum(){ return 408;}
+-function SmbASnowEnum(){ return 409;}
+-function SmbAIceEnum(){ return 410;}
+-function SmbCldFracEnum(){ return 411;}
+-function SmbT0wetEnum(){ return 412;}
+-function SmbT0dryEnum(){ return 413;}
+-function SmbKEnum(){ return 414;}
+-function SmbDEnum(){ return 415;}
+-function SmbReEnum(){ return 416;}
+-function SmbGdnEnum(){ return 417;}
+-function SmbGspEnum(){ return 418;}
+-function SmbECEnum(){ return 419;}
+-function SmbCondensationEnum(){ return 420;}
+-function SmbWEnum(){ return 421;}
+-function SmbAEnum(){ return 422;}
+-function SmbTEnum(){ return 423;}
+-function SmbIsgraingrowthEnum(){ return 424;}
+-function SmbIsalbedoEnum(){ return 425;}
+-function SmbIsshortwaveEnum(){ return 426;}
+-function SmbIsthermalEnum(){ return 427;}
+-function SmbIsaccumulationEnum(){ return 428;}
+-function SmbIsmeltEnum(){ return 429;}
+-function SmbIsdensificationEnum(){ return 430;}
+-function SmbIsturbulentfluxEnum(){ return 431;}
+-function SMBpddEnum(){ return 432;}
+-function SmbDelta18oEnum(){ return 433;}
+-function SmbDelta18oSurfaceEnum(){ return 434;}
+-function SmbIsdelta18oEnum(){ return 435;}
+-function SmbIsmungsmEnum(){ return 436;}
+-function SmbIsd18opdEnum(){ return 437;}
+-function SmbPrecipitationsPresentdayEnum(){ return 438;}
+-function SmbPrecipitationsLgmEnum(){ return 439;}
+-function SmbTemperaturesPresentdayEnum(){ return 440;}
+-function SmbTemperaturesLgmEnum(){ return 441;}
+-function SmbPrecipitationEnum(){ return 442;}
+-function SmbDesfacEnum(){ return 443;}
+-function SmbS0pEnum(){ return 444;}
+-function SmbS0tEnum(){ return 445;}
+-function SmbRlapsEnum(){ return 446;}
+-function SmbRlapslgmEnum(){ return 447;}
+-function SmbPfacEnum(){ return 448;}
+-function SmbTdiffEnum(){ return 449;}
+-function SmbSealevEnum(){ return 450;}
+-function SMBd18opddEnum(){ return 451;}
+-function SmbDpermilEnum(){ return 452;}
+-function SMBgradientsEnum(){ return 453;}
+-function SmbMonthlytemperaturesEnum(){ return 454;}
+-function SmbHrefEnum(){ return 455;}
+-function SmbSmbrefEnum(){ return 456;}
+-function SmbBPosEnum(){ return 457;}
+-function SmbBNegEnum(){ return 458;}
+-function SMBhenningEnum(){ return 459;}
+-function SMBcomponentsEnum(){ return 460;}
+-function SmbAccumulationEnum(){ return 461;}
+-function SmbEvaporationEnum(){ return 462;}
+-function SmbRunoffEnum(){ return 463;}
+-function SMBmeltcomponentsEnum(){ return 464;}
+-function SmbMeltEnum(){ return 465;}
+-function SmbRefreezeEnum(){ return 466;}
+-function SMBgcmEnum(){ return 467;}
+-function SmbIspddEnum(){ return 468;}
+-function SmbIssmbgradientsEnum(){ return 469;}
+-function SolutionTypeEnum(){ return 470;}
+-function AnalysisTypeEnum(){ return 471;}
+-function ConfigurationTypeEnum(){ return 472;}
+-function AdjointBalancethicknessAnalysisEnum(){ return 473;}
+-function AdjointBalancethickness2AnalysisEnum(){ return 474;}
+-function AdjointHorizAnalysisEnum(){ return 475;}
+-function AnalysisCounterEnum(){ return 476;}
+-function DefaultAnalysisEnum(){ return 477;}
+-function BalancethicknessAnalysisEnum(){ return 478;}
+-function BalancethicknessSolutionEnum(){ return 479;}
+-function Balancethickness2AnalysisEnum(){ return 480;}
+-function Balancethickness2SolutionEnum(){ return 481;}
+-function BalancethicknessSoftAnalysisEnum(){ return 482;}
+-function BalancethicknessSoftSolutionEnum(){ return 483;}
+-function BalancevelocityAnalysisEnum(){ return 484;}
+-function BalancevelocitySolutionEnum(){ return 485;}
+-function L2ProjectionEPLAnalysisEnum(){ return 486;}
+-function L2ProjectionBaseAnalysisEnum(){ return 487;}
+-function BedSlopeSolutionEnum(){ return 488;}
+-function DamageEvolutionSolutionEnum(){ return 489;}
+-function DamageEvolutionAnalysisEnum(){ return 490;}
+-function StressbalanceAnalysisEnum(){ return 491;}
+-function StressbalanceSIAAnalysisEnum(){ return 492;}
+-function StressbalanceSolutionEnum(){ return 493;}
+-function StressbalanceVerticalAnalysisEnum(){ return 494;}
+-function EnthalpyAnalysisEnum(){ return 495;}
+-function FlaimAnalysisEnum(){ return 496;}
+-function FlaimSolutionEnum(){ return 497;}
+-function HydrologyShreveAnalysisEnum(){ return 498;}
+-function HydrologyDCInefficientAnalysisEnum(){ return 499;}
+-function HydrologyDCEfficientAnalysisEnum(){ return 500;}
+-function HydrologySommersAnalysisEnum(){ return 501;}
+-function HydrologySolutionEnum(){ return 502;}
+-function MeltingAnalysisEnum(){ return 503;}
+-function MasstransportAnalysisEnum(){ return 504;}
+-function MasstransportSolutionEnum(){ return 505;}
+-function FreeSurfaceBaseAnalysisEnum(){ return 506;}
+-function FreeSurfaceTopAnalysisEnum(){ return 507;}
+-function SurfaceNormalVelocityEnum(){ return 508;}
+-function ExtrudeFromBaseAnalysisEnum(){ return 509;}
+-function ExtrudeFromTopAnalysisEnum(){ return 510;}
+-function DepthAverageAnalysisEnum(){ return 511;}
+-function SteadystateSolutionEnum(){ return 512;}
+-function SurfaceSlopeSolutionEnum(){ return 513;}
+-function SmoothAnalysisEnum(){ return 514;}
+-function ThermalAnalysisEnum(){ return 515;}
+-function ThermalSolutionEnum(){ return 516;}
+-function TransientSolutionEnum(){ return 517;}
+-function UzawaPressureAnalysisEnum(){ return 518;}
+-function GiaSolutionEnum(){ return 519;}
+-function GiaAnalysisEnum(){ return 520;}
+-function MeshdeformationSolutionEnum(){ return 521;}
+-function MeshdeformationAnalysisEnum(){ return 522;}
+-function LevelsetAnalysisEnum(){ return 523;}
+-function LevelsetStabilizationEnum(){ return 524;}
+-function ExtrapolationAnalysisEnum(){ return 525;}
+-function LsfReinitializationAnalysisEnum(){ return 526;}
+-function ApproximationEnum(){ return 527;}
+-function NoneApproximationEnum(){ return 528;}
+-function SIAApproximationEnum(){ return 529;}
+-function SSAApproximationEnum(){ return 530;}
+-function SSAHOApproximationEnum(){ return 531;}
+-function SSAFSApproximationEnum(){ return 532;}
+-function L1L2ApproximationEnum(){ return 533;}
+-function HOApproximationEnum(){ return 534;}
+-function HOFSApproximationEnum(){ return 535;}
+-function FSApproximationEnum(){ return 536;}
+-function FSvelocityEnum(){ return 537;}
+-function FSpressureEnum(){ return 538;}
+-function DataSetEnum(){ return 539;}
+-function ConstraintsEnum(){ return 540;}
+-function LoadsEnum(){ return 541;}
+-function MaterialsEnum(){ return 542;}
+-function NodesEnum(){ return 543;}
+-function ContoursEnum(){ return 544;}
+-function ParametersEnum(){ return 545;}
+-function VerticesEnum(){ return 546;}
+-function ResultsEnum(){ return 547;}
+-function GenericParamEnum(){ return 548;}
+-function AdolcParamEnum(){ return 549;}
+-function BoolInputEnum(){ return 550;}
+-function BoolParamEnum(){ return 551;}
+-function ContourEnum(){ return 552;}
+-function ControlInputEnum(){ return 553;}
+-function DatasetInputEnum(){ return 554;}
+-function DoubleInputEnum(){ return 555;}
+-function DoubleArrayInputEnum(){ return 556;}
+-function DataSetParamEnum(){ return 557;}
+-function DoubleMatArrayParamEnum(){ return 558;}
+-function DoubleMatParamEnum(){ return 559;}
+-function DoubleParamEnum(){ return 560;}
+-function DoubleVecParamEnum(){ return 561;}
+-function ElementEnum(){ return 562;}
+-function ElementHookEnum(){ return 563;}
+-function HookEnum(){ return 564;}
+-function ExternalResultEnum(){ return 565;}
+-function FileParamEnum(){ return 566;}
+-function InputEnum(){ return 567;}
+-function IntInputEnum(){ return 568;}
+-function InputToExtrudeEnum(){ return 569;}
+-function InputToL2ProjectEnum(){ return 570;}
+-function InputToDepthaverageEnum(){ return 571;}
+-function InputToSmoothEnum(){ return 572;}
+-function SmoothThicknessMultiplierEnum(){ return 573;}
+-function IntParamEnum(){ return 574;}
+-function IntVecParamEnum(){ return 575;}
+-function TransientParamEnum(){ return 576;}
+-function MaticeEnum(){ return 577;}
+-function MatdamageiceEnum(){ return 578;}
+-function MatparEnum(){ return 579;}
+-function NodeEnum(){ return 580;}
+-function NumericalfluxEnum(){ return 581;}
+-function NumericalfluxTypeEnum(){ return 582;}
+-function NeumannfluxEnum(){ return 583;}
+-function ParamEnum(){ return 584;}
+-function MoulinEnum(){ return 585;}
+-function PengridEnum(){ return 586;}
+-function PenpairEnum(){ return 587;}
+-function ProfilerEnum(){ return 588;}
+-function MatrixParamEnum(){ return 589;}
+-function MassconEnum(){ return 590;}
+-function MassconNameEnum(){ return 591;}
+-function MassconDefinitionenumEnum(){ return 592;}
+-function MassconLevelsetEnum(){ return 593;}
+-function MassconaxpbyEnum(){ return 594;}
+-function MassconaxpbyNameEnum(){ return 595;}
+-function MassconaxpbyDefinitionenumEnum(){ return 596;}
+-function MassconaxpbyNamexEnum(){ return 597;}
+-function MassconaxpbyNameyEnum(){ return 598;}
+-function MassconaxpbyAlphaEnum(){ return 599;}
+-function MassconaxpbyBetaEnum(){ return 600;}
+-function NodeSIdEnum(){ return 601;}
+-function VectorParamEnum(){ return 602;}
+-function RiftfrontEnum(){ return 603;}
+-function RiftfrontTypeEnum(){ return 604;}
+-function SegmentEnum(){ return 605;}
+-function SegmentRiftfrontEnum(){ return 606;}
+-function SpcDynamicEnum(){ return 607;}
+-function SpcStaticEnum(){ return 608;}
+-function SpcTransientEnum(){ return 609;}
+-function StringArrayParamEnum(){ return 610;}
+-function StringParamEnum(){ return 611;}
+-function SegEnum(){ return 612;}
+-function SegInputEnum(){ return 613;}
+-function TriaEnum(){ return 614;}
+-function TriaInputEnum(){ return 615;}
+-function TetraEnum(){ return 616;}
+-function TetraInputEnum(){ return 617;}
+-function PentaEnum(){ return 618;}
+-function PentaInputEnum(){ return 619;}
+-function VertexEnum(){ return 620;}
+-function VertexPIdEnum(){ return 621;}
+-function VertexSIdEnum(){ return 622;}
+-function AirEnum(){ return 623;}
+-function IceEnum(){ return 624;}
+-function MelangeEnum(){ return 625;}
+-function WaterEnum(){ return 626;}
+-function ClosedEnum(){ return 627;}
+-function FreeEnum(){ return 628;}
+-function OpenEnum(){ return 629;}
+-function AdjointpEnum(){ return 630;}
+-function AdjointxEnum(){ return 631;}
+-function AdjointyEnum(){ return 632;}
+-function AdjointzEnum(){ return 633;}
+-function BalancethicknessMisfitEnum(){ return 634;}
+-function BedSlopeXEnum(){ return 635;}
+-function BedSlopeYEnum(){ return 636;}
+-function BoundaryEnum(){ return 637;}
+-function ConvergedEnum(){ return 638;}
+-function FillEnum(){ return 639;}
+-function FractionIncrementEnum(){ return 640;}
+-function FrictionEnum(){ return 641;}
+-function InternalEnum(){ return 642;}
+-function MassFluxEnum(){ return 643;}
+-function MeltingOffsetEnum(){ return 644;}
+-function MisfitEnum(){ return 645;}
+-function PressureEnum(){ return 646;}
+-function PressurePicardEnum(){ return 647;}
+-function AndroidFrictionCoefficientEnum(){ return 648;}
+-function ResetPenaltiesEnum(){ return 649;}
+-function SegmentOnIceShelfEnum(){ return 650;}
+-function SurfaceAbsVelMisfitEnum(){ return 651;}
+-function SurfaceAreaEnum(){ return 652;}
+-function SurfaceAverageVelMisfitEnum(){ return 653;}
+-function SurfaceLogVelMisfitEnum(){ return 654;}
+-function SurfaceLogVxVyMisfitEnum(){ return 655;}
+-function SurfaceRelVelMisfitEnum(){ return 656;}
+-function SurfaceSlopeXEnum(){ return 657;}
+-function SurfaceSlopeYEnum(){ return 658;}
+-function TemperatureEnum(){ return 659;}
+-function TemperaturePicardEnum(){ return 660;}
+-function TemperaturePDDEnum(){ return 661;}
+-function ThicknessAbsMisfitEnum(){ return 662;}
+-function SurfaceAbsMisfitEnum(){ return 663;}
+-function VelEnum(){ return 664;}
+-function VelocityEnum(){ return 665;}
+-function VxAverageEnum(){ return 666;}
+-function VxEnum(){ return 667;}
+-function VxPicardEnum(){ return 668;}
+-function VyAverageEnum(){ return 669;}
+-function VyEnum(){ return 670;}
+-function VyPicardEnum(){ return 671;}
+-function VzEnum(){ return 672;}
+-function VzSSAEnum(){ return 673;}
+-function VzHOEnum(){ return 674;}
+-function VzPicardEnum(){ return 675;}
+-function VzFSEnum(){ return 676;}
+-function VxMeshEnum(){ return 677;}
+-function VyMeshEnum(){ return 678;}
+-function VzMeshEnum(){ return 679;}
+-function EnthalpyEnum(){ return 680;}
+-function EnthalpyPicardEnum(){ return 681;}
+-function ThicknessAbsGradientEnum(){ return 682;}
+-function ThicknessAlongGradientEnum(){ return 683;}
+-function ThicknessAcrossGradientEnum(){ return 684;}
+-function ThicknessPositiveEnum(){ return 685;}
+-function IntMatParamEnum(){ return 686;}
+-function RheologyBbarAbsGradientEnum(){ return 687;}
+-function RheologyBAbsGradientEnum(){ return 688;}
+-function DragCoefficientAbsGradientEnum(){ return 689;}
+-function TransientInputEnum(){ return 690;}
+-function WaterfractionEnum(){ return 691;}
+-function WatercolumnEnum(){ return 692;}
+-function BasalFrictionEnum(){ return 693;}
+-function ViscousHeatingEnum(){ return 694;}
+-function HydrologyWaterVxEnum(){ return 695;}
+-function HydrologyWaterVyEnum(){ return 696;}
+-function DrivingStressXEnum(){ return 697;}
+-function DrivingStressYEnum(){ return 698;}
+-function SigmaNNEnum(){ return 699;}
+-function StressTensorEnum(){ return 700;}
+-function StressTensorxxEnum(){ return 701;}
+-function StressTensorxyEnum(){ return 702;}
+-function StressTensorxzEnum(){ return 703;}
+-function StressTensoryyEnum(){ return 704;}
+-function StressTensoryzEnum(){ return 705;}
+-function StressTensorzzEnum(){ return 706;}
+-function StressMaxPrincipalEnum(){ return 707;}
+-function DeviatoricStressEnum(){ return 708;}
+-function DeviatoricStressxxEnum(){ return 709;}
+-function DeviatoricStressxyEnum(){ return 710;}
+-function DeviatoricStressxzEnum(){ return 711;}
+-function DeviatoricStressyyEnum(){ return 712;}
+-function DeviatoricStressyzEnum(){ return 713;}
+-function DeviatoricStresszzEnum(){ return 714;}
+-function DeviatoricStresseffectiveEnum(){ return 715;}
+-function StrainRateEnum(){ return 716;}
+-function StrainRatexxEnum(){ return 717;}
+-function StrainRatexyEnum(){ return 718;}
+-function StrainRatexzEnum(){ return 719;}
+-function StrainRateyyEnum(){ return 720;}
+-function StrainRateyzEnum(){ return 721;}
+-function StrainRatezzEnum(){ return 722;}
+-function DivergenceEnum(){ return 723;}
+-function MaxDivergenceEnum(){ return 724;}
+-function GiaCrossSectionShapeEnum(){ return 725;}
+-function GiadWdtEnum(){ return 726;}
+-function GiaWEnum(){ return 727;}
+-function P0Enum(){ return 728;}
+-function P0ArrayEnum(){ return 729;}
+-function P1Enum(){ return 730;}
+-function P1DGEnum(){ return 731;}
+-function P1bubbleEnum(){ return 732;}
+-function P1bubblecondensedEnum(){ return 733;}
+-function P2Enum(){ return 734;}
+-function P2bubbleEnum(){ return 735;}
+-function P2bubblecondensedEnum(){ return 736;}
+-function P2xP1Enum(){ return 737;}
+-function P1xP2Enum(){ return 738;}
+-function P1xP3Enum(){ return 739;}
+-function P2xP4Enum(){ return 740;}
+-function P1P1Enum(){ return 741;}
+-function P1P1GLSEnum(){ return 742;}
+-function MINIEnum(){ return 743;}
+-function MINIcondensedEnum(){ return 744;}
+-function TaylorHoodEnum(){ return 745;}
+-function LATaylorHoodEnum(){ return 746;}
+-function XTaylorHoodEnum(){ return 747;}
+-function OneLayerP4zEnum(){ return 748;}
+-function CrouzeixRaviartEnum(){ return 749;}
+-function LACrouzeixRaviartEnum(){ return 750;}
+-function SaveResultsEnum(){ return 751;}
+-function BoolExternalResultEnum(){ return 752;}
+-function DoubleExternalResultEnum(){ return 753;}
+-function DoubleMatExternalResultEnum(){ return 754;}
+-function IntExternalResultEnum(){ return 755;}
+-function JEnum(){ return 756;}
+-function StringExternalResultEnum(){ return 757;}
+-function StepEnum(){ return 758;}
+-function TimeEnum(){ return 759;}
+-function WaterColumnOldEnum(){ return 760;}
+-function OutputdefinitionEnum(){ return 761;}
+-function Outputdefinition1Enum(){ return 762;}
+-function Outputdefinition2Enum(){ return 763;}
+-function Outputdefinition3Enum(){ return 764;}
+-function Outputdefinition4Enum(){ return 765;}
+-function Outputdefinition5Enum(){ return 766;}
+-function Outputdefinition6Enum(){ return 767;}
+-function Outputdefinition7Enum(){ return 768;}
+-function Outputdefinition8Enum(){ return 769;}
+-function Outputdefinition9Enum(){ return 770;}
+-function Outputdefinition10Enum(){ return 771;}
+-function Outputdefinition11Enum(){ return 772;}
+-function Outputdefinition12Enum(){ return 773;}
+-function Outputdefinition13Enum(){ return 774;}
+-function Outputdefinition14Enum(){ return 775;}
+-function Outputdefinition15Enum(){ return 776;}
+-function Outputdefinition16Enum(){ return 777;}
+-function Outputdefinition17Enum(){ return 778;}
+-function Outputdefinition18Enum(){ return 779;}
+-function Outputdefinition19Enum(){ return 780;}
+-function Outputdefinition20Enum(){ return 781;}
+-function Outputdefinition21Enum(){ return 782;}
+-function Outputdefinition22Enum(){ return 783;}
+-function Outputdefinition23Enum(){ return 784;}
+-function Outputdefinition24Enum(){ return 785;}
+-function Outputdefinition25Enum(){ return 786;}
+-function Outputdefinition26Enum(){ return 787;}
+-function Outputdefinition27Enum(){ return 788;}
+-function Outputdefinition28Enum(){ return 789;}
+-function Outputdefinition29Enum(){ return 790;}
+-function Outputdefinition30Enum(){ return 791;}
+-function Outputdefinition31Enum(){ return 792;}
+-function Outputdefinition32Enum(){ return 793;}
+-function Outputdefinition33Enum(){ return 794;}
+-function Outputdefinition34Enum(){ return 795;}
+-function Outputdefinition35Enum(){ return 796;}
+-function Outputdefinition36Enum(){ return 797;}
+-function Outputdefinition37Enum(){ return 798;}
+-function Outputdefinition38Enum(){ return 799;}
+-function Outputdefinition39Enum(){ return 800;}
+-function Outputdefinition40Enum(){ return 801;}
+-function Outputdefinition41Enum(){ return 802;}
+-function Outputdefinition42Enum(){ return 803;}
+-function Outputdefinition43Enum(){ return 804;}
+-function Outputdefinition44Enum(){ return 805;}
+-function Outputdefinition45Enum(){ return 806;}
+-function Outputdefinition46Enum(){ return 807;}
+-function Outputdefinition47Enum(){ return 808;}
+-function Outputdefinition48Enum(){ return 809;}
+-function Outputdefinition49Enum(){ return 810;}
+-function Outputdefinition50Enum(){ return 811;}
+-function Outputdefinition51Enum(){ return 812;}
+-function Outputdefinition52Enum(){ return 813;}
+-function Outputdefinition53Enum(){ return 814;}
+-function Outputdefinition54Enum(){ return 815;}
+-function Outputdefinition55Enum(){ return 816;}
+-function Outputdefinition56Enum(){ return 817;}
+-function Outputdefinition57Enum(){ return 818;}
+-function Outputdefinition58Enum(){ return 819;}
+-function Outputdefinition59Enum(){ return 820;}
+-function Outputdefinition60Enum(){ return 821;}
+-function Outputdefinition61Enum(){ return 822;}
+-function Outputdefinition62Enum(){ return 823;}
+-function Outputdefinition63Enum(){ return 824;}
+-function Outputdefinition64Enum(){ return 825;}
+-function Outputdefinition65Enum(){ return 826;}
+-function Outputdefinition66Enum(){ return 827;}
+-function Outputdefinition67Enum(){ return 828;}
+-function Outputdefinition68Enum(){ return 829;}
+-function Outputdefinition69Enum(){ return 830;}
+-function Outputdefinition70Enum(){ return 831;}
+-function Outputdefinition71Enum(){ return 832;}
+-function Outputdefinition72Enum(){ return 833;}
+-function Outputdefinition73Enum(){ return 834;}
+-function Outputdefinition74Enum(){ return 835;}
+-function Outputdefinition75Enum(){ return 836;}
+-function Outputdefinition76Enum(){ return 837;}
+-function Outputdefinition77Enum(){ return 838;}
+-function Outputdefinition78Enum(){ return 839;}
+-function Outputdefinition79Enum(){ return 840;}
+-function Outputdefinition80Enum(){ return 841;}
+-function Outputdefinition81Enum(){ return 842;}
+-function Outputdefinition82Enum(){ return 843;}
+-function Outputdefinition83Enum(){ return 844;}
+-function Outputdefinition84Enum(){ return 845;}
+-function Outputdefinition85Enum(){ return 846;}
+-function Outputdefinition86Enum(){ return 847;}
+-function Outputdefinition87Enum(){ return 848;}
+-function Outputdefinition88Enum(){ return 849;}
+-function Outputdefinition89Enum(){ return 850;}
+-function Outputdefinition90Enum(){ return 851;}
+-function Outputdefinition91Enum(){ return 852;}
+-function Outputdefinition92Enum(){ return 853;}
+-function Outputdefinition93Enum(){ return 854;}
+-function Outputdefinition94Enum(){ return 855;}
+-function Outputdefinition95Enum(){ return 856;}
+-function Outputdefinition96Enum(){ return 857;}
+-function Outputdefinition97Enum(){ return 858;}
+-function Outputdefinition98Enum(){ return 859;}
+-function Outputdefinition99Enum(){ return 860;}
+-function Outputdefinition100Enum(){ return 861;}
+-function OutputdefinitionListEnum(){ return 862;}
+-function MassfluxatgateEnum(){ return 863;}
+-function MassfluxatgateNameEnum(){ return 864;}
+-function MassfluxatgateDefinitionenumEnum(){ return 865;}
+-function MassfluxatgateSegmentsEnum(){ return 866;}
+-function NodalvalueEnum(){ return 867;}
+-function NodalvalueNameEnum(){ return 868;}
+-function NodalvalueDefinitionenumEnum(){ return 869;}
+-function NodalvalueModelEnum(){ return 870;}
+-function NodalvalueNodeEnum(){ return 871;}
+-function MisfitNameEnum(){ return 872;}
+-function MisfitDefinitionenumEnum(){ return 873;}
+-function MisfitModelEnum(){ return 874;}
+-function MisfitObservationEnum(){ return 875;}
+-function MisfitObservationEnum(){ return 876;}
+-function MisfitLocalEnum(){ return 877;}
+-function MisfitTimeinterpolationEnum(){ return 878;}
+-function MisfitWeightsEnum(){ return 879;}
+-function MisfitWeightsEnum(){ return 880;}
+-function SurfaceObservationEnum(){ return 881;}
+-function WeightsSurfaceObservationEnum(){ return 882;}
+-function VxObsEnum(){ return 883;}
+-function WeightsVxObsEnum(){ return 884;}
+-function VyObsEnum(){ return 885;}
+-function WeightsVyObsEnum(){ return 886;}
+-function MinVelEnum(){ return 887;}
+-function MaxVelEnum(){ return 888;}
+-function MinVxEnum(){ return 889;}
+-function MaxVxEnum(){ return 890;}
+-function MaxAbsVxEnum(){ return 891;}
+-function MinVyEnum(){ return 892;}
+-function MaxVyEnum(){ return 893;}
+-function MaxAbsVyEnum(){ return 894;}
+-function MinVzEnum(){ return 895;}
+-function MaxVzEnum(){ return 896;}
+-function MaxAbsVzEnum(){ return 897;}
+-function FloatingAreaEnum(){ return 898;}
+-function GroundedAreaEnum(){ return 899;}
+-function IceMassEnum(){ return 900;}
+-function IceVolumeEnum(){ return 901;}
+-function IceVolumeAboveFloatationEnum(){ return 902;}
+-function TotalFloatingBmbEnum(){ return 903;}
+-function TotalGroundedBmbEnum(){ return 904;}
+-function TotalSmbEnum(){ return 905;}
+-function AbsoluteEnum(){ return 906;}
+-function IncrementalEnum(){ return 907;}
+-function AugmentedLagrangianREnum(){ return 908;}
+-function AugmentedLagrangianRhopEnum(){ return 909;}
+-function AugmentedLagrangianRlambdaEnum(){ return 910;}
+-function AugmentedLagrangianRholambdaEnum(){ return 911;}
+-function AugmentedLagrangianThetaEnum(){ return 912;}
+-function NoneEnum(){ return 913;}
+-function AggressiveMigrationEnum(){ return 914;}
+-function SoftMigrationEnum(){ return 915;}
+-function SubelementMigrationEnum(){ return 916;}
+-function SubelementMigration2Enum(){ return 917;}
+-function ContactEnum(){ return 918;}
+-function GroundingOnlyEnum(){ return 919;}
+-function MaskGroundediceLevelsetEnum(){ return 920;}
+-function GaussSegEnum(){ return 921;}
+-function GaussTriaEnum(){ return 922;}
+-function GaussTetraEnum(){ return 923;}
+-function GaussPentaEnum(){ return 924;}
+-function FSSolverEnum(){ return 925;}
+-function AdjointEnum(){ return 926;}
+-function ColinearEnum(){ return 927;}
+-function ControlSteadyEnum(){ return 928;}
+-function FsetEnum(){ return 929;}
+-function Gradient1Enum(){ return 930;}
+-function Gradient2Enum(){ return 931;}
+-function Gradient3Enum(){ return 932;}
+-function GradientEnum(){ return 933;}
+-function GroundinglineMigrationEnum(){ return 934;}
+-function GsetEnum(){ return 935;}
+-function IndexEnum(){ return 936;}
+-function IndexedEnum(){ return 937;}
+-function IntersectEnum(){ return 938;}
+-function NodalEnum(){ return 939;}
+-function OldGradientEnum(){ return 940;}
+-function OutputBufferPointerEnum(){ return 941;}
+-function OutputBufferSizePointerEnum(){ return 942;}
+-function OutputFilePointerEnum(){ return 943;}
+-function ToolkitsFileNameEnum(){ return 944;}
+-function RootPathEnum(){ return 945;}
+-function OutputFileNameEnum(){ return 946;}
+-function InputFileNameEnum(){ return 947;}
+-function LockFileNameEnum(){ return 948;}
+-function RestartFileNameEnum(){ return 949;}
+-function ToolkitsOptionsAnalysesEnum(){ return 950;}
+-function ToolkitsOptionsStringsEnum(){ return 951;}
+-function QmuErrNameEnum(){ return 952;}
+-function QmuInNameEnum(){ return 953;}
+-function QmuOutNameEnum(){ return 954;}
+-function RegularEnum(){ return 955;}
+-function ScaledEnum(){ return 956;}
+-function SeparateEnum(){ return 957;}
+-function SsetEnum(){ return 958;}
+-function VerboseEnum(){ return 959;}
+-function TriangleInterpEnum(){ return 960;}
+-function BilinearInterpEnum(){ return 961;}
+-function NearestInterpEnum(){ return 962;}
+-function XYEnum(){ return 963;}
+-function XYZEnum(){ return 964;}
+-function DenseEnum(){ return 965;}
+-function MpiDenseEnum(){ return 966;}
+-function MpiSparseEnum(){ return 967;}
+-function SeqEnum(){ return 968;}
+-function MpiEnum(){ return 969;}
+-function MumpsEnum(){ return 970;}
+-function GslEnum(){ return 971;}
+-function OptionEnum(){ return 972;}
+-function GenericOptionEnum(){ return 973;}
+-function OptionCellEnum(){ return 974;}
+-function OptionStructEnum(){ return 975;}
+-function CuffeyEnum(){ return 976;}
+-function PatersonEnum(){ return 977;}
+-function ArrheniusEnum(){ return 978;}
+-function LliboutryDuvalEnum(){ return 979;}
+-function SpcLevelsetEnum(){ return 980;}
+-function ExtrapolationVariableEnum(){ return 981;}
+-function IceMaskNodeActivationEnum(){ return 982;}
+-function LevelsetfunctionSlopeXEnum(){ return 983;}
+-function LevelsetfunctionSlopeYEnum(){ return 984;}
+-function LevelsetfunctionPicardEnum(){ return 985;}
+-function LevelsetReinitFrequencyEnum(){ return 986;}
+-function SealevelriseSolutionEnum(){ return 987;}
+-function SealevelriseAnalysisEnum(){ return 988;}
+-function SealevelEnum(){ return 989;}
+-function SealevelEustaticEnum(){ return 990;}
+-function SealevelriseDeltathicknessEnum(){ return 991;}
+-function SealevelriseMaxiterEnum(){ return 992;}
+-function SealevelriseReltolEnum(){ return 993;}
+-function SealevelriseAbstolEnum(){ return 994;}
+-function SealevelriseLoveHEnum(){ return 995;}
+-function SealevelriseLoveKEnum(){ return 996;}
+-function SealevelriseTideLoveHEnum(){ return 997;}
+-function SealevelriseTideLoveKEnum(){ return 998;}
+-function SealevelriseRigidEnum(){ return 999;}
+-function SealevelriseElasticEnum(){ return 1000;}
+-function SealevelriseRotationEnum(){ return 1001;}
+-function SealevelriseGElasticEnum(){ return 1002;}
+-function SealevelriseDegaccEnum(){ return 1003;}
+-function SealevelriseTransitionsEnum(){ return 1004;}
+-function SealevelriseRequestedOutputsEnum(){ return 1005;}
+-function SealevelriseNumRequestedOutputsEnum(){ return 1006;}
+-function MaximumNumberOfDefinitionsEnum(){ return 1007;}
++function CalvingDevEnum(){ return 244;}
++function DefaultCalvingEnum(){ return 245;}
++function CalvingRequestedOutputsEnum(){ return 246;}
++function CalvinglevermannCoeffEnum(){ return 247;}
++function CalvinglevermannMeltingrateEnum(){ return 248;}
++function CalvingdevCoeffEnum(){ return 249;}
++function CalvingratexEnum(){ return 250;}
++function CalvingrateyEnum(){ return 251;}
++function CalvingratexAverageEnum(){ return 252;}
++function CalvingrateyAverageEnum(){ return 253;}
++function StrainRateparallelEnum(){ return 254;}
++function StrainRateperpendicularEnum(){ return 255;}
++function StrainRateeffectiveEnum(){ return 256;}
++function MaterialsRhoIceEnum(){ return 257;}
++function MaterialsRhoSeawaterEnum(){ return 258;}
++function MaterialsRhoFreshwaterEnum(){ return 259;}
++function MaterialsMuWaterEnum(){ return 260;}
++function MaterialsThermalExchangeVelocityEnum(){ return 261;}
++function MaterialsThermalconductivityEnum(){ return 262;}
++function MaterialsTemperateiceconductivityEnum(){ return 263;}
++function MaterialsLithosphereShearModulusEnum(){ return 264;}
++function MaterialsLithosphereDensityEnum(){ return 265;}
++function MaterialsMantleShearModulusEnum(){ return 266;}
++function MaterialsMantleDensityEnum(){ return 267;}
++function MaterialsEarthDensityEnum(){ return 268;}
++function MeshAverageVertexConnectivityEnum(){ return 269;}
++function MeshElements2dEnum(){ return 270;}
++function MeshElementsEnum(){ return 271;}
++function MeshLowerelementsEnum(){ return 272;}
++function MeshNumberofelements2dEnum(){ return 273;}
++function MeshNumberofelementsEnum(){ return 274;}
++function MeshNumberoflayersEnum(){ return 275;}
++function MeshNumberofvertices2dEnum(){ return 276;}
++function MeshNumberofverticesEnum(){ return 277;}
++function MeshUpperelementsEnum(){ return 278;}
++function MeshVertexonbaseEnum(){ return 279;}
++function MeshVertexonsurfaceEnum(){ return 280;}
++function MeshVertexonboundaryEnum(){ return 281;}
++function MeshXEnum(){ return 282;}
++function MeshYEnum(){ return 283;}
++function MeshZEnum(){ return 284;}
++function MeshLatEnum(){ return 285;}
++function MeshLongEnum(){ return 286;}
++function MeshREnum(){ return 287;}
++function MeshElementtypeEnum(){ return 288;}
++function MeshSegmentsEnum(){ return 289;}
++function DomainTypeEnum(){ return 290;}
++function DomainDimensionEnum(){ return 291;}
++function Domain2DhorizontalEnum(){ return 292;}
++function Domain2DverticalEnum(){ return 293;}
++function Domain3DEnum(){ return 294;}
++function Domain3DsurfaceEnum(){ return 295;}
++function MiscellaneousNameEnum(){ return 296;}
++function MasstransportHydrostaticAdjustmentEnum(){ return 297;}
++function MasstransportIsfreesurfaceEnum(){ return 298;}
++function MasstransportMinThicknessEnum(){ return 299;}
++function MasstransportPenaltyFactorEnum(){ return 300;}
++function MasstransportSpcthicknessEnum(){ return 301;}
++function MasstransportStabilizationEnum(){ return 302;}
++function MasstransportVertexPairingEnum(){ return 303;}
++function MasstransportNumRequestedOutputsEnum(){ return 304;}
++function MasstransportRequestedOutputsEnum(){ return 305;}
++function QmuIsdakotaEnum(){ return 306;}
++function MassFluxSegmentsEnum(){ return 307;}
++function MassFluxSegmentsPresentEnum(){ return 308;}
++function QmuMassFluxSegmentsPresentEnum(){ return 309;}
++function QmuNumberofpartitionsEnum(){ return 310;}
++function QmuNumberofresponsesEnum(){ return 311;}
++function QmuPartitionEnum(){ return 312;}
++function QmuResponsedescriptorsEnum(){ return 313;}
++function QmuVariabledescriptorsEnum(){ return 314;}
++function RiftsNumriftsEnum(){ return 315;}
++function RiftsRiftstructEnum(){ return 316;}
++function SettingsResultsOnNodesEnum(){ return 317;}
++function SettingsIoGatherEnum(){ return 318;}
++function SettingsLowmemEnum(){ return 319;}
++function SettingsOutputFrequencyEnum(){ return 320;}
++function SettingsRecordingFrequencyEnum(){ return 321;}
++function SettingsWaitonlockEnum(){ return 322;}
++function DebugProfilingEnum(){ return 323;}
++function ProfilingCurrentMemEnum(){ return 324;}
++function ProfilingCurrentFlopsEnum(){ return 325;}
++function ProfilingSolutionTimeEnum(){ return 326;}
++function SteadystateMaxiterEnum(){ return 327;}
++function SteadystateNumRequestedOutputsEnum(){ return 328;}
++function SteadystateReltolEnum(){ return 329;}
++function SteadystateRequestedOutputsEnum(){ return 330;}
++function SurfaceEnum(){ return 331;}
++function ThermalIsenthalpyEnum(){ return 332;}
++function ThermalIsdynamicbasalspcEnum(){ return 333;}
++function ThermalReltolEnum(){ return 334;}
++function ThermalMaxiterEnum(){ return 335;}
++function ThermalPenaltyFactorEnum(){ return 336;}
++function ThermalPenaltyLockEnum(){ return 337;}
++function ThermalPenaltyThresholdEnum(){ return 338;}
++function ThermalSpctemperatureEnum(){ return 339;}
++function ThermalStabilizationEnum(){ return 340;}
++function ThermalNumRequestedOutputsEnum(){ return 341;}
++function ThermalRequestedOutputsEnum(){ return 342;}
++function GiaMantleViscosityEnum(){ return 343;}
++function GiaLithosphereThicknessEnum(){ return 344;}
++function ThicknessEnum(){ return 345;}
++function TimesteppingStartTimeEnum(){ return 346;}
++function TimesteppingFinalTimeEnum(){ return 347;}
++function TimesteppingCflCoefficientEnum(){ return 348;}
++function TimesteppingTimeAdaptEnum(){ return 349;}
++function TimesteppingTimeStepEnum(){ return 350;}
++function TimesteppingInterpForcingsEnum(){ return 351;}
++function TransientIssmbEnum(){ return 352;}
++function TransientIscouplerEnum(){ return 353;}
++function TransientIsstressbalanceEnum(){ return 354;}
++function TransientIsgroundinglineEnum(){ return 355;}
++function TransientIsmasstransportEnum(){ return 356;}
++function TransientIsthermalEnum(){ return 357;}
++function TransientIsgiaEnum(){ return 358;}
++function TransientIsdamageevolutionEnum(){ return 359;}
++function TransientIshydrologyEnum(){ return 360;}
++function TransientIsmovingfrontEnum(){ return 361;}
++function TransientIsslrEnum(){ return 362;}
++function TransientNumRequestedOutputsEnum(){ return 363;}
++function TransientRequestedOutputsEnum(){ return 364;}
++function PotentialEnum(){ return 365;}
++function BalancethicknessSpcpotentialEnum(){ return 366;}
++function BalancethicknessApparentMassbalanceEnum(){ return 367;}
++function Balancethickness2MisfitEnum(){ return 368;}
++function BalancethicknessDiffusionCoefficientEnum(){ return 369;}
++function BalancethicknessCmuEnum(){ return 370;}
++function BalancethicknessOmegaEnum(){ return 371;}
++function BalancethicknessD0Enum(){ return 372;}
++function SmbEnum(){ return 373;}
++function SmbAnalysisEnum(){ return 374;}
++function SmbSolutionEnum(){ return 375;}
++function SmbNumRequestedOutputsEnum(){ return 376;}
++function SmbRequestedOutputsEnum(){ return 377;}
++function SmbIsInitializedEnum(){ return 378;}
++function SMBforcingEnum(){ return 379;}
++function SmbMassBalanceEnum(){ return 380;}
++function SMBgembEnum(){ return 381;}
++function SmbInitDensityScalingEnum(){ return 382;}
++function SmbTaEnum(){ return 383;}
++function SmbVEnum(){ return 384;}
++function SmbDswrfEnum(){ return 385;}
++function SmbDlwrfEnum(){ return 386;}
++function SmbPEnum(){ return 387;}
++function SmbSwfEnum(){ return 388;}
++function SmbEAirEnum(){ return 389;}
++function SmbPAirEnum(){ return 390;}
++function SmbTmeanEnum(){ return 391;}
++function SmbCEnum(){ return 392;}
++function SmbTzEnum(){ return 393;}
++function SmbVzEnum(){ return 394;}
++function SmbDtEnum(){ return 395;}
++function SmbDzEnum(){ return 396;}
++function SmbAIdxEnum(){ return 397;}
++function SmbSwIdxEnum(){ return 398;}
++function SmbDenIdxEnum(){ return 399;}
++function SmbZTopEnum(){ return 400;}
++function SmbDzTopEnum(){ return 401;}
++function SmbDzMinEnum(){ return 402;}
++function SmbZYEnum(){ return 403;}
++function SmbZMaxEnum(){ return 404;}
++function SmbZMinEnum(){ return 405;}
++function SmbOutputFreqEnum(){ return 406;}
++function SmbASnowEnum(){ return 407;}
++function SmbAIceEnum(){ return 408;}
++function SmbCldFracEnum(){ return 409;}
++function SmbT0wetEnum(){ return 410;}
++function SmbT0dryEnum(){ return 411;}
++function SmbKEnum(){ return 412;}
++function SmbDEnum(){ return 413;}
++function SmbReEnum(){ return 414;}
++function SmbGdnEnum(){ return 415;}
++function SmbGspEnum(){ return 416;}
++function SmbECEnum(){ return 417;}
++function SmbCondensationEnum(){ return 418;}
++function SmbWEnum(){ return 419;}
++function SmbAEnum(){ return 420;}
++function SmbTEnum(){ return 421;}
++function SmbIsgraingrowthEnum(){ return 422;}
++function SmbIsalbedoEnum(){ return 423;}
++function SmbIsshortwaveEnum(){ return 424;}
++function SmbIsthermalEnum(){ return 425;}
++function SmbIsaccumulationEnum(){ return 426;}
++function SmbIsmeltEnum(){ return 427;}
++function SmbIsdensificationEnum(){ return 428;}
++function SmbIsturbulentfluxEnum(){ return 429;}
++function SMBpddEnum(){ return 430;}
++function SmbDelta18oEnum(){ return 431;}
++function SmbDelta18oSurfaceEnum(){ return 432;}
++function SmbIsdelta18oEnum(){ return 433;}
++function SmbIsmungsmEnum(){ return 434;}
++function SmbIsd18opdEnum(){ return 435;}
++function SmbPrecipitationsPresentdayEnum(){ return 436;}
++function SmbPrecipitationsLgmEnum(){ return 437;}
++function SmbTemperaturesPresentdayEnum(){ return 438;}
++function SmbTemperaturesLgmEnum(){ return 439;}
++function SmbPrecipitationEnum(){ return 440;}
++function SmbDesfacEnum(){ return 441;}
++function SmbS0pEnum(){ return 442;}
++function SmbS0tEnum(){ return 443;}
++function SmbRlapsEnum(){ return 444;}
++function SmbRlapslgmEnum(){ return 445;}
++function SmbPfacEnum(){ return 446;}
++function SmbTdiffEnum(){ return 447;}
++function SmbSealevEnum(){ return 448;}
++function SMBd18opddEnum(){ return 449;}
++function SmbDpermilEnum(){ return 450;}
++function SMBgradientsEnum(){ return 451;}
++function SmbMonthlytemperaturesEnum(){ return 452;}
++function SmbHrefEnum(){ return 453;}
++function SmbSmbrefEnum(){ return 454;}
++function SmbBPosEnum(){ return 455;}
++function SmbBNegEnum(){ return 456;}
++function SMBhenningEnum(){ return 457;}
++function SMBcomponentsEnum(){ return 458;}
++function SmbAccumulationEnum(){ return 459;}
++function SmbEvaporationEnum(){ return 460;}
++function SmbRunoffEnum(){ return 461;}
++function SMBmeltcomponentsEnum(){ return 462;}
++function SmbMeltEnum(){ return 463;}
++function SmbRefreezeEnum(){ return 464;}
++function SMBgcmEnum(){ return 465;}
++function SmbIspddEnum(){ return 466;}
++function SmbIssmbgradientsEnum(){ return 467;}
++function SolutionTypeEnum(){ return 468;}
++function AnalysisTypeEnum(){ return 469;}
++function ConfigurationTypeEnum(){ return 470;}
++function AdjointBalancethicknessAnalysisEnum(){ return 471;}
++function AdjointBalancethickness2AnalysisEnum(){ return 472;}
++function AdjointHorizAnalysisEnum(){ return 473;}
++function AnalysisCounterEnum(){ return 474;}
++function DefaultAnalysisEnum(){ return 475;}
++function BalancethicknessAnalysisEnum(){ return 476;}
++function BalancethicknessSolutionEnum(){ return 477;}
++function Balancethickness2AnalysisEnum(){ return 478;}
++function Balancethickness2SolutionEnum(){ return 479;}
++function BalancethicknessSoftAnalysisEnum(){ return 480;}
++function BalancethicknessSoftSolutionEnum(){ return 481;}
++function BalancevelocityAnalysisEnum(){ return 482;}
++function BalancevelocitySolutionEnum(){ return 483;}
++function L2ProjectionEPLAnalysisEnum(){ return 484;}
++function L2ProjectionBaseAnalysisEnum(){ return 485;}
++function BedSlopeSolutionEnum(){ return 486;}
++function DamageEvolutionSolutionEnum(){ return 487;}
++function DamageEvolutionAnalysisEnum(){ return 488;}
++function StressbalanceAnalysisEnum(){ return 489;}
++function StressbalanceSIAAnalysisEnum(){ return 490;}
++function StressbalanceSolutionEnum(){ return 491;}
++function StressbalanceVerticalAnalysisEnum(){ return 492;}
++function EnthalpyAnalysisEnum(){ return 493;}
++function FlaimAnalysisEnum(){ return 494;}
++function FlaimSolutionEnum(){ return 495;}
++function HydrologyShreveAnalysisEnum(){ return 496;}
++function HydrologyDCInefficientAnalysisEnum(){ return 497;}
++function HydrologyDCEfficientAnalysisEnum(){ return 498;}
++function HydrologySommersAnalysisEnum(){ return 499;}
++function HydrologySolutionEnum(){ return 500;}
++function MeltingAnalysisEnum(){ return 501;}
++function MasstransportAnalysisEnum(){ return 502;}
++function MasstransportSolutionEnum(){ return 503;}
++function FreeSurfaceBaseAnalysisEnum(){ return 504;}
++function FreeSurfaceTopAnalysisEnum(){ return 505;}
++function SurfaceNormalVelocityEnum(){ return 506;}
++function ExtrudeFromBaseAnalysisEnum(){ return 507;}
++function ExtrudeFromTopAnalysisEnum(){ return 508;}
++function DepthAverageAnalysisEnum(){ return 509;}
++function SteadystateSolutionEnum(){ return 510;}
++function SurfaceSlopeSolutionEnum(){ return 511;}
++function SmoothAnalysisEnum(){ return 512;}
++function ThermalAnalysisEnum(){ return 513;}
++function ThermalSolutionEnum(){ return 514;}
++function TransientSolutionEnum(){ return 515;}
++function UzawaPressureAnalysisEnum(){ return 516;}
++function GiaSolutionEnum(){ return 517;}
++function GiaAnalysisEnum(){ return 518;}
++function MeshdeformationSolutionEnum(){ return 519;}
++function MeshdeformationAnalysisEnum(){ return 520;}
++function LevelsetAnalysisEnum(){ return 521;}
++function LevelsetStabilizationEnum(){ return 522;}
++function ExtrapolationAnalysisEnum(){ return 523;}
++function LsfReinitializationAnalysisEnum(){ return 524;}
++function ApproximationEnum(){ return 525;}
++function NoneApproximationEnum(){ return 526;}
++function SIAApproximationEnum(){ return 527;}
++function SSAApproximationEnum(){ return 528;}
++function SSAHOApproximationEnum(){ return 529;}
++function SSAFSApproximationEnum(){ return 530;}
++function L1L2ApproximationEnum(){ return 531;}
++function HOApproximationEnum(){ return 532;}
++function HOFSApproximationEnum(){ return 533;}
++function FSApproximationEnum(){ return 534;}
++function FSvelocityEnum(){ return 535;}
++function FSpressureEnum(){ return 536;}
++function DataSetEnum(){ return 537;}
++function ConstraintsEnum(){ return 538;}
++function LoadsEnum(){ return 539;}
++function MaterialsEnum(){ return 540;}
++function NodesEnum(){ return 541;}
++function ContoursEnum(){ return 542;}
++function ParametersEnum(){ return 543;}
++function VerticesEnum(){ return 544;}
++function ResultsEnum(){ return 545;}
++function GenericParamEnum(){ return 546;}
++function AdolcParamEnum(){ return 547;}
++function BoolInputEnum(){ return 548;}
++function BoolParamEnum(){ return 549;}
++function ContourEnum(){ return 550;}
++function ControlInputEnum(){ return 551;}
++function DatasetInputEnum(){ return 552;}
++function DoubleInputEnum(){ return 553;}
++function DoubleArrayInputEnum(){ return 554;}
++function DataSetParamEnum(){ return 555;}
++function DoubleMatArrayParamEnum(){ return 556;}
++function DoubleMatParamEnum(){ return 557;}
++function DoubleParamEnum(){ return 558;}
++function DoubleVecParamEnum(){ return 559;}
++function ElementEnum(){ return 560;}
++function ElementHookEnum(){ return 561;}
++function HookEnum(){ return 562;}
++function ExternalResultEnum(){ return 563;}
++function FileParamEnum(){ return 564;}
++function InputEnum(){ return 565;}
++function IntInputEnum(){ return 566;}
++function InputToExtrudeEnum(){ return 567;}
++function InputToL2ProjectEnum(){ return 568;}
++function InputToDepthaverageEnum(){ return 569;}
++function InputToSmoothEnum(){ return 570;}
++function SmoothThicknessMultiplierEnum(){ return 571;}
++function IntParamEnum(){ return 572;}
++function IntVecParamEnum(){ return 573;}
++function TransientParamEnum(){ return 574;}
++function MaticeEnum(){ return 575;}
++function MatdamageiceEnum(){ return 576;}
++function MatparEnum(){ return 577;}
++function NodeEnum(){ return 578;}
++function NumericalfluxEnum(){ return 579;}
++function NumericalfluxTypeEnum(){ return 580;}
++function NeumannfluxEnum(){ return 581;}
++function ParamEnum(){ return 582;}
++function MoulinEnum(){ return 583;}
++function PengridEnum(){ return 584;}
++function PenpairEnum(){ return 585;}
++function ProfilerEnum(){ return 586;}
++function MatrixParamEnum(){ return 587;}
++function MassconEnum(){ return 588;}
++function MassconNameEnum(){ return 589;}
++function MassconDefinitionenumEnum(){ return 590;}
++function MassconLevelsetEnum(){ return 591;}
++function MassconaxpbyEnum(){ return 592;}
++function MassconaxpbyNameEnum(){ return 593;}
++function MassconaxpbyDefinitionenumEnum(){ return 594;}
++function MassconaxpbyNamexEnum(){ return 595;}
++function MassconaxpbyNameyEnum(){ return 596;}
++function MassconaxpbyAlphaEnum(){ return 597;}
++function MassconaxpbyBetaEnum(){ return 598;}
++function NodeSIdEnum(){ return 599;}
++function VectorParamEnum(){ return 600;}
++function RiftfrontEnum(){ return 601;}
++function RiftfrontTypeEnum(){ return 602;}
++function SegmentEnum(){ return 603;}
++function SegmentRiftfrontEnum(){ return 604;}
++function SpcDynamicEnum(){ return 605;}
++function SpcStaticEnum(){ return 606;}
++function SpcTransientEnum(){ return 607;}
++function StringArrayParamEnum(){ return 608;}
++function StringParamEnum(){ return 609;}
++function SegEnum(){ return 610;}
++function SegInputEnum(){ return 611;}
++function TriaEnum(){ return 612;}
++function TriaInputEnum(){ return 613;}
++function TetraEnum(){ return 614;}
++function TetraInputEnum(){ return 615;}
++function PentaEnum(){ return 616;}
++function PentaInputEnum(){ return 617;}
++function VertexEnum(){ return 618;}
++function VertexPIdEnum(){ return 619;}
++function VertexSIdEnum(){ return 620;}
++function AirEnum(){ return 621;}
++function IceEnum(){ return 622;}
++function MelangeEnum(){ return 623;}
++function WaterEnum(){ return 624;}
++function ClosedEnum(){ return 625;}
++function FreeEnum(){ return 626;}
++function OpenEnum(){ return 627;}
++function AdjointpEnum(){ return 628;}
++function AdjointxEnum(){ return 629;}
++function AdjointyEnum(){ return 630;}
++function AdjointzEnum(){ return 631;}
++function BalancethicknessMisfitEnum(){ return 632;}
++function BedSlopeXEnum(){ return 633;}
++function BedSlopeYEnum(){ return 634;}
++function BoundaryEnum(){ return 635;}
++function ConvergedEnum(){ return 636;}
++function FillEnum(){ return 637;}
++function FractionIncrementEnum(){ return 638;}
++function FrictionEnum(){ return 639;}
++function InternalEnum(){ return 640;}
++function MassFluxEnum(){ return 641;}
++function MeltingOffsetEnum(){ return 642;}
++function MisfitEnum(){ return 643;}
++function PressureEnum(){ return 644;}
++function PressurePicardEnum(){ return 645;}
++function AndroidFrictionCoefficientEnum(){ return 646;}
++function ResetPenaltiesEnum(){ return 647;}
++function SegmentOnIceShelfEnum(){ return 648;}
++function SurfaceAbsVelMisfitEnum(){ return 649;}
++function SurfaceAreaEnum(){ return 650;}
++function SurfaceAverageVelMisfitEnum(){ return 651;}
++function SurfaceLogVelMisfitEnum(){ return 652;}
++function SurfaceLogVxVyMisfitEnum(){ return 653;}
++function SurfaceRelVelMisfitEnum(){ return 654;}
++function SurfaceSlopeXEnum(){ return 655;}
++function SurfaceSlopeYEnum(){ return 656;}
++function TemperatureEnum(){ return 657;}
++function TemperaturePicardEnum(){ return 658;}
++function TemperaturePDDEnum(){ return 659;}
++function ThicknessAbsMisfitEnum(){ return 660;}
++function SurfaceAbsMisfitEnum(){ return 661;}
++function VelEnum(){ return 662;}
++function VelocityEnum(){ return 663;}
++function VxAverageEnum(){ return 664;}
++function VxEnum(){ return 665;}
++function VxPicardEnum(){ return 666;}
++function VyAverageEnum(){ return 667;}
++function VyEnum(){ return 668;}
++function VyPicardEnum(){ return 669;}
++function VzEnum(){ return 670;}
++function VzSSAEnum(){ return 671;}
++function VzHOEnum(){ return 672;}
++function VzPicardEnum(){ return 673;}
++function VzFSEnum(){ return 674;}
++function VxMeshEnum(){ return 675;}
++function VyMeshEnum(){ return 676;}
++function VzMeshEnum(){ return 677;}
++function EnthalpyEnum(){ return 678;}
++function EnthalpyPicardEnum(){ return 679;}
++function ThicknessAbsGradientEnum(){ return 680;}
++function ThicknessAlongGradientEnum(){ return 681;}
++function ThicknessAcrossGradientEnum(){ return 682;}
++function ThicknessPositiveEnum(){ return 683;}
++function IntMatParamEnum(){ return 684;}
++function RheologyBbarAbsGradientEnum(){ return 685;}
++function RheologyBAbsGradientEnum(){ return 686;}
++function DragCoefficientAbsGradientEnum(){ return 687;}
++function TransientInputEnum(){ return 688;}
++function WaterfractionEnum(){ return 689;}
++function WatercolumnEnum(){ return 690;}
++function BasalFrictionEnum(){ return 691;}
++function ViscousHeatingEnum(){ return 692;}
++function HydrologyWaterVxEnum(){ return 693;}
++function HydrologyWaterVyEnum(){ return 694;}
++function DrivingStressXEnum(){ return 695;}
++function DrivingStressYEnum(){ return 696;}
++function SigmaNNEnum(){ return 697;}
++function StressTensorEnum(){ return 698;}
++function StressTensorxxEnum(){ return 699;}
++function StressTensorxyEnum(){ return 700;}
++function StressTensorxzEnum(){ return 701;}
++function StressTensoryyEnum(){ return 702;}
++function StressTensoryzEnum(){ return 703;}
++function StressTensorzzEnum(){ return 704;}
++function StressMaxPrincipalEnum(){ return 705;}
++function DeviatoricStressEnum(){ return 706;}
++function DeviatoricStressxxEnum(){ return 707;}
++function DeviatoricStressxyEnum(){ return 708;}
++function DeviatoricStressxzEnum(){ return 709;}
++function DeviatoricStressyyEnum(){ return 710;}
++function DeviatoricStressyzEnum(){ return 711;}
++function DeviatoricStresszzEnum(){ return 712;}
++function DeviatoricStresseffectiveEnum(){ return 713;}
++function StrainRateEnum(){ return 714;}
++function StrainRatexxEnum(){ return 715;}
++function StrainRatexyEnum(){ return 716;}
++function StrainRatexzEnum(){ return 717;}
++function StrainRateyyEnum(){ return 718;}
++function StrainRateyzEnum(){ return 719;}
++function StrainRatezzEnum(){ return 720;}
++function DivergenceEnum(){ return 721;}
++function MaxDivergenceEnum(){ return 722;}
++function GiaCrossSectionShapeEnum(){ return 723;}
++function GiadWdtEnum(){ return 724;}
++function GiaWEnum(){ return 725;}
++function P0Enum(){ return 726;}
++function P0ArrayEnum(){ return 727;}
++function P1Enum(){ return 728;}
++function P1DGEnum(){ return 729;}
++function P1bubbleEnum(){ return 730;}
++function P1bubblecondensedEnum(){ return 731;}
++function P2Enum(){ return 732;}
++function P2bubbleEnum(){ return 733;}
++function P2bubblecondensedEnum(){ return 734;}
++function P2xP1Enum(){ return 735;}
++function P1xP2Enum(){ return 736;}
++function P1xP3Enum(){ return 737;}
++function P2xP4Enum(){ return 738;}
++function P1P1Enum(){ return 739;}
++function P1P1GLSEnum(){ return 740;}
++function MINIEnum(){ return 741;}
++function MINIcondensedEnum(){ return 742;}
++function TaylorHoodEnum(){ return 743;}
++function LATaylorHoodEnum(){ return 744;}
++function XTaylorHoodEnum(){ return 745;}
++function OneLayerP4zEnum(){ return 746;}
++function CrouzeixRaviartEnum(){ return 747;}
++function LACrouzeixRaviartEnum(){ return 748;}
++function SaveResultsEnum(){ return 749;}
++function BoolExternalResultEnum(){ return 750;}
++function DoubleExternalResultEnum(){ return 751;}
++function DoubleMatExternalResultEnum(){ return 752;}
++function IntExternalResultEnum(){ return 753;}
++function JEnum(){ return 754;}
++function StringExternalResultEnum(){ return 755;}
++function StepEnum(){ return 756;}
++function TimeEnum(){ return 757;}
++function WaterColumnOldEnum(){ return 758;}
++function OutputdefinitionEnum(){ return 759;}
++function Outputdefinition1Enum(){ return 760;}
++function Outputdefinition2Enum(){ return 761;}
++function Outputdefinition3Enum(){ return 762;}
++function Outputdefinition4Enum(){ return 763;}
++function Outputdefinition5Enum(){ return 764;}
++function Outputdefinition6Enum(){ return 765;}
++function Outputdefinition7Enum(){ return 766;}
++function Outputdefinition8Enum(){ return 767;}
++function Outputdefinition9Enum(){ return 768;}
++function Outputdefinition10Enum(){ return 769;}
++function Outputdefinition11Enum(){ return 770;}
++function Outputdefinition12Enum(){ return 771;}
++function Outputdefinition13Enum(){ return 772;}
++function Outputdefinition14Enum(){ return 773;}
++function Outputdefinition15Enum(){ return 774;}
++function Outputdefinition16Enum(){ return 775;}
++function Outputdefinition17Enum(){ return 776;}
++function Outputdefinition18Enum(){ return 777;}
++function Outputdefinition19Enum(){ return 778;}
++function Outputdefinition20Enum(){ return 779;}
++function Outputdefinition21Enum(){ return 780;}
++function Outputdefinition22Enum(){ return 781;}
++function Outputdefinition23Enum(){ return 782;}
++function Outputdefinition24Enum(){ return 783;}
++function Outputdefinition25Enum(){ return 784;}
++function Outputdefinition26Enum(){ return 785;}
++function Outputdefinition27Enum(){ return 786;}
++function Outputdefinition28Enum(){ return 787;}
++function Outputdefinition29Enum(){ return 788;}
++function Outputdefinition30Enum(){ return 789;}
++function Outputdefinition31Enum(){ return 790;}
++function Outputdefinition32Enum(){ return 791;}
++function Outputdefinition33Enum(){ return 792;}
++function Outputdefinition34Enum(){ return 793;}
++function Outputdefinition35Enum(){ return 794;}
++function Outputdefinition36Enum(){ return 795;}
++function Outputdefinition37Enum(){ return 796;}
++function Outputdefinition38Enum(){ return 797;}
++function Outputdefinition39Enum(){ return 798;}
++function Outputdefinition40Enum(){ return 799;}
++function Outputdefinition41Enum(){ return 800;}
++function Outputdefinition42Enum(){ return 801;}
++function Outputdefinition43Enum(){ return 802;}
++function Outputdefinition44Enum(){ return 803;}
++function Outputdefinition45Enum(){ return 804;}
++function Outputdefinition46Enum(){ return 805;}
++function Outputdefinition47Enum(){ return 806;}
++function Outputdefinition48Enum(){ return 807;}
++function Outputdefinition49Enum(){ return 808;}
++function Outputdefinition50Enum(){ return 809;}
++function Outputdefinition51Enum(){ return 810;}
++function Outputdefinition52Enum(){ return 811;}
++function Outputdefinition53Enum(){ return 812;}
++function Outputdefinition54Enum(){ return 813;}
++function Outputdefinition55Enum(){ return 814;}
++function Outputdefinition56Enum(){ return 815;}
++function Outputdefinition57Enum(){ return 816;}
++function Outputdefinition58Enum(){ return 817;}
++function Outputdefinition59Enum(){ return 818;}
++function Outputdefinition60Enum(){ return 819;}
++function Outputdefinition61Enum(){ return 820;}
++function Outputdefinition62Enum(){ return 821;}
++function Outputdefinition63Enum(){ return 822;}
++function Outputdefinition64Enum(){ return 823;}
++function Outputdefinition65Enum(){ return 824;}
++function Outputdefinition66Enum(){ return 825;}
++function Outputdefinition67Enum(){ return 826;}
++function Outputdefinition68Enum(){ return 827;}
++function Outputdefinition69Enum(){ return 828;}
++function Outputdefinition70Enum(){ return 829;}
++function Outputdefinition71Enum(){ return 830;}
++function Outputdefinition72Enum(){ return 831;}
++function Outputdefinition73Enum(){ return 832;}
++function Outputdefinition74Enum(){ return 833;}
++function Outputdefinition75Enum(){ return 834;}
++function Outputdefinition76Enum(){ return 835;}
++function Outputdefinition77Enum(){ return 836;}
++function Outputdefinition78Enum(){ return 837;}
++function Outputdefinition79Enum(){ return 838;}
++function Outputdefinition80Enum(){ return 839;}
++function Outputdefinition81Enum(){ return 840;}
++function Outputdefinition82Enum(){ return 841;}
++function Outputdefinition83Enum(){ return 842;}
++function Outputdefinition84Enum(){ return 843;}
++function Outputdefinition85Enum(){ return 844;}
++function Outputdefinition86Enum(){ return 845;}
++function Outputdefinition87Enum(){ return 846;}
++function Outputdefinition88Enum(){ return 847;}
++function Outputdefinition89Enum(){ return 848;}
++function Outputdefinition90Enum(){ return 849;}
++function Outputdefinition91Enum(){ return 850;}
++function Outputdefinition92Enum(){ return 851;}
++function Outputdefinition93Enum(){ return 852;}
++function Outputdefinition94Enum(){ return 853;}
++function Outputdefinition95Enum(){ return 854;}
++function Outputdefinition96Enum(){ return 855;}
++function Outputdefinition97Enum(){ return 856;}
++function Outputdefinition98Enum(){ return 857;}
++function Outputdefinition99Enum(){ return 858;}
++function Outputdefinition100Enum(){ return 859;}
++function OutputdefinitionListEnum(){ return 860;}
++function MassfluxatgateEnum(){ return 861;}
++function MassfluxatgateNameEnum(){ return 862;}
++function MassfluxatgateDefinitionenumEnum(){ return 863;}
++function MassfluxatgateSegmentsEnum(){ return 864;}
++function NodalvalueEnum(){ return 865;}
++function NodalvalueNameEnum(){ return 866;}
++function NodalvalueDefinitionenumEnum(){ return 867;}
++function NodalvalueModelEnum(){ return 868;}
++function NodalvalueNodeEnum(){ return 869;}
++function MisfitNameEnum(){ return 870;}
++function MisfitDefinitionenumEnum(){ return 871;}
++function MisfitModelEnum(){ return 872;}
++function MisfitObservationEnum(){ return 873;}
++function MisfitObservationEnum(){ return 874;}
++function MisfitLocalEnum(){ return 875;}
++function MisfitTimeinterpolationEnum(){ return 876;}
++function MisfitWeightsEnum(){ return 877;}
++function MisfitWeightsEnum(){ return 878;}
++function SurfaceObservationEnum(){ return 879;}
++function WeightsSurfaceObservationEnum(){ return 880;}
++function VxObsEnum(){ return 881;}
++function WeightsVxObsEnum(){ return 882;}
++function VyObsEnum(){ return 883;}
++function WeightsVyObsEnum(){ return 884;}
++function MinVelEnum(){ return 885;}
++function MaxVelEnum(){ return 886;}
++function MinVxEnum(){ return 887;}
++function MaxVxEnum(){ return 888;}
++function MaxAbsVxEnum(){ return 889;}
++function MinVyEnum(){ return 890;}
++function MaxVyEnum(){ return 891;}
++function MaxAbsVyEnum(){ return 892;}
++function MinVzEnum(){ return 893;}
++function MaxVzEnum(){ return 894;}
++function MaxAbsVzEnum(){ return 895;}
++function FloatingAreaEnum(){ return 896;}
++function GroundedAreaEnum(){ return 897;}
++function IceMassEnum(){ return 898;}
++function IceVolumeEnum(){ return 899;}
++function IceVolumeAboveFloatationEnum(){ return 900;}
++function TotalFloatingBmbEnum(){ return 901;}
++function TotalGroundedBmbEnum(){ return 902;}
++function TotalSmbEnum(){ return 903;}
++function AbsoluteEnum(){ return 904;}
++function IncrementalEnum(){ return 905;}
++function AugmentedLagrangianREnum(){ return 906;}
++function AugmentedLagrangianRhopEnum(){ return 907;}
++function AugmentedLagrangianRlambdaEnum(){ return 908;}
++function AugmentedLagrangianRholambdaEnum(){ return 909;}
++function AugmentedLagrangianThetaEnum(){ return 910;}
++function NoneEnum(){ return 911;}
++function AggressiveMigrationEnum(){ return 912;}
++function SoftMigrationEnum(){ return 913;}
++function SubelementMigrationEnum(){ return 914;}
++function SubelementMigration2Enum(){ return 915;}
++function ContactEnum(){ return 916;}
++function GroundingOnlyEnum(){ return 917;}
++function MaskGroundediceLevelsetEnum(){ return 918;}
++function GaussSegEnum(){ return 919;}
++function GaussTriaEnum(){ return 920;}
++function GaussTetraEnum(){ return 921;}
++function GaussPentaEnum(){ return 922;}
++function FSSolverEnum(){ return 923;}
++function AdjointEnum(){ return 924;}
++function ColinearEnum(){ return 925;}
++function ControlSteadyEnum(){ return 926;}
++function FsetEnum(){ return 927;}
++function Gradient1Enum(){ return 928;}
++function Gradient2Enum(){ return 929;}
++function Gradient3Enum(){ return 930;}
++function GradientEnum(){ return 931;}
++function GroundinglineMigrationEnum(){ return 932;}
++function GsetEnum(){ return 933;}
++function IndexEnum(){ return 934;}
++function IndexedEnum(){ return 935;}
++function IntersectEnum(){ return 936;}
++function NodalEnum(){ return 937;}
++function OldGradientEnum(){ return 938;}
++function OutputBufferPointerEnum(){ return 939;}
++function OutputBufferSizePointerEnum(){ return 940;}
++function OutputFilePointerEnum(){ return 941;}
++function ToolkitsFileNameEnum(){ return 942;}
++function RootPathEnum(){ return 943;}
++function OutputFileNameEnum(){ return 944;}
++function InputFileNameEnum(){ return 945;}
++function LockFileNameEnum(){ return 946;}
++function RestartFileNameEnum(){ return 947;}
++function ToolkitsOptionsAnalysesEnum(){ return 948;}
++function ToolkitsOptionsStringsEnum(){ return 949;}
++function QmuErrNameEnum(){ return 950;}
++function QmuInNameEnum(){ return 951;}
++function QmuOutNameEnum(){ return 952;}
++function RegularEnum(){ return 953;}
++function ScaledEnum(){ return 954;}
++function SeparateEnum(){ return 955;}
++function SsetEnum(){ return 956;}
++function VerboseEnum(){ return 957;}
++function TriangleInterpEnum(){ return 958;}
++function BilinearInterpEnum(){ return 959;}
++function NearestInterpEnum(){ return 960;}
++function XYEnum(){ return 961;}
++function XYZEnum(){ return 962;}
++function DenseEnum(){ return 963;}
++function MpiDenseEnum(){ return 964;}
++function MpiSparseEnum(){ return 965;}
++function SeqEnum(){ return 966;}
++function MpiEnum(){ return 967;}
++function MumpsEnum(){ return 968;}
++function GslEnum(){ return 969;}
++function OptionEnum(){ return 970;}
++function GenericOptionEnum(){ return 971;}
++function OptionCellEnum(){ return 972;}
++function OptionStructEnum(){ return 973;}
++function CuffeyEnum(){ return 974;}
++function PatersonEnum(){ return 975;}
++function ArrheniusEnum(){ return 976;}
++function LliboutryDuvalEnum(){ return 977;}
++function SpcLevelsetEnum(){ return 978;}
++function ExtrapolationVariableEnum(){ return 979;}
++function IceMaskNodeActivationEnum(){ return 980;}
++function LevelsetfunctionSlopeXEnum(){ return 981;}
++function LevelsetfunctionSlopeYEnum(){ return 982;}
++function LevelsetfunctionPicardEnum(){ return 983;}
++function LevelsetReinitFrequencyEnum(){ return 984;}
++function SealevelriseSolutionEnum(){ return 985;}
++function SealevelriseAnalysisEnum(){ return 986;}
++function SealevelEnum(){ return 987;}
++function SealevelEustaticEnum(){ return 988;}
++function SealevelriseDeltathicknessEnum(){ return 989;}
++function SealevelriseMaxiterEnum(){ return 990;}
++function SealevelriseReltolEnum(){ return 991;}
++function SealevelriseAbstolEnum(){ return 992;}
++function SealevelriseLoveHEnum(){ return 993;}
++function SealevelriseLoveKEnum(){ return 994;}
++function SealevelriseTideLoveHEnum(){ return 995;}
++function SealevelriseTideLoveKEnum(){ return 996;}
++function SealevelriseRigidEnum(){ return 997;}
++function SealevelriseElasticEnum(){ return 998;}
++function SealevelriseRotationEnum(){ return 999;}
++function SealevelriseGElasticEnum(){ return 1000;}
++function SealevelriseDegaccEnum(){ return 1001;}
++function SealevelriseTransitionsEnum(){ return 1002;}
++function SealevelriseRequestedOutputsEnum(){ return 1003;}
++function SealevelriseNumRequestedOutputsEnum(){ return 1004;}
++function MaximumNumberOfDefinitionsEnum(){ return 1005;}
+Index: ../trunk-jpl/src/m/enum/CalvingdevCoeffEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/CalvingdevCoeffEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/CalvingdevCoeffEnum.m	(revision 20461)
+@@ -0,0 +1,11 @@
++function macro=CalvingdevCoeffEnum()
++%CALVINGDEVCOEFFENUM - Enum of CalvingdevCoeff
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=CalvingdevCoeffEnum()
++
++macro=StringToEnum('CalvingdevCoeff');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20460)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20461)
+@@ -252,14 +252,12 @@
+ def CalvingCalvingrateEnum(): return StringToEnum("CalvingCalvingrate")[0]
+ def CalvingMeltingrateEnum(): return StringToEnum("CalvingMeltingrate")[0]
+ def CalvingLevermannEnum(): return StringToEnum("CalvingLevermann")[0]
+-def CalvingPiEnum(): return StringToEnum("CalvingPi")[0]
+ def CalvingDevEnum(): return StringToEnum("CalvingDev")[0]
+ def DefaultCalvingEnum(): return StringToEnum("DefaultCalving")[0]
+ def CalvingRequestedOutputsEnum(): return StringToEnum("CalvingRequestedOutputs")[0]
+ def CalvinglevermannCoeffEnum(): return StringToEnum("CalvinglevermannCoeff")[0]
+ def CalvinglevermannMeltingrateEnum(): return StringToEnum("CalvinglevermannMeltingrate")[0]
+-def CalvingpiCoeffEnum(): return StringToEnum("CalvingpiCoeff")[0]
+-def CalvingpiMeltingrateEnum(): return StringToEnum("CalvingpiMeltingrate")[0]
++def CalvingdevCoeffEnum(): return StringToEnum("CalvingdevCoeff")[0]
+ def CalvingratexEnum(): return StringToEnum("Calvingratex")[0]
+ def CalvingrateyEnum(): return StringToEnum("Calvingratey")[0]
+ def CalvingratexAverageEnum(): return StringToEnum("CalvingratexAverage")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20461-20462.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20461-20462.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20461-20462.diff	(revision 20498)
@@ -0,0 +1,243 @@
+Index: ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20461)
++++ ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20462)
+@@ -48,39 +48,6 @@
+ 				break;
+ 		}
+ 
+-		/* if solving 2d problem on vertically extende mesh, solve on basal layer only*/
+-		if(domaintype!=Domain2DhorizontalEnum){
+-			femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
+-			if(
+-					analysis_type==FreeSurfaceBaseAnalysisEnum || 
+-					analysis_type==MasstransportAnalysisEnum || 
+-					analysis_type==MeltingAnalysisEnum || 
+-					analysis_type==L2ProjectionBaseAnalysisEnum || 
+-					analysis_type==BalancethicknessAnalysisEnum ||
+-					analysis_type==HydrologyDCInefficientAnalysisEnum ||
+-					//analysis_type==DamageEvolutionAnalysisEnum || 
+-					analysis_type==HydrologyDCEfficientAnalysisEnum ||
+-					analysis_type==LevelsetAnalysisEnum ||
+-					analysis_type==ExtrapolationAnalysisEnum
+-					){ solvein2d=true;}
+-
+-			if(analysis_type==StressbalanceAnalysisEnum){
+-				bool isSIA,isSSA,isL1L2;
+-				femmodel->parameters->FindParam(&isSIA,FlowequationIsSIAEnum);
+-				femmodel->parameters->FindParam(&isSSA,FlowequationIsSSAEnum);
+-				femmodel->parameters->FindParam(&isL1L2,FlowequationIsL1L2Enum);
+-				if(isSIA || isSSA || isL1L2)
+-					solvein2d=true;
+-			}
+-
+-			if(solvein2d){
+-				IssmDouble *mask_isonbase = xNew<IssmDouble>(numnodes);
+-				element->GetInputListOnNodes(&mask_isonbase[0],MeshVertexonbaseEnum);
+-				for(in=0;in<numnodes;in++)	 mask[in]*=mask_isonbase[in];
+-				xDelete<IssmDouble>(mask_isonbase);
+-			}
+-		}
+-
+ 		for(in=0;in<numnodes;in++){
+ 			Node* node=element->GetNode(in);
+ 			if(mask[in]==1.){
+Index: ../trunk-jpl/src/c/classes/DofIndexing.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 20461)
++++ ../trunk-jpl/src/c/classes/DofIndexing.cpp	(revision 20462)
+@@ -27,6 +27,7 @@
+ 	this->ssize    = UNDEF;
+ 	this->clone    = false;
+ 	this->active   = true;
++	this->freeze   = false;
+ 	this->f_set    = NULL;
+ 	this->s_set    = NULL;
+ 	this->svalues  = NULL;
+@@ -50,6 +51,7 @@
+ 	this->ssize  = in->ssize;
+ 	this->clone  = in->clone;
+ 	this->active = in->active;
++	this->freeze = in->freeze;
+ 
+ 	if(this->gsize>0){
+ 		this->f_set=xNew<bool>(this->gsize);
+@@ -111,6 +113,7 @@
+ 	this->ssize  = in.ssize;
+ 	this->clone  = in.clone;
+ 	this->active = in.active;
++	this->freeze = in.freeze;
+ 
+ 	if(this->gsize>0){
+ 		this->f_set=xNew<bool>(this->gsize);
+@@ -218,6 +221,7 @@
+ 	_printf_("   ssize:  " << ssize << "\n");
+ 	_printf_("   clone:  " << clone << "\n");
+ 	_printf_("   active: " << active << "\n");
++	_printf_("   freeze: " << freeze << "\n");
+ }
+ /*}}}*/
+ void DofIndexing::DeepEcho(void){/*{{{*/
+@@ -230,6 +234,7 @@
+ 	_printf_("   ssize:  " << ssize << "\n");
+ 	_printf_("   clone:  " << clone << "\n");
+ 	_printf_("   active: " << active << "\n");
++	_printf_("   freeze: " << freeze << "\n");
+ 
+ 	_printf_("   set membership: f,s sets \n");
+ 	for(i=0;i<gsize;i++){
+@@ -283,6 +288,7 @@
+ }
+ /*}}}*/
+ void DofIndexing::Activate(void){/*{{{*/
++
+ 	this->active = true;
+ 
+ 	/*Constrain to 0. at this point*/
+@@ -301,6 +307,7 @@
+ 	MARSHALLING(ssize);
+ 	MARSHALLING(clone);
+ 	MARSHALLING(active);
++	MARSHALLING(freeze);
+ 	MARSHALLING_DYNAMIC(f_set,bool,gsize);
+ 	MARSHALLING_DYNAMIC(s_set,bool,gsize);
+ 	MARSHALLING_DYNAMIC(svalues,IssmDouble,gsize);
+Index: ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 20461)
++++ ../trunk-jpl/src/c/classes/Loads/Riftfront.cpp	(revision 20462)
+@@ -252,7 +252,7 @@
+ /*}}}*/
+ void  Riftfront::InputUpdateFromVector(IssmDouble* vector, int name, int type){/*{{{*/
+ 
+-	_error_("not implemented yet");
++	/*Nothing to update*/
+ 
+ }
+ /*}}}*/
+Index: ../trunk-jpl/src/c/classes/Node.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.h	(revision 20461)
++++ ../trunk-jpl/src/c/classes/Node.h	(revision 20462)
+@@ -72,6 +72,7 @@
+ 		bool  IsActive(void);
+ 		void  Activate(void);
+ 		void  Deactivate(void);
++		void  HardDeactivate(void);
+ 		void  ReindexingDone(void);
+ 		bool  RequiresDofReindexing(void);
+ 		int   IsFloating();
+Index: ../trunk-jpl/src/c/classes/DofIndexing.h
+===================================================================
+--- ../trunk-jpl/src/c/classes/DofIndexing.h	(revision 20461)
++++ ../trunk-jpl/src/c/classes/DofIndexing.h	(revision 20462)
+@@ -17,8 +17,9 @@
+ 		int ssize;   //number of constrained dofs
+ 
+ 		/*partitioning: */
+-		bool clone;   //this node is replicated from another one
+-		bool active;  //Is this node active or inactive (all dofs are constrained)
++		bool clone;  //this node is replicated from another one
++		bool active; //Is this node active or inactive (all dofs are constrained)
++		bool freeze; //this is required for 2d solutions, we never activate nodes that are not on base
+ 
+ 		/*boundary conditions sets: */
+ 		bool       *f_set;     //is dof on f-set (on which we solve)
+Index: ../trunk-jpl/src/c/classes/Node.cpp
+===================================================================
+--- ../trunk-jpl/src/c/classes/Node.cpp	(revision 20461)
++++ ../trunk-jpl/src/c/classes/Node.cpp	(revision 20462)
+@@ -63,14 +63,14 @@
+ 			_assert_(iomodel->Data(MeshVertexonbaseEnum)); 
+ 			_assert_(iomodel->Data(FlowequationVertexEquationEnum));
+ 			if(in_approximation==SSAApproximationEnum && !reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[io_index])){
+-				this->Deactivate();
++				this->HardDeactivate();
+ 			}
+ 			if(in_approximation==L1L2ApproximationEnum && !reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[io_index])){
+-				this->Deactivate();
++				this->HardDeactivate();
+ 			}
+ 			if(in_approximation==SSAHOApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){
+ 				if(!reCast<int>(iomodel->Data(MeshVertexonbaseEnum)[io_index])){
+-					this->Deactivate();
++					this->HardDeactivate();
+ 				}
+ 			}
+ 			if(in_approximation==SSAFSApproximationEnum && reCast<int>(iomodel->Data(FlowequationBorderSSAEnum)[io_index])){
+@@ -81,7 +81,7 @@
+ 		}
+ 		/*spc all nodes on SIA*/
+ 		if(in_approximation==SIAApproximationEnum){
+-			this->Deactivate();
++			this->HardDeactivate();
+ 		}
+ 	}
+ 
+@@ -100,7 +100,7 @@
+ 			/*On a 3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
+ 			_assert_(iomodel->Data(MeshVertexonbaseEnum));
+ 			if(!(reCast<bool>(iomodel->Data(MeshVertexonbaseEnum)[io_index]))){
+-				this->Deactivate();
++				this->HardDeactivate();
+ 			}
+ 		}
+ 	}
+@@ -111,7 +111,7 @@
+ 			/*On a 3d mesh, we may have collapsed elements, hence dead nodes. Freeze them out: */
+ 			_assert_(iomodel->Data(MeshVertexonsurfaceEnum));
+ 			if(!(reCast<bool>(iomodel->Data(MeshVertexonsurfaceEnum)[io_index]))){
+-				this->Deactivate();
++				this->HardDeactivate();
+ 			}
+ 		}
+ 	}
+@@ -462,6 +462,7 @@
+ 	_assert_(dof<this->indexing.gsize);
+ 
+ 	if(this->indexing.f_set[dof] == 1){
++		//if(this->indexing.freeze) _error_("Cannot change dof of frozen node");
+ 		this->indexingupdate = true;
+ 		this->indexing.f_set[dof]=0; //n splits into f (for which we solve) and s (single point constraints)
+ 		this->indexing.s_set[dof]=1;
+@@ -475,6 +476,7 @@
+ 	_assert_(dof<this->indexing.gsize);
+ 
+ 	if(this->indexing.f_set[dof] == 0){
++		if(this->indexing.freeze) _error_("Cannot change dof of frozen node");
+ 		this->indexingupdate = true;
+ 		this->indexing.f_set[dof]=1; 
+ 		this->indexing.s_set[dof]=0;
+@@ -484,21 +486,30 @@
+ void Node::FreezeDof(int dof){/*{{{*/
+ 
+ 	DofInSSet(dof); //with 0 displacement for this dof.
++	//FIXME: for now we don't want this element to change so we use freeze
++	this->indexing.freeze =true;
+ 
+ }
+ /*}}}*/
+ void Node::Deactivate(void){/*{{{*/
+ 
+-	if(IsActive()){
++	if(IsActive() && !this->indexing.freeze){
+ 		this->indexingupdate = true;
+ 		indexing.Deactivate();
+ 	}
+ 
+ }
+ /*}}}*/
++void Node::HardDeactivate(void){/*{{{*/
++
++	this->indexing.Deactivate();
++	this->indexing.freeze =true;
++
++}
++/*}}}*/
+ void Node::Activate(void){/*{{{*/
+ 
+-	if(!IsActive()){
++	if(!IsActive() && !this->indexing.freeze){
+ 		this->indexingupdate = true;
+ 		indexing.Activate();
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20462-20463.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20462-20463.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20462-20463.diff	(revision 20498)
@@ -0,0 +1,81 @@
+Index: ../trunk-jpl/src/m/plot/manualcb.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/manualcb.m	(revision 20462)
++++ ../trunk-jpl/src/m/plot/manualcb.m	(revision 20463)
+@@ -49,8 +49,8 @@
+ 	height = position(4);
+ end
+ axes('Units','normalized','Position',[xstart ystart width height],'XTickLabel','','YTickLabel','','Visible','on');
+-xlim([-0.5 1.5]);
+-ylim([-0.5 1.5]);
++xlim([0 1]);
++ylim([0 1]);
+ 
+ %Prepare ticks
+ if ~exist(options,'log'),
+@@ -59,35 +59,43 @@
+ 	if (any(ztick>zmax) | any(ztick<zmin)),
+ 		error('one or more specified tick values falls outside of [zmin,zmax]');
+ 	end
+-	ytick  = (ztick-zmin)/(zmax-zmin)*2-0.5;
++	ytick  = (ztick-zmin)/(zmax-zmin);
+ else
+ 	ztick = getfieldvalue(options,'tick',round(logspace(log(zmin)/log(10),log(zmax)/log(10),8)));
+-	ytick = linspace(-0.5,1.5,numel(ztick));
++	ytick = linspace(0,1,numel(ztick));
+ end
+ 
+ %Display colorbar
+ hold on
++numcolors=size(cmap,1);
+ if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'),
+-	image_rgb = ind2rgb(repmat((1:size(cmap,1))',1,2),cmap);
++	image_rgb = ind2rgb(repmat((1:numcolors)',1,2),cmap);
+ else
+-	image_rgb = ind2rgb(repmat((1:size(cmap,1))',1,2)',cmap);
++	image_rgb = ind2rgb(repmat((1:numcolors)',1,2)',cmap);
+ end
+-imagesc([-0.5 1.5],[-0.5 1.5],image_rgb);
+-patch([-.5,-.5,1.5,1.5],[-0.5,1.5,1.5,-0.5],'k','FaceColor','none','Clipping','off')
+-ytick
++if 1,
++	%disappears somtimes
++	imagesc([0 1],[0 1],repmat(image_rgb,[1 10 1]));
++else
++	%Creates triangles when exported as pdf
++	for i=1:numcolors,
++		patch([0,0,1,1],[(i-1)/numcolors,i/numcolors,i/numcolors,(i-1)/numcolors],'none','FaceColor',cmap(i,:),'Clipping','off','EdgeColor','none')
++	end
++end
++patch([0,0,1,1],[0,1,1,0],'k','FaceColor','none','Clipping','off')
+ 
+ %Add ticks
+ if strcmpi(getfieldvalue(options,'orientation','vertical'),'vertical'),
+ 	%Use FOR LOOP otherwise numbers are not correcly centered
+ 	if getfieldvalue(options,'inverttickposition',0)==1,
+-		for i=1:length(ytick), text(-0.8,ytick(i),num2str(ztick(i)),'HorizontalAlignment','right','VerticalAlignment','middle','FontSize',fontsize); end
++		for i=1:length(ytick), text(-0.5,ytick(i),num2str(ztick(i)),'HorizontalAlignment','right','VerticalAlignment','middle','FontSize',fontsize); end
+ 	else
+-		for i=1:length(ytick), text(1.8,ytick(i),num2str(ztick(i)),'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',fontsize); end
++		for i=1:length(ytick), text(1.5,ytick(i),num2str(ztick(i)),'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',fontsize); end
+ 	end
+ 	if smallbars,
+ 		for i=1:numel(ztick)
+-			patch([1.3 1.5],  [ytick(i) ytick(i)],'k')
+-			patch([-0.5 -0.3],[ytick(i) ytick(i)],'k')
++			patch([0.8 1.0],[ytick(i) ytick(i)],'k')
++			patch([0.0 0.2],[ytick(i) ytick(i)],'k')
+ 		end
+ 	end
+ else
+@@ -95,8 +103,8 @@
+ 	for i=1:length(ytick), text(ytick(i),-0.5,num2str(ztick(i)),'HorizontalAlignment','center','VerticalAlignment','top','FontSize',fontsize); end
+ 	if smallbars,
+ 		for i=1:numel(ztick)
+-			patch([ytick(i) ytick(i)],[1.3 1.5],[ytick(i) ytick(i)],'k')
+-			patch([ytick(i) ytick(i)],[-0.5 -0.3],[ytick(i) ytick(i)],'k')
++			patch([ytick(i) ytick(i)],[0.8 1.0],[ytick(i) ytick(i)],'k')
++			patch([ytick(i) ytick(i)],[0.0 0.2],[ytick(i) ytick(i)],'k')
+ 		end
+ 	end
+ end
Index: /issm/oecreview/Archive/19101-20495/ISSM-20463-20464.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20463-20464.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20463-20464.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20463)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20464)
+@@ -4,10 +4,11 @@
+ #-------------------------------#
+ 
+ #MATLAB path
+-MATLAB_PATH="/Applications/MATLAB_R2015b.app/"
++MATLAB_PATH="/Applications/MATLAB_R2015a.app/"
+ 
+ #ISSM CONFIGURATION 
+ ISSM_CONFIG='--prefix=$ISSM_DIR \
++	--disable-static \
+ 	--enable-standalone-executables \
+ 	--enable-standalone-libraries \
+ 	--with-matlab-dir=$MATLAB_PATH \
+@@ -19,7 +20,7 @@
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+-	--with-fortran-lib="/usr/local/gfortran/lib/libgfortran.a" \
++	--with-fortran-lib="/usr/local/gfortran/lib/libgfortran.a /usr/local/gfortran/lib/libquadmath.a /usr/local/gfortran/lib/gcc/x86_64-apple-darwin14/5.2.0/libgcc.a" \
+ 	--with-numthreads=4 \
+ 	--enable-debugging'
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20464-20465.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20464-20465.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20464-20465.diff	(revision 20498)
@@ -0,0 +1,146 @@
+Index: ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20464)
++++ ../trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp	(revision 20465)
+@@ -11,7 +11,7 @@
+ #include "../solutionsequences/solutionsequences.h"
+ 
+ void LevelsetAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
+-	IoModelToConstraintsx(constraints,iomodel,SpcLevelsetEnum,LevelsetAnalysisEnum,P1Enum);
++	IoModelToConstraintsx(constraints,iomodel,SpclevelsetEnum,LevelsetAnalysisEnum,P1Enum);
+ }
+ /*}}}*/
+ void LevelsetAnalysis::CreateLoads(Loads* loads, IoModel* iomodel){/*{{{*/
+Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20464)
++++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 20465)
+@@ -1040,7 +1040,7 @@
+ 	LliboutryDuvalEnum,
+ 	/*}}}*/
+ 	/*Levelset related enums (will be moved to appropriate place when finished){{{*/
+-	SpcLevelsetEnum,
++	SpclevelsetEnum,
+ 	ExtrapolationVariableEnum,
+ 	IceMaskNodeActivationEnum,
+ 	LevelsetfunctionSlopeXEnum,
+Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20464)
++++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 20465)
+@@ -994,7 +994,7 @@
+ 		case PatersonEnum : return "Paterson";
+ 		case ArrheniusEnum : return "Arrhenius";
+ 		case LliboutryDuvalEnum : return "LliboutryDuval";
+-		case SpcLevelsetEnum : return "SpcLevelset";
++		case SpclevelsetEnum : return "Spclevelset";
+ 		case ExtrapolationVariableEnum : return "ExtrapolationVariable";
+ 		case IceMaskNodeActivationEnum : return "IceMaskNodeActivation";
+ 		case LevelsetfunctionSlopeXEnum : return "LevelsetfunctionSlopeX";
+Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20464)
++++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 20465)
+@@ -1018,7 +1018,7 @@
+ 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
+ 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
+ 	      else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
+-	      else if (strcmp(name,"SpcLevelset")==0) return SpcLevelsetEnum;
++	      else if (strcmp(name,"Spclevelset")==0) return SpclevelsetEnum;
+ 	      else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
+ 	      else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
+ 	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+Index: ../trunk-jpl/src/py3/classes/calvinglevermann.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 20464)
++++ ../trunk-jpl/src/py3/classes/calvinglevermann.py	(revision 20465)
+@@ -62,7 +62,7 @@
+ 		yts=365.*24.*3600.
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingLevermannEnum(),'format','Integer');
+ 		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		WriteData(fid,'enum',SpclevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'enum',CalvinglevermannCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/py3/classes/calving.py
+===================================================================
+--- ../trunk-jpl/src/py3/classes/calving.py	(revision 20464)
++++ ../trunk-jpl/src/py3/classes/calving.py	(revision 20465)
+@@ -65,7 +65,7 @@
+ 
+ 		WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
+ 		WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
+-		WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++		WriteData(fid,'enum',SpclevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 		WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 		WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
+ 	# }}}
+Index: ../trunk-jpl/src/py3/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/py3/enum/EnumDefinitions.py	(revision 20464)
++++ ../trunk-jpl/src/py3/enum/EnumDefinitions.py	(revision 20465)
+@@ -953,7 +953,7 @@
+ def ArrheniusEnum(): return StringToEnum("Arrhenius")[0]
+ def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
+ def TransientIslevelsetEnum(): return StringToEnum("TransientIslevelset")[0]
+-def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
++def SpclevelsetEnum(): return StringToEnum("Spclevelset")[0]
+ def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
+ def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
+ def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
+Index: ../trunk-jpl/src/m/classes/levelset.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.js	(revision 20464)
++++ ../trunk-jpl/src/m/classes/levelset.js	(revision 20465)
+@@ -32,7 +32,7 @@
+ 	} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+ 			WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
+-			WriteData(fid,'enum',SpcLevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
++			WriteData(fid,'enum',SpclevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+ 			WriteData(fid,'object',self,'class','levelset','fieldname','reinit_frequency','format','Integer');
+ 
+ 		}//}}}
+Index: ../trunk-jpl/src/m/enum/SpclevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SpclevelsetEnum.m	(revision 0)
++++ ../trunk-jpl/src/m/enum/SpclevelsetEnum.m	(revision 20465)
+@@ -0,0 +1,11 @@
++function macro=SpclevelsetEnum()
++%SPCLEVELSETENUM - Enum of Spclevelset
++%
++%   WARNING: DO NOT MODIFY THIS FILE
++%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
++%            Please read src/c/shared/Enum/README for more information
++%
++%   Usage:
++%      macro=SpclevelsetEnum()
++
++macro=StringToEnum('Spclevelset');
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.js
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20464)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.js	(revision 20465)
+@@ -979,7 +979,7 @@
+ function PatersonEnum(){ return 975;}
+ function ArrheniusEnum(){ return 976;}
+ function LliboutryDuvalEnum(){ return 977;}
+-function SpcLevelsetEnum(){ return 978;}
++function SpclevelsetEnum(){ return 978;}
+ function ExtrapolationVariableEnum(){ return 979;}
+ function IceMaskNodeActivationEnum(){ return 980;}
+ function LevelsetfunctionSlopeXEnum(){ return 981;}
+Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
+===================================================================
+--- ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20464)
++++ ../trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 20465)
+@@ -986,7 +986,7 @@
+ def PatersonEnum(): return StringToEnum("Paterson")[0]
+ def ArrheniusEnum(): return StringToEnum("Arrhenius")[0]
+ def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
+-def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
++def SpclevelsetEnum(): return StringToEnum("Spclevelset")[0]
+ def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
+ def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
+ def LevelsetfunctionSlopeXEnum(): return StringToEnum("LevelsetfunctionSlopeX")[0]
Index: /issm/oecreview/Archive/19101-20495/ISSM-20465-20466.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20465-20466.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20465-20466.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m
+===================================================================
+--- ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m	(revision 20465)
++++ ../trunk-jpl/src/m/enum/SpcLevelsetEnum.m	(revision 20466)
+@@ -1,11 +0,0 @@
+-function macro=SpcLevelsetEnum()
+-%SPCLEVELSETENUM - Enum of SpcLevelset
+-%
+-%   WARNING: DO NOT MODIFY THIS FILE
+-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
+-%            Please read src/c/shared/Enum/README for more information
+-%
+-%   Usage:
+-%      macro=SpcLevelsetEnum()
+-
+-macro=StringToEnum('SpcLevelset');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20466-20467.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20466-20467.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20466-20467.diff	(revision 20498)
@@ -0,0 +1,62 @@
+Index: ../trunk-jpl/src/m/classes/levelset.m
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.m	(revision 20466)
++++ ../trunk-jpl/src/m/classes/levelset.m	(revision 20467)
+@@ -7,7 +7,7 @@
+ 	properties (SetAccess=public) 
+ 		stabilization		= 0;
+ 		spclevelset			= NaN;
+-		reinit_frequency	= NaN;
++		reinit_frequency	= 5;
+ 	end
+ 	methods
+ 		function self = levelset(varargin) % {{{
+@@ -36,7 +36,7 @@
+ 
+ 			%stabilization = 2 by default
+ 			self.stabilization = 2;
+-			self.reinit_frequency = NaN;
++			self.reinit_frequency = 5;
+ 
+ 		end % }}}
+ 		function md = checkconsistency(self,md,solution,analyses) % {{{
+@@ -50,7 +50,7 @@
+ 			disp(sprintf('   Level-set parameters:'));
+ 			fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
+ 			fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
+-			fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized (NaN: no re-initialization).');
++			fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized');
+ 		end % }}}
+ 		function marshall(self,md,fid) % {{{
+ 			WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
+Index: ../trunk-jpl/src/m/classes/levelset.py
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.py	(revision 20466)
++++ ../trunk-jpl/src/m/classes/levelset.py	(revision 20467)
+@@ -17,7 +17,7 @@
+ 
+ 		self.stabilization = 0
+ 		self.spclevelset   = float('NaN')
+-		self.reinit_frequency = float('NaN')
++		self.reinit_frequency = 0
+ 
+ 		#set defaults
+ 		self.setdefaultparameters()
+@@ -27,7 +27,7 @@
+ 		string='   Level-set parameters:'
+ 		string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
+ 		string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
+-		string="%s\n%s"%(string,fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized (NaN: no re-initialization).'))
++		string="%s\n%s"%(string,fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized'))
+ 
+ 		return string
+ 		#}}}
+@@ -39,7 +39,7 @@
+ 
+ 		#stabilization = 2 by default
+ 		self.stabilization = 2
+-		self.reinit_frequency = float('NaN')
++		self.reinit_frequency = 5
+ 
+ 		return self
+ 	#}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20467-20468.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20467-20468.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20467-20468.diff	(revision 20498)
@@ -0,0 +1,104 @@
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.par
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 20467)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.par	(revision 20468)
+@@ -76,7 +76,7 @@
+ %Masstransport;
+ md.calving.calvingrate = 0.*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate = 0.*ones(md.mesh.numberofvertices,1);
+-md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
++md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
+ md.masstransport.stabilization = 1.;
+ 
+ %Numerical parameters
+Index: ../trunk-jpl/test/Par/ValleyGlacierShelf.py
+===================================================================
+--- ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 20467)
++++ ../trunk-jpl/test/Par/ValleyGlacierShelf.py	(revision 20468)
+@@ -83,7 +83,7 @@
+ #Masstransport
+ md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
+-md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
++md.levelset.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ md.masstransport.stabilization=1.
+ 
+ #Numerical parameters
+Index: ../trunk-jpl/test/Par/SquareSheetConstrained.par
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 20467)
++++ ../trunk-jpl/test/Par/SquareSheetConstrained.par	(revision 20468)
+@@ -31,7 +31,7 @@
+ 
+ %Calving
+ md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
+-md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
++md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ %Friction
+ md.friction.coefficient=20.*ones(md.mesh.numberofvertices,1);
+Index: ../trunk-jpl/test/Par/SquareSheetConstrained.py
+===================================================================
+--- ../trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 20467)
++++ ../trunk-jpl/test/Par/SquareSheetConstrained.py	(revision 20468)
+@@ -41,7 +41,7 @@
+ 
+ #Calving
+ md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
+-md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
++md.levelset.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ #Friction
+ md.friction.coefficient=20.*numpy.ones((md.mesh.numberofvertices,1))
+Index: ../trunk-jpl/test/NightlyRun/test806.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.py	(revision 20467)
++++ ../trunk-jpl/test/NightlyRun/test806.py	(revision 20468)
+@@ -38,7 +38,7 @@
+ md.calving=calvinglevermann()
+ md.calving.coeff=4.89e13*numpy.ones((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=numpy.zeros((md.mesh.numberofvertices,1))
+-md.calving.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
++md.levelset.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ md.transient.requested_outputs=['default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate']
+ 
+Index: ../trunk-jpl/test/NightlyRun/test806.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test806.m	(revision 20467)
++++ ../trunk-jpl/test/NightlyRun/test806.m	(revision 20468)
+@@ -27,7 +27,7 @@
+ md.calving=calvinglevermann();
+ md.calving.coeff=4.89e13*ones(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
+-md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
++md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ md.transient.requested_outputs={'default','StrainRateparallel','StrainRateperpendicular','Calvingratex','Calvingratey','CalvingCalvingrate'};
+ 
+Index: ../trunk-jpl/test/NightlyRun/test807.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.m	(revision 20467)
++++ ../trunk-jpl/test/NightlyRun/test807.m	(revision 20468)
+@@ -26,7 +26,7 @@
+ 
+ md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
+ md.calving.meltingrate=10000*ones(md.mesh.numberofvertices,1);
+-md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
++md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
+ 
+ md=solve(md,TransientSolutionEnum());
+ 
+Index: ../trunk-jpl/test/NightlyRun/test807.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test807.py	(revision 20467)
++++ ../trunk-jpl/test/NightlyRun/test807.py	(revision 20468)
+@@ -37,7 +37,7 @@
+ 
+ md.calving.calvingrate=numpy.zeros((md.mesh.numberofvertices,1))
+ md.calving.meltingrate=10000*numpy.ones((md.mesh.numberofvertices,1))
+-md.calving.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
++md.levelset.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
+ 
+ md=solve(md,TransientSolutionEnum())
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20468-20469.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20468-20469.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20468-20469.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20468)
++++ ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20469)
+@@ -26,7 +26,9 @@
+ 		IssmDouble *mask     = xNew<IssmDouble>(numnodes);
+ 		// include switch for elements with multiple different sets of nodes
+ 		switch(element->GetElementType()){
+-			case MINIEnum:case TaylorHoodEnum:case LATaylorHoodEnum:case LACrouzeixRaviartEnum:case MINIcondensedEnum:{
++			case MINIEnum:case MINIcondensedEnum:
++			case TaylorHoodEnum:case XTaylorHoodEnum:case LATaylorHoodEnum:
++			case CrouzeixRaviartEnum:case LACrouzeixRaviartEnum:{
+ 				Input* input=element->GetInput(IceMaskNodeActivationEnum);
+ 				if(!input) _error_("Input " << EnumToStringx(IceMaskNodeActivationEnum) << " not found in element");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20469-20470.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20469-20470.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20469-20470.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20469)
++++ ../trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp	(revision 20470)
+@@ -28,7 +28,7 @@
+ 		switch(element->GetElementType()){
+ 			case MINIEnum:case MINIcondensedEnum:
+ 			case TaylorHoodEnum:case XTaylorHoodEnum:case LATaylorHoodEnum:
+-			case CrouzeixRaviartEnum:case LACrouzeixRaviartEnum:{
++			case CrouzeixRaviartEnum:case LACrouzeixRaviartEnum:case OneLayerP4zEnum:{
+ 				Input* input=element->GetInput(IceMaskNodeActivationEnum);
+ 				if(!input) _error_("Input " << EnumToStringx(IceMaskNodeActivationEnum) << " not found in element");
+ 
Index: /issm/oecreview/Archive/19101-20495/ISSM-20470-20471.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20470-20471.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20470-20471.diff	(revision 20498)
@@ -0,0 +1,296 @@
+Index: ../trunk-jpl/src/m/plot/plot_quiver.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 20470)
++++ ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 20471)
+@@ -91,6 +91,9 @@
+ 		var magnitude;
+ 		var color = edgecolor;
+ 		for(var i = 0; i < x.length; i++){
++			//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
++			if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) continue;
++			//Scale vertices
+ 			xyz1 = vec3.fromValues(x[i], y[i], z[i]);
+ 			magnitude = vec3.length(xyz1) + md.geometry.surface[i] * surfacescale;
+ 			vec3.normalize(direction, xyz1);
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20470)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20471)
+@@ -10,7 +10,7 @@
+ 	var vertices = [];
+ 	var indices = [];
+ 	var texcoords = [];
+-	var rgbcolor = [];
++	var nanindices = {};
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+@@ -22,7 +22,7 @@
+ 	var x = meshresults[0]; 
+ 	var y = meshresults[1]; 
+ 	var z = meshresults[2]; 
+-	var elements = meshresults[3]; 
++	var elements = meshresults[3];
+ 	var is2d = meshresults[4]; 
+ 	var isplanet = meshresults[5];
+ 	
+@@ -106,8 +106,15 @@
+ 				var direction = vec3.create();
+ 				var vertex = vec3.create();
+ 				var magnitude;
+-	
++
+ 				for(var i = 0; i < x.length; i++){
++					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
++					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
++						nanindices[i] = i;
++						vertices.push.apply(vertices, vertex);
++						continue;
++					}
++					//Scale vertices
+ 					xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 					vec3.normalize(direction, xyz);
+@@ -118,9 +125,13 @@
+ 				}
+ 
+ 				//linearize the elements array: 
+-				indices = indices.concat.apply(indices, elements); 
++				var element;
++				for(var i = 0; i < elements.length; i++){
++					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
++					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
++					indices = indices.concat(element);
++				}
+ 				indices.itemSize = 1;
+-				for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+ 
+ 			}
+ 			//Initalize buffers
+@@ -154,6 +165,13 @@
+ 				var timestamps = data[data.length-1];
+ 
+ 				for(var i = 0; i < x.length; i++){
++					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
++					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
++						nanindices[i] = i;
++						vertices.push.apply(vertices, vertex);
++						continue;
++					}
++					//Scale vertices
+ 					xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 					vec3.normalize(direction, xyz);
+@@ -189,10 +207,14 @@
+ 					}
+ 				}
+ 				
+-				//linearize the elements array: 
+-				indices = indices.concat.apply(indices, elements); 
++				//linearize the elements array:
++				var element;
++				for(var i = 0; i < elements.length; i++){
++					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
++					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
++					indices = indices.concat(element);
++				}
+ 				indices.itemSize = 1;
+-				for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+ 				
+ 				//Initialize movie loop
+ 				node["movieInterval"] = 1000 / options.getfieldvalue('moviefps',5);
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20470)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20471)
+@@ -11,6 +11,7 @@
+ 	var vertices = [];
+ 	var indices = [];
+ 	var texcoords = [];
++	var nanindices = {};
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+@@ -108,6 +109,14 @@
+ 
+ 	//generate mesh:
+ 	for(var i = 0; i < x.length; i++){
++		//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
++		if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
++			nanindices[i] = i;
++			vertices.push.apply(vertices, vertex);
++			continue;
++		}
++		//Scale vertices
++		//Scale vertices
+ 		xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 		magnitude = vec3.length(xyz);
+ 		vec3.normalize(direction, xyz);
+@@ -117,10 +126,14 @@
+ 		texcoords.push.apply(texcoords, [(x[i] - modelxlim[0]) / xrange, (y[i] - modelylim[0]) / yrange]);
+ 	}
+ 
+-	//linearize the elements array: 
+-	indices = indices.concat.apply(indices, elements); 
++	//linearize the elements array:
++	var element;
++	for(var i = 0; i < elements.length; i++){
++		element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
++		if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
++		indices = indices.concat(element);
++	}
+ 	indices.itemSize = 1;
+-	for(var i=0;i<indices.length;i++)indices[i]--; //matlab indices from 1, so decrement.
+ 	
+ 	/*Initalize buffers: */
+ 	node["arrays"] = [vertices, texcoords, indices];
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20470)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20471)
+@@ -8,7 +8,7 @@
+ 	var vertices = [];
+ 	var indices = [];
+ 	var colors = [];
+-	var rgbcolor = [];
++	var nanindices = {};
+ 	var xmin,xmax;
+ 	var ymin,ymax;
+ 	var zmin,zmax;
+@@ -84,8 +84,76 @@
+ 		var direction = vec3.create();
+ 		var vertex = vec3.create();
+ 		var magnitude;
+-		var color = [0.0, 0.0, 0.0, 1.0];
++		var color = [0.0, 0.0, 0.0, 1.0];	
++						x[0] = NaN;
++		x[1] = NaN;
++		x[2] = NaN;
++		x[3] = NaN;
++		x[4] = NaN;
++		x[5] = NaN;
++		x[6] = NaN;
++		x[7] = NaN;
++		x[8] = NaN;
++		x[9] = NaN;
++		x[10] = NaN;
++		x[11] = NaN;
++		x[12] = NaN;
++		x[13] = NaN;
++		x[14] = NaN;
++		x[15] = NaN;
++		x[16] = NaN;
++		x[17] = NaN;
++		x[18] = NaN;
++		x[19] = NaN;
++		x[20] = NaN;
++		x[21] = NaN;
++		x[22] = NaN;
++		x[23] = NaN;
++		x[24] = NaN;
++		x[25] = NaN;
++		x[26] = NaN;
++		x[27] = NaN;
++		x[28] = NaN;
++		x[29] = NaN;
++		x[30] = NaN;
++		x[31] = NaN;
++		x[32] = NaN;
++		x[33] = NaN;
++		x[34] = NaN;
++		x[35] = NaN;
++		x[36] = NaN;
++		x[37] = NaN;
++		x[38] = NaN;
++		x[39] = NaN;
++		x[310] = NaN;
++		x[311] = NaN;
++		x[312] = NaN;
++		x[313] = NaN;
++		x[314] = NaN;
++		x[315] = NaN;
++		x[316] = NaN;
++		x[317] = NaN;
++		x[318] = NaN;
++		x[319] = NaN;
++		x[320] = NaN;
++		x[321] = NaN;
++		x[322] = NaN;
++		x[323] = NaN;
++		x[324] = NaN;
++		x[325] = NaN;
++		x[326] = NaN;
++		x[327] = NaN;
++		x[328] = NaN;
++		x[329] = NaN;	
+ 		for(var i = 0; i < x.length; i++){
++			//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
++			if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
++				nanindices[i] = i;
++				vertices.push.apply(vertices, vertex);
++				continue;
++			}
++			//Scale vertices
++			//Scale vertices
+ 			xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 			magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 			vec3.normalize(direction, xyz);
+@@ -96,9 +164,11 @@
+ 		}
+ 		
+ 		//linearize the elements array: 
++		var element;
+ 		for(var i = 0; i < elements.length; i++){
+-			//convert tris to line edges; generates more edges than necessary, should optimize using node connectivity matlab indices from 1, so decrement indices.
+-			indices.push.apply(indices, [elements[i][0] - 1, elements[i][1] - 1, elements[i][1] - 1, elements[i][2] - 1, elements[i][2] - 1, elements[i][0] - 1]);
++			element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
++			if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
++			indices = indices.concat([element[0], element[1], element[1], element[2], element[2], element[0]]);
+ 		}
+ 		indices.itemSize = 1;
+ 	}
+Index: ../trunk-jpl/src/m/plot/processmesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/processmesh.js	(revision 20470)
++++ ../trunk-jpl/src/m/plot/processmesh.js	(revision 20471)
+@@ -24,18 +24,18 @@
+ 	}
+ 
+ 	if (options.getfieldvalue('coord','xy') !== 'latlon'){
+-		x=md.mesh.x;
+-		if ('x2d' in md.mesh) x2d=md.mesh.x2d;
+-		y=md.mesh.y;
+-		if ('y2d' in md.mesh) y2d=md.mesh.y2d;
++		x=md.mesh.x.slice();
++		if ('x2d' in md.mesh) x2d=md.mesh.x2d.slice();
++		y=md.mesh.y.slice();
++		if ('y2d' in md.mesh) y2d=md.mesh.y2d.slice();
+ 	}
+ 	else{
+-		x=md.mesh.long;
+-		y=md.mesh.lat;
++		x=md.mesh.long.slice();
++		y=md.mesh.lat.slice();
+ 	}
+ 
+ 	if ('z' in md.mesh){
+-		z=md.mesh.z;
++		z=md.mesh.z.slice();
+ 	}
+ 	else{
+ 		z=NewArrayFill(x.length,0);
+@@ -44,10 +44,11 @@
+ 	if (typeof z === 'string'){
+ 		z=md[z];
+ 	}
++	
++	//TODO: Make deep copy of elements array to prevent unwanted modification of model (slice creates deep copies for primitive types, shallow copies for obejcts)
++	if ('elements2d' in md.mesh) elements2d=md.mesh.elements2d.slice();
++	elements=md.mesh.elements.slice();
+ 
+-	if ('elements2d' in md.mesh) elements2d=md.mesh.elements2d;
+-	elements=md.mesh.elements;
+-
+ 	//is it a 2d plot?
+ 	if (md.mesh.dimension()==2){
+ 		is2d=1;
Index: /issm/oecreview/Archive/19101-20495/ISSM-20471-20472.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20471-20472.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20471-20472.diff	(revision 20498)
@@ -0,0 +1,16 @@
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20471)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20472)
+@@ -131,7 +131,10 @@
+ 	for(var i = 0; i < elements.length; i++){
+ 		element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
+ 		if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
+-		indices = indices.concat(element);
++		indices[indices.length] = element[0];
++		indices[indices.length] = element[1];
++		indices[indices.length] = element[2];
++
+ 	}
+ 	indices.itemSize = 1;
+ 	
Index: /issm/oecreview/Archive/19101-20495/ISSM-20472-20473.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20472-20473.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20472-20473.diff	(revision 20498)
@@ -0,0 +1,275 @@
+Index: ../trunk-jpl/src/m/plot/plot_quiver.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 20472)
++++ ../trunk-jpl/src/m/plot/plot_quiver.js	(revision 20473)
+@@ -98,17 +98,27 @@
+ 			magnitude = vec3.length(xyz1) + md.geometry.surface[i] * surfacescale;
+ 			vec3.normalize(direction, xyz1);
+ 			vec3.scale(vertex, direction, magnitude);
+-			vertices.push.apply(vertices, vertex);
++			vertices[vertices.length] = vertex[0];
++			vertices[vertices.length] = vertex[1];
++			vertices[vertices.length] = vertex[2];
+ 			
+ 			xyz2 = vec3.fromValues(vx[i], vy[i], 0.0);
+ 			magnitude = 100.0; //mesh resolution
+ 			vec3.normalize(direction, xyz2);
+ 			vec3.scale(direction, direction, magnitude);
+ 			vec3.add(vertex, direction, vertex);
+-			vertices.push.apply(vertices, vertex);
++			vertices[vertices.length] = vertex[0];
++			vertices[vertices.length] = vertex[1];
++			vertices[vertices.length] = vertex[2];
+ 			
+-			colors.push.apply(colors, color);
+-			colors.push.apply(colors, color);
++			colors[colors.length] = color[0];
++			colors[colors.length] = color[1];
++			colors[colors.length] = color[2];
++			colors[colors.length] = color[3];
++			colors[colors.length] = color[0];
++			colors[colors.length] = color[1];
++			colors[colors.length] = color[2];
++			colors[colors.length] = color[3];
+ 		}
+ 	}
+ 	//}}}
+Index: ../trunk-jpl/src/m/plot/plot_unit.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20472)
++++ ../trunk-jpl/src/m/plot/plot_unit.js	(revision 20473)
+@@ -111,7 +111,9 @@
+ 					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
+ 					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+ 						nanindices[i] = i;
+-						vertices.push.apply(vertices, vertex);
++						vertices[vertices.length] = vertex[0];
++						vertices[vertices.length] = vertex[1];
++						vertices[vertices.length] = vertex[2];
+ 						continue;
+ 					}
+ 					//Scale vertices
+@@ -119,9 +121,12 @@
+ 					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 					vec3.normalize(direction, xyz);
+ 					vec3.scale(vertex, direction, magnitude);
+-					vertices.push.apply(vertices, vertex);
++					vertices[vertices.length] = vertex[0];
++					vertices[vertices.length] = vertex[1];
++					vertices[vertices.length] = vertex[2];
+ 
+-					texcoords.push.apply(texcoords, [0.5, (data[i] - datamin) / datadelta]);
++					texcoords[texcoords.length] = 0.5;
++					texcoords[texcoords.length] = (data[i] - datamin) / datadelta;
+ 				}
+ 
+ 				//linearize the elements array: 
+@@ -129,7 +134,9 @@
+ 				for(var i = 0; i < elements.length; i++){
+ 					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
+ 					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
+-					indices = indices.concat(element);
++					indices[indices.length] = element[0];
++					indices[indices.length] = element[1];
++					indices[indices.length] = element[2];
+ 				}
+ 				indices.itemSize = 1;
+ 
+@@ -163,12 +170,13 @@
+ 				var vertex = vec3.create();
+ 				var magnitude;
+ 				var timestamps = data[data.length-1];
+-
+ 				for(var i = 0; i < x.length; i++){
+ 					//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
+ 					if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+ 						nanindices[i] = i;
+-						vertices.push.apply(vertices, vertex);
++						vertices[vertices.length] = vertex[0];
++						vertices[vertices.length] = vertex[1];
++						vertices[vertices.length] = vertex[2];
+ 						continue;
+ 					}
+ 					//Scale vertices
+@@ -176,7 +184,9 @@
+ 					magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 					vec3.normalize(direction, xyz);
+ 					vec3.scale(vertex, direction, magnitude);
+-					vertices.push.apply(vertices, vertex);
++					vertices[vertices.length] = vertex[0];
++					vertices[vertices.length] = vertex[1];
++					vertices[vertices.length] = vertex[2];
+ 				}	
+ 				
+ 				//Transpose data to obtain column addressable data matrix
+@@ -212,7 +222,9 @@
+ 				for(var i = 0; i < elements.length; i++){
+ 					element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
+ 					if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
+-					indices = indices.concat(element);
++					indices[indices.length] = element[0];
++					indices[indices.length] = element[1];
++					indices[indices.length] = element[2];
+ 				}
+ 				indices.itemSize = 1;
+ 				
+Index: ../trunk-jpl/src/m/plot/plot_overlay.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20472)
++++ ../trunk-jpl/src/m/plot/plot_overlay.js	(revision 20473)
+@@ -78,7 +78,7 @@
+ 	if (md.radaroverlay.outerx) {
+ 		var newelements = [];
+ 		for (var i = 0; i < md.radaroverlay.outerindex.length; i++) {
+-			newelements.push([md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length]);
++			newelements[newelements.length] = [md.radaroverlay.outerindex[i][0] + x.length, md.radaroverlay.outerindex[i][1] + y.length, md.radaroverlay.outerindex[i][2] + z.length];
+ 		}
+ 		x = [].concat(x, md.radaroverlay.outerx);
+ 		y = [].concat(y, md.radaroverlay.outery);
+@@ -112,18 +112,22 @@
+ 		//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
+ 		if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+ 			nanindices[i] = i;
+-			vertices.push.apply(vertices, vertex);
++			vertices[vertices.length] = vertex[0];
++			vertices[vertices.length] = vertex[1];
++			vertices[vertices.length] = vertex[2];
+ 			continue;
+ 		}
+ 		//Scale vertices
+-		//Scale vertices
+ 		xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 		magnitude = vec3.length(xyz);
+ 		vec3.normalize(direction, xyz);
+ 		vec3.scale(vertex, direction, magnitude);
+-		vertices.push.apply(vertices, vertex);
+-
+-		texcoords.push.apply(texcoords, [(x[i] - modelxlim[0]) / xrange, (y[i] - modelylim[0]) / yrange]);
++		vertices[vertices.length] = vertex[0];
++		vertices[vertices.length] = vertex[1];
++		vertices[vertices.length] = vertex[2];
++		
++		texcoords[texcoords.length] = (x[i] - modelxlim[0]) / xrange;
++		texcoords[texcoords.length] = (y[i] - modelylim[0]) / yrange;
+ 	}
+ 
+ 	//linearize the elements array:
+@@ -134,7 +138,6 @@
+ 		indices[indices.length] = element[0];
+ 		indices[indices.length] = element[1];
+ 		indices[indices.length] = element[2];
+-
+ 	}
+ 	indices.itemSize = 1;
+ 	
+Index: ../trunk-jpl/src/m/plot/plot_mesh.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20472)
++++ ../trunk-jpl/src/m/plot/plot_mesh.js	(revision 20473)
+@@ -85,82 +85,28 @@
+ 		var vertex = vec3.create();
+ 		var magnitude;
+ 		var color = [0.0, 0.0, 0.0, 1.0];	
+-						x[0] = NaN;
+-		x[1] = NaN;
+-		x[2] = NaN;
+-		x[3] = NaN;
+-		x[4] = NaN;
+-		x[5] = NaN;
+-		x[6] = NaN;
+-		x[7] = NaN;
+-		x[8] = NaN;
+-		x[9] = NaN;
+-		x[10] = NaN;
+-		x[11] = NaN;
+-		x[12] = NaN;
+-		x[13] = NaN;
+-		x[14] = NaN;
+-		x[15] = NaN;
+-		x[16] = NaN;
+-		x[17] = NaN;
+-		x[18] = NaN;
+-		x[19] = NaN;
+-		x[20] = NaN;
+-		x[21] = NaN;
+-		x[22] = NaN;
+-		x[23] = NaN;
+-		x[24] = NaN;
+-		x[25] = NaN;
+-		x[26] = NaN;
+-		x[27] = NaN;
+-		x[28] = NaN;
+-		x[29] = NaN;
+-		x[30] = NaN;
+-		x[31] = NaN;
+-		x[32] = NaN;
+-		x[33] = NaN;
+-		x[34] = NaN;
+-		x[35] = NaN;
+-		x[36] = NaN;
+-		x[37] = NaN;
+-		x[38] = NaN;
+-		x[39] = NaN;
+-		x[310] = NaN;
+-		x[311] = NaN;
+-		x[312] = NaN;
+-		x[313] = NaN;
+-		x[314] = NaN;
+-		x[315] = NaN;
+-		x[316] = NaN;
+-		x[317] = NaN;
+-		x[318] = NaN;
+-		x[319] = NaN;
+-		x[320] = NaN;
+-		x[321] = NaN;
+-		x[322] = NaN;
+-		x[323] = NaN;
+-		x[324] = NaN;
+-		x[325] = NaN;
+-		x[326] = NaN;
+-		x[327] = NaN;
+-		x[328] = NaN;
+-		x[329] = NaN;	
+ 		for(var i = 0; i < x.length; i++){
+ 			//Check for NaN values and remove from indices array as necessary, but preserve vertex array spacing
+ 			if (isNaN(x[i]) || isNaN(y[i]) || isNaN(z[i])) {
+ 				nanindices[i] = i;
+-				vertices.push.apply(vertices, vertex);
++				vertices[vertices.length] = vertex[0];
++				vertices[vertices.length] = vertex[1];
++				vertices[vertices.length] = vertex[2];
+ 				continue;
+ 			}
+ 			//Scale vertices
+-			//Scale vertices
+ 			xyz = vec3.fromValues(x[i], y[i], z[i]);
+ 			magnitude = vec3.length(xyz) + md.geometry.surface[i] * surfacescale;
+ 			vec3.normalize(direction, xyz);
+ 			vec3.scale(vertex, direction, magnitude);
+-			vertices.push.apply(vertices, vertex);
++			vertices[vertices.length] = vertex[0];
++			vertices[vertices.length] = vertex[1];
++			vertices[vertices.length] = vertex[2];
+ 
+-			colors.push.apply(colors, color);
++			colors[colors.length] = color[0];
++			colors[colors.length] = color[1];
++			colors[colors.length] = color[2];
++			colors[colors.length] = color[3];
+ 		}
+ 		
+ 		//linearize the elements array: 
+@@ -168,7 +114,12 @@
+ 		for(var i = 0; i < elements.length; i++){
+ 			element = [elements[i][0] - 1, elements[i][1] - 1, elements[i][2] - 1];
+ 			if (element[0] in nanindices || element[1] in nanindices || element[2] in nanindices) continue;
+-			indices = indices.concat([element[0], element[1], element[1], element[2], element[2], element[0]]);
++			indices[indices.length] = element[0];
++			indices[indices.length] = element[1];
++			indices[indices.length] = element[1];
++			indices[indices.length] = element[2];
++			indices[indices.length] = element[2];
++			indices[indices.length] = element[0];
+ 		}
+ 		indices.itemSize = 1;
+ 	}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20473-20474.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20473-20474.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20473-20474.diff	(revision 20498)
@@ -0,0 +1,22 @@
+Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
+===================================================================
+--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 20473)
++++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp	(revision 20474)
+@@ -62,7 +62,7 @@
+ 			for(i=0;i<iomodel->numberofelements;i++){
+ 				if(iomodel->my_elements[i]){
+ 					node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation);
+-					node->Deactivate();
++					node->HardDeactivate();
+ 					nodes->AddObject(node);
+ 				}
+ 			}
+@@ -296,7 +296,7 @@
+ 			for(i=0;i<iomodel->numberofelements;i++){
+ 				if(iomodel->my_elements[i]){
+ 					node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum);
+-					node->Deactivate();
++					node->HardDeactivate();
+ 					nodes->AddObject(node);
+ 				}
+ 			}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20474-20475.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20474-20475.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20474-20475.diff	(revision 20498)
@@ -0,0 +1,34 @@
+Index: ../trunk-jpl/test/NightlyRun/test333.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test333.py	(revision 20474)
++++ ../trunk-jpl/test/NightlyRun/test333.py	(revision 20475)
+@@ -54,7 +54,7 @@
+ field_tolerances=[ \
+ 	1e-13, 1e-13, 1e-13, \
+ 	1e-13, 1e-13, 1e-13, \
+-	1e-13, 5e-12, 8e-12, \
++	1e-13, 5e-12, 1e-11, \
+ 	1e-13, 5e-12, 1e-11]
+ field_values=[md.results.TransientSolution[0].SedimentHead, \
+ 							md.results.TransientSolution[0].EplHead, \
+Index: ../trunk-jpl/test/NightlyRun/test333.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test333.m	(revision 20474)
++++ ../trunk-jpl/test/NightlyRun/test333.m	(revision 20475)
+@@ -49,7 +49,7 @@
+ field_tolerances={...
+ 	1e-13, 1e-13, 1e-13,...
+ 	1e-13, 1e-13, 1e-13,...
+-	1e-13, 5e-12, 8e-12,...
++	1e-13, 5e-12, 1e-11,...
+ 	1e-13, 5e-12, 1e-11};
+ field_values={md.results.TransientSolution(1).SedimentHead, ...
+ 							md.results.TransientSolution(1).EplHead,...
+Index: ../trunk-jpl/test/Archives/Archive455.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
+Index: ../trunk-jpl/test/Archives/Archive285.nc
+===================================================================
+Cannot display: file marked as a binary type.
+svn:mime-type = application/octet-stream
Index: /issm/oecreview/Archive/19101-20495/ISSM-20475-20476.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20475-20476.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20475-20476.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/src/c/analyses/GiaAnalysis.cpp
+===================================================================
+--- ../trunk-jpl/src/c/analyses/GiaAnalysis.cpp	(revision 20475)
++++ ../trunk-jpl/src/c/analyses/GiaAnalysis.cpp	(revision 20476)
+@@ -32,6 +32,7 @@
+ 	iomodel->FetchDataToInput(elements,ThicknessEnum);
+ 	iomodel->FetchDataToInput(elements,GiaMantleViscosityEnum);
+ 	iomodel->FetchDataToInput(elements,GiaLithosphereThicknessEnum);
++	iomodel->FetchDataToInput(elements,MaskIceLevelsetEnum);
+ }/*}}}*/
+ void GiaAnalysis::UpdateParameters(Parameters* parameters,IoModel* iomodel,int solution_enum,int analysis_enum){/*{{{*/
+ }/*}}}*/
Index: /issm/oecreview/Archive/19101-20495/ISSM-20476-20477.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20476-20477.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20476-20477.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test455.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test455.py	(revision 20476)
++++ ../trunk-jpl/test/NightlyRun/test455.py	(revision 20477)
+@@ -23,7 +23,7 @@
+ 	md.flowequation.fe_HO=i
+ 	md=solve(md,StressbalanceSolutionEnum())
+ 	field_names     =field_names+['Vx'+i,'Vy'+i,'Vz'+i,'Vel'+i,'Pressure'+i]
+-	field_tolerances=field_tolerances+[5e-08,4e-08,5e-08,5e-08,3e-13]
++	field_tolerances=field_tolerances+[5e-08,5e-08,5e-08,5e-08,3e-13]
+ 	field_values=field_values+[\
+ 			md.results.StressbalanceSolution.Vx,\
+ 			md.results.StressbalanceSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test455.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test455.m	(revision 20476)
++++ ../trunk-jpl/test/NightlyRun/test455.m	(revision 20477)
+@@ -13,7 +13,7 @@
+ 	md.flowequation.fe_HO=i{1};
+ 	md=solve(md,StressbalanceSolutionEnum());
+ 	field_names     ={field_names{:},['Vx' i{1}],['Vy' i{1}],['Vz' i{1}],['Vel' i{1}],['Pressure' i{1}]};
+-	field_tolerances={field_tolerances{:},5e-08,4e-08,5e-08,5e-08,3e-13};
++	field_tolerances={field_tolerances{:},5e-08,5e-08,5e-08,5e-08,3e-13};
+ 	field_values={field_values{:},...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20477-20478.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20477-20478.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20477-20478.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_gia
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20477)
++++ ../trunk-jpl/jenkins/linux64_ross_gia	(revision 20478)
+@@ -17,6 +17,8 @@
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install \
++	--with-python-dir=/usr\
++	--with-python-numpy-dir=/usr/lib/python2.7/dist-packages/numpy\
+ 	--with-math77-dir=$ISSM_DIR/externalpackages/math77/install \
+ 	--with-fortran-lib="-L/usr/lib/gcc/x86_64-linux-gnu/4.9/ -lgfortran" \
+ 	--with-gia=yes \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20478-20479.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20478-20479.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20478-20479.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20478)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20479)
+@@ -492,9 +492,7 @@
+ 				fi
+ 			;;
+ 			*linux*)
+-				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+-					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
+-				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
++				if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system -ldl"
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+ 					DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20479-20480.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20479-20480.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20479-20480.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20479)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20480)
+@@ -509,7 +509,6 @@
+ 				fi
+ 				fi
+ 				fi
+-				fi
+ 			;;
+ 			*darwin*)
+ 				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
Index: /issm/oecreview/Archive/19101-20495/ISSM-20480-20481.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20480-20481.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20480-20481.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/jenkins/linux64_ross_se
+===================================================================
+--- ../trunk-jpl/jenkins/linux64_ross_se	(revision 20480)
++++ ../trunk-jpl/jenkins/linux64_ross_se	(revision 20481)
+@@ -10,6 +10,8 @@
+ ISSM_CONFIG='--prefix=$ISSM_DIR\
+ 	--disable-static \
+ 	--with-matlab-dir=$MATLAB_PATH \
++	--with-python-dir="/usr" \
++	--with-python-numpy-dir="/usr/lib/python2.7/dist-packages/numpy" \
+ 	--with-triangle-dir=$ISSM_DIR/externalpackages/triangle/install \
+ 	--with-mpi-include=$ISSM_DIR/externalpackages/mpich/install/include  \
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lmpich" \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20481-20482.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20481-20482.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20481-20482.diff	(revision 20498)
@@ -0,0 +1,60 @@
+Index: ../trunk-jpl/m4/issm_options.m4
+===================================================================
+--- ../trunk-jpl/m4/issm_options.m4	(revision 20481)
++++ ../trunk-jpl/m4/issm_options.m4	(revision 20482)
+@@ -406,7 +406,6 @@
+ 		AC_DEFINE([_HAVE_TRIANGLE_],[1],[with Triangle in ISSM src])
+ 		AC_SUBST([TRIANGLEINCL])
+ 		AC_SUBST([TRIANGLELIB])
+-		echo $TRIANGLELIB
+ 	fi
+ 	dnl }}}
+ 	dnl boost{{{
+@@ -476,9 +475,7 @@
+ 		DAKOTAFLAGS=""
+ 		case "${host_os}" in
+ 			*cygwin*)
+-				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+-					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver"
+-				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
++				if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -L$BOOST_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem"
+ 				else if test x$DAKOTA_VERSION = x6.1 || test x$DAKOTA_VERSION = x6.2; then
+ 				   DAKOTAFLAGS="-DDISABLE_DAKOTA_CONFIG_H -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDAKOTA_PLUGIN -DBOOST_DISABLE_ASSERTS -DDAKOTA_HAVE_BOOST_FS -DHAVE_UNISTD_H -DHAVE_SYSTEM -DHAVE_WORKING_FORK -DHAVE_WORKING_VFORK -DHAVE_SYS_WAIT_H -DHAVE_USLEEP -DDAKOTA_F90 -DDAKOTA_HAVE_MPI -DHAVE_PECOS -DHAVE_SURFPACK -DDAKOTA_COLINY -DDAKOTA_UTILIB -DHAVE_ADAPTIVE_SAMPLING -DHAVE_CONMIN -DDAKOTA_DDACE -DHAVE_FSUDACE -DDAKOTA_HOPS -DHAVE_JEGA -DHAVE_NCSU -DHAVE_NL2SOL -DHAVE_OPTPP -DDAKOTA_OPTPP -DHAVE_PSUADE -DHAVE_AMPL"
+@@ -489,7 +486,6 @@
+ 					AC_MSG_ERROR([Dakota version not found or version ($DAKOTA_VERSION) not supported!]);
+ 				fi
+ 				fi
+-				fi
+ 			;;
+ 			*linux*)
+ 				if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+@@ -511,10 +507,7 @@
+ 				fi
+ 			;;
+ 			*darwin*)
+-				if      test x$DAKOTA_VERSION = x4.2 || test x$DAKOTA_VERSION = x4.2+; then
+-					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -lfftw3 -llhs -levidence -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -lopt -lpsuade -lnewmat -lncsuopt -lgsl -lquadrature -lcoliny -lcolin -lpebbl -lutilib -l3po -lnappspack -lappspack -lconveyor -lshared -lcdd -lamplsolver" 
+-					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+-				else if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
++				if test x$DAKOTA_VERSION = x5.1 || test x$DAKOTA_VERSION = x5.2; then
+ 					DAKOTALIB="-L$DAKOTA_ROOT/lib -ldakota -lteuchos -lpecos -llhs -lsparsegrid -lsurfpack -lconmin -lddace -lfsudace -ljega -lcport -loptpp -lpsuade -lncsuopt -lcolin -linterfaces -lmomh -lscolib -lpebbl -ltinyxml -lutilib -l3po -lhopspack -lnidr -lamplsolver -lboost_signals -lboost_regex -lboost_filesystem -lboost_system"
+ 					dnl DAKOTALIB+= "-lgslcblas -L/usr/lib -lblas -llapack"
+ 				else if test x$DAKOTA_VERSION = x5.3 || test x$DAKOTA_VERSION = x5.3.1; then
+@@ -532,7 +525,6 @@
+ 				fi
+ 				fi
+ 				fi
+-				fi
+ 			;;
+ 		esac
+ 
+@@ -570,8 +562,6 @@
+ 		AC_SUBST([DAKOTAINCL])
+ 		AC_SUBST([DAKOTAFLAGS])
+ 		AC_SUBST([DAKOTALIB])
+-	else
+-		AM_CONDITIONAL([ISSM_DAKOTA],0)
+ 	fi
+ 	AM_CONDITIONAL([ISSM_DAKOTA],[test x$DAKOTA_MAJOR = x6])
+ 	dnl }}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20482-20483.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20482-20483.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20482-20483.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test422.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test422.py	(revision 20482)
++++ ../trunk-jpl/test/NightlyRun/test422.py	(revision 20483)
+@@ -20,7 +20,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure']
+-field_tolerances=[3e-07,2e-07,2e-06,2e-07,5e-07]
++field_tolerances=[4e-07,4e-07,2e-06,2e-07,5e-07]
+ field_values=[\
+ 	md.results.StressbalanceSolution.Vx,\
+ 	md.results.StressbalanceSolution.Vy,\
+Index: ../trunk-jpl/test/NightlyRun/test422.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test422.m	(revision 20482)
++++ ../trunk-jpl/test/NightlyRun/test422.m	(revision 20483)
+@@ -10,7 +10,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure'};
+-field_tolerances={3e-07,2e-07,2e-06,2e-07,5e-07};
++field_tolerances={4e-07,4e-07,2e-06,2e-07,5e-07};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
Index: /issm/oecreview/Archive/19101-20495/ISSM-20483-20484.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20483-20484.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20483-20484.diff	(revision 20498)
@@ -0,0 +1,15 @@
+Index: ../trunk-jpl/test/NightlyRun/test101.html
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test101.html	(revision 20483)
++++ ../trunk-jpl/test/NightlyRun/test101.html	(revision 20484)
+@@ -3,8 +3,8 @@
+ <head><title>ISSM Web APP &mdash; Beta</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <!-- Includes {{{-->
+-<script type="text/javascript" src="../../build-js/bin/issm-bin.js"> </script>
+-<script type="text/javascript" src="../../build-js/bin/issm-prebin.js"> </script>
++<script type="text/javascript" src="../../build-js/bin/issm-binaries.js"> </script>
++<script type="text/javascript" src="../../build-js/bin/issm-extlibraries.js"> </script>
+ <script type="text/javascript" src="../../build-js/bin/IssmModule.js"></script>
+ <script type="text/javascript" src="../Exp/Square.js"></script>
+ <script type="text/javascript" src="../Par/SquareShelfConstrained.js"></script>
Index: /issm/oecreview/Archive/19101-20495/ISSM-20484-20485.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20484-20485.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20484-20485.diff	(revision 20498)
@@ -0,0 +1,13 @@
+Index: ../trunk-jpl/src/m/plot/webgl.js
+===================================================================
+--- ../trunk-jpl/src/m/plot/webgl.js	(revision 20484)
++++ ../trunk-jpl/src/m/plot/webgl.js	(revision 20485)
+@@ -341,7 +341,7 @@
+ 		canvas.rotation[1] += degrees((canvas.lastDeltaY - ev.deltaY) / canvas.clientHeight / canvas.zoomFactor * -2);
+ 		
+ 		if (canvas.rotation[0] > 360) {canvas.rotation[0] -= 360};
+-		if (canvas.rotation[0] < 0) {canvas.rotation[0] += 360};
++		if (canvas.rotation[0] < -360) {canvas.rotation[0] += 360};
+ 		if (canvas.rotation[1] > 180) {canvas.rotation[1] -= 360};
+ 		if (canvas.rotation[1] < -180) {canvas.rotation[1] += 360};
+ 		
Index: /issm/oecreview/Archive/19101-20495/ISSM-20485-20486.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20485-20486.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20485-20486.diff	(revision 20498)
@@ -0,0 +1,50 @@
+Index: ../trunk-jpl/src/m/classes/levelset.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/levelset.js	(revision 20485)
++++ ../trunk-jpl/src/m/classes/levelset.js	(revision 20486)
+@@ -31,9 +31,9 @@
+ 		checkfield(md,'fieldname','levelset.stabilization','values',[0,1,2]);
+ 	} //}}}
+ 		this.marshall=function(md,fid) { //{{{
+-			WriteData(fid,'object',self,'class','levelset','fieldname','stabilization','format','Integer');
++			WriteData(fid,'object',this,'class','levelset','fieldname','stabilization','format','Integer');
+ 			WriteData(fid,'enum',SpclevelsetEnum(),'data',this.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
+-			WriteData(fid,'object',self,'class','levelset','fieldname','reinit_frequency','format','Integer');
++			WriteData(fid,'object',this,'class','levelset','fieldname','reinit_frequency','format','Integer');
+ 
+ 		}//}}}
+ 		this.fix=function() { //{{{
+Index: ../trunk-jpl/src/m/classes/model.js
+===================================================================
+--- ../trunk-jpl/src/m/classes/model.js	(revision 20485)
++++ ../trunk-jpl/src/m/classes/model.js	(revision 20486)
+@@ -76,7 +76,7 @@
+ 			this.thermal          = new thermal();
+ 			this.steadystate      = new steadystate();
+ 			this.trans            = new trans();
+-			this.levelset			 = new levelset();
++			this.levelset		  = new levelset();
+ 			this.calving          = new calving();
+ 			this.gia              = new gia();
+ 			this.autodiff         = new autodiff();
+@@ -143,7 +143,7 @@
+ 		this.thermal          = 0;
+ 		this.steadystate      = 0;
+ 		this.trans            = 0;
+-		this.levelset= 0;
++		this.levelset         = 0;
+ 		this.calving          = 0;
+ 		this.gia              = 0;
+ 
+Index: ../trunk-jpl/src/m/Makefile.am
+===================================================================
+--- ../trunk-jpl/src/m/Makefile.am	(revision 20485)
++++ ../trunk-jpl/src/m/Makefile.am	(revision 20486)
+@@ -122,6 +122,7 @@
+ 				${ISSM_DIR}/src/m/classes/thermal.js \
+ 				${ISSM_DIR}/src/m/classes/timestepping.js \
+ 				${ISSM_DIR}/src/m/classes/toolkits.js \
++				${ISSM_DIR}/src/m/classes/levelset.js \
+ 				${ISSM_DIR}/src/m/classes/trans.js \
+ 				${ISSM_DIR}/src/m/classes/verbose.js \
+ 				${ISSM_DIR}/src/m/consistency/checkfield.js \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20486-20487.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20486-20487.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20486-20487.diff	(revision 20498)
@@ -0,0 +1,110 @@
+Index: ../trunk-jpl/src/m/plot/radarpower.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/radarpower.m	(revision 20486)
++++ ../trunk-jpl/src/m/plot/radarpower.m	(revision 20487)
+@@ -33,8 +33,7 @@
+ x0=min(xlim); x1=max(xlim);
+ y0=min(ylim); y1=max(ylim);
+ 
+-%figure out if we should go look for Greenland or Antarctica geotiff, or if user provided one.
+-if ~exist(options,'overlay_image'),
++if ~exist(options,'overlay_image'), % no image provided, go look into ModelData for one!{{{
+ 	if md.mesh.epsg==3413,   %Greenland 
+ 		%old code {{{ 
+ 		%if ~exist(['/u/astrid-r1b/ModelData/MOG/mog150_greenland_map.jpg']),
+@@ -142,23 +141,46 @@
+ 
+ 
+ 	else
+-		error('EPSG code not supported yet (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+-	end
+-else
++		if ~exist(options,'geotiff_name'), 
++			error('Need a geotiff for areas outside of Greenland and Antarctica');
++		end
++		
++		%Name of image
++		inputname='./temp.tif';
++		eval(['!gdal_translate -quiet -projwin ' num2str(x0) ' ' num2str(y1) ' ' num2str(x1) ' ' num2str(y0) ' ' geotiff_name ' ' inputname ]);
++
++		%Read in temp.tif:
++		im=imread('temp.tif','TIFF');
++		%adjust contrast and brightness
++		%im=imadjust(im,[a b],[c d]);
++		pixelskip=max(1,ceil(posting/((x1-x0)/(size(im,2)))));
++		md.radaroverlay.pwr=double(flipud(im(1:pixelskip:end,1:pixelskip:end)));
++		md.radaroverlay.x=(x0:(x1-x0)/(size(md.radaroverlay.pwr,2)-1):x1);
++		md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
++
++		%Erase image or keep it?
++		if ~getfieldvalue(options,'keep_image',0),
++			system('rm -rf ./temp.tif');
++		end
++	end 
++	%}}}
++else %user provided image {{{
+ 	%user provided an image. check we also have overlay_xlim and overlay_ylim  options, to know what range of coordinates the image covers.
+ 	if (~exist(options,'overlay_xlim') | ~exist(options,'overlay_xlim')| ~exist(options,'overlay_xposting')| ~exist(options,'overlay_yposting')),
+ 		error('radarpower error message: please provide overlay_xlim, overlay_ylim, overlay_xposting and overlay_yposting options together with overlay_image option');
+ 	end
+-	overlay_image=getfieldvalue(options,'overlay_image');
+-	overlay_xlim=getfieldvalue(options,'overlay_xlim');
+-	overlay_ylim=getfieldvalue(options,'overlay_ylim');
+-	overlay_xposting=getfieldvalue(options,'overlay_xposting');
+-	overlay_yposting=getfieldvalue(options,'overlay_yposting');
++	overlay_image=getfieldvalue(options,'overlay_image')
++	overlay_xlim=getfieldvalue(options,'overlay_xlim')
++	x0
++	x1
++	overlay_ylim=getfieldvalue(options,'overlay_ylim')
++	overlay_xposting=getfieldvalue(options,'overlay_xposting')
++	overlay_yposting=getfieldvalue(options,'overlay_yposting')
+ 
+-	sizex=floor((x1-x0)/overlay_xposting);
+-	sizey=floor((y1-y0)/overlay_yposting);
+-	topleftx=floor((x0-overlay_xlim(1))/overlay_xposting); % x min
+-	toplefty=floor((overlay_ylim(2)-y1)/overlay_yposting); % y max
++	sizex=floor((x1-x0)/overlay_xposting)
++	sizey=floor((y1-y0)/overlay_yposting)
++	topleftx=floor((x0-overlay_xlim(1))/overlay_xposting) % x min
++	toplefty=floor((overlay_ylim(2)-y1)/overlay_yposting) % y max
+ 
+ 	%Read and crop file
+ 	disp('Warning: expecting coordinates in polar stereographic (Std Latitude: 70ºN Meridian: 45º)');
+@@ -169,9 +191,9 @@
+ 	md.radaroverlay.pwr=double(flipud(im));
+ 	md.radaroverlay.x=(x0:(x1-x0)/(size(md.radaroverlay.pwr,2)-1):x1);
+ 	md.radaroverlay.y=(y0:(y1-y0)/(size(md.radaroverlay.pwr,1)-1):y1);
+-end
++end %}}}
+ 
+-%Was a triangulation requested for the area of the image that is not covered by the mesh?
++%Was a triangulation requested for the area of the image that is not covered by the mesh? %{{{
+ if strcmpi(getfieldvalue(options,'outertriangulation','no'),'yes'),
+ 
+ 	%create expfile that is a box controlled by xlim and ylim, with a hole defined by the mesh outer segments.
+@@ -183,9 +205,9 @@
+ 	box.density=1;
+ 
+ 	%inner hole from mesh segments: 
+-	box(2).x=[md.mesh.x(md.mesh.segments(:,1)); md.mesh.x(md.mesh.segments(end,2))];
++	box(2).x=md.mesh.x(md.mesh.segments(:,1));
+ 	box(2).x=[box(2).x; box(2).x(1)];
+-	box(2).y=[md.mesh.y(md.mesh.segments(:,1)); md.mesh.y(md.mesh.segments(end,2))];
++	box(2).y=md.mesh.y(md.mesh.segments(:,1)); 
+ 	box(2).y=[box(2).y; box(2).y(1)];
+ 
+ 	if strcmpi(getfieldvalue(options,'outertriangulationflip','no'),'yes'),
+@@ -199,10 +221,11 @@
+ 	%mesh: 
+ 	maxarea=max(GetAreas(md.mesh.elements,md.mesh.x,md.mesh.y));
+ 	outermd=triangle(model(),'./outertriangulation.exp',sqrt(maxarea));
++	%outermd=bamg(model(),'domain','./outertriangulation.exp','hmin',sqrt(maxarea));
+ 	
+ 	%save the triangulation: 
+ 	md.radaroverlay.outerindex=outermd.mesh.elements;
+ 	md.radaroverlay.outerx=outermd.mesh.x;
+ 	md.radaroverlay.outery=outermd.mesh.y;
+ 
+-end
++end %}}}
Index: /issm/oecreview/Archive/19101-20495/ISSM-20487-20488.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20487-20488.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20487-20488.diff	(revision 20498)
@@ -0,0 +1,26 @@
+Index: ../trunk-jpl/test/NightlyRun/test403.m
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test403.m	(revision 20487)
++++ ../trunk-jpl/test/NightlyRun/test403.m	(revision 20488)
+@@ -9,7 +9,7 @@
+ 
+ %Fields and tolerances to track changes
+ field_names     ={'Vx','Vy','Vz','Vel','Pressure'};
+-field_tolerances={2e-09,1e-09,1e-09,1e-09,1e-09};
++field_tolerances={2e-09,2e-09,2e-09,2e-09,2e-09};
+ field_values={...
+ 	(md.results.StressbalanceSolution.Vx),...
+ 	(md.results.StressbalanceSolution.Vy),...
+Index: ../trunk-jpl/test/NightlyRun/test403.py
+===================================================================
+--- ../trunk-jpl/test/NightlyRun/test403.py	(revision 20487)
++++ ../trunk-jpl/test/NightlyRun/test403.py	(revision 20488)
+@@ -19,7 +19,7 @@
+ 
+ #Fields and tolerances to track changes
+ field_names     =['Vx','Vy','Vz','Vel','Pressure']
+-field_tolerances=[2e-09,1e-09,1e-09,1e-09,1e-09]
++field_tolerances=[2e-09,2e-09,2e-09,2e-09,2e-09]
+ field_values=[\
+ 	md.results.StressbalanceSolution.Vx,\
+ 	md.results.StressbalanceSolution.Vy,\
Index: /issm/oecreview/Archive/19101-20495/ISSM-20488-20489.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20488-20489.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20488-20489.diff	(revision 20498)
@@ -0,0 +1,19 @@
+Index: ../trunk-jpl/src/wrappers/TriaSearch/TriaSearch.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriaSearch/TriaSearch.cpp	(revision 20488)
++++ ../trunk-jpl/src/wrappers/TriaSearch/TriaSearch.cpp	(revision 20489)
+@@ -55,6 +55,14 @@
+ 	/*Write data: */
+ 	WriteData(TRIA,tria,numberofnodes);
+ 
++	/*Cleanup*/
++	xDelete<int>(index);
++	xDelete<double>(x);
++	xDelete<double>(y);
++	xDelete<double>(x0);
++	xDelete<double>(y0);
++	xDelete<double>(tria);
++
+ 	/*end module: */
+ 	MODULEEND();
+ }
Index: /issm/oecreview/Archive/19101-20495/ISSM-20489-20490.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20489-20490.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20489-20490.diff	(revision 20498)
@@ -0,0 +1,32 @@
+Index: ../trunk-jpl/src/m/plot/radarpower.m
+===================================================================
+--- ../trunk-jpl/src/m/plot/radarpower.m	(revision 20489)
++++ ../trunk-jpl/src/m/plot/radarpower.m	(revision 20490)
+@@ -169,18 +169,16 @@
+ 	if (~exist(options,'overlay_xlim') | ~exist(options,'overlay_xlim')| ~exist(options,'overlay_xposting')| ~exist(options,'overlay_yposting')),
+ 		error('radarpower error message: please provide overlay_xlim, overlay_ylim, overlay_xposting and overlay_yposting options together with overlay_image option');
+ 	end
+-	overlay_image=getfieldvalue(options,'overlay_image')
+-	overlay_xlim=getfieldvalue(options,'overlay_xlim')
+-	x0
+-	x1
+-	overlay_ylim=getfieldvalue(options,'overlay_ylim')
+-	overlay_xposting=getfieldvalue(options,'overlay_xposting')
+-	overlay_yposting=getfieldvalue(options,'overlay_yposting')
++	overlay_image=getfieldvalue(options,'overlay_image');
++	overlay_xlim=getfieldvalue(options,'overlay_xlim');
++	overlay_ylim=getfieldvalue(options,'overlay_ylim');
++	overlay_xposting=getfieldvalue(options,'overlay_xposting');
++	overlay_yposting=getfieldvalue(options,'overlay_yposting');
+ 
+-	sizex=floor((x1-x0)/overlay_xposting)
+-	sizey=floor((y1-y0)/overlay_yposting)
+-	topleftx=floor((x0-overlay_xlim(1))/overlay_xposting) % x min
+-	toplefty=floor((overlay_ylim(2)-y1)/overlay_yposting) % y max
++	sizex=floor((x1-x0)/overlay_xposting);
++	sizey=floor((y1-y0)/overlay_yposting);
++	topleftx=floor((x0-overlay_xlim(1))/overlay_xposting); % x min
++	toplefty=floor((overlay_ylim(2)-y1)/overlay_yposting); % y max
+ 
+ 	%Read and crop file
+ 	disp('Warning: expecting coordinates in polar stereographic (Std Latitude: 70ºN Meridian: 45º)');
Index: /issm/oecreview/Archive/19101-20495/ISSM-20490-20491.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20490-20491.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20490-20491.diff	(revision 20498)
@@ -0,0 +1,292 @@
+Index: ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp	(revision 20491)
+@@ -37,5 +37,7 @@
+ 	WriteData(CONNECTIVITY,connectivity,nods,width);
+ 
+ 	/*end module: */
++	xDelete<int>(elements);
++	xDelete<int>(connectivity);
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/ContourToNodes/ContourToNodes.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/ContourToNodes/ContourToNodes.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/ContourToNodes/ContourToNodes.cpp	(revision 20491)
+@@ -49,6 +49,7 @@
+ 	xDelete<double>(y);
+ 	xDelete<char>(contourname);
+ 	delete contours;
++	xDelete<double>(flags);
+ 
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/MeshProfileIntersection/MeshProfileIntersection.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/MeshProfileIntersection/MeshProfileIntersection.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/MeshProfileIntersection/MeshProfileIntersection.cpp	(revision 20491)
+@@ -88,6 +88,13 @@
+ 	WriteData(SEGMENTS,segments,numsegs,5);
+ 
+ 	/*end module: */
++	xDelete<double>(double_index);
++	xDelete<int>(index);
++	xDelete<double>(x);
++	xDelete<double>(y);
++	delete domain;
++	delete contouri;
++	xDelete<double>(segments);
+ 	MODULEEND();
+ 
+ }
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp	(revision 20491)
+@@ -107,6 +107,7 @@
+ 	xDelete<double>(x_prime);
+ 	xDelete<double>(y_prime);
+ 	xDelete<double>(z_prime);
++	delete data_prime;
+ 
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/Ll2xy/Ll2xy.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/Ll2xy/Ll2xy.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/Ll2xy/Ll2xy.cpp	(revision 20491)
+@@ -90,6 +90,10 @@
+ 	WriteData(Y_OUT,y,ncoord);
+ 
+ 	/*Clean-up*/
++	xDelete<double>(lat);
++	xDelete<double>(lon);
++	xDelete<double>(x);
++	xDelete<double>(y);
+ 	delete options;
+ 
+ 	/*end module: */
+Index: ../trunk-jpl/src/wrappers/InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/InterpFromMeshToGrid/InterpFromMeshToGrid.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/InterpFromMeshToGrid/InterpFromMeshToGrid.cpp	(revision 20491)
+@@ -71,7 +71,13 @@
+ 	WriteData(GRIDDATA,griddata,nlines,ncols);
+ 
+ 	/*Free ressources: */
+-	//let matlab do this.
++	xDelete<double>(index);
++	xDelete<double>(x);
++	xDelete<double>(y);
++	xDelete<double>(meshdata);
++	xDelete<double>(griddata);
++	xDelete<double>(x_m);
++	xDelete<double>(y_m);
+ 
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/TriMeshProcessRifts/TriMeshProcessRifts.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/TriMeshProcessRifts/TriMeshProcessRifts.cpp	(revision 20491)
+@@ -49,5 +49,11 @@
+ 	WriteData(RIFTSTRUCT,riftstruct);
+ 
+ 	/*end module: */
++	delete riftstruct;
++	xDelete<int>(index);
++	xDelete<double>(x);
++	xDelete<double>(y);
++	xDelete<int>(segments);
++	xDelete<int>(segmentmarkers );
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp	(revision 20491)
+@@ -39,6 +39,7 @@
+ 
+ 	/*Free ressources: */
+ 	xDelete<double>(connectivity);
++	xDelete<double>(pool);
+ 	xDelete<double>(flags);
+ 
+ 	/*end module: */
+Index: ../trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp	(revision 20491)
+@@ -88,7 +88,12 @@
+ 	WriteData(NODEPARTITIONING,node_partitioning,numberofvertices);
+ 
+ 	/*Free ressources:*/
+-	//don't! let matlab do it.
++	xDelete<int>(elements);
++	xDelete<int>( elements2d);
++	xDelete<int>(int_element_partitioning);
++	xDelete<int>(int_node_partitioning);
++	xDelete<double>(element_partitioning);
++	xDelete<double>(node_partitioning);
+ 
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.cpp	(revision 20491)
+@@ -37,6 +37,7 @@
+ 	WriteData(ELEMENTCONNECTIVITY,elementconnectivity,nels,3);
+ 
+ 	/*Clean up*/
++	xDelete<int>(elements);
+ 	xDelete<int>(nodeconnectivity);
+ 	xDelete<int>(elementconnectivity);
+ 
+Index: ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/StringToEnum/StringToEnum.cpp	(revision 20491)
+@@ -11,8 +11,8 @@
+ }/*}}}*/
+ WRAPPER(StringToEnum){
+ 
+-	char    *name    = NULL;
+-	int      enum_out;
++	char *name = NULL;
++	int   enum_out;
+ 
+ 	/*Boot module: */
+ 	MODULEBOOT();
+@@ -30,5 +30,6 @@
+ 	WriteData(ENUMOUT,enum_out);
+ 
+ 	/*end module: */
++	xDelete<char>(name);
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/EnumToString/EnumToString.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/EnumToString/EnumToString.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/EnumToString/EnumToString.cpp	(revision 20491)
+@@ -11,8 +11,8 @@
+ }/*}}}*/
+ WRAPPER(EnumToString){
+ 
+-	char    *name    = NULL;
+-	int      enum_in;
++	char *name = NULL;
++	int   enum_in;
+ 
+ 	/*Boot module: */
+ 	MODULEBOOT();
+Index: ../trunk-jpl/src/wrappers/M1qn3/M1qn3.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/M1qn3/M1qn3.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/M1qn3/M1qn3.cpp	(revision 20491)
+@@ -153,6 +153,12 @@
+ 	WriteData(XOUT,X_out,n);
+ 
+ 	/*end module: */
++	xDelete<double>(Xs);
++	xDelete<double>(Gs);
++	xDelete<double>(Js);
++	xDelete<double>(X_out);
++	xDelete<double>(G);
++	xDelete<double>(X);
+ 	MODULEEND();
+ 	#else
+ 	_error_("m1qn3 is not installed");
+Index: ../trunk-jpl/src/wrappers/ExpToLevelSet/ExpToLevelSet.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/ExpToLevelSet/ExpToLevelSet.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/ExpToLevelSet/ExpToLevelSet.cpp	(revision 20491)
+@@ -26,11 +26,11 @@
+ 
+ 	/* required input: */
+ 	int       nods;
+-	double   *x           = NULL;
+-	double   *y           = NULL;
+-	char     *interptype  = NULL;
+-	double *flags = NULL;
+-	Contours *contours    = NULL;
++	double   *x          = NULL;
++	double   *y          = NULL;
++	char     *interptype = NULL;
++	double   *flags      = NULL;
++	Contours *contours   = NULL;
+ 
+ 	/* output: */
+ 	double *distance  = NULL;
+@@ -68,8 +68,10 @@
+ 	/*Clean up*/
+ 	xDelete<double>(x);
+ 	xDelete<double>(y);
++	xDelete<char>(interptype);
+ 	delete contours;
+-	delete distance;
++	xDelete<double>(distance);
++	xDelete<double>(flags);
+ 	
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.cpp	(revision 20491)
+@@ -89,8 +89,8 @@
+ 	xDelete<double>(y);
+ 	xDelete<char>(interptype);
+ 	delete contours;
+-	delete in_nod;
+-	delete in_elem;
++	xDelete<double>(in_nod);
++	xDelete<double>(in_elem);
+ 	/*end module: */
+ 	MODULEEND();
+ }
+Index: ../trunk-jpl/src/wrappers/ExpSimplify/ExpSimplify.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/ExpSimplify/ExpSimplify.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/ExpSimplify/ExpSimplify.cpp	(revision 20491)
+@@ -215,6 +215,8 @@
+ 	/*Clean-up*/
+ 	xDelete<char>(expfile);
+ 	delete options;
++	delete oldcontours;
++	delete newcontours;
+ 
+ 	/*end module: */
+ 	MODULEEND();
+Index: ../trunk-jpl/src/wrappers/Xy2ll/Xy2ll.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/Xy2ll/Xy2ll.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/Xy2ll/Xy2ll.cpp	(revision 20491)
+@@ -89,6 +89,10 @@
+ 	WriteData(LON_OUT,lon,ncoord);
+ 
+ 	/*Clean-up*/
++	xDelete<double>(lat);
++	xDelete<double>(lon);
++	xDelete<double>(x);
++	xDelete<double>(y);
+ 	delete options;
+ 
+ 	/*end module: */
+Index: ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
+===================================================================
+--- ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20490)
++++ ../trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp	(revision 20491)
+@@ -48,7 +48,10 @@
+ 	WriteData(DISTANCE,distance,nods);
+ 
+ 	/*Free ressources: */
+-	//let matlab do this.
++	xDelete<double>(x);
++	xDelete<double>(y);
++	xDelete<double>(mask);
++	xDelete<double>(distance);
+ 
+ 	/*end module: */
+ 	MODULEEND();
Index: /issm/oecreview/Archive/19101-20495/ISSM-20491-20492.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20491-20492.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20491-20492.diff	(revision 20498)
@@ -0,0 +1,45 @@
+Index: ../trunk-jpl/packagers/macosx/package.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/package.sh	(revision 20491)
++++ ../trunk-jpl/packagers/macosx/package.sh	(revision 20492)
+@@ -35,4 +35,25 @@
+ ls -lah $tarball_name
+ 
+ echo "Shipping binaries to website"
+-scp $tarball_name websites.jpl.nasa.gov:/home/larour/files/$tarball_name
++
++# We're using public key authentication method to upload the tarball The
++# following lines check to see if the SSH Agent is running. If not, then it is
++# started and relevant information is forwarded to a script.
++pgrep "ssh-agent" > /dev/null
++if [ $? -ne 0 ]; then
++	echo "SSH Agent is not running. Starting it..."
++	ssh-agent > ~/.ssh/agent.sh
++else
++	echo "SSH Agent is running..."
++fi
++
++source ~/.ssh/agent.sh
++ssh-add ~/.ssh/macosx-bins_richese-to-ross
++
++scp $tarball_name ross.ics.uci.edu:/var/www/html/$tarball_name
++
++if [ $? -ne 0 ]; then
++	echo "The upload failed."
++	echo "Perhaps the SSH Agent was started by some other means."
++	echo "Try killing the agent and running again.
++fi
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20491)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20492)
+@@ -21,8 +21,7 @@
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
+ 	--with-fortran-lib="/usr/local/gfortran/lib/libgfortran.a /usr/local/gfortran/lib/libquadmath.a /usr/local/gfortran/lib/gcc/x86_64-apple-darwin14/5.2.0/libgcc.a" \
+-	--with-numthreads=4 \
+-	--enable-debugging'
++	--with-numthreads=4'
+ 
+ #PYTHON and MATLAB testing
+ MATLAB_TEST=1
Index: /issm/oecreview/Archive/19101-20495/ISSM-20492-20493.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20492-20493.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20492-20493.diff	(revision 20498)
@@ -0,0 +1,12 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20492)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20493)
+@@ -17,6 +17,7 @@
+ 	--with-mpi-libflags="-L$ISSM_DIR/externalpackages/mpich/install/lib -lpmpich -lmpich -lmpl" \
+ 	--with-petsc-dir=$ISSM_DIR/externalpackages/petsc/install  \
+ 	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
++	--with-blas-lapack-dir=$ISSM_DIR/externalpackages/petsc/install/ \
+ 	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-metis-dir=$ISSM_DIR/externalpackages/petsc/install \
+ 	--with-m1qn3-dir=$ISSM_DIR/externalpackages/m1qn3/install \
Index: /issm/oecreview/Archive/19101-20495/ISSM-20493-20494.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20493-20494.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20493-20494.diff	(revision 20498)
@@ -0,0 +1,21 @@
+Index: ../trunk-jpl/jenkins/macosx_pine-island_static
+===================================================================
+--- ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20493)
++++ ../trunk-jpl/jenkins/macosx_pine-island_static	(revision 20494)
+@@ -25,7 +25,7 @@
+ 	--with-numthreads=4'
+ 
+ #PYTHON and MATLAB testing
+-MATLAB_TEST=1
++MATLAB_TEST=0
+ PYTHON_TEST=0
+ 
+ #-----------------------------------#
+@@ -57,5 +57,5 @@
+ #by Matlab and runme.m
+ #ex: "'id',[101 102 103]"
+ ##                           bamg mesh   FS                     
+-PYTHON_NROPTIONS=""
+-MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,703,435,IdFromString('Dakota')]"
++#PYTHON_NROPTIONS=""
++#MATLAB_NROPTIONS="'exclude',[119,243,514,701,702,703,435,IdFromString('Dakota')]"
Index: /issm/oecreview/Archive/19101-20495/ISSM-20494-20495.diff
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-20494-20495.diff	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-20494-20495.diff	(revision 20498)
@@ -0,0 +1,11 @@
+Index: ../trunk-jpl/packagers/macosx/package.sh
+===================================================================
+--- ../trunk-jpl/packagers/macosx/package.sh	(revision 20494)
++++ ../trunk-jpl/packagers/macosx/package.sh	(revision 20495)
+@@ -55,5 +55,5 @@
+ if [ $? -ne 0 ]; then
+ 	echo "The upload failed."
+ 	echo "Perhaps the SSH Agent was started by some other means."
+-	echo "Try killing the agent and running again.
++	echo "Try killing the agent and running again."
+ fi
Index: /issm/oecreview/Archive/19101-20495/ISSM-DocReview-19101-20495.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/ISSM-DocReview-19101-20495.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/ISSM-DocReview-19101-20495.tex	(revision 20498)
@@ -0,0 +1,67 @@
+\documentclass[]{report}   % list options between brackets
+\usepackage{graphicx}              % list packages between braces
+
+% type user-defined commands here
+
+\begin{document}
+
+\title{JPL EXPORT ADMINISTRATION \\ DOCUMENT REVIEW RECORD}   % type title between braces
+\author{Tom Scavo}         % type author(s) between braces
+\date{October 27, 1995}    % type date between braces
+%\maketitle
+
+
+\begin{center}
+\begin{tabular}{ |c|c| }
+\hline
+JPL EXPORT ADMINISTRATION \\
+\textit{ DOCUMENT REVIEW RECORD} \\
+\hline
+\end{tabular}
+\end{center}
+
+\hfill Log \#: \underline{\input{LogNumber}}
+
+\vspace{1cm}
+\noindent (Note: This form and process do not replace the procedures described in JPL Policy relating to review and approval of proposals and contractual 
+documents. This process is intended to document the review and coordination of requests to ascertain the export control ramifications relating to specific 
+documents. Export Administration signature does not convey authority to export or release the "Exporter of Record" from any export laws or regulations.)\\
+
+\noindent \textbf{Program:} \underline{ISSM: Ice Sheet System Model} \\ \\
+\noindent \textbf{Person Requesting or Initiating Export}: \underline{Dr. Eric Larour}\\ \\
+\noindent \textbf{Date Received}: \underline{\input{Date}}\\ \\
+\noindent \textbf{Document Title/Description}: ISSM changes from revision \input{r1} to revision \input{r2} \\ \\
+\noindent \textbf{Release to:} \underline{http://issm.ess.uci.edu/svn/issm/issm/trunk on ISSM svn repository}\\ \\
+\noindent \textbf{JPL Intranet:} \underline{murdo.jpl.nasa.gov/proj/ice/larour/issm-uci/trunk-jpl}\\ \\
+
+\noindent \textbf{Disposition: 6 } 
+Does not contain export-controlled information. May be released/disclosed as requested subject to 
+Company guidelines on protection of proprietary information (if applicable). \\
+
+\noindent \textbf{Comments:}  see table of changes below. \\ \\
+\noindent \textbf{Reviewed by ISSM Export Transfer Liaison:} Dr. Eric Larour \hfill \textbf{Date:} \input{Date} \\ 
+\includegraphics[scale=1]{signature}
+
+\noindent JPL Export Administration Form TBS – June 29, 2011
+
+\begin{center}
+\line(1,0){250}
+\end{center}
+
+\noindent \textbf{Disposition:} \\
+1:	  Public Domain Information (Ref ITAR Section 120.11) \\
+2:	  Qualifies for ITAR Exemption				 \\
+3:	  Covered by Department of State License/Agreement Number					  \\
+4:	  Covered by Department of Commerce validated license or exception				 \\
+5:	  New License Required \\
+6:	  Does not contain export-controlled information.  May be released/disclosed as requested subject
+   to Company guidelines on protection of proprietary information (if applicable). \\
+7:	 Other (specify)   
+\begin{center}
+\line(1,0){250}
+\end{center}
+
+
+\input{log}
+
+\end{document}
Index: /issm/oecreview/Archive/19101-20495/LogNumber.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/LogNumber.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/LogNumber.tex	(revision 20498)
@@ -0,0 +1,1 @@
+19101-20495
Index: /issm/oecreview/Archive/19101-20495/Makefile
===================================================================
--- /issm/oecreview/Archive/19101-20495/Makefile	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/Makefile	(revision 20498)
@@ -0,0 +1,8 @@
+TARGET=ISSM-DocReview-19101-20495
+
+all: 
+	pdflatex -interaction=errorstopmode -file-line-error -halt-on-error $(TARGET).tex
+	rm -rf *.log *.aux 
+
+clean:
+	rm -rf *.log *.aux
Index: /issm/oecreview/Archive/19101-20495/log.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/log.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/log.tex	(revision 20498)
@@ -0,0 +1,9660 @@
+\noindent \textbf{Change \#1} with diff file ISSM-19101-19102.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: TEMP: removed levelset code temporarily\\
+\vspace{3em}
+
+\noindent \textbf{Change \#2} with diff file ISSM-19104-19105.diff: \\
+Function name: \\
+M /issm/trunk-jpl M /issm/trunk-jpl/configs/configure.sh A /issm/trunk-jpl/externalpackages/petsc/install-3.5-pleiades-intel2012.0.032-mpt.2.06rp16.sh (from /issm/trunk/externalpackages/petsc/install-3.5-pleiades-intel2012.0.032-mpt.2.06rp16.sh:19101) M /issm/trunk-jpl/src M /issm/trunk-jpl/src/m/contrib/paraview/exportVTK.m\\
+Export determination: 6. \\
+Rationale: merged trunk and trunk-jpl\\
+\vspace{3em}
+
+\noindent \textbf{Change \#3} with diff file ISSM-19106-19107.diff: \\
+Function name: \\
+M /issm/trunk-jpl M /issm/trunk-jpl/src M /issm/trunk-jpl/test\\
+Export determination: 6. \\
+Rationale: Block revision 19105 from being merged into trunk-jpl\\
+\vspace{3em}
+
+\noindent \textbf{Change \#4} with diff file ISSM-19107-19108.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: reverted LevelsetAnalysis.cpp back\\
+\vspace{3em}
+
+\noindent \textbf{Change \#5} with diff file ISSM-19108-19109.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/dox/issm.dox\\
+Export determination: 6. \\
+Rationale: CHG: updated number of lines of code\\
+\vspace{3em}
+
+\noindent \textbf{Change \#6} with diff file ISSM-19109-19110.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-win64.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.1-win7.sh A /issm/trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Modified 'issm\_options.m4' and Matlab's 'Makefile.am' to fix the broken Windows build. CHG: Jenkins Windows script now installs Petsc 3.1 and uses the vendor option MSVC-Win64. ADD: Added new config script for Win64 environment in externalpackages. CHG: 'windows\_environment.sh' now picks up the new Win64 environment script. ADD: Added a new config script for Win64 vendor option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#7} with diff file ISSM-19110-19111.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: issm\_options.m4 had some testing stuff left over for Windows build. It has been removed.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#8} with diff file ISSM-19111-19112.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: issm\_options.m4 change to keep non Windows build from setting IS\_WINDOWS to yes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#9} with diff file ISSM-19112-19113.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: One more change to get the non-windows build to work.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#10} with diff file ISSM-19113-19114.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixed problem when spcvz is on multiple column\\
+\vspace{3em}
+
+\noindent \textbf{Change \#11} with diff file ISSM-19114-19115.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: SIA velocities in 2D were wrong, the exponent of H should be n+1 and denominator n+2, thanks Henning Akesson for reporting this bug\\
+\vspace{3em}
+
+\noindent \textbf{Change \#12} with diff file ISSM-19115-19116.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/src/m/Makefile.am M /issm/trunk-jpl/src/wrappers/python/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Jenkins Window file now provides Metis dir. CHG: Makefile.am in src/m install more python scripts. CHG: Makefile.am in src/wrappers/python uses directory subojects.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#13} with diff file ISSM-19116-19117.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/toolkits.m\\
+Export determination: 6. \\
+Rationale: CHG: changed error message to warning for NERSC colleagues\\
+\vspace{3em}
+
+\noindent \textbf{Change \#14} with diff file ISSM-19117-19118.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp M /issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h\\
+Export determination: 6. \\
+Rationale: CHG: added IoModelToDynamicConstraintsx for PDD module\\
+\vspace{3em}
+
+\noindent \textbf{Change \#15} with diff file ISSM-19118-19119.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/python/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: reverted back because this does not work on thwaites/murdo when both matlab and python are installed\\
+\vspace{3em}
+
+\noindent \textbf{Change \#16} with diff file ISSM-19119-19120.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive302.nc M /issm/trunk-jpl/test/Archives/Archive303.nc M /issm/trunk-jpl/test/Archives/Archive314.nc M /issm/trunk-jpl/test/Archives/Archive804.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated archives now that SIA2d is fixed\\
+\vspace{3em}
+
+\noindent \textbf{Change \#17} with diff file ISSM-19120-19121.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/imac-012301-gil M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi M /issm/trunk-jpl/packagers/macosx/install.sh M /issm/trunk-jpl/packagers/ubuntu/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: moved to PETSc 3.5 and removed tao\\
+\vspace{3em}
+
+\noindent \textbf{Change \#18} with diff file ISSM-19121-19122.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/contrib/hack/sia.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed SIA module with new md structure\\
+\vspace{3em}
+
+\noindent \textbf{Change \#19} with diff file ISSM-19122-19123.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/comparemodels.m\\
+Export determination: 6. \\
+Rationale: CHG: added better support for NaNs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#20} with diff file ISSM-19123-19124.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m\\
+Export determination: 6. \\
+Rationale: CHG: collapse needs to be object oriented again...\\
+\vspace{3em}
+
+\noindent \textbf{Change \#21} with diff file ISSM-19124-19125.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m\\
+Export determination: 6. \\
+Rationale: CHG: upperelements and lowerelements are only for 3d prisms\\
+\vspace{3em}
+
+\noindent \textbf{Change \#22} with diff file ISSM-19125-19126.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Added autotools to the list of externalpackages that are installed for Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#23} with diff file ISSM-19126-19127.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed windows environment scripts in externalpackages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#24} with diff file ISSM-19128-19129.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/macosx/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added cleaning steps before building in install script for Mac OSX.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#25} with diff file ISSM-19129-19130.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/windows/configs/sdk7.1-win32.sh M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: ADD: New win32 script for setting up environment variables.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#26} with diff file ISSM-19130-19131.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed windows\_environment.sh script to pickup new win32 env script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#27} with diff file ISSM-19131-19132.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Trying something to fix an issue with Petsc involving win32fe.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#28} with diff file ISSM-19132-19133.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Trying something to fix an issue with Petsc involving win32fe.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#29} with diff file ISSM-19133-19134.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/macosx/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: removed m1qn3 to see\\
+\vspace{3em}
+
+\noindent \textbf{Change \#30} with diff file ISSM-19134-19135.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/macosx/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: removed m1qn3 to see\\
+\vspace{3em}
+
+\noindent \textbf{Change \#31} with diff file ISSM-19136-19137.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/m1qn3/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: force -arch x86\_64 for old macs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#32} with diff file ISSM-19137-19138.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: PDD temperature surface forcing modif in Tria and Penta\\
+\vspace{3em}
+
+\noindent \textbf{Change \#33} with diff file ISSM-19138-19139.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/IoModel.cpp M /issm/trunk-jpl/src/c/classes/IoModel.h M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: allow spc temperatures to be reset by PDD scheme\\
+\vspace{3em}
+
+\noindent \textbf{Change \#34} with diff file ISSM-19139-19140.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: changed MULTITHREADING var for Mac build to fix libmx issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#35} with diff file ISSM-19140-19141.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Point METIS\_DIR to the correct directory given Petsc 3.1 in windows jenkins script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#36} with diff file ISSM-19141-19142.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Disabled kriging in windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#37} with diff file ISSM-19142-19143.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: removed some tests and enable development\\
+\vspace{3em}
+
+\noindent \textbf{Change \#38} with diff file ISSM-19143-19144.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added SteadystateSolutionEnum support\\
+\vspace{3em}
+
+\noindent \textbf{Change \#39} with diff file ISSM-19144-19145.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive237.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated archive with new PDD thermal constraints\\
+\vspace{3em}
+
+\noindent \textbf{Change \#40} with diff file ISSM-19145-19146.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added a second make attempt to jenkins script for the Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#41} with diff file ISSM-19146-19147.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Fixed an issue with AM\_CONDITIONAL on without-wrappers build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#42} with diff file ISSM-19147-19148.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxed tolerance\\
+\vspace{3em}
+
+\noindent \textbf{Change \#43} with diff file ISSM-19148-19149.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: NEW: allow python to be in other locations\\
+\vspace{3em}
+
+\noindent \textbf{Change \#44} with diff file ISSM-19149-19150.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: more flexible test on python include\\
+\vspace{3em}
+
+\noindent \textbf{Change \#45} with diff file ISSM-19150-19151.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_newton.cpp M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_nonlinear.cpp M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_thermal\_nonlinear.cpp\\
+Export determination: 6. \\
+Rationale: CHG: removed MaxIterationConvergenceFlagEnum from results to avoid having a results for each step even though output\_frequency is not 1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#46} with diff file ISSM-19151-19152.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp\\
+Export determination: 6. \\
+Rationale: CHG:adding coupling capability to friction hydro\\
+\vspace{3em}
+
+\noindent \textbf{Change \#47} with diff file ISSM-19152-19153.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/frictionhydro.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FrictionCouplingEnum.m D /issm/trunk-jpl/src/m/enum/MaxIterationConvergenceFlagEnum.m\\
+Export determination: 6. \\
+Rationale: CHG:adding coupling capability to friction hydro\\
+\vspace{3em}
+
+\noindent \textbf{Change \#48} with diff file ISSM-19153-19154.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/kriging/Covertree.cpp M /issm/trunk-jpl/src/c/classes/kriging/Covertree.h M /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp M /issm/trunk-jpl/src/c/classes/kriging/Observations.h\\
+Export determination: 6. \\
+Rationale: BUG: fixed kriging for covertree\\
+\vspace{3em}
+
+\noindent \textbf{Change \#49} with diff file ISSM-19154-19155.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added simplistic reset levelset function and calving law\\
+\vspace{3em}
+
+\noindent \textbf{Change \#50} with diff file ISSM-19155-19156.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Data/Download.sh M /issm/trunk-jpl/examples/Greenland/runme.m\\
+Export determination: 6. \\
+Rationale: CHG: update to newest Box dataset\\
+\vspace{3em}
+
+\noindent \textbf{Change \#51} with diff file ISSM-19156-19157.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/kriging/Observations.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixes covertree by computing maxdist on the fly\\
+\vspace{3em}
+
+\noindent \textbf{Change \#52} with diff file ISSM-19157-19158.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/classes/model.py A /issm/trunk-jpl/src/m/consistency/QueueRequirements.py M /issm/trunk-jpl/src/m/contrib/netCDF/export\_netCDF.py M /issm/trunk-jpl/src/m/contrib/netCDF/read\_netCDF.m M /issm/trunk-jpl/src/m/contrib/paraview/exportVTK.m M /issm/trunk-jpl/src/m/dev/devpath.py M /issm/trunk-jpl/src/m/io/structtonc.m M /issm/trunk-jpl/src/m/os/issmscpin.py M /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.py\\
+Export determination: 6. \\
+Rationale: NEW: adding cluster (pfe) launch ability in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#53} with diff file ISSM-19158-19159.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/calving.py M /issm/trunk-jpl/src/m/classes/calvingdev.m M /issm/trunk-jpl/src/m/classes/calvingpi.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py M /issm/trunk-jpl/test/Par/SquareSheetConstrained.par M /issm/trunk-jpl/test/Par/SquareSheetConstrained.py M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.par M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.py\\
+Export determination: 6. \\
+Rationale: NEW: added spclevelset to levelset transport equation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#54} with diff file ISSM-19159-19160.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/enum/SpcLevelsetEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: new enum:\\
+\vspace{3em}
+
+\noindent \textbf{Change \#55} with diff file ISSM-19160-19161.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim\\
+Export determination: 6. \\
+Rationale: CHG: syncing enums\\
+\vspace{3em}
+
+\noindent \textbf{Change \#56} with diff file ISSM-19161-19162.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fix for the friction coupling\\
+\vspace{3em}
+
+\noindent \textbf{Change \#57} with diff file ISSM-19162-19163.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fix for the friction coupling\\
+\vspace{3em}
+
+\noindent \textbf{Change \#58} with diff file ISSM-19163-19164.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Greenland/Greenland.par M /issm/trunk-jpl/examples/IceBridge/Greenland.par M /issm/trunk-jpl/examples/IceBridge/Greenland\_cheatsheet.par M /issm/trunk-jpl/examples/IceBridge/Greenland\_noOIB.par M /issm/trunk-jpl/examples/Jakobshavn/Jks.par M /issm/trunk-jpl/examples/Pig/Pig.par\\
+Export determination: 6. \\
+Rationale: CHG: no more hemisphere, use epsg instead\\
+\vspace{3em}
+
+\noindent \textbf{Change \#59} with diff file ISSM-19164-19165.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/solve/solve.py\\
+Export determination: 6. \\
+Rationale: BUG:fix for pleiade launch\\
+\vspace{3em}
+
+\noindent \textbf{Change \#60} with diff file ISSM-19165-19166.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.py\\
+Export determination: 6. \\
+Rationale: BUG:deleteing greenplanet import which does not exist\\
+\vspace{3em}
+
+\noindent \textbf{Change \#61} with diff file ISSM-19166-19167.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Greenland/runme.m\\
+Export determination: 6. \\
+Rationale: CHG: run relaxation for 20 years\\
+\vspace{3em}
+
+\noindent \textbf{Change \#62} with diff file ISSM-19167-19168.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/calvinglevermann.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.py M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py M /issm/trunk-jpl/test/NightlyRun/test807.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed calvinglevermann with spc levelset\\
+\vspace{3em}
+
+\noindent \textbf{Change \#63} with diff file ISSM-19168-19169.diff: \\
+Function name: \\
+M /issm/trunk-jpl/configs/config-win64.sh M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h M /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp\\
+Export determination: 6. \\
+Rationale: CHG: config-win64.sh uses the correct vendor option MSVC-Win64 CHG: Changed ISSM options to account for Petsc builds newer than 3.3 that do not include their own Metis installation. Added new macro for Petsc provided MPI. CHG: 'issmmpi.h' now include 'petsc.h' when Petsc provides it. CHG: 'PetscMat.cpp' adds logic to use sequential version of Petsc preallocation instead of MPI. Only activates if Petsc provided MPI is used.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#64} with diff file ISSM-19169-19170.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Updated Windows build to use Petsc 3.5.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#65} with diff file ISSM-19170-19171.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Moved array for sequential build from heap to stack.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#66} with diff file ISSM-19172-19173.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/analyses.m4 M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h M /issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp M /issm/trunk-jpl/src/c/shared/Elements/elements.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: new method to interpolate present day temp and prec from delta O18\\
+\vspace{3em}
+
+\noindent \textbf{Change \#67} with diff file ISSM-19173-19174.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp A /issm/trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m A /issm/trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m A /issm/trunk-jpl/test/NightlyRun/test2361.m\\
+Export determination: 6. \\
+Rationale: a few more files for the new delta O18 interpolation method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#68} with diff file ISSM-19174-19175.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive240.nc D /issm/trunk-jpl/test/NightlyRun/test2361.m A /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: nightly run archive for new interpolation method with detla O18 and present day temp and precip\\
+\vspace{3em}
+
+\noindent \textbf{Change \#69} with diff file ISSM-19175-19176.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive240.nc M /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: update nightly run for new deltaO18 method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#70} with diff file ISSM-19176-19177.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: do not create dynamic constraints by default\\
+\vspace{3em}
+
+\noindent \textbf{Change \#71} with diff file ISSM-19177-19178.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/m/classes/clusters/acenet.m\\
+Export determination: 6. \\
+Rationale: minor bug fixed for new delta O18 method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#72} with diff file ISSM-19178-19179.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscMat.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Moved array back to heap, as Microsofts compiler CL does not support dynamic size arrays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#73} with diff file ISSM-19179-19180.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Changed relative paths to absolute paths in Makefile.am of scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#74} with diff file ISSM-19180-19181.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/rifts/meshprocessrifts.m\\
+Export determination: 6. \\
+Rationale: CHG: added 3d surface case.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#75} with diff file ISSM-19181-19182.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gmsh\\
+Export determination: 6. \\
+Rationale: CHG: choose to ignore some files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#76} with diff file ISSM-19182-19183.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/fti\\
+Export determination: 6. \\
+Rationale: CHG: get svn to ignore some files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#77} with diff file ISSM-19183-19184.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/shp/shpread.m\\
+Export determination: 6. \\
+Rationale: CHG: added processing of Line\\
+\vspace{3em}
+
+\noindent \textbf{Change \#78} with diff file ISSM-19184-19185.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/m/classes/clusters/acenet.m D /issm/trunk-jpl/test/Archives/Archive240.nc D /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: temporally removing NR 240. new delta O18 interpolation method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#79} with diff file ISSM-19185-19186.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: Fixed issue with unset VENDOR variable in m4/issm\_options.m4\\
+\vspace{3em}
+
+\noindent \textbf{Change \#80} with diff file ISSM-19186-19187.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test318.m M /issm/trunk-jpl/test/NightlyRun/test515.m\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed tolerances of matlab tests 318 and 515 to correct failures in Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#81} with diff file ISSM-19187-19188.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test318.py M /issm/trunk-jpl/test/NightlyRun/test515.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed tolerances of Python tests 318 and 515 to synchronize with Matlab tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#82} with diff file ISSM-19188-19189.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Added test 513 to the exclude list from Windows Jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#83} with diff file ISSM-19189-19190.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_hydro\_nonlinear.cpp\\
+Export determination: 6. \\
+Rationale: CHG: change workflow for hydro\\
+\vspace{3em}
+
+\noindent \textbf{Change \#84} with diff file ISSM-19190-19191.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBpdd.py\\
+Export determination: 6. \\
+Rationale: CHG: temporary change for python isd18opm\\
+\vspace{3em}
+
+\noindent \textbf{Change \#85} with diff file ISSM-19191-19192.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/cores/ProcessArguments.cpp M /issm/trunk-jpl/src/c/cores/cores.h M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/settings.m M /issm/trunk-jpl/src/m/classes/settings.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/RestartFileNameEnum.m A /issm/trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: introducing checkpointing capability. Right now, just empty shell, getting thematlab and python apis to accept restart\_frequency settings.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#86} with diff file ISSM-19192-19193.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: shielding case where restart\_frequency is 0, which segfaults the "%" operation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#87} with diff file ISSM-19193-19194.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/controlm1qn3\_core.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixed final J as output\\
+\vspace{3em}
+
+\noindent \textbf{Change \#88} with diff file ISSM-19194-19195.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: BUG:adding friction effectivepressure in Isinput\\
+\vspace{3em}
+
+\noindent \textbf{Change \#89} with diff file ISSM-19195-19196.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/frictionhydro.m\\
+Export determination: 6. \\
+Rationale: BUG: adding check on friction hydro class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#90} with diff file ISSM-19196-19197.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.py\\
+Export determination: 6. \\
+Rationale: BUG: fixing file removal\\
+\vspace{3em}
+
+\noindent \textbf{Change \#91} with diff file ISSM-19197-19198.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/contrib/paraview/enveloppeVTK.m M /issm/trunk-jpl/src/m/contrib/paraview/exportVTK.m\\
+Export determination: 6. \\
+Rationale: NEW: adding support for forcings\\
+\vspace{3em}
+
+\noindent \textbf{Change \#92} with diff file ISSM-19198-19199.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/bamg/BamgQuadtree.h M /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h M /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h M /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.h M /issm/trunk-jpl/src/c/classes/Contour.h M /issm/trunk-jpl/src/c/classes/DependentObject.h M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/classes/IndependentObject.h M /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h M /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h M /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h M /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h M /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h M /issm/trunk-jpl/src/c/classes/Loads/Loads.cpp M /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h M /issm/trunk-jpl/src/c/classes/Loads/Pengrid.h M /issm/trunk-jpl/src/c/classes/Loads/Penpair.h M /issm/trunk-jpl/src/c/classes/Loads/Riftfront.h M /issm/trunk-jpl/src/c/classes/Masscon.h M /issm/trunk-jpl/src/c/classes/Massconaxpby.h M /issm/trunk-jpl/src/c/classes/Massfluxatgate.h M /issm/trunk-jpl/src/c/classes/Materials/Matice.h M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/classes/Misfit.h M /issm/trunk-jpl/src/c/classes/Node.h M /issm/trunk-jpl/src/c/classes/Nodes.cpp M /issm/trunk-jpl/src/c/classes/Options/Option.h M /issm/trunk-jpl/src/c/classes/Params/BoolParam.h M /issm/trunk-jpl/src/c/classes/Params/DataSetParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.h M /issm/trunk-jpl/src/c/classes/Params/FileParam.h M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h M /issm/trunk-jpl/src/c/classes/Params/IntMatParam.h M /issm/trunk-jpl/src/c/classes/Params/IntParam.h M /issm/trunk-jpl/src/c/classes/Params/IntVecParam.h M /issm/trunk-jpl/src/c/classes/Params/MatrixParam.h M /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.h M /issm/trunk-jpl/src/c/classes/Params/StringParam.h M /issm/trunk-jpl/src/c/classes/Params/TransientParam.h M /issm/trunk-jpl/src/c/classes/Params/VectorParam.h M /issm/trunk-jpl/src/c/classes/Profiler.h M /issm/trunk-jpl/src/c/classes/Segment.h M /issm/trunk-jpl/src/c/classes/Vertex.h M /issm/trunk-jpl/src/c/classes/kriging/ExponentialVariogram.h M /issm/trunk-jpl/src/c/classes/kriging/GaussianVariogram.h M /issm/trunk-jpl/src/c/classes/kriging/Observation.h M /issm/trunk-jpl/src/c/classes/kriging/PowerVariogram.h M /issm/trunk-jpl/src/c/classes/kriging/Quadtree.h M /issm/trunk-jpl/src/c/classes/kriging/SphericalVariogram.h M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp M /issm/trunk-jpl/src/c/datastructures/DataSet.h M /issm/trunk-jpl/src/c/datastructures/Object.h M /issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/c/shared/io/Marshalling A /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h M /issm/trunk-jpl/src/c/shared/io/io.h M /issm/trunk-jpl/src/c/toolkits/issm/Bucket.h M /issm/trunk-jpl/src/m/dev/devpath.m M /issm/trunk-jpl/src/m/dev/devpath.py A /issm/trunk-jpl/src/m/enum/DataSetEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FemModelEnum.m M /issm/trunk-jpl/src/m/mesh/bamg.m\\
+Export determination: 6. \\
+Rationale: CHG: re-introducing Marshalling routines in support of check pointing. Implemented the dataset backbone, and the FemModel backbone. Now we have to bring back the low level drivers for the classes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#93} with diff file ISSM-19199-19200.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/DofIndexing.cpp M /issm/trunk-jpl/src/c/classes/DofIndexing.h M /issm/trunk-jpl/src/c/classes/Node.cpp M /issm/trunk-jpl/src/c/classes/Node.h M /issm/trunk-jpl/src/c/classes/Vertex.cpp M /issm/trunk-jpl/src/c/classes/Vertex.h\\
+Export determination: 6. \\
+Rationale: CHG: implemented marshalling of Vertex, Node and DofIndexing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#94} with diff file ISSM-19200-19201.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SMBd18opddEnum.m A /issm/trunk-jpl/test/Archives/Archive240.nc A /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: new class for d18o interpolation for pdd\\
+\vspace{3em}
+
+\noindent \textbf{Change \#95} with diff file ISSM-19201-19202.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/kml/KML\_Attribute.h M /issm/trunk-jpl/src/c/kml/KML\_ColorStyle.h M /issm/trunk-jpl/src/c/kml/KML\_Comment.h M /issm/trunk-jpl/src/c/kml/KML\_Container.h M /issm/trunk-jpl/src/c/kml/KML\_Document.h M /issm/trunk-jpl/src/c/kml/KML\_Feature.h M /issm/trunk-jpl/src/c/kml/KML\_File.h M /issm/trunk-jpl/src/c/kml/KML\_Folder.h M /issm/trunk-jpl/src/c/kml/KML\_Geometry.h M /issm/trunk-jpl/src/c/kml/KML\_GroundOverlay.h M /issm/trunk-jpl/src/c/kml/KML\_Icon.h M /issm/trunk-jpl/src/c/kml/KML\_LatLonBox.h M /issm/trunk-jpl/src/c/kml/KML\_LineString.h M /issm/trunk-jpl/src/c/kml/KML\_LineStyle.h M /issm/trunk-jpl/src/c/kml/KML\_LinearRing.h M /issm/trunk-jpl/src/c/kml/KML\_MultiGeometry.h M /issm/trunk-jpl/src/c/kml/KML\_Object.h M /issm/trunk-jpl/src/c/kml/KML\_Overlay.h M /issm/trunk-jpl/src/c/kml/KML\_Placemark.h M /issm/trunk-jpl/src/c/kml/KML\_Point.h M /issm/trunk-jpl/src/c/kml/KML\_PolyStyle.h M /issm/trunk-jpl/src/c/kml/KML\_Polygon.h M /issm/trunk-jpl/src/c/kml/KML\_Style.h M /issm/trunk-jpl/src/c/kml/KML\_StyleSelector.h M /issm/trunk-jpl/src/c/kml/KML\_SubStyle.h M /issm/trunk-jpl/src/c/kml/KML\_Unknown.h\\
+Export determination: 6. \\
+Rationale: CHG: forgot to add the Marshall routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#96} with diff file ISSM-19202-19203.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/dev/devpath.m\\
+Export determination: 6. \\
+Rationale: BUG: libs are in libs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#97} with diff file ISSM-19203-19204.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_BC.m M /issm/trunk-jpl/src/m/plot/plot\_icefront.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed plot\_BC on new version of matlab\\
+\vspace{3em}
+
+\noindent \textbf{Change \#98} with diff file ISSM-19204-19205.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/exp/exptool.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed bug on some macs due to getframe that introduces an offset in the axis. Fix is to use 'nofigurecopy' option\\
+\vspace{3em}
+
+\noindent \textbf{Change \#99} with diff file ISSM-19205-19206.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed etcpath disp\\
+\vspace{3em}
+
+\noindent \textbf{Change \#100} with diff file ISSM-19206-19207.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive240.nc\\
+Export determination: 6. \\
+Rationale: CHG updated archive\\
+\vspace{3em}
+
+\noindent \textbf{Change \#101} with diff file ISSM-19207-19208.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/ProcessArguments.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Explicitly cast int to double to fix ambiguity issue on Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#102} with diff file ISSM-19208-19209.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temporary change to force SVN version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#103} with diff file ISSM-19209-19210.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Second attempt at forcing older svn version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#104} with diff file ISSM-19210-19211.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Third attempt at forcing older svn version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#105} with diff file ISSM-19211-19212.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Fourth attempt at forcing older svn version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#106} with diff file ISSM-19212-19213.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Added METISLIB to deps for Windows build to deal with missing METIS symbol.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#107} with diff file ISSM-19213-19214.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_murdo\\
+Export determination: 6. \\
+Rationale: CHG: Modified Jenkins Murdo script to specify version of SVN to use CHG: Added print statements to make sure SVN variable is preserved. More changes coming to finalize SVN issue on Murdo.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#108} with diff file ISSM-19214-19215.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_murdo\\
+Export determination: 6. \\
+Rationale: CHG: Jenkins script now checks for and uses SVN and SVNVERSION variables. CHG: Jenkins Murdo script sets SVN and SNVERSION variables.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#109} with diff file ISSM-19215-19216.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp M /issm/trunk-jpl/src/c/classes/Elements/ElementHook.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/Elements/TriaRef.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Hook.cpp M /issm/trunk-jpl/src/c/classes/Hook.h M /issm/trunk-jpl/src/c/classes/Params/DoubleParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleParam.h M /issm/trunk-jpl/src/c/classes/Params/IntParam.cpp M /issm/trunk-jpl/src/c/classes/Params/IntParam.h M /issm/trunk-jpl/src/c/classes/Profiler.cpp M /issm/trunk-jpl/src/c/classes/Profiler.h M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h A /issm/trunk-jpl/src/m/enum/ElementHookEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/HookEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: going deeper in the low level objects to propagate the new MARSHALL capability.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#110} with diff file ISSM-19216-19217.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp M /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h M /issm/trunk-jpl/src/c/classes/Elements/TriaRef.h M /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matice.h M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp M /issm/trunk-jpl/src/c/classes/Params/BoolParam.h\\
+Export determination: 6. \\
+Rationale: CHG: further pushing Marshall capability into low level drivers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#111} with diff file ISSM-19217-19218.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/DataSetParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DataSetParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.h M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.h M /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp M /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.h\\
+Export determination: 6. \\
+Rationale: CHG: pushing Marshall routines into low level objects\\
+\vspace{3em}
+
+\noindent \textbf{Change \#112} with diff file ISSM-19218-19219.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/miscellaneous/transientrestart.m\\
+Export determination: 6. \\
+Rationale: NEW: added transientrestart to restart transient run\\
+\vspace{3em}
+
+\noindent \textbf{Change \#113} with diff file ISSM-19219-19220.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h\\
+Export determination: 6. \\
+Rationale: CHG: fixing a potential segfault occurence when the marshalled dynamic array is actually a NULL pointer.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#114} with diff file ISSM-19220-19221.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp\\
+Export determination: 6. \\
+Rationale: CHG: staying away from switch statements, which go erratic when providing them with enums that are very large.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#115} with diff file ISSM-19221-19222.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/io/Disk/diskio.h M /issm/trunk-jpl/src/c/shared/io/Disk/pfopen.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding capability to test for presence of a file, instead of erroring out instantly on open.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#116} with diff file ISSM-19222-19223.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h M /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp M /issm/trunk-jpl/src/c/classes/Params/FileParam.h M /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp M /issm/trunk-jpl/src/c/classes/Params/IntMatParam.h M /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp M /issm/trunk-jpl/src/c/classes/Params/IntVecParam.h M /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp M /issm/trunk-jpl/src/c/classes/Params/StringParam.h\\
+Export determination: 6. \\
+Rationale: CHG: implementing Marshall capability for all Params objects.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#117} with diff file ISSM-19223-19224.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: hooking up Marshalling capability into the FemModel new Restart routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#118} with diff file ISSM-19224-19225.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: hooking up the Restart capability into the transient core.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#119} with diff file ISSM-19225-19226.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Elements/ComputeD18OTemperaturePrecipitationFromPD.cpp\\
+Export determination: 6. \\
+Rationale: BUG: Garbage was being added to monthlytemperatures\\
+\vspace{3em}
+
+\noindent \textbf{Change \#120} with diff file ISSM-19226-19227.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive236.nc M /issm/trunk-jpl/test/Archives/Archive240.nc M /issm/trunk-jpl/test/Data/delta18o.data\\
+Export determination: 6. \\
+Rationale: CHG: make units of del18 record in permil and update archives for 236 and 240\\
+\vspace{3em}
+
+\noindent \textbf{Change \#121} with diff file ISSM-19227-19228.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.m\\
+Export determination: 6. \\
+Rationale: CHG: add comment for del18 units\\
+\vspace{3em}
+
+\noindent \textbf{Change \#122} with diff file ISSM-19228-19229.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBpdd.py\\
+Export determination: 6. \\
+Rationale: CHG: add del18 units into python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#123} with diff file ISSM-19229-19230.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive236.nc\\
+Export determination: 6. \\
+Rationale: BUG: local change in thermal model causes archive difference\\
+\vspace{3em}
+
+\noindent \textbf{Change \#124} with diff file ISSM-19230-19231.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/esmf/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: new install for new version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#125} with diff file ISSM-19231-19232.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: new esmf hookup.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#126} with diff file ISSM-19232-19233.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added friction 5 for Kevin (Weertman like SIA)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#127} with diff file ISSM-19233-19234.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: NEW: added weertman like friction law for SIA (Kevin)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#128} with diff file ISSM-19234-19235.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: do not get coefficient by defualt\\
+\vspace{3em}
+
+\noindent \textbf{Change \#129} with diff file ISSM-19235-19236.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: do not get coefficient by defualt\\
+\vspace{3em}
+
+\noindent \textbf{Change \#130} with diff file ISSM-19236-19237.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp M /issm/trunk-jpl/src/c/classes/Params/TransientParam.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp\\
+Export determination: 6. \\
+Rationale: CHG: allow removal of interpolation routine from TransientParam\\
+\vspace{3em}
+
+\noindent \textbf{Change \#131} with diff file ISSM-19237-19238.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h\\
+Export determination: 6. \\
+Rationale: CHG: Allow pdd to run on temporal step finer than 1 year and move Pdd functions to Element\\
+\vspace{3em}
+
+\noindent \textbf{Change \#132} with diff file ISSM-19238-19239.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Hook.cpp\\
+Export determination: 6. \\
+Rationale: CHG: reset hooks when demarshalling\\
+\vspace{3em}
+
+\noindent \textbf{Change \#133} with diff file ISSM-19239-19240.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Profiler.cpp M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp M /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h\\
+Export determination: 6. \\
+Rationale: CHG: The constructor creates new Profiler variables\\
+\vspace{3em}
+
+\noindent \textbf{Change \#134} with diff file ISSM-19240-19241.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp M /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h\\
+Export determination: 6. \\
+Rationale: CHG: revert some file for marshalling\\
+\vspace{3em}
+
+\noindent \textbf{Change \#135} with diff file ISSM-19241-19242.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: BUG: extrude correct PDD output\\
+\vspace{3em}
+
+\noindent \textbf{Change \#136} with diff file ISSM-19242-19243.diff: \\
+Function name: \\
+M /issm/trunk-jpl/scripts/ol.m\\
+Export determination: 6. \\
+Rationale: CHG: minor change in script\\
+\vspace{3em}
+
+\noindent \textbf{Change \#137} with diff file ISSM-19243-19244.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive236.nc M /issm/trunk-jpl/test/Archives/Archive237.nc M /issm/trunk-jpl/test/Archives/Archive238.nc M /issm/trunk-jpl/test/Archives/Archive239.nc M /issm/trunk-jpl/test/Archives/Archive240.nc A /issm/trunk-jpl/test/Archives/Archive241.nc A /issm/trunk-jpl/test/Archives/Archive242.nc M /issm/trunk-jpl/test/NightlyRun/test236.m M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test238.m M /issm/trunk-jpl/test/NightlyRun/test239.m M /issm/trunk-jpl/test/NightlyRun/test240.m A /issm/trunk-jpl/test/NightlyRun/test241.m A /issm/trunk-jpl/test/NightlyRun/test242.m\\
+Export determination: 6. \\
+Rationale: CHG: fix pdd tests so that field names match fields tested, add removal of del18o interpolation tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#138} with diff file ISSM-19244-19245.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/mesh/planet/mesh\_refine\_tri4.m D /issm/trunk-jpl/src/m/mesh/planet/planettrimesh.m D /issm/trunk-jpl/src/m/mesh/planet/sphere\_project.m D /issm/trunk-jpl/src/m/mesh/planet/sphere\_tri.m A /issm/trunk-jpl/src/m/mesh/planet/spheretri A /issm/trunk-jpl/src/m/mesh/planet/spheretri/mesh\_refine\_tri4.m (from /issm/trunk-jpl/src/m/mesh/planet/mesh\_refine\_tri4.m:19231) A /issm/trunk-jpl/src/m/mesh/planet/spheretri/planettrimesh.m (from /issm/trunk-jpl/src/m/mesh/planet/planettrimesh.m:19231) A /issm/trunk-jpl/src/m/mesh/planet/spheretri/sphere\_project.m (from /issm/trunk-jpl/src/m/mesh/planet/sphere\_project.m:19231) A /issm/trunk-jpl/src/m/mesh/planet/spheretri/sphere\_tri.m (from /issm/trunk-jpl/src/m/mesh/planet/sphere\_tri.m:19231)\\
+Export determination: 6. \\
+Rationale: CHG: reorg.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#139} with diff file ISSM-19245-19246.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: reorg\\
+\vspace{3em}
+
+\noindent \textbf{Change \#140} with diff file ISSM-19246-19247.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test236.py M /issm/trunk-jpl/test/NightlyRun/test237.py D /issm/trunk-jpl/test/NightlyRun/test238.py D /issm/trunk-jpl/test/NightlyRun/test239.py A /issm/trunk-jpl/test/NightlyRun/test241.py (from /issm/trunk-jpl/test/NightlyRun/test238.py:19245) A /issm/trunk-jpl/test/NightlyRun/test242.py (from /issm/trunk-jpl/test/NightlyRun/test239.py:19245)\\
+Export determination: 6. \\
+Rationale: CHG: update transient interp and pdd python tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#141} with diff file ISSM-19247-19248.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test238.m\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#142} with diff file ISSM-19248-19249.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m A /issm/trunk-jpl/src/m/classes/SMBd18opdd.py\\
+Export determination: 6. \\
+Rationale: CHG: new pdd class in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#143} with diff file ISSM-19249-19250.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/NightlyRun/test238.py A /issm/trunk-jpl/test/NightlyRun/test239.py A /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: CHG: add new pdd tests for python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#144} with diff file ISSM-19250-19251.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test236.py M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: BUG: used wrong brackets\\
+\vspace{3em}
+
+\noindent \textbf{Change \#145} with diff file ISSM-19251-19252.diff: \\
+Function name: \\
+M /issm/trunk-jpl/etc/environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: add gmsh to environment.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#146} with diff file ISSM-19252-19253.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/coordsystems/gmtmask.m A /issm/trunk-jpl/src/m/mesh/planet/gmsh A /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m\\
+Export determination: 6. \\
+Rationale: CHG: new gmshplanet meshers for the planet. Also new gmt implementation of a mask determination on the planet.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#147} with diff file ISSM-19253-19254.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test236.py M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: BUG: missing bracket in field list\\
+\vspace{3em}
+
+\noindent \textbf{Change \#148} with diff file ISSM-19254-19255.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp M /issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h M /issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp M /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp M /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.h M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/ElementHook.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/PentaRef.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/SegRef.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/TetraRef.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Hook.cpp M /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h M /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h M /issm/trunk-jpl/src/c/classes/Inputs/IntInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h M /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h M /issm/trunk-jpl/src/c/classes/Inputs/SegInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h M /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp M /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.h M /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp M /issm/trunk-jpl/src/c/classes/Loads/Pengrid.h M /issm/trunk-jpl/src/c/classes/Loads/Penpair.cpp M /issm/trunk-jpl/src/c/classes/Loads/Penpair.h M /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp M /issm/trunk-jpl/src/c/classes/Loads/Riftfront.h M /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp M /issm/trunk-jpl/src/c/classes/Params/BoolParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp M /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h M /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp M /issm/trunk-jpl/src/c/classes/Params/IntParam.cpp M /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp M /issm/trunk-jpl/src/c/classes/Params/MatrixParam.cpp M /issm/trunk-jpl/src/c/classes/Params/Parameters.cpp M /issm/trunk-jpl/src/c/classes/Params/StringArrayParam.cpp M /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp M /issm/trunk-jpl/src/c/classes/Params/TransientParam.cpp M /issm/trunk-jpl/src/c/classes/Params/TransientParam.h M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp M /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h\\
+Export determination: 6. \\
+Rationale: CHG: complete implementation of Marshall in Objects\\
+\vspace{3em}
+
+\noindent \textbf{Change \#149} with diff file ISSM-19255-19256.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/DofIndexing.cpp\\
+Export determination: 6. \\
+Rationale: BUG: use the correct size of fset and sset\\
+\vspace{3em}
+
+\noindent \textbf{Change \#150} with diff file ISSM-19256-19257.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp\\
+Export determination: 6. \\
+Rationale: BUG: marshall the correct enum\\
+\vspace{3em}
+
+\noindent \textbf{Change \#151} with diff file ISSM-19257-19258.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.py\\
+Export determination: 6. \\
+Rationale: CHG: import new pdd in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#152} with diff file ISSM-19258-19259.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp\\
+Export determination: 6. \\
+Rationale: CHG: revert copy of Pengrid\\
+\vspace{3em}
+
+\noindent \textbf{Change \#153} with diff file ISSM-19259-19260.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py\\
+Export determination: 6. \\
+Rationale: CHG: change indentation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#154} with diff file ISSM-19260-19261.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed indentation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#155} with diff file ISSM-19261-19262.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp\\
+Export determination: 6. \\
+Rationale: CHG: clean up and reset file param for output file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#156} with diff file ISSM-19262-19263.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/clusters/acenet.m\\
+Export determination: 6. \\
+Rationale: last line of pdd variables was not marshalled properly\\
+\vspace{3em}
+
+\noindent \textbf{Change \#157} with diff file ISSM-19263-19264.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/test/Archives/Archive236.nc M /issm/trunk-jpl/test/Archives/Archive237.nc M /issm/trunk-jpl/test/Archives/Archive238.nc M /issm/trunk-jpl/test/Archives/Archive239.nc M /issm/trunk-jpl/test/Archives/Archive240.nc\\
+Export determination: 6. \\
+Rationale: CHG: use timeserieslength in writedata instead of explicit conversion using yts\\
+\vspace{3em}
+
+\noindent \textbf{Change \#158} with diff file ISSM-19264-19265.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py\\
+Export determination: 6. \\
+Rationale: CHG: update so all Pdd precipitations are stored in datasets as m/s\\
+\vspace{3em}
+
+\noindent \textbf{Change \#159} with diff file ISSM-19265-19266.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive236.nc M /issm/trunk-jpl/test/Archives/Archive237.nc M /issm/trunk-jpl/test/Archives/Archive238.nc M /issm/trunk-jpl/test/Archives/Archive239.nc M /issm/trunk-jpl/test/Archives/Archive240.nc\\
+Export determination: 6. \\
+Rationale: CHG: update Archives to reflect correct units in delta018 forcing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#160} with diff file ISSM-19266-19267.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: BUG: use presentday instead of lgm\\
+\vspace{3em}
+
+\noindent \textbf{Change \#161} with diff file ISSM-19267-19268.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.h\\
+Export determination: 6. \\
+Rationale: CHG: computing vertical velocities from the surface\\
+\vspace{3em}
+
+\noindent \textbf{Change \#162} with diff file ISSM-19268-19269.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Elements/ComputeMungsmTemperaturePrecipitation.cpp\\
+Export determination: 6. \\
+Rationale: CHG: remove the yts pdd conversion in create parameters\\
+\vspace{3em}
+
+\noindent \textbf{Change \#163} with diff file ISSM-19269-19270.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive236.nc M /issm/trunk-jpl/test/Archives/Archive238.nc M /issm/trunk-jpl/test/Archives/Archive239.nc\\
+Export determination: 6. \\
+Rationale: CHG: revert archives after removing model processor conversion with yts\\
+\vspace{3em}
+
+\noindent \textbf{Change \#164} with diff file ISSM-19270-19271.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: updating PDD nightly run 237 and 240\\
+\vspace{3em}
+
+\noindent \textbf{Change \#165} with diff file ISSM-19271-19272.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive237.nc\\
+Export determination: 6. \\
+Rationale: updating Archives of PDD nightly run 237 and 240\\
+\vspace{3em}
+
+\noindent \textbf{Change \#166} with diff file ISSM-19272-19273.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive240.nc\\
+Export determination: 6. \\
+Rationale: updating Archives of PDD nightly run 237 and 240\\
+\vspace{3em}
+
+\noindent \textbf{Change \#167} with diff file ISSM-19273-19274.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive240.nc M /issm/trunk-jpl/test/NightlyRun/test240.m\\
+Export determination: 6. \\
+Rationale: CHG: revert test240 back to higher frequency time steps\\
+\vspace{3em}
+
+\noindent \textbf{Change \#168} with diff file ISSM-19274-19275.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: allocate pdd matrices as xNew<IssmDouble>\\
+\vspace{3em}
+
+\noindent \textbf{Change \#169} with diff file ISSM-19275-19276.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: cleanup created pdd arrays\\
+\vspace{3em}
+
+\noindent \textbf{Change \#170} with diff file ISSM-19276-19277.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: removed SMB from Helene\\
+\vspace{3em}
+
+\noindent \textbf{Change \#171} with diff file ISSM-19277-19278.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.py\\
+Export determination: 6. \\
+Rationale: CHG: update pdd test to catch yts conversion\\
+\vspace{3em}
+
+\noindent \textbf{Change \#172} with diff file ISSM-19278-19279.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.py\\
+Export determination: 6. \\
+Rationale: BUG: need to use python indexing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#173} with diff file ISSM-19279-19280.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py\\
+Export determination: 6. \\
+Rationale: BUG: dpermil should be only a double\\
+\vspace{3em}
+
+\noindent \textbf{Change \#174} with diff file ISSM-19280-19281.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: CHG: fix the timestepping to match matlab tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#175} with diff file ISSM-19281-19282.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/install-win.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added a comment to explain the path to libtool.m4.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#176} with diff file ISSM-19282-19283.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp\\
+Export determination: 6. \\
+Rationale: CHG: some marshalling cleanup of memory and warnings\\
+\vspace{3em}
+
+\noindent \textbf{Change \#177} with diff file ISSM-19283-19284.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: need to add gcc to path for this script\\
+\vspace{3em}
+
+\noindent \textbf{Change \#178} with diff file ISSM-19284-19285.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/src/m/consistency/checkfield.m M /issm/trunk-jpl/src/m/consistency/checkfield.py\\
+Export determination: 6. \\
+Rationale: CHG: Add check for transient param, only 2 rows, for pdd\\
+\vspace{3em}
+
+\noindent \textbf{Change \#179} with diff file ISSM-19285-19286.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/src/m/consistency/checkfield.m M /issm/trunk-jpl/src/m/consistency/checkfield.py\\
+Export determination: 6. \\
+Rationale: CHG: create new consistency label singletimeseries for 2 row forcings\\
+\vspace{3em}
+
+\noindent \textbf{Change \#180} with diff file ISSM-19286-19287.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/c/main/esmfbinders.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: CHG: first implementation of the esmf compliant binders for ISSM. Inspired from Bin Zhao's work at Goddard GMAO. The esmf binders consist of three binders: InitializeISSM, RunISSM and FinalizeISSm, which mirror the main.cpp structure. These binders will be linked to the GEOS-5 framework, so they are compiled in the libISSMCore only. The InitializeISSM is concerned mainly with bypassing the forcings that were initialized in ModelProcessorx with the forcings coming from the GEOS-5 framework. This is accomplished by plugging IssmDouble inputs (from the gcm forcings) into each element. SurfaceMassBalancex is then modified to basically ignore the initial setup (for a standard ISSM run) in favor of the forcing we just plugged in. RunISSM is concerned (for now) with setting the start and final times according to the specified GEOS-5 dt interval to be run. FinalizeISSm deletes the ISSM model, standard procedure.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#181} with diff file ISSM-19287-19288.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/enum/SMBgcmEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: forcog to commit the SMBgcmEnum for the GEOS-5/ISSM coupling.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#182} with diff file ISSM-19288-19289.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m\\
+Export determination: 6. \\
+Rationale: CHG: minor tweaks. Main bug was the issue of the algorithm for initial meshing in gmsh, which should be 'meshadapt' instead of 'bamg.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#183} with diff file ISSM-19289-19290.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/esmfbinders.cpp\\
+Export determination: 6. \\
+Rationale: CHG: switch to local numbering.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#184} with diff file ISSM-19290-19291.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: do not change spc from m/yr to m/s, it is already in m/s\\
+\vspace{3em}
+
+\noindent \textbf{Change \#185} with diff file ISSM-19291-19292.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixed spc transient in SIA (if no coupling)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#186} with diff file ISSM-19292-19293.diff: \\
+Function name: \\
+M /issm/trunk-jpl\\
+Export determination: 6. \\
+Rationale: CHG: ignore another compile path.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#187} with diff file ISSM-19293-19294.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/bamg/BamgVertex.h M /issm/trunk-jpl/src/c/bamg/Mesh.cpp M /issm/trunk-jpl/src/c/bamg/Triangle.h\\
+Export determination: 6. \\
+Rationale: BUG: fixed some crash due to new g++ compiler\\
+\vspace{3em}
+
+\noindent \textbf{Change \#188} with diff file ISSM-19294-19295.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/flowequation.m M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/stressbalance.py\\
+Export determination: 6. \\
+Rationale: CHG: allow models to have no spc, but display warning\\
+\vspace{3em}
+
+\noindent \textbf{Change \#189} with diff file ISSM-19295-19296.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/valgrind/install-macosx64.sh\\
+Export determination: 6. \\
+Rationale: CHG: for mac OS X, use svn co instead of current release\\
+\vspace{3em}
+
+\noindent \textbf{Change \#190} with diff file ISSM-19296-19297.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl A /issm/trunk-jpl/src/m/psl/gmtOcean.m A /issm/trunk-jpl/src/m/psl/gmtResults.m A /issm/trunk-jpl/src/m/psl/icelm.m A /issm/trunk-jpl/src/m/psl/intro.m A /issm/trunk-jpl/src/m/psl/lonLat.m A /issm/trunk-jpl/src/m/psl/oceFun.m A /issm/trunk-jpl/src/m/psl/ocelm.m A /issm/trunk-jpl/src/m/psl/results.m A /issm/trunk-jpl/src/m/psl/selm.m A /issm/trunk-jpl/src/m/psl/xplm.m A /issm/trunk-jpl/src/m/psl/xxlm.m A /issm/trunk-jpl/src/m/psl/yplm.m A /issm/trunk-jpl/src/m/psl/yylm.m A /issm/trunk-jpl/src/m/psl/zelm.m\\
+Export determination: 6. \\
+Rationale: a new folder with functions related to PSL model (elastic earth)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#191} with diff file ISSM-19297-19298.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl/sharmonics.m\\
+Export determination: 6. \\
+Rationale: a function to compute spherical harmonics\\
+\vspace{3em}
+
+\noindent \textbf{Change \#192} with diff file ISSM-19298-19299.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m\\
+Export determination: 6. \\
+Rationale: CHG: to remove gmt.history\\
+\vspace{3em}
+
+\noindent \textbf{Change \#193} with diff file ISSM-19299-19300.diff: \\
+Function name: \\
+M /issm/trunk-jpl/etc/environment.csh M /issm/trunk-jpl/etc/environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: added CURL support\\
+\vspace{3em}
+
+\noindent \textbf{Change \#194} with diff file ISSM-19302-19303.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: BUG: time adapt was not implemented correctly...\\
+\vspace{3em}
+
+\noindent \textbf{Change \#195} with diff file ISSM-19306-19307.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/controlad\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: using the right constructor.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#196} with diff file ISSM-19307-19308.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/main/esmfbinders.cpp\\
+Export determination: 6. \\
+Rationale: CHG: unhooking check pointing and restart from transientcore. Hardcoding it into the esmfbinders.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#197} with diff file ISSM-19308-19309.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test236.m M /issm/trunk-jpl/test/NightlyRun/test236.py M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test238.m M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.m M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.m M /issm/trunk-jpl/test/NightlyRun/test240.py\\
+Export determination: 6. \\
+Rationale: CHG: set s0p and s0t in tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#198} with diff file ISSM-19309-19310.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py\\
+Export determination: 6. \\
+Rationale: Make s0p and s0t inputs instead of parameters\\
+\vspace{3em}
+
+\noindent \textbf{Change \#199} with diff file ISSM-19310-19311.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/psl/ocelm.m\\
+Export determination: 6. \\
+Rationale: weighted area integration over the surface of a sphere\\
+\vspace{3em}
+
+\noindent \textbf{Change \#200} with diff file ISSM-19311-19312.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/geometry/GetAreas3DTria.m\\
+Export determination: 6. \\
+Rationale: area of triangle with 3D vertices\\
+\vspace{3em}
+
+\noindent \textbf{Change \#201} with diff file ISSM-19312-19313.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/cython/install-22.sh\\
+Export determination: 6. \\
+Rationale: CHG: 22 version\\
+\vspace{3em}
+
+\noindent \textbf{Change \#202} with diff file ISSM-19313-19314.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cython/install-22.sh\\
+Export determination: 6. \\
+Rationale: CHG: fixing bug.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#203} with diff file ISSM-19314-19315.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cython/install-22.sh\\
+Export determination: 6. \\
+Rationale: CHG: fixing bug.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#204} with diff file ISSM-19315-19316.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive226.nc M /issm/trunk-jpl/test/Archives/Archive227.nc M /issm/trunk-jpl/test/Archives/Archive323.nc M /issm/trunk-jpl/test/Archives/Archive324.nc M /issm/trunk-jpl/test/NightlyRun/test226.m M /issm/trunk-jpl/test/NightlyRun/test226.py M /issm/trunk-jpl/test/NightlyRun/test227.m M /issm/trunk-jpl/test/NightlyRun/test227.py M /issm/trunk-jpl/test/NightlyRun/test323.m M /issm/trunk-jpl/test/NightlyRun/test323.py M /issm/trunk-jpl/test/NightlyRun/test324.m M /issm/trunk-jpl/test/NightlyRun/test324.py\\
+Export determination: 6. \\
+Rationale: CHG: updated archives now that CFL IS working\\
+\vspace{3em}
+
+\noindent \textbf{Change \#205} with diff file ISSM-19316-19317.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/maskpsl.m\\
+Export determination: 6. \\
+Rationale: a new class to define the ocean mask\\
+\vspace{3em}
+
+\noindent \textbf{Change \#206} with diff file ISSM-19317-19318.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/settings.m M /issm/trunk-jpl/src/m/classes/settings.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py D /issm/trunk-jpl/src/m/enum/SettingsRestartFrequencyEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: reintroducing checkpointing, but not driven by the esmfbinders. We rename it, following advice from Max Suarez, recording, not checkpointing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#207} with diff file ISSM-19318-19319.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/settings.m M /issm/trunk-jpl/src/m/classes/settings.py\\
+Export determination: 6. \\
+Rationale: CHG: changed display for recording\_frequency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#208} with diff file ISSM-19319-19320.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/psl/sharmonics.m\\
+Export determination: 6. \\
+Rationale: minor changes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#209} with diff file ISSM-19320-19321.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test324.py\\
+Export determination: 6. \\
+Rationale: CHG: wrong final time\\
+\vspace{3em}
+
+\noindent \textbf{Change \#210} with diff file ISSM-19321-19322.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-discover-intel13.sh D /issm/trunk-jpl/configs/config-discover.sh M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Updates for discover intel13\\
+\vspace{3em}
+
+\noindent \textbf{Change \#211} with diff file ISSM-19322-19323.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-discover-intel11.sh (from /issm/trunk-jpl/configs/config-discover.sh:19307)\\
+Export determination: 6. \\
+Rationale: CHG: Updates for discover intel13\\
+\vspace{3em}
+
+\noindent \textbf{Change \#212} with diff file ISSM-19323-19324.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl/shlm.m\\
+Export determination: 6. \\
+Rationale: a generic function to compute SH coefficients\\
+\vspace{3em}
+
+\noindent \textbf{Change \#213} with diff file ISSM-19324-19325.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/psl/icelm.m D /issm/trunk-jpl/src/m/psl/ocelm.m\\
+Export determination: 6. \\
+Rationale: these are not needed; now a generic function defined\\
+\vspace{3em}
+
+\noindent \textbf{Change \#214} with diff file ISSM-19325-19326.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/shared/Elements/PddSurfaceMassBalance.cpp M /issm/trunk-jpl/src/c/shared/Elements/elements.h\\
+Export determination: 6. \\
+Rationale: CHG: make accumulation and melt outputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#215} with diff file ISSM-19326-19327.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: CHG: update units for accumulation and melt\\
+\vspace{3em}
+
+\noindent \textbf{Change \#216} with diff file ISSM-19327-19328.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/esmfbinders.cpp\\
+Export determination: 6. \\
+Rationale: CHG: changing unit of conversion from GEOS-5 to ISSM.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#217} with diff file ISSM-19328-19329.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/classes/clusters/castor.m M /issm/trunk-jpl/src/m/classes/clusters/cloud.m M /issm/trunk-jpl/src/m/classes/clusters/cosmos.m M /issm/trunk-jpl/src/m/classes/clusters/discover.m M /issm/trunk-jpl/src/m/classes/clusters/gemini.m M /issm/trunk-jpl/src/m/classes/clusters/generic.m M /issm/trunk-jpl/src/m/classes/clusters/generic.py M /issm/trunk-jpl/src/m/classes/clusters/generic\_static.m M /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m M /issm/trunk-jpl/src/m/classes/clusters/hpc.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/classes/clusters/pollux.m A /issm/trunk-jpl/src/m/enum/SettingsRecordingFrequencyEnum.m M /issm/trunk-jpl/src/m/solve/solve.m M /issm/trunk-jpl/src/m/solve/solve.py\\
+Export determination: 6. \\
+Rationale: CHG: committing missing SettingsRecordingFrequencyEnum enum. Split the LaunchQueueJob into UploadQueueJob and DownloadQueueJob, so we can do restarts without tarring the queue files twice.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#218} with diff file ISSM-19329-19330.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test324.m M /issm/trunk-jpl/test/NightlyRun/test324.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed several fields on test324 for both Matlab and Python to fix ERRORS on Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#219} with diff file ISSM-19330-19331.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi M /issm/trunk-jpl/jenkins/linux64\_murdo\_gia M /issm/trunk-jpl/jenkins/linux64\_murdo\_iceocean\\
+Export determination: 6. \\
+Rationale: CHG: Specified the SVN and SVNVERSION variables to speed up Jenkins builds.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#220} with diff file ISSM-19331-19332.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m\\
+Export determination: 6. \\
+Rationale: CHG: greenplanet back in production\\
+\vspace{3em}
+
+\noindent \textbf{Change \#221} with diff file ISSM-19332-19333.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/MeshProfileIntersectionx/MeshProfileIntersectionx.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixed problem in O1O2==0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#222} with diff file ISSM-19333-19334.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp\\
+Export determination: 6. \\
+Rationale: CHG: retrieve step from the ModelProcessorx given value instead of hardcoding it to 0 at the beginning of the transient core. We also give it a value of 0 instead of 1 in the ModelProcessorx. This is to allow the steps to increment correctly (instead of resetting) when running restart and checkpointing in a couple GCM/ISSM run.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#223} with diff file ISSM-19334-19335.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: move checkpoint after outputresult\\
+\vspace{3em}
+
+\noindent \textbf{Change \#224} with diff file ISSM-19335-19336.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/classes/clusters/castor.m M /issm/trunk-jpl/src/m/classes/clusters/cloud.m M /issm/trunk-jpl/src/m/classes/clusters/cosmos.m M /issm/trunk-jpl/src/m/classes/clusters/discover.m M /issm/trunk-jpl/src/m/classes/clusters/gemini.m M /issm/trunk-jpl/src/m/classes/clusters/generic.m M /issm/trunk-jpl/src/m/classes/clusters/generic.py M /issm/trunk-jpl/src/m/classes/clusters/generic\_static.m M /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m M /issm/trunk-jpl/src/m/classes/clusters/hpc.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/classes/clusters/pollux.m M /issm/trunk-jpl/src/m/solve/loadresultsfromcluster.m M /issm/trunk-jpl/src/m/solve/solve.m M /issm/trunk-jpl/src/m/solve/solve.py\\
+Export determination: 6. \\
+Rationale: CHG: need to pass restart to clusters so they have the correct launch command\\
+\vspace{3em}
+
+\noindent \textbf{Change \#225} with diff file ISSM-19336-19337.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.m M /issm/trunk-jpl/src/m/plot/plot\_tensor\_components.m M /issm/trunk-jpl/src/m/plot/plot\_tensor\_principal.m M /issm/trunk-jpl/src/m/plot/plot\_tensor\_principalaxis.m M /issm/trunk-jpl/src/m/plot/plot\_vstime.m M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py D /issm/trunk-jpl/src/m/string/strsplit.m M /issm/trunk-jpl/src/m/string/strsplit\_strict.m\\
+Export determination: 6. \\
+Rationale: BUG: removed strsplit since it is conflicting with matlab's since 2013\\
+\vspace{3em}
+
+\noindent \textbf{Change \#226} with diff file ISSM-19337-19338.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test215.m M /issm/trunk-jpl/test/NightlyRun/test215.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed parameters for test215.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#227} with diff file ISSM-19338-19339.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive125.nc A /issm/trunk-jpl/test/Archives/Archive126.nc A /issm/trunk-jpl/test/NightlyRun/test125.m A /issm/trunk-jpl/test/NightlyRun/test125.py A /issm/trunk-jpl/test/NightlyRun/test126.m A /issm/trunk-jpl/test/NightlyRun/test126.py\\
+Export determination: 6. \\
+Rationale: NEW: checkpoint tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#228} with diff file ISSM-19339-19340.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl/p\_polynomial\_value.m\\
+Export determination: 6. \\
+Rationale: a function to compute legendre polynomials (order 0)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#229} with diff file ISSM-19340-19341.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h\\
+Export determination: 6. \\
+Rationale: BUG: initialize value with 0 instead of NULL in template\\
+\vspace{3em}
+
+\noindent \textbf{Change \#230} with diff file ISSM-19341-19342.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/psl/p\_polynomial\_value.m\\
+Export determination: 6. \\
+Rationale: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#231} with diff file ISSM-19342-19343.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl/shlm\_element.m\\
+Export determination: 6. \\
+Rationale: to compute SH at element centroids. will combine this with shlm.m later\\
+\vspace{3em}
+
+\noindent \textbf{Change \#232} with diff file ISSM-19343-19344.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: CHG: trying to address the issue of time steps being recorded in the results. If step=0, we are running everything except a transient . Only one step, time =0. If step=-1, we are a result that belongs nowhere (for ex: solutoin type), plug it in step=1, time=0; If step>0, legitimate transient step.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#233} with diff file ISSM-19344-19345.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/ad\_core.cpp M /issm/trunk-jpl/src/c/cores/control\_core.cpp M /issm/trunk-jpl/src/c/cores/controlad\_core.cpp M /issm/trunk-jpl/src/c/cores/controlvalidation\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: add results at step 0,0 instead of 1,0 (which would imply a transient)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#234} with diff file ISSM-19345-19346.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/controlm1qn3\_core.cpp M /issm/trunk-jpl/src/c/cores/controltao\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: results should be in steady state mode.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#235} with diff file ISSM-19346-19347.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_murdo\_python\\
+Export determination: 6. \\
+Rationale: ADD: New python linux64 jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#236} with diff file ISSM-19347-19348.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temp change to track python jenkins issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#237} with diff file ISSM-19348-19349.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py\\
+Export determination: 6. \\
+Rationale: CHG: transmitting new way of dealing with steps -1, 0 and 1 in the parseresultsfromdisk from matlab to python.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#238} with diff file ISSM-19349-19350.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/plot/colormaps/bluewhitered\_smooth.m M /issm/trunk-jpl/src/m/plot/colormaps/lbmap.m\\
+Export determination: 6. \\
+Rationale: NEW: adding colormaps\\
+\vspace{3em}
+
+\noindent \textbf{Change \#239} with diff file ISSM-19350-19351.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temp change to track python jenkins issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#240} with diff file ISSM-19351-19352.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temp change to track python jenkins issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#241} with diff file ISSM-19352-19353.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temp change to track python jenkins issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#242} with diff file ISSM-19353-19354.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Temp change to track python jenkins issue. Dumping raw output to Jenkins console.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#243} with diff file ISSM-19354-19355.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Restored redirection of python output to log files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#244} with diff file ISSM-19355-19356.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Restored redirection of python output to log files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#245} with diff file ISSM-19356-19357.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Windows binaries are missing matlab code. Checking contents of bin dir.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#246} with diff file ISSM-19357-19358.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Fix to windows missing Matlab scripts in MSI.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#247} with diff file ISSM-19358-19359.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added sourcing of Windows environment script for jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#248} with diff file ISSM-19359-19360.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added a line to jenkins script to check for sourcing of windows environment script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#249} with diff file ISSM-19360-19361.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Fixed order issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#250} with diff file ISSM-19361-19362.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: restored development option to Windows jenkins script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#251} with diff file ISSM-19362-19363.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Moved matlab scripts to bin directory in packager script for Windows.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#252} with diff file ISSM-19363-19364.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/TemperaturePDDEnum.m\\
+Export determination: 6. \\
+Rationale: fix surface temperature forcing bug for pdd method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#253} with diff file ISSM-19364-19365.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive237.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated archive now that PDD scheme has been changed\\
+\vspace{3em}
+
+\noindent \textbf{Change \#254} with diff file ISSM-19365-19366.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Moved matlab scripts to bin directory in packager script for Windows.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#255} with diff file ISSM-19366-19367.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Hopefully the final change to win7 packger script to copy over Matlab scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#256} with diff file ISSM-19367-19368.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Hopefully the final change to win7 packger script to copy over Matlab scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#257} with diff file ISSM-19368-19369.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/win7/package64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Testing copy of Matlab scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#258} with diff file ISSM-19369-19370.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/psl/gmtOcean.m D /issm/trunk-jpl/src/m/psl/gmtResults.m D /issm/trunk-jpl/src/m/psl/intro.m D /issm/trunk-jpl/src/m/psl/lonLat.m D /issm/trunk-jpl/src/m/psl/oceFun.m M /issm/trunk-jpl/src/m/psl/p\_polynomial\_value.m D /issm/trunk-jpl/src/m/psl/results.m D /issm/trunk-jpl/src/m/psl/selm.m M /issm/trunk-jpl/src/m/psl/sharmonics.m M /issm/trunk-jpl/src/m/psl/shlm.m M /issm/trunk-jpl/src/m/psl/shlm\_element.m D /issm/trunk-jpl/src/m/psl/xplm.m D /issm/trunk-jpl/src/m/psl/xxlm.m D /issm/trunk-jpl/src/m/psl/yplm.m D /issm/trunk-jpl/src/m/psl/yylm.m D /issm/trunk-jpl/src/m/psl/zelm.m\\
+Export determination: 6. \\
+Rationale: functions related to SH formulation of PSL model removed\\
+\vspace{3em}
+
+\noindent \textbf{Change \#259} with diff file ISSM-19370-19371.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m M /issm/trunk-jpl/test/NightlyRun/IdFromString.m\\
+Export determination: 6. \\
+Rationale: BUG: put time back in\\
+\vspace{3em}
+
+\noindent \textbf{Change \#260} with diff file ISSM-19371-19372.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: minor pdd fix\\
+\vspace{3em}
+
+\noindent \textbf{Change \#261} with diff file ISSM-19372-19373.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test432.m M /issm/trunk-jpl/test/NightlyRun/test432.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed test 432 parameter.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#262} with diff file ISSM-19373-19374.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/frictionwaterlayer.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FrictionFEnum.m M /issm/trunk-jpl/test/Archives/Archive438.nc M /issm/trunk-jpl/test/Archives/Archive439.nc M /issm/trunk-jpl/test/NightlyRun/test438.m M /issm/trunk-jpl/test/NightlyRun/test439.m\\
+Export determination: 6. \\
+Rationale: CHG: updated friction law water layer for Derrick\\
+\vspace{3em}
+
+\noindent \textbf{Change \#263} with diff file ISSM-19374-19375.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive237.nc\\
+Export determination: 6. \\
+Rationale: CHG: new archive of PDD scheme\\
+\vspace{3em}
+
+\noindent \textbf{Change \#264} with diff file ISSM-19375-19376.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Improved libtool.m4 patch for Windows build. Patch now has fewer unrecognized flags during linking and can now "rebuild" objects when they have too many source files. CHG: Both makefiles now build convinience libraries during Windows builds.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#265} with diff file ISSM-19376-19377.diff: \\
+Function name: \\
+M /issm/trunk-jpl/scripts/automakererun.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added force flag to automakererun.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#266} with diff file ISSM-19377-19378.diff: \\
+Function name: \\
+M /issm/trunk-jpl/scripts/automakererun.sh\\
+Export determination: 6. \\
+Rationale: CHG: Removed force flag force flag.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#267} with diff file ISSM-19378-19379.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Removing temporary fix to Windows dependency issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#268} with diff file ISSM-19379-19380.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/adinversion.py A /issm/trunk-jpl/src/m/classes/taoinversion.py\\
+Export determination: 6. \\
+Rationale: ADD: new pythong scripts for tao an ad inversions. Provided by Andre Ismailyan.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#269} with diff file ISSM-19380-19381.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.py\\
+Export determination: 6. \\
+Rationale: BUG: somehow the overlay values get flipped\\
+\vspace{3em}
+
+\noindent \textbf{Change \#270} with diff file ISSM-19381-19382.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py A /issm/trunk-jpl/src/m/enum/DamageKappaEnum.m D /issm/trunk-jpl/src/m/enum/DamagePenaltyFactorEnum.m D /issm/trunk-jpl/src/m/enum/DamagePenaltyLockEnum.m D /issm/trunk-jpl/src/m/enum/DamagePenaltyThresholdEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: CHG: updating damage calculation as the result of a stress balance solution; getting rid of unused penalty variables; adding kappa variable to damage class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#271} with diff file ISSM-19382-19383.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive273.nc A /issm/trunk-jpl/test/NightlyRun/test273.m A /issm/trunk-jpl/test/NightlyRun/test273.py\\
+Export determination: 6. \\
+Rationale: NEW: nightly run for analytical damage calculation from the results of a stress balance solution\\
+\vspace{3em}
+
+\noindent \textbf{Change \#272} with diff file ISSM-19383-19384.diff: \\
+Function name: \\
+D /issm/trunk-jpl/test/Archives/Archive271.nc D /issm/trunk-jpl/test/NightlyRun/test271.m D /issm/trunk-jpl/test/NightlyRun/test271.py M /issm/trunk-jpl/test/NightlyRun/test275.m M /issm/trunk-jpl/test/NightlyRun/test275.py\\
+Export determination: 6. \\
+Rationale: CHG: deleted test271 as it was redundant with 275; gave 275 a more descriptive name\\
+\vspace{3em}
+
+\noindent \textbf{Change \#273} with diff file ISSM-19384-19385.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py\\
+Export determination: 6. \\
+Rationale: CHG: no source term for damage evolution if law=0; damage updated in stress balance\\
+\vspace{3em}
+
+\noindent \textbf{Change \#274} with diff file ISSM-19385-19386.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp\\
+Export determination: 6. \\
+Rationale: CHG: replaced M\_PI with PI.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#275} with diff file ISSM-19386-19387.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.h M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/cores/damage\_core.cpp M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_fct.cpp M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py M /issm/trunk-jpl/src/m/mech/mechanicalproperties.m M /issm/trunk-jpl/src/m/mech/mechanicalproperties.py\\
+Export determination: 6. \\
+Rationale: CHG: working to implement flux corrected transport for damage evolution\\
+\vspace{3em}
+
+\noindent \textbf{Change \#276} with diff file ISSM-19387-19388.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py\\
+Export determination: 6. \\
+Rationale: CHG: updating description of damage law\\
+\vspace{3em}
+
+\noindent \textbf{Change \#277} with diff file ISSM-19388-19389.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/cores/damage\_core.cpp A /issm/trunk-jpl/src/c/modules/Damagex A /issm/trunk-jpl/src/c/modules/Damagex/Damagex.cpp A /issm/trunk-jpl/src/c/modules/Damagex/Damagex.h M /issm/trunk-jpl/src/c/modules/modules.h\\
+Export determination: 6. \\
+Rationale: NEW: module for handling analytical damage calculation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#278} with diff file ISSM-19389-19390.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh\\
+Export determination: 6. \\
+Rationale: ADD: New installation script for parallel Petsc version 3.5\\
+\vspace{3em}
+
+\noindent \textbf{Change \#279} with diff file ISSM-19390-19391.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/configs/sdk7.1-win64.sh M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/m/classes/clusters/generic.m M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Added MPI variables to sdk 7.1 Win64 environment script. CHG: New option for parallel Win64 CHG: Added contional to set number of processes to 1 when Windows build is not parallel. CHG: Added ability to for IssmConfig to recognize when Petsc provides MPI.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#280} with diff file ISSM-19391-19392.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Fixed mistake in IssmConfig.cpp\\
+\vspace{3em}
+
+\noindent \textbf{Change \#281} with diff file ISSM-19392-19393.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.py\\
+Export determination: 6. \\
+Rationale: BUG: some fixes in case model fields are NaN when collapse is called for a python model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#282} with diff file ISSM-19393-19394.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test272.m M /issm/trunk-jpl/test/NightlyRun/test272.py\\
+Export determination: 6. \\
+Rationale: CHG: updated name of damage inversion runs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#283} with diff file ISSM-19394-19395.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: check stabilization when setting up constraints\\
+\vspace{3em}
+
+\noindent \textbf{Change \#284} with diff file ISSM-19395-19396.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Seg.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: change element Marshall to MarshallElement\\
+\vspace{3em}
+
+\noindent \textbf{Change \#285} with diff file ISSM-19396-19397.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: changes for Windows parallel build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#286} with diff file ISSM-19397-19398.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/windows-par M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: added logic for Windows-par and Jenkins file for Windows-par as well.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#287} with diff file ISSM-19398-19399.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.5-win-par.sh\\
+Export determination: 6. \\
+Rationale: CHG: changed install dir of MPICH for windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#288} with diff file ISSM-19399-19400.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/Damagex/Damagex.h\\
+Export determination: 6. \\
+Rationale: BUG: fixed typo\\
+\vspace{3em}
+
+\noindent \textbf{Change \#289} with diff file ISSM-19400-19401.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh\\
+Export determination: 6. \\
+Rationale: NEW: added install-3.6-macosx64.sh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#290} with diff file ISSM-19401-19402.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh\\
+Export determination: 6. \\
+Rationale: NEW: added install-3.6-linux64.sh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#291} with diff file ISSM-19402-19403.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh\\
+Export determination: 6. \\
+Rationale: added new petsc 3.6 for pleaides\\
+\vspace{3em}
+
+\noindent \textbf{Change \#292} with diff file ISSM-19403-19404.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh\\
+Export determination: 6. \\
+Rationale: CHG: fixed installation with new mpi\\
+\vspace{3em}
+
+\noindent \textbf{Change \#293} with diff file ISSM-19404-19405.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh\\
+Export determination: 6. \\
+Rationale: CHG: updated mpilib install-3.6-pleiades.sh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#294} with diff file ISSM-19405-19406.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.m\\
+Export determination: 6. \\
+Rationale: BUG: updated plotoptions bug for \#i-j\\
+\vspace{3em}
+
+\noindent \textbf{Change \#295} with diff file ISSM-19407-19408.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: fixed MKL\\
+\vspace{3em}
+
+\noindent \textbf{Change \#296} with diff file ISSM-19408-19409.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/contrib/netCDF/read\_netCDF.py\\
+Export determination: 6. \\
+Rationale: NEW: buggy python netcdf reader\\
+\vspace{3em}
+
+\noindent \textbf{Change \#297} with diff file ISSM-19409-19410.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch M /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.pfe.patch\\
+Export determination: 6. \\
+Rationale: CHG: update patch for new mpi\\
+\vspace{3em}
+
+\noindent \textbf{Change \#298} with diff file ISSM-19410-19411.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/boost/install-1.49-linux.sh A /issm/trunk-jpl/externalpackages/boost/install-1.55-linux.sh\\
+Export determination: 6. \\
+Rationale: CHG: install 1.55 boost\\
+\vspace{3em}
+
+\noindent \textbf{Change \#299} with diff file ISSM-19411-19412.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-linux64.sh\\
+Export determination: 6. \\
+Rationale: CHG: dakota install for linux\\
+\vspace{3em}
+
+\noindent \textbf{Change \#300} with diff file ISSM-19412-19413.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/install-1.55-macosx-yosemite.sh\\
+Export determination: 6. \\
+Rationale: NEW: yosemite install for boost\\
+\vspace{3em}
+
+\noindent \textbf{Change \#301} with diff file ISSM-19413-19414.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-yosemite-dakota.sh\\
+Export determination: 6. \\
+Rationale: NEW: use gfortran compilers if linking with dakota\\
+\vspace{3em}
+
+\noindent \textbf{Change \#302} with diff file ISSM-19414-19415.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: NEW: yosemite build for mac\\
+\vspace{3em}
+
+\noindent \textbf{Change \#303} with diff file ISSM-19415-19416.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-macosx64-dakota.sh\\
+Export determination: 6. \\
+Rationale: NEW: dakota script for mac\\
+\vspace{3em}
+
+\noindent \textbf{Change \#304} with diff file ISSM-19416-19417.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: modules are now a dynamic field of pfe\\
+\vspace{3em}
+
+\noindent \textbf{Change \#305} with diff file ISSM-19417-19418.diff: \\
+Function name: \\
+M /issm/trunk-jpl/configs/config-macosx64-dakota.sh\\
+Export determination: 6. \\
+Rationale: CHG: remove unneeded includes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#306} with diff file ISSM-19418-19419.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch M /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-pleiades.sh\\
+Export determination: 6. \\
+Rationale: CHG: add special patch for pfe\\
+\vspace{3em}
+
+\noindent \textbf{Change \#307} with diff file ISSM-19419-19420.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.patch M /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.pfe.patch\\
+Export determination: 6. \\
+Rationale: CHG: update patches for pfe and linux\\
+\vspace{3em}
+
+\noindent \textbf{Change \#308} with diff file ISSM-19420-19421.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/boost/install-1.49-linux.sh\\
+Export determination: 6. \\
+Rationale: CHG: remove boost static link\\
+\vspace{3em}
+
+\noindent \textbf{Change \#309} with diff file ISSM-19421-19422.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/exp/expdisp.py M /issm/trunk-jpl/src/m/exp/expwrite.py\\
+Export determination: 6. \\
+Rationale: CHG:Python: adding expdisp module; updating expwrite so that a dict is passed rather than a list of dicts to fix a bug with multiple contours/polygons/lines in a shapefile\\
+\vspace{3em}
+
+\noindent \textbf{Change \#310} with diff file ISSM-19422-19423.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/shp/shp2exp.py\\
+Export determination: 6. \\
+Rationale: CHG:Python: fixing shp2exp to handle polygon layers and shapefiles with multiple contours\\
+\vspace{3em}
+
+\noindent \textbf{Change \#311} with diff file ISSM-19423-19424.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/shp/shp2exp.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed shp2exp for line shapefiles\\
+\vspace{3em}
+
+\noindent \textbf{Change \#312} with diff file ISSM-19424-19425.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py M /issm/trunk-jpl/src/m/plot/plot\_manager.py M /issm/trunk-jpl/src/m/plot/plot\_overlay.py M /issm/trunk-jpl/src/m/plot/plotmodel.py\\
+Export determination: 6. \\
+Rationale: CHG: updates to python plotting routines\\
+\vspace{3em}
+
+\noindent \textbf{Change \#313} with diff file ISSM-19425-19426.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.py\\
+Export determination: 6. \\
+Rationale: BUG: forgot try/catch in case Basemap toolkit not installed\\
+\vspace{3em}
+
+\noindent \textbf{Change \#314} with diff file ISSM-19426-19427.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/checkplotoptions.py\\
+Export determination: 6. \\
+Rationale: BUG: textposition can be passed as a list or a nested list; fix to handle this\\
+\vspace{3em}
+
+\noindent \textbf{Change \#315} with diff file ISSM-19427-19428.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/triangle/configs/libtool A /issm/trunk-jpl/externalpackages/triangle/configs/libtool/Makefile.am A /issm/trunk-jpl/externalpackages/triangle/configs/libtool/configure.ac A /issm/trunk-jpl/externalpackages/triangle/configs/libtool/src A /issm/trunk-jpl/externalpackages/triangle/configs/libtool/src/Makefile.am D /issm/trunk-jpl/externalpackages/triangle/configs/triangle-libtool.tar.gz M /issm/trunk-jpl/externalpackages/triangle/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: modified the Triangle libtool build to not use a tarball. Replaced with libtool directory in configs directory.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#316} with diff file ISSM-19428-19429.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py\\
+Export determination: 6. \\
+Rationale: CHG: Updates to applyoptions.py courtesy of Alvin Liang.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#317} with diff file ISSM-19429-19430.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py\\
+Export determination: 6. \\
+Rationale: CHG: reverting some mystery changes to applyoptions.py that I use...\\
+\vspace{3em}
+
+\noindent \textbf{Change \#318} with diff file ISSM-19430-19431.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processdata.py\\
+Export determination: 6. \\
+Rationale: CHG: update to processdata.py to handle a multi-column spc time series\\
+\vspace{3em}
+
+\noindent \textbf{Change \#319} with diff file ISSM-19431-19432.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py\\
+Export determination: 6. \\
+Rationale: BUG: commented out a couple buggy python code changes in applyoptions.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#320} with diff file ISSM-19432-19433.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.py M /issm/trunk-jpl/src/m/plot/plot\_unit.py M /issm/trunk-jpl/src/m/plot/processdata.py\\
+Export determination: 6. \\
+Rationale: CHG: implemented basic framework for quiver plot in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#321} with diff file ISSM-19433-19434.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/roundmesh.py\\
+Export determination: 6. \\
+Rationale: CHG: x and y are now passed as lists, and the contour is passed as a dict to expwrite\\
+\vspace{3em}
+
+\noindent \textbf{Change \#322} with diff file ISSM-19434-19435.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processdata.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed handling of quiver plots and spc time series in processdata.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#323} with diff file ISSM-19435-19436.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py M /issm/trunk-jpl/src/m/plot/checkplotoptions.py\\
+Export determination: 6. \\
+Rationale: CHG: changed text fontsize naming for consistency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#324} with diff file ISSM-19436-19437.diff: \\
+Function name: \\
+M /issm/trunk-jpl/packagers/macosx/install.sh M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Static Mac OSX build should now work with M1QN3.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#325} with diff file ISSM-19437-19438.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_caladan\_python (from /issm/trunk-jpl/jenkins/linux64\_murdo\_python:19436)\\
+Export determination: 6. \\
+Rationale: ADD: new configuration for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#326} with diff file ISSM-19438-19439.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: removed unescessary external packages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#327} with diff file ISSM-19439-19440.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: changed gfortran version to 4.9.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#328} with diff file ISSM-19440-19441.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Lowered number of CPUs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#329} with diff file ISSM-19441-19442.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Updated pythong directories.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#330} with diff file ISSM-19442-19443.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Removed more external packages and removed evelopment option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#331} with diff file ISSM-19443-19444.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mask.py\\
+Export determination: 6. \\
+Rationale: BUG: missing import statement\\
+\vspace{3em}
+
+\noindent \textbf{Change \#332} with diff file ISSM-19444-19445.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py\\
+Export determination: 6. \\
+Rationale: BUG: wrong variable passed to fontsize argument\\
+\vspace{3em}
+
+\noindent \textbf{Change \#333} with diff file ISSM-19445-19446.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: restored Chaco, Boost and Dakota to new Jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#334} with diff file ISSM-19446-19447.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Restored more external packages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#335} with diff file ISSM-19447-19448.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: changed Dakota installation. Removed BLAS LAPACK externals.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#336} with diff file ISSM-19448-19449.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/install-5.2-linux64-caladan.sh (from /issm/trunk-jpl/externalpackages/dakota/install-5.2-linux64-larsen.sh:19445)\\
+Export determination: 6. \\
+Rationale: NEW: Dakota installs script for new Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#337} with diff file ISSM-19449-19450.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: using new install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#338} with diff file ISSM-19450-19451.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: changed to Dakota 5.3.1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#339} with diff file ISSM-19451-19452.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh (from /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-linux64.sh:19436)\\
+Export determination: 6. \\
+Rationale: NEW: new Linux Dakota 5.3.1 install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#340} with diff file ISSM-19452-19453.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: chaged Jenkins install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#341} with diff file ISSM-19453-19454.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-linux64-caladan.sh\\
+Export determination: 6. \\
+Rationale: CHG: fixed typo of BLAS and LAPACK dirs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#342} with diff file ISSM-19454-19455.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Going back to other linux Dakota install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#343} with diff file ISSM-19455-19456.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Enabled delopment.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#344} with diff file ISSM-19456-19457.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Trying to fix a bug with Kriging.exe by separting build from install.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#345} with diff file ISSM-19457-19458.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: Disable static libs for new Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#346} with diff file ISSM-19458-19459.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: removed output of tests to console.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#347} with diff file ISSM-19459-19460.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/exp/expwrite.py\\
+Export determination: 6. \\
+Rationale: BUG: typo\\
+\vspace{3em}
+
+\noindent \textbf{Change \#348} with diff file ISSM-19460-19461.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py A /issm/trunk-jpl/src/m/plot/plot\_streamlines.py\\
+Export determination: 6. \\
+Rationale: NEW: plot\_streamlines added for python plots\\
+\vspace{3em}
+
+\noindent \textbf{Change \#349} with diff file ISSM-19461-19462.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.py\\
+Export determination: 6. \\
+Rationale: BUG: Fixing Typo\\
+\vspace{3em}
+
+\noindent \textbf{Change \#350} with diff file ISSM-19462-19463.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py M /issm/trunk-jpl/src/m/plot/checkplotoptions.py M /issm/trunk-jpl/src/m/plot/plot\_streamlines.py\\
+Export determination: 6. \\
+Rationale: CHG: minor plotting updates\\
+\vspace{3em}
+
+\noindent \textbf{Change \#351} with diff file ISSM-19463-19464.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_caladan (from /issm/trunk-jpl/jenkins/linux64\_caladan\_python:19462) D /issm/trunk-jpl/jenkins/linux64\_caladan\_python\\
+Export determination: 6. \\
+Rationale: CHG: renamed new Jenkins install file and added Matlab stuff.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#352} with diff file ISSM-19464-19465.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Jenkins script to only run for CPU numbers of power of 2.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#353} with diff file ISSM-19465-19466.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py\\
+Export determination: 6. \\
+Rationale: CHG: changed default stabilization for damage evolution since SUPG is broken\\
+\vspace{3em}
+
+\noindent \textbf{Change \#354} with diff file ISSM-19466-19467.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mech/mechanicalproperties.py\\
+Export determination: 6. \\
+Rationale: CHG: working on better handling of damage-dependent mechanical properties calculation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#355} with diff file ISSM-19467-19468.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp\\
+Export determination: 6. \\
+Rationale: BUG: better handling of P0 interpolation if outside of mesh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#356} with diff file ISSM-19468-19469.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/InterpFromMeshToMesh2dx/InterpFromMeshToMesh2dx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: minor bug\\
+\vspace{3em}
+
+\noindent \textbf{Change \#357} with diff file ISSM-19469-19470.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\\
+Export determination: 6. \\
+Rationale: CHG: Removed cmake from externalpackages list for Jenkins caladan build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#358} with diff file ISSM-19470-19471.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_caladan\\
+Export determination: 6. \\
+Rationale: CHG: Restored previous increment style for rank. CHG: Reduced number of CPUs for new Jenkins, as it was overworking the machine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#359} with diff file ISSM-19471-19472.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan A /issm/trunk-jpl/jenkins/linux64\_caladan\_ad A /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: upped the number of CPU ranks to test performance. ADD: New caladan AD and AMPI Jenkins files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#360} with diff file ISSM-19472-19473.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Changed the matlab path to the corrent one.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#361} with diff file ISSM-19473-19474.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Fixed incorrect gfortran location for new Jenkins AD build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#362} with diff file ISSM-19474-19475.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: FIX: minor typo.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#363} with diff file ISSM-19475-19476.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3019.m\\
+Export determination: 6. \\
+Rationale: BUG: wrong test name\\
+\vspace{3em}
+
+\noindent \textbf{Change \#364} with diff file ISSM-19476-19477.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h\\
+Export determination: 6. \\
+Rationale: NEW: added ResetLevelset function\\
+\vspace{3em}
+
+\noindent \textbf{Change \#365} with diff file ISSM-19477-19478.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed hardcoding of DefaultCalvinglaw\\
+\vspace{3em}
+
+\noindent \textbf{Change \#366} with diff file ISSM-19478-19479.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: BUG: double should be IssmDouble\\
+\vspace{3em}
+
+\noindent \textbf{Change \#367} with diff file ISSM-19479-19480.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp M /issm/trunk-jpl/src/c/classes/Loads/Friction.h M /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp M /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/classes/frictioncoulomb.m A /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m A /issm/trunk-jpl/src/m/enum/BasalforcingsMeltrateFactorEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsThresholdThicknessEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsUpperdepthMeltEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FrictionCoefficientcoulombEnum.m A /issm/trunk-jpl/src/m/enum/MismipFloatingMeltRateEnum.m\\
+Export determination: 6. \\
+Rationale: New: added new basalforcings and friction law classes for mismip+\\
+\vspace{3em}
+
+\noindent \textbf{Change \#368} with diff file ISSM-19480-19481.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp\\
+Export determination: 6. \\
+Rationale: CHG: minor print verbose only for the first node\\
+\vspace{3em}
+
+\noindent \textbf{Change \#369} with diff file ISSM-19481-19482.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m A /issm/trunk-jpl/test/Archives/Archive293.nc A /issm/trunk-jpl/test/NightlyRun/test293.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed mismip melting rate and added NR test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#370} with diff file ISSM-19482-19483.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.cpp\\
+Export determination: 6. \\
+Rationale: CHG: minor analytical stokes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#371} with diff file ISSM-19483-19484.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive293.nc\\
+Export determination: 6. \\
+Rationale: BUG: trying to fix archive for 293\\
+\vspace{3em}
+
+\noindent \textbf{Change \#372} with diff file ISSM-19484-19485.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3019.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed python test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#373} with diff file ISSM-19485-19486.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: BUG: floating ice melting rate not converted in years in parseresults\\
+\vspace{3em}
+
+\noindent \textbf{Change \#374} with diff file ISSM-19486-19487.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/flowequation.m\\
+Export determination: 6. \\
+Rationale: CHG: minor lagrangian can be zero\\
+\vspace{3em}
+
+\noindent \textbf{Change \#375} with diff file ISSM-19487-19488.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive293.nc\\
+Export determination: 6. \\
+Rationale: BUG: updated archive for melt rate in yrs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#376} with diff file ISSM-19488-19489.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp\\
+Export determination: 6. \\
+Rationale: BUG: floatation is from sae water and not freshwater\\
+\vspace{3em}
+
+\noindent \textbf{Change \#377} with diff file ISSM-19489-19490.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding error message for GSL solver if not compiled:\\
+\vspace{3em}
+
+\noindent \textbf{Change \#378} with diff file ISSM-19490-19491.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/adolc/install-withampi.sh M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/c/cores/ad\_core.cpp M /issm/trunk-jpl/src/c/shared/Numerics/isnan.h M /issm/trunk-jpl/src/c/toolkits/gsl/DenseGslSolve.cpp\\
+Export determination: 6. \\
+Rationale: Patches to use latest ADOL-C\\
+\vspace{3em}
+
+\noindent \textbf{Change \#379} with diff file ISSM-19491-19492.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/adolc/install.sh M /issm/trunk-jpl/src/c/toolkits/mumps/MumpsSolve.cpp\\
+Export determination: 6. \\
+Rationale: FIX: Updated MumpsSolve.cpp to agree with new ADOLC. CHG: Updated install.sh to install newest version of ADOLC.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#380} with diff file ISSM-19492-19493.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Reduced the rank number. Experimenting with Jenkins performance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#381} with diff file ISSM-19493-19494.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.py\\
+Export determination: 6. \\
+Rationale: CHG: added option to add line(s) to colorbar at specifically defined levels\\
+\vspace{3em}
+
+\noindent \textbf{Change \#382} with diff file ISSM-19494-19495.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: DO NOT USE ISSM's git, does not work with https, use system's git\\
+\vspace{3em}
+
+\noindent \textbf{Change \#383} with diff file ISSM-19495-19496.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fix for the AD test3015 bug.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#384} with diff file ISSM-19496-19497.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\\
+Export determination: 6. \\
+Rationale: BUG: Minor order change to make sure fix for test3015 does not blow up non AD builds.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#385} with diff file ISSM-19497-19498.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Autodiff/CreateParametersAutodiff.cpp\\
+Export determination: 6. \\
+Rationale: FIX: Mistmatched brace.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#386} with diff file ISSM-19498-19499.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3119.m\\
+Export determination: 6. \\
+Rationale: CHG: Fixed name issue with test3119.m\\
+\vspace{3em}
+
+\noindent \textbf{Change \#387} with diff file ISSM-19499-19500.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: changed config for Jenkins windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#388} with diff file ISSM-19500-19501.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: changed MATLAB\_PATH to match new Jenkins Windows machine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#389} with diff file ISSM-19501-19502.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Reduced the number of install CPUS.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#390} with diff file ISSM-19502-19503.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: MATLAB\_PATH from Windows to Unix style.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#391} with diff file ISSM-19503-19504.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed windows\_environment script to grab different config file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#392} with diff file ISSM-19504-19505.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed windows\_environment script to be the same for 64 and 32 bit for testing purposes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#393} with diff file ISSM-19505-19506.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/interp/ProfileValues.m\\
+Export determination: 6. \\
+Rationale: CHG: improved help doc for ProfileValues\\
+\vspace{3em}
+
+\noindent \textbf{Change \#394} with diff file ISSM-19506-19507.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed md.results.TransientSolution(1).time, overwritten by solutiontype to -1/yts. Added logic with -9999\\
+\vspace{3em}
+
+\noindent \textbf{Change \#395} with diff file ISSM-19507-19508.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: BUG: fixed matlab path that had a space\\
+\vspace{3em}
+
+\noindent \textbf{Change \#396} with diff file ISSM-19508-19509.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: FIX: path to matlab install was slightly incorrect.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#397} with diff file ISSM-19509-19510.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: changed single quotes to double\\
+\vspace{3em}
+
+\noindent \textbf{Change \#398} with diff file ISSM-19510-19511.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: trying to get Matlab executable path to work on Jenkins Win8 build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#399} with diff file ISSM-19511-19512.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cmake/install.sh\\
+Export determination: 6. \\
+Rationale: NEW: updated cmake\\
+\vspace{3em}
+
+\noindent \textbf{Change \#400} with diff file ISSM-19512-19513.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Removed CMake on list of packages needed to install from externalpackages. Reason is that Cygwin can install the same version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#401} with diff file ISSM-19513-19514.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/windows\_test\\
+Export determination: 6. \\
+Rationale: ADD: Windows Jenkins config file for Matlab tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#402} with diff file ISSM-19514-19515.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: disabled development.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#403} with diff file ISSM-19515-19516.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: BUG: configuration issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#404} with diff file ISSM-19516-19517.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Decreased number of CPUs to install with for new Jenkins AD runs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#405} with diff file ISSM-19517-19518.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test124.m\\
+Export determination: 6. \\
+Rationale: CHG: relaxed test tolerances slightly.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#406} with diff file ISSM-19518-19519.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cmake/install.sh M /issm/trunk-jpl/m4/analyses.m4 M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/GroundedAreaEnum.m M /issm/trunk-jpl/test/NightlyRun/test208.m M /issm/trunk-jpl/test/NightlyRun/test210.m M /issm/trunk-jpl/test/NightlyRun/test314.m M /issm/trunk-jpl/test/NightlyRun/test317.m\\
+Export determination: 6. \\
+Rationale: NEW: added GroundedArea in possible outputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#407} with diff file ISSM-19519-19520.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive408.nc M /issm/trunk-jpl/test/Archives/Archive409.nc M /issm/trunk-jpl/test/NightlyRun/test408.m M /issm/trunk-jpl/test/NightlyRun/test409.m\\
+Export determination: 6. \\
+Rationale: NEW: added grounded area check in NR\\
+\vspace{3em}
+
+\noindent \textbf{Change \#408} with diff file ISSM-19520-19521.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cmake/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: reverted back\\
+\vspace{3em}
+
+\noindent \textbf{Change \#409} with diff file ISSM-19521-19522.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive314.nc M /issm/trunk-jpl/test/Archives/Archive317.nc M /issm/trunk-jpl/test/NightlyRun/test314.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed NR\\
+\vspace{3em}
+
+\noindent \textbf{Change \#410} with diff file ISSM-19522-19523.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test314.py M /issm/trunk-jpl/test/NightlyRun/test317.py M /issm/trunk-jpl/test/NightlyRun/test408.py M /issm/trunk-jpl/test/NightlyRun/test409.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed python NR\\
+\vspace{3em}
+
+\noindent \textbf{Change \#411} with diff file ISSM-19523-19524.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive314.nc M /issm/trunk-jpl/test/Archives/Archive317.nc M /issm/trunk-jpl/test/Archives/Archive409.nc M /issm/trunk-jpl/test/NightlyRun/test314.m M /issm/trunk-jpl/test/NightlyRun/test314.py M /issm/trunk-jpl/test/NightlyRun/test317.m M /issm/trunk-jpl/test/NightlyRun/test317.py M /issm/trunk-jpl/test/NightlyRun/test404.m M /issm/trunk-jpl/test/NightlyRun/test404.py M /issm/trunk-jpl/test/NightlyRun/test409.m M /issm/trunk-jpl/test/NightlyRun/test409.py M /issm/trunk-jpl/test/NightlyRun/test513.m M /issm/trunk-jpl/test/NightlyRun/test513.py\\
+Export determination: 6. \\
+Rationale: CHG: fixed NR (hopefully)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#412} with diff file ISSM-19524-19525.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/SMBgemb.m\\
+Export determination: 6. \\
+Rationale: CHG: initiating conversion of GEMB model to ISSM framework, starting with SMBgemb.m class. Mapped out MASTER\_RUN into the class constructor, display and setdefaults methods.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#413} with diff file ISSM-19525-19526.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: CHG: initial test for GEMB capability in ISSM. Not fully implemented yet.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#414} with diff file ISSM-19526-19527.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/NightlyRun/gemb.m (from /issm/trunk-jpl/test/NightlyRun/test243.m:19525) D /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: CHG: not ready for prime time.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#415} with diff file ISSM-19527-19528.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp M /issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/cores/cores.h M /issm/trunk-jpl/src/c/cores/damage\_core.cpp M /issm/trunk-jpl/src/c/cores/hydrology\_core.cpp M /issm/trunk-jpl/src/c/cores/masstransport\_core.cpp A /issm/trunk-jpl/src/c/cores/smb\_core.cpp M /issm/trunk-jpl/src/c/cores/stressbalance\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/main/esmfbinders.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh M /issm/trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.m M /issm/trunk-jpl/src/m/boundaryconditions/SetIceSheetBC.py M /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.m M /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.py M /issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.m M /issm/trunk-jpl/src/m/boundaryconditions/SetMarineIceSheetBC.py M /issm/trunk-jpl/src/m/classes/SMBcomponents.m M /issm/trunk-jpl/src/m/classes/SMBcomponents.py M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py A /issm/trunk-jpl/src/m/classes/SMBforcing.m A /issm/trunk-jpl/src/m/classes/SMBforcing.py M /issm/trunk-jpl/src/m/classes/SMBgemb.m M /issm/trunk-jpl/src/m/classes/SMBgradients.m M /issm/trunk-jpl/src/m/classes/SMBgradients.py M /issm/trunk-jpl/src/m/classes/SMBhenning.m M /issm/trunk-jpl/src/m/classes/SMBmeltcomponents.m M /issm/trunk-jpl/src/m/classes/SMBmeltcomponents.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/classes/model.py M /issm/trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/transient.py M /issm/trunk-jpl/src/m/contrib/hack/tres.m M /issm/trunk-jpl/src/m/contrib/netCDF/ClassTry.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py D /issm/trunk-jpl/src/m/enum/SMBEnum.m A /issm/trunk-jpl/src/m/enum/SMBforcingEnum.m A /issm/trunk-jpl/src/m/enum/SmbAccumulationEnum.m A /issm/trunk-jpl/src/m/enum/SmbBNegEnum.m A /issm/trunk-jpl/src/m/enum/SmbBPosEnum.m A /issm/trunk-jpl/src/m/enum/SmbDelta18oEnum.m A /issm/trunk-jpl/src/m/enum/SmbDelta18oSurfaceEnum.m A /issm/trunk-jpl/src/m/enum/SmbDesfacEnum.m A /issm/trunk-jpl/src/m/enum/SmbDpermilEnum.m A /issm/trunk-jpl/src/m/enum/SmbEvaporationEnum.m A /issm/trunk-jpl/src/m/enum/SmbHrefEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsd18opdEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsdelta18oEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsmungsmEnum.m A /issm/trunk-jpl/src/m/enum/SmbIspddEnum.m A /issm/trunk-jpl/src/m/enum/SmbIssmbgradientsEnum.m A /issm/trunk-jpl/src/m/enum/SmbMassBalanceEnum.m A /issm/trunk-jpl/src/m/enum/SmbMeltEnum.m A /issm/trunk-jpl/src/m/enum/SmbMonthlytemperaturesEnum.m A /issm/trunk-jpl/src/m/enum/SmbNumRequestedOutputsEnum.m A /issm/trunk-jpl/src/m/enum/SmbPfacEnum.m A /issm/trunk-jpl/src/m/enum/SmbPrecipitationEnum.m A /issm/trunk-jpl/src/m/enum/SmbPrecipitationsLgmEnum.m A /issm/trunk-jpl/src/m/enum/SmbPrecipitationsPresentdayEnum.m A /issm/trunk-jpl/src/m/enum/SmbRefreezeEnum.m A /issm/trunk-jpl/src/m/enum/SmbRequestedOutputsEnum.m A /issm/trunk-jpl/src/m/enum/SmbRlapsEnum.m A /issm/trunk-jpl/src/m/enum/SmbRlapslgmEnum.m A /issm/trunk-jpl/src/m/enum/SmbRunoffEnum.m A /issm/trunk-jpl/src/m/enum/SmbS0pEnum.m A /issm/trunk-jpl/src/m/enum/SmbS0tEnum.m A /issm/trunk-jpl/src/m/enum/SmbSealevEnum.m A /issm/trunk-jpl/src/m/enum/SmbSmbrefEnum.m A /issm/trunk-jpl/src/m/enum/SmbSolutionEnum.m A /issm/trunk-jpl/src/m/enum/SmbTdiffEnum.m A /issm/trunk-jpl/src/m/enum/SmbTemperaturesLgmEnum.m A /issm/trunk-jpl/src/m/enum/SmbTemperaturesPresentdayEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsAccumulationEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsBNegEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsBPosEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsDelta18oEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsDelta18oSurfaceEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsDesfacEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsDpermilEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsEvaporationEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsHrefEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsIsd18opdEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsIsdelta18oEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsIsmungsmEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsIspddEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsIssmbgradientsEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsMassBalanceEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsMeltEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsMonthlytemperaturesEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsPfacEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsLgmEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsPrecipitationsPresentdayEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsRefreezeEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsRlapsEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsRlapslgmEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsRunoffEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsS0pEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsS0tEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsSealevEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsSmbrefEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsTdiffEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesLgmEnum.m D /issm/trunk-jpl/src/m/enum/SurfaceforcingsTemperaturesPresentdayEnum.m A /issm/trunk-jpl/src/m/enum/TransientIssmbEnum.m A /issm/trunk-jpl/src/m/enum/list2 M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py M /issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp M /issm/trunk-jpl/test/NightlyRun/gemb.m M /issm/trunk-jpl/test/NightlyRun/test105.m M /issm/trunk-jpl/test/NightlyRun/test109.m M /issm/trunk-jpl/test/NightlyRun/test109.py M /issm/trunk-jpl/test/NightlyRun/test1201.m M /issm/trunk-jpl/test/NightlyRun/test1201.py M /issm/trunk-jpl/test/NightlyRun/test121.m M /issm/trunk-jpl/test/NightlyRun/test121.py M /issm/trunk-jpl/test/NightlyRun/test1501.m M /issm/trunk-jpl/test/NightlyRun/test1501.py M /issm/trunk-jpl/test/NightlyRun/test1502.m M /issm/trunk-jpl/test/NightlyRun/test1502.py M /issm/trunk-jpl/test/NightlyRun/test207.m M /issm/trunk-jpl/test/NightlyRun/test207.py M /issm/trunk-jpl/test/NightlyRun/test228.m M /issm/trunk-jpl/test/NightlyRun/test228.py M /issm/trunk-jpl/test/NightlyRun/test229.m M /issm/trunk-jpl/test/NightlyRun/test229.py M /issm/trunk-jpl/test/NightlyRun/test230.m M /issm/trunk-jpl/test/NightlyRun/test230.py M /issm/trunk-jpl/test/NightlyRun/test231.m M /issm/trunk-jpl/test/NightlyRun/test231.py M /issm/trunk-jpl/test/NightlyRun/test232.m M /issm/trunk-jpl/test/NightlyRun/test232.py M /issm/trunk-jpl/test/NightlyRun/test234.m M /issm/trunk-jpl/test/NightlyRun/test235.m M /issm/trunk-jpl/test/NightlyRun/test236.m M /issm/trunk-jpl/test/NightlyRun/test236.py M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test238.m M /issm/trunk-jpl/test/NightlyRun/test238.py M /issm/trunk-jpl/test/NightlyRun/test239.m M /issm/trunk-jpl/test/NightlyRun/test239.py M /issm/trunk-jpl/test/NightlyRun/test240.m M /issm/trunk-jpl/test/NightlyRun/test240.py M /issm/trunk-jpl/test/NightlyRun/test241.m M /issm/trunk-jpl/test/NightlyRun/test241.py M /issm/trunk-jpl/test/NightlyRun/test242.m M /issm/trunk-jpl/test/NightlyRun/test242.py M /issm/trunk-jpl/test/NightlyRun/test3009.m M /issm/trunk-jpl/test/NightlyRun/test3009.py M /issm/trunk-jpl/test/NightlyRun/test3109.m M /issm/trunk-jpl/test/NightlyRun/test3109.py M /issm/trunk-jpl/test/NightlyRun/test313.m M /issm/trunk-jpl/test/NightlyRun/test313.py M /issm/trunk-jpl/test/NightlyRun/test326.m M /issm/trunk-jpl/test/NightlyRun/test326.py M /issm/trunk-jpl/test/NightlyRun/test328.m M /issm/trunk-jpl/test/NightlyRun/test328.py M /issm/trunk-jpl/test/NightlyRun/test329.m M /issm/trunk-jpl/test/NightlyRun/test329.py M /issm/trunk-jpl/test/NightlyRun/test336.m M /issm/trunk-jpl/test/NightlyRun/test336.py M /issm/trunk-jpl/test/NightlyRun/test337.m M /issm/trunk-jpl/test/NightlyRun/test337.py M /issm/trunk-jpl/test/NightlyRun/test338.m M /issm/trunk-jpl/test/NightlyRun/test338.py M /issm/trunk-jpl/test/NightlyRun/test339.m M /issm/trunk-jpl/test/NightlyRun/test339.py M /issm/trunk-jpl/test/NightlyRun/test4001.m M /issm/trunk-jpl/test/NightlyRun/test407.m M /issm/trunk-jpl/test/NightlyRun/test407.py M /issm/trunk-jpl/test/NightlyRun/test423.m M /issm/trunk-jpl/test/NightlyRun/test423.py M /issm/trunk-jpl/test/NightlyRun/test424.m M /issm/trunk-jpl/test/NightlyRun/test424.py M /issm/trunk-jpl/test/NightlyRun/test425.m M /issm/trunk-jpl/test/NightlyRun/test425.py M /issm/trunk-jpl/test/NightlyRun/test426.m M /issm/trunk-jpl/test/NightlyRun/test426.py M /issm/trunk-jpl/test/NightlyRun/test427.m M /issm/trunk-jpl/test/NightlyRun/test427.py M /issm/trunk-jpl/test/NightlyRun/test433.m M /issm/trunk-jpl/test/NightlyRun/test433.py M /issm/trunk-jpl/test/NightlyRun/test435.m M /issm/trunk-jpl/test/NightlyRun/test437.m M /issm/trunk-jpl/test/NightlyRun/test515.m M /issm/trunk-jpl/test/NightlyRun/test515.py M /issm/trunk-jpl/test/NightlyRun/test703.m M /issm/trunk-jpl/test/NightlyRun/test801.m M /issm/trunk-jpl/test/NightlyRun/test801.py M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py M /issm/trunk-jpl/test/NightlyRun/test803.m M /issm/trunk-jpl/test/NightlyRun/test803.py M /issm/trunk-jpl/test/NightlyRun/test804.m M /issm/trunk-jpl/test/NightlyRun/test804.py M /issm/trunk-jpl/test/NightlyRun/test805.m M /issm/trunk-jpl/test/NightlyRun/test805.py M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py M /issm/trunk-jpl/test/Par/79North.par M /issm/trunk-jpl/test/Par/79North.py M /issm/trunk-jpl/test/Par/RoundSheetEISMINT.par M /issm/trunk-jpl/test/Par/RoundSheetEISMINT.py M /issm/trunk-jpl/test/Par/RoundSheetShelf.par M /issm/trunk-jpl/test/Par/RoundSheetShelf.py M /issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.par M /issm/trunk-jpl/test/Par/RoundSheetStaticEISMINT.py M /issm/trunk-jpl/test/Par/SquareEISMINT.par M /issm/trunk-jpl/test/Par/SquareEISMINT.py M /issm/trunk-jpl/test/Par/SquareSheetShelf.par M /issm/trunk-jpl/test/Par/SquareSheetShelf.py M /issm/trunk-jpl/test/Par/SquareShelfConstrained.par M /issm/trunk-jpl/test/Par/SquareShelfConstrained.py M /issm/trunk-jpl/test/Par/SquareThermal.par M /issm/trunk-jpl/test/Par/SquareThermal.py M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.par M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.py\\
+Export determination: 6. \\
+Rationale: CHG: moved md.surfaceforcings to md.smb. By doing so, had to rename the SMB class to SMBforcing class (it's just that, a mass\_balance forcing inside a SMB class, hence the name). We also now have an smb\_core solution, taken out of the mass transport core. Makes more sense long term. Synced all enums according to the new changes, and operated the adjustments in all the test decks. In addition, progressing in terms of GEMB integration into ISSM, specifically at the SMBgemb level (which is spurring all the changes described above). Brought the class up to the level of the GEMB.m call in Alex's code. Starting the C integration now.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#416} with diff file ISSM-19528-19529.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/analyses.m4 M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/SmbAnalysis.h M /issm/trunk-jpl/src/c/analyses/analyses.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/cores/smb\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/SMBgemb.m M /issm/trunk-jpl/src/m/consistency/checkfield.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/EnumDefinitions.pyc A /issm/trunk-jpl/src/m/enum/SMBgembEnum.m A /issm/trunk-jpl/src/m/enum/SmbAIceEnum.m A /issm/trunk-jpl/src/m/enum/SmbAIdxEnum.m A /issm/trunk-jpl/src/m/enum/SmbASnowEnum.m A /issm/trunk-jpl/src/m/enum/SmbAnalysisEnum.m A /issm/trunk-jpl/src/m/enum/SmbCEnum.m A /issm/trunk-jpl/src/m/enum/SmbCldFracEnum.m A /issm/trunk-jpl/src/m/enum/SmbDenIdxEnum.m A /issm/trunk-jpl/src/m/enum/SmbDlwrfEnum.m A /issm/trunk-jpl/src/m/enum/SmbDswrfEnum.m A /issm/trunk-jpl/src/m/enum/SmbDzMinEnum.m A /issm/trunk-jpl/src/m/enum/SmbDzTopEnum.m A /issm/trunk-jpl/src/m/enum/SmbEAirEnum.m A /issm/trunk-jpl/src/m/enum/SmbEnum.m A /issm/trunk-jpl/src/m/enum/SmbKEnum.m A /issm/trunk-jpl/src/m/enum/SmbOutputFreqEnum.m A /issm/trunk-jpl/src/m/enum/SmbPAirEnum.m A /issm/trunk-jpl/src/m/enum/SmbPEnum.m A /issm/trunk-jpl/src/m/enum/SmbSpinUpEnum.m A /issm/trunk-jpl/src/m/enum/SmbSwIdxEnum.m A /issm/trunk-jpl/src/m/enum/SmbT0dryEnum.m A /issm/trunk-jpl/src/m/enum/SmbT0wetEnum.m A /issm/trunk-jpl/src/m/enum/SmbTaEnum.m A /issm/trunk-jpl/src/m/enum/SmbTmeanEnum.m A /issm/trunk-jpl/src/m/enum/SmbTzEnum.m A /issm/trunk-jpl/src/m/enum/SmbVEnum.m A /issm/trunk-jpl/src/m/enum/SmbVzEnum.m A /issm/trunk-jpl/src/m/enum/SmbZMaxEnum.m A /issm/trunk-jpl/src/m/enum/SmbZMinEnum.m A /issm/trunk-jpl/src/m/enum/SmbZTopEnum.m A /issm/trunk-jpl/src/m/enum/SmbZYEnum.m M /issm/trunk-jpl/test/NightlyRun/test109.m M /issm/trunk-jpl/test/NightlyRun/test109.py M /issm/trunk-jpl/test/NightlyRun/test121.m M /issm/trunk-jpl/test/NightlyRun/test121.py M /issm/trunk-jpl/test/NightlyRun/test207.m M /issm/trunk-jpl/test/NightlyRun/test207.py M /issm/trunk-jpl/test/NightlyRun/test232.m M /issm/trunk-jpl/test/NightlyRun/test232.py M /issm/trunk-jpl/test/NightlyRun/test3009.m M /issm/trunk-jpl/test/NightlyRun/test3009.py M /issm/trunk-jpl/test/NightlyRun/test3109.m M /issm/trunk-jpl/test/NightlyRun/test3109.py M /issm/trunk-jpl/test/NightlyRun/test313.m M /issm/trunk-jpl/test/NightlyRun/test313.py M /issm/trunk-jpl/test/NightlyRun/test326.m M /issm/trunk-jpl/test/NightlyRun/test326.py M /issm/trunk-jpl/test/NightlyRun/test407.m M /issm/trunk-jpl/test/NightlyRun/test407.py M /issm/trunk-jpl/test/NightlyRun/test437.m M /issm/trunk-jpl/test/NightlyRun/test515.m M /issm/trunk-jpl/test/NightlyRun/test515.py\\
+Export determination: 6. \\
+Rationale: CHG: transferred Smb code from the Masstransport side of things into a full fledged SmbAnalysis object.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#417} with diff file ISSM-19529-19530.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test333.m M /issm/trunk-jpl/test/NightlyRun/test333.py M /issm/trunk-jpl/test/NightlyRun/test335.m M /issm/trunk-jpl/test/NightlyRun/test423.m M /issm/trunk-jpl/test/NightlyRun/test423.py M /issm/trunk-jpl/test/NightlyRun/test433.m M /issm/trunk-jpl/test/NightlyRun/test433.py\\
+Export determination: 6. \\
+Rationale: CHG: issmb should be turned on for these tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#418} with diff file ISSM-19530-19531.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh\\
+Export determination: 6. \\
+Rationale: BUG: reverted to normal\\
+\vspace{3em}
+
+\noindent \textbf{Change \#419} with diff file ISSM-19531-19532.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: no need to check for drag if type=1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#420} with diff file ISSM-19532-19533.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/configs/6.1 A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/CMakeLists.txt.pfe.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/DakotaDev.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/NonDLocalReliability.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/NonDSampling.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/ParallelLibrary.hpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1/pecos\_global\_defs.hpp.patch A /issm/trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh\\
+Export determination: 6. \\
+Rationale: NEW: add config scripts for 6.1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#421} with diff file ISSM-19533-19534.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_elementstype.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed elementstype\\
+\vspace{3em}
+
+\noindent \textbf{Change \#422} with diff file ISSM-19534-19535.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: drag\_input not always necessary\\
+\vspace{3em}
+
+\noindent \textbf{Change \#423} with diff file ISSM-19535-19536.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/parameterization/setflowequation.m M /issm/trunk-jpl/src/m/parameterization/setflowequation.py\\
+Export determination: 6. \\
+Rationale: CHG: DO SIA LAST! Otherwise spcs might not be set up correctly (SIA should have priority)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#424} with diff file ISSM-19536-19537.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/enum/EnumDefinitions.pyc\\
+Export determination: 6. \\
+Rationale: CHG: this file SHOULD NOT be under svn\\
+\vspace{3em}
+
+\noindent \textbf{Change \#425} with diff file ISSM-19537-19538.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive303.nc M /issm/trunk-jpl/test/Archives/Archive306.nc\\
+Export determination: 6. \\
+Rationale: CHG: now that SSA/SIA coupling has been updated\\
+\vspace{3em}
+
+\noindent \textbf{Change \#426} with diff file ISSM-19538-19539.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh\\
+Export determination: 6. \\
+Rationale: BUG: minor naming error\\
+\vspace{3em}
+
+\noindent \textbf{Change \#427} with diff file ISSM-19539-19540.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch\\
+Export determination: 6. \\
+Rationale: BUG: typo extra \_\\
+\vspace{3em}
+
+\noindent \textbf{Change \#428} with diff file ISSM-19540-19541.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh\\
+Export determination: 6. \\
+Rationale: CHG: add build for mac\\
+\vspace{3em}
+
+\noindent \textbf{Change \#429} with diff file ISSM-19541-19542.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.mac.patch M /issm/trunk-jpl/externalpackages/dakota/configs/6.1/BuildDakotaCustom.cmake.patch M /issm/trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh M /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh M /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh\\
+Export determination: 6. \\
+Rationale: CHG: revert dakota dev patch\\
+\vspace{3em}
+
+\noindent \textbf{Change \#430} with diff file ISSM-19542-19543.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.5-win7.sh A /issm/trunk-jpl/externalpackages/windows/configs/sdk10.0-win64.sh\\
+Export determination: 6. \\
+Rationale: ADD: new Windows environment script for SDK version 10, 64bit. Currently using VS 14.0.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#431} with diff file ISSM-19543-19544.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: CHG: new MPI configuration\\
+\vspace{3em}
+
+\noindent \textbf{Change \#432} with diff file ISSM-19544-19545.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/CMakeLists.txt.pfe.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/DakotaDev.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDLocalReliability.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/NonDSampling.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/ParallelLibrary.hpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/pecos\_global\_defs.hpp.patch\\
+Export determination: 6. \\
+Rationale: CHG: new patches for mpi configuration.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#433} with diff file ISSM-19545-19546.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: BUG: for thermal only, smbmodel is not present\\
+\vspace{3em}
+
+\noindent \textbf{Change \#434} with diff file ISSM-19546-19547.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/enum/list2\\
+Export determination: 6. \\
+Rationale: DEL: this has nothing to do here\\
+\vspace{3em}
+
+\noindent \textbf{Change \#435} with diff file ISSM-19547-19548.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m\\
+Export determination: 6. \\
+Rationale: CHG: added note\\
+\vspace{3em}
+
+\noindent \textbf{Change \#436} with diff file ISSM-19548-19549.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: BUG: do isthermal even if issmb=0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#437} with diff file ISSM-19549-19550.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: BUG: minor print call thermal\_core in the right place\\
+\vspace{3em}
+
+\noindent \textbf{Change \#438} with diff file ISSM-19550-19551.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.mac.patch M /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh M /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: CHG: some dakota mpi patches\\
+\vspace{3em}
+
+\noindent \textbf{Change \#439} with diff file ISSM-19551-19552.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: CHG: update yosemite patches\\
+\vspace{3em}
+
+\noindent \textbf{Change \#440} with diff file ISSM-19552-19553.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: add dakota 6.1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#441} with diff file ISSM-19553-19554.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi/BuildDakotaCustom.cmake.yosemite.patch M /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh\\
+Export determination: 6. \\
+Rationale: CHG: linux needs shared library mpi in dakota\\
+\vspace{3em}
+
+\noindent \textbf{Change \#442} with diff file ISSM-19554-19555.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h M /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h A /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp A /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h M /issm/trunk-jpl/src/c/classes/Inputs/Input.h M /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h M /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h M /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/classes/classes.h A /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp M /issm/trunk-jpl/src/c/shared/Matrix/matrix.h M /issm/trunk-jpl/src/m/classes/SMBgemb.m A /issm/trunk-jpl/src/m/enum/DoubleArrayInputEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/P0ArrayEnum.m A /issm/trunk-jpl/src/m/enum/SmbAEnum.m A /issm/trunk-jpl/src/m/enum/SmbDEnum.m A /issm/trunk-jpl/src/m/enum/SmbDtEnum.m A /issm/trunk-jpl/src/m/enum/SmbDzEnum.m A /issm/trunk-jpl/src/m/enum/SmbECEnum.m A /issm/trunk-jpl/src/m/enum/SmbGdnEnum.m A /issm/trunk-jpl/src/m/enum/SmbGspEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsInitializedEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsaccumulationEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsalbedoEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsdensificationEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsgraingrowthEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsmeltEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsshortwaveEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsthermalEnum.m A /issm/trunk-jpl/src/m/enum/SmbIsturbulentfluxEnum.m A /issm/trunk-jpl/src/m/enum/SmbReEnum.m A /issm/trunk-jpl/src/m/enum/SmbTEnum.m A /issm/trunk-jpl/src/m/enum/SmbWEnum.m M /issm/trunk-jpl/test/NightlyRun/gemb.m\\
+Export determination: 6. \\
+Rationale: CHG: finished first prototype implementation of the GEMB model inside the Gembx module of the SurfaceMassBalancex module, and inside the SMBgemb.m class, as well as the SMBGemb method of the Element.cpp class. Had to introduce the concept also of a DoubleArrayInput to keep track of the vertical gridded datasets within each element.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#443} with diff file ISSM-19555-19556.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/enum/SmbSpinUpEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: not needed anymore\\
+\vspace{3em}
+
+\noindent \textbf{Change \#444} with diff file ISSM-19556-19557.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: NEW: added installation script for UT's Lonestar cluster\\
+\vspace{3em}
+
+\noindent \textbf{Change \#445} with diff file ISSM-19557-19558.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: added info for lonestar cluster\\
+\vspace{3em}
+
+\noindent \textbf{Change \#446} with diff file ISSM-19558-19559.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/hpc.m A /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: NEW: added lonestar for UT cluster, and fixed some minor details on pfe and hpc\\
+\vspace{3em}
+
+\noindent \textbf{Change \#447} with diff file ISSM-19559-19560.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBgemb.m M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/verbose.m M /issm/trunk-jpl/src/m/classes/verbose.py\\
+Export determination: 6. \\
+Rationale: CHG: mask.m: allow only 1 element mesh. verbose :added smb flag. SMBgemb: added initial scaling of the ice density as density of the snowpack.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#448} with diff file ISSM-19560-19561.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/checkfield.m\\
+Export determination: 6. \\
+Rationale: CHG: check consistency of time series now allows series that are size numberofelements or numberofelements+1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#449} with diff file ISSM-19561-19562.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SmbInitDensityScalingEnum.m A /issm/trunk-jpl/src/m/enum/SmbSwfEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: added SmbInitDensityScalingEnum and SmbSwfEnum enums.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#450} with diff file ISSM-19562-19563.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Numerics/Verbosity.cpp M /issm/trunk-jpl/src/c/shared/Numerics/Verbosity.h\\
+Export determination: 6. \\
+Rationale: CHG: added SMB verbosity level.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#451} with diff file ISSM-19563-19564.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp M /issm/trunk-jpl/src/c/shared/Matrix/matrix.h\\
+Export determination: 6. \\
+Rationale: CHG: added vararg driven echo of a cell.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#452} with diff file ISSM-19564-19565.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: some verbose changes, essentially anouncing the time step.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#453} with diff file ISSM-19565-19566.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding initial scaling of density for the snow pack.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#454} with diff file ISSM-19566-19567.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added verbose of each module + fixed some serious bugs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#455} with diff file ISSM-19567-19568.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding verbosity + fixing some serious bugs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#456} with diff file ISSM-19568-19569.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h\\
+Export determination: 6. \\
+Rationale: CHG: fixing the prototype.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#457} with diff file ISSM-19569-19570.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.py\\
+Export determination: 6. \\
+Rationale: CHG: retain repository in pathname for saving models if a name is supplied other than default\\
+\vspace{3em}
+
+\noindent \textbf{Change \#458} with diff file ISSM-19570-19571.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.py\\
+Export determination: 6. \\
+Rationale: CHG: analogous change for loading models saved with a name other than default\\
+\vspace{3em}
+
+\noindent \textbf{Change \#459} with diff file ISSM-19571-19572.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/export\_fig/LICENSE M /issm/trunk-jpl/externalpackages/export\_fig/README.md M /issm/trunk-jpl/externalpackages/export\_fig/append\_pdfs.m M /issm/trunk-jpl/externalpackages/export\_fig/copyfig.m M /issm/trunk-jpl/externalpackages/export\_fig/crop\_borders.m M /issm/trunk-jpl/externalpackages/export\_fig/eps2pdf.m M /issm/trunk-jpl/externalpackages/export\_fig/export\_fig.m M /issm/trunk-jpl/externalpackages/export\_fig/fix\_lines.m M /issm/trunk-jpl/externalpackages/export\_fig/ghostscript.m M /issm/trunk-jpl/externalpackages/export\_fig/isolate\_axes.m M /issm/trunk-jpl/externalpackages/export\_fig/pdftops.m M /issm/trunk-jpl/externalpackages/export\_fig/print2array.m M /issm/trunk-jpl/externalpackages/export\_fig/print2eps.m M /issm/trunk-jpl/externalpackages/export\_fig/user\_string.m M /issm/trunk-jpl/externalpackages/export\_fig/using\_hg2.m\\
+Export determination: 6. \\
+Rationale: CHG: new version of export\_fig\\
+\vspace{3em}
+
+\noindent \textbf{Change \#460} with diff file ISSM-19572-19573.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed serious bug in the splitting of cells\\
+\vspace{3em}
+
+\noindent \textbf{Change \#461} with diff file ISSM-19573-19574.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/geometry.m M /issm/trunk-jpl/src/m/classes/geometry.py\\
+Export determination: 6. \\
+Rationale: BUG: need to add abs to geometry check\\
+\vspace{3em}
+
+\noindent \textbf{Change \#462} with diff file ISSM-19574-19575.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: added -lirc for missing symbol\\
+\vspace{3em}
+
+\noindent \textbf{Change \#463} with diff file ISSM-19575-19576.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: added MKLLIB to mex\\
+\vspace{3em}
+
+\noindent \textbf{Change \#464} with diff file ISSM-19576-19577.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: lirc was not needed, it was a problem with matlab\\
+\vspace{3em}
+
+\noindent \textbf{Change \#465} with diff file ISSM-19577-19578.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test414.m M /issm/trunk-jpl/test/NightlyRun/test417.m\\
+Export determination: 6. \\
+Rationale: BUG: surface must be equal to base+thickness\\
+\vspace{3em}
+
+\noindent \textbf{Change \#466} with diff file ISSM-19578-19579.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: changed a great deal of flags for Windows build to change from CCCL to CL. Most of the changes involve changing the flags from tailored to CCCL to Cl\\
+\vspace{3em}
+
+\noindent \textbf{Change \#467} with diff file ISSM-19579-19580.diff: \\
+Function name: \\
+M /issm/trunk-jpl/configure.ac M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Removed cccl from configure.ac CHG: Added TRIANGLELIB for standalone libraries. Needed for Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#468} with diff file ISSM-19580-19581.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/install-win.sh A /issm/trunk-jpl/externalpackages/petsc/install-dev-win10.sh\\
+Export determination: 6. \\
+Rationale: ADD: New Petsc install script for Windows using development branch. CHG: Upgraded Autotools install script for Windows to use newer version of Automake and Autoconf.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#469} with diff file ISSM-19581-19582.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.lonestar.patch A /issm/trunk-jpl/externalpackages/boost/install-1.55-lonestar.sh A /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch A /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch A /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: NEW: dakota for lonestar\\
+\vspace{3em}
+
+\noindent \textbf{Change \#470} with diff file ISSM-19582-19583.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/SurfaceMassBalancex.h\\
+Export determination: 6. \\
+Rationale: CHG: fixed the last remaining bugs. Big bug in the ER computation. Went from array to double!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#471} with diff file ISSM-19583-19584.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: finalized SMBgemb method and validated against Alex Gardner's model.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#472} with diff file ISSM-19584-19585.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed leak.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#473} with diff file ISSM-19585-19586.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: CHG: setting no limit on valgrind error output.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#474} with diff file ISSM-19586-19587.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/plot/plotgemb.m\\
+Export determination: 6. \\
+Rationale: NEW: new plotting capability for SMB GEMB related patch plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#475} with diff file ISSM-19587-19588.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBgemb.m\\
+Export determination: 6. \\
+Rationale: CHG: minor typos.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#476} with diff file ISSM-19588-19589.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/install-win.sh A /issm/trunk-jpl/externalpackages/autotools/patches/automake.patch M /issm/trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch\\
+Export determination: 6. \\
+Rationale: CHG: Applied new Automake patch for Windows build. ADD: Patch for Automake to change flags for Microsoft compiler. CHG: Improved libtool.m4 patch for Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#477} with diff file ISSM-19589-19590.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive243.nc A /issm/trunk-jpl/test/Data/gemb\_input.mat D /issm/trunk-jpl/test/NightlyRun/gemb.m A /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: NEW: new SMBgemb nightly run test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#478} with diff file ISSM-19590-19591.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch\\
+Export determination: 6. \\
+Rationale: CHG: Fixed a bug with the patch.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#479} with diff file ISSM-19591-19592.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: update lonestar cluster class to add mkl\\
+\vspace{3em}
+
+\noindent \textbf{Change \#480} with diff file ISSM-19592-19593.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: dictate less than 12 cpu per node\\
+\vspace{3em}
+
+\noindent \textbf{Change \#481} with diff file ISSM-19593-19594.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/autotools/patches/libtool.m4.patch\\
+Export determination: 6. \\
+Rationale: CHG: reverted a small change related to move from CCCL to CL.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#482} with diff file ISSM-19594-19595.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SmbCondensationEnum.m M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed huge bug with reportina of SmbMassBalance and also added condensation output.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#483} with diff file ISSM-19595-19596.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/runme.m M /issm/trunk-jpl/test/NightlyRun/runme.py\\
+Export determination: 6. \\
+Rationale: NEW: added check that result is not NaN\\
+\vspace{3em}
+
+\noindent \textbf{Change \#484} with diff file ISSM-19596-19597.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Updated Jenkins for Windows 10. Updated Petsc version to dev and removed CCCL requirement.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#485} with diff file ISSM-19597-19598.diff: \\
+Function name: \\
+M /issm/trunk-jpl/configs/config-win64.sh\\
+Export determination: 6. \\
+Rationale: CHG: Updated Petsc MPI include directory for dev branch.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#486} with diff file ISSM-19598-19599.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Updated Matlab install directory.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#487} with diff file ISSM-19599-19600.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Udpated MPI directory when using Petsc dev branch.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#488} with diff file ISSM-19600-19601.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Updated OS variable for Jenkins Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#489} with diff file ISSM-19601-19602.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed Windows environment variable to pickup SDK10.0 script instead.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#490} with diff file ISSM-19602-19603.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed order that scripts are sourced. Added an echo statement to test whether conditional is executing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#491} with diff file ISSM-19603-19604.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/windows/windows\_environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: corrected a mistake.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#492} with diff file ISSM-19604-19605.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added contional to jenkins script for Windows matlab.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#493} with diff file ISSM-19606-19607.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added echo statements to test log outputs on Windows. Small stylistic change as well.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#494} with diff file ISSM-19607-19608.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mask.m\\
+Export determination: 6. \\
+Rationale: NEW: improved error message to figure out how many elements have all their nodes on ice front\\
+\vspace{3em}
+
+\noindent \textbf{Change \#495} with diff file ISSM-19608-19609.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Testing Jenkins on Windows.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#496} with diff file ISSM-19609-19610.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added a sleep step before grabbing PID for Windows jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#497} with diff file ISSM-19610-19611.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: restored compilation to yes for Windows Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#498} with diff file ISSM-19611-19612.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/mercurial/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: added local make.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#499} with diff file ISSM-19612-19613.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Greenland/runme.m M /issm/trunk-jpl/jenkins/linux64\_caladan\\
+Export determination: 6. \\
+Rationale: CHG: Speed test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#500} with diff file ISSM-19613-19614.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: applying patches for the AD mode to compile.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#501} with diff file ISSM-19614-19615.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: CHG: do not retreive swf\\
+\vspace{3em}
+
+\noindent \textbf{Change \#502} with diff file ISSM-19615-19616.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: changed the way that Jenkins script determines if we are dealing with a Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#503} with diff file ISSM-19616-19617.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Changed OS checking in Jenkins script to use globbing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#504} with diff file ISSM-19617-19618.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: working on interactive runs for mitgcm\\
+\vspace{3em}
+
+\noindent \textbf{Change \#505} with diff file ISSM-19618-19619.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Changed options relating to Windows build. Particularly, for parallel build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#506} with diff file ISSM-19619-19620.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: CHG: Minor changes to Windows parallel build to update paths.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#507} with diff file ISSM-19620-19621.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh\\
+Export determination: 6. \\
+Rationale: ADD: new Petsc install script for dev branch in parallel.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#508} with diff file ISSM-19621-19622.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: CHG: removed CCCL and CMake as external packages requirements.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#509} with diff file ISSM-19622-19623.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: CHG: Updated windows-par Jenkins configuration.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#510} with diff file ISSM-19623-19624.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: CHG: Fixed typo..\\
+\vspace{3em}
+
+\noindent \textbf{Change \#511} with diff file ISSM-19624-19625.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-dev-win10-par.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added a remove statement before checkout.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#512} with diff file ISSM-19625-19626.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: fixed interactive mitgcm/issm coupling on pleiades\\
+\vspace{3em}
+
+\noindent \textbf{Change \#513} with diff file ISSM-19626-19627.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/tests A /issm/trunk-jpl/externalpackages/dakota/tests/test.in\\
+Export determination: 6. \\
+Rationale: CHG: test dakota parallel capabilities.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#514} with diff file ISSM-19627-19628.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.mac.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/BuildDakotaCustom.cmake.yosemite.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/CMakeLists.txt.pfe.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/DakotaDev.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDLocalReliability.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/NonDSampling.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/ParallelLibrary.hpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi/pecos\_global\_defs.hpp.patch M /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: CHG: new 6.2 build\\
+\vspace{3em}
+
+\noindent \textbf{Change \#515} with diff file ISSM-19628-19629.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Greenland/Greenland.par M /issm/trunk-jpl/examples/Greenland/runme.m\\
+Export determination: 6. \\
+Rationale: CHG: need to update smb\\
+\vspace{3em}
+
+\noindent \textbf{Change \#516} with diff file ISSM-19629-19630.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Greenland/CheatSheet.m\\
+Export determination: 6. \\
+Rationale: CHG: need to update smb\\
+\vspace{3em}
+
+\noindent \textbf{Change \#517} with diff file ISSM-19630-19631.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/tests/test.in A /issm/trunk-jpl/externalpackages/dakota/tests/test2.in\\
+Export determination: 6. \\
+Rationale: CHG: testing around.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#518} with diff file ISSM-19631-19632.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp\\
+Export determination: 6. \\
+Rationale: CHG: getting rid of simple warning from compilers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#519} with diff file ISSM-19632-19633.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/c/classes/Dakota A /issm/trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h A /issm/trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h M /issm/trunk-jpl/src/c/classes/classes.h D /issm/trunk-jpl/src/c/cores/DakotaSpawnCore.cpp D /issm/trunk-jpl/src/c/cores/DakotaSpawnCore.h M /issm/trunk-jpl/src/c/cores/dakota\_core.cpp A /issm/trunk-jpl/src/c/main/issm\_dakota.cpp\\
+Export determination: 6. \\
+Rationale: CHG: committing temporary adaptation fixes for Dakota 6.2, and embryo of a new issm\_dakota main. Much debugging needed. Cannot do it on Macosx, need to transfer to Linux platform.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#520} with diff file ISSM-19633-19634.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: adapting for dakota 6.2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#521} with diff file ISSM-19634-19635.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/classes/Dakota/IssmDirectApplicInterface.h M /issm/trunk-jpl/src/c/cores/dakota\_core.cpp M /issm/trunk-jpl/src/c/main/issm\_dakota.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixing issue with dakota <6.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#522} with diff file ISSM-19635-19636.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: fixing ISSM\_DAKOTA pb\\
+\vspace{3em}
+
+\noindent \textbf{Change \#523} with diff file ISSM-19636-19637.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: better fix for ISSM\_DAKOTA conditional.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#524} with diff file ISSM-19637-19638.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: increased number of gauss points for thermal and enthalpy\\
+\vspace{3em}
+
+\noindent \textbf{Change \#525} with diff file ISSM-19638-19639.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/acenet.m M /issm/trunk-jpl/src/m/classes/clusters/castor.m M /issm/trunk-jpl/src/m/classes/clusters/cloud.m M /issm/trunk-jpl/src/m/classes/clusters/cosmos.m M /issm/trunk-jpl/src/m/classes/clusters/discover.m M /issm/trunk-jpl/src/m/classes/clusters/gemini.m M /issm/trunk-jpl/src/m/classes/clusters/generic.py M /issm/trunk-jpl/src/m/classes/clusters/generic\_static.m M /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m M /issm/trunk-jpl/src/m/classes/clusters/hpc.m M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/classes/clusters/pollux.m M /issm/trunk-jpl/src/m/dev/devpath.m M /issm/trunk-jpl/src/m/solve/solve.m M /issm/trunk-jpl/src/m/solve/solve.py\\
+Export determination: 6. \\
+Rationale: CHG: need to introduce the isdakota parameter in the BuildQueueScript, because for versions of Dakota >=6, we are now calling a different executable, called issm\_dakota.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#526} with diff file ISSM-19639-19640.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/dev/devpath.m M /issm/trunk-jpl/src/m/dev/devpath.py\\
+Export determination: 6. \\
+Rationale: BUG: removed path specific to Eric's build\\
+\vspace{3em}
+
+\noindent \textbf{Change \#527} with diff file ISSM-19640-19641.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: BUG: Eric forgot to change generic.m\\
+\vspace{3em}
+
+\noindent \textbf{Change \#528} with diff file ISSM-19641-19642.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive108.nc M /issm/trunk-jpl/test/Archives/Archive109.nc M /issm/trunk-jpl/test/Archives/Archive111.nc M /issm/trunk-jpl/test/Archives/Archive120.nc M /issm/trunk-jpl/test/Archives/Archive121.nc M /issm/trunk-jpl/test/Archives/Archive122.nc M /issm/trunk-jpl/test/Archives/Archive124.nc M /issm/trunk-jpl/test/Archives/Archive206.nc M /issm/trunk-jpl/test/Archives/Archive207.nc M /issm/trunk-jpl/test/Archives/Archive210.nc M /issm/trunk-jpl/test/Archives/Archive211.nc M /issm/trunk-jpl/test/Archives/Archive224.nc M /issm/trunk-jpl/test/Archives/Archive225.nc M /issm/trunk-jpl/test/Archives/Archive227.nc M /issm/trunk-jpl/test/Archives/Archive232.nc M /issm/trunk-jpl/test/Archives/Archive233.nc M /issm/trunk-jpl/test/Archives/Archive237.nc M /issm/trunk-jpl/test/Archives/Archive312.nc M /issm/trunk-jpl/test/Archives/Archive313.nc M /issm/trunk-jpl/test/Archives/Archive315.nc M /issm/trunk-jpl/test/Archives/Archive316.nc M /issm/trunk-jpl/test/Archives/Archive317.nc M /issm/trunk-jpl/test/Archives/Archive318.nc M /issm/trunk-jpl/test/Archives/Archive324.nc M /issm/trunk-jpl/test/Archives/Archive325.nc M /issm/trunk-jpl/test/Archives/Archive326.nc M /issm/trunk-jpl/test/Archives/Archive327.nc M /issm/trunk-jpl/test/Archives/Archive329.nc M /issm/trunk-jpl/test/Archives/Archive406.nc M /issm/trunk-jpl/test/Archives/Archive407.nc M /issm/trunk-jpl/test/Archives/Archive409.nc M /issm/trunk-jpl/test/Archives/Archive410.nc M /issm/trunk-jpl/test/Archives/Archive411.nc M /issm/trunk-jpl/test/Archives/Archive415.nc M /issm/trunk-jpl/test/Archives/Archive416.nc M /issm/trunk-jpl/test/Archives/Archive426.nc M /issm/trunk-jpl/test/Archives/Archive427.nc M /issm/trunk-jpl/test/Archives/Archive431.nc M /issm/trunk-jpl/test/Archives/Archive432.nc M /issm/trunk-jpl/test/Archives/Archive436.nc M /issm/trunk-jpl/test/Archives/Archive437.nc M /issm/trunk-jpl/test/Archives/Archive439.nc M /issm/trunk-jpl/test/Archives/Archive505.nc M /issm/trunk-jpl/test/Archives/Archive506.nc M /issm/trunk-jpl/test/Archives/Archive507.nc M /issm/trunk-jpl/test/Archives/Archive508.nc M /issm/trunk-jpl/test/Archives/Archive509.nc M /issm/trunk-jpl/test/Archives/Archive510.nc M /issm/trunk-jpl/test/Archives/Archive513.nc M /issm/trunk-jpl/test/Archives/Archive515.nc M /issm/trunk-jpl/test/Archives/Archive516.nc M /issm/trunk-jpl/test/Archives/Archive802.nc M /issm/trunk-jpl/test/Archives/Archive803.nc M /issm/trunk-jpl/test/Archives/Archive805.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated archivesfor improved thermal\\
+\vspace{3em}
+
+\noindent \textbf{Change \#529} with diff file ISSM-19642-19643.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.m M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/model.m\\
+Export determination: 6. \\
+Rationale: CHG: update lonestar time plus SMBforcing conversions\\
+\vspace{3em}
+
+\noindent \textbf{Change \#530} with diff file ISSM-19643-19644.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/classes/SMB.m D /issm/trunk-jpl/src/m/classes/SMB.py A /issm/trunk-jpl/src/m/classes/oldclasses/SMB.m\\
+Export determination: 6. \\
+Rationale: CHG: move SMB to old classes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#531} with diff file ISSM-19644-19645.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SmbAnalysis.cpp M /issm/trunk-jpl/src/c/bamg/VertexOnGeom.cpp\\
+Export determination: 6. \\
+Rationale: CHG: cleaning up unneeded code\\
+\vspace{3em}
+
+\noindent \textbf{Change \#532} with diff file ISSM-19645-19646.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: avoid mpi being redefined in version 5.3 of dakota.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#533} with diff file ISSM-19646-19647.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive209.nc M /issm/trunk-jpl/test/Archives/Archive214.nc M /issm/trunk-jpl/test/Archives/Archive431.nc\\
+Export determination: 6. \\
+Rationale: CHG: three archives still having problems\\
+\vspace{3em}
+
+\noindent \textbf{Change \#534} with diff file ISSM-19647-19648.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: finalize Petsc when calling the descructor.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#535} with diff file ISSM-19648-19649.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test211.m M /issm/trunk-jpl/test/NightlyRun/test431.m M /issm/trunk-jpl/test/NightlyRun/test431.py M /issm/trunk-jpl/test/NightlyRun/test701.m\\
+Export determination: 6. \\
+Rationale: CHG: updated tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#536} with diff file ISSM-19649-19650.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: CHG: allow generic cluter to run dakota in parallel for versions >= 6\\
+\vspace{3em}
+
+\noindent \textbf{Change \#537} with diff file ISSM-19650-19651.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/qmu.m\\
+Export determination: 6. \\
+Rationale: CHG: added many checks for values of params options, which are the ones most impacted by running Dakota 6 and + in parallel.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#538} with diff file ISSM-19651-19652.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: reverting back to previous configuration.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#539} with diff file ISSM-19652-19653.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.cpp M /issm/trunk-jpl/src/c/classes/Dakota/IssmParallelDirectApplicInterface.h\\
+Export determination: 6. \\
+Rationale: CHG: switching a lot of the header file code into cpp file to avoid recompile all of the time.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#540} with diff file ISSM-19653-19654.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/issm\_dakota.cpp\\
+Export determination: 6. \\
+Rationale: CHG: hooking up the Dakota ISSM Parallel Driver.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#541} with diff file ISSM-19654-19655.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/qmu/dakota\_in\_params.m\\
+Export determination: 6. \\
+Rationale: CHG: adding evaluation\_scheduling and processors\_per\_evaluation fields, to handle Dakota 6+ paralell capabilities.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#542} with diff file ISSM-19655-19656.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/qmu/postqmu.m\\
+Export determination: 6. \\
+Rationale: CHG: this check was not necessary and can be legit (i.e no error file)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#543} with diff file ISSM-19656-19657.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/qmu/dakota\_in\_write.m\\
+Export determination: 6. \\
+Rationale: CHG: branch on dakota version to write the params section.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#544} with diff file ISSM-19657-19658.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/qmu/dakota\_out\_parse.m\\
+Export determination: 6. \\
+Rationale: CHG: methodName may not be found in version Dakota 6+, so ignore.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#545} with diff file ISSM-19658-19659.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test218.m M /issm/trunk-jpl/test/NightlyRun/test234.m M /issm/trunk-jpl/test/NightlyRun/test235.m M /issm/trunk-jpl/test/NightlyRun/test412.m M /issm/trunk-jpl/test/NightlyRun/test413.m M /issm/trunk-jpl/test/NightlyRun/test414.m M /issm/trunk-jpl/test/NightlyRun/test417.m M /issm/trunk-jpl/test/NightlyRun/test420.m\\
+Export determination: 6. \\
+Rationale: CHG: starting transition to nightly runs for Dakota version 6.0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#546} with diff file ISSM-19659-19660.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/dakota/configs/6.2 A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.mac.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.yosemite.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.pfe.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/DakotaDev.cmake.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/NonDLocalReliability.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/NonDSampling.cpp.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/pecos\_global\_defs.hpp.patch A /issm/trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh\\
+Export determination: 6. \\
+Rationale: CHG: added 6.2 dakota build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#547} with diff file ISSM-19660-19661.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan\\
+Export determination: 6. \\
+Rationale: CHG: Upgraded nightlies to use Dakota 6.2.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#548} with diff file ISSM-19661-19662.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: CHG: Moved Dakota version check to after we check if the build isDakota.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#549} with diff file ISSM-19662-19663.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: TEST: checking installation without MEXLINK\\
+\vspace{3em}
+
+\noindent \textbf{Change \#550} with diff file ISSM-19663-19664.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test120.m\\
+Export determination: 6. \\
+Rationale: CHG: NR tolerance\\
+\vspace{3em}
+
+\noindent \textbf{Change \#551} with diff file ISSM-19664-19665.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/dakota/configs/6.1-mpi D /issm/trunk-jpl/externalpackages/dakota/configs/6.2-mpi D /issm/trunk-jpl/externalpackages/dakota/install-6.1-linux64.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64-yosemite.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.1-macosx64.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-linux64.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.1-mpi-macosx64-yosemite.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx64-yosemite.sh (from /issm/trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh:19663) A /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.2-mpi-macosx64-yosemite.sh\\
+Export determination: 6. \\
+Rationale: CHG: clean up old mpi files\\
+\vspace{3em}
+
+\noindent \textbf{Change \#552} with diff file ISSM-19665-19666.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh\\
+Export determination: 6. \\
+Rationale: CHG: add snowleopard note in mac 6.2 build\\
+\vspace{3em}
+
+\noindent \textbf{Change \#553} with diff file ISSM-19666-19667.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: dakota flags are not valid for all compilers, remove them\\
+\vspace{3em}
+
+\noindent \textbf{Change \#554} with diff file ISSM-19667-19668.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/BuildDakotaCustom.cmake.lonestar.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.lonestar.patch M /issm/trunk-jpl/externalpackages/dakota/install-5.3.1-lonestar.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh\\
+Export determination: 6. \\
+Rationale: CHG add cluster scripts for dakota\\
+\vspace{3em}
+
+\noindent \textbf{Change \#555} with diff file ISSM-19668-19669.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh\\
+Export determination: 6. \\
+Rationale: CHG: no path to mpi compilers\\
+\vspace{3em}
+
+\noindent \textbf{Change \#556} with diff file ISSM-19670-19671.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m M /issm/trunk-jpl/src/m/qmu/dakota\_in\_write.m\\
+Export determination: 6. \\
+Rationale: CHG: updating for dakota cluster run\\
+\vspace{3em}
+
+\noindent \textbf{Change \#557} with diff file ISSM-19671-19672.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/issm\_dakota.cpp\\
+Export determination: 6. \\
+Rationale: CHG: add err file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#558} with diff file ISSM-19672-19673.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/qmu/dakota\_out\_parse.m\\
+Export determination: 6. \\
+Rationale: CHG: add option for new dakota read of dat file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#559} with diff file ISSM-19673-19674.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/discover.m M /issm/trunk-jpl/src/m/classes/clusters/greenplanet.m M /issm/trunk-jpl/src/m/classes/clusters/hpc.m M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: add function for np calculation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#560} with diff file ISSM-19674-19675.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.py M /issm/trunk-jpl/src/m/classes/clusters/pfe.py\\
+Export determination: 6. \\
+Rationale: CHG: update python cluster classes to deal with issm\_dakota\\
+\vspace{3em}
+
+\noindent \textbf{Change \#561} with diff file ISSM-19675-19676.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_ross A /issm/trunk-jpl/jenkins/linux64\_ross\_ad A /issm/trunk-jpl/jenkins/linux64\_ross\_ampi\\
+Export determination: 6. \\
+Rationale: ADD: new files for Ross Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#562} with diff file ISSM-19676-19677.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\\
+Export determination: 6. \\
+Rationale: CHG: Reduced the number of CPUS for nightly runs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#563} with diff file ISSM-19677-19678.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Attempting to improve Python performance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#564} with diff file ISSM-19678-19679.diff: \\
+Function name: \\
+D /issm/trunk-jpl/configs/config-greenplanet.sh D /issm/trunk-jpl/configs/config-hoffman2.sh D /issm/trunk-jpl/configs/config-linux64-ubuntu64.sh\\
+Export determination: 6. \\
+Rationale: DEL: these configs file have not been working for a long time\\
+\vspace{3em}
+
+\noindent \textbf{Change \#565} with diff file ISSM-19679-19680.diff: \\
+Function name: \\
+D /issm/trunk-jpl/configs/config-linux64-ad.sh D /issm/trunk-jpl/configs/config-linux64-cmake.sh D /issm/trunk-jpl/configs/config-linux64-larsen-ad.sh D /issm/trunk-jpl/configs/config-linux64-larsen-gia.sh D /issm/trunk-jpl/configs/config-linux64-larsen.sh D /issm/trunk-jpl/configs/config-linux64-murdo-nopetsc.sh D /issm/trunk-jpl/configs/config-linux64-murdo.sh D /issm/trunk-jpl/configs/config-macosx64-static.sh D /issm/trunk-jpl/configs/config-win64.sh D /issm/trunk-jpl/configs/config-win7-32.sh D /issm/trunk-jpl/configs/config-win7-64-parallel.sh D /issm/trunk-jpl/configs/config-win7-64.sh\\
+Export determination: 6. \\
+Rationale: DEL: removing some old configure scripts\\
+\vspace{3em}
+
+\noindent \textbf{Change \#566} with diff file ISSM-19680-19681.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive3008.nc M /issm/trunk-jpl/test/Archives/Archive3009.nc M /issm/trunk-jpl/test/Archives/Archive3108.nc M /issm/trunk-jpl/test/Archives/Archive3109.nc\\
+Export determination: 6. \\
+Rationale: CHG: Updated archives to fix AD nightlies.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#567} with diff file ISSM-19681-19682.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/boost/install-1.55-linux.sh\\
+Export determination: 6. \\
+Rationale: CHG: use python 2.7 for linux\\
+\vspace{3em}
+
+\noindent \textbf{Change \#568} with diff file ISSM-19682-19683.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/esmfbinders.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added esmfbinders to return surface output.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#569} with diff file ISSM-19683-19684.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixing nasty segfault in case we have non-contiguous data!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#570} with diff file ISSM-19684-19685.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Adding logic to Jenkins script to wait on child processes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#571} with diff file ISSM-19685-19686.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: need 2.8.5 for snowleopard build with petsc < 3.5\\
+\vspace{3em}
+
+\noindent \textbf{Change \#572} with diff file ISSM-19686-19687.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/cmake/install-2.8.5-macosx64-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: ok, we don't need for mac - use the system cmake 3.0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#573} with diff file ISSM-19687-19688.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: test cmake 2.8.11.2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#574} with diff file ISSM-19688-19689.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: changed test exlucdes list to check on Petsc problem.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#575} with diff file ISSM-19689-19690.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/boost/install-1.49-linux.sh\\
+Export determination: 6. \\
+Rationale: CHG: use python2.7\\
+\vspace{3em}
+
+\noindent \textbf{Change \#576} with diff file ISSM-19690-19691.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh A /issm/trunk-jpl/externalpackages/matplotlib/install-macosx64-snowleopard.sh A /issm/trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make A /issm/trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: NEW: add snowleopard builds for packages that don't work with snowleoplard compiler\\
+\vspace{3em}
+
+\noindent \textbf{Change \#577} with diff file ISSM-19691-19692.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh A /issm/trunk-jpl/externalpackages/m1qn3/install-macosx64-snowleopard.sh (from /issm/trunk-jpl/externalpackages/m1qn3/install-macos64-snowleopard.sh:19690)\\
+Export determination: 6. \\
+Rationale: CHG: rename m1qn3 install\\
+\vspace{3em}
+
+\noindent \textbf{Change \#578} with diff file ISSM-19692-19693.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/triangle/configs/macosx64/configure.snowleopard.make A /issm/trunk-jpl/externalpackages/triangle/configs/macosx64\_snowleopard A /issm/trunk-jpl/externalpackages/triangle/configs/macosx64\_snowleopard/configure.make M /issm/trunk-jpl/externalpackages/triangle/install-macosx64-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: NEW: need to add snowleopard install\\
+\vspace{3em}
+
+\noindent \textbf{Change \#579} with diff file ISSM-19693-19694.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-win10.sh M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Changed Petsc version for Windows jenkins from dev to 3.6.2 ADD: New install script for Windows using Petsc version 3.6.2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#580} with diff file ISSM-19694-19695.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: reverted back to old tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#581} with diff file ISSM-19695-19696.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.pfe.patch D /issm/trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh (from /issm/trunk-jpl/externalpackages/dakota/install-6.2-pfe.sh:19689)\\
+Export determination: 6. \\
+Rationale: CHG: validate install for pfe dakota 6.2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#582} with diff file ISSM-19696-19697.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.2-pleiades.sh\\
+Export determination: 6. \\
+Rationale: CHG: we need to make boost\\
+\vspace{3em}
+
+\noindent \textbf{Change \#583} with diff file ISSM-19697-19698.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/install-1.55-pleiades\_dakota6.2.sh\\
+Export determination: 6. \\
+Rationale: NEW: make boost for dakota 6.2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#584} with diff file ISSM-19698-19699.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/issm\_dakota.cpp\\
+Export determination: 6. \\
+Rationale: BUG: wrong size\\
+\vspace{3em}
+
+\noindent \textbf{Change \#585} with diff file ISSM-19699-19700.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/triangle A /issm/trunk-jpl/externalpackages/triangle/configs/javascript A /issm/trunk-jpl/externalpackages/triangle/configs/javascript/configure.make A /issm/trunk-jpl/externalpackages/triangle/configs/javascript/makefile A /issm/trunk-jpl/externalpackages/triangle/install-javascript.sh M /issm/trunk-jpl/externalpackages/triangle/install.sh A /issm/trunk-jpl/externalpackages/triangle/triangle.h.patch.js\\
+Export determination: 6. \\
+Rationale: CHG: new install for javascript linked triangle library.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#586} with diff file ISSM-19700-19701.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/TriMeshx/TriMeshx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: some style rewrite.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#587} with diff file ISSM-19701-19702.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Exceptions/Exceptions.cpp M /issm/trunk-jpl/src/c/shared/Exceptions/exceptions.h M /issm/trunk-jpl/src/wrappers/matlab/include/wrapper\_macros.h M /issm/trunk-jpl/src/wrappers/python/include/wrapper\_macros.h\\
+Export determination: 6. \\
+Rationale: CHG: no need for differentiated report functions!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#588} with diff file ISSM-19702-19703.diff: \\
+Function name: \\
+M /issm/trunk-jpl M /issm/trunk-jpl/configure.ac M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/m/array/listToMatrix.js A /issm/trunk-jpl/src/m/classes/mesh2d.js A /issm/trunk-jpl/src/m/classes/model.js A /issm/trunk-jpl/src/m/mesh/triangle.js A /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.js M /issm/trunk-jpl/src/wrappers/Makefile.am M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h A /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.js M /issm/trunk-jpl/src/wrappers/bindings.h A /issm/trunk-jpl/src/wrappers/javascript A /issm/trunk-jpl/src/wrappers/javascript/Makefile.am A /issm/trunk-jpl/src/wrappers/javascript/include A /issm/trunk-jpl/src/wrappers/javascript/include/javascriptincludes.h A /issm/trunk-jpl/src/wrappers/javascript/include/wrapper\_macros.h A /issm/trunk-jpl/src/wrappers/javascript/io A /issm/trunk-jpl/src/wrappers/javascript/io/ApiPrintf.cpp A /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp A /issm/trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp A /issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h A /issm/trunk-jpl/test/Exp/Square.js A /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: added new capability to compile javascript modules usable in a webpage (test101.html). Relies on the emscripten emcc compiler (see m4/issm\_options.m4). triangle and TriMesh are the first modules to be tested. Extensive issues with compiling triangle with em++ and not emcc (C++ vs C, because of unresolved symbols at link time). We now have a workable model, mesh and triangle mesher for javascript repliction of test101. Have to work further on parameterize and solve.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#589} with diff file ISSM-19703-19704.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: fixing m4 macros, Eric's settings were hardcoded\\
+\vspace{3em}
+
+\noindent \textbf{Change \#590} with diff file ISSM-19704-19705.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/dev/issmversion.m M /issm/trunk-jpl/src/m/dev/issmversion.py\\
+Export determination: 6. \\
+Rationale: CHG: added missing blank space\\
+\vspace{3em}
+
+\noindent \textbf{Change \#591} with diff file ISSM-19705-19706.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: handle issues with libraries for llvm emscripten linking.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#592} with diff file ISSM-19706-19707.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: putting the comment in the right place.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#593} with diff file ISSM-19707-19708.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/friction.py M /issm/trunk-jpl/src/m/classes/frictioncoulomb.m A /issm/trunk-jpl/src/m/classes/frictioncoulomb.py M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m A /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py M /issm/trunk-jpl/src/m/classes/timestepping.py\\
+Export determination: 6. \\
+Rationale: NEW: python implementation of Coulomb limit friction class and MISMIP+ basal melt parameterization class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#594} with diff file ISSM-19708-19709.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py\\
+Export determination: 6. \\
+Rationale: BUG: fixing (partially) time and step in results\\
+\vspace{3em}
+
+\noindent \textbf{Change \#595} with diff file ISSM-19709-19710.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h M /issm/trunk-jpl/src/c/cores/controlm1qn3\_core.cpp M /issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed step=0 in transient runs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#596} with diff file ISSM-19710-19711.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.js\\
+Export determination: 6. \\
+Rationale: CHG: improved format string.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#597} with diff file ISSM-19711-19712.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/array/ArrayOperations.js M /issm/trunk-jpl/src/m/mesh/triangle.js M /issm/trunk-jpl/src/m/mesh/triangle.m A /issm/trunk-jpl/src/m/parameterization/setmask.js M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h A /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.js M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: implemented NodeConnectivity module in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#598} with diff file ISSM-19712-19713.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/triangle.m\\
+Export determination: 6. \\
+Rationale: BUG: wrong commit from Eric\\
+\vspace{3em}
+
+\noindent \textbf{Change \#599} with diff file ISSM-19713-19714.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py\\
+Export determination: 6. \\
+Rationale: CHG: explanation for sign convention different from MISMIP+ description\\
+\vspace{3em}
+
+\noindent \textbf{Change \#600} with diff file ISSM-19714-19715.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/globals.h M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: found a way to avoid repeat of global.h inclusion only for javascript wrappers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#601} with diff file ISSM-19715-19716.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h\\
+Export determination: 6. \\
+Rationale: CHG: comment on why we need this defined only for this module.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#602} with diff file ISSM-19716-19717.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/triangle.js M /issm/trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h A /issm/trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.js M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.cpp M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: new ElementConnectivity javascript module. Simplified the WRAPPER macro, back to what it was before javascript modifications. The header file for the wrapper now defines WRAPPER.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#603} with diff file ISSM-19717-19718.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.h M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.h M /issm/trunk-jpl/src/wrappers/TriMesh/TriMesh.h M /issm/trunk-jpl/src/wrappers/javascript/include/wrapper\_macros.h\\
+Export determination: 6. \\
+Rationale: CHG: shuffling things around. wrapper\_macros does not define WRAPPER for the javascript but instead the specific wrapper header file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#604} with diff file ISSM-19718-19719.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html A /issm/trunk-jpl/test/Par/SquareShelfConstrained.js\\
+Export determination: 6. \\
+Rationale: CHG: starting parameterization routines in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#605} with diff file ISSM-19719-19720.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/ArrayOperations.js A /issm/trunk-jpl/src/m/classes/constants.js A /issm/trunk-jpl/src/m/classes/geometry.js A /issm/trunk-jpl/src/m/classes/mask.js M /issm/trunk-jpl/src/m/classes/mesh2d.js M /issm/trunk-jpl/src/m/classes/model.js A /issm/trunk-jpl/src/m/geometry/FlagElements.js M /issm/trunk-jpl/src/m/parameterization/setmask.js\\
+Export determination: 6. \\
+Rationale: CHG: finished routines related to setmask in javascript, and startted classes and routines related to parameterization, in partcular, geometry and constants.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#606} with diff file ISSM-19720-19721.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/analyses.m4 M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h M /issm/trunk-jpl/src/c/analyses/analyses.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/cores/hydrology\_core.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/classes/hydrologysommers.m M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/HydrologyBumpHeightEnum.m A /issm/trunk-jpl/src/m/enum/HydrologyBumpSpacingEnum.m A /issm/trunk-jpl/src/m/enum/HydrologyEnglacialInputEnum.m A /issm/trunk-jpl/src/m/enum/HydrologyGapHeightEnum.m A /issm/trunk-jpl/src/m/enum/HydrologyHeadEnum.m A /issm/trunk-jpl/src/m/enum/HydrologyReynoldsEnum.m A /issm/trunk-jpl/src/m/enum/HydrologySommersAnalysisEnum.m A /issm/trunk-jpl/src/m/enum/HydrologySpcheadEnum.m A /issm/trunk-jpl/src/m/enum/HydrologysommersEnum.m\\
+Export determination: 6. \\
+Rationale: NEW: working on new subglacial hydrology model with Aleah, not working just yet\\
+\vspace{3em}
+
+\noindent \textbf{Change \#607} with diff file ISSM-19721-19722.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/ArrayOperations.js M /issm/trunk-jpl/src/m/classes/mesh2d.js A /issm/trunk-jpl/src/m/classes/pairoptions.js A /issm/trunk-jpl/src/m/classes/plotoptions.js M /issm/trunk-jpl/src/m/geometry/FlagElements.js M /issm/trunk-jpl/src/m/mesh/triangle.js M /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.js M /issm/trunk-jpl/src/m/parameterization/setmask.js A /issm/trunk-jpl/src/m/plot/checkplotoptions.js A /issm/trunk-jpl/src/m/plot/plot\_manager.js A /issm/trunk-jpl/src/m/plot/plot\_unit.js A /issm/trunk-jpl/src/m/plot/plotmodel.js A /issm/trunk-jpl/src/m/plot/processdata.js A /issm/trunk-jpl/src/m/plot/processmesh.js\\
+Export determination: 6. \\
+Rationale: CHG: getting the plotmodel capability online.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#608} with diff file ISSM-19722-19723.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: plotmodel.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#609} with diff file ISSM-19723-19724.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: testing test101.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#610} with diff file ISSM-19724-19725.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/plot/applyoptions.js A /issm/trunk-jpl/src/m/plot/initWebGL.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG: starting web gl integration.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#611} with diff file ISSM-19725-19726.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h M /issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h M /issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DoubleArrayInput.h M /issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h M /issm/trunk-jpl/src/c/classes/Inputs/Input.h M /issm/trunk-jpl/src/c/classes/Inputs/Inputs.h M /issm/trunk-jpl/src/c/classes/Inputs/IntInput.h M /issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h M /issm/trunk-jpl/src/c/classes/Inputs/SegInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TetraInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp M /issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/HydrologyConductivityEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: working on the RHS of Hydro Aleah's model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#612} with diff file ISSM-19726-19727.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/plot/initWebGL.js A /issm/trunk-jpl/src/m/plot/webgl.js (from /issm/trunk-jpl/src/m/plot/initWebGL.js:19724) M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: renaming things around.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#613} with diff file ISSM-19727-19728.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: shuffling the code order.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#614} with diff file ISSM-19728-19729.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: Implementing basic webgl plot\_unit functionality for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#615} with diff file ISSM-19729-19730.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG:Fixing drawing methods and zoom behavior for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#616} with diff file ISSM-19730-19731.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG:Changing to linear color scaling for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#617} with diff file ISSM-19731-19732.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: changing the sign of conductivity\\
+\vspace{3em}
+
+\noindent \textbf{Change \#618} with diff file ISSM-19732-19733.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: control background color from options.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#619} with diff file ISSM-19733-19734.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/miscellaneous/rgbcolor.js\\
+Export determination: 6. \\
+Rationale: CHG: conversion utility\\
+\vspace{3em}
+
+\noindent \textbf{Change \#620} with diff file ISSM-19734-19735.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: added zoom factor default.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#621} with diff file ISSM-19735-19736.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/array/ArrayOperations.js A /issm/trunk-jpl/src/m/array/array\_operations.js (from /issm/trunk-jpl/src/m/array/ArrayOperations.js:19729)\\
+Export determination: 6. \\
+Rationale: CHG: renaming.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#622} with diff file ISSM-19736-19737.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/array/array\_operations.js A /issm/trunk-jpl/src/m/array/arrayoperations.js (from /issm/trunk-jpl/src/m/array/array\_operations.js:19735)\\
+Export determination: 6. \\
+Rationale: CHG: renmaing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#623} with diff file ISSM-19737-19738.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/array/listToMatrix.js\\
+Export determination: 6. \\
+Rationale: CHG: not needed anymore.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#624} with diff file ISSM-19738-19739.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/frictionsommers.m\\
+Export determination: 6. \\
+Rationale: NEW: adding new friction law coupled to hydro model (one way coupling right now)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#625} with diff file ISSM-19739-19740.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/plotmodel.js M /issm/trunk-jpl/src/m/plot/webgl.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: better integration of webgl routines and plot\_unit. + optimization of memory allocation during compilation of javascript modules.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#626} with diff file ISSM-19740-19741.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.h M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp M /issm/trunk-jpl/src/c/classes/Loads/Friction.h M /issm/trunk-jpl/src/c/cores/hydrology\_core.cpp M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_nonlinear.cpp\\
+Export determination: 6. \\
+Rationale: NEW: done with gap height update\\
+\vspace{3em}
+
+\noindent \textbf{Change \#627} with diff file ISSM-19741-19742.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/checkplotoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/plotmodel.js M /issm/trunk-jpl/src/m/plot/processdata.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: some minor changes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#628} with diff file ISSM-19742-19743.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/miscellaneous/colorbars.js\\
+Export determination: 6. \\
+Rationale: NEW: matlab colorbars;\\
+\vspace{3em}
+
+\noindent \textbf{Change \#629} with diff file ISSM-19743-19744.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: minimalistic test101.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#630} with diff file ISSM-19744-19745.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp A /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp A /issm/trunk-jpl/src/c/classes/Loads/Moulin.h M /issm/trunk-jpl/src/c/classes/classes.h M /issm/trunk-jpl/src/c/cores/hydrology\_core.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/hydrologysommers.m M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/HydrologyMoulinInputEnum.m A /issm/trunk-jpl/src/m/enum/MoulinEnum.m M /issm/trunk-jpl/src/m/plot/plot\_transient\_movie.m\\
+Export determination: 6. \\
+Rationale: NEW: added discrete moulins to hydrology model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#631} with diff file ISSM-19745-19746.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: Removing test101 webgl dependencies\\
+\vspace{3em}
+
+\noindent \textbf{Change \#632} with diff file ISSM-19746-19747.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/solutionsequences/solutionsequence\_nonlinear.cpp\\
+Export determination: 6. \\
+Rationale: CHG: reverting back\\
+\vspace{3em}
+
+\noindent \textbf{Change \#633} with diff file ISSM-19747-19748.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh M /issm/trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh M /issm/trunk-jpl/externalpackages/python/install-2.7.3-macosx-snowleopard.sh M /issm/trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: update for new python install\\
+\vspace{3em}
+
+\noindent \textbf{Change \#634} with diff file ISSM-19748-19749.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/vim/addons/vim/syntax/c.vim\\
+Export determination: 6. \\
+Rationale: CHG: added new enums to vim\\
+\vspace{3em}
+
+\noindent \textbf{Change \#635} with diff file ISSM-19749-19750.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp A /issm/trunk-jpl/src/c/classes/Loads/Neumannflux.cpp A /issm/trunk-jpl/src/c/classes/Loads/Neumannflux.h M /issm/trunk-jpl/src/c/classes/classes.h M /issm/trunk-jpl/src/c/cores/hydrology\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/constants.m M /issm/trunk-jpl/src/m/classes/hydrologysommers.m M /issm/trunk-jpl/src/m/classes/mesh2d.m D /issm/trunk-jpl/src/m/enum/ConstantsOmegaEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/HydrologyNeumannfluxEnum.m A /issm/trunk-jpl/src/m/enum/MeshSegmentsEnum.m A /issm/trunk-jpl/src/m/enum/NeumannfluxEnum.m\\
+Export determination: 6. \\
+Rationale: NEW: added Neumann BC to Hydro model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#636} with diff file ISSM-19750-19751.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/NightlyRun/test350.m\\
+Export determination: 6. \\
+Rationale: NEW: new NR test for Aleah's hydrology model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#637} with diff file ISSM-19751-19752.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive350.nc M /issm/trunk-jpl/test/Par/SquareShelfConstrained.par\\
+Export determination: 6. \\
+Rationale: NEW: added archive for hydro test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#638} with diff file ISSM-19752-19753.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp\\
+Export determination: 6. \\
+Rationale: CHG: can write to the same VALUE type (it's either a string, or a double!:). Works because python and matlab abstract return types, javascript does not.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#639} with diff file ISSM-19753-19754.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js A /issm/trunk-jpl/src/m/classes/SMBforcing.js A /issm/trunk-jpl/src/m/classes/basalforcings.js A /issm/trunk-jpl/src/m/classes/clusters/generic.js A /issm/trunk-jpl/src/m/classes/damage.js A /issm/trunk-jpl/src/m/classes/debug.js A /issm/trunk-jpl/src/m/classes/flowequation.js A /issm/trunk-jpl/src/m/classes/friction.js A /issm/trunk-jpl/src/m/classes/groundingline.js A /issm/trunk-jpl/src/m/classes/initialization.js A /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/model.js M /issm/trunk-jpl/src/m/classes/pairoptions.js M /issm/trunk-jpl/src/m/classes/plotoptions.js A /issm/trunk-jpl/src/m/classes/rifts.js A /issm/trunk-jpl/src/m/classes/settings.js A /issm/trunk-jpl/src/m/classes/stressbalance.js A /issm/trunk-jpl/src/m/classes/template.js A /issm/trunk-jpl/src/m/classes/timestepping.js A /issm/trunk-jpl/src/m/classes/toolkits.js A /issm/trunk-jpl/src/m/classes/verbose.js A /issm/trunk-jpl/src/m/materials/paterson.js M /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.js A /issm/trunk-jpl/src/m/solvers/issmgslsolver.js M /issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.h A /issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.js M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h A /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h A /issm/trunk-jpl/test/Data/SquareShelfConstrained.data.js M /issm/trunk-jpl/test/NightlyRun/test101.html M /issm/trunk-jpl/test/Par/SquareShelfConstrained.js\\
+Export determination: 6. \\
+Rationale: CHG: new modules in javascript, IssmConfig and InterpFromMeshToMesh2d, which uses the bamg objects. New classes to be able to finish off the model.js implementation. New paterson, solvers for javacsript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#640} with diff file ISSM-19754-19755.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/cmake/install-macosx64-snowleopard.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx64-snowleopard.sh A /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-snowleopard-dakota.sh\\
+Export determination: 6. \\
+Rationale: new dakota for mac snowl\\
+\vspace{3em}
+
+\noindent \textbf{Change \#641} with diff file ISSM-19755-19756.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\\
+Export determination: 6. \\
+Rationale: CHG: Debugging stalled test by running on single CPU.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#642} with diff file ISSM-19756-19757.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test208.m M /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: CHG: shutting down test temporarily\\
+\vspace{3em}
+
+\noindent \textbf{Change \#643} with diff file ISSM-19757-19758.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/hydrologysommers.m\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#644} with diff file ISSM-19758-19759.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\\
+Export determination: 6. \\
+Rationale: CHG: Removed test243 from Jenkins Linux runs on Ross and restored CPUs to run to 3.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#645} with diff file ISSM-19759-19760.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js M /issm/trunk-jpl/src/m/classes/SMBforcing.js A /issm/trunk-jpl/src/m/classes/autodiff.js A /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/basalforcings.js A /issm/trunk-jpl/src/m/classes/calving.js A /issm/trunk-jpl/src/m/classes/flaim.js A /issm/trunk-jpl/src/m/classes/gia.js A /issm/trunk-jpl/src/m/classes/hydrologyshreve.js A /issm/trunk-jpl/src/m/classes/inversion.js A /issm/trunk-jpl/src/m/classes/masstransport.js A /issm/trunk-jpl/src/m/classes/miscellaneous.js M /issm/trunk-jpl/src/m/classes/model.js A /issm/trunk-jpl/src/m/classes/outputdefinition.js A /issm/trunk-jpl/src/m/classes/private.js A /issm/trunk-jpl/src/m/classes/qmu.js A /issm/trunk-jpl/src/m/classes/radaroverlay.js A /issm/trunk-jpl/src/m/classes/steadystate.js M /issm/trunk-jpl/src/m/classes/stressbalance.js A /issm/trunk-jpl/src/m/classes/thermal.js A /issm/trunk-jpl/src/m/classes/transient.js M /issm/trunk-jpl/src/m/plot/processdata.js\\
+Export determination: 6. \\
+Rationale: CHG: finished implementing all classes and modules needed to parameterize test101 in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#646} with diff file ISSM-19760-19761.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js A /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding plot\_mesh capability for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#647} with diff file ISSM-19761-19762.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/adolc/install-withampi-macosx64.sh\\
+Export determination: 6. \\
+Rationale: CHG: new github address.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#648} with diff file ISSM-19762-19763.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: hack for thermal should be false by default\\
+\vspace{3em}
+
+\noindent \textbf{Change \#649} with diff file ISSM-19763-19764.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: Making the plot 3D in 2D, i.e. removing z=0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#650} with diff file ISSM-19764-19765.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FloatingAreaEnum.m M /issm/trunk-jpl/test/NightlyRun/test314.m M /issm/trunk-jpl/test/NightlyRun/test314.py M /issm/trunk-jpl/test/NightlyRun/test317.m M /issm/trunk-jpl/test/NightlyRun/test317.py\\
+Export determination: 6. \\
+Rationale: NEW: added floating area output result\\
+\vspace{3em}
+
+\noindent \textbf{Change \#651} with diff file ISSM-19765-19766.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive314.nc M /issm/trunk-jpl/test/Archives/Archive317.nc\\
+Export determination: 6. \\
+Rationale: NEW: minor archives for floating area output\\
+\vspace{3em}
+
+\noindent \textbf{Change \#652} with diff file ISSM-19766-19767.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding cap on gap and support for default friction law\\
+\vspace{3em}
+
+\noindent \textbf{Change \#653} with diff file ISSM-19767-19768.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/scipy/install-macosx-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: add compilers\\
+\vspace{3em}
+
+\noindent \textbf{Change \#654} with diff file ISSM-19768-19769.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js A /issm/trunk-jpl/src/m/parameterization/setflowequation.js M /issm/trunk-jpl/src/wrappers/EnumToString/EnumToString.h A /issm/trunk-jpl/src/wrappers/EnumToString/EnumToString.js M /issm/trunk-jpl/src/wrappers/StringToEnum/StringToEnum.h A /issm/trunk-jpl/src/wrappers/StringToEnum/StringToEnum.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/src/wrappers/javascript/io/FetchJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h M /issm/trunk-jpl/test/Exp/Square.js M /issm/trunk-jpl/test/Par/SquareShelfConstrained.js\\
+Export determination: 6. \\
+Rationale: CHG: new EnumToString and StringToEnum javascript modules. New array operations. Finished translating setflowequation javascript routine. Finished parameterization file SquareShelfConstrained.js. Starting solve.js routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#655} with diff file ISSM-19769-19770.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive108.nc M /issm/trunk-jpl/test/Archives/Archive111.nc M /issm/trunk-jpl/test/Archives/Archive206.nc M /issm/trunk-jpl/test/Archives/Archive207.nc M /issm/trunk-jpl/test/Archives/Archive208.nc M /issm/trunk-jpl/test/Archives/Archive209.nc M /issm/trunk-jpl/test/Archives/Archive210.nc M /issm/trunk-jpl/test/Archives/Archive211.nc M /issm/trunk-jpl/test/Archives/Archive224.nc M /issm/trunk-jpl/test/Archives/Archive226.nc M /issm/trunk-jpl/test/Archives/Archive227.nc M /issm/trunk-jpl/test/Archives/Archive232.nc M /issm/trunk-jpl/test/Archives/Archive233.nc M /issm/trunk-jpl/test/Archives/Archive237.nc M /issm/trunk-jpl/test/Archives/Archive312.nc M /issm/trunk-jpl/test/Archives/Archive318.nc M /issm/trunk-jpl/test/Archives/Archive406.nc M /issm/trunk-jpl/test/Archives/Archive409.nc M /issm/trunk-jpl/test/Archives/Archive410.nc M /issm/trunk-jpl/test/Archives/Archive411.nc M /issm/trunk-jpl/test/Archives/Archive415.nc M /issm/trunk-jpl/test/Archives/Archive416.nc M /issm/trunk-jpl/test/Archives/Archive426.nc M /issm/trunk-jpl/test/Archives/Archive427.nc M /issm/trunk-jpl/test/Archives/Archive439.nc M /issm/trunk-jpl/test/Archives/Archive506.nc M /issm/trunk-jpl/test/Archives/Archive507.nc M /issm/trunk-jpl/test/Archives/Archive508.nc M /issm/trunk-jpl/test/Archives/Archive509.nc M /issm/trunk-jpl/test/Archives/Archive510.nc M /issm/trunk-jpl/test/Archives/Archive513.nc M /issm/trunk-jpl/test/Archives/Archive515.nc M /issm/trunk-jpl/test/Archives/Archive516.nc M /issm/trunk-jpl/test/Archives/Archive802.nc M /issm/trunk-jpl/test/NightlyRun/test210.m\\
+Export determination: 6. \\
+Rationale: CHG: updated archives without thermal hack\\
+\vspace{3em}
+
+\noindent \textbf{Change \#656} with diff file ISSM-19770-19771.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh\\
+Export determination: 6. \\
+Rationale: CHG: added javascript EnumDefinition.js generation capability.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#657} with diff file ISSM-19771-19772.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG:Standardizing js plot api. Attempting fix to preven default zoom behavior on test101 canvases.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#658} with diff file ISSM-19772-19773.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG:Fixing zoom behavior and hotfix for broken plot\_mesh in test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#659} with diff file ISSM-19773-19774.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding dynamic frame generation for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#660} with diff file ISSM-19774-19775.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG:Modifying test101.html to comply with dynamic frame generation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#661} with diff file ISSM-19775-19776.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js\\
+Export determination: 6. \\
+Rationale: CHG:Removing need to specifying canvasids in test101 plots\\
+\vspace{3em}
+
+\noindent \textbf{Change \#662} with diff file ISSM-19776-19777.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive225.nc M /issm/trunk-jpl/test/Archives/Archive505.nc\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix last archives\\
+\vspace{3em}
+
+\noindent \textbf{Change \#663} with diff file ISSM-19777-19778.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test505.py\\
+Export determination: 6. \\
+Rationale: CHG: tolerance python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#664} with diff file ISSM-19778-19779.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js\\
+Export determination: 6. \\
+Rationale: CHG: fixed some issues.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#665} with diff file ISSM-19779-19780.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js\\
+Export determination: 6. \\
+Rationale: CHG: took out forgotten debug statement.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#666} with diff file ISSM-19780-19781.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js M /issm/trunk-jpl/src/m/classes/SMBforcing.js M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/constants.js M /issm/trunk-jpl/src/m/classes/damage.js M /issm/trunk-jpl/src/m/classes/flowequation.js M /issm/trunk-jpl/src/m/classes/friction.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/hydrologyshreve.js M /issm/trunk-jpl/src/m/classes/initialization.js M /issm/trunk-jpl/src/m/classes/mask.js M /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/mesh2d.js M /issm/trunk-jpl/src/m/classes/model.js M /issm/trunk-jpl/src/m/classes/timestepping.js A /issm/trunk-jpl/src/m/consistency/checkfield.js A /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js A /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/parameterization/setmask.js A /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: NEW,CHG: going through consistency check for classes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#667} with diff file ISSM-19781-19782.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: updated test101.html with solve phase.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#668} with diff file ISSM-19782-19783.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG:Adding colorbar support for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#669} with diff file ISSM-19783-19784.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py\\
+Export determination: 6. \\
+Rationale: BUG: fixed a couple minor bugs in class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#670} with diff file ISSM-19784-19785.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh\\
+Export determination: 6. \\
+Rationale: One way to avoid firewall and host-name issues on El Capitan is to use gforker, instead of default hydra, process manager.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#671} with diff file ISSM-19785-19786.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG:Adding colorbar label support for test101\\
+\vspace{3em}
+
+\noindent \textbf{Change \#672} with diff file ISSM-19786-19787.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG:Fixing default behvaior for applyoptions colorbar labels\\
+\vspace{3em}
+
+\noindent \textbf{Change \#673} with diff file ISSM-19787-19788.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/c/main/issm.js M /issm/trunk-jpl/src/m/array/arrayoperations.js M /issm/trunk-jpl/src/m/classes/autodiff.js M /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/clusters/generic.js M /issm/trunk-jpl/src/m/classes/flaim.js M /issm/trunk-jpl/src/m/classes/gia.js M /issm/trunk-jpl/src/m/classes/groundingline.js M /issm/trunk-jpl/src/m/classes/hydrologyshreve.js M /issm/trunk-jpl/src/m/classes/inversion.js M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/miscellaneous.js M /issm/trunk-jpl/src/m/classes/outputdefinition.js M /issm/trunk-jpl/src/m/classes/private.js M /issm/trunk-jpl/src/m/classes/qmu.js M /issm/trunk-jpl/src/m/classes/rifts.js M /issm/trunk-jpl/src/m/classes/settings.js M /issm/trunk-jpl/src/m/classes/steadystate.js M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/toolkits.js M /issm/trunk-jpl/src/m/classes/transient.js M /issm/trunk-jpl/src/m/classes/verbose.js M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js A /issm/trunk-jpl/src/m/io/fileptr.js A /issm/trunk-jpl/src/m/solve/WriteData.js A /issm/trunk-jpl/src/m/solve/marshall.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: implemented ismodelselfconsistent routine and all corresponding checkconsistency routines in the main model classes. Implemented embryo of i/o routines to start marshalling model. Implemented issm.js and compilation of main issm module to run ISSM in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#674} with diff file ISSM-19788-19789.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test317.py\\
+Export determination: 6. \\
+Rationale: CHG: added more tolerances now that we added some checks\\
+\vspace{3em}
+
+\noindent \textbf{Change \#675} with diff file ISSM-19789-19790.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test317.py\\
+Export determination: 6. \\
+Rationale: CHG: minor cosmetics\\
+\vspace{3em}
+
+\noindent \textbf{Change \#676} with diff file ISSM-19790-19791.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/javascript A /issm/trunk-jpl/externalpackages/javascript/compressor A /issm/trunk-jpl/externalpackages/javascript/compressor/yuicompressor-2.4.8.jar A /issm/trunk-jpl/externalpackages/javascript/src A /issm/trunk-jpl/externalpackages/javascript/src/gl-matrix-min.js A /issm/trunk-jpl/externalpackages/javascript/src/jquery.min.js A /issm/trunk-jpl/externalpackages/javascript/src/sprintf.js\\
+Export determination: 6. \\
+Rationale: CHG: needed for javascript issm build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#677} with diff file ISSM-19791-19792.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.js M /issm/trunk-jpl/src/m/classes/autodiff.js M /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/constants.js M /issm/trunk-jpl/src/m/classes/damage.js M /issm/trunk-jpl/src/m/classes/debug.js M /issm/trunk-jpl/src/m/classes/flowequation.js M /issm/trunk-jpl/src/m/classes/friction.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/gia.js M /issm/trunk-jpl/src/m/classes/groundingline.js M /issm/trunk-jpl/src/m/classes/hydrologyshreve.js M /issm/trunk-jpl/src/m/classes/initialization.js M /issm/trunk-jpl/src/m/classes/inversion.js M /issm/trunk-jpl/src/m/classes/mask.js M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/mesh2d.js M /issm/trunk-jpl/src/m/classes/miscellaneous.js M /issm/trunk-jpl/src/m/classes/outputdefinition.js M /issm/trunk-jpl/src/m/classes/qmu.js M /issm/trunk-jpl/src/m/classes/rifts.js M /issm/trunk-jpl/src/m/classes/settings.js M /issm/trunk-jpl/src/m/classes/steadystate.js M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/timestepping.js M /issm/trunk-jpl/src/m/classes/transient.js M /issm/trunk-jpl/src/m/classes/verbose.js A /issm/trunk-jpl/src/m/inversions/marshallcostfunctions.js M /issm/trunk-jpl/src/m/io/fileptr.js M /issm/trunk-jpl/src/m/solve/WriteData.js M /issm/trunk-jpl/src/m/solve/marshall.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: finished implementation of the marshall routine ,based on writing to a typed array buffer. No file i/o involved at this point. Fake memory based file i/o is implemented in WriteData.js and used throughout the classes marshall methods.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#678} with diff file ISSM-19792-19793.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js\\
+Export determination: 6. \\
+Rationale: CHG:Adding in colorbar height options and centering to test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#679} with diff file ISSM-19793-19794.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/m/array/arrayoperations.js M /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js M /issm/trunk-jpl/src/m/classes/SMBforcing.js M /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/clusters/generic.js A /issm/trunk-jpl/src/m/classes/clusters/local.js M /issm/trunk-jpl/src/m/classes/damage.js M /issm/trunk-jpl/src/m/classes/friction.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/initialization.js M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/model.js M /issm/trunk-jpl/src/m/classes/outputdefinition.js M /issm/trunk-jpl/src/m/classes/qmu.js M /issm/trunk-jpl/src/m/classes/steadystate.js M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/toolkits.js M /issm/trunk-jpl/src/m/classes/transient.js M /issm/trunk-jpl/src/m/classes/verbose.js M /issm/trunk-jpl/src/m/io/fileptr.js M /issm/trunk-jpl/src/m/plot/processdata.js M /issm/trunk-jpl/src/m/solve/WriteData.js M /issm/trunk-jpl/src/m/solve/solve.js A /issm/trunk-jpl/src/wrappers/Issm A /issm/trunk-jpl/src/wrappers/Issm/issm.cpp A /issm/trunk-jpl/src/wrappers/Issm/issm.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/test/NightlyRun/test101.html M /issm/trunk-jpl/test/Par/SquareShelfConstrained.par\\
+Export determination: 6. \\
+Rationale: CHG: finished first prototype of running stressbalance in javascript. Need to now process the output buffers through loadresultsfromcluster.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#680} with diff file ISSM-19794-19795.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding font size/coloring options for colorbar labels in test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#681} with diff file ISSM-19795-19796.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/processdata.js\\
+Export determination: 6. \\
+Rationale: CHG: minor bug fixes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#682} with diff file ISSM-19796-19797.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test513.py\\
+Export determination: 6. \\
+Rationale: CHG: updated tolerances python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#683} with diff file ISSM-19797-19798.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test513.m M /issm/trunk-jpl/test/NightlyRun/test513.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed Python and Matlab test513.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#684} with diff file ISSM-19798-19799.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: Correcting colorbar calculations and labeling for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#685} with diff file ISSM-19799-19800.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Fixing broken caxis behavior for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#686} with diff file ISSM-19800-19801.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: back to precision(3);\\
+\vspace{3em}
+
+\noindent \textbf{Change \#687} with diff file ISSM-19801-19802.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h\\
+Export determination: 6. \\
+Rationale: CHG: bug that was revealed in the javascript build. UNDEF is not a valid value for an integer. Can produce garbage.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#688} with diff file ISSM-19802-19803.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h\\
+Export determination: 6. \\
+Rationale: CHG: new constructor for GenericParam.h, which actually keeps track of the object\\
+\vspace{3em}
+
+\noindent \textbf{Change \#689} with diff file ISSM-19803-19804.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h\\
+Export determination: 6. \\
+Rationale: CHG: added new CleanupJS javascript cleanup routine, which dumps the output file content into a memory buffer, which is then returned to the issm.js javascript routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#690} with diff file ISSM-19804-19805.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/c/shared/Enum/Synchronize.sh\\
+Export determination: 6. \\
+Rationale: CHG: new javascript compile related enums for output memory buffers. Also, modified the Synchronize.sh to optimize the enum file, no need to go through EnumToString!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#691} with diff file ISSM-19805-19806.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js\\
+Export determination: 6. \\
+Rationale: CHG: introducing map operations.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#692} with diff file ISSM-19806-19807.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/Issm/issm.cpp M /issm/trunk-jpl/src/wrappers/Issm/issm.js\\
+Export determination: 6. \\
+Rationale: CHG: finished successful implementation of issm module. Now returns a memory buffer that can be loaded in loadresultsfrombuffer in the solve.js routine. Struggled to figure out the best way to return a binary memory buffer allocated on the HEAP8 module stack, not the HEAPF64 stack!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#693} with diff file ISSM-19807-19808.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/materials/paterson.js\\
+Export determination: 6. \\
+Rationale: CHG: fixed nasty mispelling bug that was hyper rigidfying model runs in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#694} with diff file ISSM-19808-19809.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: introduced some checks for data that is essentially 0 filled in javascript plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#695} with diff file ISSM-19809-19810.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/OutputBufferPointerEnum.m A /issm/trunk-jpl/src/m/enum/OutputBufferSizePointerEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: new OutputBufferSizePointerEnum and OutputBufferPointerEnum enums for javascript memory buffers tracking.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#696} with diff file ISSM-19810-19811.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/io/fileptr.js M /issm/trunk-jpl/src/m/solve/marshall.js\\
+Export determination: 6. \\
+Rationale: CHG: i/o is now bidirection, can write and read a binary memory buffer.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#697} with diff file ISSM-19811-19812.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m\\
+Export determination: 6. \\
+Rationale: CHG: minor, wrong check\\
+\vspace{3em}
+
+\noindent \textbf{Change \#698} with diff file ISSM-19812-19813.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h\\
+Export determination: 6. \\
+Rationale: CHG: reverting to step = UNDEF. Problem is downstream in the way javascript reads the integer, not here.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#699} with diff file ISSM-19813-19814.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h\\
+Export determination: 6. \\
+Rationale: CHG: fixing small issue: )\\
+\vspace{3em}
+
+\noindent \textbf{Change \#700} with diff file ISSM-19814-19815.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/io/fileptr.js\\
+Export determination: 6. \\
+Rationale: CHG: don't read unint32, rather int32!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#701} with diff file ISSM-19815-19816.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.js\\
+Export determination: 6. \\
+Rationale: CHG: model.results should be a map in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#702} with diff file ISSM-19816-19817.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/solve/loadresultsfrombuffer.js A /issm/trunk-jpl/src/m/solve/parseresultsfrombuffer.js M /issm/trunk-jpl/src/m/solve/solve.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: finished loading results from the issm module, using an output memory buffer. Also finished test101.html, providing results identical to test101.m\\
+\vspace{3em}
+
+\noindent \textbf{Change \#703} with diff file ISSM-19817-19818.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/parameterization/setmask.js\\
+Export determination: 6. \\
+Rationale: CHG: not allowed!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#704} with diff file ISSM-19818-19819.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mesh2d.js\\
+Export determination: 6. \\
+Rationale: CHG: missing bracket.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#705} with diff file ISSM-19819-19820.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mesh2d.js\\
+Export determination: 6. \\
+Rationale: CHG: missing bracked.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#706} with diff file ISSM-19820-19821.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: Removing js multiline string usage for compatibility.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#707} with diff file ISSM-19821-19822.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Optimizing colorbar and adding colorbar ticks for test101.html\\
+\vspace{3em}
+
+\noindent \textbf{Change \#708} with diff file ISSM-19822-19823.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: added all the javascript scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#709} with diff file ISSM-19823-19824.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js M /issm/trunk-jpl/src/m/classes/pairoptions.js M /issm/trunk-jpl/src/m/geometry/FlagElements.js M /issm/trunk-jpl/src/m/inversions/marshallcostfunctions.js M /issm/trunk-jpl/src/m/parameterization/setmask.js\\
+Export determination: 6. \\
+Rationale: CHG: issues fixed with counters in for loops not being declared properly.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#710} with diff file ISSM-19824-19825.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.js A /issm/trunk-jpl/src/m/classes/priv.js D /issm/trunk-jpl/src/m/classes/private.js A /issm/trunk-jpl/src/m/classes/trans.js D /issm/trunk-jpl/src/m/classes/transient.js M /issm/trunk-jpl/src/m/solve/loadresultsfrombuffer.js M /issm/trunk-jpl/src/m/solve/marshall.js M /issm/trunk-jpl/src/m/solve/solve.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: private and transient are keywords in javascript, which means they can't be class names. Replaced them by trans and priv classes in model.js.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#711} with diff file ISSM-19825-19826.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/enum/DeviatoricStresseffectiveEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: NEW: enabled effective deviatoric stress as a requested output\\
+\vspace{3em}
+
+\noindent \textbf{Change \#712} with diff file ISSM-19826-19827.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/processdata.js M /issm/trunk-jpl/src/m/plot/processmesh.js\\
+Export determination: 6. \\
+Rationale: CHG: processed some segfaults in processedd and processmesh on the javascript side ofthings. Also enabled redrawing of colorbar again and again.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#713} with diff file ISSM-19827-19828.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js\\
+Export determination: 6. \\
+Rationale: NEW: new clone routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#714} with diff file ISSM-19828-19829.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/flowequation.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/gia.js M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/trans.js\\
+Export determination: 6. \\
+Rationale: CHG: fixed issues with transient and private classes still being used (in javascript).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#715} with diff file ISSM-19829-19830.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js\\
+Export determination: 6. \\
+Rationale: CHG: fixed issues with private class still being used (in javascript).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#716} with diff file ISSM-19830-19831.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): added target install in Makefile.am for private and transient classes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#717} with diff file ISSM-19831-19832.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/WriteData.js M /issm/trunk-jpl/src/m/solve/loadresultsfrombuffer.js M /issm/trunk-jpl/src/m/solve/parseresultsfrombuffer.js M /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): fixed serious segfaults.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#718} with diff file ISSM-19832-19833.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.py\\
+Export determination: 6. \\
+Rationale: CHG: remove period in file name to prevent model files from appearing as hidden when prefix field is empty\\
+\vspace{3em}
+
+\noindent \textbf{Change \#719} with diff file ISSM-19833-19834.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): adapting test101.html to the new way results are returned.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#720} with diff file ISSM-19834-19835.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/initialization.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): avoid vx and vy being pointed to by marshalled buffer. Deep copy first.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#721} with diff file ISSM-19835-19836.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test341.m\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed Matlab tes 341.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#722} with diff file ISSM-19836-19837.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/materials/DepthAvgTempCond.py\\
+Export determination: 6. \\
+Rationale: CHG: Fixing python-matlab script conversion error\\
+\vspace{3em}
+
+\noindent \textbf{Change \#723} with diff file ISSM-19837-19838.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/boundaryconditions/SetIceShelfBC.js\\
+Export determination: 6. \\
+Rationale: CHG(JAVASCRIPT): fixed bug in spc setup.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#724} with diff file ISSM-19838-19839.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.h A /issm/trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am M /issm/trunk-jpl/src/wrappers/javascript/io/WriteJavascriptData.cpp M /issm/trunk-jpl/src/wrappers/javascript/io/javascriptio.h\\
+Export determination: 6. \\
+Rationale: NEW(JAVASCRIPT): new ContourToMesh module.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#725} with diff file ISSM-19839-19840.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): cmap option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#726} with diff file ISSM-19840-19841.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG: slider.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#727} with diff file ISSM-19841-19842.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/miscellaneous/colorbars.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding more js colorbars\\
+\vspace{3em}
+
+\noindent \textbf{Change \#728} with diff file ISSM-19842-19843.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: added contour to mesh include.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#729} with diff file ISSM-19843-19844.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: NEW (javascript): adding slider.js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#730} with diff file ISSM-19844-19845.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js\\
+Export determination: 6. \\
+Rationale: CHG: canvasids now reuse canvases for javascript displays\\
+\vspace{3em}
+
+\noindent \textbf{Change \#731} with diff file ISSM-19845-19846.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): rainbown now renamed jet.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#732} with diff file ISSM-19846-19847.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding colorbarcanvasid option\\
+\vspace{3em}
+
+\noindent \textbf{Change \#733} with diff file ISSM-19847-19848.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding in default colobarcanvas handling for javascript displays\\
+\vspace{3em}
+
+\noindent \textbf{Change \#734} with diff file ISSM-19848-19849.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Adressing colorbar context error\\
+\vspace{3em}
+
+\noindent \textbf{Change \#735} with diff file ISSM-19849-19850.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Tentative fix for javascript display colorbar sizing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#736} with diff file ISSM-19850-19851.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Fixing colorbarcanvasid handling for labelsw\\
+\vspace{3em}
+
+\noindent \textbf{Change \#737} with diff file ISSM-19851-19852.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/frictioncoulomb.py\\
+Export determination: 6. \\
+Rationale: BUG: incorrect enums were being marshalled for frictioncoulomb class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#738} with diff file ISSM-19852-19853.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: Fixing javascript colorbar behavior for predefined colorbars.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#739} with diff file ISSM-19853-19854.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: Refining js colorbar behavior to include smooth mesh color interpolation. Improved colorbar positioning.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#740} with diff file ISSM-19854-19855.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG: added view angle option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#741} with diff file ISSM-19855-19856.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): colorbarnticks option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#742} with diff file ISSM-19856-19857.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): colorbarprecision option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#743} with diff file ISSM-19857-19858.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/timestepping.js M /issm/trunk-jpl/src/m/classes/timestepping.m\\
+Export determination: 6. \\
+Rationale: CHG: no more time stepping in years (old from sea ice model)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#744} with diff file ISSM-19858-19859.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG: javascript - Adding colorbar orientation option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#745} with diff file ISSM-19859-19860.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/io/loadmodel.js A /issm/trunk-jpl/src/m/io/saveAsFile.js A /issm/trunk-jpl/src/m/io/savemodel.js\\
+Export determination: 6. \\
+Rationale: NEW ( JAVASCRIPT): new file io\\
+\vspace{3em}
+
+\noindent \textbf{Change \#746} with diff file ISSM-19860-19861.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.js M /issm/trunk-jpl/src/m/classes/autodiff.js M /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/constants.js M /issm/trunk-jpl/src/m/classes/damage.js M /issm/trunk-jpl/src/m/classes/debug.js M /issm/trunk-jpl/src/m/classes/flowequation.js M /issm/trunk-jpl/src/m/classes/friction.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/gia.js M /issm/trunk-jpl/src/m/classes/groundingline.js M /issm/trunk-jpl/src/m/classes/hydrologyshreve.js M /issm/trunk-jpl/src/m/classes/initialization.js M /issm/trunk-jpl/src/m/classes/inversion.js M /issm/trunk-jpl/src/m/classes/mask.js M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/mesh2d.js M /issm/trunk-jpl/src/m/classes/miscellaneous.js M /issm/trunk-jpl/src/m/classes/model.js M /issm/trunk-jpl/src/m/classes/outputdefinition.js M /issm/trunk-jpl/src/m/classes/qmu.js M /issm/trunk-jpl/src/m/classes/rifts.js M /issm/trunk-jpl/src/m/classes/settings.js M /issm/trunk-jpl/src/m/classes/steadystate.js M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/timestepping.js M /issm/trunk-jpl/src/m/classes/toolkits.js M /issm/trunk-jpl/src/m/classes/trans.js M /issm/trunk-jpl/src/m/classes/verbose.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): fixed some issues with segfaults.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#747} with diff file ISSM-19861-19862.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/miscellaneous/fielddisplay.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): better display of arrays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#748} with diff file ISSM-19862-19863.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): new i/o routines.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#749} with diff file ISSM-19863-19864.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): new NullFix routine to fix model once we are loading it with the JSON parser.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#750} with diff file ISSM-19864-19865.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js A /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: ADD: javascript: plot\_overlay functionality.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#751} with diff file ISSM-19865-19866.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/interp/SectionValues.py\\
+Export determination: 6. \\
+Rationale: BUG: index in SectionValues starts at zero, different indexing than in matlab equivalent...\\
+\vspace{3em}
+
+\noindent \textbf{Change \#752} with diff file ISSM-19866-19867.diff: \\
+Function name: \\
+M /issm/trunk-jpl/examples/Pig/Pig.par\\
+Export determination: 6. \\
+Rationale: CHG: Updated surfaceforcings to smb.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#753} with diff file ISSM-19867-19868.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): Implementing xlim, ylim options for js plot display.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#754} with diff file ISSM-19868-19869.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test432.m M /issm/trunk-jpl/test/NightlyRun/test432.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed test432 parameter 'WaterFraction' for both Python and Matlab. Although, only Python was having an issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#755} with diff file ISSM-19869-19870.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing default shaders to use colors instead of textures.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#756} with diff file ISSM-19870-19871.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Applying xlim/ylim options for all plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#757} with diff file ISSM-19871-19872.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing default shader behavior for js plot displays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#758} with diff file ISSM-19872-19873.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Separating mesh coloring from colorbar logic.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#759} with diff file ISSM-19873-19874.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG javascript: Altering drawing function and adding drawing order for js plot display.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#760} with diff file ISSM-19874-19875.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Correcting xlim/ylim overlay offsets.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#761} with diff file ISSM-19875-19876.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Addressing missing mesh display with no overlay.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#762} with diff file ISSM-19876-19877.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/radarpower.m\\
+Export determination: 6. \\
+Rationale: CHG: keep available tif image if requested with an option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#763} with diff file ISSM-19877-19878.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.m\\
+Export determination: 6. \\
+Rationale: CHG: adding an option to control text clippling (default on).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#764} with diff file ISSM-19878-19879.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG: no image by default!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#765} with diff file ISSM-19879-19880.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.m M /issm/trunk-jpl/src/m/classes/autodiff.m M /issm/trunk-jpl/src/m/classes/balancethickness.m M /issm/trunk-jpl/src/m/classes/basalforcings.m M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/constants.m M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/debug.m M /issm/trunk-jpl/src/m/classes/flaim.m M /issm/trunk-jpl/src/m/classes/flowequation.m M /issm/trunk-jpl/src/m/classes/friction.m M /issm/trunk-jpl/src/m/classes/geometry.m M /issm/trunk-jpl/src/m/classes/gia.m M /issm/trunk-jpl/src/m/classes/groundingline.m M /issm/trunk-jpl/src/m/classes/hydrologyshreve.m M /issm/trunk-jpl/src/m/classes/initialization.m M /issm/trunk-jpl/src/m/classes/m1qn3inversion.m M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/masstransport.m M /issm/trunk-jpl/src/m/classes/matice.m M /issm/trunk-jpl/src/m/classes/mesh2d.m M /issm/trunk-jpl/src/m/classes/miscellaneous.m M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/classes/outputdefinition.m M /issm/trunk-jpl/src/m/classes/private.m M /issm/trunk-jpl/src/m/classes/qmu.m M /issm/trunk-jpl/src/m/classes/rifts.m M /issm/trunk-jpl/src/m/classes/settings.m M /issm/trunk-jpl/src/m/classes/steadystate.m M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/thermal.m M /issm/trunk-jpl/src/m/classes/timestepping.m M /issm/trunk-jpl/src/m/classes/toolkits.m M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/verbose.m\\
+Export determination: 6. \\
+Rationale: CHG (javascript): adding savemodeljs to save a model in matlab into javascript file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#766} with diff file ISSM-19880-19881.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed option check\\
+\vspace{3em}
+
+\noindent \textbf{Change \#767} with diff file ISSM-19881-19882.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/shp/shp2js.m\\
+Export determination: 6. \\
+Rationale: CHG: transfer shapefile into javascript file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#768} with diff file ISSM-19882-19883.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/js A /issm/trunk-jpl/src/m/js/writejs1Darray.m A /issm/trunk-jpl/src/m/js/writejs2Darray.m A /issm/trunk-jpl/src/m/js/writejscellstring.m A /issm/trunk-jpl/src/m/js/writejsdouble.m A /issm/trunk-jpl/src/m/js/writejsstring.m A /issm/trunk-jpl/src/m/js/writejsstruct.m\\
+Export determination: 6. \\
+Rationale: CHG: (javascript): matlab routines to write arrays, doubles, strings, etc... into a javascript format.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#769} with diff file ISSM-19883-19884.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG (javascript): install target for plot\_overlay.js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#770} with diff file ISSM-19884-19885.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing colorbartitle option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#771} with diff file ISSM-19885-19886.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Preliminary movie implementation for transient plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#772} with diff file ISSM-19886-19887.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Modifying accepted movie data format for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#773} with diff file ISSM-19887-19888.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/array/arrayoperations.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing semantic issues with ArrayAnyNaN not operating on matrices correctly.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#774} with diff file ISSM-19888-19889.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/processdata.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Working implementation of movies for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#775} with diff file ISSM-19889-19890.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Removing debug statements.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#776} with diff file ISSM-19890-19891.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding colorbar handling for movie data.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#777} with diff file ISSM-19891-19892.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Resolving erroneous data bounds for movie data.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#778} with diff file ISSM-19892-19893.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/stressbalance.m\\
+Export determination: 6. \\
+Rationale: CHG( Javascript): fixed bug for referential and ice\_levelset saving.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#779} with diff file ISSM-19893-19894.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp\\
+Export determination: 6. \\
+Rationale: BUG: COPY string, do not just pass the salt... euh the pointer\\
+\vspace{3em}
+
+\noindent \textbf{Change \#780} with diff file ISSM-19894-19895.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/classes/radaroverlay.js M /issm/trunk-jpl/src/m/classes/radaroverlay.m M /issm/trunk-jpl/src/m/classes/timestepping.m A /issm/trunk-jpl/src/m/miscellaneous/converttopowerof2.m M /issm/trunk-jpl/src/m/plot/radarpower.m M /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG: new radaroverlay outer triangulation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#781} with diff file ISSM-19895-19896.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/py3 A /issm/trunk-jpl/src/py3/boundaryconditions A /issm/trunk-jpl/src/py3/boundaryconditions/PattynSMB.py A /issm/trunk-jpl/src/py3/boundaryconditions/SetIceSheetBC.py A /issm/trunk-jpl/src/py3/boundaryconditions/SetIceShelfBC.py A /issm/trunk-jpl/src/py3/boundaryconditions/SetMarineIceSheetBC.py A /issm/trunk-jpl/src/py3/classes A /issm/trunk-jpl/src/py3/classes/SMBcomponents.py A /issm/trunk-jpl/src/py3/classes/SMBd18opdd.py A /issm/trunk-jpl/src/py3/classes/SMBforcing.py A /issm/trunk-jpl/src/py3/classes/SMBgradients.py A /issm/trunk-jpl/src/py3/classes/SMBmeltcomponents.py A /issm/trunk-jpl/src/py3/classes/SMBpdd.py A /issm/trunk-jpl/src/py3/classes/adinversion.py A /issm/trunk-jpl/src/py3/classes/autodiff.py A /issm/trunk-jpl/src/py3/classes/balancethickness.py A /issm/trunk-jpl/src/py3/classes/bamggeom.py A /issm/trunk-jpl/src/py3/classes/bamgmesh.py A /issm/trunk-jpl/src/py3/classes/basalforcings.py A /issm/trunk-jpl/src/py3/classes/calving.py A /issm/trunk-jpl/src/py3/classes/calvinglevermann.py A /issm/trunk-jpl/src/py3/classes/clusters A /issm/trunk-jpl/src/py3/classes/clusters/generic.py A /issm/trunk-jpl/src/py3/classes/clusters/pfe.py A /issm/trunk-jpl/src/py3/classes/constants.py A /issm/trunk-jpl/src/py3/classes/damage.py A /issm/trunk-jpl/src/py3/classes/debug.py A /issm/trunk-jpl/src/py3/classes/dependent.py A /issm/trunk-jpl/src/py3/classes/flaim.py A /issm/trunk-jpl/src/py3/classes/flowequation.py A /issm/trunk-jpl/src/py3/classes/friction.py A /issm/trunk-jpl/src/py3/classes/frictioncoulomb.py A /issm/trunk-jpl/src/py3/classes/frictionweertman.py A /issm/trunk-jpl/src/py3/classes/geometry.py A /issm/trunk-jpl/src/py3/classes/gia.py A /issm/trunk-jpl/src/py3/classes/groundingline.py A /issm/trunk-jpl/src/py3/classes/hydrologydc.py A /issm/trunk-jpl/src/py3/classes/hydrologyshreve.py A /issm/trunk-jpl/src/py3/classes/independent.py A /issm/trunk-jpl/src/py3/classes/initialization.py A /issm/trunk-jpl/src/py3/classes/inversion.py A /issm/trunk-jpl/src/py3/classes/linearbasalforcings.py A /issm/trunk-jpl/src/py3/classes/m1qn3inversion.py A /issm/trunk-jpl/src/py3/classes/mask.py A /issm/trunk-jpl/src/py3/classes/massfluxatgate.py A /issm/trunk-jpl/src/py3/classes/masstransport.py A /issm/trunk-jpl/src/py3/classes/matdamageice.py A /issm/trunk-jpl/src/py3/classes/matice.py A /issm/trunk-jpl/src/py3/classes/mesh2d.py A /issm/trunk-jpl/src/py3/classes/mesh3dprisms.py A /issm/trunk-jpl/src/py3/classes/miscellaneous.py A /issm/trunk-jpl/src/py3/classes/mismipbasalforcings.py A /issm/trunk-jpl/src/py3/classes/model.py A /issm/trunk-jpl/src/py3/classes/organizer.py A /issm/trunk-jpl/src/py3/classes/outputdefinition.py A /issm/trunk-jpl/src/py3/classes/pairoptions.py A /issm/trunk-jpl/src/py3/classes/plotoptions.py A /issm/trunk-jpl/src/py3/classes/private.py A /issm/trunk-jpl/src/py3/classes/qmu.py A /issm/trunk-jpl/src/py3/classes/radaroverlay.py A /issm/trunk-jpl/src/py3/classes/results.py A /issm/trunk-jpl/src/py3/classes/rifts.py A /issm/trunk-jpl/src/py3/classes/settings.py A /issm/trunk-jpl/src/py3/classes/steadystate.py A /issm/trunk-jpl/src/py3/classes/stressbalance.py A /issm/trunk-jpl/src/py3/classes/taoinversion.py A /issm/trunk-jpl/src/py3/classes/thermal.py A /issm/trunk-jpl/src/py3/classes/timestepping.py A /issm/trunk-jpl/src/py3/classes/toolkits.py A /issm/trunk-jpl/src/py3/classes/transient.py A /issm/trunk-jpl/src/py3/classes/verbose.py A /issm/trunk-jpl/src/py3/consistency A /issm/trunk-jpl/src/py3/consistency/QueueRequirements.py A /issm/trunk-jpl/src/py3/consistency/checkfield.py A /issm/trunk-jpl/src/py3/consistency/ismodelselfconsistent.py A /issm/trunk-jpl/src/py3/contrib A /issm/trunk-jpl/src/py3/contrib/bamg A /issm/trunk-jpl/src/py3/contrib/bamg/YamsCall.py A /issm/trunk-jpl/src/py3/contrib/bamg/YamsCall.py.bak A /issm/trunk-jpl/src/py3/contrib/netCDF A /issm/trunk-jpl/src/py3/contrib/netCDF/ClassTry.py A /issm/trunk-jpl/src/py3/contrib/netCDF/ClassTry.py.bak A /issm/trunk-jpl/src/py3/contrib/netCDF/export\_netCDF.py A /issm/trunk-jpl/src/py3/contrib/netCDF/export\_netCDF.py.bak A /issm/trunk-jpl/src/py3/contrib/netCDF/read\_netCDF.py A /issm/trunk-jpl/src/py3/contrib/netCDF/read\_netCDF.py.bak A /issm/trunk-jpl/src/py3/contrib/paraview A /issm/trunk-jpl/src/py3/contrib/paraview/exportVTK.py A /issm/trunk-jpl/src/py3/contrib/paraview/exportVTK.py.bak A /issm/trunk-jpl/src/py3/coordsystems A /issm/trunk-jpl/src/py3/coordsystems/ll2xy.py A /issm/trunk-jpl/src/py3/coordsystems/xy2ll.py A /issm/trunk-jpl/src/py3/dev A /issm/trunk-jpl/src/py3/dev/devpath.py A /issm/trunk-jpl/src/py3/dev/issmversion.py A /issm/trunk-jpl/src/py3/enum A /issm/trunk-jpl/src/py3/enum/EnumDefinitions.py A /issm/trunk-jpl/src/py3/exp A /issm/trunk-jpl/src/py3/exp/expcoarsen.py A /issm/trunk-jpl/src/py3/exp/expdisp.py A /issm/trunk-jpl/src/py3/exp/expread.py A /issm/trunk-jpl/src/py3/exp/expwrite.py A /issm/trunk-jpl/src/py3/extrusion A /issm/trunk-jpl/src/py3/extrusion/DepthAverage.py A /issm/trunk-jpl/src/py3/extrusion/project2d.py A /issm/trunk-jpl/src/py3/extrusion/project3d.py A /issm/trunk-jpl/src/py3/geometry A /issm/trunk-jpl/src/py3/geometry/FlagElements.py A /issm/trunk-jpl/src/py3/geometry/GetAreas.py A /issm/trunk-jpl/src/py3/geometry/SegIntersect.py A /issm/trunk-jpl/src/py3/geometry/slope.py A /issm/trunk-jpl/src/py3/interp A /issm/trunk-jpl/src/py3/interp/SectionValues.py A /issm/trunk-jpl/src/py3/interp/averaging.py A /issm/trunk-jpl/src/py3/interp/holefiller.py A /issm/trunk-jpl/src/py3/interp/interp.py A /issm/trunk-jpl/src/py3/inversions A /issm/trunk-jpl/src/py3/inversions/marshallcostfunctions.py A /issm/trunk-jpl/src/py3/inversions/parametercontroldrag.py A /issm/trunk-jpl/src/py3/inversions/supportedcontrols.py A /issm/trunk-jpl/src/py3/inversions/supportedcostfunctions.py A /issm/trunk-jpl/src/py3/io A /issm/trunk-jpl/src/py3/io/loadmodel.py A /issm/trunk-jpl/src/py3/io/loadvars.py A /issm/trunk-jpl/src/py3/io/savevars.py A /issm/trunk-jpl/src/py3/materials A /issm/trunk-jpl/src/py3/materials/DepthAvgTempCond.py A /issm/trunk-jpl/src/py3/materials/TMeltingPoint.py A /issm/trunk-jpl/src/py3/materials/cuffey.py A /issm/trunk-jpl/src/py3/materials/paterson.py A /issm/trunk-jpl/src/py3/mech A /issm/trunk-jpl/src/py3/mech/analyticaldamage.py A /issm/trunk-jpl/src/py3/mech/backstressfrominversion.py A /issm/trunk-jpl/src/py3/mech/calcbackstress.py A /issm/trunk-jpl/src/py3/mech/damagefrominversion.py A /issm/trunk-jpl/src/py3/mech/mechanicalproperties.py A /issm/trunk-jpl/src/py3/mech/robintemperature.py A /issm/trunk-jpl/src/py3/mech/steadystateiceshelftemp.py A /issm/trunk-jpl/src/py3/mech/thomasparams.py A /issm/trunk-jpl/src/py3/mesh A /issm/trunk-jpl/src/py3/mesh/ComputeHessian.py A /issm/trunk-jpl/src/py3/mesh/ComputeMetric.py A /issm/trunk-jpl/src/py3/mesh/ElementsFromEdge.py A /issm/trunk-jpl/src/py3/mesh/GetNodalFunctionsCoeff.py A /issm/trunk-jpl/src/py3/mesh/bamg.py A /issm/trunk-jpl/src/py3/mesh/meshconvert.py A /issm/trunk-jpl/src/py3/mesh/rifts A /issm/trunk-jpl/src/py3/mesh/rifts/meshprocessoutsiderifts.py A /issm/trunk-jpl/src/py3/mesh/rifts/meshprocessrifts.py A /issm/trunk-jpl/src/py3/mesh/roundmesh.py A /issm/trunk-jpl/src/py3/mesh/squaremesh.py A /issm/trunk-jpl/src/py3/mesh/triangle.py A /issm/trunk-jpl/src/py3/miscellaneous A /issm/trunk-jpl/src/py3/miscellaneous/MatlabFuncs.py A /issm/trunk-jpl/src/py3/miscellaneous/PythonFuncs.py A /issm/trunk-jpl/src/py3/miscellaneous/fielddisplay.py A /issm/trunk-jpl/src/py3/miscellaneous/isnans.py A /issm/trunk-jpl/src/py3/miscellaneous/parallelrange.py A /issm/trunk-jpl/src/py3/modifier.sh A /issm/trunk-jpl/src/py3/os A /issm/trunk-jpl/src/py3/os/issmdir.py A /issm/trunk-jpl/src/py3/os/issmscpin.py A /issm/trunk-jpl/src/py3/os/issmscpout.py A /issm/trunk-jpl/src/py3/os/issmssh.py A /issm/trunk-jpl/src/py3/parameterization A /issm/trunk-jpl/src/py3/parameterization/contourenvelope.py A /issm/trunk-jpl/src/py3/parameterization/parameterize.py A /issm/trunk-jpl/src/py3/parameterization/setflowequation.py A /issm/trunk-jpl/src/py3/parameterization/sethydrostaticmask.py A /issm/trunk-jpl/src/py3/parameterization/setmask.py A /issm/trunk-jpl/src/py3/plot A /issm/trunk-jpl/src/py3/plot/applyoptions.py A /issm/trunk-jpl/src/py3/plot/checkplotoptions.py A /issm/trunk-jpl/src/py3/plot/colormaps A /issm/trunk-jpl/src/py3/plot/colormaps/cmaptools.py A /issm/trunk-jpl/src/py3/plot/export\_gl.py A /issm/trunk-jpl/src/py3/plot/plot\_contour.py A /issm/trunk-jpl/src/py3/plot/plot\_manager.py A /issm/trunk-jpl/src/py3/plot/plot\_mesh.py A /issm/trunk-jpl/src/py3/plot/plot\_overlay.py A /issm/trunk-jpl/src/py3/plot/plot\_streamlines.py A /issm/trunk-jpl/src/py3/plot/plot\_unit.py A /issm/trunk-jpl/src/py3/plot/plotmodel.py A /issm/trunk-jpl/src/py3/plot/processdata.py A /issm/trunk-jpl/src/py3/plot/processmesh.py A /issm/trunk-jpl/src/py3/plot/writejsfield.py A /issm/trunk-jpl/src/py3/plot/writejsfile.py A /issm/trunk-jpl/src/py3/shp A /issm/trunk-jpl/src/py3/shp/shp2exp.py A /issm/trunk-jpl/src/py3/solve A /issm/trunk-jpl/src/py3/solve/WriteData.py A /issm/trunk-jpl/src/py3/solve/loadresultsfromcluster.py A /issm/trunk-jpl/src/py3/solve/loadresultsfromdisk.py A /issm/trunk-jpl/src/py3/solve/marshall.py A /issm/trunk-jpl/src/py3/solve/parseresultsfromdisk.py A /issm/trunk-jpl/src/py3/solve/solve.py A /issm/trunk-jpl/src/py3/solve/waitonlock.py A /issm/trunk-jpl/src/py3/solvers A /issm/trunk-jpl/src/py3/solvers/asmoptions.py A /issm/trunk-jpl/src/py3/solvers/iluasmoptions.py A /issm/trunk-jpl/src/py3/solvers/issmgslsolver.py A /issm/trunk-jpl/src/py3/solvers/issmmumpssolver.py A /issm/trunk-jpl/src/py3/solvers/jacobiasmoptions.py A /issm/trunk-jpl/src/py3/solvers/jacobicgoptions.py A /issm/trunk-jpl/src/py3/solvers/matlaboptions.py A /issm/trunk-jpl/src/py3/solvers/mumpsoptions.py A /issm/trunk-jpl/src/py3/solvers/soroptions.py A /issm/trunk-jpl/src/py3/solvers/stokesoptions.py A /issm/trunk-jpl/src/py3/test.txt A /issm/trunk-jpl/src/py3/tmp M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h M /issm/trunk-jpl/src/wrappers/python/include/pythonincludes.h M /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp M /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp\\
+Export determination: 6. \\
+Rationale: NEW:Adding directory to hold the python 3 implementation of the interface\\
+\vspace{3em}
+
+\noindent \textbf{Change \#782} with diff file ISSM-19896-19897.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.cpp M /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h M /issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp M /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp\\
+Export determination: 6. \\
+Rationale: CHG: merging Basile's changes with python2\\
+\vspace{3em}
+
+\noindent \textbf{Change \#783} with diff file ISSM-19897-19898.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBcomponents.m M /issm/trunk-jpl/src/m/classes/SMBcomponents.py M /issm/trunk-jpl/src/m/classes/SMBd18opdd.m M /issm/trunk-jpl/src/m/classes/SMBd18opdd.py M /issm/trunk-jpl/src/m/classes/SMBforcing.m M /issm/trunk-jpl/src/m/classes/SMBforcing.py M /issm/trunk-jpl/src/m/classes/SMBgemb.m M /issm/trunk-jpl/src/m/classes/SMBgradients.m M /issm/trunk-jpl/src/m/classes/SMBgradients.py M /issm/trunk-jpl/src/m/classes/SMBhenning.m M /issm/trunk-jpl/src/m/classes/SMBmeltcomponents.m M /issm/trunk-jpl/src/m/classes/SMBmeltcomponents.py M /issm/trunk-jpl/src/m/classes/SMBpdd.m M /issm/trunk-jpl/src/m/classes/SMBpdd.py M /issm/trunk-jpl/src/m/classes/adinversion.m M /issm/trunk-jpl/src/m/classes/balancethickness.m M /issm/trunk-jpl/src/m/classes/balancethickness.py M /issm/trunk-jpl/src/m/classes/basalforcings.m M /issm/trunk-jpl/src/m/classes/basalforcings.py M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/calving.py M /issm/trunk-jpl/src/m/classes/calvingdev.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.py M /issm/trunk-jpl/src/m/classes/calvingpi.m M /issm/trunk-jpl/src/m/classes/friction.m M /issm/trunk-jpl/src/m/classes/friction.py M /issm/trunk-jpl/src/m/classes/frictioncoulomb.m M /issm/trunk-jpl/src/m/classes/frictioncoulomb.py M /issm/trunk-jpl/src/m/classes/frictionhydro.m M /issm/trunk-jpl/src/m/classes/frictionsommers.m M /issm/trunk-jpl/src/m/classes/frictiontemp.m M /issm/trunk-jpl/src/m/classes/frictionwaterlayer.m M /issm/trunk-jpl/src/m/classes/frictionweertman.m M /issm/trunk-jpl/src/m/classes/frictionweertman.py M /issm/trunk-jpl/src/m/classes/frictionweertmantemp.m M /issm/trunk-jpl/src/m/classes/geometry.m M /issm/trunk-jpl/src/m/classes/geometry.py M /issm/trunk-jpl/src/m/classes/gia.m M /issm/trunk-jpl/src/m/classes/gia.py M /issm/trunk-jpl/src/m/classes/hydrologydc.m M /issm/trunk-jpl/src/m/classes/hydrologydc.py M /issm/trunk-jpl/src/m/classes/hydrologysommers.m M /issm/trunk-jpl/src/m/classes/initialization.m M /issm/trunk-jpl/src/m/classes/initialization.py M /issm/trunk-jpl/src/m/classes/inversion.m M /issm/trunk-jpl/src/m/classes/inversion.py M /issm/trunk-jpl/src/m/classes/inversionvalidation.m M /issm/trunk-jpl/src/m/classes/linearbasalforcings.m M /issm/trunk-jpl/src/m/classes/linearbasalforcings.py M /issm/trunk-jpl/src/m/classes/m1qn3inversion.m M /issm/trunk-jpl/src/m/classes/m1qn3inversion.py M /issm/trunk-jpl/src/m/classes/masscon.m M /issm/trunk-jpl/src/m/classes/massconaxpby.m M /issm/trunk-jpl/src/m/classes/matice.m M /issm/trunk-jpl/src/m/classes/matice.py M /issm/trunk-jpl/src/m/classes/mesh2d.m M /issm/trunk-jpl/src/m/classes/mesh2d.py M /issm/trunk-jpl/src/m/classes/mesh2dvertical.m M /issm/trunk-jpl/src/m/classes/mesh3dprisms.m M /issm/trunk-jpl/src/m/classes/mesh3dprisms.py M /issm/trunk-jpl/src/m/classes/mesh3dsurface.m M /issm/trunk-jpl/src/m/classes/mesh3dtetras.m M /issm/trunk-jpl/src/m/classes/misfit.m M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py M /issm/trunk-jpl/src/m/classes/spheremesh.m M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/stressbalance.py M /issm/trunk-jpl/src/m/classes/taoinversion.m M /issm/trunk-jpl/src/m/classes/taoinversion.py M /issm/trunk-jpl/src/m/classes/timestepping.m M /issm/trunk-jpl/src/m/classes/timestepping.py M /issm/trunk-jpl/src/m/consistency/checkfield.m\\
+Export determination: 6. \\
+Rationale: CHG: added check on Inf values in checkconsistency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#784} with diff file ISSM-19898-19899.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/py3/classes/SMBcomponents.py M /issm/trunk-jpl/src/py3/classes/SMBd18opdd.py M /issm/trunk-jpl/src/py3/classes/SMBforcing.py M /issm/trunk-jpl/src/py3/classes/SMBgradients.py M /issm/trunk-jpl/src/py3/classes/SMBmeltcomponents.py M /issm/trunk-jpl/src/py3/classes/SMBpdd.py M /issm/trunk-jpl/src/py3/classes/balancethickness.py M /issm/trunk-jpl/src/py3/classes/basalforcings.py M /issm/trunk-jpl/src/py3/classes/calving.py M /issm/trunk-jpl/src/py3/classes/calvinglevermann.py M /issm/trunk-jpl/src/py3/classes/friction.py M /issm/trunk-jpl/src/py3/classes/frictioncoulomb.py M /issm/trunk-jpl/src/py3/classes/frictionweertman.py M /issm/trunk-jpl/src/py3/classes/geometry.py M /issm/trunk-jpl/src/py3/classes/gia.py M /issm/trunk-jpl/src/py3/classes/hydrologydc.py M /issm/trunk-jpl/src/py3/classes/initialization.py M /issm/trunk-jpl/src/py3/classes/inversion.py M /issm/trunk-jpl/src/py3/classes/linearbasalforcings.py M /issm/trunk-jpl/src/py3/classes/m1qn3inversion.py M /issm/trunk-jpl/src/py3/classes/matice.py M /issm/trunk-jpl/src/py3/classes/mesh2d.py M /issm/trunk-jpl/src/py3/classes/mesh3dprisms.py M /issm/trunk-jpl/src/py3/classes/mismipbasalforcings.py M /issm/trunk-jpl/src/py3/classes/stressbalance.py M /issm/trunk-jpl/src/py3/classes/taoinversion.py M /issm/trunk-jpl/src/py3/classes/timestepping.py\\
+Export determination: 6. \\
+Rationale: CHG: added check on Inf values in checkconsistency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#785} with diff file ISSM-19899-19900.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/py3/consistency/checkfield.py\\
+Export determination: 6. \\
+Rationale: NEW: added check 'Inf',1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#786} with diff file ISSM-19900-19901.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/checkfield.py\\
+Export determination: 6. \\
+Rationale: NEW: added check 'Inf',1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#787} with diff file ISSM-19901-19902.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.js M /issm/trunk-jpl/src/m/classes/balancethickness.js M /issm/trunk-jpl/src/m/classes/basalforcings.js M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/friction.js M /issm/trunk-jpl/src/m/classes/geometry.js M /issm/trunk-jpl/src/m/classes/gia.js M /issm/trunk-jpl/src/m/classes/initialization.js M /issm/trunk-jpl/src/m/classes/inversion.js M /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/mesh2d.js M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/timestepping.js\\
+Export determination: 6. \\
+Rationale: CHG: added check isinf in js, need to add the same to checkconsistency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#788} with diff file ISSM-19902-19903.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/checkfield.js\\
+Export determination: 6. \\
+Rationale: CHG: added check isinf in js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#789} with diff file ISSM-19903-19904.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/calving.py M /issm/trunk-jpl/src/m/classes/calvingdev.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.py M /issm/trunk-jpl/src/m/classes/calvingpi.m M /issm/trunk-jpl/src/m/classes/damage.js M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/damage.py M /issm/trunk-jpl/src/m/classes/frictionwaterlayer.m M /issm/trunk-jpl/src/m/classes/hydrologydc.m M /issm/trunk-jpl/src/m/classes/hydrologydc.py M /issm/trunk-jpl/src/m/classes/hydrologyshreve.js M /issm/trunk-jpl/src/m/classes/hydrologyshreve.m M /issm/trunk-jpl/src/m/classes/hydrologyshreve.py M /issm/trunk-jpl/src/m/classes/masstransport.js M /issm/trunk-jpl/src/m/classes/masstransport.m M /issm/trunk-jpl/src/m/classes/masstransport.py M /issm/trunk-jpl/src/m/classes/stressbalance.js M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/stressbalance.py M /issm/trunk-jpl/src/m/classes/thermal.js M /issm/trunk-jpl/src/m/classes/thermal.m M /issm/trunk-jpl/src/m/classes/thermal.py M /issm/trunk-jpl/src/py3/classes/calving.py M /issm/trunk-jpl/src/py3/classes/calvinglevermann.py M /issm/trunk-jpl/src/py3/classes/damage.py M /issm/trunk-jpl/src/py3/classes/hydrologydc.py M /issm/trunk-jpl/src/py3/classes/hydrologyshreve.py M /issm/trunk-jpl/src/py3/classes/masstransport.py M /issm/trunk-jpl/src/py3/classes/stressbalance.py M /issm/trunk-jpl/src/py3/classes/thermal.py\\
+Export determination: 6. \\
+Rationale: CHG: added check Inf on spc as well\\
+\vspace{3em}
+
+\noindent \textbf{Change \#790} with diff file ISSM-19904-19905.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding zoombounds option to js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#791} with diff file ISSM-19905-19906.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing zooming behavior and removing extraneous code from plot\_unit.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#792} with diff file ISSM-19906-19907.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Code cleanup for webgl.js.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#793} with diff file ISSM-19907-19908.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Handling zoom boundary cases for plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#794} with diff file ISSM-19908-19909.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js A /issm/trunk-jpl/src/m/plot/plot\_radaroverlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Now plotting outer overlay.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#795} with diff file ISSM-19909-19910.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG: introduced step.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#796} with diff file ISSM-19910-19911.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js D /issm/trunk-jpl/src/m/plot/plot\_radaroverlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Consolidating radaroverlay handling.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#797} with diff file ISSM-19911-19912.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.py\\
+Export determination: 6. \\
+Rationale: BUG: forgot to add extrude function in mismipbasalforcings classes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#798} with diff file ISSM-19912-19913.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing 3d mesh support for overlay, mesh, and unit plots. Preventing webgl from drawing unloaded textures.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#799} with diff file ISSM-19913-19914.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Recommitting plot\_overlay.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#800} with diff file ISSM-19914-19915.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Correcting texture coordinates for outer radaroverlay.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#801} with diff file ISSM-19915-19916.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/javascript/src/hammer.min.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Preliminary implementation of mouse/touch camera rotation interaction for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#802} with diff file ISSM-19916-19917.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Altering modelmatrix calculation to work with translations and new camera view\\
+\vspace{3em}
+
+\noindent \textbf{Change \#803} with diff file ISSM-19917-19918.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding in pinch zoom handling, azimuth/elevation camera rotation view, and azimuthbounds/elevationbounds clamping options with console output for debugging.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#804} with diff file ISSM-19918-19919.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Changing default background color to sky blue for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#805} with diff file ISSM-19919-19920.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing worldspace x/y camera panning and inner/outer ocean masking options.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#806} with diff file ISSM-19920-19921.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing nodata option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#807} with diff file ISSM-19921-19922.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing canvasoffset option and persistent camera rotations on plotmodel redraws.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#808} with diff file ISSM-19922-19923.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing low canvas resolution and adding in explicit canvas persistence handling for camera.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#809} with diff file ISSM-19923-19924.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing drawing of unit plots, adding more code folds.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#810} with diff file ISSM-19924-19925.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing radaroverlay handling for overlays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#811} with diff file ISSM-19925-19926.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Hotfix for incorrectly displaying overlay.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#812} with diff file ISSM-19926-19927.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Added condition to prevent negative pressure\\
+\vspace{3em}
+
+\noindent \textbf{Change \#813} with diff file ISSM-19927-19928.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Correcting height scaling for ocean mask shading.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#814} with diff file ISSM-19928-19929.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive350.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated Hydro Sommers archive to reflect change to analysis'\\
+\vspace{3em}
+
+\noindent \textbf{Change \#815} with diff file ISSM-19929-19930.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/plotmodel.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Tentative implementation of multiplot rendering. Iproving transparency handling.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#816} with diff file ISSM-19930-19931.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive3008.nc M /issm/trunk-jpl/test/Archives/Archive3108.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated AD test archives for test 3008 and 3108.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#817} with diff file ISSM-19931-19932.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/HydrologySommersAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Put in a cap so that subglacial gap height cannot exceed the ice thickness\\
+\vspace{3em}
+
+\noindent \textbf{Change \#818} with diff file ISSM-19932-19933.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.5-win7.sh A /issm/trunk-jpl/jenkins/linux64\_ross\_test M /issm/trunk-jpl/test/NightlyRun/test124.m M /issm/trunk-jpl/test/NightlyRun/test211.m M /issm/trunk-jpl/test/NightlyRun/test211.py\\
+Export determination: 6. \\
+Rationale: ADD: linux64\_ross\_test for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#819} with diff file ISSM-19933-19934.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.5-win7.sh M /issm/trunk-jpl/test/NightlyRun/test124.m M /issm/trunk-jpl/test/NightlyRun/test211.m M /issm/trunk-jpl/test/NightlyRun/test211.py\\
+Export determination: 6. \\
+Rationale: REV: reverting files I mistakenly changed.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#820} with diff file ISSM-19934-19935.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Removing some console logs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#821} with diff file ISSM-19935-19936.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/radarpower.m M /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG: minor.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#822} with diff file ISSM-19936-19937.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Generalizing slidersdiv handling and implementing slidersdiv option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#823} with diff file ISSM-19937-19938.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing canvasid warning bug. Adding in displayzoom and displayview debug options.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#824} with diff file ISSM-19938-19939.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added logic to Jenkins script to handle build stages. More changes to come.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#825} with diff file ISSM-19939-19940.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Moved up the cleaning up directory part.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#826} with diff file ISSM-19940-19941.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Fixed a small issue with double echos.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#827} with diff file ISSM-19941-19942.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Escaped quotes for XML tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#828} with diff file ISSM-19942-19943.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.js M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing compatible dynamic canvas generation. Updated test101.html.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#829} with diff file ISSM-19943-19944.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing 2d option for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#830} with diff file ISSM-19944-19945.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plotoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Removing debug statement, fixing spacing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#831} with diff file ISSM-19945-19946.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Refactoring displayzoom/view options. 2d option now uses orthographic camera.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#832} with diff file ISSM-19946-19947.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Updating zoom for js plots to use percentage based values.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#833} with diff file ISSM-19947-19948.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/inversion.m\\
+Export determination: 6. \\
+Rationale: CHG (JavaScript): new savemodeljs routine for inversion class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#834} with diff file ISSM-19948-19949.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/miscellaneous.m\\
+Export determination: 6. \\
+Rationale: CHG (JavaScript): try and handle dummy structure in miscellaneous class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#835} with diff file ISSM-19949-19950.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/triangle.m\\
+Export determination: 6. \\
+Rationale: CHG: allow for optional removal of orphans\\
+\vspace{3em}
+
+\noindent \textbf{Change \#836} with diff file ISSM-19950-19951.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/miscellaneous/converttopowerof2.m\\
+Export determination: 6. \\
+Rationale: CHG: introduce controls on maximum size of radar image.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#837} with diff file ISSM-19951-19952.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/miscellaneous.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed issue with testing against the type self.dummy\\
+\vspace{3em}
+
+\noindent \textbf{Change \#838} with diff file ISSM-19952-19953.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: CHG: new lonestar5 system\\
+\vspace{3em}
+
+\noindent \textbf{Change \#839} with diff file ISSM-19953-19954.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: CHG: new mpi call\\
+\vspace{3em}
+
+\noindent \textbf{Change \#840} with diff file ISSM-19954-19955.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/mesh/augment2dmesh.m A /issm/trunk-jpl/src/m/mesh/mesh3dsurfaceplug2d.m A /issm/trunk-jpl/src/m/mesh/patchglobe.m\\
+Export determination: 6. \\
+Rationale: CHG: some voodoo magic about plugging 2d meshes into a globe mesh.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#841} with diff file ISSM-19955-19956.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m A /issm/trunk-jpl/src/m/exp/meshtodomain.m A /issm/trunk-jpl/src/m/miscellaneous/alignsegments.m M /issm/trunk-jpl/src/m/parameterization/contourenvelope.m\\
+Export determination: 6. \\
+Rationale: CHG: contourenvelope now deals only with a mesh class instead of a model class. model.m had to be adapted accordingly. New routines meshtodomain which takes the segments in the mesh and dumps a domain outline out of them. New routine alignsegments which puts unordered segments into order (prior for example to calling meshtodomain).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#842} with diff file ISSM-19956-19957.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: update lonestar to SLURM\\
+\vspace{3em}
+
+\noindent \textbf{Change \#843} with diff file ISSM-19957-19958.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/contrib/massbalance/contourmassbalance.m M /issm/trunk-jpl/src/m/mesh/rifts/meshaddrifts.m\\
+Export determination: 6. \\
+Rationale: BUG: prototype of contourenvelope has changed, updating accordingly\\
+\vspace{3em}
+
+\noindent \textbf{Change \#844} with diff file ISSM-19958-19959.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.m M /issm/trunk-jpl/src/m/classes/autodiff.m M /issm/trunk-jpl/src/m/classes/basalforcings.m M /issm/trunk-jpl/src/m/classes/clusters/generic.m M /issm/trunk-jpl/src/m/classes/constants.m M /issm/trunk-jpl/src/m/classes/damage.m M /issm/trunk-jpl/src/m/classes/debug.m M /issm/trunk-jpl/src/m/classes/flaim.m M /issm/trunk-jpl/src/m/classes/flowequation.m M /issm/trunk-jpl/src/m/classes/friction.m M /issm/trunk-jpl/src/m/classes/frictioncoulomb.m M /issm/trunk-jpl/src/m/classes/frictionweertman.m M /issm/trunk-jpl/src/m/classes/geometry.m M /issm/trunk-jpl/src/m/classes/gia.m M /issm/trunk-jpl/src/m/classes/groundingline.m M /issm/trunk-jpl/src/m/classes/hydrologyshreve.m M /issm/trunk-jpl/src/m/classes/initialization.m M /issm/trunk-jpl/src/m/classes/inversion.m M /issm/trunk-jpl/src/m/classes/linearbasalforcings.m M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/classes/matdamageice.m M /issm/trunk-jpl/src/m/classes/matice.m M /issm/trunk-jpl/src/m/classes/mesh2dvertical.m M /issm/trunk-jpl/src/m/classes/mesh3dprisms.m M /issm/trunk-jpl/src/m/classes/mesh3dsurface.m M /issm/trunk-jpl/src/m/classes/mesh3dtetras.m M /issm/trunk-jpl/src/m/classes/miscellaneous.m M /issm/trunk-jpl/src/m/classes/mismipbasalforcings.m M /issm/trunk-jpl/src/m/classes/outputdefinition.m M /issm/trunk-jpl/src/m/classes/qmu.m M /issm/trunk-jpl/src/m/classes/rifts.m M /issm/trunk-jpl/src/m/classes/settings.m M /issm/trunk-jpl/src/m/classes/steadystate.m M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/thermal.m M /issm/trunk-jpl/src/m/classes/timestepping.m M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/verbose.m\\
+Export determination: 6. \\
+Rationale: CHG: some cleanup. Taking out the createxml routines, the effort did not pan out.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#845} with diff file ISSM-19959-19960.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/solve/createxml.m\\
+Export determination: 6. \\
+Rationale: DEL: not needed anymore\\
+\vspace{3em}
+
+\noindent \textbf{Change \#846} with diff file ISSM-19960-19961.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/contrib/morphological (from /issm/trunk-jpl/src/m/morphological:19956) D /issm/trunk-jpl/src/m/morphological\\
+Export determination: 6. \\
+Rationale: CHG: moving morphological to contrib\\
+\vspace{3em}
+
+\noindent \textbf{Change \#847} with diff file ISSM-19961-19962.diff: \\
+Function name: \\
+A /issm/trunk-jpl/bin/vilje.m\\
+Export determination: 6. \\
+Rationale: new: adding new cluster file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#848} with diff file ISSM-19962-19963.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/clusters/vilje.m\\
+Export determination: 6. \\
+Rationale: new: adding new cluster file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#849} with diff file ISSM-19963-19964.diff: \\
+Function name: \\
+D /issm/trunk-jpl/bin/vilje.m\\
+Export determination: 6. \\
+Rationale: DEL: should not be added to bin, alredy in src/m/classes/clusters\\
+\vspace{3em}
+
+\noindent \textbf{Change \#850} with diff file ISSM-19964-19965.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/plot/gauge.js\\
+Export determination: 6. \\
+Rationale: ADD (javascript): js plots gauge wrapper implementation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#851} with diff file ISSM-19965-19966.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing expdisp for js plots.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#852} with diff file ISSM-19966-19967.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3001.py M /issm/trunk-jpl/test/NightlyRun/test3002.py M /issm/trunk-jpl/test/NightlyRun/test3003.py M /issm/trunk-jpl/test/NightlyRun/test3004.py M /issm/trunk-jpl/test/NightlyRun/test3005.py M /issm/trunk-jpl/test/NightlyRun/test3006.py M /issm/trunk-jpl/test/NightlyRun/test3007.py M /issm/trunk-jpl/test/NightlyRun/test3008.py M /issm/trunk-jpl/test/NightlyRun/test3009.py M /issm/trunk-jpl/test/NightlyRun/test3010.py M /issm/trunk-jpl/test/NightlyRun/test3015.py M /issm/trunk-jpl/test/NightlyRun/test3019.py M /issm/trunk-jpl/test/NightlyRun/test3020.py M /issm/trunk-jpl/test/NightlyRun/test3119.py\\
+Export determination: 6. \\
+Rationale: CHG: Removed call to issmgslsolver() from AD tests. Call is done during toolkits init.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#853} with diff file ISSM-19967-19968.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/autodiff.py M /issm/trunk-jpl/src/m/classes/toolkits.py\\
+Export determination: 6. \\
+Rationale: CHG: Added some modules required for non Petsc solvers as well as removed iteritems from list object.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#854} with diff file ISSM-19968-19969.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Adding AD Python tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#855} with diff file ISSM-19969-19970.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/toolkits.py\\
+Export determination: 6. \\
+Rationale: REV: reverting changes to toolkit.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#856} with diff file ISSM-19970-19971.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/autodiff.py\\
+Export determination: 6. \\
+Rationale: REV: reverting changes to autodiff.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#857} with diff file ISSM-19971-19972.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/autodiff.py\\
+Export determination: 6. \\
+Rationale: CHG: Restoring changes to autodiff.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#858} with diff file ISSM-19972-19973.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/javascript/src/hammer.min.js A /issm/trunk-jpl/externalpackages/javascript/src/jsonfn.js\\
+Export determination: 6. \\
+Rationale: CHG: some new packages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#859} with diff file ISSM-19973-19974.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/javascript/src/gauge.min.js\\
+Export determination: 6. \\
+Rationale: ADD (javascript): gauge source file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#860} with diff file ISSM-19974-19975.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ad\\
+Export determination: 6. \\
+Rationale: CHG: Added python stuff to AD configure for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#861} with diff file ISSM-19975-19976.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/gauge.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding text label option for gauges.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#862} with diff file ISSM-19976-19977.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ad\\
+Export determination: 6. \\
+Rationale: CHG: Jenkins AD should only be running AD tests when provided with the --benchmark=adolc options, but it does not seem to like. Trying it without the single quotes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#863} with diff file ISSM-19977-19978.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/issm/IssmAbsVec.h M /issm/trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h M /issm/trunk-jpl/src/c/toolkits/issm/IssmSeqVec.h M /issm/trunk-jpl/src/c/toolkits/issm/IssmVec.h M /issm/trunk-jpl/src/c/toolkits/objects/Vector.h M /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.cpp M /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscVec.h\\
+Export determination: 6. \\
+Rationale: CHG: new capability to shift a toolkit vector by a certain offset. Akin to the VecShift routine in Petsc.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#864} with diff file ISSM-19978-19979.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/enum/Domain3DsurfaceEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/MaskOceanLevelsetEnum.m A /issm/trunk-jpl/src/m/enum/MaterialsEarthDensityEnum.m A /issm/trunk-jpl/src/m/enum/MeshLatEnum.m A /issm/trunk-jpl/src/m/enum/MeshLongEnum.m A /issm/trunk-jpl/src/m/enum/MeshREnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseAbstolEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseAnalysisEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseDeltathicknessEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseElasticEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseEustaticEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseLoveHEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseLoveKEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseMaxiterEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseReltolEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseRigidEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseSEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseSolutionEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: new enums for the sea level rise solution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#865} with diff file ISSM-19979-19980.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp M /issm/trunk-jpl/src/c/shared/Numerics/numerics.h\\
+Export determination: 6. \\
+Rationale: NEW: legendre polynomial evaluation function.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#866} with diff file ISSM-19980-19981.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: added gauge.js to install target of scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#867} with diff file ISSM-19981-19982.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m\\
+Export determination: 6. \\
+Rationale: CHG: address issue of gmtmask not accepting large input files (i.e. larger than ~50-100,000 vertices). Implement recursive call.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#868} with diff file ISSM-19982-19983.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mesh3dsurface.m\\
+Export determination: 6. \\
+Rationale: CHG: no need to preprocess lat and long. Just upload them as is.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#869} with diff file ISSM-19983-19984.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/gia\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed leak.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#870} with diff file ISSM-19984-19985.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/EnumToAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp A /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.h M /issm/trunk-jpl/src/c/analyses/analyses.h M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp M /issm/trunk-jpl/src/c/classes/Materials/Matpar.h M /issm/trunk-jpl/src/c/classes/Vertex.cpp M /issm/trunk-jpl/src/c/classes/Vertex.h M /issm/trunk-jpl/src/c/cores/CorePointerFromSolutionEnum.cpp M /issm/trunk-jpl/src/c/cores/cores.h A /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp M /issm/trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.cpp M /issm/trunk-jpl/src/c/modules/VertexCoordinatesx/VertexCoordinatesx.h M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/classes/matice.m M /issm/trunk-jpl/src/m/classes/model.m A /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m\\
+Export determination: 6. \\
+Rationale: CHG: new sea level rise solution. Not valdated yet! This solution requires one Sealevelrise analysis (so added the corresponding EnumToAnalysis and analysis.h files + SealevelriseAnalysis.* files). In terms of solution core: we have a new sealevelrise\_core.cpp files + corresponding hook up in CorePointerFromSolutionEnum. This core calls the new FemModel Sealevelrise module, which loops through the elements, hence the mods to Element.* along with all derivatives classes, in particular Tria. In terms of ModelProcessorx, we have a modified CreateElementsVerticesAndMaterials to include lat,long and radius, which also translsates into modifications for the Vertex object. The VertexCoordinatesx module is also modified, to be able to retrieve x,y,z but also lat,long,r from vertices. Of course, this is all driven from matlab, where we have a new field in the model, the slr class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#871} with diff file ISSM-19985-19986.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/analyses.m4\\
+Export determination: 6. \\
+Rationale: CHG: new sea level rise hook up for the configure script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#872} with diff file ISSM-19986-19987.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: CHG: added precomputation of legendre polynomials.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#873} with diff file ISSM-19987-19988.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/MaskLandLevelsetEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: - upload legendre coefficients if they are precomputed. - new land mask for the psl mask class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#874} with diff file ISSM-19988-19989.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/matdamageice.m M /issm/trunk-jpl/src/m/classes/matdamageice.py M /issm/trunk-jpl/src/m/classes/matice.js M /issm/trunk-jpl/src/m/classes/matice.py\\
+Export determination: 6. \\
+Rationale: CHG: missing earth density\\
+\vspace{3em}
+
+\noindent \textbf{Change \#875} with diff file ISSM-19989-19990.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: issue with the legendre call.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#876} with diff file ISSM-19990-19991.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: a fix for AD. Need to cast IssmDouble to int.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#877} with diff file ISSM-19991-19992.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: another cast needed for AD.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#878} with diff file ISSM-19992-19993.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing point cloud rendering.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#879} with diff file ISSM-19993-19994.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/export\_fig/LICENSE M /issm/trunk-jpl/externalpackages/export\_fig/README.md M /issm/trunk-jpl/externalpackages/export\_fig/append\_pdfs.m M /issm/trunk-jpl/externalpackages/export\_fig/copyfig.m M /issm/trunk-jpl/externalpackages/export\_fig/crop\_borders.m M /issm/trunk-jpl/externalpackages/export\_fig/eps2pdf.m M /issm/trunk-jpl/externalpackages/export\_fig/export\_fig.m M /issm/trunk-jpl/externalpackages/export\_fig/fix\_lines.m M /issm/trunk-jpl/externalpackages/export\_fig/ghostscript.m M /issm/trunk-jpl/externalpackages/export\_fig/isolate\_axes.m M /issm/trunk-jpl/externalpackages/export\_fig/pdftops.m M /issm/trunk-jpl/externalpackages/export\_fig/print2array.m M /issm/trunk-jpl/externalpackages/export\_fig/print2eps.m M /issm/trunk-jpl/externalpackages/export\_fig/user\_string.m M /issm/trunk-jpl/externalpackages/export\_fig/using\_hg2.m\\
+Export determination: 6. \\
+Rationale: BUG: reverting back to old export\_fig (too many problems)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#880} with diff file ISSM-19994-19995.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test513.m\\
+Export determination: 6. \\
+Rationale: CHG: Relaxing MATLAB test513. No need to relax Python test since it was already done.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#881} with diff file ISSM-19995-19996.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: CHG: need to run sbatch\\
+\vspace{3em}
+
+\noindent \textbf{Change \#882} with diff file ISSM-19996-19997.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: minor updates for SLURM\\
+\vspace{3em}
+
+\noindent \textbf{Change \#883} with diff file ISSM-19997-19998.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: add mailing option to lonestar\\
+\vspace{3em}
+
+\noindent \textbf{Change \#884} with diff file ISSM-19998-19999.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/toolkits.py M /issm/trunk-jpl/src/m/solvers/issmgslsolver.py M /issm/trunk-jpl/src/m/solvers/issmmumpssolver.py\\
+Export determination: 6. \\
+Rationale: CHG: Fixing python AD bug by upgrading issmgslsolver.py and issmmumpssolver.py. Also adding import statements for both in toolkits.py\\
+\vspace{3em}
+
+\noindent \textbf{Change \#885} with diff file ISSM-19999-20000.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test124.m\\
+Export determination: 6. \\
+Rationale: CHG: relaxing fields of test124.m\\
+\vspace{3em}
+
+\noindent \textbf{Change \#886} with diff file ISSM-20000-20001.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Adding new options for Jenkins config file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#887} with diff file ISSM-20001-20002.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3101.py M /issm/trunk-jpl/test/NightlyRun/test3102.py M /issm/trunk-jpl/test/NightlyRun/test3103.py M /issm/trunk-jpl/test/NightlyRun/test3104.py M /issm/trunk-jpl/test/NightlyRun/test3105.py M /issm/trunk-jpl/test/NightlyRun/test3106.py M /issm/trunk-jpl/test/NightlyRun/test3107.py M /issm/trunk-jpl/test/NightlyRun/test3108.py M /issm/trunk-jpl/test/NightlyRun/test3109.py M /issm/trunk-jpl/test/NightlyRun/test3110.py\\
+Export determination: 6. \\
+Rationale: CHG: removing calls to issmmumpssolver() and issmgslsolver from python AD tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#888} with diff file ISSM-20002-20003.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/autodiff.py M /issm/trunk-jpl/src/m/classes/dependent.py M /issm/trunk-jpl/src/m/classes/independent.py M /issm/trunk-jpl/test/NightlyRun/test3015.py\\
+Export determination: 6. \\
+Rationale: CHG: changes to Python AD code to fix remaining failures.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#889} with diff file ISSM-20003-20004.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: removed commas from list of tests.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#890} with diff file ISSM-20004-20005.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/matice.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): minor issue with if statement.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#891} with diff file ISSM-20005-20006.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m\\
+Export determination: 6. \\
+Rationale: CHG: some verbosing of gmtmask\\
+\vspace{3em}
+
+\noindent \textbf{Change \#892} with diff file ISSM-20006-20007.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelriseGElasticEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: added SealevelriseGRigidEnum and SealevelriseGElasticEnum needed to avoid recomputation of the green function.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#893} with diff file ISSM-20007-20008.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/cores/cores.h M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp A /issm/trunk-jpl/src/c/cores/sealevelrise\_core\_eustatic.cpp A /issm/trunk-jpl/src/c/cores/sealevelrise\_core\_noneustatic.cpp\\
+Export determination: 6. \\
+Rationale: CHG: validation of the sealevelrise\_core against Surendra's matlab code. Also, improvements in the treatment of the Green function, which can be reused in the non eustatic part of the solution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#894} with diff file ISSM-20008-20009.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/configs/5.3.1/CMakeLists.txt.lonestar.patch M /issm/trunk-jpl/externalpackages/dakota/install-6.2-lonestar.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh\\
+Export determination: 6. \\
+Rationale: CHG: use correct mpi\\
+\vspace{3em}
+
+\noindent \textbf{Change \#895} with diff file ISSM-20009-20010.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: minor updtaes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#896} with diff file ISSM-20010-20011.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: call assemble routine for each step, because otherwise Petsc starts buffering huge amounts of data.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#897} with diff file ISSM-20011-20012.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: assemble every 100 steps.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#898} with diff file ISSM-20012-20013.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: 20% improvement in the SLR core speed from switching to SetValues instead of SetValue one at a time.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#899} with diff file ISSM-20013-20014.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m\\
+Export determination: 6. \\
+Rationale: CHG: better verbose of gmtmask.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#900} with diff file ISSM-20014-20015.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: adding option to not store green functions.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#901} with diff file ISSM-20015-20016.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: adding store green functions flag\\
+\vspace{3em}
+
+\noindent \textbf{Change \#902} with diff file ISSM-20016-20017.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/AdjointBalancethicknessAnalysis.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/ThicknessPositiveEnum.m M /issm/trunk-jpl/src/m/inversions/marshallcostfunctions.m M /issm/trunk-jpl/src/m/inversions/supportedcostfunctions.m\\
+Export determination: 6. \\
+Rationale: NEW: added cost function that forces H to be positive for MC\\
+\vspace{3em}
+
+\noindent \textbf{Change \#903} with diff file ISSM-20017-20018.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp\\
+Export determination: 6. \\
+Rationale: CHG: no need to get Hobs everytime\\
+\vspace{3em}
+
+\noindent \textbf{Change \#904} with diff file ISSM-20018-20019.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: new implementation of legendre function.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#905} with diff file ISSM-20019-20020.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test233.m M /issm/trunk-jpl/test/NightlyRun/test233.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxed tests 233.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#906} with diff file ISSM-20020-20021.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/cores/thermal\_core.cpp M /issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp A /issm/trunk-jpl/src/c/modules/GeothermalFluxx A /issm/trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.cpp A /issm/trunk-jpl/src/c/modules/GeothermalFluxx/GeothermalFluxx.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/modules/modules.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/classes/plumebasalforcings.m A /issm/trunk-jpl/src/m/enum/BasalforcingsBottomplumedepthEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsCrustthicknessEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsDtbgEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsLowercrustheatEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsMantleconductivityEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsNusseltEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsPlumeradiusEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsPlumexEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsPlumeyEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsTopplumedepthEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsUppercrustheatEnum.m A /issm/trunk-jpl/src/m/enum/BasalforcingsUppercrustthicknessEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/MantlePlumeGeothermalFluxEnum.m A /issm/trunk-jpl/test/Archives/Archive342.nc A /issm/trunk-jpl/test/NightlyRun/test342.m\\
+Export determination: 6. \\
+Rationale: NEW: starting to add Mantle Plume class to compute geothermal heat flux\\
+\vspace{3em}
+
+\noindent \textbf{Change \#907} with diff file ISSM-20021-20022.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp M /issm/trunk-jpl/src/c/shared/Numerics/numerics.h\\
+Export determination: 6. \\
+Rationale: CHG: replace legendre.cpp by a better routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#908} with diff file ISSM-20022-20023.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: precompute legendre polynomial values.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#909} with diff file ISSM-20023-20024.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: use precomputed legendre polynomial values if requested.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#910} with diff file ISSM-20024-20025.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: default is now to precompute legendre polynomials.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#911} with diff file ISSM-20025-20026.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Implementing textlabels rendering.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#912} with diff file ISSM-20026-20027.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleMatParam.h\\
+Export determination: 6. \\
+Rationale: CHG: new pointer based get values routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#913} with diff file ISSM-20027-20028.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp\\
+Export determination: 6. \\
+Rationale: CHG: speed up of the precompute sea level rise core by transposing the legendre polynomial values matrix.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#914} with diff file ISSM-20028-20029.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.cpp M /issm/trunk-jpl/src/c/classes/Params/DoubleVecParam.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py D /issm/trunk-jpl/src/m/enum/SealevelriseGRigidEnum.m D /issm/trunk-jpl/src/m/enum/SealevelriseLegendreCoefficientsEnum.m D /issm/trunk-jpl/src/m/enum/SealevelriseLegendrePrecomputeEnum.m D /issm/trunk-jpl/src/m/enum/SealevelriseStoreGreenFunctionsEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: faster implementation of the precomputation of Green functions for elastic case.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#915} with diff file ISSM-20029-20030.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: do not compute G\_elastic if we are not in elastic mode. Also, avoid singularity due to discretization of low incidence angles.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#916} with diff file ISSM-20030-20031.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: testing compile\\
+\vspace{3em}
+
+\noindent \textbf{Change \#917} with diff file ISSM-20031-20032.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp\\
+Export determination: 6. \\
+Rationale: CHG: testing compile\\
+\vspace{3em}
+
+\noindent \textbf{Change \#918} with diff file ISSM-20032-20033.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp\\
+Export determination: 6. \\
+Rationale: CHG: testing compile\\
+\vspace{3em}
+
+\noindent \textbf{Change \#919} with diff file ISSM-20033-20034.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/c/shared/Numerics/legendre.cpp M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelriseDegaccEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: parallelized computation of G\_elastic in the Sealevelrise UpdateParameters analysis phase.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#920} with diff file ISSM-20034-20035.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix reCast\\
+\vspace{3em}
+
+\noindent \textbf{Change \#921} with diff file ISSM-20035-20036.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: better requested outputs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#922} with diff file ISSM-20036-20037.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelriseNumRequestedOutputsEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseRequestedOutputsEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: added requested outputs for slr solution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#923} with diff file ISSM-20037-20038.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed NodalValue issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#924} with diff file ISSM-20038-20039.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/c/classes/Nodalvalue.h M /issm/trunk-jpl/src/c/classes/classes.h M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateOutputDefinitions.cpp M /issm/trunk-jpl/src/c/modules/NodalValuex/NodalValuex.cpp M /issm/trunk-jpl/src/c/modules/modules.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/classes/nodalvalue.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/NodalvalueDefinitionenumEnum.m A /issm/trunk-jpl/src/m/enum/NodalvalueEnum.m A /issm/trunk-jpl/src/m/enum/NodalvalueModelEnumEnum.m A /issm/trunk-jpl/src/m/enum/NodalvalueNameEnum.m A /issm/trunk-jpl/src/m/enum/NodalvalueNodeEnum.m M /issm/trunk-jpl/src/m/plot/applyoptions.m\\
+Export determination: 6. \\
+Rationale: CHG: added zoom option in plotmodel. Fixed Nodalvalue module. Added new output definition Nodalvalue with corrsponding nodalvalue matlab class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#925} with diff file ISSM-20039-20040.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/modules.h\\
+Export determination: 6. \\
+Rationale: CHG: premature commit.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#926} with diff file ISSM-20040-20041.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/issm/IssmMpiVec.h\\
+Export determination: 6. \\
+Rationale: CHG: critical bug fix, erase buckets after assembly!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#927} with diff file ISSM-20041-20042.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core\_eustatic.cpp\\
+Export determination: 6. \\
+Rationale: CHG: remove some of the Assemble calls.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#928} with diff file ISSM-20042-20043.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: update the types of cpus on pleaides.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#929} with diff file ISSM-20043-20044.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: issue with missing Assemble step.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#930} with diff file ISSM-20044-20045.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: not working because probably of the MPI\_AllGatherv operation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#931} with diff file ISSM-20045-20046.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/toolkits.py\\
+Export determination: 6. \\
+Rationale: CHG: Added imports for mumpssolver.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#932} with diff file ISSM-20046-20047.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solvers/issmmumpssolver.py\\
+Export determination: 6. \\
+Rationale: CHG: Added OrderdDict import from Python collections.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#933} with diff file ISSM-20047-20048.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: NEW: finished mantle class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#934} with diff file ISSM-20048-20049.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/plumebasalforcings.m\\
+Export determination: 6. \\
+Rationale: BUG: improved default value\\
+\vspace{3em}
+
+\noindent \textbf{Change \#935} with diff file ISSM-20049-20050.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive342.nc M /issm/trunk-jpl/test/NightlyRun/test342.m\\
+Export determination: 6. \\
+Rationale: NEW: new archive for test 342\\
+\vspace{3em}
+
+\noindent \textbf{Change \#936} with diff file ISSM-20050-20051.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\\
+Export determination: 6. \\
+Rationale: CHG: Upping Jenkins performance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#937} with diff file ISSM-20051-20052.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\\
+Export determination: 6. \\
+Rationale: CHG: Continued tuning of Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#938} with diff file ISSM-20052-20053.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi\\
+Export determination: 6. \\
+Rationale: CHG: Almost finished tuning Jenkins Ubuntu and Ubuntu\_AD.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#939} with diff file ISSM-20053-20054.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: recast of a specific value.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#940} with diff file ISSM-20054-20055.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: faster parallel way of precomputing legendre Archive Forms oecreview.sh TEMP Template love polynomial values. Fixed huge bug for AD! Pn, Pn1 and Pn2 were not getting renewed!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#941} with diff file ISSM-20055-20056.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Increasing number CPUS for Windows Jenkins build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#942} with diff file ISSM-20056-20057.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Tuning Jenkins Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#943} with diff file ISSM-20057-20058.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Tuning Jenkins Windows build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#944} with diff file ISSM-20058-20059.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Reverting Jenkins Windows to use 5 CPUs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#945} with diff file ISSM-20059-20060.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix slr field\\
+\vspace{3em}
+
+\noindent \textbf{Change \#946} with diff file ISSM-20060-20061.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/coordsystems/gmtmaskparallel.m\\
+Export determination: 6. \\
+Rationale: NEW: gmtmaskparallel implementation of gmtmask, using the threaded application xjobs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#947} with diff file ISSM-20061-20062.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx A /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp A /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h A /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp A /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary A /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp A /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.h M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: NEW: new DistanceToMaskBoundary module.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#948} with diff file ISSM-20062-20063.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/modules.h\\
+Export determination: 6. \\
+Rationale: BUG: added ./DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h to modules list\\
+\vspace{3em}
+
+\noindent \textbf{Change \#949} with diff file ISSM-20063-20064.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp\\
+Export determination: 6. \\
+Rationale: FIX: included missing header.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#950} with diff file ISSM-20064-20065.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp\\
+Export determination: 6. \\
+Rationale: REV: undoing include statement. Not required anymore.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#951} with diff file ISSM-20065-20066.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/Analysis.h\\
+Export determination: 6. \\
+Rationale: BUG: Attempt at fixing AD non AMPI build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#952} with diff file ISSM-20066-20067.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.cpp M /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp\\
+Export determination: 6. \\
+Rationale: BUG: changing all doubles to IssmDoubles.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#953} with diff file ISSM-20067-20068.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryx.h\\
+Export determination: 6. \\
+Rationale: BUG: Forgot to change doubles in header as well.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#954} with diff file ISSM-20068-20069.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive2002.nc A /issm/trunk-jpl/test/Data/love\_numbers\_10k.txt A /issm/trunk-jpl/test/NightlyRun/test2002.m\\
+Export determination: 6. \\
+Rationale: NEW: added slr test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#955} with diff file ISSM-20069-20070.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: ADD: New Jenkins SE for Linux.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#956} with diff file ISSM-20070-20071.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/googlemaps.m M /issm/trunk-jpl/src/m/plot/plot\_googlemaps.m\\
+Export determination: 6. \\
+Rationale: CHG: more general lat/long inputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#957} with diff file ISSM-20071-20072.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gshhg/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: 2.3.4 version\\
+\vspace{3em}
+
+\noindent \textbf{Change \#958} with diff file ISSM-20072-20073.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/runme.m M /issm/trunk-jpl/test/NightlyRun/runme.py\\
+Export determination: 6. \\
+Rationale: CHG: renamed the gia tests to slr.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#959} with diff file ISSM-20073-20074.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: adapting for se runs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#960} with diff file ISSM-20074-20075.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: do not apply reltol by default.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#961} with diff file ISSM-20075-20076.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/geocode A /issm/trunk-jpl/externalpackages/geocode/geoCode.zip A /issm/trunk-jpl/externalpackages/geocode/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: new geoCode matlab routines.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#962} with diff file ISSM-20076-20077.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/geometry/locationtonode.m\\
+Export determination: 6. \\
+Rationale: NEW: new locationtonode matlab script to find the nearest point (on an earth 'mesh3dsurface' mesh) to a specific location (expressed as a string, for ex: 'LA','new york', etc.)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#963} with diff file ISSM-20077-20078.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: reduced the number of CPUs that linux\_ross\_se uses.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#964} with diff file ISSM-20078-20079.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: BUG: wrong sign in mantle plume root function\\
+\vspace{3em}
+
+\noindent \textbf{Change \#965} with diff file ISSM-20079-20080.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive342.nc\\
+Export determination: 6. \\
+Rationale: BUG: updated archive for improved mantle plume class\\
+\vspace{3em}
+
+\noindent \textbf{Change \#966} with diff file ISSM-20080-20081.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.py\\
+Export determination: 6. \\
+Rationale: BUG: inconsistency in load/save path definition\\
+\vspace{3em}
+
+\noindent \textbf{Change \#967} with diff file ISSM-20081-20082.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixed last problem with plume model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#968} with diff file ISSM-20082-20083.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive342.nc M /issm/trunk-jpl/test/NightlyRun/test342.m\\
+Export determination: 6. \\
+Rationale: BUG: updated archive for plume test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#969} with diff file ISSM-20083-20084.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_quiver.m\\
+Export determination: 6. \\
+Rationale: BUG: do not call quiver if nothing is being plotted, otherwise the axis will be messed up\\
+\vspace{3em}
+
+\noindent \textbf{Change \#970} with diff file ISSM-20084-20085.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gdal/install-1.10-linux64.sh\\
+Export determination: 6. \\
+Rationale: CHG: added exports to CFLAGS and CXXFLAGS to fix compilation issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#971} with diff file ISSM-20085-20086.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: Removed NETCDF externalpackage from SE Linux build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#972} with diff file ISSM-20086-20087.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: added gmsh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#973} with diff file ISSM-20087-20088.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gmsh/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: Change protocol from HTTPS to HTTP.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#974} with diff file ISSM-20088-20089.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gmsh/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: Restoring HTTPS protocol and removing user stuf.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#975} with diff file ISSM-20089-20090.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/gmsh/install.sh\\
+Export determination: 6. \\
+Rationale: CHG: Restored password and username for gmsh package.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#976} with diff file ISSM-20090-20091.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: diffeerent order.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#977} with diff file ISSM-20091-20092.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/stressbalance.m\\
+Export determination: 6. \\
+Rationale: CHG: don't want to marshall loading force if it's empty.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#978} with diff file ISSM-20092-20093.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Elements/LliboutryDuval.cpp M /issm/trunk-jpl/test/Archives/Archive436.nc\\
+Export determination: 6. \\
+Rationale: BUG: LliboutryDuval rheology computed homologous temperature wrong. Allows now for small pressure instabilities occuring at surface.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#979} with diff file ISSM-20093-20094.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/steadystate\_core.cpp M /issm/trunk-jpl/test/Archives/Archive318.nc M /issm/trunk-jpl/test/Archives/Archive410.nc M /issm/trunk-jpl/test/Archives/Archive411.nc M /issm/trunk-jpl/test/Archives/Archive415.nc M /issm/trunk-jpl/test/Archives/Archive416.nc M /issm/trunk-jpl/test/Archives/Archive431.nc M /issm/trunk-jpl/test/Archives/Archive432.nc M /issm/trunk-jpl/test/Archives/Archive436.nc M /issm/trunk-jpl/test/Archives/Archive508.nc M /issm/trunk-jpl/test/Archives/Archive509.nc M /issm/trunk-jpl/test/Archives/Archive510.nc M /issm/trunk-jpl/test/Archives/Archive513.nc\\
+Export determination: 6. \\
+Rationale: CHG: compute in steadystate\_core 1.velocity 2.temperature, since temperature is highly sensitive to velocity. This bugfix also makes steadystate basal BCs for enthalpy work.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#980} with diff file ISSM-20094-20095.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test410.m\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#981} with diff file ISSM-20095-20096.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/TransientIscouplerEnum.m A /issm/trunk-jpl/src/m/enum/TransientIsslrEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: new coupler enum.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#982} with diff file ISSM-20096-20097.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test410.py\\
+Export determination: 6. \\
+Rationale: CHG: syncing python test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#983} with diff file ISSM-20097-20098.diff: \\
+Function name: \\
+M /issm/trunk-jpl/scripts/BinRead.py\\
+Export determination: 6. \\
+Rationale: CHG: Fixing incorrect file read, adding -o output file flag.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#984} with diff file ISSM-20098-20099.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: Enthalpy, dynamic basal boundary conditions (steady state): allow no refreeze, since this prevents SS solver from converging\\
+\vspace{3em}
+
+\noindent \textbf{Change \#985} with diff file ISSM-20099-20100.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive325.nc\\
+Export determination: 6. \\
+Rationale: CHG: updating archive\\
+\vspace{3em}
+
+\noindent \textbf{Change \#986} with diff file ISSM-20100-20101.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: ADD: new MacOSX configuration for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#987} with diff file ISSM-20101-20102.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Correcting the MacOSX build Matlab path. Also dialing back CPUs to use during build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#988} with diff file ISSM-20102-20103.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: updated SVN directory so as to use version 1.9 versus 1.7.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#989} with diff file ISSM-20103-20104.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Temporarily removed rm line.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#990} with diff file ISSM-20104-20105.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Inreased number of CPUs for MacOSX Jenkins build. CHG: restored removal of conftest.tmp\\
+\vspace{3em}
+
+\noindent \textbf{Change \#991} with diff file ISSM-20105-20106.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: added an excluded test243.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#992} with diff file ISSM-20106-20107.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: FIX: typo test number 234 instead of 243.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#993} with diff file ISSM-20107-20108.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test455.m M /issm/trunk-jpl/test/NightlyRun/test455.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#994} with diff file ISSM-20108-20109.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/materials/DepthAvgTempCond.m D /issm/trunk-jpl/src/m/materials/DepthAvgTempCond.py\\
+Export determination: 6. \\
+Rationale: CHG: moved to user directory.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#995} with diff file ISSM-20109-20110.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/augment2dmesh.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed issue with inner segments not being picked up within a certain tolerance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#996} with diff file ISSM-20110-20111.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/sealevelmodel.m\\
+Export determination: 6. \\
+Rationale: CHG: new class that handles a global representation of sea level.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#997} with diff file ISSM-20111-20112.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/patchglobe.m\\
+Export determination: 6. \\
+Rationale: CHG: new improved patchglobe that relies on gdaltransform instead of ll2xy. Also fixed large issue with connectivity not being correctly handled when augmenting the mesh with patches.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#998} with diff file ISSM-20112-20113.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/numpy/install-macosx-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: remove git call like other install scripts\\
+\vspace{3em}
+
+\noindent \textbf{Change \#999} with diff file ISSM-20113-20114.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp\\
+Export determination: 6. \\
+Rationale: CHG: compilations needs doubles not ints for snowleopard\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1000} with diff file ISSM-20114-20115.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/install-1.49-macosx-snowleopard.sh (from /issm/trunk-jpl/externalpackages/boost/install-macosx-snowleopard.sh:20099) A /issm/trunk-jpl/externalpackages/boost/install-1.55-macosx-snowleopard.sh D /issm/trunk-jpl/externalpackages/boost/install-macosx-snowleopard.sh\\
+Export determination: 6. \\
+Rationale: CHG: update mac install scripts\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1001} with diff file ISSM-20115-20116.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/DistanceToMaskBoundaryx/DistanceToMaskBoundaryxt.cpp\\
+Export determination: 6. \\
+Rationale: CHG: pow is much more efficient if second argument is an integer\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1002} with diff file ISSM-20116-20117.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: need SMB components to be inputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1003} with diff file ISSM-20117-20118.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ExtrapolationAnalysis.h M /issm/trunk-jpl/src/c/classes/Node.cpp M /issm/trunk-jpl/src/c/cores/cores.h A /issm/trunk-jpl/src/c/cores/levelset\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/test/Archives/Archive802.nc M /issm/trunk-jpl/test/Archives/Archive803.nc M /issm/trunk-jpl/test/Archives/Archive805.nc\\
+Export determination: 6. \\
+Rationale: CHG: Enabling extrapolation for level-set-method in 3d; Cleanup of transient\_core\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1004} with diff file ISSM-20118-20119.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py M /issm/trunk-jpl/test/NightlyRun/test803.m M /issm/trunk-jpl/test/NightlyRun/test803.py M /issm/trunk-jpl/test/NightlyRun/test805.m M /issm/trunk-jpl/test/NightlyRun/test805.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed tests 802,803,805.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1005} with diff file ISSM-20119-20120.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py M /issm/trunk-jpl/test/NightlyRun/test803.m M /issm/trunk-jpl/test/NightlyRun/test803.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed tests 802,803.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1006} with diff file ISSM-20120-20121.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m M /issm/trunk-jpl/src/m/classes/clusters/generic.py M /issm/trunk-jpl/src/m/classes/clusters/pfe.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.py M /issm/trunk-jpl/src/m/solve/solve.m M /issm/trunk-jpl/src/m/solve/solve.py\\
+Export determination: 6. \\
+Rationale: CHG: added batch flag for the LaunchQueueJob and reordered the sequence in solve because in generic clusters, in batch mode, we were not uploading anything!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1007} with diff file ISSM-20121-20122.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp A /issm/trunk-jpl/src/m/enum/EarthIdEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/FemModelCommEnum.m A /issm/trunk-jpl/src/m/enum/IcecapToEarthCommEnum.m A /issm/trunk-jpl/src/m/enum/ModelIdEnum.m A /issm/trunk-jpl/src/m/enum/NumModelsEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseTransitionsEnum.m A /issm/trunk-jpl/src/m/enum/WorldCommEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: new enums for coupler between sea level rise core and other cores.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1008} with diff file ISSM-20122-20123.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/geometry/locationtonode.m\\
+Export determination: 6. \\
+Rationale: CHG: improve by returning within a radius, and a certain tolerance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1009} with diff file ISSM-20123-20124.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: InputUpateFromSolution now computes delta thickness and inputs it as SealevelriseDeltathickness. This is used to force the sea level rise core if it is run.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1010} with diff file ISSM-20124-20125.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed bug correspnding to the addition of a new 2d mesh, the mesh3dsurface\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1011} with diff file ISSM-20125-20126.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp\\
+Export determination: 6. \\
+Rationale: CHG: new isslr and iscoupler.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1012} with diff file ISSM-20126-20127.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/mesh/meshintersect.m\\
+Export determination: 6. \\
+Rationale: CHG: figure out within a certain tolerance how vertices from one mesh are included into another mesh's vertices.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1013} with diff file ISSM-20127-20128.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/solve/solveslm.m\\
+Export determination: 6. \\
+Rationale: CHG: new solveslm routine to solve a sea level model (which includes earth and icecaps).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1014} with diff file ISSM-20128-20129.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gdaltransform.m\\
+Export determination: 6. \\
+Rationale: CHG: more robus treatment of gdal transform.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1015} with diff file ISSM-20129-20130.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmaskparallel.m\\
+Export determination: 6. \\
+Rationale: CHG: forgot to erase the script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1016} with diff file ISSM-20130-20131.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.m\\
+Export determination: 6. \\
+Rationale: CHG: do not warn when saving an slm model!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1017} with diff file ISSM-20131-20132.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/sealevelmodel.m\\
+Export determination: 6. \\
+Rationale: CHG: no patch globe in the constructor (should be done downstream). Also added consistency checks.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1018} with diff file ISSM-20132-20133.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/pairoptions.m\\
+Export determination: 6. \\
+Rationale: CHG: added getfieldvalues (specifically for the slm constructor).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1019} with diff file ISSM-20133-20134.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: added SealevelriseDeltathickness and SealevelriseS as acceptable inputs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1020} with diff file ISSM-20134-20135.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/classes/Node.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed issue with mesh3dsurface in the Node.cpp class. Also simplified FemModel to not include the communicators in the structure, but rather in the parameters dataset.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1021} with diff file ISSM-20135-20136.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am A /issm/trunk-jpl/src/c/main/issm\_slr.cpp\\
+Export determination: 6. \\
+Rationale: CHG: new issm\_slr executable.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1022} with diff file ISSM-20136-20137.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/cores/cores.h M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: new synchronization between mass transport from ice caps and sea level rise from earth models.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1023} with diff file ISSM-20137-20138.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBforcing.m M /issm/trunk-jpl/src/m/classes/friction.m M /issm/trunk-jpl/src/m/classes/initialization.m M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/transient.py\\
+Export determination: 6. \\
+Rationale: CHG: improvements in the way checkconsistency is carried out when dealing only with SealevelriseSolution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1024} with diff file ISSM-20138-20139.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed issue with freeing of ressources.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1025} with diff file ISSM-20139-20140.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/transient.py\\
+Export determination: 6. \\
+Rationale: CHG: iscoupler field missing from the transient python class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1026} with diff file ISSM-20140-20141.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test105.m M /issm/trunk-jpl/test/NightlyRun/test109.m M /issm/trunk-jpl/test/NightlyRun/test334.m\\
+Export determination: 6. \\
+Rationale: CHG: stop verbosing like crazy\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1027} with diff file ISSM-20141-20142.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/IdFromString.m\\
+Export determination: 6. \\
+Rationale: Added Archive Forms oecreview.sh TEMP Template option to IdFrom String\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1028} with diff file ISSM-20142-20143.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/dev/devpath.py\\
+Export determination: 6. \\
+Rationale: CHG: do not error out if no settings are found, just warn: :\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1029} with diff file ISSM-20143-20144.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.py\\
+Export determination: 6. \\
+Rationale: CHG: do not use batch mode if batch=0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1030} with diff file ISSM-20144-20145.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/interp/averaging.py M /issm/trunk-jpl/src/m/plot/plot\_contour.py M /issm/trunk-jpl/src/m/plot/plot\_streamlines.py\\
+Export determination: 6. \\
+Rationale: do not error out if import fails, print warning only\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1031} with diff file ISSM-20145-20146.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh A /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-gforker.sh (from /issm/trunk-jpl/externalpackages/mpich/install-3.0-macosx64-elcapitan.sh:20144)\\
+Export determination: 6. \\
+Rationale: CHG: renamed gforker file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1032} with diff file ISSM-20146-20147.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-jenkins A /issm/trunk-jpl/externalpackages/gmt/install-jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: ADD: New CMake configure script for Jenkins build CHG: I think I fixed an order issue with externalpackages ADD: New install script for GMT for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1033} with diff file ISSM-20147-20148.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: added boost externalpackage to list. for linux jenkins SE.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1034} with diff file ISSM-20148-20149.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: handle case where we are not running in transient mode!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1035} with diff file ISSM-20149-20150.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h\\
+Export determination: 6. \\
+Rationale: CHG: implemented new comm splitting wrapper\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1036} with diff file ISSM-20150-20151.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed redefinition of ISSM\_MPI\_Send.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1037} with diff file ISSM-20151-20152.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixed typos.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1038} with diff file ISSM-20152-20153.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processdata.m\\
+Export determination: 6. \\
+Rationale: CHG: implemented maskvalue option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1039} with diff file ISSM-20153-20154.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: return absolute sea level rise instead of just deltaS.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1040} with diff file ISSM-20154-20155.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelEnum.m D /issm/trunk-jpl/src/m/enum/SealevelriseSEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: renamed SealevelriseS to Sealevel.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1041} with diff file ISSM-20155-20156.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/Balancethickness2Analysis.cpp M /issm/trunk-jpl/src/c/analyses/BalancethicknessAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/BalancevelocityAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/FreeSurfaceBaseAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/FreeSurfaceTopAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/HydrologyShreveAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MeltingAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceVerticalAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/test/NightlyRun/test2002.m\\
+Export determination: 6. \\
+Rationale: CHG: introducing sealevel in all the analyses.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1042} with diff file ISSM-20156-20157.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Loads/Friction.cpp\\
+Export determination: 6. \\
+Rationale: CHG: introduced sealevel in the friction (Neff), the neumann boundary conditions (StressbalanceAnalysis), the grouding line dynamics (MigrateGroundingLIne of Element.cpp) and in the update of free surfaces (MasstransportAnalysis).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1043} with diff file ISSM-20157-20158.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.m\\
+Export determination: 6. \\
+Rationale: CHG: wrong love numbers!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1044} with diff file ISSM-20158-20159.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/slr.py A /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: ADD: slr python and test (needs verification and testing).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1045} with diff file ISSM-20159-20160.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: make sealevel a forcing.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1046} with diff file ISSM-20160-20161.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.py M /issm/trunk-jpl/src/m/classes/slr.py\\
+Export determination: 6. \\
+Rationale: CHG: new slr python class, mirroring the slr.m class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1047} with diff file ISSM-20161-20162.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: introducing sea level.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1048} with diff file ISSM-20162-20163.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: new love numbers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1049} with diff file ISSM-20163-20164.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: Resolving python syntax errors for test2002\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1050} with diff file ISSM-20164-20165.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test124.m\\
+Export determination: 6. \\
+Rationale: CHG: Relaxed test124.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1051} with diff file ISSM-20165-20166.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Macosx will now run the same tests as Linux.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1052} with diff file ISSM-20166-20167.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Added new cconfig options as well as externalpackages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1053} with diff file ISSM-20167-20168.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/boundaryconditions/love\_numbers.m\\
+Export determination: 6. \\
+Rationale: NEW: love\_numbers from srosat.com/iag-jsg/loveNb.php\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1054} with diff file ISSM-20168-20169.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Changed the Dakota install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1055} with diff file ISSM-20169-20170.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Temporarily removed Dakota and co from MacOSX build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1056} with diff file ISSM-20170-20171.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.m\\
+Export determination: 6. \\
+Rationale: CHG: new love numbers routine (more reliable).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1057} with diff file ISSM-20171-20172.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive2002.nc\\
+Export determination: 6. \\
+Rationale: CHG: Updated archive for test 2002.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1058} with diff file ISSM-20172-20173.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/boundaryconditions/love\_numbers.py A /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: ADD: python versions of gmshplanet and love\_numbers\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1059} with diff file ISSM-20173-20174.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: CHG: Ammending python file handling\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1060} with diff file ISSM-20174-20175.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/exp/exp\_to\_levelsetfunction.m\\
+Export determination: 6. \\
+Rationale: NEW: function to compute level-set function from exp-file; for use with level-set method\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1061} with diff file ISSM-20175-20176.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Adding Chaco dep and external to Jenkins MacOSX build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1062} with diff file ISSM-20176-20177.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/contrib/bamg A /issm/trunk-jpl/src/m/contrib/buzzi A /issm/trunk-jpl/src/m/contrib/buzzi/gravity (from /issm/trunk-jpl/src/m/contrib/gravity:20175) D /issm/trunk-jpl/src/m/contrib/dassflow A /issm/trunk-jpl/src/m/contrib/defleurian A /issm/trunk-jpl/src/m/contrib/defleurian/netCDF (from /issm/trunk-jpl/src/m/contrib/netCDF:20175) A /issm/trunk-jpl/src/m/contrib/defleurian/paraview (from /issm/trunk-jpl/src/m/contrib/paraview:20175) D /issm/trunk-jpl/src/m/contrib/ecco D /issm/trunk-jpl/src/m/contrib/gravity D /issm/trunk-jpl/src/m/contrib/gslib D /issm/trunk-jpl/src/m/contrib/hack D /issm/trunk-jpl/src/m/contrib/hydrology A /issm/trunk-jpl/src/m/contrib/larour A /issm/trunk-jpl/src/m/contrib/larour/ecco (from /issm/trunk-jpl/src/m/contrib/ecco:20175) A /issm/trunk-jpl/src/m/contrib/larour/morphological (from /issm/trunk-jpl/src/m/contrib/morphological:20175) A /issm/trunk-jpl/src/m/contrib/larour/resultstomatrix.m (from /issm/trunk-jpl/src/m/contrib/hack/resultstomatrix.m:20175) A /issm/trunk-jpl/src/m/contrib/larour/tres.m (from /issm/trunk-jpl/src/m/contrib/hack/tres.m:20175) D /issm/trunk-jpl/src/m/contrib/massbalance A /issm/trunk-jpl/src/m/contrib/morlighem A /issm/trunk-jpl/src/m/contrib/morlighem/bamg (from /issm/trunk-jpl/src/m/contrib/bamg:20175) A /issm/trunk-jpl/src/m/contrib/morlighem/dassflow (from /issm/trunk-jpl/src/m/contrib/dassflow:20175) A /issm/trunk-jpl/src/m/contrib/morlighem/gslib (from /issm/trunk-jpl/src/m/contrib/gslib:20175) M /issm/trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m A /issm/trunk-jpl/src/m/contrib/morlighem/massbalance (from /issm/trunk-jpl/src/m/contrib/massbalance:20175) A /issm/trunk-jpl/src/m/contrib/morlighem/sia.m (from /issm/trunk-jpl/src/m/contrib/hack/sia.m:20175) A /issm/trunk-jpl/src/m/contrib/morlighem/thicknessevolution.m (from /issm/trunk-jpl/src/m/contrib/hack/thicknessevolution.m:20175) D /issm/trunk-jpl/src/m/contrib/morphological D /issm/trunk-jpl/src/m/contrib/netCDF D /issm/trunk-jpl/src/m/contrib/oasis D /issm/trunk-jpl/src/m/contrib/paraview A /issm/trunk-jpl/src/m/contrib/seroussi A /issm/trunk-jpl/src/m/contrib/seroussi/oasis (from /issm/trunk-jpl/src/m/contrib/oasis:20175) D /issm/trunk-jpl/src/m/contrib/uci\\
+Export determination: 6. \\
+Rationale: CHG: moving stuff around\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1063} with diff file ISSM-20177-20178.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: CHG: Fixing gmsh file writing (need to rewrite fscanf python equivalents)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1064} with diff file ISSM-20178-20179.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/exp/exp2levelsetfunction.m D /issm/trunk-jpl/src/m/exp/exp\_to\_levelsetfunction.m\\
+Export determination: 6. \\
+Rationale: CHG: change name and header of exp2levelsetfunction.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1065} with diff file ISSM-20179-20180.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/exp/exp2levelsetfunction.m\\
+Export determination: 6. \\
+Rationale: BUG: cover case of 0 segment length\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1066} with diff file ISSM-20180-20181.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/exp/exp\_to\_levelset.m\\
+Export determination: 6. \\
+Rationale: DEL: redundant code\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1067} with diff file ISSM-20181-20182.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am M /issm/trunk-jpl/src/m/boundaryconditions/love\_numbers.m M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/classes/mesh3dsurface.m M /issm/trunk-jpl/src/m/classes/model.js A /issm/trunk-jpl/src/m/classes/slr.js M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: new love\_numbers routine. new slr.js and model.js hook up as well as savemodelasjs routine in slr.m.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1068} with diff file ISSM-20182-20183.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/runme.m M /issm/trunk-jpl/test/NightlyRun/runme.py A /issm/trunk-jpl/test/NightlyRun/test2424.m\\
+Export determination: 6. \\
+Rationale: CHG: new slr test based on 424 Agressive grounding line dynamics module, where sea level keeps rising.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1069} with diff file ISSM-20183-20184.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive2424.nc\\
+Export determination: 6. \\
+Rationale: CHG: archive for 2424 test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1070} with diff file ISSM-20184-20185.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: minor updates to class and add development queue\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1071} with diff file ISSM-20185-20186.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/Archives/Archive2425.nc A /issm/trunk-jpl/test/NightlyRun/test2425.m\\
+Export determination: 6. \\
+Rationale: CHG: new test2425 test where we compare grounding line dynamics for a transient sheet-shelf system, once with sea level at 0, once with sea-level at +1000 m and all other base, bed and surface offset also by +1000m. Results should be equal.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1072} with diff file ISSM-20186-20187.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/mech/newforcing.m\\
+Export determination: 6. \\
+Rationale: CHG: new forcing (routine to add a forcing that is transiently varying from a min to a max between initial and final time of a transient.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1073} with diff file ISSM-20187-20188.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Removing references to conbrib dir from Makefile.am\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1074} with diff file ISSM-20188-20189.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2424.m\\
+Export determination: 6. \\
+Rationale: CHG: changing tolerance for 2424.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1075} with diff file ISSM-20189-20190.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/psl/p\_polynomial\_prime.m\\
+Export determination: 6. \\
+Rationale: new: first derivative of legendre polynomials, required for computing horizontal displacement\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1076} with diff file ISSM-20190-20191.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive2002.nc\\
+Export determination: 6. \\
+Rationale: CHG: Updating archive for test2002\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1077} with diff file ISSM-20191-20192.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am A /issm/trunk-jpl/src/m/classes/mesh3dsurface.js\\
+Export determination: 6. \\
+Rationale: CHG: adding mesh3dsurface javascript object.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1078} with diff file ISSM-20192-20193.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/chaco/install-macosx.sh A /issm/trunk-jpl/externalpackages/chaco/patches A /issm/trunk-jpl/externalpackages/chaco/patches/Makefile.patch\\
+Export determination: 6. \\
+Rationale: ADD: New Chaco install script for MacOSX with appropriate patches to fix malloc.h issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1079} with diff file ISSM-20193-20194.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/chaco/install-macosx.sh A /issm/trunk-jpl/externalpackages/chaco/install-macosx64.sh (from /issm/trunk-jpl/externalpackages/chaco/install-macosx.sh:20192) M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Changed install script for chaco for Macosx Jenkins and changed the name of the script to match other Macosx64 scripts.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1080} with diff file ISSM-20194-20195.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processmesh.js M /issm/trunk-jpl/src/m/plot/processmesh.m\\
+Export determination: 6. \\
+Rationale: CHG: not sure what these lines were for.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1081} with diff file ISSM-20195-20196.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processmesh.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): forgot console.log statements.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1082} with diff file ISSM-20196-20197.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mesh3dsurface.m\\
+Export determination: 6. \\
+Rationale: CHG (JS): need to describe the mesh as 3d surface, otherwise, model.js constructor defines it as mesh2d.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1083} with diff file ISSM-20197-20198.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG: Adding support for mesh3dsurface display.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1084} with diff file ISSM-20198-20199.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: always recompute requested output for some specific cases\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1085} with diff file ISSM-20199-20200.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixing compilation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1086} with diff file ISSM-20200-20201.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/processmesh.m\\
+Export determination: 6. \\
+Rationale: CHG: reverting to previous svn version.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1087} with diff file ISSM-20201-20202.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m\\
+Export determination: 6. \\
+Rationale: CHG: lonestar has 24 cpus\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1088} with diff file ISSM-20202-20203.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive806.nc\\
+Export determination: 6. \\
+Rationale: CHG: updated archive now that inputs get updated through time\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1089} with diff file ISSM-20203-20204.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp\\
+Export determination: 6. \\
+Rationale: BUG: should call ISSM MPI\_Recv\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1090} with diff file ISSM-20204-20205.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/issm\_slr.cpp M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.cpp M /issm/trunk-jpl/src/c/toolkits/mpi/issmmpi.h\\
+Export determination: 6. \\
+Rationale: NEW: created ISSM\_MPI\_Intercomm\_create\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1091} with diff file ISSM-20205-20206.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Bug fixes for plot\_mesh, fixing default plot centering, globe support for mesh3d plot surfaces.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1092} with diff file ISSM-20206-20207.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/maskpsl.m\\
+Export determination: 6. \\
+Rationale: CHG: fixing issue with javascript save model routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1093} with diff file ISSM-20207-20208.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Changing default alpha values.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1094} with diff file ISSM-20208-20209.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Correcting translation transforms and removing debug statement.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1095} with diff file ISSM-20209-20210.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/TotalFloatingBmbEnum.m A /issm/trunk-jpl/src/m/enum/TotalGroundedBmbEnum.m M /issm/trunk-jpl/test/Archives/Archive208.nc M /issm/trunk-jpl/test/Archives/Archive317.nc M /issm/trunk-jpl/test/Archives/Archive408.nc M /issm/trunk-jpl/test/NightlyRun/test208.m M /issm/trunk-jpl/test/NightlyRun/test208.py M /issm/trunk-jpl/test/NightlyRun/test317.m M /issm/trunk-jpl/test/NightlyRun/test317.py M /issm/trunk-jpl/test/NightlyRun/test408.m M /issm/trunk-jpl/test/NightlyRun/test408.py\\
+Export determination: 6. \\
+Rationale: NEW: starting to implement TotalFloatingBmb and TotalGroundedBmb outputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1096} with diff file ISSM-20210-20211.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.m\\
+Export determination: 6. \\
+Rationale: CHG: simplifying, adding some capabilities (provide a basin name for each step, so you can duplicate steps if they deal with separate basins).\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1097} with diff file ISSM-20211-20212.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/organizer.m\\
+Export determination: 6. \\
+Rationale: CHG: forgot to switch the name from xorganizer to organizer.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1098} with diff file ISSM-20212-20213.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.m M /issm/trunk-jpl/test/Archives/Archive208.nc M /issm/trunk-jpl/test/Archives/Archive317.nc M /issm/trunk-jpl/test/Archives/Archive408.nc M /issm/trunk-jpl/test/NightlyRun/test208.m\\
+Export determination: 6. \\
+Rationale: NEW: compute exact total melting\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1099} with diff file ISSM-20213-20214.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: update basal BC on all of the base, because otherwise this might lead to inconsitencies if node is shared by 2 CPUs and the grounding line moves across it\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1100} with diff file ISSM-20214-20215.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mech/mechanicalproperties.m\\
+Export determination: 6. \\
+Rationale: CHG: damage can be passed as an argument to compute damage-dependent mechanical properties\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1101} with diff file ISSM-20215-20216.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp M /issm/trunk-jpl/test/Archives/Archive408.nc M /issm/trunk-jpl/test/NightlyRun/test208.py M /issm/trunk-jpl/test/NightlyRun/test317.m M /issm/trunk-jpl/test/NightlyRun/test317.py M /issm/trunk-jpl/test/NightlyRun/test408.m M /issm/trunk-jpl/test/NightlyRun/test408.py M /issm/trunk-jpl/test/NightlyRun/test433.m\\
+Export determination: 6. \\
+Rationale: NEW: finished implementing basal melt computation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1102} with diff file ISSM-20216-20217.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3015.py\\
+Export determination: 6. \\
+Rationale: CHG: reverting python test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1103} with diff file ISSM-20217-20218.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: SubElementMigration2 was not activated for HO\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1104} with diff file ISSM-20218-20219.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3015.py\\
+Export determination: 6. \\
+Rationale: CHG: changing number of cpus on python side\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1105} with diff file ISSM-20219-20220.diff: \\
+Function name: \\
+M /issm/trunk-jpl/scripts/BinRead.py\\
+Export determination: 6. \\
+Rationale: BUG: load ISSM tools after looking for PYTHONSTARTUP\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1106} with diff file ISSM-20220-20221.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test317.py M /issm/trunk-jpl/test/NightlyRun/test408.py\\
+Export determination: 6. \\
+Rationale: CHG: updating python tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1107} with diff file ISSM-20221-20222.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test408.py\\
+Export determination: 6. \\
+Rationale: BUG: trying to fix python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1108} with diff file ISSM-20222-20223.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/parseresultsfromdisk.py\\
+Export determination: 6. \\
+Rationale: BUG: need to change the units of Floating and Grounded Bmb in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1109} with diff file ISSM-20223-20224.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/mesh3dsurface.py M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: ADD: mesh3dsurface python version. CHG: gmshplanet python fscanf translations and verification\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1110} with diff file ISSM-20224-20225.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: Intermediate fixes for syntax and includes, work in progress\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1111} with diff file ISSM-20225-20226.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/classes/maskpsl.py M /issm/trunk-jpl/src/m/classes/mesh3dsurface.py A /issm/trunk-jpl/src/m/coordsystems/gmtmask.py\\
+Export determination: 6. \\
+Rationale: ADD: maskpsl and gmtmask python versions. CHG: mesh3dsurface.py checkfield corrections\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1112} with diff file ISSM-20226-20227.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: test2002.py syntax fixes, ready for solve validation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1113} with diff file ISSM-20227-20228.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/lonestar.m M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: add batch to lonestar\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1114} with diff file ISSM-20228-20229.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: revert back pfe.m\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1115} with diff file ISSM-20229-20230.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/install-1.55-macosx-el\_capitan.sh A /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx-el\_capitan.sh\\
+Export determination: 6. \\
+Rationale: ADD: New installation scripts for Boost and Dakota for MacOSX 10.11.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1116} with diff file ISSM-20230-20231.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: Install scripts changed for Pine\_Island to El Capitan Boost and Dakota packages.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1117} with diff file ISSM-20231-20232.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: removed CMake from MacOSX build Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1118} with diff file ISSM-20232-20233.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx-el\_capitan.sh\\
+Export determination: 6. \\
+Rationale: CHG: Removed comment line from download.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1119} with diff file ISSM-20233-20234.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: changed MPICH script to 3.0 MacOSX Yosemite.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1120} with diff file ISSM-20234-20235.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Dynamic height scaling for 3d/2d meshes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1121} with diff file ISSM-20235-20236.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp M /issm/trunk-jpl/src/c/main/issm\_slr.cpp\\
+Export determination: 6. \\
+Rationale: CHG: add int cast to make intel compiler happy\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1122} with diff file ISSM-20236-20237.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_ross\_gia\\
+Export determination: 6. \\
+Rationale: ADD: Ross GIA test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1123} with diff file ISSM-20237-20238.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_gia\\
+Export determination: 6. \\
+Rationale: CHG: added autotools\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1124} with diff file ISSM-20238-20239.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_gia\\
+Export determination: 6. \\
+Rationale: CHG: added gmsh\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1125} with diff file ISSM-20239-20240.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/linux64\_ross\_iceocean\\
+Export determination: 6. \\
+Rationale: ADD: New Jenkins iceocean config.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1126} with diff file ISSM-20240-20241.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island A /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota\\
+Export determination: 6. \\
+Rationale: CHG: Now we have two config scripts. One for Dakota and one for not.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1127} with diff file ISSM-20241-20242.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: I think the MPICH install script for OSX is causing petsc to seg fault.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1128} with diff file ISSM-20242-20243.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: excluding dakota tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1129} with diff file ISSM-20243-20244.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test350.m\\
+Export determination: 6. \\
+Rationale: CHG: fixing Mac tests on jenkins\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1130} with diff file ISSM-20244-20245.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test350.m\\
+Export determination: 6. \\
+Rationale: CHG: changed wrong tolerance'\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1131} with diff file ISSM-20245-20246.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test404.m M /issm/trunk-jpl/test/NightlyRun/test404.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances on Pressure FS\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1132} with diff file ISSM-20246-20247.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: add area fuctions to responses case statement\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1133} with diff file ISSM-20247-20248.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test124.m\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1134} with diff file ISSM-20248-20249.diff: \\
+Function name: \\
+M /issm/trunk-jpl/etc/environment.sh A /issm/trunk-jpl/externalpackages/cvs A /issm/trunk-jpl/externalpackages/cvs/install.sh\\
+Export determination: 6. \\
+Rationale: NEW: added cvs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1135} with diff file ISSM-20249-20250.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: clean up some memory\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1136} with diff file ISSM-20250-20251.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Removing extra console log.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1137} with diff file ISSM-20251-20252.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: build issm-bin target.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1138} with diff file ISSM-20252-20253.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/geometry/GetAreasSphericalTria.m\\
+Export determination: 6. \\
+Rationale: NEW: function to compute spherical traingles\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1139} with diff file ISSM-20253-20254.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/os/issmbbftpin.m M /issm/trunk-jpl/src/m/os/issmbbftpout.m\\
+Export determination: 6. \\
+Rationale: CHG: changed hardcoded bbftp pleiades ips.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1140} with diff file ISSM-20254-20255.diff: \\
+Function name: \\
+A /issm/trunk-jpl/src/m/js/writejscellarray.m\\
+Export determination: 6. \\
+Rationale: CHG (JS): new writejscellarray for transitions in slr class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1141} with diff file ISSM-20255-20256.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/io/fileptr.js\\
+Export determination: 6. \\
+Rationale: CHG: added a check that makes sure the memory increment is sufficient.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1142} with diff file ISSM-20256-20257.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/transient.m\\
+Export determination: 6. \\
+Rationale: CHG: minor comment in the disp routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1143} with diff file ISSM-20257-20258.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/trans.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): update transient class to enable solving in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1144} with diff file ISSM-20258-20259.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): minor typo.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1145} with diff file ISSM-20259-20260.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/checkfield.js M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): added sea level rise solution option. Better check on Infinity for javascript checkfield.js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1146} with diff file ISSM-20260-20261.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/groundingline.m\\
+Export determination: 6. \\
+Rationale: CHG: check only on places that are on the ice! Not on the ocean.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1147} with diff file ISSM-20261-20262.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): fixed huge memory issue when declaring the slr.js fields.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1148} with diff file ISSM-20262-20263.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: updated saveasjsfile routine for slr class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1149} with diff file ISSM-20263-20264.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/masstransport.m\\
+Export determination: 6. \\
+Rationale: CHG: in writeasjsfile, fixed issue with hdyrostatic\_adustment being saved as double instead of string!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1150} with diff file ISSM-20264-20265.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/sealevelmodel.m\\
+Export determination: 6. \\
+Rationale: CHG: no patching anymore in the constructor of the sealevelmodel class.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1151} with diff file ISSM-20265-20266.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/initialization.js\\
+Export determination: 6. \\
+Rationale: CHG: issue with slicing vx, vy and vz when they are NaN! Will have to find a viable solution to this long term.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1152} with diff file ISSM-20266-20267.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/pfe.m\\
+Export determination: 6. \\
+Rationale: CHG: new multiple model capability (for sea level model). In addition, fixed the disp routine which was not working for modules.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1153} with diff file ISSM-20267-20268.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG: new simplified interface to the generic cluster class, with just one method, UploadAndRun.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1154} with diff file ISSM-20268-20269.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/marshall.js\\
+Export determination: 6. \\
+Rationale: CHG: declare variables! :)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1155} with diff file ISSM-20269-20270.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): improved solve.js that uses the local and generic clusters, and a more generic server interface. Goal is to move towards a cloud server capability.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1156} with diff file ISSM-20270-20271.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js M /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): - successful processing of the results when calling a remote cluster that returns the .outbin file as a typed array buffer. - implementing a callback function in the solve.js routine, because the oReq Post routine that retrieves the outbin typed array buffer from the server during the http request is an async call, which can therefore not be controlled serially.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1157} with diff file ISSM-20271-20272.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Now sending cloud solver request .bin as binary data.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1158} with diff file ISSM-20272-20273.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: BUG: CreatePVectorSheet uses enthalpy values interpolated at gauss-points, which may lead to inconsistency between applied basal boundary conditions. Keep applying basal heat flux at temperate base, since heated base becomes spc'd anyway.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1159} with diff file ISSM-20273-20274.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive327.nc\\
+Export determination: 6. \\
+Rationale: BUG: update archive for previous commit\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1160} with diff file ISSM-20274-20275.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/quiver\_colorbar.m\\
+Export determination: 6. \\
+Rationale: CHG: need to scale positions by max\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1161} with diff file ISSM-20275-20276.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: CHG: fixed indexing issue in retrieval of mesh.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1162} with diff file ISSM-20276-20277.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG (JS): udpated special constructor for javascript exexcutable.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1163} with diff file ISSM-20277-20278.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: CHG: took out verbose statement left by mistake.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1164} with diff file ISSM-20278-20279.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mesh3dsurface.py\\
+Export determination: 6. \\
+Rationale: CHG: fixes some issues with marshall routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1165} with diff file ISSM-20279-20280.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/maskpsl.py\\
+Export determination: 6. \\
+Rationale: CHG: fixed diverse issues with the new class in python.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1166} with diff file ISSM-20280-20281.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/stressbalance.py\\
+Export determination: 6. \\
+Rationale: CHG: fixed issue with loading force, which can be NaN!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1167} with diff file ISSM-20281-20282.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/classes/slr.py\\
+Export determination: 6. \\
+Rationale: CHG: we were marshalling degacc twice!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1168} with diff file ISSM-20282-20283.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/flowequation.py\\
+Export determination: 6. \\
+Rationale: CHG: issue with vertexequation not being able to = NaN\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1169} with diff file ISSM-20283-20284.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/coordsystems/gmtmask.m M /issm/trunk-jpl/src/m/coordsystems/gmtmask.py\\
+Export determination: 6. \\
+Rationale: CHG: gmtmask.py: issue with indexing! (matlab bias) gmtmask.py and .m: increase precision to 10 digits for lat,long! otherwise, gmtmask is returning biased locations!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1170} with diff file ISSM-20284-20285.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/boundaryconditions/love\_numbers.py\\
+Export determination: 6. \\
+Rationale: CHG: fixed love\_numbers python routine used in test2002 now.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1171} with diff file ISSM-20285-20286.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/contrib/larour/resultstomatrix.m\\
+Export determination: 6. \\
+Rationale: CHG: time is in years! do not convert back to seconds!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1172} with diff file ISSM-20286-20287.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: test2002 now working!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1173} with diff file ISSM-20287-20288.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: Activating SolidEarth Python for Jenkins.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1174} with diff file ISSM-20288-20289.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/flowequation.py M /issm/trunk-jpl/src/m/classes/stressbalance.py\\
+Export determination: 6. \\
+Rationale: CHG: bending over backwards with Python to check NaN vs Array!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1175} with diff file ISSM-20289-20290.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js M /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Updates for js upload and run job parameters.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1176} with diff file ISSM-20290-20291.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding option download functionality for saving bin files.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1177} with diff file ISSM-20291-20292.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG: minor fold issue\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1178} with diff file ISSM-20292-20293.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/js/writejscellarray.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed writejscellarray routine.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1179} with diff file ISSM-20293-20294.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/boost/install-1.55-macosx-el\_capitan.sh D /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx-el\_capitan.sh M /issm/trunk-jpl/externalpackages/dakota/install-6.2-macosx64.sh M /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Modified Dakota flags to fall in line with the 6.2 MacOSX script. CHG: Modified Boost 1.55 MacOSX El Capitan (10.11) install script. Now using XCode compilers DEL: Removed Dakota 6.2 install script for MacOSX El Capitan (10.11). CHG: Modified Dakota 6.2 install script for MacOSX. Provided options for delayed template parsing and disabled JEGA and Acro packages. These packages are not neede, yet cause compilation problems when using XCode toolchain. CHG: Jenkins Pine Island config now uses different externalpackages (Dakota 6.2 MacOSX, Boost 1.55 MacOSX El Capitan (10.11)). Also, added Boost and Dakota options to config.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1180} with diff file ISSM-20294-20295.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota\\
+Export determination: 6. \\
+Rationale: CHG: Added CMake to MacOSX Dakota build.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1181} with diff file ISSM-20295-20296.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am M /issm/trunk-jpl/src/m/classes/clusters/generic.js A /issm/trunk-jpl/src/m/classes/maskpsl.js M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/classes/outputdefinition.m\\
+Export determination: 6. \\
+Rationale: CHG (JS): missing classes to allow marshalling of model in javascript.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1182} with diff file ISSM-20296-20297.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG: unhooking download option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1183} with diff file ISSM-20297-20298.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/outputdefinition.js M /issm/trunk-jpl/src/m/classes/qmu.js\\
+Export determination: 6. \\
+Rationale: CHG: minor changes, adjustmnets.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1184} with diff file ISSM-20298-20299.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding np parameter to request bin.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1185} with diff file ISSM-20299-20300.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/loadresultsfrombuffer.js M /issm/trunk-jpl/src/m/solve/solve.js\\
+Export determination: 6. \\
+Rationale: CHG: different prototype for loadresultsfrombuffer. Returns model now instead of results. Like the matlab and python versiosns.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1186} with diff file ISSM-20300-20301.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: only install issm-bin.js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1187} with diff file ISSM-20301-20302.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/vilje.m A /issm/trunk-jpl/src/m/classes/clusters/vilje.py\\
+Export determination: 6. \\
+Rationale: NEW: Adding vilje (UiB) cluster for python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1188} with diff file ISSM-20302-20303.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.py\\
+Export determination: 6. \\
+Rationale: CHG: adding vilje to model\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1189} with diff file ISSM-20303-20304.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp\\
+Export determination: 6. \\
+Rationale: CHG: checking number of inputs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1190} with diff file ISSM-20304-20305.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/InterpFromGridToMesh/InterpFromGridToMesh.cpp\\
+Export determination: 6. \\
+Rationale: BUG: releasing memory\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1191} with diff file ISSM-20305-20306.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/InterpFromMesh2d/InterpFromMesh2d.cpp M /issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp M /issm/trunk-jpl/src/wrappers/PointCloudFindNeighbors/PointCloudFindNeighbors.cpp\\
+Export determination: 6. \\
+Rationale: BUG: adding xdelete for some pointers\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1192} with diff file ISSM-20306-20307.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/frictiontemp.m\\
+Export determination: 6. \\
+Rationale: BUG: missing extrude function in frictiontemp\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1193} with diff file ISSM-20307-20308.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: finished calving dev for STore paper\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1194} with diff file ISSM-20308-20309.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test273.m\\
+Export determination: 6. \\
+Rationale: CHG: added semi colon to avoid md print\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1195} with diff file ISSM-20309-20310.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixing memory leak\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1196} with diff file ISSM-20310-20311.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3015.py\\
+Export determination: 6. \\
+Rationale: BUG: bad string formatting in print\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1197} with diff file ISSM-20311-20312.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3015.py\\
+Export determination: 6. \\
+Rationale: BUG: no more issmgslsolver\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1198} with diff file ISSM-20312-20313.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ad\\
+Export determination: 6. \\
+Rationale: CHG: deactivating some tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1199} with diff file ISSM-20313-20314.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3015.py M /issm/trunk-jpl/test/NightlyRun/test3020.py\\
+Export determination: 6. \\
+Rationale: BUG: python indices start at 0\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1200} with diff file ISSM-20314-20315.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_ad\\
+Export determination: 6. \\
+Rationale: CHG: reverted back\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1201} with diff file ISSM-20315-20316.diff: \\
+Function name: \\
+R /issm/trunk-jpl/src/m/classes/clusters/vilje.m\\
+Export determination: 6. \\
+Rationale: new: adding vilje cluster settings\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1202} with diff file ISSM-20316-20317.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/vilje.m\\
+Export determination: 6. \\
+Rationale: chg: vilje cluster script update\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1203} with diff file ISSM-20317-20318.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/mpich/install-3.0-cyclone.sh\\
+Export determination: 6. \\
+Rationale: NEW: Adding mpich config for Cyclone UiB cluster\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1204} with diff file ISSM-20318-20319.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-linux64-cyclone.sh\\
+Export determination: 6. \\
+Rationale: NEW: Adding UiB Cyclone config file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1205} with diff file ISSM-20319-20320.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/autotools/install-discover.sh A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/BuildDakotaCustom.cmake.discover.patch A /issm/trunk-jpl/externalpackages/dakota/configs/6.2/CMakeLists.txt.discover.patch A /issm/trunk-jpl/externalpackages/dakota/install-6.2-intel15-discover.sh A /issm/trunk-jpl/externalpackages/petsc/install-3.6-discover.sh\\
+Export determination: 6. \\
+Rationale: CHG: update discover compile for 6.2 dakota\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1206} with diff file ISSM-20320-20321.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/discover.m\\
+Export determination: 6. \\
+Rationale: CHG: update discover class for SLURM\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1207} with diff file ISSM-20321-20322.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fresh water density should be considered for eustatic number!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1208} with diff file ISSM-20322-20323.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/classes/slr.m\\
+Export determination: 6. \\
+Rationale: CHG: slr: check against the mask to ensure conservation of mass. model: additional checks.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1209} with diff file ISSM-20323-20324.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/boost/configs/1.55/adl.hpp.patch A /issm/trunk-jpl/externalpackages/boost/install-1.55-discover.sh M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/m/classes/clusters/discover.m\\
+Export determination: 6. \\
+Rationale: CHG: bring discover back up to date with new dakota, and do not hardcode mkl for pfe\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1210} with diff file ISSM-20324-20325.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/contrib/defleurian/paraview/exportVTK.m\\
+Export determination: 6. \\
+Rationale: CHG: homogenized doc\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1211} with diff file ISSM-20325-20326.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/exp/expwrite.m\\
+Export determination: 6. \\
+Rationale: CHG: always write a file if file cannot be written using user's path\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1212} with diff file ISSM-20326-20327.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.m\\
+Export determination: 6. \\
+Rationale: CHG: changes to keep up with slr deltathickness new checksonsticy test.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1213} with diff file ISSM-20327-20328.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive2002.nc\\
+Export determination: 6. \\
+Rationale: CHG: new arhchive for new consistency checks.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1214} with diff file ISSM-20328-20329.diff: \\
+Function name: \\
+M /issm/trunk-jpl/etc/environment.sh\\
+Export determination: 6. \\
+Rationale: CHG: only export PETSC\_DIR if diretctory exists\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1215} with diff file ISSM-20329-20330.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG:adding a test to specify the good petsc library name on UIB Hexagon\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1216} with diff file ISSM-20330-20331.diff: \\
+Function name: \\
+A /issm/trunk-jpl/configs/config-linux64-hexagon.sh\\
+Export determination: 6. \\
+Rationale: NEW: Hexagon config file\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1217} with diff file ISSM-20331-20332.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/psl/shlm.m M /issm/trunk-jpl/src/m/psl/shlm\_element.m\\
+Export determination: 6. \\
+Rationale: CHG: removed some nod needed comments.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1218} with diff file ISSM-20332-20333.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: Changing string equality operation to deal with empty string.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1219} with diff file ISSM-20333-20334.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: removed = from cray option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1220} with diff file ISSM-20334-20335.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test4001.m\\
+Export determination: 6. \\
+Rationale: CHG: adding path AFTER downloading MITgcm\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1221} with diff file ISSM-20335-20336.diff: \\
+Function name: \\
+A /issm/trunk-jpl/test/NightlyRun/test341.py\\
+Export determination: 6. \\
+Rationale: NEW: added m1qn3 python test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1222} with diff file ISSM-20336-20337.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: added --enable-development to windows tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1223} with diff file ISSM-20337-20338.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: BUG: typo\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1224} with diff file ISSM-20338-20339.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/imac-012301-gil M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_caladan M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi M /issm/trunk-jpl/jenkins/linux64\_murdo M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi M /issm/trunk-jpl/jenkins/linux64\_murdo\_gia M /issm/trunk-jpl/jenkins/linux64\_murdo\_iceocean M /issm/trunk-jpl/jenkins/linux64\_murdo\_python M /issm/trunk-jpl/jenkins/linux64\_ross M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi M /issm/trunk-jpl/jenkins/linux64\_ross\_gia M /issm/trunk-jpl/jenkins/linux64\_ross\_iceocean M /issm/trunk-jpl/jenkins/linux64\_ross\_se M /issm/trunk-jpl/jenkins/linux64\_ross\_test M /issm/trunk-jpl/jenkins/macosx\_pine-island M /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: NEW: trying to get rid of MATLAB\_DIR, do not use this variable anymore and do NOT install matlab\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1225} with diff file ISSM-20339-20340.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix MATLAB\_PATH option\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1226} with diff file ISSM-20340-20341.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ad\\
+Export determination: 6. \\
+Rationale: CHG: testing new way of configuring\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1227} with diff file ISSM-20341-20342.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: removing unused code\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1228} with diff file ISSM-20342-20343.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SealevelEustaticEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseRotationEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseTideLoveHEnum.m A /issm/trunk-jpl/src/m/enum/SealevelriseTideLoveKEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: starting to add enums necessary to handle perturbation to the rotational potential in slr solution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1229} with diff file ISSM-20343-20344.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding SealevelEustatic as automatic output of slr solution.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1230} with diff file ISSM-20344-20345.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp\\
+Export determination: 6. \\
+Rationale: CHG: simplified the solution by removing the Eustatic choice (which is now default). Also modified the condition on which the eustatic level contribution is added for ice loading elements, so as to better conserver mass!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1231} with diff file ISSM-20345-20346.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp\\
+Export determination: 6. \\
+Rationale: CHG: no need for eustatic boolean anymore, it's default. Added a GenericParam container to IssmComm, otherwise, we have issues with gcc and intel compilers when adding comms as IntParam objects in the parameters container.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1232} with diff file ISSM-20346-20347.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/main/issm\_slr.cpp\\
+Export determination: 6. \\
+Rationale: CHG: encapsulating ISSM COMM objects into a GenericParam object to avoid issues with gcc and intel compilers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1233} with diff file ISSM-20347-20348.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core\_eustatic.cpp\\
+Export determination: 6. \\
+Rationale: CHG: adding eustatic level as default solution to eustatic core.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1234} with diff file ISSM-20348-20349.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: encapsulating ISSM COMM objects into a GenericParam object to avoid issues with gcc and intel compilers.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1235} with diff file ISSM-20349-20350.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/slr.js M /issm/trunk-jpl/src/m/classes/slr.m M /issm/trunk-jpl/src/m/classes/slr.py\\
+Export determination: 6. \\
+Rationale: CHG: introducing rotation fields in the slr class, for the perturbation of rotational potential part of the sea level rise solver. Also removed eustatic as a choice, it is now default for the computation of sea level rise.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1236} with diff file ISSM-20350-20351.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive243.nc M /issm/trunk-jpl/test/Data/gemb\_input.mat M /issm/trunk-jpl/test/NightlyRun/test243.m\\
+Export determination: 6. \\
+Rationale: CHG: fixed test 243\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1237} with diff file ISSM-20351-20352.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG (JAVASCRIPT): simplified includes interface.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1238} with diff file ISSM-20352-20353.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am A /issm/trunk-jpl/src/m/print/sprintf.js M /issm/trunk-jpl/src/wrappers/javascript/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG (JS): -added sprintf script which is often used across the js code. -make sure all the .js files end up in bin/issm-prebin.js and bin/issm.js\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1239} with diff file ISSM-20353-20354.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): Uint8Array more compatible with size of raw buffer.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1240} with diff file ISSM-20354-20355.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Reverting incorrect movie handling changes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1241} with diff file ISSM-20355-20356.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing inconsistent zooming when approaching zoom bounds.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1242} with diff file ISSM-20356-20357.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/WriteData.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): absolutely nasty bug fixed! Scaling was actually changing the internals of our model! Had to slice incoming arrays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1243} with diff file ISSM-20357-20358.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Increasing colorbar display resolution and fixing distortion for vertical colorbars.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1244} with diff file ISSM-20358-20359.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Removing debug logs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1245} with diff file ISSM-20359-20360.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/slider.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): slider refactoring. Now conforms to options syntax. Accepts height and width arguments. Requires named arguments for value, callback, and name. Preventing variable hoisting.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1246} with diff file ISSM-20360-20361.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mask.m\\
+Export determination: 6. \\
+Rationale: CHG (JS): fixed 1D vs 2D array issue.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1247} with diff file ISSM-20361-20362.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/solve/WriteData.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): fixed issue of scaling.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1248} with diff file ISSM-20362-20363.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h M /issm/trunk-jpl/src/c/datastructures/DataSet.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixing Comm issue\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1249} with diff file ISSM-20363-20364.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h\\
+Export determination: 6. \\
+Rationale: BUG: fixing generic param for now (quick fix)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1250} with diff file ISSM-20364-20365.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h\\
+Export determination: 6. \\
+Rationale: CHG: add warning\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1251} with diff file ISSM-20365-20366.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Params/GenericParam.h\\
+Export determination: 6. \\
+Rationale: BUG: woops, wrong printf\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1252} with diff file ISSM-20366-20367.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test237.m M /issm/trunk-jpl/test/NightlyRun/test237.py M /issm/trunk-jpl/test/NightlyRun/test315.m M /issm/trunk-jpl/test/NightlyRun/test315.py M /issm/trunk-jpl/test/NightlyRun/test324.m M /issm/trunk-jpl/test/NightlyRun/test324.py M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py\\
+Export determination: 6. \\
+Rationale: CHG relaxing tolerances for windows\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1253} with diff file ISSM-20367-20368.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/sealevelrise\_core\_eustatic.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixing AD tests:\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1254} with diff file ISSM-20368-20369.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test3019.py M /issm/trunk-jpl/test/NightlyRun/test324.m M /issm/trunk-jpl/test/NightlyRun/test324.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1255} with diff file ISSM-20369-20370.diff: \\
+Function name: \\
+A /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: ADD: MacOSX static build Jenkins config file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1256} with diff file ISSM-20370-20371.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Added standalone libs flag.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1257} with diff file ISSM-20371-20372.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Adding gfortran lib option ot Jenkins MacOSX static config file.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1258} with diff file ISSM-20372-20373.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: FIX: Wrong directory for gfortran lib.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1259} with diff file ISSM-20373-20374.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Removed standalone modules option. Does not quite work.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1260} with diff file ISSM-20374-20375.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Removed disabled shared flag.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1261} with diff file ISSM-20375-20376.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Restored standalone modules option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1262} with diff file ISSM-20376-20377.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic\_static.m\\
+Export determination: 6. \\
+Rationale: CHG: additional option to generic: batch\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1263} with diff file ISSM-20377-20378.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/os/issmdir.m\\
+Export determination: 6. \\
+Rationale: NEW: figure out what ISSM\_DIR is based on path name rather than forcing users to edit their bashrc\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1264} with diff file ISSM-20378-20379.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/dev/issmversion.m M /issm/trunk-jpl/src/m/dev/issmversion.py\\
+Export determination: 6. \\
+Rationale: CHG: updated copyright date\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1265} with diff file ISSM-20379-20380.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/quiver\_colorbar.m\\
+Export determination: 6. \\
+Rationale: BUG: trying to fix behavior of colorbar\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1266} with diff file ISSM-20380-20381.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.py\\
+Export determination: 6. \\
+Rationale: CHG: add enthalpy to analyses list of steadystate\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1267} with diff file ISSM-20381-20382.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m\\
+Export determination: 6. \\
+Rationale: BUG: replaced , by ;\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1268} with diff file ISSM-20382-20383.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/os/issmdir.m\\
+Export determination: 6. \\
+Rationale: CHG: make issmdir Windows friendly\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1269} with diff file ISSM-20383-20384.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Numerics/constants.h\\
+Export determination: 6. \\
+Rationale: CHG: NAN and INFINITY seem to be defined now for Windows, let's keep them in a ifndef for now\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1270} with diff file ISSM-20384-20385.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/jenkins/windows-par\\
+Export determination: 6. \\
+Rationale: CHG: turn of kml by default\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1271} with diff file ISSM-20385-20386.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: checking svn version numbering\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1272} with diff file ISSM-20386-20387.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/m4/issm\_options.m4 M /issm/trunk-jpl/src/c/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Changing stuff to fix annoying flags that Windows does not recognize.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1273} with diff file ISSM-20387-20388.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: testing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1274} with diff file ISSM-20388-20389.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: disable python for now\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1275} with diff file ISSM-20389-20390.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: need to use SVN\_REVISION\_1 instead of svnversion\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1276} with diff file ISSM-20390-20391.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: BUG: taking out quotes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1277} with diff file ISSM-20391-20392.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: testing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1278} with diff file ISSM-20392-20393.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: BUG: imnor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1279} with diff file ISSM-20393-20394.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: testing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1280} with diff file ISSM-20394-20395.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/imac-012301-gil M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_caladan M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi M /issm/trunk-jpl/jenkins/linux64\_murdo M /issm/trunk-jpl/jenkins/linux64\_murdo\_ad M /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi M /issm/trunk-jpl/jenkins/linux64\_murdo\_gia M /issm/trunk-jpl/jenkins/linux64\_murdo\_iceocean M /issm/trunk-jpl/jenkins/linux64\_murdo\_python M /issm/trunk-jpl/jenkins/linux64\_ross M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi M /issm/trunk-jpl/jenkins/linux64\_ross\_gia M /issm/trunk-jpl/jenkins/linux64\_ross\_iceocean M /issm/trunk-jpl/jenkins/linux64\_ross\_se M /issm/trunk-jpl/jenkins/linux64\_ross\_test M /issm/trunk-jpl/jenkins/macosx\_pine-island M /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/jenkins/windows-par M /issm/trunk-jpl/jenkins/windows\_test\\
+Export determination: 6. \\
+Rationale: CHG: cleaning up\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1281} with diff file ISSM-20395-20396.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/imac-012301-gil M /issm/trunk-jpl/jenkins/jenkins.sh M /issm/trunk-jpl/jenkins/linux64\_murdo M /issm/trunk-jpl/jenkins/macosx\_pine-island\\
+Export determination: 6. \\
+Rationale: CHG: fixing parser\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1282} with diff file ISSM-20396-20397.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: added cat of changes\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1283} with diff file ISSM-20397-20398.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: quick fix for windows\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1284} with diff file ISSM-20398-20399.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: test\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1285} with diff file ISSM-20399-20400.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1286} with diff file ISSM-20400-20401.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1287} with diff file ISSM-20401-20402.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/applyoptions.js M /issm/trunk-jpl/src/m/plot/plot\_manager.js M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js A /issm/trunk-jpl/src/m/plot/plot\_quiver.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/slider.js M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: ADD (javascript): plot\_quiver implementation. CHG (javascript): Fixing issues with multiple data plots/colorbars in plot\_manager to match matlab semantics. Adding movie slider progress bar to sliders.js.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1288} with diff file ISSM-20402-20403.diff: \\
+Function name: \\
+D /issm/trunk-jpl/jenkins/execute\_shell D /issm/trunk-jpl/jenkins/execute\_shell\_ad D /issm/trunk-jpl/jenkins/imac-012301-gil M /issm/trunk-jpl/jenkins/linux64\_caladan M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi D /issm/trunk-jpl/jenkins/linux64\_murdo D /issm/trunk-jpl/jenkins/linux64\_murdo\_ad D /issm/trunk-jpl/jenkins/linux64\_murdo\_ampi D /issm/trunk-jpl/jenkins/linux64\_murdo\_gia D /issm/trunk-jpl/jenkins/linux64\_murdo\_iceocean D /issm/trunk-jpl/jenkins/linux64\_murdo\_python M /issm/trunk-jpl/jenkins/linux64\_ross M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi M /issm/trunk-jpl/jenkins/linux64\_ross\_gia M /issm/trunk-jpl/jenkins/linux64\_ross\_iceocean M /issm/trunk-jpl/jenkins/linux64\_ross\_se M /issm/trunk-jpl/jenkins/linux64\_ross\_test M /issm/trunk-jpl/jenkins/macosx\_pine-island M /issm/trunk-jpl/jenkins/macosx\_pine-island\_dakota M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static M /issm/trunk-jpl/jenkins/windows M /issm/trunk-jpl/jenkins/windows-par M /issm/trunk-jpl/jenkins/windows\_test\\
+Export determination: 6. \\
+Rationale: CHG: cleaning up\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1289} with diff file ISSM-20403-20404.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Fixed MATLABINCLUDE variable for Windows.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1290} with diff file ISSM-20404-20405.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: BUG: need to delete changes firstsvn diff!\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1291} with diff file ISSM-20405-20406.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/shared/Numerics/constants.h\\
+Export determination: 6. \\
+Rationale: CHG: no need to define INFINITY and NAN in windows\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1292} with diff file ISSM-20406-20407.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: MATLAB\_DIR to MATLAB\_ROOT\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1293} with diff file ISSM-20407-20408.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/SMBgemb.m M /issm/trunk-jpl/src/m/classes/stressbalance.m M /issm/trunk-jpl/src/m/classes/thermal.m\\
+Export determination: 6. \\
+Rationale: CHG: added some checks to thermal and changed cosmetics in other files\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1294} with diff file ISSM-20408-20409.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2002.m M /issm/trunk-jpl/test/NightlyRun/test2002.py\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix SLR tests\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1295} with diff file ISSM-20409-20410.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: set python buffering off in order to see output of issm.exe\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1296} with diff file ISSM-20410-20411.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: try to use tee instead of > to keep python output\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1297} with diff file ISSM-20411-20412.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/runme.py\\
+Export determination: 6. \\
+Rationale: CHG: print error messages in python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1298} with diff file ISSM-20412-20413.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Adding /link flag before /LIBPATH for Matlab Windows options.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1299} with diff file ISSM-20413-20414.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: if reconfigure is required, then make is also required\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1300} with diff file ISSM-20414-20415.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: removed MATLAB\_DIR\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1301} with diff file ISSM-20415-20416.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: typo\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1302} with diff file ISSM-20416-20417.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test2001.py\\
+Export determination: 6. \\
+Rationale: CHG: fixing python test 2001\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1303} with diff file ISSM-20417-20418.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/runme.py\\
+Export determination: 6. \\
+Rationale: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1304} with diff file ISSM-20418-20419.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/steadystate\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: better message of steadystate\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1305} with diff file ISSM-20419-20420.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Removed Chaco MEX module when not configured with Chaco.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1306} with diff file ISSM-20420-20421.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/matlab/Makefile.am\\
+Export determination: 6. \\
+Rationale: FIX: Fixed mistake in Chaco removal.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1307} with diff file ISSM-20421-20422.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxing test 802.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1308} with diff file ISSM-20422-20423.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test227.m M /issm/trunk-jpl/test/NightlyRun/test227.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxing test 227.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1309} with diff file ISSM-20423-20424.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/windows\\
+Export determination: 6. \\
+Rationale: CHG: Trying to improve performance by upping the number of CPUS.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1310} with diff file ISSM-20424-20425.diff: \\
+Function name: \\
+D /issm/trunk-jpl/externalpackages/petsc/README D /issm/trunk-jpl/externalpackages/petsc/install-3.1-altix64-castor.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-cosmos.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-linux64-berg.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-macosx32-mathieu.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-macosx32-ogive.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-pleiades.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-ubuntu64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-win7-parallel.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.1-win7.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-discover-intel13.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-discover.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-greenplanet.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-hoffman2.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-linux64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-macosx64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-pleiades.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.2-ubuntu64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.3-linux64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.3-macosx64.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.3-pleiades.sh D /issm/trunk-jpl/externalpackages/petsc/install-3.3-walgreen.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-discover.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-linux64.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-lonestar.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-macosx64.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-pleiades.sh M /issm/trunk-jpl/externalpackages/petsc/install-3.6-win10.sh\\
+Export determination: 6. \\
+Rationale: NEW: updating to latest petsc 3.6.3\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1311} with diff file ISSM-20425-20426.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: if external packages need to be reinstalled, everything needs to be recompiled as well\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1312} with diff file ISSM-20426-20427.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/cores/steadystate\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: better formatting\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1313} with diff file ISSM-20427-20428.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-win10.sh\\
+Export determination: 6. \\
+Rationale: CHG: stick with petsc 3.6.2 for now windows\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1314} with diff file ISSM-20428-20429.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: check if externalpackages have been installed even if ISSM\_EXTERNALPACKAGES is none\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1315} with diff file ISSM-20429-20430.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1316} with diff file ISSM-20430-20431.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/clusters/generic.m\\
+Export determination: 6. \\
+Rationale: BUG: whenever not interactive, add \& to source command so that sourcing the queueing script does not wait for job completion\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1317} with diff file ISSM-20431-20432.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Adding plot\_quiver.js in Makefile\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1318} with diff file ISSM-20432-20433.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Fixing animation handler edge case bug during multiple successive callbacks.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1319} with diff file ISSM-20433-20434.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am\\
+Export determination: 6. \\
+Rationale: CHG: Order of libs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1320} with diff file ISSM-20434-20435.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: Check if installation dir is empty.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1321} with diff file ISSM-20435-20436.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: If missing installation causes an externalpackage to be built, then we must recompile.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1322} with diff file ISSM-20436-20437.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Adding support for movie timestamp displays.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1323} with diff file ISSM-20437-20438.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Changing display settings for movie slider. Implementing movietimeunit option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1324} with diff file ISSM-20438-20439.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/jenkins.sh\\
+Export determination: 6. \\
+Rationale: CHG: minor\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1325} with diff file ISSM-20439-20440.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/dakota/install-6.2-linux64.sh M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Slimming down the Dakota package. Should improve performance.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1326} with diff file ISSM-20440-20441.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h\\
+Export determination: 6. \\
+Rationale: DEL: removed all levelset reset +-1\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1327} with diff file ISSM-20441-20442.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am A /issm/trunk-jpl/src/m/plot/tooltips.js\\
+Export determination: 6. \\
+Rationale: ADD (javascript): tooltips implementation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1328} with diff file ISSM-20442-20443.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/os/oshostname.m D /issm/trunk-jpl/src/m/string/ddewhite.m\\
+Export determination: 6. \\
+Rationale: CHG: simplified oshostname\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1329} with diff file ISSM-20443-20444.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/os/oshostname.m\\
+Export determination: 6. \\
+Rationale: BUG: previous method did not seem to work\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1330} with diff file ISSM-20444-20445.diff: \\
+Function name: \\
+A /issm/trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Updated MacOSX static build Jenkins file. ADD: Petsc 3.6 MacOSX satic install script.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1331} with diff file ISSM-20445-20446.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp\\
+Export determination: 6. \\
+Rationale: CHG: improved printing\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1332} with diff file ISSM-20446-20447.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m\\
+Export determination: 6. \\
+Rationale: BUG: fixed with new cluster implementation of Queueing script\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1333} with diff file ISSM-20447-20448.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/geometry.py M /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py\\
+Export determination: 6. \\
+Rationale: CHG: cosemtics\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1334} with diff file ISSM-20448-20449.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/inversions/MisfitDeinterlace.m\\
+Export determination: 6. \\
+Rationale: DEL: not needed anymore\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1335} with diff file ISSM-20449-20450.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/mask.m\\
+Export determination: 6. \\
+Rationale: CHG: no MATLAB warning, only display warning\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1336} with diff file ISSM-20450-20451.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/consistency/checkfield.m\\
+Export determination: 6. \\
+Rationale: CHG: cosmetics\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1337} with diff file ISSM-20451-20452.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/manualcb.m\\
+Export determination: 6. \\
+Rationale: CHG: trying to fix manualcb using 0x10 instead of 0x1 and fixed problem with unint16\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1338} with diff file ISSM-20452-20453.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/cores/levelset\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/calving.py M /issm/trunk-jpl/src/m/classes/calvingdev.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.py M /issm/trunk-jpl/src/m/classes/calvingpi.m M /issm/trunk-jpl/src/m/classes/trans.js M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/transient.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py D /issm/trunk-jpl/src/m/enum/TransientIscalvingEnum.m A /issm/trunk-jpl/src/m/enum/TransientIsmovingfrontEnum.m M /issm/trunk-jpl/test/NightlyRun/test801.m M /issm/trunk-jpl/test/NightlyRun/test801.py M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py M /issm/trunk-jpl/test/NightlyRun/test803.m M /issm/trunk-jpl/test/NightlyRun/test803.py M /issm/trunk-jpl/test/NightlyRun/test804.m M /issm/trunk-jpl/test/NightlyRun/test804.py M /issm/trunk-jpl/test/NightlyRun/test805.m M /issm/trunk-jpl/test/NightlyRun/test805.py M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py\\
+Export determination: 6. \\
+Rationale: CHG: moved md.transient.iscalving into md.transient.ismovingfront\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1339} with diff file ISSM-20453-20454.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/m/classes/mask.js M /issm/trunk-jpl/src/m/classes/mask.m M /issm/trunk-jpl/src/m/classes/mask.py M /issm/trunk-jpl/src/m/classes/maskpsl.js M /issm/trunk-jpl/src/m/classes/maskpsl.m M /issm/trunk-jpl/src/m/classes/maskpsl.py\\
+Export determination: 6. \\
+Rationale: CHG: do not marshall NodeActivationMask, this is now done automatically by FemModel->InitFromFile. We also now alow positive levelsets for every solutions (presumably...)\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1340} with diff file ISSM-20454-20455.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/Makefile.am M /issm/trunk-jpl/src/c/cores/cores.h D /issm/trunk-jpl/src/c/cores/levelset\_core.cpp A /issm/trunk-jpl/src/c/cores/movingfront\_core.cpp (from /issm/trunk-jpl/src/c/cores/levelset\_core.cpp:20453) M /issm/trunk-jpl/src/c/cores/transient\_core.cpp\\
+Export determination: 6. \\
+Rationale: CHG: renaming levelset\_core -> movingfront\_core\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1341} with diff file ISSM-20455-20456.diff: \\
+Function name: \\
+M /issm/trunk-jpl/externalpackages/petsc/install-3.6-macosx64-static.sh\\
+Export determination: 6. \\
+Rationale: CHG: Added the fblaslapack options to Petsc 3.6 install script for MacOSX.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1342} with diff file ISSM-20456-20457.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: take care of FS elements for LS\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1343} with diff file ISSM-20457-20458.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixing L1L2 with new levelset implementation\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1344} with diff file ISSM-20458-20459.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_caladan M /issm/trunk-jpl/jenkins/linux64\_caladan\_ad M /issm/trunk-jpl/jenkins/linux64\_caladan\_ampi M /issm/trunk-jpl/jenkins/linux64\_ross M /issm/trunk-jpl/jenkins/linux64\_ross\_ad M /issm/trunk-jpl/jenkins/linux64\_ross\_ampi M /issm/trunk-jpl/jenkins/linux64\_ross\_gia M /issm/trunk-jpl/jenkins/linux64\_ross\_iceocean M /issm/trunk-jpl/jenkins/linux64\_ross\_se M /issm/trunk-jpl/jenkins/linux64\_ross\_test\\
+Export determination: 6. \\
+Rationale: CHG: switching to petsc 3.6\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1345} with diff file ISSM-20459-20460.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/EnthalpyAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/MasstransportAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp M /issm/trunk-jpl/src/c/analyses/ThermalAnalysis.cpp M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/cores/movingfront\_core.cpp M /issm/trunk-jpl/src/c/cores/transient\_core.cpp M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp D /issm/trunk-jpl/src/m/classes/calvingpi.m M /issm/trunk-jpl/src/m/classes/trans.js M /issm/trunk-jpl/src/m/classes/transient.m M /issm/trunk-jpl/src/m/classes/transient.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py M /issm/trunk-jpl/test/NightlyRun/test801.m M /issm/trunk-jpl/test/NightlyRun/test801.py M /issm/trunk-jpl/test/NightlyRun/test802.m M /issm/trunk-jpl/test/NightlyRun/test802.py M /issm/trunk-jpl/test/NightlyRun/test803.m M /issm/trunk-jpl/test/NightlyRun/test803.py M /issm/trunk-jpl/test/NightlyRun/test804.m M /issm/trunk-jpl/test/NightlyRun/test804.py M /issm/trunk-jpl/test/NightlyRun/test805.m M /issm/trunk-jpl/test/NightlyRun/test805.py M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.par M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.py\\
+Export determination: 6. \\
+Rationale: CHG: remove md.transient.islevelset field\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1346} with diff file ISSM-20460-20461.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/calving.js M /issm/trunk-jpl/src/m/classes/calving.m M /issm/trunk-jpl/src/m/classes/calving.py M /issm/trunk-jpl/src/m/classes/calvingdev.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.m M /issm/trunk-jpl/src/m/classes/calvinglevermann.py A /issm/trunk-jpl/src/m/classes/levelset.js A /issm/trunk-jpl/src/m/classes/levelset.m A /issm/trunk-jpl/src/m/classes/levelset.py M /issm/trunk-jpl/src/m/classes/model.js M /issm/trunk-jpl/src/m/classes/model.m M /issm/trunk-jpl/src/m/classes/model.py M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/LevelsetReinitFrequencyEnum.m\\
+Export determination: 6. \\
+Rationale: ADD: adding levelset class to model, in which options for levelset method can be stored. The class 'calving' now contains fields specific to the calving law used.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1347} with diff file ISSM-20461-20462.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.cpp M /issm/trunk-jpl/src/c/classes/Elements/Element.h M /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp M /issm/trunk-jpl/src/c/classes/Elements/Penta.h M /issm/trunk-jpl/src/c/classes/Elements/Seg.h M /issm/trunk-jpl/src/c/classes/Elements/Tetra.h M /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp M /issm/trunk-jpl/src/c/classes/Elements/Tria.h M /issm/trunk-jpl/src/c/classes/FemModel.cpp M /issm/trunk-jpl/src/c/classes/FemModel.h M /issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/calvingdev.m D /issm/trunk-jpl/src/m/enum/CalvingPiEnum.m A /issm/trunk-jpl/src/m/enum/CalvingdevCoeffEnum.m D /issm/trunk-jpl/src/m/enum/CalvingpiCoeffEnum.m D /issm/trunk-jpl/src/m/enum/CalvingpiMeltingrateEnum.m M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py D /issm/trunk-jpl/src/m/enum/TransientIslevelsetEnum.m\\
+Export determination: 6. \\
+Rationale: CHG: removed calvingpi class as it was not working properly\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1348} with diff file ISSM-20462-20463.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/classes/DofIndexing.cpp M /issm/trunk-jpl/src/c/classes/DofIndexing.h M /issm/trunk-jpl/src/c/classes/Loads/Riftfront.cpp M /issm/trunk-jpl/src/c/classes/Node.cpp M /issm/trunk-jpl/src/c/classes/Node.h M /issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\\
+Export determination: 6. \\
+Rationale: BUG: added freeze field to dofindexing, if we run in 2d and not in 3d, it is not the job of SetActiveNodesLSMx to figure out whether it can activate or not a node that is not on the basal layer. The node should know better\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1349} with diff file ISSM-20463-20464.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/manualcb.m\\
+Export determination: 6. \\
+Rationale: CHG: found a workaround for the incomplete colorbar\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1350} with diff file ISSM-20464-20465.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Updating MacOSX binaries Jenkins build. Static gfortran and disabled static libs.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1351} with diff file ISSM-20465-20466.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp M /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h M /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp M /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp M /issm/trunk-jpl/src/m/classes/levelset.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.js M /issm/trunk-jpl/src/m/enum/EnumDefinitions.py A /issm/trunk-jpl/src/m/enum/SpclevelsetEnum.m M /issm/trunk-jpl/src/py3/classes/calving.py M /issm/trunk-jpl/src/py3/classes/calvinglevermann.py M /issm/trunk-jpl/src/py3/enum/EnumDefinitions.py\\
+Export determination: 6. \\
+Rationale: CHG: renaming SpcLevelset to Spclevelset for naming consistency\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1352} with diff file ISSM-20466-20467.diff: \\
+Function name: \\
+D /issm/trunk-jpl/src/m/enum/SpcLevelsetEnum.m\\
+Export determination: 6. \\
+Rationale: DEL: SpcLevelsetEnum\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1353} with diff file ISSM-20467-20468.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/classes/levelset.m M /issm/trunk-jpl/src/m/classes/levelset.py\\
+Export determination: 6. \\
+Rationale: CHG: do not use NaN for integers\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1354} with diff file ISSM-20468-20469.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test806.m M /issm/trunk-jpl/test/NightlyRun/test806.py M /issm/trunk-jpl/test/NightlyRun/test807.m M /issm/trunk-jpl/test/NightlyRun/test807.py M /issm/trunk-jpl/test/Par/SquareSheetConstrained.par M /issm/trunk-jpl/test/Par/SquareSheetConstrained.py M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.par M /issm/trunk-jpl/test/Par/ValleyGlacierShelf.py\\
+Export determination: 6. \\
+Rationale: spclevelset is in md.levelset\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1355} with diff file ISSM-20469-20470.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: forgot a couple of elements\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1356} with diff file ISSM-20470-20471.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/SetActiveNodesLSMx/SetActiveNodesLSMx.cpp\\
+Export determination: 6. \\
+Rationale: CHG: forgot one FS element: OneLayerP4zEnum\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1357} with diff file ISSM-20471-20472.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_quiver.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js M /issm/trunk-jpl/src/m/plot/processmesh.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Modifying plot routines to handle NaN values by removing them from draw calls. Tentative fix for bug involving too many recursive concatenations for large models/meshes. Addressing shallow copies affecting model in processmesh.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1358} with diff file ISSM-20472-20473.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_overlay.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Stable fix for call stack overflow during index array creation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1359} with diff file ISSM-20473-20474.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/plot\_mesh.js M /issm/trunk-jpl/src/m/plot/plot\_overlay.js M /issm/trunk-jpl/src/m/plot/plot\_quiver.js M /issm/trunk-jpl/src/m/plot/plot\_unit.js\\
+Export determination: 6. \\
+Rationale: CHG (javascript): Addressing call stack size exceptions by switching from recursive to incremental array buffer creation.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1360} with diff file ISSM-20474-20475.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp\\
+Export determination: 6. \\
+Rationale: BUG: need to call HardDeactivated for condensed finite elements otherwise levelset is going to reactivate node in the middle\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1361} with diff file ISSM-20475-20476.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/Archives/Archive285.nc M /issm/trunk-jpl/test/Archives/Archive455.nc M /issm/trunk-jpl/test/NightlyRun/test333.m M /issm/trunk-jpl/test/NightlyRun/test333.py\\
+Export determination: 6. \\
+Rationale: CHG: updating archives with P1Bubble and relaxing DC runs\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1362} with diff file ISSM-20476-20477.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/c/analyses/GiaAnalysis.cpp\\
+Export determination: 6. \\
+Rationale: CHG: now needs icemask\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1363} with diff file ISSM-20477-20478.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test455.m M /issm/trunk-jpl/test/NightlyRun/test455.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerance\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1364} with diff file ISSM-20478-20479.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_gia\\
+Export determination: 6. \\
+Rationale: CHG: compile python as well\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1365} with diff file ISSM-20479-20480.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: Removing support of Dakota 4\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1366} with diff file ISSM-20480-20481.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: BUG: forgot to remove a fi\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1367} with diff file ISSM-20481-20482.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/linux64\_ross\_se\\
+Export determination: 6. \\
+Rationale: CHG: enable python\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1368} with diff file ISSM-20482-20483.diff: \\
+Function name: \\
+M /issm/trunk-jpl/m4/issm\_options.m4\\
+Export determination: 6. \\
+Rationale: CHG: removing old echo, removed support for dakota 4 (mac and win) and fixed a Dakota flag\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1369} with diff file ISSM-20483-20484.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test422.m M /issm/trunk-jpl/test/NightlyRun/test422.py\\
+Export determination: 6. \\
+Rationale: CHG: relaxing tolerances\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1370} with diff file ISSM-20484-20485.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test101.html\\
+Export determination: 6. \\
+Rationale: CHG: Modifying test101 to include functional issm-binaries\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1371} with diff file ISSM-20485-20486.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/webgl.js\\
+Export determination: 6. \\
+Rationale: CHG: Fixing azimuth rotation bug when going below 0 degrees.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1372} with diff file ISSM-20486-20487.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/Makefile.am M /issm/trunk-jpl/src/m/classes/levelset.js M /issm/trunk-jpl/src/m/classes/model.js\\
+Export determination: 6. \\
+Rationale: CHG (JS): minor bug fixes.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1373} with diff file ISSM-20487-20488.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/radarpower.m\\
+Export determination: 6. \\
+Rationale: CHG: added options when geotiffname is not for Antarctica or Greenland.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1374} with diff file ISSM-20488-20489.diff: \\
+Function name: \\
+M /issm/trunk-jpl/test/NightlyRun/test403.m M /issm/trunk-jpl/test/NightlyRun/test403.py\\
+Export determination: 6. \\
+Rationale: CHG: Relaxing test403.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1375} with diff file ISSM-20489-20490.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/TriaSearch/TriaSearch.cpp\\
+Export determination: 6. \\
+Rationale: CHG: fixing memory leak\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1376} with diff file ISSM-20490-20491.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/m/plot/radarpower.m\\
+Export determination: 6. \\
+Rationale: CHG: missing some ;\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1377} with diff file ISSM-20491-20492.diff: \\
+Function name: \\
+M /issm/trunk-jpl/src/wrappers/ContourToMesh/ContourToMesh.cpp M /issm/trunk-jpl/src/wrappers/ContourToNodes/ContourToNodes.cpp M /issm/trunk-jpl/src/wrappers/DistanceToMaskBoundary/DistanceToMaskBoundary.cpp M /issm/trunk-jpl/src/wrappers/ElementConnectivity/ElementConnectivity.cpp M /issm/trunk-jpl/src/wrappers/EnumToString/EnumToString.cpp M /issm/trunk-jpl/src/wrappers/ExpSimplify/ExpSimplify.cpp M /issm/trunk-jpl/src/wrappers/ExpToLevelSet/ExpToLevelSet.cpp M /issm/trunk-jpl/src/wrappers/InterpFromMeshToGrid/InterpFromMeshToGrid.cpp M /issm/trunk-jpl/src/wrappers/InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp M /issm/trunk-jpl/src/wrappers/Ll2xy/Ll2xy.cpp M /issm/trunk-jpl/src/wrappers/M1qn3/M1qn3.cpp M /issm/trunk-jpl/src/wrappers/MeshPartition/MeshPartition.cpp M /issm/trunk-jpl/src/wrappers/MeshProfileIntersection/MeshProfileIntersection.cpp M /issm/trunk-jpl/src/wrappers/NodeConnectivity/NodeConnectivity.cpp M /issm/trunk-jpl/src/wrappers/PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp M /issm/trunk-jpl/src/wrappers/StringToEnum/StringToEnum.cpp M /issm/trunk-jpl/src/wrappers/TriMeshProcessRifts/TriMeshProcessRifts.cpp M /issm/trunk-jpl/src/wrappers/Xy2ll/Xy2ll.cpp\\
+Export determination: 6. \\
+Rationale: BUG: fixing lots of memory leaks\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1378} with diff file ISSM-20492-20493.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static M /issm/trunk-jpl/packagers/macosx/package.sh\\
+Export determination: 6. \\
+Rationale: CHG: Modified uploading logic to use public key crypto.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1379} with diff file ISSM-20493-20494.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Missing blas\_lapack package option.\\
+\vspace{3em}
+
+\noindent \textbf{Change \#1380} with diff file ISSM-20494-20495.diff: \\
+Function name: \\
+M /issm/trunk-jpl/jenkins/macosx\_pine-island\_static\\
+Export determination: 6. \\
+Rationale: CHG: Removed tests from this build.\\
+\vspace{3em}
+
Index: /issm/oecreview/Archive/19101-20495/r1.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/r1.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/r1.tex	(revision 20498)
@@ -0,0 +1,1 @@
+19101
Index: /issm/oecreview/Archive/19101-20495/r2.tex
===================================================================
--- /issm/oecreview/Archive/19101-20495/r2.tex	(revision 20498)
+++ /issm/oecreview/Archive/19101-20495/r2.tex	(revision 20498)
@@ -0,0 +1,1 @@
+20495
